<?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>188251</bug_id>
          
          <creation_ts>2018-08-01 22:18:13 -0700</creation_ts>
          <short_desc>[iOS] Keyboard becomes unresponsive after pressing delete while pressing down on a character key with accents</short_desc>
          <delta_ts>2018-08-02 11:32:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1447176</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-08-01 22:18:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/37842108&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447177</commentid>
    <comment_count>1</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-08-01 22:20:05 -0700</bug_when>
    <thetext>This following code:

- (void)handleKeyWebEvent:(::WebEvent *)theEvent withCompletionHandler:(void (^)(::WebEvent *theEvent, BOOL wasHandled))completionHandler
{
    _keyWebEventHandler = [completionHandler copy];
    _page-&gt;handleKeyboardEvent(NativeWebKeyboardEvent(theEvent));
}

- (void)_didHandleKeyEvent:(::WebEvent *)event eventWasHandled:(BOOL)eventWasHandled
{
    if (_keyWebEventHandler) {
        _keyWebEventHandler(event, eventWasHandled);
        [_keyWebEventHandler release];
        _keyWebEventHandler = nil;
        return;
    }

…

}

...is not robust in the case where the key event completion handler calls back into -handleKeyWebEvent:withCompletionHandler:, since we&apos;ll just end up stomping over the newly stored completion block in the next line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447193</commentid>
    <comment_count>2</comment_count>
      <attachid>346360</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-08-01 23:32:16 -0700</bug_when>
    <thetext>Created attachment 346360
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447238</commentid>
    <comment_count>3</comment_count>
      <attachid>346380</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-08-02 08:02:07 -0700</bug_when>
    <thetext>Created attachment 346380
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447288</commentid>
    <comment_count>4</comment_count>
      <attachid>346380</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-08-02 11:05:33 -0700</bug_when>
    <thetext>Comment on attachment 346380
Patch

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447303</commentid>
    <comment_count>5</comment_count>
      <attachid>346380</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-02 11:32:29 -0700</bug_when>
    <thetext>Comment on attachment 346380
Patch

Clearing flags on attachment: 346380

Committed r234504: &lt;https://trac.webkit.org/changeset/234504&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447304</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-02 11:32:31 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346360</attachid>
            <date>2018-08-01 23:32:16 -0700</date>
            <delta_ts>2018-08-02 08:02:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188251-20180801233216.patch</filename>
            <type>text/plain</type>
            <size>23427</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE4MzhjYjNkZGVkOWEzYzc5
NGIwM2VkNjNhODgwYjlmZTljMzhlYTIuLjg1NWIzMGZkMWVmY2EyMTZlNDRkNWUwMDFkYzQ1Yjc2
YTI2N2NiMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTgtMDgtMDEgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gS2V5Ym9hcmQg
YmVjb21lcyB1bnJlc3BvbnNpdmUgYWZ0ZXIgcHJlc3NpbmcgZGVsZXRlIHdoaWxlIHByZXNzaW5n
IGRvd24gb24gYSBjaGFyYWN0ZXIga2V5IHdpdGggYWNjZW50cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4MjUxCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8zNzg0MjEwOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBGaXhlcyBhIGJ1ZyBpbiBrZXkgZXZlbnQgaGFuZGxpbmcgd2hlcmUgaW52b2tpbmcg
LWhhbmRsZUtleVdlYkV2ZW50OndpdGhDb21wbGV0aW9uSGFuZGxlcjogZnJvbSB3aXRoaW4gdGhl
CisgICAgICAgIGNvbXBsZXRpb24gY2FsbGJhY2sgb2YgYSBwcmV2aW91cyBjYWxsIHRvIC1oYW5k
bGVLZXlXZWJFdmVudDp3aXRoQ29tcGxldGlvbkhhbmRsZXI6IHdvdWxkIGNhdXNlIHRoZSBjb21w
bGV0aW9uCisgICAgICAgIGNhbGxiYWNrIHRvIGJlIGNsZWFyZWQgb3V0IHByZW1hdHVyZWx5LiBJ
biBzb21lIGNhc2VzIChhcyBkZXNjcmliZWQgaW4gdGhlIHRpdGxlIG9mIHRoaXMgYnVnKSwgVUlL
aXQgZXhlcmNpc2VzCisgICAgICAgIHRoaXMgY29kZXBhdGggYW5kIHN1YnNlcXVlbnRseSBoYW5n
cyBkdWUgdG8gdGhlaXIgY29tcGxldGlvbiBibG9jayBuZXZlciBnZXR0aW5nIGludm9rZWQgYnkg
V2ViS2l0LgorCisgICAgICAgIFRlc3Q6IEtleWJvYXJkSW5wdXRUZXN0cy5DYW5IYW5kbGVLZXlF
dmVudEluQ29tcGxldGlvbkhhbmRsZXIKKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgaGFuZGxlS2V5V2Vi
RXZlbnQ6d2l0aENvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3
IF9kaWRIYW5kbGVLZXlFdmVudDpldmVudFdhc0hhbmRsZWQ6XSk6CisKIDIwMTgtMDgtMDEgIFph
biBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtDb29yZEdyYXBo
aWNzXSBNb3ZlIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlIHRvIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApp
bmRleCBmOGU0NTg0ZWJlZmM4ZDhiOGU3MjYyZWI4ZmM0MDBiNjFkY2QxNDU3Li41NTAxZmEzNjAx
NGE1OTE3NzQ5NjQ3MjRhZDA2ZmI0YTc2M2M2MTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC05Miw3ICs5
Miw2IEBAIHR5cGVkZWYgdm9pZCAoXlVJV0tBdXRvY29ycmVjdGlvbkNvbnRleHRIYW5kbGVyKShV
SVdLQXV0b2NvcnJlY3Rpb25Db250ZXh0ICphdXRvCiB0eXBlZGVmIHZvaWQgKF5VSVdLRGljdGF0
aW9uQ29udGV4dEhhbmRsZXIpKE5TU3RyaW5nICpzZWxlY3RlZFRleHQsIE5TU3RyaW5nICpiZWZv
cmVUZXh0LCBOU1N0cmluZyAqYWZ0ZXJUZXh0KTsKIHR5cGVkZWYgdm9pZCAoXlVJV0tTZWxlY3Rp
b25Db21wbGV0aW9uSGFuZGxlcikodm9pZCk7CiB0eXBlZGVmIHZvaWQgKF5VSVdLU2VsZWN0aW9u
V2l0aERpcmVjdGlvbkNvbXBsZXRpb25IYW5kbGVyKShCT09MIHNlbGVjdGlvbkVuZElzTW92aW5n
KTsKLXR5cGVkZWYgdm9pZCAoXlVJV0tLZXlXZWJFdmVudENvbXBsZXRpb25IYW5kbGVyKSg6Oldl
YkV2ZW50ICp0aGVFdmVudCwgQk9PTCB3YXNIYW5kbGVkKTsKIAogdHlwZWRlZiBCbG9ja1B0cjx2
b2lkKFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24pPiBJbnRlcmFjdGlv
bkluZm9ybWF0aW9uQ2FsbGJhY2s7CiB0eXBlZGVmIHN0ZDo6cGFpcjxXZWJLaXQ6OkludGVyYWN0
aW9uSW5mb3JtYXRpb25SZXF1ZXN0LCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQ2FsbGJhY2s+IElu
dGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0QW5kQ2FsbGJhY2s7CkBAIC0yMDEsNyArMjAwLDcg
QEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsKICAgICBXZWJLaXQ6OkFzc2lzdGVkTm9k
ZUluZm9ybWF0aW9uIF9hc3Npc3RlZE5vZGVJbmZvcm1hdGlvbjsKICAgICBSZXRhaW5QdHI8TlNP
YmplY3Q8V0tGb3JtUGVyaXBoZXJhbD4+IF9pbnB1dFBlcmlwaGVyYWw7CiAgICAgUmV0YWluUHRy
PFVJRXZlbnQ+IF91aUV2ZW50QmVpbmdSZXNlbnQ7Ci0gICAgVUlXS0tleVdlYkV2ZW50Q29tcGxl
dGlvbkhhbmRsZXIgX2tleVdlYkV2ZW50SGFuZGxlcjsKKyAgICBCbG9ja1B0cjx2b2lkKDo6V2Vi
RXZlbnQgKiwgQk9PTCk+IF9rZXlXZWJFdmVudEhhbmRsZXI7CiAKICAgICBDR1BvaW50IF9sYXN0
SW50ZXJhY3Rpb25Mb2NhdGlvbjsKICAgICB1aW50NjRfdCBfbGF5ZXJUcmVlVHJhbnNhY3Rpb25J
ZEF0TGFzdFRvdWNoU3RhcnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBhMWE0ZGM4YjYwNTZhOGZlNmQ2
OTQzMGQwZDQ2NjllMWNlNjcwMDgyLi40YzA4ZmE1ODhhMTZjZGZiNDJhY2EyZjQxMjllZTc2ZGNj
NTU0OGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTM2NDMsMTYgKzM2NDMsMTQgQEAgc3RhdGljIE5T
U3RyaW5nICpjb250ZW50VHlwZUZyb21GaWVsZE5hbWUoV2ViQ29yZTo6QXV0b2ZpbGxGaWVsZE5h
bWUgZmllbGROYW1lKQogCiAtICh2b2lkKWhhbmRsZUtleVdlYkV2ZW50Oig6OldlYkV2ZW50ICop
dGhlRXZlbnQgd2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSg6OldlYkV2ZW50ICp0aGVF
dmVudCwgQk9PTCB3YXNIYW5kbGVkKSljb21wbGV0aW9uSGFuZGxlcgogewotICAgIF9rZXlXZWJF
dmVudEhhbmRsZXIgPSBbY29tcGxldGlvbkhhbmRsZXIgY29weV07CisgICAgX2tleVdlYkV2ZW50
SGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcik7CiAgICAgX3BhZ2UtPmhh
bmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCh0aGVFdmVudCkpOwogfQog
CiAtICh2b2lkKV9kaWRIYW5kbGVLZXlFdmVudDooOjpXZWJFdmVudCAqKWV2ZW50IGV2ZW50V2Fz
SGFuZGxlZDooQk9PTClldmVudFdhc0hhbmRsZWQKIHsKLSAgICBpZiAoX2tleVdlYkV2ZW50SGFu
ZGxlcikgewotICAgICAgICBfa2V5V2ViRXZlbnRIYW5kbGVyKGV2ZW50LCBldmVudFdhc0hhbmRs
ZWQpOwotICAgICAgICBbX2tleVdlYkV2ZW50SGFuZGxlciByZWxlYXNlXTsKLSAgICAgICAgX2tl
eVdlYkV2ZW50SGFuZGxlciA9IG5pbDsKKyAgICBpZiAoYXV0byBoYW5kbGVyID0gV1RGTW92ZShf
a2V5V2ViRXZlbnRIYW5kbGVyKSkgeworICAgICAgICBoYW5kbGVyKGV2ZW50LCBldmVudFdhc0hh
bmRsZWQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgICAgICAKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1ZjczMmUyYmVmZDU5Yzc3ZTgx
NmY1YTBiYjU4NjIzNDU5NTAyZGQzLi40MjRhZDVmOGZmYzVmNTNhZmY1M2I1YTQzMDc0NGM0Y2Q0
OTJmYTY2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzIgQEAKKzIwMTgtMDgtMDEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2ll
aEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gS2V5Ym9hcmQgYmVjb21lcyB1bnJlc3BvbnNp
dmUgYWZ0ZXIgcHJlc3NpbmcgZGVsZXRlIHdoaWxlIHByZXNzaW5nIGRvd24gb24gYSBjaGFyYWN0
ZXIga2V5IHdpdGggYWNjZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTg4MjUxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNzg0MjEwOD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIGEgbmV3
IEFQSSB0ZXN0IHRvIHZlcmlmeSB0aGF0IGNsaWVudHMgKGluIHRoaXMgY2FzZSwgVUlLaXQpIGlz
IGFsbG93ZWQgdG8gaW52b2tlCisgICAgICAgIC1oYW5kbGVLZXlXZWJFdmVudDp3aXRoQ29tcGxl
dGlvbkhhbmRsZXI6IHdpdGhpbiB0aGUgY29tcGxldGlvbiBibG9jayBvZiBhIHByaW9yIGludm9j
YXRpb24uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9LZXli
b2FyZElucHV0VGVzdHNJT1MubW06IEFkZGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvVGVzdElucHV0RGVsZWdhdGUu
aDogQWRkZWQuCisKKyAgICAgICAgUHVsbCBzb21lIGxvZ2ljIHVzZWQgdG8gZm9yY2UgYW4gaW5w
dXQgc2Vzc2lvbiB0byBzdGFydCBvdXQgZnJvbSBhbiBleGlzdGluZyBBUEkgdGVzdCBmaWxlCisg
ICAgICAgIChXS1dlYlZpZXdBdXRvZmlsbFRlc3RzKSBhbmQgaW50byBhIHNlcGFyYXRlIGhlbHBl
ciBjbGFzcyB0aGF0IGlzIHVzZWQgYnkgYm90aCB0aGUgZXhpc3RpbmcgQVBJIHRlc3RzIGFuZCB0
aGUKKyAgICAgICAgbmV3IGtleWJvYXJkIGlucHV0IHRlc3QuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL2lvcy9XS1dlYlZpZXdBdXRvZmlsbFRlc3RzLm1tOgorICAgICAgICAoLVtB
dXRvZmlsbFRlc3RWaWV3IGluaXRXaXRoRnJhbWU6XSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKC1bVGVzdElucHV0RGVsZWdhdGUgaW5pdF0pOiBEZWxldGVkLgor
ICAgICAgICAoLVtUZXN0SW5wdXREZWxlZ2F0ZSBfd2ViVmlldzpmb2N1c1Nob3VsZFN0YXJ0SW5w
dXRTZXNzaW9uOl0pOiBEZWxldGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvaW9zL1VJS2l0
U1BJLmg6CisKKyAgICAgICAgQWRkIHNvbWUgVUlLaXQgU1BJIHV0aWxpemVkIGJ5IHRoZSBuZXcg
QVBJIHRlc3QuCisKIDIwMTgtMDctMzEgIEJlbiBSaWNoYXJkcyAgPGJlbnRvbl9yaWNoYXJkc0Bh
cHBsZS5jb20+CiAKICAgICAgICAgQWRkIGNvbmZpZ3VyYXRpb24gZm9yIGF1dG9tYXRpYyBwcm9j
ZXNzIHByZS13YXJtaW5nCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDAyYWUwMGMzMDMwNzFh
MDIwMzJkOWQ5MDAwZDJjYjVhOWM3ODUyOWMuLjVkOGQyY2Q0MTU3ZGExYTdiMjYzNWI5ODE3ZGE3
NGQ2N2E2NjE3ZGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04MDMsNiArODAzLDggQEAK
IAkJRjQ1N0E5RDYyMDJENjhBRjAwRjdFOUQ1IC8qIERhdGFUcmFuc2Zlci5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NTdBOUIzMjAy
RDUzNTMwMEY3RTlENSAvKiBEYXRhVHJhbnNmZXIuaHRtbCAqLzsgfTsKIAkJRjQ1QjYzRkIxRjE5
N0Y0QTAwOUQzOEI5IC8qIGltYWdlLW1hcC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NUI2M0ZBMUYxOTdGMzMwMDlEMzhCOSAvKiBp
bWFnZS1tYXAuaHRtbCAqLzsgfTsKIAkJRjQ1QjYzRkUxRjE5RDQxMDAwOUQzOEI5IC8qIEFjdGlv
blNoZWV0VGVzdHMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNDVCNjNGQzFGMTlENDEwMDA5RDM4QjkgLyogQWN0aW9uU2hlZXRUZXN0cy5tbSAqLzsg
fTsKKwkJRjQ1RTE1NzMyMTEyQ0UyOTAwMzA3RTgyIC8qIEtleWJvYXJkSW5wdXRUZXN0c0lPUy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NUUxNTcy
MjExMkNFMjkwMDMwN0U4MiAvKiBLZXlib2FyZElucHV0VGVzdHNJT1MubW0gKi87IH07CisJCUY0
NUUxNTc2MjExMkNFNjIwMDMwN0U4MiAvKiBUZXN0SW5wdXREZWxlZ2F0ZS5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NUUxNTc1MjExMkNFNjIwMDMw
N0U4MiAvKiBUZXN0SW5wdXREZWxlZ2F0ZS5tbSAqLzsgfTsKIAkJRjQ2NEFGOTIyMEJCNjZFQTAw
N0Y5QjE4IC8qIFJlbmRlcmluZ1Byb2dyZXNzVGVzdHMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDY0QUY5MTIwQkI2NkVBMDA3RjlCMTggLyogUmVu
ZGVyaW5nUHJvZ3Jlc3NUZXN0cy5tbSAqLzsgfTsKIAkJRjQ2ODQ5QkUxRUVGNThFNDAwQjkzN0ZF
IC8qIFVJUGFzdGVib2FyZFRlc3RzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjQ2ODQ5QkQxRUVGNThFNDAwQjkzN0ZFIC8qIFVJUGFzdGVib2FyZFRl
c3RzLm1tICovOyB9OwogCQlGNDY4NDlDMDFFRUY1RUYzMDBCOTM3RkUgLyogcmljaC1hbmQtcGxh
aW4tdGV4dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY0Njg0OUJGMUVFRjVFREMwMEI5MzdGRSAvKiByaWNoLWFuZC1wbGFpbi10ZXh0
Lmh0bWwgKi87IH07CkBAIC0yMDIwLDYgKzIwMjIsOSBAQAogCQlGNDU3QTlCNjIwMkQ1Q0RDMDBG
N0U5RDUgLyogUGFzdGVNaXhlZENvbnRlbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQYXN0
ZU1peGVkQ29udGVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ1QjYzRkEx
RjE5N0YzMzAwOUQzOEI5IC8qIGltYWdlLW1hcC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImltYWdlLW1hcC5o
dG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ1QjYzRkMxRjE5RDQxMDAwOUQz
OEI5IC8qIEFjdGlvblNoZWV0VGVzdHMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBY3Rpb25T
aGVldFRlc3RzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDVFMTU3MjIxMTJD
RTI5MDAzMDdFODIgLyogS2V5Ym9hcmRJbnB1dFRlc3RzSU9TLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gS2V5Ym9hcmRJbnB1dFRlc3RzSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNDVFMTU3NDIxMTJDRTYyMDAzMDdFODIgLyogVGVzdElucHV0RGVsZWdhdGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVGVzdElucHV0RGVsZWdhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRjQ1RTE1NzUyMTEyQ0U2MjAwMzA3RTgyIC8qIFRlc3RJbnB1dERlbGVnYXRlLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gVGVzdElucHV0RGVsZWdhdGUubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY0NjRBRjkxMjBCQjY2RUEwMDdGOUIxOCAvKiBSZW5kZXJpbmdQcm9n
cmVzc1Rlc3RzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVuZGVyaW5nUHJvZ3Jlc3NUZXN0
cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ2ODQ5QkQxRUVGNThFNDAwQjkz
N0ZFIC8qIFVJUGFzdGVib2FyZFRlc3RzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVUlQYXN0
ZWJvYXJkVGVzdHMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0Njg0OUJGMUVF
RjVFREMwMEI5MzdGRSAvKiByaWNoLWFuZC1wbGFpbi10ZXh0Lmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAicmlj
aC1hbmQtcGxhaW4tdGV4dC5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI0
ODMsMTIgKzI0ODgsMTUgQEAKIAkJCQkyRTIwNUJBMzFGNTI3NzQ2MDA1OTUyREQgLyogQWNjZXNz
aWJpbGl0eVRlc3RzSU9TLm1tICovLAogCQkJCUY0NUI2M0ZDMUYxOUQ0MTAwMDlEMzhCOSAvKiBB
Y3Rpb25TaGVldFRlc3RzLm1tICovLAogCQkJCUY0RDRGM0I3MUU0RTM2RTQwMEJCMjc2NyAvKiBE
YXRhSW50ZXJhY3Rpb25UZXN0cy5tbSAqLywKKwkJCQlGNDVFMTU3MjIxMTJDRTI5MDAzMDdFODIg
LyogS2V5Ym9hcmRJbnB1dFRlc3RzSU9TLm1tICovLAogCQkJCTU3NEY1NUNFMjA0RDM3NjMwMDI5
NDhDNiAvKiBMb2NhbEF1dGhlbnRpY2F0b3IubW0gKi8sCiAJCQkJNzU2MDkxNzcxOTI1OUM1OTAw
OUVGMDZFIC8qIE1lbW9yeUNhY2hlQWRkSW1hZ2VUb0NhY2hlSU9TLm1tICovLAogCQkJCUY0NjRB
RjkxMjBCQjY2RUEwMDdGOUIxOCAvKiBSZW5kZXJpbmdQcm9ncmVzc1Rlc3RzLm1tICovLAogCQkJ
CUY0Qzg3OTdFMjA1OUQ4RDMwMDlDRDAwQiAvKiBTY3JvbGxWaWV3SW5zZXRUZXN0cy5tbSAqLywK
IAkJCQlDRTZFODE5RjIwQTY5MzVGMDBFMkM4MEYgLyogU2V0VGltZW91dEZ1bmN0aW9uLm1tICov
LAogCQkJCTQ0MzNBMzk1MjA4MDQ0MTMwMDkxRUQ1NyAvKiBTeW5jaHJvbm91c1RpbWVvdXRUZXN0
cy5tbSAqLywKKwkJCQlGNDVFMTU3NDIxMTJDRTYyMDAzMDdFODIgLyogVGVzdElucHV0RGVsZWdh
dGUuaCAqLywKKwkJCQlGNDVFMTU3NTIxMTJDRTYyMDAzMDdFODIgLyogVGVzdElucHV0RGVsZWdh
dGUubW0gKi8sCiAJCQkJRjQ1MDMzRjQyMDZCRUM5NTAwOTM1MUNFIC8qIFRleHRBdXRvc2l6aW5n
Qm9vc3QubW0gKi8sCiAJCQkJRjQ2ODQ5QkQxRUVGNThFNDAwQjkzN0ZFIC8qIFVJUGFzdGVib2Fy
ZFRlc3RzLm1tICovLAogCQkJCUY0M0UzQkJFMjBEQURBMUUwMEE0RTdFRCAvKiBXS1Njcm9sbFZp
ZXdUZXN0cy5tbSAqLywKQEAgLTM3NTcsNiArMzc2NSw3IEBACiAJCQkJN0NDRTdFQUQxQTQxMUEz
NDAwNDQ3QzRDIC8qIEphdmFTY3JpcHRUZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3
RUE1MUE0MTFBMDgwMDQ0N0M0QyAvKiBKYXZhU2NyaXB0VGVzdE1hYy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTdDQ0U3RUM0MUE0MTFBN0UwMDQ0N0M0QyAvKiBKU1dyYXBwZXJGb3JOb2RlSW5XZWJG
cmFtZS5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY0NUUxNTczMjExMkNFMjkwMDMwN0U4MiAvKiBL
ZXlib2FyZElucHV0VGVzdHNJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0YwNjFBNDEx
QUU2MDA0NDdDNEMgLyogTGF5b3V0TWlsZXN0b25lc1dpdGhBbGxDb250ZW50SW5GcmFtZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VERjFBNDExQTkyMDA0NDdDNEMgLyogTGF5b3V0VW5p
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTY2QkRCNjFFQUYxNEVGMDBDQ0M5MjQgLyogTGlt
aXRUaXRsZVNpemUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zODk1LDYgKzM5MDQsNyBAQAogCQkJ
CTFDNzM0QjUzMjA3ODhDNDgwMEY0MzBFQSAvKiBTeXN0ZW1Db2xvcnMubW0gaW4gU291cmNlcyAq
LywKIAkJCQk3Q0NFN0YxNjFBNDExQUU2MDA0NDdDNEMgLyogVGVybWluYXRlVHdpY2UuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQTkxQTQxMUExRDAwNDQ3QzRDIC8qIFRlc3RCcm93c2lu
Z0NvbnRleHRMb2FkRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLywKKwkJCQlGNDVFMTU3NjIxMTJD
RTYyMDAzMDdFODIgLyogVGVzdElucHV0RGVsZWdhdGUubW0gaW4gU291cmNlcyAqLywKIAkJCQky
RDFDMDRBNzFENzYyOThCMDAwQTY4MTYgLyogVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbSBpbiBT
b3VyY2VzICovLAogCQkJCUExNEZDNTkwMUI4QUUzNkYwMEQxMDdFQiAvKiBUZXN0UHJvdG9jb2wu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VBRTFBNDExQTM0MDA0NDdDNEMgLyogVGVzdHND
b250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9pb3MvS2V5Ym9hcmRJbnB1dFRlc3RzSU9TLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9pb3MvS2V5Ym9hcmRJbnB1dFRlc3RzSU9TLm1tCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjYjgw
OTNkMTgyMDM0NGQ1YjEwZjlmMTk0ZTY4MzRlMDQxZWM2MDQKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9LZXlib2FyZElucHV0VGVzdHNJT1MubW0KQEAg
LTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIFdL
X0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKElPUykKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRp
ZXMuaCIKKyNpbXBvcnQgIlRlc3RJbnB1dERlbGVnYXRlLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJW
aWV3LmgiCisjaW1wb3J0ICJVSUtpdFNQSS5oIgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1By
aXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdExlZ2FjeS9XZWJFdmVudC5oPgorCituYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSSB7CisKK1RFU1QoS2V5Ym9hcmRJbnB1dFRlc3RzLCBDYW5IYW5kbGVLZXlF
dmVudEluQ29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAs
IDUwMCldKTsKKyAgICBhdXRvIGlucHV0RGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdElucHV0RGVs
ZWdhdGUgYWxsb2NdIGluaXRdKTsKKworICAgIGJvb2wgZG9uZVdhaXRpbmcgPSBmYWxzZTsKKyAg
ICBbaW5wdXREZWxlZ2F0ZSBzZXRGb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeUhhbmRsZXI6
WyZdIChXS1dlYlZpZXcgKiwgaWQgPF9XS0ZvY3VzZWRFbGVtZW50SW5mbz4pIC0+IF9XS0ZvY3Vz
U3RhcnRzSW5wdXRTZXNzaW9uUG9saWN5IHsKKyAgICAgICAgZG9uZVdhaXRpbmcgPSB0cnVlOwor
ICAgICAgICByZXR1cm4gX1dLRm9jdXNTdGFydHNJbnB1dFNlc3Npb25Qb2xpY3lBbGxvdzsKKyAg
ICB9XTsKKyAgICBbd2ViVmlldyBfc2V0SW5wdXREZWxlZ2F0ZTppbnB1dERlbGVnYXRlLmdldCgp
XTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8aW5wdXQgYXV0
b2ZvY3VzPiJdOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lV2FpdGluZyk7
CisgICAgZG9uZVdhaXRpbmcgPSBmYWxzZTsKKworICAgIGlkIDxVSVRleHRJbnB1dFByaXZhdGU+
IGNvbnRlbnRWaWV3ID0gKGlkIDxVSVRleHRJbnB1dFByaXZhdGU+KVt3ZWJWaWV3IGZpcnN0UmVz
cG9uZGVyXTsKKyAgICBXZWJFdmVudCAqZmlyc3RXZWJFdmVudCA9IFtbV2ViRXZlbnQgYWxsb2Nd
IGluaXRXaXRoS2V5RXZlbnRUeXBlOldlYkV2ZW50S2V5RG93biB0aW1lU3RhbXA6Q0ZBYnNvbHV0
ZVRpbWVHZXRDdXJyZW50KCkgY2hhcmFjdGVyczpAImEiIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlm
aWVyczpAImEiIG1vZGlmaWVyczowIGlzUmVwZWF0aW5nOk5PIHdpdGhGbGFnczowIHdpdGhJbnB1
dE1hbmFnZXJIaW50Om5pbCBrZXlDb2RlOjAgaXNUYWJLZXk6Tk9dOworICAgIFdlYkV2ZW50ICpz
ZWNvbmRXZWJFdmVudCA9IFtbV2ViRXZlbnQgYWxsb2NdIGluaXRXaXRoS2V5RXZlbnRUeXBlOldl
YkV2ZW50S2V5VXAgdGltZVN0YW1wOkNGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpIGNoYXJhY3Rl
cnM6QCJhIiBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6QCJhIiBtb2RpZmllcnM6MCBpc1Jl
cGVhdGluZzpOTyB3aXRoRmxhZ3M6MCB3aXRoSW5wdXRNYW5hZ2VySGludDpuaWwga2V5Q29kZTow
IGlzVGFiS2V5Ok5PXTsKKyAgICBbY29udGVudFZpZXcgaGFuZGxlS2V5V2ViRXZlbnQ6Zmlyc3RX
ZWJFdmVudCB3aXRoQ29tcGxldGlvbkhhbmRsZXI6WyZdIChXZWJFdmVudCAqZXZlbnQsIEJPT0wp
IHsKKyAgICAgICAgRVhQRUNUX1RSVUUoW2V2ZW50IGlzRXF1YWw6Zmlyc3RXZWJFdmVudF0pOwor
ICAgICAgICBbY29udGVudFZpZXcgaGFuZGxlS2V5V2ViRXZlbnQ6c2Vjb25kV2ViRXZlbnQgd2l0
aENvbXBsZXRpb25IYW5kbGVyOlsmXSAoV2ViRXZlbnQgKmV2ZW50LCBCT09MKSB7CisgICAgICAg
ICAgICBFWFBFQ1RfVFJVRShbZXZlbnQgaXNFcXVhbDpzZWNvbmRXZWJFdmVudF0pOworICAgICAg
ICAgICAgW2NvbnRlbnRWaWV3IGluc2VydFRleHQ6QCJhIl07CisgICAgICAgICAgICBkb25lV2Fp
dGluZyA9IHRydWU7CisgICAgICAgIH1dOworICAgIH1dOworCisgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lV2FpdGluZyk7CisgICAgRVhQRUNUX1dLX1NUUkVRKCJhIiwgW3dlYlZp
ZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
J2lucHV0JykudmFsdWUiXSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKwor
I2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1Rlc3RJbnB1dERlbGVnYXRlLmggYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9UZXN0SW5wdXREZWxlZ2F0ZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZm
MjhiZTY4OTRlZmQ2MDEzNDA0MTliY2NkMWY1ZDBkY2MxYWJlZGEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9UZXN0SW5wdXREZWxlZ2F0ZS5oCkBAIC0w
LDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFdLX0FQSV9FTkFC
TEVEICYmIFBMQVRGT1JNKElPUykKKworI2ltcG9ydCA8V2ViS2l0L19XS0ZvY3VzZWRFbGVtZW50
SW5mby5oPgorI2ltcG9ydCA8V2ViS2l0L19XS0lucHV0RGVsZWdhdGUuaD4KKworQGNsYXNzIFdL
V2ViVmlldzsKKworQGludGVyZmFjZSBUZXN0SW5wdXREZWxlZ2F0ZSA6IE5TT2JqZWN0IDxfV0tJ
bnB1dERlbGVnYXRlPgorQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIF9XS0ZvY3VzU3RhcnRz
SW5wdXRTZXNzaW9uUG9saWN5ICheZm9jdXNTdGFydHNJbnB1dFNlc3Npb25Qb2xpY3lIYW5kbGVy
KShXS1dlYlZpZXcgKiwgaWQgPF9XS0ZvY3VzZWRFbGVtZW50SW5mbz4pOworQGVuZAorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1Rlc3RJbnB1dERl
bGVnYXRlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvVGVzdElucHV0RGVsZWdh
dGUubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjBkMWQyNDI0Mjk5M2Y3MDg5ZTM5YzlkNTAzMjdjMDg0MGM3MDdj
ZAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1Rlc3RJ
bnB1dERlbGVnYXRlLm1tCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiVGVzdElucHV0RGVsZWdhdGUuaCIKKworI2lmIFdLX0FQSV9F
TkFCTEVEICYmIFBMQVRGT1JNKElPUykKKworI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CisKK0Bp
bXBsZW1lbnRhdGlvbiBUZXN0SW5wdXREZWxlZ2F0ZSB7CisgICAgQmxvY2tQdHI8X1dLRm9jdXNT
dGFydHNJbnB1dFNlc3Npb25Qb2xpY3koV0tXZWJWaWV3ICosIGlkIDxfV0tGb2N1c2VkRWxlbWVu
dEluZm8+KT4gX2ZvY3VzU3RhcnRzSW5wdXRTZXNzaW9uUG9saWN5SGFuZGxlcjsKK30KKworLSAo
dm9pZClzZXRGb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeUhhbmRsZXI6KF9XS0ZvY3VzU3Rh
cnRzSW5wdXRTZXNzaW9uUG9saWN5ICheKShXS1dlYlZpZXcgKiwgaWQgPF9XS0ZvY3VzZWRFbGVt
ZW50SW5mbz4pKWhhbmRsZXIKK3sKKyAgICBfZm9jdXNTdGFydHNJbnB1dFNlc3Npb25Qb2xpY3lI
YW5kbGVyID0gbWFrZUJsb2NrUHRyKGhhbmRsZXIpOworfQorCistIChfV0tGb2N1c1N0YXJ0c0lu
cHV0U2Vzc2lvblBvbGljeSAoXikoV0tXZWJWaWV3ICosIGlkIDxfV0tGb2N1c2VkRWxlbWVudElu
Zm8+KSlmb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeUhhbmRsZXIKK3sKKyAgICByZXR1cm4g
X2ZvY3VzU3RhcnRzSW5wdXRTZXNzaW9uUG9saWN5SGFuZGxlci5nZXQoKTsKK30KKworLSAoX1dL
Rm9jdXNTdGFydHNJbnB1dFNlc3Npb25Qb2xpY3kpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgZGVjaWRlUG9saWN5Rm9yRm9jdXNlZEVsZW1lbnQ6KGlkIDxfV0tGb2N1c2VkRWxlbWVudElu
Zm8+KWluZm8KK3sKKyAgICByZXR1cm4gc2VsZi5mb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGlj
eUhhbmRsZXIgPyBzZWxmLmZvY3VzU3RhcnRzSW5wdXRTZXNzaW9uUG9saWN5SGFuZGxlcih3ZWJW
aWV3LCBpbmZvKSA6IF9XS0ZvY3VzU3RhcnRzSW5wdXRTZXNzaW9uUG9saWN5QXV0bzsKK30KKwor
QGVuZAorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQgJiYgUExBVEZPUk0oSU9TKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvV0tXZWJWaWV3QXV0b2ZpbGxUZXN0
cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1dLV2ViVmlld0F1dG9maWxsVGVz
dHMubW0KaW5kZXggYmEzNzVhN2YzYjUzNDVhNzBkOGE0YTYyYWJmODkxN2I3NmU2OWNjNS4uZmE2
YjFjZGJkZDllNTMxODUwNzU5NzM2NzZkNjcyNjNiMDlmZDUyNCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvV0tXZWJWaWV3QXV0b2ZpbGxUZXN0cy5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9XS1dlYlZpZXdBdXRvZmlsbFRlc3RzLm1tCkBA
IC0yOCwzNiArMjgsMTQgQEAKICNpZiBXS19BUElfRU5BQkxFRCAmJiBQTEFURk9STShJT1MpCiAK
ICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0SW5wdXREZWxlZ2F0
ZS5oIgogI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgogI2ltcG9ydCAiVUlLaXRTUEkuaCIKICNp
bXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+Ci0jaW1wb3J0IDxXZWJLaXQvX1dLRm9j
dXNlZEVsZW1lbnRJbmZvLmg+Ci0jaW1wb3J0IDxXZWJLaXQvX1dLSW5wdXREZWxlZ2F0ZS5oPgog
I2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAKIHR5cGVkZWYgVUlWaWV3IDxVSVRleHRJbnB1dFRy
YWl0c19Qcml2YXRlX1Byb3Bvc2VkX1NQSV8zNDU4MzYyOD4gQXV0b2ZpbGxJbnB1dFZpZXc7CiAK
LUBpbnRlcmZhY2UgVGVzdElucHV0RGVsZWdhdGUgOiBOU09iamVjdCA8X1dLSW5wdXREZWxlZ2F0
ZT4KLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGlucHV0U2Vzc2lvblJlcXVpcmVzVXNlcklu
dGVyYWN0aW9uOwotQGVuZAotCi1AaW1wbGVtZW50YXRpb24gVGVzdElucHV0RGVsZWdhdGUKLQot
LSAoaW5zdGFuY2V0eXBlKWluaXQKLXsKLSAgICBpZiAoc2VsZiA9IFtzdXBlciBpbml0XSkKLSAg
ICAgICAgX2lucHV0U2Vzc2lvblJlcXVpcmVzVXNlckludGVyYWN0aW9uID0gTk87Ci0KLSAgICBy
ZXR1cm4gc2VsZjsKLX0KLQotLSAoQk9PTClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBm
b2N1c1Nob3VsZFN0YXJ0SW5wdXRTZXNzaW9uOihpZCA8X1dLRm9jdXNlZEVsZW1lbnRJbmZvPilp
bmZvCi17Ci0gICAgcmV0dXJuICFzZWxmLmlucHV0U2Vzc2lvblJlcXVpcmVzVXNlckludGVyYWN0
aW9uIHx8IGluZm8udXNlckluaXRpYXRlZDsKLX0KLQotQGVuZAotCiBAaW50ZXJmYWNlIEF1dG9m
aWxsVGVzdFZpZXcgOiBUZXN0V0tXZWJWaWV3CiBAZW5kCiAKQEAgLTcxLDYgKzQ5LDkgQEAgdHlw
ZWRlZiBVSVZpZXcgPFVJVGV4dElucHV0VHJhaXRzX1ByaXZhdGVfUHJvcG9zZWRfU1BJXzM0NTgz
NjI4PiBBdXRvZmlsbElucHV0VmkKICAgICAgICAgcmV0dXJuIG5pbDsKIAogICAgIF90ZXN0RGVs
ZWdhdGUgPSBhZG9wdE5TKFtbVGVzdElucHV0RGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBb
X3Rlc3REZWxlZ2F0ZSBzZXRGb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeUhhbmRsZXI6W10g
KFdLV2ViVmlldyAqLCBpZCA8X1dLRm9jdXNlZEVsZW1lbnRJbmZvPikgLT4gX1dLRm9jdXNTdGFy
dHNJbnB1dFNlc3Npb25Qb2xpY3kgeworICAgICAgICByZXR1cm4gX1dLRm9jdXNTdGFydHNJbnB1
dFNlc3Npb25Qb2xpY3lBbGxvdzsKKyAgICB9XTsKICAgICBzZWxmLl9pbnB1dERlbGVnYXRlID0g
X3Rlc3REZWxlZ2F0ZS5nZXQoKTsKICAgICByZXR1cm4gc2VsZjsKIH0KQEAgLTE4Niw3ICsxNjcs
OSBAQCBURVNUKFdLV2ViVmlld0F1dG9maWxsVGVzdHMsIEFjY291bnRDcmVhdGlvblBhZ2UpCiBU
RVNUKFdLV2ViVmlld0F1dG9maWxsVGVzdHMsIEF1dG9maWxsUmVxdWlyZXNJbnB1dFNlc3Npb24p
CiB7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW0F1dG9maWxsVGVzdFZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKLSAgICBbKFRlc3RJ
bnB1dERlbGVnYXRlICopW3dlYlZpZXcgX2lucHV0RGVsZWdhdGVdIHNldElucHV0U2Vzc2lvblJl
cXVpcmVzVXNlckludGVyYWN0aW9uOllFU107CisgICAgWyhUZXN0SW5wdXREZWxlZ2F0ZSAqKVt3
ZWJWaWV3IF9pbnB1dERlbGVnYXRlXSBzZXRGb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeUhh
bmRsZXI6W10gKFdLV2ViVmlldyAqLCBpZCA8X1dLRm9jdXNlZEVsZW1lbnRJbmZvPikgLT4gX1dL
Rm9jdXNTdGFydHNJbnB1dFNlc3Npb25Qb2xpY3kgeworICAgICAgICByZXR1cm4gX1dLRm9jdXNT
dGFydHNJbnB1dFNlc3Npb25Qb2xpY3lBdXRvOworICAgIH1dOwogICAgIFt3ZWJWaWV3IHN5bmNo
cm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxpbnB1dCBpZD0ndXNlcicgdHlwZT0nZW1haWwnPjxp
bnB1dCBpZD0ncGFzc3dvcmQnIHR5cGU9J3Bhc3N3b3JkJz4iXTsKICAgICBbd2ViVmlldyBzdHJp
bmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAidXNlci5mb2N1cygpIl07CiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL1VJS2l0U1BJLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L2lvcy9VSUtpdFNQSS5oCmluZGV4IGM0YjcyNzdiNjBlOGM5YzU0ZmRiMzc4OTcwZjJhZjcwNzY0
MzU0MDQuLjhlZGQwNTJhMDM4NGIwYzc5NGY5OWVkNzA3YmY0NWExZTcyOTBmZjIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL1VJS2l0U1BJLmgKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9pb3MvVUlLaXRTUEkuaApAQCAtMzAsNiArMzAsNyBAQAogI2lmIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspCiAKICNpbXBvcnQgPFVJS2l0L1VJQXBwbGljYXRpb25fUHJpdmF0ZS5oPgor
I2ltcG9ydCA8VUlLaXQvVUlSZXNwb25kZXJfUHJpdmF0ZS5oPgogI2ltcG9ydCA8VUlLaXQvVUlU
ZXh0SW5wdXRUcmFpdHNfUHJpdmF0ZS5oPgogI2ltcG9ydCA8VUlLaXQvVUlUZXh0SW5wdXRfUHJp
dmF0ZS5oPgogI2ltcG9ydCA8VUlLaXQvVUlWaWV3Q29udHJvbGxlcl9Qcml2YXRlLmg+CkBAIC02
Miw4ICs2MywxMSBAQCBXVEZfRVhURVJOX0NfRU5ECiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHkpIFVJQ29sb3IgKmluc2VydGlvblBvaW50Q29sb3I7CiBAZW5kCiAKK0BjbGFzcyBXZWJF
dmVudDsKKwogQHByb3RvY29sIFVJVGV4dElucHV0UHJpdmF0ZSA8VUlUZXh0SW5wdXQsIFVJVGV4
dElucHV0VHJhaXRzX1ByaXZhdGU+CiAtICh2b2lkKWluc2VydFRleHRTdWdnZXN0aW9uOihVSVRl
eHRTdWdnZXN0aW9uICopdGV4dFN1Z2dlc3Rpb247CistICh2b2lkKWhhbmRsZUtleVdlYkV2ZW50
OihXZWJFdmVudCAqKXRoZUV2ZW50IHdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoV2Vi
RXZlbnQgKiwgQk9PTCkpY29tcGxldGlvbkhhbmRsZXI7CiBAZW5kCiAKICNlbmRpZgpAQCAtMTAw
LDQgKzEwNCw4IEBAIFdURl9FWFRFUk5fQ19FTkQKICsgKFVJVmlld0NvbnRyb2xsZXIgKilfdmll
d0NvbnRyb2xsZXJGb3JGdWxsU2NyZWVuUHJlc2VudGF0aW9uRnJvbVZpZXc6KFVJVmlldyAqKXZp
ZXc7CiBAZW5kCiAKK0BpbnRlcmZhY2UgVUlSZXNwb25kZXIgKFVJS2l0U1BJKQorLSAoVUlSZXNw
b25kZXIgKilmaXJzdFJlc3BvbmRlcjsKK0BlbmQKKwogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346380</attachid>
            <date>2018-08-02 08:02:07 -0700</date>
            <delta_ts>2018-08-02 11:32:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188251-20180802080206.patch</filename>
            <type>text/plain</type>
            <size>23459</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE4MzhjYjNkZGVkOWEzYzc5
NGIwM2VkNjNhODgwYjlmZTljMzhlYTIuLjg1NWIzMGZkMWVmY2EyMTZlNDRkNWUwMDFkYzQ1Yjc2
YTI2N2NiMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTgtMDgtMDEgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gS2V5Ym9hcmQg
YmVjb21lcyB1bnJlc3BvbnNpdmUgYWZ0ZXIgcHJlc3NpbmcgZGVsZXRlIHdoaWxlIHByZXNzaW5n
IGRvd24gb24gYSBjaGFyYWN0ZXIga2V5IHdpdGggYWNjZW50cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4MjUxCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8zNzg0MjEwOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBGaXhlcyBhIGJ1ZyBpbiBrZXkgZXZlbnQgaGFuZGxpbmcgd2hlcmUgaW52b2tpbmcg
LWhhbmRsZUtleVdlYkV2ZW50OndpdGhDb21wbGV0aW9uSGFuZGxlcjogZnJvbSB3aXRoaW4gdGhl
CisgICAgICAgIGNvbXBsZXRpb24gY2FsbGJhY2sgb2YgYSBwcmV2aW91cyBjYWxsIHRvIC1oYW5k
bGVLZXlXZWJFdmVudDp3aXRoQ29tcGxldGlvbkhhbmRsZXI6IHdvdWxkIGNhdXNlIHRoZSBjb21w
bGV0aW9uCisgICAgICAgIGNhbGxiYWNrIHRvIGJlIGNsZWFyZWQgb3V0IHByZW1hdHVyZWx5LiBJ
biBzb21lIGNhc2VzIChhcyBkZXNjcmliZWQgaW4gdGhlIHRpdGxlIG9mIHRoaXMgYnVnKSwgVUlL
aXQgZXhlcmNpc2VzCisgICAgICAgIHRoaXMgY29kZXBhdGggYW5kIHN1YnNlcXVlbnRseSBoYW5n
cyBkdWUgdG8gdGhlaXIgY29tcGxldGlvbiBibG9jayBuZXZlciBnZXR0aW5nIGludm9rZWQgYnkg
V2ViS2l0LgorCisgICAgICAgIFRlc3Q6IEtleWJvYXJkSW5wdXRUZXN0cy5DYW5IYW5kbGVLZXlF
dmVudEluQ29tcGxldGlvbkhhbmRsZXIKKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgaGFuZGxlS2V5V2Vi
RXZlbnQ6d2l0aENvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3
IF9kaWRIYW5kbGVLZXlFdmVudDpldmVudFdhc0hhbmRsZWQ6XSk6CisKIDIwMTgtMDgtMDEgIFph
biBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtDb29yZEdyYXBo
aWNzXSBNb3ZlIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlIHRvIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApp
bmRleCBmOGU0NTg0ZWJlZmM4ZDhiOGU3MjYyZWI4ZmM0MDBiNjFkY2QxNDU3Li41NTAxZmEzNjAx
NGE1OTE3NzQ5NjQ3MjRhZDA2ZmI0YTc2M2M2MTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC05Miw3ICs5
Miw2IEBAIHR5cGVkZWYgdm9pZCAoXlVJV0tBdXRvY29ycmVjdGlvbkNvbnRleHRIYW5kbGVyKShV
SVdLQXV0b2NvcnJlY3Rpb25Db250ZXh0ICphdXRvCiB0eXBlZGVmIHZvaWQgKF5VSVdLRGljdGF0
aW9uQ29udGV4dEhhbmRsZXIpKE5TU3RyaW5nICpzZWxlY3RlZFRleHQsIE5TU3RyaW5nICpiZWZv
cmVUZXh0LCBOU1N0cmluZyAqYWZ0ZXJUZXh0KTsKIHR5cGVkZWYgdm9pZCAoXlVJV0tTZWxlY3Rp
b25Db21wbGV0aW9uSGFuZGxlcikodm9pZCk7CiB0eXBlZGVmIHZvaWQgKF5VSVdLU2VsZWN0aW9u
V2l0aERpcmVjdGlvbkNvbXBsZXRpb25IYW5kbGVyKShCT09MIHNlbGVjdGlvbkVuZElzTW92aW5n
KTsKLXR5cGVkZWYgdm9pZCAoXlVJV0tLZXlXZWJFdmVudENvbXBsZXRpb25IYW5kbGVyKSg6Oldl
YkV2ZW50ICp0aGVFdmVudCwgQk9PTCB3YXNIYW5kbGVkKTsKIAogdHlwZWRlZiBCbG9ja1B0cjx2
b2lkKFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24pPiBJbnRlcmFjdGlv
bkluZm9ybWF0aW9uQ2FsbGJhY2s7CiB0eXBlZGVmIHN0ZDo6cGFpcjxXZWJLaXQ6OkludGVyYWN0
aW9uSW5mb3JtYXRpb25SZXF1ZXN0LCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQ2FsbGJhY2s+IElu
dGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0QW5kQ2FsbGJhY2s7CkBAIC0yMDEsNyArMjAwLDcg
QEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsKICAgICBXZWJLaXQ6OkFzc2lzdGVkTm9k
ZUluZm9ybWF0aW9uIF9hc3Npc3RlZE5vZGVJbmZvcm1hdGlvbjsKICAgICBSZXRhaW5QdHI8TlNP
YmplY3Q8V0tGb3JtUGVyaXBoZXJhbD4+IF9pbnB1dFBlcmlwaGVyYWw7CiAgICAgUmV0YWluUHRy
PFVJRXZlbnQ+IF91aUV2ZW50QmVpbmdSZXNlbnQ7Ci0gICAgVUlXS0tleVdlYkV2ZW50Q29tcGxl
dGlvbkhhbmRsZXIgX2tleVdlYkV2ZW50SGFuZGxlcjsKKyAgICBCbG9ja1B0cjx2b2lkKDo6V2Vi
RXZlbnQgKiwgQk9PTCk+IF9rZXlXZWJFdmVudEhhbmRsZXI7CiAKICAgICBDR1BvaW50IF9sYXN0
SW50ZXJhY3Rpb25Mb2NhdGlvbjsKICAgICB1aW50NjRfdCBfbGF5ZXJUcmVlVHJhbnNhY3Rpb25J
ZEF0TGFzdFRvdWNoU3RhcnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBhMWE0ZGM4YjYwNTZhOGZlNmQ2
OTQzMGQwZDQ2NjllMWNlNjcwMDgyLi40YzA4ZmE1ODhhMTZjZGZiNDJhY2EyZjQxMjllZTc2ZGNj
NTU0OGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTM2NDMsMTYgKzM2NDMsMTQgQEAgc3RhdGljIE5T
U3RyaW5nICpjb250ZW50VHlwZUZyb21GaWVsZE5hbWUoV2ViQ29yZTo6QXV0b2ZpbGxGaWVsZE5h
bWUgZmllbGROYW1lKQogCiAtICh2b2lkKWhhbmRsZUtleVdlYkV2ZW50Oig6OldlYkV2ZW50ICop
dGhlRXZlbnQgd2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSg6OldlYkV2ZW50ICp0aGVF
dmVudCwgQk9PTCB3YXNIYW5kbGVkKSljb21wbGV0aW9uSGFuZGxlcgogewotICAgIF9rZXlXZWJF
dmVudEhhbmRsZXIgPSBbY29tcGxldGlvbkhhbmRsZXIgY29weV07CisgICAgX2tleVdlYkV2ZW50
SGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcik7CiAgICAgX3BhZ2UtPmhh
bmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCh0aGVFdmVudCkpOwogfQog
CiAtICh2b2lkKV9kaWRIYW5kbGVLZXlFdmVudDooOjpXZWJFdmVudCAqKWV2ZW50IGV2ZW50V2Fz
SGFuZGxlZDooQk9PTClldmVudFdhc0hhbmRsZWQKIHsKLSAgICBpZiAoX2tleVdlYkV2ZW50SGFu
ZGxlcikgewotICAgICAgICBfa2V5V2ViRXZlbnRIYW5kbGVyKGV2ZW50LCBldmVudFdhc0hhbmRs
ZWQpOwotICAgICAgICBbX2tleVdlYkV2ZW50SGFuZGxlciByZWxlYXNlXTsKLSAgICAgICAgX2tl
eVdlYkV2ZW50SGFuZGxlciA9IG5pbDsKKyAgICBpZiAoYXV0byBoYW5kbGVyID0gV1RGTW92ZShf
a2V5V2ViRXZlbnRIYW5kbGVyKSkgeworICAgICAgICBoYW5kbGVyKGV2ZW50LCBldmVudFdhc0hh
bmRsZWQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgICAgICAKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1ZjczMmUyYmVmZDU5Yzc3ZTgx
NmY1YTBiYjU4NjIzNDU5NTAyZGQzLi40MjRhZDVmOGZmYzVmNTNhZmY1M2I1YTQzMDc0NGM0Y2Q0
OTJmYTY2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzIgQEAKKzIwMTgtMDgtMDEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2ll
aEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gS2V5Ym9hcmQgYmVjb21lcyB1bnJlc3BvbnNp
dmUgYWZ0ZXIgcHJlc3NpbmcgZGVsZXRlIHdoaWxlIHByZXNzaW5nIGRvd24gb24gYSBjaGFyYWN0
ZXIga2V5IHdpdGggYWNjZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTg4MjUxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNzg0MjEwOD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIGEgbmV3
IEFQSSB0ZXN0IHRvIHZlcmlmeSB0aGF0IGNsaWVudHMgKGluIHRoaXMgY2FzZSwgVUlLaXQpIGlz
IGFsbG93ZWQgdG8gaW52b2tlCisgICAgICAgIC1oYW5kbGVLZXlXZWJFdmVudDp3aXRoQ29tcGxl
dGlvbkhhbmRsZXI6IHdpdGhpbiB0aGUgY29tcGxldGlvbiBibG9jayBvZiBhIHByaW9yIGludm9j
YXRpb24uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9LZXli
b2FyZElucHV0VGVzdHNJT1MubW06IEFkZGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvVGVzdElucHV0RGVsZWdhdGUu
aDogQWRkZWQuCisKKyAgICAgICAgUHVsbCBzb21lIGxvZ2ljIHVzZWQgdG8gZm9yY2UgYW4gaW5w
dXQgc2Vzc2lvbiB0byBzdGFydCBvdXQgZnJvbSBhbiBleGlzdGluZyBBUEkgdGVzdCBmaWxlCisg
ICAgICAgIChXS1dlYlZpZXdBdXRvZmlsbFRlc3RzKSBhbmQgaW50byBhIHNlcGFyYXRlIGhlbHBl
ciBjbGFzcyB0aGF0IGlzIHVzZWQgYnkgYm90aCB0aGUgZXhpc3RpbmcgQVBJIHRlc3RzIGFuZCB0
aGUKKyAgICAgICAgbmV3IGtleWJvYXJkIGlucHV0IHRlc3QuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL2lvcy9XS1dlYlZpZXdBdXRvZmlsbFRlc3RzLm1tOgorICAgICAgICAoLVtB
dXRvZmlsbFRlc3RWaWV3IGluaXRXaXRoRnJhbWU6XSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKC1bVGVzdElucHV0RGVsZWdhdGUgaW5pdF0pOiBEZWxldGVkLgor
ICAgICAgICAoLVtUZXN0SW5wdXREZWxlZ2F0ZSBfd2ViVmlldzpmb2N1c1Nob3VsZFN0YXJ0SW5w
dXRTZXNzaW9uOl0pOiBEZWxldGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvaW9zL1VJS2l0
U1BJLmg6CisKKyAgICAgICAgQWRkIHNvbWUgVUlLaXQgU1BJIHV0aWxpemVkIGJ5IHRoZSBuZXcg
QVBJIHRlc3QuCisKIDIwMTgtMDctMzEgIEJlbiBSaWNoYXJkcyAgPGJlbnRvbl9yaWNoYXJkc0Bh
cHBsZS5jb20+CiAKICAgICAgICAgQWRkIGNvbmZpZ3VyYXRpb24gZm9yIGF1dG9tYXRpYyBwcm9j
ZXNzIHByZS13YXJtaW5nCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDAyYWUwMGMzMDMwNzFh
MDIwMzJkOWQ5MDAwZDJjYjVhOWM3ODUyOWMuLjVkOGQyY2Q0MTU3ZGExYTdiMjYzNWI5ODE3ZGE3
NGQ2N2E2NjE3ZGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04MDMsNiArODAzLDggQEAK
IAkJRjQ1N0E5RDYyMDJENjhBRjAwRjdFOUQ1IC8qIERhdGFUcmFuc2Zlci5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NTdBOUIzMjAy
RDUzNTMwMEY3RTlENSAvKiBEYXRhVHJhbnNmZXIuaHRtbCAqLzsgfTsKIAkJRjQ1QjYzRkIxRjE5
N0Y0QTAwOUQzOEI5IC8qIGltYWdlLW1hcC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NUI2M0ZBMUYxOTdGMzMwMDlEMzhCOSAvKiBp
bWFnZS1tYXAuaHRtbCAqLzsgfTsKIAkJRjQ1QjYzRkUxRjE5RDQxMDAwOUQzOEI5IC8qIEFjdGlv
blNoZWV0VGVzdHMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNDVCNjNGQzFGMTlENDEwMDA5RDM4QjkgLyogQWN0aW9uU2hlZXRUZXN0cy5tbSAqLzsg
fTsKKwkJRjQ1RTE1NzMyMTEyQ0UyOTAwMzA3RTgyIC8qIEtleWJvYXJkSW5wdXRUZXN0c0lPUy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NUUxNTcy
MjExMkNFMjkwMDMwN0U4MiAvKiBLZXlib2FyZElucHV0VGVzdHNJT1MubW0gKi87IH07CisJCUY0
NUUxNTc2MjExMkNFNjIwMDMwN0U4MiAvKiBUZXN0SW5wdXREZWxlZ2F0ZS5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NUUxNTc1MjExMkNFNjIwMDMw
N0U4MiAvKiBUZXN0SW5wdXREZWxlZ2F0ZS5tbSAqLzsgfTsKIAkJRjQ2NEFGOTIyMEJCNjZFQTAw
N0Y5QjE4IC8qIFJlbmRlcmluZ1Byb2dyZXNzVGVzdHMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDY0QUY5MTIwQkI2NkVBMDA3RjlCMTggLyogUmVu
ZGVyaW5nUHJvZ3Jlc3NUZXN0cy5tbSAqLzsgfTsKIAkJRjQ2ODQ5QkUxRUVGNThFNDAwQjkzN0ZF
IC8qIFVJUGFzdGVib2FyZFRlc3RzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjQ2ODQ5QkQxRUVGNThFNDAwQjkzN0ZFIC8qIFVJUGFzdGVib2FyZFRl
c3RzLm1tICovOyB9OwogCQlGNDY4NDlDMDFFRUY1RUYzMDBCOTM3RkUgLyogcmljaC1hbmQtcGxh
aW4tdGV4dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY0Njg0OUJGMUVFRjVFREMwMEI5MzdGRSAvKiByaWNoLWFuZC1wbGFpbi10ZXh0
Lmh0bWwgKi87IH07CkBAIC0yMDIwLDYgKzIwMjIsOSBAQAogCQlGNDU3QTlCNjIwMkQ1Q0RDMDBG
N0U5RDUgLyogUGFzdGVNaXhlZENvbnRlbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQYXN0
ZU1peGVkQ29udGVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ1QjYzRkEx
RjE5N0YzMzAwOUQzOEI5IC8qIGltYWdlLW1hcC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImltYWdlLW1hcC5o
dG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ1QjYzRkMxRjE5RDQxMDAwOUQz
OEI5IC8qIEFjdGlvblNoZWV0VGVzdHMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBY3Rpb25T
aGVldFRlc3RzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDVFMTU3MjIxMTJD
RTI5MDAzMDdFODIgLyogS2V5Ym9hcmRJbnB1dFRlc3RzSU9TLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gS2V5Ym9hcmRJbnB1dFRlc3RzSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNDVFMTU3NDIxMTJDRTYyMDAzMDdFODIgLyogVGVzdElucHV0RGVsZWdhdGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVGVzdElucHV0RGVsZWdhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRjQ1RTE1NzUyMTEyQ0U2MjAwMzA3RTgyIC8qIFRlc3RJbnB1dERlbGVnYXRlLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gVGVzdElucHV0RGVsZWdhdGUubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY0NjRBRjkxMjBCQjY2RUEwMDdGOUIxOCAvKiBSZW5kZXJpbmdQcm9n
cmVzc1Rlc3RzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVuZGVyaW5nUHJvZ3Jlc3NUZXN0
cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ2ODQ5QkQxRUVGNThFNDAwQjkz
N0ZFIC8qIFVJUGFzdGVib2FyZFRlc3RzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVUlQYXN0
ZWJvYXJkVGVzdHMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0Njg0OUJGMUVF
RjVFREMwMEI5MzdGRSAvKiByaWNoLWFuZC1wbGFpbi10ZXh0Lmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAicmlj
aC1hbmQtcGxhaW4tdGV4dC5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI0
ODMsMTIgKzI0ODgsMTUgQEAKIAkJCQkyRTIwNUJBMzFGNTI3NzQ2MDA1OTUyREQgLyogQWNjZXNz
aWJpbGl0eVRlc3RzSU9TLm1tICovLAogCQkJCUY0NUI2M0ZDMUYxOUQ0MTAwMDlEMzhCOSAvKiBB
Y3Rpb25TaGVldFRlc3RzLm1tICovLAogCQkJCUY0RDRGM0I3MUU0RTM2RTQwMEJCMjc2NyAvKiBE
YXRhSW50ZXJhY3Rpb25UZXN0cy5tbSAqLywKKwkJCQlGNDVFMTU3MjIxMTJDRTI5MDAzMDdFODIg
LyogS2V5Ym9hcmRJbnB1dFRlc3RzSU9TLm1tICovLAogCQkJCTU3NEY1NUNFMjA0RDM3NjMwMDI5
NDhDNiAvKiBMb2NhbEF1dGhlbnRpY2F0b3IubW0gKi8sCiAJCQkJNzU2MDkxNzcxOTI1OUM1OTAw
OUVGMDZFIC8qIE1lbW9yeUNhY2hlQWRkSW1hZ2VUb0NhY2hlSU9TLm1tICovLAogCQkJCUY0NjRB
RjkxMjBCQjY2RUEwMDdGOUIxOCAvKiBSZW5kZXJpbmdQcm9ncmVzc1Rlc3RzLm1tICovLAogCQkJ
CUY0Qzg3OTdFMjA1OUQ4RDMwMDlDRDAwQiAvKiBTY3JvbGxWaWV3SW5zZXRUZXN0cy5tbSAqLywK
IAkJCQlDRTZFODE5RjIwQTY5MzVGMDBFMkM4MEYgLyogU2V0VGltZW91dEZ1bmN0aW9uLm1tICov
LAogCQkJCTQ0MzNBMzk1MjA4MDQ0MTMwMDkxRUQ1NyAvKiBTeW5jaHJvbm91c1RpbWVvdXRUZXN0
cy5tbSAqLywKKwkJCQlGNDVFMTU3NDIxMTJDRTYyMDAzMDdFODIgLyogVGVzdElucHV0RGVsZWdh
dGUuaCAqLywKKwkJCQlGNDVFMTU3NTIxMTJDRTYyMDAzMDdFODIgLyogVGVzdElucHV0RGVsZWdh
dGUubW0gKi8sCiAJCQkJRjQ1MDMzRjQyMDZCRUM5NTAwOTM1MUNFIC8qIFRleHRBdXRvc2l6aW5n
Qm9vc3QubW0gKi8sCiAJCQkJRjQ2ODQ5QkQxRUVGNThFNDAwQjkzN0ZFIC8qIFVJUGFzdGVib2Fy
ZFRlc3RzLm1tICovLAogCQkJCUY0M0UzQkJFMjBEQURBMUUwMEE0RTdFRCAvKiBXS1Njcm9sbFZp
ZXdUZXN0cy5tbSAqLywKQEAgLTM3NTcsNiArMzc2NSw3IEBACiAJCQkJN0NDRTdFQUQxQTQxMUEz
NDAwNDQ3QzRDIC8qIEphdmFTY3JpcHRUZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3
RUE1MUE0MTFBMDgwMDQ0N0M0QyAvKiBKYXZhU2NyaXB0VGVzdE1hYy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTdDQ0U3RUM0MUE0MTFBN0UwMDQ0N0M0QyAvKiBKU1dyYXBwZXJGb3JOb2RlSW5XZWJG
cmFtZS5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY0NUUxNTczMjExMkNFMjkwMDMwN0U4MiAvKiBL
ZXlib2FyZElucHV0VGVzdHNJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0YwNjFBNDEx
QUU2MDA0NDdDNEMgLyogTGF5b3V0TWlsZXN0b25lc1dpdGhBbGxDb250ZW50SW5GcmFtZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VERjFBNDExQTkyMDA0NDdDNEMgLyogTGF5b3V0VW5p
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTY2QkRCNjFFQUYxNEVGMDBDQ0M5MjQgLyogTGlt
aXRUaXRsZVNpemUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zODk1LDYgKzM5MDQsNyBAQAogCQkJ
CTFDNzM0QjUzMjA3ODhDNDgwMEY0MzBFQSAvKiBTeXN0ZW1Db2xvcnMubW0gaW4gU291cmNlcyAq
LywKIAkJCQk3Q0NFN0YxNjFBNDExQUU2MDA0NDdDNEMgLyogVGVybWluYXRlVHdpY2UuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQTkxQTQxMUExRDAwNDQ3QzRDIC8qIFRlc3RCcm93c2lu
Z0NvbnRleHRMb2FkRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLywKKwkJCQlGNDVFMTU3NjIxMTJD
RTYyMDAzMDdFODIgLyogVGVzdElucHV0RGVsZWdhdGUubW0gaW4gU291cmNlcyAqLywKIAkJCQky
RDFDMDRBNzFENzYyOThCMDAwQTY4MTYgLyogVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbSBpbiBT
b3VyY2VzICovLAogCQkJCUExNEZDNTkwMUI4QUUzNkYwMEQxMDdFQiAvKiBUZXN0UHJvdG9jb2wu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VBRTFBNDExQTM0MDA0NDdDNEMgLyogVGVzdHND
b250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9pb3MvS2V5Ym9hcmRJbnB1dFRlc3RzSU9TLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9pb3MvS2V5Ym9hcmRJbnB1dFRlc3RzSU9TLm1tCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwOWRi
MDg4MWFlZTYyYTM4ZTc2Y2Y0YWJkM2Y4ZDIxMDhkNDlkYjUKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9LZXlib2FyZElucHV0VGVzdHNJT1MubW0KQEAg
LTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIFdL
X0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKElPUykKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRp
ZXMuaCIKKyNpbXBvcnQgIlRlc3RJbnB1dERlbGVnYXRlLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJW
aWV3LmgiCisjaW1wb3J0ICJVSUtpdFNQSS5oIgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1By
aXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdExlZ2FjeS9XZWJFdmVudC5oPgorCituYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSSB7CisKK1RFU1QoS2V5Ym9hcmRJbnB1dFRlc3RzLCBDYW5IYW5kbGVLZXlF
dmVudEluQ29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAs
IDUwMCldKTsKKyAgICBhdXRvIGlucHV0RGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdElucHV0RGVs
ZWdhdGUgYWxsb2NdIGluaXRdKTsKKworICAgIGJvb2wgZG9uZVdhaXRpbmcgPSBmYWxzZTsKKyAg
ICBbaW5wdXREZWxlZ2F0ZSBzZXRGb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeUhhbmRsZXI6
WyZdIChXS1dlYlZpZXcgKiwgaWQgPF9XS0ZvY3VzZWRFbGVtZW50SW5mbz4pIC0+IF9XS0ZvY3Vz
U3RhcnRzSW5wdXRTZXNzaW9uUG9saWN5IHsKKyAgICAgICAgZG9uZVdhaXRpbmcgPSB0cnVlOwor
ICAgICAgICByZXR1cm4gX1dLRm9jdXNTdGFydHNJbnB1dFNlc3Npb25Qb2xpY3lBbGxvdzsKKyAg
ICB9XTsKKyAgICBbd2ViVmlldyBfc2V0SW5wdXREZWxlZ2F0ZTppbnB1dERlbGVnYXRlLmdldCgp
XTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8aW5wdXQgYXV0
b2ZvY3VzPiJdOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lV2FpdGluZyk7
CisgICAgZG9uZVdhaXRpbmcgPSBmYWxzZTsKKworICAgIGlkIDxVSVRleHRJbnB1dFByaXZhdGU+
IGNvbnRlbnRWaWV3ID0gKGlkIDxVSVRleHRJbnB1dFByaXZhdGU+KVt3ZWJWaWV3IGZpcnN0UmVz
cG9uZGVyXTsKKyAgICBhdXRvIGZpcnN0V2ViRXZlbnQgPSBhZG9wdE5TKFtbV2ViRXZlbnQgYWxs
b2NdIGluaXRXaXRoS2V5RXZlbnRUeXBlOldlYkV2ZW50S2V5RG93biB0aW1lU3RhbXA6Q0ZBYnNv
bHV0ZVRpbWVHZXRDdXJyZW50KCkgY2hhcmFjdGVyczpAImEiIGNoYXJhY3RlcnNJZ25vcmluZ01v
ZGlmaWVyczpAImEiIG1vZGlmaWVyczowIGlzUmVwZWF0aW5nOk5PIHdpdGhGbGFnczowIHdpdGhJ
bnB1dE1hbmFnZXJIaW50Om5pbCBrZXlDb2RlOjAgaXNUYWJLZXk6Tk9dKTsKKyAgICBhdXRvIHNl
Y29uZFdlYkV2ZW50ID0gYWRvcHROUyhbW1dlYkV2ZW50IGFsbG9jXSBpbml0V2l0aEtleUV2ZW50
VHlwZTpXZWJFdmVudEtleVVwIHRpbWVTdGFtcDpDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSBj
aGFyYWN0ZXJzOkAiYSIgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOkAiYSIgbW9kaWZpZXJz
OjAgaXNSZXBlYXRpbmc6Tk8gd2l0aEZsYWdzOjAgd2l0aElucHV0TWFuYWdlckhpbnQ6bmlsIGtl
eUNvZGU6MCBpc1RhYktleTpOT10pOworICAgIFtjb250ZW50VmlldyBoYW5kbGVLZXlXZWJFdmVu
dDpmaXJzdFdlYkV2ZW50LmdldCgpIHdpdGhDb21wbGV0aW9uSGFuZGxlcjpbJl0gKFdlYkV2ZW50
ICpldmVudCwgQk9PTCkgeworICAgICAgICBFWFBFQ1RfVFJVRShbZXZlbnQgaXNFcXVhbDpmaXJz
dFdlYkV2ZW50LmdldCgpXSk7CisgICAgICAgIFtjb250ZW50VmlldyBoYW5kbGVLZXlXZWJFdmVu
dDpzZWNvbmRXZWJFdmVudC5nZXQoKSB3aXRoQ29tcGxldGlvbkhhbmRsZXI6WyZdIChXZWJFdmVu
dCAqZXZlbnQsIEJPT0wpIHsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKFtldmVudCBpc0VxdWFs
OnNlY29uZFdlYkV2ZW50LmdldCgpXSk7CisgICAgICAgICAgICBbY29udGVudFZpZXcgaW5zZXJ0
VGV4dDpAImEiXTsKKyAgICAgICAgICAgIGRvbmVXYWl0aW5nID0gdHJ1ZTsKKyAgICAgICAgfV07
CisgICAgfV07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVXYWl0aW5nKTsK
KyAgICBFWFBFQ1RfV0tfU1RSRVEoImEiLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZh
U2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKS52YWx1ZSJdKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQg
JiYgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9p
b3MvVGVzdElucHV0RGVsZWdhdGUuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1Rl
c3RJbnB1dERlbGVnYXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmYyOGJlNjg5NGVmZDYwMTM0MDQxOWJjY2Qx
ZjVkMGRjYzFhYmVkYQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvaW9zL1Rlc3RJbnB1dERlbGVnYXRlLmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgV0tfQVBJX0VOQUJMRUQgJiYgUExBVEZPUk0oSU9TKQorCisj
aW1wb3J0IDxXZWJLaXQvX1dLRm9jdXNlZEVsZW1lbnRJbmZvLmg+CisjaW1wb3J0IDxXZWJLaXQv
X1dLSW5wdXREZWxlZ2F0ZS5oPgorCitAY2xhc3MgV0tXZWJWaWV3OworCitAaW50ZXJmYWNlIFRl
c3RJbnB1dERlbGVnYXRlIDogTlNPYmplY3QgPF9XS0lucHV0RGVsZWdhdGU+CitAcHJvcGVydHkg
KG5vbmF0b21pYywgY29weSkgX1dLRm9jdXNTdGFydHNJbnB1dFNlc3Npb25Qb2xpY3kgKF5mb2N1
c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeUhhbmRsZXIpKFdLV2ViVmlldyAqLCBpZCA8X1dLRm9j
dXNlZEVsZW1lbnRJbmZvPik7CitAZW5kCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9pb3MvVGVzdElucHV0RGVsZWdhdGUubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL2lvcy9UZXN0SW5wdXREZWxlZ2F0ZS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMGQxZDI0
MjQyOTkzZjcwODllMzljOWQ1MDMyN2MwODQwYzcwN2NkCi0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvVGVzdElucHV0RGVsZWdhdGUubW0KQEAgLTAsMCAr
MSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXN0
SW5wdXREZWxlZ2F0ZS5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQgJiYgUExBVEZPUk0oSU9TKQor
CisjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KKworQGltcGxlbWVudGF0aW9uIFRlc3RJbnB1dERl
bGVnYXRlIHsKKyAgICBCbG9ja1B0cjxfV0tGb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeShX
S1dlYlZpZXcgKiwgaWQgPF9XS0ZvY3VzZWRFbGVtZW50SW5mbz4pPiBfZm9jdXNTdGFydHNJbnB1
dFNlc3Npb25Qb2xpY3lIYW5kbGVyOworfQorCistICh2b2lkKXNldEZvY3VzU3RhcnRzSW5wdXRT
ZXNzaW9uUG9saWN5SGFuZGxlcjooX1dLRm9jdXNTdGFydHNJbnB1dFNlc3Npb25Qb2xpY3kgKF4p
KFdLV2ViVmlldyAqLCBpZCA8X1dLRm9jdXNlZEVsZW1lbnRJbmZvPikpaGFuZGxlcgoreworICAg
IF9mb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeUhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoaGFu
ZGxlcik7Cit9CisKKy0gKF9XS0ZvY3VzU3RhcnRzSW5wdXRTZXNzaW9uUG9saWN5ICheKShXS1dl
YlZpZXcgKiwgaWQgPF9XS0ZvY3VzZWRFbGVtZW50SW5mbz4pKWZvY3VzU3RhcnRzSW5wdXRTZXNz
aW9uUG9saWN5SGFuZGxlcgoreworICAgIHJldHVybiBfZm9jdXNTdGFydHNJbnB1dFNlc3Npb25Q
b2xpY3lIYW5kbGVyLmdldCgpOworfQorCistIChfV0tGb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBv
bGljeSlfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JGb2N1c2Vk
RWxlbWVudDooaWQgPF9XS0ZvY3VzZWRFbGVtZW50SW5mbz4paW5mbworeworICAgIHJldHVybiBz
ZWxmLmZvY3VzU3RhcnRzSW5wdXRTZXNzaW9uUG9saWN5SGFuZGxlciA/IHNlbGYuZm9jdXNTdGFy
dHNJbnB1dFNlc3Npb25Qb2xpY3lIYW5kbGVyKHdlYlZpZXcsIGluZm8pIDogX1dLRm9jdXNTdGFy
dHNJbnB1dFNlc3Npb25Qb2xpY3lBdXRvOworfQorCitAZW5kCisKKyNlbmRpZiAvLyBXS19BUElf
RU5BQkxFRCAmJiBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL2lvcy9XS1dlYlZpZXdBdXRvZmlsbFRlc3RzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9pb3MvV0tXZWJWaWV3QXV0b2ZpbGxUZXN0cy5tbQppbmRleCBiYTM3NWE3ZjNiNTM0
NWE3MGQ4YTRhNjJhYmY4OTE3Yjc2ZTY5Y2M1Li5mYTZiMWNkYmRkOWU1MzE4NTA3NTk3MzY3NmQ2
NzI2M2IwOWZkNTI0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9X
S1dlYlZpZXdBdXRvZmlsbFRlc3RzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
aW9zL1dLV2ViVmlld0F1dG9maWxsVGVzdHMubW0KQEAgLTI4LDM2ICsyOCwxNCBAQAogI2lmIFdL
X0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKElPUykKIAogI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRp
ZXMuaCIKKyNpbXBvcnQgIlRlc3RJbnB1dERlbGVnYXRlLmgiCiAjaW1wb3J0ICJUZXN0V0tXZWJW
aWV3LmgiCiAjaW1wb3J0ICJVSUtpdFNQSS5oIgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1By
aXZhdGUuaD4KLSNpbXBvcnQgPFdlYktpdC9fV0tGb2N1c2VkRWxlbWVudEluZm8uaD4KLSNpbXBv
cnQgPFdlYktpdC9fV0tJbnB1dERlbGVnYXRlLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4K
IAogdHlwZWRlZiBVSVZpZXcgPFVJVGV4dElucHV0VHJhaXRzX1ByaXZhdGVfUHJvcG9zZWRfU1BJ
XzM0NTgzNjI4PiBBdXRvZmlsbElucHV0VmlldzsKIAotQGludGVyZmFjZSBUZXN0SW5wdXREZWxl
Z2F0ZSA6IE5TT2JqZWN0IDxfV0tJbnB1dERlbGVnYXRlPgotQHByb3BlcnR5IChub25hdG9taWMp
IEJPT0wgaW5wdXRTZXNzaW9uUmVxdWlyZXNVc2VySW50ZXJhY3Rpb247Ci1AZW5kCi0KLUBpbXBs
ZW1lbnRhdGlvbiBUZXN0SW5wdXREZWxlZ2F0ZQotCi0tIChpbnN0YW5jZXR5cGUpaW5pdAotewot
ICAgIGlmIChzZWxmID0gW3N1cGVyIGluaXRdKQotICAgICAgICBfaW5wdXRTZXNzaW9uUmVxdWly
ZXNVc2VySW50ZXJhY3Rpb24gPSBOTzsKLQotICAgIHJldHVybiBzZWxmOwotfQotCi0tIChCT09M
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGZvY3VzU2hvdWxkU3RhcnRJbnB1dFNlc3Np
b246KGlkIDxfV0tGb2N1c2VkRWxlbWVudEluZm8+KWluZm8KLXsKLSAgICByZXR1cm4gIXNlbGYu
aW5wdXRTZXNzaW9uUmVxdWlyZXNVc2VySW50ZXJhY3Rpb24gfHwgaW5mby51c2VySW5pdGlhdGVk
OwotfQotCi1AZW5kCi0KIEBpbnRlcmZhY2UgQXV0b2ZpbGxUZXN0VmlldyA6IFRlc3RXS1dlYlZp
ZXcKIEBlbmQKIApAQCAtNzEsNiArNDksOSBAQCB0eXBlZGVmIFVJVmlldyA8VUlUZXh0SW5wdXRU
cmFpdHNfUHJpdmF0ZV9Qcm9wb3NlZF9TUElfMzQ1ODM2Mjg+IEF1dG9maWxsSW5wdXRWaQogICAg
ICAgICByZXR1cm4gbmlsOwogCiAgICAgX3Rlc3REZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0SW5w
dXREZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFtfdGVzdERlbGVnYXRlIHNldEZvY3VzU3Rh
cnRzSW5wdXRTZXNzaW9uUG9saWN5SGFuZGxlcjpbXSAoV0tXZWJWaWV3ICosIGlkIDxfV0tGb2N1
c2VkRWxlbWVudEluZm8+KSAtPiBfV0tGb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeSB7Cisg
ICAgICAgIHJldHVybiBfV0tGb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeUFsbG93OworICAg
IH1dOwogICAgIHNlbGYuX2lucHV0RGVsZWdhdGUgPSBfdGVzdERlbGVnYXRlLmdldCgpOwogICAg
IHJldHVybiBzZWxmOwogfQpAQCAtMTg2LDcgKzE2Nyw5IEBAIFRFU1QoV0tXZWJWaWV3QXV0b2Zp
bGxUZXN0cywgQWNjb3VudENyZWF0aW9uUGFnZSkKIFRFU1QoV0tXZWJWaWV3QXV0b2ZpbGxUZXN0
cywgQXV0b2ZpbGxSZXF1aXJlc0lucHV0U2Vzc2lvbikKIHsKICAgICBhdXRvIHdlYlZpZXcgPSBh
ZG9wdE5TKFtbQXV0b2ZpbGxUZXN0VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtl
KDAsIDAsIDMyMCwgNTAwKV0pOwotICAgIFsoVGVzdElucHV0RGVsZWdhdGUgKilbd2ViVmlldyBf
aW5wdXREZWxlZ2F0ZV0gc2V0SW5wdXRTZXNzaW9uUmVxdWlyZXNVc2VySW50ZXJhY3Rpb246WUVT
XTsKKyAgICBbKFRlc3RJbnB1dERlbGVnYXRlICopW3dlYlZpZXcgX2lucHV0RGVsZWdhdGVdIHNl
dEZvY3VzU3RhcnRzSW5wdXRTZXNzaW9uUG9saWN5SGFuZGxlcjpbXSAoV0tXZWJWaWV3ICosIGlk
IDxfV0tGb2N1c2VkRWxlbWVudEluZm8+KSAtPiBfV0tGb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBv
bGljeSB7CisgICAgICAgIHJldHVybiBfV0tGb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeUF1
dG87CisgICAgfV07CiAgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAi
PGlucHV0IGlkPSd1c2VyJyB0eXBlPSdlbWFpbCc+PGlucHV0IGlkPSdwYXNzd29yZCcgdHlwZT0n
cGFzc3dvcmQnPiJdOwogICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6
QCJ1c2VyLmZvY3VzKCkiXTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3Mv
VUlLaXRTUEkuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL1VJS2l0U1BJLmgKaW5kZXggYzRi
NzI3N2I2MGU4YzljNTRmZGIzNzg5NzBmMmFmNzA3NjQzNTQwNC4uOGVkZDA1MmEwMzg0YjBjNzk0
Zjk5ZWQ3MDdiZjQ1YTFlNzI5MGZmMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9p
b3MvVUlLaXRTUEkuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9VSUtpdFNQSS5oCkBA
IC0zMCw2ICszMCw3IEBACiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAogI2ltcG9ydCA8
VUlLaXQvVUlBcHBsaWNhdGlvbl9Qcml2YXRlLmg+CisjaW1wb3J0IDxVSUtpdC9VSVJlc3BvbmRl
cl9Qcml2YXRlLmg+CiAjaW1wb3J0IDxVSUtpdC9VSVRleHRJbnB1dFRyYWl0c19Qcml2YXRlLmg+
CiAjaW1wb3J0IDxVSUtpdC9VSVRleHRJbnB1dF9Qcml2YXRlLmg+CiAjaW1wb3J0IDxVSUtpdC9V
SVZpZXdDb250cm9sbGVyX1ByaXZhdGUuaD4KQEAgLTYyLDggKzYzLDExIEBAIFdURl9FWFRFUk5f
Q19FTkQKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgVUlDb2xvciAqaW5zZXJ0aW9u
UG9pbnRDb2xvcjsKIEBlbmQKIAorQGNsYXNzIFdlYkV2ZW50OworCiBAcHJvdG9jb2wgVUlUZXh0
SW5wdXRQcml2YXRlIDxVSVRleHRJbnB1dCwgVUlUZXh0SW5wdXRUcmFpdHNfUHJpdmF0ZT4KIC0g
KHZvaWQpaW5zZXJ0VGV4dFN1Z2dlc3Rpb246KFVJVGV4dFN1Z2dlc3Rpb24gKil0ZXh0U3VnZ2Vz
dGlvbjsKKy0gKHZvaWQpaGFuZGxlS2V5V2ViRXZlbnQ6KFdlYkV2ZW50ICopdGhlRXZlbnQgd2l0
aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShXZWJFdmVudCAqLCBCT09MKSljb21wbGV0aW9u
SGFuZGxlcjsKIEBlbmQKIAogI2VuZGlmCkBAIC0xMDAsNCArMTA0LDggQEAgV1RGX0VYVEVSTl9D
X0VORAogKyAoVUlWaWV3Q29udHJvbGxlciAqKV92aWV3Q29udHJvbGxlckZvckZ1bGxTY3JlZW5Q
cmVzZW50YXRpb25Gcm9tVmlldzooVUlWaWV3ICopdmlldzsKIEBlbmQKIAorQGludGVyZmFjZSBV
SVJlc3BvbmRlciAoVUlLaXRTUEkpCistIChVSVJlc3BvbmRlciAqKWZpcnN0UmVzcG9uZGVyOwor
QGVuZAorCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>