<?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>46007</bug_id>
          
          <creation_ts>2010-09-17 15:46:05 -0700</creation_ts>
          <short_desc>Make 2D accelerated canvas rendering build on Mac</short_desc>
          <delta_ts>2010-09-30 10:55:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Marrin">cmarrin</reporter>
          <assigned_to name="Chris Marrin">cmarrin</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>ismail</cc>
    
    <cc>jamesr</cc>
    
    <cc>kbr</cc>
    
    <cc>senorblanco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>280944</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-09-17 15:46:05 -0700</bug_when>
    <thetext>In order to enable 2D accelerated canvas rendering for Mac we need to add files from the Chromium implementation, add the infrastructure for enabling the compile time flag, add platform specific files for Mac and fix some build issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280957</commentid>
    <comment_count>1</comment_count>
      <attachid>67967</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-09-17 16:05:00 -0700</bug_when>
    <thetext>Created attachment 67967
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280987</commentid>
    <comment_count>2</comment_count>
      <attachid>67967</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-09-17 16:48:19 -0700</bug_when>
    <thetext>Comment on attachment 67967
Patch

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

&gt; WebCore/platform/graphics/gpu/DrawingBuffer.h:72
&gt; +#if PLATFORM(CHROMIUM)
&gt;      class WillPublishCallback : public Noncopyable {

This callback needed for correctness in the current implementation.  We can chat about how to make this work properly with the CoreAnimation compositor but I don&apos;t think you want to just #ifdef it out.

&gt; WebCore/platform/graphics/gpu/DrawingBuffer.h:96
&gt; +#if PLATFORM(MAC)
&gt; +    RetainPtr&lt;WebGLLayer&gt; m_platformLayer;
&gt; +#endif

The point of having DrawingBufferInternal is that it can include any platform-specific objects.  I&apos;d rather you follow that pattern and put all of the mac-specific objects in the DrawingBufferInternal implementation used for mac rather than polluting this file with a bunch of #ifdef gunk.

&gt; WebCore/platform/graphics/gpu/LoopBlinnClassifier.cpp:29
&gt; +#if ENABLE(ACCELERATED_2D_CANVAS)
&gt; +

I&apos;m not sure that ENABLE(ACCELERATED_2D_CANVAS) is the correct guard for this and other files in platform/graphics/gpu/ - those are guards about a feature, but these files are not necessarily specific to that feature.  Once we add (for instance) ENABLE(ACCELERATED_SVG) or something then it&apos;ll get very awkward to update all of these guards.

&gt; WebCore/platform/graphics/gpu/mac/DrawingBufferMac.mm:67
&gt; +    m_context-&gt;texImage2D(GraphicsContext3D::TEXTURE_2D, 0, GraphicsContext3D::RGBA, m_size.width(), m_size.height(), 0, GraphicsContext3D::RGBA, GraphicsContext3D::UNSIGNED_BYTE, 0);

I dunno how the mac compositor works, but this is probably not doing what you want.  In DrawingBufferChromium we have a texture that we&apos;re using as the color attachment to the FBO and use texImage2D to resize this backing texture.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281080</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-17 20:57:28 -0700</bug_when>
    <thetext>Attachment 67967 did not build on chromium:
Build output: http://queues.webkit.org/results/4054057</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281140</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-09-18 08:59:16 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 67967 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=67967&amp;action=prettypatch
&gt; 
&gt; &gt; WebCore/platform/graphics/gpu/DrawingBuffer.h:72
&gt; &gt; +#if PLATFORM(CHROMIUM)
&gt; &gt;      class WillPublishCallback : public Noncopyable {
&gt; 
&gt; This callback needed for correctness in the current implementation.  We can chat about how to make this work properly with the CoreAnimation compositor but I don&apos;t think you want to just #ifdef it out.

I prefer the terminology used by GraphicsLayer. We have a GraphicsLayerClient which is implemented by whoever wants to handle the callback. But it does more than just callbacks. It can provide info back to the GraphicsLayer, etc. So I&apos;d like to switch to that terminology. For now I will just remove the ifdef and stub out our use of it.

&gt; 
&gt; &gt; WebCore/platform/graphics/gpu/DrawingBuffer.h:96
&gt; &gt; +#if PLATFORM(MAC)
&gt; &gt; +    RetainPtr&lt;WebGLLayer&gt; m_platformLayer;
&gt; &gt; +#endif
&gt; 
&gt; The point of having DrawingBufferInternal is that it can include any platform-specific objects.  I&apos;d rather you follow that pattern and put all of the mac-specific objects in the DrawingBufferInternal implementation used for mac rather than polluting this file with a bunch of #ifdef gunk.

I agree with this. I will switch to this technique.

&gt; 
&gt; &gt; WebCore/platform/graphics/gpu/LoopBlinnClassifier.cpp:29
&gt; &gt; +#if ENABLE(ACCELERATED_2D_CANVAS)
&gt; &gt; +
&gt; 
&gt; I&apos;m not sure that ENABLE(ACCELERATED_2D_CANVAS) is the correct guard for this and other files in platform/graphics/gpu/ - those are guards about a feature, but these files are not necessarily specific to that feature.  Once we add (for instance) ENABLE(ACCELERATED_SVG) or something then it&apos;ll get very awkward to update all of these guards.

Ok. The point of the guards is to avoid having unused code in the binary. Do you think we need a new flag? 
&gt; 
&gt; &gt; WebCore/platform/graphics/gpu/mac/DrawingBufferMac.mm:67
&gt; &gt; +    m_context-&gt;texImage2D(GraphicsContext3D::TEXTURE_2D, 0, GraphicsContext3D::RGBA, m_size.width(), m_size.height(), 0, GraphicsContext3D::RGBA, GraphicsContext3D::UNSIGNED_BYTE, 0);
&gt; 
&gt; I dunno how the mac compositor works, but this is probably not doing what you want.  In DrawingBufferChromium we have a texture that we&apos;re using as the color attachment to the FBO and use texImage2D to resize this backing texture.

Yes, I know that. That will be how we do it on Mac, but not necessarily on other platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281141</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-09-18 09:02:32 -0700</bug_when>
    <thetext>James, can you help me understand the build failure in cr-linux? It&apos;s probably just that some part of your build is not turning on the ACCELERATED_2D_CANVAS flag that I&apos;ve added to all the support files. But I don&apos;t know your build well enough to understand where it would go.

Also, I realize that we will change the ifdefs in all those files. But they ultimately need some kind of ENABLE flag, so we need to fix this in either case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281142</commentid>
    <comment_count>6</comment_count>
      <attachid>67967</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-09-18 09:02:48 -0700</bug_when>
    <thetext>Comment on attachment 67967
Patch

I will have another patch soon</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281702</commentid>
    <comment_count>7</comment_count>
      <attachid>67967</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-09-20 11:37:59 -0700</bug_when>
    <thetext>Comment on attachment 67967
Patch

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

&gt; WebCore/ChangeLog:19
&gt; +        enabled, and add a skeleton of the mac specific file so it builds
&gt; +
&gt; +        DrawingBufferMac.mm, the Mac specific file does nothing right now
&gt; +        other than initialize and create a layer. The rest will be added
&gt; +        when I do the actual implementation. 
&gt; +
&gt; +        The most significant change was to SharedGraphicsContext3D, which
&gt; +        had a static local OwnPtr in one of the methods. This was causing
&gt; +        the exit time destructor warning. Getting rid of the OwnPtr fixed
&gt; +        the problem. Since the pointer that was being wrapped was to a

foo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281726</commentid>
    <comment_count>8</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2010-09-20 12:08:09 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #2)
&gt; &gt; &gt; WebCore/platform/graphics/gpu/LoopBlinnClassifier.cpp:29
&gt; &gt; &gt; +#if ENABLE(ACCELERATED_2D_CANVAS)
&gt; &gt; &gt; +
&gt; &gt; 
&gt; &gt; I&apos;m not sure that ENABLE(ACCELERATED_2D_CANVAS) is the correct guard for this and other files in platform/graphics/gpu/ - those are guards about a feature, but these files are not necessarily specific to that feature.  Once we add (for instance) ENABLE(ACCELERATED_SVG) or something then it&apos;ll get very awkward to update all of these guards.
&gt; 
&gt; Ok. The point of the guards is to avoid having unused code in the binary. Do you think we need a new flag? 

I second James&apos; comment.  I think we need a new flag.  We used to have USE(GLES2_RENDERING) for this, until we turned it on for all Chromium builds by default.  Some ideas:  GPU_RENDERING?  (Kind of generic).  GPU_2D_RENDERING?  ACCELERATED_2D_RENDERING?  ACCELERATED_2D?  The last two are in keeping with the existing ACCELERATED* flags, so I kind of like those.  Probably should be an ENABLE rather than a USE, since it&apos;s not strictly a third-party library.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281850</commentid>
    <comment_count>9</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-09-20 15:22:44 -0700</bug_when>
    <thetext>Looks like this fails on cr-linux due to a misconfiguration on some of our bots, I&apos;ll address that separately.

I think it&apos;s valid to leave it ENABLE(ACCELERATED_2D_CANVAS) until we get a second user of this code, and then to pick the most appropriate guard.  I&apos;m never 100% sure what the correct use of ENABLE() vs USE() is for these things.  FWIW in chromium we rely more heavily on runtime flags rather than compile time settings for things like this, so we typically want to compile support code in even for features that aren&apos;t on by default.  The linker can remove code that is actually unreachable (at some cost to compile+link time and memory use).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281876</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-09-20 16:00:26 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Looks like this fails on cr-linux due to a misconfiguration on some of our bots, I&apos;ll address that separately.
&gt; 
&gt; I think it&apos;s valid to leave it ENABLE(ACCELERATED_2D_CANVAS) until we get a second user of this code, and then to pick the most appropriate guard.  I&apos;m never 100% sure what the correct use of ENABLE() vs USE() is for these things.  FWIW in chromium we rely more heavily on runtime flags rather than compile time settings for things like this, so we typically want to compile support code in even for features that aren&apos;t on by default.  The linker can remove code that is actually unreachable (at some cost to compile+link time and memory use).

ENABLE() is for a feature that can be turned on and off, a user facing feature. build-webkit has command line flags that can turn these on and off. USE() is for something that some platforms use and others don&apos;t. So ACCELERATED_COMPOSITING is a USE and 3D_CANVAS (which is the poorly named flag for WebGL) is an ENABLE. Which brings up the point, ACCELERATED_2D_CANVAS should really be a USE.

But I agree with James. We should leave the flag name as ACCELERATED_2D_CANVAS and deal with generalizing it when needed. Maybe the right thing to do is to add a bug to change the flag to a USE and to change it&apos;s name to make it more generic, and fix both later on. We really could just call it ACCELERATED_2D. Is there every a reason to just want to accelerate canvas and not svg or html (or some other combination)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281881</commentid>
    <comment_count>11</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-09-20 16:11:58 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; Looks like this fails on cr-linux due to a misconfiguration on some of our bots, I&apos;ll address that separately.
&gt; &gt; 
&gt; &gt; I think it&apos;s valid to leave it ENABLE(ACCELERATED_2D_CANVAS) until we get a second user of this code, and then to pick the most appropriate guard.  I&apos;m never 100% sure what the correct use of ENABLE() vs USE() is for these things.  FWIW in chromium we rely more heavily on runtime flags rather than compile time settings for things like this, so we typically want to compile support code in even for features that aren&apos;t on by default.  The linker can remove code that is actually unreachable (at some cost to compile+link time and memory use).
&gt; 
&gt; ENABLE() is for a feature that can be turned on and off, a user facing feature. build-webkit has command line flags that can turn these on and off. USE() is for something that some platforms use and others don&apos;t. So ACCELERATED_COMPOSITING is a USE and 3D_CANVAS (which is the poorly named flag for WebGL) is an ENABLE. Which brings up the point, ACCELERATED_2D_CANVAS should really be a USE.

I think of ACCELERATED_2D_CANVAS as a feature and the files in platform/graphics/gpu/ as infrastructure used to support that feature.  The code in html/canvas/ and rendering/ that deal with how the Canvas element renders all have to do exclusively with the feature (ACCELERATED_2D_CANVAS) whereas stuff in platform/graphics/gpu/ is not explicitly aware of HTML concepts like canvas.  By that logic, ACCELERATED_2D_CANVAS should stay an ENABLE() and be used by code that is talking about the HTML canvas element and code in platform/graphics/gpu should probably be a USE() - since in theory anyway somebody might want to implement the feature of accelerated 2d canvas using a different approach, for example with a Direct 2D backend or by interfacing with some other platform-specific API directly.

&gt; 
&gt; But I agree with James. We should leave the flag name as ACCELERATED_2D_CANVAS and deal with generalizing it when needed. Maybe the right thing to do is to add a bug to change the flag to a USE and to change it&apos;s name to make it more generic, and fix both later on. We really could just call it ACCELERATED_2D. Is there every a reason to just want to accelerate canvas and not svg or html (or some other combination)?

Canvas requires a different set functionality compared to what you would need to correctly render arbitrary SVG or HTML (in general a subset of it), so it makes sense to turn the feature on just for canvas while implementing the necessary functionality for SVG/HTML/etc.  In fact, that&apos;s kind of what we are doing already.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281895</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-09-20 16:29:18 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; (In reply to comment #9)
&gt; &gt; &gt; Looks like this fails on cr-linux due to a misconfiguration on some of our bots, I&apos;ll address that separately.
&gt; &gt; &gt; 
&gt; &gt; &gt; I think it&apos;s valid to leave it ENABLE(ACCELERATED_2D_CANVAS) until we get a second user of this code, and then to pick the most appropriate guard.  I&apos;m never 100% sure what the correct use of ENABLE() vs USE() is for these things.  FWIW in chromium we rely more heavily on runtime flags rather than compile time settings for things like this, so we typically want to compile support code in even for features that aren&apos;t on by default.  The linker can remove code that is actually unreachable (at some cost to compile+link time and memory use).
&gt; &gt; 
&gt; &gt; ENABLE() is for a feature that can be turned on and off, a user facing feature. build-webkit has command line flags that can turn these on and off. USE() is for something that some platforms use and others don&apos;t. So ACCELERATED_COMPOSITING is a USE and 3D_CANVAS (which is the poorly named flag for WebGL) is an ENABLE. Which brings up the point, ACCELERATED_2D_CANVAS should really be a USE.
&gt; 
&gt; I think of ACCELERATED_2D_CANVAS as a feature and the files in platform/graphics/gpu/ as infrastructure used to support that feature.  The code in html/canvas/ and rendering/ that deal with how the Canvas element renders all have to do exclusively with the feature (ACCELERATED_2D_CANVAS) whereas stuff in platform/graphics/gpu/ is not explicitly aware of HTML concepts like canvas.  By that logic, ACCELERATED_2D_CANVAS should stay an ENABLE() and be used by code that is talking about the HTML canvas element and code in platform/graphics/gpu should probably be a USE() - since in theory anyway somebody might want to implement the feature of accelerated 2d canvas using a different approach, for example with a Direct 2D backend or by interfacing with some other platform-specific API directly.

But still ACCELERATED_2D_CANVAS is not a user facing feature. It&apos;s just an implementation detail. Run build-webkit --help to see all the enable toggles. They are all things that have some API associated with them. ACCELERATED_2D_CANVAS has no API that is specific to it. Turning it on or off won&apos;t make WebKit have any different functionality. It will just (hopefully) make some things faster. In fact, if turning it on causes any difference in behavior at all, it&apos;s a bug. So I really think it ultimately needs to be a USE flag. But as I said, I don&apos;t think we need to deal with that now.

It may be true that the things down in platform/gpu should be under a different flag, but that should be a USE flag as well. All the USE flags go in WTF in Platform.h. There you can do things like saying &quot;if I turn on ACCELERATED_2D_CANVAS I also have to turn on ACCELERATED_2D&quot; (or whatever we call the flag to enable the support logic). So maybe we ultimately want ACCELERATED_2D for the support, and then ACCELERATED_2D_{CANVAS,SVG,HTML} for each renderer. But they should all be USE flags.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283068</commentid>
    <comment_count>13</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2010-09-22 11:11:37 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; Looks like this fails on cr-linux due to a misconfiguration on some of our bots, I&apos;ll address that separately.
&gt; &gt; 
&gt; &gt; I think it&apos;s valid to leave it ENABLE(ACCELERATED_2D_CANVAS) until we get a second user of this code, and then to pick the most appropriate guard.  I&apos;m never 100% sure what the correct use of ENABLE() vs USE() is for these things.  FWIW in chromium we rely more heavily on runtime flags rather than compile time settings for things like this, so we typically want to compile support code in even for features that aren&apos;t on by default.  The linker can remove code that is actually unreachable (at some cost to compile+link time and memory use).
&gt; 
&gt; ENABLE() is for a feature that can be turned on and off, a user facing feature. build-webkit has command line flags that can turn these on and off. USE() is for something that some platforms use and others don&apos;t. So ACCELERATED_COMPOSITING is a USE and 3D_CANVAS (which is the poorly named flag for WebGL) is an ENABLE. Which brings up the point, ACCELERATED_2D_CANVAS should really be a USE.
&gt; 
&gt; But I agree with James. We should leave the flag name as ACCELERATED_2D_CANVAS and deal with generalizing it when needed. Maybe the right thing to do is to add a bug to change the flag to a USE and to change it&apos;s name to make it more generic, and fix both later on. We really could just call it ACCELERATED_2D. Is there every a reason to just want to accelerate canvas and not svg or html (or some other combination)?

According to this page:  http://trac.webkit.org/wiki/Porting%20Macros%20plan
USE() means &quot;use a particular third-party library or optional OS service&quot;.

So originally, I had USE(GLES2_RENDERING) since this was supposed to indicate the use of the OpenGLES2 library (for 2D rendering).  Now that it&apos;s built on top of GraphicsContext3D, and is not (directly) dependent on a third-party library or OS service, I think it should be an ENABLE.

And actually, I have always thought USE(ACCELERATED_COMPOSITING) is wrong, since it doesn&apos;t refer to a particular library or OS service but a feature that may be enabled or disabled, and whose particular implementations can (and do) use OpenGL or OpenGLES2 or marshall the calls out to a separate process.  And correct me if I&apos;m wrong, but that one really is user-facing, in that turning it off disables CSS 3D transforms.  You&apos;re right that the canvas 2D case is less clear -- disabling it shouldn&apos;t affect anything except performance.

Anyway, all that said, I&apos;m fine with leaving everything under the ENABLE(ACCELERATED_2D_CANVAS) umbrella for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283423</commentid>
    <comment_count>14</comment_count>
      <attachid>68486</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-09-22 18:16:19 -0700</bug_when>
    <thetext>Created attachment 68486
Replacement patch, gets rid of ifdefs in DrawingBuffer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283433</commentid>
    <comment_count>15</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-09-22 18:26:01 -0700</bug_when>
    <thetext>Cool!  Looks good, gonna let the bots cycle before touching review flag however.  I think this might fail again on cr-linux due to a configuration error that https://bugs.webkit.org/show_bug.cgi?id=46329 fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283697</commentid>
    <comment_count>16</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-09-23 09:32:19 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Cool!  Looks good, gonna let the bots cycle before touching review flag however.  I think this might fail again on cr-linux due to a configuration error that https://bugs.webkit.org/show_bug.cgi?id=46329 fixes.

Actually, this has one issue that will make it fail on chrome. I change the struct DrawingBufferInternal to class. Struct is just a class with an implied &apos;public:&apos; at the beginning. So it&apos;s legal, but I don&apos;t like applying &apos;new&apos; to structs. It seems much cleaner to use call it a class and just declare its members public. In fact you could do anything inside the implementation. I just think in the interface it should be a class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284129</commentid>
    <comment_count>17</comment_count>
      <attachid>68628</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-09-23 17:21:47 -0700</bug_when>
    <thetext>Created attachment 68628
Patch to fix merge conflict</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284934</commentid>
    <comment_count>18</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-09-24 20:18:17 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #15)
&gt; &gt; Cool!  Looks good, gonna let the bots cycle before touching review flag however.  I think this might fail again on cr-linux due to a configuration error that https://bugs.webkit.org/show_bug.cgi?id=46329 fixes.
&gt; 
&gt; Actually, this has one issue that will make it fail on chrome. I change the struct DrawingBufferInternal to class. Struct is just a class with an implied &apos;public:&apos; at the beginning. So it&apos;s legal, but I don&apos;t like applying &apos;new&apos; to structs. It seems much cleaner to use call it a class and just declare its members public. In fact you could do anything inside the implementation. I just think in the interface it should be a class.

I&apos;ve learned that WebKit style is that if all of the members are intended to be public, the entity should be a struct, not a class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285418</commentid>
    <comment_count>19</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-09-27 06:17:13 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #16)
&gt; &gt; (In reply to comment #15)
&gt; &gt; &gt; Cool!  Looks good, gonna let the bots cycle before touching review flag however.  I think this might fail again on cr-linux due to a configuration error that https://bugs.webkit.org/show_bug.cgi?id=46329 fixes.
&gt; &gt; 
&gt; &gt; Actually, this has one issue that will make it fail on chrome. I change the struct DrawingBufferInternal to class. Struct is just a class with an implied &apos;public:&apos; at the beginning. So it&apos;s legal, but I don&apos;t like applying &apos;new&apos; to structs. It seems much cleaner to use call it a class and just declare its members public. In fact you could do anything inside the implementation. I just think in the interface it should be a class.
&gt; 
&gt; I&apos;ve learned that WebKit style is that if all of the members are intended to be public, the entity should be a struct, not a class.

Yes, I  think that would be true if this were simply a data structure used by the implementation of a class, but that&apos;s not what this is. It&apos;s part of a customizable interface. Making it a class allows the implementation the flexibility of structuring it any way it likes. I might want to make DrawingBufferInternal have public and private members just to make it easier to understand. So I think class is the right structure to use here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285625</commentid>
    <comment_count>20</comment_count>
      <attachid>68628</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-09-27 11:36:01 -0700</bug_when>
    <thetext>Comment on attachment 68628
Patch to fix merge conflict

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

&gt; WebCore/Configurations/FeatureDefines.xcconfig:40
&gt; +ENABLE_ACCELERATED_2D_CANVAS = $(ENABLE_ACCELERATED_2D_CANVAS_$(REAL_PLATFORM_NAME));
&gt; +ENABLE_ACCELERATED_2D_CANVAS_macosx = $(ENABLE_ACCELERATED_2D_CANVAS_macosx_$(TARGET_MAC_OS_X_VERSION_MAJOR));
&gt; +ENABLE_ACCELERATED_2D_CANVAS_macosx_1060 = ;
&gt; +ENABLE_ACCELERATED_2D_CANVAS_macosx_1070 = ;
&gt; +

You need to add this to the FeatureDefines.xcconfig files for JSCore and WebKit too.

&gt; WebCore/platform/graphics/gpu/SharedGraphicsContext3D.cpp:221
&gt; +    static HashSet&lt;SharedGraphicsContext3D*&gt;* allContextsSet = new HashSet&lt;SharedGraphicsContext3D*&gt;;
&gt; +    return allContextsSet;

This should use DEFINE_STATIC_LOCAL

&gt; WebCore/platform/graphics/gpu/mac/DrawingBufferMac.mm:46
&gt; +class DrawingBufferInternal {
&gt; +public:
&gt; +    DrawingBufferInternal() { }
&gt; +    ~DrawingBufferInternal() { }
&gt; +    
&gt; +    RetainPtr&lt;PlatformLayer&gt; m_platformLayer;
&gt; +};

Normally we avoid this kind of thing by just putting #ifdefs in the header file, which is much simpler (as long as there aren&apos;t too many of them).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287217</commentid>
    <comment_count>21</comment_count>
      <attachid>69277</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-09-29 16:50:47 -0700</bug_when>
    <thetext>Created attachment 69277
Updated patch, with Simon&apos;s issues addressed

Even though Simon gave this an r+ I feel the need to submit another patch which addresses his issues and goes back to the #ifdefs in DrawingBuffer.h. He&apos;s right that there&apos;s no precedent for a generic &quot;Internal&quot; interface. All other interfaces like this use platform specific ifdefs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287223</commentid>
    <comment_count>22</comment_count>
      <attachid>69280</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-09-29 17:01:01 -0700</bug_when>
    <thetext>Created attachment 69280
Update patch, 2 more small changes

I failed to deal with the setWillPublishCallback() function correctly (in the Chromium case) in the last patch. I also missed one bit in the 2 newly changed FeatureDefines files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287238</commentid>
    <comment_count>23</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-09-29 17:20:34 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; Created an attachment (id=69277) [details]
&gt; Updated patch, with Simon&apos;s issues addressed
&gt; 
&gt; Even though Simon gave this an r+ I feel the need to submit another patch which addresses his issues and goes back to the #ifdefs in DrawingBuffer.h. He&apos;s right that there&apos;s no precedent for a generic &quot;Internal&quot; interface. All other interfaces like this use platform specific ifdefs.

On the contrary, there are places both in shared code and the Chromium port where members are encapsulated in an opaque &quot;Internal&quot; class. Examples include WebCore/platform/network/ResourceHandle{Internal}.h and WebCore/platform/graphics/GraphicsContext3D.h . It is strongly preferable to use this pattern rather than platform-specific #ifdefs in order to reduce the number of files that need to be recompiled when a new data member is added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287251</commentid>
    <comment_count>24</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-09-29 17:34:09 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; (In reply to comment #21)
&gt; &gt; Created an attachment (id=69277) [details] [details]
&gt; &gt; Updated patch, with Simon&apos;s issues addressed
&gt; &gt; 
&gt; &gt; Even though Simon gave this an r+ I feel the need to submit another patch which addresses his issues and goes back to the #ifdefs in DrawingBuffer.h. He&apos;s right that there&apos;s no precedent for a generic &quot;Internal&quot; interface. All other interfaces like this use platform specific ifdefs.
&gt; 
&gt; On the contrary, there are places both in shared code and the Chromium port where members are encapsulated in an opaque &quot;Internal&quot; class. Examples include WebCore/platform/network/ResourceHandle{Internal}.h and WebCore/platform/graphics/GraphicsContext3D.h . It is strongly preferable to use this pattern rather than platform-specific #ifdefs in order to reduce the number of files that need to be recompiled when a new data member is added.

Those two examples you give are exactly what we&apos;re now doing in DrawingBuffer. Some implementations choose to use a xxxInternal class, so it&apos;s enclosed in #ifdefs. The objection is doing a xxxInternal class on all platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287465</commentid>
    <comment_count>25</comment_count>
      <attachid>68628</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-30 03:19:44 -0700</bug_when>
    <thetext>Comment on attachment 68628
Patch to fix merge conflict

Cleared Simon Fraser&apos;s review+ from obsolete attachment 68628 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287655</commentid>
    <comment_count>26</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-09-30 10:55:26 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/68802</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67967</attachid>
            <date>2010-09-17 16:05:00 -0700</date>
            <delta_ts>2010-09-22 18:16:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46007-20100917160459.patch</filename>
            <type>text/plain</type>
            <size>35361</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2Nzc1NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTIgQEAKKzIwMTAtMDktMTcgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1h
a2UgMkQgYWNjZWxlcmF0ZWQgY2FudmFzIHJlbmRlcmluZyBidWlsZCBvbiBNYWMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2MDA3CisKKyAgICAgICAg
QWRkIGFjY2VsZXJhdGVkIDJEIHJlbmRlcmluZyBmaWxlcyB0byBNYWMgYnVpbGQsIGZpeCBidWls
ZCBlcnJvcnMsCisgICAgICAgIGFkZCBpZmRlZnMgdG8gY29tcGlsZSBvbmx5IHdoZW4gdGhlIEFD
Q0VMRVJBVEVEXzJEX0NBTlZBUyBmbGFnIGlzCisgICAgICAgIGVuYWJsZWQsIGFuZCBhZGQgYSBz
a2VsZXRvbiBvZiB0aGUgbWFjIHNwZWNpZmljIGZpbGUgc28gaXQgYnVpbGRzCisKKyAgICAgICAg
RHJhd2luZ0J1ZmZlck1hYy5tbSwgdGhlIE1hYyBzcGVjaWZpYyBmaWxlIGRvZXMgbm90aGluZyBy
aWdodCBub3cKKyAgICAgICAgb3RoZXIgdGhhbiBpbml0aWFsaXplIGFuZCBjcmVhdGUgYSBsYXll
ci4gVGhlIHJlc3Qgd2lsbCBiZSBhZGRlZAorICAgICAgICB3aGVuIEkgZG8gdGhlIGFjdHVhbCBp
bXBsZW1lbnRhdGlvbi4gCisKKyAgICAgICAgVGhlIG1vc3Qgc2lnbmlmaWNhbnQgY2hhbmdlIHdh
cyB0byBTaGFyZWRHcmFwaGljc0NvbnRleHQzRCwgd2hpY2gKKyAgICAgICAgaGFkIGEgc3RhdGlj
IGxvY2FsIE93blB0ciBpbiBvbmUgb2YgdGhlIG1ldGhvZHMuIFRoaXMgd2FzIGNhdXNpbmcKKyAg
ICAgICAgdGhlIGV4aXQgdGltZSBkZXN0cnVjdG9yIHdhcm5pbmcuIEdldHRpbmcgcmlkIG9mIHRo
ZSBPd25QdHIgZml4ZWQKKyAgICAgICAgdGhlIHByb2JsZW0uIFNpbmNlIHRoZSBwb2ludGVyIHRo
YXQgd2FzIGJlaW5nIHdyYXBwZWQgd2FzIHRvIGEKKyAgICAgICAgc3RhdGljIG9iamVjdCB0aGF0
IHdvdWxkIG5ldmVyIGdldCBkZXN0cm95ZWQsIHRoZSBPd25QdHIgd2FzIG5vdAorICAgICAgICBu
ZWNlc3NhcnkuCisKKyAgICAgICAgSSBhbHNvIGFkZGVkIHRoZSBBQ0NFTEVSQVRFRF8yRF9DQU5W
QVMgZmxhZyB0byBidWlsZC13ZWJraXQKKyAgICAgICAgYW5kIEZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnLiBCdXQgcmlnaHQgbm93IHRoZSBmbGFnIGlzIG9mZiBieQorICAgICAgICBkZWZhdWx0Lgor
CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2dwdS9EcmF3aW5nQnVmZmVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9ncHUvRHJhd2luZ0J1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6RHJhd2luZ0J1
ZmZlcjo6V2lsbFB1Ymxpc2hDYWxsYmFjazo6fldpbGxQdWJsaXNoQ2FsbGJhY2spOiBhZGRlZCB0
aGlzIG1ldGhvZCB0byBrZWVwIHRoZSBjb21waWxlciBmcm9tIGNvbXBsYWluaW5nCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0xvb3BCbGlubkNsYXNzaWZpZXIuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9Mb29wQmxpbm5NYXRoVXRpbHMuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9Mb29wQmxpbm5UZXh0dXJlQ29vcmRzLmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhZGVyLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OmFsbENvbnRleHRzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvU29saWRGaWxsU2hhZGVyLmNwcDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9ncHUvVGV4U2hhZGVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9ncHUvVGV4dHVyZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L1RleHR1cmUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGlsaW5nRGF0YS5j
cHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L21hYzogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L21hYy9EcmF3aW5nQnVmZmVyTWFjLm1tOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkRyYXdpbmdCdWZmZXI6OkRyYXdpbmdCdWZmZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6RHJhd2luZ0J1ZmZlcjo6fkRyYXdpbmdCdWZmZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6RHJhd2luZ0J1ZmZlcjo6cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6RHJhd2luZ0J1
ZmZlcjo6cGxhdGZvcm1MYXllcik6CisKIDIwMTAtMDktMTcgIE1hcmMtQW50b2luZSBSdWVsICA8
bWFydWVsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXpr
b3YuCkluZGV4OiBXZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWcJKHJldmlzaW9uIDY3NzI5KQorKysgV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsMTEgQEAKIAogRU5B
QkxFX0xJTktfUFJFRkVUQ0ggPSA7CiAKK0VOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMgPSAk
KEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVNfJChSRUFMX1BMQVRGT1JNX05BTUUpKTsKK0VO
QUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVNfbWFjb3N4ID0gJChFTkFCTEVfQUNDRUxFUkFURURf
MkRfQ0FOVkFTX21hY29zeF8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7CitFTkFC
TEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTX21hY29zeF8xMDYwID0gOworRU5BQkxFX0FDQ0VMRVJB
VEVEXzJEX0NBTlZBU19tYWNvc3hfMTA3MCA9IDsKKwogRU5BQkxFXzNEX0NBTlZBUyA9ICQoRU5B
QkxFXzNEX0NBTlZBU18kKFJFQUxfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFXzNEX0NBTlZBU19t
YWNvc3ggPSAkKEVOQUJMRV8zRF9DQU5WQVNfbWFjb3N4XyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJ
T05fTUFKT1IpKTsKIEVOQUJMRV8zRF9DQU5WQVNfbWFjb3N4XzEwNjAgPSBFTkFCTEVfM0RfQ0FO
VkFTOwpAQCAtMTIwLDQgKzEyNSw0IEBAIEVOQUJMRV9YSFRNTE1QID0gOwogRU5BQkxFX1hQQVRI
ID0gRU5BQkxFX1hQQVRIOwogRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9E
RUZJTkVTID0gJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfM0RfQ0FOVkFTKSAkKEVO
QUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FH
SU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0RBVEFCQVNF
KSAkKEVOQUJMRV9EQVRBR1JJRCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RFVklDRV9P
UklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NX1NUT1JB
R0UpICQoRU5BQkxFX0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GSUxF
X1NZU1RFTSkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAk
KEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lNQUdFX1JFU0laRVIpICQoRU5BQkxFX0lO
REVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSkFWQVNDUklQ
VF9ERUJVR0dFUikgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQoRU5BQkxF
X05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykgJChFTkFC
TEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9SVUJZKSAkKEVOQUJMRV9TQU5EQk9YKSAkKEVOQUJM
RV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5JTUFUSU9OKSAk
KEVOQUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChF
TkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQoRU5BQkxFX1NW
R19VU0UpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VC
X1RJTUlORykgJChFTkFCTEVfV01MKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFRNTE1Q
KSAkKEVOQUJMRV9YUEFUSCkgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVO
QUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5B
QkxFXzNEX0NBTlZBUykgJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9CTE9CKSAkKEVO
QUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9O
KSAkKEVOQUJMRV9EQVRBQkFTRSkgJChFTkFCTEVfREFUQUdSSUQpICQoRU5BQkxFX0RBVEFMSVNU
KSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQp
ICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9FVkVOVFNPVVJDRSkgJChFTkFCTEVfRklM
VEVSUykgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVO
QUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTUFHRV9S
RVNJWkVSKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gp
ICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVf
TUVURVJfVEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZMSU5FX1dFQl9B
UFBMSUNBVElPTlMpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUlVCWSkgJChFTkFC
TEVfU0FOREJPWCkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NWRykgJChFTkFC
TEVfU1ZHX0FOSU1BVElPTikgJChFTkFCTEVfU1ZHX0FTX0lNQUdFKSAkKEVOQUJMRV9TVkdfRE9N
X09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfU1ZHX0ZPUkVJR05f
T0JKRUNUKSAkKEVOQUJMRV9TVkdfVVNFKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfV0VCX1NP
Q0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dNTCkgJChFTkFCTEVfV09SS0VS
UykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQpOwpJbmRl
eDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDY3
NzI5KQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtp
bmcgY29weSkKQEAgLTkzMCw2ICs5MzAsMzIgQEAKIAkJNDk4MzkxNTIwRjFFNzZCNDAwQzIzNzgy
IC8qIERPTVdlYktpdENTU01hdHJpeEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTgzOTE0RjBGMUU3NkI0MDBDMjM3ODIgLyogRE9NV2Vi
S2l0Q1NTTWF0cml4SW50ZXJuYWwuaCAqLzsgfTsKIAkJNDk4MzkxNTgwRjFFNzc2OTAwQzIzNzgy
IC8qIFdlYktpdENTU01hdHJpeC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0OTgzOTE1NTBGMUU3NzY5MDBDMjM3ODIgLyogV2ViS2l0Q1NTTWF0cml4
LmNwcCAqLzsgfTsKIAkJNDk4MzkxNTkwRjFFNzc2OTAwQzIzNzgyIC8qIFdlYktpdENTU01hdHJp
eC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4Mzkx
NTYwRjFFNzc2OTAwQzIzNzgyIC8qIFdlYktpdENTU01hdHJpeC5oICovOyB9OworCQk0OTg3NzBE
QjEyNDJDNTM1MDAyMjI2QkEgLyogRHJhd2luZ0J1ZmZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzBDMjEyNDJDNTM1MDAyMjI2QkEgLyog
RHJhd2luZ0J1ZmZlci5jcHAgKi87IH07CisJCTQ5ODc3MERDMTI0MkM1MzUwMDIyMjZCQSAvKiBE
cmF3aW5nQnVmZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0OTg3NzBDMzEyNDJDNTM1MDAyMjI2QkEgLyogRHJhd2luZ0J1ZmZlci5oICovOyB9Owor
CQk0OTg3NzBERDEyNDJDNTM1MDAyMjI2QkEgLyogTG9vcEJsaW5uQ2xhc3NpZmllci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzBDNDEyNDJD
NTM1MDAyMjI2QkEgLyogTG9vcEJsaW5uQ2xhc3NpZmllci5jcHAgKi87IH07CisJCTQ5ODc3MERF
MTI0MkM1MzUwMDIyMjZCQSAvKiBMb29wQmxpbm5DbGFzc2lmaWVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzBDNTEyNDJDNTM1MDAyMjI2QkEg
LyogTG9vcEJsaW5uQ2xhc3NpZmllci5oICovOyB9OworCQk0OTg3NzBERjEyNDJDNTM1MDAyMjI2
QkEgLyogTG9vcEJsaW5uQ29uc3RhbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzBDNjEyNDJDNTM1MDAyMjI2QkEgLyogTG9vcEJsaW5uQ29u
c3RhbnRzLmggKi87IH07CisJCTQ5ODc3MEUwMTI0MkM1MzUwMDIyMjZCQSAvKiBMb29wQmxpbm5N
YXRoVXRpbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDk4NzcwQzcxMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BCbGlubk1hdGhVdGlscy5jcHAgKi87
IH07CisJCTQ5ODc3MEUxMTI0MkM1MzUwMDIyMjZCQSAvKiBMb29wQmxpbm5NYXRoVXRpbHMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODc3MEM4MTI0
MkM1MzUwMDIyMjZCQSAvKiBMb29wQmxpbm5NYXRoVXRpbHMuaCAqLzsgfTsKKwkJNDk4NzcwRTIx
MjQyQzUzNTAwMjIyNkJBIC8qIExvb3BCbGlublRleHR1cmVDb29yZHMuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4NzcwQzkxMjQyQzUzNTAwMjIy
NkJBIC8qIExvb3BCbGlublRleHR1cmVDb29yZHMuY3BwICovOyB9OworCQk0OTg3NzBFMzEyNDJD
NTM1MDAyMjI2QkEgLyogTG9vcEJsaW5uVGV4dHVyZUNvb3Jkcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4NzcwQ0ExMjQyQzUzNTAwMjIyNkJBIC8q
IExvb3BCbGlublRleHR1cmVDb29yZHMuaCAqLzsgfTsKKwkJNDk4NzcwRTQxMjQyQzUzNTAwMjIy
NkJBIC8qIFBPREFyZW5hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0OTg3NzBDQjEyNDJDNTM1MDAyMjI2QkEgLyogUE9EQXJlbmEuaCAqLzsgfTsKKwkJ
NDk4NzcwRTUxMjQyQzUzNTAwMjIyNkJBIC8qIFBPREludGVydmFsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzBDQzEyNDJDNTM1MDAyMjI2QkEg
LyogUE9ESW50ZXJ2YWwuaCAqLzsgfTsKKwkJNDk4NzcwRTYxMjQyQzUzNTAwMjIyNkJBIC8qIFBP
REludGVydmFsVHJlZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDk4NzcwQ0QxMjQyQzUzNTAwMjIyNkJBIC8qIFBPREludGVydmFsVHJlZS5oICovOyB9
OworCQk0OTg3NzBFNzEyNDJDNTM1MDAyMjI2QkEgLyogUE9EUmVkQmxhY2tUcmVlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzBDRTEyNDJDNTM1
MDAyMjI2QkEgLyogUE9EUmVkQmxhY2tUcmVlLmggKi87IH07CisJCTQ5ODc3MEU4MTI0MkM1MzUw
MDIyMjZCQSAvKiBTaGFkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDk4NzcwQ0YxMjQyQzUzNTAwMjIyNkJBIC8qIFNoYWRlci5jcHAgKi87IH07
CisJCTQ5ODc3MEU5MTI0MkM1MzUwMDIyMjZCQSAvKiBTaGFkZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODc3MEQwMTI0MkM1MzUwMDIyMjZCQSAv
KiBTaGFkZXIuaCAqLzsgfTsKKwkJNDk4NzcwRUExMjQyQzUzNTAwMjIyNkJBIC8qIFNoYXJlZEdy
YXBoaWNzQ29udGV4dDNELmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ5ODc3MEQxMTI0MkM1MzUwMDIyMjZCQSAvKiBTaGFyZWRHcmFwaGljc0NvbnRl
eHQzRC5jcHAgKi87IH07CisJCTQ5ODc3MEVCMTI0MkM1MzUwMDIyMjZCQSAvKiBTaGFyZWRHcmFw
aGljc0NvbnRleHQzRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDk4NzcwRDIxMjQyQzUzNTAwMjIyNkJBIC8qIFNoYXJlZEdyYXBoaWNzQ29udGV4dDNE
LmggKi87IH07CisJCTQ5ODc3MEVDMTI0MkM1MzUwMDIyMjZCQSAvKiBTb2xpZEZpbGxTaGFkZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4Nzcw
RDMxMjQyQzUzNTAwMjIyNkJBIC8qIFNvbGlkRmlsbFNoYWRlci5jcHAgKi87IH07CisJCTQ5ODc3
MEVEMTI0MkM1MzUwMDIyMjZCQSAvKiBTb2xpZEZpbGxTaGFkZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODc3MEQ0MTI0MkM1MzUwMDIyMjZCQSAv
KiBTb2xpZEZpbGxTaGFkZXIuaCAqLzsgfTsKKwkJNDk4NzcwRUUxMjQyQzUzNTAwMjIyNkJBIC8q
IFRleFNoYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0OTg3NzBENTEyNDJDNTM1MDAyMjI2QkEgLyogVGV4U2hhZGVyLmNwcCAqLzsgfTsKKwkJ
NDk4NzcwRUYxMjQyQzUzNTAwMjIyNkJBIC8qIFRleFNoYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4NzcwRDYxMjQyQzUzNTAwMjIyNkJBIC8q
IFRleFNoYWRlci5oICovOyB9OworCQk0OTg3NzBGMDEyNDJDNTM1MDAyMjI2QkEgLyogVGV4dHVy
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTg3
NzBENzEyNDJDNTM1MDAyMjI2QkEgLyogVGV4dHVyZS5jcHAgKi87IH07CisJCTQ5ODc3MEYxMTI0
MkM1MzUwMDIyMjZCQSAvKiBUZXh0dXJlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzBEODEyNDJDNTM1MDAyMjI2QkEgLyogVGV4dHVyZS5oICov
OyB9OworCQk0OTg3NzBGMjEyNDJDNTM1MDAyMjI2QkEgLyogVGlsaW5nRGF0YS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzBEOTEyNDJDNTM1
MDAyMjI2QkEgLyogVGlsaW5nRGF0YS5jcHAgKi87IH07CisJCTQ5ODc3MEYzMTI0MkM1MzUwMDIy
MjZCQSAvKiBUaWxpbmdEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0OTg3NzBEQTEyNDJDNTM1MDAyMjI2QkEgLyogVGlsaW5nRGF0YS5oICovOyB9
OworCQk0OTg3NzE1MzEyNDNGOUZBMDAyMjI2QkEgLyogRHJhd2luZ0J1ZmZlck1hYy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODc3MTUyMTI0M0Y5
RkEwMDIyMjZCQSAvKiBEcmF3aW5nQnVmZmVyTWFjLm1tICovOyB9OwogCQk0OUM3Qjk5MzEwNDJE
MkQzMDAwOUQ0NDcgLyogSlNXZWJHTEJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUM3Qjk4MDEwNDJEMkQzMDAwOUQ0NDcgLyogSlNXZWJH
TEJ1ZmZlci5jcHAgKi87IH07CiAJCTQ5QzdCOTk0MTA0MkQyRDMwMDA5RDQ0NyAvKiBKU1dlYkdM
QnVmZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
OUM3Qjk4MTEwNDJEMkQzMDAwOUQ0NDcgLyogSlNXZWJHTEJ1ZmZlci5oICovOyB9OwogCQk0OUM3
Qjk5NTEwNDJEMkQzMDAwOUQ0NDcgLyogSlNJbnQ4QXJyYXkuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlDN0I5ODIxMDQyRDJEMzAwMDlENDQ3IC8q
IEpTSW50OEFycmF5LmNwcCAqLzsgfTsKQEAgLTY4MjcsNiArNjg1MywzMiBAQAogCQk0OTgzOTE1
NTBGMUU3NzY5MDBDMjM3ODIgLyogV2ViS2l0Q1NTTWF0cml4LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktpdENTU01hdHJpeC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ5ODM5MTU2MEYxRTc3NjkwMEMyMzc4MiAvKiBXZWJLaXRDU1NNYXRy
aXguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0Q1NTTWF0cml4Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5ODM5MTU3MEYxRTc3NjkwMEMyMzc4MiAv
KiBXZWJLaXRDU1NNYXRyaXguaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYktpdENTU01h
dHJpeC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5ODc3MEMyMTI0MkM1MzUw
MDIyMjZCQSAvKiBEcmF3aW5nQnVmZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IERyYXdpbmdCdWZmZXIuY3BwOyBwYXRoID0gZ3B1L0RyYXdpbmdCdWZmZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTg3NzBDMzEyNDJDNTM1MDAyMjI2QkEg
LyogRHJhd2luZ0J1ZmZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBEcmF3
aW5nQnVmZmVyLmg7IHBhdGggPSBncHUvRHJhd2luZ0J1ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0OTg3NzBDNDEyNDJDNTM1MDAyMjI2QkEgLyogTG9vcEJsaW5uQ2xhc3Np
Zmllci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMb29wQmxpbm5D
bGFzc2lmaWVyLmNwcDsgcGF0aCA9IGdwdS9Mb29wQmxpbm5DbGFzc2lmaWVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDk4NzcwQzUxMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BC
bGlubkNsYXNzaWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTG9vcEJs
aW5uQ2xhc3NpZmllci5oOyBwYXRoID0gZ3B1L0xvb3BCbGlubkNsYXNzaWZpZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDk4NzcwQzYxMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BC
bGlubkNvbnN0YW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMb29wQmxp
bm5Db25zdGFudHMuaDsgcGF0aCA9IGdwdS9Mb29wQmxpbm5Db25zdGFudHMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDk4NzcwQzcxMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BCbGlu
bk1hdGhVdGlscy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMb29w
Qmxpbm5NYXRoVXRpbHMuY3BwOyBwYXRoID0gZ3B1L0xvb3BCbGlubk1hdGhVdGlscy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5ODc3MEM4MTI0MkM1MzUwMDIyMjZCQSAvKiBM
b29wQmxpbm5NYXRoVXRpbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTG9v
cEJsaW5uTWF0aFV0aWxzLmg7IHBhdGggPSBncHUvTG9vcEJsaW5uTWF0aFV0aWxzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5ODc3MEM5MTI0MkM1MzUwMDIyMjZCQSAvKiBMb29w
Qmxpbm5UZXh0dXJlQ29vcmRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IExvb3BCbGlublRleHR1cmVDb29yZHMuY3BwOyBwYXRoID0gZ3B1L0xvb3BCbGlublRleHR1
cmVDb29yZHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTg3NzBDQTEyNDJD
NTM1MDAyMjI2QkEgLyogTG9vcEJsaW5uVGV4dHVyZUNvb3Jkcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBMb29wQmxpbm5UZXh0dXJlQ29vcmRzLmg7IHBhdGggPSBncHUvTG9v
cEJsaW5uVGV4dHVyZUNvb3Jkcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTg3
NzBDQjEyNDJDNTM1MDAyMjI2QkEgLyogUE9EQXJlbmEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gUE9EQXJlbmEuaDsgcGF0aCA9IGdwdS9QT0RBcmVuYS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0OTg3NzBDQzEyNDJDNTM1MDAyMjI2QkEgLyogUE9ESW50ZXJ2
YWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUE9ESW50ZXJ2YWwuaDsgcGF0
aCA9IGdwdS9QT0RJbnRlcnZhbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTg3
NzBDRDEyNDJDNTM1MDAyMjI2QkEgLyogUE9ESW50ZXJ2YWxUcmVlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFBPREludGVydmFsVHJlZS5oOyBwYXRoID0gZ3B1L1BPREludGVy
dmFsVHJlZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTg3NzBDRTEyNDJDNTM1
MDAyMjI2QkEgLyogUE9EUmVkQmxhY2tUcmVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IFBPRFJlZEJsYWNrVHJlZS5oOyBwYXRoID0gZ3B1L1BPRFJlZEJsYWNrVHJlZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTg3NzBDRjEyNDJDNTM1MDAyMjI2QkEgLyog
U2hhZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFNoYWRlci5j
cHA7IHBhdGggPSBncHUvU2hhZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDk4NzcwRDAxMjQyQzUzNTAwMjIyNkJBIC8qIFNoYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBTaGFkZXIuaDsgcGF0aCA9IGdwdS9TaGFkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDk4NzcwRDExMjQyQzUzNTAwMjIyNkJBIC8qIFNoYXJlZEdyYXBo
aWNzQ29udGV4dDNELmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFNo
YXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcDsgcGF0aCA9IGdwdS9TaGFyZWRHcmFwaGljc0NvbnRl
eHQzRC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5ODc3MEQyMTI0MkM1MzUw
MDIyMjZCQSAvKiBTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5oOyBwYXRoID0gZ3B1L1NoYXJl
ZEdyYXBoaWNzQ29udGV4dDNELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5ODc3
MEQzMTI0MkM1MzUwMDIyMjZCQSAvKiBTb2xpZEZpbGxTaGFkZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU29saWRGaWxsU2hhZGVyLmNwcDsgcGF0aCA9IGdwdS9T
b2xpZEZpbGxTaGFkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTg3NzBE
NDEyNDJDNTM1MDAyMjI2QkEgLyogU29saWRGaWxsU2hhZGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IFNvbGlkRmlsbFNoYWRlci5oOyBwYXRoID0gZ3B1L1NvbGlkRmlsbFNo
YWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTg3NzBENTEyNDJDNTM1MDAy
MjI2QkEgLyogVGV4U2hhZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IFRleFNoYWRlci5jcHA7IHBhdGggPSBncHUvVGV4U2hhZGVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDk4NzcwRDYxMjQyQzUzNTAwMjIyNkJBIC8qIFRleFNoYWRlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBUZXhTaGFkZXIuaDsgcGF0aCA9IGdw
dS9UZXhTaGFkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDk4NzcwRDcxMjQy
QzUzNTAwMjIyNkJBIC8qIFRleHR1cmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gVGV4dHVyZS5jcHA7IHBhdGggPSBncHUvVGV4dHVyZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQ5ODc3MEQ4MTI0MkM1MzUwMDIyMjZCQSAvKiBUZXh0dXJlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFRleHR1cmUuaDsgcGF0aCA9IGdwdS9U
ZXh0dXJlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5ODc3MEQ5MTI0MkM1MzUw
MDIyMjZCQSAvKiBUaWxpbmdEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IFRpbGluZ0RhdGEuY3BwOyBwYXRoID0gZ3B1L1RpbGluZ0RhdGEuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0OTg3NzBEQTEyNDJDNTM1MDAyMjI2QkEgLyogVGlsaW5n
RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBUaWxpbmdEYXRhLmg7IHBh
dGggPSBncHUvVGlsaW5nRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTg3
NzE1MjEyNDNGOUZBMDAyMjI2QkEgLyogRHJhd2luZ0J1ZmZlck1hYy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IERyYXdpbmdCdWZmZXJNYWMubW07IHBhdGggPSBn
cHUvbWFjL0RyYXdpbmdCdWZmZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQ5QzdCOTgwMTA0MkQyRDMwMDA5RDQ0NyAvKiBKU1dlYkdMQnVmZmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViR0xCdWZmZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0OUM3Qjk4MTEwNDJEMkQzMDAwOUQ0NDcgLyogSlNXZWJHTEJ1
ZmZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYkdMQnVmZmVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5QzdCOTgyMTA0MkQyRDMwMDA5RDQ0NyAv
KiBKU0ludDhBcnJheS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0ludDhBcnJheS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjE2Niw2ICsx
MjIxOCw0NyBAQAogCQkJbmFtZSA9IGNhbnZhczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CiAJCX07CisJCTQ5ODc3MEMxMTI0MkM1MEQwMDIyMjZCQSAvKiBncHUgKi8gPSB7CisJCQlpc2Eg
PSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTQ5ODc3MTE2MTI0MkNEN0YwMDIyMjZC
QSAvKiBtYWMgKi8sCisJCQkJNDk4NzcwQzIxMjQyQzUzNTAwMjIyNkJBIC8qIERyYXdpbmdCdWZm
ZXIuY3BwICovLAorCQkJCTQ5ODc3MEMzMTI0MkM1MzUwMDIyMjZCQSAvKiBEcmF3aW5nQnVmZmVy
LmggKi8sCisJCQkJNDk4NzcwQzQxMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BCbGlubkNsYXNzaWZp
ZXIuY3BwICovLAorCQkJCTQ5ODc3MEM1MTI0MkM1MzUwMDIyMjZCQSAvKiBMb29wQmxpbm5DbGFz
c2lmaWVyLmggKi8sCisJCQkJNDk4NzcwQzYxMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BCbGlubkNv
bnN0YW50cy5oICovLAorCQkJCTQ5ODc3MEM3MTI0MkM1MzUwMDIyMjZCQSAvKiBMb29wQmxpbm5N
YXRoVXRpbHMuY3BwICovLAorCQkJCTQ5ODc3MEM4MTI0MkM1MzUwMDIyMjZCQSAvKiBMb29wQmxp
bm5NYXRoVXRpbHMuaCAqLywKKwkJCQk0OTg3NzBDOTEyNDJDNTM1MDAyMjI2QkEgLyogTG9vcEJs
aW5uVGV4dHVyZUNvb3Jkcy5jcHAgKi8sCisJCQkJNDk4NzcwQ0ExMjQyQzUzNTAwMjIyNkJBIC8q
IExvb3BCbGlublRleHR1cmVDb29yZHMuaCAqLywKKwkJCQk0OTg3NzBDQjEyNDJDNTM1MDAyMjI2
QkEgLyogUE9EQXJlbmEuaCAqLywKKwkJCQk0OTg3NzBDQzEyNDJDNTM1MDAyMjI2QkEgLyogUE9E
SW50ZXJ2YWwuaCAqLywKKwkJCQk0OTg3NzBDRDEyNDJDNTM1MDAyMjI2QkEgLyogUE9ESW50ZXJ2
YWxUcmVlLmggKi8sCisJCQkJNDk4NzcwQ0UxMjQyQzUzNTAwMjIyNkJBIC8qIFBPRFJlZEJsYWNr
VHJlZS5oICovLAorCQkJCTQ5ODc3MENGMTI0MkM1MzUwMDIyMjZCQSAvKiBTaGFkZXIuY3BwICov
LAorCQkJCTQ5ODc3MEQwMTI0MkM1MzUwMDIyMjZCQSAvKiBTaGFkZXIuaCAqLywKKwkJCQk0OTg3
NzBEMTEyNDJDNTM1MDAyMjI2QkEgLyogU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuY3BwICovLAor
CQkJCTQ5ODc3MEQyMTI0MkM1MzUwMDIyMjZCQSAvKiBTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5o
ICovLAorCQkJCTQ5ODc3MEQzMTI0MkM1MzUwMDIyMjZCQSAvKiBTb2xpZEZpbGxTaGFkZXIuY3Bw
ICovLAorCQkJCTQ5ODc3MEQ0MTI0MkM1MzUwMDIyMjZCQSAvKiBTb2xpZEZpbGxTaGFkZXIuaCAq
LywKKwkJCQk0OTg3NzBENTEyNDJDNTM1MDAyMjI2QkEgLyogVGV4U2hhZGVyLmNwcCAqLywKKwkJ
CQk0OTg3NzBENjEyNDJDNTM1MDAyMjI2QkEgLyogVGV4U2hhZGVyLmggKi8sCisJCQkJNDk4Nzcw
RDcxMjQyQzUzNTAwMjIyNkJBIC8qIFRleHR1cmUuY3BwICovLAorCQkJCTQ5ODc3MEQ4MTI0MkM1
MzUwMDIyMjZCQSAvKiBUZXh0dXJlLmggKi8sCisJCQkJNDk4NzcwRDkxMjQyQzUzNTAwMjIyNkJB
IC8qIFRpbGluZ0RhdGEuY3BwICovLAorCQkJCTQ5ODc3MERBMTI0MkM1MzUwMDIyMjZCQSAvKiBU
aWxpbmdEYXRhLmggKi8sCisJCQkpOworCQkJbmFtZSA9IGdwdTsKKwkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CisJCX07CisJCTQ5ODc3MTE2MTI0MkNEN0YwMDIyMjZCQSAvKiBtYWMgKi8gPSB7
CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTQ5ODc3MTUyMTI0M0Y5
RkEwMDIyMjZCQSAvKiBEcmF3aW5nQnVmZmVyTWFjLm1tICovLAorCQkJKTsKKwkJCW5hbWUgPSBt
YWM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk0OUU5MTFCMjBFRjg2RDI3
MDA5RDBDQUYgLyogdHJhbnNmb3JtcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCkBAIC0xNDU1OCw2ICsxNDY1MSw3IEBACiAJCUE3NUU4QjdGMEUxREUyQjAwMDdG
MjQ4MSAvKiBmaWx0ZXJzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQk0OTg3NzBDMTEyNDJDNTBEMDAyMjI2QkEgLyogZ3B1ICovLAogCQkJCUE3NUU4Qjgw
MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUJsZW5kLmNwcCAqLywKIAkJCQlBNzVFOEI4MTBFMURFMkQ2
MDA3RjI0ODEgLyogRkVCbGVuZC5oICovLAogCQkJCUE3NUU4QjgyMEUxREUyRDYwMDdGMjQ4MSAv
KiBGRUNvbG9yTWF0cml4LmNwcCAqLywKQEAgLTIwNTY5LDYgKzIwNjYzLDIxIEBACiAJCQkJODJF
M0Q4REYxMjJFQTBEMTAwM0FFNUJDIC8qIENTU1Byb3BlcnR5U291cmNlRGF0YS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOEEzMDlDOUYxMjM5NTBCRTAwQ0I5MjA0IC8qIE5lc3RpbmdMZXZlbEluY3Jl
bWVudGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0UyQTMwNzEyM0U5REMwMDA5RkUxMkEgLyog
SFRNTFBhcnNlcklkaW9tcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDk4NzcwREMxMjQyQzUzNTAw
MjIyNkJBIC8qIERyYXdpbmdCdWZmZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ5ODc3MERFMTI0
MkM1MzUwMDIyMjZCQSAvKiBMb29wQmxpbm5DbGFzc2lmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk0OTg3NzBERjEyNDJDNTM1MDAyMjI2QkEgLyogTG9vcEJsaW5uQ29uc3RhbnRzLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk0OTg3NzBFMTEyNDJDNTM1MDAyMjI2QkEgLyogTG9vcEJsaW5uTWF0aFV0
aWxzLmggaW4gSGVhZGVycyAqLywKKwkJCQk0OTg3NzBFMzEyNDJDNTM1MDAyMjI2QkEgLyogTG9v
cEJsaW5uVGV4dHVyZUNvb3Jkcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDk4NzcwRTQxMjQyQzUz
NTAwMjIyNkJBIC8qIFBPREFyZW5hLmggaW4gSGVhZGVycyAqLywKKwkJCQk0OTg3NzBFNTEyNDJD
NTM1MDAyMjI2QkEgLyogUE9ESW50ZXJ2YWwuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ5ODc3MEU2
MTI0MkM1MzUwMDIyMjZCQSAvKiBQT0RJbnRlcnZhbFRyZWUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTQ5ODc3MEU3MTI0MkM1MzUwMDIyMjZCQSAvKiBQT0RSZWRCbGFja1RyZWUuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTQ5ODc3MEU5MTI0MkM1MzUwMDIyMjZCQSAvKiBTaGFkZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTQ5ODc3MEVCMTI0MkM1MzUwMDIyMjZCQSAvKiBTaGFyZWRHcmFwaGljc0NvbnRl
eHQzRC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDk4NzcwRUQxMjQyQzUzNTAwMjIyNkJBIC8qIFNv
bGlkRmlsbFNoYWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDk4NzcwRUYxMjQyQzUzNTAwMjIy
NkJBIC8qIFRleFNoYWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDk4NzcwRjExMjQyQzUzNTAw
MjIyNkJBIC8qIFRleHR1cmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ5ODc3MEYzMTI0MkM1MzUw
MDIyMjZCQSAvKiBUaWxpbmdEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIwNjI4LDYgKzIwNzM3
LDcgQEAKIAkJCWlzYSA9IFBCWFByb2plY3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0g
MTQ5QzI4NDMwODkwMkIxMTAwOEE5RUZDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3Ig
UEJYUHJvamVjdCAiV2ViQ29yZSIgKi87CiAJCQljb21wYXRpYmlsaXR5VmVyc2lvbiA9ICJYY29k
ZSAyLjQiOworCQkJZGV2ZWxvcG1lbnRSZWdpb24gPSBFbmdsaXNoOwogCQkJaGFzU2Nhbm5lZEZv
ckVuY29kaW5ncyA9IDE7CiAJCQlrbm93blJlZ2lvbnMgPSAoCiAJCQkJRW5nbGlzaCwKQEAgLTIz
MDQ3LDYgKzIzMTU3LDE3IEBACiAJCQkJOTNFMkEzMDYxMjNFOURDMDAwOUZFMTJBIC8qIEhUTUxQ
YXJzZXJJZGlvbXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODkzQzQ3REYxMjNFRjRBOTAwMkIz
RDg2IC8qIEpTRGlyZWN0b3J5RW50cnlDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODkz
QzQ3Q0MxMjNFRUJBMjAwMkIzRDg2IC8qIEpTRW50cnlDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJNDk4NzcwREIxMjQyQzUzNTAwMjIyNkJBIC8qIERyYXdpbmdCdWZmZXIuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJNDk4NzcwREQxMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BCbGlubkNsYXNz
aWZpZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDk4NzcwRTAxMjQyQzUzNTAwMjIyNkJBIC8q
IExvb3BCbGlubk1hdGhVdGlscy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0OTg3NzBFMjEyNDJD
NTM1MDAyMjI2QkEgLyogTG9vcEJsaW5uVGV4dHVyZUNvb3Jkcy5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk0OTg3NzBFODEyNDJDNTM1MDAyMjI2QkEgLyogU2hhZGVyLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTQ5ODc3MEVBMTI0MkM1MzUwMDIyMjZCQSAvKiBTaGFyZWRHcmFwaGljc0NvbnRleHQz
RC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0OTg3NzBFQzEyNDJDNTM1MDAyMjI2QkEgLyogU29s
aWRGaWxsU2hhZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQ5ODc3MEVFMTI0MkM1MzUwMDIy
MjZCQSAvKiBUZXhTaGFkZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDk4NzcwRjAxMjQyQzUz
NTAwMjIyNkJBIC8qIFRleHR1cmUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDk4NzcwRjIxMjQy
QzUzNTAwMjIyNkJBIC8qIFRpbGluZ0RhdGEuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDk4Nzcx
NTMxMjQzRjlGQTAwMjIyNkJBIC8qIERyYXdpbmdCdWZmZXJNYWMubW0gaW4gU291cmNlcyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0RyYXdpbmdCdWZmZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0RyYXdpbmdCdWZmZXIu
Y3BwCShyZXZpc2lvbiA2NzcyOSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0Ry
YXdpbmdCdWZmZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw5ICszMCwxMCBAQAogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQorCiAj
aW5jbHVkZSAiRHJhd2luZ0J1ZmZlci5oIgogCi0jaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0Qu
aCIKICNpbmNsdWRlICJTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC01Miw5ICs1Myw2IEBAIHZvaWQgRHJhd2luZ0J1ZmZlcjo6YmluZCgpCiAgICAg
bV9jb250ZXh0LT5zZXRWaWV3cG9ydChtX3NpemUpOwogfQogCi12b2lkIERyYXdpbmdCdWZmZXI6
OnNldFdpbGxQdWJsaXNoQ2FsbGJhY2soUGFzc093blB0cjxXaWxsUHVibGlzaENhbGxiYWNrPiBj
YWxsYmFjaykKLXsKLSAgICBtX2NhbGxiYWNrID0gY2FsbGJhY2s7Ci19Ci0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9EcmF3aW5nQnVmZmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvRHJhd2luZ0J1ZmZlci5oCShyZXZpc2lvbiA2NzcyOSkKKysrIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0RyYXdpbmdCdWZmZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsMTgg
KzMxLDI0IEBACiAjaWZuZGVmIERyYXdpbmdCdWZmZXJfaAogI2RlZmluZSBEcmF3aW5nQnVmZmVy
X2gKIAorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NM
YXllci5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKIAogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgorI2lmIFBMQVRGT1JNKE1BQykKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjZW5kaWYK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTaGFyZWRHcmFwaGljc0NvbnRleHQzRDsK
IAorI2lmIFBMQVRGT1JNKENIUk9NSVVNKQogc3RydWN0IERyYXdpbmdCdWZmZXJJbnRlcm5hbDsK
KyNlbmRpZgogCiAvLyBNYW5hZ2VzIGEgcmVuZGVyaW5nIHRhcmdldCAoZnJhbWVidWZmZXIgKyBh
dHRhY2htZW50KSBmb3IgYSBjYW52YXMuICBDYW4gcHVibGlzaCBpdHMgcmVuZGVyaW5nCiAvLyBy
ZXN1bHRzIHRvIGEgUGxhdGZvcm1MYXllciBmb3IgY29tcG9zaXRpbmcuCkBAIC02MiwxMiArNjgs
MTcgQEAgcHVibGljOgogCiAgICAgdW5zaWduZWQgZ2V0UmVuZGVyaW5nUmVzdWx0c0FzVGV4dHVy
ZSgpOwogCisjaWYgUExBVEZPUk0oQ0hST01JVU0pCiAgICAgY2xhc3MgV2lsbFB1Ymxpc2hDYWxs
YmFjayA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiAgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFs
IH5XaWxsUHVibGlzaENhbGxiYWNrKCkgeyB9CisgICAgICAgIAogICAgICAgICB2aXJ0dWFsIHZv
aWQgd2lsbFB1Ymxpc2goKSA9IDA7CiAgICAgfTsKIAogICAgIHZvaWQgc2V0V2lsbFB1Ymxpc2hD
YWxsYmFjayhQYXNzT3duUHRyPFdpbGxQdWJsaXNoQ2FsbGJhY2s+KTsKKyNlbmRpZgorCiBwcml2
YXRlOgogICAgIERyYXdpbmdCdWZmZXIoU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QqLCBjb25zdCBJ
bnRTaXplJiwgdW5zaWduZWQgZnJhbWVidWZmZXIpOwogCkBAIC03NSw4ICs4NiwxNCBAQCBwcml2
YXRlOgogICAgIEludFNpemUgbV9zaXplOwogICAgIHVuc2lnbmVkIG1fZnJhbWVidWZmZXI7CiAK
KyNpZiBQTEFURk9STShDSFJPTUlVTSkKICAgICBPd25QdHI8V2lsbFB1Ymxpc2hDYWxsYmFjaz4g
bV9jYWxsYmFjazsKICAgICBPd25QdHI8RHJhd2luZ0J1ZmZlckludGVybmFsPiBtX2ludGVybmFs
OworI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpCisgICAgUmV0YWluUHRyPFdlYkdMTGF5ZXI+
IG1fcGxhdGZvcm1MYXllcjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvTG9vcEJsaW5uQ2xhc3NpZmllci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvTG9vcEJsaW5u
Q2xhc3NpZmllci5jcHAJKHJldmlzaW9uIDY3NzI5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvTG9vcEJsaW5uQ2xhc3NpZmllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYg
KzI1LDggQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCisjaWYgRU5BQkxFKEFDQ0VMRVJBVEVE
XzJEX0NBTlZBUykKKwogI2luY2x1ZGUgIkxvb3BCbGlubkNsYXNzaWZpZXIuaCIKIAogI2luY2x1
ZGUgIkxvb3BCbGlubk1hdGhVdGlscy5oIgpAQCAtMTIwLDMgKzEyMiw1IEBAIExvb3BCbGlubkNs
YXNzaWZpZXI6OlJlc3VsdCBMb29wQmxpbm5DbGEKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0xvb3BCbGlu
bk1hdGhVdGlscy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvTG9vcEJsaW5uTWF0aFV0aWxzLmNwcAkocmV2aXNpb24gNjc3MjkpCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9Mb29wQmxpbm5NYXRoVXRpbHMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yNSwxMiArMjUsMTMgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCisjaWYgRU5BQkxF
KEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKKwogI2luY2x1ZGUgIkxvb3BCbGlubk1hdGhVdGlscy5o
IgogCiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgotI2luY2x1ZGUgIk1hdGhFeHRyYXMuaCIKICNp
bmNsdWRlIDxhbGdvcml0aG0+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+IC8vIGZvciBtZW1jcHkKKyNp
bmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3Bh
Y2UgTG9vcEJsaW5uTWF0aFV0aWxzIHsKQEAgLTU2MywzICs1NjQsNSBAQCBpbnQgbnVtWFJheUNy
b3NzaW5nc0ZvckN1YmljKGNvbnN0IFhSYXkmCiAKIH0gLy8gbmFtZXNwYWNlIExvb3BCbGlubk1h
dGhVdGlscwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0xvb3BCbGlublRleHR1cmVDb29yZHMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0xvb3BCbGlublRleHR1cmVDb29y
ZHMuY3BwCShyZXZpc2lvbiA2NzcyOSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0xvb3BCbGlublRleHR1cmVDb29yZHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw4
IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAorI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9D
QU5WQVMpCisKICNpbmNsdWRlICJMb29wQmxpbm5UZXh0dXJlQ29vcmRzLmgiCiAKICNpbmNsdWRl
IDxtYXRoLmg+CkBAIC0xNjksMyArMTcxLDUgQEAgTG9vcEJsaW5uVGV4dHVyZUNvb3Jkczo6UmVz
dWx0IExvb3BCbGlubgogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhZGVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFkZXIuY3BwCShyZXZpc2lvbiA2Nzcy
OSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYWRlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI5LDYgKzI5LDkgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNp
ZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQorCiAjaW5jbHVkZSAiU2hhZGVyLmgiCiAK
ICNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKQEAgLTEwOSwzICsxMTIsNSBAQCBTaGFkZXI6
On5TaGFkZXIoKQogfQogCiB9CisKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcAkocmV2
aXNpb24gNjc3MjkpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFyZWRHcmFw
aGljc0NvbnRleHQzRC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDggQEAKIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogCisjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKKwog
I2luY2x1ZGUgIlNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmgiCiAKICNpbmNsdWRlICJBZmZpbmVU
cmFuc2Zvcm0uaCIKQEAgLTE5OSw4ICsyMDEsOCBAQCB2b2lkIFNoYXJlZEdyYXBoaWNzQ29udGV4
dDNEOjpyZW1vdmVUZXh0CiAvLyBzdGF0aWMKIEhhc2hTZXQ8U2hhcmVkR3JhcGhpY3NDb250ZXh0
M0QqPiogU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OmFsbENvbnRleHRzKCkKIHsKLSAgICBzdGF0
aWMgT3duUHRyPEhhc2hTZXQ8U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QqPiA+IHNldChuZXcgSGFz
aFNldDxTaGFyZWRHcmFwaGljc0NvbnRleHQzRCo+KTsKLSAgICByZXR1cm4gc2V0LmdldCgpOwor
ICAgIHN0YXRpYyBIYXNoU2V0PFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEKj4qIGFsbENvbnRleHRz
U2V0ID0gbmV3IEhhc2hTZXQ8U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QqPjsKKyAgICByZXR1cm4g
YWxsQ29udGV4dHNTZXQ7CiB9CiAKIApAQCAtMzE4LDMgKzMyMCw1IEBAIGJvb2wgU2hhcmVkR3Jh
cGhpY3NDb250ZXh0M0Q6OnBhaW50c0ludG8KIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NvbGlkRmlsbFNo
YWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvU29s
aWRGaWxsU2hhZGVyLmNwcAkocmV2aXNpb24gNjc3MjkpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9Tb2xpZEZpbGxTaGFkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsy
OSw5IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKEFDQ0VMRVJB
VEVEXzJEX0NBTlZBUykKKwogI2luY2x1ZGUgIlNvbGlkRmlsbFNoYWRlci5oIgogCiAjaW5jbHVk
ZSAiQ29sb3IuaCIKQEAgLTg2LDMgKzg5LDUgQEAgdm9pZCBTb2xpZEZpbGxTaGFkZXI6OnVzZShj
b25zdCBBZmZpbmVUcgogfQogCiB9CisKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvVGV4U2hhZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9UZXhTaGFkZXIuY3BwCShyZXZpc2lvbiA2NzcyOSkKKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1RleFNoYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDYgKzI5LDkgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoQUND
RUxFUkFURURfMkRfQ0FOVkFTKQorCiAjaW5jbHVkZSAiVGV4U2hhZGVyLmgiCiAKICNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHQzRC5oIgpAQCAtOTMsMyArOTYsNSBAQCB2b2lkIFRleFNoYWRlcjo6
dXNlKGNvbnN0IEFmZmluZVRyYW5zZm9yCiB9CiAKIH0KKworI2VuZGlmCkluZGV4OiBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9UZXh0dXJlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9UZXh0dXJlLmNwcAkocmV2aXNpb24gNjc3MjkpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9UZXh0dXJlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzAsNiArMzAsOCBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKKyNpZiBFTkFCTEUoQUND
RUxFUkFURURfMkRfQ0FOVkFTKQorCiAjaW5jbHVkZSAiVGV4dHVyZS5oIgogCiAjaW5jbHVkZSAi
RmxvYXRSZWN0LmgiCkBAIC0yMDYsMyArMjA4LDUgQEAgdm9pZCBUZXh0dXJlOjpiaW5kVGlsZShp
bnQgdGlsZSkKIH0KIAogfQorCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L1RleHR1cmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9UZXh0dXJlLmgJKHJldmlzaW9uIDY3NzI5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvVGV4dHVyZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwxMSArMzEsMTEgQEAKICNp
Zm5kZWYgVGV4dHVyZV9oCiAjZGVmaW5lIFRleHR1cmVfaAogCi0jaW5jbHVkZSAiUmVmQ291bnRl
ZC5oIgotI2luY2x1ZGUgIlJlZlB0ci5oIgogI2luY2x1ZGUgIlRpbGluZ0RhdGEuaCIKICNpbmNs
dWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L1RpbGluZ0RhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L1RpbGluZ0RhdGEuY3BwCShyZXZpc2lvbiA2NzcyOSkKKysrIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1RpbGluZ0RhdGEuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw2ICsyOSw5IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5B
QkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKKwogI2luY2x1ZGUgIlRpbGluZ0RhdGEuaCIKIAog
I2luY2x1ZGUgIkZsb2F0UmVjdC5oIgpAQCAtMjIwLDMgKzIyMyw1IEBAIHZvaWQgVGlsaW5nRGF0
YTo6aW50ZXJzZWN0RHJhd1F1YWQoY29uc3QKIH0KIAogfQorCisjZW5kaWYKSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L21hYy9EcmF3aW5nQnVmZmVyTWFjLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L21hYy9EcmF3aW5nQnVmZmVyTWFj
Lm1tCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvbWFjL0Ry
YXdpbmdCdWZmZXJNYWMubW0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKworI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCisKKyNpbmNs
dWRlICJEcmF3aW5nQnVmZmVyLmgiCisKKyNpbmNsdWRlICJTaGFyZWRHcmFwaGljc0NvbnRleHQz
RC5oIgorI2luY2x1ZGUgIldlYkdMTGF5ZXIuaCIKKworI2ltcG9ydCAiQmxvY2tFeGNlcHRpb25z
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRHJhd2luZ0J1ZmZlcjo6RHJhd2luZ0J1ZmZl
cihTaGFyZWRHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCwgY29uc3QgSW50U2l6ZSYgc2l6ZSwg
dW5zaWduZWQgZnJhbWVidWZmZXIpCisgICAgOiBtX2NvbnRleHQoY29udGV4dCkKKyAgICAsIG1f
c2l6ZShzaXplKQorICAgICwgbV9mcmFtZWJ1ZmZlcihmcmFtZWJ1ZmZlcikKK3sKKyAgICBjb250
ZXh0LT5iaW5kRnJhbWVidWZmZXIoZnJhbWVidWZmZXIpOworCisgICAgLy8gQ3JlYXRlIHRoZSBX
ZWJHTExheWVyCisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgICAgIG1fcGxh
dGZvcm1MYXllci5hZG9wdE5TKFtbV2ViR0xMYXllciBhbGxvY10gaW5pdFdpdGhHcmFwaGljc0Nv
bnRleHQzRDowXSk7CisjaWZuZGVmIE5ERUJVRworICAgICAgICBbbV9wbGF0Zm9ybUxheWVyLmdl
dCgpIHNldE5hbWU6QCJXZWJHTCBMYXllciJdOworI2VuZGlmICAgIAorICAgIEVORF9CTE9DS19P
QkpDX0VYQ0VQVElPTlMKK30KKworRHJhd2luZ0J1ZmZlcjo6fkRyYXdpbmdCdWZmZXIoKQorewor
ICAgIG1fY29udGV4dC0+YmluZEZyYW1lYnVmZmVyKG1fZnJhbWVidWZmZXIpOworICAgIG1fY29u
dGV4dC0+ZGVsZXRlRnJhbWVidWZmZXIobV9mcmFtZWJ1ZmZlcik7Cit9CisKK3ZvaWQgRHJhd2lu
Z0J1ZmZlcjo6cmVzZXQoY29uc3QgSW50U2l6ZSYgbmV3U2l6ZSkKK3sKKyAgICBpZiAobV9zaXpl
ID09IG5ld1NpemUpCisgICAgICAgIHJldHVybjsKKyAgICBtX3NpemUgPSBuZXdTaXplOworCisg
ICAgbV9jb250ZXh0LT50ZXhJbWFnZTJEKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCAw
LCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSwgbV9zaXplLndpZHRoKCksIG1fc2l6ZS5oZWlnaHQo
KSwgMCwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEsIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05F
RF9CWVRFLCAwKTsKK30KKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKK1BsYXRm
b3JtTGF5ZXIqIERyYXdpbmdCdWZmZXI6OnBsYXRmb3JtTGF5ZXIoKQoreworICAgIHJldHVybiBt
X3BsYXRmb3JtTGF5ZXIuZ2V0KCk7Cit9CisjZW5kaWYKKworfQorCisjZW5kaWYKSW5kZXg6IFdl
YktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDY3NzU2KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDktMTcgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBw
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE1ha2UgMkQgYWNjZWxlcmF0ZWQgY2FudmFzIHJlbmRlcmluZyBidWlsZCBvbiBNYWMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2MDA3CisKKyAgICAg
ICAgQWRkZWQgQUNDRUxFUkFURURfMkRfQ0FOVkFTIGZsYWcgdG8gYnVpbGQtd2Via2l0CisKKyAg
ICAgICAgKiBTY3JpcHRzL2J1aWxkLXdlYmtpdDoKKwogMjAxMC0wOS0xNyAgTWFydGluIFJvYmlu
c29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVy
IEh1bnQuCkluZGV4OiBXZWJLaXRUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXRUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAkocmV2aXNpb24gNjc3MjkpCisr
KyBXZWJLaXRUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAkod29ya2luZyBjb3B5KQpAQCAtNTcs
NyArNTcsNyBAQCBteSAkcHJlZml4UGF0aDsKIG15ICRtYWtlQXJnczsKIG15ICRzdGFydFRpbWUg
PSB0aW1lKCk7CiAKLW15ICgkbGlua1ByZWZldGNoU3VwcG9ydCwgJHRocmVlRENhbnZhc1N1cHBv
cnQsICR0aHJlZURSZW5kZXJpbmdTdXBwb3J0LCAkY2hhbm5lbE1lc3NhZ2luZ1N1cHBvcnQsICRj
bGllbnRCYXNlZEdlb2xvY2F0aW9uU3VwcG9ydCwgJGRhdGFiYXNlU3VwcG9ydCwgJGRhdGFncmlk
U3VwcG9ydCwgJGRhdGFsaXN0U3VwcG9ydCwKK215ICgkbGlua1ByZWZldGNoU3VwcG9ydCwgJGFj
Y2VsZXJhdGVkMmRDYW52YXNTdXBwb3J0LCAkdGhyZWVEQ2FudmFzU3VwcG9ydCwgJHRocmVlRFJl
bmRlcmluZ1N1cHBvcnQsICRjaGFubmVsTWVzc2FnaW5nU3VwcG9ydCwgJGNsaWVudEJhc2VkR2Vv
bG9jYXRpb25TdXBwb3J0LCAkZGF0YWJhc2VTdXBwb3J0LCAkZGF0YWdyaWRTdXBwb3J0LCAkZGF0
YWxpc3RTdXBwb3J0LAogICAgICRkb21TdG9yYWdlU3VwcG9ydCwgJGV2ZW50c291cmNlU3VwcG9y
dCwgJGZpbHRlcnNTdXBwb3J0LCAkZ2VvbG9jYXRpb25TdXBwb3J0LCAkaWNvbkRhdGFiYXNlU3Vw
cG9ydCwgJGltYWdlUmVzaXplclN1cHBvcnQsICRpbmRleGVkRGF0YWJhc2VTdXBwb3J0LCAkaW5w
dXRTcGVlY2hTdXBwb3J0LAogICAgICRqYXZhU2NyaXB0RGVidWdnZXJTdXBwb3J0LCAkbWF0aG1s
U3VwcG9ydCwgJG9mZmxpbmVXZWJBcHBsaWNhdGlvblN1cHBvcnQsICRydWJ5U3VwcG9ydCwgJHN5
c3RlbU1hbGxvY1N1cHBvcnQsICRzYW5kYm94U3VwcG9ydCwgJHNoYXJlZFdvcmtlcnNTdXBwb3J0
LAogICAgICRzdmdTdXBwb3J0LCAkc3ZnQW5pbWF0aW9uU3VwcG9ydCwgJHN2Z0FzSW1hZ2VTdXBw
b3J0LCAkc3ZnRE9NT2JqQ0JpbmRpbmdzU3VwcG9ydCwgJHN2Z0ZvbnRzU3VwcG9ydCwKQEAgLTY5
LDYgKzY5LDkgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgIHsgb3B0aW9uID0+ICJsaW5rLXByZWZl
dGNoIiwgZGVzYyA9PiAiVG9nZ2xlIHByZSBmZXRjaGluZyBzdXBwb3J0IiwKICAgICAgIGRlZmlu
ZSA9PiAiRU5BQkxFX0xJTktfUFJFRkVUQ0giLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkbGlu
a1ByZWZldGNoU3VwcG9ydCB9LAogCisgICAgeyBvcHRpb24gPT4gImFjY2VsZXJhdGVkLTJkLWNh
bnZhcyIsIGRlc2MgPT4gIlRvZ2dsZSBhY2NlbGVyYXRlZCAyRCBjYW52YXMgc3VwcG9ydCIsCisg
ICAgICBkZWZpbmUgPT4gIkVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMiLCBkZWZhdWx0ID0+
IDAsIHZhbHVlID0+IFwkYWNjZWxlcmF0ZWQyZENhbnZhc1N1cHBvcnQgfSwKKwogICAgIHsgb3B0
aW9uID0+ICIzZC1jYW52YXMiLCBkZXNjID0+ICJUb2dnbGUgM0QgY2FudmFzIHN1cHBvcnQiLAog
ICAgICAgZGVmaW5lID0+ICJFTkFCTEVfM0RfQ0FOVkFTIiwgZGVmYXVsdCA9PiAoaXNBcHBsZU1h
Y1dlYktpdCgpICYmICFpc1RpZ2VyKCkgJiYgIWlzTGVvcGFyZCgpKSwgdmFsdWUgPT4gXCR0aHJl
ZURDYW52YXNTdXBwb3J0IH0sCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68486</attachid>
            <date>2010-09-22 18:16:19 -0700</date>
            <delta_ts>2010-09-23 17:21:42 -0700</delta_ts>
            <desc>Replacement patch, gets rid of ifdefs in DrawingBuffer</desc>
            <filename>bug-46007-20100922181618.patch</filename>
            <type>text/plain</type>
            <size>34785</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODEwNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTQgQEAKKzIwMTAtMDktMjIgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1h
a2UgMkQgYWNjZWxlcmF0ZWQgY2FudmFzIHJlbmRlcmluZyBidWlsZCBvbiBNYWMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2MDA3CisKKyAgICAgICAg
QWRkIGFjY2VsZXJhdGVkIDJEIHJlbmRlcmluZyBmaWxlcyB0byBNYWMgYnVpbGQsIGZpeCBidWls
ZCBlcnJvcnMsCisgICAgICAgIGFkZCBpZmRlZnMgdG8gY29tcGlsZSBvbmx5IHdoZW4gdGhlIEFD
Q0VMRVJBVEVEXzJEX0NBTlZBUyBmbGFnIGlzCisgICAgICAgIGVuYWJsZWQsIGFuZCBhZGQgYSBz
a2VsZXRvbiBvZiB0aGUgbWFjIHNwZWNpZmljIGZpbGUgc28gaXQgYnVpbGRzLgorCisgICAgICAg
IERyYXdpbmdCdWZmZXJNYWMubW0sIHRoZSBNYWMgc3BlY2lmaWMgZmlsZSBkb2VzIG5vdGhpbmcg
cmlnaHQgbm93CisgICAgICAgIG90aGVyIHRoYW4gaW5pdGlhbGl6ZSBhbmQgY3JlYXRlIGEgbGF5
ZXIuIFRoZSByZXN0IHdpbGwgYmUgYWRkZWQKKyAgICAgICAgd2hlbiBJIGRvIHRoZSBhY3R1YWwg
aW1wbGVtZW50YXRpb24uIAorCisgICAgICAgIFRoZSBtb3N0IHNpZ25pZmljYW50IGNoYW5nZSB3
YXMgdG8gU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QsIHdoaWNoCisgICAgICAgIGhhZCBhIHN0YXRp
YyBsb2NhbCBPd25QdHIgaW4gb25lIG9mIHRoZSBtZXRob2RzLiBUaGlzIHdhcyBjYXVzaW5nCisg
ICAgICAgIHRoZSBleGl0IHRpbWUgZGVzdHJ1Y3RvciB3YXJuaW5nLiBHZXR0aW5nIHJpZCBvZiB0
aGUgT3duUHRyIGZpeGVkCisgICAgICAgIHRoZSBwcm9ibGVtLiBTaW5jZSB0aGUgcG9pbnRlciB0
aGF0IHdhcyBiZWluZyB3cmFwcGVkIHdhcyB0byBhCisgICAgICAgIHN0YXRpYyBvYmplY3QgdGhh
dCB3b3VsZCBuZXZlciBnZXQgZGVzdHJveWVkLCB0aGUgT3duUHRyIHdhcyBub3QKKyAgICAgICAg
bmVjZXNzYXJ5LgorCisgICAgICAgIEkgYWxzbyBhZGRlZCB0aGUgQUNDRUxFUkFURURfMkRfQ0FO
VkFTIGZsYWcgdG8gYnVpbGQtd2Via2l0CisgICAgICAgIGFuZCBGZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZy4gQnV0IHJpZ2h0IG5vdyB0aGUgZmxhZyBpcyBvZmYgYnkKKyAgICAgICAgZGVmYXVsdC4K
KworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9ncHUvRHJhd2luZ0J1ZmZlci5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0RyYXdpbmdCdWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYXdpbmdC
dWZmZXI6OldpbGxQdWJsaXNoQ2FsbGJhY2s6On5XaWxsUHVibGlzaENhbGxiYWNrKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvTG9vcEJsaW5uQ2xhc3NpZmllci5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0xvb3BCbGlubk1hdGhVdGlscy5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0xvb3BCbGlublRleHR1cmVDb29yZHMuY3BwOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFkZXIuY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6YWxsQ29udGV4dHMpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9Tb2xpZEZpbGxTaGFkZXIuY3BwOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9UZXhTaGFkZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9UZXh0dXJlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
cHUvVGV4dHVyZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdEYXRh
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvbWFjOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvbWFjL0RyYXdpbmdCdWZmZXJNYWMubW06IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6RHJhd2luZ0J1ZmZlckludGVybmFsOjpEcmF3aW5nQnVmZmVy
SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6RHJhd2luZ0J1ZmZlckludGVybmFsOjp+RHJh
d2luZ0J1ZmZlckludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYXdpbmdCdWZmZXI6OkRy
YXdpbmdCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6RHJhd2luZ0J1ZmZlcjo6fkRyYXdpbmdC
dWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6RHJhd2luZ0J1ZmZlcjo6cmVzZXQpOgorICAgICAg
ICAoV2ViQ29yZTo6RHJhd2luZ0J1ZmZlcjo6cGxhdGZvcm1MYXllcik6CisKIDIwMTAtMDktMjIg
IEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IER1bWl0cnUgRGFuaWxpdWMuCkluZGV4OiBXZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcJKHJldmlzaW9uIDY4MDAyKQorKysgV2ViQ29yZS9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtMzMs
NiArMzMsMTEgQEAKIAogRU5BQkxFX0xJTktfUFJFRkVUQ0ggPSA7CiAKK0VOQUJMRV9BQ0NFTEVS
QVRFRF8yRF9DQU5WQVMgPSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVNfJChSRUFMX1BM
QVRGT1JNX05BTUUpKTsKK0VOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVNfbWFjb3N4ID0gJChF
TkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTX21hY29zeF8kKFRBUkdFVF9NQUNfT1NfWF9WRVJT
SU9OX01BSk9SKSk7CitFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTX21hY29zeF8xMDYwID0g
OworRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBU19tYWNvc3hfMTA3MCA9IDsKKwogRU5BQkxF
XzNEX0NBTlZBUyA9ICQoRU5BQkxFXzNEX0NBTlZBU18kKFJFQUxfUExBVEZPUk1fTkFNRSkpOwog
RU5BQkxFXzNEX0NBTlZBU19tYWNvc3ggPSAkKEVOQUJMRV8zRF9DQU5WQVNfbWFjb3N4XyQoVEFS
R0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKTsKIEVOQUJMRV8zRF9DQU5WQVNfbWFjb3N4XzEw
NjAgPSBFTkFCTEVfM0RfQ0FOVkFTOwpAQCAtMTIwLDQgKzEyNSw0IEBAIEVOQUJMRV9YSFRNTE1Q
ID0gOwogRU5BQkxFX1hQQVRIID0gRU5BQkxFX1hQQVRIOwogRU5BQkxFX1hTTFQgPSBFTkFCTEVf
WFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFC
TEVfM0RfQ0FOVkFTKSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0JMT0IpICQoRU5B
QkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04p
ICQoRU5BQkxFX0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRBR1JJRCkgJChFTkFCTEVfREFUQUxJU1Qp
ICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkg
JChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxU
RVJTKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5B
QkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lNQUdFX1JF
U0laRVIpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkg
JChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9N
RVRFUl9UQUcpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVfV0VCX0FQ
UExJQ0FUSU9OUykgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9SVUJZKSAkKEVOQUJM
RV9TQU5EQk9YKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJM
RV9TVkdfQU5JTUFUSU9OKSAkKEVOQUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01f
T0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9P
QkpFQ1QpICQoRU5BQkxFX1NWR19VU0UpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9XRUJfU09D
S0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV01MKSAkKEVOQUJMRV9XT1JLRVJT
KSAkKEVOQUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9YUEFUSCkgJChFTkFCTEVfWFNMVCk7CitGRUFU
VVJFX0RFRklORVMgPSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9BQ0NFTEVSQVRF
RF8yRF9DQU5WQVMpICQoRU5BQkxFXzNEX0NBTlZBUykgJChFTkFCTEVfM0RfUkVOREVSSU5HKSAk
KEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5U
X0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9EQVRBQkFTRSkgJChFTkFCTEVfREFUQUdSSUQp
ICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxF
X0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9FVkVOVFNP
VVJDRSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZV
TExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNF
KSAkKEVOQUJMRV9JTUFHRV9SRVNJWkVSKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVO
QUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxF
X01BVEhNTCkgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVO
QUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChF
TkFCTEVfUlVCWSkgJChFTkFCTEVfU0FOREJPWCkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQo
RU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0FOSU1BVElPTikgJChFTkFCTEVfU1ZHX0FTX0lNQUdF
KSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChF
TkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUKSAkKEVOQUJMRV9TVkdfVVNFKSAkKEVOQUJMRV9WSURF
TykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dN
TCkgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgpICQo
RU5BQkxFX1hTTFQpOwpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHJldmlzaW9uIDY4MDAyKQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTkxMCw2ICs5MTAsMzIgQEAKIAkJNDkwNzA3
RTYxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2ViS2l0QnJpZGdlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5MDcwN0U0MTIxOUMwNDMwMEQ5MEU1
MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5jcHAgKi87IH07CiAJCTQ5MDcwN0U3MTIxOUMwNDMwMEQ5
MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDkwNzA3RTUxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2ViS2l0
QnJpZGdlLmggKi87IH07CiAJCTQ5MjI3M0EzMTA4M0IzQjEwMEVFNUM4NCAvKiBKU0FycmF5QnVm
ZmVyVmlld0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0OTIyNzNBMjEwODNCM0IxMDBFRTVDODQgLyogSlNBcnJheUJ1ZmZlclZpZXdDdXN0
b20uY3BwICovOyB9OworCQk0OTI0OEYxMzEyNEE4QzcyMDA4MzYxMTAgLyogRHJhd2luZ0J1ZmZl
ck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5
ODc3MTUyMTI0M0Y5RkEwMDIyMjZCQSAvKiBEcmF3aW5nQnVmZmVyTWFjLm1tICovOyB9OworCQk0
OTI0OEYxNDEyNEE4Qzk0MDA4MzYxMTAgLyogU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4NzcwRDExMjQy
QzUzNTAwMjIyNkJBIC8qIFNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcCAqLzsgfTsKKwkJNDky
NDhGMTUxMjRBOEM5NjAwODM2MTEwIC8qIFNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzBEMjEyNDJDNTM1
MDAyMjI2QkEgLyogU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuaCAqLzsgfTsKKwkJNDkyNDhGMTYx
MjRBOEM5ODAwODM2MTEwIC8qIFNvbGlkRmlsbFNoYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzBEMzEyNDJDNTM1MDAyMjI2QkEgLyog
U29saWRGaWxsU2hhZGVyLmNwcCAqLzsgfTsKKwkJNDkyNDhGMTcxMjRBOEM5OTAwODM2MTEwIC8q
IFNvbGlkRmlsbFNoYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDk4NzcwRDQxMjQyQzUzNTAwMjIyNkJBIC8qIFNvbGlkRmlsbFNoYWRlci5oICov
OyB9OworCQk0OTI0OEYxODEyNEE4Q0ExMDA4MzYxMTAgLyogVGV4U2hhZGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODc3MEQ1MTI0MkM1MzUw
MDIyMjZCQSAvKiBUZXhTaGFkZXIuY3BwICovOyB9OworCQk0OTI0OEYxOTEyNEE4Q0EyMDA4MzYx
MTAgLyogVGV4U2hhZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0OTg3NzBENjEyNDJDNTM1MDAyMjI2QkEgLyogVGV4U2hhZGVyLmggKi87IH07CisJ
CTQ5MjQ4RjFBMTI0QThDQTQwMDgzNjExMCAvKiBUZXh0dXJlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODc3MEQ3MTI0MkM1MzUwMDIyMjZCQSAv
KiBUZXh0dXJlLmNwcCAqLzsgfTsKKwkJNDkyNDhGMUIxMjRBOENBNTAwODM2MTEwIC8qIFRleHR1
cmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODc3
MEQ4MTI0MkM1MzUwMDIyMjZCQSAvKiBUZXh0dXJlLmggKi87IH07CisJCTQ5MjQ4RjFDMTI0QThD
QTYwMDgzNjExMCAvKiBUaWxpbmdEYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODc3MEQ5MTI0MkM1MzUwMDIyMjZCQSAvKiBUaWxpbmdEYXRh
LmNwcCAqLzsgfTsKKwkJNDkyNDhGMUQxMjRBOENFMzAwODM2MTEwIC8qIFRpbGluZ0RhdGEuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODc3MERBMTI0
MkM1MzUwMDIyMjZCQSAvKiBUaWxpbmdEYXRhLmggKi87IH07CisJCTQ5MjQ4RjFFMTI0QThEMjMw
MDgzNjExMCAvKiBTaGFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ5ODc3MEQwMTI0MkM1MzUwMDIyMjZCQSAvKiBTaGFkZXIuaCAqLzsgfTsKKwkJ
NDkyOEJFODAxMjRBOEQ4QTAwRDk3QjZBIC8qIERyYXdpbmdCdWZmZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4NzcwQzIxMjQyQzUzNTAwMjIy
NkJBIC8qIERyYXdpbmdCdWZmZXIuY3BwICovOyB9OworCQk0OTI4QkU4MTEyNEE4RDhDMDBEOTdC
NkEgLyogRHJhd2luZ0J1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDk4NzcwQzMxMjQyQzUzNTAwMjIyNkJBIC8qIERyYXdpbmdCdWZmZXIuaCAq
LzsgfTsKKwkJNDkyOEJFODIxMjRBOEQ4RDAwRDk3QjZBIC8qIExvb3BCbGlubkNsYXNzaWZpZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4Nzcw
QzQxMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BCbGlubkNsYXNzaWZpZXIuY3BwICovOyB9OworCQk0
OTI4QkU4MzEyNEE4RDhGMDBEOTdCNkEgLyogTG9vcEJsaW5uQ2xhc3NpZmllci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4NzcwQzUxMjQyQzUzNTAw
MjIyNkJBIC8qIExvb3BCbGlubkNsYXNzaWZpZXIuaCAqLzsgfTsKKwkJNDkyOEJFODQxMjRBOEQ5
MDAwRDk3QjZBIC8qIExvb3BCbGlubkNvbnN0YW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4NzcwQzYxMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BC
bGlubkNvbnN0YW50cy5oICovOyB9OworCQk0OTI4QkU4NTEyNEE4RDkxMDBEOTdCNkEgLyogTG9v
cEJsaW5uTWF0aFV0aWxzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ5ODc3MEM3MTI0MkM1MzUwMDIyMjZCQSAvKiBMb29wQmxpbm5NYXRoVXRpbHMu
Y3BwICovOyB9OworCQk0OTI4QkU4NjEyNEE4RDkzMDBEOTdCNkEgLyogTG9vcEJsaW5uTWF0aFV0
aWxzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTg3
NzBDODEyNDJDNTM1MDAyMjI2QkEgLyogTG9vcEJsaW5uTWF0aFV0aWxzLmggKi87IH07CisJCTQ5
MjhCRTg3MTI0QThEOTQwMEQ5N0I2QSAvKiBMb29wQmxpbm5UZXh0dXJlQ29vcmRzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODc3MEM5MTI0MkM1
MzUwMDIyMjZCQSAvKiBMb29wQmxpbm5UZXh0dXJlQ29vcmRzLmNwcCAqLzsgfTsKKwkJNDkyOEJF
ODgxMjRBOEQ5NTAwRDk3QjZBIC8qIExvb3BCbGlublRleHR1cmVDb29yZHMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODc3MENBMTI0MkM1MzUwMDIy
MjZCQSAvKiBMb29wQmxpbm5UZXh0dXJlQ29vcmRzLmggKi87IH07CisJCTQ5MjhCRTg5MTI0QThE
OTYwMEQ5N0I2QSAvKiBQT0RBcmVuYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDk4NzcwQ0IxMjQyQzUzNTAwMjIyNkJBIC8qIFBPREFyZW5hLmggKi87
IH07CisJCTQ5MjhCRThBMTI0QThEOTgwMEQ5N0I2QSAvKiBQT0RJbnRlcnZhbC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4NzcwQ0MxMjQyQzUzNTAw
MjIyNkJBIC8qIFBPREludGVydmFsLmggKi87IH07CisJCTQ5MjhCRThCMTI0QThEOUMwMEQ5N0I2
QSAvKiBQT0RJbnRlcnZhbFRyZWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ5ODc3MENEMTI0MkM1MzUwMDIyMjZCQSAvKiBQT0RJbnRlcnZhbFRyZWUu
aCAqLzsgfTsKKwkJNDkyOEJFOEMxMjRBOEQ5RTAwRDk3QjZBIC8qIFBPRFJlZEJsYWNrVHJlZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4NzcwQ0Ux
MjQyQzUzNTAwMjIyNkJBIC8qIFBPRFJlZEJsYWNrVHJlZS5oICovOyB9OworCQk0OTI4QkU4RDEy
NEE4RDlGMDBEOTdCNkEgLyogU2hhZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODc3MENGMTI0MkM1MzUwMDIyMjZCQSAvKiBTaGFkZXIuY3Bw
ICovOyB9OwogCQk0OTQ4NEZDMTEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzR3JhZGllbnQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk0ODRGQjMx
MDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc0dyYWRpZW50LmNwcCAqLzsgfTsKIAkJNDk0ODRGQzIx
MDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc0dyYWRpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTQ4NEZCNDEwMkNGMjNDMDAxODdERDMgLyogQ2Fu
dmFzR3JhZGllbnQuaCAqLzsgfTsKIAkJNDk0ODRGQzQxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZh
c1BhdHRlcm4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDk0ODRGQjYxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1BhdHRlcm4uY3BwICovOyB9OwpA
QCAtNjgzMSw2ICs2ODU3LDMyIEBACiAJCTQ5ODM5MTU1MEYxRTc3NjkwMEMyMzc4MiAvKiBXZWJL
aXRDU1NNYXRyaXguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
S2l0Q1NTTWF0cml4LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDk4MzkxNTYw
RjFFNzc2OTAwQzIzNzgyIC8qIFdlYktpdENTU01hdHJpeC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJLaXRDU1NNYXRyaXguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDk4MzkxNTcwRjFFNzc2OTAwQzIzNzgyIC8qIFdlYktpdENTU01hdHJpeC5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViS2l0Q1NTTWF0cml4LmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDk4NzcwQzIxMjQyQzUzNTAwMjIyNkJBIC8qIERyYXdpbmdCdWZmZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRHJhd2luZ0J1ZmZlci5j
cHA7IHBhdGggPSBncHUvRHJhd2luZ0J1ZmZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTQ5ODc3MEMzMTI0MkM1MzUwMDIyMjZCQSAvKiBEcmF3aW5nQnVmZmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERyYXdpbmdCdWZmZXIuaDsgcGF0aCA9IGdwdS9E
cmF3aW5nQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5ODc3MEM0MTI0
MkM1MzUwMDIyMjZCQSAvKiBMb29wQmxpbm5DbGFzc2lmaWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExvb3BCbGlubkNsYXNzaWZpZXIuY3BwOyBwYXRoID0gZ3B1
L0xvb3BCbGlubkNsYXNzaWZpZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
OTg3NzBDNTEyNDJDNTM1MDAyMjI2QkEgLyogTG9vcEJsaW5uQ2xhc3NpZmllci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMb29wQmxpbm5DbGFzc2lmaWVyLmg7IHBhdGggPSBn
cHUvTG9vcEJsaW5uQ2xhc3NpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
OTg3NzBDNjEyNDJDNTM1MDAyMjI2QkEgLyogTG9vcEJsaW5uQ29uc3RhbnRzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExvb3BCbGlubkNvbnN0YW50cy5oOyBwYXRoID0gZ3B1
L0xvb3BCbGlubkNvbnN0YW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTg3
NzBDNzEyNDJDNTM1MDAyMjI2QkEgLyogTG9vcEJsaW5uTWF0aFV0aWxzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExvb3BCbGlubk1hdGhVdGlscy5jcHA7IHBhdGgg
PSBncHUvTG9vcEJsaW5uTWF0aFV0aWxzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDk4NzcwQzgxMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BCbGlubk1hdGhVdGlscy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMb29wQmxpbm5NYXRoVXRpbHMuaDsgcGF0aCA9
IGdwdS9Mb29wQmxpbm5NYXRoVXRpbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDk4NzcwQzkxMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BCbGlublRleHR1cmVDb29yZHMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTG9vcEJsaW5uVGV4dHVyZUNvb3Jk
cy5jcHA7IHBhdGggPSBncHUvTG9vcEJsaW5uVGV4dHVyZUNvb3Jkcy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQ5ODc3MENBMTI0MkM1MzUwMDIyMjZCQSAvKiBMb29wQmxpbm5U
ZXh0dXJlQ29vcmRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExvb3BCbGlu
blRleHR1cmVDb29yZHMuaDsgcGF0aCA9IGdwdS9Mb29wQmxpbm5UZXh0dXJlQ29vcmRzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5ODc3MENCMTI0MkM1MzUwMDIyMjZCQSAvKiBQ
T0RBcmVuYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQT0RBcmVuYS5oOyBw
YXRoID0gZ3B1L1BPREFyZW5hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5ODc3
MENDMTI0MkM1MzUwMDIyMjZCQSAvKiBQT0RJbnRlcnZhbC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBQT0RJbnRlcnZhbC5oOyBwYXRoID0gZ3B1L1BPREludGVydmFsLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5ODc3MENEMTI0MkM1MzUwMDIyMjZCQSAvKiBQ
T0RJbnRlcnZhbFRyZWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUE9ESW50
ZXJ2YWxUcmVlLmg7IHBhdGggPSBncHUvUE9ESW50ZXJ2YWxUcmVlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQ5ODc3MENFMTI0MkM1MzUwMDIyMjZCQSAvKiBQT0RSZWRCbGFja1Ry
ZWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUE9EUmVkQmxhY2tUcmVlLmg7
IHBhdGggPSBncHUvUE9EUmVkQmxhY2tUcmVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQ5ODc3MENGMTI0MkM1MzUwMDIyMjZCQSAvKiBTaGFkZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU2hhZGVyLmNwcDsgcGF0aCA9IGdwdS9TaGFkZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTg3NzBEMDEyNDJDNTM1MDAyMjI2QkEg
LyogU2hhZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFNoYWRlci5oOyBw
YXRoID0gZ3B1L1NoYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTg3NzBE
MTEyNDJDNTM1MDAyMjI2QkEgLyogU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuY3Bw
OyBwYXRoID0gZ3B1L1NoYXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDk4NzcwRDIxMjQyQzUzNTAwMjIyNkJBIC8qIFNoYXJlZEdyYXBoaWNz
Q29udGV4dDNELmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFNoYXJlZEdyYXBo
aWNzQ29udGV4dDNELmg7IHBhdGggPSBncHUvU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDk4NzcwRDMxMjQyQzUzNTAwMjIyNkJBIC8qIFNv
bGlkRmlsbFNoYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBT
b2xpZEZpbGxTaGFkZXIuY3BwOyBwYXRoID0gZ3B1L1NvbGlkRmlsbFNoYWRlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5ODc3MEQ0MTI0MkM1MzUwMDIyMjZCQSAvKiBTb2xp
ZEZpbGxTaGFkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU29saWRGaWxs
U2hhZGVyLmg7IHBhdGggPSBncHUvU29saWRGaWxsU2hhZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQ5ODc3MEQ1MTI0MkM1MzUwMDIyMjZCQSAvKiBUZXhTaGFkZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVGV4U2hhZGVyLmNwcDsgcGF0aCA9
IGdwdS9UZXhTaGFkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTg3NzBE
NjEyNDJDNTM1MDAyMjI2QkEgLyogVGV4U2hhZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFRleFNoYWRlci5oOyBwYXRoID0gZ3B1L1RleFNoYWRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0OTg3NzBENzEyNDJDNTM1MDAyMjI2QkEgLyogVGV4dHVyZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBUZXh0dXJlLmNwcDsgcGF0
aCA9IGdwdS9UZXh0dXJlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDk4Nzcw
RDgxMjQyQzUzNTAwMjIyNkJBIC8qIFRleHR1cmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gVGV4dHVyZS5oOyBwYXRoID0gZ3B1L1RleHR1cmUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDk4NzcwRDkxMjQyQzUzNTAwMjIyNkJBIC8qIFRpbGluZ0RhdGEuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVGlsaW5nRGF0YS5jcHA7IHBh
dGggPSBncHUvVGlsaW5nRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5
ODc3MERBMTI0MkM1MzUwMDIyMjZCQSAvKiBUaWxpbmdEYXRhLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IFRpbGluZ0RhdGEuaDsgcGF0aCA9IGdwdS9UaWxpbmdEYXRhLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5ODc3MTUyMTI0M0Y5RkEwMDIyMjZCQSAvKiBE
cmF3aW5nQnVmZmVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1l
ID0gRHJhd2luZ0J1ZmZlck1hYy5tbTsgcGF0aCA9IGdwdS9tYWMvRHJhd2luZ0J1ZmZlck1hYy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDlDN0I5ODAxMDQyRDJEMzAwMDlENDQ3
IC8qIEpTV2ViR0xCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNXZWJHTEJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5QzdC
OTgxMTA0MkQyRDMwMDA5RDQ0NyAvKiBKU1dlYkdMQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTV2ViR0xCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDlDN0I5ODIxMDQyRDJEMzAwMDlENDQ3IC8qIEpTSW50OEFycmF5LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSW50OEFycmF5LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyMTczLDYgKzEyMjI1LDQ3IEBACiAJCQluYW1lID0gY2Fu
dmFzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNDk4NzcwQzExMjQyQzUw
RDAwMjIyNkJBIC8qIGdwdSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4g
PSAoCisJCQkJNDk4NzcxMTYxMjQyQ0Q3RjAwMjIyNkJBIC8qIG1hYyAqLywKKwkJCQk0OTg3NzBD
MjEyNDJDNTM1MDAyMjI2QkEgLyogRHJhd2luZ0J1ZmZlci5jcHAgKi8sCisJCQkJNDk4NzcwQzMx
MjQyQzUzNTAwMjIyNkJBIC8qIERyYXdpbmdCdWZmZXIuaCAqLywKKwkJCQk0OTg3NzBDNDEyNDJD
NTM1MDAyMjI2QkEgLyogTG9vcEJsaW5uQ2xhc3NpZmllci5jcHAgKi8sCisJCQkJNDk4NzcwQzUx
MjQyQzUzNTAwMjIyNkJBIC8qIExvb3BCbGlubkNsYXNzaWZpZXIuaCAqLywKKwkJCQk0OTg3NzBD
NjEyNDJDNTM1MDAyMjI2QkEgLyogTG9vcEJsaW5uQ29uc3RhbnRzLmggKi8sCisJCQkJNDk4Nzcw
QzcxMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BCbGlubk1hdGhVdGlscy5jcHAgKi8sCisJCQkJNDk4
NzcwQzgxMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BCbGlubk1hdGhVdGlscy5oICovLAorCQkJCTQ5
ODc3MEM5MTI0MkM1MzUwMDIyMjZCQSAvKiBMb29wQmxpbm5UZXh0dXJlQ29vcmRzLmNwcCAqLywK
KwkJCQk0OTg3NzBDQTEyNDJDNTM1MDAyMjI2QkEgLyogTG9vcEJsaW5uVGV4dHVyZUNvb3Jkcy5o
ICovLAorCQkJCTQ5ODc3MENCMTI0MkM1MzUwMDIyMjZCQSAvKiBQT0RBcmVuYS5oICovLAorCQkJ
CTQ5ODc3MENDMTI0MkM1MzUwMDIyMjZCQSAvKiBQT0RJbnRlcnZhbC5oICovLAorCQkJCTQ5ODc3
MENEMTI0MkM1MzUwMDIyMjZCQSAvKiBQT0RJbnRlcnZhbFRyZWUuaCAqLywKKwkJCQk0OTg3NzBD
RTEyNDJDNTM1MDAyMjI2QkEgLyogUE9EUmVkQmxhY2tUcmVlLmggKi8sCisJCQkJNDk4NzcwQ0Yx
MjQyQzUzNTAwMjIyNkJBIC8qIFNoYWRlci5jcHAgKi8sCisJCQkJNDk4NzcwRDAxMjQyQzUzNTAw
MjIyNkJBIC8qIFNoYWRlci5oICovLAorCQkJCTQ5ODc3MEQxMTI0MkM1MzUwMDIyMjZCQSAvKiBT
aGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHAgKi8sCisJCQkJNDk4NzcwRDIxMjQyQzUzNTAwMjIy
NkJBIC8qIFNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmggKi8sCisJCQkJNDk4NzcwRDMxMjQyQzUz
NTAwMjIyNkJBIC8qIFNvbGlkRmlsbFNoYWRlci5jcHAgKi8sCisJCQkJNDk4NzcwRDQxMjQyQzUz
NTAwMjIyNkJBIC8qIFNvbGlkRmlsbFNoYWRlci5oICovLAorCQkJCTQ5ODc3MEQ1MTI0MkM1MzUw
MDIyMjZCQSAvKiBUZXhTaGFkZXIuY3BwICovLAorCQkJCTQ5ODc3MEQ2MTI0MkM1MzUwMDIyMjZC
QSAvKiBUZXhTaGFkZXIuaCAqLywKKwkJCQk0OTg3NzBENzEyNDJDNTM1MDAyMjI2QkEgLyogVGV4
dHVyZS5jcHAgKi8sCisJCQkJNDk4NzcwRDgxMjQyQzUzNTAwMjIyNkJBIC8qIFRleHR1cmUuaCAq
LywKKwkJCQk0OTg3NzBEOTEyNDJDNTM1MDAyMjI2QkEgLyogVGlsaW5nRGF0YS5jcHAgKi8sCisJ
CQkJNDk4NzcwREExMjQyQzUzNTAwMjIyNkJBIC8qIFRpbGluZ0RhdGEuaCAqLywKKwkJCSk7CisJ
CQluYW1lID0gZ3B1OworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJNDk4Nzcx
MTYxMjQyQ0Q3RjAwMjIyNkJBIC8qIG1hYyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJNDk4NzcxNTIxMjQzRjlGQTAwMjIyNkJBIC8qIERyYXdpbmdCdWZm
ZXJNYWMubW0gKi8sCisJCQkpOworCQkJbmFtZSA9IG1hYzsKKwkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CisJCX07CiAJCTQ5RTkxMUIyMEVGODZEMjcwMDlEMENBRiAvKiB0cmFuc2Zvcm1zICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTE1OTcyLDYgKzE2
MDY1LDcgQEAKIAkJCQlCMjc1MzUyOTBCMDUzODE0MDAyQ0U2NEYgLyogY2cgKi8sCiAJCQkJQjUz
MjBENjgxMjJBMjRFOTAwMkQxNDQwIC8qIGNvY29hICovLAogCQkJCUE3NUU4QjdGMEUxREUyQjAw
MDdGMjQ4MSAvKiBmaWx0ZXJzICovLAorCQkJCTQ5ODc3MEMxMTI0MkM1MEQwMDIyMjZCQSAvKiBn
cHUgKi8sCiAJCQkJQjI3NTM1NDkwQjA1MzgxNDAwMkNFNjRGIC8qIG1hYyAqLywKIAkJCQlGQkMy
MjBERDEyMzdGQkVCMDBCQ0Y3ODggLyogb3BlbmdsICovLAogCQkJCUY0RUFGNEFCMTBDNzQyNjgw
MDkxMDBEMyAvKiBvcGVudHlwZSAqLywKQEAgLTIwNTgyLDYgKzIwNjc2LDIxIEBACiAJCQkJOTNG
MTk5RUQwODI0NUU1OTAwMUU5QUJDIC8qIFhTTFRQcm9jZXNzb3IuaCBpbiBIZWFkZXJzICovLAog
CQkJCUUxQkU1MTJFMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTk3REQ0RDg3MEZERjRENkUwMEVDRjlBNCAvKiBYU1NBdWRpdG9yLmggaW4g
SGVhZGVycyAqLywKKwkJCQk0OTI0OEYxNTEyNEE4Qzk2MDA4MzYxMTAgLyogU2hhcmVkR3JhcGhp
Y3NDb250ZXh0M0QuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ5MjQ4RjE3MTI0QThDOTkwMDgzNjEx
MCAvKiBTb2xpZEZpbGxTaGFkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ5MjQ4RjE5MTI0QThD
QTIwMDgzNjExMCAvKiBUZXhTaGFkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ5MjQ4RjFCMTI0
QThDQTUwMDgzNjExMCAvKiBUZXh0dXJlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0OTI0OEYxRDEy
NEE4Q0UzMDA4MzYxMTAgLyogVGlsaW5nRGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDkyNDhG
MUUxMjRBOEQyMzAwODM2MTEwIC8qIFNoYWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDkyOEJF
ODExMjRBOEQ4QzAwRDk3QjZBIC8qIERyYXdpbmdCdWZmZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTQ5MjhCRTgzMTI0QThEOEYwMEQ5N0I2QSAvKiBMb29wQmxpbm5DbGFzc2lmaWVyLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk0OTI4QkU4NDEyNEE4RDkwMDBEOTdCNkEgLyogTG9vcEJsaW5uQ29uc3Rh
bnRzLmggaW4gSGVhZGVycyAqLywKKwkJCQk0OTI4QkU4NjEyNEE4RDkzMDBEOTdCNkEgLyogTG9v
cEJsaW5uTWF0aFV0aWxzLmggaW4gSGVhZGVycyAqLywKKwkJCQk0OTI4QkU4ODEyNEE4RDk1MDBE
OTdCNkEgLyogTG9vcEJsaW5uVGV4dHVyZUNvb3Jkcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDky
OEJFODkxMjRBOEQ5NjAwRDk3QjZBIC8qIFBPREFyZW5hLmggaW4gSGVhZGVycyAqLywKKwkJCQk0
OTI4QkU4QTEyNEE4RDk4MDBEOTdCNkEgLyogUE9ESW50ZXJ2YWwuaCBpbiBIZWFkZXJzICovLAor
CQkJCTQ5MjhCRThCMTI0QThEOUMwMEQ5N0I2QSAvKiBQT0RJbnRlcnZhbFRyZWUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTQ5MjhCRThDMTI0QThEOUUwMEQ5N0I2QSAvKiBQT0RSZWRCbGFja1RyZWUu
aCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OwpAQCAtMjMwNjEsNiArMjMxNzAsMTcgQEAKIAkJCQk5M0YxOUIwNTA4
MjQ1RTU5MDAxRTlBQkMgLyogWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRTFCRTUxMkQwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5N0RENEQ4NjBGREY0RDZFMDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk0OTI0OEYxMzEyNEE4QzcyMDA4MzYxMTAgLyogRHJhd2lu
Z0J1ZmZlck1hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTQ5MjQ4RjE0MTI0QThDOTQwMDgzNjEx
MCAvKiBTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0OTI0
OEYxNjEyNEE4Qzk4MDA4MzYxMTAgLyogU29saWRGaWxsU2hhZGVyLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTQ5MjQ4RjE4MTI0QThDQTEwMDgzNjExMCAvKiBUZXhTaGFkZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJNDkyNDhGMUExMjRBOENBNDAwODM2MTEwIC8qIFRleHR1cmUuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJNDkyNDhGMUMxMjRBOENBNjAwODM2MTEwIC8qIFRpbGluZ0RhdGEuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJNDkyOEJFODAxMjRBOEQ4QTAwRDk3QjZBIC8qIERyYXdpbmdC
dWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDkyOEJFODIxMjRBOEQ4RDAwRDk3QjZBIC8q
IExvb3BCbGlubkNsYXNzaWZpZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDkyOEJFODUxMjRB
OEQ5MTAwRDk3QjZBIC8qIExvb3BCbGlubk1hdGhVdGlscy5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk0OTI4QkU4NzEyNEE4RDk0MDBEOTdCNkEgLyogTG9vcEJsaW5uVGV4dHVyZUNvb3Jkcy5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk0OTI4QkU4RDEyNEE4RDlGMDBEOTdCNkEgLyogU2hhZGVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvRHJh
d2luZ0J1ZmZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvRHJhd2luZ0J1ZmZlci5jcHAJKHJldmlzaW9uIDY4MDAyKQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvRHJhd2luZ0J1ZmZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDkg
KzMwLDEwIEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAorI2lmIEVOQUJMRShBQ0NFTEVSQVRF
RF8yRF9DQU5WQVMpCisKICNpbmNsdWRlICJEcmF3aW5nQnVmZmVyLmgiCiAKLSNpbmNsdWRlICJH
cmFwaGljc0NvbnRleHQzRC5oIgogI2luY2x1ZGUgIlNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU4LDMgKzU5LDUgQEAgdm9pZCBEcmF3aW5nQnVm
ZmVyOjpzZXRXaWxsUHVibGlzaENhbGxiYQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvRHJhd2luZ0J1ZmZl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0RyYXdpbmdC
dWZmZXIuaAkocmV2aXNpb24gNjgwMDIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9EcmF3aW5nQnVmZmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpZm5k
ZWYgRHJhd2luZ0J1ZmZlcl9oCiAjZGVmaW5lIERyYXdpbmdCdWZmZXJfaAogCisjaW5jbHVkZSAi
R3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCiAjaW5jbHVk
ZSAiSW50U2l6ZS5oIgogCkBAIC00MSw4ICs0Miw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOwotCi1zdHJ1Y3QgRHJhd2luZ0J1ZmZlcklu
dGVybmFsOworY2xhc3MgRHJhd2luZ0J1ZmZlckludGVybmFsOwogCiAvLyBNYW5hZ2VzIGEgcmVu
ZGVyaW5nIHRhcmdldCAoZnJhbWVidWZmZXIgKyBhdHRhY2htZW50KSBmb3IgYSBjYW52YXMuICBD
YW4gcHVibGlzaCBpdHMgcmVuZGVyaW5nCiAvLyByZXN1bHRzIHRvIGEgUGxhdGZvcm1MYXllciBm
b3IgY29tcG9zaXRpbmcuCkBAIC02NCwxMCArNjQsMTMgQEAgcHVibGljOgogCiAgICAgY2xhc3Mg
V2lsbFB1Ymxpc2hDYWxsYmFjayA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiAgICAgcHVibGljOgor
ICAgICAgICB2aXJ0dWFsIH5XaWxsUHVibGlzaENhbGxiYWNrKCkgeyB9CisgICAgICAgIAogICAg
ICAgICB2aXJ0dWFsIHZvaWQgd2lsbFB1Ymxpc2goKSA9IDA7CiAgICAgfTsKIAogICAgIHZvaWQg
c2V0V2lsbFB1Ymxpc2hDYWxsYmFjayhQYXNzT3duUHRyPFdpbGxQdWJsaXNoQ2FsbGJhY2s+KTsK
KwogcHJpdmF0ZToKICAgICBEcmF3aW5nQnVmZmVyKFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEKiwg
Y29uc3QgSW50U2l6ZSYsIHVuc2lnbmVkIGZyYW1lYnVmZmVyKTsKIApJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvTG9vcEJsaW5uQ2xhc3NpZmllci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvTG9vcEJsaW5uQ2xhc3NpZmllci5jcHAJ
KHJldmlzaW9uIDY4MDAyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvTG9vcEJs
aW5uQ2xhc3NpZmllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDggQEAKIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogCisjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKKwog
I2luY2x1ZGUgIkxvb3BCbGlubkNsYXNzaWZpZXIuaCIKIAogI2luY2x1ZGUgIkxvb3BCbGlubk1h
dGhVdGlscy5oIgpAQCAtMTIwLDMgKzEyMiw1IEBAIExvb3BCbGlubkNsYXNzaWZpZXI6OlJlc3Vs
dCBMb29wQmxpbm5DbGEKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0xvb3BCbGlubk1hdGhVdGlscy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvTG9vcEJsaW5uTWF0
aFV0aWxzLmNwcAkocmV2aXNpb24gNjgwMDIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9Mb29wQmxpbm5NYXRoVXRpbHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwxMiArMjUs
MTMgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCisjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJE
X0NBTlZBUykKKwogI2luY2x1ZGUgIkxvb3BCbGlubk1hdGhVdGlscy5oIgogCiAjaW5jbHVkZSAi
RmxvYXRQb2ludC5oIgotI2luY2x1ZGUgIk1hdGhFeHRyYXMuaCIKICNpbmNsdWRlIDxhbGdvcml0
aG0+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+IC8vIGZvciBtZW1jcHkKKyNpbmNsdWRlIDx3dGYvTWF0
aEV4dHJhcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgTG9vcEJsaW5uTWF0
aFV0aWxzIHsKQEAgLTU2MywzICs1NjQsNSBAQCBpbnQgbnVtWFJheUNyb3NzaW5nc0ZvckN1Ymlj
KGNvbnN0IFhSYXkmCiAKIH0gLy8gbmFtZXNwYWNlIExvb3BCbGlubk1hdGhVdGlscwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0xvb3BCbGlublRleHR1cmVDb29yZHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0xvb3BCbGlublRleHR1cmVDb29yZHMuY3BwCShyZXZpc2lv
biA2ODAwMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0xvb3BCbGlublRleHR1
cmVDb29yZHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw4IEBACiAKICNpbmNsdWRl
ICJjb25maWcuaCIKIAorI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCisKICNpbmNs
dWRlICJMb29wQmxpbm5UZXh0dXJlQ29vcmRzLmgiCiAKICNpbmNsdWRlIDxtYXRoLmg+CkBAIC0x
NjksMyArMTcxLDUgQEAgTG9vcEJsaW5uVGV4dHVyZUNvb3Jkczo6UmVzdWx0IExvb3BCbGlubgog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvU2hhZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9TaGFkZXIuY3BwCShyZXZpc2lvbiA2ODAwMikKKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYg
KzI5LDkgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoQUNDRUxF
UkFURURfMkRfQ0FOVkFTKQorCiAjaW5jbHVkZSAiU2hhZGVyLmgiCiAKICNpbmNsdWRlICJBZmZp
bmVUcmFuc2Zvcm0uaCIKQEAgLTEwOSwzICsxMTIsNSBAQCBTaGFkZXI6On5TaGFkZXIoKQogfQog
CiB9CisKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVk
R3JhcGhpY3NDb250ZXh0M0QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L1NoYXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcAkocmV2aXNpb24gNjgwMDIpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDggQEAKIAogI2luY2x1ZGUgImNvbmZpZy5o
IgogCisjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKKwogI2luY2x1ZGUgIlNoYXJl
ZEdyYXBoaWNzQ29udGV4dDNELmgiCiAKICNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKQEAg
LTIxNSw4ICsyMTcsOCBAQCB2b2lkIFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjpyZW1vdmVUZXh0
CiAvLyBzdGF0aWMKIEhhc2hTZXQ8U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QqPiogU2hhcmVkR3Jh
cGhpY3NDb250ZXh0M0Q6OmFsbENvbnRleHRzKCkKIHsKLSAgICBzdGF0aWMgT3duUHRyPEhhc2hT
ZXQ8U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QqPiA+IHNldChuZXcgSGFzaFNldDxTaGFyZWRHcmFw
aGljc0NvbnRleHQzRCo+KTsKLSAgICByZXR1cm4gc2V0LmdldCgpOworICAgIHN0YXRpYyBIYXNo
U2V0PFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEKj4qIGFsbENvbnRleHRzU2V0ID0gbmV3IEhhc2hT
ZXQ8U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QqPjsKKyAgICByZXR1cm4gYWxsQ29udGV4dHNTZXQ7
CiB9CiAKIApAQCAtMzM0LDMgKzMzNiw1IEBAIGJvb2wgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6
OnBhaW50c0ludG8KIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NvbGlkRmlsbFNoYWRlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvU29saWRGaWxsU2hhZGVyLmNw
cAkocmV2aXNpb24gNjgwMDIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9Tb2xp
ZEZpbGxTaGFkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw5IEBACiAgKi8KIAog
I2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykK
KwogI2luY2x1ZGUgIlNvbGlkRmlsbFNoYWRlci5oIgogCiAjaW5jbHVkZSAiQ29sb3IuaCIKQEAg
LTg2LDMgKzg5LDUgQEAgdm9pZCBTb2xpZEZpbGxTaGFkZXI6OnVzZShjb25zdCBBZmZpbmVUcgog
fQogCiB9CisKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGV4
U2hhZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9U
ZXhTaGFkZXIuY3BwCShyZXZpc2lvbiA2ODAwMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L1RleFNoYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDkgQEAKICAq
LwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FO
VkFTKQorCiAjaW5jbHVkZSAiVGV4U2hhZGVyLmgiCiAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRl
eHQzRC5oIgpAQCAtOTMsMyArOTYsNSBAQCB2b2lkIFRleFNoYWRlcjo6dXNlKGNvbnN0IEFmZmlu
ZVRyYW5zZm9yCiB9CiAKIH0KKworI2VuZGlmCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9UZXh0dXJlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9UZXh0dXJlLmNwcAkocmV2aXNpb24gNjgwMDIpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9UZXh0dXJlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsOCBA
QAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FO
VkFTKQorCiAjaW5jbHVkZSAiVGV4dHVyZS5oIgogCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCkBA
IC0yMDYsMyArMjA4LDUgQEAgdm9pZCBUZXh0dXJlOjpiaW5kVGlsZShpbnQgdGlsZSkKIH0KIAog
fQorCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1RleHR1cmUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9UZXh0dXJlLmgJ
KHJldmlzaW9uIDY4MDAyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGV4dHVy
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwxMSArMzEsMTEgQEAKICNpZm5kZWYgVGV4dHVyZV9o
CiAjZGVmaW5lIFRleHR1cmVfaAogCi0jaW5jbHVkZSAiUmVmQ291bnRlZC5oIgotI2luY2x1ZGUg
IlJlZlB0ci5oIgogI2luY2x1ZGUgIlRpbGluZ0RhdGEuaCIKICNpbmNsdWRlIDx3dGYvT3duUHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L1RpbGluZ0RhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L1RpbGluZ0RhdGEuY3BwCShyZXZpc2lvbiA2ODAwMikKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L1RpbGluZ0RhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw5
IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKEFDQ0VMRVJBVEVE
XzJEX0NBTlZBUykKKwogI2luY2x1ZGUgIlRpbGluZ0RhdGEuaCIKIAogI2luY2x1ZGUgIkZsb2F0
UmVjdC5oIgpAQCAtMjIwLDMgKzIyMyw1IEBAIHZvaWQgVGlsaW5nRGF0YTo6aW50ZXJzZWN0RHJh
d1F1YWQoY29uc3QKIH0KIAogfQorCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L21hYy9EcmF3aW5nQnVmZmVyTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L21hYy9EcmF3aW5nQnVmZmVyTWFjLm1tCShyZXZpc2lvbiAw
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvbWFjL0RyYXdpbmdCdWZmZXJNYWMu
bW0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKwor
I2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCisKKyNpbmNsdWRlICJEcmF3aW5nQnVm
ZmVyLmgiCisKKyNpbmNsdWRlICJTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5oIgorI2luY2x1ZGUg
IldlYkdMTGF5ZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKKyNpbXBvcnQgIkJs
b2NrRXhjZXB0aW9ucy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERyYXdpbmdC
dWZmZXJJbnRlcm5hbCB7CitwdWJsaWM6CisgICAgRHJhd2luZ0J1ZmZlckludGVybmFsKCkgeyB9
CisgICAgfkRyYXdpbmdCdWZmZXJJbnRlcm5hbCgpIHsgfQorICAgIAorICAgIFJldGFpblB0cjxQ
bGF0Zm9ybUxheWVyPiBtX3BsYXRmb3JtTGF5ZXI7Cit9OworCitEcmF3aW5nQnVmZmVyOjpEcmF3
aW5nQnVmZmVyKFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBjb25zdCBJbnRTaXpl
JiBzaXplLCB1bnNpZ25lZCBmcmFtZWJ1ZmZlcikKKyAgICA6IG1fY29udGV4dChjb250ZXh0KQor
ICAgICwgbV9zaXplKHNpemUpCisgICAgLCBtX2ZyYW1lYnVmZmVyKGZyYW1lYnVmZmVyKQorICAg
ICwgbV9pbnRlcm5hbChuZXcgRHJhd2luZ0J1ZmZlckludGVybmFsKQoreworICAgIGNvbnRleHQt
PmJpbmRGcmFtZWJ1ZmZlcihmcmFtZWJ1ZmZlcik7CisKKyAgICAvLyBDcmVhdGUgdGhlIFdlYkdM
TGF5ZXIKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICAgICAgbV9pbnRlcm5h
bC0+bV9wbGF0Zm9ybUxheWVyLmFkb3B0TlMoW1tXZWJHTExheWVyIGFsbG9jXSBpbml0V2l0aEdy
YXBoaWNzQ29udGV4dDNEOjBdKTsKKyNpZm5kZWYgTkRFQlVHCisgICAgICAgIFttX2ludGVybmFs
LT5tX3BsYXRmb3JtTGF5ZXIuZ2V0KCkgc2V0TmFtZTpAIldlYkdMIExheWVyIl07CisjZW5kaWYg
ICAgCisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUworfQorCitEcmF3aW5nQnVmZmVyOjp+
RHJhd2luZ0J1ZmZlcigpCit7CisgICAgbV9jb250ZXh0LT5iaW5kRnJhbWVidWZmZXIobV9mcmFt
ZWJ1ZmZlcik7CisgICAgbV9jb250ZXh0LT5kZWxldGVGcmFtZWJ1ZmZlcihtX2ZyYW1lYnVmZmVy
KTsKK30KKwordm9pZCBEcmF3aW5nQnVmZmVyOjpyZXNldChjb25zdCBJbnRTaXplJiBuZXdTaXpl
KQoreworICAgIGlmIChtX3NpemUgPT0gbmV3U2l6ZSkKKyAgICAgICAgcmV0dXJuOworICAgIG1f
c2l6ZSA9IG5ld1NpemU7CisKKyAgICBtX2NvbnRleHQtPnRleEltYWdlMkQoR3JhcGhpY3NDb250
ZXh0M0Q6OlRFWFRVUkVfMkQsIDAsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBLCBtX3NpemUud2lk
dGgoKSwgbV9zaXplLmhlaWdodCgpLCAwLCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSwgR3JhcGhp
Y3NDb250ZXh0M0Q6OlVOU0lHTkVEX0JZVEUsIDApOworfQorCisjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQorUGxhdGZvcm1MYXllciogRHJhd2luZ0J1ZmZlcjo6cGxhdGZvcm1MYXll
cigpCit7CisgICAgcmV0dXJuIG1faW50ZXJuYWwtPm1fcGxhdGZvcm1MYXllci5nZXQoKTsKK30K
KyNlbmRpZgorCit9CisKKyNlbmRpZgpJbmRleDogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gNjgxMDUpCisrKyBXZWJL
aXRUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0w
OS0yMiAgQ2hyaXMgTWFycmluICA8Y21hcnJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSAyRCBhY2NlbGVyYXRlZCBjYW52
YXMgcmVuZGVyaW5nIGJ1aWxkIG9uIE1hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDYwMDcKKworICAgICAgICBBZGRlZCBBQ0NFTEVSQVRFRF8yRF9D
QU5WQVMgZmxhZyB0byBidWlsZC13ZWJraXQuIEN1cnJlbnRseSBvZmYgYnkgZGVmYXVsdC4KKwor
ICAgICAgICAqIFNjcmlwdHMvYnVpbGQtd2Via2l0OgorCiAyMDEwLTA5LTIyICBBZGFtIEJhcnRo
ICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwu
CkluZGV4OiBXZWJLaXRUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXRUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAkocmV2aXNpb24gNjgwMDIpCisrKyBXZWJL
aXRUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAkod29ya2luZyBjb3B5KQpAQCAtNTcsNyArNTcs
NyBAQCBteSAkcHJlZml4UGF0aDsKIG15ICRtYWtlQXJnczsKIG15ICRzdGFydFRpbWUgPSB0aW1l
KCk7CiAKLW15ICgkbGlua1ByZWZldGNoU3VwcG9ydCwgJHRocmVlRENhbnZhc1N1cHBvcnQsICR0
aHJlZURSZW5kZXJpbmdTdXBwb3J0LCAkY2hhbm5lbE1lc3NhZ2luZ1N1cHBvcnQsICRjbGllbnRC
YXNlZEdlb2xvY2F0aW9uU3VwcG9ydCwgJGRhdGFiYXNlU3VwcG9ydCwgJGRhdGFncmlkU3VwcG9y
dCwgJGRhdGFsaXN0U3VwcG9ydCwKK215ICgkbGlua1ByZWZldGNoU3VwcG9ydCwgJGFjY2VsZXJh
dGVkMmRDYW52YXNTdXBwb3J0LCAkdGhyZWVEQ2FudmFzU3VwcG9ydCwgJHRocmVlRFJlbmRlcmlu
Z1N1cHBvcnQsICRjaGFubmVsTWVzc2FnaW5nU3VwcG9ydCwgJGNsaWVudEJhc2VkR2VvbG9jYXRp
b25TdXBwb3J0LCAkZGF0YWJhc2VTdXBwb3J0LCAkZGF0YWdyaWRTdXBwb3J0LCAkZGF0YWxpc3RT
dXBwb3J0LAogICAgICRkb21TdG9yYWdlU3VwcG9ydCwgJGV2ZW50c291cmNlU3VwcG9ydCwgJGZp
bHRlcnNTdXBwb3J0LCAkZ2VvbG9jYXRpb25TdXBwb3J0LCAkaWNvbkRhdGFiYXNlU3VwcG9ydCwg
JGltYWdlUmVzaXplclN1cHBvcnQsICRpbmRleGVkRGF0YWJhc2VTdXBwb3J0LCAkaW5wdXRTcGVl
Y2hTdXBwb3J0LAogICAgICRqYXZhU2NyaXB0RGVidWdnZXJTdXBwb3J0LCAkbWF0aG1sU3VwcG9y
dCwgJG9mZmxpbmVXZWJBcHBsaWNhdGlvblN1cHBvcnQsICRydWJ5U3VwcG9ydCwgJHN5c3RlbU1h
bGxvY1N1cHBvcnQsICRzYW5kYm94U3VwcG9ydCwgJHNoYXJlZFdvcmtlcnNTdXBwb3J0LAogICAg
ICRzdmdTdXBwb3J0LCAkc3ZnQW5pbWF0aW9uU3VwcG9ydCwgJHN2Z0FzSW1hZ2VTdXBwb3J0LCAk
c3ZnRE9NT2JqQ0JpbmRpbmdzU3VwcG9ydCwgJHN2Z0ZvbnRzU3VwcG9ydCwKQEAgLTY5LDYgKzY5
LDkgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgIHsgb3B0aW9uID0+ICJsaW5rLXByZWZldGNoIiwg
ZGVzYyA9PiAiVG9nZ2xlIHByZSBmZXRjaGluZyBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAi
RU5BQkxFX0xJTktfUFJFRkVUQ0giLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkbGlua1ByZWZl
dGNoU3VwcG9ydCB9LAogCisgICAgeyBvcHRpb24gPT4gImFjY2VsZXJhdGVkLTJkLWNhbnZhcyIs
IGRlc2MgPT4gIlRvZ2dsZSBhY2NlbGVyYXRlZCAyRCBjYW52YXMgc3VwcG9ydCIsCisgICAgICBk
ZWZpbmUgPT4gIkVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMiLCBkZWZhdWx0ID0+IDAsIHZh
bHVlID0+IFwkYWNjZWxlcmF0ZWQyZENhbnZhc1N1cHBvcnQgfSwKKwogICAgIHsgb3B0aW9uID0+
ICIzZC1jYW52YXMiLCBkZXNjID0+ICJUb2dnbGUgM0QgY2FudmFzIHN1cHBvcnQiLAogICAgICAg
ZGVmaW5lID0+ICJFTkFCTEVfM0RfQ0FOVkFTIiwgZGVmYXVsdCA9PiAoaXNBcHBsZU1hY1dlYktp
dCgpICYmICFpc1RpZ2VyKCkgJiYgIWlzTGVvcGFyZCgpKSwgdmFsdWUgPT4gXCR0aHJlZURDYW52
YXNTdXBwb3J0IH0sCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68628</attachid>
            <date>2010-09-23 17:21:47 -0700</date>
            <delta_ts>2010-09-30 03:19:44 -0700</delta_ts>
            <desc>Patch to fix merge conflict</desc>
            <filename>bug-46007-20100923172146.patch</filename>
            <type>text/plain</type>
            <size>40378</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODIxOSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTQgQEAKKzIwMTAtMDktMjIgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1h
a2UgMkQgYWNjZWxlcmF0ZWQgY2FudmFzIHJlbmRlcmluZyBidWlsZCBvbiBNYWMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2MDA3CisKKyAgICAgICAg
QWRkIGFjY2VsZXJhdGVkIDJEIHJlbmRlcmluZyBmaWxlcyB0byBNYWMgYnVpbGQsIGZpeCBidWls
ZCBlcnJvcnMsCisgICAgICAgIGFkZCBpZmRlZnMgdG8gY29tcGlsZSBvbmx5IHdoZW4gdGhlIEFD
Q0VMRVJBVEVEXzJEX0NBTlZBUyBmbGFnIGlzCisgICAgICAgIGVuYWJsZWQsIGFuZCBhZGQgYSBz
a2VsZXRvbiBvZiB0aGUgbWFjIHNwZWNpZmljIGZpbGUgc28gaXQgYnVpbGRzLgorCisgICAgICAg
IERyYXdpbmdCdWZmZXJNYWMubW0sIHRoZSBNYWMgc3BlY2lmaWMgZmlsZSBkb2VzIG5vdGhpbmcg
cmlnaHQgbm93CisgICAgICAgIG90aGVyIHRoYW4gaW5pdGlhbGl6ZSBhbmQgY3JlYXRlIGEgbGF5
ZXIuIFRoZSByZXN0IHdpbGwgYmUgYWRkZWQKKyAgICAgICAgd2hlbiBJIGRvIHRoZSBhY3R1YWwg
aW1wbGVtZW50YXRpb24uIAorCisgICAgICAgIFRoZSBtb3N0IHNpZ25pZmljYW50IGNoYW5nZSB3
YXMgdG8gU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QsIHdoaWNoCisgICAgICAgIGhhZCBhIHN0YXRp
YyBsb2NhbCBPd25QdHIgaW4gb25lIG9mIHRoZSBtZXRob2RzLiBUaGlzIHdhcyBjYXVzaW5nCisg
ICAgICAgIHRoZSBleGl0IHRpbWUgZGVzdHJ1Y3RvciB3YXJuaW5nLiBHZXR0aW5nIHJpZCBvZiB0
aGUgT3duUHRyIGZpeGVkCisgICAgICAgIHRoZSBwcm9ibGVtLiBTaW5jZSB0aGUgcG9pbnRlciB0
aGF0IHdhcyBiZWluZyB3cmFwcGVkIHdhcyB0byBhCisgICAgICAgIHN0YXRpYyBvYmplY3QgdGhh
dCB3b3VsZCBuZXZlciBnZXQgZGVzdHJveWVkLCB0aGUgT3duUHRyIHdhcyBub3QKKyAgICAgICAg
bmVjZXNzYXJ5LgorCisgICAgICAgIEkgYWxzbyBhZGRlZCB0aGUgQUNDRUxFUkFURURfMkRfQ0FO
VkFTIGZsYWcgdG8gYnVpbGQtd2Via2l0CisgICAgICAgIGFuZCBGZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZy4gQnV0IHJpZ2h0IG5vdyB0aGUgZmxhZyBpcyBvZmYgYnkKKyAgICAgICAgZGVmYXVsdC4K
KworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9ncHUvRHJhd2luZ0J1ZmZlci5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0RyYXdpbmdCdWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYXdpbmdC
dWZmZXI6OldpbGxQdWJsaXNoQ2FsbGJhY2s6On5XaWxsUHVibGlzaENhbGxiYWNrKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvTG9vcEJsaW5uQ2xhc3NpZmllci5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0xvb3BCbGlubk1hdGhVdGlscy5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0xvb3BCbGlublRleHR1cmVDb29yZHMuY3BwOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFkZXIuY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6YWxsQ29udGV4dHMpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9Tb2xpZEZpbGxTaGFkZXIuY3BwOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9UZXhTaGFkZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9UZXh0dXJlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
cHUvVGV4dHVyZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdEYXRh
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvbWFjOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvbWFjL0RyYXdpbmdCdWZmZXJNYWMubW06IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6RHJhd2luZ0J1ZmZlckludGVybmFsOjpEcmF3aW5nQnVmZmVy
SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6RHJhd2luZ0J1ZmZlckludGVybmFsOjp+RHJh
d2luZ0J1ZmZlckludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYXdpbmdCdWZmZXI6OkRy
YXdpbmdCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6RHJhd2luZ0J1ZmZlcjo6fkRyYXdpbmdC
dWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6RHJhd2luZ0J1ZmZlcjo6cmVzZXQpOgorICAgICAg
ICAoV2ViQ29yZTo6RHJhd2luZ0J1ZmZlcjo6cGxhdGZvcm1MYXllcik6CisKIDIwMTAtMDktMjMg
IERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFk
ZWxlIFBldGVyc29uLgpJbmRleDogV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCShyZXZpc2lvbiA2ODIxOSkKKysrIFdlYkNvcmUvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDEx
IEBACiAKIEVOQUJMRV9MSU5LX1BSRUZFVENIID0gOwogCitFTkFCTEVfQUNDRUxFUkFURURfMkRf
Q0FOVkFTID0gJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTXyQoUkVBTF9QTEFURk9STV9O
QU1FKSk7CitFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTX21hY29zeCA9ICQoRU5BQkxFX0FD
Q0VMRVJBVEVEXzJEX0NBTlZBU19tYWNvc3hfJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpP
UikpOworRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBU19tYWNvc3hfMTA2MCA9IDsKK0VOQUJM
RV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVNfbWFjb3N4XzEwNzAgPSA7CisKIEVOQUJMRV8zRF9DQU5W
QVMgPSAkKEVOQUJMRV8zRF9DQU5WQVNfJChSRUFMX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV8z
RF9DQU5WQVNfbWFjb3N4ID0gJChFTkFCTEVfM0RfQ0FOVkFTX21hY29zeF8kKFRBUkdFVF9NQUNf
T1NfWF9WRVJTSU9OX01BSk9SKSk7CiBFTkFCTEVfM0RfQ0FOVkFTX21hY29zeF8xMDYwID0gRU5B
QkxFXzNEX0NBTlZBUzsKQEAgLTEyMCw0ICsxMjUsNCBAQCBFTkFCTEVfWEhUTUxNUCA9IDsKIEVO
QUJMRV9YUEFUSCA9IEVOQUJMRV9YUEFUSDsKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAK
LUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFXzNEX0NB
TlZBUykgJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFO
TkVMX01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJM
RV9EQVRBQkFTRSkgJChFTkFCTEVfREFUQUdSSUQpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJM
RV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxF
X0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9FVkVOVFNPVVJDRSkgJChFTkFCTEVfRklMVEVSUykgJChF
TkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HRU9M
T0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTUFHRV9SRVNJWkVSKSAk
KEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxF
X0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVURVJfVEFH
KSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElP
TlMpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUlVCWSkgJChFTkFCTEVfU0FOREJP
WCkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0FO
SU1BVElPTikgJChFTkFCTEVfU1ZHX0FTX0lNQUdFKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklO
RElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUKSAk
KEVOQUJMRV9TVkdfVVNFKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQo
RU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dNTCkgJChFTkFCTEVfV09SS0VSUykgJChFTkFC
TEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQpOworRkVBVFVSRV9ERUZJ
TkVTID0gJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FO
VkFTKSAkKEVOQUJMRV8zRF9DQU5WQVMpICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVf
QkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9H
RU9MT0NBVElPTikgJChFTkFCTEVfREFUQUJBU0UpICQoRU5BQkxFX0RBVEFHUklEKSAkKEVOQUJM
RV9EQVRBTElTVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RP
UllfVVBMT0FEKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRVZFTlRTT1VSQ0UpICQo
RU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GVUxMU0NSRUVO
X0FQSSkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFC
TEVfSU1BR0VfUkVTSVpFUikgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5Q
VVRfU1BFRUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9NQVRITUwp
ICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZG
TElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1JV
QlkpICQoRU5BQkxFX1NBTkRCT1gpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9T
VkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFC
TEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NW
R19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklERU8pICQoRU5B
QkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XTUwpICQoRU5B
QkxFX1dPUktFUlMpICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9Y
U0xUKTsKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShy
ZXZpc2lvbiA2ODIxOSkKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCSh3b3JraW5nIGNvcHkpCkBAIC05MTAsNiArOTEwLDMyIEBACiAJCTQ5MDcwN0U2MTIxOUMw
NDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTA3MDdFNDEyMTlDMDQzMDBEOTBFNTEgLyogQU5H
TEVXZWJLaXRCcmlkZ2UuY3BwICovOyB9OwogCQk0OTA3MDdFNzEyMTlDMDQzMDBEOTBFNTEgLyog
QU5HTEVXZWJLaXRCcmlkZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ5MDcwN0U1MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5o
ICovOyB9OwogCQk0OTIyNzNBMzEwODNCM0IxMDBFRTVDODQgLyogSlNBcnJheUJ1ZmZlclZpZXdD
dXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDkyMjczQTIxMDgzQjNCMTAwRUU1Qzg0IC8qIEpTQXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmNwcCAq
LzsgfTsKKwkJNDkyNDhGMTMxMjRBOEM3MjAwODM2MTEwIC8qIERyYXdpbmdCdWZmZXJNYWMubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzE1MjEy
NDNGOUZBMDAyMjI2QkEgLyogRHJhd2luZ0J1ZmZlck1hYy5tbSAqLzsgfTsKKwkJNDkyNDhGMTQx
MjRBOEM5NDAwODM2MTEwIC8qIFNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODc3MEQxMTI0MkM1MzUwMDIy
MjZCQSAvKiBTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHAgKi87IH07CisJCTQ5MjQ4RjE1MTI0
QThDOTYwMDgzNjExMCAvKiBTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4NzcwRDIxMjQyQzUzNTAwMjIyNkJB
IC8qIFNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmggKi87IH07CisJCTQ5MjQ4RjE2MTI0QThDOTgw
MDgzNjExMCAvKiBTb2xpZEZpbGxTaGFkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4NzcwRDMxMjQyQzUzNTAwMjIyNkJBIC8qIFNvbGlkRmls
bFNoYWRlci5jcHAgKi87IH07CisJCTQ5MjQ4RjE3MTI0QThDOTkwMDgzNjExMCAvKiBTb2xpZEZp
bGxTaGFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ5ODc3MEQ0MTI0MkM1MzUwMDIyMjZCQSAvKiBTb2xpZEZpbGxTaGFkZXIuaCAqLzsgfTsKKwkJ
NDkyNDhGMTgxMjRBOENBMTAwODM2MTEwIC8qIFRleFNoYWRlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzBENTEyNDJDNTM1MDAyMjI2QkEg
LyogVGV4U2hhZGVyLmNwcCAqLzsgfTsKKwkJNDkyNDhGMTkxMjRBOENBMjAwODM2MTEwIC8qIFRl
eFNoYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDk4NzcwRDYxMjQyQzUzNTAwMjIyNkJBIC8qIFRleFNoYWRlci5oICovOyB9OworCQk0OTI0OEYx
QTEyNEE4Q0E0MDA4MzYxMTAgLyogVGV4dHVyZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzBENzEyNDJDNTM1MDAyMjI2QkEgLyogVGV4dHVy
ZS5jcHAgKi87IH07CisJCTQ5MjQ4RjFCMTI0QThDQTUwMDgzNjExMCAvKiBUZXh0dXJlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzBEODEyNDJD
NTM1MDAyMjI2QkEgLyogVGV4dHVyZS5oICovOyB9OworCQk0OTI0OEYxQzEyNEE4Q0E2MDA4MzYx
MTAgLyogVGlsaW5nRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0OTg3NzBEOTEyNDJDNTM1MDAyMjI2QkEgLyogVGlsaW5nRGF0YS5jcHAgKi87
IH07CisJCTQ5MjQ4RjFEMTI0QThDRTMwMDgzNjExMCAvKiBUaWxpbmdEYXRhLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzBEQTEyNDJDNTM1MDAy
MjI2QkEgLyogVGlsaW5nRGF0YS5oICovOyB9OworCQk0OTI0OEYxRTEyNEE4RDIzMDA4MzYxMTAg
LyogU2hhZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0OTg3NzBEMDEyNDJDNTM1MDAyMjI2QkEgLyogU2hhZGVyLmggKi87IH07CisJCTQ5MjhCRTgw
MTI0QThEOEEwMEQ5N0I2QSAvKiBEcmF3aW5nQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODc3MEMyMTI0MkM1MzUwMDIyMjZCQSAvKiBE
cmF3aW5nQnVmZmVyLmNwcCAqLzsgfTsKKwkJNDkyOEJFODExMjRBOEQ4QzAwRDk3QjZBIC8qIERy
YXdpbmdCdWZmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ5ODc3MEMzMTI0MkM1MzUwMDIyMjZCQSAvKiBEcmF3aW5nQnVmZmVyLmggKi87IH07CisJ
CTQ5MjhCRTgyMTI0QThEOEQwMEQ5N0I2QSAvKiBMb29wQmxpbm5DbGFzc2lmaWVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODc3MEM0MTI0MkM1
MzUwMDIyMjZCQSAvKiBMb29wQmxpbm5DbGFzc2lmaWVyLmNwcCAqLzsgfTsKKwkJNDkyOEJFODMx
MjRBOEQ4RjAwRDk3QjZBIC8qIExvb3BCbGlubkNsYXNzaWZpZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODc3MEM1MTI0MkM1MzUwMDIyMjZCQSAv
KiBMb29wQmxpbm5DbGFzc2lmaWVyLmggKi87IH07CisJCTQ5MjhCRTg0MTI0QThEOTAwMEQ5N0I2
QSAvKiBMb29wQmxpbm5Db25zdGFudHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ5ODc3MEM2MTI0MkM1MzUwMDIyMjZCQSAvKiBMb29wQmxpbm5Db25z
dGFudHMuaCAqLzsgfTsKKwkJNDkyOEJFODUxMjRBOEQ5MTAwRDk3QjZBIC8qIExvb3BCbGlubk1h
dGhVdGlscy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0OTg3NzBDNzEyNDJDNTM1MDAyMjI2QkEgLyogTG9vcEJsaW5uTWF0aFV0aWxzLmNwcCAqLzsg
fTsKKwkJNDkyOEJFODYxMjRBOEQ5MzAwRDk3QjZBIC8qIExvb3BCbGlubk1hdGhVdGlscy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4NzcwQzgxMjQy
QzUzNTAwMjIyNkJBIC8qIExvb3BCbGlubk1hdGhVdGlscy5oICovOyB9OworCQk0OTI4QkU4NzEy
NEE4RDk0MDBEOTdCNkEgLyogTG9vcEJsaW5uVGV4dHVyZUNvb3Jkcy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzBDOTEyNDJDNTM1MDAyMjI2
QkEgLyogTG9vcEJsaW5uVGV4dHVyZUNvb3Jkcy5jcHAgKi87IH07CisJCTQ5MjhCRTg4MTI0QThE
OTUwMEQ5N0I2QSAvKiBMb29wQmxpbm5UZXh0dXJlQ29vcmRzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzBDQTEyNDJDNTM1MDAyMjI2QkEgLyog
TG9vcEJsaW5uVGV4dHVyZUNvb3Jkcy5oICovOyB9OworCQk0OTI4QkU4OTEyNEE4RDk2MDBEOTdC
NkEgLyogUE9EQXJlbmEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ5ODc3MENCMTI0MkM1MzUwMDIyMjZCQSAvKiBQT0RBcmVuYS5oICovOyB9OworCQk0
OTI4QkU4QTEyNEE4RDk4MDBEOTdCNkEgLyogUE9ESW50ZXJ2YWwuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODc3MENDMTI0MkM1MzUwMDIyMjZCQSAv
KiBQT0RJbnRlcnZhbC5oICovOyB9OworCQk0OTI4QkU4QjEyNEE4RDlDMDBEOTdCNkEgLyogUE9E
SW50ZXJ2YWxUcmVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0OTg3NzBDRDEyNDJDNTM1MDAyMjI2QkEgLyogUE9ESW50ZXJ2YWxUcmVlLmggKi87IH07
CisJCTQ5MjhCRThDMTI0QThEOUUwMEQ5N0I2QSAvKiBQT0RSZWRCbGFja1RyZWUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODc3MENFMTI0MkM1MzUw
MDIyMjZCQSAvKiBQT0RSZWRCbGFja1RyZWUuaCAqLzsgfTsKKwkJNDkyOEJFOEQxMjRBOEQ5RjAw
RDk3QjZBIC8qIFNoYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0OTg3NzBDRjEyNDJDNTM1MDAyMjI2QkEgLyogU2hhZGVyLmNwcCAqLzsgfTsK
IAkJNDk0ODRGQzExMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc0dyYWRpZW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5NDg0RkIzMTAyQ0YyM0Mw
MDE4N0REMyAvKiBDYW52YXNHcmFkaWVudC5jcHAgKi87IH07CiAJCTQ5NDg0RkMyMTAyQ0YyM0Mw
MDE4N0REMyAvKiBDYW52YXNHcmFkaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDk0ODRGQjQxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc0dyYWRp
ZW50LmggKi87IH07CiAJCTQ5NDg0RkM0MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNQYXR0ZXJu
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5NDg0
RkI2MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNQYXR0ZXJuLmNwcCAqLzsgfTsKQEAgLTI3Nzcs
NyArMjgwMyw2IEBACiAJCTk3M0UzMjU2MTA4ODNCN0MwMDVCQzQ5MyAvKiBSZXNvdXJjZUxvYWRO
b3RpZmllci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5NzNFMzI1NDEwODgzQjdDMDA1QkM0OTMgLyogUmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwICov
OyB9OwogCQk5NzNFMzI1NzEwODgzQjdDMDA1QkM0OTMgLyogUmVzb3VyY2VMb2FkTm90aWZpZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3M0UzMjU1
MTA4ODNCN0MwMDVCQzQ5MyAvKiBSZXNvdXJjZUxvYWROb3RpZmllci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk3NkQ2Qzc3MTIyQjhBM0QwMDFG
RDFGNyAvKiBBc3luY0ZpbGVXcml0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk3NkQ2QzU4MTIyQjhBM0QwMDFGRDFGNyAvKiBBc3luY0ZpbGVXcml0
ZXIuaCAqLzsgfTsKLQkJOTc2RDZDOTMxMjJCOEEzRDAwMUZEMUY3IC8qIEFzeW5jRmlsZVdyaXRl
ckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTc2RDZDNzQxMjJCOEEzRDAwMUZEMUY3IC8qIEFzeW5jRmlsZVdyaXRlckNsaWVudC5oICovOyB9
OwogCQk5NzZENkM3ODEyMkI4QTNEMDAxRkQxRjcgLyogQmxvYi5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzZENkM1OTEyMkI4QTNEMDAxRkQxRjcg
LyogQmxvYi5jcHAgKi87IH07CiAJCTk3NkQ2Qzc5MTIyQjhBM0QwMDFGRDFGNyAvKiBCbG9iLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzZENkM1QTEy
MkI4QTNEMDAxRkQxRjcgLyogQmxvYi5oICovOyB9OwogCQk5NzZENkM3QjEyMkI4QTNEMDAxRkQx
RjcgLyogQmxvYkJ1aWxkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTc2RDZDNUMxMjJCOEEzRDAwMUZEMUY3IC8qIEJsb2JCdWlsZGVyLmNwcCAq
LzsgfTsKQEAgLTI3OTgsNiArMjgyMyw3IEBACiAJCTk3NkQ2QzhGMTIyQjhBM0QwMDFGRDFGNyAv
KiBGaWxlVGhyZWFkVGFzay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTc2RDZDNzAxMjJCOEEzRDAwMUZEMUY3IC8qIEZpbGVUaHJlYWRUYXNrLmggKi87
IH07CiAJCTk3NkQ2QzkwMTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlV3JpdGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NkQ2QzcxMTIyQjhBM0Qw
MDFGRDFGNyAvKiBGaWxlV3JpdGVyLmNwcCAqLzsgfTsKIAkJOTc2RDZDOTExMjJCOEEzRDAwMUZE
MUY3IC8qIEZpbGVXcml0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk3NkQ2QzcyMTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlV3JpdGVyLmggKi87IH07
CisJCTk3NkQ2QzkzMTIyQjhBM0QwMDFGRDFGNyAvKiBBc3luY0ZpbGVXcml0ZXJDbGllbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NkQ2Qzc0MTIy
QjhBM0QwMDFGRDFGNyAvKiBBc3luY0ZpbGVXcml0ZXJDbGllbnQuaCAqLzsgfTsKIAkJOTc2RDZD
OTQxMjJCOEEzRDAwMUZEMUY3IC8qIFRocmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc2RDZDNzUxMjJCOEEzRDAw
MUZEMUY3IC8qIFRocmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwICovOyB9OwogCQk5NzZENkM5NTEy
MkI4QTNEMDAxRkQxRjcgLyogVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc2RDZDNzYxMjJCOEEzRDAwMUZEMUY3
IC8qIFRocmVhZGFibGVCbG9iUmVnaXN0cnkuaCAqLzsgfTsKIAkJOTc3QjM3MjMxMjI4NzIxNzAw
QjgxRkY4IC8qIEhUTUxFbGVtZW50U3RhY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTc3QjM3MUYxMjI4NzIxNzAwQjgxRkY4IC8qIEhUTUxFbGVt
ZW50U3RhY2suY3BwICovOyB9OwpAQCAtNjgzMSw2ICs2ODU3LDMyIEBACiAJCTQ5ODM5MTU1MEYx
RTc3NjkwMEMyMzc4MiAvKiBXZWJLaXRDU1NNYXRyaXguY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViS2l0Q1NTTWF0cml4LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDk4MzkxNTYwRjFFNzc2OTAwQzIzNzgyIC8qIFdlYktpdENTU01hdHJpeC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXRDU1NNYXRyaXguaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDk4MzkxNTcwRjFFNzc2OTAwQzIzNzgyIC8qIFdl
YktpdENTU01hdHJpeC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViS2l0Q1NTTWF0cml4
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDk4NzcwQzIxMjQyQzUzNTAwMjIy
NkJBIC8qIERyYXdpbmdCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gRHJhd2luZ0J1ZmZlci5jcHA7IHBhdGggPSBncHUvRHJhd2luZ0J1ZmZlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5ODc3MEMzMTI0MkM1MzUwMDIyMjZCQSAvKiBE
cmF3aW5nQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERyYXdpbmdC
dWZmZXIuaDsgcGF0aCA9IGdwdS9EcmF3aW5nQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQ5ODc3MEM0MTI0MkM1MzUwMDIyMjZCQSAvKiBMb29wQmxpbm5DbGFzc2lmaWVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExvb3BCbGlubkNsYXNz
aWZpZXIuY3BwOyBwYXRoID0gZ3B1L0xvb3BCbGlubkNsYXNzaWZpZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0OTg3NzBDNTEyNDJDNTM1MDAyMjI2QkEgLyogTG9vcEJsaW5u
Q2xhc3NpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMb29wQmxpbm5D
bGFzc2lmaWVyLmg7IHBhdGggPSBncHUvTG9vcEJsaW5uQ2xhc3NpZmllci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0OTg3NzBDNjEyNDJDNTM1MDAyMjI2QkEgLyogTG9vcEJsaW5u
Q29uc3RhbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExvb3BCbGlubkNv
bnN0YW50cy5oOyBwYXRoID0gZ3B1L0xvb3BCbGlubkNvbnN0YW50cy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0OTg3NzBDNzEyNDJDNTM1MDAyMjI2QkEgLyogTG9vcEJsaW5uTWF0
aFV0aWxzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExvb3BCbGlu
bk1hdGhVdGlscy5jcHA7IHBhdGggPSBncHUvTG9vcEJsaW5uTWF0aFV0aWxzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDk4NzcwQzgxMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BC
bGlubk1hdGhVdGlscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMb29wQmxp
bm5NYXRoVXRpbHMuaDsgcGF0aCA9IGdwdS9Mb29wQmxpbm5NYXRoVXRpbHMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDk4NzcwQzkxMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BCbGlu
blRleHR1cmVDb29yZHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
TG9vcEJsaW5uVGV4dHVyZUNvb3Jkcy5jcHA7IHBhdGggPSBncHUvTG9vcEJsaW5uVGV4dHVyZUNv
b3Jkcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5ODc3MENBMTI0MkM1MzUw
MDIyMjZCQSAvKiBMb29wQmxpbm5UZXh0dXJlQ29vcmRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IExvb3BCbGlublRleHR1cmVDb29yZHMuaDsgcGF0aCA9IGdwdS9Mb29wQmxp
bm5UZXh0dXJlQ29vcmRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5ODc3MENC
MTI0MkM1MzUwMDIyMjZCQSAvKiBQT0RBcmVuYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBQT0RBcmVuYS5oOyBwYXRoID0gZ3B1L1BPREFyZW5hLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQ5ODc3MENDMTI0MkM1MzUwMDIyMjZCQSAvKiBQT0RJbnRlcnZhbC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQT0RJbnRlcnZhbC5oOyBwYXRoID0g
Z3B1L1BPREludGVydmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5ODc3MENE
MTI0MkM1MzUwMDIyMjZCQSAvKiBQT0RJbnRlcnZhbFRyZWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gUE9ESW50ZXJ2YWxUcmVlLmg7IHBhdGggPSBncHUvUE9ESW50ZXJ2YWxU
cmVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5ODc3MENFMTI0MkM1MzUwMDIy
MjZCQSAvKiBQT0RSZWRCbGFja1RyZWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gUE9EUmVkQmxhY2tUcmVlLmg7IHBhdGggPSBncHUvUE9EUmVkQmxhY2tUcmVlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5ODc3MENGMTI0MkM1MzUwMDIyMjZCQSAvKiBTaGFk
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU2hhZGVyLmNwcDsg
cGF0aCA9IGdwdS9TaGFkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTg3
NzBEMDEyNDJDNTM1MDAyMjI2QkEgLyogU2hhZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFNoYWRlci5oOyBwYXRoID0gZ3B1L1NoYWRlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0OTg3NzBEMTEyNDJDNTM1MDAyMjI2QkEgLyogU2hhcmVkR3JhcGhpY3ND
b250ZXh0M0QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU2hhcmVk
R3JhcGhpY3NDb250ZXh0M0QuY3BwOyBwYXRoID0gZ3B1L1NoYXJlZEdyYXBoaWNzQ29udGV4dDNE
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDk4NzcwRDIxMjQyQzUzNTAwMjIy
NkJBIC8qIFNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmg7IHBhdGggPSBncHUvU2hhcmVkR3Jh
cGhpY3NDb250ZXh0M0QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDk4NzcwRDMx
MjQyQzUzNTAwMjIyNkJBIC8qIFNvbGlkRmlsbFNoYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBTb2xpZEZpbGxTaGFkZXIuY3BwOyBwYXRoID0gZ3B1L1NvbGlk
RmlsbFNoYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5ODc3MEQ0MTI0
MkM1MzUwMDIyMjZCQSAvKiBTb2xpZEZpbGxTaGFkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gU29saWRGaWxsU2hhZGVyLmg7IHBhdGggPSBncHUvU29saWRGaWxsU2hhZGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5ODc3MEQ1MTI0MkM1MzUwMDIyMjZC
QSAvKiBUZXhTaGFkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
VGV4U2hhZGVyLmNwcDsgcGF0aCA9IGdwdS9UZXhTaGFkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0OTg3NzBENjEyNDJDNTM1MDAyMjI2QkEgLyogVGV4U2hhZGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFRleFNoYWRlci5oOyBwYXRoID0gZ3B1L1Rl
eFNoYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTg3NzBENzEyNDJDNTM1
MDAyMjI2QkEgLyogVGV4dHVyZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBUZXh0dXJlLmNwcDsgcGF0aCA9IGdwdS9UZXh0dXJlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDk4NzcwRDgxMjQyQzUzNTAwMjIyNkJBIC8qIFRleHR1cmUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVGV4dHVyZS5oOyBwYXRoID0gZ3B1L1RleHR1
cmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDk4NzcwRDkxMjQyQzUzNTAwMjIy
NkJBIC8qIFRpbGluZ0RhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gVGlsaW5nRGF0YS5jcHA7IHBhdGggPSBncHUvVGlsaW5nRGF0YS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQ5ODc3MERBMTI0MkM1MzUwMDIyMjZCQSAvKiBUaWxpbmdEYXRh
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFRpbGluZ0RhdGEuaDsgcGF0aCA9
IGdwdS9UaWxpbmdEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5ODc3MTUy
MTI0M0Y5RkEwMDIyMjZCQSAvKiBEcmF3aW5nQnVmZmVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBuYW1lID0gRHJhd2luZ0J1ZmZlck1hYy5tbTsgcGF0aCA9IGdwdS9t
YWMvRHJhd2luZ0J1ZmZlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDlD
N0I5ODAxMDQyRDJEMzAwMDlENDQ3IC8qIEpTV2ViR0xCdWZmZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTEJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ5QzdCOTgxMTA0MkQyRDMwMDA5RDQ0NyAvKiBKU1dlYkdMQnVmZmVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViR0xCdWZmZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDlDN0I5ODIxMDQyRDJEMzAwMDlENDQ3IC8qIEpT
SW50OEFycmF5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSW50
OEFycmF5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg2NzcsNyArODcyOSw2
IEBACiAJCTk3M0UzMjU0MTA4ODNCN0MwMDVCQzQ5MyAvKiBSZXNvdXJjZUxvYWROb3RpZmllci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXNvdXJjZUxvYWROb3Rp
Zmllci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3M0UzMjU1MTA4ODNCN0Mw
MDVCQzQ5MyAvKiBSZXNvdXJjZUxvYWROb3RpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZXNvdXJjZUxvYWROb3RpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5NzZENkM1ODEyMkI4QTNEMDAxRkQxRjcgLyogQXN5bmNGaWxlV3JpdGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEFzeW5jRmlsZVdyaXRlci5oOyBwYXRoID0g
ZmlsZWFwaS9Bc3luY0ZpbGVXcml0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
OTc2RDZDNzQxMjJCOEEzRDAwMUZEMUY3IC8qIEFzeW5jRmlsZVdyaXRlckNsaWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBBc3luY0ZpbGVXcml0ZXJDbGllbnQuaDsgcGF0
aCA9IGZpbGVhcGkvQXN5bmNGaWxlV3JpdGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTk3NkQ2QzU5MTIyQjhBM0QwMDFGRDFGNyAvKiBCbG9iLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEJsb2IuY3BwOyBwYXRoID0gZmlsZWFwaS9CbG9i
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc2RDZDNUExMjJCOEEzRDAwMUZE
MUY3IC8qIEJsb2IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQmxvYi5oOyBw
YXRoID0gZmlsZWFwaS9CbG9iLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3NkQ2
QzVDMTIyQjhBM0QwMDFGRDFGNyAvKiBCbG9iQnVpbGRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBCbG9iQnVpbGRlci5jcHA7IHBhdGggPSBmaWxlYXBpL0Jsb2JC
dWlsZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg2OTgsNiArODc0OSw3
IEBACiAJCTk3NkQ2QzcwMTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlVGhyZWFkVGFzay5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGaWxlVGhyZWFkVGFzay5oOyBwYXRoID0gZmls
ZWFwaS9GaWxlVGhyZWFkVGFzay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzZE
NkM3MTEyMkI4QTNEMDAxRkQxRjcgLyogRmlsZVdyaXRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBGaWxlV3JpdGVyLmNwcDsgcGF0aCA9IGZpbGVhcGkvRmlsZVdy
aXRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3NkQ2QzcyMTIyQjhBM0Qw
MDFGRDFGNyAvKiBGaWxlV3JpdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IEZpbGVXcml0ZXIuaDsgcGF0aCA9IGZpbGVhcGkvRmlsZVdyaXRlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5NzZENkM3NDEyMkI4QTNEMDAxRkQxRjcgLyogQXN5bmNGaWxlV3Jp
dGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEFzeW5jRmlsZVdy
aXRlckNsaWVudC5oOyBwYXRoID0gZmlsZWFwaS9Bc3luY0ZpbGVXcml0ZXJDbGllbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc2RDZDNzUxMjJCOEEzRDAwMUZEMUY3IC8qIFRo
cmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5jcHA7IHBhdGggPSBmaWxlYXBpL1RocmVhZGFi
bGVCbG9iUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzZENkM3
NjEyMkI4QTNEMDAxRkQxRjcgLyogVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5Lmg7IHBhdGggPSBm
aWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTc3QjM3MUYxMjI4NzIxNzAwQjgxRkY4IC8qIEhUTUxFbGVtZW50U3RhY2suY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSFRNTEVsZW1lbnRTdGFjay5jcHA7
IHBhdGggPSBwYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xMjE3Myw2ICsxMjIyNSw0NyBAQAogCQkJbmFtZSA9IGNhbnZhczsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTQ5ODc3MEMxMTI0MkM1MEQwMDIyMjZCQSAv
KiBncHUgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTQ5
ODc3MTE2MTI0MkNEN0YwMDIyMjZCQSAvKiBtYWMgKi8sCisJCQkJNDk4NzcwQzIxMjQyQzUzNTAw
MjIyNkJBIC8qIERyYXdpbmdCdWZmZXIuY3BwICovLAorCQkJCTQ5ODc3MEMzMTI0MkM1MzUwMDIy
MjZCQSAvKiBEcmF3aW5nQnVmZmVyLmggKi8sCisJCQkJNDk4NzcwQzQxMjQyQzUzNTAwMjIyNkJB
IC8qIExvb3BCbGlubkNsYXNzaWZpZXIuY3BwICovLAorCQkJCTQ5ODc3MEM1MTI0MkM1MzUwMDIy
MjZCQSAvKiBMb29wQmxpbm5DbGFzc2lmaWVyLmggKi8sCisJCQkJNDk4NzcwQzYxMjQyQzUzNTAw
MjIyNkJBIC8qIExvb3BCbGlubkNvbnN0YW50cy5oICovLAorCQkJCTQ5ODc3MEM3MTI0MkM1MzUw
MDIyMjZCQSAvKiBMb29wQmxpbm5NYXRoVXRpbHMuY3BwICovLAorCQkJCTQ5ODc3MEM4MTI0MkM1
MzUwMDIyMjZCQSAvKiBMb29wQmxpbm5NYXRoVXRpbHMuaCAqLywKKwkJCQk0OTg3NzBDOTEyNDJD
NTM1MDAyMjI2QkEgLyogTG9vcEJsaW5uVGV4dHVyZUNvb3Jkcy5jcHAgKi8sCisJCQkJNDk4Nzcw
Q0ExMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BCbGlublRleHR1cmVDb29yZHMuaCAqLywKKwkJCQk0
OTg3NzBDQjEyNDJDNTM1MDAyMjI2QkEgLyogUE9EQXJlbmEuaCAqLywKKwkJCQk0OTg3NzBDQzEy
NDJDNTM1MDAyMjI2QkEgLyogUE9ESW50ZXJ2YWwuaCAqLywKKwkJCQk0OTg3NzBDRDEyNDJDNTM1
MDAyMjI2QkEgLyogUE9ESW50ZXJ2YWxUcmVlLmggKi8sCisJCQkJNDk4NzcwQ0UxMjQyQzUzNTAw
MjIyNkJBIC8qIFBPRFJlZEJsYWNrVHJlZS5oICovLAorCQkJCTQ5ODc3MENGMTI0MkM1MzUwMDIy
MjZCQSAvKiBTaGFkZXIuY3BwICovLAorCQkJCTQ5ODc3MEQwMTI0MkM1MzUwMDIyMjZCQSAvKiBT
aGFkZXIuaCAqLywKKwkJCQk0OTg3NzBEMTEyNDJDNTM1MDAyMjI2QkEgLyogU2hhcmVkR3JhcGhp
Y3NDb250ZXh0M0QuY3BwICovLAorCQkJCTQ5ODc3MEQyMTI0MkM1MzUwMDIyMjZCQSAvKiBTaGFy
ZWRHcmFwaGljc0NvbnRleHQzRC5oICovLAorCQkJCTQ5ODc3MEQzMTI0MkM1MzUwMDIyMjZCQSAv
KiBTb2xpZEZpbGxTaGFkZXIuY3BwICovLAorCQkJCTQ5ODc3MEQ0MTI0MkM1MzUwMDIyMjZCQSAv
KiBTb2xpZEZpbGxTaGFkZXIuaCAqLywKKwkJCQk0OTg3NzBENTEyNDJDNTM1MDAyMjI2QkEgLyog
VGV4U2hhZGVyLmNwcCAqLywKKwkJCQk0OTg3NzBENjEyNDJDNTM1MDAyMjI2QkEgLyogVGV4U2hh
ZGVyLmggKi8sCisJCQkJNDk4NzcwRDcxMjQyQzUzNTAwMjIyNkJBIC8qIFRleHR1cmUuY3BwICov
LAorCQkJCTQ5ODc3MEQ4MTI0MkM1MzUwMDIyMjZCQSAvKiBUZXh0dXJlLmggKi8sCisJCQkJNDk4
NzcwRDkxMjQyQzUzNTAwMjIyNkJBIC8qIFRpbGluZ0RhdGEuY3BwICovLAorCQkJCTQ5ODc3MERB
MTI0MkM1MzUwMDIyMjZCQSAvKiBUaWxpbmdEYXRhLmggKi8sCisJCQkpOworCQkJbmFtZSA9IGdw
dTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCTQ5ODc3MTE2MTI0MkNEN0Yw
MDIyMjZCQSAvKiBtYWMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0g
KAorCQkJCTQ5ODc3MTUyMTI0M0Y5RkEwMDIyMjZCQSAvKiBEcmF3aW5nQnVmZmVyTWFjLm1tICov
LAorCQkJKTsKKwkJCW5hbWUgPSBtYWM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9
OwogCQk0OUU5MTFCMjBFRjg2RDI3MDA5RDBDQUYgLyogdHJhbnNmb3JtcyAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0xNTk3Miw2ICsxNjA2NSw3IEBACiAJ
CQkJQjI3NTM1MjkwQjA1MzgxNDAwMkNFNjRGIC8qIGNnICovLAogCQkJCUI1MzIwRDY4MTIyQTI0
RTkwMDJEMTQ0MCAvKiBjb2NvYSAqLywKIAkJCQlBNzVFOEI3RjBFMURFMkIwMDA3RjI0ODEgLyog
ZmlsdGVycyAqLywKKwkJCQk0OTg3NzBDMTEyNDJDNTBEMDAyMjI2QkEgLyogZ3B1ICovLAogCQkJ
CUIyNzUzNTQ5MEIwNTM4MTQwMDJDRTY0RiAvKiBtYWMgKi8sCiAJCQkJRkJDMjIwREQxMjM3RkJF
QjAwQkNGNzg4IC8qIG9wZW5nbCAqLywKIAkJCQlGNEVBRjRBQjEwQzc0MjY4MDA5MTAwRDMgLyog
b3BlbnR5cGUgKi8sCkBAIC0yMDU2Nyw2ICsyMDY2MSwyMSBAQAogCQkJCTkzRjE5OUVEMDgyNDVF
NTkwMDFFOUFCQyAvKiBYU0xUUHJvY2Vzc29yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUJFNTEy
RTBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5N0RENEQ4NzBGREY0RDZFMDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNDkyNDhGMTUxMjRBOEM5NjAwODM2MTEwIC8qIFNoYXJlZEdyYXBoaWNzQ29udGV4dDNE
LmggaW4gSGVhZGVycyAqLywKKwkJCQk0OTI0OEYxNzEyNEE4Qzk5MDA4MzYxMTAgLyogU29saWRG
aWxsU2hhZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0OTI0OEYxOTEyNEE4Q0EyMDA4MzYxMTAg
LyogVGV4U2hhZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0OTI0OEYxQjEyNEE4Q0E1MDA4MzYx
MTAgLyogVGV4dHVyZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDkyNDhGMUQxMjRBOENFMzAwODM2
MTEwIC8qIFRpbGluZ0RhdGEuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ5MjQ4RjFFMTI0QThEMjMw
MDgzNjExMCAvKiBTaGFkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ5MjhCRTgxMTI0QThEOEMw
MEQ5N0I2QSAvKiBEcmF3aW5nQnVmZmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0OTI4QkU4MzEy
NEE4RDhGMDBEOTdCNkEgLyogTG9vcEJsaW5uQ2xhc3NpZmllci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNDkyOEJFODQxMjRBOEQ5MDAwRDk3QjZBIC8qIExvb3BCbGlubkNvbnN0YW50cy5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNDkyOEJFODYxMjRBOEQ5MzAwRDk3QjZBIC8qIExvb3BCbGlubk1hdGhV
dGlscy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDkyOEJFODgxMjRBOEQ5NTAwRDk3QjZBIC8qIExv
b3BCbGlublRleHR1cmVDb29yZHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ5MjhCRTg5MTI0QThE
OTYwMEQ5N0I2QSAvKiBQT0RBcmVuYS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDkyOEJFOEExMjRB
OEQ5ODAwRDk3QjZBIC8qIFBPREludGVydmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQk0OTI4QkU4
QjEyNEE4RDlDMDBEOTdCNkEgLyogUE9ESW50ZXJ2YWxUcmVlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk0OTI4QkU4QzEyNEE4RDlFMDBEOTdCNkEgLyogUE9EUmVkQmxhY2tUcmVlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4NDczMEQ3NzEyNDhGMEIzMDBEM0E5QzkgLyogRGlzdGFudExpZ2h0U291cmNl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NDczMEQ3OTEyNDhGMEIzMDBEM0E5QzkgLyogRkVDb252
b2x2ZU1hdHJpeC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODQ3MzBEN0IxMjQ4RjBCMzAwRDNBOUM5
IC8qIEZFRGlmZnVzZUxpZ2h0aW5nLmggaW4gSGVhZGVycyAqLywKQEAgLTIzMDQ5LDYgKzIzMTU4
LDE3IEBACiAJCQkJOTNGMTlCMDUwODI0NUU1OTAwMUU5QUJDIC8qIFhTTFRQcm9jZXNzb3JMaWJ4
c2x0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxQkU1MTJEMENGNkM1MTIwMDJFQTk1OSAvKiBY
U0xUVW5pY29kZVNvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTdERDREODYwRkRGNEQ2RTAw
RUNGOUE0IC8qIFhTU0F1ZGl0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDkyNDhGMTMxMjRB
OEM3MjAwODM2MTEwIC8qIERyYXdpbmdCdWZmZXJNYWMubW0gaW4gU291cmNlcyAqLywKKwkJCQk0
OTI0OEYxNDEyNEE4Qzk0MDA4MzYxMTAgLyogU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJNDkyNDhGMTYxMjRBOEM5ODAwODM2MTEwIC8qIFNvbGlkRmlsbFNo
YWRlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0OTI0OEYxODEyNEE4Q0ExMDA4MzYxMTAgLyog
VGV4U2hhZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQ5MjQ4RjFBMTI0QThDQTQwMDgzNjEx
MCAvKiBUZXh0dXJlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQ5MjQ4RjFDMTI0QThDQTYwMDgz
NjExMCAvKiBUaWxpbmdEYXRhLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQ5MjhCRTgwMTI0QThE
OEEwMEQ5N0I2QSAvKiBEcmF3aW5nQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQ5MjhC
RTgyMTI0QThEOEQwMEQ5N0I2QSAvKiBMb29wQmxpbm5DbGFzc2lmaWVyLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTQ5MjhCRTg1MTI0QThEOTEwMEQ5N0I2QSAvKiBMb29wQmxpbm5NYXRoVXRpbHMu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDkyOEJFODcxMjRBOEQ5NDAwRDk3QjZBIC8qIExvb3BC
bGlublRleHR1cmVDb29yZHMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDkyOEJFOEQxMjRBOEQ5
RjAwRDk3QjZBIC8qIFNoYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NDczMEQ3ODEyNDhG
MEIzMDBEM0E5QzkgLyogRkVDb252b2x2ZU1hdHJpeC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4
NDczMEQ3QTEyNDhGMEIzMDBEM0E5QzkgLyogRkVEaWZmdXNlTGlnaHRpbmcuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJODQ3MzBEN0MxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFRGlzcGxhY2VtZW50TWFw
LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
RHJhd2luZ0J1ZmZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvRHJhd2luZ0J1ZmZlci5jcHAJKHJldmlzaW9uIDY4MjE5KQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvRHJhd2luZ0J1ZmZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMw
LDkgKzMwLDEwIEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAorI2lmIEVOQUJMRShBQ0NFTEVS
QVRFRF8yRF9DQU5WQVMpCisKICNpbmNsdWRlICJEcmF3aW5nQnVmZmVyLmgiCiAKLSNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHQzRC5oIgogI2luY2x1ZGUgIlNoYXJlZEdyYXBoaWNzQ29udGV4dDNE
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU4LDMgKzU5LDUgQEAgdm9pZCBEcmF3aW5n
QnVmZmVyOjpzZXRXaWxsUHVibGlzaENhbGxiYQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvRHJhd2luZ0J1
ZmZlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0RyYXdp
bmdCdWZmZXIuaAkocmV2aXNpb24gNjgyMTkpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9EcmF3aW5nQnVmZmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNp
Zm5kZWYgRHJhd2luZ0J1ZmZlcl9oCiAjZGVmaW5lIERyYXdpbmdCdWZmZXJfaAogCisjaW5jbHVk
ZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCiAjaW5j
bHVkZSAiSW50U2l6ZS5oIgogCkBAIC00MSw4ICs0Miw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOwotCi1zdHJ1Y3QgRHJhd2luZ0J1ZmZl
ckludGVybmFsOworY2xhc3MgRHJhd2luZ0J1ZmZlckludGVybmFsOwogCiAvLyBNYW5hZ2VzIGEg
cmVuZGVyaW5nIHRhcmdldCAoZnJhbWVidWZmZXIgKyBhdHRhY2htZW50KSBmb3IgYSBjYW52YXMu
ICBDYW4gcHVibGlzaCBpdHMgcmVuZGVyaW5nCiAvLyByZXN1bHRzIHRvIGEgUGxhdGZvcm1MYXll
ciBmb3IgY29tcG9zaXRpbmcuCkBAIC02NCwxMCArNjQsMTMgQEAgcHVibGljOgogCiAgICAgY2xh
c3MgV2lsbFB1Ymxpc2hDYWxsYmFjayA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiAgICAgcHVibGlj
OgorICAgICAgICB2aXJ0dWFsIH5XaWxsUHVibGlzaENhbGxiYWNrKCkgeyB9CisgICAgICAgIAog
ICAgICAgICB2aXJ0dWFsIHZvaWQgd2lsbFB1Ymxpc2goKSA9IDA7CiAgICAgfTsKIAogICAgIHZv
aWQgc2V0V2lsbFB1Ymxpc2hDYWxsYmFjayhQYXNzT3duUHRyPFdpbGxQdWJsaXNoQ2FsbGJhY2s+
KTsKKwogcHJpdmF0ZToKICAgICBEcmF3aW5nQnVmZmVyKFNoYXJlZEdyYXBoaWNzQ29udGV4dDNE
KiwgY29uc3QgSW50U2l6ZSYsIHVuc2lnbmVkIGZyYW1lYnVmZmVyKTsKIApJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvTG9vcEJsaW5uQ2xhc3NpZmllci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvTG9vcEJsaW5uQ2xhc3NpZmllci5j
cHAJKHJldmlzaW9uIDY4MjE5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvTG9v
cEJsaW5uQ2xhc3NpZmllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDggQEAKIAog
I2luY2x1ZGUgImNvbmZpZy5oIgogCisjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykK
KwogI2luY2x1ZGUgIkxvb3BCbGlubkNsYXNzaWZpZXIuaCIKIAogI2luY2x1ZGUgIkxvb3BCbGlu
bk1hdGhVdGlscy5oIgpAQCAtMTIwLDMgKzEyMiw1IEBAIExvb3BCbGlubkNsYXNzaWZpZXI6OlJl
c3VsdCBMb29wQmxpbm5DbGEKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYK
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0xvb3BCbGlubk1hdGhVdGlscy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvTG9vcEJsaW5u
TWF0aFV0aWxzLmNwcAkocmV2aXNpb24gNjgyMTkpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9Mb29wQmxpbm5NYXRoVXRpbHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwxMiAr
MjUsMTMgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCisjaWYgRU5BQkxFKEFDQ0VMRVJBVEVE
XzJEX0NBTlZBUykKKwogI2luY2x1ZGUgIkxvb3BCbGlubk1hdGhVdGlscy5oIgogCiAjaW5jbHVk
ZSAiRmxvYXRQb2ludC5oIgotI2luY2x1ZGUgIk1hdGhFeHRyYXMuaCIKICNpbmNsdWRlIDxhbGdv
cml0aG0+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+IC8vIGZvciBtZW1jcHkKKyNpbmNsdWRlIDx3dGYv
TWF0aEV4dHJhcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgTG9vcEJsaW5u
TWF0aFV0aWxzIHsKQEAgLTU2MywzICs1NjQsNSBAQCBpbnQgbnVtWFJheUNyb3NzaW5nc0ZvckN1
YmljKGNvbnN0IFhSYXkmCiAKIH0gLy8gbmFtZXNwYWNlIExvb3BCbGlubk1hdGhVdGlscwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0xvb3BCbGlublRleHR1cmVDb29yZHMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0xvb3BCbGlublRleHR1cmVDb29yZHMuY3BwCShyZXZp
c2lvbiA2ODIxOSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0xvb3BCbGlublRl
eHR1cmVDb29yZHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw4IEBACiAKICNpbmNs
dWRlICJjb25maWcuaCIKIAorI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCisKICNp
bmNsdWRlICJMb29wQmxpbm5UZXh0dXJlQ29vcmRzLmgiCiAKICNpbmNsdWRlIDxtYXRoLmg+CkBA
IC0xNjksMyArMTcxLDUgQEAgTG9vcEJsaW5uVGV4dHVyZUNvb3Jkczo6UmVzdWx0IExvb3BCbGlu
bgogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFkZXIuY3BwCShyZXZpc2lvbiA2ODIxOSkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDYgKzI5LDkgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoQUND
RUxFUkFURURfMkRfQ0FOVkFTKQorCiAjaW5jbHVkZSAiU2hhZGVyLmgiCiAKICNpbmNsdWRlICJB
ZmZpbmVUcmFuc2Zvcm0uaCIKQEAgLTEwOSwzICsxMTIsNSBAQCBTaGFkZXI6On5TaGFkZXIoKQog
fQogCiB9CisKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hh
cmVkR3JhcGhpY3NDb250ZXh0M0QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L1NoYXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcAkocmV2aXNpb24gNjgyMTkp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQz
RC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDggQEAKIAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogCisjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKKwogI2luY2x1ZGUgIlNo
YXJlZEdyYXBoaWNzQ29udGV4dDNELmgiCiAKICNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIK
QEAgLTIxNSw4ICsyMTcsOCBAQCB2b2lkIFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjpyZW1vdmVU
ZXh0CiAvLyBzdGF0aWMKIEhhc2hTZXQ8U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QqPiogU2hhcmVk
R3JhcGhpY3NDb250ZXh0M0Q6OmFsbENvbnRleHRzKCkKIHsKLSAgICBzdGF0aWMgT3duUHRyPEhh
c2hTZXQ8U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QqPiA+IHNldChuZXcgSGFzaFNldDxTaGFyZWRH
cmFwaGljc0NvbnRleHQzRCo+KTsKLSAgICByZXR1cm4gc2V0LmdldCgpOworICAgIHN0YXRpYyBI
YXNoU2V0PFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEKj4qIGFsbENvbnRleHRzU2V0ID0gbmV3IEhh
c2hTZXQ8U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QqPjsKKyAgICByZXR1cm4gYWxsQ29udGV4dHNT
ZXQ7CiB9CiAKIApAQCAtMzM0LDMgKzMzNiw1IEBAIGJvb2wgU2hhcmVkR3JhcGhpY3NDb250ZXh0
M0Q6OnBhaW50c0ludG8KIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NvbGlkRmlsbFNoYWRlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvU29saWRGaWxsU2hhZGVy
LmNwcAkocmV2aXNpb24gNjgyMTkpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9T
b2xpZEZpbGxTaGFkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw5IEBACiAgKi8K
IAogI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZB
UykKKwogI2luY2x1ZGUgIlNvbGlkRmlsbFNoYWRlci5oIgogCiAjaW5jbHVkZSAiQ29sb3IuaCIK
QEAgLTg2LDMgKzg5LDUgQEAgdm9pZCBTb2xpZEZpbGxTaGFkZXI6OnVzZShjb25zdCBBZmZpbmVU
cgogfQogCiB9CisKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
VGV4U2hhZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9UZXhTaGFkZXIuY3BwCShyZXZpc2lvbiA2ODIxOSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L1RleFNoYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDkgQEAK
ICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRf
Q0FOVkFTKQorCiAjaW5jbHVkZSAiVGV4U2hhZGVyLmgiCiAKICNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHQzRC5oIgpAQCAtOTMsMyArOTYsNSBAQCB2b2lkIFRleFNoYWRlcjo6dXNlKGNvbnN0IEFm
ZmluZVRyYW5zZm9yCiB9CiAKIH0KKworI2VuZGlmCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9UZXh0dXJlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9UZXh0dXJlLmNwcAkocmV2aXNpb24gNjgyMTkpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9UZXh0dXJlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAs
OCBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRf
Q0FOVkFTKQorCiAjaW5jbHVkZSAiVGV4dHVyZS5oIgogCiAjaW5jbHVkZSAiRmxvYXRSZWN0Lmgi
CkBAIC0yMDYsMyArMjA4LDUgQEAgdm9pZCBUZXh0dXJlOjpiaW5kVGlsZShpbnQgdGlsZSkKIH0K
IAogfQorCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1RleHR1
cmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9UZXh0dXJl
LmgJKHJldmlzaW9uIDY4MjE5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGV4
dHVyZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwxMSArMzEsMTEgQEAKICNpZm5kZWYgVGV4dHVy
ZV9oCiAjZGVmaW5lIFRleHR1cmVfaAogCi0jaW5jbHVkZSAiUmVmQ291bnRlZC5oIgotI2luY2x1
ZGUgIlJlZlB0ci5oIgogI2luY2x1ZGUgIlRpbGluZ0RhdGEuaCIKICNpbmNsdWRlIDx3dGYvT3du
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L1RpbGluZ0RhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L1RpbGluZ0RhdGEuY3BwCShyZXZpc2lvbiA2ODIxOSkKKysrIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L1RpbGluZ0RhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsy
OSw5IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKEFDQ0VMRVJB
VEVEXzJEX0NBTlZBUykKKwogI2luY2x1ZGUgIlRpbGluZ0RhdGEuaCIKIAogI2luY2x1ZGUgIkZs
b2F0UmVjdC5oIgpAQCAtMjIwLDMgKzIyMyw1IEBAIHZvaWQgVGlsaW5nRGF0YTo6aW50ZXJzZWN0
RHJhd1F1YWQoY29uc3QKIH0KIAogfQorCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L21hYy9EcmF3aW5nQnVmZmVyTWFjLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L21hYy9EcmF3aW5nQnVmZmVyTWFjLm1tCShyZXZpc2lv
biAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvbWFjL0RyYXdpbmdCdWZmZXJN
YWMubW0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KworI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCisKKyNpbmNsdWRlICJEcmF3aW5n
QnVmZmVyLmgiCisKKyNpbmNsdWRlICJTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5oIgorI2luY2x1
ZGUgIldlYkdMTGF5ZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKKyNpbXBvcnQg
IkJsb2NrRXhjZXB0aW9ucy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERyYXdp
bmdCdWZmZXJJbnRlcm5hbCB7CitwdWJsaWM6CisgICAgRHJhd2luZ0J1ZmZlckludGVybmFsKCkg
eyB9CisgICAgfkRyYXdpbmdCdWZmZXJJbnRlcm5hbCgpIHsgfQorICAgIAorICAgIFJldGFpblB0
cjxQbGF0Zm9ybUxheWVyPiBtX3BsYXRmb3JtTGF5ZXI7Cit9OworCitEcmF3aW5nQnVmZmVyOjpE
cmF3aW5nQnVmZmVyKFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBjb25zdCBJbnRT
aXplJiBzaXplLCB1bnNpZ25lZCBmcmFtZWJ1ZmZlcikKKyAgICA6IG1fY29udGV4dChjb250ZXh0
KQorICAgICwgbV9zaXplKHNpemUpCisgICAgLCBtX2ZyYW1lYnVmZmVyKGZyYW1lYnVmZmVyKQor
ICAgICwgbV9pbnRlcm5hbChuZXcgRHJhd2luZ0J1ZmZlckludGVybmFsKQoreworICAgIGNvbnRl
eHQtPmJpbmRGcmFtZWJ1ZmZlcihmcmFtZWJ1ZmZlcik7CisKKyAgICAvLyBDcmVhdGUgdGhlIFdl
YkdMTGF5ZXIKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICAgICAgbV9pbnRl
cm5hbC0+bV9wbGF0Zm9ybUxheWVyLmFkb3B0TlMoW1tXZWJHTExheWVyIGFsbG9jXSBpbml0V2l0
aEdyYXBoaWNzQ29udGV4dDNEOjBdKTsKKyNpZm5kZWYgTkRFQlVHCisgICAgICAgIFttX2ludGVy
bmFsLT5tX3BsYXRmb3JtTGF5ZXIuZ2V0KCkgc2V0TmFtZTpAIldlYkdMIExheWVyIl07CisjZW5k
aWYgICAgCisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUworfQorCitEcmF3aW5nQnVmZmVy
Ojp+RHJhd2luZ0J1ZmZlcigpCit7CisgICAgbV9jb250ZXh0LT5iaW5kRnJhbWVidWZmZXIobV9m
cmFtZWJ1ZmZlcik7CisgICAgbV9jb250ZXh0LT5kZWxldGVGcmFtZWJ1ZmZlcihtX2ZyYW1lYnVm
ZmVyKTsKK30KKwordm9pZCBEcmF3aW5nQnVmZmVyOjpyZXNldChjb25zdCBJbnRTaXplJiBuZXdT
aXplKQoreworICAgIGlmIChtX3NpemUgPT0gbmV3U2l6ZSkKKyAgICAgICAgcmV0dXJuOworICAg
IG1fc2l6ZSA9IG5ld1NpemU7CisKKyAgICBtX2NvbnRleHQtPnRleEltYWdlMkQoR3JhcGhpY3ND
b250ZXh0M0Q6OlRFWFRVUkVfMkQsIDAsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBLCBtX3NpemUu
d2lkdGgoKSwgbV9zaXplLmhlaWdodCgpLCAwLCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSwgR3Jh
cGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX0JZVEUsIDApOworfQorCisjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQorUGxhdGZvcm1MYXllciogRHJhd2luZ0J1ZmZlcjo6cGxhdGZvcm1M
YXllcigpCit7CisgICAgcmV0dXJuIG1faW50ZXJuYWwtPm1fcGxhdGZvcm1MYXllci5nZXQoKTsK
K30KKyNlbmRpZgorCit9CisKKyNlbmRpZgpJbmRleDogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gNjgyMTkpCisrKyBX
ZWJLaXRUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAx
MC0wOS0yMiAgQ2hyaXMgTWFycmluICA8Y21hcnJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSAyRCBhY2NlbGVyYXRlZCBj
YW52YXMgcmVuZGVyaW5nIGJ1aWxkIG9uIE1hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDYwMDcKKworICAgICAgICBBZGRlZCBBQ0NFTEVSQVRFRF8y
RF9DQU5WQVMgZmxhZyB0byBidWlsZC13ZWJraXQuIEN1cnJlbnRseSBvZmYgYnkgZGVmYXVsdC4K
KworICAgICAgICAqIFNjcmlwdHMvYnVpbGQtd2Via2l0OgorCiAyMDEwLTA5LTIzICBUb255IENo
YW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBH
bGF6a292LgpJbmRleDogV2ViS2l0VG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0VG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQJKHJldmlzaW9uIDY4MjE5KQor
KysgV2ViS2l0VG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQJKHdvcmtpbmcgY29weSkKQEAgLTU3
LDcgKzU3LDcgQEAgbXkgJHByZWZpeFBhdGg7CiBteSAkbWFrZUFyZ3M7CiBteSAkc3RhcnRUaW1l
ID0gdGltZSgpOwogCi1teSAoJGxpbmtQcmVmZXRjaFN1cHBvcnQsICR0aHJlZURDYW52YXNTdXBw
b3J0LCAkdGhyZWVEUmVuZGVyaW5nU3VwcG9ydCwgJGNoYW5uZWxNZXNzYWdpbmdTdXBwb3J0LCAk
Y2xpZW50QmFzZWRHZW9sb2NhdGlvblN1cHBvcnQsICRkYXRhYmFzZVN1cHBvcnQsICRkYXRhZ3Jp
ZFN1cHBvcnQsICRkYXRhbGlzdFN1cHBvcnQsCitteSAoJGxpbmtQcmVmZXRjaFN1cHBvcnQsICRh
Y2NlbGVyYXRlZDJkQ2FudmFzU3VwcG9ydCwgJHRocmVlRENhbnZhc1N1cHBvcnQsICR0aHJlZURS
ZW5kZXJpbmdTdXBwb3J0LCAkY2hhbm5lbE1lc3NhZ2luZ1N1cHBvcnQsICRjbGllbnRCYXNlZEdl
b2xvY2F0aW9uU3VwcG9ydCwgJGRhdGFiYXNlU3VwcG9ydCwgJGRhdGFncmlkU3VwcG9ydCwgJGRh
dGFsaXN0U3VwcG9ydCwKICAgICAkZG9tU3RvcmFnZVN1cHBvcnQsICRldmVudHNvdXJjZVN1cHBv
cnQsICRmaWx0ZXJzU3VwcG9ydCwgJGdlb2xvY2F0aW9uU3VwcG9ydCwgJGljb25EYXRhYmFzZVN1
cHBvcnQsICRpbWFnZVJlc2l6ZXJTdXBwb3J0LCAkaW5kZXhlZERhdGFiYXNlU3VwcG9ydCwgJGlu
cHV0U3BlZWNoU3VwcG9ydCwKICAgICAkamF2YVNjcmlwdERlYnVnZ2VyU3VwcG9ydCwgJG1hdGht
bFN1cHBvcnQsICRvZmZsaW5lV2ViQXBwbGljYXRpb25TdXBwb3J0LCAkcnVieVN1cHBvcnQsICRz
eXN0ZW1NYWxsb2NTdXBwb3J0LCAkc2FuZGJveFN1cHBvcnQsICRzaGFyZWRXb3JrZXJzU3VwcG9y
dCwKICAgICAkc3ZnU3VwcG9ydCwgJHN2Z0FuaW1hdGlvblN1cHBvcnQsICRzdmdBc0ltYWdlU3Vw
cG9ydCwgJHN2Z0RPTU9iakNCaW5kaW5nc1N1cHBvcnQsICRzdmdGb250c1N1cHBvcnQsCkBAIC02
OSw2ICs2OSw5IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICB7IG9wdGlvbiA9PiAibGluay1wcmVm
ZXRjaCIsIGRlc2MgPT4gIlRvZ2dsZSBwcmUgZmV0Y2hpbmcgc3VwcG9ydCIsCiAgICAgICBkZWZp
bmUgPT4gIkVOQUJMRV9MSU5LX1BSRUZFVENIIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGxp
bmtQcmVmZXRjaFN1cHBvcnQgfSwKIAorICAgIHsgb3B0aW9uID0+ICJhY2NlbGVyYXRlZC0yZC1j
YW52YXMiLCBkZXNjID0+ICJUb2dnbGUgYWNjZWxlcmF0ZWQgMkQgY2FudmFzIHN1cHBvcnQiLAor
ICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTIiwgZGVmYXVsdCA9
PiAwLCB2YWx1ZSA9PiBcJGFjY2VsZXJhdGVkMmRDYW52YXNTdXBwb3J0IH0sCisKICAgICB7IG9w
dGlvbiA9PiAiM2QtY2FudmFzIiwgZGVzYyA9PiAiVG9nZ2xlIDNEIGNhbnZhcyBzdXBwb3J0IiwK
ICAgICAgIGRlZmluZSA9PiAiRU5BQkxFXzNEX0NBTlZBUyIsIGRlZmF1bHQgPT4gKGlzQXBwbGVN
YWNXZWJLaXQoKSAmJiAhaXNUaWdlcigpICYmICFpc0xlb3BhcmQoKSksIHZhbHVlID0+IFwkdGhy
ZWVEQ2FudmFzU3VwcG9ydCB9LAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69277</attachid>
            <date>2010-09-29 16:50:47 -0700</date>
            <delta_ts>2010-09-29 17:01:01 -0700</delta_ts>
            <desc>Updated patch, with Simon&apos;s issues addressed</desc>
            <filename>46007.patch</filename>
            <type>text/plain</type>
            <size>37822</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDY4NzEyKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDktMjkgIENocmlzIE1h
cnJpbiAgPGNtYXJyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1ha2UgMkQgYWNjZWxlcmF0ZWQgY2FudmFzIHJlbmRlcmluZyBi
dWlsZCBvbiBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQ2MDA3CisgICAgICAgIAorICAgICAgICBBZGRlZCBBQ0NFTEVSQVRFRF8yRF9DQU5WQVMg
dG8gRmVhdHVyZURlZmluZXMKKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnOgorCiAyMDEwLTA5LTI5ICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9D
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZh
U2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkocmV2aXNp
b24gNjg3MDcpCisrKyBKYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsMTEgQEAKIAogRU5BQkxFX0xJ
TktfUFJFRkVUQ0ggPSA7CiAKK0VOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMgPSAkKEVOQUJM
RV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVNfJChSRUFMX1BMQVRGT1JNX05BTUUpKTsKK0VOQUJMRV9B
Q0NFTEVSQVRFRF8yRF9DQU5WQVNfbWFjb3N4ID0gJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FO
VkFTX21hY29zeF8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7CitFTkFCTEVfQUND
RUxFUkFURURfMkRfQ0FOVkFTX21hY29zeF8xMDYwID0gOworRU5BQkxFX0FDQ0VMRVJBVEVEXzJE
X0NBTlZBU19tYWNvc3hfMTA3MCA9IDsKKwogRU5BQkxFXzNEX0NBTlZBUyA9ICQoRU5BQkxFXzNE
X0NBTlZBU18kKFJFQUxfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFXzNEX0NBTlZBU19tYWNvc3gg
PSAkKEVOQUJMRV8zRF9DQU5WQVNfbWFjb3N4XyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFK
T1IpKTsKIEVOQUJMRV8zRF9DQU5WQVNfbWFjb3N4XzEwNjAgPSBFTkFCTEVfM0RfQ0FOVkFTOwpJ
bmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDY4NzEyKQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSw1MiBAQAorMjAxMC0wOS0yOSAgQ2hyaXMgTWFycmluICA8Y21hcnJpbkBhcHBsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFr
ZSAyRCBhY2NlbGVyYXRlZCBjYW52YXMgcmVuZGVyaW5nIGJ1aWxkIG9uIE1hYworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDYwMDcKKworICAgICAgICBB
ZGQgYWNjZWxlcmF0ZWQgMkQgcmVuZGVyaW5nIGZpbGVzIHRvIE1hYyBidWlsZCwgZml4IGJ1aWxk
IGVycm9ycywKKyAgICAgICAgYWRkIGlmZGVmcyB0byBjb21waWxlIG9ubHkgd2hlbiB0aGUgQUND
RUxFUkFURURfMkRfQ0FOVkFTIGZsYWcgaXMKKyAgICAgICAgZW5hYmxlZCwgYW5kIGFkZCBhIHNr
ZWxldG9uIG9mIHRoZSBtYWMgc3BlY2lmaWMgZmlsZSBzbyBpdCBidWlsZHMuCisKKyAgICAgICAg
RHJhd2luZ0J1ZmZlck1hYy5tbSwgdGhlIE1hYyBzcGVjaWZpYyBmaWxlIGRvZXMgbm90aGluZyBy
aWdodCBub3cKKyAgICAgICAgb3RoZXIgdGhhbiBpbml0aWFsaXplIGFuZCBjcmVhdGUgYSBsYXll
ci4gVGhlIHJlc3Qgd2lsbCBiZSBhZGRlZAorICAgICAgICB3aGVuIEkgZG8gdGhlIGFjdHVhbCBp
bXBsZW1lbnRhdGlvbi4gCisKKyAgICAgICAgVGhlIG1vc3Qgc2lnbmlmaWNhbnQgY2hhbmdlIHdh
cyB0byBTaGFyZWRHcmFwaGljc0NvbnRleHQzRCwgd2hpY2gKKyAgICAgICAgaGFkIGEgc3RhdGlj
IGxvY2FsIE93blB0ciBpbiBvbmUgb2YgdGhlIG1ldGhvZHMuIFRoaXMgd2FzIGNhdXNpbmcKKyAg
ICAgICAgdGhlIGV4aXQgdGltZSBkZXN0cnVjdG9yIHdhcm5pbmcuIEdldHRpbmcgcmlkIG9mIHRo
ZSBPd25QdHIgZml4ZWQKKyAgICAgICAgdGhlIHByb2JsZW0uIFNpbmNlIHRoZSBwb2ludGVyIHRo
YXQgd2FzIGJlaW5nIHdyYXBwZWQgd2FzIHRvIGEKKyAgICAgICAgc3RhdGljIG9iamVjdCB0aGF0
IHdvdWxkIG5ldmVyIGdldCBkZXN0cm95ZWQsIHRoZSBPd25QdHIgd2FzIG5vdAorICAgICAgICBu
ZWNlc3NhcnkuCisKKyAgICAgICAgSSBhbHNvIGFkZGVkIHRoZSBBQ0NFTEVSQVRFRF8yRF9DQU5W
QVMgZmxhZyB0byBidWlsZC13ZWJraXQKKyAgICAgICAgYW5kIEZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnIGZvciBXZWJDb3JlLCBXZWJLaXQgYW5kIEphdmFTY3JpcHRDb3JlLgorICAgICAgICBCdXQg
cmlnaHQgbm93IHRoZSBmbGFnIGlzIG9mZiBieSBkZWZhdWx0LgorCisgICAgICAgICogQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9E
cmF3aW5nQnVmZmVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvRHJhd2lu
Z0J1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6RHJhd2luZ0J1ZmZlcjo6V2lsbFB1Ymxpc2hD
YWxsYmFjazo6fldpbGxQdWJsaXNoQ2FsbGJhY2spOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2dwdS9Mb29wQmxpbm5DbGFzc2lmaWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9ncHUvTG9vcEJsaW5uTWF0aFV0aWxzLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9ncHUvTG9vcEJsaW5uVGV4dHVyZUNvb3Jkcy5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L1NoYWRlci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L1NoYXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEdy
YXBoaWNzQ29udGV4dDNEOjphbGxDb250ZXh0cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L1NvbGlkRmlsbFNoYWRlci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L1RleFNoYWRlci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1RleHR1
cmUuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9UZXh0dXJlLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1RpbGluZ0RhdGEuY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dwdS9tYWM6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2dwdS9tYWMvRHJhd2luZ0J1ZmZlck1hYy5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpEcmF3aW5nQnVmZmVyOjpEcmF3aW5nQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYXdp
bmdCdWZmZXI6On5EcmF3aW5nQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYXdpbmdCdWZm
ZXI6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkRyYXdpbmdCdWZmZXI6OnBsYXRmb3JtTGF5
ZXIpOgorCiAyMDEwLTA5LTI5ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJDb3JlL0NvbmZp
Z3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHJldmlzaW9uIDY4NzA3KQor
KysgV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkod29ya2lu
ZyBjb3B5KQpAQCAtMzMsNiArMzMsMTEgQEAKIAogRU5BQkxFX0xJTktfUFJFRkVUQ0ggPSA7CiAK
K0VOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMgPSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9D
QU5WQVNfJChSRUFMX1BMQVRGT1JNX05BTUUpKTsKK0VOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5W
QVNfbWFjb3N4ID0gJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTX21hY29zeF8kKFRBUkdF
VF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7CitFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFT
X21hY29zeF8xMDYwID0gOworRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBU19tYWNvc3hfMTA3
MCA9IDsKKwogRU5BQkxFXzNEX0NBTlZBUyA9ICQoRU5BQkxFXzNEX0NBTlZBU18kKFJFQUxfUExB
VEZPUk1fTkFNRSkpOwogRU5BQkxFXzNEX0NBTlZBU19tYWNvc3ggPSAkKEVOQUJMRV8zRF9DQU5W
QVNfbWFjb3N4XyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKTsKIEVOQUJMRV8zRF9D
QU5WQVNfbWFjb3N4XzEwNjAgPSBFTkFCTEVfM0RfQ0FOVkFTOwpAQCAtMTIwLDQgKzEyNSw0IEBA
IEVOQUJMRV9YSFRNTE1QID0gOwogRU5BQkxFX1hQQVRIID0gRU5BQkxFX1hQQVRIOwogRU5BQkxF
X1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfTElOS19Q
UkVGRVRDSCkgJChFTkFCTEVfM0RfQ0FOVkFTKSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5B
QkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFT
RURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRBR1JJRCkgJChF
TkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElS
RUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0VWRU5UU09VUkNF
KSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRlVMTFND
UkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQo
RU5BQkxFX0lNQUdFX1JFU0laRVIpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxF
X0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTUFU
SE1MKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxF
X09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJM
RV9SVUJZKSAkKEVOQUJMRV9TQU5EQk9YKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFC
TEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5JTUFUSU9OKSAkKEVOQUJMRV9TVkdfQVNfSU1BR0UpICQo
RU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJM
RV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQoRU5BQkxFX1NWR19VU0UpICQoRU5BQkxFX1ZJREVPKSAk
KEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV01MKSAk
KEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9YUEFUSCkgJChFTkFC
TEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVO
QUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFXzNEX0NBTlZBUykgJChFTkFCTEVf
M0RfUkVOREVSSU5HKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykg
JChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9EQVRBQkFTRSkgJChF
TkFCTEVfREFUQUdSSUQpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5U
QVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAk
KEVOQUJMRV9FVkVOVFNPVVJDRSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRklMRV9TWVNU
RU0pICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFC
TEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTUFHRV9SRVNJWkVSKSAkKEVOQUJMRV9JTkRFWEVE
X0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVC
VUdHRVIpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9OT1RJ
RklDQVRJT05TKSAkKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICQoRU5BQkxFX1BS
T0dSRVNTX1RBRykgJChFTkFCTEVfUlVCWSkgJChFTkFCTEVfU0FOREJPWCkgJChFTkFCTEVfU0hB
UkVEX1dPUktFUlMpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0FOSU1BVElPTikgJChFTkFC
TEVfU1ZHX0FTX0lNQUdFKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxF
X1NWR19GT05UUykgJChFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUKSAkKEVOQUJMRV9TVkdfVVNF
KSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1J
TkcpICQoRU5BQkxFX1dNTCkgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChF
TkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQpOwpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDY4NzA3KQorKysgV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTkzNiw2ICs5MzYs
MzIgQEAKIAkJNDk4MzkxNTIwRjFFNzZCNDAwQzIzNzgyIC8qIERPTVdlYktpdENTU01hdHJpeElu
dGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
OTgzOTE0RjBGMUU3NkI0MDBDMjM3ODIgLyogRE9NV2ViS2l0Q1NTTWF0cml4SW50ZXJuYWwuaCAq
LzsgfTsKIAkJNDk4MzkxNTgwRjFFNzc2OTAwQzIzNzgyIC8qIFdlYktpdENTU01hdHJpeC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTgzOTE1NTBG
MUU3NzY5MDBDMjM3ODIgLyogV2ViS2l0Q1NTTWF0cml4LmNwcCAqLzsgfTsKIAkJNDk4MzkxNTkw
RjFFNzc2OTAwQzIzNzgyIC8qIFdlYktpdENTU01hdHJpeC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4MzkxNTYwRjFFNzc2OTAwQzIzNzgyIC8qIFdl
YktpdENTU01hdHJpeC5oICovOyB9OworCQk0OTg3NzBEQjEyNDJDNTM1MDAyMjI2QkEgLyogRHJh
d2luZ0J1ZmZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0OTg3NzBDMjEyNDJDNTM1MDAyMjI2QkEgLyogRHJhd2luZ0J1ZmZlci5jcHAgKi87IH07
CisJCTQ5ODc3MERDMTI0MkM1MzUwMDIyMjZCQSAvKiBEcmF3aW5nQnVmZmVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzBDMzEyNDJDNTM1MDAy
MjI2QkEgLyogRHJhd2luZ0J1ZmZlci5oICovOyB9OworCQk0OTg3NzBERDEyNDJDNTM1MDAyMjI2
QkEgLyogTG9vcEJsaW5uQ2xhc3NpZmllci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzBDNDEyNDJDNTM1MDAyMjI2QkEgLyogTG9vcEJsaW5u
Q2xhc3NpZmllci5jcHAgKi87IH07CisJCTQ5ODc3MERFMTI0MkM1MzUwMDIyMjZCQSAvKiBMb29w
Qmxpbm5DbGFzc2lmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0OTg3NzBDNTEyNDJDNTM1MDAyMjI2QkEgLyogTG9vcEJsaW5uQ2xhc3NpZmllci5o
ICovOyB9OworCQk0OTg3NzBERjEyNDJDNTM1MDAyMjI2QkEgLyogTG9vcEJsaW5uQ29uc3RhbnRz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzBD
NjEyNDJDNTM1MDAyMjI2QkEgLyogTG9vcEJsaW5uQ29uc3RhbnRzLmggKi87IH07CisJCTQ5ODc3
MEUwMTI0MkM1MzUwMDIyMjZCQSAvKiBMb29wQmxpbm5NYXRoVXRpbHMuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4NzcwQzcxMjQyQzUzNTAwMjIy
NkJBIC8qIExvb3BCbGlubk1hdGhVdGlscy5jcHAgKi87IH07CisJCTQ5ODc3MEUxMTI0MkM1MzUw
MDIyMjZCQSAvKiBMb29wQmxpbm5NYXRoVXRpbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODc3MEM4MTI0MkM1MzUwMDIyMjZCQSAvKiBMb29wQmxp
bm5NYXRoVXRpbHMuaCAqLzsgfTsKKwkJNDk4NzcwRTIxMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BC
bGlublRleHR1cmVDb29yZHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDk4NzcwQzkxMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BCbGlublRleHR1cmVD
b29yZHMuY3BwICovOyB9OworCQk0OTg3NzBFMzEyNDJDNTM1MDAyMjI2QkEgLyogTG9vcEJsaW5u
VGV4dHVyZUNvb3Jkcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDk4NzcwQ0ExMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BCbGlublRleHR1cmVDb29yZHMu
aCAqLzsgfTsKKwkJNDk4NzcwRTQxMjQyQzUzNTAwMjIyNkJBIC8qIFBPREFyZW5hLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzBDQjEyNDJDNTM1
MDAyMjI2QkEgLyogUE9EQXJlbmEuaCAqLzsgfTsKKwkJNDk4NzcwRTUxMjQyQzUzNTAwMjIyNkJB
IC8qIFBPREludGVydmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0OTg3NzBDQzEyNDJDNTM1MDAyMjI2QkEgLyogUE9ESW50ZXJ2YWwuaCAqLzsgfTsK
KwkJNDk4NzcwRTYxMjQyQzUzNTAwMjIyNkJBIC8qIFBPREludGVydmFsVHJlZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4NzcwQ0QxMjQyQzUzNTAw
MjIyNkJBIC8qIFBPREludGVydmFsVHJlZS5oICovOyB9OworCQk0OTg3NzBFNzEyNDJDNTM1MDAy
MjI2QkEgLyogUE9EUmVkQmxhY2tUcmVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzBDRTEyNDJDNTM1MDAyMjI2QkEgLyogUE9EUmVkQmxhY2tU
cmVlLmggKi87IH07CisJCTQ5ODc3MEU4MTI0MkM1MzUwMDIyMjZCQSAvKiBTaGFkZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4NzcwQ0YxMjQy
QzUzNTAwMjIyNkJBIC8qIFNoYWRlci5jcHAgKi87IH07CisJCTQ5ODc3MEU5MTI0MkM1MzUwMDIy
MjZCQSAvKiBTaGFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ5ODc3MEQwMTI0MkM1MzUwMDIyMjZCQSAvKiBTaGFkZXIuaCAqLzsgfTsKKwkJNDk4
NzcwRUExMjQyQzUzNTAwMjIyNkJBIC8qIFNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODc3MEQxMTI0MkM1
MzUwMDIyMjZCQSAvKiBTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHAgKi87IH07CisJCTQ5ODc3
MEVCMTI0MkM1MzUwMDIyMjZCQSAvKiBTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4NzcwRDIxMjQyQzUzNTAw
MjIyNkJBIC8qIFNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmggKi87IH07CisJCTQ5ODc3MEVDMTI0
MkM1MzUwMDIyMjZCQSAvKiBTb2xpZEZpbGxTaGFkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4NzcwRDMxMjQyQzUzNTAwMjIyNkJBIC8qIFNv
bGlkRmlsbFNoYWRlci5jcHAgKi87IH07CisJCTQ5ODc3MEVEMTI0MkM1MzUwMDIyMjZCQSAvKiBT
b2xpZEZpbGxTaGFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ5ODc3MEQ0MTI0MkM1MzUwMDIyMjZCQSAvKiBTb2xpZEZpbGxTaGFkZXIuaCAqLzsg
fTsKKwkJNDk4NzcwRUUxMjQyQzUzNTAwMjIyNkJBIC8qIFRleFNoYWRlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzBENTEyNDJDNTM1MDAy
MjI2QkEgLyogVGV4U2hhZGVyLmNwcCAqLzsgfTsKKwkJNDk4NzcwRUYxMjQyQzUzNTAwMjIyNkJB
IC8qIFRleFNoYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDk4NzcwRDYxMjQyQzUzNTAwMjIyNkJBIC8qIFRleFNoYWRlci5oICovOyB9OworCQk0
OTg3NzBGMDEyNDJDNTM1MDAyMjI2QkEgLyogVGV4dHVyZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzBENzEyNDJDNTM1MDAyMjI2QkEgLyog
VGV4dHVyZS5jcHAgKi87IH07CisJCTQ5ODc3MEYxMTI0MkM1MzUwMDIyMjZCQSAvKiBUZXh0dXJl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzBE
ODEyNDJDNTM1MDAyMjI2QkEgLyogVGV4dHVyZS5oICovOyB9OworCQk0OTg3NzBGMjEyNDJDNTM1
MDAyMjI2QkEgLyogVGlsaW5nRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzBEOTEyNDJDNTM1MDAyMjI2QkEgLyogVGlsaW5nRGF0YS5j
cHAgKi87IH07CisJCTQ5ODc3MEYzMTI0MkM1MzUwMDIyMjZCQSAvKiBUaWxpbmdEYXRhLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzBEQTEyNDJD
NTM1MDAyMjI2QkEgLyogVGlsaW5nRGF0YS5oICovOyB9OworCQk0OTg3NzE1MzEyNDNGOUZBMDAy
MjI2QkEgLyogRHJhd2luZ0J1ZmZlck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODc3MTUyMTI0M0Y5RkEwMDIyMjZCQSAvKiBEcmF3aW5nQnVm
ZmVyTWFjLm1tICovOyB9OwogCQk0OUM3Qjk5MzEwNDJEMkQzMDAwOUQ0NDcgLyogSlNXZWJHTEJ1
ZmZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
OUM3Qjk4MDEwNDJEMkQzMDAwOUQ0NDcgLyogSlNXZWJHTEJ1ZmZlci5jcHAgKi87IH07CiAJCTQ5
QzdCOTk0MTA0MkQyRDMwMDA5RDQ0NyAvKiBKU1dlYkdMQnVmZmVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUM3Qjk4MTEwNDJEMkQzMDAwOUQ0NDcg
LyogSlNXZWJHTEJ1ZmZlci5oICovOyB9OwogCQk0OUM3Qjk5NTEwNDJEMkQzMDAwOUQ0NDcgLyog
SlNJbnQ4QXJyYXkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDlDN0I5ODIxMDQyRDJEMzAwMDlENDQ3IC8qIEpTSW50OEFycmF5LmNwcCAqLzsgfTsK
QEAgLTY4OTcsNiArNjkyMywzMiBAQAogCQk0OTgzOTE1NTBGMUU3NzY5MDBDMjM3ODIgLyogV2Vi
S2l0Q1NTTWF0cml4LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YktpdENTU01hdHJpeC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5ODM5MTU2
MEYxRTc3NjkwMEMyMzc4MiAvKiBXZWJLaXRDU1NNYXRyaXguaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViS2l0Q1NTTWF0cml4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ5ODM5MTU3MEYxRTc3NjkwMEMyMzc4MiAvKiBXZWJLaXRDU1NNYXRyaXguaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYktpdENTU01hdHJpeC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQ5ODc3MEMyMTI0MkM1MzUwMDIyMjZCQSAvKiBEcmF3aW5nQnVmZmVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERyYXdpbmdCdWZmZXIu
Y3BwOyBwYXRoID0gZ3B1L0RyYXdpbmdCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0OTg3NzBDMzEyNDJDNTM1MDAyMjI2QkEgLyogRHJhd2luZ0J1ZmZlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBEcmF3aW5nQnVmZmVyLmg7IHBhdGggPSBncHUv
RHJhd2luZ0J1ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTg3NzBDNDEy
NDJDNTM1MDAyMjI2QkEgLyogTG9vcEJsaW5uQ2xhc3NpZmllci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMb29wQmxpbm5DbGFzc2lmaWVyLmNwcDsgcGF0aCA9IGdw
dS9Mb29wQmxpbm5DbGFzc2lmaWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDk4NzcwQzUxMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BCbGlubkNsYXNzaWZpZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTG9vcEJsaW5uQ2xhc3NpZmllci5oOyBwYXRoID0g
Z3B1L0xvb3BCbGlubkNsYXNzaWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDk4NzcwQzYxMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BCbGlubkNvbnN0YW50cy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMb29wQmxpbm5Db25zdGFudHMuaDsgcGF0aCA9IGdw
dS9Mb29wQmxpbm5Db25zdGFudHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDk4
NzcwQzcxMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BCbGlubk1hdGhVdGlscy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMb29wQmxpbm5NYXRoVXRpbHMuY3BwOyBwYXRo
ID0gZ3B1L0xvb3BCbGlubk1hdGhVdGlscy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQ5ODc3MEM4MTI0MkM1MzUwMDIyMjZCQSAvKiBMb29wQmxpbm5NYXRoVXRpbHMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTG9vcEJsaW5uTWF0aFV0aWxzLmg7IHBhdGgg
PSBncHUvTG9vcEJsaW5uTWF0aFV0aWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQ5ODc3MEM5MTI0MkM1MzUwMDIyMjZCQSAvKiBMb29wQmxpbm5UZXh0dXJlQ29vcmRzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExvb3BCbGlublRleHR1cmVDb29y
ZHMuY3BwOyBwYXRoID0gZ3B1L0xvb3BCbGlublRleHR1cmVDb29yZHMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0OTg3NzBDQTEyNDJDNTM1MDAyMjI2QkEgLyogTG9vcEJsaW5u
VGV4dHVyZUNvb3Jkcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMb29wQmxp
bm5UZXh0dXJlQ29vcmRzLmg7IHBhdGggPSBncHUvTG9vcEJsaW5uVGV4dHVyZUNvb3Jkcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTg3NzBDQjEyNDJDNTM1MDAyMjI2QkEgLyog
UE9EQXJlbmEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUE9EQXJlbmEuaDsg
cGF0aCA9IGdwdS9QT0RBcmVuYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTg3
NzBDQzEyNDJDNTM1MDAyMjI2QkEgLyogUE9ESW50ZXJ2YWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gUE9ESW50ZXJ2YWwuaDsgcGF0aCA9IGdwdS9QT0RJbnRlcnZhbC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTg3NzBDRDEyNDJDNTM1MDAyMjI2QkEgLyog
UE9ESW50ZXJ2YWxUcmVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFBPRElu
dGVydmFsVHJlZS5oOyBwYXRoID0gZ3B1L1BPREludGVydmFsVHJlZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0OTg3NzBDRTEyNDJDNTM1MDAyMjI2QkEgLyogUE9EUmVkQmxhY2tU
cmVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFBPRFJlZEJsYWNrVHJlZS5o
OyBwYXRoID0gZ3B1L1BPRFJlZEJsYWNrVHJlZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0OTg3NzBDRjEyNDJDNTM1MDAyMjI2QkEgLyogU2hhZGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFNoYWRlci5jcHA7IHBhdGggPSBncHUvU2hhZGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDk4NzcwRDAxMjQyQzUzNTAwMjIyNkJB
IC8qIFNoYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTaGFkZXIuaDsg
cGF0aCA9IGdwdS9TaGFkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDk4Nzcw
RDExMjQyQzUzNTAwMjIyNkJBIC8qIFNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmNw
cDsgcGF0aCA9IGdwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQ5ODc3MEQyMTI0MkM1MzUwMDIyMjZCQSAvKiBTaGFyZWRHcmFwaGlj
c0NvbnRleHQzRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTaGFyZWRHcmFw
aGljc0NvbnRleHQzRC5oOyBwYXRoID0gZ3B1L1NoYXJlZEdyYXBoaWNzQ29udGV4dDNELmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5ODc3MEQzMTI0MkM1MzUwMDIyMjZCQSAvKiBT
b2xpZEZpbGxTaGFkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
U29saWRGaWxsU2hhZGVyLmNwcDsgcGF0aCA9IGdwdS9Tb2xpZEZpbGxTaGFkZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTg3NzBENDEyNDJDNTM1MDAyMjI2QkEgLyogU29s
aWRGaWxsU2hhZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFNvbGlkRmls
bFNoYWRlci5oOyBwYXRoID0gZ3B1L1NvbGlkRmlsbFNoYWRlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0OTg3NzBENTEyNDJDNTM1MDAyMjI2QkEgLyogVGV4U2hhZGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFRleFNoYWRlci5jcHA7IHBhdGgg
PSBncHUvVGV4U2hhZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDk4Nzcw
RDYxMjQyQzUzNTAwMjIyNkJBIC8qIFRleFNoYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBUZXhTaGFkZXIuaDsgcGF0aCA9IGdwdS9UZXhTaGFkZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDk4NzcwRDcxMjQyQzUzNTAwMjIyNkJBIC8qIFRleHR1cmUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVGV4dHVyZS5jcHA7IHBh
dGggPSBncHUvVGV4dHVyZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5ODc3
MEQ4MTI0MkM1MzUwMDIyMjZCQSAvKiBUZXh0dXJlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFRleHR1cmUuaDsgcGF0aCA9IGdwdS9UZXh0dXJlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQ5ODc3MEQ5MTI0MkM1MzUwMDIyMjZCQSAvKiBUaWxpbmdEYXRhLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFRpbGluZ0RhdGEuY3BwOyBw
YXRoID0gZ3B1L1RpbGluZ0RhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
OTg3NzBEQTEyNDJDNTM1MDAyMjI2QkEgLyogVGlsaW5nRGF0YS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBUaWxpbmdEYXRhLmg7IHBhdGggPSBncHUvVGlsaW5nRGF0YS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTg3NzE1MjEyNDNGOUZBMDAyMjI2QkEgLyog
RHJhd2luZ0J1ZmZlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFt
ZSA9IERyYXdpbmdCdWZmZXJNYWMubW07IHBhdGggPSBncHUvbWFjL0RyYXdpbmdCdWZmZXJNYWMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5QzdCOTgwMTA0MkQyRDMwMDA5RDQ0
NyAvKiBKU1dlYkdMQnVmZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTV2ViR0xCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OUM3
Qjk4MTEwNDJEMkQzMDAwOUQ0NDcgLyogSlNXZWJHTEJ1ZmZlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU1dlYkdMQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ5QzdCOTgyMTA0MkQyRDMwMDA5RDQ0NyAvKiBKU0ludDhBcnJheS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ludDhBcnJheS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjI5OCw2ICsxMjM1MCw0NyBAQAogCQkJbmFtZSA9IGNh
bnZhczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTQ5ODc3MEMxMTI0MkM1
MEQwMDIyMjZCQSAvKiBncHUgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVu
ID0gKAorCQkJCTQ5ODc3MTE2MTI0MkNEN0YwMDIyMjZCQSAvKiBtYWMgKi8sCisJCQkJNDk4Nzcw
QzIxMjQyQzUzNTAwMjIyNkJBIC8qIERyYXdpbmdCdWZmZXIuY3BwICovLAorCQkJCTQ5ODc3MEMz
MTI0MkM1MzUwMDIyMjZCQSAvKiBEcmF3aW5nQnVmZmVyLmggKi8sCisJCQkJNDk4NzcwQzQxMjQy
QzUzNTAwMjIyNkJBIC8qIExvb3BCbGlubkNsYXNzaWZpZXIuY3BwICovLAorCQkJCTQ5ODc3MEM1
MTI0MkM1MzUwMDIyMjZCQSAvKiBMb29wQmxpbm5DbGFzc2lmaWVyLmggKi8sCisJCQkJNDk4Nzcw
QzYxMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BCbGlubkNvbnN0YW50cy5oICovLAorCQkJCTQ5ODc3
MEM3MTI0MkM1MzUwMDIyMjZCQSAvKiBMb29wQmxpbm5NYXRoVXRpbHMuY3BwICovLAorCQkJCTQ5
ODc3MEM4MTI0MkM1MzUwMDIyMjZCQSAvKiBMb29wQmxpbm5NYXRoVXRpbHMuaCAqLywKKwkJCQk0
OTg3NzBDOTEyNDJDNTM1MDAyMjI2QkEgLyogTG9vcEJsaW5uVGV4dHVyZUNvb3Jkcy5jcHAgKi8s
CisJCQkJNDk4NzcwQ0ExMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BCbGlublRleHR1cmVDb29yZHMu
aCAqLywKKwkJCQk0OTg3NzBDQjEyNDJDNTM1MDAyMjI2QkEgLyogUE9EQXJlbmEuaCAqLywKKwkJ
CQk0OTg3NzBDQzEyNDJDNTM1MDAyMjI2QkEgLyogUE9ESW50ZXJ2YWwuaCAqLywKKwkJCQk0OTg3
NzBDRDEyNDJDNTM1MDAyMjI2QkEgLyogUE9ESW50ZXJ2YWxUcmVlLmggKi8sCisJCQkJNDk4Nzcw
Q0UxMjQyQzUzNTAwMjIyNkJBIC8qIFBPRFJlZEJsYWNrVHJlZS5oICovLAorCQkJCTQ5ODc3MENG
MTI0MkM1MzUwMDIyMjZCQSAvKiBTaGFkZXIuY3BwICovLAorCQkJCTQ5ODc3MEQwMTI0MkM1MzUw
MDIyMjZCQSAvKiBTaGFkZXIuaCAqLywKKwkJCQk0OTg3NzBEMTEyNDJDNTM1MDAyMjI2QkEgLyog
U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuY3BwICovLAorCQkJCTQ5ODc3MEQyMTI0MkM1MzUwMDIy
MjZCQSAvKiBTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5oICovLAorCQkJCTQ5ODc3MEQzMTI0MkM1
MzUwMDIyMjZCQSAvKiBTb2xpZEZpbGxTaGFkZXIuY3BwICovLAorCQkJCTQ5ODc3MEQ0MTI0MkM1
MzUwMDIyMjZCQSAvKiBTb2xpZEZpbGxTaGFkZXIuaCAqLywKKwkJCQk0OTg3NzBENTEyNDJDNTM1
MDAyMjI2QkEgLyogVGV4U2hhZGVyLmNwcCAqLywKKwkJCQk0OTg3NzBENjEyNDJDNTM1MDAyMjI2
QkEgLyogVGV4U2hhZGVyLmggKi8sCisJCQkJNDk4NzcwRDcxMjQyQzUzNTAwMjIyNkJBIC8qIFRl
eHR1cmUuY3BwICovLAorCQkJCTQ5ODc3MEQ4MTI0MkM1MzUwMDIyMjZCQSAvKiBUZXh0dXJlLmgg
Ki8sCisJCQkJNDk4NzcwRDkxMjQyQzUzNTAwMjIyNkJBIC8qIFRpbGluZ0RhdGEuY3BwICovLAor
CQkJCTQ5ODc3MERBMTI0MkM1MzUwMDIyMjZCQSAvKiBUaWxpbmdEYXRhLmggKi8sCisJCQkpOwor
CQkJbmFtZSA9IGdwdTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCTQ5ODc3
MTE2MTI0MkNEN0YwMDIyMjZCQSAvKiBtYWMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJ
CWNoaWxkcmVuID0gKAorCQkJCTQ5ODc3MTUyMTI0M0Y5RkEwMDIyMjZCQSAvKiBEcmF3aW5nQnVm
ZmVyTWFjLm1tICovLAorCQkJKTsKKwkJCW5hbWUgPSBtYWM7CisJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOworCQl9OwogCQk0OUU5MTFCMjBFRjg2RDI3MDA5RDBDQUYgLyogdHJhbnNmb3JtcyAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0xNDc0OSw2ICsx
NDg0Miw3IEBACiAJCUE3NUU4QjdGMEUxREUyQjAwMDdGMjQ4MSAvKiBmaWx0ZXJzICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0OTg3NzBDMTEyNDJDNTBE
MDAyMjI2QkEgLyogZ3B1ICovLAogCQkJCTg0NzMwRDVBMTI0OEYwQjMwMEQzQTlDOSAvKiBEaXN0
YW50TGlnaHRTb3VyY2UuaCAqLywKIAkJCQlBNzVFOEI4MDBFMURFMkQ2MDA3RjI0ODEgLyogRkVC
bGVuZC5jcHAgKi8sCiAJCQkJQTc1RThCODEwRTFERTJENjAwN0YyNDgxIC8qIEZFQmxlbmQuaCAq
LywKQEAgLTIwNzk4LDYgKzIwODkyLDIxIEBACiAJCQkJOTNGMTk5RUQwODI0NUU1OTAwMUU5QUJD
IC8qIFhTTFRQcm9jZXNzb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQkU1MTJFMENGNkM1MTIw
MDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3REQ0RDg3
MEZERjRENkUwMEVDRjlBNCAvKiBYU1NBdWRpdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk0OTg3
NzBEQzEyNDJDNTM1MDAyMjI2QkEgLyogRHJhd2luZ0J1ZmZlci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNDk4NzcwREUxMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BCbGlubkNsYXNzaWZpZXIuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTQ5ODc3MERGMTI0MkM1MzUwMDIyMjZCQSAvKiBMb29wQmxpbm5Db25z
dGFudHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ5ODc3MEUxMTI0MkM1MzUwMDIyMjZCQSAvKiBM
b29wQmxpbm5NYXRoVXRpbHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ5ODc3MEUzMTI0MkM1MzUw
MDIyMjZCQSAvKiBMb29wQmxpbm5UZXh0dXJlQ29vcmRzLmggaW4gSGVhZGVycyAqLywKKwkJCQk0
OTg3NzBFNDEyNDJDNTM1MDAyMjI2QkEgLyogUE9EQXJlbmEuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTQ5ODc3MEU1MTI0MkM1MzUwMDIyMjZCQSAvKiBQT0RJbnRlcnZhbC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNDk4NzcwRTYxMjQyQzUzNTAwMjIyNkJBIC8qIFBPREludGVydmFsVHJlZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNDk4NzcwRTcxMjQyQzUzNTAwMjIyNkJBIC8qIFBPRFJlZEJsYWNrVHJl
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDk4NzcwRTkxMjQyQzUzNTAwMjIyNkJBIC8qIFNoYWRl
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDk4NzcwRUIxMjQyQzUzNTAwMjIyNkJBIC8qIFNoYXJl
ZEdyYXBoaWNzQ29udGV4dDNELmggaW4gSGVhZGVycyAqLywKKwkJCQk0OTg3NzBFRDEyNDJDNTM1
MDAyMjI2QkEgLyogU29saWRGaWxsU2hhZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0OTg3NzBF
RjEyNDJDNTM1MDAyMjI2QkEgLyogVGV4U2hhZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0OTg3
NzBGMTEyNDJDNTM1MDAyMjI2QkEgLyogVGV4dHVyZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDk4
NzcwRjMxMjQyQzUzNTAwMjIyNkJBIC8qIFRpbGluZ0RhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAt
MjMzMTIsNiArMjM0MjEsMTcgQEAKIAkJCQk5M0YxOUIwNTA4MjQ1RTU5MDAxRTlBQkMgLyogWFNM
VFByb2Nlc3NvckxpYnhzbHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFCRTUxMkQwQ0Y2QzUx
MjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5N0RE
NEQ4NjBGREY0RDZFMDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk0OTg3NzBEQjEyNDJDNTM1MDAyMjI2QkEgLyogRHJhd2luZ0J1ZmZlci5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQk0OTg3NzBERDEyNDJDNTM1MDAyMjI2QkEgLyogTG9vcEJsaW5uQ2xhc3NpZmll
ci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0OTg3NzBFMDEyNDJDNTM1MDAyMjI2QkEgLyogTG9v
cEJsaW5uTWF0aFV0aWxzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQ5ODc3MEUyMTI0MkM1MzUw
MDIyMjZCQSAvKiBMb29wQmxpbm5UZXh0dXJlQ29vcmRzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTQ5ODc3MEU4MTI0MkM1MzUwMDIyMjZCQSAvKiBTaGFkZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJNDk4NzcwRUExMjQyQzUzNTAwMjIyNkJBIC8qIFNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTQ5ODc3MEVDMTI0MkM1MzUwMDIyMjZCQSAvKiBTb2xpZEZp
bGxTaGFkZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDk4NzcwRUUxMjQyQzUzNTAwMjIyNkJB
IC8qIFRleFNoYWRlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0OTg3NzBGMDEyNDJDNTM1MDAy
MjI2QkEgLyogVGV4dHVyZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0OTg3NzBGMjEyNDJDNTM1
MDAyMjI2QkEgLyogVGlsaW5nRGF0YS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0OTg3NzE1MzEy
NDNGOUZBMDAyMjI2QkEgLyogRHJhd2luZ0J1ZmZlck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvRHJhd2luZ0J1ZmZlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvRHJhd2luZ0J1ZmZlci5jcHAJ
KHJldmlzaW9uIDY4NzA3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvRHJhd2lu
Z0J1ZmZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDkgKzMwLDEwIEBACiAKICNpbmNsdWRl
ICJjb25maWcuaCIKIAorI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCisKICNpbmNs
dWRlICJEcmF3aW5nQnVmZmVyLmgiCiAKLSNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgog
I2luY2x1ZGUgIlNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTUyLDkgKzUzLDYgQEAgdm9pZCBEcmF3aW5nQnVmZmVyOjpiaW5kKCkKICAgICBtX2Nv
bnRleHQtPnNldFZpZXdwb3J0KG1fc2l6ZSk7CiB9CiAKLXZvaWQgRHJhd2luZ0J1ZmZlcjo6c2V0
V2lsbFB1Ymxpc2hDYWxsYmFjayhQYXNzT3duUHRyPFdpbGxQdWJsaXNoQ2FsbGJhY2s+IGNhbGxi
YWNrKQotewotICAgIG1fY2FsbGJhY2sgPSBjYWxsYmFjazsKLX0KLQogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0Ry
YXdpbmdCdWZmZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9EcmF3aW5nQnVmZmVyLmgJKHJldmlzaW9uIDY4NzA3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvRHJhd2luZ0J1ZmZlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwxOCArMzEs
MjQgQEAKICNpZm5kZWYgRHJhd2luZ0J1ZmZlcl9oCiAjZGVmaW5lIERyYXdpbmdCdWZmZXJfaAog
CisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJHcmFwaGljc0xheWVy
LmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+
CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Cisj
aWYgUExBVEZPUk0oTUFDKQorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNlbmRpZgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOwogCisj
aWYgUExBVEZPUk0oQ0hST01JVU0pCiBzdHJ1Y3QgRHJhd2luZ0J1ZmZlckludGVybmFsOworI2Vu
ZGlmCiAKIC8vIE1hbmFnZXMgYSByZW5kZXJpbmcgdGFyZ2V0IChmcmFtZWJ1ZmZlciArIGF0dGFj
aG1lbnQpIGZvciBhIGNhbnZhcy4gIENhbiBwdWJsaXNoIGl0cyByZW5kZXJpbmcKIC8vIHJlc3Vs
dHMgdG8gYSBQbGF0Zm9ybUxheWVyIGZvciBjb21wb3NpdGluZy4KQEAgLTYyLDEyICs2OCwxNyBA
QCBwdWJsaWM6CiAKICAgICB1bnNpZ25lZCBnZXRSZW5kZXJpbmdSZXN1bHRzQXNUZXh0dXJlKCk7
CiAKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKICAgICBjbGFzcyBXaWxsUHVibGlzaENhbGxiYWNr
IDogcHVibGljIE5vbmNvcHlhYmxlIHsKICAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgfldp
bGxQdWJsaXNoQ2FsbGJhY2soKSB7IH0KKyAgICAgICAgCiAgICAgICAgIHZpcnR1YWwgdm9pZCB3
aWxsUHVibGlzaCgpID0gMDsKICAgICB9OwogCiAgICAgdm9pZCBzZXRXaWxsUHVibGlzaENhbGxi
YWNrKFBhc3NPd25QdHI8V2lsbFB1Ymxpc2hDYWxsYmFjaz4pOworI2VuZGlmCisKIHByaXZhdGU6
CiAgICAgRHJhd2luZ0J1ZmZlcihTaGFyZWRHcmFwaGljc0NvbnRleHQzRCosIGNvbnN0IEludFNp
emUmLCB1bnNpZ25lZCBmcmFtZWJ1ZmZlcik7CiAKQEAgLTc1LDggKzg2LDE0IEBAIHByaXZhdGU6
CiAgICAgSW50U2l6ZSBtX3NpemU7CiAgICAgdW5zaWduZWQgbV9mcmFtZWJ1ZmZlcjsKIAorI2lm
IFBMQVRGT1JNKENIUk9NSVVNKQogICAgIE93blB0cjxXaWxsUHVibGlzaENhbGxiYWNrPiBtX2Nh
bGxiYWNrOwogICAgIE93blB0cjxEcmF3aW5nQnVmZmVySW50ZXJuYWw+IG1faW50ZXJuYWw7Cisj
ZW5kaWYKKworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBSZXRhaW5QdHI8V2ViR0xMYXllcj4gbV9w
bGF0Zm9ybUxheWVyOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9Mb29wQmxpbm5DbGFzc2lmaWVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9Mb29wQmxpbm5DbGFz
c2lmaWVyLmNwcAkocmV2aXNpb24gNjg3MDcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9Mb29wQmxpbm5DbGFzc2lmaWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUsNiArMjUs
OCBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRf
Q0FOVkFTKQorCiAjaW5jbHVkZSAiTG9vcEJsaW5uQ2xhc3NpZmllci5oIgogCiAjaW5jbHVkZSAi
TG9vcEJsaW5uTWF0aFV0aWxzLmgiCkBAIC0xMjAsMyArMTIyLDUgQEAgTG9vcEJsaW5uQ2xhc3Np
Zmllcjo6UmVzdWx0IExvb3BCbGlubkNsYQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvTG9vcEJsaW5uTWF0
aFV0aWxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9M
b29wQmxpbm5NYXRoVXRpbHMuY3BwCShyZXZpc2lvbiA2ODcwNykKKysrIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0xvb3BCbGlubk1hdGhVdGlscy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI1LDEyICsyNSwxMyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKKyNpZiBFTkFCTEUoQUND
RUxFUkFURURfMkRfQ0FOVkFTKQorCiAjaW5jbHVkZSAiTG9vcEJsaW5uTWF0aFV0aWxzLmgiCiAK
ICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCi0jaW5jbHVkZSAiTWF0aEV4dHJhcy5oIgogI2luY2x1
ZGUgPGFsZ29yaXRobT4KLSNpbmNsdWRlIDxzdHJpbmcuaD4gLy8gZm9yIG1lbWNweQorI2luY2x1
ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBM
b29wQmxpbm5NYXRoVXRpbHMgewpAQCAtNTYzLDMgKzU2NCw1IEBAIGludCBudW1YUmF5Q3Jvc3Np
bmdzRm9yQ3ViaWMoY29uc3QgWFJheSYKIAogfSAvLyBuYW1lc3BhY2UgTG9vcEJsaW5uTWF0aFV0
aWxzCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvTG9vcEJsaW5uVGV4dHVyZUNvb3Jkcy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvTG9vcEJsaW5uVGV4dHVyZUNvb3Jkcy5j
cHAJKHJldmlzaW9uIDY4NzA3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvTG9v
cEJsaW5uVGV4dHVyZUNvb3Jkcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDggQEAK
IAogI2luY2x1ZGUgImNvbmZpZy5oIgogCisjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZB
UykKKwogI2luY2x1ZGUgIkxvb3BCbGlublRleHR1cmVDb29yZHMuaCIKIAogI2luY2x1ZGUgPG1h
dGguaD4KQEAgLTE2OSwzICsxNzEsNSBAQCBMb29wQmxpbm5UZXh0dXJlQ29vcmRzOjpSZXN1bHQg
TG9vcEJsaW5uCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFkZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYWRlci5jcHAJKHJldmlzaW9uIDY4NzA3KQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhZGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjksNiArMjksOSBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVO
QUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCisKICNpbmNsdWRlICJTaGFkZXIuaCIKIAogI2lu
Y2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgpAQCAtMTA5LDMgKzExMiw1IEBAIFNoYWRlcjo6flNo
YWRlcigpCiB9CiAKIH0KKworI2VuZGlmCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuY3BwCShyZXZpc2lv
biA2ODcwNykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYXJlZEdyYXBoaWNz
Q29udGV4dDNELmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsOCBAQAogCiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQorCiAjaW5j
bHVkZSAiU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuaCIKIAogI2luY2x1ZGUgIkFmZmluZVRyYW5z
Zm9ybS5oIgpAQCAtMjE1LDggKzIxNyw4IEBAIHZvaWQgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6
OnJlbW92ZVRleHQKIC8vIHN0YXRpYwogSGFzaFNldDxTaGFyZWRHcmFwaGljc0NvbnRleHQzRCo+
KiBTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6YWxsQ29udGV4dHMoKQogewotICAgIHN0YXRpYyBP
d25QdHI8SGFzaFNldDxTaGFyZWRHcmFwaGljc0NvbnRleHQzRCo+ID4gc2V0KG5ldyBIYXNoU2V0
PFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEKj4pOwotICAgIHJldHVybiBzZXQuZ2V0KCk7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEKj4sIGFs
bENvbnRleHRzU2V0LCAoKSk7CisgICAgcmV0dXJuICZhbGxDb250ZXh0c1NldDsKIH0KIAogCkBA
IC0zMzQsMyArMzM2LDUgQEAgYm9vbCBTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6cGFpbnRzSW50
bwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvU29saWRGaWxsU2hhZGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9Tb2xpZEZpbGxTaGFkZXIuY3BwCShyZXZpc2lv
biA2ODcwNykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NvbGlkRmlsbFNoYWRl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDkgQEAKICAqLwogCiAjaW5jbHVkZSAi
Y29uZmlnLmgiCisKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQorCiAjaW5jbHVk
ZSAiU29saWRGaWxsU2hhZGVyLmgiCiAKICNpbmNsdWRlICJDb2xvci5oIgpAQCAtODYsMyArODks
NSBAQCB2b2lkIFNvbGlkRmlsbFNoYWRlcjo6dXNlKGNvbnN0IEFmZmluZVRyCiB9CiAKIH0KKwor
I2VuZGlmCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9UZXhTaGFkZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1RleFNoYWRlci5j
cHAJKHJldmlzaW9uIDY4NzA3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGV4
U2hhZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksOSBAQAogICovCiAKICNpbmNs
dWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCisKICNp
bmNsdWRlICJUZXhTaGFkZXIuaCIKIAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCkBA
IC05MywzICs5Niw1IEBAIHZvaWQgVGV4U2hhZGVyOjp1c2UoY29uc3QgQWZmaW5lVHJhbnNmb3IK
IH0KIAogfQorCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1Rl
eHR1cmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1Rl
eHR1cmUuY3BwCShyZXZpc2lvbiA2ODcwNykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L1RleHR1cmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw4IEBACiAKICNpbmNs
dWRlICJjb25maWcuaCIKIAorI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCisKICNp
bmNsdWRlICJUZXh0dXJlLmgiCiAKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKQEAgLTIwNiwzICsy
MDgsNSBAQCB2b2lkIFRleHR1cmU6OmJpbmRUaWxlKGludCB0aWxlKQogfQogCiB9CisKKyNlbmRp
ZgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGV4dHVyZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1RleHR1cmUuaAkocmV2aXNpb24g
Njg3MDcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9UZXh0dXJlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTMxLDExICszMSwxMSBAQAogI2lmbmRlZiBUZXh0dXJlX2gKICNkZWZpbmUg
VGV4dHVyZV9oCiAKLSNpbmNsdWRlICJSZWZDb3VudGVkLmgiCi0jaW5jbHVkZSAiUmVmUHRyLmgi
CiAjaW5jbHVkZSAiVGlsaW5nRGF0YS5oIgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNs
dWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGlsaW5nRGF0
YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGlsaW5n
RGF0YS5jcHAJKHJldmlzaW9uIDY4NzA3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvVGlsaW5nRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDkgQEAKICAqLwog
CiAjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFT
KQorCiAjaW5jbHVkZSAiVGlsaW5nRGF0YS5oIgogCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCkBA
IC0yMjAsMyArMjIzLDUgQEAgdm9pZCBUaWxpbmdEYXRhOjppbnRlcnNlY3REcmF3UXVhZChjb25z
dAogfQogCiB9CisKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
bWFjL0RyYXdpbmdCdWZmZXJNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvbWFjL0RyYXdpbmdCdWZmZXJNYWMubW0JKHJldmlzaW9uIDApCisrKyBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9tYWMvRHJhd2luZ0J1ZmZlck1hYy5tbQkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxF
KEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKKworI2luY2x1ZGUgIkRyYXdpbmdCdWZmZXIuaCIKKwor
I2luY2x1ZGUgIlNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmgiCisjaW5jbHVkZSAiV2ViR0xMYXll
ci5oIgorCisjaW1wb3J0ICJCbG9ja0V4Y2VwdGlvbnMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitEcmF3aW5nQnVmZmVyOjpEcmF3aW5nQnVmZmVyKFNoYXJlZEdyYXBoaWNzQ29udGV4dDNE
KiBjb250ZXh0LCBjb25zdCBJbnRTaXplJiBzaXplLCB1bnNpZ25lZCBmcmFtZWJ1ZmZlcikKKyAg
ICA6IG1fY29udGV4dChjb250ZXh0KQorICAgICwgbV9zaXplKHNpemUpCisgICAgLCBtX2ZyYW1l
YnVmZmVyKGZyYW1lYnVmZmVyKQoreworICAgIGNvbnRleHQtPmJpbmRGcmFtZWJ1ZmZlcihmcmFt
ZWJ1ZmZlcik7CisKKyAgICAvLyBDcmVhdGUgdGhlIFdlYkdMTGF5ZXIKKyAgICBCRUdJTl9CTE9D
S19PQkpDX0VYQ0VQVElPTlMKKyAgICAgICAgbV9wbGF0Zm9ybUxheWVyLmFkb3B0TlMoW1tXZWJH
TExheWVyIGFsbG9jXSBpbml0V2l0aEdyYXBoaWNzQ29udGV4dDNEOjBdKTsKKyNpZm5kZWYgTkRF
QlVHCisgICAgICAgIFttX3BsYXRmb3JtTGF5ZXIuZ2V0KCkgc2V0TmFtZTpAIldlYkdMIExheWVy
Il07CisjZW5kaWYgICAgCisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUworfQorCitEcmF3
aW5nQnVmZmVyOjp+RHJhd2luZ0J1ZmZlcigpCit7CisgICAgbV9jb250ZXh0LT5iaW5kRnJhbWVi
dWZmZXIobV9mcmFtZWJ1ZmZlcik7CisgICAgbV9jb250ZXh0LT5kZWxldGVGcmFtZWJ1ZmZlciht
X2ZyYW1lYnVmZmVyKTsKK30KKwordm9pZCBEcmF3aW5nQnVmZmVyOjpyZXNldChjb25zdCBJbnRT
aXplJiBuZXdTaXplKQoreworICAgIGlmIChtX3NpemUgPT0gbmV3U2l6ZSkKKyAgICAgICAgcmV0
dXJuOworICAgIG1fc2l6ZSA9IG5ld1NpemU7CisKKyAgICBtX2NvbnRleHQtPnRleEltYWdlMkQo
R3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIDAsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JB
LCBtX3NpemUud2lkdGgoKSwgbV9zaXplLmhlaWdodCgpLCAwLCBHcmFwaGljc0NvbnRleHQzRDo6
UkdCQSwgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX0JZVEUsIDApOworfQorCisjaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorUGxhdGZvcm1MYXllciogRHJhd2luZ0J1ZmZlcjo6
cGxhdGZvcm1MYXllcigpCit7CisgICAgcmV0dXJuIG1fcGxhdGZvcm1MYXllci5nZXQoKTsKK30K
KyNlbmRpZgorCit9CisKKyNlbmRpZgpJbmRleDogV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDY4NzEyKQorKysgV2ViS2l0
L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0wOS0y
OSAgQ2hyaXMgTWFycmluICA8Y21hcnJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSAyRCBhY2NlbGVyYXRlZCBjYW52YXMg
cmVuZGVyaW5nIGJ1aWxkIG9uIE1hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDYwMDcKKyAgICAgICAgCisgICAgICAgIEFkZGVkIEFDQ0VMRVJBVEVE
XzJEX0NBTlZBUyB0byBGZWF0dXJlRGVmaW5lcworCisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWc6CisKIDIwMTAtMDktMjggIEpvaG5ueSBEaW5nICA8am5k
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpJbmRleDog
V2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
CShyZXZpc2lvbiA2ODcwNykKKysrIFdlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDExIEBACiAKIEVOQUJM
RV9MSU5LX1BSRUZFVENIID0gOwogCitFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTID0gJChF
TkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTXyQoUkVBTF9QTEFURk9STV9OQU1FKSk7CitFTkFC
TEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTX21hY29zeCA9ICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJE
X0NBTlZBU19tYWNvc3hfJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUikpOworRU5BQkxF
X0FDQ0VMRVJBVEVEXzJEX0NBTlZBU19tYWNvc3hfMTA2MCA9IDsKK0VOQUJMRV9BQ0NFTEVSQVRF
RF8yRF9DQU5WQVNfbWFjb3N4XzEwNzAgPSA7CisKIEVOQUJMRV8zRF9DQU5WQVMgPSAkKEVOQUJM
RV8zRF9DQU5WQVNfJChSRUFMX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV8zRF9DQU5WQVNfbWFj
b3N4ID0gJChFTkFCTEVfM0RfQ0FOVkFTX21hY29zeF8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9O
X01BSk9SKSk7CiBFTkFCTEVfM0RfQ0FOVkFTX21hY29zeF8xMDYwID0gRU5BQkxFXzNEX0NBTlZB
UzsKSW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29s
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDY4NzEyKQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDktMjkgIENocmlzIE1hcnJpbiAg
PGNtYXJyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE1ha2UgMkQgYWNjZWxlcmF0ZWQgY2FudmFzIHJlbmRlcmluZyBidWlsZCBv
biBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2
MDA3CisgICAgICAgIAorICAgICAgICBBZGRlZCBBQ0NFTEVSQVRFRF8yRF9DQU5WQVMgdG8gYnVp
bGQtd2Via2l0CisKKyAgICAgICAgKiBTY3JpcHRzL2J1aWxkLXdlYmtpdDoKKwogMjAxMC0wOS0y
OSAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEphbWVzIFJvYmluc29uLgpJbmRleDogV2ViS2l0VG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQJKHJldmlzaW9u
IDY4NzA3KQorKysgV2ViS2l0VG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQJKHdvcmtpbmcgY29w
eSkKQEAgLTU3LDcgKzU3LDcgQEAgbXkgJHByZWZpeFBhdGg7CiBteSAkbWFrZUFyZ3M7CiBteSAk
c3RhcnRUaW1lID0gdGltZSgpOwogCi1teSAoJGxpbmtQcmVmZXRjaFN1cHBvcnQsICR0aHJlZURD
YW52YXNTdXBwb3J0LCAkdGhyZWVEUmVuZGVyaW5nU3VwcG9ydCwgJGNoYW5uZWxNZXNzYWdpbmdT
dXBwb3J0LCAkY2xpZW50QmFzZWRHZW9sb2NhdGlvblN1cHBvcnQsICRkYXRhYmFzZVN1cHBvcnQs
ICRkYXRhZ3JpZFN1cHBvcnQsICRkYXRhbGlzdFN1cHBvcnQsCitteSAoJGxpbmtQcmVmZXRjaFN1
cHBvcnQsICRhY2NlbGVyYXRlZDJkQ2FudmFzU3VwcG9ydCwgJHRocmVlRENhbnZhc1N1cHBvcnQs
ICR0aHJlZURSZW5kZXJpbmdTdXBwb3J0LCAkY2hhbm5lbE1lc3NhZ2luZ1N1cHBvcnQsICRjbGll
bnRCYXNlZEdlb2xvY2F0aW9uU3VwcG9ydCwgJGRhdGFiYXNlU3VwcG9ydCwgJGRhdGFncmlkU3Vw
cG9ydCwgJGRhdGFsaXN0U3VwcG9ydCwKICAgICAkZG9tU3RvcmFnZVN1cHBvcnQsICRldmVudHNv
dXJjZVN1cHBvcnQsICRmaWx0ZXJzU3VwcG9ydCwgJGdlb2xvY2F0aW9uU3VwcG9ydCwgJGljb25E
YXRhYmFzZVN1cHBvcnQsICRpbWFnZVJlc2l6ZXJTdXBwb3J0LCAkaW5kZXhlZERhdGFiYXNlU3Vw
cG9ydCwgJGlucHV0U3BlZWNoU3VwcG9ydCwKICAgICAkamF2YVNjcmlwdERlYnVnZ2VyU3VwcG9y
dCwgJG1hdGhtbFN1cHBvcnQsICRvZmZsaW5lV2ViQXBwbGljYXRpb25TdXBwb3J0LCAkcnVieVN1
cHBvcnQsICRzeXN0ZW1NYWxsb2NTdXBwb3J0LCAkc2FuZGJveFN1cHBvcnQsICRzaGFyZWRXb3Jr
ZXJzU3VwcG9ydCwKICAgICAkc3ZnU3VwcG9ydCwgJHN2Z0FuaW1hdGlvblN1cHBvcnQsICRzdmdB
c0ltYWdlU3VwcG9ydCwgJHN2Z0RPTU9iakNCaW5kaW5nc1N1cHBvcnQsICRzdmdGb250c1N1cHBv
cnQsCkBAIC02OSw2ICs2OSw5IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICB7IG9wdGlvbiA9PiAi
bGluay1wcmVmZXRjaCIsIGRlc2MgPT4gIlRvZ2dsZSBwcmUgZmV0Y2hpbmcgc3VwcG9ydCIsCiAg
ICAgICBkZWZpbmUgPT4gIkVOQUJMRV9MSU5LX1BSRUZFVENIIiwgZGVmYXVsdCA9PiAwLCB2YWx1
ZSA9PiBcJGxpbmtQcmVmZXRjaFN1cHBvcnQgfSwKIAorICAgIHsgb3B0aW9uID0+ICJhY2NlbGVy
YXRlZC0yZC1jYW52YXMiLCBkZXNjID0+ICJUb2dnbGUgYWNjZWxlcmF0ZWQgMkQgY2FudmFzIHN1
cHBvcnQiLAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTIiwg
ZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGFjY2VsZXJhdGVkMmRDYW52YXNTdXBwb3J0IH0sCisK
ICAgICB7IG9wdGlvbiA9PiAiM2QtY2FudmFzIiwgZGVzYyA9PiAiVG9nZ2xlIDNEIGNhbnZhcyBz
dXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFXzNEX0NBTlZBUyIsIGRlZmF1bHQgPT4g
KGlzQXBwbGVNYWNXZWJLaXQoKSAmJiAhaXNUaWdlcigpICYmICFpc0xlb3BhcmQoKSksIHZhbHVl
ID0+IFwkdGhyZWVEQ2FudmFzU3VwcG9ydCB9LAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69280</attachid>
            <date>2010-09-29 17:01:01 -0700</date>
            <delta_ts>2010-09-30 10:21:19 -0700</delta_ts>
            <desc>Update patch, 2 more small changes</desc>
            <filename>46007.patch</filename>
            <type>text/plain</type>
            <size>42179</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDY4NzEyKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDktMjkgIENocmlzIE1h
cnJpbiAgPGNtYXJyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1ha2UgMkQgYWNjZWxlcmF0ZWQgY2FudmFzIHJlbmRlcmluZyBi
dWlsZCBvbiBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQ2MDA3CisgICAgICAgIAorICAgICAgICBBZGRlZCBBQ0NFTEVSQVRFRF8yRF9DQU5WQVMg
dG8gRmVhdHVyZURlZmluZXMKKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnOgorCiAyMDEwLTA5LTI5ICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9D
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZh
U2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkocmV2aXNp
b24gNjg3MDcpCisrKyBKYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsMTEgQEAKIAogRU5BQkxFX0xJ
TktfUFJFRkVUQ0ggPSA7CiAKK0VOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMgPSAkKEVOQUJM
RV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVNfJChSRUFMX1BMQVRGT1JNX05BTUUpKTsKK0VOQUJMRV9B
Q0NFTEVSQVRFRF8yRF9DQU5WQVNfbWFjb3N4ID0gJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FO
VkFTX21hY29zeF8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7CitFTkFCTEVfQUND
RUxFUkFURURfMkRfQ0FOVkFTX21hY29zeF8xMDYwID0gOworRU5BQkxFX0FDQ0VMRVJBVEVEXzJE
X0NBTlZBU19tYWNvc3hfMTA3MCA9IDsKKwogRU5BQkxFXzNEX0NBTlZBUyA9ICQoRU5BQkxFXzNE
X0NBTlZBU18kKFJFQUxfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFXzNEX0NBTlZBU19tYWNvc3gg
PSAkKEVOQUJMRV8zRF9DQU5WQVNfbWFjb3N4XyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFK
T1IpKTsKIEVOQUJMRV8zRF9DQU5WQVNfbWFjb3N4XzEwNjAgPSBFTkFCTEVfM0RfQ0FOVkFTOwpA
QCAtMTE5LDQgKzEyNCw0IEBAIEVOQUJMRV9YSFRNTE1QID0gOwogRU5BQkxFX1hQQVRIID0gRU5B
QkxFX1hQQVRIOwogRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJTkVT
ID0gJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfM0RfQ0FOVkFTKSAkKEVOQUJMRV8z
RF9SRU5ERVJJTkcpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAk
KEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0RBVEFCQVNFKSAkKEVO
QUJMRV9EQVRBR1JJRCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RFVklDRV9PUklFTlRB
VElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQo
RU5BQkxFX0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GSUxFX1NZU1RF
TSkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVf
SU1BR0VfUkVTSVpFUikgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRf
U1BFRUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9NQVRITUwpICQo
RU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElO
RV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1JVQlkp
ICQoRU5BQkxFX1NBTkRCT1gpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcp
ICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVf
U1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19G
T1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklERU8pICQoRU5BQkxF
X1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XTUwpICQoRU5BQkxF
X1dPUktFUlMpICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xU
KTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX0FD
Q0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfM0RfQ0FOVkFTKSAkKEVOQUJMRV8zRF9SRU5E
RVJJTkcpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJM
RV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0RBVEFCQVNFKSAkKEVOQUJMRV9E
QVRBR1JJRCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikg
JChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxF
X0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChF
TkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU1BR0Vf
UkVTSVpFUikgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfU1BFRUNI
KSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxF
X01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJf
QVBQTElDQVRJT05TKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1JVQlkpICQoRU5B
QkxFX1NBTkRCT1gpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQoRU5B
QkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZHX0RP
TV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JFSUdO
X09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1dFQl9T
T0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XTUwpICQoRU5BQkxFX1dPUktF
UlMpICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKSW5k
ZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShy
ZXZpc2lvbiA2ODcxMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsNTIgQEAKKzIwMTAtMDktMjkgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2Ug
MkQgYWNjZWxlcmF0ZWQgY2FudmFzIHJlbmRlcmluZyBidWlsZCBvbiBNYWMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2MDA3CisKKyAgICAgICAgQWRk
IGFjY2VsZXJhdGVkIDJEIHJlbmRlcmluZyBmaWxlcyB0byBNYWMgYnVpbGQsIGZpeCBidWlsZCBl
cnJvcnMsCisgICAgICAgIGFkZCBpZmRlZnMgdG8gY29tcGlsZSBvbmx5IHdoZW4gdGhlIEFDQ0VM
RVJBVEVEXzJEX0NBTlZBUyBmbGFnIGlzCisgICAgICAgIGVuYWJsZWQsIGFuZCBhZGQgYSBza2Vs
ZXRvbiBvZiB0aGUgbWFjIHNwZWNpZmljIGZpbGUgc28gaXQgYnVpbGRzLgorCisgICAgICAgIERy
YXdpbmdCdWZmZXJNYWMubW0sIHRoZSBNYWMgc3BlY2lmaWMgZmlsZSBkb2VzIG5vdGhpbmcgcmln
aHQgbm93CisgICAgICAgIG90aGVyIHRoYW4gaW5pdGlhbGl6ZSBhbmQgY3JlYXRlIGEgbGF5ZXIu
IFRoZSByZXN0IHdpbGwgYmUgYWRkZWQKKyAgICAgICAgd2hlbiBJIGRvIHRoZSBhY3R1YWwgaW1w
bGVtZW50YXRpb24uIAorCisgICAgICAgIFRoZSBtb3N0IHNpZ25pZmljYW50IGNoYW5nZSB3YXMg
dG8gU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QsIHdoaWNoCisgICAgICAgIGhhZCBhIHN0YXRpYyBs
b2NhbCBPd25QdHIgaW4gb25lIG9mIHRoZSBtZXRob2RzLiBUaGlzIHdhcyBjYXVzaW5nCisgICAg
ICAgIHRoZSBleGl0IHRpbWUgZGVzdHJ1Y3RvciB3YXJuaW5nLiBHZXR0aW5nIHJpZCBvZiB0aGUg
T3duUHRyIGZpeGVkCisgICAgICAgIHRoZSBwcm9ibGVtLiBTaW5jZSB0aGUgcG9pbnRlciB0aGF0
IHdhcyBiZWluZyB3cmFwcGVkIHdhcyB0byBhCisgICAgICAgIHN0YXRpYyBvYmplY3QgdGhhdCB3
b3VsZCBuZXZlciBnZXQgZGVzdHJveWVkLCB0aGUgT3duUHRyIHdhcyBub3QKKyAgICAgICAgbmVj
ZXNzYXJ5LgorCisgICAgICAgIEkgYWxzbyBhZGRlZCB0aGUgQUNDRUxFUkFURURfMkRfQ0FOVkFT
IGZsYWcgdG8gYnVpbGQtd2Via2l0CisgICAgICAgIGFuZCBGZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZyBmb3IgV2ViQ29yZSwgV2ViS2l0IGFuZCBKYXZhU2NyaXB0Q29yZS4KKyAgICAgICAgQnV0IHJp
Z2h0IG5vdyB0aGUgZmxhZyBpcyBvZmYgYnkgZGVmYXVsdC4KKworICAgICAgICAqIENvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvRHJh
d2luZ0J1ZmZlci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0RyYXdpbmdC
dWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYXdpbmdCdWZmZXI6OldpbGxQdWJsaXNoQ2Fs
bGJhY2s6On5XaWxsUHVibGlzaENhbGxiYWNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvTG9vcEJsaW5uQ2xhc3NpZmllci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0xvb3BCbGlubk1hdGhVdGlscy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0xvb3BCbGlublRleHR1cmVDb29yZHMuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dwdS9TaGFkZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9T
aGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRHcmFw
aGljc0NvbnRleHQzRDo6YWxsQ29udGV4dHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dwdS9Tb2xpZEZpbGxTaGFkZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dw
dS9UZXhTaGFkZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9UZXh0dXJl
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGV4dHVyZS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdEYXRhLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9ncHUvbWFjOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvbWFjL0RyYXdpbmdCdWZmZXJNYWMubW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
RHJhd2luZ0J1ZmZlcjo6RHJhd2luZ0J1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpEcmF3aW5n
QnVmZmVyOjp+RHJhd2luZ0J1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpEcmF3aW5nQnVmZmVy
OjpyZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpEcmF3aW5nQnVmZmVyOjpwbGF0Zm9ybUxheWVy
KToKKwogMjAxMC0wOS0yOSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogV2ViQ29yZS9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCShyZXZpc2lvbiA2ODcwNykKKysr
IFdlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHdvcmtpbmcg
Y29weSkKQEAgLTMzLDYgKzMzLDExIEBACiAKIEVOQUJMRV9MSU5LX1BSRUZFVENIID0gOwogCitF
TkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTID0gJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FO
VkFTXyQoUkVBTF9QTEFURk9STV9OQU1FKSk7CitFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFT
X21hY29zeCA9ICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBU19tYWNvc3hfJChUQVJHRVRf
TUFDX09TX1hfVkVSU0lPTl9NQUpPUikpOworRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBU19t
YWNvc3hfMTA2MCA9IDsKK0VOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVNfbWFjb3N4XzEwNzAg
PSA7CisKIEVOQUJMRV8zRF9DQU5WQVMgPSAkKEVOQUJMRV8zRF9DQU5WQVNfJChSRUFMX1BMQVRG
T1JNX05BTUUpKTsKIEVOQUJMRV8zRF9DQU5WQVNfbWFjb3N4ID0gJChFTkFCTEVfM0RfQ0FOVkFT
X21hY29zeF8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7CiBFTkFCTEVfM0RfQ0FO
VkFTX21hY29zeF8xMDYwID0gRU5BQkxFXzNEX0NBTlZBUzsKQEAgLTEyMCw0ICsxMjUsNCBAQCBF
TkFCTEVfWEhUTUxNUCA9IDsKIEVOQUJMRV9YUEFUSCA9IEVOQUJMRV9YUEFUSDsKIEVOQUJMRV9Y
U0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFX0xJTktfUFJF
RkVUQ0gpICQoRU5BQkxFXzNEX0NBTlZBUykgJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJM
RV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VE
X0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9EQVRBQkFTRSkgJChFTkFCTEVfREFUQUdSSUQpICQoRU5B
QkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVD
VE9SWV9VUExPQUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9FVkVOVFNPVVJDRSkg
JChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZVTExTQ1JF
RU5fQVBJKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVO
QUJMRV9JTUFHRV9SRVNJWkVSKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9J
TlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX01BVEhN
TCkgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9P
RkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVf
UlVCWSkgJChFTkFCTEVfU0FOREJPWCkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxF
X1NWRykgJChFTkFCTEVfU1ZHX0FOSU1BVElPTikgJChFTkFCTEVfU1ZHX0FTX0lNQUdFKSAkKEVO
QUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVf
U1ZHX0ZPUkVJR05fT0JKRUNUKSAkKEVOQUJMRV9TVkdfVVNFKSAkKEVOQUJMRV9WSURFTykgJChF
TkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dNTCkgJChF
TkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgpICQoRU5BQkxF
X1hTTFQpOworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFC
TEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV8zRF9DQU5WQVMpICQoRU5BQkxFXzNE
X1JFTkRFUklORykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQo
RU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfREFUQUJBU0UpICQoRU5B
QkxFX0RBVEFHUklEKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFU
SU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChF
TkFCTEVfRVZFTlRTT1VSQ0UpICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZJTEVfU1lTVEVN
KSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxF
X0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU1BR0VfUkVTSVpFUikgJChFTkFCTEVfSU5ERVhFRF9E
QVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVH
R0VSKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJ
Q0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QUk9H
UkVTU19UQUcpICQoRU5BQkxFX1JVQlkpICQoRU5BQkxFX1NBTkRCT1gpICQoRU5BQkxFX1NIQVJF
RF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxF
X1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9T
VkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkg
JChFTkFCTEVfVklERU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5H
KSAkKEVOQUJMRV9XTUwpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hIVE1MTVApICQoRU5B
QkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA2ODcwNykKKysrIFdlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC05MzYsNiArOTM2LDMy
IEBACiAJCTQ5ODM5MTUyMEYxRTc2QjQwMEMyMzc4MiAvKiBET01XZWJLaXRDU1NNYXRyaXhJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4
MzkxNEYwRjFFNzZCNDAwQzIzNzgyIC8qIERPTVdlYktpdENTU01hdHJpeEludGVybmFsLmggKi87
IH07CiAJCTQ5ODM5MTU4MEYxRTc3NjkwMEMyMzc4MiAvKiBXZWJLaXRDU1NNYXRyaXguY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4MzkxNTUwRjFF
Nzc2OTAwQzIzNzgyIC8qIFdlYktpdENTU01hdHJpeC5jcHAgKi87IH07CiAJCTQ5ODM5MTU5MEYx
RTc3NjkwMEMyMzc4MiAvKiBXZWJLaXRDU1NNYXRyaXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODM5MTU2MEYxRTc3NjkwMEMyMzc4MiAvKiBXZWJL
aXRDU1NNYXRyaXguaCAqLzsgfTsKKwkJNDk4NzcwREIxMjQyQzUzNTAwMjIyNkJBIC8qIERyYXdp
bmdCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDk4NzcwQzIxMjQyQzUzNTAwMjIyNkJBIC8qIERyYXdpbmdCdWZmZXIuY3BwICovOyB9Owor
CQk0OTg3NzBEQzEyNDJDNTM1MDAyMjI2QkEgLyogRHJhd2luZ0J1ZmZlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4NzcwQzMxMjQyQzUzNTAwMjIy
NkJBIC8qIERyYXdpbmdCdWZmZXIuaCAqLzsgfTsKKwkJNDk4NzcwREQxMjQyQzUzNTAwMjIyNkJB
IC8qIExvb3BCbGlubkNsYXNzaWZpZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDk4NzcwQzQxMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BCbGlubkNs
YXNzaWZpZXIuY3BwICovOyB9OworCQk0OTg3NzBERTEyNDJDNTM1MDAyMjI2QkEgLyogTG9vcEJs
aW5uQ2xhc3NpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDk4NzcwQzUxMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BCbGlubkNsYXNzaWZpZXIuaCAq
LzsgfTsKKwkJNDk4NzcwREYxMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BCbGlubkNvbnN0YW50cy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4NzcwQzYx
MjQyQzUzNTAwMjIyNkJBIC8qIExvb3BCbGlubkNvbnN0YW50cy5oICovOyB9OworCQk0OTg3NzBF
MDEyNDJDNTM1MDAyMjI2QkEgLyogTG9vcEJsaW5uTWF0aFV0aWxzLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODc3MEM3MTI0MkM1MzUwMDIyMjZC
QSAvKiBMb29wQmxpbm5NYXRoVXRpbHMuY3BwICovOyB9OworCQk0OTg3NzBFMTEyNDJDNTM1MDAy
MjI2QkEgLyogTG9vcEJsaW5uTWF0aFV0aWxzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzBDODEyNDJDNTM1MDAyMjI2QkEgLyogTG9vcEJsaW5u
TWF0aFV0aWxzLmggKi87IH07CisJCTQ5ODc3MEUyMTI0MkM1MzUwMDIyMjZCQSAvKiBMb29wQmxp
bm5UZXh0dXJlQ29vcmRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ5ODc3MEM5MTI0MkM1MzUwMDIyMjZCQSAvKiBMb29wQmxpbm5UZXh0dXJlQ29v
cmRzLmNwcCAqLzsgfTsKKwkJNDk4NzcwRTMxMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BCbGlublRl
eHR1cmVDb29yZHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ5ODc3MENBMTI0MkM1MzUwMDIyMjZCQSAvKiBMb29wQmxpbm5UZXh0dXJlQ29vcmRzLmgg
Ki87IH07CisJCTQ5ODc3MEU0MTI0MkM1MzUwMDIyMjZCQSAvKiBQT0RBcmVuYS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4NzcwQ0IxMjQyQzUzNTAw
MjIyNkJBIC8qIFBPREFyZW5hLmggKi87IH07CisJCTQ5ODc3MEU1MTI0MkM1MzUwMDIyMjZCQSAv
KiBQT0RJbnRlcnZhbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDk4NzcwQ0MxMjQyQzUzNTAwMjIyNkJBIC8qIFBPREludGVydmFsLmggKi87IH07CisJ
CTQ5ODc3MEU2MTI0MkM1MzUwMDIyMjZCQSAvKiBQT0RJbnRlcnZhbFRyZWUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODc3MENEMTI0MkM1MzUwMDIy
MjZCQSAvKiBQT0RJbnRlcnZhbFRyZWUuaCAqLzsgfTsKKwkJNDk4NzcwRTcxMjQyQzUzNTAwMjIy
NkJBIC8qIFBPRFJlZEJsYWNrVHJlZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDk4NzcwQ0UxMjQyQzUzNTAwMjIyNkJBIC8qIFBPRFJlZEJsYWNrVHJl
ZS5oICovOyB9OworCQk0OTg3NzBFODEyNDJDNTM1MDAyMjI2QkEgLyogU2hhZGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODc3MENGMTI0MkM1
MzUwMDIyMjZCQSAvKiBTaGFkZXIuY3BwICovOyB9OworCQk0OTg3NzBFOTEyNDJDNTM1MDAyMjI2
QkEgLyogU2hhZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0OTg3NzBEMDEyNDJDNTM1MDAyMjI2QkEgLyogU2hhZGVyLmggKi87IH07CisJCTQ5ODc3
MEVBMTI0MkM1MzUwMDIyMjZCQSAvKiBTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzBEMTEyNDJDNTM1
MDAyMjI2QkEgLyogU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuY3BwICovOyB9OworCQk0OTg3NzBF
QjEyNDJDNTM1MDAyMjI2QkEgLyogU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODc3MEQyMTI0MkM1MzUwMDIy
MjZCQSAvKiBTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5oICovOyB9OworCQk0OTg3NzBFQzEyNDJD
NTM1MDAyMjI2QkEgLyogU29saWRGaWxsU2hhZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODc3MEQzMTI0MkM1MzUwMDIyMjZCQSAvKiBTb2xp
ZEZpbGxTaGFkZXIuY3BwICovOyB9OworCQk0OTg3NzBFRDEyNDJDNTM1MDAyMjI2QkEgLyogU29s
aWRGaWxsU2hhZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0OTg3NzBENDEyNDJDNTM1MDAyMjI2QkEgLyogU29saWRGaWxsU2hhZGVyLmggKi87IH07
CisJCTQ5ODc3MEVFMTI0MkM1MzUwMDIyMjZCQSAvKiBUZXhTaGFkZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4NzcwRDUxMjQyQzUzNTAwMjIy
NkJBIC8qIFRleFNoYWRlci5jcHAgKi87IH07CisJCTQ5ODc3MEVGMTI0MkM1MzUwMDIyMjZCQSAv
KiBUZXhTaGFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ5ODc3MEQ2MTI0MkM1MzUwMDIyMjZCQSAvKiBUZXhTaGFkZXIuaCAqLzsgfTsKKwkJNDk4
NzcwRjAxMjQyQzUzNTAwMjIyNkJBIC8qIFRleHR1cmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4NzcwRDcxMjQyQzUzNTAwMjIyNkJBIC8qIFRl
eHR1cmUuY3BwICovOyB9OworCQk0OTg3NzBGMTEyNDJDNTM1MDAyMjI2QkEgLyogVGV4dHVyZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4NzcwRDgx
MjQyQzUzNTAwMjIyNkJBIC8qIFRleHR1cmUuaCAqLzsgfTsKKwkJNDk4NzcwRjIxMjQyQzUzNTAw
MjIyNkJBIC8qIFRpbGluZ0RhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDk4NzcwRDkxMjQyQzUzNTAwMjIyNkJBIC8qIFRpbGluZ0RhdGEuY3Bw
ICovOyB9OworCQk0OTg3NzBGMzEyNDJDNTM1MDAyMjI2QkEgLyogVGlsaW5nRGF0YS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4NzcwREExMjQyQzUz
NTAwMjIyNkJBIC8qIFRpbGluZ0RhdGEuaCAqLzsgfTsKKwkJNDk4NzcxNTMxMjQzRjlGQTAwMjIy
NkJBIC8qIERyYXdpbmdCdWZmZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzE1MjEyNDNGOUZBMDAyMjI2QkEgLyogRHJhd2luZ0J1ZmZl
ck1hYy5tbSAqLzsgfTsKIAkJNDlDN0I5OTMxMDQyRDJEMzAwMDlENDQ3IC8qIEpTV2ViR0xCdWZm
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlD
N0I5ODAxMDQyRDJEMzAwMDlENDQ3IC8qIEpTV2ViR0xCdWZmZXIuY3BwICovOyB9OwogCQk0OUM3
Qjk5NDEwNDJEMkQzMDAwOUQ0NDcgLyogSlNXZWJHTEJ1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlDN0I5ODExMDQyRDJEMzAwMDlENDQ3IC8q
IEpTV2ViR0xCdWZmZXIuaCAqLzsgfTsKIAkJNDlDN0I5OTUxMDQyRDJEMzAwMDlENDQ3IC8qIEpT
SW50OEFycmF5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ5QzdCOTgyMTA0MkQyRDMwMDA5RDQ0NyAvKiBKU0ludDhBcnJheS5jcHAgKi87IH07CkBA
IC02ODk3LDYgKzY5MjMsMzIgQEAKIAkJNDk4MzkxNTUwRjFFNzc2OTAwQzIzNzgyIC8qIFdlYktp
dENTU01hdHJpeC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJL
aXRDU1NNYXRyaXguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTgzOTE1NjBG
MUU3NzY5MDBDMjM3ODIgLyogV2ViS2l0Q1NTTWF0cml4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYktpdENTU01hdHJpeC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0OTgzOTE1NzBGMUU3NzY5MDBDMjM3ODIgLyogV2ViS2l0Q1NTTWF0cml4LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRDU1NNYXRyaXguaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0OTg3NzBDMjEyNDJDNTM1MDAyMjI2QkEgLyogRHJhd2luZ0J1ZmZlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBEcmF3aW5nQnVmZmVyLmNw
cDsgcGF0aCA9IGdwdS9EcmF3aW5nQnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDk4NzcwQzMxMjQyQzUzNTAwMjIyNkJBIC8qIERyYXdpbmdCdWZmZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRHJhd2luZ0J1ZmZlci5oOyBwYXRoID0gZ3B1L0Ry
YXdpbmdCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDk4NzcwQzQxMjQy
QzUzNTAwMjIyNkJBIC8qIExvb3BCbGlubkNsYXNzaWZpZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gTG9vcEJsaW5uQ2xhc3NpZmllci5jcHA7IHBhdGggPSBncHUv
TG9vcEJsaW5uQ2xhc3NpZmllci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5
ODc3MEM1MTI0MkM1MzUwMDIyMjZCQSAvKiBMb29wQmxpbm5DbGFzc2lmaWVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExvb3BCbGlubkNsYXNzaWZpZXIuaDsgcGF0aCA9IGdw
dS9Mb29wQmxpbm5DbGFzc2lmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5
ODc3MEM2MTI0MkM1MzUwMDIyMjZCQSAvKiBMb29wQmxpbm5Db25zdGFudHMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTG9vcEJsaW5uQ29uc3RhbnRzLmg7IHBhdGggPSBncHUv
TG9vcEJsaW5uQ29uc3RhbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5ODc3
MEM3MTI0MkM1MzUwMDIyMjZCQSAvKiBMb29wQmxpbm5NYXRoVXRpbHMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTG9vcEJsaW5uTWF0aFV0aWxzLmNwcDsgcGF0aCA9
IGdwdS9Mb29wQmxpbm5NYXRoVXRpbHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0OTg3NzBDODEyNDJDNTM1MDAyMjI2QkEgLyogTG9vcEJsaW5uTWF0aFV0aWxzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExvb3BCbGlubk1hdGhVdGlscy5oOyBwYXRoID0g
Z3B1L0xvb3BCbGlubk1hdGhVdGlscy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
OTg3NzBDOTEyNDJDNTM1MDAyMjI2QkEgLyogTG9vcEJsaW5uVGV4dHVyZUNvb3Jkcy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMb29wQmxpbm5UZXh0dXJlQ29vcmRz
LmNwcDsgcGF0aCA9IGdwdS9Mb29wQmxpbm5UZXh0dXJlQ29vcmRzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDk4NzcwQ0ExMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BCbGlublRl
eHR1cmVDb29yZHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTG9vcEJsaW5u
VGV4dHVyZUNvb3Jkcy5oOyBwYXRoID0gZ3B1L0xvb3BCbGlublRleHR1cmVDb29yZHMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDk4NzcwQ0IxMjQyQzUzNTAwMjIyNkJBIC8qIFBP
REFyZW5hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFBPREFyZW5hLmg7IHBh
dGggPSBncHUvUE9EQXJlbmEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDk4Nzcw
Q0MxMjQyQzUzNTAwMjIyNkJBIC8qIFBPREludGVydmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFBPREludGVydmFsLmg7IHBhdGggPSBncHUvUE9ESW50ZXJ2YWwuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDk4NzcwQ0QxMjQyQzUzNTAwMjIyNkJBIC8qIFBP
REludGVydmFsVHJlZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQT0RJbnRl
cnZhbFRyZWUuaDsgcGF0aCA9IGdwdS9QT0RJbnRlcnZhbFRyZWUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDk4NzcwQ0UxMjQyQzUzNTAwMjIyNkJBIC8qIFBPRFJlZEJsYWNrVHJl
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQT0RSZWRCbGFja1RyZWUuaDsg
cGF0aCA9IGdwdS9QT0RSZWRCbGFja1RyZWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDk4NzcwQ0YxMjQyQzUzNTAwMjIyNkJBIC8qIFNoYWRlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTaGFkZXIuY3BwOyBwYXRoID0gZ3B1L1NoYWRlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5ODc3MEQwMTI0MkM1MzUwMDIyMjZCQSAv
KiBTaGFkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU2hhZGVyLmg7IHBh
dGggPSBncHUvU2hhZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5ODc3MEQx
MTI0MkM1MzUwMDIyMjZCQSAvKiBTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHA7
IHBhdGggPSBncHUvU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0OTg3NzBEMjEyNDJDNTM1MDAyMjI2QkEgLyogU2hhcmVkR3JhcGhpY3ND
b250ZXh0M0QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU2hhcmVkR3JhcGhp
Y3NDb250ZXh0M0QuaDsgcGF0aCA9IGdwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTg3NzBEMzEyNDJDNTM1MDAyMjI2QkEgLyogU29s
aWRGaWxsU2hhZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFNv
bGlkRmlsbFNoYWRlci5jcHA7IHBhdGggPSBncHUvU29saWRGaWxsU2hhZGVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDk4NzcwRDQxMjQyQzUzNTAwMjIyNkJBIC8qIFNvbGlk
RmlsbFNoYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTb2xpZEZpbGxT
aGFkZXIuaDsgcGF0aCA9IGdwdS9Tb2xpZEZpbGxTaGFkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDk4NzcwRDUxMjQyQzUzNTAwMjIyNkJBIC8qIFRleFNoYWRlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBUZXhTaGFkZXIuY3BwOyBwYXRoID0g
Z3B1L1RleFNoYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5ODc3MEQ2
MTI0MkM1MzUwMDIyMjZCQSAvKiBUZXhTaGFkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gVGV4U2hhZGVyLmg7IHBhdGggPSBncHUvVGV4U2hhZGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQ5ODc3MEQ3MTI0MkM1MzUwMDIyMjZCQSAvKiBUZXh0dXJlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFRleHR1cmUuY3BwOyBwYXRo
ID0gZ3B1L1RleHR1cmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTg3NzBE
ODEyNDJDNTM1MDAyMjI2QkEgLyogVGV4dHVyZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBUZXh0dXJlLmg7IHBhdGggPSBncHUvVGV4dHVyZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0OTg3NzBEOTEyNDJDNTM1MDAyMjI2QkEgLyogVGlsaW5nRGF0YS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBUaWxpbmdEYXRhLmNwcDsgcGF0
aCA9IGdwdS9UaWxpbmdEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDk4
NzcwREExMjQyQzUzNTAwMjIyNkJBIC8qIFRpbGluZ0RhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gVGlsaW5nRGF0YS5oOyBwYXRoID0gZ3B1L1RpbGluZ0RhdGEuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDk4NzcxNTIxMjQzRjlGQTAwMjIyNkJBIC8qIERy
YXdpbmdCdWZmZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUg
PSBEcmF3aW5nQnVmZmVyTWFjLm1tOyBwYXRoID0gZ3B1L21hYy9EcmF3aW5nQnVmZmVyTWFjLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OUM3Qjk4MDEwNDJEMkQzMDAwOUQ0NDcg
LyogSlNXZWJHTEJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU1dlYkdMQnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDlDN0I5
ODExMDQyRDJEMzAwMDlENDQ3IC8qIEpTV2ViR0xCdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNXZWJHTEJ1ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0OUM3Qjk4MjEwNDJEMkQzMDAwOUQ0NDcgLyogSlNJbnQ4QXJyYXkuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJbnQ4QXJyYXkuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTIyOTgsNiArMTIzNTAsNDcgQEAKIAkJCW5hbWUgPSBjYW52
YXM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk0OTg3NzBDMTEyNDJDNTBE
MDAyMjI2QkEgLyogZ3B1ICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9
ICgKKwkJCQk0OTg3NzExNjEyNDJDRDdGMDAyMjI2QkEgLyogbWFjICovLAorCQkJCTQ5ODc3MEMy
MTI0MkM1MzUwMDIyMjZCQSAvKiBEcmF3aW5nQnVmZmVyLmNwcCAqLywKKwkJCQk0OTg3NzBDMzEy
NDJDNTM1MDAyMjI2QkEgLyogRHJhd2luZ0J1ZmZlci5oICovLAorCQkJCTQ5ODc3MEM0MTI0MkM1
MzUwMDIyMjZCQSAvKiBMb29wQmxpbm5DbGFzc2lmaWVyLmNwcCAqLywKKwkJCQk0OTg3NzBDNTEy
NDJDNTM1MDAyMjI2QkEgLyogTG9vcEJsaW5uQ2xhc3NpZmllci5oICovLAorCQkJCTQ5ODc3MEM2
MTI0MkM1MzUwMDIyMjZCQSAvKiBMb29wQmxpbm5Db25zdGFudHMuaCAqLywKKwkJCQk0OTg3NzBD
NzEyNDJDNTM1MDAyMjI2QkEgLyogTG9vcEJsaW5uTWF0aFV0aWxzLmNwcCAqLywKKwkJCQk0OTg3
NzBDODEyNDJDNTM1MDAyMjI2QkEgLyogTG9vcEJsaW5uTWF0aFV0aWxzLmggKi8sCisJCQkJNDk4
NzcwQzkxMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BCbGlublRleHR1cmVDb29yZHMuY3BwICovLAor
CQkJCTQ5ODc3MENBMTI0MkM1MzUwMDIyMjZCQSAvKiBMb29wQmxpbm5UZXh0dXJlQ29vcmRzLmgg
Ki8sCisJCQkJNDk4NzcwQ0IxMjQyQzUzNTAwMjIyNkJBIC8qIFBPREFyZW5hLmggKi8sCisJCQkJ
NDk4NzcwQ0MxMjQyQzUzNTAwMjIyNkJBIC8qIFBPREludGVydmFsLmggKi8sCisJCQkJNDk4Nzcw
Q0QxMjQyQzUzNTAwMjIyNkJBIC8qIFBPREludGVydmFsVHJlZS5oICovLAorCQkJCTQ5ODc3MENF
MTI0MkM1MzUwMDIyMjZCQSAvKiBQT0RSZWRCbGFja1RyZWUuaCAqLywKKwkJCQk0OTg3NzBDRjEy
NDJDNTM1MDAyMjI2QkEgLyogU2hhZGVyLmNwcCAqLywKKwkJCQk0OTg3NzBEMDEyNDJDNTM1MDAy
MjI2QkEgLyogU2hhZGVyLmggKi8sCisJCQkJNDk4NzcwRDExMjQyQzUzNTAwMjIyNkJBIC8qIFNo
YXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcCAqLywKKwkJCQk0OTg3NzBEMjEyNDJDNTM1MDAyMjI2
QkEgLyogU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuaCAqLywKKwkJCQk0OTg3NzBEMzEyNDJDNTM1
MDAyMjI2QkEgLyogU29saWRGaWxsU2hhZGVyLmNwcCAqLywKKwkJCQk0OTg3NzBENDEyNDJDNTM1
MDAyMjI2QkEgLyogU29saWRGaWxsU2hhZGVyLmggKi8sCisJCQkJNDk4NzcwRDUxMjQyQzUzNTAw
MjIyNkJBIC8qIFRleFNoYWRlci5jcHAgKi8sCisJCQkJNDk4NzcwRDYxMjQyQzUzNTAwMjIyNkJB
IC8qIFRleFNoYWRlci5oICovLAorCQkJCTQ5ODc3MEQ3MTI0MkM1MzUwMDIyMjZCQSAvKiBUZXh0
dXJlLmNwcCAqLywKKwkJCQk0OTg3NzBEODEyNDJDNTM1MDAyMjI2QkEgLyogVGV4dHVyZS5oICov
LAorCQkJCTQ5ODc3MEQ5MTI0MkM1MzUwMDIyMjZCQSAvKiBUaWxpbmdEYXRhLmNwcCAqLywKKwkJ
CQk0OTg3NzBEQTEyNDJDNTM1MDAyMjI2QkEgLyogVGlsaW5nRGF0YS5oICovLAorCQkJKTsKKwkJ
CW5hbWUgPSBncHU7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQk0OTg3NzEx
NjEyNDJDRDdGMDAyMjI2QkEgLyogbWFjICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQlj
aGlsZHJlbiA9ICgKKwkJCQk0OTg3NzE1MjEyNDNGOUZBMDAyMjI2QkEgLyogRHJhd2luZ0J1ZmZl
ck1hYy5tbSAqLywKKwkJCSk7CisJCQluYW1lID0gbWFjOworCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKKwkJfTsKIAkJNDlFOTExQjIwRUY4NkQyNzAwOUQwQ0FGIC8qIHRyYW5zZm9ybXMgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTQ3NDksNiArMTQ4
NDIsNyBAQAogCQlBNzVFOEI3RjBFMURFMkIwMDA3RjI0ODEgLyogZmlsdGVycyAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNDk4NzcwQzExMjQyQzUwRDAw
MjIyNkJBIC8qIGdwdSAqLywKIAkJCQk4NDczMEQ1QTEyNDhGMEIzMDBEM0E5QzkgLyogRGlzdGFu
dExpZ2h0U291cmNlLmggKi8sCiAJCQkJQTc1RThCODAwRTFERTJENjAwN0YyNDgxIC8qIEZFQmxl
bmQuY3BwICovLAogCQkJCUE3NUU4QjgxMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUJsZW5kLmggKi8s
CkBAIC0yMDc5OCw2ICsyMDg5MiwyMSBAQAogCQkJCTkzRjE5OUVEMDgyNDVFNTkwMDFFOUFCQyAv
KiBYU0xUUHJvY2Vzc29yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUJFNTEyRTBDRjZDNTEyMDAy
RUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0RENEQ4NzBG
REY0RDZFMDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDk4Nzcw
REMxMjQyQzUzNTAwMjIyNkJBIC8qIERyYXdpbmdCdWZmZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTQ5ODc3MERFMTI0MkM1MzUwMDIyMjZCQSAvKiBMb29wQmxpbm5DbGFzc2lmaWVyLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk0OTg3NzBERjEyNDJDNTM1MDAyMjI2QkEgLyogTG9vcEJsaW5uQ29uc3Rh
bnRzLmggaW4gSGVhZGVycyAqLywKKwkJCQk0OTg3NzBFMTEyNDJDNTM1MDAyMjI2QkEgLyogTG9v
cEJsaW5uTWF0aFV0aWxzLmggaW4gSGVhZGVycyAqLywKKwkJCQk0OTg3NzBFMzEyNDJDNTM1MDAy
MjI2QkEgLyogTG9vcEJsaW5uVGV4dHVyZUNvb3Jkcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDk4
NzcwRTQxMjQyQzUzNTAwMjIyNkJBIC8qIFBPREFyZW5hLmggaW4gSGVhZGVycyAqLywKKwkJCQk0
OTg3NzBFNTEyNDJDNTM1MDAyMjI2QkEgLyogUE9ESW50ZXJ2YWwuaCBpbiBIZWFkZXJzICovLAor
CQkJCTQ5ODc3MEU2MTI0MkM1MzUwMDIyMjZCQSAvKiBQT0RJbnRlcnZhbFRyZWUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTQ5ODc3MEU3MTI0MkM1MzUwMDIyMjZCQSAvKiBQT0RSZWRCbGFja1RyZWUu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQ5ODc3MEU5MTI0MkM1MzUwMDIyMjZCQSAvKiBTaGFkZXIu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQ5ODc3MEVCMTI0MkM1MzUwMDIyMjZCQSAvKiBTaGFyZWRH
cmFwaGljc0NvbnRleHQzRC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDk4NzcwRUQxMjQyQzUzNTAw
MjIyNkJBIC8qIFNvbGlkRmlsbFNoYWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDk4NzcwRUYx
MjQyQzUzNTAwMjIyNkJBIC8qIFRleFNoYWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDk4Nzcw
RjExMjQyQzUzNTAwMjIyNkJBIC8qIFRleHR1cmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ5ODc3
MEYzMTI0MkM1MzUwMDIyMjZCQSAvKiBUaWxpbmdEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCSk7
CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIz
MzEyLDYgKzIzNDIxLDE3IEBACiAJCQkJOTNGMTlCMDUwODI0NUU1OTAwMUU5QUJDIC8qIFhTTFRQ
cm9jZXNzb3JMaWJ4c2x0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxQkU1MTJEMENGNkM1MTIw
MDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTdERDRE
ODYwRkRGNEQ2RTAwRUNGOUE0IC8qIFhTU0F1ZGl0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NDk4NzcwREIxMjQyQzUzNTAwMjIyNkJBIC8qIERyYXdpbmdCdWZmZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJNDk4NzcwREQxMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BCbGlubkNsYXNzaWZpZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDk4NzcwRTAxMjQyQzUzNTAwMjIyNkJBIC8qIExvb3BC
bGlubk1hdGhVdGlscy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0OTg3NzBFMjEyNDJDNTM1MDAy
MjI2QkEgLyogTG9vcEJsaW5uVGV4dHVyZUNvb3Jkcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0
OTg3NzBFODEyNDJDNTM1MDAyMjI2QkEgLyogU2hhZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTQ5ODc3MEVBMTI0MkM1MzUwMDIyMjZCQSAvKiBTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk0OTg3NzBFQzEyNDJDNTM1MDAyMjI2QkEgLyogU29saWRGaWxs
U2hhZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQ5ODc3MEVFMTI0MkM1MzUwMDIyMjZCQSAv
KiBUZXhTaGFkZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDk4NzcwRjAxMjQyQzUzNTAwMjIy
NkJBIC8qIFRleHR1cmUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDk4NzcwRjIxMjQyQzUzNTAw
MjIyNkJBIC8qIFRpbGluZ0RhdGEuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDk4NzcxNTMxMjQz
RjlGQTAwMjIyNkJBIC8qIERyYXdpbmdCdWZmZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCSk7
CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0RyYXdpbmdCdWZmZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0RyYXdpbmdCdWZmZXIuY3BwCShy
ZXZpc2lvbiA2ODcwNykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0RyYXdpbmdC
dWZmZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw5ICszMCwxMCBAQAogCiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQorCiAjaW5jbHVk
ZSAiRHJhd2luZ0J1ZmZlci5oIgogCi0jaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKICNp
bmNsdWRlICJTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC01Miw5ICs1Myw2IEBAIHZvaWQgRHJhd2luZ0J1ZmZlcjo6YmluZCgpCiAgICAgbV9jb250
ZXh0LT5zZXRWaWV3cG9ydChtX3NpemUpOwogfQogCi12b2lkIERyYXdpbmdCdWZmZXI6OnNldFdp
bGxQdWJsaXNoQ2FsbGJhY2soUGFzc093blB0cjxXaWxsUHVibGlzaENhbGxiYWNrPiBjYWxsYmFj
aykKLXsKLSAgICBtX2NhbGxiYWNrID0gY2FsbGJhY2s7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9EcmF3
aW5nQnVmZmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
RHJhd2luZ0J1ZmZlci5oCShyZXZpc2lvbiA2ODcwNykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0RyYXdpbmdCdWZmZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsMTggKzMxLDI0
IEBACiAjaWZuZGVmIERyYXdpbmdCdWZmZXJfaAogI2RlZmluZSBEcmF3aW5nQnVmZmVyX2gKIAor
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllci5o
IgogI2luY2x1ZGUgIkludFNpemUuaCIKIAogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgog
I2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2lm
IFBMQVRGT1JNKE1BQykKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjZW5kaWYKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTaGFyZWRHcmFwaGljc0NvbnRleHQzRDsKIAorI2lm
IFBMQVRGT1JNKENIUk9NSVVNKQogc3RydWN0IERyYXdpbmdCdWZmZXJJbnRlcm5hbDsKKyNlbmRp
ZgogCiAvLyBNYW5hZ2VzIGEgcmVuZGVyaW5nIHRhcmdldCAoZnJhbWVidWZmZXIgKyBhdHRhY2ht
ZW50KSBmb3IgYSBjYW52YXMuICBDYW4gcHVibGlzaCBpdHMgcmVuZGVyaW5nCiAvLyByZXN1bHRz
IHRvIGEgUGxhdGZvcm1MYXllciBmb3IgY29tcG9zaXRpbmcuCkBAIC02MiwxMiArNjgsMTcgQEAg
cHVibGljOgogCiAgICAgdW5zaWduZWQgZ2V0UmVuZGVyaW5nUmVzdWx0c0FzVGV4dHVyZSgpOwog
CisjaWYgUExBVEZPUk0oQ0hST01JVU0pCiAgICAgY2xhc3MgV2lsbFB1Ymxpc2hDYWxsYmFjayA6
IHB1YmxpYyBOb25jb3B5YWJsZSB7CiAgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5XaWxs
UHVibGlzaENhbGxiYWNrKCkgeyB9CisgICAgICAgIAogICAgICAgICB2aXJ0dWFsIHZvaWQgd2ls
bFB1Ymxpc2goKSA9IDA7CiAgICAgfTsKIAotICAgIHZvaWQgc2V0V2lsbFB1Ymxpc2hDYWxsYmFj
ayhQYXNzT3duUHRyPFdpbGxQdWJsaXNoQ2FsbGJhY2s+KTsKKyAgICB2b2lkIHNldFdpbGxQdWJs
aXNoQ2FsbGJhY2soUGFzc093blB0cjxXaWxsUHVibGlzaENhbGxiYWNrPikgeyBtX2NhbGxiYWNr
ID0gY2FsbGJhY2s7IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIERyYXdpbmdCdWZmZXIoU2hh
cmVkR3JhcGhpY3NDb250ZXh0M0QqLCBjb25zdCBJbnRTaXplJiwgdW5zaWduZWQgZnJhbWVidWZm
ZXIpOwogCkBAIC03NSw4ICs4NiwxNCBAQCBwcml2YXRlOgogICAgIEludFNpemUgbV9zaXplOwog
ICAgIHVuc2lnbmVkIG1fZnJhbWVidWZmZXI7CiAKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKICAg
ICBPd25QdHI8V2lsbFB1Ymxpc2hDYWxsYmFjaz4gbV9jYWxsYmFjazsKICAgICBPd25QdHI8RHJh
d2luZ0J1ZmZlckludGVybmFsPiBtX2ludGVybmFsOworI2VuZGlmCisKKyNpZiBQTEFURk9STShN
QUMpCisgICAgUmV0YWluUHRyPFdlYkdMTGF5ZXI+IG1fcGxhdGZvcm1MYXllcjsKKyNlbmRpZgog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvTG9vcEJsaW5uQ2xhc3NpZmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvTG9vcEJsaW5uQ2xhc3NpZmllci5jcHAJKHJldmlzaW9uIDY4
NzA3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvTG9vcEJsaW5uQ2xhc3NpZmll
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDggQEAKIAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogCisjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKKwogI2luY2x1ZGUgIkxv
b3BCbGlubkNsYXNzaWZpZXIuaCIKIAogI2luY2x1ZGUgIkxvb3BCbGlubk1hdGhVdGlscy5oIgpA
QCAtMTIwLDMgKzEyMiw1IEBAIExvb3BCbGlubkNsYXNzaWZpZXI6OlJlc3VsdCBMb29wQmxpbm5D
bGEKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0xvb3BCbGlubk1hdGhVdGlscy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvTG9vcEJsaW5uTWF0aFV0aWxzLmNwcAko
cmV2aXNpb24gNjg3MDcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9Mb29wQmxp
bm5NYXRoVXRpbHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwxMiArMjUsMTMgQEAKIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogCisjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKKwog
I2luY2x1ZGUgIkxvb3BCbGlubk1hdGhVdGlscy5oIgogCiAjaW5jbHVkZSAiRmxvYXRQb2ludC5o
IgotI2luY2x1ZGUgIk1hdGhFeHRyYXMuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+Ci0jaW5jbHVk
ZSA8c3RyaW5nLmg+IC8vIGZvciBtZW1jcHkKKyNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgTG9vcEJsaW5uTWF0aFV0aWxzIHsKQEAg
LTU2MywzICs1NjQsNSBAQCBpbnQgbnVtWFJheUNyb3NzaW5nc0ZvckN1YmljKGNvbnN0IFhSYXkm
CiAKIH0gLy8gbmFtZXNwYWNlIExvb3BCbGlubk1hdGhVdGlscwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0xvb3BC
bGlublRleHR1cmVDb29yZHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0xvb3BCbGlublRleHR1cmVDb29yZHMuY3BwCShyZXZpc2lvbiA2ODcwNykKKysr
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0xvb3BCbGlublRleHR1cmVDb29yZHMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw4IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIK
IAorI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCisKICNpbmNsdWRlICJMb29wQmxp
bm5UZXh0dXJlQ29vcmRzLmgiCiAKICNpbmNsdWRlIDxtYXRoLmg+CkBAIC0xNjksMyArMTcxLDUg
QEAgTG9vcEJsaW5uVGV4dHVyZUNvb3Jkczo6UmVzdWx0IExvb3BCbGlubgogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvU2hhZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9TaGFkZXIuY3BwCShyZXZpc2lvbiA2ODcwNykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L1NoYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDkgQEAKICAq
LwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FO
VkFTKQorCiAjaW5jbHVkZSAiU2hhZGVyLmgiCiAKICNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0u
aCIKQEAgLTEwOSwzICsxMTIsNSBAQCBTaGFkZXI6On5TaGFkZXIoKQogfQogCiB9CisKKyNlbmRp
ZgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhpY3NDb250
ZXh0M0QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1No
YXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcAkocmV2aXNpb24gNjg3MDcpCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMwLDYgKzMwLDggQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCisjaWYgRU5B
QkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKKwogI2luY2x1ZGUgIlNoYXJlZEdyYXBoaWNzQ29u
dGV4dDNELmgiCiAKICNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKQEAgLTIxNSw4ICsyMTcs
OCBAQCB2b2lkIFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjpyZW1vdmVUZXh0CiAvLyBzdGF0aWMK
IEhhc2hTZXQ8U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QqPiogU2hhcmVkR3JhcGhpY3NDb250ZXh0
M0Q6OmFsbENvbnRleHRzKCkKIHsKLSAgICBzdGF0aWMgT3duUHRyPEhhc2hTZXQ8U2hhcmVkR3Jh
cGhpY3NDb250ZXh0M0QqPiA+IHNldChuZXcgSGFzaFNldDxTaGFyZWRHcmFwaGljc0NvbnRleHQz
RCo+KTsKLSAgICByZXR1cm4gc2V0LmdldCgpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFz
aFNldDxTaGFyZWRHcmFwaGljc0NvbnRleHQzRCo+LCBhbGxDb250ZXh0c1NldCwgKCkpOworICAg
IHJldHVybiAmYWxsQ29udGV4dHNTZXQ7CiB9CiAKIApAQCAtMzM0LDMgKzMzNiw1IEBAIGJvb2wg
U2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OnBhaW50c0ludG8KIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1Nv
bGlkRmlsbFNoYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvU29saWRGaWxsU2hhZGVyLmNwcAkocmV2aXNpb24gNjg3MDcpCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9Tb2xpZEZpbGxTaGFkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOSw2ICsyOSw5IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxF
KEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKKwogI2luY2x1ZGUgIlNvbGlkRmlsbFNoYWRlci5oIgog
CiAjaW5jbHVkZSAiQ29sb3IuaCIKQEAgLTg2LDMgKzg5LDUgQEAgdm9pZCBTb2xpZEZpbGxTaGFk
ZXI6OnVzZShjb25zdCBBZmZpbmVUcgogfQogCiB9CisKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvVGV4U2hhZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9UZXhTaGFkZXIuY3BwCShyZXZpc2lvbiA2ODcwNykKKysr
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1RleFNoYWRlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDYgKzI5LDkgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBF
TkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQorCiAjaW5jbHVkZSAiVGV4U2hhZGVyLmgiCiAK
ICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgpAQCAtOTMsMyArOTYsNSBAQCB2b2lkIFRl
eFNoYWRlcjo6dXNlKGNvbnN0IEFmZmluZVRyYW5zZm9yCiB9CiAKIH0KKworI2VuZGlmCkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9UZXh0dXJlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9UZXh0dXJlLmNwcAkocmV2aXNpb24gNjg3
MDcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9UZXh0dXJlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzAsNiArMzAsOCBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKKyNpZiBF
TkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQorCiAjaW5jbHVkZSAiVGV4dHVyZS5oIgogCiAj
aW5jbHVkZSAiRmxvYXRSZWN0LmgiCkBAIC0yMDYsMyArMjA4LDUgQEAgdm9pZCBUZXh0dXJlOjpi
aW5kVGlsZShpbnQgdGlsZSkKIH0KIAogfQorCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L1RleHR1cmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9UZXh0dXJlLmgJKHJldmlzaW9uIDY4NzA3KQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvVGV4dHVyZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwxMSArMzEs
MTEgQEAKICNpZm5kZWYgVGV4dHVyZV9oCiAjZGVmaW5lIFRleHR1cmVfaAogCi0jaW5jbHVkZSAi
UmVmQ291bnRlZC5oIgotI2luY2x1ZGUgIlJlZlB0ci5oIgogI2luY2x1ZGUgIlRpbGluZ0RhdGEu
aCIKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4K
KyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1RpbGluZ0RhdGEuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1RpbGluZ0RhdGEuY3BwCShyZXZpc2lvbiA2ODcw
NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1RpbGluZ0RhdGEuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw5IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgor
CisjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKKwogI2luY2x1ZGUgIlRpbGluZ0Rh
dGEuaCIKIAogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgpAQCAtMjIwLDMgKzIyMyw1IEBAIHZvaWQg
VGlsaW5nRGF0YTo6aW50ZXJzZWN0RHJhd1F1YWQoY29uc3QKIH0KIAogfQorCisjZW5kaWYKSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L21hYy9EcmF3aW5nQnVmZmVyTWFjLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L21hYy9EcmF3aW5n
QnVmZmVyTWFjLm1tCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvbWFjL0RyYXdpbmdCdWZmZXJNYWMubW0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMp
CisKKyNpbmNsdWRlICJEcmF3aW5nQnVmZmVyLmgiCisKKyNpbmNsdWRlICJTaGFyZWRHcmFwaGlj
c0NvbnRleHQzRC5oIgorI2luY2x1ZGUgIldlYkdMTGF5ZXIuaCIKKworI2ltcG9ydCAiQmxvY2tF
eGNlcHRpb25zLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRHJhd2luZ0J1ZmZlcjo6RHJh
d2luZ0J1ZmZlcihTaGFyZWRHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCwgY29uc3QgSW50U2l6
ZSYgc2l6ZSwgdW5zaWduZWQgZnJhbWVidWZmZXIpCisgICAgOiBtX2NvbnRleHQoY29udGV4dCkK
KyAgICAsIG1fc2l6ZShzaXplKQorICAgICwgbV9mcmFtZWJ1ZmZlcihmcmFtZWJ1ZmZlcikKK3sK
KyAgICBjb250ZXh0LT5iaW5kRnJhbWVidWZmZXIoZnJhbWVidWZmZXIpOworCisgICAgLy8gQ3Jl
YXRlIHRoZSBXZWJHTExheWVyCisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAg
ICAgIG1fcGxhdGZvcm1MYXllci5hZG9wdE5TKFtbV2ViR0xMYXllciBhbGxvY10gaW5pdFdpdGhH
cmFwaGljc0NvbnRleHQzRDowXSk7CisjaWZuZGVmIE5ERUJVRworICAgICAgICBbbV9wbGF0Zm9y
bUxheWVyLmdldCgpIHNldE5hbWU6QCJXZWJHTCBMYXllciJdOworI2VuZGlmICAgIAorICAgIEVO
RF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKK30KKworRHJhd2luZ0J1ZmZlcjo6fkRyYXdpbmdCdWZm
ZXIoKQoreworICAgIG1fY29udGV4dC0+YmluZEZyYW1lYnVmZmVyKG1fZnJhbWVidWZmZXIpOwor
ICAgIG1fY29udGV4dC0+ZGVsZXRlRnJhbWVidWZmZXIobV9mcmFtZWJ1ZmZlcik7Cit9CisKK3Zv
aWQgRHJhd2luZ0J1ZmZlcjo6cmVzZXQoY29uc3QgSW50U2l6ZSYgbmV3U2l6ZSkKK3sKKyAgICBp
ZiAobV9zaXplID09IG5ld1NpemUpCisgICAgICAgIHJldHVybjsKKyAgICBtX3NpemUgPSBuZXdT
aXplOworCisgICAgbV9jb250ZXh0LT50ZXhJbWFnZTJEKEdyYXBoaWNzQ29udGV4dDNEOjpURVhU
VVJFXzJELCAwLCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSwgbV9zaXplLndpZHRoKCksIG1fc2l6
ZS5oZWlnaHQoKSwgMCwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEsIEdyYXBoaWNzQ29udGV4dDNE
OjpVTlNJR05FRF9CWVRFLCAwKTsKK30KKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKK1BsYXRmb3JtTGF5ZXIqIERyYXdpbmdCdWZmZXI6OnBsYXRmb3JtTGF5ZXIoKQoreworICAg
IHJldHVybiBtX3BsYXRmb3JtTGF5ZXIuZ2V0KCk7Cit9CisjZW5kaWYKKworfQorCisjZW5kaWYK
SW5kZXg6IFdlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ2hh
bmdlTG9nCShyZXZpc2lvbiA2ODcxMikKKysrIFdlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDktMjkgIENocmlzIE1hcnJpbiAgPGNtYXJy
aW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE1ha2UgMkQgYWNjZWxlcmF0ZWQgY2FudmFzIHJlbmRlcmluZyBidWlsZCBvbiBNYWMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2MDA3Cisg
ICAgICAgIAorICAgICAgICBBZGRlZCBBQ0NFTEVSQVRFRF8yRF9DQU5WQVMgdG8gRmVhdHVyZURl
ZmluZXMKKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
OgorCiAyMDEwLTA5LTI4ICBKb2hubnkgRGluZyAgPGpuZEBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KSW5kZXg6IFdlYktpdC9tYWMvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkocmV2aXNpb24gNjg3MDcpCisrKyBX
ZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCSh3b3JraW5n
IGNvcHkpCkBAIC0zMyw2ICszMywxMSBAQAogCiBFTkFCTEVfTElOS19QUkVGRVRDSCA9IDsKIAor
RU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyA9ICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NB
TlZBU18kKFJFQUxfUExBVEZPUk1fTkFNRSkpOworRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZB
U19tYWNvc3ggPSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVNfbWFjb3N4XyQoVEFSR0VU
X01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKTsKK0VOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVNf
bWFjb3N4XzEwNjAgPSA7CitFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTX21hY29zeF8xMDcw
ID0gOworCiBFTkFCTEVfM0RfQ0FOVkFTID0gJChFTkFCTEVfM0RfQ0FOVkFTXyQoUkVBTF9QTEFU
Rk9STV9OQU1FKSk7CiBFTkFCTEVfM0RfQ0FOVkFTX21hY29zeCA9ICQoRU5BQkxFXzNEX0NBTlZB
U19tYWNvc3hfJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUikpOwogRU5BQkxFXzNEX0NB
TlZBU19tYWNvc3hfMTA2MCA9IEVOQUJMRV8zRF9DQU5WQVM7CkBAIC0xMjAsNCArMTI1LDQgQEAg
RU5BQkxFX1hIVE1MTVAgPSA7CiBFTkFCTEVfWFBBVEggPSBFTkFCTEVfWFBBVEg7CiBFTkFCTEVf
WFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV9MSU5LX1BS
RUZFVENIKSAkKEVOQUJMRV8zRF9DQU5WQVMpICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFC
TEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNF
RF9HRU9MT0NBVElPTikgJChFTkFCTEVfREFUQUJBU0UpICQoRU5BQkxFX0RBVEFHUklEKSAkKEVO
QUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJF
Q1RPUllfVVBMT0FEKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRVZFTlRTT1VSQ0Up
ICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GVUxMU0NS
RUVOX0FQSSkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChF
TkFCTEVfSU1BR0VfUkVTSVpFUikgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVf
SU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9NQVRI
TUwpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVf
T0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxF
X1JVQlkpICQoRU5BQkxFX1NBTkRCT1gpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJM
RV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChF
TkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxF
X1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklERU8pICQo
RU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XTUwpICQo
RU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJM
RV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5B
QkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfM0RfQ0FOVkFTKSAkKEVOQUJMRV8z
RF9SRU5ERVJJTkcpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAk
KEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0RBVEFCQVNFKSAkKEVO
QUJMRV9EQVRBR1JJRCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RFVklDRV9PUklFTlRB
VElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQo
RU5BQkxFX0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GSUxFX1NZU1RF
TSkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJM
RV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lNQUdFX1JFU0laRVIpICQoRU5BQkxFX0lOREVYRURf
REFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJV
R0dFUikgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX05PVElG
SUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykgJChFTkFCTEVfUFJP
R1JFU1NfVEFHKSAkKEVOQUJMRV9SVUJZKSAkKEVOQUJMRV9TQU5EQk9YKSAkKEVOQUJMRV9TSEFS
RURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5JTUFUSU9OKSAkKEVOQUJM
RV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVf
U1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQoRU5BQkxFX1NWR19VU0Up
ICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlO
RykgJChFTkFCTEVfV01MKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFRNTE1QKSAkKEVO
QUJMRV9YUEFUSCkgJChFTkFCTEVfWFNMVCk7CkluZGV4OiBXZWJLaXRUb29scy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2ODcxMikKKysr
IFdlYktpdFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisy
MDEwLTA5LTI5ICBDaHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIDJEIGFjY2VsZXJhdGVk
IGNhbnZhcyByZW5kZXJpbmcgYnVpbGQgb24gTWFjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjAwNworICAgICAgICAKKyAgICAgICAgQWRkZWQgQUND
RUxFUkFURURfMkRfQ0FOVkFTIHRvIGJ1aWxkLXdlYmtpdAorCisgICAgICAgICogU2NyaXB0cy9i
dWlsZC13ZWJraXQ6CisKIDIwMTAtMDktMjkgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBKYW1lcyBSb2JpbnNvbi4KSW5kZXg6IFdlYktpdFRv
b2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL1Njcmlw
dHMvYnVpbGQtd2Via2l0CShyZXZpc2lvbiA2ODcwNykKKysrIFdlYktpdFRvb2xzL1NjcmlwdHMv
YnVpbGQtd2Via2l0CSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw3IEBAIG15ICRwcmVmaXhQ
YXRoOwogbXkgJG1ha2VBcmdzOwogbXkgJHN0YXJ0VGltZSA9IHRpbWUoKTsKIAotbXkgKCRsaW5r
UHJlZmV0Y2hTdXBwb3J0LCAkdGhyZWVEQ2FudmFzU3VwcG9ydCwgJHRocmVlRFJlbmRlcmluZ1N1
cHBvcnQsICRjaGFubmVsTWVzc2FnaW5nU3VwcG9ydCwgJGNsaWVudEJhc2VkR2VvbG9jYXRpb25T
dXBwb3J0LCAkZGF0YWJhc2VTdXBwb3J0LCAkZGF0YWdyaWRTdXBwb3J0LCAkZGF0YWxpc3RTdXBw
b3J0LAorbXkgKCRsaW5rUHJlZmV0Y2hTdXBwb3J0LCAkYWNjZWxlcmF0ZWQyZENhbnZhc1N1cHBv
cnQsICR0aHJlZURDYW52YXNTdXBwb3J0LCAkdGhyZWVEUmVuZGVyaW5nU3VwcG9ydCwgJGNoYW5u
ZWxNZXNzYWdpbmdTdXBwb3J0LCAkY2xpZW50QmFzZWRHZW9sb2NhdGlvblN1cHBvcnQsICRkYXRh
YmFzZVN1cHBvcnQsICRkYXRhZ3JpZFN1cHBvcnQsICRkYXRhbGlzdFN1cHBvcnQsCiAgICAgJGRv
bVN0b3JhZ2VTdXBwb3J0LCAkZXZlbnRzb3VyY2VTdXBwb3J0LCAkZmlsdGVyc1N1cHBvcnQsICRn
ZW9sb2NhdGlvblN1cHBvcnQsICRpY29uRGF0YWJhc2VTdXBwb3J0LCAkaW1hZ2VSZXNpemVyU3Vw
cG9ydCwgJGluZGV4ZWREYXRhYmFzZVN1cHBvcnQsICRpbnB1dFNwZWVjaFN1cHBvcnQsCiAgICAg
JGphdmFTY3JpcHREZWJ1Z2dlclN1cHBvcnQsICRtYXRobWxTdXBwb3J0LCAkb2ZmbGluZVdlYkFw
cGxpY2F0aW9uU3VwcG9ydCwgJHJ1YnlTdXBwb3J0LCAkc3lzdGVtTWFsbG9jU3VwcG9ydCwgJHNh
bmRib3hTdXBwb3J0LCAkc2hhcmVkV29ya2Vyc1N1cHBvcnQsCiAgICAgJHN2Z1N1cHBvcnQsICRz
dmdBbmltYXRpb25TdXBwb3J0LCAkc3ZnQXNJbWFnZVN1cHBvcnQsICRzdmdET01PYmpDQmluZGlu
Z3NTdXBwb3J0LCAkc3ZnRm9udHNTdXBwb3J0LApAQCAtNjksNiArNjksOSBAQCBteSBAZmVhdHVy
ZXMgPSAoCiAgICAgeyBvcHRpb24gPT4gImxpbmstcHJlZmV0Y2giLCBkZXNjID0+ICJUb2dnbGUg
cHJlIGZldGNoaW5nIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTElOS19QUkVG
RVRDSCIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRsaW5rUHJlZmV0Y2hTdXBwb3J0IH0sCiAK
KyAgICB7IG9wdGlvbiA9PiAiYWNjZWxlcmF0ZWQtMmQtY2FudmFzIiwgZGVzYyA9PiAiVG9nZ2xl
IGFjY2VsZXJhdGVkIDJEIGNhbnZhcyBzdXBwb3J0IiwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxF
X0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRhY2NlbGVy
YXRlZDJkQ2FudmFzU3VwcG9ydCB9LAorCiAgICAgeyBvcHRpb24gPT4gIjNkLWNhbnZhcyIsIGRl
c2MgPT4gIlRvZ2dsZSAzRCBjYW52YXMgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJM
RV8zRF9DQU5WQVMiLCBkZWZhdWx0ID0+IChpc0FwcGxlTWFjV2ViS2l0KCkgJiYgIWlzVGlnZXIo
KSAmJiAhaXNMZW9wYXJkKCkpLCB2YWx1ZSA9PiBcJHRocmVlRENhbnZhc1N1cHBvcnQgfSwKIAo=
</data>
<flag name="review"
          id="59018"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>