<?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>110067</bug_id>
          
          <creation_ts>2013-02-17 18:36:07 -0800</creation_ts>
          <short_desc>[WebGL][EFL] Support for creating surface with alpha disabled.</short_desc>
          <delta_ts>2013-02-22 01:35:03 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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>105093</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kalyan">kalyan.kondapally</reporter>
          <assigned_to name="Kalyan">kalyan.kondapally</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>luiz</cc>
    
    <cc>noam</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>835076</commentid>
    <comment_count>0</comment_count>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2013-02-17 18:36:07 -0800</bug_when>
    <thetext>compositing/webgl/webgl-no-alpha.html

Currently we hardcode surface to always create a drawable with Alpha support. We should rather create it only if graphicscontext3d has alpha = true.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837584</commentid>
    <comment_count>1</comment_count>
      <attachid>189343</attachid>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2013-02-20 11:10:40 -0800</bug_when>
    <thetext>Created attachment 189343
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837610</commentid>
    <comment_count>2</comment_count>
      <attachid>189348</attachid>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2013-02-20 11:44:38 -0800</bug_when>
    <thetext>Created attachment 189348
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837615</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-20 11:48:06 -0800</bug_when>
    <thetext>Attachment 189348 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/platform/efl/TestExpectations&apos;, u&apos;LayoutTests/platform/efl/compositing/webgl/webgl-no-alpha-expected.png&apos;, u&apos;LayoutTests/platform/efl/compositing/webgl/webgl-no-alpha-expected.txt&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/platform/graphics/efl/GraphicsContext3DPrivate.cpp&apos;, u&apos;Source/WebCore/platform/graphics/opengl/GLPlatformSurface.cpp&apos;, u&apos;Source/WebCore/platform/graphics/opengl/GLPlatformSurface.h&apos;, u&apos;Source/WebCore/platform/graphics/surfaces/egl/EGLConfigSelector.cpp&apos;, u&apos;Source/WebCore/platform/graphics/surfaces/egl/EGLConfigSelector.h&apos;, u&apos;Source/WebCore/platform/graphics/surfaces/egl/EGLSurface.cpp&apos;, u&apos;Source/WebCore/platform/graphics/surfaces/egl/EGLSurface.h&apos;, u&apos;Source/WebCore/platform/graphics/surfaces/glx/GLXConfigSelector.h&apos;, u&apos;Source/WebCore/platform/graphics/surfaces/glx/GLXContext.cpp&apos;, u&apos;Source/WebCore/platform/graphics/surfaces/glx/GLXSurface.cpp&apos;, u&apos;Source/WebCore/platform/graphics/surfaces/glx/GLXSurface.h&apos;, u&apos;Source/WebCore/platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp&apos;, u&apos;Source/WebCore/platform/graphics/surfaces/glx/X11Helper.cpp&apos;, u&apos;Source/WebCore/platform/graphics/surfaces/glx/X11Helper.h&apos;]&quot; exit_code: 1
LayoutTests/platform/efl/compositing/webgl/webgl-no-alpha-expected.png:0:  Have to enable auto props in the subversion config file (/home/alancutter/.subversion/config &quot;enable-auto-props = yes&quot;). Have to set the svn:mime-type in the subversion config file (/home/alancutter/.subversion/config &quot;*.png = svn:mime-type=image/png&quot;).  [image/png] [5]
Total errors found: 1 in 18 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>837625</commentid>
    <comment_count>4</comment_count>
      <attachid>189348</attachid>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2013-02-20 11:56:04 -0800</bug_when>
    <thetext>Comment on attachment 189348
Patch

Removing request for review, looking into the style issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837823</commentid>
    <comment_count>5</comment_count>
      <attachid>189391</attachid>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2013-02-20 15:17:13 -0800</bug_when>
    <thetext>Created attachment 189391
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837825</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-20 15:19:29 -0800</bug_when>
    <thetext>Attachment 189391 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/platform/efl/TestExpectations&apos;, u&apos;LayoutTests/platform/efl/compositing/webgl/webgl-no-alpha-expected.png&apos;, u&apos;LayoutTests/platform/efl/compositing/webgl/webgl-no-alpha-expected.txt&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/platform/graphics/efl/GraphicsContext3DPrivate.cpp&apos;, u&apos;Source/WebCore/platform/graphics/opengl/GLPlatformSurface.cpp&apos;, u&apos;Source/WebCore/platform/graphics/opengl/GLPlatformSurface.h&apos;, u&apos;Source/WebCore/platform/graphics/surfaces/egl/EGLConfigSelector.cpp&apos;, u&apos;Source/WebCore/platform/graphics/surfaces/egl/EGLConfigSelector.h&apos;, u&apos;Source/WebCore/platform/graphics/surfaces/egl/EGLSurface.cpp&apos;, u&apos;Source/WebCore/platform/graphics/surfaces/egl/EGLSurface.h&apos;, u&apos;Source/WebCore/platform/graphics/surfaces/glx/GLXConfigSelector.h&apos;, u&apos;Source/WebCore/platform/graphics/surfaces/glx/GLXContext.cpp&apos;, u&apos;Source/WebCore/platform/graphics/surfaces/glx/GLXSurface.cpp&apos;, u&apos;Source/WebCore/platform/graphics/surfaces/glx/GLXSurface.h&apos;, u&apos;Source/WebCore/platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp&apos;, u&apos;Source/WebCore/platform/graphics/surfaces/glx/X11Helper.cpp&apos;, u&apos;Source/WebCore/platform/graphics/surfaces/glx/X11Helper.h&apos;]&quot; exit_code: 1
LayoutTests/platform/efl/compositing/webgl/webgl-no-alpha-expected.png:0:  Have to enable auto props in the subversion config file (/home/alancutter/.subversion/config &quot;enable-auto-props = yes&quot;). Have to set the svn:mime-type in the subversion config file (/home/alancutter/.subversion/config &quot;*.png = svn:mime-type=image/png&quot;).  [image/png] [5]
Total errors found: 1 in 18 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>838241</commentid>
    <comment_count>7</comment_count>
      <attachid>189391</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-21 02:08:34 -0800</bug_when>
    <thetext>Comment on attachment 189391
Patch

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

&gt; Source/WebCore/platform/graphics/opengl/GLPlatformSurface.h:47
&gt; +        DoubleBuffer = 0x04

DoubleBuffer*ed* ?

&gt; Source/WebCore/platform/graphics/surfaces/glx/GLXConfigSelector.h:63
&gt; +    GLXConfigSelector(GLPlatformSurface::PlatformSurfaceAttributes attr = GLPlatformSurface::DefaultAttributes)

Why not just called Attributes when it is in the class namespace? This is really long</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838913</commentid>
    <comment_count>8</comment_count>
      <attachid>189617</attachid>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2013-02-21 15:27:33 -0800</bug_when>
    <thetext>Created attachment 189617
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838915</commentid>
    <comment_count>9</comment_count>
      <attachid>189617</attachid>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2013-02-21 15:28:17 -0800</bug_when>
    <thetext>Comment on attachment 189617
Patch

Another try with style fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838924</commentid>
    <comment_count>10</comment_count>
      <attachid>189617</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-21 15:32:15 -0800</bug_when>
    <thetext>Comment on attachment 189617
Patch

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

&gt; Source/WebCore/platform/graphics/opengl/GLPlatformSurface.h:50
&gt; +    enum SurfaceAttributes {
&gt; +        Default = 0x00, // No Alpha channel. Only R,G,B values set.
&gt; +        SupportAlpha = 0x01,
&gt; +        DoubleBuffered = 0x04
&gt; +    };
&gt; +
&gt; +    typedef int Attributes;

Why are you doing this typedef trick and not using the enum directly?

You would just use SurfaceAttributes instead of Attributes

SurfaceAttributes attributes, even looks a bit nicer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839277</commentid>
    <comment_count>11</comment_count>
      <attachid>189692</attachid>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2013-02-21 23:18:42 -0800</bug_when>
    <thetext>Created attachment 189692
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839279</commentid>
    <comment_count>12</comment_count>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2013-02-21 23:19:42 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 189391 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=189391&amp;action=review
&gt; DoubleBuffer*ed* ?

done

&gt; &gt; Source/WebCore/platform/graphics/surfaces/glx/GLXConfigSelector.h:63
&gt; &gt; +    GLXConfigSelector(GLPlatformSurface::PlatformSurfaceAttributes attr = GLPlatformSurface::DefaultAttributes)
&gt; 
&gt; Why not just called Attributes when it is in the class namespace? This is really long

changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839285</commentid>
    <comment_count>13</comment_count>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2013-02-21 23:21:23 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 189617 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=189617&amp;action=review 
&gt; Why are you doing this typedef trick and not using the enum directly?
&gt; 
&gt; You would just use SurfaceAttributes instead of Attributes
&gt; 
&gt; SurfaceAttributes attributes, even looks a bit nicer

This would give us a possibility to use it as a flag. As in future we might need to expand on this list and enable or disable features.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839286</commentid>
    <comment_count>14</comment_count>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2013-02-21 23:22:53 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 189617 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=189617&amp;action=review
&gt; 
&gt; 
&gt; SurfaceAttributes attributes, even looks a bit nicer

changed the api to reflect the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839371</commentid>
    <comment_count>15</comment_count>
      <attachid>189692</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-22 01:34:58 -0800</bug_when>
    <thetext>Comment on attachment 189692
Patch

Clearing flags on attachment: 189692

Committed r143704: &lt;http://trac.webkit.org/changeset/143704&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839372</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-22 01:35:03 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>189343</attachid>
            <date>2013-02-20 11:10:40 -0800</date>
            <delta_ts>2013-02-20 11:11:07 -0800</delta_ts>
            <desc>patch</desc>
            <filename>noalphasurface.patch</filename>
            <type>text/plain</type>
            <size>32626</size>
            <attacher name="Kalyan">kalyan.kondapally</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDRiNjgxMjMuLjMxZTY3ZWIgMTAwNjQ0Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAyLTIwICBLb25k
YXBhbGx5IEthbHlhbiAgPGthbHlhbi5rb25kYXBhbGx5QGludGVsLmNvbT4KKworICAgICAgICBb
V2ViR0xdW0VGTF0gU3VwcG9ydCBmb3IgY3JlYXRpbmcgc3VyZmFjZSB3aXRoIGFscGhhIGRpc2Fi
bGVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEw
MDY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5h
YmxlZCBjb21wb3NpdGluZy93ZWJnbC93ZWJnbC1uby1hbHBoYS5odG1sIGZvciBFZmwgcG9ydC4K
KworICAgICAgICAqIHBsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBs
YXRmb3JtL2VmbC9jb21wb3NpdGluZy93ZWJnbC93ZWJnbC1uby1hbHBoYS1leHBlY3RlZC5wbmc6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9jb21wb3NpdGluZy93ZWJnbC93ZWJnbC1u
by1hbHBoYS1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDEzLTAyLTE5ICBEYXZpZCBIeWF0dCAg
PGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBbTmV3IE11bHRpY29sdW1uXSBNYWtlIGxheWVy
cyBwYWludCBwcm9wZXJseSBpbiBjb2x1bW5zLgpkaWZmIC0tZ2l0IExheW91dFRlc3RzL3BsYXRm
b3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zIExheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IDFjYTgxZmQuLjQwMWRiMzUgMTAwNjQ0Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucworKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZs
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE3MjcsNyArMTcyNyw2IEBAIHdlYmtpdC5vcmcvYi8xMDQ1
NzEgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4tZXhhY3QtbWF0Y2hpbmcuaHRtbCBb
IEZhaWx1CiAKICMgUmVuZGVyaW5nIGZhaWx1cmUsIGFsc28gbWlzc2luZyBleHBlY3RlZCByZXN1
bHRzOgogd2Via2l0Lm9yZy9iLzEwNTA5MyBjb21wb3NpdGluZy93ZWJnbC93ZWJnbC1iYWNrZ3Jv
dW5kLWNvbG9yLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xMDUwOTMgY29tcG9zaXRpbmcv
d2ViZ2wvd2ViZ2wtbm8tYWxwaGEuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzEwNTA5MyBj
b21wb3NpdGluZy93ZWJnbC93ZWJnbC1ub25wcmVtdWx0aXBsaWVkLWJsZW5kLmh0bWwgWyBTa2lw
IF0KIHdlYmtpdC5vcmcvYi8xMDUwOTMgY29tcG9zaXRpbmcvd2ViZ2wvd2ViZ2wtcmVmbGVjdGlv
bi5odG1sIFsgU2tpcCBdCiAKZGlmZiAtLWdpdCBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvY29t
cG9zaXRpbmcvd2ViZ2wvd2ViZ2wtbm8tYWxwaGEtZXhwZWN0ZWQucG5nIExheW91dFRlc3RzL3Bs
YXRmb3JtL2VmbC9jb21wb3NpdGluZy93ZWJnbC93ZWJnbC1uby1hbHBoYS1leHBlY3RlZC5wbmcK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMTRhYzA2ZWU5YzQ0MGQ0MmFkZDQ5M2Q1MjU4NDBkZTJmZWY5NTM0MgpHSVQg
YmluYXJ5IHBhdGNoCmxpdGVyYWwgMjkxMAp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZ
VjJhPmkwKlopPWheaGxBJUBXcyRsSGBvazxtfT9vVG40a20KejZyJl9WR2g7Szh2XyEqSHFtKlBy
VmBDI2ohPSNrZEJ2VjZFTCErYDg4VFd2aSpwal42VF5SbUA7RFd1JkNvP2NgCnotU2MjRDQ1XnMm
X0ooMkpWRnYtMGdOcU9SdWRrZUk5Q3x6M0JVRkZKMkUqJVRXRWRFJSoxdShCVjNfWmd6e3FmZgp6
TVUyNzBoZjBoJF92QWo1JSswUTVsRnZBbzxJbkoqeUo3PGFMbFA0PWdNISo5Vj5BIyhRdiR0biFT
YDxzJVBsd0MKekdCUH5TbUQ2RXBtfm51S3BAV2wzakp2bSk9UkdefmptN1JsPkFKVV4zXmZ6JCNV
dTJXT1lMe3EhVGUkUjYmfnU5CnpEJTJ7U00kTXNPUTlsfShnRT1yazZ8cVZCSGVrREEmKFVVOTFf
OXYrMV9yfiVRTzBOPjRDJDJjbntmeFg7TU5hWQpTbSlRZmB6Nl9xT2VsRntyNX1FKkg3OTdhewoK
bGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IExheW91dFRlc3RzL3BsYXRmb3JtL2Vm
bC9jb21wb3NpdGluZy93ZWJnbC93ZWJnbC1uby1hbHBoYS1leHBlY3RlZC50eHQgTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZWZsL2NvbXBvc2l0aW5nL3dlYmdsL3dlYmdsLW5vLWFscGhhLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YjEzNzg5Ci0tLSAvZGV2
L251bGwKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9jb21wb3NpdGluZy93ZWJnbC93ZWJn
bC1uby1hbHBoYS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorCmRpZmYgLS1naXQgU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjYTllYzU0
Li4yZGZlYTVkIDEwMDY0NAotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBTb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MSBAQAorMjAxMy0wMi0yMCAgS29uZGFwYWxs
eSBLYWx5YW4gIDxrYWx5YW4ua29uZGFwYWxseUBpbnRlbC5jb20+CisKKyAgICAgICAgW1dlYkdM
XVtFRkxdIFN1cHBvcnQgZm9yIGNyZWF0aW5nIHN1cmZhY2Ugd2l0aCBhbHBoYSBkaXNhYmxlZC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDA2Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvdmVyZWQg
YnkgY29tcG9zaXRpbmcvd2ViZ2wvd2ViZ2wtbm8tYWxwaGEuaHRtbAorCisgICAgICAgIFdlIGN1
cnJlbnRseSBhbHdheXMgY3JlYXRlIGEgc3VyZmFjZSBzdXBwb3J0aW5nIGFscGhhIGNoYW5uZWwu
IAorICAgICAgICBXaXRoIHRoaXMgcGF0Y2ggd2UgY3JlYXRlIHRoZSBzdXBwb3J0IHdpdGggYWxw
aGEgb25seSBpZgorICAgICAgICByZXF1aXJlZC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjppbml0aWFsaXplKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmg6CisgICAgICAgIChHcmFw
aGljc0NvbnRleHQzRFByaXZhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HTFBsYXRmb3JtU3VyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHTFBsYXRmb3JtU3Vy
ZmFjZTo6Y3JlYXRlT2ZmU2NyZWVuU3VyZmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpHTFBsYXRm
b3JtU3VyZmFjZTo6Y3JlYXRlVHJhbnNwb3J0U3VyZmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpH
TFBsYXRmb3JtU3VyZmFjZTo6R0xQbGF0Zm9ybVN1cmZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6
R0xQbGF0Zm9ybVN1cmZhY2U6OmF0dHJpYnV0ZXMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTENvbmZpZ1NlbGVjdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RUdMQ29uZmlnU2VsZWN0
b3I6OkVHTENvbmZpZ1NlbGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkVHTENvbmZpZ1NlbGVj
dG9yOjpwQnVmZmVyQ29udGV4dENvbmZpZyk6CisgICAgICAgIChXZWJDb3JlOjpFR0xDb25maWdT
ZWxlY3Rvcjo6c3VyZmFjZUNvbnRleHRDb25maWcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3N1cmZhY2VzL2VnbC9FR0xDb25maWdTZWxlY3Rvci5oOgorICAgICAgICAoRUdMQ29uZmln
U2VsZWN0b3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xT
dXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2U6
OkVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3N1cmZhY2VzL2VnbC9FR0xTdXJmYWNlLmg6CisgICAgICAgIChFR0xXaW5kb3dUcmFuc3BvcnRT
dXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYQ29u
ZmlnU2VsZWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6R0xY
Q29uZmlnU2VsZWN0b3I6OkdMWENvbmZpZ1NlbGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkdM
WENvbmZpZ1NlbGVjdG9yOjpwaXhtYXBDb250ZXh0Q29uZmlnKToKKyAgICAgICAgKFdlYkNvcmU6
OkdMWENvbmZpZ1NlbGVjdG9yOjpzdXJmYWNlQ29udGV4dENvbmZpZyk6CisgICAgICAgIChXZWJD
b3JlOjpHTFhDb25maWdTZWxlY3Rvcjo6c3VyZmFjZUNsaWVudENvbmZpZyk6CisgICAgICAgIChX
ZWJDb3JlOjpHTFhDb25maWdTZWxlY3Rvcjo6dmFsaWRhdGVBdHRyaWJ1dGVzKToKKyAgICAgICAg
KFdlYkNvcmU6OkdMWENvbmZpZ1NlbGVjdG9yOjpmaW5kTWF0Y2hpbmdDb25maWcpOgorICAgICAg
ICAoV2ViQ29yZTo6R0xYQ29uZmlnU2VsZWN0b3I6OmZpbmRNYXRjaGluZ0NvbmZpZ1dpdGhWaXN1
YWxJZCk6CisgICAgICAgIChHTFhDb25maWdTZWxlY3Rvcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
R0xYT2ZmU2NyZWVuQ29udGV4dDo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0xY
VHJhbnNwb3J0U3VyZmFjZTo6R0xYVHJhbnNwb3J0U3VyZmFjZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHTFhPZmZTY3JlZW5TdXJmYWNlOjpHTFhPZmZTY3JlZW5TdXJmYWNlKToKKyAgICAgICAgKFdl
YkNvcmU6OkdMWE9mZlNjcmVlblN1cmZhY2U6OmluaXRpYWxpemUpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmg6CisgICAgICAgIChHTFhUcmFu
c3BvcnRTdXJmYWNlKToKKyAgICAgICAgKEdMWE9mZlNjcmVlblN1cmZhY2UpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HcmFwaGljc1N1cmZhY2VHTFguY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlUHJpdmF0ZTo6R3JhcGhpY3NTdXJmYWNl
UHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VQcml2YXRlOjpjcmVh
dGVQaXhtYXApOgorCiAyMDEzLTAyLTIwICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBw
bGUuY29tPgogCiAgICAgICAgIGlPUyBkb2VzIG5vdCB1c2UgQ2FwdGlvblVzZXJQcmVmZXJlbmNl
c01hYwpkaWZmIC0tZ2l0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFw
aGljc0NvbnRleHQzRFByaXZhdGUuY3BwIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCmluZGV4IDNkNjAxZmUuLmFlNGZhZjAg
MTAwNjQ0Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3ND
b250ZXh0M0RQcml2YXRlLmNwcAorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZWZsL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAKQEAgLTYwLDE2ICs2MCw2IEBAIGJvb2wg
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjppbml0aWFsaXplKCkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgaWYgKG1fY29udGV4dC0+bV9yZW5kZXJTdHlsZSA9PSBHcmFwaGljc0NvbnRl
eHQzRDo6UmVuZGVyT2Zmc2NyZWVuKSB7Ci0jaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCi0gICAg
ICAgIG1fc2hhcmVkU3VyZmFjZSA9IEdMUGxhdGZvcm1TdXJmYWNlOjpjcmVhdGVUcmFuc3BvcnRT
dXJmYWNlKCk7Ci0gICAgICAgIGlmICghbV9zaGFyZWRTdXJmYWNlKQotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgICAgIG1fc2hhcmVkQ29udGV4dCA9IEdMUGxhdGZvcm1Db250ZXh0
OjpjcmVhdGVDb250ZXh0KG1fY29udGV4dC0+bV9yZW5kZXJTdHlsZSk7Ci0gICAgICAgIGlmICgh
bV9zaGFyZWRDb250ZXh0KQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCi0KICAg
ICAgICAgbV9vZmZTY3JlZW5TdXJmYWNlID0gR0xQbGF0Zm9ybVN1cmZhY2U6OmNyZWF0ZU9mZlNj
cmVlblN1cmZhY2UoKTsKIAogICAgICAgICBpZiAoIW1fb2ZmU2NyZWVuU3VyZmFjZSkKQEAgLTc5
LDYgKzY5LDIzIEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjppbml0aWFsaXplKCkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQor
ICAgICAgICBpZiAoIW1ha2VDb250ZXh0Q3VycmVudCgpKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgICAgIG1fY29udGV4dC0+dmFsaWRhdGVBdHRyaWJ1dGVzKCk7CisgICAgICAg
IEdMUGxhdGZvcm1TdXJmYWNlOjpQbGF0Zm9ybVN1cmZhY2VBdHRyaWJ1dGVzIHNoYXJlZFN1cmZh
Y2VBdHRyaWJ1dGVzID0gR0xQbGF0Zm9ybVN1cmZhY2U6OkRlZmF1bHRBdHRyaWJ1dGVzOworICAg
ICAgICBpZiAobV9jb250ZXh0LT5tX2F0dHJzLmFscGhhKQorICAgICAgICAgICAgc2hhcmVkU3Vy
ZmFjZUF0dHJpYnV0ZXMgPSBHTFBsYXRmb3JtU3VyZmFjZTo6U3VwcG9ydEFscGhhOworCisgICAg
ICAgIG1fb2ZmU2NyZWVuQ29udGV4dC0+cmVsZWFzZUN1cnJlbnQoKTsKKyAgICAgICAgbV9zaGFy
ZWRTdXJmYWNlID0gR0xQbGF0Zm9ybVN1cmZhY2U6OmNyZWF0ZVRyYW5zcG9ydFN1cmZhY2Uoc2hh
cmVkU3VyZmFjZUF0dHJpYnV0ZXMpOworICAgICAgICBpZiAoIW1fc2hhcmVkU3VyZmFjZSkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBtX3NoYXJlZENvbnRleHQgPSBHTFBs
YXRmb3JtQ29udGV4dDo6Y3JlYXRlQ29udGV4dChtX2NvbnRleHQtPm1fcmVuZGVyU3R5bGUpOwor
ICAgICAgICBpZiAoIW1fc2hhcmVkQ29udGV4dCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KwogICAgICAgICBpZiAoIW1fc2hhcmVkQ29udGV4dC0+aW5pdGlhbGl6ZShtX3NoYXJlZFN1cmZh
Y2UuZ2V0KCksIG1fb2ZmU2NyZWVuQ29udGV4dC0+aGFuZGxlKCkpKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuY3BwCmluZGV4IDA3MWE4M2IuLjYzNGFiMzkg
MTAwNjQ0Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0
Zm9ybVN1cmZhY2UuY3BwCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR0xQbGF0Zm9ybVN1cmZhY2UuY3BwCkBAIC00MCwyNCArNDAsMjYgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1QYXNzT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBHTFBsYXRmb3JtU3Vy
ZmFjZTo6Y3JlYXRlT2ZmU2NyZWVuU3VyZmFjZSgpCitQYXNzT3duUHRyPEdMUGxhdGZvcm1TdXJm
YWNlPiBHTFBsYXRmb3JtU3VyZmFjZTo6Y3JlYXRlT2ZmU2NyZWVuU3VyZmFjZShQbGF0Zm9ybVN1
cmZhY2VBdHRyaWJ1dGVzIHN1cmZhY2VBdHRyaWJ1dGVzKQogewogI2lmIFVTRShHTFgpCi0gICAg
T3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBzdXJmYWNlID0gYWRvcHRQdHIobmV3IEdMWE9mZlNj
cmVlblN1cmZhY2UoKSk7CisgICAgT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBzdXJmYWNlID0g
YWRvcHRQdHIobmV3IEdMWE9mZlNjcmVlblN1cmZhY2Uoc3VyZmFjZUF0dHJpYnV0ZXMpKTsKIAog
ICAgIGlmIChzdXJmYWNlLT5kcmF3YWJsZSgpKQogICAgICAgICByZXR1cm4gc3VyZmFjZS5yZWxl
YXNlKCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShzdXJmYWNlQXR0cmlidXRlcyk7CiAjZW5k
aWYKIAogICAgIHJldHVybiBudWxscHRyOwogfQogCi1QYXNzT3duUHRyPEdMUGxhdGZvcm1TdXJm
YWNlPiBHTFBsYXRmb3JtU3VyZmFjZTo6Y3JlYXRlVHJhbnNwb3J0U3VyZmFjZSgpCitQYXNzT3du
UHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBHTFBsYXRmb3JtU3VyZmFjZTo6Y3JlYXRlVHJhbnNwb3J0
U3VyZmFjZShQbGF0Zm9ybVN1cmZhY2VBdHRyaWJ1dGVzIHN1cmZhY2VBdHRyaWJ1dGVzKQogewog
I2lmIFVTRShHTFgpCi0gICAgT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBzdXJmYWNlID0gYWRv
cHRQdHIobmV3IEdMWFRyYW5zcG9ydFN1cmZhY2UoKSk7CisgICAgT3duUHRyPEdMUGxhdGZvcm1T
dXJmYWNlPiBzdXJmYWNlID0gYWRvcHRQdHIobmV3IEdMWFRyYW5zcG9ydFN1cmZhY2Uoc3VyZmFj
ZUF0dHJpYnV0ZXMpKTsKICNlbGlmIFVTRShFR0wpCi0gICAgT3duUHRyPEdMUGxhdGZvcm1TdXJm
YWNlPiBzdXJmYWNlID0gYWRvcHRQdHIobmV3IEVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2UoKSk7
CisgICAgT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBzdXJmYWNlID0gYWRvcHRQdHIobmV3IEVH
TFdpbmRvd1RyYW5zcG9ydFN1cmZhY2Uoc3VyZmFjZUF0dHJpYnV0ZXMpKTsKICNlbmRpZgogCiAg
ICAgaWYgKHN1cmZhY2UgJiYgc3VyZmFjZS0+aGFuZGxlKCkgJiYgc3VyZmFjZS0+ZHJhd2FibGUo
KSkKQEAgLTY2LDcgKzY4LDcgQEAgUGFzc093blB0cjxHTFBsYXRmb3JtU3VyZmFjZT4gR0xQbGF0
Zm9ybVN1cmZhY2U6OmNyZWF0ZVRyYW5zcG9ydFN1cmZhY2UoKQogICAgIHJldHVybiBudWxscHRy
OwogfQogCi1HTFBsYXRmb3JtU3VyZmFjZTo6R0xQbGF0Zm9ybVN1cmZhY2UoKQorR0xQbGF0Zm9y
bVN1cmZhY2U6OkdMUGxhdGZvcm1TdXJmYWNlKFBsYXRmb3JtU3VyZmFjZUF0dHJpYnV0ZXMgc3Vy
ZmFjZUF0dHJpYnV0ZXMpCiAgICAgOiBtX2Zib0lkKDApCiAgICAgLCBtX3NoYXJlZERpc3BsYXko
MCkKICAgICAsIG1fZHJhd2FibGUoMCkKQEAgLTE0NCw2ICsxNDYsMTEgQEAgdm9pZCBHTFBsYXRm
b3JtU3VyZmFjZTo6ZGVzdHJveSgpCiAgICAgfQogfQogCitHTFBsYXRmb3JtU3VyZmFjZTo6UGxh
dGZvcm1TdXJmYWNlQXR0cmlidXRlcyBHTFBsYXRmb3JtU3VyZmFjZTo6YXR0cmlidXRlcygpIGNv
bnN0Cit7CisgICAgcmV0dXJuIEdMUGxhdGZvcm1TdXJmYWNlOjpEZWZhdWx0QXR0cmlidXRlczsK
K30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuaCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuaAppbmRleCAwMGRkN2M5Li5kMjFlYWYw
IDEwMDY0NAotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxh
dGZvcm1TdXJmYWNlLmgKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HTFBsYXRmb3JtU3VyZmFjZS5oCkBAIC00MSwxMiArNDEsMTkgQEAgY2xhc3MgR0xQbGF0Zm9y
bVN1cmZhY2UgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEdMUGxhdGZvcm1TdXJmYWNlKTsK
IAogcHVibGljOgorICAgIGVudW0gU3VyZmFjZUF0dHJpYnV0ZXMgeworICAgICAgICBEZWZhdWx0
QXR0cmlidXRlcyA9IDB4MDAsIC8vIE5vIEFscGhhIGNoYW5uZWwuIE9ubHkgUixHLEIgdmFsdWVz
IHNldC4KKyAgICAgICAgU3VwcG9ydEFscGhhID0gMHgwMSwKKyAgICAgICAgRG91YmxlQnVmZmVy
ID0gMHgwNAorICAgIH07CisKKyAgICB0eXBlZGVmIGludCBQbGF0Zm9ybVN1cmZhY2VBdHRyaWJ1
dGVzOwogICAgIC8vIENyZWF0ZXMgYSBHTCBzdXJmYWNlIHVzZWQgZm9yIG9mZnNjcmVlbiByZW5k
ZXJpbmcuCi0gICAgc3RhdGljIFBhc3NPd25QdHI8R0xQbGF0Zm9ybVN1cmZhY2U+IGNyZWF0ZU9m
ZlNjcmVlblN1cmZhY2UoKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxHTFBsYXRmb3JtU3VyZmFj
ZT4gY3JlYXRlT2ZmU2NyZWVuU3VyZmFjZShQbGF0Zm9ybVN1cmZhY2VBdHRyaWJ1dGVzID0gR0xQ
bGF0Zm9ybVN1cmZhY2U6OkRlZmF1bHRBdHRyaWJ1dGVzKTsKIAogICAgIC8vIENyZWF0ZXMgYSBH
TCBzdXJmYWNlIHVzZWQgZm9yIG9mZnNjcmVlbiByZW5kZXJpbmcuIFRoZSByZXN1bHRzIGNhbiBi
ZSB0cmFuc3BvcnRlZAogICAgIC8vIHRvIHRoZSBVSSBwcm9jZXNzIGZvciBkaXNwbGF5LgotICAg
IHN0YXRpYyBQYXNzT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBjcmVhdGVUcmFuc3BvcnRTdXJm
YWNlKCk7CisgICAgc3RhdGljIFBhc3NPd25QdHI8R0xQbGF0Zm9ybVN1cmZhY2U+IGNyZWF0ZVRy
YW5zcG9ydFN1cmZhY2UoUGxhdGZvcm1TdXJmYWNlQXR0cmlidXRlcyA9IEdMUGxhdGZvcm1TdXJm
YWNlOjpEZWZhdWx0QXR0cmlidXRlcyk7CiAKICAgICB2aXJ0dWFsIH5HTFBsYXRmb3JtU3VyZmFj
ZSgpOwogCkBAIC02MSw2ICs2OCw4IEBAIHB1YmxpYzoKIAogICAgIFBsYXRmb3JtRGlzcGxheSBz
aGFyZWREaXNwbGF5KCkgY29uc3Q7CiAKKyAgICB2aXJ0dWFsIFBsYXRmb3JtU3VyZmFjZUF0dHJp
YnV0ZXMgYXR0cmlidXRlcygpIGNvbnN0OworCiAgICAgdmlydHVhbCB2b2lkIHN3YXBCdWZmZXJz
KCk7CiAKICAgICAvLyBDb252ZW5pZW5jZSBGdW5jdGlvbiB0byB1cGRhdGUgc3VyZmFjZSBiYWNr
YnVmZmVyIHdpdGggdGV4dHVyZSBjb250ZW50cy4KQEAgLTc3LDcgKzg2LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KCk7CiAKIHByb3RlY3RlZDoKLSAgICBHTFBsYXRmb3Jt
U3VyZmFjZSgpOworICAgIEdMUGxhdGZvcm1TdXJmYWNlKFBsYXRmb3JtU3VyZmFjZUF0dHJpYnV0
ZXMpOwogICAgIEludFJlY3QgbV9yZWN0OwogICAgIEdMdWludCBtX2Zib0lkOwogICAgIFBsYXRm
b3JtRGlzcGxheSBtX3NoYXJlZERpc3BsYXk7CmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTENvbmZpZ1NlbGVjdG9yLmNwcCBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMQ29uZmlnU2VsZWN0b3Iu
Y3BwCmluZGV4IGNiY2QyMTIuLmE3NDNjNzIgMTAwNjQ0Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMQ29uZmlnU2VsZWN0b3IuY3BwCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMQ29uZmlnU2VsZWN0
b3IuY3BwCkBAIC00Miw3ICs0Miw3IEBAIHN0YXRpYyBFR0xpbnQgY29uZmlnQXR0cmlidXRlTGlz
dFtdID0gewogICAgIEVHTF9HUkVFTl9TSVpFLCA4LAogICAgIEVHTF9CTFVFX1NJWkUsIDgsCiAg
ICAgRUdMX1NURU5DSUxfU0laRSwgOCwKLSAgICBFR0xfQUxQSEFfU0laRSwgOCwKKyAgICBFR0xf
QUxQSEFfU0laRSwgMCwKICAgICBFR0xfU1VSRkFDRV9UWVBFLCBFR0xfTk9ORSwKICAgICBFR0xf
Tk9ORQogfTsKQEAgLTEwNCw5ICsxMDQsMTAgQEAgU2hhcmVkRUdMRGlzcGxheTo6flNoYXJlZEVH
TERpc3BsYXkoKQogICAgIGNsZWFudXAoKTsKIH0KIAotRUdMQ29uZmlnU2VsZWN0b3I6OkVHTENv
bmZpZ1NlbGVjdG9yKE5hdGl2ZVNoYXJlZERpc3BsYXkqIGRpc3BsYXkpCitFR0xDb25maWdTZWxl
Y3Rvcjo6RUdMQ29uZmlnU2VsZWN0b3IoR0xQbGF0Zm9ybVN1cmZhY2U6OlBsYXRmb3JtU3VyZmFj
ZUF0dHJpYnV0ZXMgYXR0cmlidXRlcywgTmF0aXZlU2hhcmVkRGlzcGxheSogZGlzcGxheSkKICAg
ICA6IG1fcGJ1ZmZlckZCQ29uZmlnKDApCiAgICAgLCBtX3N1cmZhY2VDb250ZXh0RkJDb25maWco
MCkKKyAgICAsIG1fYXR0cmlidXRlcyhhdHRyaWJ1dGVzKQogewogICAgIG1fc2hhcmVkRGlzcGxh
eSA9IFNoYXJlZEVHTERpc3BsYXk6OmNyZWF0ZShkaXNwbGF5KTsKIH0KQEAgLTEyMyw2ICsxMjQs
NyBAQCBQbGF0Zm9ybURpc3BsYXkgRUdMQ29uZmlnU2VsZWN0b3I6OmRpc3BsYXkoKSBjb25zdAog
RUdMQ29uZmlnIEVHTENvbmZpZ1NlbGVjdG9yOjpwQnVmZmVyQ29udGV4dENvbmZpZygpCiB7CiAg
ICAgaWYgKCFtX3BidWZmZXJGQkNvbmZpZykgeworICAgICAgICBjb25maWdBdHRyaWJ1dGVMaXN0
WzExXSA9IG1fYXR0cmlidXRlcyAmIEdMUGxhdGZvcm1TdXJmYWNlOjpTdXBwb3J0QWxwaGEgPyA4
IDogMDsKICAgICAgICAgY29uZmlnQXR0cmlidXRlTGlzdFsxM10gPSBFR0xfUElYTUFQX0JJVDsK
ICAgICAgICAgbV9wYnVmZmVyRkJDb25maWcgPSBjcmVhdGVDb25maWcoY29uZmlnQXR0cmlidXRl
TGlzdCk7CiAgICAgfQpAQCAtMTMzLDYgKzEzNSw3IEBAIEVHTENvbmZpZyBFR0xDb25maWdTZWxl
Y3Rvcjo6cEJ1ZmZlckNvbnRleHRDb25maWcoKQogRUdMQ29uZmlnIEVHTENvbmZpZ1NlbGVjdG9y
OjpzdXJmYWNlQ29udGV4dENvbmZpZygpCiB7CiAgICAgaWYgKCFtX3N1cmZhY2VDb250ZXh0RkJD
b25maWcpIHsKKyAgICAgICAgY29uZmlnQXR0cmlidXRlTGlzdFsxMV0gPSBtX2F0dHJpYnV0ZXMg
JiBHTFBsYXRmb3JtU3VyZmFjZTo6U3VwcG9ydEFscGhhID8gOCA6IDA7CiAgICAgICAgIGNvbmZp
Z0F0dHJpYnV0ZUxpc3RbMTNdID0gRUdMX1dJTkRPV19CSVQ7CiAgICAgICAgIG1fc3VyZmFjZUNv
bnRleHRGQkNvbmZpZyA9IGNyZWF0ZUNvbmZpZyhjb25maWdBdHRyaWJ1dGVMaXN0KTsKICAgICB9
CkBAIC0xNTEsNiArMTU0LDExIEBAIEVHTGludCBFR0xDb25maWdTZWxlY3Rvcjo6bmF0aXZlVmlz
dWFsSWQoY29uc3QgRUdMQ29uZmlnJiBjb25maWcpIGNvbnN0CiAgICAgcmV0dXJuIGVnbFZhbHVl
OwogfQogCitHTFBsYXRmb3JtU3VyZmFjZTo6UGxhdGZvcm1TdXJmYWNlQXR0cmlidXRlcyBFR0xD
b25maWdTZWxlY3Rvcjo6YXR0cmlidXRlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYXR0cmli
dXRlczsKK30KKwogdm9pZCBFR0xDb25maWdTZWxlY3Rvcjo6cmVzZXQoKQogewogICAgIG1fc3Vy
ZmFjZUNvbnRleHRGQkNvbmZpZyA9IDA7CmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTENvbmZpZ1NlbGVjdG9yLmggU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTENvbmZpZ1NlbGVjdG9yLmgKaW5k
ZXggNjYzMWFkYy4uMmYwNWFkZCAxMDA2NDQKLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xDb25maWdTZWxlY3Rvci5oCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMQ29uZmlnU2VsZWN0b3IuaApAQCAt
MjksNiArMjksNyBAQAogI2lmIFVTRShFR0wpCiAKICNpbmNsdWRlIDxvcGVuZ2wvR0xEZWZzLmg+
CisjaW5jbHVkZSA8b3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmg+CiAjaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgpAQCAtNjgsMTIgKzY5LDEzIEBAIGNsYXNzIEVHTENvbmZpZ1NlbGVjdG9y
IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShFR0xDb25maWdTZWxlY3Rvcik7CiAKIHB1Ymxp
YzoKLSAgICBFR0xDb25maWdTZWxlY3RvcihOYXRpdmVTaGFyZWREaXNwbGF5KiA9IDApOworICAg
IEVHTENvbmZpZ1NlbGVjdG9yKEdMUGxhdGZvcm1TdXJmYWNlOjpQbGF0Zm9ybVN1cmZhY2VBdHRy
aWJ1dGVzLCBOYXRpdmVTaGFyZWREaXNwbGF5KiA9IDApOwogICAgIHZpcnR1YWwgfkVHTENvbmZp
Z1NlbGVjdG9yKCk7CiAgICAgUGxhdGZvcm1EaXNwbGF5IGRpc3BsYXkoKSBjb25zdDsKICAgICB2
aXJ0dWFsIEVHTENvbmZpZyBwQnVmZmVyQ29udGV4dENvbmZpZygpOwogICAgIHZpcnR1YWwgRUdM
Q29uZmlnIHN1cmZhY2VDb250ZXh0Q29uZmlnKCk7CiAgICAgRUdMaW50IG5hdGl2ZVZpc3VhbElk
KGNvbnN0IEVHTENvbmZpZyYpIGNvbnN0OworICAgIEdMUGxhdGZvcm1TdXJmYWNlOjpQbGF0Zm9y
bVN1cmZhY2VBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMoKSBjb25zdDsKICAgICB2b2lkIHJlc2V0KCk7
CiAKIHByaXZhdGU6CkBAIC04Myw2ICs4NSw3IEBAIHByb3RlY3RlZDoKICAgICBFR0xDb25maWcg
bV9wYnVmZmVyRkJDb25maWc7CiAgICAgRUdMQ29uZmlnIG1fc3VyZmFjZUNvbnRleHRGQkNvbmZp
ZzsKICAgICBSZWZQdHI8U2hhcmVkRUdMRGlzcGxheT4gbV9zaGFyZWREaXNwbGF5OworICAgIEdM
UGxhdGZvcm1TdXJmYWNlOjpQbGF0Zm9ybVN1cmZhY2VBdHRyaWJ1dGVzIG1fYXR0cmlidXRlcyA6
IDM7CiB9OwogCiB9CmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c3VyZmFjZXMvZWdsL0VHTFN1cmZhY2UuY3BwIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3N1cmZhY2VzL2VnbC9FR0xTdXJmYWNlLmNwcAppbmRleCBlNjcxMWY4Li5mMTE1NDE3IDEw
MDY0NAotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VH
TFN1cmZhY2UuY3BwCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNl
cy9lZ2wvRUdMU3VyZmFjZS5jcHAKQEAgLTMwLDEwICszMCwxMCBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLUVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2U6OkVHTFdpbmRvd1RyYW5zcG9ydFN1
cmZhY2UoKQotICAgIDogR0xQbGF0Zm9ybVN1cmZhY2UoKQorRUdMV2luZG93VHJhbnNwb3J0U3Vy
ZmFjZTo6RUdMV2luZG93VHJhbnNwb3J0U3VyZmFjZShQbGF0Zm9ybVN1cmZhY2VBdHRyaWJ1dGVz
IGF0dHJpYnV0ZXMpCisgICAgOiBHTFBsYXRmb3JtU3VyZmFjZShhdHRyaWJ1dGVzKQogewotICAg
IG1fY29uZmlnU2VsZWN0b3IgPSBhZG9wdFB0cihuZXcgRUdMQ29uZmlnU2VsZWN0b3IoTmF0aXZl
V3JhcHBlcjo6bmF0aXZlRGlzcGxheSgpKSk7CisgICAgbV9jb25maWdTZWxlY3RvciA9IGFkb3B0
UHRyKG5ldyBFR0xDb25maWdTZWxlY3RvcihhdHRyaWJ1dGVzLCBOYXRpdmVXcmFwcGVyOjpuYXRp
dmVEaXNwbGF5KCkpKTsKICAgICBtX3NoYXJlZERpc3BsYXkgPSBtX2NvbmZpZ1NlbGVjdG9yLT5k
aXNwbGF5KCk7CiAKICAgICBpZiAobV9zaGFyZWREaXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKSB7
CkBAIC01NSw3ICs1NSw3IEBAIEVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2U6OkVHTFdpbmRvd1Ry
YW5zcG9ydFN1cmZhY2UoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgTmF0aXZlV3Jh
cHBlcjo6Y3JlYXRlT2ZmU2NyZWVuV2luZG93KCZtX2J1ZmZlckhhbmRsZSwgdmlzdWFsSWQpOwor
ICAgIE5hdGl2ZVdyYXBwZXI6OmNyZWF0ZU9mZlNjcmVlbldpbmRvdygmbV9idWZmZXJIYW5kbGUs
IChhdHRyaWJ1dGVzICYgR0xQbGF0Zm9ybVN1cmZhY2U6OlN1cHBvcnRBbHBoYSksIHZpc3VhbElk
KTsKIAogICAgIGlmICghbV9idWZmZXJIYW5kbGUpIHsKICAgICAgICAgZGVzdHJveSgpOwpAQCAt
NzAsNiArNzAsMTEgQEAgRUdMV2luZG93VHJhbnNwb3J0U3VyZmFjZTo6RUdMV2luZG93VHJhbnNw
b3J0U3VyZmFjZSgpCiAgICAgfQogfQogCitHTFBsYXRmb3JtU3VyZmFjZTo6UGxhdGZvcm1TdXJm
YWNlQXR0cmlidXRlcyBFR0xXaW5kb3dUcmFuc3BvcnRTdXJmYWNlOjphdHRyaWJ1dGVzKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9jb25maWdTZWxlY3Rvci0+YXR0cmlidXRlcygpOworfQorCiBF
R0xXaW5kb3dUcmFuc3BvcnRTdXJmYWNlOjp+RUdMV2luZG93VHJhbnNwb3J0U3VyZmFjZSgpCiB7
CiB9CmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
ZWdsL0VHTFN1cmZhY2UuaCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNl
cy9lZ2wvRUdMU3VyZmFjZS5oCmluZGV4IDJlYTcwNDIuLjkzNjM2MWUgMTAwNjQ0Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMU3VyZmFjZS5oCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMU3VyZmFj
ZS5oCkBAIC00MywxMiArNDMsMTMgQEAgdHlwZWRlZiBYMTFIZWxwZXIgTmF0aXZlV3JhcHBlcjsK
IGNsYXNzIEVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2UgOiBwdWJsaWMgR0xQbGF0Zm9ybVN1cmZh
Y2UgewogCiBwdWJsaWM6Ci0gICAgRUdMV2luZG93VHJhbnNwb3J0U3VyZmFjZSgpOworICAgIEVH
TFdpbmRvd1RyYW5zcG9ydFN1cmZhY2UoUGxhdGZvcm1TdXJmYWNlQXR0cmlidXRlcyk7CiAgICAg
dmlydHVhbCB+RUdMV2luZG93VHJhbnNwb3J0U3VyZmFjZSgpOwogICAgIHZpcnR1YWwgUGxhdGZv
cm1TdXJmYWNlQ29uZmlnIGNvbmZpZ3VyYXRpb24oKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0R2VvbWV0cnkoY29uc3QgSW50UmVjdCYgbmV3UmVjdCkgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCB2b2lkIHN3YXBCdWZmZXJzKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRlc3Ry
b3koKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBsYXRmb3JtU3VyZmFjZUF0dHJpYnV0ZXMgYXR0
cmlidXRlcygpIGNvbnN0IE9WRVJSSURFOwogCiBwcml2YXRlOgogICAgIHZvaWQgZnJlZUVHTFJl
c291cmNlcygpOwpkaWZmIC0tZ2l0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1
cmZhY2VzL2dseC9HTFhDb25maWdTZWxlY3Rvci5oIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3N1cmZhY2VzL2dseC9HTFhDb25maWdTZWxlY3Rvci5oCmluZGV4IGMxM2MyNmMuLjU0
ZmVkZTQgMTAwNjQ0Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNl
cy9nbHgvR0xYQ29uZmlnU2VsZWN0b3IuaAorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbmZpZ1NlbGVjdG9yLmgKQEAgLTMwLDYgKzMwLDcgQEAK
IAogI2luY2x1ZGUgIlgxMUhlbHBlci5oIgogI2luY2x1ZGUgPG9wZW5nbC9HTERlZnMuaD4KKyNp
bmNsdWRlIDxvcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCkBAIC00MywxMyArNDQsMjYgQEAgc3RhdGljIGludCBjbGllbnRBdHRyaWJ1dGVzW10gPSB7
CiAgICAgMAogfTsKIAorc3RhdGljIGludCBnbHhTdXJmYWNlQXR0cmlidXRlc1tdID0geworICAg
IEdMWF9MRVZFTCwgMCwKKyAgICBHTFhfRFJBV0FCTEVfVFlQRSwgR0xYX1BJWE1BUF9CSVQsCisg
ICAgR0xYX1JFTkRFUl9UWVBFLCAgIDAsCisgICAgR0xYX1JFRF9TSVpFLCAgICAgIDEsCisgICAg
R0xYX0dSRUVOX1NJWkUsICAgIDEsCisgICAgR0xYX0JMVUVfU0laRSwgICAgIDEsCisgICAgR0xY
X0FMUEhBX1NJWkUsICAgIDAsCisgICAgR0xYX0RPVUJMRUJVRkZFUiwgIEdMX0ZBTFNFLAorICAg
IE5vbmUKK307CisKIGNsYXNzIEdMWENvbmZpZ1NlbGVjdG9yIHsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShHTFhDb25maWdTZWxlY3Rvcik7CiAKIHB1YmxpYzoKLSAgICBHTFhDb25maWdTZWxl
Y3RvcigpCisgICAgR0xYQ29uZmlnU2VsZWN0b3IoR0xQbGF0Zm9ybVN1cmZhY2U6OlBsYXRmb3Jt
U3VyZmFjZUF0dHJpYnV0ZXMgYXR0ciA9IEdMUGxhdGZvcm1TdXJmYWNlOjpEZWZhdWx0QXR0cmli
dXRlcykKICAgICAgICAgOiBtX3N1cmZhY2VDb250ZXh0RkJDb25maWcoMCkKICAgICAgICAgLCBt
X3BpeG1hcENvbnRleHRGQkNvbmZpZygwKQorICAgICAgICAsIG1fYXR0cmlidXRlcyhhdHRyKQog
ICAgIHsKICAgICB9CiAKQEAgLTY1LDE5ICs3OSw4IEBAIHB1YmxpYzoKICAgICBHTFhGQkNvbmZp
ZyBwaXhtYXBDb250ZXh0Q29uZmlnKCkKICAgICB7CiAgICAgICAgIGlmICghbV9waXhtYXBDb250
ZXh0RkJDb25maWcpIHsKLSAgICAgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgYXR0cmlidXRlc1td
ID0gewotICAgICAgICAgICAgICAgIEdMWF9MRVZFTCwgMCwKLSAgICAgICAgICAgICAgICBHTFhf
RFJBV0FCTEVfVFlQRSwgR0xYX1BJWE1BUF9CSVQsCi0gICAgICAgICAgICAgICAgR0xYX1JFTkRF
Ul9UWVBFLCAgIEdMWF9SR0JBX0JJVCwKLSAgICAgICAgICAgICAgICBHTFhfUkVEX1NJWkUsICAg
ICAgMSwKLSAgICAgICAgICAgICAgICBHTFhfR1JFRU5fU0laRSwgICAgMSwKLSAgICAgICAgICAg
ICAgICBHTFhfQkxVRV9TSVpFLCAgICAgMSwKLSAgICAgICAgICAgICAgICBHTFhfQUxQSEFfU0la
RSwgICAgMSwKLSAgICAgICAgICAgICAgICBHTFhfRE9VQkxFQlVGRkVSLCAgR0xfRkFMU0UsCi0g
ICAgICAgICAgICAgICAgTm9uZQotICAgICAgICAgICAgfTsKLQotICAgICAgICAgICAgbV9waXht
YXBDb250ZXh0RkJDb25maWcgPSBmaW5kTWF0Y2hpbmdDb25maWcoYXR0cmlidXRlcyk7CisgICAg
ICAgICAgICB2YWxpZGF0ZUF0dHJpYnV0ZXMoKTsKKyAgICAgICAgICAgIG1fcGl4bWFwQ29udGV4
dEZCQ29uZmlnID0gZmluZE1hdGNoaW5nQ29uZmlnKGdseFN1cmZhY2VBdHRyaWJ1dGVzLCBtX2F0
dHJpYnV0ZXMgJiBHTFBsYXRmb3JtU3VyZmFjZTo6U3VwcG9ydEFscGhhID8gMzIgOiAyNCk7CiAg
ICAgICAgIH0KIAogICAgICAgICByZXR1cm4gbV9waXhtYXBDb250ZXh0RkJDb25maWc7CkBAIC04
Niw4ICs4OSwxNCBAQCBwdWJsaWM6CiAKICAgICBHTFhGQkNvbmZpZyBzdXJmYWNlQ29udGV4dENv
bmZpZygpCiAgICAgewotICAgICAgICBpZiAoIW1fc3VyZmFjZUNvbnRleHRGQkNvbmZpZykKLSAg
ICAgICAgICAgIGNyZWF0ZVN1cmZhY2VDb25maWcoKTsKKyAgICAgICAgaWYgKCFtX3N1cmZhY2VD
b250ZXh0RkJDb25maWcpIHsKKyAgICAgICAgICAgIGdseFN1cmZhY2VBdHRyaWJ1dGVzWzNdID0g
R0xYX1dJTkRPV19CSVQ7CisgICAgICAgICAgICBnbHhTdXJmYWNlQXR0cmlidXRlc1s3XSA9IDg7
CisgICAgICAgICAgICBnbHhTdXJmYWNlQXR0cmlidXRlc1s5XSA9IDg7CisgICAgICAgICAgICBn
bHhTdXJmYWNlQXR0cmlidXRlc1sxMV0gPSA4OworICAgICAgICAgICAgdmFsaWRhdGVBdHRyaWJ1
dGVzKCk7CisgICAgICAgICAgICBtX3N1cmZhY2VDb250ZXh0RkJDb25maWcgPSBmaW5kTWF0Y2hp
bmdDb25maWcoZ2x4U3VyZmFjZUF0dHJpYnV0ZXMsIG1fYXR0cmlidXRlcyAmIEdMUGxhdGZvcm1T
dXJmYWNlOjpTdXBwb3J0QWxwaGEgPyAzMiA6IDI0KTsKKyAgICAgICAgfQogCiAgICAgICAgIHJl
dHVybiBtX3N1cmZhY2VDb250ZXh0RkJDb25maWc7CiAgICAgfQpAQCAtOTYsOCArMTA1LDEzIEBA
IHB1YmxpYzoKICAgICB7CiAgICAgICAgIGNsaWVudEF0dHJpYnV0ZXNbM10gPSBzdGF0aWNfY2Fz
dDxpbnQ+KGlkKTsKICAgICAgICAgY2xpZW50QXR0cmlidXRlc1s4XSA9IGRlcHRoID09IDMyID8g
R0xYX0JJTkRfVE9fVEVYVFVSRV9SR0JBX0VYVCA6IEdMWF9CSU5EX1RPX1RFWFRVUkVfUkdCX0VY
VDsKKyAgICAgICAgLy8gUHJlZmVyIHRvIG1hdGNoIHdpdGggVmlzdWFsIElkLgorICAgICAgICBH
TFhGQkNvbmZpZyBjb25maWcgPSBmaW5kTWF0Y2hpbmdDb25maWdXaXRoVmlzdWFsSWQoY2xpZW50
QXR0cmlidXRlcywgZGVwdGgsIGlkKTsKIAotICAgICAgICByZXR1cm4gZmluZE1hdGNoaW5nQ29u
ZmlnKGNsaWVudEF0dHJpYnV0ZXMsIGRlcHRoLCBpZCk7CisgICAgICAgIGlmICghY29uZmlnKQor
ICAgICAgICAgICAgY29uZmlnID0gZmluZE1hdGNoaW5nQ29uZmlnKGNsaWVudEF0dHJpYnV0ZXMs
IGRlcHRoKTsKKworICAgICAgICByZXR1cm4gY29uZmlnOwogICAgIH0KIAogICAgIHZvaWQgcmVz
ZXQoKQpAQCAtMTA2LDI3ICsxMjAsMjQgQEAgcHVibGljOgogICAgICAgICBtX3BpeG1hcENvbnRl
eHRGQkNvbmZpZyA9IDA7CiAgICAgfQogCisgICAgR0xQbGF0Zm9ybVN1cmZhY2U6OlBsYXRmb3Jt
U3VyZmFjZUF0dHJpYnV0ZXMgYXR0cmlidXRlcygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1
cm4gbV9hdHRyaWJ1dGVzOworICAgIH0KKwogcHJpdmF0ZToKLSAgICB2b2lkIGNyZWF0ZVN1cmZh
Y2VDb25maWcoKQorICAgIHZvaWQgdmFsaWRhdGVBdHRyaWJ1dGVzKCkKICAgICB7Ci0gICAgICAg
IHN0YXRpYyBpbnQgYXR0cmlidXRlc1tdID0gewotICAgICAgICAgICAgR0xYX0xFVkVMLCAwLAot
ICAgICAgICAgICAgR0xYX0RSQVdBQkxFX1RZUEUsIEdMWF9XSU5ET1dfQklULAotICAgICAgICAg
ICAgR0xYX1JFTkRFUl9UWVBFLCAgIEdMWF9SR0JBX0JJVCwKLSAgICAgICAgICAgIEdMWF9SRURf
U0laRSwgICAgICAxLAotICAgICAgICAgICAgR0xYX0dSRUVOX1NJWkUsICAgIDEsCi0gICAgICAg
ICAgICBHTFhfQkxVRV9TSVpFLCAgICAgMSwKLSAgICAgICAgICAgIEdMWF9BTFBIQV9TSVpFLCAg
ICAxLAotICAgICAgICAgICAgR0xYX0RFUFRIX1NJWkUsICAgIDEsCi0gICAgICAgICAgICBHTFhf
WF9WSVNVQUxfVFlQRSwgR0xYX1RSVUVfQ09MT1IsCi0gICAgICAgICAgICBHTFhfRE9VQkxFQlVG
RkVSLCAgVHJ1ZSwKLSAgICAgICAgICAgIE5vbmUKLSAgICAgICAgfTsKLQotICAgICAgICBtX3N1
cmZhY2VDb250ZXh0RkJDb25maWcgPSBmaW5kTWF0Y2hpbmdDb25maWcoYXR0cmlidXRlcyk7Cisg
ICAgICAgIGlmIChtX2F0dHJpYnV0ZXMgJiBHTFBsYXRmb3JtU3VyZmFjZTo6U3VwcG9ydEFscGhh
KSB7CisgICAgICAgICAgICBnbHhTdXJmYWNlQXR0cmlidXRlc1sxM10gPSA4OworICAgICAgICAg
ICAgZ2x4U3VyZmFjZUF0dHJpYnV0ZXNbNV0gPSBHTFhfUkdCQV9CSVQ7CisgICAgICAgIH0KKwor
ICAgICAgICBpZiAobV9hdHRyaWJ1dGVzICYgR0xQbGF0Zm9ybVN1cmZhY2U6OkRvdWJsZUJ1ZmZl
cikKKyAgICAgICAgICAgIGdseFN1cmZhY2VBdHRyaWJ1dGVzWzE1XSA9IEdMX1RSVUU7CiAgICAg
fQogCi0gICAgR0xYRkJDb25maWcgZmluZE1hdGNoaW5nQ29uZmlnKGNvbnN0IGludCBhdHRyaWJ1
dGVzW10sIGludCBkZXB0aCA9IDMyLCBWaXN1YWxJRCBpZCA9IDApCisgICAgR0xYRkJDb25maWcg
ZmluZE1hdGNoaW5nQ29uZmlnKGNvbnN0IGludCBhdHRyaWJ1dGVzW10sIGludCBkZXB0aCA9IDMy
KQogICAgIHsKICAgICAgICAgaW50IG51bUF2YWlsYWJsZUNvbmZpZ3M7CiAgICAgICAgIE93blB0
clgxMTxHTFhGQkNvbmZpZz4gdGVtcChnbFhDaG9vc2VGQkNvbmZpZyhYMTFIZWxwZXI6Om5hdGl2
ZURpc3BsYXkoKSwgRGVmYXVsdFNjcmVlbihYMTFIZWxwZXI6Om5hdGl2ZURpc3BsYXkoKSksIGF0
dHJpYnV0ZXMsICZudW1BdmFpbGFibGVDb25maWdzKSk7CkBAIC0xNDAsMTQgKzE1MSwxNyBAQCBw
cml2YXRlOgogICAgICAgICAgICAgaWYgKCFzY29wZWRWaXN1YWxJbmZvLmdldCgpKQogICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICBpZiAoaWQgJiYgc2NvcGVkVmlzdWFs
SW5mby0+ZGVwdGggPT0gZGVwdGggJiYgc2NvcGVkVmlzdWFsSW5mby0+dmlzdWFsaWQgPT0gaWQp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRlbXBbaV07Ci0KICNpZiBVU0UoR1JBUEhJQ1NfU1VS
RkFDRSkKICAgICAgICAgICAgIGlmIChYMTFIZWxwZXI6OmlzWFJlbmRlckV4dGVuc2lvblN1cHBv
cnRlZCgpKSB7CiAgICAgICAgICAgICAgICAgWFJlbmRlclBpY3RGb3JtYXQqIGZvcm1hdCA9IFhS
ZW5kZXJGaW5kVmlzdWFsRm9ybWF0KFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxheSgpLCBzY29wZWRW
aXN1YWxJbmZvLT52aXN1YWwpOwotICAgICAgICAgICAgICAgIGlmIChmb3JtYXQgJiYgZGVwdGgg
PT0gMzIgJiYgZm9ybWF0LT5kaXJlY3QuYWxwaGFNYXNrID4gMCkKLSAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHRlbXBbaV07CisKKyAgICAgICAgICAgICAgICBpZiAoZm9ybWF0KSB7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChtX2F0dHJpYnV0ZXMgJiBHTFBsYXRmb3JtU3VyZmFjZTo6U3Vw
cG9ydEFscGhhKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2NvcGVkVmlzdWFsSW5m
by0+ZGVwdGggPT0gZGVwdGggJiYgZm9ybWF0LT5kaXJlY3QuYWxwaGFNYXNrID4gMCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGVtcFtpXTsKKyAgICAgICAgICAgICAgICAg
ICAgfSBlbHNlIGlmICghZm9ybWF0LT5kaXJlY3QuYWxwaGFNYXNrKQorICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHRlbXBbaV07CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
fQogI2VuZGlmCiAgICAgICAgICAgICBpZiAoc2NvcGVkVmlzdWFsSW5mby0+ZGVwdGggPT0gZGVw
dGgpCkBAIC0xNTUsMTEgKzE2OSwzOCBAQCBwcml2YXRlOgogICAgICAgICB9CiAKICAgICAgICAg
Ly8gRGlkIG5vdCBmaW5kIGFueSB2aXN1YWwgc3VwcG9ydGluZyBhbHBoYSwgc2VsZWN0IHRoZSBm
aXJzdCBhdmFpbGFibGUgY29uZmlnLgorICAgICAgICBzY29wZWRWaXN1YWxJbmZvID0gZ2xYR2V0
VmlzdWFsRnJvbUZCQ29uZmlnKFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxheSgpLCB0ZW1wWzBdKTsK
KworICAgICAgICBpZiAoKG1fYXR0cmlidXRlcyAmIEdMUGxhdGZvcm1TdXJmYWNlOjpTdXBwb3J0
QWxwaGEpICYmIChzY29wZWRWaXN1YWxJbmZvLT5kZXB0aCAhPSAzMikpCisgICAgICAgICAgICBt
X2F0dHJpYnV0ZXMgJj0gfkdMUGxhdGZvcm1TdXJmYWNlOjpTdXBwb3J0QWxwaGE7CisKICAgICAg
ICAgcmV0dXJuIHRlbXBbMF07CiAgICAgfQogCisgICAgR0xYRkJDb25maWcgZmluZE1hdGNoaW5n
Q29uZmlnV2l0aFZpc3VhbElkKGNvbnN0IGludCBhdHRyaWJ1dGVzW10sIGludCBkZXB0aCwgVmlz
dWFsSUQgaWQpCisgICAgeworICAgICAgICBpbnQgbnVtQXZhaWxhYmxlQ29uZmlnczsKKyAgICAg
ICAgT3duUHRyWDExPEdMWEZCQ29uZmlnPiB0ZW1wKGdsWENob29zZUZCQ29uZmlnKFgxMUhlbHBl
cjo6bmF0aXZlRGlzcGxheSgpLCBEZWZhdWx0U2NyZWVuKFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxh
eSgpKSwgYXR0cmlidXRlcywgJm51bUF2YWlsYWJsZUNvbmZpZ3MpKTsKKworICAgICAgICBpZiAo
IW51bUF2YWlsYWJsZUNvbmZpZ3MgfHwgIXRlbXAuZ2V0KCkpCisgICAgICAgICAgICByZXR1cm4g
MDsKKworICAgICAgICBPd25QdHJYMTE8WFZpc3VhbEluZm8+IHNjb3BlZFZpc3VhbEluZm87Cisg
ICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQXZhaWxhYmxlQ29uZmlnczsgKytpKSB7Cisg
ICAgICAgICAgICBzY29wZWRWaXN1YWxJbmZvID0gZ2xYR2V0VmlzdWFsRnJvbUZCQ29uZmlnKFgx
MUhlbHBlcjo6bmF0aXZlRGlzcGxheSgpLCB0ZW1wW2ldKTsKKyAgICAgICAgICAgIGlmICghc2Nv
cGVkVmlzdWFsSW5mby5nZXQoKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAg
ICAgICAgaWYgKGlkICYmIHNjb3BlZFZpc3VhbEluZm8tPmRlcHRoID09IGRlcHRoICYmIHNjb3Bl
ZFZpc3VhbEluZm8tPnZpc3VhbGlkID09IGlkKQorICAgICAgICAgICAgICAgIHJldHVybiB0ZW1w
W2ldOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCiAgICAgR0xYRkJD
b25maWcgbV9zdXJmYWNlQ29udGV4dEZCQ29uZmlnOwogICAgIEdMWEZCQ29uZmlnIG1fcGl4bWFw
Q29udGV4dEZCQ29uZmlnOworICAgIEdMUGxhdGZvcm1TdXJmYWNlOjpQbGF0Zm9ybVN1cmZhY2VB
dHRyaWJ1dGVzIG1fYXR0cmlidXRlcyA6IDM7CiB9OwogCiB9CmRpZmYgLS1naXQgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbnRleHQuY3BwIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhDb250ZXh0LmNwcApp
bmRleCAxOWQ0YjdiLi4xMGQ0NGY4IDEwMDY0NAotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbnRleHQuY3BwCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYQ29udGV4dC5jcHAKQEAgLTg0LDggKzg0
LDkgQEAgYm9vbCBHTFhPZmZTY3JlZW5Db250ZXh0Ojppbml0aWFsaXplKEdMUGxhdGZvcm1TdXJm
YWNlKiBzdXJmYWNlLCBQbGF0Zm9ybUNvbnRleHQKICAgICAgICAgICAgICAgICBnbFhEZXN0cm95
Q29udGV4dCh4MTFEaXNwbGF5LCBtX2NvbnRleHRIYW5kbGUpOwogICAgICAgICB9CiAKKyAgICAg
ICAgYm9vbCBzdXBwb3J0c0FscGhhID0gc3VyZmFjZS0+YXR0cmlidXRlcygpICYgR0xQbGF0Zm9y
bVN1cmZhY2U6OlN1cHBvcnRBbHBoYTsKICAgICAgICAgaWYgKCFtX2NvbnRleHRIYW5kbGUpCi0g
ICAgICAgICAgICBtX2NvbnRleHRIYW5kbGUgPSBnbFhDcmVhdGVOZXdDb250ZXh0KHgxMURpc3Bs
YXksIGNvbmZpZywgR0xYX1JHQkFfVFlQRSwgc2hhcmVkQ29udGV4dCwgdHJ1ZSk7CisgICAgICAg
ICAgICBtX2NvbnRleHRIYW5kbGUgPSBnbFhDcmVhdGVOZXdDb250ZXh0KHgxMURpc3BsYXksIGNv
bmZpZywgc3VwcG9ydHNBbHBoYSA/IEdMWF9SR0JBX1RZUEUgOiAwLCBzaGFyZWRDb250ZXh0LCB0
cnVlKTsKIAogICAgICAgICBpZiAobV9jb250ZXh0SGFuZGxlKQogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFj
ZXMvZ2x4L0dMWFN1cmZhY2UuY3BwIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1
cmZhY2VzL2dseC9HTFhTdXJmYWNlLmNwcAppbmRleCBlYmQzMGYzLi4zY2Q3Mjk0IDEwMDY0NAot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZh
Y2UuY3BwCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgv
R0xYU3VyZmFjZS5jcHAKQEAgLTMyLDExICszMiwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IHN0YXRpYyBjb25zdCBpbnQgcGJ1ZmZlckF0dHJpYnV0ZXNbXSA9IHsgR0xYX1BCVUZGRVJfV0lE
VEgsIDEsIEdMWF9QQlVGRkVSX0hFSUdIVCwgMSwgMCB9OwogCi1HTFhUcmFuc3BvcnRTdXJmYWNl
OjpHTFhUcmFuc3BvcnRTdXJmYWNlKCkKLSAgICA6IEdMUGxhdGZvcm1TdXJmYWNlKCkKK0dMWFRy
YW5zcG9ydFN1cmZhY2U6OkdMWFRyYW5zcG9ydFN1cmZhY2UoUGxhdGZvcm1TdXJmYWNlQXR0cmli
dXRlcyBzdXJmYWNlQXR0cmlidXRlcykKKyAgICA6IEdMUGxhdGZvcm1TdXJmYWNlKHN1cmZhY2VB
dHRyaWJ1dGVzKQogewogICAgIG1fc2hhcmVkRGlzcGxheSA9IFgxMUhlbHBlcjo6bmF0aXZlRGlz
cGxheSgpOwotICAgIG1fY29uZmlnU2VsZWN0b3IgPSBhZG9wdFB0cihuZXcgR0xYQ29uZmlnU2Vs
ZWN0b3IoKSk7CisgICAgR0xQbGF0Zm9ybVN1cmZhY2U6OlBsYXRmb3JtU3VyZmFjZUF0dHJpYnV0
ZXMgc2hhcmVkU3VyZmFjZUF0dHJpYnV0ZXMgPSBzdXJmYWNlQXR0cmlidXRlcyB8IEdMUGxhdGZv
cm1TdXJmYWNlOjpEb3VibGVCdWZmZXI7CisgICAgbV9jb25maWdTZWxlY3RvciA9IGFkb3B0UHRy
KG5ldyBHTFhDb25maWdTZWxlY3RvcihzaGFyZWRTdXJmYWNlQXR0cmlidXRlcykpOwogICAgIE93
blB0clgxMTxYVmlzdWFsSW5mbz4gdmlzSW5mbyhtX2NvbmZpZ1NlbGVjdG9yLT52aXN1YWxJbmZv
KG1fY29uZmlnU2VsZWN0b3ItPnN1cmZhY2VDb250ZXh0Q29uZmlnKCkpKTsKIAogICAgIGlmICgh
dmlzSW5mby5nZXQoKSkgewpAQCAtOTIsOCArOTMsMTMgQEAgdm9pZCBHTFhUcmFuc3BvcnRTdXJm
YWNlOjpkZXN0cm95KCkKICAgICBtX2NvbmZpZ1NlbGVjdG9yID0gbnVsbHB0cjsKIH0KIAotR0xY
T2ZmU2NyZWVuU3VyZmFjZTo6R0xYT2ZmU2NyZWVuU3VyZmFjZSgpCi0gICAgOiBHTFBsYXRmb3Jt
U3VyZmFjZSgpCitHTFBsYXRmb3JtU3VyZmFjZTo6UGxhdGZvcm1TdXJmYWNlQXR0cmlidXRlcyBH
TFhUcmFuc3BvcnRTdXJmYWNlOjphdHRyaWJ1dGVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9j
b25maWdTZWxlY3Rvci0+YXR0cmlidXRlcygpOworfQorCitHTFhPZmZTY3JlZW5TdXJmYWNlOjpH
TFhPZmZTY3JlZW5TdXJmYWNlKFBsYXRmb3JtU3VyZmFjZUF0dHJpYnV0ZXMgc3VyZmFjZUF0dHJp
YnV0ZXMpCisgICAgOiBHTFBsYXRmb3JtU3VyZmFjZShzdXJmYWNlQXR0cmlidXRlcykKICAgICAs
IG1fcGl4bWFwKDApCiAgICAgLCBtX2dseFBpeG1hcCgwKQogewpkaWZmIC0tZ2l0IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmggU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuaAppbmRl
eCA0MzBmZTUxLi41ZTQ2YjllIDEwMDY0NAotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuaAorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuaApAQCAtMzcsMTEgKzM3LDEyIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEdMWFRyYW5zcG9ydFN1cmZhY2UgOiBwdWJsaWMg
R0xQbGF0Zm9ybVN1cmZhY2UgewogCiBwdWJsaWM6Ci0gICAgR0xYVHJhbnNwb3J0U3VyZmFjZSgp
OworICAgIEdMWFRyYW5zcG9ydFN1cmZhY2UoUGxhdGZvcm1TdXJmYWNlQXR0cmlidXRlcyk7CiAg
ICAgdmlydHVhbCB+R0xYVHJhbnNwb3J0U3VyZmFjZSgpOwogICAgIHZpcnR1YWwgUGxhdGZvcm1T
dXJmYWNlQ29uZmlnIGNvbmZpZ3VyYXRpb24oKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQg
c3dhcEJ1ZmZlcnMoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0R2VvbWV0cnkoY29u
c3QgSW50UmVjdCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgUGxhdGZvcm1TdXJmYWNlQXR0cmli
dXRlcyBhdHRyaWJ1dGVzKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRlc3Ry
b3koKSBPVkVSUklERTsKIAogcHJpdmF0ZToKQEAgLTUyLDcgKzUzLDcgQEAgcHJpdmF0ZToKIGNs
YXNzIEdMWE9mZlNjcmVlblN1cmZhY2UgOiBwdWJsaWMgR0xQbGF0Zm9ybVN1cmZhY2UgewogCiBw
dWJsaWM6Ci0gICAgR0xYT2ZmU2NyZWVuU3VyZmFjZSgpOworICAgIEdMWE9mZlNjcmVlblN1cmZh
Y2UoUGxhdGZvcm1TdXJmYWNlQXR0cmlidXRlcyk7CiAgICAgdmlydHVhbCB+R0xYT2ZmU2NyZWVu
U3VyZmFjZSgpOwogICAgIHZpcnR1YWwgUGxhdGZvcm1TdXJmYWNlQ29uZmlnIGNvbmZpZ3VyYXRp
b24oKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpIE9WRVJSSURFOwpkaWZm
IC0tZ2l0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HcmFw
aGljc1N1cmZhY2VHTFguY3BwIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzL2dseC9HcmFwaGljc1N1cmZhY2VHTFguY3BwCmluZGV4IDVlMThhNTkuLmYxZWMwYjUgMTAw
NjQ0Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR3Jh
cGhpY3NTdXJmYWNlR0xYLmNwcAorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c3VyZmFjZXMvZ2x4L0dyYXBoaWNzU3VyZmFjZUdMWC5jcHAKQEAgLTg4LDcgKzg4LDggQEAgc3Ry
dWN0IEdyYXBoaWNzU3VyZmFjZVByaXZhdGUgewogICAgICAgICBVTlVTRURfUEFSQU0oc2hhcmVD
b250ZXh0KTsKICNlbmRpZgogCi0gICAgICAgIG1fY29uZmlnU2VsZWN0b3IgPSBhZG9wdFB0cihu
ZXcgR0xYQ29uZmlnU2VsZWN0b3IoKSk7CisgICAgICAgIEdMUGxhdGZvcm1TdXJmYWNlOjpQbGF0
Zm9ybVN1cmZhY2VBdHRyaWJ1dGVzIHNoYXJlZFN1cmZhY2VBdHRyaWJ1dGVzID0gR0xQbGF0Zm9y
bVN1cmZhY2U6OkRvdWJsZUJ1ZmZlcjsKKyAgICAgICAgbV9jb25maWdTZWxlY3RvciA9IGFkb3B0
UHRyKG5ldyBHTFhDb25maWdTZWxlY3RvcihzaGFyZWRTdXJmYWNlQXR0cmlidXRlcykpOwogCiAg
ICAgICAgIGlmICghbV9jb25maWdTZWxlY3Rvci0+c3VyZmFjZUNvbnRleHRDb25maWcoKSkgewog
ICAgICAgICAgICAgY2xlYXIoKTsKQEAgLTExMCw3ICsxMTEsNiBAQCBzdHJ1Y3QgR3JhcGhpY3NT
dXJmYWNlUHJpdmF0ZSB7CiAgICAgICAgICwgbV9pc1JlY2VpdmVyKHRydWUpCiAgICAgICAgICwg
bV90ZXh0dXJlKDApCiAgICAgewotICAgICAgICBtX2NvbmZpZ1NlbGVjdG9yID0gYWRvcHRQdHIo
bmV3IEdMWENvbmZpZ1NlbGVjdG9yKCkpOwogICAgIH0KIAogICAgIH5HcmFwaGljc1N1cmZhY2VQ
cml2YXRlKCkKQEAgLTE0NCw5ICsxNDQsNiBAQCBzdHJ1Y3QgR3JhcGhpY3NTdXJmYWNlUHJpdmF0
ZSB7CiAKICAgICB2b2lkIGNyZWF0ZVBpeG1hcCh1aW50MzJfdCB3aW5JZCkKICAgICB7Ci0gICAg
ICAgIGlmICghbV9jb25maWdTZWxlY3RvcikKLSAgICAgICAgICAgIHJldHVybjsKLQogICAgICAg
ICBYV2luZG93QXR0cmlidXRlcyBhdHRyOwogICAgICAgICBpZiAoIVhHZXRXaW5kb3dBdHRyaWJ1
dGVzKGRpc3BsYXkoKSwgd2luSWQsICZhdHRyKSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE2
MSw3ICsxNTgsMTUgQEAgc3RydWN0IEdyYXBoaWNzU3VyZmFjZVByaXZhdGUgewogICAgICAgICBY
UmVuZGVyUGljdEZvcm1hdCogZm9ybWF0ID0gWFJlbmRlckZpbmRWaXN1YWxGb3JtYXQoZGlzcGxh
eSgpLCBhdHRyLnZpc3VhbCk7CiAgICAgICAgIGJvb2wgaGFzQWxwaGEgPSAoZm9ybWF0LT50eXBl
ID09IFBpY3RUeXBlRGlyZWN0ICYmIGZvcm1hdC0+ZGlyZWN0LmFscGhhTWFzayk7CiAgICAgICAg
IG1feFBpeG1hcCA9IFhDb21wb3NpdGVOYW1lV2luZG93UGl4bWFwKGRpc3BsYXkoKSwgd2luSWQp
OwotICAgICAgICBnbHhBdHRyaWJ1dGVzWzFdID0gKGZvcm1hdC0+ZGVwdGggPT0gMzIgfHwgaGFz
QWxwaGEpID8gR0xYX1RFWFRVUkVfRk9STUFUX1JHQkFfRVhUIDogR0xYX1RFWFRVUkVfRk9STUFU
X1JHQl9FWFQ7CisgICAgICAgIGdseEF0dHJpYnV0ZXNbMV0gPSAoZm9ybWF0LT5kZXB0aCA9PSAz
MiAmJiBoYXNBbHBoYSkgPyBHTFhfVEVYVFVSRV9GT1JNQVRfUkdCQV9FWFQgOiBHTFhfVEVYVFVS
RV9GT1JNQVRfUkdCX0VYVDsKKworICAgICAgICBHTFBsYXRmb3JtU3VyZmFjZTo6UGxhdGZvcm1T
dXJmYWNlQXR0cmlidXRlcyBzaGFyZWRTdXJmYWNlQXR0cmlidXRlcyA9IEdMUGxhdGZvcm1TdXJm
YWNlOjpEZWZhdWx0QXR0cmlidXRlczsKKyAgICAgICAgaWYgKGhhc0FscGhhKQorICAgICAgICAg
ICAgc2hhcmVkU3VyZmFjZUF0dHJpYnV0ZXMgPSBHTFBsYXRmb3JtU3VyZmFjZTo6U3VwcG9ydEFs
cGhhOworCisgICAgICAgIGlmICghbV9jb25maWdTZWxlY3RvcikKKyAgICAgICAgICAgIG1fY29u
ZmlnU2VsZWN0b3IgPSBhZG9wdFB0cihuZXcgR0xYQ29uZmlnU2VsZWN0b3Ioc2hhcmVkU3VyZmFj
ZUF0dHJpYnV0ZXMpKTsKKwogICAgICAgICBtX2dseFBpeG1hcCA9IGdsWENyZWF0ZVBpeG1hcChk
aXNwbGF5KCksIG1fY29uZmlnU2VsZWN0b3ItPnN1cmZhY2VDbGllbnRDb25maWcoZm9ybWF0LT5k
ZXB0aCwgWFZpc3VhbElERnJvbVZpc3VhbChhdHRyLnZpc3VhbCkpLCBtX3hQaXhtYXAsIGdseEF0
dHJpYnV0ZXMpOwogCiAgICAgICAgIGlmICghaGFuZGxlci5pc1ZhbGlkT3BlcmF0aW9uKCkpCmRp
ZmYgLS1naXQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L1gx
MUhlbHBlci5jcHAgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4
L1gxMUhlbHBlci5jcHAKaW5kZXggMjQ3Mjc0YS4uYzBhNjRlMCAxMDA2NDQKLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9YMTFIZWxwZXIuY3BwCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvWDExSGVscGVyLmNw
cApAQCAtMjIyLDggKzIyMiw5IEBAIHZvaWQgWDExSGVscGVyOjpjcmVhdGVPZmZTY3JlZW5XaW5k
b3codWludDMyX3QqIGhhbmRsZUlkLCBjb25zdCBYVmlzdWFsSW5mbyYgdmlzCiB9CiAKICNpZiBV
U0UoRUdMKQotdm9pZCBYMTFIZWxwZXI6OmNyZWF0ZU9mZlNjcmVlbldpbmRvdyh1aW50MzJfdCog
aGFuZGxlSWQsIGNvbnN0IEVHTGludCBpZCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3ZvaWQgWDEx
SGVscGVyOjpjcmVhdGVPZmZTY3JlZW5XaW5kb3codWludDMyX3QqIGhhbmRsZUlkLCBjb25zdCBF
R0xpbnQgaWQsIGJvb2wgc3VwcG9ydHNBbHBoYSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKKyNp
ZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKICAgICBWaXN1YWxJRCB2aXN1YWxJZCA9IHN0YXRpY19j
YXN0PFZpc3VhbElEPihpZCk7CiAKICAgICBpZiAoIXZpc3VhbElkKQpAQCAtMjQzLDEzICsyNDQs
MjMgQEAgdm9pZCBYMTFIZWxwZXI6OmNyZWF0ZU9mZlNjcmVlbldpbmRvdyh1aW50MzJfdCogaGFu
ZGxlSWQsIGNvbnN0IEVHTGludCBpZCwgY29uc3QKIAogICAgICAgICAgICAgaWYgKGlzWFJlbmRl
ckV4dGVuc2lvblN1cHBvcnRlZCgpKSB7CiAgICAgICAgICAgICAgICAgWFJlbmRlclBpY3RGb3Jt
YXQqIGZvcm1hdCA9IFhSZW5kZXJGaW5kVmlzdWFsRm9ybWF0KG5hdGl2ZURpc3BsYXkoKSwgdGVt
cC0+dmlzdWFsKTsKLSAgICAgICAgICAgICAgICBpZiAoZm9ybWF0ICYmIGZvcm1hdC0+ZGlyZWN0
LmFscGhhTWFzayA+IDApIHsKLSAgICAgICAgICAgICAgICAgICAgZm91bmRWaXN1YWwgPSB0ZW1w
OwotICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIGlmIChmb3Jt
YXQpIHsKKworICAgICAgICAgICAgICAgICAgICBpZiAoc3VwcG9ydHNBbHBoYSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKHRlbXAtPmRlcHRoID09IDMyICYmIGZvcm1hdC0+ZGlyZWN0
LmFscGhhTWFzayA+IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRWaXN1YWwg
PSB0ZW1wOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFmb3JtYXQtPmRpcmVjdC5h
bHBoYU1hc2spCisgICAgICAgICAgICAgICAgICAgICAgICBmb3VuZFZpc3VhbCA9IHRlbXA7CiAg
ICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGZvdW5kVmlzdWFsKQorICAg
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaWYg
KHRlbXAtPmRlcHRoID09IDMyKSB7CisgICAgICAgICAgICBpbnQgbWF0Y2hpbmdkZXB0aCA9IHN1
cHBvcnRzQWxwaGEgPyAzMiA6IDI0OworCisgICAgICAgICAgICBpZiAodGVtcC0+ZGVwdGggPT0g
bWF0Y2hpbmdkZXB0aCkgewogICAgICAgICAgICAgICAgIGZvdW5kVmlzdWFsID0gdGVtcDsKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTI1OCw2ICsyNjksMTEgQEAg
dm9pZCBYMTFIZWxwZXI6OmNyZWF0ZU9mZlNjcmVlbldpbmRvdyh1aW50MzJfdCogaGFuZGxlSWQs
IGNvbnN0IEVHTGludCBpZCwgY29uc3QKICAgICAgICAgaWYgKGZvdW5kVmlzdWFsKQogICAgICAg
ICAgICAgY3JlYXRlT2ZmU2NyZWVuV2luZG93KGhhbmRsZUlkLCAqZm91bmRWaXN1YWwsIHNpemUp
OwogICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGhhbmRsZUlkKTsKKyAgICBVTlVTRURf
UEFSQU0oaWQpOworICAgIFVOVVNFRF9QQVJBTShzaXplKTsKKyNlbmRpZgogfQogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgv
WDExSGVscGVyLmggU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4
L1gxMUhlbHBlci5oCmluZGV4IDY4Yzc1ZGQuLjdkM2ViYWUgMTAwNjQ0Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvWDExSGVscGVyLmgKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9YMTFIZWxwZXIuaApAQCAt
NDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgY3JlYXRlUGl4bWFwKFBpeG1h
cCosIGNvbnN0IFhWaXN1YWxJbmZvJiwgY29uc3QgSW50U2l6ZSYgPSBJbnRTaXplKDEsIDEpKTsK
ICAgICBzdGF0aWMgdm9pZCBjcmVhdGVPZmZTY3JlZW5XaW5kb3codWludDMyX3QqLCBjb25zdCBY
VmlzdWFsSW5mbyYsIGNvbnN0IEludFNpemUmID0gSW50U2l6ZSgxLCAxKSk7CiAjaWYgVVNFKEVH
TCkKLSAgICBzdGF0aWMgdm9pZCBjcmVhdGVPZmZTY3JlZW5XaW5kb3codWludDMyX3QqLCBjb25z
dCBFR0xpbnQsIGNvbnN0IEludFNpemUmID0gSW50U2l6ZSgxLCAxKSk7CisgICAgc3RhdGljIHZv
aWQgY3JlYXRlT2ZmU2NyZWVuV2luZG93KHVpbnQzMl90KiwgY29uc3QgRUdMaW50LCBib29sLCBj
b25zdCBJbnRTaXplJiA9IEludFNpemUoMSwgMSkpOwogI2VuZGlmCiAgICAgc3RhdGljIHZvaWQg
ZGVzdHJveVdpbmRvdyhjb25zdCB1aW50MzJfdCk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveVBp
eG1hcChjb25zdCB1aW50MzJfdCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189348</attachid>
            <date>2013-02-20 11:44:38 -0800</date>
            <delta_ts>2013-02-20 15:17:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110067-20130220214059.patch</filename>
            <type>text/plain</type>
            <size>33988</size>
            <attacher name="Kalyan">kalyan.kondapally</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNDY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2E5ZWM1NDAyZjI5YTZl
NjViYmI4MmUxNDc3NmEzYjJhOTgyZjU4Yi4uMmRmZWE1ZDBmMDJkNTE4Y2VhYzI5NzQxODJjYmRj
Y2JmYzhhNzJhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEzLTAyLTIwICBLb25k
YXBhbGx5IEthbHlhbiAgPGthbHlhbi5rb25kYXBhbGx5QGludGVsLmNvbT4KKworICAgICAgICBb
V2ViR0xdW0VGTF0gU3VwcG9ydCBmb3IgY3JlYXRpbmcgc3VyZmFjZSB3aXRoIGFscGhhIGRpc2Fi
bGVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEw
MDY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292
ZXJlZCBieSBjb21wb3NpdGluZy93ZWJnbC93ZWJnbC1uby1hbHBoYS5odG1sCisKKyAgICAgICAg
V2UgY3VycmVudGx5IGFsd2F5cyBjcmVhdGUgYSBzdXJmYWNlIHN1cHBvcnRpbmcgYWxwaGEgY2hh
bm5lbC4gCisgICAgICAgIFdpdGggdGhpcyBwYXRjaCB3ZSBjcmVhdGUgdGhlIHN1cHBvcnQgd2l0
aCBhbHBoYSBvbmx5IGlmCisgICAgICAgIHJlcXVpcmVkLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmluaXRpYWxpemUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaDoKKyAgICAgICAg
KEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdMUGxhdGZv
cm1TdXJmYWNlOjpjcmVhdGVPZmZTY3JlZW5TdXJmYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkdM
UGxhdGZvcm1TdXJmYWNlOjpjcmVhdGVUcmFuc3BvcnRTdXJmYWNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkdMUGxhdGZvcm1TdXJmYWNlOjpHTFBsYXRmb3JtU3VyZmFjZSk6CisgICAgICAgIChXZWJD
b3JlOjpHTFBsYXRmb3JtU3VyZmFjZTo6YXR0cmlidXRlcyk6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMQ29uZmlnU2VsZWN0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpFR0xDb25maWdT
ZWxlY3Rvcjo6RUdMQ29uZmlnU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6RUdMQ29uZmln
U2VsZWN0b3I6OnBCdWZmZXJDb250ZXh0Q29uZmlnKToKKyAgICAgICAgKFdlYkNvcmU6OkVHTENv
bmZpZ1NlbGVjdG9yOjpzdXJmYWNlQ29udGV4dENvbmZpZyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTENvbmZpZ1NlbGVjdG9yLmg6CisgICAgICAgIChFR0xD
b25maWdTZWxlY3Rvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWds
L0VHTFN1cmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RUdMV2luZG93VHJhbnNwb3J0U3Vy
ZmFjZTo6RUdMV2luZG93VHJhbnNwb3J0U3VyZmFjZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvc3VyZmFjZXMvZWdsL0VHTFN1cmZhY2UuaDoKKyAgICAgICAgKEVHTFdpbmRvd1RyYW5z
cG9ydFN1cmZhY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9H
TFhDb25maWdTZWxlY3Rvci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHTFhDb25maWdTZWxlY3Rvcjo6R0xYQ29uZmlnU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6R0xYQ29uZmlnU2VsZWN0b3I6OnBpeG1hcENvbnRleHRDb25maWcpOgorICAgICAgICAoV2Vi
Q29yZTo6R0xYQ29uZmlnU2VsZWN0b3I6OnN1cmZhY2VDb250ZXh0Q29uZmlnKToKKyAgICAgICAg
KFdlYkNvcmU6OkdMWENvbmZpZ1NlbGVjdG9yOjpzdXJmYWNlQ2xpZW50Q29uZmlnKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdMWENvbmZpZ1NlbGVjdG9yOjp2YWxpZGF0ZUF0dHJpYnV0ZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6R0xYQ29uZmlnU2VsZWN0b3I6OmZpbmRNYXRjaGluZ0NvbmZpZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpHTFhDb25maWdTZWxlY3Rvcjo6ZmluZE1hdGNoaW5nQ29uZmlnV2l0
aFZpc3VhbElkKToKKyAgICAgICAgKEdMWENvbmZpZ1NlbGVjdG9yKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHTFhPZmZTY3JlZW5Db250ZXh0Ojppbml0aWFsaXplKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHTFhUcmFuc3BvcnRTdXJmYWNlOjpHTFhUcmFuc3BvcnRTdXJmYWNlKToKKyAgICAgICAgKFdl
YkNvcmU6OkdMWE9mZlNjcmVlblN1cmZhY2U6OkdMWE9mZlNjcmVlblN1cmZhY2UpOgorICAgICAg
ICAoV2ViQ29yZTo6R0xYT2ZmU2NyZWVuU3VyZmFjZTo6aW5pdGlhbGl6ZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuaDoKKyAgICAgICAgKEdM
WFRyYW5zcG9ydFN1cmZhY2UpOgorICAgICAgICAoR0xYT2ZmU2NyZWVuU3VyZmFjZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dyYXBoaWNzU3VyZmFjZUdMWC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VQcml2YXRlOjpHcmFwaGljc1N1
cmZhY2VQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVByaXZhdGU6
OmNyZWF0ZVBpeG1hcCk6CisKIDIwMTMtMDItMjAgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNv
bkBhcHBsZS5jb20+CiAKICAgICAgICAgaU9TIGRvZXMgbm90IHVzZSBDYXB0aW9uVXNlclByZWZl
cmVuY2VzTWFjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9l
ZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCmluZGV4IDNkNjAxZmUy
Zjg3Njg2YzAyNThiMmEwY2U2NzY1MTFiZTY5OWU4NWUuLmFlNGZhZjBjNDM2MTMxNmEwODczZjEy
YmVhMTk2ZjEwMTMzYTMxNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCkBA
IC02MCwxNiArNjAsNiBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6aW5pdGlhbGl6
ZSgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChtX2NvbnRleHQtPm1fcmVuZGVy
U3R5bGUgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlck9mZnNjcmVlbikgewotI2lmIFVTRShH
UkFQSElDU19TVVJGQUNFKQotICAgICAgICBtX3NoYXJlZFN1cmZhY2UgPSBHTFBsYXRmb3JtU3Vy
ZmFjZTo6Y3JlYXRlVHJhbnNwb3J0U3VyZmFjZSgpOwotICAgICAgICBpZiAoIW1fc2hhcmVkU3Vy
ZmFjZSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBtX3NoYXJlZENvbnRl
eHQgPSBHTFBsYXRmb3JtQ29udGV4dDo6Y3JlYXRlQ29udGV4dChtX2NvbnRleHQtPm1fcmVuZGVy
U3R5bGUpOwotICAgICAgICBpZiAoIW1fc2hhcmVkQ29udGV4dCkKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSNlbmRpZgotCiAgICAgICAgIG1fb2ZmU2NyZWVuU3VyZmFjZSA9IEdMUGxhdGZv
cm1TdXJmYWNlOjpjcmVhdGVPZmZTY3JlZW5TdXJmYWNlKCk7CiAKICAgICAgICAgaWYgKCFtX29m
ZlNjcmVlblN1cmZhY2UpCkBAIC03OSw2ICs2OSwyMyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNE
UHJpdmF0ZTo6aW5pdGlhbGl6ZSgpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICNpZiBV
U0UoR1JBUEhJQ1NfU1VSRkFDRSkKKyAgICAgICAgaWYgKCFtYWtlQ29udGV4dEN1cnJlbnQoKSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBtX2NvbnRleHQtPnZhbGlkYXRl
QXR0cmlidXRlcygpOworICAgICAgICBHTFBsYXRmb3JtU3VyZmFjZTo6UGxhdGZvcm1TdXJmYWNl
QXR0cmlidXRlcyBzaGFyZWRTdXJmYWNlQXR0cmlidXRlcyA9IEdMUGxhdGZvcm1TdXJmYWNlOjpE
ZWZhdWx0QXR0cmlidXRlczsKKyAgICAgICAgaWYgKG1fY29udGV4dC0+bV9hdHRycy5hbHBoYSkK
KyAgICAgICAgICAgIHNoYXJlZFN1cmZhY2VBdHRyaWJ1dGVzID0gR0xQbGF0Zm9ybVN1cmZhY2U6
OlN1cHBvcnRBbHBoYTsKKworICAgICAgICBtX29mZlNjcmVlbkNvbnRleHQtPnJlbGVhc2VDdXJy
ZW50KCk7CisgICAgICAgIG1fc2hhcmVkU3VyZmFjZSA9IEdMUGxhdGZvcm1TdXJmYWNlOjpjcmVh
dGVUcmFuc3BvcnRTdXJmYWNlKHNoYXJlZFN1cmZhY2VBdHRyaWJ1dGVzKTsKKyAgICAgICAgaWYg
KCFtX3NoYXJlZFN1cmZhY2UpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAg
bV9zaGFyZWRDb250ZXh0ID0gR0xQbGF0Zm9ybUNvbnRleHQ6OmNyZWF0ZUNvbnRleHQobV9jb250
ZXh0LT5tX3JlbmRlclN0eWxlKTsKKyAgICAgICAgaWYgKCFtX3NoYXJlZENvbnRleHQpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICAgICAgaWYgKCFtX3NoYXJlZENvbnRleHQtPmlu
aXRpYWxpemUobV9zaGFyZWRTdXJmYWNlLmdldCgpLCBtX29mZlNjcmVlbkNvbnRleHQtPmhhbmRs
ZSgpKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5j
cHAKaW5kZXggMDcxYTgzYjc3Y2VhMGQ3NTBmZTJjYjIwODVlNGIxMTRmOGM4Yzk1My4uNjM0YWIz
OTVmYzIxZGUzNDQwNjlkMTg2ODkzNDk0ODEzNmJjYjE0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZh
Y2UuY3BwCkBAIC00MCwyNCArNDAsMjYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNz
T3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBHTFBsYXRmb3JtU3VyZmFjZTo6Y3JlYXRlT2ZmU2Ny
ZWVuU3VyZmFjZSgpCitQYXNzT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBHTFBsYXRmb3JtU3Vy
ZmFjZTo6Y3JlYXRlT2ZmU2NyZWVuU3VyZmFjZShQbGF0Zm9ybVN1cmZhY2VBdHRyaWJ1dGVzIHN1
cmZhY2VBdHRyaWJ1dGVzKQogewogI2lmIFVTRShHTFgpCi0gICAgT3duUHRyPEdMUGxhdGZvcm1T
dXJmYWNlPiBzdXJmYWNlID0gYWRvcHRQdHIobmV3IEdMWE9mZlNjcmVlblN1cmZhY2UoKSk7Cisg
ICAgT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBzdXJmYWNlID0gYWRvcHRQdHIobmV3IEdMWE9m
ZlNjcmVlblN1cmZhY2Uoc3VyZmFjZUF0dHJpYnV0ZXMpKTsKIAogICAgIGlmIChzdXJmYWNlLT5k
cmF3YWJsZSgpKQogICAgICAgICByZXR1cm4gc3VyZmFjZS5yZWxlYXNlKCk7CisjZWxzZQorICAg
IFVOVVNFRF9QQVJBTShzdXJmYWNlQXR0cmlidXRlcyk7CiAjZW5kaWYKIAogICAgIHJldHVybiBu
dWxscHRyOwogfQogCi1QYXNzT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBHTFBsYXRmb3JtU3Vy
ZmFjZTo6Y3JlYXRlVHJhbnNwb3J0U3VyZmFjZSgpCitQYXNzT3duUHRyPEdMUGxhdGZvcm1TdXJm
YWNlPiBHTFBsYXRmb3JtU3VyZmFjZTo6Y3JlYXRlVHJhbnNwb3J0U3VyZmFjZShQbGF0Zm9ybVN1
cmZhY2VBdHRyaWJ1dGVzIHN1cmZhY2VBdHRyaWJ1dGVzKQogewogI2lmIFVTRShHTFgpCi0gICAg
T3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBzdXJmYWNlID0gYWRvcHRQdHIobmV3IEdMWFRyYW5z
cG9ydFN1cmZhY2UoKSk7CisgICAgT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBzdXJmYWNlID0g
YWRvcHRQdHIobmV3IEdMWFRyYW5zcG9ydFN1cmZhY2Uoc3VyZmFjZUF0dHJpYnV0ZXMpKTsKICNl
bGlmIFVTRShFR0wpCi0gICAgT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBzdXJmYWNlID0gYWRv
cHRQdHIobmV3IEVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2UoKSk7CisgICAgT3duUHRyPEdMUGxh
dGZvcm1TdXJmYWNlPiBzdXJmYWNlID0gYWRvcHRQdHIobmV3IEVHTFdpbmRvd1RyYW5zcG9ydFN1
cmZhY2Uoc3VyZmFjZUF0dHJpYnV0ZXMpKTsKICNlbmRpZgogCiAgICAgaWYgKHN1cmZhY2UgJiYg
c3VyZmFjZS0+aGFuZGxlKCkgJiYgc3VyZmFjZS0+ZHJhd2FibGUoKSkKQEAgLTY2LDcgKzY4LDcg
QEAgUGFzc093blB0cjxHTFBsYXRmb3JtU3VyZmFjZT4gR0xQbGF0Zm9ybVN1cmZhY2U6OmNyZWF0
ZVRyYW5zcG9ydFN1cmZhY2UoKQogICAgIHJldHVybiBudWxscHRyOwogfQogCi1HTFBsYXRmb3Jt
U3VyZmFjZTo6R0xQbGF0Zm9ybVN1cmZhY2UoKQorR0xQbGF0Zm9ybVN1cmZhY2U6OkdMUGxhdGZv
cm1TdXJmYWNlKFBsYXRmb3JtU3VyZmFjZUF0dHJpYnV0ZXMgc3VyZmFjZUF0dHJpYnV0ZXMpCiAg
ICAgOiBtX2Zib0lkKDApCiAgICAgLCBtX3NoYXJlZERpc3BsYXkoMCkKICAgICAsIG1fZHJhd2Fi
bGUoMCkKQEAgLTE0NCw2ICsxNDYsMTEgQEAgdm9pZCBHTFBsYXRmb3JtU3VyZmFjZTo6ZGVzdHJv
eSgpCiAgICAgfQogfQogCitHTFBsYXRmb3JtU3VyZmFjZTo6UGxhdGZvcm1TdXJmYWNlQXR0cmli
dXRlcyBHTFBsYXRmb3JtU3VyZmFjZTo6YXR0cmlidXRlcygpIGNvbnN0Cit7CisgICAgcmV0dXJu
IEdMUGxhdGZvcm1TdXJmYWNlOjpEZWZhdWx0QXR0cmlidXRlczsKK30KKwogfQogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBs
YXRmb3JtU3VyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0dMUGxhdGZvcm1TdXJmYWNlLmgKaW5kZXggMDBkZDdjOTFlZjkzMWFhM2VkN2YwNDM3Y2Q1ZDVm
MWRhZmUzZDNhZS4uZDIxZWFmMDhkZmQ2ZGE5YWExNDY1NzBkZjc1Yjc1MDQ2NDIxZDVhNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZv
cm1TdXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0dMUGxhdGZvcm1TdXJmYWNlLmgKQEAgLTQxLDEyICs0MSwxOSBAQCBjbGFzcyBHTFBsYXRmb3Jt
U3VyZmFjZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR0xQbGF0Zm9ybVN1cmZhY2UpOwog
CiBwdWJsaWM6CisgICAgZW51bSBTdXJmYWNlQXR0cmlidXRlcyB7CisgICAgICAgIERlZmF1bHRB
dHRyaWJ1dGVzID0gMHgwMCwgLy8gTm8gQWxwaGEgY2hhbm5lbC4gT25seSBSLEcsQiB2YWx1ZXMg
c2V0LgorICAgICAgICBTdXBwb3J0QWxwaGEgPSAweDAxLAorICAgICAgICBEb3VibGVCdWZmZXIg
PSAweDA0CisgICAgfTsKKworICAgIHR5cGVkZWYgaW50IFBsYXRmb3JtU3VyZmFjZUF0dHJpYnV0
ZXM7CiAgICAgLy8gQ3JlYXRlcyBhIEdMIHN1cmZhY2UgdXNlZCBmb3Igb2Zmc2NyZWVuIHJlbmRl
cmluZy4KLSAgICBzdGF0aWMgUGFzc093blB0cjxHTFBsYXRmb3JtU3VyZmFjZT4gY3JlYXRlT2Zm
U2NyZWVuU3VyZmFjZSgpOworICAgIHN0YXRpYyBQYXNzT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNl
PiBjcmVhdGVPZmZTY3JlZW5TdXJmYWNlKFBsYXRmb3JtU3VyZmFjZUF0dHJpYnV0ZXMgPSBHTFBs
YXRmb3JtU3VyZmFjZTo6RGVmYXVsdEF0dHJpYnV0ZXMpOwogCiAgICAgLy8gQ3JlYXRlcyBhIEdM
IHN1cmZhY2UgdXNlZCBmb3Igb2Zmc2NyZWVuIHJlbmRlcmluZy4gVGhlIHJlc3VsdHMgY2FuIGJl
IHRyYW5zcG9ydGVkCiAgICAgLy8gdG8gdGhlIFVJIHByb2Nlc3MgZm9yIGRpc3BsYXkuCi0gICAg
c3RhdGljIFBhc3NPd25QdHI8R0xQbGF0Zm9ybVN1cmZhY2U+IGNyZWF0ZVRyYW5zcG9ydFN1cmZh
Y2UoKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxHTFBsYXRmb3JtU3VyZmFjZT4gY3JlYXRlVHJh
bnNwb3J0U3VyZmFjZShQbGF0Zm9ybVN1cmZhY2VBdHRyaWJ1dGVzID0gR0xQbGF0Zm9ybVN1cmZh
Y2U6OkRlZmF1bHRBdHRyaWJ1dGVzKTsKIAogICAgIHZpcnR1YWwgfkdMUGxhdGZvcm1TdXJmYWNl
KCk7CiAKQEAgLTYxLDYgKzY4LDggQEAgcHVibGljOgogCiAgICAgUGxhdGZvcm1EaXNwbGF5IHNo
YXJlZERpc3BsYXkoKSBjb25zdDsKIAorICAgIHZpcnR1YWwgUGxhdGZvcm1TdXJmYWNlQXR0cmli
dXRlcyBhdHRyaWJ1dGVzKCkgY29uc3Q7CisKICAgICB2aXJ0dWFsIHZvaWQgc3dhcEJ1ZmZlcnMo
KTsKIAogICAgIC8vIENvbnZlbmllbmNlIEZ1bmN0aW9uIHRvIHVwZGF0ZSBzdXJmYWNlIGJhY2ti
dWZmZXIgd2l0aCB0ZXh0dXJlIGNvbnRlbnRzLgpAQCAtNzcsNyArODYsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKTsKIAogcHJvdGVjdGVkOgotICAgIEdMUGxhdGZvcm1T
dXJmYWNlKCk7CisgICAgR0xQbGF0Zm9ybVN1cmZhY2UoUGxhdGZvcm1TdXJmYWNlQXR0cmlidXRl
cyk7CiAgICAgSW50UmVjdCBtX3JlY3Q7CiAgICAgR0x1aW50IG1fZmJvSWQ7CiAgICAgUGxhdGZv
cm1EaXNwbGF5IG1fc2hhcmVkRGlzcGxheTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xDb25maWdTZWxlY3Rvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMQ29uZmlnU2VsZWN0
b3IuY3BwCmluZGV4IGNiY2QyMTI3ZWJlZGFkMjY3ODRkZjFmNjBhZmVkMWYyMjBiMjY5MjQuLmE3
NDNjNzJiZjJiMDY5YTQ5NGZmODJhNDYwZjQwMjJkMWJmM2IwNTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xDb25maWdTZWxlY3Rv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWds
L0VHTENvbmZpZ1NlbGVjdG9yLmNwcApAQCAtNDIsNyArNDIsNyBAQCBzdGF0aWMgRUdMaW50IGNv
bmZpZ0F0dHJpYnV0ZUxpc3RbXSA9IHsKICAgICBFR0xfR1JFRU5fU0laRSwgOCwKICAgICBFR0xf
QkxVRV9TSVpFLCA4LAogICAgIEVHTF9TVEVOQ0lMX1NJWkUsIDgsCi0gICAgRUdMX0FMUEhBX1NJ
WkUsIDgsCisgICAgRUdMX0FMUEhBX1NJWkUsIDAsCiAgICAgRUdMX1NVUkZBQ0VfVFlQRSwgRUdM
X05PTkUsCiAgICAgRUdMX05PTkUKIH07CkBAIC0xMDQsOSArMTA0LDEwIEBAIFNoYXJlZEVHTERp
c3BsYXk6On5TaGFyZWRFR0xEaXNwbGF5KCkKICAgICBjbGVhbnVwKCk7CiB9CiAKLUVHTENvbmZp
Z1NlbGVjdG9yOjpFR0xDb25maWdTZWxlY3RvcihOYXRpdmVTaGFyZWREaXNwbGF5KiBkaXNwbGF5
KQorRUdMQ29uZmlnU2VsZWN0b3I6OkVHTENvbmZpZ1NlbGVjdG9yKEdMUGxhdGZvcm1TdXJmYWNl
OjpQbGF0Zm9ybVN1cmZhY2VBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIE5hdGl2ZVNoYXJlZERpc3Bs
YXkqIGRpc3BsYXkpCiAgICAgOiBtX3BidWZmZXJGQkNvbmZpZygwKQogICAgICwgbV9zdXJmYWNl
Q29udGV4dEZCQ29uZmlnKDApCisgICAgLCBtX2F0dHJpYnV0ZXMoYXR0cmlidXRlcykKIHsKICAg
ICBtX3NoYXJlZERpc3BsYXkgPSBTaGFyZWRFR0xEaXNwbGF5OjpjcmVhdGUoZGlzcGxheSk7CiB9
CkBAIC0xMjMsNiArMTI0LDcgQEAgUGxhdGZvcm1EaXNwbGF5IEVHTENvbmZpZ1NlbGVjdG9yOjpk
aXNwbGF5KCkgY29uc3QKIEVHTENvbmZpZyBFR0xDb25maWdTZWxlY3Rvcjo6cEJ1ZmZlckNvbnRl
eHRDb25maWcoKQogewogICAgIGlmICghbV9wYnVmZmVyRkJDb25maWcpIHsKKyAgICAgICAgY29u
ZmlnQXR0cmlidXRlTGlzdFsxMV0gPSBtX2F0dHJpYnV0ZXMgJiBHTFBsYXRmb3JtU3VyZmFjZTo6
U3VwcG9ydEFscGhhID8gOCA6IDA7CiAgICAgICAgIGNvbmZpZ0F0dHJpYnV0ZUxpc3RbMTNdID0g
RUdMX1BJWE1BUF9CSVQ7CiAgICAgICAgIG1fcGJ1ZmZlckZCQ29uZmlnID0gY3JlYXRlQ29uZmln
KGNvbmZpZ0F0dHJpYnV0ZUxpc3QpOwogICAgIH0KQEAgLTEzMyw2ICsxMzUsNyBAQCBFR0xDb25m
aWcgRUdMQ29uZmlnU2VsZWN0b3I6OnBCdWZmZXJDb250ZXh0Q29uZmlnKCkKIEVHTENvbmZpZyBF
R0xDb25maWdTZWxlY3Rvcjo6c3VyZmFjZUNvbnRleHRDb25maWcoKQogewogICAgIGlmICghbV9z
dXJmYWNlQ29udGV4dEZCQ29uZmlnKSB7CisgICAgICAgIGNvbmZpZ0F0dHJpYnV0ZUxpc3RbMTFd
ID0gbV9hdHRyaWJ1dGVzICYgR0xQbGF0Zm9ybVN1cmZhY2U6OlN1cHBvcnRBbHBoYSA/IDggOiAw
OwogICAgICAgICBjb25maWdBdHRyaWJ1dGVMaXN0WzEzXSA9IEVHTF9XSU5ET1dfQklUOwogICAg
ICAgICBtX3N1cmZhY2VDb250ZXh0RkJDb25maWcgPSBjcmVhdGVDb25maWcoY29uZmlnQXR0cmli
dXRlTGlzdCk7CiAgICAgfQpAQCAtMTUxLDYgKzE1NCwxMSBAQCBFR0xpbnQgRUdMQ29uZmlnU2Vs
ZWN0b3I6Om5hdGl2ZVZpc3VhbElkKGNvbnN0IEVHTENvbmZpZyYgY29uZmlnKSBjb25zdAogICAg
IHJldHVybiBlZ2xWYWx1ZTsKIH0KIAorR0xQbGF0Zm9ybVN1cmZhY2U6OlBsYXRmb3JtU3VyZmFj
ZUF0dHJpYnV0ZXMgRUdMQ29uZmlnU2VsZWN0b3I6OmF0dHJpYnV0ZXMoKSBjb25zdAoreworICAg
IHJldHVybiBtX2F0dHJpYnV0ZXM7Cit9CisKIHZvaWQgRUdMQ29uZmlnU2VsZWN0b3I6OnJlc2V0
KCkKIHsKICAgICBtX3N1cmZhY2VDb250ZXh0RkJDb25maWcgPSAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTENvbmZpZ1NlbGVj
dG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdM
Q29uZmlnU2VsZWN0b3IuaAppbmRleCA2NjMxYWRjYmNjMTJjYTJlNmU2MWMwY2U0YmExNjQxNzkw
NWZhOWFkLi4yZjA1YWRkODYzM2JiZWE1NzI3YjZkYjdiY2QxNTRmNTVkOTk4YWJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMQ29u
ZmlnU2VsZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJm
YWNlcy9lZ2wvRUdMQ29uZmlnU2VsZWN0b3IuaApAQCAtMjksNiArMjksNyBAQAogI2lmIFVTRShF
R0wpCiAKICNpbmNsdWRlIDxvcGVuZ2wvR0xEZWZzLmg+CisjaW5jbHVkZSA8b3BlbmdsL0dMUGxh
dGZvcm1TdXJmYWNlLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtNjgsMTIg
KzY5LDEzIEBAIGNsYXNzIEVHTENvbmZpZ1NlbGVjdG9yIHsKICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShFR0xDb25maWdTZWxlY3Rvcik7CiAKIHB1YmxpYzoKLSAgICBFR0xDb25maWdTZWxlY3Rv
cihOYXRpdmVTaGFyZWREaXNwbGF5KiA9IDApOworICAgIEVHTENvbmZpZ1NlbGVjdG9yKEdMUGxh
dGZvcm1TdXJmYWNlOjpQbGF0Zm9ybVN1cmZhY2VBdHRyaWJ1dGVzLCBOYXRpdmVTaGFyZWREaXNw
bGF5KiA9IDApOwogICAgIHZpcnR1YWwgfkVHTENvbmZpZ1NlbGVjdG9yKCk7CiAgICAgUGxhdGZv
cm1EaXNwbGF5IGRpc3BsYXkoKSBjb25zdDsKICAgICB2aXJ0dWFsIEVHTENvbmZpZyBwQnVmZmVy
Q29udGV4dENvbmZpZygpOwogICAgIHZpcnR1YWwgRUdMQ29uZmlnIHN1cmZhY2VDb250ZXh0Q29u
ZmlnKCk7CiAgICAgRUdMaW50IG5hdGl2ZVZpc3VhbElkKGNvbnN0IEVHTENvbmZpZyYpIGNvbnN0
OworICAgIEdMUGxhdGZvcm1TdXJmYWNlOjpQbGF0Zm9ybVN1cmZhY2VBdHRyaWJ1dGVzIGF0dHJp
YnV0ZXMoKSBjb25zdDsKICAgICB2b2lkIHJlc2V0KCk7CiAKIHByaXZhdGU6CkBAIC04Myw2ICs4
NSw3IEBAIHByb3RlY3RlZDoKICAgICBFR0xDb25maWcgbV9wYnVmZmVyRkJDb25maWc7CiAgICAg
RUdMQ29uZmlnIG1fc3VyZmFjZUNvbnRleHRGQkNvbmZpZzsKICAgICBSZWZQdHI8U2hhcmVkRUdM
RGlzcGxheT4gbV9zaGFyZWREaXNwbGF5OworICAgIEdMUGxhdGZvcm1TdXJmYWNlOjpQbGF0Zm9y
bVN1cmZhY2VBdHRyaWJ1dGVzIG1fYXR0cmlidXRlcyA6IDM7CiB9OwogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMU3VyZmFj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdM
U3VyZmFjZS5jcHAKaW5kZXggZTY3MTFmOGU5OGE2OGRmYjZkMDAzNDBhZjc1MTVlNWQ0ZDg4NTQ2
ZC4uZjExNTQxNzhiYjcwMzVkYzgzNGE3NDc4OGVjYTU2MWY1ZjQ0MjUwYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTFN1cmZhY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9F
R0xTdXJmYWNlLmNwcApAQCAtMzAsMTAgKzMwLDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotRUdMV2luZG93VHJhbnNwb3J0U3VyZmFjZTo6RUdMV2luZG93VHJhbnNwb3J0U3VyZmFjZSgp
Ci0gICAgOiBHTFBsYXRmb3JtU3VyZmFjZSgpCitFR0xXaW5kb3dUcmFuc3BvcnRTdXJmYWNlOjpF
R0xXaW5kb3dUcmFuc3BvcnRTdXJmYWNlKFBsYXRmb3JtU3VyZmFjZUF0dHJpYnV0ZXMgYXR0cmli
dXRlcykKKyAgICA6IEdMUGxhdGZvcm1TdXJmYWNlKGF0dHJpYnV0ZXMpCiB7Ci0gICAgbV9jb25m
aWdTZWxlY3RvciA9IGFkb3B0UHRyKG5ldyBFR0xDb25maWdTZWxlY3RvcihOYXRpdmVXcmFwcGVy
OjpuYXRpdmVEaXNwbGF5KCkpKTsKKyAgICBtX2NvbmZpZ1NlbGVjdG9yID0gYWRvcHRQdHIobmV3
IEVHTENvbmZpZ1NlbGVjdG9yKGF0dHJpYnV0ZXMsIE5hdGl2ZVdyYXBwZXI6Om5hdGl2ZURpc3Bs
YXkoKSkpOwogICAgIG1fc2hhcmVkRGlzcGxheSA9IG1fY29uZmlnU2VsZWN0b3ItPmRpc3BsYXko
KTsKIAogICAgIGlmIChtX3NoYXJlZERpc3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpIHsKQEAgLTU1
LDcgKzU1LDcgQEAgRUdMV2luZG93VHJhbnNwb3J0U3VyZmFjZTo6RUdMV2luZG93VHJhbnNwb3J0
U3VyZmFjZSgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBOYXRpdmVXcmFwcGVyOjpj
cmVhdGVPZmZTY3JlZW5XaW5kb3coJm1fYnVmZmVySGFuZGxlLCB2aXN1YWxJZCk7CisgICAgTmF0
aXZlV3JhcHBlcjo6Y3JlYXRlT2ZmU2NyZWVuV2luZG93KCZtX2J1ZmZlckhhbmRsZSwgKGF0dHJp
YnV0ZXMgJiBHTFBsYXRmb3JtU3VyZmFjZTo6U3VwcG9ydEFscGhhKSwgdmlzdWFsSWQpOwogCiAg
ICAgaWYgKCFtX2J1ZmZlckhhbmRsZSkgewogICAgICAgICBkZXN0cm95KCk7CkBAIC03MCw2ICs3
MCwxMSBAQCBFR0xXaW5kb3dUcmFuc3BvcnRTdXJmYWNlOjpFR0xXaW5kb3dUcmFuc3BvcnRTdXJm
YWNlKCkKICAgICB9CiB9CiAKK0dMUGxhdGZvcm1TdXJmYWNlOjpQbGF0Zm9ybVN1cmZhY2VBdHRy
aWJ1dGVzIEVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2U6OmF0dHJpYnV0ZXMoKSBjb25zdAorewor
ICAgIHJldHVybiBtX2NvbmZpZ1NlbGVjdG9yLT5hdHRyaWJ1dGVzKCk7Cit9CisKIEVHTFdpbmRv
d1RyYW5zcG9ydFN1cmZhY2U6On5FR0xXaW5kb3dUcmFuc3BvcnRTdXJmYWNlKCkKIHsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9F
R0xTdXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9l
Z2wvRUdMU3VyZmFjZS5oCmluZGV4IDJlYTcwNDIwOTk5Y2JhMTEzMGE4MzZmN2FhYjM5M2Q1NDcw
M2M1ODQuLjkzNjM2MWUwMDU3MzViMmNhMjQyNjBmNDIyYjEzZjRhYTM4NGRkMjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xTdXJm
YWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWds
L0VHTFN1cmZhY2UuaApAQCAtNDMsMTIgKzQzLDEzIEBAIHR5cGVkZWYgWDExSGVscGVyIE5hdGl2
ZVdyYXBwZXI7CiBjbGFzcyBFR0xXaW5kb3dUcmFuc3BvcnRTdXJmYWNlIDogcHVibGljIEdMUGxh
dGZvcm1TdXJmYWNlIHsKIAogcHVibGljOgotICAgIEVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2Uo
KTsKKyAgICBFR0xXaW5kb3dUcmFuc3BvcnRTdXJmYWNlKFBsYXRmb3JtU3VyZmFjZUF0dHJpYnV0
ZXMpOwogICAgIHZpcnR1YWwgfkVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2UoKTsKICAgICB2aXJ0
dWFsIFBsYXRmb3JtU3VyZmFjZUNvbmZpZyBjb25maWd1cmF0aW9uKCkgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCB2b2lkIHNldEdlb21ldHJ5KGNvbnN0IEludFJlY3QmIG5ld1JlY3QpIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgdm9pZCBzd2FwQnVmZmVycygpIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
dm9pZCBkZXN0cm95KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBQbGF0Zm9ybVN1cmZhY2VBdHRy
aWJ1dGVzIGF0dHJpYnV0ZXMoKSBjb25zdCBPVkVSUklERTsKIAogcHJpdmF0ZToKICAgICB2b2lk
IGZyZWVFR0xSZXNvdXJjZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhDb25maWdTZWxlY3Rvci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbmZpZ1NlbGVjdG9yLmgKaW5k
ZXggYzEzYzI2YzE1ZGMzYmUxMjAyMmY5YjliNjk2NTRiMDNhYWVjNTNkNi4uNTRmZWRlNDVmNGQy
NjUwMTY5MmFjNjk3ODNlM2FlMjY2NTA3ZDU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbmZpZ1NlbGVjdG9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbmZpZ1Nl
bGVjdG9yLmgKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIlgxMUhlbHBlci5oIgogI2lu
Y2x1ZGUgPG9wZW5nbC9HTERlZnMuaD4KKyNpbmNsdWRlIDxvcGVuZ2wvR0xQbGF0Zm9ybVN1cmZh
Y2UuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MywxMyArNDQsMjYgQEAgc3RhdGlj
IGludCBjbGllbnRBdHRyaWJ1dGVzW10gPSB7CiAgICAgMAogfTsKIAorc3RhdGljIGludCBnbHhT
dXJmYWNlQXR0cmlidXRlc1tdID0geworICAgIEdMWF9MRVZFTCwgMCwKKyAgICBHTFhfRFJBV0FC
TEVfVFlQRSwgR0xYX1BJWE1BUF9CSVQsCisgICAgR0xYX1JFTkRFUl9UWVBFLCAgIDAsCisgICAg
R0xYX1JFRF9TSVpFLCAgICAgIDEsCisgICAgR0xYX0dSRUVOX1NJWkUsICAgIDEsCisgICAgR0xY
X0JMVUVfU0laRSwgICAgIDEsCisgICAgR0xYX0FMUEhBX1NJWkUsICAgIDAsCisgICAgR0xYX0RP
VUJMRUJVRkZFUiwgIEdMX0ZBTFNFLAorICAgIE5vbmUKK307CisKIGNsYXNzIEdMWENvbmZpZ1Nl
bGVjdG9yIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShHTFhDb25maWdTZWxlY3Rvcik7CiAK
IHB1YmxpYzoKLSAgICBHTFhDb25maWdTZWxlY3RvcigpCisgICAgR0xYQ29uZmlnU2VsZWN0b3Io
R0xQbGF0Zm9ybVN1cmZhY2U6OlBsYXRmb3JtU3VyZmFjZUF0dHJpYnV0ZXMgYXR0ciA9IEdMUGxh
dGZvcm1TdXJmYWNlOjpEZWZhdWx0QXR0cmlidXRlcykKICAgICAgICAgOiBtX3N1cmZhY2VDb250
ZXh0RkJDb25maWcoMCkKICAgICAgICAgLCBtX3BpeG1hcENvbnRleHRGQkNvbmZpZygwKQorICAg
ICAgICAsIG1fYXR0cmlidXRlcyhhdHRyKQogICAgIHsKICAgICB9CiAKQEAgLTY1LDE5ICs3OSw4
IEBAIHB1YmxpYzoKICAgICBHTFhGQkNvbmZpZyBwaXhtYXBDb250ZXh0Q29uZmlnKCkKICAgICB7
CiAgICAgICAgIGlmICghbV9waXhtYXBDb250ZXh0RkJDb25maWcpIHsKLSAgICAgICAgICAgIHN0
YXRpYyBjb25zdCBpbnQgYXR0cmlidXRlc1tdID0gewotICAgICAgICAgICAgICAgIEdMWF9MRVZF
TCwgMCwKLSAgICAgICAgICAgICAgICBHTFhfRFJBV0FCTEVfVFlQRSwgR0xYX1BJWE1BUF9CSVQs
Ci0gICAgICAgICAgICAgICAgR0xYX1JFTkRFUl9UWVBFLCAgIEdMWF9SR0JBX0JJVCwKLSAgICAg
ICAgICAgICAgICBHTFhfUkVEX1NJWkUsICAgICAgMSwKLSAgICAgICAgICAgICAgICBHTFhfR1JF
RU5fU0laRSwgICAgMSwKLSAgICAgICAgICAgICAgICBHTFhfQkxVRV9TSVpFLCAgICAgMSwKLSAg
ICAgICAgICAgICAgICBHTFhfQUxQSEFfU0laRSwgICAgMSwKLSAgICAgICAgICAgICAgICBHTFhf
RE9VQkxFQlVGRkVSLCAgR0xfRkFMU0UsCi0gICAgICAgICAgICAgICAgTm9uZQotICAgICAgICAg
ICAgfTsKLQotICAgICAgICAgICAgbV9waXhtYXBDb250ZXh0RkJDb25maWcgPSBmaW5kTWF0Y2hp
bmdDb25maWcoYXR0cmlidXRlcyk7CisgICAgICAgICAgICB2YWxpZGF0ZUF0dHJpYnV0ZXMoKTsK
KyAgICAgICAgICAgIG1fcGl4bWFwQ29udGV4dEZCQ29uZmlnID0gZmluZE1hdGNoaW5nQ29uZmln
KGdseFN1cmZhY2VBdHRyaWJ1dGVzLCBtX2F0dHJpYnV0ZXMgJiBHTFBsYXRmb3JtU3VyZmFjZTo6
U3VwcG9ydEFscGhhID8gMzIgOiAyNCk7CiAgICAgICAgIH0KIAogICAgICAgICByZXR1cm4gbV9w
aXhtYXBDb250ZXh0RkJDb25maWc7CkBAIC04Niw4ICs4OSwxNCBAQCBwdWJsaWM6CiAKICAgICBH
TFhGQkNvbmZpZyBzdXJmYWNlQ29udGV4dENvbmZpZygpCiAgICAgewotICAgICAgICBpZiAoIW1f
c3VyZmFjZUNvbnRleHRGQkNvbmZpZykKLSAgICAgICAgICAgIGNyZWF0ZVN1cmZhY2VDb25maWco
KTsKKyAgICAgICAgaWYgKCFtX3N1cmZhY2VDb250ZXh0RkJDb25maWcpIHsKKyAgICAgICAgICAg
IGdseFN1cmZhY2VBdHRyaWJ1dGVzWzNdID0gR0xYX1dJTkRPV19CSVQ7CisgICAgICAgICAgICBn
bHhTdXJmYWNlQXR0cmlidXRlc1s3XSA9IDg7CisgICAgICAgICAgICBnbHhTdXJmYWNlQXR0cmli
dXRlc1s5XSA9IDg7CisgICAgICAgICAgICBnbHhTdXJmYWNlQXR0cmlidXRlc1sxMV0gPSA4Owor
ICAgICAgICAgICAgdmFsaWRhdGVBdHRyaWJ1dGVzKCk7CisgICAgICAgICAgICBtX3N1cmZhY2VD
b250ZXh0RkJDb25maWcgPSBmaW5kTWF0Y2hpbmdDb25maWcoZ2x4U3VyZmFjZUF0dHJpYnV0ZXMs
IG1fYXR0cmlidXRlcyAmIEdMUGxhdGZvcm1TdXJmYWNlOjpTdXBwb3J0QWxwaGEgPyAzMiA6IDI0
KTsKKyAgICAgICAgfQogCiAgICAgICAgIHJldHVybiBtX3N1cmZhY2VDb250ZXh0RkJDb25maWc7
CiAgICAgfQpAQCAtOTYsOCArMTA1LDEzIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIGNsaWVu
dEF0dHJpYnV0ZXNbM10gPSBzdGF0aWNfY2FzdDxpbnQ+KGlkKTsKICAgICAgICAgY2xpZW50QXR0
cmlidXRlc1s4XSA9IGRlcHRoID09IDMyID8gR0xYX0JJTkRfVE9fVEVYVFVSRV9SR0JBX0VYVCA6
IEdMWF9CSU5EX1RPX1RFWFRVUkVfUkdCX0VYVDsKKyAgICAgICAgLy8gUHJlZmVyIHRvIG1hdGNo
IHdpdGggVmlzdWFsIElkLgorICAgICAgICBHTFhGQkNvbmZpZyBjb25maWcgPSBmaW5kTWF0Y2hp
bmdDb25maWdXaXRoVmlzdWFsSWQoY2xpZW50QXR0cmlidXRlcywgZGVwdGgsIGlkKTsKIAotICAg
ICAgICByZXR1cm4gZmluZE1hdGNoaW5nQ29uZmlnKGNsaWVudEF0dHJpYnV0ZXMsIGRlcHRoLCBp
ZCk7CisgICAgICAgIGlmICghY29uZmlnKQorICAgICAgICAgICAgY29uZmlnID0gZmluZE1hdGNo
aW5nQ29uZmlnKGNsaWVudEF0dHJpYnV0ZXMsIGRlcHRoKTsKKworICAgICAgICByZXR1cm4gY29u
ZmlnOwogICAgIH0KIAogICAgIHZvaWQgcmVzZXQoKQpAQCAtMTA2LDI3ICsxMjAsMjQgQEAgcHVi
bGljOgogICAgICAgICBtX3BpeG1hcENvbnRleHRGQkNvbmZpZyA9IDA7CiAgICAgfQogCisgICAg
R0xQbGF0Zm9ybVN1cmZhY2U6OlBsYXRmb3JtU3VyZmFjZUF0dHJpYnV0ZXMgYXR0cmlidXRlcygp
IGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9hdHRyaWJ1dGVzOworICAgIH0KKwogcHJp
dmF0ZToKLSAgICB2b2lkIGNyZWF0ZVN1cmZhY2VDb25maWcoKQorICAgIHZvaWQgdmFsaWRhdGVB
dHRyaWJ1dGVzKCkKICAgICB7Ci0gICAgICAgIHN0YXRpYyBpbnQgYXR0cmlidXRlc1tdID0gewot
ICAgICAgICAgICAgR0xYX0xFVkVMLCAwLAotICAgICAgICAgICAgR0xYX0RSQVdBQkxFX1RZUEUs
IEdMWF9XSU5ET1dfQklULAotICAgICAgICAgICAgR0xYX1JFTkRFUl9UWVBFLCAgIEdMWF9SR0JB
X0JJVCwKLSAgICAgICAgICAgIEdMWF9SRURfU0laRSwgICAgICAxLAotICAgICAgICAgICAgR0xY
X0dSRUVOX1NJWkUsICAgIDEsCi0gICAgICAgICAgICBHTFhfQkxVRV9TSVpFLCAgICAgMSwKLSAg
ICAgICAgICAgIEdMWF9BTFBIQV9TSVpFLCAgICAxLAotICAgICAgICAgICAgR0xYX0RFUFRIX1NJ
WkUsICAgIDEsCi0gICAgICAgICAgICBHTFhfWF9WSVNVQUxfVFlQRSwgR0xYX1RSVUVfQ09MT1Is
Ci0gICAgICAgICAgICBHTFhfRE9VQkxFQlVGRkVSLCAgVHJ1ZSwKLSAgICAgICAgICAgIE5vbmUK
LSAgICAgICAgfTsKLQotICAgICAgICBtX3N1cmZhY2VDb250ZXh0RkJDb25maWcgPSBmaW5kTWF0
Y2hpbmdDb25maWcoYXR0cmlidXRlcyk7CisgICAgICAgIGlmIChtX2F0dHJpYnV0ZXMgJiBHTFBs
YXRmb3JtU3VyZmFjZTo6U3VwcG9ydEFscGhhKSB7CisgICAgICAgICAgICBnbHhTdXJmYWNlQXR0
cmlidXRlc1sxM10gPSA4OworICAgICAgICAgICAgZ2x4U3VyZmFjZUF0dHJpYnV0ZXNbNV0gPSBH
TFhfUkdCQV9CSVQ7CisgICAgICAgIH0KKworICAgICAgICBpZiAobV9hdHRyaWJ1dGVzICYgR0xQ
bGF0Zm9ybVN1cmZhY2U6OkRvdWJsZUJ1ZmZlcikKKyAgICAgICAgICAgIGdseFN1cmZhY2VBdHRy
aWJ1dGVzWzE1XSA9IEdMX1RSVUU7CiAgICAgfQogCi0gICAgR0xYRkJDb25maWcgZmluZE1hdGNo
aW5nQ29uZmlnKGNvbnN0IGludCBhdHRyaWJ1dGVzW10sIGludCBkZXB0aCA9IDMyLCBWaXN1YWxJ
RCBpZCA9IDApCisgICAgR0xYRkJDb25maWcgZmluZE1hdGNoaW5nQ29uZmlnKGNvbnN0IGludCBh
dHRyaWJ1dGVzW10sIGludCBkZXB0aCA9IDMyKQogICAgIHsKICAgICAgICAgaW50IG51bUF2YWls
YWJsZUNvbmZpZ3M7CiAgICAgICAgIE93blB0clgxMTxHTFhGQkNvbmZpZz4gdGVtcChnbFhDaG9v
c2VGQkNvbmZpZyhYMTFIZWxwZXI6Om5hdGl2ZURpc3BsYXkoKSwgRGVmYXVsdFNjcmVlbihYMTFI
ZWxwZXI6Om5hdGl2ZURpc3BsYXkoKSksIGF0dHJpYnV0ZXMsICZudW1BdmFpbGFibGVDb25maWdz
KSk7CkBAIC0xNDAsMTQgKzE1MSwxNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgaWYgKCFzY29w
ZWRWaXN1YWxJbmZvLmdldCgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAg
ICAgICBpZiAoaWQgJiYgc2NvcGVkVmlzdWFsSW5mby0+ZGVwdGggPT0gZGVwdGggJiYgc2NvcGVk
VmlzdWFsSW5mby0+dmlzdWFsaWQgPT0gaWQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRlbXBb
aV07Ci0KICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKICAgICAgICAgICAgIGlmIChYMTFIZWxw
ZXI6OmlzWFJlbmRlckV4dGVuc2lvblN1cHBvcnRlZCgpKSB7CiAgICAgICAgICAgICAgICAgWFJl
bmRlclBpY3RGb3JtYXQqIGZvcm1hdCA9IFhSZW5kZXJGaW5kVmlzdWFsRm9ybWF0KFgxMUhlbHBl
cjo6bmF0aXZlRGlzcGxheSgpLCBzY29wZWRWaXN1YWxJbmZvLT52aXN1YWwpOwotICAgICAgICAg
ICAgICAgIGlmIChmb3JtYXQgJiYgZGVwdGggPT0gMzIgJiYgZm9ybWF0LT5kaXJlY3QuYWxwaGFN
YXNrID4gMCkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRlbXBbaV07CisKKyAgICAgICAg
ICAgICAgICBpZiAoZm9ybWF0KSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX2F0dHJpYnV0
ZXMgJiBHTFBsYXRmb3JtU3VyZmFjZTo6U3VwcG9ydEFscGhhKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoc2NvcGVkVmlzdWFsSW5mby0+ZGVwdGggPT0gZGVwdGggJiYgZm9ybWF0LT5k
aXJlY3QuYWxwaGFNYXNrID4gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
dGVtcFtpXTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghZm9ybWF0LT5kaXJlY3Qu
YWxwaGFNYXNrKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRlbXBbaV07CisgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogI2VuZGlmCiAgICAgICAgICAgICBpZiAoc2Nv
cGVkVmlzdWFsSW5mby0+ZGVwdGggPT0gZGVwdGgpCkBAIC0xNTUsMTEgKzE2OSwzOCBAQCBwcml2
YXRlOgogICAgICAgICB9CiAKICAgICAgICAgLy8gRGlkIG5vdCBmaW5kIGFueSB2aXN1YWwgc3Vw
cG9ydGluZyBhbHBoYSwgc2VsZWN0IHRoZSBmaXJzdCBhdmFpbGFibGUgY29uZmlnLgorICAgICAg
ICBzY29wZWRWaXN1YWxJbmZvID0gZ2xYR2V0VmlzdWFsRnJvbUZCQ29uZmlnKFgxMUhlbHBlcjo6
bmF0aXZlRGlzcGxheSgpLCB0ZW1wWzBdKTsKKworICAgICAgICBpZiAoKG1fYXR0cmlidXRlcyAm
IEdMUGxhdGZvcm1TdXJmYWNlOjpTdXBwb3J0QWxwaGEpICYmIChzY29wZWRWaXN1YWxJbmZvLT5k
ZXB0aCAhPSAzMikpCisgICAgICAgICAgICBtX2F0dHJpYnV0ZXMgJj0gfkdMUGxhdGZvcm1TdXJm
YWNlOjpTdXBwb3J0QWxwaGE7CisKICAgICAgICAgcmV0dXJuIHRlbXBbMF07CiAgICAgfQogCisg
ICAgR0xYRkJDb25maWcgZmluZE1hdGNoaW5nQ29uZmlnV2l0aFZpc3VhbElkKGNvbnN0IGludCBh
dHRyaWJ1dGVzW10sIGludCBkZXB0aCwgVmlzdWFsSUQgaWQpCisgICAgeworICAgICAgICBpbnQg
bnVtQXZhaWxhYmxlQ29uZmlnczsKKyAgICAgICAgT3duUHRyWDExPEdMWEZCQ29uZmlnPiB0ZW1w
KGdsWENob29zZUZCQ29uZmlnKFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxheSgpLCBEZWZhdWx0U2Ny
ZWVuKFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxheSgpKSwgYXR0cmlidXRlcywgJm51bUF2YWlsYWJs
ZUNvbmZpZ3MpKTsKKworICAgICAgICBpZiAoIW51bUF2YWlsYWJsZUNvbmZpZ3MgfHwgIXRlbXAu
Z2V0KCkpCisgICAgICAgICAgICByZXR1cm4gMDsKKworICAgICAgICBPd25QdHJYMTE8WFZpc3Vh
bEluZm8+IHNjb3BlZFZpc3VhbEluZm87CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVt
QXZhaWxhYmxlQ29uZmlnczsgKytpKSB7CisgICAgICAgICAgICBzY29wZWRWaXN1YWxJbmZvID0g
Z2xYR2V0VmlzdWFsRnJvbUZCQ29uZmlnKFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxheSgpLCB0ZW1w
W2ldKTsKKyAgICAgICAgICAgIGlmICghc2NvcGVkVmlzdWFsSW5mby5nZXQoKSkKKyAgICAgICAg
ICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgaWYgKGlkICYmIHNjb3BlZFZpc3VhbElu
Zm8tPmRlcHRoID09IGRlcHRoICYmIHNjb3BlZFZpc3VhbEluZm8tPnZpc3VhbGlkID09IGlkKQor
ICAgICAgICAgICAgICAgIHJldHVybiB0ZW1wW2ldOworICAgICAgICB9CisKKyAgICAgICAgcmV0
dXJuIDA7CisgICAgfQorCiAgICAgR0xYRkJDb25maWcgbV9zdXJmYWNlQ29udGV4dEZCQ29uZmln
OwogICAgIEdMWEZCQ29uZmlnIG1fcGl4bWFwQ29udGV4dEZCQ29uZmlnOworICAgIEdMUGxhdGZv
cm1TdXJmYWNlOjpQbGF0Zm9ybVN1cmZhY2VBdHRyaWJ1dGVzIG1fYXR0cmlidXRlcyA6IDM7CiB9
OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJm
YWNlcy9nbHgvR0xYQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9zdXJmYWNlcy9nbHgvR0xYQ29udGV4dC5jcHAKaW5kZXggMTlkNGI3YjY3NWRhZTA1YWQ1Mjk5
YTk1MmFhMzViZTJhOWMwMjg2Yy4uMTBkNDRmODgyZWNhYjg5MGYxNTc2OTgwOWEwOTBkNDNmMDM4
N2U3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFj
ZXMvZ2x4L0dMWENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3N1cmZhY2VzL2dseC9HTFhDb250ZXh0LmNwcApAQCAtODQsOCArODQsOSBAQCBib29sIEdM
WE9mZlNjcmVlbkNvbnRleHQ6OmluaXRpYWxpemUoR0xQbGF0Zm9ybVN1cmZhY2UqIHN1cmZhY2Us
IFBsYXRmb3JtQ29udGV4dAogICAgICAgICAgICAgICAgIGdsWERlc3Ryb3lDb250ZXh0KHgxMURp
c3BsYXksIG1fY29udGV4dEhhbmRsZSk7CiAgICAgICAgIH0KIAorICAgICAgICBib29sIHN1cHBv
cnRzQWxwaGEgPSBzdXJmYWNlLT5hdHRyaWJ1dGVzKCkgJiBHTFBsYXRmb3JtU3VyZmFjZTo6U3Vw
cG9ydEFscGhhOwogICAgICAgICBpZiAoIW1fY29udGV4dEhhbmRsZSkKLSAgICAgICAgICAgIG1f
Y29udGV4dEhhbmRsZSA9IGdsWENyZWF0ZU5ld0NvbnRleHQoeDExRGlzcGxheSwgY29uZmlnLCBH
TFhfUkdCQV9UWVBFLCBzaGFyZWRDb250ZXh0LCB0cnVlKTsKKyAgICAgICAgICAgIG1fY29udGV4
dEhhbmRsZSA9IGdsWENyZWF0ZU5ld0NvbnRleHQoeDExRGlzcGxheSwgY29uZmlnLCBzdXBwb3J0
c0FscGhhID8gR0xYX1JHQkFfVFlQRSA6IDAsIHNoYXJlZENvbnRleHQsIHRydWUpOwogCiAgICAg
ICAgIGlmIChtX2NvbnRleHRIYW5kbGUpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhT
dXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2ds
eC9HTFhTdXJmYWNlLmNwcAppbmRleCBlYmQzMGYzZTBmMTAxMmJiOTk1MTNkMWVjZGVhYzRhMzUw
N2I5NWFkLi4zY2Q3Mjk0YTU0ZDQ4ZDMzYmE4ODUyNWMzODA5ZjhhYjYyM2JlMjk1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3Vy
ZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
Z2x4L0dMWFN1cmZhY2UuY3BwCkBAIC0zMiwxMSArMzIsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBzdGF0aWMgY29uc3QgaW50IHBidWZmZXJBdHRyaWJ1dGVzW10gPSB7IEdMWF9QQlVGRkVS
X1dJRFRILCAxLCBHTFhfUEJVRkZFUl9IRUlHSFQsIDEsIDAgfTsKIAotR0xYVHJhbnNwb3J0U3Vy
ZmFjZTo6R0xYVHJhbnNwb3J0U3VyZmFjZSgpCi0gICAgOiBHTFBsYXRmb3JtU3VyZmFjZSgpCitH
TFhUcmFuc3BvcnRTdXJmYWNlOjpHTFhUcmFuc3BvcnRTdXJmYWNlKFBsYXRmb3JtU3VyZmFjZUF0
dHJpYnV0ZXMgc3VyZmFjZUF0dHJpYnV0ZXMpCisgICAgOiBHTFBsYXRmb3JtU3VyZmFjZShzdXJm
YWNlQXR0cmlidXRlcykKIHsKICAgICBtX3NoYXJlZERpc3BsYXkgPSBYMTFIZWxwZXI6Om5hdGl2
ZURpc3BsYXkoKTsKLSAgICBtX2NvbmZpZ1NlbGVjdG9yID0gYWRvcHRQdHIobmV3IEdMWENvbmZp
Z1NlbGVjdG9yKCkpOworICAgIEdMUGxhdGZvcm1TdXJmYWNlOjpQbGF0Zm9ybVN1cmZhY2VBdHRy
aWJ1dGVzIHNoYXJlZFN1cmZhY2VBdHRyaWJ1dGVzID0gc3VyZmFjZUF0dHJpYnV0ZXMgfCBHTFBs
YXRmb3JtU3VyZmFjZTo6RG91YmxlQnVmZmVyOworICAgIG1fY29uZmlnU2VsZWN0b3IgPSBhZG9w
dFB0cihuZXcgR0xYQ29uZmlnU2VsZWN0b3Ioc2hhcmVkU3VyZmFjZUF0dHJpYnV0ZXMpKTsKICAg
ICBPd25QdHJYMTE8WFZpc3VhbEluZm8+IHZpc0luZm8obV9jb25maWdTZWxlY3Rvci0+dmlzdWFs
SW5mbyhtX2NvbmZpZ1NlbGVjdG9yLT5zdXJmYWNlQ29udGV4dENvbmZpZygpKSk7CiAKICAgICBp
ZiAoIXZpc0luZm8uZ2V0KCkpIHsKQEAgLTkyLDggKzkzLDEzIEBAIHZvaWQgR0xYVHJhbnNwb3J0
U3VyZmFjZTo6ZGVzdHJveSgpCiAgICAgbV9jb25maWdTZWxlY3RvciA9IG51bGxwdHI7CiB9CiAK
LUdMWE9mZlNjcmVlblN1cmZhY2U6OkdMWE9mZlNjcmVlblN1cmZhY2UoKQotICAgIDogR0xQbGF0
Zm9ybVN1cmZhY2UoKQorR0xQbGF0Zm9ybVN1cmZhY2U6OlBsYXRmb3JtU3VyZmFjZUF0dHJpYnV0
ZXMgR0xYVHJhbnNwb3J0U3VyZmFjZTo6YXR0cmlidXRlcygpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fY29uZmlnU2VsZWN0b3ItPmF0dHJpYnV0ZXMoKTsKK30KKworR0xYT2ZmU2NyZWVuU3VyZmFj
ZTo6R0xYT2ZmU2NyZWVuU3VyZmFjZShQbGF0Zm9ybVN1cmZhY2VBdHRyaWJ1dGVzIHN1cmZhY2VB
dHRyaWJ1dGVzKQorICAgIDogR0xQbGF0Zm9ybVN1cmZhY2Uoc3VyZmFjZUF0dHJpYnV0ZXMpCiAg
ICAgLCBtX3BpeG1hcCgwKQogICAgICwgbV9nbHhQaXhtYXAoMCkKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFj
ZS5oCmluZGV4IDQzMGZlNTE2NjE2ZGVjNWRkMDhkMzBkNTJkNzdkZTcxYjExZTNhYzQuLjVlNDZi
OWViMjExYjJjMGFjNGE2MzExYTQxMzM4YTM4MzkxZjQ3OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2Uu
aApAQCAtMzcsMTEgKzM3LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEdMWFRyYW5z
cG9ydFN1cmZhY2UgOiBwdWJsaWMgR0xQbGF0Zm9ybVN1cmZhY2UgewogCiBwdWJsaWM6Ci0gICAg
R0xYVHJhbnNwb3J0U3VyZmFjZSgpOworICAgIEdMWFRyYW5zcG9ydFN1cmZhY2UoUGxhdGZvcm1T
dXJmYWNlQXR0cmlidXRlcyk7CiAgICAgdmlydHVhbCB+R0xYVHJhbnNwb3J0U3VyZmFjZSgpOwog
ICAgIHZpcnR1YWwgUGxhdGZvcm1TdXJmYWNlQ29uZmlnIGNvbmZpZ3VyYXRpb24oKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgc3dhcEJ1ZmZlcnMoKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0R2VvbWV0cnkoY29uc3QgSW50UmVjdCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
UGxhdGZvcm1TdXJmYWNlQXR0cmlidXRlcyBhdHRyaWJ1dGVzKCkgY29uc3QgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKSBPVkVSUklERTsKIAogcHJpdmF0ZToKQEAgLTUyLDcg
KzUzLDcgQEAgcHJpdmF0ZToKIGNsYXNzIEdMWE9mZlNjcmVlblN1cmZhY2UgOiBwdWJsaWMgR0xQ
bGF0Zm9ybVN1cmZhY2UgewogCiBwdWJsaWM6Ci0gICAgR0xYT2ZmU2NyZWVuU3VyZmFjZSgpOwor
ICAgIEdMWE9mZlNjcmVlblN1cmZhY2UoUGxhdGZvcm1TdXJmYWNlQXR0cmlidXRlcyk7CiAgICAg
dmlydHVhbCB+R0xYT2ZmU2NyZWVuU3VyZmFjZSgpOwogICAgIHZpcnR1YWwgUGxhdGZvcm1TdXJm
YWNlQ29uZmlnIGNvbmZpZ3VyYXRpb24oKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGVz
dHJveSgpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc3VyZmFjZXMvZ2x4L0dyYXBoaWNzU3VyZmFjZUdMWC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR3JhcGhpY3NTdXJmYWNlR0xYLmNwcApp
bmRleCA1ZTE4YTU5Yjk2NDc0OGU3MjE4MTQxZmYxYmFhZGM5Njk5MzAzYThmLi5mMWVjMGI1ZjU0
NThmOWU5YTM2NzBiNDU4ZmI1ZTFkYTBhODYzOGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR3JhcGhpY3NTdXJmYWNlR0xYLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR3JhcGhp
Y3NTdXJmYWNlR0xYLmNwcApAQCAtODgsNyArODgsOCBAQCBzdHJ1Y3QgR3JhcGhpY3NTdXJmYWNl
UHJpdmF0ZSB7CiAgICAgICAgIFVOVVNFRF9QQVJBTShzaGFyZUNvbnRleHQpOwogI2VuZGlmCiAK
LSAgICAgICAgbV9jb25maWdTZWxlY3RvciA9IGFkb3B0UHRyKG5ldyBHTFhDb25maWdTZWxlY3Rv
cigpKTsKKyAgICAgICAgR0xQbGF0Zm9ybVN1cmZhY2U6OlBsYXRmb3JtU3VyZmFjZUF0dHJpYnV0
ZXMgc2hhcmVkU3VyZmFjZUF0dHJpYnV0ZXMgPSBHTFBsYXRmb3JtU3VyZmFjZTo6RG91YmxlQnVm
ZmVyOworICAgICAgICBtX2NvbmZpZ1NlbGVjdG9yID0gYWRvcHRQdHIobmV3IEdMWENvbmZpZ1Nl
bGVjdG9yKHNoYXJlZFN1cmZhY2VBdHRyaWJ1dGVzKSk7CiAKICAgICAgICAgaWYgKCFtX2NvbmZp
Z1NlbGVjdG9yLT5zdXJmYWNlQ29udGV4dENvbmZpZygpKSB7CiAgICAgICAgICAgICBjbGVhcigp
OwpAQCAtMTEwLDcgKzExMSw2IEBAIHN0cnVjdCBHcmFwaGljc1N1cmZhY2VQcml2YXRlIHsKICAg
ICAgICAgLCBtX2lzUmVjZWl2ZXIodHJ1ZSkKICAgICAgICAgLCBtX3RleHR1cmUoMCkKICAgICB7
Ci0gICAgICAgIG1fY29uZmlnU2VsZWN0b3IgPSBhZG9wdFB0cihuZXcgR0xYQ29uZmlnU2VsZWN0
b3IoKSk7CiAgICAgfQogCiAgICAgfkdyYXBoaWNzU3VyZmFjZVByaXZhdGUoKQpAQCAtMTQ0LDkg
KzE0NCw2IEBAIHN0cnVjdCBHcmFwaGljc1N1cmZhY2VQcml2YXRlIHsKIAogICAgIHZvaWQgY3Jl
YXRlUGl4bWFwKHVpbnQzMl90IHdpbklkKQogICAgIHsKLSAgICAgICAgaWYgKCFtX2NvbmZpZ1Nl
bGVjdG9yKQotICAgICAgICAgICAgcmV0dXJuOwotCiAgICAgICAgIFhXaW5kb3dBdHRyaWJ1dGVz
IGF0dHI7CiAgICAgICAgIGlmICghWEdldFdpbmRvd0F0dHJpYnV0ZXMoZGlzcGxheSgpLCB3aW5J
ZCwgJmF0dHIpKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTYxLDcgKzE1OCwxNSBAQCBzdHJ1
Y3QgR3JhcGhpY3NTdXJmYWNlUHJpdmF0ZSB7CiAgICAgICAgIFhSZW5kZXJQaWN0Rm9ybWF0KiBm
b3JtYXQgPSBYUmVuZGVyRmluZFZpc3VhbEZvcm1hdChkaXNwbGF5KCksIGF0dHIudmlzdWFsKTsK
ICAgICAgICAgYm9vbCBoYXNBbHBoYSA9IChmb3JtYXQtPnR5cGUgPT0gUGljdFR5cGVEaXJlY3Qg
JiYgZm9ybWF0LT5kaXJlY3QuYWxwaGFNYXNrKTsKICAgICAgICAgbV94UGl4bWFwID0gWENvbXBv
c2l0ZU5hbWVXaW5kb3dQaXhtYXAoZGlzcGxheSgpLCB3aW5JZCk7Ci0gICAgICAgIGdseEF0dHJp
YnV0ZXNbMV0gPSAoZm9ybWF0LT5kZXB0aCA9PSAzMiB8fCBoYXNBbHBoYSkgPyBHTFhfVEVYVFVS
RV9GT1JNQVRfUkdCQV9FWFQgOiBHTFhfVEVYVFVSRV9GT1JNQVRfUkdCX0VYVDsKKyAgICAgICAg
Z2x4QXR0cmlidXRlc1sxXSA9IChmb3JtYXQtPmRlcHRoID09IDMyICYmIGhhc0FscGhhKSA/IEdM
WF9URVhUVVJFX0ZPUk1BVF9SR0JBX0VYVCA6IEdMWF9URVhUVVJFX0ZPUk1BVF9SR0JfRVhUOwor
CisgICAgICAgIEdMUGxhdGZvcm1TdXJmYWNlOjpQbGF0Zm9ybVN1cmZhY2VBdHRyaWJ1dGVzIHNo
YXJlZFN1cmZhY2VBdHRyaWJ1dGVzID0gR0xQbGF0Zm9ybVN1cmZhY2U6OkRlZmF1bHRBdHRyaWJ1
dGVzOworICAgICAgICBpZiAoaGFzQWxwaGEpCisgICAgICAgICAgICBzaGFyZWRTdXJmYWNlQXR0
cmlidXRlcyA9IEdMUGxhdGZvcm1TdXJmYWNlOjpTdXBwb3J0QWxwaGE7CisKKyAgICAgICAgaWYg
KCFtX2NvbmZpZ1NlbGVjdG9yKQorICAgICAgICAgICAgbV9jb25maWdTZWxlY3RvciA9IGFkb3B0
UHRyKG5ldyBHTFhDb25maWdTZWxlY3RvcihzaGFyZWRTdXJmYWNlQXR0cmlidXRlcykpOworCiAg
ICAgICAgIG1fZ2x4UGl4bWFwID0gZ2xYQ3JlYXRlUGl4bWFwKGRpc3BsYXkoKSwgbV9jb25maWdT
ZWxlY3Rvci0+c3VyZmFjZUNsaWVudENvbmZpZyhmb3JtYXQtPmRlcHRoLCBYVmlzdWFsSURGcm9t
VmlzdWFsKGF0dHIudmlzdWFsKSksIG1feFBpeG1hcCwgZ2x4QXR0cmlidXRlcyk7CiAKICAgICAg
ICAgaWYgKCFoYW5kbGVyLmlzVmFsaWRPcGVyYXRpb24oKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9YMTFIZWxwZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L1gxMUhlbHBlci5jcHAK
aW5kZXggMjQ3Mjc0YTQ2YTc1NDg1ZjU5MmQ2NWYwMDE5MjZlNjJhNDQwZThjYy4uYzBhNjRlMGQ1
MWE3NzgwM2U1ZjA0ZjVkMGZlM2VlMjMwOGI4N2JkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L1gxMUhlbHBlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L1gxMUhlbHBlci5jcHAK
QEAgLTIyMiw4ICsyMjIsOSBAQCB2b2lkIFgxMUhlbHBlcjo6Y3JlYXRlT2ZmU2NyZWVuV2luZG93
KHVpbnQzMl90KiBoYW5kbGVJZCwgY29uc3QgWFZpc3VhbEluZm8mIHZpcwogfQogCiAjaWYgVVNF
KEVHTCkKLXZvaWQgWDExSGVscGVyOjpjcmVhdGVPZmZTY3JlZW5XaW5kb3codWludDMyX3QqIGhh
bmRsZUlkLCBjb25zdCBFR0xpbnQgaWQsIGNvbnN0IEludFNpemUmIHNpemUpCit2b2lkIFgxMUhl
bHBlcjo6Y3JlYXRlT2ZmU2NyZWVuV2luZG93KHVpbnQzMl90KiBoYW5kbGVJZCwgY29uc3QgRUdM
aW50IGlkLCBib29sIHN1cHBvcnRzQWxwaGEsIGNvbnN0IEludFNpemUmIHNpemUpCiB7CisjaWYg
VVNFKEdSQVBISUNTX1NVUkZBQ0UpCiAgICAgVmlzdWFsSUQgdmlzdWFsSWQgPSBzdGF0aWNfY2Fz
dDxWaXN1YWxJRD4oaWQpOwogCiAgICAgaWYgKCF2aXN1YWxJZCkKQEAgLTI0MywxMyArMjQ0LDIz
IEBAIHZvaWQgWDExSGVscGVyOjpjcmVhdGVPZmZTY3JlZW5XaW5kb3codWludDMyX3QqIGhhbmRs
ZUlkLCBjb25zdCBFR0xpbnQgaWQsIGNvbnN0CiAKICAgICAgICAgICAgIGlmIChpc1hSZW5kZXJF
eHRlbnNpb25TdXBwb3J0ZWQoKSkgewogICAgICAgICAgICAgICAgIFhSZW5kZXJQaWN0Rm9ybWF0
KiBmb3JtYXQgPSBYUmVuZGVyRmluZFZpc3VhbEZvcm1hdChuYXRpdmVEaXNwbGF5KCksIHRlbXAt
PnZpc3VhbCk7Ci0gICAgICAgICAgICAgICAgaWYgKGZvcm1hdCAmJiBmb3JtYXQtPmRpcmVjdC5h
bHBoYU1hc2sgPiAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZvdW5kVmlzdWFsID0gdGVtcDsK
LSAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICBpZiAoZm9ybWF0
KSB7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN1cHBvcnRzQWxwaGEpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmICh0ZW1wLT5kZXB0aCA9PSAzMiAmJiBmb3JtYXQtPmRpcmVjdC5h
bHBoYU1hc2sgPiAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvdW5kVmlzdWFsID0g
dGVtcDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghZm9ybWF0LT5kaXJlY3QuYWxw
aGFNYXNrKQorICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRWaXN1YWwgPSB0ZW1wOwogICAg
ICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChmb3VuZFZpc3VhbCkKKyAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmICh0
ZW1wLT5kZXB0aCA9PSAzMikgeworICAgICAgICAgICAgaW50IG1hdGNoaW5nZGVwdGggPSBzdXBw
b3J0c0FscGhhID8gMzIgOiAyNDsKKworICAgICAgICAgICAgaWYgKHRlbXAtPmRlcHRoID09IG1h
dGNoaW5nZGVwdGgpIHsKICAgICAgICAgICAgICAgICBmb3VuZFZpc3VhbCA9IHRlbXA7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC0yNTgsNiArMjY5LDExIEBAIHZv
aWQgWDExSGVscGVyOjpjcmVhdGVPZmZTY3JlZW5XaW5kb3codWludDMyX3QqIGhhbmRsZUlkLCBj
b25zdCBFR0xpbnQgaWQsIGNvbnN0CiAgICAgICAgIGlmIChmb3VuZFZpc3VhbCkKICAgICAgICAg
ICAgIGNyZWF0ZU9mZlNjcmVlbldpbmRvdyhoYW5kbGVJZCwgKmZvdW5kVmlzdWFsLCBzaXplKTsK
ICAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShoYW5kbGVJZCk7CisgICAgVU5VU0VEX1BB
UkFNKGlkKTsKKyAgICBVTlVTRURfUEFSQU0oc2l6ZSk7CisjZW5kaWYKIH0KICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgv
WDExSGVscGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9n
bHgvWDExSGVscGVyLmgKaW5kZXggNjhjNzVkZDc4MDAyNGM5MmNkNjU0OGJkNDI3MTE3ZDBkMzU0
MjJlNS4uN2QzZWJhZTNlMjNlZDk2ZTdmMDMyZDBhMjA2MGU1YTkxODliNjI5YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L1gxMUhlbHBl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9Y
MTFIZWxwZXIuaApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgY3Jl
YXRlUGl4bWFwKFBpeG1hcCosIGNvbnN0IFhWaXN1YWxJbmZvJiwgY29uc3QgSW50U2l6ZSYgPSBJ
bnRTaXplKDEsIDEpKTsKICAgICBzdGF0aWMgdm9pZCBjcmVhdGVPZmZTY3JlZW5XaW5kb3codWlu
dDMyX3QqLCBjb25zdCBYVmlzdWFsSW5mbyYsIGNvbnN0IEludFNpemUmID0gSW50U2l6ZSgxLCAx
KSk7CiAjaWYgVVNFKEVHTCkKLSAgICBzdGF0aWMgdm9pZCBjcmVhdGVPZmZTY3JlZW5XaW5kb3co
dWludDMyX3QqLCBjb25zdCBFR0xpbnQsIGNvbnN0IEludFNpemUmID0gSW50U2l6ZSgxLCAxKSk7
CisgICAgc3RhdGljIHZvaWQgY3JlYXRlT2ZmU2NyZWVuV2luZG93KHVpbnQzMl90KiwgY29uc3Qg
RUdMaW50LCBib29sLCBjb25zdCBJbnRTaXplJiA9IEludFNpemUoMSwgMSkpOwogI2VuZGlmCiAg
ICAgc3RhdGljIHZvaWQgZGVzdHJveVdpbmRvdyhjb25zdCB1aW50MzJfdCk7CiAgICAgc3RhdGlj
IHZvaWQgZGVzdHJveVBpeG1hcChjb25zdCB1aW50MzJfdCk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGI2ODEyM2QwN2Vl
N2E5MzQyZjllZjYyZjU3NjFiZWUzMGY1MmM0Ni4uMzFlNjdlYjZiZWI1NTQwMmU3YzVmNjAxYjJm
MzkzMGNjYjhhYmY3NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAyLTIwICBLb25kYXBh
bGx5IEthbHlhbiAgPGthbHlhbi5rb25kYXBhbGx5QGludGVsLmNvbT4KKworICAgICAgICBbV2Vi
R0xdW0VGTF0gU3VwcG9ydCBmb3IgY3JlYXRpbmcgc3VyZmFjZSB3aXRoIGFscGhhIGRpc2FibGVk
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMDY3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5hYmxl
ZCBjb21wb3NpdGluZy93ZWJnbC93ZWJnbC1uby1hbHBoYS5odG1sIGZvciBFZmwgcG9ydC4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRm
b3JtL2VmbC9jb21wb3NpdGluZy93ZWJnbC93ZWJnbC1uby1hbHBoYS1leHBlY3RlZC5wbmc6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9jb21wb3NpdGluZy93ZWJnbC93ZWJnbC1uby1h
bHBoYS1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDEzLTAyLTE5ICBEYXZpZCBIeWF0dCAgPGh5
YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBbTmV3IE11bHRpY29sdW1uXSBNYWtlIGxheWVycyBw
YWludCBwcm9wZXJseSBpbiBjb2x1bW5zLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4
cGVjdGF0aW9ucwppbmRleCAxY2E4MWZkMWU1Mzk2YjM3ZTIyNTQ0YjI2MTY4NDU5M2VhNzg2NzY1
Li40MDFkYjM1MmQ1YjFkMDExY2MxZWJmNmEzYzFlNGNkNWQ0ZDg2MTk4IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTcyNyw3ICsxNzI3LDYgQEAgd2Vi
a2l0Lm9yZy9iLzEwNDU3MSBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi1leGFjdC1t
YXRjaGluZy5odG1sIFsgRmFpbHUKIAogIyBSZW5kZXJpbmcgZmFpbHVyZSwgYWxzbyBtaXNzaW5n
IGV4cGVjdGVkIHJlc3VsdHM6CiB3ZWJraXQub3JnL2IvMTA1MDkzIGNvbXBvc2l0aW5nL3dlYmds
L3dlYmdsLWJhY2tncm91bmQtY29sb3IuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzEwNTA5
MyBjb21wb3NpdGluZy93ZWJnbC93ZWJnbC1uby1hbHBoYS5odG1sIFsgU2tpcCBdCiB3ZWJraXQu
b3JnL2IvMTA1MDkzIGNvbXBvc2l0aW5nL3dlYmdsL3dlYmdsLW5vbnByZW11bHRpcGxpZWQtYmxl
bmQuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzEwNTA5MyBjb21wb3NpdGluZy93ZWJnbC93
ZWJnbC1yZWZsZWN0aW9uLmh0bWwgWyBTa2lwIF0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZWZsL2NvbXBvc2l0aW5nL3dlYmdsL3dlYmdsLW5vLWFscGhhLWV4cGVjdGVkLnBu
ZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9jb21wb3NpdGluZy93ZWJnbC93ZWJnbC1uby1h
bHBoYS1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTRhYzA2ZWU5YzQ0MGQ0MmFkZDQ5M2Q1MjU4
NDBkZTJmZWY5NTM0MgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMjkxMAp6Y21lQVNATj8ob2xI
eWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkwKlopPWheaGxBJUBXcyRsSGBvazxtfT9vVG40a20KejZy
Jl9WR2g7Szh2XyEqSHFtKlByVmBDI2ohPSNrZEJ2VjZFTCErYDg4VFd2aSpwal42VF5SbUA7RFd1
JkNvP2NgCnotU2MjRDQ1XnMmX0ooMkpWRnYtMGdOcU9SdWRrZUk5Q3x6M0JVRkZKMkUqJVRXRWRF
JSoxdShCVjNfWmd6e3FmZgp6TVUyNzBoZjBoJF92QWo1JSswUTVsRnZBbzxJbkoqeUo3PGFMbFA0
PWdNISo5Vj5BIyhRdiR0biFTYDxzJVBsd0MKekdCUH5TbUQ2RXBtfm51S3BAV2wzakp2bSk9Ukde
fmptN1JsPkFKVV4zXmZ6JCNVdTJXT1lMe3EhVGUkUjYmfnU5CnpEJTJ7U00kTXNPUTlsfShnRT1y
azZ8cVZCSGVrREEmKFVVOTFfOXYrMV9yfiVRTzBOPjRDJDJjbntmeFg7TU5hWQpTbSlRZmB6Nl9x
T2VsRntyNX1FKkg3OTdhewoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2NvbXBvc2l0aW5nL3dlYmdsL3dlYmdsLW5vLWFscGhhLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9jb21wb3NpdGluZy93ZWJnbC93
ZWJnbC1uby1hbHBoYS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGIxMzc4OTE3OTFmZTk2OTI3
YWQ3OGU2NGIwYWFkN2JkZWQwOGJkYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2VmbC9jb21wb3NpdGluZy93ZWJnbC93ZWJnbC1uby1hbHBoYS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSBAQAorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189391</attachid>
            <date>2013-02-20 15:17:13 -0800</date>
            <delta_ts>2013-02-21 02:08:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110067-20130221011334.patch</filename>
            <type>text/plain</type>
            <size>34033</size>
            <attacher name="Kalyan">kalyan.kondapally</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDRjMTc1OTM5MTJmZmZh
NGVkYjYyZWQzMDA3MTRlNmRmMTM5OWM3NC4uNzg1MDc1MTAxZGQzODYzMTNiZWM1Y2NmZDM1NWUw
MTE4YmQwMjQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEzLTAyLTIwICBLb25k
YXBhbGx5IEthbHlhbiAgPGthbHlhbi5rb25kYXBhbGx5QGludGVsLmNvbT4KKworICAgICAgICBb
V2ViR0xdW0VGTF0gU3VwcG9ydCBmb3IgY3JlYXRpbmcgc3VyZmFjZSB3aXRoIGFscGhhIGRpc2Fi
bGVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEw
MDY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292
ZXJlZCBieSBjb21wb3NpdGluZy93ZWJnbC93ZWJnbC1uby1hbHBoYS5odG1sCisKKyAgICAgICAg
V2UgY3VycmVudGx5IGFsd2F5cyBjcmVhdGUgYSBzdXJmYWNlIHN1cHBvcnRpbmcgYWxwaGEgY2hh
bm5lbC4gCisgICAgICAgIFdpdGggdGhpcyBwYXRjaCB3ZSBjcmVhdGUgdGhlIHN1cHBvcnQgd2l0
aCBhbHBoYSBvbmx5IGlmCisgICAgICAgIHJlcXVpcmVkLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmluaXRpYWxpemUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaDoKKyAgICAgICAg
KEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdMUGxhdGZv
cm1TdXJmYWNlOjpjcmVhdGVPZmZTY3JlZW5TdXJmYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkdM
UGxhdGZvcm1TdXJmYWNlOjpjcmVhdGVUcmFuc3BvcnRTdXJmYWNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkdMUGxhdGZvcm1TdXJmYWNlOjpHTFBsYXRmb3JtU3VyZmFjZSk6CisgICAgICAgIChXZWJD
b3JlOjpHTFBsYXRmb3JtU3VyZmFjZTo6YXR0cmlidXRlcyk6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMQ29uZmlnU2VsZWN0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpFR0xDb25maWdT
ZWxlY3Rvcjo6RUdMQ29uZmlnU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6RUdMQ29uZmln
U2VsZWN0b3I6OnBCdWZmZXJDb250ZXh0Q29uZmlnKToKKyAgICAgICAgKFdlYkNvcmU6OkVHTENv
bmZpZ1NlbGVjdG9yOjpzdXJmYWNlQ29udGV4dENvbmZpZyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTENvbmZpZ1NlbGVjdG9yLmg6CisgICAgICAgIChFR0xD
b25maWdTZWxlY3Rvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWds
L0VHTFN1cmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RUdMV2luZG93VHJhbnNwb3J0U3Vy
ZmFjZTo6RUdMV2luZG93VHJhbnNwb3J0U3VyZmFjZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvc3VyZmFjZXMvZWdsL0VHTFN1cmZhY2UuaDoKKyAgICAgICAgKEVHTFdpbmRvd1RyYW5z
cG9ydFN1cmZhY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9H
TFhDb25maWdTZWxlY3Rvci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHTFhDb25maWdTZWxlY3Rvcjo6R0xYQ29uZmlnU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6R0xYQ29uZmlnU2VsZWN0b3I6OnBpeG1hcENvbnRleHRDb25maWcpOgorICAgICAgICAoV2Vi
Q29yZTo6R0xYQ29uZmlnU2VsZWN0b3I6OnN1cmZhY2VDb250ZXh0Q29uZmlnKToKKyAgICAgICAg
KFdlYkNvcmU6OkdMWENvbmZpZ1NlbGVjdG9yOjpzdXJmYWNlQ2xpZW50Q29uZmlnKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdMWENvbmZpZ1NlbGVjdG9yOjp2YWxpZGF0ZUF0dHJpYnV0ZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6R0xYQ29uZmlnU2VsZWN0b3I6OmZpbmRNYXRjaGluZ0NvbmZpZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpHTFhDb25maWdTZWxlY3Rvcjo6ZmluZE1hdGNoaW5nQ29uZmlnV2l0
aFZpc3VhbElkKToKKyAgICAgICAgKEdMWENvbmZpZ1NlbGVjdG9yKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHTFhPZmZTY3JlZW5Db250ZXh0Ojppbml0aWFsaXplKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHTFhUcmFuc3BvcnRTdXJmYWNlOjpHTFhUcmFuc3BvcnRTdXJmYWNlKToKKyAgICAgICAgKFdl
YkNvcmU6OkdMWE9mZlNjcmVlblN1cmZhY2U6OkdMWE9mZlNjcmVlblN1cmZhY2UpOgorICAgICAg
ICAoV2ViQ29yZTo6R0xYT2ZmU2NyZWVuU3VyZmFjZTo6aW5pdGlhbGl6ZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuaDoKKyAgICAgICAgKEdM
WFRyYW5zcG9ydFN1cmZhY2UpOgorICAgICAgICAoR0xYT2ZmU2NyZWVuU3VyZmFjZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dyYXBoaWNzU3VyZmFjZUdMWC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VQcml2YXRlOjpHcmFwaGljc1N1
cmZhY2VQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVByaXZhdGU6
OmNyZWF0ZVBpeG1hcCk6CisKIDIwMTMtMDItMjAgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtOZXcgTXVsdGljb2x1bW5dIENvbHVtbiBnYXAgaXMgY29tcHV0ZWQg
aW5jb3JyZWN0bHkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCmluZGV4IDNkNjAx
ZmUyZjg3Njg2YzAyNThiMmEwY2U2NzY1MTFiZTY5OWU4NWUuLmFlNGZhZjBjNDM2MTMxNmEwODcz
ZjEyYmVhMTk2ZjEwMTMzYTMxNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3Bw
CkBAIC02MCwxNiArNjAsNiBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6aW5pdGlh
bGl6ZSgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChtX2NvbnRleHQtPm1fcmVu
ZGVyU3R5bGUgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlck9mZnNjcmVlbikgewotI2lmIFVT
RShHUkFQSElDU19TVVJGQUNFKQotICAgICAgICBtX3NoYXJlZFN1cmZhY2UgPSBHTFBsYXRmb3Jt
U3VyZmFjZTo6Y3JlYXRlVHJhbnNwb3J0U3VyZmFjZSgpOwotICAgICAgICBpZiAoIW1fc2hhcmVk
U3VyZmFjZSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBtX3NoYXJlZENv
bnRleHQgPSBHTFBsYXRmb3JtQ29udGV4dDo6Y3JlYXRlQ29udGV4dChtX2NvbnRleHQtPm1fcmVu
ZGVyU3R5bGUpOwotICAgICAgICBpZiAoIW1fc2hhcmVkQ29udGV4dCkKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSNlbmRpZgotCiAgICAgICAgIG1fb2ZmU2NyZWVuU3VyZmFjZSA9IEdMUGxh
dGZvcm1TdXJmYWNlOjpjcmVhdGVPZmZTY3JlZW5TdXJmYWNlKCk7CiAKICAgICAgICAgaWYgKCFt
X29mZlNjcmVlblN1cmZhY2UpCkBAIC03OSw2ICs2OSwyMyBAQCBib29sIEdyYXBoaWNzQ29udGV4
dDNEUHJpdmF0ZTo6aW5pdGlhbGl6ZSgpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICNp
ZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKKyAgICAgICAgaWYgKCFtYWtlQ29udGV4dEN1cnJlbnQo
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBtX2NvbnRleHQtPnZhbGlk
YXRlQXR0cmlidXRlcygpOworICAgICAgICBHTFBsYXRmb3JtU3VyZmFjZTo6UGxhdGZvcm1TdXJm
YWNlQXR0cmlidXRlcyBzaGFyZWRTdXJmYWNlQXR0cmlidXRlcyA9IEdMUGxhdGZvcm1TdXJmYWNl
OjpEZWZhdWx0QXR0cmlidXRlczsKKyAgICAgICAgaWYgKG1fY29udGV4dC0+bV9hdHRycy5hbHBo
YSkKKyAgICAgICAgICAgIHNoYXJlZFN1cmZhY2VBdHRyaWJ1dGVzID0gR0xQbGF0Zm9ybVN1cmZh
Y2U6OlN1cHBvcnRBbHBoYTsKKworICAgICAgICBtX29mZlNjcmVlbkNvbnRleHQtPnJlbGVhc2VD
dXJyZW50KCk7CisgICAgICAgIG1fc2hhcmVkU3VyZmFjZSA9IEdMUGxhdGZvcm1TdXJmYWNlOjpj
cmVhdGVUcmFuc3BvcnRTdXJmYWNlKHNoYXJlZFN1cmZhY2VBdHRyaWJ1dGVzKTsKKyAgICAgICAg
aWYgKCFtX3NoYXJlZFN1cmZhY2UpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAg
ICAgbV9zaGFyZWRDb250ZXh0ID0gR0xQbGF0Zm9ybUNvbnRleHQ6OmNyZWF0ZUNvbnRleHQobV9j
b250ZXh0LT5tX3JlbmRlclN0eWxlKTsKKyAgICAgICAgaWYgKCFtX3NoYXJlZENvbnRleHQpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICAgICAgaWYgKCFtX3NoYXJlZENvbnRleHQt
PmluaXRpYWxpemUobV9zaGFyZWRTdXJmYWNlLmdldCgpLCBtX29mZlNjcmVlbkNvbnRleHQtPmhh
bmRsZSgpKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFj
ZS5jcHAKaW5kZXggMDcxYTgzYjc3Y2VhMGQ3NTBmZTJjYjIwODVlNGIxMTRmOGM4Yzk1My4uNjM0
YWIzOTVmYzIxZGUzNDQwNjlkMTg2ODkzNDk0ODEzNmJjYjE0NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1
cmZhY2UuY3BwCkBAIC00MCwyNCArNDAsMjYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Q
YXNzT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBHTFBsYXRmb3JtU3VyZmFjZTo6Y3JlYXRlT2Zm
U2NyZWVuU3VyZmFjZSgpCitQYXNzT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBHTFBsYXRmb3Jt
U3VyZmFjZTo6Y3JlYXRlT2ZmU2NyZWVuU3VyZmFjZShQbGF0Zm9ybVN1cmZhY2VBdHRyaWJ1dGVz
IHN1cmZhY2VBdHRyaWJ1dGVzKQogewogI2lmIFVTRShHTFgpCi0gICAgT3duUHRyPEdMUGxhdGZv
cm1TdXJmYWNlPiBzdXJmYWNlID0gYWRvcHRQdHIobmV3IEdMWE9mZlNjcmVlblN1cmZhY2UoKSk7
CisgICAgT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBzdXJmYWNlID0gYWRvcHRQdHIobmV3IEdM
WE9mZlNjcmVlblN1cmZhY2Uoc3VyZmFjZUF0dHJpYnV0ZXMpKTsKIAogICAgIGlmIChzdXJmYWNl
LT5kcmF3YWJsZSgpKQogICAgICAgICByZXR1cm4gc3VyZmFjZS5yZWxlYXNlKCk7CisjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTShzdXJmYWNlQXR0cmlidXRlcyk7CiAjZW5kaWYKIAogICAgIHJldHVy
biBudWxscHRyOwogfQogCi1QYXNzT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBHTFBsYXRmb3Jt
U3VyZmFjZTo6Y3JlYXRlVHJhbnNwb3J0U3VyZmFjZSgpCitQYXNzT3duUHRyPEdMUGxhdGZvcm1T
dXJmYWNlPiBHTFBsYXRmb3JtU3VyZmFjZTo6Y3JlYXRlVHJhbnNwb3J0U3VyZmFjZShQbGF0Zm9y
bVN1cmZhY2VBdHRyaWJ1dGVzIHN1cmZhY2VBdHRyaWJ1dGVzKQogewogI2lmIFVTRShHTFgpCi0g
ICAgT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBzdXJmYWNlID0gYWRvcHRQdHIobmV3IEdMWFRy
YW5zcG9ydFN1cmZhY2UoKSk7CisgICAgT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBzdXJmYWNl
ID0gYWRvcHRQdHIobmV3IEdMWFRyYW5zcG9ydFN1cmZhY2Uoc3VyZmFjZUF0dHJpYnV0ZXMpKTsK
ICNlbGlmIFVTRShFR0wpCi0gICAgT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBzdXJmYWNlID0g
YWRvcHRQdHIobmV3IEVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2UoKSk7CisgICAgT3duUHRyPEdM
UGxhdGZvcm1TdXJmYWNlPiBzdXJmYWNlID0gYWRvcHRQdHIobmV3IEVHTFdpbmRvd1RyYW5zcG9y
dFN1cmZhY2Uoc3VyZmFjZUF0dHJpYnV0ZXMpKTsKICNlbmRpZgogCiAgICAgaWYgKHN1cmZhY2Ug
JiYgc3VyZmFjZS0+aGFuZGxlKCkgJiYgc3VyZmFjZS0+ZHJhd2FibGUoKSkKQEAgLTY2LDcgKzY4
LDcgQEAgUGFzc093blB0cjxHTFBsYXRmb3JtU3VyZmFjZT4gR0xQbGF0Zm9ybVN1cmZhY2U6OmNy
ZWF0ZVRyYW5zcG9ydFN1cmZhY2UoKQogICAgIHJldHVybiBudWxscHRyOwogfQogCi1HTFBsYXRm
b3JtU3VyZmFjZTo6R0xQbGF0Zm9ybVN1cmZhY2UoKQorR0xQbGF0Zm9ybVN1cmZhY2U6OkdMUGxh
dGZvcm1TdXJmYWNlKFBsYXRmb3JtU3VyZmFjZUF0dHJpYnV0ZXMgc3VyZmFjZUF0dHJpYnV0ZXMp
CiAgICAgOiBtX2Zib0lkKDApCiAgICAgLCBtX3NoYXJlZERpc3BsYXkoMCkKICAgICAsIG1fZHJh
d2FibGUoMCkKQEAgLTE0NCw2ICsxNDYsMTEgQEAgdm9pZCBHTFBsYXRmb3JtU3VyZmFjZTo6ZGVz
dHJveSgpCiAgICAgfQogfQogCitHTFBsYXRmb3JtU3VyZmFjZTo6UGxhdGZvcm1TdXJmYWNlQXR0
cmlidXRlcyBHTFBsYXRmb3JtU3VyZmFjZTo6YXR0cmlidXRlcygpIGNvbnN0Cit7CisgICAgcmV0
dXJuIEdMUGxhdGZvcm1TdXJmYWNlOjpEZWZhdWx0QXR0cmlidXRlczsKK30KKwogfQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9H
TFBsYXRmb3JtU3VyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dMUGxhdGZvcm1TdXJmYWNlLmgKaW5kZXggMDBkZDdjOTFlZjkzMWFhM2VkN2YwNDM3Y2Q1
ZDVmMWRhZmUzZDNhZS4uZDIxZWFmMDhkZmQ2ZGE5YWExNDY1NzBkZjc1Yjc1MDQ2NDIxZDVhNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxh
dGZvcm1TdXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dMUGxhdGZvcm1TdXJmYWNlLmgKQEAgLTQxLDEyICs0MSwxOSBAQCBjbGFzcyBHTFBsYXRm
b3JtU3VyZmFjZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR0xQbGF0Zm9ybVN1cmZhY2Up
OwogCiBwdWJsaWM6CisgICAgZW51bSBTdXJmYWNlQXR0cmlidXRlcyB7CisgICAgICAgIERlZmF1
bHRBdHRyaWJ1dGVzID0gMHgwMCwgLy8gTm8gQWxwaGEgY2hhbm5lbC4gT25seSBSLEcsQiB2YWx1
ZXMgc2V0LgorICAgICAgICBTdXBwb3J0QWxwaGEgPSAweDAxLAorICAgICAgICBEb3VibGVCdWZm
ZXIgPSAweDA0CisgICAgfTsKKworICAgIHR5cGVkZWYgaW50IFBsYXRmb3JtU3VyZmFjZUF0dHJp
YnV0ZXM7CiAgICAgLy8gQ3JlYXRlcyBhIEdMIHN1cmZhY2UgdXNlZCBmb3Igb2Zmc2NyZWVuIHJl
bmRlcmluZy4KLSAgICBzdGF0aWMgUGFzc093blB0cjxHTFBsYXRmb3JtU3VyZmFjZT4gY3JlYXRl
T2ZmU2NyZWVuU3VyZmFjZSgpOworICAgIHN0YXRpYyBQYXNzT3duUHRyPEdMUGxhdGZvcm1TdXJm
YWNlPiBjcmVhdGVPZmZTY3JlZW5TdXJmYWNlKFBsYXRmb3JtU3VyZmFjZUF0dHJpYnV0ZXMgPSBH
TFBsYXRmb3JtU3VyZmFjZTo6RGVmYXVsdEF0dHJpYnV0ZXMpOwogCiAgICAgLy8gQ3JlYXRlcyBh
IEdMIHN1cmZhY2UgdXNlZCBmb3Igb2Zmc2NyZWVuIHJlbmRlcmluZy4gVGhlIHJlc3VsdHMgY2Fu
IGJlIHRyYW5zcG9ydGVkCiAgICAgLy8gdG8gdGhlIFVJIHByb2Nlc3MgZm9yIGRpc3BsYXkuCi0g
ICAgc3RhdGljIFBhc3NPd25QdHI8R0xQbGF0Zm9ybVN1cmZhY2U+IGNyZWF0ZVRyYW5zcG9ydFN1
cmZhY2UoKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxHTFBsYXRmb3JtU3VyZmFjZT4gY3JlYXRl
VHJhbnNwb3J0U3VyZmFjZShQbGF0Zm9ybVN1cmZhY2VBdHRyaWJ1dGVzID0gR0xQbGF0Zm9ybVN1
cmZhY2U6OkRlZmF1bHRBdHRyaWJ1dGVzKTsKIAogICAgIHZpcnR1YWwgfkdMUGxhdGZvcm1TdXJm
YWNlKCk7CiAKQEAgLTYxLDYgKzY4LDggQEAgcHVibGljOgogCiAgICAgUGxhdGZvcm1EaXNwbGF5
IHNoYXJlZERpc3BsYXkoKSBjb25zdDsKIAorICAgIHZpcnR1YWwgUGxhdGZvcm1TdXJmYWNlQXR0
cmlidXRlcyBhdHRyaWJ1dGVzKCkgY29uc3Q7CisKICAgICB2aXJ0dWFsIHZvaWQgc3dhcEJ1ZmZl
cnMoKTsKIAogICAgIC8vIENvbnZlbmllbmNlIEZ1bmN0aW9uIHRvIHVwZGF0ZSBzdXJmYWNlIGJh
Y2tidWZmZXIgd2l0aCB0ZXh0dXJlIGNvbnRlbnRzLgpAQCAtNzcsNyArODYsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKTsKIAogcHJvdGVjdGVkOgotICAgIEdMUGxhdGZv
cm1TdXJmYWNlKCk7CisgICAgR0xQbGF0Zm9ybVN1cmZhY2UoUGxhdGZvcm1TdXJmYWNlQXR0cmli
dXRlcyk7CiAgICAgSW50UmVjdCBtX3JlY3Q7CiAgICAgR0x1aW50IG1fZmJvSWQ7CiAgICAgUGxh
dGZvcm1EaXNwbGF5IG1fc2hhcmVkRGlzcGxheTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xDb25maWdTZWxlY3Rvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMQ29uZmlnU2Vs
ZWN0b3IuY3BwCmluZGV4IGNiY2QyMTI3ZWJlZGFkMjY3ODRkZjFmNjBhZmVkMWYyMjBiMjY5MjQu
LmE3NDNjNzJiZjJiMDY5YTQ5NGZmODJhNDYwZjQwMjJkMWJmM2IwNTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xDb25maWdTZWxl
Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
ZWdsL0VHTENvbmZpZ1NlbGVjdG9yLmNwcApAQCAtNDIsNyArNDIsNyBAQCBzdGF0aWMgRUdMaW50
IGNvbmZpZ0F0dHJpYnV0ZUxpc3RbXSA9IHsKICAgICBFR0xfR1JFRU5fU0laRSwgOCwKICAgICBF
R0xfQkxVRV9TSVpFLCA4LAogICAgIEVHTF9TVEVOQ0lMX1NJWkUsIDgsCi0gICAgRUdMX0FMUEhB
X1NJWkUsIDgsCisgICAgRUdMX0FMUEhBX1NJWkUsIDAsCiAgICAgRUdMX1NVUkZBQ0VfVFlQRSwg
RUdMX05PTkUsCiAgICAgRUdMX05PTkUKIH07CkBAIC0xMDQsOSArMTA0LDEwIEBAIFNoYXJlZEVH
TERpc3BsYXk6On5TaGFyZWRFR0xEaXNwbGF5KCkKICAgICBjbGVhbnVwKCk7CiB9CiAKLUVHTENv
bmZpZ1NlbGVjdG9yOjpFR0xDb25maWdTZWxlY3RvcihOYXRpdmVTaGFyZWREaXNwbGF5KiBkaXNw
bGF5KQorRUdMQ29uZmlnU2VsZWN0b3I6OkVHTENvbmZpZ1NlbGVjdG9yKEdMUGxhdGZvcm1TdXJm
YWNlOjpQbGF0Zm9ybVN1cmZhY2VBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIE5hdGl2ZVNoYXJlZERp
c3BsYXkqIGRpc3BsYXkpCiAgICAgOiBtX3BidWZmZXJGQkNvbmZpZygwKQogICAgICwgbV9zdXJm
YWNlQ29udGV4dEZCQ29uZmlnKDApCisgICAgLCBtX2F0dHJpYnV0ZXMoYXR0cmlidXRlcykKIHsK
ICAgICBtX3NoYXJlZERpc3BsYXkgPSBTaGFyZWRFR0xEaXNwbGF5OjpjcmVhdGUoZGlzcGxheSk7
CiB9CkBAIC0xMjMsNiArMTI0LDcgQEAgUGxhdGZvcm1EaXNwbGF5IEVHTENvbmZpZ1NlbGVjdG9y
OjpkaXNwbGF5KCkgY29uc3QKIEVHTENvbmZpZyBFR0xDb25maWdTZWxlY3Rvcjo6cEJ1ZmZlckNv
bnRleHRDb25maWcoKQogewogICAgIGlmICghbV9wYnVmZmVyRkJDb25maWcpIHsKKyAgICAgICAg
Y29uZmlnQXR0cmlidXRlTGlzdFsxMV0gPSBtX2F0dHJpYnV0ZXMgJiBHTFBsYXRmb3JtU3VyZmFj
ZTo6U3VwcG9ydEFscGhhID8gOCA6IDA7CiAgICAgICAgIGNvbmZpZ0F0dHJpYnV0ZUxpc3RbMTNd
ID0gRUdMX1BJWE1BUF9CSVQ7CiAgICAgICAgIG1fcGJ1ZmZlckZCQ29uZmlnID0gY3JlYXRlQ29u
ZmlnKGNvbmZpZ0F0dHJpYnV0ZUxpc3QpOwogICAgIH0KQEAgLTEzMyw2ICsxMzUsNyBAQCBFR0xD
b25maWcgRUdMQ29uZmlnU2VsZWN0b3I6OnBCdWZmZXJDb250ZXh0Q29uZmlnKCkKIEVHTENvbmZp
ZyBFR0xDb25maWdTZWxlY3Rvcjo6c3VyZmFjZUNvbnRleHRDb25maWcoKQogewogICAgIGlmICgh
bV9zdXJmYWNlQ29udGV4dEZCQ29uZmlnKSB7CisgICAgICAgIGNvbmZpZ0F0dHJpYnV0ZUxpc3Rb
MTFdID0gbV9hdHRyaWJ1dGVzICYgR0xQbGF0Zm9ybVN1cmZhY2U6OlN1cHBvcnRBbHBoYSA/IDgg
OiAwOwogICAgICAgICBjb25maWdBdHRyaWJ1dGVMaXN0WzEzXSA9IEVHTF9XSU5ET1dfQklUOwog
ICAgICAgICBtX3N1cmZhY2VDb250ZXh0RkJDb25maWcgPSBjcmVhdGVDb25maWcoY29uZmlnQXR0
cmlidXRlTGlzdCk7CiAgICAgfQpAQCAtMTUxLDYgKzE1NCwxMSBAQCBFR0xpbnQgRUdMQ29uZmln
U2VsZWN0b3I6Om5hdGl2ZVZpc3VhbElkKGNvbnN0IEVHTENvbmZpZyYgY29uZmlnKSBjb25zdAog
ICAgIHJldHVybiBlZ2xWYWx1ZTsKIH0KIAorR0xQbGF0Zm9ybVN1cmZhY2U6OlBsYXRmb3JtU3Vy
ZmFjZUF0dHJpYnV0ZXMgRUdMQ29uZmlnU2VsZWN0b3I6OmF0dHJpYnV0ZXMoKSBjb25zdAorewor
ICAgIHJldHVybiBtX2F0dHJpYnV0ZXM7Cit9CisKIHZvaWQgRUdMQ29uZmlnU2VsZWN0b3I6OnJl
c2V0KCkKIHsKICAgICBtX3N1cmZhY2VDb250ZXh0RkJDb25maWcgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTENvbmZpZ1Nl
bGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wv
RUdMQ29uZmlnU2VsZWN0b3IuaAppbmRleCA2NjMxYWRjYmNjMTJjYTJlNmU2MWMwY2U0YmExNjQx
NzkwNWZhOWFkLi4yZjA1YWRkODYzM2JiZWE1NzI3YjZkYjdiY2QxNTRmNTVkOTk4YWJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdM
Q29uZmlnU2VsZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9z
dXJmYWNlcy9lZ2wvRUdMQ29uZmlnU2VsZWN0b3IuaApAQCAtMjksNiArMjksNyBAQAogI2lmIFVT
RShFR0wpCiAKICNpbmNsdWRlIDxvcGVuZ2wvR0xEZWZzLmg+CisjaW5jbHVkZSA8b3BlbmdsL0dM
UGxhdGZvcm1TdXJmYWNlLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtNjgs
MTIgKzY5LDEzIEBAIGNsYXNzIEVHTENvbmZpZ1NlbGVjdG9yIHsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShFR0xDb25maWdTZWxlY3Rvcik7CiAKIHB1YmxpYzoKLSAgICBFR0xDb25maWdTZWxl
Y3RvcihOYXRpdmVTaGFyZWREaXNwbGF5KiA9IDApOworICAgIEVHTENvbmZpZ1NlbGVjdG9yKEdM
UGxhdGZvcm1TdXJmYWNlOjpQbGF0Zm9ybVN1cmZhY2VBdHRyaWJ1dGVzLCBOYXRpdmVTaGFyZWRE
aXNwbGF5KiA9IDApOwogICAgIHZpcnR1YWwgfkVHTENvbmZpZ1NlbGVjdG9yKCk7CiAgICAgUGxh
dGZvcm1EaXNwbGF5IGRpc3BsYXkoKSBjb25zdDsKICAgICB2aXJ0dWFsIEVHTENvbmZpZyBwQnVm
ZmVyQ29udGV4dENvbmZpZygpOwogICAgIHZpcnR1YWwgRUdMQ29uZmlnIHN1cmZhY2VDb250ZXh0
Q29uZmlnKCk7CiAgICAgRUdMaW50IG5hdGl2ZVZpc3VhbElkKGNvbnN0IEVHTENvbmZpZyYpIGNv
bnN0OworICAgIEdMUGxhdGZvcm1TdXJmYWNlOjpQbGF0Zm9ybVN1cmZhY2VBdHRyaWJ1dGVzIGF0
dHJpYnV0ZXMoKSBjb25zdDsKICAgICB2b2lkIHJlc2V0KCk7CiAKIHByaXZhdGU6CkBAIC04Myw2
ICs4NSw3IEBAIHByb3RlY3RlZDoKICAgICBFR0xDb25maWcgbV9wYnVmZmVyRkJDb25maWc7CiAg
ICAgRUdMQ29uZmlnIG1fc3VyZmFjZUNvbnRleHRGQkNvbmZpZzsKICAgICBSZWZQdHI8U2hhcmVk
RUdMRGlzcGxheT4gbV9zaGFyZWREaXNwbGF5OworICAgIEdMUGxhdGZvcm1TdXJmYWNlOjpQbGF0
Zm9ybVN1cmZhY2VBdHRyaWJ1dGVzIG1fYXR0cmlidXRlcyA6IDM7CiB9OwogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMU3Vy
ZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wv
RUdMU3VyZmFjZS5jcHAKaW5kZXggZTY3MTFmOGU5OGE2OGRmYjZkMDAzNDBhZjc1MTVlNWQ0ZDg4
NTQ2ZC4uZjExNTQxNzhiYjcwMzVkYzgzNGE3NDc4OGVjYTU2MWY1ZjQ0MjUwYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTFN1cmZh
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2Vn
bC9FR0xTdXJmYWNlLmNwcApAQCAtMzAsMTAgKzMwLDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotRUdMV2luZG93VHJhbnNwb3J0U3VyZmFjZTo6RUdMV2luZG93VHJhbnNwb3J0U3VyZmFj
ZSgpCi0gICAgOiBHTFBsYXRmb3JtU3VyZmFjZSgpCitFR0xXaW5kb3dUcmFuc3BvcnRTdXJmYWNl
OjpFR0xXaW5kb3dUcmFuc3BvcnRTdXJmYWNlKFBsYXRmb3JtU3VyZmFjZUF0dHJpYnV0ZXMgYXR0
cmlidXRlcykKKyAgICA6IEdMUGxhdGZvcm1TdXJmYWNlKGF0dHJpYnV0ZXMpCiB7Ci0gICAgbV9j
b25maWdTZWxlY3RvciA9IGFkb3B0UHRyKG5ldyBFR0xDb25maWdTZWxlY3RvcihOYXRpdmVXcmFw
cGVyOjpuYXRpdmVEaXNwbGF5KCkpKTsKKyAgICBtX2NvbmZpZ1NlbGVjdG9yID0gYWRvcHRQdHIo
bmV3IEVHTENvbmZpZ1NlbGVjdG9yKGF0dHJpYnV0ZXMsIE5hdGl2ZVdyYXBwZXI6Om5hdGl2ZURp
c3BsYXkoKSkpOwogICAgIG1fc2hhcmVkRGlzcGxheSA9IG1fY29uZmlnU2VsZWN0b3ItPmRpc3Bs
YXkoKTsKIAogICAgIGlmIChtX3NoYXJlZERpc3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpIHsKQEAg
LTU1LDcgKzU1LDcgQEAgRUdMV2luZG93VHJhbnNwb3J0U3VyZmFjZTo6RUdMV2luZG93VHJhbnNw
b3J0U3VyZmFjZSgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBOYXRpdmVXcmFwcGVy
OjpjcmVhdGVPZmZTY3JlZW5XaW5kb3coJm1fYnVmZmVySGFuZGxlLCB2aXN1YWxJZCk7CisgICAg
TmF0aXZlV3JhcHBlcjo6Y3JlYXRlT2ZmU2NyZWVuV2luZG93KCZtX2J1ZmZlckhhbmRsZSwgKGF0
dHJpYnV0ZXMgJiBHTFBsYXRmb3JtU3VyZmFjZTo6U3VwcG9ydEFscGhhKSwgdmlzdWFsSWQpOwog
CiAgICAgaWYgKCFtX2J1ZmZlckhhbmRsZSkgewogICAgICAgICBkZXN0cm95KCk7CkBAIC03MCw2
ICs3MCwxMSBAQCBFR0xXaW5kb3dUcmFuc3BvcnRTdXJmYWNlOjpFR0xXaW5kb3dUcmFuc3BvcnRT
dXJmYWNlKCkKICAgICB9CiB9CiAKK0dMUGxhdGZvcm1TdXJmYWNlOjpQbGF0Zm9ybVN1cmZhY2VB
dHRyaWJ1dGVzIEVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2U6OmF0dHJpYnV0ZXMoKSBjb25zdAor
eworICAgIHJldHVybiBtX2NvbmZpZ1NlbGVjdG9yLT5hdHRyaWJ1dGVzKCk7Cit9CisKIEVHTFdp
bmRvd1RyYW5zcG9ydFN1cmZhY2U6On5FR0xXaW5kb3dUcmFuc3BvcnRTdXJmYWNlKCkKIHsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2Vn
bC9FR0xTdXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNl
cy9lZ2wvRUdMU3VyZmFjZS5oCmluZGV4IDJlYTcwNDIwOTk5Y2JhMTEzMGE4MzZmN2FhYjM5M2Q1
NDcwM2M1ODQuLjkzNjM2MWUwMDU3MzViMmNhMjQyNjBmNDIyYjEzZjRhYTM4NGRkMjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xT
dXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
ZWdsL0VHTFN1cmZhY2UuaApAQCAtNDMsMTIgKzQzLDEzIEBAIHR5cGVkZWYgWDExSGVscGVyIE5h
dGl2ZVdyYXBwZXI7CiBjbGFzcyBFR0xXaW5kb3dUcmFuc3BvcnRTdXJmYWNlIDogcHVibGljIEdM
UGxhdGZvcm1TdXJmYWNlIHsKIAogcHVibGljOgotICAgIEVHTFdpbmRvd1RyYW5zcG9ydFN1cmZh
Y2UoKTsKKyAgICBFR0xXaW5kb3dUcmFuc3BvcnRTdXJmYWNlKFBsYXRmb3JtU3VyZmFjZUF0dHJp
YnV0ZXMpOwogICAgIHZpcnR1YWwgfkVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2UoKTsKICAgICB2
aXJ0dWFsIFBsYXRmb3JtU3VyZmFjZUNvbmZpZyBjb25maWd1cmF0aW9uKCkgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIHNldEdlb21ldHJ5KGNvbnN0IEludFJlY3QmIG5ld1JlY3QpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBzd2FwQnVmZmVycygpIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgdm9pZCBkZXN0cm95KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBQbGF0Zm9ybVN1cmZhY2VB
dHRyaWJ1dGVzIGF0dHJpYnV0ZXMoKSBjb25zdCBPVkVSUklERTsKIAogcHJpdmF0ZToKICAgICB2
b2lkIGZyZWVFR0xSZXNvdXJjZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhDb25maWdTZWxlY3Rvci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbmZpZ1NlbGVjdG9yLmgK
aW5kZXggYzEzYzI2YzE1ZGMzYmUxMjAyMmY5YjliNjk2NTRiMDNhYWVjNTNkNi4uNTRmZWRlNDVm
NGQyNjUwMTY5MmFjNjk3ODNlM2FlMjY2NTA3ZDU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbmZpZ1NlbGVjdG9yLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbmZp
Z1NlbGVjdG9yLmgKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIlgxMUhlbHBlci5oIgog
I2luY2x1ZGUgPG9wZW5nbC9HTERlZnMuaD4KKyNpbmNsdWRlIDxvcGVuZ2wvR0xQbGF0Zm9ybVN1
cmZhY2UuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MywxMyArNDQsMjYgQEAgc3Rh
dGljIGludCBjbGllbnRBdHRyaWJ1dGVzW10gPSB7CiAgICAgMAogfTsKIAorc3RhdGljIGludCBn
bHhTdXJmYWNlQXR0cmlidXRlc1tdID0geworICAgIEdMWF9MRVZFTCwgMCwKKyAgICBHTFhfRFJB
V0FCTEVfVFlQRSwgR0xYX1BJWE1BUF9CSVQsCisgICAgR0xYX1JFTkRFUl9UWVBFLCAgIDAsCisg
ICAgR0xYX1JFRF9TSVpFLCAgICAgIDEsCisgICAgR0xYX0dSRUVOX1NJWkUsICAgIDEsCisgICAg
R0xYX0JMVUVfU0laRSwgICAgIDEsCisgICAgR0xYX0FMUEhBX1NJWkUsICAgIDAsCisgICAgR0xY
X0RPVUJMRUJVRkZFUiwgIEdMX0ZBTFNFLAorICAgIE5vbmUKK307CisKIGNsYXNzIEdMWENvbmZp
Z1NlbGVjdG9yIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShHTFhDb25maWdTZWxlY3Rvcik7
CiAKIHB1YmxpYzoKLSAgICBHTFhDb25maWdTZWxlY3RvcigpCisgICAgR0xYQ29uZmlnU2VsZWN0
b3IoR0xQbGF0Zm9ybVN1cmZhY2U6OlBsYXRmb3JtU3VyZmFjZUF0dHJpYnV0ZXMgYXR0ciA9IEdM
UGxhdGZvcm1TdXJmYWNlOjpEZWZhdWx0QXR0cmlidXRlcykKICAgICAgICAgOiBtX3N1cmZhY2VD
b250ZXh0RkJDb25maWcoMCkKICAgICAgICAgLCBtX3BpeG1hcENvbnRleHRGQkNvbmZpZygwKQor
ICAgICAgICAsIG1fYXR0cmlidXRlcyhhdHRyKQogICAgIHsKICAgICB9CiAKQEAgLTY1LDE5ICs3
OSw4IEBAIHB1YmxpYzoKICAgICBHTFhGQkNvbmZpZyBwaXhtYXBDb250ZXh0Q29uZmlnKCkKICAg
ICB7CiAgICAgICAgIGlmICghbV9waXhtYXBDb250ZXh0RkJDb25maWcpIHsKLSAgICAgICAgICAg
IHN0YXRpYyBjb25zdCBpbnQgYXR0cmlidXRlc1tdID0gewotICAgICAgICAgICAgICAgIEdMWF9M
RVZFTCwgMCwKLSAgICAgICAgICAgICAgICBHTFhfRFJBV0FCTEVfVFlQRSwgR0xYX1BJWE1BUF9C
SVQsCi0gICAgICAgICAgICAgICAgR0xYX1JFTkRFUl9UWVBFLCAgIEdMWF9SR0JBX0JJVCwKLSAg
ICAgICAgICAgICAgICBHTFhfUkVEX1NJWkUsICAgICAgMSwKLSAgICAgICAgICAgICAgICBHTFhf
R1JFRU5fU0laRSwgICAgMSwKLSAgICAgICAgICAgICAgICBHTFhfQkxVRV9TSVpFLCAgICAgMSwK
LSAgICAgICAgICAgICAgICBHTFhfQUxQSEFfU0laRSwgICAgMSwKLSAgICAgICAgICAgICAgICBH
TFhfRE9VQkxFQlVGRkVSLCAgR0xfRkFMU0UsCi0gICAgICAgICAgICAgICAgTm9uZQotICAgICAg
ICAgICAgfTsKLQotICAgICAgICAgICAgbV9waXhtYXBDb250ZXh0RkJDb25maWcgPSBmaW5kTWF0
Y2hpbmdDb25maWcoYXR0cmlidXRlcyk7CisgICAgICAgICAgICB2YWxpZGF0ZUF0dHJpYnV0ZXMo
KTsKKyAgICAgICAgICAgIG1fcGl4bWFwQ29udGV4dEZCQ29uZmlnID0gZmluZE1hdGNoaW5nQ29u
ZmlnKGdseFN1cmZhY2VBdHRyaWJ1dGVzLCBtX2F0dHJpYnV0ZXMgJiBHTFBsYXRmb3JtU3VyZmFj
ZTo6U3VwcG9ydEFscGhhID8gMzIgOiAyNCk7CiAgICAgICAgIH0KIAogICAgICAgICByZXR1cm4g
bV9waXhtYXBDb250ZXh0RkJDb25maWc7CkBAIC04Niw4ICs4OSwxNCBAQCBwdWJsaWM6CiAKICAg
ICBHTFhGQkNvbmZpZyBzdXJmYWNlQ29udGV4dENvbmZpZygpCiAgICAgewotICAgICAgICBpZiAo
IW1fc3VyZmFjZUNvbnRleHRGQkNvbmZpZykKLSAgICAgICAgICAgIGNyZWF0ZVN1cmZhY2VDb25m
aWcoKTsKKyAgICAgICAgaWYgKCFtX3N1cmZhY2VDb250ZXh0RkJDb25maWcpIHsKKyAgICAgICAg
ICAgIGdseFN1cmZhY2VBdHRyaWJ1dGVzWzNdID0gR0xYX1dJTkRPV19CSVQ7CisgICAgICAgICAg
ICBnbHhTdXJmYWNlQXR0cmlidXRlc1s3XSA9IDg7CisgICAgICAgICAgICBnbHhTdXJmYWNlQXR0
cmlidXRlc1s5XSA9IDg7CisgICAgICAgICAgICBnbHhTdXJmYWNlQXR0cmlidXRlc1sxMV0gPSA4
OworICAgICAgICAgICAgdmFsaWRhdGVBdHRyaWJ1dGVzKCk7CisgICAgICAgICAgICBtX3N1cmZh
Y2VDb250ZXh0RkJDb25maWcgPSBmaW5kTWF0Y2hpbmdDb25maWcoZ2x4U3VyZmFjZUF0dHJpYnV0
ZXMsIG1fYXR0cmlidXRlcyAmIEdMUGxhdGZvcm1TdXJmYWNlOjpTdXBwb3J0QWxwaGEgPyAzMiA6
IDI0KTsKKyAgICAgICAgfQogCiAgICAgICAgIHJldHVybiBtX3N1cmZhY2VDb250ZXh0RkJDb25m
aWc7CiAgICAgfQpAQCAtOTYsOCArMTA1LDEzIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIGNs
aWVudEF0dHJpYnV0ZXNbM10gPSBzdGF0aWNfY2FzdDxpbnQ+KGlkKTsKICAgICAgICAgY2xpZW50
QXR0cmlidXRlc1s4XSA9IGRlcHRoID09IDMyID8gR0xYX0JJTkRfVE9fVEVYVFVSRV9SR0JBX0VY
VCA6IEdMWF9CSU5EX1RPX1RFWFRVUkVfUkdCX0VYVDsKKyAgICAgICAgLy8gUHJlZmVyIHRvIG1h
dGNoIHdpdGggVmlzdWFsIElkLgorICAgICAgICBHTFhGQkNvbmZpZyBjb25maWcgPSBmaW5kTWF0
Y2hpbmdDb25maWdXaXRoVmlzdWFsSWQoY2xpZW50QXR0cmlidXRlcywgZGVwdGgsIGlkKTsKIAot
ICAgICAgICByZXR1cm4gZmluZE1hdGNoaW5nQ29uZmlnKGNsaWVudEF0dHJpYnV0ZXMsIGRlcHRo
LCBpZCk7CisgICAgICAgIGlmICghY29uZmlnKQorICAgICAgICAgICAgY29uZmlnID0gZmluZE1h
dGNoaW5nQ29uZmlnKGNsaWVudEF0dHJpYnV0ZXMsIGRlcHRoKTsKKworICAgICAgICByZXR1cm4g
Y29uZmlnOwogICAgIH0KIAogICAgIHZvaWQgcmVzZXQoKQpAQCAtMTA2LDI3ICsxMjAsMjQgQEAg
cHVibGljOgogICAgICAgICBtX3BpeG1hcENvbnRleHRGQkNvbmZpZyA9IDA7CiAgICAgfQogCisg
ICAgR0xQbGF0Zm9ybVN1cmZhY2U6OlBsYXRmb3JtU3VyZmFjZUF0dHJpYnV0ZXMgYXR0cmlidXRl
cygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9hdHRyaWJ1dGVzOworICAgIH0KKwog
cHJpdmF0ZToKLSAgICB2b2lkIGNyZWF0ZVN1cmZhY2VDb25maWcoKQorICAgIHZvaWQgdmFsaWRh
dGVBdHRyaWJ1dGVzKCkKICAgICB7Ci0gICAgICAgIHN0YXRpYyBpbnQgYXR0cmlidXRlc1tdID0g
ewotICAgICAgICAgICAgR0xYX0xFVkVMLCAwLAotICAgICAgICAgICAgR0xYX0RSQVdBQkxFX1RZ
UEUsIEdMWF9XSU5ET1dfQklULAotICAgICAgICAgICAgR0xYX1JFTkRFUl9UWVBFLCAgIEdMWF9S
R0JBX0JJVCwKLSAgICAgICAgICAgIEdMWF9SRURfU0laRSwgICAgICAxLAotICAgICAgICAgICAg
R0xYX0dSRUVOX1NJWkUsICAgIDEsCi0gICAgICAgICAgICBHTFhfQkxVRV9TSVpFLCAgICAgMSwK
LSAgICAgICAgICAgIEdMWF9BTFBIQV9TSVpFLCAgICAxLAotICAgICAgICAgICAgR0xYX0RFUFRI
X1NJWkUsICAgIDEsCi0gICAgICAgICAgICBHTFhfWF9WSVNVQUxfVFlQRSwgR0xYX1RSVUVfQ09M
T1IsCi0gICAgICAgICAgICBHTFhfRE9VQkxFQlVGRkVSLCAgVHJ1ZSwKLSAgICAgICAgICAgIE5v
bmUKLSAgICAgICAgfTsKLQotICAgICAgICBtX3N1cmZhY2VDb250ZXh0RkJDb25maWcgPSBmaW5k
TWF0Y2hpbmdDb25maWcoYXR0cmlidXRlcyk7CisgICAgICAgIGlmIChtX2F0dHJpYnV0ZXMgJiBH
TFBsYXRmb3JtU3VyZmFjZTo6U3VwcG9ydEFscGhhKSB7CisgICAgICAgICAgICBnbHhTdXJmYWNl
QXR0cmlidXRlc1sxM10gPSA4OworICAgICAgICAgICAgZ2x4U3VyZmFjZUF0dHJpYnV0ZXNbNV0g
PSBHTFhfUkdCQV9CSVQ7CisgICAgICAgIH0KKworICAgICAgICBpZiAobV9hdHRyaWJ1dGVzICYg
R0xQbGF0Zm9ybVN1cmZhY2U6OkRvdWJsZUJ1ZmZlcikKKyAgICAgICAgICAgIGdseFN1cmZhY2VB
dHRyaWJ1dGVzWzE1XSA9IEdMX1RSVUU7CiAgICAgfQogCi0gICAgR0xYRkJDb25maWcgZmluZE1h
dGNoaW5nQ29uZmlnKGNvbnN0IGludCBhdHRyaWJ1dGVzW10sIGludCBkZXB0aCA9IDMyLCBWaXN1
YWxJRCBpZCA9IDApCisgICAgR0xYRkJDb25maWcgZmluZE1hdGNoaW5nQ29uZmlnKGNvbnN0IGlu
dCBhdHRyaWJ1dGVzW10sIGludCBkZXB0aCA9IDMyKQogICAgIHsKICAgICAgICAgaW50IG51bUF2
YWlsYWJsZUNvbmZpZ3M7CiAgICAgICAgIE93blB0clgxMTxHTFhGQkNvbmZpZz4gdGVtcChnbFhD
aG9vc2VGQkNvbmZpZyhYMTFIZWxwZXI6Om5hdGl2ZURpc3BsYXkoKSwgRGVmYXVsdFNjcmVlbihY
MTFIZWxwZXI6Om5hdGl2ZURpc3BsYXkoKSksIGF0dHJpYnV0ZXMsICZudW1BdmFpbGFibGVDb25m
aWdzKSk7CkBAIC0xNDAsMTQgKzE1MSwxNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgaWYgKCFz
Y29wZWRWaXN1YWxJbmZvLmdldCgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAg
ICAgICAgICBpZiAoaWQgJiYgc2NvcGVkVmlzdWFsSW5mby0+ZGVwdGggPT0gZGVwdGggJiYgc2Nv
cGVkVmlzdWFsSW5mby0+dmlzdWFsaWQgPT0gaWQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRl
bXBbaV07Ci0KICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKICAgICAgICAgICAgIGlmIChYMTFI
ZWxwZXI6OmlzWFJlbmRlckV4dGVuc2lvblN1cHBvcnRlZCgpKSB7CiAgICAgICAgICAgICAgICAg
WFJlbmRlclBpY3RGb3JtYXQqIGZvcm1hdCA9IFhSZW5kZXJGaW5kVmlzdWFsRm9ybWF0KFgxMUhl
bHBlcjo6bmF0aXZlRGlzcGxheSgpLCBzY29wZWRWaXN1YWxJbmZvLT52aXN1YWwpOwotICAgICAg
ICAgICAgICAgIGlmIChmb3JtYXQgJiYgZGVwdGggPT0gMzIgJiYgZm9ybWF0LT5kaXJlY3QuYWxw
aGFNYXNrID4gMCkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRlbXBbaV07CisKKyAgICAg
ICAgICAgICAgICBpZiAoZm9ybWF0KSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX2F0dHJp
YnV0ZXMgJiBHTFBsYXRmb3JtU3VyZmFjZTo6U3VwcG9ydEFscGhhKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoc2NvcGVkVmlzdWFsSW5mby0+ZGVwdGggPT0gZGVwdGggJiYgZm9ybWF0
LT5kaXJlY3QuYWxwaGFNYXNrID4gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gdGVtcFtpXTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghZm9ybWF0LT5kaXJl
Y3QuYWxwaGFNYXNrKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRlbXBbaV07Cisg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogI2VuZGlmCiAgICAgICAgICAgICBpZiAo
c2NvcGVkVmlzdWFsSW5mby0+ZGVwdGggPT0gZGVwdGgpCkBAIC0xNTUsMTEgKzE2OSwzOCBAQCBw
cml2YXRlOgogICAgICAgICB9CiAKICAgICAgICAgLy8gRGlkIG5vdCBmaW5kIGFueSB2aXN1YWwg
c3VwcG9ydGluZyBhbHBoYSwgc2VsZWN0IHRoZSBmaXJzdCBhdmFpbGFibGUgY29uZmlnLgorICAg
ICAgICBzY29wZWRWaXN1YWxJbmZvID0gZ2xYR2V0VmlzdWFsRnJvbUZCQ29uZmlnKFgxMUhlbHBl
cjo6bmF0aXZlRGlzcGxheSgpLCB0ZW1wWzBdKTsKKworICAgICAgICBpZiAoKG1fYXR0cmlidXRl
cyAmIEdMUGxhdGZvcm1TdXJmYWNlOjpTdXBwb3J0QWxwaGEpICYmIChzY29wZWRWaXN1YWxJbmZv
LT5kZXB0aCAhPSAzMikpCisgICAgICAgICAgICBtX2F0dHJpYnV0ZXMgJj0gfkdMUGxhdGZvcm1T
dXJmYWNlOjpTdXBwb3J0QWxwaGE7CisKICAgICAgICAgcmV0dXJuIHRlbXBbMF07CiAgICAgfQog
CisgICAgR0xYRkJDb25maWcgZmluZE1hdGNoaW5nQ29uZmlnV2l0aFZpc3VhbElkKGNvbnN0IGlu
dCBhdHRyaWJ1dGVzW10sIGludCBkZXB0aCwgVmlzdWFsSUQgaWQpCisgICAgeworICAgICAgICBp
bnQgbnVtQXZhaWxhYmxlQ29uZmlnczsKKyAgICAgICAgT3duUHRyWDExPEdMWEZCQ29uZmlnPiB0
ZW1wKGdsWENob29zZUZCQ29uZmlnKFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxheSgpLCBEZWZhdWx0
U2NyZWVuKFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxheSgpKSwgYXR0cmlidXRlcywgJm51bUF2YWls
YWJsZUNvbmZpZ3MpKTsKKworICAgICAgICBpZiAoIW51bUF2YWlsYWJsZUNvbmZpZ3MgfHwgIXRl
bXAuZ2V0KCkpCisgICAgICAgICAgICByZXR1cm4gMDsKKworICAgICAgICBPd25QdHJYMTE8WFZp
c3VhbEluZm8+IHNjb3BlZFZpc3VhbEluZm87CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwg
bnVtQXZhaWxhYmxlQ29uZmlnczsgKytpKSB7CisgICAgICAgICAgICBzY29wZWRWaXN1YWxJbmZv
ID0gZ2xYR2V0VmlzdWFsRnJvbUZCQ29uZmlnKFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxheSgpLCB0
ZW1wW2ldKTsKKyAgICAgICAgICAgIGlmICghc2NvcGVkVmlzdWFsSW5mby5nZXQoKSkKKyAgICAg
ICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgaWYgKGlkICYmIHNjb3BlZFZpc3Vh
bEluZm8tPmRlcHRoID09IGRlcHRoICYmIHNjb3BlZFZpc3VhbEluZm8tPnZpc3VhbGlkID09IGlk
KQorICAgICAgICAgICAgICAgIHJldHVybiB0ZW1wW2ldOworICAgICAgICB9CisKKyAgICAgICAg
cmV0dXJuIDA7CisgICAgfQorCiAgICAgR0xYRkJDb25maWcgbV9zdXJmYWNlQ29udGV4dEZCQ29u
ZmlnOwogICAgIEdMWEZCQ29uZmlnIG1fcGl4bWFwQ29udGV4dEZCQ29uZmlnOworICAgIEdMUGxh
dGZvcm1TdXJmYWNlOjpQbGF0Zm9ybVN1cmZhY2VBdHRyaWJ1dGVzIG1fYXR0cmlidXRlcyA6IDM7
CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9z
dXJmYWNlcy9nbHgvR0xYQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9zdXJmYWNlcy9nbHgvR0xYQ29udGV4dC5jcHAKaW5kZXggMTlkNGI3YjY3NWRhZTA1YWQ1
Mjk5YTk1MmFhMzViZTJhOWMwMjg2Yy4uMTBkNDRmODgyZWNhYjg5MGYxNTc2OTgwOWEwOTBkNDNm
MDM4N2U3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3Vy
ZmFjZXMvZ2x4L0dMWENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3N1cmZhY2VzL2dseC9HTFhDb250ZXh0LmNwcApAQCAtODQsOCArODQsOSBAQCBib29s
IEdMWE9mZlNjcmVlbkNvbnRleHQ6OmluaXRpYWxpemUoR0xQbGF0Zm9ybVN1cmZhY2UqIHN1cmZh
Y2UsIFBsYXRmb3JtQ29udGV4dAogICAgICAgICAgICAgICAgIGdsWERlc3Ryb3lDb250ZXh0KHgx
MURpc3BsYXksIG1fY29udGV4dEhhbmRsZSk7CiAgICAgICAgIH0KIAorICAgICAgICBib29sIHN1
cHBvcnRzQWxwaGEgPSBzdXJmYWNlLT5hdHRyaWJ1dGVzKCkgJiBHTFBsYXRmb3JtU3VyZmFjZTo6
U3VwcG9ydEFscGhhOwogICAgICAgICBpZiAoIW1fY29udGV4dEhhbmRsZSkKLSAgICAgICAgICAg
IG1fY29udGV4dEhhbmRsZSA9IGdsWENyZWF0ZU5ld0NvbnRleHQoeDExRGlzcGxheSwgY29uZmln
LCBHTFhfUkdCQV9UWVBFLCBzaGFyZWRDb250ZXh0LCB0cnVlKTsKKyAgICAgICAgICAgIG1fY29u
dGV4dEhhbmRsZSA9IGdsWENyZWF0ZU5ld0NvbnRleHQoeDExRGlzcGxheSwgY29uZmlnLCBzdXBw
b3J0c0FscGhhID8gR0xYX1JHQkFfVFlQRSA6IDAsIHNoYXJlZENvbnRleHQsIHRydWUpOwogCiAg
ICAgICAgIGlmIChtX2NvbnRleHRIYW5kbGUpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9H
TFhTdXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2Vz
L2dseC9HTFhTdXJmYWNlLmNwcAppbmRleCBlYmQzMGYzZTBmMTAxMmJiOTk1MTNkMWVjZGVhYzRh
MzUwN2I5NWFkLi4zY2Q3Mjk0YTU0ZDQ4ZDMzYmE4ODUyNWMzODA5ZjhhYjYyM2JlMjk1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xY
U3VyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFj
ZXMvZ2x4L0dMWFN1cmZhY2UuY3BwCkBAIC0zMiwxMSArMzIsMTIgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBzdGF0aWMgY29uc3QgaW50IHBidWZmZXJBdHRyaWJ1dGVzW10gPSB7IEdMWF9QQlVG
RkVSX1dJRFRILCAxLCBHTFhfUEJVRkZFUl9IRUlHSFQsIDEsIDAgfTsKIAotR0xYVHJhbnNwb3J0
U3VyZmFjZTo6R0xYVHJhbnNwb3J0U3VyZmFjZSgpCi0gICAgOiBHTFBsYXRmb3JtU3VyZmFjZSgp
CitHTFhUcmFuc3BvcnRTdXJmYWNlOjpHTFhUcmFuc3BvcnRTdXJmYWNlKFBsYXRmb3JtU3VyZmFj
ZUF0dHJpYnV0ZXMgc3VyZmFjZUF0dHJpYnV0ZXMpCisgICAgOiBHTFBsYXRmb3JtU3VyZmFjZShz
dXJmYWNlQXR0cmlidXRlcykKIHsKICAgICBtX3NoYXJlZERpc3BsYXkgPSBYMTFIZWxwZXI6Om5h
dGl2ZURpc3BsYXkoKTsKLSAgICBtX2NvbmZpZ1NlbGVjdG9yID0gYWRvcHRQdHIobmV3IEdMWENv
bmZpZ1NlbGVjdG9yKCkpOworICAgIEdMUGxhdGZvcm1TdXJmYWNlOjpQbGF0Zm9ybVN1cmZhY2VB
dHRyaWJ1dGVzIHNoYXJlZFN1cmZhY2VBdHRyaWJ1dGVzID0gc3VyZmFjZUF0dHJpYnV0ZXMgfCBH
TFBsYXRmb3JtU3VyZmFjZTo6RG91YmxlQnVmZmVyOworICAgIG1fY29uZmlnU2VsZWN0b3IgPSBh
ZG9wdFB0cihuZXcgR0xYQ29uZmlnU2VsZWN0b3Ioc2hhcmVkU3VyZmFjZUF0dHJpYnV0ZXMpKTsK
ICAgICBPd25QdHJYMTE8WFZpc3VhbEluZm8+IHZpc0luZm8obV9jb25maWdTZWxlY3Rvci0+dmlz
dWFsSW5mbyhtX2NvbmZpZ1NlbGVjdG9yLT5zdXJmYWNlQ29udGV4dENvbmZpZygpKSk7CiAKICAg
ICBpZiAoIXZpc0luZm8uZ2V0KCkpIHsKQEAgLTkyLDggKzkzLDEzIEBAIHZvaWQgR0xYVHJhbnNw
b3J0U3VyZmFjZTo6ZGVzdHJveSgpCiAgICAgbV9jb25maWdTZWxlY3RvciA9IG51bGxwdHI7CiB9
CiAKLUdMWE9mZlNjcmVlblN1cmZhY2U6OkdMWE9mZlNjcmVlblN1cmZhY2UoKQotICAgIDogR0xQ
bGF0Zm9ybVN1cmZhY2UoKQorR0xQbGF0Zm9ybVN1cmZhY2U6OlBsYXRmb3JtU3VyZmFjZUF0dHJp
YnV0ZXMgR0xYVHJhbnNwb3J0U3VyZmFjZTo6YXR0cmlidXRlcygpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fY29uZmlnU2VsZWN0b3ItPmF0dHJpYnV0ZXMoKTsKK30KKworR0xYT2ZmU2NyZWVuU3Vy
ZmFjZTo6R0xYT2ZmU2NyZWVuU3VyZmFjZShQbGF0Zm9ybVN1cmZhY2VBdHRyaWJ1dGVzIHN1cmZh
Y2VBdHRyaWJ1dGVzKQorICAgIDogR0xQbGF0Zm9ybVN1cmZhY2Uoc3VyZmFjZUF0dHJpYnV0ZXMp
CiAgICAgLCBtX3BpeG1hcCgwKQogICAgICwgbV9nbHhQaXhtYXAoMCkKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3Vy
ZmFjZS5oCmluZGV4IDQzMGZlNTE2NjE2ZGVjNWRkMDhkMzBkNTJkNzdkZTcxYjExZTNhYzQuLjVl
NDZiOWViMjExYjJjMGFjNGE2MzExYTQxMzM4YTM4MzkxZjQ3OTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZh
Y2UuaApAQCAtMzcsMTEgKzM3LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEdMWFRy
YW5zcG9ydFN1cmZhY2UgOiBwdWJsaWMgR0xQbGF0Zm9ybVN1cmZhY2UgewogCiBwdWJsaWM6Ci0g
ICAgR0xYVHJhbnNwb3J0U3VyZmFjZSgpOworICAgIEdMWFRyYW5zcG9ydFN1cmZhY2UoUGxhdGZv
cm1TdXJmYWNlQXR0cmlidXRlcyk7CiAgICAgdmlydHVhbCB+R0xYVHJhbnNwb3J0U3VyZmFjZSgp
OwogICAgIHZpcnR1YWwgUGxhdGZvcm1TdXJmYWNlQ29uZmlnIGNvbmZpZ3VyYXRpb24oKSBPVkVS
UklERTsKICAgICB2aXJ0dWFsIHZvaWQgc3dhcEJ1ZmZlcnMoKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0R2VvbWV0cnkoY29uc3QgSW50UmVjdCYpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgUGxhdGZvcm1TdXJmYWNlQXR0cmlidXRlcyBhdHRyaWJ1dGVzKCkgY29uc3QgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKSBPVkVSUklERTsKIAogcHJpdmF0ZToKQEAgLTUy
LDcgKzUzLDcgQEAgcHJpdmF0ZToKIGNsYXNzIEdMWE9mZlNjcmVlblN1cmZhY2UgOiBwdWJsaWMg
R0xQbGF0Zm9ybVN1cmZhY2UgewogCiBwdWJsaWM6Ci0gICAgR0xYT2ZmU2NyZWVuU3VyZmFjZSgp
OworICAgIEdMWE9mZlNjcmVlblN1cmZhY2UoUGxhdGZvcm1TdXJmYWNlQXR0cmlidXRlcyk7CiAg
ICAgdmlydHVhbCB+R0xYT2ZmU2NyZWVuU3VyZmFjZSgpOwogICAgIHZpcnR1YWwgUGxhdGZvcm1T
dXJmYWNlQ29uZmlnIGNvbmZpZ3VyYXRpb24oKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGVzdHJveSgpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dyYXBoaWNzU3VyZmFjZUdMWC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR3JhcGhpY3NTdXJmYWNlR0xYLmNw
cAppbmRleCA1ZTE4YTU5Yjk2NDc0OGU3MjE4MTQxZmYxYmFhZGM5Njk5MzAzYThmLi5lZmJjZjg5
ZmI5OTZkZGJkMTQ5M2ZkZmUzN2EyMDc3MzYwODUxOGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR3JhcGhpY3NTdXJmYWNlR0xYLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR3Jh
cGhpY3NTdXJmYWNlR0xYLmNwcApAQCAtODgsNyArODgsOSBAQCBzdHJ1Y3QgR3JhcGhpY3NTdXJm
YWNlUHJpdmF0ZSB7CiAgICAgICAgIFVOVVNFRF9QQVJBTShzaGFyZUNvbnRleHQpOwogI2VuZGlm
CiAKLSAgICAgICAgbV9jb25maWdTZWxlY3RvciA9IGFkb3B0UHRyKG5ldyBHTFhDb25maWdTZWxl
Y3RvcigpKTsKKyAgICAgICAgR0xQbGF0Zm9ybVN1cmZhY2U6OlBsYXRmb3JtU3VyZmFjZUF0dHJp
YnV0ZXMgc2hhcmVkU3VyZmFjZUF0dHJpYnV0ZXMgPSBHTFBsYXRmb3JtU3VyZmFjZTo6RG91Ymxl
QnVmZmVyIHwKKyAgICAgICAgICAgIEdMUGxhdGZvcm1TdXJmYWNlOjpTdXBwb3J0QWxwaGE7Cisg
ICAgICAgIG1fY29uZmlnU2VsZWN0b3IgPSBhZG9wdFB0cihuZXcgR0xYQ29uZmlnU2VsZWN0b3Io
c2hhcmVkU3VyZmFjZUF0dHJpYnV0ZXMpKTsKIAogICAgICAgICBpZiAoIW1fY29uZmlnU2VsZWN0
b3ItPnN1cmZhY2VDb250ZXh0Q29uZmlnKCkpIHsKICAgICAgICAgICAgIGNsZWFyKCk7CkBAIC0x
MTAsNyArMTEyLDYgQEAgc3RydWN0IEdyYXBoaWNzU3VyZmFjZVByaXZhdGUgewogICAgICAgICAs
IG1faXNSZWNlaXZlcih0cnVlKQogICAgICAgICAsIG1fdGV4dHVyZSgwKQogICAgIHsKLSAgICAg
ICAgbV9jb25maWdTZWxlY3RvciA9IGFkb3B0UHRyKG5ldyBHTFhDb25maWdTZWxlY3RvcigpKTsK
ICAgICB9CiAKICAgICB+R3JhcGhpY3NTdXJmYWNlUHJpdmF0ZSgpCkBAIC0xNDQsOSArMTQ1LDYg
QEAgc3RydWN0IEdyYXBoaWNzU3VyZmFjZVByaXZhdGUgewogCiAgICAgdm9pZCBjcmVhdGVQaXht
YXAodWludDMyX3Qgd2luSWQpCiAgICAgewotICAgICAgICBpZiAoIW1fY29uZmlnU2VsZWN0b3Ip
Ci0gICAgICAgICAgICByZXR1cm47Ci0KICAgICAgICAgWFdpbmRvd0F0dHJpYnV0ZXMgYXR0cjsK
ICAgICAgICAgaWYgKCFYR2V0V2luZG93QXR0cmlidXRlcyhkaXNwbGF5KCksIHdpbklkLCAmYXR0
cikpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0xNjEsNyArMTU5LDE1IEBAIHN0cnVjdCBHcmFw
aGljc1N1cmZhY2VQcml2YXRlIHsKICAgICAgICAgWFJlbmRlclBpY3RGb3JtYXQqIGZvcm1hdCA9
IFhSZW5kZXJGaW5kVmlzdWFsRm9ybWF0KGRpc3BsYXkoKSwgYXR0ci52aXN1YWwpOwogICAgICAg
ICBib29sIGhhc0FscGhhID0gKGZvcm1hdC0+dHlwZSA9PSBQaWN0VHlwZURpcmVjdCAmJiBmb3Jt
YXQtPmRpcmVjdC5hbHBoYU1hc2spOwogICAgICAgICBtX3hQaXhtYXAgPSBYQ29tcG9zaXRlTmFt
ZVdpbmRvd1BpeG1hcChkaXNwbGF5KCksIHdpbklkKTsKLSAgICAgICAgZ2x4QXR0cmlidXRlc1sx
XSA9IChmb3JtYXQtPmRlcHRoID09IDMyIHx8IGhhc0FscGhhKSA/IEdMWF9URVhUVVJFX0ZPUk1B
VF9SR0JBX0VYVCA6IEdMWF9URVhUVVJFX0ZPUk1BVF9SR0JfRVhUOworICAgICAgICBnbHhBdHRy
aWJ1dGVzWzFdID0gKGZvcm1hdC0+ZGVwdGggPT0gMzIgJiYgaGFzQWxwaGEpID8gR0xYX1RFWFRV
UkVfRk9STUFUX1JHQkFfRVhUIDogR0xYX1RFWFRVUkVfRk9STUFUX1JHQl9FWFQ7CisKKyAgICAg
ICAgR0xQbGF0Zm9ybVN1cmZhY2U6OlBsYXRmb3JtU3VyZmFjZUF0dHJpYnV0ZXMgc2hhcmVkU3Vy
ZmFjZUF0dHJpYnV0ZXMgPSBHTFBsYXRmb3JtU3VyZmFjZTo6RGVmYXVsdEF0dHJpYnV0ZXM7Cisg
ICAgICAgIGlmIChoYXNBbHBoYSkKKyAgICAgICAgICAgIHNoYXJlZFN1cmZhY2VBdHRyaWJ1dGVz
ID0gR0xQbGF0Zm9ybVN1cmZhY2U6OlN1cHBvcnRBbHBoYTsKKworICAgICAgICBpZiAoIW1fY29u
ZmlnU2VsZWN0b3IpCisgICAgICAgICAgICBtX2NvbmZpZ1NlbGVjdG9yID0gYWRvcHRQdHIobmV3
IEdMWENvbmZpZ1NlbGVjdG9yKHNoYXJlZFN1cmZhY2VBdHRyaWJ1dGVzKSk7CisKICAgICAgICAg
bV9nbHhQaXhtYXAgPSBnbFhDcmVhdGVQaXhtYXAoZGlzcGxheSgpLCBtX2NvbmZpZ1NlbGVjdG9y
LT5zdXJmYWNlQ2xpZW50Q29uZmlnKGZvcm1hdC0+ZGVwdGgsIFhWaXN1YWxJREZyb21WaXN1YWwo
YXR0ci52aXN1YWwpKSwgbV94UGl4bWFwLCBnbHhBdHRyaWJ1dGVzKTsKIAogICAgICAgICBpZiAo
IWhhbmRsZXIuaXNWYWxpZE9wZXJhdGlvbigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L1gxMUhlbHBlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvWDExSGVscGVyLmNwcAppbmRleCAy
NDcyNzRhNDZhNzU0ODVmNTkyZDY1ZjAwMTkyNmU2MmE0NDBlOGNjLi5jZWRkNDUzZjI5YTgzMGIy
Mzc5NmVlNTk1N2YzODdhZmRkZWI3NTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvWDExSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvWDExSGVscGVyLmNwcApAQCAtMjIy
LDggKzIyMiw5IEBAIHZvaWQgWDExSGVscGVyOjpjcmVhdGVPZmZTY3JlZW5XaW5kb3codWludDMy
X3QqIGhhbmRsZUlkLCBjb25zdCBYVmlzdWFsSW5mbyYgdmlzCiB9CiAKICNpZiBVU0UoRUdMKQot
dm9pZCBYMTFIZWxwZXI6OmNyZWF0ZU9mZlNjcmVlbldpbmRvdyh1aW50MzJfdCogaGFuZGxlSWQs
IGNvbnN0IEVHTGludCBpZCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3ZvaWQgWDExSGVscGVyOjpj
cmVhdGVPZmZTY3JlZW5XaW5kb3codWludDMyX3QqIGhhbmRsZUlkLCBjb25zdCBFR0xpbnQgaWQs
IGJvb2wgc3VwcG9ydHNBbHBoYSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKKyNpZiBVU0UoR1JB
UEhJQ1NfU1VSRkFDRSkKICAgICBWaXN1YWxJRCB2aXN1YWxJZCA9IHN0YXRpY19jYXN0PFZpc3Vh
bElEPihpZCk7CiAKICAgICBpZiAoIXZpc3VhbElkKQpAQCAtMjQzLDEzICsyNDQsMjIgQEAgdm9p
ZCBYMTFIZWxwZXI6OmNyZWF0ZU9mZlNjcmVlbldpbmRvdyh1aW50MzJfdCogaGFuZGxlSWQsIGNv
bnN0IEVHTGludCBpZCwgY29uc3QKIAogICAgICAgICAgICAgaWYgKGlzWFJlbmRlckV4dGVuc2lv
blN1cHBvcnRlZCgpKSB7CiAgICAgICAgICAgICAgICAgWFJlbmRlclBpY3RGb3JtYXQqIGZvcm1h
dCA9IFhSZW5kZXJGaW5kVmlzdWFsRm9ybWF0KG5hdGl2ZURpc3BsYXkoKSwgdGVtcC0+dmlzdWFs
KTsKLSAgICAgICAgICAgICAgICBpZiAoZm9ybWF0ICYmIGZvcm1hdC0+ZGlyZWN0LmFscGhhTWFz
ayA+IDApIHsKLSAgICAgICAgICAgICAgICAgICAgZm91bmRWaXN1YWwgPSB0ZW1wOwotICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIGlmIChmb3JtYXQpIHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKHN1cHBvcnRzQWxwaGEpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICh0ZW1wLT5kZXB0aCA9PSAzMiAmJiBmb3JtYXQtPmRpcmVjdC5hbHBoYU1hc2sg
PiAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvdW5kVmlzdWFsID0gdGVtcDsKKyAg
ICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghZm9ybWF0LT5kaXJlY3QuYWxwaGFNYXNrKQor
ICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRWaXN1YWwgPSB0ZW1wOwogICAgICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChmb3VuZFZpc3VhbCkKKyAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmICh0ZW1wLT5kZXB0
aCA9PSAzMikgeworICAgICAgICAgICAgaW50IG1hdGNoaW5nZGVwdGggPSBzdXBwb3J0c0FscGhh
ID8gMzIgOiAyNDsKKworICAgICAgICAgICAgaWYgKHRlbXAtPmRlcHRoID09IG1hdGNoaW5nZGVw
dGgpIHsKICAgICAgICAgICAgICAgICBmb3VuZFZpc3VhbCA9IHRlbXA7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC0yNTgsNiArMjY4LDExIEBAIHZvaWQgWDExSGVs
cGVyOjpjcmVhdGVPZmZTY3JlZW5XaW5kb3codWludDMyX3QqIGhhbmRsZUlkLCBjb25zdCBFR0xp
bnQgaWQsIGNvbnN0CiAgICAgICAgIGlmIChmb3VuZFZpc3VhbCkKICAgICAgICAgICAgIGNyZWF0
ZU9mZlNjcmVlbldpbmRvdyhoYW5kbGVJZCwgKmZvdW5kVmlzdWFsLCBzaXplKTsKICAgICB9Cisj
ZWxzZQorICAgIFVOVVNFRF9QQVJBTShoYW5kbGVJZCk7CisgICAgVU5VU0VEX1BBUkFNKGlkKTsK
KyAgICBVTlVTRURfUEFSQU0oc2l6ZSk7CisjZW5kaWYKIH0KICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvWDExSGVscGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvWDExSGVs
cGVyLmgKaW5kZXggNjhjNzVkZDc4MDAyNGM5MmNkNjU0OGJkNDI3MTE3ZDBkMzU0MjJlNS4uN2Qz
ZWJhZTNlMjNlZDk2ZTdmMDMyZDBhMjA2MGU1YTkxODliNjI5YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L1gxMUhlbHBlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9YMTFIZWxwZXIu
aApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgY3JlYXRlUGl4bWFw
KFBpeG1hcCosIGNvbnN0IFhWaXN1YWxJbmZvJiwgY29uc3QgSW50U2l6ZSYgPSBJbnRTaXplKDEs
IDEpKTsKICAgICBzdGF0aWMgdm9pZCBjcmVhdGVPZmZTY3JlZW5XaW5kb3codWludDMyX3QqLCBj
b25zdCBYVmlzdWFsSW5mbyYsIGNvbnN0IEludFNpemUmID0gSW50U2l6ZSgxLCAxKSk7CiAjaWYg
VVNFKEVHTCkKLSAgICBzdGF0aWMgdm9pZCBjcmVhdGVPZmZTY3JlZW5XaW5kb3codWludDMyX3Qq
LCBjb25zdCBFR0xpbnQsIGNvbnN0IEludFNpemUmID0gSW50U2l6ZSgxLCAxKSk7CisgICAgc3Rh
dGljIHZvaWQgY3JlYXRlT2ZmU2NyZWVuV2luZG93KHVpbnQzMl90KiwgY29uc3QgRUdMaW50LCBi
b29sLCBjb25zdCBJbnRTaXplJiA9IEludFNpemUoMSwgMSkpOwogI2VuZGlmCiAgICAgc3RhdGlj
IHZvaWQgZGVzdHJveVdpbmRvdyhjb25zdCB1aW50MzJfdCk7CiAgICAgc3RhdGljIHZvaWQgZGVz
dHJveVBpeG1hcChjb25zdCB1aW50MzJfdCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggN2FlZDYzMzc0MmNmMDcyMzdjYjFi
NjkwNmQ1YzAxMDc1NDQ0Nzc2ZC4uYzgwYmE2Y2RiMTQwYzBlMDMzYzc4OTJlOTQzOWQ2YjdiNTRh
M2Q4MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAyLTIwICBLb25kYXBhbGx5IEthbHlh
biAgPGthbHlhbi5rb25kYXBhbGx5QGludGVsLmNvbT4KKworICAgICAgICBbV2ViR0xdW0VGTF0g
U3VwcG9ydCBmb3IgY3JlYXRpbmcgc3VyZmFjZSB3aXRoIGFscGhhIGRpc2FibGVkLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMDY3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5hYmxlZCBjb21wb3Np
dGluZy93ZWJnbC93ZWJnbC1uby1hbHBoYS5odG1sIGZvciBFZmwgcG9ydC4KKworICAgICAgICAq
IHBsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9j
b21wb3NpdGluZy93ZWJnbC93ZWJnbC1uby1hbHBoYS1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2VmbC9jb21wb3NpdGluZy93ZWJnbC93ZWJnbC1uby1hbHBoYS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorCiAyMDEzLTAyLTIwICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxl
LmNvbT4KIAogICAgICAgICBbTmV3IE11bHRpY29sdW1uXSBDb2x1bW4gZ2FwIGlzIGNvbXB1dGVk
IGluY29ycmVjdGx5LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCAxY2E4MWZkMWU1Mzk2YjM3ZTIyNTQ0YjI2MTY4NDU5M2VhNzg2NzY1Li40MDFkYjM1MmQ1
YjFkMDExY2MxZWJmNmEzYzFlNGNkNWQ0ZDg2MTk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9l
ZmwvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTcyNyw3ICsxNzI3LDYgQEAgd2Via2l0Lm9yZy9iLzEw
NDU3MSBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi1leGFjdC1tYXRjaGluZy5odG1s
IFsgRmFpbHUKIAogIyBSZW5kZXJpbmcgZmFpbHVyZSwgYWxzbyBtaXNzaW5nIGV4cGVjdGVkIHJl
c3VsdHM6CiB3ZWJraXQub3JnL2IvMTA1MDkzIGNvbXBvc2l0aW5nL3dlYmdsL3dlYmdsLWJhY2tn
cm91bmQtY29sb3IuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzEwNTA5MyBjb21wb3NpdGlu
Zy93ZWJnbC93ZWJnbC1uby1hbHBoYS5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTA1MDkz
IGNvbXBvc2l0aW5nL3dlYmdsL3dlYmdsLW5vbnByZW11bHRpcGxpZWQtYmxlbmQuaHRtbCBbIFNr
aXAgXQogd2Via2l0Lm9yZy9iLzEwNTA5MyBjb21wb3NpdGluZy93ZWJnbC93ZWJnbC1yZWZsZWN0
aW9uLmh0bWwgWyBTa2lwIF0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZs
L2NvbXBvc2l0aW5nL3dlYmdsL3dlYmdsLW5vLWFscGhhLWV4cGVjdGVkLnBuZyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2VmbC9jb21wb3NpdGluZy93ZWJnbC93ZWJnbC1uby1hbHBoYS1leHBlY3Rl
ZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMTRhYzA2ZWU5YzQ0MGQ0MmFkZDQ5M2Q1MjU4NDBkZTJmZWY5NTM0
MgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMjkxMAp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+
eVV7K3ZZVjJhPmkwKlopPWheaGxBJUBXcyRsSGBvazxtfT9vVG40a20KejZyJl9WR2g7Szh2XyEq
SHFtKlByVmBDI2ohPSNrZEJ2VjZFTCErYDg4VFd2aSpwal42VF5SbUA7RFd1JkNvP2NgCnotU2Mj
RDQ1XnMmX0ooMkpWRnYtMGdOcU9SdWRrZUk5Q3x6M0JVRkZKMkUqJVRXRWRFJSoxdShCVjNfWmd6
e3FmZgp6TVUyNzBoZjBoJF92QWo1JSswUTVsRnZBbzxJbkoqeUo3PGFMbFA0PWdNISo5Vj5BIyhR
diR0biFTYDxzJVBsd0MKekdCUH5TbUQ2RXBtfm51S3BAV2wzakp2bSk9UkdefmptN1JsPkFKVV4z
XmZ6JCNVdTJXT1lMe3EhVGUkUjYmfnU5CnpEJTJ7U00kTXNPUTlsfShnRT1yazZ8cVZCSGVrREEm
KFVVOTFfOXYrMV9yfiVRTzBOPjRDJDJjbntmeFg7TU5hWQpTbSlRZmB6Nl9xT2VsRntyNX1FKkg3
OTdhewoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZWZsL2NvbXBvc2l0aW5nL3dlYmdsL3dlYmdsLW5vLWFscGhhLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9jb21wb3NpdGluZy93ZWJnbC93ZWJnbC1uby1hbHBo
YS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGIxMzc4OTE3OTFmZTk2OTI3YWQ3OGU2NGIwYWFk
N2JkZWQwOGJkYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9j
b21wb3NpdGluZy93ZWJnbC93ZWJnbC1uby1hbHBoYS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBA
QAorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189617</attachid>
            <date>2013-02-21 15:27:33 -0800</date>
            <delta_ts>2013-02-21 15:34:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110067-20130222012353.patch</filename>
            <type>text/plain</type>
            <size>33539</size>
            <attacher name="Kalyan">kalyan.kondapally</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDRjMTc1OTM5MTJmZmZh
NGVkYjYyZWQzMDA3MTRlNmRmMTM5OWM3NC4uY2Y5MjlmZGNiNjA4ZDIxZWM1MTAzODNiODlmN2Jh
ZjcxODM1MmM1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEzLTAyLTIwICBLb25k
YXBhbGx5IEthbHlhbiAgPGthbHlhbi5rb25kYXBhbGx5QGludGVsLmNvbT4KKworICAgICAgICBb
V2ViR0xdW0VGTF0gU3VwcG9ydCBmb3IgY3JlYXRpbmcgc3VyZmFjZSB3aXRoIGFscGhhIGRpc2Fi
bGVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEw
MDY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292
ZXJlZCBieSBjb21wb3NpdGluZy93ZWJnbC93ZWJnbC1uby1hbHBoYS5odG1sCisKKyAgICAgICAg
V2UgY3VycmVudGx5IGFsd2F5cyBjcmVhdGUgYSBzdXJmYWNlIHN1cHBvcnRpbmcgYWxwaGEgY2hh
bm5lbC4gCisgICAgICAgIFdpdGggdGhpcyBwYXRjaCB3ZSBjcmVhdGUgdGhlIHN1cmZhY2Ugd2l0
aCBhbHBoYSBvbmx5IGlmCisgICAgICAgIHJlcXVpcmVkLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmluaXRpYWxpemUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaDoKKyAgICAgICAg
KEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdMUGxhdGZv
cm1TdXJmYWNlOjpjcmVhdGVPZmZTY3JlZW5TdXJmYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkdM
UGxhdGZvcm1TdXJmYWNlOjpjcmVhdGVUcmFuc3BvcnRTdXJmYWNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkdMUGxhdGZvcm1TdXJmYWNlOjpHTFBsYXRmb3JtU3VyZmFjZSk6CisgICAgICAgIChXZWJD
b3JlOjpHTFBsYXRmb3JtU3VyZmFjZTo6YXR0cmlidXRlcyk6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMQ29uZmlnU2VsZWN0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpFR0xDb25maWdT
ZWxlY3Rvcjo6RUdMQ29uZmlnU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6RUdMQ29uZmln
U2VsZWN0b3I6OnBCdWZmZXJDb250ZXh0Q29uZmlnKToKKyAgICAgICAgKFdlYkNvcmU6OkVHTENv
bmZpZ1NlbGVjdG9yOjpzdXJmYWNlQ29udGV4dENvbmZpZyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTENvbmZpZ1NlbGVjdG9yLmg6CisgICAgICAgIChFR0xD
b25maWdTZWxlY3Rvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWds
L0VHTFN1cmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RUdMV2luZG93VHJhbnNwb3J0U3Vy
ZmFjZTo6RUdMV2luZG93VHJhbnNwb3J0U3VyZmFjZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvc3VyZmFjZXMvZWdsL0VHTFN1cmZhY2UuaDoKKyAgICAgICAgKEVHTFdpbmRvd1RyYW5z
cG9ydFN1cmZhY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9H
TFhDb25maWdTZWxlY3Rvci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHTFhDb25maWdTZWxlY3Rvcjo6R0xYQ29uZmlnU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6R0xYQ29uZmlnU2VsZWN0b3I6OnBpeG1hcENvbnRleHRDb25maWcpOgorICAgICAgICAoV2Vi
Q29yZTo6R0xYQ29uZmlnU2VsZWN0b3I6OnN1cmZhY2VDb250ZXh0Q29uZmlnKToKKyAgICAgICAg
KFdlYkNvcmU6OkdMWENvbmZpZ1NlbGVjdG9yOjpzdXJmYWNlQ2xpZW50Q29uZmlnKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdMWENvbmZpZ1NlbGVjdG9yOjp2YWxpZGF0ZUF0dHJpYnV0ZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6R0xYQ29uZmlnU2VsZWN0b3I6OmZpbmRNYXRjaGluZ0NvbmZpZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpHTFhDb25maWdTZWxlY3Rvcjo6ZmluZE1hdGNoaW5nQ29uZmlnV2l0
aFZpc3VhbElkKToKKyAgICAgICAgKEdMWENvbmZpZ1NlbGVjdG9yKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHTFhPZmZTY3JlZW5Db250ZXh0Ojppbml0aWFsaXplKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHTFhUcmFuc3BvcnRTdXJmYWNlOjpHTFhUcmFuc3BvcnRTdXJmYWNlKToKKyAgICAgICAgKFdl
YkNvcmU6OkdMWE9mZlNjcmVlblN1cmZhY2U6OkdMWE9mZlNjcmVlblN1cmZhY2UpOgorICAgICAg
ICAoV2ViQ29yZTo6R0xYT2ZmU2NyZWVuU3VyZmFjZTo6aW5pdGlhbGl6ZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuaDoKKyAgICAgICAgKEdM
WFRyYW5zcG9ydFN1cmZhY2UpOgorICAgICAgICAoR0xYT2ZmU2NyZWVuU3VyZmFjZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dyYXBoaWNzU3VyZmFjZUdMWC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VQcml2YXRlOjpHcmFwaGljc1N1
cmZhY2VQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVByaXZhdGU6
OmNyZWF0ZVBpeG1hcCk6CisKIDIwMTMtMDItMjAgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtOZXcgTXVsdGljb2x1bW5dIENvbHVtbiBnYXAgaXMgY29tcHV0ZWQg
aW5jb3JyZWN0bHkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCmluZGV4IDNkNjAx
ZmUyZjg3Njg2YzAyNThiMmEwY2U2NzY1MTFiZTY5OWU4NWUuLmNiODRhOWZlZjAwYTdkNzNmZmM4
Mjg2YzY3Zjg2YzljZjk0YTA1ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3Bw
CkBAIC02MCwxNiArNjAsNiBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6aW5pdGlh
bGl6ZSgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChtX2NvbnRleHQtPm1fcmVu
ZGVyU3R5bGUgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlck9mZnNjcmVlbikgewotI2lmIFVT
RShHUkFQSElDU19TVVJGQUNFKQotICAgICAgICBtX3NoYXJlZFN1cmZhY2UgPSBHTFBsYXRmb3Jt
U3VyZmFjZTo6Y3JlYXRlVHJhbnNwb3J0U3VyZmFjZSgpOwotICAgICAgICBpZiAoIW1fc2hhcmVk
U3VyZmFjZSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBtX3NoYXJlZENv
bnRleHQgPSBHTFBsYXRmb3JtQ29udGV4dDo6Y3JlYXRlQ29udGV4dChtX2NvbnRleHQtPm1fcmVu
ZGVyU3R5bGUpOwotICAgICAgICBpZiAoIW1fc2hhcmVkQ29udGV4dCkKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSNlbmRpZgotCiAgICAgICAgIG1fb2ZmU2NyZWVuU3VyZmFjZSA9IEdMUGxh
dGZvcm1TdXJmYWNlOjpjcmVhdGVPZmZTY3JlZW5TdXJmYWNlKCk7CiAKICAgICAgICAgaWYgKCFt
X29mZlNjcmVlblN1cmZhY2UpCkBAIC03OSw2ICs2OSwyMyBAQCBib29sIEdyYXBoaWNzQ29udGV4
dDNEUHJpdmF0ZTo6aW5pdGlhbGl6ZSgpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICNp
ZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKKyAgICAgICAgaWYgKCFtYWtlQ29udGV4dEN1cnJlbnQo
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBtX2NvbnRleHQtPnZhbGlk
YXRlQXR0cmlidXRlcygpOworICAgICAgICBHTFBsYXRmb3JtU3VyZmFjZTo6QXR0cmlidXRlcyBz
aGFyZWRTdXJmYWNlQXR0cmlidXRlcyA9IEdMUGxhdGZvcm1TdXJmYWNlOjpEZWZhdWx0OworICAg
ICAgICBpZiAobV9jb250ZXh0LT5tX2F0dHJzLmFscGhhKQorICAgICAgICAgICAgc2hhcmVkU3Vy
ZmFjZUF0dHJpYnV0ZXMgPSBHTFBsYXRmb3JtU3VyZmFjZTo6U3VwcG9ydEFscGhhOworCisgICAg
ICAgIG1fb2ZmU2NyZWVuQ29udGV4dC0+cmVsZWFzZUN1cnJlbnQoKTsKKyAgICAgICAgbV9zaGFy
ZWRTdXJmYWNlID0gR0xQbGF0Zm9ybVN1cmZhY2U6OmNyZWF0ZVRyYW5zcG9ydFN1cmZhY2Uoc2hh
cmVkU3VyZmFjZUF0dHJpYnV0ZXMpOworICAgICAgICBpZiAoIW1fc2hhcmVkU3VyZmFjZSkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBtX3NoYXJlZENvbnRleHQgPSBHTFBs
YXRmb3JtQ29udGV4dDo6Y3JlYXRlQ29udGV4dChtX2NvbnRleHQtPm1fcmVuZGVyU3R5bGUpOwor
ICAgICAgICBpZiAoIW1fc2hhcmVkQ29udGV4dCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KwogICAgICAgICBpZiAoIW1fc2hhcmVkQ29udGV4dC0+aW5pdGlhbGl6ZShtX3NoYXJlZFN1cmZh
Y2UuZ2V0KCksIG1fb2ZmU2NyZWVuQ29udGV4dC0+aGFuZGxlKCkpKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcAppbmRleCAwNzFhODNiNzdjZWEw
ZDc1MGZlMmNiMjA4NWU0YjExNGY4YzhjOTUzLi43Mjk3ZGFiMDMyNDcxMjAxM2UwNmI3Njg4OWIy
NDQ2OGFjMmE1M2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5jcHAKQEAgLTQwLDI0ICs0MCwy
NiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NPd25QdHI8R0xQbGF0Zm9ybVN1cmZh
Y2U+IEdMUGxhdGZvcm1TdXJmYWNlOjpjcmVhdGVPZmZTY3JlZW5TdXJmYWNlKCkKK1Bhc3NPd25Q
dHI8R0xQbGF0Zm9ybVN1cmZhY2U+IEdMUGxhdGZvcm1TdXJmYWNlOjpjcmVhdGVPZmZTY3JlZW5T
dXJmYWNlKEF0dHJpYnV0ZXMgc3VyZmFjZUF0dHJpYnV0ZXMpCiB7CiAjaWYgVVNFKEdMWCkKLSAg
ICBPd25QdHI8R0xQbGF0Zm9ybVN1cmZhY2U+IHN1cmZhY2UgPSBhZG9wdFB0cihuZXcgR0xYT2Zm
U2NyZWVuU3VyZmFjZSgpKTsKKyAgICBPd25QdHI8R0xQbGF0Zm9ybVN1cmZhY2U+IHN1cmZhY2Ug
PSBhZG9wdFB0cihuZXcgR0xYT2ZmU2NyZWVuU3VyZmFjZShzdXJmYWNlQXR0cmlidXRlcykpOwog
CiAgICAgaWYgKHN1cmZhY2UtPmRyYXdhYmxlKCkpCiAgICAgICAgIHJldHVybiBzdXJmYWNlLnJl
bGVhc2UoKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHN1cmZhY2VBdHRyaWJ1dGVzKTsKICNl
bmRpZgogCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVBhc3NPd25QdHI8R0xQbGF0Zm9ybVN1
cmZhY2U+IEdMUGxhdGZvcm1TdXJmYWNlOjpjcmVhdGVUcmFuc3BvcnRTdXJmYWNlKCkKK1Bhc3NP
d25QdHI8R0xQbGF0Zm9ybVN1cmZhY2U+IEdMUGxhdGZvcm1TdXJmYWNlOjpjcmVhdGVUcmFuc3Bv
cnRTdXJmYWNlKEF0dHJpYnV0ZXMgc3VyZmFjZUF0dHJpYnV0ZXMpCiB7CiAjaWYgVVNFKEdMWCkK
LSAgICBPd25QdHI8R0xQbGF0Zm9ybVN1cmZhY2U+IHN1cmZhY2UgPSBhZG9wdFB0cihuZXcgR0xY
VHJhbnNwb3J0U3VyZmFjZSgpKTsKKyAgICBPd25QdHI8R0xQbGF0Zm9ybVN1cmZhY2U+IHN1cmZh
Y2UgPSBhZG9wdFB0cihuZXcgR0xYVHJhbnNwb3J0U3VyZmFjZShzdXJmYWNlQXR0cmlidXRlcykp
OwogI2VsaWYgVVNFKEVHTCkKLSAgICBPd25QdHI8R0xQbGF0Zm9ybVN1cmZhY2U+IHN1cmZhY2Ug
PSBhZG9wdFB0cihuZXcgRUdMV2luZG93VHJhbnNwb3J0U3VyZmFjZSgpKTsKKyAgICBPd25QdHI8
R0xQbGF0Zm9ybVN1cmZhY2U+IHN1cmZhY2UgPSBhZG9wdFB0cihuZXcgRUdMV2luZG93VHJhbnNw
b3J0U3VyZmFjZShzdXJmYWNlQXR0cmlidXRlcykpOwogI2VuZGlmCiAKICAgICBpZiAoc3VyZmFj
ZSAmJiBzdXJmYWNlLT5oYW5kbGUoKSAmJiBzdXJmYWNlLT5kcmF3YWJsZSgpKQpAQCAtNjYsNyAr
NjgsNyBAQCBQYXNzT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBHTFBsYXRmb3JtU3VyZmFjZTo6
Y3JlYXRlVHJhbnNwb3J0U3VyZmFjZSgpCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLUdMUGxh
dGZvcm1TdXJmYWNlOjpHTFBsYXRmb3JtU3VyZmFjZSgpCitHTFBsYXRmb3JtU3VyZmFjZTo6R0xQ
bGF0Zm9ybVN1cmZhY2UoQXR0cmlidXRlcykKICAgICA6IG1fZmJvSWQoMCkKICAgICAsIG1fc2hh
cmVkRGlzcGxheSgwKQogICAgICwgbV9kcmF3YWJsZSgwKQpAQCAtMTQ0LDYgKzE0NiwxMSBAQCB2
b2lkIEdMUGxhdGZvcm1TdXJmYWNlOjpkZXN0cm95KCkKICAgICB9CiB9CiAKK0dMUGxhdGZvcm1T
dXJmYWNlOjpBdHRyaWJ1dGVzIEdMUGxhdGZvcm1TdXJmYWNlOjpzdXJmYWNlQXR0cmlidXRlcygp
IGNvbnN0Cit7CisgICAgcmV0dXJuIEdMUGxhdGZvcm1TdXJmYWNlOjpEZWZhdWx0OworfQorCiB9
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuaAppbmRleCAwMGRkN2M5MWVmOTMxYWEzZWQ3
ZjA0MzdjZDVkNWYxZGFmZTNkM2FlLi4yODI3MWQ2NzA2YmJlZDA2MmM1YjZhYmViNDkxYTgxYWRj
ODEzNmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR0xQbGF0Zm9ybVN1cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuaApAQCAtNDEsMTIgKzQxLDE5IEBAIGNsYXNz
IEdMUGxhdGZvcm1TdXJmYWNlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShHTFBsYXRmb3Jt
U3VyZmFjZSk7CiAKIHB1YmxpYzoKKyAgICBlbnVtIFN1cmZhY2VBdHRyaWJ1dGVzIHsKKyAgICAg
ICAgRGVmYXVsdCA9IDB4MDAsIC8vIE5vIEFscGhhIGNoYW5uZWwuIE9ubHkgUixHLEIgdmFsdWVz
IHNldC4KKyAgICAgICAgU3VwcG9ydEFscGhhID0gMHgwMSwKKyAgICAgICAgRG91YmxlQnVmZmVy
ZWQgPSAweDA0CisgICAgfTsKKworICAgIHR5cGVkZWYgaW50IEF0dHJpYnV0ZXM7CiAgICAgLy8g
Q3JlYXRlcyBhIEdMIHN1cmZhY2UgdXNlZCBmb3Igb2Zmc2NyZWVuIHJlbmRlcmluZy4KLSAgICBz
dGF0aWMgUGFzc093blB0cjxHTFBsYXRmb3JtU3VyZmFjZT4gY3JlYXRlT2ZmU2NyZWVuU3VyZmFj
ZSgpOworICAgIHN0YXRpYyBQYXNzT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBjcmVhdGVPZmZT
Y3JlZW5TdXJmYWNlKEF0dHJpYnV0ZXMgPSBHTFBsYXRmb3JtU3VyZmFjZTo6RGVmYXVsdCk7CiAK
ICAgICAvLyBDcmVhdGVzIGEgR0wgc3VyZmFjZSB1c2VkIGZvciBvZmZzY3JlZW4gcmVuZGVyaW5n
LiBUaGUgcmVzdWx0cyBjYW4gYmUgdHJhbnNwb3J0ZWQKICAgICAvLyB0byB0aGUgVUkgcHJvY2Vz
cyBmb3IgZGlzcGxheS4KLSAgICBzdGF0aWMgUGFzc093blB0cjxHTFBsYXRmb3JtU3VyZmFjZT4g
Y3JlYXRlVHJhbnNwb3J0U3VyZmFjZSgpOworICAgIHN0YXRpYyBQYXNzT3duUHRyPEdMUGxhdGZv
cm1TdXJmYWNlPiBjcmVhdGVUcmFuc3BvcnRTdXJmYWNlKEF0dHJpYnV0ZXMgPSBHTFBsYXRmb3Jt
U3VyZmFjZTo6RGVmYXVsdCk7CiAKICAgICB2aXJ0dWFsIH5HTFBsYXRmb3JtU3VyZmFjZSgpOwog
CkBAIC02MSw2ICs2OCw4IEBAIHB1YmxpYzoKIAogICAgIFBsYXRmb3JtRGlzcGxheSBzaGFyZWRE
aXNwbGF5KCkgY29uc3Q7CiAKKyAgICB2aXJ0dWFsIEF0dHJpYnV0ZXMgc3VyZmFjZUF0dHJpYnV0
ZXMoKSBjb25zdDsKKwogICAgIHZpcnR1YWwgdm9pZCBzd2FwQnVmZmVycygpOwogCiAgICAgLy8g
Q29udmVuaWVuY2UgRnVuY3Rpb24gdG8gdXBkYXRlIHN1cmZhY2UgYmFja2J1ZmZlciB3aXRoIHRl
eHR1cmUgY29udGVudHMuCkBAIC03Nyw3ICs4Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgZGVzdHJveSgpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgR0xQbGF0Zm9ybVN1cmZhY2UoKTsKKyAg
ICBHTFBsYXRmb3JtU3VyZmFjZShBdHRyaWJ1dGVzKTsKICAgICBJbnRSZWN0IG1fcmVjdDsKICAg
ICBHTHVpbnQgbV9mYm9JZDsKICAgICBQbGF0Zm9ybURpc3BsYXkgbV9zaGFyZWREaXNwbGF5Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWds
L0VHTENvbmZpZ1NlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3N1cmZhY2VzL2VnbC9FR0xDb25maWdTZWxlY3Rvci5jcHAKaW5kZXggY2JjZDIxMjdlYmVkYWQy
Njc4NGRmMWY2MGFmZWQxZjIyMGIyNjkyNC4uNGU5ZTQxYWY0YjMxMzMyOWQ1MTY4OTBkNTViMmQ1
NDU1NmU1MmNmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c3VyZmFjZXMvZWdsL0VHTENvbmZpZ1NlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMQ29uZmlnU2VsZWN0b3IuY3BwCkBAIC00
Miw3ICs0Miw3IEBAIHN0YXRpYyBFR0xpbnQgY29uZmlnQXR0cmlidXRlTGlzdFtdID0gewogICAg
IEVHTF9HUkVFTl9TSVpFLCA4LAogICAgIEVHTF9CTFVFX1NJWkUsIDgsCiAgICAgRUdMX1NURU5D
SUxfU0laRSwgOCwKLSAgICBFR0xfQUxQSEFfU0laRSwgOCwKKyAgICBFR0xfQUxQSEFfU0laRSwg
MCwKICAgICBFR0xfU1VSRkFDRV9UWVBFLCBFR0xfTk9ORSwKICAgICBFR0xfTk9ORQogfTsKQEAg
LTEwNCw5ICsxMDQsMTAgQEAgU2hhcmVkRUdMRGlzcGxheTo6flNoYXJlZEVHTERpc3BsYXkoKQog
ICAgIGNsZWFudXAoKTsKIH0KIAotRUdMQ29uZmlnU2VsZWN0b3I6OkVHTENvbmZpZ1NlbGVjdG9y
KE5hdGl2ZVNoYXJlZERpc3BsYXkqIGRpc3BsYXkpCitFR0xDb25maWdTZWxlY3Rvcjo6RUdMQ29u
ZmlnU2VsZWN0b3IoR0xQbGF0Zm9ybVN1cmZhY2U6OkF0dHJpYnV0ZXMgYXR0cmlidXRlcywgTmF0
aXZlU2hhcmVkRGlzcGxheSogZGlzcGxheSkKICAgICA6IG1fcGJ1ZmZlckZCQ29uZmlnKDApCiAg
ICAgLCBtX3N1cmZhY2VDb250ZXh0RkJDb25maWcoMCkKKyAgICAsIG1fYXR0cmlidXRlcyhhdHRy
aWJ1dGVzKQogewogICAgIG1fc2hhcmVkRGlzcGxheSA9IFNoYXJlZEVHTERpc3BsYXk6OmNyZWF0
ZShkaXNwbGF5KTsKIH0KQEAgLTEyMyw2ICsxMjQsNyBAQCBQbGF0Zm9ybURpc3BsYXkgRUdMQ29u
ZmlnU2VsZWN0b3I6OmRpc3BsYXkoKSBjb25zdAogRUdMQ29uZmlnIEVHTENvbmZpZ1NlbGVjdG9y
OjpwQnVmZmVyQ29udGV4dENvbmZpZygpCiB7CiAgICAgaWYgKCFtX3BidWZmZXJGQkNvbmZpZykg
eworICAgICAgICBjb25maWdBdHRyaWJ1dGVMaXN0WzExXSA9IG1fYXR0cmlidXRlcyAmIEdMUGxh
dGZvcm1TdXJmYWNlOjpTdXBwb3J0QWxwaGEgPyA4IDogMDsKICAgICAgICAgY29uZmlnQXR0cmli
dXRlTGlzdFsxM10gPSBFR0xfUElYTUFQX0JJVDsKICAgICAgICAgbV9wYnVmZmVyRkJDb25maWcg
PSBjcmVhdGVDb25maWcoY29uZmlnQXR0cmlidXRlTGlzdCk7CiAgICAgfQpAQCAtMTMzLDYgKzEz
NSw3IEBAIEVHTENvbmZpZyBFR0xDb25maWdTZWxlY3Rvcjo6cEJ1ZmZlckNvbnRleHRDb25maWco
KQogRUdMQ29uZmlnIEVHTENvbmZpZ1NlbGVjdG9yOjpzdXJmYWNlQ29udGV4dENvbmZpZygpCiB7
CiAgICAgaWYgKCFtX3N1cmZhY2VDb250ZXh0RkJDb25maWcpIHsKKyAgICAgICAgY29uZmlnQXR0
cmlidXRlTGlzdFsxMV0gPSBtX2F0dHJpYnV0ZXMgJiBHTFBsYXRmb3JtU3VyZmFjZTo6U3VwcG9y
dEFscGhhID8gOCA6IDA7CiAgICAgICAgIGNvbmZpZ0F0dHJpYnV0ZUxpc3RbMTNdID0gRUdMX1dJ
TkRPV19CSVQ7CiAgICAgICAgIG1fc3VyZmFjZUNvbnRleHRGQkNvbmZpZyA9IGNyZWF0ZUNvbmZp
Zyhjb25maWdBdHRyaWJ1dGVMaXN0KTsKICAgICB9CkBAIC0xNTEsNiArMTU0LDExIEBAIEVHTGlu
dCBFR0xDb25maWdTZWxlY3Rvcjo6bmF0aXZlVmlzdWFsSWQoY29uc3QgRUdMQ29uZmlnJiBjb25m
aWcpIGNvbnN0CiAgICAgcmV0dXJuIGVnbFZhbHVlOwogfQogCitHTFBsYXRmb3JtU3VyZmFjZTo6
QXR0cmlidXRlcyBFR0xDb25maWdTZWxlY3Rvcjo6YXR0cmlidXRlcygpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fYXR0cmlidXRlczsKK30KKwogdm9pZCBFR0xDb25maWdTZWxlY3Rvcjo6cmVzZXQo
KQogewogICAgIG1fc3VyZmFjZUNvbnRleHRGQkNvbmZpZyA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMQ29uZmlnU2VsZWN0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xD
b25maWdTZWxlY3Rvci5oCmluZGV4IDY2MzFhZGNiY2MxMmNhMmU2ZTYxYzBjZTRiYTE2NDE3OTA1
ZmE5YWQuLjk3N2M4Y2Q1ZjkzNzFhYTM4NTc2YTU5OTBkNTk4ZWQwMThiMDkzMTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xDb25m
aWdTZWxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzL2VnbC9FR0xDb25maWdTZWxlY3Rvci5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgVVNFKEVH
TCkKIAogI2luY2x1ZGUgPG9wZW5nbC9HTERlZnMuaD4KKyNpbmNsdWRlIDxvcGVuZ2wvR0xQbGF0
Zm9ybVN1cmZhY2UuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC02OCwxMiAr
NjksMTMgQEAgY2xhc3MgRUdMQ29uZmlnU2VsZWN0b3IgewogICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKEVHTENvbmZpZ1NlbGVjdG9yKTsKIAogcHVibGljOgotICAgIEVHTENvbmZpZ1NlbGVjdG9y
KE5hdGl2ZVNoYXJlZERpc3BsYXkqID0gMCk7CisgICAgRUdMQ29uZmlnU2VsZWN0b3IoR0xQbGF0
Zm9ybVN1cmZhY2U6OkF0dHJpYnV0ZXMsIE5hdGl2ZVNoYXJlZERpc3BsYXkqID0gMCk7CiAgICAg
dmlydHVhbCB+RUdMQ29uZmlnU2VsZWN0b3IoKTsKICAgICBQbGF0Zm9ybURpc3BsYXkgZGlzcGxh
eSgpIGNvbnN0OwogICAgIHZpcnR1YWwgRUdMQ29uZmlnIHBCdWZmZXJDb250ZXh0Q29uZmlnKCk7
CiAgICAgdmlydHVhbCBFR0xDb25maWcgc3VyZmFjZUNvbnRleHRDb25maWcoKTsKICAgICBFR0xp
bnQgbmF0aXZlVmlzdWFsSWQoY29uc3QgRUdMQ29uZmlnJikgY29uc3Q7CisgICAgR0xQbGF0Zm9y
bVN1cmZhY2U6OkF0dHJpYnV0ZXMgYXR0cmlidXRlcygpIGNvbnN0OwogICAgIHZvaWQgcmVzZXQo
KTsKIAogcHJpdmF0ZToKQEAgLTgzLDYgKzg1LDcgQEAgcHJvdGVjdGVkOgogICAgIEVHTENvbmZp
ZyBtX3BidWZmZXJGQkNvbmZpZzsKICAgICBFR0xDb25maWcgbV9zdXJmYWNlQ29udGV4dEZCQ29u
ZmlnOwogICAgIFJlZlB0cjxTaGFyZWRFR0xEaXNwbGF5PiBtX3NoYXJlZERpc3BsYXk7CisgICAg
R0xQbGF0Zm9ybVN1cmZhY2U6OkF0dHJpYnV0ZXMgbV9hdHRyaWJ1dGVzIDogMzsKIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2Vn
bC9FR0xTdXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzL2VnbC9FR0xTdXJmYWNlLmNwcAppbmRleCBlNjcxMWY4ZTk4YTY4ZGZiNmQwMDM0MGFmNzUx
NWU1ZDRkODg1NDZkLi5mOWFkMmQ4NmZkNTZlN2M5YTg3OTQ0MTliZmVhMGU5NDQxODUwNDljIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wv
RUdMU3VyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3Vy
ZmFjZXMvZWdsL0VHTFN1cmZhY2UuY3BwCkBAIC0zMCwxMCArMzAsMTAgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1FR0xXaW5kb3dUcmFuc3BvcnRTdXJmYWNlOjpFR0xXaW5kb3dUcmFuc3Bv
cnRTdXJmYWNlKCkKLSAgICA6IEdMUGxhdGZvcm1TdXJmYWNlKCkKK0VHTFdpbmRvd1RyYW5zcG9y
dFN1cmZhY2U6OkVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2UoQXR0cmlidXRlcyBhdHRyaWJ1dGVz
KQorICAgIDogR0xQbGF0Zm9ybVN1cmZhY2UoYXR0cmlidXRlcykKIHsKLSAgICBtX2NvbmZpZ1Nl
bGVjdG9yID0gYWRvcHRQdHIobmV3IEVHTENvbmZpZ1NlbGVjdG9yKE5hdGl2ZVdyYXBwZXI6Om5h
dGl2ZURpc3BsYXkoKSkpOworICAgIG1fY29uZmlnU2VsZWN0b3IgPSBhZG9wdFB0cihuZXcgRUdM
Q29uZmlnU2VsZWN0b3IoYXR0cmlidXRlcywgTmF0aXZlV3JhcHBlcjo6bmF0aXZlRGlzcGxheSgp
KSk7CiAgICAgbV9zaGFyZWREaXNwbGF5ID0gbV9jb25maWdTZWxlY3Rvci0+ZGlzcGxheSgpOwog
CiAgICAgaWYgKG1fc2hhcmVkRGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSkgewpAQCAtNTUsNyAr
NTUsNyBAQCBFR0xXaW5kb3dUcmFuc3BvcnRTdXJmYWNlOjpFR0xXaW5kb3dUcmFuc3BvcnRTdXJm
YWNlKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIE5hdGl2ZVdyYXBwZXI6OmNyZWF0
ZU9mZlNjcmVlbldpbmRvdygmbV9idWZmZXJIYW5kbGUsIHZpc3VhbElkKTsKKyAgICBOYXRpdmVX
cmFwcGVyOjpjcmVhdGVPZmZTY3JlZW5XaW5kb3coJm1fYnVmZmVySGFuZGxlLCAoYXR0cmlidXRl
cyAmIEdMUGxhdGZvcm1TdXJmYWNlOjpTdXBwb3J0QWxwaGEpLCB2aXN1YWxJZCk7CiAKICAgICBp
ZiAoIW1fYnVmZmVySGFuZGxlKSB7CiAgICAgICAgIGRlc3Ryb3koKTsKQEAgLTcwLDYgKzcwLDEx
IEBAIEVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2U6OkVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2Uo
KQogICAgIH0KIH0KIAorR0xQbGF0Zm9ybVN1cmZhY2U6OkF0dHJpYnV0ZXMgRUdMV2luZG93VHJh
bnNwb3J0U3VyZmFjZTo6YXR0cmlidXRlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29uZmln
U2VsZWN0b3ItPmF0dHJpYnV0ZXMoKTsKK30KKwogRUdMV2luZG93VHJhbnNwb3J0U3VyZmFjZTo6
fkVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2UoKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTFN1cmZhY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xTdXJmYWNlLmgKaW5k
ZXggMmVhNzA0MjA5OTljYmExMTMwYTgzNmY3YWFiMzkzZDU0NzAzYzU4NC4uOTM2MzYxZTAwNTcz
NWIyY2EyNDI2MGY0MjJiMTNmNGFhMzg0ZGQyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTFN1cmZhY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMU3VyZmFjZS5oCkBAIC00
MywxMiArNDMsMTMgQEAgdHlwZWRlZiBYMTFIZWxwZXIgTmF0aXZlV3JhcHBlcjsKIGNsYXNzIEVH
TFdpbmRvd1RyYW5zcG9ydFN1cmZhY2UgOiBwdWJsaWMgR0xQbGF0Zm9ybVN1cmZhY2UgewogCiBw
dWJsaWM6Ci0gICAgRUdMV2luZG93VHJhbnNwb3J0U3VyZmFjZSgpOworICAgIEVHTFdpbmRvd1Ry
YW5zcG9ydFN1cmZhY2UoUGxhdGZvcm1TdXJmYWNlQXR0cmlidXRlcyk7CiAgICAgdmlydHVhbCB+
RUdMV2luZG93VHJhbnNwb3J0U3VyZmFjZSgpOwogICAgIHZpcnR1YWwgUGxhdGZvcm1TdXJmYWNl
Q29uZmlnIGNvbmZpZ3VyYXRpb24oKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0R2Vv
bWV0cnkoY29uc3QgSW50UmVjdCYgbmV3UmVjdCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IHN3YXBCdWZmZXJzKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIFBsYXRmb3JtU3VyZmFjZUF0dHJpYnV0ZXMgYXR0cmlidXRlcygp
IGNvbnN0IE9WRVJSSURFOwogCiBwcml2YXRlOgogICAgIHZvaWQgZnJlZUVHTFJlc291cmNlcygp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
Z2x4L0dMWENvbmZpZ1NlbGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9zdXJmYWNlcy9nbHgvR0xYQ29uZmlnU2VsZWN0b3IuaAppbmRleCBjMTNjMjZjMTVkYzNiZTEy
MDIyZjliOWI2OTY1NGIwM2FhZWM1M2Q2Li5hZjA1MmM3NTM4N2IxN2ZhMTQ5NzA2Njc0Y2RhNGQw
ODdiOWQ1YzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9z
dXJmYWNlcy9nbHgvR0xYQ29uZmlnU2VsZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYQ29uZmlnU2VsZWN0b3IuaApAQCAtMzAsNiAr
MzAsNyBAQAogCiAjaW5jbHVkZSAiWDExSGVscGVyLmgiCiAjaW5jbHVkZSA8b3BlbmdsL0dMRGVm
cy5oPgorI2luY2x1ZGUgPG9wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTQzLDEzICs0NCwyNiBAQCBzdGF0aWMgaW50IGNsaWVudEF0dHJpYnV0
ZXNbXSA9IHsKICAgICAwCiB9OwogCitzdGF0aWMgaW50IGdseFN1cmZhY2VBdHRyaWJ1dGVzW10g
PSB7CisgICAgR0xYX0xFVkVMLCAwLAorICAgIEdMWF9EUkFXQUJMRV9UWVBFLCBHTFhfUElYTUFQ
X0JJVCwKKyAgICBHTFhfUkVOREVSX1RZUEUsICAgMCwKKyAgICBHTFhfUkVEX1NJWkUsICAgICAg
MSwKKyAgICBHTFhfR1JFRU5fU0laRSwgICAgMSwKKyAgICBHTFhfQkxVRV9TSVpFLCAgICAgMSwK
KyAgICBHTFhfQUxQSEFfU0laRSwgICAgMCwKKyAgICBHTFhfRE9VQkxFQlVGRkVSLCAgR0xfRkFM
U0UsCisgICAgTm9uZQorfTsKKwogY2xhc3MgR0xYQ29uZmlnU2VsZWN0b3IgewogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKEdMWENvbmZpZ1NlbGVjdG9yKTsKIAogcHVibGljOgotICAgIEdMWENv
bmZpZ1NlbGVjdG9yKCkKKyAgICBHTFhDb25maWdTZWxlY3RvcihHTFBsYXRmb3JtU3VyZmFjZTo6
QXR0cmlidXRlcyBhdHRyID0gR0xQbGF0Zm9ybVN1cmZhY2U6OkRlZmF1bHQpCiAgICAgICAgIDog
bV9zdXJmYWNlQ29udGV4dEZCQ29uZmlnKDApCiAgICAgICAgICwgbV9waXhtYXBDb250ZXh0RkJD
b25maWcoMCkKKyAgICAgICAgLCBtX2F0dHJpYnV0ZXMoYXR0cikKICAgICB7CiAgICAgfQogCkBA
IC02NSwxOSArNzksOCBAQCBwdWJsaWM6CiAgICAgR0xYRkJDb25maWcgcGl4bWFwQ29udGV4dENv
bmZpZygpCiAgICAgewogICAgICAgICBpZiAoIW1fcGl4bWFwQ29udGV4dEZCQ29uZmlnKSB7Ci0g
ICAgICAgICAgICBzdGF0aWMgY29uc3QgaW50IGF0dHJpYnV0ZXNbXSA9IHsKLSAgICAgICAgICAg
ICAgICBHTFhfTEVWRUwsIDAsCi0gICAgICAgICAgICAgICAgR0xYX0RSQVdBQkxFX1RZUEUsIEdM
WF9QSVhNQVBfQklULAotICAgICAgICAgICAgICAgIEdMWF9SRU5ERVJfVFlQRSwgICBHTFhfUkdC
QV9CSVQsCi0gICAgICAgICAgICAgICAgR0xYX1JFRF9TSVpFLCAgICAgIDEsCi0gICAgICAgICAg
ICAgICAgR0xYX0dSRUVOX1NJWkUsICAgIDEsCi0gICAgICAgICAgICAgICAgR0xYX0JMVUVfU0la
RSwgICAgIDEsCi0gICAgICAgICAgICAgICAgR0xYX0FMUEhBX1NJWkUsICAgIDEsCi0gICAgICAg
ICAgICAgICAgR0xYX0RPVUJMRUJVRkZFUiwgIEdMX0ZBTFNFLAotICAgICAgICAgICAgICAgIE5v
bmUKLSAgICAgICAgICAgIH07Ci0KLSAgICAgICAgICAgIG1fcGl4bWFwQ29udGV4dEZCQ29uZmln
ID0gZmluZE1hdGNoaW5nQ29uZmlnKGF0dHJpYnV0ZXMpOworICAgICAgICAgICAgdmFsaWRhdGVB
dHRyaWJ1dGVzKCk7CisgICAgICAgICAgICBtX3BpeG1hcENvbnRleHRGQkNvbmZpZyA9IGZpbmRN
YXRjaGluZ0NvbmZpZyhnbHhTdXJmYWNlQXR0cmlidXRlcywgbV9hdHRyaWJ1dGVzICYgR0xQbGF0
Zm9ybVN1cmZhY2U6OlN1cHBvcnRBbHBoYSA/IDMyIDogMjQpOwogICAgICAgICB9CiAKICAgICAg
ICAgcmV0dXJuIG1fcGl4bWFwQ29udGV4dEZCQ29uZmlnOwpAQCAtODYsOCArODksMTQgQEAgcHVi
bGljOgogCiAgICAgR0xYRkJDb25maWcgc3VyZmFjZUNvbnRleHRDb25maWcoKQogICAgIHsKLSAg
ICAgICAgaWYgKCFtX3N1cmZhY2VDb250ZXh0RkJDb25maWcpCi0gICAgICAgICAgICBjcmVhdGVT
dXJmYWNlQ29uZmlnKCk7CisgICAgICAgIGlmICghbV9zdXJmYWNlQ29udGV4dEZCQ29uZmlnKSB7
CisgICAgICAgICAgICBnbHhTdXJmYWNlQXR0cmlidXRlc1szXSA9IEdMWF9XSU5ET1dfQklUOwor
ICAgICAgICAgICAgZ2x4U3VyZmFjZUF0dHJpYnV0ZXNbN10gPSA4OworICAgICAgICAgICAgZ2x4
U3VyZmFjZUF0dHJpYnV0ZXNbOV0gPSA4OworICAgICAgICAgICAgZ2x4U3VyZmFjZUF0dHJpYnV0
ZXNbMTFdID0gODsKKyAgICAgICAgICAgIHZhbGlkYXRlQXR0cmlidXRlcygpOworICAgICAgICAg
ICAgbV9zdXJmYWNlQ29udGV4dEZCQ29uZmlnID0gZmluZE1hdGNoaW5nQ29uZmlnKGdseFN1cmZh
Y2VBdHRyaWJ1dGVzLCBtX2F0dHJpYnV0ZXMgJiBHTFBsYXRmb3JtU3VyZmFjZTo6U3VwcG9ydEFs
cGhhID8gMzIgOiAyNCk7CisgICAgICAgIH0KIAogICAgICAgICByZXR1cm4gbV9zdXJmYWNlQ29u
dGV4dEZCQ29uZmlnOwogICAgIH0KQEAgLTk2LDggKzEwNSwxMyBAQCBwdWJsaWM6CiAgICAgewog
ICAgICAgICBjbGllbnRBdHRyaWJ1dGVzWzNdID0gc3RhdGljX2Nhc3Q8aW50PihpZCk7CiAgICAg
ICAgIGNsaWVudEF0dHJpYnV0ZXNbOF0gPSBkZXB0aCA9PSAzMiA/IEdMWF9CSU5EX1RPX1RFWFRV
UkVfUkdCQV9FWFQgOiBHTFhfQklORF9UT19URVhUVVJFX1JHQl9FWFQ7CisgICAgICAgIC8vIFBy
ZWZlciB0byBtYXRjaCB3aXRoIFZpc3VhbCBJZC4KKyAgICAgICAgR0xYRkJDb25maWcgY29uZmln
ID0gZmluZE1hdGNoaW5nQ29uZmlnV2l0aFZpc3VhbElkKGNsaWVudEF0dHJpYnV0ZXMsIGRlcHRo
LCBpZCk7CiAKLSAgICAgICAgcmV0dXJuIGZpbmRNYXRjaGluZ0NvbmZpZyhjbGllbnRBdHRyaWJ1
dGVzLCBkZXB0aCwgaWQpOworICAgICAgICBpZiAoIWNvbmZpZykKKyAgICAgICAgICAgIGNvbmZp
ZyA9IGZpbmRNYXRjaGluZ0NvbmZpZyhjbGllbnRBdHRyaWJ1dGVzLCBkZXB0aCk7CisKKyAgICAg
ICAgcmV0dXJuIGNvbmZpZzsKICAgICB9CiAKICAgICB2b2lkIHJlc2V0KCkKQEAgLTEwNiwyNyAr
MTIwLDI0IEBAIHB1YmxpYzoKICAgICAgICAgbV9waXhtYXBDb250ZXh0RkJDb25maWcgPSAwOwog
ICAgIH0KIAorICAgIEdMUGxhdGZvcm1TdXJmYWNlOjpBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMoKSBj
b25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fYXR0cmlidXRlczsKKyAgICB9CisKIHByaXZh
dGU6Ci0gICAgdm9pZCBjcmVhdGVTdXJmYWNlQ29uZmlnKCkKKyAgICB2b2lkIHZhbGlkYXRlQXR0
cmlidXRlcygpCiAgICAgewotICAgICAgICBzdGF0aWMgaW50IGF0dHJpYnV0ZXNbXSA9IHsKLSAg
ICAgICAgICAgIEdMWF9MRVZFTCwgMCwKLSAgICAgICAgICAgIEdMWF9EUkFXQUJMRV9UWVBFLCBH
TFhfV0lORE9XX0JJVCwKLSAgICAgICAgICAgIEdMWF9SRU5ERVJfVFlQRSwgICBHTFhfUkdCQV9C
SVQsCi0gICAgICAgICAgICBHTFhfUkVEX1NJWkUsICAgICAgMSwKLSAgICAgICAgICAgIEdMWF9H
UkVFTl9TSVpFLCAgICAxLAotICAgICAgICAgICAgR0xYX0JMVUVfU0laRSwgICAgIDEsCi0gICAg
ICAgICAgICBHTFhfQUxQSEFfU0laRSwgICAgMSwKLSAgICAgICAgICAgIEdMWF9ERVBUSF9TSVpF
LCAgICAxLAotICAgICAgICAgICAgR0xYX1hfVklTVUFMX1RZUEUsIEdMWF9UUlVFX0NPTE9SLAot
ICAgICAgICAgICAgR0xYX0RPVUJMRUJVRkZFUiwgIFRydWUsCi0gICAgICAgICAgICBOb25lCi0g
ICAgICAgIH07Ci0KLSAgICAgICAgbV9zdXJmYWNlQ29udGV4dEZCQ29uZmlnID0gZmluZE1hdGNo
aW5nQ29uZmlnKGF0dHJpYnV0ZXMpOworICAgICAgICBpZiAobV9hdHRyaWJ1dGVzICYgR0xQbGF0
Zm9ybVN1cmZhY2U6OlN1cHBvcnRBbHBoYSkgeworICAgICAgICAgICAgZ2x4U3VyZmFjZUF0dHJp
YnV0ZXNbMTNdID0gODsKKyAgICAgICAgICAgIGdseFN1cmZhY2VBdHRyaWJ1dGVzWzVdID0gR0xY
X1JHQkFfQklUOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1fYXR0cmlidXRlcyAmIEdMUGxh
dGZvcm1TdXJmYWNlOjpEb3VibGVCdWZmZXJlZCkKKyAgICAgICAgICAgIGdseFN1cmZhY2VBdHRy
aWJ1dGVzWzE1XSA9IEdMX1RSVUU7CiAgICAgfQogCi0gICAgR0xYRkJDb25maWcgZmluZE1hdGNo
aW5nQ29uZmlnKGNvbnN0IGludCBhdHRyaWJ1dGVzW10sIGludCBkZXB0aCA9IDMyLCBWaXN1YWxJ
RCBpZCA9IDApCisgICAgR0xYRkJDb25maWcgZmluZE1hdGNoaW5nQ29uZmlnKGNvbnN0IGludCBh
dHRyaWJ1dGVzW10sIGludCBkZXB0aCA9IDMyKQogICAgIHsKICAgICAgICAgaW50IG51bUF2YWls
YWJsZUNvbmZpZ3M7CiAgICAgICAgIE93blB0clgxMTxHTFhGQkNvbmZpZz4gdGVtcChnbFhDaG9v
c2VGQkNvbmZpZyhYMTFIZWxwZXI6Om5hdGl2ZURpc3BsYXkoKSwgRGVmYXVsdFNjcmVlbihYMTFI
ZWxwZXI6Om5hdGl2ZURpc3BsYXkoKSksIGF0dHJpYnV0ZXMsICZudW1BdmFpbGFibGVDb25maWdz
KSk7CkBAIC0xNDAsMTQgKzE1MSwxNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgaWYgKCFzY29w
ZWRWaXN1YWxJbmZvLmdldCgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAg
ICAgICBpZiAoaWQgJiYgc2NvcGVkVmlzdWFsSW5mby0+ZGVwdGggPT0gZGVwdGggJiYgc2NvcGVk
VmlzdWFsSW5mby0+dmlzdWFsaWQgPT0gaWQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRlbXBb
aV07Ci0KICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKICAgICAgICAgICAgIGlmIChYMTFIZWxw
ZXI6OmlzWFJlbmRlckV4dGVuc2lvblN1cHBvcnRlZCgpKSB7CiAgICAgICAgICAgICAgICAgWFJl
bmRlclBpY3RGb3JtYXQqIGZvcm1hdCA9IFhSZW5kZXJGaW5kVmlzdWFsRm9ybWF0KFgxMUhlbHBl
cjo6bmF0aXZlRGlzcGxheSgpLCBzY29wZWRWaXN1YWxJbmZvLT52aXN1YWwpOwotICAgICAgICAg
ICAgICAgIGlmIChmb3JtYXQgJiYgZGVwdGggPT0gMzIgJiYgZm9ybWF0LT5kaXJlY3QuYWxwaGFN
YXNrID4gMCkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRlbXBbaV07CisKKyAgICAgICAg
ICAgICAgICBpZiAoZm9ybWF0KSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX2F0dHJpYnV0
ZXMgJiBHTFBsYXRmb3JtU3VyZmFjZTo6U3VwcG9ydEFscGhhKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoc2NvcGVkVmlzdWFsSW5mby0+ZGVwdGggPT0gZGVwdGggJiYgZm9ybWF0LT5k
aXJlY3QuYWxwaGFNYXNrID4gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
dGVtcFtpXTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghZm9ybWF0LT5kaXJlY3Qu
YWxwaGFNYXNrKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRlbXBbaV07CisgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogI2VuZGlmCiAgICAgICAgICAgICBpZiAoc2Nv
cGVkVmlzdWFsSW5mby0+ZGVwdGggPT0gZGVwdGgpCkBAIC0xNTUsMTEgKzE2OSwzOCBAQCBwcml2
YXRlOgogICAgICAgICB9CiAKICAgICAgICAgLy8gRGlkIG5vdCBmaW5kIGFueSB2aXN1YWwgc3Vw
cG9ydGluZyBhbHBoYSwgc2VsZWN0IHRoZSBmaXJzdCBhdmFpbGFibGUgY29uZmlnLgorICAgICAg
ICBzY29wZWRWaXN1YWxJbmZvID0gZ2xYR2V0VmlzdWFsRnJvbUZCQ29uZmlnKFgxMUhlbHBlcjo6
bmF0aXZlRGlzcGxheSgpLCB0ZW1wWzBdKTsKKworICAgICAgICBpZiAoKG1fYXR0cmlidXRlcyAm
IEdMUGxhdGZvcm1TdXJmYWNlOjpTdXBwb3J0QWxwaGEpICYmIChzY29wZWRWaXN1YWxJbmZvLT5k
ZXB0aCAhPSAzMikpCisgICAgICAgICAgICBtX2F0dHJpYnV0ZXMgJj0gfkdMUGxhdGZvcm1TdXJm
YWNlOjpTdXBwb3J0QWxwaGE7CisKICAgICAgICAgcmV0dXJuIHRlbXBbMF07CiAgICAgfQogCisg
ICAgR0xYRkJDb25maWcgZmluZE1hdGNoaW5nQ29uZmlnV2l0aFZpc3VhbElkKGNvbnN0IGludCBh
dHRyaWJ1dGVzW10sIGludCBkZXB0aCwgVmlzdWFsSUQgaWQpCisgICAgeworICAgICAgICBpbnQg
bnVtQXZhaWxhYmxlQ29uZmlnczsKKyAgICAgICAgT3duUHRyWDExPEdMWEZCQ29uZmlnPiB0ZW1w
KGdsWENob29zZUZCQ29uZmlnKFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxheSgpLCBEZWZhdWx0U2Ny
ZWVuKFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxheSgpKSwgYXR0cmlidXRlcywgJm51bUF2YWlsYWJs
ZUNvbmZpZ3MpKTsKKworICAgICAgICBpZiAoIW51bUF2YWlsYWJsZUNvbmZpZ3MgfHwgIXRlbXAu
Z2V0KCkpCisgICAgICAgICAgICByZXR1cm4gMDsKKworICAgICAgICBPd25QdHJYMTE8WFZpc3Vh
bEluZm8+IHNjb3BlZFZpc3VhbEluZm87CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVt
QXZhaWxhYmxlQ29uZmlnczsgKytpKSB7CisgICAgICAgICAgICBzY29wZWRWaXN1YWxJbmZvID0g
Z2xYR2V0VmlzdWFsRnJvbUZCQ29uZmlnKFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxheSgpLCB0ZW1w
W2ldKTsKKyAgICAgICAgICAgIGlmICghc2NvcGVkVmlzdWFsSW5mby5nZXQoKSkKKyAgICAgICAg
ICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgaWYgKGlkICYmIHNjb3BlZFZpc3VhbElu
Zm8tPmRlcHRoID09IGRlcHRoICYmIHNjb3BlZFZpc3VhbEluZm8tPnZpc3VhbGlkID09IGlkKQor
ICAgICAgICAgICAgICAgIHJldHVybiB0ZW1wW2ldOworICAgICAgICB9CisKKyAgICAgICAgcmV0
dXJuIDA7CisgICAgfQorCiAgICAgR0xYRkJDb25maWcgbV9zdXJmYWNlQ29udGV4dEZCQ29uZmln
OwogICAgIEdMWEZCQ29uZmlnIG1fcGl4bWFwQ29udGV4dEZCQ29uZmlnOworICAgIEdMUGxhdGZv
cm1TdXJmYWNlOjpBdHRyaWJ1dGVzIG1fYXR0cmlidXRlcyA6IDM7CiB9OwogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYQ29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgv
R0xYQ29udGV4dC5jcHAKaW5kZXggMTlkNGI3YjY3NWRhZTA1YWQ1Mjk5YTk1MmFhMzViZTJhOWMw
Mjg2Yy4uYWMwNTQ1YTJmMjFjOTlhYWEzOThkNzIyMGZiMGVmNWIwODRmYzJlYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2ds
eC9HTFhDb250ZXh0LmNwcApAQCAtODQsOCArODQsOSBAQCBib29sIEdMWE9mZlNjcmVlbkNvbnRl
eHQ6OmluaXRpYWxpemUoR0xQbGF0Zm9ybVN1cmZhY2UqIHN1cmZhY2UsIFBsYXRmb3JtQ29udGV4
dAogICAgICAgICAgICAgICAgIGdsWERlc3Ryb3lDb250ZXh0KHgxMURpc3BsYXksIG1fY29udGV4
dEhhbmRsZSk7CiAgICAgICAgIH0KIAorICAgICAgICBib29sIHN1cHBvcnRzQWxwaGEgPSBzdXJm
YWNlLT5zdXJmYWNlQXR0cmlidXRlcygpICYgR0xQbGF0Zm9ybVN1cmZhY2U6OlN1cHBvcnRBbHBo
YTsKICAgICAgICAgaWYgKCFtX2NvbnRleHRIYW5kbGUpCi0gICAgICAgICAgICBtX2NvbnRleHRI
YW5kbGUgPSBnbFhDcmVhdGVOZXdDb250ZXh0KHgxMURpc3BsYXksIGNvbmZpZywgR0xYX1JHQkFf
VFlQRSwgc2hhcmVkQ29udGV4dCwgdHJ1ZSk7CisgICAgICAgICAgICBtX2NvbnRleHRIYW5kbGUg
PSBnbFhDcmVhdGVOZXdDb250ZXh0KHgxMURpc3BsYXksIGNvbmZpZywgc3VwcG9ydHNBbHBoYSA/
IEdMWF9SR0JBX1RZUEUgOiAwLCBzaGFyZWRDb250ZXh0LCB0cnVlKTsKIAogICAgICAgICBpZiAo
bV9jb250ZXh0SGFuZGxlKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3Vy
ZmFjZS5jcHAKaW5kZXggZWJkMzBmM2UwZjEwMTJiYjk5NTEzZDFlY2RlYWM0YTM1MDdiOTVhZC4u
M2ZmOGJhOTczNWU5ZjQzZGJkOWZkYWIwZTk1MDQ0NTM5MzY1NDA4YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhT
dXJmYWNlLmNwcApAQCAtMzIsMTEgKzMyLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3Rh
dGljIGNvbnN0IGludCBwYnVmZmVyQXR0cmlidXRlc1tdID0geyBHTFhfUEJVRkZFUl9XSURUSCwg
MSwgR0xYX1BCVUZGRVJfSEVJR0hULCAxLCAwIH07CiAKLUdMWFRyYW5zcG9ydFN1cmZhY2U6OkdM
WFRyYW5zcG9ydFN1cmZhY2UoKQotICAgIDogR0xQbGF0Zm9ybVN1cmZhY2UoKQorR0xYVHJhbnNw
b3J0U3VyZmFjZTo6R0xYVHJhbnNwb3J0U3VyZmFjZShBdHRyaWJ1dGVzIHN1cmZhY2VBdHRyaWJ1
dGVzKQorICAgIDogR0xQbGF0Zm9ybVN1cmZhY2Uoc3VyZmFjZUF0dHJpYnV0ZXMpCiB7CiAgICAg
bV9zaGFyZWREaXNwbGF5ID0gWDExSGVscGVyOjpuYXRpdmVEaXNwbGF5KCk7Ci0gICAgbV9jb25m
aWdTZWxlY3RvciA9IGFkb3B0UHRyKG5ldyBHTFhDb25maWdTZWxlY3RvcigpKTsKKyAgICBHTFBs
YXRmb3JtU3VyZmFjZTo6QXR0cmlidXRlcyBzaGFyZWRTdXJmYWNlQXR0cmlidXRlcyA9IHN1cmZh
Y2VBdHRyaWJ1dGVzIHwgR0xQbGF0Zm9ybVN1cmZhY2U6OkRvdWJsZUJ1ZmZlcmVkOworICAgIG1f
Y29uZmlnU2VsZWN0b3IgPSBhZG9wdFB0cihuZXcgR0xYQ29uZmlnU2VsZWN0b3Ioc2hhcmVkU3Vy
ZmFjZUF0dHJpYnV0ZXMpKTsKICAgICBPd25QdHJYMTE8WFZpc3VhbEluZm8+IHZpc0luZm8obV9j
b25maWdTZWxlY3Rvci0+dmlzdWFsSW5mbyhtX2NvbmZpZ1NlbGVjdG9yLT5zdXJmYWNlQ29udGV4
dENvbmZpZygpKSk7CiAKICAgICBpZiAoIXZpc0luZm8uZ2V0KCkpIHsKQEAgLTkyLDggKzkzLDEz
IEBAIHZvaWQgR0xYVHJhbnNwb3J0U3VyZmFjZTo6ZGVzdHJveSgpCiAgICAgbV9jb25maWdTZWxl
Y3RvciA9IG51bGxwdHI7CiB9CiAKLUdMWE9mZlNjcmVlblN1cmZhY2U6OkdMWE9mZlNjcmVlblN1
cmZhY2UoKQotICAgIDogR0xQbGF0Zm9ybVN1cmZhY2UoKQorR0xQbGF0Zm9ybVN1cmZhY2U6OkF0
dHJpYnV0ZXMgR0xYVHJhbnNwb3J0U3VyZmFjZTo6YXR0cmlidXRlcygpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fY29uZmlnU2VsZWN0b3ItPmF0dHJpYnV0ZXMoKTsKK30KKworR0xYT2ZmU2NyZWVu
U3VyZmFjZTo6R0xYT2ZmU2NyZWVuU3VyZmFjZShBdHRyaWJ1dGVzIHN1cmZhY2VBdHRyaWJ1dGVz
KQorICAgIDogR0xQbGF0Zm9ybVN1cmZhY2Uoc3VyZmFjZUF0dHJpYnV0ZXMpCiAgICAgLCBtX3Bp
eG1hcCgwKQogICAgICwgbV9nbHhQaXhtYXAoMCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5oCmluZGV4
IDQzMGZlNTE2NjE2ZGVjNWRkMDhkMzBkNTJkNzdkZTcxYjExZTNhYzQuLjZjMTkxYmE2MWIxOGMw
MzkzMzliZDcyODAzNmZhODQ2MjhlNGUxYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuaApAQCAtMzcs
MTEgKzM3LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEdMWFRyYW5zcG9ydFN1cmZh
Y2UgOiBwdWJsaWMgR0xQbGF0Zm9ybVN1cmZhY2UgewogCiBwdWJsaWM6Ci0gICAgR0xYVHJhbnNw
b3J0U3VyZmFjZSgpOworICAgIEdMWFRyYW5zcG9ydFN1cmZhY2UoQXR0cmlidXRlcyk7CiAgICAg
dmlydHVhbCB+R0xYVHJhbnNwb3J0U3VyZmFjZSgpOwogICAgIHZpcnR1YWwgUGxhdGZvcm1TdXJm
YWNlQ29uZmlnIGNvbmZpZ3VyYXRpb24oKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc3dh
cEJ1ZmZlcnMoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0R2VvbWV0cnkoY29uc3Qg
SW50UmVjdCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgQXR0cmlidXRlcyBhdHRyaWJ1dGVzKCkg
Y29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKSBPVkVSUklERTsKIAog
cHJpdmF0ZToKQEAgLTUyLDcgKzUzLDcgQEAgcHJpdmF0ZToKIGNsYXNzIEdMWE9mZlNjcmVlblN1
cmZhY2UgOiBwdWJsaWMgR0xQbGF0Zm9ybVN1cmZhY2UgewogCiBwdWJsaWM6Ci0gICAgR0xYT2Zm
U2NyZWVuU3VyZmFjZSgpOworICAgIEdMWE9mZlNjcmVlblN1cmZhY2UoQXR0cmlidXRlcyk7CiAg
ICAgdmlydHVhbCB+R0xYT2ZmU2NyZWVuU3VyZmFjZSgpOwogICAgIHZpcnR1YWwgUGxhdGZvcm1T
dXJmYWNlQ29uZmlnIGNvbmZpZ3VyYXRpb24oKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGVzdHJveSgpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dyYXBoaWNzU3VyZmFjZUdMWC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR3JhcGhpY3NTdXJmYWNlR0xYLmNw
cAppbmRleCA1ZTE4YTU5Yjk2NDc0OGU3MjE4MTQxZmYxYmFhZGM5Njk5MzAzYThmLi5kNjdiZDlj
ZTMwMmFhMzg4NTBhMzE4Njk5YTU5N2U5NTcwOTk4ZjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR3JhcGhpY3NTdXJmYWNlR0xYLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR3Jh
cGhpY3NTdXJmYWNlR0xYLmNwcApAQCAtODgsNyArODgsOSBAQCBzdHJ1Y3QgR3JhcGhpY3NTdXJm
YWNlUHJpdmF0ZSB7CiAgICAgICAgIFVOVVNFRF9QQVJBTShzaGFyZUNvbnRleHQpOwogI2VuZGlm
CiAKLSAgICAgICAgbV9jb25maWdTZWxlY3RvciA9IGFkb3B0UHRyKG5ldyBHTFhDb25maWdTZWxl
Y3RvcigpKTsKKyAgICAgICAgR0xQbGF0Zm9ybVN1cmZhY2U6OkF0dHJpYnV0ZXMgc2hhcmVkU3Vy
ZmFjZUF0dHJpYnV0ZXMgPSBHTFBsYXRmb3JtU3VyZmFjZTo6RG91YmxlQnVmZmVyZWQgfAorICAg
ICAgICAgICAgR0xQbGF0Zm9ybVN1cmZhY2U6OlN1cHBvcnRBbHBoYTsKKyAgICAgICAgbV9jb25m
aWdTZWxlY3RvciA9IGFkb3B0UHRyKG5ldyBHTFhDb25maWdTZWxlY3RvcihzaGFyZWRTdXJmYWNl
QXR0cmlidXRlcykpOwogCiAgICAgICAgIGlmICghbV9jb25maWdTZWxlY3Rvci0+c3VyZmFjZUNv
bnRleHRDb25maWcoKSkgewogICAgICAgICAgICAgY2xlYXIoKTsKQEAgLTExMCw3ICsxMTIsNiBA
QCBzdHJ1Y3QgR3JhcGhpY3NTdXJmYWNlUHJpdmF0ZSB7CiAgICAgICAgICwgbV9pc1JlY2VpdmVy
KHRydWUpCiAgICAgICAgICwgbV90ZXh0dXJlKDApCiAgICAgewotICAgICAgICBtX2NvbmZpZ1Nl
bGVjdG9yID0gYWRvcHRQdHIobmV3IEdMWENvbmZpZ1NlbGVjdG9yKCkpOwogICAgIH0KIAogICAg
IH5HcmFwaGljc1N1cmZhY2VQcml2YXRlKCkKQEAgLTE0NCw5ICsxNDUsNiBAQCBzdHJ1Y3QgR3Jh
cGhpY3NTdXJmYWNlUHJpdmF0ZSB7CiAKICAgICB2b2lkIGNyZWF0ZVBpeG1hcCh1aW50MzJfdCB3
aW5JZCkKICAgICB7Ci0gICAgICAgIGlmICghbV9jb25maWdTZWxlY3RvcikKLSAgICAgICAgICAg
IHJldHVybjsKLQogICAgICAgICBYV2luZG93QXR0cmlidXRlcyBhdHRyOwogICAgICAgICBpZiAo
IVhHZXRXaW5kb3dBdHRyaWJ1dGVzKGRpc3BsYXkoKSwgd2luSWQsICZhdHRyKSkKICAgICAgICAg
ICAgIHJldHVybjsKQEAgLTE2MSw3ICsxNTksMTUgQEAgc3RydWN0IEdyYXBoaWNzU3VyZmFjZVBy
aXZhdGUgewogICAgICAgICBYUmVuZGVyUGljdEZvcm1hdCogZm9ybWF0ID0gWFJlbmRlckZpbmRW
aXN1YWxGb3JtYXQoZGlzcGxheSgpLCBhdHRyLnZpc3VhbCk7CiAgICAgICAgIGJvb2wgaGFzQWxw
aGEgPSAoZm9ybWF0LT50eXBlID09IFBpY3RUeXBlRGlyZWN0ICYmIGZvcm1hdC0+ZGlyZWN0LmFs
cGhhTWFzayk7CiAgICAgICAgIG1feFBpeG1hcCA9IFhDb21wb3NpdGVOYW1lV2luZG93UGl4bWFw
KGRpc3BsYXkoKSwgd2luSWQpOwotICAgICAgICBnbHhBdHRyaWJ1dGVzWzFdID0gKGZvcm1hdC0+
ZGVwdGggPT0gMzIgfHwgaGFzQWxwaGEpID8gR0xYX1RFWFRVUkVfRk9STUFUX1JHQkFfRVhUIDog
R0xYX1RFWFRVUkVfRk9STUFUX1JHQl9FWFQ7CisgICAgICAgIGdseEF0dHJpYnV0ZXNbMV0gPSAo
Zm9ybWF0LT5kZXB0aCA9PSAzMiAmJiBoYXNBbHBoYSkgPyBHTFhfVEVYVFVSRV9GT1JNQVRfUkdC
QV9FWFQgOiBHTFhfVEVYVFVSRV9GT1JNQVRfUkdCX0VYVDsKKworICAgICAgICBHTFBsYXRmb3Jt
U3VyZmFjZTo6QXR0cmlidXRlcyBzaGFyZWRTdXJmYWNlQXR0cmlidXRlcyA9IEdMUGxhdGZvcm1T
dXJmYWNlOjpEZWZhdWx0OworICAgICAgICBpZiAoaGFzQWxwaGEpCisgICAgICAgICAgICBzaGFy
ZWRTdXJmYWNlQXR0cmlidXRlcyA9IEdMUGxhdGZvcm1TdXJmYWNlOjpTdXBwb3J0QWxwaGE7CisK
KyAgICAgICAgaWYgKCFtX2NvbmZpZ1NlbGVjdG9yKQorICAgICAgICAgICAgbV9jb25maWdTZWxl
Y3RvciA9IGFkb3B0UHRyKG5ldyBHTFhDb25maWdTZWxlY3RvcihzaGFyZWRTdXJmYWNlQXR0cmli
dXRlcykpOworCiAgICAgICAgIG1fZ2x4UGl4bWFwID0gZ2xYQ3JlYXRlUGl4bWFwKGRpc3BsYXko
KSwgbV9jb25maWdTZWxlY3Rvci0+c3VyZmFjZUNsaWVudENvbmZpZyhmb3JtYXQtPmRlcHRoLCBY
VmlzdWFsSURGcm9tVmlzdWFsKGF0dHIudmlzdWFsKSksIG1feFBpeG1hcCwgZ2x4QXR0cmlidXRl
cyk7CiAKICAgICAgICAgaWYgKCFoYW5kbGVyLmlzVmFsaWRPcGVyYXRpb24oKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9YMTFIZWxw
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L1gx
MUhlbHBlci5jcHAKaW5kZXggMjQ3Mjc0YTQ2YTc1NDg1ZjU5MmQ2NWYwMDE5MjZlNjJhNDQwZThj
Yy4uY2VkZDQ1M2YyOWE4MzBiMjM3OTZlZTU5NTdmMzg3YWZkZGViNzUxOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L1gxMUhlbHBlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L1gx
MUhlbHBlci5jcHAKQEAgLTIyMiw4ICsyMjIsOSBAQCB2b2lkIFgxMUhlbHBlcjo6Y3JlYXRlT2Zm
U2NyZWVuV2luZG93KHVpbnQzMl90KiBoYW5kbGVJZCwgY29uc3QgWFZpc3VhbEluZm8mIHZpcwog
fQogCiAjaWYgVVNFKEVHTCkKLXZvaWQgWDExSGVscGVyOjpjcmVhdGVPZmZTY3JlZW5XaW5kb3co
dWludDMyX3QqIGhhbmRsZUlkLCBjb25zdCBFR0xpbnQgaWQsIGNvbnN0IEludFNpemUmIHNpemUp
Cit2b2lkIFgxMUhlbHBlcjo6Y3JlYXRlT2ZmU2NyZWVuV2luZG93KHVpbnQzMl90KiBoYW5kbGVJ
ZCwgY29uc3QgRUdMaW50IGlkLCBib29sIHN1cHBvcnRzQWxwaGEsIGNvbnN0IEludFNpemUmIHNp
emUpCiB7CisjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCiAgICAgVmlzdWFsSUQgdmlzdWFsSWQg
PSBzdGF0aWNfY2FzdDxWaXN1YWxJRD4oaWQpOwogCiAgICAgaWYgKCF2aXN1YWxJZCkKQEAgLTI0
MywxMyArMjQ0LDIyIEBAIHZvaWQgWDExSGVscGVyOjpjcmVhdGVPZmZTY3JlZW5XaW5kb3codWlu
dDMyX3QqIGhhbmRsZUlkLCBjb25zdCBFR0xpbnQgaWQsIGNvbnN0CiAKICAgICAgICAgICAgIGlm
IChpc1hSZW5kZXJFeHRlbnNpb25TdXBwb3J0ZWQoKSkgewogICAgICAgICAgICAgICAgIFhSZW5k
ZXJQaWN0Rm9ybWF0KiBmb3JtYXQgPSBYUmVuZGVyRmluZFZpc3VhbEZvcm1hdChuYXRpdmVEaXNw
bGF5KCksIHRlbXAtPnZpc3VhbCk7Ci0gICAgICAgICAgICAgICAgaWYgKGZvcm1hdCAmJiBmb3Jt
YXQtPmRpcmVjdC5hbHBoYU1hc2sgPiAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZvdW5kVmlz
dWFsID0gdGVtcDsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAg
ICBpZiAoZm9ybWF0KSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdXBwb3J0c0FscGhhKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGVtcC0+ZGVwdGggPT0gMzIgJiYgZm9ybWF0
LT5kaXJlY3QuYWxwaGFNYXNrID4gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Vu
ZFZpc3VhbCA9IHRlbXA7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWZvcm1hdC0+
ZGlyZWN0LmFscGhhTWFzaykKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvdW5kVmlzdWFsID0g
dGVtcDsKICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoZm91bmRWaXN1
YWwpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0gICAgICAg
ICAgICBpZiAodGVtcC0+ZGVwdGggPT0gMzIpIHsKKyAgICAgICAgICAgIGludCBtYXRjaGluZ2Rl
cHRoID0gc3VwcG9ydHNBbHBoYSA/IDMyIDogMjQ7CisKKyAgICAgICAgICAgIGlmICh0ZW1wLT5k
ZXB0aCA9PSBtYXRjaGluZ2RlcHRoKSB7CiAgICAgICAgICAgICAgICAgZm91bmRWaXN1YWwgPSB0
ZW1wOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtMjU4LDYgKzI2
OCwxMSBAQCB2b2lkIFgxMUhlbHBlcjo6Y3JlYXRlT2ZmU2NyZWVuV2luZG93KHVpbnQzMl90KiBo
YW5kbGVJZCwgY29uc3QgRUdMaW50IGlkLCBjb25zdAogICAgICAgICBpZiAoZm91bmRWaXN1YWwp
CiAgICAgICAgICAgICBjcmVhdGVPZmZTY3JlZW5XaW5kb3coaGFuZGxlSWQsICpmb3VuZFZpc3Vh
bCwgc2l6ZSk7CiAgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oaGFuZGxlSWQpOworICAg
IFVOVVNFRF9QQVJBTShpZCk7CisgICAgVU5VU0VEX1BBUkFNKHNpemUpOworI2VuZGlmCiB9CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3Vy
ZmFjZXMvZ2x4L1gxMUhlbHBlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c3VyZmFjZXMvZ2x4L1gxMUhlbHBlci5oCmluZGV4IDY4Yzc1ZGQ3ODAwMjRjOTJjZDY1NDhiZDQy
NzExN2QwZDM1NDIyZTUuLjdkM2ViYWUzZTIzZWQ5NmU3ZjAzMmQwYTIwNjBlNWE5MTg5YjYyOWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2ds
eC9YMTFIZWxwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJm
YWNlcy9nbHgvWDExSGVscGVyLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogICAgIHN0YXRp
YyB2b2lkIGNyZWF0ZVBpeG1hcChQaXhtYXAqLCBjb25zdCBYVmlzdWFsSW5mbyYsIGNvbnN0IElu
dFNpemUmID0gSW50U2l6ZSgxLCAxKSk7CiAgICAgc3RhdGljIHZvaWQgY3JlYXRlT2ZmU2NyZWVu
V2luZG93KHVpbnQzMl90KiwgY29uc3QgWFZpc3VhbEluZm8mLCBjb25zdCBJbnRTaXplJiA9IElu
dFNpemUoMSwgMSkpOwogI2lmIFVTRShFR0wpCi0gICAgc3RhdGljIHZvaWQgY3JlYXRlT2ZmU2Ny
ZWVuV2luZG93KHVpbnQzMl90KiwgY29uc3QgRUdMaW50LCBjb25zdCBJbnRTaXplJiA9IEludFNp
emUoMSwgMSkpOworICAgIHN0YXRpYyB2b2lkIGNyZWF0ZU9mZlNjcmVlbldpbmRvdyh1aW50MzJf
dCosIGNvbnN0IEVHTGludCwgYm9vbCwgY29uc3QgSW50U2l6ZSYgPSBJbnRTaXplKDEsIDEpKTsK
ICNlbmRpZgogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3lXaW5kb3coY29uc3QgdWludDMyX3QpOwog
ICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3lQaXhtYXAoY29uc3QgdWludDMyX3QpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDdh
ZWQ2MzM3NDJjZjA3MjM3Y2IxYjY5MDZkNWMwMTA3NTQ0NDc3NmQuLmM4MGJhNmNkYjE0MGMwZTAz
M2M3ODkyZTk0MzlkNmI3YjU0YTNkODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMy0wMi0y
MCAgS29uZGFwYWxseSBLYWx5YW4gIDxrYWx5YW4ua29uZGFwYWxseUBpbnRlbC5jb20+CisKKyAg
ICAgICAgW1dlYkdMXVtFRkxdIFN1cHBvcnQgZm9yIGNyZWF0aW5nIHN1cmZhY2Ugd2l0aCBhbHBo
YSBkaXNhYmxlZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExMDA2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEVuYWJsZWQgY29tcG9zaXRpbmcvd2ViZ2wvd2ViZ2wtbm8tYWxwaGEuaHRtbCBmb3IgRWZs
IHBvcnQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9lZmwvY29tcG9zaXRpbmcvd2ViZ2wvd2ViZ2wtbm8tYWxwaGEtZXhwZWN0
ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvY29tcG9zaXRpbmcvd2ViZ2wv
d2ViZ2wtbm8tYWxwaGEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMy0wMi0yMCAgRGF2aWQg
SHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgW05ldyBNdWx0aWNvbHVtbl0gQ29s
dW1uIGdhcCBpcyBjb21wdXRlZCBpbmNvcnJlY3RseS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZs
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMWNhODFmZDFlNTM5NmIzN2UyMjU0NGIyNjE2ODQ1OTNl
YTc4Njc2NS4uNDAxZGIzNTJkNWIxZDAxMWNjMWViZjZhM2MxZTRjZDVkNGQ4NjE5OCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE3MjcsNyArMTcyNyw2
IEBAIHdlYmtpdC5vcmcvYi8xMDQ1NzEgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4t
ZXhhY3QtbWF0Y2hpbmcuaHRtbCBbIEZhaWx1CiAKICMgUmVuZGVyaW5nIGZhaWx1cmUsIGFsc28g
bWlzc2luZyBleHBlY3RlZCByZXN1bHRzOgogd2Via2l0Lm9yZy9iLzEwNTA5MyBjb21wb3NpdGlu
Zy93ZWJnbC93ZWJnbC1iYWNrZ3JvdW5kLWNvbG9yLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcv
Yi8xMDUwOTMgY29tcG9zaXRpbmcvd2ViZ2wvd2ViZ2wtbm8tYWxwaGEuaHRtbCBbIFNraXAgXQog
d2Via2l0Lm9yZy9iLzEwNTA5MyBjb21wb3NpdGluZy93ZWJnbC93ZWJnbC1ub25wcmVtdWx0aXBs
aWVkLWJsZW5kLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xMDUwOTMgY29tcG9zaXRpbmcv
d2ViZ2wvd2ViZ2wtcmVmbGVjdGlvbi5odG1sIFsgU2tpcCBdCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2VmbC9jb21wb3NpdGluZy93ZWJnbC93ZWJnbC1uby1hbHBoYS1leHBl
Y3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvY29tcG9zaXRpbmcvd2ViZ2wvd2Vi
Z2wtbm8tYWxwaGEtZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0YWMwNmVlOWM0NDBkNDJhZGQ0
OTNkNTI1ODQwZGUyZmVmOTUzNDIKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDI5MTAKemNtZUFT
QE4/KG9sSHlgdVZCcSFpYTB5fnlVeyt2WVYyYT5pMCpaKT1oXmhsQSVAV3MkbEhgb2s8bX0/b1Ru
NGttCno2ciZfVkdoO0s4dl8hKkhxbSpQclZgQyNqIT0ja2RCdlY2RUwhK2A4OFRXdmkqcGpeNlRe
Um1AO0RXdSZDbz9jYAp6LVNjI0Q0NV5zJl9KKDJKVkZ2LTBnTnFPUnVka2VJOUN8ejNCVUZGSjJF
KiVUV0VkRSUqMXUoQlYzX1pnentxZmYKek1VMjcwaGYwaCRfdkFqNSUrMFE1bEZ2QW88SW5KKnlK
NzxhTGxQND1nTSEqOVY+QSMoUXYkdG4hU2A8cyVQbHdDCnpHQlB+U21ENkVwbX5udUtwQFdsM2pK
dm0pPVJHXn5qbTdSbD5BSlVeM15meiQjVXUyV09ZTHtxIVRlJFI2Jn51OQp6RCUye1NNJE1zT1E5
bH0oZ0U9cms2fHFWQkhla0RBJihVVTkxXzl2KzFfcn4lUU8wTj40QyQyY257ZnhYO01OYVkKU20p
UWZgejZfcU9lbEZ7cjV9RSpINzk3YXsKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9jb21wb3NpdGluZy93ZWJnbC93ZWJnbC1uby1h
bHBoYS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvY29tcG9zaXRpbmcv
d2ViZ2wvd2ViZ2wtbm8tYWxwaGEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiMTM3ODkxNzkx
ZmU5NjkyN2FkNzhlNjRiMGFhZDdiZGVkMDhiZGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9lZmwvY29tcG9zaXRpbmcvd2ViZ2wvd2ViZ2wtbm8tYWxwaGEtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEgQEAKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189692</attachid>
            <date>2013-02-21 23:18:42 -0800</date>
            <delta_ts>2013-02-22 01:34:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110067-20130222091502.patch</filename>
            <type>text/plain</type>
            <size>34326</size>
            <attacher name="Kalyan">kalyan.kondapally</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDRjMTc1OTM5MTJmZmZh
NGVkYjYyZWQzMDA3MTRlNmRmMTM5OWM3NC4uY2Y5MjlmZGNiNjA4ZDIxZWM1MTAzODNiODlmN2Jh
ZjcxODM1MmM1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEzLTAyLTIwICBLb25k
YXBhbGx5IEthbHlhbiAgPGthbHlhbi5rb25kYXBhbGx5QGludGVsLmNvbT4KKworICAgICAgICBb
V2ViR0xdW0VGTF0gU3VwcG9ydCBmb3IgY3JlYXRpbmcgc3VyZmFjZSB3aXRoIGFscGhhIGRpc2Fi
bGVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEw
MDY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292
ZXJlZCBieSBjb21wb3NpdGluZy93ZWJnbC93ZWJnbC1uby1hbHBoYS5odG1sCisKKyAgICAgICAg
V2UgY3VycmVudGx5IGFsd2F5cyBjcmVhdGUgYSBzdXJmYWNlIHN1cHBvcnRpbmcgYWxwaGEgY2hh
bm5lbC4gCisgICAgICAgIFdpdGggdGhpcyBwYXRjaCB3ZSBjcmVhdGUgdGhlIHN1cmZhY2Ugd2l0
aCBhbHBoYSBvbmx5IGlmCisgICAgICAgIHJlcXVpcmVkLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmluaXRpYWxpemUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaDoKKyAgICAgICAg
KEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdMUGxhdGZv
cm1TdXJmYWNlOjpjcmVhdGVPZmZTY3JlZW5TdXJmYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkdM
UGxhdGZvcm1TdXJmYWNlOjpjcmVhdGVUcmFuc3BvcnRTdXJmYWNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkdMUGxhdGZvcm1TdXJmYWNlOjpHTFBsYXRmb3JtU3VyZmFjZSk6CisgICAgICAgIChXZWJD
b3JlOjpHTFBsYXRmb3JtU3VyZmFjZTo6YXR0cmlidXRlcyk6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMQ29uZmlnU2VsZWN0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpFR0xDb25maWdT
ZWxlY3Rvcjo6RUdMQ29uZmlnU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6RUdMQ29uZmln
U2VsZWN0b3I6OnBCdWZmZXJDb250ZXh0Q29uZmlnKToKKyAgICAgICAgKFdlYkNvcmU6OkVHTENv
bmZpZ1NlbGVjdG9yOjpzdXJmYWNlQ29udGV4dENvbmZpZyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTENvbmZpZ1NlbGVjdG9yLmg6CisgICAgICAgIChFR0xD
b25maWdTZWxlY3Rvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWds
L0VHTFN1cmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RUdMV2luZG93VHJhbnNwb3J0U3Vy
ZmFjZTo6RUdMV2luZG93VHJhbnNwb3J0U3VyZmFjZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvc3VyZmFjZXMvZWdsL0VHTFN1cmZhY2UuaDoKKyAgICAgICAgKEVHTFdpbmRvd1RyYW5z
cG9ydFN1cmZhY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9H
TFhDb25maWdTZWxlY3Rvci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHTFhDb25maWdTZWxlY3Rvcjo6R0xYQ29uZmlnU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6R0xYQ29uZmlnU2VsZWN0b3I6OnBpeG1hcENvbnRleHRDb25maWcpOgorICAgICAgICAoV2Vi
Q29yZTo6R0xYQ29uZmlnU2VsZWN0b3I6OnN1cmZhY2VDb250ZXh0Q29uZmlnKToKKyAgICAgICAg
KFdlYkNvcmU6OkdMWENvbmZpZ1NlbGVjdG9yOjpzdXJmYWNlQ2xpZW50Q29uZmlnKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdMWENvbmZpZ1NlbGVjdG9yOjp2YWxpZGF0ZUF0dHJpYnV0ZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6R0xYQ29uZmlnU2VsZWN0b3I6OmZpbmRNYXRjaGluZ0NvbmZpZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpHTFhDb25maWdTZWxlY3Rvcjo6ZmluZE1hdGNoaW5nQ29uZmlnV2l0
aFZpc3VhbElkKToKKyAgICAgICAgKEdMWENvbmZpZ1NlbGVjdG9yKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHTFhPZmZTY3JlZW5Db250ZXh0Ojppbml0aWFsaXplKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHTFhUcmFuc3BvcnRTdXJmYWNlOjpHTFhUcmFuc3BvcnRTdXJmYWNlKToKKyAgICAgICAgKFdl
YkNvcmU6OkdMWE9mZlNjcmVlblN1cmZhY2U6OkdMWE9mZlNjcmVlblN1cmZhY2UpOgorICAgICAg
ICAoV2ViQ29yZTo6R0xYT2ZmU2NyZWVuU3VyZmFjZTo6aW5pdGlhbGl6ZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuaDoKKyAgICAgICAgKEdM
WFRyYW5zcG9ydFN1cmZhY2UpOgorICAgICAgICAoR0xYT2ZmU2NyZWVuU3VyZmFjZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dyYXBoaWNzU3VyZmFjZUdMWC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VQcml2YXRlOjpHcmFwaGljc1N1
cmZhY2VQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVByaXZhdGU6
OmNyZWF0ZVBpeG1hcCk6CisKIDIwMTMtMDItMjAgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtOZXcgTXVsdGljb2x1bW5dIENvbHVtbiBnYXAgaXMgY29tcHV0ZWQg
aW5jb3JyZWN0bHkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCmluZGV4IDNkNjAx
ZmUyZjg3Njg2YzAyNThiMmEwY2U2NzY1MTFiZTY5OWU4NWUuLjkzNDI3N2IzNDE3ZDVhYTZjODEz
OThmYjg4NGQ0ZWYzNmViMTVlMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3Bw
CkBAIC02MCwxNiArNjAsNiBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6aW5pdGlh
bGl6ZSgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChtX2NvbnRleHQtPm1fcmVu
ZGVyU3R5bGUgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlck9mZnNjcmVlbikgewotI2lmIFVT
RShHUkFQSElDU19TVVJGQUNFKQotICAgICAgICBtX3NoYXJlZFN1cmZhY2UgPSBHTFBsYXRmb3Jt
U3VyZmFjZTo6Y3JlYXRlVHJhbnNwb3J0U3VyZmFjZSgpOwotICAgICAgICBpZiAoIW1fc2hhcmVk
U3VyZmFjZSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBtX3NoYXJlZENv
bnRleHQgPSBHTFBsYXRmb3JtQ29udGV4dDo6Y3JlYXRlQ29udGV4dChtX2NvbnRleHQtPm1fcmVu
ZGVyU3R5bGUpOwotICAgICAgICBpZiAoIW1fc2hhcmVkQ29udGV4dCkKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSNlbmRpZgotCiAgICAgICAgIG1fb2ZmU2NyZWVuU3VyZmFjZSA9IEdMUGxh
dGZvcm1TdXJmYWNlOjpjcmVhdGVPZmZTY3JlZW5TdXJmYWNlKCk7CiAKICAgICAgICAgaWYgKCFt
X29mZlNjcmVlblN1cmZhY2UpCkBAIC03OSw2ICs2OSwyMyBAQCBib29sIEdyYXBoaWNzQ29udGV4
dDNEUHJpdmF0ZTo6aW5pdGlhbGl6ZSgpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICNp
ZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKKyAgICAgICAgaWYgKCFtYWtlQ29udGV4dEN1cnJlbnQo
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBtX2NvbnRleHQtPnZhbGlk
YXRlQXR0cmlidXRlcygpOworICAgICAgICBHTFBsYXRmb3JtU3VyZmFjZTo6U3VyZmFjZUF0dHJp
YnV0ZXMgc2hhcmVkU3VyZmFjZUF0dHJpYnV0ZXMgPSBHTFBsYXRmb3JtU3VyZmFjZTo6RGVmYXVs
dDsKKyAgICAgICAgaWYgKG1fY29udGV4dC0+bV9hdHRycy5hbHBoYSkKKyAgICAgICAgICAgIHNo
YXJlZFN1cmZhY2VBdHRyaWJ1dGVzID0gR0xQbGF0Zm9ybVN1cmZhY2U6OlN1cHBvcnRBbHBoYTsK
KworICAgICAgICBtX29mZlNjcmVlbkNvbnRleHQtPnJlbGVhc2VDdXJyZW50KCk7CisgICAgICAg
IG1fc2hhcmVkU3VyZmFjZSA9IEdMUGxhdGZvcm1TdXJmYWNlOjpjcmVhdGVUcmFuc3BvcnRTdXJm
YWNlKHNoYXJlZFN1cmZhY2VBdHRyaWJ1dGVzKTsKKyAgICAgICAgaWYgKCFtX3NoYXJlZFN1cmZh
Y2UpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgbV9zaGFyZWRDb250ZXh0
ID0gR0xQbGF0Zm9ybUNvbnRleHQ6OmNyZWF0ZUNvbnRleHQobV9jb250ZXh0LT5tX3JlbmRlclN0
eWxlKTsKKyAgICAgICAgaWYgKCFtX3NoYXJlZENvbnRleHQpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisKICAgICAgICAgaWYgKCFtX3NoYXJlZENvbnRleHQtPmluaXRpYWxpemUobV9zaGFy
ZWRTdXJmYWNlLmdldCgpLCBtX29mZlNjcmVlbkNvbnRleHQtPmhhbmRsZSgpKSkKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5jcHAKaW5kZXggMDcxYTgz
Yjc3Y2VhMGQ3NTBmZTJjYjIwODVlNGIxMTRmOGM4Yzk1My4uNTVkZGJmZjg3NzA1ZmQyOGVjOWMy
NmEwNmM1MWE2MGExMjM0NzMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuY3BwCkBAIC00MCwy
NCArNDAsMjYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzT3duUHRyPEdMUGxhdGZv
cm1TdXJmYWNlPiBHTFBsYXRmb3JtU3VyZmFjZTo6Y3JlYXRlT2ZmU2NyZWVuU3VyZmFjZSgpCitQ
YXNzT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBHTFBsYXRmb3JtU3VyZmFjZTo6Y3JlYXRlT2Zm
U2NyZWVuU3VyZmFjZShTdXJmYWNlQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQogewogI2lmIFVTRShH
TFgpCi0gICAgT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBzdXJmYWNlID0gYWRvcHRQdHIobmV3
IEdMWE9mZlNjcmVlblN1cmZhY2UoKSk7CisgICAgT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBz
dXJmYWNlID0gYWRvcHRQdHIobmV3IEdMWE9mZlNjcmVlblN1cmZhY2UoYXR0cmlidXRlcykpOwog
CiAgICAgaWYgKHN1cmZhY2UtPmRyYXdhYmxlKCkpCiAgICAgICAgIHJldHVybiBzdXJmYWNlLnJl
bGVhc2UoKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGF0dHJpYnV0ZXMpOwogI2VuZGlmCiAK
ICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotUGFzc093blB0cjxHTFBsYXRmb3JtU3VyZmFjZT4g
R0xQbGF0Zm9ybVN1cmZhY2U6OmNyZWF0ZVRyYW5zcG9ydFN1cmZhY2UoKQorUGFzc093blB0cjxH
TFBsYXRmb3JtU3VyZmFjZT4gR0xQbGF0Zm9ybVN1cmZhY2U6OmNyZWF0ZVRyYW5zcG9ydFN1cmZh
Y2UoU3VyZmFjZUF0dHJpYnV0ZXMgYXR0cmlidXRlcykKIHsKICNpZiBVU0UoR0xYKQotICAgIE93
blB0cjxHTFBsYXRmb3JtU3VyZmFjZT4gc3VyZmFjZSA9IGFkb3B0UHRyKG5ldyBHTFhUcmFuc3Bv
cnRTdXJmYWNlKCkpOworICAgIE93blB0cjxHTFBsYXRmb3JtU3VyZmFjZT4gc3VyZmFjZSA9IGFk
b3B0UHRyKG5ldyBHTFhUcmFuc3BvcnRTdXJmYWNlKGF0dHJpYnV0ZXMpKTsKICNlbGlmIFVTRShF
R0wpCi0gICAgT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBzdXJmYWNlID0gYWRvcHRQdHIobmV3
IEVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2UoKSk7CisgICAgT3duUHRyPEdMUGxhdGZvcm1TdXJm
YWNlPiBzdXJmYWNlID0gYWRvcHRQdHIobmV3IEVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2UoYXR0
cmlidXRlcykpOwogI2VuZGlmCiAKICAgICBpZiAoc3VyZmFjZSAmJiBzdXJmYWNlLT5oYW5kbGUo
KSAmJiBzdXJmYWNlLT5kcmF3YWJsZSgpKQpAQCAtNjYsNyArNjgsNyBAQCBQYXNzT3duUHRyPEdM
UGxhdGZvcm1TdXJmYWNlPiBHTFBsYXRmb3JtU3VyZmFjZTo6Y3JlYXRlVHJhbnNwb3J0U3VyZmFj
ZSgpCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLUdMUGxhdGZvcm1TdXJmYWNlOjpHTFBsYXRm
b3JtU3VyZmFjZSgpCitHTFBsYXRmb3JtU3VyZmFjZTo6R0xQbGF0Zm9ybVN1cmZhY2UoU3VyZmFj
ZUF0dHJpYnV0ZXMpCiAgICAgOiBtX2Zib0lkKDApCiAgICAgLCBtX3NoYXJlZERpc3BsYXkoMCkK
ICAgICAsIG1fZHJhd2FibGUoMCkKQEAgLTE0NCw2ICsxNDYsMTEgQEAgdm9pZCBHTFBsYXRmb3Jt
U3VyZmFjZTo6ZGVzdHJveSgpCiAgICAgfQogfQogCitHTFBsYXRmb3JtU3VyZmFjZTo6U3VyZmFj
ZUF0dHJpYnV0ZXMgR0xQbGF0Zm9ybVN1cmZhY2U6OmF0dHJpYnV0ZXMoKSBjb25zdAoreworICAg
IHJldHVybiBHTFBsYXRmb3JtU3VyZmFjZTo6RGVmYXVsdDsKK30KKwogfQogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRm
b3JtU3VyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dM
UGxhdGZvcm1TdXJmYWNlLmgKaW5kZXggMDBkZDdjOTFlZjkzMWFhM2VkN2YwNDM3Y2Q1ZDVmMWRh
ZmUzZDNhZS4uYjU5ODhmYzExMzRiNGVjOTA5NmUxMTY1OGQwM2Y0NTMzMzEwZWEyZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1T
dXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dM
UGxhdGZvcm1TdXJmYWNlLmgKQEAgLTQxLDEyICs0MSwxOSBAQCBjbGFzcyBHTFBsYXRmb3JtU3Vy
ZmFjZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR0xQbGF0Zm9ybVN1cmZhY2UpOwogCiBw
dWJsaWM6CisgICAgZW51bSBBdHRyaWJ1dGVzIHsKKyAgICAgICAgRGVmYXVsdCA9IDB4MDAsIC8v
IE5vIEFscGhhIGNoYW5uZWwuIE9ubHkgUixHLEIgdmFsdWVzIHNldC4KKyAgICAgICAgU3VwcG9y
dEFscGhhID0gMHgwMSwKKyAgICAgICAgRG91YmxlQnVmZmVyZWQgPSAweDA0CisgICAgfTsKKwor
ICAgIHR5cGVkZWYgaW50IFN1cmZhY2VBdHRyaWJ1dGVzOwogICAgIC8vIENyZWF0ZXMgYSBHTCBz
dXJmYWNlIHVzZWQgZm9yIG9mZnNjcmVlbiByZW5kZXJpbmcuCi0gICAgc3RhdGljIFBhc3NPd25Q
dHI8R0xQbGF0Zm9ybVN1cmZhY2U+IGNyZWF0ZU9mZlNjcmVlblN1cmZhY2UoKTsKKyAgICBzdGF0
aWMgUGFzc093blB0cjxHTFBsYXRmb3JtU3VyZmFjZT4gY3JlYXRlT2ZmU2NyZWVuU3VyZmFjZShT
dXJmYWNlQXR0cmlidXRlcyA9IEdMUGxhdGZvcm1TdXJmYWNlOjpEZWZhdWx0KTsKIAogICAgIC8v
IENyZWF0ZXMgYSBHTCBzdXJmYWNlIHVzZWQgZm9yIG9mZnNjcmVlbiByZW5kZXJpbmcuIFRoZSBy
ZXN1bHRzIGNhbiBiZSB0cmFuc3BvcnRlZAogICAgIC8vIHRvIHRoZSBVSSBwcm9jZXNzIGZvciBk
aXNwbGF5LgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBjcmVhdGVU
cmFuc3BvcnRTdXJmYWNlKCk7CisgICAgc3RhdGljIFBhc3NPd25QdHI8R0xQbGF0Zm9ybVN1cmZh
Y2U+IGNyZWF0ZVRyYW5zcG9ydFN1cmZhY2UoU3VyZmFjZUF0dHJpYnV0ZXMgPSBHTFBsYXRmb3Jt
U3VyZmFjZTo6RGVmYXVsdCk7CiAKICAgICB2aXJ0dWFsIH5HTFBsYXRmb3JtU3VyZmFjZSgpOwog
CkBAIC02MSw2ICs2OCw4IEBAIHB1YmxpYzoKIAogICAgIFBsYXRmb3JtRGlzcGxheSBzaGFyZWRE
aXNwbGF5KCkgY29uc3Q7CiAKKyAgICB2aXJ0dWFsIFN1cmZhY2VBdHRyaWJ1dGVzIGF0dHJpYnV0
ZXMoKSBjb25zdDsKKwogICAgIHZpcnR1YWwgdm9pZCBzd2FwQnVmZmVycygpOwogCiAgICAgLy8g
Q29udmVuaWVuY2UgRnVuY3Rpb24gdG8gdXBkYXRlIHN1cmZhY2UgYmFja2J1ZmZlciB3aXRoIHRl
eHR1cmUgY29udGVudHMuCkBAIC03Nyw3ICs4Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgZGVzdHJveSgpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgR0xQbGF0Zm9ybVN1cmZhY2UoKTsKKyAg
ICBHTFBsYXRmb3JtU3VyZmFjZShTdXJmYWNlQXR0cmlidXRlcyk7CiAgICAgSW50UmVjdCBtX3Jl
Y3Q7CiAgICAgR0x1aW50IG1fZmJvSWQ7CiAgICAgUGxhdGZvcm1EaXNwbGF5IG1fc2hhcmVkRGlz
cGxheTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzL2VnbC9FR0xDb25maWdTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMQ29uZmlnU2VsZWN0b3IuY3BwCmluZGV4IGNiY2QyMTI3
ZWJlZGFkMjY3ODRkZjFmNjBhZmVkMWYyMjBiMjY5MjQuLjliOWMyZTBkYWJkYzU2ZjE5Mzk2N2M0
YWVhMzVkZDJmZTQwYjBlYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xDb25maWdTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTENvbmZpZ1NlbGVjdG9yLmNw
cApAQCAtNDIsNyArNDIsNyBAQCBzdGF0aWMgRUdMaW50IGNvbmZpZ0F0dHJpYnV0ZUxpc3RbXSA9
IHsKICAgICBFR0xfR1JFRU5fU0laRSwgOCwKICAgICBFR0xfQkxVRV9TSVpFLCA4LAogICAgIEVH
TF9TVEVOQ0lMX1NJWkUsIDgsCi0gICAgRUdMX0FMUEhBX1NJWkUsIDgsCisgICAgRUdMX0FMUEhB
X1NJWkUsIDAsCiAgICAgRUdMX1NVUkZBQ0VfVFlQRSwgRUdMX05PTkUsCiAgICAgRUdMX05PTkUK
IH07CkBAIC0xMDQsOSArMTA0LDEwIEBAIFNoYXJlZEVHTERpc3BsYXk6On5TaGFyZWRFR0xEaXNw
bGF5KCkKICAgICBjbGVhbnVwKCk7CiB9CiAKLUVHTENvbmZpZ1NlbGVjdG9yOjpFR0xDb25maWdT
ZWxlY3RvcihOYXRpdmVTaGFyZWREaXNwbGF5KiBkaXNwbGF5KQorRUdMQ29uZmlnU2VsZWN0b3I6
OkVHTENvbmZpZ1NlbGVjdG9yKEdMUGxhdGZvcm1TdXJmYWNlOjpTdXJmYWNlQXR0cmlidXRlcyBh
dHRyaWJ1dGVzLCBOYXRpdmVTaGFyZWREaXNwbGF5KiBkaXNwbGF5KQogICAgIDogbV9wYnVmZmVy
RkJDb25maWcoMCkKICAgICAsIG1fc3VyZmFjZUNvbnRleHRGQkNvbmZpZygwKQorICAgICwgbV9h
dHRyaWJ1dGVzKGF0dHJpYnV0ZXMpCiB7CiAgICAgbV9zaGFyZWREaXNwbGF5ID0gU2hhcmVkRUdM
RGlzcGxheTo6Y3JlYXRlKGRpc3BsYXkpOwogfQpAQCAtMTIzLDYgKzEyNCw3IEBAIFBsYXRmb3Jt
RGlzcGxheSBFR0xDb25maWdTZWxlY3Rvcjo6ZGlzcGxheSgpIGNvbnN0CiBFR0xDb25maWcgRUdM
Q29uZmlnU2VsZWN0b3I6OnBCdWZmZXJDb250ZXh0Q29uZmlnKCkKIHsKICAgICBpZiAoIW1fcGJ1
ZmZlckZCQ29uZmlnKSB7CisgICAgICAgIGNvbmZpZ0F0dHJpYnV0ZUxpc3RbMTFdID0gbV9hdHRy
aWJ1dGVzICYgR0xQbGF0Zm9ybVN1cmZhY2U6OlN1cHBvcnRBbHBoYSA/IDggOiAwOwogICAgICAg
ICBjb25maWdBdHRyaWJ1dGVMaXN0WzEzXSA9IEVHTF9QSVhNQVBfQklUOwogICAgICAgICBtX3Bi
dWZmZXJGQkNvbmZpZyA9IGNyZWF0ZUNvbmZpZyhjb25maWdBdHRyaWJ1dGVMaXN0KTsKICAgICB9
CkBAIC0xMzMsNiArMTM1LDcgQEAgRUdMQ29uZmlnIEVHTENvbmZpZ1NlbGVjdG9yOjpwQnVmZmVy
Q29udGV4dENvbmZpZygpCiBFR0xDb25maWcgRUdMQ29uZmlnU2VsZWN0b3I6OnN1cmZhY2VDb250
ZXh0Q29uZmlnKCkKIHsKICAgICBpZiAoIW1fc3VyZmFjZUNvbnRleHRGQkNvbmZpZykgeworICAg
ICAgICBjb25maWdBdHRyaWJ1dGVMaXN0WzExXSA9IG1fYXR0cmlidXRlcyAmIEdMUGxhdGZvcm1T
dXJmYWNlOjpTdXBwb3J0QWxwaGEgPyA4IDogMDsKICAgICAgICAgY29uZmlnQXR0cmlidXRlTGlz
dFsxM10gPSBFR0xfV0lORE9XX0JJVDsKICAgICAgICAgbV9zdXJmYWNlQ29udGV4dEZCQ29uZmln
ID0gY3JlYXRlQ29uZmlnKGNvbmZpZ0F0dHJpYnV0ZUxpc3QpOwogICAgIH0KQEAgLTE1MSw2ICsx
NTQsMTEgQEAgRUdMaW50IEVHTENvbmZpZ1NlbGVjdG9yOjpuYXRpdmVWaXN1YWxJZChjb25zdCBF
R0xDb25maWcmIGNvbmZpZykgY29uc3QKICAgICByZXR1cm4gZWdsVmFsdWU7CiB9CiAKK0dMUGxh
dGZvcm1TdXJmYWNlOjpTdXJmYWNlQXR0cmlidXRlcyBFR0xDb25maWdTZWxlY3Rvcjo6YXR0cmli
dXRlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYXR0cmlidXRlczsKK30KKwogdm9pZCBFR0xD
b25maWdTZWxlY3Rvcjo6cmVzZXQoKQogewogICAgIG1fc3VyZmFjZUNvbnRleHRGQkNvbmZpZyA9
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNl
cy9lZ2wvRUdMQ29uZmlnU2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3N1cmZhY2VzL2VnbC9FR0xDb25maWdTZWxlY3Rvci5oCmluZGV4IDY2MzFhZGNiY2MxMmNh
MmU2ZTYxYzBjZTRiYTE2NDE3OTA1ZmE5YWQuLjg4NTY0MjkzZTU2ZGI5MWE3MTdlZmNhMmU5YmQx
NWMzM2Q2YjkyY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3N1cmZhY2VzL2VnbC9FR0xDb25maWdTZWxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xDb25maWdTZWxlY3Rvci5oCkBAIC0yOSw2
ICsyOSw3IEBACiAjaWYgVVNFKEVHTCkKIAogI2luY2x1ZGUgPG9wZW5nbC9HTERlZnMuaD4KKyNp
bmNsdWRlIDxvcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29w
eWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CkBAIC02OCwxMiArNjksMTMgQEAgY2xhc3MgRUdMQ29uZmlnU2VsZWN0b3Igewog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEVHTENvbmZpZ1NlbGVjdG9yKTsKIAogcHVibGljOgot
ICAgIEVHTENvbmZpZ1NlbGVjdG9yKE5hdGl2ZVNoYXJlZERpc3BsYXkqID0gMCk7CisgICAgRUdM
Q29uZmlnU2VsZWN0b3IoR0xQbGF0Zm9ybVN1cmZhY2U6OlN1cmZhY2VBdHRyaWJ1dGVzLCBOYXRp
dmVTaGFyZWREaXNwbGF5KiA9IDApOwogICAgIHZpcnR1YWwgfkVHTENvbmZpZ1NlbGVjdG9yKCk7
CiAgICAgUGxhdGZvcm1EaXNwbGF5IGRpc3BsYXkoKSBjb25zdDsKICAgICB2aXJ0dWFsIEVHTENv
bmZpZyBwQnVmZmVyQ29udGV4dENvbmZpZygpOwogICAgIHZpcnR1YWwgRUdMQ29uZmlnIHN1cmZh
Y2VDb250ZXh0Q29uZmlnKCk7CiAgICAgRUdMaW50IG5hdGl2ZVZpc3VhbElkKGNvbnN0IEVHTENv
bmZpZyYpIGNvbnN0OworICAgIEdMUGxhdGZvcm1TdXJmYWNlOjpTdXJmYWNlQXR0cmlidXRlcyBh
dHRyaWJ1dGVzKCkgY29uc3Q7CiAgICAgdm9pZCByZXNldCgpOwogCiBwcml2YXRlOgpAQCAtODMs
NiArODUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgRUdMQ29uZmlnIG1fcGJ1ZmZlckZCQ29uZmlnOwog
ICAgIEVHTENvbmZpZyBtX3N1cmZhY2VDb250ZXh0RkJDb25maWc7CiAgICAgUmVmUHRyPFNoYXJl
ZEVHTERpc3BsYXk+IG1fc2hhcmVkRGlzcGxheTsKKyAgICB1bnNpZ25lZCBtX2F0dHJpYnV0ZXMg
OiAzOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvc3VyZmFjZXMvZWdsL0VHTFN1cmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTFN1cmZhY2UuY3BwCmluZGV4IGU2NzExZjhlOThhNjhk
ZmI2ZDAwMzQwYWY3NTE1ZTVkNGQ4ODU0NmQuLmVhZjEzMDAyMmI3Yjk0NTAwY2YxMWRmY2QwZWEx
ZTIwNTRlMDYwNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3N1cmZhY2VzL2VnbC9FR0xTdXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMU3VyZmFjZS5jcHAKQEAgLTMwLDEwICszMCwxMCBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2U6OkVH
TFdpbmRvd1RyYW5zcG9ydFN1cmZhY2UoKQotICAgIDogR0xQbGF0Zm9ybVN1cmZhY2UoKQorRUdM
V2luZG93VHJhbnNwb3J0U3VyZmFjZTo6RUdMV2luZG93VHJhbnNwb3J0U3VyZmFjZShTdXJmYWNl
QXR0cmlidXRlcyBhdHRyaWJ1dGVzKQorICAgIDogR0xQbGF0Zm9ybVN1cmZhY2UoYXR0cmlidXRl
cykKIHsKLSAgICBtX2NvbmZpZ1NlbGVjdG9yID0gYWRvcHRQdHIobmV3IEVHTENvbmZpZ1NlbGVj
dG9yKE5hdGl2ZVdyYXBwZXI6Om5hdGl2ZURpc3BsYXkoKSkpOworICAgIG1fY29uZmlnU2VsZWN0
b3IgPSBhZG9wdFB0cihuZXcgRUdMQ29uZmlnU2VsZWN0b3IoYXR0cmlidXRlcywgTmF0aXZlV3Jh
cHBlcjo6bmF0aXZlRGlzcGxheSgpKSk7CiAgICAgbV9zaGFyZWREaXNwbGF5ID0gbV9jb25maWdT
ZWxlY3Rvci0+ZGlzcGxheSgpOwogCiAgICAgaWYgKG1fc2hhcmVkRGlzcGxheSA9PSBFR0xfTk9f
RElTUExBWSkgewpAQCAtNTUsNyArNTUsNyBAQCBFR0xXaW5kb3dUcmFuc3BvcnRTdXJmYWNlOjpF
R0xXaW5kb3dUcmFuc3BvcnRTdXJmYWNlKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IE5hdGl2ZVdyYXBwZXI6OmNyZWF0ZU9mZlNjcmVlbldpbmRvdygmbV9idWZmZXJIYW5kbGUsIHZp
c3VhbElkKTsKKyAgICBOYXRpdmVXcmFwcGVyOjpjcmVhdGVPZmZTY3JlZW5XaW5kb3coJm1fYnVm
ZmVySGFuZGxlLCAoYXR0cmlidXRlcyAmIEdMUGxhdGZvcm1TdXJmYWNlOjpTdXBwb3J0QWxwaGEp
LCB2aXN1YWxJZCk7CiAKICAgICBpZiAoIW1fYnVmZmVySGFuZGxlKSB7CiAgICAgICAgIGRlc3Ry
b3koKTsKQEAgLTcwLDYgKzcwLDExIEBAIEVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2U6OkVHTFdp
bmRvd1RyYW5zcG9ydFN1cmZhY2UoKQogICAgIH0KIH0KIAorR0xQbGF0Zm9ybVN1cmZhY2U6OlN1
cmZhY2VBdHRyaWJ1dGVzIEVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2U6OmF0dHJpYnV0ZXMoKSBj
b25zdAoreworICAgIHJldHVybiBtX2NvbmZpZ1NlbGVjdG9yLT5hdHRyaWJ1dGVzKCk7Cit9CisK
IEVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2U6On5FR0xXaW5kb3dUcmFuc3BvcnRTdXJmYWNlKCkK
IHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzL2VnbC9FR0xTdXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9z
dXJmYWNlcy9lZ2wvRUdMU3VyZmFjZS5oCmluZGV4IDJlYTcwNDIwOTk5Y2JhMTEzMGE4MzZmN2Fh
YjM5M2Q1NDcwM2M1ODQuLmRiMWEyMWU4ODhiMmM1ZjZiNDZmYzk5ZTM3MTI1NzZkOGU2MmU1ZmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2Vn
bC9FR0xTdXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3Vy
ZmFjZXMvZWdsL0VHTFN1cmZhY2UuaApAQCAtNDMsMTIgKzQzLDEzIEBAIHR5cGVkZWYgWDExSGVs
cGVyIE5hdGl2ZVdyYXBwZXI7CiBjbGFzcyBFR0xXaW5kb3dUcmFuc3BvcnRTdXJmYWNlIDogcHVi
bGljIEdMUGxhdGZvcm1TdXJmYWNlIHsKIAogcHVibGljOgotICAgIEVHTFdpbmRvd1RyYW5zcG9y
dFN1cmZhY2UoKTsKKyAgICBFR0xXaW5kb3dUcmFuc3BvcnRTdXJmYWNlKFN1cmZhY2VBdHRyaWJ1
dGVzKTsKICAgICB2aXJ0dWFsIH5FR0xXaW5kb3dUcmFuc3BvcnRTdXJmYWNlKCk7CiAgICAgdmly
dHVhbCBQbGF0Zm9ybVN1cmZhY2VDb25maWcgY29uZmlndXJhdGlvbigpIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRHZW9tZXRyeShjb25zdCBJbnRSZWN0JiBuZXdSZWN0KSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgc3dhcEJ1ZmZlcnMoKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgZGVzdHJveSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgR0xQbGF0Zm9ybVN1cmZhY2U6
OlN1cmZhY2VBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMoKSBjb25zdCBPVkVSUklERTsKIAogcHJpdmF0
ZToKICAgICB2b2lkIGZyZWVFR0xSZXNvdXJjZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhDb25maWdTZWxlY3Rvci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbmZpZ1Nl
bGVjdG9yLmgKaW5kZXggYzEzYzI2YzE1ZGMzYmUxMjAyMmY5YjliNjk2NTRiMDNhYWVjNTNkNi4u
ZjMyYzJhZmY5N2NiNzg3YTA2NzI3NTQ3ZTIwYmZiMDM2OTcyNDE1MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbmZpZ1NlbGVj
dG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4
L0dMWENvbmZpZ1NlbGVjdG9yLmgKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIlgxMUhl
bHBlci5oIgogI2luY2x1ZGUgPG9wZW5nbC9HTERlZnMuaD4KKyNpbmNsdWRlIDxvcGVuZ2wvR0xQ
bGF0Zm9ybVN1cmZhY2UuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MywxMyArNDQs
MjYgQEAgc3RhdGljIGludCBjbGllbnRBdHRyaWJ1dGVzW10gPSB7CiAgICAgMAogfTsKIAorc3Rh
dGljIGludCBnbHhTdXJmYWNlQXR0cmlidXRlc1tdID0geworICAgIEdMWF9MRVZFTCwgMCwKKyAg
ICBHTFhfRFJBV0FCTEVfVFlQRSwgR0xYX1BJWE1BUF9CSVQsCisgICAgR0xYX1JFTkRFUl9UWVBF
LCAgIDAsCisgICAgR0xYX1JFRF9TSVpFLCAgICAgIDEsCisgICAgR0xYX0dSRUVOX1NJWkUsICAg
IDEsCisgICAgR0xYX0JMVUVfU0laRSwgICAgIDEsCisgICAgR0xYX0FMUEhBX1NJWkUsICAgIDAs
CisgICAgR0xYX0RPVUJMRUJVRkZFUiwgIEdMX0ZBTFNFLAorICAgIE5vbmUKK307CisKIGNsYXNz
IEdMWENvbmZpZ1NlbGVjdG9yIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShHTFhDb25maWdT
ZWxlY3Rvcik7CiAKIHB1YmxpYzoKLSAgICBHTFhDb25maWdTZWxlY3RvcigpCisgICAgR0xYQ29u
ZmlnU2VsZWN0b3IoR0xQbGF0Zm9ybVN1cmZhY2U6OlN1cmZhY2VBdHRyaWJ1dGVzIGF0dHIgPSBH
TFBsYXRmb3JtU3VyZmFjZTo6RGVmYXVsdCkKICAgICAgICAgOiBtX3N1cmZhY2VDb250ZXh0RkJD
b25maWcoMCkKICAgICAgICAgLCBtX3BpeG1hcENvbnRleHRGQkNvbmZpZygwKQorICAgICAgICAs
IG1fYXR0cmlidXRlcyhhdHRyKQogICAgIHsKICAgICB9CiAKQEAgLTY1LDE5ICs3OSw4IEBAIHB1
YmxpYzoKICAgICBHTFhGQkNvbmZpZyBwaXhtYXBDb250ZXh0Q29uZmlnKCkKICAgICB7CiAgICAg
ICAgIGlmICghbV9waXhtYXBDb250ZXh0RkJDb25maWcpIHsKLSAgICAgICAgICAgIHN0YXRpYyBj
b25zdCBpbnQgYXR0cmlidXRlc1tdID0gewotICAgICAgICAgICAgICAgIEdMWF9MRVZFTCwgMCwK
LSAgICAgICAgICAgICAgICBHTFhfRFJBV0FCTEVfVFlQRSwgR0xYX1BJWE1BUF9CSVQsCi0gICAg
ICAgICAgICAgICAgR0xYX1JFTkRFUl9UWVBFLCAgIEdMWF9SR0JBX0JJVCwKLSAgICAgICAgICAg
ICAgICBHTFhfUkVEX1NJWkUsICAgICAgMSwKLSAgICAgICAgICAgICAgICBHTFhfR1JFRU5fU0la
RSwgICAgMSwKLSAgICAgICAgICAgICAgICBHTFhfQkxVRV9TSVpFLCAgICAgMSwKLSAgICAgICAg
ICAgICAgICBHTFhfQUxQSEFfU0laRSwgICAgMSwKLSAgICAgICAgICAgICAgICBHTFhfRE9VQkxF
QlVGRkVSLCAgR0xfRkFMU0UsCi0gICAgICAgICAgICAgICAgTm9uZQotICAgICAgICAgICAgfTsK
LQotICAgICAgICAgICAgbV9waXhtYXBDb250ZXh0RkJDb25maWcgPSBmaW5kTWF0Y2hpbmdDb25m
aWcoYXR0cmlidXRlcyk7CisgICAgICAgICAgICB2YWxpZGF0ZUF0dHJpYnV0ZXMoKTsKKyAgICAg
ICAgICAgIG1fcGl4bWFwQ29udGV4dEZCQ29uZmlnID0gZmluZE1hdGNoaW5nQ29uZmlnKGdseFN1
cmZhY2VBdHRyaWJ1dGVzLCBtX2F0dHJpYnV0ZXMgJiBHTFBsYXRmb3JtU3VyZmFjZTo6U3VwcG9y
dEFscGhhID8gMzIgOiAyNCk7CiAgICAgICAgIH0KIAogICAgICAgICByZXR1cm4gbV9waXhtYXBD
b250ZXh0RkJDb25maWc7CkBAIC04Niw4ICs4OSwxNCBAQCBwdWJsaWM6CiAKICAgICBHTFhGQkNv
bmZpZyBzdXJmYWNlQ29udGV4dENvbmZpZygpCiAgICAgewotICAgICAgICBpZiAoIW1fc3VyZmFj
ZUNvbnRleHRGQkNvbmZpZykKLSAgICAgICAgICAgIGNyZWF0ZVN1cmZhY2VDb25maWcoKTsKKyAg
ICAgICAgaWYgKCFtX3N1cmZhY2VDb250ZXh0RkJDb25maWcpIHsKKyAgICAgICAgICAgIGdseFN1
cmZhY2VBdHRyaWJ1dGVzWzNdID0gR0xYX1dJTkRPV19CSVQ7CisgICAgICAgICAgICBnbHhTdXJm
YWNlQXR0cmlidXRlc1s3XSA9IDg7CisgICAgICAgICAgICBnbHhTdXJmYWNlQXR0cmlidXRlc1s5
XSA9IDg7CisgICAgICAgICAgICBnbHhTdXJmYWNlQXR0cmlidXRlc1sxMV0gPSA4OworICAgICAg
ICAgICAgdmFsaWRhdGVBdHRyaWJ1dGVzKCk7CisgICAgICAgICAgICBtX3N1cmZhY2VDb250ZXh0
RkJDb25maWcgPSBmaW5kTWF0Y2hpbmdDb25maWcoZ2x4U3VyZmFjZUF0dHJpYnV0ZXMsIG1fYXR0
cmlidXRlcyAmIEdMUGxhdGZvcm1TdXJmYWNlOjpTdXBwb3J0QWxwaGEgPyAzMiA6IDI0KTsKKyAg
ICAgICAgfQogCiAgICAgICAgIHJldHVybiBtX3N1cmZhY2VDb250ZXh0RkJDb25maWc7CiAgICAg
fQpAQCAtOTYsOCArMTA1LDEzIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIGNsaWVudEF0dHJp
YnV0ZXNbM10gPSBzdGF0aWNfY2FzdDxpbnQ+KGlkKTsKICAgICAgICAgY2xpZW50QXR0cmlidXRl
c1s4XSA9IGRlcHRoID09IDMyID8gR0xYX0JJTkRfVE9fVEVYVFVSRV9SR0JBX0VYVCA6IEdMWF9C
SU5EX1RPX1RFWFRVUkVfUkdCX0VYVDsKKyAgICAgICAgLy8gUHJlZmVyIHRvIG1hdGNoIHdpdGgg
VmlzdWFsIElkLgorICAgICAgICBHTFhGQkNvbmZpZyBjb25maWcgPSBmaW5kTWF0Y2hpbmdDb25m
aWdXaXRoVmlzdWFsSWQoY2xpZW50QXR0cmlidXRlcywgZGVwdGgsIGlkKTsKIAotICAgICAgICBy
ZXR1cm4gZmluZE1hdGNoaW5nQ29uZmlnKGNsaWVudEF0dHJpYnV0ZXMsIGRlcHRoLCBpZCk7Cisg
ICAgICAgIGlmICghY29uZmlnKQorICAgICAgICAgICAgY29uZmlnID0gZmluZE1hdGNoaW5nQ29u
ZmlnKGNsaWVudEF0dHJpYnV0ZXMsIGRlcHRoKTsKKworICAgICAgICByZXR1cm4gY29uZmlnOwog
ICAgIH0KIAogICAgIHZvaWQgcmVzZXQoKQpAQCAtMTA2LDI3ICsxMjAsMjQgQEAgcHVibGljOgog
ICAgICAgICBtX3BpeG1hcENvbnRleHRGQkNvbmZpZyA9IDA7CiAgICAgfQogCisgICAgR0xQbGF0
Zm9ybVN1cmZhY2U6OlN1cmZhY2VBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMoKSBjb25zdAorICAgIHsK
KyAgICAgICAgcmV0dXJuIG1fYXR0cmlidXRlczsKKyAgICB9CisKIHByaXZhdGU6Ci0gICAgdm9p
ZCBjcmVhdGVTdXJmYWNlQ29uZmlnKCkKKyAgICB2b2lkIHZhbGlkYXRlQXR0cmlidXRlcygpCiAg
ICAgewotICAgICAgICBzdGF0aWMgaW50IGF0dHJpYnV0ZXNbXSA9IHsKLSAgICAgICAgICAgIEdM
WF9MRVZFTCwgMCwKLSAgICAgICAgICAgIEdMWF9EUkFXQUJMRV9UWVBFLCBHTFhfV0lORE9XX0JJ
VCwKLSAgICAgICAgICAgIEdMWF9SRU5ERVJfVFlQRSwgICBHTFhfUkdCQV9CSVQsCi0gICAgICAg
ICAgICBHTFhfUkVEX1NJWkUsICAgICAgMSwKLSAgICAgICAgICAgIEdMWF9HUkVFTl9TSVpFLCAg
ICAxLAotICAgICAgICAgICAgR0xYX0JMVUVfU0laRSwgICAgIDEsCi0gICAgICAgICAgICBHTFhf
QUxQSEFfU0laRSwgICAgMSwKLSAgICAgICAgICAgIEdMWF9ERVBUSF9TSVpFLCAgICAxLAotICAg
ICAgICAgICAgR0xYX1hfVklTVUFMX1RZUEUsIEdMWF9UUlVFX0NPTE9SLAotICAgICAgICAgICAg
R0xYX0RPVUJMRUJVRkZFUiwgIFRydWUsCi0gICAgICAgICAgICBOb25lCi0gICAgICAgIH07Ci0K
LSAgICAgICAgbV9zdXJmYWNlQ29udGV4dEZCQ29uZmlnID0gZmluZE1hdGNoaW5nQ29uZmlnKGF0
dHJpYnV0ZXMpOworICAgICAgICBpZiAobV9hdHRyaWJ1dGVzICYgR0xQbGF0Zm9ybVN1cmZhY2U6
OlN1cHBvcnRBbHBoYSkgeworICAgICAgICAgICAgZ2x4U3VyZmFjZUF0dHJpYnV0ZXNbMTNdID0g
ODsKKyAgICAgICAgICAgIGdseFN1cmZhY2VBdHRyaWJ1dGVzWzVdID0gR0xYX1JHQkFfQklUOwor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKG1fYXR0cmlidXRlcyAmIEdMUGxhdGZvcm1TdXJmYWNl
OjpEb3VibGVCdWZmZXJlZCkKKyAgICAgICAgICAgIGdseFN1cmZhY2VBdHRyaWJ1dGVzWzE1XSA9
IEdMX1RSVUU7CiAgICAgfQogCi0gICAgR0xYRkJDb25maWcgZmluZE1hdGNoaW5nQ29uZmlnKGNv
bnN0IGludCBhdHRyaWJ1dGVzW10sIGludCBkZXB0aCA9IDMyLCBWaXN1YWxJRCBpZCA9IDApCisg
ICAgR0xYRkJDb25maWcgZmluZE1hdGNoaW5nQ29uZmlnKGNvbnN0IGludCBhdHRyaWJ1dGVzW10s
IGludCBkZXB0aCA9IDMyKQogICAgIHsKICAgICAgICAgaW50IG51bUF2YWlsYWJsZUNvbmZpZ3M7
CiAgICAgICAgIE93blB0clgxMTxHTFhGQkNvbmZpZz4gdGVtcChnbFhDaG9vc2VGQkNvbmZpZyhY
MTFIZWxwZXI6Om5hdGl2ZURpc3BsYXkoKSwgRGVmYXVsdFNjcmVlbihYMTFIZWxwZXI6Om5hdGl2
ZURpc3BsYXkoKSksIGF0dHJpYnV0ZXMsICZudW1BdmFpbGFibGVDb25maWdzKSk7CkBAIC0xNDAs
MTQgKzE1MSwxNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgaWYgKCFzY29wZWRWaXN1YWxJbmZv
LmdldCgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICBpZiAoaWQg
JiYgc2NvcGVkVmlzdWFsSW5mby0+ZGVwdGggPT0gZGVwdGggJiYgc2NvcGVkVmlzdWFsSW5mby0+
dmlzdWFsaWQgPT0gaWQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRlbXBbaV07Ci0KICNpZiBV
U0UoR1JBUEhJQ1NfU1VSRkFDRSkKICAgICAgICAgICAgIGlmIChYMTFIZWxwZXI6OmlzWFJlbmRl
ckV4dGVuc2lvblN1cHBvcnRlZCgpKSB7CiAgICAgICAgICAgICAgICAgWFJlbmRlclBpY3RGb3Jt
YXQqIGZvcm1hdCA9IFhSZW5kZXJGaW5kVmlzdWFsRm9ybWF0KFgxMUhlbHBlcjo6bmF0aXZlRGlz
cGxheSgpLCBzY29wZWRWaXN1YWxJbmZvLT52aXN1YWwpOwotICAgICAgICAgICAgICAgIGlmIChm
b3JtYXQgJiYgZGVwdGggPT0gMzIgJiYgZm9ybWF0LT5kaXJlY3QuYWxwaGFNYXNrID4gMCkKLSAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHRlbXBbaV07CisKKyAgICAgICAgICAgICAgICBpZiAo
Zm9ybWF0KSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX2F0dHJpYnV0ZXMgJiBHTFBsYXRm
b3JtU3VyZmFjZTo6U3VwcG9ydEFscGhhKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
c2NvcGVkVmlzdWFsSW5mby0+ZGVwdGggPT0gZGVwdGggJiYgZm9ybWF0LT5kaXJlY3QuYWxwaGFN
YXNrID4gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGVtcFtpXTsKKyAg
ICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghZm9ybWF0LT5kaXJlY3QuYWxwaGFNYXNrKQor
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRlbXBbaV07CisgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgfQogI2VuZGlmCiAgICAgICAgICAgICBpZiAoc2NvcGVkVmlzdWFsSW5m
by0+ZGVwdGggPT0gZGVwdGgpCkBAIC0xNTUsMTEgKzE2OSwzOCBAQCBwcml2YXRlOgogICAgICAg
ICB9CiAKICAgICAgICAgLy8gRGlkIG5vdCBmaW5kIGFueSB2aXN1YWwgc3VwcG9ydGluZyBhbHBo
YSwgc2VsZWN0IHRoZSBmaXJzdCBhdmFpbGFibGUgY29uZmlnLgorICAgICAgICBzY29wZWRWaXN1
YWxJbmZvID0gZ2xYR2V0VmlzdWFsRnJvbUZCQ29uZmlnKFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxh
eSgpLCB0ZW1wWzBdKTsKKworICAgICAgICBpZiAoKG1fYXR0cmlidXRlcyAmIEdMUGxhdGZvcm1T
dXJmYWNlOjpTdXBwb3J0QWxwaGEpICYmIChzY29wZWRWaXN1YWxJbmZvLT5kZXB0aCAhPSAzMikp
CisgICAgICAgICAgICBtX2F0dHJpYnV0ZXMgJj0gfkdMUGxhdGZvcm1TdXJmYWNlOjpTdXBwb3J0
QWxwaGE7CisKICAgICAgICAgcmV0dXJuIHRlbXBbMF07CiAgICAgfQogCisgICAgR0xYRkJDb25m
aWcgZmluZE1hdGNoaW5nQ29uZmlnV2l0aFZpc3VhbElkKGNvbnN0IGludCBhdHRyaWJ1dGVzW10s
IGludCBkZXB0aCwgVmlzdWFsSUQgaWQpCisgICAgeworICAgICAgICBpbnQgbnVtQXZhaWxhYmxl
Q29uZmlnczsKKyAgICAgICAgT3duUHRyWDExPEdMWEZCQ29uZmlnPiB0ZW1wKGdsWENob29zZUZC
Q29uZmlnKFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxheSgpLCBEZWZhdWx0U2NyZWVuKFgxMUhlbHBl
cjo6bmF0aXZlRGlzcGxheSgpKSwgYXR0cmlidXRlcywgJm51bUF2YWlsYWJsZUNvbmZpZ3MpKTsK
KworICAgICAgICBpZiAoIW51bUF2YWlsYWJsZUNvbmZpZ3MgfHwgIXRlbXAuZ2V0KCkpCisgICAg
ICAgICAgICByZXR1cm4gMDsKKworICAgICAgICBPd25QdHJYMTE8WFZpc3VhbEluZm8+IHNjb3Bl
ZFZpc3VhbEluZm87CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQXZhaWxhYmxlQ29u
ZmlnczsgKytpKSB7CisgICAgICAgICAgICBzY29wZWRWaXN1YWxJbmZvID0gZ2xYR2V0VmlzdWFs
RnJvbUZCQ29uZmlnKFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxheSgpLCB0ZW1wW2ldKTsKKyAgICAg
ICAgICAgIGlmICghc2NvcGVkVmlzdWFsSW5mby5nZXQoKSkKKyAgICAgICAgICAgICAgICBjb250
aW51ZTsKKworICAgICAgICAgICAgaWYgKGlkICYmIHNjb3BlZFZpc3VhbEluZm8tPmRlcHRoID09
IGRlcHRoICYmIHNjb3BlZFZpc3VhbEluZm8tPnZpc3VhbGlkID09IGlkKQorICAgICAgICAgICAg
ICAgIHJldHVybiB0ZW1wW2ldOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIDA7CisgICAg
fQorCiAgICAgR0xYRkJDb25maWcgbV9zdXJmYWNlQ29udGV4dEZCQ29uZmlnOwogICAgIEdMWEZC
Q29uZmlnIG1fcGl4bWFwQ29udGV4dEZCQ29uZmlnOworICAgIEdMUGxhdGZvcm1TdXJmYWNlOjpT
dXJmYWNlQXR0cmlidXRlcyBtX2F0dHJpYnV0ZXMgOiAzOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbnRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENv
bnRleHQuY3BwCmluZGV4IDE5ZDRiN2I2NzVkYWUwNWFkNTI5OWE5NTJhYTM1YmUyYTljMDI4NmMu
LjEwZDQ0Zjg4MmVjYWI4OTBmMTU3Njk4MDlhMDkwZDQzZjAzODdlN2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhDb250ZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xY
Q29udGV4dC5jcHAKQEAgLTg0LDggKzg0LDkgQEAgYm9vbCBHTFhPZmZTY3JlZW5Db250ZXh0Ojpp
bml0aWFsaXplKEdMUGxhdGZvcm1TdXJmYWNlKiBzdXJmYWNlLCBQbGF0Zm9ybUNvbnRleHQKICAg
ICAgICAgICAgICAgICBnbFhEZXN0cm95Q29udGV4dCh4MTFEaXNwbGF5LCBtX2NvbnRleHRIYW5k
bGUpOwogICAgICAgICB9CiAKKyAgICAgICAgYm9vbCBzdXBwb3J0c0FscGhhID0gc3VyZmFjZS0+
YXR0cmlidXRlcygpICYgR0xQbGF0Zm9ybVN1cmZhY2U6OlN1cHBvcnRBbHBoYTsKICAgICAgICAg
aWYgKCFtX2NvbnRleHRIYW5kbGUpCi0gICAgICAgICAgICBtX2NvbnRleHRIYW5kbGUgPSBnbFhD
cmVhdGVOZXdDb250ZXh0KHgxMURpc3BsYXksIGNvbmZpZywgR0xYX1JHQkFfVFlQRSwgc2hhcmVk
Q29udGV4dCwgdHJ1ZSk7CisgICAgICAgICAgICBtX2NvbnRleHRIYW5kbGUgPSBnbFhDcmVhdGVO
ZXdDb250ZXh0KHgxMURpc3BsYXksIGNvbmZpZywgc3VwcG9ydHNBbHBoYSA/IEdMWF9SR0JBX1RZ
UEUgOiAwLCBzaGFyZWRDb250ZXh0LCB0cnVlKTsKIAogICAgICAgICBpZiAobV9jb250ZXh0SGFu
ZGxlKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5jcHAKaW5k
ZXggZWJkMzBmM2UwZjEwMTJiYjk5NTEzZDFlY2RlYWM0YTM1MDdiOTVhZC4uOGFiN2FhNjdhMjcz
NDM1ZGVmYmExOTYxMjM2ZDg1MzYwOTdhZWIzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmNwcApA
QCAtMzIsMTEgKzMyLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGNvbnN0IGlu
dCBwYnVmZmVyQXR0cmlidXRlc1tdID0geyBHTFhfUEJVRkZFUl9XSURUSCwgMSwgR0xYX1BCVUZG
RVJfSEVJR0hULCAxLCAwIH07CiAKLUdMWFRyYW5zcG9ydFN1cmZhY2U6OkdMWFRyYW5zcG9ydFN1
cmZhY2UoKQotICAgIDogR0xQbGF0Zm9ybVN1cmZhY2UoKQorR0xYVHJhbnNwb3J0U3VyZmFjZTo6
R0xYVHJhbnNwb3J0U3VyZmFjZShTdXJmYWNlQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQorICAgIDog
R0xQbGF0Zm9ybVN1cmZhY2UoYXR0cmlidXRlcykKIHsKICAgICBtX3NoYXJlZERpc3BsYXkgPSBY
MTFIZWxwZXI6Om5hdGl2ZURpc3BsYXkoKTsKLSAgICBtX2NvbmZpZ1NlbGVjdG9yID0gYWRvcHRQ
dHIobmV3IEdMWENvbmZpZ1NlbGVjdG9yKCkpOworICAgIGF0dHJpYnV0ZXMgfD0gR0xQbGF0Zm9y
bVN1cmZhY2U6OkRvdWJsZUJ1ZmZlcmVkOworICAgIG1fY29uZmlnU2VsZWN0b3IgPSBhZG9wdFB0
cihuZXcgR0xYQ29uZmlnU2VsZWN0b3IoYXR0cmlidXRlcykpOwogICAgIE93blB0clgxMTxYVmlz
dWFsSW5mbz4gdmlzSW5mbyhtX2NvbmZpZ1NlbGVjdG9yLT52aXN1YWxJbmZvKG1fY29uZmlnU2Vs
ZWN0b3ItPnN1cmZhY2VDb250ZXh0Q29uZmlnKCkpKTsKIAogICAgIGlmICghdmlzSW5mby5nZXQo
KSkgewpAQCAtOTIsMjMgKzkzLDI4IEBAIHZvaWQgR0xYVHJhbnNwb3J0U3VyZmFjZTo6ZGVzdHJv
eSgpCiAgICAgbV9jb25maWdTZWxlY3RvciA9IG51bGxwdHI7CiB9CiAKLUdMWE9mZlNjcmVlblN1
cmZhY2U6OkdMWE9mZlNjcmVlblN1cmZhY2UoKQotICAgIDogR0xQbGF0Zm9ybVN1cmZhY2UoKQor
R0xQbGF0Zm9ybVN1cmZhY2U6OlN1cmZhY2VBdHRyaWJ1dGVzIEdMWFRyYW5zcG9ydFN1cmZhY2U6
OmF0dHJpYnV0ZXMoKSBjb25zdAoreworICAgIHJldHVybiBtX2NvbmZpZ1NlbGVjdG9yLT5hdHRy
aWJ1dGVzKCk7Cit9CisKK0dMWE9mZlNjcmVlblN1cmZhY2U6OkdMWE9mZlNjcmVlblN1cmZhY2Uo
U3VyZmFjZUF0dHJpYnV0ZXMgc3VyZmFjZUF0dHJpYnV0ZXMpCisgICAgOiBHTFBsYXRmb3JtU3Vy
ZmFjZShzdXJmYWNlQXR0cmlidXRlcykKICAgICAsIG1fcGl4bWFwKDApCiAgICAgLCBtX2dseFBp
eG1hcCgwKQogewotICAgIGluaXRpYWxpemUoKTsKKyAgICBpbml0aWFsaXplKHN1cmZhY2VBdHRy
aWJ1dGVzKTsKIH0KIAogR0xYT2ZmU2NyZWVuU3VyZmFjZTo6fkdMWE9mZlNjcmVlblN1cmZhY2Uo
KQogewogfQogCi12b2lkIEdMWE9mZlNjcmVlblN1cmZhY2U6OmluaXRpYWxpemUoKQordm9pZCBH
TFhPZmZTY3JlZW5TdXJmYWNlOjppbml0aWFsaXplKFN1cmZhY2VBdHRyaWJ1dGVzIGF0dHJpYnV0
ZXMpCiB7CiAgICAgbV9zaGFyZWREaXNwbGF5ID0gWDExSGVscGVyOjpuYXRpdmVEaXNwbGF5KCk7
CiAKLSAgICBtX2NvbmZpZ1NlbGVjdG9yID0gYWRvcHRQdHIobmV3IEdMWENvbmZpZ1NlbGVjdG9y
KCkpOworICAgIG1fY29uZmlnU2VsZWN0b3IgPSBhZG9wdFB0cihuZXcgR0xYQ29uZmlnU2VsZWN0
b3IoYXR0cmlidXRlcykpOwogCiAgICAgT3duUHRyWDExPFhWaXN1YWxJbmZvPiB2aXN1YWxJbmZv
KG1fY29uZmlnU2VsZWN0b3ItPnZpc3VhbEluZm8obV9jb25maWdTZWxlY3Rvci0+cGl4bWFwQ29u
dGV4dENvbmZpZygpKSk7CiAgICAgWDExSGVscGVyOjpjcmVhdGVQaXhtYXAoJm1fcGl4bWFwLCAq
dmlzdWFsSW5mby5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuaAppbmRleCA0MzBmZTUxNjYxNmRl
YzVkZDA4ZDMwZDUyZDc3ZGU3MWIxMWUzYWM0Li5kN2VhYzkxODAxZTA4YjRhOWJiNjgzMTc2ZDE1
NjFiN2ExMjg5YjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmgKQEAgLTM3LDExICszNywxMiBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBHTFhUcmFuc3BvcnRTdXJmYWNlIDogcHVibGljIEdM
UGxhdGZvcm1TdXJmYWNlIHsKIAogcHVibGljOgotICAgIEdMWFRyYW5zcG9ydFN1cmZhY2UoKTsK
KyAgICBHTFhUcmFuc3BvcnRTdXJmYWNlKFN1cmZhY2VBdHRyaWJ1dGVzKTsKICAgICB2aXJ0dWFs
IH5HTFhUcmFuc3BvcnRTdXJmYWNlKCk7CiAgICAgdmlydHVhbCBQbGF0Zm9ybVN1cmZhY2VDb25m
aWcgY29uZmlndXJhdGlvbigpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzd2FwQnVmZmVy
cygpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRHZW9tZXRyeShjb25zdCBJbnRSZWN0
JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBHTFBsYXRmb3JtU3VyZmFjZTo6U3VyZmFjZUF0dHJp
YnV0ZXMgYXR0cmlidXRlcygpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkZXN0
cm95KCkgT1ZFUlJJREU7CiAKIHByaXZhdGU6CkBAIC01MiwxMyArNTMsMTMgQEAgcHJpdmF0ZToK
IGNsYXNzIEdMWE9mZlNjcmVlblN1cmZhY2UgOiBwdWJsaWMgR0xQbGF0Zm9ybVN1cmZhY2Ugewog
CiBwdWJsaWM6Ci0gICAgR0xYT2ZmU2NyZWVuU3VyZmFjZSgpOworICAgIEdMWE9mZlNjcmVlblN1
cmZhY2UoU3VyZmFjZUF0dHJpYnV0ZXMpOwogICAgIHZpcnR1YWwgfkdMWE9mZlNjcmVlblN1cmZh
Y2UoKTsKICAgICB2aXJ0dWFsIFBsYXRmb3JtU3VyZmFjZUNvbmZpZyBjb25maWd1cmF0aW9uKCkg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKSBPVkVSUklERTsKIAogcHJpdmF0
ZToKLSAgICB2b2lkIGluaXRpYWxpemUoKTsKKyAgICB2b2lkIGluaXRpYWxpemUoU3VyZmFjZUF0
dHJpYnV0ZXMpOwogICAgIHZvaWQgZnJlZVJlc291cmNlcygpOwogICAgIE93blB0cjxHTFhDb25m
aWdTZWxlY3Rvcj4gbV9jb25maWdTZWxlY3RvcjsKICAgICBQaXhtYXAgbV9waXhtYXA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR3Jh
cGhpY3NTdXJmYWNlR0xYLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1
cmZhY2VzL2dseC9HcmFwaGljc1N1cmZhY2VHTFguY3BwCmluZGV4IDVlMThhNTliOTY0NzQ4ZTcy
MTgxNDFmZjFiYWFkYzk2OTkzMDNhOGYuLjQzOTFiNTljM2RmNjAxNGNlNzZmYjc2MmVmN2NhZDM1
NTNmYTYzNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1
cmZhY2VzL2dseC9HcmFwaGljc1N1cmZhY2VHTFguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HcmFwaGljc1N1cmZhY2VHTFguY3BwCkBAIC04
OCw3ICs4OCw5IEBAIHN0cnVjdCBHcmFwaGljc1N1cmZhY2VQcml2YXRlIHsKICAgICAgICAgVU5V
U0VEX1BBUkFNKHNoYXJlQ29udGV4dCk7CiAjZW5kaWYKIAotICAgICAgICBtX2NvbmZpZ1NlbGVj
dG9yID0gYWRvcHRQdHIobmV3IEdMWENvbmZpZ1NlbGVjdG9yKCkpOworICAgICAgICBHTFBsYXRm
b3JtU3VyZmFjZTo6U3VyZmFjZUF0dHJpYnV0ZXMgc2hhcmVkU3VyZmFjZUF0dHJpYnV0ZXMgPSBH
TFBsYXRmb3JtU3VyZmFjZTo6RG91YmxlQnVmZmVyZWQgfAorICAgICAgICAgICAgR0xQbGF0Zm9y
bVN1cmZhY2U6OlN1cHBvcnRBbHBoYTsKKyAgICAgICAgbV9jb25maWdTZWxlY3RvciA9IGFkb3B0
UHRyKG5ldyBHTFhDb25maWdTZWxlY3RvcihzaGFyZWRTdXJmYWNlQXR0cmlidXRlcykpOwogCiAg
ICAgICAgIGlmICghbV9jb25maWdTZWxlY3Rvci0+c3VyZmFjZUNvbnRleHRDb25maWcoKSkgewog
ICAgICAgICAgICAgY2xlYXIoKTsKQEAgLTExMCw3ICsxMTIsNiBAQCBzdHJ1Y3QgR3JhcGhpY3NT
dXJmYWNlUHJpdmF0ZSB7CiAgICAgICAgICwgbV9pc1JlY2VpdmVyKHRydWUpCiAgICAgICAgICwg
bV90ZXh0dXJlKDApCiAgICAgewotICAgICAgICBtX2NvbmZpZ1NlbGVjdG9yID0gYWRvcHRQdHIo
bmV3IEdMWENvbmZpZ1NlbGVjdG9yKCkpOwogICAgIH0KIAogICAgIH5HcmFwaGljc1N1cmZhY2VQ
cml2YXRlKCkKQEAgLTE0NCw5ICsxNDUsNiBAQCBzdHJ1Y3QgR3JhcGhpY3NTdXJmYWNlUHJpdmF0
ZSB7CiAKICAgICB2b2lkIGNyZWF0ZVBpeG1hcCh1aW50MzJfdCB3aW5JZCkKICAgICB7Ci0gICAg
ICAgIGlmICghbV9jb25maWdTZWxlY3RvcikKLSAgICAgICAgICAgIHJldHVybjsKLQogICAgICAg
ICBYV2luZG93QXR0cmlidXRlcyBhdHRyOwogICAgICAgICBpZiAoIVhHZXRXaW5kb3dBdHRyaWJ1
dGVzKGRpc3BsYXkoKSwgd2luSWQsICZhdHRyKSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE2
MSw3ICsxNTksMTUgQEAgc3RydWN0IEdyYXBoaWNzU3VyZmFjZVByaXZhdGUgewogICAgICAgICBY
UmVuZGVyUGljdEZvcm1hdCogZm9ybWF0ID0gWFJlbmRlckZpbmRWaXN1YWxGb3JtYXQoZGlzcGxh
eSgpLCBhdHRyLnZpc3VhbCk7CiAgICAgICAgIGJvb2wgaGFzQWxwaGEgPSAoZm9ybWF0LT50eXBl
ID09IFBpY3RUeXBlRGlyZWN0ICYmIGZvcm1hdC0+ZGlyZWN0LmFscGhhTWFzayk7CiAgICAgICAg
IG1feFBpeG1hcCA9IFhDb21wb3NpdGVOYW1lV2luZG93UGl4bWFwKGRpc3BsYXkoKSwgd2luSWQp
OwotICAgICAgICBnbHhBdHRyaWJ1dGVzWzFdID0gKGZvcm1hdC0+ZGVwdGggPT0gMzIgfHwgaGFz
QWxwaGEpID8gR0xYX1RFWFRVUkVfRk9STUFUX1JHQkFfRVhUIDogR0xYX1RFWFRVUkVfRk9STUFU
X1JHQl9FWFQ7CisgICAgICAgIGdseEF0dHJpYnV0ZXNbMV0gPSAoZm9ybWF0LT5kZXB0aCA9PSAz
MiAmJiBoYXNBbHBoYSkgPyBHTFhfVEVYVFVSRV9GT1JNQVRfUkdCQV9FWFQgOiBHTFhfVEVYVFVS
RV9GT1JNQVRfUkdCX0VYVDsKKworICAgICAgICBHTFBsYXRmb3JtU3VyZmFjZTo6U3VyZmFjZUF0
dHJpYnV0ZXMgc2hhcmVkU3VyZmFjZUF0dHJpYnV0ZXMgPSBHTFBsYXRmb3JtU3VyZmFjZTo6RGVm
YXVsdDsKKyAgICAgICAgaWYgKGhhc0FscGhhKQorICAgICAgICAgICAgc2hhcmVkU3VyZmFjZUF0
dHJpYnV0ZXMgPSBHTFBsYXRmb3JtU3VyZmFjZTo6U3VwcG9ydEFscGhhOworCisgICAgICAgIGlm
ICghbV9jb25maWdTZWxlY3RvcikKKyAgICAgICAgICAgIG1fY29uZmlnU2VsZWN0b3IgPSBhZG9w
dFB0cihuZXcgR0xYQ29uZmlnU2VsZWN0b3Ioc2hhcmVkU3VyZmFjZUF0dHJpYnV0ZXMpKTsKKwog
ICAgICAgICBtX2dseFBpeG1hcCA9IGdsWENyZWF0ZVBpeG1hcChkaXNwbGF5KCksIG1fY29uZmln
U2VsZWN0b3ItPnN1cmZhY2VDbGllbnRDb25maWcoZm9ybWF0LT5kZXB0aCwgWFZpc3VhbElERnJv
bVZpc3VhbChhdHRyLnZpc3VhbCkpLCBtX3hQaXhtYXAsIGdseEF0dHJpYnV0ZXMpOwogCiAgICAg
ICAgIGlmICghaGFuZGxlci5pc1ZhbGlkT3BlcmF0aW9uKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvWDExSGVscGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9YMTFIZWxwZXIuY3Bw
CmluZGV4IDI0NzI3NGE0NmE3NTQ4NWY1OTJkNjVmMDAxOTI2ZTYyYTQ0MGU4Y2MuLmNlZGQ0NTNm
MjlhODMwYjIzNzk2ZWU1OTU3ZjM4N2FmZGRlYjc1MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9YMTFIZWxwZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9YMTFIZWxwZXIuY3Bw
CkBAIC0yMjIsOCArMjIyLDkgQEAgdm9pZCBYMTFIZWxwZXI6OmNyZWF0ZU9mZlNjcmVlbldpbmRv
dyh1aW50MzJfdCogaGFuZGxlSWQsIGNvbnN0IFhWaXN1YWxJbmZvJiB2aXMKIH0KIAogI2lmIFVT
RShFR0wpCi12b2lkIFgxMUhlbHBlcjo6Y3JlYXRlT2ZmU2NyZWVuV2luZG93KHVpbnQzMl90KiBo
YW5kbGVJZCwgY29uc3QgRUdMaW50IGlkLCBjb25zdCBJbnRTaXplJiBzaXplKQordm9pZCBYMTFI
ZWxwZXI6OmNyZWF0ZU9mZlNjcmVlbldpbmRvdyh1aW50MzJfdCogaGFuZGxlSWQsIGNvbnN0IEVH
TGludCBpZCwgYm9vbCBzdXBwb3J0c0FscGhhLCBjb25zdCBJbnRTaXplJiBzaXplKQogeworI2lm
IFVTRShHUkFQSElDU19TVVJGQUNFKQogICAgIFZpc3VhbElEIHZpc3VhbElkID0gc3RhdGljX2Nh
c3Q8VmlzdWFsSUQ+KGlkKTsKIAogICAgIGlmICghdmlzdWFsSWQpCkBAIC0yNDMsMTMgKzI0NCwy
MiBAQCB2b2lkIFgxMUhlbHBlcjo6Y3JlYXRlT2ZmU2NyZWVuV2luZG93KHVpbnQzMl90KiBoYW5k
bGVJZCwgY29uc3QgRUdMaW50IGlkLCBjb25zdAogCiAgICAgICAgICAgICBpZiAoaXNYUmVuZGVy
RXh0ZW5zaW9uU3VwcG9ydGVkKCkpIHsKICAgICAgICAgICAgICAgICBYUmVuZGVyUGljdEZvcm1h
dCogZm9ybWF0ID0gWFJlbmRlckZpbmRWaXN1YWxGb3JtYXQobmF0aXZlRGlzcGxheSgpLCB0ZW1w
LT52aXN1YWwpOwotICAgICAgICAgICAgICAgIGlmIChmb3JtYXQgJiYgZm9ybWF0LT5kaXJlY3Qu
YWxwaGFNYXNrID4gMCkgewotICAgICAgICAgICAgICAgICAgICBmb3VuZFZpc3VhbCA9IHRlbXA7
Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgaWYgKGZvcm1h
dCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoc3VwcG9ydHNBbHBoYSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKHRlbXAtPmRlcHRoID09IDMyICYmIGZvcm1hdC0+ZGlyZWN0LmFs
cGhhTWFzayA+IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRWaXN1YWwgPSB0
ZW1wOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFmb3JtYXQtPmRpcmVjdC5hbHBo
YU1hc2spCisgICAgICAgICAgICAgICAgICAgICAgICBmb3VuZFZpc3VhbCA9IHRlbXA7CiAgICAg
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGZvdW5kVmlzdWFsKQorICAgICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaWYgKHRl
bXAtPmRlcHRoID09IDMyKSB7CisgICAgICAgICAgICBpbnQgbWF0Y2hpbmdkZXB0aCA9IHN1cHBv
cnRzQWxwaGEgPyAzMiA6IDI0OworCisgICAgICAgICAgICBpZiAodGVtcC0+ZGVwdGggPT0gbWF0
Y2hpbmdkZXB0aCkgewogICAgICAgICAgICAgICAgIGZvdW5kVmlzdWFsID0gdGVtcDsKICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTI1OCw2ICsyNjgsMTEgQEAgdm9p
ZCBYMTFIZWxwZXI6OmNyZWF0ZU9mZlNjcmVlbldpbmRvdyh1aW50MzJfdCogaGFuZGxlSWQsIGNv
bnN0IEVHTGludCBpZCwgY29uc3QKICAgICAgICAgaWYgKGZvdW5kVmlzdWFsKQogICAgICAgICAg
ICAgY3JlYXRlT2ZmU2NyZWVuV2luZG93KGhhbmRsZUlkLCAqZm91bmRWaXN1YWwsIHNpemUpOwog
ICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGhhbmRsZUlkKTsKKyAgICBVTlVTRURfUEFS
QU0oaWQpOworICAgIFVOVVNFRF9QQVJBTShzaXplKTsKKyNlbmRpZgogfQogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9Y
MTFIZWxwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2ds
eC9YMTFIZWxwZXIuaAppbmRleCA2OGM3NWRkNzgwMDI0YzkyY2Q2NTQ4YmQ0MjcxMTdkMGQzNTQy
MmU1Li43ZDNlYmFlM2UyM2VkOTZlN2YwMzJkMGEyMDYwZTVhOTE4OWI2MjliIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvWDExSGVscGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L1gx
MUhlbHBlci5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBjcmVh
dGVQaXhtYXAoUGl4bWFwKiwgY29uc3QgWFZpc3VhbEluZm8mLCBjb25zdCBJbnRTaXplJiA9IElu
dFNpemUoMSwgMSkpOwogICAgIHN0YXRpYyB2b2lkIGNyZWF0ZU9mZlNjcmVlbldpbmRvdyh1aW50
MzJfdCosIGNvbnN0IFhWaXN1YWxJbmZvJiwgY29uc3QgSW50U2l6ZSYgPSBJbnRTaXplKDEsIDEp
KTsKICNpZiBVU0UoRUdMKQotICAgIHN0YXRpYyB2b2lkIGNyZWF0ZU9mZlNjcmVlbldpbmRvdyh1
aW50MzJfdCosIGNvbnN0IEVHTGludCwgY29uc3QgSW50U2l6ZSYgPSBJbnRTaXplKDEsIDEpKTsK
KyAgICBzdGF0aWMgdm9pZCBjcmVhdGVPZmZTY3JlZW5XaW5kb3codWludDMyX3QqLCBjb25zdCBF
R0xpbnQsIGJvb2wsIGNvbnN0IEludFNpemUmID0gSW50U2l6ZSgxLCAxKSk7CiAjZW5kaWYKICAg
ICBzdGF0aWMgdm9pZCBkZXN0cm95V2luZG93KGNvbnN0IHVpbnQzMl90KTsKICAgICBzdGF0aWMg
dm9pZCBkZXN0cm95UGl4bWFwKGNvbnN0IHVpbnQzMl90KTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3YWVkNjMzNzQyY2Yw
NzIzN2NiMWI2OTA2ZDVjMDEwNzU0NDQ3NzZkLi5jODBiYTZjZGIxNDBjMGUwMzNjNzg5MmU5NDM5
ZDZiN2I1NGEzZDgzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMtMDItMjAgIEtvbmRhcGFs
bHkgS2FseWFuICA8a2FseWFuLmtvbmRhcGFsbHlAaW50ZWwuY29tPgorCisgICAgICAgIFtXZWJH
TF1bRUZMXSBTdXBwb3J0IGZvciBjcmVhdGluZyBzdXJmYWNlIHdpdGggYWxwaGEgZGlzYWJsZWQu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAwNjcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbmFibGVk
IGNvbXBvc2l0aW5nL3dlYmdsL3dlYmdsLW5vLWFscGhhLmh0bWwgZm9yIEVmbCBwb3J0LgorCisg
ICAgICAgICogcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZv
cm0vZWZsL2NvbXBvc2l0aW5nL3dlYmdsL3dlYmdsLW5vLWFscGhhLWV4cGVjdGVkLnBuZzogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL2NvbXBvc2l0aW5nL3dlYmdsL3dlYmdsLW5vLWFs
cGhhLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTMtMDItMjAgIERhdmlkIEh5YXR0ICA8aHlh
dHRAYXBwbGUuY29tPgogCiAgICAgICAgIFtOZXcgTXVsdGljb2x1bW5dIENvbHVtbiBnYXAgaXMg
Y29tcHV0ZWQgaW5jb3JyZWN0bHkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9l
ZmwvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IDFjYTgxZmQxZTUzOTZiMzdlMjI1NDRiMjYxNjg0NTkzZWE3ODY3NjUuLjQw
MWRiMzUyZDViMWQwMTFjYzFlYmY2YTNjMWU0Y2Q1ZDRkODYxOTggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNzI3LDcgKzE3MjcsNiBAQCB3ZWJraXQu
b3JnL2IvMTA0NTcxIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWV4YWN0LW1hdGNo
aW5nLmh0bWwgWyBGYWlsdQogCiAjIFJlbmRlcmluZyBmYWlsdXJlLCBhbHNvIG1pc3NpbmcgZXhw
ZWN0ZWQgcmVzdWx0czoKIHdlYmtpdC5vcmcvYi8xMDUwOTMgY29tcG9zaXRpbmcvd2ViZ2wvd2Vi
Z2wtYmFja2dyb3VuZC1jb2xvci5odG1sIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMTA1MDkzIGNv
bXBvc2l0aW5nL3dlYmdsL3dlYmdsLW5vLWFscGhhLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcv
Yi8xMDUwOTMgY29tcG9zaXRpbmcvd2ViZ2wvd2ViZ2wtbm9ucHJlbXVsdGlwbGllZC1ibGVuZC5o
dG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTA1MDkzIGNvbXBvc2l0aW5nL3dlYmdsL3dlYmds
LXJlZmxlY3Rpb24uaHRtbCBbIFNraXAgXQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9lZmwvY29tcG9zaXRpbmcvd2ViZ2wvd2ViZ2wtbm8tYWxwaGEtZXhwZWN0ZWQucG5nIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2NvbXBvc2l0aW5nL3dlYmdsL3dlYmdsLW5vLWFscGhh
LWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNGFjMDZlZTljNDQwZDQyYWRkNDkzZDUyNTg0MGRl
MmZlZjk1MzQyCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAyOTEwCnpjbWVBU0BOPyhvbEh5YHVW
QnEhaWEweX55VXsrdllWMmE+aTAqWik9aF5obEElQFdzJGxIYG9rPG19P29UbjRrbQp6NnImX1ZH
aDtLOHZfISpIcW0qUHJWYEMjaiE9I2tkQnZWNkVMIStgODhUV3ZpKnBqXjZUXlJtQDtEV3UmQ28/
Y2AKei1TYyNENDVecyZfSigySlZGdi0wZ05xT1J1ZGtlSTlDfHozQlVGRkoyRSolVFdFZEUlKjF1
KEJWM19aZ3p7cWZmCnpNVTI3MGhmMGgkX3ZBajUlKzBRNWxGdkFvPEluSip5Sjc8YUxsUDQ9Z00h
KjlWPkEjKFF2JHRuIVNgPHMlUGx3Qwp6R0JQflNtRDZFcG1+bnVLcEBXbDNqSnZtKT1SR15+am03
Umw+QUpVXjNeZnokI1V1MldPWUx7cSFUZSRSNiZ+dTkKekQlMntTTSRNc09ROWx9KGdFPXJrNnxx
VkJIZWtEQSYoVVU5MV85disxX3J+JVFPME4+NEMkMmNue2Z4WDtNTmFZClNtKVFmYHo2X3FPZWxG
e3I1fUUqSDc5N2F7CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9lZmwvY29tcG9zaXRpbmcvd2ViZ2wvd2ViZ2wtbm8tYWxwaGEtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2NvbXBvc2l0aW5nL3dlYmdsL3dlYmds
LW5vLWFscGhhLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjEzNzg5MTc5MWZlOTY5MjdhZDc4
ZTY0YjBhYWQ3YmRlZDA4YmRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZWZsL2NvbXBvc2l0aW5nL3dlYmdsL3dlYmdsLW5vLWFscGhhLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxIEBACisK
</data>

          </attachment>
      

    </bug>

</bugzilla>