<?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>203777</bug_id>
          
          <creation_ts>2019-11-01 21:52:55 -0700</creation_ts>
          <short_desc>Consolidate forEachViewInHierarchy and findAllViewsInHierarchyOfType into common helper file</short_desc>
          <delta_ts>2019-11-04 14:15:12 -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>Tools / Tests</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>DoNotImportToRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>203116</blocked>
          <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>1586710</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-11-01 21:52:55 -0700</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586711</commentid>
    <comment_count>1</comment_count>
      <attachid>382668</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-11-01 21:58:20 -0700</bug_when>
    <thetext>Created attachment 382668
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586712</commentid>
    <comment_count>2</comment_count>
      <attachid>382669</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-11-01 22:45:35 -0700</bug_when>
    <thetext>Created attachment 382669
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586716</commentid>
    <comment_count>3</comment_count>
      <attachid>382671</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-11-01 23:59:05 -0700</bug_when>
    <thetext>Created attachment 382671
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587068</commentid>
    <comment_count>4</comment_count>
      <attachid>382671</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-11-04 11:16:50 -0800</bug_when>
    <thetext>Comment on attachment 382671
Patch

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

&gt; Tools/WebKitTestRunner/cocoa/PlatformViewHelpers.h:26
&gt; +#pragma once

Maybe straight into TestRunnerShared?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587076</commentid>
    <comment_count>5</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-11-04 12:08:26 -0800</bug_when>
    <thetext>Thanks for the review!

(In reply to Tim Horton from comment #4)
&gt; Comment on attachment 382671 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=382671&amp;action=review
&gt; 
&gt; &gt; Tools/WebKitTestRunner/cocoa/PlatformViewHelpers.h:26
&gt; &gt; +#pragma once
&gt; 
&gt; Maybe straight into TestRunnerShared?

👍🏻 will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587105</commentid>
    <comment_count>6</comment_count>
      <attachid>382763</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-11-04 13:04:37 -0800</bug_when>
    <thetext>Created attachment 382763
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587136</commentid>
    <comment_count>7</comment_count>
      <attachid>382763</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-04 13:49:43 -0800</bug_when>
    <thetext>Comment on attachment 382763
Patch for landing

Clearing flags on attachment: 382763

Committed r252012: &lt;https://trac.webkit.org/changeset/252012&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382668</attachid>
            <date>2019-11-01 21:58:20 -0700</date>
            <delta_ts>2019-11-01 22:45:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203777-20191101215820.patch</filename>
            <type>text/plain</type>
            <size>15073</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxOTA4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjU3MmVjODgwZjIyYzYxYTcwODZlZmY3YjI5ZDJhNzAw
NDNhMmQ2Yi4uMTliMjg4ZWNlNTk1OTAxYjdjYzM1YjViODI4MTU1N2NmYmQwMTg3MiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0
IEBACisyMDE5LTExLTAxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgor
CisgICAgICAgIENvbnNvbGlkYXRlIGZvckVhY2hWaWV3SW5IaWVyYXJjaHkgYW5kIGZpbmRBbGxW
aWV3c0luSGllcmFyY2h5T2ZUeXBlIGludG8gY29tbW9uIGhlbHBlciBmaWxlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM3NzcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgQ29jb2EgaGVs
cGVyIGZpbGUsIFBsYXRmb3JtVmlld0hlbHBlcnMsIHRvIG1ha2UgaXQgZWFzaWVyIHRvIHRyYXZl
cnNlIHBsYXRmb3JtIHZpZXcgaGllcmFyY2hpZXMKKyAgICAgICAgKE5TVmlldyBhbmQgVUlWaWV3
KSBmb3IgdGVzdGluZyBwdXJwb3Nlcy4gVGhpcyBpcyBtaW5vciByZWZhY3RvcmluZywgYmVmb3Jl
IEkgdHJ5IHRvIGNyZWF0ZSBzb21lIG5ldyB0ZXN0aW5nCisgICAgICAgIHByaW1pdGl2ZXMgdG8g
bWFrZSB3ZWJraXQub3JnL2IvMjAzMTE2IHRlc3RhYmxlLgorCisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9QbGF0Zm9ybVZpZXdIZWxwZXJzLmg6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvUGxhdGZvcm1WaWV3SGVscGVycy5tbTogQWRkZWQuCisgICAgICAgICgtW1BsYXRm
b3JtVmlldyBmb3JFYWNoVmlld0luSGllcmFyY2h5Ol0pOgorICAgICAgICAoLVtQbGF0Zm9ybVZp
ZXcgYWxsVmlld3NJbkhpZXJhcmNoeU9mVHlwZTpdKToKKworICAgICAgICBSZW5hbWUgZmluZEFs
bFZpZXdzSW5IaWVyYXJjaHlPZlR5cGUgdG8ganVzdCBhbGxWaWV3c0luSGllcmFyY2h5T2ZUeXBl
LCBhbmQgdHVybiB0aGVzZSBzdGF0aWMgZnVuY3Rpb25zIGludG8KKyAgICAgICAgY2F0ZWdvcnkg
bWV0aG9kcyBvbiBVSVZpZXcgYW5kIE5TVmlldy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5oOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbToKKyAgICAgICAg
KFdUUjo6VUlTY3JpcHRDb250cm9sbGVySU9TOjpyZWN0Rm9yTWVudUFjdGlvbiBjb25zdCk6Cisg
ICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcklPUzo6aXNTaG93aW5nRGF0YUxpc3RTdWdn
ZXN0aW9ucyBjb25zdCk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcklPUzo6Zmlu
ZEVkaXRhYmxlSW1hZ2VDYW52YXMgY29uc3QpOgorCisgICAgICAgIFJlcGxhY2UgdXNhZ2VzIG9m
IGZvckVhY2hWaWV3SW5IaWVyYXJjaHkgYW5kIGZpbmRFZGl0YWJsZUltYWdlQ2FudmFzIHdpdGgg
dGhlaXIgbmV3IGNvdW50ZXJwYXJ0cy4KKworICAgICAgICAoV1RSOjpmb3JFYWNoVmlld0luSGll
cmFyY2h5KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6ZmluZEVkaXRhYmxlSW1hZ2VDYW52YXMp
OiBEZWxldGVkLgorCiAyMDE5LTExLTAxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBw
bGUuY29tPgogCiAgICAgICAgIFRlc3RXZWJLaXRBUEkuRWRpdG9yU3RhdGVUZXN0cy5UeXBpbmdB
dHRyaWJ1dGVzVGV4dEFsaWdubWVudFN0YXJ0RW5kIGlzIGZsYWt5IGluIGlPUyBzaW11bGF0b3IK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1WaWV3SGVscGVycy5o
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVZpZXdIZWxwZXJzLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzBhZTAzMDk3YzViNDg2Mjk5MTA4MGFmMTA4YmIxYmRiNDBhNjMzMgotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1WaWV3SGVscGVycy5oCkBAIC0w
LDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCisjaW1wb3J0IDxVSUtpdC9VSUtpdC5oPgorI2Vsc2UKKyNpbXBvcnQgPEFwcEtp
dC9BcHBLaXQuaD4KKyNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNkZWZpbmUg
UGxhdGZvcm1WaWV3IFVJVmlldworI2Vsc2UKKyNkZWZpbmUgUGxhdGZvcm1WaWV3IE5TVmlldwor
I2VuZGlmCisKK0BpbnRlcmZhY2UgUGxhdGZvcm1WaWV3IChUZXN0UnVubmVyKQorCistIChCT09M
KWZvckVhY2hWaWV3SW5IaWVyYXJjaHk6KHZvaWQoXikoUGxhdGZvcm1WaWV3ICpzdWJ2aWV3LCBC
T09MICpzdG9wKSltYXBGdW5jdGlvbjsKKy0gKE5TQXJyYXk8UGxhdGZvcm1WaWV3ICo+ICopYWxs
Vmlld3NJbkhpZXJhcmNoeU9mVHlwZTooQ2xhc3Mpdmlld0NsYXNzOworCitAZW5kCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtVmlld0hlbHBlcnMubW0gYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtVmlld0hlbHBlcnMubW0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWI0
YjM2MjU2ZDhiZmY2MzljMTJhZGIzODAzYWFjYTZmMmQwM2FjYQotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1WaWV3SGVscGVycy5tbQpAQCAtMCwwICsx
LDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJQbGF0Zm9y
bVZpZXdIZWxwZXJzLmgiCisKKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworQGltcGxlbWVu
dGF0aW9uIFBsYXRmb3JtVmlldyAoVGVzdFJ1bm5lcikKKworLSAoQk9PTClmb3JFYWNoVmlld0lu
SGllcmFyY2h5Oih2b2lkKF4pKFBsYXRmb3JtVmlldyAqc3VidmlldywgQk9PTCAqc3RvcCkpbWFw
RnVuY3Rpb24KK3sKKyAgICBCT09MIHN0b3AgPSBOTzsKKyAgICBtYXBGdW5jdGlvbihzZWxmLCAm
c3RvcCk7CisgICAgaWYgKHN0b3ApCisgICAgICAgIHJldHVybiBZRVM7CisKKyAgICBmb3IgKFBs
YXRmb3JtVmlldyAqc3VidmlldyBpbiBzZWxmLnN1YnZpZXdzKSB7CisgICAgICAgIHN0b3AgPSBb
c3VidmlldyBmb3JFYWNoVmlld0luSGllcmFyY2h5Om1hcEZ1bmN0aW9uXTsKKyAgICAgICAgaWYg
KHN0b3ApCisgICAgICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHN0b3A7Cit9CisK
Ky0gKE5TQXJyYXk8UGxhdGZvcm1WaWV3ICo+ICopYWxsVmlld3NJbkhpZXJhcmNoeU9mVHlwZToo
Q2xhc3Mpdmlld0NsYXNzCit7CisgICAgX19ibG9jayBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+
IHZpZXdzID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CisgICAgW3Nl
bGYgZm9yRWFjaFZpZXdJbkhpZXJhcmNoeTpeKFBsYXRmb3JtVmlldyAqc3VidmlldywgQk9PTCAq
c3RvcCkgeworICAgICAgICBpZiAoW3N1YnZpZXcgaXNLaW5kT2ZDbGFzczp2aWV3Q2xhc3NdKQor
ICAgICAgICAgICAgW3ZpZXdzIGFkZE9iamVjdDpzdWJ2aWV3XTsKKyAgICB9XTsKKyAgICByZXR1
cm4gdmlld3MuYXV0b3JlbGVhc2UoKTsKK30KKworQGVuZApkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBhYWM3Y2I3MjVlNTFjZTc5M2MxNmU2NWExMWMxZjFhMTE1MWM4ZDYw
Li4xZmZmMTkxNjhiMjBhYzJmNjNhMTgzZDJhNGFhMTJkNzA4MThlYzljIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODUsNiArODUsNyBAQAogCQkyREQ0QzQ5QjFENkU3
RDNCMDAwNzM3OUMgLyogRXZlbnRTZXJpYWxpemVyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRENEM0OTkxRDZFN0QzQjAwMDczNzlDIC8qIEV2
ZW50U2VyaWFsaXplck1hYy5tbSAqLzsgfTsKIAkJMkRGQTk4NDgxRDdGNzBDRjAwQUZGMkM5IC8q
IFNoYXJlZEV2ZW50U3RyZWFtc01hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkRGQTk4NDYxRDdGNzBDRjAwQUZGMkM5IC8qIFNoYXJlZEV2ZW50U3Ry
ZWFtc01hYy5oICovOyB9OwogCQkyREZBOTg0OTFEN0Y3MENGMDBBRkYyQzkgLyogU2hhcmVkRXZl
bnRTdHJlYW1zTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkRGQTk4NDcxRDdGNzBDRjAwQUZGMkM5IC8qIFNoYXJlZEV2ZW50U3RyZWFtc01hYy5t
bSAqLzsgfTsKKwkJMkUyREVDOTEyMzZEMDQ1MjAwMTY4QkE1IC8qIFBsYXRmb3JtVmlld0hlbHBl
cnMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTJE
RUM4RjIzNkQwNDI4MDAxNjhCQTUgLyogUGxhdGZvcm1WaWV3SGVscGVycy5tbSAqLzsgfTsKIAkJ
MkUzNEM5MDAxOEI2ODgwODAwMDA2N0JCIC8qIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRs
ZS5idW5kbGUgaW4gQ29weSBQbHVnLUlucyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzI1MTg2MjExRDE1RDU0MDAyRUJDMDEgLyogV2ViS2l0VGVzdFJ1bm5lckluamVjdGVk
QnVuZGxlLmJ1bmRsZSAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChDb2RlU2lnbk9uQ29w
eSwgUmVtb3ZlSGVhZGVyc09uQ29weSwgKTsgfTsgfTsKIAkJMkU2M0VEOEExODkxQUQ3RTAwMkE3
QUZDIC8qIEFjY2Vzc2liaWxpdHlDb250cm9sbGVySU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU2M0VENzUxODkxQUNFOTAwMkE3QUZDIC8qIEFj
Y2Vzc2liaWxpdHlDb250cm9sbGVySU9TLm1tICovOyB9OwogCQkyRTYzRUQ4QjE4OTFBRDdFMDAy
QTdBRkMgLyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTYzRUQ3NzE4OTFBQ0U5MDAyQTdBRkMgLyog
QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJJT1MubW0gKi87IH07CkBAIC0yODUsNiArMjg2LDggQEAK
IAkJMkRENEM0OTkxRDZFN0QzQjAwMDczNzlDIC8qIEV2ZW50U2VyaWFsaXplck1hYy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEV2ZW50U2VyaWFsaXplck1hYy5t
bTsgcGF0aCA9IG1hYy9FdmVudFNlcmlhbGl6ZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTJERkE5ODQ2MUQ3RjcwQ0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0cmVhbXNN
YWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU2hhcmVkRXZlbnRTdHJlYW1z
TWFjLmg7IHBhdGggPSBtYWMvU2hhcmVkRXZlbnRTdHJlYW1zTWFjLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTJERkE5ODQ3MUQ3RjcwQ0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0
cmVhbXNNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBTaGFy
ZWRFdmVudFN0cmVhbXNNYWMubW07IHBhdGggPSBtYWMvU2hhcmVkRXZlbnRTdHJlYW1zTWFjLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRTJERUM4RTIzNkQwNDI4MDAxNjhCQTUg
LyogUGxhdGZvcm1WaWV3SGVscGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybVZpZXdIZWxw
ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFMkRFQzhGMjM2RDA0MjgwMDE2
OEJBNSAvKiBQbGF0Zm9ybVZpZXdIZWxwZXJzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGxh
dGZvcm1WaWV3SGVscGVycy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU2M0VE
NzUxODkxQUNFOTAwMkE3QUZDIC8qIEFjY2Vzc2liaWxpdHlDb250cm9sbGVySU9TLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFNjNFRDc2MTg5MUFDRTkw
MDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTYzRUQ3NzE4OTFBQ0U5MDAyQTdBRkMg
LyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcklPUy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg5MCw2ICs4OTMsOCBAQAogCQkJCUY0NEE1MzE2MjFCODk5
REEwMERCQjk5QyAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1tICovLAogCQkJCUY0QzM1NzhC
MjBFODQ0NDAwMEZBMDc0OCAvKiBMYXlvdXRUZXN0U3BlbGxDaGVja2VyLmggKi8sCiAJCQkJRjRD
MzU3OEEyMEU4NDQ0MDAwRkEwNzQ4IC8qIExheW91dFRlc3RTcGVsbENoZWNrZXIubW0gKi8sCisJ
CQkJMkUyREVDOEUyMzZEMDQyODAwMTY4QkE1IC8qIFBsYXRmb3JtVmlld0hlbHBlcnMuaCAqLywK
KwkJCQkyRTJERUM4RjIzNkQwNDI4MDAxNjhCQTUgLyogUGxhdGZvcm1WaWV3SGVscGVycy5tbSAq
LywKIAkJCSk7CiAJCQluYW1lID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpA
QCAtMTE4MSw2ICsxMTg2LDcgQEAKIAkJCQlGNEMzNTc4QzIwRTg0NDQ2MDBGQTA3NDggLyogTGF5
b3V0VGVzdFNwZWxsQ2hlY2tlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExODUxMDNDMUI5QUUw
RkUwMDc0NEFFQiAvKiBPcHRpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExODUxMDQwMUI5
QUUxMzEwMDc0NEFFQiAvKiBQaXhlbER1bXBTdXBwb3J0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTJFMkRFQzkxMjM2RDA0NTIwMDE2OEJBNSAvKiBQbGF0Zm9ybVZpZXdIZWxwZXJzLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJMkRGQTk4NDkxRDdGNzBDRjAwQUZGMkM5IC8qIFNoYXJlZEV2ZW50U3Ry
ZWFtc01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExODUxMDQxMUI5QUUxMzgwMDc0NEFFQiAv
KiBUZXN0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMTg1MTAzQjFCOUFFMEUy
MDA3NDRBRUIgLyogVGVzdENvbnRyb2xsZXJDb2NvYS5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLmgg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MuaAppbmRl
eCAxZjM5N2U0MzI3ZmQyY2ZlMmQ4MjgxZDE0YzcxZTdhNTBlMjhmZjMyLi5hNmNhZGJmYTZiM2Vj
MjgzMWE1YzgzMzkzY2I0NTdmNDM4NjFhOGMyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MuaApAQCAtMzAsNiArMzAsMTAgQEAKIAog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKKyNpZiBIQVZFKFBFTkNJTEtJVCkKK0BjbGFzcyBQ
S0NhbnZhc1ZpZXc7CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRmxvYXRQ
b2ludDsKIGNsYXNzIEZsb2F0UmVjdDsKQEAgLTE1Myw2ICsxNTcsOSBAQCBwcml2YXRlOgogICAg
IHZvaWQgd2FpdEZvclNpbmdsZVRhcFRvUmVzZXQoKSBjb25zdDsKICAgICBXZWJDb3JlOjpGbG9h
dFJlY3QgcmVjdEZvck1lbnVBY3Rpb24oQ0ZTdHJpbmdSZWYpIGNvbnN0OwogICAgIHZvaWQgc2lu
Z2xlVGFwQXRQb2ludFdpdGhNb2RpZmllcnMoV2ViQ29yZTo6RmxvYXRQb2ludCBsb2NhdGlvbiwg
VmVjdG9yPFN0cmluZz4mJiBtb2RpZmllckZsYWdzLCBCbG9ja1B0cjx2b2lkKCk+JiYpOworI2lm
IEhBVkUoUEVOQ0lMS0lUKQorICAgIFBLQ2FudmFzVmlldyAqZmluZEVkaXRhYmxlSW1hZ2VDYW52
YXMoKSBjb25zdDsKKyNlbmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCmluZGV4IDkwNjQwYjZmMjVmZjQzNDAz
YjE5NTE1NzQyNTFiY2EzZDAzY2I2MWIuLjkwMDA3ZGI5OTNlZDk1ZDI5YjEwY2ViMDdiYTMzNjI2
NTMyMzU0MzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0
Q29udHJvbGxlcklPUy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlw
dENvbnRyb2xsZXJJT1MubW0KQEAgLTMwLDYgKzMwLDcgQEAKIAogI2ltcG9ydCAiSElERXZlbnRH
ZW5lcmF0b3IuaCIKICNpbXBvcnQgIlBlbmNpbEtpdFRlc3RTUEkuaCIKKyNpbXBvcnQgIlBsYXRm
b3JtVmlld0hlbHBlcnMuaCIKICNpbXBvcnQgIlBsYXRmb3JtV2ViVmlldy5oIgogI2ltcG9ydCAi
U3RyaW5nRnVuY3Rpb25zLmgiCiAjaW1wb3J0ICJUZXN0Q29udHJvbGxlci5oIgpAQCAtMTA1LDMx
ICsxMDYsNiBAQCBzdGF0aWMgVmVjdG9yPFN0cmluZz4gcGFyc2VNb2RpZmllckFycmF5KEpTQ29u
dGV4dFJlZiBjb250ZXh0LCBKU1ZhbHVlUmVmIGFycmF5VgogICAgIHJldHVybiBtb2RpZmllcnM7
CiB9CiAKLXN0YXRpYyBCT09MIGZvckVhY2hWaWV3SW5IaWVyYXJjaHkoVUlWaWV3ICp2aWV3LCB2
b2lkKF5tYXBGdW5jdGlvbikoVUlWaWV3ICpzdWJ2aWV3LCBCT09MICpzdG9wKSkKLXsKLSAgICBC
T09MIHN0b3AgPSBOTzsKLSAgICBtYXBGdW5jdGlvbih2aWV3LCAmc3RvcCk7Ci0gICAgaWYgKHN0
b3ApCi0gICAgICAgIHJldHVybiBZRVM7Ci0KLSAgICBmb3IgKFVJVmlldyAqc3VidmlldyBpbiB2
aWV3LnN1YnZpZXdzKSB7Ci0gICAgICAgIHN0b3AgPSBmb3JFYWNoVmlld0luSGllcmFyY2h5KHN1
YnZpZXcsIG1hcEZ1bmN0aW9uKTsKLSAgICAgICAgaWYgKHN0b3ApCi0gICAgICAgICAgICBicmVh
azsKLSAgICB9Ci0gICAgcmV0dXJuIHN0b3A7Ci19Ci0KLXN0YXRpYyBOU0FycmF5PFVJVmlldyAq
PiAqZmluZEFsbFZpZXdzSW5IaWVyYXJjaHlPZlR5cGUoVUlWaWV3ICp2aWV3LCBDbGFzcyB2aWV3
Q2xhc3MpCi17Ci0gICAgX19ibG9jayBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+IHZpZXdzID0g
YWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7Ci0gICAgZm9yRWFjaFZpZXdJ
bkhpZXJhcmNoeSh2aWV3LCBeKFVJVmlldyAqc3VidmlldywgQk9PTCAqc3RvcCkgewotICAgICAg
ICBpZiAoW3N1YnZpZXcgaXNLaW5kT2ZDbGFzczp2aWV3Q2xhc3NdKQotICAgICAgICAgICAgW3Zp
ZXdzIGFkZE9iamVjdDpzdWJ2aWV3XTsKLSAgICB9KTsKLSAgICByZXR1cm4gdmlld3MuYXV0b3Jl
bGVhc2UoKTsKLX0KLQogUmVmPFVJU2NyaXB0Q29udHJvbGxlcj4gVUlTY3JpcHRDb250cm9sbGVy
OjpjcmVhdGUoVUlTY3JpcHRDb250ZXh0JiBjb250ZXh0KQogewogICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFVJU2NyaXB0Q29udHJvbGxlcklPUyhjb250ZXh0KSk7CkBAIC05OTAsNyArOTY2LDgg
QEAgV2ViQ29yZTo6RmxvYXRSZWN0IFVJU2NyaXB0Q29udHJvbGxlcklPUzo6cmVjdEZvck1lbnVB
Y3Rpb24oQ0ZTdHJpbmdSZWYgYWN0aW9uKQogICAgIGlmICghY2FsbG91dEJhci53aW5kb3cpCiAg
ICAgICAgIHJldHVybiB7IH07CiAKLSAgICBmb3IgKFVJQnV0dG9uICpidXR0b24gaW4gZmluZEFs
bFZpZXdzSW5IaWVyYXJjaHlPZlR5cGUoY2FsbG91dEJhciwgVUlCdXR0b24uY2xhc3MpKSB7Cisg
ICAgYXV0byBidXR0b25zSW5DYWxsb3V0QmFyID0gW2NhbGxvdXRCYXIgYWxsVmlld3NJbkhpZXJh
cmNoeU9mVHlwZTpVSUJ1dHRvbi5jbGFzc107CisgICAgZm9yIChVSUJ1dHRvbiAqYnV0dG9uIGlu
IGJ1dHRvbnNJbkNhbGxvdXRCYXIpIHsKICAgICAgICAgTlNTdHJpbmcgKmJ1dHRvblRpdGxlID0g
W2J1dHRvbiB0aXRsZUZvclN0YXRlOlVJQ29udHJvbFN0YXRlTm9ybWFsXTsKICAgICAgICAgaWYg
KCFidXR0b25UaXRsZS5sZW5ndGgpCiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTEwNzAsMzEg
KzEwNDcsMzMgQEAgYm9vbCBVSVNjcmlwdENvbnRyb2xsZXJJT1M6OmlzU2hvd2luZ0RhdGFMaXN0
U3VnZ2VzdGlvbnMoKSBjb25zdAogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBfX2Jsb2Nr
IGJvb2wgZm91bmREYXRhTGlzdFN1Z2dlc3Rpb25zUGlja2VyVmlldyA9IGZhbHNlOwotICAgIGZv
ckVhY2hWaWV3SW5IaWVyYXJjaHkocmVtb3RlSW5wdXRIb3N0aW5nV2luZG93LCBeKFVJVmlldyAq
c3VidmlldywgQk9PTCAqc3RvcCkgeworICAgIFtyZW1vdGVJbnB1dEhvc3RpbmdXaW5kb3cgZm9y
RWFjaFZpZXdJbkhpZXJhcmNoeTpeKFVJVmlldyAqc3VidmlldywgQk9PTCAqc3RvcCkgewogICAg
ICAgICBpZiAoIVtzdWJ2aWV3IGlzS2luZE9mQ2xhc3M6c3VnZ2VzdGlvbnNQaWNrZXJWaWV3Q2xh
c3NdKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGZvdW5kRGF0YUxpc3RTdWdnZXN0
aW9uc1BpY2tlclZpZXcgPSB0cnVlOwogICAgICAgICAqc3RvcCA9IFlFUzsKLSAgICB9KTsKKyAg
ICB9XTsKICAgICByZXR1cm4gZm91bmREYXRhTGlzdFN1Z2dlc3Rpb25zUGlja2VyVmlldzsKIH0K
IAogI2lmIEhBVkUoUEVOQ0lMS0lUKQotc3RhdGljIFBLQ2FudmFzVmlldyAqZmluZEVkaXRhYmxl
SW1hZ2VDYW52YXMoKQorCitQS0NhbnZhc1ZpZXcgKlVJU2NyaXB0Q29udHJvbGxlcklPUzo6Zmlu
ZEVkaXRhYmxlSW1hZ2VDYW52YXMoKSBjb25zdAogewogICAgIENsYXNzIHBrQ2FudmFzVmlld0Ns
YXNzID0gTlNDbGFzc0Zyb21TdHJpbmcoQCJQS0NhbnZhc1ZpZXciKTsKICAgICBfX2Jsb2NrIFBL
Q2FudmFzVmlldyAqY2FudmFzVmlldyA9IG5pbDsKLSAgICBmb3JFYWNoVmlld0luSGllcmFyY2h5
KHdlYlZpZXcoKS53aW5kb3csIF4oVUlWaWV3ICpzdWJ2aWV3LCBCT09MICpzdG9wKSB7CisgICAg
W3dlYlZpZXcoKS53aW5kb3cgZm9yRWFjaFZpZXdJbkhpZXJhcmNoeTpeKFVJVmlldyAqc3Vidmll
dywgQk9PTCAqc3RvcCkgewogICAgICAgICBpZiAoIVtzdWJ2aWV3IGlzS2luZE9mQ2xhc3M6cGtD
YW52YXNWaWV3Q2xhc3NdKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGNhbnZhc1Zp
ZXcgPSAoUEtDYW52YXNWaWV3ICopc3VidmlldzsKICAgICAgICAgKnN0b3AgPSBZRVM7Ci0gICAg
fSk7CisgICAgfV07CiAgICAgcmV0dXJuIGNhbnZhc1ZpZXc7CiB9Ci0jZW5kaWYKKworI2VuZGlm
IC8vIEhBVkUoUEVOQ0lMS0lUKQogCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcklPUzo6ZHJhd1Nx
dWFyZUluRWRpdGFibGVJbWFnZSgpCiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382669</attachid>
            <date>2019-11-01 22:45:35 -0700</date>
            <delta_ts>2019-11-01 23:59:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203777-20191101224534.patch</filename>
            <type>text/plain</type>
            <size>15213</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxOTA4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjU3MmVjODgwZjIyYzYxYTcwODZlZmY3YjI5ZDJhNzAw
NDNhMmQ2Yi4uOTJiNTRmNmJkZmI2ZTRjY2ZkOGE4ZDZjZDM1ZjE4ZjQ3ZDFkMmUyNSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0
IEBACisyMDE5LTExLTAxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgor
CisgICAgICAgIENvbnNvbGlkYXRlIGZvckVhY2hWaWV3SW5IaWVyYXJjaHkgYW5kIGZpbmRBbGxW
aWV3c0luSGllcmFyY2h5T2ZUeXBlIGludG8gY29tbW9uIGhlbHBlciBmaWxlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM3NzcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgQ29jb2EgaGVs
cGVyIGZpbGUsIFBsYXRmb3JtVmlld0hlbHBlcnMsIHRvIG1ha2UgaXQgZWFzaWVyIHRvIHRyYXZl
cnNlIHBsYXRmb3JtIHZpZXcgaGllcmFyY2hpZXMKKyAgICAgICAgKE5TVmlldyBhbmQgVUlWaWV3
KSBmb3IgdGVzdGluZyBwdXJwb3Nlcy4gVGhpcyBpcyBtaW5vciByZWZhY3RvcmluZywgYmVmb3Jl
IEkgdHJ5IHRvIGNyZWF0ZSBzb21lIG5ldyB0ZXN0aW5nCisgICAgICAgIHByaW1pdGl2ZXMgdG8g
bWFrZSB3ZWJraXQub3JnL2IvMjAzMTE2IHRlc3RhYmxlLgorCisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9QbGF0Zm9ybVZpZXdIZWxwZXJzLmg6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9QbGF0Zm9ybVZpZXdIZWxwZXJzLm1tOgorICAg
ICAgICAoLVtQbGF0Zm9ybVZpZXcgZm9yRWFjaFZpZXdJbkhpZXJhcmNoeTpdKToKKyAgICAgICAg
KC1bUGxhdGZvcm1WaWV3IGFsbFZpZXdzSW5IaWVyYXJjaHlPZlR5cGU6XSk6CisKKyAgICAgICAg
UmVuYW1lIGZpbmRBbGxWaWV3c0luSGllcmFyY2h5T2ZUeXBlIHRvIGp1c3QgYWxsVmlld3NJbkhp
ZXJhcmNoeU9mVHlwZSwgYW5kIHR1cm4gdGhlc2Ugc3RhdGljIGZ1bmN0aW9ucyBpbnRvCisgICAg
ICAgIGNhdGVnb3J5IG1ldGhvZHMgb24gVUlWaWV3IGFuZCBOU1ZpZXcuCisKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MuaDoKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW06CisgICAgICAgIChX
VFI6OlVJU2NyaXB0Q29udHJvbGxlcklPUzo6cmVjdEZvck1lbnVBY3Rpb24gY29uc3QpOgorICAg
ICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXJJT1M6OmlzU2hvd2luZ0RhdGFMaXN0U3VnZ2Vz
dGlvbnMgY29uc3QpOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXJJT1M6OmZpbmRF
ZGl0YWJsZUltYWdlQ2FudmFzIGNvbnN0KToKKworICAgICAgICBSZXBsYWNlIHVzYWdlcyBvZiBm
b3JFYWNoVmlld0luSGllcmFyY2h5IGFuZCBmaW5kRWRpdGFibGVJbWFnZUNhbnZhcyB3aXRoIHRo
ZWlyIG5ldyBjb3VudGVycGFydHMuCisKKyAgICAgICAgKFdUUjo6Zm9yRWFjaFZpZXdJbkhpZXJh
cmNoeSk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OmZpbmRFZGl0YWJsZUltYWdlQ2FudmFzKTog
RGVsZXRlZC4KKwogMjAxOS0xMS0wMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxl
LmNvbT4KIAogICAgICAgICBUZXN0V2ViS2l0QVBJLkVkaXRvclN0YXRlVGVzdHMuVHlwaW5nQXR0
cmlidXRlc1RleHRBbGlnbm1lbnRTdGFydEVuZCBpcyBmbGFreSBpbiBpT1Mgc2ltdWxhdG9yCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1
bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGFhYzdjYjcyNWU1MWNlNzkzYzE2
ZTY1YTExYzFmMWExMTUxYzhkNjAuLjUyM2YzODc5YzRjMjEwY2QzMDI1OTg5YTcxOWFiMDg1ODc1
MWM5ZDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5l
ci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
V2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NSw2ICs4NSw3
IEBACiAJCTJERDRDNDlCMUQ2RTdEM0IwMDA3Mzc5QyAvKiBFdmVudFNlcmlhbGl6ZXJNYWMubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREQ0QzQ5OTFE
NkU3RDNCMDAwNzM3OUMgLyogRXZlbnRTZXJpYWxpemVyTWFjLm1tICovOyB9OwogCQkyREZBOTg0
ODFEN0Y3MENGMDBBRkYyQzkgLyogU2hhcmVkRXZlbnRTdHJlYW1zTWFjLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREZBOTg0NjFEN0Y3MENGMDBBRkYy
QzkgLyogU2hhcmVkRXZlbnRTdHJlYW1zTWFjLmggKi87IH07CiAJCTJERkE5ODQ5MUQ3RjcwQ0Yw
MEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0cmVhbXNNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREZBOTg0NzFEN0Y3MENGMDBBRkYyQzkgLyogU2hh
cmVkRXZlbnRTdHJlYW1zTWFjLm1tICovOyB9OworCQkyRTJERUM5MTIzNkQwNDUyMDAxNjhCQTUg
LyogUGxhdGZvcm1WaWV3SGVscGVycy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJFMkRFQzhGMjM2RDA0MjgwMDE2OEJBNSAvKiBQbGF0Zm9ybVZpZXdI
ZWxwZXJzLm1tICovOyB9OwogCQkyRTM0QzkwMDE4QjY4ODA4MDAwMDY3QkIgLyogV2ViS2l0VGVz
dFJ1bm5lckluamVjdGVkQnVuZGxlLmJ1bmRsZSBpbiBDb3B5IFBsdWctSW5zICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMjUxODYyMTFEMTVENTQwMDJFQkMwMSAvKiBXZWJL
aXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGUuYnVuZGxlICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKENvZGVTaWduT25Db3B5LCBSZW1vdmVIZWFkZXJzT25Db3B5LCApOyB9OyB9OwogCQky
RTYzRUQ4QTE4OTFBRDdFMDAyQTdBRkMgLyogQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTYzRUQ3NTE4
OTFBQ0U5MDAyQTdBRkMgLyogQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW0gKi87IH07CiAJ
CTJFNjNFRDhCMTg5MUFEN0UwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcklPUy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNjNFRDc3
MTg5MUFDRTkwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcklPUy5tbSAqLzsgfTsK
QEAgLTI4NSw2ICsyODYsOCBAQAogCQkyREQ0QzQ5OTFENkU3RDNCMDAwNzM3OUMgLyogRXZlbnRT
ZXJpYWxpemVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0g
RXZlbnRTZXJpYWxpemVyTWFjLm1tOyBwYXRoID0gbWFjL0V2ZW50U2VyaWFsaXplck1hYy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRGQTk4NDYxRDdGNzBDRjAwQUZGMkM5IC8q
IFNoYXJlZEV2ZW50U3RyZWFtc01hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBTaGFyZWRFdmVudFN0cmVhbXNNYWMuaDsgcGF0aCA9IG1hYy9TaGFyZWRFdmVudFN0cmVhbXNN
YWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRGQTk4NDcxRDdGNzBDRjAwQUZG
MkM5IC8qIFNoYXJlZEV2ZW50U3RyZWFtc01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgbmFtZSA9IFNoYXJlZEV2ZW50U3RyZWFtc01hYy5tbTsgcGF0aCA9IG1hYy9TaGFy
ZWRFdmVudFN0cmVhbXNNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFMkRF
QzhFMjM2RDA0MjgwMDE2OEJBNSAvKiBQbGF0Zm9ybVZpZXdIZWxwZXJzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtVmlld0hlbHBlcnMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMkUyREVDOEYyMzZEMDQyODAwMTY4QkE1IC8qIFBsYXRmb3JtVmll
d0hlbHBlcnMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQbGF0
Zm9ybVZpZXdIZWxwZXJzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTYzRUQ3
NTE4OTFBQ0U5MDAyQTdBRkMgLyogQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5Q29udHJvbGxl
cklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU2M0VENzYxODkxQUNFOTAw
MkE3QUZDIC8qIEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFNjNFRDc3MTg5MUFDRTkwMDJBN0FGQyAv
KiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlUZXh0TWFya2VySU9TLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNTkwLDYgKzU5Myw4IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJ
CQkwRkVCOTBBMjE5MDVCQzZBMDAwRkRCRjMgLyogQ3Jhc2hSZXBvcnRlckluZm8uaCAqLywKIAkJ
CQkwRkVCOTBBMzE5MDVCQzZBMDAwRkRCRjMgLyogQ3Jhc2hSZXBvcnRlckluZm8ubW0gKi8sCisJ
CQkJMkUyREVDOEUyMzZEMDQyODAwMTY4QkE1IC8qIFBsYXRmb3JtVmlld0hlbHBlcnMuaCAqLywK
KwkJCQkyRTJERUM4RjIzNkQwNDI4MDAxNjhCQTUgLyogUGxhdGZvcm1WaWV3SGVscGVycy5tbSAq
LywKIAkJCQkyRENFMkNEMTFCODQ1MjQ1MDBDN0Y4MzIgLyogVGVzdENvbnRyb2xsZXJDb2NvYS5t
bSAqLywKIAkJCQkwRjg3QjYxNDFCQUNDNEI5MDA0RUM1NzIgLyogVGVzdFJ1bm5lcldLV2ViVmll
dy5oICovLAogCQkJCTBGODdCNjE1MUJBQ0M0QjkwMDRFQzU3MiAvKiBUZXN0UnVubmVyV0tXZWJW
aWV3Lm1tICovLApAQCAtMTE4MSw2ICsxMTg2LDcgQEAKIAkJCQlGNEMzNTc4QzIwRTg0NDQ2MDBG
QTA3NDggLyogTGF5b3V0VGVzdFNwZWxsQ2hlY2tlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUEx
ODUxMDNDMUI5QUUwRkUwMDc0NEFFQiAvKiBPcHRpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUExODUxMDQwMUI5QUUxMzEwMDc0NEFFQiAvKiBQaXhlbER1bXBTdXBwb3J0LmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTJFMkRFQzkxMjM2RDA0NTIwMDE2OEJBNSAvKiBQbGF0Zm9ybVZpZXdIZWxw
ZXJzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRGQTk4NDkxRDdGNzBDRjAwQUZGMkM5IC8qIFNo
YXJlZEV2ZW50U3RyZWFtc01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExODUxMDQxMUI5QUUx
MzgwMDc0NEFFQiAvKiBUZXN0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMTg1
MTAzQjFCOUFFMEUyMDA3NDRBRUIgLyogVGVzdENvbnRyb2xsZXJDb2NvYS5tbSBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9QbGF0Zm9ybVZp
ZXdIZWxwZXJzLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1BsYXRmb3JtVmlld0hl
bHBlcnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43MGFlMDMwOTdjNWI0ODYyOTkxMDgwYWYxMDhiYjFiZGI0MGE2
MzMyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9QbGF0
Zm9ybVZpZXdIZWxwZXJzLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpbXBvcnQgPFVJS2l0L1VJS2l0Lmg+
CisjZWxzZQorI2ltcG9ydCA8QXBwS2l0L0FwcEtpdC5oPgorI2VuZGlmCisKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQorI2RlZmluZSBQbGF0Zm9ybVZpZXcgVUlWaWV3CisjZWxzZQorI2RlZmlu
ZSBQbGF0Zm9ybVZpZXcgTlNWaWV3CisjZW5kaWYKKworQGludGVyZmFjZSBQbGF0Zm9ybVZpZXcg
KFRlc3RSdW5uZXIpCisKKy0gKEJPT0wpZm9yRWFjaFZpZXdJbkhpZXJhcmNoeToodm9pZCheKShQ
bGF0Zm9ybVZpZXcgKnN1YnZpZXcsIEJPT0wgKnN0b3ApKW1hcEZ1bmN0aW9uOworLSAoTlNBcnJh
eTxQbGF0Zm9ybVZpZXcgKj4gKilhbGxWaWV3c0luSGllcmFyY2h5T2ZUeXBlOihDbGFzcyl2aWV3
Q2xhc3M7CisKK0BlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2Ev
UGxhdGZvcm1WaWV3SGVscGVycy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvUGxh
dGZvcm1WaWV3SGVscGVycy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYjRiMzYyNTZkOGJmZjYzOWMxMmFkYjM4
MDNhYWNhNmYyZDAzYWNhCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9jb2NvYS9QbGF0Zm9ybVZpZXdIZWxwZXJzLm1tCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlBsYXRmb3JtVmlld0hlbHBlcnMuaCIK
KworI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCitAaW1wbGVtZW50YXRpb24gUGxhdGZvcm1W
aWV3IChUZXN0UnVubmVyKQorCistIChCT09MKWZvckVhY2hWaWV3SW5IaWVyYXJjaHk6KHZvaWQo
XikoUGxhdGZvcm1WaWV3ICpzdWJ2aWV3LCBCT09MICpzdG9wKSltYXBGdW5jdGlvbgoreworICAg
IEJPT0wgc3RvcCA9IE5POworICAgIG1hcEZ1bmN0aW9uKHNlbGYsICZzdG9wKTsKKyAgICBpZiAo
c3RvcCkKKyAgICAgICAgcmV0dXJuIFlFUzsKKworICAgIGZvciAoUGxhdGZvcm1WaWV3ICpzdWJ2
aWV3IGluIHNlbGYuc3Vidmlld3MpIHsKKyAgICAgICAgc3RvcCA9IFtzdWJ2aWV3IGZvckVhY2hW
aWV3SW5IaWVyYXJjaHk6bWFwRnVuY3Rpb25dOworICAgICAgICBpZiAoc3RvcCkKKyAgICAgICAg
ICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gc3RvcDsKK30KKworLSAoTlNBcnJheTxQbGF0
Zm9ybVZpZXcgKj4gKilhbGxWaWV3c0luSGllcmFyY2h5T2ZUeXBlOihDbGFzcyl2aWV3Q2xhc3MK
K3sKKyAgICBfX2Jsb2NrIFJldGFpblB0cjxOU011dGFibGVBcnJheT4gdmlld3MgPSBhZG9wdE5T
KFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKKyAgICBbc2VsZiBmb3JFYWNoVmlld0lu
SGllcmFyY2h5Ol4oUGxhdGZvcm1WaWV3ICpzdWJ2aWV3LCBCT09MICpzdG9wKSB7CisgICAgICAg
IGlmIChbc3VidmlldyBpc0tpbmRPZkNsYXNzOnZpZXdDbGFzc10pCisgICAgICAgICAgICBbdmll
d3MgYWRkT2JqZWN0OnN1YnZpZXddOworICAgIH1dOworICAgIHJldHVybiB2aWV3cy5hdXRvcmVs
ZWFzZSgpOworfQorCitAZW5kCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lv
cy9VSVNjcmlwdENvbnRyb2xsZXJJT1MuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJ
U2NyaXB0Q29udHJvbGxlcklPUy5oCmluZGV4IDFmMzk3ZTQzMjdmZDJjZmUyZDgyODFkMTRjNzFl
N2E1MGUyOGZmMzIuLmE2Y2FkYmZhNmIzZWMyODMxYTVjODMzOTNjYjQ1N2Y0Mzg2MWE4YzIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklP
Uy5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklP
Uy5oCkBAIC0zMCw2ICszMCwxMCBAQAogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAorI2lm
IEhBVkUoUEVOQ0lMS0lUKQorQGNsYXNzIFBLQ2FudmFzVmlldzsKKyNlbmRpZgorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBGbG9hdFBvaW50OwogY2xhc3MgRmxvYXRSZWN0OwpAQCAtMTUz
LDYgKzE1Nyw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCB3YWl0Rm9yU2luZ2xlVGFwVG9SZXNldCgp
IGNvbnN0OwogICAgIFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0Rm9yTWVudUFjdGlvbihDRlN0cmlu
Z1JlZikgY29uc3Q7CiAgICAgdm9pZCBzaW5nbGVUYXBBdFBvaW50V2l0aE1vZGlmaWVycyhXZWJD
b3JlOjpGbG9hdFBvaW50IGxvY2F0aW9uLCBWZWN0b3I8U3RyaW5nPiYmIG1vZGlmaWVyRmxhZ3Ms
IEJsb2NrUHRyPHZvaWQoKT4mJik7CisjaWYgSEFWRShQRU5DSUxLSVQpCisgICAgUEtDYW52YXNW
aWV3ICpmaW5kRWRpdGFibGVJbWFnZUNhbnZhcygpIGNvbnN0OworI2VuZGlmCiB9OwogCiB9CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJ
T1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1Mu
bW0KaW5kZXggOTA2NDBiNmYyNWZmNDM0MDNiMTk1MTU3NDI1MWJjYTNkMDNjYjYxYi4uOTAwMDdk
Yjk5M2VkOTVkMjliMTBjZWIwN2JhMzM2MjY1MzIzNTQzMSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQpAQCAtMzAsNiArMzAs
NyBAQAogCiAjaW1wb3J0ICJISURFdmVudEdlbmVyYXRvci5oIgogI2ltcG9ydCAiUGVuY2lsS2l0
VGVzdFNQSS5oIgorI2ltcG9ydCAiUGxhdGZvcm1WaWV3SGVscGVycy5oIgogI2ltcG9ydCAiUGxh
dGZvcm1XZWJWaWV3LmgiCiAjaW1wb3J0ICJTdHJpbmdGdW5jdGlvbnMuaCIKICNpbXBvcnQgIlRl
c3RDb250cm9sbGVyLmgiCkBAIC0xMDUsMzEgKzEwNiw2IEBAIHN0YXRpYyBWZWN0b3I8U3RyaW5n
PiBwYXJzZU1vZGlmaWVyQXJyYXkoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYgYXJy
YXlWCiAgICAgcmV0dXJuIG1vZGlmaWVyczsKIH0KIAotc3RhdGljIEJPT0wgZm9yRWFjaFZpZXdJ
bkhpZXJhcmNoeShVSVZpZXcgKnZpZXcsIHZvaWQoXm1hcEZ1bmN0aW9uKShVSVZpZXcgKnN1YnZp
ZXcsIEJPT0wgKnN0b3ApKQotewotICAgIEJPT0wgc3RvcCA9IE5POwotICAgIG1hcEZ1bmN0aW9u
KHZpZXcsICZzdG9wKTsKLSAgICBpZiAoc3RvcCkKLSAgICAgICAgcmV0dXJuIFlFUzsKLQotICAg
IGZvciAoVUlWaWV3ICpzdWJ2aWV3IGluIHZpZXcuc3Vidmlld3MpIHsKLSAgICAgICAgc3RvcCA9
IGZvckVhY2hWaWV3SW5IaWVyYXJjaHkoc3VidmlldywgbWFwRnVuY3Rpb24pOwotICAgICAgICBp
ZiAoc3RvcCkKLSAgICAgICAgICAgIGJyZWFrOwotICAgIH0KLSAgICByZXR1cm4gc3RvcDsKLX0K
LQotc3RhdGljIE5TQXJyYXk8VUlWaWV3ICo+ICpmaW5kQWxsVmlld3NJbkhpZXJhcmNoeU9mVHlw
ZShVSVZpZXcgKnZpZXcsIENsYXNzIHZpZXdDbGFzcykKLXsKLSAgICBfX2Jsb2NrIFJldGFpblB0
cjxOU011dGFibGVBcnJheT4gdmlld3MgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2Nd
IGluaXRdKTsKLSAgICBmb3JFYWNoVmlld0luSGllcmFyY2h5KHZpZXcsIF4oVUlWaWV3ICpzdWJ2
aWV3LCBCT09MICpzdG9wKSB7Ci0gICAgICAgIGlmIChbc3VidmlldyBpc0tpbmRPZkNsYXNzOnZp
ZXdDbGFzc10pCi0gICAgICAgICAgICBbdmlld3MgYWRkT2JqZWN0OnN1YnZpZXddOwotICAgIH0p
OwotICAgIHJldHVybiB2aWV3cy5hdXRvcmVsZWFzZSgpOwotfQotCiBSZWY8VUlTY3JpcHRDb250
cm9sbGVyPiBVSVNjcmlwdENvbnRyb2xsZXI6OmNyZWF0ZShVSVNjcmlwdENvbnRleHQmIGNvbnRl
eHQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVUlTY3JpcHRDb250cm9sbGVySU9TKGNv
bnRleHQpKTsKQEAgLTk5MCw3ICs5NjYsOCBAQCBXZWJDb3JlOjpGbG9hdFJlY3QgVUlTY3JpcHRD
b250cm9sbGVySU9TOjpyZWN0Rm9yTWVudUFjdGlvbihDRlN0cmluZ1JlZiBhY3Rpb24pCiAgICAg
aWYgKCFjYWxsb3V0QmFyLndpbmRvdykKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGZvciAo
VUlCdXR0b24gKmJ1dHRvbiBpbiBmaW5kQWxsVmlld3NJbkhpZXJhcmNoeU9mVHlwZShjYWxsb3V0
QmFyLCBVSUJ1dHRvbi5jbGFzcykpIHsKKyAgICBhdXRvIGJ1dHRvbnNJbkNhbGxvdXRCYXIgPSBb
Y2FsbG91dEJhciBhbGxWaWV3c0luSGllcmFyY2h5T2ZUeXBlOlVJQnV0dG9uLmNsYXNzXTsKKyAg
ICBmb3IgKFVJQnV0dG9uICpidXR0b24gaW4gYnV0dG9uc0luQ2FsbG91dEJhcikgewogICAgICAg
ICBOU1N0cmluZyAqYnV0dG9uVGl0bGUgPSBbYnV0dG9uIHRpdGxlRm9yU3RhdGU6VUlDb250cm9s
U3RhdGVOb3JtYWxdOwogICAgICAgICBpZiAoIWJ1dHRvblRpdGxlLmxlbmd0aCkKICAgICAgICAg
ICAgIGNvbnRpbnVlOwpAQCAtMTA3MCwzMSArMTA0NywzMyBAQCBib29sIFVJU2NyaXB0Q29udHJv
bGxlcklPUzo6aXNTaG93aW5nRGF0YUxpc3RTdWdnZXN0aW9ucygpIGNvbnN0CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIF9fYmxvY2sgYm9vbCBmb3VuZERhdGFMaXN0U3VnZ2VzdGlvbnNQ
aWNrZXJWaWV3ID0gZmFsc2U7Ci0gICAgZm9yRWFjaFZpZXdJbkhpZXJhcmNoeShyZW1vdGVJbnB1
dEhvc3RpbmdXaW5kb3csIF4oVUlWaWV3ICpzdWJ2aWV3LCBCT09MICpzdG9wKSB7CisgICAgW3Jl
bW90ZUlucHV0SG9zdGluZ1dpbmRvdyBmb3JFYWNoVmlld0luSGllcmFyY2h5Ol4oVUlWaWV3ICpz
dWJ2aWV3LCBCT09MICpzdG9wKSB7CiAgICAgICAgIGlmICghW3N1YnZpZXcgaXNLaW5kT2ZDbGFz
czpzdWdnZXN0aW9uc1BpY2tlclZpZXdDbGFzc10pCiAgICAgICAgICAgICByZXR1cm47CiAKICAg
ICAgICAgZm91bmREYXRhTGlzdFN1Z2dlc3Rpb25zUGlja2VyVmlldyA9IHRydWU7CiAgICAgICAg
ICpzdG9wID0gWUVTOwotICAgIH0pOworICAgIH1dOwogICAgIHJldHVybiBmb3VuZERhdGFMaXN0
U3VnZ2VzdGlvbnNQaWNrZXJWaWV3OwogfQogCiAjaWYgSEFWRShQRU5DSUxLSVQpCi1zdGF0aWMg
UEtDYW52YXNWaWV3ICpmaW5kRWRpdGFibGVJbWFnZUNhbnZhcygpCisKK1BLQ2FudmFzVmlldyAq
VUlTY3JpcHRDb250cm9sbGVySU9TOjpmaW5kRWRpdGFibGVJbWFnZUNhbnZhcygpIGNvbnN0CiB7
CiAgICAgQ2xhc3MgcGtDYW52YXNWaWV3Q2xhc3MgPSBOU0NsYXNzRnJvbVN0cmluZyhAIlBLQ2Fu
dmFzVmlldyIpOwogICAgIF9fYmxvY2sgUEtDYW52YXNWaWV3ICpjYW52YXNWaWV3ID0gbmlsOwot
ICAgIGZvckVhY2hWaWV3SW5IaWVyYXJjaHkod2ViVmlldygpLndpbmRvdywgXihVSVZpZXcgKnN1
YnZpZXcsIEJPT0wgKnN0b3ApIHsKKyAgICBbd2ViVmlldygpLndpbmRvdyBmb3JFYWNoVmlld0lu
SGllcmFyY2h5Ol4oVUlWaWV3ICpzdWJ2aWV3LCBCT09MICpzdG9wKSB7CiAgICAgICAgIGlmICgh
W3N1YnZpZXcgaXNLaW5kT2ZDbGFzczpwa0NhbnZhc1ZpZXdDbGFzc10pCiAgICAgICAgICAgICBy
ZXR1cm47CiAKICAgICAgICAgY2FudmFzVmlldyA9IChQS0NhbnZhc1ZpZXcgKilzdWJ2aWV3Owog
ICAgICAgICAqc3RvcCA9IFlFUzsKLSAgICB9KTsKKyAgICB9XTsKICAgICByZXR1cm4gY2FudmFz
VmlldzsKIH0KLSNlbmRpZgorCisjZW5kaWYgLy8gSEFWRShQRU5DSUxLSVQpCiAKIHZvaWQgVUlT
Y3JpcHRDb250cm9sbGVySU9TOjpkcmF3U3F1YXJlSW5FZGl0YWJsZUltYWdlKCkKIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382671</attachid>
            <date>2019-11-01 23:59:05 -0700</date>
            <delta_ts>2019-11-04 11:16:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203777-20191101235904.patch</filename>
            <type>text/plain</type>
            <size>13473</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxOTA4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjU3MmVjODgwZjIyYzYxYTcwODZlZmY3YjI5ZDJhNzAw
NDNhMmQ2Yi4uNWM5YzY0ZGE1OGEyODhiZDdkNzA4YjIzMzY3ZGI0MjUxMDZhNzYwNCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1
IEBACisyMDE5LTExLTAxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgor
CisgICAgICAgIENvbnNvbGlkYXRlIGZvckVhY2hWaWV3SW5IaWVyYXJjaHkgYW5kIGZpbmRBbGxW
aWV3c0luSGllcmFyY2h5T2ZUeXBlIGludG8gY29tbW9uIGhlbHBlciBmaWxlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM3NzcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
V2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvY29jb2EvUGxhdGZvcm1WaWV3SGVscGVycy5oOiBBZGRlZC4KKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1BsYXRmb3JtVmlld0hlbHBlcnMubW06IEFkZGVk
LgorCisgICAgICAgIEFkZCBhIG5ldyBDb2NvYSBoZWxwZXIgZmlsZSwgUGxhdGZvcm1WaWV3SGVs
cGVycywgdG8gbWFrZSBpdCBlYXNpZXIgdG8gdHJhdmVyc2UgcGxhdGZvcm0gdmlldyBoaWVyYXJj
aGllcworICAgICAgICAoTlNWaWV3IGFuZCBVSVZpZXcpIGZvciB0ZXN0aW5nIHB1cnBvc2VzLiBU
aGlzIGlzIG1pbm9yIHJlZmFjdG9yaW5nLCBiZWZvcmUgSSB0cnkgdG8gY3JlYXRlIHNvbWUgbmV3
IHRlc3RpbmcKKyAgICAgICAgcHJpbWl0aXZlcyB0byBtYWtlIHdlYmtpdC5vcmcvYi8yMDMxMTYg
dGVzdGFibGUuCisKKyAgICAgICAgKGZvckVhY2hWaWV3SW5IaWVyYXJjaHkpOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5oOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbToKKyAgICAgICAg
KFdUUjo6VUlTY3JpcHRDb250cm9sbGVySU9TOjpmaW5kRWRpdGFibGVJbWFnZUNhbnZhcyBjb25z
dCk6CisgICAgICAgIChXVFI6OmZvckVhY2hWaWV3SW5IaWVyYXJjaHkpOiBEZWxldGVkLgorICAg
ICAgICAoV1RSOjpmaW5kRWRpdGFibGVJbWFnZUNhbnZhcyk6IERlbGV0ZWQuCisKIDIwMTktMTEt
MDEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgVGVz
dFdlYktpdEFQSS5FZGl0b3JTdGF0ZVRlc3RzLlR5cGluZ0F0dHJpYnV0ZXNUZXh0QWxpZ25tZW50
U3RhcnRFbmQgaXMgZmxha3kgaW4gaU9TIHNpbXVsYXRvcgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBhYWM3Y2I3MjVlNTFjZTc5M2MxNmU2NWExMWMxZjFhMTE1MWM4ZDYw
Li41MjNmMzg3OWM0YzIxMGNkMzAyNTk4OWE3MTlhYjA4NTg3NTFjOWQ3IDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODUsNiArODUsNyBAQAogCQkyREQ0QzQ5QjFENkU3
RDNCMDAwNzM3OUMgLyogRXZlbnRTZXJpYWxpemVyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRENEM0OTkxRDZFN0QzQjAwMDczNzlDIC8qIEV2
ZW50U2VyaWFsaXplck1hYy5tbSAqLzsgfTsKIAkJMkRGQTk4NDgxRDdGNzBDRjAwQUZGMkM5IC8q
IFNoYXJlZEV2ZW50U3RyZWFtc01hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkRGQTk4NDYxRDdGNzBDRjAwQUZGMkM5IC8qIFNoYXJlZEV2ZW50U3Ry
ZWFtc01hYy5oICovOyB9OwogCQkyREZBOTg0OTFEN0Y3MENGMDBBRkYyQzkgLyogU2hhcmVkRXZl
bnRTdHJlYW1zTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkRGQTk4NDcxRDdGNzBDRjAwQUZGMkM5IC8qIFNoYXJlZEV2ZW50U3RyZWFtc01hYy5t
bSAqLzsgfTsKKwkJMkUyREVDOTEyMzZEMDQ1MjAwMTY4QkE1IC8qIFBsYXRmb3JtVmlld0hlbHBl
cnMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTJE
RUM4RjIzNkQwNDI4MDAxNjhCQTUgLyogUGxhdGZvcm1WaWV3SGVscGVycy5tbSAqLzsgfTsKIAkJ
MkUzNEM5MDAxOEI2ODgwODAwMDA2N0JCIC8qIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRs
ZS5idW5kbGUgaW4gQ29weSBQbHVnLUlucyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzI1MTg2MjExRDE1RDU0MDAyRUJDMDEgLyogV2ViS2l0VGVzdFJ1bm5lckluamVjdGVk
QnVuZGxlLmJ1bmRsZSAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChDb2RlU2lnbk9uQ29w
eSwgUmVtb3ZlSGVhZGVyc09uQ29weSwgKTsgfTsgfTsKIAkJMkU2M0VEOEExODkxQUQ3RTAwMkE3
QUZDIC8qIEFjY2Vzc2liaWxpdHlDb250cm9sbGVySU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU2M0VENzUxODkxQUNFOTAwMkE3QUZDIC8qIEFj
Y2Vzc2liaWxpdHlDb250cm9sbGVySU9TLm1tICovOyB9OwogCQkyRTYzRUQ4QjE4OTFBRDdFMDAy
QTdBRkMgLyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTYzRUQ3NzE4OTFBQ0U5MDAyQTdBRkMgLyog
QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJJT1MubW0gKi87IH07CkBAIC0yODUsNiArMjg2LDggQEAK
IAkJMkRENEM0OTkxRDZFN0QzQjAwMDczNzlDIC8qIEV2ZW50U2VyaWFsaXplck1hYy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEV2ZW50U2VyaWFsaXplck1hYy5t
bTsgcGF0aCA9IG1hYy9FdmVudFNlcmlhbGl6ZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTJERkE5ODQ2MUQ3RjcwQ0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0cmVhbXNN
YWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU2hhcmVkRXZlbnRTdHJlYW1z
TWFjLmg7IHBhdGggPSBtYWMvU2hhcmVkRXZlbnRTdHJlYW1zTWFjLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTJERkE5ODQ3MUQ3RjcwQ0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0
cmVhbXNNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBTaGFy
ZWRFdmVudFN0cmVhbXNNYWMubW07IHBhdGggPSBtYWMvU2hhcmVkRXZlbnRTdHJlYW1zTWFjLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRTJERUM4RTIzNkQwNDI4MDAxNjhCQTUg
LyogUGxhdGZvcm1WaWV3SGVscGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQbGF0Zm9ybVZpZXdIZWxwZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJF
MkRFQzhGMjM2RDA0MjgwMDE2OEJBNSAvKiBQbGF0Zm9ybVZpZXdIZWxwZXJzLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGxhdGZvcm1WaWV3SGVscGVycy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU2M0VENzUxODkxQUNFOTAwMkE3QUZDIC8q
IEFjY2Vzc2liaWxpdHlDb250cm9sbGVySU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTJFNjNFRDc2MTg5MUFDRTkwMDJBN0FGQyAvKiBBY2Nlc3NpYmls
aXR5Tm90aWZpY2F0aW9uSGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyRTYzRUQ3NzE4OTFBQ0U5MDAyQTdBRkMgLyogQWNjZXNzaWJpbGl0eVRleHRN
YXJrZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBY2Nl
c3NpYmlsaXR5VGV4dE1hcmtlcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTU5MCw2ICs1OTMsOCBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMEZFQjkwQTIxOTA1QkM2QTAw
MEZEQkYzIC8qIENyYXNoUmVwb3J0ZXJJbmZvLmggKi8sCiAJCQkJMEZFQjkwQTMxOTA1QkM2QTAw
MEZEQkYzIC8qIENyYXNoUmVwb3J0ZXJJbmZvLm1tICovLAorCQkJCTJFMkRFQzhFMjM2RDA0Mjgw
MDE2OEJBNSAvKiBQbGF0Zm9ybVZpZXdIZWxwZXJzLmggKi8sCisJCQkJMkUyREVDOEYyMzZEMDQy
ODAwMTY4QkE1IC8qIFBsYXRmb3JtVmlld0hlbHBlcnMubW0gKi8sCiAJCQkJMkRDRTJDRDExQjg0
NTI0NTAwQzdGODMyIC8qIFRlc3RDb250cm9sbGVyQ29jb2EubW0gKi8sCiAJCQkJMEY4N0I2MTQx
QkFDQzRCOTAwNEVDNTcyIC8qIFRlc3RSdW5uZXJXS1dlYlZpZXcuaCAqLywKIAkJCQkwRjg3QjYx
NTFCQUNDNEI5MDA0RUM1NzIgLyogVGVzdFJ1bm5lcldLV2ViVmlldy5tbSAqLywKQEAgLTExODEs
NiArMTE4Niw3IEBACiAJCQkJRjRDMzU3OEMyMEU4NDQ0NjAwRkEwNzQ4IC8qIExheW91dFRlc3RT
cGVsbENoZWNrZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTg1MTAzQzFCOUFFMEZFMDA3NDRB
RUIgLyogT3B0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMTg1MTA0MDFCOUFFMTMxMDA3
NDRBRUIgLyogUGl4ZWxEdW1wU3VwcG9ydC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRTJERUM5
MTIzNkQwNDUyMDAxNjhCQTUgLyogUGxhdGZvcm1WaWV3SGVscGVycy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTJERkE5ODQ5MUQ3RjcwQ0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0cmVhbXNNYWMu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTg1MTA0MTFCOUFFMTM4MDA3NDRBRUIgLyogVGVzdENv
bnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE4NTEwM0IxQjlBRTBFMjAwNzQ0QUVC
IC8qIFRlc3RDb250cm9sbGVyQ29jb2EubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvUGxhdGZvcm1WaWV3SGVscGVycy5oIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9QbGF0Zm9ybVZpZXdIZWxwZXJzLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzE1ODcwZDE4MGU3M2FiYTBhODE2ODQ5YTg5NzRiN2MwMGUzNWM2ZgotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvUGxhdGZvcm1WaWV3SGVscGVycy5oCkBA
IC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCitAY2xhc3MgVUlWaWV3OworI2RlZmluZSBQbGF0Zm9ybVZpZXcgVUlWaWV3
CisjZWxzZQorQGNsYXNzIE5TVmlldzsKKyNkZWZpbmUgUGxhdGZvcm1WaWV3IE5TVmlldworI2Vu
ZGlmCisKK0JPT0wgZm9yRWFjaFZpZXdJbkhpZXJhcmNoeShQbGF0Zm9ybVZpZXcgKiwgdm9pZChe
bWFwRnVuY3Rpb24pKFBsYXRmb3JtVmlldyAqc3VidmlldywgQk9PTCAqc3RvcCkpOworTlNBcnJh
eTxQbGF0Zm9ybVZpZXcgKj4gKmZpbmRBbGxWaWV3c0luSGllcmFyY2h5T2ZUeXBlKFBsYXRmb3Jt
VmlldyAqLCBDbGFzcyB2aWV3Q2xhc3MpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9jb2NvYS9QbGF0Zm9ybVZpZXdIZWxwZXJzLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9jb2NvYS9QbGF0Zm9ybVZpZXdIZWxwZXJzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjODAxZTRhOWZiODBk
NjAyMmNlNTQ5NWEwMzcxM2QwZGJhNGZiODIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL2NvY29hL1BsYXRmb3JtVmlld0hlbHBlcnMubW0KQEAgLTAsMCArMSw1OSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiUGxhdGZvcm1WaWV3
SGVscGVycy5oIgorCisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyNpbXBvcnQgPFVJS2l0L1VJS2l0Lmg+CisjZWxzZQorI2ltcG9ydCA8QXBwS2l0
L0FwcEtpdC5oPgorI2VuZGlmCisKK0JPT0wgZm9yRWFjaFZpZXdJbkhpZXJhcmNoeShQbGF0Zm9y
bVZpZXcgKnZpZXcsIHZvaWQoXm1hcEZ1bmN0aW9uKShQbGF0Zm9ybVZpZXcgKnN1YnZpZXcsIEJP
T0wgKnN0b3ApKQoreworICAgIEJPT0wgc3RvcCA9IE5POworICAgIG1hcEZ1bmN0aW9uKHZpZXcs
ICZzdG9wKTsKKyAgICBpZiAoc3RvcCkKKyAgICAgICAgcmV0dXJuIFlFUzsKKworICAgIGZvciAo
UGxhdGZvcm1WaWV3ICpzdWJ2aWV3IGluIHZpZXcuc3Vidmlld3MpIHsKKyAgICAgICAgc3RvcCA9
IGZvckVhY2hWaWV3SW5IaWVyYXJjaHkoc3VidmlldywgbWFwRnVuY3Rpb24pOworICAgICAgICBp
ZiAoc3RvcCkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gc3RvcDsKK30K
KworTlNBcnJheTxQbGF0Zm9ybVZpZXcgKj4gKmZpbmRBbGxWaWV3c0luSGllcmFyY2h5T2ZUeXBl
KFBsYXRmb3JtVmlldyAqdmlldywgQ2xhc3Mgdmlld0NsYXNzKQoreworICAgIF9fYmxvY2sgUmV0
YWluUHRyPE5TTXV0YWJsZUFycmF5PiB2aWV3cyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBh
bGxvY10gaW5pdF0pOworICAgIGZvckVhY2hWaWV3SW5IaWVyYXJjaHkodmlldywgXihQbGF0Zm9y
bVZpZXcgKnN1YnZpZXcsIEJPT0wgKnN0b3ApIHsKKyAgICAgICAgaWYgKFtzdWJ2aWV3IGlzS2lu
ZE9mQ2xhc3M6dmlld0NsYXNzXSkKKyAgICAgICAgICAgIFt2aWV3cyBhZGRPYmplY3Q6c3Vidmll
d107CisgICAgfSk7CisgICAgcmV0dXJuIHZpZXdzLmF1dG9yZWxlYXNlKCk7Cit9CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MuaCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5oCmluZGV4
IDFmMzk3ZTQzMjdmZDJjZmUyZDgyODFkMTRjNzFlN2E1MGUyOGZmMzIuLmE2Y2FkYmZhNmIzZWMy
ODMxYTVjODMzOTNjYjQ1N2Y0Mzg2MWE4YzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5oCkBAIC0zMCw2ICszMCwxMCBAQAogCiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAorI2lmIEhBVkUoUEVOQ0lMS0lUKQorQGNsYXNzIFBL
Q2FudmFzVmlldzsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBGbG9hdFBv
aW50OwogY2xhc3MgRmxvYXRSZWN0OwpAQCAtMTUzLDYgKzE1Nyw5IEBAIHByaXZhdGU6CiAgICAg
dm9pZCB3YWl0Rm9yU2luZ2xlVGFwVG9SZXNldCgpIGNvbnN0OwogICAgIFdlYkNvcmU6OkZsb2F0
UmVjdCByZWN0Rm9yTWVudUFjdGlvbihDRlN0cmluZ1JlZikgY29uc3Q7CiAgICAgdm9pZCBzaW5n
bGVUYXBBdFBvaW50V2l0aE1vZGlmaWVycyhXZWJDb3JlOjpGbG9hdFBvaW50IGxvY2F0aW9uLCBW
ZWN0b3I8U3RyaW5nPiYmIG1vZGlmaWVyRmxhZ3MsIEJsb2NrUHRyPHZvaWQoKT4mJik7CisjaWYg
SEFWRShQRU5DSUxLSVQpCisgICAgUEtDYW52YXNWaWV3ICpmaW5kRWRpdGFibGVJbWFnZUNhbnZh
cygpIGNvbnN0OworI2VuZGlmCiB9OwogCiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KaW5kZXggOTA2NDBiNmYyNWZmNDM0MDNi
MTk1MTU3NDI1MWJjYTNkMDNjYjYxYi4uNDQwNjJhODk0ODg3N2FhZGMxNjRlNThiMDdjNmIzZGU1
NjRiZDliNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRD
b250cm9sbGVySU9TLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0
Q29udHJvbGxlcklPUy5tbQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaW1wb3J0ICJISURFdmVudEdl
bmVyYXRvci5oIgogI2ltcG9ydCAiUGVuY2lsS2l0VGVzdFNQSS5oIgorI2ltcG9ydCAiUGxhdGZv
cm1WaWV3SGVscGVycy5oIgogI2ltcG9ydCAiUGxhdGZvcm1XZWJWaWV3LmgiCiAjaW1wb3J0ICJT
dHJpbmdGdW5jdGlvbnMuaCIKICNpbXBvcnQgIlRlc3RDb250cm9sbGVyLmgiCkBAIC0xMDUsMzEg
KzEwNiw2IEBAIHN0YXRpYyBWZWN0b3I8U3RyaW5nPiBwYXJzZU1vZGlmaWVyQXJyYXkoSlNDb250
ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYgYXJyYXlWCiAgICAgcmV0dXJuIG1vZGlmaWVyczsK
IH0KIAotc3RhdGljIEJPT0wgZm9yRWFjaFZpZXdJbkhpZXJhcmNoeShVSVZpZXcgKnZpZXcsIHZv
aWQoXm1hcEZ1bmN0aW9uKShVSVZpZXcgKnN1YnZpZXcsIEJPT0wgKnN0b3ApKQotewotICAgIEJP
T0wgc3RvcCA9IE5POwotICAgIG1hcEZ1bmN0aW9uKHZpZXcsICZzdG9wKTsKLSAgICBpZiAoc3Rv
cCkKLSAgICAgICAgcmV0dXJuIFlFUzsKLQotICAgIGZvciAoVUlWaWV3ICpzdWJ2aWV3IGluIHZp
ZXcuc3Vidmlld3MpIHsKLSAgICAgICAgc3RvcCA9IGZvckVhY2hWaWV3SW5IaWVyYXJjaHkoc3Vi
dmlldywgbWFwRnVuY3Rpb24pOwotICAgICAgICBpZiAoc3RvcCkKLSAgICAgICAgICAgIGJyZWFr
OwotICAgIH0KLSAgICByZXR1cm4gc3RvcDsKLX0KLQotc3RhdGljIE5TQXJyYXk8VUlWaWV3ICo+
ICpmaW5kQWxsVmlld3NJbkhpZXJhcmNoeU9mVHlwZShVSVZpZXcgKnZpZXcsIENsYXNzIHZpZXdD
bGFzcykKLXsKLSAgICBfX2Jsb2NrIFJldGFpblB0cjxOU011dGFibGVBcnJheT4gdmlld3MgPSBh
ZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKLSAgICBmb3JFYWNoVmlld0lu
SGllcmFyY2h5KHZpZXcsIF4oVUlWaWV3ICpzdWJ2aWV3LCBCT09MICpzdG9wKSB7Ci0gICAgICAg
IGlmIChbc3VidmlldyBpc0tpbmRPZkNsYXNzOnZpZXdDbGFzc10pCi0gICAgICAgICAgICBbdmll
d3MgYWRkT2JqZWN0OnN1YnZpZXddOwotICAgIH0pOwotICAgIHJldHVybiB2aWV3cy5hdXRvcmVs
ZWFzZSgpOwotfQotCiBSZWY8VUlTY3JpcHRDb250cm9sbGVyPiBVSVNjcmlwdENvbnRyb2xsZXI6
OmNyZWF0ZShVSVNjcmlwdENvbnRleHQmIGNvbnRleHQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgVUlTY3JpcHRDb250cm9sbGVySU9TKGNvbnRleHQpKTsKQEAgLTEwODEsNyArMTA1Nyw4
IEBAIGJvb2wgVUlTY3JpcHRDb250cm9sbGVySU9TOjppc1Nob3dpbmdEYXRhTGlzdFN1Z2dlc3Rp
b25zKCkgY29uc3QKIH0KIAogI2lmIEhBVkUoUEVOQ0lMS0lUKQotc3RhdGljIFBLQ2FudmFzVmll
dyAqZmluZEVkaXRhYmxlSW1hZ2VDYW52YXMoKQorCitQS0NhbnZhc1ZpZXcgKlVJU2NyaXB0Q29u
dHJvbGxlcklPUzo6ZmluZEVkaXRhYmxlSW1hZ2VDYW52YXMoKSBjb25zdAogewogICAgIENsYXNz
IHBrQ2FudmFzVmlld0NsYXNzID0gTlNDbGFzc0Zyb21TdHJpbmcoQCJQS0NhbnZhc1ZpZXciKTsK
ICAgICBfX2Jsb2NrIFBLQ2FudmFzVmlldyAqY2FudmFzVmlldyA9IG5pbDsKQEAgLTEwOTQsNyAr
MTA3MSw4IEBAIHN0YXRpYyBQS0NhbnZhc1ZpZXcgKmZpbmRFZGl0YWJsZUltYWdlQ2FudmFzKCkK
ICAgICB9KTsKICAgICByZXR1cm4gY2FudmFzVmlldzsKIH0KLSNlbmRpZgorCisjZW5kaWYgLy8g
SEFWRShQRU5DSUxLSVQpCiAKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVySU9TOjpkcmF3U3F1YXJl
SW5FZGl0YWJsZUltYWdlKCkKIHsK
</data>
<flag name="review"
          id="398414"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382763</attachid>
            <date>2019-11-04 13:04:37 -0800</date>
            <delta_ts>2019-11-04 13:49:43 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-203777-20191104130437.patch</filename>
            <type>text/plain</type>
            <size>13478</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxOTExCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2RkMDcwM2QwMjAyYjNhNjBmMzc3MjNmNjU4N2IwYjUx
MjU4YTYyNy4uYTljZGUyODdhZDgxY2Q0ZjVmMGUwNjBiZGUyNzliNTljZjcxZGQ1NyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1
IEBACisyMDE5LTExLTA0ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgor
CisgICAgICAgIENvbnNvbGlkYXRlIGZvckVhY2hWaWV3SW5IaWVyYXJjaHkgYW5kIGZpbmRBbGxW
aWV3c0luSGllcmFyY2h5T2ZUeXBlIGludG8gY29tbW9uIGhlbHBlciBmaWxlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM3NzcKKworICAgICAgICBS
ZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9jb2Nv
YS9QbGF0Zm9ybVZpZXdIZWxwZXJzLmg6IEFkZGVkLgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFy
ZWQvY29jb2EvUGxhdGZvcm1WaWV3SGVscGVycy5tbTogQWRkZWQuCisKKyAgICAgICAgQWRkIGEg
bmV3IENvY29hIGhlbHBlciBmaWxlLCBQbGF0Zm9ybVZpZXdIZWxwZXJzLCB0byBtYWtlIGl0IGVh
c2llciB0byB0cmF2ZXJzZSBwbGF0Zm9ybSB2aWV3IGhpZXJhcmNoaWVzCisgICAgICAgIChOU1Zp
ZXcgYW5kIFVJVmlldykgZm9yIHRlc3RpbmcgcHVycG9zZXMuIFRoaXMgaXMgbWlub3IgcmVmYWN0
b3JpbmcsIGJlZm9yZSBJIHRyeSB0byBjcmVhdGUgc29tZSBuZXcgdGVzdGluZworICAgICAgICBw
cmltaXRpdmVzIHRvIG1ha2Ugd2Via2l0Lm9yZy9iLzIwMzExNiB0ZXN0YWJsZS4KKworICAgICAg
ICAoZm9yRWFjaFZpZXdJbkhpZXJhcmNoeSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9X
ZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLmg6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tOgorICAgICAgICAoV1RS
OjpVSVNjcmlwdENvbnRyb2xsZXJJT1M6OmZpbmRFZGl0YWJsZUltYWdlQ2FudmFzIGNvbnN0KToK
KyAgICAgICAgKFdUUjo6Zm9yRWFjaFZpZXdJbkhpZXJhcmNoeSk6IERlbGV0ZWQuCisgICAgICAg
IChXVFI6OmZpbmRFZGl0YWJsZUltYWdlQ2FudmFzKTogRGVsZXRlZC4KKwogMjAxOS0xMC0zMSAg
Sm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lP
TiAocjI1MTgwOCk6IHJ1bi13ZWJraXQtdGVzdCBjYW5ub3Qgc2hvdyByZXN1bHRzLmh0bWwKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvY29jb2EvUGxhdGZvcm1WaWV3SGVscGVy
cy5oIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9QbGF0Zm9ybVZpZXdIZWxwZXJzLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYzE1ODcwZDE4MGU3M2FiYTBhODE2ODQ5YTg5NzRiN2MwMGUzNWM2ZgotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvY29jb2EvUGxhdGZvcm1WaWV3
SGVscGVycy5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCitAY2xhc3MgVUlWaWV3OworI2RlZmluZSBQbGF0Zm9y
bVZpZXcgVUlWaWV3CisjZWxzZQorQGNsYXNzIE5TVmlldzsKKyNkZWZpbmUgUGxhdGZvcm1WaWV3
IE5TVmlldworI2VuZGlmCisKK0JPT0wgZm9yRWFjaFZpZXdJbkhpZXJhcmNoeShQbGF0Zm9ybVZp
ZXcgKiwgdm9pZChebWFwRnVuY3Rpb24pKFBsYXRmb3JtVmlldyAqc3VidmlldywgQk9PTCAqc3Rv
cCkpOworTlNBcnJheTxQbGF0Zm9ybVZpZXcgKj4gKmZpbmRBbGxWaWV3c0luSGllcmFyY2h5T2ZU
eXBlKFBsYXRmb3JtVmlldyAqLCBDbGFzcyB2aWV3Q2xhc3MpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9QbGF0Zm9ybVZpZXdIZWxwZXJzLm1tIGIvVG9vbHMvVGVz
dFJ1bm5lclNoYXJlZC9jb2NvYS9QbGF0Zm9ybVZpZXdIZWxwZXJzLm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhj
ODAxZTRhOWZiODBkNjAyMmNlNTQ5NWEwMzcxM2QwZGJhNGZiODIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL2NvY29hL1BsYXRmb3JtVmlld0hlbHBlcnMubW0KQEAg
LTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAi
UGxhdGZvcm1WaWV3SGVscGVycy5oIgorCisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpbXBvcnQgPFVJS2l0L1VJS2l0Lmg+CisjZWxzZQorI2lt
cG9ydCA8QXBwS2l0L0FwcEtpdC5oPgorI2VuZGlmCisKK0JPT0wgZm9yRWFjaFZpZXdJbkhpZXJh
cmNoeShQbGF0Zm9ybVZpZXcgKnZpZXcsIHZvaWQoXm1hcEZ1bmN0aW9uKShQbGF0Zm9ybVZpZXcg
KnN1YnZpZXcsIEJPT0wgKnN0b3ApKQoreworICAgIEJPT0wgc3RvcCA9IE5POworICAgIG1hcEZ1
bmN0aW9uKHZpZXcsICZzdG9wKTsKKyAgICBpZiAoc3RvcCkKKyAgICAgICAgcmV0dXJuIFlFUzsK
KworICAgIGZvciAoUGxhdGZvcm1WaWV3ICpzdWJ2aWV3IGluIHZpZXcuc3Vidmlld3MpIHsKKyAg
ICAgICAgc3RvcCA9IGZvckVhY2hWaWV3SW5IaWVyYXJjaHkoc3VidmlldywgbWFwRnVuY3Rpb24p
OworICAgICAgICBpZiAoc3RvcCkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1
cm4gc3RvcDsKK30KKworTlNBcnJheTxQbGF0Zm9ybVZpZXcgKj4gKmZpbmRBbGxWaWV3c0luSGll
cmFyY2h5T2ZUeXBlKFBsYXRmb3JtVmlldyAqdmlldywgQ2xhc3Mgdmlld0NsYXNzKQoreworICAg
IF9fYmxvY2sgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PiB2aWV3cyA9IGFkb3B0TlMoW1tOU011
dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOworICAgIGZvckVhY2hWaWV3SW5IaWVyYXJjaHkodmll
dywgXihQbGF0Zm9ybVZpZXcgKnN1YnZpZXcsIEJPT0wgKnN0b3ApIHsKKyAgICAgICAgaWYgKFtz
dWJ2aWV3IGlzS2luZE9mQ2xhc3M6dmlld0NsYXNzXSkKKyAgICAgICAgICAgIFt2aWV3cyBhZGRP
YmplY3Q6c3Vidmlld107CisgICAgfSk7CisgICAgcmV0dXJuIHZpZXdzLmF1dG9yZWxlYXNlKCk7
Cit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0
VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGFhYzdjYjcyNWU1MWNl
NzkzYzE2ZTY1YTExYzFmMWExMTUxYzhkNjAuLmUxYWYwZmY4NzVmM2MxMTcyZDc2YWE4ZGY1YTEw
YTdmNmYzN2Y2YjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVz
dFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NSw2
ICs4NSw3IEBACiAJCTJERDRDNDlCMUQ2RTdEM0IwMDA3Mzc5QyAvKiBFdmVudFNlcmlhbGl6ZXJN
YWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREQ0
QzQ5OTFENkU3RDNCMDAwNzM3OUMgLyogRXZlbnRTZXJpYWxpemVyTWFjLm1tICovOyB9OwogCQky
REZBOTg0ODFEN0Y3MENGMDBBRkYyQzkgLyogU2hhcmVkRXZlbnRTdHJlYW1zTWFjLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREZBOTg0NjFEN0Y3MENG
MDBBRkYyQzkgLyogU2hhcmVkRXZlbnRTdHJlYW1zTWFjLmggKi87IH07CiAJCTJERkE5ODQ5MUQ3
RjcwQ0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0cmVhbXNNYWMubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREZBOTg0NzFEN0Y3MENGMDBBRkYyQzkg
LyogU2hhcmVkRXZlbnRTdHJlYW1zTWFjLm1tICovOyB9OworCQkyRTJBNzY1RDIzNzBDOEQxMDA4
RjlGRkUgLyogUGxhdGZvcm1WaWV3SGVscGVycy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFMkE3NjVDMjM3MEM4QTAwMDhGOUZGRSAvKiBQbGF0Zm9y
bVZpZXdIZWxwZXJzLm1tICovOyB9OwogCQkyRTM0QzkwMDE4QjY4ODA4MDAwMDY3QkIgLyogV2Vi
S2l0VGVzdFJ1bm5lckluamVjdGVkQnVuZGxlLmJ1bmRsZSBpbiBDb3B5IFBsdWctSW5zICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMjUxODYyMTFEMTVENTQwMDJFQkMwMSAv
KiBXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGUuYnVuZGxlICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKENvZGVTaWduT25Db3B5LCBSZW1vdmVIZWFkZXJzT25Db3B5LCApOyB9OyB9
OwogCQkyRTYzRUQ4QTE4OTFBRDdFMDAyQTdBRkMgLyogQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJ
T1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTYz
RUQ3NTE4OTFBQ0U5MDAyQTdBRkMgLyogQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW0gKi87
IH07CiAJCTJFNjNFRDhCMTg5MUFEN0UwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtl
cklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJF
NjNFRDc3MTg5MUFDRTkwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcklPUy5tbSAq
LzsgfTsKQEAgLTI4NSw2ICsyODYsOCBAQAogCQkyREQ0QzQ5OTFENkU3RDNCMDAwNzM3OUMgLyog
RXZlbnRTZXJpYWxpemVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBu
YW1lID0gRXZlbnRTZXJpYWxpemVyTWFjLm1tOyBwYXRoID0gbWFjL0V2ZW50U2VyaWFsaXplck1h
Yy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRGQTk4NDYxRDdGNzBDRjAwQUZG
MkM5IC8qIFNoYXJlZEV2ZW50U3RyZWFtc01hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBTaGFyZWRFdmVudFN0cmVhbXNNYWMuaDsgcGF0aCA9IG1hYy9TaGFyZWRFdmVudFN0
cmVhbXNNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRGQTk4NDcxRDdGNzBD
RjAwQUZGMkM5IC8qIFNoYXJlZEV2ZW50U3RyZWFtc01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgbmFtZSA9IFNoYXJlZEV2ZW50U3RyZWFtc01hYy5tbTsgcGF0aCA9IG1h
Yy9TaGFyZWRFdmVudFN0cmVhbXNNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTJFMkE3NjVCMjM3MEM4QTAwMDhGOUZGRSAvKiBQbGF0Zm9ybVZpZXdIZWxwZXJzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFBsYXRmb3JtVmlld0hlbHBlcnMuaDsgcGF0aCA9
IC4uL1Rlc3RSdW5uZXJTaGFyZWQvY29jb2EvUGxhdGZvcm1WaWV3SGVscGVycy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyRTJBNzY1QzIzNzBDOEEwMDA4RjlGRkUgLyogUGxhdGZv
cm1WaWV3SGVscGVycy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9
IFBsYXRmb3JtVmlld0hlbHBlcnMubW07IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL2NvY29h
L1BsYXRmb3JtVmlld0hlbHBlcnMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJF
NjNFRDc1MTg5MUFDRTkwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcklPUy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlDb250
cm9sbGVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTYzRUQ3NjE4OTFB
Q0U5MDAyQTdBRkMgLyogQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRs
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU2M0VENzcxODkxQUNFOTAwMkE3
QUZDIC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VySU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJJT1MubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04OTAsNiArODkzLDggQEAKIAkJCQlGNDRBNTMxNjIx
Qjg5OURBMDBEQkI5OUMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSAqLywKIAkJCQlGNEMz
NTc4QjIwRTg0NDQwMDBGQTA3NDggLyogTGF5b3V0VGVzdFNwZWxsQ2hlY2tlci5oICovLAogCQkJ
CUY0QzM1NzhBMjBFODQ0NDAwMEZBMDc0OCAvKiBMYXlvdXRUZXN0U3BlbGxDaGVja2VyLm1tICov
LAorCQkJCTJFMkE3NjVCMjM3MEM4QTAwMDhGOUZGRSAvKiBQbGF0Zm9ybVZpZXdIZWxwZXJzLmgg
Ki8sCisJCQkJMkUyQTc2NUMyMzcwQzhBMDAwOEY5RkZFIC8qIFBsYXRmb3JtVmlld0hlbHBlcnMu
bW0gKi8sCiAJCQkpOwogCQkJbmFtZSA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKQEAgLTExODEsNiArMTE4Niw3IEBACiAJCQkJRjRDMzU3OEMyMEU4NDQ0NjAwRkEwNzQ4IC8q
IExheW91dFRlc3RTcGVsbENoZWNrZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTg1MTAzQzFC
OUFFMEZFMDA3NDRBRUIgLyogT3B0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMTg1MTA0
MDFCOUFFMTMxMDA3NDRBRUIgLyogUGl4ZWxEdW1wU3VwcG9ydC5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkyRTJBNzY1RDIzNzBDOEQxMDA4RjlGRkUgLyogUGxhdGZvcm1WaWV3SGVscGVycy5tbSBp
biBTb3VyY2VzICovLAogCQkJCTJERkE5ODQ5MUQ3RjcwQ0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVu
dFN0cmVhbXNNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTg1MTA0MTFCOUFFMTM4MDA3NDRB
RUIgLyogVGVzdENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE4NTEwM0IxQjlB
RTBFMjAwNzQ0QUVCIC8qIFRlc3RDb250cm9sbGVyQ29jb2EubW0gaW4gU291cmNlcyAqLywKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklP
Uy5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLmgK
aW5kZXggMWYzOTdlNDMyN2ZkMmNmZTJkODI4MWQxNGM3MWU3YTUwZTI4ZmYzMi4uYTZjYWRiZmE2
YjNlYzI4MzFhNWM4MzM5M2NiNDU3ZjQzODYxYThjMiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLmgKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLmgKQEAgLTMwLDYgKzMwLDEwIEBA
CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogCisjaWYgSEFWRShQRU5DSUxLSVQpCitAY2xh
c3MgUEtDYW52YXNWaWV3OworI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEZs
b2F0UG9pbnQ7CiBjbGFzcyBGbG9hdFJlY3Q7CkBAIC0xNTMsNiArMTU3LDkgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHdhaXRGb3JTaW5nbGVUYXBUb1Jlc2V0KCkgY29uc3Q7CiAgICAgV2ViQ29yZTo6
RmxvYXRSZWN0IHJlY3RGb3JNZW51QWN0aW9uKENGU3RyaW5nUmVmKSBjb25zdDsKICAgICB2b2lk
IHNpbmdsZVRhcEF0UG9pbnRXaXRoTW9kaWZpZXJzKFdlYkNvcmU6OkZsb2F0UG9pbnQgbG9jYXRp
b24sIFZlY3RvcjxTdHJpbmc+JiYgbW9kaWZpZXJGbGFncywgQmxvY2tQdHI8dm9pZCgpPiYmKTsK
KyNpZiBIQVZFKFBFTkNJTEtJVCkKKyAgICBQS0NhbnZhc1ZpZXcgKmZpbmRFZGl0YWJsZUltYWdl
Q2FudmFzKCkgY29uc3Q7CisjZW5kaWYKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbSBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQppbmRleCA5MDY0MGI2ZjI1ZmY0
MzQwM2IxOTUxNTc0MjUxYmNhM2QwM2NiNjFiLi40NDA2MmE4OTQ4ODc3YWFkYzE2NGU1OGIwN2M2
YjNkZTU2NGJkOWI3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNj
cmlwdENvbnRyb2xsZXJJT1MubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlT
Y3JpcHRDb250cm9sbGVySU9TLm1tCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbXBvcnQgIkhJREV2
ZW50R2VuZXJhdG9yLmgiCiAjaW1wb3J0ICJQZW5jaWxLaXRUZXN0U1BJLmgiCisjaW1wb3J0ICJQ
bGF0Zm9ybVZpZXdIZWxwZXJzLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybVdlYlZpZXcuaCIKICNpbXBv
cnQgIlN0cmluZ0Z1bmN0aW9ucy5oIgogI2ltcG9ydCAiVGVzdENvbnRyb2xsZXIuaCIKQEAgLTEw
NSwzMSArMTA2LDYgQEAgc3RhdGljIFZlY3RvcjxTdHJpbmc+IHBhcnNlTW9kaWZpZXJBcnJheShK
U0NvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiBhcnJheVYKICAgICByZXR1cm4gbW9kaWZp
ZXJzOwogfQogCi1zdGF0aWMgQk9PTCBmb3JFYWNoVmlld0luSGllcmFyY2h5KFVJVmlldyAqdmll
dywgdm9pZChebWFwRnVuY3Rpb24pKFVJVmlldyAqc3VidmlldywgQk9PTCAqc3RvcCkpCi17Ci0g
ICAgQk9PTCBzdG9wID0gTk87Ci0gICAgbWFwRnVuY3Rpb24odmlldywgJnN0b3ApOwotICAgIGlm
IChzdG9wKQotICAgICAgICByZXR1cm4gWUVTOwotCi0gICAgZm9yIChVSVZpZXcgKnN1YnZpZXcg
aW4gdmlldy5zdWJ2aWV3cykgewotICAgICAgICBzdG9wID0gZm9yRWFjaFZpZXdJbkhpZXJhcmNo
eShzdWJ2aWV3LCBtYXBGdW5jdGlvbik7Ci0gICAgICAgIGlmIChzdG9wKQotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgfQotICAgIHJldHVybiBzdG9wOwotfQotCi1zdGF0aWMgTlNBcnJheTxVSVZp
ZXcgKj4gKmZpbmRBbGxWaWV3c0luSGllcmFyY2h5T2ZUeXBlKFVJVmlldyAqdmlldywgQ2xhc3Mg
dmlld0NsYXNzKQotewotICAgIF9fYmxvY2sgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PiB2aWV3
cyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOwotICAgIGZvckVhY2hW
aWV3SW5IaWVyYXJjaHkodmlldywgXihVSVZpZXcgKnN1YnZpZXcsIEJPT0wgKnN0b3ApIHsKLSAg
ICAgICAgaWYgKFtzdWJ2aWV3IGlzS2luZE9mQ2xhc3M6dmlld0NsYXNzXSkKLSAgICAgICAgICAg
IFt2aWV3cyBhZGRPYmplY3Q6c3Vidmlld107Ci0gICAgfSk7Ci0gICAgcmV0dXJuIHZpZXdzLmF1
dG9yZWxlYXNlKCk7Ci19Ci0KIFJlZjxVSVNjcmlwdENvbnRyb2xsZXI+IFVJU2NyaXB0Q29udHJv
bGxlcjo6Y3JlYXRlKFVJU2NyaXB0Q29udGV4dCYgY29udGV4dCkKIHsKICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBVSVNjcmlwdENvbnRyb2xsZXJJT1MoY29udGV4dCkpOwpAQCAtMTA4MSw3ICsx
MDU3LDggQEAgYm9vbCBVSVNjcmlwdENvbnRyb2xsZXJJT1M6OmlzU2hvd2luZ0RhdGFMaXN0U3Vn
Z2VzdGlvbnMoKSBjb25zdAogfQogCiAjaWYgSEFWRShQRU5DSUxLSVQpCi1zdGF0aWMgUEtDYW52
YXNWaWV3ICpmaW5kRWRpdGFibGVJbWFnZUNhbnZhcygpCisKK1BLQ2FudmFzVmlldyAqVUlTY3Jp
cHRDb250cm9sbGVySU9TOjpmaW5kRWRpdGFibGVJbWFnZUNhbnZhcygpIGNvbnN0CiB7CiAgICAg
Q2xhc3MgcGtDYW52YXNWaWV3Q2xhc3MgPSBOU0NsYXNzRnJvbVN0cmluZyhAIlBLQ2FudmFzVmll
dyIpOwogICAgIF9fYmxvY2sgUEtDYW52YXNWaWV3ICpjYW52YXNWaWV3ID0gbmlsOwpAQCAtMTA5
NCw3ICsxMDcxLDggQEAgc3RhdGljIFBLQ2FudmFzVmlldyAqZmluZEVkaXRhYmxlSW1hZ2VDYW52
YXMoKQogICAgIH0pOwogICAgIHJldHVybiBjYW52YXNWaWV3OwogfQotI2VuZGlmCisKKyNlbmRp
ZiAvLyBIQVZFKFBFTkNJTEtJVCkKIAogdm9pZCBVSVNjcmlwdENvbnRyb2xsZXJJT1M6OmRyYXdT
cXVhcmVJbkVkaXRhYmxlSW1hZ2UoKQogewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>