<?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>217785</bug_id>
          
          <creation_ts>2020-10-15 14:38:13 -0700</creation_ts>
          <short_desc>Refactor {WebAccessibilityObjectWrapper convertRectToSpace] so that the platform-specific code is in their corresponding AX object platform implementations.</short_desc>
          <delta_ts>2020-10-16 06:04:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andres Gonzalez">andresg_22</reporter>
          <assigned_to name="Andres Gonzalez">andresg_22</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1698287</commentid>
    <comment_count>0</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-10-15 14:38:13 -0700</bug_when>
    <thetext>Refactor {WebAccessibilityObjectWrapper convertRectToSpace] so that the platform-specific code is in their corresponding AX object platform implementations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698294</commentid>
    <comment_count>1</comment_count>
      <attachid>411492</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-10-15 14:55:25 -0700</bug_when>
    <thetext>Created attachment 411492
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698343</commentid>
    <comment_count>2</comment_count>
      <attachid>411492</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-10-15 16:08:56 -0700</bug_when>
    <thetext>Comment on attachment 411492
Patch

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

&gt; Source/WebCore/accessibility/AccessibilityObject.h:444
&gt; +    NSView * topDocumentFrameView() const override;

* in the wrong place

&gt; Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm:50
&gt; +NSView * AccessibilityObject::topDocumentFrameView() const

* in wrong place

&gt; Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm:80
&gt; +    WAKView* documentView = frameView ? frameView-&gt;documentView() : nullptr;

* on wrong side

&gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h:583
&gt; +    NSView * topDocumentFrameView() const override { return nil; } // FIXME: implement, currently only used on iOS.

* wrong place

&gt; Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm:73
&gt; +NSView * AccessibilityObject::topDocumentFrameView() const

* in wrong place

&gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:1983
&gt; +    return [NSValue valueWithPoint:NSPointFromCGPoint(cgRect.origin)];

I think you can do

return @(cgRect.origin);

now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698436</commentid>
    <comment_count>3</comment_count>
      <attachid>411522</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-10-15 19:31:34 -0700</bug_when>
    <thetext>Created attachment 411522
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698438</commentid>
    <comment_count>4</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-10-15 19:34:15 -0700</bug_when>
    <thetext>(In reply to chris fleizach from comment #2)
&gt; Comment on attachment 411492 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=411492&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityObject.h:444
&gt; &gt; +    NSView * topDocumentFrameView() const override;
&gt; 
&gt; * in the wrong place

Fixed.
&gt; 
&gt; &gt; Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm:50
&gt; &gt; +NSView * AccessibilityObject::topDocumentFrameView() const
&gt; 
&gt; * in wrong place

Fixed.
&gt; 
&gt; &gt; Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm:80
&gt; &gt; +    WAKView* documentView = frameView ? frameView-&gt;documentView() : nullptr;
&gt; 
&gt; * on wrong side

Fixed.
&gt; 
&gt; &gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h:583
&gt; &gt; +    NSView * topDocumentFrameView() const override { return nil; } // FIXME: implement, currently only used on iOS.
&gt; 
&gt; * wrong place

Fixed.
&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm:73
&gt; &gt; +NSView * AccessibilityObject::topDocumentFrameView() const
&gt; 
&gt; * in wrong place

Fixed.
&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:1983
&gt; &gt; +    return [NSValue valueWithPoint:NSPointFromCGPoint(cgRect.origin)];
&gt; 
&gt; I think you can do
&gt; 
&gt; return @(cgRect.origin);
&gt; 
&gt; now

Yes, fixed. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698560</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-16 06:03:54 -0700</bug_when>
    <thetext>Committed r268585: &lt;https://trac.webkit.org/changeset/268585&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 411522.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698561</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-16 06:04:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/70375535&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411492</attachid>
            <date>2020-10-15 14:55:25 -0700</date>
            <delta_ts>2020-10-15 19:31:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217785-20201015175524.patch</filename>
            <type>text/plain</type>
            <size>18892</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDgyYjNjYTI5N2IwNmRm
YmZmNWY1YjQ5YmU3MzE5ZjFiNWRiNjFjYy4uZWU3NmRlMWM1MWIxMzEwYWY4NGYzMDdjMjZmOWU4
OGU0ODM0YjkwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIwLTEwLTE1ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZhY3RvciBb
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgY29udmVydFJlY3RUb1NwYWNlXSBzbyB0aGF0
IHRoZSBwbGF0Zm9ybS1zcGVjaWZpYyBjb2RlIGlzIGluIHRoZWlyIGNvcnJlc3BvbmRpbmcgQVgg
b2JqZWN0IHBsYXRmb3JtIGltcGxlbWVudGF0aW9ucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzc4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIGNoYW5nZSBpbiBmdW5jdGlvbmFsaXR5LCBjb2Rl
IHJlZmFjdG9yIGFuZCBjbGVhbnVwLgorCisgICAgICAgIFtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlckJhc2UgY29udmVydFJlY3RUb1NwYWNlXSBoYWQgdHdvIGRpZmZlcmVudAorICAgICAg
ICBjb2RlIHBhdGhzIGZvciBNYWMgYW5kIGlPUywgZGVmZWF0aW5nIHRoZSBwdXJwb3NlIG9mIGEg
YmFzZSBjbGFzcy4KKyAgICAgICAgVGhpcyByZS1mYWN0b3JpbmcgU2ltcGxpZmllcyB0aGUgd3Jh
cHBlciBjb2RlIGJ5IG1vdmluZyB0aGUgcGxhdGZvcm0tCisgICAgICAgIHNwZWNpZmljIGltcGxl
bWVudGF0aW9ucyB0byB0aGVpciBjb3JyZXNwb25kaW5nIEFYIG9iamVjdCBpbXBsZW1lbnRhdGlv
bnMKKyAgICAgICAgb2YgY29udmVydFJlY3RUb1BsYXRmb3JtU3BhY2UuCisgICAgICAgIFNvbWUg
Y29kZSBjbGVhbnVwLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJm
YWNlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pb3MvQWNjZXNzaWJpbGl0eU9iamVjdElP
Uy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnRvcERvY3VtZW50
RnJhbWVWaWV3IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6
OmNvbnZlcnRSZWN0VG9QbGF0Zm9ybVNwYWNlIGNvbnN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbToKKyAgICAgICAgKC1b
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgX2FjY2Vzc2liaWxpdHlXZWJEb2N1bWVudFZp
ZXddKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OmNvbnZlcnRSZWN0
VG9QbGF0Zm9ybVNwYWNlIGNvbnN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkT2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQWNj
ZXNzaWJpbGl0eU9iamVjdE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlP
YmplY3Q6OnRvcERvY3VtZW50RnJhbWVWaWV3IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlPYmplY3Q6OmNvbnZlcnRSZWN0VG9QbGF0Zm9ybVNwYWNlIGNvbnN0KToKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJh
c2UubW06CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZSBjb252
ZXJ0UmVjdFRvU3BhY2U6c3BhY2U6XSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06CisgICAgICAgICgtW1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyIHBvc2l0aW9uXSk6CisKIDIwMjAtMTAtMTUgIEFuZHJlcyBHb256
YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBmb3IgbXVsdGlwbGUg
YWNjZXNzaWJpbGl0eSBsYXlvdXQgdGVzdHMgaW4gaXNvbGF0ZWQgdHJlZSBtb2RlLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRl
eCA4MDhmZWZhMjk1OTJhMjAyOGRkNGJiYTY0MjIzOTM2OWIyYmM1ZDBjLi4wOTU2ZTY4YjY2MzY2
ZjM4NWFjOTI1MDI0ZDE3ZGY5YTdiOWU0OWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAtNDQwLDYgKzQ0MCw4IEBAIHB1
YmxpYzoKICAgICBQbGF0Zm9ybVdpZGdldCBwbGF0Zm9ybVdpZGdldCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG51bGxwdHI7IH0KICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZW1vdGVBWE9i
amVjdFJlZiByZW1vdGVQYXJlbnRPYmplY3QoKSBjb25zdCBvdmVycmlkZTsKKyAgICBGbG9hdFJl
Y3QgY29udmVydFJlY3RUb1BsYXRmb3JtU3BhY2UoY29uc3QgRmxvYXRSZWN0JiwgQWNjZXNzaWJp
bGl0eUNvbnZlcnNpb25TcGFjZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgTlNWaWV3ICogdG9wRG9j
dW1lbnRGcmFtZVZpZXcoKSBjb25zdCBvdmVycmlkZTsKICNlbmRpZgogICAgIFdpZGdldCogd2lk
Z2V0Rm9yQXR0YWNobWVudFZpZXcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9
CiAgICAgUGFnZSogcGFnZSgpIGNvbnN0IG92ZXJyaWRlOwpAQCAtNzI5LDcgKzczMSw3IEBAIHB1
YmxpYzoKICAgICBib29sIGhhc0FwcGxlUERGQW5ub3RhdGlvbkF0dHJpYnV0ZSgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIGhhc0F0dHJpYnV0ZShIVE1MTmFtZXM6OnhfYXBwbGVfcGRmX2Fubm90
YXRpb25BdHRyKTsgfQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JN
KElPU19GQU1JTFkpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIGJvb2wgY2FyZXRCcm93c2luZ0Vu
YWJsZWQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHNldENhcmV0QnJvd3NpbmdFbmFibGVk
KGJvb2wpIG92ZXJyaWRlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCmluZGV4IDY1YzA1
N2JkZGMyNTQ3MTRmZDI2YTQyYjc4MWI2MTVhODA0MjI2ODQuLjc3NTZiZjk1ZTJkMzI3OTE0Nzc3
YzQzMDFkODNjMTE3Zjk0YzQyMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCkBAIC0xMTgwLDYg
KzExODAsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQbGF0Zm9ybVdpZGdldCBwbGF0Zm9ybVdp
ZGdldCgpIGNvbnN0ID0gMDsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2aXJ0dWFsIFJlbW90
ZUFYT2JqZWN0UmVmIHJlbW90ZVBhcmVudE9iamVjdCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFs
IEZsb2F0UmVjdCBjb252ZXJ0UmVjdFRvUGxhdGZvcm1TcGFjZShjb25zdCBGbG9hdFJlY3QmLCBB
Y2Nlc3NpYmlsaXR5Q29udmVyc2lvblNwYWNlKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBOU1Zp
ZXcgKiB0b3BEb2N1bWVudEZyYW1lVmlldygpIGNvbnN0ID0gMDsKICNlbmRpZgogICAgIHZpcnR1
YWwgV2lkZ2V0KiB3aWRnZXRGb3JBdHRhY2htZW50VmlldygpIGNvbnN0ID0gMDsKICAgICB2aXJ0
dWFsIFBhZ2UqIHBhZ2UoKSBjb25zdCA9IDA7CkBAIC0xNDY3LDcgKzE0NjksNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBib29sIGhhc0FwcGxlUERGQW5ub3RhdGlvbkF0dHJpYnV0ZSgpIGNvbnN0
ID0gMDsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShJT1NfRkFN
SUxZKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICB2aXJ0dWFsIGJvb2wgY2FyZXRCcm93c2luZ0Vu
YWJsZWQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldENhcmV0QnJvd3NpbmdFbmFi
bGVkKGJvb2wpID0gMDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9pb3MvQWNjZXNzaWJpbGl0eU9iamVjdElPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaW9zL0FjY2Vzc2liaWxpdHlPYmplY3RJT1MubW0KaW5kZXggM2JiMWVlNzkw
YTYyZWNjMTgyYjE4YzE1ZjAyYTE0NmFlNzQ5ZGRlOS4uNDVjYWVhZjgwYmZlNTIyZmQ1MTY2NTY0
ZGU0M2IzZjc5NmU3MTY4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pb3MvQWNjZXNzaWJpbGl0eU9iamVjdElPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lvcy9BY2Nlc3NpYmlsaXR5T2JqZWN0SU9TLm1tCkBAIC0zMCw2ICszMCw3IEBA
CiAKICNpbXBvcnQgIkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCIKICNpbXBvcnQgIkV2ZW50
TmFtZXMuaCIKKyNpbXBvcnQgIkZyYW1lVmlldy5oIgogI2ltcG9ydCAiSFRNTElucHV0RWxlbWVu
dC5oIgogI2ltcG9ydCAiUmVuZGVyT2JqZWN0LmgiCiAjaW1wb3J0ICJXQUtWaWV3LmgiCkBAIC00
Niw2ICs0Nyw1NSBAQCB2b2lkIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmRldGFjaEZyb21QYXJlbnQo
KQogewogfQogCitOU1ZpZXcgKiBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojp0b3BEb2N1bWVudEZyYW1l
VmlldygpIGNvbnN0Cit7CisgICAgLy8gVGhpcyBtZXRob2QgcGVyZm9ybXMgdGhlIGNydWNpYWwg
dGFzayBvZiBjb25uZWN0aW5nIHRvIHRoZSBVSVdlYkRvY3VtZW50Vmlldy4KKyAgICAvLyBUaGlz
IGlzIG5lZWRlZCB0byBjb3JyZWN0bHkgY2FsY3VsYXRlIHRoZSBzY3JlZW4gcG9zaXRpb24gb2Yg
dGhlIEFYIG9iamVjdC4KKyAgICBzdGF0aWMgQ2xhc3Mgd2ViVmlld0NsYXNzID0gbmlsOworICAg
IGlmICghd2ViVmlld0NsYXNzKQorICAgICAgICB3ZWJWaWV3Q2xhc3MgPSBOU0NsYXNzRnJvbVN0
cmluZyhAIldlYlZpZXciKTsKKyAgICBpZiAoIXdlYlZpZXdDbGFzcykKKyAgICAgICAgcmV0dXJu
IG5pbDsKKworICAgIGF1dG8qIGZyYW1lVmlldyA9IGRvY3VtZW50RnJhbWVWaWV3KCk7CisgICAg
aWYgKCFmcmFtZVZpZXcpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICAvLyBJZiB0aGlzIGlz
IHRoZSB0b3AgbGV2ZWwgZnJhbWUsIHRoZSBVSVdlYkRvY3VtZW50VmlldyBzaG91bGQgYmUgcmV0
dXJuZWQuCisgICAgTlNWaWV3ICpwYXJlbnRWaWV3ID0gZnJhbWVWaWV3LT5kb2N1bWVudFZpZXco
KTsKKyAgICB3aGlsZSAocGFyZW50VmlldyAmJiAhW3BhcmVudFZpZXcgaXNLaW5kT2ZDbGFzczp3
ZWJWaWV3Q2xhc3NdKQorICAgICAgICBwYXJlbnRWaWV3ID0gW3BhcmVudFZpZXcgc3VwZXJ2aWV3
XTsKKworICAgIC8vIFRoZSBwYXJlbnRWaWV3IHNob3VsZCBoYXZlIGFuIGFjY2Vzc2liaWxpdHlD
b250YWluZXIsIGlmIHRoZSBVSUtpdCBhY2Nlc3NpYmlsaXR5IGJ1bmRsZSB3YXMgbG9hZGVkLgor
ICAgIC8vIFRoZSBleGNlcHRpb24gaXMgRFJULCB3aGljaCB0ZXN0cyBhY2Nlc3NpYmlsaXR5IHdp
dGhvdXQgdGhlIGVudGlyZSBzeXN0ZW0gdHVybmluZyBhY2Nlc3NpYmlsaXR5IG9uLiBIZW5jZSwK
KyAgICAvLyB0aGlzIGNoZWNrIHNob3VsZCBiZSB2YWxpZCBmb3IgZXZlcnl0aGluZyBleGNlcHQg
RFJULgorICAgIEFTU0VSVChbcGFyZW50VmlldyBhY2Nlc3NpYmlsaXR5Q29udGFpbmVyXSB8fCBJ
T1NBcHBsaWNhdGlvbjo6aXNEdW1wUmVuZGVyVHJlZSgpKTsKKworICAgIHJldHVybiBwYXJlbnRW
aWV3OworfQorCitGbG9hdFJlY3QgQWNjZXNzaWJpbGl0eU9iamVjdDo6Y29udmVydFJlY3RUb1Bs
YXRmb3JtU3BhY2UoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBBY2Nlc3NpYmlsaXR5Q29udmVyc2lv
blNwYWNlIHNwYWNlKSBjb25zdAoreworICAgIGF1dG8qIGZyYW1lVmlldyA9IGRvY3VtZW50RnJh
bWVWaWV3KCk7CisgICAgV0FLVmlldyogZG9jdW1lbnRWaWV3ID0gZnJhbWVWaWV3ID8gZnJhbWVW
aWV3LT5kb2N1bWVudFZpZXcoKSA6IG51bGxwdHI7CisgICAgaWYgKGRvY3VtZW50Vmlldykgewor
ICAgICAgICBDR1BvaW50IHBvaW50ID0gQ0dQb2ludE1ha2UocmVjdC54KCksIHJlY3QueSgpKTsK
KyAgICAgICAgQ0dTaXplIHNpemUgPSBDR1NpemVNYWtlKHJlY3Quc2l6ZSgpLndpZHRoKCksIHJl
Y3Quc2l6ZSgpLmhlaWdodCgpKTsKKyAgICAgICAgQ0dSZWN0IGNnUmVjdCA9IENHUmVjdE1ha2Uo
cG9pbnQueCwgcG9pbnQueSwgc2l6ZS53aWR0aCwgc2l6ZS5oZWlnaHQpOworCisgICAgICAgIGNn
UmVjdCA9IFtkb2N1bWVudFZpZXcgY29udmVydFJlY3Q6Y2dSZWN0IHRvVmlldzpuaWxdOworCisg
ICAgICAgIC8vIHdlIG5lZWQgdGhlIHdlYiBkb2N1bWVudCB2aWV3IHRvIGdpdmUgdXMgb3VyIGZp
bmFsIHNjcmVlbiBjb29yZGluYXRlcworICAgICAgICAvLyBiZWNhdXNlIHRoYXQgY2FuIHRha2Ug
YWNjb3VudCBvZiB0aGUgc2Nyb2xsZXIKKyAgICAgICAgTlNWaWV3ICp3ZWJEb2N1bWVudCA9IHRv
cERvY3VtZW50RnJhbWVWaWV3KCk7CisgICAgICAgIGlmICh3ZWJEb2N1bWVudCkKKyAgICAgICAg
ICAgIGNnUmVjdCA9IFt3ZWJEb2N1bWVudCBjb252ZXJ0UmVjdDpjZ1JlY3QgdG9WaWV3Om5pbF07
CisgICAgICAgIHJldHVybiBjZ1JlY3Q7CisgICAgfQorCisgICAgcmV0dXJuIGNvbnZlcnRGcmFt
ZVRvU3BhY2UocmVjdCwgc3BhY2UpOworfQorCiAvLyBPbiBpT1MsIHdlIGRvbid0IGhhdmUgdG8g
cmV0dXJuIHRoZSB2YWx1ZSBpbiB0aGUgdGl0bGUuIFdlIGNhbiByZXR1cm4gdGhlIGFjdHVhbCB0
aXRsZSwgZ2l2ZW4gdGhlIEFQSS4KIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6ZmlsZVVwbG9h
ZEJ1dHRvblJldHVybnNWYWx1ZUluVGl0bGUoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJ
T1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlcklPUy5tbQppbmRleCAyM2ZhOGE0NTEyYmQzOWE4ODQ4YmQxZTcxZGZkMjlm
M2YxY2M0NzcxLi4xZDE4MDcwZWNlNmU1YTI2OWQyYTg0YjAxZjc2ZjAzODBjZDQxNDI0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lv
cy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQpAQCAtMzcsOSArMzcsNyBAQAog
I2ltcG9ydCAiQ2hyb21lLmgiCiAjaW1wb3J0ICJDaHJvbWVDbGllbnQuaCIKICNpbXBvcnQgIkZv
bnRDYXNjYWRlLmgiCi0jaW1wb3J0ICJGcmFtZS5oIgogI2ltcG9ydCAiRnJhbWVTZWxlY3Rpb24u
aCIKLSNpbXBvcnQgIkZyYW1lVmlldy5oIgogI2ltcG9ydCAiSGl0VGVzdFJlc3VsdC5oIgogI2lt
cG9ydCAiSFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCiAjaW1wb3J0ICJIVE1MSW5wdXRFbGVtZW50
LmgiCkBAIC0xNzQxLDMxICsxNzM5LDcgQEAgc3RhdGljIHZvaWQgYXBwZW5kU3RyaW5nVG9SZXN1
bHQoTlNNdXRhYmxlU3RyaW5nICpyZXN1bHQsIE5TU3RyaW5nICpzdHJpbmcpCiAgICAgaWYgKCFb
c2VsZiBfcHJlcGFyZUFjY2Vzc2liaWxpdHlDYWxsXSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAot
ICAgIC8vIFRoaXMgbWV0aG9kIHBlcmZvcm1zIHRoZSBjcnVjaWFsIHRhc2sgb2YgY29ubmVjdGlu
ZyB0byB0aGUgVUlXZWJEb2N1bWVudFZpZXcuCi0gICAgLy8gVGhpcyBpcyBuZWVkZWQgdG8gY29y
cmVjdGx5IGNhbGN1bGF0ZSB0aGUgc2NyZWVuIHBvc2l0aW9uIG9mIHRoZSBBWCBvYmplY3QuCi0g
ICAgc3RhdGljIENsYXNzIHdlYlZpZXdDbGFzcyA9IG5pbDsKLSAgICBpZiAoIXdlYlZpZXdDbGFz
cykKLSAgICAgICAgd2ViVmlld0NsYXNzID0gTlNDbGFzc0Zyb21TdHJpbmcoQCJXZWJWaWV3Iik7
Ci0KLSAgICBpZiAoIXdlYlZpZXdDbGFzcykKLSAgICAgICAgcmV0dXJuIG5pbDsKLSAgICAKLSAg
ICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHNlbGYuYXhCYWNraW5nT2JqZWN0LT5kb2N1bWVudEZy
YW1lVmlldygpOwotCi0gICAgaWYgKCFmcmFtZVZpZXcpCi0gICAgICAgIHJldHVybiBuaWw7Ci0g
ICAgCi0gICAgLy8gSWYgdGhpcyBpcyB0aGUgdG9wIGxldmVsIGZyYW1lLCB0aGUgVUlXZWJEb2N1
bWVudFZpZXcgc2hvdWxkIGJlIHJldHVybmVkLgotICAgIGlkIHBhcmVudFZpZXcgPSBmcmFtZVZp
ZXctPmRvY3VtZW50VmlldygpOwotICAgIHdoaWxlIChwYXJlbnRWaWV3ICYmICFbcGFyZW50Vmll
dyBpc0tpbmRPZkNsYXNzOndlYlZpZXdDbGFzc10pCi0gICAgICAgIHBhcmVudFZpZXcgPSBbcGFy
ZW50VmlldyBzdXBlcnZpZXddOwotICAgIAotICAgIC8vIFRoZSBwYXJlbnRWaWV3IHNob3VsZCBo
YXZlIGFuIGFjY2Vzc2liaWxpdHlDb250YWluZXIsIGlmIHRoZSBVSUtpdCBhY2Nlc3NpYmlsaXR5
IGJ1bmRsZSB3YXMgbG9hZGVkLiAKLSAgICAvLyBUaGUgZXhjZXB0aW9uIGlzIERSVCwgd2hpY2gg
dGVzdHMgYWNjZXNzaWJpbGl0eSB3aXRob3V0IHRoZSBlbnRpcmUgc3lzdGVtIHR1cm5pbmcgYWNj
ZXNzaWJpbGl0eSBvbi4gSGVuY2UsCi0gICAgLy8gdGhpcyBjaGVjayBzaG91bGQgYmUgdmFsaWQg
Zm9yIGV2ZXJ5dGhpbmcgZXhjZXB0IERSVC4KLSAgICBBU1NFUlQoW3BhcmVudFZpZXcgYWNjZXNz
aWJpbGl0eUNvbnRhaW5lcl0gfHwgSU9TQXBwbGljYXRpb246OmlzRHVtcFJlbmRlclRyZWUoKSk7
Ci0gICAgCi0gICAgcmV0dXJuIFtwYXJlbnRWaWV3IGFjY2Vzc2liaWxpdHlDb250YWluZXJdOwor
ICAgIHJldHVybiBbKGlkKXNlbGYuYXhCYWNraW5nT2JqZWN0LT50b3BEb2N1bWVudEZyYW1lVmll
dygpIGFjY2Vzc2liaWxpdHlDb250YWluZXJdOwogfQogCiAtIChOU0FycmF5ICopX2FjY2Vzc2li
aWxpdHlOZXh0RWxlbWVudHNXaXRoQ291bnQ6KFVJbnQzMiljb3VudApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVk
T2JqZWN0LmNwcAppbmRleCA4NTI3MWE3NjUzOWRhY2EzMDk4ZWY1OWIzYjgyZWY0MTc4ZTdkMmY0
Li5kMmE4OGJkYjEwZTRkMjk0ODU4MGRlYzNmNWJiNzFiYTRmMGFkNzllIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElz
b2xhdGVkT2JqZWN0LmNwcApAQCAtOTY1LDYgKzk2NSwxNSBAQCBGbG9hdFJlY3QgQVhJc29sYXRl
ZE9iamVjdDo6Y29udmVydEZyYW1lVG9TcGFjZShjb25zdCBGbG9hdFJlY3QmIHJlY3QsIEFjY2Vz
c2liaQogICAgIH0pOwogfQogCitGbG9hdFJlY3QgQVhJc29sYXRlZE9iamVjdDo6Y29udmVydFJl
Y3RUb1BsYXRmb3JtU3BhY2UoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBBY2Nlc3NpYmlsaXR5Q29u
dmVyc2lvblNwYWNlIHNwYWNlKSBjb25zdAoreworICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Ojpy
ZXRyaWV2ZVZhbHVlRnJvbU1haW5UaHJlYWQ8RmxvYXRSZWN0PihbJnJlY3QsICZzcGFjZSwgdGhp
c10gKCkgLT4gRmxvYXRSZWN0IHsKKyAgICAgICAgaWYgKGF1dG8qIGF4T2JqZWN0ID0gYXNzb2Np
YXRlZEFYT2JqZWN0KCkpCisgICAgICAgICAgICByZXR1cm4gYXhPYmplY3QtPmNvbnZlcnRSZWN0
VG9QbGF0Zm9ybVNwYWNlKHJlY3QsIHNwYWNlKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9
KTsKK30KKwogYm9vbCBBWElzb2xhdGVkT2JqZWN0OjpyZXBsYWNlVGV4dEluUmFuZ2UoY29uc3Qg
U3RyaW5nJiByZXBsYWNlbWVudFRleHQsIGNvbnN0IFBsYWluVGV4dFJhbmdlJiB0ZXh0UmFuZ2Up
CiB7CiAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHk6OnJldHJpZXZlVmFsdWVGcm9tTWFpblRocmVh
ZDxib29sPihbJnJlcGxhY2VtZW50VGV4dCwgJnRleHRSYW5nZSwgdGhpc10gKCkgLT4gYm9vbCB7
CkBAIC0xMTM5LDYgKzExNDgsNyBAQCB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OnNldFNlbGVjdGVk
VmlzaWJsZVBvc2l0aW9uUmFuZ2UoY29uc3QgVmlzaWJsZVBvc2l0aW9uUmFuZwogCiBPcHRpb25h
bDxTaW1wbGVSYW5nZT4gQVhJc29sYXRlZE9iamVjdDo6ZWxlbWVudFJhbmdlKCkgY29uc3QKIHsK
KyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIGF1dG8qIGF4T2JqZWN0ID0gYXNzb2Np
YXRlZEFYT2JqZWN0KCk7CiAgICAgcmV0dXJuIGF4T2JqZWN0ID8gYXhPYmplY3QtPmVsZW1lbnRS
YW5nZSgpIDogV1RGOjpudWxsb3B0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCmluZGV4IDBj
NDQ0OGM5NjY0MGNjNzk4MmQzNWI4MWU5OWJiNzFmNWIxYWEwZmEuLmZlNzFjYTYxNWUwNmY1OGM0
YjNmNTFlNzViYmJmMjkwYTI1ZTAzZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKQEAgLTMz
NCw3ICszMzQsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBkZXNjcmlwdGlvbkF0dHJpYnV0ZVZh
bHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gc3RyaW5nQXR0cmlidXRlVmFsdWUoQVhQcm9w
ZXJ0eU5hbWU6OkRlc2NyaXB0aW9uKTsgfQogICAgIFN0cmluZyBoZWxwVGV4dEF0dHJpYnV0ZVZh
bHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gc3RyaW5nQXR0cmlidXRlVmFsdWUoQVhQcm9w
ZXJ0eU5hbWU6OkhlbHBUZXh0KTsgfQogICAgIFN0cmluZyB0aXRsZUF0dHJpYnV0ZVZhbHVlKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gc3RyaW5nQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5h
bWU6OlRpdGxlQXR0cmlidXRlVmFsdWUpOyB9Ci0jaWYgUExBVEZPUk0oQ09DT0EpICYmICFQTEFU
Rk9STShJT1NfRkFNSUxZKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICBib29sIGNhcmV0QnJvd3Np
bmdFbmFibGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFY
UHJvcGVydHlOYW1lOjpDYXJldEJyb3dzaW5nRW5hYmxlZCk7IH0KICNlbmRpZgogICAgIEFYQ29y
ZU9iamVjdCogZm9jdXNhYmxlQW5jZXN0b3IoKSBvdmVycmlkZSB7IHJldHVybiBvYmplY3RBdHRy
aWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6Rm9jdXNhYmxlQW5jZXN0b3IpOyB9CkBAIC00NDMs
NyArNDQzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFNlbGVjdGVkVGV4dChjb25zdCBTdHJp
bmcmKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFNlbGVjdGVkVGV4dFJhbmdlKGNvbnN0IFBsYWlu
VGV4dFJhbmdlJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmKSBv
dmVycmlkZTsKLSNpZiBQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisj
aWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgc2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoYm9vbCkg
b3ZlcnJpZGU7CiAjZW5kaWYKICAgICB2b2lkIHNldFByZXZlbnRLZXlib2FyZERPTUV2ZW50RGlz
cGF0Y2goYm9vbCkgb3ZlcnJpZGU7CkBAIC01NzksNiArNTc5LDggQEAgcHJpdmF0ZToKICAgICBI
YXNoTWFwPFN0cmluZywgQVhFZGl0aW5nU3R5bGVWYWx1ZVZhcmlhbnQ+IHJlc29sdmVkRWRpdGlu
Z1N0eWxlcygpIGNvbnN0IG92ZXJyaWRlOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJlbW90
ZUFYT2JqZWN0UmVmIHJlbW90ZVBhcmVudE9iamVjdCgpIGNvbnN0IG92ZXJyaWRlOworICAgIEZs
b2F0UmVjdCBjb252ZXJ0UmVjdFRvUGxhdGZvcm1TcGFjZShjb25zdCBGbG9hdFJlY3QmLCBBY2Nl
c3NpYmlsaXR5Q29udmVyc2lvblNwYWNlKSBjb25zdCBvdmVycmlkZTsKKyAgICBOU1ZpZXcgKiB0
b3BEb2N1bWVudEZyYW1lVmlldygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG5pbDsgfSAvLyBG
SVhNRTogaW1wbGVtZW50LCBjdXJyZW50bHkgb25seSB1c2VkIG9uIGlPUy4KICNlbmRpZgogICAg
IFdpZGdldCogd2lkZ2V0Rm9yQXR0YWNobWVudFZpZXcoKSBjb25zdCBvdmVycmlkZTsKICAgICBQ
YWdlKiBwYWdlKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbQppbmRleCA4MmFm
MTlkMDE5NmY0MDZmNzcyMWFhODU1MGQzNDgxN2M3MWU0NTdmLi40ZGVhOGQwNjQ3ZWQ4MjkyMjQ4
ZTdmODkwZWEwMjMxNjBlNTI4NDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0KQEAgLTI4LDYgKzI4
LDcgQEAKICNpbXBvcnQgIkFjY2Vzc2liaWxpdHlMYWJlbC5oIgogI2ltcG9ydCAiQWNjZXNzaWJp
bGl0eUxpc3QuaCIKICNpbXBvcnQgIkVsZW1lbnRBbmNlc3Rvckl0ZXJhdG9yLmgiCisjaW1wb3J0
ICJGcmFtZVZpZXcuaCIKICNpbXBvcnQgIkhUTUxGaWVsZFNldEVsZW1lbnQuaCIKICNpbXBvcnQg
IkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbXBvcnQgIkxvY2FsaXplZFN0cmluZ3MuaCIKQEAgLTY5
LDYgKzcwLDMyIEBAIHZvaWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6b3ZlcnJpZGVBdHRhY2htZW50
UGFyZW50KEFYQ29yZU9iamVjdCogcGFyZW50KQogICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0VORAogfQogCitOU1ZpZXcgKiBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojp0b3BEb2N1bWVu
dEZyYW1lVmlldygpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudCwgY3VycmVudGx5
IG9ubHkgdXNlZCBvbiBpT1MuCisgICAgcmV0dXJuIG5pbDsKK30KKworRmxvYXRSZWN0IEFjY2Vz
c2liaWxpdHlPYmplY3Q6OmNvbnZlcnRSZWN0VG9QbGF0Zm9ybVNwYWNlKGNvbnN0IEZsb2F0UmVj
dCYgcmVjdCwgQWNjZXNzaWJpbGl0eUNvbnZlcnNpb25TcGFjZSBzcGFjZSkgY29uc3QKK3sKKyAg
ICAvLyBXZWJLaXQxIGNvZGUgcGF0aC4uLiBwbGF0Zm9ybVdpZGdldCgpIGV4aXN0cy4KKyAgICBh
dXRvKiBmcmFtZVZpZXcgPSBkb2N1bWVudEZyYW1lVmlldygpOworICAgIGlmIChmcmFtZVZpZXcg
JiYgZnJhbWVWaWV3LT5wbGF0Zm9ybVdpZGdldCgpKSB7CisgICAgICAgIENHUG9pbnQgcG9pbnQg
PSBDR1BvaW50TWFrZShyZWN0LngoKSwgcmVjdC55KCkpOworICAgICAgICBDR1NpemUgc2l6ZSA9
IENHU2l6ZU1ha2UocmVjdC5zaXplKCkud2lkdGgoKSwgcmVjdC5zaXplKCkuaGVpZ2h0KCkpOwor
ICAgICAgICBDR1JlY3QgY2dSZWN0ID0gQ0dSZWN0TWFrZShwb2ludC54LCBwb2ludC55LCBzaXpl
LndpZHRoLCBzaXplLmhlaWdodCk7CisKKyAgICAgICAgTlNSZWN0IG5zUmVjdCA9IE5TUmVjdEZy
b21DR1JlY3QoY2dSZWN0KTsKKyAgICAgICAgTlNWaWV3ICp2aWV3ID0gZnJhbWVWaWV3LT5kb2N1
bWVudFZpZXcoKTsKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
KyAgICAgICAgbnNSZWN0ID0gW1t2aWV3IHdpbmRvd10gY29udmVydFJlY3RUb1NjcmVlbjpbdmll
dyBjb252ZXJ0UmVjdDpuc1JlY3QgdG9WaWV3Om5pbF1dOworICAgICAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKKyAgICAgICAgcmV0dXJuIE5TUmVjdFRvQ0dSZWN0KG5zUmVj
dCk7CisgICAgfQorCisgICAgcmV0dXJuIGNvbnZlcnRGcmFtZVRvU3BhY2UocmVjdCwgc3BhY2Up
OworfQorCiAvLyBPbiBpT1MsIHdlIGRvbid0IGhhdmUgdG8gcmV0dXJuIHRoZSB2YWx1ZSBpbiB0
aGUgdGl0bGUuIFdlIGNhbiByZXR1cm4gdGhlIGFjdHVhbCB0aXRsZSwgZ2l2ZW4gdGhlIEFQSS4K
IGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6ZmlsZVVwbG9hZEJ1dHRvblJldHVybnNWYWx1ZUlu
VGl0bGUoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1t
CmluZGV4IDY5ODA0MmQ1NjUyYmJlYmVjZjkzOTBlNzNjZmQyZDVjNjM5ZmVmOTAuLjlkYjY3NDIz
OWVmMGY5NTdlZmU3OGEyNTAzNjQ2N2MzOWIzNTkxMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlckJhc2UubW0KQEAgLTUwLDggKzUwLDYgQEAKICNpbXBvcnQgIkVkaXRpbmcu
aCIKICNpbXBvcnQgIkZvbnQuaCIKICNpbXBvcnQgIkZvbnRDYXNjYWRlLmgiCi0jaW1wb3J0ICJG
cmFtZS5oIgotI2ltcG9ydCAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbXBvcnQgIkZyYW1lU2Vs
ZWN0aW9uLmgiCiAjaW1wb3J0ICJIVE1MTmFtZXMuaCIKICNpbXBvcnQgIkxheW91dFJlY3QuaCIK
QEAgLTYzLDE1ICs2MSwxMSBAQAogI2ltcG9ydCAiU2Nyb2xsVmlldy5oIgogI2ltcG9ydCAiVGV4
dENoZWNrZXJDbGllbnQuaCIKICNpbXBvcnQgIlZpc2libGVVbml0cy5oIgotI2ltcG9ydCAiV2Vi
Q29yZUZyYW1lVmlldy5oIgogI2ltcG9ydCA8d3RmL2NvY29hL1ZlY3RvckNvY29hLmg+CiAKICNp
ZiBQTEFURk9STShNQUMpCiAjaW1wb3J0ICJXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1h
Yy5oIgotI2ltcG9ydCA8cGFsL3NwaS9tYWMvSElTZXJ2aWNlc1NQSS5oPgogI2Vsc2UKLSNpbXBv
cnQgIldBS1ZpZXcuaCIKLSNpbXBvcnQgIldBS1dpbmRvdy5oIgogI2ltcG9ydCAiV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJJT1MuaCIKICNlbmRpZgogCkBAIC00NjMsNDAgKzQ1NywxMSBA
QCBzdGF0aWMgdm9pZCBjb252ZXJ0UGF0aFRvU2NyZWVuU3BhY2VGdW5jdGlvbihQYXRoQ29udmVy
c2lvbkluZm8mIGNvbnZlcnNpb24sIGNvbgogCiAtIChDR1JlY3QpY29udmVydFJlY3RUb1NwYWNl
Oihjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKXJlY3Qgc3BhY2U6KEFjY2Vzc2liaWxpdHlDb252
ZXJzaW9uU3BhY2Upc3BhY2UKIHsKLSAgICBpZiAoIXNlbGYuYXhCYWNraW5nT2JqZWN0KQorICAg
IGF1dG8qIGJhY2tpbmdPYmplY3QgPSBzZWxmLmF4QmFja2luZ09iamVjdDsKKyAgICBpZiAoIWJh
Y2tpbmdPYmplY3QpCiAgICAgICAgIHJldHVybiBDR1JlY3RaZXJvOwotICAgIAotICAgIENHU2l6
ZSBzaXplID0gQ0dTaXplTWFrZShyZWN0LnNpemUoKS53aWR0aCgpLCByZWN0LnNpemUoKS5oZWln
aHQoKSk7Ci0gICAgQ0dQb2ludCBwb2ludCA9IENHUG9pbnRNYWtlKHJlY3QueCgpLCByZWN0Lnko
KSk7Ci0gICAgCi0gICAgQ0dSZWN0IGNnUmVjdCA9IENHUmVjdE1ha2UocG9pbnQueCwgcG9pbnQu
eSwgc2l6ZS53aWR0aCwgc2l6ZS5oZWlnaHQpOwotCi0gICAgLy8gV2ViS2l0MSBjb2RlIHBhdGgu
Li4gcGxhdGZvcm1XaWRnZXQoKSBleGlzdHMuCi0gICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBz
ZWxmLmF4QmFja2luZ09iamVjdC0+ZG9jdW1lbnRGcmFtZVZpZXcoKTsKLSNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQotICAgIFdBS1ZpZXcqIGRvY3VtZW50VmlldyA9IGZyYW1lVmlldyA/IGZyYW1l
Vmlldy0+ZG9jdW1lbnRWaWV3KCkgOiBudWxscHRyOwotICAgIGlmIChkb2N1bWVudFZpZXcpIHsK
LSAgICAgICAgY2dSZWN0ID0gW2RvY3VtZW50VmlldyBjb252ZXJ0UmVjdDpjZ1JlY3QgdG9WaWV3
Om5pbF07Ci0gICAgICAgIAotICAgICAgICAvLyB3ZSBuZWVkIHRoZSB3ZWIgZG9jdW1lbnQgdmll
dyB0byBnaXZlIHVzIG91ciBmaW5hbCBzY3JlZW4gY29vcmRpbmF0ZXMKLSAgICAgICAgLy8gYmVj
YXVzZSB0aGF0IGNhbiB0YWtlIGFjY291bnQgb2YgdGhlIHNjcm9sbGVyCi0gICAgICAgIGlkIHdl
YkRvY3VtZW50ID0gW3NlbGYgX2FjY2Vzc2liaWxpdHlXZWJEb2N1bWVudFZpZXddOwotICAgICAg
ICBpZiAod2ViRG9jdW1lbnQpCi0gICAgICAgICAgICBjZ1JlY3QgPSBbd2ViRG9jdW1lbnQgY29u
dmVydFJlY3Q6Y2dSZWN0IHRvVmlldzpuaWxdOwotICAgICAgICByZXR1cm4gY2dSZWN0OwotICAg
IH0KLSNlbHNlCi0gICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPnBsYXRmb3JtV2lkZ2V0
KCkpIHsKLSAgICAgICAgTlNSZWN0IG5zUmVjdCA9IE5TUmVjdEZyb21DR1JlY3QoY2dSZWN0KTsK
LSAgICAgICAgTlNWaWV3KiB2aWV3ID0gZnJhbWVWaWV3LT5kb2N1bWVudFZpZXcoKTsKLSAgICAg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KLSAgICAgICAgbnNSZWN0ID0g
W1t2aWV3IHdpbmRvd10gY29udmVydFJlY3RUb1NjcmVlbjpbdmlldyBjb252ZXJ0UmVjdDpuc1Jl
Y3QgdG9WaWV3Om5pbF1dOwotICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKLSAgICAgICAgcmV0dXJuIE5TUmVjdFRvQ0dSZWN0KG5zUmVjdCk7Ci0gICAgfQotI2VuZGlm
Ci0gICAgZWxzZQotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q0dSZWN0PihzZWxmLmF4QmFj
a2luZ09iamVjdC0+Y29udmVydEZyYW1lVG9TcGFjZShyZWN0LCBzcGFjZSkpOworCisgICAgcmV0
dXJuIGJhY2tpbmdPYmplY3QtPmNvbnZlcnRSZWN0VG9QbGF0Zm9ybVNwYWNlKHJlY3QsIHNwYWNl
KTsKIH0KIAogLSAoTlNTdHJpbmcgKilhcmlhTGFuZG1hcmtSb2xlRGVzY3JpcHRpb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KaW5kZXggN2NkNGQ4NDk0MGEwMzY1NzVh
ZWVjMzE3MmVlMTM3OGZjYzAxNzZkMS4uMGUxMGZlMzQ1ZGI5Y2VlY2I3YWZiZDdmMjMyYWM0N2Ji
MGM4Yzc0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KQEAgLTE5
NzUsMTEgKzE5NzUsMTIgQEAgc3RhdGljIHZvaWQgV2ViVHJhbnNmb3JtQ0dQYXRoVG9OU0Jlemll
clBhdGgodm9pZCogaW5mbywgY29uc3QgQ0dQYXRoRWxlbWVudCAqZWwKICAgICBhdXRvIHJlY3Qg
PSBzbmFwcGVkSW50UmVjdChiYWNraW5nT2JqZWN0LT5lbGVtZW50UmVjdCgpKTsKIAogICAgIC8v
IFRoZSBDb2NvYSBhY2Nlc3NpYmlsaXR5IEFQSSB3YW50cyB0aGUgbG93ZXItbGVmdCBjb3JuZXIu
Ci0gICAgYXV0byBmbG9hdFBvaW50ID0gRmxvYXRQb2ludChyZWN0LngoKSwgcmVjdC5tYXhZKCkp
OworICAgIEZsb2F0UG9pbnQgZmxvYXRQb2ludChyZWN0LngoKSwgcmVjdC5tYXhZKCkpOwogCi0g
ICAgYXV0byBmbG9hdFJlY3QgPSBGbG9hdFJlY3QoZmxvYXRQb2ludCwgRmxvYXRTaXplKCkpOwot
ICAgIENHUG9pbnQgY2dQb2ludCA9IFtzZWxmIGNvbnZlcnRSZWN0VG9TcGFjZTpmbG9hdFJlY3Qg
c3BhY2U6QWNjZXNzaWJpbGl0eUNvbnZlcnNpb25TcGFjZTo6U2NyZWVuXS5vcmlnaW47Ci0gICAg
cmV0dXJuIFtOU1ZhbHVlIHZhbHVlV2l0aFBvaW50Ok5TUG9pbnRGcm9tQ0dQb2ludChjZ1BvaW50
KV07CisgICAgLy8gRklYTUU6IGFkZCBhIGZ1bmN0aW9uIHRvIGNvbnZlcnQgYSBwb2ludCwgbm8g
bmVlZCB0byBjb252ZXJ0IGEgcmVjdCB3aGVuIHlvdSBvbmx5IG5lZWQgYSBwb2ludC4KKyAgICBG
bG9hdFJlY3QgZmxvYXRSZWN0KGZsb2F0UG9pbnQsIEZsb2F0U2l6ZSgpKTsKKyAgICBDR1JlY3Qg
Y2dSZWN0KGJhY2tpbmdPYmplY3QtPmNvbnZlcnRSZWN0VG9QbGF0Zm9ybVNwYWNlKGZsb2F0UmVj
dCwgQWNjZXNzaWJpbGl0eUNvbnZlcnNpb25TcGFjZTo6U2NyZWVuKSk7CisgICAgcmV0dXJuIFtO
U1ZhbHVlIHZhbHVlV2l0aFBvaW50Ok5TUG9pbnRGcm9tQ0dQb2ludChjZ1JlY3Qub3JpZ2luKV07
CiB9CiAKIC0gKE5TU3RyaW5nKilyb2xlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411522</attachid>
            <date>2020-10-15 19:31:34 -0700</date>
            <delta_ts>2020-10-16 06:03:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217785-20201015223133.patch</filename>
            <type>text/plain</type>
            <size>18845</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDgyYjNjYTI5N2IwNmRm
YmZmNWY1YjQ5YmU3MzE5ZjFiNWRiNjFjYy4uZWU3NmRlMWM1MWIxMzEwYWY4NGYzMDdjMjZmOWU4
OGU0ODM0YjkwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIwLTEwLTE1ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZhY3RvciBb
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgY29udmVydFJlY3RUb1NwYWNlXSBzbyB0aGF0
IHRoZSBwbGF0Zm9ybS1zcGVjaWZpYyBjb2RlIGlzIGluIHRoZWlyIGNvcnJlc3BvbmRpbmcgQVgg
b2JqZWN0IHBsYXRmb3JtIGltcGxlbWVudGF0aW9ucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzc4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIGNoYW5nZSBpbiBmdW5jdGlvbmFsaXR5LCBjb2Rl
IHJlZmFjdG9yIGFuZCBjbGVhbnVwLgorCisgICAgICAgIFtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlckJhc2UgY29udmVydFJlY3RUb1NwYWNlXSBoYWQgdHdvIGRpZmZlcmVudAorICAgICAg
ICBjb2RlIHBhdGhzIGZvciBNYWMgYW5kIGlPUywgZGVmZWF0aW5nIHRoZSBwdXJwb3NlIG9mIGEg
YmFzZSBjbGFzcy4KKyAgICAgICAgVGhpcyByZS1mYWN0b3JpbmcgU2ltcGxpZmllcyB0aGUgd3Jh
cHBlciBjb2RlIGJ5IG1vdmluZyB0aGUgcGxhdGZvcm0tCisgICAgICAgIHNwZWNpZmljIGltcGxl
bWVudGF0aW9ucyB0byB0aGVpciBjb3JyZXNwb25kaW5nIEFYIG9iamVjdCBpbXBsZW1lbnRhdGlv
bnMKKyAgICAgICAgb2YgY29udmVydFJlY3RUb1BsYXRmb3JtU3BhY2UuCisgICAgICAgIFNvbWUg
Y29kZSBjbGVhbnVwLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJm
YWNlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pb3MvQWNjZXNzaWJpbGl0eU9iamVjdElP
Uy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnRvcERvY3VtZW50
RnJhbWVWaWV3IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6
OmNvbnZlcnRSZWN0VG9QbGF0Zm9ybVNwYWNlIGNvbnN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbToKKyAgICAgICAgKC1b
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgX2FjY2Vzc2liaWxpdHlXZWJEb2N1bWVudFZp
ZXddKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OmNvbnZlcnRSZWN0
VG9QbGF0Zm9ybVNwYWNlIGNvbnN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkT2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQWNj
ZXNzaWJpbGl0eU9iamVjdE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlP
YmplY3Q6OnRvcERvY3VtZW50RnJhbWVWaWV3IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlPYmplY3Q6OmNvbnZlcnRSZWN0VG9QbGF0Zm9ybVNwYWNlIGNvbnN0KToKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJh
c2UubW06CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZSBjb252
ZXJ0UmVjdFRvU3BhY2U6c3BhY2U6XSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06CisgICAgICAgICgtW1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyIHBvc2l0aW9uXSk6CisKIDIwMjAtMTAtMTUgIEFuZHJlcyBHb256
YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBmb3IgbXVsdGlwbGUg
YWNjZXNzaWJpbGl0eSBsYXlvdXQgdGVzdHMgaW4gaXNvbGF0ZWQgdHJlZSBtb2RlLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRl
eCA4MDhmZWZhMjk1OTJhMjAyOGRkNGJiYTY0MjIzOTM2OWIyYmM1ZDBjLi41ZmZiMGQ1NzczMGRl
ZjMzNTJlYzIxOWRmZDA2MTI4ZmNhM2I3MDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAtNDQwLDYgKzQ0MCw4IEBAIHB1
YmxpYzoKICAgICBQbGF0Zm9ybVdpZGdldCBwbGF0Zm9ybVdpZGdldCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG51bGxwdHI7IH0KICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZW1vdGVBWE9i
amVjdFJlZiByZW1vdGVQYXJlbnRPYmplY3QoKSBjb25zdCBvdmVycmlkZTsKKyAgICBGbG9hdFJl
Y3QgY29udmVydFJlY3RUb1BsYXRmb3JtU3BhY2UoY29uc3QgRmxvYXRSZWN0JiwgQWNjZXNzaWJp
bGl0eUNvbnZlcnNpb25TcGFjZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgTlNWaWV3ICp0b3BEb2N1
bWVudEZyYW1lVmlldygpIGNvbnN0IG92ZXJyaWRlOwogI2VuZGlmCiAgICAgV2lkZ2V0KiB3aWRn
ZXRGb3JBdHRhY2htZW50VmlldygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7IH0K
ICAgICBQYWdlKiBwYWdlKCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC03MjksNyArNzMxLDcgQEAgcHVi
bGljOgogICAgIGJvb2wgaGFzQXBwbGVQREZBbm5vdGF0aW9uQXR0cmlidXRlKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gaGFzQXR0cmlidXRlKEhUTUxOYW1lczo6eF9hcHBsZV9wZGZfYW5ub3Rh
dGlvbkF0dHIpOyB9CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKyNpZiBQTEFURk9STShNQUMpCiAgICAgYm9vbCBjYXJldEJyb3dzaW5nRW5h
YmxlZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgc2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQo
Ym9vbCkgb3ZlcnJpZGU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKaW5kZXggNjVjMDU3
YmRkYzI1NDcxNGZkMjZhNDJiNzgxYjYxNWE4MDQyMjY4NC4uNTViZDZlMzFlNjE5ZjM3ZWY3Nzgw
ZjdiM2RiNDI1YTM4OGIzZTRlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKQEAgLTExODAsNiAr
MTE4MCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBsYXRmb3JtV2lkZ2V0IHBsYXRmb3JtV2lk
Z2V0KCkgY29uc3QgPSAwOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZpcnR1YWwgUmVtb3Rl
QVhPYmplY3RSZWYgcmVtb3RlUGFyZW50T2JqZWN0KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwg
RmxvYXRSZWN0IGNvbnZlcnRSZWN0VG9QbGF0Zm9ybVNwYWNlKGNvbnN0IEZsb2F0UmVjdCYsIEFj
Y2Vzc2liaWxpdHlDb252ZXJzaW9uU3BhY2UpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIE5TVmll
dyAqdG9wRG9jdW1lbnRGcmFtZVZpZXcoKSBjb25zdCA9IDA7CiAjZW5kaWYKICAgICB2aXJ0dWFs
IFdpZGdldCogd2lkZ2V0Rm9yQXR0YWNobWVudFZpZXcoKSBjb25zdCA9IDA7CiAgICAgdmlydHVh
bCBQYWdlKiBwYWdlKCkgY29uc3QgPSAwOwpAQCAtMTQ2Nyw3ICsxNDY5LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgYm9vbCBoYXNBcHBsZVBERkFubm90YXRpb25BdHRyaWJ1dGUoKSBjb25zdCA9
IDA7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyNpZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCBib29sIGNhcmV0QnJvd3NpbmdFbmFi
bGVkKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDYXJldEJyb3dzaW5nRW5hYmxl
ZChib29sKSA9IDA7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaW9zL0FjY2Vzc2liaWxpdHlPYmplY3RJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lvcy9BY2Nlc3NpYmlsaXR5T2JqZWN0SU9TLm1tCmluZGV4IDNiYjFlZTc5MGE2
MmVjYzE4MmIxOGMxNWYwMmExNDZhZTc0OWRkZTkuLmIzNjI4MTFjYzVjZDE3ODEwYjA0NjUzM2Vk
M2VhMzljYjUwYTU1ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
aW9zL0FjY2Vzc2liaWxpdHlPYmplY3RJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9pb3MvQWNjZXNzaWJpbGl0eU9iamVjdElPUy5tbQpAQCAtMzAsNiArMzAsNyBAQAog
CiAjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgiCiAjaW1wb3J0ICJFdmVudE5h
bWVzLmgiCisjaW1wb3J0ICJGcmFtZVZpZXcuaCIKICNpbXBvcnQgIkhUTUxJbnB1dEVsZW1lbnQu
aCIKICNpbXBvcnQgIlJlbmRlck9iamVjdC5oIgogI2ltcG9ydCAiV0FLVmlldy5oIgpAQCAtNDYs
NiArNDcsNTUgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpkZXRhY2hGcm9tUGFyZW50KCkK
IHsKIH0KIAorTlNWaWV3ICpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojp0b3BEb2N1bWVudEZyYW1lVmll
dygpIGNvbnN0Cit7CisgICAgLy8gVGhpcyBtZXRob2QgcGVyZm9ybXMgdGhlIGNydWNpYWwgdGFz
ayBvZiBjb25uZWN0aW5nIHRvIHRoZSBVSVdlYkRvY3VtZW50Vmlldy4KKyAgICAvLyBUaGlzIGlz
IG5lZWRlZCB0byBjb3JyZWN0bHkgY2FsY3VsYXRlIHRoZSBzY3JlZW4gcG9zaXRpb24gb2YgdGhl
IEFYIG9iamVjdC4KKyAgICBzdGF0aWMgQ2xhc3Mgd2ViVmlld0NsYXNzID0gbmlsOworICAgIGlm
ICghd2ViVmlld0NsYXNzKQorICAgICAgICB3ZWJWaWV3Q2xhc3MgPSBOU0NsYXNzRnJvbVN0cmlu
ZyhAIldlYlZpZXciKTsKKyAgICBpZiAoIXdlYlZpZXdDbGFzcykKKyAgICAgICAgcmV0dXJuIG5p
bDsKKworICAgIGF1dG8qIGZyYW1lVmlldyA9IGRvY3VtZW50RnJhbWVWaWV3KCk7CisgICAgaWYg
KCFmcmFtZVZpZXcpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICAvLyBJZiB0aGlzIGlzIHRo
ZSB0b3AgbGV2ZWwgZnJhbWUsIHRoZSBVSVdlYkRvY3VtZW50VmlldyBzaG91bGQgYmUgcmV0dXJu
ZWQuCisgICAgTlNWaWV3ICpwYXJlbnRWaWV3ID0gZnJhbWVWaWV3LT5kb2N1bWVudFZpZXcoKTsK
KyAgICB3aGlsZSAocGFyZW50VmlldyAmJiAhW3BhcmVudFZpZXcgaXNLaW5kT2ZDbGFzczp3ZWJW
aWV3Q2xhc3NdKQorICAgICAgICBwYXJlbnRWaWV3ID0gW3BhcmVudFZpZXcgc3VwZXJ2aWV3XTsK
KworICAgIC8vIFRoZSBwYXJlbnRWaWV3IHNob3VsZCBoYXZlIGFuIGFjY2Vzc2liaWxpdHlDb250
YWluZXIsIGlmIHRoZSBVSUtpdCBhY2Nlc3NpYmlsaXR5IGJ1bmRsZSB3YXMgbG9hZGVkLgorICAg
IC8vIFRoZSBleGNlcHRpb24gaXMgRFJULCB3aGljaCB0ZXN0cyBhY2Nlc3NpYmlsaXR5IHdpdGhv
dXQgdGhlIGVudGlyZSBzeXN0ZW0gdHVybmluZyBhY2Nlc3NpYmlsaXR5IG9uLiBIZW5jZSwKKyAg
ICAvLyB0aGlzIGNoZWNrIHNob3VsZCBiZSB2YWxpZCBmb3IgZXZlcnl0aGluZyBleGNlcHQgRFJU
LgorICAgIEFTU0VSVChbcGFyZW50VmlldyBhY2Nlc3NpYmlsaXR5Q29udGFpbmVyXSB8fCBJT1NB
cHBsaWNhdGlvbjo6aXNEdW1wUmVuZGVyVHJlZSgpKTsKKworICAgIHJldHVybiBwYXJlbnRWaWV3
OworfQorCitGbG9hdFJlY3QgQWNjZXNzaWJpbGl0eU9iamVjdDo6Y29udmVydFJlY3RUb1BsYXRm
b3JtU3BhY2UoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBBY2Nlc3NpYmlsaXR5Q29udmVyc2lvblNw
YWNlIHNwYWNlKSBjb25zdAoreworICAgIGF1dG8qIGZyYW1lVmlldyA9IGRvY3VtZW50RnJhbWVW
aWV3KCk7CisgICAgV0FLVmlldyAqZG9jdW1lbnRWaWV3ID0gZnJhbWVWaWV3ID8gZnJhbWVWaWV3
LT5kb2N1bWVudFZpZXcoKSA6IG51bGxwdHI7CisgICAgaWYgKGRvY3VtZW50VmlldykgeworICAg
ICAgICBDR1BvaW50IHBvaW50ID0gQ0dQb2ludE1ha2UocmVjdC54KCksIHJlY3QueSgpKTsKKyAg
ICAgICAgQ0dTaXplIHNpemUgPSBDR1NpemVNYWtlKHJlY3Quc2l6ZSgpLndpZHRoKCksIHJlY3Qu
c2l6ZSgpLmhlaWdodCgpKTsKKyAgICAgICAgQ0dSZWN0IGNnUmVjdCA9IENHUmVjdE1ha2UocG9p
bnQueCwgcG9pbnQueSwgc2l6ZS53aWR0aCwgc2l6ZS5oZWlnaHQpOworCisgICAgICAgIGNnUmVj
dCA9IFtkb2N1bWVudFZpZXcgY29udmVydFJlY3Q6Y2dSZWN0IHRvVmlldzpuaWxdOworCisgICAg
ICAgIC8vIHdlIG5lZWQgdGhlIHdlYiBkb2N1bWVudCB2aWV3IHRvIGdpdmUgdXMgb3VyIGZpbmFs
IHNjcmVlbiBjb29yZGluYXRlcworICAgICAgICAvLyBiZWNhdXNlIHRoYXQgY2FuIHRha2UgYWNj
b3VudCBvZiB0aGUgc2Nyb2xsZXIKKyAgICAgICAgTlNWaWV3ICp3ZWJEb2N1bWVudCA9IHRvcERv
Y3VtZW50RnJhbWVWaWV3KCk7CisgICAgICAgIGlmICh3ZWJEb2N1bWVudCkKKyAgICAgICAgICAg
IGNnUmVjdCA9IFt3ZWJEb2N1bWVudCBjb252ZXJ0UmVjdDpjZ1JlY3QgdG9WaWV3Om5pbF07Cisg
ICAgICAgIHJldHVybiBjZ1JlY3Q7CisgICAgfQorCisgICAgcmV0dXJuIGNvbnZlcnRGcmFtZVRv
U3BhY2UocmVjdCwgc3BhY2UpOworfQorCiAvLyBPbiBpT1MsIHdlIGRvbid0IGhhdmUgdG8gcmV0
dXJuIHRoZSB2YWx1ZSBpbiB0aGUgdGl0bGUuIFdlIGNhbiByZXR1cm4gdGhlIGFjdHVhbCB0aXRs
ZSwgZ2l2ZW4gdGhlIEFQSS4KIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6ZmlsZVVwbG9hZEJ1
dHRvblJldHVybnNWYWx1ZUluVGl0bGUoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1Mu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlcklPUy5tbQppbmRleCAyM2ZhOGE0NTEyYmQzOWE4ODQ4YmQxZTcxZGZkMjlmM2Yx
Y2M0NzcxLi4xZDE4MDcwZWNlNmU1YTI2OWQyYTg0YjAxZjc2ZjAzODBjZDQxNDI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9X
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQpAQCAtMzcsOSArMzcsNyBAQAogI2lt
cG9ydCAiQ2hyb21lLmgiCiAjaW1wb3J0ICJDaHJvbWVDbGllbnQuaCIKICNpbXBvcnQgIkZvbnRD
YXNjYWRlLmgiCi0jaW1wb3J0ICJGcmFtZS5oIgogI2ltcG9ydCAiRnJhbWVTZWxlY3Rpb24uaCIK
LSNpbXBvcnQgIkZyYW1lVmlldy5oIgogI2ltcG9ydCAiSGl0VGVzdFJlc3VsdC5oIgogI2ltcG9y
dCAiSFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCiAjaW1wb3J0ICJIVE1MSW5wdXRFbGVtZW50Lmgi
CkBAIC0xNzQxLDMxICsxNzM5LDcgQEAgc3RhdGljIHZvaWQgYXBwZW5kU3RyaW5nVG9SZXN1bHQo
TlNNdXRhYmxlU3RyaW5nICpyZXN1bHQsIE5TU3RyaW5nICpzdHJpbmcpCiAgICAgaWYgKCFbc2Vs
ZiBfcHJlcGFyZUFjY2Vzc2liaWxpdHlDYWxsXSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAg
IC8vIFRoaXMgbWV0aG9kIHBlcmZvcm1zIHRoZSBjcnVjaWFsIHRhc2sgb2YgY29ubmVjdGluZyB0
byB0aGUgVUlXZWJEb2N1bWVudFZpZXcuCi0gICAgLy8gVGhpcyBpcyBuZWVkZWQgdG8gY29ycmVj
dGx5IGNhbGN1bGF0ZSB0aGUgc2NyZWVuIHBvc2l0aW9uIG9mIHRoZSBBWCBvYmplY3QuCi0gICAg
c3RhdGljIENsYXNzIHdlYlZpZXdDbGFzcyA9IG5pbDsKLSAgICBpZiAoIXdlYlZpZXdDbGFzcykK
LSAgICAgICAgd2ViVmlld0NsYXNzID0gTlNDbGFzc0Zyb21TdHJpbmcoQCJXZWJWaWV3Iik7Ci0K
LSAgICBpZiAoIXdlYlZpZXdDbGFzcykKLSAgICAgICAgcmV0dXJuIG5pbDsKLSAgICAKLSAgICBG
cmFtZVZpZXcqIGZyYW1lVmlldyA9IHNlbGYuYXhCYWNraW5nT2JqZWN0LT5kb2N1bWVudEZyYW1l
VmlldygpOwotCi0gICAgaWYgKCFmcmFtZVZpZXcpCi0gICAgICAgIHJldHVybiBuaWw7Ci0gICAg
Ci0gICAgLy8gSWYgdGhpcyBpcyB0aGUgdG9wIGxldmVsIGZyYW1lLCB0aGUgVUlXZWJEb2N1bWVu
dFZpZXcgc2hvdWxkIGJlIHJldHVybmVkLgotICAgIGlkIHBhcmVudFZpZXcgPSBmcmFtZVZpZXct
PmRvY3VtZW50VmlldygpOwotICAgIHdoaWxlIChwYXJlbnRWaWV3ICYmICFbcGFyZW50VmlldyBp
c0tpbmRPZkNsYXNzOndlYlZpZXdDbGFzc10pCi0gICAgICAgIHBhcmVudFZpZXcgPSBbcGFyZW50
VmlldyBzdXBlcnZpZXddOwotICAgIAotICAgIC8vIFRoZSBwYXJlbnRWaWV3IHNob3VsZCBoYXZl
IGFuIGFjY2Vzc2liaWxpdHlDb250YWluZXIsIGlmIHRoZSBVSUtpdCBhY2Nlc3NpYmlsaXR5IGJ1
bmRsZSB3YXMgbG9hZGVkLiAKLSAgICAvLyBUaGUgZXhjZXB0aW9uIGlzIERSVCwgd2hpY2ggdGVz
dHMgYWNjZXNzaWJpbGl0eSB3aXRob3V0IHRoZSBlbnRpcmUgc3lzdGVtIHR1cm5pbmcgYWNjZXNz
aWJpbGl0eSBvbi4gSGVuY2UsCi0gICAgLy8gdGhpcyBjaGVjayBzaG91bGQgYmUgdmFsaWQgZm9y
IGV2ZXJ5dGhpbmcgZXhjZXB0IERSVC4KLSAgICBBU1NFUlQoW3BhcmVudFZpZXcgYWNjZXNzaWJp
bGl0eUNvbnRhaW5lcl0gfHwgSU9TQXBwbGljYXRpb246OmlzRHVtcFJlbmRlclRyZWUoKSk7Ci0g
ICAgCi0gICAgcmV0dXJuIFtwYXJlbnRWaWV3IGFjY2Vzc2liaWxpdHlDb250YWluZXJdOworICAg
IHJldHVybiBbKGlkKXNlbGYuYXhCYWNraW5nT2JqZWN0LT50b3BEb2N1bWVudEZyYW1lVmlldygp
IGFjY2Vzc2liaWxpdHlDb250YWluZXJdOwogfQogCiAtIChOU0FycmF5ICopX2FjY2Vzc2liaWxp
dHlOZXh0RWxlbWVudHNXaXRoQ291bnQ6KFVJbnQzMiljb3VudApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2Jq
ZWN0LmNwcAppbmRleCA4NTI3MWE3NjUzOWRhY2EzMDk4ZWY1OWIzYjgyZWY0MTc4ZTdkMmY0Li5k
MmE4OGJkYjEwZTRkMjk0ODU4MGRlYzNmNWJiNzFiYTRmMGFkNzllIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkT2JqZWN0LmNwcApAQCAtOTY1LDYgKzk2NSwxNSBAQCBGbG9hdFJlY3QgQVhJc29sYXRlZE9i
amVjdDo6Y29udmVydEZyYW1lVG9TcGFjZShjb25zdCBGbG9hdFJlY3QmIHJlY3QsIEFjY2Vzc2li
aQogICAgIH0pOwogfQogCitGbG9hdFJlY3QgQVhJc29sYXRlZE9iamVjdDo6Y29udmVydFJlY3RU
b1BsYXRmb3JtU3BhY2UoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBBY2Nlc3NpYmlsaXR5Q29udmVy
c2lvblNwYWNlIHNwYWNlKSBjb25zdAoreworICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5OjpyZXRy
aWV2ZVZhbHVlRnJvbU1haW5UaHJlYWQ8RmxvYXRSZWN0PihbJnJlY3QsICZzcGFjZSwgdGhpc10g
KCkgLT4gRmxvYXRSZWN0IHsKKyAgICAgICAgaWYgKGF1dG8qIGF4T2JqZWN0ID0gYXNzb2NpYXRl
ZEFYT2JqZWN0KCkpCisgICAgICAgICAgICByZXR1cm4gYXhPYmplY3QtPmNvbnZlcnRSZWN0VG9Q
bGF0Zm9ybVNwYWNlKHJlY3QsIHNwYWNlKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9KTsK
K30KKwogYm9vbCBBWElzb2xhdGVkT2JqZWN0OjpyZXBsYWNlVGV4dEluUmFuZ2UoY29uc3QgU3Ry
aW5nJiByZXBsYWNlbWVudFRleHQsIGNvbnN0IFBsYWluVGV4dFJhbmdlJiB0ZXh0UmFuZ2UpCiB7
CiAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHk6OnJldHJpZXZlVmFsdWVGcm9tTWFpblRocmVhZDxi
b29sPihbJnJlcGxhY2VtZW50VGV4dCwgJnRleHRSYW5nZSwgdGhpc10gKCkgLT4gYm9vbCB7CkBA
IC0xMTM5LDYgKzExNDgsNyBAQCB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OnNldFNlbGVjdGVkVmlz
aWJsZVBvc2l0aW9uUmFuZ2UoY29uc3QgVmlzaWJsZVBvc2l0aW9uUmFuZwogCiBPcHRpb25hbDxT
aW1wbGVSYW5nZT4gQVhJc29sYXRlZE9iamVjdDo6ZWxlbWVudFJhbmdlKCkgY29uc3QKIHsKKyAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIGF1dG8qIGF4T2JqZWN0ID0gYXNzb2NpYXRl
ZEFYT2JqZWN0KCk7CiAgICAgcmV0dXJuIGF4T2JqZWN0ID8gYXhPYmplY3QtPmVsZW1lbnRSYW5n
ZSgpIDogV1RGOjpudWxsb3B0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCmluZGV4IDBjNDQ0
OGM5NjY0MGNjNzk4MmQzNWI4MWU5OWJiNzFmNWIxYWEwZmEuLjNkOWVmYzBhNzQ3OGYzNDZmNmI3
MDU5Yzg0OWQwN2E2YmExMWE1NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKQEAgLTMzNCw3
ICszMzQsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBkZXNjcmlwdGlvbkF0dHJpYnV0ZVZhbHVl
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gc3RyaW5nQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0
eU5hbWU6OkRlc2NyaXB0aW9uKTsgfQogICAgIFN0cmluZyBoZWxwVGV4dEF0dHJpYnV0ZVZhbHVl
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gc3RyaW5nQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0
eU5hbWU6OkhlbHBUZXh0KTsgfQogICAgIFN0cmluZyB0aXRsZUF0dHJpYnV0ZVZhbHVlKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gc3RyaW5nQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6
OlRpdGxlQXR0cmlidXRlVmFsdWUpOyB9Ci0jaWYgUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9S
TShJT1NfRkFNSUxZKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICBib29sIGNhcmV0QnJvd3NpbmdF
bmFibGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJv
cGVydHlOYW1lOjpDYXJldEJyb3dzaW5nRW5hYmxlZCk7IH0KICNlbmRpZgogICAgIEFYQ29yZU9i
amVjdCogZm9jdXNhYmxlQW5jZXN0b3IoKSBvdmVycmlkZSB7IHJldHVybiBvYmplY3RBdHRyaWJ1
dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6Rm9jdXNhYmxlQW5jZXN0b3IpOyB9CkBAIC00NDMsNyAr
NDQzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFNlbGVjdGVkVGV4dChjb25zdCBTdHJpbmcm
KSBvdmVycmlkZTsKICAgICB2b2lkIHNldFNlbGVjdGVkVGV4dFJhbmdlKGNvbnN0IFBsYWluVGV4
dFJhbmdlJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmKSBvdmVy
cmlkZTsKLSNpZiBQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYg
UExBVEZPUk0oTUFDKQogICAgIHZvaWQgc2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoYm9vbCkgb3Zl
cnJpZGU7CiAjZW5kaWYKICAgICB2b2lkIHNldFByZXZlbnRLZXlib2FyZERPTUV2ZW50RGlzcGF0
Y2goYm9vbCkgb3ZlcnJpZGU7CkBAIC01NzksNiArNTc5LDggQEAgcHJpdmF0ZToKICAgICBIYXNo
TWFwPFN0cmluZywgQVhFZGl0aW5nU3R5bGVWYWx1ZVZhcmlhbnQ+IHJlc29sdmVkRWRpdGluZ1N0
eWxlcygpIGNvbnN0IG92ZXJyaWRlOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJlbW90ZUFY
T2JqZWN0UmVmIHJlbW90ZVBhcmVudE9iamVjdCgpIGNvbnN0IG92ZXJyaWRlOworICAgIEZsb2F0
UmVjdCBjb252ZXJ0UmVjdFRvUGxhdGZvcm1TcGFjZShjb25zdCBGbG9hdFJlY3QmLCBBY2Nlc3Np
YmlsaXR5Q29udmVyc2lvblNwYWNlKSBjb25zdCBvdmVycmlkZTsKKyAgICBOU1ZpZXcgKnRvcERv
Y3VtZW50RnJhbWVWaWV3KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbmlsOyB9IC8vIEZJWE1F
OiBpbXBsZW1lbnQsIGN1cnJlbnRseSBvbmx5IHVzZWQgb24gaU9TLgogI2VuZGlmCiAgICAgV2lk
Z2V0KiB3aWRnZXRGb3JBdHRhY2htZW50VmlldygpIGNvbnN0IG92ZXJyaWRlOwogICAgIFBhZ2Uq
IHBhZ2UoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tCmluZGV4IDgyYWYxOWQw
MTk2ZjQwNmY3NzIxYWE4NTUwZDM0ODE3YzcxZTQ1N2YuLjkwNmRhNjFmZGRhZjBhYTM0NGVkYWI3
ODMyYWNiMDk0NDdkYWU1ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbQpAQCAtMjgsNiArMjgsNyBA
QAogI2ltcG9ydCAiQWNjZXNzaWJpbGl0eUxhYmVsLmgiCiAjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5
TGlzdC5oIgogI2ltcG9ydCAiRWxlbWVudEFuY2VzdG9ySXRlcmF0b3IuaCIKKyNpbXBvcnQgIkZy
YW1lVmlldy5oIgogI2ltcG9ydCAiSFRNTEZpZWxkU2V0RWxlbWVudC5oIgogI2ltcG9ydCAiSFRN
TElucHV0RWxlbWVudC5oIgogI2ltcG9ydCAiTG9jYWxpemVkU3RyaW5ncy5oIgpAQCAtNjksNiAr
NzAsMzIgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpvdmVycmlkZUF0dGFjaG1lbnRQYXJl
bnQoQVhDb3JlT2JqZWN0KiBwYXJlbnQpCiAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfRU5ECiB9CiAKK05TVmlldyAqQWNjZXNzaWJpbGl0eU9iamVjdDo6dG9wRG9jdW1lbnRGcmFt
ZVZpZXcoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQsIGN1cnJlbnRseSBvbmx5
IHVzZWQgb24gaU9TLgorICAgIHJldHVybiBuaWw7Cit9CisKK0Zsb2F0UmVjdCBBY2Nlc3NpYmls
aXR5T2JqZWN0Ojpjb252ZXJ0UmVjdFRvUGxhdGZvcm1TcGFjZShjb25zdCBGbG9hdFJlY3QmIHJl
Y3QsIEFjY2Vzc2liaWxpdHlDb252ZXJzaW9uU3BhY2Ugc3BhY2UpIGNvbnN0Cit7CisgICAgLy8g
V2ViS2l0MSBjb2RlIHBhdGguLi4gcGxhdGZvcm1XaWRnZXQoKSBleGlzdHMuCisgICAgYXV0byog
ZnJhbWVWaWV3ID0gZG9jdW1lbnRGcmFtZVZpZXcoKTsKKyAgICBpZiAoZnJhbWVWaWV3ICYmIGZy
YW1lVmlldy0+cGxhdGZvcm1XaWRnZXQoKSkgeworICAgICAgICBDR1BvaW50IHBvaW50ID0gQ0dQ
b2ludE1ha2UocmVjdC54KCksIHJlY3QueSgpKTsKKyAgICAgICAgQ0dTaXplIHNpemUgPSBDR1Np
emVNYWtlKHJlY3Quc2l6ZSgpLndpZHRoKCksIHJlY3Quc2l6ZSgpLmhlaWdodCgpKTsKKyAgICAg
ICAgQ0dSZWN0IGNnUmVjdCA9IENHUmVjdE1ha2UocG9pbnQueCwgcG9pbnQueSwgc2l6ZS53aWR0
aCwgc2l6ZS5oZWlnaHQpOworCisgICAgICAgIE5TUmVjdCBuc1JlY3QgPSBOU1JlY3RGcm9tQ0dS
ZWN0KGNnUmVjdCk7CisgICAgICAgIE5TVmlldyAqdmlldyA9IGZyYW1lVmlldy0+ZG9jdW1lbnRW
aWV3KCk7CisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCisgICAg
ICAgIG5zUmVjdCA9IFtbdmlldyB3aW5kb3ddIGNvbnZlcnRSZWN0VG9TY3JlZW46W3ZpZXcgY29u
dmVydFJlY3Q6bnNSZWN0IHRvVmlldzpuaWxdXTsKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECisgICAgICAgIHJldHVybiBOU1JlY3RUb0NHUmVjdChuc1JlY3QpOwor
ICAgIH0KKworICAgIHJldHVybiBjb252ZXJ0RnJhbWVUb1NwYWNlKHJlY3QsIHNwYWNlKTsKK30K
KwogLy8gT24gaU9TLCB3ZSBkb24ndCBoYXZlIHRvIHJldHVybiB0aGUgdmFsdWUgaW4gdGhlIHRp
dGxlLiBXZSBjYW4gcmV0dXJuIHRoZSBhY3R1YWwgdGl0bGUsIGdpdmVuIHRoZSBBUEkuCiBib29s
IEFjY2Vzc2liaWxpdHlPYmplY3Q6OmZpbGVVcGxvYWRCdXR0b25SZXR1cm5zVmFsdWVJblRpdGxl
KCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFj
L1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbSBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbQppbmRl
eCA2OTgwNDJkNTY1MmJiZWJlY2Y5MzkwZTczY2ZkMmQ1YzYzOWZlZjkwLi45ZGI2NzQyMzllZjBm
OTU3ZWZlNzhhMjUwMzY0NjdjMzliMzU5MTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJCYXNlLm1tCkBAIC01MCw4ICs1MCw2IEBACiAjaW1wb3J0ICJFZGl0aW5nLmgiCiAj
aW1wb3J0ICJGb250LmgiCiAjaW1wb3J0ICJGb250Q2FzY2FkZS5oIgotI2ltcG9ydCAiRnJhbWUu
aCIKLSNpbXBvcnQgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW1wb3J0ICJGcmFtZVNlbGVjdGlv
bi5oIgogI2ltcG9ydCAiSFRNTE5hbWVzLmgiCiAjaW1wb3J0ICJMYXlvdXRSZWN0LmgiCkBAIC02
MywxNSArNjEsMTEgQEAKICNpbXBvcnQgIlNjcm9sbFZpZXcuaCIKICNpbXBvcnQgIlRleHRDaGVj
a2VyQ2xpZW50LmgiCiAjaW1wb3J0ICJWaXNpYmxlVW5pdHMuaCIKLSNpbXBvcnQgIldlYkNvcmVG
cmFtZVZpZXcuaCIKICNpbXBvcnQgPHd0Zi9jb2NvYS9WZWN0b3JDb2NvYS5oPgogCiAjaWYgUExB
VEZPUk0oTUFDKQogI2ltcG9ydCAiV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaCIK
LSNpbXBvcnQgPHBhbC9zcGkvbWFjL0hJU2VydmljZXNTUEkuaD4KICNlbHNlCi0jaW1wb3J0ICJX
QUtWaWV3LmgiCi0jaW1wb3J0ICJXQUtXaW5kb3cuaCIKICNpbXBvcnQgIldlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVySU9TLmgiCiAjZW5kaWYKIApAQCAtNDYzLDQwICs0NTcsMTEgQEAgc3Rh
dGljIHZvaWQgY29udmVydFBhdGhUb1NjcmVlblNwYWNlRnVuY3Rpb24oUGF0aENvbnZlcnNpb25J
bmZvJiBjb252ZXJzaW9uLCBjb24KIAogLSAoQ0dSZWN0KWNvbnZlcnRSZWN0VG9TcGFjZTooY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JilyZWN0IHNwYWNlOihBY2Nlc3NpYmlsaXR5Q29udmVyc2lv
blNwYWNlKXNwYWNlCiB7Ci0gICAgaWYgKCFzZWxmLmF4QmFja2luZ09iamVjdCkKKyAgICBhdXRv
KiBiYWNraW5nT2JqZWN0ID0gc2VsZi5heEJhY2tpbmdPYmplY3Q7CisgICAgaWYgKCFiYWNraW5n
T2JqZWN0KQogICAgICAgICByZXR1cm4gQ0dSZWN0WmVybzsKLSAgICAKLSAgICBDR1NpemUgc2l6
ZSA9IENHU2l6ZU1ha2UocmVjdC5zaXplKCkud2lkdGgoKSwgcmVjdC5zaXplKCkuaGVpZ2h0KCkp
OwotICAgIENHUG9pbnQgcG9pbnQgPSBDR1BvaW50TWFrZShyZWN0LngoKSwgcmVjdC55KCkpOwot
ICAgIAotICAgIENHUmVjdCBjZ1JlY3QgPSBDR1JlY3RNYWtlKHBvaW50LngsIHBvaW50LnksIHNp
emUud2lkdGgsIHNpemUuaGVpZ2h0KTsKLQotICAgIC8vIFdlYktpdDEgY29kZSBwYXRoLi4uIHBs
YXRmb3JtV2lkZ2V0KCkgZXhpc3RzLgotICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gc2VsZi5h
eEJhY2tpbmdPYmplY3QtPmRvY3VtZW50RnJhbWVWaWV3KCk7Ci0jaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKLSAgICBXQUtWaWV3KiBkb2N1bWVudFZpZXcgPSBmcmFtZVZpZXcgPyBmcmFtZVZpZXct
PmRvY3VtZW50VmlldygpIDogbnVsbHB0cjsKLSAgICBpZiAoZG9jdW1lbnRWaWV3KSB7Ci0gICAg
ICAgIGNnUmVjdCA9IFtkb2N1bWVudFZpZXcgY29udmVydFJlY3Q6Y2dSZWN0IHRvVmlldzpuaWxd
OwotICAgICAgICAKLSAgICAgICAgLy8gd2UgbmVlZCB0aGUgd2ViIGRvY3VtZW50IHZpZXcgdG8g
Z2l2ZSB1cyBvdXIgZmluYWwgc2NyZWVuIGNvb3JkaW5hdGVzCi0gICAgICAgIC8vIGJlY2F1c2Ug
dGhhdCBjYW4gdGFrZSBhY2NvdW50IG9mIHRoZSBzY3JvbGxlcgotICAgICAgICBpZCB3ZWJEb2N1
bWVudCA9IFtzZWxmIF9hY2Nlc3NpYmlsaXR5V2ViRG9jdW1lbnRWaWV3XTsKLSAgICAgICAgaWYg
KHdlYkRvY3VtZW50KQotICAgICAgICAgICAgY2dSZWN0ID0gW3dlYkRvY3VtZW50IGNvbnZlcnRS
ZWN0OmNnUmVjdCB0b1ZpZXc6bmlsXTsKLSAgICAgICAgcmV0dXJuIGNnUmVjdDsKLSAgICB9Ci0j
ZWxzZQotICAgIGlmIChmcmFtZVZpZXcgJiYgZnJhbWVWaWV3LT5wbGF0Zm9ybVdpZGdldCgpKSB7
Ci0gICAgICAgIE5TUmVjdCBuc1JlY3QgPSBOU1JlY3RGcm9tQ0dSZWN0KGNnUmVjdCk7Ci0gICAg
ICAgIE5TVmlldyogdmlldyA9IGZyYW1lVmlldy0+ZG9jdW1lbnRWaWV3KCk7Ci0gICAgICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCi0gICAgICAgIG5zUmVjdCA9IFtbdmll
dyB3aW5kb3ddIGNvbnZlcnRSZWN0VG9TY3JlZW46W3ZpZXcgY29udmVydFJlY3Q6bnNSZWN0IHRv
VmlldzpuaWxdXTsKLSAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECi0g
ICAgICAgIHJldHVybiBOU1JlY3RUb0NHUmVjdChuc1JlY3QpOwotICAgIH0KLSNlbmRpZgotICAg
IGVsc2UKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PENHUmVjdD4oc2VsZi5heEJhY2tpbmdP
YmplY3QtPmNvbnZlcnRGcmFtZVRvU3BhY2UocmVjdCwgc3BhY2UpKTsKKworICAgIHJldHVybiBi
YWNraW5nT2JqZWN0LT5jb252ZXJ0UmVjdFRvUGxhdGZvcm1TcGFjZShyZWN0LCBzcGFjZSk7CiB9
CiAKIC0gKE5TU3RyaW5nICopYXJpYUxhbmRtYXJrUm9sZURlc2NyaXB0aW9uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCmluZGV4IDdjZDRkODQ5NDBhMDM2NTc1YWVlYzMx
NzJlZTEzNzhmY2MwMTc2ZDEuLmJjOTA4YjQ5MDRhZDNiYWVmNmExNDUzZWVlODUwMDI3MTliZmIx
MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCkBAIC0xOTc1LDEx
ICsxOTc1LDEyIEBAIHN0YXRpYyB2b2lkIFdlYlRyYW5zZm9ybUNHUGF0aFRvTlNCZXppZXJQYXRo
KHZvaWQqIGluZm8sIGNvbnN0IENHUGF0aEVsZW1lbnQgKmVsCiAgICAgYXV0byByZWN0ID0gc25h
cHBlZEludFJlY3QoYmFja2luZ09iamVjdC0+ZWxlbWVudFJlY3QoKSk7CiAKICAgICAvLyBUaGUg
Q29jb2EgYWNjZXNzaWJpbGl0eSBBUEkgd2FudHMgdGhlIGxvd2VyLWxlZnQgY29ybmVyLgotICAg
IGF1dG8gZmxvYXRQb2ludCA9IEZsb2F0UG9pbnQocmVjdC54KCksIHJlY3QubWF4WSgpKTsKKyAg
ICBGbG9hdFBvaW50IGZsb2F0UG9pbnQocmVjdC54KCksIHJlY3QubWF4WSgpKTsKIAotICAgIGF1
dG8gZmxvYXRSZWN0ID0gRmxvYXRSZWN0KGZsb2F0UG9pbnQsIEZsb2F0U2l6ZSgpKTsKLSAgICBD
R1BvaW50IGNnUG9pbnQgPSBbc2VsZiBjb252ZXJ0UmVjdFRvU3BhY2U6ZmxvYXRSZWN0IHNwYWNl
OkFjY2Vzc2liaWxpdHlDb252ZXJzaW9uU3BhY2U6OlNjcmVlbl0ub3JpZ2luOwotICAgIHJldHVy
biBbTlNWYWx1ZSB2YWx1ZVdpdGhQb2ludDpOU1BvaW50RnJvbUNHUG9pbnQoY2dQb2ludCldOwor
ICAgIC8vIEZJWE1FOiBhZGQgYSBmdW5jdGlvbiB0byBjb252ZXJ0IGEgcG9pbnQsIG5vIG5lZWQg
dG8gY29udmVydCBhIHJlY3Qgd2hlbiB5b3Ugb25seSBuZWVkIGEgcG9pbnQuCisgICAgRmxvYXRS
ZWN0IGZsb2F0UmVjdChmbG9hdFBvaW50LCBGbG9hdFNpemUoKSk7CisgICAgQ0dSZWN0IGNnUmVj
dChiYWNraW5nT2JqZWN0LT5jb252ZXJ0UmVjdFRvUGxhdGZvcm1TcGFjZShmbG9hdFJlY3QsIEFj
Y2Vzc2liaWxpdHlDb252ZXJzaW9uU3BhY2U6OlNjcmVlbikpOworICAgIHJldHVybiBAKGNnUmVj
dC5vcmlnaW4pOwogfQogCiAtIChOU1N0cmluZyopcm9sZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>