<?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>110584</bug_id>
          
          <creation_ts>2013-02-22 03:41:20 -0800</creation_ts>
          <short_desc>[EFL] Missing implementation of AccessibilityControllerEfl and AccessibilityUIElementEfl files</short_desc>
          <delta_ts>2013-03-06 17:29:59 -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 EFL</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Krzysztof Czech">k.czech</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>mario</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>839433</commentid>
    <comment_count>0</comment_count>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2013-02-22 03:41:20 -0800</bug_when>
    <thetext>Part of a task of adding support for Accessibility in DumpRenderTree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839439</commentid>
    <comment_count>1</comment_count>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2013-02-22 03:45:00 -0800</bug_when>
    <thetext>Accessibility support in EFL&apos;s DumpRenderTree implementation.
&gt; Part of a task of adding support for Accessibility in DumpRenderTree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839445</commentid>
    <comment_count>2</comment_count>
      <attachid>189742</attachid>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2013-02-22 03:52:08 -0800</bug_when>
    <thetext>Created attachment 189742
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839528</commentid>
    <comment_count>3</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-02-22 05:58:09 -0800</bug_when>
    <thetext>The patch looks good to me in general, but I wonder whether this could be a good moment to try to unskip some tests that might be passing now thanks to the implementation of this missing functionality in EFL&apos;s DRT.

If that is possible, I would say it would be great to include that tests unskipping along with this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840281</commentid>
    <comment_count>4</comment_count>
      <attachid>189742</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-02-22 20:26:00 -0800</bug_when>
    <thetext>Comment on attachment 189742
Patch

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

Patch looks good to me overall.

&gt; Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp:814
&gt; +CString DumpRenderTreeSupportEfl::accessibilityHelpText(const AtkObject* axObject)

BTW, is there any reason to use CString instead of String ? DumpRenderTreeSupportEfl only exports String. So, I don&apos;t prefer to export new WebKit object for outer application.

&gt; Tools/DumpRenderTree/efl/AccessibilityUIElementEfl.cpp:4
&gt; + * Copyright (C) 2013 Samsung Electronics

Missing All Rights Reserved ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840825</commentid>
    <comment_count>5</comment_count>
      <attachid>190023</attachid>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2013-02-25 02:37:17 -0800</bug_when>
    <thetext>Created attachment 190023
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840828</commentid>
    <comment_count>6</comment_count>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2013-02-25 02:40:11 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; The patch looks good to me in general, but I wonder whether this could be a good moment to try to unskip some tests that might be passing now thanks to the implementation of this missing functionality in EFL&apos;s DRT.
&gt; 
&gt; If that is possible, I would say it would be great to include that tests unskipping along with this patch.
Sounds good. Unskipped LayoutTests/accessibility folder and skipping failure tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840832</commentid>
    <comment_count>7</comment_count>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2013-02-25 02:44:22 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 189742 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=189742&amp;action=review
&gt; 
&gt; Patch looks good to me overall.
&gt; 
&gt; &gt; Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp:814
&gt; &gt; +CString DumpRenderTreeSupportEfl::accessibilityHelpText(const AtkObject* axObject)
&gt; 
&gt; BTW, is there any reason to use CString instead of String ? DumpRenderTreeSupportEfl only exports String. So, I don&apos;t prefer to export new WebKit object for outer application.
&gt; 
I think, there is no any specific reason. I already updated it.
&gt; &gt; Tools/DumpRenderTree/efl/AccessibilityUIElementEfl.cpp:4
&gt; &gt; + * Copyright (C) 2013 Samsung Electronics
&gt; 
&gt; Missing All Rights Reserved ?
Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840833</commentid>
    <comment_count>8</comment_count>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2013-02-25 02:53:25 -0800</bug_when>
    <thetext>I&apos;m unskipping whole LayoutTests/accessibility folder and skipping failure tests.
Modified also DumpRenderTreeChrome file so that accessibilityController may look as a js object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841418</commentid>
    <comment_count>9</comment_count>
      <attachid>190023</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-02-25 16:41:42 -0800</bug_when>
    <thetext>Comment on attachment 190023
Patch

LGTM. But, GTK folks might wanna have final look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846447</commentid>
    <comment_count>10</comment_count>
      <attachid>190023</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-03-04 06:55:25 -0800</bug_when>
    <thetext>Comment on attachment 190023
Patch

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

The patch looks good to me overall. Just a comment on the change in the TestExpectations file, see it below

&gt; LayoutTests/ChangeLog:8
&gt; +        Unskipping LayoutTests/accessibility folder.

I think this is not 100% accurate, since you&apos;re unskipping the folder, but skipping some tests anyway in an individual basis.

Also, I wonder whether it would not be better for the EFL port to mark those tests as &quot;Failures&quot; instead of just skipping them, so you can easily realize when they start passing in the bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847651</commentid>
    <comment_count>11</comment_count>
      <attachid>191492</attachid>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2013-03-05 07:05:50 -0800</bug_when>
    <thetext>Created attachment 191492
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847654</commentid>
    <comment_count>12</comment_count>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2013-03-05 07:08:57 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 190023 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=190023&amp;action=review
&gt; 
&gt; The patch looks good to me overall. Just a comment on the change in the TestExpectations file, see it below
&gt; 
&gt; &gt; LayoutTests/ChangeLog:8
&gt; &gt; +        Unskipping LayoutTests/accessibility folder.
&gt; 
&gt; I think this is not 100% accurate, since you&apos;re unskipping the folder, but skipping some tests anyway in an individual basis.
Yes, it may sound inaccurate.
&gt; 
&gt; Also, I wonder whether it would not be better for the EFL port to mark those tests as &quot;Failures&quot; instead of just skipping them, so you can easily realize when they start passing in the bots.
Sounds good.
I added failure ones and skipped only those with missing expected results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847710</commentid>
    <comment_count>13</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-03-05 08:35:09 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; Created an attachment (id=191492) [details]
&gt; Patch

Thanks for considering my comments. I have no other objections</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848418</commentid>
    <comment_count>14</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-03-05 20:17:03 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #11)
&gt; &gt; Created an attachment (id=191492) [details] [details]
&gt; &gt; Patch
&gt; 
&gt; Thanks for considering my comments. I have no other objections

If there is no objection by today, I&apos;d like to land this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849526</commentid>
    <comment_count>15</comment_count>
      <attachid>191492</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-06 17:29:55 -0800</bug_when>
    <thetext>Comment on attachment 191492
Patch

Clearing flags on attachment: 191492

Committed r145014: &lt;http://trac.webkit.org/changeset/145014&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849527</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-06 17:29:59 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189742</attachid>
            <date>2013-02-22 03:52:08 -0800</date>
            <delta_ts>2013-02-25 02:37:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>a11y-drt-missing-implementation.patch</filename>
            <type>text/plain</type>
            <size>15210</size>
            <attacher name="Krzysztof Czech">k.czech</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCAxOWQ3ZGY5Li5iYjVkZWYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTMtMDItMjEgIEtyenlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ft
c3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gTWlzc2luZyBpbXBsZW1lbnRhdGlvbiBvZiBBY2Nl
c3NpYmlsaXR5Q29udHJvbGxlckVmbCBhbmQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudEVmbCBmaWxl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwNTg0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBz
dXBwb3J0IGZvciBoZWxwIHRleHQgaW4gRHVtcFJlbmRlclRyZWUuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwOgorICAgICAgICAoRHVtcFJl
bmRlclRyZWVTdXBwb3J0RWZsOjphY2Nlc3NpYmlsaXR5SGVscFRleHQpOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oOgorCiAyMDEzLTAyLTE5ICBU
b255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ29udmVydCAzIHNldHRp
bmdzIHRvIHVzZSBTZXR0aW5ncy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKaW5kZXggOGJi
NDg2ZC4uMTBmMDFiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCkBAIC04MTEsNiArODEx
LDE4IEBAIGludCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6Om51bWJlck9mUGVuZGluZ0dlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKGNvbnN0CiB9CiAKICNpZiBIQVZFKEFDQ0VTU0lCSUxJ
VFkpCitDU3RyaW5nIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6YWNjZXNzaWJpbGl0eUhlbHBU
ZXh0KGNvbnN0IEF0a09iamVjdCogYXhPYmplY3QpCit7CisgICAgaWYgKCFheE9iamVjdCB8fCAh
V0VCS0lUX0lTX0FDQ0VTU0lCTEUoYXhPYmplY3QpKQorICAgICAgICByZXR1cm4gQ1N0cmluZygp
OworCisgICAgV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdCogY29yZU9iamVjdCA9IHdlYmtp
dEFjY2Vzc2libGVHZXRBY2Nlc3NpYmlsaXR5T2JqZWN0KFdFQktJVF9BQ0NFU1NJQkxFKGF4T2Jq
ZWN0KSk7CisgICAgaWYgKCFjb3JlT2JqZWN0KQorICAgICAgICByZXR1cm4gQ1N0cmluZygpOwor
CisgICAgcmV0dXJuIGNvcmVPYmplY3QtPmhlbHBUZXh0KCkudXRmOCgpOworfQorCiBBdGtPYmpl
Y3QqIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6cm9vdEFjY2Vzc2libGVFbGVtZW50KGNvbnN0
IEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKIHsKICAgICBEUlRfU1VQUE9SVF9GUkFNRV9HRVRfT1Jf
UkVUVVJOKGV3a0ZyYW1lLCBmcmFtZSwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaCBiL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCmluZGV4IGU5
MjUwNTcuLjI3Y2Y3YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCkBAIC0zMiw2ICszMiw3IEBA
CiAKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCiAjaW5jbHVkZSA8YXRrL2F0ay5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNlbmRpZgogCiB0eXBlZGVmIHN0cnVjdCBfRXdrX0hp
c3RvcnlfSXRlbSBFd2tfSGlzdG9yeV9JdGVtOwpAQCAtMTMzLDYgKzEzNCw3IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgaW50IG51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RzKGNvbnN0IEV2YXNfT2JqZWN0Kik7CiAKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisgICAg
c3RhdGljIFdURjo6Q1N0cmluZyBhY2Nlc3NpYmlsaXR5SGVscFRleHQoY29uc3QgQXRrT2JqZWN0
KiBheE9iamVjdCk7CiAgICAgc3RhdGljIEF0a09iamVjdCogZm9jdXNlZEFjY2Vzc2libGVFbGVt
ZW50KGNvbnN0IEV2YXNfT2JqZWN0Kik7CiAgICAgc3RhdGljIEF0a09iamVjdCogcm9vdEFjY2Vz
c2libGVFbGVtZW50KGNvbnN0IEV2YXNfT2JqZWN0Kik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5NmExYWM0Li45YTYyMWNlIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjcgQEAKKzIwMTMtMDItMjEgIEtyenlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5j
b20+CisKKyAgICAgICAgW0VGTF0gTWlzc2luZyBpbXBsZW1lbnRhdGlvbiBvZiBBY2Nlc3NpYmls
aXR5Q29udHJvbGxlckVmbCBhbmQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudEVmbCBmaWxlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwNTg0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBtaXNzaW5n
IGltcGxlbWVudGF0aW9uIG9mIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyRWZsCisgICAgICAgIGFu
ZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50RWZsIGZpbGVzLgorCisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlD
b250cm9sbGVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9hdGsvQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXJBdGsuY3BwOgorICAgICAgICAoQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmNoaWxk
RWxlbWVudEJ5SWQpOiBNb3ZlZCBkZWNsYXJhdGlvbiB0byBiYXNlIGNsYXNzLgorICAgICAgICBJ
bXBsZW1lbnRhdGlvbiBjYW4gYmUgc2hhcmVkIGFtb25nIG90aGVyIHBvcnRzLgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2VmbC9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckVmbC5jcHA6IEFkZGVk
LgorICAgICAgICAoQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmZvY3VzZWRFbGVtZW50KToKKyAg
ICAgICAgKEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpyb290RWxlbWVudCk6CisgICAgICAgIChB
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6YWNjZXNzaWJsZUVsZW1lbnRCeUlkKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9lZmwvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEVmbC5jcHA6IEFkZGVk
LgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGVscFRleHQpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2VmbC9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9ndGsvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJHdGsuY3BwOgorCiAyMDEzLTAyLTIxICBE
aXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0g
c3VwcG9ydCB0aGUgbHVjaWQgdmVyc2lvbiBvZiBmcmVldHlwZSBvbiBwcmVjaXNlIGluIERSVApk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
aCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgKaW5kZXgg
YTZjZGM0Ni4uMWJiMDY2ZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5oCkBAIC0zNCw2ICszNCw5IEBACiAjaWYgUExBVEZPUk0oV0lOKQogI2lu
Y2x1ZGUgPHdpbmRvd3MuaD4KICNlbmRpZgorI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgKFBM
QVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZMKSkKKyNpbmNsdWRlIDxhdGsvYXRrLmg+CisjZW5k
aWYKIAogY2xhc3MgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIgewogcHVibGljOgpAQCAtNjUsNiAr
NjgsMTAgQEAgcHVibGljOgogICAgIHZvaWQgd2luTm90aWZpY2F0aW9uUmVjZWl2ZWQoUGxhdGZv
cm1VSUVsZW1lbnQsIGNvbnN0IHN0ZDo6c3RyaW5nJiBldmVudE5hbWUpOwogI2VuZGlmCiAKKyNp
ZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkp
CisgICAgQXRrT2JqZWN0KiBjaGlsZEVsZW1lbnRCeUlkKEF0a09iamVjdCogcGFyZW50LCBjb25z
dCBjaGFyKiBpZCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBzdGF0aWMgSlNDbGFzc1JlZiBn
ZXRKU0NsYXNzKCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnQuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQuaAppbmRleCBkNDFjZWY1Li4yMzAwMGRhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHR5cGVkZWYgc3Ry
dWN0IG9iamNfb2JqZWN0KiBQbGF0Zm9ybVVJRWxlbWVudDsKICNpbmNsdWRlIDxvbGVhY2MuaD4K
IAogdHlwZWRlZiBDT01QdHI8SUFjY2Vzc2libGU+IFBsYXRmb3JtVUlFbGVtZW50OwotI2VsaWYg
UExBVEZPUk0oR1RLKQorI2VsaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiAoUExBVEZPUk0oR1RL
KSB8fCBQTEFURk9STShFRkwpKQogI2luY2x1ZGUgPGF0ay9hdGsuaD4KIHR5cGVkZWYgQXRrT2Jq
ZWN0KiBQbGF0Zm9ybVVJRWxlbWVudDsKICNlbHNlCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9hdGsvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJBdGsuY3BwIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvYXRrL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQXRrLmNwcAppbmRleCAwNTEwMzE5
Li5mYWVjZmQwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9hdGsvQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXJBdGsuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2F0ay9BY2Nl
c3NpYmlsaXR5Q29udHJvbGxlckF0ay5jcHAKQEAgLTg4LDQgKzg4LDI5IEBAIHZvaWQgQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXI6OnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCkKIHsKIH0KIAor
QXRrT2JqZWN0KiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6Y2hpbGRFbGVtZW50QnlJZChBdGtP
YmplY3QqIHBhcmVudCwgY29uc3QgY2hhciogaWQpCit7CisgICAgaWYgKCFBVEtfSVNfT0JKRUNU
KHBhcmVudCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgQXRrQXR0cmlidXRlU2V0KiBhdHRy
aWJ1dGVTZXQgPSBhdGtfb2JqZWN0X2dldF9hdHRyaWJ1dGVzKHBhcmVudCk7CisgICAgZm9yIChH
U0xpc3QqIGF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVTZXQ7IGF0dHJpYnV0ZXM7IGF0dHJpYnV0ZXMg
PSBhdHRyaWJ1dGVzLT5uZXh0KSB7CisgICAgICAgIEF0a0F0dHJpYnV0ZSogYXR0cmlidXRlID0g
c3RhdGljX2Nhc3Q8QXRrQXR0cmlidXRlKj4oYXR0cmlidXRlcy0+ZGF0YSk7CisgICAgICAgIGlm
ICghc3RyY21wKGF0dHJpYnV0ZS0+bmFtZSwgImh0bWwtaWQiKSkgeworICAgICAgICAgICAgaWYg
KCFzdHJjbXAoYXR0cmlidXRlLT52YWx1ZSwgaWQpKQorICAgICAgICAgICAgICAgIHJldHVybiBw
YXJlbnQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGludCBj
aGlsZENvdW50ID0gYXRrX29iamVjdF9nZXRfbl9hY2Nlc3NpYmxlX2NoaWxkcmVuKHBhcmVudCk7
CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjaGlsZENvdW50OyBpKyspIHsKKyAgICAgICAgQXRr
T2JqZWN0KiByZXN1bHQgPSBjaGlsZEVsZW1lbnRCeUlkKGF0a19vYmplY3RfcmVmX2FjY2Vzc2li
bGVfY2hpbGQocGFyZW50LCBpKSwgaWQpOworICAgICAgICBpZiAoQVRLX0lTX09CSkVDVChyZXN1
bHQpKQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICByZXR1cm4gMDsK
K30KKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXJFZmwuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0FjY2Vz
c2liaWxpdHlDb250cm9sbGVyRWZsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5iODJkNjRhCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZs
L0FjY2Vzc2liaWxpdHlDb250cm9sbGVyRWZsLmNwcApAQCAtMCwwICsxLDc3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSBKYW4gTWljaGFlbCBBbG9uem8KKyAqIENvcHly
aWdodCAoQykgMjAxMyBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBY2Nl
c3NpYmlsaXR5Q29udHJvbGxlci5oIgorCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorCisjaW5j
bHVkZSAiQWNjZXNzaWJpbGl0eUNhbGxiYWNrcy5oIgorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuaCIKKyNpbmNsdWRlICJEdW1wUmVuZGVyVHJlZS5oIgorI2luY2x1ZGUgIkR1bXBS
ZW5kZXJUcmVlQ2hyb21lLmgiCisjaW5jbHVkZSAiV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0RWZsLmgiCisKKyNpbmNsdWRlIDxhdGsvYXRrLmg+CisjaW5jbHVkZSA8d3RmL2dv
YmplY3QvR093blB0ci5oPgorCitBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IEFjY2Vzc2liaWxpdHlD
b250cm9sbGVyOjpmb2N1c2VkRWxlbWVudCgpCit7CisgICAgQXRrT2JqZWN0KiBhY2Nlc3NpYmxl
ID0gIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6Zm9jdXNlZEFjY2Vzc2libGVFbGVtZW50KGJy
b3dzZXItPm1haW5GcmFtZSgpKTsKKyAgICBpZiAoIWFjY2Vzc2libGUpCisgICAgICAgIHJldHVy
biAwOworCisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQoYWNjZXNzaWJsZSk7Cit9
CisKK0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnJvb3RF
bGVtZW50KCkKK3sKKyAgICBBdGtPYmplY3QqIGFjY2Vzc2libGUgPSBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRFZmw6OnJvb3RBY2Nlc3NpYmxlRWxlbWVudChicm93c2VyLT5tYWluRnJhbWUoKSk7Cisg
ICAgaWYgKCFhY2Nlc3NpYmxlKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50KGFjY2Vzc2libGUpOworfQorCitBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjphY2Nlc3NpYmxlRWxlbWVudEJ5SWQoSlNTdHJp
bmdSZWYgaWQpCit7CisgICAgQXRrT2JqZWN0KiByb290ID0gRHVtcFJlbmRlclRyZWVTdXBwb3J0
RWZsOjpyb290QWNjZXNzaWJsZUVsZW1lbnQoYnJvd3Nlci0+bWFpbkZyYW1lKCkpOworICAgIGlm
ICghcm9vdCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBzaXplX3QgYnVmZmVyU2l6ZSA9IEpT
U3RyaW5nR2V0TWF4aW11bVVURjhDU3RyaW5nU2l6ZShpZCk7CisgICAgR093blB0cjxnY2hhcj4g
aWRCdWZmZXIoc3RhdGljX2Nhc3Q8Z2NoYXIqPihnX21hbGxvYyhidWZmZXJTaXplKSkpOworICAg
IEpTU3RyaW5nR2V0VVRGOENTdHJpbmcoaWQsIGlkQnVmZmVyLmdldCgpLCBidWZmZXJTaXplKTsK
KworICAgIEF0a09iamVjdCogcmVzdWx0ID0gY2hpbGRFbGVtZW50QnlJZChyb290LCBpZEJ1ZmZl
ci5nZXQoKSk7CisgICAgaWYgKEFUS19JU19PQkpFQ1QocmVzdWx0KSkKKyAgICAgICAgcmV0dXJu
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQocmVzdWx0KTsKKworICAgIHJldHVybiAwOworfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50RWZsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50RWZsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Njk1
Yjg0Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnRFZmwuY3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA5IEphbiBNaWNoYWVsIEFsb256bworICogQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcg
RWxlY3Ryb25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmgi
CisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisKKyNpbmNsdWRlICJXZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1N0
cmluZ1JlZi5oPgorI2luY2x1ZGUgPGF0ay9hdGsuaD4KKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9u
cy5oPgorI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ29i
amVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi91bmljb2RlL0NoYXJhY3Rlck5h
bWVzLmg+CisKK0pTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmhlbHBUZXh0KCkg
Y29uc3QKK3sKKyAgICBpZiAoIW1fZWxlbWVudCkKKyAgICAgICAgcmV0dXJuIEpTU3RyaW5nQ3Jl
YXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7CisKKyAgICBBU1NFUlQoQVRLX0lTX09CSkVDVChtX2Vs
ZW1lbnQpKTsKKworICAgIENTdHJpbmcgaGVscFRleHQgPSBEdW1wUmVuZGVyVHJlZVN1cHBvcnRF
Zmw6OmFjY2Vzc2liaWxpdHlIZWxwVGV4dChBVEtfT0JKRUNUKG1fZWxlbWVudCkpOworICAgIEdP
d25QdHI8Z2NoYXI+IGF4SGVscFRleHQoZ19zdHJkdXBfcHJpbnRmKCJBWEhlbHA6ICVzIiwgaGVs
cFRleHQuZGF0YSgpKSk7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KGF4SGVscFRleHQuZ2V0KCkpOworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2VmbC9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9D
TWFrZUxpc3RzLnR4dAppbmRleCA2N2Y5MDVkLi5iZWRhYTVjIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9lZmwvQ01ha2VMaXN0cy50eHQKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvZWZsL0NNYWtlTGlzdHMudHh0CkBAIC0xLDEyICsxLDE5IEBACiBzZXQoRHVtcFJlbmRlclRy
ZWVfU09VUkNFUwotICAgICR7VE9PTFNfRElSfS9EdW1wUmVuZGVyVHJlZS9hdGsvQWNjZXNzaWJp
bGl0eUNhbGxiYWNrc0F0ay5jcHAKKyAgICAke1RPT0xTX0RJUn0vRHVtcFJlbmRlclRyZWUvQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwCisgICAgJHtUT09MU19ESVJ9L0R1bXBSZW5kZXJUcmVl
L0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyLmNwcAorICAgICR7VE9PTFNfRElSfS9EdW1wUmVuZGVy
VHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAogICAgICR7VE9PTFNfRElSfS9EdW1wUmVu
ZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUNvbW1vbi5jcHAKICAgICAke1RPT0xTX0RJUn0vRHVtcFJl
bmRlclRyZWUvQ3ljbGljUmVkdW5kYW5jeUNoZWNrLmNwcAogICAgICR7VE9PTFNfRElSfS9EdW1w
UmVuZGVyVHJlZS9HQ0NvbnRyb2xsZXIuY3BwCiAgICAgJHtUT09MU19ESVJ9L0R1bXBSZW5kZXJU
cmVlL1Rlc3RSdW5uZXIuY3BwCiAgICAgJHtUT09MU19ESVJ9L0R1bXBSZW5kZXJUcmVlL1BpeGVs
RHVtcFN1cHBvcnQuY3BwCiAgICAgJHtUT09MU19ESVJ9L0R1bXBSZW5kZXJUcmVlL1dvcmtRdWV1
ZS5jcHAKKyAgICAke1RPT0xTX0RJUn0vRHVtcFJlbmRlclRyZWUvYXRrL0FjY2Vzc2liaWxpdHlD
YWxsYmFja3NBdGsuY3BwCisgICAgJHtUT09MU19ESVJ9L0R1bXBSZW5kZXJUcmVlL2F0ay9BY2Nl
c3NpYmlsaXR5Q29udHJvbGxlckF0ay5jcHAKKyAgICAke1RPT0xTX0RJUn0vRHVtcFJlbmRlclRy
ZWUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCiAgICAgJHtUT09MU19ESVJ9L0R1
bXBSZW5kZXJUcmVlL2NhaXJvL1BpeGVsRHVtcFN1cHBvcnRDYWlyby5jcHAKKyAgICAke1RPT0xT
X0RJUn0vRHVtcFJlbmRlclRyZWUvZWZsL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyRWZsLmNwcAor
ICAgICR7VE9PTFNfRElSfS9EdW1wUmVuZGVyVHJlZS9lZmwvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dEVmbC5jcHAKICAgICAke1RPT0xTX0RJUn0vRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBIaXN0b3J5
SXRlbS5jcHAKICAgICAke1RPT0xTX0RJUn0vRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJU
cmVlLmNwcAogICAgICR7VE9PTFNfRElSfS9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRy
ZWVDaHJvbWUuY3BwCkBAIC0xMTUsNiArMTIyLDcgQEAgc2V0KER1bXBSZW5kZXJUcmVlX0lOQ0xV
REVfRElSRUNUT1JJRVMKIAogaWYgKEVOQUJMRV9BQ0NFU1NJQklMSVRZKQogICAgIGxpc3QoQVBQ
RU5EIER1bXBSZW5kZXJUcmVlX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAgICAgJHtUT09MU19E
SVJ9L0R1bXBSZW5kZXJUcmVlL2F0awogICAgICAgICAke0FUS19JTkNMVURFX0RJUlN9CiAgICAg
KQogICAgIGxpc3QoQVBQRU5EIER1bXBSZW5kZXJUcmVlX0xJQlJBUklFUwpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyR3RrLmNwcCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckd0ay5jcHAK
aW5kZXggODQ4YmFhMS4uZDg5YThkMiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Z3RrL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyR3RrLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9ndGsvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJHdGsuY3BwCkBAIC0zNywzMSArMzcsNiBA
QAogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXQuaD4KICNpbmNsdWRlIDx3dGYvZ29iamVjdC9HT3du
UHRyLmg+CiAKLXN0YXRpYyBBdGtPYmplY3QqIGNoaWxkRWxlbWVudEJ5SWQoQXRrT2JqZWN0KiBw
YXJlbnQsIGNvbnN0IGNoYXIqIGlkKQotewotICAgIGlmICghQVRLX0lTX09CSkVDVChwYXJlbnQp
KQotICAgICAgICByZXR1cm4gMDsKLQotICAgIEF0a0F0dHJpYnV0ZVNldCogYXR0cmlidXRlU2V0
ID0gYXRrX29iamVjdF9nZXRfYXR0cmlidXRlcyhwYXJlbnQpOwotICAgIGZvciAoR1NMaXN0KiBh
dHRyaWJ1dGVzID0gYXR0cmlidXRlU2V0OyBhdHRyaWJ1dGVzOyBhdHRyaWJ1dGVzID0gYXR0cmli
dXRlcy0+bmV4dCkgewotICAgICAgICBBdGtBdHRyaWJ1dGUqIGF0dHJpYnV0ZSA9IHN0YXRpY19j
YXN0PEF0a0F0dHJpYnV0ZSo+KGF0dHJpYnV0ZXMtPmRhdGEpOwotICAgICAgICBpZiAoIXN0cmNt
cChhdHRyaWJ1dGUtPm5hbWUsICJodG1sLWlkIikpIHsKLSAgICAgICAgICAgIGlmICghc3RyY21w
KGF0dHJpYnV0ZS0+dmFsdWUsIGlkKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gcGFyZW50Owot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpbnQgY2hpbGRDb3Vu
dCA9IGF0a19vYmplY3RfZ2V0X25fYWNjZXNzaWJsZV9jaGlsZHJlbihwYXJlbnQpOwotICAgIGZv
ciAoaW50IGkgPSAwOyBpIDwgY2hpbGRDb3VudDsgaSsrKSB7Ci0gICAgICAgIEF0a09iamVjdCog
cmVzdWx0ID0gY2hpbGRFbGVtZW50QnlJZChhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxk
KHBhcmVudCwgaSksIGlkKTsKLSAgICAgICAgaWYgKEFUS19JU19PQkpFQ1QocmVzdWx0KSkKLSAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotCi0gICAgcmV0dXJuIDA7Ci19Ci0KIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmZvY3VzZWRFbGVt
ZW50KCkKIHsKICAgICBBdGtPYmplY3QqIGFjY2Vzc2libGUgPSAgRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrOjpnZXRGb2N1c2VkQWNjZXNzaWJsZUVsZW1lbnQobWFpbkZyYW1lKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190023</attachid>
            <date>2013-02-25 02:37:17 -0800</date>
            <delta_ts>2013-03-05 07:05:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>a11y-drt-missing-implementation.patch</filename>
            <type>text/plain</type>
            <size>23375</size>
            <attacher name="Krzysztof Czech">k.czech</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiOGE4MWZhLi44YzBhOTViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMtMDIt
MjUgIEtyenlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VG
TF0gTWlzc2luZyBpbXBsZW1lbnRhdGlvbiBvZiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlckVmbCBh
bmQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudEVmbCBmaWxlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwNTg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVW5za2lwcGluZyBMYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5IGZvbGRlci4KKworICAgICAgICAqIHBsYXRmb3JtL2VmbC13azEvVGVzdEV4cGVjdGF0
aW9uczoKKwogMjAxMy0wMi0yMiAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBVbnJldmlld2VkIHRlc3RzIHJlYmFzZWxpbmUuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9lZmwtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOTRkNjE3OS4uNmRmYzky
N2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC13azEvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwtd2sxL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTEwOSw3ICsxMDksNzcgQEAgd2Via2l0Lm9yZy9iLzk5MTgzIHN2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC1kb20tc3RpdGNoVGlsZXMtYXQKIHdlYmtpdC5vcmcv
Yi85OTE4MyBzdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQtc3ZnZG9t
LXN0aXRjaFRpbGVzLXByb3AuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogIAogIyBUaGUgRUZM
IHBvcnQgaGFzIG5vIHN1cHBvcnQgZm9yIGFjY2Vzc2liaWxpdHkgZmVhdHVyZXMgaW4gd2sxCi1C
dWcoRUZMKSBhY2Nlc3NpYmlsaXR5IFsgU2tpcCBdCisjIEJ1ZyhFRkwpIGFjY2Vzc2liaWxpdHkg
WyBTa2lwIF0KK2FjY2Vzc2liaWxpdHkvYWRqYWNlbnQtY29udGludWF0aW9ucy1jYXVzZS1hc3Nl
cnRpb24tZmFpbHVyZS5odG1sIFsgU2tpcCBdCithY2Nlc3NpYmlsaXR5L2FyaWEtY2hlY2tib3gt
c2VuZHMtbm90aWZpY2F0aW9uLmh0bWwgWyBTa2lwIF0KK2FjY2Vzc2liaWxpdHkvYXJpYS1jaGVj
a2JveC10ZXh0Lmh0bWwgWyBTa2lwIF0KK2FjY2Vzc2liaWxpdHkvYXJpYS1jb21ib2JveC5odG1s
IFsgU2tpcCBdCithY2Nlc3NpYmlsaXR5L2FyaWEtZmFsbGJhY2stcm9sZXMuaHRtbCBbIFNraXAg
XQorYWNjZXNzaWJpbGl0eS9hcmlhLWhpZGRlbi11cGRhdGVzLWFsbGRlc2NlbmRhbnRzLmh0bWwg
WyBTa2lwIF0KK2FjY2Vzc2liaWxpdHkvYXJpYS1pbnZhbGlkLmh0bWwgWyBTa2lwIF0KK2FjY2Vz
c2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LW92ZXJyaWRlcy1hcmlhLWxhYmVsLmh0bWwgWyBTa2lw
IF0KK2FjY2Vzc2liaWxpdHkvYXJpYS1saW5rLXN1cHBvcnRzLXByZXNzLmh0bWwgWyBTa2lwIF0K
K2FjY2Vzc2liaWxpdHkvYXJpYS1tZW51YmFyLW1lbnVpdGVtcy5odG1sIFsgU2tpcCBdCithY2Nl
c3NpYmlsaXR5L2FyaWEtb3B0aW9uLXJvbGUuaHRtbCBbIFNraXAgXQorYWNjZXNzaWJpbGl0eS9h
cmlhLXJlYWRvbmx5Lmh0bWwgWyBTa2lwIF0KK2FjY2Vzc2liaWxpdHkvYXJpYS1yb2xlcy5odG1s
IFsgU2tpcCBdCithY2Nlc3NpYmlsaXR5L2FyaWEtc2Nyb2xsYmFyLXJvbGUuaHRtbCBbIFNraXAg
XQorYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlcy5odG1sIFsgU2tpcCBdCithY2Nlc3NpYmlsaXR5
L2FyaWEtdGV4dC1yb2xlLmh0bWwgWyBTa2lwIF0KK2FjY2Vzc2liaWxpdHkvYXJpYS10b2dnbGUt
YnV0dG9uLXdpdGgtdGl0bGUuaHRtbCBbIFNraXAgXQorYWNjZXNzaWJpbGl0eS9hcmlhLXVzZWQt
b24taW1hZ2UtbWFwcy5odG1sIFsgU2tpcCBdCithY2Nlc3NpYmlsaXR5L2J1dHRvbi1wcmVzcy1h
Y3Rpb24uaHRtbCBbIFNraXAgXQorYWNjZXNzaWJpbGl0eS9jYW52YXMtYWNjZXNzaWJpbGl0eW5v
ZGVvYmplY3QuaHRtbCBbIFNraXAgXQorYWNjZXNzaWJpbGl0eS9jYW52YXMtZGVzY3JpcHRpb24t
YW5kLXJvbGUuaHRtbCBbIFNraXAgXQorYWNjZXNzaWJpbGl0eS9jYW52YXMtZmFsbGJhY2stY29u
dGVudC0yLmh0bWwgWyBTa2lwIF0KK2FjY2Vzc2liaWxpdHkvY2FudmFzLWZhbGxiYWNrLWNvbnRl
bnQuaHRtbCBbIFNraXAgXQorYWNjZXNzaWJpbGl0eS9jb2xvci13ZWxsLmh0bWwgWyBTa2lwIF0K
K2FjY2Vzc2liaWxpdHkvZGVsZXRpbmctaWZyYW1lLWRlc3Ryb3lzLWF4Y2FjaGUuaHRtbCBbIFNr
aXAgXQorYWNjZXNzaWJpbGl0eS9kaXNhYmxlZC1jb250cm9scy1ub3QtZm9jdXNhYmxlLmh0bWwg
WyBTa2lwIF0KK2FjY2Vzc2liaWxpdHkvZGl2LXdpdGhpbi1hbmNob3JzLWNhdXNlcy1jcmFzaC5o
dG1sIFsgU2tpcCBdCithY2Nlc3NpYmlsaXR5L2hlYWRpbmctbGV2ZWwuaHRtbCBbIFNraXAgXQor
YWNjZXNzaWJpbGl0eS9pZ25vcmUtc3BhY2VyLWVsZW1lbnRzLmh0bWwgWyBTa2lwIF0KK2FjY2Vz
c2liaWxpdHkvaW1hZ2UtbGluay5odG1sIFsgU2tpcCBdCithY2Nlc3NpYmlsaXR5L2ltYWdlLW1h
cDEuaHRtbCBbIFNraXAgXQorYWNjZXNzaWJpbGl0eS9pbWFnZS1tYXAyLmh0bWwgWyBTa2lwIF0K
K2FjY2Vzc2liaWxpdHkvaW1nLWFsdC10YWctb25seS13aGl0ZXNwYWNlLmh0bWwgWyBTa2lwIF0K
K2FjY2Vzc2liaWxpdHkvaW1nLWZhbGxzYmFjay10by10aXRsZS5odG1sIFsgU2tpcCBdCithY2Nl
c3NpYmlsaXR5L2lubGluZS1jb250aW51YXRpb25zLmh0bWwgWyBTa2lwIF0KK2FjY2Vzc2liaWxp
dHkvaW50ZXJuYWwtbGluay1hbmNob3JzMi5odG1sIFsgU2tpcCBdCithY2Nlc3NpYmlsaXR5L2xl
Z2VuZC5odG1sIFsgU2tpcCBdCithY2Nlc3NpYmlsaXR5L2xpc3RzLmh0bWwgWyBTa2lwIF0KK2Fj
Y2Vzc2liaWxpdHkvbG9hZGluZy1pZnJhbWUtc2VuZHMtbm90aWZpY2F0aW9uLmh0bWwgWyBTa2lw
IF0KK2FjY2Vzc2liaWxpdHkvbG9hZGluZy1pZnJhbWUtdXBkYXRlcy1heHRyZWUuaHRtbCBbIFNr
aXAgXQorYWNjZXNzaWJpbGl0eS9tZWRpYS1lbGVtZW50Lmh0bWwgWyBTa2lwIF0KK2FjY2Vzc2li
aWxpdHkvbWVudS1saXN0LXNlbmRzLWNoYW5nZS1ub3RpZmljYXRpb24uaHRtbCBbIFNraXAgXQor
YWNjZXNzaWJpbGl0eS9tdWx0aXNlbGVjdC1saXN0LXJlcG9ydHMtYWN0aXZlLW9wdGlvbi5odG1s
IFsgU2tpcCBdCithY2Nlc3NpYmlsaXR5L25vdGlmaWNhdGlvbi1saXN0ZW5lcnMuaHRtbCBbIFNr
aXAgXQorYWNjZXNzaWJpbGl0eS9vbmNsaWNrLWhhbmRsZXJzLmh0bWwgWyBTa2lwIF0KK2FjY2Vz
c2liaWxpdHkvcGxhdGZvcm0tbmFtZS5odG1sIFsgU2tpcCBdCithY2Nlc3NpYmlsaXR5L3BsdWdp
bi5odG1sIFsgU2tpcCBdCithY2Nlc3NpYmlsaXR5L3JhZGlvLWJ1dHRvbi1ncm91cC1tZW1iZXJz
Lmh0bWwgWyBTa2lwIF0KK2FjY2Vzc2liaWxpdHkvc2VjdXJlLXRleHRmaWVsZC10aXRsZS11aS5o
dG1sIFsgU2tpcCBdCithY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1zdGF0ZXMuaHRtbCBbIFNraXAg
XQorYWNjZXNzaWJpbGl0eS9zcGluYnV0dG9uLXZhbHVlLmh0bWwgWyBTa2lwIF0KK2FjY2Vzc2li
aWxpdHkvc3ZnLWJvdW5kcy5odG1sIFsgU2tpcCBdCithY2Nlc3NpYmlsaXR5L3N2Zy1pbWFnZS5o
dG1sIFsgU2tpcCBdCithY2Nlc3NpYmlsaXR5L3N2Zy1yZW1vdGUtZWxlbWVudC5odG1sIFsgU2tp
cCBdCithY2Nlc3NpYmlsaXR5L3RhYmxlLWF0dHJpYnV0ZXMuaHRtbCBbIFNraXAgXQorYWNjZXNz
aWJpbGl0eS90YWJsZS1jZWxsLXNwYW5zLmh0bWwgWyBTa2lwIF0KK2FjY2Vzc2liaWxpdHkvdGFi
bGUtY2VsbHMuaHRtbCBbIFNraXAgXQorYWNjZXNzaWJpbGl0eS90YWJsZS1kZXRlY3Rpb24uaHRt
bCBbIFNraXAgXQorYWNjZXNzaWJpbGl0eS90YWJsZS1vbmUtY2VsbC5odG1sIFsgU2tpcCBdCith
Y2Nlc3NpYmlsaXR5L3RhYmxlLXNlY3Rpb25zLmh0bWwgWyBTa2lwIF0KK2FjY2Vzc2liaWxpdHkv
dGFibGUtd2l0aC1hcmlhLXJvbGUuaHRtbCBbIFNraXAgXQorYWNjZXNzaWJpbGl0eS90YWJsZS13
aXRoLXJ1bGVzLmh0bWwgWyBTa2lwIF0KK2FjY2Vzc2liaWxpdHkvdGV4dGFyZWEtaW5zZXJ0aW9u
LXBvaW50LWxpbmUtbnVtYmVyLmh0bWwgWyBTa2lwIF0KK2FjY2Vzc2liaWxpdHkvdGV4dGFyZWEt
bGluZS1mb3ItaW5kZXguaHRtbCBbIFNraXAgXQorYWNjZXNzaWJpbGl0eS90ZXh0YXJlYS1zZWxl
Y3RlZC10ZXh0LXJhbmdlLmh0bWwgWyBTa2lwIF0KK2FjY2Vzc2liaWxpdHkvdGV4dGJveC1yb2xl
LXJlcG9ydHMtc2VsZWN0aW9uLmh0bWwgWyBTa2lwIF0KK2FjY2Vzc2liaWxpdHkvdGgtYXMtdGl0
bGUtdWkuaHRtbCBbIFNraXAgXQorYWNjZXNzaWJpbGl0eS90aXRsZS11aS1lbGVtZW50LWNvcnJl
Y3RuZXNzLmh0bWwgWyBTa2lwIF0KK2FjY2Vzc2liaWxpdHkvdHJhbnNmb3JtZWQtZWxlbWVudC5o
dG1sIFsgU2tpcCBdCithY2Nlc3NpYmlsaXR5L3Zpc2libGUtZWxlbWVudHMuaHRtbCBbIFNraXAg
XQogCiAjIEZyYW1lIGZsYXR0ZW5pbmcgZG9lcyBub3Qgd29yayBwcm9wZXJseSBmb3IgRUZMIHBv
cnQKIEJ1ZyhFRkwpIGZhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvZnJhbWVzZXQtZmxhdHRlbmluZy1h
ZHZhbmNlZC5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggMTlkN2RmOS4uYTQ5
MTE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAyLTI1ICBLcnp5
c3p0b2YgQ3plY2ggIDxrLmN6ZWNoQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdIE1pc3Np
bmcgaW1wbGVtZW50YXRpb24gb2YgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJFZmwgYW5kIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnRFZmwgZmlsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExMDU4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZHMgc3VwcG9ydCBmb3IgaGVscCB0ZXh0IGluIER1bXBSZW5k
ZXJUcmVlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
RWZsLmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6YWNjZXNzaWJpbGl0
eUhlbHBUZXh0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRFZmwuaDoKKwogMjAxMy0wMi0xOSAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIENvbnZlcnQgMyBzZXR0aW5ncyB0byB1c2UgU2V0dGluZ3MuaW4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRFZmwuY3BwCmluZGV4IDhiYjQ4NmQuLmVkZGUzNzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0RWZsLmNwcApAQCAtODExLDYgKzgxMSwxOCBAQCBpbnQgRHVtcFJlbmRlclRyZWVTdXBwb3J0
RWZsOjpudW1iZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0cyhjb25zdAog
fQogCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorU3RyaW5nIER1bXBSZW5kZXJUcmVlU3VwcG9y
dEVmbDo6YWNjZXNzaWJpbGl0eUhlbHBUZXh0KGNvbnN0IEF0a09iamVjdCogYXhPYmplY3QpCit7
CisgICAgaWYgKCFheE9iamVjdCB8fCAhV0VCS0lUX0lTX0FDQ0VTU0lCTEUoYXhPYmplY3QpKQor
ICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisKKyAgICBXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBjb3JlT2JqZWN0ID0gd2Via2l0QWNjZXNzaWJsZUdldEFjY2Vzc2liaWxpdHlPYmplY3Qo
V0VCS0lUX0FDQ0VTU0lCTEUoYXhPYmplY3QpKTsKKyAgICBpZiAoIWNvcmVPYmplY3QpCisgICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKKworICAgIHJldHVybiBjb3JlT2JqZWN0LT5oZWxwVGV4dCgp
OworfQorCiBBdGtPYmplY3QqIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6cm9vdEFjY2Vzc2li
bGVFbGVtZW50KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKIHsKICAgICBEUlRfU1VQUE9S
VF9GUkFNRV9HRVRfT1JfUkVUVVJOKGV3a0ZyYW1lLCBmcmFtZSwgMCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwu
aCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEVmbC5oCmluZGV4IGU5MjUwNTcuLmYwZTNiNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCkBA
IC0xMzMsNiArMTMzLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBpbnQgbnVtYmVyT2ZQZW5kaW5n
R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdHMoY29uc3QgRXZhc19PYmplY3QqKTsKIAogI2lm
IEhBVkUoQUNDRVNTSUJJTElUWSkKKyAgICBzdGF0aWMgU3RyaW5nIGFjY2Vzc2liaWxpdHlIZWxw
VGV4dChjb25zdCBBdGtPYmplY3QqIGF4T2JqZWN0KTsKICAgICBzdGF0aWMgQXRrT2JqZWN0KiBm
b2N1c2VkQWNjZXNzaWJsZUVsZW1lbnQoY29uc3QgRXZhc19PYmplY3QqKTsKICAgICBzdGF0aWMg
QXRrT2JqZWN0KiByb290QWNjZXNzaWJsZUVsZW1lbnQoY29uc3QgRXZhc19PYmplY3QqKTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDk2YTFhYzQuLmQwNmJlNmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxMy0wMi0yNSAgS3J6eXN6dG9mIEN6ZWNo
ICA8ay5jemVjaEBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBNaXNzaW5nIGltcGxlbWVu
dGF0aW9uIG9mIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyRWZsIGFuZCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50RWZsIGZpbGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMTA1ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGRzIG1pc3NpbmcgaW1wbGVtZW50YXRpb24gb2YgQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXJFZmwKKyAgICAgICAgYW5kIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRFZmwgZmlsZXMuIE1v
ZGlmeSBEdW1wUmVuZGVyVHJlZUNocm9tZQorICAgICAgICBzbyB0aGF0IGl0IGNhbiBtYWtlIGFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyIGFzIGEganMgb2JqZWN0LgorCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKEFjY2Vzc2liaWxp
dHlDb250cm9sbGVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Lmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvYXRrL0FjY2Vzc2liaWxpdHlDb250
cm9sbGVyQXRrLmNwcDoKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpjaGlsZEVs
ZW1lbnRCeUlkKTogTW92ZWQgZGVjbGFyYXRpb24gdG8gYmFzZSBjbGFzcy4KKyAgICAgICAgSW1w
bGVtZW50YXRpb24gY2FuIGJlIHNoYXJlZCBhbW9uZyBvdGhlciBwb3J0cy4KKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9lZmwvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJFZmwuY3BwOiBDb3BpZWQg
ZnJvbSBUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJHdGsu
Y3BwLgorICAgICAgICAoQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmZvY3VzZWRFbGVtZW50KToK
KyAgICAgICAgKEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpyb290RWxlbWVudCk6CisgICAgICAg
IChBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6YWNjZXNzaWJsZUVsZW1lbnRCeUlkKToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEVmbC5jcHA6IENv
cGllZCBmcm9tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2F0ay9BY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ckF0ay5jcHAuCisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpoZWxwVGV4dCk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHA6CisgICAgICAgIChEdW1w
UmVuZGVyVHJlZUNocm9tZTo6RHVtcFJlbmRlclRyZWVDaHJvbWUpOgorICAgICAgICAoRHVtcFJl
bmRlclRyZWVDaHJvbWU6OnJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAg
ICAoRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uV2luZG93T2JqZWN0Q2xlYXJlZCk6CisgICAgICAg
IChEdW1wUmVuZGVyVHJlZUNocm9tZTo6YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5oOgorICAgICAgICAo
RHVtcFJlbmRlclRyZWVDaHJvbWUpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9BY2Nl
c3NpYmlsaXR5Q29udHJvbGxlckd0ay5jcHA6CisKIDIwMTMtMDItMjEgIERpcmsgUHJhbmtlICA8
ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBzdXBwb3J0IHRoZSBs
dWNpZCB2ZXJzaW9uIG9mIGZyZWV0eXBlIG9uIHByZWNpc2UgaW4gRFJUCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAppbmRleCBhNmNkYzQ2Li4xYmIw
NjZmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmgKQEAgLTM0LDYgKzM0LDkgQEAKICNpZiBQTEFURk9STShXSU4pCiAjaW5jbHVkZSA8d2luZG93
cy5oPgogI2VuZGlmCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiAoUExBVEZPUk0oR1RLKSB8
fCBQTEFURk9STShFRkwpKQorI2luY2x1ZGUgPGF0ay9hdGsuaD4KKyNlbmRpZgogCiBjbGFzcyBB
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlciB7CiBwdWJsaWM6CkBAIC02NSw2ICs2OCwxMCBAQCBwdWJs
aWM6CiAgICAgdm9pZCB3aW5Ob3RpZmljYXRpb25SZWNlaXZlZChQbGF0Zm9ybVVJRWxlbWVudCwg
Y29uc3Qgc3RkOjpzdHJpbmcmIGV2ZW50TmFtZSk7CiAjZW5kaWYKIAorI2lmIEhBVkUoQUNDRVNT
SUJJTElUWSkgJiYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZMKSkKKyAgICBBdGtPYmpl
Y3QqIGNoaWxkRWxlbWVudEJ5SWQoQXRrT2JqZWN0KiBwYXJlbnQsIGNvbnN0IGNoYXIqIGlkKTsK
KyNlbmRpZgorCiBwcml2YXRlOgogICAgIHN0YXRpYyBKU0NsYXNzUmVmIGdldEpTQ2xhc3MoKTsK
IApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCmluZGV4
IGQ0MWNlZjUuLjIzMDAwZGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnQuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qgb2JqY19vYmpl
Y3QqIFBsYXRmb3JtVUlFbGVtZW50OwogI2luY2x1ZGUgPG9sZWFjYy5oPgogCiB0eXBlZGVmIENP
TVB0cjxJQWNjZXNzaWJsZT4gUGxhdGZvcm1VSUVsZW1lbnQ7Ci0jZWxpZiBQTEFURk9STShHVEsp
CisjZWxpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIChQTEFURk9STShHVEspIHx8IFBMQVRGT1JN
KEVGTCkpCiAjaW5jbHVkZSA8YXRrL2F0ay5oPgogdHlwZWRlZiBBdGtPYmplY3QqIFBsYXRmb3Jt
VUlFbGVtZW50OwogI2Vsc2UKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2F0ay9B
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlckF0ay5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9hdGsv
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJBdGsuY3BwCmluZGV4IDA1MTAzMTkuLmZhZWNmZDAgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2F0ay9BY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ckF0ay5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYXRrL0FjY2Vzc2liaWxpdHlDb250
cm9sbGVyQXRrLmNwcApAQCAtODgsNCArODgsMjkgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcjo6cmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKQogewogfQogCitBdGtPYmplY3QqIEFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyOjpjaGlsZEVsZW1lbnRCeUlkKEF0a09iamVjdCogcGFyZW50
LCBjb25zdCBjaGFyKiBpZCkKK3sKKyAgICBpZiAoIUFUS19JU19PQkpFQ1QocGFyZW50KSkKKyAg
ICAgICAgcmV0dXJuIDA7CisKKyAgICBBdGtBdHRyaWJ1dGVTZXQqIGF0dHJpYnV0ZVNldCA9IGF0
a19vYmplY3RfZ2V0X2F0dHJpYnV0ZXMocGFyZW50KTsKKyAgICBmb3IgKEdTTGlzdCogYXR0cmli
dXRlcyA9IGF0dHJpYnV0ZVNldDsgYXR0cmlidXRlczsgYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXMt
Pm5leHQpIHsKKyAgICAgICAgQXRrQXR0cmlidXRlKiBhdHRyaWJ1dGUgPSBzdGF0aWNfY2FzdDxB
dGtBdHRyaWJ1dGUqPihhdHRyaWJ1dGVzLT5kYXRhKTsKKyAgICAgICAgaWYgKCFzdHJjbXAoYXR0
cmlidXRlLT5uYW1lLCAiaHRtbC1pZCIpKSB7CisgICAgICAgICAgICBpZiAoIXN0cmNtcChhdHRy
aWJ1dGUtPnZhbHVlLCBpZCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHBhcmVudDsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgaW50IGNoaWxkQ291bnQgPSBh
dGtfb2JqZWN0X2dldF9uX2FjY2Vzc2libGVfY2hpbGRyZW4ocGFyZW50KTsKKyAgICBmb3IgKGlu
dCBpID0gMDsgaSA8IGNoaWxkQ291bnQ7IGkrKykgeworICAgICAgICBBdGtPYmplY3QqIHJlc3Vs
dCA9IGNoaWxkRWxlbWVudEJ5SWQoYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChwYXJl
bnQsIGkpLCBpZCk7CisgICAgICAgIGlmIChBVEtfSVNfT0JKRUNUKHJlc3VsdCkpCisgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHJldHVybiAwOworfQorCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9BY2Nlc3NpYmlsaXR5Q29udHJv
bGxlckVmbC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXJFZmwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwMTJkYTYK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXJFZmwuY3BwCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA5IEphbiBNaWNoYWVsIEFsb256bworICogQ29weXJpZ2h0IChDKSAyMDEz
IFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJBY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oIgorCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZ
KQorCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eUNhbGxiYWNrcy5oIgorI2luY2x1ZGUgIkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQuaCIKKyNpbmNsdWRlICJEdW1wUmVuZGVyVHJlZS5oIgorI2luY2x1
ZGUgIkR1bXBSZW5kZXJUcmVlQ2hyb21lLmgiCisjaW5jbHVkZSAiV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0RWZsLmgiCisKKyNpbmNsdWRlIDxhdGsvYXRrLmg+CisjaW5jbHVk
ZSA8d3RmL2dvYmplY3QvR093blB0ci5oPgorCitBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IEFjY2Vz
c2liaWxpdHlDb250cm9sbGVyOjpmb2N1c2VkRWxlbWVudCgpCit7CisgICAgQXRrT2JqZWN0KiBh
Y2Nlc3NpYmxlID0gIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6Zm9jdXNlZEFjY2Vzc2libGVF
bGVtZW50KGJyb3dzZXItPm1haW5GcmFtZSgpKTsKKyAgICBpZiAoIWFjY2Vzc2libGUpCisgICAg
ICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQoYWNjZXNz
aWJsZSk7Cit9CisKK0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQgQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXI6OnJvb3RFbGVtZW50KCkKK3sKKyAgICBBdGtPYmplY3QqIGFjY2Vzc2libGUgPSBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRFZmw6OnJvb3RBY2Nlc3NpYmxlRWxlbWVudChicm93c2VyLT5tYWluRnJh
bWUoKSk7CisgICAgaWYgKCFhY2Nlc3NpYmxlKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJl
dHVybiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KGFjY2Vzc2libGUpOworfQorCitBY2Nlc3NpYmls
aXR5VUlFbGVtZW50IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjphY2Nlc3NpYmxlRWxlbWVudEJ5
SWQoSlNTdHJpbmdSZWYgaWQpCit7CisgICAgQXRrT2JqZWN0KiByb290ID0gRHVtcFJlbmRlclRy
ZWVTdXBwb3J0RWZsOjpyb290QWNjZXNzaWJsZUVsZW1lbnQoYnJvd3Nlci0+bWFpbkZyYW1lKCkp
OworICAgIGlmICghcm9vdCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBzaXplX3QgYnVmZmVy
U2l6ZSA9IEpTU3RyaW5nR2V0TWF4aW11bVVURjhDU3RyaW5nU2l6ZShpZCk7CisgICAgR093blB0
cjxnY2hhcj4gaWRCdWZmZXIoc3RhdGljX2Nhc3Q8Z2NoYXIqPihnX21hbGxvYyhidWZmZXJTaXpl
KSkpOworICAgIEpTU3RyaW5nR2V0VVRGOENTdHJpbmcoaWQsIGlkQnVmZmVyLmdldCgpLCBidWZm
ZXJTaXplKTsKKworICAgIEF0a09iamVjdCogcmVzdWx0ID0gY2hpbGRFbGVtZW50QnlJZChyb290
LCBpZEJ1ZmZlci5nZXQoKSk7CisgICAgaWYgKEFUS19JU19PQkpFQ1QocmVzdWx0KSkKKyAgICAg
ICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQocmVzdWx0KTsKKworICAgIHJldHVybiAw
OworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50RWZsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50RWZsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi45ZTExNWQ5Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZs
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRFZmwuY3BwCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA5IEphbiBNaWNoYWVsIEFsb256bworICogQ29weXJpZ2h0IChDKSAyMDEz
IFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oIgorCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZ
KQorCisjaW5jbHVkZSAiV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgi
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNTdHJpbmdSZWYuaD4KKyNpbmNsdWRlIDxhdGsv
YXRrLmg+CisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvZ29iamVj
dC9HT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi91bmljb2RlL0NoYXJhY3Rlck5h
bWVzLmg+CisKK0pTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmhlbHBUZXh0KCkg
Y29uc3QKK3sKKyAgICBpZiAoIW1fZWxlbWVudCkKKyAgICAgICAgcmV0dXJuIEpTU3RyaW5nQ3Jl
YXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7CisKKyAgICBBU1NFUlQoQVRLX0lTX09CSkVDVChtX2Vs
ZW1lbnQpKTsKKworICAgIFN0cmluZyBoZWxwVGV4dCA9IER1bXBSZW5kZXJUcmVlU3VwcG9ydEVm
bDo6YWNjZXNzaWJpbGl0eUhlbHBUZXh0KEFUS19PQkpFQ1QobV9lbGVtZW50KSk7CisgICAgR093
blB0cjxnY2hhcj4gYXhIZWxwVGV4dChnX3N0cmR1cF9wcmludGYoIkFYSGVscDogJXMiLCBoZWxw
VGV4dC51dGY4KCkuZGF0YSgpKSk7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKGF4SGVscFRleHQuZ2V0KCkpOworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2VmbC9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2VmbC9DTWFrZUxpc3RzLnR4dAppbmRleCA2N2Y5MDVkLi5iZWRhYTVjIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9lZmwvQ01ha2VMaXN0cy50eHQKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvZWZsL0NNYWtlTGlzdHMudHh0CkBAIC0xLDEyICsxLDE5IEBACiBzZXQoRHVtcFJl
bmRlclRyZWVfU09VUkNFUwotICAgICR7VE9PTFNfRElSfS9EdW1wUmVuZGVyVHJlZS9hdGsvQWNj
ZXNzaWJpbGl0eUNhbGxiYWNrc0F0ay5jcHAKKyAgICAke1RPT0xTX0RJUn0vRHVtcFJlbmRlclRy
ZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwCisgICAgJHtUT09MU19ESVJ9L0R1bXBSZW5k
ZXJUcmVlL0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyLmNwcAorICAgICR7VE9PTFNfRElSfS9EdW1w
UmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAogICAgICR7VE9PTFNfRElSfS9E
dW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUNvbW1vbi5jcHAKICAgICAke1RPT0xTX0RJUn0v
RHVtcFJlbmRlclRyZWUvQ3ljbGljUmVkdW5kYW5jeUNoZWNrLmNwcAogICAgICR7VE9PTFNfRElS
fS9EdW1wUmVuZGVyVHJlZS9HQ0NvbnRyb2xsZXIuY3BwCiAgICAgJHtUT09MU19ESVJ9L0R1bXBS
ZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCiAgICAgJHtUT09MU19ESVJ9L0R1bXBSZW5kZXJUcmVl
L1BpeGVsRHVtcFN1cHBvcnQuY3BwCiAgICAgJHtUT09MU19ESVJ9L0R1bXBSZW5kZXJUcmVlL1dv
cmtRdWV1ZS5jcHAKKyAgICAke1RPT0xTX0RJUn0vRHVtcFJlbmRlclRyZWUvYXRrL0FjY2Vzc2li
aWxpdHlDYWxsYmFja3NBdGsuY3BwCisgICAgJHtUT09MU19ESVJ9L0R1bXBSZW5kZXJUcmVlL2F0
ay9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckF0ay5jcHAKKyAgICAke1RPT0xTX0RJUn0vRHVtcFJl
bmRlclRyZWUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCiAgICAgJHtUT09MU19E
SVJ9L0R1bXBSZW5kZXJUcmVlL2NhaXJvL1BpeGVsRHVtcFN1cHBvcnRDYWlyby5jcHAKKyAgICAk
e1RPT0xTX0RJUn0vRHVtcFJlbmRlclRyZWUvZWZsL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyRWZs
LmNwcAorICAgICR7VE9PTFNfRElSfS9EdW1wUmVuZGVyVHJlZS9lZmwvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudEVmbC5jcHAKICAgICAke1RPT0xTX0RJUn0vRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBI
aXN0b3J5SXRlbS5jcHAKICAgICAke1RPT0xTX0RJUn0vRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBS
ZW5kZXJUcmVlLmNwcAogICAgICR7VE9PTFNfRElSfS9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJl
bmRlclRyZWVDaHJvbWUuY3BwCkBAIC0xMTUsNiArMTIyLDcgQEAgc2V0KER1bXBSZW5kZXJUcmVl
X0lOQ0xVREVfRElSRUNUT1JJRVMKIAogaWYgKEVOQUJMRV9BQ0NFU1NJQklMSVRZKQogICAgIGxp
c3QoQVBQRU5EIER1bXBSZW5kZXJUcmVlX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAgICAgJHtU
T09MU19ESVJ9L0R1bXBSZW5kZXJUcmVlL2F0awogICAgICAgICAke0FUS19JTkNMVURFX0RJUlN9
CiAgICAgKQogICAgIGxpc3QoQVBQRU5EIER1bXBSZW5kZXJUcmVlX0xJQlJBUklFUwpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKaW5kZXgg
ZTM3ODViMS4uZjg3ZWViMCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1
bXBSZW5kZXJUcmVlQ2hyb21lLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVt
cFJlbmRlclRyZWVDaHJvbWUuY3BwCkBAIC01MCw2ICs1MCwxMCBAQAogI2luY2x1ZGUgPHd0Zi9O
b3RGb3VuZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAorI2lmIEhB
VkUoQUNDRVNTSUJJTElUWSkKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oIgor
I2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBIYXNoTWFwPHVuc2lnbmVkIGxv
bmcsIENTdHJpbmc+IER1bXBSZW5kZXJUcmVlQ2hyb21lOjptX2R1bXBBc3NpZ25lZFVybHM7CkBA
IC03MCw2ICs3NCw3IEBAIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpEdW1wUmVuZGVyVHJlZUNocm9t
ZShFdmFzKiBldmFzKQogICAgICwgbV9tYWluRnJhbWUoMCkKICAgICAsIG1fZXZhcyhldmFzKQog
ICAgICwgbV9nY0NvbnRyb2xsZXIoYWRvcHRQdHIobmV3IEdDQ29udHJvbGxlcikpCisgICAgLCBt
X2F4Q29udHJvbGxlcihhZG9wdFB0cihuZXcgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpKQogewog
fQogCkBAIC0yOTcsNiArMzAyLDEwIEBAIHZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6OnJlc2V0
RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMoKQogCiAgICAgZXdrX3NlY3VyaXR5X3BvbGljeV93
aGl0ZWxpc3Rfb3JpZ2luX3Jlc2V0KCk7CiAKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisgICAg
YnJvd3Nlci0+YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIoKS0+cmVzZXRUb0NvbnNpc3RlbnRTdGF0
ZSgpOworI2VuZGlmCisKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmNsZWFyRnJhbWVO
YW1lKG1haW5GcmFtZSgpKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmNsZWFyT3Bl
bmVyKG1haW5GcmFtZSgpKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmNsZWFyVXNl
clNjcmlwdHMobWFpblZpZXcoKSk7CkBAIC00MzAsNiArNDM5LDExIEBAIHZvaWQgRHVtcFJlbmRl
clRyZWVDaHJvbWU6Om9uV2luZG93T2JqZWN0Q2xlYXJlZCh2b2lkKiB1c2VyRGF0YSwgRXZhc19P
YmplY3QqLCB2CiAgICAgSlNWYWx1ZVJlZiBleGNlcHRpb24gPSAwOwogICAgIEFTU0VSVChnVGVz
dFJ1bm5lcik7CiAKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisgICAgYnJvd3Nlci0+YWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIoKS0+bWFrZVdpbmRvd09iamVjdChvYmplY3RDbGVhcmVkSW5mby0+
Y29udGV4dCwgb2JqZWN0Q2xlYXJlZEluZm8tPndpbmRvd09iamVjdCwgJmV4Y2VwdGlvbik7Cisg
ICAgQVNTRVJUKCFleGNlcHRpb24pOworI2VuZGlmCisKICAgICBHQ0NvbnRyb2xsZXIqIGdjQ29u
dHJvbGxlciA9IHN0YXRpY19jYXN0PEdDQ29udHJvbGxlcio+KHVzZXJEYXRhKTsKICAgICBBU1NF
UlQoZ2NDb250cm9sbGVyKTsKIApAQCAtODUwLDMgKzg2NCw4IEBAIHZvaWQgRHVtcFJlbmRlclRy
ZWVDaHJvbWU6Om9uRG93bmxvYWRSZXF1ZXN0KHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2
ZW50SW5mCiAgCiAgICAgYnJvd3Nlci0+bV9leHRyYVZpZXdzLmFwcGVuZChuZXdWaWV3KTsKIH0K
KworQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIqIER1bXBSZW5kZXJUcmVlQ2hyb21lOjphY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYXhDb250cm9sbGVyLmdl
dCgpOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJU
cmVlQ2hyb21lLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJv
bWUuaAppbmRleCAxZmNjNTM0Li40Y2I1OTJiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuaApAQCAtMzgsNiArMzgsMTAgQEAKICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCisjaWYgSEFW
RShBQ0NFU1NJQklMSVRZKQorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgiCisj
ZW5kaWYKKwogY2xhc3MgRHVtcFJlbmRlclRyZWVDaHJvbWUgewogcHVibGljOgogICAgIH5EdW1w
UmVuZGVyVHJlZUNocm9tZSgpOwpAQCAtNjQsMTAgKzY4LDEyIEBAIHByaXZhdGU6CiAKICAgICBF
dmFzX09iamVjdCogY3JlYXRlVmlldygpIGNvbnN0OwogICAgIGJvb2wgaW5pdGlhbGl6ZSgpOwor
ICAgIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyKiBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpIGNv
bnN0OwogCiAgICAgRXZhc19PYmplY3QqIG1fbWFpbkZyYW1lOwogICAgIEV2YXNfT2JqZWN0KiBt
X21haW5WaWV3OwogICAgIEV2YXMqIG1fZXZhczsKKyAgICBPd25QdHI8QWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXI+IG1fYXhDb250cm9sbGVyOwogICAgIE93blB0cjxHQ0NvbnRyb2xsZXI+IG1fZ2ND
b250cm9sbGVyOwogICAgIFZlY3RvcjxFdmFzX09iamVjdCo+IG1fZXh0cmFWaWV3czsKICAgICBz
dGF0aWMgSGFzaE1hcDx1bnNpZ25lZCBsb25nLCBDU3RyaW5nPiBtX2R1bXBBc3NpZ25lZFVybHM7
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXJHdGsuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0FjY2Vzc2liaWxpdHlDb250
cm9sbGVyR3RrLmNwcAppbmRleCA4NDhiYWExLi5kODlhOGQyIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJHdGsuY3BwCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckd0ay5jcHAKQEAg
LTM3LDMxICszNyw2IEBACiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdC5oPgogI2luY2x1ZGUgPHd0
Zi9nb2JqZWN0L0dPd25QdHIuaD4KIAotc3RhdGljIEF0a09iamVjdCogY2hpbGRFbGVtZW50QnlJ
ZChBdGtPYmplY3QqIHBhcmVudCwgY29uc3QgY2hhciogaWQpCi17Ci0gICAgaWYgKCFBVEtfSVNf
T0JKRUNUKHBhcmVudCkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgQXRrQXR0cmlidXRlU2V0
KiBhdHRyaWJ1dGVTZXQgPSBhdGtfb2JqZWN0X2dldF9hdHRyaWJ1dGVzKHBhcmVudCk7Ci0gICAg
Zm9yIChHU0xpc3QqIGF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVTZXQ7IGF0dHJpYnV0ZXM7IGF0dHJp
YnV0ZXMgPSBhdHRyaWJ1dGVzLT5uZXh0KSB7Ci0gICAgICAgIEF0a0F0dHJpYnV0ZSogYXR0cmli
dXRlID0gc3RhdGljX2Nhc3Q8QXRrQXR0cmlidXRlKj4oYXR0cmlidXRlcy0+ZGF0YSk7Ci0gICAg
ICAgIGlmICghc3RyY21wKGF0dHJpYnV0ZS0+bmFtZSwgImh0bWwtaWQiKSkgewotICAgICAgICAg
ICAgaWYgKCFzdHJjbXAoYXR0cmlidXRlLT52YWx1ZSwgaWQpKQotICAgICAgICAgICAgICAgIHJl
dHVybiBwYXJlbnQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0KLQotICAg
IGludCBjaGlsZENvdW50ID0gYXRrX29iamVjdF9nZXRfbl9hY2Nlc3NpYmxlX2NoaWxkcmVuKHBh
cmVudCk7Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjaGlsZENvdW50OyBpKyspIHsKLSAgICAg
ICAgQXRrT2JqZWN0KiByZXN1bHQgPSBjaGlsZEVsZW1lbnRCeUlkKGF0a19vYmplY3RfcmVmX2Fj
Y2Vzc2libGVfY2hpbGQocGFyZW50LCBpKSwgaWQpOwotICAgICAgICBpZiAoQVRLX0lTX09CSkVD
VChyZXN1bHQpKQotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0KLSAgICByZXR1
cm4gMDsKLX0KLQogQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxl
cjo6Zm9jdXNlZEVsZW1lbnQoKQogewogICAgIEF0a09iamVjdCogYWNjZXNzaWJsZSA9ICBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGs6OmdldEZvY3VzZWRBY2Nlc3NpYmxlRWxlbWVudChtYWluRnJh
bWUpOwo=
</data>
<flag name="review"
          id="210610"
          type_id="1"
          status="+"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191492</attachid>
            <date>2013-03-05 07:05:50 -0800</date>
            <delta_ts>2013-03-06 17:29:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>a11y-drt-missing-implementation.patch</filename>
            <type>text/plain</type>
            <size>23614</size>
            <attacher name="Krzysztof Czech">k.czech</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiOGE4MWZhLi44OTEwYjhmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDIt
MjUgIEtyenlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VG
TF0gTWlzc2luZyBpbXBsZW1lbnRhdGlvbiBvZiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlckVmbCBh
bmQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudEVmbCBmaWxlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwNTg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
R3l1eW91bmcgS2ltLgorCisgICAgICAgIFVuc2tpcHBpbmcgTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eSBmb2xkZXIuCisgICAgICAgIEFkZGVkIGZhaWx1cmUgdGVzdHMuIFNraXBwaW5nIHRob3Nl
IHdpdGggbWlzc2luZyBleHBlY3RlZCByZXN1bHRzLgorCisgICAgICAgICogcGxhdGZvcm0vZWZs
LXdrMS9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDEzLTAyLTIyICBWc2V2b2xvZCBWbGFzb3YgIDx2
c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgdGVzdHMgcmViYXNlbGlu
ZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC13azEvVGVzdEV4cGVjdGF0
aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC13azEvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCA5NGQ2MTc5Li45OGRhZjczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwt
d2sxL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsLXdrMS9U
ZXN0RXhwZWN0YXRpb25zCkBAIC0xMDgsOCArMTA4LDc3IEBAIHdlYmtpdC5vcmcvYi85OTE4MyBz
dmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQtZG9tLWJhc2VGcmVxdWVu
Y3ktCiB3ZWJraXQub3JnL2IvOTkxODMgc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVR1cmJ1bGVu
Y2VFbGVtZW50LWRvbS1zdGl0Y2hUaWxlcy1hdHRyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0K
IHdlYmtpdC5vcmcvYi85OTE4MyBzdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFVHVyYnVsZW5jZUVs
ZW1lbnQtc3ZnZG9tLXN0aXRjaFRpbGVzLXByb3AuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQog
IAotIyBUaGUgRUZMIHBvcnQgaGFzIG5vIHN1cHBvcnQgZm9yIGFjY2Vzc2liaWxpdHkgZmVhdHVy
ZXMgaW4gd2sxCi1CdWcoRUZMKSBhY2Nlc3NpYmlsaXR5IFsgU2tpcCBdCithY2Nlc3NpYmlsaXR5
L2FyaWEtaGlkZGVuLXVwZGF0ZXMtYWxsZGVzY2VuZGFudHMuaHRtbCBbIEZhaWx1cmUgXQorYWNj
ZXNzaWJpbGl0eS9hcmlhLWludmFsaWQuaHRtbCBbIEZhaWx1cmUgXQorYWNjZXNzaWJpbGl0eS9h
cmlhLWxpbmstc3VwcG9ydHMtcHJlc3MuaHRtbCBbIEZhaWx1cmUgXQorYWNjZXNzaWJpbGl0eS9h
cmlhLXJlYWRvbmx5Lmh0bWwgWyBGYWlsdXJlIF0KK2FjY2Vzc2liaWxpdHkvYXJpYS1zY3JvbGxi
YXItcm9sZS5odG1sIFsgRmFpbHVyZSBdCithY2Nlc3NpYmlsaXR5L2FyaWEtdGV4dC1yb2xlLmh0
bWwgWyBGYWlsdXJlIF0KK2FjY2Vzc2liaWxpdHkvYXJpYS11c2VkLW9uLWltYWdlLW1hcHMuaHRt
bCBbIEZhaWx1cmUgXQorYWNjZXNzaWJpbGl0eS9idXR0b24tcHJlc3MtYWN0aW9uLmh0bWwgWyBG
YWlsdXJlIF0KK2FjY2Vzc2liaWxpdHkvY2FudmFzLWFjY2Vzc2liaWxpdHlub2Rlb2JqZWN0Lmh0
bWwgWyBGYWlsdXJlIF0KK2FjY2Vzc2liaWxpdHkvY2FudmFzLWZhbGxiYWNrLWNvbnRlbnQtMi5o
dG1sIFsgRmFpbHVyZSBdCithY2Nlc3NpYmlsaXR5L2NhbnZhcy1mYWxsYmFjay1jb250ZW50Lmh0
bWwgWyBGYWlsdXJlIF0KK2FjY2Vzc2liaWxpdHkvZGlzYWJsZWQtY29udHJvbHMtbm90LWZvY3Vz
YWJsZS5odG1sIFsgRmFpbHVyZSBdCithY2Nlc3NpYmlsaXR5L2hlYWRpbmctbGV2ZWwuaHRtbCBb
IEZhaWx1cmUgXQorYWNjZXNzaWJpbGl0eS9pZ25vcmUtc3BhY2VyLWVsZW1lbnRzLmh0bWwgWyBG
YWlsdXJlIF0KK2FjY2Vzc2liaWxpdHkvaW5saW5lLWNvbnRpbnVhdGlvbnMuaHRtbCBbIEZhaWx1
cmUgXQorYWNjZXNzaWJpbGl0eS9sb2FkaW5nLWlmcmFtZS1zZW5kcy1ub3RpZmljYXRpb24uaHRt
bCBbIEZhaWx1cmUgXQorYWNjZXNzaWJpbGl0eS9sb2FkaW5nLWlmcmFtZS11cGRhdGVzLWF4dHJl
ZS5odG1sIFsgRmFpbHVyZSBdCithY2Nlc3NpYmlsaXR5L29uY2xpY2staGFuZGxlcnMuaHRtbCBb
IEZhaWx1cmUgXQorYWNjZXNzaWJpbGl0eS9zZWN1cmUtdGV4dGZpZWxkLXRpdGxlLXVpLmh0bWwg
WyBGYWlsdXJlIF0KK2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXN0YXRlcy5odG1sIFsgRmFpbHVy
ZSBdCithY2Nlc3NpYmlsaXR5L3NwaW5idXR0b24tdmFsdWUuaHRtbCBbIEZhaWx1cmUgXQorYWNj
ZXNzaWJpbGl0eS9zdmctYm91bmRzLmh0bWwgWyBGYWlsdXJlIF0KK2FjY2Vzc2liaWxpdHkvc3Zn
LXJlbW90ZS1lbGVtZW50Lmh0bWwgWyBGYWlsdXJlIF0KK2FjY2Vzc2liaWxpdHkvdGV4dGFyZWEt
aW5zZXJ0aW9uLXBvaW50LWxpbmUtbnVtYmVyLmh0bWwgWyBGYWlsdXJlIF0KK2FjY2Vzc2liaWxp
dHkvdGV4dGFyZWEtbGluZS1mb3ItaW5kZXguaHRtbCBbIEZhaWx1cmUgXQorYWNjZXNzaWJpbGl0
eS90ZXh0YXJlYS1zZWxlY3RlZC10ZXh0LXJhbmdlLmh0bWwgWyBGYWlsdXJlIF0KK2FjY2Vzc2li
aWxpdHkvdGV4dGJveC1yb2xlLXJlcG9ydHMtc2VsZWN0aW9uLmh0bWwgWyBGYWlsdXJlIF0KK2Fj
Y2Vzc2liaWxpdHkvdGgtYXMtdGl0bGUtdWkuaHRtbCBbIEZhaWx1cmUgXQorYWNjZXNzaWJpbGl0
eS90aXRsZS11aS1lbGVtZW50LWNvcnJlY3RuZXNzLmh0bWwgWyBGYWlsdXJlIF0KK2FjY2Vzc2li
aWxpdHkvdHJhbnNmb3JtZWQtZWxlbWVudC5odG1sIFsgRmFpbHVyZSBdCithY2Nlc3NpYmlsaXR5
L3Zpc2libGUtZWxlbWVudHMuaHRtbCBbIEZhaWx1cmUgXQorCithY2Nlc3NpYmlsaXR5L2FkamFj
ZW50LWNvbnRpbnVhdGlvbnMtY2F1c2UtYXNzZXJ0aW9uLWZhaWx1cmUuaHRtbCBbIFNraXAgXQor
YWNjZXNzaWJpbGl0eS9hcmlhLWNoZWNrYm94LXNlbmRzLW5vdGlmaWNhdGlvbi5odG1sIFsgU2tp
cCBdCithY2Nlc3NpYmlsaXR5L2FyaWEtY2hlY2tib3gtdGV4dC5odG1sIFsgU2tpcCBdCithY2Nl
c3NpYmlsaXR5L2FyaWEtY29tYm9ib3guaHRtbCBbIFNraXAgXQorYWNjZXNzaWJpbGl0eS9hcmlh
LWZhbGxiYWNrLXJvbGVzLmh0bWwgWyBTa2lwIF0KK2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxl
ZGJ5LW92ZXJyaWRlcy1hcmlhLWxhYmVsLmh0bWwgWyBTa2lwIF0KK2FjY2Vzc2liaWxpdHkvYXJp
YS1tZW51YmFyLW1lbnVpdGVtcy5odG1sIFsgU2tpcCBdCithY2Nlc3NpYmlsaXR5L2FyaWEtb3B0
aW9uLXJvbGUuaHRtbCBbIFNraXAgXQorYWNjZXNzaWJpbGl0eS9hcmlhLXJvbGVzLmh0bWwgWyBT
a2lwIF0KK2FjY2Vzc2liaWxpdHkvYXJpYS10YWJsZXMuaHRtbCBbIFNraXAgXQorYWNjZXNzaWJp
bGl0eS9hcmlhLXRvZ2dsZS1idXR0b24td2l0aC10aXRsZS5odG1sIFsgU2tpcCBdCithY2Nlc3Np
YmlsaXR5L2NhbnZhcy1kZXNjcmlwdGlvbi1hbmQtcm9sZS5odG1sIFsgU2tpcCBdCithY2Nlc3Np
YmlsaXR5L2NvbG9yLXdlbGwuaHRtbCBbIFNraXAgXQorYWNjZXNzaWJpbGl0eS9kZWxldGluZy1p
ZnJhbWUtZGVzdHJveXMtYXhjYWNoZS5odG1sIFsgU2tpcCBdCithY2Nlc3NpYmlsaXR5L2Rpdi13
aXRoaW4tYW5jaG9ycy1jYXVzZXMtY3Jhc2guaHRtbCBbIFNraXAgXQorYWNjZXNzaWJpbGl0eS9p
bWFnZS1saW5rLmh0bWwgWyBTa2lwIF0KK2FjY2Vzc2liaWxpdHkvaW1hZ2UtbWFwMS5odG1sIFsg
U2tpcCBdCithY2Nlc3NpYmlsaXR5L2ltYWdlLW1hcDIuaHRtbCBbIFNraXAgXQorYWNjZXNzaWJp
bGl0eS9pbWctYWx0LXRhZy1vbmx5LXdoaXRlc3BhY2UuaHRtbCBbIFNraXAgXQorYWNjZXNzaWJp
bGl0eS9pbWctZmFsbHNiYWNrLXRvLXRpdGxlLmh0bWwgWyBTa2lwIF0KK2FjY2Vzc2liaWxpdHkv
aW50ZXJuYWwtbGluay1hbmNob3JzMi5odG1sIFsgU2tpcCBdCithY2Nlc3NpYmlsaXR5L2xlZ2Vu
ZC5odG1sIFsgU2tpcCBdCithY2Nlc3NpYmlsaXR5L2xpc3RzLmh0bWwgWyBTa2lwIF0KK2FjY2Vz
c2liaWxpdHkvbWVkaWEtZWxlbWVudC5odG1sIFsgU2tpcCBdCithY2Nlc3NpYmlsaXR5L21lbnUt
bGlzdC1zZW5kcy1jaGFuZ2Utbm90aWZpY2F0aW9uLmh0bWwgWyBTa2lwIF0KK2FjY2Vzc2liaWxp
dHkvbXVsdGlzZWxlY3QtbGlzdC1yZXBvcnRzLWFjdGl2ZS1vcHRpb24uaHRtbCBbIFNraXAgXQor
YWNjZXNzaWJpbGl0eS9ub3RpZmljYXRpb24tbGlzdGVuZXJzLmh0bWwgWyBTa2lwIF0KK2FjY2Vz
c2liaWxpdHkvcGxhdGZvcm0tbmFtZS5odG1sIFsgU2tpcCBdCithY2Nlc3NpYmlsaXR5L3BsdWdp
bi5odG1sIFsgU2tpcCBdCithY2Nlc3NpYmlsaXR5L3JhZGlvLWJ1dHRvbi1ncm91cC1tZW1iZXJz
Lmh0bWwgWyBTa2lwIF0KK2FjY2Vzc2liaWxpdHkvc3ZnLWltYWdlLmh0bWwgWyBTa2lwIF0KK2Fj
Y2Vzc2liaWxpdHkvdGFibGUtYXR0cmlidXRlcy5odG1sIFsgU2tpcCBdCithY2Nlc3NpYmlsaXR5
L3RhYmxlLWNlbGwtc3BhbnMuaHRtbCBbIFNraXAgXQorYWNjZXNzaWJpbGl0eS90YWJsZS1jZWxs
cy5odG1sIFsgU2tpcCBdCithY2Nlc3NpYmlsaXR5L3RhYmxlLWRldGVjdGlvbi5odG1sIFsgU2tp
cCBdCithY2Nlc3NpYmlsaXR5L3RhYmxlLW9uZS1jZWxsLmh0bWwgWyBTa2lwIF0KK2FjY2Vzc2li
aWxpdHkvdGFibGUtc2VjdGlvbnMuaHRtbCBbIFNraXAgXQorYWNjZXNzaWJpbGl0eS90YWJsZS13
aXRoLWFyaWEtcm9sZS5odG1sIFsgU2tpcCBdCithY2Nlc3NpYmlsaXR5L3RhYmxlLXdpdGgtcnVs
ZXMuaHRtbCBbIFNraXAgXQogCiAjIEZyYW1lIGZsYXR0ZW5pbmcgZG9lcyBub3Qgd29yayBwcm9w
ZXJseSBmb3IgRUZMIHBvcnQKIEJ1ZyhFRkwpIGZhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvZnJhbWVz
ZXQtZmxhdHRlbmluZy1hZHZhbmNlZC5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5k
ZXggMTlkN2RmOS4uOTkzYmQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDEzLTAyLTI1ICBLcnp5c3p0b2YgQ3plY2ggIDxrLmN6ZWNoQHNhbXN1bmcuY29tPgorCisgICAg
ICAgIFtFRkxdIE1pc3NpbmcgaW1wbGVtZW50YXRpb24gb2YgQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXJFZmwgYW5kIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRFZmwgZmlsZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDU4NAorCisgICAgICAgIFJldmll
d2VkIGJ5IEd5dXlvdW5nIEtpbS4KKworICAgICAgICBBZGRzIHN1cHBvcnQgZm9yIGhlbHAgdGV4
dCBpbiBEdW1wUmVuZGVyVHJlZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydEVmbC5jcHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6
OmFjY2Vzc2liaWxpdHlIZWxwVGV4dCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0RWZsLmg6CisKIDIwMTMtMDItMTkgIFRvbnkgQ2hhbmcgIDx0b255QGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBDb252ZXJ0IDMgc2V0dGluZ3MgdG8gdXNlIFNldHRpbmdz
LmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcAppbmRleCA4YmI0ODZkLi5lZGRlMzcyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKQEAgLTgxMSw2ICs4MTEsMTggQEAgaW50IER1bXBSZW5k
ZXJUcmVlU3VwcG9ydEVmbDo6bnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdHMoY29uc3QKIH0KIAogI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKK1N0cmluZyBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRFZmw6OmFjY2Vzc2liaWxpdHlIZWxwVGV4dChjb25zdCBBdGtPYmplY3Qq
IGF4T2JqZWN0KQoreworICAgIGlmICghYXhPYmplY3QgfHwgIVdFQktJVF9JU19BQ0NFU1NJQkxF
KGF4T2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworCisgICAgV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eU9iamVjdCogY29yZU9iamVjdCA9IHdlYmtpdEFjY2Vzc2libGVHZXRBY2Nlc3Np
YmlsaXR5T2JqZWN0KFdFQktJVF9BQ0NFU1NJQkxFKGF4T2JqZWN0KSk7CisgICAgaWYgKCFjb3Jl
T2JqZWN0KQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisKKyAgICByZXR1cm4gY29yZU9iamVj
dC0+aGVscFRleHQoKTsKK30KKwogQXRrT2JqZWN0KiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6
OnJvb3RBY2Nlc3NpYmxlRWxlbWVudChjb25zdCBFdmFzX09iamVjdCogZXdrRnJhbWUpCiB7CiAg
ICAgRFJUX1NVUFBPUlRfRlJBTUVfR0VUX09SX1JFVFVSTihld2tGcmFtZSwgZnJhbWUsIDApOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRFZmwuaAppbmRleCBlOTI1MDU3Li5mMGUzYjVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRFZmwuaApAQCAtMTMzLDYgKzEzMyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgaW50IG51
bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKGNvbnN0IEV2YXNfT2Jq
ZWN0Kik7CiAKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisgICAgc3RhdGljIFN0cmluZyBhY2Nl
c3NpYmlsaXR5SGVscFRleHQoY29uc3QgQXRrT2JqZWN0KiBheE9iamVjdCk7CiAgICAgc3RhdGlj
IEF0a09iamVjdCogZm9jdXNlZEFjY2Vzc2libGVFbGVtZW50KGNvbnN0IEV2YXNfT2JqZWN0Kik7
CiAgICAgc3RhdGljIEF0a09iamVjdCogcm9vdEFjY2Vzc2libGVFbGVtZW50KGNvbnN0IEV2YXNf
T2JqZWN0Kik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCA5NmExYWM0Li42ZThiOWRlIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTMtMDItMjUgIEty
enlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gTWlz
c2luZyBpbXBsZW1lbnRhdGlvbiBvZiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlckVmbCBhbmQgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudEVmbCBmaWxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwNTg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR3l1eW91
bmcgS2ltLgorCisgICAgICAgIEFkZHMgbWlzc2luZyBpbXBsZW1lbnRhdGlvbiBvZiBBY2Nlc3Np
YmlsaXR5Q29udHJvbGxlckVmbAorICAgICAgICBhbmQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudEVm
bCBmaWxlcy4gTW9kaWZ5IER1bXBSZW5kZXJUcmVlQ2hyb21lCisgICAgICAgIHNvIHRoYXQgaXQg
Y2FuIG1ha2UgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIgYXMgYSBqcyBvYmplY3QuCisKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oOgorICAgICAgICAo
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnQuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9hdGsvQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXJBdGsuY3BwOgorICAgICAgICAoQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXI6OmNoaWxkRWxlbWVudEJ5SWQpOiBNb3ZlZCBkZWNsYXJhdGlvbiB0byBiYXNlIGNsYXNzLgor
ICAgICAgICBJbXBsZW1lbnRhdGlvbiBjYW4gYmUgc2hhcmVkIGFtb25nIG90aGVyIHBvcnRzLgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckVmbC5j
cHA6IENvcGllZCBmcm9tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlckd0ay5jcHAuCisgICAgICAgIChBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6Zm9jdXNl
ZEVsZW1lbnQpOgorICAgICAgICAoQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnJvb3RFbGVtZW50
KToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjphY2Nlc3NpYmxlRWxlbWVudEJ5
SWQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
RWZsLmNwcDogQ29waWVkIGZyb20gVG9vbHMvRHVtcFJlbmRlclRyZWUvYXRrL0FjY2Vzc2liaWxp
dHlDb250cm9sbGVyQXRrLmNwcC4KKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omhl
bHBUZXh0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvQ01ha2VMaXN0cy50eHQ6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcDoKKyAg
ICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpEdW1wUmVuZGVyVHJlZUNocm9tZSk6CisgICAg
ICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6cmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVl
cyk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25XaW5kb3dPYmplY3RDbGVhcmVk
KToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjphY2Nlc3NpYmlsaXR5Q29udHJvbGxl
cik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmg6
CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZSk6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvZ3RrL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyR3RrLmNwcDoKKwogMjAxMy0wMi0yMSAgRGly
ayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIHN1
cHBvcnQgdGhlIGx1Y2lkIHZlcnNpb24gb2YgZnJlZXR5cGUgb24gcHJlY2lzZSBpbiBEUlQKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oCmluZGV4IGE2
Y2RjNDYuLjFiYjA2NmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuaApAQCAtMzQsNiArMzQsOSBAQAogI2lmIFBMQVRGT1JNKFdJTikKICNpbmNs
dWRlIDx3aW5kb3dzLmg+CiAjZW5kaWYKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIChQTEFU
Rk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkpCisjaW5jbHVkZSA8YXRrL2F0ay5oPgorI2VuZGlm
CiAKIGNsYXNzIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyIHsKIHB1YmxpYzoKQEAgLTY1LDYgKzY4
LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHdpbk5vdGlmaWNhdGlvblJlY2VpdmVkKFBsYXRmb3Jt
VUlFbGVtZW50LCBjb25zdCBzdGQ6OnN0cmluZyYgZXZlbnROYW1lKTsKICNlbmRpZgogCisjaWYg
SEFWRShBQ0NFU1NJQklMSVRZKSAmJiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpKQor
ICAgIEF0a09iamVjdCogY2hpbGRFbGVtZW50QnlJZChBdGtPYmplY3QqIHBhcmVudCwgY29uc3Qg
Y2hhciogaWQpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgc3RhdGljIEpTQ2xhc3NSZWYgZ2V0
SlNDbGFzcygpOwogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50LmgKaW5kZXggZDQxY2VmNS4uMjMwMDBkYSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCB0eXBlZGVmIHN0cnVj
dCBvYmpjX29iamVjdCogUGxhdGZvcm1VSUVsZW1lbnQ7CiAjaW5jbHVkZSA8b2xlYWNjLmg+CiAK
IHR5cGVkZWYgQ09NUHRyPElBY2Nlc3NpYmxlPiBQbGF0Zm9ybVVJRWxlbWVudDsKLSNlbGlmIFBM
QVRGT1JNKEdUSykKKyNlbGlmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgKFBMQVRGT1JNKEdUSykg
fHwgUExBVEZPUk0oRUZMKSkKICNpbmNsdWRlIDxhdGsvYXRrLmg+CiB0eXBlZGVmIEF0a09iamVj
dCogUGxhdGZvcm1VSUVsZW1lbnQ7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvYXRrL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQXRrLmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2F0ay9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckF0ay5jcHAKaW5kZXggMDUxMDMxOS4u
ZmFlY2ZkMCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYXRrL0FjY2Vzc2liaWxp
dHlDb250cm9sbGVyQXRrLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9hdGsvQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXJBdGsuY3BwCkBAIC04OCw0ICs4OCwyOSBAQCB2b2lkIEFjY2Vzc2li
aWxpdHlDb250cm9sbGVyOjpyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpCiB7CiB9CiAKK0F0
a09iamVjdCogQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmNoaWxkRWxlbWVudEJ5SWQoQXRrT2Jq
ZWN0KiBwYXJlbnQsIGNvbnN0IGNoYXIqIGlkKQoreworICAgIGlmICghQVRLX0lTX09CSkVDVChw
YXJlbnQpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIEF0a0F0dHJpYnV0ZVNldCogYXR0cmli
dXRlU2V0ID0gYXRrX29iamVjdF9nZXRfYXR0cmlidXRlcyhwYXJlbnQpOworICAgIGZvciAoR1NM
aXN0KiBhdHRyaWJ1dGVzID0gYXR0cmlidXRlU2V0OyBhdHRyaWJ1dGVzOyBhdHRyaWJ1dGVzID0g
YXR0cmlidXRlcy0+bmV4dCkgeworICAgICAgICBBdGtBdHRyaWJ1dGUqIGF0dHJpYnV0ZSA9IHN0
YXRpY19jYXN0PEF0a0F0dHJpYnV0ZSo+KGF0dHJpYnV0ZXMtPmRhdGEpOworICAgICAgICBpZiAo
IXN0cmNtcChhdHRyaWJ1dGUtPm5hbWUsICJodG1sLWlkIikpIHsKKyAgICAgICAgICAgIGlmICgh
c3RyY21wKGF0dHJpYnV0ZS0+dmFsdWUsIGlkKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gcGFy
ZW50OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpbnQgY2hp
bGRDb3VudCA9IGF0a19vYmplY3RfZ2V0X25fYWNjZXNzaWJsZV9jaGlsZHJlbihwYXJlbnQpOwor
ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2hpbGRDb3VudDsgaSsrKSB7CisgICAgICAgIEF0a09i
amVjdCogcmVzdWx0ID0gY2hpbGRFbGVtZW50QnlJZChhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxl
X2NoaWxkKHBhcmVudCwgaSksIGlkKTsKKyAgICAgICAgaWYgKEFUS19JU19PQkpFQ1QocmVzdWx0
KSkKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9
CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0FjY2Vzc2li
aWxpdHlDb250cm9sbGVyRWZsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9BY2Nlc3Np
YmlsaXR5Q29udHJvbGxlckVmbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uODAxMmRhNgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9B
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlckVmbC5jcHAKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgSmFuIE1pY2hhZWwgQWxvbnpvCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgiCisKKyNpZiBIQVZFKEFD
Q0VTU0lCSUxJVFkpCisKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5Q2FsbGJhY2tzLmgiCisjaW5j
bHVkZSAiQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oIgorI2luY2x1ZGUgIkR1bXBSZW5kZXJUcmVl
LmgiCisjaW5jbHVkZSAiRHVtcFJlbmRlclRyZWVDaHJvbWUuaCIKKyNpbmNsdWRlICJXZWJDb3Jl
U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaCIKKworI2luY2x1ZGUgPGF0ay9hdGsu
aD4KKyNpbmNsdWRlIDx3dGYvZ29iamVjdC9HT3duUHRyLmg+CisKK0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmZvY3VzZWRFbGVtZW50KCkKK3sKKyAgICBB
dGtPYmplY3QqIGFjY2Vzc2libGUgPSAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpmb2N1c2Vk
QWNjZXNzaWJsZUVsZW1lbnQoYnJvd3Nlci0+bWFpbkZyYW1lKCkpOworICAgIGlmICghYWNjZXNz
aWJsZSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudChhY2Nlc3NpYmxlKTsKK30KKworQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3NpYmls
aXR5Q29udHJvbGxlcjo6cm9vdEVsZW1lbnQoKQoreworICAgIEF0a09iamVjdCogYWNjZXNzaWJs
ZSA9IER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6cm9vdEFjY2Vzc2libGVFbGVtZW50KGJyb3dz
ZXItPm1haW5GcmFtZSgpKTsKKyAgICBpZiAoIWFjY2Vzc2libGUpCisgICAgICAgIHJldHVybiAw
OworCisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQoYWNjZXNzaWJsZSk7Cit9CisK
K0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmFjY2Vzc2li
bGVFbGVtZW50QnlJZChKU1N0cmluZ1JlZiBpZCkKK3sKKyAgICBBdGtPYmplY3QqIHJvb3QgPSBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnJvb3RBY2Nlc3NpYmxlRWxlbWVudChicm93c2VyLT5t
YWluRnJhbWUoKSk7CisgICAgaWYgKCFyb290KQorICAgICAgICByZXR1cm4gMDsKKworICAgIHNp
emVfdCBidWZmZXJTaXplID0gSlNTdHJpbmdHZXRNYXhpbXVtVVRGOENTdHJpbmdTaXplKGlkKTsK
KyAgICBHT3duUHRyPGdjaGFyPiBpZEJ1ZmZlcihzdGF0aWNfY2FzdDxnY2hhcio+KGdfbWFsbG9j
KGJ1ZmZlclNpemUpKSk7CisgICAgSlNTdHJpbmdHZXRVVEY4Q1N0cmluZyhpZCwgaWRCdWZmZXIu
Z2V0KCksIGJ1ZmZlclNpemUpOworCisgICAgQXRrT2JqZWN0KiByZXN1bHQgPSBjaGlsZEVsZW1l
bnRCeUlkKHJvb3QsIGlkQnVmZmVyLmdldCgpKTsKKyAgICBpZiAoQVRLX0lTX09CSkVDVChyZXN1
bHQpKQorICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudChyZXN1bHQpOworCisg
ICAgcmV0dXJuIDA7Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvZWZsL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRFZmwuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvZWZsL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRFZmwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjllMTE1ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9lZmwvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEVmbC5jcHAKQEAgLTAsMCArMSw1NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgSmFuIE1pY2hhZWwgQWxvbnpvCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgiCisKKyNpZiBIQVZFKEFD
Q0VTU0lCSUxJVFkpCisKKyNpbmNsdWRlICJXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRFZmwuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1N0cmluZ1JlZi5oPgorI2lu
Y2x1ZGUgPGF0ay9hdGsuaD4KKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUg
PHd0Zi9nb2JqZWN0L0dPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3VuaWNvZGUv
Q2hhcmFjdGVyTmFtZXMuaD4KKworSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aGVscFRleHQoKSBjb25zdAoreworICAgIGlmICghbV9lbGVtZW50KQorICAgICAgICByZXR1cm4g
SlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygwLCAwKTsKKworICAgIEFTU0VSVChBVEtfSVNf
T0JKRUNUKG1fZWxlbWVudCkpOworCisgICAgU3RyaW5nIGhlbHBUZXh0ID0gRHVtcFJlbmRlclRy
ZWVTdXBwb3J0RWZsOjphY2Nlc3NpYmlsaXR5SGVscFRleHQoQVRLX09CSkVDVChtX2VsZW1lbnQp
KTsKKyAgICBHT3duUHRyPGdjaGFyPiBheEhlbHBUZXh0KGdfc3RyZHVwX3ByaW50ZigiQVhIZWxw
OiAlcyIsIGhlbHBUZXh0LnV0ZjgoKS5kYXRhKCkpKTsKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVh
dGVXaXRoVVRGOENTdHJpbmcoYXhIZWxwVGV4dC5nZXQoKSk7Cit9CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvZWZsL0NNYWtlTGlzdHMudHh0CmluZGV4IDY3ZjkwNWQuLmJlZGFhNWMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9DTWFrZUxpc3RzLnR4dAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9lZmwvQ01ha2VMaXN0cy50eHQKQEAgLTEsMTIgKzEsMTkgQEAK
IHNldChEdW1wUmVuZGVyVHJlZV9TT1VSQ0VTCi0gICAgJHtUT09MU19ESVJ9L0R1bXBSZW5kZXJU
cmVlL2F0ay9BY2Nlc3NpYmlsaXR5Q2FsbGJhY2tzQXRrLmNwcAorICAgICR7VE9PTFNfRElSfS9E
dW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAKKyAgICAke1RPT0xTX0RJ
Un0vRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIuY3BwCisgICAgJHtUT09M
U19ESVJ9L0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCiAgICAgJHtU
T09MU19ESVJ9L0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlQ29tbW9uLmNwcAogICAgICR7
VE9PTFNfRElSfS9EdW1wUmVuZGVyVHJlZS9DeWNsaWNSZWR1bmRhbmN5Q2hlY2suY3BwCiAgICAg
JHtUT09MU19ESVJ9L0R1bXBSZW5kZXJUcmVlL0dDQ29udHJvbGxlci5jcHAKICAgICAke1RPT0xT
X0RJUn0vRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKICAgICAke1RPT0xTX0RJUn0vRHVt
cFJlbmRlclRyZWUvUGl4ZWxEdW1wU3VwcG9ydC5jcHAKICAgICAke1RPT0xTX0RJUn0vRHVtcFJl
bmRlclRyZWUvV29ya1F1ZXVlLmNwcAorICAgICR7VE9PTFNfRElSfS9EdW1wUmVuZGVyVHJlZS9h
dGsvQWNjZXNzaWJpbGl0eUNhbGxiYWNrc0F0ay5jcHAKKyAgICAke1RPT0xTX0RJUn0vRHVtcFJl
bmRlclRyZWUvYXRrL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQXRrLmNwcAorICAgICR7VE9PTFNf
RElSfS9EdW1wUmVuZGVyVHJlZS9hdGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0ay5jcHAKICAg
ICAke1RPT0xTX0RJUn0vRHVtcFJlbmRlclRyZWUvY2Fpcm8vUGl4ZWxEdW1wU3VwcG9ydENhaXJv
LmNwcAorICAgICR7VE9PTFNfRElSfS9EdW1wUmVuZGVyVHJlZS9lZmwvQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXJFZmwuY3BwCisgICAgJHtUT09MU19ESVJ9L0R1bXBSZW5kZXJUcmVlL2VmbC9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50RWZsLmNwcAogICAgICR7VE9PTFNfRElSfS9EdW1wUmVuZGVyVHJl
ZS9lZmwvRHVtcEhpc3RvcnlJdGVtLmNwcAogICAgICR7VE9PTFNfRElSfS9EdW1wUmVuZGVyVHJl
ZS9lZmwvRHVtcFJlbmRlclRyZWUuY3BwCiAgICAgJHtUT09MU19ESVJ9L0R1bXBSZW5kZXJUcmVl
L2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKQEAgLTExNSw2ICsxMjIsNyBAQCBzZXQoRHVt
cFJlbmRlclRyZWVfSU5DTFVERV9ESVJFQ1RPUklFUwogCiBpZiAoRU5BQkxFX0FDQ0VTU0lCSUxJ
VFkpCiAgICAgbGlzdChBUFBFTkQgRHVtcFJlbmRlclRyZWVfSU5DTFVERV9ESVJFQ1RPUklFUwor
ICAgICAgICAke1RPT0xTX0RJUn0vRHVtcFJlbmRlclRyZWUvYXRrCiAgICAgICAgICR7QVRLX0lO
Q0xVREVfRElSU30KICAgICApCiAgICAgbGlzdChBUFBFTkQgRHVtcFJlbmRlclRyZWVfTElCUkFS
SUVTCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVD
aHJvbWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21l
LmNwcAppbmRleCBlMzc4NWIxLi5mODdlZWIwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKQEAgLTUwLDYgKzUwLDEwIEBACiAjaW5j
bHVkZSA8d3RmL05vdEZvdW5kLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5o
PgogCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmgiCisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIEhhc2hNYXA8
dW5zaWduZWQgbG9uZywgQ1N0cmluZz4gRHVtcFJlbmRlclRyZWVDaHJvbWU6Om1fZHVtcEFzc2ln
bmVkVXJsczsKQEAgLTcwLDYgKzc0LDcgQEAgRHVtcFJlbmRlclRyZWVDaHJvbWU6OkR1bXBSZW5k
ZXJUcmVlQ2hyb21lKEV2YXMqIGV2YXMpCiAgICAgLCBtX21haW5GcmFtZSgwKQogICAgICwgbV9l
dmFzKGV2YXMpCiAgICAgLCBtX2djQ29udHJvbGxlcihhZG9wdFB0cihuZXcgR0NDb250cm9sbGVy
KSkKKyAgICAsIG1fYXhDb250cm9sbGVyKGFkb3B0UHRyKG5ldyBBY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcikpCiB7CiB9CiAKQEAgLTI5Nyw2ICszMDIsMTAgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZUNo
cm9tZTo6cmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcygpCiAKICAgICBld2tfc2VjdXJp
dHlfcG9saWN5X3doaXRlbGlzdF9vcmlnaW5fcmVzZXQoKTsKIAorI2lmIEhBVkUoQUNDRVNTSUJJ
TElUWSkKKyAgICBicm93c2VyLT5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpLT5yZXNldFRvQ29u
c2lzdGVudFN0YXRlKCk7CisjZW5kaWYKKwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6
Y2xlYXJGcmFtZU5hbWUobWFpbkZyYW1lKCkpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVm
bDo6Y2xlYXJPcGVuZXIobWFpbkZyYW1lKCkpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVm
bDo6Y2xlYXJVc2VyU2NyaXB0cyhtYWluVmlldygpKTsKQEAgLTQzMCw2ICs0MzksMTEgQEAgdm9p
ZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25XaW5kb3dPYmplY3RDbGVhcmVkKHZvaWQqIHVzZXJE
YXRhLCBFdmFzX09iamVjdCosIHYKICAgICBKU1ZhbHVlUmVmIGV4Y2VwdGlvbiA9IDA7CiAgICAg
QVNTRVJUKGdUZXN0UnVubmVyKTsKIAorI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKKyAgICBicm93
c2VyLT5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpLT5tYWtlV2luZG93T2JqZWN0KG9iamVjdENs
ZWFyZWRJbmZvLT5jb250ZXh0LCBvYmplY3RDbGVhcmVkSW5mby0+d2luZG93T2JqZWN0LCAmZXhj
ZXB0aW9uKTsKKyAgICBBU1NFUlQoIWV4Y2VwdGlvbik7CisjZW5kaWYKKwogICAgIEdDQ29udHJv
bGxlciogZ2NDb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8R0NDb250cm9sbGVyKj4odXNlckRhdGEp
OwogICAgIEFTU0VSVChnY0NvbnRyb2xsZXIpOwogCkBAIC04NTAsMyArODY0LDggQEAgdm9pZCBE
dW1wUmVuZGVyVHJlZUNocm9tZTo6b25Eb3dubG9hZFJlcXVlc3Qodm9pZCosIEV2YXNfT2JqZWN0
Kiwgdm9pZCogZXZlbnRJbmYKICAKICAgICBicm93c2VyLT5tX2V4dHJhVmlld3MuYXBwZW5kKG5l
d1ZpZXcpOwogfQorCitBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciogRHVtcFJlbmRlclRyZWVDaHJv
bWU6OmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9heENv
bnRyb2xsZXIuZ2V0KCk7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwv
RHVtcFJlbmRlclRyZWVDaHJvbWUuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVu
ZGVyVHJlZUNocm9tZS5oCmluZGV4IDFmY2M1MzQuLjRjYjU5MmIgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5oCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5oCkBAIC0zOCw2ICszOCwxMCBA
QAogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
CiAKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuaCIKKyNlbmRpZgorCiBjbGFzcyBEdW1wUmVuZGVyVHJlZUNocm9tZSB7CiBwdWJsaWM6
CiAgICAgfkR1bXBSZW5kZXJUcmVlQ2hyb21lKCk7CkBAIC02NCwxMCArNjgsMTIgQEAgcHJpdmF0
ZToKIAogICAgIEV2YXNfT2JqZWN0KiBjcmVhdGVWaWV3KCkgY29uc3Q7CiAgICAgYm9vbCBpbml0
aWFsaXplKCk7CisgICAgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIqIGFjY2Vzc2liaWxpdHlDb250
cm9sbGVyKCkgY29uc3Q7CiAKICAgICBFdmFzX09iamVjdCogbV9tYWluRnJhbWU7CiAgICAgRXZh
c19PYmplY3QqIG1fbWFpblZpZXc7CiAgICAgRXZhcyogbV9ldmFzOworICAgIE93blB0cjxBY2Nl
c3NpYmlsaXR5Q29udHJvbGxlcj4gbV9heENvbnRyb2xsZXI7CiAgICAgT3duUHRyPEdDQ29udHJv
bGxlcj4gbV9nY0NvbnRyb2xsZXI7CiAgICAgVmVjdG9yPEV2YXNfT2JqZWN0Kj4gbV9leHRyYVZp
ZXdzOwogICAgIHN0YXRpYyBIYXNoTWFwPHVuc2lnbmVkIGxvbmcsIENTdHJpbmc+IG1fZHVtcEFz
c2lnbmVkVXJsczsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3Np
YmlsaXR5Q29udHJvbGxlckd0ay5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXJHdGsuY3BwCmluZGV4IDg0OGJhYTEuLmQ4OWE4ZDIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckd0ay5j
cHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0FjY2Vzc2liaWxpdHlDb250cm9sbGVy
R3RrLmNwcApAQCAtMzcsMzEgKzM3LDYgQEAKICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0Lmg+CiAj
aW5jbHVkZSA8d3RmL2dvYmplY3QvR093blB0ci5oPgogCi1zdGF0aWMgQXRrT2JqZWN0KiBjaGls
ZEVsZW1lbnRCeUlkKEF0a09iamVjdCogcGFyZW50LCBjb25zdCBjaGFyKiBpZCkKLXsKLSAgICBp
ZiAoIUFUS19JU19PQkpFQ1QocGFyZW50KSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBBdGtB
dHRyaWJ1dGVTZXQqIGF0dHJpYnV0ZVNldCA9IGF0a19vYmplY3RfZ2V0X2F0dHJpYnV0ZXMocGFy
ZW50KTsKLSAgICBmb3IgKEdTTGlzdCogYXR0cmlidXRlcyA9IGF0dHJpYnV0ZVNldDsgYXR0cmli
dXRlczsgYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXMtPm5leHQpIHsKLSAgICAgICAgQXRrQXR0cmli
dXRlKiBhdHRyaWJ1dGUgPSBzdGF0aWNfY2FzdDxBdGtBdHRyaWJ1dGUqPihhdHRyaWJ1dGVzLT5k
YXRhKTsKLSAgICAgICAgaWYgKCFzdHJjbXAoYXR0cmlidXRlLT5uYW1lLCAiaHRtbC1pZCIpKSB7
Ci0gICAgICAgICAgICBpZiAoIXN0cmNtcChhdHRyaWJ1dGUtPnZhbHVlLCBpZCkpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIHBhcmVudDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0g
ICAgfQotCi0gICAgaW50IGNoaWxkQ291bnQgPSBhdGtfb2JqZWN0X2dldF9uX2FjY2Vzc2libGVf
Y2hpbGRyZW4ocGFyZW50KTsKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IGNoaWxkQ291bnQ7IGkr
KykgewotICAgICAgICBBdGtPYmplY3QqIHJlc3VsdCA9IGNoaWxkRWxlbWVudEJ5SWQoYXRrX29i
amVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChwYXJlbnQsIGkpLCBpZCk7Ci0gICAgICAgIGlmIChB
VEtfSVNfT0JKRUNUKHJlc3VsdCkpCi0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0K
LQotICAgIHJldHVybiAwOwotfQotCiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IEFjY2Vzc2liaWxp
dHlDb250cm9sbGVyOjpmb2N1c2VkRWxlbWVudCgpCiB7CiAgICAgQXRrT2JqZWN0KiBhY2Nlc3Np
YmxlID0gIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6Z2V0Rm9jdXNlZEFjY2Vzc2libGVFbGVt
ZW50KG1haW5GcmFtZSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>