<?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>211703</bug_id>
          
          <creation_ts>2020-05-10 14:26:25 -0700</creation_ts>
          <short_desc>Fix problems caught by replacing WTF::Optional with std::optional</short_desc>
          <delta_ts>2020-05-11 22:47:17 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>211674</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mifenton</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1651114</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-10 14:26:25 -0700</bug_when>
    <thetext>Fix problems caught by replacing WTF::Optional with std::optional</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651118</commentid>
    <comment_count>1</comment_count>
      <attachid>398982</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-10 14:43:19 -0700</bug_when>
    <thetext>Created attachment 398982
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651603</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-11 20:30:37 -0700</bug_when>
    <thetext>Looking for a reviewer for this. It compiles and passes all tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651629</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-11 22:46:33 -0700</bug_when>
    <thetext>Committed r261546: &lt;https://trac.webkit.org/changeset/261546&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 398982.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651630</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-11 22:47:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/63121810&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398982</attachid>
            <date>2020-05-10 14:43:19 -0700</date>
            <delta_ts>2020-05-11 22:46:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211703-20200510144318.patch</filename>
            <type>text/plain</type>
            <size>38857</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNDU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
MTI5MjRhZTgzNDkzMTEyYTBjOGUxZGQ1Yzk5MjQ5Mzc3NWE3YTAzLi4yOTI2NWFhNzU4MGZkNDc3
MzJkZWZmNDMzZjFjODRjZjYwNzJiMjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAyMC0wNS0xMCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisK
KyAgICAgICAgRml4IHByb2JsZW1zIGNhdWdodCBieSByZXBsYWNpbmcgV1RGOjpPcHRpb25hbCB3
aXRoIHN0ZDo6b3B0aW9uYWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxMTcwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogcnVudGltZS9NYWNoaW5lQ29udGV4dC5oOgorICAgICAgICAoSlNDOjpNYWNo
aW5lQ29udGV4dDo6aW5zdHJ1Y3Rpb25Qb2ludGVyKTogVXNlIGV4cGxjaXQgbWFrZU9wdGlvbmFs
IGhlcmUsCisgICAgICAgIHRvIHdvcmsgYXJvdW5kIHRoZSBmYWN0IHRoYXQgTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyIHVzZXMgYW4gdW51c3VhbCB0ZWNobmlxdWUKKyAgICAgICAgdG8gZGlzYWJsZSBj
b252ZXJzaW9ucyB0byBldmVyeXRoaW5nIGV4Y2VwdCBib29sLgorCiAyMDIwLTA1LTA5ICBSb3Nz
IEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBGaXggYnVpbGQg
ZXJyb3JzIGFuZCB3YXJuaW5ncyBmb3Igbm9uLXVuaWZpZWQgSlNDT25seQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBhMDk2MWZl
ZjczNTA3MDhmYWNhOWM0MzI5NjU3OGEyZTRjZDQ0YjkyLi43NDE5N2Y4MmU5MzFhZDkwYmFjOGYw
YmZiZmM3NzFiNjk4ZWY4ZGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA1LTEwICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggcHJvYmxlbXMgY2F1Z2h0
IGJ5IHJlcGxhY2luZyBXVEY6Ok9wdGlvbmFsIHdpdGggc3RkOjpvcHRpb25hbAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExNzAzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvVVJMSGVscGVycy5j
cHA6CisgICAgICAgIChXVEY6OlVSTEhlbHBlcnM6Om1hcEhvc3ROYW1lKTogTWFrZSBVUkxEZWNv
ZGVGdW5jdGlvbiBhIGZ1bmN0aW9uCisgICAgICAgIHBvaW50ZXIgYW5kIHVzZSBudWxscHRyIGlu
c3RlYWQgb2YgdHJ5aW5nIHRvIHVzZSBPcHRpb25hbDw+IHdpdGgKKyAgICAgICAgYSBmdW5jdGlv
biByZWZlcmVuY2UuCisgICAgICAgIChXVEY6OlVSTEhlbHBlcnM6OmNvbGxlY3RSYW5nZXNUaGF0
TmVlZE1hcHBpbmcpOiBEaXR0by4KKyAgICAgICAgKFdURjo6VVJMSGVscGVyczo6YXBwbHlIb3N0
TmFtZUZ1bmN0aW9uVG9NYWlsVG9VUkxTdHJpbmcpOiBEaXR0by4KKyAgICAgICAgKFdURjo6VVJM
SGVscGVyczo6YXBwbHlIb3N0TmFtZUZ1bmN0aW9uVG9VUkxTdHJpbmcpOiBEaXR0by4KKyAgICAg
ICAgKFdURjo6VVJMSGVscGVyczo6bWFwSG9zdE5hbWVzKTogRGl0dG8uCisgICAgICAgIChXVEY6
OlVSTEhlbHBlcnM6OnVzZXJWaXNpYmxlVVJMKTogRGl0dG8uCisgICAgICAgICogd3RmL1VSTEhl
bHBlcnMuaDogRGl0dG8uCisKKyAgICAgICAgKiB3dGYvY29jb2EvTlNVUkxFeHRyYXMubW06Cisg
ICAgICAgIChXVEY6OmRlY29kZUhvc3ROYW1lKTogUGFzcyBudWxscHRyIGZvciBVUkxEZWNvZGVG
dW5jdGlvbi4KKwogMjAyMC0wNS0wOSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgRGVsZXRlIHNvbWUgZGVhZCBjb2RlIGluIFdvcmtRdWV1ZUNvY29hLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGNmYzkyM2UyMmI1ODQyZjliZDEzMmEwMTY0YWQ0NmQ3OTYxNDVmMzIuLjY0MTMy
NTZjMjg4MTcyMWMxOWIwNDU1MGI0N2MyNmZjYmM3ZGQxZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw3NSBAQAorMjAyMC0wNS0xMCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgRml4IHByb2JsZW1zIGNhdWdodCBieSByZXBsYWNpbmcgV1RGOjpPcHRpb25hbCB3aXRo
IHN0ZDo6b3B0aW9uYWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxMTcwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4
ZWN1dGVTZWxlY3RUb01hcmspOiBSZW1vdmUgZXJyb25lb3VzIGNvZGUgdGhhdCBjb252ZXJ0cwor
ICAgICAgICBhIGxpdmUgcmFuZ2UgdG8gYSBTaW1wbGVSYW5nZSBhbmQgdGhlbiBiYWNrIGFnYWlu
LgorCisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTmV0d29ya0FnZW50Ojp3aWxsU2VuZFJlcXVl
c3QpOiBQYXNzIGEgcG9pbnRlciB0bworICAgICAgICBhIFJlc291cmNlUmVxdWVzdC4KKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3Rvck5ldHdvcmtBZ2VudDo6ZGlkTG9hZFJlc291cmNlRnJvbU1l
bW9yeUNhY2hlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JOZXR3b3JrQWdl
bnQ6OmJ1aWxkSW5pdGlhdG9yT2JqZWN0KTogVGFrZSBhIGNvbnN0KgorICAgICAgICB0byBhIFJl
c291cmNlUmVxdWVzdCBpbnN0ZWFkIG9mIGFuIE9wdGlvbmFsPGNvbnN0IFJlc291cmNlUmVxdWVz
dCY+CisgICAgICAgIGJlY2F1c2Ugc3RkOjpvcHRpb25hbCBkb2VzIG5vdCB3b3JrIHdpdGggcmVm
ZXJlbmNlIHR5cGVzLgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29y
a0FnZW50Lmg6IFVwZGF0ZSBmb3IgdGhlIGNoYW5nZSBhYm92ZS4KKworICAgICAgICAqIGxheW91
dC9mbG9hdHMvRmxvYXRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
SXRlcmF0b3I6Om9wZXJhdG9yKyspOiBGaXggY29kZSB0aGF0IHdhcyBhY2NpZGVudGFsbHkKKyAg
ICAgICAgY29tcGFyaW5nIHR3byBvcHRpb25hbHMsIGFmdGVyIGFscmVhZHkgY2hlY2tpbmcgdGhl
bSBmb3IgbnVsbC4gSW5zdGVhZAorICAgICAgICB3ZSBzaG91bGQgY29tcGFyZSB0aGVpciB2YWx1
ZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpzY3JlZW5EYXRhKTogUmV0dXJuIGEgY29uc3QqIGluc3RlYWQgb2YgYW4gT3B0aW9u
YWw8Y29uc3QmPgorICAgICAgICBiZWNhdXNlIHN0ZDo6b3B0b25hbCBkb2VzIG5vdCB3b3JrIHdp
dGggcmVmZXJlbmNlIHR5cGVzLgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmg6
IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZS4gQWxzbyByZW1vdmVkIGJvdGgKKyAgICAgICAgdGhlIHVu
bmVlZGVkIGluY2x1ZGUgb2YgT3B0aW9uYWwuaCAoY291bGQgaGF2ZSBpbmNsdWRlZCBGb3J3YXJk
LmgpIGFuZAorICAgICAgICBvZiBIYXNoTWFwLmggYW5kIHB1dCB0aGUgTWFjLXNwZWNpZmljIHR5
cGUgSU9SZWdpc3RyeUdQVUlEIGluc2lkZSBhCisgICAgICAgIFBMQVRGT1JNKE1BQykgI2lmIHN0
YXRlbWVudC4KKworICAgICAgICAqIHBsYXRmb3JtL1NjcmVlblByb3BlcnRpZXMuaDogTW92ZWQg
dGhlIEhhc2hNYXAuaCBpbmNsdWRlIGhlcmUsIHNpbmNlCisgICAgICAgIHRoaXMgaXMgdGhlIGhl
YWRlciB0aGF0IHVzZXMgaXQuIENoYW5nZWQgdGhlIEVuY29kZWRDb2xvclNwYWNlRGF0YVR5cGUK
KyAgICAgICAgZW51bSB0byBhbiBlbnVtIGNsYXNzIGFuZCBnYXZlIGl0IG11Y2ggc2hvcnRlciBu
YW1lcy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkRhdGE6OmVuY29kZSBjb25zdCk6IFVwZGF0
ZWQgZm9yIHRoZSBlbnVtIGNsYXNzIGNoYW5nZS4KKyAgICAgICAgQWxzbyBmaXhlZCBhIG1pc3Rh
a2Ugd2hlcmUgdGhlIGNvZGUgd291bGQgdXNlIG9wZXJhdG9yPDwgaW5zdGVhZCBvZgorICAgICAg
ICBlbmNvZGVFbnVtIGZvciB0aGUgY29sb3Igc3BhY2UgdHlwZSBvZiBOdWxsLiBUaGlzIHdvdWxk
IGxlYWQgdG8gc29tZQorICAgICAgICBraW5kIG9mIGRlY29kaW5nIGVycm9yLCByYXRoZXIgdGhh
biBhIG51bGwgY2dDb2xvclNwYWNlLgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuRGF0YTo6ZGVj
b2RlKTogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvUGxhdGZvcm1TY3JlZW5JT1Mu
bW06CisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5Jc01vbm9jaHJvbWUpOiBVcGRhdGVkIHNpbmNl
IHNjcmVlbkRhdGEgcmV0dXJucyBhIHBvaW50ZXIuCisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5I
YXNJbnZlcnRlZENvbG9ycyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuU3VwcG9y
dHNFeHRlbmRlZENvbG9yKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5TaXplKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjphdmFpbGFibGVTY3JlZW5TaXplKTogRGl0dG8uCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW06IE1vdmVkIGRlY2xh
cmF0aW9uIG9mCisgICAgICAgIENHRGlzcGxheVVzZXNGb3JjZVRvR3JheSB0byBDb3JlR3JhcGhp
Y3NTUEkuaC4gUmVtb3ZlZCB1bnVzZWQgZGVjbGFyYXRpb24KKyAgICAgICAgb2YgQ0dEaXNwbGF5
VXNlc0ludmVydGVkUG9sYXJpdHkuCisgICAgICAgIChXZWJDb3JlOjpwcmltYXJ5T3BlbkdMRGlz
cGxheU1hc2spOiBVcGRhdGVkIHNpbmNlIHNjcmVlbmREYXRhIHJldHVybnMgYSBwb2ludGVyLgor
ICAgICAgICAoV2ViQ29yZTo6ZGlzcGxheU1hc2tGb3JEaXNwbGF5KTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpncHVJREZvckRpc3BsYXkpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OnNj
cmVlblByb3BlcnRpZXMpOiBEaXR0by4gQWxzbyByZW5hbWVkIGZyb20gZ2V0U2NyZWVuUHJvcGVy
dGllcyB0bworICAgICAgICBhZGhlcmUgdG8gV2ViS2l0IGNvZGluZyBzdHlsZS4KKyAgICAgICAg
KFdlYkNvcmU6OnNjcmVlbklzTW9ub2Nocm9tZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
c2NyZWVuSGFzSW52ZXJ0ZWRDb2xvcnMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OnNjcmVl
bkRlcHRoKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5EZXB0aFBlckNvbXBvbmVu
dCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuUmVjdEZvckRpc3BsYXkpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlblJlY3QpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OnNjcmVlbkF2YWlsYWJsZVJlY3QpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OnNjcmVl
bkNvbG9yU3BhY2UpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlblN1cHBvcnRzRXh0
ZW5kZWRDb2xvcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuU3VwcG9ydHNIaWdo
RHluYW1pY1JhbmdlKTogRGl0dG8uCisKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJUaHJlYWQ6OnF1ZXVlVGFza1RvRmlyZUluc3RhbGxFdmVudCk6CisgICAgICAgIFJlbW92ZWQg
Y2FwdHVyZSBvZiB1bnVzZWQgam9iRGF0YUlkZW50aWZpZXIuCisKIDIwMjAtMDUtMDkgIERhcmlu
IEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFRpZ2h0ZW4gdXAgbG9naWMgaW4g
RG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyOjp1cGRhdGVBbmltYXRpb25zQW5kU2VuZEV2ZW50
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggYWZlNTVhMDhlZTQ4ZDFkNmJmOWM1ZjZjM2ZlNjZjMmI5
Y2I3ZmFkZi4uOGFiMDJiM2FlZjc3YWNkYTMxYzQ1NjIyYWI3ZTVlZDRmMWMxNGI3MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDUtMTAgIERhcmluIEFkbGVyICA8
ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBwcm9ibGVtcyBjYXVnaHQgYnkgcmVwbGFj
aW5nIFdURjo6T3B0aW9uYWwgd2l0aCBzdGQ6Om9wdGlvbmFsCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE3MDMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJ
Lmg6IE1vdmVkIGRlZmluaXRpb24gb2YgQ0dEaXNwbGF5VXNlc0ZvcmNlVG9HcmF5CisgICAgICAg
IGhlcmUgZnJvbSBQbGF0Zm9ybVNjcmVlbk1hYy5tbSBhbmQgYWxzbyBhZGRlZCBpbmNsdWRlIG9m
IHRoZSBwcml2YXRlIGhlYWRlcgorICAgICAgICBpdCdzIGZyb20gd2hlbiBjb21waWxpbmcgd2l0
aCB0aGUgQXBwbGUgaW50ZXJuYWwgU0RLIGZvciB0aGUgYWRkaXRpb25hbAorICAgICAgICBjaGVj
a2luZyB0aGF0IHdlIGdldCBmcm9tIHVzaW5nIGJvdGguCisKIDIwMjAtMDUtMDkgIERhdmlkIEtp
bHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGFwdCBMb2NhbEN1cnJlbnRH
cmFwaGljc0NvbnRleHQgZm9yIGlPUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBjMWI3OGQyOWVkYjYwMjgzNjZhMzhi
ODU4NDMzMDRmMTA1YjY0YzE0Li45MTZiNTBjYTkwMjY1ZTUzYTg0NzA0NDE4ZTZlZGM5OGU5NGE1
OTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTA1LTEwICBEYXJpbiBBZGxlciAg
PGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggcHJvYmxlbXMgY2F1Z2h0IGJ5IHJlcGxh
Y2luZyBXVEY6Ok9wdGlvbmFsIHdpdGggc3RkOjpvcHRpb25hbAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExNzAzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dl
YlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OnBsYWluVGV4dEZvckNvbnRleHQpOiBDbGFy
aWZpZWQgYW1iaWd1b3VzIG92ZXJsb2FkIHJlc29sdXRpb24gYnkgd3JpdGluZworICAgICAgICB0
aGUgY29udmVyc2lvbiBmcm9tIGEgbGl2ZSByYW5nZSB0byBhIFNpbXBsZVJhbmdlIG91dCBleHBs
aWNpdGx5LiBBbHNvIGZpeGVkIGEgdHlwbworICAgICAgICB3aGVyZSB0aGVyZSB3YXMgYSBtaXNz
aW5nICImIiBpbiBhICJjb25zdCYiIGFyZ3VtZW50LgorCiAyMDIwLTA1LTEwICBUaW0gSG9ydG9u
ICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIENsaWNraW5nIGEgdGVsOi8v
IGxpbmsgb24gaVBhZCB3aXRoIGEgdHJhY2twYWQgcHJlc2VudHMgZGlmZmVyZW50IFVJIHRoYW4g
dGFwcGluZyBvbiBpdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TWFjaGluZUNvbnRleHQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hY2hpbmVD
b250ZXh0LmgKaW5kZXggYzUwNTI1Mjc0N2IyM2RmMDIyNDRkOTI0ZTY3YjI1OTZmMjQ5YjBmYi4u
ZTU0NjYzM2I4ODQ1MmMwY2FjMjI0OThlZWFiZTNhYzM5NzA2NDM5MiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFjaGluZUNvbnRleHQuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9NYWNoaW5lQ29udGV4dC5oCkBAIC00NTQsMTEgKzQ1NCwx
MSBAQCBpbmxpbmUgT3B0aW9uYWw8TWFjcm9Bc3NlbWJsZXJDb2RlUHRyPFBsYXRmb3JtUmVnaXN0
ZXJzUENQdHJUYWc+PiBpbnN0cnVjdGlvblBvaQogICAgIHZvaWQqIHZhbHVlID0gaW5zdHJ1Y3Rp
b25Qb2ludGVySW1wbChjb25zdF9jYXN0PFBsYXRmb3JtUmVnaXN0ZXJzJj4ocmVncykpOwogI2Vu
ZGlmCiAgICAgaWYgKCF2YWx1ZSkKLSAgICAgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyQ29kZVB0
cjxQbGF0Zm9ybVJlZ2lzdGVyc1BDUHRyVGFnPihudWxscHRyKTsKKyAgICAgICAgcmV0dXJuIG1h
a2VPcHRpb25hbChNYWNyb0Fzc2VtYmxlckNvZGVQdHI8UGxhdGZvcm1SZWdpc3RlcnNQQ1B0clRh
Zz4obnVsbHB0cikpOwogICAgIGlmICghdXNlc1BvaW50ZXJUYWdnaW5nKCkpCi0gICAgICAgIHJl
dHVybiBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8UGxhdGZvcm1SZWdpc3RlcnNQQ1B0clRhZz4odmFs
dWUpOworICAgICAgICByZXR1cm4gbWFrZU9wdGlvbmFsKE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxQ
bGF0Zm9ybVJlZ2lzdGVyc1BDUHRyVGFnPih2YWx1ZSkpOwogICAgIGlmIChpc1RhZ2dlZFdpdGgo
dmFsdWUsIFBsYXRmb3JtUmVnaXN0ZXJzUENQdHJUYWcpKQotICAgICAgICByZXR1cm4gTWFjcm9B
c3NlbWJsZXJDb2RlUHRyPFBsYXRmb3JtUmVnaXN0ZXJzUENQdHJUYWc+KHZhbHVlKTsKKyAgICAg
ICAgcmV0dXJuIG1ha2VPcHRpb25hbChNYWNyb0Fzc2VtYmxlckNvZGVQdHI8UGxhdGZvcm1SZWdp
c3RlcnNQQ1B0clRhZz4odmFsdWUpKTsKICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9VUkxIZWxwZXJzLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L1VSTEhlbHBlcnMuY3BwCmluZGV4IDM2ZjgwODk4YzdkMGZhNDQ1MWEzY2RiNWY3MmM2M2IyNWIy
ZGZmOTMuLjUxYzVkZTA2MWI2NGZlNzQ1NWE2OTQxODRhN2U5MmMzMWU0NmM1ZjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL1VSTEhlbHBlcnMuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1VS
TEhlbHBlcnMuY3BwCkBAIC01NDMsNyArNTQzLDcgQEAgc3RhdGljIGJvb2wgYWxsQ2hhcmFjdGVy
c0FsbG93ZWRCeVRMRFJ1bGVzKGNvbnN0IFVDaGFyKiBidWZmZXIsIGludDMyX3QgbGVuZ3RoKQog
fQogCiAvLyBSZXR1cm4gdmFsdWUgb2YgbnVsbCBtZWFucyBubyBtYXBwaW5nIGlzIG5lY2Vzc2Fy
eS4KLU9wdGlvbmFsPFN0cmluZz4gbWFwSG9zdE5hbWUoY29uc3QgU3RyaW5nJiBob3N0TmFtZSwg
Y29uc3QgT3B0aW9uYWw8VVJMRGVjb2RlRnVuY3Rpb24+JiBkZWNvZGVGdW5jdGlvbikKK09wdGlv
bmFsPFN0cmluZz4gbWFwSG9zdE5hbWUoY29uc3QgU3RyaW5nJiBob3N0TmFtZSwgVVJMRGVjb2Rl
RnVuY3Rpb24gZGVjb2RlRnVuY3Rpb24pCiB7CiAgICAgaWYgKGhvc3ROYW1lLmxlbmd0aCgpID4g
aG9zdE5hbWVCdWZmZXJMZW5ndGgpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKQEAgLTU4MCw3
ICs1ODAsNyBAQCBPcHRpb25hbDxTdHJpbmc+IG1hcEhvc3ROYW1lKGNvbnN0IFN0cmluZyYgaG9z
dE5hbWUsIGNvbnN0IE9wdGlvbmFsPFVSTERlY29kZUZ1bgogCiB1c2luZyBNYXBwaW5nUmFuZ2Vz
VmVjdG9yID0gT3B0aW9uYWw8VmVjdG9yPHN0ZDo6dHVwbGU8dW5zaWduZWQsIHVuc2lnbmVkLCBT
dHJpbmc+Pj47CiAKLXN0YXRpYyB2b2lkIGNvbGxlY3RSYW5nZXNUaGF0TmVlZE1hcHBpbmcoY29u
c3QgU3RyaW5nJiBzdHJpbmcsIHVuc2lnbmVkIGxvY2F0aW9uLCB1bnNpZ25lZCBsZW5ndGgsIE1h
cHBpbmdSYW5nZXNWZWN0b3ImIGFycmF5LCBjb25zdCBPcHRpb25hbDxVUkxEZWNvZGVGdW5jdGlv
bj4mIGRlY29kZUZ1bmN0aW9uKQorc3RhdGljIHZvaWQgY29sbGVjdFJhbmdlc1RoYXROZWVkTWFw
cGluZyhjb25zdCBTdHJpbmcmIHN0cmluZywgdW5zaWduZWQgbG9jYXRpb24sIHVuc2lnbmVkIGxl
bmd0aCwgTWFwcGluZ1Jhbmdlc1ZlY3RvciYgYXJyYXksIFVSTERlY29kZUZ1bmN0aW9uIGRlY29k
ZUZ1bmN0aW9uKQogewogICAgIC8vIEdlbmVyYWxseSwgd2Ugd2FudCB0byBvcHRpbWl6ZSBmb3Ig
dGhlIGNhc2Ugd2hlcmUgdGhlcmUgaXMgb25lIGhvc3QgbmFtZSB0aGF0IGRvZXMgbm90IG5lZWQg
bWFwcGluZy4KICAgICAvLyBUaGVyZWZvcmUsIHdlIHVzZSBudWxsIHRvIGluZGljYXRlIG5vIG1h
cHBpbmcgaGVyZSBhbmQgYW4gZW1wdHkgYXJyYXkgdG8gaW5kaWNhdGUgZXJyb3IuCkBAIC01OTgs
NyArNTk4LDcgQEAgc3RhdGljIHZvaWQgY29sbGVjdFJhbmdlc1RoYXROZWVkTWFwcGluZyhjb25z
dCBTdHJpbmcmIHN0cmluZywgdW5zaWduZWQgbG9jYXRpb24KICAgICAgICAgYXJyYXktPmNvbnN0
cnVjdEFuZEFwcGVuZChsb2NhdGlvbiwgbGVuZ3RoLCAqaG9zdCk7CiB9CiAKLXN0YXRpYyB2b2lk
IGFwcGx5SG9zdE5hbWVGdW5jdGlvblRvTWFpbFRvVVJMU3RyaW5nKGNvbnN0IFN0cmluZyYgc3Ry
aW5nLCBjb25zdCBPcHRpb25hbDxVUkxEZWNvZGVGdW5jdGlvbj4mIGRlY29kZUZ1bmN0aW9uLCBN
YXBwaW5nUmFuZ2VzVmVjdG9yJiBhcnJheSkKK3N0YXRpYyB2b2lkIGFwcGx5SG9zdE5hbWVGdW5j
dGlvblRvTWFpbFRvVVJMU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBVUkxEZWNvZGVGdW5j
dGlvbiBkZWNvZGVGdW5jdGlvbiwgTWFwcGluZ1Jhbmdlc1ZlY3RvciYgYXJyYXkpCiB7CiAgICAg
Ly8gSW4gYSBtYWlsdG86IFVSTCwgaG9zdCBuYW1lcyBjb21lIGFmdGVyIGEgJ0AnIGNoYXJhY3Rl
ciBhbmQgZW5kIHdpdGggYSAnPicgb3IgJywnIG9yICc/JyBjaGFyYWN0ZXIuCiAgICAgLy8gU2tp
cCBxdW90ZWQgc3RyaW5ncyBzbyB0aGF0IGNoYXJhY3RlcnMgaW4gdGhlbSBkb24ndCBjb25mdXNl
IHVzLgpAQCAtNjcwLDcgKzY3MCw3IEBAIHN0YXRpYyB2b2lkIGFwcGx5SG9zdE5hbWVGdW5jdGlv
blRvTWFpbFRvVVJMU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBPCiAgICAgfQog
fQogCi1zdGF0aWMgdm9pZCBhcHBseUhvc3ROYW1lRnVuY3Rpb25Ub1VSTFN0cmluZyhjb25zdCBT
dHJpbmcmIHN0cmluZywgY29uc3QgT3B0aW9uYWw8VVJMRGVjb2RlRnVuY3Rpb24+JiBkZWNvZGVG
dW5jdGlvbiwgTWFwcGluZ1Jhbmdlc1ZlY3RvciYgYXJyYXkpCitzdGF0aWMgdm9pZCBhcHBseUhv
c3ROYW1lRnVuY3Rpb25Ub1VSTFN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZywgVVJMRGVjb2Rl
RnVuY3Rpb24gZGVjb2RlRnVuY3Rpb24sIE1hcHBpbmdSYW5nZXNWZWN0b3ImIGFycmF5KQogewog
ICAgIC8vIEZpbmQgaG9zdG5hbWVzLiBUb28gYmFkIHdlIGNhbid0IHVzZSBhbnkgcmVhbCBVUkwt
cGFyc2luZyBjb2RlIHRvIGRvIHRoaXMsCiAgICAgLy8gYnV0IHdlIGhhdmUgdG8gZG8gaXQgYmVm
b3JlIGRvaW5nIGFsbCB0aGUgJS1lc2NhcGluZywgYW5kIHRoaXMgaXMgdGhlIG9ubHkKQEAgLTcx
Myw3ICs3MTMsNyBAQCBzdGF0aWMgdm9pZCBhcHBseUhvc3ROYW1lRnVuY3Rpb25Ub1VSTFN0cmlu
Zyhjb25zdCBTdHJpbmcmIHN0cmluZywgY29uc3QgT3B0aW9uYQogICAgIGNvbGxlY3RSYW5nZXNU
aGF0TmVlZE1hcHBpbmcoc3RyaW5nLCBob3N0TmFtZVN0YXJ0LCBob3N0TmFtZUVuZCAtIGhvc3RO
YW1lU3RhcnQsIGFycmF5LCBkZWNvZGVGdW5jdGlvbik7CiB9CiAKLVN0cmluZyBtYXBIb3N0TmFt
ZXMoY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0IE9wdGlvbmFsPFVSTERlY29kZUZ1bmN0aW9u
PiYgZGVjb2RlRnVuY3Rpb24pCitTdHJpbmcgbWFwSG9zdE5hbWVzKGNvbnN0IFN0cmluZyYgc3Ry
aW5nLCBVUkxEZWNvZGVGdW5jdGlvbiBkZWNvZGVGdW5jdGlvbikKIHsKICAgICAvLyBHZW5lcmFs
bHksIHdlIHdhbnQgdG8gb3B0aW1pemUgZm9yIHRoZSBjYXNlIHdoZXJlIHRoZXJlIGlzIG9uZSBo
b3N0IG5hbWUgdGhhdCBkb2VzIG5vdCBuZWVkIG1hcHBpbmcuCiAgICAgCkBAIC04NjksNyArODY5
LDcgQEAgU3RyaW5nIHVzZXJWaXNpYmxlVVJMKGNvbnN0IENTdHJpbmcmIHVybCkKIAogICAgIGlm
IChtYXlOZWVkSG9zdE5hbWVEZWNvZGluZykgewogICAgICAgICAvLyBGSVhNRTogSXMgaXQgZ29v
ZCB0byBpZ25vcmUgdGhlIGZhaWx1cmUgb2YgbWFwSG9zdE5hbWVzIGFuZCBrZWVwIHJlc3VsdCBp
bnRhY3Q/Ci0gICAgICAgIGF1dG8gbWFwcGVkUmVzdWx0ID0gbWFwSG9zdE5hbWVzKHJlc3VsdCwg
bnVsbG9wdCk7CisgICAgICAgIGF1dG8gbWFwcGVkUmVzdWx0ID0gbWFwSG9zdE5hbWVzKHJlc3Vs
dCwgbnVsbHB0cik7CiAgICAgICAgIGlmICghIW1hcHBlZFJlc3VsdCkKICAgICAgICAgICAgIHJl
c3VsdCA9IG1hcHBlZFJlc3VsdDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9V
UkxIZWxwZXJzLmggYi9Tb3VyY2UvV1RGL3d0Zi9VUkxIZWxwZXJzLmgKaW5kZXggNzNmMjhkNDQ5
ZWE5NDkwZjMwOGJiYmNhYzlhNTU1MDJhOWIyYzdmMS4uMGFjMGIzZGU0OTRiZThmNzI4YTVjYWU2
MjhmZmFiNjg0ZmRlZWMyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVVJMSGVscGVycy5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL1VSTEhlbHBlcnMuaApAQCAtMzQsMTQgKzM0LDE0IEBACiBu
YW1lc3BhY2UgV1RGIHsKIG5hbWVzcGFjZSBVUkxIZWxwZXJzIHsKIAotdXNpbmcgVVJMRGVjb2Rl
RnVuY3Rpb24gPSBTdHJpbmcoJikoY29uc3QgU3RyaW5nJik7Cit1c2luZyBVUkxEZWNvZGVGdW5j
dGlvbiA9IFN0cmluZygqKShjb25zdCBTdHJpbmcmKTsKIAogV1RGX0VYUE9SVF9QUklWQVRFIFN0
cmluZyB1c2VyVmlzaWJsZVVSTChjb25zdCBDU3RyaW5nJiBVUkwpOwogdm9pZCBsb2FkSUROU2Ny
aXB0V2hpdGVMaXN0KCk7CiB2b2lkIHdoaXRlTGlzdElETlNjcmlwdChjb25zdCBjaGFyKiBzY3Jp
cHROYW1lKTsKIHZvaWQgaW5pdGlhbGl6ZURlZmF1bHRJRE5TY3JpcHRXaGl0ZUxpc3QoKTsKLU9w
dGlvbmFsPFN0cmluZz4gbWFwSG9zdE5hbWUoY29uc3QgU3RyaW5nJiwgY29uc3QgT3B0aW9uYWw8
VVJMRGVjb2RlRnVuY3Rpb24+Jik7Ci1TdHJpbmcgbWFwSG9zdE5hbWVzKGNvbnN0IFN0cmluZyYs
IGNvbnN0IE9wdGlvbmFsPFVSTERlY29kZUZ1bmN0aW9uPiYpOworT3B0aW9uYWw8U3RyaW5nPiBt
YXBIb3N0TmFtZShjb25zdCBTdHJpbmcmLCBVUkxEZWNvZGVGdW5jdGlvbik7CitTdHJpbmcgbWFw
SG9zdE5hbWVzKGNvbnN0IFN0cmluZyYsIFVSTERlY29kZUZ1bmN0aW9uKTsKIAogfSAvLyBuYW1l
c3BhY2UgVVJMSGVscGVycwogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9jb2NvYS9OU1VSTEV4dHJhcy5tbSBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL05TVVJM
RXh0cmFzLm1tCmluZGV4IDQ2MzFmMjc2ODE1OTFlY2QyNThhODY3YTAxMzZkYWRkYzAyYjY5MDYu
LjdiNjRjZWQ2YzJhYmI5NTNkNmY4MWVjNDhiZTEzOTdkYTY4NzU2NzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL2NvY29hL05TVVJMRXh0cmFzLm1tCisrKyBiL1NvdXJjZS9XVEYvd3RmL2Nv
Y29hL05TVVJMRXh0cmFzLm1tCkBAIC0xMDIsNyArMTAyLDcgQEAgc3RhdGljIFN0cmluZyBkZWNv
ZGVQZXJjZW50RXNjYXBlcyhjb25zdCBTdHJpbmcmIHN0cmluZykKIAogTlNTdHJpbmcgKmRlY29k
ZUhvc3ROYW1lKE5TU3RyaW5nICpzdHJpbmcpCiB7Ci0gICAgT3B0aW9uYWw8U3RyaW5nPiBob3N0
ID0gbWFwSG9zdE5hbWUoc3RyaW5nLCBudWxsb3B0KTsKKyAgICBPcHRpb25hbDxTdHJpbmc+IGhv
c3QgPSBtYXBIb3N0TmFtZShzdHJpbmcsIG51bGxwdHIpOwogICAgIGlmICghaG9zdCkKICAgICAg
ICAgcmV0dXJuIG5pbDsKICAgICByZXR1cm4gISpob3N0ID8gc3RyaW5nIDogKE5TU3RyaW5nICop
Kmhvc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3Jh
cGhpY3NTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQ
SS5oCmluZGV4IDRhOWM1ZGE0ZmYxNjY0MWVhMjEzMTllZjUyNDE5ZmVhMWY4ZjQ4MjkuLjA4YmFk
Y2ZkNjMxNzA5MDdkN2Q4NTYyMzgxZGU4ZjYyOGExMGE5NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oCkBAIC0zOCwxMyArMzgsMTUgQEAK
IAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKLSNpZiBQTEFURk9STShNQUMpCi0jaW5j
bHVkZSA8Q29sb3JTeW5jL0NvbG9yU3luY1ByaXYuaD4KLSNlbmRpZgogI2luY2x1ZGUgPENvcmVH
cmFwaGljcy9DR0ZvbnRDYWNoZS5oPgogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9DR1BhdGhQcml2
YXRlLmg+CiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NvcmVHcmFwaGljc1ByaXZhdGUuaD4KIAor
I2lmIFBMQVRGT1JNKE1BQykKKyNpbmNsdWRlIDxDb2xvclN5bmMvQ29sb3JTeW5jUHJpdi5oPgor
I2luY2x1ZGUgPENvcmVHcmFwaGljcy9DR0FjY2Vzc2liaWxpdHkuaD4KKyNlbmRpZgorCiAjZWxz
ZQogCiBzdHJ1Y3QgQ0dGb250SE1ldHJpY3MgewpAQCAtMzA5LDYgKzMxMSw5IEBAIHZvaWQgQ0dD
b250ZXh0U2V0Rm9jdXNSaW5nV2l0aENvbG9yKENHQ29udGV4dFJlZiwgQ0dGbG9hdCBibHVyLCBD
R0NvbG9yUmVmLCBjb25zCiAjZW5kaWYgLy8gUExBVEZPUk0oV0lOKQogCiAjaWYgUExBVEZPUk0o
TUFDKQorCitib29sIENHRGlzcGxheVVzZXNGb3JjZVRvR3JheSh2b2lkKTsKKwogdm9pZCBDR1NT
aHV0ZG93blNlcnZlckNvbm5lY3Rpb25zKHZvaWQpOwogCiBDR1NDb25uZWN0aW9uSUQgQ0dTTWFp
bkNvbm5lY3Rpb25JRCh2b2lkKTsKQEAgLTMyNCw2ICszMjksNyBAQCBzaXplX3QgQ0dEaXNwbGF5
TW9kZUdldFBpeGVsc1dpZGUoQ0dEaXNwbGF5TW9kZVJlZik7CiBzaXplX3QgQ0dEaXNwbGF5TW9k
ZUdldFBpeGVsc0hpZ2goQ0dEaXNwbGF5TW9kZVJlZik7CiAKICNpZiBFTkFCTEUoV0VCUFJPQ0VT
U19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisKIENHRXJyb3IgQ0dTU2V0RGVueVdpbmRvd1NlcnZl
ckNvbm5lY3Rpb25zKGJvb2wpOwogCiB0eXBlZGVmIGludDMyX3QgQ0dTRGlzcGxheUlEOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKaW5kZXggOTNhZTc3ZGZkMDI0MmJh
MWViYWI3YmFmN2M1ZDU2NWY3ZWE2NzdkYS4uZGNmM2RjZWRjOWFiZWIzMzlmZjM4NDUxYjRhODg4
MjUzOTE2MTU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21t
YW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCkBA
IC0xMDU2LDcgKzEwNTYsNyBAQCBzdGF0aWMgYm9vbCBleGVjdXRlU2VsZWN0VG9NYXJrKEZyYW1l
JiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdAogICAgICAgICBQQUw6
OnN5c3RlbUJlZXAoKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICBmcmFtZS5z
ZWxlY3Rpb24oKS5zZXRTZWxlY3RlZFJhbmdlKHVuaW9uRE9NUmFuZ2VzKGNyZWF0ZUxpdmVSYW5n
ZSgqbWFyayksIGNyZWF0ZUxpdmVSYW5nZSgqc2VsZWN0aW9uKSkuZ2V0KCksIERPV05TVFJFQU0s
IEZyYW1lU2VsZWN0aW9uOjpTaG91bGRDbG9zZVR5cGluZzo6WWVzKTsKKyAgICBmcmFtZS5zZWxl
Y3Rpb24oKS5zZXRTZWxlY3RlZFJhbmdlKHVuaW9uRE9NUmFuZ2VzKGNyZWF0ZUxpdmVSYW5nZSgq
bWFyayksICpzZWxlY3Rpb24pLmdldCgpLCBET1dOU1RSRUFNLCBGcmFtZVNlbGVjdGlvbjo6U2hv
dWxkQ2xvc2VUeXBpbmc6Olllcyk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50
LmNwcAppbmRleCA0YmRlZTMwMDFmZGI0ZmVjMGVlZTM1ZjU3Yzk5MmE5NjJkMjY1OGNmLi5hZmNk
ZDJhN2ZhZmZlMGJlYzk4MjA3MmQ4OTRiYzg1YzZlMzBjNDRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3Bw
CkBAIC00NTYsNyArNDU2LDcgQEAgdm9pZCBJbnNwZWN0b3JOZXR3b3JrQWdlbnQ6OndpbGxTZW5k
UmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG8KICAgICBhdXRvIHBy
b3RvY29sUmVzb3VyY2VUeXBlID0gSW5zcGVjdG9yUGFnZUFnZW50OjpyZXNvdXJjZVR5cGVKU09O
KHR5cGUpOwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbG9hZGVyICYmIGxvYWRlci0+ZnJh
bWUoKSA/IGxvYWRlci0+ZnJhbWUoKS0+ZG9jdW1lbnQoKSA6IG51bGxwdHI7Ci0gICAgYXV0byBp
bml0aWF0b3JPYmplY3QgPSBidWlsZEluaXRpYXRvck9iamVjdChkb2N1bWVudCwgcmVxdWVzdCk7
CisgICAgYXV0byBpbml0aWF0b3JPYmplY3QgPSBidWlsZEluaXRpYXRvck9iamVjdChkb2N1bWVu
dCwgJnJlcXVlc3QpOwogCiAgICAgU3RyaW5nIHVybCA9IGxvYWRlciA/IGxvYWRlci0+dXJsKCku
c3RyaW5nKCkgOiByZXF1ZXN0LnVybCgpLnN0cmluZygpOwogICAgIG1fZnJvbnRlbmREaXNwYXRj
aGVyLT5yZXF1ZXN0V2lsbEJlU2VudChyZXF1ZXN0SWQsIGZyYW1lSWQsIGxvYWRlcklkLCB1cmws
IGJ1aWxkT2JqZWN0Rm9yUmVzb3VyY2VSZXF1ZXN0KHJlcXVlc3QpLCBzZW5kVGltZXN0YW1wLCB3
YWxsdGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnNlY29uZHMoKSwgaW5pdGlhdG9yT2JqZWN0LCBi
dWlsZE9iamVjdEZvclJlc291cmNlUmVzcG9uc2UocmVkaXJlY3RSZXNwb25zZSwgbnVsbHB0ciks
IHR5cGUgIT0gSW5zcGVjdG9yUGFnZUFnZW50OjpPdGhlclJlc291cmNlID8gJnByb3RvY29sUmVz
b3VyY2VUeXBlIDogbnVsbHB0ciwgdGFyZ2V0SWQuaXNFbXB0eSgpID8gbnVsbHB0ciA6ICZ0YXJn
ZXRJZCk7CkBAIC02MzYsNyArNjM2LDcgQEAgdm9pZCBJbnNwZWN0b3JOZXR3b3JrQWdlbnQ6OmRp
ZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShEb2N1bWVudExvYWRlciogbG9hZGUKIAogICAg
IG1fcmVzb3VyY2VzRGF0YS0+cmVzb3VyY2VDcmVhdGVkKHJlcXVlc3RJZCwgbG9hZGVySWQsIHJl
c291cmNlKTsKIAotICAgIGF1dG8gaW5pdGlhdG9yT2JqZWN0ID0gYnVpbGRJbml0aWF0b3JPYmpl
Y3QobG9hZGVyLT5mcmFtZSgpID8gbG9hZGVyLT5mcmFtZSgpLT5kb2N1bWVudCgpIDogbnVsbHB0
ciwgcmVzb3VyY2UucmVzb3VyY2VSZXF1ZXN0KCkpOworICAgIGF1dG8gaW5pdGlhdG9yT2JqZWN0
ID0gYnVpbGRJbml0aWF0b3JPYmplY3QobG9hZGVyLT5mcmFtZSgpID8gbG9hZGVyLT5mcmFtZSgp
LT5kb2N1bWVudCgpIDogbnVsbHB0ciwgJnJlc291cmNlLnJlc291cmNlUmVxdWVzdCgpKTsKIAog
ICAgIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSBpZGVhbCB0byBnZW5lcmF0ZSB0aGUgTmV0d29yay5S
ZXNwb25zZSB3aXRoIHRoZSBNZW1vcnlDYWNoZSBzb3VyY2UKICAgICAvLyBpbnN0ZWFkIG9mIHdo
YXRldmVyIFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZSB0aGUgQ2FjaGVkUmVzb3VyY2VzJ3MgcmVz
cG9uc2UgaGFzLgpAQCAtNzA2LDcgKzcwNiw3IEBAIHZvaWQgSW5zcGVjdG9yTmV0d29ya0FnZW50
OjpkaWRTY2hlZHVsZVN0eWxlUmVjYWxjdWxhdGlvbihEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAg
ICAgIG1fc3R5bGVSZWNhbGN1bGF0aW9uSW5pdGlhdG9yID0gYnVpbGRJbml0aWF0b3JPYmplY3Qo
JmRvY3VtZW50KTsKIH0KIAotUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6Ok5ldHdvcms6Oklu
aXRpYXRvcj4gSW5zcGVjdG9yTmV0d29ya0FnZW50OjpidWlsZEluaXRpYXRvck9iamVjdChEb2N1
bWVudCogZG9jdW1lbnQsIE9wdGlvbmFsPGNvbnN0IFJlc291cmNlUmVxdWVzdCY+IHJlc291cmNl
UmVxdWVzdCkKK1JlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpOZXR3b3JrOjpJbml0aWF0b3I+
IEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6YnVpbGRJbml0aWF0b3JPYmplY3QoRG9jdW1lbnQqIGRv
Y3VtZW50LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QqIHJlc291cmNlUmVxdWVzdCkKIHsKICAgICAv
LyBGSVhNRTogV29ya2VyIHN1cHBvcnQuCiAgICAgaWYgKCFpc01haW5UaHJlYWQoKSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3Jr
QWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29y
a0FnZW50LmgKaW5kZXggYjAzOGExODc5YzA0M2FhMTdkYWU5NzQyNTY5M2YyOWJlNDJlMzI1OC4u
YmZkMTMxZTliNTg1NmM4NGRhNzcyNDgwNWU3MTM5N2I3Yzc0ODZhOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5o
CkBAIC0xNDUsNyArMTQ1LDcgQEAgcHJpdmF0ZToKIAogICAgIFdlYlNvY2tldCogd2ViU29ja2V0
Rm9yUmVxdWVzdElkKGNvbnN0IFN0cmluZyYgcmVxdWVzdElkKTsKIAotICAgIFJlZlB0cjxJbnNw
ZWN0b3I6OlByb3RvY29sOjpOZXR3b3JrOjpJbml0aWF0b3I+IGJ1aWxkSW5pdGlhdG9yT2JqZWN0
KERvY3VtZW50KiwgT3B0aW9uYWw8Y29uc3QgUmVzb3VyY2VSZXF1ZXN0Jj4gPSBXVEY6Om51bGxv
cHQpOworICAgIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpOZXR3b3JrOjpJbml0aWF0b3I+
IGJ1aWxkSW5pdGlhdG9yT2JqZWN0KERvY3VtZW50KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0KiA9
IG51bGxwdHIpOwogICAgIFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpOZXR3b3JrOjpSZXNvdXJj
ZVRpbWluZz4gYnVpbGRPYmplY3RGb3JUaW1pbmcoY29uc3QgTmV0d29ya0xvYWRNZXRyaWNzKiwg
UmVzb3VyY2VMb2FkZXImKTsKICAgICBSZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6TmV0d29yazo6
TWV0cmljcz4gYnVpbGRPYmplY3RGb3JNZXRyaWNzKGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYp
OwogICAgIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpOZXR3b3JrOjpSZXNwb25zZT4gYnVp
bGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBSZXNv
dXJjZUxvYWRlciopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0cy9G
bG9hdGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0cy9GbG9hdGlu
Z0NvbnRleHQuY3BwCmluZGV4IDJiN2VkYjNmZTc3MWMwN2NhMGE5YTkzMDY5YmNiMjMxMTIzYTJm
OGYuLmU4MjlmNjU1MTM5NjdkM2ZkOTUyMGUxNTUzNzBhNTJkNjAyYjcxNDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRpbmdDb250ZXh0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0aW5nQ29udGV4dC5jcHAKQEAgLTU5NSw4
ICs1OTUsOCBAQCBJdGVyYXRvciYgSXRlcmF0b3I6Om9wZXJhdG9yKysoKQogICAgIGF1dG8gbGVm
dEJvdHRvbSA9IG1fY3VycmVudC5sZWZ0KCkgPyBPcHRpb25hbDxQb3NpdGlvbkluQ29udGV4dFJv
b3Q+KG1fY3VycmVudC5sZWZ0KCktPmJvdHRvbSgpKSA6IFdURjo6bnVsbG9wdDsKICAgICBhdXRv
IHJpZ2h0Qm90dG9tID0gbV9jdXJyZW50LnJpZ2h0KCkgPyBPcHRpb25hbDxQb3NpdGlvbkluQ29u
dGV4dFJvb3Q+KG1fY3VycmVudC5yaWdodCgpLT5ib3R0b20oKSkgOiBXVEY6Om51bGxvcHQ7CiAK
LSAgICBhdXRvIHVwZGF0ZUxlZnQgPSAobGVmdEJvdHRvbSA9PSByaWdodEJvdHRvbSkgfHwgKCFy
aWdodEJvdHRvbSB8fCAobGVmdEJvdHRvbSAmJiBsZWZ0Qm90dG9tIDwgcmlnaHRCb3R0b20pKTsg
Ci0gICAgYXV0byB1cGRhdGVSaWdodCA9IChsZWZ0Qm90dG9tID09IHJpZ2h0Qm90dG9tKSB8fCAo
IWxlZnRCb3R0b20gfHwgKHJpZ2h0Qm90dG9tICYmIGxlZnRCb3R0b20gPiByaWdodEJvdHRvbSkp
OyAKKyAgICBhdXRvIHVwZGF0ZUxlZnQgPSAobGVmdEJvdHRvbSA9PSByaWdodEJvdHRvbSkgfHwg
KCFyaWdodEJvdHRvbSB8fCAobGVmdEJvdHRvbSAmJiAqbGVmdEJvdHRvbSA8ICpyaWdodEJvdHRv
bSkpOworICAgIGF1dG8gdXBkYXRlUmlnaHQgPSAobGVmdEJvdHRvbSA9PSByaWdodEJvdHRvbSkg
fHwgKCFsZWZ0Qm90dG9tIHx8IChyaWdodEJvdHRvbSAmJiAqbGVmdEJvdHRvbSA+ICpyaWdodEJv
dHRvbSkpOwogCiAgICAgaWYgKHVwZGF0ZUxlZnQpIHsKICAgICAgICAgQVNTRVJUKG1fY3VycmVu
dC5tX2Zsb2F0UGFpci5sZWZ0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtU2NyZWVuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU2Ny
ZWVuLmNwcAppbmRleCBjZGNkNjY4MzE2NWFlY2I4ZDFkMWQ4OGQxNWIxMTA4OTQ4YTFmMGFjLi45
YTBkOGY1YzU3ZjU4NjQ0NWY2OTkwODM5NWU0YmMxMDdjNmIwNjcyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uY3BwCkBAIC00OCwyMSArNDgsMjAgQEAgdm9pZCBz
ZXRTY3JlZW5Qcm9wZXJ0aWVzKGNvbnN0IFNjcmVlblByb3BlcnRpZXMmIHByb3BlcnRpZXMpCiAg
ICAgc2NyZWVuUHJvcGVydGllcygpID0gcHJvcGVydGllczsKIH0KIAotT3B0aW9uYWw8Y29uc3Qg
U2NyZWVuRGF0YSY+IHNjcmVlbkRhdGEoUGxhdGZvcm1EaXNwbGF5SUQgc2NyZWVuZGlzcGxheUlE
KQorY29uc3QgU2NyZWVuRGF0YSogc2NyZWVuRGF0YShQbGF0Zm9ybURpc3BsYXlJRCBzY3JlZW5E
aXNwbGF5SUQpCiB7CiAgICAgaWYgKHNjcmVlblByb3BlcnRpZXMoKS5zY3JlZW5EYXRhTWFwLmlz
RW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKICAgICAvLyBSZXR1cm4gcHJvcGVydHkgb2YgdGhlIGZpcnN0IHNjcmVlbiBpZiB0
aGUgc2NyZWVuIGlzIG5vdCBmb3VuZCBpbiB0aGUgbWFwLgotICAgIGF1dG8gZGlzcGxheUlEID0g
c2NyZWVuZGlzcGxheUlEID8gc2NyZWVuZGlzcGxheUlEIDogcHJpbWFyeVNjcmVlbkRpc3BsYXlJ
RCgpOwotICAgIGlmIChkaXNwbGF5SUQpIHsKLSAgICAgICAgYXV0byBzY3JlZW5Qcm9wZXJ0aWVz
Rm9yRGlzcGxheSA9IHNjcmVlblByb3BlcnRpZXMoKS5zY3JlZW5EYXRhTWFwLmZpbmQoZGlzcGxh
eUlEKTsKLSAgICAgICAgaWYgKHNjcmVlblByb3BlcnRpZXNGb3JEaXNwbGF5ICE9IHNjcmVlblBy
b3BlcnRpZXMoKS5zY3JlZW5EYXRhTWFwLmVuZCgpKQotICAgICAgICAgICAgcmV0dXJuIHNjcmVl
blByb3BlcnRpZXNGb3JEaXNwbGF5LT52YWx1ZTsKKyAgICBpZiAoYXV0byBkaXNwbGF5SUQgPSBz
Y3JlZW5EaXNwbGF5SUQgPyBzY3JlZW5EaXNwbGF5SUQgOiBwcmltYXJ5U2NyZWVuRGlzcGxheUlE
KCkpIHsKKyAgICAgICAgYXV0byBwcm9wZXJ0aWVzID0gc2NyZWVuUHJvcGVydGllcygpLnNjcmVl
bkRhdGFNYXAuZmluZChkaXNwbGF5SUQpOworICAgICAgICBpZiAocHJvcGVydGllcyAhPSBzY3Jl
ZW5Qcm9wZXJ0aWVzKCkuc2NyZWVuRGF0YU1hcC5lbmQoKSkKKyAgICAgICAgICAgIHJldHVybiAm
cHJvcGVydGllcy0+dmFsdWU7CiAgICAgfQogCiAgICAgLy8gTGFzdCByZXNvcnQ6IHVzZSB0aGUg
Zmlyc3QgaXRlbSBpbiB0aGUgc2NyZWVuIGxpc3QuCi0gICAgcmV0dXJuIHNjcmVlblByb3BlcnRp
ZXMoKS5zY3JlZW5EYXRhTWFwLmJlZ2luKCktPnZhbHVlOworICAgIHJldHVybiAmc2NyZWVuUHJv
cGVydGllcygpLnNjcmVlbkRhdGFNYXAuYmVnaW4oKS0+dmFsdWU7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3Jt
U2NyZWVuLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oCmluZGV4
IGUzNTc3NGQzMjc3NTBmMDcwY2E1ZWJlODkyM2I1NDgyYTM0ZjYxNzYuLmI5MTNhZGQ2MjY5OWVm
M2RkNzFiMGZiNmU3YzFmNThkNzZiN2RiOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtU2NyZWVuLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1TY3JlZW4uaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYt
MjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA2LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0yNSwxNSArMjUsMTEgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNp
bmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KLQogI2lmIFVTRShHTElCKQogI2luY2x1ZGUgPHd0Zi9G
dW5jdGlvbi5oPgogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCi0jaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KLQogT0JKQ19DTEFTUyBOU1NjcmVlbjsKIE9CSkNfQ0xBU1MgTlNXaW5kb3c7CiAj
aWZkZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKQEAgLTYwLDEz
ICs1NiwxOSBAQCBjbGFzcyBGbG9hdFNpemU7CiBjbGFzcyBXaWRnZXQ7CiAKIHVzaW5nIFBsYXRm
b3JtRGlzcGxheUlEID0gdWludDMyX3Q7CisKKyNpZiBQTEFURk9STShNQUMpCisKIHVzaW5nIElP
UmVnaXN0cnlHUFVJRCA9IGludDY0X3Q7IC8vIEdsb2JhbCBJT0tpdCBJL08gcmVnaXN0cnlJRCB0
aGF0IGNhbiBtYXRjaCBhIEdQVSBhY3Jvc3MgcHJvY2VzcyBib3VuZGFyaWVzLgogCisjZW5kaWYK
KwogaW50IHNjcmVlbkRlcHRoKFdpZGdldCopOwogaW50IHNjcmVlbkRlcHRoUGVyQ29tcG9uZW50
KFdpZGdldCopOwogYm9vbCBzY3JlZW5Jc01vbm9jaHJvbWUoV2lkZ2V0Kik7CiAKIGJvb2wgc2Ny
ZWVuSGFzSW52ZXJ0ZWRDb2xvcnMoKTsKKwogI2lmIFVTRShHTElCKQogZG91YmxlIHNjcmVlbkRQ
SSgpOwogdm9pZCBzZXRTY3JlZW5EUElPYnNlcnZlckhhbmRsZXIoRnVuY3Rpb248dm9pZCgpPiYm
LCB2b2lkKik7CkBAIC05MiwxMCArOTQsMTEgQEAgc3RydWN0IFNjcmVlbkRhdGE7CiAgICAgCiBX
RUJDT1JFX0VYUE9SVCBTY3JlZW5Qcm9wZXJ0aWVzIGNvbGxlY3RTY3JlZW5Qcm9wZXJ0aWVzKCk7
CiBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNjcmVlblByb3BlcnRpZXMoY29uc3QgU2NyZWVuUHJv
cGVydGllcyYpOwotT3B0aW9uYWw8Y29uc3QgU2NyZWVuRGF0YSY+IHNjcmVlbkRhdGEoUGxhdGZv
cm1EaXNwbGF5SUQgc2NyZWVuZGlzcGxheUlEKTsKK2NvbnN0IFNjcmVlbkRhdGEqIHNjcmVlbkRh
dGEoUGxhdGZvcm1EaXNwbGF5SUQgc2NyZWVuZGlzcGxheUlEKTsKIFdFQkNPUkVfRVhQT1JUIFBs
YXRmb3JtRGlzcGxheUlEIHByaW1hcnlTY3JlZW5EaXNwbGF5SUQoKTsKICAgICAKICNpZiBQTEFU
Rk9STShNQUMpCisKIFdFQkNPUkVfRVhQT1JUIFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRChO
U1NjcmVlbiAqKTsKIAogV0VCQ09SRV9FWFBPUlQgTlNTY3JlZW4gKnNjcmVlbihOU1dpbmRvdyAq
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmVlblByb3BlcnRpZXMu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmVlblByb3BlcnRpZXMuaAppbmRleCBiZjQy
MDE2NGM5N2FhNzU5MjY1ZDYwMGQ3YjhiY2EzNzFkZjFhZGI0Li4xNmRlYWYwMDQxNGRhNzAxZjk1
YzFjZjRmMDBjNmQxODdjY2VmNWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JlZW5Qcm9wZXJ0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NyZWVu
UHJvcGVydGllcy5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIK
ICNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCkBAIC00OCwxMiArNDksOCBAQCBzdHJ1Y3QgU2NyZWVuRGF0YSB7CiAgICAgdWludDMyX3Qg
ZGlzcGxheU1hc2sgeyAwIH07CiAgICAgSU9SZWdpc3RyeUdQVUlEIGdwdUlEIHsgMCB9OwogI2Vu
ZGlmCi0gICAgZW51bSBFbmNvZGVkQ29sb3JTcGFjZURhdGFUeXBlIHsKLSAgICAgICAgTnVsbCwK
LSAgICAgICAgQ29sb3JTcGFjZU5hbWUsCi0gICAgICAgIENvbG9yU3BhY2VEYXRhLAotICAgIH07
CiAKKyAgICBlbnVtIGNsYXNzIENvbG9yU3BhY2VUeXBlIDogdWludDhfdCB7IE5vbmUsIE5hbWUs
IERhdGEgfTsKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVy
JikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNj
cmVlbkRhdGE+IGRlY29kZShEZWNvZGVyJik7CiB9OwpAQCAtMTAzLDI1ICsxMDAsMjQgQEAgdm9p
ZCBTY3JlZW5EYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBpZiAoY29s
b3JTcGFjZSkgewogICAgICAgICAvLyBUcnkgdG8gZW5jb2RlIHRoZSBuYW1lLgogICAgICAgICBp
ZiAoYXV0byBuYW1lID0gYWRvcHRDRihDR0NvbG9yU3BhY2VDb3B5TmFtZShjb2xvclNwYWNlLmdl
dCgpKSkpIHsKLSAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlRW51bShDb2xvclNwYWNlTmFtZSk7
CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZUVudW0oQ29sb3JTcGFjZVR5cGU6Ok5hbWUpOwog
ICAgICAgICAgICAgZW5jb2RlciA8PCBTdHJpbmcobmFtZS5nZXQoKSk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KIAogICAgICAgICAvLyBGYWlsaW5nIHRoYXQsIGp1c3QgZW5jb2Rl
IHRoZSBJQ0MgZGF0YS4KICAgICAgICAgaWYgKGF1dG8gcHJvZmlsZURhdGEgPSBhZG9wdENGKENH
Q29sb3JTcGFjZUNvcHlJQ0NEYXRhKGNvbG9yU3BhY2UuZ2V0KCkpKSkgewotICAgICAgICAgICAg
ZW5jb2Rlci5lbmNvZGVFbnVtKENvbG9yU3BhY2VEYXRhKTsKLQogICAgICAgICAgICAgVmVjdG9y
PHVpbnQ4X3Q+IGljY0RhdGE7CiAgICAgICAgICAgICBpY2NEYXRhLmFwcGVuZChDRkRhdGFHZXRC
eXRlUHRyKHByb2ZpbGVEYXRhLmdldCgpKSwgQ0ZEYXRhR2V0TGVuZ3RoKHByb2ZpbGVEYXRhLmdl
dCgpKSk7CiAKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlRW51bShDb2xvclNwYWNlVHlwZTo6
RGF0YSk7CiAgICAgICAgICAgICBlbmNvZGVyIDw8IGljY0RhdGE7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KICAgICB9CiAKICAgICAvLyBUaGUgY29sb3Igc3BhY2Ugd2FzIG51bGwg
b3IgZmFpbGVkIHRvIGJlIGVuY29kZWQuCi0gICAgZW5jb2RlciA8PCBOdWxsOworICAgIGVuY29k
ZXIuZW5jb2RlRW51bShDb2xvclNwYWNlVHlwZTo6Tm9uZSk7CiB9CiAKIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+CkBAIC0xNzksMTUgKzE3NSwxNSBAQCBPcHRpb25hbDxTY3JlZW5EYXRhPiBTY3Jl
ZW5EYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKICNlbmRpZgogCi0gICAgRW5jb2RlZENvbG9yU3BhY2VEYXRhVHlwZSBkYXRhVHlwZTsK
KyAgICBDb2xvclNwYWNlVHlwZSBkYXRhVHlwZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51
bShkYXRhVHlwZSkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKICAgICBSZXRhaW5Q
dHI8Q0dDb2xvclNwYWNlUmVmPiBjZ0NvbG9yU3BhY2U7CiAgICAgc3dpdGNoIChkYXRhVHlwZSkg
ewotICAgIGNhc2UgTnVsbDoKKyAgICBjYXNlIENvbG9yU3BhY2VUeXBlOjpOb25lOgogICAgICAg
ICBicmVhazsKLSAgICBjYXNlIENvbG9yU3BhY2VOYW1lOiB7CisgICAgY2FzZSBDb2xvclNwYWNl
VHlwZTo6TmFtZTogewogICAgICAgICBPcHRpb25hbDxTdHJpbmc+IGNvbG9yU3BhY2VOYW1lOwog
ICAgICAgICBkZWNvZGVyID4+IGNvbG9yU3BhY2VOYW1lOwogICAgICAgICBBU1NFUlQoY29sb3JT
cGFjZU5hbWUpOwpAQCAtMTk3LDcgKzE5Myw3IEBAIE9wdGlvbmFsPFNjcmVlbkRhdGE+IFNjcmVl
bkRhdGE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgICAgICBjZ0NvbG9yU3BhY2UgPSBh
ZG9wdENGKENHQ29sb3JTcGFjZUNyZWF0ZVdpdGhOYW1lKGNvbG9yU3BhY2VOYW1lLT5jcmVhdGVD
RlN0cmluZygpLmdldCgpKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBjYXNlIENvbG9y
U3BhY2VEYXRhOiB7CisgICAgY2FzZSBDb2xvclNwYWNlVHlwZTo6RGF0YTogewogICAgICAgICBP
cHRpb25hbDxWZWN0b3I8dWludDhfdD4+IGljY0RhdGE7CiAgICAgICAgIGRlY29kZXIgPj4gaWNj
RGF0YTsKICAgICAgICAgQVNTRVJUKGljY0RhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtU2NyZWVuSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1BsYXRmb3JtU2NyZWVuSU9TLm1tCmluZGV4IDdlY2RkODQ1Y2NhYzAwY2I2NGMw
Njc0MWZlOGRlM2QwMmQ0ZWMwY2EuLjJkZjg1ZjhkNDIxMWVkMTFjZmUyYTBmYzE3N2Q4ZDM1MWEx
ZThmYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVNj
cmVlbklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1TY3Jl
ZW5JT1MubW0KQEAgLTYwLDI3ICs2MCwyNCBAQCBpbnQgc2NyZWVuRGVwdGhQZXJDb21wb25lbnQo
V2lkZ2V0KikKIAogYm9vbCBzY3JlZW5Jc01vbm9jaHJvbWUoV2lkZ2V0KikKIHsKLSAgICBhdXRv
IHYgPSBzY3JlZW5EYXRhKHByaW1hcnlTY3JlZW5EaXNwbGF5SUQoKSk7Ci0gICAgaWYgKHYuaGFz
VmFsdWUoKSkKLSAgICAgICAgcmV0dXJuIHYtPnNjcmVlbklzTW9ub2Nocm9tZTsKKyAgICBpZiAo
YXV0byBkYXRhID0gc2NyZWVuRGF0YShwcmltYXJ5U2NyZWVuRGlzcGxheUlEKCkpKQorICAgICAg
ICByZXR1cm4gZGF0YS0+c2NyZWVuSXNNb25vY2hyb21lOwogICAgIAogICAgIHJldHVybiBQQUw6
OnNvZnRMaW5rVUlLaXRVSUFjY2Vzc2liaWxpdHlJc0dyYXlzY2FsZUVuYWJsZWQoKTsKIH0KIAog
Ym9vbCBzY3JlZW5IYXNJbnZlcnRlZENvbG9ycygpCiB7Ci0gICAgYXV0byB2ID0gc2NyZWVuRGF0
YShwcmltYXJ5U2NyZWVuRGlzcGxheUlEKCkpOwotICAgIGlmICh2Lmhhc1ZhbHVlKCkpCi0gICAg
ICAgIHJldHVybiB2LT5zY3JlZW5IYXNJbnZlcnRlZENvbG9yczsKKyAgICBpZiAoYXV0byBkYXRh
ID0gc2NyZWVuRGF0YShwcmltYXJ5U2NyZWVuRGlzcGxheUlEKCkpKQorICAgICAgICByZXR1cm4g
ZGF0YS0+c2NyZWVuSGFzSW52ZXJ0ZWRDb2xvcnM7CiAgICAgCiAgICAgcmV0dXJuIFBBTDo6c29m
dExpbmtVSUtpdFVJQWNjZXNzaWJpbGl0eUlzSW52ZXJ0Q29sb3JzRW5hYmxlZCgpOwogfQogCiBi
b29sIHNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvcihXaWRnZXQqKQogewotICAgIGF1dG8gdiA9
IHNjcmVlbkRhdGEocHJpbWFyeVNjcmVlbkRpc3BsYXlJRCgpKTsKLSAgICBpZiAodi5oYXNWYWx1
ZSgpKQotICAgICAgICByZXR1cm4gdi0+c2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yOworICAg
IGlmIChhdXRvIGRhdGEgPSBzY3JlZW5EYXRhKHByaW1hcnlTY3JlZW5EaXNwbGF5SUQoKSkpCisg
ICAgICAgIHJldHVybiBkYXRhLT5zY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3I7CiAKICAgICBy
ZXR1cm4gTUdHZXRCb29sQW5zd2VyKGtNR1FIYXNFeHRlbmRlZENvbG9yRGlzcGxheSk7CiB9CkBA
IC0xNTUsOSArMTUyLDggQEAgRmxvYXRTaXplIHNjcmVlblNpemUoKQogICAgIGlmIChkZXZpY2VI
YXNJUGFkQ2FwYWJpbGl0eSgpICYmIFtbUEFMOjpnZXRVSUFwcGxpY2F0aW9uQ2xhc3MoKSBzaGFy
ZWRBcHBsaWNhdGlvbl0gX2lzQ2xhc3NpY10pCiAgICAgICAgIHJldHVybiB7IDMyMCwgNDgwIH07
CiAKLSAgICBhdXRvIHYgPSBzY3JlZW5EYXRhKHByaW1hcnlTY3JlZW5EaXNwbGF5SUQoKSk7Ci0g
ICAgaWYgKHYuaGFzVmFsdWUoKSkKLSAgICAgICAgcmV0dXJuIHYtPnNjcmVlblJlY3Quc2l6ZSgp
OworICAgIGlmIChhdXRvIGRhdGEgPSBzY3JlZW5EYXRhKHByaW1hcnlTY3JlZW5EaXNwbGF5SUQo
KSkpCisgICAgICAgIHJldHVybiBkYXRhLT5zY3JlZW5SZWN0LnNpemUoKTsKIAogICAgIHJldHVy
biBGbG9hdFNpemUoW1tQQUw6OmdldFVJU2NyZWVuQ2xhc3MoKSBtYWluU2NyZWVuXSBfcmVmZXJl
bmNlQm91bmRzXS5zaXplKTsKIH0KQEAgLTE2Nyw5ICsxNjMsOCBAQCBGbG9hdFNpemUgYXZhaWxh
YmxlU2NyZWVuU2l6ZSgpCiAgICAgaWYgKGRldmljZUhhc0lQYWRDYXBhYmlsaXR5KCkgJiYgW1tQ
QUw6OmdldFVJQXBwbGljYXRpb25DbGFzcygpIHNoYXJlZEFwcGxpY2F0aW9uXSBfaXNDbGFzc2lj
XSkKICAgICAgICAgcmV0dXJuIHsgMzIwLCA0ODAgfTsKIAotICAgIGF1dG8gdiA9IHNjcmVlbkRh
dGEocHJpbWFyeVNjcmVlbkRpc3BsYXlJRCgpKTsKLSAgICBpZiAodi5oYXNWYWx1ZSgpKQotICAg
ICAgICByZXR1cm4gdi0+c2NyZWVuQXZhaWxhYmxlUmVjdC5zaXplKCk7CisgICAgaWYgKGF1dG8g
ZGF0YSA9IHNjcmVlbkRhdGEocHJpbWFyeVNjcmVlbkRpc3BsYXlJRCgpKSkKKyAgICAgICAgcmV0
dXJuIGRhdGEtPnNjcmVlbkF2YWlsYWJsZVJlY3Quc2l6ZSgpOwogCiAgICAgcmV0dXJuIEZsb2F0
U2l6ZShbUEFMOjpnZXRVSVNjcmVlbkNsYXNzKCkgbWFpblNjcmVlbl0uYm91bmRzLnNpemUpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVu
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1t
CmluZGV4IDU5Y2I3YjNjNmFhMjMwMWIzYjFhMGZjZjU5NjdhYmQ3ODY1MWMxNTIuLjAzNjg0ZTJi
NTFhZmY4M2E5OGIzMGRlNWRmOGY3MmExY2FlZGMxZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0KQEAgLTQwLDExICs0MCw2IEBACiAj
aW1wb3J0IDxwYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuaD4KICNlbmRpZgogCi1leHRl
cm4gIkMiIHsKLWJvb2wgQ0dEaXNwbGF5VXNlc0ludmVydGVkUG9sYXJpdHkodm9pZCk7Ci1ib29s
IENHRGlzcGxheVVzZXNGb3JjZVRvR3JheSh2b2lkKTsKLX0KLQogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAvLyBUaGVzZSBmdW5jdGlvbnMgc2NhbGUgYmV0d2VlbiBzY3JlZW4gYW5kIHBhZ2UgY29v
cmRpbmF0ZXMgYmVjYXVzZSBKYXZhU2NyaXB0L0RPTSBvcGVyYXRpb25zCkBAIC0xNDgsMTggKzE0
MywxNiBAQCB2b2lkIHNldFNob3VsZE92ZXJyaWRlU2NyZWVuU3VwcG9ydHNIaWdoRHluYW1pY1Jh
bmdlKGJvb2wgc2hvdWxkT3ZlcnJpZGUsIGJvb2wgcwogCiB1aW50MzJfdCBwcmltYXJ5T3BlbkdM
RGlzcGxheU1hc2soKQogewotICAgIGF1dG8gdiA9IHNjcmVlbkRhdGEocHJpbWFyeVNjcmVlbkRp
c3BsYXlJRCgpKTsKLSAgICBpZiAodi5oYXNWYWx1ZSgpKQotICAgICAgICByZXR1cm4gdi0+ZGlz
cGxheU1hc2s7CisgICAgaWYgKGF1dG8gZGF0YSA9IHNjcmVlbkRhdGEocHJpbWFyeVNjcmVlbkRp
c3BsYXlJRCgpKSkKKyAgICAgICAgcmV0dXJuIGRhdGEtPmRpc3BsYXlNYXNrOwogCiAgICAgcmV0
dXJuIDA7CiB9CiAKIHVpbnQzMl90IGRpc3BsYXlNYXNrRm9yRGlzcGxheShQbGF0Zm9ybURpc3Bs
YXlJRCBkaXNwbGF5SUQpCiB7Ci0gICAgYXV0byB2ID0gc2NyZWVuRGF0YShkaXNwbGF5SUQpOwot
ICAgIGlmICh2Lmhhc1ZhbHVlKCkpCi0gICAgICAgIHJldHVybiB2LT5kaXNwbGF5TWFzazsKKyAg
ICBpZiAoYXV0byBkYXRhID0gc2NyZWVuRGF0YShkaXNwbGF5SUQpKQorICAgICAgICByZXR1cm4g
ZGF0YS0+ZGlzcGxheU1hc2s7CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1
cm4gMDsKQEAgLTE3MywxMyArMTY2LDEyIEBAIElPUmVnaXN0cnlHUFVJRCBwcmltYXJ5R1BVSUQo
KQogSU9SZWdpc3RyeUdQVUlEIGdwdUlERm9yRGlzcGxheShQbGF0Zm9ybURpc3BsYXlJRCBkaXNw
bGF5SUQpCiB7CiAjaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQot
ICAgIGF1dG8gdiA9IHNjcmVlbkRhdGEoZGlzcGxheUlEKTsKLSAgICBpZiAodi5oYXNWYWx1ZSgp
KQotICAgICAgICByZXR1cm4gdi0+Z3B1SUQ7CisgICAgaWYgKGF1dG8gZGF0YSA9IHNjcmVlbkRh
dGEoZGlzcGxheUlEKSkKKyAgICAgICAgcmV0dXJuIGRhdGEtPmdwdUlEOworICAgIHJldHVybiAw
OwogI2Vsc2UKICAgICByZXR1cm4gZ3B1SURGb3JEaXNwbGF5TWFzayhDR0Rpc3BsYXlJRFRvT3Bl
bkdMRGlzcGxheU1hc2soZGlzcGxheUlEKSk7CiAjZW5kaWYKLSAgICByZXR1cm4gMDsKIH0KIAog
SU9SZWdpc3RyeUdQVUlEIGdwdUlERm9yRGlzcGxheU1hc2soR0x1aW50IGRpc3BsYXlNYXNrKQpA
QCAtMjE3LDE2ICsyMDksMTUgQEAgSU9SZWdpc3RyeUdQVUlEIGdwdUlERm9yRGlzcGxheU1hc2so
R0x1aW50IGRpc3BsYXlNYXNrKQogICAgIHJldHVybiAoSU9SZWdpc3RyeUdQVUlEKSBncHVJREhp
Z2ggPDwgMzIgfCBncHVJRExvdzsKIH0KIAotc3RhdGljIE9wdGlvbmFsPGNvbnN0IFNjcmVlbkRh
dGEmPiBnZXRTY3JlZW5Qcm9wZXJ0aWVzKFdpZGdldCogd2lkZ2V0KQorc3RhdGljIGNvbnN0IFNj
cmVlbkRhdGEqIHNjcmVlblByb3BlcnRpZXMoV2lkZ2V0KiB3aWRnZXQpCiB7CiAgICAgcmV0dXJu
IHNjcmVlbkRhdGEoZGlzcGxheUlEKHdpZGdldCkpOwogfQogCiBib29sIHNjcmVlbklzTW9ub2No
cm9tZShXaWRnZXQqIHdpZGdldCkKIHsKLSAgICBhdXRvIHYgPSBnZXRTY3JlZW5Qcm9wZXJ0aWVz
KHdpZGdldCk7Ci0gICAgaWYgKHYuaGFzVmFsdWUoKSkKLSAgICAgICAgcmV0dXJuIHYtPnNjcmVl
bklzTW9ub2Nocm9tZTsKKyAgICBpZiAoYXV0byBkYXRhID0gc2NyZWVuUHJvcGVydGllcyh3aWRn
ZXQpKQorICAgICAgICByZXR1cm4gZGF0YS0+c2NyZWVuSXNNb25vY2hyb21lOwogCiAgICAgLy8g
VGhpcyBpcyBhIHN5c3RlbS13aWRlIGFjY2Vzc2liaWxpdHkgc2V0dGluZywgc2FtZSBvbiBhbGwg
c2NyZWVucy4KICAgICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdl
OjpDYW5Db21tdW5pY2F0ZVdpdGhXaW5kb3dTZXJ2ZXIpKTsKQEAgLTIzNSw5ICsyMjYsOCBAQCBi
b29sIHNjcmVlbklzTW9ub2Nocm9tZShXaWRnZXQqIHdpZGdldCkKIAogYm9vbCBzY3JlZW5IYXNJ
bnZlcnRlZENvbG9ycygpCiB7Ci0gICAgYXV0byB2ID0gc2NyZWVuRGF0YShwcmltYXJ5U2NyZWVu
RGlzcGxheUlEKCkpOwotICAgIGlmICh2Lmhhc1ZhbHVlKCkpCi0gICAgICAgIHJldHVybiB2LT5z
Y3JlZW5IYXNJbnZlcnRlZENvbG9yczsKKyAgICBpZiAoYXV0byBkYXRhID0gc2NyZWVuRGF0YShw
cmltYXJ5U2NyZWVuRGlzcGxheUlEKCkpKQorICAgICAgICByZXR1cm4gZGF0YS0+c2NyZWVuSGFz
SW52ZXJ0ZWRDb2xvcnM7CiAKICAgICAvLyBUaGlzIGlzIGEgc3lzdGVtLXdpZGUgYWNjZXNzaWJp
bGl0eSBzZXR0aW5nLCBzYW1lIG9uIGFsbCBzY3JlZW5zLgogICAgIEFTU0VSVChoYXNQcm9jZXNz
UHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkNvbW11bmljYXRlV2l0aFdpbmRvd1NlcnZl
cikpOwpAQCAtMjQ2LDExICsyMzYsOSBAQCBib29sIHNjcmVlbkhhc0ludmVydGVkQ29sb3JzKCkK
IAogaW50IHNjcmVlbkRlcHRoKFdpZGdldCogd2lkZ2V0KQogewotICAgIGF1dG8gdiA9IGdldFNj
cmVlblByb3BlcnRpZXMod2lkZ2V0KTsKLSAgICBpZiAodi5oYXNWYWx1ZSgpKSB7Ci0gICAgICAg
IGF1dG8gc2NyZWVuRGVwdGggPSB2LT5zY3JlZW5EZXB0aDsKLSAgICAgICAgQVNTRVJUKHNjcmVl
bkRlcHRoKTsKLSAgICAgICAgcmV0dXJuIHNjcmVlbkRlcHRoOworICAgIGlmIChhdXRvIGRhdGEg
PSBzY3JlZW5Qcm9wZXJ0aWVzKHdpZGdldCkpIHsKKyAgICAgICAgQVNTRVJUKGRhdGEtPnNjcmVl
bkRlcHRoKTsKKyAgICAgICAgcmV0dXJuIGRhdGEtPnNjcmVlbkRlcHRoOwogICAgIH0KIAogICAg
IEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkNvbW11bmlj
YXRlV2l0aFdpbmRvd1NlcnZlcikpOwpAQCAtMjU5LDExICsyNDcsOSBAQCBpbnQgc2NyZWVuRGVw
dGgoV2lkZ2V0KiB3aWRnZXQpCiAKIGludCBzY3JlZW5EZXB0aFBlckNvbXBvbmVudChXaWRnZXQq
IHdpZGdldCkKIHsKLSAgICBhdXRvIHYgPSBnZXRTY3JlZW5Qcm9wZXJ0aWVzKHdpZGdldCk7Ci0g
ICAgaWYgKHYuaGFzVmFsdWUoKSkgewotICAgICAgICBhdXRvIGRlcHRoUGVyQ29tcG9uZW50ID0g
di0+c2NyZWVuRGVwdGhQZXJDb21wb25lbnQ7Ci0gICAgICAgIEFTU0VSVChkZXB0aFBlckNvbXBv
bmVudCk7Ci0gICAgICAgIHJldHVybiBkZXB0aFBlckNvbXBvbmVudDsKKyAgICBpZiAoYXV0byBk
YXRhID0gc2NyZWVuUHJvcGVydGllcyh3aWRnZXQpKSB7CisgICAgICAgIEFTU0VSVChkYXRhLT5z
Y3JlZW5EZXB0aFBlckNvbXBvbmVudCk7CisgICAgICAgIHJldHVybiBkYXRhLT5zY3JlZW5EZXB0
aFBlckNvbXBvbmVudDsKICAgICB9CiAKICAgICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQ
cm9jZXNzUHJpdmlsZWdlOjpDYW5Db21tdW5pY2F0ZVdpdGhXaW5kb3dTZXJ2ZXIpKTsKQEAgLTI3
MiwxMSArMjU4LDkgQEAgaW50IHNjcmVlbkRlcHRoUGVyQ29tcG9uZW50KFdpZGdldCogd2lkZ2V0
KQogCiBGbG9hdFJlY3Qgc2NyZWVuUmVjdEZvckRpc3BsYXkoUGxhdGZvcm1EaXNwbGF5SUQgZGlz
cGxheUlEKQogewotICAgIGF1dG8gdiA9IHNjcmVlbkRhdGEoZGlzcGxheUlEKTsKLSAgICBpZiAo
di5oYXNWYWx1ZSgpKSB7Ci0gICAgICAgIGF1dG8gc2NyZWVuUmVjdCA9IHYtPnNjcmVlblJlY3Q7
Ci0gICAgICAgIEFTU0VSVCghc2NyZWVuUmVjdC5pc0VtcHR5KCkpOwotICAgICAgICByZXR1cm4g
c2NyZWVuUmVjdDsKKyAgICBpZiAoYXV0byBkYXRhID0gc2NyZWVuRGF0YShkaXNwbGF5SUQpKSB7
CisgICAgICAgIEFTU0VSVCghZGF0YS0+c2NyZWVuUmVjdC5pc0VtcHR5KCkpOworICAgICAgICBy
ZXR1cm4gZGF0YS0+c2NyZWVuUmVjdDsKICAgICB9CiAKICAgICBBU1NFUlQoaGFzUHJvY2Vzc1By
aXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5Db21tdW5pY2F0ZVdpdGhXaW5kb3dTZXJ2ZXIp
KTsKQEAgLTI5MCw5ICsyNzQsOCBAQCBGbG9hdFJlY3Qgc2NyZWVuUmVjdEZvclByaW1hcnlTY3Jl
ZW4oKQogCiBGbG9hdFJlY3Qgc2NyZWVuUmVjdChXaWRnZXQqIHdpZGdldCkKIHsKLSAgICBhdXRv
IHYgPSBnZXRTY3JlZW5Qcm9wZXJ0aWVzKHdpZGdldCk7Ci0gICAgaWYgKHYuaGFzVmFsdWUoKSkK
LSAgICAgICAgcmV0dXJuIHYtPnNjcmVlblJlY3Q7CisgICAgaWYgKGF1dG8gZGF0YSA9IHNjcmVl
blByb3BlcnRpZXMod2lkZ2V0KSkKKyAgICAgICAgcmV0dXJuIGRhdGEtPnNjcmVlblJlY3Q7CiAK
ICAgICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5Db21t
dW5pY2F0ZVdpdGhXaW5kb3dTZXJ2ZXIpKTsKICAgICByZXR1cm4gdG9Vc2VyU3BhY2UoW3NjcmVl
bih3aWRnZXQpIGZyYW1lXSwgd2luZG93KHdpZGdldCkpOwpAQCAtMzAwLDkgKzI4Myw4IEBAIEZs
b2F0UmVjdCBzY3JlZW5SZWN0KFdpZGdldCogd2lkZ2V0KQogCiBGbG9hdFJlY3Qgc2NyZWVuQXZh
aWxhYmxlUmVjdChXaWRnZXQqIHdpZGdldCkKIHsKLSAgICBhdXRvIHYgPSBnZXRTY3JlZW5Qcm9w
ZXJ0aWVzKHdpZGdldCk7Ci0gICAgaWYgKHYuaGFzVmFsdWUoKSkKLSAgICAgICAgcmV0dXJuIHYt
PnNjcmVlbkF2YWlsYWJsZVJlY3Q7CisgICAgaWYgKGF1dG8gZGF0YSA9IHNjcmVlblByb3BlcnRp
ZXMod2lkZ2V0KSkKKyAgICAgICAgcmV0dXJuIGRhdGEtPnNjcmVlbkF2YWlsYWJsZVJlY3Q7CiAK
ICAgICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5Db21t
dW5pY2F0ZVdpdGhXaW5kb3dTZXJ2ZXIpKTsKICAgICByZXR1cm4gdG9Vc2VyU3BhY2UoW3NjcmVl
bih3aWRnZXQpIHZpc2libGVGcmFtZV0sIHdpbmRvdyh3aWRnZXQpKTsKQEAgLTMyNiw5ICszMDgs
OCBAQCBOU1NjcmVlbiAqc2NyZWVuKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKIAogQ0dD
b2xvclNwYWNlUmVmIHNjcmVlbkNvbG9yU3BhY2UoV2lkZ2V0KiB3aWRnZXQpCiB7Ci0gICAgYXV0
byB2ID0gZ2V0U2NyZWVuUHJvcGVydGllcyh3aWRnZXQpOwotICAgIGlmICh2Lmhhc1ZhbHVlKCkp
Ci0gICAgICAgIHJldHVybiB2LT5jb2xvclNwYWNlLmdldCgpOworICAgIGlmIChhdXRvIGRhdGEg
PSBzY3JlZW5Qcm9wZXJ0aWVzKHdpZGdldCkpCisgICAgICAgIHJldHVybiBkYXRhLT5jb2xvclNw
YWNlLmdldCgpOwogCiAgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZp
bGVnZTo6Q2FuQ29tbXVuaWNhdGVXaXRoV2luZG93U2VydmVyKSk7CiAgICAgcmV0dXJuIHNjcmVl
bih3aWRnZXQpLmNvbG9yU3BhY2UuQ0dDb2xvclNwYWNlOwpAQCAtMzM2LDkgKzMxNyw4IEBAIENH
Q29sb3JTcGFjZVJlZiBzY3JlZW5Db2xvclNwYWNlKFdpZGdldCogd2lkZ2V0KQogCiBib29sIHNj
cmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvcihXaWRnZXQqIHdpZGdldCkKIHsKLSAgICBhdXRvIHYg
PSBnZXRTY3JlZW5Qcm9wZXJ0aWVzKHdpZGdldCk7Ci0gICAgaWYgKHYuaGFzVmFsdWUoKSkKLSAg
ICAgICAgcmV0dXJuIHYtPnNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvcjsKKyAgICBpZiAoYXV0
byBkYXRhID0gc2NyZWVuUHJvcGVydGllcyh3aWRnZXQpKQorICAgICAgICByZXR1cm4gZGF0YS0+
c2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yOwogCiAgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2
aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQ29tbXVuaWNhdGVXaXRoV2luZG93U2VydmVyKSk7
CiAgICAgcmV0dXJuIFtzY3JlZW4od2lkZ2V0KSBjYW5SZXByZXNlbnREaXNwbGF5R2FtdXQ6TlNE
aXNwbGF5R2FtdXRQM107CkBAIC0zNDYsOSArMzI2LDggQEAgYm9vbCBzY3JlZW5TdXBwb3J0c0V4
dGVuZGVkQ29sb3IoV2lkZ2V0KiB3aWRnZXQpCiAKIGJvb2wgc2NyZWVuU3VwcG9ydHNIaWdoRHlu
YW1pY1JhbmdlKFdpZGdldCogd2lkZ2V0KQogewotICAgIGF1dG8gdiA9IGdldFNjcmVlblByb3Bl
cnRpZXMod2lkZ2V0KTsKLSAgICBpZiAodi5oYXNWYWx1ZSgpKQotICAgICAgICByZXR1cm4gdi0+
c2NyZWVuU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlOworICAgIGlmIChhdXRvIGRhdGEgPSBzY3Jl
ZW5Qcm9wZXJ0aWVzKHdpZGdldCkpCisgICAgICAgIHJldHVybiBkYXRhLT5zY3JlZW5TdXBwb3J0
c0hpZ2hEeW5hbWljUmFuZ2U7CiAKICAgICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9j
ZXNzUHJpdmlsZWdlOjpDYW5Db21tdW5pY2F0ZVdpdGhXaW5kb3dTZXJ2ZXIpKTsKICNpZiBVU0Uo
TUVESUFUT09MQk9YKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcAppbmRleCBkY2IwYTRlOWNh
NGZhMDk2N2QzZTdkODQxOGU2NTQxNDZlMmFmMWRhLi4zMzY5ZDMwYjZkYTE1ZGJjMTA5YjA0MmJm
ZTExZmNkNDUzZDEwMzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcApAQCAtMTQ0LDEx
ICsxNDQsMTEgQEAgdm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkOjpxdWV1ZVRhc2tUb1Bvc3RNZXNz
YWdlKE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYgbWVzc2EKIHZvaWQgU2VydmljZVdvcmtlclRo
cmVhZDo6cXVldWVUYXNrVG9GaXJlSW5zdGFsbEV2ZW50KCkKIHsKICAgICBhdXRvIHNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZSA9IG1ha2VSZWYoZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNj
b3BlPigqd29ya2VyR2xvYmFsU2NvcGUoKSkpOwotICAgIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZS0+ZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6OkRPTU1hbmlwdWxhdGlvbiwgW3Nl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZSA9IHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jb3B5UmVm
KCksIGpvYkRhdGFJZGVudGlmaWVyID0gbV9kYXRhLmpvYkRhdGFJZGVudGlmaWVyLCBzZXJ2aWNl
V29ya2VySWRlbnRpZmllciA9IHRoaXMtPmlkZW50aWZpZXIoKV0geworICAgIHNlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZS0+ZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6OkRPTU1hbmlw
dWxhdGlvbiwgW3NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSA9IHNlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZS5jb3B5UmVmKCksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyID0gdGhpcy0+aWRlbnRpZmll
cigpXSB7CiAgICAgICAgIGF1dG8gaW5zdGFsbEV2ZW50ID0gRXh0ZW5kYWJsZUV2ZW50OjpjcmVh
dGUoZXZlbnROYW1lcygpLmluc3RhbGxFdmVudCwgeyB9LCBFeHRlbmRhYmxlRXZlbnQ6OklzVHJ1
c3RlZDo6WWVzKTsKICAgICAgICAgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLT5kaXNwYXRjaEV2
ZW50KGluc3RhbGxFdmVudCk7CiAKLSAgICAgICAgaW5zdGFsbEV2ZW50LT53aGVuQWxsRXh0ZW5k
TGlmZXRpbWVQcm9taXNlc0FyZVNldHRsZWQoW2pvYkRhdGFJZGVudGlmaWVyLCBzZXJ2aWNlV29y
a2VySWRlbnRpZmllcl0oSGFzaFNldDxSZWY8RE9NUHJvbWlzZT4+JiYgZXh0ZW5kTGlmZXRpbWVQ
cm9taXNlcykgeworICAgICAgICBpbnN0YWxsRXZlbnQtPndoZW5BbGxFeHRlbmRMaWZldGltZVBy
b21pc2VzQXJlU2V0dGxlZChbc2VydmljZVdvcmtlcklkZW50aWZpZXJdKEhhc2hTZXQ8UmVmPERP
TVByb21pc2U+PiYmIGV4dGVuZExpZmV0aW1lUHJvbWlzZXMpIHsKICAgICAgICAgICAgIGJvb2wg
aGFzUmVqZWN0ZWRBbnlQcm9taXNlID0gZmFsc2U7CiAgICAgICAgICAgICBmb3IgKGF1dG8mIHBy
b21pc2UgOiBleHRlbmRMaWZldGltZVByb21pc2VzKSB7CiAgICAgICAgICAgICAgICAgaWYgKHBy
b21pc2UtPnN0YXR1cygpID09IERPTVByb21pc2U6OlN0YXR1czo6UmVqZWN0ZWQpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5k
ZXggNzg0YzUwZGRmMWU0Mzg2YmU0YTBlNDVhOWU0MjUzNzQyZmJiZmFkYS4uMTcxNzUwNDI3ZGE5
NzgxOTQxZmY3Yjk5NzM0N2U2NTZhYmY3MjYyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTE1MCwxNCArMTUwLDE0IEBA
IHN0YXRpYyBTdHJpbmcgcGxhaW5UZXh0Rm9yQ29udGV4dChjb25zdCBTaW1wbGVSYW5nZSYgcmFu
Z2UpCiAgICAgcmV0dXJuIFdlYkNvcmU6OnBsYWluVGV4dFJlcGxhY2luZ05vQnJlYWtTcGFjZShy
YW5nZSk7CiB9CiAKLXN0YXRpYyBTdHJpbmcgcGxhaW5UZXh0Rm9yQ29udGV4dChjb25zdCBPcHRp
b25hbDxTaW1wbGVSYW5nZT4gcmFuZ2UpCitzdGF0aWMgU3RyaW5nIHBsYWluVGV4dEZvckNvbnRl
eHQoY29uc3QgT3B0aW9uYWw8U2ltcGxlUmFuZ2U+JiByYW5nZSkKIHsKICAgICByZXR1cm4gcmFu
Z2UgPyBwbGFpblRleHRGb3JDb250ZXh0KCpyYW5nZSkgOiBlbXB0eVN0cmluZygpOwogfQogCiBz
dGF0aWMgU3RyaW5nIHBsYWluVGV4dEZvckNvbnRleHQoY29uc3QgUmFuZ2UqIHJhbmdlKQogewot
ICAgIHJldHVybiByYW5nZSA/IHBsYWluVGV4dEZvckNvbnRleHQoKnJhbmdlKSA6IGVtcHR5U3Ry
aW5nKCk7CisgICAgcmV0dXJuIHJhbmdlID8gcGxhaW5UZXh0Rm9yQ29udGV4dChTaW1wbGVSYW5n
ZSB7ICpyYW5nZSB9KSA6IGVtcHR5U3RyaW5nKCk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgcGxhaW5U
ZXh0Rm9yRGlzcGxheShjb25zdCBTaW1wbGVSYW5nZSYgcmFuZ2UpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>