<?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>208561</bug_id>
          
          <creation_ts>2020-03-03 22:58:29 -0800</creation_ts>
          <short_desc>Move WKTextSelectionRect into its own file</short_desc>
          <delta_ts>2020-03-04 10:05:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Local Build</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>iOS 13</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>208563</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>achristensen</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1625423</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-03-03 22:58:29 -0800</bug_when>
    <thetext>Move WKTextSelectionRect into its own file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625424</commentid>
    <comment_count>1</comment_count>
      <attachid>392375</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-03-03 23:00:55 -0800</bug_when>
    <thetext>Created attachment 392375
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625425</commentid>
    <comment_count>2</comment_count>
      <attachid>392376</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-03-03 23:01:44 -0800</bug_when>
    <thetext>Created attachment 392376
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625427</commentid>
    <comment_count>3</comment_count>
      <attachid>392378</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-03-03 23:12:02 -0800</bug_when>
    <thetext>Created attachment 392378
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625532</commentid>
    <comment_count>4</comment_count>
      <attachid>392378</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-03-04 08:47:49 -0800</bug_when>
    <thetext>Comment on attachment 392378
Patch

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

&gt; Source/WebKit/UIProcess/ios/WKTextSelectionRect.mm:32
&gt; +#import &lt;WebKit/WebSelectionRect.h&gt;

Do we still need this in WKContentViewInteraction.mm?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625569</commentid>
    <comment_count>5</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-03-04 09:54:16 -0800</bug_when>
    <thetext>(In reply to Alex Christensen from comment #4)
&gt; Comment on attachment 392378 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=392378&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/ios/WKTextSelectionRect.mm:32
&gt; &gt; +#import &lt;WebKit/WebSelectionRect.h&gt;
&gt; 
&gt; Do we still need this in WKContentViewInteraction.mm?

Yes for webSelectionRectsForSelectionRects(), but I sooo wanted to remove it. I was very tempted to move webSelectionRectsForSelectionRects() out of it to do so, but I decided to do a smaller step just to make it easy to a review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625570</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-03-04 09:54:34 -0800</bug_when>
    <thetext>Thanks for the review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625581</commentid>
    <comment_count>7</comment_count>
      <attachid>392378</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-03-04 10:04:09 -0800</bug_when>
    <thetext>Comment on attachment 392378
Patch

Clearing flags on attachment: 392378

Committed r257851: &lt;https://trac.webkit.org/changeset/257851&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625582</commentid>
    <comment_count>8</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-03-04 10:04:11 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625585</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-04 10:05:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/60044325&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392375</attachid>
            <date>2020-03-03 23:00:55 -0800</date>
            <delta_ts>2020-03-03 23:01:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208561-20200303230054.patch</filename>
            <type>text/plain</type>
            <size>14747</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3ODM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdmNDk3N2YzNzI3MDZkMzMw
YWFlZjFjMzkzMzUwMGFjNDA2NDI5MjUuLmI3NzdhNDQ0MDQyNWMwZDdmYjg3MzU3YjgxZjlkYjdi
YzUzM2UxNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjAtMDMtMDMgIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgV0tUZXh0U2VsZWN0aW9u
UmVjdCBpbnRvIGl0cyBvd24gZmlsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA4NTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV0tUZXh0U2VsZWN0aW9uUmVjdCBpcyBjdXJyZW50bHkgZGVmaW5lZCBp
biBXS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0uIFNlcGFyYXRlIGl0CisgICAgICAgIG91dCBp
bnRvIGl0cyBvd24gZmlsZSB0byBpbXByb3ZlIHByb2plY3Qgb3JnYW5pemF0aW9uIGFuZCBkZS1j
bHV0dGVyIFdLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbS4KKworICAgICAgICAqIFNvdXJjZXND
b2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW06CisgICAgICAgICgtW1dLVGV4dFNlbGVjdGlvblJlY3QgaW5pdFdpdGhXZWJSZWN0Ol0p
OiBEZWxldGVkLgorICAgICAgICAoLVtXS1RleHRTZWxlY3Rpb25SZWN0IGRlYWxsb2NdKTogRGVs
ZXRlZC4KKyAgICAgICAgKCtbV0tUZXh0U2VsZWN0aW9uUmVjdCB0ZXh0U2VsZWN0aW9uUmVjdHNX
aXRoV2ViUmVjdHM6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVGV4dFNlbGVjdGlvblJlY3Qg
cmVjdF0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1RleHRTZWxlY3Rpb25SZWN0IHdyaXRpbmdE
aXJlY3Rpb25dKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tUZXh0U2VsZWN0aW9uUmVjdCByYW5n
ZV0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1RleHRTZWxlY3Rpb25SZWN0IGNvbnRhaW5zU3Rh
cnRdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tUZXh0U2VsZWN0aW9uUmVjdCBjb250YWluc0Vu
ZF0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1RleHRTZWxlY3Rpb25SZWN0IGlzVmVydGljYWxd
KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLVGV4dFNlbGVjdGlvblJlY3Qu
aDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS1RleHRTZWxlY3Rpb25SZWN0Lm1t
OiBBZGRlZC4KKyAgICAgICAgKC1bV0tUZXh0U2VsZWN0aW9uUmVjdCBpbml0V2l0aFdlYlJlY3Q6
XSk6CisgICAgICAgICgtW1dLVGV4dFNlbGVjdGlvblJlY3QgZGVhbGxvY10pOgorICAgICAgICAo
K1tXS1RleHRTZWxlY3Rpb25SZWN0IHRleHRTZWxlY3Rpb25SZWN0c1dpdGhXZWJSZWN0czpdKToK
KyAgICAgICAgKC1bV0tUZXh0U2VsZWN0aW9uUmVjdCByZWN0XSk6CisgICAgICAgICgtW1dLVGV4
dFNlbGVjdGlvblJlY3Qgd3JpdGluZ0RpcmVjdGlvbl0pOgorICAgICAgICAoLVtXS1RleHRTZWxl
Y3Rpb25SZWN0IHJhbmdlXSk6CisgICAgICAgICgtW1dLVGV4dFNlbGVjdGlvblJlY3QgY29udGFp
bnNTdGFydF0pOgorICAgICAgICAoLVtXS1RleHRTZWxlY3Rpb25SZWN0IGNvbnRhaW5zRW5kXSk6
CisgICAgICAgICgtW1dLVGV4dFNlbGVjdGlvblJlY3QgaXNWZXJ0aWNhbF0pOgorICAgICAgICAq
IFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIwLTAzLTAzICBEZXZpbiBS
b3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiByZS1h
ZGQgYEluc3BlY3RvckZyb250ZW5kSG9zdGAgc3VwcG9ydCBmb3IgbW92aW5nIHRoZSBpbnNwZWN0
ZWQgd2luZG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMGE3NzY5Mzk4NzllYjY5NWZmYmZl
YWZiZWQ4YmMyZjljNDRjZWZhNC4uNzhlMGRlMTNjMWQzMTYwYjZmN2FhOTgwZTYxMmYzZGZhMDc5
NTQ4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNDcxLDYgKzQ3MSw3IEBAIFVJUHJvY2Vz
cy9pb3MvV0tTeW50aGV0aWNGbGFnc0NoYW5nZWRXZWJFdmVudC5tbQogVUlQcm9jZXNzL2lvcy9X
S1N5bnRoZXRpY1RhcEdlc3R1cmVSZWNvZ25pemVyLm1tCiBVSVByb2Nlc3MvaW9zL1dLU3lzdGVt
UHJldmlld1ZpZXcubW0KIFVJUHJvY2Vzcy9pb3MvV0tUb3VjaEFjdGlvbkdlc3R1cmVSZWNvZ25p
emVyLm1tCitVSVByb2Nlc3MvaW9zL1dLVGV4dFNlbGVjaW9uUmVjdC5tbQogVUlQcm9jZXNzL2lv
cy9XS1dlYkV2ZW50Lm1tCiAKIFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVy
TWFjLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCA4NDIyZDUzOTNjNTcwZjExYjg1ODExOTc2YzY2OTkz
YjY1ZjNmYmQ1Li42MzAwOGE3OTdhOWFiMTg5YjI3MThkODBiM2Y4ODVkYjJhMDFlZjI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0KQEAgLTY1LDYgKzY1LDcgQEAKICNpbXBvcnQgIldLU2VsZWN0TWVudUxpc3RW
aWV3Q29udHJvbGxlci5oIgogI2ltcG9ydCAiV0tTeW50aGV0aWNGbGFnc0NoYW5nZWRXZWJFdmVu
dC5oIgogI2ltcG9ydCAiV0tUZXh0SW5wdXRMaXN0Vmlld0NvbnRyb2xsZXIuaCIKKyNpbXBvcnQg
IldLVGV4dFNlbGVjdGlvblJlY3QuaCIKICNpbXBvcnQgIldLVGltZVBpY2tlclZpZXdDb250cm9s
bGVyLmgiCiAjaW1wb3J0ICJXS1VJRGVsZWdhdGVQcml2YXRlLmgiCiAjaW1wb3J0ICJXS1dlYlZp
ZXdDb25maWd1cmF0aW9uLmgiCkBAIC0yOTAsMTMgKzI5MSw2IEBAICsgKFdLVGV4dFBvc2l0aW9u
ICopdGV4dFBvc2l0aW9uV2l0aFJlY3Q6KENHUmVjdClwb3NpdGlvblJlY3Q7CiAKIEBlbmQKIAot
QGludGVyZmFjZSBXS1RleHRTZWxlY3Rpb25SZWN0IDogVUlUZXh0U2VsZWN0aW9uUmVjdAotCi1A
cHJvcGVydHkgKG5vbmF0b21pYywgcmV0YWluKSBXZWJTZWxlY3Rpb25SZWN0ICp3ZWJSZWN0Owot
Ci0rIChOU0FycmF5ICopdGV4dFNlbGVjdGlvblJlY3RzV2l0aFdlYlJlY3RzOihOU0FycmF5ICop
d2ViUmVjdHM7Ci0KLUBlbmQKIAogQGludGVyZmFjZSBXS0F1dG9jb3JyZWN0aW9uUmVjdHMgOiBV
SVdLQXV0b2NvcnJlY3Rpb25SZWN0cwogKyAoV0tBdXRvY29ycmVjdGlvblJlY3RzICopYXV0b2Nv
cnJlY3Rpb25SZWN0c1dpdGhGaXJzdENHUmVjdDooQ0dSZWN0KWZpcnN0UmVjdCBsYXN0Q0dSZWN0
OihDR1JlY3QpbGFzdFJlY3Q7CkBAIC05MzA0LDcgKzkyOTgsOCBAQCBAZW5kCiAKICNlbmRpZiAv
LyBIQVZFKExJTktfUFJFVklFVykKIAotLy8gVUlUZXh0UmFuZ2UsIFVJVGV4dFBvc2l0aW9uIGFu
ZCBVSVRleHRTZWxlY3Rpb25SZWN0IGltcGxlbWVudGF0aW9ucyBmb3IgV0syCisvLyBVSVRleHRS
YW5nZSBhbmQgVUlUZXh0UG9zaXRpb24gaW1wbGVtZW50YXRpb25zIGZvciBXSzIKKy8vIEZJWE1F
OiBNb3ZlIHRoZXNlIG91dCBpbnRvIHNlcGFyYXRlIGZpbGVzLgogCiBAaW1wbGVtZW50YXRpb24g
V0tUZXh0UmFuZ2UgKFVJVGV4dElucHV0QWRkaXRpb25zKQogCkBAIC05NDIwLDcxICs5NDE1LDYg
QEAgLSAoTlNTdHJpbmcgKilkZXNjcmlwdGlvbgogCiBAZW5kCiAKLUBpbXBsZW1lbnRhdGlvbiBX
S1RleHRTZWxlY3Rpb25SZWN0Ci0KLS0gKGlkKWluaXRXaXRoV2ViUmVjdDooV2ViU2VsZWN0aW9u
UmVjdCAqKXdSZWN0Ci17Ci0gICAgc2VsZiA9IFtzdXBlciBpbml0XTsKLSAgICBpZiAoc2VsZikK
LSAgICAgICAgc2VsZi53ZWJSZWN0ID0gd1JlY3Q7Ci0KLSAgICByZXR1cm4gc2VsZjsKLX0KLQot
LSAodm9pZClkZWFsbG9jCi17Ci0gICAgc2VsZi53ZWJSZWN0ID0gbmlsOwotICAgIFtzdXBlciBk
ZWFsbG9jXTsKLX0KLQotLy8gRklYTUU6IHdlIGFyZSB1c2luZyB0aGlzIGltcGxlbWVudGF0aW9u
IGZvciBub3cKLS8vIHRoYXQgdXNlcyBXZWJTZWxlY3Rpb25SZWN0LCBidXQgd2Ugd2FudCB0byBw
cm92aWRlIG91ciBvd24KLS8vIGJhc2VkIG9uIFdlYkNvcmU6OlNlbGVjdGlvblJlY3QuCi0KLSsg
KE5TQXJyYXkgKil0ZXh0U2VsZWN0aW9uUmVjdHNXaXRoV2ViUmVjdHM6KE5TQXJyYXkgKil3ZWJS
ZWN0cwotewotICAgIE5TTXV0YWJsZUFycmF5ICphcnJheSA9IFtOU011dGFibGVBcnJheSBhcnJh
eVdpdGhDYXBhY2l0eTp3ZWJSZWN0cy5jb3VudF07Ci0gICAgZm9yIChXZWJTZWxlY3Rpb25SZWN0
ICp3ZWJSZWN0IGluIHdlYlJlY3RzKSB7Ci0gICAgICAgIFJldGFpblB0cjxXS1RleHRTZWxlY3Rp
b25SZWN0PiByZWN0ID0gYWRvcHROUyhbW1dLVGV4dFNlbGVjdGlvblJlY3QgYWxsb2NdIGluaXRX
aXRoV2ViUmVjdDp3ZWJSZWN0XSk7Ci0gICAgICAgIFthcnJheSBhZGRPYmplY3Q6cmVjdC5nZXQo
KV07Ci0gICAgfQotICAgIHJldHVybiBhcnJheTsKLX0KLQotLSAoQ0dSZWN0KXJlY3QKLXsKLSAg
ICByZXR1cm4gX3dlYlJlY3QucmVjdDsKLX0KLQotQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KLS0gKFVJVGV4dFdyaXRpbmdEaXJlY3Rpb24pd3JpdGluZ0RpcmVjdGlvbgotewot
ICAgIHJldHVybiAoVUlUZXh0V3JpdGluZ0RpcmVjdGlvbilfd2ViUmVjdC53cml0aW5nRGlyZWN0
aW9uOwotfQotQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECi0KLS0gKFVJVGV4dFJh
bmdlICopcmFuZ2UKLXsKLSAgICByZXR1cm4gbmlsOwotfQotCi0tIChCT09MKWNvbnRhaW5zU3Rh
cnQKLXsKLSAgICByZXR1cm4gX3dlYlJlY3QuY29udGFpbnNTdGFydDsKLX0KLQotLSAoQk9PTClj
b250YWluc0VuZAotewotICAgIHJldHVybiBfd2ViUmVjdC5jb250YWluc0VuZDsKLX0KLQotLSAo
Qk9PTClpc1ZlcnRpY2FsCi17Ci0gICAgcmV0dXJuICFfd2ViUmVjdC5pc0hvcml6b250YWw7Ci19
Ci0KLUBlbmQKLQogQGltcGxlbWVudGF0aW9uIFdLQXV0b2NvcnJlY3Rpb25SZWN0cwogCiArIChX
S0F1dG9jb3JyZWN0aW9uUmVjdHMgKilhdXRvY29ycmVjdGlvblJlY3RzV2l0aEZpcnN0Q0dSZWN0
OihDR1JlY3QpZmlyc3RSZWN0IGxhc3RDR1JlY3Q6KENHUmVjdClsYXN0UmVjdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLVGV4dFNlbGVjdGlvblJlY3QuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1RleHRTZWxlY3Rpb25SZWN0LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMWQyMjA5NzljMGY4NGJhYTQzZDg1NGVmYTU2YTg5MDI2NjM1MGI5NAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1RleHRTZWxlY3Rpb25SZWN0LmgK
QEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKworI2ltcG9ydCA8VUlLaXQvVUlLaXQuaD4KKworQGNsYXNzIFdlYlNl
bGVjdGlvblJlY3QKKworQGludGVyZmFjZSBXS1RleHRTZWxlY3Rpb25SZWN0IDogVUlUZXh0U2Vs
ZWN0aW9uUmVjdAorCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmV0YWluKSBXZWJTZWxlY3Rpb25S
ZWN0ICp3ZWJSZWN0OworCisrIChOU0FycmF5ICopdGV4dFNlbGVjdGlvblJlY3RzV2l0aFdlYlJl
Y3RzOihOU0FycmF5ICopd2ViUmVjdHM7CisKK0BlbmQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElP
U19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tUZXh0
U2VsZWN0aW9uUmVjdC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1RleHRTZWxl
Y3Rpb25SZWN0Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1ZTBiMTUyNmIzZjkxMTFhNDI5OGU2ZDIzMzJiZDEy
ZGI1NTA0ZWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tUZXh0U2VsZWN0aW9uUmVjdC5tbQpAQCAtMCwwICsxLDk3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXS1RleHRTZWxlY3Rpb25SZWN0LmgiCisKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorCisvLyBGSVhNRTogTGF5ZXJpbmcgdmlvbGF0aW9uOyBXZWJL
aXQyIHNob3VsZCBub3QgaW5jbHVkZSBXZWJLaXQgaGVhZGVycy4KKyNpbXBvcnQgPFdlYktpdC9X
ZWJTZWxlY3Rpb25SZWN0Lmg+CisKK0BpbXBsZW1lbnRhdGlvbiBXS1RleHRTZWxlY3Rpb25SZWN0
CisKKy0gKGlkKWluaXRXaXRoV2ViUmVjdDooV2ViU2VsZWN0aW9uUmVjdCAqKXdSZWN0Cit7Cisg
ICAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAgICBpZiAoc2VsZikKKyAgICAgICAgc2VsZi53ZWJS
ZWN0ID0gd1JlY3Q7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClkZWFsbG9jCit7
CisgICAgc2VsZi53ZWJSZWN0ID0gbmlsOworICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKworLy8g
RklYTUU6IFdlIGFyZSB1c2luZyB0aGlzIGltcGxlbWVudGF0aW9uIGZvciBub3cgdGhhdCB1c2Vz
IFdlYlNlbGVjdGlvblJlY3QsIGJ1dAorLy8gd2Ugd2FudCB0byBwcm92aWRlIG91ciBvd24gYmFz
ZWQgb24gV2ViQ29yZTo6U2VsZWN0aW9uUmVjdC4KKysgKE5TQXJyYXkgKil0ZXh0U2VsZWN0aW9u
UmVjdHNXaXRoV2ViUmVjdHM6KE5TQXJyYXkgKil3ZWJSZWN0cworeworICAgIE5TTXV0YWJsZUFy
cmF5ICphcnJheSA9IFtOU011dGFibGVBcnJheSBhcnJheVdpdGhDYXBhY2l0eTp3ZWJSZWN0cy5j
b3VudF07CisgICAgZm9yIChXZWJTZWxlY3Rpb25SZWN0ICp3ZWJSZWN0IGluIHdlYlJlY3RzKSB7
CisgICAgICAgIFJldGFpblB0cjxXS1RleHRTZWxlY3Rpb25SZWN0PiByZWN0ID0gYWRvcHROUyhb
W1dLVGV4dFNlbGVjdGlvblJlY3QgYWxsb2NdIGluaXRXaXRoV2ViUmVjdDp3ZWJSZWN0XSk7Cisg
ICAgICAgIFthcnJheSBhZGRPYmplY3Q6cmVjdC5nZXQoKV07CisgICAgfQorICAgIHJldHVybiBh
cnJheTsKK30KKworLSAoQ0dSZWN0KXJlY3QKK3sKKyAgICByZXR1cm4gX3dlYlJlY3QucmVjdDsK
K30KKworQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KKy0gKFVJVGV4dFdyaXRp
bmdEaXJlY3Rpb24pd3JpdGluZ0RpcmVjdGlvbgoreworICAgIHJldHVybiAoVUlUZXh0V3JpdGlu
Z0RpcmVjdGlvbilfd2ViUmVjdC53cml0aW5nRGlyZWN0aW9uOworfQorQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECisKKy0gKFVJVGV4dFJhbmdlICopcmFuZ2UKK3sKKyAgICByZXR1
cm4gbmlsOworfQorCistIChCT09MKWNvbnRhaW5zU3RhcnQKK3sKKyAgICByZXR1cm4gX3dlYlJl
Y3QuY29udGFpbnNTdGFydDsKK30KKworLSAoQk9PTCljb250YWluc0VuZAoreworICAgIHJldHVy
biBfd2ViUmVjdC5jb250YWluc0VuZDsKK30KKworLSAoQk9PTClpc1ZlcnRpY2FsCit7CisgICAg
cmV0dXJuICFfd2ViUmVjdC5pc0hvcml6b250YWw7Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIFBM
QVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAxNWM1MjRmMzYyMTc3ZGRjNzEyNzI3NjI1NTc4ODcwNGNlYjM5
ZGEzLi40Y2E2ODMyMmM5MzUxNjdhYjZhOWJkMjcwYzY4NzdlYWE1YjczNTk2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE3MzQsNiAr
MTczNCw3IEBACiAJCUNFMUEwQkQyMUE0OEU2QzYwMDU0RUY3NCAvKiBBc3NlcnRpb25TZXJ2aWNl
c1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Ux
QTBCQ0MxQTQ4RTZDNjAwNTRFRjc0IC8qIEFzc2VydGlvblNlcnZpY2VzU1BJLmggKi87IH07CiAJ
CUNFMUEwQkQ2MUE0OEU2QzYwMDU0RUY3NCAvKiBUQ0NTUEkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFMUEwQkQwMUE0OEU2QzYwMDU0RUY3NCAvKiBU
Q0NTUEkuaCAqLzsgfTsKIAkJQ0UxQTBCRDcxQTQ4RTZDNjAwNTRFRjc0IC8qIFRleHRJbnB1dFNQ
SS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0UxQTBC
RDExQTQ4RTZDNjAwNTRFRjc0IC8qIFRleHRJbnB1dFNQSS5oICovOyB9OworCQlDRTQ1OTQ1QzI0
MEY4ODU1MDA3ODAxOUYgLyogV0tUZXh0U2VsZWN0aW9uUmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0U0NTk0NUEyNDBGODVCOTAwNzgwMTlGIC8q
IFdLVGV4dFNlbGVjdGlvblJlY3QuaCAqLzsgfTsKIAkJQ0U1NTBFMTUyMjgzNzUyMjAwRDI4Nzkx
IC8qIEluc2VydFRleHRPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRTU1MEUxMjIyODM3M0M4MDBEMjg3OTEgLyogSW5zZXJ0VGV4dE9wdGlv
bnMuaCAqLzsgfTsKIAkJQ0U1QjRDODgyMUI3M0Q4NzAwMjJFNjRGIC8qIFdLU3ludGhldGljRmxh
Z3NDaGFuZ2VkV2ViRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENFNUI0Qzg2MjFCNzNEODcwMDIyRTY0RiAvKiBXS1N5bnRoZXRpY0ZsYWdzQ2hh
bmdlZFdlYkV2ZW50LmggKi87IH07CiAJCUNFNzBFRTVEMjI0NDJCRDAwMEUwQUYwRiAvKiBXS0Zv
cm1QZXJpcGhlcmFsQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0U3MEVFNUMyMjQ0MkJEMDAwRTBBRjBGIC8qIFdLRm9ybVBlcmlwaGVyYWxCYXNl
LmggKi87IH07CkBAIC01MDUwLDYgKzUwNTEsOCBAQAogCQlDRTFBMEJDQzFBNDhFNkM2MDA1NEVG
NzQgLyogQXNzZXJ0aW9uU2VydmljZXNTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQXNzZXJ0aW9uU2VydmljZXNTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0UxQTBCRDAxQTQ4RTZDNjAwNTRFRjc0IC8qIFRDQ1NQSS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBUQ0NTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0UxQTBCRDExQTQ4RTZDNjAwNTRFRjc0IC8qIFRleHRJbnB1dFNQSS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0SW5wdXRTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0U0NTk0NUEyNDBGODVCOTAwNzgwMTlGIC8qIFdLVGV4dFNlbGVjdGlvblJlY3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gV0tUZXh0U2VsZWN0aW9uUmVjdC5oOyBwYXRoID0gaW9zL1dLVGV4
dFNlbGVjdGlvblJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0U0NTk0NUIy
NDBGODVCOTAwNzgwMTlGIC8qIFdLVGV4dFNlbGVjdGlvblJlY3QubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IG5hbWUgPSBXS1RleHRTZWxlY3Rpb25SZWN0Lm1tOyBwYXRoID0gaW9zL1dLVGV4dFNlbGVjdGlv
blJlY3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFNTUwRTEyMjI4MzczQzgw
MEQyODc5MSAvKiBJbnNlcnRUZXh0T3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNlcnRUZXh0
T3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTU1MEUxMzIyODM3NDQ0
MDBEMjg3OTEgLyogSW5zZXJ0VGV4dE9wdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5z
ZXJ0VGV4dE9wdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTVCNEM4
NjIxQjczRDg3MDAyMkU2NEYgLyogV0tTeW50aGV0aWNGbGFnc0NoYW5nZWRXZWJFdmVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBXS1N5bnRoZXRpY0ZsYWdzQ2hhbmdlZFdlYkV2ZW50Lmg7IHBhdGggPSBp
b3MvV0tTeW50aGV0aWNGbGFnc0NoYW5nZWRXZWJFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNjc5NSw2ICs2Nzk4LDggQEAKIAkJCQkyNkYxMEJFNzE5MTg3RTJFMDAxRDBF
NjggLyogV0tTeW50aGV0aWNUYXBHZXN0dXJlUmVjb2duaXplci5tbSAqLywKIAkJCQkzMTZCOEI2
MjIwNTRCNTU4MDBCRDRBNjIgLyogV0tTeXN0ZW1QcmV2aWV3Vmlldy5oICovLAogCQkJCTMxNkI4
QjYxMjA1NEI1NTgwMEJENEE2MiAvKiBXS1N5c3RlbVByZXZpZXdWaWV3Lm1tICovLAorCQkJCUNF
NDU5NDVBMjQwRjg1QjkwMDc4MDE5RiAvKiBXS1RleHRTZWxlY3Rpb25SZWN0LmggKi8sCisJCQkJ
Q0U0NTk0NUIyNDBGODVCOTAwNzgwMTlGIC8qIFdLVGV4dFNlbGVjdGlvblJlY3QubW0gKi8sCiAJ
CQkJNzFBNjc2QTQyMkM2MjMxODAwN0Q2Mjk1IC8qIFdLVG91Y2hBY3Rpb25HZXN0dXJlUmVjb2du
aXplci5oICovLAogCQkJCTcxQTY3NkE1MjJDNjIzMTgwMDdENjI5NSAvKiBXS1RvdWNoQWN0aW9u
R2VzdHVyZVJlY29nbml6ZXIubW0gKi8sCiAJCQkJMkQxRTgyMjEyMTZGRkY1MDAwQTE1MjY1IC8q
IFdLV2ViRXZlbnQuaCAqLywKQEAgLTExMzQ3LDYgKzExMzUyLDcgQEAKIAkJCQkyREQ2N0EzNTFC
RDg2MTA2MDA1M0IyNTEgLyogV0tUZXh0RmluZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGNEQ1RjUxRDIwNjA4N0ExMDAzOEJCQTggLyogV0tUZXh0SW5wdXRMaXN0Vmlld0NvbnRyb2xs
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQ0I0RTY4MThCQkUzRDkwMDBGQ0ZDOSAvKiBXS1Rl
eHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUNFNDU5NDVDMjQw
Rjg4NTUwMDc4MDE5RiAvKiBXS1RleHRTZWxlY3Rpb25SZWN0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkyRUI2RkMwMTIwMzAyMTk2MDAxN0U2MTkgLyogV0tUaW1lUGlja2VyVmlld0NvbnRyb2xsZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTcxQTY3NkE2MjJDNjIzMjUwMDdENjI5NSAvKiBXS1RvdWNo
QWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjA4MTI0
RkYwMjcwMDY4RjIwQSAvKiBXS1R5cGUuaCBpbiBIZWFkZXJzICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392376</attachid>
            <date>2020-03-03 23:01:44 -0800</date>
            <delta_ts>2020-03-03 23:12:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208561-20200303230144.patch</filename>
            <type>text/plain</type>
            <size>14748</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3ODM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdmNDk3N2YzNzI3MDZkMzMw
YWFlZjFjMzkzMzUwMGFjNDA2NDI5MjUuLmI3NzdhNDQ0MDQyNWMwZDdmYjg3MzU3YjgxZjlkYjdi
YzUzM2UxNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjAtMDMtMDMgIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgV0tUZXh0U2VsZWN0aW9u
UmVjdCBpbnRvIGl0cyBvd24gZmlsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA4NTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV0tUZXh0U2VsZWN0aW9uUmVjdCBpcyBjdXJyZW50bHkgZGVmaW5lZCBp
biBXS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0uIFNlcGFyYXRlIGl0CisgICAgICAgIG91dCBp
bnRvIGl0cyBvd24gZmlsZSB0byBpbXByb3ZlIHByb2plY3Qgb3JnYW5pemF0aW9uIGFuZCBkZS1j
bHV0dGVyIFdLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbS4KKworICAgICAgICAqIFNvdXJjZXND
b2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW06CisgICAgICAgICgtW1dLVGV4dFNlbGVjdGlvblJlY3QgaW5pdFdpdGhXZWJSZWN0Ol0p
OiBEZWxldGVkLgorICAgICAgICAoLVtXS1RleHRTZWxlY3Rpb25SZWN0IGRlYWxsb2NdKTogRGVs
ZXRlZC4KKyAgICAgICAgKCtbV0tUZXh0U2VsZWN0aW9uUmVjdCB0ZXh0U2VsZWN0aW9uUmVjdHNX
aXRoV2ViUmVjdHM6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVGV4dFNlbGVjdGlvblJlY3Qg
cmVjdF0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1RleHRTZWxlY3Rpb25SZWN0IHdyaXRpbmdE
aXJlY3Rpb25dKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tUZXh0U2VsZWN0aW9uUmVjdCByYW5n
ZV0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1RleHRTZWxlY3Rpb25SZWN0IGNvbnRhaW5zU3Rh
cnRdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tUZXh0U2VsZWN0aW9uUmVjdCBjb250YWluc0Vu
ZF0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1RleHRTZWxlY3Rpb25SZWN0IGlzVmVydGljYWxd
KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLVGV4dFNlbGVjdGlvblJlY3Qu
aDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS1RleHRTZWxlY3Rpb25SZWN0Lm1t
OiBBZGRlZC4KKyAgICAgICAgKC1bV0tUZXh0U2VsZWN0aW9uUmVjdCBpbml0V2l0aFdlYlJlY3Q6
XSk6CisgICAgICAgICgtW1dLVGV4dFNlbGVjdGlvblJlY3QgZGVhbGxvY10pOgorICAgICAgICAo
K1tXS1RleHRTZWxlY3Rpb25SZWN0IHRleHRTZWxlY3Rpb25SZWN0c1dpdGhXZWJSZWN0czpdKToK
KyAgICAgICAgKC1bV0tUZXh0U2VsZWN0aW9uUmVjdCByZWN0XSk6CisgICAgICAgICgtW1dLVGV4
dFNlbGVjdGlvblJlY3Qgd3JpdGluZ0RpcmVjdGlvbl0pOgorICAgICAgICAoLVtXS1RleHRTZWxl
Y3Rpb25SZWN0IHJhbmdlXSk6CisgICAgICAgICgtW1dLVGV4dFNlbGVjdGlvblJlY3QgY29udGFp
bnNTdGFydF0pOgorICAgICAgICAoLVtXS1RleHRTZWxlY3Rpb25SZWN0IGNvbnRhaW5zRW5kXSk6
CisgICAgICAgICgtW1dLVGV4dFNlbGVjdGlvblJlY3QgaXNWZXJ0aWNhbF0pOgorICAgICAgICAq
IFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIwLTAzLTAzICBEZXZpbiBS
b3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiByZS1h
ZGQgYEluc3BlY3RvckZyb250ZW5kSG9zdGAgc3VwcG9ydCBmb3IgbW92aW5nIHRoZSBpbnNwZWN0
ZWQgd2luZG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMGE3NzY5Mzk4NzllYjY5NWZmYmZl
YWZiZWQ4YmMyZjljNDRjZWZhNC4uNzhlMGRlMTNjMWQzMTYwYjZmN2FhOTgwZTYxMmYzZGZhMDc5
NTQ4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNDcxLDYgKzQ3MSw3IEBAIFVJUHJvY2Vz
cy9pb3MvV0tTeW50aGV0aWNGbGFnc0NoYW5nZWRXZWJFdmVudC5tbQogVUlQcm9jZXNzL2lvcy9X
S1N5bnRoZXRpY1RhcEdlc3R1cmVSZWNvZ25pemVyLm1tCiBVSVByb2Nlc3MvaW9zL1dLU3lzdGVt
UHJldmlld1ZpZXcubW0KIFVJUHJvY2Vzcy9pb3MvV0tUb3VjaEFjdGlvbkdlc3R1cmVSZWNvZ25p
emVyLm1tCitVSVByb2Nlc3MvaW9zL1dLVGV4dFNlbGVjaW9uUmVjdC5tbQogVUlQcm9jZXNzL2lv
cy9XS1dlYkV2ZW50Lm1tCiAKIFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVy
TWFjLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCA4NDIyZDUzOTNjNTcwZjExYjg1ODExOTc2YzY2OTkz
YjY1ZjNmYmQ1Li42MzAwOGE3OTdhOWFiMTg5YjI3MThkODBiM2Y4ODVkYjJhMDFlZjI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0KQEAgLTY1LDYgKzY1LDcgQEAKICNpbXBvcnQgIldLU2VsZWN0TWVudUxpc3RW
aWV3Q29udHJvbGxlci5oIgogI2ltcG9ydCAiV0tTeW50aGV0aWNGbGFnc0NoYW5nZWRXZWJFdmVu
dC5oIgogI2ltcG9ydCAiV0tUZXh0SW5wdXRMaXN0Vmlld0NvbnRyb2xsZXIuaCIKKyNpbXBvcnQg
IldLVGV4dFNlbGVjdGlvblJlY3QuaCIKICNpbXBvcnQgIldLVGltZVBpY2tlclZpZXdDb250cm9s
bGVyLmgiCiAjaW1wb3J0ICJXS1VJRGVsZWdhdGVQcml2YXRlLmgiCiAjaW1wb3J0ICJXS1dlYlZp
ZXdDb25maWd1cmF0aW9uLmgiCkBAIC0yOTAsMTMgKzI5MSw2IEBAICsgKFdLVGV4dFBvc2l0aW9u
ICopdGV4dFBvc2l0aW9uV2l0aFJlY3Q6KENHUmVjdClwb3NpdGlvblJlY3Q7CiAKIEBlbmQKIAot
QGludGVyZmFjZSBXS1RleHRTZWxlY3Rpb25SZWN0IDogVUlUZXh0U2VsZWN0aW9uUmVjdAotCi1A
cHJvcGVydHkgKG5vbmF0b21pYywgcmV0YWluKSBXZWJTZWxlY3Rpb25SZWN0ICp3ZWJSZWN0Owot
Ci0rIChOU0FycmF5ICopdGV4dFNlbGVjdGlvblJlY3RzV2l0aFdlYlJlY3RzOihOU0FycmF5ICop
d2ViUmVjdHM7Ci0KLUBlbmQKIAogQGludGVyZmFjZSBXS0F1dG9jb3JyZWN0aW9uUmVjdHMgOiBV
SVdLQXV0b2NvcnJlY3Rpb25SZWN0cwogKyAoV0tBdXRvY29ycmVjdGlvblJlY3RzICopYXV0b2Nv
cnJlY3Rpb25SZWN0c1dpdGhGaXJzdENHUmVjdDooQ0dSZWN0KWZpcnN0UmVjdCBsYXN0Q0dSZWN0
OihDR1JlY3QpbGFzdFJlY3Q7CkBAIC05MzA0LDcgKzkyOTgsOCBAQCBAZW5kCiAKICNlbmRpZiAv
LyBIQVZFKExJTktfUFJFVklFVykKIAotLy8gVUlUZXh0UmFuZ2UsIFVJVGV4dFBvc2l0aW9uIGFu
ZCBVSVRleHRTZWxlY3Rpb25SZWN0IGltcGxlbWVudGF0aW9ucyBmb3IgV0syCisvLyBVSVRleHRS
YW5nZSBhbmQgVUlUZXh0UG9zaXRpb24gaW1wbGVtZW50YXRpb25zIGZvciBXSzIKKy8vIEZJWE1F
OiBNb3ZlIHRoZXNlIG91dCBpbnRvIHNlcGFyYXRlIGZpbGVzLgogCiBAaW1wbGVtZW50YXRpb24g
V0tUZXh0UmFuZ2UgKFVJVGV4dElucHV0QWRkaXRpb25zKQogCkBAIC05NDIwLDcxICs5NDE1LDYg
QEAgLSAoTlNTdHJpbmcgKilkZXNjcmlwdGlvbgogCiBAZW5kCiAKLUBpbXBsZW1lbnRhdGlvbiBX
S1RleHRTZWxlY3Rpb25SZWN0Ci0KLS0gKGlkKWluaXRXaXRoV2ViUmVjdDooV2ViU2VsZWN0aW9u
UmVjdCAqKXdSZWN0Ci17Ci0gICAgc2VsZiA9IFtzdXBlciBpbml0XTsKLSAgICBpZiAoc2VsZikK
LSAgICAgICAgc2VsZi53ZWJSZWN0ID0gd1JlY3Q7Ci0KLSAgICByZXR1cm4gc2VsZjsKLX0KLQot
LSAodm9pZClkZWFsbG9jCi17Ci0gICAgc2VsZi53ZWJSZWN0ID0gbmlsOwotICAgIFtzdXBlciBk
ZWFsbG9jXTsKLX0KLQotLy8gRklYTUU6IHdlIGFyZSB1c2luZyB0aGlzIGltcGxlbWVudGF0aW9u
IGZvciBub3cKLS8vIHRoYXQgdXNlcyBXZWJTZWxlY3Rpb25SZWN0LCBidXQgd2Ugd2FudCB0byBw
cm92aWRlIG91ciBvd24KLS8vIGJhc2VkIG9uIFdlYkNvcmU6OlNlbGVjdGlvblJlY3QuCi0KLSsg
KE5TQXJyYXkgKil0ZXh0U2VsZWN0aW9uUmVjdHNXaXRoV2ViUmVjdHM6KE5TQXJyYXkgKil3ZWJS
ZWN0cwotewotICAgIE5TTXV0YWJsZUFycmF5ICphcnJheSA9IFtOU011dGFibGVBcnJheSBhcnJh
eVdpdGhDYXBhY2l0eTp3ZWJSZWN0cy5jb3VudF07Ci0gICAgZm9yIChXZWJTZWxlY3Rpb25SZWN0
ICp3ZWJSZWN0IGluIHdlYlJlY3RzKSB7Ci0gICAgICAgIFJldGFpblB0cjxXS1RleHRTZWxlY3Rp
b25SZWN0PiByZWN0ID0gYWRvcHROUyhbW1dLVGV4dFNlbGVjdGlvblJlY3QgYWxsb2NdIGluaXRX
aXRoV2ViUmVjdDp3ZWJSZWN0XSk7Ci0gICAgICAgIFthcnJheSBhZGRPYmplY3Q6cmVjdC5nZXQo
KV07Ci0gICAgfQotICAgIHJldHVybiBhcnJheTsKLX0KLQotLSAoQ0dSZWN0KXJlY3QKLXsKLSAg
ICByZXR1cm4gX3dlYlJlY3QucmVjdDsKLX0KLQotQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KLS0gKFVJVGV4dFdyaXRpbmdEaXJlY3Rpb24pd3JpdGluZ0RpcmVjdGlvbgotewot
ICAgIHJldHVybiAoVUlUZXh0V3JpdGluZ0RpcmVjdGlvbilfd2ViUmVjdC53cml0aW5nRGlyZWN0
aW9uOwotfQotQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECi0KLS0gKFVJVGV4dFJh
bmdlICopcmFuZ2UKLXsKLSAgICByZXR1cm4gbmlsOwotfQotCi0tIChCT09MKWNvbnRhaW5zU3Rh
cnQKLXsKLSAgICByZXR1cm4gX3dlYlJlY3QuY29udGFpbnNTdGFydDsKLX0KLQotLSAoQk9PTClj
b250YWluc0VuZAotewotICAgIHJldHVybiBfd2ViUmVjdC5jb250YWluc0VuZDsKLX0KLQotLSAo
Qk9PTClpc1ZlcnRpY2FsCi17Ci0gICAgcmV0dXJuICFfd2ViUmVjdC5pc0hvcml6b250YWw7Ci19
Ci0KLUBlbmQKLQogQGltcGxlbWVudGF0aW9uIFdLQXV0b2NvcnJlY3Rpb25SZWN0cwogCiArIChX
S0F1dG9jb3JyZWN0aW9uUmVjdHMgKilhdXRvY29ycmVjdGlvblJlY3RzV2l0aEZpcnN0Q0dSZWN0
OihDR1JlY3QpZmlyc3RSZWN0IGxhc3RDR1JlY3Q6KENHUmVjdClsYXN0UmVjdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLVGV4dFNlbGVjdGlvblJlY3QuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1RleHRTZWxlY3Rpb25SZWN0LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOGJiYTllN2I4ZGQwZmVmM2RlMDNhOWU0ZGQzYmU0MzJkZGJiOTQ2YwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1RleHRTZWxlY3Rpb25SZWN0LmgK
QEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKworI2ltcG9ydCA8VUlLaXQvVUlLaXQuaD4KKworQGNsYXNzIFdlYlNl
bGVjdGlvblJlY3Q7CisKK0BpbnRlcmZhY2UgV0tUZXh0U2VsZWN0aW9uUmVjdCA6IFVJVGV4dFNl
bGVjdGlvblJlY3QKKworQHByb3BlcnR5IChub25hdG9taWMsIHJldGFpbikgV2ViU2VsZWN0aW9u
UmVjdCAqd2ViUmVjdDsKKworKyAoTlNBcnJheSAqKXRleHRTZWxlY3Rpb25SZWN0c1dpdGhXZWJS
ZWN0czooTlNBcnJheSAqKXdlYlJlY3RzOworCitAZW5kCisKKyNlbmRpZiAvLyBQTEFURk9STShJ
T1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLVGV4
dFNlbGVjdGlvblJlY3QubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tUZXh0U2Vs
ZWN0aW9uUmVjdC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNWUwYjE1MjZiM2Y5MTExYTQyOThlNmQyMzMyYmQx
MmRiNTUwNGVlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLVGV4dFNlbGVjdGlvblJlY3QubW0KQEAgLTAsMCArMSw5NyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tUZXh0U2VsZWN0aW9uUmVjdC5oIgorCisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKworLy8gRklYTUU6IExheWVyaW5nIHZpb2xhdGlvbjsgV2Vi
S2l0MiBzaG91bGQgbm90IGluY2x1ZGUgV2ViS2l0IGhlYWRlcnMuCisjaW1wb3J0IDxXZWJLaXQv
V2ViU2VsZWN0aW9uUmVjdC5oPgorCitAaW1wbGVtZW50YXRpb24gV0tUZXh0U2VsZWN0aW9uUmVj
dAorCistIChpZClpbml0V2l0aFdlYlJlY3Q6KFdlYlNlbGVjdGlvblJlY3QgKil3UmVjdAorewor
ICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CisgICAgaWYgKHNlbGYpCisgICAgICAgIHNlbGYud2Vi
UmVjdCA9IHdSZWN0OworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpZGVhbGxvYwor
eworICAgIHNlbGYud2ViUmVjdCA9IG5pbDsKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKKy8v
IEZJWE1FOiBXZSBhcmUgdXNpbmcgdGhpcyBpbXBsZW1lbnRhdGlvbiBmb3Igbm93IHRoYXQgdXNl
cyBXZWJTZWxlY3Rpb25SZWN0LCBidXQKKy8vIHdlIHdhbnQgdG8gcHJvdmlkZSBvdXIgb3duIGJh
c2VkIG9uIFdlYkNvcmU6OlNlbGVjdGlvblJlY3QuCisrIChOU0FycmF5ICopdGV4dFNlbGVjdGlv
blJlY3RzV2l0aFdlYlJlY3RzOihOU0FycmF5ICopd2ViUmVjdHMKK3sKKyAgICBOU011dGFibGVB
cnJheSAqYXJyYXkgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXlXaXRoQ2FwYWNpdHk6d2ViUmVjdHMu
Y291bnRdOworICAgIGZvciAoV2ViU2VsZWN0aW9uUmVjdCAqd2ViUmVjdCBpbiB3ZWJSZWN0cykg
eworICAgICAgICBSZXRhaW5QdHI8V0tUZXh0U2VsZWN0aW9uUmVjdD4gcmVjdCA9IGFkb3B0TlMo
W1tXS1RleHRTZWxlY3Rpb25SZWN0IGFsbG9jXSBpbml0V2l0aFdlYlJlY3Q6d2ViUmVjdF0pOwor
ICAgICAgICBbYXJyYXkgYWRkT2JqZWN0OnJlY3QuZ2V0KCldOworICAgIH0KKyAgICByZXR1cm4g
YXJyYXk7Cit9CisKKy0gKENHUmVjdClyZWN0Cit7CisgICAgcmV0dXJuIF93ZWJSZWN0LnJlY3Q7
Cit9CisKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCistIChVSVRleHRXcml0
aW5nRGlyZWN0aW9uKXdyaXRpbmdEaXJlY3Rpb24KK3sKKyAgICByZXR1cm4gKFVJVGV4dFdyaXRp
bmdEaXJlY3Rpb24pX3dlYlJlY3Qud3JpdGluZ0RpcmVjdGlvbjsKK30KK0FMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0VORAorCistIChVSVRleHRSYW5nZSAqKXJhbmdlCit7CisgICAgcmV0
dXJuIG5pbDsKK30KKworLSAoQk9PTCljb250YWluc1N0YXJ0Cit7CisgICAgcmV0dXJuIF93ZWJS
ZWN0LmNvbnRhaW5zU3RhcnQ7Cit9CisKKy0gKEJPT0wpY29udGFpbnNFbmQKK3sKKyAgICByZXR1
cm4gX3dlYlJlY3QuY29udGFpbnNFbmQ7Cit9CisKKy0gKEJPT0wpaXNWZXJ0aWNhbAoreworICAg
IHJldHVybiAhX3dlYlJlY3QuaXNIb3Jpem9udGFsOworfQorCitAZW5kCisKKyNlbmRpZiAvLyBQ
TEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggMTVjNTI0ZjM2MjE3N2RkYzcxMjcyNzYyNTU3ODg3MDRjZWIz
OWRhMy4uNGNhNjgzMjJjOTM1MTY3YWI2YTliZDI3MGM2ODc3ZWFhNWI3MzU5NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNzM0LDYg
KzE3MzQsNyBAQAogCQlDRTFBMEJEMjFBNDhFNkM2MDA1NEVGNzQgLyogQXNzZXJ0aW9uU2Vydmlj
ZXNTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENF
MUEwQkNDMUE0OEU2QzYwMDU0RUY3NCAvKiBBc3NlcnRpb25TZXJ2aWNlc1NQSS5oICovOyB9Owog
CQlDRTFBMEJENjFBNDhFNkM2MDA1NEVGNzQgLyogVENDU1BJLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTFBMEJEMDFBNDhFNkM2MDA1NEVGNzQgLyog
VENDU1BJLmggKi87IH07CiAJCUNFMUEwQkQ3MUE0OEU2QzYwMDU0RUY3NCAvKiBUZXh0SW5wdXRT
UEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFMUEw
QkQxMUE0OEU2QzYwMDU0RUY3NCAvKiBUZXh0SW5wdXRTUEkuaCAqLzsgfTsKKwkJQ0U0NTk0NUMy
NDBGODg1NTAwNzgwMTlGIC8qIFdLVGV4dFNlbGVjdGlvblJlY3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFNDU5NDVBMjQwRjg1QjkwMDc4MDE5RiAv
KiBXS1RleHRTZWxlY3Rpb25SZWN0LmggKi87IH07CiAJCUNFNTUwRTE1MjI4Mzc1MjIwMEQyODc5
MSAvKiBJbnNlcnRUZXh0T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0U1NTBFMTIyMjgzNzNDODAwRDI4NzkxIC8qIEluc2VydFRleHRPcHRp
b25zLmggKi87IH07CiAJCUNFNUI0Qzg4MjFCNzNEODcwMDIyRTY0RiAvKiBXS1N5bnRoZXRpY0Zs
YWdzQ2hhbmdlZFdlYkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRTVCNEM4NjIxQjczRDg3MDAyMkU2NEYgLyogV0tTeW50aGV0aWNGbGFnc0No
YW5nZWRXZWJFdmVudC5oICovOyB9OwogCQlDRTcwRUU1RDIyNDQyQkQwMDBFMEFGMEYgLyogV0tG
b3JtUGVyaXBoZXJhbEJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENFNzBFRTVDMjI0NDJCRDAwMEUwQUYwRiAvKiBXS0Zvcm1QZXJpcGhlcmFsQmFz
ZS5oICovOyB9OwpAQCAtNTA1MCw2ICs1MDUxLDggQEAKIAkJQ0UxQTBCQ0MxQTQ4RTZDNjAwNTRF
Rjc0IC8qIEFzc2VydGlvblNlcnZpY2VzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEFzc2VydGlvblNlcnZpY2VzU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNFMUEwQkQwMUE0OEU2QzYwMDU0RUY3NCAvKiBUQ0NTUEkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVENDU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNFMUEwQkQxMUE0OEU2QzYwMDU0RUY3NCAvKiBUZXh0SW5wdXRTUEkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dElucHV0U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNFNDU5NDVBMjQwRjg1QjkwMDc4MDE5RiAvKiBXS1RleHRTZWxlY3Rpb25SZWN0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFdLVGV4dFNlbGVjdGlvblJlY3QuaDsgcGF0aCA9IGlvcy9XS1Rl
eHRTZWxlY3Rpb25SZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNFNDU5NDVC
MjQwRjg1QjkwMDc4MDE5RiAvKiBXS1RleHRTZWxlY3Rpb25SZWN0Lm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBuYW1lID0gV0tUZXh0U2VsZWN0aW9uUmVjdC5tbTsgcGF0aCA9IGlvcy9XS1RleHRTZWxlY3Rp
b25SZWN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTU1MEUxMjIyODM3M0M4
MDBEMjg3OTEgLyogSW5zZXJ0VGV4dE9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zZXJ0VGV4
dE9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0U1NTBFMTMyMjgzNzQ0
NDAwRDI4NzkxIC8qIEluc2VydFRleHRPcHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElu
c2VydFRleHRPcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0U1QjRD
ODYyMUI3M0Q4NzAwMjJFNjRGIC8qIFdLU3ludGhldGljRmxhZ3NDaGFuZ2VkV2ViRXZlbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gV0tTeW50aGV0aWNGbGFnc0NoYW5nZWRXZWJFdmVudC5oOyBwYXRoID0g
aW9zL1dLU3ludGhldGljRmxhZ3NDaGFuZ2VkV2ViRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTY3OTUsNiArNjc5OCw4IEBACiAJCQkJMjZGMTBCRTcxOTE4N0UyRTAwMUQw
RTY4IC8qIFdLU3ludGhldGljVGFwR2VzdHVyZVJlY29nbml6ZXIubW0gKi8sCiAJCQkJMzE2QjhC
NjIyMDU0QjU1ODAwQkQ0QTYyIC8qIFdLU3lzdGVtUHJldmlld1ZpZXcuaCAqLywKIAkJCQkzMTZC
OEI2MTIwNTRCNTU4MDBCRDRBNjIgLyogV0tTeXN0ZW1QcmV2aWV3Vmlldy5tbSAqLywKKwkJCQlD
RTQ1OTQ1QTI0MEY4NUI5MDA3ODAxOUYgLyogV0tUZXh0U2VsZWN0aW9uUmVjdC5oICovLAorCQkJ
CUNFNDU5NDVCMjQwRjg1QjkwMDc4MDE5RiAvKiBXS1RleHRTZWxlY3Rpb25SZWN0Lm1tICovLAog
CQkJCTcxQTY3NkE0MjJDNjIzMTgwMDdENjI5NSAvKiBXS1RvdWNoQWN0aW9uR2VzdHVyZVJlY29n
bml6ZXIuaCAqLywKIAkJCQk3MUE2NzZBNTIyQzYyMzE4MDA3RDYyOTUgLyogV0tUb3VjaEFjdGlv
bkdlc3R1cmVSZWNvZ25pemVyLm1tICovLAogCQkJCTJEMUU4MjIxMjE2RkZGNTAwMEExNTI2NSAv
KiBXS1dlYkV2ZW50LmggKi8sCkBAIC0xMTM0Nyw2ICsxMTM1Miw3IEBACiAJCQkJMkRENjdBMzUx
QkQ4NjEwNjAwNTNCMjUxIC8qIFdLVGV4dEZpbmRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRjRENUY1MUQyMDYwODdBMTAwMzhCQkE4IC8qIFdLVGV4dElucHV0TGlzdFZpZXdDb250cm9s
bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkNCNEU2ODE4QkJFM0Q5MDAwRkNGQzkgLyogV0tU
ZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRTQ1OTQ1QzI0
MEY4ODU1MDA3ODAxOUYgLyogV0tUZXh0U2VsZWN0aW9uUmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkVCNkZDMDEyMDMwMjE5NjAwMTdFNjE5IC8qIFdLVGltZVBpY2tlclZpZXdDb250cm9sbGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk3MUE2NzZBNjIyQzYyMzI1MDA3RDYyOTUgLyogV0tUb3Vj
aEFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYwODEy
NEZGMDI3MDA2OEYyMEEgLyogV0tUeXBlLmggaW4gSGVhZGVycyAqLywK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392378</attachid>
            <date>2020-03-03 23:12:02 -0800</date>
            <delta_ts>2020-03-04 10:04:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208561-20200303231201.patch</filename>
            <type>text/plain</type>
            <size>14749</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3ODM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdmNDk3N2YzNzI3MDZkMzMw
YWFlZjFjMzkzMzUwMGFjNDA2NDI5MjUuLmI3NzdhNDQ0MDQyNWMwZDdmYjg3MzU3YjgxZjlkYjdi
YzUzM2UxNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjAtMDMtMDMgIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgV0tUZXh0U2VsZWN0aW9u
UmVjdCBpbnRvIGl0cyBvd24gZmlsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA4NTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV0tUZXh0U2VsZWN0aW9uUmVjdCBpcyBjdXJyZW50bHkgZGVmaW5lZCBp
biBXS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0uIFNlcGFyYXRlIGl0CisgICAgICAgIG91dCBp
bnRvIGl0cyBvd24gZmlsZSB0byBpbXByb3ZlIHByb2plY3Qgb3JnYW5pemF0aW9uIGFuZCBkZS1j
bHV0dGVyIFdLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbS4KKworICAgICAgICAqIFNvdXJjZXND
b2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW06CisgICAgICAgICgtW1dLVGV4dFNlbGVjdGlvblJlY3QgaW5pdFdpdGhXZWJSZWN0Ol0p
OiBEZWxldGVkLgorICAgICAgICAoLVtXS1RleHRTZWxlY3Rpb25SZWN0IGRlYWxsb2NdKTogRGVs
ZXRlZC4KKyAgICAgICAgKCtbV0tUZXh0U2VsZWN0aW9uUmVjdCB0ZXh0U2VsZWN0aW9uUmVjdHNX
aXRoV2ViUmVjdHM6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVGV4dFNlbGVjdGlvblJlY3Qg
cmVjdF0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1RleHRTZWxlY3Rpb25SZWN0IHdyaXRpbmdE
aXJlY3Rpb25dKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tUZXh0U2VsZWN0aW9uUmVjdCByYW5n
ZV0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1RleHRTZWxlY3Rpb25SZWN0IGNvbnRhaW5zU3Rh
cnRdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tUZXh0U2VsZWN0aW9uUmVjdCBjb250YWluc0Vu
ZF0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1RleHRTZWxlY3Rpb25SZWN0IGlzVmVydGljYWxd
KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLVGV4dFNlbGVjdGlvblJlY3Qu
aDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS1RleHRTZWxlY3Rpb25SZWN0Lm1t
OiBBZGRlZC4KKyAgICAgICAgKC1bV0tUZXh0U2VsZWN0aW9uUmVjdCBpbml0V2l0aFdlYlJlY3Q6
XSk6CisgICAgICAgICgtW1dLVGV4dFNlbGVjdGlvblJlY3QgZGVhbGxvY10pOgorICAgICAgICAo
K1tXS1RleHRTZWxlY3Rpb25SZWN0IHRleHRTZWxlY3Rpb25SZWN0c1dpdGhXZWJSZWN0czpdKToK
KyAgICAgICAgKC1bV0tUZXh0U2VsZWN0aW9uUmVjdCByZWN0XSk6CisgICAgICAgICgtW1dLVGV4
dFNlbGVjdGlvblJlY3Qgd3JpdGluZ0RpcmVjdGlvbl0pOgorICAgICAgICAoLVtXS1RleHRTZWxl
Y3Rpb25SZWN0IHJhbmdlXSk6CisgICAgICAgICgtW1dLVGV4dFNlbGVjdGlvblJlY3QgY29udGFp
bnNTdGFydF0pOgorICAgICAgICAoLVtXS1RleHRTZWxlY3Rpb25SZWN0IGNvbnRhaW5zRW5kXSk6
CisgICAgICAgICgtW1dLVGV4dFNlbGVjdGlvblJlY3QgaXNWZXJ0aWNhbF0pOgorICAgICAgICAq
IFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIwLTAzLTAzICBEZXZpbiBS
b3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiByZS1h
ZGQgYEluc3BlY3RvckZyb250ZW5kSG9zdGAgc3VwcG9ydCBmb3IgbW92aW5nIHRoZSBpbnNwZWN0
ZWQgd2luZG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMGE3NzY5Mzk4NzllYjY5NWZmYmZl
YWZiZWQ4YmMyZjljNDRjZWZhNC4uMjVjYmE5NzNiNjRmYjU3ZTJkNzU4NTIyNDdkMjQ3ZjUwYTkz
ZTIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNDcxLDYgKzQ3MSw3IEBAIFVJUHJvY2Vz
cy9pb3MvV0tTeW50aGV0aWNGbGFnc0NoYW5nZWRXZWJFdmVudC5tbQogVUlQcm9jZXNzL2lvcy9X
S1N5bnRoZXRpY1RhcEdlc3R1cmVSZWNvZ25pemVyLm1tCiBVSVByb2Nlc3MvaW9zL1dLU3lzdGVt
UHJldmlld1ZpZXcubW0KIFVJUHJvY2Vzcy9pb3MvV0tUb3VjaEFjdGlvbkdlc3R1cmVSZWNvZ25p
emVyLm1tCitVSVByb2Nlc3MvaW9zL1dLVGV4dFNlbGVjdGlvblJlY3QubW0KIFVJUHJvY2Vzcy9p
b3MvV0tXZWJFdmVudC5tbQogCiBVSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hl
ck1hYy5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggODQyMmQ1MzkzYzU3MGYxMWI4NTgxMTk3NmM2Njk5
M2I2NWYzZmJkNS4uNjMwMDhhNzk3YTlhYjE4OWIyNzE4ZDgwYjNmODg1ZGIyYTAxZWYyNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tCkBAIC02NSw2ICs2NSw3IEBACiAjaW1wb3J0ICJXS1NlbGVjdE1lbnVMaXN0
Vmlld0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldLU3ludGhldGljRmxhZ3NDaGFuZ2VkV2ViRXZl
bnQuaCIKICNpbXBvcnQgIldLVGV4dElucHV0TGlzdFZpZXdDb250cm9sbGVyLmgiCisjaW1wb3J0
ICJXS1RleHRTZWxlY3Rpb25SZWN0LmgiCiAjaW1wb3J0ICJXS1RpbWVQaWNrZXJWaWV3Q29udHJv
bGxlci5oIgogI2ltcG9ydCAiV0tVSURlbGVnYXRlUHJpdmF0ZS5oIgogI2ltcG9ydCAiV0tXZWJW
aWV3Q29uZmlndXJhdGlvbi5oIgpAQCAtMjkwLDEzICsyOTEsNiBAQCArIChXS1RleHRQb3NpdGlv
biAqKXRleHRQb3NpdGlvbldpdGhSZWN0OihDR1JlY3QpcG9zaXRpb25SZWN0OwogCiBAZW5kCiAK
LUBpbnRlcmZhY2UgV0tUZXh0U2VsZWN0aW9uUmVjdCA6IFVJVGV4dFNlbGVjdGlvblJlY3QKLQot
QHByb3BlcnR5IChub25hdG9taWMsIHJldGFpbikgV2ViU2VsZWN0aW9uUmVjdCAqd2ViUmVjdDsK
LQotKyAoTlNBcnJheSAqKXRleHRTZWxlY3Rpb25SZWN0c1dpdGhXZWJSZWN0czooTlNBcnJheSAq
KXdlYlJlY3RzOwotCi1AZW5kCiAKIEBpbnRlcmZhY2UgV0tBdXRvY29ycmVjdGlvblJlY3RzIDog
VUlXS0F1dG9jb3JyZWN0aW9uUmVjdHMKICsgKFdLQXV0b2NvcnJlY3Rpb25SZWN0cyAqKWF1dG9j
b3JyZWN0aW9uUmVjdHNXaXRoRmlyc3RDR1JlY3Q6KENHUmVjdClmaXJzdFJlY3QgbGFzdENHUmVj
dDooQ0dSZWN0KWxhc3RSZWN0OwpAQCAtOTMwNCw3ICs5Mjk4LDggQEAgQGVuZAogCiAjZW5kaWYg
Ly8gSEFWRShMSU5LX1BSRVZJRVcpCiAKLS8vIFVJVGV4dFJhbmdlLCBVSVRleHRQb3NpdGlvbiBh
bmQgVUlUZXh0U2VsZWN0aW9uUmVjdCBpbXBsZW1lbnRhdGlvbnMgZm9yIFdLMgorLy8gVUlUZXh0
UmFuZ2UgYW5kIFVJVGV4dFBvc2l0aW9uIGltcGxlbWVudGF0aW9ucyBmb3IgV0syCisvLyBGSVhN
RTogTW92ZSB0aGVzZSBvdXQgaW50byBzZXBhcmF0ZSBmaWxlcy4KIAogQGltcGxlbWVudGF0aW9u
IFdLVGV4dFJhbmdlIChVSVRleHRJbnB1dEFkZGl0aW9ucykKIApAQCAtOTQyMCw3MSArOTQxNSw2
IEBAIC0gKE5TU3RyaW5nICopZGVzY3JpcHRpb24KIAogQGVuZAogCi1AaW1wbGVtZW50YXRpb24g
V0tUZXh0U2VsZWN0aW9uUmVjdAotCi0tIChpZClpbml0V2l0aFdlYlJlY3Q6KFdlYlNlbGVjdGlv
blJlY3QgKil3UmVjdAotewotICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07Ci0gICAgaWYgKHNlbGYp
Ci0gICAgICAgIHNlbGYud2ViUmVjdCA9IHdSZWN0OwotCi0gICAgcmV0dXJuIHNlbGY7Ci19Ci0K
LS0gKHZvaWQpZGVhbGxvYwotewotICAgIHNlbGYud2ViUmVjdCA9IG5pbDsKLSAgICBbc3VwZXIg
ZGVhbGxvY107Ci19Ci0KLS8vIEZJWE1FOiB3ZSBhcmUgdXNpbmcgdGhpcyBpbXBsZW1lbnRhdGlv
biBmb3Igbm93Ci0vLyB0aGF0IHVzZXMgV2ViU2VsZWN0aW9uUmVjdCwgYnV0IHdlIHdhbnQgdG8g
cHJvdmlkZSBvdXIgb3duCi0vLyBiYXNlZCBvbiBXZWJDb3JlOjpTZWxlY3Rpb25SZWN0LgotCi0r
IChOU0FycmF5ICopdGV4dFNlbGVjdGlvblJlY3RzV2l0aFdlYlJlY3RzOihOU0FycmF5ICopd2Vi
UmVjdHMKLXsKLSAgICBOU011dGFibGVBcnJheSAqYXJyYXkgPSBbTlNNdXRhYmxlQXJyYXkgYXJy
YXlXaXRoQ2FwYWNpdHk6d2ViUmVjdHMuY291bnRdOwotICAgIGZvciAoV2ViU2VsZWN0aW9uUmVj
dCAqd2ViUmVjdCBpbiB3ZWJSZWN0cykgewotICAgICAgICBSZXRhaW5QdHI8V0tUZXh0U2VsZWN0
aW9uUmVjdD4gcmVjdCA9IGFkb3B0TlMoW1tXS1RleHRTZWxlY3Rpb25SZWN0IGFsbG9jXSBpbml0
V2l0aFdlYlJlY3Q6d2ViUmVjdF0pOwotICAgICAgICBbYXJyYXkgYWRkT2JqZWN0OnJlY3QuZ2V0
KCldOwotICAgIH0KLSAgICByZXR1cm4gYXJyYXk7Ci19Ci0KLS0gKENHUmVjdClyZWN0Ci17Ci0g
ICAgcmV0dXJuIF93ZWJSZWN0LnJlY3Q7Ci19Ci0KLUFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0JFR0lOCi0tIChVSVRleHRXcml0aW5nRGlyZWN0aW9uKXdyaXRpbmdEaXJlY3Rpb24KLXsK
LSAgICByZXR1cm4gKFVJVGV4dFdyaXRpbmdEaXJlY3Rpb24pX3dlYlJlY3Qud3JpdGluZ0RpcmVj
dGlvbjsKLX0KLUFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAotCi0tIChVSVRleHRS
YW5nZSAqKXJhbmdlCi17Ci0gICAgcmV0dXJuIG5pbDsKLX0KLQotLSAoQk9PTCljb250YWluc1N0
YXJ0Ci17Ci0gICAgcmV0dXJuIF93ZWJSZWN0LmNvbnRhaW5zU3RhcnQ7Ci19Ci0KLS0gKEJPT0wp
Y29udGFpbnNFbmQKLXsKLSAgICByZXR1cm4gX3dlYlJlY3QuY29udGFpbnNFbmQ7Ci19Ci0KLS0g
KEJPT0wpaXNWZXJ0aWNhbAotewotICAgIHJldHVybiAhX3dlYlJlY3QuaXNIb3Jpem9udGFsOwot
fQotCi1AZW5kCi0KIEBpbXBsZW1lbnRhdGlvbiBXS0F1dG9jb3JyZWN0aW9uUmVjdHMKIAogKyAo
V0tBdXRvY29ycmVjdGlvblJlY3RzICopYXV0b2NvcnJlY3Rpb25SZWN0c1dpdGhGaXJzdENHUmVj
dDooQ0dSZWN0KWZpcnN0UmVjdCBsYXN0Q0dSZWN0OihDR1JlY3QpbGFzdFJlY3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1RleHRTZWxlY3Rpb25SZWN0LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tUZXh0U2VsZWN0aW9uUmVjdC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjhiYmE5ZTdiOGRkMGZlZjNkZTAzYTllNGRkM2JlNDMyZGRiYjk0NmMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tUZXh0U2VsZWN0aW9uUmVjdC5o
CkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCisKKyNpbXBvcnQgPFVJS2l0L1VJS2l0Lmg+CisKK0BjbGFzcyBXZWJT
ZWxlY3Rpb25SZWN0OworCitAaW50ZXJmYWNlIFdLVGV4dFNlbGVjdGlvblJlY3QgOiBVSVRleHRT
ZWxlY3Rpb25SZWN0CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZXRhaW4pIFdlYlNlbGVjdGlv
blJlY3QgKndlYlJlY3Q7CisKKysgKE5TQXJyYXkgKil0ZXh0U2VsZWN0aW9uUmVjdHNXaXRoV2Vi
UmVjdHM6KE5TQXJyYXkgKil3ZWJSZWN0czsKKworQGVuZAorCisjZW5kaWYgLy8gUExBVEZPUk0o
SU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1Rl
eHRTZWxlY3Rpb25SZWN0Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLVGV4dFNl
bGVjdGlvblJlY3QubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTVlMGIxNTI2YjNmOTExMWE0Mjk4ZTZkMjMzMmJk
MTJkYjU1MDRlZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS1RleHRTZWxlY3Rpb25SZWN0Lm1tCkBAIC0wLDAgKzEsOTcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldLVGV4dFNlbGVjdGlvblJlY3QuaCIKKworI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCisKKy8vIEZJWE1FOiBMYXllcmluZyB2aW9sYXRpb247IFdl
YktpdDIgc2hvdWxkIG5vdCBpbmNsdWRlIFdlYktpdCBoZWFkZXJzLgorI2ltcG9ydCA8V2ViS2l0
L1dlYlNlbGVjdGlvblJlY3QuaD4KKworQGltcGxlbWVudGF0aW9uIFdLVGV4dFNlbGVjdGlvblJl
Y3QKKworLSAoaWQpaW5pdFdpdGhXZWJSZWN0OihXZWJTZWxlY3Rpb25SZWN0ICopd1JlY3QKK3sK
KyAgICBzZWxmID0gW3N1cGVyIGluaXRdOworICAgIGlmIChzZWxmKQorICAgICAgICBzZWxmLndl
YlJlY3QgPSB3UmVjdDsKKworICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKWRlYWxsb2MK
K3sKKyAgICBzZWxmLndlYlJlY3QgPSBuaWw7CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCisv
LyBGSVhNRTogV2UgYXJlIHVzaW5nIHRoaXMgaW1wbGVtZW50YXRpb24gZm9yIG5vdyB0aGF0IHVz
ZXMgV2ViU2VsZWN0aW9uUmVjdCwgYnV0CisvLyB3ZSB3YW50IHRvIHByb3ZpZGUgb3VyIG93biBi
YXNlZCBvbiBXZWJDb3JlOjpTZWxlY3Rpb25SZWN0LgorKyAoTlNBcnJheSAqKXRleHRTZWxlY3Rp
b25SZWN0c1dpdGhXZWJSZWN0czooTlNBcnJheSAqKXdlYlJlY3RzCit7CisgICAgTlNNdXRhYmxl
QXJyYXkgKmFycmF5ID0gW05TTXV0YWJsZUFycmF5IGFycmF5V2l0aENhcGFjaXR5OndlYlJlY3Rz
LmNvdW50XTsKKyAgICBmb3IgKFdlYlNlbGVjdGlvblJlY3QgKndlYlJlY3QgaW4gd2ViUmVjdHMp
IHsKKyAgICAgICAgUmV0YWluUHRyPFdLVGV4dFNlbGVjdGlvblJlY3Q+IHJlY3QgPSBhZG9wdE5T
KFtbV0tUZXh0U2VsZWN0aW9uUmVjdCBhbGxvY10gaW5pdFdpdGhXZWJSZWN0OndlYlJlY3RdKTsK
KyAgICAgICAgW2FycmF5IGFkZE9iamVjdDpyZWN0LmdldCgpXTsKKyAgICB9CisgICAgcmV0dXJu
IGFycmF5OworfQorCistIChDR1JlY3QpcmVjdAoreworICAgIHJldHVybiBfd2ViUmVjdC5yZWN0
OworfQorCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgorLSAoVUlUZXh0V3Jp
dGluZ0RpcmVjdGlvbil3cml0aW5nRGlyZWN0aW9uCit7CisgICAgcmV0dXJuIChVSVRleHRXcml0
aW5nRGlyZWN0aW9uKV93ZWJSZWN0LndyaXRpbmdEaXJlY3Rpb247Cit9CitBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKKworLSAoVUlUZXh0UmFuZ2UgKilyYW5nZQoreworICAgIHJl
dHVybiBuaWw7Cit9CisKKy0gKEJPT0wpY29udGFpbnNTdGFydAoreworICAgIHJldHVybiBfd2Vi
UmVjdC5jb250YWluc1N0YXJ0OworfQorCistIChCT09MKWNvbnRhaW5zRW5kCit7CisgICAgcmV0
dXJuIF93ZWJSZWN0LmNvbnRhaW5zRW5kOworfQorCistIChCT09MKWlzVmVydGljYWwKK3sKKyAg
ICByZXR1cm4gIV93ZWJSZWN0LmlzSG9yaXpvbnRhbDsKK30KKworQGVuZAorCisjZW5kaWYgLy8g
UExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDE1YzUyNGYzNjIxNzdkZGM3MTI3Mjc2MjU1Nzg4NzA0Y2Vi
MzlkYTMuLjRjYTY4MzIyYzkzNTE2N2FiNmE5YmQyNzBjNjg3N2VhYTViNzM1OTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTczNCw2
ICsxNzM0LDcgQEAKIAkJQ0UxQTBCRDIxQTQ4RTZDNjAwNTRFRjc0IC8qIEFzc2VydGlvblNlcnZp
Y2VzU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RTFBMEJDQzFBNDhFNkM2MDA1NEVGNzQgLyogQXNzZXJ0aW9uU2VydmljZXNTUEkuaCAqLzsgfTsK
IAkJQ0UxQTBCRDYxQTQ4RTZDNjAwNTRFRjc0IC8qIFRDQ1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0UxQTBCRDAxQTQ4RTZDNjAwNTRFRjc0IC8q
IFRDQ1NQSS5oICovOyB9OwogCQlDRTFBMEJENzFBNDhFNkM2MDA1NEVGNzQgLyogVGV4dElucHV0
U1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTFB
MEJEMTFBNDhFNkM2MDA1NEVGNzQgLyogVGV4dElucHV0U1BJLmggKi87IH07CisJCUNFNDU5NDVD
MjQwRjg4NTUwMDc4MDE5RiAvKiBXS1RleHRTZWxlY3Rpb25SZWN0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTQ1OTQ1QTI0MEY4NUI5MDA3ODAxOUYg
LyogV0tUZXh0U2VsZWN0aW9uUmVjdC5oICovOyB9OwogCQlDRTU1MEUxNTIyODM3NTIyMDBEMjg3
OTEgLyogSW5zZXJ0VGV4dE9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENFNTUwRTEyMjI4MzczQzgwMEQyODc5MSAvKiBJbnNlcnRUZXh0T3B0
aW9ucy5oICovOyB9OwogCQlDRTVCNEM4ODIxQjczRDg3MDAyMkU2NEYgLyogV0tTeW50aGV0aWNG
bGFnc0NoYW5nZWRXZWJFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0U1QjRDODYyMUI3M0Q4NzAwMjJFNjRGIC8qIFdLU3ludGhldGljRmxhZ3ND
aGFuZ2VkV2ViRXZlbnQuaCAqLzsgfTsKIAkJQ0U3MEVFNUQyMjQ0MkJEMDAwRTBBRjBGIC8qIFdL
Rm9ybVBlcmlwaGVyYWxCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRTcwRUU1QzIyNDQyQkQwMDBFMEFGMEYgLyogV0tGb3JtUGVyaXBoZXJhbEJh
c2UuaCAqLzsgfTsKQEAgLTUwNTAsNiArNTA1MSw4IEBACiAJCUNFMUEwQkNDMUE0OEU2QzYwMDU0
RUY3NCAvKiBBc3NlcnRpb25TZXJ2aWNlc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBBc3NlcnRpb25TZXJ2aWNlc1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRTFBMEJEMDFBNDhFNkM2MDA1NEVGNzQgLyogVENDU1BJLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFRDQ1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDRTFBMEJEMTFBNDhFNkM2MDA1NEVGNzQgLyogVGV4dElucHV0U1BJLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRJbnB1dFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDRTQ1OTQ1QTI0MEY4NUI5MDA3ODAxOUYgLyogV0tUZXh0U2VsZWN0aW9uUmVj
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBXS1RleHRTZWxlY3Rpb25SZWN0Lmg7IHBhdGggPSBpb3MvV0tU
ZXh0U2VsZWN0aW9uUmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRTQ1OTQ1
QjI0MEY4NUI5MDA3ODAxOUYgLyogV0tUZXh0U2VsZWN0aW9uUmVjdC5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgbmFtZSA9IFdLVGV4dFNlbGVjdGlvblJlY3QubW07IHBhdGggPSBpb3MvV0tUZXh0U2VsZWN0
aW9uUmVjdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0U1NTBFMTIyMjgzNzND
ODAwRDI4NzkxIC8qIEluc2VydFRleHRPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc2VydFRl
eHRPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFNTUwRTEzMjI4Mzc0
NDQwMEQyODc5MSAvKiBJbnNlcnRUZXh0T3B0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJ
bnNlcnRUZXh0T3B0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFNUI0
Qzg2MjFCNzNEODcwMDIyRTY0RiAvKiBXS1N5bnRoZXRpY0ZsYWdzQ2hhbmdlZFdlYkV2ZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IFdLU3ludGhldGljRmxhZ3NDaGFuZ2VkV2ViRXZlbnQuaDsgcGF0aCA9
IGlvcy9XS1N5bnRoZXRpY0ZsYWdzQ2hhbmdlZFdlYkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC02Nzk1LDYgKzY3OTgsOCBAQAogCQkJCTI2RjEwQkU3MTkxODdFMkUwMDFE
MEU2OCAvKiBXS1N5bnRoZXRpY1RhcEdlc3R1cmVSZWNvZ25pemVyLm1tICovLAogCQkJCTMxNkI4
QjYyMjA1NEI1NTgwMEJENEE2MiAvKiBXS1N5c3RlbVByZXZpZXdWaWV3LmggKi8sCiAJCQkJMzE2
QjhCNjEyMDU0QjU1ODAwQkQ0QTYyIC8qIFdLU3lzdGVtUHJldmlld1ZpZXcubW0gKi8sCisJCQkJ
Q0U0NTk0NUEyNDBGODVCOTAwNzgwMTlGIC8qIFdLVGV4dFNlbGVjdGlvblJlY3QuaCAqLywKKwkJ
CQlDRTQ1OTQ1QjI0MEY4NUI5MDA3ODAxOUYgLyogV0tUZXh0U2VsZWN0aW9uUmVjdC5tbSAqLywK
IAkJCQk3MUE2NzZBNDIyQzYyMzE4MDA3RDYyOTUgLyogV0tUb3VjaEFjdGlvbkdlc3R1cmVSZWNv
Z25pemVyLmggKi8sCiAJCQkJNzFBNjc2QTUyMkM2MjMxODAwN0Q2Mjk1IC8qIFdLVG91Y2hBY3Rp
b25HZXN0dXJlUmVjb2duaXplci5tbSAqLywKIAkJCQkyRDFFODIyMTIxNkZGRjUwMDBBMTUyNjUg
LyogV0tXZWJFdmVudC5oICovLApAQCAtMTEzNDcsNiArMTEzNTIsNyBAQAogCQkJCTJERDY3QTM1
MUJEODYxMDYwMDUzQjI1MSAvKiBXS1RleHRGaW5kZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUY0RDVGNTFEMjA2MDg3QTEwMDM4QkJBOCAvKiBXS1RleHRJbnB1dExpc3RWaWV3Q29udHJv
bGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDQjRFNjgxOEJCRTNEOTAwMEZDRkM5IC8qIFdL
VGV4dElucHV0V2luZG93Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0U0NTk0NUMy
NDBGODg1NTAwNzgwMTlGIC8qIFdLVGV4dFNlbGVjdGlvblJlY3QuaCBpbiBIZWFkZXJzICovLAog
CQkJCTJFQjZGQzAxMjAzMDIxOTYwMDE3RTYxOSAvKiBXS1RpbWVQaWNrZXJWaWV3Q29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzFBNjc2QTYyMkM2MjMyNTAwN0Q2Mjk1IC8qIFdLVG91
Y2hBY3Rpb25HZXN0dXJlUmVjb2duaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MDgx
MjRGRjAyNzAwNjhGMjBBIC8qIFdLVHlwZS5oIGluIEhlYWRlcnMgKi8sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>