<?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>87749</bug_id>
          
          <creation_ts>2012-05-29 08:32:59 -0700</creation_ts>
          <short_desc>[WK2][Qt] Color chooser API missing</short_desc>
          <delta_ts>2012-06-21 03:59:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Qt</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>
          <dependson>87495</dependson>
          <blocked>87988</blocked>
    
    <blocked>87989</blocked>
    
    <blocked>88101</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Thiago Marcos P. Santos">tmpsantos</reporter>
          <assigned_to name="Thiago Marcos P. Santos">tmpsantos</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>dinu.jacob</cc>
    
    <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>menard</cc>
    
    <cc>vestbo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>636056</commentid>
    <comment_count>0</comment_count>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-05-29 08:32:59 -0700</bug_when>
    <thetext>Show a nice color chooser window for &lt;input type=&quot;color&quot;&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638654</commentid>
    <comment_count>1</comment_count>
      <attachid>145138</attachid>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-05-31 12:58:57 -0700</bug_when>
    <thetext>Created attachment 145138
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>639143</commentid>
    <comment_count>2</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-06-01 03:03:08 -0700</bug_when>
    <thetext>Looks OK to me, but cc&apos;ing Tor Arne to look at the QML related code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644794</commentid>
    <comment_count>3</comment_count>
      <attachid>145138</attachid>
    <who name="Pierre Rossi">pierre.rossi</who>
    <bug_when>2012-06-08 10:36:44 -0700</bug_when>
    <thetext>Comment on attachment 145138
Patch

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

Nice stuff, thanks !

&gt; Source/WebKit2/Target.pri:801
&gt; +contains(DEFINES, ENABLE_INPUT_TYPE_COLOR=1) {

Maybe we could enable it by default for Qt 5 in Tools/qmake/mkspecs/features/features.prf ?

&gt; Source/WebKit2/UIProcess/qt/WebColorChooserProxyQt.cpp:36
&gt; +    Q_PROPERTY(QColor currentColor READ currentColor CONSTANT FINAL)

Maybe we&apos;d want to expose the elementRect like in WebPopupMenuProxyQt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644945</commentid>
    <comment_count>4</comment_count>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-06-08 12:39:04 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 145138 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=145138&amp;action=review
&gt; 
&gt; Nice stuff, thanks !

Thank you very much for having a look.

&gt; 
&gt; &gt; Source/WebKit2/Target.pri:801
&gt; &gt; +contains(DEFINES, ENABLE_INPUT_TYPE_COLOR=1) {
&gt; 
&gt; Maybe we could enable it by default for Qt 5 in Tools/qmake/mkspecs/features/features.prf ?

Good idea. Gonna ask on the qt webkit list when I get this landed if it is fine to enable by default since IMO, the feature is complete.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/qt/WebColorChooserProxyQt.cpp:36
&gt; &gt; +    Q_PROPERTY(QColor currentColor READ currentColor CONSTANT FINAL)
&gt; 
&gt; Maybe we&apos;d want to expose the elementRect like in WebPopupMenuProxyQt.

The problem here is, unlike PopupMenu, WebCore doesn&apos;t provide the coordinates. :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647888</commentid>
    <comment_count>5</comment_count>
      <attachid>147286</attachid>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-06-13 04:13:51 -0700</bug_when>
    <thetext>Created attachment 147286
Patch

Rebased.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647903</commentid>
    <comment_count>6</comment_count>
      <attachid>147286</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-06-13 04:36:54 -0700</bug_when>
    <thetext>Comment on attachment 147286
Patch

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

Can we have a tesT?

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:1158
&gt; +    if (d-&gt;colorChooser == colorChooser)
&gt; +        return;

we normally add newline after return</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647933</commentid>
    <comment_count>7</comment_count>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-06-13 05:32:34 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 147286 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=147286&amp;action=review
&gt; 
&gt; Can we have a tesT?

You do have one. Check bug 88101. :)

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:1158
&gt; &gt; +    if (d-&gt;colorChooser == colorChooser)
&gt; &gt; +        return;
&gt; 
&gt; we normally add newline after return

Gonna fix it.

Thanks for reviewing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647947</commentid>
    <comment_count>8</comment_count>
      <attachid>147302</attachid>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-06-13 05:45:52 -0700</bug_when>
    <thetext>Created attachment 147302
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649050</commentid>
    <comment_count>9</comment_count>
      <attachid>147547</attachid>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-06-14 03:40:18 -0700</bug_when>
    <thetext>Created attachment 147547
Patch

Rebased.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654360</commentid>
    <comment_count>10</comment_count>
      <attachid>147547</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-21 03:59:10 -0700</bug_when>
    <thetext>Comment on attachment 147547
Patch

Clearing flags on attachment: 147547

Committed r120915: &lt;http://trac.webkit.org/changeset/120915&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654361</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-21 03:59:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145138</attachid>
            <date>2012-05-31 12:58:57 -0700</date>
            <delta_ts>2012-06-13 04:13:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87749-20120531225855.patch</filename>
            <type>text/plain</type>
            <size>19266</size>
            <attacher name="Thiago Marcos P. Santos">tmpsantos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5MDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGU4Mjc0MGY5NDdj
OGUxMjA5ZDMwYWY5Y2U1MjFmMTc5Y2NlZDIwYWQuLjdmZTQ4MDM4MjIzMmVjNGI5YzEwMDdlZmYy
OTMwNTBjZWJjY2FlZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMDUt
MzEgIFRoaWFnbyBNYXJjb3MgUC4gU2FudG9zICA8dGhpYWdvLnNhbnRvc0BpbnRlbC5jb20+CisK
KyAgICAgICAgW1dLMl1bUXRdIENvbG9yIGNob29zZXIgQVBJIG1pc3NpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3NzQ5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgQ29sb3JDaG9vc2VyIEFQ
SSBzdHViIHRvIFdlYktpdC4gT3RoZXJ3aXNlCisgICAgICAgIGl0IHdpbGwgYnJlYWsgdGhlIGJ1
aWxkIGZvciBRdCBXZWJLaXQyICh0aGF0IG5vdyBoYXMKKyAgICAgICAgY29tcGxldGUgc3VwcG9y
dCBmb3IgY29sb3IgY2hvb3Nlcikgd2hlbiBJTlBVVF9UWVBFX0NPTE9SIGlzIHNldC4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OmNyZWF0ZUNvbG9yQ2hvb3Nl
cik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaDoKKyAgICAgICAg
KENocm9tZUNsaWVudFF0KToKKwogMjAxMi0wNS0yOSAgVG9yIEFybmUgVmVzdGLDuCAgPHRvci5h
cm5lLnZlc3Rib0Bub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBTeW5jIHVwIGZhdmljb24taW1w
bGVtZW50YXRpb24gd2l0aCBXZWJWaWV3IHVybCBjaGFuZ2VzIGluIHIxMTgxNTgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCA3ZDM3NDU3M2EyZTgwYTE1NjhlYjlmODgwYTgyYTRmMGE3NDE2Yzc0Li5iMTJlZmJlMmI1
NjVkNWI5ZDBiOGU3ZTEzNWNhY2U2MjQ5OGQxYTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNTMg
QEAKIDIwMTItMDUtMzEgIFRoaWFnbyBNYXJjb3MgUC4gU2FudG9zICA8dGhpYWdvLnNhbnRvc0Bp
bnRlbC5jb20+CiAKKyAgICAgICAgW1dLMl1bUXRdIENvbG9yIGNob29zZXIgQVBJIG1pc3NpbmcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3NzQ5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgcHVi
bGljIGV4cGVyaW1lbnRhbCBBUEkgZm9yIENvbG9yQ2hvb3Nlci4gVGhpcyB3aWxsCisgICAgICAg
IGFsbG93IHRoZSBicm93c2VyIHRvIGRlZmluZSBhIGN1c3RvbSBkaWFsb2cgZm9yIHNlbGVjdGlu
ZworICAgICAgICBjb2xvciB3aGVuIGEgaW5wdXQgZmllbGQgb2YgdHlwZSAiY29sb3IiIGdldCBm
b2N1cy4KKworICAgICAgICBUaGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBnaXZlcyBhIG1vZGVs
IHRvIHRoZSBRTUwgQ29tcG9uZW50CisgICAgICAgIHRoYXQgaGFzIG1ldGhvZHMgZm9yIGNhbmNl
bGluZyBhIHJlcXVlc3QsIHNlbGVjdGluZyBhIGNvbG9yCisgICAgICAgIGFuZCBmZXRjaGluZyB3
aGF0IGlzIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBIVE1MIGlucHV0LgorCisgICAgICAgICog
VGFyZ2V0LnByaToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3Bw
OgorICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZhdGU6OlFRdWlja1dlYlZpZXdQcml2YXRlKToK
KyAgICAgICAgKFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OmNvbG9yQ2hvb3Nlcik6CisgICAg
ICAgIChRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjpzZXRDb2xvckNob29zZXIpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oOgorICAgICAgICAoUVF1aWNrV2ViVmlld1By
aXZhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFBhZ2VDbGllbnQuY3BwOgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6UXRQYWdlQ2xpZW50OjpjcmVhdGVDb2xvckNo
b29zZXJQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5oOgorICAg
ICAgICAoUXRQYWdlQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvV2ViQ29sb3JDaG9v
c2VyUHJveHlRdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKENvbG9y
Q2hvb3NlckNvbnRleHRPYmplY3QpOgorICAgICAgICAoV2ViS2l0OjpDb2xvckNob29zZXJDb250
ZXh0T2JqZWN0OjpDb2xvckNob29zZXJDb250ZXh0T2JqZWN0KToKKyAgICAgICAgKFdlYktpdDo6
Q29sb3JDaG9vc2VyQ29udGV4dE9iamVjdDo6Y3VycmVudENvbG9yKToKKyAgICAgICAgKFdlYktp
dDo6Q29sb3JDaG9vc2VyQ29udGV4dE9iamVjdDo6YWNjZXB0KToKKyAgICAgICAgKFdlYktpdDo6
Q29sb3JDaG9vc2VyQ29udGV4dE9iamVjdDo6cmVqZWN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q29sb3JDaG9vc2VyUHJveHlRdDo6V2ViQ29sb3JDaG9vc2VyUHJveHlRdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkNvbG9yQ2hvb3NlclByb3h5UXQ6On5XZWJDb2xvckNob29zZXJQcm94eVF0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyUHJveHlRdDo6Y3JlYXRlSXRlbSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3NlclByb3h5UXQ6OmNyZWF0ZUNvbnRleHQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXJQcm94eVF0OjpzZXRTZWxlY3RlZENvbG9y
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyUHJveHlRdDo6bm90aWZ5Q29sb3JT
ZWxlY3RlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3NlclByb3h5UXQ6OmVuZENo
b29zZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9XZWJDb2xvckNob29zZXJQcm94eVF0Lmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAo
V2ViQ29sb3JDaG9vc2VyUHJveHlRdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3Nl
clByb3h5UXQ6OmNyZWF0ZSk6CisKKzIwMTItMDUtMzEgIFRoaWFnbyBNYXJjb3MgUC4gU2FudG9z
ICA8dGhpYWdvLnNhbnRvc0BpbnRlbC5jb20+CisKICAgICAgICAgW1dLMl0gQ29sb3IgY2hvb3Nl
ciBBUEkgbWlzc2luZwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODc0OTUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudFF0LmNwcAppbmRleCBhZWUyY2Y4ZmM1ODRkOWJjMTBjZGMwMDJjZTVlNmRhZTEw
NmRiMjE4Li5hM2I4ZjI4MjhmYjM1MmMzZWQ2YzMwZDNlNTlhMzRmYzVmMzE0YTYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcApA
QCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNocm9tZUNsaWVudFF0LmgiCiAKICNpbmNsdWRl
ICJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oIgorI2luY2x1ZGUgIkNvbG9yQ2hvb3Nlci5oIgog
I2luY2x1ZGUgIkRhdGFiYXNlVHJhY2tlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5j
bHVkZSAiRmlsZUNob29zZXIuaCIKQEAgLTU1Niw2ICs1NTcsMTQgQEAgdm9pZCBDaHJvbWVDbGll
bnRRdDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiog
b3JpZ2luLAogICAgIGVtaXQgbV93ZWJQYWdlLT5hcHBsaWNhdGlvbkNhY2hlUXVvdGFFeGNlZWRl
ZChzZWN1cml0eU9yaWdpbiwgZGVmYXVsdE9yaWdpblF1b3RhLCBzdGF0aWNfY2FzdDxxdWludDY0
Pih0b3RhbFNwYWNlTmVlZGVkKSk7CiB9CiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikK
K1Bhc3NPd25QdHI8Q29sb3JDaG9vc2VyPiBDaHJvbWVDbGllbnRRdDo6Y3JlYXRlQ29sb3JDaG9v
c2VyKENvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IENvbG9yJikKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorI2VuZGlmCisKIHZvaWQgQ2hyb21lQ2xp
ZW50UXQ6OnJ1bk9wZW5QYW5lbChGcmFtZSogZnJhbWUsIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+
IHBycEZpbGVDaG9vc2VyKQogewogICAgIFJlZlB0cjxGaWxlQ2hvb3Nlcj4gZmlsZUNob29zZXIg
PSBwcnBGaWxlQ2hvb3NlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50UXQuaAppbmRleCA2YzI2MDE4YmNkOGY5NjUxYzMzYzVkYTdiNzEzMTIyMDg0
ZDIxYWQzLi5hN2Q3ZGMyM2UyZWUwNTEwMjUwOGE0MDhkMjA1NTExNGMwZTAzNGFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKKysr
IGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCkBAIC0x
NjMsNiArMTYzLDExIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNGdWxsc2Ny
ZWVuRm9yVmlkZW9QbGF5YmFjaygpOwogICAgIEZ1bGxTY3JlZW5WaWRlb1F0KiBmdWxsU2NyZWVu
VmlkZW8oKTsKICNlbmRpZgorCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAgdmly
dHVhbCBQYXNzT3duUHRyPENvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hv
b3NlckNsaWVudCosIGNvbnN0IENvbG9yJik7CisjZW5kaWYKKwogICAgICB2aXJ0dWFsIHZvaWQg
cnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4pOwogICAgICB2aXJ0
dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29u
TG9hZGVyKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkgYi9Tb3Vy
Y2UvV2ViS2l0Mi9UYXJnZXQucHJpCmluZGV4IGU0NzE3ZjIzY2U3YWRjNzFhZTAzMzFmZGQ4Njlh
MTJlMDdjNjAyOWEuLmY5N2U1YzBmM2FiYTcyOWM0OTYxNWQyNjFmZTExZmFiNDRiZWI3MWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYktpdDIv
VGFyZ2V0LnByaQpAQCAtNzk4LDYgKzc5OCwxMyBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVf
VE9VQ0hfRVZFTlRTPTEpIHsKICAgICAgICAgU2hhcmVkL3F0L05hdGl2ZVdlYlRvdWNoRXZlbnRR
dC5jcHAKIH0KIAorY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1I9MSkg
eworICAgIEhFQURFUlMgKz0gXAorICAgICAgICBVSVByb2Nlc3MvcXQvV2ViQ29sb3JDaG9vc2Vy
UHJveHlRdC5oCisgICAgU09VUkNFUyArPSBcCisgICAgICAgIFVJUHJvY2Vzcy9xdC9XZWJDb2xv
ckNob29zZXJQcm94eVF0LmNwcAorfQorCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfR0VPTE9D
QVRJT049MSk6IFFUICs9IGxvY2F0aW9uCiAKIHBsdWdpbl9iYWNrZW5kX3hsaWIgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKaW5kZXgg
NWI0M2UzMzdkNmM4ZTA1Nzk1NWNiMDliYjhkYTBmZmUyZjc3ZWExYy4uMDg1NWY1OTk4MzJmMmQz
MzBkODMxZmQ2YzczMjU0M2YzMmFmMzIyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCkBAIC0yNjQsNiArMjY0LDcgQEAgUVF1aWNr
V2ViVmlld1ByaXZhdGU6OlFRdWlja1dlYlZpZXdQcml2YXRlKFFRdWlja1dlYlZpZXcqIHZpZXdw
b3J0KQogICAgICwgcHJveHlBdXRoZW50aWNhdGlvbkRpYWxvZygwKQogICAgICwgZmlsZVBpY2tl
cigwKQogICAgICwgZGF0YWJhc2VRdW90YURpYWxvZygwKQorICAgICwgY29sb3JDaG9vc2VyKDAp
CiAgICAgLCBtX3VzZURlZmF1bHRDb250ZW50SXRlbVNpemUodHJ1ZSkKICAgICAsIG1fbmF2aWdh
dG9yUXRPYmplY3RFbmFibGVkKGZhbHNlKQogICAgICwgbV9yZW5kZXJUb09mZnNjcmVlbkJ1ZmZl
cihmYWxzZSkKQEAgLTEyMDgsNiArMTIwOSwyMSBAQCB2b2lkIFFRdWlja1dlYlZpZXdFeHBlcmlt
ZW50YWw6OnNldERhdGFiYXNlUXVvdGFEaWFsb2coUVFtbENvbXBvbmVudCogZGF0YWJhc2VRdQog
ICAgIGVtaXQgZGF0YWJhc2VRdW90YURpYWxvZ0NoYW5nZWQoKTsKIH0KIAorUVFtbENvbXBvbmVu
dCogUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDo6Y29sb3JDaG9vc2VyKCkgY29uc3QKK3sKKyAg
ICBRX0QoY29uc3QgUVF1aWNrV2ViVmlldyk7CisgICAgcmV0dXJuIGQtPmNvbG9yQ2hvb3NlcjsK
K30KKwordm9pZCBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjpzZXRDb2xvckNob29zZXIoUVFt
bENvbXBvbmVudCogY29sb3JDaG9vc2VyKQoreworICAgIFFfRChRUXVpY2tXZWJWaWV3KTsKKyAg
ICBpZiAoZC0+Y29sb3JDaG9vc2VyID09IGNvbG9yQ2hvb3NlcikKKyAgICAgICAgcmV0dXJuOwor
ICAgIGQtPmNvbG9yQ2hvb3NlciA9IGNvbG9yQ2hvb3NlcjsKKyAgICBlbWl0IGNvbG9yQ2hvb3Nl
ckNoYW5nZWQoKTsKK30KKwogUVN0cmluZyBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjp1c2Vy
QWdlbnQoKSBjb25zdAogewogICAgIFFfRChjb25zdCBRUXVpY2tXZWJWaWV3KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCmluZGV4IGNm
NDY5ZmIxZTVkMTBiNDI5NjUyMzJkOWY1OTY4M2I5OGU0NTRiOWEuLjY3M2Y5MGYxZDBlYmM3MjYy
MGRjNGRlOTMxNzM4NTI2YzdmNTYxM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaApAQCAtMjY0LDYgKzI2NCw3IEBAIGNsYXNzIFFX
RUJLSVRfRVhQT1JUIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWwgOiBwdWJsaWMgUU9iamVjdCB7
CiAgICAgUV9QUk9QRVJUWShRUW1sQ29tcG9uZW50KiBpdGVtU2VsZWN0b3IgUkVBRCBpdGVtU2Vs
ZWN0b3IgV1JJVEUgc2V0SXRlbVNlbGVjdG9yIE5PVElGWSBpdGVtU2VsZWN0b3JDaGFuZ2VkKQog
ICAgIFFfUFJPUEVSVFkoUVFtbENvbXBvbmVudCogZmlsZVBpY2tlciBSRUFEIGZpbGVQaWNrZXIg
V1JJVEUgc2V0RmlsZVBpY2tlciBOT1RJRlkgZmlsZVBpY2tlckNoYW5nZWQpCiAgICAgUV9QUk9Q
RVJUWShRUW1sQ29tcG9uZW50KiBkYXRhYmFzZVF1b3RhRGlhbG9nIFJFQUQgZGF0YWJhc2VRdW90
YURpYWxvZyBXUklURSBzZXREYXRhYmFzZVF1b3RhRGlhbG9nIE5PVElGWSBkYXRhYmFzZVF1b3Rh
RGlhbG9nQ2hhbmdlZCkKKyAgICBRX1BST1BFUlRZKFFRbWxDb21wb25lbnQqIGNvbG9yQ2hvb3Nl
ciBSRUFEIGNvbG9yQ2hvb3NlciBXUklURSBzZXRDb2xvckNob29zZXIgTk9USUZZIGNvbG9yQ2hv
b3NlckNoYW5nZWQpCiAgICAgUV9QUk9QRVJUWShRV2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2Vz
IFJFQUQgcHJlZmVyZW5jZXMgQ09OU1RBTlQgRklOQUwpCiAgICAgUV9QUk9QRVJUWShRV2ViS2l0
VGVzdCogdGVzdCBSRUFEIHRlc3QgQ09OU1RBTlQgRklOQUwpCiAgICAgUV9QUk9QRVJUWShRUW1s
TGlzdFByb3BlcnR5PFFRdWlja1VybFNjaGVtZURlbGVnYXRlPiB1cmxTY2hlbWVEZWxlZ2F0ZXMg
UkVBRCBzY2hlbWVEZWxlZ2F0ZXMpCkBAIC0yOTgsNiArMjk5LDggQEAgcHVibGljOgogICAgIHZv
aWQgc2V0RmlsZVBpY2tlcihRUW1sQ29tcG9uZW50Kik7CiAgICAgUVFtbENvbXBvbmVudCogZGF0
YWJhc2VRdW90YURpYWxvZygpIGNvbnN0OwogICAgIHZvaWQgc2V0RGF0YWJhc2VRdW90YURpYWxv
ZyhRUW1sQ29tcG9uZW50Kik7CisgICAgUVFtbENvbXBvbmVudCogY29sb3JDaG9vc2VyKCkgY29u
c3Q7CisgICAgdm9pZCBzZXRDb2xvckNob29zZXIoUVFtbENvbXBvbmVudCopOwogICAgIFFTdHJp
bmcgdXNlckFnZW50KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRVc2VyQWdlbnQoY29uc3QgUVN0cmlu
ZyYgdXNlckFnZW50KTsKICAgICBkb3VibGUgZGV2aWNlUGl4ZWxSYXRpbygpIGNvbnN0OwpAQCAt
MzQ5LDYgKzM1Miw3IEBAIFFfU0lHTkFMUzoKICAgICB2b2lkIGl0ZW1TZWxlY3RvckNoYW5nZWQo
KTsKICAgICB2b2lkIGZpbGVQaWNrZXJDaGFuZ2VkKCk7CiAgICAgdm9pZCBkYXRhYmFzZVF1b3Rh
RGlhbG9nQ2hhbmdlZCgpOworICAgIHZvaWQgY29sb3JDaG9vc2VyQ2hhbmdlZCgpOwogICAgIHZv
aWQgZG93bmxvYWRSZXF1ZXN0ZWQoUVdlYkRvd25sb2FkSXRlbSogZG93bmxvYWRJdGVtKTsKICAg
ICB2b2lkIHBlcm1pc3Npb25SZXF1ZXN0ZWQoUVdlYlBlcm1pc3Npb25SZXF1ZXN0KiBwZXJtaXNz
aW9uKTsKICAgICB2b2lkIG1lc3NhZ2VSZWNlaXZlZChjb25zdCBRVmFyaWFudE1hcCYgbWVzc2Fn
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dl
YnZpZXdfcF9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZp
ZXdfcF9wLmgKaW5kZXggNjlhZmMyZDU0ZDBlMDI5MTgwZTczYjk0ZDc4NmFjMjllOGNlYTljZS4u
ZTMzMzQxMmRjNzcxZDkyZTg0MTdkMzJhZjg3MTA4NTUwZmU1NzIwYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaApAQCAtMTkx
LDYgKzE5MSw3IEBAIHByb3RlY3RlZDoKICAgICBRUW1sQ29tcG9uZW50KiBwcm94eUF1dGhlbnRp
Y2F0aW9uRGlhbG9nOwogICAgIFFRbWxDb21wb25lbnQqIGZpbGVQaWNrZXI7CiAgICAgUVFtbENv
bXBvbmVudCogZGF0YWJhc2VRdW90YURpYWxvZzsKKyAgICBRUW1sQ29tcG9uZW50KiBjb2xvckNo
b29zZXI7CiAKICAgICBRTGlzdDxRVXJsPiB1c2VyU2NyaXB0czsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvUXRQYWdlQ2xpZW50LmNwcAppbmRleCA4ZTlhYjJlZmRjYzcxNDM4NjQ2
OGE4ZjFkNTY1OTJhNzMzM2Q0ZmNlLi44MmQ2Mzg0NWQxZDM1MjE1ZTc1Nzc0ZGI2MGE3OTk3MzU4
NTBlYTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRQYWdlQ2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRQYWdlQ2xpZW50LmNw
cApAQCAtMjYsNiArMjYsOSBAQAogI2luY2x1ZGUgIlF0V2ViUGFnZUV2ZW50SGFuZGxlci5oIgog
I2luY2x1ZGUgIlF0V2ViVW5kb0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRt
YXAuaCIKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyNpbmNsdWRlICJXZWJDb2xvckNo
b29zZXJQcm94eVF0LmgiCisjZW5kaWYKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudVByb3h5UXQu
aCIKICNpbmNsdWRlICJXZWJFZGl0Q29tbWFuZFByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUG9wdXBN
ZW51UHJveHlRdC5oIgpAQCAtMjA1LDYgKzIwOCwxMyBAQCBQYXNzUmVmUHRyPFdlYkNvbnRleHRN
ZW51UHJveHk+IFF0UGFnZUNsaWVudDo6Y3JlYXRlQ29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJv
eAogICAgIHJldHVybiBXZWJDb250ZXh0TWVudVByb3h5UXQ6OmNyZWF0ZSh3ZWJQYWdlUHJveHkp
OwogfQogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCitQYXNzUmVmUHRyPFdlYkNvbG9y
Q2hvb3NlclByb3h5PiBRdFBhZ2VDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3NlclByb3h5KFdlYlBh
Z2VQcm94eSogd2ViUGFnZVByb3h5LCBjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9y
KQoreworICAgIHJldHVybiBXZWJDb2xvckNob29zZXJQcm94eVF0OjpjcmVhdGUod2ViUGFnZVBy
b3h5LCBtX3dlYlZpZXcsIGluaXRpYWxDb2xvcik7Cit9CisjZW5kaWYKKwogdm9pZCBRdFBhZ2VD
bGllbnQ6OmZsYXNoQmFja2luZ1N0b3JlVXBkYXRlcyhjb25zdCBWZWN0b3I8SW50UmVjdD4mKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvcXQvUXRQYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRQ
YWdlQ2xpZW50LmgKaW5kZXggZTMzZGFkZjYxZTc2OGM0NDNmY2UyODhjYzhkZTY1M2E2ZDY4NmMw
Yy4uYWQ3NjI4MTk3YzkwYWM5ZWM2MzBlMzE1NGEzZmNjYWVkODM3ZWY0NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFBhZ2VDbGllbnQuaApAQCAtODYsNiArODYsMTEgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBkb25lV2l0aEtleUV2ZW50KGNvbnN0IE5hdGl2ZVdlYktl
eWJvYXJkRXZlbnQmLCBib29sIHdhc0V2ZW50SGFuZGxlZCkgeyB9CiAgICAgdmlydHVhbCBQYXNz
UmVmUHRyPFdlYlBvcHVwTWVudVByb3h5PiBjcmVhdGVQb3B1cE1lbnVQcm94eShXZWJQYWdlUHJv
eHkqKTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29udGV4dE1lbnVQcm94eT4gY3JlYXRl
Q29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJveHkqKTsKKworI2lmIEVOQUJMRShJTlBVVF9UWVBF
X0NPTE9SKQorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb2xvckNob29zZXJQcm94eT4gY3Jl
YXRlQ29sb3JDaG9vc2VyUHJveHkoV2ViUGFnZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6Q29sb3Im
KTsKKyNlbmRpZgorCiAgICAgdmlydHVhbCB2b2lkIHNldEZpbmRJbmRpY2F0b3IoUGFzc1JlZlB0
cjxGaW5kSW5kaWNhdG9yPiwgYm9vbCBmYWRlT3V0LCBib29sIGFuaW1hdGUpIHsgfQogICAgIHZp
cnR1YWwgdm9pZCBkaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lKGJvb2wgdXNlQ3VzdG9tUmVwcmVz
ZW50YXRpb24pIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1
c3RvbVJlcHJlc2VudGF0aW9uKGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUsIGNvbnN0
IENvcmVJUEM6OkRhdGFSZWZlcmVuY2UmKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9XZWJDb2xvckNob29zZXJQcm94eVF0LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9XZWJDb2xvckNob29zZXJQcm94eVF0LmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNDZk
YTMyNmQ2OTkxYjM3MWJiZTRhNzJjNjFhMDVkYjJlMDBlMDEyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbG9yQ2hvb3NlclByb3h5UXQuY3BwCkBA
IC0wLDAgKzEsMTUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0
aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldlYkNvbG9yQ2hvb3NlclByb3h5UXQuaCIKKworI2luY2x1ZGUgInFx
dWlja3dlYnZpZXdfcC5oIgorI2luY2x1ZGUgInFxdWlja3dlYnZpZXdfcF9wLmgiCisjaW5jbHVk
ZSA8UXRRbWwvUVFtbENvbnRleHQ+CisjaW5jbHVkZSA8UXRRbWwvUVFtbEVuZ2luZT4KKwordXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBDb2xv
ckNob29zZXJDb250ZXh0T2JqZWN0IDogcHVibGljIFFPYmplY3QgeworICAgIFFfT0JKRUNUCisg
ICAgUV9QUk9QRVJUWShRQ29sb3IgY3VycmVudENvbG9yIFJFQUQgY3VycmVudENvbG9yIENPTlNU
QU5UIEZJTkFMKQorCitwdWJsaWM6CisgICAgQ29sb3JDaG9vc2VyQ29udGV4dE9iamVjdChjb25z
dCBRQ29sb3ImIGNvbG9yKQorICAgICAgICA6IG1fY3VycmVudENvbG9yKGNvbG9yKQorICAgIHsK
KyAgICB9CisKKyAgICBRQ29sb3IgY3VycmVudENvbG9yKCkgY29uc3QgeyByZXR1cm4gbV9jdXJy
ZW50Q29sb3I7IH0KKworICAgIFFfSU5WT0tBQkxFIHZvaWQgYWNjZXB0KGNvbnN0IFFDb2xvciYg
Y29sb3IpIHsgZW1pdCBhY2NlcHRlZChjb2xvcik7IH07CisgICAgUV9JTlZPS0FCTEUgdm9pZCBy
ZWplY3QoKSB7IGVtaXQgcmVqZWN0ZWQoKTsgfQorCitRX1NJR05BTFM6CisgICAgdm9pZCBhY2Nl
cHRlZChjb25zdCBRQ29sb3ImKTsKKyAgICB2b2lkIHJlamVjdGVkKCk7CisKK3ByaXZhdGU6Cisg
ICAgUUNvbG9yIG1fY3VycmVudENvbG9yOworfTsKKworV2ViQ29sb3JDaG9vc2VyUHJveHlRdDo6
V2ViQ29sb3JDaG9vc2VyUHJveHlRdChXZWJDb2xvckNob29zZXJQcm94eTo6Q2xpZW50KiBjbGll
bnQsIFFRdWlja1dlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpCisg
ICAgOiBXZWJDb2xvckNob29zZXJQcm94eShjbGllbnQpCisgICAgLCBtX3dlYlZpZXcod2ViVmll
dykKK3sKKyAgICBDb2xvckNob29zZXJDb250ZXh0T2JqZWN0KiBjb250ZXh0T2JqZWN0ID0gbmV3
IENvbG9yQ2hvb3NlckNvbnRleHRPYmplY3QoaW5pdGlhbENvbG9yKTsKKyAgICBjcmVhdGVJdGVt
KGNvbnRleHRPYmplY3QpOworfQorCitXZWJDb2xvckNob29zZXJQcm94eVF0Ojp+V2ViQ29sb3JD
aG9vc2VyUHJveHlRdCgpCit7Cit9CisKK3ZvaWQgV2ViQ29sb3JDaG9vc2VyUHJveHlRdDo6Y3Jl
YXRlSXRlbShRT2JqZWN0KiBjb250ZXh0T2JqZWN0KQoreworICAgIFFRbWxDb21wb25lbnQqIGNv
bXBvbmVudCA9IG1fd2ViVmlldy0+ZXhwZXJpbWVudGFsKCktPmNvbG9yQ2hvb3NlcigpOworICAg
IGlmICghY29tcG9uZW50KSB7CisgICAgICAgIGRlbGV0ZSBjb250ZXh0T2JqZWN0OworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgY3JlYXRlQ29udGV4dChjb21wb25lbnQsIGNvbnRleHRP
YmplY3QpOworICAgIFFPYmplY3QqIG9iamVjdCA9IGNvbXBvbmVudC0+YmVnaW5DcmVhdGUobV9j
b250ZXh0LmdldCgpKTsKKyAgICBpZiAoIW9iamVjdCkgeworICAgICAgICBtX2NvbnRleHQuY2xl
YXIoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fY29sb3JDaG9vc2VyID0gYWRv
cHRQdHIocW9iamVjdF9jYXN0PFFRdWlja0l0ZW0qPihvYmplY3QpKTsKKyAgICBpZiAoIW1fY29s
b3JDaG9vc2VyKSB7CisgICAgICAgIG1fY29udGV4dC5jbGVhcigpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgLy8gTmVlZHMgdG8gYmUgZW5xdWV1ZSBiZWNhdXNlIGl0IG1pZ2h0IHRy
aWdnZXIgZGVsZXRpb24uCisgICAgY29ubmVjdChjb250ZXh0T2JqZWN0LCBTSUdOQUwoYWNjZXB0
ZWQoUUNvbG9yKSksIFNMT1Qobm90aWZ5Q29sb3JTZWxlY3RlZChRQ29sb3IpKSwgUXQ6OlF1ZXVl
ZENvbm5lY3Rpb24pOworICAgIGNvbm5lY3QoY29udGV4dE9iamVjdCwgU0lHTkFMKHJlamVjdGVk
KCkpLCBTTE9UKGVuZENob29zZXIoKSksIFF0OjpRdWV1ZWRDb25uZWN0aW9uKTsKKworICAgIFFR
dWlja1dlYlZpZXdQcml2YXRlOjpnZXQobV93ZWJWaWV3KS0+YWRkQXR0YWNoZWRQcm9wZXJ0eVRv
KG1fY29sb3JDaG9vc2VyLmdldCgpKTsKKyAgICBtX2NvbG9yQ2hvb3Nlci0+c2V0UGFyZW50SXRl
bShtX3dlYlZpZXcpOworCisgICAgY29tcG9uZW50LT5jb21wbGV0ZUNyZWF0ZSgpOworICAgIFFR
dWlja1dlYlZpZXdQcml2YXRlOjpnZXQobV93ZWJWaWV3KS0+c2V0RGlhbG9nQWN0aXZlKHRydWUp
OworfQorCit2b2lkIFdlYkNvbG9yQ2hvb3NlclByb3h5UXQ6OmNyZWF0ZUNvbnRleHQoUVFtbENv
bXBvbmVudCogY29tcG9uZW50LCBRT2JqZWN0KiBjb250ZXh0T2JqZWN0KQoreworICAgIFFRbWxD
b250ZXh0KiBiYXNlQ29udGV4dCA9IGNvbXBvbmVudC0+Y3JlYXRpb25Db250ZXh0KCk7CisgICAg
aWYgKCFiYXNlQ29udGV4dCkKKyAgICAgICAgYmFzZUNvbnRleHQgPSBRUW1sRW5naW5lOjpjb250
ZXh0Rm9yT2JqZWN0KG1fd2ViVmlldyk7CisgICAgbV9jb250ZXh0ID0gYWRvcHRQdHIobmV3IFFR
bWxDb250ZXh0KGJhc2VDb250ZXh0KSk7CisKKyAgICBjb250ZXh0T2JqZWN0LT5zZXRQYXJlbnQo
bV9jb250ZXh0LmdldCgpKTsKKyAgICBtX2NvbnRleHQtPnNldENvbnRleHRQcm9wZXJ0eShRTGF0
aW4xU3RyaW5nKCJtb2RlbCIpLCBjb250ZXh0T2JqZWN0KTsKKyAgICBtX2NvbnRleHQtPnNldENv
bnRleHRPYmplY3QoY29udGV4dE9iamVjdCk7Cit9CisKK3ZvaWQgV2ViQ29sb3JDaG9vc2VyUHJv
eHlRdDo6c2V0U2VsZWN0ZWRDb2xvcihjb25zdCBDb2xvciYpCit7CisgICAgLy8gVGhpcyBpcyBz
dXBwb3NlIHRvIGJlIHVzZWQgdG8gcmVhY3QgdG8gRE9NIGNoYW5nZXMuIFdoZW4KKyAgICAvLyBh
IHVzZXIgc2NyaXB0IGNoYW5nZXMgdGhlIGlucHV0IHZhbHVlLCB0aGUgbWV0aG9kIGdpdmVzIHRo
ZQorICAgIC8vIG9wdGlvbiB0byB1cGRhdGUgdGhlIGNvbG9yIGNob29zZXIgVUkgaWYgd2Ugd2Vy
ZSBzaG93aW5nIHRoZQorICAgIC8vIGN1cnJlbnQgdmFsdWUuIFNpbmNlIHdlIGRvbid0LCBpdCBp
cyBpcnJlbGV2YW50IHJpZ2h0IG5vdy4KKyAgICAvLyBBbmQgeWVzLCB0aGUgbmFtZSBzb3VuZHMg
bWlzbGVhZGluZyBidXQgY29tZXMgZnJvbSBXZWJDb3JlLgorfQorCit2b2lkIFdlYkNvbG9yQ2hv
b3NlclByb3h5UXQ6Om5vdGlmeUNvbG9yU2VsZWN0ZWQoY29uc3QgUUNvbG9yJiBjb2xvcikKK3sK
KyAgICBpZiAoIW1fY2xpZW50KQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBBbHBoYSBpcyBh
bHdheXMgaWdub3JlZCBieSB0aGUgY29sb3IgaW5wdXQKKyAgICBDb2xvciBjb3JlQ29sb3IgPSBt
YWtlUkdCKGNvbG9yLnJlZCgpLCBjb2xvci5ncmVlbigpLCBjb2xvci5ibHVlKCkpOworICAgIG1f
Y2xpZW50LT5kaWRDaG9vc2VDb2xvcihjb3JlQ29sb3IpOworCisgICAgZW5kQ2hvb3NlcigpOwor
fQorCit2b2lkIFdlYkNvbG9yQ2hvb3NlclByb3h5UXQ6OmVuZENob29zZXIoKQoreworICAgIFFR
dWlja1dlYlZpZXdQcml2YXRlOjpnZXQobV93ZWJWaWV3KS0+c2V0RGlhbG9nQWN0aXZlKGZhbHNl
KTsKKworICAgIG1fY29sb3JDaG9vc2VyLmNsZWFyKCk7CisgICAgbV9jb250ZXh0LmNsZWFyKCk7
CisKKyAgICBpZiAoIW1fY2xpZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NsaWVudC0+
ZGlkRW5kQ29sb3JDaG9vc2VyKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjaW5j
bHVkZSAiV2ViQ29sb3JDaG9vc2VyUHJveHlRdC5tb2MiCisjaW5jbHVkZSAibW9jX1dlYkNvbG9y
Q2hvb3NlclByb3h5UXQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1dlYkNvbG9yQ2hvb3NlclByb3h5UXQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9x
dC9XZWJDb2xvckNob29zZXJQcm94eVF0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzVhNzRhMmY2YTI3YjZhMmRl
ZTk5NzgzYTVhNzdmYmY1YzAwOTFmNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9XZWJDb2xvckNob29zZXJQcm94eVF0LmgKQEAgLTAsMCArMSw3MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CisgKgorICovCisKKyNpZm5kZWYgV2ViQ29sb3JDaG9vc2VyUHJveHlRdF9oCisjZGVmaW5lIFdl
YkNvbG9yQ2hvb3NlclByb3h5UXRfaAorCisjaW5jbHVkZSAiV2ViQ29sb3JDaG9vc2VyUHJveHku
aCIKKyNpbmNsdWRlIDxRdENvcmUvUU9iamVjdD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisK
K2NsYXNzIFFRbWxDb21wb25lbnQ7CitjbGFzcyBRUW1sQ29udGV4dDsKK2NsYXNzIFFRdWlja0l0
ZW07CitjbGFzcyBRUXVpY2tXZWJWaWV3OworCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBD
b2xvcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkNvbG9yQ2hvb3NlclBy
b3h5UXQgOiBwdWJsaWMgUU9iamVjdCwgcHVibGljIFdlYkNvbG9yQ2hvb3NlclByb3h5IHsKKyAg
ICBRX09CSkVDVAorCitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQ29sb3JDaG9v
c2VyUHJveHk+IGNyZWF0ZShXZWJDb2xvckNob29zZXJQcm94eTo6Q2xpZW50KiBjbGllbnQsIFFR
dWlja1dlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFsQ29sb3Ip
CisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkNvbG9yQ2hvb3NlclByb3h5
UXQoY2xpZW50LCB3ZWJWaWV3LCBpbml0aWFsQ29sb3IpKTsKKyAgICB9CisgICAgfldlYkNvbG9y
Q2hvb3NlclByb3h5UXQoKTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZENvbG9yKGNv
bnN0IFdlYkNvcmU6OkNvbG9yJik7CisKK3B1YmxpYyBRX1NMT1RTOgorICAgIHZpcnR1YWwgdm9p
ZCBlbmRDaG9vc2VyKCk7CisKK3ByaXZhdGUgUV9TTE9UUzoKKyAgICB2b2lkIG5vdGlmeUNvbG9y
U2VsZWN0ZWQoY29uc3QgUUNvbG9yJik7CisKK3ByaXZhdGU6CisgICAgV2ViQ29sb3JDaG9vc2Vy
UHJveHlRdChXZWJDb2xvckNob29zZXJQcm94eTo6Q2xpZW50KiwgUVF1aWNrV2ViVmlldyosIGNv
bnN0IFdlYkNvcmU6OkNvbG9yJik7CisKKyAgICB2b2lkIGNyZWF0ZUl0ZW0oUU9iamVjdCopOwor
ICAgIHZvaWQgY3JlYXRlQ29udGV4dChRUW1sQ29tcG9uZW50KiwgUU9iamVjdCopOworCisgICAg
T3duUHRyPFFRbWxDb250ZXh0PiBtX2NvbnRleHQ7CisgICAgT3duUHRyPFFRdWlja0l0ZW0+IG1f
Y29sb3JDaG9vc2VyOworCisgICAgUVF1aWNrV2ViVmlldyogbV93ZWJWaWV3OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJDb2xvckNob29zZXJQcm94eVF0X2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147286</attachid>
            <date>2012-06-13 04:13:51 -0700</date>
            <delta_ts>2012-06-14 03:40:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87749-20120613141530.patch</filename>
            <type>text/plain</type>
            <size>19069</size>
            <attacher name="Thiago Marcos P. Santos">tmpsantos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDRmYjM2MzU1ZDE1
ZTEwYjNlMGE0NzlkMzY2MDVjM2RiZWEzMGFhMTYuLjI3ZWE3ODk3NGM1ZGY4NDE2MzIxODY3ZjI3
NGQ0MzI2NTYwOWFhNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMDUt
MzEgIFRoaWFnbyBNYXJjb3MgUC4gU2FudG9zICA8dGhpYWdvLnNhbnRvc0BpbnRlbC5jb20+CisK
KyAgICAgICAgW1dLMl1bUXRdIENvbG9yIGNob29zZXIgQVBJIG1pc3NpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3NzQ5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgQ29sb3JDaG9vc2VyIEFQ
SSBzdHViIHRvIFdlYktpdC4gT3RoZXJ3aXNlCisgICAgICAgIGl0IHdpbGwgYnJlYWsgdGhlIGJ1
aWxkIGZvciBRdCBXZWJLaXQyICh0aGF0IG5vdyBoYXMKKyAgICAgICAgY29tcGxldGUgc3VwcG9y
dCBmb3IgY29sb3IgY2hvb3Nlcikgd2hlbiBJTlBVVF9UWVBFX0NPTE9SIGlzIHNldC4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OmNyZWF0ZUNvbG9yQ2hvb3Nl
cik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaDoKKyAgICAgICAg
KENocm9tZUNsaWVudFF0KToKKwogMjAxMi0wNi0xMiAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3Nz
eUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF1bTWFjXSBVbnJldmlld2VkIGJ1aWxkZml4IGFm
dGVyIHIxMjAwNzYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzQyZDQzN2ZlMDI0MTgwM2I5NmU2NDFkYjllMWZh
YjRiNDVhMTQyYy4uMTJhODA0YzhjOGFhMTI1NzkwZmM4MzkzNDI5ZWI4ZTFiZjk1MTUzMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTA1LTMxICBUaGlhZ28gTWFyY29zIFAuIFNh
bnRvcyAgPHRoaWFnby5zYW50b3NAaW50ZWwuY29tPgorCisgICAgICAgIFtXSzJdW1F0XSBDb2xv
ciBjaG9vc2VyIEFQSSBtaXNzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04Nzc0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZGVkIHB1YmxpYyBleHBlcmltZW50YWwgQVBJIGZvciBDb2xvckNob29z
ZXIuIFRoaXMgd2lsbAorICAgICAgICBhbGxvdyB0aGUgYnJvd3NlciB0byBkZWZpbmUgYSBjdXN0
b20gZGlhbG9nIGZvciBzZWxlY3RpbmcKKyAgICAgICAgY29sb3Igd2hlbiBhIGlucHV0IGZpZWxk
IG9mIHR5cGUgImNvbG9yIiBnZXQgZm9jdXMuCisKKyAgICAgICAgVGhlIGN1cnJlbnQgaW1wbGVt
ZW50YXRpb24gZ2l2ZXMgYSBtb2RlbCB0byB0aGUgUU1MIENvbXBvbmVudAorICAgICAgICB0aGF0
IGhhcyBtZXRob2RzIGZvciBjYW5jZWxpbmcgYSByZXF1ZXN0LCBzZWxlY3RpbmcgYSBjb2xvcgor
ICAgICAgICBhbmQgZmV0Y2hpbmcgd2hhdCBpcyB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgSFRN
TCBpbnB1dC4KKworICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKFFRdWlja1dlYlZpZXdQcml2YXRlOjpR
UXVpY2tXZWJWaWV3UHJpdmF0ZSk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFs
Ojpjb2xvckNob29zZXIpOgorICAgICAgICAoUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDo6c2V0
Q29sb3JDaG9vc2VyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdf
cC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaDoKKyAg
ICAgICAgKFFRdWlja1dlYlZpZXdQcml2YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvUXRQ
YWdlQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OlF0UGFn
ZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9x
dC9RdFBhZ2VDbGllbnQuaDoKKyAgICAgICAgKFF0UGFnZUNsaWVudCk6CisgICAgICAgICogVUlQ
cm9jZXNzL3F0L1dlYkNvbG9yQ2hvb3NlclByb3h5UXQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgIChDb2xvckNob29zZXJDb250ZXh0T2JqZWN0KToKKyAgICAgICAgKFdl
YktpdDo6Q29sb3JDaG9vc2VyQ29udGV4dE9iamVjdDo6Q29sb3JDaG9vc2VyQ29udGV4dE9iamVj
dCk6CisgICAgICAgIChXZWJLaXQ6OkNvbG9yQ2hvb3NlckNvbnRleHRPYmplY3Q6OmN1cnJlbnRD
b2xvcik6CisgICAgICAgIChXZWJLaXQ6OkNvbG9yQ2hvb3NlckNvbnRleHRPYmplY3Q6OmFjY2Vw
dCk6CisgICAgICAgIChXZWJLaXQ6OkNvbG9yQ2hvb3NlckNvbnRleHRPYmplY3Q6OnJlamVjdCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3NlclByb3h5UXQ6OldlYkNvbG9yQ2hvb3Nl
clByb3h5UXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXJQcm94eVF0Ojp+V2Vi
Q29sb3JDaG9vc2VyUHJveHlRdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3NlclBy
b3h5UXQ6OmNyZWF0ZUl0ZW0pOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXJQcm94
eVF0OjpjcmVhdGVDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyUHJv
eHlRdDo6c2V0U2VsZWN0ZWRDb2xvcik6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3Nl
clByb3h5UXQ6Om5vdGlmeUNvbG9yU2VsZWN0ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xv
ckNob29zZXJQcm94eVF0OjplbmRDaG9vc2VyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvV2Vi
Q29sb3JDaG9vc2VyUHJveHlRdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKFdlYkNvbG9yQ2hvb3NlclByb3h5UXQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb2xvckNob29zZXJQcm94eVF0OjpjcmVhdGUpOgorCiAyMDEyLTA2LTA1ICBU
aGlhZ28gTWFyY29zIFAuIFNhbnRvcyAgPHRoaWFnby5zYW50b3NAaW50ZWwuY29tPgogCiAgICAg
ICAgIFtXSzJdIENvbG9yIGNob29zZXIgQVBJIG1pc3NpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKaW5kZXggYzFiODE2YzJhZWVm
MWQwNjBlMDc1ZGZlMjMwOTgyODJjYTFmMjZkOC4uYjIxY2U5ZTk4MDE0MTg2NjYxNDExMTk1OGM1
MWE1YTExOTg4ZTk0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRRdC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDaHJvbWVD
bGllbnRRdC5oIgogCiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaCIKKyNpbmNs
dWRlICJDb2xvckNob29zZXIuaCIKICNpbmNsdWRlICJEYXRhYmFzZVRyYWNrZXIuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZpbGVDaG9vc2VyLmgiCkBAIC01NTcsNiArNTU4
LDE0IEBAIHZvaWQgQ2hyb21lQ2xpZW50UXQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lu
UXVvdGEoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwKICAgICBlbWl0IG1fd2ViUGFnZS0+YXBwbGlj
YXRpb25DYWNoZVF1b3RhRXhjZWVkZWQoc2VjdXJpdHlPcmlnaW4sIGRlZmF1bHRPcmlnaW5RdW90
YSwgc3RhdGljX2Nhc3Q8cXVpbnQ2ND4odG90YWxTcGFjZU5lZWRlZCkpOwogfQogCisjaWYgRU5B
QkxFKElOUFVUX1RZUEVfQ09MT1IpCitQYXNzT3duUHRyPENvbG9yQ2hvb3Nlcj4gQ2hyb21lQ2xp
ZW50UXQ6OmNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQqLCBjb25zdCBDb2xv
ciYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKyNl
bmRpZgorCiB2b2lkIENocm9tZUNsaWVudFF0OjpydW5PcGVuUGFuZWwoRnJhbWUqIGZyYW1lLCBQ
YXNzUmVmUHRyPEZpbGVDaG9vc2VyPiBwcnBGaWxlQ2hvb3NlcikKIHsKICAgICBSZWZQdHI8Rmls
ZUNob29zZXI+IGZpbGVDaG9vc2VyID0gcHJwRmlsZUNob29zZXI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmggYi9Tb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKaW5kZXggNmMyNjAxOGJjZDhm
OTY1MWMzM2M1ZGE3YjcxMzEyMjA4NGQyMWFkMy4uYTdkN2RjMjNlMmVlMDUxMDI1MDhhNDA4ZDIw
NTUxMTRjMGUwMzRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50UXQuaApAQCAtMTYzLDYgKzE2MywxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBib29sIHJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2soKTsKICAgICBGdWxsU2Ny
ZWVuVmlkZW9RdCogZnVsbFNjcmVlblZpZGVvKCk7CiAjZW5kaWYKKworI2lmIEVOQUJMRShJTlBV
VF9UWVBFX0NPTE9SKQorICAgIHZpcnR1YWwgUGFzc093blB0cjxDb2xvckNob29zZXI+IGNyZWF0
ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQqLCBjb25zdCBDb2xvciYpOworI2VuZGlm
CisKICAgICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8Rmls
ZUNob29zZXI+KTsKICAgICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVj
dG9yPFN0cmluZz4mLCBGaWxlSWNvbkxvYWRlciopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9UYXJnZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRleCBjZmI5MWE4
NGFhNjgzYjlmODE2N2E0MjBjMTM5NDFlYzkyOTE5M2RiLi5jZWQzOTU5MDYxNThlMWY1ODJkOTYx
ODQ3YTA2MTFlMGE5MjYyNjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJp
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTc5OSw2ICs3OTksMTMgQEAgY29u
dGFpbnMoREVGSU5FUywgRU5BQkxFX1RPVUNIX0VWRU5UUz0xKSB7CiAgICAgICAgIFNoYXJlZC9x
dC9OYXRpdmVXZWJUb3VjaEV2ZW50UXQuY3BwCiB9CiAKK2NvbnRhaW5zKERFRklORVMsIEVOQUJM
RV9JTlBVVF9UWVBFX0NPTE9SPTEpIHsKKyAgICBIRUFERVJTICs9IFwKKyAgICAgICAgVUlQcm9j
ZXNzL3F0L1dlYkNvbG9yQ2hvb3NlclByb3h5UXQuaAorICAgIFNPVVJDRVMgKz0gXAorICAgICAg
ICBVSVByb2Nlc3MvcXQvV2ViQ29sb3JDaG9vc2VyUHJveHlRdC5jcHAKK30KKwogY29udGFpbnMo
REVGSU5FUywgRU5BQkxFX0dFT0xPQ0FUSU9OPTEpOiBRVCArPSBsb2NhdGlvbgogCiBwbHVnaW5f
YmFja2VuZF94bGliIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXF1aWNrd2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Fx
dWlja3dlYnZpZXcuY3BwCmluZGV4IDliZGQ2MzgzMjVhZGYzYTM3ZWViYTRlYjViMzhiOWNlOWRk
MGI5NjkuLmMzMjZhMmE2MzM4ZTY1MGZjMmQyOTNjODFiZGIzOGQyNzFjMmE4MzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcApAQCAt
MjY0LDYgKzI2NCw3IEBAIFFRdWlja1dlYlZpZXdQcml2YXRlOjpRUXVpY2tXZWJWaWV3UHJpdmF0
ZShRUXVpY2tXZWJWaWV3KiB2aWV3cG9ydCkKICAgICAsIHByb3h5QXV0aGVudGljYXRpb25EaWFs
b2coMCkKICAgICAsIGZpbGVQaWNrZXIoMCkKICAgICAsIGRhdGFiYXNlUXVvdGFEaWFsb2coMCkK
KyAgICAsIGNvbG9yQ2hvb3NlcigwKQogICAgICwgbV91c2VEZWZhdWx0Q29udGVudEl0ZW1TaXpl
KHRydWUpCiAgICAgLCBtX25hdmlnYXRvclF0T2JqZWN0RW5hYmxlZChmYWxzZSkKICAgICAsIG1f
cmVuZGVyVG9PZmZzY3JlZW5CdWZmZXIoZmFsc2UpCkBAIC0xMTQ0LDYgKzExNDUsMjEgQEAgdm9p
ZCBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjpzZXREYXRhYmFzZVF1b3RhRGlhbG9nKFFRbWxD
b21wb25lbnQqIGRhdGFiYXNlUXUKICAgICBlbWl0IGRhdGFiYXNlUXVvdGFEaWFsb2dDaGFuZ2Vk
KCk7CiB9CiAKK1FRbWxDb21wb25lbnQqIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OmNvbG9y
Q2hvb3NlcigpIGNvbnN0Cit7CisgICAgUV9EKGNvbnN0IFFRdWlja1dlYlZpZXcpOworICAgIHJl
dHVybiBkLT5jb2xvckNob29zZXI7Cit9CisKK3ZvaWQgUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRh
bDo6c2V0Q29sb3JDaG9vc2VyKFFRbWxDb21wb25lbnQqIGNvbG9yQ2hvb3NlcikKK3sKKyAgICBR
X0QoUVF1aWNrV2ViVmlldyk7CisgICAgaWYgKGQtPmNvbG9yQ2hvb3NlciA9PSBjb2xvckNob29z
ZXIpCisgICAgICAgIHJldHVybjsKKyAgICBkLT5jb2xvckNob29zZXIgPSBjb2xvckNob29zZXI7
CisgICAgZW1pdCBjb2xvckNob29zZXJDaGFuZ2VkKCk7Cit9CisKIFFTdHJpbmcgUVF1aWNrV2Vi
Vmlld0V4cGVyaW1lbnRhbDo6dXNlckFnZW50KCkgY29uc3QKIHsKICAgICBRX0QoY29uc3QgUVF1
aWNrV2ViVmlldyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3FxdWlja3dlYnZpZXdfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVp
Y2t3ZWJ2aWV3X3AuaAppbmRleCAwZjJlZjQyNDBjNWJkNzM2MGNmOGM3MDcwNTRiY2FkMDFlMGQy
MGY3Li40NzNlMDVkMDBhY2YyZmFkN2YzNmM1MThlMTNjMmVhNGNiMThiNzYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKQEAgLTI2
NSw2ICsyNjUsNyBAQCBjbGFzcyBRV0VCS0lUX0VYUE9SVCBRUXVpY2tXZWJWaWV3RXhwZXJpbWVu
dGFsIDogcHVibGljIFFPYmplY3QgewogICAgIFFfUFJPUEVSVFkoUVFtbENvbXBvbmVudCogaXRl
bVNlbGVjdG9yIFJFQUQgaXRlbVNlbGVjdG9yIFdSSVRFIHNldEl0ZW1TZWxlY3RvciBOT1RJRlkg
aXRlbVNlbGVjdG9yQ2hhbmdlZCkKICAgICBRX1BST1BFUlRZKFFRbWxDb21wb25lbnQqIGZpbGVQ
aWNrZXIgUkVBRCBmaWxlUGlja2VyIFdSSVRFIHNldEZpbGVQaWNrZXIgTk9USUZZIGZpbGVQaWNr
ZXJDaGFuZ2VkKQogICAgIFFfUFJPUEVSVFkoUVFtbENvbXBvbmVudCogZGF0YWJhc2VRdW90YURp
YWxvZyBSRUFEIGRhdGFiYXNlUXVvdGFEaWFsb2cgV1JJVEUgc2V0RGF0YWJhc2VRdW90YURpYWxv
ZyBOT1RJRlkgZGF0YWJhc2VRdW90YURpYWxvZ0NoYW5nZWQpCisgICAgUV9QUk9QRVJUWShRUW1s
Q29tcG9uZW50KiBjb2xvckNob29zZXIgUkVBRCBjb2xvckNob29zZXIgV1JJVEUgc2V0Q29sb3JD
aG9vc2VyIE5PVElGWSBjb2xvckNob29zZXJDaGFuZ2VkKQogCiAgICAgUV9QUk9QRVJUWShRV2Vi
UHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzIFJFQUQgcHJlZmVyZW5jZXMgQ09OU1RBTlQgRklOQUwp
CiAgICAgUV9QUk9QRVJUWShRV2ViS2l0VGVzdCogdGVzdCBSRUFEIHRlc3QgQ09OU1RBTlQgRklO
QUwpCkBAIC0yOTksNiArMzAwLDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0RmlsZVBpY2tlcihR
UW1sQ29tcG9uZW50Kik7CiAgICAgUVFtbENvbXBvbmVudCogZGF0YWJhc2VRdW90YURpYWxvZygp
IGNvbnN0OwogICAgIHZvaWQgc2V0RGF0YWJhc2VRdW90YURpYWxvZyhRUW1sQ29tcG9uZW50Kik7
CisgICAgUVFtbENvbXBvbmVudCogY29sb3JDaG9vc2VyKCkgY29uc3Q7CisgICAgdm9pZCBzZXRD
b2xvckNob29zZXIoUVFtbENvbXBvbmVudCopOwogICAgIFFTdHJpbmcgdXNlckFnZW50KCkgY29u
c3Q7CiAgICAgdm9pZCBzZXRVc2VyQWdlbnQoY29uc3QgUVN0cmluZyYgdXNlckFnZW50KTsKICAg
ICBpbnQgZGV2aWNlV2lkdGgoKSBjb25zdDsKQEAgLTM1NCw2ICszNTcsNyBAQCBRX1NJR05BTFM6
CiAgICAgdm9pZCBpdGVtU2VsZWN0b3JDaGFuZ2VkKCk7CiAgICAgdm9pZCBmaWxlUGlja2VyQ2hh
bmdlZCgpOwogICAgIHZvaWQgZGF0YWJhc2VRdW90YURpYWxvZ0NoYW5nZWQoKTsKKyAgICB2b2lk
IGNvbG9yQ2hvb3NlckNoYW5nZWQoKTsKICAgICB2b2lkIGRvd25sb2FkUmVxdWVzdGVkKFFXZWJE
b3dubG9hZEl0ZW0qIGRvd25sb2FkSXRlbSk7CiAgICAgdm9pZCBwZXJtaXNzaW9uUmVxdWVzdGVk
KFFXZWJQZXJtaXNzaW9uUmVxdWVzdCogcGVybWlzc2lvbik7CiAgICAgdm9pZCBtZXNzYWdlUmVj
ZWl2ZWQoY29uc3QgUVZhcmlhbnRNYXAmIG1lc3NhZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCmluZGV4IGM1NTM1YTNjODM3
YjI1MTU4NzA0NmU3MjNjOGE0YzJhY2M3YmRiZWUuLmYxMDJmNjAzMDI1MjRjZDJkNmY2N2IyZDM2
MWMyNTZjNThiNjYwNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXF1aWNrd2Vidmlld19wX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKQEAgLTE4NSw2ICsxODUsNyBAQCBwcm90ZWN0ZWQ6CiAg
ICAgUVFtbENvbXBvbmVudCogcHJveHlBdXRoZW50aWNhdGlvbkRpYWxvZzsKICAgICBRUW1sQ29t
cG9uZW50KiBmaWxlUGlja2VyOwogICAgIFFRbWxDb21wb25lbnQqIGRhdGFiYXNlUXVvdGFEaWFs
b2c7CisgICAgUVFtbENvbXBvbmVudCogY29sb3JDaG9vc2VyOwogCiAgICAgUUxpc3Q8UVVybD4g
dXNlclNjcmlwdHM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9R
dFBhZ2VDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVu
dC5jcHAKaW5kZXggOGU5YWIyZWZkY2M3MTQzODY0NjhhOGYxZDU2NTkyYTczMzNkNGZjZS4uODJk
NjM4NDVkMWQzNTIxNWU3NTc3NGRiNjBhNzk5NzM1ODUwZWE4NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5jcHAKQEAgLTI2LDYgKzI2LDkgQEAKICNpbmNs
dWRlICJRdFdlYlBhZ2VFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRlICJRdFdlYlVuZG9Db250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCisjaWYgRU5BQkxFKElOUFVUX1RZ
UEVfQ09MT1IpCisjaW5jbHVkZSAiV2ViQ29sb3JDaG9vc2VyUHJveHlRdC5oIgorI2VuZGlmCiAj
aW5jbHVkZSAiV2ViQ29udGV4dE1lbnVQcm94eVF0LmgiCiAjaW5jbHVkZSAiV2ViRWRpdENvbW1h
bmRQcm94eS5oIgogI2luY2x1ZGUgIldlYlBvcHVwTWVudVByb3h5UXQuaCIKQEAgLTIwNSw2ICsy
MDgsMTMgQEAgUGFzc1JlZlB0cjxXZWJDb250ZXh0TWVudVByb3h5PiBRdFBhZ2VDbGllbnQ6OmNy
ZWF0ZUNvbnRleHRNZW51UHJveHkoV2ViUGFnZVByb3gKICAgICByZXR1cm4gV2ViQ29udGV4dE1l
bnVQcm94eVF0OjpjcmVhdGUod2ViUGFnZVByb3h5KTsKIH0KIAorI2lmIEVOQUJMRShJTlBVVF9U
WVBFX0NPTE9SKQorUGFzc1JlZlB0cjxXZWJDb2xvckNob29zZXJQcm94eT4gUXRQYWdlQ2xpZW50
OjpjcmVhdGVDb2xvckNob29zZXJQcm94eShXZWJQYWdlUHJveHkqIHdlYlBhZ2VQcm94eSwgY29u
c3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvcikKK3sKKyAgICByZXR1cm4gV2ViQ29sb3JD
aG9vc2VyUHJveHlRdDo6Y3JlYXRlKHdlYlBhZ2VQcm94eSwgbV93ZWJWaWV3LCBpbml0aWFsQ29s
b3IpOworfQorI2VuZGlmCisKIHZvaWQgUXRQYWdlQ2xpZW50OjpmbGFzaEJhY2tpbmdTdG9yZVVw
ZGF0ZXMoY29uc3QgVmVjdG9yPEludFJlY3Q+JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5oCmluZGV4IGUzM2RhZGY2
MWU3NjhjNDQzZmNlMjg4Y2M4ZGU2NTNhNmQ2ODZjMGMuLmFkNzYyODE5N2M5MGFjOWVjNjMwZTMx
NTRhM2ZjY2FlZDgzN2VmNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9x
dC9RdFBhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRQYWdl
Q2xpZW50LmgKQEAgLTg2LDYgKzg2LDExIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZG9u
ZVdpdGhLZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50JiwgYm9vbCB3YXNFdmVu
dEhhbmRsZWQpIHsgfQogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4g
Y3JlYXRlUG9wdXBNZW51UHJveHkoV2ViUGFnZVByb3h5Kik7CiAgICAgdmlydHVhbCBQYXNzUmVm
UHRyPFdlYkNvbnRleHRNZW51UHJveHk+IGNyZWF0ZUNvbnRleHRNZW51UHJveHkoV2ViUGFnZVBy
b3h5Kik7CisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8V2ViQ29sb3JDaG9vc2VyUHJveHk+IGNyZWF0ZUNvbG9yQ2hvb3NlclByb3h5KFdlYlBh
Z2VQcm94eSosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisjZW5kaWYKKwogICAgIHZpcnR1YWwg
dm9pZCBzZXRGaW5kSW5kaWNhdG9yKFBhc3NSZWZQdHI8RmluZEluZGljYXRvcj4sIGJvb2wgZmFk
ZU91dCwgYm9vbCBhbmltYXRlKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0TG9hZEZv
ck1haW5GcmFtZShib29sIHVzZUN1c3RvbVJlcHJlc2VudGF0aW9uKSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgZGlkRmluaXNoTG9hZGluZ0RhdGFGb3JDdXN0b21SZXByZXNlbnRhdGlvbihjb25zdCBT
dHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lLCBjb25zdCBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlJikg
eyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29sb3JDaG9v
c2VyUHJveHlRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29sb3JDaG9v
c2VyUHJveHlRdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTQ2ZGEzMjZkNjk5MWIzNzFiYmU0YTcyYzYxYTA1
ZGIyZTAwZTAxMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9x
dC9XZWJDb2xvckNob29zZXJQcm94eVF0LmNwcApAQCAtMCwwICsxLDE1MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisgKgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJDb2xvckNo
b29zZXJQcm94eVF0LmgiCisKKyNpbmNsdWRlICJxcXVpY2t3ZWJ2aWV3X3AuaCIKKyNpbmNsdWRl
ICJxcXVpY2t3ZWJ2aWV3X3BfcC5oIgorI2luY2x1ZGUgPFF0UW1sL1FRbWxDb250ZXh0PgorI2lu
Y2x1ZGUgPFF0UW1sL1FRbWxFbmdpbmU+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgQ29sb3JDaG9vc2VyQ29udGV4dE9iamVjdCA6IHB1
YmxpYyBRT2JqZWN0IHsKKyAgICBRX09CSkVDVAorICAgIFFfUFJPUEVSVFkoUUNvbG9yIGN1cnJl
bnRDb2xvciBSRUFEIGN1cnJlbnRDb2xvciBDT05TVEFOVCBGSU5BTCkKKworcHVibGljOgorICAg
IENvbG9yQ2hvb3NlckNvbnRleHRPYmplY3QoY29uc3QgUUNvbG9yJiBjb2xvcikKKyAgICAgICAg
OiBtX2N1cnJlbnRDb2xvcihjb2xvcikKKyAgICB7CisgICAgfQorCisgICAgUUNvbG9yIGN1cnJl
bnRDb2xvcigpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudENvbG9yOyB9CisKKyAgICBRX0lOVk9L
QUJMRSB2b2lkIGFjY2VwdChjb25zdCBRQ29sb3ImIGNvbG9yKSB7IGVtaXQgYWNjZXB0ZWQoY29s
b3IpOyB9OworICAgIFFfSU5WT0tBQkxFIHZvaWQgcmVqZWN0KCkgeyBlbWl0IHJlamVjdGVkKCk7
IH0KKworUV9TSUdOQUxTOgorICAgIHZvaWQgYWNjZXB0ZWQoY29uc3QgUUNvbG9yJik7CisgICAg
dm9pZCByZWplY3RlZCgpOworCitwcml2YXRlOgorICAgIFFDb2xvciBtX2N1cnJlbnRDb2xvcjsK
K307CisKK1dlYkNvbG9yQ2hvb3NlclByb3h5UXQ6OldlYkNvbG9yQ2hvb3NlclByb3h5UXQoV2Vi
Q29sb3JDaG9vc2VyUHJveHk6OkNsaWVudCogY2xpZW50LCBRUXVpY2tXZWJWaWV3KiB3ZWJWaWV3
LCBjb25zdCBDb2xvciYgaW5pdGlhbENvbG9yKQorICAgIDogV2ViQ29sb3JDaG9vc2VyUHJveHko
Y2xpZW50KQorICAgICwgbV93ZWJWaWV3KHdlYlZpZXcpCit7CisgICAgQ29sb3JDaG9vc2VyQ29u
dGV4dE9iamVjdCogY29udGV4dE9iamVjdCA9IG5ldyBDb2xvckNob29zZXJDb250ZXh0T2JqZWN0
KGluaXRpYWxDb2xvcik7CisgICAgY3JlYXRlSXRlbShjb250ZXh0T2JqZWN0KTsKK30KKworV2Vi
Q29sb3JDaG9vc2VyUHJveHlRdDo6fldlYkNvbG9yQ2hvb3NlclByb3h5UXQoKQoreworfQorCit2
b2lkIFdlYkNvbG9yQ2hvb3NlclByb3h5UXQ6OmNyZWF0ZUl0ZW0oUU9iamVjdCogY29udGV4dE9i
amVjdCkKK3sKKyAgICBRUW1sQ29tcG9uZW50KiBjb21wb25lbnQgPSBtX3dlYlZpZXctPmV4cGVy
aW1lbnRhbCgpLT5jb2xvckNob29zZXIoKTsKKyAgICBpZiAoIWNvbXBvbmVudCkgeworICAgICAg
ICBkZWxldGUgY29udGV4dE9iamVjdDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNy
ZWF0ZUNvbnRleHQoY29tcG9uZW50LCBjb250ZXh0T2JqZWN0KTsKKyAgICBRT2JqZWN0KiBvYmpl
Y3QgPSBjb21wb25lbnQtPmJlZ2luQ3JlYXRlKG1fY29udGV4dC5nZXQoKSk7CisgICAgaWYgKCFv
YmplY3QpIHsKKyAgICAgICAgbV9jb250ZXh0LmNsZWFyKCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBtX2NvbG9yQ2hvb3NlciA9IGFkb3B0UHRyKHFvYmplY3RfY2FzdDxRUXVpY2tJ
dGVtKj4ob2JqZWN0KSk7CisgICAgaWYgKCFtX2NvbG9yQ2hvb3NlcikgeworICAgICAgICBtX2Nv
bnRleHQuY2xlYXIoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIE5lZWRzIHRv
IGJlIGVucXVldWUgYmVjYXVzZSBpdCBtaWdodCB0cmlnZ2VyIGRlbGV0aW9uLgorICAgIGNvbm5l
Y3QoY29udGV4dE9iamVjdCwgU0lHTkFMKGFjY2VwdGVkKFFDb2xvcikpLCBTTE9UKG5vdGlmeUNv
bG9yU2VsZWN0ZWQoUUNvbG9yKSksIFF0OjpRdWV1ZWRDb25uZWN0aW9uKTsKKyAgICBjb25uZWN0
KGNvbnRleHRPYmplY3QsIFNJR05BTChyZWplY3RlZCgpKSwgU0xPVChlbmRDaG9vc2VyKCkpLCBR
dDo6UXVldWVkQ29ubmVjdGlvbik7CisKKyAgICBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6Z2V0KG1f
d2ViVmlldyktPmFkZEF0dGFjaGVkUHJvcGVydHlUbyhtX2NvbG9yQ2hvb3Nlci5nZXQoKSk7Cisg
ICAgbV9jb2xvckNob29zZXItPnNldFBhcmVudEl0ZW0obV93ZWJWaWV3KTsKKworICAgIGNvbXBv
bmVudC0+Y29tcGxldGVDcmVhdGUoKTsKKyAgICBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6Z2V0KG1f
d2ViVmlldyktPnNldERpYWxvZ0FjdGl2ZSh0cnVlKTsKK30KKwordm9pZCBXZWJDb2xvckNob29z
ZXJQcm94eVF0OjpjcmVhdGVDb250ZXh0KFFRbWxDb21wb25lbnQqIGNvbXBvbmVudCwgUU9iamVj
dCogY29udGV4dE9iamVjdCkKK3sKKyAgICBRUW1sQ29udGV4dCogYmFzZUNvbnRleHQgPSBjb21w
b25lbnQtPmNyZWF0aW9uQ29udGV4dCgpOworICAgIGlmICghYmFzZUNvbnRleHQpCisgICAgICAg
IGJhc2VDb250ZXh0ID0gUVFtbEVuZ2luZTo6Y29udGV4dEZvck9iamVjdChtX3dlYlZpZXcpOwor
ICAgIG1fY29udGV4dCA9IGFkb3B0UHRyKG5ldyBRUW1sQ29udGV4dChiYXNlQ29udGV4dCkpOwor
CisgICAgY29udGV4dE9iamVjdC0+c2V0UGFyZW50KG1fY29udGV4dC5nZXQoKSk7CisgICAgbV9j
b250ZXh0LT5zZXRDb250ZXh0UHJvcGVydHkoUUxhdGluMVN0cmluZygibW9kZWwiKSwgY29udGV4
dE9iamVjdCk7CisgICAgbV9jb250ZXh0LT5zZXRDb250ZXh0T2JqZWN0KGNvbnRleHRPYmplY3Qp
OworfQorCit2b2lkIFdlYkNvbG9yQ2hvb3NlclByb3h5UXQ6OnNldFNlbGVjdGVkQ29sb3IoY29u
c3QgQ29sb3ImKQoreworICAgIC8vIFRoaXMgaXMgc3VwcG9zZSB0byBiZSB1c2VkIHRvIHJlYWN0
IHRvIERPTSBjaGFuZ2VzLiBXaGVuCisgICAgLy8gYSB1c2VyIHNjcmlwdCBjaGFuZ2VzIHRoZSBp
bnB1dCB2YWx1ZSwgdGhlIG1ldGhvZCBnaXZlcyB0aGUKKyAgICAvLyBvcHRpb24gdG8gdXBkYXRl
IHRoZSBjb2xvciBjaG9vc2VyIFVJIGlmIHdlIHdlcmUgc2hvd2luZyB0aGUKKyAgICAvLyBjdXJy
ZW50IHZhbHVlLiBTaW5jZSB3ZSBkb24ndCwgaXQgaXMgaXJyZWxldmFudCByaWdodCBub3cuCisg
ICAgLy8gQW5kIHllcywgdGhlIG5hbWUgc291bmRzIG1pc2xlYWRpbmcgYnV0IGNvbWVzIGZyb20g
V2ViQ29yZS4KK30KKwordm9pZCBXZWJDb2xvckNob29zZXJQcm94eVF0Ojpub3RpZnlDb2xvclNl
bGVjdGVkKGNvbnN0IFFDb2xvciYgY29sb3IpCit7CisgICAgaWYgKCFtX2NsaWVudCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgLy8gQWxwaGEgaXMgYWx3YXlzIGlnbm9yZWQgYnkgdGhlIGNvbG9y
IGlucHV0CisgICAgQ29sb3IgY29yZUNvbG9yID0gbWFrZVJHQihjb2xvci5yZWQoKSwgY29sb3Iu
Z3JlZW4oKSwgY29sb3IuYmx1ZSgpKTsKKyAgICBtX2NsaWVudC0+ZGlkQ2hvb3NlQ29sb3IoY29y
ZUNvbG9yKTsKKworICAgIGVuZENob29zZXIoKTsKK30KKwordm9pZCBXZWJDb2xvckNob29zZXJQ
cm94eVF0OjplbmRDaG9vc2VyKCkKK3sKKyAgICBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6Z2V0KG1f
d2ViVmlldyktPnNldERpYWxvZ0FjdGl2ZShmYWxzZSk7CisKKyAgICBtX2NvbG9yQ2hvb3Nlci5j
bGVhcigpOworICAgIG1fY29udGV4dC5jbGVhcigpOworCisgICAgaWYgKCFtX2NsaWVudCkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9jbGllbnQtPmRpZEVuZENvbG9yQ2hvb3NlcigpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2luY2x1ZGUgIldlYkNvbG9yQ2hvb3NlclByb3h5
UXQubW9jIgorI2luY2x1ZGUgIm1vY19XZWJDb2xvckNob29zZXJQcm94eVF0LmNwcCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb2xvckNob29zZXJQcm94eVF0
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29sb3JDaG9vc2VyUHJveHlRdC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjc1YTc0YTJmNmEyN2I2YTJkZWU5OTc4M2E1YTc3ZmJmNWMwMDkxZjcKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29sb3JDaG9v
c2VyUHJveHlRdC5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
SW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFdlYkNv
bG9yQ2hvb3NlclByb3h5UXRfaAorI2RlZmluZSBXZWJDb2xvckNob29zZXJQcm94eVF0X2gKKwor
I2luY2x1ZGUgIldlYkNvbG9yQ2hvb3NlclByb3h5LmgiCisjaW5jbHVkZSA8UXRDb3JlL1FPYmpl
Y3Q+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorCitjbGFzcyBRUW1sQ29tcG9uZW50OworY2xh
c3MgUVFtbENvbnRleHQ7CitjbGFzcyBRUXVpY2tJdGVtOworY2xhc3MgUVF1aWNrV2ViVmlldzsK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ29sb3I7Cit9CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBXZWJDb2xvckNob29zZXJQcm94eVF0IDogcHVibGljIFFPYmplY3QsIHB1
YmxpYyBXZWJDb2xvckNob29zZXJQcm94eSB7CisgICAgUV9PQkpFQ1QKKworcHVibGljOgorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNvbG9yQ2hvb3NlclByb3h5PiBjcmVhdGUoV2ViQ29sb3JD
aG9vc2VyUHJveHk6OkNsaWVudCogY2xpZW50LCBRUXVpY2tXZWJWaWV3KiB3ZWJWaWV3LCBjb25z
dCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBXZWJDb2xvckNob29zZXJQcm94eVF0KGNsaWVudCwgd2ViVmlldywgaW5pdGlh
bENvbG9yKSk7CisgICAgfQorICAgIH5XZWJDb2xvckNob29zZXJQcm94eVF0KCk7CisKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYpOworCitw
dWJsaWMgUV9TTE9UUzoKKyAgICB2aXJ0dWFsIHZvaWQgZW5kQ2hvb3NlcigpOworCitwcml2YXRl
IFFfU0xPVFM6CisgICAgdm9pZCBub3RpZnlDb2xvclNlbGVjdGVkKGNvbnN0IFFDb2xvciYpOwor
Citwcml2YXRlOgorICAgIFdlYkNvbG9yQ2hvb3NlclByb3h5UXQoV2ViQ29sb3JDaG9vc2VyUHJv
eHk6OkNsaWVudCosIFFRdWlja1dlYlZpZXcqLCBjb25zdCBXZWJDb3JlOjpDb2xvciYpOworCisg
ICAgdm9pZCBjcmVhdGVJdGVtKFFPYmplY3QqKTsKKyAgICB2b2lkIGNyZWF0ZUNvbnRleHQoUVFt
bENvbXBvbmVudCosIFFPYmplY3QqKTsKKworICAgIE93blB0cjxRUW1sQ29udGV4dD4gbV9jb250
ZXh0OworICAgIE93blB0cjxRUXVpY2tJdGVtPiBtX2NvbG9yQ2hvb3NlcjsKKworICAgIFFRdWlj
a1dlYlZpZXcqIG1fd2ViVmlldzsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gV2ViQ29sb3JDaG9vc2VyUHJveHlRdF9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147302</attachid>
            <date>2012-06-13 05:45:52 -0700</date>
            <delta_ts>2012-06-14 03:40:07 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-87749-20120613154732.patch</filename>
            <type>text/plain</type>
            <size>19095</size>
            <attacher name="Thiago Marcos P. Santos">tmpsantos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDRmYjM2MzU1ZDE1
ZTEwYjNlMGE0NzlkMzY2MDVjM2RiZWEzMGFhMTYuLmZiYzZiYzVmZTRlODFiOWVhZWM5MjY2NzU5
YzczZDFiMzExZWJiZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMDUt
MzEgIFRoaWFnbyBNYXJjb3MgUC4gU2FudG9zICA8dGhpYWdvLnNhbnRvc0BpbnRlbC5jb20+CisK
KyAgICAgICAgW1dLMl1bUXRdIENvbG9yIGNob29zZXIgQVBJIG1pc3NpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3NzQ5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCisKKyAgICAgICAgQWRkZWQgQ29s
b3JDaG9vc2VyIEFQSSBzdHViIHRvIFdlYktpdC4gT3RoZXJ3aXNlCisgICAgICAgIGl0IHdpbGwg
YnJlYWsgdGhlIGJ1aWxkIGZvciBRdCBXZWJLaXQyICh0aGF0IG5vdyBoYXMKKyAgICAgICAgY29t
cGxldGUgc3VwcG9ydCBmb3IgY29sb3IgY2hvb3Nlcikgd2hlbiBJTlBVVF9UWVBFX0NPTE9SIGlz
IHNldC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OmNyZWF0
ZUNvbG9yQ2hvb3Nlcik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQu
aDoKKyAgICAgICAgKENocm9tZUNsaWVudFF0KToKKwogMjAxMi0wNi0xMiAgQ3NhYmEgT3N6dHJv
Z29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF1bTWFjXSBVbnJldmlld2Vk
IGJ1aWxkZml4IGFmdGVyIHIxMjAwNzYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzQyZDQzN2ZlMDI0MTgwM2I5
NmU2NDFkYjllMWZhYjRiNDVhMTQyYy4uMzBlNDliOThiYWFjMGY0MTUxNzUzNjdlMmRlZTIxZmUy
MzU3YzY1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTA1LTMxICBUaGlhZ28g
TWFyY29zIFAuIFNhbnRvcyAgPHRoaWFnby5zYW50b3NAaW50ZWwuY29tPgorCisgICAgICAgIFtX
SzJdW1F0XSBDb2xvciBjaG9vc2VyIEFQSSBtaXNzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04Nzc0OQorCisgICAgICAgIFJldmlld2VkIGJ5IEtl
bm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgorCisgICAgICAgIEFkZGVkIHB1YmxpYyBleHBlcmlt
ZW50YWwgQVBJIGZvciBDb2xvckNob29zZXIuIFRoaXMgd2lsbAorICAgICAgICBhbGxvdyB0aGUg
YnJvd3NlciB0byBkZWZpbmUgYSBjdXN0b20gZGlhbG9nIGZvciBzZWxlY3RpbmcKKyAgICAgICAg
Y29sb3Igd2hlbiBhIGlucHV0IGZpZWxkIG9mIHR5cGUgImNvbG9yIiBnZXQgZm9jdXMuCisKKyAg
ICAgICAgVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gZ2l2ZXMgYSBtb2RlbCB0byB0aGUgUU1M
IENvbXBvbmVudAorICAgICAgICB0aGF0IGhhcyBtZXRob2RzIGZvciBjYW5jZWxpbmcgYSByZXF1
ZXN0LCBzZWxlY3RpbmcgYSBjb2xvcgorICAgICAgICBhbmQgZmV0Y2hpbmcgd2hhdCBpcyB0aGUg
Y3VycmVudCB2YWx1ZSBvZiB0aGUgSFRNTCBpbnB1dC4KKworICAgICAgICAqIFRhcmdldC5wcmk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcDoKKyAgICAgICAg
KFFRdWlja1dlYlZpZXdQcml2YXRlOjpRUXVpY2tXZWJWaWV3UHJpdmF0ZSk6CisgICAgICAgIChR
UXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjpjb2xvckNob29zZXIpOgorICAgICAgICAoUVF1aWNr
V2ViVmlld0V4cGVyaW1lbnRhbDo6c2V0Q29sb3JDaG9vc2VyKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQv
cXF1aWNrd2Vidmlld19wX3AuaDoKKyAgICAgICAgKFFRdWlja1dlYlZpZXdQcml2YXRlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvcXQvUXRQYWdlQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChXZWJLaXQ6OlF0UGFnZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyUHJveHkp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFBhZ2VDbGllbnQuaDoKKyAgICAgICAgKFF0UGFn
ZUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1dlYkNvbG9yQ2hvb3NlclByb3h5UXQu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChDb2xvckNob29zZXJDb250
ZXh0T2JqZWN0KToKKyAgICAgICAgKFdlYktpdDo6Q29sb3JDaG9vc2VyQ29udGV4dE9iamVjdDo6
Q29sb3JDaG9vc2VyQ29udGV4dE9iamVjdCk6CisgICAgICAgIChXZWJLaXQ6OkNvbG9yQ2hvb3Nl
ckNvbnRleHRPYmplY3Q6OmN1cnJlbnRDb2xvcik6CisgICAgICAgIChXZWJLaXQ6OkNvbG9yQ2hv
b3NlckNvbnRleHRPYmplY3Q6OmFjY2VwdCk6CisgICAgICAgIChXZWJLaXQ6OkNvbG9yQ2hvb3Nl
ckNvbnRleHRPYmplY3Q6OnJlamVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3Nl
clByb3h5UXQ6OldlYkNvbG9yQ2hvb3NlclByb3h5UXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJD
b2xvckNob29zZXJQcm94eVF0Ojp+V2ViQ29sb3JDaG9vc2VyUHJveHlRdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkNvbG9yQ2hvb3NlclByb3h5UXQ6OmNyZWF0ZUl0ZW0pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDb2xvckNob29zZXJQcm94eVF0OjpjcmVhdGVDb250ZXh0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViQ29sb3JDaG9vc2VyUHJveHlRdDo6c2V0U2VsZWN0ZWRDb2xvcik6CisgICAgICAg
IChXZWJLaXQ6OldlYkNvbG9yQ2hvb3NlclByb3h5UXQ6Om5vdGlmeUNvbG9yU2VsZWN0ZWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXJQcm94eVF0OjplbmRDaG9vc2VyKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvcXQvV2ViQ29sb3JDaG9vc2VyUHJveHlRdC5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYkNvbG9yQ2hv
b3NlclByb3h5UXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXJQcm94eVF0Ojpj
cmVhdGUpOgorCiAyMDEyLTA2LTA1ICBUaGlhZ28gTWFyY29zIFAuIFNhbnRvcyAgPHRoaWFnby5z
YW50b3NAaW50ZWwuY29tPgogCiAgICAgICAgIFtXSzJdIENvbG9yIGNob29zZXIgQVBJIG1pc3Np
bmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRR
dC5jcHAKaW5kZXggYzFiODE2YzJhZWVmMWQwNjBlMDc1ZGZlMjMwOTgyODJjYTFmMjZkOC4uYjIx
Y2U5ZTk4MDE0MTg2NjYxNDExMTk1OGM1MWE1YTExOTg4ZTk0OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKQEAgLTMxLDYgKzMx
LDcgQEAKICNpbmNsdWRlICJDaHJvbWVDbGllbnRRdC5oIgogCiAjaW5jbHVkZSAiQXBwbGljYXRp
b25DYWNoZVN0b3JhZ2UuaCIKKyNpbmNsdWRlICJDb2xvckNob29zZXIuaCIKICNpbmNsdWRlICJE
YXRhYmFzZVRyYWNrZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZpbGVD
aG9vc2VyLmgiCkBAIC01NTcsNiArNTU4LDE0IEBAIHZvaWQgQ2hyb21lQ2xpZW50UXQ6OnJlYWNo
ZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwKICAg
ICBlbWl0IG1fd2ViUGFnZS0+YXBwbGljYXRpb25DYWNoZVF1b3RhRXhjZWVkZWQoc2VjdXJpdHlP
cmlnaW4sIGRlZmF1bHRPcmlnaW5RdW90YSwgc3RhdGljX2Nhc3Q8cXVpbnQ2ND4odG90YWxTcGFj
ZU5lZWRlZCkpOwogfQogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCitQYXNzT3duUHRy
PENvbG9yQ2hvb3Nlcj4gQ2hyb21lQ2xpZW50UXQ6OmNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNo
b29zZXJDbGllbnQqLCBjb25zdCBDb2xvciYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKyNlbmRpZgorCiB2b2lkIENocm9tZUNsaWVudFF0OjpydW5P
cGVuUGFuZWwoRnJhbWUqIGZyYW1lLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPiBwcnBGaWxlQ2hv
b3NlcikKIHsKICAgICBSZWZQdHI8RmlsZUNob29zZXI+IGZpbGVDaG9vc2VyID0gcHJwRmlsZUNo
b29zZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dFF0LmgKaW5kZXggNmMyNjAxOGJjZDhmOTY1MWMzM2M1ZGE3YjcxMzEyMjA4NGQyMWFkMy4uYTdk
N2RjMjNlMmVlMDUxMDI1MDhhNDA4ZDIwNTUxMTRjMGUwMzRhYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaApAQCAtMTYzLDYgKzE2Mywx
MSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVv
UGxheWJhY2soKTsKICAgICBGdWxsU2NyZWVuVmlkZW9RdCogZnVsbFNjcmVlblZpZGVvKCk7CiAj
ZW5kaWYKKworI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorICAgIHZpcnR1YWwgUGFzc093
blB0cjxDb2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQq
LCBjb25zdCBDb2xvciYpOworI2VuZGlmCisKICAgICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5l
bChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+KTsKICAgICAgdmlydHVhbCB2b2lkIGxv
YWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlSWNvbkxvYWRlciopOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIvU291cmNlL1dlYktpdDIv
VGFyZ2V0LnByaQppbmRleCBjZmI5MWE4NGFhNjgzYjlmODE2N2E0MjBjMTM5NDFlYzkyOTE5M2Ri
Li5jZWQzOTU5MDYxNThlMWY1ODJkOTYxODQ3YTA2MTFlMGE5MjYyNjhkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkK
QEAgLTc5OSw2ICs3OTksMTMgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1RPVUNIX0VWRU5U
Uz0xKSB7CiAgICAgICAgIFNoYXJlZC9xdC9OYXRpdmVXZWJUb3VjaEV2ZW50UXQuY3BwCiB9CiAK
K2NvbnRhaW5zKERFRklORVMsIEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SPTEpIHsKKyAgICBIRUFE
RVJTICs9IFwKKyAgICAgICAgVUlQcm9jZXNzL3F0L1dlYkNvbG9yQ2hvb3NlclByb3h5UXQuaAor
ICAgIFNPVVJDRVMgKz0gXAorICAgICAgICBVSVByb2Nlc3MvcXQvV2ViQ29sb3JDaG9vc2VyUHJv
eHlRdC5jcHAKK30KKwogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0dFT0xPQ0FUSU9OPTEpOiBR
VCArPSBsb2NhdGlvbgogCiBwbHVnaW5fYmFja2VuZF94bGliIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCmluZGV4IDliZGQ2MzgzMjVh
ZGYzYTM3ZWViYTRlYjViMzhiOWNlOWRkMGI5NjkuLmNkOTMzNmU1YmM3MDJjM2FhMzU3NWE0MTg0
ZTU4MGY5ZDY3NzgwNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXF1aWNrd2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xcXVpY2t3ZWJ2aWV3LmNwcApAQCAtMjY0LDYgKzI2NCw3IEBAIFFRdWlja1dlYlZpZXdQcml2
YXRlOjpRUXVpY2tXZWJWaWV3UHJpdmF0ZShRUXVpY2tXZWJWaWV3KiB2aWV3cG9ydCkKICAgICAs
IHByb3h5QXV0aGVudGljYXRpb25EaWFsb2coMCkKICAgICAsIGZpbGVQaWNrZXIoMCkKICAgICAs
IGRhdGFiYXNlUXVvdGFEaWFsb2coMCkKKyAgICAsIGNvbG9yQ2hvb3NlcigwKQogICAgICwgbV91
c2VEZWZhdWx0Q29udGVudEl0ZW1TaXplKHRydWUpCiAgICAgLCBtX25hdmlnYXRvclF0T2JqZWN0
RW5hYmxlZChmYWxzZSkKICAgICAsIG1fcmVuZGVyVG9PZmZzY3JlZW5CdWZmZXIoZmFsc2UpCkBA
IC0xMTQ0LDYgKzExNDUsMjIgQEAgdm9pZCBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjpzZXRE
YXRhYmFzZVF1b3RhRGlhbG9nKFFRbWxDb21wb25lbnQqIGRhdGFiYXNlUXUKICAgICBlbWl0IGRh
dGFiYXNlUXVvdGFEaWFsb2dDaGFuZ2VkKCk7CiB9CiAKK1FRbWxDb21wb25lbnQqIFFRdWlja1dl
YlZpZXdFeHBlcmltZW50YWw6OmNvbG9yQ2hvb3NlcigpIGNvbnN0Cit7CisgICAgUV9EKGNvbnN0
IFFRdWlja1dlYlZpZXcpOworICAgIHJldHVybiBkLT5jb2xvckNob29zZXI7Cit9CisKK3ZvaWQg
UVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDo6c2V0Q29sb3JDaG9vc2VyKFFRbWxDb21wb25lbnQq
IGNvbG9yQ2hvb3NlcikKK3sKKyAgICBRX0QoUVF1aWNrV2ViVmlldyk7CisgICAgaWYgKGQtPmNv
bG9yQ2hvb3NlciA9PSBjb2xvckNob29zZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGQtPmNv
bG9yQ2hvb3NlciA9IGNvbG9yQ2hvb3NlcjsKKyAgICBlbWl0IGNvbG9yQ2hvb3NlckNoYW5nZWQo
KTsKK30KKwogUVN0cmluZyBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjp1c2VyQWdlbnQoKSBj
b25zdAogewogICAgIFFfRChjb25zdCBRUXVpY2tXZWJWaWV3KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCmluZGV4IDBmMmVmNDI0MGM1
YmQ3MzYwY2Y4YzcwNzA1NGJjYWQwMWUwZDIwZjcuLjQ3M2UwNWQwMGFjZjJmYWQ3ZjM2YzUxOGUx
M2MyZWE0Y2IxOGI3NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXF1aWNrd2Vidmlld19wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xcXVpY2t3ZWJ2aWV3X3AuaApAQCAtMjY1LDYgKzI2NSw3IEBAIGNsYXNzIFFXRUJLSVRfRVhQ
T1JUIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWwgOiBwdWJsaWMgUU9iamVjdCB7CiAgICAgUV9Q
Uk9QRVJUWShRUW1sQ29tcG9uZW50KiBpdGVtU2VsZWN0b3IgUkVBRCBpdGVtU2VsZWN0b3IgV1JJ
VEUgc2V0SXRlbVNlbGVjdG9yIE5PVElGWSBpdGVtU2VsZWN0b3JDaGFuZ2VkKQogICAgIFFfUFJP
UEVSVFkoUVFtbENvbXBvbmVudCogZmlsZVBpY2tlciBSRUFEIGZpbGVQaWNrZXIgV1JJVEUgc2V0
RmlsZVBpY2tlciBOT1RJRlkgZmlsZVBpY2tlckNoYW5nZWQpCiAgICAgUV9QUk9QRVJUWShRUW1s
Q29tcG9uZW50KiBkYXRhYmFzZVF1b3RhRGlhbG9nIFJFQUQgZGF0YWJhc2VRdW90YURpYWxvZyBX
UklURSBzZXREYXRhYmFzZVF1b3RhRGlhbG9nIE5PVElGWSBkYXRhYmFzZVF1b3RhRGlhbG9nQ2hh
bmdlZCkKKyAgICBRX1BST1BFUlRZKFFRbWxDb21wb25lbnQqIGNvbG9yQ2hvb3NlciBSRUFEIGNv
bG9yQ2hvb3NlciBXUklURSBzZXRDb2xvckNob29zZXIgTk9USUZZIGNvbG9yQ2hvb3NlckNoYW5n
ZWQpCiAKICAgICBRX1BST1BFUlRZKFFXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5jZXMgUkVBRCBw
cmVmZXJlbmNlcyBDT05TVEFOVCBGSU5BTCkKICAgICBRX1BST1BFUlRZKFFXZWJLaXRUZXN0KiB0
ZXN0IFJFQUQgdGVzdCBDT05TVEFOVCBGSU5BTCkKQEAgLTI5OSw2ICszMDAsOCBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRGaWxlUGlja2VyKFFRbWxDb21wb25lbnQqKTsKICAgICBRUW1sQ29tcG9u
ZW50KiBkYXRhYmFzZVF1b3RhRGlhbG9nKCkgY29uc3Q7CiAgICAgdm9pZCBzZXREYXRhYmFzZVF1
b3RhRGlhbG9nKFFRbWxDb21wb25lbnQqKTsKKyAgICBRUW1sQ29tcG9uZW50KiBjb2xvckNob29z
ZXIoKSBjb25zdDsKKyAgICB2b2lkIHNldENvbG9yQ2hvb3NlcihRUW1sQ29tcG9uZW50Kik7CiAg
ICAgUVN0cmluZyB1c2VyQWdlbnQoKSBjb25zdDsKICAgICB2b2lkIHNldFVzZXJBZ2VudChjb25z
dCBRU3RyaW5nJiB1c2VyQWdlbnQpOwogICAgIGludCBkZXZpY2VXaWR0aCgpIGNvbnN0OwpAQCAt
MzU0LDYgKzM1Nyw3IEBAIFFfU0lHTkFMUzoKICAgICB2b2lkIGl0ZW1TZWxlY3RvckNoYW5nZWQo
KTsKICAgICB2b2lkIGZpbGVQaWNrZXJDaGFuZ2VkKCk7CiAgICAgdm9pZCBkYXRhYmFzZVF1b3Rh
RGlhbG9nQ2hhbmdlZCgpOworICAgIHZvaWQgY29sb3JDaG9vc2VyQ2hhbmdlZCgpOwogICAgIHZv
aWQgZG93bmxvYWRSZXF1ZXN0ZWQoUVdlYkRvd25sb2FkSXRlbSogZG93bmxvYWRJdGVtKTsKICAg
ICB2b2lkIHBlcm1pc3Npb25SZXF1ZXN0ZWQoUVdlYlBlcm1pc3Npb25SZXF1ZXN0KiBwZXJtaXNz
aW9uKTsKICAgICB2b2lkIG1lc3NhZ2VSZWNlaXZlZChjb25zdCBRVmFyaWFudE1hcCYgbWVzc2Fn
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dl
YnZpZXdfcF9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZp
ZXdfcF9wLmgKaW5kZXggYzU1MzVhM2M4MzdiMjUxNTg3MDQ2ZTcyM2M4YTRjMmFjYzdiZGJlZS4u
ZjEwMmY2MDMwMjUyNGNkMmQ2ZjY3YjJkMzYxYzI1NmM1OGI2NjA3OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaApAQCAtMTg1
LDYgKzE4NSw3IEBAIHByb3RlY3RlZDoKICAgICBRUW1sQ29tcG9uZW50KiBwcm94eUF1dGhlbnRp
Y2F0aW9uRGlhbG9nOwogICAgIFFRbWxDb21wb25lbnQqIGZpbGVQaWNrZXI7CiAgICAgUVFtbENv
bXBvbmVudCogZGF0YWJhc2VRdW90YURpYWxvZzsKKyAgICBRUW1sQ29tcG9uZW50KiBjb2xvckNo
b29zZXI7CiAKICAgICBRTGlzdDxRVXJsPiB1c2VyU2NyaXB0czsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvUXRQYWdlQ2xpZW50LmNwcAppbmRleCA4ZTlhYjJlZmRjYzcxNDM4NjQ2
OGE4ZjFkNTY1OTJhNzMzM2Q0ZmNlLi44MmQ2Mzg0NWQxZDM1MjE1ZTc1Nzc0ZGI2MGE3OTk3MzU4
NTBlYTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRQYWdlQ2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRQYWdlQ2xpZW50LmNw
cApAQCAtMjYsNiArMjYsOSBAQAogI2luY2x1ZGUgIlF0V2ViUGFnZUV2ZW50SGFuZGxlci5oIgog
I2luY2x1ZGUgIlF0V2ViVW5kb0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRt
YXAuaCIKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyNpbmNsdWRlICJXZWJDb2xvckNo
b29zZXJQcm94eVF0LmgiCisjZW5kaWYKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudVByb3h5UXQu
aCIKICNpbmNsdWRlICJXZWJFZGl0Q29tbWFuZFByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUG9wdXBN
ZW51UHJveHlRdC5oIgpAQCAtMjA1LDYgKzIwOCwxMyBAQCBQYXNzUmVmUHRyPFdlYkNvbnRleHRN
ZW51UHJveHk+IFF0UGFnZUNsaWVudDo6Y3JlYXRlQ29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJv
eAogICAgIHJldHVybiBXZWJDb250ZXh0TWVudVByb3h5UXQ6OmNyZWF0ZSh3ZWJQYWdlUHJveHkp
OwogfQogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCitQYXNzUmVmUHRyPFdlYkNvbG9y
Q2hvb3NlclByb3h5PiBRdFBhZ2VDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3NlclByb3h5KFdlYlBh
Z2VQcm94eSogd2ViUGFnZVByb3h5LCBjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9y
KQoreworICAgIHJldHVybiBXZWJDb2xvckNob29zZXJQcm94eVF0OjpjcmVhdGUod2ViUGFnZVBy
b3h5LCBtX3dlYlZpZXcsIGluaXRpYWxDb2xvcik7Cit9CisjZW5kaWYKKwogdm9pZCBRdFBhZ2VD
bGllbnQ6OmZsYXNoQmFja2luZ1N0b3JlVXBkYXRlcyhjb25zdCBWZWN0b3I8SW50UmVjdD4mKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvcXQvUXRQYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRQ
YWdlQ2xpZW50LmgKaW5kZXggZTMzZGFkZjYxZTc2OGM0NDNmY2UyODhjYzhkZTY1M2E2ZDY4NmMw
Yy4uYWQ3NjI4MTk3YzkwYWM5ZWM2MzBlMzE1NGEzZmNjYWVkODM3ZWY0NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFBhZ2VDbGllbnQuaApAQCAtODYsNiArODYsMTEgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBkb25lV2l0aEtleUV2ZW50KGNvbnN0IE5hdGl2ZVdlYktl
eWJvYXJkRXZlbnQmLCBib29sIHdhc0V2ZW50SGFuZGxlZCkgeyB9CiAgICAgdmlydHVhbCBQYXNz
UmVmUHRyPFdlYlBvcHVwTWVudVByb3h5PiBjcmVhdGVQb3B1cE1lbnVQcm94eShXZWJQYWdlUHJv
eHkqKTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29udGV4dE1lbnVQcm94eT4gY3JlYXRl
Q29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJveHkqKTsKKworI2lmIEVOQUJMRShJTlBVVF9UWVBF
X0NPTE9SKQorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb2xvckNob29zZXJQcm94eT4gY3Jl
YXRlQ29sb3JDaG9vc2VyUHJveHkoV2ViUGFnZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6Q29sb3Im
KTsKKyNlbmRpZgorCiAgICAgdmlydHVhbCB2b2lkIHNldEZpbmRJbmRpY2F0b3IoUGFzc1JlZlB0
cjxGaW5kSW5kaWNhdG9yPiwgYm9vbCBmYWRlT3V0LCBib29sIGFuaW1hdGUpIHsgfQogICAgIHZp
cnR1YWwgdm9pZCBkaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lKGJvb2wgdXNlQ3VzdG9tUmVwcmVz
ZW50YXRpb24pIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1
c3RvbVJlcHJlc2VudGF0aW9uKGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUsIGNvbnN0
IENvcmVJUEM6OkRhdGFSZWZlcmVuY2UmKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9XZWJDb2xvckNob29zZXJQcm94eVF0LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9XZWJDb2xvckNob29zZXJQcm94eVF0LmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNDZk
YTMyNmQ2OTkxYjM3MWJiZTRhNzJjNjFhMDVkYjJlMDBlMDEyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbG9yQ2hvb3NlclByb3h5UXQuY3BwCkBA
IC0wLDAgKzEsMTUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0
aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldlYkNvbG9yQ2hvb3NlclByb3h5UXQuaCIKKworI2luY2x1ZGUgInFx
dWlja3dlYnZpZXdfcC5oIgorI2luY2x1ZGUgInFxdWlja3dlYnZpZXdfcF9wLmgiCisjaW5jbHVk
ZSA8UXRRbWwvUVFtbENvbnRleHQ+CisjaW5jbHVkZSA8UXRRbWwvUVFtbEVuZ2luZT4KKwordXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBDb2xv
ckNob29zZXJDb250ZXh0T2JqZWN0IDogcHVibGljIFFPYmplY3QgeworICAgIFFfT0JKRUNUCisg
ICAgUV9QUk9QRVJUWShRQ29sb3IgY3VycmVudENvbG9yIFJFQUQgY3VycmVudENvbG9yIENPTlNU
QU5UIEZJTkFMKQorCitwdWJsaWM6CisgICAgQ29sb3JDaG9vc2VyQ29udGV4dE9iamVjdChjb25z
dCBRQ29sb3ImIGNvbG9yKQorICAgICAgICA6IG1fY3VycmVudENvbG9yKGNvbG9yKQorICAgIHsK
KyAgICB9CisKKyAgICBRQ29sb3IgY3VycmVudENvbG9yKCkgY29uc3QgeyByZXR1cm4gbV9jdXJy
ZW50Q29sb3I7IH0KKworICAgIFFfSU5WT0tBQkxFIHZvaWQgYWNjZXB0KGNvbnN0IFFDb2xvciYg
Y29sb3IpIHsgZW1pdCBhY2NlcHRlZChjb2xvcik7IH07CisgICAgUV9JTlZPS0FCTEUgdm9pZCBy
ZWplY3QoKSB7IGVtaXQgcmVqZWN0ZWQoKTsgfQorCitRX1NJR05BTFM6CisgICAgdm9pZCBhY2Nl
cHRlZChjb25zdCBRQ29sb3ImKTsKKyAgICB2b2lkIHJlamVjdGVkKCk7CisKK3ByaXZhdGU6Cisg
ICAgUUNvbG9yIG1fY3VycmVudENvbG9yOworfTsKKworV2ViQ29sb3JDaG9vc2VyUHJveHlRdDo6
V2ViQ29sb3JDaG9vc2VyUHJveHlRdChXZWJDb2xvckNob29zZXJQcm94eTo6Q2xpZW50KiBjbGll
bnQsIFFRdWlja1dlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpCisg
ICAgOiBXZWJDb2xvckNob29zZXJQcm94eShjbGllbnQpCisgICAgLCBtX3dlYlZpZXcod2ViVmll
dykKK3sKKyAgICBDb2xvckNob29zZXJDb250ZXh0T2JqZWN0KiBjb250ZXh0T2JqZWN0ID0gbmV3
IENvbG9yQ2hvb3NlckNvbnRleHRPYmplY3QoaW5pdGlhbENvbG9yKTsKKyAgICBjcmVhdGVJdGVt
KGNvbnRleHRPYmplY3QpOworfQorCitXZWJDb2xvckNob29zZXJQcm94eVF0Ojp+V2ViQ29sb3JD
aG9vc2VyUHJveHlRdCgpCit7Cit9CisKK3ZvaWQgV2ViQ29sb3JDaG9vc2VyUHJveHlRdDo6Y3Jl
YXRlSXRlbShRT2JqZWN0KiBjb250ZXh0T2JqZWN0KQoreworICAgIFFRbWxDb21wb25lbnQqIGNv
bXBvbmVudCA9IG1fd2ViVmlldy0+ZXhwZXJpbWVudGFsKCktPmNvbG9yQ2hvb3NlcigpOworICAg
IGlmICghY29tcG9uZW50KSB7CisgICAgICAgIGRlbGV0ZSBjb250ZXh0T2JqZWN0OworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgY3JlYXRlQ29udGV4dChjb21wb25lbnQsIGNvbnRleHRP
YmplY3QpOworICAgIFFPYmplY3QqIG9iamVjdCA9IGNvbXBvbmVudC0+YmVnaW5DcmVhdGUobV9j
b250ZXh0LmdldCgpKTsKKyAgICBpZiAoIW9iamVjdCkgeworICAgICAgICBtX2NvbnRleHQuY2xl
YXIoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fY29sb3JDaG9vc2VyID0gYWRv
cHRQdHIocW9iamVjdF9jYXN0PFFRdWlja0l0ZW0qPihvYmplY3QpKTsKKyAgICBpZiAoIW1fY29s
b3JDaG9vc2VyKSB7CisgICAgICAgIG1fY29udGV4dC5jbGVhcigpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgLy8gTmVlZHMgdG8gYmUgZW5xdWV1ZSBiZWNhdXNlIGl0IG1pZ2h0IHRy
aWdnZXIgZGVsZXRpb24uCisgICAgY29ubmVjdChjb250ZXh0T2JqZWN0LCBTSUdOQUwoYWNjZXB0
ZWQoUUNvbG9yKSksIFNMT1Qobm90aWZ5Q29sb3JTZWxlY3RlZChRQ29sb3IpKSwgUXQ6OlF1ZXVl
ZENvbm5lY3Rpb24pOworICAgIGNvbm5lY3QoY29udGV4dE9iamVjdCwgU0lHTkFMKHJlamVjdGVk
KCkpLCBTTE9UKGVuZENob29zZXIoKSksIFF0OjpRdWV1ZWRDb25uZWN0aW9uKTsKKworICAgIFFR
dWlja1dlYlZpZXdQcml2YXRlOjpnZXQobV93ZWJWaWV3KS0+YWRkQXR0YWNoZWRQcm9wZXJ0eVRv
KG1fY29sb3JDaG9vc2VyLmdldCgpKTsKKyAgICBtX2NvbG9yQ2hvb3Nlci0+c2V0UGFyZW50SXRl
bShtX3dlYlZpZXcpOworCisgICAgY29tcG9uZW50LT5jb21wbGV0ZUNyZWF0ZSgpOworICAgIFFR
dWlja1dlYlZpZXdQcml2YXRlOjpnZXQobV93ZWJWaWV3KS0+c2V0RGlhbG9nQWN0aXZlKHRydWUp
OworfQorCit2b2lkIFdlYkNvbG9yQ2hvb3NlclByb3h5UXQ6OmNyZWF0ZUNvbnRleHQoUVFtbENv
bXBvbmVudCogY29tcG9uZW50LCBRT2JqZWN0KiBjb250ZXh0T2JqZWN0KQoreworICAgIFFRbWxD
b250ZXh0KiBiYXNlQ29udGV4dCA9IGNvbXBvbmVudC0+Y3JlYXRpb25Db250ZXh0KCk7CisgICAg
aWYgKCFiYXNlQ29udGV4dCkKKyAgICAgICAgYmFzZUNvbnRleHQgPSBRUW1sRW5naW5lOjpjb250
ZXh0Rm9yT2JqZWN0KG1fd2ViVmlldyk7CisgICAgbV9jb250ZXh0ID0gYWRvcHRQdHIobmV3IFFR
bWxDb250ZXh0KGJhc2VDb250ZXh0KSk7CisKKyAgICBjb250ZXh0T2JqZWN0LT5zZXRQYXJlbnQo
bV9jb250ZXh0LmdldCgpKTsKKyAgICBtX2NvbnRleHQtPnNldENvbnRleHRQcm9wZXJ0eShRTGF0
aW4xU3RyaW5nKCJtb2RlbCIpLCBjb250ZXh0T2JqZWN0KTsKKyAgICBtX2NvbnRleHQtPnNldENv
bnRleHRPYmplY3QoY29udGV4dE9iamVjdCk7Cit9CisKK3ZvaWQgV2ViQ29sb3JDaG9vc2VyUHJv
eHlRdDo6c2V0U2VsZWN0ZWRDb2xvcihjb25zdCBDb2xvciYpCit7CisgICAgLy8gVGhpcyBpcyBz
dXBwb3NlIHRvIGJlIHVzZWQgdG8gcmVhY3QgdG8gRE9NIGNoYW5nZXMuIFdoZW4KKyAgICAvLyBh
IHVzZXIgc2NyaXB0IGNoYW5nZXMgdGhlIGlucHV0IHZhbHVlLCB0aGUgbWV0aG9kIGdpdmVzIHRo
ZQorICAgIC8vIG9wdGlvbiB0byB1cGRhdGUgdGhlIGNvbG9yIGNob29zZXIgVUkgaWYgd2Ugd2Vy
ZSBzaG93aW5nIHRoZQorICAgIC8vIGN1cnJlbnQgdmFsdWUuIFNpbmNlIHdlIGRvbid0LCBpdCBp
cyBpcnJlbGV2YW50IHJpZ2h0IG5vdy4KKyAgICAvLyBBbmQgeWVzLCB0aGUgbmFtZSBzb3VuZHMg
bWlzbGVhZGluZyBidXQgY29tZXMgZnJvbSBXZWJDb3JlLgorfQorCit2b2lkIFdlYkNvbG9yQ2hv
b3NlclByb3h5UXQ6Om5vdGlmeUNvbG9yU2VsZWN0ZWQoY29uc3QgUUNvbG9yJiBjb2xvcikKK3sK
KyAgICBpZiAoIW1fY2xpZW50KQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBBbHBoYSBpcyBh
bHdheXMgaWdub3JlZCBieSB0aGUgY29sb3IgaW5wdXQKKyAgICBDb2xvciBjb3JlQ29sb3IgPSBt
YWtlUkdCKGNvbG9yLnJlZCgpLCBjb2xvci5ncmVlbigpLCBjb2xvci5ibHVlKCkpOworICAgIG1f
Y2xpZW50LT5kaWRDaG9vc2VDb2xvcihjb3JlQ29sb3IpOworCisgICAgZW5kQ2hvb3NlcigpOwor
fQorCit2b2lkIFdlYkNvbG9yQ2hvb3NlclByb3h5UXQ6OmVuZENob29zZXIoKQoreworICAgIFFR
dWlja1dlYlZpZXdQcml2YXRlOjpnZXQobV93ZWJWaWV3KS0+c2V0RGlhbG9nQWN0aXZlKGZhbHNl
KTsKKworICAgIG1fY29sb3JDaG9vc2VyLmNsZWFyKCk7CisgICAgbV9jb250ZXh0LmNsZWFyKCk7
CisKKyAgICBpZiAoIW1fY2xpZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NsaWVudC0+
ZGlkRW5kQ29sb3JDaG9vc2VyKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjaW5j
bHVkZSAiV2ViQ29sb3JDaG9vc2VyUHJveHlRdC5tb2MiCisjaW5jbHVkZSAibW9jX1dlYkNvbG9y
Q2hvb3NlclByb3h5UXQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1dlYkNvbG9yQ2hvb3NlclByb3h5UXQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9x
dC9XZWJDb2xvckNob29zZXJQcm94eVF0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzVhNzRhMmY2YTI3YjZhMmRl
ZTk5NzgzYTVhNzdmYmY1YzAwOTFmNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9XZWJDb2xvckNob29zZXJQcm94eVF0LmgKQEAgLTAsMCArMSw3MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CisgKgorICovCisKKyNpZm5kZWYgV2ViQ29sb3JDaG9vc2VyUHJveHlRdF9oCisjZGVmaW5lIFdl
YkNvbG9yQ2hvb3NlclByb3h5UXRfaAorCisjaW5jbHVkZSAiV2ViQ29sb3JDaG9vc2VyUHJveHku
aCIKKyNpbmNsdWRlIDxRdENvcmUvUU9iamVjdD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisK
K2NsYXNzIFFRbWxDb21wb25lbnQ7CitjbGFzcyBRUW1sQ29udGV4dDsKK2NsYXNzIFFRdWlja0l0
ZW07CitjbGFzcyBRUXVpY2tXZWJWaWV3OworCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBD
b2xvcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkNvbG9yQ2hvb3NlclBy
b3h5UXQgOiBwdWJsaWMgUU9iamVjdCwgcHVibGljIFdlYkNvbG9yQ2hvb3NlclByb3h5IHsKKyAg
ICBRX09CSkVDVAorCitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQ29sb3JDaG9v
c2VyUHJveHk+IGNyZWF0ZShXZWJDb2xvckNob29zZXJQcm94eTo6Q2xpZW50KiBjbGllbnQsIFFR
dWlja1dlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFsQ29sb3Ip
CisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkNvbG9yQ2hvb3NlclByb3h5
UXQoY2xpZW50LCB3ZWJWaWV3LCBpbml0aWFsQ29sb3IpKTsKKyAgICB9CisgICAgfldlYkNvbG9y
Q2hvb3NlclByb3h5UXQoKTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZENvbG9yKGNv
bnN0IFdlYkNvcmU6OkNvbG9yJik7CisKK3B1YmxpYyBRX1NMT1RTOgorICAgIHZpcnR1YWwgdm9p
ZCBlbmRDaG9vc2VyKCk7CisKK3ByaXZhdGUgUV9TTE9UUzoKKyAgICB2b2lkIG5vdGlmeUNvbG9y
U2VsZWN0ZWQoY29uc3QgUUNvbG9yJik7CisKK3ByaXZhdGU6CisgICAgV2ViQ29sb3JDaG9vc2Vy
UHJveHlRdChXZWJDb2xvckNob29zZXJQcm94eTo6Q2xpZW50KiwgUVF1aWNrV2ViVmlldyosIGNv
bnN0IFdlYkNvcmU6OkNvbG9yJik7CisKKyAgICB2b2lkIGNyZWF0ZUl0ZW0oUU9iamVjdCopOwor
ICAgIHZvaWQgY3JlYXRlQ29udGV4dChRUW1sQ29tcG9uZW50KiwgUU9iamVjdCopOworCisgICAg
T3duUHRyPFFRbWxDb250ZXh0PiBtX2NvbnRleHQ7CisgICAgT3duUHRyPFFRdWlja0l0ZW0+IG1f
Y29sb3JDaG9vc2VyOworCisgICAgUVF1aWNrV2ViVmlldyogbV93ZWJWaWV3OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJDb2xvckNob29zZXJQcm94eVF0X2gK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147547</attachid>
            <date>2012-06-14 03:40:18 -0700</date>
            <delta_ts>2012-06-21 03:59:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87749-20120614134158.patch</filename>
            <type>text/plain</type>
            <size>18047</size>
            <attacher name="Thiago Marcos P. Santos">tmpsantos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMjk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDJhNDNiNjUxMTdh
MmQ5MDI2ZjEzOTUyNzViYjZkZmRjYWZmYWNlNzQuLmQ5ZDJkZTI2NjRmMWIzNTdmMGVhMjI5ZWYz
ODdmNmIxNmJkNjIwMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMDYt
MTQgIFRoaWFnbyBNYXJjb3MgUC4gU2FudG9zICA8dGhpYWdvLnNhbnRvc0BpbnRlbC5jb20+CisK
KyAgICAgICAgW1dLMl1bUXRdIENvbG9yIGNob29zZXIgQVBJIG1pc3NpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3NzQ5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCisKKyAgICAgICAgQWRkZWQgQ29s
b3JDaG9vc2VyIEFQSSBzdHViIHRvIFdlYktpdC4gT3RoZXJ3aXNlCisgICAgICAgIGl0IHdpbGwg
YnJlYWsgdGhlIGJ1aWxkIGZvciBRdCBXZWJLaXQyICh0aGF0IG5vdyBoYXMKKyAgICAgICAgY29t
cGxldGUgc3VwcG9ydCBmb3IgY29sb3IgY2hvb3Nlcikgd2hlbiBJTlBVVF9UWVBFX0NPTE9SIGlz
IHNldC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OmNyZWF0
ZUNvbG9yQ2hvb3Nlcik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQu
aDoKKyAgICAgICAgKENocm9tZUNsaWVudFF0KToKKwogMjAxMi0wNi0xMyAgU2ltb24gSGF1c21h
bm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBSZW1vdmUgZGVw
ZW5kZW5jeSB0byBRdFNjcmlwdCBmb3IgdGhlIFF0IDUgYnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2YWZk
Y2U0MjQ3YTc2ZTI0OWU5ZjBiYmYxMjAzZDM3MjQwNmRmNzM1Li4wZjAzNTRmYTM2YjU2MDI1MDM4
ZDdjN2ZlYTAxYTQyNTNiNjc2NTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNTAgQEAKIDIwMTIt
MDYtMTQgIFRoaWFnbyBNYXJjb3MgUC4gU2FudG9zICA8dGhpYWdvLnNhbnRvc0BpbnRlbC5jb20+
CiAKKyAgICAgICAgW1dLMl1bUXRdIENvbG9yIGNob29zZXIgQVBJIG1pc3NpbmcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3NzQ5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCisKKyAgICAgICAgQWRkZWQg
cHVibGljIGV4cGVyaW1lbnRhbCBBUEkgZm9yIENvbG9yQ2hvb3Nlci4gVGhpcyB3aWxsCisgICAg
ICAgIGFsbG93IHRoZSBicm93c2VyIHRvIGRlZmluZSBhIGN1c3RvbSBkaWFsb2cgZm9yIHNlbGVj
dGluZworICAgICAgICBjb2xvciB3aGVuIGEgaW5wdXQgZmllbGQgb2YgdHlwZSAiY29sb3IiIGdl
dCBmb2N1cy4KKworICAgICAgICBUaGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBnaXZlcyBhIG1v
ZGVsIHRvIHRoZSBRTUwgQ29tcG9uZW50CisgICAgICAgIHRoYXQgaGFzIG1ldGhvZHMgZm9yIGNh
bmNlbGluZyBhIHJlcXVlc3QsIHNlbGVjdGluZyBhIGNvbG9yCisgICAgICAgIGFuZCBmZXRjaGlu
ZyB3aGF0IGlzIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBIVE1MIGlucHV0LgorCisgICAgICAg
ICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcu
Y3BwOgorICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZhdGU6OlFRdWlja1dlYlZpZXdQcml2YXRl
KToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OmNvbG9yQ2hvb3Nlcik6Cisg
ICAgICAgIChRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjpzZXRDb2xvckNob29zZXIpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oOgorICAgICAgICAoUVF1aWNrV2ViVmll
d1ByaXZhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFBhZ2VDbGllbnQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpRdFBhZ2VDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3NlclByb3h5KToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvcXQvV2ViQ29sb3JDaG9vc2VyUHJveHlRdC5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKENvbG9yQ2hvb3NlckNvbnRleHRPYmplY3QpOgor
ICAgICAgICAoV2ViS2l0OjpDb2xvckNob29zZXJDb250ZXh0T2JqZWN0OjpDb2xvckNob29zZXJD
b250ZXh0T2JqZWN0KToKKyAgICAgICAgKFdlYktpdDo6Q29sb3JDaG9vc2VyQ29udGV4dE9iamVj
dDo6Y3VycmVudENvbG9yKToKKyAgICAgICAgKFdlYktpdDo6Q29sb3JDaG9vc2VyQ29udGV4dE9i
amVjdDo6YWNjZXB0KToKKyAgICAgICAgKFdlYktpdDo6Q29sb3JDaG9vc2VyQ29udGV4dE9iamVj
dDo6cmVqZWN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyUHJveHlRdDo6V2Vi
Q29sb3JDaG9vc2VyUHJveHlRdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3NlclBy
b3h5UXQ6On5XZWJDb2xvckNob29zZXJQcm94eVF0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29s
b3JDaG9vc2VyUHJveHlRdDo6Y3JlYXRlSXRlbSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9y
Q2hvb3NlclByb3h5UXQ6OmNyZWF0ZUNvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xv
ckNob29zZXJQcm94eVF0OjpzZXRTZWxlY3RlZENvbG9yKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q29sb3JDaG9vc2VyUHJveHlRdDo6bm90aWZ5Q29sb3JTZWxlY3RlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYkNvbG9yQ2hvb3NlclByb3h5UXQ6OmVuZENob29zZXIpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9xdC9XZWJDb2xvckNob29zZXJQcm94eVF0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViQ29sb3JDaG9vc2VyUHJveHlRdCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3NlclByb3h5UXQ6OmNyZWF0ZSk6CisKKzIw
MTItMDYtMTQgIFRoaWFnbyBNYXJjb3MgUC4gU2FudG9zICA8dGhpYWdvLnNhbnRvc0BpbnRlbC5j
b20+CisKICAgICAgICAgW1dLMl0gQ29sb3IgY2hvb3NlciBBUEkgbWlzc2luZwogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc0OTUKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAgYi9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAppbmRleCBj
MWI4MTZjMmFlZWYxZDA2MGUwNzVkZmUyMzA5ODI4MmNhMWYyNmQ4Li5iMjFjZTllOTgwMTQxODY2
NjE0MTExOTU4YzUxYTVhMTE5ODhlOTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1
ZGUgIkNocm9tZUNsaWVudFF0LmgiCiAKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlU3RvcmFn
ZS5oIgorI2luY2x1ZGUgIkNvbG9yQ2hvb3Nlci5oIgogI2luY2x1ZGUgIkRhdGFiYXNlVHJhY2tl
ci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRmlsZUNob29zZXIuaCIKQEAg
LTU1Nyw2ICs1NTgsMTQgQEAgdm9pZCBDaHJvbWVDbGllbnRRdDo6cmVhY2hlZEFwcGxpY2F0aW9u
Q2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiogb3JpZ2luLAogICAgIGVtaXQgbV93ZWJQ
YWdlLT5hcHBsaWNhdGlvbkNhY2hlUXVvdGFFeGNlZWRlZChzZWN1cml0eU9yaWdpbiwgZGVmYXVs
dE9yaWdpblF1b3RhLCBzdGF0aWNfY2FzdDxxdWludDY0Pih0b3RhbFNwYWNlTmVlZGVkKSk7CiB9
CiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKK1Bhc3NPd25QdHI8Q29sb3JDaG9vc2Vy
PiBDaHJvbWVDbGllbnRRdDo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCos
IGNvbnN0IENvbG9yJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxs
cHRyOworfQorI2VuZGlmCisKIHZvaWQgQ2hyb21lQ2xpZW50UXQ6OnJ1bk9wZW5QYW5lbChGcmFt
ZSogZnJhbWUsIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+IHBycEZpbGVDaG9vc2VyKQogewogICAg
IFJlZlB0cjxGaWxlQ2hvb3Nlcj4gZmlsZUNob29zZXIgPSBwcnBGaWxlQ2hvb3NlcjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCBi
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAppbmRleCA2
YzI2MDE4YmNkOGY5NjUxYzMzYzVkYTdiNzEzMTIyMDg0ZDIxYWQzLi5hN2Q3ZGMyM2UyZWUwNTEw
MjUwOGE0MDhkMjA1NTExNGMwZTAzNGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCkBAIC0xNjMsNiArMTYzLDExIEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFjaygpOwog
ICAgIEZ1bGxTY3JlZW5WaWRlb1F0KiBmdWxsU2NyZWVuVmlkZW8oKTsKICNlbmRpZgorCisjaWYg
RU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAgdmlydHVhbCBQYXNzT3duUHRyPENvbG9yQ2hv
b3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IENvbG9y
Jik7CisjZW5kaWYKKwogICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lKiwgUGFz
c1JlZlB0cjxGaWxlQ2hvb3Nlcj4pOwogICAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxl
cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVyKik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCmlu
ZGV4IDNlYTI2ZWU2NmMzZTM0MmEyOTFiM2VjMmRlYjEwNzFkYWQ3MjRlZWUuLmU3YTE4MjQyYjMx
M2QxZjkxMjA0N2UwZGViMTY0YjNlODA5ODU5NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQpAQCAtODA1LDYgKzgw
NSwxMyBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfVE9VQ0hfRVZFTlRTPTEpIHsKICAgICAg
ICAgU2hhcmVkL3F0L05hdGl2ZVdlYlRvdWNoRXZlbnRRdC5jcHAKIH0KIAorY29udGFpbnMoREVG
SU5FUywgRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1I9MSkgeworICAgIEhFQURFUlMgKz0gXAorICAg
ICAgICBVSVByb2Nlc3MvcXQvV2ViQ29sb3JDaG9vc2VyUHJveHlRdC5oCisgICAgU09VUkNFUyAr
PSBcCisgICAgICAgIFVJUHJvY2Vzcy9xdC9XZWJDb2xvckNob29zZXJQcm94eVF0LmNwcAorfQor
CiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfR0VPTE9DQVRJT049MSk6IFFUICs9IGxvY2F0aW9u
CiAKIHBsdWdpbl9iYWNrZW5kX3hsaWIgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKaW5kZXggNmRmNTQ2NmVjMTM4YjE2MjkxMWVjODA2
N2Y3ZDg1OGM5YjQ1ZWY1Ny4uNjc1ODAzNGNkMjVhNjY2YzM5ZTExN2I5MGI5OWQ1ODIyNjQxOGQx
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZp
ZXcuY3BwCkBAIC0yNjYsNiArMjY2LDcgQEAgUVF1aWNrV2ViVmlld1ByaXZhdGU6OlFRdWlja1dl
YlZpZXdQcml2YXRlKFFRdWlja1dlYlZpZXcqIHZpZXdwb3J0KQogICAgICwgcHJveHlBdXRoZW50
aWNhdGlvbkRpYWxvZygwKQogICAgICwgZmlsZVBpY2tlcigwKQogICAgICwgZGF0YWJhc2VRdW90
YURpYWxvZygwKQorICAgICwgY29sb3JDaG9vc2VyKDApCiAgICAgLCBtX3VzZURlZmF1bHRDb250
ZW50SXRlbVNpemUodHJ1ZSkKICAgICAsIG1fbmF2aWdhdG9yUXRPYmplY3RFbmFibGVkKGZhbHNl
KQogICAgICwgbV9yZW5kZXJUb09mZnNjcmVlbkJ1ZmZlcihmYWxzZSkKQEAgLTExNDYsNiArMTE0
NywyMiBAQCB2b2lkIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OnNldERhdGFiYXNlUXVvdGFE
aWFsb2coUVFtbENvbXBvbmVudCogZGF0YWJhc2VRdQogICAgIGVtaXQgZGF0YWJhc2VRdW90YURp
YWxvZ0NoYW5nZWQoKTsKIH0KIAorUVFtbENvbXBvbmVudCogUVF1aWNrV2ViVmlld0V4cGVyaW1l
bnRhbDo6Y29sb3JDaG9vc2VyKCkgY29uc3QKK3sKKyAgICBRX0QoY29uc3QgUVF1aWNrV2ViVmll
dyk7CisgICAgcmV0dXJuIGQtPmNvbG9yQ2hvb3NlcjsKK30KKwordm9pZCBRUXVpY2tXZWJWaWV3
RXhwZXJpbWVudGFsOjpzZXRDb2xvckNob29zZXIoUVFtbENvbXBvbmVudCogY29sb3JDaG9vc2Vy
KQoreworICAgIFFfRChRUXVpY2tXZWJWaWV3KTsKKyAgICBpZiAoZC0+Y29sb3JDaG9vc2VyID09
IGNvbG9yQ2hvb3NlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgZC0+Y29sb3JDaG9vc2VyID0g
Y29sb3JDaG9vc2VyOworICAgIGVtaXQgY29sb3JDaG9vc2VyQ2hhbmdlZCgpOworfQorCiBRU3Ry
aW5nIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OnVzZXJBZ2VudCgpIGNvbnN0CiB7CiAgICAg
UV9EKGNvbnN0IFFRdWlja1dlYlZpZXcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKaW5kZXggYjAwZTEyZTRiZTVmOGMxMGM5ZDI5ZGU0
MzhmZDg0OTE1NWRjYjFiYS4uZTJjOGMwZGFkZjFhODFkMWMwYmM2YmQxMmY2M2Q3ODcxMmQ1ZGRm
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2
aWV3X3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZp
ZXdfcC5oCkBAIC0yNjUsNiArMjY1LDcgQEAgY2xhc3MgUVdFQktJVF9FWFBPUlQgUVF1aWNrV2Vi
Vmlld0V4cGVyaW1lbnRhbCA6IHB1YmxpYyBRT2JqZWN0IHsKICAgICBRX1BST1BFUlRZKFFRbWxD
b21wb25lbnQqIGl0ZW1TZWxlY3RvciBSRUFEIGl0ZW1TZWxlY3RvciBXUklURSBzZXRJdGVtU2Vs
ZWN0b3IgTk9USUZZIGl0ZW1TZWxlY3RvckNoYW5nZWQpCiAgICAgUV9QUk9QRVJUWShRUW1sQ29t
cG9uZW50KiBmaWxlUGlja2VyIFJFQUQgZmlsZVBpY2tlciBXUklURSBzZXRGaWxlUGlja2VyIE5P
VElGWSBmaWxlUGlja2VyQ2hhbmdlZCkKICAgICBRX1BST1BFUlRZKFFRbWxDb21wb25lbnQqIGRh
dGFiYXNlUXVvdGFEaWFsb2cgUkVBRCBkYXRhYmFzZVF1b3RhRGlhbG9nIFdSSVRFIHNldERhdGFi
YXNlUXVvdGFEaWFsb2cgTk9USUZZIGRhdGFiYXNlUXVvdGFEaWFsb2dDaGFuZ2VkKQorICAgIFFf
UFJPUEVSVFkoUVFtbENvbXBvbmVudCogY29sb3JDaG9vc2VyIFJFQUQgY29sb3JDaG9vc2VyIFdS
SVRFIHNldENvbG9yQ2hvb3NlciBOT1RJRlkgY29sb3JDaG9vc2VyQ2hhbmdlZCkKIAogICAgIFFf
UFJPUEVSVFkoUVdlYlByZWZlcmVuY2VzKiBwcmVmZXJlbmNlcyBSRUFEIHByZWZlcmVuY2VzIENP
TlNUQU5UIEZJTkFMKQogICAgIFFfUFJPUEVSVFkoUVdlYktpdFRlc3QqIHRlc3QgUkVBRCB0ZXN0
IENPTlNUQU5UIEZJTkFMKQpAQCAtMzAwLDYgKzMwMSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dEZpbGVQaWNrZXIoUVFtbENvbXBvbmVudCopOwogICAgIFFRbWxDb21wb25lbnQqIGRhdGFiYXNl
UXVvdGFEaWFsb2coKSBjb25zdDsKICAgICB2b2lkIHNldERhdGFiYXNlUXVvdGFEaWFsb2coUVFt
bENvbXBvbmVudCopOworICAgIFFRbWxDb21wb25lbnQqIGNvbG9yQ2hvb3NlcigpIGNvbnN0Owor
ICAgIHZvaWQgc2V0Q29sb3JDaG9vc2VyKFFRbWxDb21wb25lbnQqKTsKICAgICBRU3RyaW5nIHVz
ZXJBZ2VudCgpIGNvbnN0OwogICAgIHZvaWQgc2V0VXNlckFnZW50KGNvbnN0IFFTdHJpbmcmIHVz
ZXJBZ2VudCk7CiAgICAgaW50IGRldmljZVdpZHRoKCkgY29uc3Q7CkBAIC0zNTYsNiArMzU5LDcg
QEAgUV9TSUdOQUxTOgogICAgIHZvaWQgaXRlbVNlbGVjdG9yQ2hhbmdlZCgpOwogICAgIHZvaWQg
ZmlsZVBpY2tlckNoYW5nZWQoKTsKICAgICB2b2lkIGRhdGFiYXNlUXVvdGFEaWFsb2dDaGFuZ2Vk
KCk7CisgICAgdm9pZCBjb2xvckNob29zZXJDaGFuZ2VkKCk7CiAgICAgdm9pZCBkb3dubG9hZFJl
cXVlc3RlZChRV2ViRG93bmxvYWRJdGVtKiBkb3dubG9hZEl0ZW0pOwogICAgIHZvaWQgcGVybWlz
c2lvblJlcXVlc3RlZChRV2ViUGVybWlzc2lvblJlcXVlc3QqIHBlcm1pc3Npb24pOwogICAgIHZv
aWQgbWVzc2FnZVJlY2VpdmVkKGNvbnN0IFFWYXJpYW50TWFwJiBtZXNzYWdlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaAppbmRl
eCBjNTUzNWEzYzgzN2IyNTE1ODcwNDZlNzIzYzhhNGMyYWNjN2JkYmVlLi5mMTAyZjYwMzAyNTI0
Y2QyZDZmNjdiMmQzNjFjMjU2YzU4YjY2MDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCkBAIC0xODUsNiArMTg1LDcgQEAg
cHJvdGVjdGVkOgogICAgIFFRbWxDb21wb25lbnQqIHByb3h5QXV0aGVudGljYXRpb25EaWFsb2c7
CiAgICAgUVFtbENvbXBvbmVudCogZmlsZVBpY2tlcjsKICAgICBRUW1sQ29tcG9uZW50KiBkYXRh
YmFzZVF1b3RhRGlhbG9nOworICAgIFFRbWxDb21wb25lbnQqIGNvbG9yQ2hvb3NlcjsKIAogICAg
IFFMaXN0PFFVcmw+IHVzZXJTY3JpcHRzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvUXRQYWdlQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9x
dC9RdFBhZ2VDbGllbnQuY3BwCmluZGV4IGViYTRmOGI4MDBhMzlmYTk5ODY4OTdiZDAxNmM3NzU2
ODZkNWNhOWEuLjgyZDYzODQ1ZDFkMzUyMTVlNzU3NzRkYjYwYTc5OTczNTg1MGVhODUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFBhZ2VDbGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFBhZ2VDbGllbnQuY3BwCkBAIC0yNiw2ICsy
Niw5IEBACiAjaW5jbHVkZSAiUXRXZWJQYWdlRXZlbnRIYW5kbGVyLmgiCiAjaW5jbHVkZSAiUXRX
ZWJVbmRvQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgorI2lmIEVO
QUJMRShJTlBVVF9UWVBFX0NPTE9SKQorI2luY2x1ZGUgIldlYkNvbG9yQ2hvb3NlclByb3h5UXQu
aCIKKyNlbmRpZgogI2luY2x1ZGUgIldlYkNvbnRleHRNZW51UHJveHlRdC5oIgogI2luY2x1ZGUg
IldlYkVkaXRDb21tYW5kUHJveHkuaCIKICNpbmNsdWRlICJXZWJQb3B1cE1lbnVQcm94eVF0Lmgi
CkBAIC0yMDYsMTAgKzIwOSw5IEBAIFBhc3NSZWZQdHI8V2ViQ29udGV4dE1lbnVQcm94eT4gUXRQ
YWdlQ2xpZW50OjpjcmVhdGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94CiB9CiAKICNpZiBF
TkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLVBhc3NSZWZQdHI8V2ViQ29sb3JDaG9vc2VyUHJveHk+
IFF0UGFnZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyUHJveHkoV2ViUGFnZVByb3h5KiwgY29u
c3QgV2ViQ29yZTo6Q29sb3ImKQorUGFzc1JlZlB0cjxXZWJDb2xvckNob29zZXJQcm94eT4gUXRQ
YWdlQ2xpZW50OjpjcmVhdGVDb2xvckNob29zZXJQcm94eShXZWJQYWdlUHJveHkqIHdlYlBhZ2VQ
cm94eSwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvcikKIHsKLSAgICBub3RJbXBs
ZW1lbnRlZCgpOwotICAgIHJldHVybiAwOworICAgIHJldHVybiBXZWJDb2xvckNob29zZXJQcm94
eVF0OjpjcmVhdGUod2ViUGFnZVByb3h5LCBtX3dlYlZpZXcsIGluaXRpYWxDb2xvcik7CiB9CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbG9y
Q2hvb3NlclByb3h5UXQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbG9y
Q2hvb3NlclByb3h5UXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0NmRhMzI2ZDY5OTFiMzcxYmJlNGE3MmM2
MWEwNWRiMmUwMGUwMTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvV2ViQ29sb3JDaG9vc2VyUHJveHlRdC5jcHAKQEAgLTAsMCArMSwxNTAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViQ29s
b3JDaG9vc2VyUHJveHlRdC5oIgorCisjaW5jbHVkZSAicXF1aWNrd2Vidmlld19wLmgiCisjaW5j
bHVkZSAicXF1aWNrd2Vidmlld19wX3AuaCIKKyNpbmNsdWRlIDxRdFFtbC9RUW1sQ29udGV4dD4K
KyNpbmNsdWRlIDxRdFFtbC9RUW1sRW5naW5lPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIENvbG9yQ2hvb3NlckNvbnRleHRPYmplY3Qg
OiBwdWJsaWMgUU9iamVjdCB7CisgICAgUV9PQkpFQ1QKKyAgICBRX1BST1BFUlRZKFFDb2xvciBj
dXJyZW50Q29sb3IgUkVBRCBjdXJyZW50Q29sb3IgQ09OU1RBTlQgRklOQUwpCisKK3B1YmxpYzoK
KyAgICBDb2xvckNob29zZXJDb250ZXh0T2JqZWN0KGNvbnN0IFFDb2xvciYgY29sb3IpCisgICAg
ICAgIDogbV9jdXJyZW50Q29sb3IoY29sb3IpCisgICAgeworICAgIH0KKworICAgIFFDb2xvciBj
dXJyZW50Q29sb3IoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRDb2xvcjsgfQorCisgICAgUV9J
TlZPS0FCTEUgdm9pZCBhY2NlcHQoY29uc3QgUUNvbG9yJiBjb2xvcikgeyBlbWl0IGFjY2VwdGVk
KGNvbG9yKTsgfTsKKyAgICBRX0lOVk9LQUJMRSB2b2lkIHJlamVjdCgpIHsgZW1pdCByZWplY3Rl
ZCgpOyB9CisKK1FfU0lHTkFMUzoKKyAgICB2b2lkIGFjY2VwdGVkKGNvbnN0IFFDb2xvciYpOwor
ICAgIHZvaWQgcmVqZWN0ZWQoKTsKKworcHJpdmF0ZToKKyAgICBRQ29sb3IgbV9jdXJyZW50Q29s
b3I7Cit9OworCitXZWJDb2xvckNob29zZXJQcm94eVF0OjpXZWJDb2xvckNob29zZXJQcm94eVF0
KFdlYkNvbG9yQ2hvb3NlclByb3h5OjpDbGllbnQqIGNsaWVudCwgUVF1aWNrV2ViVmlldyogd2Vi
VmlldywgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcikKKyAgICA6IFdlYkNvbG9yQ2hvb3NlclBy
b3h5KGNsaWVudCkKKyAgICAsIG1fd2ViVmlldyh3ZWJWaWV3KQoreworICAgIENvbG9yQ2hvb3Nl
ckNvbnRleHRPYmplY3QqIGNvbnRleHRPYmplY3QgPSBuZXcgQ29sb3JDaG9vc2VyQ29udGV4dE9i
amVjdChpbml0aWFsQ29sb3IpOworICAgIGNyZWF0ZUl0ZW0oY29udGV4dE9iamVjdCk7Cit9CisK
K1dlYkNvbG9yQ2hvb3NlclByb3h5UXQ6On5XZWJDb2xvckNob29zZXJQcm94eVF0KCkKK3sKK30K
Kwordm9pZCBXZWJDb2xvckNob29zZXJQcm94eVF0OjpjcmVhdGVJdGVtKFFPYmplY3QqIGNvbnRl
eHRPYmplY3QpCit7CisgICAgUVFtbENvbXBvbmVudCogY29tcG9uZW50ID0gbV93ZWJWaWV3LT5l
eHBlcmltZW50YWwoKS0+Y29sb3JDaG9vc2VyKCk7CisgICAgaWYgKCFjb21wb25lbnQpIHsKKyAg
ICAgICAgZGVsZXRlIGNvbnRleHRPYmplY3Q7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBjcmVhdGVDb250ZXh0KGNvbXBvbmVudCwgY29udGV4dE9iamVjdCk7CisgICAgUU9iamVjdCog
b2JqZWN0ID0gY29tcG9uZW50LT5iZWdpbkNyZWF0ZShtX2NvbnRleHQuZ2V0KCkpOworICAgIGlm
ICghb2JqZWN0KSB7CisgICAgICAgIG1fY29udGV4dC5jbGVhcigpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgbV9jb2xvckNob29zZXIgPSBhZG9wdFB0cihxb2JqZWN0X2Nhc3Q8UVF1
aWNrSXRlbSo+KG9iamVjdCkpOworICAgIGlmICghbV9jb2xvckNob29zZXIpIHsKKyAgICAgICAg
bV9jb250ZXh0LmNsZWFyKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBOZWVk
cyB0byBiZSBlbnF1ZXVlIGJlY2F1c2UgaXQgbWlnaHQgdHJpZ2dlciBkZWxldGlvbi4KKyAgICBj
b25uZWN0KGNvbnRleHRPYmplY3QsIFNJR05BTChhY2NlcHRlZChRQ29sb3IpKSwgU0xPVChub3Rp
ZnlDb2xvclNlbGVjdGVkKFFDb2xvcikpLCBRdDo6UXVldWVkQ29ubmVjdGlvbik7CisgICAgY29u
bmVjdChjb250ZXh0T2JqZWN0LCBTSUdOQUwocmVqZWN0ZWQoKSksIFNMT1QoZW5kQ2hvb3Nlcigp
KSwgUXQ6OlF1ZXVlZENvbm5lY3Rpb24pOworCisgICAgUVF1aWNrV2ViVmlld1ByaXZhdGU6Omdl
dChtX3dlYlZpZXcpLT5hZGRBdHRhY2hlZFByb3BlcnR5VG8obV9jb2xvckNob29zZXIuZ2V0KCkp
OworICAgIG1fY29sb3JDaG9vc2VyLT5zZXRQYXJlbnRJdGVtKG1fd2ViVmlldyk7CisKKyAgICBj
b21wb25lbnQtPmNvbXBsZXRlQ3JlYXRlKCk7CisgICAgUVF1aWNrV2ViVmlld1ByaXZhdGU6Omdl
dChtX3dlYlZpZXcpLT5zZXREaWFsb2dBY3RpdmUodHJ1ZSk7Cit9CisKK3ZvaWQgV2ViQ29sb3JD
aG9vc2VyUHJveHlRdDo6Y3JlYXRlQ29udGV4dChRUW1sQ29tcG9uZW50KiBjb21wb25lbnQsIFFP
YmplY3QqIGNvbnRleHRPYmplY3QpCit7CisgICAgUVFtbENvbnRleHQqIGJhc2VDb250ZXh0ID0g
Y29tcG9uZW50LT5jcmVhdGlvbkNvbnRleHQoKTsKKyAgICBpZiAoIWJhc2VDb250ZXh0KQorICAg
ICAgICBiYXNlQ29udGV4dCA9IFFRbWxFbmdpbmU6OmNvbnRleHRGb3JPYmplY3QobV93ZWJWaWV3
KTsKKyAgICBtX2NvbnRleHQgPSBhZG9wdFB0cihuZXcgUVFtbENvbnRleHQoYmFzZUNvbnRleHQp
KTsKKworICAgIGNvbnRleHRPYmplY3QtPnNldFBhcmVudChtX2NvbnRleHQuZ2V0KCkpOworICAg
IG1fY29udGV4dC0+c2V0Q29udGV4dFByb3BlcnR5KFFMYXRpbjFTdHJpbmcoIm1vZGVsIiksIGNv
bnRleHRPYmplY3QpOworICAgIG1fY29udGV4dC0+c2V0Q29udGV4dE9iamVjdChjb250ZXh0T2Jq
ZWN0KTsKK30KKwordm9pZCBXZWJDb2xvckNob29zZXJQcm94eVF0OjpzZXRTZWxlY3RlZENvbG9y
KGNvbnN0IENvbG9yJikKK3sKKyAgICAvLyBUaGlzIGlzIHN1cHBvc2UgdG8gYmUgdXNlZCB0byBy
ZWFjdCB0byBET00gY2hhbmdlcy4gV2hlbgorICAgIC8vIGEgdXNlciBzY3JpcHQgY2hhbmdlcyB0
aGUgaW5wdXQgdmFsdWUsIHRoZSBtZXRob2QgZ2l2ZXMgdGhlCisgICAgLy8gb3B0aW9uIHRvIHVw
ZGF0ZSB0aGUgY29sb3IgY2hvb3NlciBVSSBpZiB3ZSB3ZXJlIHNob3dpbmcgdGhlCisgICAgLy8g
Y3VycmVudCB2YWx1ZS4gU2luY2Ugd2UgZG9uJ3QsIGl0IGlzIGlycmVsZXZhbnQgcmlnaHQgbm93
LgorICAgIC8vIEFuZCB5ZXMsIHRoZSBuYW1lIHNvdW5kcyBtaXNsZWFkaW5nIGJ1dCBjb21lcyBm
cm9tIFdlYkNvcmUuCit9CisKK3ZvaWQgV2ViQ29sb3JDaG9vc2VyUHJveHlRdDo6bm90aWZ5Q29s
b3JTZWxlY3RlZChjb25zdCBRQ29sb3ImIGNvbG9yKQoreworICAgIGlmICghbV9jbGllbnQpCisg
ICAgICAgIHJldHVybjsKKworICAgIC8vIEFscGhhIGlzIGFsd2F5cyBpZ25vcmVkIGJ5IHRoZSBj
b2xvciBpbnB1dAorICAgIENvbG9yIGNvcmVDb2xvciA9IG1ha2VSR0IoY29sb3IucmVkKCksIGNv
bG9yLmdyZWVuKCksIGNvbG9yLmJsdWUoKSk7CisgICAgbV9jbGllbnQtPmRpZENob29zZUNvbG9y
KGNvcmVDb2xvcik7CisKKyAgICBlbmRDaG9vc2VyKCk7Cit9CisKK3ZvaWQgV2ViQ29sb3JDaG9v
c2VyUHJveHlRdDo6ZW5kQ2hvb3NlcigpCit7CisgICAgUVF1aWNrV2ViVmlld1ByaXZhdGU6Omdl
dChtX3dlYlZpZXcpLT5zZXREaWFsb2dBY3RpdmUoZmFsc2UpOworCisgICAgbV9jb2xvckNob29z
ZXIuY2xlYXIoKTsKKyAgICBtX2NvbnRleHQuY2xlYXIoKTsKKworICAgIGlmICghbV9jbGllbnQp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fY2xpZW50LT5kaWRFbmRDb2xvckNob29zZXIoKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNpbmNsdWRlICJXZWJDb2xvckNob29zZXJQ
cm94eVF0Lm1vYyIKKyNpbmNsdWRlICJtb2NfV2ViQ29sb3JDaG9vc2VyUHJveHlRdC5jcHAiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29sb3JDaG9vc2VyUHJv
eHlRdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbG9yQ2hvb3NlclByb3h5
UXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43NWE3NGEyZjZhMjdiNmEyZGVlOTk3ODNhNWE3N2ZiZjVjMDA5MWY3
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbG9y
Q2hvb3NlclByb3h5UXQuaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBX
ZWJDb2xvckNob29zZXJQcm94eVF0X2gKKyNkZWZpbmUgV2ViQ29sb3JDaG9vc2VyUHJveHlRdF9o
CisKKyNpbmNsdWRlICJXZWJDb2xvckNob29zZXJQcm94eS5oIgorI2luY2x1ZGUgPFF0Q29yZS9R
T2JqZWN0PgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKworY2xhc3MgUVFtbENvbXBvbmVudDsK
K2NsYXNzIFFRbWxDb250ZXh0OworY2xhc3MgUVF1aWNrSXRlbTsKK2NsYXNzIFFRdWlja1dlYlZp
ZXc7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENvbG9yOworfQorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgV2ViQ29sb3JDaG9vc2VyUHJveHlRdCA6IHB1YmxpYyBRT2JqZWN0
LCBwdWJsaWMgV2ViQ29sb3JDaG9vc2VyUHJveHkgeworICAgIFFfT0JKRUNUCisKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb2xvckNob29zZXJQcm94eT4gY3JlYXRlKFdlYkNv
bG9yQ2hvb3NlclByb3h5OjpDbGllbnQqIGNsaWVudCwgUVF1aWNrV2ViVmlldyogd2ViVmlldywg
Y29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvcikKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgV2ViQ29sb3JDaG9vc2VyUHJveHlRdChjbGllbnQsIHdlYlZpZXcsIGlu
aXRpYWxDb2xvcikpOworICAgIH0KKyAgICB+V2ViQ29sb3JDaG9vc2VyUHJveHlRdCgpOworCisg
ICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVkQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsK
KworcHVibGljIFFfU0xPVFM6CisgICAgdmlydHVhbCB2b2lkIGVuZENob29zZXIoKTsKKworcHJp
dmF0ZSBRX1NMT1RTOgorICAgIHZvaWQgbm90aWZ5Q29sb3JTZWxlY3RlZChjb25zdCBRQ29sb3Im
KTsKKworcHJpdmF0ZToKKyAgICBXZWJDb2xvckNob29zZXJQcm94eVF0KFdlYkNvbG9yQ2hvb3Nl
clByb3h5OjpDbGllbnQqLCBRUXVpY2tXZWJWaWV3KiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsK
KworICAgIHZvaWQgY3JlYXRlSXRlbShRT2JqZWN0Kik7CisgICAgdm9pZCBjcmVhdGVDb250ZXh0
KFFRbWxDb21wb25lbnQqLCBRT2JqZWN0Kik7CisKKyAgICBPd25QdHI8UVFtbENvbnRleHQ+IG1f
Y29udGV4dDsKKyAgICBPd25QdHI8UVF1aWNrSXRlbT4gbV9jb2xvckNob29zZXI7CisKKyAgICBR
UXVpY2tXZWJWaWV3KiBtX3dlYlZpZXc7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIFdlYkNvbG9yQ2hvb3NlclByb3h5UXRfaAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>