<?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>40107</bug_id>
          
          <creation_ts>2010-06-03 01:09:58 -0700</creation_ts>
          <short_desc>Impossible to set input method hints based HTML5 input types</short_desc>
          <delta_ts>2011-04-19 05:15:29 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt</keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Raine Makelainen">raine.makelainen</reporter>
          <assigned_to name="Raine Makelainen">raine.makelainen</assigned_to>
          <cc>andriy.sakhno</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>tkent</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>yael</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>233655</commentid>
    <comment_count>0</comment_count>
    <who name="Raine Makelainen">raine.makelainen</who>
    <bug_when>2010-06-03 01:09:58 -0700</bug_when>
    <thetext>When HTML5 input element is focused on a touch screen based environment, the correct virtual keyboard for the particular input should be selected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233663</commentid>
    <comment_count>1</comment_count>
    <who name="Raine Makelainen">raine.makelainen</who>
    <bug_when>2010-06-03 01:30:16 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; When HTML5 input element is focused on a touch screen based environment, the correct virtual keyboard for the particular input should be selected.

I&apos;d like start working on this with following approach:
- Adding EditorClientQt to support following input types: &quot;number&quot;, &quot;tel&quot;.
- Also some helper methods should be added to WebCore/html/HTMLInputElement

Thanks, Kenneth for feedback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233709</commentid>
    <comment_count>2</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-06-03 05:14:12 -0700</bug_when>
    <thetext>Sounds good! Im not on irc the next two days (holiday here) but feel free to email me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235194</commentid>
    <comment_count>3</comment_count>
      <attachid>58126</attachid>
    <who name="Raine Makelainen">raine.makelainen</who>
    <bug_when>2010-06-08 03:13:07 -0700</bug_when>
    <thetext>Created attachment 58126
Proposal to set input method hints for EditorClientQt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235196</commentid>
    <comment_count>4</comment_count>
    <who name="Raine Makelainen">raine.makelainen</who>
    <bug_when>2010-06-08 03:16:07 -0700</bug_when>
    <thetext>Darin to CC. There are some changes to HTMLInputElement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235243</commentid>
    <comment_count>5</comment_count>
      <attachid>58126</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-06-08 07:26:43 -0700</bug_when>
    <thetext>Comment on attachment 58126
Proposal to set input method hints for EditorClientQt

some comments:

&gt; Helper methods for checking &quot;tel&quot;, &quot;number&quot;, &quot;email&quot;,
&gt; and &quot;url&quot; input element types for HTMLInputElement.h.
&gt; 
&gt; EditorClientQt to support input method hints for &quot;number&quot;, &quot;tel&quot;,
&gt; &quot;email&quot;, and &quot;url&quot; HTML input elements.
&gt; 
&gt; Tests for HTML input elements and input method hints added for
&gt; QGraphicsWebView and QWebView.

Please make you commit message based on the ChangeLog contents. It generally also has Reviewed by and bug url lines.

&gt; Signed-off-by: Raine Makelainen &lt;raine.makelainen@nokia.com&gt;

Signed-off it is not used in WebKit , but generally &quot;Patch by XYZ&quot; just after &quot;Reviewed by ABC&quot;.

&gt; diff --git a/WebCore/html/HTMLInputElement.h b/WebCore/html/HTMLInputElement.h
&gt; index 363a25f..2527e8b 100644
&gt; --- a/WebCore/html/HTMLInputElement.h
&gt; +++ b/WebCore/html/HTMLInputElement.h
&gt; @@ -101,6 +101,10 @@ public:
&gt;      virtual bool isSearchField() const { return m_type == SEARCH; }
&gt;      virtual bool isInputTypeHidden() const { return m_type == HIDDEN; }
&gt;      virtual bool isPasswordField() const { return m_type == PASSWORD; }
&gt; +    virtual bool isTelephoneField() const { return m_type == TELEPHONE; }
&gt; +    virtual bool isNumberField() const { return m_type == NUMBER; }
&gt; +    virtual bool isEmailField() const { return m_type == EMAIL; }
&gt; +    virtual bool isUrlField() const { return m_type == URL; }

You are touching a cross platform code, so bug automatically is not Qt-specific, but can rather have the &apos;Qt&apos; keyword in it.

It should probably be a separate bug, blocking this one(?)

Good autotests, btw.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235757</commentid>
    <comment_count>6</comment_count>
    <who name="Raine Makelainen">raine.makelainen</who>
    <bug_when>2010-06-09 06:08:40 -0700</bug_when>
    <thetext>Removing [Qt] from title.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235786</commentid>
    <comment_count>7</comment_count>
      <attachid>58246</attachid>
    <who name="Raine Makelainen">raine.makelainen</who>
    <bug_when>2010-06-09 08:08:06 -0700</bug_when>
    <thetext>Created attachment 58246
2nd proposal for fix.

Commit log entry removed and change logs updated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235787</commentid>
    <comment_count>8</comment_count>
      <attachid>58246</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-06-09 08:21:32 -0700</bug_when>
    <thetext>Comment on attachment 58246
2nd proposal for fix.


&gt; +            if (frame-&gt;document()-&gt;focusedNode()-&gt;hasTagName(HTMLNames::inputTag)) {
&gt; +                inputElement = static_cast&lt;HTMLInputElement*&gt;(frame-&gt;document()-&gt;focusedNode());
&gt;              }

Should not use braces.


&gt; +                bool isPasswordField = false;
&gt; +                active = isPasswordField = inputElement-&gt;isPasswordField();

The - false here is useless.

&gt; +                webPageClient-&gt;setInputMethodHint(Qt::ImhHiddenText, isPasswordField);
&gt; +            } else {
&gt; +                // Set input method hints for &quot;number&quot;, &quot;tel&quot;, &quot;email&quot;, and &quot;url&quot; input elements.
&gt; +                webPageClient-&gt;setInputMethodHint(Qt::ImhDialableCharactersOnly, inputElement-&gt;isTelephoneField());
&gt; +                webPageClient-&gt;setInputMethodHint(Qt::ImhDigitsOnly, inputElement-&gt;isNumberField());
&gt; +                webPageClient-&gt;setInputMethodHint(Qt::ImhEmailCharactersOnly, inputElement-&gt;isEmailField());
&gt; +                webPageClient-&gt;setInputMethodHint(Qt::ImhUrlCharactersOnly, inputElement-&gt;isUrlField());

Are *ALL* of these defined for Qt 4.6 ? If not, we need some ifdefs. I do not believe that Email is available for instance.

r=me with these fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235796</commentid>
    <comment_count>9</comment_count>
      <attachid>58246</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-06-09 08:46:27 -0700</bug_when>
    <thetext>Comment on attachment 58246
2nd proposal for fix.

WebCore/html/HTMLInputElement.h:107
 +      virtual bool isUrlField() const { return m_type == URL; }
I don&apos;t think these new functions should be virtual.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235806</commentid>
    <comment_count>10</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-06-09 08:54:25 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 58246 [details])
&gt; WebCore/html/HTMLInputElement.h:107
&gt;  +      virtual bool isUrlField() const { return m_type == URL; }
&gt; I don&apos;t think these new functions should be virtual.

The already existing ones are virtual though. Maybe we should change those as well? or there is a reason why they are virtual</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235817</commentid>
    <comment_count>11</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-06-09 09:11:50 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; (From update of attachment 58246 [details] [details])
&gt; &gt; WebCore/html/HTMLInputElement.h:107
&gt; &gt;  +      virtual bool isUrlField() const { return m_type == URL; }
&gt; &gt; I don&apos;t think these new functions should be virtual.
&gt; 
&gt; The already existing ones are virtual though. Maybe we should change those as well? or there is a reason why they are virtual

The existing isFoo() functions override functions of dom/InputElement, and they are virtual. wml/WMLinputElement overrides them too.

If we have no reasons to add the new functions to dom/InputElement, we should remove virtual from the new functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235829</commentid>
    <comment_count>12</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-06-09 09:35:47 -0700</bug_when>
    <thetext>&gt; The existing isFoo() functions override functions of dom/InputElement, and they are virtual. wml/WMLinputElement overrides them too.
&gt; 
&gt; If we have no reasons to add the new functions to dom/InputElement, we should remove virtual from the new functions.

I agree. Raine, please fix this before committing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235931</commentid>
    <comment_count>13</comment_count>
    <who name="Raine Makelainen">raine.makelainen</who>
    <bug_when>2010-06-09 12:21:07 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 58246 [details])
&gt; 
&gt; &gt; +                bool isPasswordField = false;
&gt; &gt; +                active = isPasswordField = inputElement-&gt;isPasswordField();
&gt; 
&gt; The - false here is useless.
Right, actually whole variable is not needed. Variable active is enough. I&apos;ll clean this.

&gt; 
&gt; &gt; +                webPageClient-&gt;setInputMethodHint(Qt::ImhHiddenText, isPasswordField);
&gt; &gt; +            } else {
&gt; &gt; +                // Set input method hints for &quot;number&quot;, &quot;tel&quot;, &quot;email&quot;, and &quot;url&quot; input elements.
&gt; &gt; +                webPageClient-&gt;setInputMethodHint(Qt::ImhDialableCharactersOnly, inputElement-&gt;isTelephoneField());
&gt; &gt; +                webPageClient-&gt;setInputMethodHint(Qt::ImhDigitsOnly, inputElement-&gt;isNumberField());
&gt; &gt; +                webPageClient-&gt;setInputMethodHint(Qt::ImhEmailCharactersOnly, inputElement-&gt;isEmailField());
&gt; &gt; +                webPageClient-&gt;setInputMethodHint(Qt::ImhUrlCharactersOnly, inputElement-&gt;isUrlField());
&gt; 
&gt; Are *ALL* of these defined for Qt 4.6 ? If not, we need some ifdefs. I do not believe that Email is available for instance.

According to documentation we have them all for Qt 4.6:
http://doc.trolltech.com/4.6/qt.html#InputMethodHint-enum


&gt; 
&gt; r=me with these fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235981</commentid>
    <comment_count>14</comment_count>
      <attachid>58291</attachid>
    <who name="Raine Makelainen">raine.makelainen</who>
    <bug_when>2010-06-09 13:48:24 -0700</bug_when>
    <thetext>Created attachment 58291
3rd proposal for fix.

Review comments merged:
- Unnecessary braces removed
- isPasswordField bool variable removed (active is enough)
- New helper methods in HTMLInputElement defined without virtual</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236227</commentid>
    <comment_count>15</comment_count>
      <attachid>58246</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-10 01:25:12 -0700</bug_when>
    <thetext>Comment on attachment 58246
2nd proposal for fix.

Cleared Kenneth Rohde Christiansen&apos;s review+ from obsolete attachment 58246 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236373</commentid>
    <comment_count>16</comment_count>
      <attachid>58291</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-10 08:34:16 -0700</bug_when>
    <thetext>Comment on attachment 58291
3rd proposal for fix.

Clearing flags on attachment: 58291

Committed r60958: &lt;http://trac.webkit.org/changeset/60958&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236374</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-10 08:34:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239836</commentid>
    <comment_count>18</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-06-18 03:03:44 -0700</bug_when>
    <thetext>cherry-picked into qtwebkit-4.6 with commit 85a48bdb52a81a9d18477a347fba5f6c930af416</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239889</commentid>
    <comment_count>19</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-06-18 06:03:37 -0700</bug_when>
    <thetext>Revision r60958 cherry-picked into qtwebkit-2.0 with commit ab885e9fdbd7572bbb400b3c7ee7b51eb5b49e86</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312287</commentid>
    <comment_count>20</comment_count>
    <who name="Janne Koskinen">koshuin</who>
    <bug_when>2010-11-22 04:13:30 -0800</bug_when>
    <thetext>*** Bug 39676 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58126</attachid>
            <date>2010-06-08 03:13:07 -0700</date>
            <delta_ts>2010-06-09 08:08:06 -0700</delta_ts>
            <desc>Proposal to set input method hints for EditorClientQt</desc>
            <filename>0001-Qt-Set-input-method-hints-based-HTML5-input-types.patch</filename>
            <type>text/plain</type>
            <size>16700</size>
            <attacher name="Raine Makelainen">raine.makelainen</attacher>
            
              <data encoding="base64">RnJvbSBkZDg4YzhiNTY2Y2NkODY1OTFmNmU5M2RiNjdiYjQ0MjA4NzhmNTJmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSYWluZSBNYWtlbGFpbmVuIDxyYWluZS5tYWtlbGFpbmVuQG5v
a2lhLmNvbT4KRGF0ZTogVHVlLCA4IEp1biAyMDEwIDEyOjQ5OjA5ICswMzAwClN1YmplY3Q6IFtQ
QVRDSF0gW1F0XSBTZXQgaW5wdXQgbWV0aG9kIGhpbnRzIGJhc2VkIEhUTUw1IGlucHV0IHR5cGVz
CiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAxMDcKCkhlbHBlciBt
ZXRob2RzIGZvciBjaGVja2luZyAidGVsIiwgIm51bWJlciIsICJlbWFpbCIsCmFuZCAidXJsIiBp
bnB1dCBlbGVtZW50IHR5cGVzIGZvciBIVE1MSW5wdXRFbGVtZW50LmguCgpFZGl0b3JDbGllbnRR
dCB0byBzdXBwb3J0IGlucHV0IG1ldGhvZCBoaW50cyBmb3IgIm51bWJlciIsICJ0ZWwiLAoiZW1h
aWwiLCBhbmQgInVybCIgSFRNTCBpbnB1dCBlbGVtZW50cy4KClRlc3RzIGZvciBIVE1MIGlucHV0
IGVsZW1lbnRzIGFuZCBpbnB1dCBtZXRob2QgaGludHMgYWRkZWQgZm9yClFHcmFwaGljc1dlYlZp
ZXcgYW5kIFFXZWJWaWV3LgoKU2lnbmVkLW9mZi1ieTogUmFpbmUgTWFrZWxhaW5lbiA8cmFpbmUu
bWFrZWxhaW5lbkBub2tpYS5jb20+Ci0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDE2ICsrKysKIFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmggICAgICAgICAgICAgICAgICAgIHwgICAgNCArCiBXZWJLaXQvcXQvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjcgKysrKysrKwogV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcCAgICAgICAgfCAgIDM1ICsrKysrKy0t
LQogLi4uL3FncmFwaGljc3dlYnZpZXcvcmVzb3VyY2VzL2lucHV0X3R5cGVzLmh0bWwgICAgfCAg
ICA4ICsrCiAuLi4vcWdyYXBoaWNzd2Vidmlldy90c3RfcWdyYXBoaWNzd2Vidmlldy5jcHAgICAg
ICB8ICAgNzYgKysrKysrKysrKysrKysrKysrKysKIC4uLi9xZ3JhcGhpY3N3ZWJ2aWV3L3RzdF9x
Z3JhcGhpY3N3ZWJ2aWV3LnFyYyAgICAgIHwgICAgNiArKwogLi4uL3F0L3Rlc3RzL3F3ZWJ2aWV3
L3Jlc291cmNlcy9pbnB1dF90eXBlcy5odG1sICAgfCAgICA4ICsrCiBXZWJLaXQvcXQvdGVzdHMv
cXdlYnZpZXcvdHN0X3F3ZWJ2aWV3LmNwcCAgICAgICAgICB8ICAgNjMgKysrKysrKysrKysrKysr
Ky0KIFdlYktpdC9xdC90ZXN0cy9xd2Vidmlldy90c3RfcXdlYnZpZXcucXJjICAgICAgICAgIHwg
ICAgMSArCiAxMCBmaWxlcyBjaGFuZ2VkLCAyMzAgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25z
KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0L3F0L3Rlc3RzL3FncmFwaGljc3dlYnZpZXcv
cmVzb3VyY2VzL2lucHV0X3R5cGVzLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQvcXQv
dGVzdHMvcWdyYXBoaWNzd2Vidmlldy90c3RfcWdyYXBoaWNzd2Vidmlldy5xcmMKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBXZWJLaXQvcXQvdGVzdHMvcXdlYnZpZXcvcmVzb3VyY2VzL2lucHV0X3R5cGVz
Lmh0bWwKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDY5YjE4YmMuLmEzMGY5ZWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMDYtMDggIFJhaW5l
IE1ha2VsYWluZW4gIDxyYWluZS5tYWtlbGFpbmVuQG5va2lhLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIFNldCBpbnB1dCBtZXRob2Qg
aGludHMgYmFzZWQgSFRNTDUgaW5wdXQgdHlwZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMTA3CisKKyAgICAgICAgSGVscGVyIG1ldGhvZHMgZm9y
IGNoZWNraW5nICJ0ZWwiLCAibnVtYmVyIiwgImVtYWlsIiwgCisgICAgICAgIGFuZCAidXJsIiBp
bnB1dCBlbGVtZW50IHR5cGVzLgorCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojppc1RlbGVwaG9uZUZpZWxkKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmlzTnVtYmVyRmllbGQpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6aXNFbWFpbEZpZWxkKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmlzVXJsRmllbGQpOgorCiAyMDEwLTA2LTA3ICBK
dWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJldmVydGluZyBteSBIVE1MIGNvbW1lbnQgcGFyc2luZyBjaGFuZ2UgYXMgaXQKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5oCmluZGV4IDM2M2EyNWYuLjI1MjdlOGIgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuaApAQCAtMTAxLDYgKzEwMSwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29s
IGlzU2VhcmNoRmllbGQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gU0VBUkNIOyB9CiAgICAg
dmlydHVhbCBib29sIGlzSW5wdXRUeXBlSGlkZGVuKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09
IEhJRERFTjsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJl
dHVybiBtX3R5cGUgPT0gUEFTU1dPUkQ7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNUZWxlcGhvbmVG
aWVsZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBURUxFUEhPTkU7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgaXNOdW1iZXJGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBOVU1CRVI7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgaXNFbWFpbEZpZWxkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09
IEVNQUlMOyB9CisgICAgdmlydHVhbCBib29sIGlzVXJsRmllbGQoKSBjb25zdCB7IHJldHVybiBt
X3R5cGUgPT0gVVJMOyB9CiAKICAgICBib29sIGNoZWNrZWQoKSBjb25zdCB7IHJldHVybiBtX2No
ZWNrZWQ7IH0KICAgICB2b2lkIHNldENoZWNrZWQoYm9vbCwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQg
PSBmYWxzZSk7CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0L0No
YW5nZUxvZwppbmRleCBmZDU4YjY5Li43MDQ0YTBiIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hh
bmdlTG9nCisrKyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMC0w
Ni0wOCAgUmFpbmUgTWFrZWxhaW5lbiAgPHJhaW5lLm1ha2VsYWluZW5Abm9raWEuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gU2V0IGlu
cHV0IG1ldGhvZCBoaW50cyBiYXNlZCBIVE1MNSBpbnB1dCB0eXBlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAxMDcKKworICAgICAgICBFZGl0b3JD
bGllbnRRdCB0byBzdXBwb3J0IGlucHV0IG1ldGhvZCBoaW50cyBmb3IgIm51bWJlciIsICJ0ZWwi
LCAKKyAgICAgICAgImVtYWlsIiwgYW5kICJ1cmwiIEhUTUwgaW5wdXQgZWxlbWVudHMuCisKKyAg
ICAgICAgVGVzdHMgZm9yIEhUTUwgaW5wdXQgZWxlbWVudHMgYW5kIGlucHV0IG1ldGhvZCBoaW50
cyBhZGRlZCBmb3IgCisgICAgICAgIFFHcmFwaGljc1dlYlZpZXcgYW5kIFFXZWJWaWV3LgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yQ2xpZW50UXQ6OnNldElucHV0TWV0aG9kU3RhdGUpOgorICAgICAgICAqIHRl
c3RzL3FncmFwaGljc3dlYnZpZXcvcmVzb3VyY2VzL2lucHV0X3R5cGVzLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHRlc3RzL3FncmFwaGljc3dlYnZpZXcvdHN0X3FncmFwaGljc3dlYnZpZXcuY3Bw
OgorICAgICAgICAoR3JhcGhpY3NXZWJWaWV3OjpHcmFwaGljc1dlYlZpZXcpOgorICAgICAgICAo
R3JhcGhpY3NXZWJWaWV3OjpmaXJlTW91c2VDbGljayk6CisgICAgICAgICh0c3RfUUdyYXBoaWNz
V2ViVmlldzo6Zm9jdXNJbnB1dFR5cGVzKToKKyAgICAgICAgKiB0ZXN0cy9xZ3JhcGhpY3N3ZWJ2
aWV3L3RzdF9xZ3JhcGhpY3N3ZWJ2aWV3LnFyYzogQWRkZWQuCisgICAgICAgICogdGVzdHMvcXdl
YnZpZXcvcmVzb3VyY2VzL2lucHV0X3R5cGVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHRlc3Rz
L3F3ZWJ2aWV3L3RzdF9xd2Vidmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3OjpmaXJlTW91c2VD
bGljayk6CisgICAgICAgICh0c3RfUVdlYlZpZXc6OmZvY3VzSW5wdXRUeXBlcyk6CisgICAgICAg
ICogdGVzdHMvcXdlYnZpZXcvdHN0X3F3ZWJ2aWV3LnFyYzoKKwogMjAxMC0wNi0wNiAgQW50b25p
byBHb21lcyAgPHRvbmlraXRvb0B3ZWJraXQub3JnPiwgTGFzemxvIEdvbWJvcyAgPGxhc3psby4x
LmdvbWJvc0Bub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBDaHJpc3Rp
YW5zZW4sIEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudFF0LmNwcCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGll
bnRRdC5jcHAKaW5kZXggMWZkNDYyYy4uYmNkNWFhYSAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3BwCkBAIC01OTIsMjAgKzU5MiwzMSBAQCB2b2lkIEVkaXRv
ckNsaWVudFF0OjpzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgYWN0aXZlKQogICAgIFFXZWJQYWdl
Q2xpZW50KiB3ZWJQYWdlQ2xpZW50ID0gbV9wYWdlLT5kLT5jbGllbnQ7CiAgICAgaWYgKHdlYlBh
Z2VDbGllbnQpIHsKICNpZiBRVF9WRVJTSU9OID49IDB4MDQwNjAwCi0gICAgICAgIGJvb2wgaXNQ
YXNzd29yZEZpZWxkID0gZmFsc2U7Ci0gICAgICAgIGlmICghYWN0aXZlKSB7Ci0gICAgICAgICAg
ICAvLyBTZXR0aW5nIHRoZSBRdDo6V0FfSW5wdXRNZXRob2RFbmFibGVkIGF0dHJpYnV0ZSB0cnVl
IGFuZCBRdDo6SW1oSGlkZGVuVGV4dCBmbGFnCi0gICAgICAgICAgICAvLyBmb3IgcGFzc3dvcmQg
ZmllbGRzLiBUaGUgUXQgcGxhdGZvcm0gaXMgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHdo
aWNoIHdpZGdldCAKLSAgICAgICAgICAgIC8vIHdpbGwgcmVjZWl2ZSBpbnB1dCBtZXRob2QgZXZl
bnRzIGZvciBwYXNzd29yZCBmaWVsZHMuCi0gICAgICAgICAgICBGcmFtZSogZnJhbWUgPSBtX3Bh
Z2UtPmQtPnBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJhbWUoKTsKLSAg
ICAgICAgICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+ZG9jdW1lbnQoKSAmJiBmcmFtZS0+ZG9jdW1l
bnQoKS0+Zm9jdXNlZE5vZGUoKSkgewotICAgICAgICAgICAgICAgIGlmIChmcmFtZS0+ZG9jdW1l
bnQoKS0+Zm9jdXNlZE5vZGUoKS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmlucHV0VGFnKSkgewot
ICAgICAgICAgICAgICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBzdGF0
aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oZnJhbWUtPmRvY3VtZW50KCktPmZvY3VzZWROb2Rl
KCkpOwotICAgICAgICAgICAgICAgICAgICBhY3RpdmUgPSBpc1Bhc3N3b3JkRmllbGQgPSBpbnB1
dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpOwotICAgICAgICAgICAgICB9CisgICAgICAgIEhU
TUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IDA7CisgICAgICAgIEZyYW1lKiBmcmFtZSA9
IG1fcGFnZS0+ZC0+cGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgp
OworICAgICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPmRvY3VtZW50KCkgJiYgZnJhbWUtPmRvY3Vt
ZW50KCktPmZvY3VzZWROb2RlKCkpIHsKKyAgICAgICAgICAgIGlmIChmcmFtZS0+ZG9jdW1lbnQo
KS0+Zm9jdXNlZE5vZGUoKS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmlucHV0VGFnKSkgeworICAg
ICAgICAgICAgICAgIGlucHV0RWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQq
PihmcmFtZS0+ZG9jdW1lbnQoKS0+Zm9jdXNlZE5vZGUoKSk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KLSAgICAgICAgd2ViUGFnZUNsaWVudC0+c2V0SW5wdXRNZXRob2RIaW50KFF0OjpJbWhI
aWRkZW5UZXh0LCBpc1Bhc3N3b3JkRmllbGQpOworCisgICAgICAgIGlmIChpbnB1dEVsZW1lbnQp
IHsKKyAgICAgICAgICAgIGlmICghYWN0aXZlKSB7CisgICAgICAgICAgICAgICAgLy8gU2V0dGlu
ZyB0aGUgUXQ6OldBX0lucHV0TWV0aG9kRW5hYmxlZCBhdHRyaWJ1dGUgdHJ1ZSBhbmQgUXQ6Oklt
aEhpZGRlblRleHQgZmxhZworICAgICAgICAgICAgICAgIC8vIGZvciBwYXNzd29yZCBmaWVsZHMu
IFRoZSBRdCBwbGF0Zm9ybSBpcyByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgd2hpY2ggd2lk
Z2V0CisgICAgICAgICAgICAgICAgLy8gd2lsbCByZWNlaXZlIGlucHV0IG1ldGhvZCBldmVudHMg
Zm9yIHBhc3N3b3JkIGZpZWxkcy4KKyAgICAgICAgICAgICAgICBib29sIGlzUGFzc3dvcmRGaWVs
ZCA9IGZhbHNlOworICAgICAgICAgICAgICAgIGFjdGl2ZSA9IGlzUGFzc3dvcmRGaWVsZCA9IGlu
cHV0RWxlbWVudC0+aXNQYXNzd29yZEZpZWxkKCk7CisgICAgICAgICAgICAgICAgd2ViUGFnZUNs
aWVudC0+c2V0SW5wdXRNZXRob2RIaW50KFF0OjpJbWhIaWRkZW5UZXh0LCBpc1Bhc3N3b3JkRmll
bGQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBTZXQgaW5wdXQg
bWV0aG9kIGhpbnRzIGZvciAibnVtYmVyIiwgInRlbCIsICJlbWFpbCIsIGFuZCAidXJsIiBpbnB1
dCBlbGVtZW50cy4KKyAgICAgICAgICAgICAgICB3ZWJQYWdlQ2xpZW50LT5zZXRJbnB1dE1ldGhv
ZEhpbnQoUXQ6OkltaERpYWxhYmxlQ2hhcmFjdGVyc09ubHksIGlucHV0RWxlbWVudC0+aXNUZWxl
cGhvbmVGaWVsZCgpKTsKKyAgICAgICAgICAgICAgICB3ZWJQYWdlQ2xpZW50LT5zZXRJbnB1dE1l
dGhvZEhpbnQoUXQ6OkltaERpZ2l0c09ubHksIGlucHV0RWxlbWVudC0+aXNOdW1iZXJGaWVsZCgp
KTsKKyAgICAgICAgICAgICAgICB3ZWJQYWdlQ2xpZW50LT5zZXRJbnB1dE1ldGhvZEhpbnQoUXQ6
OkltaEVtYWlsQ2hhcmFjdGVyc09ubHksIGlucHV0RWxlbWVudC0+aXNFbWFpbEZpZWxkKCkpOwor
ICAgICAgICAgICAgICAgIHdlYlBhZ2VDbGllbnQtPnNldElucHV0TWV0aG9kSGludChRdDo6SW1o
VXJsQ2hhcmFjdGVyc09ubHksIGlucHV0RWxlbWVudC0+aXNVcmxGaWVsZCgpKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorCiAjaWYgZGVmaW5lZChRX1dTX01BRU1PXzUpIHx8IGRlZmluZWQo
UV9XU19NQUVNT182KSB8fCBkZWZpbmVkKFFfT1NfU1lNQklBTikKICAgICAgICAgLy8gZGlzYWJs
ZXMgYXV0by11cHBlcmNhc2UgYW5kIHByZWRpY3RpdmUgdGV4dCBmb3IgbW9iaWxlIGRldmljZXMK
ICAgICAgICAgd2ViUGFnZUNsaWVudC0+c2V0SW5wdXRNZXRob2RIaW50KFF0OjpJbWhOb0F1dG9V
cHBlcmNhc2UsIHRydWUpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L3Rlc3RzL3FncmFwaGljc3dl
YnZpZXcvcmVzb3VyY2VzL2lucHV0X3R5cGVzLmh0bWwgYi9XZWJLaXQvcXQvdGVzdHMvcWdyYXBo
aWNzd2Vidmlldy9yZXNvdXJjZXMvaW5wdXRfdHlwZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4xOGFiMzE0Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L3F0L3Rl
c3RzL3FncmFwaGljc3dlYnZpZXcvcmVzb3VyY2VzL2lucHV0X3R5cGVzLmh0bWwKQEAgLTAsMCAr
MSw4IEBACis8aHRtbD48Ym9keT4KKzxpbnB1dCB0eXBlPSd0ZXh0JyBtYXhsZW5ndGg9JzIwJyBz
dHlsZT0ncG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMHB4OyB0b3A6IDBweDsgaGVpZ2h0OiA1
MHB4OyB3aWR0aDogMTAwcHg7Jy8+PGJyPgorPGlucHV0IHR5cGU9J3Bhc3N3b3JkJyBzdHlsZT0n
cG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMHB4OyB0b3A6IDUwcHg7IGhlaWdodDogNTBweDsg
d2lkdGg6IDEwMHB4OycvPjxicj4KKzxpbnB1dCB0eXBlPSd0ZWwnIHN0eWxlPSdwb3NpdGlvbjog
YWJzb2x1dGU7IGxlZnQ6IDEwcHg7IHRvcDogMTAwcHg7IGhlaWdodDogNTBweDsgd2lkdGg6IDEw
MHB4OycvPjxicj4KKzxpbnB1dCB0eXBlPSdudW1iZXInIHN0eWxlPSdwb3NpdGlvbjogYWJzb2x1
dGU7IGxlZnQ6IDEwcHg7IHRvcDogMTUwcHg7IGhlaWdodDogNTBweDsgd2lkdGg6IDEwMHB4Oycv
Pjxicj4KKzxpbnB1dCB0eXBlPSdlbWFpbCcgc3R5bGU9J3Bvc2l0aW9uOiBhYnNvbHV0ZTsgbGVm
dDogMTBweDsgdG9wOiAyMDBweDsgaGVpZ2h0OiA1MHB4OyB3aWR0aDogMTAwcHg7Jy8+PGJyPgor
PGlucHV0IHR5cGU9J3VybCcgc3R5bGU9J3Bvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTBweDsg
dG9wOiAyNTBweDsgaGVpZ2h0OiA1MHB4OyB3aWR0aDogMTAwcHg7Jy8+PGJyPiIKKzwvYm9keT48
L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0
L3Rlc3RzL3FncmFwaGljc3dlYnZpZXcvdHN0X3FncmFwaGljc3dlYnZpZXcuY3BwIGIvV2ViS2l0
L3F0L3Rlc3RzL3FncmFwaGljc3dlYnZpZXcvdHN0X3FncmFwaGljc3dlYnZpZXcuY3BwCmluZGV4
IGViZTg0N2QuLmUwNjUyNGQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC90ZXN0cy9xZ3JhcGhpY3N3
ZWJ2aWV3L3RzdF9xZ3JhcGhpY3N3ZWJ2aWV3LmNwcAorKysgYi9XZWJLaXQvcXQvdGVzdHMvcWdy
YXBoaWNzd2Vidmlldy90c3RfcWdyYXBoaWNzd2Vidmlldy5jcHAKQEAgLTE5LDYgKzE5LDcgQEAK
IAogI2luY2x1ZGUgIi4uL3V0aWwuaCIKICNpbmNsdWRlIDxRdFRlc3QvUXRUZXN0PgorI2luY2x1
ZGUgPFFHcmFwaGljc1NjZW5lTW91c2VFdmVudD4KICNpbmNsdWRlIDxRR3JhcGhpY3NWaWV3Pgog
I2luY2x1ZGUgPHFncmFwaGljc3dlYnZpZXcuaD4KICNpbmNsdWRlIDxxd2VicGFnZS5oPgpAQCAt
MzIsNiArMzMsNyBAQCBwcml2YXRlIHNsb3RzOgogICAgIHZvaWQgcWdyYXBoaWNzd2Vidmlldygp
OwogICAgIHZvaWQgY3Jhc2hPblZpZXdsZXNzV2ViUGFnZXMoKTsKICAgICB2b2lkIG1pY3JvRm9j
dXNDb29yZGluYXRlcygpOworICAgIHZvaWQgZm9jdXNJbnB1dFR5cGVzKCk7CiB9OwogCiB2b2lk
IHRzdF9RR3JhcGhpY3NXZWJWaWV3OjpxZ3JhcGhpY3N3ZWJ2aWV3KCkKQEAgLTc1LDYgKzc3LDI5
IEBAIHByaXZhdGUgc2xvdHM6CiAgICAgfQogfTsKIAorY2xhc3MgR3JhcGhpY3NXZWJWaWV3IDog
cHVibGljIFFHcmFwaGljc1dlYlZpZXcKK3sKKyAgICBRX09CSkVDVAorCitwdWJsaWM6CisgICAg
R3JhcGhpY3NXZWJWaWV3KFFHcmFwaGljc0l0ZW0qIHBhcmVudCA9IDApOiBRR3JhcGhpY3NXZWJW
aWV3KHBhcmVudCkKKyAgICB7CisgICAgfQorCisgICAgdm9pZCBmaXJlTW91c2VDbGljayhRUG9p
bnRGIHBvaW50KSB7CisgICAgICAgIFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCBwcmVzRXYoUUV2
ZW50OjpHcmFwaGljc1NjZW5lTW91c2VQcmVzcyk7CisgICAgICAgIHByZXNFdi5zZXRQb3MocG9p
bnQpOworICAgICAgICBwcmVzRXYuc2V0QnV0dG9uKFF0OjpMZWZ0QnV0dG9uKTsKKyAgICAgICAg
cHJlc0V2LnNldEJ1dHRvbnMoUXQ6OkxlZnRCdXR0b24pOworICAgICAgICBRR3JhcGhpY3NTY2Vu
ZU1vdXNlRXZlbnQgcmVsRXYoUUV2ZW50OjpHcmFwaGljc1NjZW5lTW91c2VSZWxlYXNlKTsKKyAg
ICAgICAgcmVsRXYuc2V0UG9zKHBvaW50KTsKKyAgICAgICAgcmVsRXYuc2V0QnV0dG9uKFF0OjpM
ZWZ0QnV0dG9uKTsKKyAgICAgICAgcmVsRXYuc2V0QnV0dG9ucyhRdDo6TGVmdEJ1dHRvbik7Cisg
ICAgICAgIFFHcmFwaGljc1dlYlZpZXc6OnNjZW5lRXZlbnQoJnByZXNFdik7CisgICAgICAgIFFH
cmFwaGljc1dlYlZpZXc6OnNjZW5lRXZlbnQoJnJlbEV2KTsKKyAgICB9Cit9OworCiB2b2lkIHRz
dF9RR3JhcGhpY3NXZWJWaWV3OjpjcmFzaE9uVmlld2xlc3NXZWJQYWdlcygpCiB7CiAgICAgUUdy
YXBoaWNzU2NlbmUgc2NlbmU7CkBAIC0xNDAsNiArMTY1LDU3IEBAIHZvaWQgdHN0X1FHcmFwaGlj
c1dlYlZpZXc6Om1pY3JvRm9jdXNDb29yZGluYXRlcygpCiAgICAgZGVsZXRlIHZpZXc7CiB9CiAK
K3ZvaWQgdHN0X1FHcmFwaGljc1dlYlZpZXc6OmZvY3VzSW5wdXRUeXBlcygpCit7CisgICAgUVdl
YlBhZ2UqIHBhZ2UgPSBuZXcgUVdlYlBhZ2U7CisgICAgR3JhcGhpY3NXZWJWaWV3KiB3ZWJWaWV3
ID0gbmV3IEdyYXBoaWNzV2ViVmlldzsKKyAgICB3ZWJWaWV3LT5zZXRQYWdlKCBwYWdlICk7Cisg
ICAgUUdyYXBoaWNzVmlldyogdmlldyA9IG5ldyBRR3JhcGhpY3NWaWV3OworICAgIFFHcmFwaGlj
c1NjZW5lKiBzY2VuZSA9IG5ldyBRR3JhcGhpY3NTY2VuZSh2aWV3KTsKKyAgICB2aWV3LT5zZXRT
Y2VuZShzY2VuZSk7CisgICAgc2NlbmUtPmFkZEl0ZW0od2ViVmlldyk7CisgICAgdmlldy0+c2V0
R2VvbWV0cnkoUVJlY3QoMCwwLDUwMCw1MDApKTsKKyAgICBRQ29yZUFwcGxpY2F0aW9uOjpwcm9j
ZXNzRXZlbnRzKCk7CisgICAgUVVybCB1cmwoInFyYzovLy9yZXNvdXJjZXMvaW5wdXRfdHlwZXMu
aHRtbCIpOworICAgIHBhZ2UtPm1haW5GcmFtZSgpLT5sb2FkKHVybCk7CisgICAgcGFnZS0+bWFp
bkZyYW1lKCktPnNldEZvY3VzKCk7CisKKyAgICBRVkVSSUZZKHdhaXRGb3JTaWduYWwocGFnZSwg
U0lHTkFMKGxvYWRGaW5pc2hlZChib29sKSkpKTsKKworICAgIC8vICd0ZXh0JyB0eXBlCisgICAg
d2ViVmlldy0+ZmlyZU1vdXNlQ2xpY2soUVBvaW50RigyMC4wLCAxMC4wKSk7CisjaWYgZGVmaW5l
ZChRX1dTX01BRU1PXzUpIHx8IGRlZmluZWQoUV9XU19NQUVNT182KSB8fCBkZWZpbmVkKFFfT1Nf
U1lNQklBTikKKyAgICBRVkVSSUZZKHdlYlZpZXctPmlucHV0TWV0aG9kSGludHMoKSAmIFF0OjpJ
bWhOb0F1dG9VcHBlcmNhc2UpOworICAgIFFWRVJJRlkod2ViVmlldy0+aW5wdXRNZXRob2RIaW50
cygpICYgUXQ6OkltaE5vUHJlZGljdGl2ZVRleHQpOworI2Vsc2UKKyAgICBRVkVSSUZZKHdlYlZp
ZXctPmlucHV0TWV0aG9kSGludHMoKSA9PSBRdDo6SW1oTm9uZSk7CisjZW5kaWYKKworICAgIC8v
ICdwYXNzd29yZCcgZmllbGQKKyAgICB3ZWJWaWV3LT5maXJlTW91c2VDbGljayhRUG9pbnRGKDIw
LjAsIDYwLjApKTsKKyAgICBRVkVSSUZZKHdlYlZpZXctPmlucHV0TWV0aG9kSGludHMoKSAmIFF0
OjpJbWhIaWRkZW5UZXh0KTsKKworICAgIC8vICd0ZWwnIGZpZWxkCisgICAgd2ViVmlldy0+Zmly
ZU1vdXNlQ2xpY2soUVBvaW50RigyMC4wLCAxMTAuMCkpOworICAgIFFWRVJJRlkod2ViVmlldy0+
aW5wdXRNZXRob2RIaW50cygpICYgUXQ6OkltaERpYWxhYmxlQ2hhcmFjdGVyc09ubHkpOworCisg
ICAgLy8gJ251bWJlcicgZmllbGQKKyAgICB3ZWJWaWV3LT5maXJlTW91c2VDbGljayhRUG9pbnRG
KDIwLjAsIDE2MC4wKSk7CisgICAgUVZFUklGWSh3ZWJWaWV3LT5pbnB1dE1ldGhvZEhpbnRzKCkg
JiBRdDo6SW1oRGlnaXRzT25seSk7CisKKyAgICAvLyAnZW1haWwnIGZpZWxkCisgICAgd2ViVmll
dy0+ZmlyZU1vdXNlQ2xpY2soUVBvaW50RigyMC4wLCAyMTAuMCkpOworICAgIFFWRVJJRlkod2Vi
Vmlldy0+aW5wdXRNZXRob2RIaW50cygpICYgUXQ6OkltaEVtYWlsQ2hhcmFjdGVyc09ubHkpOwor
CisgICAgLy8gJ3VybCcgZmllbGQKKyAgICB3ZWJWaWV3LT5maXJlTW91c2VDbGljayhRUG9pbnRG
KDIwLjAsIDI2MC4wKSk7CisgICAgUVZFUklGWSh3ZWJWaWV3LT5pbnB1dE1ldGhvZEhpbnRzKCkg
JiBRdDo6SW1oVXJsQ2hhcmFjdGVyc09ubHkpOworCisgICAgZGVsZXRlIHdlYlZpZXc7CisgICAg
ZGVsZXRlIHZpZXc7Cit9CisKKwogCiBRVEVTVF9NQUlOKHRzdF9RR3JhcGhpY3NXZWJWaWV3KQog
CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvdGVzdHMvcWdyYXBoaWNzd2Vidmlldy90c3RfcWdyYXBo
aWNzd2Vidmlldy5xcmMgYi9XZWJLaXQvcXQvdGVzdHMvcWdyYXBoaWNzd2Vidmlldy90c3RfcWdy
YXBoaWNzd2Vidmlldy5xcmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzkx
YmI5YwotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9xdC90ZXN0cy9xZ3JhcGhpY3N3ZWJ2aWV3
L3RzdF9xZ3JhcGhpY3N3ZWJ2aWV3LnFyYwpAQCAtMCwwICsxLDYgQEAKKzwhRE9DVFlQRSBSQ0M+
PFJDQyB2ZXJzaW9uPSIxLjAiPgorPHFyZXNvdXJjZT4KKyAgICA8ZmlsZT5yZXNvdXJjZXMvaW5w
dXRfdHlwZXMuaHRtbDwvZmlsZT4KKzwvcXJlc291cmNlPgorPC9SQ0M+CisKZGlmZiAtLWdpdCBh
L1dlYktpdC9xdC90ZXN0cy9xd2Vidmlldy9yZXNvdXJjZXMvaW5wdXRfdHlwZXMuaHRtbCBiL1dl
YktpdC9xdC90ZXN0cy9xd2Vidmlldy9yZXNvdXJjZXMvaW5wdXRfdHlwZXMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOGFiMzE0Ci0tLSAvZGV2L251bGwKKysrIGIv
V2ViS2l0L3F0L3Rlc3RzL3F3ZWJ2aWV3L3Jlc291cmNlcy9pbnB1dF90eXBlcy5odG1sCkBAIC0w
LDAgKzEsOCBAQAorPGh0bWw+PGJvZHk+Cis8aW5wdXQgdHlwZT0ndGV4dCcgbWF4bGVuZ3RoPScy
MCcgc3R5bGU9J3Bvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTBweDsgdG9wOiAwcHg7IGhlaWdo
dDogNTBweDsgd2lkdGg6IDEwMHB4OycvPjxicj4KKzxpbnB1dCB0eXBlPSdwYXNzd29yZCcgc3R5
bGU9J3Bvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTBweDsgdG9wOiA1MHB4OyBoZWlnaHQ6IDUw
cHg7IHdpZHRoOiAxMDBweDsnLz48YnI+Cis8aW5wdXQgdHlwZT0ndGVsJyBzdHlsZT0ncG9zaXRp
b246IGFic29sdXRlOyBsZWZ0OiAxMHB4OyB0b3A6IDEwMHB4OyBoZWlnaHQ6IDUwcHg7IHdpZHRo
OiAxMDBweDsnLz48YnI+Cis8aW5wdXQgdHlwZT0nbnVtYmVyJyBzdHlsZT0ncG9zaXRpb246IGFi
c29sdXRlOyBsZWZ0OiAxMHB4OyB0b3A6IDE1MHB4OyBoZWlnaHQ6IDUwcHg7IHdpZHRoOiAxMDBw
eDsnLz48YnI+Cis8aW5wdXQgdHlwZT0nZW1haWwnIHN0eWxlPSdwb3NpdGlvbjogYWJzb2x1dGU7
IGxlZnQ6IDEwcHg7IHRvcDogMjAwcHg7IGhlaWdodDogNTBweDsgd2lkdGg6IDEwMHB4OycvPjxi
cj4KKzxpbnB1dCB0eXBlPSd1cmwnIHN0eWxlPSdwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDEw
cHg7IHRvcDogMjUwcHg7IGhlaWdodDogNTBweDsgd2lkdGg6IDEwMHB4OycvPjxicj4iCis8L2Jv
ZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYktp
dC9xdC90ZXN0cy9xd2Vidmlldy90c3RfcXdlYnZpZXcuY3BwIGIvV2ViS2l0L3F0L3Rlc3RzL3F3
ZWJ2aWV3L3RzdF9xd2Vidmlldy5jcHAKaW5kZXggMTAwMzk5ZS4uODM1YWQ4MiAxMDA2NDQKLS0t
IGEvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJ2aWV3L3RzdF9xd2Vidmlldy5jcHAKKysrIGIvV2ViS2l0
L3F0L3Rlc3RzL3F3ZWJ2aWV3L3RzdF9xd2Vidmlldy5jcHAKQEAgLTMwLDggKzMwLDYgQEAKICNp
bmNsdWRlIDxxd2Via2l0dmVyc2lvbi5oPgogI2luY2x1ZGUgPHF3ZWJmcmFtZS5oPgogCi0jaW5j
bHVkZSA8UURlYnVnPgotCiBjbGFzcyB0c3RfUVdlYlZpZXcgOiBwdWJsaWMgUU9iamVjdAogewog
ICAgIFFfT0JKRUNUCkBAIC00OSwxMCArNDcsMjUgQEAgcHJpdmF0ZSBzbG90czoKICAgICB2b2lk
IHJldXNlUGFnZV9kYXRhKCk7CiAgICAgdm9pZCByZXVzZVBhZ2UoKTsKICAgICB2b2lkIG1pY3Jv
Rm9jdXNDb29yZGluYXRlcygpOworICAgIHZvaWQgZm9jdXNJbnB1dFR5cGVzKCk7CiAKICAgICB2
b2lkIGNyYXNoVGVzdHMoKTsKIH07CiAKK2NsYXNzIFdlYlZpZXcgOiBwdWJsaWMgUVdlYlZpZXcK
K3sKKyAgICBRX09CSkVDVAorCitwdWJsaWM6CisgICAgdm9pZCBmaXJlTW91c2VDbGljayhRUG9p
bnQgcG9pbnQpIHsKKyAgICAgICAgUU1vdXNlRXZlbnQgcHJlc0V2KFFFdmVudDo6TW91c2VCdXR0
b25QcmVzcywgcG9pbnQsIFF0OjpMZWZ0QnV0dG9uLCBRdDo6TGVmdEJ1dHRvbiwgUXQ6Ok5vTW9k
aWZpZXIpOworICAgICAgICBRTW91c2VFdmVudCByZWxFdihRRXZlbnQ6Ok1vdXNlQnV0dG9uUmVs
ZWFzZSwgcG9pbnQsIFF0OjpMZWZ0QnV0dG9uLCBRdDo6TGVmdEJ1dHRvbiwgUXQ6Ok5vTW9kaWZp
ZXIpOworICAgICAgICBRV2ViVmlldzo6bW91c2VQcmVzc0V2ZW50KCZwcmVzRXYpOworICAgICAg
ICBRV2ViVmlldzo6bW91c2VQcmVzc0V2ZW50KCZyZWxFdik7CisgICAgfQorCit9OworCiAvLyBU
aGlzIHdpbGwgYmUgY2FsbGVkIGJlZm9yZSB0aGUgZmlyc3QgdGVzdCBmdW5jdGlvbiBpcyBleGVj
dXRlZC4KIC8vIEl0IGlzIG9ubHkgY2FsbGVkIG9uY2UuCiB2b2lkIHRzdF9RV2ViVmlldzo6aW5p
dFRlc3RDYXNlKCkKQEAgLTIzMCw2ICsyNDMsNTIgQEAgdm9pZCB0c3RfUVdlYlZpZXc6Om1pY3Jv
Rm9jdXNDb29yZGluYXRlcygpCiAgICAgUUNPTVBBUkUoaW5pdGlhbE1pY3JvRm9jdXMudG9SZWN0
KCkudHJhbnNsYXRlZChRUG9pbnQoMCwtNTApKSwgY3VycmVudE1pY3JvRm9jdXMudG9SZWN0KCkp
OwogfQogCit2b2lkIHRzdF9RV2ViVmlldzo6Zm9jdXNJbnB1dFR5cGVzKCkKK3sKKyAgICBRV2Vi
UGFnZSogcGFnZSA9IG5ldyBRV2ViUGFnZTsKKyAgICBXZWJWaWV3KiB3ZWJWaWV3ID0gbmV3IFdl
YlZpZXc7CisgICAgd2ViVmlldy0+c2V0UGFnZSggcGFnZSApOworCisgICAgUUNvcmVBcHBsaWNh
dGlvbjo6cHJvY2Vzc0V2ZW50cygpOworICAgIFFVcmwgdXJsKCJxcmM6Ly8vcmVzb3VyY2VzL2lu
cHV0X3R5cGVzLmh0bWwiKTsKKyAgICBwYWdlLT5tYWluRnJhbWUoKS0+bG9hZCh1cmwpOworICAg
IHBhZ2UtPm1haW5GcmFtZSgpLT5zZXRGb2N1cygpOworCisgICAgUVZFUklGWSh3YWl0Rm9yU2ln
bmFsKHBhZ2UsIFNJR05BTChsb2FkRmluaXNoZWQoYm9vbCkpKSk7CisKKyAgICAvLyAndGV4dCcg
dHlwZQorICAgIHdlYlZpZXctPmZpcmVNb3VzZUNsaWNrKFFQb2ludCgyMCwgMTApKTsKKyNpZiBk
ZWZpbmVkKFFfV1NfTUFFTU9fNSkgfHwgZGVmaW5lZChRX1dTX01BRU1PXzYpIHx8IGRlZmluZWQo
UV9PU19TWU1CSUFOKQorICAgIFFWRVJJRlkod2ViVmlldy0+aW5wdXRNZXRob2RIaW50cygpICYg
UXQ6OkltaE5vQXV0b1VwcGVyY2FzZSk7CisgICAgUVZFUklGWSh3ZWJWaWV3LT5pbnB1dE1ldGhv
ZEhpbnRzKCkgJiBRdDo6SW1oTm9QcmVkaWN0aXZlVGV4dCk7CisjZWxzZQorICAgIFFWRVJJRlko
d2ViVmlldy0+aW5wdXRNZXRob2RIaW50cygpID09IFF0OjpJbWhOb25lKTsKKyNlbmRpZgorCisg
ICAgLy8gJ3Bhc3N3b3JkJyBmaWVsZAorICAgIHdlYlZpZXctPmZpcmVNb3VzZUNsaWNrKFFQb2lu
dCgyMCwgNjApKTsKKyAgICBRVkVSSUZZKHdlYlZpZXctPmlucHV0TWV0aG9kSGludHMoKSAmIFF0
OjpJbWhIaWRkZW5UZXh0KTsKKworICAgIC8vICd0ZWwnIGZpZWxkCisgICAgd2ViVmlldy0+Zmly
ZU1vdXNlQ2xpY2soUVBvaW50KDIwLCAxMTApKTsKKyAgICBRVkVSSUZZKHdlYlZpZXctPmlucHV0
TWV0aG9kSGludHMoKSAmIFF0OjpJbWhEaWFsYWJsZUNoYXJhY3RlcnNPbmx5KTsKKworICAgIC8v
ICdudW1iZXInIGZpZWxkCisgICAgd2ViVmlldy0+ZmlyZU1vdXNlQ2xpY2soUVBvaW50KDIwLCAx
NjApKTsKKyAgICBRVkVSSUZZKHdlYlZpZXctPmlucHV0TWV0aG9kSGludHMoKSAmIFF0OjpJbWhE
aWdpdHNPbmx5KTsKKworICAgIC8vICdlbWFpbCcgZmllbGQKKyAgICB3ZWJWaWV3LT5maXJlTW91
c2VDbGljayhRUG9pbnQoMjAsIDIxMCkpOworICAgIFFWRVJJRlkod2ViVmlldy0+aW5wdXRNZXRo
b2RIaW50cygpICYgUXQ6OkltaEVtYWlsQ2hhcmFjdGVyc09ubHkpOworCisgICAgLy8gJ3VybCcg
ZmllbGQKKyAgICB3ZWJWaWV3LT5maXJlTW91c2VDbGljayhRUG9pbnQoMjAsIDI2MCkpOworICAg
IFFWRVJJRlkod2ViVmlldy0+aW5wdXRNZXRob2RIaW50cygpICYgUXQ6OkltaFVybENoYXJhY3Rl
cnNPbmx5KTsKKworICAgIGRlbGV0ZSB3ZWJWaWV3OworCit9CisKIFFURVNUX01BSU4odHN0X1FX
ZWJWaWV3KQogI2luY2x1ZGUgInRzdF9xd2Vidmlldy5tb2MiCiAKZGlmZiAtLWdpdCBhL1dlYktp
dC9xdC90ZXN0cy9xd2Vidmlldy90c3RfcXdlYnZpZXcucXJjIGIvV2ViS2l0L3F0L3Rlc3RzL3F3
ZWJ2aWV3L3RzdF9xd2Vidmlldy5xcmMKaW5kZXggNWFiYzY0Yy4uODcxMGE5YSAxMDA2NDQKLS0t
IGEvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJ2aWV3L3RzdF9xd2Vidmlldy5xcmMKKysrIGIvV2ViS2l0
L3F0L3Rlc3RzL3F3ZWJ2aWV3L3RzdF9xd2Vidmlldy5xcmMKQEAgLTIsNiArMiw3IEBACiA8cXJl
c291cmNlPgogICAgIDxmaWxlPnJlc291cmNlcy9pbmRleC5odG1sPC9maWxlPgogICAgIDxmaWxl
PnJlc291cmNlcy9mcmFtZV9hLmh0bWw8L2ZpbGU+CisgICAgPGZpbGU+cmVzb3VyY2VzL2lucHV0
X3R5cGVzLmh0bWw8L2ZpbGU+CiA8L3FyZXNvdXJjZT4KIDwvUkNDPgogCi0tIAoxLjYuMy4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58246</attachid>
            <date>2010-06-09 08:08:06 -0700</date>
            <delta_ts>2010-06-10 01:25:12 -0700</delta_ts>
            <desc>2nd proposal for fix.</desc>
            <filename>Impossible-to-set-input-method-hints.patch</filename>
            <type>text/plain</type>
            <size>15010</size>
            <attacher name="Raine Makelainen">raine.makelainen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YWMwYTU2MS4uM2Y0ZjBkMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0wNi0wOSAgUmFpbmUgTWFrZWxh
aW5lbiAgPHJhaW5lLm1ha2VsYWluZW5Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcG9zc2libGUgdG8gc2V0IGlucHV0IG1ldGhv
ZCBoaW50cyBiYXNlZCBIVE1MNSBpbnB1dCB0eXBlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAxMDcKKworICAgICAgICBIZWxwZXIgbWV0aG9kcyBm
b3IgY2hlY2tpbmcgInRlbCIsICJudW1iZXIiLCAiZW1haWwiLCAKKyAgICAgICAgYW5kICJ1cmwi
IGlucHV0IGVsZW1lbnQgdHlwZXMuCisKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmlzVGVsZXBob25lRmllbGQp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6aXNOdW1iZXJGaWVsZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojppc0VtYWlsRmllbGQpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6aXNVcmxGaWVsZCk6CisKIDIwMTAtMDYtMDkg
IENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEaXJrIFNjaHVsemUuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCAzNjNhMjVmLi4y
NTI3ZThiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBi
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTEwMSw2ICsxMDEsMTAgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZpZWxkKCkgY29uc3QgeyByZXR1cm4gbV90
eXBlID09IFNFQVJDSDsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0lucHV0VHlwZUhpZGRlbigpIGNv
bnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBISURERU47IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNz
d29yZEZpZWxkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFBBU1NXT1JEOyB9CisgICAgdmly
dHVhbCBib29sIGlzVGVsZXBob25lRmllbGQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gVEVM
RVBIT05FOyB9CisgICAgdmlydHVhbCBib29sIGlzTnVtYmVyRmllbGQoKSBjb25zdCB7IHJldHVy
biBtX3R5cGUgPT0gTlVNQkVSOyB9CisgICAgdmlydHVhbCBib29sIGlzRW1haWxGaWVsZCgpIGNv
bnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBFTUFJTDsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1VybEZp
ZWxkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFVSTDsgfQogCiAgICAgYm9vbCBjaGVja2Vk
KCkgY29uc3QgeyByZXR1cm4gbV9jaGVja2VkOyB9CiAgICAgdm9pZCBzZXRDaGVja2VkKGJvb2ws
IGJvb2wgc2VuZENoYW5nZUV2ZW50ID0gZmFsc2UpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0No
YW5nZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggMWIzMjYwZS4uMzcyMGMzMyAxMDA2
NDQKLS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMTAtMDYtMDkgIFJhaW5lIE1ha2VsYWluZW4gIDxyYWluZS5tYWtl
bGFpbmVuQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJbXBvc3NpYmxlIHRvIHNldCBpbnB1dCBtZXRob2QgaGludHMgYmFzZWQgSFRN
TDUgaW5wdXQgdHlwZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQwMTA3CisKKyAgICAgICAgRWRpdG9yQ2xpZW50UXQgdG8gc2V0IGlucHV0IG1ldGhv
ZCBoaW50cyBmb3IgIm51bWJlciIsICJ0ZWwiLCAKKyAgICAgICAgImVtYWlsIiwgYW5kICJ1cmwi
IEhUTUwgaW5wdXQgZWxlbWVudHMuCisKKyAgICAgICAgVGVzdHMgZm9yIEhUTUwgaW5wdXQgZWxl
bWVudHMgYW5kIGlucHV0IG1ldGhvZCBoaW50cyBhZGRlZCBmb3IgCisgICAgICAgIFFHcmFwaGlj
c1dlYlZpZXcgYW5kIFFXZWJWaWV3LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50UXQ6OnNldElucHV0
TWV0aG9kU3RhdGUpOgorICAgICAgICAqIHRlc3RzL3FncmFwaGljc3dlYnZpZXcvcmVzb3VyY2Vz
L2lucHV0X3R5cGVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL3FncmFwaGljc3dlYnZp
ZXcvdHN0X3FncmFwaGljc3dlYnZpZXcuY3BwOgorICAgICAgICAoR3JhcGhpY3NXZWJWaWV3OjpH
cmFwaGljc1dlYlZpZXcpOgorICAgICAgICAoR3JhcGhpY3NXZWJWaWV3OjpmaXJlTW91c2VDbGlj
ayk6CisgICAgICAgICh0c3RfUUdyYXBoaWNzV2ViVmlldzo6Zm9jdXNJbnB1dFR5cGVzKToKKyAg
ICAgICAgKiB0ZXN0cy9xZ3JhcGhpY3N3ZWJ2aWV3L3RzdF9xZ3JhcGhpY3N3ZWJ2aWV3LnFyYzog
QWRkZWQuCisgICAgICAgICogdGVzdHMvcXdlYnZpZXcvcmVzb3VyY2VzL2lucHV0X3R5cGVzLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL3F3ZWJ2aWV3L3RzdF9xd2Vidmlldy5jcHA6Cisg
ICAgICAgIChXZWJWaWV3OjpmaXJlTW91c2VDbGljayk6CisgICAgICAgICh0c3RfUVdlYlZpZXc6
OmZvY3VzSW5wdXRUeXBlcyk6CisgICAgICAgICogdGVzdHMvcXdlYnZpZXcvdHN0X3F3ZWJ2aWV3
LnFyYzoKKwogMjAxMC0wNi0wOCAgQW50b25pbyBHb21lcyAgPHRvbmlraXRvb0B3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9qYW4gVmFmYWkgYW5kIERhcmluIEFkbGVyLgpkaWZm
IC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcCBiL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHAKaW5kZXggMWZkNDYyYy4u
YmNkNWFhYSAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dFF0LmNwcAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3Bw
CkBAIC01OTIsMjAgKzU5MiwzMSBAQCB2b2lkIEVkaXRvckNsaWVudFF0OjpzZXRJbnB1dE1ldGhv
ZFN0YXRlKGJvb2wgYWN0aXZlKQogICAgIFFXZWJQYWdlQ2xpZW50KiB3ZWJQYWdlQ2xpZW50ID0g
bV9wYWdlLT5kLT5jbGllbnQ7CiAgICAgaWYgKHdlYlBhZ2VDbGllbnQpIHsKICNpZiBRVF9WRVJT
SU9OID49IDB4MDQwNjAwCi0gICAgICAgIGJvb2wgaXNQYXNzd29yZEZpZWxkID0gZmFsc2U7Ci0g
ICAgICAgIGlmICghYWN0aXZlKSB7Ci0gICAgICAgICAgICAvLyBTZXR0aW5nIHRoZSBRdDo6V0Ff
SW5wdXRNZXRob2RFbmFibGVkIGF0dHJpYnV0ZSB0cnVlIGFuZCBRdDo6SW1oSGlkZGVuVGV4dCBm
bGFnCi0gICAgICAgICAgICAvLyBmb3IgcGFzc3dvcmQgZmllbGRzLiBUaGUgUXQgcGxhdGZvcm0g
aXMgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHdoaWNoIHdpZGdldCAKLSAgICAgICAgICAg
IC8vIHdpbGwgcmVjZWl2ZSBpbnB1dCBtZXRob2QgZXZlbnRzIGZvciBwYXNzd29yZCBmaWVsZHMu
Ci0gICAgICAgICAgICBGcmFtZSogZnJhbWUgPSBtX3BhZ2UtPmQtPnBhZ2UtPmZvY3VzQ29udHJv
bGxlcigpLT5mb2N1c2VkT3JNYWluRnJhbWUoKTsKLSAgICAgICAgICAgIGlmIChmcmFtZSAmJiBm
cmFtZS0+ZG9jdW1lbnQoKSAmJiBmcmFtZS0+ZG9jdW1lbnQoKS0+Zm9jdXNlZE5vZGUoKSkgewot
ICAgICAgICAgICAgICAgIGlmIChmcmFtZS0+ZG9jdW1lbnQoKS0+Zm9jdXNlZE5vZGUoKS0+aGFz
VGFnTmFtZShIVE1MTmFtZXM6OmlucHV0VGFnKSkgewotICAgICAgICAgICAgICAgICAgICBIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50
Kj4oZnJhbWUtPmRvY3VtZW50KCktPmZvY3VzZWROb2RlKCkpOwotICAgICAgICAgICAgICAgICAg
ICBhY3RpdmUgPSBpc1Bhc3N3b3JkRmllbGQgPSBpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVs
ZCgpOwotICAgICAgICAgICAgICB9CisgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxl
bWVudCA9IDA7CisgICAgICAgIEZyYW1lKiBmcmFtZSA9IG1fcGFnZS0+ZC0+cGFnZS0+Zm9jdXND
b250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpOworICAgICAgICBpZiAoZnJhbWUgJiYg
ZnJhbWUtPmRvY3VtZW50KCkgJiYgZnJhbWUtPmRvY3VtZW50KCktPmZvY3VzZWROb2RlKCkpIHsK
KyAgICAgICAgICAgIGlmIChmcmFtZS0+ZG9jdW1lbnQoKS0+Zm9jdXNlZE5vZGUoKS0+aGFzVGFn
TmFtZShIVE1MTmFtZXM6OmlucHV0VGFnKSkgeworICAgICAgICAgICAgICAgIGlucHV0RWxlbWVu
dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihmcmFtZS0+ZG9jdW1lbnQoKS0+Zm9j
dXNlZE5vZGUoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgd2ViUGFnZUNs
aWVudC0+c2V0SW5wdXRNZXRob2RIaW50KFF0OjpJbWhIaWRkZW5UZXh0LCBpc1Bhc3N3b3JkRmll
bGQpOworCisgICAgICAgIGlmIChpbnB1dEVsZW1lbnQpIHsKKyAgICAgICAgICAgIGlmICghYWN0
aXZlKSB7CisgICAgICAgICAgICAgICAgLy8gU2V0dGluZyB0aGUgUXQ6OldBX0lucHV0TWV0aG9k
RW5hYmxlZCBhdHRyaWJ1dGUgdHJ1ZSBhbmQgUXQ6OkltaEhpZGRlblRleHQgZmxhZworICAgICAg
ICAgICAgICAgIC8vIGZvciBwYXNzd29yZCBmaWVsZHMuIFRoZSBRdCBwbGF0Zm9ybSBpcyByZXNw
b25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgd2hpY2ggd2lkZ2V0CisgICAgICAgICAgICAgICAgLy8g
d2lsbCByZWNlaXZlIGlucHV0IG1ldGhvZCBldmVudHMgZm9yIHBhc3N3b3JkIGZpZWxkcy4KKyAg
ICAgICAgICAgICAgICBib29sIGlzUGFzc3dvcmRGaWVsZCA9IGZhbHNlOworICAgICAgICAgICAg
ICAgIGFjdGl2ZSA9IGlzUGFzc3dvcmRGaWVsZCA9IGlucHV0RWxlbWVudC0+aXNQYXNzd29yZEZp
ZWxkKCk7CisgICAgICAgICAgICAgICAgd2ViUGFnZUNsaWVudC0+c2V0SW5wdXRNZXRob2RIaW50
KFF0OjpJbWhIaWRkZW5UZXh0LCBpc1Bhc3N3b3JkRmllbGQpOworICAgICAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgICAgICAvLyBTZXQgaW5wdXQgbWV0aG9kIGhpbnRzIGZvciAibnVtYmVy
IiwgInRlbCIsICJlbWFpbCIsIGFuZCAidXJsIiBpbnB1dCBlbGVtZW50cy4KKyAgICAgICAgICAg
ICAgICB3ZWJQYWdlQ2xpZW50LT5zZXRJbnB1dE1ldGhvZEhpbnQoUXQ6OkltaERpYWxhYmxlQ2hh
cmFjdGVyc09ubHksIGlucHV0RWxlbWVudC0+aXNUZWxlcGhvbmVGaWVsZCgpKTsKKyAgICAgICAg
ICAgICAgICB3ZWJQYWdlQ2xpZW50LT5zZXRJbnB1dE1ldGhvZEhpbnQoUXQ6OkltaERpZ2l0c09u
bHksIGlucHV0RWxlbWVudC0+aXNOdW1iZXJGaWVsZCgpKTsKKyAgICAgICAgICAgICAgICB3ZWJQ
YWdlQ2xpZW50LT5zZXRJbnB1dE1ldGhvZEhpbnQoUXQ6OkltaEVtYWlsQ2hhcmFjdGVyc09ubHks
IGlucHV0RWxlbWVudC0+aXNFbWFpbEZpZWxkKCkpOworICAgICAgICAgICAgICAgIHdlYlBhZ2VD
bGllbnQtPnNldElucHV0TWV0aG9kSGludChRdDo6SW1oVXJsQ2hhcmFjdGVyc09ubHksIGlucHV0
RWxlbWVudC0+aXNVcmxGaWVsZCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCiAjaWYg
ZGVmaW5lZChRX1dTX01BRU1PXzUpIHx8IGRlZmluZWQoUV9XU19NQUVNT182KSB8fCBkZWZpbmVk
KFFfT1NfU1lNQklBTikKICAgICAgICAgLy8gZGlzYWJsZXMgYXV0by11cHBlcmNhc2UgYW5kIHBy
ZWRpY3RpdmUgdGV4dCBmb3IgbW9iaWxlIGRldmljZXMKICAgICAgICAgd2ViUGFnZUNsaWVudC0+
c2V0SW5wdXRNZXRob2RIaW50KFF0OjpJbWhOb0F1dG9VcHBlcmNhc2UsIHRydWUpOwpkaWZmIC0t
Z2l0IGEvV2ViS2l0L3F0L3Rlc3RzL3FncmFwaGljc3dlYnZpZXcvdHN0X3FncmFwaGljc3dlYnZp
ZXcuY3BwIGIvV2ViS2l0L3F0L3Rlc3RzL3FncmFwaGljc3dlYnZpZXcvdHN0X3FncmFwaGljc3dl
YnZpZXcuY3BwCmluZGV4IGViZTg0N2QuLmUwNjUyNGQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC90
ZXN0cy9xZ3JhcGhpY3N3ZWJ2aWV3L3RzdF9xZ3JhcGhpY3N3ZWJ2aWV3LmNwcAorKysgYi9XZWJL
aXQvcXQvdGVzdHMvcWdyYXBoaWNzd2Vidmlldy90c3RfcWdyYXBoaWNzd2Vidmlldy5jcHAKQEAg
LTE5LDYgKzE5LDcgQEAKIAogI2luY2x1ZGUgIi4uL3V0aWwuaCIKICNpbmNsdWRlIDxRdFRlc3Qv
UXRUZXN0PgorI2luY2x1ZGUgPFFHcmFwaGljc1NjZW5lTW91c2VFdmVudD4KICNpbmNsdWRlIDxR
R3JhcGhpY3NWaWV3PgogI2luY2x1ZGUgPHFncmFwaGljc3dlYnZpZXcuaD4KICNpbmNsdWRlIDxx
d2VicGFnZS5oPgpAQCAtMzIsNiArMzMsNyBAQCBwcml2YXRlIHNsb3RzOgogICAgIHZvaWQgcWdy
YXBoaWNzd2VidmlldygpOwogICAgIHZvaWQgY3Jhc2hPblZpZXdsZXNzV2ViUGFnZXMoKTsKICAg
ICB2b2lkIG1pY3JvRm9jdXNDb29yZGluYXRlcygpOworICAgIHZvaWQgZm9jdXNJbnB1dFR5cGVz
KCk7CiB9OwogCiB2b2lkIHRzdF9RR3JhcGhpY3NXZWJWaWV3OjpxZ3JhcGhpY3N3ZWJ2aWV3KCkK
QEAgLTc1LDYgKzc3LDI5IEBAIHByaXZhdGUgc2xvdHM6CiAgICAgfQogfTsKIAorY2xhc3MgR3Jh
cGhpY3NXZWJWaWV3IDogcHVibGljIFFHcmFwaGljc1dlYlZpZXcKK3sKKyAgICBRX09CSkVDVAor
CitwdWJsaWM6CisgICAgR3JhcGhpY3NXZWJWaWV3KFFHcmFwaGljc0l0ZW0qIHBhcmVudCA9IDAp
OiBRR3JhcGhpY3NXZWJWaWV3KHBhcmVudCkKKyAgICB7CisgICAgfQorCisgICAgdm9pZCBmaXJl
TW91c2VDbGljayhRUG9pbnRGIHBvaW50KSB7CisgICAgICAgIFFHcmFwaGljc1NjZW5lTW91c2VF
dmVudCBwcmVzRXYoUUV2ZW50OjpHcmFwaGljc1NjZW5lTW91c2VQcmVzcyk7CisgICAgICAgIHBy
ZXNFdi5zZXRQb3MocG9pbnQpOworICAgICAgICBwcmVzRXYuc2V0QnV0dG9uKFF0OjpMZWZ0QnV0
dG9uKTsKKyAgICAgICAgcHJlc0V2LnNldEJ1dHRvbnMoUXQ6OkxlZnRCdXR0b24pOworICAgICAg
ICBRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQgcmVsRXYoUUV2ZW50OjpHcmFwaGljc1NjZW5lTW91
c2VSZWxlYXNlKTsKKyAgICAgICAgcmVsRXYuc2V0UG9zKHBvaW50KTsKKyAgICAgICAgcmVsRXYu
c2V0QnV0dG9uKFF0OjpMZWZ0QnV0dG9uKTsKKyAgICAgICAgcmVsRXYuc2V0QnV0dG9ucyhRdDo6
TGVmdEJ1dHRvbik7CisgICAgICAgIFFHcmFwaGljc1dlYlZpZXc6OnNjZW5lRXZlbnQoJnByZXNF
dik7CisgICAgICAgIFFHcmFwaGljc1dlYlZpZXc6OnNjZW5lRXZlbnQoJnJlbEV2KTsKKyAgICB9
Cit9OworCiB2b2lkIHRzdF9RR3JhcGhpY3NXZWJWaWV3OjpjcmFzaE9uVmlld2xlc3NXZWJQYWdl
cygpCiB7CiAgICAgUUdyYXBoaWNzU2NlbmUgc2NlbmU7CkBAIC0xNDAsNiArMTY1LDU3IEBAIHZv
aWQgdHN0X1FHcmFwaGljc1dlYlZpZXc6Om1pY3JvRm9jdXNDb29yZGluYXRlcygpCiAgICAgZGVs
ZXRlIHZpZXc7CiB9CiAKK3ZvaWQgdHN0X1FHcmFwaGljc1dlYlZpZXc6OmZvY3VzSW5wdXRUeXBl
cygpCit7CisgICAgUVdlYlBhZ2UqIHBhZ2UgPSBuZXcgUVdlYlBhZ2U7CisgICAgR3JhcGhpY3NX
ZWJWaWV3KiB3ZWJWaWV3ID0gbmV3IEdyYXBoaWNzV2ViVmlldzsKKyAgICB3ZWJWaWV3LT5zZXRQ
YWdlKCBwYWdlICk7CisgICAgUUdyYXBoaWNzVmlldyogdmlldyA9IG5ldyBRR3JhcGhpY3NWaWV3
OworICAgIFFHcmFwaGljc1NjZW5lKiBzY2VuZSA9IG5ldyBRR3JhcGhpY3NTY2VuZSh2aWV3KTsK
KyAgICB2aWV3LT5zZXRTY2VuZShzY2VuZSk7CisgICAgc2NlbmUtPmFkZEl0ZW0od2ViVmlldyk7
CisgICAgdmlldy0+c2V0R2VvbWV0cnkoUVJlY3QoMCwwLDUwMCw1MDApKTsKKyAgICBRQ29yZUFw
cGxpY2F0aW9uOjpwcm9jZXNzRXZlbnRzKCk7CisgICAgUVVybCB1cmwoInFyYzovLy9yZXNvdXJj
ZXMvaW5wdXRfdHlwZXMuaHRtbCIpOworICAgIHBhZ2UtPm1haW5GcmFtZSgpLT5sb2FkKHVybCk7
CisgICAgcGFnZS0+bWFpbkZyYW1lKCktPnNldEZvY3VzKCk7CisKKyAgICBRVkVSSUZZKHdhaXRG
b3JTaWduYWwocGFnZSwgU0lHTkFMKGxvYWRGaW5pc2hlZChib29sKSkpKTsKKworICAgIC8vICd0
ZXh0JyB0eXBlCisgICAgd2ViVmlldy0+ZmlyZU1vdXNlQ2xpY2soUVBvaW50RigyMC4wLCAxMC4w
KSk7CisjaWYgZGVmaW5lZChRX1dTX01BRU1PXzUpIHx8IGRlZmluZWQoUV9XU19NQUVNT182KSB8
fCBkZWZpbmVkKFFfT1NfU1lNQklBTikKKyAgICBRVkVSSUZZKHdlYlZpZXctPmlucHV0TWV0aG9k
SGludHMoKSAmIFF0OjpJbWhOb0F1dG9VcHBlcmNhc2UpOworICAgIFFWRVJJRlkod2ViVmlldy0+
aW5wdXRNZXRob2RIaW50cygpICYgUXQ6OkltaE5vUHJlZGljdGl2ZVRleHQpOworI2Vsc2UKKyAg
ICBRVkVSSUZZKHdlYlZpZXctPmlucHV0TWV0aG9kSGludHMoKSA9PSBRdDo6SW1oTm9uZSk7Cisj
ZW5kaWYKKworICAgIC8vICdwYXNzd29yZCcgZmllbGQKKyAgICB3ZWJWaWV3LT5maXJlTW91c2VD
bGljayhRUG9pbnRGKDIwLjAsIDYwLjApKTsKKyAgICBRVkVSSUZZKHdlYlZpZXctPmlucHV0TWV0
aG9kSGludHMoKSAmIFF0OjpJbWhIaWRkZW5UZXh0KTsKKworICAgIC8vICd0ZWwnIGZpZWxkCisg
ICAgd2ViVmlldy0+ZmlyZU1vdXNlQ2xpY2soUVBvaW50RigyMC4wLCAxMTAuMCkpOworICAgIFFW
RVJJRlkod2ViVmlldy0+aW5wdXRNZXRob2RIaW50cygpICYgUXQ6OkltaERpYWxhYmxlQ2hhcmFj
dGVyc09ubHkpOworCisgICAgLy8gJ251bWJlcicgZmllbGQKKyAgICB3ZWJWaWV3LT5maXJlTW91
c2VDbGljayhRUG9pbnRGKDIwLjAsIDE2MC4wKSk7CisgICAgUVZFUklGWSh3ZWJWaWV3LT5pbnB1
dE1ldGhvZEhpbnRzKCkgJiBRdDo6SW1oRGlnaXRzT25seSk7CisKKyAgICAvLyAnZW1haWwnIGZp
ZWxkCisgICAgd2ViVmlldy0+ZmlyZU1vdXNlQ2xpY2soUVBvaW50RigyMC4wLCAyMTAuMCkpOwor
ICAgIFFWRVJJRlkod2ViVmlldy0+aW5wdXRNZXRob2RIaW50cygpICYgUXQ6OkltaEVtYWlsQ2hh
cmFjdGVyc09ubHkpOworCisgICAgLy8gJ3VybCcgZmllbGQKKyAgICB3ZWJWaWV3LT5maXJlTW91
c2VDbGljayhRUG9pbnRGKDIwLjAsIDI2MC4wKSk7CisgICAgUVZFUklGWSh3ZWJWaWV3LT5pbnB1
dE1ldGhvZEhpbnRzKCkgJiBRdDo6SW1oVXJsQ2hhcmFjdGVyc09ubHkpOworCisgICAgZGVsZXRl
IHdlYlZpZXc7CisgICAgZGVsZXRlIHZpZXc7Cit9CisKKwogCiBRVEVTVF9NQUlOKHRzdF9RR3Jh
cGhpY3NXZWJWaWV3KQogCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvdGVzdHMvcXdlYnZpZXcvdHN0
X3F3ZWJ2aWV3LmNwcCBiL1dlYktpdC9xdC90ZXN0cy9xd2Vidmlldy90c3RfcXdlYnZpZXcuY3Bw
CmluZGV4IDEwMDM5OWUuLjgzNWFkODIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC90ZXN0cy9xd2Vi
dmlldy90c3RfcXdlYnZpZXcuY3BwCisrKyBiL1dlYktpdC9xdC90ZXN0cy9xd2Vidmlldy90c3Rf
cXdlYnZpZXcuY3BwCkBAIC0zMCw4ICszMCw2IEBACiAjaW5jbHVkZSA8cXdlYmtpdHZlcnNpb24u
aD4KICNpbmNsdWRlIDxxd2ViZnJhbWUuaD4KIAotI2luY2x1ZGUgPFFEZWJ1Zz4KLQogY2xhc3Mg
dHN0X1FXZWJWaWV3IDogcHVibGljIFFPYmplY3QKIHsKICAgICBRX09CSkVDVApAQCAtNDksMTAg
KzQ3LDI1IEBAIHByaXZhdGUgc2xvdHM6CiAgICAgdm9pZCByZXVzZVBhZ2VfZGF0YSgpOwogICAg
IHZvaWQgcmV1c2VQYWdlKCk7CiAgICAgdm9pZCBtaWNyb0ZvY3VzQ29vcmRpbmF0ZXMoKTsKKyAg
ICB2b2lkIGZvY3VzSW5wdXRUeXBlcygpOwogCiAgICAgdm9pZCBjcmFzaFRlc3RzKCk7CiB9Owog
CitjbGFzcyBXZWJWaWV3IDogcHVibGljIFFXZWJWaWV3Cit7CisgICAgUV9PQkpFQ1QKKworcHVi
bGljOgorICAgIHZvaWQgZmlyZU1vdXNlQ2xpY2soUVBvaW50IHBvaW50KSB7CisgICAgICAgIFFN
b3VzZUV2ZW50IHByZXNFdihRRXZlbnQ6Ok1vdXNlQnV0dG9uUHJlc3MsIHBvaW50LCBRdDo6TGVm
dEJ1dHRvbiwgUXQ6OkxlZnRCdXR0b24sIFF0OjpOb01vZGlmaWVyKTsKKyAgICAgICAgUU1vdXNl
RXZlbnQgcmVsRXYoUUV2ZW50OjpNb3VzZUJ1dHRvblJlbGVhc2UsIHBvaW50LCBRdDo6TGVmdEJ1
dHRvbiwgUXQ6OkxlZnRCdXR0b24sIFF0OjpOb01vZGlmaWVyKTsKKyAgICAgICAgUVdlYlZpZXc6
Om1vdXNlUHJlc3NFdmVudCgmcHJlc0V2KTsKKyAgICAgICAgUVdlYlZpZXc6Om1vdXNlUHJlc3NF
dmVudCgmcmVsRXYpOworICAgIH0KKworfTsKKwogLy8gVGhpcyB3aWxsIGJlIGNhbGxlZCBiZWZv
cmUgdGhlIGZpcnN0IHRlc3QgZnVuY3Rpb24gaXMgZXhlY3V0ZWQuCiAvLyBJdCBpcyBvbmx5IGNh
bGxlZCBvbmNlLgogdm9pZCB0c3RfUVdlYlZpZXc6OmluaXRUZXN0Q2FzZSgpCkBAIC0yMzAsNiAr
MjQzLDUyIEBAIHZvaWQgdHN0X1FXZWJWaWV3OjptaWNyb0ZvY3VzQ29vcmRpbmF0ZXMoKQogICAg
IFFDT01QQVJFKGluaXRpYWxNaWNyb0ZvY3VzLnRvUmVjdCgpLnRyYW5zbGF0ZWQoUVBvaW50KDAs
LTUwKSksIGN1cnJlbnRNaWNyb0ZvY3VzLnRvUmVjdCgpKTsKIH0KIAordm9pZCB0c3RfUVdlYlZp
ZXc6OmZvY3VzSW5wdXRUeXBlcygpCit7CisgICAgUVdlYlBhZ2UqIHBhZ2UgPSBuZXcgUVdlYlBh
Z2U7CisgICAgV2ViVmlldyogd2ViVmlldyA9IG5ldyBXZWJWaWV3OworICAgIHdlYlZpZXctPnNl
dFBhZ2UoIHBhZ2UgKTsKKworICAgIFFDb3JlQXBwbGljYXRpb246OnByb2Nlc3NFdmVudHMoKTsK
KyAgICBRVXJsIHVybCgicXJjOi8vL3Jlc291cmNlcy9pbnB1dF90eXBlcy5odG1sIik7CisgICAg
cGFnZS0+bWFpbkZyYW1lKCktPmxvYWQodXJsKTsKKyAgICBwYWdlLT5tYWluRnJhbWUoKS0+c2V0
Rm9jdXMoKTsKKworICAgIFFWRVJJRlkod2FpdEZvclNpZ25hbChwYWdlLCBTSUdOQUwobG9hZEZp
bmlzaGVkKGJvb2wpKSkpOworCisgICAgLy8gJ3RleHQnIHR5cGUKKyAgICB3ZWJWaWV3LT5maXJl
TW91c2VDbGljayhRUG9pbnQoMjAsIDEwKSk7CisjaWYgZGVmaW5lZChRX1dTX01BRU1PXzUpIHx8
IGRlZmluZWQoUV9XU19NQUVNT182KSB8fCBkZWZpbmVkKFFfT1NfU1lNQklBTikKKyAgICBRVkVS
SUZZKHdlYlZpZXctPmlucHV0TWV0aG9kSGludHMoKSAmIFF0OjpJbWhOb0F1dG9VcHBlcmNhc2Up
OworICAgIFFWRVJJRlkod2ViVmlldy0+aW5wdXRNZXRob2RIaW50cygpICYgUXQ6OkltaE5vUHJl
ZGljdGl2ZVRleHQpOworI2Vsc2UKKyAgICBRVkVSSUZZKHdlYlZpZXctPmlucHV0TWV0aG9kSGlu
dHMoKSA9PSBRdDo6SW1oTm9uZSk7CisjZW5kaWYKKworICAgIC8vICdwYXNzd29yZCcgZmllbGQK
KyAgICB3ZWJWaWV3LT5maXJlTW91c2VDbGljayhRUG9pbnQoMjAsIDYwKSk7CisgICAgUVZFUklG
WSh3ZWJWaWV3LT5pbnB1dE1ldGhvZEhpbnRzKCkgJiBRdDo6SW1oSGlkZGVuVGV4dCk7CisKKyAg
ICAvLyAndGVsJyBmaWVsZAorICAgIHdlYlZpZXctPmZpcmVNb3VzZUNsaWNrKFFQb2ludCgyMCwg
MTEwKSk7CisgICAgUVZFUklGWSh3ZWJWaWV3LT5pbnB1dE1ldGhvZEhpbnRzKCkgJiBRdDo6SW1o
RGlhbGFibGVDaGFyYWN0ZXJzT25seSk7CisKKyAgICAvLyAnbnVtYmVyJyBmaWVsZAorICAgIHdl
YlZpZXctPmZpcmVNb3VzZUNsaWNrKFFQb2ludCgyMCwgMTYwKSk7CisgICAgUVZFUklGWSh3ZWJW
aWV3LT5pbnB1dE1ldGhvZEhpbnRzKCkgJiBRdDo6SW1oRGlnaXRzT25seSk7CisKKyAgICAvLyAn
ZW1haWwnIGZpZWxkCisgICAgd2ViVmlldy0+ZmlyZU1vdXNlQ2xpY2soUVBvaW50KDIwLCAyMTAp
KTsKKyAgICBRVkVSSUZZKHdlYlZpZXctPmlucHV0TWV0aG9kSGludHMoKSAmIFF0OjpJbWhFbWFp
bENoYXJhY3RlcnNPbmx5KTsKKworICAgIC8vICd1cmwnIGZpZWxkCisgICAgd2ViVmlldy0+Zmly
ZU1vdXNlQ2xpY2soUVBvaW50KDIwLCAyNjApKTsKKyAgICBRVkVSSUZZKHdlYlZpZXctPmlucHV0
TWV0aG9kSGludHMoKSAmIFF0OjpJbWhVcmxDaGFyYWN0ZXJzT25seSk7CisKKyAgICBkZWxldGUg
d2ViVmlldzsKKworfQorCiBRVEVTVF9NQUlOKHRzdF9RV2ViVmlldykKICNpbmNsdWRlICJ0c3Rf
cXdlYnZpZXcubW9jIgogCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvdGVzdHMvcXdlYnZpZXcvdHN0
X3F3ZWJ2aWV3LnFyYyBiL1dlYktpdC9xdC90ZXN0cy9xd2Vidmlldy90c3RfcXdlYnZpZXcucXJj
CmluZGV4IDVhYmM2NGMuLjg3MTBhOWEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC90ZXN0cy9xd2Vi
dmlldy90c3RfcXdlYnZpZXcucXJjCisrKyBiL1dlYktpdC9xdC90ZXN0cy9xd2Vidmlldy90c3Rf
cXdlYnZpZXcucXJjCkBAIC0yLDYgKzIsNyBAQAogPHFyZXNvdXJjZT4KICAgICA8ZmlsZT5yZXNv
dXJjZXMvaW5kZXguaHRtbDwvZmlsZT4KICAgICA8ZmlsZT5yZXNvdXJjZXMvZnJhbWVfYS5odG1s
PC9maWxlPgorICAgIDxmaWxlPnJlc291cmNlcy9pbnB1dF90eXBlcy5odG1sPC9maWxlPgogPC9x
cmVzb3VyY2U+CiA8L1JDQz4KIApkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L3Rlc3RzL3FncmFwaGlj
c3dlYnZpZXcvcmVzb3VyY2VzL2lucHV0X3R5cGVzLmh0bWwgYi9XZWJLaXQvcXQvdGVzdHMvcWdy
YXBoaWNzd2Vidmlldy9yZXNvdXJjZXMvaW5wdXRfdHlwZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4xOGFiMzE0Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L3F0
L3Rlc3RzL3FncmFwaGljc3dlYnZpZXcvcmVzb3VyY2VzL2lucHV0X3R5cGVzLmh0bWwKQEAgLTAs
MCArMSw4IEBACis8aHRtbD48Ym9keT4KKzxpbnB1dCB0eXBlPSd0ZXh0JyBtYXhsZW5ndGg9JzIw
JyBzdHlsZT0ncG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMHB4OyB0b3A6IDBweDsgaGVpZ2h0
OiA1MHB4OyB3aWR0aDogMTAwcHg7Jy8+PGJyPgorPGlucHV0IHR5cGU9J3Bhc3N3b3JkJyBzdHls
ZT0ncG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMHB4OyB0b3A6IDUwcHg7IGhlaWdodDogNTBw
eDsgd2lkdGg6IDEwMHB4OycvPjxicj4KKzxpbnB1dCB0eXBlPSd0ZWwnIHN0eWxlPSdwb3NpdGlv
bjogYWJzb2x1dGU7IGxlZnQ6IDEwcHg7IHRvcDogMTAwcHg7IGhlaWdodDogNTBweDsgd2lkdGg6
IDEwMHB4OycvPjxicj4KKzxpbnB1dCB0eXBlPSdudW1iZXInIHN0eWxlPSdwb3NpdGlvbjogYWJz
b2x1dGU7IGxlZnQ6IDEwcHg7IHRvcDogMTUwcHg7IGhlaWdodDogNTBweDsgd2lkdGg6IDEwMHB4
OycvPjxicj4KKzxpbnB1dCB0eXBlPSdlbWFpbCcgc3R5bGU9J3Bvc2l0aW9uOiBhYnNvbHV0ZTsg
bGVmdDogMTBweDsgdG9wOiAyMDBweDsgaGVpZ2h0OiA1MHB4OyB3aWR0aDogMTAwcHg7Jy8+PGJy
PgorPGlucHV0IHR5cGU9J3VybCcgc3R5bGU9J3Bvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTBw
eDsgdG9wOiAyNTBweDsgaGVpZ2h0OiA1MHB4OyB3aWR0aDogMTAwcHg7Jy8+PGJyPiIKKzwvYm9k
eT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViS2l0
L3F0L3Rlc3RzL3FncmFwaGljc3dlYnZpZXcvdHN0X3FncmFwaGljc3dlYnZpZXcucXJjIGIvV2Vi
S2l0L3F0L3Rlc3RzL3FncmFwaGljc3dlYnZpZXcvdHN0X3FncmFwaGljc3dlYnZpZXcucXJjCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5MWJiOWMKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJLaXQvcXQvdGVzdHMvcWdyYXBoaWNzd2Vidmlldy90c3RfcWdyYXBoaWNzd2Vidmll
dy5xcmMKQEAgLTAsMCArMSw2IEBACis8IURPQ1RZUEUgUkNDPjxSQ0MgdmVyc2lvbj0iMS4wIj4K
KzxxcmVzb3VyY2U+CisgICAgPGZpbGU+cmVzb3VyY2VzL2lucHV0X3R5cGVzLmh0bWw8L2ZpbGU+
Cis8L3FyZXNvdXJjZT4KKzwvUkNDPgorCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvdGVzdHMvcXdl
YnZpZXcvcmVzb3VyY2VzL2lucHV0X3R5cGVzLmh0bWwgYi9XZWJLaXQvcXQvdGVzdHMvcXdlYnZp
ZXcvcmVzb3VyY2VzL2lucHV0X3R5cGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMThhYjMxNAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9xdC90ZXN0cy9xd2Vi
dmlldy9yZXNvdXJjZXMvaW5wdXRfdHlwZXMuaHRtbApAQCAtMCwwICsxLDggQEAKKzxodG1sPjxi
b2R5PgorPGlucHV0IHR5cGU9J3RleHQnIG1heGxlbmd0aD0nMjAnIHN0eWxlPSdwb3NpdGlvbjog
YWJzb2x1dGU7IGxlZnQ6IDEwcHg7IHRvcDogMHB4OyBoZWlnaHQ6IDUwcHg7IHdpZHRoOiAxMDBw
eDsnLz48YnI+Cis8aW5wdXQgdHlwZT0ncGFzc3dvcmQnIHN0eWxlPSdwb3NpdGlvbjogYWJzb2x1
dGU7IGxlZnQ6IDEwcHg7IHRvcDogNTBweDsgaGVpZ2h0OiA1MHB4OyB3aWR0aDogMTAwcHg7Jy8+
PGJyPgorPGlucHV0IHR5cGU9J3RlbCcgc3R5bGU9J3Bvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDog
MTBweDsgdG9wOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyB3aWR0aDogMTAwcHg7Jy8+PGJyPgorPGlu
cHV0IHR5cGU9J251bWJlcicgc3R5bGU9J3Bvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTBweDsg
dG9wOiAxNTBweDsgaGVpZ2h0OiA1MHB4OyB3aWR0aDogMTAwcHg7Jy8+PGJyPgorPGlucHV0IHR5
cGU9J2VtYWlsJyBzdHlsZT0ncG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMHB4OyB0b3A6IDIw
MHB4OyBoZWlnaHQ6IDUwcHg7IHdpZHRoOiAxMDBweDsnLz48YnI+Cis8aW5wdXQgdHlwZT0ndXJs
JyBzdHlsZT0ncG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMHB4OyB0b3A6IDI1MHB4OyBoZWln
aHQ6IDUwcHg7IHdpZHRoOiAxMDBweDsnLz48YnI+IgorPC9ib2R5PjwvaHRtbD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58291</attachid>
            <date>2010-06-09 13:48:24 -0700</date>
            <delta_ts>2010-06-10 08:34:16 -0700</delta_ts>
            <desc>3rd proposal for fix.</desc>
            <filename>Impossible-to-set-input-method-hints-based-HTML5</filename>
            <type>text/plain</type>
            <size>14861</size>
            <attacher name="Raine Makelainen">raine.makelainen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
N2RkZDc1Yi4uNjNiYjBhNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0wNi0wOSAgUmFpbmUgTWFrZWxh
aW5lbiAgPHJhaW5lLm1ha2VsYWluZW5Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcG9zc2libGUgdG8gc2V0IGlucHV0IG1ldGhv
ZCBoaW50cyBiYXNlZCBIVE1MNSBpbnB1dCB0eXBlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAxMDcKKworICAgICAgICBIZWxwZXIgbWV0aG9kcyBm
b3IgY2hlY2tpbmcgInRlbCIsICJudW1iZXIiLCAiZW1haWwiLAorICAgICAgICBhbmQgInVybCIg
aW5wdXQgZWxlbWVudCB0eXBlcy4KKworICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5o
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6aXNUZWxlcGhvbmVGaWVsZCk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojppc051bWJlckZpZWxkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmlzRW1haWxGaWVsZCk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojppc1VybEZpZWxkKToKKwogMjAxMC0wNi0wOSAg
TWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkZWxl
IFBldGVyc29uLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBi
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggMzYzYTI1Zi4uYTlhN2JiMCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0xMDEsNiArMTAxLDEwIEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBT
RUFSQ0g7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNJbnB1dFR5cGVIaWRkZW4oKSBjb25zdCB7IHJl
dHVybiBtX3R5cGUgPT0gSElEREVOOyB9CiAgICAgdmlydHVhbCBib29sIGlzUGFzc3dvcmRGaWVs
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBQQVNTV09SRDsgfQorICAgIGJvb2wgaXNUZWxl
cGhvbmVGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBURUxFUEhPTkU7IH0KKyAgICBi
b29sIGlzTnVtYmVyRmllbGQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gTlVNQkVSOyB9Cisg
ICAgYm9vbCBpc0VtYWlsRmllbGQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gRU1BSUw7IH0K
KyAgICBib29sIGlzVXJsRmllbGQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gVVJMOyB9CiAK
ICAgICBib29sIGNoZWNrZWQoKSBjb25zdCB7IHJldHVybiBtX2NoZWNrZWQ7IH0KICAgICB2b2lk
IHNldENoZWNrZWQoYm9vbCwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQgPSBmYWxzZSk7CmRpZmYgLS1n
aXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCBmZTA4
ZDcyLi5lNWY4YzA3IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktp
dC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMC0wNi0wOSAgUmFpbmUgTWFrZWxh
aW5lbiAgPHJhaW5lLm1ha2VsYWluZW5Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcG9zc2libGUgdG8gc2V0IGlucHV0IG1ldGhv
ZCBoaW50cyBiYXNlZCBIVE1MNSBpbnB1dCB0eXBlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAxMDcKKworICAgICAgICBFZGl0b3JDbGllbnRRdCB0
byBzZXQgaW5wdXQgbWV0aG9kIGhpbnRzIGZvciAibnVtYmVyIiwgInRlbCIsCisgICAgICAgICJl
bWFpbCIsIGFuZCAidXJsIiBIVE1MIGlucHV0IGVsZW1lbnRzLgorCisgICAgICAgIFRlc3RzIGZv
ciBIVE1MIGlucHV0IGVsZW1lbnRzIGFuZCBpbnB1dCBtZXRob2QgaGludHMgYWRkZWQgZm9yCisg
ICAgICAgIFFHcmFwaGljc1dlYlZpZXcgYW5kIFFXZWJWaWV3LgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xp
ZW50UXQ6OnNldElucHV0TWV0aG9kU3RhdGUpOgorICAgICAgICAqIHRlc3RzL3FncmFwaGljc3dl
YnZpZXcvcmVzb3VyY2VzL2lucHV0X3R5cGVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHRlc3Rz
L3FncmFwaGljc3dlYnZpZXcvdHN0X3FncmFwaGljc3dlYnZpZXcuY3BwOgorICAgICAgICAoR3Jh
cGhpY3NXZWJWaWV3OjpHcmFwaGljc1dlYlZpZXcpOgorICAgICAgICAoR3JhcGhpY3NXZWJWaWV3
OjpmaXJlTW91c2VDbGljayk6CisgICAgICAgICh0c3RfUUdyYXBoaWNzV2ViVmlldzo6Zm9jdXNJ
bnB1dFR5cGVzKToKKyAgICAgICAgKiB0ZXN0cy9xZ3JhcGhpY3N3ZWJ2aWV3L3RzdF9xZ3JhcGhp
Y3N3ZWJ2aWV3LnFyYzogQWRkZWQuCisgICAgICAgICogdGVzdHMvcXdlYnZpZXcvcmVzb3VyY2Vz
L2lucHV0X3R5cGVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL3F3ZWJ2aWV3L3RzdF9x
d2Vidmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3OjpmaXJlTW91c2VDbGljayk6CisgICAgICAg
ICh0c3RfUVdlYlZpZXc6OmZvY3VzSW5wdXRUeXBlcyk6CisgICAgICAgICogdGVzdHMvcXdlYnZp
ZXcvdHN0X3F3ZWJ2aWV3LnFyYzoKKwogMjAxMC0wNi0wOSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQu
cmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjYwODg5LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dFF0LmNwcCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHAKaW5k
ZXggMWZkNDYyYy4uOTNlNTc0NSAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudFF0LmNwcAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50UXQuY3BwCkBAIC01OTIsMjAgKzU5MiwyOCBAQCB2b2lkIEVkaXRvckNsaWVudFF0Ojpz
ZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgYWN0aXZlKQogICAgIFFXZWJQYWdlQ2xpZW50KiB3ZWJQ
YWdlQ2xpZW50ID0gbV9wYWdlLT5kLT5jbGllbnQ7CiAgICAgaWYgKHdlYlBhZ2VDbGllbnQpIHsK
ICNpZiBRVF9WRVJTSU9OID49IDB4MDQwNjAwCi0gICAgICAgIGJvb2wgaXNQYXNzd29yZEZpZWxk
ID0gZmFsc2U7Ci0gICAgICAgIGlmICghYWN0aXZlKSB7Ci0gICAgICAgICAgICAvLyBTZXR0aW5n
IHRoZSBRdDo6V0FfSW5wdXRNZXRob2RFbmFibGVkIGF0dHJpYnV0ZSB0cnVlIGFuZCBRdDo6SW1o
SGlkZGVuVGV4dCBmbGFnCi0gICAgICAgICAgICAvLyBmb3IgcGFzc3dvcmQgZmllbGRzLiBUaGUg
UXQgcGxhdGZvcm0gaXMgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHdoaWNoIHdpZGdldCAK
LSAgICAgICAgICAgIC8vIHdpbGwgcmVjZWl2ZSBpbnB1dCBtZXRob2QgZXZlbnRzIGZvciBwYXNz
d29yZCBmaWVsZHMuCi0gICAgICAgICAgICBGcmFtZSogZnJhbWUgPSBtX3BhZ2UtPmQtPnBhZ2Ut
PmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJhbWUoKTsKLSAgICAgICAgICAgIGlm
IChmcmFtZSAmJiBmcmFtZS0+ZG9jdW1lbnQoKSAmJiBmcmFtZS0+ZG9jdW1lbnQoKS0+Zm9jdXNl
ZE5vZGUoKSkgewotICAgICAgICAgICAgICAgIGlmIChmcmFtZS0+ZG9jdW1lbnQoKS0+Zm9jdXNl
ZE5vZGUoKS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmlucHV0VGFnKSkgewotICAgICAgICAgICAg
ICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1M
SW5wdXRFbGVtZW50Kj4oZnJhbWUtPmRvY3VtZW50KCktPmZvY3VzZWROb2RlKCkpOwotICAgICAg
ICAgICAgICAgICAgICBhY3RpdmUgPSBpc1Bhc3N3b3JkRmllbGQgPSBpbnB1dEVsZW1lbnQtPmlz
UGFzc3dvcmRGaWVsZCgpOwotICAgICAgICAgICAgICB9CisgICAgICAgIEhUTUxJbnB1dEVsZW1l
bnQqIGlucHV0RWxlbWVudCA9IDA7CisgICAgICAgIEZyYW1lKiBmcmFtZSA9IG1fcGFnZS0+ZC0+
cGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpOworICAgICAgICBp
ZiAoZnJhbWUgJiYgZnJhbWUtPmRvY3VtZW50KCkgJiYgZnJhbWUtPmRvY3VtZW50KCktPmZvY3Vz
ZWROb2RlKCkpCisgICAgICAgICAgICBpZiAoZnJhbWUtPmRvY3VtZW50KCktPmZvY3VzZWROb2Rl
KCktPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjppbnB1dFRhZykpCisgICAgICAgICAgICAgICAgaW5w
dXRFbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGZyYW1lLT5kb2N1bWVu
dCgpLT5mb2N1c2VkTm9kZSgpKTsKKworICAgICAgICBpZiAoaW5wdXRFbGVtZW50KSB7CisgICAg
ICAgICAgICBpZiAoIWFjdGl2ZSkgeworICAgICAgICAgICAgICAgIC8vIFNldHRpbmcgdGhlIFF0
OjpXQV9JbnB1dE1ldGhvZEVuYWJsZWQgYXR0cmlidXRlIHRydWUgYW5kIFF0OjpJbWhIaWRkZW5U
ZXh0IGZsYWcKKyAgICAgICAgICAgICAgICAvLyBmb3IgcGFzc3dvcmQgZmllbGRzLiBUaGUgUXQg
cGxhdGZvcm0gaXMgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHdoaWNoIHdpZGdldAorICAg
ICAgICAgICAgICAgIC8vIHdpbGwgcmVjZWl2ZSBpbnB1dCBtZXRob2QgZXZlbnRzIGZvciBwYXNz
d29yZCBmaWVsZHMuCisgICAgICAgICAgICAgICAgYWN0aXZlID0gaW5wdXRFbGVtZW50LT5pc1Bh
c3N3b3JkRmllbGQoKTsKKyAgICAgICAgICAgICAgICB3ZWJQYWdlQ2xpZW50LT5zZXRJbnB1dE1l
dGhvZEhpbnQoUXQ6OkltaEhpZGRlblRleHQsIGFjdGl2ZSk7CisgICAgICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgICAgIC8vIFNldCBpbnB1dCBtZXRob2QgaGludHMgZm9yICJudW1iZXIi
LCAidGVsIiwgImVtYWlsIiwgYW5kICJ1cmwiIGlucHV0IGVsZW1lbnRzLgorICAgICAgICAgICAg
ICAgIHdlYlBhZ2VDbGllbnQtPnNldElucHV0TWV0aG9kSGludChRdDo6SW1oRGlhbGFibGVDaGFy
YWN0ZXJzT25seSwgaW5wdXRFbGVtZW50LT5pc1RlbGVwaG9uZUZpZWxkKCkpOworICAgICAgICAg
ICAgICAgIHdlYlBhZ2VDbGllbnQtPnNldElucHV0TWV0aG9kSGludChRdDo6SW1oRGlnaXRzT25s
eSwgaW5wdXRFbGVtZW50LT5pc051bWJlckZpZWxkKCkpOworICAgICAgICAgICAgICAgIHdlYlBh
Z2VDbGllbnQtPnNldElucHV0TWV0aG9kSGludChRdDo6SW1oRW1haWxDaGFyYWN0ZXJzT25seSwg
aW5wdXRFbGVtZW50LT5pc0VtYWlsRmllbGQoKSk7CisgICAgICAgICAgICAgICAgd2ViUGFnZUNs
aWVudC0+c2V0SW5wdXRNZXRob2RIaW50KFF0OjpJbWhVcmxDaGFyYWN0ZXJzT25seSwgaW5wdXRF
bGVtZW50LT5pc1VybEZpZWxkKCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAg
IHdlYlBhZ2VDbGllbnQtPnNldElucHV0TWV0aG9kSGludChRdDo6SW1oSGlkZGVuVGV4dCwgaXNQ
YXNzd29yZEZpZWxkKTsKKwogI2lmIGRlZmluZWQoUV9XU19NQUVNT181KSB8fCBkZWZpbmVkKFFf
V1NfTUFFTU9fNikgfHwgZGVmaW5lZChRX09TX1NZTUJJQU4pCiAgICAgICAgIC8vIGRpc2FibGVz
IGF1dG8tdXBwZXJjYXNlIGFuZCBwcmVkaWN0aXZlIHRleHQgZm9yIG1vYmlsZSBkZXZpY2VzCiAg
ICAgICAgIHdlYlBhZ2VDbGllbnQtPnNldElucHV0TWV0aG9kSGludChRdDo6SW1oTm9BdXRvVXBw
ZXJjYXNlLCB0cnVlKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC90ZXN0cy9xZ3JhcGhpY3N3ZWJ2
aWV3L3RzdF9xZ3JhcGhpY3N3ZWJ2aWV3LmNwcCBiL1dlYktpdC9xdC90ZXN0cy9xZ3JhcGhpY3N3
ZWJ2aWV3L3RzdF9xZ3JhcGhpY3N3ZWJ2aWV3LmNwcAppbmRleCBlYmU4NDdkLi5lMDY1MjRkIDEw
MDY0NAotLS0gYS9XZWJLaXQvcXQvdGVzdHMvcWdyYXBoaWNzd2Vidmlldy90c3RfcWdyYXBoaWNz
d2Vidmlldy5jcHAKKysrIGIvV2ViS2l0L3F0L3Rlc3RzL3FncmFwaGljc3dlYnZpZXcvdHN0X3Fn
cmFwaGljc3dlYnZpZXcuY3BwCkBAIC0xOSw2ICsxOSw3IEBACiAKICNpbmNsdWRlICIuLi91dGls
LmgiCiAjaW5jbHVkZSA8UXRUZXN0L1F0VGVzdD4KKyNpbmNsdWRlIDxRR3JhcGhpY3NTY2VuZU1v
dXNlRXZlbnQ+CiAjaW5jbHVkZSA8UUdyYXBoaWNzVmlldz4KICNpbmNsdWRlIDxxZ3JhcGhpY3N3
ZWJ2aWV3Lmg+CiAjaW5jbHVkZSA8cXdlYnBhZ2UuaD4KQEAgLTMyLDYgKzMzLDcgQEAgcHJpdmF0
ZSBzbG90czoKICAgICB2b2lkIHFncmFwaGljc3dlYnZpZXcoKTsKICAgICB2b2lkIGNyYXNoT25W
aWV3bGVzc1dlYlBhZ2VzKCk7CiAgICAgdm9pZCBtaWNyb0ZvY3VzQ29vcmRpbmF0ZXMoKTsKKyAg
ICB2b2lkIGZvY3VzSW5wdXRUeXBlcygpOwogfTsKIAogdm9pZCB0c3RfUUdyYXBoaWNzV2ViVmll
dzo6cWdyYXBoaWNzd2VidmlldygpCkBAIC03NSw2ICs3NywyOSBAQCBwcml2YXRlIHNsb3RzOgog
ICAgIH0KIH07CiAKK2NsYXNzIEdyYXBoaWNzV2ViVmlldyA6IHB1YmxpYyBRR3JhcGhpY3NXZWJW
aWV3Cit7CisgICAgUV9PQkpFQ1QKKworcHVibGljOgorICAgIEdyYXBoaWNzV2ViVmlldyhRR3Jh
cGhpY3NJdGVtKiBwYXJlbnQgPSAwKTogUUdyYXBoaWNzV2ViVmlldyhwYXJlbnQpCisgICAgewor
ICAgIH0KKworICAgIHZvaWQgZmlyZU1vdXNlQ2xpY2soUVBvaW50RiBwb2ludCkgeworICAgICAg
ICBRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQgcHJlc0V2KFFFdmVudDo6R3JhcGhpY3NTY2VuZU1v
dXNlUHJlc3MpOworICAgICAgICBwcmVzRXYuc2V0UG9zKHBvaW50KTsKKyAgICAgICAgcHJlc0V2
LnNldEJ1dHRvbihRdDo6TGVmdEJ1dHRvbik7CisgICAgICAgIHByZXNFdi5zZXRCdXR0b25zKFF0
OjpMZWZ0QnV0dG9uKTsKKyAgICAgICAgUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50IHJlbEV2KFFF
dmVudDo6R3JhcGhpY3NTY2VuZU1vdXNlUmVsZWFzZSk7CisgICAgICAgIHJlbEV2LnNldFBvcyhw
b2ludCk7CisgICAgICAgIHJlbEV2LnNldEJ1dHRvbihRdDo6TGVmdEJ1dHRvbik7CisgICAgICAg
IHJlbEV2LnNldEJ1dHRvbnMoUXQ6OkxlZnRCdXR0b24pOworICAgICAgICBRR3JhcGhpY3NXZWJW
aWV3OjpzY2VuZUV2ZW50KCZwcmVzRXYpOworICAgICAgICBRR3JhcGhpY3NXZWJWaWV3OjpzY2Vu
ZUV2ZW50KCZyZWxFdik7CisgICAgfQorfTsKKwogdm9pZCB0c3RfUUdyYXBoaWNzV2ViVmlldzo6
Y3Jhc2hPblZpZXdsZXNzV2ViUGFnZXMoKQogewogICAgIFFHcmFwaGljc1NjZW5lIHNjZW5lOwpA
QCAtMTQwLDYgKzE2NSw1NyBAQCB2b2lkIHRzdF9RR3JhcGhpY3NXZWJWaWV3OjptaWNyb0ZvY3Vz
Q29vcmRpbmF0ZXMoKQogICAgIGRlbGV0ZSB2aWV3OwogfQogCit2b2lkIHRzdF9RR3JhcGhpY3NX
ZWJWaWV3Ojpmb2N1c0lucHV0VHlwZXMoKQoreworICAgIFFXZWJQYWdlKiBwYWdlID0gbmV3IFFX
ZWJQYWdlOworICAgIEdyYXBoaWNzV2ViVmlldyogd2ViVmlldyA9IG5ldyBHcmFwaGljc1dlYlZp
ZXc7CisgICAgd2ViVmlldy0+c2V0UGFnZSggcGFnZSApOworICAgIFFHcmFwaGljc1ZpZXcqIHZp
ZXcgPSBuZXcgUUdyYXBoaWNzVmlldzsKKyAgICBRR3JhcGhpY3NTY2VuZSogc2NlbmUgPSBuZXcg
UUdyYXBoaWNzU2NlbmUodmlldyk7CisgICAgdmlldy0+c2V0U2NlbmUoc2NlbmUpOworICAgIHNj
ZW5lLT5hZGRJdGVtKHdlYlZpZXcpOworICAgIHZpZXctPnNldEdlb21ldHJ5KFFSZWN0KDAsMCw1
MDAsNTAwKSk7CisgICAgUUNvcmVBcHBsaWNhdGlvbjo6cHJvY2Vzc0V2ZW50cygpOworICAgIFFV
cmwgdXJsKCJxcmM6Ly8vcmVzb3VyY2VzL2lucHV0X3R5cGVzLmh0bWwiKTsKKyAgICBwYWdlLT5t
YWluRnJhbWUoKS0+bG9hZCh1cmwpOworICAgIHBhZ2UtPm1haW5GcmFtZSgpLT5zZXRGb2N1cygp
OworCisgICAgUVZFUklGWSh3YWl0Rm9yU2lnbmFsKHBhZ2UsIFNJR05BTChsb2FkRmluaXNoZWQo
Ym9vbCkpKSk7CisKKyAgICAvLyAndGV4dCcgdHlwZQorICAgIHdlYlZpZXctPmZpcmVNb3VzZUNs
aWNrKFFQb2ludEYoMjAuMCwgMTAuMCkpOworI2lmIGRlZmluZWQoUV9XU19NQUVNT181KSB8fCBk
ZWZpbmVkKFFfV1NfTUFFTU9fNikgfHwgZGVmaW5lZChRX09TX1NZTUJJQU4pCisgICAgUVZFUklG
WSh3ZWJWaWV3LT5pbnB1dE1ldGhvZEhpbnRzKCkgJiBRdDo6SW1oTm9BdXRvVXBwZXJjYXNlKTsK
KyAgICBRVkVSSUZZKHdlYlZpZXctPmlucHV0TWV0aG9kSGludHMoKSAmIFF0OjpJbWhOb1ByZWRp
Y3RpdmVUZXh0KTsKKyNlbHNlCisgICAgUVZFUklGWSh3ZWJWaWV3LT5pbnB1dE1ldGhvZEhpbnRz
KCkgPT0gUXQ6OkltaE5vbmUpOworI2VuZGlmCisKKyAgICAvLyAncGFzc3dvcmQnIGZpZWxkCisg
ICAgd2ViVmlldy0+ZmlyZU1vdXNlQ2xpY2soUVBvaW50RigyMC4wLCA2MC4wKSk7CisgICAgUVZF
UklGWSh3ZWJWaWV3LT5pbnB1dE1ldGhvZEhpbnRzKCkgJiBRdDo6SW1oSGlkZGVuVGV4dCk7CisK
KyAgICAvLyAndGVsJyBmaWVsZAorICAgIHdlYlZpZXctPmZpcmVNb3VzZUNsaWNrKFFQb2ludEYo
MjAuMCwgMTEwLjApKTsKKyAgICBRVkVSSUZZKHdlYlZpZXctPmlucHV0TWV0aG9kSGludHMoKSAm
IFF0OjpJbWhEaWFsYWJsZUNoYXJhY3RlcnNPbmx5KTsKKworICAgIC8vICdudW1iZXInIGZpZWxk
CisgICAgd2ViVmlldy0+ZmlyZU1vdXNlQ2xpY2soUVBvaW50RigyMC4wLCAxNjAuMCkpOworICAg
IFFWRVJJRlkod2ViVmlldy0+aW5wdXRNZXRob2RIaW50cygpICYgUXQ6OkltaERpZ2l0c09ubHkp
OworCisgICAgLy8gJ2VtYWlsJyBmaWVsZAorICAgIHdlYlZpZXctPmZpcmVNb3VzZUNsaWNrKFFQ
b2ludEYoMjAuMCwgMjEwLjApKTsKKyAgICBRVkVSSUZZKHdlYlZpZXctPmlucHV0TWV0aG9kSGlu
dHMoKSAmIFF0OjpJbWhFbWFpbENoYXJhY3RlcnNPbmx5KTsKKworICAgIC8vICd1cmwnIGZpZWxk
CisgICAgd2ViVmlldy0+ZmlyZU1vdXNlQ2xpY2soUVBvaW50RigyMC4wLCAyNjAuMCkpOworICAg
IFFWRVJJRlkod2ViVmlldy0+aW5wdXRNZXRob2RIaW50cygpICYgUXQ6OkltaFVybENoYXJhY3Rl
cnNPbmx5KTsKKworICAgIGRlbGV0ZSB3ZWJWaWV3OworICAgIGRlbGV0ZSB2aWV3OworfQorCisK
IAogUVRFU1RfTUFJTih0c3RfUUdyYXBoaWNzV2ViVmlldykKIApkaWZmIC0tZ2l0IGEvV2ViS2l0
L3F0L3Rlc3RzL3F3ZWJ2aWV3L3RzdF9xd2Vidmlldy5jcHAgYi9XZWJLaXQvcXQvdGVzdHMvcXdl
YnZpZXcvdHN0X3F3ZWJ2aWV3LmNwcAppbmRleCAxMDAzOTllLi44MzVhZDgyIDEwMDY0NAotLS0g
YS9XZWJLaXQvcXQvdGVzdHMvcXdlYnZpZXcvdHN0X3F3ZWJ2aWV3LmNwcAorKysgYi9XZWJLaXQv
cXQvdGVzdHMvcXdlYnZpZXcvdHN0X3F3ZWJ2aWV3LmNwcApAQCAtMzAsOCArMzAsNiBAQAogI2lu
Y2x1ZGUgPHF3ZWJraXR2ZXJzaW9uLmg+CiAjaW5jbHVkZSA8cXdlYmZyYW1lLmg+CiAKLSNpbmNs
dWRlIDxRRGVidWc+Ci0KIGNsYXNzIHRzdF9RV2ViVmlldyA6IHB1YmxpYyBRT2JqZWN0CiB7CiAg
ICAgUV9PQkpFQ1QKQEAgLTQ5LDEwICs0NywyNSBAQCBwcml2YXRlIHNsb3RzOgogICAgIHZvaWQg
cmV1c2VQYWdlX2RhdGEoKTsKICAgICB2b2lkIHJldXNlUGFnZSgpOwogICAgIHZvaWQgbWljcm9G
b2N1c0Nvb3JkaW5hdGVzKCk7CisgICAgdm9pZCBmb2N1c0lucHV0VHlwZXMoKTsKIAogICAgIHZv
aWQgY3Jhc2hUZXN0cygpOwogfTsKIAorY2xhc3MgV2ViVmlldyA6IHB1YmxpYyBRV2ViVmlldwor
eworICAgIFFfT0JKRUNUCisKK3B1YmxpYzoKKyAgICB2b2lkIGZpcmVNb3VzZUNsaWNrKFFQb2lu
dCBwb2ludCkgeworICAgICAgICBRTW91c2VFdmVudCBwcmVzRXYoUUV2ZW50OjpNb3VzZUJ1dHRv
blByZXNzLCBwb2ludCwgUXQ6OkxlZnRCdXR0b24sIFF0OjpMZWZ0QnV0dG9uLCBRdDo6Tm9Nb2Rp
Zmllcik7CisgICAgICAgIFFNb3VzZUV2ZW50IHJlbEV2KFFFdmVudDo6TW91c2VCdXR0b25SZWxl
YXNlLCBwb2ludCwgUXQ6OkxlZnRCdXR0b24sIFF0OjpMZWZ0QnV0dG9uLCBRdDo6Tm9Nb2RpZmll
cik7CisgICAgICAgIFFXZWJWaWV3Ojptb3VzZVByZXNzRXZlbnQoJnByZXNFdik7CisgICAgICAg
IFFXZWJWaWV3Ojptb3VzZVByZXNzRXZlbnQoJnJlbEV2KTsKKyAgICB9CisKK307CisKIC8vIFRo
aXMgd2lsbCBiZSBjYWxsZWQgYmVmb3JlIHRoZSBmaXJzdCB0ZXN0IGZ1bmN0aW9uIGlzIGV4ZWN1
dGVkLgogLy8gSXQgaXMgb25seSBjYWxsZWQgb25jZS4KIHZvaWQgdHN0X1FXZWJWaWV3Ojppbml0
VGVzdENhc2UoKQpAQCAtMjMwLDYgKzI0Myw1MiBAQCB2b2lkIHRzdF9RV2ViVmlldzo6bWljcm9G
b2N1c0Nvb3JkaW5hdGVzKCkKICAgICBRQ09NUEFSRShpbml0aWFsTWljcm9Gb2N1cy50b1JlY3Qo
KS50cmFuc2xhdGVkKFFQb2ludCgwLC01MCkpLCBjdXJyZW50TWljcm9Gb2N1cy50b1JlY3QoKSk7
CiB9CiAKK3ZvaWQgdHN0X1FXZWJWaWV3Ojpmb2N1c0lucHV0VHlwZXMoKQoreworICAgIFFXZWJQ
YWdlKiBwYWdlID0gbmV3IFFXZWJQYWdlOworICAgIFdlYlZpZXcqIHdlYlZpZXcgPSBuZXcgV2Vi
VmlldzsKKyAgICB3ZWJWaWV3LT5zZXRQYWdlKCBwYWdlICk7CisKKyAgICBRQ29yZUFwcGxpY2F0
aW9uOjpwcm9jZXNzRXZlbnRzKCk7CisgICAgUVVybCB1cmwoInFyYzovLy9yZXNvdXJjZXMvaW5w
dXRfdHlwZXMuaHRtbCIpOworICAgIHBhZ2UtPm1haW5GcmFtZSgpLT5sb2FkKHVybCk7CisgICAg
cGFnZS0+bWFpbkZyYW1lKCktPnNldEZvY3VzKCk7CisKKyAgICBRVkVSSUZZKHdhaXRGb3JTaWdu
YWwocGFnZSwgU0lHTkFMKGxvYWRGaW5pc2hlZChib29sKSkpKTsKKworICAgIC8vICd0ZXh0JyB0
eXBlCisgICAgd2ViVmlldy0+ZmlyZU1vdXNlQ2xpY2soUVBvaW50KDIwLCAxMCkpOworI2lmIGRl
ZmluZWQoUV9XU19NQUVNT181KSB8fCBkZWZpbmVkKFFfV1NfTUFFTU9fNikgfHwgZGVmaW5lZChR
X09TX1NZTUJJQU4pCisgICAgUVZFUklGWSh3ZWJWaWV3LT5pbnB1dE1ldGhvZEhpbnRzKCkgJiBR
dDo6SW1oTm9BdXRvVXBwZXJjYXNlKTsKKyAgICBRVkVSSUZZKHdlYlZpZXctPmlucHV0TWV0aG9k
SGludHMoKSAmIFF0OjpJbWhOb1ByZWRpY3RpdmVUZXh0KTsKKyNlbHNlCisgICAgUVZFUklGWSh3
ZWJWaWV3LT5pbnB1dE1ldGhvZEhpbnRzKCkgPT0gUXQ6OkltaE5vbmUpOworI2VuZGlmCisKKyAg
ICAvLyAncGFzc3dvcmQnIGZpZWxkCisgICAgd2ViVmlldy0+ZmlyZU1vdXNlQ2xpY2soUVBvaW50
KDIwLCA2MCkpOworICAgIFFWRVJJRlkod2ViVmlldy0+aW5wdXRNZXRob2RIaW50cygpICYgUXQ6
OkltaEhpZGRlblRleHQpOworCisgICAgLy8gJ3RlbCcgZmllbGQKKyAgICB3ZWJWaWV3LT5maXJl
TW91c2VDbGljayhRUG9pbnQoMjAsIDExMCkpOworICAgIFFWRVJJRlkod2ViVmlldy0+aW5wdXRN
ZXRob2RIaW50cygpICYgUXQ6OkltaERpYWxhYmxlQ2hhcmFjdGVyc09ubHkpOworCisgICAgLy8g
J251bWJlcicgZmllbGQKKyAgICB3ZWJWaWV3LT5maXJlTW91c2VDbGljayhRUG9pbnQoMjAsIDE2
MCkpOworICAgIFFWRVJJRlkod2ViVmlldy0+aW5wdXRNZXRob2RIaW50cygpICYgUXQ6OkltaERp
Z2l0c09ubHkpOworCisgICAgLy8gJ2VtYWlsJyBmaWVsZAorICAgIHdlYlZpZXctPmZpcmVNb3Vz
ZUNsaWNrKFFQb2ludCgyMCwgMjEwKSk7CisgICAgUVZFUklGWSh3ZWJWaWV3LT5pbnB1dE1ldGhv
ZEhpbnRzKCkgJiBRdDo6SW1oRW1haWxDaGFyYWN0ZXJzT25seSk7CisKKyAgICAvLyAndXJsJyBm
aWVsZAorICAgIHdlYlZpZXctPmZpcmVNb3VzZUNsaWNrKFFQb2ludCgyMCwgMjYwKSk7CisgICAg
UVZFUklGWSh3ZWJWaWV3LT5pbnB1dE1ldGhvZEhpbnRzKCkgJiBRdDo6SW1oVXJsQ2hhcmFjdGVy
c09ubHkpOworCisgICAgZGVsZXRlIHdlYlZpZXc7CisKK30KKwogUVRFU1RfTUFJTih0c3RfUVdl
YlZpZXcpCiAjaW5jbHVkZSAidHN0X3F3ZWJ2aWV3Lm1vYyIKIApkaWZmIC0tZ2l0IGEvV2ViS2l0
L3F0L3Rlc3RzL3F3ZWJ2aWV3L3RzdF9xd2Vidmlldy5xcmMgYi9XZWJLaXQvcXQvdGVzdHMvcXdl
YnZpZXcvdHN0X3F3ZWJ2aWV3LnFyYwppbmRleCA1YWJjNjRjLi44NzEwYTlhIDEwMDY0NAotLS0g
YS9XZWJLaXQvcXQvdGVzdHMvcXdlYnZpZXcvdHN0X3F3ZWJ2aWV3LnFyYworKysgYi9XZWJLaXQv
cXQvdGVzdHMvcXdlYnZpZXcvdHN0X3F3ZWJ2aWV3LnFyYwpAQCAtMiw2ICsyLDcgQEAKIDxxcmVz
b3VyY2U+CiAgICAgPGZpbGU+cmVzb3VyY2VzL2luZGV4Lmh0bWw8L2ZpbGU+CiAgICAgPGZpbGU+
cmVzb3VyY2VzL2ZyYW1lX2EuaHRtbDwvZmlsZT4KKyAgICA8ZmlsZT5yZXNvdXJjZXMvaW5wdXRf
dHlwZXMuaHRtbDwvZmlsZT4KIDwvcXJlc291cmNlPgogPC9SQ0M+CiAKZGlmZiAtLWdpdCBhL1dl
YktpdC9xdC90ZXN0cy9xZ3JhcGhpY3N3ZWJ2aWV3L3Jlc291cmNlcy9pbnB1dF90eXBlcy5odG1s
IGIvV2ViS2l0L3F0L3Rlc3RzL3FncmFwaGljc3dlYnZpZXcvcmVzb3VyY2VzL2lucHV0X3R5cGVz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMThhYjMxNAotLS0gL2Rl
di9udWxsCisrKyBiL1dlYktpdC9xdC90ZXN0cy9xZ3JhcGhpY3N3ZWJ2aWV3L3Jlc291cmNlcy9p
bnB1dF90eXBlcy5odG1sCkBAIC0wLDAgKzEsOCBAQAorPGh0bWw+PGJvZHk+Cis8aW5wdXQgdHlw
ZT0ndGV4dCcgbWF4bGVuZ3RoPScyMCcgc3R5bGU9J3Bvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDog
MTBweDsgdG9wOiAwcHg7IGhlaWdodDogNTBweDsgd2lkdGg6IDEwMHB4OycvPjxicj4KKzxpbnB1
dCB0eXBlPSdwYXNzd29yZCcgc3R5bGU9J3Bvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTBweDsg
dG9wOiA1MHB4OyBoZWlnaHQ6IDUwcHg7IHdpZHRoOiAxMDBweDsnLz48YnI+Cis8aW5wdXQgdHlw
ZT0ndGVsJyBzdHlsZT0ncG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMHB4OyB0b3A6IDEwMHB4
OyBoZWlnaHQ6IDUwcHg7IHdpZHRoOiAxMDBweDsnLz48YnI+Cis8aW5wdXQgdHlwZT0nbnVtYmVy
JyBzdHlsZT0ncG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMHB4OyB0b3A6IDE1MHB4OyBoZWln
aHQ6IDUwcHg7IHdpZHRoOiAxMDBweDsnLz48YnI+Cis8aW5wdXQgdHlwZT0nZW1haWwnIHN0eWxl
PSdwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDEwcHg7IHRvcDogMjAwcHg7IGhlaWdodDogNTBw
eDsgd2lkdGg6IDEwMHB4OycvPjxicj4KKzxpbnB1dCB0eXBlPSd1cmwnIHN0eWxlPSdwb3NpdGlv
bjogYWJzb2x1dGU7IGxlZnQ6IDEwcHg7IHRvcDogMjUwcHg7IGhlaWdodDogNTBweDsgd2lkdGg6
IDEwMHB4OycvPjxicj4iCis8L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC90ZXN0cy9xZ3JhcGhpY3N3ZWJ2aWV3L3RzdF9xZ3Jh
cGhpY3N3ZWJ2aWV3LnFyYyBiL1dlYktpdC9xdC90ZXN0cy9xZ3JhcGhpY3N3ZWJ2aWV3L3RzdF9x
Z3JhcGhpY3N3ZWJ2aWV3LnFyYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5j
OTFiYjljCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L3F0L3Rlc3RzL3FncmFwaGljc3dlYnZp
ZXcvdHN0X3FncmFwaGljc3dlYnZpZXcucXJjCkBAIC0wLDAgKzEsNiBAQAorPCFET0NUWVBFIFJD
Qz48UkNDIHZlcnNpb249IjEuMCI+Cis8cXJlc291cmNlPgorICAgIDxmaWxlPnJlc291cmNlcy9p
bnB1dF90eXBlcy5odG1sPC9maWxlPgorPC9xcmVzb3VyY2U+Cis8L1JDQz4KKwpkaWZmIC0tZ2l0
IGEvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJ2aWV3L3Jlc291cmNlcy9pbnB1dF90eXBlcy5odG1sIGIv
V2ViS2l0L3F0L3Rlc3RzL3F3ZWJ2aWV3L3Jlc291cmNlcy9pbnB1dF90eXBlcy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4YWIzMTQKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJLaXQvcXQvdGVzdHMvcXdlYnZpZXcvcmVzb3VyY2VzL2lucHV0X3R5cGVzLmh0bWwKQEAg
LTAsMCArMSw4IEBACis8aHRtbD48Ym9keT4KKzxpbnB1dCB0eXBlPSd0ZXh0JyBtYXhsZW5ndGg9
JzIwJyBzdHlsZT0ncG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMHB4OyB0b3A6IDBweDsgaGVp
Z2h0OiA1MHB4OyB3aWR0aDogMTAwcHg7Jy8+PGJyPgorPGlucHV0IHR5cGU9J3Bhc3N3b3JkJyBz
dHlsZT0ncG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMHB4OyB0b3A6IDUwcHg7IGhlaWdodDog
NTBweDsgd2lkdGg6IDEwMHB4OycvPjxicj4KKzxpbnB1dCB0eXBlPSd0ZWwnIHN0eWxlPSdwb3Np
dGlvbjogYWJzb2x1dGU7IGxlZnQ6IDEwcHg7IHRvcDogMTAwcHg7IGhlaWdodDogNTBweDsgd2lk
dGg6IDEwMHB4OycvPjxicj4KKzxpbnB1dCB0eXBlPSdudW1iZXInIHN0eWxlPSdwb3NpdGlvbjog
YWJzb2x1dGU7IGxlZnQ6IDEwcHg7IHRvcDogMTUwcHg7IGhlaWdodDogNTBweDsgd2lkdGg6IDEw
MHB4OycvPjxicj4KKzxpbnB1dCB0eXBlPSdlbWFpbCcgc3R5bGU9J3Bvc2l0aW9uOiBhYnNvbHV0
ZTsgbGVmdDogMTBweDsgdG9wOiAyMDBweDsgaGVpZ2h0OiA1MHB4OyB3aWR0aDogMTAwcHg7Jy8+
PGJyPgorPGlucHV0IHR5cGU9J3VybCcgc3R5bGU9J3Bvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDog
MTBweDsgdG9wOiAyNTBweDsgaGVpZ2h0OiA1MHB4OyB3aWR0aDogMTAwcHg7Jy8+PGJyPiIKKzwv
Ym9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>