<?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>96712</bug_id>
          
          <creation_ts>2012-09-13 17:33:13 -0700</creation_ts>
          <short_desc>Fix unused parameter compile warnings in WebCore.</short_desc>
          <delta_ts>2012-09-14 01:42:28 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>63526</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kangil Han">kangil.han</reporter>
          <assigned_to name="Kangil Han">kangil.han</assigned_to>
          <cc>andersca</cc>
    
    <cc>danw</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jamesr</cc>
    
    <cc>japhet</cc>
    
    <cc>menard</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pnormand</cc>
    
    <cc>rakuco</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>720160</commentid>
    <comment_count>0</comment_count>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2012-09-13 17:33:13 -0700</bug_when>
    <thetext>There are several unused parameter warnings found during EFL build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720291</commentid>
    <comment_count>1</comment_count>
      <attachid>164044</attachid>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2012-09-13 21:44:00 -0700</bug_when>
    <thetext>Created attachment 164044
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720292</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-13 21:46:08 -0700</bug_when>
    <thetext>Attachment 164044 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebCore/platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:93:  Missing space inside { }.  [whitespace/braces] [5]
Source/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp:479:  init_source is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp:489:  fill_input_buffer is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 3 in 45 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720295</commentid>
    <comment_count>3</comment_count>
      <attachid>164045</attachid>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2012-09-13 21:53:43 -0700</bug_when>
    <thetext>Created attachment 164045
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720296</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-13 21:55:23 -0700</bug_when>
    <thetext>Attachment 164045 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp:479:  init_source is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp:489:  fill_input_buffer is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 45 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720302</commentid>
    <comment_count>5</comment_count>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2012-09-13 22:00:27 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Attachment 164045 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
&gt; Source/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp:479:  init_source is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
&gt; Source/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp:489:  fill_input_buffer is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
&gt; Total errors found: 2 in 45 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.

I don&apos;t think I could fix these style errors.
It was already there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720304</commentid>
    <comment_count>6</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-13 22:05:37 -0700</bug_when>
    <thetext>(In reply to comment #5)

&gt; &gt; If any of these errors are false positives, please file a bug against check-webkit-style.
&gt; 
&gt; I don&apos;t think I could fix these style errors.
&gt; It was already there.

It looks this style error has existed before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720356</commentid>
    <comment_count>7</comment_count>
      <attachid>164045</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-09-13 23:37:05 -0700</bug_when>
    <thetext>Comment on attachment 164045
patch

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

&gt; Source/WebCore/platform/efl/PasteboardEfl.cpp:86
&gt; +                                                          bool, bool&amp;)

Wrong indentation! Also, you can fit bool &amp; bool&amp; on the previous line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720357</commentid>
    <comment_count>8</comment_count>
      <attachid>164045</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-09-13 23:37:12 -0700</bug_when>
    <thetext>Comment on attachment 164045
patch

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

&gt; Source/WebCore/platform/efl/PasteboardEfl.cpp:86
&gt; +                                                          bool, bool&amp;)

Wrong indentation! Also, you can fit bool &amp; bool&amp; on the previous line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720364</commentid>
    <comment_count>9</comment_count>
      <attachid>164057</attachid>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2012-09-13 23:45:37 -0700</bug_when>
    <thetext>Created attachment 164057
patch

Done, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720368</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-13 23:47:48 -0700</bug_when>
    <thetext>Attachment 164057 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp:479:  init_source is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp:489:  fill_input_buffer is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 45 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720369</commentid>
    <comment_count>11</comment_count>
      <attachid>164057</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-13 23:48:38 -0700</bug_when>
    <thetext>Comment on attachment 164057
patch

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

&gt; Source/WebCore/ChangeLog:6
&gt; +        Reviewed by NOBODY (OOPS!).

Missing reviewer name though this patch is reviewed by rniwa.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720373</commentid>
    <comment_count>12</comment_count>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2012-09-13 23:55:41 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 164057 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=164057&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:6
&gt; &gt; +        Reviewed by NOBODY (OOPS!).
&gt; 
&gt; Missing reviewer name though this patch is reviewed by rniwa.

oops.. i will get back soon..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720375</commentid>
    <comment_count>13</comment_count>
      <attachid>164060</attachid>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2012-09-13 23:57:07 -0700</bug_when>
    <thetext>Created attachment 164060
patch

Done!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720377</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-13 23:59:21 -0700</bug_when>
    <thetext>Attachment 164060 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp:479:  init_source is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp:489:  fill_input_buffer is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 45 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720406</commentid>
    <comment_count>15</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-14 00:31:45 -0700</bug_when>
    <thetext>This patch should pass all ews.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720437</commentid>
    <comment_count>16</comment_count>
      <attachid>164060</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-14 01:42:23 -0700</bug_when>
    <thetext>Comment on attachment 164060
patch

Clearing flags on attachment: 164060

Committed r128570: &lt;http://trac.webkit.org/changeset/128570&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720438</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-14 01:42:28 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164044</attachid>
            <date>2012-09-13 21:44:00 -0700</date>
            <delta_ts>2012-09-13 21:53:43 -0700</delta_ts>
            <desc>patch</desc>
            <filename>fix_webcore_unused_parameter_warning.txt</filename>
            <type>text/plain</type>
            <size>49085</size>
            <attacher name="Kangil Han">kangil.han</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzMTUyYzk3Li44NGQ4NDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQ1
IEBACisyMDEyLTA5LTEzICBLYW5naWwgSGFuICA8a2FuZ2lsLmhhbkBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBGaXggdW51c2VkIHBhcmFtZXRlciBjb21waWxlIHdhcm5pbmdzIGluIFdlYkNvcmUu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjcxMgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeGVkIHVu
dXNlZCBwYXJhbWV0ZXIgY29tcGlsZSB3YXJuaW5nIG1lc3NhZ2VzKC1XdW51c2VkLXBhcmFtZXRl
cikgZHVyaW5nIEVGTCBidWlsZC4KKyAgICAgICAgVGhlcmUgYXJlIHR3byBraW5kcyBvZiBzdHVm
ZiByZWxhdGVkIHRvIHRoaXMgd2FybmluZ3MuCisgICAgICAgIEZpcnN0IG9uZSBpcyB0aGF0IHRo
ZSBwYXJhbWV0ZXIgdmFsdWUgaGFzIG5vdCBiZWVuIHVzZWQgYW55d2hlcmUgaW5zaWRlIHRoZSBm
dW5jdGlvbi4KKyAgICAgICAgT3RoZXIgb25lIGlzIHRoYXQgdXNhYmlsaXR5IG9mIHBhcmFtZXRl
ciB2YWx1ZSBpcyBkZXBlbmRlZCBvbiBvcHRpb24sIGkuZS4gQUNDRVNTSUJJTElUWS4KKworICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6c2V0RW5oYW5jZWRVc2VySW50ZXJmYWNlQWNjZXNzaWJpbGl0eSk6Cisg
ICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclBhZ2VBZ2VudDo6c2V0R2VvbG9jYXRpb25PdmVycmlkZSk6CisgICAgICAgICog
bG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRl
ckNsaWVudDo6cmVnaXN0ZXJJbnRlbnRTZXJ2aWNlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpsYXllclRyZWVBc1RleHQpOgorICAgICAgICAq
IHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0U2Ny
b2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZCk6CisgICAgICAgICogcGFnZS9lZmwvRXZl
bnRIYW5kbGVyRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dGFic1Rv
QWxsRm9ybUNvbnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6cGFzc01v
dXNlRG93bkV2ZW50VG9XaWRnZXQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNjcm9sbExheWVyRm9yRnJhbWVW
aWV3KToKKyAgICAgICAgKiBwbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6bWFpbkJ1bmRsZUlzRXF1YWxUbyk6CisgICAgICAgICogcGxhdGZv
cm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpwbGF0Zm9y
bVNldFNjcm9sbE9yaWdpbik6CisgICAgICAgICogcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2lu
Z1N0b3JlQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlU3VyZmFjZUZvckJhY2tp
bmdTdG9yZSk6CisgICAgICAgICogcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51RWZsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnBsYXRmb3JtTWVudURlc2NyaXB0aW9uKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9lZmwvQ29udGV4dE1lbnVJdGVtRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
eHRNZW51SXRlbTo6Q29udGV4dE1lbnVJdGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvRHJh
Z0RhdGFFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6OmFzRmlsZW5hbWVzKToK
KyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpjb250YWluc1VSTCk6CisgICAgICAgIChXZWJD
b3JlOjpEcmFnRGF0YTo6YXNVUkwpOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9HYW1lcGFkc0Vm
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHYW1lcGFkc0VmbDo6b25HYW1lUGFkQ2hhbmdlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjppbWFnZVRpdGxlKToKKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsaXplZE1lZGlh
Q29udHJvbEVsZW1lbnRTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6bG9jYWxpemVkTWVkaWFD
b250cm9sRWxlbWVudEhlbHBUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsaXplZE1lZGlh
VGltZURlc2NyaXB0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVmbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6
OlBhc3RlYm9hcmQ6OmRvY3VtZW50RnJhZ21lbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9Q
bGF0Zm9ybVNjcmVlbkVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5SZWN0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVFZmw6OmFkanVzdFNsaWRlclRyYWNrU3R5bGUpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWVFZmw6OnN5c3RlbUZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVFZmw6OnBhaW50TWVkaWFTbGlkZXJUaHVtYik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZUVmbDo6cGFpbnRNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5lcik6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6cGFpbnRNZWRpYVZvbHVtZVNsaWRlclRyYWNrKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lRWZsOjpwYWludE1lZGlhVm9sdW1lU2xpZGVy
VGh1bWIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVFZmw6OnBhaW50TWVkaWFDdXJy
ZW50VGltZSk6CisgICAgICAgICogcGxhdGZvcm0vZWZsL1Njcm9sbGJhckVmbC5jcHA6CisgICAg
ICAgIChzY3JvbGxiYXJFZmxFZGplTWVzc2FnZSk6CisgICAgICAgICogcGxhdGZvcm0vZWZsL1Nj
cm9sbGJhclRoZW1lRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lRWZs
OjpzY3JvbGxiYXJUaGlja25lc3MpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVF
Zmw6OnJlZ2lzdGVyU2Nyb2xsYmFyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1l
RWZsOjp1bnJlZ2lzdGVyU2Nyb2xsYmFyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvVGVtcG9y
YXJ5TGlua1N0dWJzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNpZ25lZFB1YmxpY0tleUFuZENo
YWxsZW5nZVN0cmluZyk6CisgICAgICAgICogcGxhdGZvcm0vZWZsL1dpZGdldEVmbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXaWRnZXQ6OnNldEZvY3VzKToKKyAgICAgICAgKFdlYkNvcmU6Oldp
ZGdldDo6cGFpbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtVGV4
dERyYXdpbmdNb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6b3JpZW50YXRpb25BdEluZGV4KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllcjo6c3VwcG9ydHNUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9Gb250Q2Fpcm9IYXJmYnV6ek5HLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnQ6OmRyYXdDb21wbGV4VGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWRqdXN0Rm9j
dXNSaW5nTGluZVdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJh
d0xpbmVGb3JUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0UGxh
dGZvcm1GaWxsQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRQ
bGF0Zm9ybVN0cm9rZUNvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6
c2V0VVJMRm9yUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNldFBs
YXRmb3JtU2hhZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZmlsbFJv
dW5kZWRSZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0Nv
bnRleHRQbGF0Zm9ybVByaXZhdGVDYWlyby5oOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0UGxhdGZvcm1Qcml2YXRlOjpzeW5jQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bWFnZUJ1ZmZlckRhdGE6OkltYWdlQnVmZmVyRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vSW1hZ2VDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZTo6ZHJh
d1BhdHRlcm4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VmbC9JY29uRWZsLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okljb246OmNyZWF0ZUljb25Gb3JGaWxlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpJY29uOjpwYWludCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5
cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpn
ZXRTaW1pbGFyRm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6
OmdldFRyYWl0c0luRmFtaWx5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvR1N0cmVhbWVyR1dvcmxkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdzdEdXb3JsZFN5bmNN
ZXNzYWdlQ2FsbGJhY2spOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwOgorICAgICAgICAod2Via2l0Vmlk
ZW9TaW5rTWFyc2hhbFZvaWRBbmRNaW5pT2JqZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKHdl
YktpdFdlYlNyY1VyaUhhbmRsZXJJbml0KToKKyAgICAgICAgKHdlYktpdFdlYlNyY05lZWREYXRh
Q2IpOgorICAgICAgICAod2ViS2l0V2ViU3JjRW5vdWdoRGF0YUNiKToKKyAgICAgICAgKHdlYktp
dFdlYlNyY1NlZWtEYXRhQ2IpOgorICAgICAgICAoU3RyZWFtaW5nQ2xpZW50OjpkaWRSZWNlaXZl
RGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovbmcvSGFyZkJ1enpO
R0ZhY2VDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpoYXJmYnV6ekdldEdseXBoKToKKyAg
ICAgICAgKFdlYkNvcmU6OmhhcmZidXp6R2V0R2x5cGhIb3Jpem9udGFsQWR2YW5jZSk6CisgICAg
ICAgIChXZWJDb3JlOjpoYXJmYnV6ekdldEdseXBoSG9yaXpvbnRhbE9yaWdpbik6CisgICAgICAg
IChXZWJDb3JlOjpoYXJmYnV6ekdldEdseXBoRXh0ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpo
YXJmYnV6ekNhaXJvR2V0VGFibGUpOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJz
L2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZWFkQ29sb3JQ
cm9maWxlKToKKyAgICAgICAgKFdlYkNvcmU6OmluaXRfc291cmNlKToKKyAgICAgICAgKFdlYkNv
cmU6OmZpbGxfaW5wdXRfYnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVy
cy9wbmcvUE5HSW1hZ2VEZWNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBOR0ltYWdlRGVj
b2Rlcjo6cm93QXZhaWxhYmxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29v
a2llU3RvcmFnZVNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0Q29va2llU3RvcmFnZVBy
aXZhdGVCcm93c2luZ0VuYWJsZWQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9E
TlNTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlc29sdmVkQ2FsbGJhY2spOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9Qcm94eVJlc29sdmVyU291cC5jcHA6CisgICAgICAg
IChzb3VwX3Byb3h5X3Jlc29sdmVyX3drX2luaXQpOgorICAgICAgICAoc291cFByb3h5UmVzb2x2
ZXJXa0dldFByb3h5VVJJQXN5bmMpOgorICAgICAgICAoc291cFByb3h5UmVzb2x2ZXJXa0dldFBy
b3h5VVJJU3luYyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFu
ZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZW5kUmVxdWVzdENhbGxiYWNrKToKKyAg
ICAgICAgKFdlYkNvcmU6OmFkZEZvcm1FbGVtZW50c1RvU291cE1lc3NhZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6cmVxdWVzdFN0YXJ0ZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpjbG9z
ZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OnJlYWRDYWxsYmFjayk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
OjphZGp1c3RSZXBhaW50UmVjdCk6CisKIDIwMTItMDktMTMgIFRvbSBTZXBleiAgPHRzZXBlekBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgQVNTRVJUKCFldmVudERpc3BhdGNoRm9yYmlkZGVuKCkp
IGZpcmVzIHdoZW4gcmVtb3ZlZCBwbHVnaW4gcmUtaW5zZXJ0ZWQgYXMgcGFydCBvZiByZWFkeVN0
YXRlQ2hhbmdlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
aAppbmRleCAxMDAxY2YyLi44ZjBmNzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtMTE0LDcgKzExNCw3IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgYm9vbCBhY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZCgpIHsgcmV0
dXJuIGdBY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZDsgfQogI2Vsc2UK
ICAgICBzdGF0aWMgdm9pZCBlbmFibGVBY2Nlc3NpYmlsaXR5KCkgeyB9Ci0gICAgc3RhdGljIHZv
aWQgc2V0RW5oYW5jZWRVc2VySW50ZXJmYWNlQWNjZXNzaWJpbGl0eShib29sIGZsYWcpIHsgfQor
ICAgIHN0YXRpYyB2b2lkIHNldEVuaGFuY2VkVXNlckludGVyZmFjZUFjY2Vzc2liaWxpdHkoYm9v
bCkgeyB9CiAgICAgc3RhdGljIGJvb2wgYWNjZXNzaWJpbGl0eUVuYWJsZWQoKSB7IHJldHVybiBm
YWxzZTsgfQogICAgIHN0YXRpYyBib29sIGFjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZh
Y2VFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KICNlbmRpZgpAQCAtMjQzLDkgKzI0Myw5IEBA
IGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGJhclVwZGF0ZShTY3JvbGxW
aWV3KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxlZFRvQW5j
aG9yKGNvbnN0IE5vZGUqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0
Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBT
dHJpbmcmKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5z
aWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQotaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dE5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgRG9jdW1lbnQqLCBBWE5vdGlmaWNh
dGlvbiwgYm9vbCBwb3N0VG9FbGVtZW50LCBQb3N0VHlwZSkgeyB9Ci1pbmxpbmUgdm9pZCBBWE9i
amVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKFJlbmRlck9iamVjdCosIEFYTm90aWZpY2F0aW9u
LCBib29sIHBvc3RUb0VsZW1lbnQsIFBvc3RUeXBlKSB7IH0KLWlubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBib29sIHBvc3RU
b0VsZW1lbnQsIFBvc3RUeXBlKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RO
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERvY3VtZW50KiwgQVhOb3RpZmljYXRp
b24sIGJvb2wsIFBvc3RUeXBlKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RO
b3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiwgQVhOb3RpZmljYXRpb24sIGJvb2wsIFBvc3RUeXBl
KSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oTm9kZSos
IEFYTm90aWZpY2F0aW9uLCBib29sLCBQb3N0VHlwZSkgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFY
Tm90aWZpY2F0aW9uKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlbW92ZShBWElE
KSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlbW92ZShSZW5kZXJPYmplY3QqKSB7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAK
aW5kZXggNzA3Yzc1MS4uZmEyM2FhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKQEAgLTEwMTgsNiArMTAxOCw5IEBAIHZvaWQgSW5zcGVj
dG9yUGFnZUFnZW50OjpzZXRHZW9sb2NhdGlvbk92ZXJyaWRlKEVycm9yU3RyaW5nKiBlcnJvciwg
Y29uc3QgZG91YmxlCiAgICAgY29udHJvbGxlci0+cG9zaXRpb25DaGFuZ2VkKDApOyAvLyBLaWNr
IGxvY2F0aW9uIHVwZGF0ZS4KICNlbHNlCiAgICAgKmVycm9yID0gIkdlb2xvY2F0aW9uIGlzIG5v
dCBhdmFpbGFibGUuIjsKKyAgICBVTlVTRURfUEFSQU0obGF0aXR1ZGUpOworICAgIFVOVVNFRF9Q
QVJBTShsb25naXR1ZGUpOworICAgIFVOVVNFRF9QQVJBTShhY2N1cmFjeSk7CiAjZW5kaWYKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBiZTgxMDI4
Li42NjhlZGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApA
QCAtMzM0LDcgKzMzNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2
b2lkIGRpc3BhdGNoSW50ZW50KFBhc3NSZWZQdHI8SW50ZW50UmVxdWVzdD4pID0gMDsKICNlbmRp
ZgogI2lmIEVOQUJMRShXRUJfSU5URU5UU19UQUcpCi0gICAgICAgIHZpcnR1YWwgdm9pZCByZWdp
c3RlckludGVudFNlcnZpY2UoY29uc3QgU3RyaW5nJiBhY3Rpb24sIGNvbnN0IFN0cmluZyYgdHlw
ZSwgY29uc3QgS1VSTCYgaHJlZiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBk
aXNwb3NpdGlvbikgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckludGVudFNlcnZp
Y2UoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYpIHsgfQogI2VuZGlmCiAKICAgICAgICAgdmlydHVhbCB2b2lkIGRp
c3BhdGNoV2lsbE9wZW5Tb2NrZXRTdHJlYW0oU29ja2V0U3RyZWFtSGFuZGxlKikgeyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWUuY3BwCmluZGV4IDg1YzJhMzMuLmZiNjVkNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3Bw
CkBAIC04ODYsNiArODg2LDcgQEAgU3RyaW5nIEZyYW1lOjpsYXllclRyZWVBc1RleHQoYm9vbCBz
aG93RGVidWdJbmZvKSBjb25zdAogCiAgICAgcmV0dXJuIGNvbnRlbnRSZW5kZXJlcigpLT5jb21w
b3NpdG9yKCktPmxheWVyVHJlZUFzVGV4dChzaG93RGVidWdJbmZvKTsKICNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKHNob3dEZWJ1Z0luZm8pOwogICAgIHJldHVybiBTdHJpbmcoKTsKICNlbmRpZgog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IGQ2ZDZjNTYuLjI5MjU4MjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTM3MTAsNiArMzcxMCw4IEBAIHZvaWQgRnJhbWVW
aWV3OjpzZXRTY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKGJvb2wgZmxhZykKICNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKFRpbGVkQmFja2luZyogdGls
ZWRCYWNraW5nID0gdGhpcy0+dGlsZWRCYWNraW5nKCkpCiAgICAgICAgIHRpbGVkQmFja2luZy0+
c2V0U2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZChmbGFnKTsKKyNlbHNlCisgICAg
VU5VU0VEX1BBUkFNKGZsYWcpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Vm
bC9FdmVudEhhbmRsZXJFZmwuY3BwCmluZGV4IGE1ODU5MDguLmRiNjk1ODkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcApAQCAtNTAsNyArNTAsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjb25zdCBkb3VibGUgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0Rl
bGF5ID0gMC4wOwogI2VuZGlmCiAKLWJvb2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29u
dHJvbHMoS2V5Ym9hcmRFdmVudCogZXZlbnQpIGNvbnN0Citib29sIEV2ZW50SGFuZGxlcjo6dGFi
c1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQqKSBjb25zdAogewogICAgIHJldHVybiB0
cnVlOwogfQpAQCAtNzYsNyArNzYsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6cGFzc1dpZGdldE1v
dXNlRG93bkV2ZW50VG9XaWRnZXQoUmVuZGVyV2lkZ2V0KiByZW5kZXJXaWRnZXQpCiAgICAgcmV0
dXJuIHBhc3NNb3VzZURvd25FdmVudFRvV2lkZ2V0KHJlbmRlcldpZGdldC0+d2lkZ2V0KCkpOwog
fQogCi1ib29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlRG93bkV2ZW50VG9XaWRnZXQoV2lkZ2V0
KiB3aWRnZXQpCitib29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlRG93bkV2ZW50VG9XaWRnZXQo
V2lkZ2V0KikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBmYWxzZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmNwcAppbmRleCBiYzQ5M2E4Li5hNjAxOGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBAIC0yMTgsNiAr
MjE4LDcgQEAgc3RhdGljIEdyYXBoaWNzTGF5ZXIqIHNjcm9sbExheWVyRm9yRnJhbWVWaWV3KEZy
YW1lVmlldyogZnJhbWVWaWV3KQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gcmVuZGVy
Vmlldy0+Y29tcG9zaXRvcigpLT5zY3JvbGxMYXllcigpOwogI2Vsc2UKKyAgICBVTlVTRURfUEFS
QU0oZnJhbWVWaWV3KTsKICAgICByZXR1cm4gMDsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAKaW5kZXggMDRi
N2E4Mi4uMWI4ZDAwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50
aW1lQXBwbGljYXRpb25DaGVja3MuY3BwCkBAIC00OSw2ICs0OSw3IEBAIHN0YXRpYyBib29sIG1h
aW5CdW5kbGVJc0VxdWFsVG8oY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyU3RyaW5nKQog
ICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gYnVuZGxlSWRlbnRpZmllclRvQ29tcGFyZShBZG9w
dENGLCBidW5kbGVJZGVudGlmaWVyU3RyaW5nLmNyZWF0ZUNGU3RyaW5nKCkpOwogICAgIHJldHVy
biBDRlN0cmluZ0NvbXBhcmUoYnVuZGxlSWRlbnRpZmllciwgYnVuZGxlSWRlbnRpZmllclRvQ29t
cGFyZS5nZXQoKSwgMCkgPT0ga0NGQ29tcGFyZUVxdWFsVG87CiAjZWxzZQorICAgIFVOVVNFRF9Q
QVJBTShidW5kbGVJZGVudGlmaWVyU3RyaW5nKTsKICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKaW5kZXggODVkNzVkYS4uODIx
ZDdmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKQEAgLTEzNjIsNyAr
MTM2Miw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6cGxhdGZvcm1TZXRTY3JvbGxiYXJzU3VwcHJlc3Nl
ZChib29sKQogewogfQogCi12b2lkIFNjcm9sbFZpZXc6OnBsYXRmb3JtU2V0U2Nyb2xsT3JpZ2lu
KGNvbnN0IEludFBvaW50JiwgYm9vbCB1cGRhdGVQb3NpdGlvbkF0QWxsLCBib29sIHVwZGF0ZVBv
c2l0aW9uU3luY2hyb25vdXNseSkKK3ZvaWQgU2Nyb2xsVmlldzo6cGxhdGZvcm1TZXRTY3JvbGxP
cmlnaW4oY29uc3QgSW50UG9pbnQmLCBib29sLCBib29sKQogewogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWlyby9XaWRnZXRCYWNraW5nU3RvcmVDYWlyby5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWlyby9XaWRnZXRCYWNraW5nU3RvcmVDYWlyby5j
cHAKaW5kZXggZGZhNzNlYy4uMWRlYzdjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NhaXJvL1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNwcApAQCAtMzcsNiAr
MzcsNyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IGNyZWF0ZVN1cmZhY2VG
b3JCYWNraW5nU3RvcmUoUGxhdGZvcm1XaWRnZXQgdwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQ0FJUk9fQ09OVEVOVF9DT0xPUl9BTFBIQSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemUud2lkdGgoKSwgc2l6ZS5o
ZWlnaHQoKSk7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh3aWRnZXQpOwogICAgIHJldHVybiBh
ZG9wdFJlZihjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZShDQUlST19GT1JNQVRfQVJHQjMyLCBz
aXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51RWZsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2VmbC9Db250ZXh0TWVudUVmbC5jcHAKaW5kZXggNTExMGFiZC4uY2RhZWQ5
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51RWZs
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVFZmwuY3Bw
CkBAIC05MSw3ICs5MSw3IEBAIFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIENvbnRleHRNZW51Ojpy
ZWxlYXNlUGxhdGZvcm1EZXNjcmlwdGlvbigpCiAgICAgcmV0dXJuIFBsYXRmb3JtTWVudURlc2Ny
aXB0aW9uKCk7CiB9CiAKLVBsYXRmb3JtTWVudURlc2NyaXB0aW9uIHBsYXRmb3JtTWVudURlc2Ny
aXB0aW9uKFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+JiBtZW51SXRlbVZlY3RvcikKK1BsYXRmb3Jt
TWVudURlc2NyaXB0aW9uIHBsYXRmb3JtTWVudURlc2NyaXB0aW9uKFZlY3RvcjxDb250ZXh0TWVu
dUl0ZW0+JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51SXRlbUVmbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVJdGVtRWZsLmNwcAppbmRl
eCBjNGVkMDY3Li40YTI0M2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvQ29udGV4dE1lbnVJdGVtRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvQ29udGV4dE1lbnVJdGVtRWZsLmNwcApAQCAtNTIsNyArNTIsNyBAQCBDb250ZXh0TWVudUl0
ZW06OkNvbnRleHRNZW51SXRlbShDb250ZXh0TWVudUl0ZW1UeXBlIHR5cGUsIENvbnRleHRNZW51
QWN0aW9uIGFjdAogICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi50aXRsZSA9IHRpdGxlOwogfQog
Ci1Db250ZXh0TWVudUl0ZW06OkNvbnRleHRNZW51SXRlbShDb250ZXh0TWVudUFjdGlvbiwgY29u
c3QgU3RyaW5nJiwgYm9vbCBlbmFibGVkLCBib29sIGNoZWNrZWQsIFZlY3RvcjxDb250ZXh0TWVu
dUl0ZW0+JiBzdWJNZW51SXRlbXMpCitDb250ZXh0TWVudUl0ZW06OkNvbnRleHRNZW51SXRlbShD
b250ZXh0TWVudUFjdGlvbiwgY29uc3QgU3RyaW5nJiwgYm9vbCwgYm9vbCwgVmVjdG9yPENvbnRl
eHRNZW51SXRlbT4mKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvRHJhZ0RhdGFFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0RyYWdE
YXRhRWZsLmNwcAppbmRleCA5ZDdlOWNhLi5kY2FmNDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvRHJhZ0RhdGFFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2VmbC9EcmFnRGF0YUVmbC5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgdW5zaWduZWQgRHJh
Z0RhdGE6Om51bWJlck9mRmlsZXMoKSBjb25zdAogICAgIHJldHVybiAwOwogfQogCi12b2lkIERy
YWdEYXRhOjphc0ZpbGVuYW1lcyhWZWN0b3I8U3RyaW5nPiYgcmVzdWx0KSBjb25zdAordm9pZCBE
cmFnRGF0YTo6YXNGaWxlbmFtZXMoVmVjdG9yPFN0cmluZz4mKSBjb25zdAogewogfQogCkBAIC03
MCwxMiArNzAsMTIgQEAgYm9vbCBEcmFnRGF0YTo6Y29udGFpbnNDb21wYXRpYmxlQ29udGVudCgp
IGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIERyYWdEYXRhOjpjb250YWluc1VS
TChGcmFtZSosIEZpbGVuYW1lQ29udmVyc2lvblBvbGljeSBmaWxlbmFtZVBvbGljeSkgY29uc3QK
K2Jvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zVVJMKEZyYW1lKiwgRmlsZW5hbWVDb252ZXJzaW9uUG9s
aWN5KSBjb25zdAogewogICAgIHJldHVybiBmYWxzZTsKIH0KIAotU3RyaW5nIERyYWdEYXRhOjph
c1VSTChGcmFtZSosIEZpbGVuYW1lQ29udmVyc2lvblBvbGljeSBmaWxlbmFtZVBvbGljeSwgU3Ry
aW5nKiB0aXRsZSkgY29uc3QKK1N0cmluZyBEcmFnRGF0YTo6YXNVUkwoRnJhbWUqLCBGaWxlbmFt
ZUNvbnZlcnNpb25Qb2xpY3ksIFN0cmluZyopIGNvbnN0CiB7CiAgICAgcmV0dXJuIFN0cmluZygp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0dhbWVwYWRzRWZs
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9HYW1lcGFkc0VmbC5jcHAKaW5kZXgg
ZjY3YmE0Mi4uNjNiNmM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L0dhbWVwYWRzRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvR2FtZXBh
ZHNFZmwuY3BwCkBAIC0xMjgsNyArMTI4LDcgQEAgcHJpdmF0ZToKICAgICBFZXplX1VkZXZfV2F0
Y2gqIG1fZ2FtZXBhZHNXYXRjaGVyOwogfTsKIAotdm9pZCBHYW1lcGFkc0VmbDo6b25HYW1lUGFk
Q2hhbmdlKGNvbnN0IGNoYXIqIHN5c3BhdGgsIEVlemVfVWRldl9FdmVudCBldmVudCwgdm9pZCog
dXNlckRhdGEsIEVlemVfVWRldl9XYXRjaCogd2F0Y2hlcikKK3ZvaWQgR2FtZXBhZHNFZmw6Om9u
R2FtZVBhZENoYW5nZShjb25zdCBjaGFyKiBzeXNwYXRoLCBFZXplX1VkZXZfRXZlbnQgZXZlbnQs
IHZvaWQqIHVzZXJEYXRhLCBFZXplX1VkZXZfV2F0Y2gqKQogewogICAgIEdhbWVwYWRzRWZsKiBn
YW1lcGFkc0VmbCA9IHN0YXRpY19jYXN0PEdhbWVwYWRzRWZsKj4odXNlckRhdGEpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5jcHAK
aW5kZXggZWQ2ZWU1Zi4uY2I1ZDdiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZWZsL0xvY2FsaXplZFN0cmluZ3NFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9Mb2NhbGl6ZWRTdHJpbmdzRWZsLmNwcApAQCAtNDE5LDI2ICs0MTksMjYgQEAgU3Ry
aW5nIHVua25vd25GaWxlU2l6ZVRleHQoKQogICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJV
bmtub3duIik7CiB9CiAKLVN0cmluZyBpbWFnZVRpdGxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUs
IGNvbnN0IEludFNpemUmIHNpemUpCitTdHJpbmcgaW1hZ2VUaXRsZShjb25zdCBTdHJpbmcmLCBj
b25zdCBJbnRTaXplJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBTdHJp
bmcoKTsKIH0KIAogI2lmIEVOQUJMRShWSURFTykKLVN0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRy
b2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0cmluZyYgbmFtZSkKK1N0cmluZyBsb2NhbGl6ZWRNZWRp
YUNvbnRyb2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0cmluZyYpCiB7CiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVN0cmluZyBsb2NhbGl6ZWRNZWRpYUNv
bnRyb2xFbGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5nJiBuYW1lKQorU3RyaW5nIGxvY2FsaXpl
ZE1lZGlhQ29udHJvbEVsZW1lbnRIZWxwVGV4dChjb25zdCBTdHJpbmcmKQogewogICAgIG5vdElt
cGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgbG9jYWxpemVk
TWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQgdGltZSkKK1N0cmluZyBsb2NhbGl6ZWRNZWRpYVRp
bWVEZXNjcmlwdGlvbihmbG9hdCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVy
biBTdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QYXN0
ZWJvYXJkRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QYXN0ZWJvYXJkRWZs
LmNwcAppbmRleCAzOTY1MGM3Li4yZGE3NGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZWZsL1Bhc3RlYm9hcmRFZmwuY3BwCkBAIC01MSw3ICs1MSw3IEBAIHZvaWQgUGFzdGVib2Fy
ZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiwgU21hcnRSZXBsYWNlT3B0aW9uKQogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24o
UmFuZ2UqIHNlbGVjdGVkUmFuZ2UsIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUsIEZyYW1lKiBm
cmFtZSkKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24oUmFuZ2UqLCBib29sLCBGcmFt
ZSopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTYxLDcgKzYxLDcgQEAgdm9pZCBQ
YXN0ZWJvYXJkOjp3cml0ZVVSTChjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiwgRnJhbWUqKQog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgUGFzdGVib2FyZDo6d3JpdGVJbWFnZShO
b2RlKiBub2RlLCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJikKK3ZvaWQgUGFzdGVib2FyZDo6
d3JpdGVJbWFnZShOb2RlKiwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTgyLDggKzgyLDggQEAgYm9vbCBQYXN0ZWJvYXJkOjpjYW5T
bWFydFJlcGxhY2UoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotUGFzc1JlZlB0cjxEb2N1bWVu
dEZyYWdtZW50PiBQYXN0ZWJvYXJkOjpkb2N1bWVudEZyYWdtZW50KEZyYW1lKiBmcmFtZSwgUGFz
c1JlZlB0cjxSYW5nZT4gY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGFsbG93UGxhaW5UZXh0LCBib29sJiBjaG9z
ZVBsYWluVGV4dCkKK1Bhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gUGFzdGVib2FyZDo6ZG9j
dW1lbnRGcmFnbWVudChGcmFtZSosIFBhc3NSZWZQdHI8UmFuZ2U+LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wsIGJvb2wmKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGxhdGZvcm1TY3JlZW5FZmwuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL1BsYXRmb3JtU2NyZWVuRWZsLmNwcAppbmRleCBiNDNiZjQxLi4w
OWQzYTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGxhdGZvcm1T
Y3JlZW5FZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QbGF0Zm9ybVNj
cmVlbkVmbC5jcHAKQEAgLTExNiw2ICsxMTYsNyBAQCBGbG9hdFJlY3Qgc2NyZWVuUmVjdChXaWRn
ZXQqIHdpZGdldCkKICNpZmRlZiBIQVZFX0VDT1JFX1gKICAgICBpbnQgd2lkdGggPSAwLCBoZWln
aHQgPSAwOwogICAgIENBTExfV0lUSF9FQ09SRV9YKGVjb3JlX3hfc2NyZWVuX3NpemVfZ2V0KHNj
cmVlbiwgJndpZHRoLCAmaGVpZ2h0KSk7CisgICAgVU5VU0VEX1BBUkFNKHdpZGdldCk7CiAgICAg
cmV0dXJuIEZsb2F0UmVjdCgwLCAwLCB3aWR0aCwgaGVpZ2h0KTsKICNlbHNlCiAgICAgaWYgKCF3
aWRnZXQgfHwgIXdpZGdldC0+ZXZhcygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Vm
bC9SZW5kZXJUaGVtZUVmbC5jcHAKaW5kZXggYjRlNDAzYS4uMzg4N2RkMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwCkBAIC03MjAsNyArNzIw
LDcgQEAgYm9vbCBSZW5kZXJUaGVtZUVmbDo6cGFpbnRTbGlkZXJUcmFjayhSZW5kZXJPYmplY3Qq
IG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBpbmYKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZv
aWQgUmVuZGVyVGhlbWVFZmw6OmFkanVzdFNsaWRlclRyYWNrU3R5bGUoU3R5bGVSZXNvbHZlciog
c3R5bGVSZXNvbHZlciwgUmVuZGVyU3R5bGUqIHN0eWxlLCBFbGVtZW50KiBlbGVtZW50KSBjb25z
dAordm9pZCBSZW5kZXJUaGVtZUVmbDo6YWRqdXN0U2xpZGVyVHJhY2tTdHlsZShTdHlsZVJlc29s
dmVyKiwgUmVuZGVyU3R5bGUqIHN0eWxlLCBFbGVtZW50KikgY29uc3QKIHsKICAgICBzdHlsZS0+
c2V0Qm94U2hhZG93KG51bGxwdHIpOwogfQpAQCAtMTAwMyw3ICsxMDAzLDcgQEAgdm9pZCBSZW5k
ZXJUaGVtZUVmbDo6c2V0RGVmYXVsdEZvbnRTaXplKGludCBzaXplKQogICAgIGRlZmF1bHRGb250
U2l6ZSA9IHNpemU7CiB9CiAKLXZvaWQgUmVuZGVyVGhlbWVFZmw6OnN5c3RlbUZvbnQoaW50IHBy
b3BJZCwgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0Cit2b2lkIFJlbmRl
clRoZW1lRWZsOjpzeXN0ZW1Gb250KGludCwgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRp
b24pIGNvbnN0CiB7CiAgICAgLy8gSXQgd2FzIGNhbGxlZCBieSBSZW5kZXJFbWJlZGRlZE9iamVj
dDo6cGFpbnRSZXBsYWNlZCB0byByZW5kZXIgYWx0ZXJuYXRpdmUgc3RyaW5nLgogICAgIC8vIFRv
IGF2b2lkIGNhaXJvX2Vycm9yIHdoaWxlIHJlbmRlcmluZywgZm9udERlc2NyaXB0aW9uIHNob3Vs
ZCBiZSBwYXNzZWQuCkBAIC0xMjE0LDMyICsxMjE0LDMyIEBAIGJvb2wgUmVuZGVyVGhlbWVFZmw6
OnBhaW50TWVkaWFTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJ
bmZvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgUmVuZGVyVGhlbWVFZmw6OnBhaW50TWVk
aWFTbGlkZXJUaHVtYihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBpbmZv
LCBjb25zdCBJbnRSZWN0JiByZWN0KQorYm9vbCBSZW5kZXJUaGVtZUVmbDo6cGFpbnRNZWRpYVNs
aWRlclRodW1iKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYgaW5mbywgY29uc3QgSW50
UmVjdCYgcmVjdCkKIHsKICAgICBJbnRTaXplIHRodW1iUmVjdCgzLCAzKTsKICAgICBpbmZvLmNv
bnRleHQtPmZpbGxSb3VuZGVkUmVjdChyZWN0LCB0aHVtYlJlY3QsIHRodW1iUmVjdCwgdGh1bWJS
ZWN0LCB0aHVtYlJlY3QsIG1fc2xpZGVyVGh1bWJDb2xvciwgQ29sb3JTcGFjZURldmljZVJHQik7
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgUmVuZGVyVGhlbWVFZmw6OnBhaW50TWVkaWFW
b2x1bWVTbGlkZXJDb250YWluZXIoUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiBpbmZv
LCBjb25zdCBJbnRSZWN0JiByZWN0KQorYm9vbCBSZW5kZXJUaGVtZUVmbDo6cGFpbnRNZWRpYVZv
bHVtZVNsaWRlckNvbnRhaW5lcihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25z
dCBJbnRSZWN0JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotYm9vbCBSZW5kZXJUaGVtZUVmbDo6cGFpbnRNZWRpYVZvbHVtZVNsaWRlclRyYWNrKFJl
bmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8mIGluZm8sIGNvbnN0IEludFJlY3Qm
IHJlY3QpCitib29sIFJlbmRlclRoZW1lRWZsOjpwYWludE1lZGlhVm9sdW1lU2xpZGVyVHJhY2so
UmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpCiB7CiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgUmVuZGVyVGhl
bWVFZmw6OnBhaW50TWVkaWFWb2x1bWVTbGlkZXJUaHVtYihSZW5kZXJPYmplY3QqIG9iamVjdCwg
Y29uc3QgUGFpbnRJbmZvJiBpbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0KQorYm9vbCBSZW5kZXJU
aGVtZUVmbDo6cGFpbnRNZWRpYVZvbHVtZVNsaWRlclRodW1iKFJlbmRlck9iamVjdCosIGNvbnN0
IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIFJlbmRlclRoZW1lRWZsOjpwYWludE1lZGlhQ3Vy
cmVudFRpbWUoUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgaW5mbywgY29u
c3QgSW50UmVjdCYgcmVjdCkKK2Jvb2wgUmVuZGVyVGhlbWVFZmw6OnBhaW50TWVkaWFDdXJyZW50
VGltZShSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mIGluZm8sIGNvbnN0IEludFJlY3Qm
IHJlY3QpCiB7CiAgICAgaW5mby5jb250ZXh0LT5maWxsUmVjdChGbG9hdFJlY3QocmVjdCksIG1f
bWVkaWFQYW5lbENvbG9yLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKICAgICByZXR1cm4gdHJ1ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TY3JvbGxiYXJFZmwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Njcm9sbGJhckVmbC5jcHAKaW5kZXggMWFh
ZjRjZi4uMjA1MDM0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Nj
cm9sbGJhckVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Njcm9sbGJh
ckVmbC5jcHAKQEAgLTY3LDcgKzY3LDcgQEAgU2Nyb2xsYmFyRWZsOjp+U2Nyb2xsYmFyRWZsKCkK
ICAgICBzZXRFdmFzT2JqZWN0KDApOwogfQogCi1zdGF0aWMgdm9pZCBzY3JvbGxiYXJFZmxFZGpl
TWVzc2FnZSh2b2lkKiBkYXRhLCBFdmFzX09iamVjdCogb2JqZWN0LCBFZGplX01lc3NhZ2VfVHlw
ZSBtZXNzYWdlVHlwZSwgaW50IGlkLCB2b2lkKiBtZXNzYWdlKQorc3RhdGljIHZvaWQgc2Nyb2xs
YmFyRWZsRWRqZU1lc3NhZ2Uodm9pZCogZGF0YSwgRXZhc19PYmplY3QqLCBFZGplX01lc3NhZ2Vf
VHlwZSBtZXNzYWdlVHlwZSwgaW50IGlkLCB2b2lkKiBtZXNzYWdlKQogewogICAgIFNjcm9sbGJh
ckVmbCogdGhhdCA9IHN0YXRpY19jYXN0PFNjcm9sbGJhckVmbCo+KGRhdGEpOwogICAgIEVkamVf
TWVzc2FnZV9GbG9hdCogbWVzc2FnZUZsb2F0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZWZsL1Njcm9sbGJhclRoZW1lRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9TY3JvbGxiYXJUaGVtZUVmbC5jcHAKaW5kZXggMjQwYjUwMS4uN2Q5NGU4ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Njcm9sbGJhclRoZW1lRWZsLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2Nyb2xsYmFyVGhlbWVFZmwuY3Bw
CkBAIC00NCwxNiArNDQsMTYgQEAgU2Nyb2xsYmFyVGhlbWVFZmw6On5TY3JvbGxiYXJUaGVtZUVm
bCgpCiB7CiB9CiAKLWludCBTY3JvbGxiYXJUaGVtZUVmbDo6c2Nyb2xsYmFyVGhpY2tuZXNzKFNj
cm9sbGJhckNvbnRyb2xTaXplIGNvbnRyb2xTaXplKQoraW50IFNjcm9sbGJhclRoZW1lRWZsOjpz
Y3JvbGxiYXJUaGlja25lc3MoU2Nyb2xsYmFyQ29udHJvbFNpemUpCiB7CiAgICAgcmV0dXJuIDA7
IC8vIHdlIHBhaW50IG9uIHRvcAogfQogCi12b2lkIFNjcm9sbGJhclRoZW1lRWZsOjpyZWdpc3Rl
clNjcm9sbGJhcihTY3JvbGxiYXJUaGVtZUNsaWVudCogc2Nyb2xsYmFyKQordm9pZCBTY3JvbGxi
YXJUaGVtZUVmbDo6cmVnaXN0ZXJTY3JvbGxiYXIoU2Nyb2xsYmFyVGhlbWVDbGllbnQqKQogewog
fQogCi12b2lkIFNjcm9sbGJhclRoZW1lRWZsOjp1bnJlZ2lzdGVyU2Nyb2xsYmFyKFNjcm9sbGJh
clRoZW1lQ2xpZW50KiBzY3JvbGxiYXIpCit2b2lkIFNjcm9sbGJhclRoZW1lRWZsOjp1bnJlZ2lz
dGVyU2Nyb2xsYmFyKFNjcm9sbGJhclRoZW1lQ2xpZW50KikKIHsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1RlbXBvcmFyeUxpbmtTdHVicy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvVGVtcG9yYXJ5TGlua1N0dWJzLmNwcAppbmRleCBlOTA1
OTdiLi4xZjlkMGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvVGVt
cG9yYXJ5TGlua1N0dWJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvVGVt
cG9yYXJ5TGlua1N0dWJzLmNwcApAQCAtNTEsNyArNTEsNyBAQCB2b2lkIGdldFN1cHBvcnRlZEtl
eVNpemVzKFZlY3RvcjxTdHJpbmc+JikKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi1TdHJp
bmcgc2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKHVuc2lnbmVkIGtleVNpemVJbmRl
eCwgY29uc3QgU3RyaW5nICZjaGFsbGVuZ2VTdHJpbmcsIGNvbnN0IEtVUkwgJnVybCkKK1N0cmlu
ZyBzaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcodW5zaWduZWQsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IEtVUkwmKQogewogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9XaWRnZXRFZmwuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZWZsL1dpZGdldEVmbC5jcHAKaW5kZXggOGY4ZjJlNy4uMDNiNmQ0YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1dpZGdldEVmbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1dpZGdldEVmbC5jcHAKQEAgLTEwNiw3ICsxMDYs
NyBAQCB2b2lkIFdpZGdldDo6ZnJhbWVSZWN0c0NoYW5nZWQoKQogICAgIGV2YXNfb2JqZWN0X3Jl
c2l6ZShvYmplY3QsIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CiB9CiAKLXZvaWQgV2lk
Z2V0OjpzZXRGb2N1cyhib29sIGZvY3VzZWQpCit2b2lkIFdpZGdldDo6c2V0Rm9jdXMoYm9vbCkK
IHsKIH0KIApAQCAtMTM0LDcgKzEzNCw3IEBAIHZvaWQgV2lkZ2V0OjpoaWRlKCkKICAgICBldmFz
X29iamVjdF9oaWRlKHBsYXRmb3JtV2lkZ2V0KCkpOwogfQogCi12b2lkIFdpZGdldDo6cGFpbnQo
R3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JikKK3ZvaWQgV2lkZ2V0Ojpw
YWludChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JikKIHsKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dC5jcHAKaW5kZXggM2ExYmRjZC4uYjIwMTNhMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCkBAIC03
MDQsNyArNzA0LDcgQEAgQ29tcG9zaXRlT3BlcmF0b3IgR3JhcGhpY3NDb250ZXh0Ojpjb21wb3Np
dGVPcGVyYXRpb24oKSBjb25zdAogI2lmICFVU0UoQ0cpICYmICFVU0UoU0tJQSkKIC8vIEltcGxl
bWVudCB0aGlzIGlmIHlvdSB3YW50IHRvIGdvIGFoZWFkIGFuZCBwdXNoIHRoZSBkcmF3aW5nIG1v
ZGUgaW50byB5b3VyIG5hdGl2ZSBjb250ZXh0CiAvLyBpbW1lZGlhdGVseS4KLXZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpzZXRQbGF0Zm9ybVRleHREcmF3aW5nTW9kZShUZXh0RHJhd2luZ01vZGVGbGFn
cyBtb2RlKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtVGV4dERyYXdpbmdNb2Rl
KFRleHREcmF3aW5nTW9kZUZsYWdzKQogewogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKaW5kZXggY2EwZjk1ZC4uOTgxNmU2
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3Vy
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNl
LmNwcApAQCAtMTc1LDcgKzE3NSw3IEBAIGZsb2F0IEltYWdlU291cmNlOjpmcmFtZUR1cmF0aW9u
QXRJbmRleChzaXplX3QgaW5kZXgpCiAgICAgcmV0dXJuIGR1cmF0aW9uOwogfQogCi1JbWFnZU9y
aWVudGF0aW9uIEltYWdlU291cmNlOjpvcmllbnRhdGlvbkF0SW5kZXgoc2l6ZV90IGluZGV4KSBj
b25zdAorSW1hZ2VPcmllbnRhdGlvbiBJbWFnZVNvdXJjZTo6b3JpZW50YXRpb25BdEluZGV4KHNp
emVfdCkgY29uc3QKIHsKICAgICAvLyBUaGUgSlBFRyBhbmQgVElGRiBkZWNvZGVycyBuZWVkIHRv
IGJlIHRhdWdodCBob3cgdG8gcmVhZCBFWElGLCBYTVAsIG9yIElQVEMgZGF0YS4KICAgICBub3RJ
bXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuY3BwCmluZGV4IGIxMTYxMGYuLjMwZWU5NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTc4NSw2ICs3ODUsOCBA
QCBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUoY29u
c3QgQ29udGVudFR5cGUmIGNvbnRlbnRUeQogICAgICAgICAgICAgJiYgKGNvbnRlbnRUeXBlLnR5
cGUoKS5zdGFydHNXaXRoKCJ2aWRlby93ZWJtIiwgZmFsc2UpIHx8IGNvbnRlbnRUeXBlLnR5cGUo
KS5zdGFydHNXaXRoKCJ2aWRlby94LWZsdiIsIGZhbHNlKSkpCiAgICAgICAgICAgICByZXR1cm4g
SXNOb3RTdXBwb3J0ZWQ7CiAgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oY2xpZW50KTsK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyb0hhcmZidXp6TkcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1
enpORy5jcHAKaW5kZXggNmVhMWEyNy4uOGQ1MDBmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpO
Ry5jcHAKQEAgLTM3LDcgKzM3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIEZv
bnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFRleHRS
dW4mIHJ1biwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0
Cit2b2lkIEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNv
bnN0IFRleHRSdW4mIHJ1biwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIGludCwgaW50KSBjb25z
dAogewogICAgIEdseXBoQnVmZmVyIGdseXBoQnVmZmVyOwogICAgIEhhcmZCdXp6U2hhcGVyIHNo
YXBlcih0aGlzLCBydW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCmluZGV4IDIwM2Q4
ZjMuLmJkMGI5N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKQEAgLTU3Myw2ICs1
NzMsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRqdXN0Rm9jdXNSaW5nTGluZVdpZHRoKGludCYg
d2lkdGgpCiB7CiAjaWYgUExBVEZPUk0oR1RLKQogICAgIHdpZHRoID0gMjsKKyNlbHNlCisgICAg
VU5VU0VEX1BBUkFNKHdpZHRoKTsKICNlbmRpZgogfQogCkBAIC02NjcsNyArNjY5LDcgQEAgdm9p
ZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdGb2N1c1JpbmcoY29uc3QgVmVjdG9yPEludFJlY3Q+JiBy
ZWN0cywgaW50IHdpZHRoLCBpbnQKICAgICBjYWlyb19yZXN0b3JlKGNyKTsKIH0KIAotdm9pZCBH
cmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lRm9yVGV4dChjb25zdCBGbG9hdFBvaW50JiBvcmlnaW4s
IGZsb2F0IHdpZHRoLCBib29sIHByaW50aW5nKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdM
aW5lRm9yVGV4dChjb25zdCBGbG9hdFBvaW50JiBvcmlnaW4sIGZsb2F0IHdpZHRoLCBib29sKQog
ewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTc3MCwx
MyArNzcyLDEzIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojp0cmFuc2xhdGUoZmxvYXQgeCwgZmxv
YXQgeSkKICAgICBtX2RhdGEtPnRyYW5zbGF0ZSh4LCB5KTsKIH0KIAotdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OnNldFBsYXRmb3JtRmlsbENvbG9yKGNvbnN0IENvbG9yJiBjb2wsIENvbG9yU3BhY2Ug
Y29sb3JTcGFjZSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybUZpbGxDb2xvcihj
b25zdCBDb2xvciYsIENvbG9yU3BhY2UpCiB7CiAgICAgLy8gQ2Fpcm8gY29udGV4dHMgY2FuJ3Qg
aG9sZCBzZXBhcmF0ZSBmaWxsIGFuZCBzdHJva2UgY29sb3JzCiAgICAgLy8gc28gd2Ugc2V0IHRo
ZW0ganVzdCBiZWZvcmUgd2UgYWN0dWFsbHkgZmlsbCBvciBzdHJva2UKIH0KIAotdm9pZCBHcmFw
aGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU3Ryb2tlQ29sb3IoY29uc3QgQ29sb3ImIGNvbCwgQ29s
b3JTcGFjZSBjb2xvclNwYWNlKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU3Ry
b2tlQ29sb3IoY29uc3QgQ29sb3ImLCBDb2xvclNwYWNlKQogewogICAgIC8vIENhaXJvIGNvbnRl
eHRzIGNhbid0IGhvbGQgc2VwYXJhdGUgZmlsbCBhbmQgc3Ryb2tlIGNvbG9ycwogICAgIC8vIHNv
IHdlIHNldCB0aGVtIGp1c3QgYmVmb3JlIHdlIGFjdHVhbGx5IGZpbGwgb3Igc3Ryb2tlCkBAIC04
MTUsNyArODE3LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU3Ryb2tlU3R5
bGUoU3Ryb2tlU3R5bGUgc3Ryb2tlU3R5bGUpCiAgICAgfQogfQogCi12b2lkIEdyYXBoaWNzQ29u
dGV4dDo6c2V0VVJMRm9yUmVjdChjb25zdCBLVVJMJiBsaW5rLCBjb25zdCBJbnRSZWN0JiBkZXN0
UmVjdCkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRVUkxGb3JSZWN0KGNvbnN0IEtVUkwmLCBj
b25zdCBJbnRSZWN0JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpAQCAtODY1LDcgKzg2
Nyw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjphZGRJbm5lclJvdW5kZWRSZWN0Q2xpcChjb25z
dCBJbnRSZWN0JiByZWN0LCBpbnQgdGhpY2tuZXNzCiAgICAgY2Fpcm9fc2V0X2ZpbGxfcnVsZShj
ciwgc2F2ZWRGaWxsUnVsZSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9y
bVNoYWRvdyhGbG9hdFNpemUgY29uc3QmIHNpemUsIGZsb2F0IGJsdXIsIENvbG9yIGNvbnN0JiBj
b2xvciwgQ29sb3JTcGFjZSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRv
dyhGbG9hdFNpemUgY29uc3QmIHNpemUsIGZsb2F0LCBDb2xvciBjb25zdCYsIENvbG9yU3BhY2Up
CiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTA5
NCw3ICsxMDk2LDcgQEAgc3RhdGljIGlubGluZSBGbG9hdFBvaW50IGdldFBoYXNlKGNvbnN0IEZs
b2F0UmVjdCYgZGVzdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlKQogICAgIHJldHVybiBwaGFzZTsK
IH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSb3VuZGVkUmVjdChjb25zdCBJbnRSZWN0
JiByLCBjb25zdCBJbnRTaXplJiB0b3BMZWZ0LCBjb25zdCBJbnRTaXplJiB0b3BSaWdodCwgY29u
c3QgSW50U2l6ZSYgYm90dG9tTGVmdCwgY29uc3QgSW50U2l6ZSYgYm90dG9tUmlnaHQsIGNvbnN0
IENvbG9yJiBjb2xvciwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQordm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmZpbGxSb3VuZGVkUmVjdChjb25zdCBJbnRSZWN0JiByLCBjb25zdCBJbnRTaXplJiB0b3BM
ZWZ0LCBjb25zdCBJbnRTaXplJiB0b3BSaWdodCwgY29uc3QgSW50U2l6ZSYgYm90dG9tTGVmdCwg
Y29uc3QgSW50U2l6ZSYgYm90dG9tUmlnaHQsIGNvbnN0IENvbG9yJiBjb2xvciwgQ29sb3JTcGFj
ZSkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0Nv
bnRleHRQbGF0Zm9ybVByaXZhdGVDYWlyby5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlQ2Fpcm8uaAppbmRleCA0
Y2M4YzgwLi4yNmM4OWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGVDYWlyby5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dFBsYXRm
b3JtUHJpdmF0ZUNhaXJvLmgKQEAgLTkwLDcgKzkwLDcgQEAgcHVibGljOgogICAgIHZvaWQgdHJh
bnNsYXRlKGZsb2F0LCBmbG9hdCkge30KICAgICB2b2lkIGNvbmNhdENUTShjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mKSB7fQogICAgIHZvaWQgc2V0Q1RNKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpIHt9
Ci0gICAgdm9pZCBzeW5jQ29udGV4dChjYWlyb190KiBjcikge30KKyAgICB2b2lkIHN5bmNDb250
ZXh0KGNhaXJvX3QqKSB7fQogI2VuZGlmCiAKICAgICBQbGF0Zm9ybUNvbnRleHRDYWlybyogcGxh
dGZvcm1Db250ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcAppbmRleCBmOGFjMzk1Li5mYzg3YWRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFn
ZUJ1ZmZlckNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcApAQCAtNDgsNyArNDgsNyBAQCB1c2luZyBuYW1lc3Bh
Y2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUltYWdlQnVmZmVyRGF0YTo6SW1hZ2VC
dWZmZXJEYXRhKGNvbnN0IEludFNpemUmIHNpemUpCitJbWFnZUJ1ZmZlckRhdGE6OkltYWdlQnVm
ZmVyRGF0YShjb25zdCBJbnRTaXplJikKICAgICA6IG1fc3VyZmFjZSgwKQogICAgICwgbV9wbGF0
Zm9ybUNvbnRleHQoMCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0ltYWdlQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vSW1hZ2VDYWlyby5jcHAKaW5kZXggNTFjYTY0My4uZjFhZjEzYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VDYWlyby5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VDYWly
by5jcHAKQEAgLTQzLDcgKzQzLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdm9pZCBJbWFn
ZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3Qm
IHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sCi0gICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29sb3JTcGFjZSBj
b2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVj
dCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBDb2xv
clNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCkK
IHsKICAgICBOYXRpdmVJbWFnZUNhaXJvKiBpbWFnZSA9IG5hdGl2ZUltYWdlRm9yQ3VycmVudEZy
YW1lKCk7CiAgICAgaWYgKCFpbWFnZSkgLy8gSWYgaXQncyB0b28gZWFybHkgd2Ugd29uJ3QgaGF2
ZSBhbiBpbWFnZSB5ZXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9lZmwvSWNvbkVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9l
ZmwvSWNvbkVmbC5jcHAKaW5kZXggNmM3ZWZkYy4uOWRjNDAzZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0ljb25FZmwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9JY29uRWZsLmNwcApAQCAtNTIsMTMgKzUyLDEz
IEBAIEljb246On5JY29uKCkKIHsKIH0KIAotUGFzc1JlZlB0cjxJY29uPiBJY29uOjpjcmVhdGVJ
Y29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcykKK1Bhc3NSZWZQdHI8
SWNvbj4gSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JikKIHsK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiAwOwogfQogCi12b2lkIEljb246OnBh
aW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3ZvaWQg
SWNvbjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcAppbmRleCA0ZTJk
ZDg1Li40OTA1MTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9mcmVldHlwZS9Gb250Q2FjaGVGcmVlVHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCkBAIC0xMDAsNyAr
MTAwLDcgQEAgY29uc3QgU2ltcGxlRm9udERhdGEqIEZvbnRDYWNoZTo6Z2V0Rm9udERhdGFGb3JD
aGFyYWN0ZXJzKGNvbnN0IEZvbnQmIGZvbnQsIGNvbnMKICAgICByZXR1cm4gZ2V0Q2FjaGVkRm9u
dERhdGEoJmFsdGVybmF0ZUZvbnREYXRhLCBEb05vdFJldGFpbik7CiB9CiAKLVNpbXBsZUZvbnRE
YXRhKiBGb250Q2FjaGU6OmdldFNpbWlsYXJGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnQmIGZv
bnQpCitTaW1wbGVGb250RGF0YSogRm9udENhY2hlOjpnZXRTaW1pbGFyRm9udFBsYXRmb3JtRGF0
YShjb25zdCBGb250JikKIHsKICAgICByZXR1cm4gMDsKIH0KQEAgLTExMyw3ICsxMTMsNyBAQCBT
aW1wbGVGb250RGF0YSogRm9udENhY2hlOjpnZXRMYXN0UmVzb3J0RmFsbGJhY2tGb250KGNvbnN0
IEZvbnREZXNjcmlwdGlvbiYgZm9udAogICAgIHJldHVybiBnZXRDYWNoZWRGb250RGF0YShmb250
RGVzY3JpcHRpb24sIHRpbWVzU3RyLCBmYWxzZSwgc2hvdWxkUmV0YWluKTsKIH0KIAotdm9pZCBG
b250Q2FjaGU6OmdldFRyYWl0c0luRmFtaWx5KGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5TmFt
ZSwgVmVjdG9yPHVuc2lnbmVkPiYgdHJhaXRzTWFza3MpCit2b2lkIEZvbnRDYWNoZTo6Z2V0VHJh
aXRzSW5GYW1pbHkoY29uc3QgQXRvbWljU3RyaW5nJiwgVmVjdG9yPHVuc2lnbmVkPiYpCiB7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9HU3RyZWFtZXJHV29ybGQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL0dTdHJlYW1lckdXb3JsZC5jcHAKaW5kZXggZmEwODhkZi4uMjEyZGVmYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJl
YW1lckdXb3JsZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0dTdHJlYW1lckdXb3JsZC5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgdXNpbmcgbmFtZXNw
YWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1nYm9vbGVhbiBnc3RHV29ybGRTeW5j
TWVzc2FnZUNhbGxiYWNrKEdzdEJ1cyogYnVzLCBHc3RNZXNzYWdlKiBtZXNzYWdlLCBncG9pbnRl
ciBkYXRhKQorZ2Jvb2xlYW4gZ3N0R1dvcmxkU3luY01lc3NhZ2VDYWxsYmFjayhHc3RCdXMqLCBH
c3RNZXNzYWdlKiBtZXNzYWdlLCBncG9pbnRlciBkYXRhKQogewogICAgIEFTU0VSVChHU1RfTUVT
U0FHRV9UWVBFKG1lc3NhZ2UpID09IEdTVF9NRVNTQUdFX0VMRU1FTlQpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDI0OTc1ZGEuLjZm
NTczNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
Y3BwCkBAIC0xNTQzLDcgKzE1NDMsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6c2V0U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogICAgIG1fc2l6ZSA9IHNpemU7CiB9CiAK
LXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzZXRWaXNpYmxlKGJvb2wgdmlzaWJs
ZSkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzZXRWaXNpYmxlKGJvb2wpCiB7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAKaW5kZXggMDZlZGQzMi4uYzJj
MGJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAKQEAgLTM2Miw3ICszNjIs
NyBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0VmlkZW9TaW5rUHJvcG9zZUFsbG9jYXRpb24oR3N0
QmFzZVNpbmsqIGJhc2VTaW5rLCBHc3RRdWVyeQogI2VuZGlmCiAKICNpZm5kZWYgR1NUX0FQSV9W
RVJTSU9OXzEKLXN0YXRpYyB2b2lkIHdlYmtpdFZpZGVvU2lua01hcnNoYWxWb2lkQW5kTWluaU9i
amVjdChHQ2xvc3VyZSogY2xvc3VyZSwgR1ZhbHVlKiByZXR1cm5WYWx1ZSwgZ3VpbnQgcGFyYW1l
dGVyc051bWJlciwgY29uc3QgR1ZhbHVlKiBwYXJhbWV0ZXJWYWx1ZXMsIGdwb2ludGVyIGludm9j
YXRpb25IaW50LCBncG9pbnRlciBtYXJzaGFsRGF0YSkKK3N0YXRpYyB2b2lkIHdlYmtpdFZpZGVv
U2lua01hcnNoYWxWb2lkQW5kTWluaU9iamVjdChHQ2xvc3VyZSogY2xvc3VyZSwgR1ZhbHVlKiwg
Z3VpbnQgcGFyYW1ldGVyc051bWJlciwgY29uc3QgR1ZhbHVlKiBwYXJhbWV0ZXJWYWx1ZXMsIGdw
b2ludGVyLCBncG9pbnRlciBtYXJzaGFsRGF0YSkKIHsKICAgICB0eXBlZGVmIHZvaWQgKCptYXJz
aGFsZnVuY19WT0lEX19NSU5JT0JKRUNUKSAoZ3BvaW50ZXIgb2JqLCBncG9pbnRlciBhcmcxLCBn
cG9pbnRlciBkYXRhMik7CiAgICAgbWFyc2hhbGZ1bmNfVk9JRF9fTUlOSU9CSkVDVCBjYWxsYmFj
azsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggNzUw
ODEyMi4uMTA5MTg2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1l
ci5jcHAKQEAgLTYzMCw3ICs2MzAsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0V2ViU3JjU2V0
VXJpKEdzdFVSSUhhbmRsZXIqIGhhbmRsZXIsIGNvbnN0IGdjaGFyKiB1cmkpCiB9CiAjZW5kaWYK
IAotc3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjVXJpSGFuZGxlckluaXQoZ3BvaW50ZXIgZ0lmYWNl
LCBncG9pbnRlciBpZmFjZURhdGEpCitzdGF0aWMgdm9pZCB3ZWJLaXRXZWJTcmNVcmlIYW5kbGVy
SW5pdChncG9pbnRlciBnSWZhY2UsIGdwb2ludGVyKQogewogICAgIEdzdFVSSUhhbmRsZXJJbnRl
cmZhY2UqIGlmYWNlID0gKEdzdFVSSUhhbmRsZXJJbnRlcmZhY2UgKikgZ0lmYWNlOwogCkBAIC02
NTUsNyArNjU1LDcgQEAgc3RhdGljIGdib29sZWFuIHdlYktpdFdlYlNyY05lZWREYXRhTWFpbkNi
KFdlYktpdFdlYlNyYyogc3JjKQogICAgIHJldHVybiBGQUxTRTsKIH0KIAotc3RhdGljIHZvaWQg
d2ViS2l0V2ViU3JjTmVlZERhdGFDYihHc3RBcHBTcmMqIGFwcHNyYywgZ3VpbnQgbGVuZ3RoLCBn
cG9pbnRlciB1c2VyRGF0YSkKK3N0YXRpYyB2b2lkIHdlYktpdFdlYlNyY05lZWREYXRhQ2IoR3N0
QXBwU3JjKiwgZ3VpbnQgbGVuZ3RoLCBncG9pbnRlciB1c2VyRGF0YSkKIHsKICAgICBXZWJLaXRX
ZWJTcmMqIHNyYyA9IFdFQktJVF9XRUJfU1JDKHVzZXJEYXRhKTsKICAgICBXZWJLaXRXZWJTcmNQ
cml2YXRlKiBwcml2ID0gc3JjLT5wcml2OwpAQCAtNjg2LDcgKzY4Niw3IEBAIHN0YXRpYyBnYm9v
bGVhbiB3ZWJLaXRXZWJTcmNFbm91Z2hEYXRhTWFpbkNiKFdlYktpdFdlYlNyYyogc3JjKQogICAg
IHJldHVybiBGQUxTRTsKIH0KIAotc3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjRW5vdWdoRGF0YUNi
KEdzdEFwcFNyYyogYXBwc3JjLCBncG9pbnRlciB1c2VyRGF0YSkKK3N0YXRpYyB2b2lkIHdlYktp
dFdlYlNyY0Vub3VnaERhdGFDYihHc3RBcHBTcmMqLCBncG9pbnRlciB1c2VyRGF0YSkKIHsKICAg
ICBXZWJLaXRXZWJTcmMqIHNyYyA9IFdFQktJVF9XRUJfU1JDKHVzZXJEYXRhKTsKICAgICBXZWJL
aXRXZWJTcmNQcml2YXRlKiBwcml2ID0gc3JjLT5wcml2OwpAQCAtNzExLDcgKzcxMSw3IEBAIHN0
YXRpYyBnYm9vbGVhbiB3ZWJLaXRXZWJTcmNTZWVrTWFpbkNiKFdlYktpdFdlYlNyYyogc3JjKQog
ICAgIHJldHVybiBGQUxTRTsKIH0KIAotc3RhdGljIGdib29sZWFuIHdlYktpdFdlYlNyY1NlZWtE
YXRhQ2IoR3N0QXBwU3JjKiBhcHBzcmMsIGd1aW50NjQgb2Zmc2V0LCBncG9pbnRlciB1c2VyRGF0
YSkKK3N0YXRpYyBnYm9vbGVhbiB3ZWJLaXRXZWJTcmNTZWVrRGF0YUNiKEdzdEFwcFNyYyosIGd1
aW50NjQgb2Zmc2V0LCBncG9pbnRlciB1c2VyRGF0YSkKIHsKICAgICBXZWJLaXRXZWJTcmMqIHNy
YyA9IFdFQktJVF9XRUJfU1JDKHVzZXJEYXRhKTsKICAgICBXZWJLaXRXZWJTcmNQcml2YXRlKiBw
cml2ID0gc3JjLT5wcml2OwpAQCAtODUzLDcgKzg1Myw3IEBAIHZvaWQgU3RyZWFtaW5nQ2xpZW50
OjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlCiAgICAgICAgIG5vdGlmeUdzdFRhZ3NPblBhZChHU1RfRUxFTUVOVChtX3NyYyksIG1fc3Jj
LT5wcml2LT5zcmNwYWQsIHRhZ3MpOwogfQogCi12b2lkIFN0cmVhbWluZ0NsaWVudDo6ZGlkUmVj
ZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgY2hhciogZGF0YSwgaW50IGxl
bmd0aCwgaW50IGVuY29kZWREYXRhTGVuZ3RoKQordm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRpZFJl
Y2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IGNoYXIqIGRhdGEsIGludCBs
ZW5ndGgsIGludCkKIHsKICAgICBXZWJLaXRXZWJTcmNQcml2YXRlKiBwcml2ID0gbV9zcmMtPnBy
aXY7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZi
dXp6L25nL0hhcmZCdXp6TkdGYWNlQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvaGFyZmJ1enovbmcvSGFyZkJ1enpOR0ZhY2VDYWlyby5jcHAKaW5kZXggMGY5YmI0
My4uNTJmY2E3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
aGFyZmJ1enovbmcvSGFyZkJ1enpOR0ZhY2VDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovbmcvSGFyZkJ1enpOR0ZhY2VDYWlyby5jcHAKQEAg
LTkwLDcgKzkwLDcgQEAgc3RhdGljIHZvaWQgQ2Fpcm9HZXRHbHlwaFdpZHRoQW5kRXh0ZW50cyhj
YWlyb19zY2FsZWRfZm9udF90KiBzY2FsZWRGb250LCBoYl9jb2QKICAgICB9CiB9CiAKLXN0YXRp
YyBoYl9ib29sX3QgaGFyZmJ1enpHZXRHbHlwaChoYl9mb250X3QqIGhiRm9udCwgdm9pZCogZm9u
dERhdGEsIGhiX2NvZGVwb2ludF90IHVuaWNvZGUsIGhiX2NvZGVwb2ludF90IHZhcmlhdGlvblNl
bGVjdG9yLCBoYl9jb2RlcG9pbnRfdCogZ2x5cGgsIHZvaWQqIHVzZXJEYXRhKQorc3RhdGljIGhi
X2Jvb2xfdCBoYXJmYnV6ekdldEdseXBoKGhiX2ZvbnRfdCosIHZvaWQqIGZvbnREYXRhLCBoYl9j
b2RlcG9pbnRfdCB1bmljb2RlLCBoYl9jb2RlcG9pbnRfdCwgaGJfY29kZXBvaW50X3QqIGdseXBo
LCB2b2lkKikKIHsKICAgICBGb250UGxhdGZvcm1EYXRhKiBwbGF0Zm9ybURhdGEgPSByZWludGVy
cHJldF9jYXN0PEZvbnRQbGF0Zm9ybURhdGEqPihmb250RGF0YSk7CiAgICAgY2Fpcm9fc2NhbGVk
X2ZvbnRfdCogc2NhbGVkRm9udCA9IHBsYXRmb3JtRGF0YS0+c2NhbGVkRm9udCgpOwpAQCAtMTA4
LDcgKzEwOCw3IEBAIHN0YXRpYyBoYl9ib29sX3QgaGFyZmJ1enpHZXRHbHlwaChoYl9mb250X3Qq
IGhiRm9udCwgdm9pZCogZm9udERhdGEsIGhiX2NvZGVwb2luCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLXN0YXRpYyBoYl9wb3NpdGlvbl90IGhhcmZidXp6R2V0R2x5cGhIb3Jpem9udGFsQWR2YW5j
ZShoYl9mb250X3QqIGhiRm9udCwgdm9pZCogZm9udERhdGEsIGhiX2NvZGVwb2ludF90IGdseXBo
LCB2b2lkKiB1c2VyRGF0YSkKK3N0YXRpYyBoYl9wb3NpdGlvbl90IGhhcmZidXp6R2V0R2x5cGhI
b3Jpem9udGFsQWR2YW5jZShoYl9mb250X3QqLCB2b2lkKiBmb250RGF0YSwgaGJfY29kZXBvaW50
X3QgZ2x5cGgsIHZvaWQqKQogewogICAgIEZvbnRQbGF0Zm9ybURhdGEqIHBsYXRmb3JtRGF0YSA9
IHJlaW50ZXJwcmV0X2Nhc3Q8Rm9udFBsYXRmb3JtRGF0YSo+KGZvbnREYXRhKTsKICAgICBjYWly
b19zY2FsZWRfZm9udF90KiBzY2FsZWRGb250ID0gcGxhdGZvcm1EYXRhLT5zY2FsZWRGb250KCk7
CkBAIC0xMTksMTQgKzExOSwxNCBAQCBzdGF0aWMgaGJfcG9zaXRpb25fdCBoYXJmYnV6ekdldEds
eXBoSG9yaXpvbnRhbEFkdmFuY2UoaGJfZm9udF90KiBoYkZvbnQsIHZvaWQqCiAgICAgcmV0dXJu
IGFkdmFuY2U7CiB9CiAKLXN0YXRpYyBoYl9ib29sX3QgaGFyZmJ1enpHZXRHbHlwaEhvcml6b250
YWxPcmlnaW4oaGJfZm9udF90KiBoYkZvbnQsIHZvaWQqIGZvbnREYXRhLCBoYl9jb2RlcG9pbnRf
dCBnbHlwaCwgaGJfcG9zaXRpb25fdCogeCwgaGJfcG9zaXRpb25fdCogeSwgdm9pZCogdXNlckRh
dGEpCitzdGF0aWMgaGJfYm9vbF90IGhhcmZidXp6R2V0R2x5cGhIb3Jpem9udGFsT3JpZ2luKGhi
X2ZvbnRfdCosIHZvaWQqLCBoYl9jb2RlcG9pbnRfdCwgaGJfcG9zaXRpb25fdCosIGhiX3Bvc2l0
aW9uX3QqLCB2b2lkKikKIHsKICAgICAvLyBKdXN0IHJldHVybiB0cnVlLCBmb2xsb3dpbmcgdGhl
IHdheSB0aGF0IEhhcmZidXp6LUZyZWVUeXBlCiAgICAgLy8gaW1wbGVtZW50YXRpb24gZG9lcy4K
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGhiX2Jvb2xfdCBoYXJmYnV6ekdldEdseXBo
RXh0ZW50cyhoYl9mb250X3QqIGhiRm9udCwgdm9pZCogZm9udERhdGEsIGhiX2NvZGVwb2ludF90
IGdseXBoLCBoYl9nbHlwaF9leHRlbnRzX3QqIGV4dGVudHMsIHZvaWQqIHVzZXJEYXRhKQorc3Rh
dGljIGhiX2Jvb2xfdCBoYXJmYnV6ekdldEdseXBoRXh0ZW50cyhoYl9mb250X3QqLCB2b2lkKiBm
b250RGF0YSwgaGJfY29kZXBvaW50X3QgZ2x5cGgsIGhiX2dseXBoX2V4dGVudHNfdCogZXh0ZW50
cywgdm9pZCopCiB7CiAgICAgRm9udFBsYXRmb3JtRGF0YSogcGxhdGZvcm1EYXRhID0gcmVpbnRl
cnByZXRfY2FzdDxGb250UGxhdGZvcm1EYXRhKj4oZm9udERhdGEpOwogICAgIGNhaXJvX3NjYWxl
ZF9mb250X3QqIHNjYWxlZEZvbnQgPSBwbGF0Zm9ybURhdGEtPnNjYWxlZEZvbnQoKTsKQEAgLTE1
Myw3ICsxNTMsNyBAQCBzdGF0aWMgaGJfZm9udF9mdW5jc190KiBoYXJmYnV6ekNhaXJvVGV4dEdl
dEZvbnRGdW5jcygpCiAgICAgcmV0dXJuIGhhcmZidXp6Q2Fpcm9Gb250RnVuY3M7CiB9CiAKLXN0
YXRpYyBoYl9ibG9iX3QqIGhhcmZidXp6Q2Fpcm9HZXRUYWJsZShoYl9mYWNlX3QqIGZhY2UsIGhi
X3RhZ190IHRhZywgdm9pZCogdXNlckRhdGEpCitzdGF0aWMgaGJfYmxvYl90KiBoYXJmYnV6ekNh
aXJvR2V0VGFibGUoaGJfZmFjZV90KiwgaGJfdGFnX3QgdGFnLCB2b2lkKiB1c2VyRGF0YSkKIHsK
ICAgICBGb250UGxhdGZvcm1EYXRhKiBmb250ID0gcmVpbnRlcnByZXRfY2FzdDxGb250UGxhdGZv
cm1EYXRhKj4odXNlckRhdGEpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29kZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvanBlZy9KUEVHSW1hZ2VEZWNvZGVyLmNwcAppbmRl
eCAyNzVmZmMwLi4yYWY0ZGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
bWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHAKQEAg
LTE1Niw2ICsxNTYsNyBAQCBzdGF0aWMgQ29sb3JQcm9maWxlIHJlYWRDb2xvclByb2ZpbGUoanBl
Z19kZWNvbXByZXNzX3N0cnVjdCogaW5mbykKICAgICBmcmVlKHByb2ZpbGUpOwogICAgIHJldHVy
biBjb2xvclByb2ZpbGU7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShpbmZvKTsKICAgICByZXR1
cm4gQ29sb3JQcm9maWxlKCk7CiAjZW5kaWYKIH0KQEAgLTQ3NSw3ICs0NzYsNyBAQCB2b2lkIGVy
cm9yX2V4aXQoal9jb21tb25fcHRyIGNpbmZvKQogICAgIGxvbmdqbXAoZXJyLT5zZXRqbXBfYnVm
ZmVyLCAtMSk7CiB9CiAKLXZvaWQgaW5pdF9zb3VyY2Uoal9kZWNvbXByZXNzX3B0ciBqZCkKK3Zv
aWQgaW5pdF9zb3VyY2Uoal9kZWNvbXByZXNzX3B0cikKIHsKIH0KIApAQCAtNDg1LDcgKzQ4Niw3
IEBAIHZvaWQgc2tpcF9pbnB1dF9kYXRhKGpfZGVjb21wcmVzc19wdHIgamQsIGxvbmcgbnVtX2J5
dGVzKQogICAgIHNyYy0+ZGVjb2Rlci0+c2tpcEJ5dGVzKG51bV9ieXRlcyk7CiB9CiAKLWJvb2xl
YW4gZmlsbF9pbnB1dF9idWZmZXIoal9kZWNvbXByZXNzX3B0ciBqZCkKK2Jvb2xlYW4gZmlsbF9p
bnB1dF9idWZmZXIoal9kZWNvbXByZXNzX3B0cikKIHsKICAgICAvLyBPdXIgZGVjb2RlIHN0ZXAg
YWx3YXlzIHNldHMgdGhpbmdzIHVwIHByb3Blcmx5LCBzbyBpZiB0aGlzIG1ldGhvZCBpcyBldmVy
CiAgICAgLy8gY2FsbGVkLCB0aGVuIHdlIGhhdmUgaGl0IHRoZSBlbmQgb2YgdGhlIGJ1ZmZlci4g
IEEgcmV0dXJuIHZhbHVlIG9mIGZhbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1hZ2VEZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJbWFnZURlY29kZXIuY3BwCmluZGV4
IDg1MWI2ZjkuLjQ3MDI0MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lt
YWdlLWRlY29kZXJzL3BuZy9QTkdJbWFnZURlY29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJbWFnZURlY29kZXIuY3BwCkBAIC00MDEs
NyArNDAxLDcgQEAgdm9pZCBQTkdJbWFnZURlY29kZXI6OmhlYWRlckF2YWlsYWJsZSgpCiAgICAg
fQogfQogCi12b2lkIFBOR0ltYWdlRGVjb2Rlcjo6cm93QXZhaWxhYmxlKHVuc2lnbmVkIGNoYXIq
IHJvd0J1ZmZlciwgdW5zaWduZWQgcm93SW5kZXgsIGludCBpbnRlcmxhY2VQYXNzKQordm9pZCBQ
TkdJbWFnZURlY29kZXI6OnJvd0F2YWlsYWJsZSh1bnNpZ25lZCBjaGFyKiByb3dCdWZmZXIsIHVu
c2lnbmVkIHJvd0luZGV4LCBpbnQpCiB7CiAgICAgaWYgKG1fZnJhbWVCdWZmZXJDYWNoZS5pc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9Db29raWVTdG9yYWdlU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llU3RvcmFnZVNvdXAuY3BwCmluZGV4IGYzMDllNWQ4
Li5iYzg3YWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvQ29va2llU3RvcmFnZVNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9Db29raWVTdG9yYWdlU291cC5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIHNldENvb2tpZVN0b3JhZ2VQcml2YXRlQnJvd3NpbmdF
bmFibGVkKGJvb2wgZW5hYmxlZCkKK3ZvaWQgc2V0Q29va2llU3RvcmFnZVByaXZhdGVCcm93c2lu
Z0VuYWJsZWQoYm9vbCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0ROU1NvdXAuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0ROU1NvdXAuY3BwCmluZGV4IDFmMjJlMjEu
Ljk0YjYwYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9ETlNTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
RE5TU291cC5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgYm9vbCBETlNSZXNvbHZlUXVldWU6OnBsYXRm
b3JtUHJveHlJc0VuYWJsZWRJblN5c3RlbVByZWZlcmVuY2VzKCkKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKLXN0YXRpYyB2b2lkIHJlc29sdmVkQ2FsbGJhY2soU291cEFkZHJlc3MqIHNvdXBBZGRy
ZXNzLCBndWludCBzdGF0dXMsIHZvaWQqIHVzZXJEYXRhKQorc3RhdGljIHZvaWQgcmVzb2x2ZWRD
YWxsYmFjayhTb3VwQWRkcmVzcyosIGd1aW50LCB2b2lkKikKIHsKICAgICBETlNSZXNvbHZlUXVl
dWU6OnNoYXJlZCgpLmRlY3JlbWVudFJlcXVlc3RDb3VudCgpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Byb3h5UmVzb2x2ZXJTb3VwLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Qcm94eVJlc29sdmVyU291cC5j
cHAKaW5kZXggNDg0MDZmMy4uNmY2ZWQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9zb3VwL1Byb3h5UmVzb2x2ZXJTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUHJveHlSZXNvbHZlclNvdXAuY3BwCkBAIC01NSw3
ICs1NSw3IEBAIGVudW0gewogICAgIExBU1RfUFJPUAogfTsKIAotc3RhdGljIHZvaWQgc291cF9w
cm94eV9yZXNvbHZlcl93a19pbml0KFNvdXBQcm94eVJlc29sdmVyV2sqIHJlc29sdmVyV2spCitz
dGF0aWMgdm9pZCBzb3VwX3Byb3h5X3Jlc29sdmVyX3drX2luaXQoU291cFByb3h5UmVzb2x2ZXJX
ayopCiB7CiB9CiAKQEAgLTE0NCw3ICsxNDQsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gaWRsZV9yZXR1
cm5fcHJveHlfdXJpKHZvaWQqIGRhdGEpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGF0aWMg
dm9pZCBzb3VwUHJveHlSZXNvbHZlcldrR2V0UHJveHlVUklBc3luYyhTb3VwUHJveHlVUklSZXNv
bHZlciogcHJveHlSZXNvbHZlciwgU291cFVSSSogdXJpLCBHTWFpbkNvbnRleHQqIGFzeW5jQ29u
dGV4dCwgR0NhbmNlbGxhYmxlKiBjYW5jZWxsYWJsZSwgU291cFByb3h5VVJJUmVzb2x2ZXJDYWxs
YmFjayBjYWxsYmFjaywgdm9pZCogdXNlckRhdGEpCitzdGF0aWMgdm9pZCBzb3VwUHJveHlSZXNv
bHZlcldrR2V0UHJveHlVUklBc3luYyhTb3VwUHJveHlVUklSZXNvbHZlciogcHJveHlSZXNvbHZl
ciwgU291cFVSSSogdXJpLCBHTWFpbkNvbnRleHQqIGFzeW5jQ29udGV4dCwgR0NhbmNlbGxhYmxl
KiwgU291cFByb3h5VVJJUmVzb2x2ZXJDYWxsYmFjayBjYWxsYmFjaywgdm9pZCogdXNlckRhdGEp
CiB7CiAgICAgU291cFdrQXN5bmNEYXRhKiBzc2FkOwogCkBAIC0xNTYsNyArMTU2LDcgQEAgc3Rh
dGljIHZvaWQgc291cFByb3h5UmVzb2x2ZXJXa0dldFByb3h5VVJJQXN5bmMoU291cFByb3h5VVJJ
UmVzb2x2ZXIqIHByb3h5UmVzb2wKICAgICBzb3VwX2FkZF9jb21wbGV0aW9uKGFzeW5jQ29udGV4
dCwgaWRsZV9yZXR1cm5fcHJveHlfdXJpLCBzc2FkKTsKIH0KIAotc3RhdGljIHVpbnQgc291cFBy
b3h5UmVzb2x2ZXJXa0dldFByb3h5VVJJU3luYyhTb3VwUHJveHlVUklSZXNvbHZlciogcHJveHlS
ZXNvbHZlciwgU291cFVSSSogdXJpLCBHQ2FuY2VsbGFibGUqIGNhbmNlbGxhYmxlLCBTb3VwVVJJ
KiogcHJveHlVUkkpCitzdGF0aWMgdWludCBzb3VwUHJveHlSZXNvbHZlcldrR2V0UHJveHlVUklT
eW5jKFNvdXBQcm94eVVSSVJlc29sdmVyKiBwcm94eVJlc29sdmVyLCBTb3VwVVJJKiB1cmksIEdD
YW5jZWxsYWJsZSosIFNvdXBVUkkqKiBwcm94eVVSSSkKIHsKICAgICBTb3VwUHJveHlSZXNvbHZl
cldrUHJpdmF0ZSogcHJpdiA9IFNPVVBfUFJPWFlfUkVTT0xWRVJfV0tfR0VUX1BSSVZBVEUocHJv
eHlSZXNvbHZlcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXggMzBhMmRlNC4uNTFjOTE4
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291
cmNlSGFuZGxlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKQEAgLTQxMCw3ICs0MTAsNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgaGFzVW5pZ25vcmVkVExTRXJyb3JzKFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCiAg
ICAgICAgICYmICFhbGxvd3NBbnlIVFRQU0NlcnRpZmljYXRlSG9zdHMoKS5jb250YWlucyhoYW5k
bGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpLmhvc3QoKS5sb3dlcigpKTsKIH0KIAotc3RhdGljIHZv
aWQgc2VuZFJlcXVlc3RDYWxsYmFjayhHT2JqZWN0KiBzb3VyY2UsIEdBc3luY1Jlc3VsdCogcmVz
LCBncG9pbnRlciBkYXRhKQorc3RhdGljIHZvaWQgc2VuZFJlcXVlc3RDYWxsYmFjayhHT2JqZWN0
KiwgR0FzeW5jUmVzdWx0KiByZXMsIGdwb2ludGVyIGRhdGEpCiB7CiAgICAgUmVmUHRyPFJlc291
cmNlSGFuZGxlPiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRsZSo+KGRhdGEpOwog
CkBAIC01NDMsNyArNTQzLDcgQEAgc3RhdGljIHZvaWQgYWRkRW5jb2RlZEJsb2JUb1NvdXBNZXNz
YWdlQm9keShTb3VwTWVzc2FnZSogbWVzc2FnZSwgY29uc3QgRm9ybURhdGEKIH0KICNlbmRpZiAv
LyBFTkFCTEUoQkxPQikKIAotc3RhdGljIGJvb2wgYWRkRm9ybUVsZW1lbnRzVG9Tb3VwTWVzc2Fn
ZShTb3VwTWVzc2FnZSogbWVzc2FnZSwgY29uc3QgY2hhciogY29udGVudFR5cGUsIEZvcm1EYXRh
KiBodHRwQm9keSwgdW5zaWduZWQgbG9uZyYgdG90YWxCb2R5U2l6ZSkKK3N0YXRpYyBib29sIGFk
ZEZvcm1FbGVtZW50c1RvU291cE1lc3NhZ2UoU291cE1lc3NhZ2UqIG1lc3NhZ2UsIGNvbnN0IGNo
YXIqLCBGb3JtRGF0YSogaHR0cEJvZHksIHVuc2lnbmVkIGxvbmcmIHRvdGFsQm9keVNpemUpCiB7
CiAgICAgc291cF9tZXNzYWdlX2JvZHlfc2V0X2FjY3VtdWxhdGUobWVzc2FnZS0+cmVxdWVzdF9i
b2R5LCBGQUxTRSk7CiAgICAgc2l6ZV90IG51bUVsZW1lbnRzID0gaHR0cEJvZHktPmVsZW1lbnRz
KCkuc2l6ZSgpOwpAQCAtNTk0LDcgKzU5NCw3IEBAIHN0YXRpYyB2b2lkIHdyb3RlQm9keUNhbGxi
YWNrKFNvdXBNZXNzYWdlKiwgZ3BvaW50ZXIgZGF0YSkKICAgICBkLT5tX3Jlc3BvbnNlLnJlc291
cmNlTG9hZFRpbWluZygpLT5zZW5kRW5kID0gbWlsaXNlY29uZHNTaW5jZVJlcXVlc3QoZC0+bV9y
ZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVxdWVzdFRpbWUpOwogfQogCi1zdGF0aWMg
dm9pZCByZXF1ZXN0U3RhcnRlZENhbGxiYWNrKFNvdXBTZXNzaW9uKiwgU291cE1lc3NhZ2UqIHNv
dXBNZXNzYWdlLCBTb3VwU29ja2V0KiwgZ3BvaW50ZXIgZGF0YSkKK3N0YXRpYyB2b2lkIHJlcXVl
c3RTdGFydGVkQ2FsbGJhY2soU291cFNlc3Npb24qLCBTb3VwTWVzc2FnZSogc291cE1lc3NhZ2Us
IFNvdXBTb2NrZXQqLCBncG9pbnRlcikKIHsKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhh
bmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4oZ19vYmplY3RfZ2V0X2RhdGEoR19P
QkpFQ1Qoc291cE1lc3NhZ2UpLCAiaGFuZGxlIikpOwogICAgIGlmICghaGFuZGxlKQpAQCAtOTA1
LDcgKzkwNSw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0CiAgICAgc3luY0xvYWRlci5ydW4o
KTsKIH0KIAotc3RhdGljIHZvaWQgY2xvc2VDYWxsYmFjayhHT2JqZWN0KiBzb3VyY2UsIEdBc3lu
Y1Jlc3VsdCogcmVzLCBncG9pbnRlciBkYXRhKQorc3RhdGljIHZvaWQgY2xvc2VDYWxsYmFjayhH
T2JqZWN0KiwgR0FzeW5jUmVzdWx0KiByZXMsIGdwb2ludGVyIGRhdGEpCiB7CiAgICAgUmVmUHRy
PFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRsZSo+KGRh
dGEpOwogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFs
KCk7CkBAIC05MTksNyArOTE5LDcgQEAgc3RhdGljIHZvaWQgY2xvc2VDYWxsYmFjayhHT2JqZWN0
KiBzb3VyY2UsIEdBc3luY1Jlc3VsdCogcmVzLCBncG9pbnRlciBkYXRhKQogICAgIGNsZWFudXBT
b3VwUmVxdWVzdE9wZXJhdGlvbihoYW5kbGUuZ2V0KCkpOwogfQogCi1zdGF0aWMgdm9pZCByZWFk
Q2FsbGJhY2soR09iamVjdCogc291cmNlLCBHQXN5bmNSZXN1bHQqIGFzeW5jUmVzdWx0LCBncG9p
bnRlciBkYXRhKQorc3RhdGljIHZvaWQgcmVhZENhbGxiYWNrKEdPYmplY3QqLCBHQXN5bmNSZXN1
bHQqIGFzeW5jUmVzdWx0LCBncG9pbnRlciBkYXRhKQogewogICAgIFJlZlB0cjxSZXNvdXJjZUhh
bmRsZT4gaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihkYXRhKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKaW5kZXggNjZjMzdlYy4uZTQyNTlj
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCkBAIC02OTMsNiAr
NjkzLDkgQEAgdm9pZCBSZW5kZXJUaGVtZTo6YWRqdXN0UmVwYWludFJlY3QoY29uc3QgUmVuZGVy
T2JqZWN0KiBvLCBJbnRSZWN0JiByKQogewogI2lmIFVTRShORVdfVEhFTUUpCiAgICAgbV90aGVt
ZS0+aW5mbGF0ZUNvbnRyb2xQYWludFJlY3Qoby0+c3R5bGUoKS0+YXBwZWFyYW5jZSgpLCBjb250
cm9sU3RhdGVzRm9yUmVuZGVyZXIobyksIHIsIG8tPnN0eWxlKCktPmVmZmVjdGl2ZVpvb20oKSk7
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShvKTsKKyAgICBVTlVTRURfUEFSQU0ocik7CiAjZW5k
aWYKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164045</attachid>
            <date>2012-09-13 21:53:43 -0700</date>
            <delta_ts>2012-09-13 23:45:37 -0700</delta_ts>
            <desc>patch</desc>
            <filename>fix_webcore_unused_parameter_warning_2.txt</filename>
            <type>text/plain</type>
            <size>49086</size>
            <attacher name="Kangil Han">kangil.han</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzMTUyYzk3Li44NGQ4NDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQ1
IEBACisyMDEyLTA5LTEzICBLYW5naWwgSGFuICA8a2FuZ2lsLmhhbkBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBGaXggdW51c2VkIHBhcmFtZXRlciBjb21waWxlIHdhcm5pbmdzIGluIFdlYkNvcmUu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjcxMgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeGVkIHVu
dXNlZCBwYXJhbWV0ZXIgY29tcGlsZSB3YXJuaW5nIG1lc3NhZ2VzKC1XdW51c2VkLXBhcmFtZXRl
cikgZHVyaW5nIEVGTCBidWlsZC4KKyAgICAgICAgVGhlcmUgYXJlIHR3byBraW5kcyBvZiBzdHVm
ZiByZWxhdGVkIHRvIHRoaXMgd2FybmluZ3MuCisgICAgICAgIEZpcnN0IG9uZSBpcyB0aGF0IHRo
ZSBwYXJhbWV0ZXIgdmFsdWUgaGFzIG5vdCBiZWVuIHVzZWQgYW55d2hlcmUgaW5zaWRlIHRoZSBm
dW5jdGlvbi4KKyAgICAgICAgT3RoZXIgb25lIGlzIHRoYXQgdXNhYmlsaXR5IG9mIHBhcmFtZXRl
ciB2YWx1ZSBpcyBkZXBlbmRlZCBvbiBvcHRpb24sIGkuZS4gQUNDRVNTSUJJTElUWS4KKworICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6c2V0RW5oYW5jZWRVc2VySW50ZXJmYWNlQWNjZXNzaWJpbGl0eSk6Cisg
ICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclBhZ2VBZ2VudDo6c2V0R2VvbG9jYXRpb25PdmVycmlkZSk6CisgICAgICAgICog
bG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRl
ckNsaWVudDo6cmVnaXN0ZXJJbnRlbnRTZXJ2aWNlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpsYXllclRyZWVBc1RleHQpOgorICAgICAgICAq
IHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0U2Ny
b2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZCk6CisgICAgICAgICogcGFnZS9lZmwvRXZl
bnRIYW5kbGVyRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dGFic1Rv
QWxsRm9ybUNvbnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6cGFzc01v
dXNlRG93bkV2ZW50VG9XaWRnZXQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNjcm9sbExheWVyRm9yRnJhbWVW
aWV3KToKKyAgICAgICAgKiBwbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6bWFpbkJ1bmRsZUlzRXF1YWxUbyk6CisgICAgICAgICogcGxhdGZv
cm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpwbGF0Zm9y
bVNldFNjcm9sbE9yaWdpbik6CisgICAgICAgICogcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2lu
Z1N0b3JlQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlU3VyZmFjZUZvckJhY2tp
bmdTdG9yZSk6CisgICAgICAgICogcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51RWZsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnBsYXRmb3JtTWVudURlc2NyaXB0aW9uKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9lZmwvQ29udGV4dE1lbnVJdGVtRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
eHRNZW51SXRlbTo6Q29udGV4dE1lbnVJdGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvRHJh
Z0RhdGFFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6OmFzRmlsZW5hbWVzKToK
KyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpjb250YWluc1VSTCk6CisgICAgICAgIChXZWJD
b3JlOjpEcmFnRGF0YTo6YXNVUkwpOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9HYW1lcGFkc0Vm
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHYW1lcGFkc0VmbDo6b25HYW1lUGFkQ2hhbmdlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjppbWFnZVRpdGxlKToKKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsaXplZE1lZGlh
Q29udHJvbEVsZW1lbnRTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6bG9jYWxpemVkTWVkaWFD
b250cm9sRWxlbWVudEhlbHBUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsaXplZE1lZGlh
VGltZURlc2NyaXB0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVmbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6
OlBhc3RlYm9hcmQ6OmRvY3VtZW50RnJhZ21lbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9Q
bGF0Zm9ybVNjcmVlbkVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5SZWN0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVFZmw6OmFkanVzdFNsaWRlclRyYWNrU3R5bGUpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWVFZmw6OnN5c3RlbUZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVFZmw6OnBhaW50TWVkaWFTbGlkZXJUaHVtYik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZUVmbDo6cGFpbnRNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5lcik6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6cGFpbnRNZWRpYVZvbHVtZVNsaWRlclRyYWNrKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lRWZsOjpwYWludE1lZGlhVm9sdW1lU2xpZGVy
VGh1bWIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVFZmw6OnBhaW50TWVkaWFDdXJy
ZW50VGltZSk6CisgICAgICAgICogcGxhdGZvcm0vZWZsL1Njcm9sbGJhckVmbC5jcHA6CisgICAg
ICAgIChzY3JvbGxiYXJFZmxFZGplTWVzc2FnZSk6CisgICAgICAgICogcGxhdGZvcm0vZWZsL1Nj
cm9sbGJhclRoZW1lRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lRWZs
OjpzY3JvbGxiYXJUaGlja25lc3MpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVF
Zmw6OnJlZ2lzdGVyU2Nyb2xsYmFyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1l
RWZsOjp1bnJlZ2lzdGVyU2Nyb2xsYmFyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvVGVtcG9y
YXJ5TGlua1N0dWJzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNpZ25lZFB1YmxpY0tleUFuZENo
YWxsZW5nZVN0cmluZyk6CisgICAgICAgICogcGxhdGZvcm0vZWZsL1dpZGdldEVmbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXaWRnZXQ6OnNldEZvY3VzKToKKyAgICAgICAgKFdlYkNvcmU6Oldp
ZGdldDo6cGFpbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtVGV4
dERyYXdpbmdNb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6b3JpZW50YXRpb25BdEluZGV4KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllcjo6c3VwcG9ydHNUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9Gb250Q2Fpcm9IYXJmYnV6ek5HLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnQ6OmRyYXdDb21wbGV4VGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWRqdXN0Rm9j
dXNSaW5nTGluZVdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJh
d0xpbmVGb3JUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0UGxh
dGZvcm1GaWxsQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRQ
bGF0Zm9ybVN0cm9rZUNvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6
c2V0VVJMRm9yUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNldFBs
YXRmb3JtU2hhZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZmlsbFJv
dW5kZWRSZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0Nv
bnRleHRQbGF0Zm9ybVByaXZhdGVDYWlyby5oOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0UGxhdGZvcm1Qcml2YXRlOjpzeW5jQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bWFnZUJ1ZmZlckRhdGE6OkltYWdlQnVmZmVyRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vSW1hZ2VDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZTo6ZHJh
d1BhdHRlcm4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VmbC9JY29uRWZsLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okljb246OmNyZWF0ZUljb25Gb3JGaWxlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpJY29uOjpwYWludCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5
cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpn
ZXRTaW1pbGFyRm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6
OmdldFRyYWl0c0luRmFtaWx5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvR1N0cmVhbWVyR1dvcmxkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdzdEdXb3JsZFN5bmNN
ZXNzYWdlQ2FsbGJhY2spOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwOgorICAgICAgICAod2Via2l0Vmlk
ZW9TaW5rTWFyc2hhbFZvaWRBbmRNaW5pT2JqZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKHdl
YktpdFdlYlNyY1VyaUhhbmRsZXJJbml0KToKKyAgICAgICAgKHdlYktpdFdlYlNyY05lZWREYXRh
Q2IpOgorICAgICAgICAod2ViS2l0V2ViU3JjRW5vdWdoRGF0YUNiKToKKyAgICAgICAgKHdlYktp
dFdlYlNyY1NlZWtEYXRhQ2IpOgorICAgICAgICAoU3RyZWFtaW5nQ2xpZW50OjpkaWRSZWNlaXZl
RGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovbmcvSGFyZkJ1enpO
R0ZhY2VDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpoYXJmYnV6ekdldEdseXBoKToKKyAg
ICAgICAgKFdlYkNvcmU6OmhhcmZidXp6R2V0R2x5cGhIb3Jpem9udGFsQWR2YW5jZSk6CisgICAg
ICAgIChXZWJDb3JlOjpoYXJmYnV6ekdldEdseXBoSG9yaXpvbnRhbE9yaWdpbik6CisgICAgICAg
IChXZWJDb3JlOjpoYXJmYnV6ekdldEdseXBoRXh0ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpo
YXJmYnV6ekNhaXJvR2V0VGFibGUpOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJz
L2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZWFkQ29sb3JQ
cm9maWxlKToKKyAgICAgICAgKFdlYkNvcmU6OmluaXRfc291cmNlKToKKyAgICAgICAgKFdlYkNv
cmU6OmZpbGxfaW5wdXRfYnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVy
cy9wbmcvUE5HSW1hZ2VEZWNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBOR0ltYWdlRGVj
b2Rlcjo6cm93QXZhaWxhYmxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29v
a2llU3RvcmFnZVNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0Q29va2llU3RvcmFnZVBy
aXZhdGVCcm93c2luZ0VuYWJsZWQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9E
TlNTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlc29sdmVkQ2FsbGJhY2spOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9Qcm94eVJlc29sdmVyU291cC5jcHA6CisgICAgICAg
IChzb3VwX3Byb3h5X3Jlc29sdmVyX3drX2luaXQpOgorICAgICAgICAoc291cFByb3h5UmVzb2x2
ZXJXa0dldFByb3h5VVJJQXN5bmMpOgorICAgICAgICAoc291cFByb3h5UmVzb2x2ZXJXa0dldFBy
b3h5VVJJU3luYyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFu
ZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZW5kUmVxdWVzdENhbGxiYWNrKToKKyAg
ICAgICAgKFdlYkNvcmU6OmFkZEZvcm1FbGVtZW50c1RvU291cE1lc3NhZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6cmVxdWVzdFN0YXJ0ZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpjbG9z
ZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OnJlYWRDYWxsYmFjayk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
OjphZGp1c3RSZXBhaW50UmVjdCk6CisKIDIwMTItMDktMTMgIFRvbSBTZXBleiAgPHRzZXBlekBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgQVNTRVJUKCFldmVudERpc3BhdGNoRm9yYmlkZGVuKCkp
IGZpcmVzIHdoZW4gcmVtb3ZlZCBwbHVnaW4gcmUtaW5zZXJ0ZWQgYXMgcGFydCBvZiByZWFkeVN0
YXRlQ2hhbmdlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
aAppbmRleCAxMDAxY2YyLi44ZjBmNzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtMTE0LDcgKzExNCw3IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgYm9vbCBhY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZCgpIHsgcmV0
dXJuIGdBY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZDsgfQogI2Vsc2UK
ICAgICBzdGF0aWMgdm9pZCBlbmFibGVBY2Nlc3NpYmlsaXR5KCkgeyB9Ci0gICAgc3RhdGljIHZv
aWQgc2V0RW5oYW5jZWRVc2VySW50ZXJmYWNlQWNjZXNzaWJpbGl0eShib29sIGZsYWcpIHsgfQor
ICAgIHN0YXRpYyB2b2lkIHNldEVuaGFuY2VkVXNlckludGVyZmFjZUFjY2Vzc2liaWxpdHkoYm9v
bCkgeyB9CiAgICAgc3RhdGljIGJvb2wgYWNjZXNzaWJpbGl0eUVuYWJsZWQoKSB7IHJldHVybiBm
YWxzZTsgfQogICAgIHN0YXRpYyBib29sIGFjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZh
Y2VFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KICNlbmRpZgpAQCAtMjQzLDkgKzI0Myw5IEBA
IGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGJhclVwZGF0ZShTY3JvbGxW
aWV3KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxlZFRvQW5j
aG9yKGNvbnN0IE5vZGUqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0
Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBT
dHJpbmcmKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5z
aWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQotaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dE5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgRG9jdW1lbnQqLCBBWE5vdGlmaWNh
dGlvbiwgYm9vbCBwb3N0VG9FbGVtZW50LCBQb3N0VHlwZSkgeyB9Ci1pbmxpbmUgdm9pZCBBWE9i
amVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKFJlbmRlck9iamVjdCosIEFYTm90aWZpY2F0aW9u
LCBib29sIHBvc3RUb0VsZW1lbnQsIFBvc3RUeXBlKSB7IH0KLWlubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBib29sIHBvc3RU
b0VsZW1lbnQsIFBvc3RUeXBlKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RO
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERvY3VtZW50KiwgQVhOb3RpZmljYXRp
b24sIGJvb2wsIFBvc3RUeXBlKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RO
b3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiwgQVhOb3RpZmljYXRpb24sIGJvb2wsIFBvc3RUeXBl
KSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oTm9kZSos
IEFYTm90aWZpY2F0aW9uLCBib29sLCBQb3N0VHlwZSkgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFY
Tm90aWZpY2F0aW9uKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlbW92ZShBWElE
KSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlbW92ZShSZW5kZXJPYmplY3QqKSB7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAK
aW5kZXggNzA3Yzc1MS4uZmEyM2FhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKQEAgLTEwMTgsNiArMTAxOCw5IEBAIHZvaWQgSW5zcGVj
dG9yUGFnZUFnZW50OjpzZXRHZW9sb2NhdGlvbk92ZXJyaWRlKEVycm9yU3RyaW5nKiBlcnJvciwg
Y29uc3QgZG91YmxlCiAgICAgY29udHJvbGxlci0+cG9zaXRpb25DaGFuZ2VkKDApOyAvLyBLaWNr
IGxvY2F0aW9uIHVwZGF0ZS4KICNlbHNlCiAgICAgKmVycm9yID0gIkdlb2xvY2F0aW9uIGlzIG5v
dCBhdmFpbGFibGUuIjsKKyAgICBVTlVTRURfUEFSQU0obGF0aXR1ZGUpOworICAgIFVOVVNFRF9Q
QVJBTShsb25naXR1ZGUpOworICAgIFVOVVNFRF9QQVJBTShhY2N1cmFjeSk7CiAjZW5kaWYKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBiZTgxMDI4
Li42NjhlZGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApA
QCAtMzM0LDcgKzMzNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2
b2lkIGRpc3BhdGNoSW50ZW50KFBhc3NSZWZQdHI8SW50ZW50UmVxdWVzdD4pID0gMDsKICNlbmRp
ZgogI2lmIEVOQUJMRShXRUJfSU5URU5UU19UQUcpCi0gICAgICAgIHZpcnR1YWwgdm9pZCByZWdp
c3RlckludGVudFNlcnZpY2UoY29uc3QgU3RyaW5nJiBhY3Rpb24sIGNvbnN0IFN0cmluZyYgdHlw
ZSwgY29uc3QgS1VSTCYgaHJlZiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBk
aXNwb3NpdGlvbikgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckludGVudFNlcnZp
Y2UoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYpIHsgfQogI2VuZGlmCiAKICAgICAgICAgdmlydHVhbCB2b2lkIGRp
c3BhdGNoV2lsbE9wZW5Tb2NrZXRTdHJlYW0oU29ja2V0U3RyZWFtSGFuZGxlKikgeyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWUuY3BwCmluZGV4IDg1YzJhMzMuLmZiNjVkNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3Bw
CkBAIC04ODYsNiArODg2LDcgQEAgU3RyaW5nIEZyYW1lOjpsYXllclRyZWVBc1RleHQoYm9vbCBz
aG93RGVidWdJbmZvKSBjb25zdAogCiAgICAgcmV0dXJuIGNvbnRlbnRSZW5kZXJlcigpLT5jb21w
b3NpdG9yKCktPmxheWVyVHJlZUFzVGV4dChzaG93RGVidWdJbmZvKTsKICNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKHNob3dEZWJ1Z0luZm8pOwogICAgIHJldHVybiBTdHJpbmcoKTsKICNlbmRpZgog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IGQ2ZDZjNTYuLjI5MjU4MjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTM3MTAsNiArMzcxMCw4IEBAIHZvaWQgRnJhbWVW
aWV3OjpzZXRTY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKGJvb2wgZmxhZykKICNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKFRpbGVkQmFja2luZyogdGls
ZWRCYWNraW5nID0gdGhpcy0+dGlsZWRCYWNraW5nKCkpCiAgICAgICAgIHRpbGVkQmFja2luZy0+
c2V0U2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZChmbGFnKTsKKyNlbHNlCisgICAg
VU5VU0VEX1BBUkFNKGZsYWcpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Vm
bC9FdmVudEhhbmRsZXJFZmwuY3BwCmluZGV4IGE1ODU5MDguLmRiNjk1ODkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcApAQCAtNTAsNyArNTAsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjb25zdCBkb3VibGUgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0Rl
bGF5ID0gMC4wOwogI2VuZGlmCiAKLWJvb2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29u
dHJvbHMoS2V5Ym9hcmRFdmVudCogZXZlbnQpIGNvbnN0Citib29sIEV2ZW50SGFuZGxlcjo6dGFi
c1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQqKSBjb25zdAogewogICAgIHJldHVybiB0
cnVlOwogfQpAQCAtNzYsNyArNzYsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6cGFzc1dpZGdldE1v
dXNlRG93bkV2ZW50VG9XaWRnZXQoUmVuZGVyV2lkZ2V0KiByZW5kZXJXaWRnZXQpCiAgICAgcmV0
dXJuIHBhc3NNb3VzZURvd25FdmVudFRvV2lkZ2V0KHJlbmRlcldpZGdldC0+d2lkZ2V0KCkpOwog
fQogCi1ib29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlRG93bkV2ZW50VG9XaWRnZXQoV2lkZ2V0
KiB3aWRnZXQpCitib29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlRG93bkV2ZW50VG9XaWRnZXQo
V2lkZ2V0KikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBmYWxzZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmNwcAppbmRleCBiYzQ5M2E4Li5hNjAxOGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBAIC0yMTgsNiAr
MjE4LDcgQEAgc3RhdGljIEdyYXBoaWNzTGF5ZXIqIHNjcm9sbExheWVyRm9yRnJhbWVWaWV3KEZy
YW1lVmlldyogZnJhbWVWaWV3KQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gcmVuZGVy
Vmlldy0+Y29tcG9zaXRvcigpLT5zY3JvbGxMYXllcigpOwogI2Vsc2UKKyAgICBVTlVTRURfUEFS
QU0oZnJhbWVWaWV3KTsKICAgICByZXR1cm4gMDsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAKaW5kZXggMDRi
N2E4Mi4uMWI4ZDAwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50
aW1lQXBwbGljYXRpb25DaGVja3MuY3BwCkBAIC00OSw2ICs0OSw3IEBAIHN0YXRpYyBib29sIG1h
aW5CdW5kbGVJc0VxdWFsVG8oY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyU3RyaW5nKQog
ICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gYnVuZGxlSWRlbnRpZmllclRvQ29tcGFyZShBZG9w
dENGLCBidW5kbGVJZGVudGlmaWVyU3RyaW5nLmNyZWF0ZUNGU3RyaW5nKCkpOwogICAgIHJldHVy
biBDRlN0cmluZ0NvbXBhcmUoYnVuZGxlSWRlbnRpZmllciwgYnVuZGxlSWRlbnRpZmllclRvQ29t
cGFyZS5nZXQoKSwgMCkgPT0ga0NGQ29tcGFyZUVxdWFsVG87CiAjZWxzZQorICAgIFVOVVNFRF9Q
QVJBTShidW5kbGVJZGVudGlmaWVyU3RyaW5nKTsKICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKaW5kZXggODVkNzVkYS4uODIx
ZDdmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKQEAgLTEzNjIsNyAr
MTM2Miw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6cGxhdGZvcm1TZXRTY3JvbGxiYXJzU3VwcHJlc3Nl
ZChib29sKQogewogfQogCi12b2lkIFNjcm9sbFZpZXc6OnBsYXRmb3JtU2V0U2Nyb2xsT3JpZ2lu
KGNvbnN0IEludFBvaW50JiwgYm9vbCB1cGRhdGVQb3NpdGlvbkF0QWxsLCBib29sIHVwZGF0ZVBv
c2l0aW9uU3luY2hyb25vdXNseSkKK3ZvaWQgU2Nyb2xsVmlldzo6cGxhdGZvcm1TZXRTY3JvbGxP
cmlnaW4oY29uc3QgSW50UG9pbnQmLCBib29sLCBib29sKQogewogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWlyby9XaWRnZXRCYWNraW5nU3RvcmVDYWlyby5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWlyby9XaWRnZXRCYWNraW5nU3RvcmVDYWlyby5j
cHAKaW5kZXggZGZhNzNlYy4uMWRlYzdjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NhaXJvL1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNwcApAQCAtMzcsNiAr
MzcsNyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IGNyZWF0ZVN1cmZhY2VG
b3JCYWNraW5nU3RvcmUoUGxhdGZvcm1XaWRnZXQgdwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQ0FJUk9fQ09OVEVOVF9DT0xPUl9BTFBIQSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemUud2lkdGgoKSwgc2l6ZS5o
ZWlnaHQoKSk7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh3aWRnZXQpOwogICAgIHJldHVybiBh
ZG9wdFJlZihjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZShDQUlST19GT1JNQVRfQVJHQjMyLCBz
aXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51RWZsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2VmbC9Db250ZXh0TWVudUVmbC5jcHAKaW5kZXggNTExMGFiZC4uY2RhZWQ5
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51RWZs
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVFZmwuY3Bw
CkBAIC05MSw3ICs5MSw3IEBAIFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIENvbnRleHRNZW51Ojpy
ZWxlYXNlUGxhdGZvcm1EZXNjcmlwdGlvbigpCiAgICAgcmV0dXJuIFBsYXRmb3JtTWVudURlc2Ny
aXB0aW9uKCk7CiB9CiAKLVBsYXRmb3JtTWVudURlc2NyaXB0aW9uIHBsYXRmb3JtTWVudURlc2Ny
aXB0aW9uKFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+JiBtZW51SXRlbVZlY3RvcikKK1BsYXRmb3Jt
TWVudURlc2NyaXB0aW9uIHBsYXRmb3JtTWVudURlc2NyaXB0aW9uKFZlY3RvcjxDb250ZXh0TWVu
dUl0ZW0+JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51SXRlbUVmbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVJdGVtRWZsLmNwcAppbmRl
eCBjNGVkMDY3Li40YTI0M2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvQ29udGV4dE1lbnVJdGVtRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvQ29udGV4dE1lbnVJdGVtRWZsLmNwcApAQCAtNTIsNyArNTIsNyBAQCBDb250ZXh0TWVudUl0
ZW06OkNvbnRleHRNZW51SXRlbShDb250ZXh0TWVudUl0ZW1UeXBlIHR5cGUsIENvbnRleHRNZW51
QWN0aW9uIGFjdAogICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi50aXRsZSA9IHRpdGxlOwogfQog
Ci1Db250ZXh0TWVudUl0ZW06OkNvbnRleHRNZW51SXRlbShDb250ZXh0TWVudUFjdGlvbiwgY29u
c3QgU3RyaW5nJiwgYm9vbCBlbmFibGVkLCBib29sIGNoZWNrZWQsIFZlY3RvcjxDb250ZXh0TWVu
dUl0ZW0+JiBzdWJNZW51SXRlbXMpCitDb250ZXh0TWVudUl0ZW06OkNvbnRleHRNZW51SXRlbShD
b250ZXh0TWVudUFjdGlvbiwgY29uc3QgU3RyaW5nJiwgYm9vbCwgYm9vbCwgVmVjdG9yPENvbnRl
eHRNZW51SXRlbT4mKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvRHJhZ0RhdGFFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0RyYWdE
YXRhRWZsLmNwcAppbmRleCA5ZDdlOWNhLi5kY2FmNDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvRHJhZ0RhdGFFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2VmbC9EcmFnRGF0YUVmbC5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgdW5zaWduZWQgRHJh
Z0RhdGE6Om51bWJlck9mRmlsZXMoKSBjb25zdAogICAgIHJldHVybiAwOwogfQogCi12b2lkIERy
YWdEYXRhOjphc0ZpbGVuYW1lcyhWZWN0b3I8U3RyaW5nPiYgcmVzdWx0KSBjb25zdAordm9pZCBE
cmFnRGF0YTo6YXNGaWxlbmFtZXMoVmVjdG9yPFN0cmluZz4mKSBjb25zdAogewogfQogCkBAIC03
MCwxMiArNzAsMTIgQEAgYm9vbCBEcmFnRGF0YTo6Y29udGFpbnNDb21wYXRpYmxlQ29udGVudCgp
IGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIERyYWdEYXRhOjpjb250YWluc1VS
TChGcmFtZSosIEZpbGVuYW1lQ29udmVyc2lvblBvbGljeSBmaWxlbmFtZVBvbGljeSkgY29uc3QK
K2Jvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zVVJMKEZyYW1lKiwgRmlsZW5hbWVDb252ZXJzaW9uUG9s
aWN5KSBjb25zdAogewogICAgIHJldHVybiBmYWxzZTsKIH0KIAotU3RyaW5nIERyYWdEYXRhOjph
c1VSTChGcmFtZSosIEZpbGVuYW1lQ29udmVyc2lvblBvbGljeSBmaWxlbmFtZVBvbGljeSwgU3Ry
aW5nKiB0aXRsZSkgY29uc3QKK1N0cmluZyBEcmFnRGF0YTo6YXNVUkwoRnJhbWUqLCBGaWxlbmFt
ZUNvbnZlcnNpb25Qb2xpY3ksIFN0cmluZyopIGNvbnN0CiB7CiAgICAgcmV0dXJuIFN0cmluZygp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0dhbWVwYWRzRWZs
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9HYW1lcGFkc0VmbC5jcHAKaW5kZXgg
ZjY3YmE0Mi4uNjNiNmM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L0dhbWVwYWRzRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvR2FtZXBh
ZHNFZmwuY3BwCkBAIC0xMjgsNyArMTI4LDcgQEAgcHJpdmF0ZToKICAgICBFZXplX1VkZXZfV2F0
Y2gqIG1fZ2FtZXBhZHNXYXRjaGVyOwogfTsKIAotdm9pZCBHYW1lcGFkc0VmbDo6b25HYW1lUGFk
Q2hhbmdlKGNvbnN0IGNoYXIqIHN5c3BhdGgsIEVlemVfVWRldl9FdmVudCBldmVudCwgdm9pZCog
dXNlckRhdGEsIEVlemVfVWRldl9XYXRjaCogd2F0Y2hlcikKK3ZvaWQgR2FtZXBhZHNFZmw6Om9u
R2FtZVBhZENoYW5nZShjb25zdCBjaGFyKiBzeXNwYXRoLCBFZXplX1VkZXZfRXZlbnQgZXZlbnQs
IHZvaWQqIHVzZXJEYXRhLCBFZXplX1VkZXZfV2F0Y2gqKQogewogICAgIEdhbWVwYWRzRWZsKiBn
YW1lcGFkc0VmbCA9IHN0YXRpY19jYXN0PEdhbWVwYWRzRWZsKj4odXNlckRhdGEpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5jcHAK
aW5kZXggZWQ2ZWU1Zi4uY2I1ZDdiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZWZsL0xvY2FsaXplZFN0cmluZ3NFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9Mb2NhbGl6ZWRTdHJpbmdzRWZsLmNwcApAQCAtNDE5LDI2ICs0MTksMjYgQEAgU3Ry
aW5nIHVua25vd25GaWxlU2l6ZVRleHQoKQogICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJV
bmtub3duIik7CiB9CiAKLVN0cmluZyBpbWFnZVRpdGxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUs
IGNvbnN0IEludFNpemUmIHNpemUpCitTdHJpbmcgaW1hZ2VUaXRsZShjb25zdCBTdHJpbmcmLCBj
b25zdCBJbnRTaXplJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBTdHJp
bmcoKTsKIH0KIAogI2lmIEVOQUJMRShWSURFTykKLVN0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRy
b2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0cmluZyYgbmFtZSkKK1N0cmluZyBsb2NhbGl6ZWRNZWRp
YUNvbnRyb2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0cmluZyYpCiB7CiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVN0cmluZyBsb2NhbGl6ZWRNZWRpYUNv
bnRyb2xFbGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5nJiBuYW1lKQorU3RyaW5nIGxvY2FsaXpl
ZE1lZGlhQ29udHJvbEVsZW1lbnRIZWxwVGV4dChjb25zdCBTdHJpbmcmKQogewogICAgIG5vdElt
cGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgbG9jYWxpemVk
TWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQgdGltZSkKK1N0cmluZyBsb2NhbGl6ZWRNZWRpYVRp
bWVEZXNjcmlwdGlvbihmbG9hdCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVy
biBTdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QYXN0
ZWJvYXJkRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QYXN0ZWJvYXJkRWZs
LmNwcAppbmRleCAzOTY1MGM3Li4yZGE3NGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZWZsL1Bhc3RlYm9hcmRFZmwuY3BwCkBAIC01MSw3ICs1MSw3IEBAIHZvaWQgUGFzdGVib2Fy
ZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiwgU21hcnRSZXBsYWNlT3B0aW9uKQogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24o
UmFuZ2UqIHNlbGVjdGVkUmFuZ2UsIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUsIEZyYW1lKiBm
cmFtZSkKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24oUmFuZ2UqLCBib29sLCBGcmFt
ZSopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTYxLDcgKzYxLDcgQEAgdm9pZCBQ
YXN0ZWJvYXJkOjp3cml0ZVVSTChjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiwgRnJhbWUqKQog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgUGFzdGVib2FyZDo6d3JpdGVJbWFnZShO
b2RlKiBub2RlLCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJikKK3ZvaWQgUGFzdGVib2FyZDo6
d3JpdGVJbWFnZShOb2RlKiwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTgyLDggKzgyLDggQEAgYm9vbCBQYXN0ZWJvYXJkOjpjYW5T
bWFydFJlcGxhY2UoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotUGFzc1JlZlB0cjxEb2N1bWVu
dEZyYWdtZW50PiBQYXN0ZWJvYXJkOjpkb2N1bWVudEZyYWdtZW50KEZyYW1lKiBmcmFtZSwgUGFz
c1JlZlB0cjxSYW5nZT4gY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGFsbG93UGxhaW5UZXh0LCBib29sJiBjaG9z
ZVBsYWluVGV4dCkKK1Bhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gUGFzdGVib2FyZDo6ZG9j
dW1lbnRGcmFnbWVudChGcmFtZSosIFBhc3NSZWZQdHI8UmFuZ2U+LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wsIGJvb2wmKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGxhdGZvcm1TY3JlZW5FZmwuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL1BsYXRmb3JtU2NyZWVuRWZsLmNwcAppbmRleCBiNDNiZjQxLi4w
OWQzYTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGxhdGZvcm1T
Y3JlZW5FZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QbGF0Zm9ybVNj
cmVlbkVmbC5jcHAKQEAgLTExNiw2ICsxMTYsNyBAQCBGbG9hdFJlY3Qgc2NyZWVuUmVjdChXaWRn
ZXQqIHdpZGdldCkKICNpZmRlZiBIQVZFX0VDT1JFX1gKICAgICBpbnQgd2lkdGggPSAwLCBoZWln
aHQgPSAwOwogICAgIENBTExfV0lUSF9FQ09SRV9YKGVjb3JlX3hfc2NyZWVuX3NpemVfZ2V0KHNj
cmVlbiwgJndpZHRoLCAmaGVpZ2h0KSk7CisgICAgVU5VU0VEX1BBUkFNKHdpZGdldCk7CiAgICAg
cmV0dXJuIEZsb2F0UmVjdCgwLCAwLCB3aWR0aCwgaGVpZ2h0KTsKICNlbHNlCiAgICAgaWYgKCF3
aWRnZXQgfHwgIXdpZGdldC0+ZXZhcygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Vm
bC9SZW5kZXJUaGVtZUVmbC5jcHAKaW5kZXggYjRlNDAzYS4uMzg4N2RkMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwCkBAIC03MjAsNyArNzIw
LDcgQEAgYm9vbCBSZW5kZXJUaGVtZUVmbDo6cGFpbnRTbGlkZXJUcmFjayhSZW5kZXJPYmplY3Qq
IG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBpbmYKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZv
aWQgUmVuZGVyVGhlbWVFZmw6OmFkanVzdFNsaWRlclRyYWNrU3R5bGUoU3R5bGVSZXNvbHZlciog
c3R5bGVSZXNvbHZlciwgUmVuZGVyU3R5bGUqIHN0eWxlLCBFbGVtZW50KiBlbGVtZW50KSBjb25z
dAordm9pZCBSZW5kZXJUaGVtZUVmbDo6YWRqdXN0U2xpZGVyVHJhY2tTdHlsZShTdHlsZVJlc29s
dmVyKiwgUmVuZGVyU3R5bGUqIHN0eWxlLCBFbGVtZW50KikgY29uc3QKIHsKICAgICBzdHlsZS0+
c2V0Qm94U2hhZG93KG51bGxwdHIpOwogfQpAQCAtMTAwMyw3ICsxMDAzLDcgQEAgdm9pZCBSZW5k
ZXJUaGVtZUVmbDo6c2V0RGVmYXVsdEZvbnRTaXplKGludCBzaXplKQogICAgIGRlZmF1bHRGb250
U2l6ZSA9IHNpemU7CiB9CiAKLXZvaWQgUmVuZGVyVGhlbWVFZmw6OnN5c3RlbUZvbnQoaW50IHBy
b3BJZCwgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0Cit2b2lkIFJlbmRl
clRoZW1lRWZsOjpzeXN0ZW1Gb250KGludCwgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRp
b24pIGNvbnN0CiB7CiAgICAgLy8gSXQgd2FzIGNhbGxlZCBieSBSZW5kZXJFbWJlZGRlZE9iamVj
dDo6cGFpbnRSZXBsYWNlZCB0byByZW5kZXIgYWx0ZXJuYXRpdmUgc3RyaW5nLgogICAgIC8vIFRv
IGF2b2lkIGNhaXJvX2Vycm9yIHdoaWxlIHJlbmRlcmluZywgZm9udERlc2NyaXB0aW9uIHNob3Vs
ZCBiZSBwYXNzZWQuCkBAIC0xMjE0LDMyICsxMjE0LDMyIEBAIGJvb2wgUmVuZGVyVGhlbWVFZmw6
OnBhaW50TWVkaWFTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJ
bmZvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgUmVuZGVyVGhlbWVFZmw6OnBhaW50TWVk
aWFTbGlkZXJUaHVtYihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBpbmZv
LCBjb25zdCBJbnRSZWN0JiByZWN0KQorYm9vbCBSZW5kZXJUaGVtZUVmbDo6cGFpbnRNZWRpYVNs
aWRlclRodW1iKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYgaW5mbywgY29uc3QgSW50
UmVjdCYgcmVjdCkKIHsKICAgICBJbnRTaXplIHRodW1iUmVjdCgzLCAzKTsKICAgICBpbmZvLmNv
bnRleHQtPmZpbGxSb3VuZGVkUmVjdChyZWN0LCB0aHVtYlJlY3QsIHRodW1iUmVjdCwgdGh1bWJS
ZWN0LCB0aHVtYlJlY3QsIG1fc2xpZGVyVGh1bWJDb2xvciwgQ29sb3JTcGFjZURldmljZVJHQik7
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgUmVuZGVyVGhlbWVFZmw6OnBhaW50TWVkaWFW
b2x1bWVTbGlkZXJDb250YWluZXIoUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiBpbmZv
LCBjb25zdCBJbnRSZWN0JiByZWN0KQorYm9vbCBSZW5kZXJUaGVtZUVmbDo6cGFpbnRNZWRpYVZv
bHVtZVNsaWRlckNvbnRhaW5lcihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25z
dCBJbnRSZWN0JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotYm9vbCBSZW5kZXJUaGVtZUVmbDo6cGFpbnRNZWRpYVZvbHVtZVNsaWRlclRyYWNrKFJl
bmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8mIGluZm8sIGNvbnN0IEludFJlY3Qm
IHJlY3QpCitib29sIFJlbmRlclRoZW1lRWZsOjpwYWludE1lZGlhVm9sdW1lU2xpZGVyVHJhY2so
UmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpCiB7CiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgUmVuZGVyVGhl
bWVFZmw6OnBhaW50TWVkaWFWb2x1bWVTbGlkZXJUaHVtYihSZW5kZXJPYmplY3QqIG9iamVjdCwg
Y29uc3QgUGFpbnRJbmZvJiBpbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0KQorYm9vbCBSZW5kZXJU
aGVtZUVmbDo6cGFpbnRNZWRpYVZvbHVtZVNsaWRlclRodW1iKFJlbmRlck9iamVjdCosIGNvbnN0
IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIFJlbmRlclRoZW1lRWZsOjpwYWludE1lZGlhQ3Vy
cmVudFRpbWUoUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgaW5mbywgY29u
c3QgSW50UmVjdCYgcmVjdCkKK2Jvb2wgUmVuZGVyVGhlbWVFZmw6OnBhaW50TWVkaWFDdXJyZW50
VGltZShSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mIGluZm8sIGNvbnN0IEludFJlY3Qm
IHJlY3QpCiB7CiAgICAgaW5mby5jb250ZXh0LT5maWxsUmVjdChGbG9hdFJlY3QocmVjdCksIG1f
bWVkaWFQYW5lbENvbG9yLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKICAgICByZXR1cm4gdHJ1ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TY3JvbGxiYXJFZmwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Njcm9sbGJhckVmbC5jcHAKaW5kZXggMWFh
ZjRjZi4uMjA1MDM0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Nj
cm9sbGJhckVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Njcm9sbGJh
ckVmbC5jcHAKQEAgLTY3LDcgKzY3LDcgQEAgU2Nyb2xsYmFyRWZsOjp+U2Nyb2xsYmFyRWZsKCkK
ICAgICBzZXRFdmFzT2JqZWN0KDApOwogfQogCi1zdGF0aWMgdm9pZCBzY3JvbGxiYXJFZmxFZGpl
TWVzc2FnZSh2b2lkKiBkYXRhLCBFdmFzX09iamVjdCogb2JqZWN0LCBFZGplX01lc3NhZ2VfVHlw
ZSBtZXNzYWdlVHlwZSwgaW50IGlkLCB2b2lkKiBtZXNzYWdlKQorc3RhdGljIHZvaWQgc2Nyb2xs
YmFyRWZsRWRqZU1lc3NhZ2Uodm9pZCogZGF0YSwgRXZhc19PYmplY3QqLCBFZGplX01lc3NhZ2Vf
VHlwZSBtZXNzYWdlVHlwZSwgaW50IGlkLCB2b2lkKiBtZXNzYWdlKQogewogICAgIFNjcm9sbGJh
ckVmbCogdGhhdCA9IHN0YXRpY19jYXN0PFNjcm9sbGJhckVmbCo+KGRhdGEpOwogICAgIEVkamVf
TWVzc2FnZV9GbG9hdCogbWVzc2FnZUZsb2F0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZWZsL1Njcm9sbGJhclRoZW1lRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9TY3JvbGxiYXJUaGVtZUVmbC5jcHAKaW5kZXggMjQwYjUwMS4uN2Q5NGU4ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Njcm9sbGJhclRoZW1lRWZsLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2Nyb2xsYmFyVGhlbWVFZmwuY3Bw
CkBAIC00NCwxNiArNDQsMTYgQEAgU2Nyb2xsYmFyVGhlbWVFZmw6On5TY3JvbGxiYXJUaGVtZUVm
bCgpCiB7CiB9CiAKLWludCBTY3JvbGxiYXJUaGVtZUVmbDo6c2Nyb2xsYmFyVGhpY2tuZXNzKFNj
cm9sbGJhckNvbnRyb2xTaXplIGNvbnRyb2xTaXplKQoraW50IFNjcm9sbGJhclRoZW1lRWZsOjpz
Y3JvbGxiYXJUaGlja25lc3MoU2Nyb2xsYmFyQ29udHJvbFNpemUpCiB7CiAgICAgcmV0dXJuIDA7
IC8vIHdlIHBhaW50IG9uIHRvcAogfQogCi12b2lkIFNjcm9sbGJhclRoZW1lRWZsOjpyZWdpc3Rl
clNjcm9sbGJhcihTY3JvbGxiYXJUaGVtZUNsaWVudCogc2Nyb2xsYmFyKQordm9pZCBTY3JvbGxi
YXJUaGVtZUVmbDo6cmVnaXN0ZXJTY3JvbGxiYXIoU2Nyb2xsYmFyVGhlbWVDbGllbnQqKQogewog
fQogCi12b2lkIFNjcm9sbGJhclRoZW1lRWZsOjp1bnJlZ2lzdGVyU2Nyb2xsYmFyKFNjcm9sbGJh
clRoZW1lQ2xpZW50KiBzY3JvbGxiYXIpCit2b2lkIFNjcm9sbGJhclRoZW1lRWZsOjp1bnJlZ2lz
dGVyU2Nyb2xsYmFyKFNjcm9sbGJhclRoZW1lQ2xpZW50KikKIHsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1RlbXBvcmFyeUxpbmtTdHVicy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvVGVtcG9yYXJ5TGlua1N0dWJzLmNwcAppbmRleCBlOTA1
OTdiLi4xZjlkMGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvVGVt
cG9yYXJ5TGlua1N0dWJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvVGVt
cG9yYXJ5TGlua1N0dWJzLmNwcApAQCAtNTEsNyArNTEsNyBAQCB2b2lkIGdldFN1cHBvcnRlZEtl
eVNpemVzKFZlY3RvcjxTdHJpbmc+JikKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi1TdHJp
bmcgc2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKHVuc2lnbmVkIGtleVNpemVJbmRl
eCwgY29uc3QgU3RyaW5nICZjaGFsbGVuZ2VTdHJpbmcsIGNvbnN0IEtVUkwgJnVybCkKK1N0cmlu
ZyBzaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcodW5zaWduZWQsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IEtVUkwmKQogewogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9XaWRnZXRFZmwuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZWZsL1dpZGdldEVmbC5jcHAKaW5kZXggOGY4ZjJlNy4uMDNiNmQ0YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1dpZGdldEVmbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1dpZGdldEVmbC5jcHAKQEAgLTEwNiw3ICsxMDYs
NyBAQCB2b2lkIFdpZGdldDo6ZnJhbWVSZWN0c0NoYW5nZWQoKQogICAgIGV2YXNfb2JqZWN0X3Jl
c2l6ZShvYmplY3QsIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CiB9CiAKLXZvaWQgV2lk
Z2V0OjpzZXRGb2N1cyhib29sIGZvY3VzZWQpCit2b2lkIFdpZGdldDo6c2V0Rm9jdXMoYm9vbCkK
IHsKIH0KIApAQCAtMTM0LDcgKzEzNCw3IEBAIHZvaWQgV2lkZ2V0OjpoaWRlKCkKICAgICBldmFz
X29iamVjdF9oaWRlKHBsYXRmb3JtV2lkZ2V0KCkpOwogfQogCi12b2lkIFdpZGdldDo6cGFpbnQo
R3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JikKK3ZvaWQgV2lkZ2V0Ojpw
YWludChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JikKIHsKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dC5jcHAKaW5kZXggM2ExYmRjZC4uYjIwMTNhMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCkBAIC03
MDQsNyArNzA0LDcgQEAgQ29tcG9zaXRlT3BlcmF0b3IgR3JhcGhpY3NDb250ZXh0Ojpjb21wb3Np
dGVPcGVyYXRpb24oKSBjb25zdAogI2lmICFVU0UoQ0cpICYmICFVU0UoU0tJQSkKIC8vIEltcGxl
bWVudCB0aGlzIGlmIHlvdSB3YW50IHRvIGdvIGFoZWFkIGFuZCBwdXNoIHRoZSBkcmF3aW5nIG1v
ZGUgaW50byB5b3VyIG5hdGl2ZSBjb250ZXh0CiAvLyBpbW1lZGlhdGVseS4KLXZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpzZXRQbGF0Zm9ybVRleHREcmF3aW5nTW9kZShUZXh0RHJhd2luZ01vZGVGbGFn
cyBtb2RlKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtVGV4dERyYXdpbmdNb2Rl
KFRleHREcmF3aW5nTW9kZUZsYWdzKQogewogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKaW5kZXggY2EwZjk1ZC4uOTgxNmU2
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3Vy
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNl
LmNwcApAQCAtMTc1LDcgKzE3NSw3IEBAIGZsb2F0IEltYWdlU291cmNlOjpmcmFtZUR1cmF0aW9u
QXRJbmRleChzaXplX3QgaW5kZXgpCiAgICAgcmV0dXJuIGR1cmF0aW9uOwogfQogCi1JbWFnZU9y
aWVudGF0aW9uIEltYWdlU291cmNlOjpvcmllbnRhdGlvbkF0SW5kZXgoc2l6ZV90IGluZGV4KSBj
b25zdAorSW1hZ2VPcmllbnRhdGlvbiBJbWFnZVNvdXJjZTo6b3JpZW50YXRpb25BdEluZGV4KHNp
emVfdCkgY29uc3QKIHsKICAgICAvLyBUaGUgSlBFRyBhbmQgVElGRiBkZWNvZGVycyBuZWVkIHRv
IGJlIHRhdWdodCBob3cgdG8gcmVhZCBFWElGLCBYTVAsIG9yIElQVEMgZGF0YS4KICAgICBub3RJ
bXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuY3BwCmluZGV4IGIxMTYxMGYuLjMwZWU5NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTc4NSw2ICs3ODUsOCBA
QCBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUoY29u
c3QgQ29udGVudFR5cGUmIGNvbnRlbnRUeQogICAgICAgICAgICAgJiYgKGNvbnRlbnRUeXBlLnR5
cGUoKS5zdGFydHNXaXRoKCJ2aWRlby93ZWJtIiwgZmFsc2UpIHx8IGNvbnRlbnRUeXBlLnR5cGUo
KS5zdGFydHNXaXRoKCJ2aWRlby94LWZsdiIsIGZhbHNlKSkpCiAgICAgICAgICAgICByZXR1cm4g
SXNOb3RTdXBwb3J0ZWQ7CiAgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oY2xpZW50KTsK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyb0hhcmZidXp6TkcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1
enpORy5jcHAKaW5kZXggNmVhMWEyNy4uOGQ1MDBmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpO
Ry5jcHAKQEAgLTM3LDcgKzM3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIEZv
bnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFRleHRS
dW4mIHJ1biwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0
Cit2b2lkIEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNv
bnN0IFRleHRSdW4mIHJ1biwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIGludCwgaW50KSBjb25z
dAogewogICAgIEdseXBoQnVmZmVyIGdseXBoQnVmZmVyOwogICAgIEhhcmZCdXp6U2hhcGVyIHNo
YXBlcih0aGlzLCBydW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCmluZGV4IDIwM2Q4
ZjMuLmJkMGI5N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKQEAgLTU3Myw2ICs1
NzMsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRqdXN0Rm9jdXNSaW5nTGluZVdpZHRoKGludCYg
d2lkdGgpCiB7CiAjaWYgUExBVEZPUk0oR1RLKQogICAgIHdpZHRoID0gMjsKKyNlbHNlCisgICAg
VU5VU0VEX1BBUkFNKHdpZHRoKTsKICNlbmRpZgogfQogCkBAIC02NjcsNyArNjY5LDcgQEAgdm9p
ZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdGb2N1c1JpbmcoY29uc3QgVmVjdG9yPEludFJlY3Q+JiBy
ZWN0cywgaW50IHdpZHRoLCBpbnQKICAgICBjYWlyb19yZXN0b3JlKGNyKTsKIH0KIAotdm9pZCBH
cmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lRm9yVGV4dChjb25zdCBGbG9hdFBvaW50JiBvcmlnaW4s
IGZsb2F0IHdpZHRoLCBib29sIHByaW50aW5nKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdM
aW5lRm9yVGV4dChjb25zdCBGbG9hdFBvaW50JiBvcmlnaW4sIGZsb2F0IHdpZHRoLCBib29sKQog
ewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTc3MCwx
MyArNzcyLDEzIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojp0cmFuc2xhdGUoZmxvYXQgeCwgZmxv
YXQgeSkKICAgICBtX2RhdGEtPnRyYW5zbGF0ZSh4LCB5KTsKIH0KIAotdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OnNldFBsYXRmb3JtRmlsbENvbG9yKGNvbnN0IENvbG9yJiBjb2wsIENvbG9yU3BhY2Ug
Y29sb3JTcGFjZSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybUZpbGxDb2xvcihj
b25zdCBDb2xvciYsIENvbG9yU3BhY2UpCiB7CiAgICAgLy8gQ2Fpcm8gY29udGV4dHMgY2FuJ3Qg
aG9sZCBzZXBhcmF0ZSBmaWxsIGFuZCBzdHJva2UgY29sb3JzCiAgICAgLy8gc28gd2Ugc2V0IHRo
ZW0ganVzdCBiZWZvcmUgd2UgYWN0dWFsbHkgZmlsbCBvciBzdHJva2UKIH0KIAotdm9pZCBHcmFw
aGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU3Ryb2tlQ29sb3IoY29uc3QgQ29sb3ImIGNvbCwgQ29s
b3JTcGFjZSBjb2xvclNwYWNlKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU3Ry
b2tlQ29sb3IoY29uc3QgQ29sb3ImLCBDb2xvclNwYWNlKQogewogICAgIC8vIENhaXJvIGNvbnRl
eHRzIGNhbid0IGhvbGQgc2VwYXJhdGUgZmlsbCBhbmQgc3Ryb2tlIGNvbG9ycwogICAgIC8vIHNv
IHdlIHNldCB0aGVtIGp1c3QgYmVmb3JlIHdlIGFjdHVhbGx5IGZpbGwgb3Igc3Ryb2tlCkBAIC04
MTUsNyArODE3LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU3Ryb2tlU3R5
bGUoU3Ryb2tlU3R5bGUgc3Ryb2tlU3R5bGUpCiAgICAgfQogfQogCi12b2lkIEdyYXBoaWNzQ29u
dGV4dDo6c2V0VVJMRm9yUmVjdChjb25zdCBLVVJMJiBsaW5rLCBjb25zdCBJbnRSZWN0JiBkZXN0
UmVjdCkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRVUkxGb3JSZWN0KGNvbnN0IEtVUkwmLCBj
b25zdCBJbnRSZWN0JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpAQCAtODY1LDcgKzg2
Nyw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjphZGRJbm5lclJvdW5kZWRSZWN0Q2xpcChjb25z
dCBJbnRSZWN0JiByZWN0LCBpbnQgdGhpY2tuZXNzCiAgICAgY2Fpcm9fc2V0X2ZpbGxfcnVsZShj
ciwgc2F2ZWRGaWxsUnVsZSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9y
bVNoYWRvdyhGbG9hdFNpemUgY29uc3QmIHNpemUsIGZsb2F0IGJsdXIsIENvbG9yIGNvbnN0JiBj
b2xvciwgQ29sb3JTcGFjZSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRv
dyhGbG9hdFNpemUgY29uc3QmIHNpemUsIGZsb2F0LCBDb2xvciBjb25zdCYsIENvbG9yU3BhY2Up
CiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTA5
NCw3ICsxMDk2LDcgQEAgc3RhdGljIGlubGluZSBGbG9hdFBvaW50IGdldFBoYXNlKGNvbnN0IEZs
b2F0UmVjdCYgZGVzdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlKQogICAgIHJldHVybiBwaGFzZTsK
IH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSb3VuZGVkUmVjdChjb25zdCBJbnRSZWN0
JiByLCBjb25zdCBJbnRTaXplJiB0b3BMZWZ0LCBjb25zdCBJbnRTaXplJiB0b3BSaWdodCwgY29u
c3QgSW50U2l6ZSYgYm90dG9tTGVmdCwgY29uc3QgSW50U2l6ZSYgYm90dG9tUmlnaHQsIGNvbnN0
IENvbG9yJiBjb2xvciwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQordm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmZpbGxSb3VuZGVkUmVjdChjb25zdCBJbnRSZWN0JiByLCBjb25zdCBJbnRTaXplJiB0b3BM
ZWZ0LCBjb25zdCBJbnRTaXplJiB0b3BSaWdodCwgY29uc3QgSW50U2l6ZSYgYm90dG9tTGVmdCwg
Y29uc3QgSW50U2l6ZSYgYm90dG9tUmlnaHQsIGNvbnN0IENvbG9yJiBjb2xvciwgQ29sb3JTcGFj
ZSkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0Nv
bnRleHRQbGF0Zm9ybVByaXZhdGVDYWlyby5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlQ2Fpcm8uaAppbmRleCA0
Y2M4YzgwLi5mYzdjOGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGVDYWlyby5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dFBsYXRm
b3JtUHJpdmF0ZUNhaXJvLmgKQEAgLTkwLDcgKzkwLDcgQEAgcHVibGljOgogICAgIHZvaWQgdHJh
bnNsYXRlKGZsb2F0LCBmbG9hdCkge30KICAgICB2b2lkIGNvbmNhdENUTShjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mKSB7fQogICAgIHZvaWQgc2V0Q1RNKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpIHt9
Ci0gICAgdm9pZCBzeW5jQ29udGV4dChjYWlyb190KiBjcikge30KKyAgICB2b2lkIHN5bmNDb250
ZXh0KGNhaXJvX3QqKSB7IH0KICNlbmRpZgogCiAgICAgUGxhdGZvcm1Db250ZXh0Q2Fpcm8qIHBs
YXRmb3JtQ29udGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHAKaW5kZXggZjhhYzM5NS4uZmM4N2Fk
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1h
Z2VCdWZmZXJDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgdXNpbmcgbmFtZXNw
YWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1JbWFnZUJ1ZmZlckRhdGE6OkltYWdl
QnVmZmVyRGF0YShjb25zdCBJbnRTaXplJiBzaXplKQorSW1hZ2VCdWZmZXJEYXRhOjpJbWFnZUJ1
ZmZlckRhdGEoY29uc3QgSW50U2l6ZSYpCiAgICAgOiBtX3N1cmZhY2UoMCkKICAgICAsIG1fcGxh
dGZvcm1Db250ZXh0KDApCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9JbWFnZUNhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0ltYWdlQ2Fpcm8uY3BwCmluZGV4IDUxY2E2NDMuLmYxYWYxM2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQ2Fpcm8u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQ2Fp
cm8uY3BwCkBAIC00Myw3ICs0Myw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgSW1h
Z2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRSZWN0
JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLAotICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIENvbG9yU3BhY2Ug
Y29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJl
Y3QpCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29s
b3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3Qp
CiB7CiAgICAgTmF0aXZlSW1hZ2VDYWlybyogaW1hZ2UgPSBuYXRpdmVJbWFnZUZvckN1cnJlbnRG
cmFtZSgpOwogICAgIGlmICghaW1hZ2UpIC8vIElmIGl0J3MgdG9vIGVhcmx5IHdlIHdvbid0IGhh
dmUgYW4gaW1hZ2UgeWV0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZWZsL0ljb25FZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZWZsL0ljb25FZmwuY3BwCmluZGV4IDZjN2VmZGMuLjlkYzQwM2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9JY29uRWZsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvSWNvbkVmbC5jcHAKQEAgLTUyLDEzICs1Miwx
MyBAQCBJY29uOjp+SWNvbigpCiB7CiB9CiAKLVBhc3NSZWZQdHI8SWNvbj4gSWNvbjo6Y3JlYXRl
SWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMpCitQYXNzUmVmUHRy
PEljb24+IEljb246OmNyZWF0ZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpCiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBJY29uOjpw
YWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QpCit2b2lk
IEljb246OnBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmKQogewogICAgIG5v
dEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9mcmVldHlwZS9Gb250Q2FjaGVGcmVlVHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q2FjaGVGcmVlVHlwZS5jcHAKaW5kZXggNGUy
ZGQ4NS4uNDkwNTE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcApAQCAtMTAwLDcg
KzEwMCw3IEBAIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBGb250Q2FjaGU6OmdldEZvbnREYXRhRm9y
Q2hhcmFjdGVycyhjb25zdCBGb250JiBmb250LCBjb25zCiAgICAgcmV0dXJuIGdldENhY2hlZEZv
bnREYXRhKCZhbHRlcm5hdGVGb250RGF0YSwgRG9Ob3RSZXRhaW4pOwogfQogCi1TaW1wbGVGb250
RGF0YSogRm9udENhY2hlOjpnZXRTaW1pbGFyRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250JiBm
b250KQorU2ltcGxlRm9udERhdGEqIEZvbnRDYWNoZTo6Z2V0U2ltaWxhckZvbnRQbGF0Zm9ybURh
dGEoY29uc3QgRm9udCYpCiB7CiAgICAgcmV0dXJuIDA7CiB9CkBAIC0xMTMsNyArMTEzLDcgQEAg
U2ltcGxlRm9udERhdGEqIEZvbnRDYWNoZTo6Z2V0TGFzdFJlc29ydEZhbGxiYWNrRm9udChjb25z
dCBGb250RGVzY3JpcHRpb24mIGZvbnQKICAgICByZXR1cm4gZ2V0Q2FjaGVkRm9udERhdGEoZm9u
dERlc2NyaXB0aW9uLCB0aW1lc1N0ciwgZmFsc2UsIHNob3VsZFJldGFpbik7CiB9CiAKLXZvaWQg
Rm9udENhY2hlOjpnZXRUcmFpdHNJbkZhbWlseShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseU5h
bWUsIFZlY3Rvcjx1bnNpZ25lZD4mIHRyYWl0c01hc2tzKQordm9pZCBGb250Q2FjaGU6OmdldFRy
YWl0c0luRmFtaWx5KGNvbnN0IEF0b21pY1N0cmluZyYsIFZlY3Rvcjx1bnNpZ25lZD4mKQogewog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvR1N0cmVhbWVyR1dvcmxkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9HU3RyZWFtZXJHV29ybGQuY3BwCmluZGV4IGZhMDg4ZGYuLjIxMmRlZmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3Ry
ZWFtZXJHV29ybGQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9HU3RyZWFtZXJHV29ybGQuY3BwCkBAIC0zNyw3ICszNyw3IEBAIHVzaW5nIG5hbWVz
cGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotZ2Jvb2xlYW4gZ3N0R1dvcmxkU3lu
Y01lc3NhZ2VDYWxsYmFjayhHc3RCdXMqIGJ1cywgR3N0TWVzc2FnZSogbWVzc2FnZSwgZ3BvaW50
ZXIgZGF0YSkKK2dib29sZWFuIGdzdEdXb3JsZFN5bmNNZXNzYWdlQ2FsbGJhY2soR3N0QnVzKiwg
R3N0TWVzc2FnZSogbWVzc2FnZSwgZ3BvaW50ZXIgZGF0YSkKIHsKICAgICBBU1NFUlQoR1NUX01F
U1NBR0VfVFlQRShtZXNzYWdlKSA9PSBHU1RfTUVTU0FHRV9FTEVNRU5UKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCAyNDk3NWRhLi42
ZjU3MzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcApAQCAtMTU0Myw3ICsxNTQzLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6OnNldFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICBtX3NpemUgPSBzaXplOwogfQog
Ci12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0VmlzaWJsZShib29sIHZpc2li
bGUpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0VmlzaWJsZShib29sKQog
ewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwCmluZGV4IDA2ZWRkMzIuLmMy
YzBiZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwCkBAIC0zNjIsNyArMzYy
LDcgQEAgc3RhdGljIGdib29sZWFuIHdlYmtpdFZpZGVvU2lua1Byb3Bvc2VBbGxvY2F0aW9uKEdz
dEJhc2VTaW5rKiBiYXNlU2luaywgR3N0UXVlcnkKICNlbmRpZgogCiAjaWZuZGVmIEdTVF9BUElf
VkVSU0lPTl8xCi1zdGF0aWMgdm9pZCB3ZWJraXRWaWRlb1NpbmtNYXJzaGFsVm9pZEFuZE1pbmlP
YmplY3QoR0Nsb3N1cmUqIGNsb3N1cmUsIEdWYWx1ZSogcmV0dXJuVmFsdWUsIGd1aW50IHBhcmFt
ZXRlcnNOdW1iZXIsIGNvbnN0IEdWYWx1ZSogcGFyYW1ldGVyVmFsdWVzLCBncG9pbnRlciBpbnZv
Y2F0aW9uSGludCwgZ3BvaW50ZXIgbWFyc2hhbERhdGEpCitzdGF0aWMgdm9pZCB3ZWJraXRWaWRl
b1NpbmtNYXJzaGFsVm9pZEFuZE1pbmlPYmplY3QoR0Nsb3N1cmUqIGNsb3N1cmUsIEdWYWx1ZSos
IGd1aW50IHBhcmFtZXRlcnNOdW1iZXIsIGNvbnN0IEdWYWx1ZSogcGFyYW1ldGVyVmFsdWVzLCBn
cG9pbnRlciwgZ3BvaW50ZXIgbWFyc2hhbERhdGEpCiB7CiAgICAgdHlwZWRlZiB2b2lkICgqbWFy
c2hhbGZ1bmNfVk9JRF9fTUlOSU9CSkVDVCkgKGdwb2ludGVyIG9iaiwgZ3BvaW50ZXIgYXJnMSwg
Z3BvaW50ZXIgZGF0YTIpOwogICAgIG1hcnNoYWxmdW5jX1ZPSURfX01JTklPQkpFQ1QgY2FsbGJh
Y2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDc1
MDgxMjIuLjEwOTE4NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFt
ZXIuY3BwCkBAIC02MzAsNyArNjMwLDcgQEAgc3RhdGljIGdib29sZWFuIHdlYktpdFdlYlNyY1Nl
dFVyaShHc3RVUklIYW5kbGVyKiBoYW5kbGVyLCBjb25zdCBnY2hhciogdXJpKQogfQogI2VuZGlm
CiAKLXN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY1VyaUhhbmRsZXJJbml0KGdwb2ludGVyIGdJZmFj
ZSwgZ3BvaW50ZXIgaWZhY2VEYXRhKQorc3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjVXJpSGFuZGxl
ckluaXQoZ3BvaW50ZXIgZ0lmYWNlLCBncG9pbnRlcikKIHsKICAgICBHc3RVUklIYW5kbGVySW50
ZXJmYWNlKiBpZmFjZSA9IChHc3RVUklIYW5kbGVySW50ZXJmYWNlICopIGdJZmFjZTsKIApAQCAt
NjU1LDcgKzY1NSw3IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJLaXRXZWJTcmNOZWVkRGF0YU1haW5D
YihXZWJLaXRXZWJTcmMqIHNyYykKICAgICByZXR1cm4gRkFMU0U7CiB9CiAKLXN0YXRpYyB2b2lk
IHdlYktpdFdlYlNyY05lZWREYXRhQ2IoR3N0QXBwU3JjKiBhcHBzcmMsIGd1aW50IGxlbmd0aCwg
Z3BvaW50ZXIgdXNlckRhdGEpCitzdGF0aWMgdm9pZCB3ZWJLaXRXZWJTcmNOZWVkRGF0YUNiKEdz
dEFwcFNyYyosIGd1aW50IGxlbmd0aCwgZ3BvaW50ZXIgdXNlckRhdGEpCiB7CiAgICAgV2ViS2l0
V2ViU3JjKiBzcmMgPSBXRUJLSVRfV0VCX1NSQyh1c2VyRGF0YSk7CiAgICAgV2ViS2l0V2ViU3Jj
UHJpdmF0ZSogcHJpdiA9IHNyYy0+cHJpdjsKQEAgLTY4Niw3ICs2ODYsNyBAQCBzdGF0aWMgZ2Jv
b2xlYW4gd2ViS2l0V2ViU3JjRW5vdWdoRGF0YU1haW5DYihXZWJLaXRXZWJTcmMqIHNyYykKICAg
ICByZXR1cm4gRkFMU0U7CiB9CiAKLXN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY0Vub3VnaERhdGFD
YihHc3RBcHBTcmMqIGFwcHNyYywgZ3BvaW50ZXIgdXNlckRhdGEpCitzdGF0aWMgdm9pZCB3ZWJL
aXRXZWJTcmNFbm91Z2hEYXRhQ2IoR3N0QXBwU3JjKiwgZ3BvaW50ZXIgdXNlckRhdGEpCiB7CiAg
ICAgV2ViS2l0V2ViU3JjKiBzcmMgPSBXRUJLSVRfV0VCX1NSQyh1c2VyRGF0YSk7CiAgICAgV2Vi
S2l0V2ViU3JjUHJpdmF0ZSogcHJpdiA9IHNyYy0+cHJpdjsKQEAgLTcxMSw3ICs3MTEsNyBAQCBz
dGF0aWMgZ2Jvb2xlYW4gd2ViS2l0V2ViU3JjU2Vla01haW5DYihXZWJLaXRXZWJTcmMqIHNyYykK
ICAgICByZXR1cm4gRkFMU0U7CiB9CiAKLXN0YXRpYyBnYm9vbGVhbiB3ZWJLaXRXZWJTcmNTZWVr
RGF0YUNiKEdzdEFwcFNyYyogYXBwc3JjLCBndWludDY0IG9mZnNldCwgZ3BvaW50ZXIgdXNlckRh
dGEpCitzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0V2ViU3JjU2Vla0RhdGFDYihHc3RBcHBTcmMqLCBn
dWludDY0IG9mZnNldCwgZ3BvaW50ZXIgdXNlckRhdGEpCiB7CiAgICAgV2ViS2l0V2ViU3JjKiBz
cmMgPSBXRUJLSVRfV0VCX1NSQyh1c2VyRGF0YSk7CiAgICAgV2ViS2l0V2ViU3JjUHJpdmF0ZSog
cHJpdiA9IHNyYy0+cHJpdjsKQEAgLTg1Myw3ICs4NTMsNyBAQCB2b2lkIFN0cmVhbWluZ0NsaWVu
dDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZQogICAgICAgICBub3RpZnlHc3RUYWdzT25QYWQoR1NUX0VMRU1FTlQobV9zcmMpLCBtX3Ny
Yy0+cHJpdi0+c3JjcGFkLCB0YWdzKTsKIH0KIAotdm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRpZFJl
Y2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IGNoYXIqIGRhdGEsIGludCBs
ZW5ndGgsIGludCBlbmNvZGVkRGF0YUxlbmd0aCkKK3ZvaWQgU3RyZWFtaW5nQ2xpZW50OjpkaWRS
ZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQg
bGVuZ3RoLCBpbnQpCiB7CiAgICAgV2ViS2l0V2ViU3JjUHJpdmF0ZSogcHJpdiA9IG1fc3JjLT5w
cml2OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJm
YnV6ei9uZy9IYXJmQnV6ek5HRmFjZUNhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2hhcmZidXp6L25nL0hhcmZCdXp6TkdGYWNlQ2Fpcm8uY3BwCmluZGV4IDBmOWJi
NDMuLjUyZmNhN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2hhcmZidXp6L25nL0hhcmZCdXp6TkdGYWNlQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L25nL0hhcmZCdXp6TkdGYWNlQ2Fpcm8uY3BwCkBA
IC05MCw3ICs5MCw3IEBAIHN0YXRpYyB2b2lkIENhaXJvR2V0R2x5cGhXaWR0aEFuZEV4dGVudHMo
Y2Fpcm9fc2NhbGVkX2ZvbnRfdCogc2NhbGVkRm9udCwgaGJfY29kCiAgICAgfQogfQogCi1zdGF0
aWMgaGJfYm9vbF90IGhhcmZidXp6R2V0R2x5cGgoaGJfZm9udF90KiBoYkZvbnQsIHZvaWQqIGZv
bnREYXRhLCBoYl9jb2RlcG9pbnRfdCB1bmljb2RlLCBoYl9jb2RlcG9pbnRfdCB2YXJpYXRpb25T
ZWxlY3RvciwgaGJfY29kZXBvaW50X3QqIGdseXBoLCB2b2lkKiB1c2VyRGF0YSkKK3N0YXRpYyBo
Yl9ib29sX3QgaGFyZmJ1enpHZXRHbHlwaChoYl9mb250X3QqLCB2b2lkKiBmb250RGF0YSwgaGJf
Y29kZXBvaW50X3QgdW5pY29kZSwgaGJfY29kZXBvaW50X3QsIGhiX2NvZGVwb2ludF90KiBnbHlw
aCwgdm9pZCopCiB7CiAgICAgRm9udFBsYXRmb3JtRGF0YSogcGxhdGZvcm1EYXRhID0gcmVpbnRl
cnByZXRfY2FzdDxGb250UGxhdGZvcm1EYXRhKj4oZm9udERhdGEpOwogICAgIGNhaXJvX3NjYWxl
ZF9mb250X3QqIHNjYWxlZEZvbnQgPSBwbGF0Zm9ybURhdGEtPnNjYWxlZEZvbnQoKTsKQEAgLTEw
OCw3ICsxMDgsNyBAQCBzdGF0aWMgaGJfYm9vbF90IGhhcmZidXp6R2V0R2x5cGgoaGJfZm9udF90
KiBoYkZvbnQsIHZvaWQqIGZvbnREYXRhLCBoYl9jb2RlcG9pbgogICAgIHJldHVybiB0cnVlOwog
fQogCi1zdGF0aWMgaGJfcG9zaXRpb25fdCBoYXJmYnV6ekdldEdseXBoSG9yaXpvbnRhbEFkdmFu
Y2UoaGJfZm9udF90KiBoYkZvbnQsIHZvaWQqIGZvbnREYXRhLCBoYl9jb2RlcG9pbnRfdCBnbHlw
aCwgdm9pZCogdXNlckRhdGEpCitzdGF0aWMgaGJfcG9zaXRpb25fdCBoYXJmYnV6ekdldEdseXBo
SG9yaXpvbnRhbEFkdmFuY2UoaGJfZm9udF90Kiwgdm9pZCogZm9udERhdGEsIGhiX2NvZGVwb2lu
dF90IGdseXBoLCB2b2lkKikKIHsKICAgICBGb250UGxhdGZvcm1EYXRhKiBwbGF0Zm9ybURhdGEg
PSByZWludGVycHJldF9jYXN0PEZvbnRQbGF0Zm9ybURhdGEqPihmb250RGF0YSk7CiAgICAgY2Fp
cm9fc2NhbGVkX2ZvbnRfdCogc2NhbGVkRm9udCA9IHBsYXRmb3JtRGF0YS0+c2NhbGVkRm9udCgp
OwpAQCAtMTE5LDE0ICsxMTksMTQgQEAgc3RhdGljIGhiX3Bvc2l0aW9uX3QgaGFyZmJ1enpHZXRH
bHlwaEhvcml6b250YWxBZHZhbmNlKGhiX2ZvbnRfdCogaGJGb250LCB2b2lkKgogICAgIHJldHVy
biBhZHZhbmNlOwogfQogCi1zdGF0aWMgaGJfYm9vbF90IGhhcmZidXp6R2V0R2x5cGhIb3Jpem9u
dGFsT3JpZ2luKGhiX2ZvbnRfdCogaGJGb250LCB2b2lkKiBmb250RGF0YSwgaGJfY29kZXBvaW50
X3QgZ2x5cGgsIGhiX3Bvc2l0aW9uX3QqIHgsIGhiX3Bvc2l0aW9uX3QqIHksIHZvaWQqIHVzZXJE
YXRhKQorc3RhdGljIGhiX2Jvb2xfdCBoYXJmYnV6ekdldEdseXBoSG9yaXpvbnRhbE9yaWdpbiho
Yl9mb250X3QqLCB2b2lkKiwgaGJfY29kZXBvaW50X3QsIGhiX3Bvc2l0aW9uX3QqLCBoYl9wb3Np
dGlvbl90Kiwgdm9pZCopCiB7CiAgICAgLy8gSnVzdCByZXR1cm4gdHJ1ZSwgZm9sbG93aW5nIHRo
ZSB3YXkgdGhhdCBIYXJmYnV6ei1GcmVlVHlwZQogICAgIC8vIGltcGxlbWVudGF0aW9uIGRvZXMu
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBoYl9ib29sX3QgaGFyZmJ1enpHZXRHbHlw
aEV4dGVudHMoaGJfZm9udF90KiBoYkZvbnQsIHZvaWQqIGZvbnREYXRhLCBoYl9jb2RlcG9pbnRf
dCBnbHlwaCwgaGJfZ2x5cGhfZXh0ZW50c190KiBleHRlbnRzLCB2b2lkKiB1c2VyRGF0YSkKK3N0
YXRpYyBoYl9ib29sX3QgaGFyZmJ1enpHZXRHbHlwaEV4dGVudHMoaGJfZm9udF90Kiwgdm9pZCog
Zm9udERhdGEsIGhiX2NvZGVwb2ludF90IGdseXBoLCBoYl9nbHlwaF9leHRlbnRzX3QqIGV4dGVu
dHMsIHZvaWQqKQogewogICAgIEZvbnRQbGF0Zm9ybURhdGEqIHBsYXRmb3JtRGF0YSA9IHJlaW50
ZXJwcmV0X2Nhc3Q8Rm9udFBsYXRmb3JtRGF0YSo+KGZvbnREYXRhKTsKICAgICBjYWlyb19zY2Fs
ZWRfZm9udF90KiBzY2FsZWRGb250ID0gcGxhdGZvcm1EYXRhLT5zY2FsZWRGb250KCk7CkBAIC0x
NTMsNyArMTUzLDcgQEAgc3RhdGljIGhiX2ZvbnRfZnVuY3NfdCogaGFyZmJ1enpDYWlyb1RleHRH
ZXRGb250RnVuY3MoKQogICAgIHJldHVybiBoYXJmYnV6ekNhaXJvRm9udEZ1bmNzOwogfQogCi1z
dGF0aWMgaGJfYmxvYl90KiBoYXJmYnV6ekNhaXJvR2V0VGFibGUoaGJfZmFjZV90KiBmYWNlLCBo
Yl90YWdfdCB0YWcsIHZvaWQqIHVzZXJEYXRhKQorc3RhdGljIGhiX2Jsb2JfdCogaGFyZmJ1enpD
YWlyb0dldFRhYmxlKGhiX2ZhY2VfdCosIGhiX3RhZ190IHRhZywgdm9pZCogdXNlckRhdGEpCiB7
CiAgICAgRm9udFBsYXRmb3JtRGF0YSogZm9udCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Rm9udFBsYXRm
b3JtRGF0YSo+KHVzZXJEYXRhKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW1hZ2UtZGVjb2RlcnMvanBlZy9KUEVHSW1hZ2VEZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHAKaW5k
ZXggMjc1ZmZjMC4uMmFmNGRhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW1hZ2UtZGVjb2RlcnMvanBlZy9KUEVHSW1hZ2VEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29kZXIuY3BwCkBA
IC0xNTYsNiArMTU2LDcgQEAgc3RhdGljIENvbG9yUHJvZmlsZSByZWFkQ29sb3JQcm9maWxlKGpw
ZWdfZGVjb21wcmVzc19zdHJ1Y3QqIGluZm8pCiAgICAgZnJlZShwcm9maWxlKTsKICAgICByZXR1
cm4gY29sb3JQcm9maWxlOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oaW5mbyk7CiAgICAgcmV0
dXJuIENvbG9yUHJvZmlsZSgpOwogI2VuZGlmCiB9CkBAIC00NzUsNyArNDc2LDcgQEAgdm9pZCBl
cnJvcl9leGl0KGpfY29tbW9uX3B0ciBjaW5mbykKICAgICBsb25nam1wKGVyci0+c2V0am1wX2J1
ZmZlciwgLTEpOwogfQogCi12b2lkIGluaXRfc291cmNlKGpfZGVjb21wcmVzc19wdHIgamQpCit2
b2lkIGluaXRfc291cmNlKGpfZGVjb21wcmVzc19wdHIpCiB7CiB9CiAKQEAgLTQ4NSw3ICs0ODYs
NyBAQCB2b2lkIHNraXBfaW5wdXRfZGF0YShqX2RlY29tcHJlc3NfcHRyIGpkLCBsb25nIG51bV9i
eXRlcykKICAgICBzcmMtPmRlY29kZXItPnNraXBCeXRlcyhudW1fYnl0ZXMpOwogfQogCi1ib29s
ZWFuIGZpbGxfaW5wdXRfYnVmZmVyKGpfZGVjb21wcmVzc19wdHIgamQpCitib29sZWFuIGZpbGxf
aW5wdXRfYnVmZmVyKGpfZGVjb21wcmVzc19wdHIpCiB7CiAgICAgLy8gT3VyIGRlY29kZSBzdGVw
IGFsd2F5cyBzZXRzIHRoaW5ncyB1cCBwcm9wZXJseSwgc28gaWYgdGhpcyBtZXRob2QgaXMgZXZl
cgogICAgIC8vIGNhbGxlZCwgdGhlbiB3ZSBoYXZlIGhpdCB0aGUgZW5kIG9mIHRoZSBidWZmZXIu
ICBBIHJldHVybiB2YWx1ZSBvZiBmYWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW1hZ2UtZGVjb2RlcnMvcG5nL1BOR0ltYWdlRGVjb2Rlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1hZ2VEZWNvZGVyLmNwcAppbmRl
eCA4NTFiNmY5Li40NzAyNDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
bWFnZS1kZWNvZGVycy9wbmcvUE5HSW1hZ2VEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1hZ2VEZWNvZGVyLmNwcApAQCAtNDAx
LDcgKzQwMSw3IEBAIHZvaWQgUE5HSW1hZ2VEZWNvZGVyOjpoZWFkZXJBdmFpbGFibGUoKQogICAg
IH0KIH0KIAotdm9pZCBQTkdJbWFnZURlY29kZXI6OnJvd0F2YWlsYWJsZSh1bnNpZ25lZCBjaGFy
KiByb3dCdWZmZXIsIHVuc2lnbmVkIHJvd0luZGV4LCBpbnQgaW50ZXJsYWNlUGFzcykKK3ZvaWQg
UE5HSW1hZ2VEZWNvZGVyOjpyb3dBdmFpbGFibGUodW5zaWduZWQgY2hhciogcm93QnVmZmVyLCB1
bnNpZ25lZCByb3dJbmRleCwgaW50KQogewogICAgIGlmIChtX2ZyYW1lQnVmZmVyQ2FjaGUuaXNF
bXB0eSgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llU3RvcmFnZVNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZVN0b3JhZ2VTb3VwLmNwcAppbmRleCBmMzA5ZTVk
OC4uYmM4N2FmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL0Nvb2tpZVN0b3JhZ2VTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvQ29va2llU3RvcmFnZVNvdXAuY3BwCkBAIC0zMSw3ICszMSw3IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBzZXRDb29raWVTdG9yYWdlUHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZChib29sIGVuYWJsZWQpCit2b2lkIHNldENvb2tpZVN0b3JhZ2VQcml2YXRlQnJvd3Np
bmdFbmFibGVkKGJvb2wpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9ETlNTb3VwLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9ETlNTb3VwLmNwcAppbmRleCAxZjIyZTIx
Li45NGI2MGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvRE5TU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L0ROU1NvdXAuY3BwCkBAIC00Myw3ICs0Myw3IEBAIGJvb2wgRE5TUmVzb2x2ZVF1ZXVlOjpwbGF0
Zm9ybVByb3h5SXNFbmFibGVkSW5TeXN0ZW1QcmVmZXJlbmNlcygpCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCi1zdGF0aWMgdm9pZCByZXNvbHZlZENhbGxiYWNrKFNvdXBBZGRyZXNzKiBzb3VwQWRk
cmVzcywgZ3VpbnQgc3RhdHVzLCB2b2lkKiB1c2VyRGF0YSkKK3N0YXRpYyB2b2lkIHJlc29sdmVk
Q2FsbGJhY2soU291cEFkZHJlc3MqLCBndWludCwgdm9pZCopCiB7CiAgICAgRE5TUmVzb2x2ZVF1
ZXVlOjpzaGFyZWQoKS5kZWNyZW1lbnRSZXF1ZXN0Q291bnQoKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Qcm94eVJlc29sdmVyU291cC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUHJveHlSZXNvbHZlclNvdXAu
Y3BwCmluZGV4IDQ4NDA2ZjMuLjZmNmVkN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvc291cC9Qcm94eVJlc29sdmVyU291cC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Byb3h5UmVzb2x2ZXJTb3VwLmNwcApAQCAtNTUs
NyArNTUsNyBAQCBlbnVtIHsKICAgICBMQVNUX1BST1AKIH07CiAKLXN0YXRpYyB2b2lkIHNvdXBf
cHJveHlfcmVzb2x2ZXJfd2tfaW5pdChTb3VwUHJveHlSZXNvbHZlcldrKiByZXNvbHZlcldrKQor
c3RhdGljIHZvaWQgc291cF9wcm94eV9yZXNvbHZlcl93a19pbml0KFNvdXBQcm94eVJlc29sdmVy
V2sqKQogewogfQogCkBAIC0xNDQsNyArMTQ0LDcgQEAgc3RhdGljIGdib29sZWFuIGlkbGVfcmV0
dXJuX3Byb3h5X3VyaSh2b2lkKiBkYXRhKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RhdGlj
IHZvaWQgc291cFByb3h5UmVzb2x2ZXJXa0dldFByb3h5VVJJQXN5bmMoU291cFByb3h5VVJJUmVz
b2x2ZXIqIHByb3h5UmVzb2x2ZXIsIFNvdXBVUkkqIHVyaSwgR01haW5Db250ZXh0KiBhc3luY0Nv
bnRleHQsIEdDYW5jZWxsYWJsZSogY2FuY2VsbGFibGUsIFNvdXBQcm94eVVSSVJlc29sdmVyQ2Fs
bGJhY2sgY2FsbGJhY2ssIHZvaWQqIHVzZXJEYXRhKQorc3RhdGljIHZvaWQgc291cFByb3h5UmVz
b2x2ZXJXa0dldFByb3h5VVJJQXN5bmMoU291cFByb3h5VVJJUmVzb2x2ZXIqIHByb3h5UmVzb2x2
ZXIsIFNvdXBVUkkqIHVyaSwgR01haW5Db250ZXh0KiBhc3luY0NvbnRleHQsIEdDYW5jZWxsYWJs
ZSosIFNvdXBQcm94eVVSSVJlc29sdmVyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIHVzZXJEYXRh
KQogewogICAgIFNvdXBXa0FzeW5jRGF0YSogc3NhZDsKIApAQCAtMTU2LDcgKzE1Niw3IEBAIHN0
YXRpYyB2b2lkIHNvdXBQcm94eVJlc29sdmVyV2tHZXRQcm94eVVSSUFzeW5jKFNvdXBQcm94eVVS
SVJlc29sdmVyKiBwcm94eVJlc29sCiAgICAgc291cF9hZGRfY29tcGxldGlvbihhc3luY0NvbnRl
eHQsIGlkbGVfcmV0dXJuX3Byb3h5X3VyaSwgc3NhZCk7CiB9CiAKLXN0YXRpYyB1aW50IHNvdXBQ
cm94eVJlc29sdmVyV2tHZXRQcm94eVVSSVN5bmMoU291cFByb3h5VVJJUmVzb2x2ZXIqIHByb3h5
UmVzb2x2ZXIsIFNvdXBVUkkqIHVyaSwgR0NhbmNlbGxhYmxlKiBjYW5jZWxsYWJsZSwgU291cFVS
SSoqIHByb3h5VVJJKQorc3RhdGljIHVpbnQgc291cFByb3h5UmVzb2x2ZXJXa0dldFByb3h5VVJJ
U3luYyhTb3VwUHJveHlVUklSZXNvbHZlciogcHJveHlSZXNvbHZlciwgU291cFVSSSogdXJpLCBH
Q2FuY2VsbGFibGUqLCBTb3VwVVJJKiogcHJveHlVUkkpCiB7CiAgICAgU291cFByb3h5UmVzb2x2
ZXJXa1ByaXZhdGUqIHByaXYgPSBTT1VQX1BST1hZX1JFU09MVkVSX1dLX0dFVF9QUklWQVRFKHBy
b3h5UmVzb2x2ZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCmluZGV4IDMwYTJkZTQuLjUxYzkx
OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNv
dXJjZUhhbmRsZVNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCkBAIC00MTAsNyArNDEwLDcgQEAgc3RhdGljIGlu
bGluZSBib29sIGhhc1VuaWdub3JlZFRMU0Vycm9ycyhSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQog
ICAgICAgICAmJiAhYWxsb3dzQW55SFRUUFNDZXJ0aWZpY2F0ZUhvc3RzKCkuY29udGFpbnMoaGFu
ZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKS5ob3N0KCkubG93ZXIoKSk7CiB9CiAKLXN0YXRpYyB2
b2lkIHNlbmRSZXF1ZXN0Q2FsbGJhY2soR09iamVjdCogc291cmNlLCBHQXN5bmNSZXN1bHQqIHJl
cywgZ3BvaW50ZXIgZGF0YSkKK3N0YXRpYyB2b2lkIHNlbmRSZXF1ZXN0Q2FsbGJhY2soR09iamVj
dCosIEdBc3luY1Jlc3VsdCogcmVzLCBncG9pbnRlciBkYXRhKQogewogICAgIFJlZlB0cjxSZXNv
dXJjZUhhbmRsZT4gaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihkYXRhKTsK
IApAQCAtNTQzLDcgKzU0Myw3IEBAIHN0YXRpYyB2b2lkIGFkZEVuY29kZWRCbG9iVG9Tb3VwTWVz
c2FnZUJvZHkoU291cE1lc3NhZ2UqIG1lc3NhZ2UsIGNvbnN0IEZvcm1EYXRhCiB9CiAjZW5kaWYg
Ly8gRU5BQkxFKEJMT0IpCiAKLXN0YXRpYyBib29sIGFkZEZvcm1FbGVtZW50c1RvU291cE1lc3Nh
Z2UoU291cE1lc3NhZ2UqIG1lc3NhZ2UsIGNvbnN0IGNoYXIqIGNvbnRlbnRUeXBlLCBGb3JtRGF0
YSogaHR0cEJvZHksIHVuc2lnbmVkIGxvbmcmIHRvdGFsQm9keVNpemUpCitzdGF0aWMgYm9vbCBh
ZGRGb3JtRWxlbWVudHNUb1NvdXBNZXNzYWdlKFNvdXBNZXNzYWdlKiBtZXNzYWdlLCBjb25zdCBj
aGFyKiwgRm9ybURhdGEqIGh0dHBCb2R5LCB1bnNpZ25lZCBsb25nJiB0b3RhbEJvZHlTaXplKQog
ewogICAgIHNvdXBfbWVzc2FnZV9ib2R5X3NldF9hY2N1bXVsYXRlKG1lc3NhZ2UtPnJlcXVlc3Rf
Ym9keSwgRkFMU0UpOwogICAgIHNpemVfdCBudW1FbGVtZW50cyA9IGh0dHBCb2R5LT5lbGVtZW50
cygpLnNpemUoKTsKQEAgLTU5NCw3ICs1OTQsNyBAQCBzdGF0aWMgdm9pZCB3cm90ZUJvZHlDYWxs
YmFjayhTb3VwTWVzc2FnZSosIGdwb2ludGVyIGRhdGEpCiAgICAgZC0+bV9yZXNwb25zZS5yZXNv
dXJjZUxvYWRUaW1pbmcoKS0+c2VuZEVuZCA9IG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KGQtPm1f
cmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnJlcXVlc3RUaW1lKTsKIH0KIAotc3RhdGlj
IHZvaWQgcmVxdWVzdFN0YXJ0ZWRDYWxsYmFjayhTb3VwU2Vzc2lvbiosIFNvdXBNZXNzYWdlKiBz
b3VwTWVzc2FnZSwgU291cFNvY2tldCosIGdwb2ludGVyIGRhdGEpCitzdGF0aWMgdm9pZCByZXF1
ZXN0U3RhcnRlZENhbGxiYWNrKFNvdXBTZXNzaW9uKiwgU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdl
LCBTb3VwU29ja2V0KiwgZ3BvaW50ZXIpCiB7CiAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBo
YW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRsZSo+KGdfb2JqZWN0X2dldF9kYXRhKEdf
T0JKRUNUKHNvdXBNZXNzYWdlKSwgImhhbmRsZSIpKTsKICAgICBpZiAoIWhhbmRsZSkKQEAgLTkw
NSw3ICs5MDUsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91
c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdAogICAgIHN5bmNMb2FkZXIucnVu
KCk7CiB9CiAKLXN0YXRpYyB2b2lkIGNsb3NlQ2FsbGJhY2soR09iamVjdCogc291cmNlLCBHQXN5
bmNSZXN1bHQqIHJlcywgZ3BvaW50ZXIgZGF0YSkKK3N0YXRpYyB2b2lkIGNsb3NlQ2FsbGJhY2so
R09iamVjdCosIEdBc3luY1Jlc3VsdCogcmVzLCBncG9pbnRlciBkYXRhKQogewogICAgIFJlZlB0
cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihk
YXRhKTsKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5h
bCgpOwpAQCAtOTE5LDcgKzkxOSw3IEBAIHN0YXRpYyB2b2lkIGNsb3NlQ2FsbGJhY2soR09iamVj
dCogc291cmNlLCBHQXN5bmNSZXN1bHQqIHJlcywgZ3BvaW50ZXIgZGF0YSkKICAgICBjbGVhbnVw
U291cFJlcXVlc3RPcGVyYXRpb24oaGFuZGxlLmdldCgpKTsKIH0KIAotc3RhdGljIHZvaWQgcmVh
ZENhbGxiYWNrKEdPYmplY3QqIHNvdXJjZSwgR0FzeW5jUmVzdWx0KiBhc3luY1Jlc3VsdCwgZ3Bv
aW50ZXIgZGF0YSkKK3N0YXRpYyB2b2lkIHJlYWRDYWxsYmFjayhHT2JqZWN0KiwgR0FzeW5jUmVz
dWx0KiBhc3luY1Jlc3VsdCwgZ3BvaW50ZXIgZGF0YSkKIHsKICAgICBSZWZQdHI8UmVzb3VyY2VI
YW5kbGU+IGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4oZGF0YSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCmluZGV4IDY2YzM3ZWMuLmU0MjU5
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcApAQCAtNjkzLDYg
KzY5Myw5IEBAIHZvaWQgUmVuZGVyVGhlbWU6OmFkanVzdFJlcGFpbnRSZWN0KGNvbnN0IFJlbmRl
ck9iamVjdCogbywgSW50UmVjdCYgcikKIHsKICNpZiBVU0UoTkVXX1RIRU1FKQogICAgIG1fdGhl
bWUtPmluZmxhdGVDb250cm9sUGFpbnRSZWN0KG8tPnN0eWxlKCktPmFwcGVhcmFuY2UoKSwgY29u
dHJvbFN0YXRlc0ZvclJlbmRlcmVyKG8pLCByLCBvLT5zdHlsZSgpLT5lZmZlY3RpdmVab29tKCkp
OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obyk7CisgICAgVU5VU0VEX1BBUkFNKHIpOwogI2Vu
ZGlmCiB9CiAK
</data>
<flag name="review"
          id="175702"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164057</attachid>
            <date>2012-09-13 23:45:37 -0700</date>
            <delta_ts>2012-09-13 23:57:07 -0700</delta_ts>
            <desc>patch</desc>
            <filename>fix_webcore_unused_parameter_warning_3.txt</filename>
            <type>text/plain</type>
            <size>49027</size>
            <attacher name="Kangil Han">kangil.han</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzMTUyYzk3Li44NGQ4NDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQ1
IEBACisyMDEyLTA5LTEzICBLYW5naWwgSGFuICA8a2FuZ2lsLmhhbkBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBGaXggdW51c2VkIHBhcmFtZXRlciBjb21waWxlIHdhcm5pbmdzIGluIFdlYkNvcmUu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjcxMgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeGVkIHVu
dXNlZCBwYXJhbWV0ZXIgY29tcGlsZSB3YXJuaW5nIG1lc3NhZ2VzKC1XdW51c2VkLXBhcmFtZXRl
cikgZHVyaW5nIEVGTCBidWlsZC4KKyAgICAgICAgVGhlcmUgYXJlIHR3byBraW5kcyBvZiBzdHVm
ZiByZWxhdGVkIHRvIHRoaXMgd2FybmluZ3MuCisgICAgICAgIEZpcnN0IG9uZSBpcyB0aGF0IHRo
ZSBwYXJhbWV0ZXIgdmFsdWUgaGFzIG5vdCBiZWVuIHVzZWQgYW55d2hlcmUgaW5zaWRlIHRoZSBm
dW5jdGlvbi4KKyAgICAgICAgT3RoZXIgb25lIGlzIHRoYXQgdXNhYmlsaXR5IG9mIHBhcmFtZXRl
ciB2YWx1ZSBpcyBkZXBlbmRlZCBvbiBvcHRpb24sIGkuZS4gQUNDRVNTSUJJTElUWS4KKworICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6c2V0RW5oYW5jZWRVc2VySW50ZXJmYWNlQWNjZXNzaWJpbGl0eSk6Cisg
ICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclBhZ2VBZ2VudDo6c2V0R2VvbG9jYXRpb25PdmVycmlkZSk6CisgICAgICAgICog
bG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRl
ckNsaWVudDo6cmVnaXN0ZXJJbnRlbnRTZXJ2aWNlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpsYXllclRyZWVBc1RleHQpOgorICAgICAgICAq
IHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0U2Ny
b2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZCk6CisgICAgICAgICogcGFnZS9lZmwvRXZl
bnRIYW5kbGVyRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dGFic1Rv
QWxsRm9ybUNvbnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6cGFzc01v
dXNlRG93bkV2ZW50VG9XaWRnZXQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNjcm9sbExheWVyRm9yRnJhbWVW
aWV3KToKKyAgICAgICAgKiBwbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6bWFpbkJ1bmRsZUlzRXF1YWxUbyk6CisgICAgICAgICogcGxhdGZv
cm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpwbGF0Zm9y
bVNldFNjcm9sbE9yaWdpbik6CisgICAgICAgICogcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2lu
Z1N0b3JlQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlU3VyZmFjZUZvckJhY2tp
bmdTdG9yZSk6CisgICAgICAgICogcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51RWZsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnBsYXRmb3JtTWVudURlc2NyaXB0aW9uKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9lZmwvQ29udGV4dE1lbnVJdGVtRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
eHRNZW51SXRlbTo6Q29udGV4dE1lbnVJdGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvRHJh
Z0RhdGFFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6OmFzRmlsZW5hbWVzKToK
KyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpjb250YWluc1VSTCk6CisgICAgICAgIChXZWJD
b3JlOjpEcmFnRGF0YTo6YXNVUkwpOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9HYW1lcGFkc0Vm
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHYW1lcGFkc0VmbDo6b25HYW1lUGFkQ2hhbmdlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjppbWFnZVRpdGxlKToKKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsaXplZE1lZGlh
Q29udHJvbEVsZW1lbnRTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6bG9jYWxpemVkTWVkaWFD
b250cm9sRWxlbWVudEhlbHBUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsaXplZE1lZGlh
VGltZURlc2NyaXB0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVmbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6
OlBhc3RlYm9hcmQ6OmRvY3VtZW50RnJhZ21lbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9Q
bGF0Zm9ybVNjcmVlbkVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5SZWN0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVFZmw6OmFkanVzdFNsaWRlclRyYWNrU3R5bGUpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWVFZmw6OnN5c3RlbUZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVFZmw6OnBhaW50TWVkaWFTbGlkZXJUaHVtYik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZUVmbDo6cGFpbnRNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5lcik6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6cGFpbnRNZWRpYVZvbHVtZVNsaWRlclRyYWNrKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lRWZsOjpwYWludE1lZGlhVm9sdW1lU2xpZGVy
VGh1bWIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVFZmw6OnBhaW50TWVkaWFDdXJy
ZW50VGltZSk6CisgICAgICAgICogcGxhdGZvcm0vZWZsL1Njcm9sbGJhckVmbC5jcHA6CisgICAg
ICAgIChzY3JvbGxiYXJFZmxFZGplTWVzc2FnZSk6CisgICAgICAgICogcGxhdGZvcm0vZWZsL1Nj
cm9sbGJhclRoZW1lRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lRWZs
OjpzY3JvbGxiYXJUaGlja25lc3MpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVF
Zmw6OnJlZ2lzdGVyU2Nyb2xsYmFyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1l
RWZsOjp1bnJlZ2lzdGVyU2Nyb2xsYmFyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvVGVtcG9y
YXJ5TGlua1N0dWJzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNpZ25lZFB1YmxpY0tleUFuZENo
YWxsZW5nZVN0cmluZyk6CisgICAgICAgICogcGxhdGZvcm0vZWZsL1dpZGdldEVmbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXaWRnZXQ6OnNldEZvY3VzKToKKyAgICAgICAgKFdlYkNvcmU6Oldp
ZGdldDo6cGFpbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtVGV4
dERyYXdpbmdNb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6b3JpZW50YXRpb25BdEluZGV4KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllcjo6c3VwcG9ydHNUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9Gb250Q2Fpcm9IYXJmYnV6ek5HLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnQ6OmRyYXdDb21wbGV4VGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWRqdXN0Rm9j
dXNSaW5nTGluZVdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJh
d0xpbmVGb3JUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0UGxh
dGZvcm1GaWxsQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRQ
bGF0Zm9ybVN0cm9rZUNvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6
c2V0VVJMRm9yUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNldFBs
YXRmb3JtU2hhZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZmlsbFJv
dW5kZWRSZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0Nv
bnRleHRQbGF0Zm9ybVByaXZhdGVDYWlyby5oOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0UGxhdGZvcm1Qcml2YXRlOjpzeW5jQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bWFnZUJ1ZmZlckRhdGE6OkltYWdlQnVmZmVyRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vSW1hZ2VDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZTo6ZHJh
d1BhdHRlcm4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VmbC9JY29uRWZsLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okljb246OmNyZWF0ZUljb25Gb3JGaWxlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpJY29uOjpwYWludCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5
cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpn
ZXRTaW1pbGFyRm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6
OmdldFRyYWl0c0luRmFtaWx5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvR1N0cmVhbWVyR1dvcmxkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdzdEdXb3JsZFN5bmNN
ZXNzYWdlQ2FsbGJhY2spOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwOgorICAgICAgICAod2Via2l0Vmlk
ZW9TaW5rTWFyc2hhbFZvaWRBbmRNaW5pT2JqZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKHdl
YktpdFdlYlNyY1VyaUhhbmRsZXJJbml0KToKKyAgICAgICAgKHdlYktpdFdlYlNyY05lZWREYXRh
Q2IpOgorICAgICAgICAod2ViS2l0V2ViU3JjRW5vdWdoRGF0YUNiKToKKyAgICAgICAgKHdlYktp
dFdlYlNyY1NlZWtEYXRhQ2IpOgorICAgICAgICAoU3RyZWFtaW5nQ2xpZW50OjpkaWRSZWNlaXZl
RGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovbmcvSGFyZkJ1enpO
R0ZhY2VDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpoYXJmYnV6ekdldEdseXBoKToKKyAg
ICAgICAgKFdlYkNvcmU6OmhhcmZidXp6R2V0R2x5cGhIb3Jpem9udGFsQWR2YW5jZSk6CisgICAg
ICAgIChXZWJDb3JlOjpoYXJmYnV6ekdldEdseXBoSG9yaXpvbnRhbE9yaWdpbik6CisgICAgICAg
IChXZWJDb3JlOjpoYXJmYnV6ekdldEdseXBoRXh0ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpo
YXJmYnV6ekNhaXJvR2V0VGFibGUpOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJz
L2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZWFkQ29sb3JQ
cm9maWxlKToKKyAgICAgICAgKFdlYkNvcmU6OmluaXRfc291cmNlKToKKyAgICAgICAgKFdlYkNv
cmU6OmZpbGxfaW5wdXRfYnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVy
cy9wbmcvUE5HSW1hZ2VEZWNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBOR0ltYWdlRGVj
b2Rlcjo6cm93QXZhaWxhYmxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29v
a2llU3RvcmFnZVNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0Q29va2llU3RvcmFnZVBy
aXZhdGVCcm93c2luZ0VuYWJsZWQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9E
TlNTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlc29sdmVkQ2FsbGJhY2spOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9Qcm94eVJlc29sdmVyU291cC5jcHA6CisgICAgICAg
IChzb3VwX3Byb3h5X3Jlc29sdmVyX3drX2luaXQpOgorICAgICAgICAoc291cFByb3h5UmVzb2x2
ZXJXa0dldFByb3h5VVJJQXN5bmMpOgorICAgICAgICAoc291cFByb3h5UmVzb2x2ZXJXa0dldFBy
b3h5VVJJU3luYyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFu
ZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZW5kUmVxdWVzdENhbGxiYWNrKToKKyAg
ICAgICAgKFdlYkNvcmU6OmFkZEZvcm1FbGVtZW50c1RvU291cE1lc3NhZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6cmVxdWVzdFN0YXJ0ZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpjbG9z
ZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OnJlYWRDYWxsYmFjayk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
OjphZGp1c3RSZXBhaW50UmVjdCk6CisKIDIwMTItMDktMTMgIFRvbSBTZXBleiAgPHRzZXBlekBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgQVNTRVJUKCFldmVudERpc3BhdGNoRm9yYmlkZGVuKCkp
IGZpcmVzIHdoZW4gcmVtb3ZlZCBwbHVnaW4gcmUtaW5zZXJ0ZWQgYXMgcGFydCBvZiByZWFkeVN0
YXRlQ2hhbmdlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
aAppbmRleCAxMDAxY2YyLi44ZjBmNzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtMTE0LDcgKzExNCw3IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgYm9vbCBhY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZCgpIHsgcmV0
dXJuIGdBY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZDsgfQogI2Vsc2UK
ICAgICBzdGF0aWMgdm9pZCBlbmFibGVBY2Nlc3NpYmlsaXR5KCkgeyB9Ci0gICAgc3RhdGljIHZv
aWQgc2V0RW5oYW5jZWRVc2VySW50ZXJmYWNlQWNjZXNzaWJpbGl0eShib29sIGZsYWcpIHsgfQor
ICAgIHN0YXRpYyB2b2lkIHNldEVuaGFuY2VkVXNlckludGVyZmFjZUFjY2Vzc2liaWxpdHkoYm9v
bCkgeyB9CiAgICAgc3RhdGljIGJvb2wgYWNjZXNzaWJpbGl0eUVuYWJsZWQoKSB7IHJldHVybiBm
YWxzZTsgfQogICAgIHN0YXRpYyBib29sIGFjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZh
Y2VFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KICNlbmRpZgpAQCAtMjQzLDkgKzI0Myw5IEBA
IGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGJhclVwZGF0ZShTY3JvbGxW
aWV3KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxlZFRvQW5j
aG9yKGNvbnN0IE5vZGUqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0
Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBT
dHJpbmcmKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5z
aWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQotaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dE5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgRG9jdW1lbnQqLCBBWE5vdGlmaWNh
dGlvbiwgYm9vbCBwb3N0VG9FbGVtZW50LCBQb3N0VHlwZSkgeyB9Ci1pbmxpbmUgdm9pZCBBWE9i
amVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKFJlbmRlck9iamVjdCosIEFYTm90aWZpY2F0aW9u
LCBib29sIHBvc3RUb0VsZW1lbnQsIFBvc3RUeXBlKSB7IH0KLWlubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBib29sIHBvc3RU
b0VsZW1lbnQsIFBvc3RUeXBlKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RO
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERvY3VtZW50KiwgQVhOb3RpZmljYXRp
b24sIGJvb2wsIFBvc3RUeXBlKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RO
b3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiwgQVhOb3RpZmljYXRpb24sIGJvb2wsIFBvc3RUeXBl
KSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oTm9kZSos
IEFYTm90aWZpY2F0aW9uLCBib29sLCBQb3N0VHlwZSkgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFY
Tm90aWZpY2F0aW9uKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlbW92ZShBWElE
KSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlbW92ZShSZW5kZXJPYmplY3QqKSB7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAK
aW5kZXggNzA3Yzc1MS4uZmEyM2FhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKQEAgLTEwMTgsNiArMTAxOCw5IEBAIHZvaWQgSW5zcGVj
dG9yUGFnZUFnZW50OjpzZXRHZW9sb2NhdGlvbk92ZXJyaWRlKEVycm9yU3RyaW5nKiBlcnJvciwg
Y29uc3QgZG91YmxlCiAgICAgY29udHJvbGxlci0+cG9zaXRpb25DaGFuZ2VkKDApOyAvLyBLaWNr
IGxvY2F0aW9uIHVwZGF0ZS4KICNlbHNlCiAgICAgKmVycm9yID0gIkdlb2xvY2F0aW9uIGlzIG5v
dCBhdmFpbGFibGUuIjsKKyAgICBVTlVTRURfUEFSQU0obGF0aXR1ZGUpOworICAgIFVOVVNFRF9Q
QVJBTShsb25naXR1ZGUpOworICAgIFVOVVNFRF9QQVJBTShhY2N1cmFjeSk7CiAjZW5kaWYKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBiZTgxMDI4
Li42NjhlZGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApA
QCAtMzM0LDcgKzMzNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2
b2lkIGRpc3BhdGNoSW50ZW50KFBhc3NSZWZQdHI8SW50ZW50UmVxdWVzdD4pID0gMDsKICNlbmRp
ZgogI2lmIEVOQUJMRShXRUJfSU5URU5UU19UQUcpCi0gICAgICAgIHZpcnR1YWwgdm9pZCByZWdp
c3RlckludGVudFNlcnZpY2UoY29uc3QgU3RyaW5nJiBhY3Rpb24sIGNvbnN0IFN0cmluZyYgdHlw
ZSwgY29uc3QgS1VSTCYgaHJlZiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBk
aXNwb3NpdGlvbikgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckludGVudFNlcnZp
Y2UoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYpIHsgfQogI2VuZGlmCiAKICAgICAgICAgdmlydHVhbCB2b2lkIGRp
c3BhdGNoV2lsbE9wZW5Tb2NrZXRTdHJlYW0oU29ja2V0U3RyZWFtSGFuZGxlKikgeyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWUuY3BwCmluZGV4IDg1YzJhMzMuLmZiNjVkNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3Bw
CkBAIC04ODYsNiArODg2LDcgQEAgU3RyaW5nIEZyYW1lOjpsYXllclRyZWVBc1RleHQoYm9vbCBz
aG93RGVidWdJbmZvKSBjb25zdAogCiAgICAgcmV0dXJuIGNvbnRlbnRSZW5kZXJlcigpLT5jb21w
b3NpdG9yKCktPmxheWVyVHJlZUFzVGV4dChzaG93RGVidWdJbmZvKTsKICNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKHNob3dEZWJ1Z0luZm8pOwogICAgIHJldHVybiBTdHJpbmcoKTsKICNlbmRpZgog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IGQ2ZDZjNTYuLjI5MjU4MjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTM3MTAsNiArMzcxMCw4IEBAIHZvaWQgRnJhbWVW
aWV3OjpzZXRTY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKGJvb2wgZmxhZykKICNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKFRpbGVkQmFja2luZyogdGls
ZWRCYWNraW5nID0gdGhpcy0+dGlsZWRCYWNraW5nKCkpCiAgICAgICAgIHRpbGVkQmFja2luZy0+
c2V0U2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZChmbGFnKTsKKyNlbHNlCisgICAg
VU5VU0VEX1BBUkFNKGZsYWcpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Vm
bC9FdmVudEhhbmRsZXJFZmwuY3BwCmluZGV4IGE1ODU5MDguLmRiNjk1ODkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcApAQCAtNTAsNyArNTAsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjb25zdCBkb3VibGUgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0Rl
bGF5ID0gMC4wOwogI2VuZGlmCiAKLWJvb2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29u
dHJvbHMoS2V5Ym9hcmRFdmVudCogZXZlbnQpIGNvbnN0Citib29sIEV2ZW50SGFuZGxlcjo6dGFi
c1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQqKSBjb25zdAogewogICAgIHJldHVybiB0
cnVlOwogfQpAQCAtNzYsNyArNzYsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6cGFzc1dpZGdldE1v
dXNlRG93bkV2ZW50VG9XaWRnZXQoUmVuZGVyV2lkZ2V0KiByZW5kZXJXaWRnZXQpCiAgICAgcmV0
dXJuIHBhc3NNb3VzZURvd25FdmVudFRvV2lkZ2V0KHJlbmRlcldpZGdldC0+d2lkZ2V0KCkpOwog
fQogCi1ib29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlRG93bkV2ZW50VG9XaWRnZXQoV2lkZ2V0
KiB3aWRnZXQpCitib29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlRG93bkV2ZW50VG9XaWRnZXQo
V2lkZ2V0KikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBmYWxzZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmNwcAppbmRleCBiYzQ5M2E4Li5hNjAxOGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBAIC0yMTgsNiAr
MjE4LDcgQEAgc3RhdGljIEdyYXBoaWNzTGF5ZXIqIHNjcm9sbExheWVyRm9yRnJhbWVWaWV3KEZy
YW1lVmlldyogZnJhbWVWaWV3KQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gcmVuZGVy
Vmlldy0+Y29tcG9zaXRvcigpLT5zY3JvbGxMYXllcigpOwogI2Vsc2UKKyAgICBVTlVTRURfUEFS
QU0oZnJhbWVWaWV3KTsKICAgICByZXR1cm4gMDsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAKaW5kZXggMDRi
N2E4Mi4uMWI4ZDAwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50
aW1lQXBwbGljYXRpb25DaGVja3MuY3BwCkBAIC00OSw2ICs0OSw3IEBAIHN0YXRpYyBib29sIG1h
aW5CdW5kbGVJc0VxdWFsVG8oY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyU3RyaW5nKQog
ICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gYnVuZGxlSWRlbnRpZmllclRvQ29tcGFyZShBZG9w
dENGLCBidW5kbGVJZGVudGlmaWVyU3RyaW5nLmNyZWF0ZUNGU3RyaW5nKCkpOwogICAgIHJldHVy
biBDRlN0cmluZ0NvbXBhcmUoYnVuZGxlSWRlbnRpZmllciwgYnVuZGxlSWRlbnRpZmllclRvQ29t
cGFyZS5nZXQoKSwgMCkgPT0ga0NGQ29tcGFyZUVxdWFsVG87CiAjZWxzZQorICAgIFVOVVNFRF9Q
QVJBTShidW5kbGVJZGVudGlmaWVyU3RyaW5nKTsKICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKaW5kZXggODVkNzVkYS4uODIx
ZDdmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKQEAgLTEzNjIsNyAr
MTM2Miw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6cGxhdGZvcm1TZXRTY3JvbGxiYXJzU3VwcHJlc3Nl
ZChib29sKQogewogfQogCi12b2lkIFNjcm9sbFZpZXc6OnBsYXRmb3JtU2V0U2Nyb2xsT3JpZ2lu
KGNvbnN0IEludFBvaW50JiwgYm9vbCB1cGRhdGVQb3NpdGlvbkF0QWxsLCBib29sIHVwZGF0ZVBv
c2l0aW9uU3luY2hyb25vdXNseSkKK3ZvaWQgU2Nyb2xsVmlldzo6cGxhdGZvcm1TZXRTY3JvbGxP
cmlnaW4oY29uc3QgSW50UG9pbnQmLCBib29sLCBib29sKQogewogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWlyby9XaWRnZXRCYWNraW5nU3RvcmVDYWlyby5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWlyby9XaWRnZXRCYWNraW5nU3RvcmVDYWlyby5j
cHAKaW5kZXggZGZhNzNlYy4uMWRlYzdjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NhaXJvL1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNwcApAQCAtMzcsNiAr
MzcsNyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IGNyZWF0ZVN1cmZhY2VG
b3JCYWNraW5nU3RvcmUoUGxhdGZvcm1XaWRnZXQgdwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQ0FJUk9fQ09OVEVOVF9DT0xPUl9BTFBIQSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemUud2lkdGgoKSwgc2l6ZS5o
ZWlnaHQoKSk7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh3aWRnZXQpOwogICAgIHJldHVybiBh
ZG9wdFJlZihjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZShDQUlST19GT1JNQVRfQVJHQjMyLCBz
aXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51RWZsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2VmbC9Db250ZXh0TWVudUVmbC5jcHAKaW5kZXggNTExMGFiZC4uY2RhZWQ5
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51RWZs
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVFZmwuY3Bw
CkBAIC05MSw3ICs5MSw3IEBAIFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIENvbnRleHRNZW51Ojpy
ZWxlYXNlUGxhdGZvcm1EZXNjcmlwdGlvbigpCiAgICAgcmV0dXJuIFBsYXRmb3JtTWVudURlc2Ny
aXB0aW9uKCk7CiB9CiAKLVBsYXRmb3JtTWVudURlc2NyaXB0aW9uIHBsYXRmb3JtTWVudURlc2Ny
aXB0aW9uKFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+JiBtZW51SXRlbVZlY3RvcikKK1BsYXRmb3Jt
TWVudURlc2NyaXB0aW9uIHBsYXRmb3JtTWVudURlc2NyaXB0aW9uKFZlY3RvcjxDb250ZXh0TWVu
dUl0ZW0+JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51SXRlbUVmbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVJdGVtRWZsLmNwcAppbmRl
eCBjNGVkMDY3Li40YTI0M2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvQ29udGV4dE1lbnVJdGVtRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvQ29udGV4dE1lbnVJdGVtRWZsLmNwcApAQCAtNTIsNyArNTIsNyBAQCBDb250ZXh0TWVudUl0
ZW06OkNvbnRleHRNZW51SXRlbShDb250ZXh0TWVudUl0ZW1UeXBlIHR5cGUsIENvbnRleHRNZW51
QWN0aW9uIGFjdAogICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi50aXRsZSA9IHRpdGxlOwogfQog
Ci1Db250ZXh0TWVudUl0ZW06OkNvbnRleHRNZW51SXRlbShDb250ZXh0TWVudUFjdGlvbiwgY29u
c3QgU3RyaW5nJiwgYm9vbCBlbmFibGVkLCBib29sIGNoZWNrZWQsIFZlY3RvcjxDb250ZXh0TWVu
dUl0ZW0+JiBzdWJNZW51SXRlbXMpCitDb250ZXh0TWVudUl0ZW06OkNvbnRleHRNZW51SXRlbShD
b250ZXh0TWVudUFjdGlvbiwgY29uc3QgU3RyaW5nJiwgYm9vbCwgYm9vbCwgVmVjdG9yPENvbnRl
eHRNZW51SXRlbT4mKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvRHJhZ0RhdGFFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0RyYWdE
YXRhRWZsLmNwcAppbmRleCA5ZDdlOWNhLi5kY2FmNDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvRHJhZ0RhdGFFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2VmbC9EcmFnRGF0YUVmbC5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgdW5zaWduZWQgRHJh
Z0RhdGE6Om51bWJlck9mRmlsZXMoKSBjb25zdAogICAgIHJldHVybiAwOwogfQogCi12b2lkIERy
YWdEYXRhOjphc0ZpbGVuYW1lcyhWZWN0b3I8U3RyaW5nPiYgcmVzdWx0KSBjb25zdAordm9pZCBE
cmFnRGF0YTo6YXNGaWxlbmFtZXMoVmVjdG9yPFN0cmluZz4mKSBjb25zdAogewogfQogCkBAIC03
MCwxMiArNzAsMTIgQEAgYm9vbCBEcmFnRGF0YTo6Y29udGFpbnNDb21wYXRpYmxlQ29udGVudCgp
IGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIERyYWdEYXRhOjpjb250YWluc1VS
TChGcmFtZSosIEZpbGVuYW1lQ29udmVyc2lvblBvbGljeSBmaWxlbmFtZVBvbGljeSkgY29uc3QK
K2Jvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zVVJMKEZyYW1lKiwgRmlsZW5hbWVDb252ZXJzaW9uUG9s
aWN5KSBjb25zdAogewogICAgIHJldHVybiBmYWxzZTsKIH0KIAotU3RyaW5nIERyYWdEYXRhOjph
c1VSTChGcmFtZSosIEZpbGVuYW1lQ29udmVyc2lvblBvbGljeSBmaWxlbmFtZVBvbGljeSwgU3Ry
aW5nKiB0aXRsZSkgY29uc3QKK1N0cmluZyBEcmFnRGF0YTo6YXNVUkwoRnJhbWUqLCBGaWxlbmFt
ZUNvbnZlcnNpb25Qb2xpY3ksIFN0cmluZyopIGNvbnN0CiB7CiAgICAgcmV0dXJuIFN0cmluZygp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0dhbWVwYWRzRWZs
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9HYW1lcGFkc0VmbC5jcHAKaW5kZXgg
ZjY3YmE0Mi4uNjNiNmM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L0dhbWVwYWRzRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvR2FtZXBh
ZHNFZmwuY3BwCkBAIC0xMjgsNyArMTI4LDcgQEAgcHJpdmF0ZToKICAgICBFZXplX1VkZXZfV2F0
Y2gqIG1fZ2FtZXBhZHNXYXRjaGVyOwogfTsKIAotdm9pZCBHYW1lcGFkc0VmbDo6b25HYW1lUGFk
Q2hhbmdlKGNvbnN0IGNoYXIqIHN5c3BhdGgsIEVlemVfVWRldl9FdmVudCBldmVudCwgdm9pZCog
dXNlckRhdGEsIEVlemVfVWRldl9XYXRjaCogd2F0Y2hlcikKK3ZvaWQgR2FtZXBhZHNFZmw6Om9u
R2FtZVBhZENoYW5nZShjb25zdCBjaGFyKiBzeXNwYXRoLCBFZXplX1VkZXZfRXZlbnQgZXZlbnQs
IHZvaWQqIHVzZXJEYXRhLCBFZXplX1VkZXZfV2F0Y2gqKQogewogICAgIEdhbWVwYWRzRWZsKiBn
YW1lcGFkc0VmbCA9IHN0YXRpY19jYXN0PEdhbWVwYWRzRWZsKj4odXNlckRhdGEpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5jcHAK
aW5kZXggZWQ2ZWU1Zi4uY2I1ZDdiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZWZsL0xvY2FsaXplZFN0cmluZ3NFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9Mb2NhbGl6ZWRTdHJpbmdzRWZsLmNwcApAQCAtNDE5LDI2ICs0MTksMjYgQEAgU3Ry
aW5nIHVua25vd25GaWxlU2l6ZVRleHQoKQogICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJV
bmtub3duIik7CiB9CiAKLVN0cmluZyBpbWFnZVRpdGxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUs
IGNvbnN0IEludFNpemUmIHNpemUpCitTdHJpbmcgaW1hZ2VUaXRsZShjb25zdCBTdHJpbmcmLCBj
b25zdCBJbnRTaXplJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBTdHJp
bmcoKTsKIH0KIAogI2lmIEVOQUJMRShWSURFTykKLVN0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRy
b2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0cmluZyYgbmFtZSkKK1N0cmluZyBsb2NhbGl6ZWRNZWRp
YUNvbnRyb2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0cmluZyYpCiB7CiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVN0cmluZyBsb2NhbGl6ZWRNZWRpYUNv
bnRyb2xFbGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5nJiBuYW1lKQorU3RyaW5nIGxvY2FsaXpl
ZE1lZGlhQ29udHJvbEVsZW1lbnRIZWxwVGV4dChjb25zdCBTdHJpbmcmKQogewogICAgIG5vdElt
cGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgbG9jYWxpemVk
TWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQgdGltZSkKK1N0cmluZyBsb2NhbGl6ZWRNZWRpYVRp
bWVEZXNjcmlwdGlvbihmbG9hdCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVy
biBTdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QYXN0
ZWJvYXJkRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QYXN0ZWJvYXJkRWZs
LmNwcAppbmRleCAzOTY1MGM3Li43YTFhYzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZWZsL1Bhc3RlYm9hcmRFZmwuY3BwCkBAIC01MSw3ICs1MSw3IEBAIHZvaWQgUGFzdGVib2Fy
ZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiwgU21hcnRSZXBsYWNlT3B0aW9uKQogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24o
UmFuZ2UqIHNlbGVjdGVkUmFuZ2UsIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUsIEZyYW1lKiBm
cmFtZSkKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24oUmFuZ2UqLCBib29sLCBGcmFt
ZSopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTYxLDcgKzYxLDcgQEAgdm9pZCBQ
YXN0ZWJvYXJkOjp3cml0ZVVSTChjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiwgRnJhbWUqKQog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgUGFzdGVib2FyZDo6d3JpdGVJbWFnZShO
b2RlKiBub2RlLCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJikKK3ZvaWQgUGFzdGVib2FyZDo6
d3JpdGVJbWFnZShOb2RlKiwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTgyLDggKzgyLDcgQEAgYm9vbCBQYXN0ZWJvYXJkOjpjYW5T
bWFydFJlcGxhY2UoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotUGFzc1JlZlB0cjxEb2N1bWVu
dEZyYWdtZW50PiBQYXN0ZWJvYXJkOjpkb2N1bWVudEZyYWdtZW50KEZyYW1lKiBmcmFtZSwgUGFz
c1JlZlB0cjxSYW5nZT4gY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGFsbG93UGxhaW5UZXh0LCBib29sJiBjaG9z
ZVBsYWluVGV4dCkKK1Bhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gUGFzdGVib2FyZDo6ZG9j
dW1lbnRGcmFnbWVudChGcmFtZSosIFBhc3NSZWZQdHI8UmFuZ2U+LCBib29sLCBib29sJikKIHsK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BsYXRmb3JtU2NyZWVuRWZsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2VmbC9QbGF0Zm9ybVNjcmVlbkVmbC5jcHAKaW5kZXggYjQzYmY0MS4uMDlk
M2ExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BsYXRmb3JtU2Ny
ZWVuRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGxhdGZvcm1TY3Jl
ZW5FZmwuY3BwCkBAIC0xMTYsNiArMTE2LDcgQEAgRmxvYXRSZWN0IHNjcmVlblJlY3QoV2lkZ2V0
KiB3aWRnZXQpCiAjaWZkZWYgSEFWRV9FQ09SRV9YCiAgICAgaW50IHdpZHRoID0gMCwgaGVpZ2h0
ID0gMDsKICAgICBDQUxMX1dJVEhfRUNPUkVfWChlY29yZV94X3NjcmVlbl9zaXplX2dldChzY3Jl
ZW4sICZ3aWR0aCwgJmhlaWdodCkpOworICAgIFVOVVNFRF9QQVJBTSh3aWRnZXQpOwogICAgIHJl
dHVybiBGbG9hdFJlY3QoMCwgMCwgd2lkdGgsIGhlaWdodCk7CiAjZWxzZQogICAgIGlmICghd2lk
Z2V0IHx8ICF3aWRnZXQtPmV2YXMoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwv
UmVuZGVyVGhlbWVFZmwuY3BwCmluZGV4IGI0ZTQwM2EuLjM4ODdkZDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcApAQCAtNzIwLDcgKzcyMCw3
IEBAIGJvb2wgUmVuZGVyVGhlbWVFZmw6OnBhaW50U2xpZGVyVHJhY2soUmVuZGVyT2JqZWN0KiBv
YmplY3QsIGNvbnN0IFBhaW50SW5mbyYgaW5mCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lk
IFJlbmRlclRoZW1lRWZsOjphZGp1c3RTbGlkZXJUcmFja1N0eWxlKFN0eWxlUmVzb2x2ZXIqIHN0
eWxlUmVzb2x2ZXIsIFJlbmRlclN0eWxlKiBzdHlsZSwgRWxlbWVudCogZWxlbWVudCkgY29uc3QK
K3ZvaWQgUmVuZGVyVGhlbWVFZmw6OmFkanVzdFNsaWRlclRyYWNrU3R5bGUoU3R5bGVSZXNvbHZl
ciosIFJlbmRlclN0eWxlKiBzdHlsZSwgRWxlbWVudCopIGNvbnN0CiB7CiAgICAgc3R5bGUtPnNl
dEJveFNoYWRvdyhudWxscHRyKTsKIH0KQEAgLTEwMDMsNyArMTAwMyw3IEBAIHZvaWQgUmVuZGVy
VGhlbWVFZmw6OnNldERlZmF1bHRGb250U2l6ZShpbnQgc2l6ZSkKICAgICBkZWZhdWx0Rm9udFNp
emUgPSBzaXplOwogfQogCi12b2lkIFJlbmRlclRoZW1lRWZsOjpzeXN0ZW1Gb250KGludCBwcm9w
SWQsIEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAordm9pZCBSZW5kZXJU
aGVtZUVmbDo6c3lzdGVtRm9udChpbnQsIEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9u
KSBjb25zdAogewogICAgIC8vIEl0IHdhcyBjYWxsZWQgYnkgUmVuZGVyRW1iZWRkZWRPYmplY3Q6
OnBhaW50UmVwbGFjZWQgdG8gcmVuZGVyIGFsdGVybmF0aXZlIHN0cmluZy4KICAgICAvLyBUbyBh
dm9pZCBjYWlyb19lcnJvciB3aGlsZSByZW5kZXJpbmcsIGZvbnREZXNjcmlwdGlvbiBzaG91bGQg
YmUgcGFzc2VkLgpAQCAtMTIxNCwzMiArMTIxNCwzMiBAQCBib29sIFJlbmRlclRoZW1lRWZsOjpw
YWludE1lZGlhU2xpZGVyVHJhY2soUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5m
bwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFJlbmRlclRoZW1lRWZsOjpwYWludE1lZGlh
U2xpZGVyVGh1bWIoUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgaW5mbywg
Y29uc3QgSW50UmVjdCYgcmVjdCkKK2Jvb2wgUmVuZGVyVGhlbWVFZmw6OnBhaW50TWVkaWFTbGlk
ZXJUaHVtYihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mIGluZm8sIGNvbnN0IEludFJl
Y3QmIHJlY3QpCiB7CiAgICAgSW50U2l6ZSB0aHVtYlJlY3QoMywgMyk7CiAgICAgaW5mby5jb250
ZXh0LT5maWxsUm91bmRlZFJlY3QocmVjdCwgdGh1bWJSZWN0LCB0aHVtYlJlY3QsIHRodW1iUmVj
dCwgdGh1bWJSZWN0LCBtX3NsaWRlclRodW1iQ29sb3IsIENvbG9yU3BhY2VEZXZpY2VSR0IpOwog
ICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFJlbmRlclRoZW1lRWZsOjpwYWludE1lZGlhVm9s
dW1lU2xpZGVyQ29udGFpbmVyKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYgaW5mbywg
Y29uc3QgSW50UmVjdCYgcmVjdCkKK2Jvb2wgUmVuZGVyVGhlbWVFZmw6OnBhaW50TWVkaWFWb2x1
bWVTbGlkZXJDb250YWluZXIoUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3Qg
SW50UmVjdCYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLWJvb2wgUmVuZGVyVGhlbWVFZmw6OnBhaW50TWVkaWFWb2x1bWVTbGlkZXJUcmFjayhSZW5k
ZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBpbmZvLCBjb25zdCBJbnRSZWN0JiBy
ZWN0KQorYm9vbCBSZW5kZXJUaGVtZUVmbDo6cGFpbnRNZWRpYVZvbHVtZVNsaWRlclRyYWNrKFJl
bmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKQogewogICAgIG5v
dEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIFJlbmRlclRoZW1l
RWZsOjpwYWludE1lZGlhVm9sdW1lU2xpZGVyVGh1bWIoUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNv
bnN0IFBhaW50SW5mbyYgaW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCkKK2Jvb2wgUmVuZGVyVGhl
bWVFZmw6OnBhaW50TWVkaWFWb2x1bWVTbGlkZXJUaHVtYihSZW5kZXJPYmplY3QqLCBjb25zdCBQ
YWludEluZm8mLCBjb25zdCBJbnRSZWN0JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAg
IHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBSZW5kZXJUaGVtZUVmbDo6cGFpbnRNZWRpYUN1cnJl
bnRUaW1lKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8mIGluZm8sIGNvbnN0
IEludFJlY3QmIHJlY3QpCitib29sIFJlbmRlclRoZW1lRWZsOjpwYWludE1lZGlhQ3VycmVudFRp
bWUoUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiBpbmZvLCBjb25zdCBJbnRSZWN0JiBy
ZWN0KQogewogICAgIGluZm8uY29udGV4dC0+ZmlsbFJlY3QoRmxvYXRSZWN0KHJlY3QpLCBtX21l
ZGlhUGFuZWxDb2xvciwgQ29sb3JTcGFjZURldmljZVJHQik7CiAgICAgcmV0dXJuIHRydWU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2Nyb2xsYmFyRWZsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TY3JvbGxiYXJFZmwuY3BwCmluZGV4IDFhYWY0
Y2YuLjIwNTAzNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TY3Jv
bGxiYXJFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TY3JvbGxiYXJF
ZmwuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIFNjcm9sbGJhckVmbDo6flNjcm9sbGJhckVmbCgpCiAg
ICAgc2V0RXZhc09iamVjdCgwKTsKIH0KIAotc3RhdGljIHZvaWQgc2Nyb2xsYmFyRWZsRWRqZU1l
c3NhZ2Uodm9pZCogZGF0YSwgRXZhc19PYmplY3QqIG9iamVjdCwgRWRqZV9NZXNzYWdlX1R5cGUg
bWVzc2FnZVR5cGUsIGludCBpZCwgdm9pZCogbWVzc2FnZSkKK3N0YXRpYyB2b2lkIHNjcm9sbGJh
ckVmbEVkamVNZXNzYWdlKHZvaWQqIGRhdGEsIEV2YXNfT2JqZWN0KiwgRWRqZV9NZXNzYWdlX1R5
cGUgbWVzc2FnZVR5cGUsIGludCBpZCwgdm9pZCogbWVzc2FnZSkKIHsKICAgICBTY3JvbGxiYXJF
ZmwqIHRoYXQgPSBzdGF0aWNfY2FzdDxTY3JvbGxiYXJFZmwqPihkYXRhKTsKICAgICBFZGplX01l
c3NhZ2VfRmxvYXQqIG1lc3NhZ2VGbG9hdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2VmbC9TY3JvbGxiYXJUaGVtZUVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvU2Nyb2xsYmFyVGhlbWVFZmwuY3BwCmluZGV4IDI0MGI1MDEuLjdkOTRlOGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TY3JvbGxiYXJUaGVtZUVmbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Njcm9sbGJhclRoZW1lRWZsLmNwcApA
QCAtNDQsMTYgKzQ0LDE2IEBAIFNjcm9sbGJhclRoZW1lRWZsOjp+U2Nyb2xsYmFyVGhlbWVFZmwo
KQogewogfQogCi1pbnQgU2Nyb2xsYmFyVGhlbWVFZmw6OnNjcm9sbGJhclRoaWNrbmVzcyhTY3Jv
bGxiYXJDb250cm9sU2l6ZSBjb250cm9sU2l6ZSkKK2ludCBTY3JvbGxiYXJUaGVtZUVmbDo6c2Ny
b2xsYmFyVGhpY2tuZXNzKFNjcm9sbGJhckNvbnRyb2xTaXplKQogewogICAgIHJldHVybiAwOyAv
LyB3ZSBwYWludCBvbiB0b3AKIH0KIAotdm9pZCBTY3JvbGxiYXJUaGVtZUVmbDo6cmVnaXN0ZXJT
Y3JvbGxiYXIoU2Nyb2xsYmFyVGhlbWVDbGllbnQqIHNjcm9sbGJhcikKK3ZvaWQgU2Nyb2xsYmFy
VGhlbWVFZmw6OnJlZ2lzdGVyU2Nyb2xsYmFyKFNjcm9sbGJhclRoZW1lQ2xpZW50KikKIHsKIH0K
IAotdm9pZCBTY3JvbGxiYXJUaGVtZUVmbDo6dW5yZWdpc3RlclNjcm9sbGJhcihTY3JvbGxiYXJU
aGVtZUNsaWVudCogc2Nyb2xsYmFyKQordm9pZCBTY3JvbGxiYXJUaGVtZUVmbDo6dW5yZWdpc3Rl
clNjcm9sbGJhcihTY3JvbGxiYXJUaGVtZUNsaWVudCopCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9UZW1wb3JhcnlMaW5rU3R1YnMuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZWZsL1RlbXBvcmFyeUxpbmtTdHVicy5jcHAKaW5kZXggZTkwNTk3
Yi4uMWY5ZDBmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1RlbXBv
cmFyeUxpbmtTdHVicy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1RlbXBv
cmFyeUxpbmtTdHVicy5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgdm9pZCBnZXRTdXBwb3J0ZWRLZXlT
aXplcyhWZWN0b3I8U3RyaW5nPiYpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotU3RyaW5n
IHNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZyh1bnNpZ25lZCBrZXlTaXplSW5kZXgs
IGNvbnN0IFN0cmluZyAmY2hhbGxlbmdlU3RyaW5nLCBjb25zdCBLVVJMICZ1cmwpCitTdHJpbmcg
c2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKHVuc2lnbmVkLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBLVVJMJikKIHsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvV2lkZ2V0RWZsLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VmbC9XaWRnZXRFZmwuY3BwCmluZGV4IDhmOGYyZTcuLjAzYjZkNGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9XaWRnZXRFZmwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9XaWRnZXRFZmwuY3BwCkBAIC0xMDYsNyArMTA2LDcg
QEAgdm9pZCBXaWRnZXQ6OmZyYW1lUmVjdHNDaGFuZ2VkKCkKICAgICBldmFzX29iamVjdF9yZXNp
emUob2JqZWN0LCByZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCkpOwogfQogCi12b2lkIFdpZGdl
dDo6c2V0Rm9jdXMoYm9vbCBmb2N1c2VkKQordm9pZCBXaWRnZXQ6OnNldEZvY3VzKGJvb2wpCiB7
CiB9CiAKQEAgLTEzNCw3ICsxMzQsNyBAQCB2b2lkIFdpZGdldDo6aGlkZSgpCiAgICAgZXZhc19v
YmplY3RfaGlkZShwbGF0Zm9ybVdpZGdldCgpKTsKIH0KIAotdm9pZCBXaWRnZXQ6OnBhaW50KEdy
YXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYpCit2b2lkIFdpZGdldDo6cGFp
bnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpCiB7CiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQuY3BwCmluZGV4IDNhMWJkY2QuLmIyMDEzYTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcApAQCAtNzA0
LDcgKzcwNCw3IEBAIENvbXBvc2l0ZU9wZXJhdG9yIEdyYXBoaWNzQ29udGV4dDo6Y29tcG9zaXRl
T3BlcmF0aW9uKCkgY29uc3QKICNpZiAhVVNFKENHKSAmJiAhVVNFKFNLSUEpCiAvLyBJbXBsZW1l
bnQgdGhpcyBpZiB5b3Ugd2FudCB0byBnbyBhaGVhZCBhbmQgcHVzaCB0aGUgZHJhd2luZyBtb2Rl
IGludG8geW91ciBuYXRpdmUgY29udGV4dAogLy8gaW1tZWRpYXRlbHkuCi12b2lkIEdyYXBoaWNz
Q29udGV4dDo6c2V0UGxhdGZvcm1UZXh0RHJhd2luZ01vZGUoVGV4dERyYXdpbmdNb2RlRmxhZ3Mg
bW9kZSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVRleHREcmF3aW5nTW9kZShU
ZXh0RHJhd2luZ01vZGVGbGFncykKIHsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCmluZGV4IGNhMGY5NWQuLjk4MTZlNjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5j
cHAKQEAgLTE3NSw3ICsxNzUsNyBAQCBmbG9hdCBJbWFnZVNvdXJjZTo6ZnJhbWVEdXJhdGlvbkF0
SW5kZXgoc2l6ZV90IGluZGV4KQogICAgIHJldHVybiBkdXJhdGlvbjsKIH0KIAotSW1hZ2VPcmll
bnRhdGlvbiBJbWFnZVNvdXJjZTo6b3JpZW50YXRpb25BdEluZGV4KHNpemVfdCBpbmRleCkgY29u
c3QKK0ltYWdlT3JpZW50YXRpb24gSW1hZ2VTb3VyY2U6Om9yaWVudGF0aW9uQXRJbmRleChzaXpl
X3QpIGNvbnN0CiB7CiAgICAgLy8gVGhlIEpQRUcgYW5kIFRJRkYgZGVjb2RlcnMgbmVlZCB0byBi
ZSB0YXVnaHQgaG93IHRvIHJlYWQgRVhJRiwgWE1QLCBvciBJUFRDIGRhdGEuCiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmNwcAppbmRleCBiMTE2MTBmLi4zMGVlOTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC03ODUsNiArNzg1LDggQEAg
TWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllcjo6c3VwcG9ydHNUeXBlKGNvbnN0
IENvbnRlbnRUeXBlJiBjb250ZW50VHkKICAgICAgICAgICAgICYmIChjb250ZW50VHlwZS50eXBl
KCkuc3RhcnRzV2l0aCgidmlkZW8vd2VibSIsIGZhbHNlKSB8fCBjb250ZW50VHlwZS50eXBlKCku
c3RhcnRzV2l0aCgidmlkZW8veC1mbHYiLCBmYWxzZSkpKQogICAgICAgICAgICAgcmV0dXJuIElz
Tm90U3VwcG9ydGVkOwogICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGNsaWVudCk7CiAj
ZW5kaWYKIAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm9IYXJmYnV6ek5HLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyb0hhcmZidXp6
TkcuY3BwCmluZGV4IDZlYTFhMjcuLjhkNTAwZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyb0hhcmZidXp6TkcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyb0hhcmZidXp6Tkcu
Y3BwCkBAIC0zNyw3ICszNyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBGb250
OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBUZXh0UnVu
JiBydW4sIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBpbnQgZnJvbSwgaW50IHRvKSBjb25zdAor
dm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25z
dCBUZXh0UnVuJiBydW4sIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBpbnQsIGludCkgY29uc3QK
IHsKICAgICBHbHlwaEJ1ZmZlciBnbHlwaEJ1ZmZlcjsKICAgICBIYXJmQnV6elNoYXBlciBzaGFw
ZXIodGhpcywgcnVuKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAppbmRleCAyMDNkOGYz
Li5iZDBiOTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCkBAIC01NzMsNiArNTcz
LDggQEAgc3RhdGljIGlubGluZSB2b2lkIGFkanVzdEZvY3VzUmluZ0xpbmVXaWR0aChpbnQmIHdp
ZHRoKQogewogI2lmIFBMQVRGT1JNKEdUSykKICAgICB3aWR0aCA9IDI7CisjZWxzZQorICAgIFVO
VVNFRF9QQVJBTSh3aWR0aCk7CiAjZW5kaWYKIH0KIApAQCAtNjY3LDcgKzY2OSw3IEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKGNvbnN0IFZlY3RvcjxJbnRSZWN0PiYgcmVj
dHMsIGludCB3aWR0aCwgaW50CiAgICAgY2Fpcm9fcmVzdG9yZShjcik7CiB9CiAKLXZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpkcmF3TGluZUZvclRleHQoY29uc3QgRmxvYXRQb2ludCYgb3JpZ2luLCBm
bG9hdCB3aWR0aCwgYm9vbCBwcmludGluZykKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3TGlu
ZUZvclRleHQoY29uc3QgRmxvYXRQb2ludCYgb3JpZ2luLCBmbG9hdCB3aWR0aCwgYm9vbCkKIHsK
ICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CkBAIC03NzAsMTMg
Kzc3MiwxMyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6dHJhbnNsYXRlKGZsb2F0IHgsIGZsb2F0
IHkpCiAgICAgbV9kYXRhLT50cmFuc2xhdGUoeCwgeSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250
ZXh0OjpzZXRQbGF0Zm9ybUZpbGxDb2xvcihjb25zdCBDb2xvciYgY29sLCBDb2xvclNwYWNlIGNv
bG9yU3BhY2UpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1GaWxsQ29sb3IoY29u
c3QgQ29sb3ImLCBDb2xvclNwYWNlKQogewogICAgIC8vIENhaXJvIGNvbnRleHRzIGNhbid0IGhv
bGQgc2VwYXJhdGUgZmlsbCBhbmQgc3Ryb2tlIGNvbG9ycwogICAgIC8vIHNvIHdlIHNldCB0aGVt
IGp1c3QgYmVmb3JlIHdlIGFjdHVhbGx5IGZpbGwgb3Igc3Ryb2tlCiB9CiAKLXZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpzZXRQbGF0Zm9ybVN0cm9rZUNvbG9yKGNvbnN0IENvbG9yJiBjb2wsIENvbG9y
U3BhY2UgY29sb3JTcGFjZSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVN0cm9r
ZUNvbG9yKGNvbnN0IENvbG9yJiwgQ29sb3JTcGFjZSkKIHsKICAgICAvLyBDYWlybyBjb250ZXh0
cyBjYW4ndCBob2xkIHNlcGFyYXRlIGZpbGwgYW5kIHN0cm9rZSBjb2xvcnMKICAgICAvLyBzbyB3
ZSBzZXQgdGhlbSBqdXN0IGJlZm9yZSB3ZSBhY3R1YWxseSBmaWxsIG9yIHN0cm9rZQpAQCAtODE1
LDcgKzgxNyw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVN0cm9rZVN0eWxl
KFN0cm9rZVN0eWxlIHN0cm9rZVN0eWxlKQogICAgIH0KIH0KIAotdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OnNldFVSTEZvclJlY3QoY29uc3QgS1VSTCYgbGluaywgY29uc3QgSW50UmVjdCYgZGVzdFJl
Y3QpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0VVJMRm9yUmVjdChjb25zdCBLVVJMJiwgY29u
c3QgSW50UmVjdCYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTg2NSw3ICs4Njcs
NyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6YWRkSW5uZXJSb3VuZGVkUmVjdENsaXAoY29uc3Qg
SW50UmVjdCYgcmVjdCwgaW50IHRoaWNrbmVzcwogICAgIGNhaXJvX3NldF9maWxsX3J1bGUoY3Is
IHNhdmVkRmlsbFJ1bGUpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1T
aGFkb3coRmxvYXRTaXplIGNvbnN0JiBzaXplLCBmbG9hdCBibHVyLCBDb2xvciBjb25zdCYgY29s
b3IsIENvbG9yU3BhY2UpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TaGFkb3co
RmxvYXRTaXplIGNvbnN0JiBzaXplLCBmbG9hdCwgQ29sb3IgY29uc3QmLCBDb2xvclNwYWNlKQog
ewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTEwOTQs
NyArMTA5Niw3IEBAIHN0YXRpYyBpbmxpbmUgRmxvYXRQb2ludCBnZXRQaGFzZShjb25zdCBGbG9h
dFJlY3QmIGRlc3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZSkKICAgICByZXR1cm4gcGhhc2U7CiB9
CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUm91bmRlZFJlY3QoY29uc3QgSW50UmVjdCYg
ciwgY29uc3QgSW50U2l6ZSYgdG9wTGVmdCwgY29uc3QgSW50U2l6ZSYgdG9wUmlnaHQsIGNvbnN0
IEludFNpemUmIGJvdHRvbUxlZnQsIGNvbnN0IEludFNpemUmIGJvdHRvbVJpZ2h0LCBjb25zdCBD
b2xvciYgY29sb3IsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0
OjpmaWxsUm91bmRlZFJlY3QoY29uc3QgSW50UmVjdCYgciwgY29uc3QgSW50U2l6ZSYgdG9wTGVm
dCwgY29uc3QgSW50U2l6ZSYgdG9wUmlnaHQsIGNvbnN0IEludFNpemUmIGJvdHRvbUxlZnQsIGNv
bnN0IEludFNpemUmIGJvdHRvbVJpZ2h0LCBjb25zdCBDb2xvciYgY29sb3IsIENvbG9yU3BhY2Up
CiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250
ZXh0UGxhdGZvcm1Qcml2YXRlQ2Fpcm8uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZUNhaXJvLmgKaW5kZXggNGNj
OGM4MC4uZmM3YzhhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlQ2Fpcm8uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRQbGF0Zm9y
bVByaXZhdGVDYWlyby5oCkBAIC05MCw3ICs5MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHRyYW5z
bGF0ZShmbG9hdCwgZmxvYXQpIHt9CiAgICAgdm9pZCBjb25jYXRDVE0oY29uc3QgQWZmaW5lVHJh
bnNmb3JtJikge30KICAgICB2b2lkIHNldENUTShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mKSB7fQot
ICAgIHZvaWQgc3luY0NvbnRleHQoY2Fpcm9fdCogY3IpIHt9CisgICAgdm9pZCBzeW5jQ29udGV4
dChjYWlyb190KikgeyB9CiAjZW5kaWYKIAogICAgIFBsYXRmb3JtQ29udGV4dENhaXJvKiBwbGF0
Zm9ybUNvbnRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCmluZGV4IGY4YWMzOTUuLmZjODdhZGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdl
QnVmZmVyQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCkBAIC00OCw3ICs0OCw3IEBAIHVzaW5nIG5hbWVzcGFj
ZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSW1hZ2VCdWZmZXJEYXRhOjpJbWFnZUJ1
ZmZlckRhdGEoY29uc3QgSW50U2l6ZSYgc2l6ZSkKK0ltYWdlQnVmZmVyRGF0YTo6SW1hZ2VCdWZm
ZXJEYXRhKGNvbnN0IEludFNpemUmKQogICAgIDogbV9zdXJmYWNlKDApCiAgICAgLCBtX3BsYXRm
b3JtQ29udGV4dCgwKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vSW1hZ2VDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9JbWFnZUNhaXJvLmNwcAppbmRleCA1MWNhNjQzLi5mMWFmMTNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUNhaXJvLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUNhaXJv
LmNwcApAQCAtNDMsNyArNDMsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB2b2lkIEltYWdl
OjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYg
dGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBDb2xvclNwYWNlIGNv
bG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0
KQorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIENvbG9y
U3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KQog
ewogICAgIE5hdGl2ZUltYWdlQ2Fpcm8qIGltYWdlID0gbmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJh
bWUoKTsKICAgICBpZiAoIWltYWdlKSAvLyBJZiBpdCdzIHRvbyBlYXJseSB3ZSB3b24ndCBoYXZl
IGFuIGltYWdlIHlldC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2VmbC9JY29uRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Vm
bC9JY29uRWZsLmNwcAppbmRleCA2YzdlZmRjLi45ZGM0MDNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvSWNvbkVmbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0ljb25FZmwuY3BwCkBAIC01MiwxMyArNTIsMTMg
QEAgSWNvbjo6fkljb24oKQogewogfQogCi1QYXNzUmVmUHRyPEljb24+IEljb246OmNyZWF0ZUlj
b25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzKQorUGFzc1JlZlB0cjxJ
Y29uPiBJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKQogewog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgSWNvbjo6cGFp
bnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQordm9pZCBJ
Y29uOjpwYWludChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JikKIHsKICAgICBub3RJ
bXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCmluZGV4IDRlMmRk
ODUuLjQ5MDUxNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q2FjaGVGcmVlVHlwZS5jcHAKQEAgLTEwMCw3ICsx
MDAsNyBAQCBjb25zdCBTaW1wbGVGb250RGF0YSogRm9udENhY2hlOjpnZXRGb250RGF0YUZvckNo
YXJhY3RlcnMoY29uc3QgRm9udCYgZm9udCwgY29ucwogICAgIHJldHVybiBnZXRDYWNoZWRGb250
RGF0YSgmYWx0ZXJuYXRlRm9udERhdGEsIERvTm90UmV0YWluKTsKIH0KIAotU2ltcGxlRm9udERh
dGEqIEZvbnRDYWNoZTo6Z2V0U2ltaWxhckZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udCYgZm9u
dCkKK1NpbXBsZUZvbnREYXRhKiBGb250Q2FjaGU6OmdldFNpbWlsYXJGb250UGxhdGZvcm1EYXRh
KGNvbnN0IEZvbnQmKQogewogICAgIHJldHVybiAwOwogfQpAQCAtMTEzLDcgKzExMyw3IEBAIFNp
bXBsZUZvbnREYXRhKiBGb250Q2FjaGU6OmdldExhc3RSZXNvcnRGYWxsYmFja0ZvbnQoY29uc3Qg
Rm9udERlc2NyaXB0aW9uJiBmb250CiAgICAgcmV0dXJuIGdldENhY2hlZEZvbnREYXRhKGZvbnRE
ZXNjcmlwdGlvbiwgdGltZXNTdHIsIGZhbHNlLCBzaG91bGRSZXRhaW4pOwogfQogCi12b2lkIEZv
bnRDYWNoZTo6Z2V0VHJhaXRzSW5GYW1pbHkoY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHlOYW1l
LCBWZWN0b3I8dW5zaWduZWQ+JiB0cmFpdHNNYXNrcykKK3ZvaWQgRm9udENhY2hlOjpnZXRUcmFp
dHNJbkZhbWlseShjb25zdCBBdG9taWNTdHJpbmcmLCBWZWN0b3I8dW5zaWduZWQ+JikKIHsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0dTdHJlYW1lckdXb3JsZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvR1N0cmVhbWVyR1dvcmxkLmNwcAppbmRleCBmYTA4OGRmLi4yMTJkZWZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVh
bWVyR1dvcmxkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvR1N0cmVhbWVyR1dvcmxkLmNwcApAQCAtMzcsNyArMzcsNyBAQCB1c2luZyBuYW1lc3Bh
Y2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWdib29sZWFuIGdzdEdXb3JsZFN5bmNN
ZXNzYWdlQ2FsbGJhY2soR3N0QnVzKiBidXMsIEdzdE1lc3NhZ2UqIG1lc3NhZ2UsIGdwb2ludGVy
IGRhdGEpCitnYm9vbGVhbiBnc3RHV29ybGRTeW5jTWVzc2FnZUNhbGxiYWNrKEdzdEJ1cyosIEdz
dE1lc3NhZ2UqIG1lc3NhZ2UsIGdwb2ludGVyIGRhdGEpCiB7CiAgICAgQVNTRVJUKEdTVF9NRVNT
QUdFX1RZUEUobWVzc2FnZSkgPT0gR1NUX01FU1NBR0VfRUxFTUVOVCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggMjQ5NzVkYS4uNmY1
NzM2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5j
cHAKQEAgLTE1NDMsNyArMTU0Myw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
OjpzZXRTaXplKGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgbV9zaXplID0gc2l6ZTsKIH0KIAot
dm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNldFZpc2libGUoYm9vbCB2aXNpYmxl
KQordm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNldFZpc2libGUoYm9vbCkKIHsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcAppbmRleCAwNmVkZDMyLi5jMmMw
YmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcApAQCAtMzYyLDcgKzM2Miw3
IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRWaWRlb1NpbmtQcm9wb3NlQWxsb2NhdGlvbihHc3RC
YXNlU2luayogYmFzZVNpbmssIEdzdFF1ZXJ5CiAjZW5kaWYKIAogI2lmbmRlZiBHU1RfQVBJX1ZF
UlNJT05fMQotc3RhdGljIHZvaWQgd2Via2l0VmlkZW9TaW5rTWFyc2hhbFZvaWRBbmRNaW5pT2Jq
ZWN0KEdDbG9zdXJlKiBjbG9zdXJlLCBHVmFsdWUqIHJldHVyblZhbHVlLCBndWludCBwYXJhbWV0
ZXJzTnVtYmVyLCBjb25zdCBHVmFsdWUqIHBhcmFtZXRlclZhbHVlcywgZ3BvaW50ZXIgaW52b2Nh
dGlvbkhpbnQsIGdwb2ludGVyIG1hcnNoYWxEYXRhKQorc3RhdGljIHZvaWQgd2Via2l0VmlkZW9T
aW5rTWFyc2hhbFZvaWRBbmRNaW5pT2JqZWN0KEdDbG9zdXJlKiBjbG9zdXJlLCBHVmFsdWUqLCBn
dWludCBwYXJhbWV0ZXJzTnVtYmVyLCBjb25zdCBHVmFsdWUqIHBhcmFtZXRlclZhbHVlcywgZ3Bv
aW50ZXIsIGdwb2ludGVyIG1hcnNoYWxEYXRhKQogewogICAgIHR5cGVkZWYgdm9pZCAoKm1hcnNo
YWxmdW5jX1ZPSURfX01JTklPQkpFQ1QpIChncG9pbnRlciBvYmosIGdwb2ludGVyIGFyZzEsIGdw
b2ludGVyIGRhdGEyKTsKICAgICBtYXJzaGFsZnVuY19WT0lEX19NSU5JT0JKRUNUIGNhbGxiYWNr
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCA3NTA4
MTIyLi4xMDkxODYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVy
LmNwcApAQCAtNjMwLDcgKzYzMCw3IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJLaXRXZWJTcmNTZXRV
cmkoR3N0VVJJSGFuZGxlciogaGFuZGxlciwgY29uc3QgZ2NoYXIqIHVyaSkKIH0KICNlbmRpZgog
Ci1zdGF0aWMgdm9pZCB3ZWJLaXRXZWJTcmNVcmlIYW5kbGVySW5pdChncG9pbnRlciBnSWZhY2Us
IGdwb2ludGVyIGlmYWNlRGF0YSkKK3N0YXRpYyB2b2lkIHdlYktpdFdlYlNyY1VyaUhhbmRsZXJJ
bml0KGdwb2ludGVyIGdJZmFjZSwgZ3BvaW50ZXIpCiB7CiAgICAgR3N0VVJJSGFuZGxlckludGVy
ZmFjZSogaWZhY2UgPSAoR3N0VVJJSGFuZGxlckludGVyZmFjZSAqKSBnSWZhY2U7CiAKQEAgLTY1
NSw3ICs2NTUsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0V2ViU3JjTmVlZERhdGFNYWluQ2Io
V2ViS2l0V2ViU3JjKiBzcmMpCiAgICAgcmV0dXJuIEZBTFNFOwogfQogCi1zdGF0aWMgdm9pZCB3
ZWJLaXRXZWJTcmNOZWVkRGF0YUNiKEdzdEFwcFNyYyogYXBwc3JjLCBndWludCBsZW5ndGgsIGdw
b2ludGVyIHVzZXJEYXRhKQorc3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjTmVlZERhdGFDYihHc3RB
cHBTcmMqLCBndWludCBsZW5ndGgsIGdwb2ludGVyIHVzZXJEYXRhKQogewogICAgIFdlYktpdFdl
YlNyYyogc3JjID0gV0VCS0lUX1dFQl9TUkModXNlckRhdGEpOwogICAgIFdlYktpdFdlYlNyY1By
aXZhdGUqIHByaXYgPSBzcmMtPnByaXY7CkBAIC02ODYsNyArNjg2LDcgQEAgc3RhdGljIGdib29s
ZWFuIHdlYktpdFdlYlNyY0Vub3VnaERhdGFNYWluQ2IoV2ViS2l0V2ViU3JjKiBzcmMpCiAgICAg
cmV0dXJuIEZBTFNFOwogfQogCi1zdGF0aWMgdm9pZCB3ZWJLaXRXZWJTcmNFbm91Z2hEYXRhQ2Io
R3N0QXBwU3JjKiBhcHBzcmMsIGdwb2ludGVyIHVzZXJEYXRhKQorc3RhdGljIHZvaWQgd2ViS2l0
V2ViU3JjRW5vdWdoRGF0YUNiKEdzdEFwcFNyYyosIGdwb2ludGVyIHVzZXJEYXRhKQogewogICAg
IFdlYktpdFdlYlNyYyogc3JjID0gV0VCS0lUX1dFQl9TUkModXNlckRhdGEpOwogICAgIFdlYktp
dFdlYlNyY1ByaXZhdGUqIHByaXYgPSBzcmMtPnByaXY7CkBAIC03MTEsNyArNzExLDcgQEAgc3Rh
dGljIGdib29sZWFuIHdlYktpdFdlYlNyY1NlZWtNYWluQ2IoV2ViS2l0V2ViU3JjKiBzcmMpCiAg
ICAgcmV0dXJuIEZBTFNFOwogfQogCi1zdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0V2ViU3JjU2Vla0Rh
dGFDYihHc3RBcHBTcmMqIGFwcHNyYywgZ3VpbnQ2NCBvZmZzZXQsIGdwb2ludGVyIHVzZXJEYXRh
KQorc3RhdGljIGdib29sZWFuIHdlYktpdFdlYlNyY1NlZWtEYXRhQ2IoR3N0QXBwU3JjKiwgZ3Vp
bnQ2NCBvZmZzZXQsIGdwb2ludGVyIHVzZXJEYXRhKQogewogICAgIFdlYktpdFdlYlNyYyogc3Jj
ID0gV0VCS0lUX1dFQl9TUkModXNlckRhdGEpOwogICAgIFdlYktpdFdlYlNyY1ByaXZhdGUqIHBy
aXYgPSBzcmMtPnByaXY7CkBAIC04NTMsNyArODUzLDcgQEAgdm9pZCBTdHJlYW1pbmdDbGllbnQ6
OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UKICAgICAgICAgbm90aWZ5R3N0VGFnc09uUGFkKEdTVF9FTEVNRU5UKG1fc3JjKSwgbV9zcmMt
PnByaXYtPnNyY3BhZCwgdGFncyk7CiB9CiAKLXZvaWQgU3RyZWFtaW5nQ2xpZW50OjpkaWRSZWNl
aXZlRGF0YShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVu
Z3RoLCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpCit2b2lkIFN0cmVhbWluZ0NsaWVudDo6ZGlkUmVj
ZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgY2hhciogZGF0YSwgaW50IGxl
bmd0aCwgaW50KQogewogICAgIFdlYktpdFdlYlNyY1ByaXZhdGUqIHByaXYgPSBtX3NyYy0+cHJp
djsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1
enovbmcvSGFyZkJ1enpOR0ZhY2VDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9oYXJmYnV6ei9uZy9IYXJmQnV6ek5HRmFjZUNhaXJvLmNwcAppbmRleCAwZjliYjQz
Li41MmZjYTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9o
YXJmYnV6ei9uZy9IYXJmQnV6ek5HRmFjZUNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9uZy9IYXJmQnV6ek5HRmFjZUNhaXJvLmNwcApAQCAt
OTAsNyArOTAsNyBAQCBzdGF0aWMgdm9pZCBDYWlyb0dldEdseXBoV2lkdGhBbmRFeHRlbnRzKGNh
aXJvX3NjYWxlZF9mb250X3QqIHNjYWxlZEZvbnQsIGhiX2NvZAogICAgIH0KIH0KIAotc3RhdGlj
IGhiX2Jvb2xfdCBoYXJmYnV6ekdldEdseXBoKGhiX2ZvbnRfdCogaGJGb250LCB2b2lkKiBmb250
RGF0YSwgaGJfY29kZXBvaW50X3QgdW5pY29kZSwgaGJfY29kZXBvaW50X3QgdmFyaWF0aW9uU2Vs
ZWN0b3IsIGhiX2NvZGVwb2ludF90KiBnbHlwaCwgdm9pZCogdXNlckRhdGEpCitzdGF0aWMgaGJf
Ym9vbF90IGhhcmZidXp6R2V0R2x5cGgoaGJfZm9udF90Kiwgdm9pZCogZm9udERhdGEsIGhiX2Nv
ZGVwb2ludF90IHVuaWNvZGUsIGhiX2NvZGVwb2ludF90LCBoYl9jb2RlcG9pbnRfdCogZ2x5cGgs
IHZvaWQqKQogewogICAgIEZvbnRQbGF0Zm9ybURhdGEqIHBsYXRmb3JtRGF0YSA9IHJlaW50ZXJw
cmV0X2Nhc3Q8Rm9udFBsYXRmb3JtRGF0YSo+KGZvbnREYXRhKTsKICAgICBjYWlyb19zY2FsZWRf
Zm9udF90KiBzY2FsZWRGb250ID0gcGxhdGZvcm1EYXRhLT5zY2FsZWRGb250KCk7CkBAIC0xMDgs
NyArMTA4LDcgQEAgc3RhdGljIGhiX2Jvb2xfdCBoYXJmYnV6ekdldEdseXBoKGhiX2ZvbnRfdCog
aGJGb250LCB2b2lkKiBmb250RGF0YSwgaGJfY29kZXBvaW4KICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotc3RhdGljIGhiX3Bvc2l0aW9uX3QgaGFyZmJ1enpHZXRHbHlwaEhvcml6b250YWxBZHZhbmNl
KGhiX2ZvbnRfdCogaGJGb250LCB2b2lkKiBmb250RGF0YSwgaGJfY29kZXBvaW50X3QgZ2x5cGgs
IHZvaWQqIHVzZXJEYXRhKQorc3RhdGljIGhiX3Bvc2l0aW9uX3QgaGFyZmJ1enpHZXRHbHlwaEhv
cml6b250YWxBZHZhbmNlKGhiX2ZvbnRfdCosIHZvaWQqIGZvbnREYXRhLCBoYl9jb2RlcG9pbnRf
dCBnbHlwaCwgdm9pZCopCiB7CiAgICAgRm9udFBsYXRmb3JtRGF0YSogcGxhdGZvcm1EYXRhID0g
cmVpbnRlcnByZXRfY2FzdDxGb250UGxhdGZvcm1EYXRhKj4oZm9udERhdGEpOwogICAgIGNhaXJv
X3NjYWxlZF9mb250X3QqIHNjYWxlZEZvbnQgPSBwbGF0Zm9ybURhdGEtPnNjYWxlZEZvbnQoKTsK
QEAgLTExOSwxNCArMTE5LDE0IEBAIHN0YXRpYyBoYl9wb3NpdGlvbl90IGhhcmZidXp6R2V0R2x5
cGhIb3Jpem9udGFsQWR2YW5jZShoYl9mb250X3QqIGhiRm9udCwgdm9pZCoKICAgICByZXR1cm4g
YWR2YW5jZTsKIH0KIAotc3RhdGljIGhiX2Jvb2xfdCBoYXJmYnV6ekdldEdseXBoSG9yaXpvbnRh
bE9yaWdpbihoYl9mb250X3QqIGhiRm9udCwgdm9pZCogZm9udERhdGEsIGhiX2NvZGVwb2ludF90
IGdseXBoLCBoYl9wb3NpdGlvbl90KiB4LCBoYl9wb3NpdGlvbl90KiB5LCB2b2lkKiB1c2VyRGF0
YSkKK3N0YXRpYyBoYl9ib29sX3QgaGFyZmJ1enpHZXRHbHlwaEhvcml6b250YWxPcmlnaW4oaGJf
Zm9udF90Kiwgdm9pZCosIGhiX2NvZGVwb2ludF90LCBoYl9wb3NpdGlvbl90KiwgaGJfcG9zaXRp
b25fdCosIHZvaWQqKQogewogICAgIC8vIEp1c3QgcmV0dXJuIHRydWUsIGZvbGxvd2luZyB0aGUg
d2F5IHRoYXQgSGFyZmJ1enotRnJlZVR5cGUKICAgICAvLyBpbXBsZW1lbnRhdGlvbiBkb2VzLgog
ICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgaGJfYm9vbF90IGhhcmZidXp6R2V0R2x5cGhF
eHRlbnRzKGhiX2ZvbnRfdCogaGJGb250LCB2b2lkKiBmb250RGF0YSwgaGJfY29kZXBvaW50X3Qg
Z2x5cGgsIGhiX2dseXBoX2V4dGVudHNfdCogZXh0ZW50cywgdm9pZCogdXNlckRhdGEpCitzdGF0
aWMgaGJfYm9vbF90IGhhcmZidXp6R2V0R2x5cGhFeHRlbnRzKGhiX2ZvbnRfdCosIHZvaWQqIGZv
bnREYXRhLCBoYl9jb2RlcG9pbnRfdCBnbHlwaCwgaGJfZ2x5cGhfZXh0ZW50c190KiBleHRlbnRz
LCB2b2lkKikKIHsKICAgICBGb250UGxhdGZvcm1EYXRhKiBwbGF0Zm9ybURhdGEgPSByZWludGVy
cHJldF9jYXN0PEZvbnRQbGF0Zm9ybURhdGEqPihmb250RGF0YSk7CiAgICAgY2Fpcm9fc2NhbGVk
X2ZvbnRfdCogc2NhbGVkRm9udCA9IHBsYXRmb3JtRGF0YS0+c2NhbGVkRm9udCgpOwpAQCAtMTUz
LDcgKzE1Myw3IEBAIHN0YXRpYyBoYl9mb250X2Z1bmNzX3QqIGhhcmZidXp6Q2Fpcm9UZXh0R2V0
Rm9udEZ1bmNzKCkKICAgICByZXR1cm4gaGFyZmJ1enpDYWlyb0ZvbnRGdW5jczsKIH0KIAotc3Rh
dGljIGhiX2Jsb2JfdCogaGFyZmJ1enpDYWlyb0dldFRhYmxlKGhiX2ZhY2VfdCogZmFjZSwgaGJf
dGFnX3QgdGFnLCB2b2lkKiB1c2VyRGF0YSkKK3N0YXRpYyBoYl9ibG9iX3QqIGhhcmZidXp6Q2Fp
cm9HZXRUYWJsZShoYl9mYWNlX3QqLCBoYl90YWdfdCB0YWcsIHZvaWQqIHVzZXJEYXRhKQogewog
ICAgIEZvbnRQbGF0Zm9ybURhdGEqIGZvbnQgPSByZWludGVycHJldF9jYXN0PEZvbnRQbGF0Zm9y
bURhdGEqPih1c2VyRGF0YSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29kZXIuY3BwCmluZGV4
IDI3NWZmYzAuLjJhZjRkYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lt
YWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvanBlZy9KUEVHSW1hZ2VEZWNvZGVyLmNwcApAQCAt
MTU2LDYgKzE1Niw3IEBAIHN0YXRpYyBDb2xvclByb2ZpbGUgcmVhZENvbG9yUHJvZmlsZShqcGVn
X2RlY29tcHJlc3Nfc3RydWN0KiBpbmZvKQogICAgIGZyZWUocHJvZmlsZSk7CiAgICAgcmV0dXJu
IGNvbG9yUHJvZmlsZTsKICNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGluZm8pOwogICAgIHJldHVy
biBDb2xvclByb2ZpbGUoKTsKICNlbmRpZgogfQpAQCAtNDc1LDcgKzQ3Niw3IEBAIHZvaWQgZXJy
b3JfZXhpdChqX2NvbW1vbl9wdHIgY2luZm8pCiAgICAgbG9uZ2ptcChlcnItPnNldGptcF9idWZm
ZXIsIC0xKTsKIH0KIAotdm9pZCBpbml0X3NvdXJjZShqX2RlY29tcHJlc3NfcHRyIGpkKQordm9p
ZCBpbml0X3NvdXJjZShqX2RlY29tcHJlc3NfcHRyKQogewogfQogCkBAIC00ODUsNyArNDg2LDcg
QEAgdm9pZCBza2lwX2lucHV0X2RhdGEoal9kZWNvbXByZXNzX3B0ciBqZCwgbG9uZyBudW1fYnl0
ZXMpCiAgICAgc3JjLT5kZWNvZGVyLT5za2lwQnl0ZXMobnVtX2J5dGVzKTsKIH0KIAotYm9vbGVh
biBmaWxsX2lucHV0X2J1ZmZlcihqX2RlY29tcHJlc3NfcHRyIGpkKQorYm9vbGVhbiBmaWxsX2lu
cHV0X2J1ZmZlcihqX2RlY29tcHJlc3NfcHRyKQogewogICAgIC8vIE91ciBkZWNvZGUgc3RlcCBh
bHdheXMgc2V0cyB0aGluZ3MgdXAgcHJvcGVybHksIHNvIGlmIHRoaXMgbWV0aG9kIGlzIGV2ZXIK
ICAgICAvLyBjYWxsZWQsIHRoZW4gd2UgaGF2ZSBoaXQgdGhlIGVuZCBvZiB0aGUgYnVmZmVyLiAg
QSByZXR1cm4gdmFsdWUgb2YgZmFsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJbWFnZURlY29kZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvcG5nL1BOR0ltYWdlRGVjb2Rlci5jcHAKaW5kZXgg
ODUxYjZmOS4uNDcwMjQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1h
Z2UtZGVjb2RlcnMvcG5nL1BOR0ltYWdlRGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvcG5nL1BOR0ltYWdlRGVjb2Rlci5jcHAKQEAgLTQwMSw3
ICs0MDEsNyBAQCB2b2lkIFBOR0ltYWdlRGVjb2Rlcjo6aGVhZGVyQXZhaWxhYmxlKCkKICAgICB9
CiB9CiAKLXZvaWQgUE5HSW1hZ2VEZWNvZGVyOjpyb3dBdmFpbGFibGUodW5zaWduZWQgY2hhciog
cm93QnVmZmVyLCB1bnNpZ25lZCByb3dJbmRleCwgaW50IGludGVybGFjZVBhc3MpCit2b2lkIFBO
R0ltYWdlRGVjb2Rlcjo6cm93QXZhaWxhYmxlKHVuc2lnbmVkIGNoYXIqIHJvd0J1ZmZlciwgdW5z
aWduZWQgcm93SW5kZXgsIGludCkKIHsKICAgICBpZiAobV9mcmFtZUJ1ZmZlckNhY2hlLmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL0Nvb2tpZVN0b3JhZ2VTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvc291cC9Db29raWVTdG9yYWdlU291cC5jcHAKaW5kZXggZjMwOWU1ZDgu
LmJjODdhZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9Db29raWVTdG9yYWdlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL0Nvb2tpZVN0b3JhZ2VTb3VwLmNwcApAQCAtMzEsNyArMzEsNyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQgc2V0Q29va2llU3RvcmFnZVByaXZhdGVCcm93c2luZ0Vu
YWJsZWQoYm9vbCBlbmFibGVkKQordm9pZCBzZXRDb29raWVTdG9yYWdlUHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZChib29sKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvRE5TU291cC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvRE5TU291cC5jcHAKaW5kZXggMWYyMmUyMS4u
OTRiNjBjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L0ROU1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9E
TlNTb3VwLmNwcApAQCAtNDMsNyArNDMsNyBAQCBib29sIEROU1Jlc29sdmVRdWV1ZTo6cGxhdGZv
cm1Qcm94eUlzRW5hYmxlZEluU3lzdGVtUHJlZmVyZW5jZXMoKQogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotc3RhdGljIHZvaWQgcmVzb2x2ZWRDYWxsYmFjayhTb3VwQWRkcmVzcyogc291cEFkZHJl
c3MsIGd1aW50IHN0YXR1cywgdm9pZCogdXNlckRhdGEpCitzdGF0aWMgdm9pZCByZXNvbHZlZENh
bGxiYWNrKFNvdXBBZGRyZXNzKiwgZ3VpbnQsIHZvaWQqKQogewogICAgIEROU1Jlc29sdmVRdWV1
ZTo6c2hhcmVkKCkuZGVjcmVtZW50UmVxdWVzdENvdW50KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUHJveHlSZXNvbHZlclNvdXAuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Byb3h5UmVzb2x2ZXJTb3VwLmNw
cAppbmRleCA0ODQwNmYzLi42ZjZlZDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvUHJveHlSZXNvbHZlclNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Qcm94eVJlc29sdmVyU291cC5jcHAKQEAgLTU1LDcg
KzU1LDcgQEAgZW51bSB7CiAgICAgTEFTVF9QUk9QCiB9OwogCi1zdGF0aWMgdm9pZCBzb3VwX3By
b3h5X3Jlc29sdmVyX3drX2luaXQoU291cFByb3h5UmVzb2x2ZXJXayogcmVzb2x2ZXJXaykKK3N0
YXRpYyB2b2lkIHNvdXBfcHJveHlfcmVzb2x2ZXJfd2tfaW5pdChTb3VwUHJveHlSZXNvbHZlcldr
KikKIHsKIH0KIApAQCAtMTQ0LDcgKzE0NCw3IEBAIHN0YXRpYyBnYm9vbGVhbiBpZGxlX3JldHVy
bl9wcm94eV91cmkodm9pZCogZGF0YSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyB2
b2lkIHNvdXBQcm94eVJlc29sdmVyV2tHZXRQcm94eVVSSUFzeW5jKFNvdXBQcm94eVVSSVJlc29s
dmVyKiBwcm94eVJlc29sdmVyLCBTb3VwVVJJKiB1cmksIEdNYWluQ29udGV4dCogYXN5bmNDb250
ZXh0LCBHQ2FuY2VsbGFibGUqIGNhbmNlbGxhYmxlLCBTb3VwUHJveHlVUklSZXNvbHZlckNhbGxi
YWNrIGNhbGxiYWNrLCB2b2lkKiB1c2VyRGF0YSkKK3N0YXRpYyB2b2lkIHNvdXBQcm94eVJlc29s
dmVyV2tHZXRQcm94eVVSSUFzeW5jKFNvdXBQcm94eVVSSVJlc29sdmVyKiBwcm94eVJlc29sdmVy
LCBTb3VwVVJJKiB1cmksIEdNYWluQ29udGV4dCogYXN5bmNDb250ZXh0LCBHQ2FuY2VsbGFibGUq
LCBTb3VwUHJveHlVUklSZXNvbHZlckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiB1c2VyRGF0YSkK
IHsKICAgICBTb3VwV2tBc3luY0RhdGEqIHNzYWQ7CiAKQEAgLTE1Niw3ICsxNTYsNyBAQCBzdGF0
aWMgdm9pZCBzb3VwUHJveHlSZXNvbHZlcldrR2V0UHJveHlVUklBc3luYyhTb3VwUHJveHlVUklS
ZXNvbHZlciogcHJveHlSZXNvbAogICAgIHNvdXBfYWRkX2NvbXBsZXRpb24oYXN5bmNDb250ZXh0
LCBpZGxlX3JldHVybl9wcm94eV91cmksIHNzYWQpOwogfQogCi1zdGF0aWMgdWludCBzb3VwUHJv
eHlSZXNvbHZlcldrR2V0UHJveHlVUklTeW5jKFNvdXBQcm94eVVSSVJlc29sdmVyKiBwcm94eVJl
c29sdmVyLCBTb3VwVVJJKiB1cmksIEdDYW5jZWxsYWJsZSogY2FuY2VsbGFibGUsIFNvdXBVUkkq
KiBwcm94eVVSSSkKK3N0YXRpYyB1aW50IHNvdXBQcm94eVJlc29sdmVyV2tHZXRQcm94eVVSSVN5
bmMoU291cFByb3h5VVJJUmVzb2x2ZXIqIHByb3h5UmVzb2x2ZXIsIFNvdXBVUkkqIHVyaSwgR0Nh
bmNlbGxhYmxlKiwgU291cFVSSSoqIHByb3h5VVJJKQogewogICAgIFNvdXBQcm94eVJlc29sdmVy
V2tQcml2YXRlKiBwcml2ID0gU09VUF9QUk9YWV9SRVNPTFZFUl9XS19HRVRfUFJJVkFURShwcm94
eVJlc29sdmVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAppbmRleCAzMGEyZGU0Li41MWM5MThk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3Vy
Y2VIYW5kbGVTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApAQCAtNDEwLDcgKzQxMCw3IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBoYXNVbmlnbm9yZWRUTFNFcnJvcnMoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSkKICAg
ICAgICAgJiYgIWFsbG93c0FueUhUVFBTQ2VydGlmaWNhdGVIb3N0cygpLmNvbnRhaW5zKGhhbmRs
ZS0+Zmlyc3RSZXF1ZXN0KCkudXJsKCkuaG9zdCgpLmxvd2VyKCkpOwogfQogCi1zdGF0aWMgdm9p
ZCBzZW5kUmVxdWVzdENhbGxiYWNrKEdPYmplY3QqIHNvdXJjZSwgR0FzeW5jUmVzdWx0KiByZXMs
IGdwb2ludGVyIGRhdGEpCitzdGF0aWMgdm9pZCBzZW5kUmVxdWVzdENhbGxiYWNrKEdPYmplY3Qq
LCBHQXN5bmNSZXN1bHQqIHJlcywgZ3BvaW50ZXIgZGF0YSkKIHsKICAgICBSZWZQdHI8UmVzb3Vy
Y2VIYW5kbGU+IGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4oZGF0YSk7CiAK
QEAgLTU0Myw3ICs1NDMsNyBAQCBzdGF0aWMgdm9pZCBhZGRFbmNvZGVkQmxvYlRvU291cE1lc3Nh
Z2VCb2R5KFNvdXBNZXNzYWdlKiBtZXNzYWdlLCBjb25zdCBGb3JtRGF0YQogfQogI2VuZGlmIC8v
IEVOQUJMRShCTE9CKQogCi1zdGF0aWMgYm9vbCBhZGRGb3JtRWxlbWVudHNUb1NvdXBNZXNzYWdl
KFNvdXBNZXNzYWdlKiBtZXNzYWdlLCBjb25zdCBjaGFyKiBjb250ZW50VHlwZSwgRm9ybURhdGEq
IGh0dHBCb2R5LCB1bnNpZ25lZCBsb25nJiB0b3RhbEJvZHlTaXplKQorc3RhdGljIGJvb2wgYWRk
Rm9ybUVsZW1lbnRzVG9Tb3VwTWVzc2FnZShTb3VwTWVzc2FnZSogbWVzc2FnZSwgY29uc3QgY2hh
ciosIEZvcm1EYXRhKiBodHRwQm9keSwgdW5zaWduZWQgbG9uZyYgdG90YWxCb2R5U2l6ZSkKIHsK
ICAgICBzb3VwX21lc3NhZ2VfYm9keV9zZXRfYWNjdW11bGF0ZShtZXNzYWdlLT5yZXF1ZXN0X2Jv
ZHksIEZBTFNFKTsKICAgICBzaXplX3QgbnVtRWxlbWVudHMgPSBodHRwQm9keS0+ZWxlbWVudHMo
KS5zaXplKCk7CkBAIC01OTQsNyArNTk0LDcgQEAgc3RhdGljIHZvaWQgd3JvdGVCb2R5Q2FsbGJh
Y2soU291cE1lc3NhZ2UqLCBncG9pbnRlciBkYXRhKQogICAgIGQtPm1fcmVzcG9uc2UucmVzb3Vy
Y2VMb2FkVGltaW5nKCktPnNlbmRFbmQgPSBtaWxpc2Vjb25kc1NpbmNlUmVxdWVzdChkLT5tX3Jl
c3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5yZXF1ZXN0VGltZSk7CiB9CiAKLXN0YXRpYyB2
b2lkIHJlcXVlc3RTdGFydGVkQ2FsbGJhY2soU291cFNlc3Npb24qLCBTb3VwTWVzc2FnZSogc291
cE1lc3NhZ2UsIFNvdXBTb2NrZXQqLCBncG9pbnRlciBkYXRhKQorc3RhdGljIHZvaWQgcmVxdWVz
dFN0YXJ0ZWRDYWxsYmFjayhTb3VwU2Vzc2lvbiosIFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSwg
U291cFNvY2tldCosIGdwb2ludGVyKQogewogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFu
ZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihnX29iamVjdF9nZXRfZGF0YShHX09C
SkVDVChzb3VwTWVzc2FnZSksICJoYW5kbGUiKSk7CiAgICAgaWYgKCFoYW5kbGUpCkBAIC05MDUs
NyArOTA1LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNs
eShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QKICAgICBzeW5jTG9hZGVyLnJ1bigp
OwogfQogCi1zdGF0aWMgdm9pZCBjbG9zZUNhbGxiYWNrKEdPYmplY3QqIHNvdXJjZSwgR0FzeW5j
UmVzdWx0KiByZXMsIGdwb2ludGVyIGRhdGEpCitzdGF0aWMgdm9pZCBjbG9zZUNhbGxiYWNrKEdP
YmplY3QqLCBHQXN5bmNSZXN1bHQqIHJlcywgZ3BvaW50ZXIgZGF0YSkKIHsKICAgICBSZWZQdHI8
UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4oZGF0
YSk7CiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwo
KTsKQEAgLTkxOSw3ICs5MTksNyBAQCBzdGF0aWMgdm9pZCBjbG9zZUNhbGxiYWNrKEdPYmplY3Qq
IHNvdXJjZSwgR0FzeW5jUmVzdWx0KiByZXMsIGdwb2ludGVyIGRhdGEpCiAgICAgY2xlYW51cFNv
dXBSZXF1ZXN0T3BlcmF0aW9uKGhhbmRsZS5nZXQoKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHJlYWRD
YWxsYmFjayhHT2JqZWN0KiBzb3VyY2UsIEdBc3luY1Jlc3VsdCogYXN5bmNSZXN1bHQsIGdwb2lu
dGVyIGRhdGEpCitzdGF0aWMgdm9pZCByZWFkQ2FsbGJhY2soR09iamVjdCosIEdBc3luY1Jlc3Vs
dCogYXN5bmNSZXN1bHQsIGdwb2ludGVyIGRhdGEpCiB7CiAgICAgUmVmUHRyPFJlc291cmNlSGFu
ZGxlPiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRsZSo+KGRhdGEpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAppbmRleCA2NmMzN2VjLi5lNDI1OWM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKQEAgLTY5Myw2ICs2
OTMsOSBAQCB2b2lkIFJlbmRlclRoZW1lOjphZGp1c3RSZXBhaW50UmVjdChjb25zdCBSZW5kZXJP
YmplY3QqIG8sIEludFJlY3QmIHIpCiB7CiAjaWYgVVNFKE5FV19USEVNRSkKICAgICBtX3RoZW1l
LT5pbmZsYXRlQ29udHJvbFBhaW50UmVjdChvLT5zdHlsZSgpLT5hcHBlYXJhbmNlKCksIGNvbnRy
b2xTdGF0ZXNGb3JSZW5kZXJlcihvKSwgciwgby0+c3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpKTsK
KyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG8pOworICAgIFVOVVNFRF9QQVJBTShyKTsKICNlbmRp
ZgogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164060</attachid>
            <date>2012-09-13 23:57:07 -0700</date>
            <delta_ts>2012-09-14 01:42:23 -0700</delta_ts>
            <desc>patch</desc>
            <filename>fix_webcore_unused_parameter_warning_4.txt</filename>
            <type>text/plain</type>
            <size>49025</size>
            <attacher name="Kangil Han">kangil.han</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzMTUyYzk3Li4zMGM0NDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQ1
IEBACisyMDEyLTA5LTEzICBLYW5naWwgSGFuICA8a2FuZ2lsLmhhbkBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBGaXggdW51c2VkIHBhcmFtZXRlciBjb21waWxlIHdhcm5pbmdzIGluIFdlYkNvcmUu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjcxMgor
CisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBGaXhlZCB1bnVz
ZWQgcGFyYW1ldGVyIGNvbXBpbGUgd2FybmluZyBtZXNzYWdlcygtV3VudXNlZC1wYXJhbWV0ZXIp
IGR1cmluZyBFRkwgYnVpbGQuCisgICAgICAgIFRoZXJlIGFyZSB0d28ga2luZHMgb2Ygc3R1ZmYg
cmVsYXRlZCB0byB0aGlzIHdhcm5pbmdzLgorICAgICAgICBGaXJzdCBvbmUgaXMgdGhhdCB0aGUg
cGFyYW1ldGVyIHZhbHVlIGhhcyBub3QgYmVlbiB1c2VkIGFueXdoZXJlIGluc2lkZSB0aGUgZnVu
Y3Rpb24uCisgICAgICAgIE90aGVyIG9uZSBpcyB0aGF0IHVzYWJpbGl0eSBvZiBwYXJhbWV0ZXIg
dmFsdWUgaXMgZGVwZW5kZWQgb24gb3B0aW9uLCBpLmUuIEFDQ0VTU0lCSUxJVFkuCisKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OnNldEVuaGFuY2VkVXNlckludGVyZmFjZUFjY2Vzc2liaWxpdHkpOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbik6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JQYWdlQWdlbnQ6OnNldEdlb2xvY2F0aW9uT3ZlcnJpZGUpOgorICAgICAgICAqIGxv
YWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJD
bGllbnQ6OnJlZ2lzdGVySW50ZW50U2VydmljZSk6CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6bGF5ZXJUcmVlQXNUZXh0KToKKyAgICAgICAgKiBw
YWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNldFNjcm9s
bGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQpOgorICAgICAgICAqIHBhZ2UvZWZsL0V2ZW50
SGFuZGxlckVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnRhYnNUb0Fs
bEZvcm1Db250cm9scyk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnBhc3NNb3Vz
ZURvd25FdmVudFRvV2lkZ2V0KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdD
b29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzY3JvbGxMYXllckZvckZyYW1lVmll
dyk6CisgICAgICAgICogcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Om1haW5CdW5kbGVJc0VxdWFsVG8pOgorICAgICAgICAqIHBsYXRmb3Jt
L1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6cGxhdGZvcm1T
ZXRTY3JvbGxPcmlnaW4pOgorICAgICAgICAqIHBsYXRmb3JtL2NhaXJvL1dpZGdldEJhY2tpbmdT
dG9yZUNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVN1cmZhY2VGb3JCYWNraW5n
U3RvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9Db250ZXh0TWVudUVmbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpwbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbik6CisgICAgICAgICogcGxhdGZv
cm0vZWZsL0NvbnRleHRNZW51SXRlbUVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0
TWVudUl0ZW06OkNvbnRleHRNZW51SXRlbSk6CisgICAgICAgICogcGxhdGZvcm0vZWZsL0RyYWdE
YXRhRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjphc0ZpbGVuYW1lcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6Y29udGFpbnNVUkwpOgorICAgICAgICAoV2ViQ29y
ZTo6RHJhZ0RhdGE6OmFzVVJMKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvR2FtZXBhZHNFZmwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R2FtZXBhZHNFZmw6Om9uR2FtZVBhZENoYW5nZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZWZsL0xvY2FsaXplZFN0cmluZ3NFZmwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6aW1hZ2VUaXRsZSk6CisgICAgICAgIChXZWJDb3JlOjpsb2NhbGl6ZWRNZWRpYUNv
bnRyb2xFbGVtZW50U3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsaXplZE1lZGlhQ29u
dHJvbEVsZW1lbnRIZWxwVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpsb2NhbGl6ZWRNZWRpYVRp
bWVEZXNjcmlwdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZWZsL1Bhc3RlYm9hcmRFZmwuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6d3JpdGVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQ
YXN0ZWJvYXJkOjpkb2N1bWVudEZyYWdtZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvUGxh
dGZvcm1TY3JlZW5FZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuUmVjdCk6CisgICAg
ICAgICogcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRoZW1lRWZsOjphZGp1c3RTbGlkZXJUcmFja1N0eWxlKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lRWZsOjpzeXN0ZW1Gb250KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lRWZsOjpwYWludE1lZGlhU2xpZGVyVGh1bWIpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVFZmw6OnBhaW50TWVkaWFWb2x1bWVTbGlkZXJDb250YWluZXIpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVFZmw6OnBhaW50TWVkaWFWb2x1bWVTbGlkZXJUcmFjayk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6cGFpbnRNZWRpYVZvbHVtZVNsaWRlclRo
dW1iKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lRWZsOjpwYWludE1lZGlhQ3VycmVu
dFRpbWUpOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9TY3JvbGxiYXJFZmwuY3BwOgorICAgICAg
ICAoc2Nyb2xsYmFyRWZsRWRqZU1lc3NhZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9TY3Jv
bGxiYXJUaGVtZUVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZUVmbDo6
c2Nyb2xsYmFyVGhpY2tuZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lRWZs
OjpyZWdpc3RlclNjcm9sbGJhcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZUVm
bDo6dW5yZWdpc3RlclNjcm9sbGJhcik6CisgICAgICAgICogcGxhdGZvcm0vZWZsL1RlbXBvcmFy
eUxpbmtTdHVicy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzaWduZWRQdWJsaWNLZXlBbmRDaGFs
bGVuZ2VTdHJpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9XaWRnZXRFZmwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2lkZ2V0OjpzZXRGb2N1cyk6CisgICAgICAgIChXZWJDb3JlOjpXaWRn
ZXQ6OnBhaW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVRleHRE
cmF3aW5nTW9kZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6Om9yaWVudGF0aW9uQXRJbmRleCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
b250OjpkcmF3Q29tcGxleFRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFkanVzdEZvY3Vz
UmluZ0xpbmVXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdM
aW5lRm9yVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRm
b3JtRmlsbENvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0UGxh
dGZvcm1TdHJva2VDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNl
dFVSTEZvclJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0
Zm9ybVNoYWRvdyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmZpbGxSb3Vu
ZGVkUmVjdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250
ZXh0UGxhdGZvcm1Qcml2YXRlQ2Fpcm8uaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dFBsYXRmb3JtUHJpdmF0ZTo6c3luY0NvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1h
Z2VCdWZmZXJEYXRhOjpJbWFnZUJ1ZmZlckRhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0ltYWdlQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2U6OmRyYXdQ
YXR0ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZmwvSWNvbkVmbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6SWNvbjo6cGFpbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBl
L0ZvbnRDYWNoZUZyZWVUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Z2V0
U2ltaWxhckZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpn
ZXRUcmFpdHNJbkZhbWlseSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0dTdHJlYW1lckdXb3JsZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnc3RHV29ybGRTeW5jTWVz
c2FnZUNhbGxiYWNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKHdlYmtpdFZpZGVv
U2lua01hcnNoYWxWb2lkQW5kTWluaU9iamVjdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJL
aXRXZWJTcmNVcmlIYW5kbGVySW5pdCk6CisgICAgICAgICh3ZWJLaXRXZWJTcmNOZWVkRGF0YUNi
KToKKyAgICAgICAgKHdlYktpdFdlYlNyY0Vub3VnaERhdGFDYik6CisgICAgICAgICh3ZWJLaXRX
ZWJTcmNTZWVrRGF0YUNiKToKKyAgICAgICAgKFN0cmVhbWluZ0NsaWVudDo6ZGlkUmVjZWl2ZURh
dGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L25nL0hhcmZCdXp6TkdG
YWNlQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6aGFyZmJ1enpHZXRHbHlwaCk6CisgICAg
ICAgIChXZWJDb3JlOjpoYXJmYnV6ekdldEdseXBoSG9yaXpvbnRhbEFkdmFuY2UpOgorICAgICAg
ICAoV2ViQ29yZTo6aGFyZmJ1enpHZXRHbHlwaEhvcml6b250YWxPcmlnaW4pOgorICAgICAgICAo
V2ViQ29yZTo6aGFyZmJ1enpHZXRHbHlwaEV4dGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6aGFy
ZmJ1enpDYWlyb0dldFRhYmxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9q
cGVnL0pQRUdJbWFnZURlY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVhZENvbG9yUHJv
ZmlsZSk6CisgICAgICAgIChXZWJDb3JlOjppbml0X3NvdXJjZSk6CisgICAgICAgIChXZWJDb3Jl
OjpmaWxsX2lucHV0X2J1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMv
cG5nL1BOR0ltYWdlRGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQTkdJbWFnZURlY29k
ZXI6OnJvd0F2YWlsYWJsZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tp
ZVN0b3JhZ2VTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNldENvb2tpZVN0b3JhZ2VQcml2
YXRlQnJvd3NpbmdFbmFibGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvRE5T
U291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXNvbHZlZENhbGxiYWNrKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUHJveHlSZXNvbHZlclNvdXAuY3BwOgorICAgICAgICAo
c291cF9wcm94eV9yZXNvbHZlcl93a19pbml0KToKKyAgICAgICAgKHNvdXBQcm94eVJlc29sdmVy
V2tHZXRQcm94eVVSSUFzeW5jKToKKyAgICAgICAgKHNvdXBQcm94eVJlc29sdmVyV2tHZXRQcm94
eVVSSVN5bmMpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRs
ZVNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2VuZFJlcXVlc3RDYWxsYmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjphZGRGb3JtRWxlbWVudHNUb1NvdXBNZXNzYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6OnJlcXVlc3RTdGFydGVkQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6Y2xvc2VD
YWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpyZWFkQ2FsbGJhY2spOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUaGVtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6
YWRqdXN0UmVwYWludFJlY3QpOgorCiAyMDEyLTA5LTEzICBUb20gU2VwZXogIDx0c2VwZXpAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIEFTU0VSVCghZXZlbnREaXNwYXRjaEZvcmJpZGRlbigpKSBm
aXJlcyB3aGVuIHJlbW92ZWQgcGx1Z2luIHJlLWluc2VydGVkIGFzIHBhcnQgb2YgcmVhZHlTdGF0
ZUNoYW5nZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgK
aW5kZXggMTAwMWNmMi4uOGYwZjc2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmgKQEAgLTExNCw3ICsxMTQsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IGJvb2wgYWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWQoKSB7IHJldHVy
biBnQWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWQ7IH0KICNlbHNlCiAg
ICAgc3RhdGljIHZvaWQgZW5hYmxlQWNjZXNzaWJpbGl0eSgpIHsgfQotICAgIHN0YXRpYyB2b2lk
IHNldEVuaGFuY2VkVXNlckludGVyZmFjZUFjY2Vzc2liaWxpdHkoYm9vbCBmbGFnKSB7IH0KKyAg
ICBzdGF0aWMgdm9pZCBzZXRFbmhhbmNlZFVzZXJJbnRlcmZhY2VBY2Nlc3NpYmlsaXR5KGJvb2wp
IHsgfQogICAgIHN0YXRpYyBib29sIGFjY2Vzc2liaWxpdHlFbmFibGVkKCkgeyByZXR1cm4gZmFs
c2U7IH0KICAgICBzdGF0aWMgYm9vbCBhY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNl
RW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKQEAgLTI0Myw5ICsyNDMsOSBAQCBp
bmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxiYXJVcGRhdGUoU2Nyb2xsVmll
dyopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0FuY2hv
cihjb25zdCBOb2RlKikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENo
YW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3Ry
aW5nJikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2ln
bmVkLCBjb25zdCBTdHJpbmcmKSB7IH0KLWlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RO
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERvY3VtZW50KiwgQVhOb3RpZmljYXRp
b24sIGJvb2wgcG9zdFRvRWxlbWVudCwgUG9zdFR5cGUpIHsgfQotaW5saW5lIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihSZW5kZXJPYmplY3QqLCBBWE5vdGlmaWNhdGlvbiwg
Ym9vbCBwb3N0VG9FbGVtZW50LCBQb3N0VHlwZSkgeyB9Ci1pbmxpbmUgdm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0Tm90aWZpY2F0aW9uKE5vZGUqLCBBWE5vdGlmaWNhdGlvbiwgYm9vbCBwb3N0VG9F
bGVtZW50LCBQb3N0VHlwZSkgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90
aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBEb2N1bWVudCosIEFYTm90aWZpY2F0aW9u
LCBib29sLCBQb3N0VHlwZSkgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90
aWZpY2F0aW9uKFJlbmRlck9iamVjdCosIEFYTm90aWZpY2F0aW9uLCBib29sLCBQb3N0VHlwZSkg
eyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKE5vZGUqLCBB
WE5vdGlmaWNhdGlvbiwgYm9vbCwgUG9zdFR5cGUpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE5v
dGlmaWNhdGlvbikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZW1vdmUoQVhJRCkg
eyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZW1vdmUoUmVuZGVyT2JqZWN0KikgeyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCmlu
ZGV4IDcwN2M3NTEuLmZhMjNhYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC0xMDE4LDYgKzEwMTgsOSBAQCB2b2lkIEluc3BlY3Rv
clBhZ2VBZ2VudDo6c2V0R2VvbG9jYXRpb25PdmVycmlkZShFcnJvclN0cmluZyogZXJyb3IsIGNv
bnN0IGRvdWJsZQogICAgIGNvbnRyb2xsZXItPnBvc2l0aW9uQ2hhbmdlZCgwKTsgLy8gS2ljayBs
b2NhdGlvbiB1cGRhdGUuCiAjZWxzZQogICAgICplcnJvciA9ICJHZW9sb2NhdGlvbiBpcyBub3Qg
YXZhaWxhYmxlLiI7CisgICAgVU5VU0VEX1BBUkFNKGxhdGl0dWRlKTsKKyAgICBVTlVTRURfUEFS
QU0obG9uZ2l0dWRlKTsKKyAgICBVTlVTRURfUEFSQU0oYWNjdXJhY3kpOwogI2VuZGlmCiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggYmU4MTAyOC4u
NjY4ZWRiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAg
LTMzNCw3ICszMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaEludGVudChQYXNzUmVmUHRyPEludGVudFJlcXVlc3Q+KSA9IDA7CiAjZW5kaWYK
ICNpZiBFTkFCTEUoV0VCX0lOVEVOVFNfVEFHKQotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0
ZXJJbnRlbnRTZXJ2aWNlKGNvbnN0IFN0cmluZyYgYWN0aW9uLCBjb25zdCBTdHJpbmcmIHR5cGUs
IGNvbnN0IEtVUkwmIGhyZWYsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgZGlz
cG9zaXRpb24pIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNl
KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBTdHJpbmcmKSB7IH0KICNlbmRpZgogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaFdpbGxPcGVuU29ja2V0U3RyZWFtKFNvY2tldFN0cmVhbUhhbmRsZSopIHsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lLmNwcAppbmRleCA4NWMyYTMzLi5mYjY1ZDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApA
QCAtODg2LDYgKzg4Niw3IEBAIFN0cmluZyBGcmFtZTo6bGF5ZXJUcmVlQXNUZXh0KGJvb2wgc2hv
d0RlYnVnSW5mbykgY29uc3QKIAogICAgIHJldHVybiBjb250ZW50UmVuZGVyZXIoKS0+Y29tcG9z
aXRvcigpLT5sYXllclRyZWVBc1RleHQoc2hvd0RlYnVnSW5mbyk7CiAjZWxzZQorICAgIFVOVVNF
RF9QQVJBTShzaG93RGVidWdJbmZvKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CiAjZW5kaWYKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCBkNmQ2YzU2Li4yOTI1ODIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0zNzEwLDYgKzM3MTAsOCBAQCB2b2lkIEZyYW1lVmll
dzo6c2V0U2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZChib29sIGZsYWcpCiAjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChUaWxlZEJhY2tpbmcqIHRpbGVk
QmFja2luZyA9IHRoaXMtPnRpbGVkQmFja2luZygpKQogICAgICAgICB0aWxlZEJhY2tpbmctPnNl
dFNjcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQoZmxhZyk7CisjZWxzZQorICAgIFVO
VVNFRF9QQVJBTShmbGFnKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwv
RXZlbnRIYW5kbGVyRWZsLmNwcAppbmRleCBhNTg1OTA4Li5kYjY5NTg5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogY29uc3QgZG91YmxlIEV2ZW50SGFuZGxlcjo6VGV4dERyYWdEZWxh
eSA9IDAuMDsKICNlbmRpZgogCi1ib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRy
b2xzKEtleWJvYXJkRXZlbnQqIGV2ZW50KSBjb25zdAorYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNU
b0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50KikgY29uc3QKIHsKICAgICByZXR1cm4gdHJ1
ZTsKIH0KQEAgLTc2LDcgKzc2LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NXaWRnZXRNb3Vz
ZURvd25FdmVudFRvV2lkZ2V0KFJlbmRlcldpZGdldCogcmVuZGVyV2lkZ2V0KQogICAgIHJldHVy
biBwYXNzTW91c2VEb3duRXZlbnRUb1dpZGdldChyZW5kZXJXaWRnZXQtPndpZGdldCgpKTsKIH0K
IAotYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZURvd25FdmVudFRvV2lkZ2V0KFdpZGdldCog
d2lkZ2V0KQorYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZURvd25FdmVudFRvV2lkZ2V0KFdp
ZGdldCopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRv
ci5jcHAKaW5kZXggYmM0OTNhOC4uYTYwMThiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMjE4LDYgKzIx
OCw3IEBAIHN0YXRpYyBHcmFwaGljc0xheWVyKiBzY3JvbGxMYXllckZvckZyYW1lVmlldyhGcmFt
ZVZpZXcqIGZyYW1lVmlldykKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIHJlbmRlclZp
ZXctPmNvbXBvc2l0b3IoKS0+c2Nyb2xsTGF5ZXIoKTsKICNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KGZyYW1lVmlldyk7CiAgICAgcmV0dXJuIDA7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwCmluZGV4IDA0Yjdh
ODIuLjFiOGQwMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVB
cHBsaWNhdGlvbkNoZWNrcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcApAQCAtNDksNiArNDksNyBAQCBzdGF0aWMgYm9vbCBtYWlu
QnVuZGxlSXNFcXVhbFRvKGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllclN0cmluZykKICAg
ICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGJ1bmRsZUlkZW50aWZpZXJUb0NvbXBhcmUoQWRvcHRD
RiwgYnVuZGxlSWRlbnRpZmllclN0cmluZy5jcmVhdGVDRlN0cmluZygpKTsKICAgICByZXR1cm4g
Q0ZTdHJpbmdDb21wYXJlKGJ1bmRsZUlkZW50aWZpZXIsIGJ1bmRsZUlkZW50aWZpZXJUb0NvbXBh
cmUuZ2V0KCksIDApID09IGtDRkNvbXBhcmVFcXVhbFRvOwogI2Vsc2UKKyAgICBVTlVTRURfUEFS
QU0oYnVuZGxlSWRlbnRpZmllclN0cmluZyk7CiAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCmluZGV4IDg1ZDc1ZGEuLjgyMWQ3
ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCkBAIC0xMzYyLDcgKzEz
NjIsNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnBsYXRmb3JtU2V0U2Nyb2xsYmFyc1N1cHByZXNzZWQo
Ym9vbCkKIHsKIH0KIAotdm9pZCBTY3JvbGxWaWV3OjpwbGF0Zm9ybVNldFNjcm9sbE9yaWdpbihj
b25zdCBJbnRQb2ludCYsIGJvb2wgdXBkYXRlUG9zaXRpb25BdEFsbCwgYm9vbCB1cGRhdGVQb3Np
dGlvblN5bmNocm9ub3VzbHkpCit2b2lkIFNjcm9sbFZpZXc6OnBsYXRmb3JtU2V0U2Nyb2xsT3Jp
Z2luKGNvbnN0IEludFBvaW50JiwgYm9vbCwgYm9vbCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3Bw
CmluZGV4IGRmYTczZWMuLjFkZWM3YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NhaXJvL1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jYWlyby9XaWRnZXRCYWNraW5nU3RvcmVDYWlyby5jcHAKQEAgLTM3LDYgKzM3
LDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBjcmVhdGVTdXJmYWNlRm9y
QmFja2luZ1N0b3JlKFBsYXRmb3JtV2lkZ2V0IHcKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIENBSVJPX0NPTlRFTlRfQ09MT1JfQUxQSEEsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplLndpZHRoKCksIHNpemUuaGVp
Z2h0KCkpOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0od2lkZ2V0KTsKICAgICByZXR1cm4gYWRv
cHRSZWYoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGUoQ0FJUk9fRk9STUFUX0FSR0IzMiwgc2l6
ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKSk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Db250ZXh0TWVudUVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVFZmwuY3BwCmluZGV4IDUxMTBhYmQuLmNkYWVkOTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Db250ZXh0TWVudUVmbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51RWZsLmNwcApA
QCAtOTEsNyArOTEsNyBAQCBQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBDb250ZXh0TWVudTo6cmVs
ZWFzZVBsYXRmb3JtRGVzY3JpcHRpb24oKQogICAgIHJldHVybiBQbGF0Zm9ybU1lbnVEZXNjcmlw
dGlvbigpOwogfQogCi1QbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBwbGF0Zm9ybU1lbnVEZXNjcmlw
dGlvbihWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiYgbWVudUl0ZW1WZWN0b3IpCitQbGF0Zm9ybU1l
bnVEZXNjcmlwdGlvbiBwbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbihWZWN0b3I8Q29udGV4dE1lbnVJ
dGVtPiYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gMDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Db250ZXh0TWVudUl0ZW1FZmwuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51SXRlbUVmbC5jcHAKaW5kZXgg
YzRlZDA2Ny4uNGEyNDNjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L0NvbnRleHRNZW51SXRlbUVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L0NvbnRleHRNZW51SXRlbUVmbC5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgQ29udGV4dE1lbnVJdGVt
OjpDb250ZXh0TWVudUl0ZW0oQ29udGV4dE1lbnVJdGVtVHlwZSB0eXBlLCBDb250ZXh0TWVudUFj
dGlvbiBhY3QKICAgICBtX3BsYXRmb3JtRGVzY3JpcHRpb24udGl0bGUgPSB0aXRsZTsKIH0KIAot
Q29udGV4dE1lbnVJdGVtOjpDb250ZXh0TWVudUl0ZW0oQ29udGV4dE1lbnVBY3Rpb24sIGNvbnN0
IFN0cmluZyYsIGJvb2wgZW5hYmxlZCwgYm9vbCBjaGVja2VkLCBWZWN0b3I8Q29udGV4dE1lbnVJ
dGVtPiYgc3ViTWVudUl0ZW1zKQorQ29udGV4dE1lbnVJdGVtOjpDb250ZXh0TWVudUl0ZW0oQ29u
dGV4dE1lbnVBY3Rpb24sIGNvbnN0IFN0cmluZyYsIGJvb2wsIGJvb2wsIFZlY3RvcjxDb250ZXh0
TWVudUl0ZW0+JikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
ZWZsL0RyYWdEYXRhRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9EcmFnRGF0
YUVmbC5jcHAKaW5kZXggOWQ3ZTljYS4uZGNhZjQwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZWZsL0RyYWdEYXRhRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lZmwvRHJhZ0RhdGFFZmwuY3BwCkBAIC00Niw3ICs0Niw3IEBAIHVuc2lnbmVkIERyYWdE
YXRhOjpudW1iZXJPZkZpbGVzKCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBEcmFn
RGF0YTo6YXNGaWxlbmFtZXMoVmVjdG9yPFN0cmluZz4mIHJlc3VsdCkgY29uc3QKK3ZvaWQgRHJh
Z0RhdGE6OmFzRmlsZW5hbWVzKFZlY3RvcjxTdHJpbmc+JikgY29uc3QKIHsKIH0KIApAQCAtNzAs
MTIgKzcwLDEyIEBAIGJvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zQ29tcGF0aWJsZUNvbnRlbnQoKSBj
b25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBEcmFnRGF0YTo6Y29udGFpbnNVUkwo
RnJhbWUqLCBGaWxlbmFtZUNvbnZlcnNpb25Qb2xpY3kgZmlsZW5hbWVQb2xpY3kpIGNvbnN0Citi
b29sIERyYWdEYXRhOjpjb250YWluc1VSTChGcmFtZSosIEZpbGVuYW1lQ29udmVyc2lvblBvbGlj
eSkgY29uc3QKIHsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVN0cmluZyBEcmFnRGF0YTo6YXNV
UkwoRnJhbWUqLCBGaWxlbmFtZUNvbnZlcnNpb25Qb2xpY3kgZmlsZW5hbWVQb2xpY3ksIFN0cmlu
ZyogdGl0bGUpIGNvbnN0CitTdHJpbmcgRHJhZ0RhdGE6OmFzVVJMKEZyYW1lKiwgRmlsZW5hbWVD
b252ZXJzaW9uUG9saWN5LCBTdHJpbmcqKSBjb25zdAogewogICAgIHJldHVybiBTdHJpbmcoKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9HYW1lcGFkc0VmbC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvR2FtZXBhZHNFZmwuY3BwCmluZGV4IGY2
N2JhNDIuLjYzYjZjNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9H
YW1lcGFkc0VmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0dhbWVwYWRz
RWZsLmNwcApAQCAtMTI4LDcgKzEyOCw3IEBAIHByaXZhdGU6CiAgICAgRWV6ZV9VZGV2X1dhdGNo
KiBtX2dhbWVwYWRzV2F0Y2hlcjsKIH07CiAKLXZvaWQgR2FtZXBhZHNFZmw6Om9uR2FtZVBhZENo
YW5nZShjb25zdCBjaGFyKiBzeXNwYXRoLCBFZXplX1VkZXZfRXZlbnQgZXZlbnQsIHZvaWQqIHVz
ZXJEYXRhLCBFZXplX1VkZXZfV2F0Y2gqIHdhdGNoZXIpCit2b2lkIEdhbWVwYWRzRWZsOjpvbkdh
bWVQYWRDaGFuZ2UoY29uc3QgY2hhciogc3lzcGF0aCwgRWV6ZV9VZGV2X0V2ZW50IGV2ZW50LCB2
b2lkKiB1c2VyRGF0YSwgRWV6ZV9VZGV2X1dhdGNoKikKIHsKICAgICBHYW1lcGFkc0VmbCogZ2Ft
ZXBhZHNFZmwgPSBzdGF0aWNfY2FzdDxHYW1lcGFkc0VmbCo+KHVzZXJEYXRhKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0xvY2FsaXplZFN0cmluZ3NFZmwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0xvY2FsaXplZFN0cmluZ3NFZmwuY3BwCmlu
ZGV4IGVkNmVlNWYuLmNiNWQ3YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2VmbC9Mb2NhbGl6ZWRTdHJpbmdzRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5jcHAKQEAgLTQxOSwyNiArNDE5LDI2IEBAIFN0cmlu
ZyB1bmtub3duRmlsZVNpemVUZXh0KCkKICAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiVW5r
bm93biIpOwogfQogCi1TdHJpbmcgaW1hZ2VUaXRsZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBj
b25zdCBJbnRTaXplJiBzaXplKQorU3RyaW5nIGltYWdlVGl0bGUoY29uc3QgU3RyaW5nJiwgY29u
c3QgSW50U2l6ZSYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gU3RyaW5n
KCk7CiB9CiAKICNpZiBFTkFCTEUoVklERU8pCi1TdHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9s
RWxlbWVudFN0cmluZyhjb25zdCBTdHJpbmcmIG5hbWUpCitTdHJpbmcgbG9jYWxpemVkTWVkaWFD
b250cm9sRWxlbWVudFN0cmluZyhjb25zdCBTdHJpbmcmKQogewogICAgIG5vdEltcGxlbWVudGVk
KCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgbG9jYWxpemVkTWVkaWFDb250
cm9sRWxlbWVudEhlbHBUZXh0KGNvbnN0IFN0cmluZyYgbmFtZSkKK1N0cmluZyBsb2NhbGl6ZWRN
ZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5nJikKIHsKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotU3RyaW5nIGxvY2FsaXplZE1l
ZGlhVGltZURlc2NyaXB0aW9uKGZsb2F0IHRpbWUpCitTdHJpbmcgbG9jYWxpemVkTWVkaWFUaW1l
RGVzY3JpcHRpb24oZmxvYXQpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4g
U3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGFzdGVi
b2FyZEVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVmbC5j
cHAKaW5kZXggMzk2NTBjNy4uN2ExYWM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL1Bhc3RlYm9hcmRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2VmbC9QYXN0ZWJvYXJkRWZsLmNwcApAQCAtNTEsNyArNTEsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6
OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYsIFNtYXJ0UmVwbGFjZU9wdGlvbikKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFBhc3RlYm9hcmQ6OndyaXRlU2VsZWN0aW9uKFJh
bmdlKiBzZWxlY3RlZFJhbmdlLCBib29sIGNhblNtYXJ0Q29weU9yRGVsZXRlLCBGcmFtZSogZnJh
bWUpCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlU2VsZWN0aW9uKFJhbmdlKiwgYm9vbCwgRnJhbWUq
KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkBAIC02MSw3ICs2MSw3IEBAIHZvaWQgUGFz
dGVib2FyZDo6d3JpdGVVUkwoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYsIEZyYW1lKikKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFBhc3RlYm9hcmQ6OndyaXRlSW1hZ2UoTm9k
ZSogbm9kZSwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYpCit2b2lkIFBhc3RlYm9hcmQ6Ondy
aXRlSW1hZ2UoTm9kZSosIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmKQogewogICAgIG5vdElt
cGxlbWVudGVkKCk7CiB9CkBAIC04Miw4ICs4Miw3IEBAIGJvb2wgUGFzdGVib2FyZDo6Y2FuU21h
cnRSZXBsYWNlKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVBhc3NSZWZQdHI8RG9jdW1lbnRG
cmFnbWVudD4gUGFzdGVib2FyZDo6ZG9jdW1lbnRGcmFnbWVudChGcmFtZSogZnJhbWUsIFBhc3NS
ZWZQdHI8UmFuZ2U+IGNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBhbGxvd1BsYWluVGV4dCwgYm9vbCYgY2hvc2VQ
bGFpblRleHQpCitQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFBhc3RlYm9hcmQ6OmRvY3Vt
ZW50RnJhZ21lbnQoRnJhbWUqLCBQYXNzUmVmUHRyPFJhbmdlPiwgYm9vbCwgYm9vbCYpCiB7CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VmbC9QbGF0Zm9ybVNjcmVlbkVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lZmwvUGxhdGZvcm1TY3JlZW5FZmwuY3BwCmluZGV4IGI0M2JmNDEuLjA5ZDNh
MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QbGF0Zm9ybVNjcmVl
bkVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BsYXRmb3JtU2NyZWVu
RWZsLmNwcApAQCAtMTE2LDYgKzExNiw3IEBAIEZsb2F0UmVjdCBzY3JlZW5SZWN0KFdpZGdldCog
d2lkZ2V0KQogI2lmZGVmIEhBVkVfRUNPUkVfWAogICAgIGludCB3aWR0aCA9IDAsIGhlaWdodCA9
IDA7CiAgICAgQ0FMTF9XSVRIX0VDT1JFX1goZWNvcmVfeF9zY3JlZW5fc2l6ZV9nZXQoc2NyZWVu
LCAmd2lkdGgsICZoZWlnaHQpKTsKKyAgICBVTlVTRURfUEFSQU0od2lkZ2V0KTsKICAgICByZXR1
cm4gRmxvYXRSZWN0KDAsIDAsIHdpZHRoLCBoZWlnaHQpOwogI2Vsc2UKICAgICBpZiAoIXdpZGdl
dCB8fCAhd2lkZ2V0LT5ldmFzKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Jl
bmRlclRoZW1lRWZsLmNwcAppbmRleCBiNGU0MDNhLi4zODg3ZGQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHAKQEAgLTcyMCw3ICs3MjAsNyBA
QCBib29sIFJlbmRlclRoZW1lRWZsOjpwYWludFNsaWRlclRyYWNrKFJlbmRlck9iamVjdCogb2Jq
ZWN0LCBjb25zdCBQYWludEluZm8mIGluZgogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBS
ZW5kZXJUaGVtZUVmbDo6YWRqdXN0U2xpZGVyVHJhY2tTdHlsZShTdHlsZVJlc29sdmVyKiBzdHls
ZVJlc29sdmVyLCBSZW5kZXJTdHlsZSogc3R5bGUsIEVsZW1lbnQqIGVsZW1lbnQpIGNvbnN0Cit2
b2lkIFJlbmRlclRoZW1lRWZsOjphZGp1c3RTbGlkZXJUcmFja1N0eWxlKFN0eWxlUmVzb2x2ZXIq
LCBSZW5kZXJTdHlsZSogc3R5bGUsIEVsZW1lbnQqKSBjb25zdAogewogICAgIHN0eWxlLT5zZXRC
b3hTaGFkb3cobnVsbHB0cik7CiB9CkBAIC0xMDAzLDcgKzEwMDMsNyBAQCB2b2lkIFJlbmRlclRo
ZW1lRWZsOjpzZXREZWZhdWx0Rm9udFNpemUoaW50IHNpemUpCiAgICAgZGVmYXVsdEZvbnRTaXpl
ID0gc2l6ZTsKIH0KIAotdm9pZCBSZW5kZXJUaGVtZUVmbDo6c3lzdGVtRm9udChpbnQgcHJvcElk
LCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKK3ZvaWQgUmVuZGVyVGhl
bWVFZmw6OnN5c3RlbUZvbnQoaW50LCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikg
Y29uc3QKIHsKICAgICAvLyBJdCB3YXMgY2FsbGVkIGJ5IFJlbmRlckVtYmVkZGVkT2JqZWN0Ojpw
YWludFJlcGxhY2VkIHRvIHJlbmRlciBhbHRlcm5hdGl2ZSBzdHJpbmcuCiAgICAgLy8gVG8gYXZv
aWQgY2Fpcm9fZXJyb3Igd2hpbGUgcmVuZGVyaW5nLCBmb250RGVzY3JpcHRpb24gc2hvdWxkIGJl
IHBhc3NlZC4KQEAgLTEyMTQsMzIgKzEyMTQsMzIgQEAgYm9vbCBSZW5kZXJUaGVtZUVmbDo6cGFp
bnRNZWRpYVNsaWRlclRyYWNrKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8K
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBSZW5kZXJUaGVtZUVmbDo6cGFpbnRNZWRpYVNs
aWRlclRodW1iKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8mIGluZm8sIGNv
bnN0IEludFJlY3QmIHJlY3QpCitib29sIFJlbmRlclRoZW1lRWZsOjpwYWludE1lZGlhU2xpZGVy
VGh1bWIoUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiBpbmZvLCBjb25zdCBJbnRSZWN0
JiByZWN0KQogewogICAgIEludFNpemUgdGh1bWJSZWN0KDMsIDMpOwogICAgIGluZm8uY29udGV4
dC0+ZmlsbFJvdW5kZWRSZWN0KHJlY3QsIHRodW1iUmVjdCwgdGh1bWJSZWN0LCB0aHVtYlJlY3Qs
IHRodW1iUmVjdCwgbV9zbGlkZXJUaHVtYkNvbG9yLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBSZW5kZXJUaGVtZUVmbDo6cGFpbnRNZWRpYVZvbHVt
ZVNsaWRlckNvbnRhaW5lcihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mIGluZm8sIGNv
bnN0IEludFJlY3QmIHJlY3QpCitib29sIFJlbmRlclRoZW1lRWZsOjpwYWludE1lZGlhVm9sdW1l
U2xpZGVyQ29udGFpbmVyKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IElu
dFJlY3QmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci1ib29sIFJlbmRlclRoZW1lRWZsOjpwYWludE1lZGlhVm9sdW1lU2xpZGVyVHJhY2soUmVuZGVy
T2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgaW5mbywgY29uc3QgSW50UmVjdCYgcmVj
dCkKK2Jvb2wgUmVuZGVyVGhlbWVFZmw6OnBhaW50TWVkaWFWb2x1bWVTbGlkZXJUcmFjayhSZW5k
ZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikKIHsKICAgICBub3RJ
bXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBSZW5kZXJUaGVtZUVm
bDo6cGFpbnRNZWRpYVZvbHVtZVNsaWRlclRodW1iKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25z
dCBQYWludEluZm8mIGluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QpCitib29sIFJlbmRlclRoZW1l
RWZsOjpwYWludE1lZGlhVm9sdW1lU2xpZGVyVGh1bWIoUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFp
bnRJbmZvJiwgY29uc3QgSW50UmVjdCYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgUmVuZGVyVGhlbWVFZmw6OnBhaW50TWVkaWFDdXJyZW50
VGltZShSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBpbmZvLCBjb25zdCBJ
bnRSZWN0JiByZWN0KQorYm9vbCBSZW5kZXJUaGVtZUVmbDo6cGFpbnRNZWRpYUN1cnJlbnRUaW1l
KFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYgaW5mbywgY29uc3QgSW50UmVjdCYgcmVj
dCkKIHsKICAgICBpbmZvLmNvbnRleHQtPmZpbGxSZWN0KEZsb2F0UmVjdChyZWN0KSwgbV9tZWRp
YVBhbmVsQ29sb3IsIENvbG9yU3BhY2VEZXZpY2VSR0IpOwogICAgIHJldHVybiB0cnVlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Njcm9sbGJhckVmbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2Nyb2xsYmFyRWZsLmNwcAppbmRleCAxYWFmNGNm
Li4yMDUwMzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2Nyb2xs
YmFyRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2Nyb2xsYmFyRWZs
LmNwcApAQCAtNjcsNyArNjcsNyBAQCBTY3JvbGxiYXJFZmw6On5TY3JvbGxiYXJFZmwoKQogICAg
IHNldEV2YXNPYmplY3QoMCk7CiB9CiAKLXN0YXRpYyB2b2lkIHNjcm9sbGJhckVmbEVkamVNZXNz
YWdlKHZvaWQqIGRhdGEsIEV2YXNfT2JqZWN0KiBvYmplY3QsIEVkamVfTWVzc2FnZV9UeXBlIG1l
c3NhZ2VUeXBlLCBpbnQgaWQsIHZvaWQqIG1lc3NhZ2UpCitzdGF0aWMgdm9pZCBzY3JvbGxiYXJF
ZmxFZGplTWVzc2FnZSh2b2lkKiBkYXRhLCBFdmFzX09iamVjdCosIEVkamVfTWVzc2FnZV9UeXBl
IG1lc3NhZ2VUeXBlLCBpbnQgaWQsIHZvaWQqIG1lc3NhZ2UpCiB7CiAgICAgU2Nyb2xsYmFyRWZs
KiB0aGF0ID0gc3RhdGljX2Nhc3Q8U2Nyb2xsYmFyRWZsKj4oZGF0YSk7CiAgICAgRWRqZV9NZXNz
YWdlX0Zsb2F0KiBtZXNzYWdlRmxvYXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lZmwvU2Nyb2xsYmFyVGhlbWVFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
ZWZsL1Njcm9sbGJhclRoZW1lRWZsLmNwcAppbmRleCAyNDBiNTAxLi43ZDk0ZThkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2Nyb2xsYmFyVGhlbWVFZmwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TY3JvbGxiYXJUaGVtZUVmbC5jcHAKQEAg
LTQ0LDE2ICs0NCwxNiBAQCBTY3JvbGxiYXJUaGVtZUVmbDo6flNjcm9sbGJhclRoZW1lRWZsKCkK
IHsKIH0KIAotaW50IFNjcm9sbGJhclRoZW1lRWZsOjpzY3JvbGxiYXJUaGlja25lc3MoU2Nyb2xs
YmFyQ29udHJvbFNpemUgY29udHJvbFNpemUpCitpbnQgU2Nyb2xsYmFyVGhlbWVFZmw6OnNjcm9s
bGJhclRoaWNrbmVzcyhTY3JvbGxiYXJDb250cm9sU2l6ZSkKIHsKICAgICByZXR1cm4gMDsgLy8g
d2UgcGFpbnQgb24gdG9wCiB9CiAKLXZvaWQgU2Nyb2xsYmFyVGhlbWVFZmw6OnJlZ2lzdGVyU2Ny
b2xsYmFyKFNjcm9sbGJhclRoZW1lQ2xpZW50KiBzY3JvbGxiYXIpCit2b2lkIFNjcm9sbGJhclRo
ZW1lRWZsOjpyZWdpc3RlclNjcm9sbGJhcihTY3JvbGxiYXJUaGVtZUNsaWVudCopCiB7CiB9CiAK
LXZvaWQgU2Nyb2xsYmFyVGhlbWVFZmw6OnVucmVnaXN0ZXJTY3JvbGxiYXIoU2Nyb2xsYmFyVGhl
bWVDbGllbnQqIHNjcm9sbGJhcikKK3ZvaWQgU2Nyb2xsYmFyVGhlbWVFZmw6OnVucmVnaXN0ZXJT
Y3JvbGxiYXIoU2Nyb2xsYmFyVGhlbWVDbGllbnQqKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvVGVtcG9yYXJ5TGlua1N0dWJzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VmbC9UZW1wb3JhcnlMaW5rU3R1YnMuY3BwCmluZGV4IGU5MDU5N2Iu
LjFmOWQwZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9UZW1wb3Jh
cnlMaW5rU3R1YnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9UZW1wb3Jh
cnlMaW5rU3R1YnMuY3BwCkBAIC01MSw3ICs1MSw3IEBAIHZvaWQgZ2V0U3VwcG9ydGVkS2V5U2l6
ZXMoVmVjdG9yPFN0cmluZz4mKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLVN0cmluZyBz
aWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcodW5zaWduZWQga2V5U2l6ZUluZGV4LCBj
b25zdCBTdHJpbmcgJmNoYWxsZW5nZVN0cmluZywgY29uc3QgS1VSTCAmdXJsKQorU3RyaW5nIHNp
Z25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZyh1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgS1VSTCYpCiB7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1dpZGdldEVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9lZmwvV2lkZ2V0RWZsLmNwcAppbmRleCA4ZjhmMmU3Li4wM2I2ZDRjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvV2lkZ2V0RWZsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvV2lkZ2V0RWZsLmNwcApAQCAtMTA2LDcgKzEwNiw3IEBA
IHZvaWQgV2lkZ2V0OjpmcmFtZVJlY3RzQ2hhbmdlZCgpCiAgICAgZXZhc19vYmplY3RfcmVzaXpl
KG9iamVjdCwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpKTsKIH0KIAotdm9pZCBXaWRnZXQ6
OnNldEZvY3VzKGJvb2wgZm9jdXNlZCkKK3ZvaWQgV2lkZ2V0OjpzZXRGb2N1cyhib29sKQogewog
fQogCkBAIC0xMzQsNyArMTM0LDcgQEAgdm9pZCBXaWRnZXQ6OmhpZGUoKQogICAgIGV2YXNfb2Jq
ZWN0X2hpZGUocGxhdGZvcm1XaWRnZXQoKSk7CiB9CiAKLXZvaWQgV2lkZ2V0OjpwYWludChHcmFw
aGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmKQordm9pZCBXaWRnZXQ6OnBhaW50
KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmKQogewogICAgIG5vdEltcGxlbWVudGVk
KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0LmNwcAppbmRleCAzYTFiZGNkLi5iMjAxM2ExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKQEAgLTcwNCw3
ICs3MDQsNyBAQCBDb21wb3NpdGVPcGVyYXRvciBHcmFwaGljc0NvbnRleHQ6OmNvbXBvc2l0ZU9w
ZXJhdGlvbigpIGNvbnN0CiAjaWYgIVVTRShDRykgJiYgIVVTRShTS0lBKQogLy8gSW1wbGVtZW50
IHRoaXMgaWYgeW91IHdhbnQgdG8gZ28gYWhlYWQgYW5kIHB1c2ggdGhlIGRyYXdpbmcgbW9kZSBp
bnRvIHlvdXIgbmF0aXZlIGNvbnRleHQKIC8vIGltbWVkaWF0ZWx5Lgotdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OnNldFBsYXRmb3JtVGV4dERyYXdpbmdNb2RlKFRleHREcmF3aW5nTW9kZUZsYWdzIG1v
ZGUpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1UZXh0RHJhd2luZ01vZGUoVGV4
dERyYXdpbmdNb2RlRmxhZ3MpCiB7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcAppbmRleCBjYTBmOTVkLi45ODE2ZTYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3Bw
CkBAIC0xNzUsNyArMTc1LDcgQEAgZmxvYXQgSW1hZ2VTb3VyY2U6OmZyYW1lRHVyYXRpb25BdElu
ZGV4KHNpemVfdCBpbmRleCkKICAgICByZXR1cm4gZHVyYXRpb247CiB9CiAKLUltYWdlT3JpZW50
YXRpb24gSW1hZ2VTb3VyY2U6Om9yaWVudGF0aW9uQXRJbmRleChzaXplX3QgaW5kZXgpIGNvbnN0
CitJbWFnZU9yaWVudGF0aW9uIEltYWdlU291cmNlOjpvcmllbnRhdGlvbkF0SW5kZXgoc2l6ZV90
KSBjb25zdAogewogICAgIC8vIFRoZSBKUEVHIGFuZCBUSUZGIGRlY29kZXJzIG5lZWQgdG8gYmUg
dGF1Z2h0IGhvdyB0byByZWFkIEVYSUYsIFhNUCwgb3IgSVBUQyBkYXRhLgogICAgIG5vdEltcGxl
bWVudGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5jcHAKaW5kZXggYjExNjEwZi4uMzBlZTk0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtNzg1LDYgKzc4NSw4IEBAIE1l
ZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShjb25zdCBD
b250ZW50VHlwZSYgY29udGVudFR5CiAgICAgICAgICAgICAmJiAoY29udGVudFR5cGUudHlwZSgp
LnN0YXJ0c1dpdGgoInZpZGVvL3dlYm0iLCBmYWxzZSkgfHwgY29udGVudFR5cGUudHlwZSgpLnN0
YXJ0c1dpdGgoInZpZGVvL3gtZmx2IiwgZmFsc2UpKSkKICAgICAgICAgICAgIHJldHVybiBJc05v
dFN1cHBvcnRlZDsKICAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShjbGllbnQpOwogI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm9IYXJmYnV6ek5H
LmNwcAppbmRleCA2ZWExYTI3Li44ZDUwMGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm9IYXJmYnV6ek5HLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm9IYXJmYnV6ek5HLmNw
cApAQCAtMzcsNyArMzcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQgRm9udDo6
ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgVGV4dFJ1biYg
cnVuLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgaW50IGZyb20sIGludCB0bykgY29uc3QKK3Zv
aWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3Qg
VGV4dFJ1biYgcnVuLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgaW50LCBpbnQpIGNvbnN0CiB7
CiAgICAgR2x5cGhCdWZmZXIgZ2x5cGhCdWZmZXI7CiAgICAgSGFyZkJ1enpTaGFwZXIgc2hhcGVy
KHRoaXMsIHJ1bik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKaW5kZXggMjAzZDhmMy4u
YmQwYjk3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcApAQCAtNTczLDYgKzU3Myw4
IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGp1c3RGb2N1c1JpbmdMaW5lV2lkdGgoaW50JiB3aWR0
aCkKIHsKICNpZiBQTEFURk9STShHVEspCiAgICAgd2lkdGggPSAyOworI2Vsc2UKKyAgICBVTlVT
RURfUEFSQU0od2lkdGgpOwogI2VuZGlmCiB9CiAKQEAgLTY2Nyw3ICs2NjksNyBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyhjb25zdCBWZWN0b3I8SW50UmVjdD4mIHJlY3Rz
LCBpbnQgd2lkdGgsIGludAogICAgIGNhaXJvX3Jlc3RvcmUoY3IpOwogfQogCi12b2lkIEdyYXBo
aWNzQ29udGV4dDo6ZHJhd0xpbmVGb3JUZXh0KGNvbnN0IEZsb2F0UG9pbnQmIG9yaWdpbiwgZmxv
YXQgd2lkdGgsIGJvb2wgcHJpbnRpbmcpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmVG
b3JUZXh0KGNvbnN0IEZsb2F0UG9pbnQmIG9yaWdpbiwgZmxvYXQgd2lkdGgsIGJvb2wpCiB7CiAg
ICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNzcwLDEzICs3
NzIsMTMgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnRyYW5zbGF0ZShmbG9hdCB4LCBmbG9hdCB5
KQogICAgIG1fZGF0YS0+dHJhbnNsYXRlKHgsIHkpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4
dDo6c2V0UGxhdGZvcm1GaWxsQ29sb3IoY29uc3QgQ29sb3ImIGNvbCwgQ29sb3JTcGFjZSBjb2xv
clNwYWNlKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtRmlsbENvbG9yKGNvbnN0
IENvbG9yJiwgQ29sb3JTcGFjZSkKIHsKICAgICAvLyBDYWlybyBjb250ZXh0cyBjYW4ndCBob2xk
IHNlcGFyYXRlIGZpbGwgYW5kIHN0cm9rZSBjb2xvcnMKICAgICAvLyBzbyB3ZSBzZXQgdGhlbSBq
dXN0IGJlZm9yZSB3ZSBhY3R1YWxseSBmaWxsIG9yIHN0cm9rZQogfQogCi12b2lkIEdyYXBoaWNz
Q29udGV4dDo6c2V0UGxhdGZvcm1TdHJva2VDb2xvcihjb25zdCBDb2xvciYgY29sLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TdHJva2VD
b2xvcihjb25zdCBDb2xvciYsIENvbG9yU3BhY2UpCiB7CiAgICAgLy8gQ2Fpcm8gY29udGV4dHMg
Y2FuJ3QgaG9sZCBzZXBhcmF0ZSBmaWxsIGFuZCBzdHJva2UgY29sb3JzCiAgICAgLy8gc28gd2Ug
c2V0IHRoZW0ganVzdCBiZWZvcmUgd2UgYWN0dWFsbHkgZmlsbCBvciBzdHJva2UKQEAgLTgxNSw3
ICs4MTcsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TdHJva2VTdHlsZShT
dHJva2VTdHlsZSBzdHJva2VTdHlsZSkKICAgICB9CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0
OjpzZXRVUkxGb3JSZWN0KGNvbnN0IEtVUkwmIGxpbmssIGNvbnN0IEludFJlY3QmIGRlc3RSZWN0
KQordm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFVSTEZvclJlY3QoY29uc3QgS1VSTCYsIGNvbnN0
IEludFJlY3QmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkBAIC04NjUsNyArODY3LDcg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmFkZElubmVyUm91bmRlZFJlY3RDbGlwKGNvbnN0IElu
dFJlY3QmIHJlY3QsIGludCB0aGlja25lc3MKICAgICBjYWlyb19zZXRfZmlsbF9ydWxlKGNyLCBz
YXZlZEZpbGxSdWxlKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hh
ZG93KEZsb2F0U2l6ZSBjb25zdCYgc2l6ZSwgZmxvYXQgYmx1ciwgQ29sb3IgY29uc3QmIGNvbG9y
LCBDb2xvclNwYWNlKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KEZs
b2F0U2l6ZSBjb25zdCYgc2l6ZSwgZmxvYXQsIENvbG9yIGNvbnN0JiwgQ29sb3JTcGFjZSkKIHsK
ICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CkBAIC0xMDk0LDcg
KzEwOTYsNyBAQCBzdGF0aWMgaW5saW5lIEZsb2F0UG9pbnQgZ2V0UGhhc2UoY29uc3QgRmxvYXRS
ZWN0JiBkZXN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGUpCiAgICAgcmV0dXJuIHBoYXNlOwogfQog
Ci12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJvdW5kZWRSZWN0KGNvbnN0IEludFJlY3QmIHIs
IGNvbnN0IEludFNpemUmIHRvcExlZnQsIGNvbnN0IEludFNpemUmIHRvcFJpZ2h0LCBjb25zdCBJ
bnRTaXplJiBib3R0b21MZWZ0LCBjb25zdCBJbnRTaXplJiBib3R0b21SaWdodCwgY29uc3QgQ29s
b3ImIGNvbG9yLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6
ZmlsbFJvdW5kZWRSZWN0KGNvbnN0IEludFJlY3QmIHIsIGNvbnN0IEludFNpemUmIHRvcExlZnQs
IGNvbnN0IEludFNpemUmIHRvcFJpZ2h0LCBjb25zdCBJbnRTaXplJiBib3R0b21MZWZ0LCBjb25z
dCBJbnRTaXplJiBib3R0b21SaWdodCwgY29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclNwYWNlKQog
ewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4
dFBsYXRmb3JtUHJpdmF0ZUNhaXJvLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9HcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGVDYWlyby5oCmluZGV4IDRjYzhj
ODAuLmZjN2M4YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0dyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZUNhaXJvLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Q
cml2YXRlQ2Fpcm8uaApAQCAtOTAsNyArOTAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB0cmFuc2xh
dGUoZmxvYXQsIGZsb2F0KSB7fQogICAgIHZvaWQgY29uY2F0Q1RNKGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSYpIHt9CiAgICAgdm9pZCBzZXRDVE0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJikge30KLSAg
ICB2b2lkIHN5bmNDb250ZXh0KGNhaXJvX3QqIGNyKSB7fQorICAgIHZvaWQgc3luY0NvbnRleHQo
Y2Fpcm9fdCopIHsgfQogI2VuZGlmCiAKICAgICBQbGF0Zm9ybUNvbnRleHRDYWlybyogcGxhdGZv
cm1Db250ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcAppbmRleCBmOGFjMzk1Li5mYzg3YWRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1
ZmZlckNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9JbWFnZUJ1ZmZlckNhaXJvLmNwcApAQCAtNDgsNyArNDgsNyBAQCB1c2luZyBuYW1lc3BhY2Ug
c3RkOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUltYWdlQnVmZmVyRGF0YTo6SW1hZ2VCdWZm
ZXJEYXRhKGNvbnN0IEludFNpemUmIHNpemUpCitJbWFnZUJ1ZmZlckRhdGE6OkltYWdlQnVmZmVy
RGF0YShjb25zdCBJbnRTaXplJikKICAgICA6IG1fc3VyZmFjZSgwKQogICAgICwgbV9wbGF0Zm9y
bUNvbnRleHQoMCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0ltYWdlQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vSW1hZ2VDYWlyby5jcHAKaW5kZXggNTFjYTY0My4uZjFhZjEzYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VDYWlyby5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VDYWlyby5j
cHAKQEAgLTQzLDcgKzQzLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdm9pZCBJbWFnZTo6
ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHRp
bGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sCi0gICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29sb3JTcGFjZSBjb2xv
clNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCkK
KyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBDb2xvclNw
YWNlLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCkKIHsK
ICAgICBOYXRpdmVJbWFnZUNhaXJvKiBpbWFnZSA9IG5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1l
KCk7CiAgICAgaWYgKCFpbWFnZSkgLy8gSWYgaXQncyB0b28gZWFybHkgd2Ugd29uJ3QgaGF2ZSBh
biBpbWFnZSB5ZXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9lZmwvSWNvbkVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwv
SWNvbkVmbC5jcHAKaW5kZXggNmM3ZWZkYy4uOWRjNDAzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0ljb25FZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9JY29uRWZsLmNwcApAQCAtNTIsMTMgKzUyLDEzIEBA
IEljb246On5JY29uKCkKIHsKIH0KIAotUGFzc1JlZlB0cjxJY29uPiBJY29uOjpjcmVhdGVJY29u
Rm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcykKK1Bhc3NSZWZQdHI8SWNv
bj4gSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JikKIHsKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiAwOwogfQogCi12b2lkIEljb246OnBhaW50
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3ZvaWQgSWNv
bjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpCiB7CiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcAppbmRleCA0ZTJkZDg1
Li40OTA1MTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
cmVldHlwZS9Gb250Q2FjaGVGcmVlVHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCkBAIC0xMDAsNyArMTAw
LDcgQEAgY29uc3QgU2ltcGxlRm9udERhdGEqIEZvbnRDYWNoZTo6Z2V0Rm9udERhdGFGb3JDaGFy
YWN0ZXJzKGNvbnN0IEZvbnQmIGZvbnQsIGNvbnMKICAgICByZXR1cm4gZ2V0Q2FjaGVkRm9udERh
dGEoJmFsdGVybmF0ZUZvbnREYXRhLCBEb05vdFJldGFpbik7CiB9CiAKLVNpbXBsZUZvbnREYXRh
KiBGb250Q2FjaGU6OmdldFNpbWlsYXJGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnQmIGZvbnQp
CitTaW1wbGVGb250RGF0YSogRm9udENhY2hlOjpnZXRTaW1pbGFyRm9udFBsYXRmb3JtRGF0YShj
b25zdCBGb250JikKIHsKICAgICByZXR1cm4gMDsKIH0KQEAgLTExMyw3ICsxMTMsNyBAQCBTaW1w
bGVGb250RGF0YSogRm9udENhY2hlOjpnZXRMYXN0UmVzb3J0RmFsbGJhY2tGb250KGNvbnN0IEZv
bnREZXNjcmlwdGlvbiYgZm9udAogICAgIHJldHVybiBnZXRDYWNoZWRGb250RGF0YShmb250RGVz
Y3JpcHRpb24sIHRpbWVzU3RyLCBmYWxzZSwgc2hvdWxkUmV0YWluKTsKIH0KIAotdm9pZCBGb250
Q2FjaGU6OmdldFRyYWl0c0luRmFtaWx5KGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5TmFtZSwg
VmVjdG9yPHVuc2lnbmVkPiYgdHJhaXRzTWFza3MpCit2b2lkIEZvbnRDYWNoZTo6Z2V0VHJhaXRz
SW5GYW1pbHkoY29uc3QgQXRvbWljU3RyaW5nJiwgVmVjdG9yPHVuc2lnbmVkPiYpCiB7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9H
U3RyZWFtZXJHV29ybGQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0dTdHJlYW1lckdXb3JsZC5jcHAKaW5kZXggZmEwODhkZi4uMjEyZGVmYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1l
ckdXb3JsZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL0dTdHJlYW1lckdXb3JsZC5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgdXNpbmcgbmFtZXNwYWNl
IHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1nYm9vbGVhbiBnc3RHV29ybGRTeW5jTWVz
c2FnZUNhbGxiYWNrKEdzdEJ1cyogYnVzLCBHc3RNZXNzYWdlKiBtZXNzYWdlLCBncG9pbnRlciBk
YXRhKQorZ2Jvb2xlYW4gZ3N0R1dvcmxkU3luY01lc3NhZ2VDYWxsYmFjayhHc3RCdXMqLCBHc3RN
ZXNzYWdlKiBtZXNzYWdlLCBncG9pbnRlciBkYXRhKQogewogICAgIEFTU0VSVChHU1RfTUVTU0FH
RV9UWVBFKG1lc3NhZ2UpID09IEdTVF9NRVNTQUdFX0VMRU1FTlQpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDI0OTc1ZGEuLjZmNTcz
NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3Bw
CkBAIC0xNTQzLDcgKzE1NDMsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
c2V0U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogICAgIG1fc2l6ZSA9IHNpemU7CiB9CiAKLXZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzZXRWaXNpYmxlKGJvb2wgdmlzaWJsZSkK
K3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzZXRWaXNpYmxlKGJvb2wpCiB7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAKaW5kZXggMDZlZGQzMi4uYzJjMGJk
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1ZpZGVvU2lua0dTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAKQEAgLTM2Miw3ICszNjIsNyBA
QCBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0VmlkZW9TaW5rUHJvcG9zZUFsbG9jYXRpb24oR3N0QmFz
ZVNpbmsqIGJhc2VTaW5rLCBHc3RRdWVyeQogI2VuZGlmCiAKICNpZm5kZWYgR1NUX0FQSV9WRVJT
SU9OXzEKLXN0YXRpYyB2b2lkIHdlYmtpdFZpZGVvU2lua01hcnNoYWxWb2lkQW5kTWluaU9iamVj
dChHQ2xvc3VyZSogY2xvc3VyZSwgR1ZhbHVlKiByZXR1cm5WYWx1ZSwgZ3VpbnQgcGFyYW1ldGVy
c051bWJlciwgY29uc3QgR1ZhbHVlKiBwYXJhbWV0ZXJWYWx1ZXMsIGdwb2ludGVyIGludm9jYXRp
b25IaW50LCBncG9pbnRlciBtYXJzaGFsRGF0YSkKK3N0YXRpYyB2b2lkIHdlYmtpdFZpZGVvU2lu
a01hcnNoYWxWb2lkQW5kTWluaU9iamVjdChHQ2xvc3VyZSogY2xvc3VyZSwgR1ZhbHVlKiwgZ3Vp
bnQgcGFyYW1ldGVyc051bWJlciwgY29uc3QgR1ZhbHVlKiBwYXJhbWV0ZXJWYWx1ZXMsIGdwb2lu
dGVyLCBncG9pbnRlciBtYXJzaGFsRGF0YSkKIHsKICAgICB0eXBlZGVmIHZvaWQgKCptYXJzaGFs
ZnVuY19WT0lEX19NSU5JT0JKRUNUKSAoZ3BvaW50ZXIgb2JqLCBncG9pbnRlciBhcmcxLCBncG9p
bnRlciBkYXRhMik7CiAgICAgbWFyc2hhbGZ1bmNfVk9JRF9fTUlOSU9CSkVDVCBjYWxsYmFjazsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9X
ZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggNzUwODEy
Mi4uMTA5MTg2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5j
cHAKQEAgLTYzMCw3ICs2MzAsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0V2ViU3JjU2V0VXJp
KEdzdFVSSUhhbmRsZXIqIGhhbmRsZXIsIGNvbnN0IGdjaGFyKiB1cmkpCiB9CiAjZW5kaWYKIAot
c3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjVXJpSGFuZGxlckluaXQoZ3BvaW50ZXIgZ0lmYWNlLCBn
cG9pbnRlciBpZmFjZURhdGEpCitzdGF0aWMgdm9pZCB3ZWJLaXRXZWJTcmNVcmlIYW5kbGVySW5p
dChncG9pbnRlciBnSWZhY2UsIGdwb2ludGVyKQogewogICAgIEdzdFVSSUhhbmRsZXJJbnRlcmZh
Y2UqIGlmYWNlID0gKEdzdFVSSUhhbmRsZXJJbnRlcmZhY2UgKikgZ0lmYWNlOwogCkBAIC02NTUs
NyArNjU1LDcgQEAgc3RhdGljIGdib29sZWFuIHdlYktpdFdlYlNyY05lZWREYXRhTWFpbkNiKFdl
YktpdFdlYlNyYyogc3JjKQogICAgIHJldHVybiBGQUxTRTsKIH0KIAotc3RhdGljIHZvaWQgd2Vi
S2l0V2ViU3JjTmVlZERhdGFDYihHc3RBcHBTcmMqIGFwcHNyYywgZ3VpbnQgbGVuZ3RoLCBncG9p
bnRlciB1c2VyRGF0YSkKK3N0YXRpYyB2b2lkIHdlYktpdFdlYlNyY05lZWREYXRhQ2IoR3N0QXBw
U3JjKiwgZ3VpbnQgbGVuZ3RoLCBncG9pbnRlciB1c2VyRGF0YSkKIHsKICAgICBXZWJLaXRXZWJT
cmMqIHNyYyA9IFdFQktJVF9XRUJfU1JDKHVzZXJEYXRhKTsKICAgICBXZWJLaXRXZWJTcmNQcml2
YXRlKiBwcml2ID0gc3JjLT5wcml2OwpAQCAtNjg2LDcgKzY4Niw3IEBAIHN0YXRpYyBnYm9vbGVh
biB3ZWJLaXRXZWJTcmNFbm91Z2hEYXRhTWFpbkNiKFdlYktpdFdlYlNyYyogc3JjKQogICAgIHJl
dHVybiBGQUxTRTsKIH0KIAotc3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjRW5vdWdoRGF0YUNiKEdz
dEFwcFNyYyogYXBwc3JjLCBncG9pbnRlciB1c2VyRGF0YSkKK3N0YXRpYyB2b2lkIHdlYktpdFdl
YlNyY0Vub3VnaERhdGFDYihHc3RBcHBTcmMqLCBncG9pbnRlciB1c2VyRGF0YSkKIHsKICAgICBX
ZWJLaXRXZWJTcmMqIHNyYyA9IFdFQktJVF9XRUJfU1JDKHVzZXJEYXRhKTsKICAgICBXZWJLaXRX
ZWJTcmNQcml2YXRlKiBwcml2ID0gc3JjLT5wcml2OwpAQCAtNzExLDcgKzcxMSw3IEBAIHN0YXRp
YyBnYm9vbGVhbiB3ZWJLaXRXZWJTcmNTZWVrTWFpbkNiKFdlYktpdFdlYlNyYyogc3JjKQogICAg
IHJldHVybiBGQUxTRTsKIH0KIAotc3RhdGljIGdib29sZWFuIHdlYktpdFdlYlNyY1NlZWtEYXRh
Q2IoR3N0QXBwU3JjKiBhcHBzcmMsIGd1aW50NjQgb2Zmc2V0LCBncG9pbnRlciB1c2VyRGF0YSkK
K3N0YXRpYyBnYm9vbGVhbiB3ZWJLaXRXZWJTcmNTZWVrRGF0YUNiKEdzdEFwcFNyYyosIGd1aW50
NjQgb2Zmc2V0LCBncG9pbnRlciB1c2VyRGF0YSkKIHsKICAgICBXZWJLaXRXZWJTcmMqIHNyYyA9
IFdFQktJVF9XRUJfU1JDKHVzZXJEYXRhKTsKICAgICBXZWJLaXRXZWJTcmNQcml2YXRlKiBwcml2
ID0gc3JjLT5wcml2OwpAQCAtODUzLDcgKzg1Myw3IEBAIHZvaWQgU3RyZWFtaW5nQ2xpZW50Ojpk
aWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
CiAgICAgICAgIG5vdGlmeUdzdFRhZ3NPblBhZChHU1RfRUxFTUVOVChtX3NyYyksIG1fc3JjLT5w
cml2LT5zcmNwYWQsIHRhZ3MpOwogfQogCi12b2lkIFN0cmVhbWluZ0NsaWVudDo6ZGlkUmVjZWl2
ZURhdGEoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0
aCwgaW50IGVuY29kZWREYXRhTGVuZ3RoKQordm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRpZFJlY2Vp
dmVEYXRhKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5n
dGgsIGludCkKIHsKICAgICBXZWJLaXRXZWJTcmNQcml2YXRlKiBwcml2ID0gbV9zcmMtPnByaXY7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6
L25nL0hhcmZCdXp6TkdGYWNlQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvaGFyZmJ1enovbmcvSGFyZkJ1enpOR0ZhY2VDYWlyby5jcHAKaW5kZXggMGY5YmI0My4u
NTJmY2E3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFy
ZmJ1enovbmcvSGFyZkJ1enpOR0ZhY2VDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovbmcvSGFyZkJ1enpOR0ZhY2VDYWlyby5jcHAKQEAgLTkw
LDcgKzkwLDcgQEAgc3RhdGljIHZvaWQgQ2Fpcm9HZXRHbHlwaFdpZHRoQW5kRXh0ZW50cyhjYWly
b19zY2FsZWRfZm9udF90KiBzY2FsZWRGb250LCBoYl9jb2QKICAgICB9CiB9CiAKLXN0YXRpYyBo
Yl9ib29sX3QgaGFyZmJ1enpHZXRHbHlwaChoYl9mb250X3QqIGhiRm9udCwgdm9pZCogZm9udERh
dGEsIGhiX2NvZGVwb2ludF90IHVuaWNvZGUsIGhiX2NvZGVwb2ludF90IHZhcmlhdGlvblNlbGVj
dG9yLCBoYl9jb2RlcG9pbnRfdCogZ2x5cGgsIHZvaWQqIHVzZXJEYXRhKQorc3RhdGljIGhiX2Jv
b2xfdCBoYXJmYnV6ekdldEdseXBoKGhiX2ZvbnRfdCosIHZvaWQqIGZvbnREYXRhLCBoYl9jb2Rl
cG9pbnRfdCB1bmljb2RlLCBoYl9jb2RlcG9pbnRfdCwgaGJfY29kZXBvaW50X3QqIGdseXBoLCB2
b2lkKikKIHsKICAgICBGb250UGxhdGZvcm1EYXRhKiBwbGF0Zm9ybURhdGEgPSByZWludGVycHJl
dF9jYXN0PEZvbnRQbGF0Zm9ybURhdGEqPihmb250RGF0YSk7CiAgICAgY2Fpcm9fc2NhbGVkX2Zv
bnRfdCogc2NhbGVkRm9udCA9IHBsYXRmb3JtRGF0YS0+c2NhbGVkRm9udCgpOwpAQCAtMTA4LDcg
KzEwOCw3IEBAIHN0YXRpYyBoYl9ib29sX3QgaGFyZmJ1enpHZXRHbHlwaChoYl9mb250X3QqIGhi
Rm9udCwgdm9pZCogZm9udERhdGEsIGhiX2NvZGVwb2luCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LXN0YXRpYyBoYl9wb3NpdGlvbl90IGhhcmZidXp6R2V0R2x5cGhIb3Jpem9udGFsQWR2YW5jZSho
Yl9mb250X3QqIGhiRm9udCwgdm9pZCogZm9udERhdGEsIGhiX2NvZGVwb2ludF90IGdseXBoLCB2
b2lkKiB1c2VyRGF0YSkKK3N0YXRpYyBoYl9wb3NpdGlvbl90IGhhcmZidXp6R2V0R2x5cGhIb3Jp
em9udGFsQWR2YW5jZShoYl9mb250X3QqLCB2b2lkKiBmb250RGF0YSwgaGJfY29kZXBvaW50X3Qg
Z2x5cGgsIHZvaWQqKQogewogICAgIEZvbnRQbGF0Zm9ybURhdGEqIHBsYXRmb3JtRGF0YSA9IHJl
aW50ZXJwcmV0X2Nhc3Q8Rm9udFBsYXRmb3JtRGF0YSo+KGZvbnREYXRhKTsKICAgICBjYWlyb19z
Y2FsZWRfZm9udF90KiBzY2FsZWRGb250ID0gcGxhdGZvcm1EYXRhLT5zY2FsZWRGb250KCk7CkBA
IC0xMTksMTQgKzExOSwxNCBAQCBzdGF0aWMgaGJfcG9zaXRpb25fdCBoYXJmYnV6ekdldEdseXBo
SG9yaXpvbnRhbEFkdmFuY2UoaGJfZm9udF90KiBoYkZvbnQsIHZvaWQqCiAgICAgcmV0dXJuIGFk
dmFuY2U7CiB9CiAKLXN0YXRpYyBoYl9ib29sX3QgaGFyZmJ1enpHZXRHbHlwaEhvcml6b250YWxP
cmlnaW4oaGJfZm9udF90KiBoYkZvbnQsIHZvaWQqIGZvbnREYXRhLCBoYl9jb2RlcG9pbnRfdCBn
bHlwaCwgaGJfcG9zaXRpb25fdCogeCwgaGJfcG9zaXRpb25fdCogeSwgdm9pZCogdXNlckRhdGEp
CitzdGF0aWMgaGJfYm9vbF90IGhhcmZidXp6R2V0R2x5cGhIb3Jpem9udGFsT3JpZ2luKGhiX2Zv
bnRfdCosIHZvaWQqLCBoYl9jb2RlcG9pbnRfdCwgaGJfcG9zaXRpb25fdCosIGhiX3Bvc2l0aW9u
X3QqLCB2b2lkKikKIHsKICAgICAvLyBKdXN0IHJldHVybiB0cnVlLCBmb2xsb3dpbmcgdGhlIHdh
eSB0aGF0IEhhcmZidXp6LUZyZWVUeXBlCiAgICAgLy8gaW1wbGVtZW50YXRpb24gZG9lcy4KICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGhiX2Jvb2xfdCBoYXJmYnV6ekdldEdseXBoRXh0
ZW50cyhoYl9mb250X3QqIGhiRm9udCwgdm9pZCogZm9udERhdGEsIGhiX2NvZGVwb2ludF90IGds
eXBoLCBoYl9nbHlwaF9leHRlbnRzX3QqIGV4dGVudHMsIHZvaWQqIHVzZXJEYXRhKQorc3RhdGlj
IGhiX2Jvb2xfdCBoYXJmYnV6ekdldEdseXBoRXh0ZW50cyhoYl9mb250X3QqLCB2b2lkKiBmb250
RGF0YSwgaGJfY29kZXBvaW50X3QgZ2x5cGgsIGhiX2dseXBoX2V4dGVudHNfdCogZXh0ZW50cywg
dm9pZCopCiB7CiAgICAgRm9udFBsYXRmb3JtRGF0YSogcGxhdGZvcm1EYXRhID0gcmVpbnRlcnBy
ZXRfY2FzdDxGb250UGxhdGZvcm1EYXRhKj4oZm9udERhdGEpOwogICAgIGNhaXJvX3NjYWxlZF9m
b250X3QqIHNjYWxlZEZvbnQgPSBwbGF0Zm9ybURhdGEtPnNjYWxlZEZvbnQoKTsKQEAgLTE1Myw3
ICsxNTMsNyBAQCBzdGF0aWMgaGJfZm9udF9mdW5jc190KiBoYXJmYnV6ekNhaXJvVGV4dEdldEZv
bnRGdW5jcygpCiAgICAgcmV0dXJuIGhhcmZidXp6Q2Fpcm9Gb250RnVuY3M7CiB9CiAKLXN0YXRp
YyBoYl9ibG9iX3QqIGhhcmZidXp6Q2Fpcm9HZXRUYWJsZShoYl9mYWNlX3QqIGZhY2UsIGhiX3Rh
Z190IHRhZywgdm9pZCogdXNlckRhdGEpCitzdGF0aWMgaGJfYmxvYl90KiBoYXJmYnV6ekNhaXJv
R2V0VGFibGUoaGJfZmFjZV90KiwgaGJfdGFnX3QgdGFnLCB2b2lkKiB1c2VyRGF0YSkKIHsKICAg
ICBGb250UGxhdGZvcm1EYXRhKiBmb250ID0gcmVpbnRlcnByZXRfY2FzdDxGb250UGxhdGZvcm1E
YXRhKj4odXNlckRhdGEpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
bWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvanBlZy9KUEVHSW1hZ2VEZWNvZGVyLmNwcAppbmRleCAy
NzVmZmMwLi4yYWY0ZGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFn
ZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHAKQEAgLTE1
Niw2ICsxNTYsNyBAQCBzdGF0aWMgQ29sb3JQcm9maWxlIHJlYWRDb2xvclByb2ZpbGUoanBlZ19k
ZWNvbXByZXNzX3N0cnVjdCogaW5mbykKICAgICBmcmVlKHByb2ZpbGUpOwogICAgIHJldHVybiBj
b2xvclByb2ZpbGU7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShpbmZvKTsKICAgICByZXR1cm4g
Q29sb3JQcm9maWxlKCk7CiAjZW5kaWYKIH0KQEAgLTQ3NSw3ICs0NzYsNyBAQCB2b2lkIGVycm9y
X2V4aXQoal9jb21tb25fcHRyIGNpbmZvKQogICAgIGxvbmdqbXAoZXJyLT5zZXRqbXBfYnVmZmVy
LCAtMSk7CiB9CiAKLXZvaWQgaW5pdF9zb3VyY2Uoal9kZWNvbXByZXNzX3B0ciBqZCkKK3ZvaWQg
aW5pdF9zb3VyY2Uoal9kZWNvbXByZXNzX3B0cikKIHsKIH0KIApAQCAtNDg1LDcgKzQ4Niw3IEBA
IHZvaWQgc2tpcF9pbnB1dF9kYXRhKGpfZGVjb21wcmVzc19wdHIgamQsIGxvbmcgbnVtX2J5dGVz
KQogICAgIHNyYy0+ZGVjb2Rlci0+c2tpcEJ5dGVzKG51bV9ieXRlcyk7CiB9CiAKLWJvb2xlYW4g
ZmlsbF9pbnB1dF9idWZmZXIoal9kZWNvbXByZXNzX3B0ciBqZCkKK2Jvb2xlYW4gZmlsbF9pbnB1
dF9idWZmZXIoal9kZWNvbXByZXNzX3B0cikKIHsKICAgICAvLyBPdXIgZGVjb2RlIHN0ZXAgYWx3
YXlzIHNldHMgdGhpbmdzIHVwIHByb3Blcmx5LCBzbyBpZiB0aGlzIG1ldGhvZCBpcyBldmVyCiAg
ICAgLy8gY2FsbGVkLCB0aGVuIHdlIGhhdmUgaGl0IHRoZSBlbmQgb2YgdGhlIGJ1ZmZlci4gIEEg
cmV0dXJuIHZhbHVlIG9mIGZhbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1hZ2VEZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJbWFnZURlY29kZXIuY3BwCmluZGV4IDg1
MWI2ZjkuLjQ3MDI0MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdl
LWRlY29kZXJzL3BuZy9QTkdJbWFnZURlY29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJbWFnZURlY29kZXIuY3BwCkBAIC00MDEsNyAr
NDAxLDcgQEAgdm9pZCBQTkdJbWFnZURlY29kZXI6OmhlYWRlckF2YWlsYWJsZSgpCiAgICAgfQog
fQogCi12b2lkIFBOR0ltYWdlRGVjb2Rlcjo6cm93QXZhaWxhYmxlKHVuc2lnbmVkIGNoYXIqIHJv
d0J1ZmZlciwgdW5zaWduZWQgcm93SW5kZXgsIGludCBpbnRlcmxhY2VQYXNzKQordm9pZCBQTkdJ
bWFnZURlY29kZXI6OnJvd0F2YWlsYWJsZSh1bnNpZ25lZCBjaGFyKiByb3dCdWZmZXIsIHVuc2ln
bmVkIHJvd0luZGV4LCBpbnQpCiB7CiAgICAgaWYgKG1fZnJhbWVCdWZmZXJDYWNoZS5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9Db29raWVTdG9yYWdlU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llU3RvcmFnZVNvdXAuY3BwCmluZGV4IGYzMDllNWQ4Li5i
Yzg3YWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
Q29va2llU3RvcmFnZVNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvc291cC9Db29raWVTdG9yYWdlU291cC5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi12b2lkIHNldENvb2tpZVN0b3JhZ2VQcml2YXRlQnJvd3NpbmdFbmFi
bGVkKGJvb2wgZW5hYmxlZCkKK3ZvaWQgc2V0Q29va2llU3RvcmFnZVByaXZhdGVCcm93c2luZ0Vu
YWJsZWQoYm9vbCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0ROU1NvdXAuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0ROU1NvdXAuY3BwCmluZGV4IDFmMjJlMjEuLjk0
YjYwYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9E
TlNTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvRE5T
U291cC5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgYm9vbCBETlNSZXNvbHZlUXVldWU6OnBsYXRmb3Jt
UHJveHlJc0VuYWJsZWRJblN5c3RlbVByZWZlcmVuY2VzKCkKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLXN0YXRpYyB2b2lkIHJlc29sdmVkQ2FsbGJhY2soU291cEFkZHJlc3MqIHNvdXBBZGRyZXNz
LCBndWludCBzdGF0dXMsIHZvaWQqIHVzZXJEYXRhKQorc3RhdGljIHZvaWQgcmVzb2x2ZWRDYWxs
YmFjayhTb3VwQWRkcmVzcyosIGd1aW50LCB2b2lkKikKIHsKICAgICBETlNSZXNvbHZlUXVldWU6
OnNoYXJlZCgpLmRlY3JlbWVudFJlcXVlc3RDb3VudCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Byb3h5UmVzb2x2ZXJTb3VwLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Qcm94eVJlc29sdmVyU291cC5jcHAK
aW5kZXggNDg0MDZmMy4uNmY2ZWQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Byb3h5UmVzb2x2ZXJTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUHJveHlSZXNvbHZlclNvdXAuY3BwCkBAIC01NSw3ICs1
NSw3IEBAIGVudW0gewogICAgIExBU1RfUFJPUAogfTsKIAotc3RhdGljIHZvaWQgc291cF9wcm94
eV9yZXNvbHZlcl93a19pbml0KFNvdXBQcm94eVJlc29sdmVyV2sqIHJlc29sdmVyV2spCitzdGF0
aWMgdm9pZCBzb3VwX3Byb3h5X3Jlc29sdmVyX3drX2luaXQoU291cFByb3h5UmVzb2x2ZXJXayop
CiB7CiB9CiAKQEAgLTE0NCw3ICsxNDQsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gaWRsZV9yZXR1cm5f
cHJveHlfdXJpKHZvaWQqIGRhdGEpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGF0aWMgdm9p
ZCBzb3VwUHJveHlSZXNvbHZlcldrR2V0UHJveHlVUklBc3luYyhTb3VwUHJveHlVUklSZXNvbHZl
ciogcHJveHlSZXNvbHZlciwgU291cFVSSSogdXJpLCBHTWFpbkNvbnRleHQqIGFzeW5jQ29udGV4
dCwgR0NhbmNlbGxhYmxlKiBjYW5jZWxsYWJsZSwgU291cFByb3h5VVJJUmVzb2x2ZXJDYWxsYmFj
ayBjYWxsYmFjaywgdm9pZCogdXNlckRhdGEpCitzdGF0aWMgdm9pZCBzb3VwUHJveHlSZXNvbHZl
cldrR2V0UHJveHlVUklBc3luYyhTb3VwUHJveHlVUklSZXNvbHZlciogcHJveHlSZXNvbHZlciwg
U291cFVSSSogdXJpLCBHTWFpbkNvbnRleHQqIGFzeW5jQ29udGV4dCwgR0NhbmNlbGxhYmxlKiwg
U291cFByb3h5VVJJUmVzb2x2ZXJDYWxsYmFjayBjYWxsYmFjaywgdm9pZCogdXNlckRhdGEpCiB7
CiAgICAgU291cFdrQXN5bmNEYXRhKiBzc2FkOwogCkBAIC0xNTYsNyArMTU2LDcgQEAgc3RhdGlj
IHZvaWQgc291cFByb3h5UmVzb2x2ZXJXa0dldFByb3h5VVJJQXN5bmMoU291cFByb3h5VVJJUmVz
b2x2ZXIqIHByb3h5UmVzb2wKICAgICBzb3VwX2FkZF9jb21wbGV0aW9uKGFzeW5jQ29udGV4dCwg
aWRsZV9yZXR1cm5fcHJveHlfdXJpLCBzc2FkKTsKIH0KIAotc3RhdGljIHVpbnQgc291cFByb3h5
UmVzb2x2ZXJXa0dldFByb3h5VVJJU3luYyhTb3VwUHJveHlVUklSZXNvbHZlciogcHJveHlSZXNv
bHZlciwgU291cFVSSSogdXJpLCBHQ2FuY2VsbGFibGUqIGNhbmNlbGxhYmxlLCBTb3VwVVJJKiog
cHJveHlVUkkpCitzdGF0aWMgdWludCBzb3VwUHJveHlSZXNvbHZlcldrR2V0UHJveHlVUklTeW5j
KFNvdXBQcm94eVVSSVJlc29sdmVyKiBwcm94eVJlc29sdmVyLCBTb3VwVVJJKiB1cmksIEdDYW5j
ZWxsYWJsZSosIFNvdXBVUkkqKiBwcm94eVVSSSkKIHsKICAgICBTb3VwUHJveHlSZXNvbHZlcldr
UHJpdmF0ZSogcHJpdiA9IFNPVVBfUFJPWFlfUkVTT0xWRVJfV0tfR0VUX1BSSVZBVEUocHJveHlS
ZXNvbHZlcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXggMzBhMmRlNC4uNTFjOTE4ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNl
SGFuZGxlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlSGFuZGxlU291cC5jcHAKQEAgLTQxMCw3ICs0MTAsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgaGFzVW5pZ25vcmVkVExTRXJyb3JzKFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCiAgICAg
ICAgICYmICFhbGxvd3NBbnlIVFRQU0NlcnRpZmljYXRlSG9zdHMoKS5jb250YWlucyhoYW5kbGUt
PmZpcnN0UmVxdWVzdCgpLnVybCgpLmhvc3QoKS5sb3dlcigpKTsKIH0KIAotc3RhdGljIHZvaWQg
c2VuZFJlcXVlc3RDYWxsYmFjayhHT2JqZWN0KiBzb3VyY2UsIEdBc3luY1Jlc3VsdCogcmVzLCBn
cG9pbnRlciBkYXRhKQorc3RhdGljIHZvaWQgc2VuZFJlcXVlc3RDYWxsYmFjayhHT2JqZWN0Kiwg
R0FzeW5jUmVzdWx0KiByZXMsIGdwb2ludGVyIGRhdGEpCiB7CiAgICAgUmVmUHRyPFJlc291cmNl
SGFuZGxlPiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRsZSo+KGRhdGEpOwogCkBA
IC01NDMsNyArNTQzLDcgQEAgc3RhdGljIHZvaWQgYWRkRW5jb2RlZEJsb2JUb1NvdXBNZXNzYWdl
Qm9keShTb3VwTWVzc2FnZSogbWVzc2FnZSwgY29uc3QgRm9ybURhdGEKIH0KICNlbmRpZiAvLyBF
TkFCTEUoQkxPQikKIAotc3RhdGljIGJvb2wgYWRkRm9ybUVsZW1lbnRzVG9Tb3VwTWVzc2FnZShT
b3VwTWVzc2FnZSogbWVzc2FnZSwgY29uc3QgY2hhciogY29udGVudFR5cGUsIEZvcm1EYXRhKiBo
dHRwQm9keSwgdW5zaWduZWQgbG9uZyYgdG90YWxCb2R5U2l6ZSkKK3N0YXRpYyBib29sIGFkZEZv
cm1FbGVtZW50c1RvU291cE1lc3NhZ2UoU291cE1lc3NhZ2UqIG1lc3NhZ2UsIGNvbnN0IGNoYXIq
LCBGb3JtRGF0YSogaHR0cEJvZHksIHVuc2lnbmVkIGxvbmcmIHRvdGFsQm9keVNpemUpCiB7CiAg
ICAgc291cF9tZXNzYWdlX2JvZHlfc2V0X2FjY3VtdWxhdGUobWVzc2FnZS0+cmVxdWVzdF9ib2R5
LCBGQUxTRSk7CiAgICAgc2l6ZV90IG51bUVsZW1lbnRzID0gaHR0cEJvZHktPmVsZW1lbnRzKCku
c2l6ZSgpOwpAQCAtNTk0LDcgKzU5NCw3IEBAIHN0YXRpYyB2b2lkIHdyb3RlQm9keUNhbGxiYWNr
KFNvdXBNZXNzYWdlKiwgZ3BvaW50ZXIgZGF0YSkKICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNl
TG9hZFRpbWluZygpLT5zZW5kRW5kID0gbWlsaXNlY29uZHNTaW5jZVJlcXVlc3QoZC0+bV9yZXNw
b25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVxdWVzdFRpbWUpOwogfQogCi1zdGF0aWMgdm9p
ZCByZXF1ZXN0U3RhcnRlZENhbGxiYWNrKFNvdXBTZXNzaW9uKiwgU291cE1lc3NhZ2UqIHNvdXBN
ZXNzYWdlLCBTb3VwU29ja2V0KiwgZ3BvaW50ZXIgZGF0YSkKK3N0YXRpYyB2b2lkIHJlcXVlc3RT
dGFydGVkQ2FsbGJhY2soU291cFNlc3Npb24qLCBTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UsIFNv
dXBTb2NrZXQqLCBncG9pbnRlcikKIHsKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRs
ZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4oZ19vYmplY3RfZ2V0X2RhdGEoR19PQkpF
Q1Qoc291cE1lc3NhZ2UpLCAiaGFuZGxlIikpOwogICAgIGlmICghaGFuZGxlKQpAQCAtOTA1LDcg
KzkwNSw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHko
TmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0CiAgICAgc3luY0xvYWRlci5ydW4oKTsK
IH0KIAotc3RhdGljIHZvaWQgY2xvc2VDYWxsYmFjayhHT2JqZWN0KiBzb3VyY2UsIEdBc3luY1Jl
c3VsdCogcmVzLCBncG9pbnRlciBkYXRhKQorc3RhdGljIHZvaWQgY2xvc2VDYWxsYmFjayhHT2Jq
ZWN0KiwgR0FzeW5jUmVzdWx0KiByZXMsIGdwb2ludGVyIGRhdGEpCiB7CiAgICAgUmVmUHRyPFJl
c291cmNlSGFuZGxlPiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRsZSo+KGRhdGEp
OwogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7
CkBAIC05MTksNyArOTE5LDcgQEAgc3RhdGljIHZvaWQgY2xvc2VDYWxsYmFjayhHT2JqZWN0KiBz
b3VyY2UsIEdBc3luY1Jlc3VsdCogcmVzLCBncG9pbnRlciBkYXRhKQogICAgIGNsZWFudXBTb3Vw
UmVxdWVzdE9wZXJhdGlvbihoYW5kbGUuZ2V0KCkpOwogfQogCi1zdGF0aWMgdm9pZCByZWFkQ2Fs
bGJhY2soR09iamVjdCogc291cmNlLCBHQXN5bmNSZXN1bHQqIGFzeW5jUmVzdWx0LCBncG9pbnRl
ciBkYXRhKQorc3RhdGljIHZvaWQgcmVhZENhbGxiYWNrKEdPYmplY3QqLCBHQXN5bmNSZXN1bHQq
IGFzeW5jUmVzdWx0LCBncG9pbnRlciBkYXRhKQogewogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRs
ZT4gaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihkYXRhKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKaW5kZXggNjZjMzdlYy4uZTQyNTljNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCkBAIC02OTMsNiArNjkz
LDkgQEAgdm9pZCBSZW5kZXJUaGVtZTo6YWRqdXN0UmVwYWludFJlY3QoY29uc3QgUmVuZGVyT2Jq
ZWN0KiBvLCBJbnRSZWN0JiByKQogewogI2lmIFVTRShORVdfVEhFTUUpCiAgICAgbV90aGVtZS0+
aW5mbGF0ZUNvbnRyb2xQYWludFJlY3Qoby0+c3R5bGUoKS0+YXBwZWFyYW5jZSgpLCBjb250cm9s
U3RhdGVzRm9yUmVuZGVyZXIobyksIHIsIG8tPnN0eWxlKCktPmVmZmVjdGl2ZVpvb20oKSk7Cisj
ZWxzZQorICAgIFVOVVNFRF9QQVJBTShvKTsKKyAgICBVTlVTRURfUEFSQU0ocik7CiAjZW5kaWYK
IH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>