<?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>11834</bug_id>
          
          <creation_ts>2006-12-14 18:31:04 -0800</creation_ts>
          <short_desc>[S60] TLUU-6VJQX3 : Cache cannot support more than one application simultaneously</short_desc>
          <delta_ts>2007-01-12 13:17:45 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>420+</version>
          <rep_platform>S60 Emulator</rep_platform>
          <op_sys>S60 3rd edition</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yael">yael</reporter>
          <assigned_to name="Yael">yael</assigned_to>
          <cc>S60webkit</cc>
    
    <cc>yael</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>42076</commentid>
    <comment_count>0</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2006-12-14 18:31:04 -0800</bug_when>
    <thetext>TLUU-6VJQX3 : Cache cannot support more than one application simultaneously
Added notification mechanism when the cache index file changes, and merging the old and new lookup tables.
Tested with Browser and MusicShop on HW.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42049</commentid>
    <comment_count>1</comment_count>
      <attachid>11849</attachid>
    <who name="Yael">yael</who>
    <bug_when>2006-12-14 18:34:51 -0800</bug_when>
    <thetext>Created attachment 11849
3.1 fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42050</commentid>
    <comment_count>2</comment_count>
      <attachid>11849</attachid>
    <who name="Yael">yael</who>
    <bug_when>2006-12-14 18:42:01 -0800</bug_when>
    <thetext>Comment on attachment 11849
3.1 fix

New files are missing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42051</commentid>
    <comment_count>3</comment_count>
      <attachid>11850</attachid>
    <who name="Yael">yael</who>
    <bug_when>2006-12-14 18:51:14 -0800</bug_when>
    <thetext>Created attachment 11850
3,2 fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42052</commentid>
    <comment_count>4</comment_count>
      <attachid>11851</attachid>
    <who name="Yael">yael</who>
    <bug_when>2006-12-14 18:56:28 -0800</bug_when>
    <thetext>Created attachment 11851
3.1 fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41910</commentid>
    <comment_count>5</comment_count>
      <attachid>11860</attachid>
    <who name="Yael">yael</who>
    <bug_when>2006-12-15 07:06:30 -0800</bug_when>
    <thetext>Created attachment 11860
3.1 fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41911</commentid>
    <comment_count>6</comment_count>
      <attachid>11861</attachid>
    <who name="Yael">yael</who>
    <bug_when>2006-12-15 07:07:18 -0800</bug_when>
    <thetext>Created attachment 11861
3.2 fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41912</commentid>
    <comment_count>7</comment_count>
    <who name="Bradley Morrison">bradley.morrison</who>
    <bug_when>2006-12-15 07:13:16 -0800</bug_when>
    <thetext>Please create S60 bugs with the correct metadata. See the link to S60 bug submissions provided at http://trac.webkit.org/projects/webkit/wiki/S60Buzilla</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41921</commentid>
    <comment_count>8</comment_count>
    <who name="Bradley Morrison">bradley.morrison</who>
    <bug_when>2006-12-15 09:14:05 -0800</bug_when>
    <thetext>*** Bug 11840 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41830</commentid>
    <comment_count>9</comment_count>
      <attachid>11871</attachid>
    <who name="Yael">yael</who>
    <bug_when>2006-12-15 13:54:40 -0800</bug_when>
    <thetext>Created attachment 11871
3.1 fix, removed extra L in StartObserver</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41831</commentid>
    <comment_count>10</comment_count>
      <attachid>11872</attachid>
    <who name="Yael">yael</who>
    <bug_when>2006-12-15 13:55:38 -0800</bug_when>
    <thetext>Created attachment 11872
3.2 fix, removed extra L in StartObserver</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41338</commentid>
    <comment_count>11</comment_count>
      <attachid>11871</attachid>
    <who name="Sachin Padma">Sachin.Padma</who>
    <bug_when>2006-12-18 13:52:08 -0800</bug_when>
    <thetext>Comment on attachment 11871
3.1 fix, removed extra L in StartObserver

Can you please fix formatting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41303</commentid>
    <comment_count>12</comment_count>
      <attachid>11907</attachid>
    <who name="Yael">yael</who>
    <bug_when>2006-12-18 15:04:29 -0800</bug_when>
    <thetext>Created attachment 11907
3.1 fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41304</commentid>
    <comment_count>13</comment_count>
      <attachid>11908</attachid>
    <who name="Yael">yael</who>
    <bug_when>2006-12-18 15:05:33 -0800</bug_when>
    <thetext>Created attachment 11908
3.2 fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41019</commentid>
    <comment_count>14</comment_count>
      <attachid>11907</attachid>
    <who name="Sachin Padma">Sachin.Padma</who>
    <bug_when>2006-12-19 10:36:25 -0800</bug_when>
    <thetext>Comment on attachment 11907
3.1 fix

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41022</commentid>
    <comment_count>15</comment_count>
    <who name="Sachin Padma">Sachin.Padma</who>
    <bug_when>2006-12-19 10:50:38 -0800</bug_when>
    <thetext>3.1m -&gt; 18317</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41023</commentid>
    <comment_count>16</comment_count>
    <who name="Sachin Padma">Sachin.Padma</who>
    <bug_when>2006-12-19 10:55:12 -0800</bug_when>
    <thetext>committed as r18318</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>35390</commentid>
    <comment_count>17</comment_count>
    <who name="Krishna">krishnamurty.podipireddy</who>
    <bug_when>2007-01-12 13:17:45 -0800</bug_when>
    <thetext>
Verified and Closed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>11849</attachid>
            <date>2006-12-14 18:34:51 -0800</date>
            <delta_ts>2006-12-14 18:42:01 -0800</delta_ts>
            <desc>3.1 fix</desc>
            <filename>MyBrilliantWork.patch</filename>
            <type>text/plain</type>
            <size>25210</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxODIyNSkNCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpDQpA
QCAtMSwzICsxLDI3IEBADQorMjAwNi0xMi0xNCAgeWFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lh
LmNvbT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKyAgICAgICAg
REVTQzogQnVnIDExODM0OiBUTFVVLTZWSlFYMyA6IENhY2hlIGNhbm5vdCBzdXBwb3J0IG1vcmUg
dGhhbiBvbmUgYXBwbGljYXRpb24gc2ltdWx0YW5lb3VzbHkNCisgICAgICAgIGh0dHA6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODM0DQorDQorICAgICAgICAqIFJlc291cmNl
TG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNoZUVudHJ5Lmg6DQorICAgICAgICAqIFJlc291cmNlTG9h
ZGVyL0NhY2hlSW5jL0h0dHBDYWNoZUhhbmRsZXIuaDoNCisgICAgICAgICogUmVzb3VyY2VMb2Fk
ZXIvQ2FjaGVJbmMvSHR0cENhY2hlTG9va3VwVGFibGUuaDoNCisgICAgICAgICogUmVzb3VyY2VM
b2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hlRW50cnkuY3BwOg0KKyAgICAgICAgKENIdHRwQ2FjaGVF
bnRyeTo6SW50ZXJuYWxpemUpOg0KKyAgICAgICAgKENIdHRwQ2FjaGVFbnRyeTo6RXh0ZXJuYWxp
emUpOg0KKyAgICAgICAgKENIdHRwQ2FjaGVFbnRyeTo6QWNjZXNzZWQpOg0KKyAgICAgICAgKiBS
ZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVIYW5kbGVyLmNwcDoNCisgICAgICAgIChD
SHR0cENhY2hlSGFuZGxlcjo6Q29uc3RydWN0TCk6DQorICAgICAgICAoQ0h0dHBDYWNoZUhhbmRs
ZXI6On5DSHR0cENhY2hlSGFuZGxlcik6DQorICAgICAgICAoQ0h0dHBDYWNoZUhhbmRsZXI6Ok9w
ZW5Mb29rdXBUYWJsZUwpOg0KKyAgICAgICAgKENIdHRwQ2FjaGVIYW5kbGVyOjpTYXZlTG9va3Vw
VGFibGVMKToNCisgICAgICAgIChDSHR0cENhY2hlSGFuZGxlcjo6RG9CYWNrZ3JvdW5kU2F2ZSk6
DQorICAgICAgICAoQ0h0dHBDYWNoZUhhbmRsZXI6OlVwZGF0ZUxvb2t1cFRhYmxlKToNCisgICAg
ICAgIChDSHR0cENhY2hlSGFuZGxlcjo6VXBkYXRlTG9va3VwVGFibGVMKToNCisgICAgICAgICog
UmVzb3VyY2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hlTG9va3VwVGFibGUuY3BwOg0KKyAgICAg
ICAgKiBncm91cC9Ccm93c2VyQ2FjaGUubW1wOg0KKw0KIDIwMDYtMTItMTEgIHNhcmVlbiAgPHNo
eWFtLnNhcmVlbkBub2tpYS5jb20+DQogDQogICAgICAgICBSZXZpZXdlZCBTYWNoaW4gUGFkbWEu
DQpJbmRleDogV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNoZUVudHJ5LmgN
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0NCi0tLSBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hl
RW50cnkuaAkocmV2aXNpb24gMTgyMjEpDQorKysgV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hl
SW5jL0h0dHBDYWNoZUVudHJ5LmgJKHdvcmtpbmcgY29weSkNCkBAIC05LDkgKzksOSBAQA0KICog
ICAgQ29weXJpZ2h0IChjKSAyMDA2LCBOb2tpYSBDb3Jwb3JhdGlvbg0KICogICAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4NCiAqICANCi0qICAJUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQotKiAgCW1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucw0KLSogIAlh
cmUgbWV0Og0KKyogICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCisqICAgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQorKiAgIGFyZSBtZXQ6DQog
KiAgDQogKiAgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQNCiAqICAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuDQpAQCAtMjMsMTggKzIzLDE4IEBA
DQogKiAgICAgICAgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkDQogKiAgICAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLg0KICogIA0KLSogIAlUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
DQotKiAgCSJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UDQotKiAgCUxJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUg0KLSogIAlBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVA0KLSog
IAlPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwNCi0qICAJU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVA0KLSogIAlMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwNCi0qICAJREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZDQotKiAgCVRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQNCi0qICAJKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUNCi0qICAJVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSA0K
LSogIAlEQU1BR0UuDQorKiAgIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMNCisqICAgIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QNCisqICAgTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SDQorKiAgIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUDQorKiAgIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLA0KKyogICBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
DQorKiAgIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLA0KKyogICBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkNCisqICAgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVA0K
KyogICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRQ0KKyogICBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIDQorKiAgIERBTUFHRS4NCiAqICANCiAqICAgIFBs
ZWFzZSBzZWUgZmlsZSBwYXRlbnRsaWNlbnNlLnR4dCBmb3IgZnVydGhlciBncmFudHMuDQogKiA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0NCkBAIC0yMzcsNiArMjM3LDE0IEBAIGNsYXNzIENIdHRwQ2Fj
aGVFbnRyeSA6IHB1YmxpYyBDQmFzZQ0KICAgICAgICAgKiBAcmV0dXJuIA0KICAgICAgICAgKi8N
CiAgICAgICAgIFRJbnQgRXh0ZXJuYWxpemUoIFJGaWxlV3JpdGVTdHJlYW0mIGFXcml0ZVN0cmVh
bSApOw0KKw0KKyAgICAgICAgLyoqDQorICAgICAgICAqIA0KKyAgICAgICAgKiBAc2luY2UgMy4x
DQorICAgICAgICAqIEBwYXJhbSANCisgICAgICAgICogQHJldHVybiANCisgICAgICAgICovDQor
ICAgICAgICB2b2lkIEFjY2Vzc2VkKFRJbnQ2NCBhTGFzdEFjY2Vzc2VkLCBUVWludDE2IGFSZWYp
Ow0KIA0KICAgICBwdWJsaWMgOiANCiANCkluZGV4OiBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2Fj
aGVJbmMvSHR0cENhY2hlSGFuZGxlci5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L1Jlc291cmNl
TG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNoZUhhbmRsZXIuaAkocmV2aXNpb24gMTgyMjEpDQorKysg
V2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNoZUhhbmRsZXIuaAkod29ya2lu
ZyBjb3B5KQ0KQEAgLTY4LDYgKzY4LDcgQEAgY2xhc3MgTUhUVFBEYXRhU3VwcGxpZXI7DQogY2xh
c3MgQ0lkbGU7DQogY2xhc3MgQ0h0dHBDYWNoZUV2aWN0aW9uSGFuZGxlcjsNCiBjbGFzcyBUSHR0
cENhY2hlRW50cnk7DQorY2xhc3MgQ0h0dHBDYWNoZU9ic2VydmVyOw0KIA0KIC8vIENMQVNTIERF
Q0xBUkFUSU9ODQogDQpAQCAtMjAzLDYgKzIwNCwxNSBAQCBjbGFzcyBDSHR0cENhY2hlSGFuZGxl
ciA6IHB1YmxpYyBDQmFzZQ0KICAgICAgICAgKi8NCiAgICAgICAgIHZvaWQgQWRqdXN0UmVzcG9u
c2VUaW1lKFJIVFRQVHJhbnNhY3Rpb24mIGFUcmFucyk7DQogDQorICAgICAgICAvKioNCisgICAg
ICAgICogU29tZSBvdGhlciBhcHBsaWNhdGlvbiBtb2RpZmllZCB0aGUgY2FjaGUgYW5kIHRoZSBs
b29rdXAgdGFibGUgbmVlZHMgdG8gYmUgdXBkYXRlZA0KKyAgICAgICAgKg0KKyAgICAgICAgKiBA
c2luY2UgMy4xDQorICAgICAgICAqIEBwYXJhbQ0KKyAgICAgICAgKiBAcmV0dXJuDQorICAgICAg
ICAqLw0KKyAgICAgICAgdm9pZCBVcGRhdGVMb29rdXBUYWJsZSgpOw0KKw0KICAgICBwcml2YXRl
Og0KIA0KICAgICAgICAgLyoqDQpAQCAtMjIyLDYgKzIzMiwxNSBAQCBjbGFzcyBDSHR0cENhY2hl
SGFuZGxlciA6IHB1YmxpYyBDQmFzZQ0KICAgICBwcml2YXRlOiAvLw0KIA0KICAgICAgICAgLyoq
DQorICAgICAgICAqIFNvbWUgb3RoZXIgYXBwbGljYXRpb24gbW9kaWZpZWQgdGhlIGNhY2hlIGFu
ZCB0aGUgbG9va3VwIHRhYmxlIG5lZWRzIHRvIGJlIHVwZGF0ZWQNCisgICAgICAgICoNCisgICAg
ICAgICogQHNpbmNlIDMuMQ0KKyAgICAgICAgKiBAcGFyYW0NCisgICAgICAgICogQHJldHVybg0K
KyAgICAgICAgKi8NCisgICAgICAgIHZvaWQgVXBkYXRlTG9va3VwVGFibGVMKCk7DQorDQorICAg
ICAgICAvKioNCiAgICAgICAgICoNCiAgICAgICAgICogQHNpbmNlIDMuMQ0KICAgICAgICAgKiBA
cGFyYW0NCkBAIC0yOTEsNiArMzEwLDE1IEBAIGNsYXNzIENIdHRwQ2FjaGVIYW5kbGVyIDogcHVi
bGljIENCYXNlDQogICAgICAgICAqIEBwYXJhbQ0KICAgICAgICAgKiBAcmV0dXJuDQogICAgICAg
ICAqLw0KKyAgICAgICAgdm9pZCBPcGVuTG9va3VwVGFibGVMKENIdHRwQ2FjaGVMb29rdXBUYWJs
ZSogYUxvb2t1cFRhYmxlKTsNCisNCisgICAgICAgIC8qKg0KKyAgICAgICAgKg0KKyAgICAgICAg
KiBAc2luY2UgMy4xDQorICAgICAgICAqIEBwYXJhbQ0KKyAgICAgICAgKiBAcGFyYW0NCisgICAg
ICAgICogQHJldHVybg0KKyAgICAgICAgKi8NCiAgICAgICAgIHZvaWQgSGFuZGxlQ29ycnVwdEVu
dHJ5KCBDSHR0cENhY2hlRW50cnkmIGFTdHJheUVudHJ5LCBUQm9vbCBhVXBkYXRlID0gRVRydWUg
KTsNCiANCiAgICAgICAgIC8qKg0KQEAgLTM0NSw2ICszNzMsOCBAQCBjbGFzcyBDSHR0cENhY2hl
SGFuZGxlciA6IHB1YmxpYyBDQmFzZQ0KICAgICAgICAgQ0lkbGUqICAgICAgICAgICAgICAgICAg
ICAgICAgICBpSWRsZTsgICAgICAvLyBvd25lZA0KICAgICAgICAgLy8gbmFtZSBvZiB0aGUgaW5k
ZXggZmlsZQ0KICAgICAgICAgSEJ1ZkMqICAgICAgICAgICAgICAgICAgICAgICAgICBpSW5kZXhG
aWxlOyAvLyBvd25lZA0KKyAgICAgICAgLy8gT2JzZXJ2aW5nIGNoYW5nZXMgaW4gY2FjaGUNCisg
ICAgICAgIENIdHRwQ2FjaGVPYnNlcnZlciogaUh0dHBDYWNoZU9ic2VydmVyOyAvLyBvd25lZA0K
ICAgICB9Ow0KIA0KICNlbmRpZiAgICAgIC8vIENIVFRQQ0FDSEVIQU5ETEVSX0gNCkluZGV4OiBX
ZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlTG9va3VwVGFibGUuaA0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQ0KLS0tIFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVMb29r
dXBUYWJsZS5oCShyZXZpc2lvbiAxODIyMSkNCisrKyBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2Fj
aGVJbmMvSHR0cENhY2hlTG9va3VwVGFibGUuaAkod29ya2luZyBjb3B5KQ0KQEAgLTksOSArOSw5
IEBADQogKiAgICBDb3B5cmlnaHQgKGMpIDIwMDYsIE5va2lhIENvcnBvcmF0aW9uDQogKiAgICBB
bGwgcmlnaHRzIHJlc2VydmVkLg0KICogIA0KLSogIAlSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCi0qICAJbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
DQotKiAgCWFyZSBtZXQ6DQorKiAgIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KKyogICBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMNCisqICAgYXJl
IG1ldDoNCiAqICANCiAqICAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodA0KICogICAgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCkBAIC0yMywxOCAr
MjMsMTggQEANCiAqICAgICAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQNCiAqICAgICAgICBmcm9tIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uDQogKiAgDQotKiAgCVRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMNCi0qICAJIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QNCi0qICAJTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SDQotKiAgCUEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUDQotKiAgCU9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLA0KLSogIAlTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UDQotKiAgCUxJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLA0K
LSogIAlEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkNCi0qICAJVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVA0KLSogIAkoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRQ0KLSogIAlV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIDQotKiAgCURBTUFHRS4NCisqICAgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUw0KKyogICAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVA0KKyog
ICBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1INCisqICAgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQNCisqICAgT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsDQorKiAg
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QNCisqICAgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsDQorKiAgIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQ0KKyogICBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUDQorKiAgIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFDQorKiAgIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gNCisqICAgREFNQUdFLg0KICogIA0K
ICogICAgUGxlYXNlIHNlZSBmaWxlIHBhdGVudGxpY2Vuc2UudHh0IGZvciBmdXJ0aGVyIGdyYW50
cy4NCiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTQ1LDYgKzQ1LDcgQEANCiANCiAvLyAg
SU5DTFVERVMNCiAjaW5jbHVkZSA8ZTMyYmFzZS5oPg0KKyNpbmNsdWRlIDxzMzJmaWxlLmg+DQog
DQogLy8gQ09OU1RBTlRTDQogDQpAQCAtOTQsNyArOTUsNyBAQCBjbGFzcyBDSHR0cENhY2hlTG9v
a3VwVGFibGUgOiBwdWJsaWMgQ0JhDQogICAgICAgICAqIEBwYXJhbQ0KICAgICAgICAgKiBAcmV0
dXJuDQogICAgICAgICAqLw0KLQkJQ0h0dHBDYWNoZUVudHJ5KiBJbnNlcnRMKCBjb25zdCBURGVz
QzgmIGFVcmwgKTsNCisgICAgQ0h0dHBDYWNoZUVudHJ5KiBJbnNlcnRMKCBjb25zdCBURGVzQzgm
IGFVcmwgKTsNCiANCiAgICAgICAgIC8qKg0KICAgICAgICAgKg0KQEAgLTEwMiw3ICsxMDMsNyBA
QCBjbGFzcyBDSHR0cENhY2hlTG9va3VwVGFibGUgOiBwdWJsaWMgQ0JhDQogICAgICAgICAqIEBw
YXJhbQ0KICAgICAgICAgKiBAcmV0dXJuDQogICAgICAgICAqLw0KLQkJQ0h0dHBDYWNoZUVudHJ5
KiBGaW5kKCBjb25zdCBURGVzQzgmIGFVcmwgKTsNCisgICAgQ0h0dHBDYWNoZUVudHJ5KiBGaW5k
KCBjb25zdCBURGVzQzgmIGFVcmwgKTsNCiANCiAgICAgICAgIC8qKg0KICAgICAgICAgKg0KQEAg
LTExMCw3ICsxMTEsNyBAQCBjbGFzcyBDSHR0cENhY2hlTG9va3VwVGFibGUgOiBwdWJsaWMgQ0Jh
DQogICAgICAgICAqIEBwYXJhbQ0KICAgICAgICAgKiBAcmV0dXJuDQogICAgICAgICAqLw0KLQkJ
VEludCBSZW1vdmUoIGNvbnN0IFREZXNDOCYgYVVybCApOw0KKyAgICBUSW50IFJlbW92ZSggY29u
c3QgVERlc0M4JiBhVXJsICk7DQogDQogICAgICAgICAvKioNCiAgICAgICAgICoNCkBAIC0xMTgs
NyArMTE5LDcgQEAgY2xhc3MgQ0h0dHBDYWNoZUxvb2t1cFRhYmxlIDogcHVibGljIENCYQ0KICAg
ICAgICAgKiBAcGFyYW0NCiAgICAgICAgICogQHJldHVybg0KICAgICAgICAgKi8NCi0JCVRJbnQg
UmVtb3ZlQWxsKCk7DQorICAgIFRJbnQgUmVtb3ZlQWxsKCk7DQogDQogICAgICAgICAvKioNCiAg
ICAgICAgICoNCkBAIC0xNTIsNiArMTUzLDE0IEBAIGNsYXNzIENIdHRwQ2FjaGVMb29rdXBUYWJs
ZSA6IHB1YmxpYyBDQmENCiAgICAgICAgICovDQogICAgICAgICB2b2lkIEV4dGVybmFsaXplTCgg
UkZpbGVXcml0ZVN0cmVhbSYgYVdyaXRlU3RyZWFtICk7DQogDQorICAgICAgICAvKioNCisgICAg
ICAgICoNCisgICAgICAgICogQHNpbmNlIDMuMQ0KKyAgICAgICAgKiBAcGFyYW0NCisgICAgICAg
ICogQHJldHVybg0KKyAgICAgICAgKi8NCisgICAgdm9pZCBNZXJnZUwoIENIdHRwQ2FjaGVMb29r
dXBUYWJsZSogYUh0dHBDYWNoZUxvb2t1cFRhYmxlLCBSRnMgYVJmcyAgKTsNCisNCiAgICAgcHJp
dmF0ZToNCiANCiAgICAgICAgIC8qKg0KQEAgLTI2MSw3ICsyNzAsNyBAQCBjbGFzcyBDSHR0cENh
Y2hlTG9va3VwVGFibGUgOiBwdWJsaWMgQ0JhDQogICAgIHByaXZhdGU6ICAgIC8vIERhdGENCiAN
CiAgICAgICAgIC8vIGhhc2ggdGFibGUgZm9yIGNhY2hlIGVudHJpZXMNCi0JCUNBcnJheVB0ckZs
YXQ8Q0h0dHBDYWNoZUVudHJ5PiogaUVudHJpZXM7DQorICAgIENBcnJheVB0ckZsYXQ8Q0h0dHBD
YWNoZUVudHJ5PiogaUVudHJpZXM7DQogICAgICAgICAvLyBudW1iZXIgb2YgZW50cmllcyBpbiB0
aGUgaGFzaHRhYmxlDQogICAgICAgICBUSW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlD
b3VudDsNCiAgICAgICAgIC8vDQpJbmRleDogV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlU3Jj
L0h0dHBDYWNoZUVudHJ5LmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9SZXNvdXJjZUxvYWRl
ci9DYWNoZVNyYy9IdHRwQ2FjaGVFbnRyeS5jcHAJKHJldmlzaW9uIDE4MjIxKQ0KKysrIFdlYktp
dC9SZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVFbnRyeS5jcHAJKHdvcmtpbmcgY29w
eSkNCkBAIC05LDkgKzksOSBAQA0KICogICAgQ29weXJpZ2h0IChjKSAyMDA2LCBOb2tpYSBDb3Jw
b3JhdGlvbg0KICogICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqICANCi0qICAJUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
DQotKiAgCW1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucw0KLSogIAlhcmUgbWV0Og0KKyogICBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCisqICAgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zDQorKiAgIGFyZSBtZXQ6DQogKiAgDQogKiAgICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCiAqICAgICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuDQpAQCAtMjMsMTggKzIzLDE4IEBADQogKiAgICAgICAgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkDQogKiAgICAgICAgZnJv
bSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
Lg0KICogIA0KLSogIAlUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTDQotKiAgCSJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UDQotKiAgCUxJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
Ug0KLSogIAlBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVA0KLSogIAlPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwNCi0qICAJU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVA0KLSog
IAlMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwNCi0qICAJREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZDQotKiAgCVRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQNCi0qICAJ
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUNCi0qICAJVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSA0KLSogIAlEQU1BR0UuDQorKiAgIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMNCisq
ICAgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QNCisqICAgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SDQorKiAgIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUDQorKiAgIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLA0KKyogICBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UDQorKiAgIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLA0KKyogICBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkNCisqICAgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVA0KKyogICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRQ0KKyogICBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIDQorKiAg
IERBTUFHRS4NCiAqICANCiAqICAgIFBsZWFzZSBzZWUgZmlsZSBwYXRlbnRsaWNlbnNlLnR4dCBm
b3IgZnVydGhlciBncmFudHMuDQogKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0xMjgsMTAg
KzEyOCwxMCBAQCBDSHR0cENhY2hlRW50cnkqIENIdHRwQ2FjaGVFbnRyeTo6TmV3TEMoDQogLy8g
RGVzdHJ1Y3Rvcg0KIENIdHRwQ2FjaGVFbnRyeTo6fkNIdHRwQ2FjaGVFbnRyeSgpDQogICAgIHsN
Ci0JaWYoIGlWaWN0aW0gKQ0KLQkJew0KLQkJaUV2aWN0aW9uSGFuZGxlci0+UmVtb3ZlKCAqdGhp
cyApOw0KLQkJfQ0KKyAgaWYoIGlWaWN0aW0gKQ0KKyAgICB7DQorICAgIGlFdmljdGlvbkhhbmRs
ZXItPlJlbW92ZSggKnRoaXMgKTsNCisgICAgfQ0KICAgICBkZWxldGUgaVVybDsNCiAgICAgZGVs
ZXRlIGlGaWxlTmFtZTsNCiAgICAgfQ0KQEAgLTIwNywxMSArMjA3LDExIEBAIHZvaWQgQ0h0dHBD
YWNoZUVudHJ5OjpTZXRTaXplKA0KICAgICAgICAgLy8gYm9keSByZW1vdmFsDQogICAgICAgICAv
LyByZW1vdmUgaXRzZWxmIGZyb20gdGhlIGV2aWN0aW9uIHRhYmxlLg0KICAgICAgICAgLy8gdGhp
cyBpcyBubyBsb25nZXIgYSB2aWN0aW0NCi0JICAgIGlmKCBpVmljdGltICkNCi0JCSAgICB7DQot
CQkgICAgaUV2aWN0aW9uSGFuZGxlci0+UmVtb3ZlKCAqdGhpcyApOw0KKyAgICAgIGlmKCBpVmlj
dGltICkNCisgICAgICAgIHsNCisgICAgICAgIGlFdmljdGlvbkhhbmRsZXItPlJlbW92ZSggKnRo
aXMgKTsNCiAgICAgICAgICAgICBpVmljdGltID0gRUZhbHNlOw0KLQkJICAgIH0NCisgICAgICAg
IH0NCiAgICAgICAgIH0NCiAgICAgaVNpemUgPSBhU2l6ZTsNCiAgICAgfQ0KQEAgLTI0Miw2ICsy
NDIsNyBAQCBUSW50IENIdHRwQ2FjaGVFbnRyeTo6SW50ZXJuYWxpemUoDQogICAgIC8vIHVybCBs
ZW5ndGgNCiAgICAgbGVuID0gYVJlYWRTdHJlYW0uUmVhZEludDMyTCgpOw0KICAgICBkZWxldGUg
aVVybDsNCisgICAgaVVybD1OVUxMOw0KICAgICBpVXJsID0gSEJ1ZkM4OjpOZXdMKCBsZW4gKTsN
CiAgICAgVFB0cjggcHRyOCggaVVybC0+RGVzKCkgKTsNCiAgICAgLy8gdXJsDQpAQCAtMzAxLDYg
KzMwMiwyOCBAQCBUSW50IENIdHRwQ2FjaGVFbnRyeTo6RXh0ZXJuYWxpemUoDQogICAgIC8vIHBy
b3RlY3RlZA0KICAgICBhV3JpdGVTdHJlYW0uV3JpdGVJbnQzMkwoIGlQcm90ZWN0ZWQgKTsgKTsN
CiAgICAgcmV0dXJuIGVycjsNCisgICAgfQ0KKw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQor
Ly8gQ0h0dHBDYWNoZUVudHJ5OjpBY2Nlc3NlZA0KKy8vDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0NCisvLw0KK3ZvaWQgQ0h0dHBDYWNoZUVudHJ5OjpBY2Nlc3NlZChUSW50NjQgYUxhc3RBY2Nl
c3NlZCwgVFVpbnQxNiBhUmVmKQ0KKyAgICB7DQorICAgIGlMYXN0QWNjZXNzZWQgPSBhTGFzdEFj
Y2Vzc2VkOw0KKyAgICBpUmVmID0gYVJlZjsNCisgICAgaWYoIGlWaWN0aW0gKQ0KKyAgICAgICAg
ew0KKyAgICAgICAgaUV2aWN0aW9uSGFuZGxlci0+QWNjZXNzZWQoICp0aGlzICk7DQorICAgICAg
ICB9DQorI2lmZGVmIF9fQ0FDSEVMT0dfXw0KKyAgICBfTElUKCBLQWNjZXNzRm9ybWF0LCAiZW50
cnkgYWNjZXNzZWQ6ICVkIiApOw0KKyAgICBUQnVmPDEwMD4gYnVmOw0KKyAgICBidWYuRm9ybWF0
KCBLQWNjZXNzRm9ybWF0LCBpUmVmICk7DQorICAgIEh0dHBDYWNoZVV0aWw6OldyaXRlVXJsVG9M
b2coIDAsIGJ1ZiwgaVVybC0+RGVzKCkgKTsNCisjZW5kaWYgLy8gX19DQUNIRUxPR19fDQorDQog
ICAgIH0NCiANCiAvLyAgRW5kIG9mIEZpbGUNCkluZGV4OiBXZWJLaXQvUmVzb3VyY2VMb2FkZXIv
Q2FjaGVTcmMvSHR0cENhY2hlSGFuZGxlci5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvUmVz
b3VyY2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hlSGFuZGxlci5jcHAJKHJldmlzaW9uIDE4MjIx
KQ0KKysrIFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVIYW5kbGVyLmNw
cAkod29ya2luZyBjb3B5KQ0KQEAgLTQ4LDYgKzQ4LDcgQEANCiAjaW5jbHVkZSAiSHR0cENhY2hl
U3RyZWFtSGFuZGxlci5oIg0KICNpbmNsdWRlICJIdHRwQ2FjaGVVdGlsLmgiDQogI2luY2x1ZGUg
Ikh0dHBDYWNoZUV2aWN0aW9uSGFuZGxlci5oIg0KKyNpbmNsdWRlICJIdHRwQ2FjaGVPYnNlcnZl
ci5oIg0KICNpbmNsdWRlIDxodHRwXFJIVFRQVHJhbnNhY3Rpb24uaD4NCiAjaW5jbHVkZSA8aHR0
cFxyaHR0cHNlc3Npb24uaD4NCiAjaW5jbHVkZSA8aHR0cFxyaHR0cGhlYWRlcnMuaD4NCkBAIC0x
MTUsNiArMTE2LDkgQEAgdm9pZCBDSHR0cENhY2hlSGFuZGxlcjo6Q29uc3RydWN0TCgNCiAgICAg
T3Blbkxvb2t1cFRhYmxlTCgpOw0KICAgICAvLw0KICAgICBpSWRsZSA9IENJZGxlOjpOZXdMKCBD
QWN0aXZlOjpFUHJpb3JpdHlJZGxlICk7DQorICAgIC8vDQorICAgIGlIdHRwQ2FjaGVPYnNlcnZl
ciA9IENIdHRwQ2FjaGVPYnNlcnZlcjo6TmV3TChpRGlyZWN0b3J5LCBpSW5kZXhGaWxlLCB0aGlz
KTsNCisgICAgaUh0dHBDYWNoZU9ic2VydmVyLT5TdGFydE9ic2VydmVyTCgpOw0KICAgICB9DQog
DQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkBAIC0xNDIsNiArMTQ2LDggQEAgQ0h0dHBDYWNo
ZUhhbmRsZXI6On5DSHR0cENhY2hlSGFuZGxlcigpDQogICAgIC8vIHNhdmUgZW50cnkgdGFibGUN
CiAgICAgVFJBUF9JR05PUkUoIFNhdmVMb29rdXBUYWJsZUwoKSApOw0KICAgICAvLw0KKyAgICBk
ZWxldGUgaUh0dHBDYWNoZU9ic2VydmVyOw0KKyAgICAvLw0KICAgICBpZiAoaUV2aWN0aW9uSGFu
ZGxlcikNCiAgICAgICAgIHsNCiAgICAgICAgIGlFdmljdGlvbkhhbmRsZXItPlJlbW92ZUFsbCgp
Ow0KQEAgLTEwNjQsNiArMTA3MCwxNiBAQCBUQm9vbCBDSHR0cENhY2hlSGFuZGxlcjo6SGFuZGxl
UmVzcG9uc2VODQogLy8NCiB2b2lkIENIdHRwQ2FjaGVIYW5kbGVyOjpPcGVuTG9va3VwVGFibGVM
KCkNCiAgICAgew0KKyAgICBPcGVuTG9va3VwVGFibGVMKGlMb29rdXBUYWJsZSk7DQorICAgIH0N
CisNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRwQ2FjaGVIYW5kbGVyOjpPcGVu
TG9va3VwVGFibGVMDQorLy8NCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vDQordm9pZCBD
SHR0cENhY2hlSGFuZGxlcjo6T3Blbkxvb2t1cFRhYmxlTChDSHR0cENhY2hlTG9va3VwVGFibGUq
IGFMb29rdXBUYWJsZSkNCisgICAgew0KICAgICAvLyByZWFkIGVudHJpZXMgZnJvbSBpbmRleC5k
YXQNCiAgICAgUkZpbGVSZWFkU3RyZWFtIHJlYWRTdHJlYW07DQogICAgIFJGcyBmczsNCkBAIC0x
MDgzLDExICsxMDk5LDI2IEBAIHZvaWQgQ0h0dHBDYWNoZUhhbmRsZXI6Ok9wZW5Mb29rdXBUYWJs
ZUwNCiAgICAgaWYoIGVyciA9PSBLRXJyTm9uZSApDQogICAgICAgICB7DQogICAgICAgICBmcy5T
ZXRTZXNzaW9uUGF0aCggaURpcmVjdG9yeS0+RGVzKCkgKTsNCi0NCi0gICAgICAgIGlmKCByZWFk
U3RyZWFtLk9wZW4oIGZzLCBpSW5kZXhGaWxlLT5EZXMoKSwgRUZpbGVSZWFkICkgPT0gS0Vyck5v
bmUgKQ0KKyAgICAgICAgVEludCByZXQgPSBLRXJyTm9uZTsNCisgICAgICAgIFRJbnQgdHJ5Q291
bnQgPSAwOw0KKyAgICAgICAgZm9yICh0cnlDb3VudCA9IDA7IHRyeUNvdW50IDwgNTsgdHJ5Q291
bnQrKykgDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgIHJldCA9IHJlYWRTdHJlYW0uT3Bl
biggZnMsIGlJbmRleEZpbGUtPkRlcygpLCBFRmlsZVNoYXJlUmVhZGVyc09yV3JpdGVycyApOw0K
KyAgICAgICAgICAgIGlmIChyZXQgPT0gS0VyckluVXNlKQ0KKyAgICAgICAgICAgICAgICB7DQor
ICAgICAgICAgICAgICAgIC8vIFdoZW4gdGhlIGNhY2hlIGlzIGZ1bGwsIGl0IHRha2VzIDY1IC0g
ODUgbWlsaXNlY29uZHMgdG8gd3JpdGUgdGhlIGluZGV4Lg0KKyAgICAgICAgICAgICAgICAvLyBT
byB3YWl0IDUwIG1pbGlzZWNvbmRzIGFuZCB0cnkgYWdhaW4NCisgICAgICAgICAgICAgICAgVXNl
cjo6QWZ0ZXIoNTAwMDApOw0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgZWxzZQ0K
KyAgICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgICAg
ICAgICB9DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgaWYoIHJldCA9PSBLRXJyTm9uZSApDQog
ICAgICAgICAgICAgew0KICAgICAgICAgICAgIENsZWFudXBDbG9zZVB1c2hMKCByZWFkU3RyZWFt
ICk7DQotICAgICAgICAgICAgaUxvb2t1cFRhYmxlLT5JbnRlcm5hbGl6ZUwoIHJlYWRTdHJlYW0s
IGlEaXJlY3RvcnktPkRlcygpICk7DQorICAgICAgICAgICAgYUxvb2t1cFRhYmxlLT5JbnRlcm5h
bGl6ZUwoIHJlYWRTdHJlYW0sIGlEaXJlY3RvcnktPkRlcygpICk7DQogICAgICAgICAgICAgQ2xl
YW51cFN0YWNrOjpQb3BBbmREZXN0cm95KCk7IC8vIHJlYWRTdHJlYW0NCiAgICAgICAgICAgICB9
DQogICAgICAgICB9DQpAQCAtMTEwNywxMCArMTEzOCwyNiBAQCB2b2lkIENIdHRwQ2FjaGVIYW5k
bGVyOjpTYXZlTG9va3VwVGFibGVMDQogICAgIFJGcyBmczsNCiAgICAgVXNlcjo6TGVhdmVJZkVy
cm9yKCBmcy5Db25uZWN0KCkgKTsNCiAgICAgQ2xlYW51cENsb3NlUHVzaEwoIGZzICk7DQotDQog
ICAgIGZzLlNldFNlc3Npb25QYXRoKCBpRGlyZWN0b3J5LT5EZXMoKSApOw0KLQ0KLSAgICBpZigg
d3JpdGVTdHJlYW0uUmVwbGFjZSggZnMsIGlJbmRleEZpbGUtPkRlcygpLCBFRmlsZVdyaXRlICkg
PT0gS0Vyck5vbmUgKQ0KKyAgICAvLyBEb24ndCBnZXQgbm90aWZpZWQgYWJvdXQgb3duIGNoYW5n
ZXMNCisgICAgaUh0dHBDYWNoZU9ic2VydmVyLT5DYW5jZWwoKTsNCisgICAgVEludCByZXQgPSBL
RXJyTm9uZTsNCisgICAgVEludCB0cnlDb3VudCA9IDA7DQorICAgIGZvciAodHJ5Q291bnQgPSAw
OyB0cnlDb3VudCA8IDU7IHRyeUNvdW50KyspIA0KKyAgICAgICAgew0KKyAgICAgICAgcmV0ID0g
d3JpdGVTdHJlYW0uUmVwbGFjZSggZnMsIGlJbmRleEZpbGUtPkRlcygpLCBFRmlsZVNoYXJlUmVh
ZGVyc09yV3JpdGVycyApOw0KKyAgICAgICAgaWYgKHJldCA9PSBLRXJySW5Vc2UpDQorICAgICAg
ICAgICAgew0KKyAgICAgICAgICAgIC8vIFdoZW4gdGhlIGNhY2hlIGlzIGZ1bGwsIGl0IHRha2Vz
IDY1IC0gODUgbWlsaXNlY29uZHMgdG8gd3JpdGUgdGhlIGluZGV4Lg0KKyAgICAgICAgICAgIC8v
IFNvIHdhaXQgNTAgbWlsaXNlY29uZHMgYW5kIHRyeSBhZ2Fpbg0KKyAgICAgICAgICAgIFVzZXI6
OkFmdGVyKDUwMDAwKTsNCisgICAgICAgICAgICB9DQorICAgICAgICBlbHNlDQorICAgICAgICAg
ICAgew0KKyAgICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgIH0NCisg
ICAgaWYoIHJldCA9PSBLRXJyTm9uZSApDQogICAgICAgICB7DQogICAgICAgICBDbGVhbnVwQ2xv
c2VQdXNoTCggd3JpdGVTdHJlYW0gKTsNCiAgICAgICAgIGlMb29rdXBUYWJsZS0+RXh0ZXJuYWxp
emVMKCB3cml0ZVN0cmVhbSApOw0KQEAgLTExMTgsNiArMTE2NSw3IEBAIHZvaWQgQ0h0dHBDYWNo
ZUhhbmRsZXI6OlNhdmVMb29rdXBUYWJsZUwNCiAgICAgICAgIENsZWFudXBTdGFjazo6UG9wQW5k
RGVzdHJveSgpOyAvLyB3cml0ZVN0cmVhbQ0KICAgICAgICAgfQ0KICAgICBDbGVhbnVwU3RhY2s6
OlBvcEFuZERlc3Ryb3koKTsgLy8gZnMNCisgICAgaUh0dHBDYWNoZU9ic2VydmVyLT5TdGFydE9i
c2VydmVyTCgpOw0KICAgICB9DQogDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkBAIC0xMjQ2
LDYgKzEyOTQsMzggQEAgVEludCBDSHR0cENhY2hlSGFuZGxlcjo6RG9CYWNrZ3JvdW5kU2F2ZQ0K
ICAgICB7DQogICAgIFRSQVBfSUdOT1JFKCAoKENIdHRwQ2FjaGVIYW5kbGVyKilhVGhpcyktPlNh
dmVMb29rdXBUYWJsZUwoKSApOw0KICAgICByZXR1cm4gS0Vyck5vbmU7DQorICAgIH0NCisNCisN
CisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRwQ2FjaGVIYW5kbGVyOjpVcGRhdGVM
b29rdXBUYWJsZQ0KKy8vDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLw0KK3ZvaWQgQ0h0
dHBDYWNoZUhhbmRsZXI6OlVwZGF0ZUxvb2t1cFRhYmxlKCkNCisgICAgew0KKyAgICBUUkFQX0lH
Tk9SRShVcGRhdGVMb29rdXBUYWJsZUwoKSk7DQorICAgIGlIdHRwQ2FjaGVPYnNlcnZlci0+U3Rh
cnRPYnNlcnZlckwoKTsNCisgICAgfQ0KKw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8g
Q0h0dHBDYWNoZUhhbmRsZXI6OlVwZGF0ZUxvb2t1cFRhYmxlTA0KKy8vDQorLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0NCisvLw0KK3ZvaWQgQ0h0dHBDYWNoZUhhbmRsZXI6OlVwZGF0ZUxvb2t1cFRh
YmxlTCgpDQorICAgIHsNCisgICAgQ0h0dHBDYWNoZUV2aWN0aW9uSGFuZGxlciogZXZpY3Rpb25I
YW5kbGVyID0gQ0h0dHBDYWNoZUV2aWN0aW9uSGFuZGxlcjo6TmV3TCgpOw0KKyAgICBDbGVhbnVw
U3RhY2s6OlB1c2hMKGV2aWN0aW9uSGFuZGxlcik7DQorICAgIENIdHRwQ2FjaGVMb29rdXBUYWJs
ZSogbG9va3VwVGFibGUgPSBDSHR0cENhY2hlTG9va3VwVGFibGU6Ok5ld0woICpldmljdGlvbkhh
bmRsZXIsICppU3RyZWFtSGFuZGxlciApOw0KKyAgICBDbGVhbnVwU3RhY2s6OlB1c2hMKGxvb2t1
cFRhYmxlKTsNCisgICAgT3Blbkxvb2t1cFRhYmxlTChsb29rdXBUYWJsZSk7DQorICAgIFJGcyBy
ZnM7DQorICAgIFVzZXI6OkxlYXZlSWZFcnJvcihyZnMuQ29ubmVjdCgpKTsNCisgICAgQ2xlYW51
cENsb3NlUHVzaEwocmZzKTsNCisgICAgcmZzLlNldFNlc3Npb25QYXRoKCBpRGlyZWN0b3J5LT5E
ZXMoKSApOw0KKyAgICBpTG9va3VwVGFibGUtPk1lcmdlTChsb29rdXBUYWJsZSwgcmZzKTsNCisg
ICAgQ2xlYW51cFN0YWNrOjpQb3BBbmREZXN0cm95KDMpOyAvLyByZnMsIGxvb2t1cFRhYmxlLCBl
dmljdGlvbkhhbmRsZXINCiAgICAgfQ0KIA0KIC8vICBFbmQgb2YgRmlsZQ0KSW5kZXg6IFdlYktp
dC9SZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVMb29rdXBUYWJsZS5jcHANCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0NCi0tLSBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hlTG9va3Vw
VGFibGUuY3BwCShyZXZpc2lvbiAxODIyMSkNCisrKyBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2Fj
aGVTcmMvSHR0cENhY2hlTG9va3VwVGFibGUuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNDYsNyAr
NDYsNiBAQA0KICNpbmNsdWRlICJIdHRwQ2FjaGVVdGlsLmgiDQogI2luY2x1ZGUgIkh0dHBDYWNo
ZUV2aWN0aW9uSGFuZGxlci5oIg0KICNpbmNsdWRlICJIdHRwQ2FjaGVTdHJlYW1IYW5kbGVyLmgi
DQotI2luY2x1ZGUgPHMzMmZpbGUuaD4NCiANCiAvLyBFWFRFUk5BTCBEQVRBIFNUUlVDVFVSRVMN
CiANCkBAIC02NzIsNSArNjcxLDcyIEBAIFRCb29sIENIdHRwQ2FjaGVMb29rdXBUYWJsZTo6Qm91
bmRhcnlDaGUNCiAgICAgVEludCBhUG9zICkNCiAgICAgew0KICAgICByZXR1cm4gKCBhUG9zID49
IDAgJiYgYVBvcyA8IGlFbnRyaWVzLT5Db3VudCgpICk7DQorICAgIH0NCisNCisvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRwQ2FjaGVMb29rdXBUYWJsZTo6TWVyZ2VMDQorLy8NCisv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vDQordm9pZCBDSHR0cENhY2hlTG9va3VwVGFibGU6
Ok1lcmdlTCggQ0h0dHBDYWNoZUxvb2t1cFRhYmxlKiBhSHR0cENhY2hlTG9va3VwVGFibGUsIFJG
cyBhUmZzICkNCisgICAgew0KKyAgICBUSW50IG15Q291bnQgPSBpRW50cmllcy0+Q291bnQoKTsN
CisgICAgVEludCBpID0gMDsNCisgICAgZm9yIChpID0gbXlDb3VudCAtIDE7IGkgPj0gMDsgaS0t
KQ0KKyAgICAgICAgew0KKyAgICAgICAgaWYgKCBWYWxpZCggaSApICkNCisgICAgICAgICAgICB7
DQorICAgICAgICAgICAgQ0h0dHBDYWNoZUVudHJ5KiBlbnRyeSA9IGlFbnRyaWVzLT5BdChpKTsN
CisgICAgICAgICAgICBDSHR0cENhY2hlRW50cnkqIG5ld0VudHJ5ID0gYUh0dHBDYWNoZUxvb2t1
cFRhYmxlLT5GaW5kKGVudHJ5LT5VcmwoKSk7DQorICAgICAgICAgICAgaWYgKG5ld0VudHJ5KQ0K
KyAgICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgIC8vIEVudHJ5IGlzIGluIHRoZSBu
ZXcgaW5kZXggZmlsZQ0KKyAgICAgICAgICAgICAgICBpZiAobmV3RW50cnktPkxhc3RBY2Nlc3Nl
ZCgpID4gZW50cnktPkxhc3RBY2Nlc3NlZCgpKQ0KKyAgICAgICAgICAgICAgICAgICAgew0KKyAg
ICAgICAgICAgICAgICAgICAgZW50cnktPkFjY2Vzc2VkKG5ld0VudHJ5LT5MYXN0QWNjZXNzZWQo
KSwgbmV3RW50cnktPlJlZigpKTsNCisgICAgICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAg
ICAgICAgVEludCBwb3MgPSBhSHR0cENhY2hlTG9va3VwVGFibGUtPlByb2JlKG5ld0VudHJ5LT5V
cmwoKSwgRUZhbHNlKTsNCisgICAgICAgICAgICAgICAgaWYgKGFIdHRwQ2FjaGVMb29rdXBUYWJs
ZS0+VmFsaWQocG9zKSkNCisgICAgICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAg
ICAgIGFIdHRwQ2FjaGVMb29rdXBUYWJsZS0+U2V0RGVsZXRlZChwb3MpOw0KKyAgICAgICAgICAg
ICAgICAgICAgZGVsZXRlIG5ld0VudHJ5Ow0KKyAgICAgICAgICAgICAgICAgICAgYUh0dHBDYWNo
ZUxvb2t1cFRhYmxlLT5pQ291bnQtLTsNCisgICAgICAgICAgICAgICAgICAgIH0NCisgICAgICAg
ICAgICAgICAgfQ0KKyAgICAgICAgICAgIGVsc2UgLy8gKG5ld0VudHJ5KQ0KKyAgICAgICAgICAg
ICAgICB7DQorICAgICAgICAgICAgICAgIC8vIEVudHJ5IGlzIG5vdCBpbiB0aGUgbmV3IGluZGV4
IGZpbGUNCisgICAgICAgICAgICAgICAgVFVpbnQgYXR0Ow0KKyAgICAgICAgICAgICAgICBpZiAo
YVJmcy5BdHQoZW50cnktPkZpbGVuYW1lKCksIGF0dCkgIT0gS0Vyck5vbmUpDQorICAgICAgICAg
ICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgICAgICBUSW50IHRoZVBvcyA9IFByb2JlKGVu
dHJ5LT5VcmwoKSwgRUZhbHNlKTsNCisgICAgICAgICAgICAgICAgICAgIGlmIChWYWxpZCh0aGVQ
b3MpKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgICAgICAg
ICBFcmFzZSh0aGVQb3MpOw0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAg
ICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIH0NCisgICAgICAg
IH0NCisNCisgICAgVEludCBuZXdDb3VudCA9IGFIdHRwQ2FjaGVMb29rdXBUYWJsZS0+aUVudHJp
ZXMtPkNvdW50KCk7DQorICAgIGZvciAoaSA9IG5ld0NvdW50IC0gMTsgaSA+PSAwOyBpLS0pDQor
ICAgICAgICB7DQorICAgICAgICBpZiAoIGFIdHRwQ2FjaGVMb29rdXBUYWJsZS0+VmFsaWQoIGkg
KSApDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgIENIdHRwQ2FjaGVFbnRyeSogbmV3RW50
cnkgPSBhSHR0cENhY2hlTG9va3VwVGFibGUtPmlFbnRyaWVzLT5BdChpKTsNCisgICAgICAgICAg
ICBUSW50IHBvcyA9IGFIdHRwQ2FjaGVMb29rdXBUYWJsZS0+UHJvYmUobmV3RW50cnktPlVybCgp
LCBFRmFsc2UpOw0KKyAgICAgICAgICAgIFRVaW50IGF0dDsNCisgICAgICAgICAgICBpZiAoYVJm
cy5BdHQobmV3RW50cnktPkZpbGVuYW1lKCksIGF0dCkgPT0gS0Vyck5vbmUpDQorICAgICAgICAg
ICAgICAgIHsNCisgICAgICAgICAgICAgICAgQ0h0dHBDYWNoZUVudHJ5KiBteUVudHJ5ID0gSW5z
ZXJ0TChuZXdFbnRyeS0+VXJsKCkpOw0KKyAgICAgICAgICAgICAgICBteUVudHJ5LT5TZXRTdGF0
ZSggQ0h0dHBDYWNoZUVudHJ5OjpFQ2FjaGVDb21wbGV0ZSApOw0KKyAgICAgICAgICAgICAgICBt
eUVudHJ5LT5BY2Nlc3NlZChuZXdFbnRyeS0+TGFzdEFjY2Vzc2VkKCksIG5ld0VudHJ5LT5SZWYo
KSk7DQorICAgICAgICAgICAgICAgIH0gICAgICAgICAgDQorICAgICAgICAgICAgYUh0dHBDYWNo
ZUxvb2t1cFRhYmxlLT5TZXREZWxldGVkKHBvcyk7DQorICAgICAgICAgICAgZGVsZXRlIG5ld0Vu
dHJ5Ow0KKyAgICAgICAgICAgIGFIdHRwQ2FjaGVMb29rdXBUYWJsZS0+aUNvdW50LS07DQorICAg
ICAgICAgICAgfQ0KKyAgICAgICAgfQ0KICAgICB9DQogLy8gIEVuZCBvZiBGaWxlDQpJbmRleDog
V2ViS2l0L2dyb3VwL0Jyb3dzZXJDYWNoZS5tbXANCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvZ3Jv
dXAvQnJvd3NlckNhY2hlLm1tcAkocmV2aXNpb24gMTgyMjEpDQorKysgV2ViS2l0L2dyb3VwL0Jy
b3dzZXJDYWNoZS5tbXAJKHdvcmtpbmcgY29weSkNCkBAIC02MSw2ICs2MSw3IEBAIFNPVVJDRSAg
ICAgICAgSHR0cENhY2hlTWFuYWdlci5jcHANCiBTT1VSQ0UgICAgICAgIEh0dHBDYWNoZUVudHJ5
LmNwcA0KIFNPVVJDRSAgICAgICAgSHR0cENhY2hlRXZpY3Rpb25IYW5kbGVyLmNwcA0KIFNPVVJD
RSAgICAgICAgSHR0cENhY2hlSGFuZGxlci5jcHANCitTT1VSQ0UgICAgICAgIEh0dHBDYWNoZU9i
c2VydmVyLmNwcA0KIFNPVVJDRSAgICAgICAgSHR0cENhY2hlTG9va3VwVGFibGUuY3BwDQogU09V
UkNFICAgICAgICBIdHRwQ2FjaGVTdHJlYW1IYW5kbGVyLmNwcA0KIFNPVVJDRSAgICAgICAgSHR0
cENhY2hlVXRpbC5jcHANCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>11850</attachid>
            <date>2006-12-14 18:51:14 -0800</date>
            <delta_ts>2006-12-15 07:05:19 -0800</delta_ts>
            <desc>3,2 fix</desc>
            <filename>MyBrilliantWork.patch</filename>
            <type>text/plain</type>
            <size>32167</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxODIyNikNCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpDQpA
QCAtMSwzICsxLDM1IEBADQorMjAwNi0xMi0xNCAgeWFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lh
LmNvbT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKyAgICAgICAg
REVTQzogQnVnIDExODM0OiBUTFVVLTZWSlFYMyA6IENhY2hlIGNhbm5vdCBzdXBwb3J0IG1vcmUg
dGhhbiBvbmUgYXBwbGljYXRpb24gc2ltdWx0YW5lb3VzbHkNCisgICAgICAgIGh0dHA6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODM0DQorDQorICAgICAgICAqIFJlc291cmNl
TG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNoZUVudHJ5Lmg6DQorICAgICAgICAqIFJlc291cmNlTG9h
ZGVyL0NhY2hlSW5jL0h0dHBDYWNoZUhhbmRsZXIuaDoNCisgICAgICAgICogUmVzb3VyY2VMb2Fk
ZXIvQ2FjaGVJbmMvSHR0cENhY2hlTG9va3VwVGFibGUuaDoNCisgICAgICAgICogUmVzb3VyY2VM
b2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlT2JzZXJ2ZXIuaDogQWRkZWQuDQorICAgICAgICAoTk9O
U0hBUkFCTEVfQ0xBU1MpOg0KKyAgICAgICAgKiBSZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9IdHRw
Q2FjaGVFbnRyeS5jcHA6DQorICAgICAgICAoQ0h0dHBDYWNoZUVudHJ5OjpBY2Nlc3NlZCk6DQor
ICAgICAgICAqIFJlc291cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZUhhbmRsZXIuY3BwOg0K
KyAgICAgICAgKENIdHRwQ2FjaGVIYW5kbGVyOjpDb25zdHJ1Y3RMKToNCisgICAgICAgIChDSHR0
cENhY2hlSGFuZGxlcjo6fkNIdHRwQ2FjaGVIYW5kbGVyKToNCisgICAgICAgIChDSHR0cENhY2hl
SGFuZGxlcjo6T3Blbkxvb2t1cFRhYmxlTCk6DQorICAgICAgICAoQ0h0dHBDYWNoZUhhbmRsZXI6
OlNhdmVMb29rdXBUYWJsZUwpOg0KKyAgICAgICAgKENIdHRwQ2FjaGVIYW5kbGVyOjpVcGRhdGVM
b29rdXBUYWJsZSk6DQorICAgICAgICAoQ0h0dHBDYWNoZUhhbmRsZXI6OlVwZGF0ZUxvb2t1cFRh
YmxlTCk6DQorICAgICAgICAqIFJlc291cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZUxvb2t1
cFRhYmxlLmNwcDoNCisgICAgICAgICogUmVzb3VyY2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hl
T2JzZXJ2ZXIuY3BwOiBBZGRlZC4NCisgICAgICAgIChDSHR0cENhY2hlT2JzZXJ2ZXI6OkNIdHRw
Q2FjaGVPYnNlcnZlcik6DQorICAgICAgICAoQ0h0dHBDYWNoZU9ic2VydmVyOjpDb25zdHJ1Y3RM
KToNCisgICAgICAgIChDSHR0cENhY2hlT2JzZXJ2ZXI6Ok5ld0wpOg0KKyAgICAgICAgKENIdHRw
Q2FjaGVPYnNlcnZlcjo6fkNIdHRwQ2FjaGVPYnNlcnZlcik6DQorICAgICAgICAoQ0h0dHBDYWNo
ZU9ic2VydmVyOjpSdW5MKToNCisgICAgICAgIChDSHR0cENhY2hlT2JzZXJ2ZXI6OlJ1bkVycm9y
KToNCisgICAgICAgIChDSHR0cENhY2hlT2JzZXJ2ZXI6OkRvQ2FuY2VsKToNCisgICAgICAgIChD
SHR0cENhY2hlT2JzZXJ2ZXI6OlN0YXJ0T2JzZXJ2ZXJMKToNCisgICAgICAgICogZ3JvdXAvQnJv
d3NlckNhY2hlLm1tcDoNCisNCiAyMDA2LTEyLTEyICByYXRobmFzYSAgPHNvcm5hbGF0aGEucmF0
aG5hc2FteUBub2tpYS5jb20+DQogDQogICAgICAgICBSZXZpZXdlZCBieSBZb25nanVuIFpoYW5n
IGFuZCBTdGV2ZSBXaW5zaGlwLg0KSW5kZXg6IFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZUlu
Yy9IdHRwQ2FjaGVFbnRyeS5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L1Jlc291cmNlTG9hZGVy
L0NhY2hlSW5jL0h0dHBDYWNoZUVudHJ5LmgJKHJldmlzaW9uIDE4MjIxKQ0KKysrIFdlYktpdC9S
ZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVFbnRyeS5oCSh3b3JraW5nIGNvcHkpDQpA
QCAtOSw5ICs5LDkgQEANCiAqICAgIENvcHlyaWdodCAoYykgMjAwNiwgTm9raWEgQ29ycG9yYXRp
b24NCiAqICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQogKiAgDQotKiAgCVJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KLSog
IAltb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMNCi0qICAJYXJlIG1ldDoNCisqICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQorKiAgIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cw0KKyogICBhcmUgbWV0Og0KICogIA0KICogICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQogKiAgICAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0K
QEAgLTIzLDE4ICsyMywxOCBAQA0KICogICAgICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZA0KICogICAgICAgIGZyb20gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4NCiAq
ICANCi0qICAJVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUw0KLSogIAkiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVA0KLSogIAlMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1INCi0q
ICAJQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQNCi0qICAJT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsDQotKiAgCVNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QNCi0qICAJTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsDQotKiAgCURBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQ0KLSogIAlUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUDQotKiAgCShJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFDQotKiAgCVVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0gNCi0qICAJREFNQUdFLg0KKyogICBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTDQorKiAgICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UDQorKiAgIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUg0KKyogICBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVA0KKyogICBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwNCisqICAgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVA0KKyogICBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwNCisqICAgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
DQorKiAgIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQNCisqICAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUNCisqICAgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSA0KKyogICBEQU1B
R0UuDQogKiAgDQogKiAgICBQbGVhc2Ugc2VlIGZpbGUgcGF0ZW50bGljZW5zZS50eHQgZm9yIGZ1
cnRoZXIgZ3JhbnRzLg0KICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMjM3LDYgKzIzNywx
NCBAQCBjbGFzcyBDSHR0cENhY2hlRW50cnkgOiBwdWJsaWMgQ0Jhc2UNCiAgICAgICAgICogQHJl
dHVybiANCiAgICAgICAgICovDQogICAgICAgICBUSW50IEV4dGVybmFsaXplKCBSRmlsZVdyaXRl
U3RyZWFtJiBhV3JpdGVTdHJlYW0gKTsNCisNCisgICAgICAgIC8qKg0KKyAgICAgICAgKiANCisg
ICAgICAgICogQHNpbmNlIDMuMQ0KKyAgICAgICAgKiBAcGFyYW0gDQorICAgICAgICAqIEByZXR1
cm4gDQorICAgICAgICAqLw0KKyAgICAgICAgdm9pZCBBY2Nlc3NlZChUSW50NjQgYUxhc3RBY2Nl
c3NlZCwgVFVpbnQxNiBhUmVmKTsNCiANCiAgICAgcHVibGljIDogDQogDQpJbmRleDogV2ViS2l0
L1Jlc291cmNlTG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNoZUhhbmRsZXIuaA0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
LS0tIFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVIYW5kbGVyLmgJKHJl
dmlzaW9uIDE4MjIxKQ0KKysrIFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2Fj
aGVIYW5kbGVyLmgJKHdvcmtpbmcgY29weSkNCkBAIC02OCw2ICs2OCw3IEBAIGNsYXNzIE1IVFRQ
RGF0YVN1cHBsaWVyOw0KIGNsYXNzIENJZGxlOw0KIGNsYXNzIENIdHRwQ2FjaGVFdmljdGlvbkhh
bmRsZXI7DQogY2xhc3MgVEh0dHBDYWNoZUVudHJ5Ow0KK2NsYXNzIENIdHRwQ2FjaGVPYnNlcnZl
cjsNCiANCiAvLyBDTEFTUyBERUNMQVJBVElPTg0KIA0KQEAgLTIwMyw2ICsyMDQsMTUgQEAgY2xh
c3MgQ0h0dHBDYWNoZUhhbmRsZXIgOiBwdWJsaWMgQ0Jhc2UNCiAgICAgICAgICovDQogICAgICAg
ICB2b2lkIEFkanVzdFJlc3BvbnNlVGltZShSSFRUUFRyYW5zYWN0aW9uJiBhVHJhbnMpOw0KIA0K
KyAgICAgICAgLyoqDQorICAgICAgICAqIFNvbWUgb3RoZXIgYXBwbGljYXRpb24gbW9kaWZpZWQg
dGhlIGNhY2hlIGFuZCB0aGUgbG9va3VwIHRhYmxlIG5lZWRzIHRvIGJlIHVwZGF0ZWQNCisgICAg
ICAgICoNCisgICAgICAgICogQHNpbmNlIDMuMQ0KKyAgICAgICAgKiBAcGFyYW0NCisgICAgICAg
ICogQHJldHVybg0KKyAgICAgICAgKi8NCisgICAgICAgIHZvaWQgVXBkYXRlTG9va3VwVGFibGUo
KTsNCisNCiAgICAgcHJpdmF0ZToNCiANCiAgICAgICAgIC8qKg0KQEAgLTIyMiw2ICsyMzIsMTUg
QEAgY2xhc3MgQ0h0dHBDYWNoZUhhbmRsZXIgOiBwdWJsaWMgQ0Jhc2UNCiAgICAgcHJpdmF0ZTog
Ly8NCiANCiAgICAgICAgIC8qKg0KKyAgICAgICAgKiBTb21lIG90aGVyIGFwcGxpY2F0aW9uIG1v
ZGlmaWVkIHRoZSBjYWNoZSBhbmQgdGhlIGxvb2t1cCB0YWJsZSBuZWVkcyB0byBiZSB1cGRhdGVk
DQorICAgICAgICAqDQorICAgICAgICAqIEBzaW5jZSAzLjENCisgICAgICAgICogQHBhcmFtDQor
ICAgICAgICAqIEByZXR1cm4NCisgICAgICAgICovDQorICAgICAgICB2b2lkIFVwZGF0ZUxvb2t1
cFRhYmxlTCgpOw0KKw0KKyAgICAgICAgLyoqDQogICAgICAgICAqDQogICAgICAgICAqIEBzaW5j
ZSAzLjENCiAgICAgICAgICogQHBhcmFtDQpAQCAtMjkxLDYgKzMxMCwxNSBAQCBjbGFzcyBDSHR0
cENhY2hlSGFuZGxlciA6IHB1YmxpYyBDQmFzZQ0KICAgICAgICAgKiBAcGFyYW0NCiAgICAgICAg
ICogQHJldHVybg0KICAgICAgICAgKi8NCisgICAgICAgIHZvaWQgT3Blbkxvb2t1cFRhYmxlTChD
SHR0cENhY2hlTG9va3VwVGFibGUqIGFMb29rdXBUYWJsZSk7DQorDQorICAgICAgICAvKioNCisg
ICAgICAgICoNCisgICAgICAgICogQHNpbmNlIDMuMQ0KKyAgICAgICAgKiBAcGFyYW0NCisgICAg
ICAgICogQHBhcmFtDQorICAgICAgICAqIEByZXR1cm4NCisgICAgICAgICovDQogICAgICAgICB2
b2lkIEhhbmRsZUNvcnJ1cHRFbnRyeSggQ0h0dHBDYWNoZUVudHJ5JiBhU3RyYXlFbnRyeSwgVEJv
b2wgYVVwZGF0ZSA9IEVUcnVlICk7DQogDQogICAgICAgICAvKioNCkBAIC0zNDUsNiArMzczLDgg
QEAgY2xhc3MgQ0h0dHBDYWNoZUhhbmRsZXIgOiBwdWJsaWMgQ0Jhc2UNCiAgICAgICAgIENJZGxl
KiAgICAgICAgICAgICAgICAgICAgICAgICAgaUlkbGU7ICAgICAgLy8gb3duZWQNCiAgICAgICAg
IC8vIG5hbWUgb2YgdGhlIGluZGV4IGZpbGUNCiAgICAgICAgIEhCdWZDKiAgICAgICAgICAgICAg
ICAgICAgICAgICAgaUluZGV4RmlsZTsgLy8gb3duZWQNCisgICAgICAgIC8vIE9ic2VydmluZyBj
aGFuZ2VzIGluIGNhY2hlDQorICAgICAgICBDSHR0cENhY2hlT2JzZXJ2ZXIqIGlIdHRwQ2FjaGVP
YnNlcnZlcjsgLy8gb3duZWQNCiAgICAgfTsNCiANCiAjZW5kaWYgICAgICAvLyBDSFRUUENBQ0hF
SEFORExFUl9IDQpJbmRleDogV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNo
ZUxvb2t1cFRhYmxlLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2Fj
aGVJbmMvSHR0cENhY2hlTG9va3VwVGFibGUuaAkocmV2aXNpb24gMTgyMjEpDQorKysgV2ViS2l0
L1Jlc291cmNlTG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNoZUxvb2t1cFRhYmxlLmgJKHdvcmtpbmcg
Y29weSkNCkBAIC05LDkgKzksOSBAQA0KICogICAgQ29weXJpZ2h0IChjKSAyMDA2LCBOb2tpYSBD
b3Jwb3JhdGlvbg0KICogICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqICANCi0qICAJUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0DQotKiAgCW1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucw0KLSogIAlhcmUgbWV0Og0KKyogICBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCisqICAg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zDQorKiAgIGFyZSBtZXQ6DQogKiAgDQogKiAgICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCiAqICAgICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuDQpAQCAtMjMsMTggKzIzLDE4IEBADQogKiAgICAgICAgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkDQogKiAgICAgICAg
ZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLg0KICogIA0KLSogIAlUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTDQotKiAgCSJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UDQotKiAgCUxJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUg0KLSogIAlBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVA0KLSogIAlPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwNCi0qICAJU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVA0K
LSogIAlMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwNCi0qICAJREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZDQotKiAgCVRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQNCi0q
ICAJKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUNCi0qICAJVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSA0KLSogIAlEQU1BR0UuDQorKiAgIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMN
CisqICAgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QNCisqICAgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SDQorKiAgIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUDQorKiAg
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLA0KKyogICBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UDQorKiAgIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLA0KKyogICBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkNCisqICAgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVA0KKyogICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRQ0KKyogICBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIDQor
KiAgIERBTUFHRS4NCiAqICANCiAqICAgIFBsZWFzZSBzZWUgZmlsZSBwYXRlbnRsaWNlbnNlLnR4
dCBmb3IgZnVydGhlciBncmFudHMuDQogKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC00NSw2
ICs0NSw3IEBADQogDQogLy8gIElOQ0xVREVTDQogI2luY2x1ZGUgPGUzMmJhc2UuaD4NCisjaW5j
bHVkZSA8czMyZmlsZS5oPg0KIA0KIC8vIENPTlNUQU5UUw0KIA0KQEAgLTk0LDcgKzk1LDcgQEAg
Y2xhc3MgQ0h0dHBDYWNoZUxvb2t1cFRhYmxlIDogcHVibGljIENCYQ0KICAgICAgICAgKiBAcGFy
YW0NCiAgICAgICAgICogQHJldHVybg0KICAgICAgICAgKi8NCi0JCUNIdHRwQ2FjaGVFbnRyeSog
SW5zZXJ0TCggY29uc3QgVERlc0M4JiBhVXJsICk7DQorICAgIENIdHRwQ2FjaGVFbnRyeSogSW5z
ZXJ0TCggY29uc3QgVERlc0M4JiBhVXJsICk7DQogDQogICAgICAgICAvKioNCiAgICAgICAgICoN
CkBAIC0xMDIsNyArMTAzLDcgQEAgY2xhc3MgQ0h0dHBDYWNoZUxvb2t1cFRhYmxlIDogcHVibGlj
IENCYQ0KICAgICAgICAgKiBAcGFyYW0NCiAgICAgICAgICogQHJldHVybg0KICAgICAgICAgKi8N
Ci0JCUNIdHRwQ2FjaGVFbnRyeSogRmluZCggY29uc3QgVERlc0M4JiBhVXJsICk7DQorICAgIENI
dHRwQ2FjaGVFbnRyeSogRmluZCggY29uc3QgVERlc0M4JiBhVXJsICk7DQogDQogICAgICAgICAv
KioNCiAgICAgICAgICoNCkBAIC0xMTAsNyArMTExLDcgQEAgY2xhc3MgQ0h0dHBDYWNoZUxvb2t1
cFRhYmxlIDogcHVibGljIENCYQ0KICAgICAgICAgKiBAcGFyYW0NCiAgICAgICAgICogQHJldHVy
bg0KICAgICAgICAgKi8NCi0JCVRJbnQgUmVtb3ZlKCBjb25zdCBURGVzQzgmIGFVcmwgKTsNCisg
ICAgVEludCBSZW1vdmUoIGNvbnN0IFREZXNDOCYgYVVybCApOw0KIA0KICAgICAgICAgLyoqDQog
ICAgICAgICAqDQpAQCAtMTE4LDcgKzExOSw3IEBAIGNsYXNzIENIdHRwQ2FjaGVMb29rdXBUYWJs
ZSA6IHB1YmxpYyBDQmENCiAgICAgICAgICogQHBhcmFtDQogICAgICAgICAqIEByZXR1cm4NCiAg
ICAgICAgICovDQotCQlUSW50IFJlbW92ZUFsbCgpOw0KKyAgICBUSW50IFJlbW92ZUFsbCgpOw0K
IA0KICAgICAgICAgLyoqDQogICAgICAgICAqDQpAQCAtMTUyLDYgKzE1MywxNCBAQCBjbGFzcyBD
SHR0cENhY2hlTG9va3VwVGFibGUgOiBwdWJsaWMgQ0JhDQogICAgICAgICAqLw0KICAgICAgICAg
dm9pZCBFeHRlcm5hbGl6ZUwoIFJGaWxlV3JpdGVTdHJlYW0mIGFXcml0ZVN0cmVhbSApOw0KIA0K
KyAgICAgICAgLyoqDQorICAgICAgICAqDQorICAgICAgICAqIEBzaW5jZSAzLjENCisgICAgICAg
ICogQHBhcmFtDQorICAgICAgICAqIEByZXR1cm4NCisgICAgICAgICovDQorICAgIHZvaWQgTWVy
Z2VMKCBDSHR0cENhY2hlTG9va3VwVGFibGUqIGFIdHRwQ2FjaGVMb29rdXBUYWJsZSwgUkZzIGFS
ZnMgICk7DQorDQogICAgIHByaXZhdGU6DQogDQogICAgICAgICAvKioNCkBAIC0yNjEsNyArMjcw
LDcgQEAgY2xhc3MgQ0h0dHBDYWNoZUxvb2t1cFRhYmxlIDogcHVibGljIENCYQ0KICAgICBwcml2
YXRlOiAgICAvLyBEYXRhDQogDQogICAgICAgICAvLyBoYXNoIHRhYmxlIGZvciBjYWNoZSBlbnRy
aWVzDQotCQlDQXJyYXlQdHJGbGF0PENIdHRwQ2FjaGVFbnRyeT4qIGlFbnRyaWVzOw0KKyAgICBD
QXJyYXlQdHJGbGF0PENIdHRwQ2FjaGVFbnRyeT4qIGlFbnRyaWVzOw0KICAgICAgICAgLy8gbnVt
YmVyIG9mIGVudHJpZXMgaW4gdGhlIGhhc2h0YWJsZQ0KICAgICAgICAgVEludCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpQ291bnQ7DQogICAgICAgICAvLw0KSW5kZXg6IFdlYktpdC9SZXNv
dXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVPYnNlcnZlci5oDQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0g
V2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNoZU9ic2VydmVyLmgJKHJldmlz
aW9uIDApDQorKysgV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNoZU9ic2Vy
dmVyLmgJKHJldmlzaW9uIDApDQpAQCAtMCwwICsxLDEyMSBAQA0KKy8qDQorKiA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0NCisqICBOYW1lICAgICAgICA6IEh0dHBDYWNoZUhhbmRsZXJVcGRhdGVyLmgN
CisqICBQYXJ0IG9mICAgICA6IFdlYktpdCAvIFJlc291cmNlTG9hZGVyDQorKiAgSW50ZXJmYWNl
ICAgOg0KKyogIERlc2NyaXB0aW9uIDogRGVmaW5pdGlvbiBvZiBDSHR0cENhY2hlT2JzZXJ2ZXIN
CisqICBWZXJzaW9uICAgICA6ICVWZXJzaW9uJQ0KKyoNCisqICAgIENvcHlyaWdodCAoYykgMjAw
NiwgTm9raWEgQ29ycG9yYXRpb24NCisqICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQorKg0KKyog
ICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQNCisqICAgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQorKiAgIGFyZSBtZXQ6DQorKg0KKyogICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0DQorKiAgICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KKyogICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0DQorKiAgICAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluDQorKiAgICAgICAgdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQ0KKyogICAgICAgIGRpc3RyaWJ1dGlvbi4NCisqICAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIHRoZSBOb2tpYSBDb3Jwb3JhdGlvbiBub3IgdGhlIG5hbWVzIG9mIGl0
cw0KKyogICAgICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZA0KKyogICAgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4NCisqDQorKiAgIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMN
CisqICAgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QNCisqICAgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SDQorKiAgIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUDQorKiAg
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLA0KKyogICBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UDQorKiAgIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLA0KKyogICBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkNCisqICAgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVA0KKyogICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRQ0KKyogICBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIDQor
KiAgIERBTUFHRS4NCisqDQorKiAgICBQbGVhc2Ugc2VlIGZpbGUgcGF0ZW50bGljZW5zZS50eHQg
Zm9yIGZ1cnRoZXIgZ3JhbnRzLg0KKyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorKi8NCisNCisj
aWZuZGVmIENIVFRQQ0FDSEVPQlNFUlZFUl9IDQorI2RlZmluZSBDSFRUUENBQ0hFT0JTRVJWRVJf
SA0KKw0KKy8vICBJTkNMVURFUw0KKyNpbmNsdWRlIDxlMzJiYXNlLmg+DQorI2luY2x1ZGUgPGYz
MmZpbGUuaD4NCisNCisvLyBDT05TVEFOVFMNCisNCisvLyBNQUNST1MNCisNCisvLyBEQVRBIFRZ
UEVTDQorDQorLy8gRlVOQ1RJT04gUFJPVE9UWVBFUw0KKw0KKy8vIEZPUldBUkQgREVDTEFSQVRJ
T05TDQorY2xhc3MgQ0h0dHBDYWNoZUhhbmRsZXI7DQorDQorLy8gQ0xBU1MgREVDTEFSQVRJT04N
CisNCisvKioNCisqDQorKiAgQGxpYg0KKyogIEBzaW5jZSAzLjENCisqLw0KK05PTlNIQVJBQkxF
X0NMQVNTKENIdHRwQ2FjaGVPYnNlcnZlcikgOiBwdWJsaWMgQ0FjdGl2ZQ0KKyAgICB7DQorICAg
IHB1YmxpYzogIC8vIENvbnN0cnVjdG9ycyBhbmQgZGVzdHJ1Y3Rvcg0KKw0KKyAgICAgICAgLyoq
DQorICAgICAgICAqIFR3by1waGFzZWQgY29uc3RydWN0b3IuDQorICAgICAgICAqIEBzaW5jZSAz
LjENCisgICAgICAgICogQHBhcmFtDQorICAgICAgICAqIEBwYXJhbQ0KKyAgICAgICAgKiBAcmV0
dXJuIENhY2hlSGFuZGxlciBvYmplY3QuDQorICAgICAgICAqLw0KKyAgICAgICAgc3RhdGljIENI
dHRwQ2FjaGVPYnNlcnZlciogTmV3TCggY29uc3QgSEJ1ZkMqIGFEaXJlY3RvcnksIGNvbnN0IEhC
dWZDKiBhSW5kZXhGaWxlLA0KKyAgICAgICAgICAgIENIdHRwQ2FjaGVIYW5kbGVyKiBhSHR0cENh
Y2hlSGFuZGxlcik7DQorDQorICAgICAgICAvKioNCisgICAgICAgICogRGVzdHJ1Y3Rvci4NCisg
ICAgICAgICovDQorICAgICAgICB2aXJ0dWFsIH5DSHR0cENhY2hlT2JzZXJ2ZXIoKTsNCisNCisg
ICAgcHVibGljOiAvLyBuZXcgZnVuY3Rpb25zDQorICAgICAgICB2b2lkIFN0YXJ0T2JzZXJ2ZXJM
KCk7DQorDQorICAgIHB1YmxpYzogLy8gZnJvbSBiYXNlIGNsYXNzIENBY3RpdmUNCisgICAgICAg
IHZvaWQgUnVuTCgpOw0KKyAgICAgICAgVEludCBSdW5FcnJvcihUSW50IGFFcnJvcik7DQorICAg
ICAgICB2b2lkIERvQ2FuY2VsKCk7DQorDQorICAgIHByaXZhdGU6DQorDQorICAgICAgICAvKioN
CisgICAgICAgICogQ29uc3RydWN0Lg0KKyAgICAgICAgKiBAc2luY2UgMy4xDQorICAgICAgICAq
IEBwYXJhbQ0KKyAgICAgICAgKiBAcGFyYW0NCisgICAgICAgICogQHJldHVybiBDYWNoZU9ic2Vy
dmVyIG9iamVjdC4NCisgICAgICAgICovDQorICAgICAgICBDSHR0cENhY2hlT2JzZXJ2ZXIoQ0h0
dHBDYWNoZUhhbmRsZXIqIGFIdHRwQ2FjaGVIYW5kbGVyKTsNCisNCisgICAgICAgIC8qKg0KKyAg
ICAgICAgKiBCeSBkZWZhdWx0IFN5bWJpYW4gMm5kIHBoYXNlIGNvbnN0cnVjdG9yIGlzIHByaXZh
dGUuDQorICAgICAgICAqLw0KKyAgICAgICAgdm9pZCBDb25zdHJ1Y3RMKGNvbnN0IEhCdWZDKiBh
RGlyZWN0b3J5LCBjb25zdCBIQnVmQyogYUluZGV4RmlsZSk7DQorDQorICAgIHByaXZhdGU6ICAg
IC8vIERhdGENCisNCisgICAgICAgIC8vIG5hbWUgYW5kIHBhdGggb2YgaW5kZXggZmlsZQ0KKyAg
ICAgICAgSEJ1ZkMqIGlGaWxlTmFtZTsgLy8gb3duZWQNCisgICAgICAgIFJGcyBpRnNTZXNzaW9u
OyAvLyBub3Qgb3duZWQNCisgICAgICAgIENIdHRwQ2FjaGVIYW5kbGVyKiBpSHR0cENhY2hlSGFu
ZGxlcjsNCisgICAgfTsNCisNCisjZW5kaWYgICAgICAvLyBDSFRUUENBQ0hFT0JTRVJWRVJfSA0K
Kw0KKy8vIEVuZCBvZiBGaWxlDQpJbmRleDogV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlU3Jj
L0h0dHBDYWNoZUVudHJ5LmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9SZXNvdXJjZUxvYWRl
ci9DYWNoZVNyYy9IdHRwQ2FjaGVFbnRyeS5jcHAJKHJldmlzaW9uIDE4MjIxKQ0KKysrIFdlYktp
dC9SZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVFbnRyeS5jcHAJKHdvcmtpbmcgY29w
eSkNCkBAIC0zMDYsNCArMzA2LDI2IEBAIFRJbnQgQ0h0dHBDYWNoZUVudHJ5OjpFeHRlcm5hbGl6
ZSgNCiAgICAgcmV0dXJuIGVycjsNCiAgICAgfQ0KIA0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
DQorLy8gQ0h0dHBDYWNoZUVudHJ5OjpBY2Nlc3NlZA0KKy8vDQorLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0NCisvLw0KK3ZvaWQgQ0h0dHBDYWNoZUVudHJ5OjpBY2Nlc3NlZChUSW50NjQgYUxhc3RB
Y2Nlc3NlZCwgVFVpbnQxNiBhUmVmKQ0KKyAgICB7DQorICAgIGlMYXN0QWNjZXNzZWQgPSBhTGFz
dEFjY2Vzc2VkOw0KKyAgICBpUmVmID0gYVJlZjsNCisgICAgaWYoIGlWaWN0aW0gKQ0KKyAgICAg
ICAgew0KKyAgICAgICAgaUV2aWN0aW9uSGFuZGxlci0+QWNjZXNzZWQoICp0aGlzICk7DQorICAg
ICAgICB9DQorI2lmZGVmIF9fQ0FDSEVMT0dfXw0KKyAgICBfTElUKCBLQWNjZXNzRm9ybWF0LCAi
ZW50cnkgYWNjZXNzZWQ6ICVkIiApOw0KKyAgICBUQnVmPDEwMD4gYnVmOw0KKyAgICBidWYuRm9y
bWF0KCBLQWNjZXNzRm9ybWF0LCBpUmVmICk7DQorICAgIEh0dHBDYWNoZVV0aWw6OldyaXRlVXJs
VG9Mb2coIDAsIGJ1ZiwgaVVybC0+RGVzKCkgKTsNCisjZW5kaWYgLy8gX19DQUNIRUxPR19fDQor
DQorICAgIH0NCisNCiAvLyAgRW5kIG9mIEZpbGUNCkluZGV4OiBXZWJLaXQvUmVzb3VyY2VMb2Fk
ZXIvQ2FjaGVTcmMvSHR0cENhY2hlSGFuZGxlci5jcHANCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQv
UmVzb3VyY2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hlSGFuZGxlci5jcHAJKHJldmlzaW9uIDE4
MjIxKQ0KKysrIFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVIYW5kbGVy
LmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTQ4LDYgKzQ4LDcgQEANCiAjaW5jbHVkZSAiSHR0cENh
Y2hlU3RyZWFtSGFuZGxlci5oIg0KICNpbmNsdWRlICJIdHRwQ2FjaGVVdGlsLmgiDQogI2luY2x1
ZGUgIkh0dHBDYWNoZUV2aWN0aW9uSGFuZGxlci5oIg0KKyNpbmNsdWRlICJIdHRwQ2FjaGVPYnNl
cnZlci5oIg0KICNpbmNsdWRlIDxodHRwXFJIVFRQVHJhbnNhY3Rpb24uaD4NCiAjaW5jbHVkZSA8
aHR0cFxyaHR0cHNlc3Npb24uaD4NCiAjaW5jbHVkZSA8aHR0cFxyaHR0cGhlYWRlcnMuaD4NCkBA
IC0xMTUsNiArMTE2LDkgQEAgdm9pZCBDSHR0cENhY2hlSGFuZGxlcjo6Q29uc3RydWN0TCgNCiAg
ICAgT3Blbkxvb2t1cFRhYmxlTCgpOw0KICAgICAvLw0KICAgICBpSWRsZSA9IENJZGxlOjpOZXdM
KCBDQWN0aXZlOjpFUHJpb3JpdHlJZGxlICk7DQorICAgIC8vDQorICAgIGlIdHRwQ2FjaGVPYnNl
cnZlciA9IENIdHRwQ2FjaGVPYnNlcnZlcjo6TmV3TChpRGlyZWN0b3J5LCBpSW5kZXhGaWxlLCB0
aGlzKTsNCisgICAgaUh0dHBDYWNoZU9ic2VydmVyLT5TdGFydE9ic2VydmVyTCgpOw0KICAgICB9
DQogDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkBAIC0xNDIsNiArMTQ2LDggQEAgQ0h0dHBD
YWNoZUhhbmRsZXI6On5DSHR0cENhY2hlSGFuZGxlcigpDQogICAgIC8vIHNhdmUgZW50cnkgdGFi
bGUNCiAgICAgVFJBUF9JR05PUkUoIFNhdmVMb29rdXBUYWJsZUwoKSApOw0KICAgICAvLw0KKyAg
ICBkZWxldGUgaUh0dHBDYWNoZU9ic2VydmVyOw0KKyAgICAvLw0KICAgICBpZiAoaUV2aWN0aW9u
SGFuZGxlcikNCiAgICAgICAgIHsNCiAgICAgICAgIGlFdmljdGlvbkhhbmRsZXItPlJlbW92ZUFs
bCgpOw0KQEAgLTEwNjQsNiArMTA3MCwxNiBAQCBUQm9vbCBDSHR0cENhY2hlSGFuZGxlcjo6SGFu
ZGxlUmVzcG9uc2VODQogLy8NCiB2b2lkIENIdHRwQ2FjaGVIYW5kbGVyOjpPcGVuTG9va3VwVGFi
bGVMKCkNCiAgICAgew0KKyAgICBPcGVuTG9va3VwVGFibGVMKGlMb29rdXBUYWJsZSk7DQorICAg
IH0NCisNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRwQ2FjaGVIYW5kbGVyOjpP
cGVuTG9va3VwVGFibGVMDQorLy8NCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vDQordm9p
ZCBDSHR0cENhY2hlSGFuZGxlcjo6T3Blbkxvb2t1cFRhYmxlTChDSHR0cENhY2hlTG9va3VwVGFi
bGUqIGFMb29rdXBUYWJsZSkNCisgICAgew0KICAgICAvLyByZWFkIGVudHJpZXMgZnJvbSBpbmRl
eC5kYXQNCiAgICAgUkZpbGVSZWFkU3RyZWFtIHJlYWRTdHJlYW07DQogICAgIFJGcyBmczsNCkBA
IC0xMDgzLDExICsxMDk5LDI2IEBAIHZvaWQgQ0h0dHBDYWNoZUhhbmRsZXI6Ok9wZW5Mb29rdXBU
YWJsZUwNCiAgICAgaWYoIGVyciA9PSBLRXJyTm9uZSApDQogICAgICAgICB7DQogICAgICAgICBm
cy5TZXRTZXNzaW9uUGF0aCggaURpcmVjdG9yeS0+RGVzKCkgKTsNCi0NCi0gICAgICAgIGlmKCBy
ZWFkU3RyZWFtLk9wZW4oIGZzLCBpSW5kZXhGaWxlLT5EZXMoKSwgRUZpbGVSZWFkICkgPT0gS0Vy
ck5vbmUgKQ0KKyAgICAgICAgVEludCByZXQgPSBLRXJyTm9uZTsNCisgICAgICAgIFRJbnQgdHJ5
Q291bnQgPSAwOw0KKyAgICAgICAgZm9yICh0cnlDb3VudCA9IDA7IHRyeUNvdW50IDwgNTsgdHJ5
Q291bnQrKykgDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgIHJldCA9IHJlYWRTdHJlYW0u
T3BlbiggZnMsIGlJbmRleEZpbGUtPkRlcygpLCBFRmlsZVNoYXJlUmVhZGVyc09yV3JpdGVycyAp
Ow0KKyAgICAgICAgICAgIGlmIChyZXQgPT0gS0VyckluVXNlKQ0KKyAgICAgICAgICAgICAgICB7
DQorICAgICAgICAgICAgICAgIC8vIFdoZW4gdGhlIGNhY2hlIGlzIGZ1bGwsIGl0IHRha2VzIDY1
IC0gODUgbWlsaXNlY29uZHMgdG8gd3JpdGUgdGhlIGluZGV4Lg0KKyAgICAgICAgICAgICAgICAv
LyBTbyB3YWl0IDUwIG1pbGlzZWNvbmRzIGFuZCB0cnkgYWdhaW4NCisgICAgICAgICAgICAgICAg
VXNlcjo6QWZ0ZXIoNTAwMDApOw0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgZWxz
ZQ0KKyAgICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAg
ICAgICAgICB9DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgaWYoIHJldCA9PSBLRXJyTm9uZSAp
DQogICAgICAgICAgICAgew0KICAgICAgICAgICAgIENsZWFudXBDbG9zZVB1c2hMKCByZWFkU3Ry
ZWFtICk7DQotICAgICAgICAgICAgaUxvb2t1cFRhYmxlLT5JbnRlcm5hbGl6ZUwoIHJlYWRTdHJl
YW0sIGlEaXJlY3RvcnktPkRlcygpICk7DQorICAgICAgICAgICAgYUxvb2t1cFRhYmxlLT5JbnRl
cm5hbGl6ZUwoIHJlYWRTdHJlYW0sIGlEaXJlY3RvcnktPkRlcygpICk7DQogICAgICAgICAgICAg
Q2xlYW51cFN0YWNrOjpQb3BBbmREZXN0cm95KCk7IC8vIHJlYWRTdHJlYW0NCiAgICAgICAgICAg
ICB9DQogICAgICAgICB9DQpAQCAtMTEwNywxMCArMTEzOCwyNiBAQCB2b2lkIENIdHRwQ2FjaGVI
YW5kbGVyOjpTYXZlTG9va3VwVGFibGVMDQogICAgIFJGcyBmczsNCiAgICAgVXNlcjo6TGVhdmVJ
ZkVycm9yKCBmcy5Db25uZWN0KCkgKTsNCiAgICAgQ2xlYW51cENsb3NlUHVzaEwoIGZzICk7DQot
DQogICAgIGZzLlNldFNlc3Npb25QYXRoKCBpRGlyZWN0b3J5LT5EZXMoKSApOw0KLQ0KLSAgICBp
Ziggd3JpdGVTdHJlYW0uUmVwbGFjZSggZnMsIGlJbmRleEZpbGUtPkRlcygpLCBFRmlsZVdyaXRl
ICkgPT0gS0Vyck5vbmUgKQ0KKyAgICAvLyBEb24ndCBnZXQgbm90aWZpZWQgYWJvdXQgb3duIGNo
YW5nZXMNCisgICAgaUh0dHBDYWNoZU9ic2VydmVyLT5DYW5jZWwoKTsNCisgICAgVEludCByZXQg
PSBLRXJyTm9uZTsNCisgICAgVEludCB0cnlDb3VudCA9IDA7DQorICAgIGZvciAodHJ5Q291bnQg
PSAwOyB0cnlDb3VudCA8IDU7IHRyeUNvdW50KyspIA0KKyAgICAgICAgew0KKyAgICAgICAgcmV0
ID0gd3JpdGVTdHJlYW0uUmVwbGFjZSggZnMsIGlJbmRleEZpbGUtPkRlcygpLCBFRmlsZVNoYXJl
UmVhZGVyc09yV3JpdGVycyApOw0KKyAgICAgICAgaWYgKHJldCA9PSBLRXJySW5Vc2UpDQorICAg
ICAgICAgICAgew0KKyAgICAgICAgICAgIC8vIFdoZW4gdGhlIGNhY2hlIGlzIGZ1bGwsIGl0IHRh
a2VzIDY1IC0gODUgbWlsaXNlY29uZHMgdG8gd3JpdGUgdGhlIGluZGV4Lg0KKyAgICAgICAgICAg
IC8vIFNvIHdhaXQgNTAgbWlsaXNlY29uZHMgYW5kIHRyeSBhZ2Fpbg0KKyAgICAgICAgICAgIFVz
ZXI6OkFmdGVyKDUwMDAwKTsNCisgICAgICAgICAgICB9DQorICAgICAgICBlbHNlDQorICAgICAg
ICAgICAgew0KKyAgICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgIH0N
CisgICAgaWYoIHJldCA9PSBLRXJyTm9uZSApDQogICAgICAgICB7DQogICAgICAgICBDbGVhbnVw
Q2xvc2VQdXNoTCggd3JpdGVTdHJlYW0gKTsNCiAgICAgICAgIGlMb29rdXBUYWJsZS0+RXh0ZXJu
YWxpemVMKCB3cml0ZVN0cmVhbSApOw0KQEAgLTExMTgsNiArMTE2NSw3IEBAIHZvaWQgQ0h0dHBD
YWNoZUhhbmRsZXI6OlNhdmVMb29rdXBUYWJsZUwNCiAgICAgICAgIENsZWFudXBTdGFjazo6UG9w
QW5kRGVzdHJveSgpOyAvLyB3cml0ZVN0cmVhbQ0KICAgICAgICAgfQ0KICAgICBDbGVhbnVwU3Rh
Y2s6OlBvcEFuZERlc3Ryb3koKTsgLy8gZnMNCisgICAgaUh0dHBDYWNoZU9ic2VydmVyLT5TdGFy
dE9ic2VydmVyTCgpOw0KICAgICB9DQogDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkBAIC0x
MjQ4LDQgKzEyOTYsMzUgQEAgVEludCBDSHR0cENhY2hlSGFuZGxlcjo6RG9CYWNrZ3JvdW5kU2F2
ZQ0KICAgICByZXR1cm4gS0Vyck5vbmU7DQogICAgIH0NCiANCisNCisvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQ0KKy8vIENIdHRwQ2FjaGVIYW5kbGVyOjpVcGRhdGVMb29rdXBUYWJsZQ0KKy8vDQor
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLw0KK3ZvaWQgQ0h0dHBDYWNoZUhhbmRsZXI6OlVw
ZGF0ZUxvb2t1cFRhYmxlKCkNCisgICAgew0KKyAgICBUUkFQX0lHTk9SRShVcGRhdGVMb29rdXBU
YWJsZUwoKSk7DQorICAgIGlIdHRwQ2FjaGVPYnNlcnZlci0+U3RhcnRPYnNlcnZlckwoKTsNCisg
ICAgfQ0KKw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ0h0dHBDYWNoZUhhbmRsZXI6
OlVwZGF0ZUxvb2t1cFRhYmxlTA0KKy8vDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLw0K
K3ZvaWQgQ0h0dHBDYWNoZUhhbmRsZXI6OlVwZGF0ZUxvb2t1cFRhYmxlTCgpDQorICAgIHsNCisg
ICAgQ0h0dHBDYWNoZUV2aWN0aW9uSGFuZGxlciogZXZpY3Rpb25IYW5kbGVyID0gQ0h0dHBDYWNo
ZUV2aWN0aW9uSGFuZGxlcjo6TmV3TCgpOw0KKyAgICBDbGVhbnVwU3RhY2s6OlB1c2hMKGV2aWN0
aW9uSGFuZGxlcik7DQorICAgIENIdHRwQ2FjaGVMb29rdXBUYWJsZSogbG9va3VwVGFibGUgPSBD
SHR0cENhY2hlTG9va3VwVGFibGU6Ok5ld0woICpldmljdGlvbkhhbmRsZXIsICppU3RyZWFtSGFu
ZGxlciApOw0KKyAgICBDbGVhbnVwU3RhY2s6OlB1c2hMKGxvb2t1cFRhYmxlKTsNCisgICAgT3Bl
bkxvb2t1cFRhYmxlTChsb29rdXBUYWJsZSk7DQorICAgIFJGcyByZnM7DQorICAgIFVzZXI6Okxl
YXZlSWZFcnJvcihyZnMuQ29ubmVjdCgpKTsNCisgICAgQ2xlYW51cENsb3NlUHVzaEwocmZzKTsN
CisgICAgcmZzLlNldFNlc3Npb25QYXRoKCBpRGlyZWN0b3J5LT5EZXMoKSApOw0KKyAgICBpTG9v
a3VwVGFibGUtPk1lcmdlTChsb29rdXBUYWJsZSwgcmZzKTsNCisgICAgQ2xlYW51cFN0YWNrOjpQ
b3BBbmREZXN0cm95KDMpOyAvLyByZnMsIGxvb2t1cFRhYmxlLCBldmljdGlvbkhhbmRsZXINCisg
ICAgfQ0KIC8vICBFbmQgb2YgRmlsZQ0KSW5kZXg6IFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNo
ZVNyYy9IdHRwQ2FjaGVMb29rdXBUYWJsZS5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvUmVz
b3VyY2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hlTG9va3VwVGFibGUuY3BwCShyZXZpc2lvbiAx
ODIyMSkNCisrKyBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hlTG9va3Vw
VGFibGUuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNDYsNyArNDYsNiBAQA0KICNpbmNsdWRlICJI
dHRwQ2FjaGVVdGlsLmgiDQogI2luY2x1ZGUgIkh0dHBDYWNoZUV2aWN0aW9uSGFuZGxlci5oIg0K
ICNpbmNsdWRlICJIdHRwQ2FjaGVTdHJlYW1IYW5kbGVyLmgiDQotI2luY2x1ZGUgPHMzMmZpbGUu
aD4NCiANCiAvLyBFWFRFUk5BTCBEQVRBIFNUUlVDVFVSRVMNCiANCkBAIC02NzIsNSArNjcxLDcy
IEBAIFRCb29sIENIdHRwQ2FjaGVMb29rdXBUYWJsZTo6Qm91bmRhcnlDaGUNCiAgICAgVEludCBh
UG9zICkNCiAgICAgew0KICAgICByZXR1cm4gKCBhUG9zID49IDAgJiYgYVBvcyA8IGlFbnRyaWVz
LT5Db3VudCgpICk7DQorICAgIH0NCisNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENI
dHRwQ2FjaGVMb29rdXBUYWJsZTo6TWVyZ2VMDQorLy8NCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQ0KKy8vDQordm9pZCBDSHR0cENhY2hlTG9va3VwVGFibGU6Ok1lcmdlTCggQ0h0dHBDYWNoZUxv
b2t1cFRhYmxlKiBhSHR0cENhY2hlTG9va3VwVGFibGUsIFJGcyBhUmZzICkNCisgICAgew0KKyAg
ICBUSW50IG15Q291bnQgPSBpRW50cmllcy0+Q291bnQoKTsNCisgICAgVEludCBpID0gMDsNCisg
ICAgZm9yIChpID0gbXlDb3VudCAtIDE7IGkgPj0gMDsgaS0tKQ0KKyAgICAgICAgew0KKyAgICAg
ICAgaWYgKCBWYWxpZCggaSApICkNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAgQ0h0dHBD
YWNoZUVudHJ5KiBlbnRyeSA9IGlFbnRyaWVzLT5BdChpKTsNCisgICAgICAgICAgICBDSHR0cENh
Y2hlRW50cnkqIG5ld0VudHJ5ID0gYUh0dHBDYWNoZUxvb2t1cFRhYmxlLT5GaW5kKGVudHJ5LT5V
cmwoKSk7DQorICAgICAgICAgICAgaWYgKG5ld0VudHJ5KQ0KKyAgICAgICAgICAgICAgICB7DQor
ICAgICAgICAgICAgICAgIC8vIEVudHJ5IGlzIGluIHRoZSBuZXcgaW5kZXggZmlsZQ0KKyAgICAg
ICAgICAgICAgICBpZiAobmV3RW50cnktPkxhc3RBY2Nlc3NlZCgpID4gZW50cnktPkxhc3RBY2Nl
c3NlZCgpKQ0KKyAgICAgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICAgICAgZW50
cnktPkFjY2Vzc2VkKG5ld0VudHJ5LT5MYXN0QWNjZXNzZWQoKSwgbmV3RW50cnktPlJlZigpKTsN
CisgICAgICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAgVEludCBwb3MgPSBhSHR0
cENhY2hlTG9va3VwVGFibGUtPlByb2JlKG5ld0VudHJ5LT5VcmwoKSwgRUZhbHNlKTsNCisgICAg
ICAgICAgICAgICAgaWYgKGFIdHRwQ2FjaGVMb29rdXBUYWJsZS0+VmFsaWQocG9zKSkNCisgICAg
ICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgICAgIGFIdHRwQ2FjaGVMb29rdXBU
YWJsZS0+U2V0RGVsZXRlZChwb3MpOw0KKyAgICAgICAgICAgICAgICAgICAgZGVsZXRlIG5ld0Vu
dHJ5Ow0KKyAgICAgICAgICAgICAgICAgICAgYUh0dHBDYWNoZUxvb2t1cFRhYmxlLT5pQ291bnQt
LTsNCisgICAgICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAg
ICAgIGVsc2UgLy8gKG5ld0VudHJ5KQ0KKyAgICAgICAgICAgICAgICB7DQorICAgICAgICAgICAg
ICAgIC8vIEVudHJ5IGlzIG5vdCBpbiB0aGUgbmV3IGluZGV4IGZpbGUNCisgICAgICAgICAgICAg
ICAgVFVpbnQgYXR0Ow0KKyAgICAgICAgICAgICAgICBpZiAoYVJmcy5BdHQoZW50cnktPkZpbGVu
YW1lKCksIGF0dCkgIT0gS0Vyck5vbmUpDQorICAgICAgICAgICAgICAgICAgICB7DQorICAgICAg
ICAgICAgICAgICAgICBUSW50IHRoZVBvcyA9IFByb2JlKGVudHJ5LT5VcmwoKSwgRUZhbHNlKTsN
CisgICAgICAgICAgICAgICAgICAgIGlmIChWYWxpZCh0aGVQb3MpKQ0KKyAgICAgICAgICAgICAg
ICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgICAgICAgICBFcmFzZSh0aGVQb3MpOw0KKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAgICAgIH0NCisgICAgICAg
ICAgICAgICAgfQ0KKyAgICAgICAgICAgIH0NCisgICAgICAgIH0NCisNCisgICAgVEludCBuZXdD
b3VudCA9IGFIdHRwQ2FjaGVMb29rdXBUYWJsZS0+aUVudHJpZXMtPkNvdW50KCk7DQorICAgIGZv
ciAoaSA9IG5ld0NvdW50IC0gMTsgaSA+PSAwOyBpLS0pDQorICAgICAgICB7DQorICAgICAgICBp
ZiAoIGFIdHRwQ2FjaGVMb29rdXBUYWJsZS0+VmFsaWQoIGkgKSApDQorICAgICAgICAgICAgew0K
KyAgICAgICAgICAgIENIdHRwQ2FjaGVFbnRyeSogbmV3RW50cnkgPSBhSHR0cENhY2hlTG9va3Vw
VGFibGUtPmlFbnRyaWVzLT5BdChpKTsNCisgICAgICAgICAgICBUSW50IHBvcyA9IGFIdHRwQ2Fj
aGVMb29rdXBUYWJsZS0+UHJvYmUobmV3RW50cnktPlVybCgpLCBFRmFsc2UpOw0KKyAgICAgICAg
ICAgIFRVaW50IGF0dDsNCisgICAgICAgICAgICBpZiAoYVJmcy5BdHQobmV3RW50cnktPkZpbGVu
YW1lKCksIGF0dCkgPT0gS0Vyck5vbmUpDQorICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAg
ICAgICAgQ0h0dHBDYWNoZUVudHJ5KiBteUVudHJ5ID0gSW5zZXJ0TChuZXdFbnRyeS0+VXJsKCkp
Ow0KKyAgICAgICAgICAgICAgICBteUVudHJ5LT5TZXRTdGF0ZSggQ0h0dHBDYWNoZUVudHJ5OjpF
Q2FjaGVDb21wbGV0ZSApOw0KKyAgICAgICAgICAgICAgICBteUVudHJ5LT5BY2Nlc3NlZChuZXdF
bnRyeS0+TGFzdEFjY2Vzc2VkKCksIG5ld0VudHJ5LT5SZWYoKSk7DQorICAgICAgICAgICAgICAg
IH0gICAgICAgICAgDQorICAgICAgICAgICAgYUh0dHBDYWNoZUxvb2t1cFRhYmxlLT5TZXREZWxl
dGVkKHBvcyk7DQorICAgICAgICAgICAgZGVsZXRlIG5ld0VudHJ5Ow0KKyAgICAgICAgICAgIGFI
dHRwQ2FjaGVMb29rdXBUYWJsZS0+aUNvdW50LS07DQorICAgICAgICAgICAgfQ0KKyAgICAgICAg
fQ0KICAgICB9DQogLy8gIEVuZCBvZiBGaWxlDQpJbmRleDogV2ViS2l0L1Jlc291cmNlTG9hZGVy
L0NhY2hlU3JjL0h0dHBDYWNoZU9ic2VydmVyLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9S
ZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVPYnNlcnZlci5jcHAJKHJldmlzaW9uIDAp
DQorKysgV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZU9ic2VydmVyLmNw
cAkocmV2aXNpb24gMCkNCkBAIC0wLDAgKzEsMTYwIEBADQorLyoNCisqID09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQ0KKyogIE5hbWUgICAgICAgIDogSHR0cENhY2hlT2JzZXJ2ZXIuY3BwDQorKiAgUGFy
dCBvZiAgICAgOiBXZWJLaXQgLyBSZXNvdXJjZUxvYWRlcg0KKyogIEludGVyZmFjZSAgIDoNCisq
ICBEZXNjcmlwdGlvbiA6IEltcGxlbWVudGF0aW9uIG9mIENIdHRwQ2FjaGVPYnNlcnZlcg0KKyog
IFZlcnNpb24gICAgIDogJVZlcnNpb24lDQorKg0KKyogICAgQ29weXJpZ2h0IChjKSAyMDA2LCBO
b2tpYSBDb3Jwb3JhdGlvbg0KKyogICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4NCisqDQorKiAgIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dA0KKyogICBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMNCisqICAgYXJlIG1ldDoNCisqDQorKiAgICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQNCisqICAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuDQorKiAgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQNCisqICAgICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4N
CisqICAgICAgICB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlDQorKiAgICAgICAgZGlzdHJpYnV0aW9uLg0KKyogICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgdGhlIE5va2lhIENvcnBvcmF0aW9uIG5vciB0aGUgbmFtZXMgb2YgaXRzDQor
KiAgICAgICAgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkDQorKiAgICAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLg0KKyoNCisqICAgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUw0KKyog
ICAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVA0KKyogICBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1INCisqICAgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQNCisqICAgT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsDQorKiAgIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QNCisqICAgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsDQorKiAgIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQ0KKyogICBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUDQorKiAgIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFDQorKiAgIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gNCisqICAg
REFNQUdFLg0KKyoNCisqICAgIFBsZWFzZSBzZWUgZmlsZSBwYXRlbnRsaWNlbnNlLnR4dCBmb3Ig
ZnVydGhlciBncmFudHMuDQorKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisqLw0KKw0KKy8vIElO
Q0xVREUgRklMRVMNCisjaW5jbHVkZSAiSHR0cENhY2hlT2JzZXJ2ZXIuaCINCisjaW5jbHVkZSAi
SHR0cENhY2hlSGFuZGxlci5oIg0KKw0KKw0KKy8vIEVYVEVSTkFMIERBVEEgU1RSVUNUVVJFUw0K
Kw0KKy8vIEVYVEVSTkFMIEZVTkNUSU9OIFBST1RPVFlQRVMNCisNCisvLyBDT05TVEFOVFMNCisN
CisvLyBNQUNST1MNCisNCisvLyBMT0NBTCBDT05TVEFOVFMgQU5EIE1BQ1JPUw0KKw0KKy8vIE1P
RFVMRSBEQVRBIFNUUlVDVFVSRVMNCisNCisvLyBMT0NBTCBGVU5DVElPTiBQUk9UT1RZUEVTDQor
DQorLy8gRk9SV0FSRCBERUNMQVJBVElPTlMNCisNCisNCisvLyA9PT09PT09PT09PT09PT09PT09
PT09PT09PT09IE1FTUJFUiBGVU5DVElPTlMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KKw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ0h0dHBDYWNoZU9ic2VydmVyOjpD
SHR0cENhY2hlT2JzZXJ2ZXINCisvLyBDKysgZGVmYXVsdCBjb25zdHJ1Y3RvciBjYW4gTk9UIGNv
bnRhaW4gYW55IGNvZGUsIHRoYXQNCisvLyBtaWdodCBsZWF2ZS4NCisvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQ0KKy8vDQorQ0h0dHBDYWNoZU9ic2VydmVyOjpDSHR0cENhY2hlT2JzZXJ2ZXIoQ0h0
dHBDYWNoZUhhbmRsZXIqIGFIdHRwQ2FjaGVIYW5kbGVyKSA6IENBY3RpdmUoIENBY3RpdmU6OkVQ
cmlvcml0eUlkbGUgKSwNCitpSHR0cENhY2hlSGFuZGxlcihhSHR0cENhY2hlSGFuZGxlcikNCisg
ICAgew0KKyAgICBDQWN0aXZlU2NoZWR1bGVyOjpBZGQodGhpcyk7DQorICAgIH0NCisNCisvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRwQ2FjaGVPYnNlcnZlcjo6Q29uc3RydWN0TA0K
Ky8vIFN5bWJpYW4gMm5kIHBoYXNlIGNvbnN0cnVjdG9yIGNhbiBsZWF2ZS4NCisvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQ0KKy8vDQordm9pZCBDSHR0cENhY2hlT2JzZXJ2ZXI6OkNvbnN0cnVjdEwo
Y29uc3QgSEJ1ZkMqIGFEaXJlY3RvcnksIGNvbnN0IEhCdWZDKiBhSW5kZXhGaWxlKQ0KKyAgICB7
DQorICAgIFVzZXI6OkxlYXZlSWZFcnJvcihpRnNTZXNzaW9uLkNvbm5lY3QoKSk7DQorICAgIGlG
aWxlTmFtZSA9IEhCdWZDOjpOZXdMKGFEaXJlY3RvcnktPkxlbmd0aCgpICsgYUluZGV4RmlsZS0+
TGVuZ3RoKCkpOw0KKyAgICBpRmlsZU5hbWUtPkRlcygpLkNvcHkoKmFEaXJlY3RvcnkpOw0KKyAg
ICBpRmlsZU5hbWUtPkRlcygpLkFwcGVuZCgqYUluZGV4RmlsZSk7DQorICAgIH0NCisNCisvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRwQ2FjaGVPYnNlcnZlcjo6TmV3TA0KKy8vIFR3
by1waGFzZWQgY29uc3RydWN0b3IuDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLw0KK0NI
dHRwQ2FjaGVPYnNlcnZlciogQ0h0dHBDYWNoZU9ic2VydmVyOjpOZXdMKCBjb25zdCBIQnVmQyog
YURpcmVjdG9yeSwgY29uc3QgSEJ1ZkMqIGFJbmRleEZpbGUsDQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0h0dHBDYWNoZUhhbmRsZXIq
IGFIdHRwQ2FjaGVIYW5kbGVyKQ0KKyAgICB7DQorICAgIENIdHRwQ2FjaGVPYnNlcnZlciogc2Vs
ZiA9IG5ldyggRUxlYXZlICkgQ0h0dHBDYWNoZU9ic2VydmVyKGFIdHRwQ2FjaGVIYW5kbGVyKTsN
CisgICAgQ2xlYW51cFN0YWNrOjpQdXNoTCggc2VsZiApOw0KKyAgICBzZWxmLT5Db25zdHJ1Y3RM
KGFEaXJlY3RvcnksIGFJbmRleEZpbGUpOw0KKyAgICBDbGVhbnVwU3RhY2s6OlBvcCgpOw0KKyAg
ICByZXR1cm4gc2VsZjsNCisgICAgfQ0KKw0KKy8vIERlc3RydWN0b3INCitDSHR0cENhY2hlT2Jz
ZXJ2ZXI6On5DSHR0cENhY2hlT2JzZXJ2ZXIoKQ0KKyAgICB7DQorICAgIENhbmNlbCgpOw0KKyAg
ICBkZWxldGUgaUZpbGVOYW1lOw0KKyAgICBpRnNTZXNzaW9uLkNsb3NlKCk7DQorICAgIH0NCisN
CisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRwQ2FjaGVPYnNlcnZlcjo6UnVuTA0K
Ky8vDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLw0KK3ZvaWQgQ0h0dHBDYWNoZU9ic2Vy
dmVyOjpSdW5MKCkNCisgICAgew0KKyAgICBpSHR0cENhY2hlSGFuZGxlci0+VXBkYXRlTG9va3Vw
VGFibGUoKTsNCisgICAgfQ0KKw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ0h0dHBD
YWNoZU9ic2VydmVyOjpSdW5FcnJvcg0KKy8vDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisv
Lw0KK1RJbnQgQ0h0dHBDYWNoZU9ic2VydmVyOjpSdW5FcnJvcihUSW50IC8qYUVycm9yKi8pDQor
ICAgIHsNCisgICAgcmV0dXJuIEtFcnJOb25lOw0KKyAgICB9DQorDQorLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0NCisvLyBDSHR0cENhY2hlT2JzZXJ2ZXI6OkRvQ2FuY2VsDQorLy8NCisvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQ0KKy8vDQordm9pZCBDSHR0cENhY2hlT2JzZXJ2ZXI6OkRvQ2FuY2Vs
KCkNCisgICAgew0KKyAgICBpRnNTZXNzaW9uLk5vdGlmeUNoYW5nZUNhbmNlbChpU3RhdHVzKTsN
CisgICAgfQ0KKw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ0h0dHBDYWNoZU9ic2Vy
dmVyOjpTdGFydE9ic2VydmVyTA0KKy8vDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLw0K
K3ZvaWQgQ0h0dHBDYWNoZU9ic2VydmVyOjpTdGFydE9ic2VydmVyTCgpDQorICAgIHsNCisgICAg
aWYgKCFJc0FjdGl2ZSgpKQ0KKyAgICAgICAgew0KKyAgICAgICAgaUZzU2Vzc2lvbi5Ob3RpZnlD
aGFuZ2UoRU5vdGlmeVdyaXRlLCBpU3RhdHVzLCAqaUZpbGVOYW1lKTsNCisgICAgICAgIFNldEFj
dGl2ZSgpOw0KKyAgICAgICAgfQ0KKyAgICB9DQorDQorDQorLy8gIEVuZCBvZiBGaWxlDQpJbmRl
eDogV2ViS2l0L2dyb3VwL0Jyb3dzZXJDYWNoZS5tbXANCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQv
Z3JvdXAvQnJvd3NlckNhY2hlLm1tcAkocmV2aXNpb24gMTgyMjEpDQorKysgV2ViS2l0L2dyb3Vw
L0Jyb3dzZXJDYWNoZS5tbXAJKHdvcmtpbmcgY29weSkNCkBAIC02Niw2ICs2Niw3IEBAIFNPVVJD
RSAgICAgICAgSHR0cENhY2hlTWFuYWdlci5jcHANCiBTT1VSQ0UgICAgICAgIEh0dHBDYWNoZUVu
dHJ5LmNwcA0KIFNPVVJDRSAgICAgICAgSHR0cENhY2hlRXZpY3Rpb25IYW5kbGVyLmNwcA0KIFNP
VVJDRSAgICAgICAgSHR0cENhY2hlSGFuZGxlci5jcHANCitTT1VSQ0UgICAgICAgIEh0dHBDYWNo
ZU9ic2VydmVyLmNwcA0KIFNPVVJDRSAgICAgICAgSHR0cENhY2hlTG9va3VwVGFibGUuY3BwDQog
U09VUkNFICAgICAgICBIdHRwQ2FjaGVTdHJlYW1IYW5kbGVyLmNwcA0KIFNPVVJDRSAgICAgICAg
SHR0cENhY2hlVXRpbC5jcHANCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>11851</attachid>
            <date>2006-12-14 18:56:28 -0800</date>
            <delta_ts>2006-12-15 07:05:36 -0800</delta_ts>
            <desc>3.1 fix</desc>
            <filename>MyBrilliantWork.patch</filename>
            <type>text/plain</type>
            <size>36044</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxODIyNikNCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpDQpA
QCAtMSwzICsxLDQxIEBADQorMjAwNi0xMi0xNCAgeWFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lh
LmNvbT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKyAgICAgICAg
REVTQzogQnVnIDExODM0OiBUTFVVLTZWSlFYMyA6IENhY2hlIGNhbm5vdCBzdXBwb3J0IG1vcmUg
dGhhbiBvbmUgYXBwbGljYXRpb24gc2ltdWx0YW5lb3VzbHkNCisgICAgICAgIGh0dHA6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODM0DQorDQorICAgICAgICAqIENoYW5nZUxv
ZzoNCisgICAgICAgICogUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlRW50cnkuaDoN
CisgICAgICAgICogUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlSGFuZGxlci5oOg0K
KyAgICAgICAgKiBSZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVMb29rdXBUYWJsZS5o
Og0KKyAgICAgICAgKiBSZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVPYnNlcnZlci5o
OiBBZGRlZC4NCisgICAgICAgIChOT05TSEFSQUJMRV9DTEFTUyk6DQorICAgICAgICAqIFJlc291
cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZUVudHJ5LmNwcDoNCisgICAgICAgIChDSHR0cENh
Y2hlRW50cnk6On5DSHR0cENhY2hlRW50cnkpOg0KKyAgICAgICAgKENIdHRwQ2FjaGVFbnRyeTo6
U2V0U2l6ZSk6DQorICAgICAgICAoQ0h0dHBDYWNoZUVudHJ5OjpJbnRlcm5hbGl6ZSk6DQorICAg
ICAgICAoQ0h0dHBDYWNoZUVudHJ5OjpFeHRlcm5hbGl6ZSk6DQorICAgICAgICAoQ0h0dHBDYWNo
ZUVudHJ5OjpBY2Nlc3NlZCk6DQorICAgICAgICAqIFJlc291cmNlTG9hZGVyL0NhY2hlU3JjL0h0
dHBDYWNoZUhhbmRsZXIuY3BwOg0KKyAgICAgICAgKENIdHRwQ2FjaGVIYW5kbGVyOjpDb25zdHJ1
Y3RMKToNCisgICAgICAgIChDSHR0cENhY2hlSGFuZGxlcjo6fkNIdHRwQ2FjaGVIYW5kbGVyKToN
CisgICAgICAgIChDSHR0cENhY2hlSGFuZGxlcjo6T3Blbkxvb2t1cFRhYmxlTCk6DQorICAgICAg
ICAoQ0h0dHBDYWNoZUhhbmRsZXI6OlNhdmVMb29rdXBUYWJsZUwpOg0KKyAgICAgICAgKENIdHRw
Q2FjaGVIYW5kbGVyOjpEb0JhY2tncm91bmRTYXZlKToNCisgICAgICAgIChDSHR0cENhY2hlSGFu
ZGxlcjo6VXBkYXRlTG9va3VwVGFibGUpOg0KKyAgICAgICAgKENIdHRwQ2FjaGVIYW5kbGVyOjpV
cGRhdGVMb29rdXBUYWJsZUwpOg0KKyAgICAgICAgKiBSZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9I
dHRwQ2FjaGVMb29rdXBUYWJsZS5jcHA6DQorICAgICAgICAqIFJlc291cmNlTG9hZGVyL0NhY2hl
U3JjL0h0dHBDYWNoZU9ic2VydmVyLmNwcDogQWRkZWQuDQorICAgICAgICAoQ0h0dHBDYWNoZU9i
c2VydmVyOjpDSHR0cENhY2hlT2JzZXJ2ZXIpOg0KKyAgICAgICAgKENIdHRwQ2FjaGVPYnNlcnZl
cjo6Q29uc3RydWN0TCk6DQorICAgICAgICAoQ0h0dHBDYWNoZU9ic2VydmVyOjpOZXdMKToNCisg
ICAgICAgIChDSHR0cENhY2hlT2JzZXJ2ZXI6On5DSHR0cENhY2hlT2JzZXJ2ZXIpOg0KKyAgICAg
ICAgKENIdHRwQ2FjaGVPYnNlcnZlcjo6UnVuTCk6DQorICAgICAgICAoQ0h0dHBDYWNoZU9ic2Vy
dmVyOjpSdW5FcnJvcik6DQorICAgICAgICAoQ0h0dHBDYWNoZU9ic2VydmVyOjpEb0NhbmNlbCk6
DQorICAgICAgICAoQ0h0dHBDYWNoZU9ic2VydmVyOjpTdGFydE9ic2VydmVyTCk6DQorICAgICAg
ICAqIGdyb3VwL0Jyb3dzZXJDYWNoZS5tbXA6DQorDQogMjAwNi0xMi0xMSAgc2FyZWVuICA8c2h5
YW0uc2FyZWVuQG5va2lhLmNvbT4NCiANCiAgICAgICAgIFJldmlld2VkIFNhY2hpbiBQYWRtYS4N
CkluZGV4OiBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlRW50cnkuaA0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQ0KLS0tIFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVF
bnRyeS5oCShyZXZpc2lvbiAxODIyMSkNCisrKyBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVJ
bmMvSHR0cENhY2hlRW50cnkuaAkod29ya2luZyBjb3B5KQ0KQEAgLTksOSArOSw5IEBADQogKiAg
ICBDb3B5cmlnaHQgKGMpIDIwMDYsIE5va2lhIENvcnBvcmF0aW9uDQogKiAgICBBbGwgcmlnaHRz
IHJlc2VydmVkLg0KICogIA0KLSogIAlSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCi0qICAJbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQotKiAgCWFy
ZSBtZXQ6DQorKiAgIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dA0KKyogICBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMNCisqICAgYXJlIG1ldDoNCiAq
ICANCiAqICAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodA0KICogICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCkBAIC0yMywxOCArMjMsMTggQEAN
CiAqICAgICAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQNCiAqICAgICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uDQogKiAgDQotKiAgCVRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMN
Ci0qICAJIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QNCi0qICAJTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SDQotKiAgCUEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUDQotKiAg
CU9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLA0KLSogIAlTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UDQotKiAgCUxJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLA0KLSogIAlEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkNCi0qICAJVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVA0KLSogIAkoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRQ0KLSogIAlVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIDQot
KiAgCURBTUFHRS4NCisqICAgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUw0KKyogICAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVA0KKyogICBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1INCisqICAgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQNCisqICAgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsDQorKiAgIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QN
CisqICAgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsDQorKiAgIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQ0KKyogICBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUDQor
KiAgIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFDQorKiAgIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gNCisqICAgREFNQUdFLg0KICogIA0KICogICAgUGxl
YXNlIHNlZSBmaWxlIHBhdGVudGxpY2Vuc2UudHh0IGZvciBmdXJ0aGVyIGdyYW50cy4NCiAqID09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KQEAgLTIzNyw2ICsyMzcsMTQgQEAgY2xhc3MgQ0h0dHBDYWNo
ZUVudHJ5IDogcHVibGljIENCYXNlDQogICAgICAgICAqIEByZXR1cm4gDQogICAgICAgICAqLw0K
ICAgICAgICAgVEludCBFeHRlcm5hbGl6ZSggUkZpbGVXcml0ZVN0cmVhbSYgYVdyaXRlU3RyZWFt
ICk7DQorDQorICAgICAgICAvKioNCisgICAgICAgICogDQorICAgICAgICAqIEBzaW5jZSAzLjEN
CisgICAgICAgICogQHBhcmFtIA0KKyAgICAgICAgKiBAcmV0dXJuIA0KKyAgICAgICAgKi8NCisg
ICAgICAgIHZvaWQgQWNjZXNzZWQoVEludDY0IGFMYXN0QWNjZXNzZWQsIFRVaW50MTYgYVJlZik7
DQogDQogICAgIHB1YmxpYyA6IA0KIA0KSW5kZXg6IFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNo
ZUluYy9IdHRwQ2FjaGVIYW5kbGVyLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvUmVzb3VyY2VM
b2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlSGFuZGxlci5oCShyZXZpc2lvbiAxODIyMSkNCisrKyBX
ZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlSGFuZGxlci5oCSh3b3JraW5n
IGNvcHkpDQpAQCAtNjgsNiArNjgsNyBAQCBjbGFzcyBNSFRUUERhdGFTdXBwbGllcjsNCiBjbGFz
cyBDSWRsZTsNCiBjbGFzcyBDSHR0cENhY2hlRXZpY3Rpb25IYW5kbGVyOw0KIGNsYXNzIFRIdHRw
Q2FjaGVFbnRyeTsNCitjbGFzcyBDSHR0cENhY2hlT2JzZXJ2ZXI7DQogDQogLy8gQ0xBU1MgREVD
TEFSQVRJT04NCiANCkBAIC0yMDMsNiArMjA0LDE1IEBAIGNsYXNzIENIdHRwQ2FjaGVIYW5kbGVy
IDogcHVibGljIENCYXNlDQogICAgICAgICAqLw0KICAgICAgICAgdm9pZCBBZGp1c3RSZXNwb25z
ZVRpbWUoUkhUVFBUcmFuc2FjdGlvbiYgYVRyYW5zKTsNCiANCisgICAgICAgIC8qKg0KKyAgICAg
ICAgKiBTb21lIG90aGVyIGFwcGxpY2F0aW9uIG1vZGlmaWVkIHRoZSBjYWNoZSBhbmQgdGhlIGxv
b2t1cCB0YWJsZSBuZWVkcyB0byBiZSB1cGRhdGVkDQorICAgICAgICAqDQorICAgICAgICAqIEBz
aW5jZSAzLjENCisgICAgICAgICogQHBhcmFtDQorICAgICAgICAqIEByZXR1cm4NCisgICAgICAg
ICovDQorICAgICAgICB2b2lkIFVwZGF0ZUxvb2t1cFRhYmxlKCk7DQorDQogICAgIHByaXZhdGU6
DQogDQogICAgICAgICAvKioNCkBAIC0yMjIsNiArMjMyLDE1IEBAIGNsYXNzIENIdHRwQ2FjaGVI
YW5kbGVyIDogcHVibGljIENCYXNlDQogICAgIHByaXZhdGU6IC8vDQogDQogICAgICAgICAvKioN
CisgICAgICAgICogU29tZSBvdGhlciBhcHBsaWNhdGlvbiBtb2RpZmllZCB0aGUgY2FjaGUgYW5k
IHRoZSBsb29rdXAgdGFibGUgbmVlZHMgdG8gYmUgdXBkYXRlZA0KKyAgICAgICAgKg0KKyAgICAg
ICAgKiBAc2luY2UgMy4xDQorICAgICAgICAqIEBwYXJhbQ0KKyAgICAgICAgKiBAcmV0dXJuDQor
ICAgICAgICAqLw0KKyAgICAgICAgdm9pZCBVcGRhdGVMb29rdXBUYWJsZUwoKTsNCisNCisgICAg
ICAgIC8qKg0KICAgICAgICAgKg0KICAgICAgICAgKiBAc2luY2UgMy4xDQogICAgICAgICAqIEBw
YXJhbQ0KQEAgLTI5MSw2ICszMTAsMTUgQEAgY2xhc3MgQ0h0dHBDYWNoZUhhbmRsZXIgOiBwdWJs
aWMgQ0Jhc2UNCiAgICAgICAgICogQHBhcmFtDQogICAgICAgICAqIEByZXR1cm4NCiAgICAgICAg
ICovDQorICAgICAgICB2b2lkIE9wZW5Mb29rdXBUYWJsZUwoQ0h0dHBDYWNoZUxvb2t1cFRhYmxl
KiBhTG9va3VwVGFibGUpOw0KKw0KKyAgICAgICAgLyoqDQorICAgICAgICAqDQorICAgICAgICAq
IEBzaW5jZSAzLjENCisgICAgICAgICogQHBhcmFtDQorICAgICAgICAqIEBwYXJhbQ0KKyAgICAg
ICAgKiBAcmV0dXJuDQorICAgICAgICAqLw0KICAgICAgICAgdm9pZCBIYW5kbGVDb3JydXB0RW50
cnkoIENIdHRwQ2FjaGVFbnRyeSYgYVN0cmF5RW50cnksIFRCb29sIGFVcGRhdGUgPSBFVHJ1ZSAp
Ow0KIA0KICAgICAgICAgLyoqDQpAQCAtMzQ1LDYgKzM3Myw4IEBAIGNsYXNzIENIdHRwQ2FjaGVI
YW5kbGVyIDogcHVibGljIENCYXNlDQogICAgICAgICBDSWRsZSogICAgICAgICAgICAgICAgICAg
ICAgICAgIGlJZGxlOyAgICAgIC8vIG93bmVkDQogICAgICAgICAvLyBuYW1lIG9mIHRoZSBpbmRl
eCBmaWxlDQogICAgICAgICBIQnVmQyogICAgICAgICAgICAgICAgICAgICAgICAgIGlJbmRleEZp
bGU7IC8vIG93bmVkDQorICAgICAgICAvLyBPYnNlcnZpbmcgY2hhbmdlcyBpbiBjYWNoZQ0KKyAg
ICAgICAgQ0h0dHBDYWNoZU9ic2VydmVyKiBpSHR0cENhY2hlT2JzZXJ2ZXI7IC8vIG93bmVkDQog
ICAgIH07DQogDQogI2VuZGlmICAgICAgLy8gQ0hUVFBDQUNIRUhBTkRMRVJfSA0KSW5kZXg6IFdl
YktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVMb29rdXBUYWJsZS5oDQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09DQotLS0gV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNoZUxvb2t1
cFRhYmxlLmgJKHJldmlzaW9uIDE4MjIxKQ0KKysrIFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNo
ZUluYy9IdHRwQ2FjaGVMb29rdXBUYWJsZS5oCSh3b3JraW5nIGNvcHkpDQpAQCAtOSw5ICs5LDkg
QEANCiAqICAgIENvcHlyaWdodCAoYykgMjAwNiwgTm9raWEgQ29ycG9yYXRpb24NCiAqICAgIEFs
bCByaWdodHMgcmVzZXJ2ZWQuDQogKiAgDQotKiAgCVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KLSogIAltb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMN
Ci0qICAJYXJlIG1ldDoNCisqICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQorKiAgIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucw0KKyogICBhcmUg
bWV0Og0KICogIA0KICogICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQogKiAgICAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KQEAgLTIzLDE4ICsy
MywxOCBAQA0KICogICAgICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZA0KICogICAgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4NCiAqICANCi0qICAJVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUw0KLSogIAkiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVA0KLSogIAlMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1INCi0qICAJQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQNCi0qICAJT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsDQotKiAgCVNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QNCi0qICAJTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsDQot
KiAgCURBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQ0KLSogIAlUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUDQotKiAgCShJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFDQotKiAgCVVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0gNCi0qICAJREFNQUdFLg0KKyogICBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTDQorKiAgICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UDQorKiAg
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUg0KKyogICBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVA0KKyogICBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwNCisqICAg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVA0KKyogICBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwNCisqICAgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZDQorKiAgIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQNCisqICAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUNCisqICAgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSA0KKyogICBEQU1BR0UuDQogKiAgDQog
KiAgICBQbGVhc2Ugc2VlIGZpbGUgcGF0ZW50bGljZW5zZS50eHQgZm9yIGZ1cnRoZXIgZ3JhbnRz
Lg0KICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtNDUsNiArNDUsNyBAQA0KIA0KIC8vICBJ
TkNMVURFUw0KICNpbmNsdWRlIDxlMzJiYXNlLmg+DQorI2luY2x1ZGUgPHMzMmZpbGUuaD4NCiAN
CiAvLyBDT05TVEFOVFMNCiANCkBAIC05NCw3ICs5NSw3IEBAIGNsYXNzIENIdHRwQ2FjaGVMb29r
dXBUYWJsZSA6IHB1YmxpYyBDQmENCiAgICAgICAgICogQHBhcmFtDQogICAgICAgICAqIEByZXR1
cm4NCiAgICAgICAgICovDQotCQlDSHR0cENhY2hlRW50cnkqIEluc2VydEwoIGNvbnN0IFREZXND
OCYgYVVybCApOw0KKyAgICBDSHR0cENhY2hlRW50cnkqIEluc2VydEwoIGNvbnN0IFREZXNDOCYg
YVVybCApOw0KIA0KICAgICAgICAgLyoqDQogICAgICAgICAqDQpAQCAtMTAyLDcgKzEwMyw3IEBA
IGNsYXNzIENIdHRwQ2FjaGVMb29rdXBUYWJsZSA6IHB1YmxpYyBDQmENCiAgICAgICAgICogQHBh
cmFtDQogICAgICAgICAqIEByZXR1cm4NCiAgICAgICAgICovDQotCQlDSHR0cENhY2hlRW50cnkq
IEZpbmQoIGNvbnN0IFREZXNDOCYgYVVybCApOw0KKyAgICBDSHR0cENhY2hlRW50cnkqIEZpbmQo
IGNvbnN0IFREZXNDOCYgYVVybCApOw0KIA0KICAgICAgICAgLyoqDQogICAgICAgICAqDQpAQCAt
MTEwLDcgKzExMSw3IEBAIGNsYXNzIENIdHRwQ2FjaGVMb29rdXBUYWJsZSA6IHB1YmxpYyBDQmEN
CiAgICAgICAgICogQHBhcmFtDQogICAgICAgICAqIEByZXR1cm4NCiAgICAgICAgICovDQotCQlU
SW50IFJlbW92ZSggY29uc3QgVERlc0M4JiBhVXJsICk7DQorICAgIFRJbnQgUmVtb3ZlKCBjb25z
dCBURGVzQzgmIGFVcmwgKTsNCiANCiAgICAgICAgIC8qKg0KICAgICAgICAgKg0KQEAgLTExOCw3
ICsxMTksNyBAQCBjbGFzcyBDSHR0cENhY2hlTG9va3VwVGFibGUgOiBwdWJsaWMgQ0JhDQogICAg
ICAgICAqIEBwYXJhbQ0KICAgICAgICAgKiBAcmV0dXJuDQogICAgICAgICAqLw0KLQkJVEludCBS
ZW1vdmVBbGwoKTsNCisgICAgVEludCBSZW1vdmVBbGwoKTsNCiANCiAgICAgICAgIC8qKg0KICAg
ICAgICAgKg0KQEAgLTE1Miw2ICsxNTMsMTQgQEAgY2xhc3MgQ0h0dHBDYWNoZUxvb2t1cFRhYmxl
IDogcHVibGljIENCYQ0KICAgICAgICAgKi8NCiAgICAgICAgIHZvaWQgRXh0ZXJuYWxpemVMKCBS
RmlsZVdyaXRlU3RyZWFtJiBhV3JpdGVTdHJlYW0gKTsNCiANCisgICAgICAgIC8qKg0KKyAgICAg
ICAgKg0KKyAgICAgICAgKiBAc2luY2UgMy4xDQorICAgICAgICAqIEBwYXJhbQ0KKyAgICAgICAg
KiBAcmV0dXJuDQorICAgICAgICAqLw0KKyAgICB2b2lkIE1lcmdlTCggQ0h0dHBDYWNoZUxvb2t1
cFRhYmxlKiBhSHR0cENhY2hlTG9va3VwVGFibGUsIFJGcyBhUmZzICApOw0KKw0KICAgICBwcml2
YXRlOg0KIA0KICAgICAgICAgLyoqDQpAQCAtMjYxLDcgKzI3MCw3IEBAIGNsYXNzIENIdHRwQ2Fj
aGVMb29rdXBUYWJsZSA6IHB1YmxpYyBDQmENCiAgICAgcHJpdmF0ZTogICAgLy8gRGF0YQ0KIA0K
ICAgICAgICAgLy8gaGFzaCB0YWJsZSBmb3IgY2FjaGUgZW50cmllcw0KLQkJQ0FycmF5UHRyRmxh
dDxDSHR0cENhY2hlRW50cnk+KiBpRW50cmllczsNCisgICAgQ0FycmF5UHRyRmxhdDxDSHR0cENh
Y2hlRW50cnk+KiBpRW50cmllczsNCiAgICAgICAgIC8vIG51bWJlciBvZiBlbnRyaWVzIGluIHRo
ZSBoYXNodGFibGUNCiAgICAgICAgIFRJbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgaUNv
dW50Ow0KICAgICAgICAgLy8NCkluZGV4OiBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMv
SHR0cENhY2hlT2JzZXJ2ZXIuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9SZXNvdXJjZUxvYWRl
ci9DYWNoZUluYy9IdHRwQ2FjaGVPYnNlcnZlci5oCShyZXZpc2lvbiAwKQ0KKysrIFdlYktpdC9S
ZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVPYnNlcnZlci5oCShyZXZpc2lvbiAwKQ0K
QEAgLTAsMCArMSwxMjEgQEANCisvKg0KKyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorKiAgTmFt
ZSAgICAgICAgOiBIdHRwQ2FjaGVIYW5kbGVyVXBkYXRlci5oDQorKiAgUGFydCBvZiAgICAgOiBX
ZWJLaXQgLyBSZXNvdXJjZUxvYWRlcg0KKyogIEludGVyZmFjZSAgIDoNCisqICBEZXNjcmlwdGlv
biA6IERlZmluaXRpb24gb2YgQ0h0dHBDYWNoZU9ic2VydmVyDQorKiAgVmVyc2lvbiAgICAgOiAl
VmVyc2lvbiUNCisqDQorKiAgICBDb3B5cmlnaHQgKGMpIDIwMDYsIE5va2lhIENvcnBvcmF0aW9u
DQorKiAgICBBbGwgcmlnaHRzIHJlc2VydmVkLg0KKyoNCisqICAgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQorKiAgIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucw0KKyogICBhcmUgbWV0Og0KKyoNCisqICAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodA0KKyogICAgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4NCisqICAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodA0KKyogICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbg0KKyogICAgICAgIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUNCisq
ICAgICAgICBkaXN0cmlidXRpb24uDQorKiAgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUg
Tm9raWEgQ29ycG9yYXRpb24gbm9yIHRoZSBuYW1lcyBvZiBpdHMNCisqICAgICAgICBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQN
CisqICAgICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uDQorKg0KKyogICBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTDQorKiAgICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UDQorKiAg
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUg0KKyogICBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVA0KKyogICBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwNCisqICAg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVA0KKyogICBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwNCisqICAgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZDQorKiAgIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQNCisqICAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUNCisqICAgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSA0KKyogICBEQU1BR0UuDQorKg0KKyog
ICAgUGxlYXNlIHNlZSBmaWxlIHBhdGVudGxpY2Vuc2UudHh0IGZvciBmdXJ0aGVyIGdyYW50cy4N
CisqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyovDQorDQorI2lmbmRlZiBDSFRUUENBQ0hFT0JT
RVJWRVJfSA0KKyNkZWZpbmUgQ0hUVFBDQUNIRU9CU0VSVkVSX0gNCisNCisvLyAgSU5DTFVERVMN
CisjaW5jbHVkZSA8ZTMyYmFzZS5oPg0KKyNpbmNsdWRlIDxmMzJmaWxlLmg+DQorDQorLy8gQ09O
U1RBTlRTDQorDQorLy8gTUFDUk9TDQorDQorLy8gREFUQSBUWVBFUw0KKw0KKy8vIEZVTkNUSU9O
IFBST1RPVFlQRVMNCisNCisvLyBGT1JXQVJEIERFQ0xBUkFUSU9OUw0KK2NsYXNzIENIdHRwQ2Fj
aGVIYW5kbGVyOw0KKw0KKy8vIENMQVNTIERFQ0xBUkFUSU9ODQorDQorLyoqDQorKg0KKyogIEBs
aWINCisqICBAc2luY2UgMy4xDQorKi8NCitOT05TSEFSQUJMRV9DTEFTUyhDSHR0cENhY2hlT2Jz
ZXJ2ZXIpIDogcHVibGljIENBY3RpdmUNCisgICAgew0KKyAgICBwdWJsaWM6ICAvLyBDb25zdHJ1
Y3RvcnMgYW5kIGRlc3RydWN0b3INCisNCisgICAgICAgIC8qKg0KKyAgICAgICAgKiBUd28tcGhh
c2VkIGNvbnN0cnVjdG9yLg0KKyAgICAgICAgKiBAc2luY2UgMy4xDQorICAgICAgICAqIEBwYXJh
bQ0KKyAgICAgICAgKiBAcGFyYW0NCisgICAgICAgICogQHJldHVybiBDYWNoZUhhbmRsZXIgb2Jq
ZWN0Lg0KKyAgICAgICAgKi8NCisgICAgICAgIHN0YXRpYyBDSHR0cENhY2hlT2JzZXJ2ZXIqIE5l
d0woIGNvbnN0IEhCdWZDKiBhRGlyZWN0b3J5LCBjb25zdCBIQnVmQyogYUluZGV4RmlsZSwNCisg
ICAgICAgICAgICBDSHR0cENhY2hlSGFuZGxlciogYUh0dHBDYWNoZUhhbmRsZXIpOw0KKw0KKyAg
ICAgICAgLyoqDQorICAgICAgICAqIERlc3RydWN0b3IuDQorICAgICAgICAqLw0KKyAgICAgICAg
dmlydHVhbCB+Q0h0dHBDYWNoZU9ic2VydmVyKCk7DQorDQorICAgIHB1YmxpYzogLy8gbmV3IGZ1
bmN0aW9ucw0KKyAgICAgICAgdm9pZCBTdGFydE9ic2VydmVyTCgpOw0KKw0KKyAgICBwdWJsaWM6
IC8vIGZyb20gYmFzZSBjbGFzcyBDQWN0aXZlDQorICAgICAgICB2b2lkIFJ1bkwoKTsNCisgICAg
ICAgIFRJbnQgUnVuRXJyb3IoVEludCBhRXJyb3IpOw0KKyAgICAgICAgdm9pZCBEb0NhbmNlbCgp
Ow0KKw0KKyAgICBwcml2YXRlOg0KKw0KKyAgICAgICAgLyoqDQorICAgICAgICAqIENvbnN0cnVj
dC4NCisgICAgICAgICogQHNpbmNlIDMuMQ0KKyAgICAgICAgKiBAcGFyYW0NCisgICAgICAgICog
QHBhcmFtDQorICAgICAgICAqIEByZXR1cm4gQ2FjaGVPYnNlcnZlciBvYmplY3QuDQorICAgICAg
ICAqLw0KKyAgICAgICAgQ0h0dHBDYWNoZU9ic2VydmVyKENIdHRwQ2FjaGVIYW5kbGVyKiBhSHR0
cENhY2hlSGFuZGxlcik7DQorDQorICAgICAgICAvKioNCisgICAgICAgICogQnkgZGVmYXVsdCBT
eW1iaWFuIDJuZCBwaGFzZSBjb25zdHJ1Y3RvciBpcyBwcml2YXRlLg0KKyAgICAgICAgKi8NCisg
ICAgICAgIHZvaWQgQ29uc3RydWN0TChjb25zdCBIQnVmQyogYURpcmVjdG9yeSwgY29uc3QgSEJ1
ZkMqIGFJbmRleEZpbGUpOw0KKw0KKyAgICBwcml2YXRlOiAgICAvLyBEYXRhDQorDQorICAgICAg
ICAvLyBuYW1lIGFuZCBwYXRoIG9mIGluZGV4IGZpbGUNCisgICAgICAgIEhCdWZDKiBpRmlsZU5h
bWU7IC8vIG93bmVkDQorICAgICAgICBSRnMgaUZzU2Vzc2lvbjsgLy8gbm90IG93bmVkDQorICAg
ICAgICBDSHR0cENhY2hlSGFuZGxlciogaUh0dHBDYWNoZUhhbmRsZXI7DQorICAgIH07DQorDQor
I2VuZGlmICAgICAgLy8gQ0hUVFBDQUNIRU9CU0VSVkVSX0gNCisNCisvLyBFbmQgb2YgRmlsZQ0K
SW5kZXg6IFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVFbnRyeS5jcHAN
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0NCi0tLSBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hl
RW50cnkuY3BwCShyZXZpc2lvbiAxODIyMSkNCisrKyBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2Fj
aGVTcmMvSHR0cENhY2hlRW50cnkuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtOSw5ICs5LDkgQEAN
CiAqICAgIENvcHlyaWdodCAoYykgMjAwNiwgTm9raWEgQ29ycG9yYXRpb24NCiAqICAgIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuDQogKiAgDQotKiAgCVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KLSogIAltb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMNCi0q
ICAJYXJlIG1ldDoNCisqICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQorKiAgIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucw0KKyogICBhcmUgbWV0
Og0KICogIA0KICogICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQogKiAgICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KQEAgLTIzLDE4ICsyMywx
OCBAQA0KICogICAgICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZA0KICogICAgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4NCiAqICANCi0qICAJVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUw0KLSogIAkiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVA0KLSogIAlMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1INCi0qICAJQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQN
Ci0qICAJT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsDQotKiAgCVNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QNCi0qICAJTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsDQotKiAg
CURBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQ0KLSogIAlUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUDQotKiAgCShJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFDQotKiAgCVVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0gNCi0qICAJREFNQUdFLg0KKyogICBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTDQorKiAgICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UDQorKiAgIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUg0KKyogICBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVA0KKyogICBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwNCisqICAgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVA0KKyogICBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwNCisqICAgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZDQorKiAgIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQNCisqICAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUNCisqICAgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSA0KKyogICBEQU1BR0UuDQogKiAgDQogKiAg
ICBQbGVhc2Ugc2VlIGZpbGUgcGF0ZW50bGljZW5zZS50eHQgZm9yIGZ1cnRoZXIgZ3JhbnRzLg0K
ICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMTI4LDEwICsxMjgsMTAgQEAgQ0h0dHBDYWNo
ZUVudHJ5KiBDSHR0cENhY2hlRW50cnk6Ok5ld0xDKA0KIC8vIERlc3RydWN0b3INCiBDSHR0cENh
Y2hlRW50cnk6On5DSHR0cENhY2hlRW50cnkoKQ0KICAgICB7DQotCWlmKCBpVmljdGltICkNCi0J
CXsNCi0JCWlFdmljdGlvbkhhbmRsZXItPlJlbW92ZSggKnRoaXMgKTsNCi0JCX0NCisgIGlmKCBp
VmljdGltICkNCisgICAgew0KKyAgICBpRXZpY3Rpb25IYW5kbGVyLT5SZW1vdmUoICp0aGlzICk7
DQorICAgIH0NCiAgICAgZGVsZXRlIGlVcmw7DQogICAgIGRlbGV0ZSBpRmlsZU5hbWU7DQogICAg
IH0NCkBAIC0yMDcsMTEgKzIwNywxMSBAQCB2b2lkIENIdHRwQ2FjaGVFbnRyeTo6U2V0U2l6ZSgN
CiAgICAgICAgIC8vIGJvZHkgcmVtb3ZhbA0KICAgICAgICAgLy8gcmVtb3ZlIGl0c2VsZiBmcm9t
IHRoZSBldmljdGlvbiB0YWJsZS4NCiAgICAgICAgIC8vIHRoaXMgaXMgbm8gbG9uZ2VyIGEgdmlj
dGltDQotCSAgICBpZiggaVZpY3RpbSApDQotCQkgICAgew0KLQkJICAgIGlFdmljdGlvbkhhbmRs
ZXItPlJlbW92ZSggKnRoaXMgKTsNCisgICAgICBpZiggaVZpY3RpbSApDQorICAgICAgICB7DQor
ICAgICAgICBpRXZpY3Rpb25IYW5kbGVyLT5SZW1vdmUoICp0aGlzICk7DQogICAgICAgICAgICAg
aVZpY3RpbSA9IEVGYWxzZTsNCi0JCSAgICB9DQorICAgICAgICB9DQogICAgICAgICB9DQogICAg
IGlTaXplID0gYVNpemU7DQogICAgIH0NCkBAIC0yNDIsNiArMjQyLDcgQEAgVEludCBDSHR0cENh
Y2hlRW50cnk6OkludGVybmFsaXplKA0KICAgICAvLyB1cmwgbGVuZ3RoDQogICAgIGxlbiA9IGFS
ZWFkU3RyZWFtLlJlYWRJbnQzMkwoKTsNCiAgICAgZGVsZXRlIGlVcmw7DQorICAgIGlVcmw9TlVM
TDsNCiAgICAgaVVybCA9IEhCdWZDODo6TmV3TCggbGVuICk7DQogICAgIFRQdHI4IHB0cjgoIGlV
cmwtPkRlcygpICk7DQogICAgIC8vIHVybA0KQEAgLTMwMSw2ICszMDIsMjggQEAgVEludCBDSHR0
cENhY2hlRW50cnk6OkV4dGVybmFsaXplKA0KICAgICAvLyBwcm90ZWN0ZWQNCiAgICAgYVdyaXRl
U3RyZWFtLldyaXRlSW50MzJMKCBpUHJvdGVjdGVkICk7ICk7DQogICAgIHJldHVybiBlcnI7DQor
ICAgIH0NCisNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRwQ2FjaGVFbnRyeTo6
QWNjZXNzZWQNCisvLw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8NCit2b2lkIENIdHRw
Q2FjaGVFbnRyeTo6QWNjZXNzZWQoVEludDY0IGFMYXN0QWNjZXNzZWQsIFRVaW50MTYgYVJlZikN
CisgICAgew0KKyAgICBpTGFzdEFjY2Vzc2VkID0gYUxhc3RBY2Nlc3NlZDsNCisgICAgaVJlZiA9
IGFSZWY7DQorICAgIGlmKCBpVmljdGltICkNCisgICAgICAgIHsNCisgICAgICAgIGlFdmljdGlv
bkhhbmRsZXItPkFjY2Vzc2VkKCAqdGhpcyApOw0KKyAgICAgICAgfQ0KKyNpZmRlZiBfX0NBQ0hF
TE9HX18NCisgICAgX0xJVCggS0FjY2Vzc0Zvcm1hdCwgImVudHJ5IGFjY2Vzc2VkOiAlZCIgKTsN
CisgICAgVEJ1ZjwxMDA+IGJ1ZjsNCisgICAgYnVmLkZvcm1hdCggS0FjY2Vzc0Zvcm1hdCwgaVJl
ZiApOw0KKyAgICBIdHRwQ2FjaGVVdGlsOjpXcml0ZVVybFRvTG9nKCAwLCBidWYsIGlVcmwtPkRl
cygpICk7DQorI2VuZGlmIC8vIF9fQ0FDSEVMT0dfXw0KKw0KICAgICB9DQogDQogLy8gIEVuZCBv
ZiBGaWxlDQpJbmRleDogV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZUhh
bmRsZXIuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlU3Jj
L0h0dHBDYWNoZUhhbmRsZXIuY3BwCShyZXZpc2lvbiAxODIyMSkNCisrKyBXZWJLaXQvUmVzb3Vy
Y2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hlSGFuZGxlci5jcHAJKHdvcmtpbmcgY29weSkNCkBA
IC00OCw2ICs0OCw3IEBADQogI2luY2x1ZGUgIkh0dHBDYWNoZVN0cmVhbUhhbmRsZXIuaCINCiAj
aW5jbHVkZSAiSHR0cENhY2hlVXRpbC5oIg0KICNpbmNsdWRlICJIdHRwQ2FjaGVFdmljdGlvbkhh
bmRsZXIuaCINCisjaW5jbHVkZSAiSHR0cENhY2hlT2JzZXJ2ZXIuaCINCiAjaW5jbHVkZSA8aHR0
cFxSSFRUUFRyYW5zYWN0aW9uLmg+DQogI2luY2x1ZGUgPGh0dHBccmh0dHBzZXNzaW9uLmg+DQog
I2luY2x1ZGUgPGh0dHBccmh0dHBoZWFkZXJzLmg+DQpAQCAtMTE1LDYgKzExNiw5IEBAIHZvaWQg
Q0h0dHBDYWNoZUhhbmRsZXI6OkNvbnN0cnVjdEwoDQogICAgIE9wZW5Mb29rdXBUYWJsZUwoKTsN
CiAgICAgLy8NCiAgICAgaUlkbGUgPSBDSWRsZTo6TmV3TCggQ0FjdGl2ZTo6RVByaW9yaXR5SWRs
ZSApOw0KKyAgICAvLw0KKyAgICBpSHR0cENhY2hlT2JzZXJ2ZXIgPSBDSHR0cENhY2hlT2JzZXJ2
ZXI6Ok5ld0woaURpcmVjdG9yeSwgaUluZGV4RmlsZSwgdGhpcyk7DQorICAgIGlIdHRwQ2FjaGVP
YnNlcnZlci0+U3RhcnRPYnNlcnZlckwoKTsNCiAgICAgfQ0KIA0KIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tDQpAQCAtMTQyLDYgKzE0Niw4IEBAIENIdHRwQ2FjaGVIYW5kbGVyOjp+Q0h0dHBDYWNo
ZUhhbmRsZXIoKQ0KICAgICAvLyBzYXZlIGVudHJ5IHRhYmxlDQogICAgIFRSQVBfSUdOT1JFKCBT
YXZlTG9va3VwVGFibGVMKCkgKTsNCiAgICAgLy8NCisgICAgZGVsZXRlIGlIdHRwQ2FjaGVPYnNl
cnZlcjsNCisgICAgLy8NCiAgICAgaWYgKGlFdmljdGlvbkhhbmRsZXIpDQogICAgICAgICB7DQog
ICAgICAgICBpRXZpY3Rpb25IYW5kbGVyLT5SZW1vdmVBbGwoKTsNCkBAIC0xMDY0LDYgKzEwNzAs
MTYgQEAgVEJvb2wgQ0h0dHBDYWNoZUhhbmRsZXI6OkhhbmRsZVJlc3BvbnNlTg0KIC8vDQogdm9p
ZCBDSHR0cENhY2hlSGFuZGxlcjo6T3Blbkxvb2t1cFRhYmxlTCgpDQogICAgIHsNCisgICAgT3Bl
bkxvb2t1cFRhYmxlTChpTG9va3VwVGFibGUpOw0KKyAgICB9DQorDQorLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0NCisvLyBDSHR0cENhY2hlSGFuZGxlcjo6T3Blbkxvb2t1cFRhYmxlTA0KKy8vDQor
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLw0KK3ZvaWQgQ0h0dHBDYWNoZUhhbmRsZXI6Ok9w
ZW5Mb29rdXBUYWJsZUwoQ0h0dHBDYWNoZUxvb2t1cFRhYmxlKiBhTG9va3VwVGFibGUpDQorICAg
IHsNCiAgICAgLy8gcmVhZCBlbnRyaWVzIGZyb20gaW5kZXguZGF0DQogICAgIFJGaWxlUmVhZFN0
cmVhbSByZWFkU3RyZWFtOw0KICAgICBSRnMgZnM7DQpAQCAtMTA4MywxMSArMTA5OSwyNiBAQCB2
b2lkIENIdHRwQ2FjaGVIYW5kbGVyOjpPcGVuTG9va3VwVGFibGVMDQogICAgIGlmKCBlcnIgPT0g
S0Vyck5vbmUgKQ0KICAgICAgICAgew0KICAgICAgICAgZnMuU2V0U2Vzc2lvblBhdGgoIGlEaXJl
Y3RvcnktPkRlcygpICk7DQotDQotICAgICAgICBpZiggcmVhZFN0cmVhbS5PcGVuKCBmcywgaUlu
ZGV4RmlsZS0+RGVzKCksIEVGaWxlUmVhZCApID09IEtFcnJOb25lICkNCisgICAgICAgIFRJbnQg
cmV0ID0gS0Vyck5vbmU7DQorICAgICAgICBUSW50IHRyeUNvdW50ID0gMDsNCisgICAgICAgIGZv
ciAodHJ5Q291bnQgPSAwOyB0cnlDb3VudCA8IDU7IHRyeUNvdW50KyspIA0KKyAgICAgICAgICAg
IHsNCisgICAgICAgICAgICByZXQgPSByZWFkU3RyZWFtLk9wZW4oIGZzLCBpSW5kZXhGaWxlLT5E
ZXMoKSwgRUZpbGVTaGFyZVJlYWRlcnNPcldyaXRlcnMgKTsNCisgICAgICAgICAgICBpZiAocmV0
ID09IEtFcnJJblVzZSkNCisgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICAvLyBX
aGVuIHRoZSBjYWNoZSBpcyBmdWxsLCBpdCB0YWtlcyA2NSAtIDg1IG1pbGlzZWNvbmRzIHRvIHdy
aXRlIHRoZSBpbmRleC4NCisgICAgICAgICAgICAgICAgLy8gU28gd2FpdCA1MCBtaWxpc2Vjb25k
cyBhbmQgdHJ5IGFnYWluDQorICAgICAgICAgICAgICAgIFVzZXI6OkFmdGVyKDUwMDAwKTsNCisg
ICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGVsc2UNCisgICAgICAgICAgICAgICAgew0K
KyAgICAgICAgICAgICAgICBicmVhazsNCisgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAg
IH0NCisgICAgICAgIGlmKCByZXQgPT0gS0Vyck5vbmUgKQ0KICAgICAgICAgICAgIHsNCiAgICAg
ICAgICAgICBDbGVhbnVwQ2xvc2VQdXNoTCggcmVhZFN0cmVhbSApOw0KLSAgICAgICAgICAgIGlM
b29rdXBUYWJsZS0+SW50ZXJuYWxpemVMKCByZWFkU3RyZWFtLCBpRGlyZWN0b3J5LT5EZXMoKSAp
Ow0KKyAgICAgICAgICAgIGFMb29rdXBUYWJsZS0+SW50ZXJuYWxpemVMKCByZWFkU3RyZWFtLCBp
RGlyZWN0b3J5LT5EZXMoKSApOw0KICAgICAgICAgICAgIENsZWFudXBTdGFjazo6UG9wQW5kRGVz
dHJveSgpOyAvLyByZWFkU3RyZWFtDQogICAgICAgICAgICAgfQ0KICAgICAgICAgfQ0KQEAgLTEx
MDcsMTAgKzExMzgsMjYgQEAgdm9pZCBDSHR0cENhY2hlSGFuZGxlcjo6U2F2ZUxvb2t1cFRhYmxl
TA0KICAgICBSRnMgZnM7DQogICAgIFVzZXI6OkxlYXZlSWZFcnJvciggZnMuQ29ubmVjdCgpICk7
DQogICAgIENsZWFudXBDbG9zZVB1c2hMKCBmcyApOw0KLQ0KICAgICBmcy5TZXRTZXNzaW9uUGF0
aCggaURpcmVjdG9yeS0+RGVzKCkgKTsNCi0NCi0gICAgaWYoIHdyaXRlU3RyZWFtLlJlcGxhY2Uo
IGZzLCBpSW5kZXhGaWxlLT5EZXMoKSwgRUZpbGVXcml0ZSApID09IEtFcnJOb25lICkNCisgICAg
Ly8gRG9uJ3QgZ2V0IG5vdGlmaWVkIGFib3V0IG93biBjaGFuZ2VzDQorICAgIGlIdHRwQ2FjaGVP
YnNlcnZlci0+Q2FuY2VsKCk7DQorICAgIFRJbnQgcmV0ID0gS0Vyck5vbmU7DQorICAgIFRJbnQg
dHJ5Q291bnQgPSAwOw0KKyAgICBmb3IgKHRyeUNvdW50ID0gMDsgdHJ5Q291bnQgPCA1OyB0cnlD
b3VudCsrKSANCisgICAgICAgIHsNCisgICAgICAgIHJldCA9IHdyaXRlU3RyZWFtLlJlcGxhY2Uo
IGZzLCBpSW5kZXhGaWxlLT5EZXMoKSwgRUZpbGVTaGFyZVJlYWRlcnNPcldyaXRlcnMgKTsNCisg
ICAgICAgIGlmIChyZXQgPT0gS0VyckluVXNlKQ0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAg
ICAvLyBXaGVuIHRoZSBjYWNoZSBpcyBmdWxsLCBpdCB0YWtlcyA2NSAtIDg1IG1pbGlzZWNvbmRz
IHRvIHdyaXRlIHRoZSBpbmRleC4NCisgICAgICAgICAgICAvLyBTbyB3YWl0IDUwIG1pbGlzZWNv
bmRzIGFuZCB0cnkgYWdhaW4NCisgICAgICAgICAgICBVc2VyOjpBZnRlcig1MDAwMCk7DQorICAg
ICAgICAgICAgfQ0KKyAgICAgICAgZWxzZQ0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICBi
cmVhazsNCisgICAgICAgICAgICB9DQorICAgICAgICB9DQorICAgIGlmKCByZXQgPT0gS0Vyck5v
bmUgKQ0KICAgICAgICAgew0KICAgICAgICAgQ2xlYW51cENsb3NlUHVzaEwoIHdyaXRlU3RyZWFt
ICk7DQogICAgICAgICBpTG9va3VwVGFibGUtPkV4dGVybmFsaXplTCggd3JpdGVTdHJlYW0gKTsN
CkBAIC0xMTE4LDYgKzExNjUsNyBAQCB2b2lkIENIdHRwQ2FjaGVIYW5kbGVyOjpTYXZlTG9va3Vw
VGFibGVMDQogICAgICAgICBDbGVhbnVwU3RhY2s6OlBvcEFuZERlc3Ryb3koKTsgLy8gd3JpdGVT
dHJlYW0NCiAgICAgICAgIH0NCiAgICAgQ2xlYW51cFN0YWNrOjpQb3BBbmREZXN0cm95KCk7IC8v
IGZzDQorICAgIGlIdHRwQ2FjaGVPYnNlcnZlci0+U3RhcnRPYnNlcnZlckwoKTsNCiAgICAgfQ0K
IA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpAQCAtMTI0Niw2ICsxMjk0LDM4IEBAIFRJbnQg
Q0h0dHBDYWNoZUhhbmRsZXI6OkRvQmFja2dyb3VuZFNhdmUNCiAgICAgew0KICAgICBUUkFQX0lH
Tk9SRSggKChDSHR0cENhY2hlSGFuZGxlciopYVRoaXMpLT5TYXZlTG9va3VwVGFibGVMKCkgKTsN
CiAgICAgcmV0dXJuIEtFcnJOb25lOw0KKyAgICB9DQorDQorDQorLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0NCisvLyBDSHR0cENhY2hlSGFuZGxlcjo6VXBkYXRlTG9va3VwVGFibGUNCisvLw0KKy8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8NCit2b2lkIENIdHRwQ2FjaGVIYW5kbGVyOjpVcGRh
dGVMb29rdXBUYWJsZSgpDQorICAgIHsNCisgICAgVFJBUF9JR05PUkUoVXBkYXRlTG9va3VwVGFi
bGVMKCkpOw0KKyAgICBpSHR0cENhY2hlT2JzZXJ2ZXItPlN0YXJ0T2JzZXJ2ZXJMKCk7DQorICAg
IH0NCisNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRwQ2FjaGVIYW5kbGVyOjpV
cGRhdGVMb29rdXBUYWJsZUwNCisvLw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8NCit2
b2lkIENIdHRwQ2FjaGVIYW5kbGVyOjpVcGRhdGVMb29rdXBUYWJsZUwoKQ0KKyAgICB7DQorICAg
IENIdHRwQ2FjaGVFdmljdGlvbkhhbmRsZXIqIGV2aWN0aW9uSGFuZGxlciA9IENIdHRwQ2FjaGVF
dmljdGlvbkhhbmRsZXI6Ok5ld0woKTsNCisgICAgQ2xlYW51cFN0YWNrOjpQdXNoTChldmljdGlv
bkhhbmRsZXIpOw0KKyAgICBDSHR0cENhY2hlTG9va3VwVGFibGUqIGxvb2t1cFRhYmxlID0gQ0h0
dHBDYWNoZUxvb2t1cFRhYmxlOjpOZXdMKCAqZXZpY3Rpb25IYW5kbGVyLCAqaVN0cmVhbUhhbmRs
ZXIgKTsNCisgICAgQ2xlYW51cFN0YWNrOjpQdXNoTChsb29rdXBUYWJsZSk7DQorICAgIE9wZW5M
b29rdXBUYWJsZUwobG9va3VwVGFibGUpOw0KKyAgICBSRnMgcmZzOw0KKyAgICBVc2VyOjpMZWF2
ZUlmRXJyb3IocmZzLkNvbm5lY3QoKSk7DQorICAgIENsZWFudXBDbG9zZVB1c2hMKHJmcyk7DQor
ICAgIHJmcy5TZXRTZXNzaW9uUGF0aCggaURpcmVjdG9yeS0+RGVzKCkgKTsNCisgICAgaUxvb2t1
cFRhYmxlLT5NZXJnZUwobG9va3VwVGFibGUsIHJmcyk7DQorICAgIENsZWFudXBTdGFjazo6UG9w
QW5kRGVzdHJveSgzKTsgLy8gcmZzLCBsb29rdXBUYWJsZSwgZXZpY3Rpb25IYW5kbGVyDQogICAg
IH0NCiANCiAvLyAgRW5kIG9mIEZpbGUNCkluZGV4OiBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2Fj
aGVTcmMvSHR0cENhY2hlTG9va3VwVGFibGUuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L1Jl
c291cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZUxvb2t1cFRhYmxlLmNwcAkocmV2aXNpb24g
MTgyMjEpDQorKysgV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZUxvb2t1
cFRhYmxlLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTQ2LDcgKzQ2LDYgQEANCiAjaW5jbHVkZSAi
SHR0cENhY2hlVXRpbC5oIg0KICNpbmNsdWRlICJIdHRwQ2FjaGVFdmljdGlvbkhhbmRsZXIuaCIN
CiAjaW5jbHVkZSAiSHR0cENhY2hlU3RyZWFtSGFuZGxlci5oIg0KLSNpbmNsdWRlIDxzMzJmaWxl
Lmg+DQogDQogLy8gRVhURVJOQUwgREFUQSBTVFJVQ1RVUkVTDQogDQpAQCAtNjcyLDUgKzY3MSw3
MiBAQCBUQm9vbCBDSHR0cENhY2hlTG9va3VwVGFibGU6OkJvdW5kYXJ5Q2hlDQogICAgIFRJbnQg
YVBvcyApDQogICAgIHsNCiAgICAgcmV0dXJuICggYVBvcyA+PSAwICYmIGFQb3MgPCBpRW50cmll
cy0+Q291bnQoKSApOw0KKyAgICB9DQorDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBD
SHR0cENhY2hlTG9va3VwVGFibGU6Ok1lcmdlTA0KKy8vDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0NCisvLw0KK3ZvaWQgQ0h0dHBDYWNoZUxvb2t1cFRhYmxlOjpNZXJnZUwoIENIdHRwQ2FjaGVM
b29rdXBUYWJsZSogYUh0dHBDYWNoZUxvb2t1cFRhYmxlLCBSRnMgYVJmcyApDQorICAgIHsNCisg
ICAgVEludCBteUNvdW50ID0gaUVudHJpZXMtPkNvdW50KCk7DQorICAgIFRJbnQgaSA9IDA7DQor
ICAgIGZvciAoaSA9IG15Q291bnQgLSAxOyBpID49IDA7IGktLSkNCisgICAgICAgIHsNCisgICAg
ICAgIGlmICggVmFsaWQoIGkgKSApDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgIENIdHRw
Q2FjaGVFbnRyeSogZW50cnkgPSBpRW50cmllcy0+QXQoaSk7DQorICAgICAgICAgICAgQ0h0dHBD
YWNoZUVudHJ5KiBuZXdFbnRyeSA9IGFIdHRwQ2FjaGVMb29rdXBUYWJsZS0+RmluZChlbnRyeS0+
VXJsKCkpOw0KKyAgICAgICAgICAgIGlmIChuZXdFbnRyeSkNCisgICAgICAgICAgICAgICAgew0K
KyAgICAgICAgICAgICAgICAvLyBFbnRyeSBpcyBpbiB0aGUgbmV3IGluZGV4IGZpbGUNCisgICAg
ICAgICAgICAgICAgaWYgKG5ld0VudHJ5LT5MYXN0QWNjZXNzZWQoKSA+IGVudHJ5LT5MYXN0QWNj
ZXNzZWQoKSkNCisgICAgICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgICAgIGVu
dHJ5LT5BY2Nlc3NlZChuZXdFbnRyeS0+TGFzdEFjY2Vzc2VkKCksIG5ld0VudHJ5LT5SZWYoKSk7
DQorICAgICAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgIFRJbnQgcG9zID0gYUh0
dHBDYWNoZUxvb2t1cFRhYmxlLT5Qcm9iZShuZXdFbnRyeS0+VXJsKCksIEVGYWxzZSk7DQorICAg
ICAgICAgICAgICAgIGlmIChhSHR0cENhY2hlTG9va3VwVGFibGUtPlZhbGlkKHBvcykpDQorICAg
ICAgICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgICAgICBhSHR0cENhY2hlTG9va3Vw
VGFibGUtPlNldERlbGV0ZWQocG9zKTsNCisgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBuZXdF
bnRyeTsNCisgICAgICAgICAgICAgICAgICAgIGFIdHRwQ2FjaGVMb29rdXBUYWJsZS0+aUNvdW50
LS07DQorICAgICAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgIH0NCisgICAgICAg
ICAgICBlbHNlIC8vIChuZXdFbnRyeSkNCisgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAg
ICAgICAvLyBFbnRyeSBpcyBub3QgaW4gdGhlIG5ldyBpbmRleCBmaWxlDQorICAgICAgICAgICAg
ICAgIFRVaW50IGF0dDsNCisgICAgICAgICAgICAgICAgaWYgKGFSZnMuQXR0KGVudHJ5LT5GaWxl
bmFtZSgpLCBhdHQpICE9IEtFcnJOb25lKQ0KKyAgICAgICAgICAgICAgICAgICAgew0KKyAgICAg
ICAgICAgICAgICAgICAgVEludCB0aGVQb3MgPSBQcm9iZShlbnRyeS0+VXJsKCksIEVGYWxzZSk7
DQorICAgICAgICAgICAgICAgICAgICBpZiAoVmFsaWQodGhlUG9zKSkNCisgICAgICAgICAgICAg
ICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgICAgICAgICAgRXJhc2UodGhlUG9zKTsNCisg
ICAgICAgICAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgICAgICB9DQorICAgICAg
ICAgICAgICAgIH0NCisgICAgICAgICAgICB9DQorICAgICAgICB9DQorDQorICAgIFRJbnQgbmV3
Q291bnQgPSBhSHR0cENhY2hlTG9va3VwVGFibGUtPmlFbnRyaWVzLT5Db3VudCgpOw0KKyAgICBm
b3IgKGkgPSBuZXdDb3VudCAtIDE7IGkgPj0gMDsgaS0tKQ0KKyAgICAgICAgew0KKyAgICAgICAg
aWYgKCBhSHR0cENhY2hlTG9va3VwVGFibGUtPlZhbGlkKCBpICkgKQ0KKyAgICAgICAgICAgIHsN
CisgICAgICAgICAgICBDSHR0cENhY2hlRW50cnkqIG5ld0VudHJ5ID0gYUh0dHBDYWNoZUxvb2t1
cFRhYmxlLT5pRW50cmllcy0+QXQoaSk7DQorICAgICAgICAgICAgVEludCBwb3MgPSBhSHR0cENh
Y2hlTG9va3VwVGFibGUtPlByb2JlKG5ld0VudHJ5LT5VcmwoKSwgRUZhbHNlKTsNCisgICAgICAg
ICAgICBUVWludCBhdHQ7DQorICAgICAgICAgICAgaWYgKGFSZnMuQXR0KG5ld0VudHJ5LT5GaWxl
bmFtZSgpLCBhdHQpID09IEtFcnJOb25lKQ0KKyAgICAgICAgICAgICAgICB7DQorICAgICAgICAg
ICAgICAgIENIdHRwQ2FjaGVFbnRyeSogbXlFbnRyeSA9IEluc2VydEwobmV3RW50cnktPlVybCgp
KTsNCisgICAgICAgICAgICAgICAgbXlFbnRyeS0+U2V0U3RhdGUoIENIdHRwQ2FjaGVFbnRyeTo6
RUNhY2hlQ29tcGxldGUgKTsNCisgICAgICAgICAgICAgICAgbXlFbnRyeS0+QWNjZXNzZWQobmV3
RW50cnktPkxhc3RBY2Nlc3NlZCgpLCBuZXdFbnRyeS0+UmVmKCkpOw0KKyAgICAgICAgICAgICAg
ICB9ICAgICAgICAgIA0KKyAgICAgICAgICAgIGFIdHRwQ2FjaGVMb29rdXBUYWJsZS0+U2V0RGVs
ZXRlZChwb3MpOw0KKyAgICAgICAgICAgIGRlbGV0ZSBuZXdFbnRyeTsNCisgICAgICAgICAgICBh
SHR0cENhY2hlTG9va3VwVGFibGUtPmlDb3VudC0tOw0KKyAgICAgICAgICAgIH0NCisgICAgICAg
IH0NCiAgICAgfQ0KIC8vICBFbmQgb2YgRmlsZQ0KSW5kZXg6IFdlYktpdC9SZXNvdXJjZUxvYWRl
ci9DYWNoZVNyYy9IdHRwQ2FjaGVPYnNlcnZlci5jcHANCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQv
UmVzb3VyY2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hlT2JzZXJ2ZXIuY3BwCShyZXZpc2lvbiAw
KQ0KKysrIFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVPYnNlcnZlci5j
cHAJKHJldmlzaW9uIDApDQpAQCAtMCwwICsxLDE2MCBAQA0KKy8qDQorKiA9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0NCisqICBOYW1lICAgICAgICA6IEh0dHBDYWNoZU9ic2VydmVyLmNwcA0KKyogIFBh
cnQgb2YgICAgIDogV2ViS2l0IC8gUmVzb3VyY2VMb2FkZXINCisqICBJbnRlcmZhY2UgICA6DQor
KiAgRGVzY3JpcHRpb24gOiBJbXBsZW1lbnRhdGlvbiBvZiBDSHR0cENhY2hlT2JzZXJ2ZXINCisq
ICBWZXJzaW9uICAgICA6ICVWZXJzaW9uJQ0KKyoNCisqICAgIENvcHlyaWdodCAoYykgMjAwNiwg
Tm9raWEgQ29ycG9yYXRpb24NCisqICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQorKg0KKyogICBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQNCisqICAgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQorKiAgIGFyZSBtZXQ6DQorKg0KKyogICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0DQorKiAgICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLg0KKyogICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0DQorKiAgICAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
DQorKiAgICAgICAgdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQ0KKyogICAgICAgIGRpc3RyaWJ1dGlvbi4NCisqICAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIHRoZSBOb2tpYSBDb3Jwb3JhdGlvbiBub3IgdGhlIG5hbWVzIG9mIGl0cw0K
KyogICAgICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZA0KKyogICAgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4NCisqDQorKiAgIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMNCisq
ICAgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QNCisqICAgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SDQorKiAgIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUDQorKiAgIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLA0KKyogICBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UDQorKiAgIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLA0KKyogICBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkNCisqICAgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVA0KKyogICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRQ0KKyogICBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIDQorKiAg
IERBTUFHRS4NCisqDQorKiAgICBQbGVhc2Ugc2VlIGZpbGUgcGF0ZW50bGljZW5zZS50eHQgZm9y
IGZ1cnRoZXIgZ3JhbnRzLg0KKyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorKi8NCisNCisvLyBJ
TkNMVURFIEZJTEVTDQorI2luY2x1ZGUgIkh0dHBDYWNoZU9ic2VydmVyLmgiDQorI2luY2x1ZGUg
Ikh0dHBDYWNoZUhhbmRsZXIuaCINCisNCisNCisvLyBFWFRFUk5BTCBEQVRBIFNUUlVDVFVSRVMN
CisNCisvLyBFWFRFUk5BTCBGVU5DVElPTiBQUk9UT1RZUEVTDQorDQorLy8gQ09OU1RBTlRTDQor
DQorLy8gTUFDUk9TDQorDQorLy8gTE9DQUwgQ09OU1RBTlRTIEFORCBNQUNST1MNCisNCisvLyBN
T0RVTEUgREFUQSBTVFJVQ1RVUkVTDQorDQorLy8gTE9DQUwgRlVOQ1RJT04gUFJPVE9UWVBFUw0K
Kw0KKy8vIEZPUldBUkQgREVDTEFSQVRJT05TDQorDQorDQorLy8gPT09PT09PT09PT09PT09PT09
PT09PT09PT09PSBNRU1CRVIgRlVOQ1RJT05TID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCisNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRwQ2FjaGVPYnNlcnZlcjo6
Q0h0dHBDYWNoZU9ic2VydmVyDQorLy8gQysrIGRlZmF1bHQgY29uc3RydWN0b3IgY2FuIE5PVCBj
b250YWluIGFueSBjb2RlLCB0aGF0DQorLy8gbWlnaHQgbGVhdmUuDQorLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0NCisvLw0KK0NIdHRwQ2FjaGVPYnNlcnZlcjo6Q0h0dHBDYWNoZU9ic2VydmVyKENI
dHRwQ2FjaGVIYW5kbGVyKiBhSHR0cENhY2hlSGFuZGxlcikgOiBDQWN0aXZlKCBDQWN0aXZlOjpF
UHJpb3JpdHlJZGxlICksDQoraUh0dHBDYWNoZUhhbmRsZXIoYUh0dHBDYWNoZUhhbmRsZXIpDQor
ICAgIHsNCisgICAgQ0FjdGl2ZVNjaGVkdWxlcjo6QWRkKHRoaXMpOw0KKyAgICB9DQorDQorLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBDSHR0cENhY2hlT2JzZXJ2ZXI6OkNvbnN0cnVjdEwN
CisvLyBTeW1iaWFuIDJuZCBwaGFzZSBjb25zdHJ1Y3RvciBjYW4gbGVhdmUuDQorLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0NCisvLw0KK3ZvaWQgQ0h0dHBDYWNoZU9ic2VydmVyOjpDb25zdHJ1Y3RM
KGNvbnN0IEhCdWZDKiBhRGlyZWN0b3J5LCBjb25zdCBIQnVmQyogYUluZGV4RmlsZSkNCisgICAg
ew0KKyAgICBVc2VyOjpMZWF2ZUlmRXJyb3IoaUZzU2Vzc2lvbi5Db25uZWN0KCkpOw0KKyAgICBp
RmlsZU5hbWUgPSBIQnVmQzo6TmV3TChhRGlyZWN0b3J5LT5MZW5ndGgoKSArIGFJbmRleEZpbGUt
Pkxlbmd0aCgpKTsNCisgICAgaUZpbGVOYW1lLT5EZXMoKS5Db3B5KCphRGlyZWN0b3J5KTsNCisg
ICAgaUZpbGVOYW1lLT5EZXMoKS5BcHBlbmQoKmFJbmRleEZpbGUpOw0KKyAgICB9DQorDQorLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBDSHR0cENhY2hlT2JzZXJ2ZXI6Ok5ld0wNCisvLyBU
d28tcGhhc2VkIGNvbnN0cnVjdG9yLg0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8NCitD
SHR0cENhY2hlT2JzZXJ2ZXIqIENIdHRwQ2FjaGVPYnNlcnZlcjo6TmV3TCggY29uc3QgSEJ1ZkMq
IGFEaXJlY3RvcnksIGNvbnN0IEhCdWZDKiBhSW5kZXhGaWxlLA0KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENIdHRwQ2FjaGVIYW5kbGVy
KiBhSHR0cENhY2hlSGFuZGxlcikNCisgICAgew0KKyAgICBDSHR0cENhY2hlT2JzZXJ2ZXIqIHNl
bGYgPSBuZXcoIEVMZWF2ZSApIENIdHRwQ2FjaGVPYnNlcnZlcihhSHR0cENhY2hlSGFuZGxlcik7
DQorICAgIENsZWFudXBTdGFjazo6UHVzaEwoIHNlbGYgKTsNCisgICAgc2VsZi0+Q29uc3RydWN0
TChhRGlyZWN0b3J5LCBhSW5kZXhGaWxlKTsNCisgICAgQ2xlYW51cFN0YWNrOjpQb3AoKTsNCisg
ICAgcmV0dXJuIHNlbGY7DQorICAgIH0NCisNCisvLyBEZXN0cnVjdG9yDQorQ0h0dHBDYWNoZU9i
c2VydmVyOjp+Q0h0dHBDYWNoZU9ic2VydmVyKCkNCisgICAgew0KKyAgICBDYW5jZWwoKTsNCisg
ICAgZGVsZXRlIGlGaWxlTmFtZTsNCisgICAgaUZzU2Vzc2lvbi5DbG9zZSgpOw0KKyAgICB9DQor
DQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBDSHR0cENhY2hlT2JzZXJ2ZXI6OlJ1bkwN
CisvLw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8NCit2b2lkIENIdHRwQ2FjaGVPYnNl
cnZlcjo6UnVuTCgpDQorICAgIHsNCisgICAgaUh0dHBDYWNoZUhhbmRsZXItPlVwZGF0ZUxvb2t1
cFRhYmxlKCk7DQorICAgIH0NCisNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRw
Q2FjaGVPYnNlcnZlcjo6UnVuRXJyb3INCisvLw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQor
Ly8NCitUSW50IENIdHRwQ2FjaGVPYnNlcnZlcjo6UnVuRXJyb3IoVEludCAvKmFFcnJvciovKQ0K
KyAgICB7DQorICAgIHJldHVybiBLRXJyTm9uZTsNCisgICAgfQ0KKw0KKy8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tDQorLy8gQ0h0dHBDYWNoZU9ic2VydmVyOjpEb0NhbmNlbA0KKy8vDQorLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0NCisvLw0KK3ZvaWQgQ0h0dHBDYWNoZU9ic2VydmVyOjpEb0NhbmNl
bCgpDQorICAgIHsNCisgICAgaUZzU2Vzc2lvbi5Ob3RpZnlDaGFuZ2VDYW5jZWwoaVN0YXR1cyk7
DQorICAgIH0NCisNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRwQ2FjaGVPYnNl
cnZlcjo6U3RhcnRPYnNlcnZlckwNCisvLw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8N
Cit2b2lkIENIdHRwQ2FjaGVPYnNlcnZlcjo6U3RhcnRPYnNlcnZlckwoKQ0KKyAgICB7DQorICAg
IGlmICghSXNBY3RpdmUoKSkNCisgICAgICAgIHsNCisgICAgICAgIGlGc1Nlc3Npb24uTm90aWZ5
Q2hhbmdlKEVOb3RpZnlXcml0ZSwgaVN0YXR1cywgKmlGaWxlTmFtZSk7DQorICAgICAgICBTZXRB
Y3RpdmUoKTsNCisgICAgICAgIH0NCisgICAgfQ0KKw0KKw0KKy8vICBFbmQgb2YgRmlsZQ0KSW5k
ZXg6IFdlYktpdC9ncm91cC9Ccm93c2VyQ2FjaGUubW1wDQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0
L2dyb3VwL0Jyb3dzZXJDYWNoZS5tbXAJKHJldmlzaW9uIDE4MjIxKQ0KKysrIFdlYktpdC9ncm91
cC9Ccm93c2VyQ2FjaGUubW1wCSh3b3JraW5nIGNvcHkpDQpAQCAtNjEsNiArNjEsNyBAQCBTT1VS
Q0UgICAgICAgIEh0dHBDYWNoZU1hbmFnZXIuY3BwDQogU09VUkNFICAgICAgICBIdHRwQ2FjaGVF
bnRyeS5jcHANCiBTT1VSQ0UgICAgICAgIEh0dHBDYWNoZUV2aWN0aW9uSGFuZGxlci5jcHANCiBT
T1VSQ0UgICAgICAgIEh0dHBDYWNoZUhhbmRsZXIuY3BwDQorU09VUkNFICAgICAgICBIdHRwQ2Fj
aGVPYnNlcnZlci5jcHANCiBTT1VSQ0UgICAgICAgIEh0dHBDYWNoZUxvb2t1cFRhYmxlLmNwcA0K
IFNPVVJDRSAgICAgICAgSHR0cENhY2hlU3RyZWFtSGFuZGxlci5jcHANCiBTT1VSQ0UgICAgICAg
IEh0dHBDYWNoZVV0aWwuY3BwDQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11860</attachid>
            <date>2006-12-15 07:06:30 -0800</date>
            <delta_ts>2006-12-15 13:54:40 -0800</delta_ts>
            <desc>3.1 fix</desc>
            <filename>MyBrilliantWork.patch</filename>
            <type>text/plain</type>
            <size>36211</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxODIyNikNCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpDQpA
QCAtMSwzICsxLDQxIEBADQorMjAwNi0xMi0xNCAgeWFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lh
LmNvbT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKyAgICAgICAg
REVTQzogQnVnIDExODM0OiBUTFVVLTZWSlFYMyA6IENhY2hlIGNhbm5vdCBzdXBwb3J0IG1vcmUg
dGhhbiBvbmUgYXBwbGljYXRpb24gc2ltdWx0YW5lb3VzbHkNCisgICAgICAgIGh0dHA6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODM0DQorDQorICAgICAgICAqIENoYW5nZUxv
ZzoNCisgICAgICAgICogUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlRW50cnkuaDoN
CisgICAgICAgICogUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlSGFuZGxlci5oOg0K
KyAgICAgICAgKiBSZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVMb29rdXBUYWJsZS5o
Og0KKyAgICAgICAgKiBSZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVPYnNlcnZlci5o
OiBBZGRlZC4NCisgICAgICAgIChOT05TSEFSQUJMRV9DTEFTUyk6DQorICAgICAgICAqIFJlc291
cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZUVudHJ5LmNwcDoNCisgICAgICAgIChDSHR0cENh
Y2hlRW50cnk6On5DSHR0cENhY2hlRW50cnkpOg0KKyAgICAgICAgKENIdHRwQ2FjaGVFbnRyeTo6
U2V0U2l6ZSk6DQorICAgICAgICAoQ0h0dHBDYWNoZUVudHJ5OjpJbnRlcm5hbGl6ZSk6DQorICAg
ICAgICAoQ0h0dHBDYWNoZUVudHJ5OjpFeHRlcm5hbGl6ZSk6DQorICAgICAgICAoQ0h0dHBDYWNo
ZUVudHJ5OjpBY2Nlc3NlZCk6DQorICAgICAgICAqIFJlc291cmNlTG9hZGVyL0NhY2hlU3JjL0h0
dHBDYWNoZUhhbmRsZXIuY3BwOg0KKyAgICAgICAgKENIdHRwQ2FjaGVIYW5kbGVyOjpDb25zdHJ1
Y3RMKToNCisgICAgICAgIChDSHR0cENhY2hlSGFuZGxlcjo6fkNIdHRwQ2FjaGVIYW5kbGVyKToN
CisgICAgICAgIChDSHR0cENhY2hlSGFuZGxlcjo6T3Blbkxvb2t1cFRhYmxlTCk6DQorICAgICAg
ICAoQ0h0dHBDYWNoZUhhbmRsZXI6OlNhdmVMb29rdXBUYWJsZUwpOg0KKyAgICAgICAgKENIdHRw
Q2FjaGVIYW5kbGVyOjpEb0JhY2tncm91bmRTYXZlKToNCisgICAgICAgIChDSHR0cENhY2hlSGFu
ZGxlcjo6VXBkYXRlTG9va3VwVGFibGUpOg0KKyAgICAgICAgKENIdHRwQ2FjaGVIYW5kbGVyOjpV
cGRhdGVMb29rdXBUYWJsZUwpOg0KKyAgICAgICAgKiBSZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9I
dHRwQ2FjaGVMb29rdXBUYWJsZS5jcHA6DQorICAgICAgICAqIFJlc291cmNlTG9hZGVyL0NhY2hl
U3JjL0h0dHBDYWNoZU9ic2VydmVyLmNwcDogQWRkZWQuDQorICAgICAgICAoQ0h0dHBDYWNoZU9i
c2VydmVyOjpDSHR0cENhY2hlT2JzZXJ2ZXIpOg0KKyAgICAgICAgKENIdHRwQ2FjaGVPYnNlcnZl
cjo6Q29uc3RydWN0TCk6DQorICAgICAgICAoQ0h0dHBDYWNoZU9ic2VydmVyOjpOZXdMKToNCisg
ICAgICAgIChDSHR0cENhY2hlT2JzZXJ2ZXI6On5DSHR0cENhY2hlT2JzZXJ2ZXIpOg0KKyAgICAg
ICAgKENIdHRwQ2FjaGVPYnNlcnZlcjo6UnVuTCk6DQorICAgICAgICAoQ0h0dHBDYWNoZU9ic2Vy
dmVyOjpSdW5FcnJvcik6DQorICAgICAgICAoQ0h0dHBDYWNoZU9ic2VydmVyOjpEb0NhbmNlbCk6
DQorICAgICAgICAoQ0h0dHBDYWNoZU9ic2VydmVyOjpTdGFydE9ic2VydmVyTCk6DQorICAgICAg
ICAqIGdyb3VwL0Jyb3dzZXJDYWNoZS5tbXA6DQorDQogMjAwNi0xMi0xMSAgc2FyZWVuICA8c2h5
YW0uc2FyZWVuQG5va2lhLmNvbT4NCiANCiAgICAgICAgIFJldmlld2VkIFNhY2hpbiBQYWRtYS4N
CkluZGV4OiBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlRW50cnkuaA0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQ0KLS0tIFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVF
bnRyeS5oCShyZXZpc2lvbiAxODIyMSkNCisrKyBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVJ
bmMvSHR0cENhY2hlRW50cnkuaAkod29ya2luZyBjb3B5KQ0KQEAgLTksOSArOSw5IEBADQogKiAg
ICBDb3B5cmlnaHQgKGMpIDIwMDYsIE5va2lhIENvcnBvcmF0aW9uDQogKiAgICBBbGwgcmlnaHRz
IHJlc2VydmVkLg0KICogIA0KLSogIAlSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCi0qICAJbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQotKiAgCWFy
ZSBtZXQ6DQorKiAgIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dA0KKyogICBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMNCisqICAgYXJlIG1ldDoNCiAq
ICANCiAqICAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodA0KICogICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCkBAIC0yMywxOCArMjMsMTggQEAN
CiAqICAgICAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQNCiAqICAgICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uDQogKiAgDQotKiAgCVRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMN
Ci0qICAJIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QNCi0qICAJTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SDQotKiAgCUEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUDQotKiAg
CU9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLA0KLSogIAlTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UDQotKiAgCUxJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLA0KLSogIAlEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkNCi0qICAJVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVA0KLSogIAkoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRQ0KLSogIAlVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIDQot
KiAgCURBTUFHRS4NCisqICAgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUw0KKyogICAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVA0KKyogICBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1INCisqICAgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQNCisqICAgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsDQorKiAgIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QN
CisqICAgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsDQorKiAgIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQ0KKyogICBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUDQor
KiAgIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFDQorKiAgIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gNCisqICAgREFNQUdFLg0KICogIA0KICogICAgUGxl
YXNlIHNlZSBmaWxlIHBhdGVudGxpY2Vuc2UudHh0IGZvciBmdXJ0aGVyIGdyYW50cy4NCiAqID09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KQEAgLTIzNyw2ICsyMzcsMTQgQEAgY2xhc3MgQ0h0dHBDYWNo
ZUVudHJ5IDogcHVibGljIENCYXNlDQogICAgICAgICAqIEByZXR1cm4gDQogICAgICAgICAqLw0K
ICAgICAgICAgVEludCBFeHRlcm5hbGl6ZSggUkZpbGVXcml0ZVN0cmVhbSYgYVdyaXRlU3RyZWFt
ICk7DQorDQorICAgICAgICAvKioNCisgICAgICAgICogDQorICAgICAgICAqIEBzaW5jZSAzLjEN
CisgICAgICAgICogQHBhcmFtIA0KKyAgICAgICAgKiBAcmV0dXJuIA0KKyAgICAgICAgKi8NCisg
ICAgICAgIHZvaWQgQWNjZXNzZWQoVEludDY0IGFMYXN0QWNjZXNzZWQsIFRVaW50MTYgYVJlZik7
DQogDQogICAgIHB1YmxpYyA6IA0KIA0KSW5kZXg6IFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNo
ZUluYy9IdHRwQ2FjaGVIYW5kbGVyLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvUmVzb3VyY2VM
b2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlSGFuZGxlci5oCShyZXZpc2lvbiAxODIyMSkNCisrKyBX
ZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlSGFuZGxlci5oCSh3b3JraW5n
IGNvcHkpDQpAQCAtNjgsNiArNjgsNyBAQCBjbGFzcyBNSFRUUERhdGFTdXBwbGllcjsNCiBjbGFz
cyBDSWRsZTsNCiBjbGFzcyBDSHR0cENhY2hlRXZpY3Rpb25IYW5kbGVyOw0KIGNsYXNzIFRIdHRw
Q2FjaGVFbnRyeTsNCitjbGFzcyBDSHR0cENhY2hlT2JzZXJ2ZXI7DQogDQogLy8gQ0xBU1MgREVD
TEFSQVRJT04NCiANCkBAIC0yMDMsNiArMjA0LDE1IEBAIGNsYXNzIENIdHRwQ2FjaGVIYW5kbGVy
IDogcHVibGljIENCYXNlDQogICAgICAgICAqLw0KICAgICAgICAgdm9pZCBBZGp1c3RSZXNwb25z
ZVRpbWUoUkhUVFBUcmFuc2FjdGlvbiYgYVRyYW5zKTsNCiANCisgICAgICAgIC8qKg0KKyAgICAg
ICAgKiBTb21lIG90aGVyIGFwcGxpY2F0aW9uIG1vZGlmaWVkIHRoZSBjYWNoZSBhbmQgdGhlIGxv
b2t1cCB0YWJsZSBuZWVkcyB0byBiZSB1cGRhdGVkDQorICAgICAgICAqDQorICAgICAgICAqIEBz
aW5jZSAzLjENCisgICAgICAgICogQHBhcmFtDQorICAgICAgICAqIEByZXR1cm4NCisgICAgICAg
ICovDQorICAgICAgICB2b2lkIFVwZGF0ZUxvb2t1cFRhYmxlKCk7DQorDQogICAgIHByaXZhdGU6
DQogDQogICAgICAgICAvKioNCkBAIC0yMjIsNiArMjMyLDE1IEBAIGNsYXNzIENIdHRwQ2FjaGVI
YW5kbGVyIDogcHVibGljIENCYXNlDQogICAgIHByaXZhdGU6IC8vDQogDQogICAgICAgICAvKioN
CisgICAgICAgICogU29tZSBvdGhlciBhcHBsaWNhdGlvbiBtb2RpZmllZCB0aGUgY2FjaGUgYW5k
IHRoZSBsb29rdXAgdGFibGUgbmVlZHMgdG8gYmUgdXBkYXRlZA0KKyAgICAgICAgKg0KKyAgICAg
ICAgKiBAc2luY2UgMy4xDQorICAgICAgICAqIEBwYXJhbQ0KKyAgICAgICAgKiBAcmV0dXJuDQor
ICAgICAgICAqLw0KKyAgICAgICAgdm9pZCBVcGRhdGVMb29rdXBUYWJsZUwoKTsNCisNCisgICAg
ICAgIC8qKg0KICAgICAgICAgKg0KICAgICAgICAgKiBAc2luY2UgMy4xDQogICAgICAgICAqIEBw
YXJhbQ0KQEAgLTI5MSw2ICszMTAsMTUgQEAgY2xhc3MgQ0h0dHBDYWNoZUhhbmRsZXIgOiBwdWJs
aWMgQ0Jhc2UNCiAgICAgICAgICogQHBhcmFtDQogICAgICAgICAqIEByZXR1cm4NCiAgICAgICAg
ICovDQorICAgICAgICB2b2lkIE9wZW5Mb29rdXBUYWJsZUwoQ0h0dHBDYWNoZUxvb2t1cFRhYmxl
KiBhTG9va3VwVGFibGUpOw0KKw0KKyAgICAgICAgLyoqDQorICAgICAgICAqDQorICAgICAgICAq
IEBzaW5jZSAzLjENCisgICAgICAgICogQHBhcmFtDQorICAgICAgICAqIEBwYXJhbQ0KKyAgICAg
ICAgKiBAcmV0dXJuDQorICAgICAgICAqLw0KICAgICAgICAgdm9pZCBIYW5kbGVDb3JydXB0RW50
cnkoIENIdHRwQ2FjaGVFbnRyeSYgYVN0cmF5RW50cnksIFRCb29sIGFVcGRhdGUgPSBFVHJ1ZSAp
Ow0KIA0KICAgICAgICAgLyoqDQpAQCAtMzQ1LDYgKzM3Myw4IEBAIGNsYXNzIENIdHRwQ2FjaGVI
YW5kbGVyIDogcHVibGljIENCYXNlDQogICAgICAgICBDSWRsZSogICAgICAgICAgICAgICAgICAg
ICAgICAgIGlJZGxlOyAgICAgIC8vIG93bmVkDQogICAgICAgICAvLyBuYW1lIG9mIHRoZSBpbmRl
eCBmaWxlDQogICAgICAgICBIQnVmQyogICAgICAgICAgICAgICAgICAgICAgICAgIGlJbmRleEZp
bGU7IC8vIG93bmVkDQorICAgICAgICAvLyBPYnNlcnZpbmcgY2hhbmdlcyBpbiBjYWNoZQ0KKyAg
ICAgICAgQ0h0dHBDYWNoZU9ic2VydmVyKiBpSHR0cENhY2hlT2JzZXJ2ZXI7IC8vIG93bmVkDQog
ICAgIH07DQogDQogI2VuZGlmICAgICAgLy8gQ0hUVFBDQUNIRUhBTkRMRVJfSA0KSW5kZXg6IFdl
YktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVMb29rdXBUYWJsZS5oDQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09DQotLS0gV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNoZUxvb2t1
cFRhYmxlLmgJKHJldmlzaW9uIDE4MjIxKQ0KKysrIFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNo
ZUluYy9IdHRwQ2FjaGVMb29rdXBUYWJsZS5oCSh3b3JraW5nIGNvcHkpDQpAQCAtOSw5ICs5LDkg
QEANCiAqICAgIENvcHlyaWdodCAoYykgMjAwNiwgTm9raWEgQ29ycG9yYXRpb24NCiAqICAgIEFs
bCByaWdodHMgcmVzZXJ2ZWQuDQogKiAgDQotKiAgCVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KLSogIAltb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMN
Ci0qICAJYXJlIG1ldDoNCisqICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQorKiAgIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucw0KKyogICBhcmUg
bWV0Og0KICogIA0KICogICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQogKiAgICAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KQEAgLTIzLDE4ICsy
MywxOCBAQA0KICogICAgICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZA0KICogICAgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4NCiAqICANCi0qICAJVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUw0KLSogIAkiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVA0KLSogIAlMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1INCi0qICAJQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQNCi0qICAJT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsDQotKiAgCVNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QNCi0qICAJTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsDQot
KiAgCURBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQ0KLSogIAlUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUDQotKiAgCShJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFDQotKiAgCVVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0gNCi0qICAJREFNQUdFLg0KKyogICBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTDQorKiAgICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UDQorKiAg
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUg0KKyogICBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVA0KKyogICBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwNCisqICAg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVA0KKyogICBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwNCisqICAgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZDQorKiAgIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQNCisqICAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUNCisqICAgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSA0KKyogICBEQU1BR0UuDQogKiAgDQog
KiAgICBQbGVhc2Ugc2VlIGZpbGUgcGF0ZW50bGljZW5zZS50eHQgZm9yIGZ1cnRoZXIgZ3JhbnRz
Lg0KICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtNDUsNiArNDUsNyBAQA0KIA0KIC8vICBJ
TkNMVURFUw0KICNpbmNsdWRlIDxlMzJiYXNlLmg+DQorI2luY2x1ZGUgPHMzMmZpbGUuaD4NCiAN
CiAvLyBDT05TVEFOVFMNCiANCkBAIC05NCw3ICs5NSw3IEBAIGNsYXNzIENIdHRwQ2FjaGVMb29r
dXBUYWJsZSA6IHB1YmxpYyBDQmENCiAgICAgICAgICogQHBhcmFtDQogICAgICAgICAqIEByZXR1
cm4NCiAgICAgICAgICovDQotCQlDSHR0cENhY2hlRW50cnkqIEluc2VydEwoIGNvbnN0IFREZXND
OCYgYVVybCApOw0KKyAgICBDSHR0cENhY2hlRW50cnkqIEluc2VydEwoIGNvbnN0IFREZXNDOCYg
YVVybCApOw0KIA0KICAgICAgICAgLyoqDQogICAgICAgICAqDQpAQCAtMTAyLDcgKzEwMyw3IEBA
IGNsYXNzIENIdHRwQ2FjaGVMb29rdXBUYWJsZSA6IHB1YmxpYyBDQmENCiAgICAgICAgICogQHBh
cmFtDQogICAgICAgICAqIEByZXR1cm4NCiAgICAgICAgICovDQotCQlDSHR0cENhY2hlRW50cnkq
IEZpbmQoIGNvbnN0IFREZXNDOCYgYVVybCApOw0KKyAgICBDSHR0cENhY2hlRW50cnkqIEZpbmQo
IGNvbnN0IFREZXNDOCYgYVVybCApOw0KIA0KICAgICAgICAgLyoqDQogICAgICAgICAqDQpAQCAt
MTEwLDcgKzExMSw3IEBAIGNsYXNzIENIdHRwQ2FjaGVMb29rdXBUYWJsZSA6IHB1YmxpYyBDQmEN
CiAgICAgICAgICogQHBhcmFtDQogICAgICAgICAqIEByZXR1cm4NCiAgICAgICAgICovDQotCQlU
SW50IFJlbW92ZSggY29uc3QgVERlc0M4JiBhVXJsICk7DQorICAgIFRJbnQgUmVtb3ZlKCBjb25z
dCBURGVzQzgmIGFVcmwgKTsNCiANCiAgICAgICAgIC8qKg0KICAgICAgICAgKg0KQEAgLTExOCw3
ICsxMTksNyBAQCBjbGFzcyBDSHR0cENhY2hlTG9va3VwVGFibGUgOiBwdWJsaWMgQ0JhDQogICAg
ICAgICAqIEBwYXJhbQ0KICAgICAgICAgKiBAcmV0dXJuDQogICAgICAgICAqLw0KLQkJVEludCBS
ZW1vdmVBbGwoKTsNCisgICAgVEludCBSZW1vdmVBbGwoKTsNCiANCiAgICAgICAgIC8qKg0KICAg
ICAgICAgKg0KQEAgLTE1Miw2ICsxNTMsMTQgQEAgY2xhc3MgQ0h0dHBDYWNoZUxvb2t1cFRhYmxl
IDogcHVibGljIENCYQ0KICAgICAgICAgKi8NCiAgICAgICAgIHZvaWQgRXh0ZXJuYWxpemVMKCBS
RmlsZVdyaXRlU3RyZWFtJiBhV3JpdGVTdHJlYW0gKTsNCiANCisgICAgICAgIC8qKg0KKyAgICAg
ICAgKg0KKyAgICAgICAgKiBAc2luY2UgMy4xDQorICAgICAgICAqIEBwYXJhbQ0KKyAgICAgICAg
KiBAcmV0dXJuDQorICAgICAgICAqLw0KKyAgICB2b2lkIE1lcmdlTCggQ0h0dHBDYWNoZUxvb2t1
cFRhYmxlKiBhSHR0cENhY2hlTG9va3VwVGFibGUsIFJGcyBhUmZzICApOw0KKw0KICAgICBwcml2
YXRlOg0KIA0KICAgICAgICAgLyoqDQpAQCAtMjYxLDcgKzI3MCw3IEBAIGNsYXNzIENIdHRwQ2Fj
aGVMb29rdXBUYWJsZSA6IHB1YmxpYyBDQmENCiAgICAgcHJpdmF0ZTogICAgLy8gRGF0YQ0KIA0K
ICAgICAgICAgLy8gaGFzaCB0YWJsZSBmb3IgY2FjaGUgZW50cmllcw0KLQkJQ0FycmF5UHRyRmxh
dDxDSHR0cENhY2hlRW50cnk+KiBpRW50cmllczsNCisgICAgQ0FycmF5UHRyRmxhdDxDSHR0cENh
Y2hlRW50cnk+KiBpRW50cmllczsNCiAgICAgICAgIC8vIG51bWJlciBvZiBlbnRyaWVzIGluIHRo
ZSBoYXNodGFibGUNCiAgICAgICAgIFRJbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgaUNv
dW50Ow0KICAgICAgICAgLy8NCkluZGV4OiBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMv
SHR0cENhY2hlT2JzZXJ2ZXIuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9SZXNvdXJjZUxvYWRl
ci9DYWNoZUluYy9IdHRwQ2FjaGVPYnNlcnZlci5oCShyZXZpc2lvbiAwKQ0KKysrIFdlYktpdC9S
ZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVPYnNlcnZlci5oCShyZXZpc2lvbiAwKQ0K
QEAgLTAsMCArMSwxMjEgQEANCisvKg0KKyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorKiAgTmFt
ZSAgICAgICAgOiBIdHRwQ2FjaGVIYW5kbGVyVXBkYXRlci5oDQorKiAgUGFydCBvZiAgICAgOiBX
ZWJLaXQgLyBSZXNvdXJjZUxvYWRlcg0KKyogIEludGVyZmFjZSAgIDoNCisqICBEZXNjcmlwdGlv
biA6IERlZmluaXRpb24gb2YgQ0h0dHBDYWNoZU9ic2VydmVyDQorKiAgVmVyc2lvbiAgICAgOiAl
VmVyc2lvbiUNCisqDQorKiAgICBDb3B5cmlnaHQgKGMpIDIwMDYsIE5va2lhIENvcnBvcmF0aW9u
DQorKiAgICBBbGwgcmlnaHRzIHJlc2VydmVkLg0KKyoNCisqICAgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQorKiAgIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucw0KKyogICBhcmUgbWV0Og0KKyoNCisqICAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodA0KKyogICAgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4NCisqICAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodA0KKyogICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbg0KKyogICAgICAgIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUNCisq
ICAgICAgICBkaXN0cmlidXRpb24uDQorKiAgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUg
Tm9raWEgQ29ycG9yYXRpb24gbm9yIHRoZSBuYW1lcyBvZiBpdHMNCisqICAgICAgICBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQN
CisqICAgICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uDQorKg0KKyogICBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTDQorKiAgICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UDQorKiAg
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUg0KKyogICBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVA0KKyogICBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwNCisqICAg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVA0KKyogICBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwNCisqICAgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZDQorKiAgIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQNCisqICAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUNCisqICAgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSA0KKyogICBEQU1BR0UuDQorKg0KKyog
ICAgUGxlYXNlIHNlZSBmaWxlIHBhdGVudGxpY2Vuc2UudHh0IGZvciBmdXJ0aGVyIGdyYW50cy4N
CisqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyovDQorDQorI2lmbmRlZiBDSFRUUENBQ0hFT0JT
RVJWRVJfSA0KKyNkZWZpbmUgQ0hUVFBDQUNIRU9CU0VSVkVSX0gNCisNCisvLyAgSU5DTFVERVMN
CisjaW5jbHVkZSA8ZTMyYmFzZS5oPg0KKyNpbmNsdWRlIDxmMzJmaWxlLmg+DQorDQorLy8gQ09O
U1RBTlRTDQorDQorLy8gTUFDUk9TDQorDQorLy8gREFUQSBUWVBFUw0KKw0KKy8vIEZVTkNUSU9O
IFBST1RPVFlQRVMNCisNCisvLyBGT1JXQVJEIERFQ0xBUkFUSU9OUw0KK2NsYXNzIENIdHRwQ2Fj
aGVIYW5kbGVyOw0KKw0KKy8vIENMQVNTIERFQ0xBUkFUSU9ODQorDQorLyoqDQorKg0KKyogIEBs
aWINCisqICBAc2luY2UgMy4xDQorKi8NCitOT05TSEFSQUJMRV9DTEFTUyhDSHR0cENhY2hlT2Jz
ZXJ2ZXIpIDogcHVibGljIENBY3RpdmUNCisgICAgew0KKyAgICBwdWJsaWM6ICAvLyBDb25zdHJ1
Y3RvcnMgYW5kIGRlc3RydWN0b3INCisNCisgICAgICAgIC8qKg0KKyAgICAgICAgKiBUd28tcGhh
c2VkIGNvbnN0cnVjdG9yLg0KKyAgICAgICAgKiBAc2luY2UgMy4xDQorICAgICAgICAqIEBwYXJh
bQ0KKyAgICAgICAgKiBAcGFyYW0NCisgICAgICAgICogQHJldHVybiBDYWNoZUhhbmRsZXIgb2Jq
ZWN0Lg0KKyAgICAgICAgKi8NCisgICAgICAgIHN0YXRpYyBDSHR0cENhY2hlT2JzZXJ2ZXIqIE5l
d0woIGNvbnN0IEhCdWZDKiBhRGlyZWN0b3J5LCBjb25zdCBIQnVmQyogYUluZGV4RmlsZSwNCisg
ICAgICAgICAgICBDSHR0cENhY2hlSGFuZGxlciogYUh0dHBDYWNoZUhhbmRsZXIpOw0KKw0KKyAg
ICAgICAgLyoqDQorICAgICAgICAqIERlc3RydWN0b3IuDQorICAgICAgICAqLw0KKyAgICAgICAg
dmlydHVhbCB+Q0h0dHBDYWNoZU9ic2VydmVyKCk7DQorDQorICAgIHB1YmxpYzogLy8gbmV3IGZ1
bmN0aW9ucw0KKyAgICAgICAgdm9pZCBTdGFydE9ic2VydmVyTCgpOw0KKw0KKyAgICBwdWJsaWM6
IC8vIGZyb20gYmFzZSBjbGFzcyBDQWN0aXZlDQorICAgICAgICB2b2lkIFJ1bkwoKTsNCisgICAg
ICAgIFRJbnQgUnVuRXJyb3IoVEludCBhRXJyb3IpOw0KKyAgICAgICAgdm9pZCBEb0NhbmNlbCgp
Ow0KKw0KKyAgICBwcml2YXRlOg0KKw0KKyAgICAgICAgLyoqDQorICAgICAgICAqIENvbnN0cnVj
dC4NCisgICAgICAgICogQHNpbmNlIDMuMQ0KKyAgICAgICAgKiBAcGFyYW0NCisgICAgICAgICog
QHBhcmFtDQorICAgICAgICAqIEByZXR1cm4gQ2FjaGVPYnNlcnZlciBvYmplY3QuDQorICAgICAg
ICAqLw0KKyAgICAgICAgQ0h0dHBDYWNoZU9ic2VydmVyKENIdHRwQ2FjaGVIYW5kbGVyKiBhSHR0
cENhY2hlSGFuZGxlcik7DQorDQorICAgICAgICAvKioNCisgICAgICAgICogQnkgZGVmYXVsdCBT
eW1iaWFuIDJuZCBwaGFzZSBjb25zdHJ1Y3RvciBpcyBwcml2YXRlLg0KKyAgICAgICAgKi8NCisg
ICAgICAgIHZvaWQgQ29uc3RydWN0TChjb25zdCBIQnVmQyogYURpcmVjdG9yeSwgY29uc3QgSEJ1
ZkMqIGFJbmRleEZpbGUpOw0KKw0KKyAgICBwcml2YXRlOiAgICAvLyBEYXRhDQorDQorICAgICAg
ICAvLyBuYW1lIGFuZCBwYXRoIG9mIGluZGV4IGZpbGUNCisgICAgICAgIEhCdWZDKiBpRmlsZU5h
bWU7IC8vIG93bmVkDQorICAgICAgICBSRnMgaUZzU2Vzc2lvbjsgLy8gbm90IG93bmVkDQorICAg
ICAgICBDSHR0cENhY2hlSGFuZGxlciogaUh0dHBDYWNoZUhhbmRsZXI7DQorICAgIH07DQorDQor
I2VuZGlmICAgICAgLy8gQ0hUVFBDQUNIRU9CU0VSVkVSX0gNCisNCisvLyBFbmQgb2YgRmlsZQ0K
SW5kZXg6IFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVFbnRyeS5jcHAN
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0NCi0tLSBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hl
RW50cnkuY3BwCShyZXZpc2lvbiAxODIyMSkNCisrKyBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2Fj
aGVTcmMvSHR0cENhY2hlRW50cnkuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtOSw5ICs5LDkgQEAN
CiAqICAgIENvcHlyaWdodCAoYykgMjAwNiwgTm9raWEgQ29ycG9yYXRpb24NCiAqICAgIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuDQogKiAgDQotKiAgCVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KLSogIAltb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMNCi0q
ICAJYXJlIG1ldDoNCisqICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQorKiAgIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucw0KKyogICBhcmUgbWV0
Og0KICogIA0KICogICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQogKiAgICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KQEAgLTIzLDE4ICsyMywx
OCBAQA0KICogICAgICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZA0KICogICAgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4NCiAqICANCi0qICAJVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUw0KLSogIAkiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVA0KLSogIAlMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1INCi0qICAJQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQN
Ci0qICAJT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsDQotKiAgCVNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QNCi0qICAJTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsDQotKiAg
CURBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQ0KLSogIAlUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUDQotKiAgCShJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFDQotKiAgCVVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0gNCi0qICAJREFNQUdFLg0KKyogICBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTDQorKiAgICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UDQorKiAgIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUg0KKyogICBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVA0KKyogICBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwNCisqICAgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVA0KKyogICBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwNCisqICAgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZDQorKiAgIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQNCisqICAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUNCisqICAgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSA0KKyogICBEQU1BR0UuDQogKiAgDQogKiAg
ICBQbGVhc2Ugc2VlIGZpbGUgcGF0ZW50bGljZW5zZS50eHQgZm9yIGZ1cnRoZXIgZ3JhbnRzLg0K
ICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMTI4LDEwICsxMjgsMTAgQEAgQ0h0dHBDYWNo
ZUVudHJ5KiBDSHR0cENhY2hlRW50cnk6Ok5ld0xDKA0KIC8vIERlc3RydWN0b3INCiBDSHR0cENh
Y2hlRW50cnk6On5DSHR0cENhY2hlRW50cnkoKQ0KICAgICB7DQotCWlmKCBpVmljdGltICkNCi0J
CXsNCi0JCWlFdmljdGlvbkhhbmRsZXItPlJlbW92ZSggKnRoaXMgKTsNCi0JCX0NCisgIGlmKCBp
VmljdGltICkNCisgICAgew0KKyAgICBpRXZpY3Rpb25IYW5kbGVyLT5SZW1vdmUoICp0aGlzICk7
DQorICAgIH0NCiAgICAgZGVsZXRlIGlVcmw7DQogICAgIGRlbGV0ZSBpRmlsZU5hbWU7DQogICAg
IH0NCkBAIC0yMDcsMTEgKzIwNywxMSBAQCB2b2lkIENIdHRwQ2FjaGVFbnRyeTo6U2V0U2l6ZSgN
CiAgICAgICAgIC8vIGJvZHkgcmVtb3ZhbA0KICAgICAgICAgLy8gcmVtb3ZlIGl0c2VsZiBmcm9t
IHRoZSBldmljdGlvbiB0YWJsZS4NCiAgICAgICAgIC8vIHRoaXMgaXMgbm8gbG9uZ2VyIGEgdmlj
dGltDQotCSAgICBpZiggaVZpY3RpbSApDQotCQkgICAgew0KLQkJICAgIGlFdmljdGlvbkhhbmRs
ZXItPlJlbW92ZSggKnRoaXMgKTsNCisgICAgICBpZiggaVZpY3RpbSApDQorICAgICAgICB7DQor
ICAgICAgICBpRXZpY3Rpb25IYW5kbGVyLT5SZW1vdmUoICp0aGlzICk7DQogICAgICAgICAgICAg
aVZpY3RpbSA9IEVGYWxzZTsNCi0JCSAgICB9DQorICAgICAgICB9DQogICAgICAgICB9DQogICAg
IGlTaXplID0gYVNpemU7DQogICAgIH0NCkBAIC0yNDIsNiArMjQyLDcgQEAgVEludCBDSHR0cENh
Y2hlRW50cnk6OkludGVybmFsaXplKA0KICAgICAvLyB1cmwgbGVuZ3RoDQogICAgIGxlbiA9IGFS
ZWFkU3RyZWFtLlJlYWRJbnQzMkwoKTsNCiAgICAgZGVsZXRlIGlVcmw7DQorICAgIGlVcmw9TlVM
TDsNCiAgICAgaVVybCA9IEhCdWZDODo6TmV3TCggbGVuICk7DQogICAgIFRQdHI4IHB0cjgoIGlV
cmwtPkRlcygpICk7DQogICAgIC8vIHVybA0KQEAgLTMwMSw2ICszMDIsMjggQEAgVEludCBDSHR0
cENhY2hlRW50cnk6OkV4dGVybmFsaXplKA0KICAgICAvLyBwcm90ZWN0ZWQNCiAgICAgYVdyaXRl
U3RyZWFtLldyaXRlSW50MzJMKCBpUHJvdGVjdGVkICk7ICk7DQogICAgIHJldHVybiBlcnI7DQor
ICAgIH0NCisNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRwQ2FjaGVFbnRyeTo6
QWNjZXNzZWQNCisvLw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8NCit2b2lkIENIdHRw
Q2FjaGVFbnRyeTo6QWNjZXNzZWQoVEludDY0IGFMYXN0QWNjZXNzZWQsIFRVaW50MTYgYVJlZikN
CisgICAgew0KKyAgICBpTGFzdEFjY2Vzc2VkID0gYUxhc3RBY2Nlc3NlZDsNCisgICAgaVJlZiA9
IGFSZWY7DQorICAgIGlmKCBpVmljdGltICkNCisgICAgICAgIHsNCisgICAgICAgIGlFdmljdGlv
bkhhbmRsZXItPkFjY2Vzc2VkKCAqdGhpcyApOw0KKyAgICAgICAgfQ0KKyNpZmRlZiBfX0NBQ0hF
TE9HX18NCisgICAgX0xJVCggS0FjY2Vzc0Zvcm1hdCwgImVudHJ5IGFjY2Vzc2VkOiAlZCIgKTsN
CisgICAgVEJ1ZjwxMDA+IGJ1ZjsNCisgICAgYnVmLkZvcm1hdCggS0FjY2Vzc0Zvcm1hdCwgaVJl
ZiApOw0KKyAgICBIdHRwQ2FjaGVVdGlsOjpXcml0ZVVybFRvTG9nKCAwLCBidWYsIGlVcmwtPkRl
cygpICk7DQorI2VuZGlmIC8vIF9fQ0FDSEVMT0dfXw0KKw0KICAgICB9DQogDQogLy8gIEVuZCBv
ZiBGaWxlDQpJbmRleDogV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZUhh
bmRsZXIuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlU3Jj
L0h0dHBDYWNoZUhhbmRsZXIuY3BwCShyZXZpc2lvbiAxODIyMSkNCisrKyBXZWJLaXQvUmVzb3Vy
Y2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hlSGFuZGxlci5jcHAJKHdvcmtpbmcgY29weSkNCkBA
IC00OCw2ICs0OCw3IEBADQogI2luY2x1ZGUgIkh0dHBDYWNoZVN0cmVhbUhhbmRsZXIuaCINCiAj
aW5jbHVkZSAiSHR0cENhY2hlVXRpbC5oIg0KICNpbmNsdWRlICJIdHRwQ2FjaGVFdmljdGlvbkhh
bmRsZXIuaCINCisjaW5jbHVkZSAiSHR0cENhY2hlT2JzZXJ2ZXIuaCINCiAjaW5jbHVkZSA8aHR0
cFxSSFRUUFRyYW5zYWN0aW9uLmg+DQogI2luY2x1ZGUgPGh0dHBccmh0dHBzZXNzaW9uLmg+DQog
I2luY2x1ZGUgPGh0dHBccmh0dHBoZWFkZXJzLmg+DQpAQCAtMTE1LDYgKzExNiw5IEBAIHZvaWQg
Q0h0dHBDYWNoZUhhbmRsZXI6OkNvbnN0cnVjdEwoDQogICAgIE9wZW5Mb29rdXBUYWJsZUwoKTsN
CiAgICAgLy8NCiAgICAgaUlkbGUgPSBDSWRsZTo6TmV3TCggQ0FjdGl2ZTo6RVByaW9yaXR5SWRs
ZSApOw0KKyAgICAvLw0KKyAgICBpSHR0cENhY2hlT2JzZXJ2ZXIgPSBDSHR0cENhY2hlT2JzZXJ2
ZXI6Ok5ld0woaURpcmVjdG9yeSwgaUluZGV4RmlsZSwgdGhpcyk7DQorICAgIGlIdHRwQ2FjaGVP
YnNlcnZlci0+U3RhcnRPYnNlcnZlckwoKTsNCiAgICAgfQ0KIA0KIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tDQpAQCAtMTM5LDggKzE0MywxMyBAQCBDSHR0cENhY2hlSGFuZGxlciogQ0h0dHBDYWNo
ZUhhbmRsZXI6Ok5lDQogLy8gRGVzdHJ1Y3Rvcg0KIENIdHRwQ2FjaGVIYW5kbGVyOjp+Q0h0dHBD
YWNoZUhhbmRsZXIoKQ0KICAgICB7DQotICAgIC8vIHNhdmUgZW50cnkgdGFibGUNCi0gICAgVFJB
UF9JR05PUkUoIFNhdmVMb29rdXBUYWJsZUwoKSApOw0KKyAgICBpZiAoaUlkbGUtPklzQWN0aXZl
KCkpDQorICAgICAgICB7DQorICAgICAgICAvLyBzYXZlIGVudHJ5IHRhYmxlLCBidXQgb25seSBp
ZiBpdCB3YXMgbW9kaWZpZWQNCisgICAgICAgIFRSQVBfSUdOT1JFKCBTYXZlTG9va3VwVGFibGVM
KCkgKTsNCisgICAgICAgIH0NCisgICAgLy8NCisgICAgZGVsZXRlIGlIdHRwQ2FjaGVPYnNlcnZl
cjsNCiAgICAgLy8NCiAgICAgaWYgKGlFdmljdGlvbkhhbmRsZXIpDQogICAgICAgICB7DQpAQCAt
MTA2NCw2ICsxMDczLDE2IEBAIFRCb29sIENIdHRwQ2FjaGVIYW5kbGVyOjpIYW5kbGVSZXNwb25z
ZU4NCiAvLw0KIHZvaWQgQ0h0dHBDYWNoZUhhbmRsZXI6Ok9wZW5Mb29rdXBUYWJsZUwoKQ0KICAg
ICB7DQorICAgIE9wZW5Mb29rdXBUYWJsZUwoaUxvb2t1cFRhYmxlKTsNCisgICAgfQ0KKw0KKy8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ0h0dHBDYWNoZUhhbmRsZXI6Ok9wZW5Mb29rdXBU
YWJsZUwNCisvLw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8NCit2b2lkIENIdHRwQ2Fj
aGVIYW5kbGVyOjpPcGVuTG9va3VwVGFibGVMKENIdHRwQ2FjaGVMb29rdXBUYWJsZSogYUxvb2t1
cFRhYmxlKQ0KKyAgICB7DQogICAgIC8vIHJlYWQgZW50cmllcyBmcm9tIGluZGV4LmRhdA0KICAg
ICBSRmlsZVJlYWRTdHJlYW0gcmVhZFN0cmVhbTsNCiAgICAgUkZzIGZzOw0KQEAgLTEwODMsMTEg
KzExMDIsMjYgQEAgdm9pZCBDSHR0cENhY2hlSGFuZGxlcjo6T3Blbkxvb2t1cFRhYmxlTA0KICAg
ICBpZiggZXJyID09IEtFcnJOb25lICkNCiAgICAgICAgIHsNCiAgICAgICAgIGZzLlNldFNlc3Np
b25QYXRoKCBpRGlyZWN0b3J5LT5EZXMoKSApOw0KLQ0KLSAgICAgICAgaWYoIHJlYWRTdHJlYW0u
T3BlbiggZnMsIGlJbmRleEZpbGUtPkRlcygpLCBFRmlsZVJlYWQgKSA9PSBLRXJyTm9uZSApDQor
ICAgICAgICBUSW50IHJldCA9IEtFcnJOb25lOw0KKyAgICAgICAgVEludCB0cnlDb3VudCA9IDA7
DQorICAgICAgICBmb3IgKHRyeUNvdW50ID0gMDsgdHJ5Q291bnQgPCA1OyB0cnlDb3VudCsrKSAN
CisgICAgICAgICAgICB7DQorICAgICAgICAgICAgcmV0ID0gcmVhZFN0cmVhbS5PcGVuKCBmcywg
aUluZGV4RmlsZS0+RGVzKCksIEVGaWxlUmVhZCB8IEVGaWxlU2hhcmVBbnkgKTsNCisgICAgICAg
ICAgICBpZiAocmV0ID09IEtFcnJJblVzZSkNCisgICAgICAgICAgICAgICAgew0KKyAgICAgICAg
ICAgICAgICAvLyBXaGVuIHRoZSBjYWNoZSBpcyBmdWxsLCBpdCB0YWtlcyA2NSAtIDg1IG1pbGlz
ZWNvbmRzIHRvIHdyaXRlIHRoZSBpbmRleC4NCisgICAgICAgICAgICAgICAgLy8gU28gd2FpdCA1
MCBtaWxpc2Vjb25kcyBhbmQgdHJ5IGFnYWluDQorICAgICAgICAgICAgICAgIFVzZXI6OkFmdGVy
KDUwMDAwKTsNCisgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGVsc2UNCisgICAgICAg
ICAgICAgICAgew0KKyAgICAgICAgICAgICAgICBicmVhazsNCisgICAgICAgICAgICAgICAgfQ0K
KyAgICAgICAgICAgIH0NCisgICAgICAgIGlmKCByZXQgPT0gS0Vyck5vbmUgKQ0KICAgICAgICAg
ICAgIHsNCiAgICAgICAgICAgICBDbGVhbnVwQ2xvc2VQdXNoTCggcmVhZFN0cmVhbSApOw0KLSAg
ICAgICAgICAgIGlMb29rdXBUYWJsZS0+SW50ZXJuYWxpemVMKCByZWFkU3RyZWFtLCBpRGlyZWN0
b3J5LT5EZXMoKSApOw0KKyAgICAgICAgICAgIGFMb29rdXBUYWJsZS0+SW50ZXJuYWxpemVMKCBy
ZWFkU3RyZWFtLCBpRGlyZWN0b3J5LT5EZXMoKSApOw0KICAgICAgICAgICAgIENsZWFudXBTdGFj
azo6UG9wQW5kRGVzdHJveSgpOyAvLyByZWFkU3RyZWFtDQogICAgICAgICAgICAgfQ0KICAgICAg
ICAgfQ0KQEAgLTExMDcsMTAgKzExNDEsMjYgQEAgdm9pZCBDSHR0cENhY2hlSGFuZGxlcjo6U2F2
ZUxvb2t1cFRhYmxlTA0KICAgICBSRnMgZnM7DQogICAgIFVzZXI6OkxlYXZlSWZFcnJvciggZnMu
Q29ubmVjdCgpICk7DQogICAgIENsZWFudXBDbG9zZVB1c2hMKCBmcyApOw0KLQ0KICAgICBmcy5T
ZXRTZXNzaW9uUGF0aCggaURpcmVjdG9yeS0+RGVzKCkgKTsNCi0NCi0gICAgaWYoIHdyaXRlU3Ry
ZWFtLlJlcGxhY2UoIGZzLCBpSW5kZXhGaWxlLT5EZXMoKSwgRUZpbGVXcml0ZSApID09IEtFcnJO
b25lICkNCisgICAgLy8gRG9uJ3QgZ2V0IG5vdGlmaWVkIGFib3V0IG93biBjaGFuZ2VzDQorICAg
IGlIdHRwQ2FjaGVPYnNlcnZlci0+Q2FuY2VsKCk7DQorICAgIFRJbnQgcmV0ID0gS0Vyck5vbmU7
DQorICAgIFRJbnQgdHJ5Q291bnQgPSAwOw0KKyAgICBmb3IgKHRyeUNvdW50ID0gMDsgdHJ5Q291
bnQgPCA1OyB0cnlDb3VudCsrKSANCisgICAgICAgIHsNCisgICAgICAgIHJldCA9IHdyaXRlU3Ry
ZWFtLlJlcGxhY2UoIGZzLCBpSW5kZXhGaWxlLT5EZXMoKSwgRUZpbGVXcml0ZSApOw0KKyAgICAg
ICAgaWYgKHJldCA9PSBLRXJySW5Vc2UpDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgIC8v
IFdoZW4gdGhlIGNhY2hlIGlzIGZ1bGwsIGl0IHRha2VzIDY1IC0gODUgbWlsaXNlY29uZHMgdG8g
d3JpdGUgdGhlIGluZGV4Lg0KKyAgICAgICAgICAgIC8vIFNvIHdhaXQgNTAgbWlsaXNlY29uZHMg
YW5kIHRyeSBhZ2Fpbg0KKyAgICAgICAgICAgIFVzZXI6OkFmdGVyKDUwMDAwKTsNCisgICAgICAg
ICAgICB9DQorICAgICAgICBlbHNlDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgIGJyZWFr
Ow0KKyAgICAgICAgICAgIH0NCisgICAgICAgIH0NCisgICAgaWYoIHJldCA9PSBLRXJyTm9uZSAp
DQogICAgICAgICB7DQogICAgICAgICBDbGVhbnVwQ2xvc2VQdXNoTCggd3JpdGVTdHJlYW0gKTsN
CiAgICAgICAgIGlMb29rdXBUYWJsZS0+RXh0ZXJuYWxpemVMKCB3cml0ZVN0cmVhbSApOw0KQEAg
LTExMTgsNiArMTE2OCw3IEBAIHZvaWQgQ0h0dHBDYWNoZUhhbmRsZXI6OlNhdmVMb29rdXBUYWJs
ZUwNCiAgICAgICAgIENsZWFudXBTdGFjazo6UG9wQW5kRGVzdHJveSgpOyAvLyB3cml0ZVN0cmVh
bQ0KICAgICAgICAgfQ0KICAgICBDbGVhbnVwU3RhY2s6OlBvcEFuZERlc3Ryb3koKTsgLy8gZnMN
CisgICAgaUh0dHBDYWNoZU9ic2VydmVyLT5TdGFydE9ic2VydmVyTCgpOw0KICAgICB9DQogDQog
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkBAIC0xMjQ2LDYgKzEyOTcsMzggQEAgVEludCBDSHR0
cENhY2hlSGFuZGxlcjo6RG9CYWNrZ3JvdW5kU2F2ZQ0KICAgICB7DQogICAgIFRSQVBfSUdOT1JF
KCAoKENIdHRwQ2FjaGVIYW5kbGVyKilhVGhpcyktPlNhdmVMb29rdXBUYWJsZUwoKSApOw0KICAg
ICByZXR1cm4gS0Vyck5vbmU7DQorICAgIH0NCisNCisNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQ0KKy8vIENIdHRwQ2FjaGVIYW5kbGVyOjpVcGRhdGVMb29rdXBUYWJsZQ0KKy8vDQorLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0NCisvLw0KK3ZvaWQgQ0h0dHBDYWNoZUhhbmRsZXI6OlVwZGF0ZUxv
b2t1cFRhYmxlKCkNCisgICAgew0KKyAgICBUUkFQX0lHTk9SRShVcGRhdGVMb29rdXBUYWJsZUwo
KSk7DQorICAgIGlIdHRwQ2FjaGVPYnNlcnZlci0+U3RhcnRPYnNlcnZlckwoKTsNCisgICAgfQ0K
Kw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ0h0dHBDYWNoZUhhbmRsZXI6OlVwZGF0
ZUxvb2t1cFRhYmxlTA0KKy8vDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLw0KK3ZvaWQg
Q0h0dHBDYWNoZUhhbmRsZXI6OlVwZGF0ZUxvb2t1cFRhYmxlTCgpDQorICAgIHsNCisgICAgQ0h0
dHBDYWNoZUV2aWN0aW9uSGFuZGxlciogZXZpY3Rpb25IYW5kbGVyID0gQ0h0dHBDYWNoZUV2aWN0
aW9uSGFuZGxlcjo6TmV3TCgpOw0KKyAgICBDbGVhbnVwU3RhY2s6OlB1c2hMKGV2aWN0aW9uSGFu
ZGxlcik7DQorICAgIENIdHRwQ2FjaGVMb29rdXBUYWJsZSogbG9va3VwVGFibGUgPSBDSHR0cENh
Y2hlTG9va3VwVGFibGU6Ok5ld0woICpldmljdGlvbkhhbmRsZXIsICppU3RyZWFtSGFuZGxlciAp
Ow0KKyAgICBDbGVhbnVwU3RhY2s6OlB1c2hMKGxvb2t1cFRhYmxlKTsNCisgICAgT3Blbkxvb2t1
cFRhYmxlTChsb29rdXBUYWJsZSk7DQorICAgIFJGcyByZnM7DQorICAgIFVzZXI6OkxlYXZlSWZF
cnJvcihyZnMuQ29ubmVjdCgpKTsNCisgICAgQ2xlYW51cENsb3NlUHVzaEwocmZzKTsNCisgICAg
cmZzLlNldFNlc3Npb25QYXRoKCBpRGlyZWN0b3J5LT5EZXMoKSApOw0KKyAgICBpTG9va3VwVGFi
bGUtPk1lcmdlTChsb29rdXBUYWJsZSwgcmZzKTsNCisgICAgQ2xlYW51cFN0YWNrOjpQb3BBbmRE
ZXN0cm95KDMpOyAvLyByZnMsIGxvb2t1cFRhYmxlLCBldmljdGlvbkhhbmRsZXINCiAgICAgfQ0K
IA0KIC8vICBFbmQgb2YgRmlsZQ0KSW5kZXg6IFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZVNy
Yy9IdHRwQ2FjaGVMb29rdXBUYWJsZS5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvUmVzb3Vy
Y2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hlTG9va3VwVGFibGUuY3BwCShyZXZpc2lvbiAxODIy
MSkNCisrKyBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hlTG9va3VwVGFi
bGUuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNDYsNyArNDYsNiBAQA0KICNpbmNsdWRlICJIdHRw
Q2FjaGVVdGlsLmgiDQogI2luY2x1ZGUgIkh0dHBDYWNoZUV2aWN0aW9uSGFuZGxlci5oIg0KICNp
bmNsdWRlICJIdHRwQ2FjaGVTdHJlYW1IYW5kbGVyLmgiDQotI2luY2x1ZGUgPHMzMmZpbGUuaD4N
CiANCiAvLyBFWFRFUk5BTCBEQVRBIFNUUlVDVFVSRVMNCiANCkBAIC02NzIsNSArNjcxLDcyIEBA
IFRCb29sIENIdHRwQ2FjaGVMb29rdXBUYWJsZTo6Qm91bmRhcnlDaGUNCiAgICAgVEludCBhUG9z
ICkNCiAgICAgew0KICAgICByZXR1cm4gKCBhUG9zID49IDAgJiYgYVBvcyA8IGlFbnRyaWVzLT5D
b3VudCgpICk7DQorICAgIH0NCisNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRw
Q2FjaGVMb29rdXBUYWJsZTo6TWVyZ2VMDQorLy8NCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K
Ky8vDQordm9pZCBDSHR0cENhY2hlTG9va3VwVGFibGU6Ok1lcmdlTCggQ0h0dHBDYWNoZUxvb2t1
cFRhYmxlKiBhSHR0cENhY2hlTG9va3VwVGFibGUsIFJGcyBhUmZzICkNCisgICAgew0KKyAgICBU
SW50IG15Q291bnQgPSBpRW50cmllcy0+Q291bnQoKTsNCisgICAgVEludCBpID0gMDsNCisgICAg
Zm9yIChpID0gbXlDb3VudCAtIDE7IGkgPj0gMDsgaS0tKQ0KKyAgICAgICAgew0KKyAgICAgICAg
aWYgKCBWYWxpZCggaSApICkNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAgQ0h0dHBDYWNo
ZUVudHJ5KiBlbnRyeSA9IGlFbnRyaWVzLT5BdChpKTsNCisgICAgICAgICAgICBDSHR0cENhY2hl
RW50cnkqIG5ld0VudHJ5ID0gYUh0dHBDYWNoZUxvb2t1cFRhYmxlLT5GaW5kKGVudHJ5LT5Vcmwo
KSk7DQorICAgICAgICAgICAgaWYgKG5ld0VudHJ5KQ0KKyAgICAgICAgICAgICAgICB7DQorICAg
ICAgICAgICAgICAgIC8vIEVudHJ5IGlzIGluIHRoZSBuZXcgaW5kZXggZmlsZQ0KKyAgICAgICAg
ICAgICAgICBpZiAobmV3RW50cnktPkxhc3RBY2Nlc3NlZCgpID4gZW50cnktPkxhc3RBY2Nlc3Nl
ZCgpKQ0KKyAgICAgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICAgICAgZW50cnkt
PkFjY2Vzc2VkKG5ld0VudHJ5LT5MYXN0QWNjZXNzZWQoKSwgbmV3RW50cnktPlJlZigpKTsNCisg
ICAgICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAgVEludCBwb3MgPSBhSHR0cENh
Y2hlTG9va3VwVGFibGUtPlByb2JlKG5ld0VudHJ5LT5VcmwoKSwgRUZhbHNlKTsNCisgICAgICAg
ICAgICAgICAgaWYgKGFIdHRwQ2FjaGVMb29rdXBUYWJsZS0+VmFsaWQocG9zKSkNCisgICAgICAg
ICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgICAgIGFIdHRwQ2FjaGVMb29rdXBUYWJs
ZS0+U2V0RGVsZXRlZChwb3MpOw0KKyAgICAgICAgICAgICAgICAgICAgZGVsZXRlIG5ld0VudHJ5
Ow0KKyAgICAgICAgICAgICAgICAgICAgYUh0dHBDYWNoZUxvb2t1cFRhYmxlLT5pQ291bnQtLTsN
CisgICAgICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAg
IGVsc2UgLy8gKG5ld0VudHJ5KQ0KKyAgICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAg
IC8vIEVudHJ5IGlzIG5vdCBpbiB0aGUgbmV3IGluZGV4IGZpbGUNCisgICAgICAgICAgICAgICAg
VFVpbnQgYXR0Ow0KKyAgICAgICAgICAgICAgICBpZiAoYVJmcy5BdHQoZW50cnktPkZpbGVuYW1l
KCksIGF0dCkgIT0gS0Vyck5vbmUpDQorICAgICAgICAgICAgICAgICAgICB7DQorICAgICAgICAg
ICAgICAgICAgICBUSW50IHRoZVBvcyA9IFByb2JlKGVudHJ5LT5VcmwoKSwgRUZhbHNlKTsNCisg
ICAgICAgICAgICAgICAgICAgIGlmIChWYWxpZCh0aGVQb3MpKQ0KKyAgICAgICAgICAgICAgICAg
ICAgICAgIHsNCisgICAgICAgICAgICAgICAgICAgICAgICBFcmFzZSh0aGVQb3MpOw0KKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAg
ICAgICAgfQ0KKyAgICAgICAgICAgIH0NCisgICAgICAgIH0NCisNCisgICAgVEludCBuZXdDb3Vu
dCA9IGFIdHRwQ2FjaGVMb29rdXBUYWJsZS0+aUVudHJpZXMtPkNvdW50KCk7DQorICAgIGZvciAo
aSA9IG5ld0NvdW50IC0gMTsgaSA+PSAwOyBpLS0pDQorICAgICAgICB7DQorICAgICAgICBpZiAo
IGFIdHRwQ2FjaGVMb29rdXBUYWJsZS0+VmFsaWQoIGkgKSApDQorICAgICAgICAgICAgew0KKyAg
ICAgICAgICAgIENIdHRwQ2FjaGVFbnRyeSogbmV3RW50cnkgPSBhSHR0cENhY2hlTG9va3VwVGFi
bGUtPmlFbnRyaWVzLT5BdChpKTsNCisgICAgICAgICAgICBUSW50IHBvcyA9IGFIdHRwQ2FjaGVM
b29rdXBUYWJsZS0+UHJvYmUobmV3RW50cnktPlVybCgpLCBFRmFsc2UpOw0KKyAgICAgICAgICAg
IFRVaW50IGF0dDsNCisgICAgICAgICAgICBpZiAoYVJmcy5BdHQobmV3RW50cnktPkZpbGVuYW1l
KCksIGF0dCkgPT0gS0Vyck5vbmUpDQorICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAg
ICAgQ0h0dHBDYWNoZUVudHJ5KiBteUVudHJ5ID0gSW5zZXJ0TChuZXdFbnRyeS0+VXJsKCkpOw0K
KyAgICAgICAgICAgICAgICBteUVudHJ5LT5TZXRTdGF0ZSggQ0h0dHBDYWNoZUVudHJ5OjpFQ2Fj
aGVDb21wbGV0ZSApOw0KKyAgICAgICAgICAgICAgICBteUVudHJ5LT5BY2Nlc3NlZChuZXdFbnRy
eS0+TGFzdEFjY2Vzc2VkKCksIG5ld0VudHJ5LT5SZWYoKSk7DQorICAgICAgICAgICAgICAgIH0g
ICAgICAgICAgDQorICAgICAgICAgICAgYUh0dHBDYWNoZUxvb2t1cFRhYmxlLT5TZXREZWxldGVk
KHBvcyk7DQorICAgICAgICAgICAgZGVsZXRlIG5ld0VudHJ5Ow0KKyAgICAgICAgICAgIGFIdHRw
Q2FjaGVMb29rdXBUYWJsZS0+aUNvdW50LS07DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgfQ0K
ICAgICB9DQogLy8gIEVuZCBvZiBGaWxlDQpJbmRleDogV2ViS2l0L1Jlc291cmNlTG9hZGVyL0Nh
Y2hlU3JjL0h0dHBDYWNoZU9ic2VydmVyLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9SZXNv
dXJjZUxvYWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVPYnNlcnZlci5jcHAJKHJldmlzaW9uIDApDQor
KysgV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZU9ic2VydmVyLmNwcAko
cmV2aXNpb24gMCkNCkBAIC0wLDAgKzEsMTYwIEBADQorLyoNCisqID09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KKyogIE5hbWUgICAgICAgIDogSHR0cENhY2hlT2JzZXJ2ZXIuY3BwDQorKiAgUGFydCBv
ZiAgICAgOiBXZWJLaXQgLyBSZXNvdXJjZUxvYWRlcg0KKyogIEludGVyZmFjZSAgIDoNCisqICBE
ZXNjcmlwdGlvbiA6IEltcGxlbWVudGF0aW9uIG9mIENIdHRwQ2FjaGVPYnNlcnZlcg0KKyogIFZl
cnNpb24gICAgIDogJVZlcnNpb24lDQorKg0KKyogICAgQ29weXJpZ2h0IChjKSAyMDA2LCBOb2tp
YSBDb3Jwb3JhdGlvbg0KKyogICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4NCisqDQorKiAgIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dA0KKyogICBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMNCisqICAgYXJlIG1ldDoNCisqDQorKiAgICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQN
CisqICAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuDQorKiAgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQNCisqICAgICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4NCisq
ICAgICAgICB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlDQorKiAgICAgICAgZGlzdHJpYnV0aW9uLg0KKyogICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgdGhlIE5va2lhIENvcnBvcmF0aW9uIG5vciB0aGUgbmFtZXMgb2YgaXRzDQorKiAg
ICAgICAgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkDQorKiAgICAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLg0KKyoNCisqICAgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUw0KKyogICAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVA0KKyogICBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1INCisqICAgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQNCisqICAgT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsDQorKiAgIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QNCisqICAgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsDQorKiAgIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQ0KKyogICBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUDQorKiAgIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFDQorKiAgIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gNCisqICAgREFN
QUdFLg0KKyoNCisqICAgIFBsZWFzZSBzZWUgZmlsZSBwYXRlbnRsaWNlbnNlLnR4dCBmb3IgZnVy
dGhlciBncmFudHMuDQorKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisqLw0KKw0KKy8vIElOQ0xV
REUgRklMRVMNCisjaW5jbHVkZSAiSHR0cENhY2hlT2JzZXJ2ZXIuaCINCisjaW5jbHVkZSAiSHR0
cENhY2hlSGFuZGxlci5oIg0KKw0KKw0KKy8vIEVYVEVSTkFMIERBVEEgU1RSVUNUVVJFUw0KKw0K
Ky8vIEVYVEVSTkFMIEZVTkNUSU9OIFBST1RPVFlQRVMNCisNCisvLyBDT05TVEFOVFMNCisNCisv
LyBNQUNST1MNCisNCisvLyBMT0NBTCBDT05TVEFOVFMgQU5EIE1BQ1JPUw0KKw0KKy8vIE1PRFVM
RSBEQVRBIFNUUlVDVFVSRVMNCisNCisvLyBMT0NBTCBGVU5DVElPTiBQUk9UT1RZUEVTDQorDQor
Ly8gRk9SV0FSRCBERUNMQVJBVElPTlMNCisNCisNCisvLyA9PT09PT09PT09PT09PT09PT09PT09
PT09PT09IE1FTUJFUiBGVU5DVElPTlMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
Kw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ0h0dHBDYWNoZU9ic2VydmVyOjpDSHR0
cENhY2hlT2JzZXJ2ZXINCisvLyBDKysgZGVmYXVsdCBjb25zdHJ1Y3RvciBjYW4gTk9UIGNvbnRh
aW4gYW55IGNvZGUsIHRoYXQNCisvLyBtaWdodCBsZWF2ZS4NCisvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQ0KKy8vDQorQ0h0dHBDYWNoZU9ic2VydmVyOjpDSHR0cENhY2hlT2JzZXJ2ZXIoQ0h0dHBD
YWNoZUhhbmRsZXIqIGFIdHRwQ2FjaGVIYW5kbGVyKSA6IENBY3RpdmUoIENBY3RpdmU6OkVQcmlv
cml0eUlkbGUgKSwNCitpSHR0cENhY2hlSGFuZGxlcihhSHR0cENhY2hlSGFuZGxlcikNCisgICAg
ew0KKyAgICBDQWN0aXZlU2NoZWR1bGVyOjpBZGQodGhpcyk7DQorICAgIH0NCisNCisvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRwQ2FjaGVPYnNlcnZlcjo6Q29uc3RydWN0TA0KKy8v
IFN5bWJpYW4gMm5kIHBoYXNlIGNvbnN0cnVjdG9yIGNhbiBsZWF2ZS4NCisvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQ0KKy8vDQordm9pZCBDSHR0cENhY2hlT2JzZXJ2ZXI6OkNvbnN0cnVjdEwoY29u
c3QgSEJ1ZkMqIGFEaXJlY3RvcnksIGNvbnN0IEhCdWZDKiBhSW5kZXhGaWxlKQ0KKyAgICB7DQor
ICAgIFVzZXI6OkxlYXZlSWZFcnJvcihpRnNTZXNzaW9uLkNvbm5lY3QoKSk7DQorICAgIGlGaWxl
TmFtZSA9IEhCdWZDOjpOZXdMKGFEaXJlY3RvcnktPkxlbmd0aCgpICsgYUluZGV4RmlsZS0+TGVu
Z3RoKCkpOw0KKyAgICBpRmlsZU5hbWUtPkRlcygpLkNvcHkoKmFEaXJlY3RvcnkpOw0KKyAgICBp
RmlsZU5hbWUtPkRlcygpLkFwcGVuZCgqYUluZGV4RmlsZSk7DQorICAgIH0NCisNCisvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRwQ2FjaGVPYnNlcnZlcjo6TmV3TA0KKy8vIFR3by1w
aGFzZWQgY29uc3RydWN0b3IuDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLw0KK0NIdHRw
Q2FjaGVPYnNlcnZlciogQ0h0dHBDYWNoZU9ic2VydmVyOjpOZXdMKCBjb25zdCBIQnVmQyogYURp
cmVjdG9yeSwgY29uc3QgSEJ1ZkMqIGFJbmRleEZpbGUsDQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0h0dHBDYWNoZUhhbmRsZXIqIGFI
dHRwQ2FjaGVIYW5kbGVyKQ0KKyAgICB7DQorICAgIENIdHRwQ2FjaGVPYnNlcnZlciogc2VsZiA9
IG5ldyggRUxlYXZlICkgQ0h0dHBDYWNoZU9ic2VydmVyKGFIdHRwQ2FjaGVIYW5kbGVyKTsNCisg
ICAgQ2xlYW51cFN0YWNrOjpQdXNoTCggc2VsZiApOw0KKyAgICBzZWxmLT5Db25zdHJ1Y3RMKGFE
aXJlY3RvcnksIGFJbmRleEZpbGUpOw0KKyAgICBDbGVhbnVwU3RhY2s6OlBvcCgpOw0KKyAgICBy
ZXR1cm4gc2VsZjsNCisgICAgfQ0KKw0KKy8vIERlc3RydWN0b3INCitDSHR0cENhY2hlT2JzZXJ2
ZXI6On5DSHR0cENhY2hlT2JzZXJ2ZXIoKQ0KKyAgICB7DQorICAgIENhbmNlbCgpOw0KKyAgICBk
ZWxldGUgaUZpbGVOYW1lOw0KKyAgICBpRnNTZXNzaW9uLkNsb3NlKCk7DQorICAgIH0NCisNCisv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRwQ2FjaGVPYnNlcnZlcjo6UnVuTA0KKy8v
DQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLw0KK3ZvaWQgQ0h0dHBDYWNoZU9ic2VydmVy
OjpSdW5MKCkNCisgICAgew0KKyAgICBpSHR0cENhY2hlSGFuZGxlci0+VXBkYXRlTG9va3VwVGFi
bGUoKTsNCisgICAgfQ0KKw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ0h0dHBDYWNo
ZU9ic2VydmVyOjpSdW5FcnJvcg0KKy8vDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLw0K
K1RJbnQgQ0h0dHBDYWNoZU9ic2VydmVyOjpSdW5FcnJvcihUSW50IC8qYUVycm9yKi8pDQorICAg
IHsNCisgICAgcmV0dXJuIEtFcnJOb25lOw0KKyAgICB9DQorDQorLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0NCisvLyBDSHR0cENhY2hlT2JzZXJ2ZXI6OkRvQ2FuY2VsDQorLy8NCisvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQ0KKy8vDQordm9pZCBDSHR0cENhY2hlT2JzZXJ2ZXI6OkRvQ2FuY2VsKCkN
CisgICAgew0KKyAgICBpRnNTZXNzaW9uLk5vdGlmeUNoYW5nZUNhbmNlbChpU3RhdHVzKTsNCisg
ICAgfQ0KKw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ0h0dHBDYWNoZU9ic2VydmVy
OjpTdGFydE9ic2VydmVyTA0KKy8vDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLw0KK3Zv
aWQgQ0h0dHBDYWNoZU9ic2VydmVyOjpTdGFydE9ic2VydmVyTCgpDQorICAgIHsNCisgICAgaWYg
KCFJc0FjdGl2ZSgpKQ0KKyAgICAgICAgew0KKyAgICAgICAgaUZzU2Vzc2lvbi5Ob3RpZnlDaGFu
Z2UoRU5vdGlmeVdyaXRlLCBpU3RhdHVzLCAqaUZpbGVOYW1lKTsNCisgICAgICAgIFNldEFjdGl2
ZSgpOw0KKyAgICAgICAgfQ0KKyAgICB9DQorDQorDQorLy8gIEVuZCBvZiBGaWxlDQpJbmRleDog
V2ViS2l0L2dyb3VwL0Jyb3dzZXJDYWNoZS5tbXANCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvZ3Jv
dXAvQnJvd3NlckNhY2hlLm1tcAkocmV2aXNpb24gMTgyMjEpDQorKysgV2ViS2l0L2dyb3VwL0Jy
b3dzZXJDYWNoZS5tbXAJKHdvcmtpbmcgY29weSkNCkBAIC02MSw2ICs2MSw3IEBAIFNPVVJDRSAg
ICAgICAgSHR0cENhY2hlTWFuYWdlci5jcHANCiBTT1VSQ0UgICAgICAgIEh0dHBDYWNoZUVudHJ5
LmNwcA0KIFNPVVJDRSAgICAgICAgSHR0cENhY2hlRXZpY3Rpb25IYW5kbGVyLmNwcA0KIFNPVVJD
RSAgICAgICAgSHR0cENhY2hlSGFuZGxlci5jcHANCitTT1VSQ0UgICAgICAgIEh0dHBDYWNoZU9i
c2VydmVyLmNwcA0KIFNPVVJDRSAgICAgICAgSHR0cENhY2hlTG9va3VwVGFibGUuY3BwDQogU09V
UkNFICAgICAgICBIdHRwQ2FjaGVTdHJlYW1IYW5kbGVyLmNwcA0KIFNPVVJDRSAgICAgICAgSHR0
cENhY2hlVXRpbC5jcHANCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11861</attachid>
            <date>2006-12-15 07:07:18 -0800</date>
            <delta_ts>2006-12-15 13:55:38 -0800</delta_ts>
            <desc>3.2 fix</desc>
            <filename>MyBrilliantWork.patch</filename>
            <type>text/plain</type>
            <size>32334</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxODIyNikNCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpDQpA
QCAtMSwzICsxLDM1IEBADQorMjAwNi0xMi0xNCAgeWFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lh
LmNvbT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKyAgICAgICAg
REVTQzogQnVnIDExODM0OiBUTFVVLTZWSlFYMyA6IENhY2hlIGNhbm5vdCBzdXBwb3J0IG1vcmUg
dGhhbiBvbmUgYXBwbGljYXRpb24gc2ltdWx0YW5lb3VzbHkNCisgICAgICAgIGh0dHA6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODM0DQorDQorICAgICAgICAqIFJlc291cmNl
TG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNoZUVudHJ5Lmg6DQorICAgICAgICAqIFJlc291cmNlTG9h
ZGVyL0NhY2hlSW5jL0h0dHBDYWNoZUhhbmRsZXIuaDoNCisgICAgICAgICogUmVzb3VyY2VMb2Fk
ZXIvQ2FjaGVJbmMvSHR0cENhY2hlTG9va3VwVGFibGUuaDoNCisgICAgICAgICogUmVzb3VyY2VM
b2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlT2JzZXJ2ZXIuaDogQWRkZWQuDQorICAgICAgICAoTk9O
U0hBUkFCTEVfQ0xBU1MpOg0KKyAgICAgICAgKiBSZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9IdHRw
Q2FjaGVFbnRyeS5jcHA6DQorICAgICAgICAoQ0h0dHBDYWNoZUVudHJ5OjpBY2Nlc3NlZCk6DQor
ICAgICAgICAqIFJlc291cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZUhhbmRsZXIuY3BwOg0K
KyAgICAgICAgKENIdHRwQ2FjaGVIYW5kbGVyOjpDb25zdHJ1Y3RMKToNCisgICAgICAgIChDSHR0
cENhY2hlSGFuZGxlcjo6fkNIdHRwQ2FjaGVIYW5kbGVyKToNCisgICAgICAgIChDSHR0cENhY2hl
SGFuZGxlcjo6T3Blbkxvb2t1cFRhYmxlTCk6DQorICAgICAgICAoQ0h0dHBDYWNoZUhhbmRsZXI6
OlNhdmVMb29rdXBUYWJsZUwpOg0KKyAgICAgICAgKENIdHRwQ2FjaGVIYW5kbGVyOjpVcGRhdGVM
b29rdXBUYWJsZSk6DQorICAgICAgICAoQ0h0dHBDYWNoZUhhbmRsZXI6OlVwZGF0ZUxvb2t1cFRh
YmxlTCk6DQorICAgICAgICAqIFJlc291cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZUxvb2t1
cFRhYmxlLmNwcDoNCisgICAgICAgICogUmVzb3VyY2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hl
T2JzZXJ2ZXIuY3BwOiBBZGRlZC4NCisgICAgICAgIChDSHR0cENhY2hlT2JzZXJ2ZXI6OkNIdHRw
Q2FjaGVPYnNlcnZlcik6DQorICAgICAgICAoQ0h0dHBDYWNoZU9ic2VydmVyOjpDb25zdHJ1Y3RM
KToNCisgICAgICAgIChDSHR0cENhY2hlT2JzZXJ2ZXI6Ok5ld0wpOg0KKyAgICAgICAgKENIdHRw
Q2FjaGVPYnNlcnZlcjo6fkNIdHRwQ2FjaGVPYnNlcnZlcik6DQorICAgICAgICAoQ0h0dHBDYWNo
ZU9ic2VydmVyOjpSdW5MKToNCisgICAgICAgIChDSHR0cENhY2hlT2JzZXJ2ZXI6OlJ1bkVycm9y
KToNCisgICAgICAgIChDSHR0cENhY2hlT2JzZXJ2ZXI6OkRvQ2FuY2VsKToNCisgICAgICAgIChD
SHR0cENhY2hlT2JzZXJ2ZXI6OlN0YXJ0T2JzZXJ2ZXJMKToNCisgICAgICAgICogZ3JvdXAvQnJv
d3NlckNhY2hlLm1tcDoNCisNCiAyMDA2LTEyLTEyICByYXRobmFzYSAgPHNvcm5hbGF0aGEucmF0
aG5hc2FteUBub2tpYS5jb20+DQogDQogICAgICAgICBSZXZpZXdlZCBieSBZb25nanVuIFpoYW5n
IGFuZCBTdGV2ZSBXaW5zaGlwLg0KSW5kZXg6IFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZUlu
Yy9IdHRwQ2FjaGVFbnRyeS5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L1Jlc291cmNlTG9hZGVy
L0NhY2hlSW5jL0h0dHBDYWNoZUVudHJ5LmgJKHJldmlzaW9uIDE4MjIxKQ0KKysrIFdlYktpdC9S
ZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVFbnRyeS5oCSh3b3JraW5nIGNvcHkpDQpA
QCAtOSw5ICs5LDkgQEANCiAqICAgIENvcHlyaWdodCAoYykgMjAwNiwgTm9raWEgQ29ycG9yYXRp
b24NCiAqICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQogKiAgDQotKiAgCVJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KLSog
IAltb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMNCi0qICAJYXJlIG1ldDoNCisqICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQorKiAgIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cw0KKyogICBhcmUgbWV0Og0KICogIA0KICogICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQogKiAgICAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0K
QEAgLTIzLDE4ICsyMywxOCBAQA0KICogICAgICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZA0KICogICAgICAgIGZyb20gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4NCiAq
ICANCi0qICAJVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUw0KLSogIAkiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVA0KLSogIAlMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1INCi0q
ICAJQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQNCi0qICAJT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsDQotKiAgCVNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QNCi0qICAJTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsDQotKiAgCURBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQ0KLSogIAlUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUDQotKiAgCShJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFDQotKiAgCVVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0gNCi0qICAJREFNQUdFLg0KKyogICBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTDQorKiAgICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UDQorKiAgIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUg0KKyogICBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVA0KKyogICBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwNCisqICAgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVA0KKyogICBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwNCisqICAgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
DQorKiAgIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQNCisqICAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUNCisqICAgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSA0KKyogICBEQU1B
R0UuDQogKiAgDQogKiAgICBQbGVhc2Ugc2VlIGZpbGUgcGF0ZW50bGljZW5zZS50eHQgZm9yIGZ1
cnRoZXIgZ3JhbnRzLg0KICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMjM3LDYgKzIzNywx
NCBAQCBjbGFzcyBDSHR0cENhY2hlRW50cnkgOiBwdWJsaWMgQ0Jhc2UNCiAgICAgICAgICogQHJl
dHVybiANCiAgICAgICAgICovDQogICAgICAgICBUSW50IEV4dGVybmFsaXplKCBSRmlsZVdyaXRl
U3RyZWFtJiBhV3JpdGVTdHJlYW0gKTsNCisNCisgICAgICAgIC8qKg0KKyAgICAgICAgKiANCisg
ICAgICAgICogQHNpbmNlIDMuMQ0KKyAgICAgICAgKiBAcGFyYW0gDQorICAgICAgICAqIEByZXR1
cm4gDQorICAgICAgICAqLw0KKyAgICAgICAgdm9pZCBBY2Nlc3NlZChUSW50NjQgYUxhc3RBY2Nl
c3NlZCwgVFVpbnQxNiBhUmVmKTsNCiANCiAgICAgcHVibGljIDogDQogDQpJbmRleDogV2ViS2l0
L1Jlc291cmNlTG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNoZUhhbmRsZXIuaA0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
LS0tIFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVIYW5kbGVyLmgJKHJl
dmlzaW9uIDE4MjIxKQ0KKysrIFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2Fj
aGVIYW5kbGVyLmgJKHdvcmtpbmcgY29weSkNCkBAIC02OCw2ICs2OCw3IEBAIGNsYXNzIE1IVFRQ
RGF0YVN1cHBsaWVyOw0KIGNsYXNzIENJZGxlOw0KIGNsYXNzIENIdHRwQ2FjaGVFdmljdGlvbkhh
bmRsZXI7DQogY2xhc3MgVEh0dHBDYWNoZUVudHJ5Ow0KK2NsYXNzIENIdHRwQ2FjaGVPYnNlcnZl
cjsNCiANCiAvLyBDTEFTUyBERUNMQVJBVElPTg0KIA0KQEAgLTIwMyw2ICsyMDQsMTUgQEAgY2xh
c3MgQ0h0dHBDYWNoZUhhbmRsZXIgOiBwdWJsaWMgQ0Jhc2UNCiAgICAgICAgICovDQogICAgICAg
ICB2b2lkIEFkanVzdFJlc3BvbnNlVGltZShSSFRUUFRyYW5zYWN0aW9uJiBhVHJhbnMpOw0KIA0K
KyAgICAgICAgLyoqDQorICAgICAgICAqIFNvbWUgb3RoZXIgYXBwbGljYXRpb24gbW9kaWZpZWQg
dGhlIGNhY2hlIGFuZCB0aGUgbG9va3VwIHRhYmxlIG5lZWRzIHRvIGJlIHVwZGF0ZWQNCisgICAg
ICAgICoNCisgICAgICAgICogQHNpbmNlIDMuMQ0KKyAgICAgICAgKiBAcGFyYW0NCisgICAgICAg
ICogQHJldHVybg0KKyAgICAgICAgKi8NCisgICAgICAgIHZvaWQgVXBkYXRlTG9va3VwVGFibGUo
KTsNCisNCiAgICAgcHJpdmF0ZToNCiANCiAgICAgICAgIC8qKg0KQEAgLTIyMiw2ICsyMzIsMTUg
QEAgY2xhc3MgQ0h0dHBDYWNoZUhhbmRsZXIgOiBwdWJsaWMgQ0Jhc2UNCiAgICAgcHJpdmF0ZTog
Ly8NCiANCiAgICAgICAgIC8qKg0KKyAgICAgICAgKiBTb21lIG90aGVyIGFwcGxpY2F0aW9uIG1v
ZGlmaWVkIHRoZSBjYWNoZSBhbmQgdGhlIGxvb2t1cCB0YWJsZSBuZWVkcyB0byBiZSB1cGRhdGVk
DQorICAgICAgICAqDQorICAgICAgICAqIEBzaW5jZSAzLjENCisgICAgICAgICogQHBhcmFtDQor
ICAgICAgICAqIEByZXR1cm4NCisgICAgICAgICovDQorICAgICAgICB2b2lkIFVwZGF0ZUxvb2t1
cFRhYmxlTCgpOw0KKw0KKyAgICAgICAgLyoqDQogICAgICAgICAqDQogICAgICAgICAqIEBzaW5j
ZSAzLjENCiAgICAgICAgICogQHBhcmFtDQpAQCAtMjkxLDYgKzMxMCwxNSBAQCBjbGFzcyBDSHR0
cENhY2hlSGFuZGxlciA6IHB1YmxpYyBDQmFzZQ0KICAgICAgICAgKiBAcGFyYW0NCiAgICAgICAg
ICogQHJldHVybg0KICAgICAgICAgKi8NCisgICAgICAgIHZvaWQgT3Blbkxvb2t1cFRhYmxlTChD
SHR0cENhY2hlTG9va3VwVGFibGUqIGFMb29rdXBUYWJsZSk7DQorDQorICAgICAgICAvKioNCisg
ICAgICAgICoNCisgICAgICAgICogQHNpbmNlIDMuMQ0KKyAgICAgICAgKiBAcGFyYW0NCisgICAg
ICAgICogQHBhcmFtDQorICAgICAgICAqIEByZXR1cm4NCisgICAgICAgICovDQogICAgICAgICB2
b2lkIEhhbmRsZUNvcnJ1cHRFbnRyeSggQ0h0dHBDYWNoZUVudHJ5JiBhU3RyYXlFbnRyeSwgVEJv
b2wgYVVwZGF0ZSA9IEVUcnVlICk7DQogDQogICAgICAgICAvKioNCkBAIC0zNDUsNiArMzczLDgg
QEAgY2xhc3MgQ0h0dHBDYWNoZUhhbmRsZXIgOiBwdWJsaWMgQ0Jhc2UNCiAgICAgICAgIENJZGxl
KiAgICAgICAgICAgICAgICAgICAgICAgICAgaUlkbGU7ICAgICAgLy8gb3duZWQNCiAgICAgICAg
IC8vIG5hbWUgb2YgdGhlIGluZGV4IGZpbGUNCiAgICAgICAgIEhCdWZDKiAgICAgICAgICAgICAg
ICAgICAgICAgICAgaUluZGV4RmlsZTsgLy8gb3duZWQNCisgICAgICAgIC8vIE9ic2VydmluZyBj
aGFuZ2VzIGluIGNhY2hlDQorICAgICAgICBDSHR0cENhY2hlT2JzZXJ2ZXIqIGlIdHRwQ2FjaGVP
YnNlcnZlcjsgLy8gb3duZWQNCiAgICAgfTsNCiANCiAjZW5kaWYgICAgICAvLyBDSFRUUENBQ0hF
SEFORExFUl9IDQpJbmRleDogV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNo
ZUxvb2t1cFRhYmxlLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2Fj
aGVJbmMvSHR0cENhY2hlTG9va3VwVGFibGUuaAkocmV2aXNpb24gMTgyMjEpDQorKysgV2ViS2l0
L1Jlc291cmNlTG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNoZUxvb2t1cFRhYmxlLmgJKHdvcmtpbmcg
Y29weSkNCkBAIC05LDkgKzksOSBAQA0KICogICAgQ29weXJpZ2h0IChjKSAyMDA2LCBOb2tpYSBD
b3Jwb3JhdGlvbg0KICogICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqICANCi0qICAJUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0DQotKiAgCW1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucw0KLSogIAlhcmUgbWV0Og0KKyogICBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCisqICAg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zDQorKiAgIGFyZSBtZXQ6DQogKiAgDQogKiAgICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCiAqICAgICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuDQpAQCAtMjMsMTggKzIzLDE4IEBADQogKiAgICAgICAgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkDQogKiAgICAgICAg
ZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLg0KICogIA0KLSogIAlUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTDQotKiAgCSJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UDQotKiAgCUxJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUg0KLSogIAlBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVA0KLSogIAlPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwNCi0qICAJU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVA0K
LSogIAlMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwNCi0qICAJREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZDQotKiAgCVRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQNCi0q
ICAJKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUNCi0qICAJVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSA0KLSogIAlEQU1BR0UuDQorKiAgIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMN
CisqICAgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QNCisqICAgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SDQorKiAgIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUDQorKiAg
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLA0KKyogICBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UDQorKiAgIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLA0KKyogICBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkNCisqICAgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVA0KKyogICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRQ0KKyogICBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIDQor
KiAgIERBTUFHRS4NCiAqICANCiAqICAgIFBsZWFzZSBzZWUgZmlsZSBwYXRlbnRsaWNlbnNlLnR4
dCBmb3IgZnVydGhlciBncmFudHMuDQogKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC00NSw2
ICs0NSw3IEBADQogDQogLy8gIElOQ0xVREVTDQogI2luY2x1ZGUgPGUzMmJhc2UuaD4NCisjaW5j
bHVkZSA8czMyZmlsZS5oPg0KIA0KIC8vIENPTlNUQU5UUw0KIA0KQEAgLTk0LDcgKzk1LDcgQEAg
Y2xhc3MgQ0h0dHBDYWNoZUxvb2t1cFRhYmxlIDogcHVibGljIENCYQ0KICAgICAgICAgKiBAcGFy
YW0NCiAgICAgICAgICogQHJldHVybg0KICAgICAgICAgKi8NCi0JCUNIdHRwQ2FjaGVFbnRyeSog
SW5zZXJ0TCggY29uc3QgVERlc0M4JiBhVXJsICk7DQorICAgIENIdHRwQ2FjaGVFbnRyeSogSW5z
ZXJ0TCggY29uc3QgVERlc0M4JiBhVXJsICk7DQogDQogICAgICAgICAvKioNCiAgICAgICAgICoN
CkBAIC0xMDIsNyArMTAzLDcgQEAgY2xhc3MgQ0h0dHBDYWNoZUxvb2t1cFRhYmxlIDogcHVibGlj
IENCYQ0KICAgICAgICAgKiBAcGFyYW0NCiAgICAgICAgICogQHJldHVybg0KICAgICAgICAgKi8N
Ci0JCUNIdHRwQ2FjaGVFbnRyeSogRmluZCggY29uc3QgVERlc0M4JiBhVXJsICk7DQorICAgIENI
dHRwQ2FjaGVFbnRyeSogRmluZCggY29uc3QgVERlc0M4JiBhVXJsICk7DQogDQogICAgICAgICAv
KioNCiAgICAgICAgICoNCkBAIC0xMTAsNyArMTExLDcgQEAgY2xhc3MgQ0h0dHBDYWNoZUxvb2t1
cFRhYmxlIDogcHVibGljIENCYQ0KICAgICAgICAgKiBAcGFyYW0NCiAgICAgICAgICogQHJldHVy
bg0KICAgICAgICAgKi8NCi0JCVRJbnQgUmVtb3ZlKCBjb25zdCBURGVzQzgmIGFVcmwgKTsNCisg
ICAgVEludCBSZW1vdmUoIGNvbnN0IFREZXNDOCYgYVVybCApOw0KIA0KICAgICAgICAgLyoqDQog
ICAgICAgICAqDQpAQCAtMTE4LDcgKzExOSw3IEBAIGNsYXNzIENIdHRwQ2FjaGVMb29rdXBUYWJs
ZSA6IHB1YmxpYyBDQmENCiAgICAgICAgICogQHBhcmFtDQogICAgICAgICAqIEByZXR1cm4NCiAg
ICAgICAgICovDQotCQlUSW50IFJlbW92ZUFsbCgpOw0KKyAgICBUSW50IFJlbW92ZUFsbCgpOw0K
IA0KICAgICAgICAgLyoqDQogICAgICAgICAqDQpAQCAtMTUyLDYgKzE1MywxNCBAQCBjbGFzcyBD
SHR0cENhY2hlTG9va3VwVGFibGUgOiBwdWJsaWMgQ0JhDQogICAgICAgICAqLw0KICAgICAgICAg
dm9pZCBFeHRlcm5hbGl6ZUwoIFJGaWxlV3JpdGVTdHJlYW0mIGFXcml0ZVN0cmVhbSApOw0KIA0K
KyAgICAgICAgLyoqDQorICAgICAgICAqDQorICAgICAgICAqIEBzaW5jZSAzLjENCisgICAgICAg
ICogQHBhcmFtDQorICAgICAgICAqIEByZXR1cm4NCisgICAgICAgICovDQorICAgIHZvaWQgTWVy
Z2VMKCBDSHR0cENhY2hlTG9va3VwVGFibGUqIGFIdHRwQ2FjaGVMb29rdXBUYWJsZSwgUkZzIGFS
ZnMgICk7DQorDQogICAgIHByaXZhdGU6DQogDQogICAgICAgICAvKioNCkBAIC0yNjEsNyArMjcw
LDcgQEAgY2xhc3MgQ0h0dHBDYWNoZUxvb2t1cFRhYmxlIDogcHVibGljIENCYQ0KICAgICBwcml2
YXRlOiAgICAvLyBEYXRhDQogDQogICAgICAgICAvLyBoYXNoIHRhYmxlIGZvciBjYWNoZSBlbnRy
aWVzDQotCQlDQXJyYXlQdHJGbGF0PENIdHRwQ2FjaGVFbnRyeT4qIGlFbnRyaWVzOw0KKyAgICBD
QXJyYXlQdHJGbGF0PENIdHRwQ2FjaGVFbnRyeT4qIGlFbnRyaWVzOw0KICAgICAgICAgLy8gbnVt
YmVyIG9mIGVudHJpZXMgaW4gdGhlIGhhc2h0YWJsZQ0KICAgICAgICAgVEludCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpQ291bnQ7DQogICAgICAgICAvLw0KSW5kZXg6IFdlYktpdC9SZXNv
dXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVPYnNlcnZlci5oDQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0g
V2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNoZU9ic2VydmVyLmgJKHJldmlz
aW9uIDApDQorKysgV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNoZU9ic2Vy
dmVyLmgJKHJldmlzaW9uIDApDQpAQCAtMCwwICsxLDEyMSBAQA0KKy8qDQorKiA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0NCisqICBOYW1lICAgICAgICA6IEh0dHBDYWNoZUhhbmRsZXJVcGRhdGVyLmgN
CisqICBQYXJ0IG9mICAgICA6IFdlYktpdCAvIFJlc291cmNlTG9hZGVyDQorKiAgSW50ZXJmYWNl
ICAgOg0KKyogIERlc2NyaXB0aW9uIDogRGVmaW5pdGlvbiBvZiBDSHR0cENhY2hlT2JzZXJ2ZXIN
CisqICBWZXJzaW9uICAgICA6ICVWZXJzaW9uJQ0KKyoNCisqICAgIENvcHlyaWdodCAoYykgMjAw
NiwgTm9raWEgQ29ycG9yYXRpb24NCisqICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQorKg0KKyog
ICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQNCisqICAgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQorKiAgIGFyZSBtZXQ6DQorKg0KKyogICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0DQorKiAgICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KKyogICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0DQorKiAgICAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluDQorKiAgICAgICAgdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQ0KKyogICAgICAgIGRpc3RyaWJ1dGlvbi4NCisqICAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIHRoZSBOb2tpYSBDb3Jwb3JhdGlvbiBub3IgdGhlIG5hbWVzIG9mIGl0
cw0KKyogICAgICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZA0KKyogICAgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4NCisqDQorKiAgIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMN
CisqICAgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QNCisqICAgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SDQorKiAgIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUDQorKiAg
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLA0KKyogICBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UDQorKiAgIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLA0KKyogICBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkNCisqICAgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVA0KKyogICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRQ0KKyogICBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIDQor
KiAgIERBTUFHRS4NCisqDQorKiAgICBQbGVhc2Ugc2VlIGZpbGUgcGF0ZW50bGljZW5zZS50eHQg
Zm9yIGZ1cnRoZXIgZ3JhbnRzLg0KKyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorKi8NCisNCisj
aWZuZGVmIENIVFRQQ0FDSEVPQlNFUlZFUl9IDQorI2RlZmluZSBDSFRUUENBQ0hFT0JTRVJWRVJf
SA0KKw0KKy8vICBJTkNMVURFUw0KKyNpbmNsdWRlIDxlMzJiYXNlLmg+DQorI2luY2x1ZGUgPGYz
MmZpbGUuaD4NCisNCisvLyBDT05TVEFOVFMNCisNCisvLyBNQUNST1MNCisNCisvLyBEQVRBIFRZ
UEVTDQorDQorLy8gRlVOQ1RJT04gUFJPVE9UWVBFUw0KKw0KKy8vIEZPUldBUkQgREVDTEFSQVRJ
T05TDQorY2xhc3MgQ0h0dHBDYWNoZUhhbmRsZXI7DQorDQorLy8gQ0xBU1MgREVDTEFSQVRJT04N
CisNCisvKioNCisqDQorKiAgQGxpYg0KKyogIEBzaW5jZSAzLjENCisqLw0KK05PTlNIQVJBQkxF
X0NMQVNTKENIdHRwQ2FjaGVPYnNlcnZlcikgOiBwdWJsaWMgQ0FjdGl2ZQ0KKyAgICB7DQorICAg
IHB1YmxpYzogIC8vIENvbnN0cnVjdG9ycyBhbmQgZGVzdHJ1Y3Rvcg0KKw0KKyAgICAgICAgLyoq
DQorICAgICAgICAqIFR3by1waGFzZWQgY29uc3RydWN0b3IuDQorICAgICAgICAqIEBzaW5jZSAz
LjENCisgICAgICAgICogQHBhcmFtDQorICAgICAgICAqIEBwYXJhbQ0KKyAgICAgICAgKiBAcmV0
dXJuIENhY2hlSGFuZGxlciBvYmplY3QuDQorICAgICAgICAqLw0KKyAgICAgICAgc3RhdGljIENI
dHRwQ2FjaGVPYnNlcnZlciogTmV3TCggY29uc3QgSEJ1ZkMqIGFEaXJlY3RvcnksIGNvbnN0IEhC
dWZDKiBhSW5kZXhGaWxlLA0KKyAgICAgICAgICAgIENIdHRwQ2FjaGVIYW5kbGVyKiBhSHR0cENh
Y2hlSGFuZGxlcik7DQorDQorICAgICAgICAvKioNCisgICAgICAgICogRGVzdHJ1Y3Rvci4NCisg
ICAgICAgICovDQorICAgICAgICB2aXJ0dWFsIH5DSHR0cENhY2hlT2JzZXJ2ZXIoKTsNCisNCisg
ICAgcHVibGljOiAvLyBuZXcgZnVuY3Rpb25zDQorICAgICAgICB2b2lkIFN0YXJ0T2JzZXJ2ZXJM
KCk7DQorDQorICAgIHB1YmxpYzogLy8gZnJvbSBiYXNlIGNsYXNzIENBY3RpdmUNCisgICAgICAg
IHZvaWQgUnVuTCgpOw0KKyAgICAgICAgVEludCBSdW5FcnJvcihUSW50IGFFcnJvcik7DQorICAg
ICAgICB2b2lkIERvQ2FuY2VsKCk7DQorDQorICAgIHByaXZhdGU6DQorDQorICAgICAgICAvKioN
CisgICAgICAgICogQ29uc3RydWN0Lg0KKyAgICAgICAgKiBAc2luY2UgMy4xDQorICAgICAgICAq
IEBwYXJhbQ0KKyAgICAgICAgKiBAcGFyYW0NCisgICAgICAgICogQHJldHVybiBDYWNoZU9ic2Vy
dmVyIG9iamVjdC4NCisgICAgICAgICovDQorICAgICAgICBDSHR0cENhY2hlT2JzZXJ2ZXIoQ0h0
dHBDYWNoZUhhbmRsZXIqIGFIdHRwQ2FjaGVIYW5kbGVyKTsNCisNCisgICAgICAgIC8qKg0KKyAg
ICAgICAgKiBCeSBkZWZhdWx0IFN5bWJpYW4gMm5kIHBoYXNlIGNvbnN0cnVjdG9yIGlzIHByaXZh
dGUuDQorICAgICAgICAqLw0KKyAgICAgICAgdm9pZCBDb25zdHJ1Y3RMKGNvbnN0IEhCdWZDKiBh
RGlyZWN0b3J5LCBjb25zdCBIQnVmQyogYUluZGV4RmlsZSk7DQorDQorICAgIHByaXZhdGU6ICAg
IC8vIERhdGENCisNCisgICAgICAgIC8vIG5hbWUgYW5kIHBhdGggb2YgaW5kZXggZmlsZQ0KKyAg
ICAgICAgSEJ1ZkMqIGlGaWxlTmFtZTsgLy8gb3duZWQNCisgICAgICAgIFJGcyBpRnNTZXNzaW9u
OyAvLyBub3Qgb3duZWQNCisgICAgICAgIENIdHRwQ2FjaGVIYW5kbGVyKiBpSHR0cENhY2hlSGFu
ZGxlcjsNCisgICAgfTsNCisNCisjZW5kaWYgICAgICAvLyBDSFRUUENBQ0hFT0JTRVJWRVJfSA0K
Kw0KKy8vIEVuZCBvZiBGaWxlDQpJbmRleDogV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlU3Jj
L0h0dHBDYWNoZUVudHJ5LmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9SZXNvdXJjZUxvYWRl
ci9DYWNoZVNyYy9IdHRwQ2FjaGVFbnRyeS5jcHAJKHJldmlzaW9uIDE4MjIxKQ0KKysrIFdlYktp
dC9SZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVFbnRyeS5jcHAJKHdvcmtpbmcgY29w
eSkNCkBAIC0zMDYsNCArMzA2LDI2IEBAIFRJbnQgQ0h0dHBDYWNoZUVudHJ5OjpFeHRlcm5hbGl6
ZSgNCiAgICAgcmV0dXJuIGVycjsNCiAgICAgfQ0KIA0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
DQorLy8gQ0h0dHBDYWNoZUVudHJ5OjpBY2Nlc3NlZA0KKy8vDQorLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0NCisvLw0KK3ZvaWQgQ0h0dHBDYWNoZUVudHJ5OjpBY2Nlc3NlZChUSW50NjQgYUxhc3RB
Y2Nlc3NlZCwgVFVpbnQxNiBhUmVmKQ0KKyAgICB7DQorICAgIGlMYXN0QWNjZXNzZWQgPSBhTGFz
dEFjY2Vzc2VkOw0KKyAgICBpUmVmID0gYVJlZjsNCisgICAgaWYoIGlWaWN0aW0gKQ0KKyAgICAg
ICAgew0KKyAgICAgICAgaUV2aWN0aW9uSGFuZGxlci0+QWNjZXNzZWQoICp0aGlzICk7DQorICAg
ICAgICB9DQorI2lmZGVmIF9fQ0FDSEVMT0dfXw0KKyAgICBfTElUKCBLQWNjZXNzRm9ybWF0LCAi
ZW50cnkgYWNjZXNzZWQ6ICVkIiApOw0KKyAgICBUQnVmPDEwMD4gYnVmOw0KKyAgICBidWYuRm9y
bWF0KCBLQWNjZXNzRm9ybWF0LCBpUmVmICk7DQorICAgIEh0dHBDYWNoZVV0aWw6OldyaXRlVXJs
VG9Mb2coIDAsIGJ1ZiwgaVVybC0+RGVzKCkgKTsNCisjZW5kaWYgLy8gX19DQUNIRUxPR19fDQor
DQorICAgIH0NCisNCiAvLyAgRW5kIG9mIEZpbGUNCkluZGV4OiBXZWJLaXQvUmVzb3VyY2VMb2Fk
ZXIvQ2FjaGVTcmMvSHR0cENhY2hlSGFuZGxlci5jcHANCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQv
UmVzb3VyY2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hlSGFuZGxlci5jcHAJKHJldmlzaW9uIDE4
MjIxKQ0KKysrIFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVIYW5kbGVy
LmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTQ4LDYgKzQ4LDcgQEANCiAjaW5jbHVkZSAiSHR0cENh
Y2hlU3RyZWFtSGFuZGxlci5oIg0KICNpbmNsdWRlICJIdHRwQ2FjaGVVdGlsLmgiDQogI2luY2x1
ZGUgIkh0dHBDYWNoZUV2aWN0aW9uSGFuZGxlci5oIg0KKyNpbmNsdWRlICJIdHRwQ2FjaGVPYnNl
cnZlci5oIg0KICNpbmNsdWRlIDxodHRwXFJIVFRQVHJhbnNhY3Rpb24uaD4NCiAjaW5jbHVkZSA8
aHR0cFxyaHR0cHNlc3Npb24uaD4NCiAjaW5jbHVkZSA8aHR0cFxyaHR0cGhlYWRlcnMuaD4NCkBA
IC0xMTUsNiArMTE2LDkgQEAgdm9pZCBDSHR0cENhY2hlSGFuZGxlcjo6Q29uc3RydWN0TCgNCiAg
ICAgT3Blbkxvb2t1cFRhYmxlTCgpOw0KICAgICAvLw0KICAgICBpSWRsZSA9IENJZGxlOjpOZXdM
KCBDQWN0aXZlOjpFUHJpb3JpdHlJZGxlICk7DQorICAgIC8vDQorICAgIGlIdHRwQ2FjaGVPYnNl
cnZlciA9IENIdHRwQ2FjaGVPYnNlcnZlcjo6TmV3TChpRGlyZWN0b3J5LCBpSW5kZXhGaWxlLCB0
aGlzKTsNCisgICAgaUh0dHBDYWNoZU9ic2VydmVyLT5TdGFydE9ic2VydmVyTCgpOw0KICAgICB9
DQogDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkBAIC0xMzksOCArMTQzLDEzIEBAIENIdHRw
Q2FjaGVIYW5kbGVyKiBDSHR0cENhY2hlSGFuZGxlcjo6TmUNCiAvLyBEZXN0cnVjdG9yDQogQ0h0
dHBDYWNoZUhhbmRsZXI6On5DSHR0cENhY2hlSGFuZGxlcigpDQogICAgIHsNCi0gICAgLy8gc2F2
ZSBlbnRyeSB0YWJsZQ0KLSAgICBUUkFQX0lHTk9SRSggU2F2ZUxvb2t1cFRhYmxlTCgpICk7DQor
ICAgIGlmIChpSWRsZS0+SXNBY3RpdmUoKSkNCisgICAgICAgIHsNCisgICAgICAgIC8vIHNhdmUg
ZW50cnkgdGFibGUsIGJ1dCBvbmx5IGlmIGl0IHdhcyBtb2RpZmllZA0KKyAgICAgICAgVFJBUF9J
R05PUkUoIFNhdmVMb29rdXBUYWJsZUwoKSApOw0KKyAgICAgICAgfQ0KKyAgICAvLw0KKyAgICBk
ZWxldGUgaUh0dHBDYWNoZU9ic2VydmVyOw0KICAgICAvLw0KICAgICBpZiAoaUV2aWN0aW9uSGFu
ZGxlcikNCiAgICAgICAgIHsNCkBAIC0xMDY0LDYgKzEwNzMsMTYgQEAgVEJvb2wgQ0h0dHBDYWNo
ZUhhbmRsZXI6OkhhbmRsZVJlc3BvbnNlTg0KIC8vDQogdm9pZCBDSHR0cENhY2hlSGFuZGxlcjo6
T3Blbkxvb2t1cFRhYmxlTCgpDQogICAgIHsNCisgICAgT3Blbkxvb2t1cFRhYmxlTChpTG9va3Vw
VGFibGUpOw0KKyAgICB9DQorDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBDSHR0cENh
Y2hlSGFuZGxlcjo6T3Blbkxvb2t1cFRhYmxlTA0KKy8vDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0NCisvLw0KK3ZvaWQgQ0h0dHBDYWNoZUhhbmRsZXI6Ok9wZW5Mb29rdXBUYWJsZUwoQ0h0dHBD
YWNoZUxvb2t1cFRhYmxlKiBhTG9va3VwVGFibGUpDQorICAgIHsNCiAgICAgLy8gcmVhZCBlbnRy
aWVzIGZyb20gaW5kZXguZGF0DQogICAgIFJGaWxlUmVhZFN0cmVhbSByZWFkU3RyZWFtOw0KICAg
ICBSRnMgZnM7DQpAQCAtMTA4MywxMSArMTEwMiwyNiBAQCB2b2lkIENIdHRwQ2FjaGVIYW5kbGVy
OjpPcGVuTG9va3VwVGFibGVMDQogICAgIGlmKCBlcnIgPT0gS0Vyck5vbmUgKQ0KICAgICAgICAg
ew0KICAgICAgICAgZnMuU2V0U2Vzc2lvblBhdGgoIGlEaXJlY3RvcnktPkRlcygpICk7DQotDQot
ICAgICAgICBpZiggcmVhZFN0cmVhbS5PcGVuKCBmcywgaUluZGV4RmlsZS0+RGVzKCksIEVGaWxl
UmVhZCApID09IEtFcnJOb25lICkNCisgICAgICAgIFRJbnQgcmV0ID0gS0Vyck5vbmU7DQorICAg
ICAgICBUSW50IHRyeUNvdW50ID0gMDsNCisgICAgICAgIGZvciAodHJ5Q291bnQgPSAwOyB0cnlD
b3VudCA8IDU7IHRyeUNvdW50KyspIA0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICByZXQg
PSByZWFkU3RyZWFtLk9wZW4oIGZzLCBpSW5kZXhGaWxlLT5EZXMoKSwgRUZpbGVSZWFkIHwgRUZp
bGVTaGFyZUFueSApOw0KKyAgICAgICAgICAgIGlmIChyZXQgPT0gS0VyckluVXNlKQ0KKyAgICAg
ICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgIC8vIFdoZW4gdGhlIGNhY2hlIGlzIGZ1bGws
IGl0IHRha2VzIDY1IC0gODUgbWlsaXNlY29uZHMgdG8gd3JpdGUgdGhlIGluZGV4Lg0KKyAgICAg
ICAgICAgICAgICAvLyBTbyB3YWl0IDUwIG1pbGlzZWNvbmRzIGFuZCB0cnkgYWdhaW4NCisgICAg
ICAgICAgICAgICAgVXNlcjo6QWZ0ZXIoNTAwMDApOw0KKyAgICAgICAgICAgICAgICB9DQorICAg
ICAgICAgICAgZWxzZQ0KKyAgICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgIGJyZWFr
Ow0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgaWYoIHJldCA9
PSBLRXJyTm9uZSApDQogICAgICAgICAgICAgew0KICAgICAgICAgICAgIENsZWFudXBDbG9zZVB1
c2hMKCByZWFkU3RyZWFtICk7DQotICAgICAgICAgICAgaUxvb2t1cFRhYmxlLT5JbnRlcm5hbGl6
ZUwoIHJlYWRTdHJlYW0sIGlEaXJlY3RvcnktPkRlcygpICk7DQorICAgICAgICAgICAgYUxvb2t1
cFRhYmxlLT5JbnRlcm5hbGl6ZUwoIHJlYWRTdHJlYW0sIGlEaXJlY3RvcnktPkRlcygpICk7DQog
ICAgICAgICAgICAgQ2xlYW51cFN0YWNrOjpQb3BBbmREZXN0cm95KCk7IC8vIHJlYWRTdHJlYW0N
CiAgICAgICAgICAgICB9DQogICAgICAgICB9DQpAQCAtMTEwNywxMCArMTE0MSwyNiBAQCB2b2lk
IENIdHRwQ2FjaGVIYW5kbGVyOjpTYXZlTG9va3VwVGFibGVMDQogICAgIFJGcyBmczsNCiAgICAg
VXNlcjo6TGVhdmVJZkVycm9yKCBmcy5Db25uZWN0KCkgKTsNCiAgICAgQ2xlYW51cENsb3NlUHVz
aEwoIGZzICk7DQotDQogICAgIGZzLlNldFNlc3Npb25QYXRoKCBpRGlyZWN0b3J5LT5EZXMoKSAp
Ow0KLQ0KLSAgICBpZiggd3JpdGVTdHJlYW0uUmVwbGFjZSggZnMsIGlJbmRleEZpbGUtPkRlcygp
LCBFRmlsZVdyaXRlICkgPT0gS0Vyck5vbmUgKQ0KKyAgICAvLyBEb24ndCBnZXQgbm90aWZpZWQg
YWJvdXQgb3duIGNoYW5nZXMNCisgICAgaUh0dHBDYWNoZU9ic2VydmVyLT5DYW5jZWwoKTsNCisg
ICAgVEludCByZXQgPSBLRXJyTm9uZTsNCisgICAgVEludCB0cnlDb3VudCA9IDA7DQorICAgIGZv
ciAodHJ5Q291bnQgPSAwOyB0cnlDb3VudCA8IDU7IHRyeUNvdW50KyspIA0KKyAgICAgICAgew0K
KyAgICAgICAgcmV0ID0gd3JpdGVTdHJlYW0uUmVwbGFjZSggZnMsIGlJbmRleEZpbGUtPkRlcygp
LCBFRmlsZVdyaXRlICk7DQorICAgICAgICBpZiAocmV0ID09IEtFcnJJblVzZSkNCisgICAgICAg
ICAgICB7DQorICAgICAgICAgICAgLy8gV2hlbiB0aGUgY2FjaGUgaXMgZnVsbCwgaXQgdGFrZXMg
NjUgLSA4NSBtaWxpc2Vjb25kcyB0byB3cml0ZSB0aGUgaW5kZXguDQorICAgICAgICAgICAgLy8g
U28gd2FpdCA1MCBtaWxpc2Vjb25kcyBhbmQgdHJ5IGFnYWluDQorICAgICAgICAgICAgVXNlcjo6
QWZ0ZXIoNTAwMDApOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgIGVsc2UNCisgICAgICAgICAg
ICB7DQorICAgICAgICAgICAgYnJlYWs7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgfQ0KKyAg
ICBpZiggcmV0ID09IEtFcnJOb25lICkNCiAgICAgICAgIHsNCiAgICAgICAgIENsZWFudXBDbG9z
ZVB1c2hMKCB3cml0ZVN0cmVhbSApOw0KICAgICAgICAgaUxvb2t1cFRhYmxlLT5FeHRlcm5hbGl6
ZUwoIHdyaXRlU3RyZWFtICk7DQpAQCAtMTExOCw2ICsxMTY4LDcgQEAgdm9pZCBDSHR0cENhY2hl
SGFuZGxlcjo6U2F2ZUxvb2t1cFRhYmxlTA0KICAgICAgICAgQ2xlYW51cFN0YWNrOjpQb3BBbmRE
ZXN0cm95KCk7IC8vIHdyaXRlU3RyZWFtDQogICAgICAgICB9DQogICAgIENsZWFudXBTdGFjazo6
UG9wQW5kRGVzdHJveSgpOyAvLyBmcw0KKyAgICBpSHR0cENhY2hlT2JzZXJ2ZXItPlN0YXJ0T2Jz
ZXJ2ZXJMKCk7DQogICAgIH0NCiANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQEAgLTEyNDgs
NCArMTI5OSwzNSBAQCBUSW50IENIdHRwQ2FjaGVIYW5kbGVyOjpEb0JhY2tncm91bmRTYXZlDQog
ICAgIHJldHVybiBLRXJyTm9uZTsNCiAgICAgfQ0KIA0KKw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tDQorLy8gQ0h0dHBDYWNoZUhhbmRsZXI6OlVwZGF0ZUxvb2t1cFRhYmxlDQorLy8NCisvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vDQordm9pZCBDSHR0cENhY2hlSGFuZGxlcjo6VXBkYXRl
TG9va3VwVGFibGUoKQ0KKyAgICB7DQorICAgIFRSQVBfSUdOT1JFKFVwZGF0ZUxvb2t1cFRhYmxl
TCgpKTsNCisgICAgaUh0dHBDYWNoZU9ic2VydmVyLT5TdGFydE9ic2VydmVyTCgpOw0KKyAgICB9
DQorDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBDSHR0cENhY2hlSGFuZGxlcjo6VXBk
YXRlTG9va3VwVGFibGVMDQorLy8NCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vDQordm9p
ZCBDSHR0cENhY2hlSGFuZGxlcjo6VXBkYXRlTG9va3VwVGFibGVMKCkNCisgICAgew0KKyAgICBD
SHR0cENhY2hlRXZpY3Rpb25IYW5kbGVyKiBldmljdGlvbkhhbmRsZXIgPSBDSHR0cENhY2hlRXZp
Y3Rpb25IYW5kbGVyOjpOZXdMKCk7DQorICAgIENsZWFudXBTdGFjazo6UHVzaEwoZXZpY3Rpb25I
YW5kbGVyKTsNCisgICAgQ0h0dHBDYWNoZUxvb2t1cFRhYmxlKiBsb29rdXBUYWJsZSA9IENIdHRw
Q2FjaGVMb29rdXBUYWJsZTo6TmV3TCggKmV2aWN0aW9uSGFuZGxlciwgKmlTdHJlYW1IYW5kbGVy
ICk7DQorICAgIENsZWFudXBTdGFjazo6UHVzaEwobG9va3VwVGFibGUpOw0KKyAgICBPcGVuTG9v
a3VwVGFibGVMKGxvb2t1cFRhYmxlKTsNCisgICAgUkZzIHJmczsNCisgICAgVXNlcjo6TGVhdmVJ
ZkVycm9yKHJmcy5Db25uZWN0KCkpOw0KKyAgICBDbGVhbnVwQ2xvc2VQdXNoTChyZnMpOw0KKyAg
ICByZnMuU2V0U2Vzc2lvblBhdGgoIGlEaXJlY3RvcnktPkRlcygpICk7DQorICAgIGlMb29rdXBU
YWJsZS0+TWVyZ2VMKGxvb2t1cFRhYmxlLCByZnMpOw0KKyAgICBDbGVhbnVwU3RhY2s6OlBvcEFu
ZERlc3Ryb3koMyk7IC8vIHJmcywgbG9va3VwVGFibGUsIGV2aWN0aW9uSGFuZGxlcg0KKyAgICB9
DQogLy8gIEVuZCBvZiBGaWxlDQpJbmRleDogV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlU3Jj
L0h0dHBDYWNoZUxvb2t1cFRhYmxlLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9SZXNvdXJj
ZUxvYWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVMb29rdXBUYWJsZS5jcHAJKHJldmlzaW9uIDE4MjIx
KQ0KKysrIFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVMb29rdXBUYWJs
ZS5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC00Niw3ICs0Niw2IEBADQogI2luY2x1ZGUgIkh0dHBD
YWNoZVV0aWwuaCINCiAjaW5jbHVkZSAiSHR0cENhY2hlRXZpY3Rpb25IYW5kbGVyLmgiDQogI2lu
Y2x1ZGUgIkh0dHBDYWNoZVN0cmVhbUhhbmRsZXIuaCINCi0jaW5jbHVkZSA8czMyZmlsZS5oPg0K
IA0KIC8vIEVYVEVSTkFMIERBVEEgU1RSVUNUVVJFUw0KIA0KQEAgLTY3Miw1ICs2NzEsNzIgQEAg
VEJvb2wgQ0h0dHBDYWNoZUxvb2t1cFRhYmxlOjpCb3VuZGFyeUNoZQ0KICAgICBUSW50IGFQb3Mg
KQ0KICAgICB7DQogICAgIHJldHVybiAoIGFQb3MgPj0gMCAmJiBhUG9zIDwgaUVudHJpZXMtPkNv
dW50KCkgKTsNCisgICAgfQ0KKw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ0h0dHBD
YWNoZUxvb2t1cFRhYmxlOjpNZXJnZUwNCisvLw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQor
Ly8NCit2b2lkIENIdHRwQ2FjaGVMb29rdXBUYWJsZTo6TWVyZ2VMKCBDSHR0cENhY2hlTG9va3Vw
VGFibGUqIGFIdHRwQ2FjaGVMb29rdXBUYWJsZSwgUkZzIGFSZnMgKQ0KKyAgICB7DQorICAgIFRJ
bnQgbXlDb3VudCA9IGlFbnRyaWVzLT5Db3VudCgpOw0KKyAgICBUSW50IGkgPSAwOw0KKyAgICBm
b3IgKGkgPSBteUNvdW50IC0gMTsgaSA+PSAwOyBpLS0pDQorICAgICAgICB7DQorICAgICAgICBp
ZiAoIFZhbGlkKCBpICkgKQ0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICBDSHR0cENhY2hl
RW50cnkqIGVudHJ5ID0gaUVudHJpZXMtPkF0KGkpOw0KKyAgICAgICAgICAgIENIdHRwQ2FjaGVF
bnRyeSogbmV3RW50cnkgPSBhSHR0cENhY2hlTG9va3VwVGFibGUtPkZpbmQoZW50cnktPlVybCgp
KTsNCisgICAgICAgICAgICBpZiAobmV3RW50cnkpDQorICAgICAgICAgICAgICAgIHsNCisgICAg
ICAgICAgICAgICAgLy8gRW50cnkgaXMgaW4gdGhlIG5ldyBpbmRleCBmaWxlDQorICAgICAgICAg
ICAgICAgIGlmIChuZXdFbnRyeS0+TGFzdEFjY2Vzc2VkKCkgPiBlbnRyeS0+TGFzdEFjY2Vzc2Vk
KCkpDQorICAgICAgICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgICAgICBlbnRyeS0+
QWNjZXNzZWQobmV3RW50cnktPkxhc3RBY2Nlc3NlZCgpLCBuZXdFbnRyeS0+UmVmKCkpOw0KKyAg
ICAgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICBUSW50IHBvcyA9IGFIdHRwQ2Fj
aGVMb29rdXBUYWJsZS0+UHJvYmUobmV3RW50cnktPlVybCgpLCBFRmFsc2UpOw0KKyAgICAgICAg
ICAgICAgICBpZiAoYUh0dHBDYWNoZUxvb2t1cFRhYmxlLT5WYWxpZChwb3MpKQ0KKyAgICAgICAg
ICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICAgICAgYUh0dHBDYWNoZUxvb2t1cFRhYmxl
LT5TZXREZWxldGVkKHBvcyk7DQorICAgICAgICAgICAgICAgICAgICBkZWxldGUgbmV3RW50cnk7
DQorICAgICAgICAgICAgICAgICAgICBhSHR0cENhY2hlTG9va3VwVGFibGUtPmlDb3VudC0tOw0K
KyAgICAgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAg
ZWxzZSAvLyAobmV3RW50cnkpDQorICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAg
Ly8gRW50cnkgaXMgbm90IGluIHRoZSBuZXcgaW5kZXggZmlsZQ0KKyAgICAgICAgICAgICAgICBU
VWludCBhdHQ7DQorICAgICAgICAgICAgICAgIGlmIChhUmZzLkF0dChlbnRyeS0+RmlsZW5hbWUo
KSwgYXR0KSAhPSBLRXJyTm9uZSkNCisgICAgICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAg
ICAgICAgICAgIFRJbnQgdGhlUG9zID0gUHJvYmUoZW50cnktPlVybCgpLCBFRmFsc2UpOw0KKyAg
ICAgICAgICAgICAgICAgICAgaWYgKFZhbGlkKHRoZVBvcykpDQorICAgICAgICAgICAgICAgICAg
ICAgICAgew0KKyAgICAgICAgICAgICAgICAgICAgICAgIEVyYXNlKHRoZVBvcyk7DQorICAgICAg
ICAgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAg
ICAgICB9DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgfQ0KKw0KKyAgICBUSW50IG5ld0NvdW50
ID0gYUh0dHBDYWNoZUxvb2t1cFRhYmxlLT5pRW50cmllcy0+Q291bnQoKTsNCisgICAgZm9yIChp
ID0gbmV3Q291bnQgLSAxOyBpID49IDA7IGktLSkNCisgICAgICAgIHsNCisgICAgICAgIGlmICgg
YUh0dHBDYWNoZUxvb2t1cFRhYmxlLT5WYWxpZCggaSApICkNCisgICAgICAgICAgICB7DQorICAg
ICAgICAgICAgQ0h0dHBDYWNoZUVudHJ5KiBuZXdFbnRyeSA9IGFIdHRwQ2FjaGVMb29rdXBUYWJs
ZS0+aUVudHJpZXMtPkF0KGkpOw0KKyAgICAgICAgICAgIFRJbnQgcG9zID0gYUh0dHBDYWNoZUxv
b2t1cFRhYmxlLT5Qcm9iZShuZXdFbnRyeS0+VXJsKCksIEVGYWxzZSk7DQorICAgICAgICAgICAg
VFVpbnQgYXR0Ow0KKyAgICAgICAgICAgIGlmIChhUmZzLkF0dChuZXdFbnRyeS0+RmlsZW5hbWUo
KSwgYXR0KSA9PSBLRXJyTm9uZSkNCisgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAg
ICBDSHR0cENhY2hlRW50cnkqIG15RW50cnkgPSBJbnNlcnRMKG5ld0VudHJ5LT5VcmwoKSk7DQor
ICAgICAgICAgICAgICAgIG15RW50cnktPlNldFN0YXRlKCBDSHR0cENhY2hlRW50cnk6OkVDYWNo
ZUNvbXBsZXRlICk7DQorICAgICAgICAgICAgICAgIG15RW50cnktPkFjY2Vzc2VkKG5ld0VudHJ5
LT5MYXN0QWNjZXNzZWQoKSwgbmV3RW50cnktPlJlZigpKTsNCisgICAgICAgICAgICAgICAgfSAg
ICAgICAgICANCisgICAgICAgICAgICBhSHR0cENhY2hlTG9va3VwVGFibGUtPlNldERlbGV0ZWQo
cG9zKTsNCisgICAgICAgICAgICBkZWxldGUgbmV3RW50cnk7DQorICAgICAgICAgICAgYUh0dHBD
YWNoZUxvb2t1cFRhYmxlLT5pQ291bnQtLTsNCisgICAgICAgICAgICB9DQorICAgICAgICB9DQog
ICAgIH0NCiAvLyAgRW5kIG9mIEZpbGUNCkluZGV4OiBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2Fj
aGVTcmMvSHR0cENhY2hlT2JzZXJ2ZXIuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L1Jlc291
cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZU9ic2VydmVyLmNwcAkocmV2aXNpb24gMCkNCisr
KyBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hlT2JzZXJ2ZXIuY3BwCShy
ZXZpc2lvbiAwKQ0KQEAgLTAsMCArMSwxNjAgQEANCisvKg0KKyogPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09DQorKiAgTmFtZSAgICAgICAgOiBIdHRwQ2FjaGVPYnNlcnZlci5jcHANCisqICBQYXJ0IG9m
ICAgICA6IFdlYktpdCAvIFJlc291cmNlTG9hZGVyDQorKiAgSW50ZXJmYWNlICAgOg0KKyogIERl
c2NyaXB0aW9uIDogSW1wbGVtZW50YXRpb24gb2YgQ0h0dHBDYWNoZU9ic2VydmVyDQorKiAgVmVy
c2lvbiAgICAgOiAlVmVyc2lvbiUNCisqDQorKiAgICBDb3B5cmlnaHQgKGMpIDIwMDYsIE5va2lh
IENvcnBvcmF0aW9uDQorKiAgICBBbGwgcmlnaHRzIHJlc2VydmVkLg0KKyoNCisqICAgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0DQorKiAgIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucw0KKyogICBhcmUgbWV0Og0KKyoNCisqICAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodA0K
KyogICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4NCisqICAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodA0KKyogICAgICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbg0KKyog
ICAgICAgIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUNCisqICAgICAgICBkaXN0cmlidXRpb24uDQorKiAgICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiB0aGUgTm9raWEgQ29ycG9yYXRpb24gbm9yIHRoZSBuYW1lcyBvZiBpdHMNCisqICAg
ICAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQNCisqICAgICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uDQorKg0KKyogICBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTDQorKiAgICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UDQorKiAgIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUg0KKyogICBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVA0KKyogICBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwNCisqICAgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVA0KKyogICBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwNCisqICAgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
DQorKiAgIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQNCisqICAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUNCisqICAgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSA0KKyogICBEQU1B
R0UuDQorKg0KKyogICAgUGxlYXNlIHNlZSBmaWxlIHBhdGVudGxpY2Vuc2UudHh0IGZvciBmdXJ0
aGVyIGdyYW50cy4NCisqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyovDQorDQorLy8gSU5DTFVE
RSBGSUxFUw0KKyNpbmNsdWRlICJIdHRwQ2FjaGVPYnNlcnZlci5oIg0KKyNpbmNsdWRlICJIdHRw
Q2FjaGVIYW5kbGVyLmgiDQorDQorDQorLy8gRVhURVJOQUwgREFUQSBTVFJVQ1RVUkVTDQorDQor
Ly8gRVhURVJOQUwgRlVOQ1RJT04gUFJPVE9UWVBFUw0KKw0KKy8vIENPTlNUQU5UUw0KKw0KKy8v
IE1BQ1JPUw0KKw0KKy8vIExPQ0FMIENPTlNUQU5UUyBBTkQgTUFDUk9TDQorDQorLy8gTU9EVUxF
IERBVEEgU1RSVUNUVVJFUw0KKw0KKy8vIExPQ0FMIEZVTkNUSU9OIFBST1RPVFlQRVMNCisNCisv
LyBGT1JXQVJEIERFQ0xBUkFUSU9OUw0KKw0KKw0KKy8vID09PT09PT09PT09PT09PT09PT09PT09
PT09PT0gTUVNQkVSIEZVTkNUSU9OUyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQor
DQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBDSHR0cENhY2hlT2JzZXJ2ZXI6OkNIdHRw
Q2FjaGVPYnNlcnZlcg0KKy8vIEMrKyBkZWZhdWx0IGNvbnN0cnVjdG9yIGNhbiBOT1QgY29udGFp
biBhbnkgY29kZSwgdGhhdA0KKy8vIG1pZ2h0IGxlYXZlLg0KKy8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tDQorLy8NCitDSHR0cENhY2hlT2JzZXJ2ZXI6OkNIdHRwQ2FjaGVPYnNlcnZlcihDSHR0cENh
Y2hlSGFuZGxlciogYUh0dHBDYWNoZUhhbmRsZXIpIDogQ0FjdGl2ZSggQ0FjdGl2ZTo6RVByaW9y
aXR5SWRsZSApLA0KK2lIdHRwQ2FjaGVIYW5kbGVyKGFIdHRwQ2FjaGVIYW5kbGVyKQ0KKyAgICB7
DQorICAgIENBY3RpdmVTY2hlZHVsZXI6OkFkZCh0aGlzKTsNCisgICAgfQ0KKw0KKy8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tDQorLy8gQ0h0dHBDYWNoZU9ic2VydmVyOjpDb25zdHJ1Y3RMDQorLy8g
U3ltYmlhbiAybmQgcGhhc2UgY29uc3RydWN0b3IgY2FuIGxlYXZlLg0KKy8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tDQorLy8NCit2b2lkIENIdHRwQ2FjaGVPYnNlcnZlcjo6Q29uc3RydWN0TChjb25z
dCBIQnVmQyogYURpcmVjdG9yeSwgY29uc3QgSEJ1ZkMqIGFJbmRleEZpbGUpDQorICAgIHsNCisg
ICAgVXNlcjo6TGVhdmVJZkVycm9yKGlGc1Nlc3Npb24uQ29ubmVjdCgpKTsNCisgICAgaUZpbGVO
YW1lID0gSEJ1ZkM6Ok5ld0woYURpcmVjdG9yeS0+TGVuZ3RoKCkgKyBhSW5kZXhGaWxlLT5MZW5n
dGgoKSk7DQorICAgIGlGaWxlTmFtZS0+RGVzKCkuQ29weSgqYURpcmVjdG9yeSk7DQorICAgIGlG
aWxlTmFtZS0+RGVzKCkuQXBwZW5kKCphSW5kZXhGaWxlKTsNCisgICAgfQ0KKw0KKy8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tDQorLy8gQ0h0dHBDYWNoZU9ic2VydmVyOjpOZXdMDQorLy8gVHdvLXBo
YXNlZCBjb25zdHJ1Y3Rvci4NCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vDQorQ0h0dHBD
YWNoZU9ic2VydmVyKiBDSHR0cENhY2hlT2JzZXJ2ZXI6Ok5ld0woIGNvbnN0IEhCdWZDKiBhRGly
ZWN0b3J5LCBjb25zdCBIQnVmQyogYUluZGV4RmlsZSwNCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDSHR0cENhY2hlSGFuZGxlciogYUh0
dHBDYWNoZUhhbmRsZXIpDQorICAgIHsNCisgICAgQ0h0dHBDYWNoZU9ic2VydmVyKiBzZWxmID0g
bmV3KCBFTGVhdmUgKSBDSHR0cENhY2hlT2JzZXJ2ZXIoYUh0dHBDYWNoZUhhbmRsZXIpOw0KKyAg
ICBDbGVhbnVwU3RhY2s6OlB1c2hMKCBzZWxmICk7DQorICAgIHNlbGYtPkNvbnN0cnVjdEwoYURp
cmVjdG9yeSwgYUluZGV4RmlsZSk7DQorICAgIENsZWFudXBTdGFjazo6UG9wKCk7DQorICAgIHJl
dHVybiBzZWxmOw0KKyAgICB9DQorDQorLy8gRGVzdHJ1Y3Rvcg0KK0NIdHRwQ2FjaGVPYnNlcnZl
cjo6fkNIdHRwQ2FjaGVPYnNlcnZlcigpDQorICAgIHsNCisgICAgQ2FuY2VsKCk7DQorICAgIGRl
bGV0ZSBpRmlsZU5hbWU7DQorICAgIGlGc1Nlc3Npb24uQ2xvc2UoKTsNCisgICAgfQ0KKw0KKy8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ0h0dHBDYWNoZU9ic2VydmVyOjpSdW5MDQorLy8N
CisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vDQordm9pZCBDSHR0cENhY2hlT2JzZXJ2ZXI6
OlJ1bkwoKQ0KKyAgICB7DQorICAgIGlIdHRwQ2FjaGVIYW5kbGVyLT5VcGRhdGVMb29rdXBUYWJs
ZSgpOw0KKyAgICB9DQorDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBDSHR0cENhY2hl
T2JzZXJ2ZXI6OlJ1bkVycm9yDQorLy8NCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vDQor
VEludCBDSHR0cENhY2hlT2JzZXJ2ZXI6OlJ1bkVycm9yKFRJbnQgLyphRXJyb3IqLykNCisgICAg
ew0KKyAgICByZXR1cm4gS0Vyck5vbmU7DQorICAgIH0NCisNCisvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQ0KKy8vIENIdHRwQ2FjaGVPYnNlcnZlcjo6RG9DYW5jZWwNCisvLw0KKy8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tDQorLy8NCit2b2lkIENIdHRwQ2FjaGVPYnNlcnZlcjo6RG9DYW5jZWwoKQ0K
KyAgICB7DQorICAgIGlGc1Nlc3Npb24uTm90aWZ5Q2hhbmdlQ2FuY2VsKGlTdGF0dXMpOw0KKyAg
ICB9DQorDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBDSHR0cENhY2hlT2JzZXJ2ZXI6
OlN0YXJ0T2JzZXJ2ZXJMDQorLy8NCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vDQordm9p
ZCBDSHR0cENhY2hlT2JzZXJ2ZXI6OlN0YXJ0T2JzZXJ2ZXJMKCkNCisgICAgew0KKyAgICBpZiAo
IUlzQWN0aXZlKCkpDQorICAgICAgICB7DQorICAgICAgICBpRnNTZXNzaW9uLk5vdGlmeUNoYW5n
ZShFTm90aWZ5V3JpdGUsIGlTdGF0dXMsICppRmlsZU5hbWUpOw0KKyAgICAgICAgU2V0QWN0aXZl
KCk7DQorICAgICAgICB9DQorICAgIH0NCisNCisNCisvLyAgRW5kIG9mIEZpbGUNCkluZGV4OiBX
ZWJLaXQvZ3JvdXAvQnJvd3NlckNhY2hlLm1tcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9ncm91
cC9Ccm93c2VyQ2FjaGUubW1wCShyZXZpc2lvbiAxODIyMSkNCisrKyBXZWJLaXQvZ3JvdXAvQnJv
d3NlckNhY2hlLm1tcAkod29ya2luZyBjb3B5KQ0KQEAgLTY2LDYgKzY2LDcgQEAgU09VUkNFICAg
ICAgICBIdHRwQ2FjaGVNYW5hZ2VyLmNwcA0KIFNPVVJDRSAgICAgICAgSHR0cENhY2hlRW50cnku
Y3BwDQogU09VUkNFICAgICAgICBIdHRwQ2FjaGVFdmljdGlvbkhhbmRsZXIuY3BwDQogU09VUkNF
ICAgICAgICBIdHRwQ2FjaGVIYW5kbGVyLmNwcA0KK1NPVVJDRSAgICAgICAgSHR0cENhY2hlT2Jz
ZXJ2ZXIuY3BwDQogU09VUkNFICAgICAgICBIdHRwQ2FjaGVMb29rdXBUYWJsZS5jcHANCiBTT1VS
Q0UgICAgICAgIEh0dHBDYWNoZVN0cmVhbUhhbmRsZXIuY3BwDQogU09VUkNFICAgICAgICBIdHRw
Q2FjaGVVdGlsLmNwcA0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11871</attachid>
            <date>2006-12-15 13:54:40 -0800</date>
            <delta_ts>2006-12-18 15:04:29 -0800</delta_ts>
            <desc>3.1 fix, removed extra L in StartObserver</desc>
            <filename>MyBrilliantWork.patch</filename>
            <type>text/plain</type>
            <size>36204</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxODIzNykNCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpDQpA
QCAtMSwzICsxLDQxIEBADQorMjAwNi0xMi0xNCAgeWFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lh
LmNvbT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKyAgICAgICAg
REVTQzogQnVnIDExODM0OiBUTFVVLTZWSlFYMyA6IENhY2hlIGNhbm5vdCBzdXBwb3J0IG1vcmUg
dGhhbiBvbmUgYXBwbGljYXRpb24gc2ltdWx0YW5lb3VzbHkNCisgICAgICAgIGh0dHA6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODM0DQorDQorICAgICAgICAqIENoYW5nZUxv
ZzoNCisgICAgICAgICogUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlRW50cnkuaDoN
CisgICAgICAgICogUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlSGFuZGxlci5oOg0K
KyAgICAgICAgKiBSZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVMb29rdXBUYWJsZS5o
Og0KKyAgICAgICAgKiBSZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVPYnNlcnZlci5o
OiBBZGRlZC4NCisgICAgICAgIChOT05TSEFSQUJMRV9DTEFTUyk6DQorICAgICAgICAqIFJlc291
cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZUVudHJ5LmNwcDoNCisgICAgICAgIChDSHR0cENh
Y2hlRW50cnk6On5DSHR0cENhY2hlRW50cnkpOg0KKyAgICAgICAgKENIdHRwQ2FjaGVFbnRyeTo6
U2V0U2l6ZSk6DQorICAgICAgICAoQ0h0dHBDYWNoZUVudHJ5OjpJbnRlcm5hbGl6ZSk6DQorICAg
ICAgICAoQ0h0dHBDYWNoZUVudHJ5OjpFeHRlcm5hbGl6ZSk6DQorICAgICAgICAoQ0h0dHBDYWNo
ZUVudHJ5OjpBY2Nlc3NlZCk6DQorICAgICAgICAqIFJlc291cmNlTG9hZGVyL0NhY2hlU3JjL0h0
dHBDYWNoZUhhbmRsZXIuY3BwOg0KKyAgICAgICAgKENIdHRwQ2FjaGVIYW5kbGVyOjpDb25zdHJ1
Y3RMKToNCisgICAgICAgIChDSHR0cENhY2hlSGFuZGxlcjo6fkNIdHRwQ2FjaGVIYW5kbGVyKToN
CisgICAgICAgIChDSHR0cENhY2hlSGFuZGxlcjo6T3Blbkxvb2t1cFRhYmxlTCk6DQorICAgICAg
ICAoQ0h0dHBDYWNoZUhhbmRsZXI6OlNhdmVMb29rdXBUYWJsZUwpOg0KKyAgICAgICAgKENIdHRw
Q2FjaGVIYW5kbGVyOjpEb0JhY2tncm91bmRTYXZlKToNCisgICAgICAgIChDSHR0cENhY2hlSGFu
ZGxlcjo6VXBkYXRlTG9va3VwVGFibGUpOg0KKyAgICAgICAgKENIdHRwQ2FjaGVIYW5kbGVyOjpV
cGRhdGVMb29rdXBUYWJsZUwpOg0KKyAgICAgICAgKiBSZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9I
dHRwQ2FjaGVMb29rdXBUYWJsZS5jcHA6DQorICAgICAgICAqIFJlc291cmNlTG9hZGVyL0NhY2hl
U3JjL0h0dHBDYWNoZU9ic2VydmVyLmNwcDogQWRkZWQuDQorICAgICAgICAoQ0h0dHBDYWNoZU9i
c2VydmVyOjpDSHR0cENhY2hlT2JzZXJ2ZXIpOg0KKyAgICAgICAgKENIdHRwQ2FjaGVPYnNlcnZl
cjo6Q29uc3RydWN0TCk6DQorICAgICAgICAoQ0h0dHBDYWNoZU9ic2VydmVyOjpOZXdMKToNCisg
ICAgICAgIChDSHR0cENhY2hlT2JzZXJ2ZXI6On5DSHR0cENhY2hlT2JzZXJ2ZXIpOg0KKyAgICAg
ICAgKENIdHRwQ2FjaGVPYnNlcnZlcjo6UnVuTCk6DQorICAgICAgICAoQ0h0dHBDYWNoZU9ic2Vy
dmVyOjpSdW5FcnJvcik6DQorICAgICAgICAoQ0h0dHBDYWNoZU9ic2VydmVyOjpEb0NhbmNlbCk6
DQorICAgICAgICAoQ0h0dHBDYWNoZU9ic2VydmVyOjpTdGFydE9ic2VydmVyKToNCisgICAgICAg
ICogZ3JvdXAvQnJvd3NlckNhY2hlLm1tcDoNCisNCiAyMDA2LTEyLTExICBzYXJlZW4gIDxzaHlh
bS5zYXJlZW5Abm9raWEuY29tPg0KIA0KICAgICAgICAgUmV2aWV3ZWQgU2FjaGluIFBhZG1hLg0K
SW5kZXg6IFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVFbnRyeS5oDQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09DQotLS0gV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNoZUVu
dHJ5LmgJKHJldmlzaW9uIDE4MjIxKQ0KKysrIFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZUlu
Yy9IdHRwQ2FjaGVFbnRyeS5oCSh3b3JraW5nIGNvcHkpDQpAQCAtOSw5ICs5LDkgQEANCiAqICAg
IENvcHlyaWdodCAoYykgMjAwNiwgTm9raWEgQ29ycG9yYXRpb24NCiAqICAgIEFsbCByaWdodHMg
cmVzZXJ2ZWQuDQogKiAgDQotKiAgCVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KLSogIAltb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMNCi0qICAJYXJl
IG1ldDoNCisqICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0DQorKiAgIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucw0KKyogICBhcmUgbWV0Og0KICog
IA0KICogICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0DQogKiAgICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KQEAgLTIzLDE4ICsyMywxOCBAQA0K
ICogICAgICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZA0KICogICAgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4NCiAqICANCi0qICAJVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUw0K
LSogIAkiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVA0KLSogIAlMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1INCi0qICAJQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQNCi0qICAJ
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsDQotKiAgCVNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QNCi0qICAJTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsDQotKiAgCURBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQ0KLSogIAlUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUDQotKiAgCShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFDQotKiAgCVVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gNCi0q
ICAJREFNQUdFLg0KKyogICBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTDQorKiAgICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UDQorKiAgIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUg0KKyogICBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVA0KKyogICBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwNCisqICAgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVA0K
KyogICBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwNCisqICAgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZDQorKiAgIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQNCisq
ICAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUNCisqICAgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSA0KKyogICBEQU1BR0UuDQogKiAgDQogKiAgICBQbGVh
c2Ugc2VlIGZpbGUgcGF0ZW50bGljZW5zZS50eHQgZm9yIGZ1cnRoZXIgZ3JhbnRzLg0KICogPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09DQpAQCAtMjM3LDYgKzIzNywxNCBAQCBjbGFzcyBDSHR0cENhY2hl
RW50cnkgOiBwdWJsaWMgQ0Jhc2UNCiAgICAgICAgICogQHJldHVybiANCiAgICAgICAgICovDQog
ICAgICAgICBUSW50IEV4dGVybmFsaXplKCBSRmlsZVdyaXRlU3RyZWFtJiBhV3JpdGVTdHJlYW0g
KTsNCisNCisgICAgICAgIC8qKg0KKyAgICAgICAgKiANCisgICAgICAgICogQHNpbmNlIDMuMQ0K
KyAgICAgICAgKiBAcGFyYW0gDQorICAgICAgICAqIEByZXR1cm4gDQorICAgICAgICAqLw0KKyAg
ICAgICAgdm9pZCBBY2Nlc3NlZChUSW50NjQgYUxhc3RBY2Nlc3NlZCwgVFVpbnQxNiBhUmVmKTsN
CiANCiAgICAgcHVibGljIDogDQogDQpJbmRleDogV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hl
SW5jL0h0dHBDYWNoZUhhbmRsZXIuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9SZXNvdXJjZUxv
YWRlci9DYWNoZUluYy9IdHRwQ2FjaGVIYW5kbGVyLmgJKHJldmlzaW9uIDE4MjIxKQ0KKysrIFdl
YktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVIYW5kbGVyLmgJKHdvcmtpbmcg
Y29weSkNCkBAIC02OCw2ICs2OCw3IEBAIGNsYXNzIE1IVFRQRGF0YVN1cHBsaWVyOw0KIGNsYXNz
IENJZGxlOw0KIGNsYXNzIENIdHRwQ2FjaGVFdmljdGlvbkhhbmRsZXI7DQogY2xhc3MgVEh0dHBD
YWNoZUVudHJ5Ow0KK2NsYXNzIENIdHRwQ2FjaGVPYnNlcnZlcjsNCiANCiAvLyBDTEFTUyBERUNM
QVJBVElPTg0KIA0KQEAgLTIwMyw2ICsyMDQsMTUgQEAgY2xhc3MgQ0h0dHBDYWNoZUhhbmRsZXIg
OiBwdWJsaWMgQ0Jhc2UNCiAgICAgICAgICovDQogICAgICAgICB2b2lkIEFkanVzdFJlc3BvbnNl
VGltZShSSFRUUFRyYW5zYWN0aW9uJiBhVHJhbnMpOw0KIA0KKyAgICAgICAgLyoqDQorICAgICAg
ICAqIFNvbWUgb3RoZXIgYXBwbGljYXRpb24gbW9kaWZpZWQgdGhlIGNhY2hlIGFuZCB0aGUgbG9v
a3VwIHRhYmxlIG5lZWRzIHRvIGJlIHVwZGF0ZWQNCisgICAgICAgICoNCisgICAgICAgICogQHNp
bmNlIDMuMQ0KKyAgICAgICAgKiBAcGFyYW0NCisgICAgICAgICogQHJldHVybg0KKyAgICAgICAg
Ki8NCisgICAgICAgIHZvaWQgVXBkYXRlTG9va3VwVGFibGUoKTsNCisNCiAgICAgcHJpdmF0ZToN
CiANCiAgICAgICAgIC8qKg0KQEAgLTIyMiw2ICsyMzIsMTUgQEAgY2xhc3MgQ0h0dHBDYWNoZUhh
bmRsZXIgOiBwdWJsaWMgQ0Jhc2UNCiAgICAgcHJpdmF0ZTogLy8NCiANCiAgICAgICAgIC8qKg0K
KyAgICAgICAgKiBTb21lIG90aGVyIGFwcGxpY2F0aW9uIG1vZGlmaWVkIHRoZSBjYWNoZSBhbmQg
dGhlIGxvb2t1cCB0YWJsZSBuZWVkcyB0byBiZSB1cGRhdGVkDQorICAgICAgICAqDQorICAgICAg
ICAqIEBzaW5jZSAzLjENCisgICAgICAgICogQHBhcmFtDQorICAgICAgICAqIEByZXR1cm4NCisg
ICAgICAgICovDQorICAgICAgICB2b2lkIFVwZGF0ZUxvb2t1cFRhYmxlTCgpOw0KKw0KKyAgICAg
ICAgLyoqDQogICAgICAgICAqDQogICAgICAgICAqIEBzaW5jZSAzLjENCiAgICAgICAgICogQHBh
cmFtDQpAQCAtMjkxLDYgKzMxMCwxNSBAQCBjbGFzcyBDSHR0cENhY2hlSGFuZGxlciA6IHB1Ymxp
YyBDQmFzZQ0KICAgICAgICAgKiBAcGFyYW0NCiAgICAgICAgICogQHJldHVybg0KICAgICAgICAg
Ki8NCisgICAgICAgIHZvaWQgT3Blbkxvb2t1cFRhYmxlTChDSHR0cENhY2hlTG9va3VwVGFibGUq
IGFMb29rdXBUYWJsZSk7DQorDQorICAgICAgICAvKioNCisgICAgICAgICoNCisgICAgICAgICog
QHNpbmNlIDMuMQ0KKyAgICAgICAgKiBAcGFyYW0NCisgICAgICAgICogQHBhcmFtDQorICAgICAg
ICAqIEByZXR1cm4NCisgICAgICAgICovDQogICAgICAgICB2b2lkIEhhbmRsZUNvcnJ1cHRFbnRy
eSggQ0h0dHBDYWNoZUVudHJ5JiBhU3RyYXlFbnRyeSwgVEJvb2wgYVVwZGF0ZSA9IEVUcnVlICk7
DQogDQogICAgICAgICAvKioNCkBAIC0zNDUsNiArMzczLDggQEAgY2xhc3MgQ0h0dHBDYWNoZUhh
bmRsZXIgOiBwdWJsaWMgQ0Jhc2UNCiAgICAgICAgIENJZGxlKiAgICAgICAgICAgICAgICAgICAg
ICAgICAgaUlkbGU7ICAgICAgLy8gb3duZWQNCiAgICAgICAgIC8vIG5hbWUgb2YgdGhlIGluZGV4
IGZpbGUNCiAgICAgICAgIEhCdWZDKiAgICAgICAgICAgICAgICAgICAgICAgICAgaUluZGV4Rmls
ZTsgLy8gb3duZWQNCisgICAgICAgIC8vIE9ic2VydmluZyBjaGFuZ2VzIGluIGNhY2hlDQorICAg
ICAgICBDSHR0cENhY2hlT2JzZXJ2ZXIqIGlIdHRwQ2FjaGVPYnNlcnZlcjsgLy8gb3duZWQNCiAg
ICAgfTsNCiANCiAjZW5kaWYgICAgICAvLyBDSFRUUENBQ0hFSEFORExFUl9IDQpJbmRleDogV2Vi
S2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNoZUxvb2t1cFRhYmxlLmgNCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0NCi0tLSBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlTG9va3Vw
VGFibGUuaAkocmV2aXNpb24gMTgyMjEpDQorKysgV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hl
SW5jL0h0dHBDYWNoZUxvb2t1cFRhYmxlLmgJKHdvcmtpbmcgY29weSkNCkBAIC05LDkgKzksOSBA
QA0KICogICAgQ29weXJpZ2h0IChjKSAyMDA2LCBOb2tpYSBDb3Jwb3JhdGlvbg0KICogICAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4NCiAqICANCi0qICAJUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQotKiAgCW1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucw0K
LSogIAlhcmUgbWV0Og0KKyogICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCisqICAgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQorKiAgIGFyZSBt
ZXQ6DQogKiAgDQogKiAgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCiAqICAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuDQpAQCAtMjMsMTggKzIz
LDE4IEBADQogKiAgICAgICAgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkDQogKiAgICAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLg0KICogIA0KLSogIAlUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTDQotKiAgCSJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UDQotKiAgCUxJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUg0KLSogIAlBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VA0KLSogIAlPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwNCi0qICAJU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVA0KLSogIAlMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwNCi0q
ICAJREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZDQotKiAgCVRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQNCi0qICAJKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUNCi0qICAJVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSA0KLSogIAlEQU1BR0UuDQorKiAgIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMNCisqICAgIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QNCisqICAg
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SDQorKiAgIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUDQorKiAgIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLA0KKyogICBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UDQorKiAgIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLA0KKyogICBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkNCisqICAgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVA0KKyogICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRQ0KKyogICBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIDQorKiAgIERBTUFHRS4NCiAqICANCiAq
ICAgIFBsZWFzZSBzZWUgZmlsZSBwYXRlbnRsaWNlbnNlLnR4dCBmb3IgZnVydGhlciBncmFudHMu
DQogKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC00NSw2ICs0NSw3IEBADQogDQogLy8gIElO
Q0xVREVTDQogI2luY2x1ZGUgPGUzMmJhc2UuaD4NCisjaW5jbHVkZSA8czMyZmlsZS5oPg0KIA0K
IC8vIENPTlNUQU5UUw0KIA0KQEAgLTk0LDcgKzk1LDcgQEAgY2xhc3MgQ0h0dHBDYWNoZUxvb2t1
cFRhYmxlIDogcHVibGljIENCYQ0KICAgICAgICAgKiBAcGFyYW0NCiAgICAgICAgICogQHJldHVy
bg0KICAgICAgICAgKi8NCi0JCUNIdHRwQ2FjaGVFbnRyeSogSW5zZXJ0TCggY29uc3QgVERlc0M4
JiBhVXJsICk7DQorICAgIENIdHRwQ2FjaGVFbnRyeSogSW5zZXJ0TCggY29uc3QgVERlc0M4JiBh
VXJsICk7DQogDQogICAgICAgICAvKioNCiAgICAgICAgICoNCkBAIC0xMDIsNyArMTAzLDcgQEAg
Y2xhc3MgQ0h0dHBDYWNoZUxvb2t1cFRhYmxlIDogcHVibGljIENCYQ0KICAgICAgICAgKiBAcGFy
YW0NCiAgICAgICAgICogQHJldHVybg0KICAgICAgICAgKi8NCi0JCUNIdHRwQ2FjaGVFbnRyeSog
RmluZCggY29uc3QgVERlc0M4JiBhVXJsICk7DQorICAgIENIdHRwQ2FjaGVFbnRyeSogRmluZCgg
Y29uc3QgVERlc0M4JiBhVXJsICk7DQogDQogICAgICAgICAvKioNCiAgICAgICAgICoNCkBAIC0x
MTAsNyArMTExLDcgQEAgY2xhc3MgQ0h0dHBDYWNoZUxvb2t1cFRhYmxlIDogcHVibGljIENCYQ0K
ICAgICAgICAgKiBAcGFyYW0NCiAgICAgICAgICogQHJldHVybg0KICAgICAgICAgKi8NCi0JCVRJ
bnQgUmVtb3ZlKCBjb25zdCBURGVzQzgmIGFVcmwgKTsNCisgICAgVEludCBSZW1vdmUoIGNvbnN0
IFREZXNDOCYgYVVybCApOw0KIA0KICAgICAgICAgLyoqDQogICAgICAgICAqDQpAQCAtMTE4LDcg
KzExOSw3IEBAIGNsYXNzIENIdHRwQ2FjaGVMb29rdXBUYWJsZSA6IHB1YmxpYyBDQmENCiAgICAg
ICAgICogQHBhcmFtDQogICAgICAgICAqIEByZXR1cm4NCiAgICAgICAgICovDQotCQlUSW50IFJl
bW92ZUFsbCgpOw0KKyAgICBUSW50IFJlbW92ZUFsbCgpOw0KIA0KICAgICAgICAgLyoqDQogICAg
ICAgICAqDQpAQCAtMTUyLDYgKzE1MywxNCBAQCBjbGFzcyBDSHR0cENhY2hlTG9va3VwVGFibGUg
OiBwdWJsaWMgQ0JhDQogICAgICAgICAqLw0KICAgICAgICAgdm9pZCBFeHRlcm5hbGl6ZUwoIFJG
aWxlV3JpdGVTdHJlYW0mIGFXcml0ZVN0cmVhbSApOw0KIA0KKyAgICAgICAgLyoqDQorICAgICAg
ICAqDQorICAgICAgICAqIEBzaW5jZSAzLjENCisgICAgICAgICogQHBhcmFtDQorICAgICAgICAq
IEByZXR1cm4NCisgICAgICAgICovDQorICAgIHZvaWQgTWVyZ2VMKCBDSHR0cENhY2hlTG9va3Vw
VGFibGUqIGFIdHRwQ2FjaGVMb29rdXBUYWJsZSwgUkZzIGFSZnMgICk7DQorDQogICAgIHByaXZh
dGU6DQogDQogICAgICAgICAvKioNCkBAIC0yNjEsNyArMjcwLDcgQEAgY2xhc3MgQ0h0dHBDYWNo
ZUxvb2t1cFRhYmxlIDogcHVibGljIENCYQ0KICAgICBwcml2YXRlOiAgICAvLyBEYXRhDQogDQog
ICAgICAgICAvLyBoYXNoIHRhYmxlIGZvciBjYWNoZSBlbnRyaWVzDQotCQlDQXJyYXlQdHJGbGF0
PENIdHRwQ2FjaGVFbnRyeT4qIGlFbnRyaWVzOw0KKyAgICBDQXJyYXlQdHJGbGF0PENIdHRwQ2Fj
aGVFbnRyeT4qIGlFbnRyaWVzOw0KICAgICAgICAgLy8gbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhl
IGhhc2h0YWJsZQ0KICAgICAgICAgVEludCAgICAgICAgICAgICAgICAgICAgICAgICAgICBpQ291
bnQ7DQogICAgICAgICAvLw0KSW5kZXg6IFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZUluYy9I
dHRwQ2FjaGVPYnNlcnZlci5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L1Jlc291cmNlTG9hZGVy
L0NhY2hlSW5jL0h0dHBDYWNoZU9ic2VydmVyLmgJKHJldmlzaW9uIDApDQorKysgV2ViS2l0L1Jl
c291cmNlTG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNoZU9ic2VydmVyLmgJKHJldmlzaW9uIDApDQpA
QCAtMCwwICsxLDEyMSBAQA0KKy8qDQorKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisqICBOYW1l
ICAgICAgICA6IEh0dHBDYWNoZUhhbmRsZXJVcGRhdGVyLmgNCisqICBQYXJ0IG9mICAgICA6IFdl
YktpdCAvIFJlc291cmNlTG9hZGVyDQorKiAgSW50ZXJmYWNlICAgOg0KKyogIERlc2NyaXB0aW9u
IDogRGVmaW5pdGlvbiBvZiBDSHR0cENhY2hlT2JzZXJ2ZXINCisqICBWZXJzaW9uICAgICA6ICVW
ZXJzaW9uJQ0KKyoNCisqICAgIENvcHlyaWdodCAoYykgMjAwNiwgTm9raWEgQ29ycG9yYXRpb24N
CisqICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQorKg0KKyogICBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCisqICAgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zDQorKiAgIGFyZSBtZXQ6DQorKg0KKyogICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQorKiAgICAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
Lg0KKyogICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0DQorKiAgICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluDQorKiAgICAgICAgdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQ0KKyog
ICAgICAgIGRpc3RyaWJ1dGlvbi4NCisqICAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBO
b2tpYSBDb3Jwb3JhdGlvbiBub3IgdGhlIG5hbWVzIG9mIGl0cw0KKyogICAgICAgIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZA0K
KyogICAgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4NCisqDQorKiAgIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMNCisqICAgIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QNCisqICAg
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SDQorKiAgIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUDQorKiAgIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLA0KKyogICBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UDQorKiAgIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLA0KKyogICBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkNCisqICAgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVA0KKyogICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRQ0KKyogICBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIDQorKiAgIERBTUFHRS4NCisqDQorKiAg
ICBQbGVhc2Ugc2VlIGZpbGUgcGF0ZW50bGljZW5zZS50eHQgZm9yIGZ1cnRoZXIgZ3JhbnRzLg0K
KyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09DQorKi8NCisNCisjaWZuZGVmIENIVFRQQ0FDSEVPQlNF
UlZFUl9IDQorI2RlZmluZSBDSFRUUENBQ0hFT0JTRVJWRVJfSA0KKw0KKy8vICBJTkNMVURFUw0K
KyNpbmNsdWRlIDxlMzJiYXNlLmg+DQorI2luY2x1ZGUgPGYzMmZpbGUuaD4NCisNCisvLyBDT05T
VEFOVFMNCisNCisvLyBNQUNST1MNCisNCisvLyBEQVRBIFRZUEVTDQorDQorLy8gRlVOQ1RJT04g
UFJPVE9UWVBFUw0KKw0KKy8vIEZPUldBUkQgREVDTEFSQVRJT05TDQorY2xhc3MgQ0h0dHBDYWNo
ZUhhbmRsZXI7DQorDQorLy8gQ0xBU1MgREVDTEFSQVRJT04NCisNCisvKioNCisqDQorKiAgQGxp
Yg0KKyogIEBzaW5jZSAzLjENCisqLw0KK05PTlNIQVJBQkxFX0NMQVNTKENIdHRwQ2FjaGVPYnNl
cnZlcikgOiBwdWJsaWMgQ0FjdGl2ZQ0KKyAgICB7DQorICAgIHB1YmxpYzogIC8vIENvbnN0cnVj
dG9ycyBhbmQgZGVzdHJ1Y3Rvcg0KKw0KKyAgICAgICAgLyoqDQorICAgICAgICAqIFR3by1waGFz
ZWQgY29uc3RydWN0b3IuDQorICAgICAgICAqIEBzaW5jZSAzLjENCisgICAgICAgICogQHBhcmFt
DQorICAgICAgICAqIEBwYXJhbQ0KKyAgICAgICAgKiBAcmV0dXJuIENhY2hlSGFuZGxlciBvYmpl
Y3QuDQorICAgICAgICAqLw0KKyAgICAgICAgc3RhdGljIENIdHRwQ2FjaGVPYnNlcnZlciogTmV3
TCggY29uc3QgSEJ1ZkMqIGFEaXJlY3RvcnksIGNvbnN0IEhCdWZDKiBhSW5kZXhGaWxlLA0KKyAg
ICAgICAgICAgIENIdHRwQ2FjaGVIYW5kbGVyKiBhSHR0cENhY2hlSGFuZGxlcik7DQorDQorICAg
ICAgICAvKioNCisgICAgICAgICogRGVzdHJ1Y3Rvci4NCisgICAgICAgICovDQorICAgICAgICB2
aXJ0dWFsIH5DSHR0cENhY2hlT2JzZXJ2ZXIoKTsNCisNCisgICAgcHVibGljOiAvLyBuZXcgZnVu
Y3Rpb25zDQorICAgICAgICB2b2lkIFN0YXJ0T2JzZXJ2ZXIoKTsNCisNCisgICAgcHVibGljOiAv
LyBmcm9tIGJhc2UgY2xhc3MgQ0FjdGl2ZQ0KKyAgICAgICAgdm9pZCBSdW5MKCk7DQorICAgICAg
ICBUSW50IFJ1bkVycm9yKFRJbnQgYUVycm9yKTsNCisgICAgICAgIHZvaWQgRG9DYW5jZWwoKTsN
CisNCisgICAgcHJpdmF0ZToNCisNCisgICAgICAgIC8qKg0KKyAgICAgICAgKiBDb25zdHJ1Y3Qu
DQorICAgICAgICAqIEBzaW5jZSAzLjENCisgICAgICAgICogQHBhcmFtDQorICAgICAgICAqIEBw
YXJhbQ0KKyAgICAgICAgKiBAcmV0dXJuIENhY2hlT2JzZXJ2ZXIgb2JqZWN0Lg0KKyAgICAgICAg
Ki8NCisgICAgICAgIENIdHRwQ2FjaGVPYnNlcnZlcihDSHR0cENhY2hlSGFuZGxlciogYUh0dHBD
YWNoZUhhbmRsZXIpOw0KKw0KKyAgICAgICAgLyoqDQorICAgICAgICAqIEJ5IGRlZmF1bHQgU3lt
YmlhbiAybmQgcGhhc2UgY29uc3RydWN0b3IgaXMgcHJpdmF0ZS4NCisgICAgICAgICovDQorICAg
ICAgICB2b2lkIENvbnN0cnVjdEwoY29uc3QgSEJ1ZkMqIGFEaXJlY3RvcnksIGNvbnN0IEhCdWZD
KiBhSW5kZXhGaWxlKTsNCisNCisgICAgcHJpdmF0ZTogICAgLy8gRGF0YQ0KKw0KKyAgICAgICAg
Ly8gbmFtZSBhbmQgcGF0aCBvZiBpbmRleCBmaWxlDQorICAgICAgICBIQnVmQyogaUZpbGVOYW1l
OyAvLyBvd25lZA0KKyAgICAgICAgUkZzIGlGc1Nlc3Npb247IC8vIG5vdCBvd25lZA0KKyAgICAg
ICAgQ0h0dHBDYWNoZUhhbmRsZXIqIGlIdHRwQ2FjaGVIYW5kbGVyOw0KKyAgICB9Ow0KKw0KKyNl
bmRpZiAgICAgIC8vIENIVFRQQ0FDSEVPQlNFUlZFUl9IDQorDQorLy8gRW5kIG9mIEZpbGUNCklu
ZGV4OiBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hlRW50cnkuY3BwDQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09DQotLS0gV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZUVu
dHJ5LmNwcAkocmV2aXNpb24gMTgyMjEpDQorKysgV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hl
U3JjL0h0dHBDYWNoZUVudHJ5LmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTksOSArOSw5IEBADQog
KiAgICBDb3B5cmlnaHQgKGMpIDIwMDYsIE5va2lhIENvcnBvcmF0aW9uDQogKiAgICBBbGwgcmln
aHRzIHJlc2VydmVkLg0KICogIA0KLSogIAlSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCi0qICAJbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQotKiAg
CWFyZSBtZXQ6DQorKiAgIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KKyogICBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMNCisqICAgYXJlIG1ldDoN
CiAqICANCiAqICAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodA0KICogICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCkBAIC0yMywxOCArMjMsMTgg
QEANCiAqICAgICAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQNCiAqICAgICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uDQogKiAgDQotKiAgCVRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMNCi0qICAJIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QNCi0qICAJTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SDQotKiAgCUEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUDQot
KiAgCU9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLA0KLSogIAlTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UDQotKiAgCUxJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLA0KLSogIAlE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkNCi0qICAJVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVA0KLSogIAkoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRQ0KLSogIAlVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
DQotKiAgCURBTUFHRS4NCisqICAgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUw0KKyogICAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVA0KKyogICBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1INCisqICAgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQNCisqICAgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsDQorKiAgIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QNCisqICAgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsDQorKiAgIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQ0KKyogICBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
DQorKiAgIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFDQorKiAgIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gNCisqICAgREFNQUdFLg0KICogIA0KICogICAg
UGxlYXNlIHNlZSBmaWxlIHBhdGVudGxpY2Vuc2UudHh0IGZvciBmdXJ0aGVyIGdyYW50cy4NCiAq
ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTEyOCwxMCArMTI4LDEwIEBAIENIdHRwQ2FjaGVF
bnRyeSogQ0h0dHBDYWNoZUVudHJ5OjpOZXdMQygNCiAvLyBEZXN0cnVjdG9yDQogQ0h0dHBDYWNo
ZUVudHJ5Ojp+Q0h0dHBDYWNoZUVudHJ5KCkNCiAgICAgew0KLQlpZiggaVZpY3RpbSApDQotCQl7
DQotCQlpRXZpY3Rpb25IYW5kbGVyLT5SZW1vdmUoICp0aGlzICk7DQotCQl9DQorICBpZiggaVZp
Y3RpbSApDQorICAgIHsNCisgICAgaUV2aWN0aW9uSGFuZGxlci0+UmVtb3ZlKCAqdGhpcyApOw0K
KyAgICB9DQogICAgIGRlbGV0ZSBpVXJsOw0KICAgICBkZWxldGUgaUZpbGVOYW1lOw0KICAgICB9
DQpAQCAtMjA3LDExICsyMDcsMTEgQEAgdm9pZCBDSHR0cENhY2hlRW50cnk6OlNldFNpemUoDQog
ICAgICAgICAvLyBib2R5IHJlbW92YWwNCiAgICAgICAgIC8vIHJlbW92ZSBpdHNlbGYgZnJvbSB0
aGUgZXZpY3Rpb24gdGFibGUuDQogICAgICAgICAvLyB0aGlzIGlzIG5vIGxvbmdlciBhIHZpY3Rp
bQ0KLQkgICAgaWYoIGlWaWN0aW0gKQ0KLQkJICAgIHsNCi0JCSAgICBpRXZpY3Rpb25IYW5kbGVy
LT5SZW1vdmUoICp0aGlzICk7DQorICAgICAgaWYoIGlWaWN0aW0gKQ0KKyAgICAgICAgew0KKyAg
ICAgICAgaUV2aWN0aW9uSGFuZGxlci0+UmVtb3ZlKCAqdGhpcyApOw0KICAgICAgICAgICAgIGlW
aWN0aW0gPSBFRmFsc2U7DQotCQkgICAgfQ0KKyAgICAgICAgfQ0KICAgICAgICAgfQ0KICAgICBp
U2l6ZSA9IGFTaXplOw0KICAgICB9DQpAQCAtMjQyLDYgKzI0Miw3IEBAIFRJbnQgQ0h0dHBDYWNo
ZUVudHJ5OjpJbnRlcm5hbGl6ZSgNCiAgICAgLy8gdXJsIGxlbmd0aA0KICAgICBsZW4gPSBhUmVh
ZFN0cmVhbS5SZWFkSW50MzJMKCk7DQogICAgIGRlbGV0ZSBpVXJsOw0KKyAgICBpVXJsPU5VTEw7
DQogICAgIGlVcmwgPSBIQnVmQzg6Ok5ld0woIGxlbiApOw0KICAgICBUUHRyOCBwdHI4KCBpVXJs
LT5EZXMoKSApOw0KICAgICAvLyB1cmwNCkBAIC0zMDEsNiArMzAyLDI4IEBAIFRJbnQgQ0h0dHBD
YWNoZUVudHJ5OjpFeHRlcm5hbGl6ZSgNCiAgICAgLy8gcHJvdGVjdGVkDQogICAgIGFXcml0ZVN0
cmVhbS5Xcml0ZUludDMyTCggaVByb3RlY3RlZCApOyApOw0KICAgICByZXR1cm4gZXJyOw0KKyAg
ICB9DQorDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBDSHR0cENhY2hlRW50cnk6OkFj
Y2Vzc2VkDQorLy8NCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vDQordm9pZCBDSHR0cENh
Y2hlRW50cnk6OkFjY2Vzc2VkKFRJbnQ2NCBhTGFzdEFjY2Vzc2VkLCBUVWludDE2IGFSZWYpDQor
ICAgIHsNCisgICAgaUxhc3RBY2Nlc3NlZCA9IGFMYXN0QWNjZXNzZWQ7DQorICAgIGlSZWYgPSBh
UmVmOw0KKyAgICBpZiggaVZpY3RpbSApDQorICAgICAgICB7DQorICAgICAgICBpRXZpY3Rpb25I
YW5kbGVyLT5BY2Nlc3NlZCggKnRoaXMgKTsNCisgICAgICAgIH0NCisjaWZkZWYgX19DQUNIRUxP
R19fDQorICAgIF9MSVQoIEtBY2Nlc3NGb3JtYXQsICJlbnRyeSBhY2Nlc3NlZDogJWQiICk7DQor
ICAgIFRCdWY8MTAwPiBidWY7DQorICAgIGJ1Zi5Gb3JtYXQoIEtBY2Nlc3NGb3JtYXQsIGlSZWYg
KTsNCisgICAgSHR0cENhY2hlVXRpbDo6V3JpdGVVcmxUb0xvZyggMCwgYnVmLCBpVXJsLT5EZXMo
KSApOw0KKyNlbmRpZiAvLyBfX0NBQ0hFTE9HX18NCisNCiAgICAgfQ0KIA0KIC8vICBFbmQgb2Yg
RmlsZQ0KSW5kZXg6IFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVIYW5k
bGVyLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9I
dHRwQ2FjaGVIYW5kbGVyLmNwcAkocmV2aXNpb24gMTgyMjEpDQorKysgV2ViS2l0L1Jlc291cmNl
TG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZUhhbmRsZXIuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAt
NDgsNiArNDgsNyBAQA0KICNpbmNsdWRlICJIdHRwQ2FjaGVTdHJlYW1IYW5kbGVyLmgiDQogI2lu
Y2x1ZGUgIkh0dHBDYWNoZVV0aWwuaCINCiAjaW5jbHVkZSAiSHR0cENhY2hlRXZpY3Rpb25IYW5k
bGVyLmgiDQorI2luY2x1ZGUgIkh0dHBDYWNoZU9ic2VydmVyLmgiDQogI2luY2x1ZGUgPGh0dHBc
UkhUVFBUcmFuc2FjdGlvbi5oPg0KICNpbmNsdWRlIDxodHRwXHJodHRwc2Vzc2lvbi5oPg0KICNp
bmNsdWRlIDxodHRwXHJodHRwaGVhZGVycy5oPg0KQEAgLTExNSw2ICsxMTYsOSBAQCB2b2lkIENI
dHRwQ2FjaGVIYW5kbGVyOjpDb25zdHJ1Y3RMKA0KICAgICBPcGVuTG9va3VwVGFibGVMKCk7DQog
ICAgIC8vDQogICAgIGlJZGxlID0gQ0lkbGU6Ok5ld0woIENBY3RpdmU6OkVQcmlvcml0eUlkbGUg
KTsNCisgICAgLy8NCisgICAgaUh0dHBDYWNoZU9ic2VydmVyID0gQ0h0dHBDYWNoZU9ic2VydmVy
OjpOZXdMKGlEaXJlY3RvcnksIGlJbmRleEZpbGUsIHRoaXMpOw0KKyAgICBpSHR0cENhY2hlT2Jz
ZXJ2ZXItPlN0YXJ0T2JzZXJ2ZXIoKTsNCiAgICAgfQ0KIA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tDQpAQCAtMTM5LDggKzE0MywxMyBAQCBDSHR0cENhY2hlSGFuZGxlciogQ0h0dHBDYWNoZUhh
bmRsZXI6Ok5lDQogLy8gRGVzdHJ1Y3Rvcg0KIENIdHRwQ2FjaGVIYW5kbGVyOjp+Q0h0dHBDYWNo
ZUhhbmRsZXIoKQ0KICAgICB7DQotICAgIC8vIHNhdmUgZW50cnkgdGFibGUNCi0gICAgVFJBUF9J
R05PUkUoIFNhdmVMb29rdXBUYWJsZUwoKSApOw0KKyAgICBpZiAoaUlkbGUtPklzQWN0aXZlKCkp
DQorICAgICAgICB7DQorICAgICAgICAvLyBzYXZlIGVudHJ5IHRhYmxlLCBidXQgb25seSBpZiBp
dCB3YXMgbW9kaWZpZWQNCisgICAgICAgIFRSQVBfSUdOT1JFKCBTYXZlTG9va3VwVGFibGVMKCkg
KTsNCisgICAgICAgIH0NCisgICAgLy8NCisgICAgZGVsZXRlIGlIdHRwQ2FjaGVPYnNlcnZlcjsN
CiAgICAgLy8NCiAgICAgaWYgKGlFdmljdGlvbkhhbmRsZXIpDQogICAgICAgICB7DQpAQCAtMTA2
NCw2ICsxMDczLDE2IEBAIFRCb29sIENIdHRwQ2FjaGVIYW5kbGVyOjpIYW5kbGVSZXNwb25zZU4N
CiAvLw0KIHZvaWQgQ0h0dHBDYWNoZUhhbmRsZXI6Ok9wZW5Mb29rdXBUYWJsZUwoKQ0KICAgICB7
DQorICAgIE9wZW5Mb29rdXBUYWJsZUwoaUxvb2t1cFRhYmxlKTsNCisgICAgfQ0KKw0KKy8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ0h0dHBDYWNoZUhhbmRsZXI6Ok9wZW5Mb29rdXBUYWJs
ZUwNCisvLw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8NCit2b2lkIENIdHRwQ2FjaGVI
YW5kbGVyOjpPcGVuTG9va3VwVGFibGVMKENIdHRwQ2FjaGVMb29rdXBUYWJsZSogYUxvb2t1cFRh
YmxlKQ0KKyAgICB7DQogICAgIC8vIHJlYWQgZW50cmllcyBmcm9tIGluZGV4LmRhdA0KICAgICBS
RmlsZVJlYWRTdHJlYW0gcmVhZFN0cmVhbTsNCiAgICAgUkZzIGZzOw0KQEAgLTEwODMsMTEgKzEx
MDIsMjYgQEAgdm9pZCBDSHR0cENhY2hlSGFuZGxlcjo6T3Blbkxvb2t1cFRhYmxlTA0KICAgICBp
ZiggZXJyID09IEtFcnJOb25lICkNCiAgICAgICAgIHsNCiAgICAgICAgIGZzLlNldFNlc3Npb25Q
YXRoKCBpRGlyZWN0b3J5LT5EZXMoKSApOw0KLQ0KLSAgICAgICAgaWYoIHJlYWRTdHJlYW0uT3Bl
biggZnMsIGlJbmRleEZpbGUtPkRlcygpLCBFRmlsZVJlYWQgKSA9PSBLRXJyTm9uZSApDQorICAg
ICAgICBUSW50IHJldCA9IEtFcnJOb25lOw0KKyAgICAgICAgVEludCB0cnlDb3VudCA9IDA7DQor
ICAgICAgICBmb3IgKHRyeUNvdW50ID0gMDsgdHJ5Q291bnQgPCA1OyB0cnlDb3VudCsrKSANCisg
ICAgICAgICAgICB7DQorICAgICAgICAgICAgcmV0ID0gcmVhZFN0cmVhbS5PcGVuKCBmcywgaUlu
ZGV4RmlsZS0+RGVzKCksIEVGaWxlUmVhZCB8IEVGaWxlU2hhcmVBbnkgKTsNCisgICAgICAgICAg
ICBpZiAocmV0ID09IEtFcnJJblVzZSkNCisgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAg
ICAgICAvLyBXaGVuIHRoZSBjYWNoZSBpcyBmdWxsLCBpdCB0YWtlcyA2NSAtIDg1IG1pbGlzZWNv
bmRzIHRvIHdyaXRlIHRoZSBpbmRleC4NCisgICAgICAgICAgICAgICAgLy8gU28gd2FpdCA1MCBt
aWxpc2Vjb25kcyBhbmQgdHJ5IGFnYWluDQorICAgICAgICAgICAgICAgIFVzZXI6OkFmdGVyKDUw
MDAwKTsNCisgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGVsc2UNCisgICAgICAgICAg
ICAgICAgew0KKyAgICAgICAgICAgICAgICBicmVhazsNCisgICAgICAgICAgICAgICAgfQ0KKyAg
ICAgICAgICAgIH0NCisgICAgICAgIGlmKCByZXQgPT0gS0Vyck5vbmUgKQ0KICAgICAgICAgICAg
IHsNCiAgICAgICAgICAgICBDbGVhbnVwQ2xvc2VQdXNoTCggcmVhZFN0cmVhbSApOw0KLSAgICAg
ICAgICAgIGlMb29rdXBUYWJsZS0+SW50ZXJuYWxpemVMKCByZWFkU3RyZWFtLCBpRGlyZWN0b3J5
LT5EZXMoKSApOw0KKyAgICAgICAgICAgIGFMb29rdXBUYWJsZS0+SW50ZXJuYWxpemVMKCByZWFk
U3RyZWFtLCBpRGlyZWN0b3J5LT5EZXMoKSApOw0KICAgICAgICAgICAgIENsZWFudXBTdGFjazo6
UG9wQW5kRGVzdHJveSgpOyAvLyByZWFkU3RyZWFtDQogICAgICAgICAgICAgfQ0KICAgICAgICAg
fQ0KQEAgLTExMDcsMTAgKzExNDEsMjYgQEAgdm9pZCBDSHR0cENhY2hlSGFuZGxlcjo6U2F2ZUxv
b2t1cFRhYmxlTA0KICAgICBSRnMgZnM7DQogICAgIFVzZXI6OkxlYXZlSWZFcnJvciggZnMuQ29u
bmVjdCgpICk7DQogICAgIENsZWFudXBDbG9zZVB1c2hMKCBmcyApOw0KLQ0KICAgICBmcy5TZXRT
ZXNzaW9uUGF0aCggaURpcmVjdG9yeS0+RGVzKCkgKTsNCi0NCi0gICAgaWYoIHdyaXRlU3RyZWFt
LlJlcGxhY2UoIGZzLCBpSW5kZXhGaWxlLT5EZXMoKSwgRUZpbGVXcml0ZSApID09IEtFcnJOb25l
ICkNCisgICAgLy8gRG9uJ3QgZ2V0IG5vdGlmaWVkIGFib3V0IG93biBjaGFuZ2VzDQorICAgIGlI
dHRwQ2FjaGVPYnNlcnZlci0+Q2FuY2VsKCk7DQorICAgIFRJbnQgcmV0ID0gS0Vyck5vbmU7DQor
ICAgIFRJbnQgdHJ5Q291bnQgPSAwOw0KKyAgICBmb3IgKHRyeUNvdW50ID0gMDsgdHJ5Q291bnQg
PCA1OyB0cnlDb3VudCsrKSANCisgICAgICAgIHsNCisgICAgICAgIHJldCA9IHdyaXRlU3RyZWFt
LlJlcGxhY2UoIGZzLCBpSW5kZXhGaWxlLT5EZXMoKSwgRUZpbGVXcml0ZSApOw0KKyAgICAgICAg
aWYgKHJldCA9PSBLRXJySW5Vc2UpDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgIC8vIFdo
ZW4gdGhlIGNhY2hlIGlzIGZ1bGwsIGl0IHRha2VzIDY1IC0gODUgbWlsaXNlY29uZHMgdG8gd3Jp
dGUgdGhlIGluZGV4Lg0KKyAgICAgICAgICAgIC8vIFNvIHdhaXQgNTAgbWlsaXNlY29uZHMgYW5k
IHRyeSBhZ2Fpbg0KKyAgICAgICAgICAgIFVzZXI6OkFmdGVyKDUwMDAwKTsNCisgICAgICAgICAg
ICB9DQorICAgICAgICBlbHNlDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgIGJyZWFrOw0K
KyAgICAgICAgICAgIH0NCisgICAgICAgIH0NCisgICAgaWYoIHJldCA9PSBLRXJyTm9uZSApDQog
ICAgICAgICB7DQogICAgICAgICBDbGVhbnVwQ2xvc2VQdXNoTCggd3JpdGVTdHJlYW0gKTsNCiAg
ICAgICAgIGlMb29rdXBUYWJsZS0+RXh0ZXJuYWxpemVMKCB3cml0ZVN0cmVhbSApOw0KQEAgLTEx
MTgsNiArMTE2OCw3IEBAIHZvaWQgQ0h0dHBDYWNoZUhhbmRsZXI6OlNhdmVMb29rdXBUYWJsZUwN
CiAgICAgICAgIENsZWFudXBTdGFjazo6UG9wQW5kRGVzdHJveSgpOyAvLyB3cml0ZVN0cmVhbQ0K
ICAgICAgICAgfQ0KICAgICBDbGVhbnVwU3RhY2s6OlBvcEFuZERlc3Ryb3koKTsgLy8gZnMNCisg
ICAgaUh0dHBDYWNoZU9ic2VydmVyLT5TdGFydE9ic2VydmVyKCk7DQogICAgIH0NCiANCiAvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQ0KQEAgLTEyNDYsNiArMTI5NywzOCBAQCBUSW50IENIdHRwQ2Fj
aGVIYW5kbGVyOjpEb0JhY2tncm91bmRTYXZlDQogICAgIHsNCiAgICAgVFJBUF9JR05PUkUoICgo
Q0h0dHBDYWNoZUhhbmRsZXIqKWFUaGlzKS0+U2F2ZUxvb2t1cFRhYmxlTCgpICk7DQogICAgIHJl
dHVybiBLRXJyTm9uZTsNCisgICAgfQ0KKw0KKw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQor
Ly8gQ0h0dHBDYWNoZUhhbmRsZXI6OlVwZGF0ZUxvb2t1cFRhYmxlDQorLy8NCisvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQ0KKy8vDQordm9pZCBDSHR0cENhY2hlSGFuZGxlcjo6VXBkYXRlTG9va3Vw
VGFibGUoKQ0KKyAgICB7DQorICAgIFRSQVBfSUdOT1JFKFVwZGF0ZUxvb2t1cFRhYmxlTCgpKTsN
CisgICAgaUh0dHBDYWNoZU9ic2VydmVyLT5TdGFydE9ic2VydmVyKCk7DQorICAgIH0NCisNCisv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRwQ2FjaGVIYW5kbGVyOjpVcGRhdGVMb29r
dXBUYWJsZUwNCisvLw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8NCit2b2lkIENIdHRw
Q2FjaGVIYW5kbGVyOjpVcGRhdGVMb29rdXBUYWJsZUwoKQ0KKyAgICB7DQorICAgIENIdHRwQ2Fj
aGVFdmljdGlvbkhhbmRsZXIqIGV2aWN0aW9uSGFuZGxlciA9IENIdHRwQ2FjaGVFdmljdGlvbkhh
bmRsZXI6Ok5ld0woKTsNCisgICAgQ2xlYW51cFN0YWNrOjpQdXNoTChldmljdGlvbkhhbmRsZXIp
Ow0KKyAgICBDSHR0cENhY2hlTG9va3VwVGFibGUqIGxvb2t1cFRhYmxlID0gQ0h0dHBDYWNoZUxv
b2t1cFRhYmxlOjpOZXdMKCAqZXZpY3Rpb25IYW5kbGVyLCAqaVN0cmVhbUhhbmRsZXIgKTsNCisg
ICAgQ2xlYW51cFN0YWNrOjpQdXNoTChsb29rdXBUYWJsZSk7DQorICAgIE9wZW5Mb29rdXBUYWJs
ZUwobG9va3VwVGFibGUpOw0KKyAgICBSRnMgcmZzOw0KKyAgICBVc2VyOjpMZWF2ZUlmRXJyb3Io
cmZzLkNvbm5lY3QoKSk7DQorICAgIENsZWFudXBDbG9zZVB1c2hMKHJmcyk7DQorICAgIHJmcy5T
ZXRTZXNzaW9uUGF0aCggaURpcmVjdG9yeS0+RGVzKCkgKTsNCisgICAgaUxvb2t1cFRhYmxlLT5N
ZXJnZUwobG9va3VwVGFibGUsIHJmcyk7DQorICAgIENsZWFudXBTdGFjazo6UG9wQW5kRGVzdHJv
eSgzKTsgLy8gcmZzLCBsb29rdXBUYWJsZSwgZXZpY3Rpb25IYW5kbGVyDQogICAgIH0NCiANCiAv
LyAgRW5kIG9mIEZpbGUNCkluZGV4OiBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVTcmMvSHR0
cENhY2hlTG9va3VwVGFibGUuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L1Jlc291cmNlTG9h
ZGVyL0NhY2hlU3JjL0h0dHBDYWNoZUxvb2t1cFRhYmxlLmNwcAkocmV2aXNpb24gMTgyMjEpDQor
KysgV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZUxvb2t1cFRhYmxlLmNw
cAkod29ya2luZyBjb3B5KQ0KQEAgLTQ2LDcgKzQ2LDYgQEANCiAjaW5jbHVkZSAiSHR0cENhY2hl
VXRpbC5oIg0KICNpbmNsdWRlICJIdHRwQ2FjaGVFdmljdGlvbkhhbmRsZXIuaCINCiAjaW5jbHVk
ZSAiSHR0cENhY2hlU3RyZWFtSGFuZGxlci5oIg0KLSNpbmNsdWRlIDxzMzJmaWxlLmg+DQogDQog
Ly8gRVhURVJOQUwgREFUQSBTVFJVQ1RVUkVTDQogDQpAQCAtNjcyLDUgKzY3MSw3MiBAQCBUQm9v
bCBDSHR0cENhY2hlTG9va3VwVGFibGU6OkJvdW5kYXJ5Q2hlDQogICAgIFRJbnQgYVBvcyApDQog
ICAgIHsNCiAgICAgcmV0dXJuICggYVBvcyA+PSAwICYmIGFQb3MgPCBpRW50cmllcy0+Q291bnQo
KSApOw0KKyAgICB9DQorDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBDSHR0cENhY2hl
TG9va3VwVGFibGU6Ok1lcmdlTA0KKy8vDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLw0K
K3ZvaWQgQ0h0dHBDYWNoZUxvb2t1cFRhYmxlOjpNZXJnZUwoIENIdHRwQ2FjaGVMb29rdXBUYWJs
ZSogYUh0dHBDYWNoZUxvb2t1cFRhYmxlLCBSRnMgYVJmcyApDQorICAgIHsNCisgICAgVEludCBt
eUNvdW50ID0gaUVudHJpZXMtPkNvdW50KCk7DQorICAgIFRJbnQgaSA9IDA7DQorICAgIGZvciAo
aSA9IG15Q291bnQgLSAxOyBpID49IDA7IGktLSkNCisgICAgICAgIHsNCisgICAgICAgIGlmICgg
VmFsaWQoIGkgKSApDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgIENIdHRwQ2FjaGVFbnRy
eSogZW50cnkgPSBpRW50cmllcy0+QXQoaSk7DQorICAgICAgICAgICAgQ0h0dHBDYWNoZUVudHJ5
KiBuZXdFbnRyeSA9IGFIdHRwQ2FjaGVMb29rdXBUYWJsZS0+RmluZChlbnRyeS0+VXJsKCkpOw0K
KyAgICAgICAgICAgIGlmIChuZXdFbnRyeSkNCisgICAgICAgICAgICAgICAgew0KKyAgICAgICAg
ICAgICAgICAvLyBFbnRyeSBpcyBpbiB0aGUgbmV3IGluZGV4IGZpbGUNCisgICAgICAgICAgICAg
ICAgaWYgKG5ld0VudHJ5LT5MYXN0QWNjZXNzZWQoKSA+IGVudHJ5LT5MYXN0QWNjZXNzZWQoKSkN
CisgICAgICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgICAgIGVudHJ5LT5BY2Nl
c3NlZChuZXdFbnRyeS0+TGFzdEFjY2Vzc2VkKCksIG5ld0VudHJ5LT5SZWYoKSk7DQorICAgICAg
ICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgIFRJbnQgcG9zID0gYUh0dHBDYWNoZUxv
b2t1cFRhYmxlLT5Qcm9iZShuZXdFbnRyeS0+VXJsKCksIEVGYWxzZSk7DQorICAgICAgICAgICAg
ICAgIGlmIChhSHR0cENhY2hlTG9va3VwVGFibGUtPlZhbGlkKHBvcykpDQorICAgICAgICAgICAg
ICAgICAgICB7DQorICAgICAgICAgICAgICAgICAgICBhSHR0cENhY2hlTG9va3VwVGFibGUtPlNl
dERlbGV0ZWQocG9zKTsNCisgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBuZXdFbnRyeTsNCisg
ICAgICAgICAgICAgICAgICAgIGFIdHRwQ2FjaGVMb29rdXBUYWJsZS0+aUNvdW50LS07DQorICAg
ICAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICBlbHNl
IC8vIChuZXdFbnRyeSkNCisgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICAvLyBF
bnRyeSBpcyBub3QgaW4gdGhlIG5ldyBpbmRleCBmaWxlDQorICAgICAgICAgICAgICAgIFRVaW50
IGF0dDsNCisgICAgICAgICAgICAgICAgaWYgKGFSZnMuQXR0KGVudHJ5LT5GaWxlbmFtZSgpLCBh
dHQpICE9IEtFcnJOb25lKQ0KKyAgICAgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAg
ICAgICAgVEludCB0aGVQb3MgPSBQcm9iZShlbnRyeS0+VXJsKCksIEVGYWxzZSk7DQorICAgICAg
ICAgICAgICAgICAgICBpZiAoVmFsaWQodGhlUG9zKSkNCisgICAgICAgICAgICAgICAgICAgICAg
ICB7DQorICAgICAgICAgICAgICAgICAgICAgICAgRXJhc2UodGhlUG9zKTsNCisgICAgICAgICAg
ICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAg
IH0NCisgICAgICAgICAgICB9DQorICAgICAgICB9DQorDQorICAgIFRJbnQgbmV3Q291bnQgPSBh
SHR0cENhY2hlTG9va3VwVGFibGUtPmlFbnRyaWVzLT5Db3VudCgpOw0KKyAgICBmb3IgKGkgPSBu
ZXdDb3VudCAtIDE7IGkgPj0gMDsgaS0tKQ0KKyAgICAgICAgew0KKyAgICAgICAgaWYgKCBhSHR0
cENhY2hlTG9va3VwVGFibGUtPlZhbGlkKCBpICkgKQ0KKyAgICAgICAgICAgIHsNCisgICAgICAg
ICAgICBDSHR0cENhY2hlRW50cnkqIG5ld0VudHJ5ID0gYUh0dHBDYWNoZUxvb2t1cFRhYmxlLT5p
RW50cmllcy0+QXQoaSk7DQorICAgICAgICAgICAgVEludCBwb3MgPSBhSHR0cENhY2hlTG9va3Vw
VGFibGUtPlByb2JlKG5ld0VudHJ5LT5VcmwoKSwgRUZhbHNlKTsNCisgICAgICAgICAgICBUVWlu
dCBhdHQ7DQorICAgICAgICAgICAgaWYgKGFSZnMuQXR0KG5ld0VudHJ5LT5GaWxlbmFtZSgpLCBh
dHQpID09IEtFcnJOb25lKQ0KKyAgICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgIENI
dHRwQ2FjaGVFbnRyeSogbXlFbnRyeSA9IEluc2VydEwobmV3RW50cnktPlVybCgpKTsNCisgICAg
ICAgICAgICAgICAgbXlFbnRyeS0+U2V0U3RhdGUoIENIdHRwQ2FjaGVFbnRyeTo6RUNhY2hlQ29t
cGxldGUgKTsNCisgICAgICAgICAgICAgICAgbXlFbnRyeS0+QWNjZXNzZWQobmV3RW50cnktPkxh
c3RBY2Nlc3NlZCgpLCBuZXdFbnRyeS0+UmVmKCkpOw0KKyAgICAgICAgICAgICAgICB9ICAgICAg
ICAgIA0KKyAgICAgICAgICAgIGFIdHRwQ2FjaGVMb29rdXBUYWJsZS0+U2V0RGVsZXRlZChwb3Mp
Ow0KKyAgICAgICAgICAgIGRlbGV0ZSBuZXdFbnRyeTsNCisgICAgICAgICAgICBhSHR0cENhY2hl
TG9va3VwVGFibGUtPmlDb3VudC0tOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgIH0NCiAgICAg
fQ0KIC8vICBFbmQgb2YgRmlsZQ0KSW5kZXg6IFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZVNy
Yy9IdHRwQ2FjaGVPYnNlcnZlci5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvUmVzb3VyY2VM
b2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hlT2JzZXJ2ZXIuY3BwCShyZXZpc2lvbiAwKQ0KKysrIFdl
YktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVPYnNlcnZlci5jcHAJKHJldmlz
aW9uIDApDQpAQCAtMCwwICsxLDE2MCBAQA0KKy8qDQorKiA9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
CisqICBOYW1lICAgICAgICA6IEh0dHBDYWNoZU9ic2VydmVyLmNwcA0KKyogIFBhcnQgb2YgICAg
IDogV2ViS2l0IC8gUmVzb3VyY2VMb2FkZXINCisqICBJbnRlcmZhY2UgICA6DQorKiAgRGVzY3Jp
cHRpb24gOiBJbXBsZW1lbnRhdGlvbiBvZiBDSHR0cENhY2hlT2JzZXJ2ZXINCisqICBWZXJzaW9u
ICAgICA6ICVWZXJzaW9uJQ0KKyoNCisqICAgIENvcHlyaWdodCAoYykgMjAwNiwgTm9raWEgQ29y
cG9yYXRpb24NCisqICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQorKg0KKyogICBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQN
CisqICAgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zDQorKiAgIGFyZSBtZXQ6DQorKg0KKyogICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQorKiAg
ICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLg0KKyogICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0DQorKiAgICAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluDQorKiAgICAg
ICAgdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQ0KKyogICAgICAgIGRpc3RyaWJ1dGlvbi4NCisqICAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIHRoZSBOb2tpYSBDb3Jwb3JhdGlvbiBub3IgdGhlIG5hbWVzIG9mIGl0cw0KKyogICAgICAg
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZA0KKyogICAgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4NCisqDQorKiAgIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMNCisqICAgIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QNCisqICAgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SDQorKiAgIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUDQorKiAgIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LA0KKyogICBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UDQorKiAgIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLA0KKyogICBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkNCisq
ICAgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVA0KKyogICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRQ0KKyogICBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIDQorKiAgIERBTUFHRS4N
CisqDQorKiAgICBQbGVhc2Ugc2VlIGZpbGUgcGF0ZW50bGljZW5zZS50eHQgZm9yIGZ1cnRoZXIg
Z3JhbnRzLg0KKyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorKi8NCisNCisvLyBJTkNMVURFIEZJ
TEVTDQorI2luY2x1ZGUgIkh0dHBDYWNoZU9ic2VydmVyLmgiDQorI2luY2x1ZGUgIkh0dHBDYWNo
ZUhhbmRsZXIuaCINCisNCisNCisvLyBFWFRFUk5BTCBEQVRBIFNUUlVDVFVSRVMNCisNCisvLyBF
WFRFUk5BTCBGVU5DVElPTiBQUk9UT1RZUEVTDQorDQorLy8gQ09OU1RBTlRTDQorDQorLy8gTUFD
Uk9TDQorDQorLy8gTE9DQUwgQ09OU1RBTlRTIEFORCBNQUNST1MNCisNCisvLyBNT0RVTEUgREFU
QSBTVFJVQ1RVUkVTDQorDQorLy8gTE9DQUwgRlVOQ1RJT04gUFJPVE9UWVBFUw0KKw0KKy8vIEZP
UldBUkQgREVDTEFSQVRJT05TDQorDQorDQorLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09
PSBNRU1CRVIgRlVOQ1RJT05TID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisNCisv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRwQ2FjaGVPYnNlcnZlcjo6Q0h0dHBDYWNo
ZU9ic2VydmVyDQorLy8gQysrIGRlZmF1bHQgY29uc3RydWN0b3IgY2FuIE5PVCBjb250YWluIGFu
eSBjb2RlLCB0aGF0DQorLy8gbWlnaHQgbGVhdmUuDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N
CisvLw0KK0NIdHRwQ2FjaGVPYnNlcnZlcjo6Q0h0dHBDYWNoZU9ic2VydmVyKENIdHRwQ2FjaGVI
YW5kbGVyKiBhSHR0cENhY2hlSGFuZGxlcikgOiBDQWN0aXZlKCBDQWN0aXZlOjpFUHJpb3JpdHlJ
ZGxlICksDQoraUh0dHBDYWNoZUhhbmRsZXIoYUh0dHBDYWNoZUhhbmRsZXIpDQorICAgIHsNCisg
ICAgQ0FjdGl2ZVNjaGVkdWxlcjo6QWRkKHRoaXMpOw0KKyAgICB9DQorDQorLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0NCisvLyBDSHR0cENhY2hlT2JzZXJ2ZXI6OkNvbnN0cnVjdEwNCisvLyBTeW1i
aWFuIDJuZCBwaGFzZSBjb25zdHJ1Y3RvciBjYW4gbGVhdmUuDQorLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0NCisvLw0KK3ZvaWQgQ0h0dHBDYWNoZU9ic2VydmVyOjpDb25zdHJ1Y3RMKGNvbnN0IEhC
dWZDKiBhRGlyZWN0b3J5LCBjb25zdCBIQnVmQyogYUluZGV4RmlsZSkNCisgICAgew0KKyAgICBV
c2VyOjpMZWF2ZUlmRXJyb3IoaUZzU2Vzc2lvbi5Db25uZWN0KCkpOw0KKyAgICBpRmlsZU5hbWUg
PSBIQnVmQzo6TmV3TChhRGlyZWN0b3J5LT5MZW5ndGgoKSArIGFJbmRleEZpbGUtPkxlbmd0aCgp
KTsNCisgICAgaUZpbGVOYW1lLT5EZXMoKS5Db3B5KCphRGlyZWN0b3J5KTsNCisgICAgaUZpbGVO
YW1lLT5EZXMoKS5BcHBlbmQoKmFJbmRleEZpbGUpOw0KKyAgICB9DQorDQorLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0NCisvLyBDSHR0cENhY2hlT2JzZXJ2ZXI6Ok5ld0wNCisvLyBUd28tcGhhc2Vk
IGNvbnN0cnVjdG9yLg0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8NCitDSHR0cENhY2hl
T2JzZXJ2ZXIqIENIdHRwQ2FjaGVPYnNlcnZlcjo6TmV3TCggY29uc3QgSEJ1ZkMqIGFEaXJlY3Rv
cnksIGNvbnN0IEhCdWZDKiBhSW5kZXhGaWxlLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENIdHRwQ2FjaGVIYW5kbGVyKiBhSHR0cENh
Y2hlSGFuZGxlcikNCisgICAgew0KKyAgICBDSHR0cENhY2hlT2JzZXJ2ZXIqIHNlbGYgPSBuZXco
IEVMZWF2ZSApIENIdHRwQ2FjaGVPYnNlcnZlcihhSHR0cENhY2hlSGFuZGxlcik7DQorICAgIENs
ZWFudXBTdGFjazo6UHVzaEwoIHNlbGYgKTsNCisgICAgc2VsZi0+Q29uc3RydWN0TChhRGlyZWN0
b3J5LCBhSW5kZXhGaWxlKTsNCisgICAgQ2xlYW51cFN0YWNrOjpQb3AoKTsNCisgICAgcmV0dXJu
IHNlbGY7DQorICAgIH0NCisNCisvLyBEZXN0cnVjdG9yDQorQ0h0dHBDYWNoZU9ic2VydmVyOjp+
Q0h0dHBDYWNoZU9ic2VydmVyKCkNCisgICAgew0KKyAgICBDYW5jZWwoKTsNCisgICAgZGVsZXRl
IGlGaWxlTmFtZTsNCisgICAgaUZzU2Vzc2lvbi5DbG9zZSgpOw0KKyAgICB9DQorDQorLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0NCisvLyBDSHR0cENhY2hlT2JzZXJ2ZXI6OlJ1bkwNCisvLw0KKy8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8NCit2b2lkIENIdHRwQ2FjaGVPYnNlcnZlcjo6UnVu
TCgpDQorICAgIHsNCisgICAgaUh0dHBDYWNoZUhhbmRsZXItPlVwZGF0ZUxvb2t1cFRhYmxlKCk7
DQorICAgIH0NCisNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRwQ2FjaGVPYnNl
cnZlcjo6UnVuRXJyb3INCisvLw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8NCitUSW50
IENIdHRwQ2FjaGVPYnNlcnZlcjo6UnVuRXJyb3IoVEludCAvKmFFcnJvciovKQ0KKyAgICB7DQor
ICAgIHJldHVybiBLRXJyTm9uZTsNCisgICAgfQ0KKw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
DQorLy8gQ0h0dHBDYWNoZU9ic2VydmVyOjpEb0NhbmNlbA0KKy8vDQorLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0NCisvLw0KK3ZvaWQgQ0h0dHBDYWNoZU9ic2VydmVyOjpEb0NhbmNlbCgpDQorICAg
IHsNCisgICAgaUZzU2Vzc2lvbi5Ob3RpZnlDaGFuZ2VDYW5jZWwoaVN0YXR1cyk7DQorICAgIH0N
CisNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRwQ2FjaGVPYnNlcnZlcjo6U3Rh
cnRPYnNlcnZlcg0KKy8vDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLw0KK3ZvaWQgQ0h0
dHBDYWNoZU9ic2VydmVyOjpTdGFydE9ic2VydmVyKCkNCisgICAgew0KKyAgICBpZiAoIUlzQWN0
aXZlKCkpDQorICAgICAgICB7DQorICAgICAgICBpRnNTZXNzaW9uLk5vdGlmeUNoYW5nZShFTm90
aWZ5V3JpdGUsIGlTdGF0dXMsICppRmlsZU5hbWUpOw0KKyAgICAgICAgU2V0QWN0aXZlKCk7DQor
ICAgICAgICB9DQorICAgIH0NCisNCisNCisvLyAgRW5kIG9mIEZpbGUNCkluZGV4OiBXZWJLaXQv
Z3JvdXAvQnJvd3NlckNhY2hlLm1tcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9ncm91cC9Ccm93
c2VyQ2FjaGUubW1wCShyZXZpc2lvbiAxODIyMSkNCisrKyBXZWJLaXQvZ3JvdXAvQnJvd3NlckNh
Y2hlLm1tcAkod29ya2luZyBjb3B5KQ0KQEAgLTYxLDYgKzYxLDcgQEAgU09VUkNFICAgICAgICBI
dHRwQ2FjaGVNYW5hZ2VyLmNwcA0KIFNPVVJDRSAgICAgICAgSHR0cENhY2hlRW50cnkuY3BwDQog
U09VUkNFICAgICAgICBIdHRwQ2FjaGVFdmljdGlvbkhhbmRsZXIuY3BwDQogU09VUkNFICAgICAg
ICBIdHRwQ2FjaGVIYW5kbGVyLmNwcA0KK1NPVVJDRSAgICAgICAgSHR0cENhY2hlT2JzZXJ2ZXIu
Y3BwDQogU09VUkNFICAgICAgICBIdHRwQ2FjaGVMb29rdXBUYWJsZS5jcHANCiBTT1VSQ0UgICAg
ICAgIEh0dHBDYWNoZVN0cmVhbUhhbmRsZXIuY3BwDQogU09VUkNFICAgICAgICBIdHRwQ2FjaGVV
dGlsLmNwcA0K
</data>
<flag name="review"
          id="4328"
          type_id="1"
          status="-"
          setter="Sachin.Padma"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11872</attachid>
            <date>2006-12-15 13:55:38 -0800</date>
            <delta_ts>2006-12-18 15:05:33 -0800</delta_ts>
            <desc>3.2 fix, removed extra L in StartObserver</desc>
            <filename>MyBrilliantWork.patch</filename>
            <type>text/plain</type>
            <size>32350</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxODIzNykNCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpDQpA
QCAtMSwzICsxLDM2IEBADQorMjAwNi0xMi0xNCAgeWFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lh
LmNvbT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKyAgICAgICAg
REVTQzogQnVnIDExODM0OiBUTFVVLTZWSlFYMyA6IENhY2hlIGNhbm5vdCBzdXBwb3J0IG1vcmUg
dGhhbiBvbmUgYXBwbGljYXRpb24gc2ltdWx0YW5lb3VzbHkNCisgICAgICAgIGh0dHA6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODM0DQorDQorICAgICAgICAqIENoYW5nZUxv
ZzoNCisgICAgICAgICogUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlRW50cnkuaDoN
CisgICAgICAgICogUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlSGFuZGxlci5oOg0K
KyAgICAgICAgKiBSZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVMb29rdXBUYWJsZS5o
Og0KKyAgICAgICAgKiBSZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVPYnNlcnZlci5o
OiBBZGRlZC4NCisgICAgICAgIChOT05TSEFSQUJMRV9DTEFTUyk6DQorICAgICAgICAqIFJlc291
cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZUVudHJ5LmNwcDoNCisgICAgICAgIChDSHR0cENh
Y2hlRW50cnk6OkFjY2Vzc2VkKToNCisgICAgICAgICogUmVzb3VyY2VMb2FkZXIvQ2FjaGVTcmMv
SHR0cENhY2hlSGFuZGxlci5jcHA6DQorICAgICAgICAoQ0h0dHBDYWNoZUhhbmRsZXI6OkNvbnN0
cnVjdEwpOg0KKyAgICAgICAgKENIdHRwQ2FjaGVIYW5kbGVyOjp+Q0h0dHBDYWNoZUhhbmRsZXIp
Og0KKyAgICAgICAgKENIdHRwQ2FjaGVIYW5kbGVyOjpPcGVuTG9va3VwVGFibGVMKToNCisgICAg
ICAgIChDSHR0cENhY2hlSGFuZGxlcjo6U2F2ZUxvb2t1cFRhYmxlTCk6DQorICAgICAgICAoQ0h0
dHBDYWNoZUhhbmRsZXI6OlVwZGF0ZUxvb2t1cFRhYmxlKToNCisgICAgICAgIChDSHR0cENhY2hl
SGFuZGxlcjo6VXBkYXRlTG9va3VwVGFibGVMKToNCisgICAgICAgICogUmVzb3VyY2VMb2FkZXIv
Q2FjaGVTcmMvSHR0cENhY2hlTG9va3VwVGFibGUuY3BwOg0KKyAgICAgICAgKiBSZXNvdXJjZUxv
YWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVPYnNlcnZlci5jcHA6IEFkZGVkLg0KKyAgICAgICAgKENI
dHRwQ2FjaGVPYnNlcnZlcjo6Q0h0dHBDYWNoZU9ic2VydmVyKToNCisgICAgICAgIChDSHR0cENh
Y2hlT2JzZXJ2ZXI6OkNvbnN0cnVjdEwpOg0KKyAgICAgICAgKENIdHRwQ2FjaGVPYnNlcnZlcjo6
TmV3TCk6DQorICAgICAgICAoQ0h0dHBDYWNoZU9ic2VydmVyOjp+Q0h0dHBDYWNoZU9ic2VydmVy
KToNCisgICAgICAgIChDSHR0cENhY2hlT2JzZXJ2ZXI6OlJ1bkwpOg0KKyAgICAgICAgKENIdHRw
Q2FjaGVPYnNlcnZlcjo6UnVuRXJyb3IpOg0KKyAgICAgICAgKENIdHRwQ2FjaGVPYnNlcnZlcjo6
RG9DYW5jZWwpOg0KKyAgICAgICAgKENIdHRwQ2FjaGVPYnNlcnZlcjo6U3RhcnRPYnNlcnZlcik6
DQorICAgICAgICAqIGdyb3VwL0Jyb3dzZXJDYWNoZS5tbXA6DQorDQogMjAwNi0xMi0xMiAgcmF0
aG5hc2EgIDxzb3JuYWxhdGhhLnJhdGhuYXNhbXlAbm9raWEuY29tPg0KIA0KICAgICAgICAgUmV2
aWV3ZWQgYnkgWW9uZ2p1biBaaGFuZyBhbmQgU3RldmUgV2luc2hpcC4NCkluZGV4OiBXZWJLaXQv
UmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlRW50cnkuaA0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t
IFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVFbnRyeS5oCShyZXZpc2lv
biAxODIyMSkNCisrKyBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlRW50
cnkuaAkod29ya2luZyBjb3B5KQ0KQEAgLTksOSArOSw5IEBADQogKiAgICBDb3B5cmlnaHQgKGMp
IDIwMDYsIE5va2lhIENvcnBvcmF0aW9uDQogKiAgICBBbGwgcmlnaHRzIHJlc2VydmVkLg0KICog
IA0KLSogIAlSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQNCi0qICAJbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQotKiAgCWFyZSBtZXQ6DQorKiAgIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dA0KKyogICBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMNCisqICAgYXJlIG1ldDoNCiAqICANCiAqICAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodA0KICogICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4NCkBAIC0yMywxOCArMjMsMTggQEANCiAqICAgICAgICBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQNCiAqICAgICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uDQogKiAgDQotKiAgCVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMNCi0qICAJIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QN
Ci0qICAJTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SDQotKiAgCUEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUDQotKiAgCU9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLA0K
LSogIAlTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UDQotKiAgCUxJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLA0KLSogIAlEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkNCi0qICAJ
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVA0KLSogIAkoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRQ0KLSogIAlVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIDQotKiAgCURBTUFHRS4NCisq
ICAgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUw0KKyogICAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVA0KKyogICBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1INCisqICAgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQNCisqICAgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsDQorKiAgIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QNCisqICAgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsDQorKiAgIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQ0KKyogICBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUDQorKiAgIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFDQor
KiAgIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0gNCisqICAgREFNQUdFLg0KICogIA0KICogICAgUGxlYXNlIHNlZSBmaWxlIHBh
dGVudGxpY2Vuc2UudHh0IGZvciBmdXJ0aGVyIGdyYW50cy4NCiAqID09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KQEAgLTIzNyw2ICsyMzcsMTQgQEAgY2xhc3MgQ0h0dHBDYWNoZUVudHJ5IDogcHVibGlj
IENCYXNlDQogICAgICAgICAqIEByZXR1cm4gDQogICAgICAgICAqLw0KICAgICAgICAgVEludCBF
eHRlcm5hbGl6ZSggUkZpbGVXcml0ZVN0cmVhbSYgYVdyaXRlU3RyZWFtICk7DQorDQorICAgICAg
ICAvKioNCisgICAgICAgICogDQorICAgICAgICAqIEBzaW5jZSAzLjENCisgICAgICAgICogQHBh
cmFtIA0KKyAgICAgICAgKiBAcmV0dXJuIA0KKyAgICAgICAgKi8NCisgICAgICAgIHZvaWQgQWNj
ZXNzZWQoVEludDY0IGFMYXN0QWNjZXNzZWQsIFRVaW50MTYgYVJlZik7DQogDQogICAgIHB1Ymxp
YyA6IA0KIA0KSW5kZXg6IFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVI
YW5kbGVyLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMv
SHR0cENhY2hlSGFuZGxlci5oCShyZXZpc2lvbiAxODIyMSkNCisrKyBXZWJLaXQvUmVzb3VyY2VM
b2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlSGFuZGxlci5oCSh3b3JraW5nIGNvcHkpDQpAQCAtNjgs
NiArNjgsNyBAQCBjbGFzcyBNSFRUUERhdGFTdXBwbGllcjsNCiBjbGFzcyBDSWRsZTsNCiBjbGFz
cyBDSHR0cENhY2hlRXZpY3Rpb25IYW5kbGVyOw0KIGNsYXNzIFRIdHRwQ2FjaGVFbnRyeTsNCitj
bGFzcyBDSHR0cENhY2hlT2JzZXJ2ZXI7DQogDQogLy8gQ0xBU1MgREVDTEFSQVRJT04NCiANCkBA
IC0yMDMsNiArMjA0LDE1IEBAIGNsYXNzIENIdHRwQ2FjaGVIYW5kbGVyIDogcHVibGljIENCYXNl
DQogICAgICAgICAqLw0KICAgICAgICAgdm9pZCBBZGp1c3RSZXNwb25zZVRpbWUoUkhUVFBUcmFu
c2FjdGlvbiYgYVRyYW5zKTsNCiANCisgICAgICAgIC8qKg0KKyAgICAgICAgKiBTb21lIG90aGVy
IGFwcGxpY2F0aW9uIG1vZGlmaWVkIHRoZSBjYWNoZSBhbmQgdGhlIGxvb2t1cCB0YWJsZSBuZWVk
cyB0byBiZSB1cGRhdGVkDQorICAgICAgICAqDQorICAgICAgICAqIEBzaW5jZSAzLjENCisgICAg
ICAgICogQHBhcmFtDQorICAgICAgICAqIEByZXR1cm4NCisgICAgICAgICovDQorICAgICAgICB2
b2lkIFVwZGF0ZUxvb2t1cFRhYmxlKCk7DQorDQogICAgIHByaXZhdGU6DQogDQogICAgICAgICAv
KioNCkBAIC0yMjIsNiArMjMyLDE1IEBAIGNsYXNzIENIdHRwQ2FjaGVIYW5kbGVyIDogcHVibGlj
IENCYXNlDQogICAgIHByaXZhdGU6IC8vDQogDQogICAgICAgICAvKioNCisgICAgICAgICogU29t
ZSBvdGhlciBhcHBsaWNhdGlvbiBtb2RpZmllZCB0aGUgY2FjaGUgYW5kIHRoZSBsb29rdXAgdGFi
bGUgbmVlZHMgdG8gYmUgdXBkYXRlZA0KKyAgICAgICAgKg0KKyAgICAgICAgKiBAc2luY2UgMy4x
DQorICAgICAgICAqIEBwYXJhbQ0KKyAgICAgICAgKiBAcmV0dXJuDQorICAgICAgICAqLw0KKyAg
ICAgICAgdm9pZCBVcGRhdGVMb29rdXBUYWJsZUwoKTsNCisNCisgICAgICAgIC8qKg0KICAgICAg
ICAgKg0KICAgICAgICAgKiBAc2luY2UgMy4xDQogICAgICAgICAqIEBwYXJhbQ0KQEAgLTI5MSw2
ICszMTAsMTUgQEAgY2xhc3MgQ0h0dHBDYWNoZUhhbmRsZXIgOiBwdWJsaWMgQ0Jhc2UNCiAgICAg
ICAgICogQHBhcmFtDQogICAgICAgICAqIEByZXR1cm4NCiAgICAgICAgICovDQorICAgICAgICB2
b2lkIE9wZW5Mb29rdXBUYWJsZUwoQ0h0dHBDYWNoZUxvb2t1cFRhYmxlKiBhTG9va3VwVGFibGUp
Ow0KKw0KKyAgICAgICAgLyoqDQorICAgICAgICAqDQorICAgICAgICAqIEBzaW5jZSAzLjENCisg
ICAgICAgICogQHBhcmFtDQorICAgICAgICAqIEBwYXJhbQ0KKyAgICAgICAgKiBAcmV0dXJuDQor
ICAgICAgICAqLw0KICAgICAgICAgdm9pZCBIYW5kbGVDb3JydXB0RW50cnkoIENIdHRwQ2FjaGVF
bnRyeSYgYVN0cmF5RW50cnksIFRCb29sIGFVcGRhdGUgPSBFVHJ1ZSApOw0KIA0KICAgICAgICAg
LyoqDQpAQCAtMzQ1LDYgKzM3Myw4IEBAIGNsYXNzIENIdHRwQ2FjaGVIYW5kbGVyIDogcHVibGlj
IENCYXNlDQogICAgICAgICBDSWRsZSogICAgICAgICAgICAgICAgICAgICAgICAgIGlJZGxlOyAg
ICAgIC8vIG93bmVkDQogICAgICAgICAvLyBuYW1lIG9mIHRoZSBpbmRleCBmaWxlDQogICAgICAg
ICBIQnVmQyogICAgICAgICAgICAgICAgICAgICAgICAgIGlJbmRleEZpbGU7IC8vIG93bmVkDQor
ICAgICAgICAvLyBPYnNlcnZpbmcgY2hhbmdlcyBpbiBjYWNoZQ0KKyAgICAgICAgQ0h0dHBDYWNo
ZU9ic2VydmVyKiBpSHR0cENhY2hlT2JzZXJ2ZXI7IC8vIG93bmVkDQogICAgIH07DQogDQogI2Vu
ZGlmICAgICAgLy8gQ0hUVFBDQUNIRUhBTkRMRVJfSA0KSW5kZXg6IFdlYktpdC9SZXNvdXJjZUxv
YWRlci9DYWNoZUluYy9IdHRwQ2FjaGVMb29rdXBUYWJsZS5oDQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2Vi
S2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNoZUxvb2t1cFRhYmxlLmgJKHJldmlz
aW9uIDE4MjIxKQ0KKysrIFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVM
b29rdXBUYWJsZS5oCSh3b3JraW5nIGNvcHkpDQpAQCAtOSw5ICs5LDkgQEANCiAqICAgIENvcHly
aWdodCAoYykgMjAwNiwgTm9raWEgQ29ycG9yYXRpb24NCiAqICAgIEFsbCByaWdodHMgcmVzZXJ2
ZWQuDQogKiAgDQotKiAgCVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KLSogIAltb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMNCi0qICAJYXJlIG1ldDoN
CisqICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0DQorKiAgIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucw0KKyogICBhcmUgbWV0Og0KICogIA0KICog
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0DQogKiAgICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KQEAgLTIzLDE4ICsyMywxOCBAQA0KICogICAg
ICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZA0KICogICAgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4NCiAqICANCi0qICAJVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUw0KLSogIAki
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVA0KLSogIAlMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1INCi0qICAJQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQNCi0qICAJT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsDQotKiAgCVNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QNCi0qICAJTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsDQotKiAgCURBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQ0KLSogIAlUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUDQotKiAgCShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFDQotKiAgCVVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gNCi0qICAJREFN
QUdFLg0KKyogICBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTDQorKiAgICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UDQorKiAgIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUg0K
KyogICBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVA0KKyogICBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwNCisqICAgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVA0KKyogICBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwNCisqICAgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZDQorKiAgIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQNCisqICAgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUNCisqICAgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSA0KKyogICBEQU1BR0UuDQogKiAgDQogKiAgICBQbGVhc2Ugc2Vl
IGZpbGUgcGF0ZW50bGljZW5zZS50eHQgZm9yIGZ1cnRoZXIgZ3JhbnRzLg0KICogPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09DQpAQCAtNDUsNiArNDUsNyBAQA0KIA0KIC8vICBJTkNMVURFUw0KICNpbmNs
dWRlIDxlMzJiYXNlLmg+DQorI2luY2x1ZGUgPHMzMmZpbGUuaD4NCiANCiAvLyBDT05TVEFOVFMN
CiANCkBAIC05NCw3ICs5NSw3IEBAIGNsYXNzIENIdHRwQ2FjaGVMb29rdXBUYWJsZSA6IHB1Ymxp
YyBDQmENCiAgICAgICAgICogQHBhcmFtDQogICAgICAgICAqIEByZXR1cm4NCiAgICAgICAgICov
DQotCQlDSHR0cENhY2hlRW50cnkqIEluc2VydEwoIGNvbnN0IFREZXNDOCYgYVVybCApOw0KKyAg
ICBDSHR0cENhY2hlRW50cnkqIEluc2VydEwoIGNvbnN0IFREZXNDOCYgYVVybCApOw0KIA0KICAg
ICAgICAgLyoqDQogICAgICAgICAqDQpAQCAtMTAyLDcgKzEwMyw3IEBAIGNsYXNzIENIdHRwQ2Fj
aGVMb29rdXBUYWJsZSA6IHB1YmxpYyBDQmENCiAgICAgICAgICogQHBhcmFtDQogICAgICAgICAq
IEByZXR1cm4NCiAgICAgICAgICovDQotCQlDSHR0cENhY2hlRW50cnkqIEZpbmQoIGNvbnN0IFRE
ZXNDOCYgYVVybCApOw0KKyAgICBDSHR0cENhY2hlRW50cnkqIEZpbmQoIGNvbnN0IFREZXNDOCYg
YVVybCApOw0KIA0KICAgICAgICAgLyoqDQogICAgICAgICAqDQpAQCAtMTEwLDcgKzExMSw3IEBA
IGNsYXNzIENIdHRwQ2FjaGVMb29rdXBUYWJsZSA6IHB1YmxpYyBDQmENCiAgICAgICAgICogQHBh
cmFtDQogICAgICAgICAqIEByZXR1cm4NCiAgICAgICAgICovDQotCQlUSW50IFJlbW92ZSggY29u
c3QgVERlc0M4JiBhVXJsICk7DQorICAgIFRJbnQgUmVtb3ZlKCBjb25zdCBURGVzQzgmIGFVcmwg
KTsNCiANCiAgICAgICAgIC8qKg0KICAgICAgICAgKg0KQEAgLTExOCw3ICsxMTksNyBAQCBjbGFz
cyBDSHR0cENhY2hlTG9va3VwVGFibGUgOiBwdWJsaWMgQ0JhDQogICAgICAgICAqIEBwYXJhbQ0K
ICAgICAgICAgKiBAcmV0dXJuDQogICAgICAgICAqLw0KLQkJVEludCBSZW1vdmVBbGwoKTsNCisg
ICAgVEludCBSZW1vdmVBbGwoKTsNCiANCiAgICAgICAgIC8qKg0KICAgICAgICAgKg0KQEAgLTE1
Miw2ICsxNTMsMTQgQEAgY2xhc3MgQ0h0dHBDYWNoZUxvb2t1cFRhYmxlIDogcHVibGljIENCYQ0K
ICAgICAgICAgKi8NCiAgICAgICAgIHZvaWQgRXh0ZXJuYWxpemVMKCBSRmlsZVdyaXRlU3RyZWFt
JiBhV3JpdGVTdHJlYW0gKTsNCiANCisgICAgICAgIC8qKg0KKyAgICAgICAgKg0KKyAgICAgICAg
KiBAc2luY2UgMy4xDQorICAgICAgICAqIEBwYXJhbQ0KKyAgICAgICAgKiBAcmV0dXJuDQorICAg
ICAgICAqLw0KKyAgICB2b2lkIE1lcmdlTCggQ0h0dHBDYWNoZUxvb2t1cFRhYmxlKiBhSHR0cENh
Y2hlTG9va3VwVGFibGUsIFJGcyBhUmZzICApOw0KKw0KICAgICBwcml2YXRlOg0KIA0KICAgICAg
ICAgLyoqDQpAQCAtMjYxLDcgKzI3MCw3IEBAIGNsYXNzIENIdHRwQ2FjaGVMb29rdXBUYWJsZSA6
IHB1YmxpYyBDQmENCiAgICAgcHJpdmF0ZTogICAgLy8gRGF0YQ0KIA0KICAgICAgICAgLy8gaGFz
aCB0YWJsZSBmb3IgY2FjaGUgZW50cmllcw0KLQkJQ0FycmF5UHRyRmxhdDxDSHR0cENhY2hlRW50
cnk+KiBpRW50cmllczsNCisgICAgQ0FycmF5UHRyRmxhdDxDSHR0cENhY2hlRW50cnk+KiBpRW50
cmllczsNCiAgICAgICAgIC8vIG51bWJlciBvZiBlbnRyaWVzIGluIHRoZSBoYXNodGFibGUNCiAg
ICAgICAgIFRJbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgaUNvdW50Ow0KICAgICAgICAg
Ly8NCkluZGV4OiBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlT2JzZXJ2
ZXIuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRw
Q2FjaGVPYnNlcnZlci5oCShyZXZpc2lvbiAwKQ0KKysrIFdlYktpdC9SZXNvdXJjZUxvYWRlci9D
YWNoZUluYy9IdHRwQ2FjaGVPYnNlcnZlci5oCShyZXZpc2lvbiAwKQ0KQEAgLTAsMCArMSwxMjEg
QEANCisvKg0KKyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorKiAgTmFtZSAgICAgICAgOiBIdHRw
Q2FjaGVIYW5kbGVyVXBkYXRlci5oDQorKiAgUGFydCBvZiAgICAgOiBXZWJLaXQgLyBSZXNvdXJj
ZUxvYWRlcg0KKyogIEludGVyZmFjZSAgIDoNCisqICBEZXNjcmlwdGlvbiA6IERlZmluaXRpb24g
b2YgQ0h0dHBDYWNoZU9ic2VydmVyDQorKiAgVmVyc2lvbiAgICAgOiAlVmVyc2lvbiUNCisqDQor
KiAgICBDb3B5cmlnaHQgKGMpIDIwMDYsIE5va2lhIENvcnBvcmF0aW9uDQorKiAgICBBbGwgcmln
aHRzIHJlc2VydmVkLg0KKyoNCisqICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQorKiAgIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucw0KKyogICBh
cmUgbWV0Og0KKyoNCisqICAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodA0KKyogICAgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCisqICAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodA0KKyogICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbg0KKyogICAgICAgIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUNCisqICAgICAgICBkaXN0cmli
dXRpb24uDQorKiAgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgTm9raWEgQ29ycG9yYXRp
b24gbm9yIHRoZSBuYW1lcyBvZiBpdHMNCisqICAgICAgICBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQNCisqICAgICAgICBmcm9t
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
DQorKg0KKyogICBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTDQorKiAgICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UDQorKiAgIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUg0K
KyogICBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVA0KKyogICBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwNCisqICAgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVA0KKyogICBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwNCisqICAgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZDQorKiAgIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQNCisqICAgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUNCisqICAgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSA0KKyogICBEQU1BR0UuDQorKg0KKyogICAgUGxlYXNlIHNlZSBm
aWxlIHBhdGVudGxpY2Vuc2UudHh0IGZvciBmdXJ0aGVyIGdyYW50cy4NCisqID09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQ0KKyovDQorDQorI2lmbmRlZiBDSFRUUENBQ0hFT0JTRVJWRVJfSA0KKyNkZWZp
bmUgQ0hUVFBDQUNIRU9CU0VSVkVSX0gNCisNCisvLyAgSU5DTFVERVMNCisjaW5jbHVkZSA8ZTMy
YmFzZS5oPg0KKyNpbmNsdWRlIDxmMzJmaWxlLmg+DQorDQorLy8gQ09OU1RBTlRTDQorDQorLy8g
TUFDUk9TDQorDQorLy8gREFUQSBUWVBFUw0KKw0KKy8vIEZVTkNUSU9OIFBST1RPVFlQRVMNCisN
CisvLyBGT1JXQVJEIERFQ0xBUkFUSU9OUw0KK2NsYXNzIENIdHRwQ2FjaGVIYW5kbGVyOw0KKw0K
Ky8vIENMQVNTIERFQ0xBUkFUSU9ODQorDQorLyoqDQorKg0KKyogIEBsaWINCisqICBAc2luY2Ug
My4xDQorKi8NCitOT05TSEFSQUJMRV9DTEFTUyhDSHR0cENhY2hlT2JzZXJ2ZXIpIDogcHVibGlj
IENBY3RpdmUNCisgICAgew0KKyAgICBwdWJsaWM6ICAvLyBDb25zdHJ1Y3RvcnMgYW5kIGRlc3Ry
dWN0b3INCisNCisgICAgICAgIC8qKg0KKyAgICAgICAgKiBUd28tcGhhc2VkIGNvbnN0cnVjdG9y
Lg0KKyAgICAgICAgKiBAc2luY2UgMy4xDQorICAgICAgICAqIEBwYXJhbQ0KKyAgICAgICAgKiBA
cGFyYW0NCisgICAgICAgICogQHJldHVybiBDYWNoZUhhbmRsZXIgb2JqZWN0Lg0KKyAgICAgICAg
Ki8NCisgICAgICAgIHN0YXRpYyBDSHR0cENhY2hlT2JzZXJ2ZXIqIE5ld0woIGNvbnN0IEhCdWZD
KiBhRGlyZWN0b3J5LCBjb25zdCBIQnVmQyogYUluZGV4RmlsZSwNCisgICAgICAgICAgICBDSHR0
cENhY2hlSGFuZGxlciogYUh0dHBDYWNoZUhhbmRsZXIpOw0KKw0KKyAgICAgICAgLyoqDQorICAg
ICAgICAqIERlc3RydWN0b3IuDQorICAgICAgICAqLw0KKyAgICAgICAgdmlydHVhbCB+Q0h0dHBD
YWNoZU9ic2VydmVyKCk7DQorDQorICAgIHB1YmxpYzogLy8gbmV3IGZ1bmN0aW9ucw0KKyAgICAg
ICAgdm9pZCBTdGFydE9ic2VydmVyKCk7DQorDQorICAgIHB1YmxpYzogLy8gZnJvbSBiYXNlIGNs
YXNzIENBY3RpdmUNCisgICAgICAgIHZvaWQgUnVuTCgpOw0KKyAgICAgICAgVEludCBSdW5FcnJv
cihUSW50IGFFcnJvcik7DQorICAgICAgICB2b2lkIERvQ2FuY2VsKCk7DQorDQorICAgIHByaXZh
dGU6DQorDQorICAgICAgICAvKioNCisgICAgICAgICogQ29uc3RydWN0Lg0KKyAgICAgICAgKiBA
c2luY2UgMy4xDQorICAgICAgICAqIEBwYXJhbQ0KKyAgICAgICAgKiBAcGFyYW0NCisgICAgICAg
ICogQHJldHVybiBDYWNoZU9ic2VydmVyIG9iamVjdC4NCisgICAgICAgICovDQorICAgICAgICBD
SHR0cENhY2hlT2JzZXJ2ZXIoQ0h0dHBDYWNoZUhhbmRsZXIqIGFIdHRwQ2FjaGVIYW5kbGVyKTsN
CisNCisgICAgICAgIC8qKg0KKyAgICAgICAgKiBCeSBkZWZhdWx0IFN5bWJpYW4gMm5kIHBoYXNl
IGNvbnN0cnVjdG9yIGlzIHByaXZhdGUuDQorICAgICAgICAqLw0KKyAgICAgICAgdm9pZCBDb25z
dHJ1Y3RMKGNvbnN0IEhCdWZDKiBhRGlyZWN0b3J5LCBjb25zdCBIQnVmQyogYUluZGV4RmlsZSk7
DQorDQorICAgIHByaXZhdGU6ICAgIC8vIERhdGENCisNCisgICAgICAgIC8vIG5hbWUgYW5kIHBh
dGggb2YgaW5kZXggZmlsZQ0KKyAgICAgICAgSEJ1ZkMqIGlGaWxlTmFtZTsgLy8gb3duZWQNCisg
ICAgICAgIFJGcyBpRnNTZXNzaW9uOyAvLyBub3Qgb3duZWQNCisgICAgICAgIENIdHRwQ2FjaGVI
YW5kbGVyKiBpSHR0cENhY2hlSGFuZGxlcjsNCisgICAgfTsNCisNCisjZW5kaWYgICAgICAvLyBD
SFRUUENBQ0hFT0JTRVJWRVJfSA0KKw0KKy8vIEVuZCBvZiBGaWxlDQpJbmRleDogV2ViS2l0L1Jl
c291cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZUVudHJ5LmNwcA0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t
IFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVFbnRyeS5jcHAJKHJldmlz
aW9uIDE4MjIxKQ0KKysrIFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVF
bnRyeS5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0zMDYsNCArMzA2LDI2IEBAIFRJbnQgQ0h0dHBD
YWNoZUVudHJ5OjpFeHRlcm5hbGl6ZSgNCiAgICAgcmV0dXJuIGVycjsNCiAgICAgfQ0KIA0KKy8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ0h0dHBDYWNoZUVudHJ5OjpBY2Nlc3NlZA0KKy8v
DQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLw0KK3ZvaWQgQ0h0dHBDYWNoZUVudHJ5OjpB
Y2Nlc3NlZChUSW50NjQgYUxhc3RBY2Nlc3NlZCwgVFVpbnQxNiBhUmVmKQ0KKyAgICB7DQorICAg
IGlMYXN0QWNjZXNzZWQgPSBhTGFzdEFjY2Vzc2VkOw0KKyAgICBpUmVmID0gYVJlZjsNCisgICAg
aWYoIGlWaWN0aW0gKQ0KKyAgICAgICAgew0KKyAgICAgICAgaUV2aWN0aW9uSGFuZGxlci0+QWNj
ZXNzZWQoICp0aGlzICk7DQorICAgICAgICB9DQorI2lmZGVmIF9fQ0FDSEVMT0dfXw0KKyAgICBf
TElUKCBLQWNjZXNzRm9ybWF0LCAiZW50cnkgYWNjZXNzZWQ6ICVkIiApOw0KKyAgICBUQnVmPDEw
MD4gYnVmOw0KKyAgICBidWYuRm9ybWF0KCBLQWNjZXNzRm9ybWF0LCBpUmVmICk7DQorICAgIEh0
dHBDYWNoZVV0aWw6OldyaXRlVXJsVG9Mb2coIDAsIGJ1ZiwgaVVybC0+RGVzKCkgKTsNCisjZW5k
aWYgLy8gX19DQUNIRUxPR19fDQorDQorICAgIH0NCisNCiAvLyAgRW5kIG9mIEZpbGUNCkluZGV4
OiBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hlSGFuZGxlci5jcHANCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0NCi0tLSBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hlSGFu
ZGxlci5jcHAJKHJldmlzaW9uIDE4MjIxKQ0KKysrIFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNo
ZVNyYy9IdHRwQ2FjaGVIYW5kbGVyLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTQ4LDYgKzQ4LDcg
QEANCiAjaW5jbHVkZSAiSHR0cENhY2hlU3RyZWFtSGFuZGxlci5oIg0KICNpbmNsdWRlICJIdHRw
Q2FjaGVVdGlsLmgiDQogI2luY2x1ZGUgIkh0dHBDYWNoZUV2aWN0aW9uSGFuZGxlci5oIg0KKyNp
bmNsdWRlICJIdHRwQ2FjaGVPYnNlcnZlci5oIg0KICNpbmNsdWRlIDxodHRwXFJIVFRQVHJhbnNh
Y3Rpb24uaD4NCiAjaW5jbHVkZSA8aHR0cFxyaHR0cHNlc3Npb24uaD4NCiAjaW5jbHVkZSA8aHR0
cFxyaHR0cGhlYWRlcnMuaD4NCkBAIC0xMTUsNiArMTE2LDkgQEAgdm9pZCBDSHR0cENhY2hlSGFu
ZGxlcjo6Q29uc3RydWN0TCgNCiAgICAgT3Blbkxvb2t1cFRhYmxlTCgpOw0KICAgICAvLw0KICAg
ICBpSWRsZSA9IENJZGxlOjpOZXdMKCBDQWN0aXZlOjpFUHJpb3JpdHlJZGxlICk7DQorICAgIC8v
DQorICAgIGlIdHRwQ2FjaGVPYnNlcnZlciA9IENIdHRwQ2FjaGVPYnNlcnZlcjo6TmV3TChpRGly
ZWN0b3J5LCBpSW5kZXhGaWxlLCB0aGlzKTsNCisgICAgaUh0dHBDYWNoZU9ic2VydmVyLT5TdGFy
dE9ic2VydmVyKCk7DQogICAgIH0NCiANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQEAgLTEz
OSw4ICsxNDMsMTMgQEAgQ0h0dHBDYWNoZUhhbmRsZXIqIENIdHRwQ2FjaGVIYW5kbGVyOjpOZQ0K
IC8vIERlc3RydWN0b3INCiBDSHR0cENhY2hlSGFuZGxlcjo6fkNIdHRwQ2FjaGVIYW5kbGVyKCkN
CiAgICAgew0KLSAgICAvLyBzYXZlIGVudHJ5IHRhYmxlDQotICAgIFRSQVBfSUdOT1JFKCBTYXZl
TG9va3VwVGFibGVMKCkgKTsNCisgICAgaWYgKGlJZGxlLT5Jc0FjdGl2ZSgpKQ0KKyAgICAgICAg
ew0KKyAgICAgICAgLy8gc2F2ZSBlbnRyeSB0YWJsZSwgYnV0IG9ubHkgaWYgaXQgd2FzIG1vZGlm
aWVkDQorICAgICAgICBUUkFQX0lHTk9SRSggU2F2ZUxvb2t1cFRhYmxlTCgpICk7DQorICAgICAg
ICB9DQorICAgIC8vDQorICAgIGRlbGV0ZSBpSHR0cENhY2hlT2JzZXJ2ZXI7DQogICAgIC8vDQog
ICAgIGlmIChpRXZpY3Rpb25IYW5kbGVyKQ0KICAgICAgICAgew0KQEAgLTEwNjQsNiArMTA3Mywx
NiBAQCBUQm9vbCBDSHR0cENhY2hlSGFuZGxlcjo6SGFuZGxlUmVzcG9uc2VODQogLy8NCiB2b2lk
IENIdHRwQ2FjaGVIYW5kbGVyOjpPcGVuTG9va3VwVGFibGVMKCkNCiAgICAgew0KKyAgICBPcGVu
TG9va3VwVGFibGVMKGlMb29rdXBUYWJsZSk7DQorICAgIH0NCisNCisvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQ0KKy8vIENIdHRwQ2FjaGVIYW5kbGVyOjpPcGVuTG9va3VwVGFibGVMDQorLy8NCisv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vDQordm9pZCBDSHR0cENhY2hlSGFuZGxlcjo6T3Bl
bkxvb2t1cFRhYmxlTChDSHR0cENhY2hlTG9va3VwVGFibGUqIGFMb29rdXBUYWJsZSkNCisgICAg
ew0KICAgICAvLyByZWFkIGVudHJpZXMgZnJvbSBpbmRleC5kYXQNCiAgICAgUkZpbGVSZWFkU3Ry
ZWFtIHJlYWRTdHJlYW07DQogICAgIFJGcyBmczsNCkBAIC0xMDgzLDExICsxMTAyLDI2IEBAIHZv
aWQgQ0h0dHBDYWNoZUhhbmRsZXI6Ok9wZW5Mb29rdXBUYWJsZUwNCiAgICAgaWYoIGVyciA9PSBL
RXJyTm9uZSApDQogICAgICAgICB7DQogICAgICAgICBmcy5TZXRTZXNzaW9uUGF0aCggaURpcmVj
dG9yeS0+RGVzKCkgKTsNCi0NCi0gICAgICAgIGlmKCByZWFkU3RyZWFtLk9wZW4oIGZzLCBpSW5k
ZXhGaWxlLT5EZXMoKSwgRUZpbGVSZWFkICkgPT0gS0Vyck5vbmUgKQ0KKyAgICAgICAgVEludCBy
ZXQgPSBLRXJyTm9uZTsNCisgICAgICAgIFRJbnQgdHJ5Q291bnQgPSAwOw0KKyAgICAgICAgZm9y
ICh0cnlDb3VudCA9IDA7IHRyeUNvdW50IDwgNTsgdHJ5Q291bnQrKykgDQorICAgICAgICAgICAg
ew0KKyAgICAgICAgICAgIHJldCA9IHJlYWRTdHJlYW0uT3BlbiggZnMsIGlJbmRleEZpbGUtPkRl
cygpLCBFRmlsZVJlYWQgfCBFRmlsZVNoYXJlQW55ICk7DQorICAgICAgICAgICAgaWYgKHJldCA9
PSBLRXJySW5Vc2UpDQorICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgLy8gV2hl
biB0aGUgY2FjaGUgaXMgZnVsbCwgaXQgdGFrZXMgNjUgLSA4NSBtaWxpc2Vjb25kcyB0byB3cml0
ZSB0aGUgaW5kZXguDQorICAgICAgICAgICAgICAgIC8vIFNvIHdhaXQgNTAgbWlsaXNlY29uZHMg
YW5kIHRyeSBhZ2Fpbg0KKyAgICAgICAgICAgICAgICBVc2VyOjpBZnRlcig1MDAwMCk7DQorICAg
ICAgICAgICAgICAgIH0NCisgICAgICAgICAgICBlbHNlDQorICAgICAgICAgICAgICAgIHsNCisg
ICAgICAgICAgICAgICAgYnJlYWs7DQorICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICB9
DQorICAgICAgICBpZiggcmV0ID09IEtFcnJOb25lICkNCiAgICAgICAgICAgICB7DQogICAgICAg
ICAgICAgQ2xlYW51cENsb3NlUHVzaEwoIHJlYWRTdHJlYW0gKTsNCi0gICAgICAgICAgICBpTG9v
a3VwVGFibGUtPkludGVybmFsaXplTCggcmVhZFN0cmVhbSwgaURpcmVjdG9yeS0+RGVzKCkgKTsN
CisgICAgICAgICAgICBhTG9va3VwVGFibGUtPkludGVybmFsaXplTCggcmVhZFN0cmVhbSwgaURp
cmVjdG9yeS0+RGVzKCkgKTsNCiAgICAgICAgICAgICBDbGVhbnVwU3RhY2s6OlBvcEFuZERlc3Ry
b3koKTsgLy8gcmVhZFN0cmVhbQ0KICAgICAgICAgICAgIH0NCiAgICAgICAgIH0NCkBAIC0xMTA3
LDEwICsxMTQxLDI2IEBAIHZvaWQgQ0h0dHBDYWNoZUhhbmRsZXI6OlNhdmVMb29rdXBUYWJsZUwN
CiAgICAgUkZzIGZzOw0KICAgICBVc2VyOjpMZWF2ZUlmRXJyb3IoIGZzLkNvbm5lY3QoKSApOw0K
ICAgICBDbGVhbnVwQ2xvc2VQdXNoTCggZnMgKTsNCi0NCiAgICAgZnMuU2V0U2Vzc2lvblBhdGgo
IGlEaXJlY3RvcnktPkRlcygpICk7DQotDQotICAgIGlmKCB3cml0ZVN0cmVhbS5SZXBsYWNlKCBm
cywgaUluZGV4RmlsZS0+RGVzKCksIEVGaWxlV3JpdGUgKSA9PSBLRXJyTm9uZSApDQorICAgIC8v
IERvbid0IGdldCBub3RpZmllZCBhYm91dCBvd24gY2hhbmdlcw0KKyAgICBpSHR0cENhY2hlT2Jz
ZXJ2ZXItPkNhbmNlbCgpOw0KKyAgICBUSW50IHJldCA9IEtFcnJOb25lOw0KKyAgICBUSW50IHRy
eUNvdW50ID0gMDsNCisgICAgZm9yICh0cnlDb3VudCA9IDA7IHRyeUNvdW50IDwgNTsgdHJ5Q291
bnQrKykgDQorICAgICAgICB7DQorICAgICAgICByZXQgPSB3cml0ZVN0cmVhbS5SZXBsYWNlKCBm
cywgaUluZGV4RmlsZS0+RGVzKCksIEVGaWxlV3JpdGUgKTsNCisgICAgICAgIGlmIChyZXQgPT0g
S0VyckluVXNlKQ0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICAvLyBXaGVuIHRoZSBjYWNo
ZSBpcyBmdWxsLCBpdCB0YWtlcyA2NSAtIDg1IG1pbGlzZWNvbmRzIHRvIHdyaXRlIHRoZSBpbmRl
eC4NCisgICAgICAgICAgICAvLyBTbyB3YWl0IDUwIG1pbGlzZWNvbmRzIGFuZCB0cnkgYWdhaW4N
CisgICAgICAgICAgICBVc2VyOjpBZnRlcig1MDAwMCk7DQorICAgICAgICAgICAgfQ0KKyAgICAg
ICAgZWxzZQ0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICBicmVhazsNCisgICAgICAgICAg
ICB9DQorICAgICAgICB9DQorICAgIGlmKCByZXQgPT0gS0Vyck5vbmUgKQ0KICAgICAgICAgew0K
ICAgICAgICAgQ2xlYW51cENsb3NlUHVzaEwoIHdyaXRlU3RyZWFtICk7DQogICAgICAgICBpTG9v
a3VwVGFibGUtPkV4dGVybmFsaXplTCggd3JpdGVTdHJlYW0gKTsNCkBAIC0xMTE4LDYgKzExNjgs
NyBAQCB2b2lkIENIdHRwQ2FjaGVIYW5kbGVyOjpTYXZlTG9va3VwVGFibGVMDQogICAgICAgICBD
bGVhbnVwU3RhY2s6OlBvcEFuZERlc3Ryb3koKTsgLy8gd3JpdGVTdHJlYW0NCiAgICAgICAgIH0N
CiAgICAgQ2xlYW51cFN0YWNrOjpQb3BBbmREZXN0cm95KCk7IC8vIGZzDQorICAgIGlIdHRwQ2Fj
aGVPYnNlcnZlci0+U3RhcnRPYnNlcnZlcigpOw0KICAgICB9DQogDQogLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0NCkBAIC0xMjQ4LDQgKzEyOTksMzUgQEAgVEludCBDSHR0cENhY2hlSGFuZGxlcjo6
RG9CYWNrZ3JvdW5kU2F2ZQ0KICAgICByZXR1cm4gS0Vyck5vbmU7DQogICAgIH0NCiANCisNCisv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRwQ2FjaGVIYW5kbGVyOjpVcGRhdGVMb29r
dXBUYWJsZQ0KKy8vDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLw0KK3ZvaWQgQ0h0dHBD
YWNoZUhhbmRsZXI6OlVwZGF0ZUxvb2t1cFRhYmxlKCkNCisgICAgew0KKyAgICBUUkFQX0lHTk9S
RShVcGRhdGVMb29rdXBUYWJsZUwoKSk7DQorICAgIGlIdHRwQ2FjaGVPYnNlcnZlci0+U3RhcnRP
YnNlcnZlcigpOw0KKyAgICB9DQorDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBDSHR0
cENhY2hlSGFuZGxlcjo6VXBkYXRlTG9va3VwVGFibGVMDQorLy8NCisvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQ0KKy8vDQordm9pZCBDSHR0cENhY2hlSGFuZGxlcjo6VXBkYXRlTG9va3VwVGFibGVM
KCkNCisgICAgew0KKyAgICBDSHR0cENhY2hlRXZpY3Rpb25IYW5kbGVyKiBldmljdGlvbkhhbmRs
ZXIgPSBDSHR0cENhY2hlRXZpY3Rpb25IYW5kbGVyOjpOZXdMKCk7DQorICAgIENsZWFudXBTdGFj
azo6UHVzaEwoZXZpY3Rpb25IYW5kbGVyKTsNCisgICAgQ0h0dHBDYWNoZUxvb2t1cFRhYmxlKiBs
b29rdXBUYWJsZSA9IENIdHRwQ2FjaGVMb29rdXBUYWJsZTo6TmV3TCggKmV2aWN0aW9uSGFuZGxl
ciwgKmlTdHJlYW1IYW5kbGVyICk7DQorICAgIENsZWFudXBTdGFjazo6UHVzaEwobG9va3VwVGFi
bGUpOw0KKyAgICBPcGVuTG9va3VwVGFibGVMKGxvb2t1cFRhYmxlKTsNCisgICAgUkZzIHJmczsN
CisgICAgVXNlcjo6TGVhdmVJZkVycm9yKHJmcy5Db25uZWN0KCkpOw0KKyAgICBDbGVhbnVwQ2xv
c2VQdXNoTChyZnMpOw0KKyAgICByZnMuU2V0U2Vzc2lvblBhdGgoIGlEaXJlY3RvcnktPkRlcygp
ICk7DQorICAgIGlMb29rdXBUYWJsZS0+TWVyZ2VMKGxvb2t1cFRhYmxlLCByZnMpOw0KKyAgICBD
bGVhbnVwU3RhY2s6OlBvcEFuZERlc3Ryb3koMyk7IC8vIHJmcywgbG9va3VwVGFibGUsIGV2aWN0
aW9uSGFuZGxlcg0KKyAgICB9DQogLy8gIEVuZCBvZiBGaWxlDQpJbmRleDogV2ViS2l0L1Jlc291
cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZUxvb2t1cFRhYmxlLmNwcA0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
LS0tIFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVMb29rdXBUYWJsZS5j
cHAJKHJldmlzaW9uIDE4MjIxKQ0KKysrIFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9I
dHRwQ2FjaGVMb29rdXBUYWJsZS5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC00Niw3ICs0Niw2IEBA
DQogI2luY2x1ZGUgIkh0dHBDYWNoZVV0aWwuaCINCiAjaW5jbHVkZSAiSHR0cENhY2hlRXZpY3Rp
b25IYW5kbGVyLmgiDQogI2luY2x1ZGUgIkh0dHBDYWNoZVN0cmVhbUhhbmRsZXIuaCINCi0jaW5j
bHVkZSA8czMyZmlsZS5oPg0KIA0KIC8vIEVYVEVSTkFMIERBVEEgU1RSVUNUVVJFUw0KIA0KQEAg
LTY3Miw1ICs2NzEsNzIgQEAgVEJvb2wgQ0h0dHBDYWNoZUxvb2t1cFRhYmxlOjpCb3VuZGFyeUNo
ZQ0KICAgICBUSW50IGFQb3MgKQ0KICAgICB7DQogICAgIHJldHVybiAoIGFQb3MgPj0gMCAmJiBh
UG9zIDwgaUVudHJpZXMtPkNvdW50KCkgKTsNCisgICAgfQ0KKw0KKy8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tDQorLy8gQ0h0dHBDYWNoZUxvb2t1cFRhYmxlOjpNZXJnZUwNCisvLw0KKy8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tDQorLy8NCit2b2lkIENIdHRwQ2FjaGVMb29rdXBUYWJsZTo6TWVyZ2VM
KCBDSHR0cENhY2hlTG9va3VwVGFibGUqIGFIdHRwQ2FjaGVMb29rdXBUYWJsZSwgUkZzIGFSZnMg
KQ0KKyAgICB7DQorICAgIFRJbnQgbXlDb3VudCA9IGlFbnRyaWVzLT5Db3VudCgpOw0KKyAgICBU
SW50IGkgPSAwOw0KKyAgICBmb3IgKGkgPSBteUNvdW50IC0gMTsgaSA+PSAwOyBpLS0pDQorICAg
ICAgICB7DQorICAgICAgICBpZiAoIFZhbGlkKCBpICkgKQ0KKyAgICAgICAgICAgIHsNCisgICAg
ICAgICAgICBDSHR0cENhY2hlRW50cnkqIGVudHJ5ID0gaUVudHJpZXMtPkF0KGkpOw0KKyAgICAg
ICAgICAgIENIdHRwQ2FjaGVFbnRyeSogbmV3RW50cnkgPSBhSHR0cENhY2hlTG9va3VwVGFibGUt
PkZpbmQoZW50cnktPlVybCgpKTsNCisgICAgICAgICAgICBpZiAobmV3RW50cnkpDQorICAgICAg
ICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgLy8gRW50cnkgaXMgaW4gdGhlIG5ldyBpbmRl
eCBmaWxlDQorICAgICAgICAgICAgICAgIGlmIChuZXdFbnRyeS0+TGFzdEFjY2Vzc2VkKCkgPiBl
bnRyeS0+TGFzdEFjY2Vzc2VkKCkpDQorICAgICAgICAgICAgICAgICAgICB7DQorICAgICAgICAg
ICAgICAgICAgICBlbnRyeS0+QWNjZXNzZWQobmV3RW50cnktPkxhc3RBY2Nlc3NlZCgpLCBuZXdF
bnRyeS0+UmVmKCkpOw0KKyAgICAgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICBU
SW50IHBvcyA9IGFIdHRwQ2FjaGVMb29rdXBUYWJsZS0+UHJvYmUobmV3RW50cnktPlVybCgpLCBF
RmFsc2UpOw0KKyAgICAgICAgICAgICAgICBpZiAoYUh0dHBDYWNoZUxvb2t1cFRhYmxlLT5WYWxp
ZChwb3MpKQ0KKyAgICAgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICAgICAgYUh0
dHBDYWNoZUxvb2t1cFRhYmxlLT5TZXREZWxldGVkKHBvcyk7DQorICAgICAgICAgICAgICAgICAg
ICBkZWxldGUgbmV3RW50cnk7DQorICAgICAgICAgICAgICAgICAgICBhSHR0cENhY2hlTG9va3Vw
VGFibGUtPmlDb3VudC0tOw0KKyAgICAgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAg
ICB9DQorICAgICAgICAgICAgZWxzZSAvLyAobmV3RW50cnkpDQorICAgICAgICAgICAgICAgIHsN
CisgICAgICAgICAgICAgICAgLy8gRW50cnkgaXMgbm90IGluIHRoZSBuZXcgaW5kZXggZmlsZQ0K
KyAgICAgICAgICAgICAgICBUVWludCBhdHQ7DQorICAgICAgICAgICAgICAgIGlmIChhUmZzLkF0
dChlbnRyeS0+RmlsZW5hbWUoKSwgYXR0KSAhPSBLRXJyTm9uZSkNCisgICAgICAgICAgICAgICAg
ICAgIHsNCisgICAgICAgICAgICAgICAgICAgIFRJbnQgdGhlUG9zID0gUHJvYmUoZW50cnktPlVy
bCgpLCBFRmFsc2UpOw0KKyAgICAgICAgICAgICAgICAgICAgaWYgKFZhbGlkKHRoZVBvcykpDQor
ICAgICAgICAgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICAgICAgICAgIEVyYXNl
KHRoZVBvcyk7DQorICAgICAgICAgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICAg
ICAgfQ0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgfQ0KKw0K
KyAgICBUSW50IG5ld0NvdW50ID0gYUh0dHBDYWNoZUxvb2t1cFRhYmxlLT5pRW50cmllcy0+Q291
bnQoKTsNCisgICAgZm9yIChpID0gbmV3Q291bnQgLSAxOyBpID49IDA7IGktLSkNCisgICAgICAg
IHsNCisgICAgICAgIGlmICggYUh0dHBDYWNoZUxvb2t1cFRhYmxlLT5WYWxpZCggaSApICkNCisg
ICAgICAgICAgICB7DQorICAgICAgICAgICAgQ0h0dHBDYWNoZUVudHJ5KiBuZXdFbnRyeSA9IGFI
dHRwQ2FjaGVMb29rdXBUYWJsZS0+aUVudHJpZXMtPkF0KGkpOw0KKyAgICAgICAgICAgIFRJbnQg
cG9zID0gYUh0dHBDYWNoZUxvb2t1cFRhYmxlLT5Qcm9iZShuZXdFbnRyeS0+VXJsKCksIEVGYWxz
ZSk7DQorICAgICAgICAgICAgVFVpbnQgYXR0Ow0KKyAgICAgICAgICAgIGlmIChhUmZzLkF0dChu
ZXdFbnRyeS0+RmlsZW5hbWUoKSwgYXR0KSA9PSBLRXJyTm9uZSkNCisgICAgICAgICAgICAgICAg
ew0KKyAgICAgICAgICAgICAgICBDSHR0cENhY2hlRW50cnkqIG15RW50cnkgPSBJbnNlcnRMKG5l
d0VudHJ5LT5VcmwoKSk7DQorICAgICAgICAgICAgICAgIG15RW50cnktPlNldFN0YXRlKCBDSHR0
cENhY2hlRW50cnk6OkVDYWNoZUNvbXBsZXRlICk7DQorICAgICAgICAgICAgICAgIG15RW50cnkt
PkFjY2Vzc2VkKG5ld0VudHJ5LT5MYXN0QWNjZXNzZWQoKSwgbmV3RW50cnktPlJlZigpKTsNCisg
ICAgICAgICAgICAgICAgfSAgICAgICAgICANCisgICAgICAgICAgICBhSHR0cENhY2hlTG9va3Vw
VGFibGUtPlNldERlbGV0ZWQocG9zKTsNCisgICAgICAgICAgICBkZWxldGUgbmV3RW50cnk7DQor
ICAgICAgICAgICAgYUh0dHBDYWNoZUxvb2t1cFRhYmxlLT5pQ291bnQtLTsNCisgICAgICAgICAg
ICB9DQorICAgICAgICB9DQogICAgIH0NCiAvLyAgRW5kIG9mIEZpbGUNCkluZGV4OiBXZWJLaXQv
UmVzb3VyY2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hlT2JzZXJ2ZXIuY3BwDQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
DQotLS0gV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZU9ic2VydmVyLmNw
cAkocmV2aXNpb24gMCkNCisrKyBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENh
Y2hlT2JzZXJ2ZXIuY3BwCShyZXZpc2lvbiAwKQ0KQEAgLTAsMCArMSwxNjAgQEANCisvKg0KKyog
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09DQorKiAgTmFtZSAgICAgICAgOiBIdHRwQ2FjaGVPYnNlcnZl
ci5jcHANCisqICBQYXJ0IG9mICAgICA6IFdlYktpdCAvIFJlc291cmNlTG9hZGVyDQorKiAgSW50
ZXJmYWNlICAgOg0KKyogIERlc2NyaXB0aW9uIDogSW1wbGVtZW50YXRpb24gb2YgQ0h0dHBDYWNo
ZU9ic2VydmVyDQorKiAgVmVyc2lvbiAgICAgOiAlVmVyc2lvbiUNCisqDQorKiAgICBDb3B5cmln
aHQgKGMpIDIwMDYsIE5va2lhIENvcnBvcmF0aW9uDQorKiAgICBBbGwgcmlnaHRzIHJlc2VydmVk
Lg0KKyoNCisqICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0DQorKiAgIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucw0KKyogICBhcmUgbWV0Og0KKyoN
CisqICAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodA0KKyogICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCisqICAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodA0KKyog
ICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbg0KKyogICAgICAgIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUNCisqICAgICAgICBkaXN0cmlidXRpb24uDQorKiAg
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgTm9raWEgQ29ycG9yYXRpb24gbm9yIHRoZSBu
YW1lcyBvZiBpdHMNCisqICAgICAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQNCisqICAgICAgICBmcm9tIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uDQorKg0KKyogICBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTDQorKiAgICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UDQorKiAgIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUg0KKyogICBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVA0KKyogICBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwNCisqICAgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVA0KKyogICBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwN
CisqICAgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZDQorKiAgIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQNCisqICAgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUNCisqICAg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSA0KKyogICBEQU1BR0UuDQorKg0KKyogICAgUGxlYXNlIHNlZSBmaWxlIHBhdGVudGxp
Y2Vuc2UudHh0IGZvciBmdXJ0aGVyIGdyYW50cy4NCisqID09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
KyovDQorDQorLy8gSU5DTFVERSBGSUxFUw0KKyNpbmNsdWRlICJIdHRwQ2FjaGVPYnNlcnZlci5o
Ig0KKyNpbmNsdWRlICJIdHRwQ2FjaGVIYW5kbGVyLmgiDQorDQorDQorLy8gRVhURVJOQUwgREFU
QSBTVFJVQ1RVUkVTDQorDQorLy8gRVhURVJOQUwgRlVOQ1RJT04gUFJPVE9UWVBFUw0KKw0KKy8v
IENPTlNUQU5UUw0KKw0KKy8vIE1BQ1JPUw0KKw0KKy8vIExPQ0FMIENPTlNUQU5UUyBBTkQgTUFD
Uk9TDQorDQorLy8gTU9EVUxFIERBVEEgU1RSVUNUVVJFUw0KKw0KKy8vIExPQ0FMIEZVTkNUSU9O
IFBST1RPVFlQRVMNCisNCisvLyBGT1JXQVJEIERFQ0xBUkFUSU9OUw0KKw0KKw0KKy8vID09PT09
PT09PT09PT09PT09PT09PT09PT09PT0gTUVNQkVSIEZVTkNUSU9OUyA9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09DQorDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBDSHR0cENh
Y2hlT2JzZXJ2ZXI6OkNIdHRwQ2FjaGVPYnNlcnZlcg0KKy8vIEMrKyBkZWZhdWx0IGNvbnN0cnVj
dG9yIGNhbiBOT1QgY29udGFpbiBhbnkgY29kZSwgdGhhdA0KKy8vIG1pZ2h0IGxlYXZlLg0KKy8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8NCitDSHR0cENhY2hlT2JzZXJ2ZXI6OkNIdHRwQ2Fj
aGVPYnNlcnZlcihDSHR0cENhY2hlSGFuZGxlciogYUh0dHBDYWNoZUhhbmRsZXIpIDogQ0FjdGl2
ZSggQ0FjdGl2ZTo6RVByaW9yaXR5SWRsZSApLA0KK2lIdHRwQ2FjaGVIYW5kbGVyKGFIdHRwQ2Fj
aGVIYW5kbGVyKQ0KKyAgICB7DQorICAgIENBY3RpdmVTY2hlZHVsZXI6OkFkZCh0aGlzKTsNCisg
ICAgfQ0KKw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ0h0dHBDYWNoZU9ic2VydmVy
OjpDb25zdHJ1Y3RMDQorLy8gU3ltYmlhbiAybmQgcGhhc2UgY29uc3RydWN0b3IgY2FuIGxlYXZl
Lg0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8NCit2b2lkIENIdHRwQ2FjaGVPYnNlcnZl
cjo6Q29uc3RydWN0TChjb25zdCBIQnVmQyogYURpcmVjdG9yeSwgY29uc3QgSEJ1ZkMqIGFJbmRl
eEZpbGUpDQorICAgIHsNCisgICAgVXNlcjo6TGVhdmVJZkVycm9yKGlGc1Nlc3Npb24uQ29ubmVj
dCgpKTsNCisgICAgaUZpbGVOYW1lID0gSEJ1ZkM6Ok5ld0woYURpcmVjdG9yeS0+TGVuZ3RoKCkg
KyBhSW5kZXhGaWxlLT5MZW5ndGgoKSk7DQorICAgIGlGaWxlTmFtZS0+RGVzKCkuQ29weSgqYURp
cmVjdG9yeSk7DQorICAgIGlGaWxlTmFtZS0+RGVzKCkuQXBwZW5kKCphSW5kZXhGaWxlKTsNCisg
ICAgfQ0KKw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ0h0dHBDYWNoZU9ic2VydmVy
OjpOZXdMDQorLy8gVHdvLXBoYXNlZCBjb25zdHJ1Y3Rvci4NCisvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQ0KKy8vDQorQ0h0dHBDYWNoZU9ic2VydmVyKiBDSHR0cENhY2hlT2JzZXJ2ZXI6Ok5ld0wo
IGNvbnN0IEhCdWZDKiBhRGlyZWN0b3J5LCBjb25zdCBIQnVmQyogYUluZGV4RmlsZSwNCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDSHR0
cENhY2hlSGFuZGxlciogYUh0dHBDYWNoZUhhbmRsZXIpDQorICAgIHsNCisgICAgQ0h0dHBDYWNo
ZU9ic2VydmVyKiBzZWxmID0gbmV3KCBFTGVhdmUgKSBDSHR0cENhY2hlT2JzZXJ2ZXIoYUh0dHBD
YWNoZUhhbmRsZXIpOw0KKyAgICBDbGVhbnVwU3RhY2s6OlB1c2hMKCBzZWxmICk7DQorICAgIHNl
bGYtPkNvbnN0cnVjdEwoYURpcmVjdG9yeSwgYUluZGV4RmlsZSk7DQorICAgIENsZWFudXBTdGFj
azo6UG9wKCk7DQorICAgIHJldHVybiBzZWxmOw0KKyAgICB9DQorDQorLy8gRGVzdHJ1Y3Rvcg0K
K0NIdHRwQ2FjaGVPYnNlcnZlcjo6fkNIdHRwQ2FjaGVPYnNlcnZlcigpDQorICAgIHsNCisgICAg
Q2FuY2VsKCk7DQorICAgIGRlbGV0ZSBpRmlsZU5hbWU7DQorICAgIGlGc1Nlc3Npb24uQ2xvc2Uo
KTsNCisgICAgfQ0KKw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ0h0dHBDYWNoZU9i
c2VydmVyOjpSdW5MDQorLy8NCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vDQordm9pZCBD
SHR0cENhY2hlT2JzZXJ2ZXI6OlJ1bkwoKQ0KKyAgICB7DQorICAgIGlIdHRwQ2FjaGVIYW5kbGVy
LT5VcGRhdGVMb29rdXBUYWJsZSgpOw0KKyAgICB9DQorDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0NCisvLyBDSHR0cENhY2hlT2JzZXJ2ZXI6OlJ1bkVycm9yDQorLy8NCisvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQ0KKy8vDQorVEludCBDSHR0cENhY2hlT2JzZXJ2ZXI6OlJ1bkVycm9yKFRJbnQg
LyphRXJyb3IqLykNCisgICAgew0KKyAgICByZXR1cm4gS0Vyck5vbmU7DQorICAgIH0NCisNCisv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRwQ2FjaGVPYnNlcnZlcjo6RG9DYW5jZWwN
CisvLw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8NCit2b2lkIENIdHRwQ2FjaGVPYnNl
cnZlcjo6RG9DYW5jZWwoKQ0KKyAgICB7DQorICAgIGlGc1Nlc3Npb24uTm90aWZ5Q2hhbmdlQ2Fu
Y2VsKGlTdGF0dXMpOw0KKyAgICB9DQorDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBD
SHR0cENhY2hlT2JzZXJ2ZXI6OlN0YXJ0T2JzZXJ2ZXINCisvLw0KKy8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tDQorLy8NCit2b2lkIENIdHRwQ2FjaGVPYnNlcnZlcjo6U3RhcnRPYnNlcnZlcigpDQor
ICAgIHsNCisgICAgaWYgKCFJc0FjdGl2ZSgpKQ0KKyAgICAgICAgew0KKyAgICAgICAgaUZzU2Vz
c2lvbi5Ob3RpZnlDaGFuZ2UoRU5vdGlmeVdyaXRlLCBpU3RhdHVzLCAqaUZpbGVOYW1lKTsNCisg
ICAgICAgIFNldEFjdGl2ZSgpOw0KKyAgICAgICAgfQ0KKyAgICB9DQorDQorDQorLy8gIEVuZCBv
ZiBGaWxlDQpJbmRleDogV2ViS2l0L2dyb3VwL0Jyb3dzZXJDYWNoZS5tbXANCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBXZWJLaXQvZ3JvdXAvQnJvd3NlckNhY2hlLm1tcAkocmV2aXNpb24gMTgyMjEpDQorKysg
V2ViS2l0L2dyb3VwL0Jyb3dzZXJDYWNoZS5tbXAJKHdvcmtpbmcgY29weSkNCkBAIC02Niw2ICs2
Niw3IEBAIFNPVVJDRSAgICAgICAgSHR0cENhY2hlTWFuYWdlci5jcHANCiBTT1VSQ0UgICAgICAg
IEh0dHBDYWNoZUVudHJ5LmNwcA0KIFNPVVJDRSAgICAgICAgSHR0cENhY2hlRXZpY3Rpb25IYW5k
bGVyLmNwcA0KIFNPVVJDRSAgICAgICAgSHR0cENhY2hlSGFuZGxlci5jcHANCitTT1VSQ0UgICAg
ICAgIEh0dHBDYWNoZU9ic2VydmVyLmNwcA0KIFNPVVJDRSAgICAgICAgSHR0cENhY2hlTG9va3Vw
VGFibGUuY3BwDQogU09VUkNFICAgICAgICBIdHRwQ2FjaGVTdHJlYW1IYW5kbGVyLmNwcA0KIFNP
VVJDRSAgICAgICAgSHR0cENhY2hlVXRpbC5jcHANCg==
</data>
<flag name="review"
          id="4329"
          type_id="1"
          status="-"
          setter="Sachin.Padma"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11907</attachid>
            <date>2006-12-18 15:04:29 -0800</date>
            <delta_ts>2006-12-19 10:36:25 -0800</delta_ts>
            <desc>3.1 fix</desc>
            <filename>31.patch</filename>
            <type>text/plain</type>
            <size>40463</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxODIzNykNCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpDQpA
QCAtMSwzICsxLDQxIEBADQorMjAwNi0xMi0xNCAgeWFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lh
LmNvbT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKyAgICAgICAg
REVTQzogQnVnIDExODM0OiBUTFVVLTZWSlFYMyA6IENhY2hlIGNhbm5vdCBzdXBwb3J0IG1vcmUg
dGhhbiBvbmUgYXBwbGljYXRpb24gc2ltdWx0YW5lb3VzbHkNCisgICAgICAgIGh0dHA6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODM0DQorDQorICAgICAgICAqIENoYW5nZUxv
ZzoNCisgICAgICAgICogUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlRW50cnkuaDoN
CisgICAgICAgICogUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlSGFuZGxlci5oOg0K
KyAgICAgICAgKiBSZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVMb29rdXBUYWJsZS5o
Og0KKyAgICAgICAgKiBSZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVPYnNlcnZlci5o
OiBBZGRlZC4NCisgICAgICAgIChOT05TSEFSQUJMRV9DTEFTUyk6DQorICAgICAgICAqIFJlc291
cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZUVudHJ5LmNwcDoNCisgICAgICAgIChDSHR0cENh
Y2hlRW50cnk6On5DSHR0cENhY2hlRW50cnkpOg0KKyAgICAgICAgKENIdHRwQ2FjaGVFbnRyeTo6
U2V0U2l6ZSk6DQorICAgICAgICAoQ0h0dHBDYWNoZUVudHJ5OjpJbnRlcm5hbGl6ZSk6DQorICAg
ICAgICAoQ0h0dHBDYWNoZUVudHJ5OjpFeHRlcm5hbGl6ZSk6DQorICAgICAgICAoQ0h0dHBDYWNo
ZUVudHJ5OjpBY2Nlc3NlZCk6DQorICAgICAgICAqIFJlc291cmNlTG9hZGVyL0NhY2hlU3JjL0h0
dHBDYWNoZUhhbmRsZXIuY3BwOg0KKyAgICAgICAgKENIdHRwQ2FjaGVIYW5kbGVyOjpDb25zdHJ1
Y3RMKToNCisgICAgICAgIChDSHR0cENhY2hlSGFuZGxlcjo6fkNIdHRwQ2FjaGVIYW5kbGVyKToN
CisgICAgICAgIChDSHR0cENhY2hlSGFuZGxlcjo6T3Blbkxvb2t1cFRhYmxlTCk6DQorICAgICAg
ICAoQ0h0dHBDYWNoZUhhbmRsZXI6OlNhdmVMb29rdXBUYWJsZUwpOg0KKyAgICAgICAgKENIdHRw
Q2FjaGVIYW5kbGVyOjpEb0JhY2tncm91bmRTYXZlKToNCisgICAgICAgIChDSHR0cENhY2hlSGFu
ZGxlcjo6VXBkYXRlTG9va3VwVGFibGUpOg0KKyAgICAgICAgKENIdHRwQ2FjaGVIYW5kbGVyOjpV
cGRhdGVMb29rdXBUYWJsZUwpOg0KKyAgICAgICAgKiBSZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9I
dHRwQ2FjaGVMb29rdXBUYWJsZS5jcHA6DQorICAgICAgICAqIFJlc291cmNlTG9hZGVyL0NhY2hl
U3JjL0h0dHBDYWNoZU9ic2VydmVyLmNwcDogQWRkZWQuDQorICAgICAgICAoQ0h0dHBDYWNoZU9i
c2VydmVyOjpDSHR0cENhY2hlT2JzZXJ2ZXIpOg0KKyAgICAgICAgKENIdHRwQ2FjaGVPYnNlcnZl
cjo6Q29uc3RydWN0TCk6DQorICAgICAgICAoQ0h0dHBDYWNoZU9ic2VydmVyOjpOZXdMKToNCisg
ICAgICAgIChDSHR0cENhY2hlT2JzZXJ2ZXI6On5DSHR0cENhY2hlT2JzZXJ2ZXIpOg0KKyAgICAg
ICAgKENIdHRwQ2FjaGVPYnNlcnZlcjo6UnVuTCk6DQorICAgICAgICAoQ0h0dHBDYWNoZU9ic2Vy
dmVyOjpSdW5FcnJvcik6DQorICAgICAgICAoQ0h0dHBDYWNoZU9ic2VydmVyOjpEb0NhbmNlbCk6
DQorICAgICAgICAoQ0h0dHBDYWNoZU9ic2VydmVyOjpTdGFydE9ic2VydmVyKToNCisgICAgICAg
ICogZ3JvdXAvQnJvd3NlckNhY2hlLm1tcDoNCisNCiAyMDA2LTEyLTExICBzYXJlZW4gIDxzaHlh
bS5zYXJlZW5Abm9raWEuY29tPg0KIA0KICAgICAgICAgUmV2aWV3ZWQgU2FjaGluIFBhZG1hLg0K
SW5kZXg6IFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVFbnRyeS5oDQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09DQotLS0gV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNoZUVu
dHJ5LmgJKHJldmlzaW9uIDE4MjIxKQ0KKysrIFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZUlu
Yy9IdHRwQ2FjaGVFbnRyeS5oCSh3b3JraW5nIGNvcHkpDQpAQCAtOSw5ICs5LDkgQEANCiAqICAg
IENvcHlyaWdodCAoYykgMjAwNiwgTm9raWEgQ29ycG9yYXRpb24NCiAqICAgIEFsbCByaWdodHMg
cmVzZXJ2ZWQuDQogKiAgDQotKiAgCVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KLSogIAltb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMNCi0qICAJYXJl
IG1ldDoNCisqICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0DQorKiAgIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucw0KKyogICBhcmUgbWV0Og0KICog
IA0KICogICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0DQogKiAgICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KQEAgLTIzLDE4ICsyMywxOCBAQA0K
ICogICAgICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZA0KICogICAgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4NCiAqICANCi0qICAJVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUw0K
LSogIAkiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVA0KLSogIAlMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1INCi0qICAJQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQNCi0qICAJ
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsDQotKiAgCVNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QNCi0qICAJTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsDQotKiAgCURBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQ0KLSogIAlUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUDQotKiAgCShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFDQotKiAgCVVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gNCi0q
ICAJREFNQUdFLg0KKyogICBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTDQorKiAgICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UDQorKiAgIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUg0KKyogICBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVA0KKyogICBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwNCisqICAgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVA0K
KyogICBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwNCisqICAgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZDQorKiAgIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQNCisq
ICAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUNCisqICAgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSA0KKyogICBEQU1BR0UuDQogKiAgDQogKiAgICBQbGVh
c2Ugc2VlIGZpbGUgcGF0ZW50bGljZW5zZS50eHQgZm9yIGZ1cnRoZXIgZ3JhbnRzLg0KICogPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09DQpAQCAtMjM3LDYgKzIzNywxNCBAQCBjbGFzcyBDSHR0cENhY2hl
RW50cnkgOiBwdWJsaWMgQ0Jhc2UNCiAgICAgICAgICogQHJldHVybiANCiAgICAgICAgICovDQog
ICAgICAgICBUSW50IEV4dGVybmFsaXplKCBSRmlsZVdyaXRlU3RyZWFtJiBhV3JpdGVTdHJlYW0g
KTsNCisNCisgICAgICAgIC8qKg0KKyAgICAgICAgKiANCisgICAgICAgICogQHNpbmNlIDMuMQ0K
KyAgICAgICAgKiBAcGFyYW0gDQorICAgICAgICAqIEByZXR1cm4gDQorICAgICAgICAqLw0KKyAg
ICAgICAgdm9pZCBBY2Nlc3NlZChUSW50NjQgYUxhc3RBY2Nlc3NlZCwgVFVpbnQxNiBhUmVmKTsN
CiANCiAgICAgcHVibGljIDogDQogDQpJbmRleDogV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hl
SW5jL0h0dHBDYWNoZUhhbmRsZXIuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9SZXNvdXJjZUxv
YWRlci9DYWNoZUluYy9IdHRwQ2FjaGVIYW5kbGVyLmgJKHJldmlzaW9uIDE4MjIxKQ0KKysrIFdl
YktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVIYW5kbGVyLmgJKHdvcmtpbmcg
Y29weSkNCkBAIC02OCw2ICs2OCw3IEBAIGNsYXNzIE1IVFRQRGF0YVN1cHBsaWVyOw0KIGNsYXNz
IENJZGxlOw0KIGNsYXNzIENIdHRwQ2FjaGVFdmljdGlvbkhhbmRsZXI7DQogY2xhc3MgVEh0dHBD
YWNoZUVudHJ5Ow0KK2NsYXNzIENIdHRwQ2FjaGVPYnNlcnZlcjsNCiANCiAvLyBDTEFTUyBERUNM
QVJBVElPTg0KIA0KQEAgLTIwMyw2ICsyMDQsMTUgQEAgY2xhc3MgQ0h0dHBDYWNoZUhhbmRsZXIg
OiBwdWJsaWMgQ0Jhc2UNCiAgICAgICAgICovDQogICAgICAgICB2b2lkIEFkanVzdFJlc3BvbnNl
VGltZShSSFRUUFRyYW5zYWN0aW9uJiBhVHJhbnMpOw0KIA0KKyAgICAgICAgLyoqDQorICAgICAg
ICAqIFNvbWUgb3RoZXIgYXBwbGljYXRpb24gbW9kaWZpZWQgdGhlIGNhY2hlIGFuZCB0aGUgbG9v
a3VwIHRhYmxlIG5lZWRzIHRvIGJlIHVwZGF0ZWQNCisgICAgICAgICoNCisgICAgICAgICogQHNp
bmNlIDMuMQ0KKyAgICAgICAgKiBAcGFyYW0NCisgICAgICAgICogQHJldHVybg0KKyAgICAgICAg
Ki8NCisgICAgICAgIHZvaWQgVXBkYXRlTG9va3VwVGFibGUoKTsNCisNCiAgICAgcHJpdmF0ZToN
CiANCiAgICAgICAgIC8qKg0KQEAgLTIyMiw2ICsyMzIsMTUgQEAgY2xhc3MgQ0h0dHBDYWNoZUhh
bmRsZXIgOiBwdWJsaWMgQ0Jhc2UNCiAgICAgcHJpdmF0ZTogLy8NCiANCiAgICAgICAgIC8qKg0K
KyAgICAgICAgKiBTb21lIG90aGVyIGFwcGxpY2F0aW9uIG1vZGlmaWVkIHRoZSBjYWNoZSBhbmQg
dGhlIGxvb2t1cCB0YWJsZSBuZWVkcyB0byBiZSB1cGRhdGVkDQorICAgICAgICAqDQorICAgICAg
ICAqIEBzaW5jZSAzLjENCisgICAgICAgICogQHBhcmFtDQorICAgICAgICAqIEByZXR1cm4NCisg
ICAgICAgICovDQorICAgICAgICB2b2lkIFVwZGF0ZUxvb2t1cFRhYmxlTCgpOw0KKw0KKyAgICAg
ICAgLyoqDQogICAgICAgICAqDQogICAgICAgICAqIEBzaW5jZSAzLjENCiAgICAgICAgICogQHBh
cmFtDQpAQCAtMjkxLDYgKzMxMCwxNSBAQCBjbGFzcyBDSHR0cENhY2hlSGFuZGxlciA6IHB1Ymxp
YyBDQmFzZQ0KICAgICAgICAgKiBAcGFyYW0NCiAgICAgICAgICogQHJldHVybg0KICAgICAgICAg
Ki8NCisgICAgICAgIHZvaWQgT3Blbkxvb2t1cFRhYmxlTChDSHR0cENhY2hlTG9va3VwVGFibGUq
IGFMb29rdXBUYWJsZSk7DQorDQorICAgICAgICAvKioNCisgICAgICAgICoNCisgICAgICAgICog
QHNpbmNlIDMuMQ0KKyAgICAgICAgKiBAcGFyYW0NCisgICAgICAgICogQHBhcmFtDQorICAgICAg
ICAqIEByZXR1cm4NCisgICAgICAgICovDQogICAgICAgICB2b2lkIEhhbmRsZUNvcnJ1cHRFbnRy
eSggQ0h0dHBDYWNoZUVudHJ5JiBhU3RyYXlFbnRyeSwgVEJvb2wgYVVwZGF0ZSA9IEVUcnVlICk7
DQogDQogICAgICAgICAvKioNCkBAIC0zNDUsNiArMzczLDggQEAgY2xhc3MgQ0h0dHBDYWNoZUhh
bmRsZXIgOiBwdWJsaWMgQ0Jhc2UNCiAgICAgICAgIENJZGxlKiAgICAgICAgICAgICAgICAgICAg
ICAgICAgaUlkbGU7ICAgICAgLy8gb3duZWQNCiAgICAgICAgIC8vIG5hbWUgb2YgdGhlIGluZGV4
IGZpbGUNCiAgICAgICAgIEhCdWZDKiAgICAgICAgICAgICAgICAgICAgICAgICAgaUluZGV4Rmls
ZTsgLy8gb3duZWQNCisgICAgICAgIC8vIE9ic2VydmluZyBjaGFuZ2VzIGluIGNhY2hlDQorICAg
ICAgICBDSHR0cENhY2hlT2JzZXJ2ZXIqIGlIdHRwQ2FjaGVPYnNlcnZlcjsgLy8gb3duZWQNCiAg
ICAgfTsNCiANCiAjZW5kaWYgICAgICAvLyBDSFRUUENBQ0hFSEFORExFUl9IDQpJbmRleDogV2Vi
S2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNoZUxvb2t1cFRhYmxlLmgNCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0NCi0tLSBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlTG9va3Vw
VGFibGUuaAkocmV2aXNpb24gMTgyMjEpDQorKysgV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hl
SW5jL0h0dHBDYWNoZUxvb2t1cFRhYmxlLmgJKHdvcmtpbmcgY29weSkNCkBAIC05LDkgKzksOSBA
QA0KICogICAgQ29weXJpZ2h0IChjKSAyMDA2LCBOb2tpYSBDb3Jwb3JhdGlvbg0KICogICAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4NCiAqICANCi0qICAJUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQotKiAgCW1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucw0K
LSogIAlhcmUgbWV0Og0KKyogICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCisqICAgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQorKiAgIGFyZSBt
ZXQ6DQogKiAgDQogKiAgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCiAqICAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuDQpAQCAtMjMsMTggKzIz
LDE4IEBADQogKiAgICAgICAgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkDQogKiAgICAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLg0KICogIA0KLSogIAlUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTDQotKiAgCSJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UDQotKiAgCUxJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUg0KLSogIAlBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VA0KLSogIAlPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwNCi0qICAJU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVA0KLSogIAlMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwNCi0q
ICAJREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZDQotKiAgCVRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQNCi0qICAJKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUNCi0qICAJVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSA0KLSogIAlEQU1BR0UuDQorKiAgIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMNCisqICAgIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QNCisqICAg
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SDQorKiAgIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUDQorKiAgIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLA0KKyogICBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UDQorKiAgIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLA0KKyogICBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkNCisqICAgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVA0KKyogICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRQ0KKyogICBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIDQorKiAgIERBTUFHRS4NCiAqICANCiAq
ICAgIFBsZWFzZSBzZWUgZmlsZSBwYXRlbnRsaWNlbnNlLnR4dCBmb3IgZnVydGhlciBncmFudHMu
DQogKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC00NSw2ICs0NSw3IEBADQogDQogLy8gIElO
Q0xVREVTDQogI2luY2x1ZGUgPGUzMmJhc2UuaD4NCisjaW5jbHVkZSA8czMyZmlsZS5oPg0KIA0K
IC8vIENPTlNUQU5UUw0KIA0KQEAgLTcxLDcgKzcyLDcgQEAgY2xhc3MgQ0h0dHBDYWNoZVN0cmVh
bUhhbmRsZXI7DQogY2xhc3MgQ0h0dHBDYWNoZUxvb2t1cFRhYmxlIDogcHVibGljIENCYXNlDQog
ICAgIHsNCiAgICAgcHVibGljOiAgLy8gQ29uc3RydWN0b3JzIGFuZCBkZXN0cnVjdG9yDQotDQor
ICAgICAgICANCiAgICAgICAgIC8qKg0KICAgICAgICAgKiBUd28tcGhhc2VkIGNvbnN0cnVjdG9y
Lg0KICAgICAgICAgKiBAc2luY2UgMy4xDQpAQCAtODAsNDYgKzgxLDQ2IEBAIGNsYXNzIENIdHRw
Q2FjaGVMb29rdXBUYWJsZSA6IHB1YmxpYyBDQmENCiAgICAgICAgICogQHJldHVybiBDSHR0cENh
Y2hlTG9va3VwVGFibGUgb2JqZWN0Lg0KICAgICAgICAgKi8NCiAgICAgICAgIHN0YXRpYyBDSHR0
cENhY2hlTG9va3VwVGFibGUqIE5ld0woIENIdHRwQ2FjaGVFdmljdGlvbkhhbmRsZXImIGFFdmlj
dGlvbkhhbmRsZXIsIENIdHRwQ2FjaGVTdHJlYW1IYW5kbGVyJiBhU3RyZWFtSGFuZGxlciApOw0K
LQ0KKyAgICAgICAgDQogICAgICAgICAvKioNCiAgICAgICAgICogRGVzdHJ1Y3Rvci4NCiAgICAg
ICAgICovDQogICAgICAgICB2aXJ0dWFsIH5DSHR0cENhY2hlTG9va3VwVGFibGUoKTsNCi0NCisg
ICAgICAgIA0KICAgICBwdWJsaWM6IC8vIG5ldyBmdW5jdGlvbnMNCi0NCisgICAgDQogICAgICAg
ICAvKioNCiAgICAgICAgICoNCiAgICAgICAgICogQHNpbmNlIDMuMQ0KICAgICAgICAgKiBAcGFy
YW0NCiAgICAgICAgICogQHJldHVybg0KICAgICAgICAgKi8NCi0JCUNIdHRwQ2FjaGVFbnRyeSog
SW5zZXJ0TCggY29uc3QgVERlc0M4JiBhVXJsICk7DQotDQorICAgICAgICBDSHR0cENhY2hlRW50
cnkqIEluc2VydEwoIGNvbnN0IFREZXNDOCYgYVVybCApOw0KKyAgICAgICAgDQogICAgICAgICAv
KioNCiAgICAgICAgICoNCiAgICAgICAgICogQHNpbmNlIDMuMQ0KICAgICAgICAgKiBAcGFyYW0N
CiAgICAgICAgICogQHJldHVybg0KICAgICAgICAgKi8NCi0JCUNIdHRwQ2FjaGVFbnRyeSogRmlu
ZCggY29uc3QgVERlc0M4JiBhVXJsICk7DQotDQorICAgICAgICBDSHR0cENhY2hlRW50cnkqIEZp
bmQoIGNvbnN0IFREZXNDOCYgYVVybCApOw0KKyAgICAgICAgDQogICAgICAgICAvKioNCiAgICAg
ICAgICoNCiAgICAgICAgICogQHNpbmNlIDMuMQ0KICAgICAgICAgKiBAcGFyYW0NCiAgICAgICAg
ICogQHJldHVybg0KICAgICAgICAgKi8NCi0JCVRJbnQgUmVtb3ZlKCBjb25zdCBURGVzQzgmIGFV
cmwgKTsNCi0NCisgICAgICAgIFRJbnQgUmVtb3ZlKCBjb25zdCBURGVzQzgmIGFVcmwgKTsNCisg
ICAgICAgIA0KICAgICAgICAgLyoqDQogICAgICAgICAqDQogICAgICAgICAqIEBzaW5jZSAzLjEN
CiAgICAgICAgICogQHBhcmFtDQogICAgICAgICAqIEByZXR1cm4NCiAgICAgICAgICovDQotCQlU
SW50IFJlbW92ZUFsbCgpOw0KLQ0KKyAgICAgICAgVEludCBSZW1vdmVBbGwoKTsNCisgICAgICAg
IA0KICAgICAgICAgLyoqDQogICAgICAgICAqDQogICAgICAgICAqIEBzaW5jZSAzLjENCkBAIC0x
MjcsNyArMTI4LDcgQEAgY2xhc3MgQ0h0dHBDYWNoZUxvb2t1cFRhYmxlIDogcHVibGljIENCYQ0K
ICAgICAgICAgKiBAcmV0dXJuDQogICAgICAgICAqLw0KICAgICAgICAgY29uc3QgQ0FycmF5UHRy
RmxhdDxDSHR0cENhY2hlRW50cnk+JiBFbnRyaWVzKCkgY29uc3QgeyByZXR1cm4gKmlFbnRyaWVz
OyB9DQotDQorICAgICAgICANCiAgICAgICAgIC8qKg0KICAgICAgICAgKg0KICAgICAgICAgKiBA
c2luY2UgMy4xDQpAQCAtMTM1LDcgKzEzNiw3IEBAIGNsYXNzIENIdHRwQ2FjaGVMb29rdXBUYWJs
ZSA6IHB1YmxpYyBDQmENCiAgICAgICAgICogQHJldHVybg0KICAgICAgICAgKi8NCiAgICAgICAg
IHZvaWQgRXJhc2VDb3JydXB0RW50cnkoIGNvbnN0IFREZXNDOCYgYVVybCApOw0KLQ0KKyAgICAg
ICAgDQogICAgICAgICAvKioNCiAgICAgICAgICoNCiAgICAgICAgICogQHNpbmNlIDMuMQ0KQEAg
LTE0Myw3ICsxNDQsNyBAQCBjbGFzcyBDSHR0cENhY2hlTG9va3VwVGFibGUgOiBwdWJsaWMgQ0Jh
DQogICAgICAgICAqIEByZXR1cm4NCiAgICAgICAgICovDQogICAgICAgICB2b2lkIEludGVybmFs
aXplTCggUkZpbGVSZWFkU3RyZWFtJiBhUmVhZFN0cmVhbSwgY29uc3QgVERlc0MmIGFEaXJlY3Rv
cnkgKTsNCi0NCisgICAgICAgIA0KICAgICAgICAgLyoqDQogICAgICAgICAqDQogICAgICAgICAq
IEBzaW5jZSAzLjENCkBAIC0xNTEsOSArMTUyLDE3IEBAIGNsYXNzIENIdHRwQ2FjaGVMb29rdXBU
YWJsZSA6IHB1YmxpYyBDQmENCiAgICAgICAgICogQHJldHVybg0KICAgICAgICAgKi8NCiAgICAg
ICAgIHZvaWQgRXh0ZXJuYWxpemVMKCBSRmlsZVdyaXRlU3RyZWFtJiBhV3JpdGVTdHJlYW0gKTsN
Ci0NCisgICAgICAgIA0KKyAgICAgICAgLyoqDQorICAgICAgICAqDQorICAgICAgICAqIEBzaW5j
ZSAzLjENCisgICAgICAgICogQHBhcmFtDQorICAgICAgICAqIEByZXR1cm4NCisgICAgICAgICov
DQorICAgICAgICB2b2lkIE1lcmdlTCggQ0h0dHBDYWNoZUxvb2t1cFRhYmxlKiBhSHR0cENhY2hl
TG9va3VwVGFibGUsIFJGcyBhUmZzICApOw0KKyAgICAgICAgDQogICAgIHByaXZhdGU6DQotDQor
ICAgICAgICANCiAgICAgICAgIC8qKg0KICAgICAgICAgKiBDb25zdHJ1Y3QuDQogICAgICAgICAq
IEBzaW5jZSAzLjENCkBAIC0xNjIsMTQgKzE3MSwxNCBAQCBjbGFzcyBDSHR0cENhY2hlTG9va3Vw
VGFibGUgOiBwdWJsaWMgQ0JhDQogICAgICAgICAqIEByZXR1cm4gQ0h0dHBDYWNoZUxvb2t1cFRh
YmxlIG9iamVjdC4NCiAgICAgICAgICovDQogICAgICAgICBDSHR0cENhY2hlTG9va3VwVGFibGUo
IENIdHRwQ2FjaGVFdmljdGlvbkhhbmRsZXImIGFFdmljdGlvbkhhbmRsZXIsIENIdHRwQ2FjaGVT
dHJlYW1IYW5kbGVyJiBhU3RyZWFtSGFuZGxlciApOw0KLQ0KKyAgICAgICAgDQogICAgICAgICAv
KioNCiAgICAgICAgICogQnkgZGVmYXVsdCBTeW1iaWFuIDJuZCBwaGFzZSBjb25zdHJ1Y3RvciBp
cyBwcml2YXRlLg0KICAgICAgICAgKi8NCiAgICAgICAgIHZvaWQgQ29uc3RydWN0TCgpOw0KLQ0K
KyAgICAgICAgDQogICAgIHByaXZhdGU6IC8vDQotDQorICAgICAgICANCiAgICAgICAgIC8qKg0K
ICAgICAgICAgKg0KICAgICAgICAgKiBAc2luY2UgMy4xDQpAQCAtMTc3LDcgKzE4Niw3IEBAIGNs
YXNzIENIdHRwQ2FjaGVMb29rdXBUYWJsZSA6IHB1YmxpYyBDQmENCiAgICAgICAgICogQHJldHVy
bg0KICAgICAgICAgKi8NCiAgICAgICAgIFRJbnQgSW5zZXJ0TCggQ0h0dHBDYWNoZUVudHJ5KiBh
Q2FjaGVFbnRyeSApOw0KLQ0KKyAgICAgICAgDQogICAgICAgICAvKioNCiAgICAgICAgICoNCiAg
ICAgICAgICogQHNpbmNlIDMuMQ0KQEAgLTE4NSw3ICsxOTQsNyBAQCBjbGFzcyBDSHR0cENhY2hl
TG9va3VwVGFibGUgOiBwdWJsaWMgQ0JhDQogICAgICAgICAqIEByZXR1cm4NCiAgICAgICAgICov
DQogICAgICAgICBUSW50IFByb2JlKCBjb25zdCBURGVzQzgmIGFLZXksIFRCb29sIGFJbnNlcnQg
KTsNCi0NCisgICAgICAgIA0KICAgICAgICAgLyoqDQogICAgICAgICAqDQogICAgICAgICAqIEBz
aW5jZSAzLjENCkBAIC0xOTMsNyArMjAyLDcgQEAgY2xhc3MgQ0h0dHBDYWNoZUxvb2t1cFRhYmxl
IDogcHVibGljIENCYQ0KICAgICAgICAgKiBAcmV0dXJuDQogICAgICAgICAqLw0KICAgICAgICAg
VEludCBIYXNoVXJsKCBjb25zdCBURGVzQzgmIGFVcmwgKTsNCi0NCisgICAgICAgIA0KICAgICAg
ICAgLyoqDQogICAgICAgICAqDQogICAgICAgICAqIEBzaW5jZSAzLjENCkBAIC0yMDEsNyArMjEw
LDcgQEAgY2xhc3MgQ0h0dHBDYWNoZUxvb2t1cFRhYmxlIDogcHVibGljIENCYQ0KICAgICAgICAg
KiBAcmV0dXJuDQogICAgICAgICAqLw0KICAgICAgICAgdm9pZCBSZUhhc2hMKCk7DQotDQorICAg
ICAgICANCiAgICAgICAgIC8qKg0KICAgICAgICAgKg0KICAgICAgICAgKiBAc2luY2UgMy4xDQpA
QCAtMjA5LDcgKzIxOCw3IEBAIGNsYXNzIENIdHRwQ2FjaGVMb29rdXBUYWJsZSA6IHB1YmxpYyBD
QmENCiAgICAgICAgICogQHJldHVybg0KICAgICAgICAgKi8NCiAgICAgICAgIFRVaW50IE5leHRQ
cmltZSggVFVpbnQgYU51bSApOw0KLQ0KKyAgICAgICAgDQogICAgICAgICAvKioNCiAgICAgICAg
ICoNCiAgICAgICAgICogQHNpbmNlIDMuMQ0KQEAgLTIxNyw3ICsyMjYsNyBAQCBjbGFzcyBDSHR0
cENhY2hlTG9va3VwVGFibGUgOiBwdWJsaWMgQ0JhDQogICAgICAgICAqIEByZXR1cm4NCiAgICAg
ICAgICovDQogICAgICAgICB2b2lkIEVyYXNlKCBUSW50IGFQb3MgKTsNCi0NCisgICAgICAgIA0K
ICAgICAgICAgLyoqDQogICAgICAgICAqDQogICAgICAgICAqIEBzaW5jZSAzLjENCkBAIC0yMjUs
NyArMjM0LDcgQEAgY2xhc3MgQ0h0dHBDYWNoZUxvb2t1cFRhYmxlIDogcHVibGljIENCYQ0KICAg
ICAgICAgKiBAcmV0dXJuDQogICAgICAgICAqLw0KICAgICAgICAgVEJvb2wgVmFsaWQoIFRJbnQg
YVBvcyApOw0KLQ0KKyAgICAgICAgDQogICAgICAgICAvKioNCiAgICAgICAgICoNCiAgICAgICAg
ICogQHNpbmNlIDMuMQ0KQEAgLTIzMyw3ICsyNDIsNyBAQCBjbGFzcyBDSHR0cENhY2hlTG9va3Vw
VGFibGUgOiBwdWJsaWMgQ0JhDQogICAgICAgICAqIEByZXR1cm4NCiAgICAgICAgICovDQogICAg
ICAgICBUQm9vbCBFbXB0eSggVEludCBhUG9zICk7DQotDQorICAgICAgICANCiAgICAgICAgIC8q
Kg0KICAgICAgICAgKg0KICAgICAgICAgKiBAc2luY2UgMy4xDQpAQCAtMjQxLDcgKzI1MCw3IEBA
IGNsYXNzIENIdHRwQ2FjaGVMb29rdXBUYWJsZSA6IHB1YmxpYyBDQmENCiAgICAgICAgICogQHJl
dHVybg0KICAgICAgICAgKi8NCiAgICAgICAgIFRCb29sIERlbGV0ZWQoIFRJbnQgYVBvcyApOw0K
LQ0KKyAgICAgICAgDQogICAgICAgICAvKioNCiAgICAgICAgICoNCiAgICAgICAgICogQHNpbmNl
IDMuMQ0KQEAgLTI0OSw3ICsyNTgsNyBAQCBjbGFzcyBDSHR0cENhY2hlTG9va3VwVGFibGUgOiBw
dWJsaWMgQ0JhDQogICAgICAgICAqIEByZXR1cm4NCiAgICAgICAgICovDQogICAgICAgICB2b2lk
IFNldERlbGV0ZWQoIFRJbnQgYVBvcyApOw0KLQ0KKyAgICAgICAgDQogICAgICAgICAvKioNCiAg
ICAgICAgICoNCiAgICAgICAgICogQHNpbmNlIDMuMQ0KQEAgLTI1NywxMSArMjY2LDExIEBAIGNs
YXNzIENIdHRwQ2FjaGVMb29rdXBUYWJsZSA6IHB1YmxpYyBDQmENCiAgICAgICAgICogQHJldHVy
bg0KICAgICAgICAgKi8NCiAgICAgICAgIFRCb29sIEJvdW5kYXJ5Q2hlY2soIFRJbnQgYVBvcyAp
Ow0KLQ0KKyAgICAgICAgDQogICAgIHByaXZhdGU6ICAgIC8vIERhdGENCi0NCisgICAgICAgIA0K
ICAgICAgICAgLy8gaGFzaCB0YWJsZSBmb3IgY2FjaGUgZW50cmllcw0KLQkJQ0FycmF5UHRyRmxh
dDxDSHR0cENhY2hlRW50cnk+KiBpRW50cmllczsNCisgICAgICAgIENBcnJheVB0ckZsYXQ8Q0h0
dHBDYWNoZUVudHJ5PiogaUVudHJpZXM7DQogICAgICAgICAvLyBudW1iZXIgb2YgZW50cmllcyBp
biB0aGUgaGFzaHRhYmxlDQogICAgICAgICBUSW50ICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlDb3VudDsNCiAgICAgICAgIC8vDQpAQCAtMjY5LDcgKzI3OCw3IEBAIGNsYXNzIENIdHRwQ2Fj
aGVMb29rdXBUYWJsZSA6IHB1YmxpYyBDQmENCiAgICAgICAgIC8vDQogICAgICAgICBDSHR0cENh
Y2hlU3RyZWFtSGFuZGxlciogICAgICAgIGlTdHJlYW1IYW5kbGVyOyAgICAgICAgICAgLy8gbm90
IG93bmVkDQogICAgIH07DQotDQorICAgIA0KICNlbmRpZiAgICAgIC8vIENIVFRQQ0FDSEVMT09L
VVBUQUJMRV9IDQotDQotLy8gRW5kIG9mIEZpbGUNCisgICAgDQorICAgIC8vIEVuZCBvZiBGaWxl
DQpJbmRleDogV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNoZU9ic2VydmVy
LmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMvSHR0cENh
Y2hlT2JzZXJ2ZXIuaAkocmV2aXNpb24gMCkNCisrKyBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2Fj
aGVJbmMvSHR0cENhY2hlT2JzZXJ2ZXIuaAkocmV2aXNpb24gMCkNCkBAIC0wLDAgKzEsMTIxIEBA
DQorLyoNCisqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyogIE5hbWUgICAgICAgIDogSHR0cENh
Y2hlSGFuZGxlclVwZGF0ZXIuaA0KKyogIFBhcnQgb2YgICAgIDogV2ViS2l0IC8gUmVzb3VyY2VM
b2FkZXINCisqICBJbnRlcmZhY2UgICA6DQorKiAgRGVzY3JpcHRpb24gOiBEZWZpbml0aW9uIG9m
IENIdHRwQ2FjaGVPYnNlcnZlcg0KKyogIFZlcnNpb24gICAgIDogJVZlcnNpb24lDQorKg0KKyog
ICAgQ29weXJpZ2h0IChjKSAyMDA2LCBOb2tpYSBDb3Jwb3JhdGlvbg0KKyogICAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4NCisqDQorKiAgIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KKyogICBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMNCisqICAgYXJl
IG1ldDoNCisqDQorKiAgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCisqICAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuDQorKiAgICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQNCisqICAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4NCisqICAgICAgICB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlDQorKiAgICAgICAgZGlzdHJpYnV0
aW9uLg0KKyogICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIE5va2lhIENvcnBvcmF0aW9u
IG5vciB0aGUgbmFtZXMgb2YgaXRzDQorKiAgICAgICAgY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkDQorKiAgICAgICAgZnJvbSB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLg0K
KyoNCisqICAgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUw0KKyogICAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVA0KKyogICBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1INCisq
ICAgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQNCisqICAgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsDQorKiAgIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QNCisqICAgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsDQorKiAgIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQ0KKyogICBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUDQorKiAgIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFDQorKiAgIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0gNCisqICAgREFNQUdFLg0KKyoNCisqICAgIFBsZWFzZSBzZWUgZmls
ZSBwYXRlbnRsaWNlbnNlLnR4dCBmb3IgZnVydGhlciBncmFudHMuDQorKiA9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0NCisqLw0KKw0KKyNpZm5kZWYgQ0hUVFBDQUNIRU9CU0VSVkVSX0gNCisjZGVmaW5l
IENIVFRQQ0FDSEVPQlNFUlZFUl9IDQorDQorLy8gIElOQ0xVREVTDQorI2luY2x1ZGUgPGUzMmJh
c2UuaD4NCisjaW5jbHVkZSA8ZjMyZmlsZS5oPg0KKw0KKy8vIENPTlNUQU5UUw0KKw0KKy8vIE1B
Q1JPUw0KKw0KKy8vIERBVEEgVFlQRVMNCisNCisvLyBGVU5DVElPTiBQUk9UT1RZUEVTDQorDQor
Ly8gRk9SV0FSRCBERUNMQVJBVElPTlMNCitjbGFzcyBDSHR0cENhY2hlSGFuZGxlcjsNCisNCisv
LyBDTEFTUyBERUNMQVJBVElPTg0KKw0KKy8qKg0KKyoNCisqICBAbGliDQorKiAgQHNpbmNlIDMu
MQ0KKyovDQorTk9OU0hBUkFCTEVfQ0xBU1MoQ0h0dHBDYWNoZU9ic2VydmVyKSA6IHB1YmxpYyBD
QWN0aXZlDQorICAgIHsNCisgICAgcHVibGljOiAgLy8gQ29uc3RydWN0b3JzIGFuZCBkZXN0cnVj
dG9yDQorDQorICAgICAgICAvKioNCisgICAgICAgICogVHdvLXBoYXNlZCBjb25zdHJ1Y3Rvci4N
CisgICAgICAgICogQHNpbmNlIDMuMQ0KKyAgICAgICAgKiBAcGFyYW0NCisgICAgICAgICogQHBh
cmFtDQorICAgICAgICAqIEByZXR1cm4gQ2FjaGVIYW5kbGVyIG9iamVjdC4NCisgICAgICAgICov
DQorICAgICAgICBzdGF0aWMgQ0h0dHBDYWNoZU9ic2VydmVyKiBOZXdMKCBjb25zdCBIQnVmQyog
YURpcmVjdG9yeSwgY29uc3QgSEJ1ZkMqIGFJbmRleEZpbGUsDQorICAgICAgICAgICAgQ0h0dHBD
YWNoZUhhbmRsZXIqIGFIdHRwQ2FjaGVIYW5kbGVyKTsNCisNCisgICAgICAgIC8qKg0KKyAgICAg
ICAgKiBEZXN0cnVjdG9yLg0KKyAgICAgICAgKi8NCisgICAgICAgIHZpcnR1YWwgfkNIdHRwQ2Fj
aGVPYnNlcnZlcigpOw0KKw0KKyAgICBwdWJsaWM6IC8vIG5ldyBmdW5jdGlvbnMNCisgICAgICAg
IHZvaWQgU3RhcnRPYnNlcnZlcigpOw0KKw0KKyAgICBwdWJsaWM6IC8vIGZyb20gYmFzZSBjbGFz
cyBDQWN0aXZlDQorICAgICAgICB2b2lkIFJ1bkwoKTsNCisgICAgICAgIFRJbnQgUnVuRXJyb3Io
VEludCBhRXJyb3IpOw0KKyAgICAgICAgdm9pZCBEb0NhbmNlbCgpOw0KKw0KKyAgICBwcml2YXRl
Og0KKw0KKyAgICAgICAgLyoqDQorICAgICAgICAqIENvbnN0cnVjdC4NCisgICAgICAgICogQHNp
bmNlIDMuMQ0KKyAgICAgICAgKiBAcGFyYW0NCisgICAgICAgICogQHBhcmFtDQorICAgICAgICAq
IEByZXR1cm4gQ2FjaGVPYnNlcnZlciBvYmplY3QuDQorICAgICAgICAqLw0KKyAgICAgICAgQ0h0
dHBDYWNoZU9ic2VydmVyKENIdHRwQ2FjaGVIYW5kbGVyKiBhSHR0cENhY2hlSGFuZGxlcik7DQor
DQorICAgICAgICAvKioNCisgICAgICAgICogQnkgZGVmYXVsdCBTeW1iaWFuIDJuZCBwaGFzZSBj
b25zdHJ1Y3RvciBpcyBwcml2YXRlLg0KKyAgICAgICAgKi8NCisgICAgICAgIHZvaWQgQ29uc3Ry
dWN0TChjb25zdCBIQnVmQyogYURpcmVjdG9yeSwgY29uc3QgSEJ1ZkMqIGFJbmRleEZpbGUpOw0K
Kw0KKyAgICBwcml2YXRlOiAgICAvLyBEYXRhDQorDQorICAgICAgICAvLyBuYW1lIGFuZCBwYXRo
IG9mIGluZGV4IGZpbGUNCisgICAgICAgIEhCdWZDKiBpRmlsZU5hbWU7IC8vIG93bmVkDQorICAg
ICAgICBSRnMgaUZzU2Vzc2lvbjsgLy8gbm90IG93bmVkDQorICAgICAgICBDSHR0cENhY2hlSGFu
ZGxlciogaUh0dHBDYWNoZUhhbmRsZXI7DQorICAgIH07DQorDQorI2VuZGlmICAgICAgLy8gQ0hU
VFBDQUNIRU9CU0VSVkVSX0gNCisNCisvLyBFbmQgb2YgRmlsZQ0KSW5kZXg6IFdlYktpdC9SZXNv
dXJjZUxvYWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVFbnRyeS5jcHANCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBX
ZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hlRW50cnkuY3BwCShyZXZpc2lv
biAxODIyMSkNCisrKyBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hlRW50
cnkuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtOSw5ICs5LDkgQEANCiAqICAgIENvcHlyaWdodCAo
YykgMjAwNiwgTm9raWEgQ29ycG9yYXRpb24NCiAqICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQog
KiAgDQotKiAgCVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dA0KLSogIAltb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMNCi0qICAJYXJlIG1ldDoNCisqICAg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0DQorKiAgIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucw0KKyogICBhcmUgbWV0Og0KICogIA0KICogICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0DQogKiAgICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KQEAgLTIzLDE4ICsyMywxOCBAQA0KICogICAgICAgIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZA0KICogICAgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4NCiAqICANCi0qICAJVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUw0KLSogIAkiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VA0KLSogIAlMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1INCi0qICAJQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQNCi0qICAJT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
DQotKiAgCVNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QNCi0qICAJTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsDQotKiAgCURBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQ0KLSog
IAlUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUDQotKiAgCShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFDQotKiAgCVVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gNCi0qICAJREFNQUdFLg0K
KyogICBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTDQorKiAgICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UDQorKiAgIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUg0KKyogICBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVA0KKyogICBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwNCisqICAgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVA0KKyogICBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwNCisqICAgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZDQorKiAgIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQNCisqICAgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUN
CisqICAgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSA0KKyogICBEQU1BR0UuDQogKiAgDQogKiAgICBQbGVhc2Ugc2VlIGZpbGUg
cGF0ZW50bGljZW5zZS50eHQgZm9yIGZ1cnRoZXIgZ3JhbnRzLg0KICogPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09DQpAQCAtMTI4LDEwICsxMjgsMTAgQEAgQ0h0dHBDYWNoZUVudHJ5KiBDSHR0cENhY2hl
RW50cnk6Ok5ld0xDKA0KIC8vIERlc3RydWN0b3INCiBDSHR0cENhY2hlRW50cnk6On5DSHR0cENh
Y2hlRW50cnkoKQ0KICAgICB7DQotCWlmKCBpVmljdGltICkNCi0JCXsNCi0JCWlFdmljdGlvbkhh
bmRsZXItPlJlbW92ZSggKnRoaXMgKTsNCi0JCX0NCisgIGlmKCBpVmljdGltICkNCisgICAgew0K
KyAgICBpRXZpY3Rpb25IYW5kbGVyLT5SZW1vdmUoICp0aGlzICk7DQorICAgIH0NCiAgICAgZGVs
ZXRlIGlVcmw7DQogICAgIGRlbGV0ZSBpRmlsZU5hbWU7DQogICAgIH0NCkBAIC0yMDcsMTEgKzIw
NywxMSBAQCB2b2lkIENIdHRwQ2FjaGVFbnRyeTo6U2V0U2l6ZSgNCiAgICAgICAgIC8vIGJvZHkg
cmVtb3ZhbA0KICAgICAgICAgLy8gcmVtb3ZlIGl0c2VsZiBmcm9tIHRoZSBldmljdGlvbiB0YWJs
ZS4NCiAgICAgICAgIC8vIHRoaXMgaXMgbm8gbG9uZ2VyIGEgdmljdGltDQotCSAgICBpZiggaVZp
Y3RpbSApDQotCQkgICAgew0KLQkJICAgIGlFdmljdGlvbkhhbmRsZXItPlJlbW92ZSggKnRoaXMg
KTsNCisgICAgICBpZiggaVZpY3RpbSApDQorICAgICAgICB7DQorICAgICAgICBpRXZpY3Rpb25I
YW5kbGVyLT5SZW1vdmUoICp0aGlzICk7DQogICAgICAgICAgICAgaVZpY3RpbSA9IEVGYWxzZTsN
Ci0JCSAgICB9DQorICAgICAgICB9DQogICAgICAgICB9DQogICAgIGlTaXplID0gYVNpemU7DQog
ICAgIH0NCkBAIC0yNDIsNiArMjQyLDcgQEAgVEludCBDSHR0cENhY2hlRW50cnk6OkludGVybmFs
aXplKA0KICAgICAvLyB1cmwgbGVuZ3RoDQogICAgIGxlbiA9IGFSZWFkU3RyZWFtLlJlYWRJbnQz
MkwoKTsNCiAgICAgZGVsZXRlIGlVcmw7DQorICAgIGlVcmw9TlVMTDsNCiAgICAgaVVybCA9IEhC
dWZDODo6TmV3TCggbGVuICk7DQogICAgIFRQdHI4IHB0cjgoIGlVcmwtPkRlcygpICk7DQogICAg
IC8vIHVybA0KQEAgLTMwMSw2ICszMDIsMjggQEAgVEludCBDSHR0cENhY2hlRW50cnk6OkV4dGVy
bmFsaXplKA0KICAgICAvLyBwcm90ZWN0ZWQNCiAgICAgYVdyaXRlU3RyZWFtLldyaXRlSW50MzJM
KCBpUHJvdGVjdGVkICk7ICk7DQogICAgIHJldHVybiBlcnI7DQorICAgIH0NCisNCisvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRwQ2FjaGVFbnRyeTo6QWNjZXNzZWQNCisvLw0KKy8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8NCit2b2lkIENIdHRwQ2FjaGVFbnRyeTo6QWNjZXNz
ZWQoVEludDY0IGFMYXN0QWNjZXNzZWQsIFRVaW50MTYgYVJlZikNCisgICAgew0KKyAgICBpTGFz
dEFjY2Vzc2VkID0gYUxhc3RBY2Nlc3NlZDsNCisgICAgaVJlZiA9IGFSZWY7DQorICAgIGlmKCBp
VmljdGltICkNCisgICAgICAgIHsNCisgICAgICAgIGlFdmljdGlvbkhhbmRsZXItPkFjY2Vzc2Vk
KCAqdGhpcyApOw0KKyAgICAgICAgfQ0KKyNpZmRlZiBfX0NBQ0hFTE9HX18NCisgICAgX0xJVCgg
S0FjY2Vzc0Zvcm1hdCwgImVudHJ5IGFjY2Vzc2VkOiAlZCIgKTsNCisgICAgVEJ1ZjwxMDA+IGJ1
ZjsNCisgICAgYnVmLkZvcm1hdCggS0FjY2Vzc0Zvcm1hdCwgaVJlZiApOw0KKyAgICBIdHRwQ2Fj
aGVVdGlsOjpXcml0ZVVybFRvTG9nKCAwLCBidWYsIGlVcmwtPkRlcygpICk7DQorI2VuZGlmIC8v
IF9fQ0FDSEVMT0dfXw0KKw0KICAgICB9DQogDQogLy8gIEVuZCBvZiBGaWxlDQpJbmRleDogV2Vi
S2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZUhhbmRsZXIuY3BwDQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09DQotLS0gV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZUhhbmRsZXIu
Y3BwCShyZXZpc2lvbiAxODIyMSkNCisrKyBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVTcmMv
SHR0cENhY2hlSGFuZGxlci5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC00OCw2ICs0OCw3IEBADQog
I2luY2x1ZGUgIkh0dHBDYWNoZVN0cmVhbUhhbmRsZXIuaCINCiAjaW5jbHVkZSAiSHR0cENhY2hl
VXRpbC5oIg0KICNpbmNsdWRlICJIdHRwQ2FjaGVFdmljdGlvbkhhbmRsZXIuaCINCisjaW5jbHVk
ZSAiSHR0cENhY2hlT2JzZXJ2ZXIuaCINCiAjaW5jbHVkZSA8aHR0cFxSSFRUUFRyYW5zYWN0aW9u
Lmg+DQogI2luY2x1ZGUgPGh0dHBccmh0dHBzZXNzaW9uLmg+DQogI2luY2x1ZGUgPGh0dHBccmh0
dHBoZWFkZXJzLmg+DQpAQCAtMTE1LDYgKzExNiw5IEBAIHZvaWQgQ0h0dHBDYWNoZUhhbmRsZXI6
OkNvbnN0cnVjdEwoDQogICAgIE9wZW5Mb29rdXBUYWJsZUwoKTsNCiAgICAgLy8NCiAgICAgaUlk
bGUgPSBDSWRsZTo6TmV3TCggQ0FjdGl2ZTo6RVByaW9yaXR5SWRsZSApOw0KKyAgICAvLw0KKyAg
ICBpSHR0cENhY2hlT2JzZXJ2ZXIgPSBDSHR0cENhY2hlT2JzZXJ2ZXI6Ok5ld0woaURpcmVjdG9y
eSwgaUluZGV4RmlsZSwgdGhpcyk7DQorICAgIGlIdHRwQ2FjaGVPYnNlcnZlci0+U3RhcnRPYnNl
cnZlcigpOw0KICAgICB9DQogDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkBAIC0xMzksOCAr
MTQzLDEzIEBAIENIdHRwQ2FjaGVIYW5kbGVyKiBDSHR0cENhY2hlSGFuZGxlcjo6TmUNCiAvLyBE
ZXN0cnVjdG9yDQogQ0h0dHBDYWNoZUhhbmRsZXI6On5DSHR0cENhY2hlSGFuZGxlcigpDQogICAg
IHsNCi0gICAgLy8gc2F2ZSBlbnRyeSB0YWJsZQ0KLSAgICBUUkFQX0lHTk9SRSggU2F2ZUxvb2t1
cFRhYmxlTCgpICk7DQorICAgIGlmIChpSWRsZS0+SXNBY3RpdmUoKSkNCisgICAgICAgIHsNCisg
ICAgICAgIC8vIHNhdmUgZW50cnkgdGFibGUsIGJ1dCBvbmx5IGlmIGl0IHdhcyBtb2RpZmllZA0K
KyAgICAgICAgVFJBUF9JR05PUkUoIFNhdmVMb29rdXBUYWJsZUwoKSApOw0KKyAgICAgICAgfQ0K
KyAgICAvLw0KKyAgICBkZWxldGUgaUh0dHBDYWNoZU9ic2VydmVyOw0KICAgICAvLw0KICAgICBp
ZiAoaUV2aWN0aW9uSGFuZGxlcikNCiAgICAgICAgIHsNCkBAIC0xMDY0LDYgKzEwNzMsMTYgQEAg
VEJvb2wgQ0h0dHBDYWNoZUhhbmRsZXI6OkhhbmRsZVJlc3BvbnNlTg0KIC8vDQogdm9pZCBDSHR0
cENhY2hlSGFuZGxlcjo6T3Blbkxvb2t1cFRhYmxlTCgpDQogICAgIHsNCisgICAgT3Blbkxvb2t1
cFRhYmxlTChpTG9va3VwVGFibGUpOw0KKyAgICB9DQorDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0NCisvLyBDSHR0cENhY2hlSGFuZGxlcjo6T3Blbkxvb2t1cFRhYmxlTA0KKy8vDQorLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0NCisvLw0KK3ZvaWQgQ0h0dHBDYWNoZUhhbmRsZXI6Ok9wZW5Mb29r
dXBUYWJsZUwoQ0h0dHBDYWNoZUxvb2t1cFRhYmxlKiBhTG9va3VwVGFibGUpDQorICAgIHsNCiAg
ICAgLy8gcmVhZCBlbnRyaWVzIGZyb20gaW5kZXguZGF0DQogICAgIFJGaWxlUmVhZFN0cmVhbSBy
ZWFkU3RyZWFtOw0KICAgICBSRnMgZnM7DQpAQCAtMTA4MywxMSArMTEwMiwyNiBAQCB2b2lkIENI
dHRwQ2FjaGVIYW5kbGVyOjpPcGVuTG9va3VwVGFibGVMDQogICAgIGlmKCBlcnIgPT0gS0Vyck5v
bmUgKQ0KICAgICAgICAgew0KICAgICAgICAgZnMuU2V0U2Vzc2lvblBhdGgoIGlEaXJlY3Rvcnkt
PkRlcygpICk7DQotDQotICAgICAgICBpZiggcmVhZFN0cmVhbS5PcGVuKCBmcywgaUluZGV4Rmls
ZS0+RGVzKCksIEVGaWxlUmVhZCApID09IEtFcnJOb25lICkNCisgICAgICAgIFRJbnQgcmV0ID0g
S0Vyck5vbmU7DQorICAgICAgICBUSW50IHRyeUNvdW50ID0gMDsNCisgICAgICAgIGZvciAodHJ5
Q291bnQgPSAwOyB0cnlDb3VudCA8IDU7IHRyeUNvdW50KyspIA0KKyAgICAgICAgICAgIHsNCisg
ICAgICAgICAgICByZXQgPSByZWFkU3RyZWFtLk9wZW4oIGZzLCBpSW5kZXhGaWxlLT5EZXMoKSwg
RUZpbGVSZWFkIHwgRUZpbGVTaGFyZUFueSApOw0KKyAgICAgICAgICAgIGlmIChyZXQgPT0gS0Vy
ckluVXNlKQ0KKyAgICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgIC8vIFdoZW4gdGhl
IGNhY2hlIGlzIGZ1bGwsIGl0IHRha2VzIDY1IC0gODUgbWlsaXNlY29uZHMgdG8gd3JpdGUgdGhl
IGluZGV4Lg0KKyAgICAgICAgICAgICAgICAvLyBTbyB3YWl0IDUwIG1pbGlzZWNvbmRzIGFuZCB0
cnkgYWdhaW4NCisgICAgICAgICAgICAgICAgVXNlcjo6QWZ0ZXIoNTAwMDApOw0KKyAgICAgICAg
ICAgICAgICB9DQorICAgICAgICAgICAgZWxzZQ0KKyAgICAgICAgICAgICAgICB7DQorICAgICAg
ICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgfQ0KKyAg
ICAgICAgaWYoIHJldCA9PSBLRXJyTm9uZSApDQogICAgICAgICAgICAgew0KICAgICAgICAgICAg
IENsZWFudXBDbG9zZVB1c2hMKCByZWFkU3RyZWFtICk7DQotICAgICAgICAgICAgaUxvb2t1cFRh
YmxlLT5JbnRlcm5hbGl6ZUwoIHJlYWRTdHJlYW0sIGlEaXJlY3RvcnktPkRlcygpICk7DQorICAg
ICAgICAgICAgYUxvb2t1cFRhYmxlLT5JbnRlcm5hbGl6ZUwoIHJlYWRTdHJlYW0sIGlEaXJlY3Rv
cnktPkRlcygpICk7DQogICAgICAgICAgICAgQ2xlYW51cFN0YWNrOjpQb3BBbmREZXN0cm95KCk7
IC8vIHJlYWRTdHJlYW0NCiAgICAgICAgICAgICB9DQogICAgICAgICB9DQpAQCAtMTEwNywxMCAr
MTE0MSwyNiBAQCB2b2lkIENIdHRwQ2FjaGVIYW5kbGVyOjpTYXZlTG9va3VwVGFibGVMDQogICAg
IFJGcyBmczsNCiAgICAgVXNlcjo6TGVhdmVJZkVycm9yKCBmcy5Db25uZWN0KCkgKTsNCiAgICAg
Q2xlYW51cENsb3NlUHVzaEwoIGZzICk7DQotDQogICAgIGZzLlNldFNlc3Npb25QYXRoKCBpRGly
ZWN0b3J5LT5EZXMoKSApOw0KLQ0KLSAgICBpZiggd3JpdGVTdHJlYW0uUmVwbGFjZSggZnMsIGlJ
bmRleEZpbGUtPkRlcygpLCBFRmlsZVdyaXRlICkgPT0gS0Vyck5vbmUgKQ0KKyAgICAvLyBEb24n
dCBnZXQgbm90aWZpZWQgYWJvdXQgb3duIGNoYW5nZXMNCisgICAgaUh0dHBDYWNoZU9ic2VydmVy
LT5DYW5jZWwoKTsNCisgICAgVEludCByZXQgPSBLRXJyTm9uZTsNCisgICAgVEludCB0cnlDb3Vu
dCA9IDA7DQorICAgIGZvciAodHJ5Q291bnQgPSAwOyB0cnlDb3VudCA8IDU7IHRyeUNvdW50Kysp
IA0KKyAgICAgICAgew0KKyAgICAgICAgcmV0ID0gd3JpdGVTdHJlYW0uUmVwbGFjZSggZnMsIGlJ
bmRleEZpbGUtPkRlcygpLCBFRmlsZVdyaXRlICk7DQorICAgICAgICBpZiAocmV0ID09IEtFcnJJ
blVzZSkNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAgLy8gV2hlbiB0aGUgY2FjaGUgaXMg
ZnVsbCwgaXQgdGFrZXMgNjUgLSA4NSBtaWxpc2Vjb25kcyB0byB3cml0ZSB0aGUgaW5kZXguDQor
ICAgICAgICAgICAgLy8gU28gd2FpdCA1MCBtaWxpc2Vjb25kcyBhbmQgdHJ5IGFnYWluDQorICAg
ICAgICAgICAgVXNlcjo6QWZ0ZXIoNTAwMDApOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgIGVs
c2UNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAgYnJlYWs7DQorICAgICAgICAgICAgfQ0K
KyAgICAgICAgfQ0KKyAgICBpZiggcmV0ID09IEtFcnJOb25lICkNCiAgICAgICAgIHsNCiAgICAg
ICAgIENsZWFudXBDbG9zZVB1c2hMKCB3cml0ZVN0cmVhbSApOw0KICAgICAgICAgaUxvb2t1cFRh
YmxlLT5FeHRlcm5hbGl6ZUwoIHdyaXRlU3RyZWFtICk7DQpAQCAtMTExOCw2ICsxMTY4LDcgQEAg
dm9pZCBDSHR0cENhY2hlSGFuZGxlcjo6U2F2ZUxvb2t1cFRhYmxlTA0KICAgICAgICAgQ2xlYW51
cFN0YWNrOjpQb3BBbmREZXN0cm95KCk7IC8vIHdyaXRlU3RyZWFtDQogICAgICAgICB9DQogICAg
IENsZWFudXBTdGFjazo6UG9wQW5kRGVzdHJveSgpOyAvLyBmcw0KKyAgICBpSHR0cENhY2hlT2Jz
ZXJ2ZXItPlN0YXJ0T2JzZXJ2ZXIoKTsNCiAgICAgfQ0KIA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tDQpAQCAtMTI0Niw2ICsxMjk3LDM4IEBAIFRJbnQgQ0h0dHBDYWNoZUhhbmRsZXI6OkRvQmFj
a2dyb3VuZFNhdmUNCiAgICAgew0KICAgICBUUkFQX0lHTk9SRSggKChDSHR0cENhY2hlSGFuZGxl
ciopYVRoaXMpLT5TYXZlTG9va3VwVGFibGVMKCkgKTsNCiAgICAgcmV0dXJuIEtFcnJOb25lOw0K
KyAgICB9DQorDQorDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBDSHR0cENhY2hlSGFu
ZGxlcjo6VXBkYXRlTG9va3VwVGFibGUNCisvLw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQor
Ly8NCit2b2lkIENIdHRwQ2FjaGVIYW5kbGVyOjpVcGRhdGVMb29rdXBUYWJsZSgpDQorICAgIHsN
CisgICAgVFJBUF9JR05PUkUoVXBkYXRlTG9va3VwVGFibGVMKCkpOw0KKyAgICBpSHR0cENhY2hl
T2JzZXJ2ZXItPlN0YXJ0T2JzZXJ2ZXIoKTsNCisgICAgfQ0KKw0KKy8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tDQorLy8gQ0h0dHBDYWNoZUhhbmRsZXI6OlVwZGF0ZUxvb2t1cFRhYmxlTA0KKy8vDQor
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLw0KK3ZvaWQgQ0h0dHBDYWNoZUhhbmRsZXI6OlVw
ZGF0ZUxvb2t1cFRhYmxlTCgpDQorICAgIHsNCisgICAgQ0h0dHBDYWNoZUV2aWN0aW9uSGFuZGxl
ciogZXZpY3Rpb25IYW5kbGVyID0gQ0h0dHBDYWNoZUV2aWN0aW9uSGFuZGxlcjo6TmV3TCgpOw0K
KyAgICBDbGVhbnVwU3RhY2s6OlB1c2hMKGV2aWN0aW9uSGFuZGxlcik7DQorICAgIENIdHRwQ2Fj
aGVMb29rdXBUYWJsZSogbG9va3VwVGFibGUgPSBDSHR0cENhY2hlTG9va3VwVGFibGU6Ok5ld0wo
ICpldmljdGlvbkhhbmRsZXIsICppU3RyZWFtSGFuZGxlciApOw0KKyAgICBDbGVhbnVwU3RhY2s6
OlB1c2hMKGxvb2t1cFRhYmxlKTsNCisgICAgT3Blbkxvb2t1cFRhYmxlTChsb29rdXBUYWJsZSk7
DQorICAgIFJGcyByZnM7DQorICAgIFVzZXI6OkxlYXZlSWZFcnJvcihyZnMuQ29ubmVjdCgpKTsN
CisgICAgQ2xlYW51cENsb3NlUHVzaEwocmZzKTsNCisgICAgcmZzLlNldFNlc3Npb25QYXRoKCBp
RGlyZWN0b3J5LT5EZXMoKSApOw0KKyAgICBpTG9va3VwVGFibGUtPk1lcmdlTChsb29rdXBUYWJs
ZSwgcmZzKTsNCisgICAgQ2xlYW51cFN0YWNrOjpQb3BBbmREZXN0cm95KDMpOyAvLyByZnMsIGxv
b2t1cFRhYmxlLCBldmljdGlvbkhhbmRsZXINCiAgICAgfQ0KIA0KIC8vICBFbmQgb2YgRmlsZQ0K
SW5kZXg6IFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVMb29rdXBUYWJs
ZS5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVTcmMvSHR0
cENhY2hlTG9va3VwVGFibGUuY3BwCShyZXZpc2lvbiAxODIyMSkNCisrKyBXZWJLaXQvUmVzb3Vy
Y2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hlTG9va3VwVGFibGUuY3BwCSh3b3JraW5nIGNvcHkp
DQpAQCAtNDYsNyArNDYsNiBAQA0KICNpbmNsdWRlICJIdHRwQ2FjaGVVdGlsLmgiDQogI2luY2x1
ZGUgIkh0dHBDYWNoZUV2aWN0aW9uSGFuZGxlci5oIg0KICNpbmNsdWRlICJIdHRwQ2FjaGVTdHJl
YW1IYW5kbGVyLmgiDQotI2luY2x1ZGUgPHMzMmZpbGUuaD4NCiANCiAvLyBFWFRFUk5BTCBEQVRB
IFNUUlVDVFVSRVMNCiANCkBAIC02NzIsNSArNjcxLDcyIEBAIFRCb29sIENIdHRwQ2FjaGVMb29r
dXBUYWJsZTo6Qm91bmRhcnlDaGUNCiAgICAgVEludCBhUG9zICkNCiAgICAgew0KICAgICByZXR1
cm4gKCBhUG9zID49IDAgJiYgYVBvcyA8IGlFbnRyaWVzLT5Db3VudCgpICk7DQorICAgIH0NCisN
CisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRwQ2FjaGVMb29rdXBUYWJsZTo6TWVy
Z2VMDQorLy8NCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vDQordm9pZCBDSHR0cENhY2hl
TG9va3VwVGFibGU6Ok1lcmdlTCggQ0h0dHBDYWNoZUxvb2t1cFRhYmxlKiBhSHR0cENhY2hlTG9v
a3VwVGFibGUsIFJGcyBhUmZzICkNCisgICAgew0KKyAgICBUSW50IG15Q291bnQgPSBpRW50cmll
cy0+Q291bnQoKTsNCisgICAgVEludCBpID0gMDsNCisgICAgZm9yIChpID0gbXlDb3VudCAtIDE7
IGkgPj0gMDsgaS0tKQ0KKyAgICAgICAgew0KKyAgICAgICAgaWYgKCBWYWxpZCggaSApICkNCisg
ICAgICAgICAgICB7DQorICAgICAgICAgICAgQ0h0dHBDYWNoZUVudHJ5KiBlbnRyeSA9IGlFbnRy
aWVzLT5BdChpKTsNCisgICAgICAgICAgICBDSHR0cENhY2hlRW50cnkqIG5ld0VudHJ5ID0gYUh0
dHBDYWNoZUxvb2t1cFRhYmxlLT5GaW5kKGVudHJ5LT5VcmwoKSk7DQorICAgICAgICAgICAgaWYg
KG5ld0VudHJ5KQ0KKyAgICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgIC8vIEVudHJ5
IGlzIGluIHRoZSBuZXcgaW5kZXggZmlsZQ0KKyAgICAgICAgICAgICAgICBpZiAobmV3RW50cnkt
Pkxhc3RBY2Nlc3NlZCgpID4gZW50cnktPkxhc3RBY2Nlc3NlZCgpKQ0KKyAgICAgICAgICAgICAg
ICAgICAgew0KKyAgICAgICAgICAgICAgICAgICAgZW50cnktPkFjY2Vzc2VkKG5ld0VudHJ5LT5M
YXN0QWNjZXNzZWQoKSwgbmV3RW50cnktPlJlZigpKTsNCisgICAgICAgICAgICAgICAgICAgIH0N
CisgICAgICAgICAgICAgICAgVEludCBwb3MgPSBhSHR0cENhY2hlTG9va3VwVGFibGUtPlByb2Jl
KG5ld0VudHJ5LT5VcmwoKSwgRUZhbHNlKTsNCisgICAgICAgICAgICAgICAgaWYgKGFIdHRwQ2Fj
aGVMb29rdXBUYWJsZS0+VmFsaWQocG9zKSkNCisgICAgICAgICAgICAgICAgICAgIHsNCisgICAg
ICAgICAgICAgICAgICAgIGFIdHRwQ2FjaGVMb29rdXBUYWJsZS0+U2V0RGVsZXRlZChwb3MpOw0K
KyAgICAgICAgICAgICAgICAgICAgZGVsZXRlIG5ld0VudHJ5Ow0KKyAgICAgICAgICAgICAgICAg
ICAgYUh0dHBDYWNoZUxvb2t1cFRhYmxlLT5pQ291bnQtLTsNCisgICAgICAgICAgICAgICAgICAg
IH0NCisgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGVsc2UgLy8gKG5ld0VudHJ5KQ0K
KyAgICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgIC8vIEVudHJ5IGlzIG5vdCBpbiB0
aGUgbmV3IGluZGV4IGZpbGUNCisgICAgICAgICAgICAgICAgVFVpbnQgYXR0Ow0KKyAgICAgICAg
ICAgICAgICBpZiAoYVJmcy5BdHQoZW50cnktPkZpbGVuYW1lKCksIGF0dCkgIT0gS0Vyck5vbmUp
DQorICAgICAgICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgICAgICBUSW50IHRoZVBv
cyA9IFByb2JlKGVudHJ5LT5VcmwoKSwgRUZhbHNlKTsNCisgICAgICAgICAgICAgICAgICAgIGlm
IChWYWxpZCh0aGVQb3MpKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAg
ICAgICAgICAgICAgICBFcmFzZSh0aGVQb3MpOw0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0N
CisgICAgICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAg
IH0NCisgICAgICAgIH0NCisNCisgICAgVEludCBuZXdDb3VudCA9IGFIdHRwQ2FjaGVMb29rdXBU
YWJsZS0+aUVudHJpZXMtPkNvdW50KCk7DQorICAgIGZvciAoaSA9IG5ld0NvdW50IC0gMTsgaSA+
PSAwOyBpLS0pDQorICAgICAgICB7DQorICAgICAgICBpZiAoIGFIdHRwQ2FjaGVMb29rdXBUYWJs
ZS0+VmFsaWQoIGkgKSApDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgIENIdHRwQ2FjaGVF
bnRyeSogbmV3RW50cnkgPSBhSHR0cENhY2hlTG9va3VwVGFibGUtPmlFbnRyaWVzLT5BdChpKTsN
CisgICAgICAgICAgICBUSW50IHBvcyA9IGFIdHRwQ2FjaGVMb29rdXBUYWJsZS0+UHJvYmUobmV3
RW50cnktPlVybCgpLCBFRmFsc2UpOw0KKyAgICAgICAgICAgIFRVaW50IGF0dDsNCisgICAgICAg
ICAgICBpZiAoYVJmcy5BdHQobmV3RW50cnktPkZpbGVuYW1lKCksIGF0dCkgPT0gS0Vyck5vbmUp
DQorICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgQ0h0dHBDYWNoZUVudHJ5KiBt
eUVudHJ5ID0gSW5zZXJ0TChuZXdFbnRyeS0+VXJsKCkpOw0KKyAgICAgICAgICAgICAgICBteUVu
dHJ5LT5TZXRTdGF0ZSggQ0h0dHBDYWNoZUVudHJ5OjpFQ2FjaGVDb21wbGV0ZSApOw0KKyAgICAg
ICAgICAgICAgICBteUVudHJ5LT5BY2Nlc3NlZChuZXdFbnRyeS0+TGFzdEFjY2Vzc2VkKCksIG5l
d0VudHJ5LT5SZWYoKSk7DQorICAgICAgICAgICAgICAgIH0gICAgICAgICAgDQorICAgICAgICAg
ICAgYUh0dHBDYWNoZUxvb2t1cFRhYmxlLT5TZXREZWxldGVkKHBvcyk7DQorICAgICAgICAgICAg
ZGVsZXRlIG5ld0VudHJ5Ow0KKyAgICAgICAgICAgIGFIdHRwQ2FjaGVMb29rdXBUYWJsZS0+aUNv
dW50LS07DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgfQ0KICAgICB9DQogLy8gIEVuZCBvZiBG
aWxlDQpJbmRleDogV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZU9ic2Vy
dmVyLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9I
dHRwQ2FjaGVPYnNlcnZlci5jcHAJKHJldmlzaW9uIDApDQorKysgV2ViS2l0L1Jlc291cmNlTG9h
ZGVyL0NhY2hlU3JjL0h0dHBDYWNoZU9ic2VydmVyLmNwcAkocmV2aXNpb24gMCkNCkBAIC0wLDAg
KzEsMTYwIEBADQorLyoNCisqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyogIE5hbWUgICAgICAg
IDogSHR0cENhY2hlT2JzZXJ2ZXIuY3BwDQorKiAgUGFydCBvZiAgICAgOiBXZWJLaXQgLyBSZXNv
dXJjZUxvYWRlcg0KKyogIEludGVyZmFjZSAgIDoNCisqICBEZXNjcmlwdGlvbiA6IEltcGxlbWVu
dGF0aW9uIG9mIENIdHRwQ2FjaGVPYnNlcnZlcg0KKyogIFZlcnNpb24gICAgIDogJVZlcnNpb24l
DQorKg0KKyogICAgQ29weXJpZ2h0IChjKSAyMDA2LCBOb2tpYSBDb3Jwb3JhdGlvbg0KKyogICAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4NCisqDQorKiAgIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KKyogICBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMN
CisqICAgYXJlIG1ldDoNCisqDQorKiAgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCisqICAgICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuDQorKiAg
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQNCisqICAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4NCisqICAgICAgICB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlDQorKiAgICAgICAg
ZGlzdHJpYnV0aW9uLg0KKyogICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIE5va2lhIENv
cnBvcmF0aW9uIG5vciB0aGUgbmFtZXMgb2YgaXRzDQorKiAgICAgICAgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkDQorKiAgICAg
ICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLg0KKyoNCisqICAgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUw0KKyogICAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVA0KKyogICBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1INCisqICAgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQNCisqICAgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsDQorKiAgIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QN
CisqICAgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsDQorKiAgIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQ0KKyogICBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUDQor
KiAgIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFDQorKiAgIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gNCisqICAgREFNQUdFLg0KKyoNCisqICAgIFBsZWFz
ZSBzZWUgZmlsZSBwYXRlbnRsaWNlbnNlLnR4dCBmb3IgZnVydGhlciBncmFudHMuDQorKiA9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0NCisqLw0KKw0KKy8vIElOQ0xVREUgRklMRVMNCisjaW5jbHVkZSAi
SHR0cENhY2hlT2JzZXJ2ZXIuaCINCisjaW5jbHVkZSAiSHR0cENhY2hlSGFuZGxlci5oIg0KKw0K
Kw0KKy8vIEVYVEVSTkFMIERBVEEgU1RSVUNUVVJFUw0KKw0KKy8vIEVYVEVSTkFMIEZVTkNUSU9O
IFBST1RPVFlQRVMNCisNCisvLyBDT05TVEFOVFMNCisNCisvLyBNQUNST1MNCisNCisvLyBMT0NB
TCBDT05TVEFOVFMgQU5EIE1BQ1JPUw0KKw0KKy8vIE1PRFVMRSBEQVRBIFNUUlVDVFVSRVMNCisN
CisvLyBMT0NBTCBGVU5DVElPTiBQUk9UT1RZUEVTDQorDQorLy8gRk9SV0FSRCBERUNMQVJBVElP
TlMNCisNCisNCisvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09IE1FTUJFUiBGVU5DVElP
TlMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKw0KKy8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tDQorLy8gQ0h0dHBDYWNoZU9ic2VydmVyOjpDSHR0cENhY2hlT2JzZXJ2ZXINCisvLyBD
KysgZGVmYXVsdCBjb25zdHJ1Y3RvciBjYW4gTk9UIGNvbnRhaW4gYW55IGNvZGUsIHRoYXQNCisv
LyBtaWdodCBsZWF2ZS4NCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vDQorQ0h0dHBDYWNo
ZU9ic2VydmVyOjpDSHR0cENhY2hlT2JzZXJ2ZXIoQ0h0dHBDYWNoZUhhbmRsZXIqIGFIdHRwQ2Fj
aGVIYW5kbGVyKSA6IENBY3RpdmUoIENBY3RpdmU6OkVQcmlvcml0eUlkbGUgKSwNCitpSHR0cENh
Y2hlSGFuZGxlcihhSHR0cENhY2hlSGFuZGxlcikNCisgICAgew0KKyAgICBDQWN0aXZlU2NoZWR1
bGVyOjpBZGQodGhpcyk7DQorICAgIH0NCisNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8v
IENIdHRwQ2FjaGVPYnNlcnZlcjo6Q29uc3RydWN0TA0KKy8vIFN5bWJpYW4gMm5kIHBoYXNlIGNv
bnN0cnVjdG9yIGNhbiBsZWF2ZS4NCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vDQordm9p
ZCBDSHR0cENhY2hlT2JzZXJ2ZXI6OkNvbnN0cnVjdEwoY29uc3QgSEJ1ZkMqIGFEaXJlY3Rvcnks
IGNvbnN0IEhCdWZDKiBhSW5kZXhGaWxlKQ0KKyAgICB7DQorICAgIFVzZXI6OkxlYXZlSWZFcnJv
cihpRnNTZXNzaW9uLkNvbm5lY3QoKSk7DQorICAgIGlGaWxlTmFtZSA9IEhCdWZDOjpOZXdMKGFE
aXJlY3RvcnktPkxlbmd0aCgpICsgYUluZGV4RmlsZS0+TGVuZ3RoKCkpOw0KKyAgICBpRmlsZU5h
bWUtPkRlcygpLkNvcHkoKmFEaXJlY3RvcnkpOw0KKyAgICBpRmlsZU5hbWUtPkRlcygpLkFwcGVu
ZCgqYUluZGV4RmlsZSk7DQorICAgIH0NCisNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8v
IENIdHRwQ2FjaGVPYnNlcnZlcjo6TmV3TA0KKy8vIFR3by1waGFzZWQgY29uc3RydWN0b3IuDQor
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLw0KK0NIdHRwQ2FjaGVPYnNlcnZlciogQ0h0dHBD
YWNoZU9ic2VydmVyOjpOZXdMKCBjb25zdCBIQnVmQyogYURpcmVjdG9yeSwgY29uc3QgSEJ1ZkMq
IGFJbmRleEZpbGUsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQ0h0dHBDYWNoZUhhbmRsZXIqIGFIdHRwQ2FjaGVIYW5kbGVyKQ0KKyAg
ICB7DQorICAgIENIdHRwQ2FjaGVPYnNlcnZlciogc2VsZiA9IG5ldyggRUxlYXZlICkgQ0h0dHBD
YWNoZU9ic2VydmVyKGFIdHRwQ2FjaGVIYW5kbGVyKTsNCisgICAgQ2xlYW51cFN0YWNrOjpQdXNo
TCggc2VsZiApOw0KKyAgICBzZWxmLT5Db25zdHJ1Y3RMKGFEaXJlY3RvcnksIGFJbmRleEZpbGUp
Ow0KKyAgICBDbGVhbnVwU3RhY2s6OlBvcCgpOw0KKyAgICByZXR1cm4gc2VsZjsNCisgICAgfQ0K
Kw0KKy8vIERlc3RydWN0b3INCitDSHR0cENhY2hlT2JzZXJ2ZXI6On5DSHR0cENhY2hlT2JzZXJ2
ZXIoKQ0KKyAgICB7DQorICAgIENhbmNlbCgpOw0KKyAgICBkZWxldGUgaUZpbGVOYW1lOw0KKyAg
ICBpRnNTZXNzaW9uLkNsb3NlKCk7DQorICAgIH0NCisNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQ0KKy8vIENIdHRwQ2FjaGVPYnNlcnZlcjo6UnVuTA0KKy8vDQorLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0NCisvLw0KK3ZvaWQgQ0h0dHBDYWNoZU9ic2VydmVyOjpSdW5MKCkNCisgICAgew0KKyAg
ICBpSHR0cENhY2hlSGFuZGxlci0+VXBkYXRlTG9va3VwVGFibGUoKTsNCisgICAgfQ0KKw0KKy8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ0h0dHBDYWNoZU9ic2VydmVyOjpSdW5FcnJvcg0K
Ky8vDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLw0KK1RJbnQgQ0h0dHBDYWNoZU9ic2Vy
dmVyOjpSdW5FcnJvcihUSW50IC8qYUVycm9yKi8pDQorICAgIHsNCisgICAgcmV0dXJuIEtFcnJO
b25lOw0KKyAgICB9DQorDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBDSHR0cENhY2hl
T2JzZXJ2ZXI6OkRvQ2FuY2VsDQorLy8NCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vDQor
dm9pZCBDSHR0cENhY2hlT2JzZXJ2ZXI6OkRvQ2FuY2VsKCkNCisgICAgew0KKyAgICBpRnNTZXNz
aW9uLk5vdGlmeUNoYW5nZUNhbmNlbChpU3RhdHVzKTsNCisgICAgfQ0KKw0KKy8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tDQorLy8gQ0h0dHBDYWNoZU9ic2VydmVyOjpTdGFydE9ic2VydmVyDQorLy8N
CisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vDQordm9pZCBDSHR0cENhY2hlT2JzZXJ2ZXI6
OlN0YXJ0T2JzZXJ2ZXIoKQ0KKyAgICB7DQorICAgIGlmICghSXNBY3RpdmUoKSkNCisgICAgICAg
IHsNCisgICAgICAgIGlGc1Nlc3Npb24uTm90aWZ5Q2hhbmdlKEVOb3RpZnlXcml0ZSwgaVN0YXR1
cywgKmlGaWxlTmFtZSk7DQorICAgICAgICBTZXRBY3RpdmUoKTsNCisgICAgICAgIH0NCisgICAg
fQ0KKw0KKw0KKy8vICBFbmQgb2YgRmlsZQ0KSW5kZXg6IFdlYktpdC9ncm91cC9Ccm93c2VyQ2Fj
aGUubW1wDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L2dyb3VwL0Jyb3dzZXJDYWNoZS5tbXAJKHJl
dmlzaW9uIDE4MjIxKQ0KKysrIFdlYktpdC9ncm91cC9Ccm93c2VyQ2FjaGUubW1wCSh3b3JraW5n
IGNvcHkpDQpAQCAtNjEsNiArNjEsNyBAQCBTT1VSQ0UgICAgICAgIEh0dHBDYWNoZU1hbmFnZXIu
Y3BwDQogU09VUkNFICAgICAgICBIdHRwQ2FjaGVFbnRyeS5jcHANCiBTT1VSQ0UgICAgICAgIEh0
dHBDYWNoZUV2aWN0aW9uSGFuZGxlci5jcHANCiBTT1VSQ0UgICAgICAgIEh0dHBDYWNoZUhhbmRs
ZXIuY3BwDQorU09VUkNFICAgICAgICBIdHRwQ2FjaGVPYnNlcnZlci5jcHANCiBTT1VSQ0UgICAg
ICAgIEh0dHBDYWNoZUxvb2t1cFRhYmxlLmNwcA0KIFNPVVJDRSAgICAgICAgSHR0cENhY2hlU3Ry
ZWFtSGFuZGxlci5jcHANCiBTT1VSQ0UgICAgICAgIEh0dHBDYWNoZVV0aWwuY3BwDQo=
</data>
<flag name="review"
          id="4350"
          type_id="1"
          status="+"
          setter="Sachin.Padma"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11908</attachid>
            <date>2006-12-18 15:05:33 -0800</date>
            <delta_ts>2006-12-19 11:25:24 -0800</delta_ts>
            <desc>3.2 fix</desc>
            <filename>32.patch</filename>
            <type>text/plain</type>
            <size>36609</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxODIzNykNCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpDQpA
QCAtMSwzICsxLDM2IEBADQorMjAwNi0xMi0xNCAgeWFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lh
LmNvbT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKyAgICAgICAg
REVTQzogQnVnIDExODM0OiBUTFVVLTZWSlFYMyA6IENhY2hlIGNhbm5vdCBzdXBwb3J0IG1vcmUg
dGhhbiBvbmUgYXBwbGljYXRpb24gc2ltdWx0YW5lb3VzbHkNCisgICAgICAgIGh0dHA6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODM0DQorDQorICAgICAgICAqIENoYW5nZUxv
ZzoNCisgICAgICAgICogUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlRW50cnkuaDoN
CisgICAgICAgICogUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlSGFuZGxlci5oOg0K
KyAgICAgICAgKiBSZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVMb29rdXBUYWJsZS5o
Og0KKyAgICAgICAgKiBSZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVPYnNlcnZlci5o
OiBBZGRlZC4NCisgICAgICAgIChOT05TSEFSQUJMRV9DTEFTUyk6DQorICAgICAgICAqIFJlc291
cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZUVudHJ5LmNwcDoNCisgICAgICAgIChDSHR0cENh
Y2hlRW50cnk6OkFjY2Vzc2VkKToNCisgICAgICAgICogUmVzb3VyY2VMb2FkZXIvQ2FjaGVTcmMv
SHR0cENhY2hlSGFuZGxlci5jcHA6DQorICAgICAgICAoQ0h0dHBDYWNoZUhhbmRsZXI6OkNvbnN0
cnVjdEwpOg0KKyAgICAgICAgKENIdHRwQ2FjaGVIYW5kbGVyOjp+Q0h0dHBDYWNoZUhhbmRsZXIp
Og0KKyAgICAgICAgKENIdHRwQ2FjaGVIYW5kbGVyOjpPcGVuTG9va3VwVGFibGVMKToNCisgICAg
ICAgIChDSHR0cENhY2hlSGFuZGxlcjo6U2F2ZUxvb2t1cFRhYmxlTCk6DQorICAgICAgICAoQ0h0
dHBDYWNoZUhhbmRsZXI6OlVwZGF0ZUxvb2t1cFRhYmxlKToNCisgICAgICAgIChDSHR0cENhY2hl
SGFuZGxlcjo6VXBkYXRlTG9va3VwVGFibGVMKToNCisgICAgICAgICogUmVzb3VyY2VMb2FkZXIv
Q2FjaGVTcmMvSHR0cENhY2hlTG9va3VwVGFibGUuY3BwOg0KKyAgICAgICAgKiBSZXNvdXJjZUxv
YWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVPYnNlcnZlci5jcHA6IEFkZGVkLg0KKyAgICAgICAgKENI
dHRwQ2FjaGVPYnNlcnZlcjo6Q0h0dHBDYWNoZU9ic2VydmVyKToNCisgICAgICAgIChDSHR0cENh
Y2hlT2JzZXJ2ZXI6OkNvbnN0cnVjdEwpOg0KKyAgICAgICAgKENIdHRwQ2FjaGVPYnNlcnZlcjo6
TmV3TCk6DQorICAgICAgICAoQ0h0dHBDYWNoZU9ic2VydmVyOjp+Q0h0dHBDYWNoZU9ic2VydmVy
KToNCisgICAgICAgIChDSHR0cENhY2hlT2JzZXJ2ZXI6OlJ1bkwpOg0KKyAgICAgICAgKENIdHRw
Q2FjaGVPYnNlcnZlcjo6UnVuRXJyb3IpOg0KKyAgICAgICAgKENIdHRwQ2FjaGVPYnNlcnZlcjo6
RG9DYW5jZWwpOg0KKyAgICAgICAgKENIdHRwQ2FjaGVPYnNlcnZlcjo6U3RhcnRPYnNlcnZlcik6
DQorICAgICAgICAqIGdyb3VwL0Jyb3dzZXJDYWNoZS5tbXA6DQorDQogMjAwNi0xMi0xMiAgcmF0
aG5hc2EgIDxzb3JuYWxhdGhhLnJhdGhuYXNhbXlAbm9raWEuY29tPg0KIA0KICAgICAgICAgUmV2
aWV3ZWQgYnkgWW9uZ2p1biBaaGFuZyBhbmQgU3RldmUgV2luc2hpcC4NCkluZGV4OiBXZWJLaXQv
UmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlRW50cnkuaA0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t
IFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVFbnRyeS5oCShyZXZpc2lv
biAxODIyMSkNCisrKyBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlRW50
cnkuaAkod29ya2luZyBjb3B5KQ0KQEAgLTksOSArOSw5IEBADQogKiAgICBDb3B5cmlnaHQgKGMp
IDIwMDYsIE5va2lhIENvcnBvcmF0aW9uDQogKiAgICBBbGwgcmlnaHRzIHJlc2VydmVkLg0KICog
IA0KLSogIAlSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQNCi0qICAJbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQotKiAgCWFyZSBtZXQ6DQorKiAgIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dA0KKyogICBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMNCisqICAgYXJlIG1ldDoNCiAqICANCiAqICAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodA0KICogICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4NCkBAIC0yMywxOCArMjMsMTggQEANCiAqICAgICAgICBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQNCiAqICAgICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uDQogKiAgDQotKiAgCVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMNCi0qICAJIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QN
Ci0qICAJTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SDQotKiAgCUEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUDQotKiAgCU9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLA0K
LSogIAlTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UDQotKiAgCUxJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLA0KLSogIAlEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkNCi0qICAJ
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVA0KLSogIAkoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRQ0KLSogIAlVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIDQotKiAgCURBTUFHRS4NCisq
ICAgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUw0KKyogICAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVA0KKyogICBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1INCisqICAgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQNCisqICAgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsDQorKiAgIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QNCisqICAgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsDQorKiAgIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQ0KKyogICBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUDQorKiAgIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFDQor
KiAgIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0gNCisqICAgREFNQUdFLg0KICogIA0KICogICAgUGxlYXNlIHNlZSBmaWxlIHBh
dGVudGxpY2Vuc2UudHh0IGZvciBmdXJ0aGVyIGdyYW50cy4NCiAqID09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KQEAgLTIzNyw2ICsyMzcsMTQgQEAgY2xhc3MgQ0h0dHBDYWNoZUVudHJ5IDogcHVibGlj
IENCYXNlDQogICAgICAgICAqIEByZXR1cm4gDQogICAgICAgICAqLw0KICAgICAgICAgVEludCBF
eHRlcm5hbGl6ZSggUkZpbGVXcml0ZVN0cmVhbSYgYVdyaXRlU3RyZWFtICk7DQorDQorICAgICAg
ICAvKioNCisgICAgICAgICogDQorICAgICAgICAqIEBzaW5jZSAzLjENCisgICAgICAgICogQHBh
cmFtIA0KKyAgICAgICAgKiBAcmV0dXJuIA0KKyAgICAgICAgKi8NCisgICAgICAgIHZvaWQgQWNj
ZXNzZWQoVEludDY0IGFMYXN0QWNjZXNzZWQsIFRVaW50MTYgYVJlZik7DQogDQogICAgIHB1Ymxp
YyA6IA0KIA0KSW5kZXg6IFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVI
YW5kbGVyLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMv
SHR0cENhY2hlSGFuZGxlci5oCShyZXZpc2lvbiAxODIyMSkNCisrKyBXZWJLaXQvUmVzb3VyY2VM
b2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlSGFuZGxlci5oCSh3b3JraW5nIGNvcHkpDQpAQCAtNjgs
NiArNjgsNyBAQCBjbGFzcyBNSFRUUERhdGFTdXBwbGllcjsNCiBjbGFzcyBDSWRsZTsNCiBjbGFz
cyBDSHR0cENhY2hlRXZpY3Rpb25IYW5kbGVyOw0KIGNsYXNzIFRIdHRwQ2FjaGVFbnRyeTsNCitj
bGFzcyBDSHR0cENhY2hlT2JzZXJ2ZXI7DQogDQogLy8gQ0xBU1MgREVDTEFSQVRJT04NCiANCkBA
IC0yMDMsNiArMjA0LDE1IEBAIGNsYXNzIENIdHRwQ2FjaGVIYW5kbGVyIDogcHVibGljIENCYXNl
DQogICAgICAgICAqLw0KICAgICAgICAgdm9pZCBBZGp1c3RSZXNwb25zZVRpbWUoUkhUVFBUcmFu
c2FjdGlvbiYgYVRyYW5zKTsNCiANCisgICAgICAgIC8qKg0KKyAgICAgICAgKiBTb21lIG90aGVy
IGFwcGxpY2F0aW9uIG1vZGlmaWVkIHRoZSBjYWNoZSBhbmQgdGhlIGxvb2t1cCB0YWJsZSBuZWVk
cyB0byBiZSB1cGRhdGVkDQorICAgICAgICAqDQorICAgICAgICAqIEBzaW5jZSAzLjENCisgICAg
ICAgICogQHBhcmFtDQorICAgICAgICAqIEByZXR1cm4NCisgICAgICAgICovDQorICAgICAgICB2
b2lkIFVwZGF0ZUxvb2t1cFRhYmxlKCk7DQorDQogICAgIHByaXZhdGU6DQogDQogICAgICAgICAv
KioNCkBAIC0yMjIsNiArMjMyLDE1IEBAIGNsYXNzIENIdHRwQ2FjaGVIYW5kbGVyIDogcHVibGlj
IENCYXNlDQogICAgIHByaXZhdGU6IC8vDQogDQogICAgICAgICAvKioNCisgICAgICAgICogU29t
ZSBvdGhlciBhcHBsaWNhdGlvbiBtb2RpZmllZCB0aGUgY2FjaGUgYW5kIHRoZSBsb29rdXAgdGFi
bGUgbmVlZHMgdG8gYmUgdXBkYXRlZA0KKyAgICAgICAgKg0KKyAgICAgICAgKiBAc2luY2UgMy4x
DQorICAgICAgICAqIEBwYXJhbQ0KKyAgICAgICAgKiBAcmV0dXJuDQorICAgICAgICAqLw0KKyAg
ICAgICAgdm9pZCBVcGRhdGVMb29rdXBUYWJsZUwoKTsNCisNCisgICAgICAgIC8qKg0KICAgICAg
ICAgKg0KICAgICAgICAgKiBAc2luY2UgMy4xDQogICAgICAgICAqIEBwYXJhbQ0KQEAgLTI5MSw2
ICszMTAsMTUgQEAgY2xhc3MgQ0h0dHBDYWNoZUhhbmRsZXIgOiBwdWJsaWMgQ0Jhc2UNCiAgICAg
ICAgICogQHBhcmFtDQogICAgICAgICAqIEByZXR1cm4NCiAgICAgICAgICovDQorICAgICAgICB2
b2lkIE9wZW5Mb29rdXBUYWJsZUwoQ0h0dHBDYWNoZUxvb2t1cFRhYmxlKiBhTG9va3VwVGFibGUp
Ow0KKw0KKyAgICAgICAgLyoqDQorICAgICAgICAqDQorICAgICAgICAqIEBzaW5jZSAzLjENCisg
ICAgICAgICogQHBhcmFtDQorICAgICAgICAqIEBwYXJhbQ0KKyAgICAgICAgKiBAcmV0dXJuDQor
ICAgICAgICAqLw0KICAgICAgICAgdm9pZCBIYW5kbGVDb3JydXB0RW50cnkoIENIdHRwQ2FjaGVF
bnRyeSYgYVN0cmF5RW50cnksIFRCb29sIGFVcGRhdGUgPSBFVHJ1ZSApOw0KIA0KICAgICAgICAg
LyoqDQpAQCAtMzQ1LDYgKzM3Myw4IEBAIGNsYXNzIENIdHRwQ2FjaGVIYW5kbGVyIDogcHVibGlj
IENCYXNlDQogICAgICAgICBDSWRsZSogICAgICAgICAgICAgICAgICAgICAgICAgIGlJZGxlOyAg
ICAgIC8vIG93bmVkDQogICAgICAgICAvLyBuYW1lIG9mIHRoZSBpbmRleCBmaWxlDQogICAgICAg
ICBIQnVmQyogICAgICAgICAgICAgICAgICAgICAgICAgIGlJbmRleEZpbGU7IC8vIG93bmVkDQor
ICAgICAgICAvLyBPYnNlcnZpbmcgY2hhbmdlcyBpbiBjYWNoZQ0KKyAgICAgICAgQ0h0dHBDYWNo
ZU9ic2VydmVyKiBpSHR0cENhY2hlT2JzZXJ2ZXI7IC8vIG93bmVkDQogICAgIH07DQogDQogI2Vu
ZGlmICAgICAgLy8gQ0hUVFBDQUNIRUhBTkRMRVJfSA0KSW5kZXg6IFdlYktpdC9SZXNvdXJjZUxv
YWRlci9DYWNoZUluYy9IdHRwQ2FjaGVMb29rdXBUYWJsZS5oDQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2Vi
S2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNoZUxvb2t1cFRhYmxlLmgJKHJldmlz
aW9uIDE4MjIxKQ0KKysrIFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVM
b29rdXBUYWJsZS5oCSh3b3JraW5nIGNvcHkpDQpAQCAtOSw5ICs5LDkgQEANCiAqICAgIENvcHly
aWdodCAoYykgMjAwNiwgTm9raWEgQ29ycG9yYXRpb24NCiAqICAgIEFsbCByaWdodHMgcmVzZXJ2
ZWQuDQogKiAgDQotKiAgCVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KLSogIAltb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMNCi0qICAJYXJlIG1ldDoN
CisqICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0DQorKiAgIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucw0KKyogICBhcmUgbWV0Og0KICogIA0KICog
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0DQogKiAgICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KQEAgLTIzLDE4ICsyMywxOCBAQA0KICogICAg
ICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZA0KICogICAgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4NCiAqICANCi0qICAJVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUw0KLSogIAki
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVA0KLSogIAlMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1INCi0qICAJQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQNCi0qICAJT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsDQotKiAgCVNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QNCi0qICAJTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsDQotKiAgCURBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQ0KLSogIAlUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUDQotKiAgCShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFDQotKiAgCVVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gNCi0qICAJREFN
QUdFLg0KKyogICBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTDQorKiAgICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UDQorKiAgIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUg0K
KyogICBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVA0KKyogICBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwNCisqICAgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVA0KKyogICBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwNCisqICAgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZDQorKiAgIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQNCisqICAgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUNCisqICAgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSA0KKyogICBEQU1BR0UuDQogKiAgDQogKiAgICBQbGVhc2Ugc2Vl
IGZpbGUgcGF0ZW50bGljZW5zZS50eHQgZm9yIGZ1cnRoZXIgZ3JhbnRzLg0KICogPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09DQpAQCAtNDUsNiArNDUsNyBAQA0KIA0KIC8vICBJTkNMVURFUw0KICNpbmNs
dWRlIDxlMzJiYXNlLmg+DQorI2luY2x1ZGUgPHMzMmZpbGUuaD4NCiANCiAvLyBDT05TVEFOVFMN
CiANCkBAIC03MSw3ICs3Miw3IEBAIGNsYXNzIENIdHRwQ2FjaGVTdHJlYW1IYW5kbGVyOw0KIGNs
YXNzIENIdHRwQ2FjaGVMb29rdXBUYWJsZSA6IHB1YmxpYyBDQmFzZQ0KICAgICB7DQogICAgIHB1
YmxpYzogIC8vIENvbnN0cnVjdG9ycyBhbmQgZGVzdHJ1Y3Rvcg0KLQ0KKyAgICAgICAgDQogICAg
ICAgICAvKioNCiAgICAgICAgICogVHdvLXBoYXNlZCBjb25zdHJ1Y3Rvci4NCiAgICAgICAgICog
QHNpbmNlIDMuMQ0KQEAgLTgwLDQ2ICs4MSw0NiBAQCBjbGFzcyBDSHR0cENhY2hlTG9va3VwVGFi
bGUgOiBwdWJsaWMgQ0JhDQogICAgICAgICAqIEByZXR1cm4gQ0h0dHBDYWNoZUxvb2t1cFRhYmxl
IG9iamVjdC4NCiAgICAgICAgICovDQogICAgICAgICBzdGF0aWMgQ0h0dHBDYWNoZUxvb2t1cFRh
YmxlKiBOZXdMKCBDSHR0cENhY2hlRXZpY3Rpb25IYW5kbGVyJiBhRXZpY3Rpb25IYW5kbGVyLCBD
SHR0cENhY2hlU3RyZWFtSGFuZGxlciYgYVN0cmVhbUhhbmRsZXIgKTsNCi0NCisgICAgICAgIA0K
ICAgICAgICAgLyoqDQogICAgICAgICAqIERlc3RydWN0b3IuDQogICAgICAgICAqLw0KICAgICAg
ICAgdmlydHVhbCB+Q0h0dHBDYWNoZUxvb2t1cFRhYmxlKCk7DQotDQorICAgICAgICANCiAgICAg
cHVibGljOiAvLyBuZXcgZnVuY3Rpb25zDQotDQorICAgIA0KICAgICAgICAgLyoqDQogICAgICAg
ICAqDQogICAgICAgICAqIEBzaW5jZSAzLjENCiAgICAgICAgICogQHBhcmFtDQogICAgICAgICAq
IEByZXR1cm4NCiAgICAgICAgICovDQotCQlDSHR0cENhY2hlRW50cnkqIEluc2VydEwoIGNvbnN0
IFREZXNDOCYgYVVybCApOw0KLQ0KKyAgICAgICAgQ0h0dHBDYWNoZUVudHJ5KiBJbnNlcnRMKCBj
b25zdCBURGVzQzgmIGFVcmwgKTsNCisgICAgICAgIA0KICAgICAgICAgLyoqDQogICAgICAgICAq
DQogICAgICAgICAqIEBzaW5jZSAzLjENCiAgICAgICAgICogQHBhcmFtDQogICAgICAgICAqIEBy
ZXR1cm4NCiAgICAgICAgICovDQotCQlDSHR0cENhY2hlRW50cnkqIEZpbmQoIGNvbnN0IFREZXND
OCYgYVVybCApOw0KLQ0KKyAgICAgICAgQ0h0dHBDYWNoZUVudHJ5KiBGaW5kKCBjb25zdCBURGVz
QzgmIGFVcmwgKTsNCisgICAgICAgIA0KICAgICAgICAgLyoqDQogICAgICAgICAqDQogICAgICAg
ICAqIEBzaW5jZSAzLjENCiAgICAgICAgICogQHBhcmFtDQogICAgICAgICAqIEByZXR1cm4NCiAg
ICAgICAgICovDQotCQlUSW50IFJlbW92ZSggY29uc3QgVERlc0M4JiBhVXJsICk7DQotDQorICAg
ICAgICBUSW50IFJlbW92ZSggY29uc3QgVERlc0M4JiBhVXJsICk7DQorICAgICAgICANCiAgICAg
ICAgIC8qKg0KICAgICAgICAgKg0KICAgICAgICAgKiBAc2luY2UgMy4xDQogICAgICAgICAqIEBw
YXJhbQ0KICAgICAgICAgKiBAcmV0dXJuDQogICAgICAgICAqLw0KLQkJVEludCBSZW1vdmVBbGwo
KTsNCi0NCisgICAgICAgIFRJbnQgUmVtb3ZlQWxsKCk7DQorICAgICAgICANCiAgICAgICAgIC8q
Kg0KICAgICAgICAgKg0KICAgICAgICAgKiBAc2luY2UgMy4xDQpAQCAtMTI3LDcgKzEyOCw3IEBA
IGNsYXNzIENIdHRwQ2FjaGVMb29rdXBUYWJsZSA6IHB1YmxpYyBDQmENCiAgICAgICAgICogQHJl
dHVybg0KICAgICAgICAgKi8NCiAgICAgICAgIGNvbnN0IENBcnJheVB0ckZsYXQ8Q0h0dHBDYWNo
ZUVudHJ5PiYgRW50cmllcygpIGNvbnN0IHsgcmV0dXJuICppRW50cmllczsgfQ0KLQ0KKyAgICAg
ICAgDQogICAgICAgICAvKioNCiAgICAgICAgICoNCiAgICAgICAgICogQHNpbmNlIDMuMQ0KQEAg
LTEzNSw3ICsxMzYsNyBAQCBjbGFzcyBDSHR0cENhY2hlTG9va3VwVGFibGUgOiBwdWJsaWMgQ0Jh
DQogICAgICAgICAqIEByZXR1cm4NCiAgICAgICAgICovDQogICAgICAgICB2b2lkIEVyYXNlQ29y
cnVwdEVudHJ5KCBjb25zdCBURGVzQzgmIGFVcmwgKTsNCi0NCisgICAgICAgIA0KICAgICAgICAg
LyoqDQogICAgICAgICAqDQogICAgICAgICAqIEBzaW5jZSAzLjENCkBAIC0xNDMsNyArMTQ0LDcg
QEAgY2xhc3MgQ0h0dHBDYWNoZUxvb2t1cFRhYmxlIDogcHVibGljIENCYQ0KICAgICAgICAgKiBA
cmV0dXJuDQogICAgICAgICAqLw0KICAgICAgICAgdm9pZCBJbnRlcm5hbGl6ZUwoIFJGaWxlUmVh
ZFN0cmVhbSYgYVJlYWRTdHJlYW0sIGNvbnN0IFREZXNDJiBhRGlyZWN0b3J5ICk7DQotDQorICAg
ICAgICANCiAgICAgICAgIC8qKg0KICAgICAgICAgKg0KICAgICAgICAgKiBAc2luY2UgMy4xDQpA
QCAtMTUxLDkgKzE1MiwxNyBAQCBjbGFzcyBDSHR0cENhY2hlTG9va3VwVGFibGUgOiBwdWJsaWMg
Q0JhDQogICAgICAgICAqIEByZXR1cm4NCiAgICAgICAgICovDQogICAgICAgICB2b2lkIEV4dGVy
bmFsaXplTCggUkZpbGVXcml0ZVN0cmVhbSYgYVdyaXRlU3RyZWFtICk7DQotDQorICAgICAgICAN
CisgICAgICAgIC8qKg0KKyAgICAgICAgKg0KKyAgICAgICAgKiBAc2luY2UgMy4xDQorICAgICAg
ICAqIEBwYXJhbQ0KKyAgICAgICAgKiBAcmV0dXJuDQorICAgICAgICAqLw0KKyAgICAgICAgdm9p
ZCBNZXJnZUwoIENIdHRwQ2FjaGVMb29rdXBUYWJsZSogYUh0dHBDYWNoZUxvb2t1cFRhYmxlLCBS
RnMgYVJmcyAgKTsNCisgICAgICAgIA0KICAgICBwcml2YXRlOg0KLQ0KKyAgICAgICAgDQogICAg
ICAgICAvKioNCiAgICAgICAgICogQ29uc3RydWN0Lg0KICAgICAgICAgKiBAc2luY2UgMy4xDQpA
QCAtMTYyLDE0ICsxNzEsMTQgQEAgY2xhc3MgQ0h0dHBDYWNoZUxvb2t1cFRhYmxlIDogcHVibGlj
IENCYQ0KICAgICAgICAgKiBAcmV0dXJuIENIdHRwQ2FjaGVMb29rdXBUYWJsZSBvYmplY3QuDQog
ICAgICAgICAqLw0KICAgICAgICAgQ0h0dHBDYWNoZUxvb2t1cFRhYmxlKCBDSHR0cENhY2hlRXZp
Y3Rpb25IYW5kbGVyJiBhRXZpY3Rpb25IYW5kbGVyLCBDSHR0cENhY2hlU3RyZWFtSGFuZGxlciYg
YVN0cmVhbUhhbmRsZXIgKTsNCi0NCisgICAgICAgIA0KICAgICAgICAgLyoqDQogICAgICAgICAq
IEJ5IGRlZmF1bHQgU3ltYmlhbiAybmQgcGhhc2UgY29uc3RydWN0b3IgaXMgcHJpdmF0ZS4NCiAg
ICAgICAgICovDQogICAgICAgICB2b2lkIENvbnN0cnVjdEwoKTsNCi0NCisgICAgICAgIA0KICAg
ICBwcml2YXRlOiAvLw0KLQ0KKyAgICAgICAgDQogICAgICAgICAvKioNCiAgICAgICAgICoNCiAg
ICAgICAgICogQHNpbmNlIDMuMQ0KQEAgLTE3Nyw3ICsxODYsNyBAQCBjbGFzcyBDSHR0cENhY2hl
TG9va3VwVGFibGUgOiBwdWJsaWMgQ0JhDQogICAgICAgICAqIEByZXR1cm4NCiAgICAgICAgICov
DQogICAgICAgICBUSW50IEluc2VydEwoIENIdHRwQ2FjaGVFbnRyeSogYUNhY2hlRW50cnkgKTsN
Ci0NCisgICAgICAgIA0KICAgICAgICAgLyoqDQogICAgICAgICAqDQogICAgICAgICAqIEBzaW5j
ZSAzLjENCkBAIC0xODUsNyArMTk0LDcgQEAgY2xhc3MgQ0h0dHBDYWNoZUxvb2t1cFRhYmxlIDog
cHVibGljIENCYQ0KICAgICAgICAgKiBAcmV0dXJuDQogICAgICAgICAqLw0KICAgICAgICAgVElu
dCBQcm9iZSggY29uc3QgVERlc0M4JiBhS2V5LCBUQm9vbCBhSW5zZXJ0ICk7DQotDQorICAgICAg
ICANCiAgICAgICAgIC8qKg0KICAgICAgICAgKg0KICAgICAgICAgKiBAc2luY2UgMy4xDQpAQCAt
MTkzLDcgKzIwMiw3IEBAIGNsYXNzIENIdHRwQ2FjaGVMb29rdXBUYWJsZSA6IHB1YmxpYyBDQmEN
CiAgICAgICAgICogQHJldHVybg0KICAgICAgICAgKi8NCiAgICAgICAgIFRJbnQgSGFzaFVybCgg
Y29uc3QgVERlc0M4JiBhVXJsICk7DQotDQorICAgICAgICANCiAgICAgICAgIC8qKg0KICAgICAg
ICAgKg0KICAgICAgICAgKiBAc2luY2UgMy4xDQpAQCAtMjAxLDcgKzIxMCw3IEBAIGNsYXNzIENI
dHRwQ2FjaGVMb29rdXBUYWJsZSA6IHB1YmxpYyBDQmENCiAgICAgICAgICogQHJldHVybg0KICAg
ICAgICAgKi8NCiAgICAgICAgIHZvaWQgUmVIYXNoTCgpOw0KLQ0KKyAgICAgICAgDQogICAgICAg
ICAvKioNCiAgICAgICAgICoNCiAgICAgICAgICogQHNpbmNlIDMuMQ0KQEAgLTIwOSw3ICsyMTgs
NyBAQCBjbGFzcyBDSHR0cENhY2hlTG9va3VwVGFibGUgOiBwdWJsaWMgQ0JhDQogICAgICAgICAq
IEByZXR1cm4NCiAgICAgICAgICovDQogICAgICAgICBUVWludCBOZXh0UHJpbWUoIFRVaW50IGFO
dW0gKTsNCi0NCisgICAgICAgIA0KICAgICAgICAgLyoqDQogICAgICAgICAqDQogICAgICAgICAq
IEBzaW5jZSAzLjENCkBAIC0yMTcsNyArMjI2LDcgQEAgY2xhc3MgQ0h0dHBDYWNoZUxvb2t1cFRh
YmxlIDogcHVibGljIENCYQ0KICAgICAgICAgKiBAcmV0dXJuDQogICAgICAgICAqLw0KICAgICAg
ICAgdm9pZCBFcmFzZSggVEludCBhUG9zICk7DQotDQorICAgICAgICANCiAgICAgICAgIC8qKg0K
ICAgICAgICAgKg0KICAgICAgICAgKiBAc2luY2UgMy4xDQpAQCAtMjI1LDcgKzIzNCw3IEBAIGNs
YXNzIENIdHRwQ2FjaGVMb29rdXBUYWJsZSA6IHB1YmxpYyBDQmENCiAgICAgICAgICogQHJldHVy
bg0KICAgICAgICAgKi8NCiAgICAgICAgIFRCb29sIFZhbGlkKCBUSW50IGFQb3MgKTsNCi0NCisg
ICAgICAgIA0KICAgICAgICAgLyoqDQogICAgICAgICAqDQogICAgICAgICAqIEBzaW5jZSAzLjEN
CkBAIC0yMzMsNyArMjQyLDcgQEAgY2xhc3MgQ0h0dHBDYWNoZUxvb2t1cFRhYmxlIDogcHVibGlj
IENCYQ0KICAgICAgICAgKiBAcmV0dXJuDQogICAgICAgICAqLw0KICAgICAgICAgVEJvb2wgRW1w
dHkoIFRJbnQgYVBvcyApOw0KLQ0KKyAgICAgICAgDQogICAgICAgICAvKioNCiAgICAgICAgICoN
CiAgICAgICAgICogQHNpbmNlIDMuMQ0KQEAgLTI0MSw3ICsyNTAsNyBAQCBjbGFzcyBDSHR0cENh
Y2hlTG9va3VwVGFibGUgOiBwdWJsaWMgQ0JhDQogICAgICAgICAqIEByZXR1cm4NCiAgICAgICAg
ICovDQogICAgICAgICBUQm9vbCBEZWxldGVkKCBUSW50IGFQb3MgKTsNCi0NCisgICAgICAgIA0K
ICAgICAgICAgLyoqDQogICAgICAgICAqDQogICAgICAgICAqIEBzaW5jZSAzLjENCkBAIC0yNDks
NyArMjU4LDcgQEAgY2xhc3MgQ0h0dHBDYWNoZUxvb2t1cFRhYmxlIDogcHVibGljIENCYQ0KICAg
ICAgICAgKiBAcmV0dXJuDQogICAgICAgICAqLw0KICAgICAgICAgdm9pZCBTZXREZWxldGVkKCBU
SW50IGFQb3MgKTsNCi0NCisgICAgICAgIA0KICAgICAgICAgLyoqDQogICAgICAgICAqDQogICAg
ICAgICAqIEBzaW5jZSAzLjENCkBAIC0yNTcsMTEgKzI2NiwxMSBAQCBjbGFzcyBDSHR0cENhY2hl
TG9va3VwVGFibGUgOiBwdWJsaWMgQ0JhDQogICAgICAgICAqIEByZXR1cm4NCiAgICAgICAgICov
DQogICAgICAgICBUQm9vbCBCb3VuZGFyeUNoZWNrKCBUSW50IGFQb3MgKTsNCi0NCisgICAgICAg
IA0KICAgICBwcml2YXRlOiAgICAvLyBEYXRhDQotDQorICAgICAgICANCiAgICAgICAgIC8vIGhh
c2ggdGFibGUgZm9yIGNhY2hlIGVudHJpZXMNCi0JCUNBcnJheVB0ckZsYXQ8Q0h0dHBDYWNoZUVu
dHJ5PiogaUVudHJpZXM7DQorICAgICAgICBDQXJyYXlQdHJGbGF0PENIdHRwQ2FjaGVFbnRyeT4q
IGlFbnRyaWVzOw0KICAgICAgICAgLy8gbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIGhhc2h0YWJs
ZQ0KICAgICAgICAgVEludCAgICAgICAgICAgICAgICAgICAgICAgICAgICBpQ291bnQ7DQogICAg
ICAgICAvLw0KQEAgLTI2OSw3ICsyNzgsNyBAQCBjbGFzcyBDSHR0cENhY2hlTG9va3VwVGFibGUg
OiBwdWJsaWMgQ0JhDQogICAgICAgICAvLw0KICAgICAgICAgQ0h0dHBDYWNoZVN0cmVhbUhhbmRs
ZXIqICAgICAgICBpU3RyZWFtSGFuZGxlcjsgICAgICAgICAgIC8vIG5vdCBvd25lZA0KICAgICB9
Ow0KLQ0KKyAgICANCiAjZW5kaWYgICAgICAvLyBDSFRUUENBQ0hFTE9PS1VQVEFCTEVfSA0KLQ0K
LS8vIEVuZCBvZiBGaWxlDQorICAgIA0KKyAgICAvLyBFbmQgb2YgRmlsZQ0KSW5kZXg6IFdlYktp
dC9SZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVPYnNlcnZlci5oDQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
DQotLS0gV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNoZU9ic2VydmVyLmgJ
KHJldmlzaW9uIDApDQorKysgV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNo
ZU9ic2VydmVyLmgJKHJldmlzaW9uIDApDQpAQCAtMCwwICsxLDEyMSBAQA0KKy8qDQorKiA9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0NCisqICBOYW1lICAgICAgICA6IEh0dHBDYWNoZUhhbmRsZXJVcGRh
dGVyLmgNCisqICBQYXJ0IG9mICAgICA6IFdlYktpdCAvIFJlc291cmNlTG9hZGVyDQorKiAgSW50
ZXJmYWNlICAgOg0KKyogIERlc2NyaXB0aW9uIDogRGVmaW5pdGlvbiBvZiBDSHR0cENhY2hlT2Jz
ZXJ2ZXINCisqICBWZXJzaW9uICAgICA6ICVWZXJzaW9uJQ0KKyoNCisqICAgIENvcHlyaWdodCAo
YykgMjAwNiwgTm9raWEgQ29ycG9yYXRpb24NCisqICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQor
Kg0KKyogICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQNCisqICAgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQorKiAgIGFyZSBtZXQ6DQorKg0KKyog
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0DQorKiAgICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KKyogICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0DQorKiAgICAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluDQorKiAgICAgICAgdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQ0KKyogICAgICAgIGRpc3RyaWJ1dGlvbi4NCisqICAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBOb2tpYSBDb3Jwb3JhdGlvbiBub3IgdGhlIG5hbWVz
IG9mIGl0cw0KKyogICAgICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZA0KKyogICAgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4NCisqDQorKiAgIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMNCisqICAgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QNCisqICAgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SDQorKiAgIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
DQorKiAgIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLA0KKyogICBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UDQorKiAgIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLA0KKyog
ICBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkNCisqICAgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVA0KKyogICAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRQ0KKyogICBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIDQorKiAgIERBTUFHRS4NCisqDQorKiAgICBQbGVhc2Ugc2VlIGZpbGUgcGF0ZW50bGljZW5z
ZS50eHQgZm9yIGZ1cnRoZXIgZ3JhbnRzLg0KKyogPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorKi8N
CisNCisjaWZuZGVmIENIVFRQQ0FDSEVPQlNFUlZFUl9IDQorI2RlZmluZSBDSFRUUENBQ0hFT0JT
RVJWRVJfSA0KKw0KKy8vICBJTkNMVURFUw0KKyNpbmNsdWRlIDxlMzJiYXNlLmg+DQorI2luY2x1
ZGUgPGYzMmZpbGUuaD4NCisNCisvLyBDT05TVEFOVFMNCisNCisvLyBNQUNST1MNCisNCisvLyBE
QVRBIFRZUEVTDQorDQorLy8gRlVOQ1RJT04gUFJPVE9UWVBFUw0KKw0KKy8vIEZPUldBUkQgREVD
TEFSQVRJT05TDQorY2xhc3MgQ0h0dHBDYWNoZUhhbmRsZXI7DQorDQorLy8gQ0xBU1MgREVDTEFS
QVRJT04NCisNCisvKioNCisqDQorKiAgQGxpYg0KKyogIEBzaW5jZSAzLjENCisqLw0KK05PTlNI
QVJBQkxFX0NMQVNTKENIdHRwQ2FjaGVPYnNlcnZlcikgOiBwdWJsaWMgQ0FjdGl2ZQ0KKyAgICB7
DQorICAgIHB1YmxpYzogIC8vIENvbnN0cnVjdG9ycyBhbmQgZGVzdHJ1Y3Rvcg0KKw0KKyAgICAg
ICAgLyoqDQorICAgICAgICAqIFR3by1waGFzZWQgY29uc3RydWN0b3IuDQorICAgICAgICAqIEBz
aW5jZSAzLjENCisgICAgICAgICogQHBhcmFtDQorICAgICAgICAqIEBwYXJhbQ0KKyAgICAgICAg
KiBAcmV0dXJuIENhY2hlSGFuZGxlciBvYmplY3QuDQorICAgICAgICAqLw0KKyAgICAgICAgc3Rh
dGljIENIdHRwQ2FjaGVPYnNlcnZlciogTmV3TCggY29uc3QgSEJ1ZkMqIGFEaXJlY3RvcnksIGNv
bnN0IEhCdWZDKiBhSW5kZXhGaWxlLA0KKyAgICAgICAgICAgIENIdHRwQ2FjaGVIYW5kbGVyKiBh
SHR0cENhY2hlSGFuZGxlcik7DQorDQorICAgICAgICAvKioNCisgICAgICAgICogRGVzdHJ1Y3Rv
ci4NCisgICAgICAgICovDQorICAgICAgICB2aXJ0dWFsIH5DSHR0cENhY2hlT2JzZXJ2ZXIoKTsN
CisNCisgICAgcHVibGljOiAvLyBuZXcgZnVuY3Rpb25zDQorICAgICAgICB2b2lkIFN0YXJ0T2Jz
ZXJ2ZXIoKTsNCisNCisgICAgcHVibGljOiAvLyBmcm9tIGJhc2UgY2xhc3MgQ0FjdGl2ZQ0KKyAg
ICAgICAgdm9pZCBSdW5MKCk7DQorICAgICAgICBUSW50IFJ1bkVycm9yKFRJbnQgYUVycm9yKTsN
CisgICAgICAgIHZvaWQgRG9DYW5jZWwoKTsNCisNCisgICAgcHJpdmF0ZToNCisNCisgICAgICAg
IC8qKg0KKyAgICAgICAgKiBDb25zdHJ1Y3QuDQorICAgICAgICAqIEBzaW5jZSAzLjENCisgICAg
ICAgICogQHBhcmFtDQorICAgICAgICAqIEBwYXJhbQ0KKyAgICAgICAgKiBAcmV0dXJuIENhY2hl
T2JzZXJ2ZXIgb2JqZWN0Lg0KKyAgICAgICAgKi8NCisgICAgICAgIENIdHRwQ2FjaGVPYnNlcnZl
cihDSHR0cENhY2hlSGFuZGxlciogYUh0dHBDYWNoZUhhbmRsZXIpOw0KKw0KKyAgICAgICAgLyoq
DQorICAgICAgICAqIEJ5IGRlZmF1bHQgU3ltYmlhbiAybmQgcGhhc2UgY29uc3RydWN0b3IgaXMg
cHJpdmF0ZS4NCisgICAgICAgICovDQorICAgICAgICB2b2lkIENvbnN0cnVjdEwoY29uc3QgSEJ1
ZkMqIGFEaXJlY3RvcnksIGNvbnN0IEhCdWZDKiBhSW5kZXhGaWxlKTsNCisNCisgICAgcHJpdmF0
ZTogICAgLy8gRGF0YQ0KKw0KKyAgICAgICAgLy8gbmFtZSBhbmQgcGF0aCBvZiBpbmRleCBmaWxl
DQorICAgICAgICBIQnVmQyogaUZpbGVOYW1lOyAvLyBvd25lZA0KKyAgICAgICAgUkZzIGlGc1Nl
c3Npb247IC8vIG5vdCBvd25lZA0KKyAgICAgICAgQ0h0dHBDYWNoZUhhbmRsZXIqIGlIdHRwQ2Fj
aGVIYW5kbGVyOw0KKyAgICB9Ow0KKw0KKyNlbmRpZiAgICAgIC8vIENIVFRQQ0FDSEVPQlNFUlZF
Ul9IDQorDQorLy8gRW5kIG9mIEZpbGUNCkluZGV4OiBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2Fj
aGVTcmMvSHR0cENhY2hlRW50cnkuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L1Jlc291cmNl
TG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZUVudHJ5LmNwcAkocmV2aXNpb24gMTgyMjEpDQorKysg
V2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZUVudHJ5LmNwcAkod29ya2lu
ZyBjb3B5KQ0KQEAgLTMwNiw0ICszMDYsMjYgQEAgVEludCBDSHR0cENhY2hlRW50cnk6OkV4dGVy
bmFsaXplKA0KICAgICByZXR1cm4gZXJyOw0KICAgICB9DQogDQorLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0NCisvLyBDSHR0cENhY2hlRW50cnk6OkFjY2Vzc2VkDQorLy8NCisvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQ0KKy8vDQordm9pZCBDSHR0cENhY2hlRW50cnk6OkFjY2Vzc2VkKFRJbnQ2NCBh
TGFzdEFjY2Vzc2VkLCBUVWludDE2IGFSZWYpDQorICAgIHsNCisgICAgaUxhc3RBY2Nlc3NlZCA9
IGFMYXN0QWNjZXNzZWQ7DQorICAgIGlSZWYgPSBhUmVmOw0KKyAgICBpZiggaVZpY3RpbSApDQor
ICAgICAgICB7DQorICAgICAgICBpRXZpY3Rpb25IYW5kbGVyLT5BY2Nlc3NlZCggKnRoaXMgKTsN
CisgICAgICAgIH0NCisjaWZkZWYgX19DQUNIRUxPR19fDQorICAgIF9MSVQoIEtBY2Nlc3NGb3Jt
YXQsICJlbnRyeSBhY2Nlc3NlZDogJWQiICk7DQorICAgIFRCdWY8MTAwPiBidWY7DQorICAgIGJ1
Zi5Gb3JtYXQoIEtBY2Nlc3NGb3JtYXQsIGlSZWYgKTsNCisgICAgSHR0cENhY2hlVXRpbDo6V3Jp
dGVVcmxUb0xvZyggMCwgYnVmLCBpVXJsLT5EZXMoKSApOw0KKyNlbmRpZiAvLyBfX0NBQ0hFTE9H
X18NCisNCisgICAgfQ0KKw0KIC8vICBFbmQgb2YgRmlsZQ0KSW5kZXg6IFdlYktpdC9SZXNvdXJj
ZUxvYWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVIYW5kbGVyLmNwcA0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdl
YktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVIYW5kbGVyLmNwcAkocmV2aXNp
b24gMTgyMjEpDQorKysgV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZUhh
bmRsZXIuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNDgsNiArNDgsNyBAQA0KICNpbmNsdWRlICJI
dHRwQ2FjaGVTdHJlYW1IYW5kbGVyLmgiDQogI2luY2x1ZGUgIkh0dHBDYWNoZVV0aWwuaCINCiAj
aW5jbHVkZSAiSHR0cENhY2hlRXZpY3Rpb25IYW5kbGVyLmgiDQorI2luY2x1ZGUgIkh0dHBDYWNo
ZU9ic2VydmVyLmgiDQogI2luY2x1ZGUgPGh0dHBcUkhUVFBUcmFuc2FjdGlvbi5oPg0KICNpbmNs
dWRlIDxodHRwXHJodHRwc2Vzc2lvbi5oPg0KICNpbmNsdWRlIDxodHRwXHJodHRwaGVhZGVycy5o
Pg0KQEAgLTExNSw2ICsxMTYsOSBAQCB2b2lkIENIdHRwQ2FjaGVIYW5kbGVyOjpDb25zdHJ1Y3RM
KA0KICAgICBPcGVuTG9va3VwVGFibGVMKCk7DQogICAgIC8vDQogICAgIGlJZGxlID0gQ0lkbGU6
Ok5ld0woIENBY3RpdmU6OkVQcmlvcml0eUlkbGUgKTsNCisgICAgLy8NCisgICAgaUh0dHBDYWNo
ZU9ic2VydmVyID0gQ0h0dHBDYWNoZU9ic2VydmVyOjpOZXdMKGlEaXJlY3RvcnksIGlJbmRleEZp
bGUsIHRoaXMpOw0KKyAgICBpSHR0cENhY2hlT2JzZXJ2ZXItPlN0YXJ0T2JzZXJ2ZXIoKTsNCiAg
ICAgfQ0KIA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpAQCAtMTM5LDggKzE0MywxMyBAQCBD
SHR0cENhY2hlSGFuZGxlciogQ0h0dHBDYWNoZUhhbmRsZXI6Ok5lDQogLy8gRGVzdHJ1Y3Rvcg0K
IENIdHRwQ2FjaGVIYW5kbGVyOjp+Q0h0dHBDYWNoZUhhbmRsZXIoKQ0KICAgICB7DQotICAgIC8v
IHNhdmUgZW50cnkgdGFibGUNCi0gICAgVFJBUF9JR05PUkUoIFNhdmVMb29rdXBUYWJsZUwoKSAp
Ow0KKyAgICBpZiAoaUlkbGUtPklzQWN0aXZlKCkpDQorICAgICAgICB7DQorICAgICAgICAvLyBz
YXZlIGVudHJ5IHRhYmxlLCBidXQgb25seSBpZiBpdCB3YXMgbW9kaWZpZWQNCisgICAgICAgIFRS
QVBfSUdOT1JFKCBTYXZlTG9va3VwVGFibGVMKCkgKTsNCisgICAgICAgIH0NCisgICAgLy8NCisg
ICAgZGVsZXRlIGlIdHRwQ2FjaGVPYnNlcnZlcjsNCiAgICAgLy8NCiAgICAgaWYgKGlFdmljdGlv
bkhhbmRsZXIpDQogICAgICAgICB7DQpAQCAtMTA2NCw2ICsxMDczLDE2IEBAIFRCb29sIENIdHRw
Q2FjaGVIYW5kbGVyOjpIYW5kbGVSZXNwb25zZU4NCiAvLw0KIHZvaWQgQ0h0dHBDYWNoZUhhbmRs
ZXI6Ok9wZW5Mb29rdXBUYWJsZUwoKQ0KICAgICB7DQorICAgIE9wZW5Mb29rdXBUYWJsZUwoaUxv
b2t1cFRhYmxlKTsNCisgICAgfQ0KKw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ0h0
dHBDYWNoZUhhbmRsZXI6Ok9wZW5Mb29rdXBUYWJsZUwNCisvLw0KKy8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tDQorLy8NCit2b2lkIENIdHRwQ2FjaGVIYW5kbGVyOjpPcGVuTG9va3VwVGFibGVMKENI
dHRwQ2FjaGVMb29rdXBUYWJsZSogYUxvb2t1cFRhYmxlKQ0KKyAgICB7DQogICAgIC8vIHJlYWQg
ZW50cmllcyBmcm9tIGluZGV4LmRhdA0KICAgICBSRmlsZVJlYWRTdHJlYW0gcmVhZFN0cmVhbTsN
CiAgICAgUkZzIGZzOw0KQEAgLTEwODMsMTEgKzExMDIsMjYgQEAgdm9pZCBDSHR0cENhY2hlSGFu
ZGxlcjo6T3Blbkxvb2t1cFRhYmxlTA0KICAgICBpZiggZXJyID09IEtFcnJOb25lICkNCiAgICAg
ICAgIHsNCiAgICAgICAgIGZzLlNldFNlc3Npb25QYXRoKCBpRGlyZWN0b3J5LT5EZXMoKSApOw0K
LQ0KLSAgICAgICAgaWYoIHJlYWRTdHJlYW0uT3BlbiggZnMsIGlJbmRleEZpbGUtPkRlcygpLCBF
RmlsZVJlYWQgKSA9PSBLRXJyTm9uZSApDQorICAgICAgICBUSW50IHJldCA9IEtFcnJOb25lOw0K
KyAgICAgICAgVEludCB0cnlDb3VudCA9IDA7DQorICAgICAgICBmb3IgKHRyeUNvdW50ID0gMDsg
dHJ5Q291bnQgPCA1OyB0cnlDb3VudCsrKSANCisgICAgICAgICAgICB7DQorICAgICAgICAgICAg
cmV0ID0gcmVhZFN0cmVhbS5PcGVuKCBmcywgaUluZGV4RmlsZS0+RGVzKCksIEVGaWxlUmVhZCB8
IEVGaWxlU2hhcmVBbnkgKTsNCisgICAgICAgICAgICBpZiAocmV0ID09IEtFcnJJblVzZSkNCisg
ICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICAvLyBXaGVuIHRoZSBjYWNoZSBpcyBm
dWxsLCBpdCB0YWtlcyA2NSAtIDg1IG1pbGlzZWNvbmRzIHRvIHdyaXRlIHRoZSBpbmRleC4NCisg
ICAgICAgICAgICAgICAgLy8gU28gd2FpdCA1MCBtaWxpc2Vjb25kcyBhbmQgdHJ5IGFnYWluDQor
ICAgICAgICAgICAgICAgIFVzZXI6OkFmdGVyKDUwMDAwKTsNCisgICAgICAgICAgICAgICAgfQ0K
KyAgICAgICAgICAgIGVsc2UNCisgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICBi
cmVhazsNCisgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIH0NCisgICAgICAgIGlmKCBy
ZXQgPT0gS0Vyck5vbmUgKQ0KICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICBDbGVhbnVwQ2xv
c2VQdXNoTCggcmVhZFN0cmVhbSApOw0KLSAgICAgICAgICAgIGlMb29rdXBUYWJsZS0+SW50ZXJu
YWxpemVMKCByZWFkU3RyZWFtLCBpRGlyZWN0b3J5LT5EZXMoKSApOw0KKyAgICAgICAgICAgIGFM
b29rdXBUYWJsZS0+SW50ZXJuYWxpemVMKCByZWFkU3RyZWFtLCBpRGlyZWN0b3J5LT5EZXMoKSAp
Ow0KICAgICAgICAgICAgIENsZWFudXBTdGFjazo6UG9wQW5kRGVzdHJveSgpOyAvLyByZWFkU3Ry
ZWFtDQogICAgICAgICAgICAgfQ0KICAgICAgICAgfQ0KQEAgLTExMDcsMTAgKzExNDEsMjYgQEAg
dm9pZCBDSHR0cENhY2hlSGFuZGxlcjo6U2F2ZUxvb2t1cFRhYmxlTA0KICAgICBSRnMgZnM7DQog
ICAgIFVzZXI6OkxlYXZlSWZFcnJvciggZnMuQ29ubmVjdCgpICk7DQogICAgIENsZWFudXBDbG9z
ZVB1c2hMKCBmcyApOw0KLQ0KICAgICBmcy5TZXRTZXNzaW9uUGF0aCggaURpcmVjdG9yeS0+RGVz
KCkgKTsNCi0NCi0gICAgaWYoIHdyaXRlU3RyZWFtLlJlcGxhY2UoIGZzLCBpSW5kZXhGaWxlLT5E
ZXMoKSwgRUZpbGVXcml0ZSApID09IEtFcnJOb25lICkNCisgICAgLy8gRG9uJ3QgZ2V0IG5vdGlm
aWVkIGFib3V0IG93biBjaGFuZ2VzDQorICAgIGlIdHRwQ2FjaGVPYnNlcnZlci0+Q2FuY2VsKCk7
DQorICAgIFRJbnQgcmV0ID0gS0Vyck5vbmU7DQorICAgIFRJbnQgdHJ5Q291bnQgPSAwOw0KKyAg
ICBmb3IgKHRyeUNvdW50ID0gMDsgdHJ5Q291bnQgPCA1OyB0cnlDb3VudCsrKSANCisgICAgICAg
IHsNCisgICAgICAgIHJldCA9IHdyaXRlU3RyZWFtLlJlcGxhY2UoIGZzLCBpSW5kZXhGaWxlLT5E
ZXMoKSwgRUZpbGVXcml0ZSApOw0KKyAgICAgICAgaWYgKHJldCA9PSBLRXJySW5Vc2UpDQorICAg
ICAgICAgICAgew0KKyAgICAgICAgICAgIC8vIFdoZW4gdGhlIGNhY2hlIGlzIGZ1bGwsIGl0IHRh
a2VzIDY1IC0gODUgbWlsaXNlY29uZHMgdG8gd3JpdGUgdGhlIGluZGV4Lg0KKyAgICAgICAgICAg
IC8vIFNvIHdhaXQgNTAgbWlsaXNlY29uZHMgYW5kIHRyeSBhZ2Fpbg0KKyAgICAgICAgICAgIFVz
ZXI6OkFmdGVyKDUwMDAwKTsNCisgICAgICAgICAgICB9DQorICAgICAgICBlbHNlDQorICAgICAg
ICAgICAgew0KKyAgICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgIH0N
CisgICAgaWYoIHJldCA9PSBLRXJyTm9uZSApDQogICAgICAgICB7DQogICAgICAgICBDbGVhbnVw
Q2xvc2VQdXNoTCggd3JpdGVTdHJlYW0gKTsNCiAgICAgICAgIGlMb29rdXBUYWJsZS0+RXh0ZXJu
YWxpemVMKCB3cml0ZVN0cmVhbSApOw0KQEAgLTExMTgsNiArMTE2OCw3IEBAIHZvaWQgQ0h0dHBD
YWNoZUhhbmRsZXI6OlNhdmVMb29rdXBUYWJsZUwNCiAgICAgICAgIENsZWFudXBTdGFjazo6UG9w
QW5kRGVzdHJveSgpOyAvLyB3cml0ZVN0cmVhbQ0KICAgICAgICAgfQ0KICAgICBDbGVhbnVwU3Rh
Y2s6OlBvcEFuZERlc3Ryb3koKTsgLy8gZnMNCisgICAgaUh0dHBDYWNoZU9ic2VydmVyLT5TdGFy
dE9ic2VydmVyKCk7DQogICAgIH0NCiANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQEAgLTEy
NDgsNCArMTI5OSwzNSBAQCBUSW50IENIdHRwQ2FjaGVIYW5kbGVyOjpEb0JhY2tncm91bmRTYXZl
DQogICAgIHJldHVybiBLRXJyTm9uZTsNCiAgICAgfQ0KIA0KKw0KKy8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tDQorLy8gQ0h0dHBDYWNoZUhhbmRsZXI6OlVwZGF0ZUxvb2t1cFRhYmxlDQorLy8NCisv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vDQordm9pZCBDSHR0cENhY2hlSGFuZGxlcjo6VXBk
YXRlTG9va3VwVGFibGUoKQ0KKyAgICB7DQorICAgIFRSQVBfSUdOT1JFKFVwZGF0ZUxvb2t1cFRh
YmxlTCgpKTsNCisgICAgaUh0dHBDYWNoZU9ic2VydmVyLT5TdGFydE9ic2VydmVyKCk7DQorICAg
IH0NCisNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRwQ2FjaGVIYW5kbGVyOjpV
cGRhdGVMb29rdXBUYWJsZUwNCisvLw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8NCit2
b2lkIENIdHRwQ2FjaGVIYW5kbGVyOjpVcGRhdGVMb29rdXBUYWJsZUwoKQ0KKyAgICB7DQorICAg
IENIdHRwQ2FjaGVFdmljdGlvbkhhbmRsZXIqIGV2aWN0aW9uSGFuZGxlciA9IENIdHRwQ2FjaGVF
dmljdGlvbkhhbmRsZXI6Ok5ld0woKTsNCisgICAgQ2xlYW51cFN0YWNrOjpQdXNoTChldmljdGlv
bkhhbmRsZXIpOw0KKyAgICBDSHR0cENhY2hlTG9va3VwVGFibGUqIGxvb2t1cFRhYmxlID0gQ0h0
dHBDYWNoZUxvb2t1cFRhYmxlOjpOZXdMKCAqZXZpY3Rpb25IYW5kbGVyLCAqaVN0cmVhbUhhbmRs
ZXIgKTsNCisgICAgQ2xlYW51cFN0YWNrOjpQdXNoTChsb29rdXBUYWJsZSk7DQorICAgIE9wZW5M
b29rdXBUYWJsZUwobG9va3VwVGFibGUpOw0KKyAgICBSRnMgcmZzOw0KKyAgICBVc2VyOjpMZWF2
ZUlmRXJyb3IocmZzLkNvbm5lY3QoKSk7DQorICAgIENsZWFudXBDbG9zZVB1c2hMKHJmcyk7DQor
ICAgIHJmcy5TZXRTZXNzaW9uUGF0aCggaURpcmVjdG9yeS0+RGVzKCkgKTsNCisgICAgaUxvb2t1
cFRhYmxlLT5NZXJnZUwobG9va3VwVGFibGUsIHJmcyk7DQorICAgIENsZWFudXBTdGFjazo6UG9w
QW5kRGVzdHJveSgzKTsgLy8gcmZzLCBsb29rdXBUYWJsZSwgZXZpY3Rpb25IYW5kbGVyDQorICAg
IH0NCiAvLyAgRW5kIG9mIEZpbGUNCkluZGV4OiBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVT
cmMvSHR0cENhY2hlTG9va3VwVGFibGUuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L1Jlc291
cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZUxvb2t1cFRhYmxlLmNwcAkocmV2aXNpb24gMTgy
MjEpDQorKysgV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZUxvb2t1cFRh
YmxlLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTQ2LDcgKzQ2LDYgQEANCiAjaW5jbHVkZSAiSHR0
cENhY2hlVXRpbC5oIg0KICNpbmNsdWRlICJIdHRwQ2FjaGVFdmljdGlvbkhhbmRsZXIuaCINCiAj
aW5jbHVkZSAiSHR0cENhY2hlU3RyZWFtSGFuZGxlci5oIg0KLSNpbmNsdWRlIDxzMzJmaWxlLmg+
DQogDQogLy8gRVhURVJOQUwgREFUQSBTVFJVQ1RVUkVTDQogDQpAQCAtNjcyLDUgKzY3MSw3MiBA
QCBUQm9vbCBDSHR0cENhY2hlTG9va3VwVGFibGU6OkJvdW5kYXJ5Q2hlDQogICAgIFRJbnQgYVBv
cyApDQogICAgIHsNCiAgICAgcmV0dXJuICggYVBvcyA+PSAwICYmIGFQb3MgPCBpRW50cmllcy0+
Q291bnQoKSApOw0KKyAgICB9DQorDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBDSHR0
cENhY2hlTG9va3VwVGFibGU6Ok1lcmdlTA0KKy8vDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N
CisvLw0KK3ZvaWQgQ0h0dHBDYWNoZUxvb2t1cFRhYmxlOjpNZXJnZUwoIENIdHRwQ2FjaGVMb29r
dXBUYWJsZSogYUh0dHBDYWNoZUxvb2t1cFRhYmxlLCBSRnMgYVJmcyApDQorICAgIHsNCisgICAg
VEludCBteUNvdW50ID0gaUVudHJpZXMtPkNvdW50KCk7DQorICAgIFRJbnQgaSA9IDA7DQorICAg
IGZvciAoaSA9IG15Q291bnQgLSAxOyBpID49IDA7IGktLSkNCisgICAgICAgIHsNCisgICAgICAg
IGlmICggVmFsaWQoIGkgKSApDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgIENIdHRwQ2Fj
aGVFbnRyeSogZW50cnkgPSBpRW50cmllcy0+QXQoaSk7DQorICAgICAgICAgICAgQ0h0dHBDYWNo
ZUVudHJ5KiBuZXdFbnRyeSA9IGFIdHRwQ2FjaGVMb29rdXBUYWJsZS0+RmluZChlbnRyeS0+VXJs
KCkpOw0KKyAgICAgICAgICAgIGlmIChuZXdFbnRyeSkNCisgICAgICAgICAgICAgICAgew0KKyAg
ICAgICAgICAgICAgICAvLyBFbnRyeSBpcyBpbiB0aGUgbmV3IGluZGV4IGZpbGUNCisgICAgICAg
ICAgICAgICAgaWYgKG5ld0VudHJ5LT5MYXN0QWNjZXNzZWQoKSA+IGVudHJ5LT5MYXN0QWNjZXNz
ZWQoKSkNCisgICAgICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgICAgIGVudHJ5
LT5BY2Nlc3NlZChuZXdFbnRyeS0+TGFzdEFjY2Vzc2VkKCksIG5ld0VudHJ5LT5SZWYoKSk7DQor
ICAgICAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgIFRJbnQgcG9zID0gYUh0dHBD
YWNoZUxvb2t1cFRhYmxlLT5Qcm9iZShuZXdFbnRyeS0+VXJsKCksIEVGYWxzZSk7DQorICAgICAg
ICAgICAgICAgIGlmIChhSHR0cENhY2hlTG9va3VwVGFibGUtPlZhbGlkKHBvcykpDQorICAgICAg
ICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgICAgICBhSHR0cENhY2hlTG9va3VwVGFi
bGUtPlNldERlbGV0ZWQocG9zKTsNCisgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBuZXdFbnRy
eTsNCisgICAgICAgICAgICAgICAgICAgIGFIdHRwQ2FjaGVMb29rdXBUYWJsZS0+aUNvdW50LS07
DQorICAgICAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAg
ICBlbHNlIC8vIChuZXdFbnRyeSkNCisgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAg
ICAvLyBFbnRyeSBpcyBub3QgaW4gdGhlIG5ldyBpbmRleCBmaWxlDQorICAgICAgICAgICAgICAg
IFRVaW50IGF0dDsNCisgICAgICAgICAgICAgICAgaWYgKGFSZnMuQXR0KGVudHJ5LT5GaWxlbmFt
ZSgpLCBhdHQpICE9IEtFcnJOb25lKQ0KKyAgICAgICAgICAgICAgICAgICAgew0KKyAgICAgICAg
ICAgICAgICAgICAgVEludCB0aGVQb3MgPSBQcm9iZShlbnRyeS0+VXJsKCksIEVGYWxzZSk7DQor
ICAgICAgICAgICAgICAgICAgICBpZiAoVmFsaWQodGhlUG9zKSkNCisgICAgICAgICAgICAgICAg
ICAgICAgICB7DQorICAgICAgICAgICAgICAgICAgICAgICAgRXJhc2UodGhlUG9zKTsNCisgICAg
ICAgICAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgICAgICB9DQorICAgICAgICAg
ICAgICAgIH0NCisgICAgICAgICAgICB9DQorICAgICAgICB9DQorDQorICAgIFRJbnQgbmV3Q291
bnQgPSBhSHR0cENhY2hlTG9va3VwVGFibGUtPmlFbnRyaWVzLT5Db3VudCgpOw0KKyAgICBmb3Ig
KGkgPSBuZXdDb3VudCAtIDE7IGkgPj0gMDsgaS0tKQ0KKyAgICAgICAgew0KKyAgICAgICAgaWYg
KCBhSHR0cENhY2hlTG9va3VwVGFibGUtPlZhbGlkKCBpICkgKQ0KKyAgICAgICAgICAgIHsNCisg
ICAgICAgICAgICBDSHR0cENhY2hlRW50cnkqIG5ld0VudHJ5ID0gYUh0dHBDYWNoZUxvb2t1cFRh
YmxlLT5pRW50cmllcy0+QXQoaSk7DQorICAgICAgICAgICAgVEludCBwb3MgPSBhSHR0cENhY2hl
TG9va3VwVGFibGUtPlByb2JlKG5ld0VudHJ5LT5VcmwoKSwgRUZhbHNlKTsNCisgICAgICAgICAg
ICBUVWludCBhdHQ7DQorICAgICAgICAgICAgaWYgKGFSZnMuQXR0KG5ld0VudHJ5LT5GaWxlbmFt
ZSgpLCBhdHQpID09IEtFcnJOb25lKQ0KKyAgICAgICAgICAgICAgICB7DQorICAgICAgICAgICAg
ICAgIENIdHRwQ2FjaGVFbnRyeSogbXlFbnRyeSA9IEluc2VydEwobmV3RW50cnktPlVybCgpKTsN
CisgICAgICAgICAgICAgICAgbXlFbnRyeS0+U2V0U3RhdGUoIENIdHRwQ2FjaGVFbnRyeTo6RUNh
Y2hlQ29tcGxldGUgKTsNCisgICAgICAgICAgICAgICAgbXlFbnRyeS0+QWNjZXNzZWQobmV3RW50
cnktPkxhc3RBY2Nlc3NlZCgpLCBuZXdFbnRyeS0+UmVmKCkpOw0KKyAgICAgICAgICAgICAgICB9
ICAgICAgICAgIA0KKyAgICAgICAgICAgIGFIdHRwQ2FjaGVMb29rdXBUYWJsZS0+U2V0RGVsZXRl
ZChwb3MpOw0KKyAgICAgICAgICAgIGRlbGV0ZSBuZXdFbnRyeTsNCisgICAgICAgICAgICBhSHR0
cENhY2hlTG9va3VwVGFibGUtPmlDb3VudC0tOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgIH0N
CiAgICAgfQ0KIC8vICBFbmQgb2YgRmlsZQ0KSW5kZXg6IFdlYktpdC9SZXNvdXJjZUxvYWRlci9D
YWNoZVNyYy9IdHRwQ2FjaGVPYnNlcnZlci5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvUmVz
b3VyY2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hlT2JzZXJ2ZXIuY3BwCShyZXZpc2lvbiAwKQ0K
KysrIFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVPYnNlcnZlci5jcHAJ
KHJldmlzaW9uIDApDQpAQCAtMCwwICsxLDE2MCBAQA0KKy8qDQorKiA9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0NCisqICBOYW1lICAgICAgICA6IEh0dHBDYWNoZU9ic2VydmVyLmNwcA0KKyogIFBhcnQg
b2YgICAgIDogV2ViS2l0IC8gUmVzb3VyY2VMb2FkZXINCisqICBJbnRlcmZhY2UgICA6DQorKiAg
RGVzY3JpcHRpb24gOiBJbXBsZW1lbnRhdGlvbiBvZiBDSHR0cENhY2hlT2JzZXJ2ZXINCisqICBW
ZXJzaW9uICAgICA6ICVWZXJzaW9uJQ0KKyoNCisqICAgIENvcHlyaWdodCAoYykgMjAwNiwgTm9r
aWEgQ29ycG9yYXRpb24NCisqICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQorKg0KKyogICBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQNCisqICAgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zDQorKiAgIGFyZSBtZXQ6DQorKg0KKyogICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
DQorKiAgICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLg0KKyogICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0DQorKiAgICAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluDQor
KiAgICAgICAgdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQ0KKyogICAgICAgIGRpc3RyaWJ1dGlvbi4NCisqICAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIHRoZSBOb2tpYSBDb3Jwb3JhdGlvbiBub3IgdGhlIG5hbWVzIG9mIGl0cw0KKyog
ICAgICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZA0KKyogICAgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4NCisqDQorKiAgIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMNCisqICAg
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QNCisqICAgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SDQorKiAgIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUDQorKiAgIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLA0KKyogICBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UDQorKiAgIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLA0KKyogICBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkNCisqICAgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVA0KKyogICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRQ0KKyogICBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIDQorKiAgIERB
TUFHRS4NCisqDQorKiAgICBQbGVhc2Ugc2VlIGZpbGUgcGF0ZW50bGljZW5zZS50eHQgZm9yIGZ1
cnRoZXIgZ3JhbnRzLg0KKyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorKi8NCisNCisvLyBJTkNM
VURFIEZJTEVTDQorI2luY2x1ZGUgIkh0dHBDYWNoZU9ic2VydmVyLmgiDQorI2luY2x1ZGUgIkh0
dHBDYWNoZUhhbmRsZXIuaCINCisNCisNCisvLyBFWFRFUk5BTCBEQVRBIFNUUlVDVFVSRVMNCisN
CisvLyBFWFRFUk5BTCBGVU5DVElPTiBQUk9UT1RZUEVTDQorDQorLy8gQ09OU1RBTlRTDQorDQor
Ly8gTUFDUk9TDQorDQorLy8gTE9DQUwgQ09OU1RBTlRTIEFORCBNQUNST1MNCisNCisvLyBNT0RV
TEUgREFUQSBTVFJVQ1RVUkVTDQorDQorLy8gTE9DQUwgRlVOQ1RJT04gUFJPVE9UWVBFUw0KKw0K
Ky8vIEZPUldBUkQgREVDTEFSQVRJT05TDQorDQorDQorLy8gPT09PT09PT09PT09PT09PT09PT09
PT09PT09PSBNRU1CRVIgRlVOQ1RJT05TID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
CisNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRwQ2FjaGVPYnNlcnZlcjo6Q0h0
dHBDYWNoZU9ic2VydmVyDQorLy8gQysrIGRlZmF1bHQgY29uc3RydWN0b3IgY2FuIE5PVCBjb250
YWluIGFueSBjb2RlLCB0aGF0DQorLy8gbWlnaHQgbGVhdmUuDQorLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0NCisvLw0KK0NIdHRwQ2FjaGVPYnNlcnZlcjo6Q0h0dHBDYWNoZU9ic2VydmVyKENIdHRw
Q2FjaGVIYW5kbGVyKiBhSHR0cENhY2hlSGFuZGxlcikgOiBDQWN0aXZlKCBDQWN0aXZlOjpFUHJp
b3JpdHlJZGxlICksDQoraUh0dHBDYWNoZUhhbmRsZXIoYUh0dHBDYWNoZUhhbmRsZXIpDQorICAg
IHsNCisgICAgQ0FjdGl2ZVNjaGVkdWxlcjo6QWRkKHRoaXMpOw0KKyAgICB9DQorDQorLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0NCisvLyBDSHR0cENhY2hlT2JzZXJ2ZXI6OkNvbnN0cnVjdEwNCisv
LyBTeW1iaWFuIDJuZCBwaGFzZSBjb25zdHJ1Y3RvciBjYW4gbGVhdmUuDQorLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0NCisvLw0KK3ZvaWQgQ0h0dHBDYWNoZU9ic2VydmVyOjpDb25zdHJ1Y3RMKGNv
bnN0IEhCdWZDKiBhRGlyZWN0b3J5LCBjb25zdCBIQnVmQyogYUluZGV4RmlsZSkNCisgICAgew0K
KyAgICBVc2VyOjpMZWF2ZUlmRXJyb3IoaUZzU2Vzc2lvbi5Db25uZWN0KCkpOw0KKyAgICBpRmls
ZU5hbWUgPSBIQnVmQzo6TmV3TChhRGlyZWN0b3J5LT5MZW5ndGgoKSArIGFJbmRleEZpbGUtPkxl
bmd0aCgpKTsNCisgICAgaUZpbGVOYW1lLT5EZXMoKS5Db3B5KCphRGlyZWN0b3J5KTsNCisgICAg
aUZpbGVOYW1lLT5EZXMoKS5BcHBlbmQoKmFJbmRleEZpbGUpOw0KKyAgICB9DQorDQorLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0NCisvLyBDSHR0cENhY2hlT2JzZXJ2ZXI6Ok5ld0wNCisvLyBUd28t
cGhhc2VkIGNvbnN0cnVjdG9yLg0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8NCitDSHR0
cENhY2hlT2JzZXJ2ZXIqIENIdHRwQ2FjaGVPYnNlcnZlcjo6TmV3TCggY29uc3QgSEJ1ZkMqIGFE
aXJlY3RvcnksIGNvbnN0IEhCdWZDKiBhSW5kZXhGaWxlLA0KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENIdHRwQ2FjaGVIYW5kbGVyKiBh
SHR0cENhY2hlSGFuZGxlcikNCisgICAgew0KKyAgICBDSHR0cENhY2hlT2JzZXJ2ZXIqIHNlbGYg
PSBuZXcoIEVMZWF2ZSApIENIdHRwQ2FjaGVPYnNlcnZlcihhSHR0cENhY2hlSGFuZGxlcik7DQor
ICAgIENsZWFudXBTdGFjazo6UHVzaEwoIHNlbGYgKTsNCisgICAgc2VsZi0+Q29uc3RydWN0TChh
RGlyZWN0b3J5LCBhSW5kZXhGaWxlKTsNCisgICAgQ2xlYW51cFN0YWNrOjpQb3AoKTsNCisgICAg
cmV0dXJuIHNlbGY7DQorICAgIH0NCisNCisvLyBEZXN0cnVjdG9yDQorQ0h0dHBDYWNoZU9ic2Vy
dmVyOjp+Q0h0dHBDYWNoZU9ic2VydmVyKCkNCisgICAgew0KKyAgICBDYW5jZWwoKTsNCisgICAg
ZGVsZXRlIGlGaWxlTmFtZTsNCisgICAgaUZzU2Vzc2lvbi5DbG9zZSgpOw0KKyAgICB9DQorDQor
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBDSHR0cENhY2hlT2JzZXJ2ZXI6OlJ1bkwNCisv
Lw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8NCit2b2lkIENIdHRwQ2FjaGVPYnNlcnZl
cjo6UnVuTCgpDQorICAgIHsNCisgICAgaUh0dHBDYWNoZUhhbmRsZXItPlVwZGF0ZUxvb2t1cFRh
YmxlKCk7DQorICAgIH0NCisNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRwQ2Fj
aGVPYnNlcnZlcjo6UnVuRXJyb3INCisvLw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8N
CitUSW50IENIdHRwQ2FjaGVPYnNlcnZlcjo6UnVuRXJyb3IoVEludCAvKmFFcnJvciovKQ0KKyAg
ICB7DQorICAgIHJldHVybiBLRXJyTm9uZTsNCisgICAgfQ0KKw0KKy8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tDQorLy8gQ0h0dHBDYWNoZU9ic2VydmVyOjpEb0NhbmNlbA0KKy8vDQorLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0NCisvLw0KK3ZvaWQgQ0h0dHBDYWNoZU9ic2VydmVyOjpEb0NhbmNlbCgp
DQorICAgIHsNCisgICAgaUZzU2Vzc2lvbi5Ob3RpZnlDaGFuZ2VDYW5jZWwoaVN0YXR1cyk7DQor
ICAgIH0NCisNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRwQ2FjaGVPYnNlcnZl
cjo6U3RhcnRPYnNlcnZlcg0KKy8vDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLw0KK3Zv
aWQgQ0h0dHBDYWNoZU9ic2VydmVyOjpTdGFydE9ic2VydmVyKCkNCisgICAgew0KKyAgICBpZiAo
IUlzQWN0aXZlKCkpDQorICAgICAgICB7DQorICAgICAgICBpRnNTZXNzaW9uLk5vdGlmeUNoYW5n
ZShFTm90aWZ5V3JpdGUsIGlTdGF0dXMsICppRmlsZU5hbWUpOw0KKyAgICAgICAgU2V0QWN0aXZl
KCk7DQorICAgICAgICB9DQorICAgIH0NCisNCisNCisvLyAgRW5kIG9mIEZpbGUNCkluZGV4OiBX
ZWJLaXQvZ3JvdXAvQnJvd3NlckNhY2hlLm1tcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9ncm91
cC9Ccm93c2VyQ2FjaGUubW1wCShyZXZpc2lvbiAxODIyMSkNCisrKyBXZWJLaXQvZ3JvdXAvQnJv
d3NlckNhY2hlLm1tcAkod29ya2luZyBjb3B5KQ0KQEAgLTY2LDYgKzY2LDcgQEAgU09VUkNFICAg
ICAgICBIdHRwQ2FjaGVNYW5hZ2VyLmNwcA0KIFNPVVJDRSAgICAgICAgSHR0cENhY2hlRW50cnku
Y3BwDQogU09VUkNFICAgICAgICBIdHRwQ2FjaGVFdmljdGlvbkhhbmRsZXIuY3BwDQogU09VUkNF
ICAgICAgICBIdHRwQ2FjaGVIYW5kbGVyLmNwcA0KK1NPVVJDRSAgICAgICAgSHR0cENhY2hlT2Jz
ZXJ2ZXIuY3BwDQogU09VUkNFICAgICAgICBIdHRwQ2FjaGVMb29rdXBUYWJsZS5jcHANCiBTT1VS
Q0UgICAgICAgIEh0dHBDYWNoZVN0cmVhbUhhbmRsZXIuY3BwDQogU09VUkNFICAgICAgICBIdHRw
Q2FjaGVVdGlsLmNwcA0K
</data>
<flag name="review"
          id="4351"
          type_id="1"
          status="+"
          setter="Sachin.Padma"
    />
          </attachment>
      

    </bug>

</bugzilla>