<?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>117585</bug_id>
          
          <creation_ts>2013-06-13 01:43:50 -0700</creation_ts>
          <short_desc>Context menu grammar checking items are available when GRAMMAR_CHECKING macro is off</short_desc>
          <delta_ts>2013-07-25 06:47:46 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></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>119086</dependson>
          <blocked>117692</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Grzegorz Czajkowski">g.czajkowski</reporter>
          <assigned_to name="Grzegorz Czajkowski">g.czajkowski</assigned_to>
          <cc>abrhm</cc>
    
    <cc>jberlin</cc>
    
    <cc>kadam</cc>
    
    <cc>rniwa</cc>
    
    <cc>zan</cc>
    
    <cc>zarvai</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>899942</commentid>
    <comment_count>0</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2013-06-13 01:43:50 -0700</bug_when>
    <thetext>&quot;Check Grammar With Spelling&quot; and &quot;Ignore Grammar&quot; shouldn&apos;t be populated in the context menu when GRAMMAR_CHECKING is off.

&quot;Spelling and Grammar&quot; should be replaced with &quot;Spelling&quot; as the sub menu title and &quot;Show/Hide Spelling and Grammar&quot; with &quot;Show/Hide Spelling&quot; when GRAMMAR_CHECKING is off.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>899943</commentid>
    <comment_count>1</comment_count>
      <attachid>204560</attachid>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2013-06-13 01:52:41 -0700</bug_when>
    <thetext>Created attachment 204560
guard grammar checking in context menu code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>900534</commentid>
    <comment_count>2</comment_count>
      <attachid>204560</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-06-14 06:17:24 -0700</bug_when>
    <thetext>Comment on attachment 204560
guard grammar checking in context menu code

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

&gt; Source/WebCore/platform/LocalizedStrings.cpp:304
&gt;      if (show)
&gt; +#if USE(GRAMMAR_CHECKING)
&gt;          return WEB_UI_STRING(&quot;Show Spelling and Grammar&quot;, &quot;menu item title&quot;);
&gt;      return WEB_UI_STRING(&quot;Hide Spelling and Grammar&quot;, &quot;menu item title&quot;);
&gt; +#else
&gt; +        return WEB_UI_STRING(&quot;Show Spelling&quot;, &quot;menu item title&quot;);
&gt; +    return WEB_UI_STRING(&quot;Hide Spelling&quot;, &quot;menu item title&quot;);
&gt; +#endif

I&apos;d rather if (show) was duplicated here, once in the #if block and once in the #else block.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>900940</commentid>
    <comment_count>3</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2013-06-16 23:50:08 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 204560 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=204560&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/LocalizedStrings.cpp:304
&gt; &gt;      if (show)
&gt; &gt; +#if USE(GRAMMAR_CHECKING)
&gt; &gt;          return WEB_UI_STRING(&quot;Show Spelling and Grammar&quot;, &quot;menu item title&quot;);
&gt; &gt;      return WEB_UI_STRING(&quot;Hide Spelling and Grammar&quot;, &quot;menu item title&quot;);
&gt; &gt; +#else
&gt; &gt; +        return WEB_UI_STRING(&quot;Show Spelling&quot;, &quot;menu item title&quot;);
&gt; &gt; +    return WEB_UI_STRING(&quot;Hide Spelling&quot;, &quot;menu item title&quot;);
&gt; &gt; +#endif
&gt; 
&gt; I&apos;d rather if (show) was duplicated here, once in the #if block and once in the #else block.

OK, fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>900949</commentid>
    <comment_count>4</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2013-06-17 00:29:40 -0700</bug_when>
    <thetext>Committed r151632: &lt;http://trac.webkit.org/changeset/151632&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>900961</commentid>
    <comment_count>5</comment_count>
    <who name="Gábor Ábrahám">abrhm</who>
    <bug_when>2013-06-17 02:19:41 -0700</bug_when>
    <thetext>In Qt Debug build bots both x32 and x64 there is a compilation error :

stdio log: 
/home/webkitbuildbot/slaves/debug64bit/buildslave/qt-linux-64-debug/build/Source/WebCore/editing/Editor.cpp: In member function &apos;void WebCore::Editor::advanceToNextMisspelling(bool)&apos;:
/home/webkitbuildbot/slaves/debug64bit/buildslave/qt-linux-64-debug/build/Source/WebCore/editing/Editor.cpp:1771:12: error: &apos;WTF_USE_GRAMMAR_CHECKING&apos; was not declared in this scope
/home/webkitbuildbot/slaves/debug64bit/buildslave/qt-linux-64-debug/build/Source/WebCore/editing/Editor.cpp: In member function &apos;void WebCore::Editor::markMisspellingsOrBadGrammar(const WebCore::VisibleSelection&amp;, bool, WTF::RefPtr&lt;WebCore::Range&gt;&amp;)&apos;:
/home/webkitbuildbot/slaves/debug64bit/buildslave/qt-linux-64-debug/build/Source/WebCore/editing/Editor.cpp:2067:12: error: &apos;WTF_USE_GRAMMAR_CHECKING&apos; was not declared in this scope
/home/webkitbuildbot/slaves/debug64bit/buildslave/qt-linux-64-debug/build/Source/WebCore/editing/Editor.cpp: In member function &apos;void WebCore::Editor::markBadGrammar(const WebCore::VisibleSelection&amp;)&apos;:
/home/webkitbuildbot/slaves/debug64bit/buildslave/qt-linux-64-debug/build/Source/WebCore/editing/Editor.cpp:2095:8: error: &apos;WTF_USE_GRAMMAR_CHECKING&apos; was not declared in this scope

Link: http://build.webkit.sed.hu/builders/x86-64%20Linux%20Qt%20Debug/builds/29347

Could you check it please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>900962</commentid>
    <comment_count>6</comment_count>
    <who name="Zoltan Arvai">zarvai</who>
    <bug_when>2013-06-17 02:28:27 -0700</bug_when>
    <thetext>Similar build failure on GTK Linux 64-bit Debug WK1
http://build.webkit.org/builders/GTK%20Linux%2064-bit%20Debug%20WK1/builds/2607

also problems on Apple Win Debug:
http://build.webkit.org/builders/Apple%20Win%20Debug%20%28Build%29/builds/67751</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>901005</commentid>
    <comment_count>7</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2013-06-17 06:32:57 -0700</bug_when>
    <thetext>Reverted r151632 for reason:

Debug build error ASSERT(WTF_USE_GRAMMAR_CHECKING) for non MAC platforms

Committed r151638: &lt;http://trac.webkit.org/changeset/151638&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>204560</attachid>
            <date>2013-06-13 01:52:41 -0700</date>
            <delta_ts>2013-06-14 06:17:23 -0700</delta_ts>
            <desc>guard grammar checking in context menu code</desc>
            <filename>spelling-context-menu-grammar-disable.patch</filename>
            <type>text/plain</type>
            <size>34809</size>
            <attacher name="Grzegorz Czajkowski">g.czajkowski</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggY2ZhNTU3OS4uMzZlNTg0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMy0wNi0xMSAg
R3J6ZWdvcnogQ3phamtvd3NraSAgPGcuY3phamtvd3NraUBzYW1zdW5nLmNvbT4KKworICAgICAg
ICBDb250ZXh0IG1lbnUgZ3JhbW1hciBjaGVja2luZyBpdGVtcyBhcmUgYXZhaWxhYmxlIHdoZW4g
R1JBTU1BUl9DSEVDS0lORyBtYWNybyBpcyBvZmYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzU4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEVuYWJsZSBHUkFNTUFSX0NIRUNLSU5HIGZvciBXZWJLaXQg
cG9ydHMgdGhhdCB1c2UvaW1wbGVtZW50IGl0LgorCisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6
CisKIDIwMTMtMDYtMTIgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAg
ICAgICAgW1dpbmRvd3NdIEFjdGl2YXRlIHN1cHBvcnRlZCBDKysxMSBGZWF0dXJlcyBmb3IgVlMy
MDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oIGIvU291cmNlL1dURi93
dGYvUGxhdGZvcm0uaAppbmRleCBjNmYxNjgxLi4zNGRmZGFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKQEAgLTEw
MDQsNyArMTAwNCw5IEBACiAjZW5kaWYKIAogCisjaWYgUExBVEZPUk0oTUFDKQogI2RlZmluZSBX
VEZfVVNFX0dSQU1NQVJfQ0hFQ0tJTkcgMQorI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpIHx8
IFBMQVRGT1JNKEJMQUNLQkVSUlkpIHx8IFBMQVRGT1JNKEVGTCkKICNkZWZpbmUgV1RGX1VTRV9V
TklGSUVEX1RFWFRfQ0hFQ0tJTkcgMQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDZmNzYyNjQuLmFlNjdlMTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw0NiBAQAorMjAxMy0wNi0xMSAgR3J6ZWdvcnogQ3phamtvd3Nr
aSAgPGcuY3phamtvd3NraUBzYW1zdW5nLmNvbT4KKworICAgICAgICBDb250ZXh0IG1lbnUgZ3Jh
bW1hciBjaGVja2luZyBpdGVtcyBhcmUgYXZhaWxhYmxlIHdoZW4gR1JBTU1BUl9DSEVDS0lORyBt
YWNybyBpcyBvZmYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExNzU4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIERvIG5vdCBhZGQgIkNoZWNrIEdyYW1tYXIgV2l0aCBTcGVsbGluZyIgYW5kICJJZ25vcmUg
R3JhbW1hciIgdG8gdGhlIGNvbnRleHQgbWVudQorICAgICAgICB3aGVuIEdSQU1NQVJfQ0hFQ0tJ
TkcgaXMgb2ZmLgorICAgICAgICBSZXBsYWNlICJTcGVsbGluZyBhbmQgR3JhbW1hciIgd2l0aCAi
U3BlbGxpbmciIGFzIHRoZSBzdWIgbWVudSB0aXRsZSBhbmQgIlNob3cvSGlkZSBTcGVsbGluZwor
ICAgICAgICBhbmQgR3JhbW1hciIgd2l0aCAiU2hvdy9IaWRlIFNwZWxsaW5nIiB3aGVuIEdSQU1N
QVJfQ0hFQ0tJTkcgaXMgb2ZmLgorCisgICAgICAgIEFkZGl0aW9uYWxseSwgZ3VhcmQgZ3JhbW1h
ciBjaGVja2luZyBpbiBjb250ZXh0IG1lbnUgY29kZSB0byBub3QgbmVjZXNzYXJpbHkKKyAgICAg
ICAgY29tcGlsZSBpdC4KKworICAgICAgICBObyBuZXcgbGF5b3V0IHRlc3RzIGJlY2F1c2UgZXZl
cnkgcG9ydCBoYXMgYSBkaWZmZXJlbnQgd2F5IG9mIHNob3dpbmcKKyAgICAgICAgc3BlbGxpbmcv
Z3JhbW1hciBjb250ZXh0IG1lbnUgaXRlbXMuCisKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6
OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51
Q29udHJvbGxlcjo6Y3JlYXRlQW5kQXBwZW5kU3BlbGxpbmdBbmRHcmFtbWFyU3ViTWVudSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnBvcHVsYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6Y2hlY2tPckVuYWJsZUlmTmVlZGVk
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTcGVsbGluZ01lbnUpOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwpOgorICAgICAgICAq
IHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ibGFja2Jl
cnJ5L0xvY2FsaXplZFN0cmluZ3NCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ0lnbm9yZUdyYW1tYXIpOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9M
b2NhbGl6ZWRTdHJpbmdzRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdTcGVsbGluZ01lbnUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwpOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Mb2NhbGl6
ZWRTdHJpbmdzR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0No
ZWNrR3JhbW1hcldpdGhTcGVsbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdTcGVsbGluZ01lbnUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFn
U2hvd1NwZWxsaW5nUGFuZWwpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L0xvY2FsaXplZFN0cmlu
Z3NRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1t
YXJXaXRoU3BlbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU3Bl
bGxpbmdNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVs
bGluZ1BhbmVsKToKKwogMjAxMy0wNi0xMiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBw
bGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB0aGUgbm90aW9uIG9mIGluYWN0aXZlIHBsdWctaW5z
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKaW5kZXgg
OGZmZWJhMC4uMmQ2NDdiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0
TWVudUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVD
b250cm9sbGVyLmNwcApAQCAtNDQ4LDkgKzQ0OCwxMSBAQCB2b2lkIENvbnRleHRNZW51Q29udHJv
bGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVJdGVtKiBpdGVtKQogICAg
IGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5nOgogICAgICAg
ICBmcmFtZS0+ZWRpdG9yKCkudG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmcoKTsKICAgICAg
ICAgYnJlYWs7CisjaWYgVVNFKEdSQU1NQVJfQ0hFQ0tJTkcpCiAgICAgY2FzZSBDb250ZXh0TWVu
dUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmc6CiAgICAgICAgIGZyYW1lLT5lZGl0b3Io
KS50b2dnbGVHcmFtbWFyQ2hlY2tpbmcoKTsKICAgICAgICAgYnJlYWs7CisjZW5kaWYKICNpZiBQ
TEFURk9STShNQUMpCiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHM6CiAgICAg
ICAgIGZyYW1lLT5lZGl0b3IoKS5zaG93Rm9udFBhbmVsKCk7CkBAIC01NjcsOCArNTY5LDEwIEBA
IHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjcmVhdGVBbmRBcHBlbmRTcGVsbGluZ0FuZEdy
YW1tYXJTdWJNZW51KENvbnRleHRNZW51CiAgICAgICAgIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNr
U3BlbGxpbmcoKSk7CiAgICAgQ29udGV4dE1lbnVJdGVtIGNoZWNrQXNZb3VUeXBlKENoZWNrYWJs
ZUFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZywg
CiAgICAgICAgIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZygpKTsK
KyNpZiBVU0UoR1JBTU1BUl9DSEVDS0lORykKICAgICBDb250ZXh0TWVudUl0ZW0gZ3JhbW1hcldp
dGhTcGVsbGluZyhDaGVja2FibGVBY3Rpb25UeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdDaGVja0dy
YW1tYXJXaXRoU3BlbGxpbmcsIAogICAgICAgICBjb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1t
YXJXaXRoU3BlbGxpbmcoKSk7CisjZW5kaWYKICNpZiBQTEFURk9STShNQUMpCiAgICAgQ29udGV4
dE1lbnVJdGVtIGNvcnJlY3RTcGVsbGluZyhDaGVja2FibGVBY3Rpb25UeXBlLCBDb250ZXh0TWVu
dUl0ZW1UYWdDb3JyZWN0U3BlbGxpbmdBdXRvbWF0aWNhbGx5LCAKICAgICAgICAgY29udGV4dE1l
bnVJdGVtVGFnQ29ycmVjdFNwZWxsaW5nQXV0b21hdGljYWxseSgpKTsKQEAgLTU4MCw3ICs1ODQs
OSBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6Y3JlYXRlQW5kQXBwZW5kU3BlbGxpbmdB
bmRHcmFtbWFyU3ViTWVudShDb250ZXh0TWVudQogICAgIGFwcGVuZEl0ZW0oKnNlcGFyYXRvckl0
ZW0oKSwgJnNwZWxsaW5nQW5kR3JhbW1hck1lbnUpOwogI2VuZGlmCiAgICAgYXBwZW5kSXRlbShj
aGVja0FzWW91VHlwZSwgJnNwZWxsaW5nQW5kR3JhbW1hck1lbnUpOworI2lmIFVTRShHUkFNTUFS
X0NIRUNLSU5HKQogICAgIGFwcGVuZEl0ZW0oZ3JhbW1hcldpdGhTcGVsbGluZywgJnNwZWxsaW5n
QW5kR3JhbW1hck1lbnUpOworI2VuZGlmCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGFwcGVuZEl0
ZW0oY29ycmVjdFNwZWxsaW5nLCAmc3BlbGxpbmdBbmRHcmFtbWFyTWVudSk7CiAjZW5kaWYKQEAg
LTc5NSw4ICs4MDEsMTAgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnBvcHVsYXRlKCkK
ICAgICAgICAgY29udGV4dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmcoKSk7CiAgICAgQ29udGV4
dE1lbnVJdGVtIExlYXJuU3BlbGxpbmdJdGVtKEFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRh
Z0xlYXJuU3BlbGxpbmcsIAogICAgICAgICBjb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5n
KCkpOworI2lmIFVTRShHUkFNTUFSX0NIRUNLSU5HKQogICAgIENvbnRleHRNZW51SXRlbSBJZ25v
cmVHcmFtbWFySXRlbShBY3Rpb25UeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFy
LCAKICAgICAgICAgY29udGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1hcigpKTsKKyNlbmRpZgog
ICAgIENvbnRleHRNZW51SXRlbSBDdXRJdGVtKEFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRh
Z0N1dCwgY29udGV4dE1lbnVJdGVtVGFnQ3V0KCkpOwogICAgIENvbnRleHRNZW51SXRlbSBQYXN0
ZUl0ZW0oQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnUGFzdGUsIGNvbnRleHRNZW51SXRl
bVRhZ1Bhc3RlKCkpOwogI2lmIFBMQVRGT1JNKEdUSykKQEAgLTk2Niw4ICs5NzQsMTIgQEAgdm9p
ZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnBvcHVsYXRlKCkKICAgICAgICAgICAgICAgICAgICAg
aWYgKG1pc3NwZWxsaW5nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKEln
bm9yZVNwZWxsaW5nSXRlbSwgbV9jb250ZXh0TWVudS5nZXQoKSk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBhcHBlbmRJdGVtKExlYXJuU3BlbGxpbmdJdGVtLCBtX2NvbnRleHRNZW51LmdldCgp
KTsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIH0KKyNp
ZiBVU0UoR1JBTU1BUl9DSEVDS0lORykKKyAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgICAgICAgICAgICAgYXBwZW5kSXRlbShJZ25vcmVHcmFtbWFySXRlbSwgbV9jb250ZXh0
TWVudS5nZXQoKSk7CisjZW5kaWYKKwogICAgICAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKCpz
ZXBhcmF0b3JJdGVtKCksIG1fY29udGV4dE1lbnUuZ2V0KCkpOwogICAgICAgICAgICAgICAgICAg
ICBoYXZlQ29udGV4dE1lbnVJdGVtc0Zvck1pc3NwZWxsaW5nT3JHcmFtbWVyID0gdHJ1ZTsKICNp
ZiBQTEFURk9STShNQUMpCkBAIC0xMjMwLDExICsxMjQyLDE0IEBAIHZvaWQgQ29udGV4dE1lbnVD
b250cm9sbGVyOjpjaGVja09yRW5hYmxlSWZOZWVkZWQoQ29udGV4dE1lbnVJdGVtJiBpdGVtKSBj
b25zdAogICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEluRGljdGlvbmFyeToK
ICAgICAgICAgICAgIHNob3VsZEVuYWJsZSA9IGZyYW1lLT5zZWxlY3Rpb24oKS0+aXNSYW5nZSgp
OwogICAgICAgICAgICAgYnJlYWs7CisjaWYgVVNFKEdSQU1NQVJfQ0hFQ0tJTkcpCisgICAgICAg
IGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1hcjoKICAgICAgICAgY2FzZSBDb250
ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmc6CiAgICAgICAgICAgICBpZiAo
ZnJhbWUtPmVkaXRvcigpLmlzR3JhbW1hckNoZWNraW5nRW5hYmxlZCgpKQogICAgICAgICAgICAg
ICAgIHNob3VsZENoZWNrID0gdHJ1ZTsKICAgICAgICAgICAgIHNob3VsZEVuYWJsZSA9IHRydWU7
CiAgICAgICAgICAgICBicmVhazsKKyNlbmRpZgogICAgICAgICBjYXNlIENvbnRleHRNZW51SXRl
bVRhZ0l0YWxpYzogewogICAgICAgICAgICAgc2hvdWxkQ2hlY2sgPSBmcmFtZS0+ZWRpdG9yKCku
c2VsZWN0aW9uSGFzU3R5bGUoQ1NTUHJvcGVydHlGb250U3R5bGUsICJpdGFsaWMiKSAhPSBGYWxz
ZVRyaVN0YXRlOwogICAgICAgICAgICAgc2hvdWxkRW5hYmxlID0gZnJhbWUtPmVkaXRvcigpLmNh
bkVkaXRSaWNobHkoKTsKQEAgLTEzODAsNyArMTM5NSw2IEBAIHZvaWQgQ29udGV4dE1lbnVDb250
cm9sbGVyOjpjaGVja09yRW5hYmxlSWZOZWVkZWQoQ29udGV4dE1lbnVJdGVtJiBpdGVtKSBjb25z
dAogICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVBERk5leHRQYWdlOgogICAgICAgICBjYXNl
IENvbnRleHRNZW51SXRlbVBERlByZXZpb3VzUGFnZToKICAgICAgICAgY2FzZSBDb250ZXh0TWVu
dUl0ZW1UYWdPcGVuTGluazoKLSAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVH
cmFtbWFyOgogICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nTWVudToKICAg
ICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHM6CiAgICAgICAgIGNhc2UgQ29u
dGV4dE1lbnVJdGVtVGFnU3R5bGVzOgpAQCAtMTQxMCw2ICsxNDI0LDggQEAgdm9pZCBDb250ZXh0
TWVudUNvbnRyb2xsZXI6OmNoZWNrT3JFbmFibGVJZk5lZWRlZChDb250ZXh0TWVudUl0ZW0mIGl0
ZW0pIGNvbnN0CiAgICAgICAgICAgICBzaG91bGRFbmFibGUgPSBtX2hpdFRlc3RSZXN1bHQubWVk
aWFIYXNBdWRpbygpOwogICAgICAgICAgICAgc2hvdWxkQ2hlY2sgPSBzaG91bGRFbmFibGUgJiYg
IG1faGl0VGVzdFJlc3VsdC5tZWRpYU11dGVkKCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIGl0ZW0uc2V0Q2hl
Y2tlZChzaG91bGRDaGVjayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
b2NhbGl6ZWRTdHJpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0
cmluZ3MuY3BwCmluZGV4IGM2MWFhYzcuLjEyNWMwNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCkBAIC0yNzEsMjEgKzI3MSwzNyBAQCBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmsoKQogICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJP
cGVuIExpbmsiLCAiT3BlbiBMaW5rIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKKyNpZiBVU0Uo
R1JBTU1BUl9DSEVDS0lORykKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFy
KCkKIHsKICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiSWdub3JlIEdyYW1tYXIiLCAiSWdub3Jl
IEdyYW1tYXIgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAorU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZygpCit7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIkNoZWNrIEdyYW1tYXIgV2l0aCBTcGVsbGluZyIsICJDaGVjayBncmFtbWFyIHdpdGggc3Bl
bGxpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKyNlbmRpZgorCiBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnU3BlbGxpbmdNZW51KCkKIHsKKyNpZiBVU0UoR1JBTU1BUl9DSEVDS0lORykKICAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiU3BlbGxpbmcgYW5kIEdyYW1tYXIiLCAiU3BlbGxpbmcg
YW5kIEdyYW1tYXIgY29udGV4dCBzdWItbWVudSBpdGVtIik7CisjZWxzZQorICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJTcGVsbGluZyIsICJTcGVsbGluZyBjb250ZXh0IHN1Yi1tZW51IGl0ZW0i
KTsKKyNlbmRpZgogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFu
ZWwoYm9vbCBzaG93KQogewogICAgIGlmIChzaG93KQorI2lmIFVTRShHUkFNTUFSX0NIRUNLSU5H
KQogICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU2hvdyBTcGVsbGluZyBhbmQgR3JhbW1h
ciIsICJtZW51IGl0ZW0gdGl0bGUiKTsKICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiSGlkZSBT
cGVsbGluZyBhbmQgR3JhbW1hciIsICJtZW51IGl0ZW0gdGl0bGUiKTsKKyNlbHNlCisgICAgICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJTaG93IFNwZWxsaW5nIiwgIm1lbnUgaXRlbSB0aXRsZSIp
OworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJIaWRlIFNwZWxsaW5nIiwgIm1lbnUgaXRlbSB0
aXRsZSIpOworI2VuZGlmCiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxs
aW5nKCkKQEAgLTI5OCwxMSArMzE0LDYgQEAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNr
U3BlbGxpbmdXaGlsZVR5cGluZygpCiAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNoZWNrIFNw
ZWxsaW5nIFdoaWxlIFR5cGluZyIsICJDaGVjayBzcGVsbGluZyB3aGlsZSB0eXBpbmcgY29udGV4
dCBtZW51IGl0ZW0iKTsKIH0KIAotU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1h
cldpdGhTcGVsbGluZygpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNoZWNrIEdyYW1t
YXIgV2l0aCBTcGVsbGluZyIsICJDaGVjayBncmFtbWFyIHdpdGggc3BlbGxpbmcgY29udGV4dCBt
ZW51IGl0ZW0iKTsKLX0KLQogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51KCkKIHsK
ICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiRm9udCIsICJGb250IGNvbnRleHQgc3ViLW1lbnUg
aXRlbSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3Ry
aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCmluZGV4
IDkwNDdhMTUuLjM1M2Q0ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xv
Y2FsaXplZFN0cmluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRT
dHJpbmdzLmgKQEAgLTkyLDEyICs5MiwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaFdlYigpOwogICAgIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkoY29uc3QgU3RyaW5nJiBzZWxlY3RlZFN0cmluZyk7
CiAgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rKCk7CisjaWYgVVNFKEdSQU1N
QVJfQ0hFQ0tJTkcpCiAgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZUdyYW1tYXIo
KTsKKyAgICBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tHcmFtbWFyV2l0aFNwZWxsaW5n
KCk7CisjZW5kaWYKICAgICBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3BlbGxpbmdNZW51KCk7
CiAgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVsKGJvb2wgc2hv
dyk7CiAgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcoKTsKICAgICBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5nKCk7Ci0gICAg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZygpOwogICAg
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdGb250TWVudSgpOwogICAgIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdCb2xkKCk7CiAgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9Mb2NhbGl6
ZWRTdHJpbmdzQmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2Jl
cnJ5L0xvY2FsaXplZFN0cmluZ3NCbGFja0JlcnJ5LmNwcAppbmRleCAyYzE1ZDA1Li5iZjA4ODNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L0xvY2FsaXpl
ZFN0cmluZ3NCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFj
a2JlcnJ5L0xvY2FsaXplZFN0cmluZ3NCbGFja0JlcnJ5LmNwcApAQCAtODgsMTEgKzg4LDE5IEBA
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCkKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9
CiAKKyNpZiBVU0UoR1JBTU1BUl9DSEVDS0lORykKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJ
Z25vcmVHcmFtbWFyKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJp
bmcoKTsKK30KKwogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVs
bGluZygpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9
CisjZW5kaWYKIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcoKQogewpA
QCAtMTQyLDEyICsxNTAsNiBAQCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRm9udE1lbnUoKQog
ICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0lnbm9y
ZUdyYW1tYXIoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygp
OwotfQotCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmcoKQogewogICAg
IG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwv
TG9jYWxpemVkU3RyaW5nc0VmbC5jcHAKaW5kZXggZDg3YmE2Ny4uZDdlMmE2MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0xvY2FsaXplZFN0cmluZ3NFZmwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Mb2NhbGl6ZWRTdHJpbmdzRWZsLmNwcApA
QCAtMjU4LDE5ICsyNTgsMzQgQEAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rKCkK
ICAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiT3BlbiBMaW5rIik7CiB9CiAKKyNpZiBVU0Uo
R1JBTU1BUl9DSEVDS0lORykKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFy
KCkKIHsKICAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiSWdub3JlIEdyYW1tYXIiKTsKIH0K
IAorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZygpCit7
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIkNoZWNrIEdyYW1tYXIgV2l0aCBTcGVsbGlu
ZyIpOworfQorI2VuZGlmCisKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTcGVsbGluZ01lbnUo
KQogeworI2lmIFVTRShHUkFNTUFSX0NIRUNLSU5HKQogICAgIHJldHVybiBTdHJpbmc6OmZyb21V
VEY4KCJTcGVsbGluZyBhbmQgR3JhbW1hciIpOworI2Vsc2UKKyAgICByZXR1cm4gU3RyaW5nOjpm
cm9tVVRGOCgiU3BlbGxpbmciKTsKKyNlbmRpZgogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnU2hvd1NwZWxsaW5nUGFuZWwoYm9vbCBzaG93KQogeworI2lmIFVTRShHUkFNTUFSX0NIRUNL
SU5HKQogICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KHNob3cgPyAiU2hvdyBTcGVsbGluZyBh
bmQgR3JhbW1hciIgOiAiSGlkZSBTcGVsbGluZyBhbmQgR3JhbW1hciIpOworI2Vsc2UKKyAgICBy
ZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChzaG93ID8gIlNob3cgU3BlbGxpbmciIDogIkhpZGUgU3Bl
bGxpbmciKTsKKyNlbmRpZgogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVs
bGluZygpCkBAIC0yODMsMTEgKzI5OCw2IEBAIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGVj
a1NwZWxsaW5nV2hpbGVUeXBpbmcoKQogICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJDaGVj
ayBTcGVsbGluZyBXaGlsZSBUeXBpbmciKTsKIH0KIAotU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZygpCi17Ci0gICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVU
RjgoIkNoZWNrIEdyYW1tYXIgV2l0aCBTcGVsbGluZyIpOwotfQotCiBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnRm9udE1lbnUoKQogewogICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJGb250
Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvTG9jYWxpemVkU3Ry
aW5nc0d0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvTG9jYWxpemVkU3RyaW5n
c0d0ay5jcHAKaW5kZXggNWRmNjExMy4uYWVhODI5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNwcApAQCAtMjc5LDE5ICsyNzks
MzQgQEAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rKCkKICAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tVVRGOChfKCJfT3BlbiBMaW5rIikpOwogfQogCisjaWYgVVNFKEdSQU1NQVJfQ0hF
Q0tJTkcpCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1hcigpCiB7CiAgICAg
cmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygiSWdub3JlIF9HcmFtbWFyIikpOwogfQogCitTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tHcmFtbWFyV2l0aFNwZWxsaW5nKCkKK3sKKyAgICBy
ZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJDaGVjayBfR3JhbW1hciBXaXRoIFNwZWxsaW5nIikp
OworfQorI2VuZGlmCisKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTcGVsbGluZ01lbnUoKQog
eworI2lmIFVTRShHUkFNTUFSX0NIRUNLSU5HKQogICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4
KF8oIlNwZWxsaW5nIGFuZCBfR3JhbW1hciIpKTsKKyNlbHNlCisgICAgcmV0dXJuIFN0cmluZzo6
ZnJvbVVURjgoXygiU3BlbGxpbmciKSk7CisjZW5kaWYKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVsKGJvb2wgc2hvdykKIHsKKyNpZiBVU0UoR1JBTU1BUl9D
SEVDS0lORykKICAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChzaG93ID8gXygiX1Nob3cgU3Bl
bGxpbmcgYW5kIEdyYW1tYXIiKSA6IF8oIl9IaWRlIFNwZWxsaW5nIGFuZCBHcmFtbWFyIikpOwor
I2Vsc2UKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChzaG93ID8gXygiX1Nob3cgU3BlbGxp
bmciKSA6IF8oIl9IaWRlIFNwZWxsaW5nIikpOworI2VuZGlmCiB9CiAKIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nKCkKQEAgLTMwNCwxMSArMzE5LDYgQEAgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZygpCiAgICAgcmV0dXJuIFN0
cmluZzo6ZnJvbVVURjgoXygiQ2hlY2sgU3BlbGxpbmcgV2hpbGUgX1R5cGluZyIpKTsKIH0KIAot
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZygpCi17Ci0g
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygiQ2hlY2sgX0dyYW1tYXIgV2l0aCBTcGVsbGlu
ZyIpKTsKLX0KLQogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51KCkKIHsKICAgICBy
ZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJfRm9udCIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3F0L0xvY2FsaXplZFN0cmluZ3NRdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9Mb2NhbGl6ZWRTdHJpbmdzUXQuY3BwCmluZGV4IGQzMzg0MTIuLjhiNjVj
ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0xvY2FsaXplZFN0cmlu
Z3NRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvTG9jYWxpemVkU3RyaW5n
c1F0LmNwcApAQCAtMjQ4LDIwICsyNDgsMzYgQEAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09w
ZW5MaW5rKCkKICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJPcGVuIExpbmsiLCAiT3BlbiBMaW5rIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKKyNp
ZiBVU0UoR1JBTU1BUl9DSEVDS0lORykKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVH
cmFtbWFyKCkKIHsKICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJJZ25vcmUiLCAiSWdub3JlIEdyYW1tYXIgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0K
IAorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZygpCit7
CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ2hl
Y2sgR3JhbW1hciBXaXRoIFNwZWxsaW5nIiwgIkNoZWNrIGdyYW1tYXIgd2l0aCBzcGVsbGluZyBj
b250ZXh0IG1lbnUgaXRlbSIpOworfQorI2VuZGlmCisKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdTcGVsbGluZ01lbnUoKQogeworI2lmIFVTRShHUkFNTUFSX0NIRUNLSU5HKQogICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNwZWxsaW5nIiwgIlNw
ZWxsaW5nIGFuZCBHcmFtbWFyIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOworI2Vsc2UKKyAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTcGVsbGluZyIs
ICJTcGVsbGluZyBjb250ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKKyNlbmRpZgogfQogCiBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwoYm9vbCBzaG93KQogeworI2lmIFVT
RShHUkFNTUFSX0NIRUNLSU5HKQogICAgIHJldHVybiBzaG93ID8gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTaG93IFNwZWxsaW5nIGFuZCBHcmFtbWFyIiwgIm1lbnUg
aXRlbSB0aXRsZSIpIDoKLSAgICAgICAgICAgICAgICAgIFFDb3JlQXBwbGljYXRpb246OnRyYW5z
bGF0ZSgiUVdlYlBhZ2UiLCAiSGlkZSBTcGVsbGluZyBhbmQgR3JhbW1hciIsICJtZW51IGl0ZW0g
dGl0bGUiKTsKKyAgICAgICAgUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIs
ICJIaWRlIFNwZWxsaW5nIGFuZCBHcmFtbWFyIiwgIm1lbnUgaXRlbSB0aXRsZSIpOworI2Vsc2UK
KyAgICByZXR1cm4gc2hvdyA/IFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiU2hvdyBTcGVsbGluZyIsICJtZW51IGl0ZW0gdGl0bGUiKSA6CisgICAgICAgIFFDb3JlQXBw
bGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiSGlkZSBTcGVsbGluZyIsICJtZW51IGl0
ZW0gdGl0bGUiKTsKKyNlbmRpZgogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tT
cGVsbGluZygpCkBAIC0yNzQsMTEgKzI5MCw2IEBAIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdD
aGVja1NwZWxsaW5nV2hpbGVUeXBpbmcoKQogICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNoZWNrIFNwZWxsaW5nIFdoaWxlIFR5cGluZyIsICJDaGVj
ayBzcGVsbGluZyB3aGlsZSB0eXBpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAotU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZygpCi17Ci0gICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ2hlY2sgR3JhbW1h
ciBXaXRoIFNwZWxsaW5nIiwgIkNoZWNrIGdyYW1tYXIgd2l0aCBzcGVsbGluZyBjb250ZXh0IG1l
bnUgaXRlbSIpOwotfQotCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRm9udE1lbnUoKQogewog
ICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkZvbnRz
IiwgIkZvbnQgY29udGV4dCBzdWItbWVudSBpdGVtIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggNTcz
ZmVkZi4uZjNkOGJjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTA2
LTEyICBHcnplZ29yeiBDemFqa293c2tpICA8Zy5jemFqa293c2tpQHNhbXN1bmcuY29tPgorCisg
ICAgICAgIENvbnRleHQgbWVudSBncmFtbWFyIGNoZWNraW5nIGl0ZW1zIGFyZSBhdmFpbGFibGUg
d2hlbiBHUkFNTUFSX0NIRUNLSU5HIG1hY3JvIGlzIG9mZgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE3NTg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEdSQU1NQVJfQ0hFQ0tJTkcgZ3VhcmQgdG8g
dGhlIGNvbnRleHQgbWVudSBncmFtbWFyIGl0ZW1zLgorCisgICAgICAgICogd2Via2l0L3dlYmtp
dGdsb2JhbHMuY3BwOgorICAgICAgICAod2Via2l0X2NvbnRleHRfbWVudV9pdGVtX2dldF9hY3Rp
b24pOgorCiAyMDEzLTA2LTEyICBEaWVnbyBQaW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW0dUS10gUGFyYW1ldGVyICdwc2V1ZG9FbGVtZW50JyBmcm9tIGZ1bmN0aW9u
ICd3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X2NvbXB1dGVkX3N0eWxlJyBzaG91bGQgYmUgYWxs
b3dlZCB0byBiZSBOVUxMCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0Z2xvYmFscy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Z2xvYmFscy5j
cHAKaW5kZXggZTc4ZTlhOC4uNTgwZDRiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdGdsb2JhbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXRnbG9iYWxzLmNwcApAQCAtNDI4LDggKzQyOCwxMCBAQCBXZWJLaXRDb250ZXh0TWVudUFj
dGlvbiB3ZWJraXRfY29udGV4dF9tZW51X2l0ZW1fZ2V0X2FjdGlvbihHdGtNZW51SXRlbSogaXRl
bSkKICAgICAgICAgcmV0dXJuIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX0lHTk9SRV9TUEVM
TElORzsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmc6CiAgICAgICAg
IHJldHVybiBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9MRUFSTl9TUEVMTElORzsKKyNpZiBV
U0UoR1JBTU1BUl9DSEVDS0lORykKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0lnbm9yZUdy
YW1tYXI6CiAgICAgICAgIHJldHVybiBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9JR05PUkVf
R1JBTU1BUjsKKyNlbmRpZgogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnRm9udE1lbnU6CiAg
ICAgICAgIHJldHVybiBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9GT05UX01FTlU7CiAgICAg
Y2FzZSBDb250ZXh0TWVudUl0ZW1UYWdCb2xkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDY0MjMzMWMu
LjAwN2UzNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMy0wNi0xMiAg
R3J6ZWdvcnogQ3phamtvd3NraSAgPGcuY3phamtvd3NraUBzYW1zdW5nLmNvbT4KKworICAgICAg
ICBDb250ZXh0IG1lbnUgZ3JhbW1hciBjaGVja2luZyBpdGVtcyBhcmUgYXZhaWxhYmxlIHdoZW4g
R1JBTU1BUl9DSEVDS0lORyBtYWNybyBpcyBvZmYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzU4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBHUkFNTUFSX0NIRUNLSU5HIGd1YXJkIHRvIHRoZSBj
b250ZXh0IG1lbnUgZ3JhbW1hciBpdGVtcy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YkNvbnRleHRNZW51Q2xpZW50Lm1tOgorICAgICAgICAoZml4TWVudXNSZWNlaXZlZEZyb21PbGRD
bGllbnRzKToKKwogMjAxMy0wNi0xMiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlbW92ZSB0aGUgbm90aW9uIG9mIGluYWN0aXZlIHBsdWctaW5zCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVu
dUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRN
ZW51Q2xpZW50Lm1tCmluZGV4IDFkNTE5MWIuLjZkZGI4NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50Lm1tCkBA
IC0xNjUsOCArMTY1LDEyIEBAIHN0YXRpYyB2b2lkIGZpeE1lbnVzUmVjZWl2ZWRGcm9tT2xkQ2xp
ZW50cyhOU011dGFibGVBcnJheSAqbmV3TWVudUl0ZW1zLCBOU011dGFiCiAgICAgICAgICAgICBO
U1N0cmluZyAqdGl0bGUgPSBbaXRlbSB0aXRsZV07CiAgICAgICAgICAgICBpZiAoW3RpdGxlIGlz
RXF1YWxUb1N0cmluZzpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGluaygpXSkKICAgICAgICAgICAg
ICAgICBtb2Rlcm5UYWcgPSBXZWJNZW51SXRlbVRhZ09wZW5MaW5rOworI2lmIFVTRShHUkFNTUFS
X0NIRUNLSU5HKQogICAgICAgICAgICAgZWxzZSBpZiAoW3RpdGxlIGlzRXF1YWxUb1N0cmluZzpj
b250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFyKCldKQogICAgICAgICAgICAgICAgIG1vZGVy
blRhZyA9IFdlYk1lbnVJdGVtVGFnSWdub3JlR3JhbW1hcjsKKyAgICAgICAgICAgIGVsc2UgaWYg
KFt0aXRsZSBpc0VxdWFsVG9TdHJpbmc6Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tHcmFtbWFyV2l0
aFNwZWxsaW5nKCldKQorICAgICAgICAgICAgICAgIG1vZGVyblRhZyA9IFdlYk1lbnVJdGVtVGFn
Q2hlY2tHcmFtbWFyV2l0aFNwZWxsaW5nOworI2VuZGlmCiAgICAgICAgICAgICBlbHNlIGlmIChb
dGl0bGUgaXNFcXVhbFRvU3RyaW5nOmNvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nTWVudSgpXSkK
ICAgICAgICAgICAgICAgICBtb2Rlcm5UYWcgPSBXZWJNZW51SXRlbVRhZ1NwZWxsaW5nTWVudTsK
ICAgICAgICAgICAgIGVsc2UgaWYgKFt0aXRsZSBpc0VxdWFsVG9TdHJpbmc6Y29udGV4dE1lbnVJ
dGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwodHJ1ZSldCkBAIC0xNzYsOCArMTgwLDYgQEAgc3RhdGlj
IHZvaWQgZml4TWVudXNSZWNlaXZlZEZyb21PbGRDbGllbnRzKE5TTXV0YWJsZUFycmF5ICpuZXdN
ZW51SXRlbXMsIE5TTXV0YWIKICAgICAgICAgICAgICAgICBtb2Rlcm5UYWcgPSBXZWJNZW51SXRl
bVRhZ0NoZWNrU3BlbGxpbmc7CiAgICAgICAgICAgICBlbHNlIGlmIChbdGl0bGUgaXNFcXVhbFRv
U3RyaW5nOmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZygpXSkKICAg
ICAgICAgICAgICAgICBtb2Rlcm5UYWcgPSBXZWJNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGls
ZVR5cGluZzsKLSAgICAgICAgICAgIGVsc2UgaWYgKFt0aXRsZSBpc0VxdWFsVG9TdHJpbmc6Y29u
dGV4dE1lbnVJdGVtVGFnQ2hlY2tHcmFtbWFyV2l0aFNwZWxsaW5nKCldKQotICAgICAgICAgICAg
ICAgIG1vZGVyblRhZyA9IFdlYk1lbnVJdGVtVGFnQ2hlY2tHcmFtbWFyV2l0aFNwZWxsaW5nOwog
ICAgICAgICAgICAgZWxzZSBpZiAoW3RpdGxlIGlzRXF1YWxUb1N0cmluZzpjb250ZXh0TWVudUl0
ZW1UYWdGb250TWVudSgpXSkKICAgICAgICAgICAgICAgICBtb2Rlcm5UYWcgPSBXZWJNZW51SXRl
bVRhZ0ZvbnRNZW51OwogICAgICAgICAgICAgZWxzZSBpZiAoW3RpdGxlIGlzRXF1YWxUb1N0cmlu
Zzpjb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHMoKV0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggM2E0NzY1YS4u
YmIyNDI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEzLTA2LTExICBHcnplZ29y
eiBDemFqa293c2tpICA8Zy5jemFqa293c2tpQHNhbXN1bmcuY29tPgorCisgICAgICAgIENvbnRl
eHQgbWVudSBncmFtbWFyIGNoZWNraW5nIGl0ZW1zIGFyZSBhdmFpbGFibGUgd2hlbiBHUkFNTUFS
X0NIRUNLSU5HIG1hY3JvIGlzIG9mZgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTE3NTg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIEdSQU1NQVJfQ0hFQ0tJTkcgZ3VhcmQgdG8gdGhlIGNvbnRleHQg
bWVudSBncmFtbWFyIGl0ZW1zLgorCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJ
Q2FzdC5oOgorICAgICAgICAoV2ViS2l0Ojp0b0FQSSk6CisgICAgICAgIChXZWJLaXQ6OnRvSW1w
bCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfbWVudV9pdGVtLmNw
cDoKKyAgICAgICAgKGdldEV3a0FjdGlvbkZyb21XS1RhZyk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3RleHRfY2hlY2tlci5jcHA6CisgICAgICAgIChjaGVj
a1NwZWxsaW5nSXRlbXNBdmFpbGFiaWxpdHkpOgorICAgICAgICBDaGFuZ2UgY2FsbGJhY2sgbmFt
ZSwgdG8gYmUgY29uc2lzdGVudCB3aXRoIGEgbmV3bHkgYWRkZWQuCisKKyAgICAgICAgKGNoZWNr
U3BlbGxpbmdBbmRHcmFtbWFyU3VibWVudUF2YWlsYWJpbGl0eSk6CisgICAgICAgIChjaGVja0dy
YW1tYXJXaXRoU3BlbGxpbmdJdGVtQXZhaWxhYmlsaXR5KToKKyAgICAgICAgQWRkIHR3byB1bml0
IHRlc3RzIGZvciBFRkwgdG8gY2hlY2sgd2hldGhlciBjb250ZXh0IG1lbnUgZ3JhbW1hciBpdGVt
cyBhcmUKKyAgICAgICAgYXZhaWxhYmxlIG9ubHkgd2hlbiBHUkFNTUFSX0NIRUNLSU5HIG1hY3Jv
IGlzIGVuYWJsZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0
TWVudUFjdGlvbnMuY3BwOgorICAgICAgICAod2Via2l0Q29udGV4dE1lbnVBY3Rpb25HZXRBY3Rp
b25UYWcpOgorICAgICAgICAod2Via2l0Q29udGV4dE1lbnVBY3Rpb25HZXRGb3JDb250ZXh0TWVu
dUl0ZW0pOgorICAgICAgICAod2Via2l0Q29udGV4dE1lbnVBY3Rpb25HZXRMYWJlbCk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQpOgorCiAyMDEzLTA2LTEzICBNaWNoYcWC
IFBha3XFgmEgdmVsIFJ1dGthICA8bS5wYWt1bGFAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VG
TF1bV0syXSBXcm9uZyBjb250ZXh0IG1lbnUgYW5kIHBvcHVwIG1lbnUgcG9zaXRpb25zIHdoZW4g
c2Nyb2xsIGlzIGFwcGxpZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
Yy9XS1NoYXJlZEFQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1NoYXJl
ZEFQSUNhc3QuaAppbmRleCAyYjViZjg1Li45NjljMWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCkBAIC00MDAsOCArNDAwLDEyIEBAIGlubGlu
ZSBXS0NvbnRleHRNZW51SXRlbVRhZyB0b0FQSShXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbiBh
Y3Rpb24pCiAgICAgICAgIHJldHVybiBrV0tDb250ZXh0TWVudUl0ZW1UYWdQREZQcmV2aW91c1Bh
Z2U7CiAgICAgY2FzZSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdPcGVuTGluazoKICAgICAg
ICAgcmV0dXJuIGtXS0NvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rOworI2lmIFVTRShHUkFNTUFS
X0NIRUNLSU5HKQogICAgIGNhc2UgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnSWdub3JlR3Jh
bW1hcjoKICAgICAgICAgcmV0dXJuIGtXS0NvbnRleHRNZW51SXRlbVRhZ0lnbm9yZUdyYW1tYXI7
CisgICAgY2FzZSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3Bl
bGxpbmc6CisgICAgICAgIHJldHVybiBrV0tDb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJX
aXRoU3BlbGxpbmc7CisjZW5kaWYKICAgICBjYXNlIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRh
Z1NwZWxsaW5nTWVudToKICAgICAgICAgcmV0dXJuIGtXS0NvbnRleHRNZW51SXRlbVRhZ1NwZWxs
aW5nTWVudTsKICAgICBjYXNlIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVsbGlu
Z1BhbmVsOgpAQCAtNDEwLDggKzQxNCw2IEBAIGlubGluZSBXS0NvbnRleHRNZW51SXRlbVRhZyB0
b0FQSShXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24pCiAgICAgICAgIHJldHVybiBr
V0tDb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nOwogICAgIGNhc2UgV2ViQ29yZTo6Q29u
dGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5nOgogICAgICAgICByZXR1cm4g
a1dLQ29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5nOwotICAgIGNhc2Ug
V2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnQ2hlY2tHcmFtbWFyV2l0aFNwZWxsaW5nOgotICAg
ICAgICByZXR1cm4ga1dLQ29udGV4dE1lbnVJdGVtVGFnQ2hlY2tHcmFtbWFyV2l0aFNwZWxsaW5n
OwogICAgIGNhc2UgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnRm9udE1lbnU6CiAgICAgICAg
IHJldHVybiBrV0tDb250ZXh0TWVudUl0ZW1UYWdGb250TWVudTsKICAgICBjYXNlIFdlYkNvcmU6
OkNvbnRleHRNZW51SXRlbVRhZ1Nob3dGb250czoKQEAgLTU5Miw4ICs1OTQsMTIgQEAgaW5saW5l
IFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uIHRvSW1wbChXS0NvbnRleHRNZW51SXRlbVRhZyB0
YWcpCiAgICAgICAgIHJldHVybiBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1QREZQcmV2aW91c1Bh
Z2U7CiAgICAgY2FzZSBrV0tDb250ZXh0TWVudUl0ZW1UYWdPcGVuTGluazoKICAgICAgICAgcmV0
dXJuIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rOworI2lmIFVTRShHUkFNTUFS
X0NIRUNLSU5HKQogICAgIGNhc2Uga1dLQ29udGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1hcjoK
ICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZUdyYW1tYXI7
CisgICAgY2FzZSBrV0tDb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmc6
CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJX
aXRoU3BlbGxpbmc7CisjZW5kaWYKICAgICBjYXNlIGtXS0NvbnRleHRNZW51SXRlbVRhZ1NwZWxs
aW5nTWVudToKICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ1NwZWxs
aW5nTWVudTsKICAgICBjYXNlIGtXS0NvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVs
OgpAQCAtNjAyLDggKzYwOCw2IEBAIGlubGluZSBXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbiB0
b0ltcGwoV0tDb250ZXh0TWVudUl0ZW1UYWcgdGFnKQogICAgICAgICByZXR1cm4gV2ViQ29yZTo6
Q29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZzsKICAgICBjYXNlIGtXS0NvbnRleHRNZW51
SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZzoKICAgICAgICAgcmV0dXJuIFdlYkNvcmU6
OkNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZzsKLSAgICBjYXNlIGtX
S0NvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZzoKLSAgICAgICAgcmV0
dXJuIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZzsK
ICAgICBjYXNlIGtXS0NvbnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51OgogICAgICAgICByZXR1cm4g
V2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnRm9udE1lbnU7CiAgICAgY2FzZSBrV0tDb250ZXh0
TWVudUl0ZW1UYWdTaG93Rm9udHM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfY29udGV4dF9tZW51X2l0ZW0uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfbWVudV9pdGVtLmNwcAppbmRleCA1ZTRjYTk5Li40
NzYxNDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
Y29udGV4dF9tZW51X2l0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19jb250ZXh0X21lbnVfaXRlbS5jcHAKQEAgLTI0Miw4ICsyNDIsMTIgQEAgc3RhdGlj
IEV3a19Db250ZXh0X01lbnVfSXRlbV9BY3Rpb24gZ2V0RXdrQWN0aW9uRnJvbVdLVGFnKFdLQ29u
dGV4dE1lbnVJdGVtVGFnIGEKICAgICAgICAgcmV0dXJuIEVXS19DT05URVhUX01FTlVfSVRFTV9Q
REZQUkVWSU9VU19QQUdFOwogICAgIGNhc2Uga1dLQ29udGV4dE1lbnVJdGVtVGFnT3Blbkxpbms6
CiAgICAgICAgIHJldHVybiBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX09QRU5fTElOSzsKKyNp
ZiBVU0UoR1JBTU1BUl9DSEVDS0lORykKICAgICBjYXNlIGtXS0NvbnRleHRNZW51SXRlbVRhZ0ln
bm9yZUdyYW1tYXI6CiAgICAgICAgIHJldHVybiBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX0lH
Tk9SRV9HUkFNTUFSOworICAgIGNhc2Uga1dLQ29udGV4dE1lbnVJdGVtVGFnQ2hlY2tHcmFtbWFy
V2l0aFNwZWxsaW5nOgorICAgICAgICByZXR1cm4gRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19D
SEVDS19HUkFNTUFSX1dJVEhfU1BFTExJTkc7CisjZW5kaWYKICAgICBjYXNlIGtXS0NvbnRleHRN
ZW51SXRlbVRhZ1NwZWxsaW5nTWVudToKICAgICAgICAgcmV0dXJuIEVXS19DT05URVhUX01FTlVf
SVRFTV9UQUdfU1BFTExJTkdfTUVOVTsKICAgICBjYXNlIGtXS0NvbnRleHRNZW51SXRlbVRhZ1No
b3dTcGVsbGluZ1BhbmVsOgpAQCAtMjUyLDggKzI1Niw2IEBAIHN0YXRpYyBFd2tfQ29udGV4dF9N
ZW51X0l0ZW1fQWN0aW9uIGdldEV3a0FjdGlvbkZyb21XS1RhZyhXS0NvbnRleHRNZW51SXRlbVRh
ZyBhCiAgICAgICAgIHJldHVybiBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX0NIRUNLX1NQRUxM
SU5HOwogICAgIGNhc2Uga1dLQ29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlw
aW5nOgogICAgICAgICByZXR1cm4gRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19DSEVDS19TUEVM
TElOR19XSElMRV9UWVBJTkc7Ci0gICAgY2FzZSBrV0tDb250ZXh0TWVudUl0ZW1UYWdDaGVja0dy
YW1tYXJXaXRoU3BlbGxpbmc6Ci0gICAgICAgIHJldHVybiBFV0tfQ09OVEVYVF9NRU5VX0lURU1f
VEFHX0NIRUNLX0dSQU1NQVJfV0lUSF9TUEVMTElORzsKICAgICBjYXNlIGtXS0NvbnRleHRNZW51
SXRlbVRhZ0ZvbnRNZW51OgogICAgICAgICByZXR1cm4gRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RB
R19GT05UX01FTlU7CiAgICAgY2FzZSBrV0tDb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHM6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3
azJfdGV4dF9jaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rl
c3RzL3Rlc3RfZXdrMl90ZXh0X2NoZWNrZXIuY3BwCmluZGV4IGJhZmMwYjguLmZiYmMzMmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdr
Ml90ZXh0X2NoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L3Rlc3RzL3Rlc3RfZXdrMl90ZXh0X2NoZWNrZXIuY3BwCkBAIC0yMTcsNyArMjE3LDcgQEAgc3Rh
dGljIHZvaWQgb25Xb3JkSWdub3JlKHVpbnQ2NF90IHRhZywgY29uc3QgY2hhciogd29yZCkKICAg
ICBjYWxsYmFja3NFeGVjdXRpb25TdGF0cy53b3JkSWdub3JlID0gdHJ1ZTsKIH0KIAotc3RhdGlj
IEVpbmFfQm9vbCBvbkNvbnRleHRNZW51U2hvdyhFd2tfVmlld19TbWFydF9EYXRhKiwgRXZhc19D
b29yZCwgRXZhc19Db29yZCwgRXdrX0NvbnRleHRfTWVudSogY29udGV4dE1lbnUpCitzdGF0aWMg
RWluYV9Cb29sIGNoZWNrU3BlbGxpbmdJdGVtc0F2YWlsYWJpbGl0eShFd2tfVmlld19TbWFydF9E
YXRhKiwgRXZhc19Db29yZCwgRXZhc19Db29yZCwgRXdrX0NvbnRleHRfTWVudSogY29udGV4dE1l
bnUpCiB7CiAgICAgY29uc3QgRWluYV9MaXN0KiBjb250ZXh0TWVudUl0ZW1zID0gZXdrX2NvbnRl
eHRfbWVudV9pdGVtc19nZXQoY29udGV4dE1lbnUpOwogCkBAIC0yNDUsNiArMjQ1LDYzIEBAIHN0
YXRpYyBFaW5hX0Jvb2wgb25Db250ZXh0TWVudVNob3coRXdrX1ZpZXdfU21hcnRfRGF0YSosIEV2
YXNfQ29vcmQsIEV2YXNfQ29vcmQsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3N0YXRpYyBFaW5h
X0Jvb2wgY2hlY2tTcGVsbGluZ0FuZEdyYW1tYXJTdWJtZW51QXZhaWxhYmlsaXR5KEV3a19WaWV3
X1NtYXJ0X0RhdGEqLCBFdmFzX0Nvb3JkLCBFdmFzX0Nvb3JkLCBFd2tfQ29udGV4dF9NZW51KiBj
b250ZXh0TWVudSkKK3sKKyAgICBjb25zdCBFaW5hX0xpc3QqIGNvbnRleHRNZW51SXRlbXMgPSBl
d2tfY29udGV4dF9tZW51X2l0ZW1zX2dldChjb250ZXh0TWVudSk7CisgICAgYm9vbCBpc1NwZWxs
aW5nQW5kR3JhbW1hclN1Yk1lbnVBdmFpbGFibGUgPSBmYWxzZTsKKworICAgIGNvbnN0IEVpbmFf
TGlzdCogbGlzdEl0ZXJhdG9yOworICAgIHZvaWQqIGl0ZW1EYXRhOworICAgIEVJTkFfTElTVF9G
T1JFQUNIKGNvbnRleHRNZW51SXRlbXMsIGxpc3RJdGVyYXRvciwgaXRlbURhdGEpIHsKKyAgICAg
ICAgRXdrX0NvbnRleHRfTWVudV9JdGVtKiBpdGVtID0gc3RhdGljX2Nhc3Q8RXdrX0NvbnRleHRf
TWVudV9JdGVtKj4oaXRlbURhdGEpOworICAgICAgICBpZiAoZXdrX2NvbnRleHRfbWVudV9pdGVt
X3R5cGVfZ2V0KGl0ZW0pID09IEVXS19TVUJNRU5VX1RZUEUKKyAgICAgICAgICAgICYmIGV3a19j
b250ZXh0X21lbnVfaXRlbV9hY3Rpb25fZ2V0KGl0ZW0pID09IEVXS19DT05URVhUX01FTlVfSVRF
TV9UQUdfU1BFTExJTkdfTUVOVSkgeworICAgICAgICAgICAgICAgIGlzU3BlbGxpbmdBbmRHcmFt
bWFyU3ViTWVudUF2YWlsYWJsZSA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBFWFBFQ1RfVFJVRShpc1NwZWxsaW5nQW5kR3JhbW1hclN1Yk1l
bnVBdmFpbGFibGUpOworCisgICAgd2FzQ29udGV4dE1lbnVTaG93biA9IHRydWU7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKK3N0YXRpYyBFaW5hX0Jvb2wgY2hlY2tHcmFtbWFyV2l0aFNwZWxsaW5n
SXRlbUF2YWlsYWJpbGl0eShFd2tfVmlld19TbWFydF9EYXRhKiwgRXZhc19Db29yZCwgRXZhc19D
b29yZCwgRXdrX0NvbnRleHRfTWVudSogY29udGV4dE1lbnUpCit7CisgICAgY29uc3QgRWluYV9M
aXN0KiBjb250ZXh0TWVudUl0ZW1zID0gZXdrX2NvbnRleHRfbWVudV9pdGVtc19nZXQoY29udGV4
dE1lbnUpOworICAgIGJvb2wgaXNHcmFtbWFyV3RpaFNwZWxsaW5nSXRlbUF2YWlsYWJsZSA9IGZh
bHNlOworCisgICAgY29uc3QgRWluYV9MaXN0KiBtZW51SXRlcmF0b3I7CisgICAgdm9pZCogaXRl
bURhdGE7CisgICAgRUlOQV9MSVNUX0ZPUkVBQ0goY29udGV4dE1lbnVJdGVtcywgbWVudUl0ZXJh
dG9yLCBpdGVtRGF0YSkgeworICAgICAgICBFd2tfQ29udGV4dF9NZW51X0l0ZW0qIGl0ZW0gPSBz
dGF0aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51X0l0ZW0qPihpdGVtRGF0YSk7CisgICAgICAgIGlm
IChld2tfY29udGV4dF9tZW51X2l0ZW1fdHlwZV9nZXQoaXRlbSkgPT0gRVdLX1NVQk1FTlVfVFlQ
RQorICAgICAgICAgICAgJiYgZXdrX2NvbnRleHRfbWVudV9pdGVtX2FjdGlvbl9nZXQoaXRlbSkg
PT0gRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19TUEVMTElOR19NRU5VKSB7CisgICAgICAgICAg
ICAgICAgRXdrX0NvbnRleHRfTWVudSogc3BlbGxpbmdBbmRHcmFtbWFyU3VibWVudSA9IGV3a19j
b250ZXh0X21lbnVfaXRlbV9zdWJtZW51X2dldChpdGVtKTsKKyAgICAgICAgICAgICAgICBjb25z
dCBFaW5hX0xpc3QqIHNwZWxsaW5nQW5kR3JhbW1hclN1Ym1lbnVJdGVtcyA9IGV3a19jb250ZXh0
X21lbnVfaXRlbXNfZ2V0KHNwZWxsaW5nQW5kR3JhbW1hclN1Ym1lbnUpOworICAgICAgICAgICAg
ICAgIGNvbnN0IEVpbmFfTGlzdCogc3VibWVudUl0ZXJhdG9yOworCisgICAgICAgICAgICAgICAg
RUlOQV9MSVNUX0ZPUkVBQ0goc3BlbGxpbmdBbmRHcmFtbWFyU3VibWVudUl0ZW1zLCBzdWJtZW51
SXRlcmF0b3IsIGl0ZW1EYXRhKSB7CisgICAgICAgICAgICAgICAgICAgIEV3a19Db250ZXh0X01l
bnVfSXRlbSogc3VibWVudUl0ZW0gPSBzdGF0aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51X0l0ZW0q
PihpdGVtRGF0YSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChld2tfY29udGV4dF9tZW51X2l0
ZW1fYWN0aW9uX2dldChzdWJtZW51SXRlbSkgPT0gRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19D
SEVDS19HUkFNTUFSX1dJVEhfU1BFTExJTkcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlz
R3JhbW1hcld0aWhTcGVsbGluZ0l0ZW1BdmFpbGFibGUgPSB0cnVlOworICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICB9CisKKyNpZiBVU0UoR1JBTU1BUl9DSEVDS0lORykKKyAgICBFWFBF
Q1RfVFJVRShpc0dyYW1tYXJXdGloU3BlbGxpbmdJdGVtQXZhaWxhYmxlKTsKKyNlbHNlCisgICAg
RVhQRUNUX0ZBTFNFKGlzR3JhbW1hcld0aWhTcGVsbGluZ0l0ZW1BdmFpbGFibGUpOworI2VuZGlm
CisKKyAgICB3YXNDb250ZXh0TWVudVNob3duID0gdHJ1ZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30K
KwogLyoqCiAgKiBUZXN0IHdoZXRoZXIgdGhlIGRlZmF1bHQgbGFuZ3VhZ2UgaXMgbG9hZGVkIGlu
ZGVwZW5kZW50bHkgb2YKICAqIGNvbnRpbnVvdXMgc3BlbGwgY2hlY2tpbmcgc2V0dGluZy4KQEAg
LTI4OSw3ICszNDYsNyBAQCBURVNUX0YoRVdLMlVuaXRUZXN0QmFzZSwgZXdrX3RleHRfY2hlY2tl
cl9zcGVsbF9jaGVja2luZ19sYW5ndWFnZXNfZ2V0KQogVEVTVF9GKEVXSzJVbml0VGVzdEJhc2Us
IGNvbnRleHRfbWVudV9zcGVsbGluZ19pdGVtc19hdmFpbGFiaWxpdHkpCiB7CiAgICAgZXdrX3Rl
eHRfY2hlY2tlcl9jb250aW51b3VzX3NwZWxsX2NoZWNraW5nX2VuYWJsZWRfc2V0KGZhbHNlKTsK
LSAgICBld2tWaWV3Q2xhc3MoKS0+Y29udGV4dF9tZW51X3Nob3cgPSBvbkNvbnRleHRNZW51U2hv
dzsKKyAgICBld2tWaWV3Q2xhc3MoKS0+Y29udGV4dF9tZW51X3Nob3cgPSBjaGVja1NwZWxsaW5n
SXRlbXNBdmFpbGFiaWxpdHk7CiAKICAgICBBU1NFUlRfVFJVRShsb2FkVXJsU3luYyhlbnZpcm9u
bWVudC0+dXJsRm9yUmVzb3VyY2UoInNwZWxsaW5nX3Rlc3QuaHRtbCIpLmRhdGEoKSkpOwogICAg
IG1vdXNlQ2xpY2soMTAsIDIwLCAzIC8qIFJpZ2h0IGJ1dHRvbiAqLyk7CkBAIC0yOTksNiArMzU2
LDM1IEBAIFRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBjb250ZXh0X21lbnVfc3BlbGxpbmdfaXRl
bXNfYXZhaWxhYmlsaXR5KQogfQogCiAvKioKKyAqIFRlc3Qgd2hldGhlciB0aGUgY29udGV4dCBz
dWJtZW51ICJTcGVsbGluZyBhbmQgR3JhbW1hciIgaXMgYXZhaWxhYmxlLgorICovCitURVNUX0Yo
RVdLMlVuaXRUZXN0QmFzZSwgY29udGV4dF9tZW51X3NwZWxsaW5nX3N1Ym1lbnVfYXZhaWxhYmls
aXR5KQoreworICAgIHdhc0NvbnRleHRNZW51U2hvd24gPSBmYWxzZTsKKyAgICBld2tWaWV3Q2xh
c3MoKS0+Y29udGV4dF9tZW51X3Nob3cgPSBjaGVja1NwZWxsaW5nQW5kR3JhbW1hclN1Ym1lbnVB
dmFpbGFiaWxpdHk7CisKKyAgICBBU1NFUlRfVFJVRShsb2FkVXJsU3luYyhlbnZpcm9ubWVudC0+
dXJsRm9yUmVzb3VyY2UoInNwZWxsaW5nX3Rlc3QuaHRtbCIpLmRhdGEoKSkpOworICAgIG1vdXNl
Q2xpY2soMTAsIDIwLCAzIC8qIFJpZ2h0IGJ1dHRvbiAqLyk7CisKKyAgICBBU1NFUlRfVFJVRSh3
YWl0VW50aWxUcnVlKHdhc0NvbnRleHRNZW51U2hvd24pKTsKK30KKworLyoqCisgKiBUZXN0IHdo
ZXRoZXIgdGhlIGNvbnRleHQgIkNoZWNrIEdyYW1tYXIgd3RoIFNwZWxsaW5nICIgaXMgYXZhaWxh
YmxlCisgKiBvbmx5IHdoZW4gR1JBTU1BUl9DSEVDS0lORyBpbiBlbmFibGVkLgorICovCitURVNU
X0YoRVdLMlVuaXRUZXN0QmFzZSwgY29udGV4dF9tZW51X2dyYW1tYXJfaXRlbV9hdmFpbGFiaWxp
dHkpCit7CisgICAgd2FzQ29udGV4dE1lbnVTaG93biA9IGZhbHNlOworICAgIGV3a1ZpZXdDbGFz
cygpLT5jb250ZXh0X21lbnVfc2hvdyA9IGNoZWNrR3JhbW1hcldpdGhTcGVsbGluZ0l0ZW1BdmFp
bGFiaWxpdHk7CisKKyAgICBBU1NFUlRfVFJVRShsb2FkVXJsU3luYyhlbnZpcm9ubWVudC0+dXJs
Rm9yUmVzb3VyY2UoInNwZWxsaW5nX3Rlc3QuaHRtbCIpLmRhdGEoKSkpOworICAgIG1vdXNlQ2xp
Y2soMTAsIDIwLCAzIC8qIFJpZ2h0IGJ1dHRvbiAqLyk7CisKKyAgICBBU1NFUlRfVFJVRSh3YWl0
VW50aWxUcnVlKHdhc0NvbnRleHRNZW51U2hvd24pKTsKK30KKworLyoqCiAgKiBUZXN0IHNldHRl
ci9nZXR0ZXIgZm9yIHRoZSBjb250aW51b3VzIHNwZWxsIGNoZWNraW5nOgogICogIC0gZXdrX3Rl
eHRfY2hlY2tlcl9jb250aW51b3VzX3NwZWxsX2NoZWNraW5nX2VuYWJsZWRfZ2V0CiAgKiAgLSBl
d2tfdGV4dF9jaGVja2VyX2NvbnRpbnVvdXNfc3BlbGxfY2hlY2tpbmdfZW5hYmxlZF9zZXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbnRleHRN
ZW51QWN0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRD
b250ZXh0TWVudUFjdGlvbnMuY3BwCmluZGV4IDM3OTNkN2MuLjgxNzBjNGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbnRleHRNZW51QWN0aW9u
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29udGV4
dE1lbnVBY3Rpb25zLmNwcApAQCAtOTIsOCArOTIsMTAgQEAgQ29udGV4dE1lbnVBY3Rpb24gd2Vi
a2l0Q29udGV4dE1lbnVBY3Rpb25HZXRBY3Rpb25UYWcoV2ViS2l0Q29udGV4dE1lbnVBY3Rpb24g
YWMKICAgICAgICAgcmV0dXJuIENvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nOwogICAg
IGNhc2UgV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fTEVBUk5fU1BFTExJTkc6CiAgICAgICAg
IHJldHVybiBDb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nOworI2lmIFVTRShHUkFNTUFS
X0NIRUNLSU5HKQogICAgIGNhc2UgV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fSUdOT1JFX0dS
QU1NQVI6CiAgICAgICAgIHJldHVybiBDb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFyOwor
I2VuZGlmCiAgICAgY2FzZSBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9GT05UX01FTlU6CiAg
ICAgICAgIHJldHVybiBDb250ZXh0TWVudUl0ZW1UYWdGb250TWVudTsKICAgICBjYXNlIFdFQktJ
VF9DT05URVhUX01FTlVfQUNUSU9OX0JPTEQ6CkBAIC0xODMsOCArMTg1LDYgQEAgV2ViS2l0Q29u
dGV4dE1lbnVBY3Rpb24gd2Via2l0Q29udGV4dE1lbnVBY3Rpb25HZXRGb3JDb250ZXh0TWVudUl0
ZW0oQ29udGV4dE1lbnUKICAgICAgICAgcmV0dXJuIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9O
X0lHTk9SRV9TUEVMTElORzsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxp
bmc6CiAgICAgICAgIHJldHVybiBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9MRUFSTl9TUEVM
TElORzsKLSAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0lnbm9yZUdyYW1tYXI6Ci0gICAgICAg
IHJldHVybiBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9JR05PUkVfR1JBTU1BUjsKICAgICBj
YXNlIENvbnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51OgogICAgICAgICByZXR1cm4gV0VCS0lUX0NP
TlRFWFRfTUVOVV9BQ1RJT05fRk9OVF9NRU5VOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFn
Qm9sZDoKQEAgLTI3Miw4ICsyNzIsMTIgQEAgU3RyaW5nIHdlYmtpdENvbnRleHRNZW51QWN0aW9u
R2V0TGFiZWwoV2ViS2l0Q29udGV4dE1lbnVBY3Rpb24gYWN0aW9uKQogICAgICAgICByZXR1cm4g
Y29udGV4dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmcoKTsKICAgICBjYXNlIFdFQktJVF9DT05U
RVhUX01FTlVfQUNUSU9OX0xFQVJOX1NQRUxMSU5HOgogICAgICAgICByZXR1cm4gY29udGV4dE1l
bnVJdGVtVGFnTGVhcm5TcGVsbGluZygpOworI2lmIFVTRShHUkFNTUFSX0NIRUNLSU5HKQorICAg
IGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1hcjoKKyAgICAgICAgcmV0dXJuIFdF
QktJVF9DT05URVhUX01FTlVfQUNUSU9OX0lHTk9SRV9HUkFNTUFSOwogICAgIGNhc2UgV0VCS0lU
X0NPTlRFWFRfTUVOVV9BQ1RJT05fSUdOT1JFX0dSQU1NQVI6CiAgICAgICAgIHJldHVybiBjb250
ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFyKCk7CisjZW5kaWYKICAgICBjYXNlIFdFQktJVF9D
T05URVhUX01FTlVfQUNUSU9OX0ZPTlRfTUVOVToKICAgICAgICAgcmV0dXJuIGNvbnRleHRNZW51
SXRlbVRhZ0ZvbnRNZW51KCk7CiAgICAgY2FzZSBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9C
T0xEOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBlOTJj
ZDhhLi4xMmVhNzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cApAQCAtMzM0OSwxMSArMzM0OSwxMyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGV4dE1lbnVJ
dGVtU2VsZWN0ZWQoY29uc3QgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYgaXRlbSkKICAgICAgICAg
bV9wcm9jZXNzLT51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CisjaWYgVVNFKEdSQU1NQVJfQ0hFQ0tJTkcpCiAgICAgaWYgKGl0ZW0uYWN0aW9uKCkgPT0g
Q29udGV4dE1lbnVJdGVtVGFnQ2hlY2tHcmFtbWFyV2l0aFNwZWxsaW5nKSB7CiAgICAgICAgIFRl
eHRDaGVja2VyOjpzZXRHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKCFUZXh0Q2hlY2tlcjo6c3RhdGUo
KS5pc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQpOwogICAgICAgICBtX3Byb2Nlc3MtPnVwZGF0ZVRl
eHRDaGVja2VyU3RhdGUoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyNlbmRpZgogICAgIGlm
IChpdGVtLmFjdGlvbigpID09IENvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVsKSB7
CiAgICAgICAgIGlmICghVGV4dENoZWNrZXI6OnNwZWxsaW5nVUlJc1Nob3dpbmcoKSkKICAgICAg
ICAgICAgIGFkdmFuY2VUb05leHRNaXNzcGVsbGluZyh0cnVlKTsK
</data>
<flag name="review"
          id="225972"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>