<?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>217506</bug_id>
          
          <creation_ts>2020-10-09 00:10:17 -0700</creation_ts>
          <short_desc>[Cocoa] [GPU Process] Perform image decoding of color fonts in the Web Process</short_desc>
          <delta_ts>2020-10-30 20:34:38 -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>Text</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>217539</dependson>
    
    <dependson>217541</dependson>
    
    <dependson>217749</dependson>
    
    <dependson>218346</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>annulen</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1696139</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-09 00:10:17 -0700</bug_when>
    <thetext>[Cocoa] [GPU Process] Perform image decoding of color fonts in the Web Process</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696141</commentid>
    <comment_count>1</comment_count>
      <attachid>410919</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-09 00:11:26 -0700</bug_when>
    <thetext>Created attachment 410919
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696142</commentid>
    <comment_count>2</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-09 00:11:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/69768186&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696143</commentid>
    <comment_count>3</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-09 00:13:11 -0700</bug_when>
    <thetext>I need to:

1. Split this patch up into 3 pieces
2. Work out the details (see comments in the WIP patch)
3. Add tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696239</commentid>
    <comment_count>4</comment_count>
      <attachid>410919</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-10-09 09:31:13 -0700</bug_when>
    <thetext>Comment on attachment 410919
WIP

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

Are we going to record all glyph drawing? Currently we don&apos;t have a way to measure perf impact (no motionmark test draws text into canvas); should we wait to land this until we can measure its perf impact?

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListDrawGlyphsRecorder.h:50
&gt; +    DrawGlyphsRecorder(Recorder&amp;);

explicit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696459</commentid>
    <comment_count>5</comment_count>
      <attachid>410998</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-09 20:01:17 -0700</bug_when>
    <thetext>Created attachment 410998
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696460</commentid>
    <comment_count>6</comment_count>
      <attachid>410999</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-09 20:02:32 -0700</bug_when>
    <thetext>Created attachment 410999
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696468</commentid>
    <comment_count>7</comment_count>
      <attachid>411002</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-09 20:20:38 -0700</bug_when>
    <thetext>Created attachment 411002
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696493</commentid>
    <comment_count>8</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-09 23:39:33 -0700</bug_when>
    <thetext>After playing around with this for a little while, the only canvas tests I could write that were broken by this patch are:

1. The placement of images and their shadows
2. Shadows of COLR glyphs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697187</commentid>
    <comment_count>9</comment_count>
      <attachid>411200</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-13 00:18:17 -0700</bug_when>
    <thetext>Created attachment 411200
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697584</commentid>
    <comment_count>10</comment_count>
      <attachid>411291</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-13 18:53:20 -0700</bug_when>
    <thetext>Created attachment 411291
Almost ready</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697632</commentid>
    <comment_count>11</comment_count>
      <attachid>411305</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-14 00:35:50 -0700</bug_when>
    <thetext>Created attachment 411305
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698423</commentid>
    <comment_count>12</comment_count>
      <attachid>411517</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-15 18:47:36 -0700</bug_when>
    <thetext>Created attachment 411517
Needs tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698428</commentid>
    <comment_count>13</comment_count>
      <attachid>411520</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-15 18:50:14 -0700</bug_when>
    <thetext>Created attachment 411520
Needs tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698465</commentid>
    <comment_count>14</comment_count>
      <attachid>411531</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-15 21:15:38 -0700</bug_when>
    <thetext>Created attachment 411531
Ahem with sbix table</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698470</commentid>
    <comment_count>15</comment_count>
      <attachid>411534</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-15 22:09:38 -0700</bug_when>
    <thetext>Created attachment 411534
Needs COLR test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698487</commentid>
    <comment_count>16</comment_count>
      <attachid>411542</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-16 01:00:02 -0700</bug_when>
    <thetext>Created attachment 411542
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698488</commentid>
    <comment_count>17</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-16 01:02:30 -0700</bug_when>
    <thetext>This is almost ready.

Two things are remaining:
1. Performance testing
2. sbix images seem to be horizontally flipped</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698489</commentid>
    <comment_count>18</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-16 01:04:26 -0700</bug_when>
    <thetext>3. There are a few FIXMEs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698490</commentid>
    <comment_count>19</comment_count>
      <attachid>411542</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-16 01:07:11 -0700</bug_when>
    <thetext>Comment on attachment 411542
Patch

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

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListDrawGlyphsRecorderCoreText.cpp:133
&gt; +    updateCTM(m_originalCTM);

There might be more to do here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698702</commentid>
    <comment_count>20</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-16 12:02:22 -0700</bug_when>
    <thetext>We probably should never set the CTM. We probably should always append a modification instead. Just in case, to be defensive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701704</commentid>
    <comment_count>21</comment_count>
      <attachid>412368</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-26 18:09:10 -0700</bug_when>
    <thetext>Created attachment 412368
WIP

Remaining: 1. Outline shadows are not drawn in the right place 2. Make sure non-emulated shadows work 3. Perf testing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701770</commentid>
    <comment_count>22</comment_count>
      <attachid>412395</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-26 22:57:31 -0700</bug_when>
    <thetext>Created attachment 412395
WIP

Perf testing is the last remaining step</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702158</commentid>
    <comment_count>23</comment_count>
      <attachid>412480</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-27 17:16:39 -0700</bug_when>
    <thetext>Created attachment 412480
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702561</commentid>
    <comment_count>24</comment_count>
      <attachid>412589</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-28 16:40:22 -0700</bug_when>
    <thetext>Created attachment 412589
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702585</commentid>
    <comment_count>25</comment_count>
      <attachid>412598</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-28 18:06:59 -0700</bug_when>
    <thetext>Created attachment 412598
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702591</commentid>
    <comment_count>26</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-28 19:13:05 -0700</bug_when>
    <thetext>Without patch:
With 1 canvas element: 125.58 | -1.87% / +1.35%
Only 1 canvas element: 169.66 | -1.97% / +1.48%

With patch:
With 1 canvas element: 126.87 | -1.68% / +1.08%
Only 1 canvas element: 171.21 | -1.54% / +1.67%

Not a regression!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702594</commentid>
    <comment_count>27</comment_count>
      <attachid>412603</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-28 19:15:32 -0700</bug_when>
    <thetext>Created attachment 412603
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702635</commentid>
    <comment_count>28</comment_count>
      <attachid>412617</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-28 23:29:15 -0700</bug_when>
    <thetext>Created attachment 412617
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702782</commentid>
    <comment_count>29</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-29 10:55:58 -0700</bug_when>
    <thetext>Tests in https://bugs.webkit.org/show_bug.cgi?id=218346</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702783</commentid>
    <comment_count>30</comment_count>
      <attachid>412617</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-10-29 11:00:38 -0700</bug_when>
    <thetext>Comment on attachment 412617
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Test: fast/text/canvas-sbix.html

More words here please.

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListDrawGlyphsRecorder.h:103
&gt; +    float m_originalShadowBlur;

initialize

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListDrawGlyphsRecorder.h:108
&gt; +    float m_currentShadowBlur;

initialize

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListDrawGlyphsRecorder.h:110
&gt; +    bool m_currentShadowsIgnoreTransforms;

initialize

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListDrawGlyphsRecorderCoreText.cpp:111
&gt; +    m_originalFillColor = state.fillColor;
&gt; +    m_originalFillGradient = state.fillGradient;
&gt; +    m_originalFillPattern = state.fillPattern;
&gt; +
&gt; +    m_originalStrokeColor = state.strokeColor;
&gt; +    m_originalStrokeGradient = state.strokeGradient;
&gt; +    m_originalStrokePattern = state.strokePattern;
&gt; +
&gt; +    m_currentFillColor = m_originalFillColor;
&gt; +    m_currentStrokeColor = m_originalStrokeColor;

Could you group things into structs to make this one assignment?

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListDrawGlyphsRecorderCoreText.cpp:157
&gt; +    m_originalShadowOffset = state.shadowOffset;
&gt; +    m_originalShadowBlur = state.shadowBlur;
&gt; +    m_originalShadowColor = state.shadowColor;
&gt; +    m_originalShadowsIgnoreTransforms = state.shadowsIgnoreTransforms;
&gt; +
&gt; +    m_currentShadowOffset = m_originalShadowOffset;
&gt; +    m_currentShadowBlur = m_originalShadowBlur;
&gt; +    m_currentShadowColor = m_originalShadowColor;
&gt; +    m_currentShadowsIgnoreTransforms = m_originalShadowsIgnoreTransforms;

Could also clean this up.

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListDrawGlyphsRecorderCoreText.cpp:171
&gt; +void DrawGlyphsRecorder::updateCTM(AffineTransform ctm)

const AffineTransform&amp;

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListDrawGlyphsRecorderCoreText.cpp:233
&gt; +        newState.shadowOffset = shadowOffset;
&gt; +        newState.shadowBlur = shadowBlur;
&gt; +        newState.shadowColor = shadowColor;

Here too

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListDrawGlyphsRecorderCoreText.cpp:246
&gt; +    m_currentShadowOffset = shadowOffset;
&gt; +    m_currentShadowBlur = shadowBlur;
&gt; +    m_currentShadowColor = shadowColor;

Here too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702955</commentid>
    <comment_count>31</comment_count>
      <attachid>412706</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-29 20:02:47 -0700</bug_when>
    <thetext>Created attachment 412706
Rebased</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702964</commentid>
    <comment_count>32</comment_count>
      <attachid>412617</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-29 20:43:21 -0700</bug_when>
    <thetext>Comment on attachment 412617
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/displaylists/DisplayListDrawGlyphsRecorderCoreText.cpp:233
&gt;&gt; +        newState.shadowColor = shadowColor;
&gt; 
&gt; Here too

I can&apos;t do it here, because newState is a GraphicsContextState, and modifying that is outside the scope of this patch. I can do it in the above places, though.

&gt;&gt; Source/WebCore/platform/graphics/displaylists/DisplayListDrawGlyphsRecorderCoreText.cpp:246
&gt;&gt; +    m_currentShadowColor = shadowColor;
&gt; 
&gt; Here too

I don&apos;t think it&apos;s a good fit in this particular place, because that 4th argument is a different type and has some logic on the line below. I&apos;ve moved the shadow stuff into a struct for encapsulation, but I don&apos;t think this particular place can be a single line assignment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702970</commentid>
    <comment_count>33</comment_count>
      <attachid>412710</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-29 21:16:15 -0700</bug_when>
    <thetext>Created attachment 412710
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702977</commentid>
    <comment_count>34</comment_count>
      <attachid>412714</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-29 22:24:09 -0700</bug_when>
    <thetext>Created attachment 412714
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703089</commentid>
    <comment_count>35</comment_count>
      <attachid>412757</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-30 09:30:55 -0700</bug_when>
    <thetext>Created attachment 412757
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703096</commentid>
    <comment_count>36</comment_count>
      <attachid>412757</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-10-30 09:44:21 -0700</bug_when>
    <thetext>Comment on attachment 412757
Patch

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

&gt; Source/WebCore/ChangeLog:14
&gt; +        character, Core Text will end up telling Core Graphics to draw all the outlines, and then telling Core
&gt; +        Graphics to draw the emoji image (using Core Graphics&apos;s normal image drawing routines).

This makes it sound like the emoji are z-ordered on top but I don&apos;t think they are.

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListDrawGlyphsRecorderCoreText.cpp:106
&gt; +    m_originalState.ctm = m_owner.currentState().ctm; // FIXME: Deal with device scale.

How important is this FIXME?

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListDrawGlyphsRecorderCoreText.cpp:309
&gt; +    // We want the GPU process&apos;s CTM and text matrix to match the current CTM and text matrix.

This code shouldn&apos;t reference the GPU process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703136</commentid>
    <comment_count>37</comment_count>
      <attachid>412757</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-30 11:21:44 -0700</bug_when>
    <thetext>Comment on attachment 412757
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/displaylists/DisplayListDrawGlyphsRecorderCoreText.cpp:106
&gt;&gt; +    m_originalState.ctm = m_owner.currentState().ctm; // FIXME: Deal with device scale.
&gt; 
&gt; How important is this FIXME?

I think it&apos;s important. Right now our display list infrastructure doesn&apos;t handle retina displays. All display lists assume a 1x base CTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703138</commentid>
    <comment_count>38</comment_count>
      <attachid>412757</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-30 11:22:31 -0700</bug_when>
    <thetext>Comment on attachment 412757
Patch

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

&gt;&gt;&gt; Source/WebCore/platform/graphics/displaylists/DisplayListDrawGlyphsRecorderCoreText.cpp:106
&gt;&gt;&gt; +    m_originalState.ctm = m_owner.currentState().ctm; // FIXME: Deal with device scale.
&gt;&gt; 
&gt;&gt; How important is this FIXME?
&gt; 
&gt; I think it&apos;s important. Right now our display list infrastructure doesn&apos;t handle retina displays. All display lists assume a 1x base CTM.

I&apos;ve rewritten this to be &quot;// FIXME: Deal with base CTM.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703139</commentid>
    <comment_count>39</comment_count>
      <attachid>412778</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-30 11:24:18 -0700</bug_when>
    <thetext>Created attachment 412778
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703264</commentid>
    <comment_count>40</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-30 17:01:11 -0700</bug_when>
    <thetext>Committed r269211: &lt;https://trac.webkit.org/changeset/269211&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703302</commentid>
    <comment_count>41</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-30 20:34:38 -0700</bug_when>
    <thetext>Committed r269220: &lt;https://trac.webkit.org/changeset/269220&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410919</attachid>
            <date>2020-10-09 00:11:26 -0700</date>
            <delta_ts>2020-10-09 20:01:15 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-217506-20201009001125.patch</filename>
            <type>text/plain</type>
            <size>46361</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MDY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTkyOWVmZmE5Mjk3ZjE1
ZWEzNDhhZjQ0ZDJkOWNkMjcxNmMxZjA2MS4uYTNlMjEzY2U4OTBlNGViN2Y1ZGIwNTdlYzZhODYz
MTA3MzM5OTk3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDIwLTEwLTA5ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBb
R1BVIFByb2Nlc3NdIFBlcmZvcm0gaW1hZ2UgZGVjb2Rpbmcgb2YgY29sb3IgZm9udHMgaW4gdGhl
IFdlYiBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTc1MDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY5NzY4MTg2PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09Q
UyEpLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2Eu
dHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9GcmVlVHlwZS5jbWFrZToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0ds
eXBoc1JlY29yZGVyQ29yZVRleHQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpkcmF3R2x5cGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpkcmF3
SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRl
cjo6Y3JlYXRlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpEcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdHbHlwaHNSZWNvcmRlcik6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpwcmVwYXJlSW50ZXJuYWxDb250
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6
OmNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
Ojpjb21wdXRlQWR2YW5jZXNGcm9tUG9zaXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZERyYXdHbHlwaHMpOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6cmVjb3JkRHJhd0ltYWdl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OmRy
YXdHbHlwaHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpEcmF3R2x5cGhzUmVjb3Jk
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6
ZHJhd0dseXBocyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdH
bHlwaHM6OkRyYXdHbHlwaHMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdH
bHlwaHM6OmNvbXB1dGVCb3VuZHMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRy
YXdHbHlwaHM6OmxvY2FsQm91bmRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtcy5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRy
YXdHbHlwaHM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ds
eXBoczo6bG9jYWxBbmNob3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdHbHlwaHM6OmFuY2hvclBvaW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEcmF3R2x5cGhzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRyYXdHbHlwaHM6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6RHJhd0dseXBoczo6YmxvY2tMb2NhdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoczo6c2V0QmxvY2tMb2NhdGlvbik6IERl
bGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVy
OjpSZWNvcmRlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmRy
YXdHbHlwaHMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpkcmF3
SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpkcmF3VGls
ZWRJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmRyYXdO
YXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmRy
YXdQYXR0ZXJuKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6YmVn
aW5UcmFuc3BhcmVuY3lMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVj
b3JkZXI6OmRyYXdSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRl
cjo6ZHJhd0xpbmUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpk
cmF3TGluZXNGb3JUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRl
cjo6ZHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6UmVjb3JkZXI6OmRyYXdFbGxpcHNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpSZWNvcmRlcjo6ZHJhd1BhdGgpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlY29yZGVyOjpkcmF3Rm9jdXNSaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpSZWNvcmRlcjo6ZmlsbFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJl
Y29yZGVyOjpmaWxsUm91bmRlZFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlY29yZGVyOjpmaWxsUmVjdFdpdGhSb3VuZGVkSG9sZSk6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6UmVjb3JkZXI6OmZpbGxQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpSZWNvcmRlcjo6ZmlsbEVsbGlwc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OlJlY29yZGVyOjpzdHJva2VSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpSZWNvcmRlcjo6c3Ryb2tlUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6UmVjb3JkZXI6OnN0cm9rZUVsbGlwc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlJlY29yZGVyOjpjbGVhclJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlY29yZGVyOjphcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oOgorCiAyMDIwLTEw
LTA2ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUmVuYW1lIG5hbWVzcGFjZSBQYWNrZWQgdG8gbmFtZXNwYWNlIFBhY2tlZENvbG9yCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFM
L0NoYW5nZUxvZwppbmRleCAzY2NlOGNjNjQwMTUzZTg5MjMxZmY4ZWMyNzhlMjFmYmM5ZjFjZjM3
Li44NzgzYjNmN2E1MThlNTViZTM0YTFmMDMyYTEwYTY5ZTIyOThlNzYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0xMC0wOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxt
bWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gW0dQVSBQcm9jZXNzXSBQZXJm
b3JtIGltYWdlIGRlY29kaW5nIG9mIGNvbG9yIGZvbnRzIGluIHRoZSBXZWIgUHJvY2VzcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTA2CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS82OTc2ODE4Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg6CisK
IDIwMjAtMTAtMDIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBBVkFzc2V0V3JpdGVyIFNQSSBoZWFkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDFmYjk1
YzdkMDBkYzBiNTc5MDQ4MmY1ZmZkMGE0N2ZmNDJhYmFkNzMuLjgxNzIyMDYzNzJiYWY5ZmVjNzk3
NDFkZmY4Zjc4YzkzZTgzNTI1YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMu
Y21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTIyMSw2ICsxMjIx
LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2FuZ2xlL0V4dGVuc2lvbnNHTEFOR0xFLmgKIAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5oCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKaW5kZXggYTdm
ODJiODYxYjYyYzRhZWZiODNjMTgxMWQ1NWM3YWY3NDllNmI5MS4uYjg4NjdhZmE4NGE3MzE2MWNm
NjI5ZDhhZDMyNzQyZmE3MTgwMDZiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKQEAgLTM4LDYgKzM4LDcgQEAKIAogI2lmIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspCiAKKyNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dDb250ZXh0RGVsZWdh
dGVQcml2YXRlLmg+CiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHRm9udENhY2hlLmg+CiAjaW5j
bHVkZSA8Q29yZUdyYXBoaWNzL0NHUGF0aFByaXZhdGUuaD4KICNpbmNsdWRlIDxDb3JlR3JhcGhp
Y3MvQ29yZUdyYXBoaWNzUHJpdmF0ZS5oPgpAQCAtNTgsMTkgKzU5LDEwIEBAIHN0cnVjdCBDR0Zv
bnRITWV0cmljcyB7CiAgICAgaW50IG1pblJpZ2h0U2lkZUJlYXJpbmc7CiB9OwogCi1zdHJ1Y3Qg
Q0dGb250RGVzY3JpcHRvciB7Ci0gICAgQ0dSZWN0IGJib3g7Ci0gICAgQ0dGbG9hdCBhc2NlbnQ7
Ci0gICAgQ0dGbG9hdCBkZXNjZW50OwotICAgIENHRmxvYXQgY2FwSGVpZ2h0OwotICAgIENHRmxv
YXQgaXRhbGljQW5nbGU7Ci0gICAgQ0dGbG9hdCBzdGVtVjsKLSAgICBDR0Zsb2F0IHN0ZW1IOwot
ICAgIENHRmxvYXQgYXZnV2lkdGg7Ci0gICAgQ0dGbG9hdCBtYXhXaWR0aDsKLSAgICBDR0Zsb2F0
IG1pc3NpbmdXaWR0aDsKLSAgICBDR0Zsb2F0IGxlYWRpbmc7Ci0gICAgQ0dGbG9hdCB4SGVpZ2h0
OwordHlwZWRlZiBDRl9FTlVNIChpbnQzMl90LCBDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrTmFt
ZSkKK3sKKyAgICBkZURyYXdJbWFnZSA9IDcsCisgICAgZGVEcmF3R2x5cGhzID0gOCwKIH07CiAK
IHR5cGVkZWYgY29uc3Qgc3RydWN0IENHQ29sb3JUcmFuc2Zvcm0qIENHQ29sb3JUcmFuc2Zvcm1S
ZWY7CkBAIC0xOTMsNiArMTg1LDExIEBAIHN0YXRpYyBjb25zdCBDR1NOb3RpZmljYXRpb25UeXBl
IGtDR1Nlc3Npb25Db25zb2xlRGlzY29ubmVjdCA9IChDR1NOb3RpZmljYXRpb25UCiAKICNlbmRp
ZiAvLyBQTEFURk9STShNQUMpCiAKK3R5cGVkZWYgc3RydWN0IENHQ29udGV4dERlbGVnYXRlICpD
R0NvbnRleHREZWxlZ2F0ZVJlZjsKK3R5cGVkZWYgdm9pZCAoKkNHQ29udGV4dERlbGVnYXRlQ2Fs
bGJhY2spKHZvaWQpOwordHlwZWRlZiBzdHJ1Y3QgQ0dSZW5kZXJpbmdTdGF0ZSAqQ0dSZW5kZXJp
bmdTdGF0ZVJlZjsKK3R5cGVkZWYgc3RydWN0IENHR1N0YXRlICpDR0dTdGF0ZVJlZjsKKwogI2Vu
ZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKICNpZiBQTEFURk9STShDT0NPQSkKQEAg
LTIzMyw3ICsyMzAsNiBAQCB2b2lkIENHQ29udGV4dFJlc2V0Q2xpcChDR0NvbnRleHRSZWYpOwog
Q0dDb250ZXh0VHlwZSBDR0NvbnRleHRHZXRUeXBlKENHQ29udGV4dFJlZik7CiAKIENGU3RyaW5n
UmVmIENHRm9udENvcHlGYW1pbHlOYW1lKENHRm9udFJlZik7Ci1ib29sIENHRm9udEdldERlc2Ny
aXB0b3IoQ0dGb250UmVmLCBDR0ZvbnREZXNjcmlwdG9yKik7CiBib29sIENHRm9udEdldEdseXBo
QWR2YW5jZXNGb3JTdHlsZShDR0ZvbnRSZWYsIGNvbnN0IENHQWZmaW5lVHJhbnNmb3JtKiAsIENH
Rm9udFJlbmRlcmluZ1N0eWxlLCBjb25zdCBDR0dseXBoW10sIHNpemVfdCBjb3VudCwgQ0dTaXpl
IGFkdmFuY2VzW10pOwogdm9pZCBDR0ZvbnRHZXRHbHlwaHNGb3JVbmljaGFycyhDR0ZvbnRSZWYs
IGNvbnN0IFVuaUNoYXJbXSwgQ0dHbHlwaFtdLCBzaXplX3QgY291bnQpOwogY29uc3QgQ0dGb250
SE1ldHJpY3MqIENHRm9udEdldEhNZXRyaWNzKENHRm9udFJlZik7CkBAIC0yNTIsNiArMjQ4LDE0
IEBAIGJvb2wgQ0dDb250ZXh0R2V0QWxsb3dzRm9udFN1YnBpeGVsUG9zaXRpb25pbmcoQ0dDb250
ZXh0UmVmKTsKIGJvb2wgQ0dDb250ZXh0RHJhd3NXaXRoQ29ycmVjdFNoYWRvd09mZnNldHMoQ0dD
b250ZXh0UmVmKTsKIENHUGF0dGVyblJlZiBDR1BhdHRlcm5DcmVhdGVXaXRoSW1hZ2UyKENHSW1h
Z2VSZWYsIENHQWZmaW5lVHJhbnNmb3JtLCBDR1BhdHRlcm5UaWxpbmcpOwogCitDR0NvbnRleHRE
ZWxlZ2F0ZVJlZiBDR0NvbnRleHREZWxlZ2F0ZUNyZWF0ZSh2b2lkKiBpbmZvKTsKK3ZvaWQgQ0dD
b250ZXh0RGVsZWdhdGVTZXRDYWxsYmFjayhDR0NvbnRleHREZWxlZ2F0ZVJlZiwgQ0dDb250ZXh0
RGVsZWdhdGVDYWxsYmFja05hbWUsIENHQ29udGV4dERlbGVnYXRlQ2FsbGJhY2spOworQ0dDb250
ZXh0UmVmIENHQ29udGV4dENyZWF0ZVdpdGhEZWxlZ2F0ZShDR0NvbnRleHREZWxlZ2F0ZVJlZiwg
Q0dDb250ZXh0VHlwZSwgQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYpOwordm9pZCog
Q0dDb250ZXh0RGVsZWdhdGVHZXRJbmZvKENHQ29udGV4dERlbGVnYXRlUmVmKTsKK3ZvaWQgQ0dD
b250ZXh0RGVsZWdhdGVSZWxlYXNlKENHQ29udGV4dERlbGVnYXRlUmVmKTsKK0NHRmxvYXQgQ0dH
U3RhdGVHZXRBbHBoYShDR0dTdGF0ZVJlZik7CitDR0ZvbnRSZWYgQ0dHU3RhdGVHZXRGb250KENH
R1N0YXRlUmVmKTsKKwogI2lmIEhBVkUoQ0dQQVRIX0dFVF9OVU1CRVJfT0ZfRUxFTUVOVFMpCiBz
aXplX3QgQ0dQYXRoR2V0TnVtYmVyT2ZFbGVtZW50cyhDR1BhdGhSZWYpOwogI2VuZGlmCkBAIC0y
ODYsMTYgKzI5MCw5IEBAIENHUmVjdCogQ0dTTmV4dFJlY3QoY29uc3QgQ0dTUmVnaW9uRW51bWVy
YXRvck9iaik7CiBDR1NSZWdpb25FbnVtZXJhdG9yT2JqIENHU1JlZ2lvbkVudW1lcmF0b3IoQ0dS
ZWdpb25SZWYpOwogQ0dTdHlsZVJlZiBDR1N0eWxlQ3JlYXRlRm9jdXNSaW5nV2l0aENvbG9yKGNv
bnN0IENHRm9jdXNSaW5nU3R5bGUqLCBDR0NvbG9yUmVmKTsKIHZvaWQgQ0dDb250ZXh0U2V0U3R5
bGUoQ0dDb250ZXh0UmVmLCBDR1N0eWxlUmVmKTsKLQogdm9pZCBDR0NvbnRleHREcmF3Q29uaWNH
cmFkaWVudChDR0NvbnRleHRSZWYsIENHR3JhZGllbnRSZWYsIENHUG9pbnQgY2VudGVyLCBDR0Zs
b2F0IGFuZ2xlKTsKLQotI2lmIEhBVkUoQ0dfUEFUSF9VTkVWRU5fQ09STkVSU19ST1VOREVEUkVD
VCkKIHZvaWQgQ0dQYXRoQWRkVW5ldmVuQ29ybmVyc1JvdW5kZWRSZWN0KENHTXV0YWJsZVBhdGhS
ZWYsIGNvbnN0IENHQWZmaW5lVHJhbnNmb3JtICosIENHUmVjdCwgY29uc3QgQ0dTaXplIGNvcm5l
cnNbNF0pOwotI2VuZGlmCi0KLSNpZiBIQVZFKENHX0ZPTlRfUkVOREVSSU5HX0dFVF9GT05UX1NN
T09USElOR19ESVNBQkxFRCkKIGJvb2wgQ0dGb250UmVuZGVyaW5nR2V0Rm9udFNtb290aGluZ0Rp
c2FibGVkKHZvaWQpOwotI2VuZGlmCiAKICNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKIApAQCAt
MzI4LDE1ICszMjUsMTAgQEAgYm9vbCBDb2xvclN5bmNQcm9maWxlSXNXaWRlR2FtdXQoQ29sb3JT
eW5jUHJvZmlsZVJlZik7CiBzaXplX3QgQ0dEaXNwbGF5TW9kZUdldFBpeGVsc1dpZGUoQ0dEaXNw
bGF5TW9kZVJlZik7CiBzaXplX3QgQ0dEaXNwbGF5TW9kZUdldFBpeGVsc0hpZ2goQ0dEaXNwbGF5
TW9kZVJlZik7CiAKLSNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcp
Ci0KIENHRXJyb3IgQ0dTU2V0RGVueVdpbmRvd1NlcnZlckNvbm5lY3Rpb25zKGJvb2wpOwotCiB0
eXBlZGVmIGludDMyX3QgQ0dTRGlzcGxheUlEOwogQ0dTRGlzcGxheUlEIENHU01haW5EaXNwbGF5
SUQodm9pZCk7CiAKLSNlbmRpZiAvLyBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxP
Q0tJTkcpCi0KICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKICNpZiBFTkFCTEUoUERGS0lUX1BM
VUdJTikgJiYgIVVTRShBUFBMRV9JTlRFUk5BTF9TREspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApp
bmRleCAwNTg1MjNiNzdjNDY4MzMzMzUwN2UzZWQ1NjQzNjNhYWM2Mjc3ZDAyLi5lMjBmNWRlZTA1
YWNhOTE3NWEwNmVmMzRiMzgwOGIxNjQ1MjAxZjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQK
QEAgLTM3OSw2ICszNzksNyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZv
cm1lckNWLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNhY2hlQ1YubW0KIHBsYXRm
b3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcAogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29yZWltYWdlL0ZpbHRlckVmZmVjdFJlbmRlcmVyQ29yZUltYWdlLm1tCitwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4
dC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9UZXh0dXJlLmNwcAogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L1RpbGluZ0RhdGEuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQmlu
ZEdyb3VwQWxsb2NhdG9yTWV0YWwubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiZGI0YTkwYTY2N2ZiMzA1NjYxZWNmZDdhNjFm
MTlmMTk2OGRkOTc4Li4zMGZlMjZjZTU3Zjk1ZmRkZTUyYzY4NmRmMjBiOWU2MTdiODU1ZDQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC02MTksNiArNjE5LDcgQEAKIAkJMUNBRjM0ODEwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNj
cmlwdE9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUNBRjM0N0UwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFDQUYzNDgyMEE2QzQw
NTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FGMzQ3RjBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2Ny
aXB0T2JqZWN0Lm1tICovOyB9OwogCQkxQ0FGMzQ4MzBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2Ny
aXB0T2JqZWN0UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUNBRjM0ODAwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdFByaXZh
dGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkx
Q0FGNTZEQjI1MzAxQUM4MDAxN0I0NzIgLyogRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUY1NkQ4
MjUzMDE0NTcwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFDQ0Q4MTUwMjIz
MUY4M0UwMDY1RkMyQiAvKiBXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVs
ZWdhdGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MTUyNTUxNDE2RkQyMzRGMDAzRDdBREIgLyogV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRp
b25RdWV1ZURlbGVnYXRlLm1tICovOyB9OwogCQkxQ0NERjVCRTE5OTAzMzI0MDBCQ0VCQUQgLyog
U1ZHVG9PVEZGb250Q29udmVyc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUNDREY1QkMxOTkwMzMyNDAwQkNFQkFEIC8qIFNWR1RvT1RGRm9udENv
bnZlcnNpb24uaCAqLzsgfTsKIAkJMUNGQUUzMjMwQTZENkEzRjAwMzI1OTNEIC8qIGxpYm9iamMu
ZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
Q0ZBRTMyMjBBNkQ2QTNGMDAzMjU5M0QgLyogbGlib2JqYy5keWxpYiAqLzsgfTsKQEAgLTY3MDks
NiArNjcxMCw4IEBACiAJCTFDQUYzNDdFMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmpl
Y3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU2NyaXB0T2JqZWN0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUYzNDdGMEE2QzQwNTIwMEFCRTA2RSAv
KiBXZWJTY3JpcHRPYmplY3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBXZWJTY3JpcHRPYmplY3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFD
QUYzNDgwMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3RQcml2YXRlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNjcmlwdE9iamVjdFByaXZhdGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNBRjU2RDgyNTMwMTQ1NzAwMTdCNDcyIC8qIERp
c3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpc3BsYXlMaXN0
RHJhd0dseXBoc1JlY29yZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQUY1
NkRFMjUzMDI0NUEwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVU
ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVy
Q29yZVRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0I1RkU4ODIyREVC
QzhCMDA5NDQwRTIgLyogV0hMU0xFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTEVycm9yLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQjY5QjMyMjFERUQ0MEIwMDZFODQ2QSAv
KiBXSExTTFJlc29sdmFibGVUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdITFNMUmVzb2x2YWJsZVR5
cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNCNjlCMzQyMURFRDYzQTAwNkU4
NDZBIC8qIFdITFNMRmxvYXRMaXRlcmFsVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTEZsb2F0
TGl0ZXJhbFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NTAyLDYgKzE3
NTA1LDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTBGRTVGQkNBMUMzREQ1MUUwMDA3QTJDQSAv
KiBEaXNwbGF5TGlzdC5jcHAgKi8sCiAJCQkJMEZFNUZCQ0IxQzNERDUxRTAwMDdBMkNBIC8qIERp
c3BsYXlMaXN0LmggKi8sCisJCQkJMUNBRjU2RDgyNTMwMTQ1NzAwMTdCNDcyIC8qIERpc3BsYXlM
aXN0RHJhd0dseXBoc1JlY29yZGVyLmggKi8sCisJCQkJMUNBRjU2REUyNTMwMjQ1QTAwMTdCNDcy
IC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwICovLAogCQkJCTU1
QzBBMjk1MjNGRTJDRTAwMEYyQ0I5MyAvKiBEaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmNwcCAq
LywKIAkJCQk3MkVBMDlGOTIzRkNDQzZBMDA4NTA0QTUgLyogRGlzcGxheUxpc3REcmF3aW5nQ29u
dGV4dC5oICovLAogCQkJCTcyRUEwOUY3MjNGQ0NCM0QwMDg1MDRBNSAvKiBEaXNwbGF5TGlzdElt
YWdlQnVmZmVyLmggKi8sCkBAIC0zMTIyNiw2ICszMTIzMSw3IEBACiAJCQkJN0VEQUFGQzkxOUEy
Q0NEQzAwMzRERkQxIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEY3OTBGNDIyNTE3Q0U2RTAwOUJBMDM0IC8qIERpc3BsYXlMYXllckNvbnRyb2xsZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGRTVGQkQzMUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlz
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNBRjU2REIyNTMwMUFDODAwMTdCNDcyIC8qIERpc3Bs
YXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NUFEMDk0MDI0
MDg5NjQwMDBERTREMkYgLyogRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTVBRDA5M0UyNDA4OTYzNTAwREU0RDJGIC8qIERpc3BsYXlMaXN0SW1hZ2VCdWZm
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTVGQkQ1MUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNw
bGF5TGlzdEl0ZW1zLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJlZVR5
cGUuY21ha2UKaW5kZXggN2MwNGQ5M2E1Yjg1YzczMjU4MWM5NWEwNjViZTA1YjYzNjdjN2FlNC4u
ZjM4YjU0ZTE3YzkzMTU2NTE1NGNhYjk1M2E4MWUwZTk2ZjU3NDlhNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJlZVR5cGUuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vRnJlZVR5cGUuY21ha2UKQEAgLTUsNiArNSw4IEBAIGxpc3QoQVBQRU5EIFdlYkNv
cmVfUFJJVkFURV9JTkNMVURFX0RJUkVDVE9SSUVTCiApCiAKIGxpc3QoQVBQRU5EIFdlYkNvcmVf
U09VUkNFUworICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERy
YXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcAorCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJl
ZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5
cGUvRm9udEN1c3RvbVBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2ZyZWV0eXBlL0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERy
YXdHbHlwaHNSZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWQ1
OTZjZGVhMzkxM2QzMDczZmUyZmI0ODg4ZmFmYTY3OGUyNmRlYgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dERyYXdHbHlwaHNSZWNvcmRlci5oCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlRl
eHRGbGFncy5oIgorCisjaWYgVVNFKENPUkVfVEVYVCkKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRl
eHQuaCIKKworI2luY2x1ZGUgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3MuaD4KKyNpbmNsdWRl
IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgRmxvYXRQb2ludDsKK2NsYXNzIEZvbnQ7CitjbGFzcyBHbHlwaEJ1ZmZl
cjsKK2NsYXNzIEdyYXBoaWNzQ29udGV4dDsKKworbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKKwor
Y2xhc3MgUmVjb3JkZXI7CisKK2NsYXNzIERyYXdHbHlwaHNSZWNvcmRlciB7CitwdWJsaWM6Cisg
ICAgRHJhd0dseXBoc1JlY29yZGVyKFJlY29yZGVyJik7CisKKyAgICB2b2lkIGRyYXdHbHlwaHMo
Y29uc3QgRm9udCYsIGNvbnN0IEdseXBoQnVmZmVyJiwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQg
bnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBhbmNob3JQb2ludCwgRm9udFNtb290aGluZ01v
ZGUpOworCisjaWYgVVNFKENPUkVfVEVYVCkKKyAgICB2b2lkIHJlY29yZERyYXdHbHlwaHMoQ0dS
ZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYsIGNvbnN0IENHQWZmaW5lVHJhbnNmb3JtKiwg
Y29uc3QgQ0dHbHlwaFtdLCBjb25zdCBDR1BvaW50IHBvc2l0aW9uc1tdLCBzaXplX3QgY291bnQp
OworICAgIHZvaWQgcmVjb3JkRHJhd0ltYWdlKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRl
UmVmLCBDR1JlY3QsIENHSW1hZ2VSZWYpOworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgR3JhcGhp
Y3NDb250ZXh0IGNyZWF0ZUludGVybmFsQ29udGV4dCgpOworICAgIHZvaWQgcHJlcGFyZUludGVy
bmFsQ29udGV4dChjb25zdCBGb250JiwgRm9udFNtb290aGluZ01vZGUpOworICAgIHZvaWQgY29u
Y2x1ZGVJbnRlcm5hbENvbnRleHQoKTsKKworICAgIFJlY29yZGVyJiBtX293bmVyOworI2lmIFVT
RShDT1JFX1RFWFQpCisgICAgR3JhcGhpY3NDb250ZXh0IG1faW50ZXJuYWxDb250ZXh0OworICAg
IGNvbnN0IEZvbnQqIG1fY3VycmVudEZvbnQgeyBudWxscHRyIH07CisgICAgRm9udFNtb290aGlu
Z01vZGUgbV9zbW9vdGhpbmdNb2RlIHsgRm9udFNtb290aGluZ01vZGU6OkF1dG9TbW9vdGhpbmcg
fTsKKyNlbmRpZgorfTsKKworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJD
b3JlVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NzBlZTljODM1NzA5MjE3ZTAxM2VhOTVhNDFjMDY5MmYzZDBlYmMyNAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcApAQCAtMCwwICsxLDEzNyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIgorCisjaW5j
bHVkZSAiQml0bWFwSW1hZ2UuaCIKKyNpbmNsdWRlICJEaXNwbGF5TGlzdEl0ZW1zLmgiCisjaW5j
bHVkZSAiRGlzcGxheUxpc3RSZWNvcmRlci5oIgorI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKKyNp
bmNsdWRlICJGb250LmgiCisjaW5jbHVkZSAiRm9udENhc2NhZGUuaCIKKyNpbmNsdWRlICJHbHlw
aEJ1ZmZlci5oIgorCisjaW5jbHVkZSA8Q29yZVRleHQvQ29yZVRleHQuaD4KKyNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIERpc3BsYXlM
aXN0IHsKKworc3RhdGljIENHRXJyb3IgZHJhd0dseXBocyhDR0NvbnRleHREZWxlZ2F0ZVJlZiBk
ZWxlZ2F0ZSwgQ0dSZW5kZXJpbmdTdGF0ZVJlZiByc3RhdGUsIENHR1N0YXRlUmVmIGdzdGF0ZSwg
Y29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0qIHRtLCBjb25zdCBDR0dseXBoIGdseXBoc1tdLCBjb25z
dCBDR1BvaW50IHBvc2l0aW9uc1tdLCBzaXplX3QgY291bnQpCit7CisgICAgaWYgKENHR1N0YXRl
R2V0QWxwaGEoZ3N0YXRlKSA+IDApIHsKKyAgICAgICAgRHJhd0dseXBoc1JlY29yZGVyJiByZWNv
cmRlciA9ICpzdGF0aWNfY2FzdDxEcmF3R2x5cGhzUmVjb3JkZXIqPihDR0NvbnRleHREZWxlZ2F0
ZUdldEluZm8oZGVsZWdhdGUpKTsKKyAgICAgICAgcmVjb3JkZXIucmVjb3JkRHJhd0dseXBocyhy
c3RhdGUsIGdzdGF0ZSwgdG0sIGdseXBocywgcG9zaXRpb25zLCBjb3VudCk7CisgICAgfQorICAg
IHJldHVybiBrQ0dFcnJvclN1Y2Nlc3M7Cit9CisKK3N0YXRpYyBDR0Vycm9yIGRyYXdJbWFnZShD
R0NvbnRleHREZWxlZ2F0ZVJlZiBkZWxlZ2F0ZSwgQ0dSZW5kZXJpbmdTdGF0ZVJlZiByc3RhdGUs
IENHR1N0YXRlUmVmIGdzdGF0ZSwgQ0dSZWN0IHJlY3QsIENHSW1hZ2VSZWYgaW1hZ2UpCit7Cisg
ICAgRHJhd0dseXBoc1JlY29yZGVyJiByZWNvcmRlciA9ICpzdGF0aWNfY2FzdDxEcmF3R2x5cGhz
UmVjb3JkZXIqPihDR0NvbnRleHREZWxlZ2F0ZUdldEluZm8oZGVsZWdhdGUpKTsKKyAgICByZWNv
cmRlci5yZWNvcmREcmF3SW1hZ2UocnN0YXRlLCBnc3RhdGUsIHJlY3QsIGltYWdlKTsKKyAgICBy
ZXR1cm4ga0NHRXJyb3JTdWNjZXNzOworfQorCitHcmFwaGljc0NvbnRleHQgRHJhd0dseXBoc1Jl
Y29yZGVyOjpjcmVhdGVJbnRlcm5hbENvbnRleHQoKQoreworICAgIGF1dG8gY29udGV4dERlbGVn
YXRlID0gYWRvcHRDRihDR0NvbnRleHREZWxlZ2F0ZUNyZWF0ZSh0aGlzKSk7CisgICAgQ0dDb250
ZXh0RGVsZWdhdGVTZXRDYWxsYmFjayhjb250ZXh0RGVsZWdhdGUuZ2V0KCksIGRlRHJhd0dseXBo
cywgcmVpbnRlcnByZXRfY2FzdDxDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrPigmV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OmRyYXdHbHlwaHMpKTsKKyAgICBDR0NvbnRleHREZWxlZ2F0ZVNldENhbGxi
YWNrKGNvbnRleHREZWxlZ2F0ZS5nZXQoKSwgZGVEcmF3SW1hZ2UsIHJlaW50ZXJwcmV0X2Nhc3Q8
Q0dDb250ZXh0RGVsZWdhdGVDYWxsYmFjaz4oJmRyYXdJbWFnZSkpOworICAgIGF1dG8gY29udGV4
dCA9IGFkb3B0Q0YoQ0dDb250ZXh0Q3JlYXRlV2l0aERlbGVnYXRlKGNvbnRleHREZWxlZ2F0ZS5n
ZXQoKSwga0NHQ29udGV4dFR5cGVVbmtub3duLCBudWxscHRyLCBudWxscHRyKSk7CisgICAgcmV0
dXJuIEdyYXBoaWNzQ29udGV4dChjb250ZXh0LmdldCgpKTsKK30KKworRHJhd0dseXBoc1JlY29y
ZGVyOjpEcmF3R2x5cGhzUmVjb3JkZXIoUmVjb3JkZXImIG93bmVyKQorICAgIDogbV9vd25lcihv
d25lcikKKyAgICAsIG1faW50ZXJuYWxDb250ZXh0KGNyZWF0ZUludGVybmFsQ29udGV4dCgpKQor
eworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6cHJlcGFyZUludGVybmFsQ29udGV4dChj
b25zdCBGb250JiBmb250LCBGb250U21vb3RoaW5nTW9kZSBzbW9vdGhpbmdNb2RlKQoreworICAg
IC8vIFB1bGwgb3V0OgorICAgIC8vIDEuIENvbG9yCisgICAgLy8gMi4gT3BhY2l0eSAobWF5YmUp
CisgICAgLy8gMy4gU2hhZG93IGluZm9ybWF0aW9uCisgICAgLy8gNC4gQ1RNCisgICAgLy8gNS4g
VGV4dCBwb3NpdGlvbiBhbmQgbWF0cml4CisKKyAgICBtX2N1cnJlbnRGb250ID0gJmZvbnQ7Cisg
ICAgbV9zbW9vdGhpbmdNb2RlID0gc21vb3RoaW5nTW9kZTsKK30KKwordm9pZCBEcmF3R2x5cGhz
UmVjb3JkZXI6OmNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KCkKK3sKKyAgICAvLyBTZWUgaWYgd2Ug
bmVlZCB0byBkbyBhbnkgY2xlYW51cCBsaWtlIHJlc2V0dGluZyB0aGUgc2hhZG93IGluZm9ybWF0
aW9uLgorfQorCitzdGF0aWMgVmVjdG9yPENHU2l6ZT4gY29tcHV0ZUFkdmFuY2VzRnJvbVBvc2l0
aW9ucyhjb25zdCBDR1BvaW50IHBvc2l0aW9uc1tdLCBzaXplX3QgY291bnQpCit7CisgICAgVmVj
dG9yPENHU2l6ZT4gcmVzdWx0OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQgLSAx
OyArK2kpIHsKKyAgICAgICAgYXV0byBuZXh0UG9zaXRpb24gPSBwb3NpdGlvbnNbaSArIDFdOwor
ICAgICAgICBhdXRvIGN1cnJlbnRQb3NpdGlvbiA9IHBvc2l0aW9uc1tpXTsKKyAgICAgICAgcmVz
dWx0LmFwcGVuZChDR1NpemVNYWtlKG5leHRQb3NpdGlvbi54IC0gY3VycmVudFBvc2l0aW9uLngs
IG5leHRQb3NpdGlvbi55IC0gY3VycmVudFBvc2l0aW9uLnkpKTsKKyAgICB9CisgICAgcmVzdWx0
LmNvbnN0cnVjdEFuZEFwcGVuZChDR1NpemVNYWtlKDAsIDApKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6cmVjb3JkRHJhd0dseXBocyhDR1JlbmRl
cmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiBnc3RhdGUsIGNvbnN0IENHQWZmaW5lVHJhbnNmb3Jt
KiwgY29uc3QgQ0dHbHlwaCBnbHlwaHNbXSwgY29uc3QgQ0dQb2ludCBwb3NpdGlvbnNbXSwgc2l6
ZV90IGNvdW50KQoreworICAgIENHRm9udFJlZiB1c2VkRm9udCA9IENHR1N0YXRlR2V0Rm9udChn
c3RhdGUpOworICAgIGlmICghY291bnQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICh1c2Vk
Rm9udCAhPSBhZG9wdENGKENURm9udENvcHlHcmFwaGljc0ZvbnQobV9jdXJyZW50Rm9udC0+cGxh
dGZvcm1EYXRhKCkuY3RGb250KCksIG51bGxwdHIpKS5nZXQoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgLy8gVGVzdCBjYXNlOiB2ZXJ0aWNhbCB0ZXh0LCByb3RhdGVkIHRleHQKKyAgICBGbG9h
dFBvaW50IGxvY2FsQW5jaG9yID0gQ0dDb250ZXh0R2V0VGV4dFBvc2l0aW9uKG1faW50ZXJuYWxD
b250ZXh0LnBsYXRmb3JtQ29udGV4dCgpKTsKKyAgICBsb2NhbEFuY2hvci5tb3ZlKEZsb2F0U2l6
ZShwb3NpdGlvbnNbMF0ueCwgcG9zaXRpb25zWzBdLnkpKTsgLy8gRklYTUU6IElzIHRoaXMgcmln
aHQ/CisgICAgbV9vd25lci5hcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KERyYXdHbHlwaHM6OmNy
ZWF0ZSgqbV9jdXJyZW50Rm9udCwgZ2x5cGhzLCBjb21wdXRlQWR2YW5jZXNGcm9tUG9zaXRpb25z
KHBvc2l0aW9ucywgY291bnQpLmRhdGEoKSwgY291bnQsIGxvY2FsQW5jaG9yLCBtX3Ntb290aGlu
Z01vZGUpKTsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZERyYXdJbWFnZShD
R1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiwgQ0dSZWN0IHJlY3QsIENHSW1hZ2VSZWYg
Y2dJbWFnZSkKK3sKKyAgICAvLyBUZXN0IGNhc2U6IEVYSUYgcm90YXRlZCBpbWFnZXMuCisgICAg
Ly8gRklYTUU6IFdpbGwgQ29yZVRleHQgZXZlciBzZXQgYW55IG9mIHRoZSBzdHVmZiBvbiB0aGUg
Y29udGV4dCB0aGF0IHdlIG5lZWQgdG8gYXBwbHkgaGVyZT8gU2VlIG9wdGlvbnMgaW5zaWRlIElt
YWdlUGFpbnRpbmdPcHRpb25zLgorICAgIGF1dG8gaW1hZ2UgPSBCaXRtYXBJbWFnZTo6Y3JlYXRl
KGNnSW1hZ2UpOworICAgIG1fb3duZXIuYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChEcmF3SW1h
Z2U6OmNyZWF0ZShpbWFnZSwgcmVjdCwge3sgfSwgaW1hZ2UtPnNpemUoKX0sIHsgfSkpOworfQor
Cit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6ZHJhd0dseXBocyhjb25zdCBGb250JiBmb250LCBj
b25zdCBHbHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIG51
bUdseXBocywgY29uc3QgRmxvYXRQb2ludCYgc3RhcnRQb2ludCwgRm9udFNtb290aGluZ01vZGUg
c21vb3RoaW5nTW9kZSkKK3sKKyAgICBwcmVwYXJlSW50ZXJuYWxDb250ZXh0KGZvbnQsIHNtb290
aGluZ01vZGUpOworICAgIEZvbnRDYXNjYWRlOjpkcmF3R2x5cGhzKG1faW50ZXJuYWxDb250ZXh0
LCBmb250LCBnbHlwaEJ1ZmZlciwgZnJvbSwgbnVtR2x5cGhzLCBzdGFydFBvaW50LCBzbW9vdGhp
bmdNb2RlKTsKKyAgICBjb25jbHVkZUludGVybmFsQ29udGV4dCgpOworfQorCit9IC8vIG5hbWVz
cGFjZSBEaXNwbGF5TGlzdAorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RE
cmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6
ei5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjNhYzMyNGI3YjAwYTllMTZhNTZhZDY3MGNlMDRjZmE3N2ZjOWZh
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcApAQCAt
MCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0RHJhd0dseXBoc1Jl
Y29yZGVyLmgiCisKKyNpbmNsdWRlICJEaXNwbGF5TGlzdEl0ZW1zLmgiCisjaW5jbHVkZSAiRGlz
cGxheUxpc3RSZWNvcmRlci5oIgorI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKKyNpbmNsdWRlICJG
b250LmgiCisjaW5jbHVkZSAiR2x5cGhCdWZmZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CituYW1lc3BhY2UgRGlzcGxheUxpc3QgeworCitEcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdHbHlw
aHNSZWNvcmRlcihSZWNvcmRlciYgb3duZXIpCisgICAgOiBtX293bmVyKG93bmVyKQoreworfQor
Cit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6ZHJhd0dseXBocyhjb25zdCBGb250JiBmb250LCBj
b25zdCBHbHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIG51
bUdseXBocywgY29uc3QgRmxvYXRQb2ludCYgc3RhcnRQb2ludCwgRm9udFNtb290aGluZ01vZGUg
c21vb3RoaW5nTW9kZSkKK3sKKyAgICBtX293bmVyLmFwcGVuZEl0ZW1BbmRVcGRhdGVFeHRlbnQo
RHJhd0dseXBoczo6Y3JlYXRlKGZvbnQsIGdseXBoQnVmZmVyLmdseXBocyhmcm9tKSwgZ2x5cGhC
dWZmZXIuYWR2YW5jZXMoZnJvbSksIG51bUdseXBocywgc3RhcnRQb2ludCwgc21vb3RoaW5nTW9k
ZSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBEaXNwbGF5TGlzdAorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKaW5kZXggZGJmMTg4NGEy
MWEzNDlmNmFhMDMzMzdmNzZlZDU5MjkyM2MwNGRlMy4uMzk4MWFkNDM3OTllMGM4YTQ4NTZkMzU4
Mzk5MjY5NGVlMjU4MjljMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcApA
QCAtNTM5LDIyICs1MzksMjAgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0
cmVhbSYgdHMsIGNvbnN0IENsaXBUb0RyYXdpbmdDb21tYW5kcyYgaXRlbSkKICAgICByZXR1cm4g
dHM7CiB9CiAKLURyYXdHbHlwaHM6OkRyYXdHbHlwaHMoY29uc3QgRm9udCYgZm9udCwgVmVjdG9y
PEdseXBoQnVmZmVyR2x5cGgsIDEyOD4mJiBnbHlwaHMsIFZlY3RvcjxHbHlwaEJ1ZmZlckFkdmFu
Y2UsIDEyOD4mJiBhZHZhbmNlcywgY29uc3QgRmxvYXRQb2ludCYgYmxvY2tMb2NhdGlvbiwgY29u
c3QgRmxvYXRTaXplJiBsb2NhbEFuY2hvciwgRm9udFNtb290aGluZ01vZGUgc21vb3RoaW5nTW9k
ZSkKK0RyYXdHbHlwaHM6OkRyYXdHbHlwaHMoY29uc3QgRm9udCYgZm9udCwgVmVjdG9yPEdseXBo
QnVmZmVyR2x5cGgsIDEyOD4mJiBnbHlwaHMsIFZlY3RvcjxHbHlwaEJ1ZmZlckFkdmFuY2UsIDEy
OD4mJiBhZHZhbmNlcywgY29uc3QgRmxvYXRQb2ludCYgbG9jYWxBbmNob3IsIEZvbnRTbW9vdGhp
bmdNb2RlIHNtb290aGluZ01vZGUpCiAgICAgOiBEcmF3aW5nSXRlbShJdGVtVHlwZTo6RHJhd0ds
eXBocykKICAgICAsIG1fZm9udChjb25zdF9jYXN0PEZvbnQmPihmb250KSkKICAgICAsIG1fZ2x5
cGhzKFdURk1vdmUoZ2x5cGhzKSkKICAgICAsIG1fYWR2YW5jZXMoV1RGTW92ZShhZHZhbmNlcykp
Ci0gICAgLCBtX2Jsb2NrTG9jYXRpb24oYmxvY2tMb2NhdGlvbikKICAgICAsIG1fbG9jYWxBbmNo
b3IobG9jYWxBbmNob3IpCiAgICAgLCBtX3Ntb290aGluZ01vZGUoc21vb3RoaW5nTW9kZSkKIHsK
ICAgICBjb21wdXRlQm91bmRzKCk7CiB9CiAKLURyYXdHbHlwaHM6OkRyYXdHbHlwaHMoY29uc3Qg
Rm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZmZXJHbHlwaCogZ2x5cGhzLCBjb25zdCBHbHlwaEJ1
ZmZlckFkdmFuY2UqIGFkdmFuY2VzLCB1bnNpZ25lZCBjb3VudCwgY29uc3QgRmxvYXRQb2ludCYg
YmxvY2tMb2NhdGlvbiwgY29uc3QgRmxvYXRTaXplJiBsb2NhbEFuY2hvciwgRm9udFNtb290aGlu
Z01vZGUgc21vb3RoaW5nTW9kZSkKK0RyYXdHbHlwaHM6OkRyYXdHbHlwaHMoY29uc3QgRm9udCYg
Zm9udCwgY29uc3QgR2x5cGhCdWZmZXJHbHlwaCogZ2x5cGhzLCBjb25zdCBHbHlwaEJ1ZmZlckFk
dmFuY2UqIGFkdmFuY2VzLCB1bnNpZ25lZCBjb3VudCwgY29uc3QgRmxvYXRQb2ludCYgbG9jYWxB
bmNob3IsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCiAgICAgOiBEcmF3aW5nSXRl
bShJdGVtVHlwZTo6RHJhd0dseXBocykKICAgICAsIG1fZm9udChjb25zdF9jYXN0PEZvbnQmPihm
b250KSkKLSAgICAsIG1fYmxvY2tMb2NhdGlvbihibG9ja0xvY2F0aW9uKQogICAgICwgbV9sb2Nh
bEFuY2hvcihsb2NhbEFuY2hvcikKICAgICAsIG1fc21vb3RoaW5nTW9kZShzbW9vdGhpbmdNb2Rl
KQogewpAQCAtNTg4LDcgKzU4Niw3IEBAIHZvaWQgRHJhd0dseXBoczo6Y29tcHV0ZUJvdW5kcygp
CiAgICAgLy8gdGhlIGdseXBoIGxpZXMgZW50aXJlbHkgd2l0aGluIGl0cyBbKGFzY2VudCArIGRl
c2NlbnQpLCBhZHZhbmNlXSByZWN0LgogICAgIGZsb2F0IGFzY2VudCA9IG1fZm9udC0+Zm9udE1l
dHJpY3MoKS5mbG9hdEFzY2VudCgpOwogICAgIGZsb2F0IGRlc2NlbnQgPSBtX2ZvbnQtPmZvbnRN
ZXRyaWNzKCkuZmxvYXREZXNjZW50KCk7Ci0gICAgRmxvYXRQb2ludCBjdXJyZW50ID0gdG9GbG9h
dFBvaW50KGxvY2FsQW5jaG9yKCkpOworICAgIEZsb2F0UG9pbnQgY3VycmVudCA9IGxvY2FsQW5j
aG9yKCk7CiAgICAgc2l6ZV90IG51bUdseXBocyA9IG1fZ2x5cGhzLnNpemUoKTsKICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG51bUdseXBoczsgKytpKSB7CiAgICAgICAgIEdseXBoQnVmZmVy
QWR2YW5jZSBhZHZhbmNlID0gbV9hZHZhbmNlc1tpXTsKQEAgLTYwMSwxNiArNTk5LDEzIEBAIHZv
aWQgRHJhd0dseXBoczo6Y29tcHV0ZUJvdW5kcygpCiAKIE9wdGlvbmFsPEZsb2F0UmVjdD4gRHJh
d0dseXBoczo6bG9jYWxCb3VuZHMoY29uc3QgR3JhcGhpY3NDb250ZXh0JikgY29uc3QKIHsKLSAg
ICBGbG9hdFJlY3QgbG9jYWxCb3VuZHMgPSBtX2JvdW5kczsKLSAgICBsb2NhbEJvdW5kcy5tb3Zl
KG1fYmxvY2tMb2NhdGlvbi54KCksIG1fYmxvY2tMb2NhdGlvbi55KCkpOwotICAgIHJldHVybiBs
b2NhbEJvdW5kczsKKyAgICByZXR1cm4gbV9ib3VuZHM7CiB9CiAKIHN0YXRpYyBUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBEcmF3R2x5cGhzJiBpdGVtKQogewog
ICAgIHRzIDw8IHN0YXRpY19jYXN0PGNvbnN0IERyYXdpbmdJdGVtJj4oaXRlbSk7CiAgICAgLy8g
RklYTUU6IGR1bXAgbW9yZSBzdHVmZi4KLSAgICB0cy5kdW1wUHJvcGVydHkoImJsb2NrLWxvY2F0
aW9uIiwgaXRlbS5ibG9ja0xvY2F0aW9uKCkpOwogICAgIHRzLmR1bXBQcm9wZXJ0eSgibG9jYWwt
YW5jaG9yIiwgaXRlbS5sb2NhbEFuY2hvcigpKTsKICAgICB0cy5kdW1wUHJvcGVydHkoImFuY2hv
ci1wb2ludCIsIGl0ZW0uYW5jaG9yUG9pbnQoKSk7CiAgICAgdHMuZHVtcFByb3BlcnR5KCJsZW5n
dGgiLCBpdGVtLmdseXBocygpLnNpemUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMu
aAppbmRleCBmMDU1ODY5ZTE3YWFhOTY2NGViNTNmYjFiZWU3OTU4MDY0MjhkMzYzLi4zMGM1Nzg1
NTQxNzk1NDFiYTE1MmM5ZTdlYTYyODNiYjk0MzRmZDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1zLmgKQEAgLTExMDAsMjQgKzExMDAsMjEgQEAgT3B0aW9uYWw8UmVmPENsaXBUb0Ry
YXdpbmdDb21tYW5kcz4+IENsaXBUb0RyYXdpbmdDb21tYW5kczo6ZGVjb2RlKERlY29kZXImIGRl
Y28KIAogY2xhc3MgRHJhd0dseXBocyA6IHB1YmxpYyBEcmF3aW5nSXRlbSB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxEcmF3R2x5cGhzPiBjcmVhdGUoY29uc3QgRm9udCYgZm9udCwgY29uc3Qg
R2x5cGhCdWZmZXJHbHlwaCogZ2x5cGhzLCBjb25zdCBHbHlwaEJ1ZmZlckFkdmFuY2UqIGFkdmFu
Y2VzLCB1bnNpZ25lZCBjb3VudCwgY29uc3QgRmxvYXRQb2ludCYgYmxvY2tMb2NhdGlvbiwgY29u
c3QgRmxvYXRTaXplJiBsb2NhbEFuY2hvciwgRm9udFNtb290aGluZ01vZGUgc21vb3RoaW5nTW9k
ZSkKKyAgICBzdGF0aWMgUmVmPERyYXdHbHlwaHM+IGNyZWF0ZShjb25zdCBGb250JiBmb250LCBj
b25zdCBHbHlwaEJ1ZmZlckdseXBoKiBnbHlwaHMsIGNvbnN0IEdseXBoQnVmZmVyQWR2YW5jZSog
YWR2YW5jZXMsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBGbG9hdFBvaW50JiBsb2NhbEFuY2hvciwg
Rm9udFNtb290aGluZ01vZGUgc21vb3RoaW5nTW9kZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IERyYXdHbHlwaHMoZm9udCwgZ2x5cGhzLCBhZHZhbmNlcywgY291bnQsIGJs
b2NrTG9jYXRpb24sIGxvY2FsQW5jaG9yLCBzbW9vdGhpbmdNb2RlKSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IERyYXdHbHlwaHMoZm9udCwgZ2x5cGhzLCBhZHZhbmNlcywgY291bnQs
IGxvY2FsQW5jaG9yLCBzbW9vdGhpbmdNb2RlKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxE
cmF3R2x5cGhzPiBjcmVhdGUoY29uc3QgRm9udCYgZm9udCwgVmVjdG9yPEdseXBoQnVmZmVyR2x5
cGgsIDEyOD4mJiBnbHlwaHMsIFZlY3RvcjxHbHlwaEJ1ZmZlckFkdmFuY2UsIDEyOD4mJiBhZHZh
bmNlcywgY29uc3QgRmxvYXRQb2ludCYgYmxvY2tMb2NhdGlvbiwgY29uc3QgRmxvYXRTaXplJiBs
b2NhbEFuY2hvciwgRm9udFNtb290aGluZ01vZGUgc21vb3RoaW5nTW9kZSkKKyAgICBzdGF0aWMg
UmVmPERyYXdHbHlwaHM+IGNyZWF0ZShjb25zdCBGb250JiBmb250LCBWZWN0b3I8R2x5cGhCdWZm
ZXJHbHlwaCwgMTI4PiYmIGdseXBocywgVmVjdG9yPEdseXBoQnVmZmVyQWR2YW5jZSwgMTI4PiYm
IGFkdmFuY2VzLCBjb25zdCBGbG9hdFBvaW50JiBsb2NhbEFuY2hvciwgRm9udFNtb290aGluZ01v
ZGUgc21vb3RoaW5nTW9kZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERy
YXdHbHlwaHMoZm9udCwgV1RGTW92ZShnbHlwaHMpLCBXVEZNb3ZlKGFkdmFuY2VzKSwgYmxvY2tM
b2NhdGlvbiwgbG9jYWxBbmNob3IsIHNtb290aGluZ01vZGUpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgRHJhd0dseXBocyhmb250LCBXVEZNb3ZlKGdseXBocyksIFdURk1vdmUoYWR2
YW5jZXMpLCBsb2NhbEFuY2hvciwgc21vb3RoaW5nTW9kZSkpOwogICAgIH0KIAogICAgIFdFQkNP
UkVfRVhQT1JUIHZpcnR1YWwgfkRyYXdHbHlwaHMoKTsKIAotICAgIGNvbnN0IEZsb2F0UG9pbnQm
IGJsb2NrTG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2Jsb2NrTG9jYXRpb247IH0KLSAgICB2
b2lkIHNldEJsb2NrTG9jYXRpb24oY29uc3QgRmxvYXRQb2ludCYgYmxvY2tMb2NhdGlvbikgeyBt
X2Jsb2NrTG9jYXRpb24gPSBibG9ja0xvY2F0aW9uOyB9Ci0KLSAgICBjb25zdCBGbG9hdFNpemUm
IGxvY2FsQW5jaG9yKCkgY29uc3QgeyByZXR1cm4gbV9sb2NhbEFuY2hvcjsgfQorICAgIGNvbnN0
IEZsb2F0UG9pbnQmIGxvY2FsQW5jaG9yKCkgY29uc3QgeyByZXR1cm4gbV9sb2NhbEFuY2hvcjsg
fQogCi0gICAgRmxvYXRQb2ludCBhbmNob3JQb2ludCgpIGNvbnN0IHsgcmV0dXJuIG1fYmxvY2tM
b2NhdGlvbiArIG1fbG9jYWxBbmNob3I7IH0KKyAgICBGbG9hdFBvaW50IGFuY2hvclBvaW50KCkg
Y29uc3QgeyByZXR1cm4gbV9sb2NhbEFuY2hvcjsgfQogCiAgICAgY29uc3QgVmVjdG9yPEdseXBo
QnVmZmVyR2x5cGgsIDEyOD4mIGdseXBocygpIGNvbnN0IHsgcmV0dXJuIG1fZ2x5cGhzOyB9CiAK
QEAgLTExMjUsOCArMTEyMiw4IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgT3B0aW9uYWw8UmVmPERyYXdHbHlwaHM+PiBkZWNvZGUoRGVjb2RlciYpOwogCiBw
cml2YXRlOgotICAgIERyYXdHbHlwaHMoY29uc3QgRm9udCYsIGNvbnN0IEdseXBoQnVmZmVyR2x5
cGgqLCBjb25zdCBHbHlwaEJ1ZmZlckFkdmFuY2UqLCB1bnNpZ25lZCBjb3VudCwgY29uc3QgRmxv
YXRQb2ludCYgYmxvY2tMb2NhdGlvbiwgY29uc3QgRmxvYXRTaXplJiBsb2NhbEFuY2hvciwgRm9u
dFNtb290aGluZ01vZGUpOwotICAgIFdFQkNPUkVfRVhQT1JUIERyYXdHbHlwaHMoY29uc3QgRm9u
dCYsIFZlY3RvcjxHbHlwaEJ1ZmZlckdseXBoLCAxMjg+JiYsIFZlY3RvcjxHbHlwaEJ1ZmZlckFk
dmFuY2UsIDEyOD4mJiwgY29uc3QgRmxvYXRQb2ludCYgYmxvY2tMb2NhdGlvbiwgY29uc3QgRmxv
YXRTaXplJiBsb2NhbEFuY2hvciwgRm9udFNtb290aGluZ01vZGUpOworICAgIERyYXdHbHlwaHMo
Y29uc3QgRm9udCYsIGNvbnN0IEdseXBoQnVmZmVyR2x5cGgqLCBjb25zdCBHbHlwaEJ1ZmZlckFk
dmFuY2UqLCB1bnNpZ25lZCBjb3VudCwgY29uc3QgRmxvYXRQb2ludCYgbG9jYWxBbmNob3IsIEZv
bnRTbW9vdGhpbmdNb2RlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBEcmF3R2x5cGhzKGNvbnN0IEZv
bnQmLCBWZWN0b3I8R2x5cGhCdWZmZXJHbHlwaCwgMTI4PiYmLCBWZWN0b3I8R2x5cGhCdWZmZXJB
ZHZhbmNlLCAxMjg+JiYsIGNvbnN0IEZsb2F0UG9pbnQmIGxvY2FsQW5jaG9yLCBGb250U21vb3Ro
aW5nTW9kZSk7CiAKICAgICB2b2lkIGNvbXB1dGVCb3VuZHMoKTsKIApAQCAtMTE0MCw4ICsxMTM3
LDcgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8R2x5cGhCdWZmZXJHbHlwaCwgMTI4PiBtX2dseXBo
czsKICAgICBWZWN0b3I8R2x5cGhCdWZmZXJBZHZhbmNlLCAxMjg+IG1fYWR2YW5jZXM7CiAgICAg
RmxvYXRSZWN0IG1fYm91bmRzOwotICAgIEZsb2F0UG9pbnQgbV9ibG9ja0xvY2F0aW9uOwotICAg
IEZsb2F0U2l6ZSBtX2xvY2FsQW5jaG9yOworICAgIEZsb2F0UG9pbnQgbV9sb2NhbEFuY2hvcjsK
ICAgICBGb250U21vb3RoaW5nTW9kZSBtX3Ntb290aGluZ01vZGU7CiB9OwogCkBAIC0xMTUxLDcg
KzExNDcsNiBAQCB2b2lkIERyYXdHbHlwaHM6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAogICAgIGVuY29kZXIgPDwgbV9mb250OwogICAgIGVuY29kZXIgPDwgbV9nbHlwaHM7CiAgICAg
ZW5jb2RlciA8PCBtX2FkdmFuY2VzOwotICAgIGVuY29kZXIgPDwgbV9ibG9ja0xvY2F0aW9uOwog
ICAgIGVuY29kZXIgPDwgbV9sb2NhbEFuY2hvcjsKICAgICBlbmNvZGVyIDw8IG1fc21vb3RoaW5n
TW9kZTsKIH0KQEAgLTExNzcsMTIgKzExNzIsNyBAQCBPcHRpb25hbDxSZWY8RHJhd0dseXBocz4+
IERyYXdHbHlwaHM6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIGlmIChnbHlwaHMtPnNp
emUoKSAhPSBhZHZhbmNlcy0+c2l6ZSgpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owog
Ci0gICAgT3B0aW9uYWw8RmxvYXRQb2ludD4gYmxvY2tMb2NhdGlvbjsKLSAgICBkZWNvZGVyID4+
IGJsb2NrTG9jYXRpb247Ci0gICAgaWYgKCFibG9ja0xvY2F0aW9uKQotICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OwotCi0gICAgT3B0aW9uYWw8RmxvYXRTaXplPiBsb2NhbEFuY2hvcjsKKyAg
ICBPcHRpb25hbDxGbG9hdFBvaW50PiBsb2NhbEFuY2hvcjsKICAgICBkZWNvZGVyID4+IGxvY2Fs
QW5jaG9yOwogICAgIGlmICghbG9jYWxBbmNob3IpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CkBAIC0xMTkyLDcgKzExODIsNyBAQCBPcHRpb25hbDxSZWY8RHJhd0dseXBocz4+IERyYXdH
bHlwaHM6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIGlmICghc21vb3RoaW5nTW9kZSkK
ICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIHJldHVybiBEcmF3R2x5cGhzOjpj
cmVhdGUoZm9udC0+Z2V0KCksIFdURk1vdmUoKmdseXBocyksIFdURk1vdmUoKmFkdmFuY2VzKSwg
KmJsb2NrTG9jYXRpb24sICpsb2NhbEFuY2hvciwgKnNtb290aGluZ01vZGUpOworICAgIHJldHVy
biBEcmF3R2x5cGhzOjpjcmVhdGUoZm9udC0+Z2V0KCksIFdURk1vdmUoKmdseXBocyksIFdURk1v
dmUoKmFkdmFuY2VzKSwgKmxvY2FsQW5jaG9yLCAqc21vb3RoaW5nTW9kZSk7CiB9CiAKIGNsYXNz
IERyYXdJbWFnZSA6IHB1YmxpYyBEcmF3aW5nSXRlbSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RSZWNvcmRlci5jcHAKaW5kZXggYmQwNDM4YzZhNGIyNTZjODg1NmJiMTI5YTNhYjVmYTIz
ZTc4ZGM4YS4uZTY2NmRjYjMwZmNiNjM4NWYzNTFkNTBhZTU0Yzg3ZjY5NjEwNjg2NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0UmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcApAQCAtNDEsNiArNDEsNyBAQCBS
ZWNvcmRlcjo6UmVjb3JkZXIoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBEaXNwbGF5TGlzdCYg
ZGlzcGxheUxpc3QsIGNvbnN0IEdyYQogICAgIDogR3JhcGhpY3NDb250ZXh0SW1wbChjb250ZXh0
LCBpbml0aWFsQ2xpcCwgQWZmaW5lVHJhbnNmb3JtKCkpCiAgICAgLCBtX2Rpc3BsYXlMaXN0KGRp
c3BsYXlMaXN0KQogICAgICwgbV9vYnNlcnZlcihvYnNlcnZlcikKKyAgICAsIG1fZHJhd0dseXBo
c1JlY29yZGVyKCp0aGlzKQogewogICAgIExPR19XSVRIX1NUUkVBTShEaXNwbGF5TGlzdHMsIHN0
cmVhbSA8PCAiXG5SZWNvcmRpbmcgd2l0aCBjbGlwICIgPDwgaW5pdGlhbENsaXApOwogICAgIG1f
c3RhdGVTdGFjay5hcHBlbmQoeyBzdGF0ZSwgaW5pdGlhbENUTSwgaW5pdGlhbENsaXAgfSk7CkBA
IC0xMTEsNDMgKzExMiwzNyBAQCB2b2lkIFJlY29yZGVyOjpzZXRNaXRlckxpbWl0KGZsb2F0IG1p
dGVyTGltaXQpCiAKIHZvaWQgUmVjb3JkZXI6OmRyYXdHbHlwaHMoY29uc3QgRm9udCYgZm9udCwg
Y29uc3QgR2x5cGhCdWZmZXImIGdseXBoQnVmZmVyLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBu
dW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmIHN0YXJ0UG9pbnQsIEZvbnRTbW9vdGhpbmdNb2Rl
IHNtb290aGluZ01vZGUpCiB7Ci0gICAgRHJhd2luZ0l0ZW0mIG5ld0l0ZW0gPSBkb3duY2FzdDxE
cmF3aW5nSXRlbT4oYXBwZW5kSXRlbShEcmF3R2x5cGhzOjpjcmVhdGUoZm9udCwgZ2x5cGhCdWZm
ZXIuZ2x5cGhzKGZyb20pLCBnbHlwaEJ1ZmZlci5hZHZhbmNlcyhmcm9tKSwgbnVtR2x5cGhzLCBG
bG9hdFBvaW50KCksIHRvRmxvYXRTaXplKHN0YXJ0UG9pbnQpLCBzbW9vdGhpbmdNb2RlKSkpOwot
ICAgIHVwZGF0ZUl0ZW1FeHRlbnQobmV3SXRlbSk7CisgICAgbV9kcmF3R2x5cGhzUmVjb3JkZXIu
ZHJhd0dseXBocyhmb250LCBnbHlwaEJ1ZmZlciwgZnJvbSwgbnVtR2x5cGhzLCBzdGFydFBvaW50
LCBzbW9vdGhpbmdNb2RlKTsKIH0KIAogSW1hZ2VEcmF3UmVzdWx0IFJlY29yZGVyOjpkcmF3SW1h
Z2UoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9h
dFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIGltYWdlUGFpbnRpbmdP
cHRpb25zKQogewotICAgIERyYXdpbmdJdGVtJiBuZXdJdGVtID0gZG93bmNhc3Q8RHJhd2luZ0l0
ZW0+KGFwcGVuZEl0ZW0oRHJhd0ltYWdlOjpjcmVhdGUoaW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3Vy
Y2UsIGltYWdlUGFpbnRpbmdPcHRpb25zKSkpOwotICAgIHVwZGF0ZUl0ZW1FeHRlbnQobmV3SXRl
bSk7CisgICAgYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChEcmF3SW1hZ2U6OmNyZWF0ZShpbWFn
ZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgaW1hZ2VQYWludGluZ09wdGlvbnMpKTsKICAgICByZXR1
cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWRSZWNvcmQ7CiB9CiAKIEltYWdlRHJhd1Jlc3VsdCBSZWNv
cmRlcjo6ZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3Rp
bmF0aW9uLCBjb25zdCBGbG9hdFBvaW50JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNp
emUsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
IGltYWdlUGFpbnRpbmdPcHRpb25zKQogewotICAgIERyYXdpbmdJdGVtJiBuZXdJdGVtID0gZG93
bmNhc3Q8RHJhd2luZ0l0ZW0+KGFwcGVuZEl0ZW0oRHJhd1RpbGVkSW1hZ2U6OmNyZWF0ZShpbWFn
ZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgdGlsZVNpemUsIHNwYWNpbmcsIGltYWdlUGFpbnRpbmdP
cHRpb25zKSkpOwotICAgIHVwZGF0ZUl0ZW1FeHRlbnQobmV3SXRlbSk7CisgICAgYXBwZW5kSXRl
bUFuZFVwZGF0ZUV4dGVudChEcmF3VGlsZWRJbWFnZTo6Y3JlYXRlKGltYWdlLCBkZXN0aW5hdGlv
biwgc291cmNlLCB0aWxlU2l6ZSwgc3BhY2luZywgaW1hZ2VQYWludGluZ09wdGlvbnMpKTsKICAg
ICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWRSZWNvcmQ7CiB9CiAKIEltYWdlRHJhd1Jlc3Vs
dCBSZWNvcmRlcjo6ZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3Qm
IGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgRmxvYXRTaXplJiB0
aWxlU2NhbGVGYWN0b3IsIEltYWdlOjpUaWxlUnVsZSBoUnVsZSwgSW1hZ2U6OlRpbGVSdWxlIHZS
dWxlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCiB7
Ci0gICAgRHJhd2luZ0l0ZW0mIG5ld0l0ZW0gPSBkb3duY2FzdDxEcmF3aW5nSXRlbT4oYXBwZW5k
SXRlbShEcmF3VGlsZWRTY2FsZWRJbWFnZTo6Y3JlYXRlKGltYWdlLCBkZXN0aW5hdGlvbiwgc291
cmNlLCB0aWxlU2NhbGVGYWN0b3IsIGhSdWxlLCB2UnVsZSwgaW1hZ2VQYWludGluZ09wdGlvbnMp
KSk7Ci0gICAgdXBkYXRlSXRlbUV4dGVudChuZXdJdGVtKTsKKyAgICBhcHBlbmRJdGVtQW5kVXBk
YXRlRXh0ZW50KERyYXdUaWxlZFNjYWxlZEltYWdlOjpjcmVhdGUoaW1hZ2UsIGRlc3RpbmF0aW9u
LCBzb3VyY2UsIHRpbGVTY2FsZUZhY3RvciwgaFJ1bGUsIHZSdWxlLCBpbWFnZVBhaW50aW5nT3B0
aW9ucykpOwogICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZFJlY29yZDsKIH0KIAogI2lm
IFVTRShDRykgfHwgVVNFKENBSVJPKSB8fCBVU0UoRElSRUNUMkQpCiB2b2lkIFJlY29yZGVyOjpk
cmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9hdFNp
emUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0
JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKLSAgICBE
cmF3aW5nSXRlbSYgbmV3SXRlbSA9IGRvd25jYXN0PERyYXdpbmdJdGVtPihhcHBlbmRJdGVtKERy
YXdOYXRpdmVJbWFnZTo6Y3JlYXRlKGltYWdlLCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0
LCBvcHRpb25zKSkpOwotICAgIHVwZGF0ZUl0ZW1FeHRlbnQobmV3SXRlbSk7CisgICAgYXBwZW5k
SXRlbUFuZFVwZGF0ZUV4dGVudChEcmF3TmF0aXZlSW1hZ2U6OmNyZWF0ZShpbWFnZSwgaW1hZ2VT
aXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucykpOwogfQogI2VuZGlmCiAKIHZvaWQgUmVj
b3JkZXI6OmRyYXdQYXR0ZXJuKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVj
dCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0
ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBz
cGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKLSAgICBEcmF3
aW5nSXRlbSYgbmV3SXRlbSA9IGRvd25jYXN0PERyYXdpbmdJdGVtPihhcHBlbmRJdGVtKERyYXdQ
YXR0ZXJuOjpjcmVhdGUoaW1hZ2UsIGRlc3RSZWN0LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9y
bSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpKSk7Ci0gICAgdXBkYXRlSXRlbUV4dGVudChuZXdJ
dGVtKTsKKyAgICBhcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KERyYXdQYXR0ZXJuOjpjcmVhdGUo
aW1hZ2UsIGRlc3RSZWN0LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNp
bmcsIG9wdGlvbnMpKTsKIH0KIAogdm9pZCBSZWNvcmRlcjo6c2F2ZSgpCkBAIC0yMDgsOCArMjAz
LDcgQEAgQWZmaW5lVHJhbnNmb3JtIFJlY29yZGVyOjpnZXRDVE0oR3JhcGhpY3NDb250ZXh0OjpJ
bmNsdWRlRGV2aWNlU2NhbGUpCiAKIHZvaWQgUmVjb3JkZXI6OmJlZ2luVHJhbnNwYXJlbmN5TGF5
ZXIoZmxvYXQgb3BhY2l0eSkKIHsKLSAgICBEcmF3aW5nSXRlbSYgbmV3SXRlbSA9IGRvd25jYXN0
PERyYXdpbmdJdGVtPihhcHBlbmRJdGVtKEJlZ2luVHJhbnNwYXJlbmN5TGF5ZXI6OmNyZWF0ZShv
cGFjaXR5KSkpOwotICAgIHVwZGF0ZUl0ZW1FeHRlbnQobmV3SXRlbSk7CisgICAgYXBwZW5kSXRl
bUFuZFVwZGF0ZUV4dGVudChCZWdpblRyYW5zcGFyZW5jeUxheWVyOjpjcmVhdGUob3BhY2l0eSkp
OwogfQogCiB2b2lkIFJlY29yZGVyOjplbmRUcmFuc3BhcmVuY3lMYXllcigpCkBAIC0yMTksMTIy
ICsyMTMsMTAyIEBAIHZvaWQgUmVjb3JkZXI6OmVuZFRyYW5zcGFyZW5jeUxheWVyKCkKIAogdm9p
ZCBSZWNvcmRlcjo6ZHJhd1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBmbG9hdCBib3JkZXJU
aGlja25lc3MpCiB7Ci0gICAgRHJhd2luZ0l0ZW0mIG5ld0l0ZW0gPSBkb3duY2FzdDxEcmF3aW5n
SXRlbT4oYXBwZW5kSXRlbShEcmF3UmVjdDo6Y3JlYXRlKHJlY3QsIGJvcmRlclRoaWNrbmVzcykp
KTsKLSAgICB1cGRhdGVJdGVtRXh0ZW50KG5ld0l0ZW0pOworICAgIGFwcGVuZEl0ZW1BbmRVcGRh
dGVFeHRlbnQoRHJhd1JlY3Q6OmNyZWF0ZShyZWN0LCBib3JkZXJUaGlja25lc3MpKTsKIH0KIAog
dm9pZCBSZWNvcmRlcjo6ZHJhd0xpbmUoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQxLCBjb25zdCBG
bG9hdFBvaW50JiBwb2ludDIpCiB7Ci0gICAgRHJhd2luZ0l0ZW0mIG5ld0l0ZW0gPSBkb3duY2Fz
dDxEcmF3aW5nSXRlbT4oYXBwZW5kSXRlbShEcmF3TGluZTo6Y3JlYXRlKHBvaW50MSwgcG9pbnQy
KSkpOwotICAgIHVwZGF0ZUl0ZW1FeHRlbnQobmV3SXRlbSk7CisgICAgYXBwZW5kSXRlbUFuZFVw
ZGF0ZUV4dGVudChEcmF3TGluZTo6Y3JlYXRlKHBvaW50MSwgcG9pbnQyKSk7CiB9CiAKIHZvaWQg
UmVjb3JkZXI6OmRyYXdMaW5lc0ZvclRleHQoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIGZsb2F0
IHRoaWNrbmVzcywgY29uc3QgRGFzaEFycmF5JiB3aWR0aHMsIGJvb2wgcHJpbnRpbmcsIGJvb2wg
ZG91YmxlTGluZXMpCiB7Ci0gICAgRHJhd2luZ0l0ZW0mIG5ld0l0ZW0gPSBkb3duY2FzdDxEcmF3
aW5nSXRlbT4oYXBwZW5kSXRlbShEcmF3TGluZXNGb3JUZXh0OjpjcmVhdGUoRmxvYXRQb2ludCgp
LCB0b0Zsb2F0U2l6ZShwb2ludCksIHRoaWNrbmVzcywgd2lkdGhzLCBwcmludGluZywgZG91Ymxl
TGluZXMpKSk7Ci0gICAgdXBkYXRlSXRlbUV4dGVudChuZXdJdGVtKTsKKyAgICBhcHBlbmRJdGVt
QW5kVXBkYXRlRXh0ZW50KERyYXdMaW5lc0ZvclRleHQ6OmNyZWF0ZShGbG9hdFBvaW50KCksIHRv
RmxvYXRTaXplKHBvaW50KSwgdGhpY2tuZXNzLCB3aWR0aHMsIHByaW50aW5nLCBkb3VibGVMaW5l
cykpOwogfQogCiB2b2lkIFJlY29yZGVyOjpkcmF3RG90c0ZvckRvY3VtZW50TWFya2VyKGNvbnN0
IEZsb2F0UmVjdCYgcmVjdCwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUgc3R5bGUpCiB7Ci0gICAg
RHJhd2luZ0l0ZW0mIG5ld0l0ZW0gPSBkb3duY2FzdDxEcmF3aW5nSXRlbT4oYXBwZW5kSXRlbShE
cmF3RG90c0ZvckRvY3VtZW50TWFya2VyOjpjcmVhdGUocmVjdCwgc3R5bGUpKSk7Ci0gICAgdXBk
YXRlSXRlbUV4dGVudChuZXdJdGVtKTsKKyAgICBhcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KERy
YXdEb3RzRm9yRG9jdW1lbnRNYXJrZXI6OmNyZWF0ZShyZWN0LCBzdHlsZSkpOwogfQogCiB2b2lk
IFJlY29yZGVyOjpkcmF3RWxsaXBzZShjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7Ci0gICAgRHJh
d2luZ0l0ZW0mIG5ld0l0ZW0gPSBkb3duY2FzdDxEcmF3aW5nSXRlbT4oYXBwZW5kSXRlbShEcmF3
RWxsaXBzZTo6Y3JlYXRlKHJlY3QpKSk7Ci0gICAgdXBkYXRlSXRlbUV4dGVudChuZXdJdGVtKTsK
KyAgICBhcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KERyYXdFbGxpcHNlOjpjcmVhdGUocmVjdCkp
OwogfQogCiB2b2lkIFJlY29yZGVyOjpkcmF3UGF0aChjb25zdCBQYXRoJiBwYXRoKQogewotICAg
IERyYXdpbmdJdGVtJiBuZXdJdGVtID0gZG93bmNhc3Q8RHJhd2luZ0l0ZW0+KGFwcGVuZEl0ZW0o
RHJhd1BhdGg6OmNyZWF0ZShwYXRoKSkpOwotICAgIHVwZGF0ZUl0ZW1FeHRlbnQobmV3SXRlbSk7
CisgICAgYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChEcmF3UGF0aDo6Y3JlYXRlKHBhdGgpKTsK
IH0KIAogdm9pZCBSZWNvcmRlcjo6ZHJhd0ZvY3VzUmluZyhjb25zdCBQYXRoJiBwYXRoLCBmbG9h
dCB3aWR0aCwgZmxvYXQgb2Zmc2V0LCBjb25zdCBDb2xvciYgY29sb3IpCiB7Ci0gICAgRHJhd2lu
Z0l0ZW0mIG5ld0l0ZW0gPSBkb3duY2FzdDxEcmF3aW5nSXRlbT4oYXBwZW5kSXRlbShEcmF3Rm9j
dXNSaW5nUGF0aDo6Y3JlYXRlKHBhdGgsIHdpZHRoLCBvZmZzZXQsIGNvbG9yKSkpOwotICAgIHVw
ZGF0ZUl0ZW1FeHRlbnQobmV3SXRlbSk7CisgICAgYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChE
cmF3Rm9jdXNSaW5nUGF0aDo6Y3JlYXRlKHBhdGgsIHdpZHRoLCBvZmZzZXQsIGNvbG9yKSk7CiB9
CiAKIHZvaWQgUmVjb3JkZXI6OmRyYXdGb2N1c1JpbmcoY29uc3QgVmVjdG9yPEZsb2F0UmVjdD4m
IHJlY3RzLCBmbG9hdCB3aWR0aCwgZmxvYXQgb2Zmc2V0LCBjb25zdCBDb2xvciYgY29sb3IpCiB7
Ci0gICAgRHJhd2luZ0l0ZW0mIG5ld0l0ZW0gPSBkb3duY2FzdDxEcmF3aW5nSXRlbT4oYXBwZW5k
SXRlbShEcmF3Rm9jdXNSaW5nUmVjdHM6OmNyZWF0ZShyZWN0cywgd2lkdGgsIG9mZnNldCwgY29s
b3IpKSk7Ci0gICAgdXBkYXRlSXRlbUV4dGVudChuZXdJdGVtKTsKKyAgICBhcHBlbmRJdGVtQW5k
VXBkYXRlRXh0ZW50KERyYXdGb2N1c1JpbmdSZWN0czo6Y3JlYXRlKHJlY3RzLCB3aWR0aCwgb2Zm
c2V0LCBjb2xvcikpOwogfQogCiB2b2lkIFJlY29yZGVyOjpmaWxsUmVjdChjb25zdCBGbG9hdFJl
Y3QmIHJlY3QpCiB7Ci0gICAgRHJhd2luZ0l0ZW0mIG5ld0l0ZW0gPSBkb3duY2FzdDxEcmF3aW5n
SXRlbT4oYXBwZW5kSXRlbShGaWxsUmVjdDo6Y3JlYXRlKHJlY3QpKSk7Ci0gICAgdXBkYXRlSXRl
bUV4dGVudChuZXdJdGVtKTsKKyAgICBhcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KEZpbGxSZWN0
OjpjcmVhdGUocmVjdCkpOwogfQogCiB2b2lkIFJlY29yZGVyOjpmaWxsUmVjdChjb25zdCBGbG9h
dFJlY3QmIHJlY3QsIGNvbnN0IENvbG9yJiBjb2xvcikKIHsKLSAgICBEcmF3aW5nSXRlbSYgbmV3
SXRlbSA9IGRvd25jYXN0PERyYXdpbmdJdGVtPihhcHBlbmRJdGVtKEZpbGxSZWN0V2l0aENvbG9y
OjpjcmVhdGUocmVjdCwgY29sb3IpKSk7Ci0gICAgdXBkYXRlSXRlbUV4dGVudChuZXdJdGVtKTsK
KyAgICBhcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KEZpbGxSZWN0V2l0aENvbG9yOjpjcmVhdGUo
cmVjdCwgY29sb3IpKTsKIH0KIAogdm9pZCBSZWNvcmRlcjo6ZmlsbFJlY3QoY29uc3QgRmxvYXRS
ZWN0JiByZWN0LCBHcmFkaWVudCYgZ3JhZGllbnQpCiB7Ci0gICAgRHJhd2luZ0l0ZW0mIG5ld0l0
ZW0gPSBkb3duY2FzdDxEcmF3aW5nSXRlbT4oYXBwZW5kSXRlbShGaWxsUmVjdFdpdGhHcmFkaWVu
dDo6Y3JlYXRlKHJlY3QsIGdyYWRpZW50KSkpOwotICAgIHVwZGF0ZUl0ZW1FeHRlbnQobmV3SXRl
bSk7CisgICAgYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChGaWxsUmVjdFdpdGhHcmFkaWVudDo6
Y3JlYXRlKHJlY3QsIGdyYWRpZW50KSk7CiB9CiAKIHZvaWQgUmVjb3JkZXI6OmZpbGxSZWN0KGNv
bnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgQ29sb3ImIGNvbG9yLCBDb21wb3NpdGVPcGVyYXRv
ciBvcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKIHsKLSAgICBEcmF3aW5nSXRlbSYgbmV3SXRlbSA9
IGRvd25jYXN0PERyYXdpbmdJdGVtPihhcHBlbmRJdGVtKEZpbGxDb21wb3NpdGVkUmVjdDo6Y3Jl
YXRlKHJlY3QsIGNvbG9yLCBvcCwgYmxlbmRNb2RlKSkpOwotICAgIHVwZGF0ZUl0ZW1FeHRlbnQo
bmV3SXRlbSk7CisgICAgYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChGaWxsQ29tcG9zaXRlZFJl
Y3Q6OmNyZWF0ZShyZWN0LCBjb2xvciwgb3AsIGJsZW5kTW9kZSkpOwogfQogCiB2b2lkIFJlY29y
ZGVyOjpmaWxsUm91bmRlZFJlY3QoY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcmVjdCwgY29uc3Qg
Q29sb3ImIGNvbG9yLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQogewotICAgIERyYXdpbmdJdGVtJiBu
ZXdJdGVtID0gZG93bmNhc3Q8RHJhd2luZ0l0ZW0+KGFwcGVuZEl0ZW0oRmlsbFJvdW5kZWRSZWN0
OjpjcmVhdGUocmVjdCwgY29sb3IsIGJsZW5kTW9kZSkpKTsKLSAgICB1cGRhdGVJdGVtRXh0ZW50
KG5ld0l0ZW0pOworICAgIGFwcGVuZEl0ZW1BbmRVcGRhdGVFeHRlbnQoRmlsbFJvdW5kZWRSZWN0
OjpjcmVhdGUocmVjdCwgY29sb3IsIGJsZW5kTW9kZSkpOwogfQogCiB2b2lkIFJlY29yZGVyOjpm
aWxsUmVjdFdpdGhSb3VuZGVkSG9sZShjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IEZsb2F0
Um91bmRlZFJlY3QmIHJvdW5kZWRIb2xlUmVjdCwgY29uc3QgQ29sb3ImIGNvbG9yKQogewotICAg
IERyYXdpbmdJdGVtJiBuZXdJdGVtID0gZG93bmNhc3Q8RHJhd2luZ0l0ZW0+KGFwcGVuZEl0ZW0o
RmlsbFJlY3RXaXRoUm91bmRlZEhvbGU6OmNyZWF0ZShyZWN0LCByb3VuZGVkSG9sZVJlY3QsIGNv
bG9yKSkpOwotICAgIHVwZGF0ZUl0ZW1FeHRlbnQobmV3SXRlbSk7CisgICAgYXBwZW5kSXRlbUFu
ZFVwZGF0ZUV4dGVudChGaWxsUmVjdFdpdGhSb3VuZGVkSG9sZTo6Y3JlYXRlKHJlY3QsIHJvdW5k
ZWRIb2xlUmVjdCwgY29sb3IpKTsKIH0KIAogdm9pZCBSZWNvcmRlcjo6ZmlsbFBhdGgoY29uc3Qg
UGF0aCYgcGF0aCkKIHsKLSAgICBEcmF3aW5nSXRlbSYgbmV3SXRlbSA9IGRvd25jYXN0PERyYXdp
bmdJdGVtPihhcHBlbmRJdGVtKEZpbGxQYXRoOjpjcmVhdGUocGF0aCkpKTsKLSAgICB1cGRhdGVJ
dGVtRXh0ZW50KG5ld0l0ZW0pOworICAgIGFwcGVuZEl0ZW1BbmRVcGRhdGVFeHRlbnQoRmlsbFBh
dGg6OmNyZWF0ZShwYXRoKSk7CiB9CiAKIHZvaWQgUmVjb3JkZXI6OmZpbGxFbGxpcHNlKGNvbnN0
IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSAgICBEcmF3aW5nSXRlbSYgbmV3SXRlbSA9IGRvd25jYXN0
PERyYXdpbmdJdGVtPihhcHBlbmRJdGVtKEZpbGxFbGxpcHNlOjpjcmVhdGUocmVjdCkpKTsKLSAg
ICB1cGRhdGVJdGVtRXh0ZW50KG5ld0l0ZW0pOworICAgIGFwcGVuZEl0ZW1BbmRVcGRhdGVFeHRl
bnQoRmlsbEVsbGlwc2U6OmNyZWF0ZShyZWN0KSk7CiB9CiAKIHZvaWQgUmVjb3JkZXI6OnN0cm9r
ZVJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBmbG9hdCBsaW5lV2lkdGgpCiB7Ci0gICAgRHJh
d2luZ0l0ZW0mIG5ld0l0ZW0gPSBkb3duY2FzdDxEcmF3aW5nSXRlbT4oYXBwZW5kSXRlbShTdHJv
a2VSZWN0OjpjcmVhdGUocmVjdCwgbGluZVdpZHRoKSkpOwotICAgIHVwZGF0ZUl0ZW1FeHRlbnQo
bmV3SXRlbSk7CisgICAgYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChTdHJva2VSZWN0OjpjcmVh
dGUocmVjdCwgbGluZVdpZHRoKSk7CiB9CiAKIHZvaWQgUmVjb3JkZXI6OnN0cm9rZVBhdGgoY29u
c3QgUGF0aCYgcGF0aCkKIHsKLSAgICBEcmF3aW5nSXRlbSYgbmV3SXRlbSA9IGRvd25jYXN0PERy
YXdpbmdJdGVtPihhcHBlbmRJdGVtKFN0cm9rZVBhdGg6OmNyZWF0ZShwYXRoKSkpOwotICAgIHVw
ZGF0ZUl0ZW1FeHRlbnQobmV3SXRlbSk7CisgICAgYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChT
dHJva2VQYXRoOjpjcmVhdGUocGF0aCkpOwogfQogCiB2b2lkIFJlY29yZGVyOjpzdHJva2VFbGxp
cHNlKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSAgICBEcmF3aW5nSXRlbSYgbmV3SXRlbSA9
IGRvd25jYXN0PERyYXdpbmdJdGVtPihhcHBlbmRJdGVtKFN0cm9rZUVsbGlwc2U6OmNyZWF0ZShy
ZWN0KSkpOwotICAgIHVwZGF0ZUl0ZW1FeHRlbnQobmV3SXRlbSk7CisgICAgYXBwZW5kSXRlbUFu
ZFVwZGF0ZUV4dGVudChTdHJva2VFbGxpcHNlOjpjcmVhdGUocmVjdCkpOwogfQogCiB2b2lkIFJl
Y29yZGVyOjpjbGVhclJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewotICAgIERyYXdpbmdJ
dGVtJiBuZXdJdGVtID0gZG93bmNhc3Q8RHJhd2luZ0l0ZW0+KGFwcGVuZEl0ZW0oQ2xlYXJSZWN0
OjpjcmVhdGUocmVjdCkpKTsKLSAgICB1cGRhdGVJdGVtRXh0ZW50KG5ld0l0ZW0pOworICAgIGFw
cGVuZEl0ZW1BbmRVcGRhdGVFeHRlbnQoQ2xlYXJSZWN0OjpjcmVhdGUocmVjdCkpOwogfQogCiAj
aWYgVVNFKENHKQpAQCAtNDAyLDYgKzM3NiwxMiBAQCBGbG9hdFJlY3QgUmVjb3JkZXI6OnJvdW5k
VG9EZXZpY2VQaXhlbHMoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBHcmFwaGljc0NvbnRleHQ6Ogog
ICAgIHJldHVybiByZWN0OwogfQogCit2b2lkIFJlY29yZGVyOjphcHBlbmRJdGVtQW5kVXBkYXRl
RXh0ZW50KFJlZjxEcmF3aW5nSXRlbT4mJiBpdGVtKQoreworICAgIERyYXdpbmdJdGVtJiBuZXdJ
dGVtID0gZG93bmNhc3Q8RHJhd2luZ0l0ZW0+KGFwcGVuZEl0ZW0oV1RGTW92ZShpdGVtKSkpOwor
ICAgIHVwZGF0ZUl0ZW1FeHRlbnQobmV3SXRlbSk7Cit9CisKIEl0ZW0mIFJlY29yZGVyOjphcHBl
bmRJdGVtKFJlZjxJdGVtPiYmIGl0ZW0pCiB7CiAgICAgd2lsbEFwcGVuZEl0ZW0oaXRlbS5nZXQo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaAppbmRleCBkMjcwYzVkOTA4
YWM2OGQ3ODA4MzYzYmJhOTFiMmU3NjFhZWRjOTJiLi5mYWFjNjNmM2RkMjRlYmZlNmFiOTRlZWNl
NmFiYmY0YzFhYjExYzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgK
QEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRGlzcGxheUxpc3Qu
aCIKKyNpbmNsdWRlICJEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIgogI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dEltcGwuaCIKICNpbmNsdWRlICJJbWFnZS5oIiAvLyBGb3IgSW1hZ2U6
OlRpbGVSdWxlLgogI2luY2x1ZGUgIlRleHRGbGFncy5oIgpAQCAtNjEsNiArNjIsOCBAQCBwdWJs
aWM6CiAKICAgICBzaXplX3QgaXRlbUNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9kaXNwbGF5TGlz
dC5pdGVtQ291bnQoKTsgfQogCisgICAgdm9pZCBhcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KFJl
ZjxEcmF3aW5nSXRlbT4mJik7CisKICAgICBjbGFzcyBPYnNlcnZlciB7CiAgICAgcHVibGljOgog
ICAgICAgICB2aXJ0dWFsIH5PYnNlcnZlcigpIHsgfQpAQCAtMTg2LDYgKzE4OSw4IEBAIHByaXZh
dGU6CiAgICAgT2JzZXJ2ZXIqIG1fb2JzZXJ2ZXI7CiAKICAgICBWZWN0b3I8Q29udGV4dFN0YXRl
LCAzMj4gbV9zdGF0ZVN0YWNrOworCisgICAgRHJhd0dseXBoc1JlY29yZGVyIG1fZHJhd0dseXBo
c1JlY29yZGVyOwogfTsKIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410998</attachid>
            <date>2020-10-09 20:01:17 -0700</date>
            <delta_ts>2020-10-09 20:02:30 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-217506-20201009200116.patch</filename>
            <type>text/plain</type>
            <size>30323</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MzA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWFmN2Y2ZjgxZmY1Mzlh
N2QzZTFkOGJiMzVhOTNiOGI2ZDFhNzQxZi4uZDBiZjc4Zjc4YmUwNWZkYWEzYWQ2MTY1MWNkYmY2
YjA1YWQyMWNiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDIwLTEwLTA5ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBb
R1BVIFByb2Nlc3NdIFBlcmZvcm0gaW1hZ2UgZGVjb2Rpbmcgb2YgY29sb3IgZm9udHMgaW4gdGhl
IFdlYiBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTc1MDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY5NzY4MTg2PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09Q
UyEpLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2Eu
dHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9GcmVlVHlwZS5jbWFrZToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0ds
eXBoc1JlY29yZGVyQ29yZVRleHQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpkcmF3R2x5cGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpkcmF3
SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRl
cjo6Y3JlYXRlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpEcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdHbHlwaHNSZWNvcmRlcik6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpwcmVwYXJlSW50ZXJuYWxDb250
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6
OmNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
Ojpjb21wdXRlQWR2YW5jZXNGcm9tUG9zaXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZERyYXdHbHlwaHMpOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6cmVjb3JkRHJhd0ltYWdl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OmRy
YXdHbHlwaHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpEcmF3R2x5cGhzUmVjb3Jk
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6
ZHJhd0dseXBocyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdH
bHlwaHM6OkRyYXdHbHlwaHMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdH
bHlwaHM6OmNvbXB1dGVCb3VuZHMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRy
YXdHbHlwaHM6OmxvY2FsQm91bmRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtcy5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRy
YXdHbHlwaHM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ds
eXBoczo6bG9jYWxBbmNob3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdHbHlwaHM6OmFuY2hvclBvaW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEcmF3R2x5cGhzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRyYXdHbHlwaHM6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6RHJhd0dseXBoczo6YmxvY2tMb2NhdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoczo6c2V0QmxvY2tMb2NhdGlvbik6IERl
bGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVy
OjpSZWNvcmRlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmRy
YXdHbHlwaHMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpkcmF3
SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpkcmF3VGls
ZWRJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmRyYXdO
YXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmRy
YXdQYXR0ZXJuKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6YmVn
aW5UcmFuc3BhcmVuY3lMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVj
b3JkZXI6OmRyYXdSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRl
cjo6ZHJhd0xpbmUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpk
cmF3TGluZXNGb3JUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRl
cjo6ZHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6UmVjb3JkZXI6OmRyYXdFbGxpcHNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpSZWNvcmRlcjo6ZHJhd1BhdGgpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlY29yZGVyOjpkcmF3Rm9jdXNSaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpSZWNvcmRlcjo6ZmlsbFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJl
Y29yZGVyOjpmaWxsUm91bmRlZFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlY29yZGVyOjpmaWxsUmVjdFdpdGhSb3VuZGVkSG9sZSk6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6UmVjb3JkZXI6OmZpbGxQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpSZWNvcmRlcjo6ZmlsbEVsbGlwc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OlJlY29yZGVyOjpzdHJva2VSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpSZWNvcmRlcjo6c3Ryb2tlUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6UmVjb3JkZXI6OnN0cm9rZUVsbGlwc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlJlY29yZGVyOjpjbGVhclJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlY29yZGVyOjphcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oOgorCiAyMDIwLTEw
LTA5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAg
W0dQVSBQcm9jZXNzXSBEZWxldGUgRGlzcGxheUxpc3Q6OkRyYXdHbHlwaHM6Om1fYmxvY2tMb2Nh
dGlvbiBiZWNhdXNlIGl0J3MgYWx3YXlzIDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDNjY2U4Y2M2
NDAxNTNlODkyMzFmZjhlYzI3OGUyMWZiYzlmMWNmMzcuLjg3ODNiM2Y3YTUxOGU1NWJlMzRhMWYw
MzJhMTBhNjllMjI5OGU3NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDIwLTEwLTA5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAg
ICAgICAgW0NvY29hXSBbR1BVIFByb2Nlc3NdIFBlcmZvcm0gaW1hZ2UgZGVjb2Rpbmcgb2YgY29s
b3IgZm9udHMgaW4gdGhlIFdlYiBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1MDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY5NzY4
MTg2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaDoKKwogMjAyMC0xMC0wMiAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIEFWQXNzZXRXcml0ZXIgU1BJIGhl
YWRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggYTg0N2IwNWFiNDRlNWNkNGE3MDZiZTMwOGM4YjY0
NWI1MjU0MDBmZS4uZWZmOTZlY2EyODQ3MWNhOTY3NzFkNTk5MWRiYmIxNGQ5YmRjZDM4ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlCkBAIC0xMjI1LDYgKzEyMjUsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRF
X0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvRXh0ZW5zaW9u
c0dMQU5HTEUuaAogCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0LmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3
R2x5cGhzUmVjb3JkZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdERyYXdpbmdDb250ZXh0LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3Nw
aS9jZy9Db3JlR3JhcGhpY3NTUEkuaAppbmRleCBhN2Y4MmI4NjFiNjJjNGFlZmI4M2MxODExZDU1
YzdhZjc0OWU2YjkxLi5iODg2N2FmYTg0YTczMTYxY2Y2MjlkOGFkMzI3NDJmYTcxODAwNmI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaApA
QCAtMzgsNiArMzgsNyBAQAogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAorI2luY2x1
ZGUgPENvcmVHcmFwaGljcy9DR0NvbnRleHREZWxlZ2F0ZVByaXZhdGUuaD4KICNpbmNsdWRlIDxD
b3JlR3JhcGhpY3MvQ0dGb250Q2FjaGUuaD4KICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dQYXRo
UHJpdmF0ZS5oPgogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3NQcml2YXRlLmg+
CkBAIC01OCwxOSArNTksMTAgQEAgc3RydWN0IENHRm9udEhNZXRyaWNzIHsKICAgICBpbnQgbWlu
UmlnaHRTaWRlQmVhcmluZzsKIH07CiAKLXN0cnVjdCBDR0ZvbnREZXNjcmlwdG9yIHsKLSAgICBD
R1JlY3QgYmJveDsKLSAgICBDR0Zsb2F0IGFzY2VudDsKLSAgICBDR0Zsb2F0IGRlc2NlbnQ7Ci0g
ICAgQ0dGbG9hdCBjYXBIZWlnaHQ7Ci0gICAgQ0dGbG9hdCBpdGFsaWNBbmdsZTsKLSAgICBDR0Zs
b2F0IHN0ZW1WOwotICAgIENHRmxvYXQgc3RlbUg7Ci0gICAgQ0dGbG9hdCBhdmdXaWR0aDsKLSAg
ICBDR0Zsb2F0IG1heFdpZHRoOwotICAgIENHRmxvYXQgbWlzc2luZ1dpZHRoOwotICAgIENHRmxv
YXQgbGVhZGluZzsKLSAgICBDR0Zsb2F0IHhIZWlnaHQ7Cit0eXBlZGVmIENGX0VOVU0gKGludDMy
X3QsIENHQ29udGV4dERlbGVnYXRlQ2FsbGJhY2tOYW1lKQoreworICAgIGRlRHJhd0ltYWdlID0g
NywKKyAgICBkZURyYXdHbHlwaHMgPSA4LAogfTsKIAogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgQ0dD
b2xvclRyYW5zZm9ybSogQ0dDb2xvclRyYW5zZm9ybVJlZjsKQEAgLTE5Myw2ICsxODUsMTEgQEAg
c3RhdGljIGNvbnN0IENHU05vdGlmaWNhdGlvblR5cGUga0NHU2Vzc2lvbkNvbnNvbGVEaXNjb25u
ZWN0ID0gKENHU05vdGlmaWNhdGlvblQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAordHlw
ZWRlZiBzdHJ1Y3QgQ0dDb250ZXh0RGVsZWdhdGUgKkNHQ29udGV4dERlbGVnYXRlUmVmOwordHlw
ZWRlZiB2b2lkICgqQ0dDb250ZXh0RGVsZWdhdGVDYWxsYmFjaykodm9pZCk7Cit0eXBlZGVmIHN0
cnVjdCBDR1JlbmRlcmluZ1N0YXRlICpDR1JlbmRlcmluZ1N0YXRlUmVmOwordHlwZWRlZiBzdHJ1
Y3QgQ0dHU3RhdGUgKkNHR1N0YXRlUmVmOworCiAjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFM
X1NESykKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtMjMzLDcgKzIzMCw2IEBAIHZvaWQgQ0dD
b250ZXh0UmVzZXRDbGlwKENHQ29udGV4dFJlZik7CiBDR0NvbnRleHRUeXBlIENHQ29udGV4dEdl
dFR5cGUoQ0dDb250ZXh0UmVmKTsKIAogQ0ZTdHJpbmdSZWYgQ0dGb250Q29weUZhbWlseU5hbWUo
Q0dGb250UmVmKTsKLWJvb2wgQ0dGb250R2V0RGVzY3JpcHRvcihDR0ZvbnRSZWYsIENHRm9udERl
c2NyaXB0b3IqKTsKIGJvb2wgQ0dGb250R2V0R2x5cGhBZHZhbmNlc0ZvclN0eWxlKENHRm9udFJl
ZiwgY29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0qICwgQ0dGb250UmVuZGVyaW5nU3R5bGUsIGNvbnN0
IENHR2x5cGhbXSwgc2l6ZV90IGNvdW50LCBDR1NpemUgYWR2YW5jZXNbXSk7CiB2b2lkIENHRm9u
dEdldEdseXBoc0ZvclVuaWNoYXJzKENHRm9udFJlZiwgY29uc3QgVW5pQ2hhcltdLCBDR0dseXBo
W10sIHNpemVfdCBjb3VudCk7CiBjb25zdCBDR0ZvbnRITWV0cmljcyogQ0dGb250R2V0SE1ldHJp
Y3MoQ0dGb250UmVmKTsKQEAgLTI1Miw2ICsyNDgsMTQgQEAgYm9vbCBDR0NvbnRleHRHZXRBbGxv
d3NGb250U3VicGl4ZWxQb3NpdGlvbmluZyhDR0NvbnRleHRSZWYpOwogYm9vbCBDR0NvbnRleHRE
cmF3c1dpdGhDb3JyZWN0U2hhZG93T2Zmc2V0cyhDR0NvbnRleHRSZWYpOwogQ0dQYXR0ZXJuUmVm
IENHUGF0dGVybkNyZWF0ZVdpdGhJbWFnZTIoQ0dJbWFnZVJlZiwgQ0dBZmZpbmVUcmFuc2Zvcm0s
IENHUGF0dGVyblRpbGluZyk7CiAKK0NHQ29udGV4dERlbGVnYXRlUmVmIENHQ29udGV4dERlbGVn
YXRlQ3JlYXRlKHZvaWQqIGluZm8pOwordm9pZCBDR0NvbnRleHREZWxlZ2F0ZVNldENhbGxiYWNr
KENHQ29udGV4dERlbGVnYXRlUmVmLCBDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrTmFtZSwgQ0dD
b250ZXh0RGVsZWdhdGVDYWxsYmFjayk7CitDR0NvbnRleHRSZWYgQ0dDb250ZXh0Q3JlYXRlV2l0
aERlbGVnYXRlKENHQ29udGV4dERlbGVnYXRlUmVmLCBDR0NvbnRleHRUeXBlLCBDR1JlbmRlcmlu
Z1N0YXRlUmVmLCBDR0dTdGF0ZVJlZik7Cit2b2lkKiBDR0NvbnRleHREZWxlZ2F0ZUdldEluZm8o
Q0dDb250ZXh0RGVsZWdhdGVSZWYpOwordm9pZCBDR0NvbnRleHREZWxlZ2F0ZVJlbGVhc2UoQ0dD
b250ZXh0RGVsZWdhdGVSZWYpOworQ0dGbG9hdCBDR0dTdGF0ZUdldEFscGhhKENHR1N0YXRlUmVm
KTsKK0NHRm9udFJlZiBDR0dTdGF0ZUdldEZvbnQoQ0dHU3RhdGVSZWYpOworCiAjaWYgSEFWRShD
R1BBVEhfR0VUX05VTUJFUl9PRl9FTEVNRU5UUykKIHNpemVfdCBDR1BhdGhHZXROdW1iZXJPZkVs
ZW1lbnRzKENHUGF0aFJlZik7CiAjZW5kaWYKQEAgLTI4NiwxNiArMjkwLDkgQEAgQ0dSZWN0KiBD
R1NOZXh0UmVjdChjb25zdCBDR1NSZWdpb25FbnVtZXJhdG9yT2JqKTsKIENHU1JlZ2lvbkVudW1l
cmF0b3JPYmogQ0dTUmVnaW9uRW51bWVyYXRvcihDR1JlZ2lvblJlZik7CiBDR1N0eWxlUmVmIENH
U3R5bGVDcmVhdGVGb2N1c1JpbmdXaXRoQ29sb3IoY29uc3QgQ0dGb2N1c1JpbmdTdHlsZSosIENH
Q29sb3JSZWYpOwogdm9pZCBDR0NvbnRleHRTZXRTdHlsZShDR0NvbnRleHRSZWYsIENHU3R5bGVS
ZWYpOwotCiB2b2lkIENHQ29udGV4dERyYXdDb25pY0dyYWRpZW50KENHQ29udGV4dFJlZiwgQ0dH
cmFkaWVudFJlZiwgQ0dQb2ludCBjZW50ZXIsIENHRmxvYXQgYW5nbGUpOwotCi0jaWYgSEFWRShD
R19QQVRIX1VORVZFTl9DT1JORVJTX1JPVU5ERURSRUNUKQogdm9pZCBDR1BhdGhBZGRVbmV2ZW5D
b3JuZXJzUm91bmRlZFJlY3QoQ0dNdXRhYmxlUGF0aFJlZiwgY29uc3QgQ0dBZmZpbmVUcmFuc2Zv
cm0gKiwgQ0dSZWN0LCBjb25zdCBDR1NpemUgY29ybmVyc1s0XSk7Ci0jZW5kaWYKLQotI2lmIEhB
VkUoQ0dfRk9OVF9SRU5ERVJJTkdfR0VUX0ZPTlRfU01PT1RISU5HX0RJU0FCTEVEKQogYm9vbCBD
R0ZvbnRSZW5kZXJpbmdHZXRGb250U21vb3RoaW5nRGlzYWJsZWQodm9pZCk7Ci0jZW5kaWYKIAog
I2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCkBAIC0zMjgsMTUgKzMyNSwxMCBAQCBib29sIENv
bG9yU3luY1Byb2ZpbGVJc1dpZGVHYW11dChDb2xvclN5bmNQcm9maWxlUmVmKTsKIHNpemVfdCBD
R0Rpc3BsYXlNb2RlR2V0UGl4ZWxzV2lkZShDR0Rpc3BsYXlNb2RlUmVmKTsKIHNpemVfdCBDR0Rp
c3BsYXlNb2RlR2V0UGl4ZWxzSGlnaChDR0Rpc3BsYXlNb2RlUmVmKTsKIAotI2lmIEVOQUJMRShX
RUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKLQogQ0dFcnJvciBDR1NTZXREZW55V2lu
ZG93U2VydmVyQ29ubmVjdGlvbnMoYm9vbCk7Ci0KIHR5cGVkZWYgaW50MzJfdCBDR1NEaXNwbGF5
SUQ7CiBDR1NEaXNwbGF5SUQgQ0dTTWFpbkRpc3BsYXlJRCh2b2lkKTsKIAotI2VuZGlmIC8vIEVO
QUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKLQogI2VuZGlmIC8vIFBMQVRG
T1JNKE1BQykKIAogI2lmIEVOQUJMRShQREZLSVRfUExVR0lOKSAmJiAhVVNFKEFQUExFX0lOVEVS
TkFMX1NESykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQXBwbGVXaW4uY21h
a2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUFwcGxlV2luLmNtYWtlCmluZGV4IGE3ODhlNjlk
ZTc0NDFjOTQwODRmNzAzNmEzZThmNDlhZDQ1MWE1OGQuLjM4YTJiNzc2ODk1NTk4YTRmNGUzNmFk
ZTdjNjAzYjA0MDc4ZGRjNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQXBw
bGVXaW4uY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1BcHBsZVdpbi5jbWFrZQpA
QCAtMzAsNiArMzAsOCBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
Q0YuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL1dlYkNvcmVBVkNG
UmVzb3VyY2VMb2FkZXIuY3BwCiAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAKKwogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAogCiAgICAgcGxhdGZvcm0v
bmV0d29yay9jZi9BdXRoZW50aWNhdGlvbkNGLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUGxhdGZvcm1XaW5DYWlyby5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ2Fp
cm8uY21ha2UKaW5kZXggYzRiODZjMTQ4OWFhYzlhNWUyZWEwMDQwMDIwZjM0MTk2NmExNDUzMy4u
YmZlMDhkN2E2NDk4NzcyOTczNDdmODZiZWY4NDBlM2U2OWYyODg4YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5DYWlyby5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
bGF0Zm9ybVdpbkNhaXJvLmNtYWtlCkBAIC0xOCw2ICsxOCw4IEBAIGxpc3QoQVBQRU5EIFdlYkNv
cmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCiAKKyAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHAK
KwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8u
Y3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFDYWlyb1dpbi5j
cHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR2x5cGhQYWdlVHJlZU5vZGVDYWlyb1dpbi5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGQ2ZjZmNWNmZGYwOWRkZjFjM2UyNmM2NTZj
Y2FjNmNlNzllMWMyMmEuLmU1ZDFhYmY3NTY1MzM1YWExZDhiMTI1YWU1NDk5ZGUzODI5OGMzNGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMzc4LDYgKzM3OCw3IEBAIHBsYXRmb3JtL2dy
YXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2N2
L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1Rl
eHR1cmVDb3BpZXJDVi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GaWx0ZXJFZmZl
Y3RSZW5kZXJlckNvcmVJbWFnZS5tbQorcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwCiBwbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvVGV4dHVyZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdEYXRhLmNwcAog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cEFsbG9jYXRvck1ldGFsLm1t
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggN2Q2MWUwNWIzNTc3MzA0YzE4M2M1MDNmODMxZWM4OTQxMDEwMDAyMS4uYjE2ZjBlZTU2
ZTk1NzEzNTBiZTM5ODNkZjIxZTAwNTk5ZjVlYTIyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjE5LDYgKzYxOSw3IEBACiAJ
CTFDQUYzNDgxMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUYzNDdFMEE2QzQwNTIwMEFC
RTA2RSAvKiBXZWJTY3JpcHRPYmplY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkxQ0FGMzQ4MjBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0
T2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUNBRjM0N0YwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdC5tbSAqLzsgfTsKIAkJ
MUNBRjM0ODMwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdFByaXZhdGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUYzNDgwMEE2QzQw
NTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3RQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMUNBRjU2REIyNTMwMUFDODAwMTdCNDcy
IC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FGNTZEODI1MzAxNDU3MDAxN0I0NzIgLyogRGlz
cGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkxQ0NEODE1MDIyMzFGODNFMDA2NUZDMkIgLyogV2ViQ29y
ZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE1MjU1MTQxNkZEMjM0RjAwM0Q3QURC
IC8qIFdlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbSAqLzsg
fTsKIAkJMUNDREY1QkUxOTkwMzMyNDAwQkNFQkFEIC8qIFNWR1RvT1RGRm9udENvbnZlcnNpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQ0RGNUJD
MTk5MDMzMjQwMEJDRUJBRCAvKiBTVkdUb09URkZvbnRDb252ZXJzaW9uLmggKi87IH07CiAJCTFD
RkFFMzIzMEE2RDZBM0YwMDMyNTkzRCAvKiBsaWJvYmpjLmR5bGliIGluIEZyYW1ld29ya3MgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNGQUUzMjIwQTZENkEzRjAwMzI1OTNE
IC8qIGxpYm9iamMuZHlsaWIgKi87IH07CkBAIC02NzEyLDYgKzY3MTMsOCBAQAogCQkxQ0FGMzQ3
RTBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYlNjcmlwdE9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxQ0FGMzQ3RjBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0Lm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViU2NyaXB0T2JqZWN0Lm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FGMzQ4MDBBNkM0MDUyMDBBQkUwNkUg
LyogV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJTY3JpcHRPYmplY3RQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFDQUY1NkQ4MjUzMDE0NTcwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNv
cmRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0FGNTZERTI1MzAyNDVBMDAxN0I0NzIgLyog
RGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNCNUZFODgyMkRFQkM4QjAwOTQ0MEUyIC8qIFdITFNMRXJy
b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xFcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxQ0I2OUIzMjIxREVENDBCMDA2RTg0NkEgLyogV0hMU0xSZXNvbHZhYmxlVHlwZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXSExTTFJlc29sdmFibGVUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFDQjY5QjM0MjFERUQ2M0EwMDZFODQ2QSAvKiBXSExTTEZsb2F0TGl0ZXJh
bFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xGbG9hdExpdGVyYWxUeXBlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzUwNSw2ICsxNzUwOCw4IEBACiAJCQljaGlsZHJlbiA9
ICgKIAkJCQkwRkU1RkJDQTFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3QuY3BwICovLAog
CQkJCTBGRTVGQkNCMUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdC5oICovLAorCQkJCTFD
QUY1NkQ4MjUzMDE0NTcwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5o
ICovLAorCQkJCTFDQUY1NkRFMjUzMDI0NUEwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlw
aHNSZWNvcmRlckNvcmVUZXh0LmNwcCAqLywKIAkJCQk1NUMwQTI5NTIzRkUyQ0UwMDBGMkNCOTMg
LyogRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5jcHAgKi8sCiAJCQkJNzJFQTA5RjkyM0ZDQ0M2
QTAwODUwNEE1IC8qIERpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaCAqLywKIAkJCQk3MkVBMDlG
NzIzRkNDQjNEMDA4NTA0QTUgLyogRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oICovLApAQCAtMzEy
MzEsNiArMzEyMzYsNyBAQAogCQkJCTdFREFBRkM5MTlBMkNDREMwMDM0REZEMSAvKiBEaXNrQ2Fj
aGVNb25pdG9yQ29jb2EuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNzkwRjQyMjUxN0NFNkUwMDlC
QTAzNCAvKiBEaXNwbGF5TGF5ZXJDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU1
RkJEMzFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTFDQUY1NkRCMjUzMDFBQzgwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTVBRDA5NDAyNDA4OTY0MDAwREU0RDJGIC8qIERpc3Bs
YXlMaXN0RHJhd2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1QUQwOTNFMjQwODk2
MzUwMERFNEQyRiAvKiBEaXNwbGF5TGlzdEltYWdlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkU1RkJENTFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3RJdGVtcy5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GcmVlVHlwZS5jbWFr
ZSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtlCmluZGV4IDdjMDRkOTNh
NWI4NWM3MzI1ODFjOTVhMDY1YmUwNWI2MzY3YzdhZTQuLmYzOGI1NGUxN2M5MzE1NjUxNTRjYWI5
NTNhODFlMGU5NmY1NzQ5YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Zy
ZWVUeXBlLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtl
CkBAIC01LDYgKzUsOCBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1BSSVZBVEVfSU5DTFVERV9ESVJF
Q1RPUklFUwogKQogCiBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6
ei5jcHAKKwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBl
LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDdXN0b21QbGF0Zm9ybURh
dGFGcmVlVHlwZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250UGxhdGZv
cm1EYXRhRnJlZVR5cGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERy
YXdHbHlwaHNSZWNvcmRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkNTk2Y2RlYTM5MTNkMzA3M2ZlMmZiNDg4
OGZhZmE2NzhlMjZkZWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaApA
QCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJUZXh0RmxhZ3MuaCIKKworI2lmIFVTRShD
T1JFX1RFWFQpCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisKKyNpbmNsdWRlIDxDb3Jl
R3JhcGhpY3MvQ29yZUdyYXBoaWNzLmg+CisjaW5jbHVkZSA8cGFsL3NwaS9jZy9Db3JlR3JhcGhp
Y3NTUEkuaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZsb2F0UG9p
bnQ7CitjbGFzcyBGb250OworY2xhc3MgR2x5cGhCdWZmZXI7CitjbGFzcyBHcmFwaGljc0NvbnRl
eHQ7CisKK25hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CisKK2NsYXNzIFJlY29yZGVyOworCitjbGFz
cyBEcmF3R2x5cGhzUmVjb3JkZXIgeworcHVibGljOgorICAgIERyYXdHbHlwaHNSZWNvcmRlcihS
ZWNvcmRlciYpOworCisgICAgdm9pZCBkcmF3R2x5cGhzKGNvbnN0IEZvbnQmLCBjb25zdCBHbHlw
aEJ1ZmZlciYsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIG51bUdseXBocywgY29uc3QgRmxvYXRQ
b2ludCYgYW5jaG9yUG9pbnQsIEZvbnRTbW9vdGhpbmdNb2RlKTsKKworI2lmIFVTRShDT1JFX1RF
WFQpCisgICAgdm9pZCByZWNvcmREcmF3R2x5cGhzKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0
YXRlUmVmLCBjb25zdCBDR0FmZmluZVRyYW5zZm9ybSosIGNvbnN0IENHR2x5cGhbXSwgY29uc3Qg
Q0dQb2ludCBwb3NpdGlvbnNbXSwgc2l6ZV90IGNvdW50KTsKKyAgICB2b2lkIHJlY29yZERyYXdJ
bWFnZShDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiwgQ0dSZWN0LCBDR0ltYWdlUmVm
KTsKKyNlbmRpZgorCitwcml2YXRlOgorICAgIEdyYXBoaWNzQ29udGV4dCBjcmVhdGVJbnRlcm5h
bENvbnRleHQoKTsKKyAgICB2b2lkIHByZXBhcmVJbnRlcm5hbENvbnRleHQoY29uc3QgRm9udCYs
IEZvbnRTbW9vdGhpbmdNb2RlKTsKKyAgICB2b2lkIGNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KCk7
CisKKyAgICBSZWNvcmRlciYgbV9vd25lcjsKKyNpZiBVU0UoQ09SRV9URVhUKQorICAgIEdyYXBo
aWNzQ29udGV4dCBtX2ludGVybmFsQ29udGV4dDsKKyAgICBjb25zdCBGb250KiBtX2N1cnJlbnRG
b250IHsgbnVsbHB0ciB9OworICAgIEZvbnRTbW9vdGhpbmdNb2RlIG1fc21vb3RoaW5nTW9kZSB7
IEZvbnRTbW9vdGhpbmdNb2RlOjpBdXRvU21vb3RoaW5nIH07CisjZW5kaWYKK307CisKK30KKwor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBo
c1JlY29yZGVyQ29yZVRleHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwZWU5YzgzNTcwOTIxN2UwMTNlYTk1
YTQxYzA2OTJmM2QwZWJjMjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJD
b3JlVGV4dC5jcHAKQEAgLTAsMCArMSwxMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGlzcGxh
eUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCIKKworI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgiCisj
aW5jbHVkZSAiRGlzcGxheUxpc3RJdGVtcy5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0UmVjb3Jk
ZXIuaCIKKyNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiRm9udC5oIgorI2luY2x1
ZGUgIkZvbnRDYXNjYWRlLmgiCisjaW5jbHVkZSAiR2x5cGhCdWZmZXIuaCIKKworI2luY2x1ZGUg
PENvcmVUZXh0L0NvcmVUZXh0Lmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK25hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CisKK3N0YXRpYyBDR0Vycm9y
IGRyYXdHbHlwaHMoQ0dDb250ZXh0RGVsZWdhdGVSZWYgZGVsZWdhdGUsIENHUmVuZGVyaW5nU3Rh
dGVSZWYgcnN0YXRlLCBDR0dTdGF0ZVJlZiBnc3RhdGUsIGNvbnN0IENHQWZmaW5lVHJhbnNmb3Jt
KiB0bSwgY29uc3QgQ0dHbHlwaCBnbHlwaHNbXSwgY29uc3QgQ0dQb2ludCBwb3NpdGlvbnNbXSwg
c2l6ZV90IGNvdW50KQoreworICAgIGlmIChDR0dTdGF0ZUdldEFscGhhKGdzdGF0ZSkgPiAwKSB7
CisgICAgICAgIERyYXdHbHlwaHNSZWNvcmRlciYgcmVjb3JkZXIgPSAqc3RhdGljX2Nhc3Q8RHJh
d0dseXBoc1JlY29yZGVyKj4oQ0dDb250ZXh0RGVsZWdhdGVHZXRJbmZvKGRlbGVnYXRlKSk7Cisg
ICAgICAgIHJlY29yZGVyLnJlY29yZERyYXdHbHlwaHMocnN0YXRlLCBnc3RhdGUsIHRtLCBnbHlw
aHMsIHBvc2l0aW9ucywgY291bnQpOworICAgIH0KKyAgICByZXR1cm4ga0NHRXJyb3JTdWNjZXNz
OworfQorCitzdGF0aWMgQ0dFcnJvciBkcmF3SW1hZ2UoQ0dDb250ZXh0RGVsZWdhdGVSZWYgZGVs
ZWdhdGUsIENHUmVuZGVyaW5nU3RhdGVSZWYgcnN0YXRlLCBDR0dTdGF0ZVJlZiBnc3RhdGUsIENH
UmVjdCByZWN0LCBDR0ltYWdlUmVmIGltYWdlKQoreworICAgIERyYXdHbHlwaHNSZWNvcmRlciYg
cmVjb3JkZXIgPSAqc3RhdGljX2Nhc3Q8RHJhd0dseXBoc1JlY29yZGVyKj4oQ0dDb250ZXh0RGVs
ZWdhdGVHZXRJbmZvKGRlbGVnYXRlKSk7CisgICAgcmVjb3JkZXIucmVjb3JkRHJhd0ltYWdlKHJz
dGF0ZSwgZ3N0YXRlLCByZWN0LCBpbWFnZSk7CisgICAgcmV0dXJuIGtDR0Vycm9yU3VjY2VzczsK
K30KKworR3JhcGhpY3NDb250ZXh0IERyYXdHbHlwaHNSZWNvcmRlcjo6Y3JlYXRlSW50ZXJuYWxD
b250ZXh0KCkKK3sKKyAgICBhdXRvIGNvbnRleHREZWxlZ2F0ZSA9IGFkb3B0Q0YoQ0dDb250ZXh0
RGVsZWdhdGVDcmVhdGUodGhpcykpOworICAgIENHQ29udGV4dERlbGVnYXRlU2V0Q2FsbGJhY2so
Y29udGV4dERlbGVnYXRlLmdldCgpLCBkZURyYXdHbHlwaHMsIHJlaW50ZXJwcmV0X2Nhc3Q8Q0dD
b250ZXh0RGVsZWdhdGVDYWxsYmFjaz4oJldlYkNvcmU6OkRpc3BsYXlMaXN0OjpkcmF3R2x5cGhz
KSk7CisgICAgQ0dDb250ZXh0RGVsZWdhdGVTZXRDYWxsYmFjayhjb250ZXh0RGVsZWdhdGUuZ2V0
KCksIGRlRHJhd0ltYWdlLCByZWludGVycHJldF9jYXN0PENHQ29udGV4dERlbGVnYXRlQ2FsbGJh
Y2s+KCZkcmF3SW1hZ2UpKTsKKyAgICBhdXRvIGNvbnRleHQgPSBhZG9wdENGKENHQ29udGV4dENy
ZWF0ZVdpdGhEZWxlZ2F0ZShjb250ZXh0RGVsZWdhdGUuZ2V0KCksIGtDR0NvbnRleHRUeXBlVW5r
bm93biwgbnVsbHB0ciwgbnVsbHB0cikpOworICAgIHJldHVybiBHcmFwaGljc0NvbnRleHQoY29u
dGV4dC5nZXQoKSk7Cit9CisKK0RyYXdHbHlwaHNSZWNvcmRlcjo6RHJhd0dseXBoc1JlY29yZGVy
KFJlY29yZGVyJiBvd25lcikKKyAgICA6IG1fb3duZXIob3duZXIpCisgICAgLCBtX2ludGVybmFs
Q29udGV4dChjcmVhdGVJbnRlcm5hbENvbnRleHQoKSkKK3sKK30KKwordm9pZCBEcmF3R2x5cGhz
UmVjb3JkZXI6OnByZXBhcmVJbnRlcm5hbENvbnRleHQoY29uc3QgRm9udCYgZm9udCwgRm9udFNt
b290aGluZ01vZGUgc21vb3RoaW5nTW9kZSkKK3sKKyAgICAvLyBQdWxsIG91dDoKKyAgICAvLyAx
LiBDb2xvcgorICAgIC8vIDIuIE9wYWNpdHkgKG1heWJlKQorICAgIC8vIDMuIFNoYWRvdyBpbmZv
cm1hdGlvbgorICAgIC8vIDQuIENUTQorICAgIC8vIDUuIFRleHQgcG9zaXRpb24gYW5kIG1hdHJp
eAorCisgICAgbV9jdXJyZW50Rm9udCA9ICZmb250OworICAgIG1fc21vb3RoaW5nTW9kZSA9IHNt
b290aGluZ01vZGU7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpjb25jbHVkZUludGVy
bmFsQ29udGV4dCgpCit7CisgICAgLy8gU2VlIGlmIHdlIG5lZWQgdG8gZG8gYW55IGNsZWFudXAg
bGlrZSByZXNldHRpbmcgdGhlIHNoYWRvdyBpbmZvcm1hdGlvbi4KK30KKworc3RhdGljIFZlY3Rv
cjxDR1NpemU+IGNvbXB1dGVBZHZhbmNlc0Zyb21Qb3NpdGlvbnMoY29uc3QgQ0dQb2ludCBwb3Np
dGlvbnNbXSwgc2l6ZV90IGNvdW50KQoreworICAgIFZlY3RvcjxDR1NpemU+IHJlc3VsdDsKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50IC0gMTsgKytpKSB7CisgICAgICAgIGF1dG8g
bmV4dFBvc2l0aW9uID0gcG9zaXRpb25zW2kgKyAxXTsKKyAgICAgICAgYXV0byBjdXJyZW50UG9z
aXRpb24gPSBwb3NpdGlvbnNbaV07CisgICAgICAgIHJlc3VsdC5hcHBlbmQoQ0dTaXplTWFrZShu
ZXh0UG9zaXRpb24ueCAtIGN1cnJlbnRQb3NpdGlvbi54LCBuZXh0UG9zaXRpb24ueSAtIGN1cnJl
bnRQb3NpdGlvbi55KSk7CisgICAgfQorICAgIHJlc3VsdC5jb25zdHJ1Y3RBbmRBcHBlbmQoQ0dT
aXplTWFrZSgwLCAwKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordm9pZCBEcmF3R2x5cGhz
UmVjb3JkZXI6OnJlY29yZERyYXdHbHlwaHMoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVS
ZWYgZ3N0YXRlLCBjb25zdCBDR0FmZmluZVRyYW5zZm9ybSosIGNvbnN0IENHR2x5cGggZ2x5cGhz
W10sIGNvbnN0IENHUG9pbnQgcG9zaXRpb25zW10sIHNpemVfdCBjb3VudCkKK3sKKyAgICBDR0Zv
bnRSZWYgdXNlZEZvbnQgPSBDR0dTdGF0ZUdldEZvbnQoZ3N0YXRlKTsKKyAgICBpZiAoIWNvdW50
KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAodXNlZEZvbnQgIT0gYWRvcHRDRihDVEZvbnRD
b3B5R3JhcGhpY3NGb250KG1fY3VycmVudEZvbnQtPnBsYXRmb3JtRGF0YSgpLmN0Rm9udCgpLCBu
dWxscHRyKSkuZ2V0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIFRlc3QgY2FzZTogdmVy
dGljYWwgdGV4dCwgcm90YXRlZCB0ZXh0CisgICAgRmxvYXRQb2ludCBsb2NhbEFuY2hvciA9IENH
Q29udGV4dEdldFRleHRQb3NpdGlvbihtX2ludGVybmFsQ29udGV4dC5wbGF0Zm9ybUNvbnRleHQo
KSk7CisgICAgbG9jYWxBbmNob3IubW92ZShGbG9hdFNpemUocG9zaXRpb25zWzBdLngsIHBvc2l0
aW9uc1swXS55KSk7IC8vIEZJWE1FOiBJcyB0aGlzIHJpZ2h0PworICAgIG1fb3duZXIuYXBwZW5k
SXRlbUFuZFVwZGF0ZUV4dGVudChEcmF3R2x5cGhzOjpjcmVhdGUoKm1fY3VycmVudEZvbnQsIGds
eXBocywgY29tcHV0ZUFkdmFuY2VzRnJvbVBvc2l0aW9ucyhwb3NpdGlvbnMsIGNvdW50KS5kYXRh
KCksIGNvdW50LCBsb2NhbEFuY2hvciwgbV9zbW9vdGhpbmdNb2RlKSk7Cit9CisKK3ZvaWQgRHJh
d0dseXBoc1JlY29yZGVyOjpyZWNvcmREcmF3SW1hZ2UoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dH
U3RhdGVSZWYsIENHUmVjdCByZWN0LCBDR0ltYWdlUmVmIGNnSW1hZ2UpCit7CisgICAgLy8gVGVz
dCBjYXNlOiBFWElGIHJvdGF0ZWQgaW1hZ2VzLgorICAgIC8vIEZJWE1FOiBXaWxsIENvcmVUZXh0
IGV2ZXIgc2V0IGFueSBvZiB0aGUgc3R1ZmYgb24gdGhlIGNvbnRleHQgdGhhdCB3ZSBuZWVkIHRv
IGFwcGx5IGhlcmU/IFNlZSBvcHRpb25zIGluc2lkZSBJbWFnZVBhaW50aW5nT3B0aW9ucy4KKyAg
ICBhdXRvIGltYWdlID0gQml0bWFwSW1hZ2U6OmNyZWF0ZShjZ0ltYWdlKTsKKyAgICBtX293bmVy
LmFwcGVuZEl0ZW1BbmRVcGRhdGVFeHRlbnQoRHJhd0ltYWdlOjpjcmVhdGUoaW1hZ2UsIHJlY3Qs
IHt7IH0sIGltYWdlLT5zaXplKCl9LCB7IH0pKTsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3Jk
ZXI6OmRyYXdHbHlwaHMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZmZXImIGdseXBo
QnVmZmVyLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9p
bnQmIHN0YXJ0UG9pbnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCit7CisgICAg
cHJlcGFyZUludGVybmFsQ29udGV4dChmb250LCBzbW9vdGhpbmdNb2RlKTsKKyAgICBGb250Q2Fz
Y2FkZTo6ZHJhd0dseXBocyhtX2ludGVybmFsQ29udGV4dCwgZm9udCwgZ2x5cGhCdWZmZXIsIGZy
b20sIG51bUdseXBocywgc3RhcnRQb2ludCwgc21vb3RoaW5nTW9kZSk7CisgICAgY29uY2x1ZGVJ
bnRlcm5hbENvbnRleHQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgRGlzcGxheUxpc3QKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVySGFyZkJ1
enouY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzYWMz
MjRiN2IwMGE5ZTE2YTU2YWQ2NzBjZTA0Y2ZhNzdmYzlmYTgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RE
cmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHAKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIgorCisjaW5jbHVkZSAi
RGlzcGxheUxpc3RJdGVtcy5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0UmVjb3JkZXIuaCIKKyNp
bmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiRm9udC5oIgorI2luY2x1ZGUgIkdseXBo
QnVmZmVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIERpc3BsYXlMaXN0
IHsKKworRHJhd0dseXBoc1JlY29yZGVyOjpEcmF3R2x5cGhzUmVjb3JkZXIoUmVjb3JkZXImIG93
bmVyKQorICAgIDogbV9vd25lcihvd25lcikKK3sKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3Jk
ZXI6OmRyYXdHbHlwaHMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZmZXImIGdseXBo
QnVmZmVyLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9p
bnQmIHN0YXJ0UG9pbnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCit7CisgICAg
bV9vd25lci5hcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KERyYXdHbHlwaHM6OmNyZWF0ZShmb250
LCBnbHlwaEJ1ZmZlci5nbHlwaHMoZnJvbSksIGdseXBoQnVmZmVyLmFkdmFuY2VzKGZyb20pLCBu
dW1HbHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGluZ01vZGUpKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgRGlzcGxheUxpc3QKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVj
b3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCmluZGV4IDFjNTRhZTgyMjkzOTQyMGRkNDBiN2I3MGJh
N2UzOWRiYmE2NWZlOWIuLjlhNmNmMjE0ZmU3YzJkMGRkMDk5OTBmZWQ1MmY1MTVmYzU0ZWJiYTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKQEAgLTQxLDYgKzQx
LDcgQEAgUmVjb3JkZXI6OlJlY29yZGVyKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgRGlzcGxh
eUxpc3QmIGRpc3BsYXlMaXN0LCBjb25zdCBHcmEKICAgICA6IEdyYXBoaWNzQ29udGV4dEltcGwo
Y29udGV4dCwgaW5pdGlhbENsaXAsIEFmZmluZVRyYW5zZm9ybSgpKQogICAgICwgbV9kaXNwbGF5
TGlzdChkaXNwbGF5TGlzdCkKICAgICAsIG1fb2JzZXJ2ZXIob2JzZXJ2ZXIpCisgICAgLCBtX2Ry
YXdHbHlwaHNSZWNvcmRlcigqdGhpcykKIHsKICAgICBMT0dfV0lUSF9TVFJFQU0oRGlzcGxheUxp
c3RzLCBzdHJlYW0gPDwgIlxuUmVjb3JkaW5nIHdpdGggY2xpcCAiIDw8IGluaXRpYWxDbGlwKTsK
ICAgICBtX3N0YXRlU3RhY2suYXBwZW5kKHsgc3RhdGUsIGluaXRpYWxDVE0sIGluaXRpYWxDbGlw
IH0pOwpAQCAtMTExLDcgKzExMiw3IEBAIHZvaWQgUmVjb3JkZXI6OnNldE1pdGVyTGltaXQoZmxv
YXQgbWl0ZXJMaW1pdCkKIAogdm9pZCBSZWNvcmRlcjo6ZHJhd0dseXBocyhjb25zdCBGb250JiBm
b250LCBjb25zdCBHbHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIHVuc2lnbmVkIGZyb20sIHVuc2ln
bmVkIG51bUdseXBocywgY29uc3QgRmxvYXRQb2ludCYgc3RhcnRQb2ludCwgRm9udFNtb290aGlu
Z01vZGUgc21vb3RoaW5nTW9kZSkKIHsKLSAgICBhcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KERy
YXdHbHlwaHM6OmNyZWF0ZShmb250LCBnbHlwaEJ1ZmZlci5nbHlwaHMoZnJvbSksIGdseXBoQnVm
ZmVyLmFkdmFuY2VzKGZyb20pLCBudW1HbHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGluZ01vZGUp
KTsKKyAgICBtX2RyYXdHbHlwaHNSZWNvcmRlci5kcmF3R2x5cGhzKGZvbnQsIGdseXBoQnVmZmVy
LCBmcm9tLCBudW1HbHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGluZ01vZGUpOwogfQogCiBJbWFn
ZURyYXdSZXN1bHQgUmVjb3JkZXI6OmRyYXdJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBh
aW50aW5nT3B0aW9ucyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0UmVjb3JkZXIuaAppbmRleCA5ZWUxZDM5MzhmMjMyZjNmMThkOTc4YWY3MTg3MDFkOGJl
NDYzMDcyLi42NjI3ZTZhZGQyODczNTY0ODRmNjk3YjYyYzc2ZGM0Mjk0MGFhNThlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSAiRGlzcGxheUxpc3QuaCIKKyNpbmNsdWRlICJEaXNwbGF5TGlz
dERyYXdHbHlwaHNSZWNvcmRlci5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEltcGwuaCIK
ICNpbmNsdWRlICJJbWFnZS5oIiAvLyBGb3IgSW1hZ2U6OlRpbGVSdWxlLgogI2luY2x1ZGUgIlRl
eHRGbGFncy5oIgpAQCAtMTkxLDYgKzE5Miw4IEBAIHByaXZhdGU6CiAgICAgT2JzZXJ2ZXIqIG1f
b2JzZXJ2ZXI7CiAKICAgICBWZWN0b3I8Q29udGV4dFN0YXRlLCAzMj4gbV9zdGF0ZVN0YWNrOwor
CisgICAgRHJhd0dseXBoc1JlY29yZGVyIG1fZHJhd0dseXBoc1JlY29yZGVyOwogfTsKIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410999</attachid>
            <date>2020-10-09 20:02:32 -0700</date>
            <delta_ts>2020-10-09 21:00:56 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-217506-20201009200231.patch</filename>
            <type>text/plain</type>
            <size>30332</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MzA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWFmN2Y2ZjgxZmY1Mzlh
N2QzZTFkOGJiMzVhOTNiOGI2ZDFhNzQxZi4uZDBiZjc4Zjc4YmUwNWZkYWEzYWQ2MTY1MWNkYmY2
YjA1YWQyMWNiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDIwLTEwLTA5ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBb
R1BVIFByb2Nlc3NdIFBlcmZvcm0gaW1hZ2UgZGVjb2Rpbmcgb2YgY29sb3IgZm9udHMgaW4gdGhl
IFdlYiBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTc1MDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY5NzY4MTg2PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09Q
UyEpLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2Eu
dHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9GcmVlVHlwZS5jbWFrZToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0ds
eXBoc1JlY29yZGVyQ29yZVRleHQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpkcmF3R2x5cGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpkcmF3
SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRl
cjo6Y3JlYXRlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpEcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdHbHlwaHNSZWNvcmRlcik6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpwcmVwYXJlSW50ZXJuYWxDb250
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6
OmNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
Ojpjb21wdXRlQWR2YW5jZXNGcm9tUG9zaXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZERyYXdHbHlwaHMpOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6cmVjb3JkRHJhd0ltYWdl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OmRy
YXdHbHlwaHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpEcmF3R2x5cGhzUmVjb3Jk
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6
ZHJhd0dseXBocyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdH
bHlwaHM6OkRyYXdHbHlwaHMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdH
bHlwaHM6OmNvbXB1dGVCb3VuZHMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRy
YXdHbHlwaHM6OmxvY2FsQm91bmRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtcy5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRy
YXdHbHlwaHM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ds
eXBoczo6bG9jYWxBbmNob3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdHbHlwaHM6OmFuY2hvclBvaW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEcmF3R2x5cGhzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRyYXdHbHlwaHM6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6RHJhd0dseXBoczo6YmxvY2tMb2NhdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoczo6c2V0QmxvY2tMb2NhdGlvbik6IERl
bGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVy
OjpSZWNvcmRlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmRy
YXdHbHlwaHMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpkcmF3
SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpkcmF3VGls
ZWRJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmRyYXdO
YXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmRy
YXdQYXR0ZXJuKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6YmVn
aW5UcmFuc3BhcmVuY3lMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVj
b3JkZXI6OmRyYXdSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRl
cjo6ZHJhd0xpbmUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpk
cmF3TGluZXNGb3JUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRl
cjo6ZHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6UmVjb3JkZXI6OmRyYXdFbGxpcHNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpSZWNvcmRlcjo6ZHJhd1BhdGgpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlY29yZGVyOjpkcmF3Rm9jdXNSaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpSZWNvcmRlcjo6ZmlsbFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJl
Y29yZGVyOjpmaWxsUm91bmRlZFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlY29yZGVyOjpmaWxsUmVjdFdpdGhSb3VuZGVkSG9sZSk6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6UmVjb3JkZXI6OmZpbGxQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpSZWNvcmRlcjo6ZmlsbEVsbGlwc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OlJlY29yZGVyOjpzdHJva2VSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpSZWNvcmRlcjo6c3Ryb2tlUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6UmVjb3JkZXI6OnN0cm9rZUVsbGlwc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlJlY29yZGVyOjpjbGVhclJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlY29yZGVyOjphcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oOgorCiAyMDIwLTEw
LTA5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAg
W0dQVSBQcm9jZXNzXSBEZWxldGUgRGlzcGxheUxpc3Q6OkRyYXdHbHlwaHM6Om1fYmxvY2tMb2Nh
dGlvbiBiZWNhdXNlIGl0J3MgYWx3YXlzIDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDNjY2U4Y2M2
NDAxNTNlODkyMzFmZjhlYzI3OGUyMWZiYzlmMWNmMzcuLjg3ODNiM2Y3YTUxOGU1NWJlMzRhMWYw
MzJhMTBhNjllMjI5OGU3NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDIwLTEwLTA5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAg
ICAgICAgW0NvY29hXSBbR1BVIFByb2Nlc3NdIFBlcmZvcm0gaW1hZ2UgZGVjb2Rpbmcgb2YgY29s
b3IgZm9udHMgaW4gdGhlIFdlYiBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1MDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY5NzY4
MTg2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaDoKKwogMjAyMC0xMC0wMiAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIEFWQXNzZXRXcml0ZXIgU1BJIGhl
YWRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggYTg0N2IwNWFiNDRlNWNkNGE3MDZiZTMwOGM4YjY0
NWI1MjU0MDBmZS4uZWZmOTZlY2EyODQ3MWNhOTY3NzFkNTk5MWRiYmIxNGQ5YmRjZDM4ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlCkBAIC0xMjI1LDYgKzEyMjUsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRF
X0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvRXh0ZW5zaW9u
c0dMQU5HTEUuaAogCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0LmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3
R2x5cGhzUmVjb3JkZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdERyYXdpbmdDb250ZXh0LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3Nw
aS9jZy9Db3JlR3JhcGhpY3NTUEkuaAppbmRleCBhN2Y4MmI4NjFiNjJjNGFlZmI4M2MxODExZDU1
YzdhZjc0OWU2YjkxLi5iODg2N2FmYTg0YTczMTYxY2Y2MjlkOGFkMzI3NDJmYTcxODAwNmI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaApA
QCAtMzgsNiArMzgsNyBAQAogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAorI2luY2x1
ZGUgPENvcmVHcmFwaGljcy9DR0NvbnRleHREZWxlZ2F0ZVByaXZhdGUuaD4KICNpbmNsdWRlIDxD
b3JlR3JhcGhpY3MvQ0dGb250Q2FjaGUuaD4KICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dQYXRo
UHJpdmF0ZS5oPgogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3NQcml2YXRlLmg+
CkBAIC01OCwxOSArNTksMTAgQEAgc3RydWN0IENHRm9udEhNZXRyaWNzIHsKICAgICBpbnQgbWlu
UmlnaHRTaWRlQmVhcmluZzsKIH07CiAKLXN0cnVjdCBDR0ZvbnREZXNjcmlwdG9yIHsKLSAgICBD
R1JlY3QgYmJveDsKLSAgICBDR0Zsb2F0IGFzY2VudDsKLSAgICBDR0Zsb2F0IGRlc2NlbnQ7Ci0g
ICAgQ0dGbG9hdCBjYXBIZWlnaHQ7Ci0gICAgQ0dGbG9hdCBpdGFsaWNBbmdsZTsKLSAgICBDR0Zs
b2F0IHN0ZW1WOwotICAgIENHRmxvYXQgc3RlbUg7Ci0gICAgQ0dGbG9hdCBhdmdXaWR0aDsKLSAg
ICBDR0Zsb2F0IG1heFdpZHRoOwotICAgIENHRmxvYXQgbWlzc2luZ1dpZHRoOwotICAgIENHRmxv
YXQgbGVhZGluZzsKLSAgICBDR0Zsb2F0IHhIZWlnaHQ7Cit0eXBlZGVmIENGX0VOVU0gKGludDMy
X3QsIENHQ29udGV4dERlbGVnYXRlQ2FsbGJhY2tOYW1lKQoreworICAgIGRlRHJhd0ltYWdlID0g
NywKKyAgICBkZURyYXdHbHlwaHMgPSA4LAogfTsKIAogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgQ0dD
b2xvclRyYW5zZm9ybSogQ0dDb2xvclRyYW5zZm9ybVJlZjsKQEAgLTE5Myw2ICsxODUsMTEgQEAg
c3RhdGljIGNvbnN0IENHU05vdGlmaWNhdGlvblR5cGUga0NHU2Vzc2lvbkNvbnNvbGVEaXNjb25u
ZWN0ID0gKENHU05vdGlmaWNhdGlvblQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAordHlw
ZWRlZiBzdHJ1Y3QgQ0dDb250ZXh0RGVsZWdhdGUgKkNHQ29udGV4dERlbGVnYXRlUmVmOwordHlw
ZWRlZiB2b2lkICgqQ0dDb250ZXh0RGVsZWdhdGVDYWxsYmFjaykodm9pZCk7Cit0eXBlZGVmIHN0
cnVjdCBDR1JlbmRlcmluZ1N0YXRlICpDR1JlbmRlcmluZ1N0YXRlUmVmOwordHlwZWRlZiBzdHJ1
Y3QgQ0dHU3RhdGUgKkNHR1N0YXRlUmVmOworCiAjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFM
X1NESykKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtMjMzLDcgKzIzMCw2IEBAIHZvaWQgQ0dD
b250ZXh0UmVzZXRDbGlwKENHQ29udGV4dFJlZik7CiBDR0NvbnRleHRUeXBlIENHQ29udGV4dEdl
dFR5cGUoQ0dDb250ZXh0UmVmKTsKIAogQ0ZTdHJpbmdSZWYgQ0dGb250Q29weUZhbWlseU5hbWUo
Q0dGb250UmVmKTsKLWJvb2wgQ0dGb250R2V0RGVzY3JpcHRvcihDR0ZvbnRSZWYsIENHRm9udERl
c2NyaXB0b3IqKTsKIGJvb2wgQ0dGb250R2V0R2x5cGhBZHZhbmNlc0ZvclN0eWxlKENHRm9udFJl
ZiwgY29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0qICwgQ0dGb250UmVuZGVyaW5nU3R5bGUsIGNvbnN0
IENHR2x5cGhbXSwgc2l6ZV90IGNvdW50LCBDR1NpemUgYWR2YW5jZXNbXSk7CiB2b2lkIENHRm9u
dEdldEdseXBoc0ZvclVuaWNoYXJzKENHRm9udFJlZiwgY29uc3QgVW5pQ2hhcltdLCBDR0dseXBo
W10sIHNpemVfdCBjb3VudCk7CiBjb25zdCBDR0ZvbnRITWV0cmljcyogQ0dGb250R2V0SE1ldHJp
Y3MoQ0dGb250UmVmKTsKQEAgLTI1Miw2ICsyNDgsMTQgQEAgYm9vbCBDR0NvbnRleHRHZXRBbGxv
d3NGb250U3VicGl4ZWxQb3NpdGlvbmluZyhDR0NvbnRleHRSZWYpOwogYm9vbCBDR0NvbnRleHRE
cmF3c1dpdGhDb3JyZWN0U2hhZG93T2Zmc2V0cyhDR0NvbnRleHRSZWYpOwogQ0dQYXR0ZXJuUmVm
IENHUGF0dGVybkNyZWF0ZVdpdGhJbWFnZTIoQ0dJbWFnZVJlZiwgQ0dBZmZpbmVUcmFuc2Zvcm0s
IENHUGF0dGVyblRpbGluZyk7CiAKK0NHQ29udGV4dERlbGVnYXRlUmVmIENHQ29udGV4dERlbGVn
YXRlQ3JlYXRlKHZvaWQqIGluZm8pOwordm9pZCBDR0NvbnRleHREZWxlZ2F0ZVNldENhbGxiYWNr
KENHQ29udGV4dERlbGVnYXRlUmVmLCBDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrTmFtZSwgQ0dD
b250ZXh0RGVsZWdhdGVDYWxsYmFjayk7CitDR0NvbnRleHRSZWYgQ0dDb250ZXh0Q3JlYXRlV2l0
aERlbGVnYXRlKENHQ29udGV4dERlbGVnYXRlUmVmLCBDR0NvbnRleHRUeXBlLCBDR1JlbmRlcmlu
Z1N0YXRlUmVmLCBDR0dTdGF0ZVJlZik7Cit2b2lkKiBDR0NvbnRleHREZWxlZ2F0ZUdldEluZm8o
Q0dDb250ZXh0RGVsZWdhdGVSZWYpOwordm9pZCBDR0NvbnRleHREZWxlZ2F0ZVJlbGVhc2UoQ0dD
b250ZXh0RGVsZWdhdGVSZWYpOworQ0dGbG9hdCBDR0dTdGF0ZUdldEFscGhhKENHR1N0YXRlUmVm
KTsKK0NHRm9udFJlZiBDR0dTdGF0ZUdldEZvbnQoQ0dHU3RhdGVSZWYpOworCiAjaWYgSEFWRShD
R1BBVEhfR0VUX05VTUJFUl9PRl9FTEVNRU5UUykKIHNpemVfdCBDR1BhdGhHZXROdW1iZXJPZkVs
ZW1lbnRzKENHUGF0aFJlZik7CiAjZW5kaWYKQEAgLTI4NiwxNiArMjkwLDkgQEAgQ0dSZWN0KiBD
R1NOZXh0UmVjdChjb25zdCBDR1NSZWdpb25FbnVtZXJhdG9yT2JqKTsKIENHU1JlZ2lvbkVudW1l
cmF0b3JPYmogQ0dTUmVnaW9uRW51bWVyYXRvcihDR1JlZ2lvblJlZik7CiBDR1N0eWxlUmVmIENH
U3R5bGVDcmVhdGVGb2N1c1JpbmdXaXRoQ29sb3IoY29uc3QgQ0dGb2N1c1JpbmdTdHlsZSosIENH
Q29sb3JSZWYpOwogdm9pZCBDR0NvbnRleHRTZXRTdHlsZShDR0NvbnRleHRSZWYsIENHU3R5bGVS
ZWYpOwotCiB2b2lkIENHQ29udGV4dERyYXdDb25pY0dyYWRpZW50KENHQ29udGV4dFJlZiwgQ0dH
cmFkaWVudFJlZiwgQ0dQb2ludCBjZW50ZXIsIENHRmxvYXQgYW5nbGUpOwotCi0jaWYgSEFWRShD
R19QQVRIX1VORVZFTl9DT1JORVJTX1JPVU5ERURSRUNUKQogdm9pZCBDR1BhdGhBZGRVbmV2ZW5D
b3JuZXJzUm91bmRlZFJlY3QoQ0dNdXRhYmxlUGF0aFJlZiwgY29uc3QgQ0dBZmZpbmVUcmFuc2Zv
cm0gKiwgQ0dSZWN0LCBjb25zdCBDR1NpemUgY29ybmVyc1s0XSk7Ci0jZW5kaWYKLQotI2lmIEhB
VkUoQ0dfRk9OVF9SRU5ERVJJTkdfR0VUX0ZPTlRfU01PT1RISU5HX0RJU0FCTEVEKQogYm9vbCBD
R0ZvbnRSZW5kZXJpbmdHZXRGb250U21vb3RoaW5nRGlzYWJsZWQodm9pZCk7Ci0jZW5kaWYKIAog
I2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCkBAIC0zMjgsMTUgKzMyNSwxMCBAQCBib29sIENv
bG9yU3luY1Byb2ZpbGVJc1dpZGVHYW11dChDb2xvclN5bmNQcm9maWxlUmVmKTsKIHNpemVfdCBD
R0Rpc3BsYXlNb2RlR2V0UGl4ZWxzV2lkZShDR0Rpc3BsYXlNb2RlUmVmKTsKIHNpemVfdCBDR0Rp
c3BsYXlNb2RlR2V0UGl4ZWxzSGlnaChDR0Rpc3BsYXlNb2RlUmVmKTsKIAotI2lmIEVOQUJMRShX
RUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKLQogQ0dFcnJvciBDR1NTZXREZW55V2lu
ZG93U2VydmVyQ29ubmVjdGlvbnMoYm9vbCk7Ci0KIHR5cGVkZWYgaW50MzJfdCBDR1NEaXNwbGF5
SUQ7CiBDR1NEaXNwbGF5SUQgQ0dTTWFpbkRpc3BsYXlJRCh2b2lkKTsKIAotI2VuZGlmIC8vIEVO
QUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKLQogI2VuZGlmIC8vIFBMQVRG
T1JNKE1BQykKIAogI2lmIEVOQUJMRShQREZLSVRfUExVR0lOKSAmJiAhVVNFKEFQUExFX0lOVEVS
TkFMX1NESykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQXBwbGVXaW4uY21h
a2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUFwcGxlV2luLmNtYWtlCmluZGV4IGE3ODhlNjlk
ZTc0NDFjOTQwODRmNzAzNmEzZThmNDlhZDQ1MWE1OGQuLjM4YTJiNzc2ODk1NTk4YTRmNGUzNmFk
ZTdjNjAzYjA0MDc4ZGRjNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQXBw
bGVXaW4uY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1BcHBsZVdpbi5jbWFrZQpA
QCAtMzAsNiArMzAsOCBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
Q0YuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL1dlYkNvcmVBVkNG
UmVzb3VyY2VMb2FkZXIuY3BwCiAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAKKwogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAogCiAgICAgcGxhdGZvcm0v
bmV0d29yay9jZi9BdXRoZW50aWNhdGlvbkNGLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUGxhdGZvcm1XaW5DYWlyby5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ2Fp
cm8uY21ha2UKaW5kZXggYzRiODZjMTQ4OWFhYzlhNWUyZWEwMDQwMDIwZjM0MTk2NmExNDUzMy4u
YmZlMDhkN2E2NDk4NzcyOTczNDdmODZiZWY4NDBlM2U2OWYyODg4YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5DYWlyby5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
bGF0Zm9ybVdpbkNhaXJvLmNtYWtlCkBAIC0xOCw2ICsxOCw4IEBAIGxpc3QoQVBQRU5EIFdlYkNv
cmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCiAKKyAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHAK
KwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8u
Y3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFDYWlyb1dpbi5j
cHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR2x5cGhQYWdlVHJlZU5vZGVDYWlyb1dpbi5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGQ2ZjZmNWNmZGYwOWRkZjFjM2UyNmM2NTZj
Y2FjNmNlNzllMWMyMmEuLmU1ZDFhYmY3NTY1MzM1YWExZDhiMTI1YWU1NDk5ZGUzODI5OGMzNGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMzc4LDYgKzM3OCw3IEBAIHBsYXRmb3JtL2dy
YXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2N2
L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1Rl
eHR1cmVDb3BpZXJDVi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GaWx0ZXJFZmZl
Y3RSZW5kZXJlckNvcmVJbWFnZS5tbQorcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwCiBwbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvVGV4dHVyZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdEYXRhLmNwcAog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cEFsbG9jYXRvck1ldGFsLm1t
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggN2Q2MWUwNWIzNTc3MzA0YzE4M2M1MDNmODMxZWM4OTQxMDEwMDAyMS4uYjE2ZjBlZTU2
ZTk1NzEzNTBiZTM5ODNkZjIxZTAwNTk5ZjVlYTIyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjE5LDYgKzYxOSw3IEBACiAJ
CTFDQUYzNDgxMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUYzNDdFMEE2QzQwNTIwMEFC
RTA2RSAvKiBXZWJTY3JpcHRPYmplY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkxQ0FGMzQ4MjBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0
T2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUNBRjM0N0YwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdC5tbSAqLzsgfTsKIAkJ
MUNBRjM0ODMwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdFByaXZhdGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUYzNDgwMEE2QzQw
NTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3RQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMUNBRjU2REIyNTMwMUFDODAwMTdCNDcy
IC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FGNTZEODI1MzAxNDU3MDAxN0I0NzIgLyogRGlz
cGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkxQ0NEODE1MDIyMzFGODNFMDA2NUZDMkIgLyogV2ViQ29y
ZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE1MjU1MTQxNkZEMjM0RjAwM0Q3QURC
IC8qIFdlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbSAqLzsg
fTsKIAkJMUNDREY1QkUxOTkwMzMyNDAwQkNFQkFEIC8qIFNWR1RvT1RGRm9udENvbnZlcnNpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQ0RGNUJD
MTk5MDMzMjQwMEJDRUJBRCAvKiBTVkdUb09URkZvbnRDb252ZXJzaW9uLmggKi87IH07CiAJCTFD
RkFFMzIzMEE2RDZBM0YwMDMyNTkzRCAvKiBsaWJvYmpjLmR5bGliIGluIEZyYW1ld29ya3MgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNGQUUzMjIwQTZENkEzRjAwMzI1OTNE
IC8qIGxpYm9iamMuZHlsaWIgKi87IH07CkBAIC02NzEyLDYgKzY3MTMsOCBAQAogCQkxQ0FGMzQ3
RTBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYlNjcmlwdE9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxQ0FGMzQ3RjBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0Lm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViU2NyaXB0T2JqZWN0Lm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FGMzQ4MDBBNkM0MDUyMDBBQkUwNkUg
LyogV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJTY3JpcHRPYmplY3RQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFDQUY1NkQ4MjUzMDE0NTcwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNv
cmRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0FGNTZERTI1MzAyNDVBMDAxN0I0NzIgLyog
RGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNCNUZFODgyMkRFQkM4QjAwOTQ0MEUyIC8qIFdITFNMRXJy
b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xFcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxQ0I2OUIzMjIxREVENDBCMDA2RTg0NkEgLyogV0hMU0xSZXNvbHZhYmxlVHlwZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXSExTTFJlc29sdmFibGVUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFDQjY5QjM0MjFERUQ2M0EwMDZFODQ2QSAvKiBXSExTTEZsb2F0TGl0ZXJh
bFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xGbG9hdExpdGVyYWxUeXBlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzUwNSw2ICsxNzUwOCw4IEBACiAJCQljaGlsZHJlbiA9
ICgKIAkJCQkwRkU1RkJDQTFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3QuY3BwICovLAog
CQkJCTBGRTVGQkNCMUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdC5oICovLAorCQkJCTFD
QUY1NkQ4MjUzMDE0NTcwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5o
ICovLAorCQkJCTFDQUY1NkRFMjUzMDI0NUEwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlw
aHNSZWNvcmRlckNvcmVUZXh0LmNwcCAqLywKIAkJCQk1NUMwQTI5NTIzRkUyQ0UwMDBGMkNCOTMg
LyogRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5jcHAgKi8sCiAJCQkJNzJFQTA5RjkyM0ZDQ0M2
QTAwODUwNEE1IC8qIERpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaCAqLywKIAkJCQk3MkVBMDlG
NzIzRkNDQjNEMDA4NTA0QTUgLyogRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oICovLApAQCAtMzEy
MzEsNiArMzEyMzYsNyBAQAogCQkJCTdFREFBRkM5MTlBMkNDREMwMDM0REZEMSAvKiBEaXNrQ2Fj
aGVNb25pdG9yQ29jb2EuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNzkwRjQyMjUxN0NFNkUwMDlC
QTAzNCAvKiBEaXNwbGF5TGF5ZXJDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU1
RkJEMzFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTFDQUY1NkRCMjUzMDFBQzgwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTVBRDA5NDAyNDA4OTY0MDAwREU0RDJGIC8qIERpc3Bs
YXlMaXN0RHJhd2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1QUQwOTNFMjQwODk2
MzUwMERFNEQyRiAvKiBEaXNwbGF5TGlzdEltYWdlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkU1RkJENTFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3RJdGVtcy5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GcmVlVHlwZS5jbWFr
ZSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtlCmluZGV4IDdjMDRkOTNh
NWI4NWM3MzI1ODFjOTVhMDY1YmUwNWI2MzY3YzdhZTQuLmYzOGI1NGUxN2M5MzE1NjUxNTRjYWI5
NTNhODFlMGU5NmY1NzQ5YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Zy
ZWVUeXBlLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtl
CkBAIC01LDYgKzUsOCBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1BSSVZBVEVfSU5DTFVERV9ESVJF
Q1RPUklFUwogKQogCiBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6
ei5jcHAKKwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBl
LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDdXN0b21QbGF0Zm9ybURh
dGFGcmVlVHlwZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250UGxhdGZv
cm1EYXRhRnJlZVR5cGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERy
YXdHbHlwaHNSZWNvcmRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4MDA0ODgyZGZiODE2NTZjMWVlNzkyNmU1
NzlhZTNlYzc5OTk5MDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaApA
QCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJUZXh0RmxhZ3MuaCIKKworI2lmIFVTRShD
T1JFX1RFWFQpCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisKKyNpbmNsdWRlIDxDb3Jl
R3JhcGhpY3MvQ29yZUdyYXBoaWNzLmg+CisjaW5jbHVkZSA8cGFsL3NwaS9jZy9Db3JlR3JhcGhp
Y3NTUEkuaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZsb2F0UG9p
bnQ7CitjbGFzcyBGb250OworY2xhc3MgR2x5cGhCdWZmZXI7CitjbGFzcyBHcmFwaGljc0NvbnRl
eHQ7CisKK25hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CisKK2NsYXNzIFJlY29yZGVyOworCitjbGFz
cyBEcmF3R2x5cGhzUmVjb3JkZXIgeworcHVibGljOgorICAgIGV4cGxpY2l0IERyYXdHbHlwaHNS
ZWNvcmRlcihSZWNvcmRlciYpOworCisgICAgdm9pZCBkcmF3R2x5cGhzKGNvbnN0IEZvbnQmLCBj
b25zdCBHbHlwaEJ1ZmZlciYsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIG51bUdseXBocywgY29u
c3QgRmxvYXRQb2ludCYgYW5jaG9yUG9pbnQsIEZvbnRTbW9vdGhpbmdNb2RlKTsKKworI2lmIFVT
RShDT1JFX1RFWFQpCisgICAgdm9pZCByZWNvcmREcmF3R2x5cGhzKENHUmVuZGVyaW5nU3RhdGVS
ZWYsIENHR1N0YXRlUmVmLCBjb25zdCBDR0FmZmluZVRyYW5zZm9ybSosIGNvbnN0IENHR2x5cGhb
XSwgY29uc3QgQ0dQb2ludCBwb3NpdGlvbnNbXSwgc2l6ZV90IGNvdW50KTsKKyAgICB2b2lkIHJl
Y29yZERyYXdJbWFnZShDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiwgQ0dSZWN0LCBD
R0ltYWdlUmVmKTsKKyNlbmRpZgorCitwcml2YXRlOgorICAgIEdyYXBoaWNzQ29udGV4dCBjcmVh
dGVJbnRlcm5hbENvbnRleHQoKTsKKyAgICB2b2lkIHByZXBhcmVJbnRlcm5hbENvbnRleHQoY29u
c3QgRm9udCYsIEZvbnRTbW9vdGhpbmdNb2RlKTsKKyAgICB2b2lkIGNvbmNsdWRlSW50ZXJuYWxD
b250ZXh0KCk7CisKKyAgICBSZWNvcmRlciYgbV9vd25lcjsKKyNpZiBVU0UoQ09SRV9URVhUKQor
ICAgIEdyYXBoaWNzQ29udGV4dCBtX2ludGVybmFsQ29udGV4dDsKKyAgICBjb25zdCBGb250KiBt
X2N1cnJlbnRGb250IHsgbnVsbHB0ciB9OworICAgIEZvbnRTbW9vdGhpbmdNb2RlIG1fc21vb3Ro
aW5nTW9kZSB7IEZvbnRTbW9vdGhpbmdNb2RlOjpBdXRvU21vb3RoaW5nIH07CisjZW5kaWYKK307
CisKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwZWU5YzgzNTcwOTIx
N2UwMTNlYTk1YTQxYzA2OTJmM2QwZWJjMjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhz
UmVjb3JkZXJDb3JlVGV4dC5jcHAKQEAgLTAsMCArMSwxMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCIKKworI2luY2x1ZGUgIkJpdG1hcElt
YWdlLmgiCisjaW5jbHVkZSAiRGlzcGxheUxpc3RJdGVtcy5oIgorI2luY2x1ZGUgIkRpc3BsYXlM
aXN0UmVjb3JkZXIuaCIKKyNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiRm9udC5o
IgorI2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgiCisjaW5jbHVkZSAiR2x5cGhCdWZmZXIuaCIKKwor
I2luY2x1ZGUgPENvcmVUZXh0L0NvcmVUZXh0Lmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK25hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CisKK3N0YXRp
YyBDR0Vycm9yIGRyYXdHbHlwaHMoQ0dDb250ZXh0RGVsZWdhdGVSZWYgZGVsZWdhdGUsIENHUmVu
ZGVyaW5nU3RhdGVSZWYgcnN0YXRlLCBDR0dTdGF0ZVJlZiBnc3RhdGUsIGNvbnN0IENHQWZmaW5l
VHJhbnNmb3JtKiB0bSwgY29uc3QgQ0dHbHlwaCBnbHlwaHNbXSwgY29uc3QgQ0dQb2ludCBwb3Np
dGlvbnNbXSwgc2l6ZV90IGNvdW50KQoreworICAgIGlmIChDR0dTdGF0ZUdldEFscGhhKGdzdGF0
ZSkgPiAwKSB7CisgICAgICAgIERyYXdHbHlwaHNSZWNvcmRlciYgcmVjb3JkZXIgPSAqc3RhdGlj
X2Nhc3Q8RHJhd0dseXBoc1JlY29yZGVyKj4oQ0dDb250ZXh0RGVsZWdhdGVHZXRJbmZvKGRlbGVn
YXRlKSk7CisgICAgICAgIHJlY29yZGVyLnJlY29yZERyYXdHbHlwaHMocnN0YXRlLCBnc3RhdGUs
IHRtLCBnbHlwaHMsIHBvc2l0aW9ucywgY291bnQpOworICAgIH0KKyAgICByZXR1cm4ga0NHRXJy
b3JTdWNjZXNzOworfQorCitzdGF0aWMgQ0dFcnJvciBkcmF3SW1hZ2UoQ0dDb250ZXh0RGVsZWdh
dGVSZWYgZGVsZWdhdGUsIENHUmVuZGVyaW5nU3RhdGVSZWYgcnN0YXRlLCBDR0dTdGF0ZVJlZiBn
c3RhdGUsIENHUmVjdCByZWN0LCBDR0ltYWdlUmVmIGltYWdlKQoreworICAgIERyYXdHbHlwaHNS
ZWNvcmRlciYgcmVjb3JkZXIgPSAqc3RhdGljX2Nhc3Q8RHJhd0dseXBoc1JlY29yZGVyKj4oQ0dD
b250ZXh0RGVsZWdhdGVHZXRJbmZvKGRlbGVnYXRlKSk7CisgICAgcmVjb3JkZXIucmVjb3JkRHJh
d0ltYWdlKHJzdGF0ZSwgZ3N0YXRlLCByZWN0LCBpbWFnZSk7CisgICAgcmV0dXJuIGtDR0Vycm9y
U3VjY2VzczsKK30KKworR3JhcGhpY3NDb250ZXh0IERyYXdHbHlwaHNSZWNvcmRlcjo6Y3JlYXRl
SW50ZXJuYWxDb250ZXh0KCkKK3sKKyAgICBhdXRvIGNvbnRleHREZWxlZ2F0ZSA9IGFkb3B0Q0Yo
Q0dDb250ZXh0RGVsZWdhdGVDcmVhdGUodGhpcykpOworICAgIENHQ29udGV4dERlbGVnYXRlU2V0
Q2FsbGJhY2soY29udGV4dERlbGVnYXRlLmdldCgpLCBkZURyYXdHbHlwaHMsIHJlaW50ZXJwcmV0
X2Nhc3Q8Q0dDb250ZXh0RGVsZWdhdGVDYWxsYmFjaz4oJldlYkNvcmU6OkRpc3BsYXlMaXN0Ojpk
cmF3R2x5cGhzKSk7CisgICAgQ0dDb250ZXh0RGVsZWdhdGVTZXRDYWxsYmFjayhjb250ZXh0RGVs
ZWdhdGUuZ2V0KCksIGRlRHJhd0ltYWdlLCByZWludGVycHJldF9jYXN0PENHQ29udGV4dERlbGVn
YXRlQ2FsbGJhY2s+KCZkcmF3SW1hZ2UpKTsKKyAgICBhdXRvIGNvbnRleHQgPSBhZG9wdENGKENH
Q29udGV4dENyZWF0ZVdpdGhEZWxlZ2F0ZShjb250ZXh0RGVsZWdhdGUuZ2V0KCksIGtDR0NvbnRl
eHRUeXBlVW5rbm93biwgbnVsbHB0ciwgbnVsbHB0cikpOworICAgIHJldHVybiBHcmFwaGljc0Nv
bnRleHQoY29udGV4dC5nZXQoKSk7Cit9CisKK0RyYXdHbHlwaHNSZWNvcmRlcjo6RHJhd0dseXBo
c1JlY29yZGVyKFJlY29yZGVyJiBvd25lcikKKyAgICA6IG1fb3duZXIob3duZXIpCisgICAgLCBt
X2ludGVybmFsQ29udGV4dChjcmVhdGVJbnRlcm5hbENvbnRleHQoKSkKK3sKK30KKwordm9pZCBE
cmF3R2x5cGhzUmVjb3JkZXI6OnByZXBhcmVJbnRlcm5hbENvbnRleHQoY29uc3QgRm9udCYgZm9u
dCwgRm9udFNtb290aGluZ01vZGUgc21vb3RoaW5nTW9kZSkKK3sKKyAgICAvLyBQdWxsIG91dDoK
KyAgICAvLyAxLiBDb2xvcgorICAgIC8vIDIuIE9wYWNpdHkgKG1heWJlKQorICAgIC8vIDMuIFNo
YWRvdyBpbmZvcm1hdGlvbgorICAgIC8vIDQuIENUTQorICAgIC8vIDUuIFRleHQgcG9zaXRpb24g
YW5kIG1hdHJpeAorCisgICAgbV9jdXJyZW50Rm9udCA9ICZmb250OworICAgIG1fc21vb3RoaW5n
TW9kZSA9IHNtb290aGluZ01vZGU7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpjb25j
bHVkZUludGVybmFsQ29udGV4dCgpCit7CisgICAgLy8gU2VlIGlmIHdlIG5lZWQgdG8gZG8gYW55
IGNsZWFudXAgbGlrZSByZXNldHRpbmcgdGhlIHNoYWRvdyBpbmZvcm1hdGlvbi4KK30KKworc3Rh
dGljIFZlY3RvcjxDR1NpemU+IGNvbXB1dGVBZHZhbmNlc0Zyb21Qb3NpdGlvbnMoY29uc3QgQ0dQ
b2ludCBwb3NpdGlvbnNbXSwgc2l6ZV90IGNvdW50KQoreworICAgIFZlY3RvcjxDR1NpemU+IHJl
c3VsdDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50IC0gMTsgKytpKSB7CisgICAg
ICAgIGF1dG8gbmV4dFBvc2l0aW9uID0gcG9zaXRpb25zW2kgKyAxXTsKKyAgICAgICAgYXV0byBj
dXJyZW50UG9zaXRpb24gPSBwb3NpdGlvbnNbaV07CisgICAgICAgIHJlc3VsdC5hcHBlbmQoQ0dT
aXplTWFrZShuZXh0UG9zaXRpb24ueCAtIGN1cnJlbnRQb3NpdGlvbi54LCBuZXh0UG9zaXRpb24u
eSAtIGN1cnJlbnRQb3NpdGlvbi55KSk7CisgICAgfQorICAgIHJlc3VsdC5jb25zdHJ1Y3RBbmRB
cHBlbmQoQ0dTaXplTWFrZSgwLCAwKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordm9pZCBE
cmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZERyYXdHbHlwaHMoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwg
Q0dHU3RhdGVSZWYgZ3N0YXRlLCBjb25zdCBDR0FmZmluZVRyYW5zZm9ybSosIGNvbnN0IENHR2x5
cGggZ2x5cGhzW10sIGNvbnN0IENHUG9pbnQgcG9zaXRpb25zW10sIHNpemVfdCBjb3VudCkKK3sK
KyAgICBDR0ZvbnRSZWYgdXNlZEZvbnQgPSBDR0dTdGF0ZUdldEZvbnQoZ3N0YXRlKTsKKyAgICBp
ZiAoIWNvdW50KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAodXNlZEZvbnQgIT0gYWRvcHRD
RihDVEZvbnRDb3B5R3JhcGhpY3NGb250KG1fY3VycmVudEZvbnQtPnBsYXRmb3JtRGF0YSgpLmN0
Rm9udCgpLCBudWxscHRyKSkuZ2V0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIFRlc3Qg
Y2FzZTogdmVydGljYWwgdGV4dCwgcm90YXRlZCB0ZXh0CisgICAgRmxvYXRQb2ludCBsb2NhbEFu
Y2hvciA9IENHQ29udGV4dEdldFRleHRQb3NpdGlvbihtX2ludGVybmFsQ29udGV4dC5wbGF0Zm9y
bUNvbnRleHQoKSk7CisgICAgbG9jYWxBbmNob3IubW92ZShGbG9hdFNpemUocG9zaXRpb25zWzBd
LngsIHBvc2l0aW9uc1swXS55KSk7IC8vIEZJWE1FOiBJcyB0aGlzIHJpZ2h0PworICAgIG1fb3du
ZXIuYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChEcmF3R2x5cGhzOjpjcmVhdGUoKm1fY3VycmVu
dEZvbnQsIGdseXBocywgY29tcHV0ZUFkdmFuY2VzRnJvbVBvc2l0aW9ucyhwb3NpdGlvbnMsIGNv
dW50KS5kYXRhKCksIGNvdW50LCBsb2NhbEFuY2hvciwgbV9zbW9vdGhpbmdNb2RlKSk7Cit9CisK
K3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpyZWNvcmREcmF3SW1hZ2UoQ0dSZW5kZXJpbmdTdGF0
ZVJlZiwgQ0dHU3RhdGVSZWYsIENHUmVjdCByZWN0LCBDR0ltYWdlUmVmIGNnSW1hZ2UpCit7Cisg
ICAgLy8gVGVzdCBjYXNlOiBFWElGIHJvdGF0ZWQgaW1hZ2VzLgorICAgIC8vIEZJWE1FOiBXaWxs
IENvcmVUZXh0IGV2ZXIgc2V0IGFueSBvZiB0aGUgc3R1ZmYgb24gdGhlIGNvbnRleHQgdGhhdCB3
ZSBuZWVkIHRvIGFwcGx5IGhlcmU/IFNlZSBvcHRpb25zIGluc2lkZSBJbWFnZVBhaW50aW5nT3B0
aW9ucy4KKyAgICBhdXRvIGltYWdlID0gQml0bWFwSW1hZ2U6OmNyZWF0ZShjZ0ltYWdlKTsKKyAg
ICBtX293bmVyLmFwcGVuZEl0ZW1BbmRVcGRhdGVFeHRlbnQoRHJhd0ltYWdlOjpjcmVhdGUoaW1h
Z2UsIHJlY3QsIHt7IH0sIGltYWdlLT5zaXplKCl9LCB7IH0pKTsKK30KKwordm9pZCBEcmF3R2x5
cGhzUmVjb3JkZXI6OmRyYXdHbHlwaHMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZm
ZXImIGdseXBoQnVmZmVyLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0
IEZsb2F0UG9pbnQmIHN0YXJ0UG9pbnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUp
Cit7CisgICAgcHJlcGFyZUludGVybmFsQ29udGV4dChmb250LCBzbW9vdGhpbmdNb2RlKTsKKyAg
ICBGb250Q2FzY2FkZTo6ZHJhd0dseXBocyhtX2ludGVybmFsQ29udGV4dCwgZm9udCwgZ2x5cGhC
dWZmZXIsIGZyb20sIG51bUdseXBocywgc3RhcnRQb2ludCwgc21vb3RoaW5nTW9kZSk7CisgICAg
Y29uY2x1ZGVJbnRlcm5hbENvbnRleHQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgRGlzcGxheUxp
c3QKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29y
ZGVySGFyZkJ1enouY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIzYWMzMjRiN2IwMGE5ZTE2YTU2YWQ2NzBjZTA0Y2ZhNzdmYzlmYTgKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHAKQEAgLTAsMCArMSw1MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIgorCisj
aW5jbHVkZSAiRGlzcGxheUxpc3RJdGVtcy5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0UmVjb3Jk
ZXIuaCIKKyNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiRm9udC5oIgorI2luY2x1
ZGUgIkdseXBoQnVmZmVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIERp
c3BsYXlMaXN0IHsKKworRHJhd0dseXBoc1JlY29yZGVyOjpEcmF3R2x5cGhzUmVjb3JkZXIoUmVj
b3JkZXImIG93bmVyKQorICAgIDogbV9vd25lcihvd25lcikKK3sKK30KKwordm9pZCBEcmF3R2x5
cGhzUmVjb3JkZXI6OmRyYXdHbHlwaHMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZm
ZXImIGdseXBoQnVmZmVyLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0
IEZsb2F0UG9pbnQmIHN0YXJ0UG9pbnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUp
Cit7CisgICAgbV9vd25lci5hcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KERyYXdHbHlwaHM6OmNy
ZWF0ZShmb250LCBnbHlwaEJ1ZmZlci5nbHlwaHMoZnJvbSksIGdseXBoQnVmZmVyLmFkdmFuY2Vz
KGZyb20pLCBudW1HbHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGluZ01vZGUpKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgRGlzcGxheUxpc3QKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0UmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCmluZGV4IDFjNTRhZTgyMjkzOTQyMGRk
NDBiN2I3MGJhN2UzOWRiYmE2NWZlOWIuLjlhNmNmMjE0ZmU3YzJkMGRkMDk5OTBmZWQ1MmY1MTVm
YzU0ZWJiYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKQEAg
LTQxLDYgKzQxLDcgQEAgUmVjb3JkZXI6OlJlY29yZGVyKEdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCwgRGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBjb25zdCBHcmEKICAgICA6IEdyYXBoaWNzQ29u
dGV4dEltcGwoY29udGV4dCwgaW5pdGlhbENsaXAsIEFmZmluZVRyYW5zZm9ybSgpKQogICAgICwg
bV9kaXNwbGF5TGlzdChkaXNwbGF5TGlzdCkKICAgICAsIG1fb2JzZXJ2ZXIob2JzZXJ2ZXIpCisg
ICAgLCBtX2RyYXdHbHlwaHNSZWNvcmRlcigqdGhpcykKIHsKICAgICBMT0dfV0lUSF9TVFJFQU0o
RGlzcGxheUxpc3RzLCBzdHJlYW0gPDwgIlxuUmVjb3JkaW5nIHdpdGggY2xpcCAiIDw8IGluaXRp
YWxDbGlwKTsKICAgICBtX3N0YXRlU3RhY2suYXBwZW5kKHsgc3RhdGUsIGluaXRpYWxDVE0sIGlu
aXRpYWxDbGlwIH0pOwpAQCAtMTExLDcgKzExMiw3IEBAIHZvaWQgUmVjb3JkZXI6OnNldE1pdGVy
TGltaXQoZmxvYXQgbWl0ZXJMaW1pdCkKIAogdm9pZCBSZWNvcmRlcjo6ZHJhd0dseXBocyhjb25z
dCBGb250JiBmb250LCBjb25zdCBHbHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIHVuc2lnbmVkIGZy
b20sIHVuc2lnbmVkIG51bUdseXBocywgY29uc3QgRmxvYXRQb2ludCYgc3RhcnRQb2ludCwgRm9u
dFNtb290aGluZ01vZGUgc21vb3RoaW5nTW9kZSkKIHsKLSAgICBhcHBlbmRJdGVtQW5kVXBkYXRl
RXh0ZW50KERyYXdHbHlwaHM6OmNyZWF0ZShmb250LCBnbHlwaEJ1ZmZlci5nbHlwaHMoZnJvbSks
IGdseXBoQnVmZmVyLmFkdmFuY2VzKGZyb20pLCBudW1HbHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290
aGluZ01vZGUpKTsKKyAgICBtX2RyYXdHbHlwaHNSZWNvcmRlci5kcmF3R2x5cGhzKGZvbnQsIGds
eXBoQnVmZmVyLCBmcm9tLCBudW1HbHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGluZ01vZGUpOwog
fQogCiBJbWFnZURyYXdSZXN1bHQgUmVjb3JkZXI6OmRyYXdJbWFnZShJbWFnZSYgaW1hZ2UsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25z
dCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RSZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaAppbmRleCA5ZWUxZDM5MzhmMjMyZjNmMThkOTc4YWY3
MTg3MDFkOGJlNDYzMDcyLi42NjI3ZTZhZGQyODczNTY0ODRmNjk3YjYyYzc2ZGM0Mjk0MGFhNThl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKQEAgLTI2LDYgKzI2LDcg
QEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRGlzcGxheUxpc3QuaCIKKyNpbmNsdWRlICJE
aXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dEltcGwuaCIKICNpbmNsdWRlICJJbWFnZS5oIiAvLyBGb3IgSW1hZ2U6OlRpbGVSdWxlLgogI2lu
Y2x1ZGUgIlRleHRGbGFncy5oIgpAQCAtMTkxLDYgKzE5Miw4IEBAIHByaXZhdGU6CiAgICAgT2Jz
ZXJ2ZXIqIG1fb2JzZXJ2ZXI7CiAKICAgICBWZWN0b3I8Q29udGV4dFN0YXRlLCAzMj4gbV9zdGF0
ZVN0YWNrOworCisgICAgRHJhd0dseXBoc1JlY29yZGVyIG1fZHJhd0dseXBoc1JlY29yZGVyOwog
fTsKIAogfQo=
</data>
<flag name="commit-queue"
          id="427114"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411002</attachid>
            <date>2020-10-09 20:20:38 -0700</date>
            <delta_ts>2020-10-13 00:18:16 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-217506-20201009202037.patch</filename>
            <type>text/plain</type>
            <size>30402</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MzA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWFmN2Y2ZjgxZmY1Mzlh
N2QzZTFkOGJiMzVhOTNiOGI2ZDFhNzQxZi4uZDBiZjc4Zjc4YmUwNWZkYWEzYWQ2MTY1MWNkYmY2
YjA1YWQyMWNiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDIwLTEwLTA5ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBb
R1BVIFByb2Nlc3NdIFBlcmZvcm0gaW1hZ2UgZGVjb2Rpbmcgb2YgY29sb3IgZm9udHMgaW4gdGhl
IFdlYiBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTc1MDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY5NzY4MTg2PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09Q
UyEpLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2Eu
dHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9GcmVlVHlwZS5jbWFrZToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0ds
eXBoc1JlY29yZGVyQ29yZVRleHQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpkcmF3R2x5cGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpkcmF3
SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRl
cjo6Y3JlYXRlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpEcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdHbHlwaHNSZWNvcmRlcik6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpwcmVwYXJlSW50ZXJuYWxDb250
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6
OmNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
Ojpjb21wdXRlQWR2YW5jZXNGcm9tUG9zaXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZERyYXdHbHlwaHMpOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6cmVjb3JkRHJhd0ltYWdl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OmRy
YXdHbHlwaHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpEcmF3R2x5cGhzUmVjb3Jk
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6
ZHJhd0dseXBocyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdH
bHlwaHM6OkRyYXdHbHlwaHMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdH
bHlwaHM6OmNvbXB1dGVCb3VuZHMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRy
YXdHbHlwaHM6OmxvY2FsQm91bmRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtcy5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRy
YXdHbHlwaHM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ds
eXBoczo6bG9jYWxBbmNob3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdHbHlwaHM6OmFuY2hvclBvaW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEcmF3R2x5cGhzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRyYXdHbHlwaHM6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6RHJhd0dseXBoczo6YmxvY2tMb2NhdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoczo6c2V0QmxvY2tMb2NhdGlvbik6IERl
bGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVy
OjpSZWNvcmRlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmRy
YXdHbHlwaHMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpkcmF3
SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpkcmF3VGls
ZWRJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmRyYXdO
YXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmRy
YXdQYXR0ZXJuKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6YmVn
aW5UcmFuc3BhcmVuY3lMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVj
b3JkZXI6OmRyYXdSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRl
cjo6ZHJhd0xpbmUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpk
cmF3TGluZXNGb3JUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRl
cjo6ZHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6UmVjb3JkZXI6OmRyYXdFbGxpcHNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpSZWNvcmRlcjo6ZHJhd1BhdGgpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlY29yZGVyOjpkcmF3Rm9jdXNSaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpSZWNvcmRlcjo6ZmlsbFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJl
Y29yZGVyOjpmaWxsUm91bmRlZFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlY29yZGVyOjpmaWxsUmVjdFdpdGhSb3VuZGVkSG9sZSk6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6UmVjb3JkZXI6OmZpbGxQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpSZWNvcmRlcjo6ZmlsbEVsbGlwc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OlJlY29yZGVyOjpzdHJva2VSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpSZWNvcmRlcjo6c3Ryb2tlUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6UmVjb3JkZXI6OnN0cm9rZUVsbGlwc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlJlY29yZGVyOjpjbGVhclJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlY29yZGVyOjphcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oOgorCiAyMDIwLTEw
LTA5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAg
W0dQVSBQcm9jZXNzXSBEZWxldGUgRGlzcGxheUxpc3Q6OkRyYXdHbHlwaHM6Om1fYmxvY2tMb2Nh
dGlvbiBiZWNhdXNlIGl0J3MgYWx3YXlzIDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDNjY2U4Y2M2
NDAxNTNlODkyMzFmZjhlYzI3OGUyMWZiYzlmMWNmMzcuLjg3ODNiM2Y3YTUxOGU1NWJlMzRhMWYw
MzJhMTBhNjllMjI5OGU3NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDIwLTEwLTA5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAg
ICAgICAgW0NvY29hXSBbR1BVIFByb2Nlc3NdIFBlcmZvcm0gaW1hZ2UgZGVjb2Rpbmcgb2YgY29s
b3IgZm9udHMgaW4gdGhlIFdlYiBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1MDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY5NzY4
MTg2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaDoKKwogMjAyMC0xMC0wMiAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIEFWQXNzZXRXcml0ZXIgU1BJIGhl
YWRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggYTg0N2IwNWFiNDRlNWNkNGE3MDZiZTMwOGM4YjY0
NWI1MjU0MDBmZS4uZWZmOTZlY2EyODQ3MWNhOTY3NzFkNTk5MWRiYmIxNGQ5YmRjZDM4ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlCkBAIC0xMjI1LDYgKzEyMjUsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRF
X0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvRXh0ZW5zaW9u
c0dMQU5HTEUuaAogCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0LmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3
R2x5cGhzUmVjb3JkZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdERyYXdpbmdDb250ZXh0LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3Nw
aS9jZy9Db3JlR3JhcGhpY3NTUEkuaAppbmRleCBhN2Y4MmI4NjFiNjJjNGFlZmI4M2MxODExZDU1
YzdhZjc0OWU2YjkxLi5iODg2N2FmYTg0YTczMTYxY2Y2MjlkOGFkMzI3NDJmYTcxODAwNmI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaApA
QCAtMzgsNiArMzgsNyBAQAogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAorI2luY2x1
ZGUgPENvcmVHcmFwaGljcy9DR0NvbnRleHREZWxlZ2F0ZVByaXZhdGUuaD4KICNpbmNsdWRlIDxD
b3JlR3JhcGhpY3MvQ0dGb250Q2FjaGUuaD4KICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dQYXRo
UHJpdmF0ZS5oPgogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3NQcml2YXRlLmg+
CkBAIC01OCwxOSArNTksMTAgQEAgc3RydWN0IENHRm9udEhNZXRyaWNzIHsKICAgICBpbnQgbWlu
UmlnaHRTaWRlQmVhcmluZzsKIH07CiAKLXN0cnVjdCBDR0ZvbnREZXNjcmlwdG9yIHsKLSAgICBD
R1JlY3QgYmJveDsKLSAgICBDR0Zsb2F0IGFzY2VudDsKLSAgICBDR0Zsb2F0IGRlc2NlbnQ7Ci0g
ICAgQ0dGbG9hdCBjYXBIZWlnaHQ7Ci0gICAgQ0dGbG9hdCBpdGFsaWNBbmdsZTsKLSAgICBDR0Zs
b2F0IHN0ZW1WOwotICAgIENHRmxvYXQgc3RlbUg7Ci0gICAgQ0dGbG9hdCBhdmdXaWR0aDsKLSAg
ICBDR0Zsb2F0IG1heFdpZHRoOwotICAgIENHRmxvYXQgbWlzc2luZ1dpZHRoOwotICAgIENHRmxv
YXQgbGVhZGluZzsKLSAgICBDR0Zsb2F0IHhIZWlnaHQ7Cit0eXBlZGVmIENGX0VOVU0gKGludDMy
X3QsIENHQ29udGV4dERlbGVnYXRlQ2FsbGJhY2tOYW1lKQoreworICAgIGRlRHJhd0ltYWdlID0g
NywKKyAgICBkZURyYXdHbHlwaHMgPSA4LAogfTsKIAogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgQ0dD
b2xvclRyYW5zZm9ybSogQ0dDb2xvclRyYW5zZm9ybVJlZjsKQEAgLTE5Myw2ICsxODUsMTEgQEAg
c3RhdGljIGNvbnN0IENHU05vdGlmaWNhdGlvblR5cGUga0NHU2Vzc2lvbkNvbnNvbGVEaXNjb25u
ZWN0ID0gKENHU05vdGlmaWNhdGlvblQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAordHlw
ZWRlZiBzdHJ1Y3QgQ0dDb250ZXh0RGVsZWdhdGUgKkNHQ29udGV4dERlbGVnYXRlUmVmOwordHlw
ZWRlZiB2b2lkICgqQ0dDb250ZXh0RGVsZWdhdGVDYWxsYmFjaykodm9pZCk7Cit0eXBlZGVmIHN0
cnVjdCBDR1JlbmRlcmluZ1N0YXRlICpDR1JlbmRlcmluZ1N0YXRlUmVmOwordHlwZWRlZiBzdHJ1
Y3QgQ0dHU3RhdGUgKkNHR1N0YXRlUmVmOworCiAjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFM
X1NESykKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtMjMzLDcgKzIzMCw2IEBAIHZvaWQgQ0dD
b250ZXh0UmVzZXRDbGlwKENHQ29udGV4dFJlZik7CiBDR0NvbnRleHRUeXBlIENHQ29udGV4dEdl
dFR5cGUoQ0dDb250ZXh0UmVmKTsKIAogQ0ZTdHJpbmdSZWYgQ0dGb250Q29weUZhbWlseU5hbWUo
Q0dGb250UmVmKTsKLWJvb2wgQ0dGb250R2V0RGVzY3JpcHRvcihDR0ZvbnRSZWYsIENHRm9udERl
c2NyaXB0b3IqKTsKIGJvb2wgQ0dGb250R2V0R2x5cGhBZHZhbmNlc0ZvclN0eWxlKENHRm9udFJl
ZiwgY29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0qICwgQ0dGb250UmVuZGVyaW5nU3R5bGUsIGNvbnN0
IENHR2x5cGhbXSwgc2l6ZV90IGNvdW50LCBDR1NpemUgYWR2YW5jZXNbXSk7CiB2b2lkIENHRm9u
dEdldEdseXBoc0ZvclVuaWNoYXJzKENHRm9udFJlZiwgY29uc3QgVW5pQ2hhcltdLCBDR0dseXBo
W10sIHNpemVfdCBjb3VudCk7CiBjb25zdCBDR0ZvbnRITWV0cmljcyogQ0dGb250R2V0SE1ldHJp
Y3MoQ0dGb250UmVmKTsKQEAgLTI1Miw2ICsyNDgsMTQgQEAgYm9vbCBDR0NvbnRleHRHZXRBbGxv
d3NGb250U3VicGl4ZWxQb3NpdGlvbmluZyhDR0NvbnRleHRSZWYpOwogYm9vbCBDR0NvbnRleHRE
cmF3c1dpdGhDb3JyZWN0U2hhZG93T2Zmc2V0cyhDR0NvbnRleHRSZWYpOwogQ0dQYXR0ZXJuUmVm
IENHUGF0dGVybkNyZWF0ZVdpdGhJbWFnZTIoQ0dJbWFnZVJlZiwgQ0dBZmZpbmVUcmFuc2Zvcm0s
IENHUGF0dGVyblRpbGluZyk7CiAKK0NHQ29udGV4dERlbGVnYXRlUmVmIENHQ29udGV4dERlbGVn
YXRlQ3JlYXRlKHZvaWQqIGluZm8pOwordm9pZCBDR0NvbnRleHREZWxlZ2F0ZVNldENhbGxiYWNr
KENHQ29udGV4dERlbGVnYXRlUmVmLCBDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrTmFtZSwgQ0dD
b250ZXh0RGVsZWdhdGVDYWxsYmFjayk7CitDR0NvbnRleHRSZWYgQ0dDb250ZXh0Q3JlYXRlV2l0
aERlbGVnYXRlKENHQ29udGV4dERlbGVnYXRlUmVmLCBDR0NvbnRleHRUeXBlLCBDR1JlbmRlcmlu
Z1N0YXRlUmVmLCBDR0dTdGF0ZVJlZik7Cit2b2lkKiBDR0NvbnRleHREZWxlZ2F0ZUdldEluZm8o
Q0dDb250ZXh0RGVsZWdhdGVSZWYpOwordm9pZCBDR0NvbnRleHREZWxlZ2F0ZVJlbGVhc2UoQ0dD
b250ZXh0RGVsZWdhdGVSZWYpOworQ0dGbG9hdCBDR0dTdGF0ZUdldEFscGhhKENHR1N0YXRlUmVm
KTsKK0NHRm9udFJlZiBDR0dTdGF0ZUdldEZvbnQoQ0dHU3RhdGVSZWYpOworCiAjaWYgSEFWRShD
R1BBVEhfR0VUX05VTUJFUl9PRl9FTEVNRU5UUykKIHNpemVfdCBDR1BhdGhHZXROdW1iZXJPZkVs
ZW1lbnRzKENHUGF0aFJlZik7CiAjZW5kaWYKQEAgLTI4NiwxNiArMjkwLDkgQEAgQ0dSZWN0KiBD
R1NOZXh0UmVjdChjb25zdCBDR1NSZWdpb25FbnVtZXJhdG9yT2JqKTsKIENHU1JlZ2lvbkVudW1l
cmF0b3JPYmogQ0dTUmVnaW9uRW51bWVyYXRvcihDR1JlZ2lvblJlZik7CiBDR1N0eWxlUmVmIENH
U3R5bGVDcmVhdGVGb2N1c1JpbmdXaXRoQ29sb3IoY29uc3QgQ0dGb2N1c1JpbmdTdHlsZSosIENH
Q29sb3JSZWYpOwogdm9pZCBDR0NvbnRleHRTZXRTdHlsZShDR0NvbnRleHRSZWYsIENHU3R5bGVS
ZWYpOwotCiB2b2lkIENHQ29udGV4dERyYXdDb25pY0dyYWRpZW50KENHQ29udGV4dFJlZiwgQ0dH
cmFkaWVudFJlZiwgQ0dQb2ludCBjZW50ZXIsIENHRmxvYXQgYW5nbGUpOwotCi0jaWYgSEFWRShD
R19QQVRIX1VORVZFTl9DT1JORVJTX1JPVU5ERURSRUNUKQogdm9pZCBDR1BhdGhBZGRVbmV2ZW5D
b3JuZXJzUm91bmRlZFJlY3QoQ0dNdXRhYmxlUGF0aFJlZiwgY29uc3QgQ0dBZmZpbmVUcmFuc2Zv
cm0gKiwgQ0dSZWN0LCBjb25zdCBDR1NpemUgY29ybmVyc1s0XSk7Ci0jZW5kaWYKLQotI2lmIEhB
VkUoQ0dfRk9OVF9SRU5ERVJJTkdfR0VUX0ZPTlRfU01PT1RISU5HX0RJU0FCTEVEKQogYm9vbCBD
R0ZvbnRSZW5kZXJpbmdHZXRGb250U21vb3RoaW5nRGlzYWJsZWQodm9pZCk7Ci0jZW5kaWYKIAog
I2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCkBAIC0zMjgsMTUgKzMyNSwxMCBAQCBib29sIENv
bG9yU3luY1Byb2ZpbGVJc1dpZGVHYW11dChDb2xvclN5bmNQcm9maWxlUmVmKTsKIHNpemVfdCBD
R0Rpc3BsYXlNb2RlR2V0UGl4ZWxzV2lkZShDR0Rpc3BsYXlNb2RlUmVmKTsKIHNpemVfdCBDR0Rp
c3BsYXlNb2RlR2V0UGl4ZWxzSGlnaChDR0Rpc3BsYXlNb2RlUmVmKTsKIAotI2lmIEVOQUJMRShX
RUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKLQogQ0dFcnJvciBDR1NTZXREZW55V2lu
ZG93U2VydmVyQ29ubmVjdGlvbnMoYm9vbCk7Ci0KIHR5cGVkZWYgaW50MzJfdCBDR1NEaXNwbGF5
SUQ7CiBDR1NEaXNwbGF5SUQgQ0dTTWFpbkRpc3BsYXlJRCh2b2lkKTsKIAotI2VuZGlmIC8vIEVO
QUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKLQogI2VuZGlmIC8vIFBMQVRG
T1JNKE1BQykKIAogI2lmIEVOQUJMRShQREZLSVRfUExVR0lOKSAmJiAhVVNFKEFQUExFX0lOVEVS
TkFMX1NESykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQXBwbGVXaW4uY21h
a2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUFwcGxlV2luLmNtYWtlCmluZGV4IGE3ODhlNjlk
ZTc0NDFjOTQwODRmNzAzNmEzZThmNDlhZDQ1MWE1OGQuLjM4YTJiNzc2ODk1NTk4YTRmNGUzNmFk
ZTdjNjAzYjA0MDc4ZGRjNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQXBw
bGVXaW4uY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1BcHBsZVdpbi5jbWFrZQpA
QCAtMzAsNiArMzAsOCBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
Q0YuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL1dlYkNvcmVBVkNG
UmVzb3VyY2VMb2FkZXIuY3BwCiAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAKKwogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAogCiAgICAgcGxhdGZvcm0v
bmV0d29yay9jZi9BdXRoZW50aWNhdGlvbkNGLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUGxhdGZvcm1XaW5DYWlyby5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ2Fp
cm8uY21ha2UKaW5kZXggYzRiODZjMTQ4OWFhYzlhNWUyZWEwMDQwMDIwZjM0MTk2NmExNDUzMy4u
YmZlMDhkN2E2NDk4NzcyOTczNDdmODZiZWY4NDBlM2U2OWYyODg4YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5DYWlyby5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
bGF0Zm9ybVdpbkNhaXJvLmNtYWtlCkBAIC0xOCw2ICsxOCw4IEBAIGxpc3QoQVBQRU5EIFdlYkNv
cmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCiAKKyAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHAK
KwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8u
Y3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFDYWlyb1dpbi5j
cHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR2x5cGhQYWdlVHJlZU5vZGVDYWlyb1dpbi5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGQ2ZjZmNWNmZGYwOWRkZjFjM2UyNmM2NTZj
Y2FjNmNlNzllMWMyMmEuLmU1ZDFhYmY3NTY1MzM1YWExZDhiMTI1YWU1NDk5ZGUzODI5OGMzNGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMzc4LDYgKzM3OCw3IEBAIHBsYXRmb3JtL2dy
YXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2N2
L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1Rl
eHR1cmVDb3BpZXJDVi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GaWx0ZXJFZmZl
Y3RSZW5kZXJlckNvcmVJbWFnZS5tbQorcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwCiBwbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvVGV4dHVyZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdEYXRhLmNwcAog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cEFsbG9jYXRvck1ldGFsLm1t
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggN2Q2MWUwNWIzNTc3MzA0YzE4M2M1MDNmODMxZWM4OTQxMDEwMDAyMS4uYjE2ZjBlZTU2
ZTk1NzEzNTBiZTM5ODNkZjIxZTAwNTk5ZjVlYTIyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjE5LDYgKzYxOSw3IEBACiAJ
CTFDQUYzNDgxMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUYzNDdFMEE2QzQwNTIwMEFC
RTA2RSAvKiBXZWJTY3JpcHRPYmplY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkxQ0FGMzQ4MjBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0
T2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUNBRjM0N0YwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdC5tbSAqLzsgfTsKIAkJ
MUNBRjM0ODMwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdFByaXZhdGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUYzNDgwMEE2QzQw
NTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3RQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMUNBRjU2REIyNTMwMUFDODAwMTdCNDcy
IC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FGNTZEODI1MzAxNDU3MDAxN0I0NzIgLyogRGlz
cGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkxQ0NEODE1MDIyMzFGODNFMDA2NUZDMkIgLyogV2ViQ29y
ZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE1MjU1MTQxNkZEMjM0RjAwM0Q3QURC
IC8qIFdlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbSAqLzsg
fTsKIAkJMUNDREY1QkUxOTkwMzMyNDAwQkNFQkFEIC8qIFNWR1RvT1RGRm9udENvbnZlcnNpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQ0RGNUJD
MTk5MDMzMjQwMEJDRUJBRCAvKiBTVkdUb09URkZvbnRDb252ZXJzaW9uLmggKi87IH07CiAJCTFD
RkFFMzIzMEE2RDZBM0YwMDMyNTkzRCAvKiBsaWJvYmpjLmR5bGliIGluIEZyYW1ld29ya3MgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNGQUUzMjIwQTZENkEzRjAwMzI1OTNE
IC8qIGxpYm9iamMuZHlsaWIgKi87IH07CkBAIC02NzEyLDYgKzY3MTMsOCBAQAogCQkxQ0FGMzQ3
RTBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYlNjcmlwdE9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxQ0FGMzQ3RjBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0Lm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViU2NyaXB0T2JqZWN0Lm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FGMzQ4MDBBNkM0MDUyMDBBQkUwNkUg
LyogV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJTY3JpcHRPYmplY3RQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFDQUY1NkQ4MjUzMDE0NTcwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNv
cmRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0FGNTZERTI1MzAyNDVBMDAxN0I0NzIgLyog
RGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNCNUZFODgyMkRFQkM4QjAwOTQ0MEUyIC8qIFdITFNMRXJy
b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xFcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxQ0I2OUIzMjIxREVENDBCMDA2RTg0NkEgLyogV0hMU0xSZXNvbHZhYmxlVHlwZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXSExTTFJlc29sdmFibGVUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFDQjY5QjM0MjFERUQ2M0EwMDZFODQ2QSAvKiBXSExTTEZsb2F0TGl0ZXJh
bFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xGbG9hdExpdGVyYWxUeXBlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzUwNSw2ICsxNzUwOCw4IEBACiAJCQljaGlsZHJlbiA9
ICgKIAkJCQkwRkU1RkJDQTFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3QuY3BwICovLAog
CQkJCTBGRTVGQkNCMUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdC5oICovLAorCQkJCTFD
QUY1NkQ4MjUzMDE0NTcwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5o
ICovLAorCQkJCTFDQUY1NkRFMjUzMDI0NUEwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlw
aHNSZWNvcmRlckNvcmVUZXh0LmNwcCAqLywKIAkJCQk1NUMwQTI5NTIzRkUyQ0UwMDBGMkNCOTMg
LyogRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5jcHAgKi8sCiAJCQkJNzJFQTA5RjkyM0ZDQ0M2
QTAwODUwNEE1IC8qIERpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaCAqLywKIAkJCQk3MkVBMDlG
NzIzRkNDQjNEMDA4NTA0QTUgLyogRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oICovLApAQCAtMzEy
MzEsNiArMzEyMzYsNyBAQAogCQkJCTdFREFBRkM5MTlBMkNDREMwMDM0REZEMSAvKiBEaXNrQ2Fj
aGVNb25pdG9yQ29jb2EuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNzkwRjQyMjUxN0NFNkUwMDlC
QTAzNCAvKiBEaXNwbGF5TGF5ZXJDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU1
RkJEMzFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTFDQUY1NkRCMjUzMDFBQzgwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTVBRDA5NDAyNDA4OTY0MDAwREU0RDJGIC8qIERpc3Bs
YXlMaXN0RHJhd2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1QUQwOTNFMjQwODk2
MzUwMERFNEQyRiAvKiBEaXNwbGF5TGlzdEltYWdlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkU1RkJENTFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3RJdGVtcy5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GcmVlVHlwZS5jbWFr
ZSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtlCmluZGV4IDdjMDRkOTNh
NWI4NWM3MzI1ODFjOTVhMDY1YmUwNWI2MzY3YzdhZTQuLmYzOGI1NGUxN2M5MzE1NjUxNTRjYWI5
NTNhODFlMGU5NmY1NzQ5YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Zy
ZWVUeXBlLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtl
CkBAIC01LDYgKzUsOCBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1BSSVZBVEVfSU5DTFVERV9ESVJF
Q1RPUklFUwogKQogCiBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6
ei5jcHAKKwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBl
LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDdXN0b21QbGF0Zm9ybURh
dGFGcmVlVHlwZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250UGxhdGZv
cm1EYXRhRnJlZVR5cGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERy
YXdHbHlwaHNSZWNvcmRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4MDA0ODgyZGZiODE2NTZjMWVlNzkyNmU1
NzlhZTNlYzc5OTk5MDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaApA
QCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJUZXh0RmxhZ3MuaCIKKworI2lmIFVTRShD
T1JFX1RFWFQpCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisKKyNpbmNsdWRlIDxDb3Jl
R3JhcGhpY3MvQ29yZUdyYXBoaWNzLmg+CisjaW5jbHVkZSA8cGFsL3NwaS9jZy9Db3JlR3JhcGhp
Y3NTUEkuaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZsb2F0UG9p
bnQ7CitjbGFzcyBGb250OworY2xhc3MgR2x5cGhCdWZmZXI7CitjbGFzcyBHcmFwaGljc0NvbnRl
eHQ7CisKK25hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CisKK2NsYXNzIFJlY29yZGVyOworCitjbGFz
cyBEcmF3R2x5cGhzUmVjb3JkZXIgeworcHVibGljOgorICAgIGV4cGxpY2l0IERyYXdHbHlwaHNS
ZWNvcmRlcihSZWNvcmRlciYpOworCisgICAgdm9pZCBkcmF3R2x5cGhzKGNvbnN0IEZvbnQmLCBj
b25zdCBHbHlwaEJ1ZmZlciYsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIG51bUdseXBocywgY29u
c3QgRmxvYXRQb2ludCYgYW5jaG9yUG9pbnQsIEZvbnRTbW9vdGhpbmdNb2RlKTsKKworI2lmIFVT
RShDT1JFX1RFWFQpCisgICAgdm9pZCByZWNvcmREcmF3R2x5cGhzKENHUmVuZGVyaW5nU3RhdGVS
ZWYsIENHR1N0YXRlUmVmLCBjb25zdCBDR0FmZmluZVRyYW5zZm9ybSosIGNvbnN0IENHR2x5cGhb
XSwgY29uc3QgQ0dQb2ludCBwb3NpdGlvbnNbXSwgc2l6ZV90IGNvdW50KTsKKyAgICB2b2lkIHJl
Y29yZERyYXdJbWFnZShDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiwgQ0dSZWN0LCBD
R0ltYWdlUmVmKTsKKyNlbmRpZgorCitwcml2YXRlOgorICAgIEdyYXBoaWNzQ29udGV4dCBjcmVh
dGVJbnRlcm5hbENvbnRleHQoKTsKKyAgICB2b2lkIHByZXBhcmVJbnRlcm5hbENvbnRleHQoY29u
c3QgRm9udCYsIEZvbnRTbW9vdGhpbmdNb2RlKTsKKyAgICB2b2lkIGNvbmNsdWRlSW50ZXJuYWxD
b250ZXh0KCk7CisKKyAgICBSZWNvcmRlciYgbV9vd25lcjsKKyNpZiBVU0UoQ09SRV9URVhUKQor
ICAgIEdyYXBoaWNzQ29udGV4dCBtX2ludGVybmFsQ29udGV4dDsKKyAgICBjb25zdCBGb250KiBt
X2N1cnJlbnRGb250IHsgbnVsbHB0ciB9OworICAgIEZvbnRTbW9vdGhpbmdNb2RlIG1fc21vb3Ro
aW5nTW9kZSB7IEZvbnRTbW9vdGhpbmdNb2RlOjpBdXRvU21vb3RoaW5nIH07CisjZW5kaWYKK307
CisKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3NDk0ODM3MjIwNWE4
NDhiNzQwMzkxMTFlOTE3NWEyOWRjZmI2M2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhz
UmVjb3JkZXJDb3JlVGV4dC5jcHAKQEAgLTAsMCArMSwxNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCIKKworI2luY2x1ZGUgIkJpdG1hcElt
YWdlLmgiCisjaW5jbHVkZSAiRGlzcGxheUxpc3RJdGVtcy5oIgorI2luY2x1ZGUgIkRpc3BsYXlM
aXN0UmVjb3JkZXIuaCIKKyNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiRm9udC5o
IgorI2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgiCisjaW5jbHVkZSAiR2x5cGhCdWZmZXIuaCIKKwor
I2luY2x1ZGUgPENvcmVUZXh0L0NvcmVUZXh0Lmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgor
CisjaWYgUExBVEZPUk0oV0lOKQorI2luY2x1ZGUgPHBhbC9zcGkvd2luL0NvcmVUZXh0U1BJV2lu
Lmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCituYW1lc3BhY2UgRGlzcGxheUxp
c3QgeworCitzdGF0aWMgQ0dFcnJvciBkcmF3R2x5cGhzKENHQ29udGV4dERlbGVnYXRlUmVmIGRl
bGVnYXRlLCBDR1JlbmRlcmluZ1N0YXRlUmVmIHJzdGF0ZSwgQ0dHU3RhdGVSZWYgZ3N0YXRlLCBj
b25zdCBDR0FmZmluZVRyYW5zZm9ybSogdG0sIGNvbnN0IENHR2x5cGggZ2x5cGhzW10sIGNvbnN0
IENHUG9pbnQgcG9zaXRpb25zW10sIHNpemVfdCBjb3VudCkKK3sKKyAgICBpZiAoQ0dHU3RhdGVH
ZXRBbHBoYShnc3RhdGUpID4gMCkgeworICAgICAgICBEcmF3R2x5cGhzUmVjb3JkZXImIHJlY29y
ZGVyID0gKnN0YXRpY19jYXN0PERyYXdHbHlwaHNSZWNvcmRlcio+KENHQ29udGV4dERlbGVnYXRl
R2V0SW5mbyhkZWxlZ2F0ZSkpOworICAgICAgICByZWNvcmRlci5yZWNvcmREcmF3R2x5cGhzKHJz
dGF0ZSwgZ3N0YXRlLCB0bSwgZ2x5cGhzLCBwb3NpdGlvbnMsIGNvdW50KTsKKyAgICB9CisgICAg
cmV0dXJuIGtDR0Vycm9yU3VjY2VzczsKK30KKworc3RhdGljIENHRXJyb3IgZHJhd0ltYWdlKENH
Q29udGV4dERlbGVnYXRlUmVmIGRlbGVnYXRlLCBDR1JlbmRlcmluZ1N0YXRlUmVmIHJzdGF0ZSwg
Q0dHU3RhdGVSZWYgZ3N0YXRlLCBDR1JlY3QgcmVjdCwgQ0dJbWFnZVJlZiBpbWFnZSkKK3sKKyAg
ICBEcmF3R2x5cGhzUmVjb3JkZXImIHJlY29yZGVyID0gKnN0YXRpY19jYXN0PERyYXdHbHlwaHNS
ZWNvcmRlcio+KENHQ29udGV4dERlbGVnYXRlR2V0SW5mbyhkZWxlZ2F0ZSkpOworICAgIHJlY29y
ZGVyLnJlY29yZERyYXdJbWFnZShyc3RhdGUsIGdzdGF0ZSwgcmVjdCwgaW1hZ2UpOworICAgIHJl
dHVybiBrQ0dFcnJvclN1Y2Nlc3M7Cit9CisKK0dyYXBoaWNzQ29udGV4dCBEcmF3R2x5cGhzUmVj
b3JkZXI6OmNyZWF0ZUludGVybmFsQ29udGV4dCgpCit7CisgICAgYXV0byBjb250ZXh0RGVsZWdh
dGUgPSBhZG9wdENGKENHQ29udGV4dERlbGVnYXRlQ3JlYXRlKHRoaXMpKTsKKyAgICBDR0NvbnRl
eHREZWxlZ2F0ZVNldENhbGxiYWNrKGNvbnRleHREZWxlZ2F0ZS5nZXQoKSwgZGVEcmF3R2x5cGhz
LCByZWludGVycHJldF9jYXN0PENHQ29udGV4dERlbGVnYXRlQ2FsbGJhY2s+KCZXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6ZHJhd0dseXBocykpOworICAgIENHQ29udGV4dERlbGVnYXRlU2V0Q2FsbGJh
Y2soY29udGV4dERlbGVnYXRlLmdldCgpLCBkZURyYXdJbWFnZSwgcmVpbnRlcnByZXRfY2FzdDxD
R0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrPigmZHJhd0ltYWdlKSk7CisgICAgYXV0byBjb250ZXh0
ID0gYWRvcHRDRihDR0NvbnRleHRDcmVhdGVXaXRoRGVsZWdhdGUoY29udGV4dERlbGVnYXRlLmdl
dCgpLCBrQ0dDb250ZXh0VHlwZVVua25vd24sIG51bGxwdHIsIG51bGxwdHIpKTsKKyAgICByZXR1
cm4gR3JhcGhpY3NDb250ZXh0KGNvbnRleHQuZ2V0KCkpOworfQorCitEcmF3R2x5cGhzUmVjb3Jk
ZXI6OkRyYXdHbHlwaHNSZWNvcmRlcihSZWNvcmRlciYgb3duZXIpCisgICAgOiBtX293bmVyKG93
bmVyKQorICAgICwgbV9pbnRlcm5hbENvbnRleHQoY3JlYXRlSW50ZXJuYWxDb250ZXh0KCkpCit7
Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpwcmVwYXJlSW50ZXJuYWxDb250ZXh0KGNv
bnN0IEZvbnQmIGZvbnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCit7CisgICAg
Ly8gUHVsbCBvdXQ6CisgICAgLy8gMS4gQ29sb3IKKyAgICAvLyAyLiBPcGFjaXR5IChtYXliZSkK
KyAgICAvLyAzLiBTaGFkb3cgaW5mb3JtYXRpb24KKyAgICAvLyA0LiBDVE0KKyAgICAvLyA1LiBU
ZXh0IHBvc2l0aW9uIGFuZCBtYXRyaXgKKworICAgIG1fY3VycmVudEZvbnQgPSAmZm9udDsKKyAg
ICBtX3Ntb290aGluZ01vZGUgPSBzbW9vdGhpbmdNb2RlOworfQorCit2b2lkIERyYXdHbHlwaHNS
ZWNvcmRlcjo6Y29uY2x1ZGVJbnRlcm5hbENvbnRleHQoKQoreworICAgIC8vIFNlZSBpZiB3ZSBu
ZWVkIHRvIGRvIGFueSBjbGVhbnVwIGxpa2UgcmVzZXR0aW5nIHRoZSBzaGFkb3cgaW5mb3JtYXRp
b24uCit9CisKK3N0YXRpYyBWZWN0b3I8Q0dTaXplPiBjb21wdXRlQWR2YW5jZXNGcm9tUG9zaXRp
b25zKGNvbnN0IENHUG9pbnQgcG9zaXRpb25zW10sIHNpemVfdCBjb3VudCkKK3sKKyAgICBWZWN0
b3I8Q0dTaXplPiByZXN1bHQ7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudCAtIDE7
ICsraSkgeworICAgICAgICBhdXRvIG5leHRQb3NpdGlvbiA9IHBvc2l0aW9uc1tpICsgMV07Cisg
ICAgICAgIGF1dG8gY3VycmVudFBvc2l0aW9uID0gcG9zaXRpb25zW2ldOworICAgICAgICByZXN1
bHQuYXBwZW5kKENHU2l6ZU1ha2UobmV4dFBvc2l0aW9uLnggLSBjdXJyZW50UG9zaXRpb24ueCwg
bmV4dFBvc2l0aW9uLnkgLSBjdXJyZW50UG9zaXRpb24ueSkpOworICAgIH0KKyAgICByZXN1bHQu
Y29uc3RydWN0QW5kQXBwZW5kKENHU2l6ZU1ha2UoMCwgMCkpOworICAgIHJldHVybiByZXN1bHQ7
Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpyZWNvcmREcmF3R2x5cGhzKENHUmVuZGVy
aW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmIGdzdGF0ZSwgY29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0q
LCBjb25zdCBDR0dseXBoIGdseXBoc1tdLCBjb25zdCBDR1BvaW50IHBvc2l0aW9uc1tdLCBzaXpl
X3QgY291bnQpCit7CisgICAgQ0dGb250UmVmIHVzZWRGb250ID0gQ0dHU3RhdGVHZXRGb250KGdz
dGF0ZSk7CisgICAgaWYgKCFjb3VudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHVzZWRG
b250ICE9IGFkb3B0Q0YoQ1RGb250Q29weUdyYXBoaWNzRm9udChtX2N1cnJlbnRGb250LT5wbGF0
Zm9ybURhdGEoKS5jdEZvbnQoKSwgbnVsbHB0cikpLmdldCgpKQorICAgICAgICByZXR1cm47CisK
KyAgICAvLyBUZXN0IGNhc2U6IHZlcnRpY2FsIHRleHQsIHJvdGF0ZWQgdGV4dAorICAgIEZsb2F0
UG9pbnQgbG9jYWxBbmNob3IgPSBDR0NvbnRleHRHZXRUZXh0UG9zaXRpb24obV9pbnRlcm5hbENv
bnRleHQucGxhdGZvcm1Db250ZXh0KCkpOworICAgIGxvY2FsQW5jaG9yLm1vdmUoRmxvYXRTaXpl
KHBvc2l0aW9uc1swXS54LCBwb3NpdGlvbnNbMF0ueSkpOyAvLyBGSVhNRTogSXMgdGhpcyByaWdo
dD8KKyAgICBtX293bmVyLmFwcGVuZEl0ZW1BbmRVcGRhdGVFeHRlbnQoRHJhd0dseXBoczo6Y3Jl
YXRlKCptX2N1cnJlbnRGb250LCBnbHlwaHMsIGNvbXB1dGVBZHZhbmNlc0Zyb21Qb3NpdGlvbnMo
cG9zaXRpb25zLCBjb3VudCkuZGF0YSgpLCBjb3VudCwgbG9jYWxBbmNob3IsIG1fc21vb3RoaW5n
TW9kZSkpOworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6cmVjb3JkRHJhd0ltYWdlKENH
UmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmLCBDR1JlY3QgcmVjdCwgQ0dJbWFnZVJlZiBj
Z0ltYWdlKQoreworICAgIC8vIFRlc3QgY2FzZTogRVhJRiByb3RhdGVkIGltYWdlcy4KKyAgICAv
LyBGSVhNRTogV2lsbCBDb3JlVGV4dCBldmVyIHNldCBhbnkgb2YgdGhlIHN0dWZmIG9uIHRoZSBj
b250ZXh0IHRoYXQgd2UgbmVlZCB0byBhcHBseSBoZXJlPyBTZWUgb3B0aW9ucyBpbnNpZGUgSW1h
Z2VQYWludGluZ09wdGlvbnMuCisgICAgYXV0byBpbWFnZSA9IEJpdG1hcEltYWdlOjpjcmVhdGUo
Y2dJbWFnZSk7CisgICAgbV9vd25lci5hcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KERyYXdJbWFn
ZTo6Y3JlYXRlKGltYWdlLCByZWN0LCB7eyB9LCBpbWFnZS0+c2l6ZSgpfSwgeyB9KSk7Cit9CisK
K3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpkcmF3R2x5cGhzKGNvbnN0IEZvbnQmIGZvbnQsIGNv
bnN0IEdseXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbnVt
R2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBzdGFydFBvaW50LCBGb250U21vb3RoaW5nTW9kZSBz
bW9vdGhpbmdNb2RlKQoreworICAgIHByZXBhcmVJbnRlcm5hbENvbnRleHQoZm9udCwgc21vb3Ro
aW5nTW9kZSk7CisgICAgRm9udENhc2NhZGU6OmRyYXdHbHlwaHMobV9pbnRlcm5hbENvbnRleHQs
IGZvbnQsIGdseXBoQnVmZmVyLCBmcm9tLCBudW1HbHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGlu
Z01vZGUpOworICAgIGNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIERpc3BsYXlMaXN0CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERy
YXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yM2FjMzI0YjdiMDBhOWUxNmE1NmFkNjcwY2UwNGNmYTc3ZmM5ZmE4
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwCkBAIC0w
LDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGlzcGxheUxpc3REcmF3R2x5cGhzUmVj
b3JkZXIuaCIKKworI2luY2x1ZGUgIkRpc3BsYXlMaXN0SXRlbXMuaCIKKyNpbmNsdWRlICJEaXNw
bGF5TGlzdFJlY29yZGVyLmgiCisjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgorI2luY2x1ZGUgIkZv
bnQuaCIKKyNpbmNsdWRlICJHbHlwaEJ1ZmZlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K25hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CisKK0RyYXdHbHlwaHNSZWNvcmRlcjo6RHJhd0dseXBo
c1JlY29yZGVyKFJlY29yZGVyJiBvd25lcikKKyAgICA6IG1fb3duZXIob3duZXIpCit7Cit9CisK
K3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpkcmF3R2x5cGhzKGNvbnN0IEZvbnQmIGZvbnQsIGNv
bnN0IEdseXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbnVt
R2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBzdGFydFBvaW50LCBGb250U21vb3RoaW5nTW9kZSBz
bW9vdGhpbmdNb2RlKQoreworICAgIG1fb3duZXIuYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChE
cmF3R2x5cGhzOjpjcmVhdGUoZm9udCwgZ2x5cGhCdWZmZXIuZ2x5cGhzKGZyb20pLCBnbHlwaEJ1
ZmZlci5hZHZhbmNlcyhmcm9tKSwgbnVtR2x5cGhzLCBzdGFydFBvaW50LCBzbW9vdGhpbmdNb2Rl
KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIERpc3BsYXlMaXN0CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAppbmRleCAxYzU0
YWU4MjI5Mzk0MjBkZDQwYjdiNzBiYTdlMzlkYmJhNjVmZTliLi45YTZjZjIxNGZlN2MyZDBkZDA5
OTkwZmVkNTJmNTE1ZmM1NGViYmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVj
b3JkZXIuY3BwCkBAIC00MSw2ICs0MSw3IEBAIFJlY29yZGVyOjpSZWNvcmRlcihHcmFwaGljc0Nv
bnRleHQmIGNvbnRleHQsIERpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgY29uc3QgR3JhCiAgICAg
OiBHcmFwaGljc0NvbnRleHRJbXBsKGNvbnRleHQsIGluaXRpYWxDbGlwLCBBZmZpbmVUcmFuc2Zv
cm0oKSkKICAgICAsIG1fZGlzcGxheUxpc3QoZGlzcGxheUxpc3QpCiAgICAgLCBtX29ic2VydmVy
KG9ic2VydmVyKQorICAgICwgbV9kcmF3R2x5cGhzUmVjb3JkZXIoKnRoaXMpCiB7CiAgICAgTE9H
X1dJVEhfU1RSRUFNKERpc3BsYXlMaXN0cywgc3RyZWFtIDw8ICJcblJlY29yZGluZyB3aXRoIGNs
aXAgIiA8PCBpbml0aWFsQ2xpcCk7CiAgICAgbV9zdGF0ZVN0YWNrLmFwcGVuZCh7IHN0YXRlLCBp
bml0aWFsQ1RNLCBpbml0aWFsQ2xpcCB9KTsKQEAgLTExMSw3ICsxMTIsNyBAQCB2b2lkIFJlY29y
ZGVyOjpzZXRNaXRlckxpbWl0KGZsb2F0IG1pdGVyTGltaXQpCiAKIHZvaWQgUmVjb3JkZXI6OmRy
YXdHbHlwaHMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZmZXImIGdseXBoQnVmZmVy
LCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmIHN0
YXJ0UG9pbnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCiB7Ci0gICAgYXBwZW5k
SXRlbUFuZFVwZGF0ZUV4dGVudChEcmF3R2x5cGhzOjpjcmVhdGUoZm9udCwgZ2x5cGhCdWZmZXIu
Z2x5cGhzKGZyb20pLCBnbHlwaEJ1ZmZlci5hZHZhbmNlcyhmcm9tKSwgbnVtR2x5cGhzLCBzdGFy
dFBvaW50LCBzbW9vdGhpbmdNb2RlKSk7CisgICAgbV9kcmF3R2x5cGhzUmVjb3JkZXIuZHJhd0ds
eXBocyhmb250LCBnbHlwaEJ1ZmZlciwgZnJvbSwgbnVtR2x5cGhzLCBzdGFydFBvaW50LCBzbW9v
dGhpbmdNb2RlKTsKIH0KIAogSW1hZ2VEcmF3UmVzdWx0IFJlY29yZGVyOjpkcmF3SW1hZ2UoSW1h
Z2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3Qm
IHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIGltYWdlUGFpbnRpbmdPcHRpb25z
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKaW5kZXggOWVlMWQzOTM4ZjIz
MmYzZjE4ZDk3OGFmNzE4NzAxZDhiZTQ2MzA3Mi4uNjYyN2U2YWRkMjg3MzU2NDg0ZjY5N2I2MmM3
NmRjNDI5NDBhYTU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCkBA
IC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkRpc3BsYXlMaXN0Lmgi
CisjaW5jbHVkZSAiRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCIKICNpbmNsdWRlICJH
cmFwaGljc0NvbnRleHRJbXBsLmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIgLy8gRm9yIEltYWdlOjpU
aWxlUnVsZS4KICNpbmNsdWRlICJUZXh0RmxhZ3MuaCIKQEAgLTE5MSw2ICsxOTIsOCBAQCBwcml2
YXRlOgogICAgIE9ic2VydmVyKiBtX29ic2VydmVyOwogCiAgICAgVmVjdG9yPENvbnRleHRTdGF0
ZSwgMzI+IG1fc3RhdGVTdGFjazsKKworICAgIERyYXdHbHlwaHNSZWNvcmRlciBtX2RyYXdHbHlw
aHNSZWNvcmRlcjsKIH07CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411200</attachid>
            <date>2020-10-13 00:18:17 -0700</date>
            <delta_ts>2020-10-13 18:53:18 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-217506-20201013001817.patch</filename>
            <type>text/plain</type>
            <size>36159</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MzA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWFmN2Y2ZjgxZmY1Mzlh
N2QzZTFkOGJiMzVhOTNiOGI2ZDFhNzQxZi4uZDBiZjc4Zjc4YmUwNWZkYWEzYWQ2MTY1MWNkYmY2
YjA1YWQyMWNiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDIwLTEwLTA5ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBb
R1BVIFByb2Nlc3NdIFBlcmZvcm0gaW1hZ2UgZGVjb2Rpbmcgb2YgY29sb3IgZm9udHMgaW4gdGhl
IFdlYiBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTc1MDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY5NzY4MTg2PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09Q
UyEpLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2Eu
dHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9GcmVlVHlwZS5jbWFrZToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0ds
eXBoc1JlY29yZGVyQ29yZVRleHQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpkcmF3R2x5cGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpkcmF3
SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRl
cjo6Y3JlYXRlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpEcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdHbHlwaHNSZWNvcmRlcik6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpwcmVwYXJlSW50ZXJuYWxDb250
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6
OmNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
Ojpjb21wdXRlQWR2YW5jZXNGcm9tUG9zaXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZERyYXdHbHlwaHMpOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6cmVjb3JkRHJhd0ltYWdl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OmRy
YXdHbHlwaHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpEcmF3R2x5cGhzUmVjb3Jk
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6
ZHJhd0dseXBocyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdH
bHlwaHM6OkRyYXdHbHlwaHMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdH
bHlwaHM6OmNvbXB1dGVCb3VuZHMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRy
YXdHbHlwaHM6OmxvY2FsQm91bmRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtcy5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRy
YXdHbHlwaHM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ds
eXBoczo6bG9jYWxBbmNob3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdHbHlwaHM6OmFuY2hvclBvaW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEcmF3R2x5cGhzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRyYXdHbHlwaHM6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6RHJhd0dseXBoczo6YmxvY2tMb2NhdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoczo6c2V0QmxvY2tMb2NhdGlvbik6IERl
bGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVy
OjpSZWNvcmRlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmRy
YXdHbHlwaHMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpkcmF3
SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpkcmF3VGls
ZWRJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmRyYXdO
YXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmRy
YXdQYXR0ZXJuKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6YmVn
aW5UcmFuc3BhcmVuY3lMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVj
b3JkZXI6OmRyYXdSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRl
cjo6ZHJhd0xpbmUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpk
cmF3TGluZXNGb3JUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRl
cjo6ZHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6UmVjb3JkZXI6OmRyYXdFbGxpcHNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpSZWNvcmRlcjo6ZHJhd1BhdGgpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlY29yZGVyOjpkcmF3Rm9jdXNSaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpSZWNvcmRlcjo6ZmlsbFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJl
Y29yZGVyOjpmaWxsUm91bmRlZFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlY29yZGVyOjpmaWxsUmVjdFdpdGhSb3VuZGVkSG9sZSk6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6UmVjb3JkZXI6OmZpbGxQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpSZWNvcmRlcjo6ZmlsbEVsbGlwc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OlJlY29yZGVyOjpzdHJva2VSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpSZWNvcmRlcjo6c3Ryb2tlUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6UmVjb3JkZXI6OnN0cm9rZUVsbGlwc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlJlY29yZGVyOjpjbGVhclJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlY29yZGVyOjphcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oOgorCiAyMDIwLTEw
LTA5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAg
W0dQVSBQcm9jZXNzXSBEZWxldGUgRGlzcGxheUxpc3Q6OkRyYXdHbHlwaHM6Om1fYmxvY2tMb2Nh
dGlvbiBiZWNhdXNlIGl0J3MgYWx3YXlzIDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDNjY2U4Y2M2
NDAxNTNlODkyMzFmZjhlYzI3OGUyMWZiYzlmMWNmMzcuLjg3ODNiM2Y3YTUxOGU1NWJlMzRhMWYw
MzJhMTBhNjllMjI5OGU3NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDIwLTEwLTA5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAg
ICAgICAgW0NvY29hXSBbR1BVIFByb2Nlc3NdIFBlcmZvcm0gaW1hZ2UgZGVjb2Rpbmcgb2YgY29s
b3IgZm9udHMgaW4gdGhlIFdlYiBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1MDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY5NzY4
MTg2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaDoKKwogMjAyMC0xMC0wMiAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIEFWQXNzZXRXcml0ZXIgU1BJIGhl
YWRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggYTg0N2IwNWFiNDRlNWNkNGE3MDZiZTMwOGM4YjY0
NWI1MjU0MDBmZS4uZWZmOTZlY2EyODQ3MWNhOTY3NzFkNTk5MWRiYmIxNGQ5YmRjZDM4ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlCkBAIC0xMjI1LDYgKzEyMjUsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRF
X0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvRXh0ZW5zaW9u
c0dMQU5HTEUuaAogCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0LmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3
R2x5cGhzUmVjb3JkZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdERyYXdpbmdDb250ZXh0LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3Nw
aS9jZy9Db3JlR3JhcGhpY3NTUEkuaAppbmRleCBhN2Y4MmI4NjFiNjJjNGFlZmI4M2MxODExZDU1
YzdhZjc0OWU2YjkxLi4zY2QxNDBkMGZlNDc1OTRlNGYzMmI0Njg5M2QxOWJmZmUzMDg0MjYwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaApA
QCAtMzgsNiArMzgsNyBAQAogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAorI2luY2x1
ZGUgPENvcmVHcmFwaGljcy9DR0NvbnRleHREZWxlZ2F0ZVByaXZhdGUuaD4KICNpbmNsdWRlIDxD
b3JlR3JhcGhpY3MvQ0dGb250Q2FjaGUuaD4KICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dQYXRo
UHJpdmF0ZS5oPgogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3NQcml2YXRlLmg+
CkBAIC01OCwxOSArNTksMTIgQEAgc3RydWN0IENHRm9udEhNZXRyaWNzIHsKICAgICBpbnQgbWlu
UmlnaHRTaWRlQmVhcmluZzsKIH07CiAKLXN0cnVjdCBDR0ZvbnREZXNjcmlwdG9yIHsKLSAgICBD
R1JlY3QgYmJveDsKLSAgICBDR0Zsb2F0IGFzY2VudDsKLSAgICBDR0Zsb2F0IGRlc2NlbnQ7Ci0g
ICAgQ0dGbG9hdCBjYXBIZWlnaHQ7Ci0gICAgQ0dGbG9hdCBpdGFsaWNBbmdsZTsKLSAgICBDR0Zs
b2F0IHN0ZW1WOwotICAgIENHRmxvYXQgc3RlbUg7Ci0gICAgQ0dGbG9hdCBhdmdXaWR0aDsKLSAg
ICBDR0Zsb2F0IG1heFdpZHRoOwotICAgIENHRmxvYXQgbWlzc2luZ1dpZHRoOwotICAgIENHRmxv
YXQgbGVhZGluZzsKLSAgICBDR0Zsb2F0IHhIZWlnaHQ7Cit0eXBlZGVmIENGX0VOVU0gKGludDMy
X3QsIENHQ29udGV4dERlbGVnYXRlQ2FsbGJhY2tOYW1lKQoreworICAgIGRlRHJhd0ltYWdlID0g
NywKKyAgICBkZURyYXdHbHlwaHMgPSA4LAorICAgIGRlQmVnaW5MYXllciA9IDE3LAorICAgIGRl
RW5kTGF5ZXIgPSAxOCwKIH07CiAKIHR5cGVkZWYgY29uc3Qgc3RydWN0IENHQ29sb3JUcmFuc2Zv
cm0qIENHQ29sb3JUcmFuc2Zvcm1SZWY7CkBAIC0xOTMsNiArMTg3LDExIEBAIHN0YXRpYyBjb25z
dCBDR1NOb3RpZmljYXRpb25UeXBlIGtDR1Nlc3Npb25Db25zb2xlRGlzY29ubmVjdCA9IChDR1NO
b3RpZmljYXRpb25UCiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKK3R5cGVkZWYgc3RydWN0
IENHQ29udGV4dERlbGVnYXRlICpDR0NvbnRleHREZWxlZ2F0ZVJlZjsKK3R5cGVkZWYgdm9pZCAo
KkNHQ29udGV4dERlbGVnYXRlQ2FsbGJhY2spKHZvaWQpOwordHlwZWRlZiBzdHJ1Y3QgQ0dSZW5k
ZXJpbmdTdGF0ZSAqQ0dSZW5kZXJpbmdTdGF0ZVJlZjsKK3R5cGVkZWYgc3RydWN0IENHR1N0YXRl
ICpDR0dTdGF0ZVJlZjsKKwogI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKICNp
ZiBQTEFURk9STShDT0NPQSkKQEAgLTIzMyw3ICsyMzIsNiBAQCB2b2lkIENHQ29udGV4dFJlc2V0
Q2xpcChDR0NvbnRleHRSZWYpOwogQ0dDb250ZXh0VHlwZSBDR0NvbnRleHRHZXRUeXBlKENHQ29u
dGV4dFJlZik7CiAKIENGU3RyaW5nUmVmIENHRm9udENvcHlGYW1pbHlOYW1lKENHRm9udFJlZik7
Ci1ib29sIENHRm9udEdldERlc2NyaXB0b3IoQ0dGb250UmVmLCBDR0ZvbnREZXNjcmlwdG9yKik7
CiBib29sIENHRm9udEdldEdseXBoQWR2YW5jZXNGb3JTdHlsZShDR0ZvbnRSZWYsIGNvbnN0IENH
QWZmaW5lVHJhbnNmb3JtKiAsIENHRm9udFJlbmRlcmluZ1N0eWxlLCBjb25zdCBDR0dseXBoW10s
IHNpemVfdCBjb3VudCwgQ0dTaXplIGFkdmFuY2VzW10pOwogdm9pZCBDR0ZvbnRHZXRHbHlwaHNG
b3JVbmljaGFycyhDR0ZvbnRSZWYsIGNvbnN0IFVuaUNoYXJbXSwgQ0dHbHlwaFtdLCBzaXplX3Qg
Y291bnQpOwogY29uc3QgQ0dGb250SE1ldHJpY3MqIENHRm9udEdldEhNZXRyaWNzKENHRm9udFJl
Zik7CkBAIC0yNTIsNiArMjUwLDE0IEBAIGJvb2wgQ0dDb250ZXh0R2V0QWxsb3dzRm9udFN1YnBp
eGVsUG9zaXRpb25pbmcoQ0dDb250ZXh0UmVmKTsKIGJvb2wgQ0dDb250ZXh0RHJhd3NXaXRoQ29y
cmVjdFNoYWRvd09mZnNldHMoQ0dDb250ZXh0UmVmKTsKIENHUGF0dGVyblJlZiBDR1BhdHRlcm5D
cmVhdGVXaXRoSW1hZ2UyKENHSW1hZ2VSZWYsIENHQWZmaW5lVHJhbnNmb3JtLCBDR1BhdHRlcm5U
aWxpbmcpOwogCitDR0NvbnRleHREZWxlZ2F0ZVJlZiBDR0NvbnRleHREZWxlZ2F0ZUNyZWF0ZSh2
b2lkKiBpbmZvKTsKK3ZvaWQgQ0dDb250ZXh0RGVsZWdhdGVTZXRDYWxsYmFjayhDR0NvbnRleHRE
ZWxlZ2F0ZVJlZiwgQ0dDb250ZXh0RGVsZWdhdGVDYWxsYmFja05hbWUsIENHQ29udGV4dERlbGVn
YXRlQ2FsbGJhY2spOworQ0dDb250ZXh0UmVmIENHQ29udGV4dENyZWF0ZVdpdGhEZWxlZ2F0ZShD
R0NvbnRleHREZWxlZ2F0ZVJlZiwgQ0dDb250ZXh0VHlwZSwgQ0dSZW5kZXJpbmdTdGF0ZVJlZiwg
Q0dHU3RhdGVSZWYpOwordm9pZCogQ0dDb250ZXh0RGVsZWdhdGVHZXRJbmZvKENHQ29udGV4dERl
bGVnYXRlUmVmKTsKK3ZvaWQgQ0dDb250ZXh0RGVsZWdhdGVSZWxlYXNlKENHQ29udGV4dERlbGVn
YXRlUmVmKTsKK0NHRmxvYXQgQ0dHU3RhdGVHZXRBbHBoYShDR0dTdGF0ZVJlZik7CitDR0ZvbnRS
ZWYgQ0dHU3RhdGVHZXRGb250KENHR1N0YXRlUmVmKTsKKwogI2lmIEhBVkUoQ0dQQVRIX0dFVF9O
VU1CRVJfT0ZfRUxFTUVOVFMpCiBzaXplX3QgQ0dQYXRoR2V0TnVtYmVyT2ZFbGVtZW50cyhDR1Bh
dGhSZWYpOwogI2VuZGlmCkBAIC0yODYsMTYgKzI5Miw5IEBAIENHUmVjdCogQ0dTTmV4dFJlY3Qo
Y29uc3QgQ0dTUmVnaW9uRW51bWVyYXRvck9iaik7CiBDR1NSZWdpb25FbnVtZXJhdG9yT2JqIENH
U1JlZ2lvbkVudW1lcmF0b3IoQ0dSZWdpb25SZWYpOwogQ0dTdHlsZVJlZiBDR1N0eWxlQ3JlYXRl
Rm9jdXNSaW5nV2l0aENvbG9yKGNvbnN0IENHRm9jdXNSaW5nU3R5bGUqLCBDR0NvbG9yUmVmKTsK
IHZvaWQgQ0dDb250ZXh0U2V0U3R5bGUoQ0dDb250ZXh0UmVmLCBDR1N0eWxlUmVmKTsKLQogdm9p
ZCBDR0NvbnRleHREcmF3Q29uaWNHcmFkaWVudChDR0NvbnRleHRSZWYsIENHR3JhZGllbnRSZWYs
IENHUG9pbnQgY2VudGVyLCBDR0Zsb2F0IGFuZ2xlKTsKLQotI2lmIEhBVkUoQ0dfUEFUSF9VTkVW
RU5fQ09STkVSU19ST1VOREVEUkVDVCkKIHZvaWQgQ0dQYXRoQWRkVW5ldmVuQ29ybmVyc1JvdW5k
ZWRSZWN0KENHTXV0YWJsZVBhdGhSZWYsIGNvbnN0IENHQWZmaW5lVHJhbnNmb3JtICosIENHUmVj
dCwgY29uc3QgQ0dTaXplIGNvcm5lcnNbNF0pOwotI2VuZGlmCi0KLSNpZiBIQVZFKENHX0ZPTlRf
UkVOREVSSU5HX0dFVF9GT05UX1NNT09USElOR19ESVNBQkxFRCkKIGJvb2wgQ0dGb250UmVuZGVy
aW5nR2V0Rm9udFNtb290aGluZ0Rpc2FibGVkKHZvaWQpOwotI2VuZGlmCiAKICNlbmRpZiAvLyBQ
TEFURk9STShDT0NPQSkKIApAQCAtMzI4LDE1ICszMjcsMTAgQEAgYm9vbCBDb2xvclN5bmNQcm9m
aWxlSXNXaWRlR2FtdXQoQ29sb3JTeW5jUHJvZmlsZVJlZik7CiBzaXplX3QgQ0dEaXNwbGF5TW9k
ZUdldFBpeGVsc1dpZGUoQ0dEaXNwbGF5TW9kZVJlZik7CiBzaXplX3QgQ0dEaXNwbGF5TW9kZUdl
dFBpeGVsc0hpZ2goQ0dEaXNwbGF5TW9kZVJlZik7CiAKLSNpZiBFTkFCTEUoV0VCUFJPQ0VTU19X
SU5ET1dTRVJWRVJfQkxPQ0tJTkcpCi0KIENHRXJyb3IgQ0dTU2V0RGVueVdpbmRvd1NlcnZlckNv
bm5lY3Rpb25zKGJvb2wpOwotCiB0eXBlZGVmIGludDMyX3QgQ0dTRGlzcGxheUlEOwogQ0dTRGlz
cGxheUlEIENHU01haW5EaXNwbGF5SUQodm9pZCk7CiAKLSNlbmRpZiAvLyBFTkFCTEUoV0VCUFJP
Q0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCi0KICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAK
ICNpZiBFTkFCTEUoUERGS0lUX1BMVUdJTikgJiYgIVVTRShBUFBMRV9JTlRFUk5BTF9TREspCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUFwcGxlV2luLmNtYWtlIGIvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1BcHBsZVdpbi5jbWFrZQppbmRleCBhNzg4ZTY5ZGU3NDQxYzk0MDg0
ZjcwMzZhM2U4ZjQ5YWQ0NTFhNThkLi4zOGEyYjc3Njg5NTU5OGE0ZjRlMzZhZGU3YzYwM2IwNDA3
OGRkYzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUFwcGxlV2luLmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQXBwbGVXaW4uY21ha2UKQEAgLTMwLDYgKzMw
LDggQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9XZWJDb3JlQVZDRlJlc291cmNlTG9h
ZGVyLmNwcAogCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwCisKICAgICBwbGF0Zm9ybS9ncmFwaGljcy93
aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKIAogICAgIHBsYXRmb3JtL25ldHdvcmsvY2Yv
QXV0aGVudGljYXRpb25DRi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
V2luQ2Fpcm8uY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbkNhaXJvLmNtYWtlCmlu
ZGV4IGM0Yjg2YzE0ODlhYWM5YTVlMmVhMDA0MDAyMGYzNDE5NjZhMTQ1MzMuLmJmZTA4ZDdhNjQ5
ODc3Mjk3MzQ3Zjg2YmVmODQwZTNlNjlmMjg4OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5D
YWlyby5jbWFrZQpAQCAtMTgsNiArMTgsOCBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvUGxhdGZvcm1EaXNwbGF5LmNwcAogCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwCisKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YUNhaXJvLmNwcAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhQ2Fpcm9XaW4uY3BwCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0dseXBoUGFnZVRyZWVOb2RlQ2Fpcm9XaW4uY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291
cmNlc0NvY29hLnR4dAppbmRleCBkNmY2ZjVjZmRmMDlkZGYxYzNlMjZjNjU2Y2NhYzZjZTc5ZTFj
MjJhLi5lNWQxYWJmNzU2NTMzNWFhMWQ4YjEyNWFlNTQ5OWRlMzgyOThjMzRmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXNDb2NvYS50eHQKQEAgLTM3OCw2ICszNzgsNyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9jdi9J
bWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9QaXhlbEJ1ZmZl
ckNvbmZvcm1lckNWLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVy
Q1YuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvRmlsdGVyRWZmZWN0UmVuZGVyZXJD
b3JlSW1hZ2UubW0KK3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERy
YXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1RleHR1
cmUuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGlsaW5nRGF0YS5jcHAKIHBsYXRmb3JtL2dy
YXBoaWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBBbGxvY2F0b3JNZXRhbC5tbQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDdkNjFl
MDViMzU3NzMwNGMxODNjNTAzZjgzMWVjODk0MTAxMDAwMjEuLmIxNmYwZWU1NmU5NTcxMzUwYmUz
OTgzZGYyMWUwMDU5OWY1ZWEyMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYxOSw2ICs2MTksNyBAQAogCQkxQ0FGMzQ4MTBB
NkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FGMzQ3RTBBNkM0MDUyMDBBQkUwNkUgLyogV2Vi
U2NyaXB0T2JqZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMUNBRjM0ODIwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdC5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUYzNDdGMEE2
QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QubW0gKi87IH07CiAJCTFDQUYzNDgzMEE2
QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3RQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FGMzQ4MDBBNkM0MDUyMDBBQkUwNkUg
LyogV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTFDQUY1NkRCMjUzMDFBQzgwMDE3QjQ3MiAvKiBEaXNwbGF5
TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUNBRjU2RDgyNTMwMTQ1NzAwMTdCNDcyIC8qIERpc3BsYXlMaXN0RHJh
d0dseXBoc1JlY29yZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMUNDRDgxNTAyMjMxRjgzRTAwNjVGQzJCIC8qIFdlYkNvcmVSZXNvdXJjZUhh
bmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNTI1NTE0MTZGRDIzNEYwMDNEN0FEQiAvKiBXZWJDb3Jl
UmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0gKi87IH07CiAJCTFDQ0RG
NUJFMTk5MDMzMjQwMEJDRUJBRCAvKiBTVkdUb09URkZvbnRDb252ZXJzaW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0NERjVCQzE5OTAzMzI0MDBC
Q0VCQUQgLyogU1ZHVG9PVEZGb250Q29udmVyc2lvbi5oICovOyB9OwogCQkxQ0ZBRTMyMzBBNkQ2
QTNGMDAzMjU5M0QgLyogbGlib2JqYy5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDRkFFMzIyMEE2RDZBM0YwMDMyNTkzRCAvKiBsaWJvYmpj
LmR5bGliICovOyB9OwpAQCAtNjcxMiw2ICs2NzEzLDggQEAKIAkJMUNBRjM0N0UwQTZDNDA1MjAw
QUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJTY3JpcHRPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNB
RjM0N0YwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdC5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlNjcmlwdE9iamVjdC5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBRjM0ODAwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlw
dE9iamVjdFByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU2Ny
aXB0T2JqZWN0UHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0FGNTZE
ODI1MzAxNDU3MDAxN0I0NzIgLyogRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMUNBRjU2REUyNTMwMjQ1QTAwMTdCNDcyIC8qIERpc3BsYXlMaXN0
RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGlzcGxh
eUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFDQjVGRTg4MjJERUJDOEIwMDk0NDBFMiAvKiBXSExTTEVycm9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdITFNMRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNC
NjlCMzIyMURFRDQwQjAwNkU4NDZBIC8qIFdITFNMUmVzb2x2YWJsZVR5cGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0hMU0xSZXNvbHZhYmxlVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkxQ0I2OUIzNDIxREVENjNBMDA2RTg0NkEgLyogV0hMU0xGbG9hdExpdGVyYWxUeXBlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdITFNMRmxvYXRMaXRlcmFsVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTc1MDUsNiArMTc1MDgsOCBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMEZF
NUZCQ0ExQzNERDUxRTAwMDdBMkNBIC8qIERpc3BsYXlMaXN0LmNwcCAqLywKIAkJCQkwRkU1RkJD
QjFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3QuaCAqLywKKwkJCQkxQ0FGNTZEODI1MzAx
NDU3MDAxN0I0NzIgLyogRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCAqLywKKwkJCQkx
Q0FGNTZERTI1MzAyNDVBMDAxN0I0NzIgLyogRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJD
b3JlVGV4dC5jcHAgKi8sCiAJCQkJNTVDMEEyOTUyM0ZFMkNFMDAwRjJDQjkzIC8qIERpc3BsYXlM
aXN0RHJhd2luZ0NvbnRleHQuY3BwICovLAogCQkJCTcyRUEwOUY5MjNGQ0NDNkEwMDg1MDRBNSAv
KiBEaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmggKi8sCiAJCQkJNzJFQTA5RjcyM0ZDQ0IzRDAw
ODUwNEE1IC8qIERpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaCAqLywKQEAgLTMxMjMxLDYgKzMxMjM2
LDcgQEAKIAkJCQk3RURBQUZDOTE5QTJDQ0RDMDAzNERGRDEgLyogRGlza0NhY2hlTW9uaXRvckNv
Y29hLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjc5MEY0MjI1MTdDRTZFMDA5QkEwMzQgLyogRGlz
cGxheUxheWVyQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFNUZCRDMxQzNERDUx
RTAwMDdBMkNBIC8qIERpc3BsYXlMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0FGNTZEQjI1
MzAxQUM4MDAxN0I0NzIgLyogRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTU1QUQwOTQwMjQwODk2NDAwMERFNEQyRiAvKiBEaXNwbGF5TGlzdERyYXdp
bmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1NUFEMDkzRTI0MDg5NjM1MDBERTREMkYg
LyogRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFNUZCRDUx
QzNERDUxRTAwMDdBMkNBIC8qIERpc3BsYXlMaXN0SXRlbXMuaCBpbiBIZWFkZXJzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2oveGNzaGFyZWRkYXRhL3hj
c2NoZW1lcy9XZWJDb3JlLnhjc2NoZW1lIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2oveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9XZWJDb3JlLnhjc2NoZW1lCmluZGV4IDE1ODJlMWEz
YzU2ZGY5ZTc4MjAwZDk5YTk5ODY4MDU5MWI0Y2RmMGIuLjA3ZTk0MTlmNWYyNmY3MWZlOGI0YWJk
N2FkM2NiZDllOWU2YTNhZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvV2ViQ29yZS54Y3NjaGVtZQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai94Y3NoYXJlZGRhdGEveGNzY2hlbWVzL1dlYkNv
cmUueGNzY2hlbWUKQEAgLTQwLDYgKzQwLDExIEBACiAgICAgICBkZWJ1Z0RvY3VtZW50VmVyc2lv
bmluZyA9ICJZRVMiCiAgICAgICBkZWJ1Z1NlcnZpY2VFeHRlbnNpb24gPSAiaW50ZXJuYWwiCiAg
ICAgICBhbGxvd0xvY2F0aW9uU2ltdWxhdGlvbiA9ICJZRVMiPgorICAgICAgPFBhdGhSdW5uYWJs
ZQorICAgICAgICAgcnVubmFibGVEZWJ1Z2dpbmdNb2RlID0gIjAiCisgICAgICAgICBCdW5kbGVJ
ZGVudGlmaWVyID0gIm9yZy53ZWJraXQuTWluaUJyb3dzZXIiCisgICAgICAgICBGaWxlUGF0aCA9
ICIvVXNlcnMvbW1heGZpZWxkL0J1aWxkL1Byb2R1Y3RzL0RlYnVnL01pbmlCcm93c2VyLmFwcCI+
CisgICAgICA8L1BhdGhSdW5uYWJsZT4KICAgIDwvTGF1bmNoQWN0aW9uPgogICAgPFByb2ZpbGVB
Y3Rpb24KICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJSZWxlYXNlIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJlZVR5cGUuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9GcmVlVHlwZS5jbWFrZQppbmRleCA3YzA0ZDkzYTViODVjNzMyNTgxYzk1YTA2NWJl
MDViNjM2N2M3YWU0Li5mMzhiNTRlMTdjOTMxNTY1MTU0Y2FiOTUzYTgxZTBlOTZmNTc0OWE0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GcmVlVHlwZS5jbWFrZQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GcmVlVHlwZS5jbWFrZQpAQCAtNSw2ICs1LDggQEAgbGlz
dChBUFBFTkQgV2ViQ29yZV9QUklWQVRFX0lOQ0xVREVfRElSRUNUT1JJRVMKICkKIAogbGlzdChB
UFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwCisKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q2FjaGVGcmVlVHlwZS5jcHAKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9mcmVldHlwZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udFBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xYzgwZTMzMDA4NGZkYWU4YjZlNzFiOGRkODM4OTkzOGFmM2IxMTljCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmgKQEAgLTAsMCArMSw4NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiVGV4dEZsYWdzLmgiCisKKyNpZiBVU0UoQ09SRV9URVhUKQorI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dC5oIgorCisjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NvcmVHcmFwaGlj
cy5oPgorI2luY2x1ZGUgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CisjZW5kaWYKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGbG9hdFBvaW50OworY2xhc3MgRm9udDsKK2Ns
YXNzIEdseXBoQnVmZmVyOworY2xhc3MgR3JhcGhpY3NDb250ZXh0OworCituYW1lc3BhY2UgRGlz
cGxheUxpc3QgeworCitjbGFzcyBSZWNvcmRlcjsKKworY2xhc3MgRHJhd0dseXBoc1JlY29yZGVy
IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBEcmF3R2x5cGhzUmVjb3JkZXIoUmVjb3JkZXImKTsK
KworICAgIHZvaWQgZHJhd0dseXBocyhjb25zdCBGb250JiwgY29uc3QgR2x5cGhCdWZmZXImLCB1
bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmIGFuY2hv
clBvaW50LCBGb250U21vb3RoaW5nTW9kZSk7CisKKyNpZiBVU0UoQ09SRV9URVhUKQorICAgIHZv
aWQgcmVjb3JkQmVnaW5MYXllcihDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiwgQ0dS
ZWN0KTsKKyAgICB2b2lkIHJlY29yZEVuZExheWVyKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0
YXRlUmVmKTsKKyAgICB2b2lkIHJlY29yZERyYXdHbHlwaHMoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwg
Q0dHU3RhdGVSZWYsIGNvbnN0IENHQWZmaW5lVHJhbnNmb3JtKiwgY29uc3QgQ0dHbHlwaFtdLCBj
b25zdCBDR1BvaW50IHBvc2l0aW9uc1tdLCBzaXplX3QgY291bnQpOworICAgIHZvaWQgcmVjb3Jk
RHJhd0ltYWdlKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmLCBDR1JlY3QsIENHSW1h
Z2VSZWYpOworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgR3JhcGhpY3NDb250ZXh0IGNyZWF0ZUlu
dGVybmFsQ29udGV4dCgpOworICAgIHZvaWQgcHJlcGFyZUludGVybmFsQ29udGV4dChjb25zdCBG
b250JiwgRm9udFNtb290aGluZ01vZGUpOworICAgIHZvaWQgY29uY2x1ZGVJbnRlcm5hbENvbnRl
eHQoKTsKKyAgICB2b2lkIHVwZGF0ZUNUTShBZmZpbmVUcmFuc2Zvcm0pOworICAgIHZvaWQgdXBk
YXRlRmlsbENvbG9yKGNvbnN0IENvbG9yJiwgR3JhZGllbnQqID0gbnVsbHB0ciwgUGF0dGVybiog
PSBudWxscHRyKTsKKworICAgIFJlY29yZGVyJiBtX293bmVyOworICAgIEdyYXBoaWNzQ29udGV4
dCBtX2ludGVybmFsQ29udGV4dDsKKyAgICBjb25zdCBGb250KiBtX2N1cnJlbnRGb250IHsgbnVs
bHB0ciB9OworICAgIENvbG9yIG1fY3VycmVudENvbG9yOworCisgICAgQ29sb3IgbV9vcmlnaW5h
bEZpbGxDb2xvcjsKKyAgICBSZWZQdHI8R3JhZGllbnQ+IG1fb3JpZ2luYWxGaWxsR3JhZGllbnQ7
CisgICAgUmVmUHRyPFBhdHRlcm4+IG1fb3JpZ2luYWxGaWxsUGF0dGVybjsKKworICAgIEFmZmlu
ZVRyYW5zZm9ybSBtX29yaWdpbmFsQ1RNOworICAgIEFmZmluZVRyYW5zZm9ybSBtX2N1cnJlbnRD
VE07CisKKyAgICBGb250U21vb3RoaW5nTW9kZSBtX3Ntb290aGluZ01vZGUgeyBGb250U21vb3Ro
aW5nTW9kZTo6QXV0b1Ntb290aGluZyB9OworfTsKKworfQorCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3
R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYmQyODJmZWVjZWEwYzQ4MDExYzJhYzBlMmNhZDE3ZmEzNWI2ZDIyMAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcApAQCAtMCww
ICsxLDIxNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNv
cmRlci5oIgorCisjaW5jbHVkZSAiQml0bWFwSW1hZ2UuaCIKKyNpbmNsdWRlICJDb2xvci5oIgor
I2luY2x1ZGUgIkRpc3BsYXlMaXN0SXRlbXMuaCIKKyNpbmNsdWRlICJEaXNwbGF5TGlzdFJlY29y
ZGVyLmgiCisjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgorI2luY2x1ZGUgIkZvbnQuaCIKKyNpbmNs
dWRlICJGb250Q2FzY2FkZS5oIgorI2luY2x1ZGUgIkdseXBoQnVmZmVyLmgiCisKKyNpbmNsdWRl
IDxDb3JlVGV4dC9Db3JlVGV4dC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworI2lmIFBM
QVRGT1JNKFdJTikKKyNpbmNsdWRlIDxwYWwvc3BpL3dpbi9Db3JlVGV4dFNQSVdpbi5oPgorI2Vu
ZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKKwor
c3RhdGljIENHQ29udGV4dERlbGVnYXRlUmVmIGJlZ2luTGF5ZXIoQ0dDb250ZXh0RGVsZWdhdGVS
ZWYgZGVsZWdhdGUsIENHUmVuZGVyaW5nU3RhdGVSZWYgcnN0YXRlLCBDR0dTdGF0ZVJlZiBnc3Rh
dGUsIENHUmVjdCByZWN0LCBDRkRpY3Rpb25hcnlSZWYsIENHQ29udGV4dERlbGVnYXRlUmVmKQor
eworICAgIERyYXdHbHlwaHNSZWNvcmRlciYgcmVjb3JkZXIgPSAqc3RhdGljX2Nhc3Q8RHJhd0ds
eXBoc1JlY29yZGVyKj4oQ0dDb250ZXh0RGVsZWdhdGVHZXRJbmZvKGRlbGVnYXRlKSk7CisgICAg
cmVjb3JkZXIucmVjb3JkQmVnaW5MYXllcihyc3RhdGUsIGdzdGF0ZSwgcmVjdCk7CisgICAgcmV0
dXJuIGRlbGVnYXRlOworfQorCitzdGF0aWMgQ0dDb250ZXh0RGVsZWdhdGVSZWYgZW5kTGF5ZXIo
Q0dDb250ZXh0RGVsZWdhdGVSZWYgZGVsZWdhdGUsIENHUmVuZGVyaW5nU3RhdGVSZWYgcnN0YXRl
LCBDR0dTdGF0ZVJlZiBnc3RhdGUpCit7CisgICAgRHJhd0dseXBoc1JlY29yZGVyJiByZWNvcmRl
ciA9ICpzdGF0aWNfY2FzdDxEcmF3R2x5cGhzUmVjb3JkZXIqPihDR0NvbnRleHREZWxlZ2F0ZUdl
dEluZm8oZGVsZWdhdGUpKTsKKyAgICByZWNvcmRlci5yZWNvcmRFbmRMYXllcihyc3RhdGUsIGdz
dGF0ZSk7CisgICAgcmV0dXJuIGRlbGVnYXRlOworfQorCitzdGF0aWMgQ0dFcnJvciBkcmF3R2x5
cGhzKENHQ29udGV4dERlbGVnYXRlUmVmIGRlbGVnYXRlLCBDR1JlbmRlcmluZ1N0YXRlUmVmIHJz
dGF0ZSwgQ0dHU3RhdGVSZWYgZ3N0YXRlLCBjb25zdCBDR0FmZmluZVRyYW5zZm9ybSogdG0sIGNv
bnN0IENHR2x5cGggZ2x5cGhzW10sIGNvbnN0IENHUG9pbnQgcG9zaXRpb25zW10sIHNpemVfdCBj
b3VudCkKK3sKKyAgICBpZiAoQ0dHU3RhdGVHZXRBbHBoYShnc3RhdGUpID4gMCkgeworICAgICAg
ICBEcmF3R2x5cGhzUmVjb3JkZXImIHJlY29yZGVyID0gKnN0YXRpY19jYXN0PERyYXdHbHlwaHNS
ZWNvcmRlcio+KENHQ29udGV4dERlbGVnYXRlR2V0SW5mbyhkZWxlZ2F0ZSkpOworICAgICAgICBy
ZWNvcmRlci5yZWNvcmREcmF3R2x5cGhzKHJzdGF0ZSwgZ3N0YXRlLCB0bSwgZ2x5cGhzLCBwb3Np
dGlvbnMsIGNvdW50KTsKKyAgICB9CisgICAgcmV0dXJuIGtDR0Vycm9yU3VjY2VzczsKK30KKwor
c3RhdGljIENHRXJyb3IgZHJhd0ltYWdlKENHQ29udGV4dERlbGVnYXRlUmVmIGRlbGVnYXRlLCBD
R1JlbmRlcmluZ1N0YXRlUmVmIHJzdGF0ZSwgQ0dHU3RhdGVSZWYgZ3N0YXRlLCBDR1JlY3QgcmVj
dCwgQ0dJbWFnZVJlZiBpbWFnZSkKK3sKKyAgICBEcmF3R2x5cGhzUmVjb3JkZXImIHJlY29yZGVy
ID0gKnN0YXRpY19jYXN0PERyYXdHbHlwaHNSZWNvcmRlcio+KENHQ29udGV4dERlbGVnYXRlR2V0
SW5mbyhkZWxlZ2F0ZSkpOworICAgIHJlY29yZGVyLnJlY29yZERyYXdJbWFnZShyc3RhdGUsIGdz
dGF0ZSwgcmVjdCwgaW1hZ2UpOworICAgIHJldHVybiBrQ0dFcnJvclN1Y2Nlc3M7Cit9CisKK0dy
YXBoaWNzQ29udGV4dCBEcmF3R2x5cGhzUmVjb3JkZXI6OmNyZWF0ZUludGVybmFsQ29udGV4dCgp
Cit7CisgICAgYXV0byBjb250ZXh0RGVsZWdhdGUgPSBhZG9wdENGKENHQ29udGV4dERlbGVnYXRl
Q3JlYXRlKHRoaXMpKTsKKyAgICBDR0NvbnRleHREZWxlZ2F0ZVNldENhbGxiYWNrKGNvbnRleHRE
ZWxlZ2F0ZS5nZXQoKSwgZGVCZWdpbkxheWVyLCByZWludGVycHJldF9jYXN0PENHQ29udGV4dERl
bGVnYXRlQ2FsbGJhY2s+KCZiZWdpbkxheWVyKSk7CisgICAgQ0dDb250ZXh0RGVsZWdhdGVTZXRD
YWxsYmFjayhjb250ZXh0RGVsZWdhdGUuZ2V0KCksIGRlRW5kTGF5ZXIsIHJlaW50ZXJwcmV0X2Nh
c3Q8Q0dDb250ZXh0RGVsZWdhdGVDYWxsYmFjaz4oJmVuZExheWVyKSk7CisgICAgQ0dDb250ZXh0
RGVsZWdhdGVTZXRDYWxsYmFjayhjb250ZXh0RGVsZWdhdGUuZ2V0KCksIGRlRHJhd0dseXBocywg
cmVpbnRlcnByZXRfY2FzdDxDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrPigmV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OmRyYXdHbHlwaHMpKTsKKyAgICBDR0NvbnRleHREZWxlZ2F0ZVNldENhbGxiYWNr
KGNvbnRleHREZWxlZ2F0ZS5nZXQoKSwgZGVEcmF3SW1hZ2UsIHJlaW50ZXJwcmV0X2Nhc3Q8Q0dD
b250ZXh0RGVsZWdhdGVDYWxsYmFjaz4oJmRyYXdJbWFnZSkpOworICAgIGF1dG8gY29udGV4dCA9
IGFkb3B0Q0YoQ0dDb250ZXh0Q3JlYXRlV2l0aERlbGVnYXRlKGNvbnRleHREZWxlZ2F0ZS5nZXQo
KSwga0NHQ29udGV4dFR5cGVVbmtub3duLCBudWxscHRyLCBudWxscHRyKSk7CisgICAgcmV0dXJu
IEdyYXBoaWNzQ29udGV4dChjb250ZXh0LmdldCgpKTsKK30KKworRHJhd0dseXBoc1JlY29yZGVy
OjpEcmF3R2x5cGhzUmVjb3JkZXIoUmVjb3JkZXImIG93bmVyKQorICAgIDogbV9vd25lcihvd25l
cikKKyAgICAsIG1faW50ZXJuYWxDb250ZXh0KGNyZWF0ZUludGVybmFsQ29udGV4dCgpKQorewor
fQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6cHJlcGFyZUludGVybmFsQ29udGV4dChjb25z
dCBGb250JiBmb250LCBGb250U21vb3RoaW5nTW9kZSBzbW9vdGhpbmdNb2RlKQoreworICAgIGF1
dG8mIHN0YXRlID0gbV9vd25lci5jdXJyZW50U3RhdGUoKS5zdGF0ZUNoYW5nZS5tX3N0YXRlOwor
ICAgIG1fb3JpZ2luYWxGaWxsQ29sb3IgPSBzdGF0ZS5maWxsQ29sb3I7CisgICAgbV9vcmlnaW5h
bEZpbGxHcmFkaWVudCA9IHN0YXRlLmZpbGxHcmFkaWVudDsKKyAgICBtX29yaWdpbmFsRmlsbFBh
dHRlcm4gPSBzdGF0ZS5maWxsUGF0dGVybjsKKyAgICBtX2N1cnJlbnRDb2xvciA9IG1fb3JpZ2lu
YWxGaWxsQ29sb3I7CisKKyAgICBpZiAobV9vcmlnaW5hbEZpbGxDb2xvci5pc1ZhbGlkKCkpCisg
ICAgICAgIG1faW50ZXJuYWxDb250ZXh0LnNldEZpbGxDb2xvcihtX29yaWdpbmFsRmlsbENvbG9y
KTsKKyAgICBlbHNlIGlmIChtX29yaWdpbmFsRmlsbEdyYWRpZW50KQorICAgICAgICBtX2ludGVy
bmFsQ29udGV4dC5zZXRGaWxsR3JhZGllbnQoKm1fb3JpZ2luYWxGaWxsR3JhZGllbnQpOworICAg
IGVsc2UgeworICAgICAgICBBU1NFUlQobV9vcmlnaW5hbEZpbGxQYXR0ZXJuKTsKKyAgICAgICAg
aWYgKG1fb3JpZ2luYWxGaWxsUGF0dGVybikKKyAgICAgICAgICAgIG1faW50ZXJuYWxDb250ZXh0
LnNldEZpbGxQYXR0ZXJuKCptX29yaWdpbmFsRmlsbFBhdHRlcm4pOworICAgIH0KKworICAgIG1f
aW50ZXJuYWxDb250ZXh0LnNldFNoYWRvdyhzdGF0ZS5zaGFkb3dPZmZzZXQsIHN0YXRlLnNoYWRv
d0JsdXIsIHN0YXRlLnNoYWRvd0NvbG9yKTsKKworICAgIG1fb3JpZ2luYWxDVE0gPSBtX293bmVy
LmN1cnJlbnRTdGF0ZSgpLmN0bTsgLy8gRklYTUU6IERlYWwgd2l0aCBkZXZpY2Ugc2NhbGUuCisg
ICAgbV9jdXJyZW50Q1RNID0gbV9vcmlnaW5hbENUTTsKKyAgICBtX2ludGVybmFsQ29udGV4dC5z
ZXRDVE0obV9vcmlnaW5hbENUTSk7CisKKyAgICBtX2N1cnJlbnRGb250ID0gJmZvbnQ7CisgICAg
bV9zbW9vdGhpbmdNb2RlID0gc21vb3RoaW5nTW9kZTsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVj
b3JkZXI6OmNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KCkKK3sKKyAgICB1cGRhdGVGaWxsQ29sb3Io
bV9vcmlnaW5hbEZpbGxDb2xvciwgbV9vcmlnaW5hbEZpbGxHcmFkaWVudC5nZXQoKSwgbV9vcmln
aW5hbEZpbGxQYXR0ZXJuLmdldCgpKTsKKyAgICB1cGRhdGVDVE0obV9vcmlnaW5hbENUTSk7Cit9
CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVDVE0oQWZmaW5lVHJhbnNmb3JtIGN0
bSkKK3sKKyAgICBpZiAoY3RtID09IG1fY3VycmVudENUTSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9vd25lci5zZXRDVE0oY3RtKTsKKyAgICBtX2N1cnJlbnRDVE0gPSBjdG07Cit9CisKK3Zv
aWQgRHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVGaWxsQ29sb3IoY29uc3QgQ29sb3ImIG5ld0Nv
bG9yLCBHcmFkaWVudCogbmV3R3JhZGllbnQsIFBhdHRlcm4qIG5ld1BhdHRlcm4pCit7CisgICAg
aWYgKG5ld0NvbG9yID09IG1fY3VycmVudENvbG9yKQorICAgICAgICByZXR1cm47CisKKyAgICBH
cmFwaGljc0NvbnRleHRTdGF0ZSBuZXdTdGF0ZTsKKyAgICBuZXdTdGF0ZS5maWxsQ29sb3IgPSBu
ZXdDb2xvcjsKKyAgICBpZiAobmV3R3JhZGllbnQpCisgICAgICAgIG5ld1N0YXRlLmZpbGxHcmFk
aWVudCA9IG5ld0dyYWRpZW50OworICAgIGlmIChuZXdQYXR0ZXJuKQorICAgICAgICBuZXdTdGF0
ZS5maWxsUGF0dGVybiA9IG5ld1BhdHRlcm47CisgICAgbV9vd25lci51cGRhdGVTdGF0ZShuZXdT
dGF0ZSwgeyBHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbENvbG9yQ2hhbmdlIH0pOworICAgIG1f
Y3VycmVudENvbG9yID0gbmV3Q29sb3I7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpy
ZWNvcmRCZWdpbkxheWVyKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmIGdzdGF0ZSwg
Q0dSZWN0KQoreworICAgIHVwZGF0ZUNUTSgqQ0dHU3RhdGVHZXRDVE0oZ3N0YXRlKSk7CisgICAg
YXV0byBhbHBoYSA9IENHR1N0YXRlR2V0QWxwaGEoZ3N0YXRlKTsKKyAgICBtX293bmVyLmJlZ2lu
VHJhbnNwYXJlbmN5TGF5ZXIoYWxwaGEpOworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6
cmVjb3JkRW5kTGF5ZXIoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYgZ3N0YXRlKQor
eworICAgIHVwZGF0ZUNUTSgqQ0dHU3RhdGVHZXRDVE0oZ3N0YXRlKSk7CisgICAgbV9vd25lci5l
bmRUcmFuc3BhcmVuY3lMYXllcigpOworfQorCitzdGF0aWMgVmVjdG9yPENHU2l6ZT4gY29tcHV0
ZUFkdmFuY2VzRnJvbVBvc2l0aW9ucyhjb25zdCBDR1BvaW50IHBvc2l0aW9uc1tdLCBzaXplX3Qg
Y291bnQpCit7CisgICAgVmVjdG9yPENHU2l6ZT4gcmVzdWx0OworICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgY291bnQgLSAxOyArK2kpIHsKKyAgICAgICAgYXV0byBuZXh0UG9zaXRpb24gPSBw
b3NpdGlvbnNbaSArIDFdOworICAgICAgICBhdXRvIGN1cnJlbnRQb3NpdGlvbiA9IHBvc2l0aW9u
c1tpXTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChDR1NpemVNYWtlKG5leHRQb3NpdGlvbi54IC0g
Y3VycmVudFBvc2l0aW9uLngsIG5leHRQb3NpdGlvbi55IC0gY3VycmVudFBvc2l0aW9uLnkpKTsK
KyAgICB9CisgICAgcmVzdWx0LmNvbnN0cnVjdEFuZEFwcGVuZChDR1NpemVNYWtlKDAsIDApKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6cmVjb3Jk
RHJhd0dseXBocyhDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiBnc3RhdGUsIGNvbnN0
IENHQWZmaW5lVHJhbnNmb3JtKiwgY29uc3QgQ0dHbHlwaCBnbHlwaHNbXSwgY29uc3QgQ0dQb2lu
dCBwb3NpdGlvbnNbXSwgc2l6ZV90IGNvdW50KQoreworICAgIENHRm9udFJlZiB1c2VkRm9udCA9
IENHR1N0YXRlR2V0Rm9udChnc3RhdGUpOworICAgIGlmICghY291bnQpCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmICh1c2VkRm9udCAhPSBhZG9wdENGKENURm9udENvcHlHcmFwaGljc0ZvbnQo
bV9jdXJyZW50Rm9udC0+cGxhdGZvcm1EYXRhKCkuY3RGb250KCksIG51bGxwdHIpKS5nZXQoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgdXBkYXRlQ1RNKCpDR0dTdGF0ZUdldENUTShnc3RhdGUp
KTsKKyAgICB1cGRhdGVGaWxsQ29sb3IoQ0dHU3RhdGVHZXRGaWxsQ29sb3IoZ3N0YXRlKSk7IC8v
IEZJWE1FOiBXaGF0IGhhcHBlbnMgaWYgd2UndmUgZ290IGEgZ3JhZGllbnQgb3IgcGF0dGVybiBv
ciBtYXNrPworCisgICAgLy8gVGVzdCBjYXNlOiB2ZXJ0aWNhbCB0ZXh0LCByb3RhdGVkIHRleHQK
KyAgICBGbG9hdFBvaW50IGxvY2FsQW5jaG9yID0gQ0dDb250ZXh0R2V0VGV4dFBvc2l0aW9uKG1f
aW50ZXJuYWxDb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpKTsKKyAgICBsb2NhbEFuY2hvci5tb3Zl
KEZsb2F0U2l6ZShwb3NpdGlvbnNbMF0ueCwgcG9zaXRpb25zWzBdLnkpKTsgLy8gRklYTUU6IElz
IHRoaXMgcmlnaHQ/CisgICAgbV9vd25lci5hcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KERyYXdH
bHlwaHM6OmNyZWF0ZSgqbV9jdXJyZW50Rm9udCwgZ2x5cGhzLCBjb21wdXRlQWR2YW5jZXNGcm9t
UG9zaXRpb25zKHBvc2l0aW9ucywgY291bnQpLmRhdGEoKSwgY291bnQsIGxvY2FsQW5jaG9yLCBt
X3Ntb290aGluZ01vZGUpKTsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZERy
YXdJbWFnZShDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiBnc3RhdGUsIENHUmVjdCBy
ZWN0LCBDR0ltYWdlUmVmIGNnSW1hZ2UpCit7CisgICAgLy8gVGVzdCBjYXNlOiBFWElGIHJvdGF0
ZWQgaW1hZ2VzLgorICAgIC8vIEZJWE1FOiBXaWxsIENvcmVUZXh0IGV2ZXIgc2V0IGFueSBvZiB0
aGUgc3R1ZmYgb24gdGhlIGNvbnRleHQgdGhhdCB3ZSBuZWVkIHRvIGFwcGx5IGhlcmU/IFNlZSBv
cHRpb25zIGluc2lkZSBJbWFnZVBhaW50aW5nT3B0aW9ucy4KKyAgICB1cGRhdGVDVE0oKkNHR1N0
YXRlR2V0Q1RNKGdzdGF0ZSkpOworCisgICAgYXV0byBpbWFnZSA9IEJpdG1hcEltYWdlOjpjcmVh
dGUoY2dJbWFnZSk7CisgICAgbV9vd25lci5hcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KERyYXdJ
bWFnZTo6Y3JlYXRlKGltYWdlLCByZWN0LCB7eyB9LCBpbWFnZS0+c2l6ZSgpfSwgeyB9KSk7Cit9
CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpkcmF3R2x5cGhzKGNvbnN0IEZvbnQmIGZvbnQs
IGNvbnN0IEdseXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQg
bnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBzdGFydFBvaW50LCBGb250U21vb3RoaW5nTW9k
ZSBzbW9vdGhpbmdNb2RlKQoreworICAgIHByZXBhcmVJbnRlcm5hbENvbnRleHQoZm9udCwgc21v
b3RoaW5nTW9kZSk7CisgICAgRm9udENhc2NhZGU6OmRyYXdHbHlwaHMobV9pbnRlcm5hbENvbnRl
eHQsIGZvbnQsIGdseXBoQnVmZmVyLCBmcm9tLCBudW1HbHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290
aGluZ01vZGUpOworICAgIGNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KCk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIERpc3BsYXlMaXN0CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dERyYXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckhhcmZC
dXp6LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yM2FjMzI0YjdiMDBhOWUxNmE1NmFkNjcwY2UwNGNmYTc3ZmM5
ZmE4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwCkBA
IC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGlzcGxheUxpc3REcmF3R2x5cGhz
UmVjb3JkZXIuaCIKKworI2luY2x1ZGUgIkRpc3BsYXlMaXN0SXRlbXMuaCIKKyNpbmNsdWRlICJE
aXNwbGF5TGlzdFJlY29yZGVyLmgiCisjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgorI2luY2x1ZGUg
IkZvbnQuaCIKKyNpbmNsdWRlICJHbHlwaEJ1ZmZlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK25hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CisKK0RyYXdHbHlwaHNSZWNvcmRlcjo6RHJhd0ds
eXBoc1JlY29yZGVyKFJlY29yZGVyJiBvd25lcikKKyAgICA6IG1fb3duZXIob3duZXIpCit7Cit9
CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpkcmF3R2x5cGhzKGNvbnN0IEZvbnQmIGZvbnQs
IGNvbnN0IEdseXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQg
bnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBzdGFydFBvaW50LCBGb250U21vb3RoaW5nTW9k
ZSBzbW9vdGhpbmdNb2RlKQoreworICAgIG1fb3duZXIuYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVu
dChEcmF3R2x5cGhzOjpjcmVhdGUoZm9udCwgZ2x5cGhCdWZmZXIuZ2x5cGhzKGZyb20pLCBnbHlw
aEJ1ZmZlci5hZHZhbmNlcyhmcm9tKSwgbnVtR2x5cGhzLCBzdGFydFBvaW50LCBzbW9vdGhpbmdN
b2RlKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIERpc3BsYXlMaXN0CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAppbmRleCAx
YzU0YWU4MjI5Mzk0MjBkZDQwYjdiNzBiYTdlMzlkYmJhNjVmZTliLi40YTg1NmNiYjljZGJjNGRi
OTE4MjI1OGZmMWJmNDllZjA0NmEzYjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
UmVjb3JkZXIuY3BwCkBAIC00MSw2ICs0MSw3IEBAIFJlY29yZGVyOjpSZWNvcmRlcihHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQsIERpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgY29uc3QgR3JhCiAg
ICAgOiBHcmFwaGljc0NvbnRleHRJbXBsKGNvbnRleHQsIGluaXRpYWxDbGlwLCBBZmZpbmVUcmFu
c2Zvcm0oKSkKICAgICAsIG1fZGlzcGxheUxpc3QoZGlzcGxheUxpc3QpCiAgICAgLCBtX29ic2Vy
dmVyKG9ic2VydmVyKQorICAgICwgbV9kcmF3R2x5cGhzUmVjb3JkZXIoKnRoaXMpCiB7CiAgICAg
TE9HX1dJVEhfU1RSRUFNKERpc3BsYXlMaXN0cywgc3RyZWFtIDw8ICJcblJlY29yZGluZyB3aXRo
IGNsaXAgIiA8PCBpbml0aWFsQ2xpcCk7CiAgICAgbV9zdGF0ZVN0YWNrLmFwcGVuZCh7IHN0YXRl
LCBpbml0aWFsQ1RNLCBpbml0aWFsQ2xpcCB9KTsKQEAgLTExMSw3ICsxMTIsNyBAQCB2b2lkIFJl
Y29yZGVyOjpzZXRNaXRlckxpbWl0KGZsb2F0IG1pdGVyTGltaXQpCiAKIHZvaWQgUmVjb3JkZXI6
OmRyYXdHbHlwaHMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZmZXImIGdseXBoQnVm
ZmVyLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQm
IHN0YXJ0UG9pbnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCiB7Ci0gICAgYXBw
ZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChEcmF3R2x5cGhzOjpjcmVhdGUoZm9udCwgZ2x5cGhCdWZm
ZXIuZ2x5cGhzKGZyb20pLCBnbHlwaEJ1ZmZlci5hZHZhbmNlcyhmcm9tKSwgbnVtR2x5cGhzLCBz
dGFydFBvaW50LCBzbW9vdGhpbmdNb2RlKSk7CisgICAgbV9kcmF3R2x5cGhzUmVjb3JkZXIuZHJh
d0dseXBocyhmb250LCBnbHlwaEJ1ZmZlciwgZnJvbSwgbnVtR2x5cGhzLCBzdGFydFBvaW50LCBz
bW9vdGhpbmdNb2RlKTsKIH0KIAogSW1hZ2VEcmF3UmVzdWx0IFJlY29yZGVyOjpkcmF3SW1hZ2Uo
SW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJl
Y3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIGltYWdlUGFpbnRpbmdPcHRp
b25zKQpAQCAtMzg2LDEzICszODcsNiBAQCB2b2lkIFJlY29yZGVyOjphcHBlbmRJdGVtQW5kVXBk
YXRlRXh0ZW50KFJlZjxEcmF3aW5nSXRlbT4mJiBpdGVtKQogICAgIHVwZGF0ZUl0ZW1FeHRlbnQo
bmV3SXRlbSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIEl0ZW1UeXBlPgotSXRlbVR5cGUmIFJl
Y29yZGVyOjphcHBlbmRJdGVtKFJlZjxJdGVtVHlwZT4mJiBpdGVtKQotewotICAgIHdpbGxBcHBl
bmRJdGVtKGl0ZW0uZ2V0KCkpOwotICAgIHJldHVybiBkb3duY2FzdDxJdGVtVHlwZT4obV9kaXNw
bGF5TGlzdC5hcHBlbmQoV1RGTW92ZShpdGVtKSkpOwotfQotCiB2b2lkIFJlY29yZGVyOjp1cGRh
dGVJdGVtRXh0ZW50KERyYXdpbmdJdGVtJiBpdGVtKSBjb25zdAogewogICAgIGlmIChPcHRpb25h
bDxGbG9hdFJlY3Q+IHJlY3QgPSBpdGVtLmxvY2FsQm91bmRzKGdyYXBoaWNzQ29udGV4dCgpKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlY29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCmluZGV4IDllZTFkMzkzOGYyMzJm
M2YxOGQ5NzhhZjcxODcwMWQ4YmU0NjMwNzIuLjhlNzU5NjRlMjQ4YzMzYWRmNjZkN2M2MmFlZjA4
YzUwMGUxMWMzMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaApAQCAt
MjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJEaXNwbGF5TGlzdC5oIgor
I2luY2x1ZGUgIkRpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmgiCiAjaW5jbHVkZSAiR3Jh
cGhpY3NDb250ZXh0SW1wbC5oIgogI2luY2x1ZGUgIkltYWdlLmgiIC8vIEZvciBJbWFnZTo6VGls
ZVJ1bGUuCiAjaW5jbHVkZSAiVGV4dEZsYWdzLmgiCkBAIC02MSw4ICs2Miw2IEBAIHB1YmxpYzoK
IAogICAgIHNpemVfdCBpdGVtQ291bnQoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlMaXN0Lml0
ZW1Db3VudCgpOyB9CiAKLSAgICB2b2lkIGFwcGVuZEl0ZW1BbmRVcGRhdGVFeHRlbnQoUmVmPERy
YXdpbmdJdGVtPiYmKTsKLQogICAgIGNsYXNzIE9ic2VydmVyIHsKICAgICBwdWJsaWM6CiAgICAg
ICAgIHZpcnR1YWwgfk9ic2VydmVyKCkgeyB9CkBAIC03MCw2ICs2OSw3IEBAIHB1YmxpYzoKICAg
ICB9OwogCiBwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBEcmF3R2x5cGhzUmVjb3JkZXI7CiAg
ICAgYm9vbCBoYXNQbGF0Zm9ybUNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxz
ZTsgfQogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0KiBwbGF0Zm9ybUNvbnRleHQoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9CiAKQEAgLTE0OSw2ICsxNDksNyBAQCBwcml2
YXRlOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEl0ZW1UeXBlPgogICAgIEl0ZW1UeXBlJiBhcHBl
bmRJdGVtKFJlZjxJdGVtVHlwZT4mJik7CiAgICAgdm9pZCB3aWxsQXBwZW5kSXRlbShjb25zdCBJ
dGVtJik7CisgICAgdm9pZCBhcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KFJlZjxEcmF3aW5nSXRl
bT4mJik7CiAKICAgICBGbG9hdFJlY3QgZXh0ZW50RnJvbUxvY2FsQm91bmRzKGNvbnN0IEZsb2F0
UmVjdCYpIGNvbnN0OwogICAgIHZvaWQgdXBkYXRlSXRlbUV4dGVudChEcmF3aW5nSXRlbSYpIGNv
bnN0OwpAQCAtMTkxLDggKzE5MiwxNyBAQCBwcml2YXRlOgogICAgIE9ic2VydmVyKiBtX29ic2Vy
dmVyOwogCiAgICAgVmVjdG9yPENvbnRleHRTdGF0ZSwgMzI+IG1fc3RhdGVTdGFjazsKKworICAg
IERyYXdHbHlwaHNSZWNvcmRlciBtX2RyYXdHbHlwaHNSZWNvcmRlcjsKIH07CiAKK3RlbXBsYXRl
PHR5cGVuYW1lIEl0ZW1UeXBlPgorSXRlbVR5cGUmIFJlY29yZGVyOjphcHBlbmRJdGVtKFJlZjxJ
dGVtVHlwZT4mJiBpdGVtKQoreworICAgIHdpbGxBcHBlbmRJdGVtKGl0ZW0uZ2V0KCkpOworICAg
IHJldHVybiBkb3duY2FzdDxJdGVtVHlwZT4obV9kaXNwbGF5TGlzdC5hcHBlbmQoV1RGTW92ZShp
dGVtKSkpOworfQorCiB9CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411291</attachid>
            <date>2020-10-13 18:53:20 -0700</date>
            <delta_ts>2020-10-14 00:35:48 -0700</delta_ts>
            <desc>Almost ready</desc>
            <filename>bug-217506-20201013185319.patch</filename>
            <type>text/plain</type>
            <size>37223</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzIwZGU3Njg3ZTU0NTk5
YjM1ZWJjMmM2MDg5MWEzNTRlMjhmNGM3MC4uYzFmNjRlMTM4MDQ4YzJmNGNlYTNiNTJhMGI5NWY4
ZjkyZjUwODY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDIwLTEwLTA5ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBb
R1BVIFByb2Nlc3NdIFBlcmZvcm0gaW1hZ2UgZGVjb2Rpbmcgb2YgY29sb3IgZm9udHMgaW4gdGhl
IFdlYiBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTc1MDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY5NzY4MTg2PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09Q
UyEpLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2Eu
dHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9GcmVlVHlwZS5jbWFrZToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0ds
eXBoc1JlY29yZGVyQ29yZVRleHQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpkcmF3R2x5cGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpkcmF3
SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRl
cjo6Y3JlYXRlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpEcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdHbHlwaHNSZWNvcmRlcik6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpwcmVwYXJlSW50ZXJuYWxDb250
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6
OmNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
Ojpjb21wdXRlQWR2YW5jZXNGcm9tUG9zaXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZERyYXdHbHlwaHMpOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6cmVjb3JkRHJhd0ltYWdl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OmRy
YXdHbHlwaHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpEcmF3R2x5cGhzUmVjb3Jk
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6
ZHJhd0dseXBocyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdH
bHlwaHM6OkRyYXdHbHlwaHMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdH
bHlwaHM6OmNvbXB1dGVCb3VuZHMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRy
YXdHbHlwaHM6OmxvY2FsQm91bmRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtcy5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRy
YXdHbHlwaHM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ds
eXBoczo6bG9jYWxBbmNob3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdHbHlwaHM6OmFuY2hvclBvaW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEcmF3R2x5cGhzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRyYXdHbHlwaHM6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6RHJhd0dseXBoczo6YmxvY2tMb2NhdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoczo6c2V0QmxvY2tMb2NhdGlvbik6IERl
bGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVy
OjpSZWNvcmRlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmRy
YXdHbHlwaHMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpkcmF3
SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpkcmF3VGls
ZWRJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmRyYXdO
YXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmRy
YXdQYXR0ZXJuKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6YmVn
aW5UcmFuc3BhcmVuY3lMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVj
b3JkZXI6OmRyYXdSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRl
cjo6ZHJhd0xpbmUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpk
cmF3TGluZXNGb3JUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRl
cjo6ZHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6UmVjb3JkZXI6OmRyYXdFbGxpcHNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpSZWNvcmRlcjo6ZHJhd1BhdGgpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlY29yZGVyOjpkcmF3Rm9jdXNSaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpSZWNvcmRlcjo6ZmlsbFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJl
Y29yZGVyOjpmaWxsUm91bmRlZFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlY29yZGVyOjpmaWxsUmVjdFdpdGhSb3VuZGVkSG9sZSk6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6UmVjb3JkZXI6OmZpbGxQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpSZWNvcmRlcjo6ZmlsbEVsbGlwc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OlJlY29yZGVyOjpzdHJva2VSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpSZWNvcmRlcjo6c3Ryb2tlUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6UmVjb3JkZXI6OnN0cm9rZUVsbGlwc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlJlY29yZGVyOjpjbGVhclJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlY29yZGVyOjphcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oOgorCiAyMDIwLTEw
LTEzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU2ltcGxpZnkg
QXVkaW9Ob2RlOjpjaGVja051bWJlck9mQ2hhbm5lbHNGb3JJbnB1dCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwppbmRleCBjNGQzMzQyOWRiZTZiMGMyMGRhNzkyMzFjNmIzM2VmYzhiZDU3OTYyLi42NjI5ZjM5
OGI2MDg1MzgzOGRlM2FmN2NmZDlkOTFhOTM5NTQzZWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMyBAQAorMjAyMC0xMC0wOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRA
YXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gW0dQVSBQcm9jZXNzXSBQZXJmb3JtIGltYWdl
IGRlY29kaW5nIG9mIGNvbG9yIGZvbnRzIGluIHRoZSBXZWIgUHJvY2VzcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTA2CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS82OTc2ODE4Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg6CisKIDIwMjAtMTAt
MTMgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBs
ZWZ0b3ZlciBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4IHN1cHBvcnQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCmluZGV4IDU3ZjgzMjRiMDEyNWNhZmYxYWZlMGQzYmJlNTY2OTNlZjZlYjg5ZmQuLmNl
YTEwOWYyNjAwYmFlMjVkNjQ3NDUxZWMyMWI0NzVjNmIyODQxMTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQpAQCAtMTIyOSw2ICsxMjI5LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVB
REVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0V4dGVuc2lvbnNHTEFOR0xFLmgKIAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5oCisgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVy
LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5n
Q29udGV4dC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SW1hZ2VCdWZmZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1zLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0Nv
cmVHcmFwaGljc1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBo
aWNzU1BJLmgKaW5kZXggYTdmODJiODYxYjYyYzRhZWZiODNjMTgxMWQ1NWM3YWY3NDllNmI5MS4u
M2NkMTQwZDBmZTQ3NTk0ZTRmMzJiNDY4OTNkMTliZmZlMzA4NDI2MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKQEAgLTM4LDYgKzM4LDcg
QEAKIAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKKyNpbmNsdWRlIDxDb3JlR3JhcGhp
Y3MvQ0dDb250ZXh0RGVsZWdhdGVQcml2YXRlLmg+CiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NH
Rm9udENhY2hlLmg+CiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHUGF0aFByaXZhdGUuaD4KICNp
bmNsdWRlIDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBoaWNzUHJpdmF0ZS5oPgpAQCAtNTgsMTkgKzU5
LDEyIEBAIHN0cnVjdCBDR0ZvbnRITWV0cmljcyB7CiAgICAgaW50IG1pblJpZ2h0U2lkZUJlYXJp
bmc7CiB9OwogCi1zdHJ1Y3QgQ0dGb250RGVzY3JpcHRvciB7Ci0gICAgQ0dSZWN0IGJib3g7Ci0g
ICAgQ0dGbG9hdCBhc2NlbnQ7Ci0gICAgQ0dGbG9hdCBkZXNjZW50OwotICAgIENHRmxvYXQgY2Fw
SGVpZ2h0OwotICAgIENHRmxvYXQgaXRhbGljQW5nbGU7Ci0gICAgQ0dGbG9hdCBzdGVtVjsKLSAg
ICBDR0Zsb2F0IHN0ZW1IOwotICAgIENHRmxvYXQgYXZnV2lkdGg7Ci0gICAgQ0dGbG9hdCBtYXhX
aWR0aDsKLSAgICBDR0Zsb2F0IG1pc3NpbmdXaWR0aDsKLSAgICBDR0Zsb2F0IGxlYWRpbmc7Ci0g
ICAgQ0dGbG9hdCB4SGVpZ2h0OwordHlwZWRlZiBDRl9FTlVNIChpbnQzMl90LCBDR0NvbnRleHRE
ZWxlZ2F0ZUNhbGxiYWNrTmFtZSkKK3sKKyAgICBkZURyYXdJbWFnZSA9IDcsCisgICAgZGVEcmF3
R2x5cGhzID0gOCwKKyAgICBkZUJlZ2luTGF5ZXIgPSAxNywKKyAgICBkZUVuZExheWVyID0gMTgs
CiB9OwogCiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBDR0NvbG9yVHJhbnNmb3JtKiBDR0NvbG9yVHJh
bnNmb3JtUmVmOwpAQCAtMTkzLDYgKzE4NywxMSBAQCBzdGF0aWMgY29uc3QgQ0dTTm90aWZpY2F0
aW9uVHlwZSBrQ0dTZXNzaW9uQ29uc29sZURpc2Nvbm5lY3QgPSAoQ0dTTm90aWZpY2F0aW9uVAog
CiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCit0eXBlZGVmIHN0cnVjdCBDR0NvbnRleHREZWxl
Z2F0ZSAqQ0dDb250ZXh0RGVsZWdhdGVSZWY7Cit0eXBlZGVmIHZvaWQgKCpDR0NvbnRleHREZWxl
Z2F0ZUNhbGxiYWNrKSh2b2lkKTsKK3R5cGVkZWYgc3RydWN0IENHUmVuZGVyaW5nU3RhdGUgKkNH
UmVuZGVyaW5nU3RhdGVSZWY7Cit0eXBlZGVmIHN0cnVjdCBDR0dTdGF0ZSAqQ0dHU3RhdGVSZWY7
CisKICNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCkBAIC0yMzMsNyArMjMyLDYgQEAgdm9pZCBDR0NvbnRleHRSZXNldENsaXAoQ0dDb250ZXh0
UmVmKTsKIENHQ29udGV4dFR5cGUgQ0dDb250ZXh0R2V0VHlwZShDR0NvbnRleHRSZWYpOwogCiBD
RlN0cmluZ1JlZiBDR0ZvbnRDb3B5RmFtaWx5TmFtZShDR0ZvbnRSZWYpOwotYm9vbCBDR0ZvbnRH
ZXREZXNjcmlwdG9yKENHRm9udFJlZiwgQ0dGb250RGVzY3JpcHRvciopOwogYm9vbCBDR0ZvbnRH
ZXRHbHlwaEFkdmFuY2VzRm9yU3R5bGUoQ0dGb250UmVmLCBjb25zdCBDR0FmZmluZVRyYW5zZm9y
bSogLCBDR0ZvbnRSZW5kZXJpbmdTdHlsZSwgY29uc3QgQ0dHbHlwaFtdLCBzaXplX3QgY291bnQs
IENHU2l6ZSBhZHZhbmNlc1tdKTsKIHZvaWQgQ0dGb250R2V0R2x5cGhzRm9yVW5pY2hhcnMoQ0dG
b250UmVmLCBjb25zdCBVbmlDaGFyW10sIENHR2x5cGhbXSwgc2l6ZV90IGNvdW50KTsKIGNvbnN0
IENHRm9udEhNZXRyaWNzKiBDR0ZvbnRHZXRITWV0cmljcyhDR0ZvbnRSZWYpOwpAQCAtMjUyLDYg
KzI1MCwxNCBAQCBib29sIENHQ29udGV4dEdldEFsbG93c0ZvbnRTdWJwaXhlbFBvc2l0aW9uaW5n
KENHQ29udGV4dFJlZik7CiBib29sIENHQ29udGV4dERyYXdzV2l0aENvcnJlY3RTaGFkb3dPZmZz
ZXRzKENHQ29udGV4dFJlZik7CiBDR1BhdHRlcm5SZWYgQ0dQYXR0ZXJuQ3JlYXRlV2l0aEltYWdl
MihDR0ltYWdlUmVmLCBDR0FmZmluZVRyYW5zZm9ybSwgQ0dQYXR0ZXJuVGlsaW5nKTsKIAorQ0dD
b250ZXh0RGVsZWdhdGVSZWYgQ0dDb250ZXh0RGVsZWdhdGVDcmVhdGUodm9pZCogaW5mbyk7Cit2
b2lkIENHQ29udGV4dERlbGVnYXRlU2V0Q2FsbGJhY2soQ0dDb250ZXh0RGVsZWdhdGVSZWYsIENH
Q29udGV4dERlbGVnYXRlQ2FsbGJhY2tOYW1lLCBDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrKTsK
K0NHQ29udGV4dFJlZiBDR0NvbnRleHRDcmVhdGVXaXRoRGVsZWdhdGUoQ0dDb250ZXh0RGVsZWdh
dGVSZWYsIENHQ29udGV4dFR5cGUsIENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmKTsK
K3ZvaWQqIENHQ29udGV4dERlbGVnYXRlR2V0SW5mbyhDR0NvbnRleHREZWxlZ2F0ZVJlZik7Cit2
b2lkIENHQ29udGV4dERlbGVnYXRlUmVsZWFzZShDR0NvbnRleHREZWxlZ2F0ZVJlZik7CitDR0Zs
b2F0IENHR1N0YXRlR2V0QWxwaGEoQ0dHU3RhdGVSZWYpOworQ0dGb250UmVmIENHR1N0YXRlR2V0
Rm9udChDR0dTdGF0ZVJlZik7CisKICNpZiBIQVZFKENHUEFUSF9HRVRfTlVNQkVSX09GX0VMRU1F
TlRTKQogc2l6ZV90IENHUGF0aEdldE51bWJlck9mRWxlbWVudHMoQ0dQYXRoUmVmKTsKICNlbmRp
ZgpAQCAtMjg2LDE2ICsyOTIsOSBAQCBDR1JlY3QqIENHU05leHRSZWN0KGNvbnN0IENHU1JlZ2lv
bkVudW1lcmF0b3JPYmopOwogQ0dTUmVnaW9uRW51bWVyYXRvck9iaiBDR1NSZWdpb25FbnVtZXJh
dG9yKENHUmVnaW9uUmVmKTsKIENHU3R5bGVSZWYgQ0dTdHlsZUNyZWF0ZUZvY3VzUmluZ1dpdGhD
b2xvcihjb25zdCBDR0ZvY3VzUmluZ1N0eWxlKiwgQ0dDb2xvclJlZik7CiB2b2lkIENHQ29udGV4
dFNldFN0eWxlKENHQ29udGV4dFJlZiwgQ0dTdHlsZVJlZik7Ci0KIHZvaWQgQ0dDb250ZXh0RHJh
d0NvbmljR3JhZGllbnQoQ0dDb250ZXh0UmVmLCBDR0dyYWRpZW50UmVmLCBDR1BvaW50IGNlbnRl
ciwgQ0dGbG9hdCBhbmdsZSk7Ci0KLSNpZiBIQVZFKENHX1BBVEhfVU5FVkVOX0NPUk5FUlNfUk9V
TkRFRFJFQ1QpCiB2b2lkIENHUGF0aEFkZFVuZXZlbkNvcm5lcnNSb3VuZGVkUmVjdChDR011dGFi
bGVQYXRoUmVmLCBjb25zdCBDR0FmZmluZVRyYW5zZm9ybSAqLCBDR1JlY3QsIGNvbnN0IENHU2l6
ZSBjb3JuZXJzWzRdKTsKLSNlbmRpZgotCi0jaWYgSEFWRShDR19GT05UX1JFTkRFUklOR19HRVRf
Rk9OVF9TTU9PVEhJTkdfRElTQUJMRUQpCiBib29sIENHRm9udFJlbmRlcmluZ0dldEZvbnRTbW9v
dGhpbmdEaXNhYmxlZCh2b2lkKTsKLSNlbmRpZgogCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0Ep
CiAKQEAgLTMyOCwxNSArMzI3LDEwIEBAIGJvb2wgQ29sb3JTeW5jUHJvZmlsZUlzV2lkZUdhbXV0
KENvbG9yU3luY1Byb2ZpbGVSZWYpOwogc2l6ZV90IENHRGlzcGxheU1vZGVHZXRQaXhlbHNXaWRl
KENHRGlzcGxheU1vZGVSZWYpOwogc2l6ZV90IENHRGlzcGxheU1vZGVHZXRQaXhlbHNIaWdoKENH
RGlzcGxheU1vZGVSZWYpOwogCi0jaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JM
T0NLSU5HKQotCiBDR0Vycm9yIENHU1NldERlbnlXaW5kb3dTZXJ2ZXJDb25uZWN0aW9ucyhib29s
KTsKLQogdHlwZWRlZiBpbnQzMl90IENHU0Rpc3BsYXlJRDsKIENHU0Rpc3BsYXlJRCBDR1NNYWlu
RGlzcGxheUlEKHZvaWQpOwogCi0jZW5kaWYgLy8gRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VS
VkVSX0JMT0NLSU5HKQotCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCiAjaWYgRU5BQkxFKFBE
RktJVF9QTFVHSU4pICYmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1BcHBsZVdpbi5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRm
b3JtQXBwbGVXaW4uY21ha2UKaW5kZXggYTc4OGU2OWRlNzQ0MWM5NDA4NGY3MDM2YTNlOGY0OWFk
NDUxYTU4ZC4uMzhhMmI3NzY4OTU1OThhNGY0ZTM2YWRlN2M2MDNiMDQwNzhkZGM3NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1BcHBsZVdpbi5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybUFwcGxlV2luLmNtYWtlCkBAIC0zMCw2ICszMCw4IEBAIGxpc3QoQVBQ
RU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9j
Zi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vY2YvV2ViQ29yZUFWQ0ZSZXNvdXJjZUxvYWRlci5jcHAKIAorICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNv
cmRlckNvcmVUZXh0LmNwcAorCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEuY3BwCiAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL2NmL0F1dGhlbnRpY2F0aW9u
Q0YuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbkNhaXJvLmNtYWtl
IGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5DYWlyby5jbWFrZQppbmRleCBjNGI4NmMxNDg5
YWFjOWE1ZTJlYTAwNDAwMjBmMzQxOTY2YTE0NTMzLi5iZmUwOGQ3YTY0OTg3NzI5NzM0N2Y4NmJl
Zjg0MGUzZTY5ZjI4ODhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbkNh
aXJvLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UKQEAg
LTE4LDYgKzE4LDggQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvR0xDb250ZXh0LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlz
cGxheS5jcHAKIAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dERyYXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcAorCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy93aW4vRm9udFBsYXRmb3JtRGF0YUNhaXJvV2luLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L3dpbi9HbHlwaFBhZ2VUcmVlTm9kZUNhaXJvV2luLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQK
aW5kZXggZDZmNmY1Y2ZkZjA5ZGRmMWMzZTI2YzY1NmNjYWM2Y2U3OWUxYzIyYS4uZTVkMWFiZjc1
NjUzMzVhYTFkOGIxMjVhZTU0OTlkZTM4Mjk4YzM0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0
CkBAIC0zNzgsNiArMzc4LDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNl
c3Npb25WVC5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5j
cHAKIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcAogcGxhdGZv
cm0vZ3JhcGhpY3MvY29yZWltYWdlL0ZpbHRlckVmZmVjdFJlbmRlcmVyQ29yZUltYWdlLm1tCitw
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3Jk
ZXJDb3JlVGV4dC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9UZXh0dXJlLmNwcAogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L1RpbGluZ0RhdGEuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29j
b2EvR1BVQmluZEdyb3VwQWxsb2NhdG9yTWV0YWwubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0YzA3NTc4MDk2ZjQ2Y2ZhMTdj
NDgwZjMzNTM1ZDdlM2M0OGE5OWJkLi5iN2Y3MzFlMjk3OTE3NDViNzUxZmM1NWQyYWY4MzIzMDQ3
NGFkZDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC02MTksNiArNjE5LDcgQEAKIAkJMUNBRjM0ODEwQTZDNDA1MjAwQUJFMDZF
IC8qIFdlYlNjcmlwdE9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUNBRjM0N0UwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFDQUYz
NDgyMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FGMzQ3RjBBNkM0MDUyMDBBQkUwNkUg
LyogV2ViU2NyaXB0T2JqZWN0Lm1tICovOyB9OwogCQkxQ0FGMzQ4MzBBNkM0MDUyMDBBQkUwNkUg
LyogV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUNBRjM0ODAwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9i
amVjdFByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQkxQ0FGNTZEQjI1MzAxQUM4MDAxN0I0NzIgLyogRGlzcGxheUxpc3REcmF3R2x5cGhz
UmVjb3JkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFDQUY1NkQ4MjUzMDE0NTcwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFD
Q0Q4MTUwMjIzMUY4M0UwMDY1RkMyQiAvKiBXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlv
blF1ZXVlRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMTUyNTUxNDE2RkQyMzRGMDAzRDdBREIgLyogV2ViQ29yZVJlc291cmNlSGFuZGxl
QXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tICovOyB9OwogCQkxQ0NERjVCRTE5OTAzMzI0MDBC
Q0VCQUQgLyogU1ZHVG9PVEZGb250Q29udmVyc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDREY1QkMxOTkwMzMyNDAwQkNFQkFEIC8qIFNWR1Rv
T1RGRm9udENvbnZlcnNpb24uaCAqLzsgfTsKIAkJMUNGQUUzMjMwQTZENkEzRjAwMzI1OTNEIC8q
IGxpYm9iamMuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQ0ZBRTMyMjBBNkQ2QTNGMDAzMjU5M0QgLyogbGlib2JqYy5keWxpYiAqLzsgfTsK
QEAgLTY3MTYsNiArNjcxNyw4IEBACiAJCTFDQUYzNDdFMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJT
Y3JpcHRPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU2NyaXB0
T2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUYzNDdGMEE2QzQwNTIw
MEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXZWJTY3JpcHRPYmplY3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTFDQUYzNDgwMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3RQcml2YXRl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNjcmlwdE9iamVjdFByaXZh
dGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNBRjU2RDgyNTMwMTQ1NzAwMTdC
NDcyIC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERp
c3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFDQUY1NkRFMjUzMDI0NUEwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNv
cmRlckNvcmVUZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpc3BsYXlMaXN0RHJhd0dseXBo
c1JlY29yZGVyQ29yZVRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0I1
RkU4ODIyREVCQzhCMDA5NDQwRTIgLyogV0hMU0xFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExT
TEVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQjY5QjMyMjFERUQ0MEIw
MDZFODQ2QSAvKiBXSExTTFJlc29sdmFibGVUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdITFNMUmVz
b2x2YWJsZVR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNCNjlCMzQyMURF
RDYzQTAwNkU4NDZBIC8qIFdITFNMRmxvYXRMaXRlcmFsVHlwZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
SExTTEZsb2F0TGl0ZXJhbFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3
NTEwLDYgKzE3NTEzLDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTBGRTVGQkNBMUMzREQ1MUUw
MDA3QTJDQSAvKiBEaXNwbGF5TGlzdC5jcHAgKi8sCiAJCQkJMEZFNUZCQ0IxQzNERDUxRTAwMDdB
MkNBIC8qIERpc3BsYXlMaXN0LmggKi8sCisJCQkJMUNBRjU2RDgyNTMwMTQ1NzAwMTdCNDcyIC8q
IERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmggKi8sCisJCQkJMUNBRjU2REUyNTMwMjQ1
QTAwMTdCNDcyIC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwICov
LAogCQkJCTU1QzBBMjk1MjNGRTJDRTAwMEYyQ0I5MyAvKiBEaXNwbGF5TGlzdERyYXdpbmdDb250
ZXh0LmNwcCAqLywKIAkJCQk3MkVBMDlGOTIzRkNDQzZBMDA4NTA0QTUgLyogRGlzcGxheUxpc3RE
cmF3aW5nQ29udGV4dC5oICovLAogCQkJCTcyRUEwOUY3MjNGQ0NCM0QwMDg1MDRBNSAvKiBEaXNw
bGF5TGlzdEltYWdlQnVmZmVyLmggKi8sCkBAIC0zMTIzMiw2ICszMTIzNyw3IEBACiAJCQkJN0VE
QUFGQzkxOUEyQ0NEQzAwMzRERkQxIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY3OTBGNDIyNTE3Q0U2RTAwOUJBMDM0IC8qIERpc3BsYXlMYXllckNvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTVGQkQzMUMzREQ1MUUwMDA3QTJDQSAvKiBE
aXNwbGF5TGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNBRjU2REIyNTMwMUFDODAwMTdCNDcy
IC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
NUFEMDk0MDI0MDg5NjQwMDBERTREMkYgLyogRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTVBRDA5M0UyNDA4OTYzNTAwREU0RDJGIC8qIERpc3BsYXlMaXN0
SW1hZ2VCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTVGQkQ1MUMzREQ1MUUwMDA3QTJD
QSAvKiBEaXNwbGF5TGlzdEl0ZW1zLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvV2ViQ29y
ZS54Y3NjaGVtZSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3hjc2hhcmVkZGF0
YS94Y3NjaGVtZXMvV2ViQ29yZS54Y3NjaGVtZQppbmRleCAxNTgyZTFhM2M1NmRmOWU3ODIwMGQ5
OWE5OTg2ODA1OTFiNGNkZjBiLi4wN2U5NDE5ZjVmMjZmNzFmZThiNGFiZDdhZDNjYmQ5ZTllNmEz
YWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai94Y3NoYXJl
ZGRhdGEveGNzY2hlbWVzL1dlYkNvcmUueGNzY2hlbWUKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2oveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9XZWJDb3JlLnhjc2NoZW1lCkBA
IC00MCw2ICs0MCwxMSBAQAogICAgICAgZGVidWdEb2N1bWVudFZlcnNpb25pbmcgPSAiWUVTIgog
ICAgICAgZGVidWdTZXJ2aWNlRXh0ZW5zaW9uID0gImludGVybmFsIgogICAgICAgYWxsb3dMb2Nh
dGlvblNpbXVsYXRpb24gPSAiWUVTIj4KKyAgICAgIDxQYXRoUnVubmFibGUKKyAgICAgICAgIHJ1
bm5hYmxlRGVidWdnaW5nTW9kZSA9ICIwIgorICAgICAgICAgQnVuZGxlSWRlbnRpZmllciA9ICJv
cmcud2Via2l0Lk1pbmlCcm93c2VyIgorICAgICAgICAgRmlsZVBhdGggPSAiL1VzZXJzL21tYXhm
aWVsZC9CdWlsZC9Qcm9kdWN0cy9EZWJ1Zy9NaW5pQnJvd3Nlci5hcHAiPgorICAgICAgPC9QYXRo
UnVubmFibGU+CiAgICA8L0xhdW5jaEFjdGlvbj4KICAgIDxQcm9maWxlQWN0aW9uCiAgICAgICBi
dWlsZENvbmZpZ3VyYXRpb24gPSAiUmVsZWFzZSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJlZVR5
cGUuY21ha2UKaW5kZXggN2MwNGQ5M2E1Yjg1YzczMjU4MWM5NWEwNjViZTA1YjYzNjdjN2FlNC4u
ZjM4YjU0ZTE3YzkzMTU2NTE1NGNhYjk1M2E4MWUwZTk2ZjU3NDlhNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJlZVR5cGUuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vRnJlZVR5cGUuY21ha2UKQEAgLTUsNiArNSw4IEBAIGxpc3QoQVBQRU5EIFdlYkNv
cmVfUFJJVkFURV9JTkNMVURFX0RJUkVDVE9SSUVTCiApCiAKIGxpc3QoQVBQRU5EIFdlYkNvcmVf
U09VUkNFUworICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERy
YXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcAorCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJl
ZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5
cGUvRm9udEN1c3RvbVBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2ZyZWV0eXBlL0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERy
YXdHbHlwaHNSZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWM4
MGUzMzAwODRmZGFlOGI2ZTcxYjhkZDgzODk5MzhhZjNiMTE5YwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dERyYXdHbHlwaHNSZWNvcmRlci5oCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlRl
eHRGbGFncy5oIgorCisjaWYgVVNFKENPUkVfVEVYVCkKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRl
eHQuaCIKKworI2luY2x1ZGUgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3MuaD4KKyNpbmNsdWRl
IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgRmxvYXRQb2ludDsKK2NsYXNzIEZvbnQ7CitjbGFzcyBHbHlwaEJ1ZmZl
cjsKK2NsYXNzIEdyYXBoaWNzQ29udGV4dDsKKworbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKKwor
Y2xhc3MgUmVjb3JkZXI7CisKK2NsYXNzIERyYXdHbHlwaHNSZWNvcmRlciB7CitwdWJsaWM6Cisg
ICAgZXhwbGljaXQgRHJhd0dseXBoc1JlY29yZGVyKFJlY29yZGVyJik7CisKKyAgICB2b2lkIGRy
YXdHbHlwaHMoY29uc3QgRm9udCYsIGNvbnN0IEdseXBoQnVmZmVyJiwgdW5zaWduZWQgZnJvbSwg
dW5zaWduZWQgbnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBhbmNob3JQb2ludCwgRm9udFNt
b290aGluZ01vZGUpOworCisjaWYgVVNFKENPUkVfVEVYVCkKKyAgICB2b2lkIHJlY29yZEJlZ2lu
TGF5ZXIoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYsIENHUmVjdCk7CisgICAgdm9p
ZCByZWNvcmRFbmRMYXllcihDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZik7CisgICAg
dm9pZCByZWNvcmREcmF3R2x5cGhzKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmLCBj
b25zdCBDR0FmZmluZVRyYW5zZm9ybSosIGNvbnN0IENHR2x5cGhbXSwgY29uc3QgQ0dQb2ludCBw
b3NpdGlvbnNbXSwgc2l6ZV90IGNvdW50KTsKKyAgICB2b2lkIHJlY29yZERyYXdJbWFnZShDR1Jl
bmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiwgQ0dSZWN0LCBDR0ltYWdlUmVmKTsKKyNlbmRp
ZgorCitwcml2YXRlOgorICAgIEdyYXBoaWNzQ29udGV4dCBjcmVhdGVJbnRlcm5hbENvbnRleHQo
KTsKKyAgICB2b2lkIHByZXBhcmVJbnRlcm5hbENvbnRleHQoY29uc3QgRm9udCYsIEZvbnRTbW9v
dGhpbmdNb2RlKTsKKyAgICB2b2lkIGNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KCk7CisgICAgdm9p
ZCB1cGRhdGVDVE0oQWZmaW5lVHJhbnNmb3JtKTsKKyAgICB2b2lkIHVwZGF0ZUZpbGxDb2xvcihj
b25zdCBDb2xvciYsIEdyYWRpZW50KiA9IG51bGxwdHIsIFBhdHRlcm4qID0gbnVsbHB0cik7CisK
KyAgICBSZWNvcmRlciYgbV9vd25lcjsKKyAgICBHcmFwaGljc0NvbnRleHQgbV9pbnRlcm5hbENv
bnRleHQ7CisgICAgY29uc3QgRm9udCogbV9jdXJyZW50Rm9udCB7IG51bGxwdHIgfTsKKyAgICBD
b2xvciBtX2N1cnJlbnRDb2xvcjsKKworICAgIENvbG9yIG1fb3JpZ2luYWxGaWxsQ29sb3I7Cisg
ICAgUmVmUHRyPEdyYWRpZW50PiBtX29yaWdpbmFsRmlsbEdyYWRpZW50OworICAgIFJlZlB0cjxQ
YXR0ZXJuPiBtX29yaWdpbmFsRmlsbFBhdHRlcm47CisKKyAgICBBZmZpbmVUcmFuc2Zvcm0gbV9v
cmlnaW5hbENUTTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gbV9jdXJyZW50Q1RNOworCisgICAgRm9u
dFNtb290aGluZ01vZGUgbV9zbW9vdGhpbmdNb2RlIHsgRm9udFNtb290aGluZ01vZGU6OkF1dG9T
bW9vdGhpbmcgfTsKK307CisKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVy
Q29yZVRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjY2Y2Q5NmQ1ZDRhMjU5MjhmZGJiODA5NzQwNTBkNWQ1MmZhOTYxNWIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAKQEAgLTAsMCArMSwyMzMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCIKKworI2lu
Y2x1ZGUgIkJpdG1hcEltYWdlLmgiCisjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRlICJEaXNw
bGF5TGlzdEl0ZW1zLmgiCisjaW5jbHVkZSAiRGlzcGxheUxpc3RSZWNvcmRlci5oIgorI2luY2x1
ZGUgIkZsb2F0UG9pbnQuaCIKKyNpbmNsdWRlICJGb250LmgiCisjaW5jbHVkZSAiRm9udENhc2Nh
ZGUuaCIKKyNpbmNsdWRlICJHbHlwaEJ1ZmZlci5oIgorCisjaW5jbHVkZSA8Q29yZVRleHQvQ29y
ZVRleHQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKKyNpZiBQTEFURk9STShXSU4pCisj
aW5jbHVkZSA8cGFsL3NwaS93aW4vQ29yZVRleHRTUElXaW4uaD4KKyNlbmRpZgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK25hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CisKK3N0YXRpYyBDR0NvbnRl
eHREZWxlZ2F0ZVJlZiBiZWdpbkxheWVyKENHQ29udGV4dERlbGVnYXRlUmVmIGRlbGVnYXRlLCBD
R1JlbmRlcmluZ1N0YXRlUmVmIHJzdGF0ZSwgQ0dHU3RhdGVSZWYgZ3N0YXRlLCBDR1JlY3QgcmVj
dCwgQ0ZEaWN0aW9uYXJ5UmVmLCBDR0NvbnRleHREZWxlZ2F0ZVJlZikKK3sKKyAgICBEcmF3R2x5
cGhzUmVjb3JkZXImIHJlY29yZGVyID0gKnN0YXRpY19jYXN0PERyYXdHbHlwaHNSZWNvcmRlcio+
KENHQ29udGV4dERlbGVnYXRlR2V0SW5mbyhkZWxlZ2F0ZSkpOworICAgIHJlY29yZGVyLnJlY29y
ZEJlZ2luTGF5ZXIocnN0YXRlLCBnc3RhdGUsIHJlY3QpOworICAgIHJldHVybiBkZWxlZ2F0ZTsK
K30KKworc3RhdGljIENHQ29udGV4dERlbGVnYXRlUmVmIGVuZExheWVyKENHQ29udGV4dERlbGVn
YXRlUmVmIGRlbGVnYXRlLCBDR1JlbmRlcmluZ1N0YXRlUmVmIHJzdGF0ZSwgQ0dHU3RhdGVSZWYg
Z3N0YXRlKQoreworICAgIERyYXdHbHlwaHNSZWNvcmRlciYgcmVjb3JkZXIgPSAqc3RhdGljX2Nh
c3Q8RHJhd0dseXBoc1JlY29yZGVyKj4oQ0dDb250ZXh0RGVsZWdhdGVHZXRJbmZvKGRlbGVnYXRl
KSk7CisgICAgcmVjb3JkZXIucmVjb3JkRW5kTGF5ZXIocnN0YXRlLCBnc3RhdGUpOworICAgIHJl
dHVybiBkZWxlZ2F0ZTsKK30KKworc3RhdGljIENHRXJyb3IgZHJhd0dseXBocyhDR0NvbnRleHRE
ZWxlZ2F0ZVJlZiBkZWxlZ2F0ZSwgQ0dSZW5kZXJpbmdTdGF0ZVJlZiByc3RhdGUsIENHR1N0YXRl
UmVmIGdzdGF0ZSwgY29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0qIHRtLCBjb25zdCBDR0dseXBoIGds
eXBoc1tdLCBjb25zdCBDR1BvaW50IHBvc2l0aW9uc1tdLCBzaXplX3QgY291bnQpCit7CisgICAg
aWYgKENHR1N0YXRlR2V0QWxwaGEoZ3N0YXRlKSA+IDApIHsKKyAgICAgICAgRHJhd0dseXBoc1Jl
Y29yZGVyJiByZWNvcmRlciA9ICpzdGF0aWNfY2FzdDxEcmF3R2x5cGhzUmVjb3JkZXIqPihDR0Nv
bnRleHREZWxlZ2F0ZUdldEluZm8oZGVsZWdhdGUpKTsKKyAgICAgICAgcmVjb3JkZXIucmVjb3Jk
RHJhd0dseXBocyhyc3RhdGUsIGdzdGF0ZSwgdG0sIGdseXBocywgcG9zaXRpb25zLCBjb3VudCk7
CisgICAgfQorICAgIHJldHVybiBrQ0dFcnJvclN1Y2Nlc3M7Cit9CisKK3N0YXRpYyBDR0Vycm9y
IGRyYXdJbWFnZShDR0NvbnRleHREZWxlZ2F0ZVJlZiBkZWxlZ2F0ZSwgQ0dSZW5kZXJpbmdTdGF0
ZVJlZiByc3RhdGUsIENHR1N0YXRlUmVmIGdzdGF0ZSwgQ0dSZWN0IHJlY3QsIENHSW1hZ2VSZWYg
aW1hZ2UpCit7CisgICAgRHJhd0dseXBoc1JlY29yZGVyJiByZWNvcmRlciA9ICpzdGF0aWNfY2Fz
dDxEcmF3R2x5cGhzUmVjb3JkZXIqPihDR0NvbnRleHREZWxlZ2F0ZUdldEluZm8oZGVsZWdhdGUp
KTsKKyAgICByZWNvcmRlci5yZWNvcmREcmF3SW1hZ2UocnN0YXRlLCBnc3RhdGUsIHJlY3QsIGlt
YWdlKTsKKyAgICByZXR1cm4ga0NHRXJyb3JTdWNjZXNzOworfQorCitHcmFwaGljc0NvbnRleHQg
RHJhd0dseXBoc1JlY29yZGVyOjpjcmVhdGVJbnRlcm5hbENvbnRleHQoKQoreworICAgIGF1dG8g
Y29udGV4dERlbGVnYXRlID0gYWRvcHRDRihDR0NvbnRleHREZWxlZ2F0ZUNyZWF0ZSh0aGlzKSk7
CisgICAgQ0dDb250ZXh0RGVsZWdhdGVTZXRDYWxsYmFjayhjb250ZXh0RGVsZWdhdGUuZ2V0KCks
IGRlQmVnaW5MYXllciwgcmVpbnRlcnByZXRfY2FzdDxDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNr
PigmYmVnaW5MYXllcikpOworICAgIENHQ29udGV4dERlbGVnYXRlU2V0Q2FsbGJhY2soY29udGV4
dERlbGVnYXRlLmdldCgpLCBkZUVuZExheWVyLCByZWludGVycHJldF9jYXN0PENHQ29udGV4dERl
bGVnYXRlQ2FsbGJhY2s+KCZlbmRMYXllcikpOworICAgIENHQ29udGV4dERlbGVnYXRlU2V0Q2Fs
bGJhY2soY29udGV4dERlbGVnYXRlLmdldCgpLCBkZURyYXdHbHlwaHMsIHJlaW50ZXJwcmV0X2Nh
c3Q8Q0dDb250ZXh0RGVsZWdhdGVDYWxsYmFjaz4oJldlYkNvcmU6OkRpc3BsYXlMaXN0OjpkcmF3
R2x5cGhzKSk7CisgICAgQ0dDb250ZXh0RGVsZWdhdGVTZXRDYWxsYmFjayhjb250ZXh0RGVsZWdh
dGUuZ2V0KCksIGRlRHJhd0ltYWdlLCByZWludGVycHJldF9jYXN0PENHQ29udGV4dERlbGVnYXRl
Q2FsbGJhY2s+KCZkcmF3SW1hZ2UpKTsKKyAgICBhdXRvIGNvbnRleHQgPSBhZG9wdENGKENHQ29u
dGV4dENyZWF0ZVdpdGhEZWxlZ2F0ZShjb250ZXh0RGVsZWdhdGUuZ2V0KCksIGtDR0NvbnRleHRU
eXBlVW5rbm93biwgbnVsbHB0ciwgbnVsbHB0cikpOworICAgIHJldHVybiBHcmFwaGljc0NvbnRl
eHQoY29udGV4dC5nZXQoKSk7Cit9CisKK0RyYXdHbHlwaHNSZWNvcmRlcjo6RHJhd0dseXBoc1Jl
Y29yZGVyKFJlY29yZGVyJiBvd25lcikKKyAgICA6IG1fb3duZXIob3duZXIpCisgICAgLCBtX2lu
dGVybmFsQ29udGV4dChjcmVhdGVJbnRlcm5hbENvbnRleHQoKSkKK3sKK30KKwordm9pZCBEcmF3
R2x5cGhzUmVjb3JkZXI6OnByZXBhcmVJbnRlcm5hbENvbnRleHQoY29uc3QgRm9udCYgZm9udCwg
Rm9udFNtb290aGluZ01vZGUgc21vb3RoaW5nTW9kZSkKK3sKKyAgICBBU1NFUlQoQ0dBZmZpbmVU
cmFuc2Zvcm1Jc0lkZW50aXR5KENURm9udEdldE1hdHJpeChmb250LnBsYXRmb3JtRGF0YSgpLmN0
Rm9udCgpKSkpOworCisgICAgYXV0byYgc3RhdGUgPSBtX293bmVyLmN1cnJlbnRTdGF0ZSgpLnN0
YXRlQ2hhbmdlLm1fc3RhdGU7CisgICAgbV9vcmlnaW5hbEZpbGxDb2xvciA9IHN0YXRlLmZpbGxD
b2xvcjsKKyAgICBtX29yaWdpbmFsRmlsbEdyYWRpZW50ID0gc3RhdGUuZmlsbEdyYWRpZW50Owor
ICAgIG1fb3JpZ2luYWxGaWxsUGF0dGVybiA9IHN0YXRlLmZpbGxQYXR0ZXJuOworICAgIG1fY3Vy
cmVudENvbG9yID0gbV9vcmlnaW5hbEZpbGxDb2xvcjsKKworICAgIGlmIChtX29yaWdpbmFsRmls
bENvbG9yLmlzVmFsaWQoKSkKKyAgICAgICAgbV9pbnRlcm5hbENvbnRleHQuc2V0RmlsbENvbG9y
KG1fb3JpZ2luYWxGaWxsQ29sb3IpOworICAgIGVsc2UgaWYgKG1fb3JpZ2luYWxGaWxsR3JhZGll
bnQpCisgICAgICAgIG1faW50ZXJuYWxDb250ZXh0LnNldEZpbGxHcmFkaWVudCgqbV9vcmlnaW5h
bEZpbGxHcmFkaWVudCk7CisgICAgZWxzZSB7CisgICAgICAgIEFTU0VSVChtX29yaWdpbmFsRmls
bFBhdHRlcm4pOworICAgICAgICBpZiAobV9vcmlnaW5hbEZpbGxQYXR0ZXJuKQorICAgICAgICAg
ICAgbV9pbnRlcm5hbENvbnRleHQuc2V0RmlsbFBhdHRlcm4oKm1fb3JpZ2luYWxGaWxsUGF0dGVy
bik7CisgICAgfQorCisgICAgbV9pbnRlcm5hbENvbnRleHQuc2V0U2hhZG93KHN0YXRlLnNoYWRv
d09mZnNldCwgc3RhdGUuc2hhZG93Qmx1ciwgc3RhdGUuc2hhZG93Q29sb3IpOworCisgICAgbV9v
cmlnaW5hbENUTSA9IG1fb3duZXIuY3VycmVudFN0YXRlKCkuY3RtOyAvLyBGSVhNRTogRGVhbCB3
aXRoIGRldmljZSBzY2FsZS4KKyAgICBtX2N1cnJlbnRDVE0gPSBtX29yaWdpbmFsQ1RNOworICAg
IG1faW50ZXJuYWxDb250ZXh0LnNldENUTShtX29yaWdpbmFsQ1RNKTsKKworICAgIG1fY3VycmVu
dEZvbnQgPSAmZm9udDsKKyAgICBtX3Ntb290aGluZ01vZGUgPSBzbW9vdGhpbmdNb2RlOworfQor
Cit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6Y29uY2x1ZGVJbnRlcm5hbENvbnRleHQoKQorewor
ICAgIHVwZGF0ZUZpbGxDb2xvcihtX29yaWdpbmFsRmlsbENvbG9yLCBtX29yaWdpbmFsRmlsbEdy
YWRpZW50LmdldCgpLCBtX29yaWdpbmFsRmlsbFBhdHRlcm4uZ2V0KCkpOworICAgIHVwZGF0ZUNU
TShtX29yaWdpbmFsQ1RNKTsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnVwZGF0ZUNU
TShBZmZpbmVUcmFuc2Zvcm0gY3RtKQoreworICAgIGlmIChjdG0gPT0gbV9jdXJyZW50Q1RNKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX293bmVyLnNldENUTShjdG0pOworICAgIG1fY3VycmVu
dENUTSA9IGN0bTsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnVwZGF0ZUZpbGxDb2xv
cihjb25zdCBDb2xvciYgbmV3Q29sb3IsIEdyYWRpZW50KiBuZXdHcmFkaWVudCwgUGF0dGVybiog
bmV3UGF0dGVybikKK3sKKyAgICBpZiAobmV3Q29sb3IgPT0gbV9jdXJyZW50Q29sb3IpCisgICAg
ICAgIHJldHVybjsKKworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlIG5ld1N0YXRlOworICAgIG5l
d1N0YXRlLmZpbGxDb2xvciA9IG5ld0NvbG9yOworICAgIGlmIChuZXdHcmFkaWVudCkKKyAgICAg
ICAgbmV3U3RhdGUuZmlsbEdyYWRpZW50ID0gbmV3R3JhZGllbnQ7CisgICAgaWYgKG5ld1BhdHRl
cm4pCisgICAgICAgIG5ld1N0YXRlLmZpbGxQYXR0ZXJuID0gbmV3UGF0dGVybjsKKyAgICBtX293
bmVyLnVwZGF0ZVN0YXRlKG5ld1N0YXRlLCB7IEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsQ29s
b3JDaGFuZ2UgfSk7CisgICAgbV9jdXJyZW50Q29sb3IgPSBuZXdDb2xvcjsKK30KKwordm9pZCBE
cmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZEJlZ2luTGF5ZXIoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwg
Q0dHU3RhdGVSZWYgZ3N0YXRlLCBDR1JlY3QpCit7CisgICAgdXBkYXRlQ1RNKCpDR0dTdGF0ZUdl
dENUTShnc3RhdGUpKTsKKyAgICBhdXRvIGFscGhhID0gQ0dHU3RhdGVHZXRBbHBoYShnc3RhdGUp
OworICAgIG1fb3duZXIuYmVnaW5UcmFuc3BhcmVuY3lMYXllcihhbHBoYSk7Cit9CisKK3ZvaWQg
RHJhd0dseXBoc1JlY29yZGVyOjpyZWNvcmRFbmRMYXllcihDR1JlbmRlcmluZ1N0YXRlUmVmLCBD
R0dTdGF0ZVJlZiBnc3RhdGUpCit7CisgICAgdXBkYXRlQ1RNKCpDR0dTdGF0ZUdldENUTShnc3Rh
dGUpKTsKKyAgICBtX293bmVyLmVuZFRyYW5zcGFyZW5jeUxheWVyKCk7Cit9CisKK3N0YXRpYyBW
ZWN0b3I8Q0dTaXplPiBjb21wdXRlQWR2YW5jZXNGcm9tUG9zaXRpb25zKGNvbnN0IENHUG9pbnQg
cG9zaXRpb25zW10sIHNpemVfdCBjb3VudCkKK3sKKyAgICBWZWN0b3I8Q0dTaXplPiByZXN1bHQ7
CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudCAtIDE7ICsraSkgeworICAgICAgICBh
dXRvIG5leHRQb3NpdGlvbiA9IHBvc2l0aW9uc1tpICsgMV07CisgICAgICAgIGF1dG8gY3VycmVu
dFBvc2l0aW9uID0gcG9zaXRpb25zW2ldOworICAgICAgICByZXN1bHQuYXBwZW5kKENHU2l6ZU1h
a2UobmV4dFBvc2l0aW9uLnggLSBjdXJyZW50UG9zaXRpb24ueCwgbmV4dFBvc2l0aW9uLnkgLSBj
dXJyZW50UG9zaXRpb24ueSkpOworICAgIH0KKyAgICByZXN1bHQuY29uc3RydWN0QW5kQXBwZW5k
KENHU2l6ZU1ha2UoMCwgMCkpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3ZvaWQgRHJhd0ds
eXBoc1JlY29yZGVyOjpyZWNvcmREcmF3R2x5cGhzKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0
YXRlUmVmIGdzdGF0ZSwgY29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0qLCBjb25zdCBDR0dseXBoIGds
eXBoc1tdLCBjb25zdCBDR1BvaW50IHBvc2l0aW9uc1tdLCBzaXplX3QgY291bnQpCit7CisgICAg
aWYgKCFjb3VudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgQ0dGb250UmVmIHVzZWRGb250ID0g
Q0dHU3RhdGVHZXRGb250KGdzdGF0ZSk7CisgICAgaWYgKHVzZWRGb250ICE9IGFkb3B0Q0YoQ1RG
b250Q29weUdyYXBoaWNzRm9udChtX2N1cnJlbnRGb250LT5wbGF0Zm9ybURhdGEoKS5jdEZvbnQo
KSwgbnVsbHB0cikpLmdldCgpKQorICAgICAgICByZXR1cm47CisKKyAgICB1cGRhdGVDVE0oKkNH
R1N0YXRlR2V0Q1RNKGdzdGF0ZSkpOworCisgICAgLy8gRklYTUU6IENvcmUgVGV4dCBjYW4gbW9k
aWZ5IHRoZSB0ZXh0IG1hdHJpeC4gV2UgbmVlZCB0byBoYW5kbGUgdGhhdCBoZXJlLgorCisgICAg
dXBkYXRlRmlsbENvbG9yKENHR1N0YXRlR2V0RmlsbENvbG9yKGdzdGF0ZSkpOyAvLyBGSVhNRTog
V2hhdCBoYXBwZW5zIGlmIHdlJ3ZlIGdvdCBhIGdyYWRpZW50IG9yIHBhdHRlcm4gb3IgbWFzaz8K
KworICAgIC8vIFRlc3QgY2FzZTogdmVydGljYWwgdGV4dCwgcm90YXRlZCB0ZXh0CisgICAgRmxv
YXRQb2ludCBsb2NhbEFuY2hvciA9IENHQ29udGV4dEdldFRleHRQb3NpdGlvbihtX2ludGVybmFs
Q29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKSk7CisgICAgbG9jYWxBbmNob3IubW92ZShGbG9hdFNp
emUocG9zaXRpb25zWzBdLngsIHBvc2l0aW9uc1swXS55KSk7IC8vIEZJWE1FOiBJcyB0aGlzIHJp
Z2h0PworICAgIG1fb3duZXIuYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChEcmF3R2x5cGhzOjpj
cmVhdGUoKm1fY3VycmVudEZvbnQsIGdseXBocywgY29tcHV0ZUFkdmFuY2VzRnJvbVBvc2l0aW9u
cyhwb3NpdGlvbnMsIGNvdW50KS5kYXRhKCksIGNvdW50LCBsb2NhbEFuY2hvciwgbV9zbW9vdGhp
bmdNb2RlKSk7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpyZWNvcmREcmF3SW1hZ2Uo
Q0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYgZ3N0YXRlLCBDR1JlY3QgcmVjdCwgQ0dJ
bWFnZVJlZiBjZ0ltYWdlKQoreworICAgIC8vIFRlc3QgY2FzZTogRVhJRiByb3RhdGVkIGltYWdl
cy4KKyAgICAvLyBGSVhNRTogV2lsbCBDb3JlVGV4dCBldmVyIHNldCBhbnkgb2YgdGhlIHN0dWZm
IG9uIHRoZSBjb250ZXh0IHRoYXQgd2UgbmVlZCB0byBhcHBseSBoZXJlPyBTZWUgb3B0aW9ucyBp
bnNpZGUgSW1hZ2VQYWludGluZ09wdGlvbnMuCisgICAgdXBkYXRlQ1RNKCpDR0dTdGF0ZUdldENU
TShnc3RhdGUpKTsKKworICAgIC8vIENvcmUgR3JhcGhpY3MgYXNzdW1lcyBhICJ5IHVwIiBjb29y
ZGluYXRlIHN5c3RlbSwgYnV0IGluIFdlYktpdCwgd2UgdXNlIGEgInktZG93biIgY29vcmRpbmF0
ZSBzeXN0ZW0uCisgICAgLy8gVGhpcyBtZWFucyB0aGF0IFdlYktpdCdzIGRyYXdpbmcgcm91dGlu
ZXMgKEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKCkpIGludGVudGlvbmFsbHkgZHJhdyBpbWFn
ZXMgdXBzaWRlLWRvd24gZnJvbSBDb3JlIEdyYXBoaWNzJ3MgcG9pbnQgb2Ygdmlldy4KKyAgICAv
LyAoVGhlcmUncyBhIHktZmxpcCBpbnNpZGUgdGhlIGltcGxlbWVudGF0aW9uIG9mIEdyYXBoaWNz
Q29udGV4dDo6ZHJhd0ltYWdlKCkuKQorICAgIC8vIFRoZSByZWN0IGhhcyB0aGUgcmlnaHQgYm91
bmRzLCBidXQgd2UgbmVlZCB0byB0cmFuc2Zvcm0gZnJvbSBDRydzIGNvb3JkaW5hdGUgc3lzdGVt
IHRvIFdlYktpdCdzIGJ5IHBlcmZvcm1pbmcgb3VyIG93biB5LWZsaXAgc28gaW1hZ2VzIGFyZSBk
cmF3biB0aGUgcmlnaHQtc2lkZS11cC4KKyAgICAvLyBXZSBkbyB0aGlzIGF0IHRoZSBib3VuZGFy
eSBiZXR3ZWVuIHRoZSB0d28gQVBJcywgd2hpY2ggaXMgcmlnaHQgaGVyZS4KKyAgICBtX293bmVy
LnRyYW5zbGF0ZSgwLCByZWN0LnNpemUuaGVpZ2h0ICsgMiAqIHJlY3Qub3JpZ2luLnkpOworICAg
IG1fb3duZXIuc2NhbGUoRmxvYXRTaXplKDEsIC0xKSk7CisKKyAgICBhdXRvIGltYWdlID0gQml0
bWFwSW1hZ2U6OmNyZWF0ZShjZ0ltYWdlKTsKKyAgICBtX293bmVyLmFwcGVuZEl0ZW1BbmRVcGRh
dGVFeHRlbnQoRHJhd0ltYWdlOjpjcmVhdGUoaW1hZ2UsIHJlY3QsIHt7IH0sIGltYWdlLT5zaXpl
KCl9LCB7IEltYWdlT3JpZW50YXRpb246Ok9yaWdpblRvcFJpZ2h0IH0pKTsKKworICAgIC8vIFVu
ZG8gdGhlIGFib3ZlIHktZmxpcCB0byByZXN0b3JlIHRoZSBjb250ZXh0LgorICAgIG1fb3duZXIu
c2NhbGUoRmxvYXRTaXplKDEsIC0xKSk7CisgICAgbV9vd25lci50cmFuc2xhdGUoMCwgLShyZWN0
LnNpemUuaGVpZ2h0ICsgMiAqIHJlY3Qub3JpZ2luLnkpKTsKK30KKwordm9pZCBEcmF3R2x5cGhz
UmVjb3JkZXI6OmRyYXdHbHlwaHMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZmZXIm
IGdseXBoQnVmZmVyLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZs
b2F0UG9pbnQmIHN0YXJ0UG9pbnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCit7
CisgICAgcHJlcGFyZUludGVybmFsQ29udGV4dChmb250LCBzbW9vdGhpbmdNb2RlKTsKKyAgICBG
b250Q2FzY2FkZTo6ZHJhd0dseXBocyhtX2ludGVybmFsQ29udGV4dCwgZm9udCwgZ2x5cGhCdWZm
ZXIsIGZyb20sIG51bUdseXBocywgc3RhcnRQb2ludCwgc21vb3RoaW5nTW9kZSk7CisgICAgY29u
Y2x1ZGVJbnRlcm5hbENvbnRleHQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgRGlzcGxheUxpc3QK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVy
SGFyZkJ1enouY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjIzYWMzMjRiN2IwMGE5ZTE2YTU2YWQ2NzBjZTA0Y2ZhNzdmYzlmYTgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHAKQEAgLTAsMCArMSw1MSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIgorCisjaW5j
bHVkZSAiRGlzcGxheUxpc3RJdGVtcy5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0UmVjb3JkZXIu
aCIKKyNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiRm9udC5oIgorI2luY2x1ZGUg
IkdseXBoQnVmZmVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIERpc3Bs
YXlMaXN0IHsKKworRHJhd0dseXBoc1JlY29yZGVyOjpEcmF3R2x5cGhzUmVjb3JkZXIoUmVjb3Jk
ZXImIG93bmVyKQorICAgIDogbV9vd25lcihvd25lcikKK3sKK30KKwordm9pZCBEcmF3R2x5cGhz
UmVjb3JkZXI6OmRyYXdHbHlwaHMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZmZXIm
IGdseXBoQnVmZmVyLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZs
b2F0UG9pbnQmIHN0YXJ0UG9pbnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCit7
CisgICAgbV9vd25lci5hcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KERyYXdHbHlwaHM6OmNyZWF0
ZShmb250LCBnbHlwaEJ1ZmZlci5nbHlwaHMoZnJvbSksIGdseXBoQnVmZmVyLmFkdmFuY2VzKGZy
b20pLCBudW1HbHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGluZ01vZGUpKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgRGlzcGxheUxpc3QKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCmluZGV4IDFjNTRhZTgyMjkzOTQyMGRkNDBi
N2I3MGJhN2UzOWRiYmE2NWZlOWIuLjRhODU2Y2JiOWNkYmM0ZGI5MTgyMjU4ZmYxYmY0OWVmMDQ2
YTNiNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKQEAgLTQx
LDYgKzQxLDcgQEAgUmVjb3JkZXI6OlJlY29yZGVyKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwg
RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBjb25zdCBHcmEKICAgICA6IEdyYXBoaWNzQ29udGV4
dEltcGwoY29udGV4dCwgaW5pdGlhbENsaXAsIEFmZmluZVRyYW5zZm9ybSgpKQogICAgICwgbV9k
aXNwbGF5TGlzdChkaXNwbGF5TGlzdCkKICAgICAsIG1fb2JzZXJ2ZXIob2JzZXJ2ZXIpCisgICAg
LCBtX2RyYXdHbHlwaHNSZWNvcmRlcigqdGhpcykKIHsKICAgICBMT0dfV0lUSF9TVFJFQU0oRGlz
cGxheUxpc3RzLCBzdHJlYW0gPDwgIlxuUmVjb3JkaW5nIHdpdGggY2xpcCAiIDw8IGluaXRpYWxD
bGlwKTsKICAgICBtX3N0YXRlU3RhY2suYXBwZW5kKHsgc3RhdGUsIGluaXRpYWxDVE0sIGluaXRp
YWxDbGlwIH0pOwpAQCAtMTExLDcgKzExMiw3IEBAIHZvaWQgUmVjb3JkZXI6OnNldE1pdGVyTGlt
aXQoZmxvYXQgbWl0ZXJMaW1pdCkKIAogdm9pZCBSZWNvcmRlcjo6ZHJhd0dseXBocyhjb25zdCBG
b250JiBmb250LCBjb25zdCBHbHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIHVuc2lnbmVkIGZyb20s
IHVuc2lnbmVkIG51bUdseXBocywgY29uc3QgRmxvYXRQb2ludCYgc3RhcnRQb2ludCwgRm9udFNt
b290aGluZ01vZGUgc21vb3RoaW5nTW9kZSkKIHsKLSAgICBhcHBlbmRJdGVtQW5kVXBkYXRlRXh0
ZW50KERyYXdHbHlwaHM6OmNyZWF0ZShmb250LCBnbHlwaEJ1ZmZlci5nbHlwaHMoZnJvbSksIGds
eXBoQnVmZmVyLmFkdmFuY2VzKGZyb20pLCBudW1HbHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGlu
Z01vZGUpKTsKKyAgICBtX2RyYXdHbHlwaHNSZWNvcmRlci5kcmF3R2x5cGhzKGZvbnQsIGdseXBo
QnVmZmVyLCBmcm9tLCBudW1HbHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGluZ01vZGUpOwogfQog
CiBJbWFnZURyYXdSZXN1bHQgUmVjb3JkZXI6OmRyYXdJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0
IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJ
bWFnZVBhaW50aW5nT3B0aW9ucyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCkBAIC0zODYsMTMgKzM4
Nyw2IEBAIHZvaWQgUmVjb3JkZXI6OmFwcGVuZEl0ZW1BbmRVcGRhdGVFeHRlbnQoUmVmPERyYXdp
bmdJdGVtPiYmIGl0ZW0pCiAgICAgdXBkYXRlSXRlbUV4dGVudChuZXdJdGVtKTsKIH0KIAotdGVt
cGxhdGU8dHlwZW5hbWUgSXRlbVR5cGU+Ci1JdGVtVHlwZSYgUmVjb3JkZXI6OmFwcGVuZEl0ZW0o
UmVmPEl0ZW1UeXBlPiYmIGl0ZW0pCi17Ci0gICAgd2lsbEFwcGVuZEl0ZW0oaXRlbS5nZXQoKSk7
Ci0gICAgcmV0dXJuIGRvd25jYXN0PEl0ZW1UeXBlPihtX2Rpc3BsYXlMaXN0LmFwcGVuZChXVEZN
b3ZlKGl0ZW0pKSk7Ci19Ci0KIHZvaWQgUmVjb3JkZXI6OnVwZGF0ZUl0ZW1FeHRlbnQoRHJhd2lu
Z0l0ZW0mIGl0ZW0pIGNvbnN0CiB7CiAgICAgaWYgKE9wdGlvbmFsPEZsb2F0UmVjdD4gcmVjdCA9
IGl0ZW0ubG9jYWxCb3VuZHMoZ3JhcGhpY3NDb250ZXh0KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3Jk
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdFJlY29yZGVyLmgKaW5kZXggOWVlMWQzOTM4ZjIzMmYzZjE4ZDk3OGFmNzE4NzAxZDhi
ZTQ2MzA3Mi4uOGU3NTk2NGUyNDhjMzNhZGY2NmQ3YzYyYWVmMDhjNTAwZTExYzMxYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0UmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJh
Z21hIG9uY2UKIAogI2luY2x1ZGUgIkRpc3BsYXlMaXN0LmgiCisjaW5jbHVkZSAiRGlzcGxheUxp
c3REcmF3R2x5cGhzUmVjb3JkZXIuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRJbXBsLmgi
CiAjaW5jbHVkZSAiSW1hZ2UuaCIgLy8gRm9yIEltYWdlOjpUaWxlUnVsZS4KICNpbmNsdWRlICJU
ZXh0RmxhZ3MuaCIKQEAgLTYxLDggKzYyLDYgQEAgcHVibGljOgogCiAgICAgc2l6ZV90IGl0ZW1D
b3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheUxpc3QuaXRlbUNvdW50KCk7IH0KIAotICAg
IHZvaWQgYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChSZWY8RHJhd2luZ0l0ZW0+JiYpOwotCiAg
ICAgY2xhc3MgT2JzZXJ2ZXIgewogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB+T2JzZXJ2
ZXIoKSB7IH0KQEAgLTcwLDYgKzY5LDcgQEAgcHVibGljOgogICAgIH07CiAKIHByaXZhdGU6Cisg
ICAgZnJpZW5kIGNsYXNzIERyYXdHbHlwaHNSZWNvcmRlcjsKICAgICBib29sIGhhc1BsYXRmb3Jt
Q29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgUGxhdGZvcm1H
cmFwaGljc0NvbnRleHQqIHBsYXRmb3JtQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IG51bGxwdHI7IH0KIApAQCAtMTQ5LDYgKzE0OSw3IEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgSXRlbVR5cGU+CiAgICAgSXRlbVR5cGUmIGFwcGVuZEl0ZW0oUmVmPEl0ZW1UeXBl
PiYmKTsKICAgICB2b2lkIHdpbGxBcHBlbmRJdGVtKGNvbnN0IEl0ZW0mKTsKKyAgICB2b2lkIGFw
cGVuZEl0ZW1BbmRVcGRhdGVFeHRlbnQoUmVmPERyYXdpbmdJdGVtPiYmKTsKIAogICAgIEZsb2F0
UmVjdCBleHRlbnRGcm9tTG9jYWxCb3VuZHMoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7CiAgICAg
dm9pZCB1cGRhdGVJdGVtRXh0ZW50KERyYXdpbmdJdGVtJikgY29uc3Q7CkBAIC0xOTEsOCArMTky
LDE3IEBAIHByaXZhdGU6CiAgICAgT2JzZXJ2ZXIqIG1fb2JzZXJ2ZXI7CiAKICAgICBWZWN0b3I8
Q29udGV4dFN0YXRlLCAzMj4gbV9zdGF0ZVN0YWNrOworCisgICAgRHJhd0dseXBoc1JlY29yZGVy
IG1fZHJhd0dseXBoc1JlY29yZGVyOwogfTsKIAordGVtcGxhdGU8dHlwZW5hbWUgSXRlbVR5cGU+
CitJdGVtVHlwZSYgUmVjb3JkZXI6OmFwcGVuZEl0ZW0oUmVmPEl0ZW1UeXBlPiYmIGl0ZW0pCit7
CisgICAgd2lsbEFwcGVuZEl0ZW0oaXRlbS5nZXQoKSk7CisgICAgcmV0dXJuIGRvd25jYXN0PEl0
ZW1UeXBlPihtX2Rpc3BsYXlMaXN0LmFwcGVuZChXVEZNb3ZlKGl0ZW0pKSk7Cit9CisKIH0KIH0K
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411305</attachid>
            <date>2020-10-14 00:35:50 -0700</date>
            <delta_ts>2020-10-15 18:47:35 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-217506-20201014003549.patch</filename>
            <type>text/plain</type>
            <size>50392</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzIwZGU3Njg3ZTU0NTk5
YjM1ZWJjMmM2MDg5MWEzNTRlMjhmNGM3MC4uYzFmNjRlMTM4MDQ4YzJmNGNlYTNiNTJhMGI5NWY4
ZjkyZjUwODY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDIwLTEwLTA5ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBb
R1BVIFByb2Nlc3NdIFBlcmZvcm0gaW1hZ2UgZGVjb2Rpbmcgb2YgY29sb3IgZm9udHMgaW4gdGhl
IFdlYiBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTc1MDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY5NzY4MTg2PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09Q
UyEpLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2Eu
dHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9GcmVlVHlwZS5jbWFrZToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0ds
eXBoc1JlY29yZGVyQ29yZVRleHQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpkcmF3R2x5cGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpkcmF3
SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRl
cjo6Y3JlYXRlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpEcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdHbHlwaHNSZWNvcmRlcik6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpwcmVwYXJlSW50ZXJuYWxDb250
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6
OmNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
Ojpjb21wdXRlQWR2YW5jZXNGcm9tUG9zaXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZERyYXdHbHlwaHMpOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6cmVjb3JkRHJhd0ltYWdl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OmRy
YXdHbHlwaHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpEcmF3R2x5cGhzUmVjb3Jk
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6
ZHJhd0dseXBocyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdH
bHlwaHM6OkRyYXdHbHlwaHMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdH
bHlwaHM6OmNvbXB1dGVCb3VuZHMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRy
YXdHbHlwaHM6OmxvY2FsQm91bmRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtcy5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRy
YXdHbHlwaHM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ds
eXBoczo6bG9jYWxBbmNob3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdHbHlwaHM6OmFuY2hvclBvaW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEcmF3R2x5cGhzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRyYXdHbHlwaHM6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6RHJhd0dseXBoczo6YmxvY2tMb2NhdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoczo6c2V0QmxvY2tMb2NhdGlvbik6IERl
bGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVy
OjpSZWNvcmRlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmRy
YXdHbHlwaHMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpkcmF3
SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpkcmF3VGls
ZWRJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmRyYXdO
YXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmRy
YXdQYXR0ZXJuKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6YmVn
aW5UcmFuc3BhcmVuY3lMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVj
b3JkZXI6OmRyYXdSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRl
cjo6ZHJhd0xpbmUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpk
cmF3TGluZXNGb3JUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRl
cjo6ZHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6UmVjb3JkZXI6OmRyYXdFbGxpcHNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpSZWNvcmRlcjo6ZHJhd1BhdGgpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlY29yZGVyOjpkcmF3Rm9jdXNSaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpSZWNvcmRlcjo6ZmlsbFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJl
Y29yZGVyOjpmaWxsUm91bmRlZFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlY29yZGVyOjpmaWxsUmVjdFdpdGhSb3VuZGVkSG9sZSk6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6UmVjb3JkZXI6OmZpbGxQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpSZWNvcmRlcjo6ZmlsbEVsbGlwc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OlJlY29yZGVyOjpzdHJva2VSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpSZWNvcmRlcjo6c3Ryb2tlUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6UmVjb3JkZXI6OnN0cm9rZUVsbGlwc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlJlY29yZGVyOjpjbGVhclJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlY29yZGVyOjphcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oOgorCiAyMDIwLTEw
LTEzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU2ltcGxpZnkg
QXVkaW9Ob2RlOjpjaGVja051bWJlck9mQ2hhbm5lbHNGb3JJbnB1dCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwppbmRleCBjNGQzMzQyOWRiZTZiMGMyMGRhNzkyMzFjNmIzM2VmYzhiZDU3OTYyLi42NjI5ZjM5
OGI2MDg1MzgzOGRlM2FmN2NmZDlkOTFhOTM5NTQzZWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMyBAQAorMjAyMC0xMC0wOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRA
YXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gW0dQVSBQcm9jZXNzXSBQZXJmb3JtIGltYWdl
IGRlY29kaW5nIG9mIGNvbG9yIGZvbnRzIGluIHRoZSBXZWIgUHJvY2VzcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTA2CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS82OTc2ODE4Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg6CisKIDIwMjAtMTAt
MTMgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBs
ZWZ0b3ZlciBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4IHN1cHBvcnQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCmluZGV4IDU3ZjgzMjRiMDEyNWNhZmYxYWZlMGQzYmJlNTY2OTNlZjZlYjg5ZmQuLmNl
YTEwOWYyNjAwYmFlMjVkNjQ3NDUxZWMyMWI0NzVjNmIyODQxMTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQpAQCAtMTIyOSw2ICsxMjI5LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVB
REVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0V4dGVuc2lvbnNHTEFOR0xFLmgKIAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5oCisgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVy
LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5n
Q29udGV4dC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SW1hZ2VCdWZmZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1zLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0Nv
cmVHcmFwaGljc1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBo
aWNzU1BJLmgKaW5kZXggYTdmODJiODYxYjYyYzRhZWZiODNjMTgxMWQ1NWM3YWY3NDllNmI5MS4u
M2NkMTQwZDBmZTQ3NTk0ZTRmMzJiNDY4OTNkMTliZmZlMzA4NDI2MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKQEAgLTM4LDYgKzM4LDcg
QEAKIAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKKyNpbmNsdWRlIDxDb3JlR3JhcGhp
Y3MvQ0dDb250ZXh0RGVsZWdhdGVQcml2YXRlLmg+CiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NH
Rm9udENhY2hlLmg+CiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHUGF0aFByaXZhdGUuaD4KICNp
bmNsdWRlIDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBoaWNzUHJpdmF0ZS5oPgpAQCAtNTgsMTkgKzU5
LDEyIEBAIHN0cnVjdCBDR0ZvbnRITWV0cmljcyB7CiAgICAgaW50IG1pblJpZ2h0U2lkZUJlYXJp
bmc7CiB9OwogCi1zdHJ1Y3QgQ0dGb250RGVzY3JpcHRvciB7Ci0gICAgQ0dSZWN0IGJib3g7Ci0g
ICAgQ0dGbG9hdCBhc2NlbnQ7Ci0gICAgQ0dGbG9hdCBkZXNjZW50OwotICAgIENHRmxvYXQgY2Fw
SGVpZ2h0OwotICAgIENHRmxvYXQgaXRhbGljQW5nbGU7Ci0gICAgQ0dGbG9hdCBzdGVtVjsKLSAg
ICBDR0Zsb2F0IHN0ZW1IOwotICAgIENHRmxvYXQgYXZnV2lkdGg7Ci0gICAgQ0dGbG9hdCBtYXhX
aWR0aDsKLSAgICBDR0Zsb2F0IG1pc3NpbmdXaWR0aDsKLSAgICBDR0Zsb2F0IGxlYWRpbmc7Ci0g
ICAgQ0dGbG9hdCB4SGVpZ2h0OwordHlwZWRlZiBDRl9FTlVNIChpbnQzMl90LCBDR0NvbnRleHRE
ZWxlZ2F0ZUNhbGxiYWNrTmFtZSkKK3sKKyAgICBkZURyYXdJbWFnZSA9IDcsCisgICAgZGVEcmF3
R2x5cGhzID0gOCwKKyAgICBkZUJlZ2luTGF5ZXIgPSAxNywKKyAgICBkZUVuZExheWVyID0gMTgs
CiB9OwogCiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBDR0NvbG9yVHJhbnNmb3JtKiBDR0NvbG9yVHJh
bnNmb3JtUmVmOwpAQCAtMTkzLDYgKzE4NywxMSBAQCBzdGF0aWMgY29uc3QgQ0dTTm90aWZpY2F0
aW9uVHlwZSBrQ0dTZXNzaW9uQ29uc29sZURpc2Nvbm5lY3QgPSAoQ0dTTm90aWZpY2F0aW9uVAog
CiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCit0eXBlZGVmIHN0cnVjdCBDR0NvbnRleHREZWxl
Z2F0ZSAqQ0dDb250ZXh0RGVsZWdhdGVSZWY7Cit0eXBlZGVmIHZvaWQgKCpDR0NvbnRleHREZWxl
Z2F0ZUNhbGxiYWNrKSh2b2lkKTsKK3R5cGVkZWYgc3RydWN0IENHUmVuZGVyaW5nU3RhdGUgKkNH
UmVuZGVyaW5nU3RhdGVSZWY7Cit0eXBlZGVmIHN0cnVjdCBDR0dTdGF0ZSAqQ0dHU3RhdGVSZWY7
CisKICNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCkBAIC0yMzMsNyArMjMyLDYgQEAgdm9pZCBDR0NvbnRleHRSZXNldENsaXAoQ0dDb250ZXh0
UmVmKTsKIENHQ29udGV4dFR5cGUgQ0dDb250ZXh0R2V0VHlwZShDR0NvbnRleHRSZWYpOwogCiBD
RlN0cmluZ1JlZiBDR0ZvbnRDb3B5RmFtaWx5TmFtZShDR0ZvbnRSZWYpOwotYm9vbCBDR0ZvbnRH
ZXREZXNjcmlwdG9yKENHRm9udFJlZiwgQ0dGb250RGVzY3JpcHRvciopOwogYm9vbCBDR0ZvbnRH
ZXRHbHlwaEFkdmFuY2VzRm9yU3R5bGUoQ0dGb250UmVmLCBjb25zdCBDR0FmZmluZVRyYW5zZm9y
bSogLCBDR0ZvbnRSZW5kZXJpbmdTdHlsZSwgY29uc3QgQ0dHbHlwaFtdLCBzaXplX3QgY291bnQs
IENHU2l6ZSBhZHZhbmNlc1tdKTsKIHZvaWQgQ0dGb250R2V0R2x5cGhzRm9yVW5pY2hhcnMoQ0dG
b250UmVmLCBjb25zdCBVbmlDaGFyW10sIENHR2x5cGhbXSwgc2l6ZV90IGNvdW50KTsKIGNvbnN0
IENHRm9udEhNZXRyaWNzKiBDR0ZvbnRHZXRITWV0cmljcyhDR0ZvbnRSZWYpOwpAQCAtMjUyLDYg
KzI1MCwxNCBAQCBib29sIENHQ29udGV4dEdldEFsbG93c0ZvbnRTdWJwaXhlbFBvc2l0aW9uaW5n
KENHQ29udGV4dFJlZik7CiBib29sIENHQ29udGV4dERyYXdzV2l0aENvcnJlY3RTaGFkb3dPZmZz
ZXRzKENHQ29udGV4dFJlZik7CiBDR1BhdHRlcm5SZWYgQ0dQYXR0ZXJuQ3JlYXRlV2l0aEltYWdl
MihDR0ltYWdlUmVmLCBDR0FmZmluZVRyYW5zZm9ybSwgQ0dQYXR0ZXJuVGlsaW5nKTsKIAorQ0dD
b250ZXh0RGVsZWdhdGVSZWYgQ0dDb250ZXh0RGVsZWdhdGVDcmVhdGUodm9pZCogaW5mbyk7Cit2
b2lkIENHQ29udGV4dERlbGVnYXRlU2V0Q2FsbGJhY2soQ0dDb250ZXh0RGVsZWdhdGVSZWYsIENH
Q29udGV4dERlbGVnYXRlQ2FsbGJhY2tOYW1lLCBDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrKTsK
K0NHQ29udGV4dFJlZiBDR0NvbnRleHRDcmVhdGVXaXRoRGVsZWdhdGUoQ0dDb250ZXh0RGVsZWdh
dGVSZWYsIENHQ29udGV4dFR5cGUsIENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmKTsK
K3ZvaWQqIENHQ29udGV4dERlbGVnYXRlR2V0SW5mbyhDR0NvbnRleHREZWxlZ2F0ZVJlZik7Cit2
b2lkIENHQ29udGV4dERlbGVnYXRlUmVsZWFzZShDR0NvbnRleHREZWxlZ2F0ZVJlZik7CitDR0Zs
b2F0IENHR1N0YXRlR2V0QWxwaGEoQ0dHU3RhdGVSZWYpOworQ0dGb250UmVmIENHR1N0YXRlR2V0
Rm9udChDR0dTdGF0ZVJlZik7CisKICNpZiBIQVZFKENHUEFUSF9HRVRfTlVNQkVSX09GX0VMRU1F
TlRTKQogc2l6ZV90IENHUGF0aEdldE51bWJlck9mRWxlbWVudHMoQ0dQYXRoUmVmKTsKICNlbmRp
ZgpAQCAtMjg2LDE2ICsyOTIsOSBAQCBDR1JlY3QqIENHU05leHRSZWN0KGNvbnN0IENHU1JlZ2lv
bkVudW1lcmF0b3JPYmopOwogQ0dTUmVnaW9uRW51bWVyYXRvck9iaiBDR1NSZWdpb25FbnVtZXJh
dG9yKENHUmVnaW9uUmVmKTsKIENHU3R5bGVSZWYgQ0dTdHlsZUNyZWF0ZUZvY3VzUmluZ1dpdGhD
b2xvcihjb25zdCBDR0ZvY3VzUmluZ1N0eWxlKiwgQ0dDb2xvclJlZik7CiB2b2lkIENHQ29udGV4
dFNldFN0eWxlKENHQ29udGV4dFJlZiwgQ0dTdHlsZVJlZik7Ci0KIHZvaWQgQ0dDb250ZXh0RHJh
d0NvbmljR3JhZGllbnQoQ0dDb250ZXh0UmVmLCBDR0dyYWRpZW50UmVmLCBDR1BvaW50IGNlbnRl
ciwgQ0dGbG9hdCBhbmdsZSk7Ci0KLSNpZiBIQVZFKENHX1BBVEhfVU5FVkVOX0NPUk5FUlNfUk9V
TkRFRFJFQ1QpCiB2b2lkIENHUGF0aEFkZFVuZXZlbkNvcm5lcnNSb3VuZGVkUmVjdChDR011dGFi
bGVQYXRoUmVmLCBjb25zdCBDR0FmZmluZVRyYW5zZm9ybSAqLCBDR1JlY3QsIGNvbnN0IENHU2l6
ZSBjb3JuZXJzWzRdKTsKLSNlbmRpZgotCi0jaWYgSEFWRShDR19GT05UX1JFTkRFUklOR19HRVRf
Rk9OVF9TTU9PVEhJTkdfRElTQUJMRUQpCiBib29sIENHRm9udFJlbmRlcmluZ0dldEZvbnRTbW9v
dGhpbmdEaXNhYmxlZCh2b2lkKTsKLSNlbmRpZgogCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0Ep
CiAKQEAgLTMyOCwxNSArMzI3LDEwIEBAIGJvb2wgQ29sb3JTeW5jUHJvZmlsZUlzV2lkZUdhbXV0
KENvbG9yU3luY1Byb2ZpbGVSZWYpOwogc2l6ZV90IENHRGlzcGxheU1vZGVHZXRQaXhlbHNXaWRl
KENHRGlzcGxheU1vZGVSZWYpOwogc2l6ZV90IENHRGlzcGxheU1vZGVHZXRQaXhlbHNIaWdoKENH
RGlzcGxheU1vZGVSZWYpOwogCi0jaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JM
T0NLSU5HKQotCiBDR0Vycm9yIENHU1NldERlbnlXaW5kb3dTZXJ2ZXJDb25uZWN0aW9ucyhib29s
KTsKLQogdHlwZWRlZiBpbnQzMl90IENHU0Rpc3BsYXlJRDsKIENHU0Rpc3BsYXlJRCBDR1NNYWlu
RGlzcGxheUlEKHZvaWQpOwogCi0jZW5kaWYgLy8gRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VS
VkVSX0JMT0NLSU5HKQotCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCiAjaWYgRU5BQkxFKFBE
RktJVF9QTFVHSU4pICYmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1BcHBsZVdpbi5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRm
b3JtQXBwbGVXaW4uY21ha2UKaW5kZXggYTc4OGU2OWRlNzQ0MWM5NDA4NGY3MDM2YTNlOGY0OWFk
NDUxYTU4ZC4uMzhhMmI3NzY4OTU1OThhNGY0ZTM2YWRlN2M2MDNiMDQwNzhkZGM3NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1BcHBsZVdpbi5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybUFwcGxlV2luLmNtYWtlCkBAIC0zMCw2ICszMCw4IEBAIGxpc3QoQVBQ
RU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9j
Zi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vY2YvV2ViQ29yZUFWQ0ZSZXNvdXJjZUxvYWRlci5jcHAKIAorICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNv
cmRlckNvcmVUZXh0LmNwcAorCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEuY3BwCiAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL2NmL0F1dGhlbnRpY2F0aW9u
Q0YuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbkNhaXJvLmNtYWtl
IGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5DYWlyby5jbWFrZQppbmRleCBjNGI4NmMxNDg5
YWFjOWE1ZTJlYTAwNDAwMjBmMzQxOTY2YTE0NTMzLi5iZmUwOGQ3YTY0OTg3NzI5NzM0N2Y4NmJl
Zjg0MGUzZTY5ZjI4ODhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbkNh
aXJvLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UKQEAg
LTE4LDYgKzE4LDggQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvR0xDb250ZXh0LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlz
cGxheS5jcHAKIAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dERyYXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcAorCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy93aW4vRm9udFBsYXRmb3JtRGF0YUNhaXJvV2luLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L3dpbi9HbHlwaFBhZ2VUcmVlTm9kZUNhaXJvV2luLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQK
aW5kZXggZDZmNmY1Y2ZkZjA5ZGRmMWMzZTI2YzY1NmNjYWM2Y2U3OWUxYzIyYS4uZTVkMWFiZjc1
NjUzMzVhYTFkOGIxMjVhZTU0OTlkZTM4Mjk4YzM0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0
CkBAIC0zNzgsNiArMzc4LDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNl
c3Npb25WVC5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5j
cHAKIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcAogcGxhdGZv
cm0vZ3JhcGhpY3MvY29yZWltYWdlL0ZpbHRlckVmZmVjdFJlbmRlcmVyQ29yZUltYWdlLm1tCitw
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3Jk
ZXJDb3JlVGV4dC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9UZXh0dXJlLmNwcAogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L1RpbGluZ0RhdGEuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29j
b2EvR1BVQmluZEdyb3VwQWxsb2NhdG9yTWV0YWwubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0YzA3NTc4MDk2ZjQ2Y2ZhMTdj
NDgwZjMzNTM1ZDdlM2M0OGE5OWJkLi5iN2Y3MzFlMjk3OTE3NDViNzUxZmM1NWQyYWY4MzIzMDQ3
NGFkZDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC02MTksNiArNjE5LDcgQEAKIAkJMUNBRjM0ODEwQTZDNDA1MjAwQUJFMDZF
IC8qIFdlYlNjcmlwdE9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUNBRjM0N0UwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFDQUYz
NDgyMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FGMzQ3RjBBNkM0MDUyMDBBQkUwNkUg
LyogV2ViU2NyaXB0T2JqZWN0Lm1tICovOyB9OwogCQkxQ0FGMzQ4MzBBNkM0MDUyMDBBQkUwNkUg
LyogV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUNBRjM0ODAwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9i
amVjdFByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQkxQ0FGNTZEQjI1MzAxQUM4MDAxN0I0NzIgLyogRGlzcGxheUxpc3REcmF3R2x5cGhz
UmVjb3JkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFDQUY1NkQ4MjUzMDE0NTcwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFD
Q0Q4MTUwMjIzMUY4M0UwMDY1RkMyQiAvKiBXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlv
blF1ZXVlRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMTUyNTUxNDE2RkQyMzRGMDAzRDdBREIgLyogV2ViQ29yZVJlc291cmNlSGFuZGxl
QXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tICovOyB9OwogCQkxQ0NERjVCRTE5OTAzMzI0MDBC
Q0VCQUQgLyogU1ZHVG9PVEZGb250Q29udmVyc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDREY1QkMxOTkwMzMyNDAwQkNFQkFEIC8qIFNWR1Rv
T1RGRm9udENvbnZlcnNpb24uaCAqLzsgfTsKIAkJMUNGQUUzMjMwQTZENkEzRjAwMzI1OTNEIC8q
IGxpYm9iamMuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQ0ZBRTMyMjBBNkQ2QTNGMDAzMjU5M0QgLyogbGlib2JqYy5keWxpYiAqLzsgfTsK
QEAgLTY3MTYsNiArNjcxNyw4IEBACiAJCTFDQUYzNDdFMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJT
Y3JpcHRPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU2NyaXB0
T2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUYzNDdGMEE2QzQwNTIw
MEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXZWJTY3JpcHRPYmplY3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTFDQUYzNDgwMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3RQcml2YXRl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNjcmlwdE9iamVjdFByaXZh
dGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNBRjU2RDgyNTMwMTQ1NzAwMTdC
NDcyIC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERp
c3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFDQUY1NkRFMjUzMDI0NUEwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNv
cmRlckNvcmVUZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpc3BsYXlMaXN0RHJhd0dseXBo
c1JlY29yZGVyQ29yZVRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0I1
RkU4ODIyREVCQzhCMDA5NDQwRTIgLyogV0hMU0xFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExT
TEVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQjY5QjMyMjFERUQ0MEIw
MDZFODQ2QSAvKiBXSExTTFJlc29sdmFibGVUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdITFNMUmVz
b2x2YWJsZVR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNCNjlCMzQyMURF
RDYzQTAwNkU4NDZBIC8qIFdITFNMRmxvYXRMaXRlcmFsVHlwZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
SExTTEZsb2F0TGl0ZXJhbFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3
NTEwLDYgKzE3NTEzLDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTBGRTVGQkNBMUMzREQ1MUUw
MDA3QTJDQSAvKiBEaXNwbGF5TGlzdC5jcHAgKi8sCiAJCQkJMEZFNUZCQ0IxQzNERDUxRTAwMDdB
MkNBIC8qIERpc3BsYXlMaXN0LmggKi8sCisJCQkJMUNBRjU2RDgyNTMwMTQ1NzAwMTdCNDcyIC8q
IERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmggKi8sCisJCQkJMUNBRjU2REUyNTMwMjQ1
QTAwMTdCNDcyIC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwICov
LAogCQkJCTU1QzBBMjk1MjNGRTJDRTAwMEYyQ0I5MyAvKiBEaXNwbGF5TGlzdERyYXdpbmdDb250
ZXh0LmNwcCAqLywKIAkJCQk3MkVBMDlGOTIzRkNDQzZBMDA4NTA0QTUgLyogRGlzcGxheUxpc3RE
cmF3aW5nQ29udGV4dC5oICovLAogCQkJCTcyRUEwOUY3MjNGQ0NCM0QwMDg1MDRBNSAvKiBEaXNw
bGF5TGlzdEltYWdlQnVmZmVyLmggKi8sCkBAIC0zMTIzMiw2ICszMTIzNyw3IEBACiAJCQkJN0VE
QUFGQzkxOUEyQ0NEQzAwMzRERkQxIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY3OTBGNDIyNTE3Q0U2RTAwOUJBMDM0IC8qIERpc3BsYXlMYXllckNvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTVGQkQzMUMzREQ1MUUwMDA3QTJDQSAvKiBE
aXNwbGF5TGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNBRjU2REIyNTMwMUFDODAwMTdCNDcy
IC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
NUFEMDk0MDI0MDg5NjQwMDBERTREMkYgLyogRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTVBRDA5M0UyNDA4OTYzNTAwREU0RDJGIC8qIERpc3BsYXlMaXN0
SW1hZ2VCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTVGQkQ1MUMzREQ1MUUwMDA3QTJD
QSAvKiBEaXNwbGF5TGlzdEl0ZW1zLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvV2ViQ29y
ZS54Y3NjaGVtZSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3hjc2hhcmVkZGF0
YS94Y3NjaGVtZXMvV2ViQ29yZS54Y3NjaGVtZQppbmRleCAxNTgyZTFhM2M1NmRmOWU3ODIwMGQ5
OWE5OTg2ODA1OTFiNGNkZjBiLi4wN2U5NDE5ZjVmMjZmNzFmZThiNGFiZDdhZDNjYmQ5ZTllNmEz
YWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai94Y3NoYXJl
ZGRhdGEveGNzY2hlbWVzL1dlYkNvcmUueGNzY2hlbWUKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2oveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9XZWJDb3JlLnhjc2NoZW1lCkBA
IC00MCw2ICs0MCwxMSBAQAogICAgICAgZGVidWdEb2N1bWVudFZlcnNpb25pbmcgPSAiWUVTIgog
ICAgICAgZGVidWdTZXJ2aWNlRXh0ZW5zaW9uID0gImludGVybmFsIgogICAgICAgYWxsb3dMb2Nh
dGlvblNpbXVsYXRpb24gPSAiWUVTIj4KKyAgICAgIDxQYXRoUnVubmFibGUKKyAgICAgICAgIHJ1
bm5hYmxlRGVidWdnaW5nTW9kZSA9ICIwIgorICAgICAgICAgQnVuZGxlSWRlbnRpZmllciA9ICJv
cmcud2Via2l0Lk1pbmlCcm93c2VyIgorICAgICAgICAgRmlsZVBhdGggPSAiL1VzZXJzL21tYXhm
aWVsZC9CdWlsZC9Qcm9kdWN0cy9EZWJ1Zy9NaW5pQnJvd3Nlci5hcHAiPgorICAgICAgPC9QYXRo
UnVubmFibGU+CiAgICA8L0xhdW5jaEFjdGlvbj4KICAgIDxQcm9maWxlQWN0aW9uCiAgICAgICBi
dWlsZENvbmZpZ3VyYXRpb24gPSAiUmVsZWFzZSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJlZVR5
cGUuY21ha2UKaW5kZXggN2MwNGQ5M2E1Yjg1YzczMjU4MWM5NWEwNjViZTA1YjYzNjdjN2FlNC4u
ZjM4YjU0ZTE3YzkzMTU2NTE1NGNhYjk1M2E4MWUwZTk2ZjU3NDlhNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJlZVR5cGUuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vRnJlZVR5cGUuY21ha2UKQEAgLTUsNiArNSw4IEBAIGxpc3QoQVBQRU5EIFdlYkNv
cmVfUFJJVkFURV9JTkNMVURFX0RJUkVDVE9SSUVTCiApCiAKIGxpc3QoQVBQRU5EIFdlYkNvcmVf
U09VUkNFUworICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERy
YXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcAorCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJl
ZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5
cGUvRm9udEN1c3RvbVBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2ZyZWV0eXBlL0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5oCmluZGV4IGZkOTllZDE1NDNhMDg1
YjI1Y2I5MTU2MWMwNTNmMzJiM2YxYjA0YTYuLmJkNmU1ODlkYjg5ZjAzZTZkZTNiNmRjNjVjZjg2
MDE1N2Y1NmI4MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRDYXNjYWRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dENhc2NhZGUuaApAQCAtODMsNyArODMsOSBAQCBzdHJ1Y3QgR2x5cGhPdmVyZmxvdyB7CiAKICNp
ZiBVU0UoQ09SRV9URVhUKQogdm9pZCBzaG93TGV0dGVycHJlc3NlZEdseXBoc1dpdGhBZHZhbmNl
cyhjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgRm9udCYsIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0
IENHR2x5cGgqLCBjb25zdCBDR1NpemUqIGFkdmFuY2VzLCB1bnNpZ25lZCBjb3VudCk7Ci12b2lk
IGZpbGxWZWN0b3JXaXRoSG9yaXpvbnRhbEdseXBoUG9zaXRpb25zKFZlY3RvcjxDR1BvaW50LCAy
NTY+JiBwb3NpdGlvbnMsIENHQ29udGV4dFJlZiwgY29uc3QgQ0dTaXplKiBhZHZhbmNlcywgdW5z
aWduZWQgY291bnQpOwordm9pZCBmaWxsVmVjdG9yV2l0aEhvcml6b250YWxHbHlwaFBvc2l0aW9u
cyhWZWN0b3I8Q0dQb2ludCwgMjU2PiYgcG9zaXRpb25zLCBDR0NvbnRleHRSZWYsIGNvbnN0IENH
U2l6ZSogYWR2YW5jZXMsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBGbG9hdFBvaW50Jik7CitBZmZp
bmVUcmFuc2Zvcm0gY29tcHV0ZU92ZXJhbGxUZXh0TWF0cml4KGNvbnN0IEZvbnQmKTsKK0FmZmlu
ZVRyYW5zZm9ybSBjb21wdXRlVmVydGljYWxUZXh0TWF0cml4KGNvbnN0IEZvbnQmLCBjb25zdCBB
ZmZpbmVUcmFuc2Zvcm0mIHByZXZpb3VzVGV4dE1hdHJpeCk7CiAjZW5kaWYKIAogY2xhc3MgVGV4
dExheW91dERlbGV0ZXIgewpAQCAtMzA3LDggKzMwOSw2IEBAIHByaXZhdGU6CiAgICAgICAgIHJl
dHVybiBhZHZhbmNlZFRleHRSZW5kZXJpbmdNb2RlKCk7CiAgICAgfQogCi0gICAgc3RhdGljIGlu
dCBzeW50aGV0aWNPYmxpcXVlQW5nbGUoKSB7IHJldHVybiAxNDsgfQotCiAjaWYgUExBVEZPUk0o
V0lOKSAmJiBVU0UoQ0cpCiAgICAgc3RhdGljIGRvdWJsZSBzX2ZvbnRTbW9vdGhpbmdDb250cmFz
dDsKICAgICBzdGF0aWMgdWludDMyX3Qgc19mb250U21vb3RoaW5nVHlwZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYXNjYWRlQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FzY2FkZUNv
Y29hLm1tCmluZGV4IGZkYzY4OTI3ZmY5OTFlMmUyMWRiYzdhMmU2ZDdiYjFmOGJhM2JkNDUuLmUy
OWFlY2RmYmZlNjgwMDY3ZmNiYTE5MzlmYWU1MWVkYzg3OTJkNGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYXNjYWRlQ29jb2EubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhc2NhZGVDb2Nv
YS5tbQpAQCAtNjIsOSArNjIsOCBAQCB2b2lkIHNob3dMZXR0ZXJwcmVzc2VkR2x5cGhzV2l0aEFk
dmFuY2VzKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBjb25zdCBGb250JiBmbwogCiAgICAgQ0dD
b250ZXh0UmVmIGNvbnRleHQgPSBjb3JlQ29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKTsKIAotICAg
IENHQ29udGV4dFNldFRleHRQb3NpdGlvbihjb250ZXh0LCBwb2ludC54KCksIHBvaW50LnkoKSk7
CiAgICAgVmVjdG9yPENHUG9pbnQsIDI1Nj4gcG9zaXRpb25zKGNvdW50KTsKLSAgICBmaWxsVmVj
dG9yV2l0aEhvcml6b250YWxHbHlwaFBvc2l0aW9ucyhwb3NpdGlvbnMsIGNvbnRleHQsIGFkdmFu
Y2VzLCBjb3VudCk7CisgICAgZmlsbFZlY3RvcldpdGhIb3Jpem9udGFsR2x5cGhQb3NpdGlvbnMo
cG9zaXRpb25zLCBjb250ZXh0LCBhZHZhbmNlcywgY291bnQsIHBvaW50KTsKIAogICAgIENURm9u
dFJlZiBjdEZvbnQgPSBwbGF0Zm9ybURhdGEuY3RGb250KCk7CiAgICAgQ0dDb250ZXh0U2V0Rm9u
dFNpemUoY29udGV4dCwgQ1RGb250R2V0U2l6ZShjdEZvbnQpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRDYXNjYWRlQ29yZVRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udENhc2Nh
ZGVDb3JlVGV4dC5jcHAKaW5kZXggZmM2NmFjYzY0N2Y2OTE4ZDM3ZjY4M2Y1ZTU2YmI2ZmJkM2Yw
Nzk4Mi4uZDg0NWIzYjEwYThkMDdjMmU3ZmIxN2M0ZTM5Y2MzZmUyMzcxYTliNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udENhc2NhZGVD
b3JlVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRl
eHQvRm9udENhc2NhZGVDb3JlVGV4dC5jcHAKQEAgLTYxLDEwICs2MSwxNyBAQCBib29sIEZvbnRD
YXNjYWRlOjppc1N1YnBpeGVsQW50aWFsaWFzaW5nQXZhaWxhYmxlKCkKICNlbmRpZgogfQogCi12
b2lkIGZpbGxWZWN0b3JXaXRoSG9yaXpvbnRhbEdseXBoUG9zaXRpb25zKFZlY3RvcjxDR1BvaW50
LCAyNTY+JiBwb3NpdGlvbnMsIENHQ29udGV4dFJlZiBjb250ZXh0LCBjb25zdCBDR1NpemUqIGFk
dmFuY2VzLCB1bnNpZ25lZCBjb3VudCkKK3N0YXRpYyBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHJv
dGF0ZUxlZnRUcmFuc2Zvcm0oKQogeworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBZmZpbmVU
cmFuc2Zvcm0+IHJlc3VsdCgwLCAtMSwgMSwgMCwgMCwgMCk7CisgICAgcmV0dXJuIHJlc3VsdC5n
ZXQoKTsKK30KKwordm9pZCBmaWxsVmVjdG9yV2l0aEhvcml6b250YWxHbHlwaFBvc2l0aW9ucyhW
ZWN0b3I8Q0dQb2ludCwgMjU2PiYgcG9zaXRpb25zLCBDR0NvbnRleHRSZWYgY29udGV4dCwgY29u
c3QgQ0dTaXplKiBhZHZhbmNlcywgdW5zaWduZWQgY291bnQsIGNvbnN0IEZsb2F0UG9pbnQmIHBv
aW50KQoreworICAgIFVOVVNFRF9QQVJBTShwb2ludCk7CiAgICAgQ0dBZmZpbmVUcmFuc2Zvcm0g
bWF0cml4ID0gQ0dBZmZpbmVUcmFuc2Zvcm1JbnZlcnQoQ0dDb250ZXh0R2V0VGV4dE1hdHJpeChj
b250ZXh0KSk7Ci0gICAgcG9zaXRpb25zWzBdID0gQ0dQb2ludFplcm87CisgICAgcG9zaXRpb25z
WzBdID0gQ0dQb2ludEFwcGx5QWZmaW5lVHJhbnNmb3JtKHBvaW50LCBtYXRyaXgpOwogICAgIGZv
ciAodW5zaWduZWQgaSA9IDE7IGkgPCBjb3VudDsgKytpKSB7CiAgICAgICAgIENHU2l6ZSBhZHZh
bmNlID0gQ0dTaXplQXBwbHlBZmZpbmVUcmFuc2Zvcm0oYWR2YW5jZXNbaSAtIDFdLCBtYXRyaXgp
OwogICAgICAgICBwb3NpdGlvbnNbaV0ueCA9IHBvc2l0aW9uc1tpIC0gMV0ueCArIGFkdmFuY2Uu
d2lkdGg7CkBAIC03Miw2ICs3OSwyMiBAQCB2b2lkIGZpbGxWZWN0b3JXaXRoSG9yaXpvbnRhbEds
eXBoUG9zaXRpb25zKFZlY3RvcjxDR1BvaW50LCAyNTY+JiBwb3NpdGlvbnMsIENHQwogICAgIH0K
IH0KIAorc3RhdGljIHZvaWQgZmlsbFZlY3RvcldpdGhWZXJ0aWNhbEdseXBoUG9zaXRpb25zKFZl
Y3RvcjxDR1BvaW50LCAyNTY+JiBwb3NpdGlvbnMsIENHQ29udGV4dFJlZiBjb250ZXh0LCBjb25z
dCBDR1NpemUqIHRyYW5zbGF0aW9ucywgY29uc3QgQ0dTaXplKiBhZHZhbmNlcywgdW5zaWduZWQg
Y291bnQsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBmbG9hdCBhc2NlbnREZWx0YSkKK3sKKyAg
ICBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybUludmVydChD
R0NvbnRleHRHZXRUZXh0TWF0cml4KGNvbnRleHQpKTsKKworICAgIENHUG9pbnQgcG9zaXRpb24g
PSBGbG9hdFBvaW50KHBvaW50LngoKSwgcG9pbnQueSgpICsgYXNjZW50RGVsdGEpOworICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgIENHU2l6ZSB0cmFu
c2xhdGlvbiA9IENHU2l6ZUFwcGx5QWZmaW5lVHJhbnNmb3JtKHRyYW5zbGF0aW9uc1tpXSwgcm90
YXRlTGVmdFRyYW5zZm9ybSgpKTsKKyAgICAgICAgcG9zaXRpb25zW2ldID0gQ0dQb2ludEFwcGx5
QWZmaW5lVHJhbnNmb3JtKENHUG9pbnRNYWtlKHBvc2l0aW9uLnggLSB0cmFuc2xhdGlvbi53aWR0
aCwgcG9zaXRpb24ueSArIHRyYW5zbGF0aW9uLmhlaWdodCksIHRyYW5zZm9ybSk7CisgICAgICAg
IC8vIEZJWE1FOiBXaGF0IHNob3VsZCB3ZSBkbyBoZXJlPworICAgICAgICAvL3Bvc2l0aW9uc1tp
XS54ICs9IHBvaW50LngoKTsKKyAgICAgICAgLy9wb3NpdGlvbnNbaV0ueSArPSBwb2ludC55KCk7
CisgICAgICAgIHBvc2l0aW9uLnggKz0gYWR2YW5jZXNbaV0ud2lkdGg7CisgICAgICAgIHBvc2l0
aW9uLnkgKz0gYWR2YW5jZXNbaV0uaGVpZ2h0OworICAgIH0KK30KKwogc3RhdGljIGlubGluZSBi
b29sIHNob3VsZFVzZUxldHRlcnByZXNzRWZmZWN0KGNvbnN0IEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCkKIHsKICNpZiBFTkFCTEUoTEVUVEVSUFJFU1MpCkBAIC04MiwzNiArMTA1LDI0IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzaG91bGRVc2VMZXR0ZXJwcmVzc0VmZmVjdChjb25zdCBHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQpCiAjZW5kaWYKIH0KIAotc3RhdGljIHZvaWQgc2hvd0dseXBoc1dp
dGhBZHZhbmNlcyhjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgY29uc3QgRm9udCYgZm9udCwgQ0dD
b250ZXh0UmVmIGNvbnRleHQsIGNvbnN0IENHR2x5cGgqIGdseXBocywgY29uc3QgQ0dTaXplKiBh
ZHZhbmNlcywgdW5zaWduZWQgY291bnQpCitzdGF0aWMgdm9pZCBzaG93R2x5cGhzV2l0aEFkdmFu
Y2VzKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBjb25zdCBGb250JiBmb250LCBDR0NvbnRleHRS
ZWYgY29udGV4dCwgY29uc3QgQ0dHbHlwaCogZ2x5cGhzLCBjb25zdCBDR1NpemUqIGFkdmFuY2Vz
LCB1bnNpZ25lZCBjb3VudCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0ZXh0TWF0cml4KQogewog
ICAgIGlmICghY291bnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIENHQ29udGV4dFNldFRleHRQ
b3NpdGlvbihjb250ZXh0LCBwb2ludC54KCksIHBvaW50LnkoKSk7Ci0KICAgICBjb25zdCBGb250
UGxhdGZvcm1EYXRhJiBwbGF0Zm9ybURhdGEgPSBmb250LnBsYXRmb3JtRGF0YSgpOwogICAgIFZl
Y3RvcjxDR1BvaW50LCAyNTY+IHBvc2l0aW9ucyhjb3VudCk7CiAgICAgaWYgKHBsYXRmb3JtRGF0
YS5vcmllbnRhdGlvbigpID09IEZvbnRPcmllbnRhdGlvbjo6VmVydGljYWwpIHsKLSAgICAgICAg
Q0dBZmZpbmVUcmFuc2Zvcm0gcm90YXRlTGVmdFRyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3Jt
TWFrZSgwLCAtMSwgMSwgMCwgMCwgMCk7Ci0gICAgICAgIENHQWZmaW5lVHJhbnNmb3JtIHRleHRN
YXRyaXggPSBDR0NvbnRleHRHZXRUZXh0TWF0cml4KGNvbnRleHQpOwotICAgICAgICBDR0FmZmlu
ZVRyYW5zZm9ybSBydW5NYXRyaXggPSBDR0FmZmluZVRyYW5zZm9ybUNvbmNhdCh0ZXh0TWF0cml4
LCByb3RhdGVMZWZ0VHJhbnNmb3JtKTsKLSAgICAgICAgU2NvcGVkVGV4dE1hdHJpeCBzYXZlZE1h
dHJpeChydW5NYXRyaXgsIGNvbnRleHQpOworICAgICAgICBTY29wZWRUZXh0TWF0cml4IHNhdmVk
TWF0cml4KGNvbXB1dGVWZXJ0aWNhbFRleHRNYXRyaXgoZm9udCwgdGV4dE1hdHJpeCksIGNvbnRl
eHQpOwogCiAgICAgICAgIFZlY3RvcjxDR1NpemUsIDI1Nj4gdHJhbnNsYXRpb25zKGNvdW50KTsK
ICAgICAgICAgQ1RGb250R2V0VmVydGljYWxUcmFuc2xhdGlvbnNGb3JHbHlwaHMocGxhdGZvcm1E
YXRhLmN0Rm9udCgpLCBnbHlwaHMsIHRyYW5zbGF0aW9ucy5kYXRhKCksIGNvdW50KTsKIAotICAg
ICAgICBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybUludmVy
dChDR0NvbnRleHRHZXRUZXh0TWF0cml4KGNvbnRleHQpKTsKLQotICAgICAgICBDR1BvaW50IHBv
c2l0aW9uID0gRmxvYXRQb2ludChwb2ludC54KCksIHBvaW50LnkoKSArIGZvbnQuZm9udE1ldHJp
Y3MoKS5mbG9hdEFzY2VudChJZGVvZ3JhcGhpY0Jhc2VsaW5lKSAtIGZvbnQuZm9udE1ldHJpY3Mo
KS5mbG9hdEFzY2VudCgpKTsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNvdW50
OyArK2kpIHsKLSAgICAgICAgICAgIENHU2l6ZSB0cmFuc2xhdGlvbiA9IENHU2l6ZUFwcGx5QWZm
aW5lVHJhbnNmb3JtKHRyYW5zbGF0aW9uc1tpXSwgcm90YXRlTGVmdFRyYW5zZm9ybSk7Ci0gICAg
ICAgICAgICBwb3NpdGlvbnNbaV0gPSBDR1BvaW50QXBwbHlBZmZpbmVUcmFuc2Zvcm0oQ0dQb2lu
dE1ha2UocG9zaXRpb24ueCAtIHRyYW5zbGF0aW9uLndpZHRoLCBwb3NpdGlvbi55ICsgdHJhbnNs
YXRpb24uaGVpZ2h0KSwgdHJhbnNmb3JtKTsKLSAgICAgICAgICAgIHBvc2l0aW9uLnggKz0gYWR2
YW5jZXNbaV0ud2lkdGg7Ci0gICAgICAgICAgICBwb3NpdGlvbi55ICs9IGFkdmFuY2VzW2ldLmhl
aWdodDsKLSAgICAgICAgfQorICAgICAgICBhdXRvIGFzY2VudERlbHRhID0gZm9udC5mb250TWV0
cmljcygpLmZsb2F0QXNjZW50KElkZW9ncmFwaGljQmFzZWxpbmUpIC0gZm9udC5mb250TWV0cmlj
cygpLmZsb2F0QXNjZW50KCk7CisgICAgICAgIGZpbGxWZWN0b3JXaXRoVmVydGljYWxHbHlwaFBv
c2l0aW9ucyhwb3NpdGlvbnMsIGNvbnRleHQsIHRyYW5zbGF0aW9ucy5kYXRhKCksIGFkdmFuY2Vz
LCBjb3VudCwgcG9pbnQsIGFzY2VudERlbHRhKTsKICAgICAgICAgQ1RGb250RHJhd0dseXBocyhw
bGF0Zm9ybURhdGEuY3RGb250KCksIGdseXBocywgcG9zaXRpb25zLmRhdGEoKSwgY291bnQsIGNv
bnRleHQpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGZpbGxWZWN0b3JXaXRoSG9yaXpvbnRhbEds
eXBoUG9zaXRpb25zKHBvc2l0aW9ucywgY29udGV4dCwgYWR2YW5jZXMsIGNvdW50KTsKKyAgICAg
ICAgZmlsbFZlY3RvcldpdGhIb3Jpem9udGFsR2x5cGhQb3NpdGlvbnMocG9zaXRpb25zLCBjb250
ZXh0LCBhZHZhbmNlcywgY291bnQsIHBvaW50KTsKICAgICAgICAgQ1RGb250RHJhd0dseXBocyhw
bGF0Zm9ybURhdGEuY3RGb250KCksIGdseXBocywgcG9zaXRpb25zLmRhdGEoKSwgY291bnQsIGNv
bnRleHQpOwogICAgIH0KIH0KQEAgLTEzMCw5ICsxNDEsMzkgQEAgc3RhdGljIHZvaWQgc2V0Q0dG
b250UmVuZGVyaW5nTW9kZShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpCiAgICAgQ0dDb250ZXh0
U2V0U2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzKGNnQ29udGV4dCwgZG9TdWJwaXhlbFF1YW50
aXphdGlvbik7CiB9CiAKK0FmZmluZVRyYW5zZm9ybSBjb21wdXRlT3ZlcmFsbFRleHRNYXRyaXgo
Y29uc3QgRm9udCYgZm9udCkKK3sKKyAgICBhdXRvJiBwbGF0Zm9ybURhdGEgPSBmb250LnBsYXRm
b3JtRGF0YSgpOworICAgIEFmZmluZVRyYW5zZm9ybSByZXN1bHQ7CisgICAgaWYgKCFwbGF0Zm9y
bURhdGEuaXNDb2xvckJpdG1hcEZvbnQoKSkKKyAgICAgICAgcmVzdWx0ID0gQ1RGb250R2V0TWF0
cml4KHBsYXRmb3JtRGF0YS5mb250KCkpOworICAgIHJlc3VsdC5zZXRCKC1yZXN1bHQuYigpKTsK
KyAgICByZXN1bHQuc2V0RCgtcmVzdWx0LmQoKSk7CisgICAgaWYgKHBsYXRmb3JtRGF0YS5zeW50
aGV0aWNPYmxpcXVlKCkpIHsKKyAgICAgICAgaW50IHN5bnRoZXRpY09ibGlxdWVBbmdsZSA9IDE0
OworICAgICAgICBmbG9hdCBvYmxpcXVlU2tldyA9IHRhbmYoc3ludGhldGljT2JsaXF1ZUFuZ2xl
ICogcGlGbG9hdCAvIDE4MCk7CisgICAgICAgIGlmIChwbGF0Zm9ybURhdGEub3JpZW50YXRpb24o
KSA9PSBGb250T3JpZW50YXRpb246OlZlcnRpY2FsKSB7CisgICAgICAgICAgICBpZiAoZm9udC5p
c1RleHRPcmllbnRhdGlvbkZhbGxiYWNrKCkpCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gQWZm
aW5lVHJhbnNmb3JtKDEsIG9ibGlxdWVTa2V3LCAwLCAxLCAwLCAwKSAqIHJlc3VsdDsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBBZmZpbmVUcmFuc2Zvcm0oMSwg
LW9ibGlxdWVTa2V3LCAwLCAxLCAwLCAwKSAqIHJlc3VsdDsKKyAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICByZXN1bHQgPSBBZmZpbmVUcmFuc2Zvcm0oMSwgMCwgLW9ibGlxdWVTa2V3LCAxLCAw
LCAwKTsKKyAgICB9CisgICAgcmVzdWx0LnNldEUoMCk7CisgICAgcmVzdWx0LnNldEYoMCk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKworQWZmaW5lVHJhbnNmb3JtIGNvbXB1dGVWZXJ0aWNhbFRl
eHRNYXRyaXgoY29uc3QgRm9udCYgZm9udCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwcmV2aW91
c1RleHRNYXRyaXgpCit7CisgICAgQVNTRVJUX1VOVVNFRChmb250LCBmb250LnBsYXRmb3JtRGF0
YSgpLm9yaWVudGF0aW9uKCkgPT0gRm9udE9yaWVudGF0aW9uOjpWZXJ0aWNhbCk7CisgICAgcmV0
dXJuIHJvdGF0ZUxlZnRUcmFuc2Zvcm0oKSAqIHByZXZpb3VzVGV4dE1hdHJpeDsKK30KKwogdm9p
ZCBGb250Q2FzY2FkZTo6ZHJhd0dseXBocyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IEZvbnQmIGZvbnQsIGNvbnN0IEdseXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgdW5zaWduZWQgZnJv
bSwgdW5zaWduZWQgbnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBhbmNob3JQb2ludCwgRm9u
dFNtb290aGluZ01vZGUgc21vb3RoaW5nTW9kZSkKIHsKLSAgICBjb25zdCBGb250UGxhdGZvcm1E
YXRhJiBwbGF0Zm9ybURhdGEgPSBmb250LnBsYXRmb3JtRGF0YSgpOworICAgIGNvbnN0IGF1dG8m
IHBsYXRmb3JtRGF0YSA9IGZvbnQucGxhdGZvcm1EYXRhKCk7CiAgICAgaWYgKCFwbGF0Zm9ybURh
dGEuc2l6ZSgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTE3NSwyMiArMjE2LDggQEAgdm9pZCBG
b250Q2FzY2FkZTo6ZHJhd0dseXBocyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZv
bnQmIGZvbnQsIGNvbnN0IEcKICAgICBVTlVTRURfVkFSSUFCTEUodXNlTGV0dGVycHJlc3NFZmZl
Y3QpOwogICAgIEZsb2F0UG9pbnQgcG9pbnQgPSBhbmNob3JQb2ludDsKIAotICAgIENHQWZmaW5l
VHJhbnNmb3JtIG1hdHJpeCA9IENHQWZmaW5lVHJhbnNmb3JtSWRlbnRpdHk7Ci0gICAgaWYgKCFw
bGF0Zm9ybURhdGEuaXNDb2xvckJpdG1hcEZvbnQoKSkKLSAgICAgICAgbWF0cml4ID0gQ1RGb250
R2V0TWF0cml4KHBsYXRmb3JtRGF0YS5mb250KCkpOwotICAgIG1hdHJpeC5iID0gLW1hdHJpeC5i
OwotICAgIG1hdHJpeC5kID0gLW1hdHJpeC5kOwotICAgIGlmIChwbGF0Zm9ybURhdGEuc3ludGhl
dGljT2JsaXF1ZSgpKSB7Ci0gICAgICAgIHN0YXRpYyBmbG9hdCBvYmxpcXVlU2tldyA9IHRhbmYo
c3ludGhldGljT2JsaXF1ZUFuZ2xlKCkgKiBwaUZsb2F0IC8gMTgwKTsKLSAgICAgICAgaWYgKHBs
YXRmb3JtRGF0YS5vcmllbnRhdGlvbigpID09IEZvbnRPcmllbnRhdGlvbjo6VmVydGljYWwpIHsK
LSAgICAgICAgICAgIGlmIChmb250LmlzVGV4dE9yaWVudGF0aW9uRmFsbGJhY2soKSkKLSAgICAg
ICAgICAgICAgICBtYXRyaXggPSBDR0FmZmluZVRyYW5zZm9ybUNvbmNhdChtYXRyaXgsIENHQWZm
aW5lVHJhbnNmb3JtTWFrZSgxLCBvYmxpcXVlU2tldywgMCwgMSwgMCwgMCkpOwotICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgIG1hdHJpeCA9IENHQWZmaW5lVHJhbnNmb3JtQ29uY2F0
KG1hdHJpeCwgQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlKDEsIC1vYmxpcXVlU2tldywgMCwgMSwgMCwg
MCkpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIG1hdHJpeCA9IENHQWZmaW5lVHJhbnNm
b3JtQ29uY2F0KG1hdHJpeCwgQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlKDEsIDAsIC1vYmxpcXVlU2tl
dywgMSwgMCwgMCkpOwotICAgIH0KLSAgICBTY29wZWRUZXh0TWF0cml4IHJlc3RvcmVyKG1hdHJp
eCwgY2dDb250ZXh0KTsKKyAgICBhdXRvIHRleHRNYXRyaXggPSBjb21wdXRlT3ZlcmFsbFRleHRN
YXRyaXgoZm9udCk7CisgICAgU2NvcGVkVGV4dE1hdHJpeCByZXN0b3Jlcih0ZXh0TWF0cml4LCBj
Z0NvbnRleHQpOwogCiAgICAgc2V0Q0dGb250UmVuZGVyaW5nTW9kZShjb250ZXh0KTsKICAgICBD
R0NvbnRleHRTZXRGb250U2l6ZShjZ0NvbnRleHQsIHBsYXRmb3JtRGF0YS5zaXplKCkpOwpAQCAt
MjIxLDkgKzI0OCw5IEBAIHZvaWQgRm9udENhc2NhZGU6OmRyYXdHbHlwaHMoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBjb25zdCBGb250JiBmb250LCBjb25zdCBHCiAgICAgICAgIGZsb2F0IHNo
YWRvd1RleHRYID0gcG9pbnQueCgpICsgc2hhZG93T2Zmc2V0LndpZHRoKCk7CiAgICAgICAgIC8v
IElmIHNoYWRvd3MgYXJlIGlnbm9yaW5nIHRyYW5zZm9ybXMsIHRoZW4gd2UgaGF2ZW4ndCBhcHBs
aWVkIHRoZSBZIGNvb3JkaW5hdGUgZmxpcCB5ZXQsIHNvIGRvd24gaXMgbmVnYXRpdmUuCiAgICAg
ICAgIGZsb2F0IHNoYWRvd1RleHRZID0gcG9pbnQueSgpICsgc2hhZG93T2Zmc2V0LmhlaWdodCgp
ICogKGNvbnRleHQuc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMoKSA/IC0xIDogMSk7Ci0gICAgICAg
IHNob3dHbHlwaHNXaXRoQWR2YW5jZXMoRmxvYXRQb2ludChzaGFkb3dUZXh0WCwgc2hhZG93VGV4
dFkpLCBmb250LCBjZ0NvbnRleHQsIGdseXBoQnVmZmVyLmdseXBocyhmcm9tKSwgZ2x5cGhCdWZm
ZXIuYWR2YW5jZXMoZnJvbSksIG51bUdseXBocyk7CisgICAgICAgIHNob3dHbHlwaHNXaXRoQWR2
YW5jZXMoRmxvYXRQb2ludChzaGFkb3dUZXh0WCwgc2hhZG93VGV4dFkpLCBmb250LCBjZ0NvbnRl
eHQsIGdseXBoQnVmZmVyLmdseXBocyhmcm9tKSwgZ2x5cGhCdWZmZXIuYWR2YW5jZXMoZnJvbSks
IG51bUdseXBocywgdGV4dE1hdHJpeCk7CiAgICAgICAgIGlmIChzeW50aGV0aWNCb2xkT2Zmc2V0
KQotICAgICAgICAgICAgc2hvd0dseXBoc1dpdGhBZHZhbmNlcyhGbG9hdFBvaW50KHNoYWRvd1Rl
eHRYICsgc3ludGhldGljQm9sZE9mZnNldCwgc2hhZG93VGV4dFkpLCBmb250LCBjZ0NvbnRleHQs
IGdseXBoQnVmZmVyLmdseXBocyhmcm9tKSwgZ2x5cGhCdWZmZXIuYWR2YW5jZXMoZnJvbSksIG51
bUdseXBocyk7CisgICAgICAgICAgICBzaG93R2x5cGhzV2l0aEFkdmFuY2VzKEZsb2F0UG9pbnQo
c2hhZG93VGV4dFggKyBzeW50aGV0aWNCb2xkT2Zmc2V0LCBzaGFkb3dUZXh0WSksIGZvbnQsIGNn
Q29udGV4dCwgZ2x5cGhCdWZmZXIuZ2x5cGhzKGZyb20pLCBnbHlwaEJ1ZmZlci5hZHZhbmNlcyhm
cm9tKSwgbnVtR2x5cGhzLCB0ZXh0TWF0cml4KTsKICAgICAgICAgY29udGV4dC5zZXRGaWxsQ29s
b3IoZmlsbENvbG9yKTsKICAgICB9CiAKQEAgLTIzMywxMSArMjYwLDExIEBAIHZvaWQgRm9udENh
c2NhZGU6OmRyYXdHbHlwaHMoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGb250JiBm
b250LCBjb25zdCBHCiAgICAgZWxzZQogI2VuZGlmCiAgICAgewotICAgICAgICBzaG93R2x5cGhz
V2l0aEFkdmFuY2VzKHBvaW50LCBmb250LCBjZ0NvbnRleHQsIGdseXBoQnVmZmVyLmdseXBocyhm
cm9tKSwgZ2x5cGhCdWZmZXIuYWR2YW5jZXMoZnJvbSksIG51bUdseXBocyk7CisgICAgICAgIHNo
b3dHbHlwaHNXaXRoQWR2YW5jZXMocG9pbnQsIGZvbnQsIGNnQ29udGV4dCwgZ2x5cGhCdWZmZXIu
Z2x5cGhzKGZyb20pLCBnbHlwaEJ1ZmZlci5hZHZhbmNlcyhmcm9tKSwgbnVtR2x5cGhzLCB0ZXh0
TWF0cml4KTsKICAgICB9CiAKICAgICBpZiAoc3ludGhldGljQm9sZE9mZnNldCkKLSAgICAgICAg
c2hvd0dseXBoc1dpdGhBZHZhbmNlcyhGbG9hdFBvaW50KHBvaW50LngoKSArIHN5bnRoZXRpY0Jv
bGRPZmZzZXQsIHBvaW50LnkoKSksIGZvbnQsIGNnQ29udGV4dCwgZ2x5cGhCdWZmZXIuZ2x5cGhz
KGZyb20pLCBnbHlwaEJ1ZmZlci5hZHZhbmNlcyhmcm9tKSwgbnVtR2x5cGhzKTsKKyAgICAgICAg
c2hvd0dseXBoc1dpdGhBZHZhbmNlcyhGbG9hdFBvaW50KHBvaW50LngoKSArIHN5bnRoZXRpY0Jv
bGRPZmZzZXQsIHBvaW50LnkoKSksIGZvbnQsIGNnQ29udGV4dCwgZ2x5cGhCdWZmZXIuZ2x5cGhz
KGZyb20pLCBnbHlwaEJ1ZmZlci5hZHZhbmNlcyhmcm9tKSwgbnVtR2x5cGhzLCB0ZXh0TWF0cml4
KTsKIAogICAgIGlmIChoYXNTaW1wbGVTaGFkb3cpCiAgICAgICAgIGNvbnRleHQuc2V0U2hhZG93
KHNoYWRvd09mZnNldCwgc2hhZG93Qmx1ciwgc2hhZG93Q29sb3IpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJh
d0dseXBoc1JlY29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZGQ2
YzE2N2RiYjYwOGI3NjMzYWRlNTA0MGQ1MTc0NGMwM2Y2ZDJhCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
RHJhd0dseXBoc1JlY29yZGVyLmgKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiVGV4
dEZsYWdzLmgiCisKKyNpZiBVU0UoQ09SRV9URVhUKQorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dC5oIgorCisjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NvcmVHcmFwaGljcy5oPgorI2luY2x1ZGUg
PHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBGbG9hdFBvaW50OworY2xhc3MgRm9udDsKK2NsYXNzIEdseXBoQnVmZmVy
OworY2xhc3MgR3JhcGhpY3NDb250ZXh0OworCituYW1lc3BhY2UgRGlzcGxheUxpc3QgeworCitj
bGFzcyBSZWNvcmRlcjsKKworY2xhc3MgRHJhd0dseXBoc1JlY29yZGVyIHsKK3B1YmxpYzoKKyAg
ICBleHBsaWNpdCBEcmF3R2x5cGhzUmVjb3JkZXIoUmVjb3JkZXImKTsKKworICAgIHZvaWQgZHJh
d0dseXBocyhjb25zdCBGb250JiwgY29uc3QgR2x5cGhCdWZmZXImLCB1bnNpZ25lZCBmcm9tLCB1
bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmIGFuY2hvclBvaW50LCBGb250U21v
b3RoaW5nTW9kZSk7CisKKyNpZiBVU0UoQ09SRV9URVhUKQorICAgIHZvaWQgcmVjb3JkQmVnaW5M
YXllcihDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiwgQ0dSZWN0KTsKKyAgICB2b2lk
IHJlY29yZEVuZExheWVyKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmKTsKKyAgICB2
b2lkIHJlY29yZERyYXdHbHlwaHMoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYsIGNv
bnN0IENHQWZmaW5lVHJhbnNmb3JtKiwgY29uc3QgQ0dHbHlwaFtdLCBjb25zdCBDR1BvaW50IHBv
c2l0aW9uc1tdLCBzaXplX3QgY291bnQpOworICAgIHZvaWQgcmVjb3JkRHJhd0ltYWdlKENHUmVu
ZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmLCBDR1JlY3QsIENHSW1hZ2VSZWYpOworI2VuZGlm
CisKK3ByaXZhdGU6CisgICAgR3JhcGhpY3NDb250ZXh0IGNyZWF0ZUludGVybmFsQ29udGV4dCgp
OworICAgIHZvaWQgcHJlcGFyZUludGVybmFsQ29udGV4dChjb25zdCBGb250JiwgRm9udFNtb290
aGluZ01vZGUpOworICAgIHZvaWQgY29uY2x1ZGVJbnRlcm5hbENvbnRleHQoKTsKKyAgICB2b2lk
IHVwZGF0ZUNUTShBZmZpbmVUcmFuc2Zvcm0pOworICAgIHZvaWQgdXBkYXRlRmlsbENvbG9yKGNv
bnN0IENvbG9yJiwgR3JhZGllbnQqID0gbnVsbHB0ciwgUGF0dGVybiogPSBudWxscHRyKTsKKwor
ICAgIFJlY29yZGVyJiBtX293bmVyOworICAgIEdyYXBoaWNzQ29udGV4dCBtX2ludGVybmFsQ29u
dGV4dDsKKyAgICBjb25zdCBGb250KiBtX2N1cnJlbnRGb250IHsgbnVsbHB0ciB9OworICAgIENv
bG9yIG1fY3VycmVudENvbG9yOworCisgICAgQ29sb3IgbV9vcmlnaW5hbEZpbGxDb2xvcjsKKyAg
ICBSZWZQdHI8R3JhZGllbnQ+IG1fb3JpZ2luYWxGaWxsR3JhZGllbnQ7CisgICAgUmVmUHRyPFBh
dHRlcm4+IG1fb3JpZ2luYWxGaWxsUGF0dGVybjsKKworICAgIEFmZmluZVRyYW5zZm9ybSBtX29y
aWdpbmFsQ1RNOworICAgIEFmZmluZVRyYW5zZm9ybSBtX2N1cnJlbnRDVE07CisKKyAgICBBZmZp
bmVUcmFuc2Zvcm0gbV9vcmlnaW5hbFRleHRNYXRyaXg7CisKKyAgICBGb250U21vb3RoaW5nTW9k
ZSBtX3Ntb290aGluZ01vZGUgeyBGb250U21vb3RoaW5nTW9kZTo6QXV0b1Ntb290aGluZyB9Owor
fTsKKworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTBiMWFhNjE3ODA3
NGJkOWM3ZTU2YmQ3NDA2NDhmMjE2Y2YzZDE0YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlw
aHNSZWNvcmRlckNvcmVUZXh0LmNwcApAQCAtMCwwICsxLDI1NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIgorCisjaW5jbHVkZSAiQml0bWFw
SW1hZ2UuaCIKKyNpbmNsdWRlICJDb2xvci5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0SXRlbXMu
aCIKKyNpbmNsdWRlICJEaXNwbGF5TGlzdFJlY29yZGVyLmgiCisjaW5jbHVkZSAiRmxvYXRQb2lu
dC5oIgorI2luY2x1ZGUgIkZvbnQuaCIKKyNpbmNsdWRlICJGb250Q2FzY2FkZS5oIgorI2luY2x1
ZGUgIkdseXBoQnVmZmVyLmgiCisKKyNpbmNsdWRlIDxDb3JlVGV4dC9Db3JlVGV4dC5oPgorI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworI2lmIFBMQVRGT1JNKFdJTikKKyNpbmNsdWRlIDxwYWwv
c3BpL3dpbi9Db3JlVGV4dFNQSVdpbi5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKKworc3RhdGljIENHQ29udGV4dERlbGVnYXRlUmVm
IGJlZ2luTGF5ZXIoQ0dDb250ZXh0RGVsZWdhdGVSZWYgZGVsZWdhdGUsIENHUmVuZGVyaW5nU3Rh
dGVSZWYgcnN0YXRlLCBDR0dTdGF0ZVJlZiBnc3RhdGUsIENHUmVjdCByZWN0LCBDRkRpY3Rpb25h
cnlSZWYsIENHQ29udGV4dERlbGVnYXRlUmVmKQoreworICAgIERyYXdHbHlwaHNSZWNvcmRlciYg
cmVjb3JkZXIgPSAqc3RhdGljX2Nhc3Q8RHJhd0dseXBoc1JlY29yZGVyKj4oQ0dDb250ZXh0RGVs
ZWdhdGVHZXRJbmZvKGRlbGVnYXRlKSk7CisgICAgcmVjb3JkZXIucmVjb3JkQmVnaW5MYXllcihy
c3RhdGUsIGdzdGF0ZSwgcmVjdCk7CisgICAgcmV0dXJuIGRlbGVnYXRlOworfQorCitzdGF0aWMg
Q0dDb250ZXh0RGVsZWdhdGVSZWYgZW5kTGF5ZXIoQ0dDb250ZXh0RGVsZWdhdGVSZWYgZGVsZWdh
dGUsIENHUmVuZGVyaW5nU3RhdGVSZWYgcnN0YXRlLCBDR0dTdGF0ZVJlZiBnc3RhdGUpCit7Cisg
ICAgRHJhd0dseXBoc1JlY29yZGVyJiByZWNvcmRlciA9ICpzdGF0aWNfY2FzdDxEcmF3R2x5cGhz
UmVjb3JkZXIqPihDR0NvbnRleHREZWxlZ2F0ZUdldEluZm8oZGVsZWdhdGUpKTsKKyAgICByZWNv
cmRlci5yZWNvcmRFbmRMYXllcihyc3RhdGUsIGdzdGF0ZSk7CisgICAgcmV0dXJuIGRlbGVnYXRl
OworfQorCitzdGF0aWMgQ0dFcnJvciBkcmF3R2x5cGhzKENHQ29udGV4dERlbGVnYXRlUmVmIGRl
bGVnYXRlLCBDR1JlbmRlcmluZ1N0YXRlUmVmIHJzdGF0ZSwgQ0dHU3RhdGVSZWYgZ3N0YXRlLCBj
b25zdCBDR0FmZmluZVRyYW5zZm9ybSogdG0sIGNvbnN0IENHR2x5cGggZ2x5cGhzW10sIGNvbnN0
IENHUG9pbnQgcG9zaXRpb25zW10sIHNpemVfdCBjb3VudCkKK3sKKyAgICBpZiAoQ0dHU3RhdGVH
ZXRBbHBoYShnc3RhdGUpID4gMCkgeworICAgICAgICBEcmF3R2x5cGhzUmVjb3JkZXImIHJlY29y
ZGVyID0gKnN0YXRpY19jYXN0PERyYXdHbHlwaHNSZWNvcmRlcio+KENHQ29udGV4dERlbGVnYXRl
R2V0SW5mbyhkZWxlZ2F0ZSkpOworICAgICAgICByZWNvcmRlci5yZWNvcmREcmF3R2x5cGhzKHJz
dGF0ZSwgZ3N0YXRlLCB0bSwgZ2x5cGhzLCBwb3NpdGlvbnMsIGNvdW50KTsKKyAgICB9CisgICAg
cmV0dXJuIGtDR0Vycm9yU3VjY2VzczsKK30KKworc3RhdGljIENHRXJyb3IgZHJhd0ltYWdlKENH
Q29udGV4dERlbGVnYXRlUmVmIGRlbGVnYXRlLCBDR1JlbmRlcmluZ1N0YXRlUmVmIHJzdGF0ZSwg
Q0dHU3RhdGVSZWYgZ3N0YXRlLCBDR1JlY3QgcmVjdCwgQ0dJbWFnZVJlZiBpbWFnZSkKK3sKKyAg
ICBEcmF3R2x5cGhzUmVjb3JkZXImIHJlY29yZGVyID0gKnN0YXRpY19jYXN0PERyYXdHbHlwaHNS
ZWNvcmRlcio+KENHQ29udGV4dERlbGVnYXRlR2V0SW5mbyhkZWxlZ2F0ZSkpOworICAgIHJlY29y
ZGVyLnJlY29yZERyYXdJbWFnZShyc3RhdGUsIGdzdGF0ZSwgcmVjdCwgaW1hZ2UpOworICAgIHJl
dHVybiBrQ0dFcnJvclN1Y2Nlc3M7Cit9CisKK0dyYXBoaWNzQ29udGV4dCBEcmF3R2x5cGhzUmVj
b3JkZXI6OmNyZWF0ZUludGVybmFsQ29udGV4dCgpCit7CisgICAgYXV0byBjb250ZXh0RGVsZWdh
dGUgPSBhZG9wdENGKENHQ29udGV4dERlbGVnYXRlQ3JlYXRlKHRoaXMpKTsKKyAgICBDR0NvbnRl
eHREZWxlZ2F0ZVNldENhbGxiYWNrKGNvbnRleHREZWxlZ2F0ZS5nZXQoKSwgZGVCZWdpbkxheWVy
LCByZWludGVycHJldF9jYXN0PENHQ29udGV4dERlbGVnYXRlQ2FsbGJhY2s+KCZiZWdpbkxheWVy
KSk7CisgICAgQ0dDb250ZXh0RGVsZWdhdGVTZXRDYWxsYmFjayhjb250ZXh0RGVsZWdhdGUuZ2V0
KCksIGRlRW5kTGF5ZXIsIHJlaW50ZXJwcmV0X2Nhc3Q8Q0dDb250ZXh0RGVsZWdhdGVDYWxsYmFj
az4oJmVuZExheWVyKSk7CisgICAgQ0dDb250ZXh0RGVsZWdhdGVTZXRDYWxsYmFjayhjb250ZXh0
RGVsZWdhdGUuZ2V0KCksIGRlRHJhd0dseXBocywgcmVpbnRlcnByZXRfY2FzdDxDR0NvbnRleHRE
ZWxlZ2F0ZUNhbGxiYWNrPigmV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmRyYXdHbHlwaHMpKTsKKyAg
ICBDR0NvbnRleHREZWxlZ2F0ZVNldENhbGxiYWNrKGNvbnRleHREZWxlZ2F0ZS5nZXQoKSwgZGVE
cmF3SW1hZ2UsIHJlaW50ZXJwcmV0X2Nhc3Q8Q0dDb250ZXh0RGVsZWdhdGVDYWxsYmFjaz4oJmRy
YXdJbWFnZSkpOworICAgIGF1dG8gY29udGV4dCA9IGFkb3B0Q0YoQ0dDb250ZXh0Q3JlYXRlV2l0
aERlbGVnYXRlKGNvbnRleHREZWxlZ2F0ZS5nZXQoKSwga0NHQ29udGV4dFR5cGVVbmtub3duLCBu
dWxscHRyLCBudWxscHRyKSk7CisgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dChjb250ZXh0Lmdl
dCgpKTsKK30KKworRHJhd0dseXBoc1JlY29yZGVyOjpEcmF3R2x5cGhzUmVjb3JkZXIoUmVjb3Jk
ZXImIG93bmVyKQorICAgIDogbV9vd25lcihvd25lcikKKyAgICAsIG1faW50ZXJuYWxDb250ZXh0
KGNyZWF0ZUludGVybmFsQ29udGV4dCgpKQoreworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRl
cjo6cHJlcGFyZUludGVybmFsQ29udGV4dChjb25zdCBGb250JiBmb250LCBGb250U21vb3RoaW5n
TW9kZSBzbW9vdGhpbmdNb2RlKQoreworICAgIEFTU0VSVChDR0FmZmluZVRyYW5zZm9ybUlzSWRl
bnRpdHkoQ1RGb250R2V0TWF0cml4KGZvbnQucGxhdGZvcm1EYXRhKCkuY3RGb250KCkpKSk7CisK
KyAgICBhdXRvJiBzdGF0ZSA9IG1fb3duZXIuY3VycmVudFN0YXRlKCkuc3RhdGVDaGFuZ2UubV9z
dGF0ZTsKKyAgICBtX29yaWdpbmFsRmlsbENvbG9yID0gc3RhdGUuZmlsbENvbG9yOworICAgIG1f
b3JpZ2luYWxGaWxsR3JhZGllbnQgPSBzdGF0ZS5maWxsR3JhZGllbnQ7CisgICAgbV9vcmlnaW5h
bEZpbGxQYXR0ZXJuID0gc3RhdGUuZmlsbFBhdHRlcm47CisgICAgbV9jdXJyZW50Q29sb3IgPSBt
X29yaWdpbmFsRmlsbENvbG9yOworCisgICAgaWYgKG1fb3JpZ2luYWxGaWxsQ29sb3IuaXNWYWxp
ZCgpKQorICAgICAgICBtX2ludGVybmFsQ29udGV4dC5zZXRGaWxsQ29sb3IobV9vcmlnaW5hbEZp
bGxDb2xvcik7CisgICAgZWxzZSBpZiAobV9vcmlnaW5hbEZpbGxHcmFkaWVudCkKKyAgICAgICAg
bV9pbnRlcm5hbENvbnRleHQuc2V0RmlsbEdyYWRpZW50KCptX29yaWdpbmFsRmlsbEdyYWRpZW50
KTsKKyAgICBlbHNlIHsKKyAgICAgICAgQVNTRVJUKG1fb3JpZ2luYWxGaWxsUGF0dGVybik7Cisg
ICAgICAgIGlmIChtX29yaWdpbmFsRmlsbFBhdHRlcm4pCisgICAgICAgICAgICBtX2ludGVybmFs
Q29udGV4dC5zZXRGaWxsUGF0dGVybigqbV9vcmlnaW5hbEZpbGxQYXR0ZXJuKTsKKyAgICB9CisK
KyAgICBtX2ludGVybmFsQ29udGV4dC5zZXRTaGFkb3coc3RhdGUuc2hhZG93T2Zmc2V0LCBzdGF0
ZS5zaGFkb3dCbHVyLCBzdGF0ZS5zaGFkb3dDb2xvcik7CisKKyAgICBtX29yaWdpbmFsQ1RNID0g
bV9vd25lci5jdXJyZW50U3RhdGUoKS5jdG07IC8vIEZJWE1FOiBEZWFsIHdpdGggZGV2aWNlIHNj
YWxlLgorICAgIG1fY3VycmVudENUTSA9IG1fb3JpZ2luYWxDVE07CisgICAgbV9pbnRlcm5hbENv
bnRleHQuc2V0Q1RNKG1fb3JpZ2luYWxDVE0pOworCisgICAgbV9vcmlnaW5hbFRleHRNYXRyaXgg
PSBjb21wdXRlT3ZlcmFsbFRleHRNYXRyaXgoZm9udCk7CisgICAgaWYgKGZvbnQucGxhdGZvcm1E
YXRhKCkub3JpZW50YXRpb24oKSA9PSBGb250T3JpZW50YXRpb246OlZlcnRpY2FsKQorICAgICAg
ICBtX29yaWdpbmFsVGV4dE1hdHJpeCA9IGNvbXB1dGVWZXJ0aWNhbFRleHRNYXRyaXgoZm9udCwg
bV9vcmlnaW5hbFRleHRNYXRyaXgpOworCisgICAgbV9jdXJyZW50Rm9udCA9ICZmb250OworICAg
IG1fc21vb3RoaW5nTW9kZSA9IHNtb290aGluZ01vZGU7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1Jl
Y29yZGVyOjpjb25jbHVkZUludGVybmFsQ29udGV4dCgpCit7CisgICAgdXBkYXRlRmlsbENvbG9y
KG1fb3JpZ2luYWxGaWxsQ29sb3IsIG1fb3JpZ2luYWxGaWxsR3JhZGllbnQuZ2V0KCksIG1fb3Jp
Z2luYWxGaWxsUGF0dGVybi5nZXQoKSk7CisgICAgdXBkYXRlQ1RNKG1fb3JpZ2luYWxDVE0pOwor
fQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6dXBkYXRlQ1RNKEFmZmluZVRyYW5zZm9ybSBj
dG0pCit7CisgICAgaWYgKGN0bSA9PSBtX2N1cnJlbnRDVE0pCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fb3duZXIuc2V0Q1RNKGN0bSk7CisgICAgbV9jdXJyZW50Q1RNID0gY3RtOworfQorCit2
b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6dXBkYXRlRmlsbENvbG9yKGNvbnN0IENvbG9yJiBuZXdD
b2xvciwgR3JhZGllbnQqIG5ld0dyYWRpZW50LCBQYXR0ZXJuKiBuZXdQYXR0ZXJuKQoreworICAg
IGlmIChuZXdDb2xvciA9PSBtX2N1cnJlbnRDb2xvcikKKyAgICAgICAgcmV0dXJuOworCisgICAg
R3JhcGhpY3NDb250ZXh0U3RhdGUgbmV3U3RhdGU7CisgICAgbmV3U3RhdGUuZmlsbENvbG9yID0g
bmV3Q29sb3I7CisgICAgaWYgKG5ld0dyYWRpZW50KQorICAgICAgICBuZXdTdGF0ZS5maWxsR3Jh
ZGllbnQgPSBuZXdHcmFkaWVudDsKKyAgICBpZiAobmV3UGF0dGVybikKKyAgICAgICAgbmV3U3Rh
dGUuZmlsbFBhdHRlcm4gPSBuZXdQYXR0ZXJuOworICAgIG1fb3duZXIudXBkYXRlU3RhdGUobmV3
U3RhdGUsIHsgR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxDb2xvckNoYW5nZSB9KTsKKyAgICBt
X2N1cnJlbnRDb2xvciA9IG5ld0NvbG9yOworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6
cmVjb3JkQmVnaW5MYXllcihDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiBnc3RhdGUs
IENHUmVjdCkKK3sKKyAgICB1cGRhdGVDVE0oKkNHR1N0YXRlR2V0Q1RNKGdzdGF0ZSkpOworICAg
IGF1dG8gYWxwaGEgPSBDR0dTdGF0ZUdldEFscGhhKGdzdGF0ZSk7CisgICAgbV9vd25lci5iZWdp
blRyYW5zcGFyZW5jeUxheWVyKGFscGhhKTsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6
OnJlY29yZEVuZExheWVyKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmIGdzdGF0ZSkK
K3sKKyAgICB1cGRhdGVDVE0oKkNHR1N0YXRlR2V0Q1RNKGdzdGF0ZSkpOworICAgIG1fb3duZXIu
ZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKK30KKworc3RhdGljIFZlY3RvcjxDR1NpemU+IGNvbXB1
dGVBZHZhbmNlc0Zyb21Qb3NpdGlvbnMoY29uc3QgQ0dQb2ludCBwb3NpdGlvbnNbXSwgc2l6ZV90
IGNvdW50LCBjb25zdCBDR0FmZmluZVRyYW5zZm9ybSYgdGV4dE1hdHJpeCkKK3sKKyAgICBWZWN0
b3I8Q0dTaXplPiByZXN1bHQ7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudCAtIDE7
ICsraSkgeworICAgICAgICBhdXRvIG5leHRQb3NpdGlvbiA9IHBvc2l0aW9uc1tpICsgMV07Cisg
ICAgICAgIGF1dG8gY3VycmVudFBvc2l0aW9uID0gcG9zaXRpb25zW2ldOworICAgICAgICBhdXRv
IGFkdmFuY2UgPSBDR1NpemVNYWtlKG5leHRQb3NpdGlvbi54IC0gY3VycmVudFBvc2l0aW9uLngs
IG5leHRQb3NpdGlvbi55IC0gY3VycmVudFBvc2l0aW9uLnkpOworICAgICAgICByZXN1bHQuYXBw
ZW5kKENHU2l6ZUFwcGx5QWZmaW5lVHJhbnNmb3JtKGFkdmFuY2UsIHRleHRNYXRyaXgpKTsKKyAg
ICB9CisgICAgcmVzdWx0LmNvbnN0cnVjdEFuZEFwcGVuZChDR1NpemVNYWtlKDAsIDApKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6cmVjb3JkRHJh
d0dseXBocyhDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiBnc3RhdGUsIGNvbnN0IENH
QWZmaW5lVHJhbnNmb3JtKiwgY29uc3QgQ0dHbHlwaCBnbHlwaHNbXSwgY29uc3QgQ0dQb2ludCBw
b3NpdGlvbnNbXSwgc2l6ZV90IGNvdW50KQoreworICAgIGlmICghY291bnQpCisgICAgICAgIHJl
dHVybjsKKworICAgIENHRm9udFJlZiB1c2VkRm9udCA9IENHR1N0YXRlR2V0Rm9udChnc3RhdGUp
OworICAgIGlmICh1c2VkRm9udCAhPSBhZG9wdENGKENURm9udENvcHlHcmFwaGljc0ZvbnQobV9j
dXJyZW50Rm9udC0+cGxhdGZvcm1EYXRhKCkuY3RGb250KCksIG51bGxwdHIpKS5nZXQoKSkKKyAg
ICAgICAgcmV0dXJuOworCisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICBhdXRvIHRleHRQb3NpdGlv
biA9IENHQ29udGV4dEdldFRleHRQb3NpdGlvbihtX2ludGVybmFsQ29udGV4dC5wbGF0Zm9ybUNv
bnRleHQoKSk7CisgICAgQVNTRVJUKCF0ZXh0UG9zaXRpb24ueCk7CisgICAgQVNTRVJUKCF0ZXh0
UG9zaXRpb24ueSk7CisjZW5kaWYKKworICAgIHVwZGF0ZUNUTSgqQ0dHU3RhdGVHZXRDVE0oZ3N0
YXRlKSk7CisKKyAgICAvLyBGSVhNRTogQWRkIGEgYmlnIGNvbW1lbnQgYWJvdXQgd2hhdCdzIGdv
aW5nIG9uIGhlcmUuCisgICAgQWZmaW5lVHJhbnNmb3JtIHRleHRNYXRyaXggPSBDR0NvbnRleHRH
ZXRUZXh0TWF0cml4KG1faW50ZXJuYWxDb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpKTsKKyAgICBB
ZmZpbmVUcmFuc2Zvcm0gY3RtRml4dXA7CisgICAgaWYgKGF1dG8gaW52ZXJ0ZWRPcmlnaW5hbFRl
eHRNYXRyaXggPSBtX29yaWdpbmFsVGV4dE1hdHJpeC5pbnZlcnNlKCkpIHsKKyAgICAgICAgY3Rt
Rml4dXAgPSB0ZXh0TWF0cml4ICogaW52ZXJ0ZWRPcmlnaW5hbFRleHRNYXRyaXgudmFsdWUoKTsK
KyAgICB9CisgICAgQWZmaW5lVHJhbnNmb3JtIGludmVyc2VDVE1GaXh1cDsKKyAgICBpZiAoYXV0
byBpbnZlcnNlID0gY3RtRml4dXAuaW52ZXJzZSgpKQorICAgICAgICBpbnZlcnNlQ1RNRml4dXAg
PSBpbnZlcnNlLnZhbHVlKCk7CisgICAgZWxzZQorICAgICAgICBjdG1GaXh1cCA9IEFmZmluZVRy
YW5zZm9ybSgpOworICAgIG1fb3duZXIuY29uY2F0Q1RNKGN0bUZpeHVwKTsKKworICAgIHVwZGF0
ZUZpbGxDb2xvcihDR0dTdGF0ZUdldEZpbGxDb2xvcihnc3RhdGUpKTsgLy8gRklYTUU6IFdoYXQg
aGFwcGVucyBpZiB3ZSd2ZSBnb3QgYSBncmFkaWVudCBvciBwYXR0ZXJuIG9yIG1hc2s/CisKKyAg
ICAvLyBUZXN0IGNhc2U6IHZlcnRpY2FsIHRleHQsIHJvdGF0ZWQgdGV4dAorICAgIG1fb3duZXIu
YXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChEcmF3R2x5cGhzOjpjcmVhdGUoKm1fY3VycmVudEZv
bnQsIGdseXBocywgY29tcHV0ZUFkdmFuY2VzRnJvbVBvc2l0aW9ucyhwb3NpdGlvbnMsIGNvdW50
LCB0ZXh0TWF0cml4KS5kYXRhKCksIGNvdW50LCB0ZXh0TWF0cml4Lm1hcFBvaW50KHBvc2l0aW9u
c1swXSksIG1fc21vb3RoaW5nTW9kZSkpOworCisgICAgbV9vd25lci5jb25jYXRDVE0oaW52ZXJz
ZUNUTUZpeHVwKTsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZERyYXdJbWFn
ZShDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiBnc3RhdGUsIENHUmVjdCByZWN0LCBD
R0ltYWdlUmVmIGNnSW1hZ2UpCit7CisgICAgLy8gVGVzdCBjYXNlOiBFWElGIHJvdGF0ZWQgaW1h
Z2VzLgorICAgIC8vIEZJWE1FOiBXaWxsIENvcmVUZXh0IGV2ZXIgc2V0IGFueSBvZiB0aGUgc3R1
ZmYgb24gdGhlIGNvbnRleHQgdGhhdCB3ZSBuZWVkIHRvIGFwcGx5IGhlcmU/IFNlZSBvcHRpb25z
IGluc2lkZSBJbWFnZVBhaW50aW5nT3B0aW9ucy4KKyAgICB1cGRhdGVDVE0oKkNHR1N0YXRlR2V0
Q1RNKGdzdGF0ZSkpOworCisgICAgLy8gQ29yZSBHcmFwaGljcyBhc3N1bWVzIGEgInkgdXAiIGNv
b3JkaW5hdGUgc3lzdGVtLCBidXQgaW4gV2ViS2l0LCB3ZSB1c2UgYSAieS1kb3duIiBjb29yZGlu
YXRlIHN5c3RlbS4KKyAgICAvLyBUaGlzIG1lYW5zIHRoYXQgV2ViS2l0J3MgZHJhd2luZyByb3V0
aW5lcyAoR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoKSkgaW50ZW50aW9uYWxseSBkcmF3IGlt
YWdlcyB1cHNpZGUtZG93biBmcm9tIENvcmUgR3JhcGhpY3MncyBwb2ludCBvZiB2aWV3LgorICAg
IC8vIChUaGVyZSdzIGEgeS1mbGlwIGluc2lkZSB0aGUgaW1wbGVtZW50YXRpb24gb2YgR3JhcGhp
Y3NDb250ZXh0OjpkcmF3SW1hZ2UoKS4pCisgICAgLy8gVGhlIHJlY3QgaGFzIHRoZSByaWdodCBi
b3VuZHMsIGJ1dCB3ZSBuZWVkIHRvIHRyYW5zZm9ybSBmcm9tIENHJ3MgY29vcmRpbmF0ZSBzeXN0
ZW0gdG8gV2ViS2l0J3MgYnkgcGVyZm9ybWluZyBvdXIgb3duIHktZmxpcCBzbyBpbWFnZXMgYXJl
IGRyYXduIHRoZSByaWdodC1zaWRlLXVwLgorICAgIC8vIFdlIGRvIHRoaXMgYXQgdGhlIGJvdW5k
YXJ5IGJldHdlZW4gdGhlIHR3byBBUElzLCB3aGljaCBpcyByaWdodCBoZXJlLgorICAgIG1fb3du
ZXIudHJhbnNsYXRlKDAsIHJlY3Quc2l6ZS5oZWlnaHQgKyAyICogcmVjdC5vcmlnaW4ueSk7Cisg
ICAgbV9vd25lci5zY2FsZShGbG9hdFNpemUoMSwgLTEpKTsKKworICAgIGF1dG8gaW1hZ2UgPSBC
aXRtYXBJbWFnZTo6Y3JlYXRlKGNnSW1hZ2UpOworICAgIG1fb3duZXIuYXBwZW5kSXRlbUFuZFVw
ZGF0ZUV4dGVudChEcmF3SW1hZ2U6OmNyZWF0ZShpbWFnZSwgcmVjdCwge3sgfSwgaW1hZ2UtPnNp
emUoKX0sIHsgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luVG9wUmlnaHQgfSkpOworCisgICAgLy8g
VW5kbyB0aGUgYWJvdmUgeS1mbGlwIHRvIHJlc3RvcmUgdGhlIGNvbnRleHQuCisgICAgbV9vd25l
ci5zY2FsZShGbG9hdFNpemUoMSwgLTEpKTsKKyAgICBtX293bmVyLnRyYW5zbGF0ZSgwLCAtKHJl
Y3Quc2l6ZS5oZWlnaHQgKyAyICogcmVjdC5vcmlnaW4ueSkpOworfQorCit2b2lkIERyYXdHbHlw
aHNSZWNvcmRlcjo6ZHJhd0dseXBocyhjb25zdCBGb250JiBmb250LCBjb25zdCBHbHlwaEJ1ZmZl
ciYgZ2x5cGhCdWZmZXIsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIG51bUdseXBocywgY29uc3Qg
RmxvYXRQb2ludCYgc3RhcnRQb2ludCwgRm9udFNtb290aGluZ01vZGUgc21vb3RoaW5nTW9kZSkK
K3sKKyAgICBwcmVwYXJlSW50ZXJuYWxDb250ZXh0KGZvbnQsIHNtb290aGluZ01vZGUpOworICAg
IEZvbnRDYXNjYWRlOjpkcmF3R2x5cGhzKG1faW50ZXJuYWxDb250ZXh0LCBmb250LCBnbHlwaEJ1
ZmZlciwgZnJvbSwgbnVtR2x5cGhzLCBzdGFydFBvaW50LCBzbW9vdGhpbmdNb2RlKTsKKyAgICBj
b25jbHVkZUludGVybmFsQ29udGV4dCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBEaXNwbGF5TGlz
dAorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3Jk
ZXJIYXJmQnV6ei5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjNhYzMyNGI3YjAwYTllMTZhNTZhZDY3MGNlMDRjZmE3N2ZjOWZhOAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcApAQCAtMCwwICsxLDUxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmgiCisKKyNp
bmNsdWRlICJEaXNwbGF5TGlzdEl0ZW1zLmgiCisjaW5jbHVkZSAiRGlzcGxheUxpc3RSZWNvcmRl
ci5oIgorI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKKyNpbmNsdWRlICJGb250LmgiCisjaW5jbHVk
ZSAiR2x5cGhCdWZmZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCituYW1lc3BhY2UgRGlz
cGxheUxpc3QgeworCitEcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdHbHlwaHNSZWNvcmRlcihSZWNv
cmRlciYgb3duZXIpCisgICAgOiBtX293bmVyKG93bmVyKQoreworfQorCit2b2lkIERyYXdHbHlw
aHNSZWNvcmRlcjo6ZHJhd0dseXBocyhjb25zdCBGb250JiBmb250LCBjb25zdCBHbHlwaEJ1ZmZl
ciYgZ2x5cGhCdWZmZXIsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIG51bUdseXBocywgY29uc3Qg
RmxvYXRQb2ludCYgc3RhcnRQb2ludCwgRm9udFNtb290aGluZ01vZGUgc21vb3RoaW5nTW9kZSkK
K3sKKyAgICBtX293bmVyLmFwcGVuZEl0ZW1BbmRVcGRhdGVFeHRlbnQoRHJhd0dseXBoczo6Y3Jl
YXRlKGZvbnQsIGdseXBoQnVmZmVyLmdseXBocyhmcm9tKSwgZ2x5cGhCdWZmZXIuYWR2YW5jZXMo
ZnJvbSksIG51bUdseXBocywgc3RhcnRQb2ludCwgc21vb3RoaW5nTW9kZSkpOworfQorCit9IC8v
IG5hbWVzcGFjZSBEaXNwbGF5TGlzdAorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKaW5kZXggMWM1NGFlODIyOTM5NDIwZGQ0
MGI3YjcwYmE3ZTM5ZGJiYTY1ZmU5Yi4uNGE4NTZjYmI5Y2RiYzRkYjkxODIyNThmZjFiZjQ5ZWYw
NDZhM2I0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcApAQCAt
NDEsNiArNDEsNyBAQCBSZWNvcmRlcjo6UmVjb3JkZXIoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
LCBEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIGNvbnN0IEdyYQogICAgIDogR3JhcGhpY3NDb250
ZXh0SW1wbChjb250ZXh0LCBpbml0aWFsQ2xpcCwgQWZmaW5lVHJhbnNmb3JtKCkpCiAgICAgLCBt
X2Rpc3BsYXlMaXN0KGRpc3BsYXlMaXN0KQogICAgICwgbV9vYnNlcnZlcihvYnNlcnZlcikKKyAg
ICAsIG1fZHJhd0dseXBoc1JlY29yZGVyKCp0aGlzKQogewogICAgIExPR19XSVRIX1NUUkVBTShE
aXNwbGF5TGlzdHMsIHN0cmVhbSA8PCAiXG5SZWNvcmRpbmcgd2l0aCBjbGlwICIgPDwgaW5pdGlh
bENsaXApOwogICAgIG1fc3RhdGVTdGFjay5hcHBlbmQoeyBzdGF0ZSwgaW5pdGlhbENUTSwgaW5p
dGlhbENsaXAgfSk7CkBAIC0xMTEsNyArMTEyLDcgQEAgdm9pZCBSZWNvcmRlcjo6c2V0TWl0ZXJM
aW1pdChmbG9hdCBtaXRlckxpbWl0KQogCiB2b2lkIFJlY29yZGVyOjpkcmF3R2x5cGhzKGNvbnN0
IEZvbnQmIGZvbnQsIGNvbnN0IEdseXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgdW5zaWduZWQgZnJv
bSwgdW5zaWduZWQgbnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBzdGFydFBvaW50LCBGb250
U21vb3RoaW5nTW9kZSBzbW9vdGhpbmdNb2RlKQogewotICAgIGFwcGVuZEl0ZW1BbmRVcGRhdGVF
eHRlbnQoRHJhd0dseXBoczo6Y3JlYXRlKGZvbnQsIGdseXBoQnVmZmVyLmdseXBocyhmcm9tKSwg
Z2x5cGhCdWZmZXIuYWR2YW5jZXMoZnJvbSksIG51bUdseXBocywgc3RhcnRQb2ludCwgc21vb3Ro
aW5nTW9kZSkpOworICAgIG1fZHJhd0dseXBoc1JlY29yZGVyLmRyYXdHbHlwaHMoZm9udCwgZ2x5
cGhCdWZmZXIsIGZyb20sIG51bUdseXBocywgc3RhcnRQb2ludCwgc21vb3RoaW5nTW9kZSk7CiB9
CiAKIEltYWdlRHJhd1Jlc3VsdCBSZWNvcmRlcjo6ZHJhd0ltYWdlKEltYWdlJiBpbWFnZSwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJiBpbWFnZVBhaW50aW5nT3B0aW9ucykKQEAgLTM4NiwxMyAr
Mzg3LDYgQEAgdm9pZCBSZWNvcmRlcjo6YXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChSZWY8RHJh
d2luZ0l0ZW0+JiYgaXRlbSkKICAgICB1cGRhdGVJdGVtRXh0ZW50KG5ld0l0ZW0pOwogfQogCi10
ZW1wbGF0ZTx0eXBlbmFtZSBJdGVtVHlwZT4KLUl0ZW1UeXBlJiBSZWNvcmRlcjo6YXBwZW5kSXRl
bShSZWY8SXRlbVR5cGU+JiYgaXRlbSkKLXsKLSAgICB3aWxsQXBwZW5kSXRlbShpdGVtLmdldCgp
KTsKLSAgICByZXR1cm4gZG93bmNhc3Q8SXRlbVR5cGU+KG1fZGlzcGxheUxpc3QuYXBwZW5kKFdU
Rk1vdmUoaXRlbSkpKTsKLX0KLQogdm9pZCBSZWNvcmRlcjo6dXBkYXRlSXRlbUV4dGVudChEcmF3
aW5nSXRlbSYgaXRlbSkgY29uc3QKIHsKICAgICBpZiAoT3B0aW9uYWw8RmxvYXRSZWN0PiByZWN0
ID0gaXRlbS5sb2NhbEJvdW5kcyhncmFwaGljc0NvbnRleHQoKSkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNv
cmRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0UmVjb3JkZXIuaAppbmRleCA5ZWUxZDM5MzhmMjMyZjNmMThkOTc4YWY3MTg3MDFk
OGJlNDYzMDcyLi44ZTc1OTY0ZTI0OGMzM2FkZjY2ZDdjNjJhZWYwOGM1MDBlMTFjMzFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNw
cmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRGlzcGxheUxpc3QuaCIKKyNpbmNsdWRlICJEaXNwbGF5
TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEltcGwu
aCIKICNpbmNsdWRlICJJbWFnZS5oIiAvLyBGb3IgSW1hZ2U6OlRpbGVSdWxlLgogI2luY2x1ZGUg
IlRleHRGbGFncy5oIgpAQCAtNjEsOCArNjIsNiBAQCBwdWJsaWM6CiAKICAgICBzaXplX3QgaXRl
bUNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9kaXNwbGF5TGlzdC5pdGVtQ291bnQoKTsgfQogCi0g
ICAgdm9pZCBhcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KFJlZjxEcmF3aW5nSXRlbT4mJik7Ci0K
ICAgICBjbGFzcyBPYnNlcnZlciB7CiAgICAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIH5PYnNl
cnZlcigpIHsgfQpAQCAtNzAsNiArNjksNyBAQCBwdWJsaWM6CiAgICAgfTsKIAogcHJpdmF0ZToK
KyAgICBmcmllbmQgY2xhc3MgRHJhd0dseXBoc1JlY29yZGVyOwogICAgIGJvb2wgaGFzUGxhdGZv
cm1Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICBQbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dCogcGxhdGZvcm1Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gbnVsbHB0cjsgfQogCkBAIC0xNDksNiArMTQ5LDcgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBJdGVtVHlwZT4KICAgICBJdGVtVHlwZSYgYXBwZW5kSXRlbShSZWY8SXRlbVR5
cGU+JiYpOwogICAgIHZvaWQgd2lsbEFwcGVuZEl0ZW0oY29uc3QgSXRlbSYpOworICAgIHZvaWQg
YXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChSZWY8RHJhd2luZ0l0ZW0+JiYpOwogCiAgICAgRmxv
YXRSZWN0IGV4dGVudEZyb21Mb2NhbEJvdW5kcyhjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsKICAg
ICB2b2lkIHVwZGF0ZUl0ZW1FeHRlbnQoRHJhd2luZ0l0ZW0mKSBjb25zdDsKQEAgLTE5MSw4ICsx
OTIsMTcgQEAgcHJpdmF0ZToKICAgICBPYnNlcnZlciogbV9vYnNlcnZlcjsKIAogICAgIFZlY3Rv
cjxDb250ZXh0U3RhdGUsIDMyPiBtX3N0YXRlU3RhY2s7CisKKyAgICBEcmF3R2x5cGhzUmVjb3Jk
ZXIgbV9kcmF3R2x5cGhzUmVjb3JkZXI7CiB9OwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBJdGVtVHlw
ZT4KK0l0ZW1UeXBlJiBSZWNvcmRlcjo6YXBwZW5kSXRlbShSZWY8SXRlbVR5cGU+JiYgaXRlbSkK
K3sKKyAgICB3aWxsQXBwZW5kSXRlbShpdGVtLmdldCgpKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8
SXRlbVR5cGU+KG1fZGlzcGxheUxpc3QuYXBwZW5kKFdURk1vdmUoaXRlbSkpKTsKK30KKwogfQog
fQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411517</attachid>
            <date>2020-10-15 18:47:36 -0700</date>
            <delta_ts>2020-10-15 19:02:11 -0700</delta_ts>
            <desc>Needs tests</desc>
            <filename>bug-217506-20201015184736.patch</filename>
            <type>text/plain</type>
            <size>37479</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGIwZGJhY2I1NTcyMjIz
OTE4NzU4NzUyYzFkYjU2NWZlMGEyZGY4NS4uODJkYWZiZGI1NjEwNjdmYzljOTI4MjMxY2Y2MGQ0
ZWFjYjA3OGIzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIwLTEwLTE1ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBb
R1BVIFByb2Nlc3NdIFBlcmZvcm0gaW1hZ2UgZGVjb2Rpbmcgb2YgY29sb3IgZm9udHMgaW4gdGhl
IFdlYiBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTc1MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6Cisg
ICAgICAgICogUGxhdGZvcm1BcHBsZVdpbi5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybVdpbkNh
aXJvLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvV2ViQ29yZS54Y3NjaGVtZToKKyAgICAgICAgKiBwbGF0
Zm9ybS9GcmVlVHlwZS5jbWFrZToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29y
ZGVyQ29yZVRleHQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0Ojpi
ZWdpbkxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjplbmRMYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6ZHJhd0dseXBocyk6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6ZHJhd0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OmNyZWF0ZUludGVybmFsQ29udGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpEcmF3R2x5cGhzUmVj
b3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRl
cjo6cHJlcGFyZUludGVybmFsQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RHJhd0dseXBoc1JlY29yZGVyOjpjb25jbHVkZUludGVybmFsQ29udGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVDVE0pOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6dXBkYXRl
RmlsbENvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVj
b3JkZXI6OnJlY29yZEJlZ2luTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdHbHlwaHNSZWNvcmRlcjo6cmVjb3JkRW5kTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OmNvbXB1dGVBZHZhbmNlc0Zyb21Qb3NpdGlvbnMpOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6cmVjb3JkRHJhd0dseXBocyk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpyZWNv
cmREcmF3SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNS
ZWNvcmRlcjo6ZHJhd0dseXBocyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdH
bHlwaHNSZWNvcmRlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBo
c1JlY29yZGVyOjpkcmF3R2x5cGhzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6UmVjb3JkZXI6OlJlY29yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpSZWNvcmRlcjo6ZHJhd0dseXBocyk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6UmVjb3JkZXI6OmFwcGVuZEl0ZW0pOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmFwcGVuZEl0ZW0pOgorCiAyMDIwLTEwLTE1ICBN
eWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29h
XSBEb24ndCBjaGFuZ2UgdGhlIHRleHQgbWF0cml4IG11bHRpcGxlIHRpbWVzIGluc2lkZSBGb250
Q2FzY2FkZTo6ZHJhd0dseXBocygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBjNGQzMzQyOWRiZTZi
MGMyMGRhNzkyMzFjNmIzM2VmYzhiZDU3OTYyLi5lNzBiYmVjZWVjNTA4YTBjNmI4MjU0MDIyNDkw
OWQxY2FiYTUyZTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0x
MC0xNSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAg
IFtDb2NvYV0gW0dQVSBQcm9jZXNzXSBQZXJmb3JtIGltYWdlIGRlY29kaW5nIG9mIGNvbG9yIGZv
bnRzIGluIHRoZSBXZWIgUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE3NTA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oOgorCiAyMDIwLTEw
LTEzICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUg
bGVmdG92ZXIgTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUX21hY29zeCBzdXBwb3J0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZQppbmRleCAwYWRlN2Q4YzhkNGIyZjJkOThkNmQzOTBlOTM4YWIzM2ViNzQ1ODE3Li44
Y2EwZGU3MDI5ODE5YTU0NWQ0ODE1ZmEyMDAzM2IzNTMwNWVhODkxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UKQEAgLTEyMjksNiArMTIyOSw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hF
QURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9FeHRlbnNpb25zR0xBTkdMRS5oCiAK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuaAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRl
ci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2lu
Z0NvbnRleHQuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEltYWdlQnVmZmVyLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9D
b3JlR3JhcGhpY3NTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFw
aGljc1NQSS5oCmluZGV4IGE3ZjgyYjg2MWI2MmM0YWVmYjgzYzE4MTFkNTVjN2FmNzQ5ZTZiOTEu
LjNjZDE0MGQwZmU0NzU5NGU0ZjMyYjQ2ODkzZDE5YmZmZTMwODQyNjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oCkBAIC0zOCw2ICszOCw3
IEBACiAKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCisjaW5jbHVkZSA8Q29yZUdyYXBo
aWNzL0NHQ29udGV4dERlbGVnYXRlUHJpdmF0ZS5oPgogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9D
R0ZvbnRDYWNoZS5oPgogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9DR1BhdGhQcml2YXRlLmg+CiAj
aW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NvcmVHcmFwaGljc1ByaXZhdGUuaD4KQEAgLTU4LDE5ICs1
OSwxMiBAQCBzdHJ1Y3QgQ0dGb250SE1ldHJpY3MgewogICAgIGludCBtaW5SaWdodFNpZGVCZWFy
aW5nOwogfTsKIAotc3RydWN0IENHRm9udERlc2NyaXB0b3IgewotICAgIENHUmVjdCBiYm94Owot
ICAgIENHRmxvYXQgYXNjZW50OwotICAgIENHRmxvYXQgZGVzY2VudDsKLSAgICBDR0Zsb2F0IGNh
cEhlaWdodDsKLSAgICBDR0Zsb2F0IGl0YWxpY0FuZ2xlOwotICAgIENHRmxvYXQgc3RlbVY7Ci0g
ICAgQ0dGbG9hdCBzdGVtSDsKLSAgICBDR0Zsb2F0IGF2Z1dpZHRoOwotICAgIENHRmxvYXQgbWF4
V2lkdGg7Ci0gICAgQ0dGbG9hdCBtaXNzaW5nV2lkdGg7Ci0gICAgQ0dGbG9hdCBsZWFkaW5nOwot
ICAgIENHRmxvYXQgeEhlaWdodDsKK3R5cGVkZWYgQ0ZfRU5VTSAoaW50MzJfdCwgQ0dDb250ZXh0
RGVsZWdhdGVDYWxsYmFja05hbWUpCit7CisgICAgZGVEcmF3SW1hZ2UgPSA3LAorICAgIGRlRHJh
d0dseXBocyA9IDgsCisgICAgZGVCZWdpbkxheWVyID0gMTcsCisgICAgZGVFbmRMYXllciA9IDE4
LAogfTsKIAogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgQ0dDb2xvclRyYW5zZm9ybSogQ0dDb2xvclRy
YW5zZm9ybVJlZjsKQEAgLTE5Myw2ICsxODcsMTEgQEAgc3RhdGljIGNvbnN0IENHU05vdGlmaWNh
dGlvblR5cGUga0NHU2Vzc2lvbkNvbnNvbGVEaXNjb25uZWN0ID0gKENHU05vdGlmaWNhdGlvblQK
IAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAordHlwZWRlZiBzdHJ1Y3QgQ0dDb250ZXh0RGVs
ZWdhdGUgKkNHQ29udGV4dERlbGVnYXRlUmVmOwordHlwZWRlZiB2b2lkICgqQ0dDb250ZXh0RGVs
ZWdhdGVDYWxsYmFjaykodm9pZCk7Cit0eXBlZGVmIHN0cnVjdCBDR1JlbmRlcmluZ1N0YXRlICpD
R1JlbmRlcmluZ1N0YXRlUmVmOwordHlwZWRlZiBzdHJ1Y3QgQ0dHU3RhdGUgKkNHR1N0YXRlUmVm
OworCiAjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAogI2lmIFBMQVRGT1JNKENP
Q09BKQpAQCAtMjMzLDcgKzIzMiw2IEBAIHZvaWQgQ0dDb250ZXh0UmVzZXRDbGlwKENHQ29udGV4
dFJlZik7CiBDR0NvbnRleHRUeXBlIENHQ29udGV4dEdldFR5cGUoQ0dDb250ZXh0UmVmKTsKIAog
Q0ZTdHJpbmdSZWYgQ0dGb250Q29weUZhbWlseU5hbWUoQ0dGb250UmVmKTsKLWJvb2wgQ0dGb250
R2V0RGVzY3JpcHRvcihDR0ZvbnRSZWYsIENHRm9udERlc2NyaXB0b3IqKTsKIGJvb2wgQ0dGb250
R2V0R2x5cGhBZHZhbmNlc0ZvclN0eWxlKENHRm9udFJlZiwgY29uc3QgQ0dBZmZpbmVUcmFuc2Zv
cm0qICwgQ0dGb250UmVuZGVyaW5nU3R5bGUsIGNvbnN0IENHR2x5cGhbXSwgc2l6ZV90IGNvdW50
LCBDR1NpemUgYWR2YW5jZXNbXSk7CiB2b2lkIENHRm9udEdldEdseXBoc0ZvclVuaWNoYXJzKENH
Rm9udFJlZiwgY29uc3QgVW5pQ2hhcltdLCBDR0dseXBoW10sIHNpemVfdCBjb3VudCk7CiBjb25z
dCBDR0ZvbnRITWV0cmljcyogQ0dGb250R2V0SE1ldHJpY3MoQ0dGb250UmVmKTsKQEAgLTI1Miw2
ICsyNTAsMTQgQEAgYm9vbCBDR0NvbnRleHRHZXRBbGxvd3NGb250U3VicGl4ZWxQb3NpdGlvbmlu
ZyhDR0NvbnRleHRSZWYpOwogYm9vbCBDR0NvbnRleHREcmF3c1dpdGhDb3JyZWN0U2hhZG93T2Zm
c2V0cyhDR0NvbnRleHRSZWYpOwogQ0dQYXR0ZXJuUmVmIENHUGF0dGVybkNyZWF0ZVdpdGhJbWFn
ZTIoQ0dJbWFnZVJlZiwgQ0dBZmZpbmVUcmFuc2Zvcm0sIENHUGF0dGVyblRpbGluZyk7CiAKK0NH
Q29udGV4dERlbGVnYXRlUmVmIENHQ29udGV4dERlbGVnYXRlQ3JlYXRlKHZvaWQqIGluZm8pOwor
dm9pZCBDR0NvbnRleHREZWxlZ2F0ZVNldENhbGxiYWNrKENHQ29udGV4dERlbGVnYXRlUmVmLCBD
R0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrTmFtZSwgQ0dDb250ZXh0RGVsZWdhdGVDYWxsYmFjayk7
CitDR0NvbnRleHRSZWYgQ0dDb250ZXh0Q3JlYXRlV2l0aERlbGVnYXRlKENHQ29udGV4dERlbGVn
YXRlUmVmLCBDR0NvbnRleHRUeXBlLCBDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZik7
Cit2b2lkKiBDR0NvbnRleHREZWxlZ2F0ZUdldEluZm8oQ0dDb250ZXh0RGVsZWdhdGVSZWYpOwor
dm9pZCBDR0NvbnRleHREZWxlZ2F0ZVJlbGVhc2UoQ0dDb250ZXh0RGVsZWdhdGVSZWYpOworQ0dG
bG9hdCBDR0dTdGF0ZUdldEFscGhhKENHR1N0YXRlUmVmKTsKK0NHRm9udFJlZiBDR0dTdGF0ZUdl
dEZvbnQoQ0dHU3RhdGVSZWYpOworCiAjaWYgSEFWRShDR1BBVEhfR0VUX05VTUJFUl9PRl9FTEVN
RU5UUykKIHNpemVfdCBDR1BhdGhHZXROdW1iZXJPZkVsZW1lbnRzKENHUGF0aFJlZik7CiAjZW5k
aWYKQEAgLTI4NiwxNiArMjkyLDkgQEAgQ0dSZWN0KiBDR1NOZXh0UmVjdChjb25zdCBDR1NSZWdp
b25FbnVtZXJhdG9yT2JqKTsKIENHU1JlZ2lvbkVudW1lcmF0b3JPYmogQ0dTUmVnaW9uRW51bWVy
YXRvcihDR1JlZ2lvblJlZik7CiBDR1N0eWxlUmVmIENHU3R5bGVDcmVhdGVGb2N1c1JpbmdXaXRo
Q29sb3IoY29uc3QgQ0dGb2N1c1JpbmdTdHlsZSosIENHQ29sb3JSZWYpOwogdm9pZCBDR0NvbnRl
eHRTZXRTdHlsZShDR0NvbnRleHRSZWYsIENHU3R5bGVSZWYpOwotCiB2b2lkIENHQ29udGV4dERy
YXdDb25pY0dyYWRpZW50KENHQ29udGV4dFJlZiwgQ0dHcmFkaWVudFJlZiwgQ0dQb2ludCBjZW50
ZXIsIENHRmxvYXQgYW5nbGUpOwotCi0jaWYgSEFWRShDR19QQVRIX1VORVZFTl9DT1JORVJTX1JP
VU5ERURSRUNUKQogdm9pZCBDR1BhdGhBZGRVbmV2ZW5Db3JuZXJzUm91bmRlZFJlY3QoQ0dNdXRh
YmxlUGF0aFJlZiwgY29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0gKiwgQ0dSZWN0LCBjb25zdCBDR1Np
emUgY29ybmVyc1s0XSk7Ci0jZW5kaWYKLQotI2lmIEhBVkUoQ0dfRk9OVF9SRU5ERVJJTkdfR0VU
X0ZPTlRfU01PT1RISU5HX0RJU0FCTEVEKQogYm9vbCBDR0ZvbnRSZW5kZXJpbmdHZXRGb250U21v
b3RoaW5nRGlzYWJsZWQodm9pZCk7Ci0jZW5kaWYKIAogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09B
KQogCkBAIC0zMjgsMTUgKzMyNywxMCBAQCBib29sIENvbG9yU3luY1Byb2ZpbGVJc1dpZGVHYW11
dChDb2xvclN5bmNQcm9maWxlUmVmKTsKIHNpemVfdCBDR0Rpc3BsYXlNb2RlR2V0UGl4ZWxzV2lk
ZShDR0Rpc3BsYXlNb2RlUmVmKTsKIHNpemVfdCBDR0Rpc3BsYXlNb2RlR2V0UGl4ZWxzSGlnaChD
R0Rpc3BsYXlNb2RlUmVmKTsKIAotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9C
TE9DS0lORykKLQogQ0dFcnJvciBDR1NTZXREZW55V2luZG93U2VydmVyQ29ubmVjdGlvbnMoYm9v
bCk7Ci0KIHR5cGVkZWYgaW50MzJfdCBDR1NEaXNwbGF5SUQ7CiBDR1NEaXNwbGF5SUQgQ0dTTWFp
bkRpc3BsYXlJRCh2b2lkKTsKIAotI2VuZGlmIC8vIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NF
UlZFUl9CTE9DS0lORykKLQogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAogI2lmIEVOQUJMRShQ
REZLSVRfUExVR0lOKSAmJiAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtQXBwbGVXaW4uY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0
Zm9ybUFwcGxlV2luLmNtYWtlCmluZGV4IGE3ODhlNjlkZTc0NDFjOTQwODRmNzAzNmEzZThmNDlh
ZDQ1MWE1OGQuLjM4YTJiNzc2ODk1NTk4YTRmNGUzNmFkZTdjNjAzYjA0MDc4ZGRjNzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQXBwbGVXaW4uY21ha2UKKysrIGIvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1BcHBsZVdpbi5jbWFrZQpAQCAtMzAsNiArMzAsOCBAQCBsaXN0KEFQ
UEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
Y2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL2NmL1dlYkNvcmVBVkNGUmVzb3VyY2VMb2FkZXIuY3BwCiAKKyAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVj
b3JkZXJDb3JlVGV4dC5jcHAKKwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9t
UGxhdGZvcm1EYXRhLmNwcAogCiAgICAgcGxhdGZvcm0vbmV0d29yay9jZi9BdXRoZW50aWNhdGlv
bkNGLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5DYWlyby5jbWFr
ZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UKaW5kZXggYzRiODZjMTQ4
OWFhYzlhNWUyZWEwMDQwMDIwZjM0MTk2NmExNDUzMy4uYmZlMDhkN2E2NDk4NzcyOTczNDdmODZi
ZWY4NDBlM2U2OWYyODg4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5D
YWlyby5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbkNhaXJvLmNtYWtlCkBA
IC0xOCw2ICsxOCw4IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURp
c3BsYXkuY3BwCiAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHAKKwogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFDYWlyb1dpbi5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy93aW4vR2x5cGhQYWdlVHJlZU5vZGVDYWlyb1dpbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0
CmluZGV4IDY0MTQwNTkyNTQwMWU2ZTNjZDViNjZmOWEzZmY3Y2Q4ZDA3MWNlMDguLmU3MDJhYjU2
NTE2OTY1NmMxM2ZjOTBjMTNlMWEyNGYzYjNhOWZjYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4
dApAQCAtMzc4LDYgKzM3OCw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJT
ZXNzaW9uVlQubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1Yu
Y3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAKIHBsYXRm
b3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GaWx0ZXJFZmZlY3RSZW5kZXJlckNvcmVJbWFnZS5tbQor
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29y
ZGVyQ29yZVRleHQuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGlsaW5nRGF0YS5jcHAKIHBs
YXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBBbGxvY2F0b3JNZXRhbC5tbQog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cExheW91dE1ldGFsLm1tCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggMWFjZjE0NDM5OTI0ODU4MTQ4ZGQyMGI5ZThkZTdhNTFlM2IyMmRjZS4uZTlkYmIwOWUxMmRh
NmUzNDRiZDNmNzRlY2YwYmIyZGNhNzczNjVmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjE5LDYgKzYxOSw3IEBACiAJCTFD
QUYzNDgxMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUYzNDdFMEE2QzQwNTIwMEFCRTA2
RSAvKiBXZWJTY3JpcHRPYmplY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkxQ0FGMzQ4MjBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2Jq
ZWN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNB
RjM0N0YwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdC5tbSAqLzsgfTsKIAkJMUNB
RjM0ODMwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdFByaXZhdGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUYzNDgwMEE2QzQwNTIw
MEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3RQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMUNBRjU2REIyNTMwMUFDODAwMTdCNDcyIC8q
IERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FGNTZEODI1MzAxNDU3MDAxN0I0NzIgLyogRGlzcGxh
eUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkxQ0NEODE1MDIyMzFGODNFMDA2NUZDMkIgLyogV2ViQ29yZVJl
c291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE1MjU1MTQxNkZEMjM0RjAwM0Q3QURCIC8q
IFdlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbSAqLzsgfTsK
IAkJMUNDREY1QkUxOTkwMzMyNDAwQkNFQkFEIC8qIFNWR1RvT1RGRm9udENvbnZlcnNpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQ0RGNUJDMTk5
MDMzMjQwMEJDRUJBRCAvKiBTVkdUb09URkZvbnRDb252ZXJzaW9uLmggKi87IH07CiAJCTFDRkFF
MzIzMEE2RDZBM0YwMDMyNTkzRCAvKiBsaWJvYmpjLmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNGQUUzMjIwQTZENkEzRjAwMzI1OTNEIC8q
IGxpYm9iamMuZHlsaWIgKi87IH07CkBAIC02NzE2LDYgKzY3MTcsOCBAQAogCQkxQ0FGMzQ3RTBB
NkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYlNjcmlwdE9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxQ0FGMzQ3RjBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViU2NyaXB0T2JqZWN0Lm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FGMzQ4MDBBNkM0MDUyMDBBQkUwNkUgLyog
V2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJTY3JpcHRPYmplY3RQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDQUY1NkQ4MjUzMDE0NTcwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0FGNTZERTI1MzAyNDVBMDAxN0I0NzIgLyogRGlz
cGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMUNCNUZFODgyMkRFQkM4QjAwOTQ0MEUyIC8qIFdITFNMRXJyb3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xFcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxQ0I2OUIzMjIxREVENDBCMDA2RTg0NkEgLyogV0hMU0xSZXNvbHZhYmxlVHlwZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXSExTTFJlc29sdmFibGVUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFDQjY5QjM0MjFERUQ2M0EwMDZFODQ2QSAvKiBXSExTTEZsb2F0TGl0ZXJhbFR5
cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xGbG9hdExpdGVyYWxUeXBlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xNzUxNSw2ICsxNzUxOCw4IEBACiAJCQljaGlsZHJlbiA9ICgK
IAkJCQkwRkU1RkJDQTFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3QuY3BwICovLAogCQkJ
CTBGRTVGQkNCMUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdC5oICovLAorCQkJCTFDQUY1
NkQ4MjUzMDE0NTcwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oICov
LAorCQkJCTFDQUY1NkRFMjUzMDI0NUEwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNS
ZWNvcmRlckNvcmVUZXh0LmNwcCAqLywKIAkJCQk1NUMwQTI5NTIzRkUyQ0UwMDBGMkNCOTMgLyog
RGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5jcHAgKi8sCiAJCQkJNzJFQTA5RjkyM0ZDQ0M2QTAw
ODUwNEE1IC8qIERpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaCAqLywKIAkJCQk3MkVBMDlGNzIz
RkNDQjNEMDA4NTA0QTUgLyogRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oICovLApAQCAtMzEyMzcs
NiArMzEyNDIsNyBAQAogCQkJCTdFREFBRkM5MTlBMkNDREMwMDM0REZEMSAvKiBEaXNrQ2FjaGVN
b25pdG9yQ29jb2EuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNzkwRjQyMjUxN0NFNkUwMDlCQTAz
NCAvKiBEaXNwbGF5TGF5ZXJDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU1RkJE
MzFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTFD
QUY1NkRCMjUzMDFBQzgwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTVBRDA5NDAyNDA4OTY0MDAwREU0RDJGIC8qIERpc3BsYXlM
aXN0RHJhd2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1QUQwOTNFMjQwODk2MzUw
MERFNEQyRiAvKiBEaXNwbGF5TGlzdEltYWdlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkU1RkJENTFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3RJdGVtcy5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai94Y3NoYXJl
ZGRhdGEveGNzY2hlbWVzL1dlYkNvcmUueGNzY2hlbWUgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai94Y3NoYXJlZGRhdGEveGNzY2hlbWVzL1dlYkNvcmUueGNzY2hlbWUKaW5kZXgg
MTU4MmUxYTNjNTZkZjllNzgyMDBkOTlhOTk4NjgwNTkxYjRjZGYwYi4uMDdlOTQxOWY1ZjI2Zjcx
ZmU4YjRhYmQ3YWQzY2JkOWU5ZTZhM2FlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2oveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9XZWJDb3JlLnhjc2NoZW1lCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVt
ZXMvV2ViQ29yZS54Y3NjaGVtZQpAQCAtNDAsNiArNDAsMTEgQEAKICAgICAgIGRlYnVnRG9jdW1l
bnRWZXJzaW9uaW5nID0gIllFUyIKICAgICAgIGRlYnVnU2VydmljZUV4dGVuc2lvbiA9ICJpbnRl
cm5hbCIKICAgICAgIGFsbG93TG9jYXRpb25TaW11bGF0aW9uID0gIllFUyI+CisgICAgICA8UGF0
aFJ1bm5hYmxlCisgICAgICAgICBydW5uYWJsZURlYnVnZ2luZ01vZGUgPSAiMCIKKyAgICAgICAg
IEJ1bmRsZUlkZW50aWZpZXIgPSAib3JnLndlYmtpdC5NaW5pQnJvd3NlciIKKyAgICAgICAgIEZp
bGVQYXRoID0gIi9Vc2Vycy9tbWF4ZmllbGQvQnVpbGQvUHJvZHVjdHMvRGVidWcvTWluaUJyb3dz
ZXIuYXBwIj4KKyAgICAgIDwvUGF0aFJ1bm5hYmxlPgogICAgPC9MYXVuY2hBY3Rpb24+CiAgICA8
UHJvZmlsZUFjdGlvbgogICAgICAgYnVpbGRDb25maWd1cmF0aW9uID0gIlJlbGVhc2UiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GcmVlVHlwZS5jbWFrZSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtlCmluZGV4IDdjMDRkOTNhNWI4NWM3MzI1ODFj
OTVhMDY1YmUwNWI2MzY3YzdhZTQuLmYzOGI1NGUxN2M5MzE1NjUxNTRjYWI5NTNhODFlMGU5NmY1
NzQ5YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtlCkBAIC01LDYgKzUs
OCBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1BSSVZBVEVfSU5DTFVERV9ESVJFQ1RPUklFUwogKQog
CiBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHAKKwogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFGcmVlVHlwZS5j
cHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250UGxhdGZvcm1EYXRhRnJlZVR5
cGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNv
cmRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjlkZDZjMTY3ZGJiNjA4Yjc2MzNhZGU1MDQwZDUxNzQ0YzAzZjZk
MmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaApAQCAtMCwwICsxLDg3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlICJUZXh0RmxhZ3MuaCIKKworI2lmIFVTRShDT1JFX1RFWFQpCisj
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisKKyNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ29y
ZUdyYXBoaWNzLmg+CisjaW5jbHVkZSA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KKyNl
bmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZsb2F0UG9pbnQ7CitjbGFzcyBG
b250OworY2xhc3MgR2x5cGhCdWZmZXI7CitjbGFzcyBHcmFwaGljc0NvbnRleHQ7CisKK25hbWVz
cGFjZSBEaXNwbGF5TGlzdCB7CisKK2NsYXNzIFJlY29yZGVyOworCitjbGFzcyBEcmF3R2x5cGhz
UmVjb3JkZXIgeworcHVibGljOgorICAgIGV4cGxpY2l0IERyYXdHbHlwaHNSZWNvcmRlcihSZWNv
cmRlciYpOworCisgICAgdm9pZCBkcmF3R2x5cGhzKGNvbnN0IEZvbnQmLCBjb25zdCBHbHlwaEJ1
ZmZlciYsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIG51bUdseXBocywgY29uc3QgRmxvYXRQb2lu
dCYgYW5jaG9yUG9pbnQsIEZvbnRTbW9vdGhpbmdNb2RlKTsKKworI2lmIFVTRShDT1JFX1RFWFQp
CisgICAgdm9pZCByZWNvcmRCZWdpbkxheWVyKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRl
UmVmLCBDR1JlY3QpOworICAgIHZvaWQgcmVjb3JkRW5kTGF5ZXIoQ0dSZW5kZXJpbmdTdGF0ZVJl
ZiwgQ0dHU3RhdGVSZWYpOworICAgIHZvaWQgcmVjb3JkRHJhd0dseXBocyhDR1JlbmRlcmluZ1N0
YXRlUmVmLCBDR0dTdGF0ZVJlZiwgY29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0qLCBjb25zdCBDR0ds
eXBoW10sIGNvbnN0IENHUG9pbnQgcG9zaXRpb25zW10sIHNpemVfdCBjb3VudCk7CisgICAgdm9p
ZCByZWNvcmREcmF3SW1hZ2UoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYsIENHUmVj
dCwgQ0dJbWFnZVJlZik7CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBHcmFwaGljc0NvbnRleHQg
Y3JlYXRlSW50ZXJuYWxDb250ZXh0KCk7CisgICAgdm9pZCBwcmVwYXJlSW50ZXJuYWxDb250ZXh0
KGNvbnN0IEZvbnQmLCBGb250U21vb3RoaW5nTW9kZSk7CisgICAgdm9pZCBjb25jbHVkZUludGVy
bmFsQ29udGV4dCgpOworICAgIHZvaWQgdXBkYXRlQ1RNKEFmZmluZVRyYW5zZm9ybSk7CisgICAg
dm9pZCB1cGRhdGVGaWxsQ29sb3IoY29uc3QgQ29sb3ImLCBHcmFkaWVudCogPSBudWxscHRyLCBQ
YXR0ZXJuKiA9IG51bGxwdHIpOworCisgICAgUmVjb3JkZXImIG1fb3duZXI7CisgICAgR3JhcGhp
Y3NDb250ZXh0IG1faW50ZXJuYWxDb250ZXh0OworICAgIGNvbnN0IEZvbnQqIG1fY3VycmVudEZv
bnQgeyBudWxscHRyIH07CisgICAgQ29sb3IgbV9jdXJyZW50Q29sb3I7CisKKyAgICBDb2xvciBt
X29yaWdpbmFsRmlsbENvbG9yOworICAgIFJlZlB0cjxHcmFkaWVudD4gbV9vcmlnaW5hbEZpbGxH
cmFkaWVudDsKKyAgICBSZWZQdHI8UGF0dGVybj4gbV9vcmlnaW5hbEZpbGxQYXR0ZXJuOworCisg
ICAgQWZmaW5lVHJhbnNmb3JtIG1fb3JpZ2luYWxDVE07CisgICAgQWZmaW5lVHJhbnNmb3JtIG1f
Y3VycmVudENUTTsKKworICAgIEFmZmluZVRyYW5zZm9ybSBtX29yaWdpbmFsVGV4dE1hdHJpeDsK
KworICAgIEZvbnRTbW9vdGhpbmdNb2RlIG1fc21vb3RoaW5nTW9kZSB7IEZvbnRTbW9vdGhpbmdN
b2RlOjpBdXRvU21vb3RoaW5nIH07Cit9OworCit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlw
aHNSZWNvcmRlckNvcmVUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mNjk2Y2MxMGNmNDQ3NDcwZGMwNjgxZWU4Zjg1ZTUzZDNiZDFjOTJkCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwCkBAIC0wLDAgKzEs
MjY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVy
LmgiCisKKyNpbmNsdWRlICJCaXRtYXBJbWFnZS5oIgorI2luY2x1ZGUgIkNvbG9yLmgiCisjaW5j
bHVkZSAiRGlzcGxheUxpc3RJdGVtcy5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0UmVjb3JkZXIu
aCIKKyNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiRm9udC5oIgorI2luY2x1ZGUg
IkZvbnRDYXNjYWRlLmgiCisjaW5jbHVkZSAiR2x5cGhCdWZmZXIuaCIKKworI2luY2x1ZGUgPENv
cmVUZXh0L0NvcmVUZXh0Lmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCisjaWYgUExBVEZP
Uk0oV0lOKQorI2luY2x1ZGUgPHBhbC9zcGkvd2luL0NvcmVUZXh0U1BJV2luLmg+CisjZW5kaWYK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCituYW1lc3BhY2UgRGlzcGxheUxpc3QgeworCitzdGF0
aWMgQ0dDb250ZXh0RGVsZWdhdGVSZWYgYmVnaW5MYXllcihDR0NvbnRleHREZWxlZ2F0ZVJlZiBk
ZWxlZ2F0ZSwgQ0dSZW5kZXJpbmdTdGF0ZVJlZiByc3RhdGUsIENHR1N0YXRlUmVmIGdzdGF0ZSwg
Q0dSZWN0IHJlY3QsIENGRGljdGlvbmFyeVJlZiwgQ0dDb250ZXh0RGVsZWdhdGVSZWYpCit7Cisg
ICAgRHJhd0dseXBoc1JlY29yZGVyJiByZWNvcmRlciA9ICpzdGF0aWNfY2FzdDxEcmF3R2x5cGhz
UmVjb3JkZXIqPihDR0NvbnRleHREZWxlZ2F0ZUdldEluZm8oZGVsZWdhdGUpKTsKKyAgICByZWNv
cmRlci5yZWNvcmRCZWdpbkxheWVyKHJzdGF0ZSwgZ3N0YXRlLCByZWN0KTsKKyAgICByZXR1cm4g
ZGVsZWdhdGU7Cit9CisKK3N0YXRpYyBDR0NvbnRleHREZWxlZ2F0ZVJlZiBlbmRMYXllcihDR0Nv
bnRleHREZWxlZ2F0ZVJlZiBkZWxlZ2F0ZSwgQ0dSZW5kZXJpbmdTdGF0ZVJlZiByc3RhdGUsIENH
R1N0YXRlUmVmIGdzdGF0ZSkKK3sKKyAgICBEcmF3R2x5cGhzUmVjb3JkZXImIHJlY29yZGVyID0g
KnN0YXRpY19jYXN0PERyYXdHbHlwaHNSZWNvcmRlcio+KENHQ29udGV4dERlbGVnYXRlR2V0SW5m
byhkZWxlZ2F0ZSkpOworICAgIHJlY29yZGVyLnJlY29yZEVuZExheWVyKHJzdGF0ZSwgZ3N0YXRl
KTsKKyAgICByZXR1cm4gZGVsZWdhdGU7Cit9CisKK3N0YXRpYyBDR0Vycm9yIGRyYXdHbHlwaHMo
Q0dDb250ZXh0RGVsZWdhdGVSZWYgZGVsZWdhdGUsIENHUmVuZGVyaW5nU3RhdGVSZWYgcnN0YXRl
LCBDR0dTdGF0ZVJlZiBnc3RhdGUsIGNvbnN0IENHQWZmaW5lVHJhbnNmb3JtKiB0bSwgY29uc3Qg
Q0dHbHlwaCBnbHlwaHNbXSwgY29uc3QgQ0dQb2ludCBwb3NpdGlvbnNbXSwgc2l6ZV90IGNvdW50
KQoreworICAgIGlmIChDR0dTdGF0ZUdldEFscGhhKGdzdGF0ZSkgPiAwKSB7CisgICAgICAgIERy
YXdHbHlwaHNSZWNvcmRlciYgcmVjb3JkZXIgPSAqc3RhdGljX2Nhc3Q8RHJhd0dseXBoc1JlY29y
ZGVyKj4oQ0dDb250ZXh0RGVsZWdhdGVHZXRJbmZvKGRlbGVnYXRlKSk7CisgICAgICAgIHJlY29y
ZGVyLnJlY29yZERyYXdHbHlwaHMocnN0YXRlLCBnc3RhdGUsIHRtLCBnbHlwaHMsIHBvc2l0aW9u
cywgY291bnQpOworICAgIH0KKyAgICByZXR1cm4ga0NHRXJyb3JTdWNjZXNzOworfQorCitzdGF0
aWMgQ0dFcnJvciBkcmF3SW1hZ2UoQ0dDb250ZXh0RGVsZWdhdGVSZWYgZGVsZWdhdGUsIENHUmVu
ZGVyaW5nU3RhdGVSZWYgcnN0YXRlLCBDR0dTdGF0ZVJlZiBnc3RhdGUsIENHUmVjdCByZWN0LCBD
R0ltYWdlUmVmIGltYWdlKQoreworICAgIERyYXdHbHlwaHNSZWNvcmRlciYgcmVjb3JkZXIgPSAq
c3RhdGljX2Nhc3Q8RHJhd0dseXBoc1JlY29yZGVyKj4oQ0dDb250ZXh0RGVsZWdhdGVHZXRJbmZv
KGRlbGVnYXRlKSk7CisgICAgcmVjb3JkZXIucmVjb3JkRHJhd0ltYWdlKHJzdGF0ZSwgZ3N0YXRl
LCByZWN0LCBpbWFnZSk7CisgICAgcmV0dXJuIGtDR0Vycm9yU3VjY2VzczsKK30KKworR3JhcGhp
Y3NDb250ZXh0IERyYXdHbHlwaHNSZWNvcmRlcjo6Y3JlYXRlSW50ZXJuYWxDb250ZXh0KCkKK3sK
KyAgICBhdXRvIGNvbnRleHREZWxlZ2F0ZSA9IGFkb3B0Q0YoQ0dDb250ZXh0RGVsZWdhdGVDcmVh
dGUodGhpcykpOworICAgIENHQ29udGV4dERlbGVnYXRlU2V0Q2FsbGJhY2soY29udGV4dERlbGVn
YXRlLmdldCgpLCBkZUJlZ2luTGF5ZXIsIHJlaW50ZXJwcmV0X2Nhc3Q8Q0dDb250ZXh0RGVsZWdh
dGVDYWxsYmFjaz4oJmJlZ2luTGF5ZXIpKTsKKyAgICBDR0NvbnRleHREZWxlZ2F0ZVNldENhbGxi
YWNrKGNvbnRleHREZWxlZ2F0ZS5nZXQoKSwgZGVFbmRMYXllciwgcmVpbnRlcnByZXRfY2FzdDxD
R0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrPigmZW5kTGF5ZXIpKTsKKyAgICBDR0NvbnRleHREZWxl
Z2F0ZVNldENhbGxiYWNrKGNvbnRleHREZWxlZ2F0ZS5nZXQoKSwgZGVEcmF3R2x5cGhzLCByZWlu
dGVycHJldF9jYXN0PENHQ29udGV4dERlbGVnYXRlQ2FsbGJhY2s+KCZXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6ZHJhd0dseXBocykpOworICAgIENHQ29udGV4dERlbGVnYXRlU2V0Q2FsbGJhY2soY29u
dGV4dERlbGVnYXRlLmdldCgpLCBkZURyYXdJbWFnZSwgcmVpbnRlcnByZXRfY2FzdDxDR0NvbnRl
eHREZWxlZ2F0ZUNhbGxiYWNrPigmZHJhd0ltYWdlKSk7CisgICAgYXV0byBjb250ZXh0ID0gYWRv
cHRDRihDR0NvbnRleHRDcmVhdGVXaXRoRGVsZWdhdGUoY29udGV4dERlbGVnYXRlLmdldCgpLCBr
Q0dDb250ZXh0VHlwZVVua25vd24sIG51bGxwdHIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gR3Jh
cGhpY3NDb250ZXh0KGNvbnRleHQuZ2V0KCkpOworfQorCitEcmF3R2x5cGhzUmVjb3JkZXI6OkRy
YXdHbHlwaHNSZWNvcmRlcihSZWNvcmRlciYgb3duZXIpCisgICAgOiBtX293bmVyKG93bmVyKQor
ICAgICwgbV9pbnRlcm5hbENvbnRleHQoY3JlYXRlSW50ZXJuYWxDb250ZXh0KCkpCit7Cit9CisK
K3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpwcmVwYXJlSW50ZXJuYWxDb250ZXh0KGNvbnN0IEZv
bnQmIGZvbnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCit7CisgICAgQVNTRVJU
KENHQWZmaW5lVHJhbnNmb3JtSXNJZGVudGl0eShDVEZvbnRHZXRNYXRyaXgoZm9udC5wbGF0Zm9y
bURhdGEoKS5jdEZvbnQoKSkpKTsKKworICAgIGF1dG8mIHN0YXRlID0gbV9vd25lci5jdXJyZW50
U3RhdGUoKS5zdGF0ZUNoYW5nZS5tX3N0YXRlOworICAgIG1fb3JpZ2luYWxGaWxsQ29sb3IgPSBz
dGF0ZS5maWxsQ29sb3I7CisgICAgbV9vcmlnaW5hbEZpbGxHcmFkaWVudCA9IHN0YXRlLmZpbGxH
cmFkaWVudDsKKyAgICBtX29yaWdpbmFsRmlsbFBhdHRlcm4gPSBzdGF0ZS5maWxsUGF0dGVybjsK
KyAgICBtX2N1cnJlbnRDb2xvciA9IG1fb3JpZ2luYWxGaWxsQ29sb3I7CisKKyAgICBpZiAobV9v
cmlnaW5hbEZpbGxDb2xvci5pc1ZhbGlkKCkpCisgICAgICAgIG1faW50ZXJuYWxDb250ZXh0LnNl
dEZpbGxDb2xvcihtX29yaWdpbmFsRmlsbENvbG9yKTsKKyAgICBlbHNlIGlmIChtX29yaWdpbmFs
RmlsbEdyYWRpZW50KQorICAgICAgICBtX2ludGVybmFsQ29udGV4dC5zZXRGaWxsR3JhZGllbnQo
Km1fb3JpZ2luYWxGaWxsR3JhZGllbnQpOworICAgIGVsc2UgeworICAgICAgICBBU1NFUlQobV9v
cmlnaW5hbEZpbGxQYXR0ZXJuKTsKKyAgICAgICAgaWYgKG1fb3JpZ2luYWxGaWxsUGF0dGVybikK
KyAgICAgICAgICAgIG1faW50ZXJuYWxDb250ZXh0LnNldEZpbGxQYXR0ZXJuKCptX29yaWdpbmFs
RmlsbFBhdHRlcm4pOworICAgIH0KKworICAgIG1faW50ZXJuYWxDb250ZXh0LnNldFNoYWRvdyhz
dGF0ZS5zaGFkb3dPZmZzZXQsIHN0YXRlLnNoYWRvd0JsdXIsIHN0YXRlLnNoYWRvd0NvbG9yKTsK
KworICAgIG1fb3JpZ2luYWxDVE0gPSBtX293bmVyLmN1cnJlbnRTdGF0ZSgpLmN0bTsgLy8gRklY
TUU6IERlYWwgd2l0aCBkZXZpY2Ugc2NhbGUuCisgICAgbV9jdXJyZW50Q1RNID0gbV9vcmlnaW5h
bENUTTsKKyAgICBtX2ludGVybmFsQ29udGV4dC5zZXRDVE0obV9vcmlnaW5hbENUTSk7CisKKyAg
ICBtX29yaWdpbmFsVGV4dE1hdHJpeCA9IGNvbXB1dGVPdmVyYWxsVGV4dE1hdHJpeChmb250KTsK
KyAgICBpZiAoZm9udC5wbGF0Zm9ybURhdGEoKS5vcmllbnRhdGlvbigpID09IEZvbnRPcmllbnRh
dGlvbjo6VmVydGljYWwpCisgICAgICAgIG1fb3JpZ2luYWxUZXh0TWF0cml4ID0gY29tcHV0ZVZl
cnRpY2FsVGV4dE1hdHJpeChmb250LCBtX29yaWdpbmFsVGV4dE1hdHJpeCk7CisKKyAgICBtX2N1
cnJlbnRGb250ID0gJmZvbnQ7CisgICAgbV9zbW9vdGhpbmdNb2RlID0gc21vb3RoaW5nTW9kZTsK
K30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OmNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KCkK
K3sKKyAgICB1cGRhdGVGaWxsQ29sb3IobV9vcmlnaW5hbEZpbGxDb2xvciwgbV9vcmlnaW5hbEZp
bGxHcmFkaWVudC5nZXQoKSwgbV9vcmlnaW5hbEZpbGxQYXR0ZXJuLmdldCgpKTsKKyAgICB1cGRh
dGVDVE0obV9vcmlnaW5hbENUTSk7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjp1cGRh
dGVDVE0oQWZmaW5lVHJhbnNmb3JtIGN0bSkKK3sKKyAgICBpZiAoY3RtID09IG1fY3VycmVudENU
TSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9vd25lci5zZXRDVE0oY3RtKTsKKyAgICBtX2N1
cnJlbnRDVE0gPSBjdG07Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVGaWxs
Q29sb3IoY29uc3QgQ29sb3ImIG5ld0NvbG9yLCBHcmFkaWVudCogbmV3R3JhZGllbnQsIFBhdHRl
cm4qIG5ld1BhdHRlcm4pCit7CisgICAgaWYgKG5ld0NvbG9yID09IG1fY3VycmVudENvbG9yKQor
ICAgICAgICByZXR1cm47CisKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZSBuZXdTdGF0ZTsKKyAg
ICBuZXdTdGF0ZS5maWxsQ29sb3IgPSBuZXdDb2xvcjsKKyAgICBpZiAobmV3R3JhZGllbnQpCisg
ICAgICAgIG5ld1N0YXRlLmZpbGxHcmFkaWVudCA9IG5ld0dyYWRpZW50OworICAgIGlmIChuZXdQ
YXR0ZXJuKQorICAgICAgICBuZXdTdGF0ZS5maWxsUGF0dGVybiA9IG5ld1BhdHRlcm47CisgICAg
bV9vd25lci51cGRhdGVTdGF0ZShuZXdTdGF0ZSwgeyBHcmFwaGljc0NvbnRleHRTdGF0ZTo6Rmls
bENvbG9yQ2hhbmdlIH0pOworICAgIG1fY3VycmVudENvbG9yID0gbmV3Q29sb3I7Cit9CisKK3Zv
aWQgRHJhd0dseXBoc1JlY29yZGVyOjpyZWNvcmRCZWdpbkxheWVyKENHUmVuZGVyaW5nU3RhdGVS
ZWYsIENHR1N0YXRlUmVmIGdzdGF0ZSwgQ0dSZWN0KQoreworICAgIHVwZGF0ZUNUTSgqQ0dHU3Rh
dGVHZXRDVE0oZ3N0YXRlKSk7CisgICAgYXV0byBhbHBoYSA9IENHR1N0YXRlR2V0QWxwaGEoZ3N0
YXRlKTsKKyAgICBtX293bmVyLmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoYWxwaGEpOworfQorCit2
b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6cmVjb3JkRW5kTGF5ZXIoQ0dSZW5kZXJpbmdTdGF0ZVJl
ZiwgQ0dHU3RhdGVSZWYgZ3N0YXRlKQoreworICAgIHVwZGF0ZUNUTSgqQ0dHU3RhdGVHZXRDVE0o
Z3N0YXRlKSk7CisgICAgbV9vd25lci5lbmRUcmFuc3BhcmVuY3lMYXllcigpOworfQorCitzdGF0
aWMgVmVjdG9yPENHU2l6ZT4gY29tcHV0ZUFkdmFuY2VzRnJvbVBvc2l0aW9ucyhjb25zdCBDR1Bv
aW50IHBvc2l0aW9uc1tdLCBzaXplX3QgY291bnQsIGNvbnN0IENHQWZmaW5lVHJhbnNmb3JtJiB0
ZXh0TWF0cml4KQoreworICAgIFZlY3RvcjxDR1NpemU+IHJlc3VsdDsKKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGNvdW50IC0gMTsgKytpKSB7CisgICAgICAgIGF1dG8gbmV4dFBvc2l0aW9u
ID0gcG9zaXRpb25zW2kgKyAxXTsKKyAgICAgICAgYXV0byBjdXJyZW50UG9zaXRpb24gPSBwb3Np
dGlvbnNbaV07CisgICAgICAgIGF1dG8gYWR2YW5jZSA9IENHU2l6ZU1ha2UobmV4dFBvc2l0aW9u
LnggLSBjdXJyZW50UG9zaXRpb24ueCwgbmV4dFBvc2l0aW9uLnkgLSBjdXJyZW50UG9zaXRpb24u
eSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoQ0dTaXplQXBwbHlBZmZpbmVUcmFuc2Zvcm0oYWR2
YW5jZSwgdGV4dE1hdHJpeCkpOworICAgIH0KKyAgICByZXN1bHQuY29uc3RydWN0QW5kQXBwZW5k
KENHU2l6ZU1ha2UoMCwgMCkpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3ZvaWQgRHJhd0ds
eXBoc1JlY29yZGVyOjpyZWNvcmREcmF3R2x5cGhzKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0
YXRlUmVmIGdzdGF0ZSwgY29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0qLCBjb25zdCBDR0dseXBoIGds
eXBoc1tdLCBjb25zdCBDR1BvaW50IHBvc2l0aW9uc1tdLCBzaXplX3QgY291bnQpCit7CisgICAg
aWYgKCFjb3VudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgQ0dGb250UmVmIHVzZWRGb250ID0g
Q0dHU3RhdGVHZXRGb250KGdzdGF0ZSk7CisgICAgaWYgKHVzZWRGb250ICE9IGFkb3B0Q0YoQ1RG
b250Q29weUdyYXBoaWNzRm9udChtX2N1cnJlbnRGb250LT5wbGF0Zm9ybURhdGEoKS5jdEZvbnQo
KSwgbnVsbHB0cikpLmdldCgpKQorICAgICAgICByZXR1cm47CisKKyNpZiBBU1NFUlRfRU5BQkxF
RAorICAgIGF1dG8gdGV4dFBvc2l0aW9uID0gQ0dDb250ZXh0R2V0VGV4dFBvc2l0aW9uKG1faW50
ZXJuYWxDb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpKTsKKyAgICBBU1NFUlQoIXRleHRQb3NpdGlv
bi54KTsKKyAgICBBU1NFUlQoIXRleHRQb3NpdGlvbi55KTsKKyNlbmRpZgorCisgICAgdXBkYXRl
Q1RNKCpDR0dTdGF0ZUdldENUTShnc3RhdGUpKTsKKworICAgIC8vIFdlIHdhbnQgdGhlIEdQVSBw
cm9jZXNzJ3MgQ1RNIGFuZCB0ZXh0IG1hdHJpeCB0byBtYXRjaCB0aGUgY3VycmVudCBDVE0gYW5k
IHRleHQgbWF0cml4LgorICAgIC8vIFRoZSBjdXJyZW50IHRleHQgbWF0cml4IGlzIGEgY29uY2F0
ZW5hdGlvbiBvZiB3aGF0ZXZlciBXZWJLaXQgc2V0cyBpdCB0byBhbmQgd2hhdGV2ZXIKKyAgICAv
LyBDb3JlIFRleHQgYXBwZW5kcyB0byBpdC4gU28sIHJpZ2h0IG5vdyB3ZSBoYXZlCisgICAgLy8g
Q1RNICogbV9vcmlnaW5hbFRleHRNYXRyaXggKiBDb3JlIFRleHQncyB0ZXh0IG1hdHJpeC4KKyAg
ICAvLyBIb3dldmVyLCBDR0NvbnRleHRHZXRUZXh0TWF0cml4KCkganVzdCB0ZWxscyB1cyB3aGF0
IHRoZSB3aG9sZSB0ZXh0IG1hdHJpeCBpcywgc28KKyAgICAvLyBtX29yaWdpbmFsVGV4dE1hdHJp
eCAqIENvcmUgVGV4dCdzIHRleHQgbWF0cml4ID0gY3VycmVudFRleHRNYXRyaXguCisgICAgLy8g
VGhlIG9ubHkgd2F5IHdlIGNhbiBlbXVsYXRlIENvcmUgVGV4dCdzIHRleHQgbWF0cml4IGlzIGJ5
IG1vZGlmeWluZyB0aGUgQ1RNIGhlcmUuCisgICAgLy8gU28sIGlmIHdlIGRvIHRoYXQsIHRoZSBH
UFUgcHJvY2VzcyB3aWxsIGhhdmUKKyAgICAvLyBDVE0gKiBYICogbV9vcmlnaW5hbFRleHRNYXRy
aXgKKyAgICAvLyBJZiB5b3Ugc2V0IHRoZXNlIHR3byBlcXVhbCB0byBlYWNoIG90aGVyLCBhbmQg
c29sdmUgZm9yIFgsIHlvdSBnZXQKKyAgICAvLyBDVE0gKiBjdXJyZW50VGV4dE1hdHJpeCA9IENU
TSAqIFggKiBtX29yaWdpbmFsVGV4dE1hdHJpeAorICAgIC8vIGN1cnJlbnRUZXh0TWF0cml4ICog
aW52ZXJzZShtX29yaWdpbmFsVGV4dE1hdHJpeCkgPSBYCisgICAgQWZmaW5lVHJhbnNmb3JtIGN1
cnJlbnRUZXh0TWF0cml4ID0gQ0dDb250ZXh0R2V0VGV4dE1hdHJpeChtX2ludGVybmFsQ29udGV4
dC5wbGF0Zm9ybUNvbnRleHQoKSk7CisgICAgQWZmaW5lVHJhbnNmb3JtIGN0bUZpeHVwOworICAg
IGlmIChhdXRvIGludmVydGVkT3JpZ2luYWxUZXh0TWF0cml4ID0gbV9vcmlnaW5hbFRleHRNYXRy
aXguaW52ZXJzZSgpKQorICAgICAgICBjdG1GaXh1cCA9IGN1cnJlbnRUZXh0TWF0cml4ICogaW52
ZXJ0ZWRPcmlnaW5hbFRleHRNYXRyaXgudmFsdWUoKTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gaW52
ZXJzZUNUTUZpeHVwOworICAgIGlmIChhdXRvIGludmVyc2UgPSBjdG1GaXh1cC5pbnZlcnNlKCkp
CisgICAgICAgIGludmVyc2VDVE1GaXh1cCA9IGludmVyc2UudmFsdWUoKTsKKyAgICBlbHNlCisg
ICAgICAgIGN0bUZpeHVwID0gQWZmaW5lVHJhbnNmb3JtKCk7CisgICAgbV9vd25lci5jb25jYXRD
VE0oY3RtRml4dXApOworCisgICAgdXBkYXRlRmlsbENvbG9yKENHR1N0YXRlR2V0RmlsbENvbG9y
KGdzdGF0ZSkpOyAvLyBGSVhNRTogV2hhdCBoYXBwZW5zIGlmIHdlJ3ZlIGdvdCBhIGdyYWRpZW50
IG9yIHBhdHRlcm4gb3IgbWFzaz8KKworICAgIC8vIFRlc3QgY2FzZTogdmVydGljYWwgdGV4dCwg
cm90YXRlZCB0ZXh0CisgICAgbV9vd25lci5hcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KERyYXdH
bHlwaHM6OmNyZWF0ZSgqbV9jdXJyZW50Rm9udCwgZ2x5cGhzLCBjb21wdXRlQWR2YW5jZXNGcm9t
UG9zaXRpb25zKHBvc2l0aW9ucywgY291bnQsIHRleHRNYXRyaXgpLmRhdGEoKSwgY291bnQsIHRl
eHRNYXRyaXgubWFwUG9pbnQocG9zaXRpb25zWzBdKSwgbV9zbW9vdGhpbmdNb2RlKSk7CisKKyAg
ICBtX293bmVyLmNvbmNhdENUTShpbnZlcnNlQ1RNRml4dXApOworfQorCit2b2lkIERyYXdHbHlw
aHNSZWNvcmRlcjo6cmVjb3JkRHJhd0ltYWdlKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRl
UmVmIGdzdGF0ZSwgQ0dSZWN0IHJlY3QsIENHSW1hZ2VSZWYgY2dJbWFnZSkKK3sKKyAgICAvLyBU
ZXN0IGNhc2U6IEVYSUYgcm90YXRlZCBpbWFnZXMuCisgICAgLy8gRklYTUU6IFdpbGwgQ29yZVRl
eHQgZXZlciBzZXQgYW55IG9mIHRoZSBzdHVmZiBvbiB0aGUgY29udGV4dCB0aGF0IHdlIG5lZWQg
dG8gYXBwbHkgaGVyZT8gU2VlIG9wdGlvbnMgaW5zaWRlIEltYWdlUGFpbnRpbmdPcHRpb25zLgor
ICAgIHVwZGF0ZUNUTSgqQ0dHU3RhdGVHZXRDVE0oZ3N0YXRlKSk7CisKKyAgICAvLyBDb3JlIEdy
YXBoaWNzIGFzc3VtZXMgYSAieSB1cCIgY29vcmRpbmF0ZSBzeXN0ZW0sIGJ1dCBpbiBXZWJLaXQs
IHdlIHVzZSBhICJ5LWRvd24iIGNvb3JkaW5hdGUgc3lzdGVtLgorICAgIC8vIFRoaXMgbWVhbnMg
dGhhdCBXZWJLaXQncyBkcmF3aW5nIHJvdXRpbmVzIChHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFn
ZSgpKSBpbnRlbnRpb25hbGx5IGRyYXcgaW1hZ2VzIHVwc2lkZS1kb3duIGZyb20gQ29yZSBHcmFw
aGljcydzIHBvaW50IG9mIHZpZXcuCisgICAgLy8gKFRoZXJlJ3MgYSB5LWZsaXAgaW5zaWRlIHRo
ZSBpbXBsZW1lbnRhdGlvbiBvZiBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZSgpLikKKyAgICAv
LyBUaGUgcmVjdCBoYXMgdGhlIHJpZ2h0IGJvdW5kcywgYnV0IHdlIG5lZWQgdG8gdHJhbnNmb3Jt
IGZyb20gQ0cncyBjb29yZGluYXRlIHN5c3RlbSB0byBXZWJLaXQncyBieSBwZXJmb3JtaW5nIG91
ciBvd24geS1mbGlwIHNvIGltYWdlcyBhcmUgZHJhd24gdGhlIHJpZ2h0LXNpZGUtdXAuCisgICAg
Ly8gV2UgZG8gdGhpcyBhdCB0aGUgYm91bmRhcnkgYmV0d2VlbiB0aGUgdHdvIEFQSXMsIHdoaWNo
IGlzIHJpZ2h0IGhlcmUuCisgICAgbV9vd25lci50cmFuc2xhdGUoMCwgcmVjdC5zaXplLmhlaWdo
dCArIDIgKiByZWN0Lm9yaWdpbi55KTsKKyAgICBtX293bmVyLnNjYWxlKEZsb2F0U2l6ZSgxLCAt
MSkpOworCisgICAgYXV0byBpbWFnZSA9IEJpdG1hcEltYWdlOjpjcmVhdGUoY2dJbWFnZSk7Cisg
ICAgbV9vd25lci5hcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KERyYXdJbWFnZTo6Y3JlYXRlKGlt
YWdlLCByZWN0LCB7eyB9LCBpbWFnZS0+c2l6ZSgpfSwgeyBJbWFnZU9yaWVudGF0aW9uOjpPcmln
aW5Ub3BSaWdodCB9KSk7CisKKyAgICAvLyBVbmRvIHRoZSBhYm92ZSB5LWZsaXAgdG8gcmVzdG9y
ZSB0aGUgY29udGV4dC4KKyAgICBtX293bmVyLnNjYWxlKEZsb2F0U2l6ZSgxLCAtMSkpOworICAg
IG1fb3duZXIudHJhbnNsYXRlKDAsIC0ocmVjdC5zaXplLmhlaWdodCArIDIgKiByZWN0Lm9yaWdp
bi55KSk7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpkcmF3R2x5cGhzKGNvbnN0IEZv
bnQmIGZvbnQsIGNvbnN0IEdseXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgdW5zaWduZWQgZnJvbSwg
dW5zaWduZWQgbnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBzdGFydFBvaW50LCBGb250U21v
b3RoaW5nTW9kZSBzbW9vdGhpbmdNb2RlKQoreworICAgIHByZXBhcmVJbnRlcm5hbENvbnRleHQo
Zm9udCwgc21vb3RoaW5nTW9kZSk7CisgICAgRm9udENhc2NhZGU6OmRyYXdHbHlwaHMobV9pbnRl
cm5hbENvbnRleHQsIGZvbnQsIGdseXBoQnVmZmVyLCBmcm9tLCBudW1HbHlwaHMsIHN0YXJ0UG9p
bnQsIHNtb290aGluZ01vZGUpOworICAgIGNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIERpc3BsYXlMaXN0CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNv
cmRlckhhcmZCdXp6LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yM2FjMzI0YjdiMDBhOWUxNmE1NmFkNjcwY2Uw
NGNmYTc3ZmM5ZmE4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVySGFyZkJ1
enouY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGlzcGxheUxpc3RE
cmF3R2x5cGhzUmVjb3JkZXIuaCIKKworI2luY2x1ZGUgIkRpc3BsYXlMaXN0SXRlbXMuaCIKKyNp
bmNsdWRlICJEaXNwbGF5TGlzdFJlY29yZGVyLmgiCisjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgor
I2luY2x1ZGUgIkZvbnQuaCIKKyNpbmNsdWRlICJHbHlwaEJ1ZmZlci5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK25hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CisKK0RyYXdHbHlwaHNSZWNvcmRl
cjo6RHJhd0dseXBoc1JlY29yZGVyKFJlY29yZGVyJiBvd25lcikKKyAgICA6IG1fb3duZXIob3du
ZXIpCit7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpkcmF3R2x5cGhzKGNvbnN0IEZv
bnQmIGZvbnQsIGNvbnN0IEdseXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgdW5zaWduZWQgZnJvbSwg
dW5zaWduZWQgbnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBzdGFydFBvaW50LCBGb250U21v
b3RoaW5nTW9kZSBzbW9vdGhpbmdNb2RlKQoreworICAgIG1fb3duZXIuYXBwZW5kSXRlbUFuZFVw
ZGF0ZUV4dGVudChEcmF3R2x5cGhzOjpjcmVhdGUoZm9udCwgZ2x5cGhCdWZmZXIuZ2x5cGhzKGZy
b20pLCBnbHlwaEJ1ZmZlci5hZHZhbmNlcyhmcm9tKSwgbnVtR2x5cGhzLCBzdGFydFBvaW50LCBz
bW9vdGhpbmdNb2RlKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIERpc3BsYXlMaXN0CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNw
cAppbmRleCAxYzU0YWU4MjI5Mzk0MjBkZDQwYjdiNzBiYTdlMzlkYmJhNjVmZTliLi40YTg1NmNi
YjljZGJjNGRiOTE4MjI1OGZmMWJmNDllZjA0NmEzYjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0UmVjb3JkZXIuY3BwCkBAIC00MSw2ICs0MSw3IEBAIFJlY29yZGVyOjpSZWNvcmRl
cihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIERpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgY29u
c3QgR3JhCiAgICAgOiBHcmFwaGljc0NvbnRleHRJbXBsKGNvbnRleHQsIGluaXRpYWxDbGlwLCBB
ZmZpbmVUcmFuc2Zvcm0oKSkKICAgICAsIG1fZGlzcGxheUxpc3QoZGlzcGxheUxpc3QpCiAgICAg
LCBtX29ic2VydmVyKG9ic2VydmVyKQorICAgICwgbV9kcmF3R2x5cGhzUmVjb3JkZXIoKnRoaXMp
CiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKERpc3BsYXlMaXN0cywgc3RyZWFtIDw8ICJcblJlY29y
ZGluZyB3aXRoIGNsaXAgIiA8PCBpbml0aWFsQ2xpcCk7CiAgICAgbV9zdGF0ZVN0YWNrLmFwcGVu
ZCh7IHN0YXRlLCBpbml0aWFsQ1RNLCBpbml0aWFsQ2xpcCB9KTsKQEAgLTExMSw3ICsxMTIsNyBA
QCB2b2lkIFJlY29yZGVyOjpzZXRNaXRlckxpbWl0KGZsb2F0IG1pdGVyTGltaXQpCiAKIHZvaWQg
UmVjb3JkZXI6OmRyYXdHbHlwaHMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZmZXIm
IGdseXBoQnVmZmVyLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZs
b2F0UG9pbnQmIHN0YXJ0UG9pbnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCiB7
Ci0gICAgYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChEcmF3R2x5cGhzOjpjcmVhdGUoZm9udCwg
Z2x5cGhCdWZmZXIuZ2x5cGhzKGZyb20pLCBnbHlwaEJ1ZmZlci5hZHZhbmNlcyhmcm9tKSwgbnVt
R2x5cGhzLCBzdGFydFBvaW50LCBzbW9vdGhpbmdNb2RlKSk7CisgICAgbV9kcmF3R2x5cGhzUmVj
b3JkZXIuZHJhd0dseXBocyhmb250LCBnbHlwaEJ1ZmZlciwgZnJvbSwgbnVtR2x5cGhzLCBzdGFy
dFBvaW50LCBzbW9vdGhpbmdNb2RlKTsKIH0KIAogSW1hZ2VEcmF3UmVzdWx0IFJlY29yZGVyOjpk
cmF3SW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25z
dCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIGltYWdlUGFp
bnRpbmdPcHRpb25zKQpAQCAtMzg2LDEzICszODcsNiBAQCB2b2lkIFJlY29yZGVyOjphcHBlbmRJ
dGVtQW5kVXBkYXRlRXh0ZW50KFJlZjxEcmF3aW5nSXRlbT4mJiBpdGVtKQogICAgIHVwZGF0ZUl0
ZW1FeHRlbnQobmV3SXRlbSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIEl0ZW1UeXBlPgotSXRl
bVR5cGUmIFJlY29yZGVyOjphcHBlbmRJdGVtKFJlZjxJdGVtVHlwZT4mJiBpdGVtKQotewotICAg
IHdpbGxBcHBlbmRJdGVtKGl0ZW0uZ2V0KCkpOwotICAgIHJldHVybiBkb3duY2FzdDxJdGVtVHlw
ZT4obV9kaXNwbGF5TGlzdC5hcHBlbmQoV1RGTW92ZShpdGVtKSkpOwotfQotCiB2b2lkIFJlY29y
ZGVyOjp1cGRhdGVJdGVtRXh0ZW50KERyYXdpbmdJdGVtJiBpdGVtKSBjb25zdAogewogICAgIGlm
IChPcHRpb25hbDxGbG9hdFJlY3Q+IHJlY3QgPSBpdGVtLmxvY2FsQm91bmRzKGdyYXBoaWNzQ29u
dGV4dCgpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCmluZGV4IDllZTFk
MzkzOGYyMzJmM2YxOGQ5NzhhZjcxODcwMWQ4YmU0NjMwNzIuLjhlNzU5NjRlMjQ4YzMzYWRmNjZk
N2M2MmFlZjA4YzUwMGUxMWMzMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3Jk
ZXIuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJEaXNwbGF5
TGlzdC5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmgiCiAjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0SW1wbC5oIgogI2luY2x1ZGUgIkltYWdlLmgiIC8vIEZvciBJ
bWFnZTo6VGlsZVJ1bGUuCiAjaW5jbHVkZSAiVGV4dEZsYWdzLmgiCkBAIC02MSw4ICs2Miw2IEBA
IHB1YmxpYzoKIAogICAgIHNpemVfdCBpdGVtQ291bnQoKSBjb25zdCB7IHJldHVybiBtX2Rpc3Bs
YXlMaXN0Lml0ZW1Db3VudCgpOyB9CiAKLSAgICB2b2lkIGFwcGVuZEl0ZW1BbmRVcGRhdGVFeHRl
bnQoUmVmPERyYXdpbmdJdGVtPiYmKTsKLQogICAgIGNsYXNzIE9ic2VydmVyIHsKICAgICBwdWJs
aWM6CiAgICAgICAgIHZpcnR1YWwgfk9ic2VydmVyKCkgeyB9CkBAIC03MCw2ICs2OSw3IEBAIHB1
YmxpYzoKICAgICB9OwogCiBwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBEcmF3R2x5cGhzUmVj
b3JkZXI7CiAgICAgYm9vbCBoYXNQbGF0Zm9ybUNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBmYWxzZTsgfQogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0KiBwbGF0Zm9ybUNvbnRl
eHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9CiAKQEAgLTE0OSw2ICsxNDks
NyBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEl0ZW1UeXBlPgogICAgIEl0ZW1U
eXBlJiBhcHBlbmRJdGVtKFJlZjxJdGVtVHlwZT4mJik7CiAgICAgdm9pZCB3aWxsQXBwZW5kSXRl
bShjb25zdCBJdGVtJik7CisgICAgdm9pZCBhcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KFJlZjxE
cmF3aW5nSXRlbT4mJik7CiAKICAgICBGbG9hdFJlY3QgZXh0ZW50RnJvbUxvY2FsQm91bmRzKGNv
bnN0IEZsb2F0UmVjdCYpIGNvbnN0OwogICAgIHZvaWQgdXBkYXRlSXRlbUV4dGVudChEcmF3aW5n
SXRlbSYpIGNvbnN0OwpAQCAtMTkxLDggKzE5MiwxNyBAQCBwcml2YXRlOgogICAgIE9ic2VydmVy
KiBtX29ic2VydmVyOwogCiAgICAgVmVjdG9yPENvbnRleHRTdGF0ZSwgMzI+IG1fc3RhdGVTdGFj
azsKKworICAgIERyYXdHbHlwaHNSZWNvcmRlciBtX2RyYXdHbHlwaHNSZWNvcmRlcjsKIH07CiAK
K3RlbXBsYXRlPHR5cGVuYW1lIEl0ZW1UeXBlPgorSXRlbVR5cGUmIFJlY29yZGVyOjphcHBlbmRJ
dGVtKFJlZjxJdGVtVHlwZT4mJiBpdGVtKQoreworICAgIHdpbGxBcHBlbmRJdGVtKGl0ZW0uZ2V0
KCkpOworICAgIHJldHVybiBkb3duY2FzdDxJdGVtVHlwZT4obV9kaXNwbGF5TGlzdC5hcHBlbmQo
V1RGTW92ZShpdGVtKSkpOworfQorCiB9CiB9CiAK
</data>
<flag name="commit-queue"
          id="427749"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411520</attachid>
            <date>2020-10-15 18:50:14 -0700</date>
            <delta_ts>2020-10-15 22:09:36 -0700</delta_ts>
            <desc>Needs tests</desc>
            <filename>bug-217506-20201015185013.patch</filename>
            <type>text/plain</type>
            <size>37493</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGIwZGJhY2I1NTcyMjIz
OTE4NzU4NzUyYzFkYjU2NWZlMGEyZGY4NS4uODJkYWZiZGI1NjEwNjdmYzljOTI4MjMxY2Y2MGQ0
ZWFjYjA3OGIzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIwLTEwLTE1ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBb
R1BVIFByb2Nlc3NdIFBlcmZvcm0gaW1hZ2UgZGVjb2Rpbmcgb2YgY29sb3IgZm9udHMgaW4gdGhl
IFdlYiBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTc1MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6Cisg
ICAgICAgICogUGxhdGZvcm1BcHBsZVdpbi5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybVdpbkNh
aXJvLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvV2ViQ29yZS54Y3NjaGVtZToKKyAgICAgICAgKiBwbGF0
Zm9ybS9GcmVlVHlwZS5jbWFrZToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29y
ZGVyQ29yZVRleHQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0Ojpi
ZWdpbkxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjplbmRMYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6ZHJhd0dseXBocyk6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6ZHJhd0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OmNyZWF0ZUludGVybmFsQ29udGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpEcmF3R2x5cGhzUmVj
b3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRl
cjo6cHJlcGFyZUludGVybmFsQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RHJhd0dseXBoc1JlY29yZGVyOjpjb25jbHVkZUludGVybmFsQ29udGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVDVE0pOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6dXBkYXRl
RmlsbENvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVj
b3JkZXI6OnJlY29yZEJlZ2luTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdHbHlwaHNSZWNvcmRlcjo6cmVjb3JkRW5kTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OmNvbXB1dGVBZHZhbmNlc0Zyb21Qb3NpdGlvbnMpOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6cmVjb3JkRHJhd0dseXBocyk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpyZWNv
cmREcmF3SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNS
ZWNvcmRlcjo6ZHJhd0dseXBocyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdH
bHlwaHNSZWNvcmRlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBo
c1JlY29yZGVyOjpkcmF3R2x5cGhzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6UmVjb3JkZXI6OlJlY29yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpSZWNvcmRlcjo6ZHJhd0dseXBocyk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6UmVjb3JkZXI6OmFwcGVuZEl0ZW0pOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmFwcGVuZEl0ZW0pOgorCiAyMDIwLTEwLTE1ICBN
eWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29h
XSBEb24ndCBjaGFuZ2UgdGhlIHRleHQgbWF0cml4IG11bHRpcGxlIHRpbWVzIGluc2lkZSBGb250
Q2FzY2FkZTo6ZHJhd0dseXBocygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBjNGQzMzQyOWRiZTZi
MGMyMGRhNzkyMzFjNmIzM2VmYzhiZDU3OTYyLi5lNzBiYmVjZWVjNTA4YTBjNmI4MjU0MDIyNDkw
OWQxY2FiYTUyZTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0x
MC0xNSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAg
IFtDb2NvYV0gW0dQVSBQcm9jZXNzXSBQZXJmb3JtIGltYWdlIGRlY29kaW5nIG9mIGNvbG9yIGZv
bnRzIGluIHRoZSBXZWIgUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE3NTA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oOgorCiAyMDIwLTEw
LTEzICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUg
bGVmdG92ZXIgTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUX21hY29zeCBzdXBwb3J0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZQppbmRleCAwYWRlN2Q4YzhkNGIyZjJkOThkNmQzOTBlOTM4YWIzM2ViNzQ1ODE3Li44
Y2EwZGU3MDI5ODE5YTU0NWQ0ODE1ZmEyMDAzM2IzNTMwNWVhODkxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UKQEAgLTEyMjksNiArMTIyOSw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hF
QURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9FeHRlbnNpb25zR0xBTkdMRS5oCiAK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuaAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRl
ci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2lu
Z0NvbnRleHQuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEltYWdlQnVmZmVyLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9D
b3JlR3JhcGhpY3NTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFw
aGljc1NQSS5oCmluZGV4IGE3ZjgyYjg2MWI2MmM0YWVmYjgzYzE4MTFkNTVjN2FmNzQ5ZTZiOTEu
LjNjZDE0MGQwZmU0NzU5NGU0ZjMyYjQ2ODkzZDE5YmZmZTMwODQyNjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oCkBAIC0zOCw2ICszOCw3
IEBACiAKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCisjaW5jbHVkZSA8Q29yZUdyYXBo
aWNzL0NHQ29udGV4dERlbGVnYXRlUHJpdmF0ZS5oPgogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9D
R0ZvbnRDYWNoZS5oPgogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9DR1BhdGhQcml2YXRlLmg+CiAj
aW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NvcmVHcmFwaGljc1ByaXZhdGUuaD4KQEAgLTU4LDE5ICs1
OSwxMiBAQCBzdHJ1Y3QgQ0dGb250SE1ldHJpY3MgewogICAgIGludCBtaW5SaWdodFNpZGVCZWFy
aW5nOwogfTsKIAotc3RydWN0IENHRm9udERlc2NyaXB0b3IgewotICAgIENHUmVjdCBiYm94Owot
ICAgIENHRmxvYXQgYXNjZW50OwotICAgIENHRmxvYXQgZGVzY2VudDsKLSAgICBDR0Zsb2F0IGNh
cEhlaWdodDsKLSAgICBDR0Zsb2F0IGl0YWxpY0FuZ2xlOwotICAgIENHRmxvYXQgc3RlbVY7Ci0g
ICAgQ0dGbG9hdCBzdGVtSDsKLSAgICBDR0Zsb2F0IGF2Z1dpZHRoOwotICAgIENHRmxvYXQgbWF4
V2lkdGg7Ci0gICAgQ0dGbG9hdCBtaXNzaW5nV2lkdGg7Ci0gICAgQ0dGbG9hdCBsZWFkaW5nOwot
ICAgIENHRmxvYXQgeEhlaWdodDsKK3R5cGVkZWYgQ0ZfRU5VTSAoaW50MzJfdCwgQ0dDb250ZXh0
RGVsZWdhdGVDYWxsYmFja05hbWUpCit7CisgICAgZGVEcmF3SW1hZ2UgPSA3LAorICAgIGRlRHJh
d0dseXBocyA9IDgsCisgICAgZGVCZWdpbkxheWVyID0gMTcsCisgICAgZGVFbmRMYXllciA9IDE4
LAogfTsKIAogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgQ0dDb2xvclRyYW5zZm9ybSogQ0dDb2xvclRy
YW5zZm9ybVJlZjsKQEAgLTE5Myw2ICsxODcsMTEgQEAgc3RhdGljIGNvbnN0IENHU05vdGlmaWNh
dGlvblR5cGUga0NHU2Vzc2lvbkNvbnNvbGVEaXNjb25uZWN0ID0gKENHU05vdGlmaWNhdGlvblQK
IAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAordHlwZWRlZiBzdHJ1Y3QgQ0dDb250ZXh0RGVs
ZWdhdGUgKkNHQ29udGV4dERlbGVnYXRlUmVmOwordHlwZWRlZiB2b2lkICgqQ0dDb250ZXh0RGVs
ZWdhdGVDYWxsYmFjaykodm9pZCk7Cit0eXBlZGVmIHN0cnVjdCBDR1JlbmRlcmluZ1N0YXRlICpD
R1JlbmRlcmluZ1N0YXRlUmVmOwordHlwZWRlZiBzdHJ1Y3QgQ0dHU3RhdGUgKkNHR1N0YXRlUmVm
OworCiAjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAogI2lmIFBMQVRGT1JNKENP
Q09BKQpAQCAtMjMzLDcgKzIzMiw2IEBAIHZvaWQgQ0dDb250ZXh0UmVzZXRDbGlwKENHQ29udGV4
dFJlZik7CiBDR0NvbnRleHRUeXBlIENHQ29udGV4dEdldFR5cGUoQ0dDb250ZXh0UmVmKTsKIAog
Q0ZTdHJpbmdSZWYgQ0dGb250Q29weUZhbWlseU5hbWUoQ0dGb250UmVmKTsKLWJvb2wgQ0dGb250
R2V0RGVzY3JpcHRvcihDR0ZvbnRSZWYsIENHRm9udERlc2NyaXB0b3IqKTsKIGJvb2wgQ0dGb250
R2V0R2x5cGhBZHZhbmNlc0ZvclN0eWxlKENHRm9udFJlZiwgY29uc3QgQ0dBZmZpbmVUcmFuc2Zv
cm0qICwgQ0dGb250UmVuZGVyaW5nU3R5bGUsIGNvbnN0IENHR2x5cGhbXSwgc2l6ZV90IGNvdW50
LCBDR1NpemUgYWR2YW5jZXNbXSk7CiB2b2lkIENHRm9udEdldEdseXBoc0ZvclVuaWNoYXJzKENH
Rm9udFJlZiwgY29uc3QgVW5pQ2hhcltdLCBDR0dseXBoW10sIHNpemVfdCBjb3VudCk7CiBjb25z
dCBDR0ZvbnRITWV0cmljcyogQ0dGb250R2V0SE1ldHJpY3MoQ0dGb250UmVmKTsKQEAgLTI1Miw2
ICsyNTAsMTQgQEAgYm9vbCBDR0NvbnRleHRHZXRBbGxvd3NGb250U3VicGl4ZWxQb3NpdGlvbmlu
ZyhDR0NvbnRleHRSZWYpOwogYm9vbCBDR0NvbnRleHREcmF3c1dpdGhDb3JyZWN0U2hhZG93T2Zm
c2V0cyhDR0NvbnRleHRSZWYpOwogQ0dQYXR0ZXJuUmVmIENHUGF0dGVybkNyZWF0ZVdpdGhJbWFn
ZTIoQ0dJbWFnZVJlZiwgQ0dBZmZpbmVUcmFuc2Zvcm0sIENHUGF0dGVyblRpbGluZyk7CiAKK0NH
Q29udGV4dERlbGVnYXRlUmVmIENHQ29udGV4dERlbGVnYXRlQ3JlYXRlKHZvaWQqIGluZm8pOwor
dm9pZCBDR0NvbnRleHREZWxlZ2F0ZVNldENhbGxiYWNrKENHQ29udGV4dERlbGVnYXRlUmVmLCBD
R0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrTmFtZSwgQ0dDb250ZXh0RGVsZWdhdGVDYWxsYmFjayk7
CitDR0NvbnRleHRSZWYgQ0dDb250ZXh0Q3JlYXRlV2l0aERlbGVnYXRlKENHQ29udGV4dERlbGVn
YXRlUmVmLCBDR0NvbnRleHRUeXBlLCBDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZik7
Cit2b2lkKiBDR0NvbnRleHREZWxlZ2F0ZUdldEluZm8oQ0dDb250ZXh0RGVsZWdhdGVSZWYpOwor
dm9pZCBDR0NvbnRleHREZWxlZ2F0ZVJlbGVhc2UoQ0dDb250ZXh0RGVsZWdhdGVSZWYpOworQ0dG
bG9hdCBDR0dTdGF0ZUdldEFscGhhKENHR1N0YXRlUmVmKTsKK0NHRm9udFJlZiBDR0dTdGF0ZUdl
dEZvbnQoQ0dHU3RhdGVSZWYpOworCiAjaWYgSEFWRShDR1BBVEhfR0VUX05VTUJFUl9PRl9FTEVN
RU5UUykKIHNpemVfdCBDR1BhdGhHZXROdW1iZXJPZkVsZW1lbnRzKENHUGF0aFJlZik7CiAjZW5k
aWYKQEAgLTI4NiwxNiArMjkyLDkgQEAgQ0dSZWN0KiBDR1NOZXh0UmVjdChjb25zdCBDR1NSZWdp
b25FbnVtZXJhdG9yT2JqKTsKIENHU1JlZ2lvbkVudW1lcmF0b3JPYmogQ0dTUmVnaW9uRW51bWVy
YXRvcihDR1JlZ2lvblJlZik7CiBDR1N0eWxlUmVmIENHU3R5bGVDcmVhdGVGb2N1c1JpbmdXaXRo
Q29sb3IoY29uc3QgQ0dGb2N1c1JpbmdTdHlsZSosIENHQ29sb3JSZWYpOwogdm9pZCBDR0NvbnRl
eHRTZXRTdHlsZShDR0NvbnRleHRSZWYsIENHU3R5bGVSZWYpOwotCiB2b2lkIENHQ29udGV4dERy
YXdDb25pY0dyYWRpZW50KENHQ29udGV4dFJlZiwgQ0dHcmFkaWVudFJlZiwgQ0dQb2ludCBjZW50
ZXIsIENHRmxvYXQgYW5nbGUpOwotCi0jaWYgSEFWRShDR19QQVRIX1VORVZFTl9DT1JORVJTX1JP
VU5ERURSRUNUKQogdm9pZCBDR1BhdGhBZGRVbmV2ZW5Db3JuZXJzUm91bmRlZFJlY3QoQ0dNdXRh
YmxlUGF0aFJlZiwgY29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0gKiwgQ0dSZWN0LCBjb25zdCBDR1Np
emUgY29ybmVyc1s0XSk7Ci0jZW5kaWYKLQotI2lmIEhBVkUoQ0dfRk9OVF9SRU5ERVJJTkdfR0VU
X0ZPTlRfU01PT1RISU5HX0RJU0FCTEVEKQogYm9vbCBDR0ZvbnRSZW5kZXJpbmdHZXRGb250U21v
b3RoaW5nRGlzYWJsZWQodm9pZCk7Ci0jZW5kaWYKIAogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09B
KQogCkBAIC0zMjgsMTUgKzMyNywxMCBAQCBib29sIENvbG9yU3luY1Byb2ZpbGVJc1dpZGVHYW11
dChDb2xvclN5bmNQcm9maWxlUmVmKTsKIHNpemVfdCBDR0Rpc3BsYXlNb2RlR2V0UGl4ZWxzV2lk
ZShDR0Rpc3BsYXlNb2RlUmVmKTsKIHNpemVfdCBDR0Rpc3BsYXlNb2RlR2V0UGl4ZWxzSGlnaChD
R0Rpc3BsYXlNb2RlUmVmKTsKIAotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9C
TE9DS0lORykKLQogQ0dFcnJvciBDR1NTZXREZW55V2luZG93U2VydmVyQ29ubmVjdGlvbnMoYm9v
bCk7Ci0KIHR5cGVkZWYgaW50MzJfdCBDR1NEaXNwbGF5SUQ7CiBDR1NEaXNwbGF5SUQgQ0dTTWFp
bkRpc3BsYXlJRCh2b2lkKTsKIAotI2VuZGlmIC8vIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NF
UlZFUl9CTE9DS0lORykKLQogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAogI2lmIEVOQUJMRShQ
REZLSVRfUExVR0lOKSAmJiAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtQXBwbGVXaW4uY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0
Zm9ybUFwcGxlV2luLmNtYWtlCmluZGV4IGE3ODhlNjlkZTc0NDFjOTQwODRmNzAzNmEzZThmNDlh
ZDQ1MWE1OGQuLjM4YTJiNzc2ODk1NTk4YTRmNGUzNmFkZTdjNjAzYjA0MDc4ZGRjNzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQXBwbGVXaW4uY21ha2UKKysrIGIvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1BcHBsZVdpbi5jbWFrZQpAQCAtMzAsNiArMzAsOCBAQCBsaXN0KEFQ
UEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
Y2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL2NmL1dlYkNvcmVBVkNGUmVzb3VyY2VMb2FkZXIuY3BwCiAKKyAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVj
b3JkZXJDb3JlVGV4dC5jcHAKKwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9t
UGxhdGZvcm1EYXRhLmNwcAogCiAgICAgcGxhdGZvcm0vbmV0d29yay9jZi9BdXRoZW50aWNhdGlv
bkNGLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5DYWlyby5jbWFr
ZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UKaW5kZXggYzRiODZjMTQ4
OWFhYzlhNWUyZWEwMDQwMDIwZjM0MTk2NmExNDUzMy4uYmZlMDhkN2E2NDk4NzcyOTczNDdmODZi
ZWY4NDBlM2U2OWYyODg4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5D
YWlyby5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbkNhaXJvLmNtYWtlCkBA
IC0xOCw2ICsxOCw4IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURp
c3BsYXkuY3BwCiAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHAKKwogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFDYWlyb1dpbi5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy93aW4vR2x5cGhQYWdlVHJlZU5vZGVDYWlyb1dpbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0
CmluZGV4IDY0MTQwNTkyNTQwMWU2ZTNjZDViNjZmOWEzZmY3Y2Q4ZDA3MWNlMDguLmU3MDJhYjU2
NTE2OTY1NmMxM2ZjOTBjMTNlMWEyNGYzYjNhOWZjYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4
dApAQCAtMzc4LDYgKzM3OCw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJT
ZXNzaW9uVlQubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1Yu
Y3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAKIHBsYXRm
b3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GaWx0ZXJFZmZlY3RSZW5kZXJlckNvcmVJbWFnZS5tbQor
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29y
ZGVyQ29yZVRleHQuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGlsaW5nRGF0YS5jcHAKIHBs
YXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBBbGxvY2F0b3JNZXRhbC5tbQog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cExheW91dE1ldGFsLm1tCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggMWFjZjE0NDM5OTI0ODU4MTQ4ZGQyMGI5ZThkZTdhNTFlM2IyMmRjZS4uZTlkYmIwOWUxMmRh
NmUzNDRiZDNmNzRlY2YwYmIyZGNhNzczNjVmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjE5LDYgKzYxOSw3IEBACiAJCTFD
QUYzNDgxMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUYzNDdFMEE2QzQwNTIwMEFCRTA2
RSAvKiBXZWJTY3JpcHRPYmplY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkxQ0FGMzQ4MjBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2Jq
ZWN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNB
RjM0N0YwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdC5tbSAqLzsgfTsKIAkJMUNB
RjM0ODMwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdFByaXZhdGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUYzNDgwMEE2QzQwNTIw
MEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3RQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMUNBRjU2REIyNTMwMUFDODAwMTdCNDcyIC8q
IERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FGNTZEODI1MzAxNDU3MDAxN0I0NzIgLyogRGlzcGxh
eUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkxQ0NEODE1MDIyMzFGODNFMDA2NUZDMkIgLyogV2ViQ29yZVJl
c291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE1MjU1MTQxNkZEMjM0RjAwM0Q3QURCIC8q
IFdlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbSAqLzsgfTsK
IAkJMUNDREY1QkUxOTkwMzMyNDAwQkNFQkFEIC8qIFNWR1RvT1RGRm9udENvbnZlcnNpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQ0RGNUJDMTk5
MDMzMjQwMEJDRUJBRCAvKiBTVkdUb09URkZvbnRDb252ZXJzaW9uLmggKi87IH07CiAJCTFDRkFF
MzIzMEE2RDZBM0YwMDMyNTkzRCAvKiBsaWJvYmpjLmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNGQUUzMjIwQTZENkEzRjAwMzI1OTNEIC8q
IGxpYm9iamMuZHlsaWIgKi87IH07CkBAIC02NzE2LDYgKzY3MTcsOCBAQAogCQkxQ0FGMzQ3RTBB
NkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYlNjcmlwdE9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxQ0FGMzQ3RjBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViU2NyaXB0T2JqZWN0Lm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FGMzQ4MDBBNkM0MDUyMDBBQkUwNkUgLyog
V2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJTY3JpcHRPYmplY3RQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDQUY1NkQ4MjUzMDE0NTcwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0FGNTZERTI1MzAyNDVBMDAxN0I0NzIgLyogRGlz
cGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMUNCNUZFODgyMkRFQkM4QjAwOTQ0MEUyIC8qIFdITFNMRXJyb3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xFcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxQ0I2OUIzMjIxREVENDBCMDA2RTg0NkEgLyogV0hMU0xSZXNvbHZhYmxlVHlwZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXSExTTFJlc29sdmFibGVUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFDQjY5QjM0MjFERUQ2M0EwMDZFODQ2QSAvKiBXSExTTEZsb2F0TGl0ZXJhbFR5
cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xGbG9hdExpdGVyYWxUeXBlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xNzUxNSw2ICsxNzUxOCw4IEBACiAJCQljaGlsZHJlbiA9ICgK
IAkJCQkwRkU1RkJDQTFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3QuY3BwICovLAogCQkJ
CTBGRTVGQkNCMUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdC5oICovLAorCQkJCTFDQUY1
NkQ4MjUzMDE0NTcwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oICov
LAorCQkJCTFDQUY1NkRFMjUzMDI0NUEwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNS
ZWNvcmRlckNvcmVUZXh0LmNwcCAqLywKIAkJCQk1NUMwQTI5NTIzRkUyQ0UwMDBGMkNCOTMgLyog
RGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5jcHAgKi8sCiAJCQkJNzJFQTA5RjkyM0ZDQ0M2QTAw
ODUwNEE1IC8qIERpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaCAqLywKIAkJCQk3MkVBMDlGNzIz
RkNDQjNEMDA4NTA0QTUgLyogRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oICovLApAQCAtMzEyMzcs
NiArMzEyNDIsNyBAQAogCQkJCTdFREFBRkM5MTlBMkNDREMwMDM0REZEMSAvKiBEaXNrQ2FjaGVN
b25pdG9yQ29jb2EuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNzkwRjQyMjUxN0NFNkUwMDlCQTAz
NCAvKiBEaXNwbGF5TGF5ZXJDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU1RkJE
MzFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTFD
QUY1NkRCMjUzMDFBQzgwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTVBRDA5NDAyNDA4OTY0MDAwREU0RDJGIC8qIERpc3BsYXlM
aXN0RHJhd2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1QUQwOTNFMjQwODk2MzUw
MERFNEQyRiAvKiBEaXNwbGF5TGlzdEltYWdlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkU1RkJENTFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3RJdGVtcy5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai94Y3NoYXJl
ZGRhdGEveGNzY2hlbWVzL1dlYkNvcmUueGNzY2hlbWUgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai94Y3NoYXJlZGRhdGEveGNzY2hlbWVzL1dlYkNvcmUueGNzY2hlbWUKaW5kZXgg
MTU4MmUxYTNjNTZkZjllNzgyMDBkOTlhOTk4NjgwNTkxYjRjZGYwYi4uMDdlOTQxOWY1ZjI2Zjcx
ZmU4YjRhYmQ3YWQzY2JkOWU5ZTZhM2FlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2oveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9XZWJDb3JlLnhjc2NoZW1lCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVt
ZXMvV2ViQ29yZS54Y3NjaGVtZQpAQCAtNDAsNiArNDAsMTEgQEAKICAgICAgIGRlYnVnRG9jdW1l
bnRWZXJzaW9uaW5nID0gIllFUyIKICAgICAgIGRlYnVnU2VydmljZUV4dGVuc2lvbiA9ICJpbnRl
cm5hbCIKICAgICAgIGFsbG93TG9jYXRpb25TaW11bGF0aW9uID0gIllFUyI+CisgICAgICA8UGF0
aFJ1bm5hYmxlCisgICAgICAgICBydW5uYWJsZURlYnVnZ2luZ01vZGUgPSAiMCIKKyAgICAgICAg
IEJ1bmRsZUlkZW50aWZpZXIgPSAib3JnLndlYmtpdC5NaW5pQnJvd3NlciIKKyAgICAgICAgIEZp
bGVQYXRoID0gIi9Vc2Vycy9tbWF4ZmllbGQvQnVpbGQvUHJvZHVjdHMvRGVidWcvTWluaUJyb3dz
ZXIuYXBwIj4KKyAgICAgIDwvUGF0aFJ1bm5hYmxlPgogICAgPC9MYXVuY2hBY3Rpb24+CiAgICA8
UHJvZmlsZUFjdGlvbgogICAgICAgYnVpbGRDb25maWd1cmF0aW9uID0gIlJlbGVhc2UiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GcmVlVHlwZS5jbWFrZSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtlCmluZGV4IDdjMDRkOTNhNWI4NWM3MzI1ODFj
OTVhMDY1YmUwNWI2MzY3YzdhZTQuLmYzOGI1NGUxN2M5MzE1NjUxNTRjYWI5NTNhODFlMGU5NmY1
NzQ5YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtlCkBAIC01LDYgKzUs
OCBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1BSSVZBVEVfSU5DTFVERV9ESVJFQ1RPUklFUwogKQog
CiBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHAKKwogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFGcmVlVHlwZS5j
cHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250UGxhdGZvcm1EYXRhRnJlZVR5
cGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNv
cmRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjlkZDZjMTY3ZGJiNjA4Yjc2MzNhZGU1MDQwZDUxNzQ0YzAzZjZk
MmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaApAQCAtMCwwICsxLDg3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlICJUZXh0RmxhZ3MuaCIKKworI2lmIFVTRShDT1JFX1RFWFQpCisj
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisKKyNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ29y
ZUdyYXBoaWNzLmg+CisjaW5jbHVkZSA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KKyNl
bmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZsb2F0UG9pbnQ7CitjbGFzcyBG
b250OworY2xhc3MgR2x5cGhCdWZmZXI7CitjbGFzcyBHcmFwaGljc0NvbnRleHQ7CisKK25hbWVz
cGFjZSBEaXNwbGF5TGlzdCB7CisKK2NsYXNzIFJlY29yZGVyOworCitjbGFzcyBEcmF3R2x5cGhz
UmVjb3JkZXIgeworcHVibGljOgorICAgIGV4cGxpY2l0IERyYXdHbHlwaHNSZWNvcmRlcihSZWNv
cmRlciYpOworCisgICAgdm9pZCBkcmF3R2x5cGhzKGNvbnN0IEZvbnQmLCBjb25zdCBHbHlwaEJ1
ZmZlciYsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIG51bUdseXBocywgY29uc3QgRmxvYXRQb2lu
dCYgYW5jaG9yUG9pbnQsIEZvbnRTbW9vdGhpbmdNb2RlKTsKKworI2lmIFVTRShDT1JFX1RFWFQp
CisgICAgdm9pZCByZWNvcmRCZWdpbkxheWVyKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRl
UmVmLCBDR1JlY3QpOworICAgIHZvaWQgcmVjb3JkRW5kTGF5ZXIoQ0dSZW5kZXJpbmdTdGF0ZVJl
ZiwgQ0dHU3RhdGVSZWYpOworICAgIHZvaWQgcmVjb3JkRHJhd0dseXBocyhDR1JlbmRlcmluZ1N0
YXRlUmVmLCBDR0dTdGF0ZVJlZiwgY29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0qLCBjb25zdCBDR0ds
eXBoW10sIGNvbnN0IENHUG9pbnQgcG9zaXRpb25zW10sIHNpemVfdCBjb3VudCk7CisgICAgdm9p
ZCByZWNvcmREcmF3SW1hZ2UoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYsIENHUmVj
dCwgQ0dJbWFnZVJlZik7CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBHcmFwaGljc0NvbnRleHQg
Y3JlYXRlSW50ZXJuYWxDb250ZXh0KCk7CisgICAgdm9pZCBwcmVwYXJlSW50ZXJuYWxDb250ZXh0
KGNvbnN0IEZvbnQmLCBGb250U21vb3RoaW5nTW9kZSk7CisgICAgdm9pZCBjb25jbHVkZUludGVy
bmFsQ29udGV4dCgpOworICAgIHZvaWQgdXBkYXRlQ1RNKEFmZmluZVRyYW5zZm9ybSk7CisgICAg
dm9pZCB1cGRhdGVGaWxsQ29sb3IoY29uc3QgQ29sb3ImLCBHcmFkaWVudCogPSBudWxscHRyLCBQ
YXR0ZXJuKiA9IG51bGxwdHIpOworCisgICAgUmVjb3JkZXImIG1fb3duZXI7CisgICAgR3JhcGhp
Y3NDb250ZXh0IG1faW50ZXJuYWxDb250ZXh0OworICAgIGNvbnN0IEZvbnQqIG1fY3VycmVudEZv
bnQgeyBudWxscHRyIH07CisgICAgQ29sb3IgbV9jdXJyZW50Q29sb3I7CisKKyAgICBDb2xvciBt
X29yaWdpbmFsRmlsbENvbG9yOworICAgIFJlZlB0cjxHcmFkaWVudD4gbV9vcmlnaW5hbEZpbGxH
cmFkaWVudDsKKyAgICBSZWZQdHI8UGF0dGVybj4gbV9vcmlnaW5hbEZpbGxQYXR0ZXJuOworCisg
ICAgQWZmaW5lVHJhbnNmb3JtIG1fb3JpZ2luYWxDVE07CisgICAgQWZmaW5lVHJhbnNmb3JtIG1f
Y3VycmVudENUTTsKKworICAgIEFmZmluZVRyYW5zZm9ybSBtX29yaWdpbmFsVGV4dE1hdHJpeDsK
KworICAgIEZvbnRTbW9vdGhpbmdNb2RlIG1fc21vb3RoaW5nTW9kZSB7IEZvbnRTbW9vdGhpbmdN
b2RlOjpBdXRvU21vb3RoaW5nIH07Cit9OworCit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlw
aHNSZWNvcmRlckNvcmVUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iOGVjNmMxMmNlOTNmYWNjZDJhOWM2YWVhNmVhYWEzYWIwZmJmOWY3Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwCkBAIC0wLDAgKzEs
MjY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVy
LmgiCisKKyNpbmNsdWRlICJCaXRtYXBJbWFnZS5oIgorI2luY2x1ZGUgIkNvbG9yLmgiCisjaW5j
bHVkZSAiRGlzcGxheUxpc3RJdGVtcy5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0UmVjb3JkZXIu
aCIKKyNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiRm9udC5oIgorI2luY2x1ZGUg
IkZvbnRDYXNjYWRlLmgiCisjaW5jbHVkZSAiR2x5cGhCdWZmZXIuaCIKKworI2luY2x1ZGUgPENv
cmVUZXh0L0NvcmVUZXh0Lmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCisjaWYgUExBVEZP
Uk0oV0lOKQorI2luY2x1ZGUgPHBhbC9zcGkvd2luL0NvcmVUZXh0U1BJV2luLmg+CisjZW5kaWYK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCituYW1lc3BhY2UgRGlzcGxheUxpc3QgeworCitzdGF0
aWMgQ0dDb250ZXh0RGVsZWdhdGVSZWYgYmVnaW5MYXllcihDR0NvbnRleHREZWxlZ2F0ZVJlZiBk
ZWxlZ2F0ZSwgQ0dSZW5kZXJpbmdTdGF0ZVJlZiByc3RhdGUsIENHR1N0YXRlUmVmIGdzdGF0ZSwg
Q0dSZWN0IHJlY3QsIENGRGljdGlvbmFyeVJlZiwgQ0dDb250ZXh0RGVsZWdhdGVSZWYpCit7Cisg
ICAgRHJhd0dseXBoc1JlY29yZGVyJiByZWNvcmRlciA9ICpzdGF0aWNfY2FzdDxEcmF3R2x5cGhz
UmVjb3JkZXIqPihDR0NvbnRleHREZWxlZ2F0ZUdldEluZm8oZGVsZWdhdGUpKTsKKyAgICByZWNv
cmRlci5yZWNvcmRCZWdpbkxheWVyKHJzdGF0ZSwgZ3N0YXRlLCByZWN0KTsKKyAgICByZXR1cm4g
ZGVsZWdhdGU7Cit9CisKK3N0YXRpYyBDR0NvbnRleHREZWxlZ2F0ZVJlZiBlbmRMYXllcihDR0Nv
bnRleHREZWxlZ2F0ZVJlZiBkZWxlZ2F0ZSwgQ0dSZW5kZXJpbmdTdGF0ZVJlZiByc3RhdGUsIENH
R1N0YXRlUmVmIGdzdGF0ZSkKK3sKKyAgICBEcmF3R2x5cGhzUmVjb3JkZXImIHJlY29yZGVyID0g
KnN0YXRpY19jYXN0PERyYXdHbHlwaHNSZWNvcmRlcio+KENHQ29udGV4dERlbGVnYXRlR2V0SW5m
byhkZWxlZ2F0ZSkpOworICAgIHJlY29yZGVyLnJlY29yZEVuZExheWVyKHJzdGF0ZSwgZ3N0YXRl
KTsKKyAgICByZXR1cm4gZGVsZWdhdGU7Cit9CisKK3N0YXRpYyBDR0Vycm9yIGRyYXdHbHlwaHMo
Q0dDb250ZXh0RGVsZWdhdGVSZWYgZGVsZWdhdGUsIENHUmVuZGVyaW5nU3RhdGVSZWYgcnN0YXRl
LCBDR0dTdGF0ZVJlZiBnc3RhdGUsIGNvbnN0IENHQWZmaW5lVHJhbnNmb3JtKiB0bSwgY29uc3Qg
Q0dHbHlwaCBnbHlwaHNbXSwgY29uc3QgQ0dQb2ludCBwb3NpdGlvbnNbXSwgc2l6ZV90IGNvdW50
KQoreworICAgIGlmIChDR0dTdGF0ZUdldEFscGhhKGdzdGF0ZSkgPiAwKSB7CisgICAgICAgIERy
YXdHbHlwaHNSZWNvcmRlciYgcmVjb3JkZXIgPSAqc3RhdGljX2Nhc3Q8RHJhd0dseXBoc1JlY29y
ZGVyKj4oQ0dDb250ZXh0RGVsZWdhdGVHZXRJbmZvKGRlbGVnYXRlKSk7CisgICAgICAgIHJlY29y
ZGVyLnJlY29yZERyYXdHbHlwaHMocnN0YXRlLCBnc3RhdGUsIHRtLCBnbHlwaHMsIHBvc2l0aW9u
cywgY291bnQpOworICAgIH0KKyAgICByZXR1cm4ga0NHRXJyb3JTdWNjZXNzOworfQorCitzdGF0
aWMgQ0dFcnJvciBkcmF3SW1hZ2UoQ0dDb250ZXh0RGVsZWdhdGVSZWYgZGVsZWdhdGUsIENHUmVu
ZGVyaW5nU3RhdGVSZWYgcnN0YXRlLCBDR0dTdGF0ZVJlZiBnc3RhdGUsIENHUmVjdCByZWN0LCBD
R0ltYWdlUmVmIGltYWdlKQoreworICAgIERyYXdHbHlwaHNSZWNvcmRlciYgcmVjb3JkZXIgPSAq
c3RhdGljX2Nhc3Q8RHJhd0dseXBoc1JlY29yZGVyKj4oQ0dDb250ZXh0RGVsZWdhdGVHZXRJbmZv
KGRlbGVnYXRlKSk7CisgICAgcmVjb3JkZXIucmVjb3JkRHJhd0ltYWdlKHJzdGF0ZSwgZ3N0YXRl
LCByZWN0LCBpbWFnZSk7CisgICAgcmV0dXJuIGtDR0Vycm9yU3VjY2VzczsKK30KKworR3JhcGhp
Y3NDb250ZXh0IERyYXdHbHlwaHNSZWNvcmRlcjo6Y3JlYXRlSW50ZXJuYWxDb250ZXh0KCkKK3sK
KyAgICBhdXRvIGNvbnRleHREZWxlZ2F0ZSA9IGFkb3B0Q0YoQ0dDb250ZXh0RGVsZWdhdGVDcmVh
dGUodGhpcykpOworICAgIENHQ29udGV4dERlbGVnYXRlU2V0Q2FsbGJhY2soY29udGV4dERlbGVn
YXRlLmdldCgpLCBkZUJlZ2luTGF5ZXIsIHJlaW50ZXJwcmV0X2Nhc3Q8Q0dDb250ZXh0RGVsZWdh
dGVDYWxsYmFjaz4oJmJlZ2luTGF5ZXIpKTsKKyAgICBDR0NvbnRleHREZWxlZ2F0ZVNldENhbGxi
YWNrKGNvbnRleHREZWxlZ2F0ZS5nZXQoKSwgZGVFbmRMYXllciwgcmVpbnRlcnByZXRfY2FzdDxD
R0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrPigmZW5kTGF5ZXIpKTsKKyAgICBDR0NvbnRleHREZWxl
Z2F0ZVNldENhbGxiYWNrKGNvbnRleHREZWxlZ2F0ZS5nZXQoKSwgZGVEcmF3R2x5cGhzLCByZWlu
dGVycHJldF9jYXN0PENHQ29udGV4dERlbGVnYXRlQ2FsbGJhY2s+KCZXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6ZHJhd0dseXBocykpOworICAgIENHQ29udGV4dERlbGVnYXRlU2V0Q2FsbGJhY2soY29u
dGV4dERlbGVnYXRlLmdldCgpLCBkZURyYXdJbWFnZSwgcmVpbnRlcnByZXRfY2FzdDxDR0NvbnRl
eHREZWxlZ2F0ZUNhbGxiYWNrPigmZHJhd0ltYWdlKSk7CisgICAgYXV0byBjb250ZXh0ID0gYWRv
cHRDRihDR0NvbnRleHRDcmVhdGVXaXRoRGVsZWdhdGUoY29udGV4dERlbGVnYXRlLmdldCgpLCBr
Q0dDb250ZXh0VHlwZVVua25vd24sIG51bGxwdHIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gR3Jh
cGhpY3NDb250ZXh0KGNvbnRleHQuZ2V0KCkpOworfQorCitEcmF3R2x5cGhzUmVjb3JkZXI6OkRy
YXdHbHlwaHNSZWNvcmRlcihSZWNvcmRlciYgb3duZXIpCisgICAgOiBtX293bmVyKG93bmVyKQor
ICAgICwgbV9pbnRlcm5hbENvbnRleHQoY3JlYXRlSW50ZXJuYWxDb250ZXh0KCkpCit7Cit9CisK
K3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpwcmVwYXJlSW50ZXJuYWxDb250ZXh0KGNvbnN0IEZv
bnQmIGZvbnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCit7CisgICAgQVNTRVJU
KENHQWZmaW5lVHJhbnNmb3JtSXNJZGVudGl0eShDVEZvbnRHZXRNYXRyaXgoZm9udC5wbGF0Zm9y
bURhdGEoKS5jdEZvbnQoKSkpKTsKKworICAgIGF1dG8mIHN0YXRlID0gbV9vd25lci5jdXJyZW50
U3RhdGUoKS5zdGF0ZUNoYW5nZS5tX3N0YXRlOworICAgIG1fb3JpZ2luYWxGaWxsQ29sb3IgPSBz
dGF0ZS5maWxsQ29sb3I7CisgICAgbV9vcmlnaW5hbEZpbGxHcmFkaWVudCA9IHN0YXRlLmZpbGxH
cmFkaWVudDsKKyAgICBtX29yaWdpbmFsRmlsbFBhdHRlcm4gPSBzdGF0ZS5maWxsUGF0dGVybjsK
KyAgICBtX2N1cnJlbnRDb2xvciA9IG1fb3JpZ2luYWxGaWxsQ29sb3I7CisKKyAgICBpZiAobV9v
cmlnaW5hbEZpbGxDb2xvci5pc1ZhbGlkKCkpCisgICAgICAgIG1faW50ZXJuYWxDb250ZXh0LnNl
dEZpbGxDb2xvcihtX29yaWdpbmFsRmlsbENvbG9yKTsKKyAgICBlbHNlIGlmIChtX29yaWdpbmFs
RmlsbEdyYWRpZW50KQorICAgICAgICBtX2ludGVybmFsQ29udGV4dC5zZXRGaWxsR3JhZGllbnQo
Km1fb3JpZ2luYWxGaWxsR3JhZGllbnQpOworICAgIGVsc2UgeworICAgICAgICBBU1NFUlQobV9v
cmlnaW5hbEZpbGxQYXR0ZXJuKTsKKyAgICAgICAgaWYgKG1fb3JpZ2luYWxGaWxsUGF0dGVybikK
KyAgICAgICAgICAgIG1faW50ZXJuYWxDb250ZXh0LnNldEZpbGxQYXR0ZXJuKCptX29yaWdpbmFs
RmlsbFBhdHRlcm4pOworICAgIH0KKworICAgIG1faW50ZXJuYWxDb250ZXh0LnNldFNoYWRvdyhz
dGF0ZS5zaGFkb3dPZmZzZXQsIHN0YXRlLnNoYWRvd0JsdXIsIHN0YXRlLnNoYWRvd0NvbG9yKTsK
KworICAgIG1fb3JpZ2luYWxDVE0gPSBtX293bmVyLmN1cnJlbnRTdGF0ZSgpLmN0bTsgLy8gRklY
TUU6IERlYWwgd2l0aCBkZXZpY2Ugc2NhbGUuCisgICAgbV9jdXJyZW50Q1RNID0gbV9vcmlnaW5h
bENUTTsKKyAgICBtX2ludGVybmFsQ29udGV4dC5zZXRDVE0obV9vcmlnaW5hbENUTSk7CisKKyAg
ICBtX29yaWdpbmFsVGV4dE1hdHJpeCA9IGNvbXB1dGVPdmVyYWxsVGV4dE1hdHJpeChmb250KTsK
KyAgICBpZiAoZm9udC5wbGF0Zm9ybURhdGEoKS5vcmllbnRhdGlvbigpID09IEZvbnRPcmllbnRh
dGlvbjo6VmVydGljYWwpCisgICAgICAgIG1fb3JpZ2luYWxUZXh0TWF0cml4ID0gY29tcHV0ZVZl
cnRpY2FsVGV4dE1hdHJpeChmb250LCBtX29yaWdpbmFsVGV4dE1hdHJpeCk7CisKKyAgICBtX2N1
cnJlbnRGb250ID0gJmZvbnQ7CisgICAgbV9zbW9vdGhpbmdNb2RlID0gc21vb3RoaW5nTW9kZTsK
K30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OmNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KCkK
K3sKKyAgICB1cGRhdGVGaWxsQ29sb3IobV9vcmlnaW5hbEZpbGxDb2xvciwgbV9vcmlnaW5hbEZp
bGxHcmFkaWVudC5nZXQoKSwgbV9vcmlnaW5hbEZpbGxQYXR0ZXJuLmdldCgpKTsKKyAgICB1cGRh
dGVDVE0obV9vcmlnaW5hbENUTSk7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjp1cGRh
dGVDVE0oQWZmaW5lVHJhbnNmb3JtIGN0bSkKK3sKKyAgICBpZiAoY3RtID09IG1fY3VycmVudENU
TSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9vd25lci5zZXRDVE0oY3RtKTsKKyAgICBtX2N1
cnJlbnRDVE0gPSBjdG07Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVGaWxs
Q29sb3IoY29uc3QgQ29sb3ImIG5ld0NvbG9yLCBHcmFkaWVudCogbmV3R3JhZGllbnQsIFBhdHRl
cm4qIG5ld1BhdHRlcm4pCit7CisgICAgaWYgKG5ld0NvbG9yID09IG1fY3VycmVudENvbG9yKQor
ICAgICAgICByZXR1cm47CisKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZSBuZXdTdGF0ZTsKKyAg
ICBuZXdTdGF0ZS5maWxsQ29sb3IgPSBuZXdDb2xvcjsKKyAgICBpZiAobmV3R3JhZGllbnQpCisg
ICAgICAgIG5ld1N0YXRlLmZpbGxHcmFkaWVudCA9IG5ld0dyYWRpZW50OworICAgIGlmIChuZXdQ
YXR0ZXJuKQorICAgICAgICBuZXdTdGF0ZS5maWxsUGF0dGVybiA9IG5ld1BhdHRlcm47CisgICAg
bV9vd25lci51cGRhdGVTdGF0ZShuZXdTdGF0ZSwgeyBHcmFwaGljc0NvbnRleHRTdGF0ZTo6Rmls
bENvbG9yQ2hhbmdlIH0pOworICAgIG1fY3VycmVudENvbG9yID0gbmV3Q29sb3I7Cit9CisKK3Zv
aWQgRHJhd0dseXBoc1JlY29yZGVyOjpyZWNvcmRCZWdpbkxheWVyKENHUmVuZGVyaW5nU3RhdGVS
ZWYsIENHR1N0YXRlUmVmIGdzdGF0ZSwgQ0dSZWN0KQoreworICAgIHVwZGF0ZUNUTSgqQ0dHU3Rh
dGVHZXRDVE0oZ3N0YXRlKSk7CisgICAgYXV0byBhbHBoYSA9IENHR1N0YXRlR2V0QWxwaGEoZ3N0
YXRlKTsKKyAgICBtX293bmVyLmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoYWxwaGEpOworfQorCit2
b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6cmVjb3JkRW5kTGF5ZXIoQ0dSZW5kZXJpbmdTdGF0ZVJl
ZiwgQ0dHU3RhdGVSZWYgZ3N0YXRlKQoreworICAgIHVwZGF0ZUNUTSgqQ0dHU3RhdGVHZXRDVE0o
Z3N0YXRlKSk7CisgICAgbV9vd25lci5lbmRUcmFuc3BhcmVuY3lMYXllcigpOworfQorCitzdGF0
aWMgVmVjdG9yPENHU2l6ZT4gY29tcHV0ZUFkdmFuY2VzRnJvbVBvc2l0aW9ucyhjb25zdCBDR1Bv
aW50IHBvc2l0aW9uc1tdLCBzaXplX3QgY291bnQsIGNvbnN0IENHQWZmaW5lVHJhbnNmb3JtJiB0
ZXh0TWF0cml4KQoreworICAgIFZlY3RvcjxDR1NpemU+IHJlc3VsdDsKKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGNvdW50IC0gMTsgKytpKSB7CisgICAgICAgIGF1dG8gbmV4dFBvc2l0aW9u
ID0gcG9zaXRpb25zW2kgKyAxXTsKKyAgICAgICAgYXV0byBjdXJyZW50UG9zaXRpb24gPSBwb3Np
dGlvbnNbaV07CisgICAgICAgIGF1dG8gYWR2YW5jZSA9IENHU2l6ZU1ha2UobmV4dFBvc2l0aW9u
LnggLSBjdXJyZW50UG9zaXRpb24ueCwgbmV4dFBvc2l0aW9uLnkgLSBjdXJyZW50UG9zaXRpb24u
eSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoQ0dTaXplQXBwbHlBZmZpbmVUcmFuc2Zvcm0oYWR2
YW5jZSwgdGV4dE1hdHJpeCkpOworICAgIH0KKyAgICByZXN1bHQuY29uc3RydWN0QW5kQXBwZW5k
KENHU2l6ZU1ha2UoMCwgMCkpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3ZvaWQgRHJhd0ds
eXBoc1JlY29yZGVyOjpyZWNvcmREcmF3R2x5cGhzKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0
YXRlUmVmIGdzdGF0ZSwgY29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0qLCBjb25zdCBDR0dseXBoIGds
eXBoc1tdLCBjb25zdCBDR1BvaW50IHBvc2l0aW9uc1tdLCBzaXplX3QgY291bnQpCit7CisgICAg
aWYgKCFjb3VudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgQ0dGb250UmVmIHVzZWRGb250ID0g
Q0dHU3RhdGVHZXRGb250KGdzdGF0ZSk7CisgICAgaWYgKHVzZWRGb250ICE9IGFkb3B0Q0YoQ1RG
b250Q29weUdyYXBoaWNzRm9udChtX2N1cnJlbnRGb250LT5wbGF0Zm9ybURhdGEoKS5jdEZvbnQo
KSwgbnVsbHB0cikpLmdldCgpKQorICAgICAgICByZXR1cm47CisKKyNpZiBBU1NFUlRfRU5BQkxF
RAorICAgIGF1dG8gdGV4dFBvc2l0aW9uID0gQ0dDb250ZXh0R2V0VGV4dFBvc2l0aW9uKG1faW50
ZXJuYWxDb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpKTsKKyAgICBBU1NFUlQoIXRleHRQb3NpdGlv
bi54KTsKKyAgICBBU1NFUlQoIXRleHRQb3NpdGlvbi55KTsKKyNlbmRpZgorCisgICAgdXBkYXRl
Q1RNKCpDR0dTdGF0ZUdldENUTShnc3RhdGUpKTsKKworICAgIC8vIFdlIHdhbnQgdGhlIEdQVSBw
cm9jZXNzJ3MgQ1RNIGFuZCB0ZXh0IG1hdHJpeCB0byBtYXRjaCB0aGUgY3VycmVudCBDVE0gYW5k
IHRleHQgbWF0cml4LgorICAgIC8vIFRoZSBjdXJyZW50IHRleHQgbWF0cml4IGlzIGEgY29uY2F0
ZW5hdGlvbiBvZiB3aGF0ZXZlciBXZWJLaXQgc2V0cyBpdCB0byBhbmQgd2hhdGV2ZXIKKyAgICAv
LyBDb3JlIFRleHQgYXBwZW5kcyB0byBpdC4gU28sIHJpZ2h0IG5vdyB3ZSBoYXZlCisgICAgLy8g
Q1RNICogbV9vcmlnaW5hbFRleHRNYXRyaXggKiBDb3JlIFRleHQncyB0ZXh0IG1hdHJpeC4KKyAg
ICAvLyBIb3dldmVyLCBDR0NvbnRleHRHZXRUZXh0TWF0cml4KCkganVzdCB0ZWxscyB1cyB3aGF0
IHRoZSB3aG9sZSB0ZXh0IG1hdHJpeCBpcywgc28KKyAgICAvLyBtX29yaWdpbmFsVGV4dE1hdHJp
eCAqIENvcmUgVGV4dCdzIHRleHQgbWF0cml4ID0gY3VycmVudFRleHRNYXRyaXguCisgICAgLy8g
VGhlIG9ubHkgd2F5IHdlIGNhbiBlbXVsYXRlIENvcmUgVGV4dCdzIHRleHQgbWF0cml4IGlzIGJ5
IG1vZGlmeWluZyB0aGUgQ1RNIGhlcmUuCisgICAgLy8gU28sIGlmIHdlIGRvIHRoYXQsIHRoZSBH
UFUgcHJvY2VzcyB3aWxsIGhhdmUKKyAgICAvLyBDVE0gKiBYICogbV9vcmlnaW5hbFRleHRNYXRy
aXgKKyAgICAvLyBJZiB5b3Ugc2V0IHRoZXNlIHR3byBlcXVhbCB0byBlYWNoIG90aGVyLCBhbmQg
c29sdmUgZm9yIFgsIHlvdSBnZXQKKyAgICAvLyBDVE0gKiBjdXJyZW50VGV4dE1hdHJpeCA9IENU
TSAqIFggKiBtX29yaWdpbmFsVGV4dE1hdHJpeAorICAgIC8vIGN1cnJlbnRUZXh0TWF0cml4ICog
aW52ZXJzZShtX29yaWdpbmFsVGV4dE1hdHJpeCkgPSBYCisgICAgQWZmaW5lVHJhbnNmb3JtIGN1
cnJlbnRUZXh0TWF0cml4ID0gQ0dDb250ZXh0R2V0VGV4dE1hdHJpeChtX2ludGVybmFsQ29udGV4
dC5wbGF0Zm9ybUNvbnRleHQoKSk7CisgICAgQWZmaW5lVHJhbnNmb3JtIGN0bUZpeHVwOworICAg
IGlmIChhdXRvIGludmVydGVkT3JpZ2luYWxUZXh0TWF0cml4ID0gbV9vcmlnaW5hbFRleHRNYXRy
aXguaW52ZXJzZSgpKQorICAgICAgICBjdG1GaXh1cCA9IGN1cnJlbnRUZXh0TWF0cml4ICogaW52
ZXJ0ZWRPcmlnaW5hbFRleHRNYXRyaXgudmFsdWUoKTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gaW52
ZXJzZUNUTUZpeHVwOworICAgIGlmIChhdXRvIGludmVyc2UgPSBjdG1GaXh1cC5pbnZlcnNlKCkp
CisgICAgICAgIGludmVyc2VDVE1GaXh1cCA9IGludmVyc2UudmFsdWUoKTsKKyAgICBlbHNlCisg
ICAgICAgIGN0bUZpeHVwID0gQWZmaW5lVHJhbnNmb3JtKCk7CisgICAgbV9vd25lci5jb25jYXRD
VE0oY3RtRml4dXApOworCisgICAgdXBkYXRlRmlsbENvbG9yKENHR1N0YXRlR2V0RmlsbENvbG9y
KGdzdGF0ZSkpOyAvLyBGSVhNRTogV2hhdCBoYXBwZW5zIGlmIHdlJ3ZlIGdvdCBhIGdyYWRpZW50
IG9yIHBhdHRlcm4gb3IgbWFzaz8KKworICAgIC8vIFRlc3QgY2FzZTogdmVydGljYWwgdGV4dCwg
cm90YXRlZCB0ZXh0CisgICAgbV9vd25lci5hcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KERyYXdH
bHlwaHM6OmNyZWF0ZSgqbV9jdXJyZW50Rm9udCwgZ2x5cGhzLCBjb21wdXRlQWR2YW5jZXNGcm9t
UG9zaXRpb25zKHBvc2l0aW9ucywgY291bnQsIGN1cnJlbnRUZXh0TWF0cml4KS5kYXRhKCksIGNv
dW50LCBjdXJyZW50VGV4dE1hdHJpeC5tYXBQb2ludChwb3NpdGlvbnNbMF0pLCBtX3Ntb290aGlu
Z01vZGUpKTsKKworICAgIG1fb3duZXIuY29uY2F0Q1RNKGludmVyc2VDVE1GaXh1cCk7Cit9CisK
K3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpyZWNvcmREcmF3SW1hZ2UoQ0dSZW5kZXJpbmdTdGF0
ZVJlZiwgQ0dHU3RhdGVSZWYgZ3N0YXRlLCBDR1JlY3QgcmVjdCwgQ0dJbWFnZVJlZiBjZ0ltYWdl
KQoreworICAgIC8vIFRlc3QgY2FzZTogRVhJRiByb3RhdGVkIGltYWdlcy4KKyAgICAvLyBGSVhN
RTogV2lsbCBDb3JlVGV4dCBldmVyIHNldCBhbnkgb2YgdGhlIHN0dWZmIG9uIHRoZSBjb250ZXh0
IHRoYXQgd2UgbmVlZCB0byBhcHBseSBoZXJlPyBTZWUgb3B0aW9ucyBpbnNpZGUgSW1hZ2VQYWlu
dGluZ09wdGlvbnMuCisgICAgdXBkYXRlQ1RNKCpDR0dTdGF0ZUdldENUTShnc3RhdGUpKTsKKwor
ICAgIC8vIENvcmUgR3JhcGhpY3MgYXNzdW1lcyBhICJ5IHVwIiBjb29yZGluYXRlIHN5c3RlbSwg
YnV0IGluIFdlYktpdCwgd2UgdXNlIGEgInktZG93biIgY29vcmRpbmF0ZSBzeXN0ZW0uCisgICAg
Ly8gVGhpcyBtZWFucyB0aGF0IFdlYktpdCdzIGRyYXdpbmcgcm91dGluZXMgKEdyYXBoaWNzQ29u
dGV4dDo6ZHJhd0ltYWdlKCkpIGludGVudGlvbmFsbHkgZHJhdyBpbWFnZXMgdXBzaWRlLWRvd24g
ZnJvbSBDb3JlIEdyYXBoaWNzJ3MgcG9pbnQgb2Ygdmlldy4KKyAgICAvLyAoVGhlcmUncyBhIHkt
ZmxpcCBpbnNpZGUgdGhlIGltcGxlbWVudGF0aW9uIG9mIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0lt
YWdlKCkuKQorICAgIC8vIFRoZSByZWN0IGhhcyB0aGUgcmlnaHQgYm91bmRzLCBidXQgd2UgbmVl
ZCB0byB0cmFuc2Zvcm0gZnJvbSBDRydzIGNvb3JkaW5hdGUgc3lzdGVtIHRvIFdlYktpdCdzIGJ5
IHBlcmZvcm1pbmcgb3VyIG93biB5LWZsaXAgc28gaW1hZ2VzIGFyZSBkcmF3biB0aGUgcmlnaHQt
c2lkZS11cC4KKyAgICAvLyBXZSBkbyB0aGlzIGF0IHRoZSBib3VuZGFyeSBiZXR3ZWVuIHRoZSB0
d28gQVBJcywgd2hpY2ggaXMgcmlnaHQgaGVyZS4KKyAgICBtX293bmVyLnRyYW5zbGF0ZSgwLCBy
ZWN0LnNpemUuaGVpZ2h0ICsgMiAqIHJlY3Qub3JpZ2luLnkpOworICAgIG1fb3duZXIuc2NhbGUo
RmxvYXRTaXplKDEsIC0xKSk7CisKKyAgICBhdXRvIGltYWdlID0gQml0bWFwSW1hZ2U6OmNyZWF0
ZShjZ0ltYWdlKTsKKyAgICBtX293bmVyLmFwcGVuZEl0ZW1BbmRVcGRhdGVFeHRlbnQoRHJhd0lt
YWdlOjpjcmVhdGUoaW1hZ2UsIHJlY3QsIHt7IH0sIGltYWdlLT5zaXplKCl9LCB7IEltYWdlT3Jp
ZW50YXRpb246Ok9yaWdpblRvcFJpZ2h0IH0pKTsKKworICAgIC8vIFVuZG8gdGhlIGFib3ZlIHkt
ZmxpcCB0byByZXN0b3JlIHRoZSBjb250ZXh0LgorICAgIG1fb3duZXIuc2NhbGUoRmxvYXRTaXpl
KDEsIC0xKSk7CisgICAgbV9vd25lci50cmFuc2xhdGUoMCwgLShyZWN0LnNpemUuaGVpZ2h0ICsg
MiAqIHJlY3Qub3JpZ2luLnkpKTsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OmRyYXdH
bHlwaHMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZmZXImIGdseXBoQnVmZmVyLCB1
bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmIHN0YXJ0
UG9pbnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCit7CisgICAgcHJlcGFyZUlu
dGVybmFsQ29udGV4dChmb250LCBzbW9vdGhpbmdNb2RlKTsKKyAgICBGb250Q2FzY2FkZTo6ZHJh
d0dseXBocyhtX2ludGVybmFsQ29udGV4dCwgZm9udCwgZ2x5cGhCdWZmZXIsIGZyb20sIG51bUds
eXBocywgc3RhcnRQb2ludCwgc21vb3RoaW5nTW9kZSk7CisgICAgY29uY2x1ZGVJbnRlcm5hbENv
bnRleHQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgRGlzcGxheUxpc3QKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
RHJhd0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzYWMzMjRiN2IwMGE5
ZTE2YTU2YWQ2NzBjZTA0Y2ZhNzdmYzlmYTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhz
UmVjb3JkZXJIYXJmQnV6ei5jcHAKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIgorCisjaW5jbHVkZSAiRGlzcGxheUxp
c3RJdGVtcy5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0UmVjb3JkZXIuaCIKKyNpbmNsdWRlICJG
bG9hdFBvaW50LmgiCisjaW5jbHVkZSAiRm9udC5oIgorI2luY2x1ZGUgIkdseXBoQnVmZmVyLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKKworRHJh
d0dseXBoc1JlY29yZGVyOjpEcmF3R2x5cGhzUmVjb3JkZXIoUmVjb3JkZXImIG93bmVyKQorICAg
IDogbV9vd25lcihvd25lcikKK3sKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OmRyYXdH
bHlwaHMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZmZXImIGdseXBoQnVmZmVyLCB1
bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmIHN0YXJ0
UG9pbnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCit7CisgICAgbV9vd25lci5h
cHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KERyYXdHbHlwaHM6OmNyZWF0ZShmb250LCBnbHlwaEJ1
ZmZlci5nbHlwaHMoZnJvbSksIGdseXBoQnVmZmVyLmFkdmFuY2VzKGZyb20pLCBudW1HbHlwaHMs
IHN0YXJ0UG9pbnQsIHNtb290aGluZ01vZGUpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgRGlzcGxh
eUxpc3QKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVjb3JkZXIuY3BwCmluZGV4IDFjNTRhZTgyMjkzOTQyMGRkNDBiN2I3MGJhN2UzOWRiYmE2
NWZlOWIuLjRhODU2Y2JiOWNkYmM0ZGI5MTgyMjU4ZmYxYmY0OWVmMDQ2YTNiNGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdFJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKQEAgLTQxLDYgKzQxLDcgQEAgUmVj
b3JkZXI6OlJlY29yZGVyKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgRGlzcGxheUxpc3QmIGRp
c3BsYXlMaXN0LCBjb25zdCBHcmEKICAgICA6IEdyYXBoaWNzQ29udGV4dEltcGwoY29udGV4dCwg
aW5pdGlhbENsaXAsIEFmZmluZVRyYW5zZm9ybSgpKQogICAgICwgbV9kaXNwbGF5TGlzdChkaXNw
bGF5TGlzdCkKICAgICAsIG1fb2JzZXJ2ZXIob2JzZXJ2ZXIpCisgICAgLCBtX2RyYXdHbHlwaHNS
ZWNvcmRlcigqdGhpcykKIHsKICAgICBMT0dfV0lUSF9TVFJFQU0oRGlzcGxheUxpc3RzLCBzdHJl
YW0gPDwgIlxuUmVjb3JkaW5nIHdpdGggY2xpcCAiIDw8IGluaXRpYWxDbGlwKTsKICAgICBtX3N0
YXRlU3RhY2suYXBwZW5kKHsgc3RhdGUsIGluaXRpYWxDVE0sIGluaXRpYWxDbGlwIH0pOwpAQCAt
MTExLDcgKzExMiw3IEBAIHZvaWQgUmVjb3JkZXI6OnNldE1pdGVyTGltaXQoZmxvYXQgbWl0ZXJM
aW1pdCkKIAogdm9pZCBSZWNvcmRlcjo6ZHJhd0dseXBocyhjb25zdCBGb250JiBmb250LCBjb25z
dCBHbHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIG51bUds
eXBocywgY29uc3QgRmxvYXRQb2ludCYgc3RhcnRQb2ludCwgRm9udFNtb290aGluZ01vZGUgc21v
b3RoaW5nTW9kZSkKIHsKLSAgICBhcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KERyYXdHbHlwaHM6
OmNyZWF0ZShmb250LCBnbHlwaEJ1ZmZlci5nbHlwaHMoZnJvbSksIGdseXBoQnVmZmVyLmFkdmFu
Y2VzKGZyb20pLCBudW1HbHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGluZ01vZGUpKTsKKyAgICBt
X2RyYXdHbHlwaHNSZWNvcmRlci5kcmF3R2x5cGhzKGZvbnQsIGdseXBoQnVmZmVyLCBmcm9tLCBu
dW1HbHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGluZ01vZGUpOwogfQogCiBJbWFnZURyYXdSZXN1
bHQgUmVjb3JkZXI6OmRyYXdJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCkBAIC0zODYsMTMgKzM4Nyw2IEBAIHZvaWQgUmVj
b3JkZXI6OmFwcGVuZEl0ZW1BbmRVcGRhdGVFeHRlbnQoUmVmPERyYXdpbmdJdGVtPiYmIGl0ZW0p
CiAgICAgdXBkYXRlSXRlbUV4dGVudChuZXdJdGVtKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUg
SXRlbVR5cGU+Ci1JdGVtVHlwZSYgUmVjb3JkZXI6OmFwcGVuZEl0ZW0oUmVmPEl0ZW1UeXBlPiYm
IGl0ZW0pCi17Ci0gICAgd2lsbEFwcGVuZEl0ZW0oaXRlbS5nZXQoKSk7Ci0gICAgcmV0dXJuIGRv
d25jYXN0PEl0ZW1UeXBlPihtX2Rpc3BsYXlMaXN0LmFwcGVuZChXVEZNb3ZlKGl0ZW0pKSk7Ci19
Ci0KIHZvaWQgUmVjb3JkZXI6OnVwZGF0ZUl0ZW1FeHRlbnQoRHJhd2luZ0l0ZW0mIGl0ZW0pIGNv
bnN0CiB7CiAgICAgaWYgKE9wdGlvbmFsPEZsb2F0UmVjdD4gcmVjdCA9IGl0ZW0ubG9jYWxCb3Vu
ZHMoZ3JhcGhpY3NDb250ZXh0KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVy
LmgKaW5kZXggOWVlMWQzOTM4ZjIzMmYzZjE4ZDk3OGFmNzE4NzAxZDhiZTQ2MzA3Mi4uOGU3NTk2
NGUyNDhjMzNhZGY2NmQ3YzYyYWVmMDhjNTAwZTExYzMxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RSZWNvcmRlci5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2lu
Y2x1ZGUgIkRpc3BsYXlMaXN0LmgiCisjaW5jbHVkZSAiRGlzcGxheUxpc3REcmF3R2x5cGhzUmVj
b3JkZXIuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRJbXBsLmgiCiAjaW5jbHVkZSAiSW1h
Z2UuaCIgLy8gRm9yIEltYWdlOjpUaWxlUnVsZS4KICNpbmNsdWRlICJUZXh0RmxhZ3MuaCIKQEAg
LTYxLDggKzYyLDYgQEAgcHVibGljOgogCiAgICAgc2l6ZV90IGl0ZW1Db3VudCgpIGNvbnN0IHsg
cmV0dXJuIG1fZGlzcGxheUxpc3QuaXRlbUNvdW50KCk7IH0KIAotICAgIHZvaWQgYXBwZW5kSXRl
bUFuZFVwZGF0ZUV4dGVudChSZWY8RHJhd2luZ0l0ZW0+JiYpOwotCiAgICAgY2xhc3MgT2JzZXJ2
ZXIgewogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB+T2JzZXJ2ZXIoKSB7IH0KQEAgLTcw
LDYgKzY5LDcgQEAgcHVibGljOgogICAgIH07CiAKIHByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNz
IERyYXdHbHlwaHNSZWNvcmRlcjsKICAgICBib29sIGhhc1BsYXRmb3JtQ29udGV4dCgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQq
IHBsYXRmb3JtQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7IH0KIApA
QCAtMTQ5LDYgKzE0OSw3IEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSXRlbVR5
cGU+CiAgICAgSXRlbVR5cGUmIGFwcGVuZEl0ZW0oUmVmPEl0ZW1UeXBlPiYmKTsKICAgICB2b2lk
IHdpbGxBcHBlbmRJdGVtKGNvbnN0IEl0ZW0mKTsKKyAgICB2b2lkIGFwcGVuZEl0ZW1BbmRVcGRh
dGVFeHRlbnQoUmVmPERyYXdpbmdJdGVtPiYmKTsKIAogICAgIEZsb2F0UmVjdCBleHRlbnRGcm9t
TG9jYWxCb3VuZHMoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7CiAgICAgdm9pZCB1cGRhdGVJdGVt
RXh0ZW50KERyYXdpbmdJdGVtJikgY29uc3Q7CkBAIC0xOTEsOCArMTkyLDE3IEBAIHByaXZhdGU6
CiAgICAgT2JzZXJ2ZXIqIG1fb2JzZXJ2ZXI7CiAKICAgICBWZWN0b3I8Q29udGV4dFN0YXRlLCAz
Mj4gbV9zdGF0ZVN0YWNrOworCisgICAgRHJhd0dseXBoc1JlY29yZGVyIG1fZHJhd0dseXBoc1Jl
Y29yZGVyOwogfTsKIAordGVtcGxhdGU8dHlwZW5hbWUgSXRlbVR5cGU+CitJdGVtVHlwZSYgUmVj
b3JkZXI6OmFwcGVuZEl0ZW0oUmVmPEl0ZW1UeXBlPiYmIGl0ZW0pCit7CisgICAgd2lsbEFwcGVu
ZEl0ZW0oaXRlbS5nZXQoKSk7CisgICAgcmV0dXJuIGRvd25jYXN0PEl0ZW1UeXBlPihtX2Rpc3Bs
YXlMaXN0LmFwcGVuZChXVEZNb3ZlKGl0ZW0pKSk7Cit9CisKIH0KIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>411531</attachid>
            <date>2020-10-15 21:15:38 -0700</date>
            <delta_ts>2020-10-16 00:51:05 -0700</delta_ts>
            <desc>Ahem with sbix table</desc>
            <filename>Ahem-sbix.ttf</filename>
            <type>application/x-font-ttf</type>
            <size>39972</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">AAEAAAAMAIAAAwBAT1MvMnNm+H8AAADMAAAAYGNtYXA5llXuAAABLAAABQxnYXNwABcACQAABjgA
AAAQZ2x5Zgho4j8AAAZIAAAadGhlYWTbUM21AAAgvAAAADZoaGVhBwoENwAAIPQAAAAkaG10eBkG
Ag0AACEYAAAEWGxvY2GyfavtAAAlcAAAAi5tYXhwARkACQAAJ6AAAAAgbmFtZbgpxhkAACfAAAAp
onBvc3RjoVsjAABRZAAAA39zYml4KyKC2wAAVOQAAEc+AAMD1gGQAAUAAAK8AooAAACPArwCigAA
AcUAMgEDAAACAAQAAAAAAAAAgAAArxAAIEgAAAAAAAAAAFczQyAAQAAg/v8DIP84AAADIADI/xD8
BwAA//8DIAMgAAAAIAAAAAAAAgAAAAMAAAAUAAMAAQAAABQABAT4AAABOgEAAAcAOgAmAH4AoACh
AKMApAClAKYApwCoAKkAqgCrAKwArQCuAK8AsACxALMAtAC1ALYAtwC4ALkAugC7ALwAvQC+AL8A
wADBAMIAwwDFAMYAxwDIAMkAygDLAMwAzwDQANEA0gDUANUA1gDXANgA2QDbANwA3QDeAN8A4ADh
AOIA4wDkAOUA5gDnAOgA6QDrAOwA7QDvAPAA8QDyAPMA9AD1APYA9wD4APkA+gD8AP0A/gD/ATEB
UwF4AZICxgLHAskC2gLbAtwC3QOUA6UDpwOpA7wDwCAGIAsgDSAQIBQgGSAaIB4gIiAmIDAgOiBE
ISIhJiICIgYiDyIRIhIiGSIaIh4iKyJIImAiZSLyJcowADAHTgBOA04JTl1OjE6UUWtRbVNBVtdW
21cfZyhqKmw0cGt+tZHR8AL+////AAAAIAAoAKAAoQCiAKQApQCmAKcAqACpAKoAqwCsAK0ArgCv
ALAAsQCyALQAtQC2ALcAuAC5ALoAuwC8AL0AvgC/AMAAwQDCAMMAxADGAMcAyADJAMoAywDMAM0A
0ADRANIA0wDVANYA1wDYANkA2gDcAN0A3gDfAOAA4QDiAOMA5ADlAOYA5wDoAOkA6gDsAO0A7gDw
APEA8gDzAPQA9QD2APcA+AD5APoA+wD9AP4A/wExAVIBeAGSAsYCxwLJAtgC2wLcAt0DlAOlA6cD
qQO8A8AgAiAJIAwgECATIBggGiAcICAgJiAwIDkgRCEiISYiAiIGIg8iESISIhkiGiIeIisiSCJg
ImQi8iXKMAAwB04ATgNOCU5dToxOlFFrUW1TQVbXVttXH2coaipsNHBrfrWR0fAA/v/////j/+L/
+f/0/+D//f/pABf/3f/i/9//5v/s/+oAF//ZAAb/0f/cABX/1f/a/8//6wABAA3/1//dAA4ADAAN
/9X/2v/k/+H/2P+d/8X/nP/f/5v/2v/b/9//2//u/5T/3P/Z/8f/kP/u/7T/2P/V/4v/4//k/6f/
if+H/4j/if+H/4j/rP+H/4j/hv+H/4j/hv+H/8//hv+H/4X/hv+H/4X/qP+b/4X/g/+E/8T/xf+h
/4H/fP9Y/z/97f31/ez93v3g/dj93f0+/W/9a/0q/NP9FOD04PLg89//4MLgheC94Lzgu+C44K/g
p+Ce38Hfrd7i3sze1t7V3rLeid7N3srevt6l3oreh9372yTQ/tEEswGzBLL6sqyydrJxr52vma3J
qjWqKanymeeW6ZTakKKCYG8/EO8B9gABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD
AAgAAgAQAAH//wADAAIAfQAAA2sDIAADAAcAADMRIRElIREhfQLu/Y8B9P4MAyD84H0CJgABAAD/
OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMg
AAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAAR
IREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo
/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8
GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA
/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gD
IAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAA
ESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED
6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg
/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEA
AP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPo
AyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMA
ABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREh
A+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgD
IPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAAB
AAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD
6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAAD
AAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESER
IQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwY
AyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgA
AQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84
A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAA
AwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEh
ESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8
GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwY
AAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/
OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMg
AAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAAR
IREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo
/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8
GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA
/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gD
IAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAA
ESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED
6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gAAAADAAAxIRUhA+j8GMgA
AAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/
OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMg
AAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAAR
IREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo
/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8
GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA
/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gD
IAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAAAAAPoAyAAAwAA
ESERIQPo/BgDIPzgAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED
6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg
/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEA
AP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPo
AyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMA
ABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREh
A+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgD
IPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAAB
AAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD
6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAAD
AAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESER
IQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwY
AyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgA
AQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84
A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAA
AwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEh
ESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8
GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwY
AAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/
OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMg
AAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAAR
IREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo
/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8
GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA
/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gD
IAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAA
ESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED
6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg
/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEA
AP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPo
AyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMA
ABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREh
A+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgD
IPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAAB
AAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD
6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAAD
AAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESER
IQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwY
AyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgA
AQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84
A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAA
AwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEh
ESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8
GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwY
AAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/
OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMg
AAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAAR
IREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo
/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8
GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA
/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gD
IAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAA
ESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED
6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg
/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEA
AP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPo
AyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMA
ABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREh
A+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgD
IPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAAB
AAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD
6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAAD
AAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESER
IQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwY
AyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgA
AQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84
A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAA
AwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEh
ESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8
GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwY
AAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMgAAMAABEhESED6PwYAyD8GAABAAD/
OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAARIREhA+j8GAMg/BgAAQAA/zgD6AMg
AAMAABEhESED6PwYAyD8GAABAAD/OAPoAyAAAwAAESERIQPo/BgDIPwYAAEAAP84A+gDIAADAAAR
IREhA+j8GAMg/BgAAQAAAZAD6AJYAAMAABEhFSED6PwYAljIAAABAAABkAPoAlgAAwAAESEVIQPo
/BgCWMgAAAEAyP84AZADIAADAAATMxEjyMjIAyD8GAAAAQDI/zgBkAMgAAMAABMzESPIyMgDIPwY
AAABAAAAAYAAdAv/Bl8PPPUACQPoAAAAALNvX1kAAAAAxN2rJAAA/zgD6AMgAAAAAwAAAAAAAAAA
AAEAAAMg/zgAAAPoAAAAAAPoAAEAAAAAAAAAAAAAAAAAAAEWA+gAfQAAAAAD6AAAA+gAAAPoAAAD
6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPo
AAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gA
AAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAA
A+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD
6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPo
AAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gA
AAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAA
A+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD
6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPo
AAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gA
AAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAA
A+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD
6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPo
AAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gA
AAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAA
A+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD
6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAAAAAAAfQAAAPo
AAABTQAAAPoAAACnAAAAyAAAAGQAAAAAAAAD6AAAAAAAAAAAAAAD6AAAA+gAAAPoAAAD6AAAA+gA
AAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAA
A+gAyAPoAMgAAAAUABQAFAAUACEALgA7AEgAVQBiAG8AfACJAJYAowCwAL0AygDXAOQA8QD+AQsB
GAElATIBPwFMAVkBZgFzAYABjQGaAacBpwGnAbQBwQHOAdsB6AH1AgICDwIcAikCNgJDAlACXQJq
AncChAKRAp4CqwK4AsUC0gLfAuwC+QMGAxMDIAMtAzoDRwNUA2EDbgN7A4gDlQOiA68DvAPJA9YD
4wPwA/wECQQWBCMEMAQ9BEoEVwRkBHEEfgSLBJgEpQSyBL8EzATZBOYE8wUABQ0FGgUnBTQFQQVO
BVsFaAV1BYIFjwWcBakFtgXDBdAF3QXqBfcGBAYRBh4GKwY4BkUGUgZfBmwGeQaGBpMGoAatBroG
xwbUBuEG7gb7BwgHFQciBy8HPAdJB1YHYwdwB30HigeKB5cHpAexB74HywfYB+UH8gf/CAwIGQgm
CDMIQAhNCFoIZwh0CIEIjgibCKgItQjCCM8I3AjpCPYJAwkQCR0JKgk3CUQJUQleCWsJeAmFCZIJ
nwmsCbkJxgnTCeAJ7Qn6CgcKFAohCi4KOwpIClUKYgpvCnwKiQqWCqMKsAq9CsoK1wrkCvEK/gsL
CxgLJQsyCz8LTAtZC2YLcwuAC40LmgunC7QLwQvOC9sL6Av1DAIMDwwcDCkMKQwpDCkMKQwpDCkM
KQwpDCkMKQwpDCkMNgxDDFAMXQxqDHcMhAyRDJ4Mqwy4DMUM0gzfDOwM+Q0GDRMNIA0tDToAAAAB
AAABFgAIAAIAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAJAG2AAAAAAAAAAAB8AAAAAAAAAAAAAEA
CAHwAAAAAAAAAAIADgH4AAAAAAAAAAMAIgIGAAAAAAAAAAQACAIoAAAAAAAAAAUAGAIwAAAAAAAA
AAYACAJIAAAAAAAAAAoQaAJQAAAAAAAAAAsAJBK4AAAAAAAAAA4AUhLcAAEAAAAAAAAA+BMuAAEA
AAAAAAEABBQmAAEAAAAAAAIABxQqAAEAAAAAAAMAERQxAAEAAAAAAAQABBRCAAEAAAAAAAUADBRG
AAEAAAAAAAYABBRSAAEAAAAAAAoAABRWAAEAAAAAAAsAEhRWAAEAAAAAAA4AKRRoAAEAAAAAABAA
BBSRAAEAAAAAABEABxSVAAEAAAAAABIABBScAAMAAQQJAAAB8BSgAAMAAQQJAAEACBaQAAMAAQQJ
AAIADhaYAAMAAQQJAAMAIhamAAMAAQQJAAQACBbIAAMAAQQJAAUAGBbQAAMAAQQJAAYACBboAAMA
AQQJAAoQaBbwAAMAAQQJAAsAJCdYAAMAAQQJAA4AUid8AAMAAQQJABAACCfOAAMAAQQJABEADifW
AAMAAQQJABIACCfkAFQAaABlACAAQQBoAGUAbQAgAGYAbwBuAHQAIABiAGUAbABvAG4AZwBzACAA
dABvACAAdABoAGUAIABwAHUAYgBsAGkAYwAgAGQAbwBtAGEAaQBuAC4AIABJAG4AIABqAHUAcgBp
AHMAZABpAGMAdABpAG8AbgBzACAAdABoAGEAdAAgAGQAbwAgAG4AbwB0ACAAcgBlAGMAbwBnAG4A
aQB6AGUAIABwAHUAYgBsAGkAYwAgAGQAbwBtAGEAaQBuACAAbwB3AG4AZQByAHMAaABpAHAAIABv
AGYAIAB0AGgAZQBzAGUAIABmAGkAbABlAHMALAAgAHQAaABlACAAZgBvAGwAbABvAHcAaQBuAGcA
IABDAHIAZQBhAHQAaQB2AGUAIABDAG8AbQBtAG8AbgBzACAAWgBlAHIAbwAgAGQAZQBjAGwAYQBy
AGEAdABpAG8AbgAgAGEAcABwAGwAaQBlAHMAOgAgAGgAdAB0AHAAOgAvAC8AbABhAGIAcwAuAGMA
cgBlAGEAdABpAHYAZQBjAG8AbQBtAG8AbgBzAC4AbwByAGcALwBsAGkAYwBlAG4AcwBlAHMALwB6
AGUAcgBvAC0AdwBhAGkAdgBlAC8AMQAuADAALwB1AHMALwBsAGUAZwBhAGwAYwBvAGQAZQBBAGgA
ZQBtAFIAZQBnAHUAbABhAHIAVgBlAHIAcwBpAG8AbgAgADEALgA1ADAAIABBAGgAZQBtAEEAaABl
AG0AVgBlAHIAcwBpAG8AbgAgADEALgA1ADAAQQBoAGUAbQBUAGgAZQAgAEEAaABlAG0AIABmAG8A
bgB0ACAAdwBhAHMAIABkAGUAdgBlAGwAbwBwAGUAZAAgAGIAeQAgAFQAbwBkAGQAIABGAGEAaABy
AG4AZQByACAAYQBuAGQAIABNAHkAbABlAHMAIABDAC4AIABNAGEAeABmAGkAZQBsAGQAIAB0AG8A
IABoAGUAbABwACAAdABlAHMAdAAgAHcAcgBpAHQAZQByAHMAIABkAGUAdgBlAGwAbwBwACAAcABy
AGUAZABpAGMAdABhAGIAbABlACAAdABlAHMAdABzAC4AIABUAGgAZQAgAHUAbgBpAHQAcwAgAHAA
ZQByACAAZQBtACAAaQBzACAAMQAwADAAMAAsACAAdABoAGUAIABhAGQAdgBhAG4AYwBlACAAaQBz
ACAAOAAwADAALAAgAGEAbgBkACAAdABoAGUAIABkAGUAcwBjAGUAbgB0ACAAaQBzACAAMgAwADAA
LAAgAHQAaABlAHIAZQBiAHkAIABtAGEAawBpAG4AZwAgAHQAaABlACAAZQBtACAAcwBxAHUAYQBy
AGUAIABlAHgAYQBjAHQAbAB5ACAAcwBxAHUAYQByAGUALgAgAFQAaABlACAAZwBsAHkAcABoAHMA
IABmAG8AcgAgAG0AbwBzAHQAIABjAGgAYQByAGEAYwB0AGUAcgBzACAAaQBzACAAcwBpAG0AcABs
AHkAIABhACAAYgBvAHgAIAB3AGgAaQBjAGgAIABmAGkAbABsAHMAIAB0AGgAaQBzACAAcwBxAHUA
YQByAGUALgAgAFQAaABlACAAYwBvAGQAZQBwAG8AaQBuAHQAcwAgAG0AYQBwAHAAZQBkACAAdABv
ACAAdABoAGkAcwAgAGYAdQBsAGwAIABzAHEAdQBhAHIAZQAgAHcAaQB0AGgAIABhACAAZgB1AGwA
bAAgAGEAZAB2AGEAbgBjAGUAIABhAHIAZQAgAHQAaABlACAAZgBvAGwAbABvAHcAaQBuAGcAIABy
AGEAbgBnAGUAcwA6ACAAVQArADIAMAAtAFUAKwAyADYALAAgAFUAKwAyADgALQBVACsANgBGACwA
IABVACsANwAxAC0AVQArADcARQAsACAAVQArAEEAMAAtAFUAKwBDADgALAAgAFUAKwBDAEEALQBV
ACsARgBGACwAIABVACsAMQAzADEALAAgAFUAKwAxADUAMgAtAFUAKwAxADUAMwAsACAAVQArADEA
NwA4ACwAIABVACsAMQA5ADIALAAgAFUAKwAyAEMANgAtAFUAKwAyAEMANwAsACAAVQArADIAQwA5
ACwAIABVACsAMgBEADgALQBVACsAMgBEAEQALAAgAFUAKwAzADkANAAsACAAVQArADMAQQA1ACwA
IABVACsAMwBBADcALAAgAFUAKwAzAEEAOQAsACAAVQArADMAQgBDACwAIABVACsAMwBDADAALAAg
AFUAKwAyADAAMQAzAC0AVQArADIAMAAxADQALAAgAFUAKwAyADAAMQA4AC0AVQArADIAMAAxAEEA
LAAgAFUAKwAyADAAMQBDAC0AVQArADIAMAAxAEUALAAgAFUAKwAyADAAMgAwAC0AVQArADIAMAAy
ADIALAAgAFUAKwAyADAAMgA2ACwAIABVACsAMgAwADMAMAAsACAAVQArADIAMAAzADkALQBVACsA
MgAwADMAQQAsACAAVQArADIAMAA0ADQALAAgAFUAKwAyADEAMgAyACwAIABVACsAMgAxADIANgAs
ACAAVQArADIAMgAwADIALAAgAFUAKwAyADIAMAA2ACwAIABVACsAMgAyADAARgAsACAAVQArADIA
MgAxADEALQBVACsAMgAyADEAMgAsACAAVQArADIAMgAxADkALQBVACsAMgAyADEAQQAsACAAVQAr
ADIAMgAxAEUALAAgAFUAKwAyADIAMgBCACwAIABVACsAMgAyADQAOAAsACAAVQArADIAMgA2ADAA
LAAgAFUAKwAyADIANgA0AC0AVQArADIAMgA2ADUALAAgAFUAKwAyADIARgAyACwAIABVACsAMgA1
AEMAQQAsACAAVQArADMAMAAwADcALAAgAFUAKwA0AEUAMAAwACwAIABVACsANABFADAAMwAsACAA
VQArADQARQAwADkALAAgAFUAKwA0AEUANQBEACwAIABVACsANABFADgAQwAsACAAVQArADQARQA5
ADQALAAgAFUAKwA1ADEANgBCACwAIABVACsANQAxADYARAAsACAAVQArADUAMwA0ADEALAAgAFUA
KwA1ADYARAA3ACwAIABVACsANQA2AEQAQgAsACAAVQArADUANwAxAEYALAAgAFUAKwA2ADcAMgA4
ACwAIABVACsANgBDADMANAAsACAAVQArADcAMAA2AEIALAAgAFUAKwA5ADEARAAxACwAIABVACsA
RgAwADAAMAAtAFUAKwBGADAAMAAyAC4AIABUAGgAZQAgAGMAbwBkAGUAcABvAGkAbgB0AHMAIAB3
AGgAaQBjAGgAIABhAHIAZQAgAG0AYQBwAHAAZQBkACAAdABvACAAcwBvAG0AZQB0AGgAaQBuAGcA
IABlAGwAcwBlACAAYQByAGUAIAB0AGgAZQAgAGYAbwBsAGwAbwB3AGkAbgBnADoAIAAiACAAIgAg
ACgAVQArADIAMAApADoAIABOAG8AIABwAGEAdABoACAAYgB1AHQAIABmAHUAbABsACAAYQBkAHYA
YQBuAGMAZQA7ACAAIgBwACIAIAAoAFUAKwA3ADAAKQA6ACAAUABhAHQAaAAgAGgAYQBzACAAMAAg
AGEAcwBjAGUAbgB0ACAAYgB1AHQAIABmAHUAbABsACAAZABlAHMAYwBlAG4AdAA7ACAAIgDJACIA
IAAoAFUAKwBDADkAKQA6ACAAUABhAHQAaAAgAGgAYQBzACAAMAAgAGQAZQBzAGMAZQBuAHQAIABi
AHUAdAAgAGYAdQBsAGwAIABhAHMAYwBlAG4AdAA7ACAATgBvAG4ALQBiAHIAZQBhAGsAaQBuAGcA
IABzAHAAYQBjAGUAIAAoAFUAKwBBADAAKQA6ACAATgBvACAAcABhAHQAaAAgAGIAdQB0ACAAZgB1
AGwAbAAgAGEAZAB2AGEAbgBjAGUAOwAgAFoAZQByAG8ALQB3AGkAZAB0AGgAIABuAG8AbgAtAGIA
cgBlAGEAawBpAG4AZwAgAHMAcABhAGMAZQAgACgAVQArAEYARQBGAEYAKQA6ACAATgBvACAAcABh
AHQAaAAgAGEAbgBkACAAMAAgAGEAZAB2AGEAbgBjAGUAOwAgAEUAbgAgAHMAcABhAGMAZQAgACgA
VQArADIAMAAwADIAKQA6ACAATgBvACAAcABhAHQAaAAgAGEAbgBkACAAaABhAGwAZgAgAGEAZAB2
AGEAbgBjAGUAOwAgAEUAbQAgAHMAcABhAGMAZQAgACgAVQArADIAMAAwADMAKQA6ACAATgBvACAA
cABhAHQAaAAgAGIAdQB0ACAAZgB1AGwAbAAgAGEAZAB2AGEAbgBjAGUAOwAgAFQAaAByAGUAZQAt
AHAAZQByAC0AZQBtACAAcwBwAGEAYwBlACAAKABVACsAMgAwADAANAApADoAIABOAG8AIABwAGEA
dABoACAAYQBuAGQAIABvAG4AZQAgAHQAaABpAHIAZAAgAGEAZAB2AGEAbgBjAGUAOwAgAEYAbwB1
AHIALQBwAGUAcgAtAGUAbQAgAHMAcABhAGMAZQAgACgAVQArADIAMAAwADUAKQA6ACAATgBvACAA
cABhAHQAaAAgAGEAbgBkACAAbwBuAGUAIABxAHUAYQByAHQAZQByACAAYQBkAHYAYQBuAGMAZQA7
ACAAUwBpAHgALQBwAGUAcgAtAGUAbQAgAHMAcABhAGMAZQAgACgAVQArADIAMAAwADYAKQA6ACAA
TgBvACAAcABhAHQAaAAgAGEAbgBkACAAbwBuAGUAIABzAGkAeAB0AGgAIABhAGQAdgBhAG4AYwBl
ADsAIABUAGgAaQBuACAAcwBwAGEAYwBlACAAKABVACsAMgAwADAAOQApADoAIABOAG8AIABwAGEA
dABoACAAYQBuAGQAIABvAG4AZQAgAGYAaQBmAHQAaAAgAGEAZAB2AGEAbgBjAGUAOwAgAEgAYQBp
AHIAIABzAHAAYQBjAGUAIAAoAFUAKwAyADAAMABBACkAOgAgAE4AbwAgAHAAYQB0AGgAIABhAG4A
ZAAgAG8AbgBlACAAdABlAG4AdABoACAAYQBkAHYAYQBuAGMAZQA7ACAAWgBlAHIAbwAgAHcAaQBk
AHQAaAAgAHMAcABhAGMAZQAgACgAVQArADIAMAAwAEIAKQA6ACAATgBvACAAcABhAHQAaAAgAGEA
bgBkACAAbgBvACAAYQBkAHYAYQBuAGMAZQA7ACAASQBkAGUAbwBnAHIAYQBwAGgAaQBjACAAcwBw
AGEAYwBlACAAKABVACsAMwAwADAAMAApADoAIABOAG8AIABwAGEAdABoACAAYgB1AHQAIABmAHUA
bABsACAAYQBkAHYAYQBuAGMAZQA7ACAAWgBlAHIAbwAgAHcAaQBkAHQAaAAgAG4AbwBuAC0AagBv
AGkAbgBlAHIAIAAoAFUAKwAyADAAMABDACkAOgAgAE4AbwAgAHAAYQB0AGgAIABhAG4AZAAgAG4A
bwAgAGEAZAB2AGEAbgBjAGUAOwAgAFoAZQByAG8AIAB3AGkAZAB0AGgAIABqAG8AaQBuAGUAcgAg
ACgAVQArADIAMAAwAEQAKQA6ACAATgBvACAAcABhAHQAaAAgAGEAbgBkACAAbgBvACAAYQBkAHYA
YQBuAGMAZQA7ACAARwByAGUAZQBrACAAYwBhAHAAaQB0AGEAbAAgAGwAZQB0AHQAZQByACAAQwBo
AGkAIAAoAFUAKwAzAEEANwApADoAIABUAGgAaQBuACAAaABvAHIAaQB6AG8AbgB0AGEAbAAgAHMA
dAByAGkAcABlACAAYQBuAGQAIABmAHUAbABsACAAYQBkAHYAYQBuAGMAZQA7ACAAImoqACIAIAAo
AFUAKwA2AEEAMgBBACkAOgAgAFQAaABpAG4AIABoAG8AcgBpAHoAbwBuAHQAYQBsACAAcwB0AHIA
aQBwAGUAIABhAG4AZAAgAGYAdQBsAGwAIABhAGQAdgBhAG4AYwBlADsAIABHAHIAZQBlAGsAIABj
AGEAcABpAHQAYQBsACAAbABlAHQAdABlAHIAIABVAHAAcwBpAGwAbwBuACAAKABVACsAMwBBADUA
KQA6ACAAVABoAGkAbgAgAHYAZQByAHQAaQBjAGEAbAAgAHMAdAByAGkAcABlACAAYQBuAGQAIABm
AHUAbABsACAAYQBkAHYAYQBuAGMAZQA7ACAAIn61ACIAIAAoAFUAKwA3AEUAQgA1ACkAOgAgAFQA
aABpAG4AIAB2AGUAcgB0AGkAYwBhAGwAIABzAHQAcgBpAHAAZQAgAGEAbgBkACAAZgB1AGwAbAAg
AGEAZAB2AGEAbgBjAGUALgBoAHQAdABwADoALwAvAHcAdwB3AC4AdwAzAGMALgBvAHIAZwBoAHQA
dABwADoALwAvAGQAZQB2AC4AdwAzAC4AbwByAGcALwBDAFMAUwAvAGYAbwBuAHQAcwAvAGEAaABl
AG0ALwBDAE8AUABZAEkATgBHAApUaGUgQWhlbSBmb250IGJlbG9uZ3MgdG8gdGhlIHB1YmxpYyBk
b21haW4uIEluIGp1cmlzZGljdGlvbnMgdGhhdCBkbyBub3QgcmVjb2duaXplIHB1YmxpYyBkb21h
aW4gb3duZXJzaGlwIG9mIHRoZXNlIGZpbGVzLCB0aGUgZm9sbG93aW5nIENyZWF0aXZlIENvbW1v
bnMgWmVybyBkZWNsYXJhdGlvbiBhcHBsaWVzOiBodHRwOi8vbGFicy5jcmVhdGl2ZWNvbW1vbnMu
b3JnL2xpY2Vuc2VzL3plcm8td2FpdmUvMS4wL3VzL2xlZ2FsY29kZUFoZW1SZWd1bGFyVmVyc2lv
biAxLjUwIEFoZW1BaGVtVmVyc2lvbiAxLjUwQWhlbWh0dHA6Ly93d3cudzNjLm9yZ2h0dHA6Ly9k
ZXYudzMub3JnL0NTUy9mb250cy9haGVtL0NPUFlJTkcKQWhlbVJlZ3VsYXJBaGVtAFQAaABlACAA
QQBoAGUAbQAgAGYAbwBuAHQAIABiAGUAbABvAG4AZwBzACAAdABvACAAdABoAGUAIABwAHUAYgBs
AGkAYwAgAGQAbwBtAGEAaQBuAC4AIABJAG4AIABqAHUAcgBpAHMAZABpAGMAdABpAG8AbgBzACAA
dABoAGEAdAAgAGQAbwAgAG4AbwB0ACAAcgBlAGMAbwBnAG4AaQB6AGUAIABwAHUAYgBsAGkAYwAg
AGQAbwBtAGEAaQBuACAAbwB3AG4AZQByAHMAaABpAHAAIABvAGYAIAB0AGgAZQBzAGUAIABmAGkA
bABlAHMALAAgAHQAaABlACAAZgBvAGwAbABvAHcAaQBuAGcAIABDAHIAZQBhAHQAaQB2AGUAIABD
AG8AbQBtAG8AbgBzACAAWgBlAHIAbwAgAGQAZQBjAGwAYQByAGEAdABpAG8AbgAgAGEAcABwAGwA
aQBlAHMAOgAgAGgAdAB0AHAAOgAvAC8AbABhAGIAcwAuAGMAcgBlAGEAdABpAHYAZQBjAG8AbQBt
AG8AbgBzAC4AbwByAGcALwBsAGkAYwBlAG4AcwBlAHMALwB6AGUAcgBvAC0AdwBhAGkAdgBlAC8A
MQAuADAALwB1AHMALwBsAGUAZwBhAGwAYwBvAGQAZQBBAGgAZQBtAFIAZQBnAHUAbABhAHIAVgBl
AHIAcwBpAG8AbgAgADEALgA1ADAAIABBAGgAZQBtAEEAaABlAG0AVgBlAHIAcwBpAG8AbgAgADEA
LgA1ADAAQQBoAGUAbQBUAGgAZQAgAEEAaABlAG0AIABmAG8AbgB0ACAAdwBhAHMAIABkAGUAdgBl
AGwAbwBwAGUAZAAgAGIAeQAgAFQAbwBkAGQAIABGAGEAaAByAG4AZQByACAAYQBuAGQAIABNAHkA
bABlAHMAIABDAC4AIABNAGEAeABmAGkAZQBsAGQAIAB0AG8AIABoAGUAbABwACAAdABlAHMAdAAg
AHcAcgBpAHQAZQByAHMAIABkAGUAdgBlAGwAbwBwACAAcAByAGUAZABpAGMAdABhAGIAbABlACAA
dABlAHMAdABzAC4AIABUAGgAZQAgAHUAbgBpAHQAcwAgAHAAZQByACAAZQBtACAAaQBzACAAMQAw
ADAAMAAsACAAdABoAGUAIABhAGQAdgBhAG4AYwBlACAAaQBzACAAOAAwADAALAAgAGEAbgBkACAA
dABoAGUAIABkAGUAcwBjAGUAbgB0ACAAaQBzACAAMgAwADAALAAgAHQAaABlAHIAZQBiAHkAIABt
AGEAawBpAG4AZwAgAHQAaABlACAAZQBtACAAcwBxAHUAYQByAGUAIABlAHgAYQBjAHQAbAB5ACAA
cwBxAHUAYQByAGUALgAgAFQAaABlACAAZwBsAHkAcABoAHMAIABmAG8AcgAgAG0AbwBzAHQAIABj
AGgAYQByAGEAYwB0AGUAcgBzACAAaQBzACAAcwBpAG0AcABsAHkAIABhACAAYgBvAHgAIAB3AGgA
aQBjAGgAIABmAGkAbABsAHMAIAB0AGgAaQBzACAAcwBxAHUAYQByAGUALgAgAFQAaABlACAAYwBv
AGQAZQBwAG8AaQBuAHQAcwAgAG0AYQBwAHAAZQBkACAAdABvACAAdABoAGkAcwAgAGYAdQBsAGwA
IABzAHEAdQBhAHIAZQAgAHcAaQB0AGgAIABhACAAZgB1AGwAbAAgAGEAZAB2AGEAbgBjAGUAIABh
AHIAZQAgAHQAaABlACAAZgBvAGwAbABvAHcAaQBuAGcAIAByAGEAbgBnAGUAcwA6ACAAVQArADIA
MAAtAFUAKwAyADYALAAgAFUAKwAyADgALQBVACsANgBGACwAIABVACsANwAxAC0AVQArADcARQAs
ACAAVQArAEEAMAAtAFUAKwBDADgALAAgAFUAKwBDAEEALQBVACsARgBGACwAIABVACsAMQAzADEA
LAAgAFUAKwAxADUAMgAtAFUAKwAxADUAMwAsACAAVQArADEANwA4ACwAIABVACsAMQA5ADIALAAg
AFUAKwAyAEMANgAtAFUAKwAyAEMANwAsACAAVQArADIAQwA5ACwAIABVACsAMgBEADgALQBVACsA
MgBEAEQALAAgAFUAKwAzADkANAAsACAAVQArADMAQQA1ACwAIABVACsAMwBBADcALAAgAFUAKwAz
AEEAOQAsACAAVQArADMAQgBDACwAIABVACsAMwBDADAALAAgAFUAKwAyADAAMQAzAC0AVQArADIA
MAAxADQALAAgAFUAKwAyADAAMQA4AC0AVQArADIAMAAxAEEALAAgAFUAKwAyADAAMQBDAC0AVQAr
ADIAMAAxAEUALAAgAFUAKwAyADAAMgAwAC0AVQArADIAMAAyADIALAAgAFUAKwAyADAAMgA2ACwA
IABVACsAMgAwADMAMAAsACAAVQArADIAMAAzADkALQBVACsAMgAwADMAQQAsACAAVQArADIAMAA0
ADQALAAgAFUAKwAyADEAMgAyACwAIABVACsAMgAxADIANgAsACAAVQArADIAMgAwADIALAAgAFUA
KwAyADIAMAA2ACwAIABVACsAMgAyADAARgAsACAAVQArADIAMgAxADEALQBVACsAMgAyADEAMgAs
ACAAVQArADIAMgAxADkALQBVACsAMgAyADEAQQAsACAAVQArADIAMgAxAEUALAAgAFUAKwAyADIA
MgBCACwAIABVACsAMgAyADQAOAAsACAAVQArADIAMgA2ADAALAAgAFUAKwAyADIANgA0AC0AVQAr
ADIAMgA2ADUALAAgAFUAKwAyADIARgAyACwAIABVACsAMgA1AEMAQQAsACAAVQArADMAMAAwADcA
LAAgAFUAKwA0AEUAMAAwACwAIABVACsANABFADAAMwAsACAAVQArADQARQAwADkALAAgAFUAKwA0
AEUANQBEACwAIABVACsANABFADgAQwAsACAAVQArADQARQA5ADQALAAgAFUAKwA1ADEANgBCACwA
IABVACsANQAxADYARAAsACAAVQArADUAMwA0ADEALAAgAFUAKwA1ADYARAA3ACwAIABVACsANQA2
AEQAQgAsACAAVQArADUANwAxAEYALAAgAFUAKwA2ADcAMgA4ACwAIABVACsANgBDADMANAAsACAA
VQArADcAMAA2AEIALAAgAFUAKwA5ADEARAAxACwAIABVACsARgAwADAAMAAtAFUAKwBGADAAMAAy
AC4AIABUAGgAZQAgAGMAbwBkAGUAcABvAGkAbgB0AHMAIAB3AGgAaQBjAGgAIABhAHIAZQAgAG0A
YQBwAHAAZQBkACAAdABvACAAcwBvAG0AZQB0AGgAaQBuAGcAIABlAGwAcwBlACAAYQByAGUAIAB0
AGgAZQAgAGYAbwBsAGwAbwB3AGkAbgBnADoAIAAiACAAIgAgACgAVQArADIAMAApADoAIABOAG8A
IABwAGEAdABoACAAYgB1AHQAIABmAHUAbABsACAAYQBkAHYAYQBuAGMAZQA7ACAAIgBwACIAIAAo
AFUAKwA3ADAAKQA6ACAAUABhAHQAaAAgAGgAYQBzACAAMAAgAGEAcwBjAGUAbgB0ACAAYgB1AHQA
IABmAHUAbABsACAAZABlAHMAYwBlAG4AdAA7ACAAIgDJACIAIAAoAFUAKwBDADkAKQA6ACAAUABh
AHQAaAAgAGgAYQBzACAAMAAgAGQAZQBzAGMAZQBuAHQAIABiAHUAdAAgAGYAdQBsAGwAIABhAHMA
YwBlAG4AdAA7ACAATgBvAG4ALQBiAHIAZQBhAGsAaQBuAGcAIABzAHAAYQBjAGUAIAAoAFUAKwBB
ADAAKQA6ACAATgBvACAAcABhAHQAaAAgAGIAdQB0ACAAZgB1AGwAbAAgAGEAZAB2AGEAbgBjAGUA
OwAgAFoAZQByAG8ALQB3AGkAZAB0AGgAIABuAG8AbgAtAGIAcgBlAGEAawBpAG4AZwAgAHMAcABh
AGMAZQAgACgAVQArAEYARQBGAEYAKQA6ACAATgBvACAAcABhAHQAaAAgAGEAbgBkACAAMAAgAGEA
ZAB2AGEAbgBjAGUAOwAgAEUAbgAgAHMAcABhAGMAZQAgACgAVQArADIAMAAwADIAKQA6ACAATgBv
ACAAcABhAHQAaAAgAGEAbgBkACAAaABhAGwAZgAgAGEAZAB2AGEAbgBjAGUAOwAgAEUAbQAgAHMA
cABhAGMAZQAgACgAVQArADIAMAAwADMAKQA6ACAATgBvACAAcABhAHQAaAAgAGIAdQB0ACAAZgB1
AGwAbAAgAGEAZAB2AGEAbgBjAGUAOwAgAFQAaAByAGUAZQAtAHAAZQByAC0AZQBtACAAcwBwAGEA
YwBlACAAKABVACsAMgAwADAANAApADoAIABOAG8AIABwAGEAdABoACAAYQBuAGQAIABvAG4AZQAg
AHQAaABpAHIAZAAgAGEAZAB2AGEAbgBjAGUAOwAgAEYAbwB1AHIALQBwAGUAcgAtAGUAbQAgAHMA
cABhAGMAZQAgACgAVQArADIAMAAwADUAKQA6ACAATgBvACAAcABhAHQAaAAgAGEAbgBkACAAbwBu
AGUAIABxAHUAYQByAHQAZQByACAAYQBkAHYAYQBuAGMAZQA7ACAAUwBpAHgALQBwAGUAcgAtAGUA
bQAgAHMAcABhAGMAZQAgACgAVQArADIAMAAwADYAKQA6ACAATgBvACAAcABhAHQAaAAgAGEAbgBk
ACAAbwBuAGUAIABzAGkAeAB0AGgAIABhAGQAdgBhAG4AYwBlADsAIABUAGgAaQBuACAAcwBwAGEA
YwBlACAAKABVACsAMgAwADAAOQApADoAIABOAG8AIABwAGEAdABoACAAYQBuAGQAIABvAG4AZQAg
AGYAaQBmAHQAaAAgAGEAZAB2AGEAbgBjAGUAOwAgAEgAYQBpAHIAIABzAHAAYQBjAGUAIAAoAFUA
KwAyADAAMABBACkAOgAgAE4AbwAgAHAAYQB0AGgAIABhAG4AZAAgAG8AbgBlACAAdABlAG4AdABo
ACAAYQBkAHYAYQBuAGMAZQA7ACAAWgBlAHIAbwAgAHcAaQBkAHQAaAAgAHMAcABhAGMAZQAgACgA
VQArADIAMAAwAEIAKQA6ACAATgBvACAAcABhAHQAaAAgAGEAbgBkACAAbgBvACAAYQBkAHYAYQBu
AGMAZQA7ACAASQBkAGUAbwBnAHIAYQBwAGgAaQBjACAAcwBwAGEAYwBlACAAKABVACsAMwAwADAA
MAApADoAIABOAG8AIABwAGEAdABoACAAYgB1AHQAIABmAHUAbABsACAAYQBkAHYAYQBuAGMAZQA7
ACAAWgBlAHIAbwAgAHcAaQBkAHQAaAAgAG4AbwBuAC0AagBvAGkAbgBlAHIAIAAoAFUAKwAyADAA
MABDACkAOgAgAE4AbwAgAHAAYQB0AGgAIABhAG4AZAAgAG4AbwAgAGEAZAB2AGEAbgBjAGUAOwAg
AFoAZQByAG8AIAB3AGkAZAB0AGgAIABqAG8AaQBuAGUAcgAgACgAVQArADIAMAAwAEQAKQA6ACAA
TgBvACAAcABhAHQAaAAgAGEAbgBkACAAbgBvACAAYQBkAHYAYQBuAGMAZQA7ACAARwByAGUAZQBr
ACAAYwBhAHAAaQB0AGEAbAAgAGwAZQB0AHQAZQByACAAQwBoAGkAIAAoAFUAKwAzAEEANwApADoA
IABUAGgAaQBuACAAaABvAHIAaQB6AG8AbgB0AGEAbAAgAHMAdAByAGkAcABlACAAYQBuAGQAIABm
AHUAbABsACAAYQBkAHYAYQBuAGMAZQA7ACAAImoqACIAIAAoAFUAKwA2AEEAMgBBACkAOgAgAFQA
aABpAG4AIABoAG8AcgBpAHoAbwBuAHQAYQBsACAAcwB0AHIAaQBwAGUAIABhAG4AZAAgAGYAdQBs
AGwAIABhAGQAdgBhAG4AYwBlADsAIABHAHIAZQBlAGsAIABjAGEAcABpAHQAYQBsACAAbABlAHQA
dABlAHIAIABVAHAAcwBpAGwAbwBuACAAKABVACsAMwBBADUAKQA6ACAAVABoAGkAbgAgAHYAZQBy
AHQAaQBjAGEAbAAgAHMAdAByAGkAcABlACAAYQBuAGQAIABmAHUAbABsACAAYQBkAHYAYQBuAGMA
ZQA7ACAAIn61ACIAIAAoAFUAKwA3AEUAQgA1ACkAOgAgAFQAaABpAG4AIAB2AGUAcgB0AGkAYwBh
AGwAIABzAHQAcgBpAHAAZQAgAGEAbgBkACAAZgB1AGwAbAAgAGEAZAB2AGEAbgBjAGUALgBoAHQA
dABwADoALwAvAHcAdwB3AC4AdwAzAGMALgBvAHIAZwBoAHQAdABwADoALwAvAGQAZQB2AC4AdwAz
AC4AbwByAGcALwBDAFMAUwAvAGYAbwBuAHQAcwAvAGEAaABlAG0ALwBDAE8AUABZAEkATgBHAAoA
QQBoAGUAbQBSAGUAZwB1AGwAYQByAEEAaABlAG0AAAACAAAAAAAA/3sAFAAAAAAAAAAAAAAAAAAA
AAAAAAAAARYAAAECAQMAAwAEAAUABgAHAAgACQALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgA
GQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1
ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEA
UgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQBiAGMAZABlAGYAZwBoAGkAagBrAGwAbQBu
AG8AcABxAHIAcwB0AHUAdgB3AHgAeQB6AHsAfAB9AH4AfwCAAIEAgwCEAIUAhgCIAIkAigCLAI0A
jgCQAJEAkwCWAJcAnQCeAKAAoQCiAKMApACpAKoArACtAK4ArwC2ALcAuAC6AL0AwwDHAMgAyQDK
AMsAzADNAM4AzwDQANEA0wDUANUA1gDXANgA2QDaANsA3ADdAN4A3wDgAOEA6ADpAOoA6wDsAO0A
7gDvAPAA8QDyAPMA9AD1APYBBAEFALAAsQC7AKYAqACfAJsAsgCzAMQAtAC1AMUAggDCAIcAqwDG
AL4AvwC8AIwAmACaAJkApQCSAJwAjwCUAJUApwC5ANIAwADBAQYAAgEHAQgBCQEKAQsBDAENAQ4B
DwEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoBE5VTEwI
Z2x5cGgyNDMIZ2x5cGgyMDQIZ2x5cGgyMDUCSFQDREVMB3VuaUZFRkYHdW5pMjAwMgd1bmkyMDAz
B3VuaTIwMDQHdW5pMjAwNQd1bmkyMDA2B3VuaTIwMDkHdW5pMjAwQQd1bmkyMDBCB3VuaTMwMDAJ
YWZpaTYxNjY0B2FmaWkzMDEHdW5pNEUwMAd1bmk0RThDB3VuaTRFMDkHdW5pNTZEQgd1bmk0RTk0
B3VuaTUxNkQHdW5pNEUwMwd1bmk1MTZCB3VuaTRFNUQHdW5pNTM0MQd1bmkzMDA3B3VuaTU2RDcH
dW5pNzA2Qgd1bmk2QzM0B3VuaTY3MjgHdW5pOTFEMQd1bmk1NzFGB3VuaTAzQTcHdW5pNkEyQQd1
bmkwM0E1B3VuaTdFQjUAAAEAAQAAAAEAAAAMAMgASAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAA
BGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAE
YAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARg
AAAEYAAANGkAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIA
AEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAA
RzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABH
MgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcy
AABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIA
AEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAA
RzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABH
MgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcy
AABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIA
AEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAA
RzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABH
MgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcy
AABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIA
AEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAA
RzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABH
MgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcy
AABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIAAEcyAABHMgAARzIA
AEcyAABHMgAAAABqcGcg/9j/4AAQSkZJRgABAQABLAEsAAD/4QPQRXhpZgAATU0AKgAAAAgACgEP
AAIAAAAJAAAAhgEQAAIAAAAoAAAAkAESAAMAAAABAAEAAAEaAAUAAAABAAAAuAEbAAUAAAABAAAA
wAEoAAMAAAABAAIAAAExAAIAAAAGAAAAyAEyAAIAAAAUAAAAzodpAAQAAAABAAAA4oglAAQAAAAB
AAADTgAAAABNb3Rvcm9sYQAARFJPSURYIDIyNjIwMDAxZmZmODAwMDAwMTVkOGFmYTBjMDJlMDI2
AAAAASwAAAABAAABLAAAAAEyLjIuMQAyMDExOjA5OjI1IDIwOjM5OjQyAAAngpoABQAAAAEAAAK8
gp0ABQAAAAEAAALEiCIAAwAAAAEAAgAAiCcAAwAAAAEBHQAAkAAABwAAAAQwMjIwkAMAAgAAABQA
AALMkAQAAgAAABQAAALgkQEABwAAAAQCAQMBkQIABQAAAAEAAAL0kgEACgAAAAEAAAL8kgIABQAA
AAEAAAMEkgMACgAAAAEAAAMMkgQACgAAAAEAAAMUkgUABQAAAAEAAAMckgYABQAAAAEAAAMkkgcA
AwAAAAEAAgAAkggAAwAAAAEAEQAAkgkAAwAAAAEAEAAAkgoABQAAAAEAAAMskoYABwAAAAoAAAM0
oAAABwAAAAQwMTAwoAEAAwAAAAEAAQAAoAIABAAAAAEAAACYoAMABAAAAAEAAACgohUABQAAAAEA
AAM+ohcAAwAAAAEAAgAAowAABwAAAAEDAAAAowEABwAAAAEBAAAApAEAAwAAAAEAAQAApAIAAwAA
AAEAAAAApAMAAwAAAAEAAAAApAQABQAAAAEAAANGpAUAAwAAAAEAJgAApAYAAwAAAAEAAAAApAcA
AwAAAAEAAgAApAgAAwAAAAEAAAAApAkAAwAAAAEAAAAApAoAAwAAAAEAAAAApAwAAwAAAAEAAAAA
AAAAAAAANBUAAw06AAAADgAAAAUyMDExOjA5OjI1IDIwOjM5OjQyADIwMTE6MDk6MjUgMjA6Mzk6
NDIAAAAABAAAAAEAAAB9AAAAIAAAAF8AAAAgAAAADwAAAEAAAAAAAAAAAQAAAF8AAAAgAAAAAAAA
AAEAAAHxAAAAZEFTQ0lJAAAAIAAAAAEdAAAAAQAAAAAAAAABAAUAAQACAAAAAk4AAAAAAgAFAAAA
AwAAA5AAAwACAAAAAlcAAAAABAAFAAAAAwAAA6gAHwAFAAAAAQAAA8AAAAAAAAAAJQAAAAEAAAAY
AAAAAQAAEZQAAABkAAAAegAAAAEAAAAFAAAAAQAADawAAABkAAAAAAAAAAH/4QpxaHR0cDovL25z
LmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlI
enJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4Onht
cHRrPSJYTVAgQ29yZSA1LjQuMCI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5v
cmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0
PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6cGhvdG9z
aG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczpkYz0iaHR0cDov
L3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtcDpDcmVhdG9yVG9vbD0iMi4yLjEiIHhtcDpD
cmVhdGVEYXRlPSIyMDExLTA5LTI1VDIwOjM5OjQyIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxMS0wOS0y
NVQyMDozOTo0MiIgcGhvdG9zaG9wOkRhdGVDcmVhdGVkPSIyMDExLTA5LTI1VDIwOjM5OjQyIj4g
PGRjOnN1YmplY3Q+IDxyZGY6QmFnLz4gPC9kYzpzdWJqZWN0PiA8L3JkZjpEZXNjcmlwdGlvbj4g
PC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8P3hwYWNrZXQgZW5kPSJ3Ij8+AP/tAHhQaG90b3Nob3AgMy4w
ADhCSU0EBAAAAAAAPxwBWgADGyVHHAIAAAIAAhwCPwAGMjAzOTQyHAI+AAgyMDExMDkyNRwCNwAI
MjAxMTA5MjUcAjwABjIwMzk0MgA4QklNBCUAAAAAABDZKJBnCFFGGkrZXIAjoD7u/8AAEQgAoACY
AwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMF
BQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkq
NDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqi
o6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/E
AB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMR
BAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVG
R0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKz
tLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAgICAgICAgIC
AgICAgICBAMCAgICBQQEAwQGBQYGBgUGBgYHCQgGBwkHBgYICwgJCgoKCgoGCAsMCwoMCQoKCv/b
AEMBAgICAgICBQMDBQoHBgcKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK
CgoKCgoKCgoKCv/dAAQACv/aAAwDAQACEQMRAD8A2U+LViYI5ZbC7iUrs82Fd6l88gDOa1YPiroA
RZJRdFtoEqPHtKHoOK+WoLwPbSMWAVWBXY20o46H6fN+NT280pLKGSZwxch2z+POK/ZKvC2WSfLs
fAf2ziJKzPrOD4i+GpXb/SwkqIS8cvynB6EH/wCtW5F4r0KcKf7StnAG0iKQZ3e/Jr48hDJOzStG
4c7xMG4T2xzz6VpGVArui+WGYPhM5z7gf/Xrz63BsXJqlU+TNP7cVKKvHU+xYNZ06cHy761LKvKt
IOnTpnrVpdQtQEYXMID8FfOVsHtkD1r4yN0cZHyiQq3mPI3Uc4OPu1ONTuoFDRzTR7xwsczbeQSH
FcX+o9epTcnUSa6HRDiChNWcWfZwuIyEIZSWT92d3yn1qZmVTgtlzgqi9Wr46tfEWuR/LDqNw25D
tMsxbZn0zWxH428SwkKmqyvtICllDfN6H2965VwZmqk2pJrsaxzvDSkoq59XllBwpG4nOF/hPpTy
QpPBBzwef89a+U/+Fp+J7eTaZIzCQC8s1ucnPHY1rR/FzW7eF2uLG3lEm1dqXBDYBznB6Z/GvMr8
MZxF6w0OyOZ4Tl1mkfTSEkjfuG77rbv5UNJGvBGSf4WyRnHf61882vximRleTRnMRkIcm4Bwp9Oe
1asHxn0MsyS213EyyD/lmWBH1/SsJ5RjaCbdPY645hgpx92Zh/HmQyx6Fbn92jzsSM4GAvAA+vNf
Nkts5ACiPcWyW9OO/wBf8ivS/ip4607xRfaSmlO+LOOUztNwFc9Ae/6V5a+pKdxwokB2mNG5z3K/
3q+uyanU+ox51bU8fM26tXmT0Ow8FWzL4l0UEFZHulBVMHGcdM199QReWSQBtONvvgd6+Ffhtu1D
xrogit3ka3PmOJY+Bg9Tz/k192RLtYhQdpJyGbPU/wBK+a4rXNiox8juyyNRYa8mWFUANtJwvB3N
wp7Yp20sCGJUp82xfvEev40Ah8lSDgYP8PGacduRgjg556n6+1fK6tnpxuMUAE+vUqfX296fk/3J
Pz/+tSHqeDhmwT6H1H+TS+X/ANNZP8/hSasacp//0Pzxi1HV7MB3v5xGyiOUGb5No68dcntVpPE/
iK3LFr52Plguk2PkTHHpyfxr9K7v4G+ArxUSHSI7R4w3zqxO7PsTiuau/wBnHwTIATFKkrEnz+GL
DHQjOK+1WcYm941NPxPEeFw09eX8D4GHxB8R2wTZJFJEpQGLyeXJ7DnHHviti3+KWrmJYm062hiE
jCeCaQ7pMH5t3Qgntivri+/Ze8PhFe1vWiUEOBLHvzj19/zrlrv9lieUie21KNY3AJhmjwGHfPU4
P1FdOG4krQvKUrvoTUyzLakbOFmeEQ/FRxvM+nEORsWO05AAPc56/hWk/wAVdNZ0tZNMu1crjzEb
gYB/rXolx+y54ii2i0vIpWBYzFWCK6novQ8D161zd9+zb46tmZ0srMrINjSQ3HAAGeO/t/WumrxV
WXLG2r6nIsiwEXexjaV8U9BIMDrNCyt8jSwnOehB59uOa2v+FgaEj5E/yvHlj0IXPcf54rlZ/gL4
6ihmlbSZyesDJjDYGcZ6rx7Gudm+GXje1jTdoGoFdjGV1hOI8DlW7/iPyrpjxXXlJOCVttXuc1Th
+g5OUdEz1zT/ABlo11MUlvbRQyNIxaTamBz3I/vVqf27pVwjhby2YR4Eh84bQMdV6lsAf/Xr53m8
E+JI4/Nl0i4SJogSVhL8DqTkcZqhLoGrCNxHbXweOLe6/OnB/u+tddTixqryShbzMlw03NuMz6Y/
tGIhAtxEYhgoPMGWz+X86khvrWd1wXEm7BXnsefbA+tfLX2TU4V4e+R3j3xGSaU5AOORmi1uvFFu
5Fvf6gPKjYK7yH5UHUDI/nzTfEWE5W+W7H/q3VhBy5rs9x1N45NemgjA3llOFwMeuc/0ontPM2sG
Zpeo2cZ/3QK5DwUL2+N9fX85up5J1DM7ZKADvxkZ9sV6SbQt5flzRsDhWSFskD1zxtwK6acp14+0
jszz8RKrRqezk720PSPgtZiXxpbnzGVo7CQkpn5sY4Of85r7aUj+6QMcA/ez6n/9XNfJXwVtm/4S
WZkVSItMcMxXPU8H1FfWkG9gfNbdgbgeAFwPxr4DiCEqmPcn0R9Rl1nh1IlByQuOduQV6sM/zp5y
eQF6kE+lIoGCcNuIyGPb3H1pygZ7ckk7uh/+vXz0rM9LfUTO3DZycbQp5wfU+1L5sn963/79/wD1
6c4BHyggYGdzc5z6elR7D7f98Uloax2P/9H3yO+hctiaMiNgHO4cH+dTx3cMhkRHXP3Wb9e9fDlt
4i1WLEkN9eqPNzHJufgjtycda1U8b+Jbdmxqt0BOwGZJBlTnk8j9M1+hVOE8Ytep8ks7oSV3ofaJ
kUq52jGSR659R7VKjK0beWBsjIBCevoeT1+lfIFr8RPFoYRnUGlAjYsslvuyueOmA36VvQfE7xFH
KkhaDe+FmYwkfKB0xWE+FcfHQt5thKj0Z9QnYy70U8Y37exx0pVjXg4zjhj2GemM/rXznbfFvVk8
2OW0tpf3ofKyMOtbMHxdZ5kWXTCiKwDFJMiTjIBzj+dcNTIs0s2oXNHmWHaUufQ93ZVGCwRy4Cn5
cYB6j/IoWCLJYojEMTsZQRk145F8XtL+UT214kjD5U2hgCffNadr8V/DkzbZJZ4HIAdpY9oD+lcF
bIMdClrTkranZDG4WpD4z0iTTrCVSstla537ztt12nP4VmXPhjRLt4jPpVpJ5TrIQ1ug3HkYAA7b
qxLf4g+FZGKNqkShZAHaVWBGR6YrTPjLw+2149Ut5EdDtbzgGJ6cA45GPXpXM8JjnpyPX1J56Kmm
pmXN8NfB1xvE2h6cJmJfzI4x8zE5/M96wr34NeAp0kE2hwK93w8YZh35zjj8q9Bt9b0yQgpe2z7g
GAEy7snpwKty39o0UrCcq6rvYxsM57Fc5rK+PUHBo6Z1eaSsz4B1zw5pXhvxLrun6La/ZbCC5KhV
k3bQBk5JrOjwWDNkqv8Ad7dCOmP61s+K7qPUPFGtzSBHQ3zjCSc5HXcMCsuMxqwygfKkJubj656r
9K/V8qhP6lDm3sfJYyf+2SXmfQnwQTzNU1qUZ2raIhdeuTzjPFfTkSfuy7M5ycKrsM49+OlfPXwQ
jPlaySGH71H3IykYAAx0r6FQYOT05+70r894hqNZjKMT6TL9KFicZAO4seKACc43AhSRt74pBwAT
ux0FOVgAeTyMEeleC1c9DYXG4AY25JBLd6PJH+z+f/1qMHncd56jc2QvcEe9G9/77f8AfH/1qEgP
/9L40T4l6bkCTSbmEg5C7vlBJ7ZPap4/iPoBBtpvtzsZNzedCNuOvUd62br9mr4hQSy+Xp63USyk
TNHMPMYHpjPb8qwrn4D/ABDtZYYm0Qlc5kct9wZxk46gdO1fpdPinEOpyNrXXc+VlkWD59WzpIPi
F4c/dn7XJEq4RiVxtzwMDrWyvjPQJ0LxarbEJjcWzkEnHNeSzfCfxpb3E0N1oF+phlAdoYf9Z3+X
PaubuPBuuRK8R07U0csN4ks2GcHnt2ralxQlbnV23YwfDWDtzKTR9HRa9pkrZgvreUM3MvnDHA96
tw6tbvGrR3FrscnJWZQTjjPNfLA0nVIZrhprW4QW6BkBU8jOcgenNMlbUY/uS3KIcELtYbe/Hpmu
t8UUYqT5NjOpw2uS0J3XmfWEl6EjcyOowx8xVxwmM46Z4PcUgvNxjbCsvlqJRyzBSQARwODXyg+q
a8JR5d9qTyKfv/aGYjOOCM/7taX/AAlXiiAMJNVm8qXaZFmxuBGRuJPO3Hau3DcUYCSXOmL/AFfx
VOyTTR9Stf8AmOwdVXy22cMCvHf8qgmu5JjGJAfkjIjcMcJk8FSP1/nXzmnjvxIqDFwuPL/df6OP
mBHDH6j2p9v8RfEQVo7ryrpAM+Z5ZGB2Ax3z+lU89y6pTk5pJnF/ZOY06zcWtD6PTUJbc5SaVJm6
yQyEE4zio5Na1S0WWWHUtQE5jcwI0xZScZBIPbPFeBxfEa+KFnsIyNoLSpIckjjjP+7RL8S3+wzW
72NxJPID5MqyD7xO0ZPXgVzVcflVaLStdmscDmUfebOysbifUnmv7yaRp2nbzijDO8HpgV1tq5eR
A2xF8wEl14OOcenNcV4aZho9m7pt3JvYbdzDJ+6f7ze9dZayqxQEMFPGHXjJ/SvTox5aScdLHLWj
KTu90fXXwThSPRNRlV9yXN6HK8cY4xken4V7uFHOOxIIboT7V498Gokg8HwOI0je8uGHydO9exgK
BjK7E4Vd3NfkWc1HWx035n12BT9hG+4i4wwOSGGOeufSnbAMHkYwNvvQEIGeD0zvbgD2qRSPvNlx
/D6KR3ry3ud9mJkZAZto7/7Xv9Kf+5/56J+VN2q27eA2CPm77T0BpPJt/wDnkKrmCzP/0/oXLKMB
uWTLuerE9c/0qNljHlLglem7blga+UI/jZ4jgiP2i1tLgs+9wnAB9F9q3oPjpO8CCTRwDLJmVoph
yo6qOnNfWTyXHwrXdK/mfPLFYScLuR9J+TCHRmVbgqGG9lzyfQ1WextJnXzbWxlxGdoMK9ffivD7
f476MreXc6TfQRiIny7dQ3OeM/StmH40+FJdjuLm2R4mKB4+49fTHv1rGWU4tTcXTkaRxNJ1LJ3R
6Hc+FfDl6V8/RdNdVfKh7UKzfkOn41iXfwy8ETEiTw3pu5/mIVeFHdjVG1+K/gycDydVZXcKCrrj
5ie2RW3B488MXU8qLqtkixuECNMMsSev+TXJLDV6T9nyS+46pVYPRSORuPgX8Npwd2heWsj73EMh
HmMVxnPXGKxX/Zs+HcpysNyqkFcrJkp7DOa9gHiPSLlmgtb61l2nBdZB8oPPHbitO11W1lUxxSx5
i/1vzAhgP7vrmudvEJe9szWMny2iz5qv/wBl7wZLNJLBeahbs0agF14DHOfwFc1P+yhZhI0t9djI
Rh5byR/N37fX9K+xDcK3yt5TM0jAI0gwrAd6d8u5wcBhyuxeAT1xW0q05SSfYws5rc+Frn9lPWY1
zZ6vYklXYhYTjIHb0z+lcD4l/Zo8T6Lpl1eySW11FaDzxLC2CABk5FfpaZxCQqKC7qC4Rc4JHQ15
t8VLqK38DeIZpJljdrJweuTu4wAPWnSqVJ149EmjWq5Rg7dj8/dLAtbWGCSQu8a4Vu4OeQe3H0rc
gkd5kVU2R7flJU8H+9j0rD3RAeX8o348s92YcnP0Na1pO5cMxUsjqc8rkk4r9Oo831TR6WZ8eqft
Z363PvT4ZQeT4Q0yMK26QGSIDrKuOZFHpXpy9AoA+XG1mUZ/GuN8E20UPhjSs5JNkhiXd90kZwMV
2SBgMEAAjO1eoNflmLftK8peZ9fRuqaTJOg452nd+NPHoCAx5zu5GaaCwG0rt3An5uppSFXcyAEg
4BPWuGx0XHBcblZRz12+3rSbI/7o/wA/jSM/K85Zjj5fenbH/wBunYND/9T5O/tvSpli3XtmylCT
suBkYOP8+1aEF9ayExrcW4VRuVvOGOnbHrXzk/hvVrQljbywsJBEzMpy6nso55PvVSPTbmI+VumS
RWYruZ16chQM1+pRz5qneSPl3w5Fxt7Q+nhJDMFdZI/kcjO446cCllZ/lQwSeQ+C1wijb9SPr/6F
XzYb3V7cRiG6u4gZlDGSQ/OT04q6Nf12F3gj1O63bNgi8z5Qw5rpp57SdpSRyyyisrKDPopJeqhR
tYMB5q8gHrt46/yq4Gc+W+1YmVflRcJhRzuP19fXtXz1F4v8QoMG5DIucIV3BR9e2Pera+PfESL5
cjwup5CPDktjpnPOK7lm+X1oa7+hlHJseuZJ7+Z779qnUEpcSIemRM3I/DjvVyLWdXtwsn9p6gnl
42eXdEfp9K8EtfiJdKAlzZCfznKMYpNojU9MepPWtGPx/wCRkS2MvlkhvM8zeACMBR03E/hXBOvl
Uqmtr+RCwmaUtF0Pf7fx14it2WKLVbqNck7ZeeOOd3/Aa2Ivit4wtSim/iuEjjCq5jIdCTy30xxX
zePiHpwkVJbC9JAyzLj5fXPPQUw+OLC4nbMzRpsAj3tgH1H4Vt7PIqkrNJuxVOWZw92N7H1fafGz
xNbbt6WdwpAKqmVyR3z7/QVzPj74zXeuaBNpN3YQQy3hwhRCw3c85wO31rw+38U6MyrsvlcO+z5f
vA46/SsrXta029htba1uoLid5jsVJssoxjpxXHLC5VKV4WUuh2fWMY5crVmXIrrLZl2eYnzI27jP
t9a3tGkSUKZQ7PNdKqCOQcAsOua4wK48rfHvU5CvJ8ucD0rs/CkTTanp0McqIn2pS6SxhxtLDpnn
PriuiviZUcPZanLDD81S97H6beH7dYNK0yL5JQtnEqRn5MZQcgiuiZh9xdzLngtnqPesbTQEtbaL
7yLAgV06cKP0rYDZK7mYqxIT5uOBX5lNNO76n0lNWih2GXYWwQxHO7gH6/w5+lO+8RtyQPve1KFx
gheQBzSZfa3IAAy2e/t9axasbdRkajzSzbtyrlG7Af41Y80/89G/z+NQxlWHzOiqflRFb+L3FS+T
7x/980jQ/9X1i78IeFZy3n6FpcpdgGY268OPTFY958L/AAHdbXm8NWIcAfMi4Ixx2rwyD9pXRNim
fTNQhhRdks/lhtzD+LGa6Oz/AGivB021Q16gJC5MO0cdz7V9LSwONVLnSZ5cVN01KMrnVN8DPhtO
N02hsm2UlVRvu+mM56Vz9z+zl4FnXZbrfQ5Yudqghj254IxW/Z/G3wJdb8atDGc4CyNhh789q2bL
4neErvaia/p5kD7nRbjbtA9+lY1PrcZWaZpTuvekeRXP7K/hyeKaO21u7s1uZFlcNahiHB6f7Snv
6VzM/wCyYN8lxb6+kcpY+XHJkqOfp0r6ntfFuhXRVrbV7F+pDJdK3yjg556Vsx6rYTOqwzwOGPyB
ZARgdSf7o+tTLF4qD5VoaKfLLmTPh26/ZR1iF3eLVrfDhjG23IyF449CT7cVys37MfjO0Id0Mu2I
ELBMGCuODjIH4elfo0Lm3f700e0OANsmcev6VZSVRwzGONWZMtIH3H2qVjMQoXepkqtRyvbqfl/f
fs+ePIFMn9lTtApYZ8vc2OxOCOK5i7+EHjW1V1n0K6UbWcNDCxOQM4HHfoK/Wry4txDfMWQeZ83X
0BxmpAsJV12RssmA++MfL2PXt+VCxFW/PL8C5OC0tqfjjcfDnxXFJBGdLu9zEeYn2dkKHGfn47d+
RWVB4a1TRtTjGqWYgOGKyOpC/wDAfXNfs6bWzdXWSGCQP8xzGvzZ98V8YftOpp9pc+HrS0sLaBij
M8iL8xA7HFaYbE1auLikuoVeatSemx8utcvOixpwFGPnXoCMEex9+a7T4bx/a/FGi2rI7rBq0bjZ
ySo7H29fWvPFm2Fs/ebHPcf5/GvYfglDHfeN9LjaMM0DGRgMjqeOfWvqMVVlDDNPseNQpO/ofpZb
KRFGHQF9i7127dvHQfStLBI+Un5gFGOuM8A+1VUBYgsTjAO5sYq2JCvOSPmHHHI55FfDOfMz2W7E
pO4c9QuT9fams2CBjB2gqR1zSb/unA45O3t7H3peByRkHkD+7WI1qMIj7KRKzfN6Ajv6807bJ6r+
TUBVI3DDOzlV64z9D/jT/KuP7sf/AH7H+NDYXR//1vgKaP8AdAIsjQuMDZknn8OlMaLYhRUeQ/KD
nOB+NeZpqN/GgUzXK5PBaQ4YgfXH5ZqdNX1k+VMb+5eIPtEa/wAJHvjHFfoeGzKlJO+iXc8D6hi4
vR6HfxK7hk8vfKCxCq2wqO/X+Gp1aZU/hUEjc6Rn5s9z12iuHXX9XJ3CZXCgBt0KY4+ozk96tL4l
vSmJTbSE5G5uA2D6Ait547C1JxXQc6OITO4tdSu7UIIJZLdgrBGikORk857ba3YPF2v2fnNBqV5D
PLjdIlwcnPUY6Yry068rsJZLZWRX5jjYqT7jHYds9anj8RREhpElkfdiRXwu76duPSpr4jLa0/es
OCxl9ND122+JXjOHb/xOrwQo4V23DLnPHUHtXU6f8cfHtv01CMIGyhkhBY8YGe36c14J/wAJFaYJ
YyxRlhhdoO0gY59c/pSQa3p8jbEuOWk2hdu3APQnPb1PQetN08FUpfCrGlSWIhPla1PqLTf2iPGs
TMTDpc5Cx7xJlN2M/mfyro7H9pnWVy15pMbs8is6xXGwoMcgZ4YH3r49/tK3dnaNyUViQdwAIHcf
7PoelWV1O0dcxSKyKCTt9R2+v41i6OXyVmiXXxHM5SWh9z2v7SumyIputJvrcgkhEkRwo7c+/Wvn
f4xfEyx8fatp9zp0cqi0tNknmLyrZ6fWvKlvIvKD7ty5DdsrxnBrEM8Us90IpIpSsvzFW9e3HQj3
rGnQwdOftKcbMv63Juaasa0cwZ8MwLYxtLDK4H1r6H/Z4tlm8aLKqybo7TKSM3y4B64r5nUhegI6
4baM/WvrD9lqDzfFOpMVebyNP3/e+XB4A7YOfrVYtOphptMypQnzc3Q/QWFcpJyx4HPHb2xVhWkI
bJG5lyGdQSRjp/s4qGLaqgZ/eHgJU21jwgLHn7vrXx7j7x26XBXVmCptyW+cM23Ge/T5v0qZQQDn
qGI+Xv8A5+lR9FBUKxJxnuPXP41JnG3jPPOPWoktbF3Qp5XtzwQe/NN8sf3E/On/ADBsrnnPTnNO
3S/3JP8Avj/61RZkH//X4Cf9lzw/MHFvfXdtPEw8g3GHx+fGa5e7/ZUDF3ttTSRQ3miN2Zcv0zxx
X2zwxyOcYAP97HpTkjGcnkhckV0+3xKdujOKnOpy8smfntefsreJoWuPsF5bzSoRL+9yoOcApnB4
x2AH1rAvP2avGiyyyQWFtPbQuMJFIdpx2xtzk1+lbGPcsSIQxXdv3dMfh3qZU8sjZ8m/76MvUjv9
a671J09Watypr3dWflPe/AHx5ZPORo8pjwroU3MVBHIAAH4c1zVz8JfGNmHjbQ7+Q+YuwtasCzEc
+uMfjX7BQwJx3YMOXxyMc9qkaztRmTEcjBshmXdgkY6UqlWpGk1HfoT7VvWSPxhl8Da/bfurnTL5
HGC5Fq21Rg9SB1J9vxrOk8MX9tuWSyu03qQq/Zz0PcZ5zmv2gk0HS5o8PZ2Dbn35lhG7IzkHjoQf
Wsq48HeGLrKSaFYMWOA5h6YOcD2rrVSUIKV3522uNSTeiPxklsJ4mNu8VyCzJGzTR7SAR0B4GB+N
Qx6dcwqy4zG1wEQbuWJ6dOPx/Sv2JuvhR4CvdzzeG9MaRx8z/ZRnpgY9xWRdfBH4eXJ8pdDSGDcC
jLgEHFaU8XGMeXl1HKrBQS+8/IiaK7tvMwzxR4cllmKq+3Abv1+72qbR1aKG6kdpCtzOWzuXcjHq
R6j61+pOp/s6eAJLaSVrORDFAzDDDae/T/69fnT4s0ay0fXtTsrMxtb20zLGwXhkBxg+9ejg8TGc
XGRhUlCvTdlYyIJizZwCq/KWC9Tx/Ovtf9lW2G3W9QhVVlbCSCb+HaeOtfDyGVG3QhWwx8tdxXcc
8YGO1foJ+yhHDJoOr3haIsbkJJLt+ZZB1GCKMROUqTtsJXguVbH2PHyd2PmZcZXsTzVhM4UdBjJ2
5+b3P979Kh2nC7mOUcsd3fNWEGCQ/DImVIbnFfOWd7iVug1Byfu7cZAZuOv86dknr0BP3v8A61G7
cRtILNkhNvUD+tL0LZy2CMUOD3GO4wcbumQe+fY03Mnrcf8Aff8A9engMx54APLL6dgKftX1lqLM
D//Q93j6BSSo604BmJ2hSN2co3FVULAsoJAPJJ64FWBv4Ck7ZFzu7kA9h/8Aqrps09TkaJsDbn0P
G3qT6Va2DG5A2HGWJ6g/X/61VSwJVicKRtDIv5fpVlXbgbyFQ4HuAPSt4y6Cu3uOAAVOquuAv1NT
R5Azgr6ll7e3v+FQpkqSCxzwp3ZwTyD07U9XJ4JkBXoH6qfb/wDVWhmTbOOF3qTg7W59cf41M2Oc
hpAxxIUXkDt/u/rUIJAGAUV84K929alTYNxIY/PsAZtuDWrk3GwnsNA3NhHQYVWOerZ/uj2pxVV4
GTz8u75s0JtVhtCnA+YN2A96c2CFLHaAM5bjAzit4JLUlR5mZerzLBpGplgNsNmxf1C4Oce9fjl4
klFxq2pTqQWa/mKjoSm84yD3xX63/ECdrXwrq8u0BfsEoZmbBUhfavx1vpGlupGUu3mTFmEnO0En
v6V14NWUmne45R9xyQ2HLMjA/NvyrN0Q561+lP7NFsbbwQbh7cD7VqLESIvDuB94f3q/NeKTLDAX
cASof7rjoK/Vn4FabFZeANJMNvJah0VWRpMjPt/+qt8XpQ0J2iz2+OTCrywDjONvJOT1qUgpxjBc
bgR1x6Z7VGH2AHAHGVbb96pI8lTuBDMcYPbNeG4miVkLjblz945COi+vb6etLywPbk7h06GnfMcK
SM5PKdNtIAoyMnA/U1ICggLlSCgPG71o80+iUbccAfK3IH1o8v8A2f0/+vWZXKj/2QAAAABqcGcg
/9j/4AAQSkZJRgABAQAAAQABAAD/4QPHRXhpZgAATU0AKgAAAAgACgEPAAIAAAAJAAAAhgEQAAIA
AAAoAAAAjwESAAMAAAABAAYAAAEaAAUAAAABAAAAtwEbAAUAAAABAAAAvwEoAAMAAAABAAIAAAEx
AAIAAAAGAAAAxwEyAAIAAAAUAAAAzYdpAAQAAAABAAAA4YglAAQAAAABAAADSQAAAABNb3Rvcm9s
YQBEUk9JRFggMjI2MjAwMDFmZmY4MDAwMDAxNWQ4YWZhMGMwMmUwMjYAAAABLAAAAAEAAAEsAAAA
ATIuMi4xADIwMTE6MDk6MjUgMjA6Mzk6NDIAACeCmgAFAAAAAQAAAreCnQAFAAAAAQAAAr+IIgAD
AAAAAQACAACIJwADAAAAAQEdAACQAAAHAAAABDAyMjCQAwACAAAAFAAAAseQBAACAAAAFAAAAtuR
AQAHAAAABAIBAwGRAgAFAAAAAQAAAu+SAQAKAAAAAQAAAveSAgAFAAAAAQAAAv+SAwAKAAAAAQAA
AweSBAAKAAAAAQAAAw+SBQAFAAAAAQAAAxeSBgAFAAAAAQAAAx+SBwADAAAAAQACAACSCAADAAAA
AQARAACSCQADAAAAAQAQAACSCgAFAAAAAQAAAyeShgAHAAAACgAAAy+gAAAHAAAABDAxMDCgAQAD
AAAAAQABAACgAgAEAAAAAQAAAKCgAwAEAAAAAQAAAJiiFQAFAAAAAQAAAzmiFwADAAAAAQACAACj
AAAHAAAAAQMAAACjAQAHAAAAAQEAAACkAQADAAAAAQABAACkAgADAAAAAQAAAACkAwADAAAAAQAA
AACkBAAFAAAAAQAAA0GkBQADAAAAAQAmAACkBgADAAAAAQAAAACkBwADAAAAAQACAACkCAADAAAA
AQAAAACkCQADAAAAAQAAAACkCgADAAAAAQAAAACkDAADAAAAAQAAAAAAADQVAAMNOgAAAA4AAAAF
MjAxMTowOToyNSAyMDozOTo0MgAyMDExOjA5OjI1IDIwOjM5OjQyAAAAAAQAAAABAAAAfQAAACAA
AABfAAAAIAAAAA8AAABAAAAAAAAAAAEAAABfAAAAIAAAAAAAAAABAAAB8QAAAGRBU0NJSQAAACAA
AAABHQAAAAEAAAAAAAAAAQAFAAEAAgAAAAJOAAAAAAIABQAAAAMAAAOHAAMAAgAAAAJXAAAAAAQA
BQAAAAMAAAOfAB8ABQAAAAEAAAO3AAAAJQAAAAEAAAAYAAAAAQAAEZQAAABkAAAAegAAAAEAAAAF
AAAAAQAADawAAABkAAAAAAAAAAH/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a
HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCACYAKADASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDqM0tA
446+maO1BAdetLjvSUZpjF6Ue3pSUpNAg9qBwMYpBTs9j2oGA7ACkI96P50dRkimAgJ6cZ9aXOAR
7cEUdOaOM9KAD+EetA6c5zSkUUCDijnOaM80fjQAUdDSUfhTELx17UCk6UvamMYD3xS9OaYrZoDE
89qzEO+lLn86bnijdg4qlqMd7UUgYcg+tJmgB2fagUCjt6ikAv60d+KTPpRnmnYYvU4zQO1IR3HS
g9xnj1oEO6Uh+tHv/Kg8mgBCSBkUcdaCfm6UDrmmAufyoPHPftRn3oz24NMQdev50vfik6+31oyO
nemB54mpXZP+vYH61J/bF/EVP2jcRxg1RRec+1NmHHTntXockexzKUrmtH4jv1z8yH8Ksp4ju85K
xn8K52NcZyeanj4yc9sjFT7KF9gdRo6IeJZh1gX8DUo8SjP+oP4muXyeh6UuSVHt3p+wgw9o0dYv
iS3IJMTqPepV8RWLAZZkJ9q44uRxk4IprPgdeKl4aDD2rO4XWrJsYlx7nt9anTUrRl/1yfXNeeFm
BBB4NI0hzg5P41Dwy7lqq2ekpdwsOJU46EMKd5yHo647815ebjaMZYHrkGhb6VSSsrYPGM1m8O49
SlO56kHHAyM+madnHFeVDWLuPASeVgD3NWF8SahEoAm3fWolRZalc9NDD0o3Aj3rzhPFt+oBJU88
mpl8b3i9Yo2we9CpSC56Fn160D0yT9a4RPHI4aW356YHNWR46tgp3wNnHIHWl7NjOzJHrig81y6e
MtPfaG8xfXjkVch8T6bIqt5wG4+tHKw1Kh8Lhfu3DAH2rN1PQ5LKAzCYPzjG3mu1IytYfiJj9kUA
HJarjUm5LUmSSVzjjDcBcqvP1qn/AGl5UrRyRsGX361sysVj681yzuX1CRuD8/4V11bwV0YU4871
Ons7a7vLdJ4rdmjb0pz2N3EuGt3wB6fpXVeHYwujwLjaccCtOVQI2yOevNcv1ialY1dOJ5i8phcp
Irbs9Mc0w3kGQC4/GtW5AkuJGIG7ecHFYGsrHmMKuGB5NdjlJR5mYpXlYueej5CtkikP3eOPerHg
2ziudQIkTcFGTuruX0PT3Vg1smT7Yrm+sGnsvM84dj06nHWoR1Az04rpPEWlW1tJGkK7CR1rnrm1
WOBnRyGUHmtlK65hcqTsRuApyDTGOe1V7Npbi4SHPXrxXaDwW8kMbpcjJXkEVzurG+pooM49iRkd
6jzmtrWfD02lQiV5VbnGBWG25VLbDwKvRq6G42BmI/8ArUzJLbj+dRi4VjgoyjPfvVy3sLm4i3xx
Flx1A4qWrFK/Ug3EdSc/zpSx/H+VTtZzJy0T5/3TioDE6nJBHOOaA1Pbs9q57xC5LQgk4yeK6DrX
M6+Ve7RSMYB71lQ1mkTUfusxZvusc8Y61y8eGuD0BLEZP1rqLrCW7nGeDxXM2qj7SpwCd3Q/XrXZ
iWkrGOG3Z6xoy7NLgXHzbMnNWbl8W7n0U02yQx2kS5Jwo6n2puo8WUpJAABrz1rLU3clY4uU72Y/
xE5Nc/q7DzowcdOa3pF2tjIPqfWud1dx9u2AcKOa9OqrUzlp6z0On8DIDdTP/sjqK7tvmwRwfSuM
8CqPKnYHPGM5rsucdK812Ou5x3iSTffgY4VfWuavnAtZDkjHpW9rrb9TkwQQo7dzXN6nuSE8DB71
3xS9lcwk/fsV9IQtqMWG/iGB6+1exJgRAAYwO9eS+H4w+qwKB/EDyK9bGNgwMcdK4ZanQ9TkvGTg
QQpn7zcflXESEbTnpXWeM5c3UKHIIBOD3rkZiBGT2roirQIlZsoqu+Q8cEntnFeqeEYUGjICFOT6
V5ZCQ0nAbHqK9d8NJs0SAj7pHXNYzLkajW8DDHlIfbFQNpVm5GYEx/u1bHIpcds0rCQw9M965XXM
vqBx93ABFdURkH17VyepHdfykdjWuFjeoZVX7pj6jKyWrgY+739KwtNUG/hBxgkVs6rk2bdBWZoq
h9WtxkffHGOtb4lpySIw6tc9ahAWFAM/dHWqerORp0oGemMVeU/KM/hWXrrlbEgdScY71w005SRs
9Is5aUEYGM/Sub1Qg3zdO3NdFJx1I+ma5i++bUJRjAzjGa9PEWUDnoxXMd94JiZdLdiBln9a6d+B
gZzisDwcNuiKe27t3rdncLGSOeOleY3qdVtThdTcvfSkHq2KwNWz5EYB/irZuG33MuTnLk5rF1U7
vLHbPOa720qZzLWZa8JxbtYiz93PpXqIztxx9K828Fr5mqAHHGT716Sx4I5IPoK4ZbnUzz/xbMW1
VeOiYxmuYmyEJI4re8TS79Yk9MAZrAuWIgYjP4V1RT5SHbmK8SlnAX+9jg17DoSeXo9spGDsGa8i
shvmQAYywr2LT02afAB/dGa5ZamjZd5GT/OjJIzS4/TtRnjofwoJIn+6eR9a4+7fN3Iwx1I+tddK
f3bZOODXHTYaRieMkmujBRvJswr/AAmLrk/+hgL3IGaZ4WVW1eEFe/Wna4CIIgh53c1Y8HRF9XQk
Y+Uk4qsVLUdBJR0PSQOMdMDtWNr7f6Oq55LcVsA8Vha+zAxAHg/pXPQT50VUejOekAORj8O1cnOD
9skPUhzXVzsAjEnA2muVK5nJ7Fq7cU3Yzw+56j4YTboUA5APOD2rRvMpbSOo6LVbRY9uk2w6HZ3p
+qMyafKQCcqcYrzranQ2cO/LsfUmsTV3zIiDIxzx3rbPUZI56VgaoQb4gdgK9KcbQOemrz1Ok8Co
WupiRjjrXePwjDnGK4zwGp/0hmHJGAa7CclYWYHoOtefP4jpa10PMdZfdqk3JI3flWXd/wCrx2Jr
Qv28y8kYrhixzWZdn5QD1B6V039y5OnMP0xd95Eg6lhxXslqAtug5+4BzXkOgp5mqQAA8OOa9ijH
7vnqBXK20Wxw7ego/QGkzzQTz+NFySG4bbBIep21xz/l6811l822zk56DNcm2MAkdfWuvBp3ZzYh
6IwdcbmNcc/eGK1vBKbr53z0HTHSsPW3H2mMAnBXAGOldJ4Hj2vK7cDGBRiXdmtFWgdvwACfyrnN
efNygAPC966MkAZxkVy2tMTfHJwcDissOrzFUfumNdMVt5G9Ac1zEG5rhFKhsnqa6PUSFs5SeeKw
NOQNdx4HJcDFdGJasicP8LZ63Yp5djAuTgIKq66+3S5W6H61oRArGgyOFFZPiNtunYJADN1xXHTV
2rmzascix9OnTpWBqDZvW9O1bxXlcHC55rnbrLXkpUDO7jFd9eXumFFWkd74HQLYzuFKhmHBPNdB
fvss5nJ6KayfCCBdI3Du3er2tSeXptwQTnYeK896yOk81mffIWzyxznFUrrICg5x1FWiQW/nVS8I
83b6LXVNrlM18RqeFYzJrEPy8Z6k16wrce/SvMfBsZOqxsQSoGa9MBzz0z2rj3NXuP49eaMigep4
oJ5PegRnauxWwfgEngCuV3MSQRjA5z3rpdcYfY8E/wAWMetcuz/McDkDvXoYVJQbOSq3sc7q3z3x
OeABjnpXaeCYh9idyevHNcRenffSDA64A7GvQvCEeNJHYk88Vz1tZM6IfAkdAcYHFcjq7n+0pMY4
wOlddIcKSB+VcXqRL38vG35sVWF+MzrfCZOrN/oL88E9jWfoKs+q26KpPzA49PerGsH/AEPameGA
5pPC6F9bgAb8PWrxOjDD6RPU1ztAJ+77VgeKHJtYUGMFsit4D5eDXN+J2UPCMkdTiuelbmRcvhOc
Pyqckniubk+e5ZsnlsdeldHK2I2I6YPWuZhO6Q46k+nvXVXv0IoK9z1TwyNuhQKc80eJJNmjzcdR
irWiR7NHtlJ525rL8XSbdLOD1YdK5Iq8jbqcEGwRgcj2qldH/SWz2x/KrygHBHY+tZ1wf9Kk3E4D
cYrpqaoiOsjrPA8Za/eTbkgY5r0PB2gg/nXD+Bo8ea5BwBxnrXbg1wydma7DuKD7mk6HNHfPSi4j
H14r5MYJ4LZOOtc3IyDOR/iaKK9TDfAcdbc5mZvMuZAemTwPSvTvDMYj0eFgclh6UUVx1d2zpWyN
WU4U8Z46VxF2+64kY5+9yfxoorTC/EZV9jE1k/uIR6tVjwahbWozg4XJx70UU8VpIqgvdPTOp7fS
uS8SENfIvPyr0NFFZUIrnQ5v3Tn7nC27jcPumufsx5lyuc5J7dqKK2rvUWH6nsWnx7dOgXGMIPrX
OeMmH2SJc5UvyBRRXJBtSLu9TjQo4PQZrLmIMzY9aKK2q7XFT3ueh+CV22UjYyzNjNdZ0oorle5d
9R2fSm554FFFBR//2QAA
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411534</attachid>
            <date>2020-10-15 22:09:38 -0700</date>
            <delta_ts>2020-10-16 01:00:00 -0700</delta_ts>
            <desc>Needs COLR test</desc>
            <filename>bug-217506-20201015220937.patch</filename>
            <type>text/plain</type>
            <size>79854</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGIwZGJhY2I1NTcyMjIz
OTE4NzU4NzUyYzFkYjU2NWZlMGEyZGY4NS4uMjllOWRjYzJlZjg5OTEwYzcxYjQzY2EzMjRlNjZl
ZDM2NjBjYjdkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIwLTEwLTE1ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBb
R1BVIFByb2Nlc3NdIFBlcmZvcm0gaW1hZ2UgZGVjb2Rpbmcgb2YgY29sb3IgZm9udHMgaW4gdGhl
IFdlYiBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTc1MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0OiBmYXN0L3RleHQvY2FudmFzLXNiaXguaHRtbAorCisgICAgICAgICogSGVhZGVy
cy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybUFwcGxlV2luLmNtYWtlOgorICAgICAgICAqIFBs
YXRmb3JtV2luQ2Fpcm8uY21ha2U6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2oveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9XZWJDb3JlLnhjc2NoZW1lOgorICAg
ICAgICAqIHBsYXRmb3JtL0ZyZWVUeXBlLmNtYWtlOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oOiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3
R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OmJlZ2luTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmVu
ZExheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpkcmF3R2x5cGhzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpkcmF3SW1hZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6Y3JlYXRlSW50ZXJuYWxDb250ZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OkRy
YXdHbHlwaHNSZWNvcmRlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ds
eXBoc1JlY29yZGVyOjpwcmVwYXJlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OmNvbmNsdWRlSW50ZXJuYWxDb250ZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnVw
ZGF0ZUNUTSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29y
ZGVyOjp1cGRhdGVGaWxsQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRy
YXdHbHlwaHNSZWNvcmRlcjo6cmVjb3JkQmVnaW5MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpyZWNvcmRFbmRMYXllcik6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Y29tcHV0ZUFkdmFuY2VzRnJvbVBvc2l0aW9ucyk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpyZWNvcmRE
cmF3R2x5cGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVj
b3JkZXI6OnJlY29yZERyYXdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
RHJhd0dseXBoc1JlY29yZGVyOjpkcmF3R2x5cGhzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNv
cmRlcjo6RHJhd0dseXBoc1JlY29yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpEcmF3R2x5cGhzUmVjb3JkZXI6OmRyYXdHbHlwaHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6UmVjb3JkZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpkcmF3R2x5cGhzKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6YXBwZW5kSXRlbSk6IERlbGV0ZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6YXBwZW5kSXRlbSk6CisKIDIw
MjAtMTAtMTUgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbQ29jb2FdIERvbid0IGNoYW5nZSB0aGUgdGV4dCBtYXRyaXggbXVsdGlwbGUgdGltZXMg
aW5zaWRlIEZvbnRDYXNjYWRlOjpkcmF3R2x5cGhzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IGM0
ZDMzNDI5ZGJlNmIwYzIwZGE3OTIzMWM2YjMzZWZjOGJkNTc5NjIuLmU3MGJiZWNlZWM1MDhhMGM2
YjgyNTQwMjI0OTA5ZDFjYWJhNTJlNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDEy
IEBACisyMDIwLTEwLTE1ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+
CisKKyAgICAgICAgW0NvY29hXSBbR1BVIFByb2Nlc3NdIFBlcmZvcm0gaW1hZ2UgZGVjb2Rpbmcg
b2YgY29sb3IgZm9udHMgaW4gdGhlIFdlYiBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1MDYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg6
CisKIDIwMjAtMTAtMTMgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlbW92ZSBsZWZ0b3ZlciBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4IHN1cHBv
cnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDBhZGU3ZDhjOGQ0YjJmMmQ5OGQ2ZDM5MGU5MzhhYjMz
ZWI3NDU4MTcuLjhjYTBkZTcwMjk4MTlhNTQ1ZDQ4MTVmYTIwMDMzYjM1MzA1ZWE4OTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQpAQCAtMTIyOSw2ICsxMjI5LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9G
UkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0V4dGVuc2lvbnNH
TEFOR0xFLmgKIAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dC5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0ds
eXBoc1JlY29yZGVyLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3REcmF3aW5nQ29udGV4dC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkv
Y2cvQ29yZUdyYXBoaWNzU1BJLmgKaW5kZXggYTdmODJiODYxYjYyYzRhZWZiODNjMTgxMWQ1NWM3
YWY3NDllNmI5MS4uMGU3OTAzNmJkOGZkODI5MjNjYTI3MTA5ZDg3YzYyY2Y0MmU0ZDdlYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKQEAg
LTM4LDYgKzM4LDcgQEAKIAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKKyNpbmNsdWRl
IDxDb3JlR3JhcGhpY3MvQ0dDb250ZXh0RGVsZWdhdGVQcml2YXRlLmg+CiAjaW5jbHVkZSA8Q29y
ZUdyYXBoaWNzL0NHRm9udENhY2hlLmg+CiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHUGF0aFBy
aXZhdGUuaD4KICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBoaWNzUHJpdmF0ZS5oPgpA
QCAtNTgsMTkgKzU5LDEyIEBAIHN0cnVjdCBDR0ZvbnRITWV0cmljcyB7CiAgICAgaW50IG1pblJp
Z2h0U2lkZUJlYXJpbmc7CiB9OwogCi1zdHJ1Y3QgQ0dGb250RGVzY3JpcHRvciB7Ci0gICAgQ0dS
ZWN0IGJib3g7Ci0gICAgQ0dGbG9hdCBhc2NlbnQ7Ci0gICAgQ0dGbG9hdCBkZXNjZW50OwotICAg
IENHRmxvYXQgY2FwSGVpZ2h0OwotICAgIENHRmxvYXQgaXRhbGljQW5nbGU7Ci0gICAgQ0dGbG9h
dCBzdGVtVjsKLSAgICBDR0Zsb2F0IHN0ZW1IOwotICAgIENHRmxvYXQgYXZnV2lkdGg7Ci0gICAg
Q0dGbG9hdCBtYXhXaWR0aDsKLSAgICBDR0Zsb2F0IG1pc3NpbmdXaWR0aDsKLSAgICBDR0Zsb2F0
IGxlYWRpbmc7Ci0gICAgQ0dGbG9hdCB4SGVpZ2h0OwordHlwZWRlZiBDRl9FTlVNIChpbnQzMl90
LCBDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrTmFtZSkKK3sKKyAgICBkZURyYXdJbWFnZSA9IDcs
CisgICAgZGVEcmF3R2x5cGhzID0gOCwKKyAgICBkZUJlZ2luTGF5ZXIgPSAxNywKKyAgICBkZUVu
ZExheWVyID0gMTgsCiB9OwogCiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBDR0NvbG9yVHJhbnNmb3Jt
KiBDR0NvbG9yVHJhbnNmb3JtUmVmOwpAQCAtMTkzLDYgKzE4NywxMSBAQCBzdGF0aWMgY29uc3Qg
Q0dTTm90aWZpY2F0aW9uVHlwZSBrQ0dTZXNzaW9uQ29uc29sZURpc2Nvbm5lY3QgPSAoQ0dTTm90
aWZpY2F0aW9uVAogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCit0eXBlZGVmIHN0cnVjdCBD
R0NvbnRleHREZWxlZ2F0ZSAqQ0dDb250ZXh0RGVsZWdhdGVSZWY7Cit0eXBlZGVmIHZvaWQgKCpD
R0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrKSh2b2lkKTsKK3R5cGVkZWYgc3RydWN0IENHUmVuZGVy
aW5nU3RhdGUgKkNHUmVuZGVyaW5nU3RhdGVSZWY7Cit0eXBlZGVmIHN0cnVjdCBDR0dTdGF0ZSAq
Q0dHU3RhdGVSZWY7CisKICNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCiAjaWYg
UExBVEZPUk0oQ09DT0EpCkBAIC0yMzMsNyArMjMyLDYgQEAgdm9pZCBDR0NvbnRleHRSZXNldENs
aXAoQ0dDb250ZXh0UmVmKTsKIENHQ29udGV4dFR5cGUgQ0dDb250ZXh0R2V0VHlwZShDR0NvbnRl
eHRSZWYpOwogCiBDRlN0cmluZ1JlZiBDR0ZvbnRDb3B5RmFtaWx5TmFtZShDR0ZvbnRSZWYpOwot
Ym9vbCBDR0ZvbnRHZXREZXNjcmlwdG9yKENHRm9udFJlZiwgQ0dGb250RGVzY3JpcHRvciopOwog
Ym9vbCBDR0ZvbnRHZXRHbHlwaEFkdmFuY2VzRm9yU3R5bGUoQ0dGb250UmVmLCBjb25zdCBDR0Fm
ZmluZVRyYW5zZm9ybSogLCBDR0ZvbnRSZW5kZXJpbmdTdHlsZSwgY29uc3QgQ0dHbHlwaFtdLCBz
aXplX3QgY291bnQsIENHU2l6ZSBhZHZhbmNlc1tdKTsKIHZvaWQgQ0dGb250R2V0R2x5cGhzRm9y
VW5pY2hhcnMoQ0dGb250UmVmLCBjb25zdCBVbmlDaGFyW10sIENHR2x5cGhbXSwgc2l6ZV90IGNv
dW50KTsKIGNvbnN0IENHRm9udEhNZXRyaWNzKiBDR0ZvbnRHZXRITWV0cmljcyhDR0ZvbnRSZWYp
OwpAQCAtMjUyLDYgKzI1MCwxNSBAQCBib29sIENHQ29udGV4dEdldEFsbG93c0ZvbnRTdWJwaXhl
bFBvc2l0aW9uaW5nKENHQ29udGV4dFJlZik7CiBib29sIENHQ29udGV4dERyYXdzV2l0aENvcnJl
Y3RTaGFkb3dPZmZzZXRzKENHQ29udGV4dFJlZik7CiBDR1BhdHRlcm5SZWYgQ0dQYXR0ZXJuQ3Jl
YXRlV2l0aEltYWdlMihDR0ltYWdlUmVmLCBDR0FmZmluZVRyYW5zZm9ybSwgQ0dQYXR0ZXJuVGls
aW5nKTsKIAorQ0dDb250ZXh0RGVsZWdhdGVSZWYgQ0dDb250ZXh0RGVsZWdhdGVDcmVhdGUodm9p
ZCogaW5mbyk7Cit2b2lkIENHQ29udGV4dERlbGVnYXRlU2V0Q2FsbGJhY2soQ0dDb250ZXh0RGVs
ZWdhdGVSZWYsIENHQ29udGV4dERlbGVnYXRlQ2FsbGJhY2tOYW1lLCBDR0NvbnRleHREZWxlZ2F0
ZUNhbGxiYWNrKTsKK0NHQ29udGV4dFJlZiBDR0NvbnRleHRDcmVhdGVXaXRoRGVsZWdhdGUoQ0dD
b250ZXh0RGVsZWdhdGVSZWYsIENHQ29udGV4dFR5cGUsIENHUmVuZGVyaW5nU3RhdGVSZWYsIENH
R1N0YXRlUmVmKTsKK3ZvaWQqIENHQ29udGV4dERlbGVnYXRlR2V0SW5mbyhDR0NvbnRleHREZWxl
Z2F0ZVJlZik7Cit2b2lkIENHQ29udGV4dERlbGVnYXRlUmVsZWFzZShDR0NvbnRleHREZWxlZ2F0
ZVJlZik7CitDR0Zsb2F0IENHR1N0YXRlR2V0QWxwaGEoQ0dHU3RhdGVSZWYpOworQ0dGb250UmVm
IENHR1N0YXRlR2V0Rm9udChDR0dTdGF0ZVJlZik7Citjb25zdCBDR0FmZmluZVRyYW5zZm9ybSAq
Q0dHU3RhdGVHZXRDVE0oQ0dHU3RhdGVSZWYpOworCiAjaWYgSEFWRShDR1BBVEhfR0VUX05VTUJF
Ul9PRl9FTEVNRU5UUykKIHNpemVfdCBDR1BhdGhHZXROdW1iZXJPZkVsZW1lbnRzKENHUGF0aFJl
Zik7CiAjZW5kaWYKQEAgLTI4NiwxNiArMjkzLDkgQEAgQ0dSZWN0KiBDR1NOZXh0UmVjdChjb25z
dCBDR1NSZWdpb25FbnVtZXJhdG9yT2JqKTsKIENHU1JlZ2lvbkVudW1lcmF0b3JPYmogQ0dTUmVn
aW9uRW51bWVyYXRvcihDR1JlZ2lvblJlZik7CiBDR1N0eWxlUmVmIENHU3R5bGVDcmVhdGVGb2N1
c1JpbmdXaXRoQ29sb3IoY29uc3QgQ0dGb2N1c1JpbmdTdHlsZSosIENHQ29sb3JSZWYpOwogdm9p
ZCBDR0NvbnRleHRTZXRTdHlsZShDR0NvbnRleHRSZWYsIENHU3R5bGVSZWYpOwotCiB2b2lkIENH
Q29udGV4dERyYXdDb25pY0dyYWRpZW50KENHQ29udGV4dFJlZiwgQ0dHcmFkaWVudFJlZiwgQ0dQ
b2ludCBjZW50ZXIsIENHRmxvYXQgYW5nbGUpOwotCi0jaWYgSEFWRShDR19QQVRIX1VORVZFTl9D
T1JORVJTX1JPVU5ERURSRUNUKQogdm9pZCBDR1BhdGhBZGRVbmV2ZW5Db3JuZXJzUm91bmRlZFJl
Y3QoQ0dNdXRhYmxlUGF0aFJlZiwgY29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0gKiwgQ0dSZWN0LCBj
b25zdCBDR1NpemUgY29ybmVyc1s0XSk7Ci0jZW5kaWYKLQotI2lmIEhBVkUoQ0dfRk9OVF9SRU5E
RVJJTkdfR0VUX0ZPTlRfU01PT1RISU5HX0RJU0FCTEVEKQogYm9vbCBDR0ZvbnRSZW5kZXJpbmdH
ZXRGb250U21vb3RoaW5nRGlzYWJsZWQodm9pZCk7Ci0jZW5kaWYKIAogI2VuZGlmIC8vIFBMQVRG
T1JNKENPQ09BKQogCkBAIC0zMjgsMTUgKzMyOCwxMCBAQCBib29sIENvbG9yU3luY1Byb2ZpbGVJ
c1dpZGVHYW11dChDb2xvclN5bmNQcm9maWxlUmVmKTsKIHNpemVfdCBDR0Rpc3BsYXlNb2RlR2V0
UGl4ZWxzV2lkZShDR0Rpc3BsYXlNb2RlUmVmKTsKIHNpemVfdCBDR0Rpc3BsYXlNb2RlR2V0UGl4
ZWxzSGlnaChDR0Rpc3BsYXlNb2RlUmVmKTsKIAotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRP
V1NFUlZFUl9CTE9DS0lORykKLQogQ0dFcnJvciBDR1NTZXREZW55V2luZG93U2VydmVyQ29ubmVj
dGlvbnMoYm9vbCk7Ci0KIHR5cGVkZWYgaW50MzJfdCBDR1NEaXNwbGF5SUQ7CiBDR1NEaXNwbGF5
SUQgQ0dTTWFpbkRpc3BsYXlJRCh2b2lkKTsKIAotI2VuZGlmIC8vIEVOQUJMRShXRUJQUk9DRVNT
X1dJTkRPV1NFUlZFUl9CTE9DS0lORykKLQogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAogI2lm
IEVOQUJMRShQREZLSVRfUExVR0lOKSAmJiAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQXBwbGVXaW4uY21ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybUFwcGxlV2luLmNtYWtlCmluZGV4IGE3ODhlNjlkZTc0NDFjOTQwODRmNzAz
NmEzZThmNDlhZDQ1MWE1OGQuLjM4YTJiNzc2ODk1NTk4YTRmNGUzNmFkZTdjNjAzYjA0MDc4ZGRj
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQXBwbGVXaW4uY21ha2UKKysr
IGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1BcHBsZVdpbi5jbWFrZQpAQCAtMzAsNiArMzAsOCBA
QCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL1dlYkNvcmVBVkNGUmVzb3VyY2VMb2FkZXIu
Y3BwCiAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3
R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAKKwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9G
b250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAogCiAgICAgcGxhdGZvcm0vbmV0d29yay9jZi9BdXRo
ZW50aWNhdGlvbkNGLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5D
YWlyby5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UKaW5kZXgg
YzRiODZjMTQ4OWFhYzlhNWUyZWEwMDQwMDIwZjM0MTk2NmExNDUzMy4uYmZlMDhkN2E2NDk4Nzcy
OTczNDdmODZiZWY4NDBlM2U2OWYyODg4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1XaW5DYWlyby5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbkNhaXJv
LmNtYWtlCkBAIC0xOCw2ICsxOCw4IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Q
bGF0Zm9ybURpc3BsYXkuY3BwCiAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHAKKwogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8uY3BwCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFDYWlyb1dpbi5jcHAKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy93aW4vR2x5cGhQYWdlVHJlZU5vZGVDYWlyb1dpbi5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
Q29jb2EudHh0CmluZGV4IDY0MTQwNTkyNTQwMWU2ZTNjZDViNjZmOWEzZmY3Y2Q4ZDA3MWNlMDgu
LmU3MDJhYjU2NTE2OTY1NmMxM2ZjOTBjMTNlMWEyNGYzYjNhOWZjYWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNl
c0NvY29hLnR4dApAQCAtMzc4LDYgKzM3OCw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdl
VHJhbnNmZXJTZXNzaW9uVlQubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29u
Zm9ybWVyQ1YuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5j
cHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GaWx0ZXJFZmZlY3RSZW5kZXJlckNvcmVJ
bWFnZS5tbQorcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0ds
eXBoc1JlY29yZGVyQ29yZVRleHQuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGlsaW5nRGF0
YS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBBbGxvY2F0b3JN
ZXRhbC5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cExheW91dE1l
dGFsLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggMWFjZjE0NDM5OTI0ODU4MTQ4ZGQyMGI5ZThkZTdhNTFlM2IyMmRjZS4uZTlk
YmIwOWUxMmRhNmUzNDRiZDNmNzRlY2YwYmIyZGNhNzczNjVmMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjE5LDYgKzYxOSw3
IEBACiAJCTFDQUYzNDgxMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUYzNDdFMEE2QzQw
NTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQ0FGMzQ4MjBBNkM0MDUyMDBBQkUwNkUgLyogV2Vi
U2NyaXB0T2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUNBRjM0N0YwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdC5tbSAqLzsg
fTsKIAkJMUNBRjM0ODMwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdFByaXZhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUYzNDgw
MEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3RQcml2YXRlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMUNBRjU2REIyNTMwMUFDODAw
MTdCNDcyIC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FGNTZEODI1MzAxNDU3MDAxN0I0NzIg
LyogRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQ0NEODE1MDIyMzFGODNFMDA2NUZDMkIgLyog
V2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE1MjU1MTQxNkZEMjM0RjAw
M0Q3QURCIC8qIFdlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5t
bSAqLzsgfTsKIAkJMUNDREY1QkUxOTkwMzMyNDAwQkNFQkFEIC8qIFNWR1RvT1RGRm9udENvbnZl
cnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFD
Q0RGNUJDMTk5MDMzMjQwMEJDRUJBRCAvKiBTVkdUb09URkZvbnRDb252ZXJzaW9uLmggKi87IH07
CiAJCTFDRkFFMzIzMEE2RDZBM0YwMDMyNTkzRCAvKiBsaWJvYmpjLmR5bGliIGluIEZyYW1ld29y
a3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNGQUUzMjIwQTZENkEzRjAw
MzI1OTNEIC8qIGxpYm9iamMuZHlsaWIgKi87IH07CkBAIC02NzE2LDYgKzY3MTcsOCBAQAogCQkx
Q0FGMzQ3RTBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNjcmlwdE9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQ0FGMzQ3RjBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViU2NyaXB0T2Jq
ZWN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FGMzQ4MDBBNkM0MDUyMDBB
QkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJTY3JpcHRPYmplY3RQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTFDQUY1NkQ4MjUzMDE0NTcwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlw
aHNSZWNvcmRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0FGNTZERTI1MzAyNDVBMDAxN0I0
NzIgLyogRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNCNUZFODgyMkRFQkM4QjAwOTQ0MEUyIC8qIFdI
TFNMRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xFcnJvci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQ0I2OUIzMjIxREVENDBCMDA2RTg0NkEgLyogV0hMU0xSZXNvbHZhYmxl
VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTFJlc29sdmFibGVUeXBlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFDQjY5QjM0MjFERUQ2M0EwMDZFODQ2QSAvKiBXSExTTEZsb2F0
TGl0ZXJhbFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xGbG9hdExpdGVyYWxUeXBlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzUxNSw2ICsxNzUxOCw4IEBACiAJCQljaGls
ZHJlbiA9ICgKIAkJCQkwRkU1RkJDQTFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3QuY3Bw
ICovLAogCQkJCTBGRTVGQkNCMUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdC5oICovLAor
CQkJCTFDQUY1NkQ4MjUzMDE0NTcwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNv
cmRlci5oICovLAorCQkJCTFDQUY1NkRFMjUzMDI0NUEwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERy
YXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcCAqLywKIAkJCQk1NUMwQTI5NTIzRkUyQ0UwMDBG
MkNCOTMgLyogRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5jcHAgKi8sCiAJCQkJNzJFQTA5Rjky
M0ZDQ0M2QTAwODUwNEE1IC8qIERpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaCAqLywKIAkJCQk3
MkVBMDlGNzIzRkNDQjNEMDA4NTA0QTUgLyogRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oICovLApA
QCAtMzEyMzcsNiArMzEyNDIsNyBAQAogCQkJCTdFREFBRkM5MTlBMkNDREMwMDM0REZEMSAvKiBE
aXNrQ2FjaGVNb25pdG9yQ29jb2EuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNzkwRjQyMjUxN0NF
NkUwMDlCQTAzNCAvKiBEaXNwbGF5TGF5ZXJDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkU1RkJEMzFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3QuaCBpbiBIZWFkZXJzICov
LAorCQkJCTFDQUY1NkRCMjUzMDFBQzgwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNS
ZWNvcmRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTVBRDA5NDAyNDA4OTY0MDAwREU0RDJGIC8q
IERpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1QUQwOTNF
MjQwODk2MzUwMERFNEQyRiAvKiBEaXNwbGF5TGlzdEltYWdlQnVmZmVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkU1RkJENTFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3RJdGVtcy5oIGlu
IEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GcmVlVHlw
ZS5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtlCmluZGV4IDdj
MDRkOTNhNWI4NWM3MzI1ODFjOTVhMDY1YmUwNWI2MzY3YzdhZTQuLmYzOGI1NGUxN2M5MzE1NjUx
NTRjYWI5NTNhODFlMGU5NmY1NzQ5YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0ZyZWVUeXBlLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyZWVUeXBl
LmNtYWtlCkBAIC01LDYgKzUsOCBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1BSSVZBVEVfSU5DTFVE
RV9ESVJFQ1RPUklFUwogKQogCiBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJI
YXJmQnV6ei5jcHAKKwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZy
ZWVUeXBlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGFGcmVlVHlwZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250
UGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5YjAxYTg2MDY5OTM1ZmZjN2E1
YTczYzcwZDQ5YWE1NmNkYjE1MzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3Jk
ZXIuaApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIK
KyNpbmNsdWRlICJDb2xvci5oIgorI2luY2x1ZGUgIkdyYWRpZW50LmgiCisjaW5jbHVkZSAiR3Jh
cGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiUGF0dGVybi5oIgorI2luY2x1ZGUgIlRleHRGbGFn
cy5oIgorCisjaWYgVVNFKENPUkVfVEVYVCkKKyNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ29yZUdy
YXBoaWNzLmg+CisjaW5jbHVkZSA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KKyNlbmRp
ZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZsb2F0UG9pbnQ7CitjbGFzcyBGb250
OworY2xhc3MgR2x5cGhCdWZmZXI7CitjbGFzcyBHcmFwaGljc0NvbnRleHQ7CisKK25hbWVzcGFj
ZSBEaXNwbGF5TGlzdCB7CisKK2NsYXNzIFJlY29yZGVyOworCitjbGFzcyBEcmF3R2x5cGhzUmVj
b3JkZXIgeworcHVibGljOgorICAgIGV4cGxpY2l0IERyYXdHbHlwaHNSZWNvcmRlcihSZWNvcmRl
ciYpOworCisgICAgdm9pZCBkcmF3R2x5cGhzKGNvbnN0IEZvbnQmLCBjb25zdCBHbHlwaEJ1ZmZl
ciYsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIG51bUdseXBocywgY29uc3QgRmxvYXRQb2ludCYg
YW5jaG9yUG9pbnQsIEZvbnRTbW9vdGhpbmdNb2RlKTsKKworI2lmIFVTRShDT1JFX1RFWFQpCisg
ICAgdm9pZCByZWNvcmRCZWdpbkxheWVyKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVm
LCBDR1JlY3QpOworICAgIHZvaWQgcmVjb3JkRW5kTGF5ZXIoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwg
Q0dHU3RhdGVSZWYpOworICAgIHZvaWQgcmVjb3JkRHJhd0dseXBocyhDR1JlbmRlcmluZ1N0YXRl
UmVmLCBDR0dTdGF0ZVJlZiwgY29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0qLCBjb25zdCBDR0dseXBo
W10sIGNvbnN0IENHUG9pbnQgcG9zaXRpb25zW10sIHNpemVfdCBjb3VudCk7CisgICAgdm9pZCBy
ZWNvcmREcmF3SW1hZ2UoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYsIENHUmVjdCwg
Q0dJbWFnZVJlZik7CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBHcmFwaGljc0NvbnRleHQgY3Jl
YXRlSW50ZXJuYWxDb250ZXh0KCk7CisgICAgdm9pZCBwcmVwYXJlSW50ZXJuYWxDb250ZXh0KGNv
bnN0IEZvbnQmLCBGb250U21vb3RoaW5nTW9kZSk7CisgICAgdm9pZCBjb25jbHVkZUludGVybmFs
Q29udGV4dCgpOworICAgIHZvaWQgdXBkYXRlQ1RNKEFmZmluZVRyYW5zZm9ybSk7CisgICAgdm9p
ZCB1cGRhdGVGaWxsQ29sb3IoY29uc3QgQ29sb3ImLCBHcmFkaWVudCogPSBudWxscHRyLCBQYXR0
ZXJuKiA9IG51bGxwdHIpOworCisgICAgUmVjb3JkZXImIG1fb3duZXI7CisgICAgR3JhcGhpY3ND
b250ZXh0IG1faW50ZXJuYWxDb250ZXh0OworICAgIGNvbnN0IEZvbnQqIG1fY3VycmVudEZvbnQg
eyBudWxscHRyIH07CisgICAgQ29sb3IgbV9jdXJyZW50Q29sb3I7CisKKyAgICBDb2xvciBtX29y
aWdpbmFsRmlsbENvbG9yOworICAgIFJlZlB0cjxHcmFkaWVudD4gbV9vcmlnaW5hbEZpbGxHcmFk
aWVudDsKKyAgICBSZWZQdHI8UGF0dGVybj4gbV9vcmlnaW5hbEZpbGxQYXR0ZXJuOworCisgICAg
QWZmaW5lVHJhbnNmb3JtIG1fb3JpZ2luYWxDVE07CisgICAgQWZmaW5lVHJhbnNmb3JtIG1fY3Vy
cmVudENUTTsKKworICAgIEFmZmluZVRyYW5zZm9ybSBtX29yaWdpbmFsVGV4dE1hdHJpeDsKKwor
ICAgIEZvbnRTbW9vdGhpbmdNb2RlIG1fc21vb3RoaW5nTW9kZSB7IEZvbnRTbW9vdGhpbmdNb2Rl
OjpBdXRvU21vb3RoaW5nIH07Cit9OworCit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNS
ZWNvcmRlckNvcmVUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iOGVjNmMxMmNlOTNmYWNjZDJhOWM2YWVhNmVhYWEzYWIwZmJmOWY3Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwCkBAIC0wLDAgKzEsMjY1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmgi
CisKKyNpbmNsdWRlICJCaXRtYXBJbWFnZS5oIgorI2luY2x1ZGUgIkNvbG9yLmgiCisjaW5jbHVk
ZSAiRGlzcGxheUxpc3RJdGVtcy5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0UmVjb3JkZXIuaCIK
KyNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiRm9udC5oIgorI2luY2x1ZGUgIkZv
bnRDYXNjYWRlLmgiCisjaW5jbHVkZSAiR2x5cGhCdWZmZXIuaCIKKworI2luY2x1ZGUgPENvcmVU
ZXh0L0NvcmVUZXh0Lmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCisjaWYgUExBVEZPUk0o
V0lOKQorI2luY2x1ZGUgPHBhbC9zcGkvd2luL0NvcmVUZXh0U1BJV2luLmg+CisjZW5kaWYKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCituYW1lc3BhY2UgRGlzcGxheUxpc3QgeworCitzdGF0aWMg
Q0dDb250ZXh0RGVsZWdhdGVSZWYgYmVnaW5MYXllcihDR0NvbnRleHREZWxlZ2F0ZVJlZiBkZWxl
Z2F0ZSwgQ0dSZW5kZXJpbmdTdGF0ZVJlZiByc3RhdGUsIENHR1N0YXRlUmVmIGdzdGF0ZSwgQ0dS
ZWN0IHJlY3QsIENGRGljdGlvbmFyeVJlZiwgQ0dDb250ZXh0RGVsZWdhdGVSZWYpCit7CisgICAg
RHJhd0dseXBoc1JlY29yZGVyJiByZWNvcmRlciA9ICpzdGF0aWNfY2FzdDxEcmF3R2x5cGhzUmVj
b3JkZXIqPihDR0NvbnRleHREZWxlZ2F0ZUdldEluZm8oZGVsZWdhdGUpKTsKKyAgICByZWNvcmRl
ci5yZWNvcmRCZWdpbkxheWVyKHJzdGF0ZSwgZ3N0YXRlLCByZWN0KTsKKyAgICByZXR1cm4gZGVs
ZWdhdGU7Cit9CisKK3N0YXRpYyBDR0NvbnRleHREZWxlZ2F0ZVJlZiBlbmRMYXllcihDR0NvbnRl
eHREZWxlZ2F0ZVJlZiBkZWxlZ2F0ZSwgQ0dSZW5kZXJpbmdTdGF0ZVJlZiByc3RhdGUsIENHR1N0
YXRlUmVmIGdzdGF0ZSkKK3sKKyAgICBEcmF3R2x5cGhzUmVjb3JkZXImIHJlY29yZGVyID0gKnN0
YXRpY19jYXN0PERyYXdHbHlwaHNSZWNvcmRlcio+KENHQ29udGV4dERlbGVnYXRlR2V0SW5mbyhk
ZWxlZ2F0ZSkpOworICAgIHJlY29yZGVyLnJlY29yZEVuZExheWVyKHJzdGF0ZSwgZ3N0YXRlKTsK
KyAgICByZXR1cm4gZGVsZWdhdGU7Cit9CisKK3N0YXRpYyBDR0Vycm9yIGRyYXdHbHlwaHMoQ0dD
b250ZXh0RGVsZWdhdGVSZWYgZGVsZWdhdGUsIENHUmVuZGVyaW5nU3RhdGVSZWYgcnN0YXRlLCBD
R0dTdGF0ZVJlZiBnc3RhdGUsIGNvbnN0IENHQWZmaW5lVHJhbnNmb3JtKiB0bSwgY29uc3QgQ0dH
bHlwaCBnbHlwaHNbXSwgY29uc3QgQ0dQb2ludCBwb3NpdGlvbnNbXSwgc2l6ZV90IGNvdW50KQor
eworICAgIGlmIChDR0dTdGF0ZUdldEFscGhhKGdzdGF0ZSkgPiAwKSB7CisgICAgICAgIERyYXdH
bHlwaHNSZWNvcmRlciYgcmVjb3JkZXIgPSAqc3RhdGljX2Nhc3Q8RHJhd0dseXBoc1JlY29yZGVy
Kj4oQ0dDb250ZXh0RGVsZWdhdGVHZXRJbmZvKGRlbGVnYXRlKSk7CisgICAgICAgIHJlY29yZGVy
LnJlY29yZERyYXdHbHlwaHMocnN0YXRlLCBnc3RhdGUsIHRtLCBnbHlwaHMsIHBvc2l0aW9ucywg
Y291bnQpOworICAgIH0KKyAgICByZXR1cm4ga0NHRXJyb3JTdWNjZXNzOworfQorCitzdGF0aWMg
Q0dFcnJvciBkcmF3SW1hZ2UoQ0dDb250ZXh0RGVsZWdhdGVSZWYgZGVsZWdhdGUsIENHUmVuZGVy
aW5nU3RhdGVSZWYgcnN0YXRlLCBDR0dTdGF0ZVJlZiBnc3RhdGUsIENHUmVjdCByZWN0LCBDR0lt
YWdlUmVmIGltYWdlKQoreworICAgIERyYXdHbHlwaHNSZWNvcmRlciYgcmVjb3JkZXIgPSAqc3Rh
dGljX2Nhc3Q8RHJhd0dseXBoc1JlY29yZGVyKj4oQ0dDb250ZXh0RGVsZWdhdGVHZXRJbmZvKGRl
bGVnYXRlKSk7CisgICAgcmVjb3JkZXIucmVjb3JkRHJhd0ltYWdlKHJzdGF0ZSwgZ3N0YXRlLCBy
ZWN0LCBpbWFnZSk7CisgICAgcmV0dXJuIGtDR0Vycm9yU3VjY2VzczsKK30KKworR3JhcGhpY3ND
b250ZXh0IERyYXdHbHlwaHNSZWNvcmRlcjo6Y3JlYXRlSW50ZXJuYWxDb250ZXh0KCkKK3sKKyAg
ICBhdXRvIGNvbnRleHREZWxlZ2F0ZSA9IGFkb3B0Q0YoQ0dDb250ZXh0RGVsZWdhdGVDcmVhdGUo
dGhpcykpOworICAgIENHQ29udGV4dERlbGVnYXRlU2V0Q2FsbGJhY2soY29udGV4dERlbGVnYXRl
LmdldCgpLCBkZUJlZ2luTGF5ZXIsIHJlaW50ZXJwcmV0X2Nhc3Q8Q0dDb250ZXh0RGVsZWdhdGVD
YWxsYmFjaz4oJmJlZ2luTGF5ZXIpKTsKKyAgICBDR0NvbnRleHREZWxlZ2F0ZVNldENhbGxiYWNr
KGNvbnRleHREZWxlZ2F0ZS5nZXQoKSwgZGVFbmRMYXllciwgcmVpbnRlcnByZXRfY2FzdDxDR0Nv
bnRleHREZWxlZ2F0ZUNhbGxiYWNrPigmZW5kTGF5ZXIpKTsKKyAgICBDR0NvbnRleHREZWxlZ2F0
ZVNldENhbGxiYWNrKGNvbnRleHREZWxlZ2F0ZS5nZXQoKSwgZGVEcmF3R2x5cGhzLCByZWludGVy
cHJldF9jYXN0PENHQ29udGV4dERlbGVnYXRlQ2FsbGJhY2s+KCZXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6ZHJhd0dseXBocykpOworICAgIENHQ29udGV4dERlbGVnYXRlU2V0Q2FsbGJhY2soY29udGV4
dERlbGVnYXRlLmdldCgpLCBkZURyYXdJbWFnZSwgcmVpbnRlcnByZXRfY2FzdDxDR0NvbnRleHRE
ZWxlZ2F0ZUNhbGxiYWNrPigmZHJhd0ltYWdlKSk7CisgICAgYXV0byBjb250ZXh0ID0gYWRvcHRD
RihDR0NvbnRleHRDcmVhdGVXaXRoRGVsZWdhdGUoY29udGV4dERlbGVnYXRlLmdldCgpLCBrQ0dD
b250ZXh0VHlwZVVua25vd24sIG51bGxwdHIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gR3JhcGhp
Y3NDb250ZXh0KGNvbnRleHQuZ2V0KCkpOworfQorCitEcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdH
bHlwaHNSZWNvcmRlcihSZWNvcmRlciYgb3duZXIpCisgICAgOiBtX293bmVyKG93bmVyKQorICAg
ICwgbV9pbnRlcm5hbENvbnRleHQoY3JlYXRlSW50ZXJuYWxDb250ZXh0KCkpCit7Cit9CisKK3Zv
aWQgRHJhd0dseXBoc1JlY29yZGVyOjpwcmVwYXJlSW50ZXJuYWxDb250ZXh0KGNvbnN0IEZvbnQm
IGZvbnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCit7CisgICAgQVNTRVJUKENH
QWZmaW5lVHJhbnNmb3JtSXNJZGVudGl0eShDVEZvbnRHZXRNYXRyaXgoZm9udC5wbGF0Zm9ybURh
dGEoKS5jdEZvbnQoKSkpKTsKKworICAgIGF1dG8mIHN0YXRlID0gbV9vd25lci5jdXJyZW50U3Rh
dGUoKS5zdGF0ZUNoYW5nZS5tX3N0YXRlOworICAgIG1fb3JpZ2luYWxGaWxsQ29sb3IgPSBzdGF0
ZS5maWxsQ29sb3I7CisgICAgbV9vcmlnaW5hbEZpbGxHcmFkaWVudCA9IHN0YXRlLmZpbGxHcmFk
aWVudDsKKyAgICBtX29yaWdpbmFsRmlsbFBhdHRlcm4gPSBzdGF0ZS5maWxsUGF0dGVybjsKKyAg
ICBtX2N1cnJlbnRDb2xvciA9IG1fb3JpZ2luYWxGaWxsQ29sb3I7CisKKyAgICBpZiAobV9vcmln
aW5hbEZpbGxDb2xvci5pc1ZhbGlkKCkpCisgICAgICAgIG1faW50ZXJuYWxDb250ZXh0LnNldEZp
bGxDb2xvcihtX29yaWdpbmFsRmlsbENvbG9yKTsKKyAgICBlbHNlIGlmIChtX29yaWdpbmFsRmls
bEdyYWRpZW50KQorICAgICAgICBtX2ludGVybmFsQ29udGV4dC5zZXRGaWxsR3JhZGllbnQoKm1f
b3JpZ2luYWxGaWxsR3JhZGllbnQpOworICAgIGVsc2UgeworICAgICAgICBBU1NFUlQobV9vcmln
aW5hbEZpbGxQYXR0ZXJuKTsKKyAgICAgICAgaWYgKG1fb3JpZ2luYWxGaWxsUGF0dGVybikKKyAg
ICAgICAgICAgIG1faW50ZXJuYWxDb250ZXh0LnNldEZpbGxQYXR0ZXJuKCptX29yaWdpbmFsRmls
bFBhdHRlcm4pOworICAgIH0KKworICAgIG1faW50ZXJuYWxDb250ZXh0LnNldFNoYWRvdyhzdGF0
ZS5zaGFkb3dPZmZzZXQsIHN0YXRlLnNoYWRvd0JsdXIsIHN0YXRlLnNoYWRvd0NvbG9yKTsKKwor
ICAgIG1fb3JpZ2luYWxDVE0gPSBtX293bmVyLmN1cnJlbnRTdGF0ZSgpLmN0bTsgLy8gRklYTUU6
IERlYWwgd2l0aCBkZXZpY2Ugc2NhbGUuCisgICAgbV9jdXJyZW50Q1RNID0gbV9vcmlnaW5hbENU
TTsKKyAgICBtX2ludGVybmFsQ29udGV4dC5zZXRDVE0obV9vcmlnaW5hbENUTSk7CisKKyAgICBt
X29yaWdpbmFsVGV4dE1hdHJpeCA9IGNvbXB1dGVPdmVyYWxsVGV4dE1hdHJpeChmb250KTsKKyAg
ICBpZiAoZm9udC5wbGF0Zm9ybURhdGEoKS5vcmllbnRhdGlvbigpID09IEZvbnRPcmllbnRhdGlv
bjo6VmVydGljYWwpCisgICAgICAgIG1fb3JpZ2luYWxUZXh0TWF0cml4ID0gY29tcHV0ZVZlcnRp
Y2FsVGV4dE1hdHJpeChmb250LCBtX29yaWdpbmFsVGV4dE1hdHJpeCk7CisKKyAgICBtX2N1cnJl
bnRGb250ID0gJmZvbnQ7CisgICAgbV9zbW9vdGhpbmdNb2RlID0gc21vb3RoaW5nTW9kZTsKK30K
Kwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OmNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KCkKK3sK
KyAgICB1cGRhdGVGaWxsQ29sb3IobV9vcmlnaW5hbEZpbGxDb2xvciwgbV9vcmlnaW5hbEZpbGxH
cmFkaWVudC5nZXQoKSwgbV9vcmlnaW5hbEZpbGxQYXR0ZXJuLmdldCgpKTsKKyAgICB1cGRhdGVD
VE0obV9vcmlnaW5hbENUTSk7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVD
VE0oQWZmaW5lVHJhbnNmb3JtIGN0bSkKK3sKKyAgICBpZiAoY3RtID09IG1fY3VycmVudENUTSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgbV9vd25lci5zZXRDVE0oY3RtKTsKKyAgICBtX2N1cnJl
bnRDVE0gPSBjdG07Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVGaWxsQ29s
b3IoY29uc3QgQ29sb3ImIG5ld0NvbG9yLCBHcmFkaWVudCogbmV3R3JhZGllbnQsIFBhdHRlcm4q
IG5ld1BhdHRlcm4pCit7CisgICAgaWYgKG5ld0NvbG9yID09IG1fY3VycmVudENvbG9yKQorICAg
ICAgICByZXR1cm47CisKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZSBuZXdTdGF0ZTsKKyAgICBu
ZXdTdGF0ZS5maWxsQ29sb3IgPSBuZXdDb2xvcjsKKyAgICBpZiAobmV3R3JhZGllbnQpCisgICAg
ICAgIG5ld1N0YXRlLmZpbGxHcmFkaWVudCA9IG5ld0dyYWRpZW50OworICAgIGlmIChuZXdQYXR0
ZXJuKQorICAgICAgICBuZXdTdGF0ZS5maWxsUGF0dGVybiA9IG5ld1BhdHRlcm47CisgICAgbV9v
d25lci51cGRhdGVTdGF0ZShuZXdTdGF0ZSwgeyBHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbENv
bG9yQ2hhbmdlIH0pOworICAgIG1fY3VycmVudENvbG9yID0gbmV3Q29sb3I7Cit9CisKK3ZvaWQg
RHJhd0dseXBoc1JlY29yZGVyOjpyZWNvcmRCZWdpbkxheWVyKENHUmVuZGVyaW5nU3RhdGVSZWYs
IENHR1N0YXRlUmVmIGdzdGF0ZSwgQ0dSZWN0KQoreworICAgIHVwZGF0ZUNUTSgqQ0dHU3RhdGVH
ZXRDVE0oZ3N0YXRlKSk7CisgICAgYXV0byBhbHBoYSA9IENHR1N0YXRlR2V0QWxwaGEoZ3N0YXRl
KTsKKyAgICBtX293bmVyLmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoYWxwaGEpOworfQorCit2b2lk
IERyYXdHbHlwaHNSZWNvcmRlcjo6cmVjb3JkRW5kTGF5ZXIoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwg
Q0dHU3RhdGVSZWYgZ3N0YXRlKQoreworICAgIHVwZGF0ZUNUTSgqQ0dHU3RhdGVHZXRDVE0oZ3N0
YXRlKSk7CisgICAgbV9vd25lci5lbmRUcmFuc3BhcmVuY3lMYXllcigpOworfQorCitzdGF0aWMg
VmVjdG9yPENHU2l6ZT4gY29tcHV0ZUFkdmFuY2VzRnJvbVBvc2l0aW9ucyhjb25zdCBDR1BvaW50
IHBvc2l0aW9uc1tdLCBzaXplX3QgY291bnQsIGNvbnN0IENHQWZmaW5lVHJhbnNmb3JtJiB0ZXh0
TWF0cml4KQoreworICAgIFZlY3RvcjxDR1NpemU+IHJlc3VsdDsKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IGNvdW50IC0gMTsgKytpKSB7CisgICAgICAgIGF1dG8gbmV4dFBvc2l0aW9uID0g
cG9zaXRpb25zW2kgKyAxXTsKKyAgICAgICAgYXV0byBjdXJyZW50UG9zaXRpb24gPSBwb3NpdGlv
bnNbaV07CisgICAgICAgIGF1dG8gYWR2YW5jZSA9IENHU2l6ZU1ha2UobmV4dFBvc2l0aW9uLngg
LSBjdXJyZW50UG9zaXRpb24ueCwgbmV4dFBvc2l0aW9uLnkgLSBjdXJyZW50UG9zaXRpb24ueSk7
CisgICAgICAgIHJlc3VsdC5hcHBlbmQoQ0dTaXplQXBwbHlBZmZpbmVUcmFuc2Zvcm0oYWR2YW5j
ZSwgdGV4dE1hdHJpeCkpOworICAgIH0KKyAgICByZXN1bHQuY29uc3RydWN0QW5kQXBwZW5kKENH
U2l6ZU1ha2UoMCwgMCkpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3ZvaWQgRHJhd0dseXBo
c1JlY29yZGVyOjpyZWNvcmREcmF3R2x5cGhzKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRl
UmVmIGdzdGF0ZSwgY29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0qLCBjb25zdCBDR0dseXBoIGdseXBo
c1tdLCBjb25zdCBDR1BvaW50IHBvc2l0aW9uc1tdLCBzaXplX3QgY291bnQpCit7CisgICAgaWYg
KCFjb3VudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgQ0dGb250UmVmIHVzZWRGb250ID0gQ0dH
U3RhdGVHZXRGb250KGdzdGF0ZSk7CisgICAgaWYgKHVzZWRGb250ICE9IGFkb3B0Q0YoQ1RGb250
Q29weUdyYXBoaWNzRm9udChtX2N1cnJlbnRGb250LT5wbGF0Zm9ybURhdGEoKS5jdEZvbnQoKSwg
bnVsbHB0cikpLmdldCgpKQorICAgICAgICByZXR1cm47CisKKyNpZiBBU1NFUlRfRU5BQkxFRAor
ICAgIGF1dG8gdGV4dFBvc2l0aW9uID0gQ0dDb250ZXh0R2V0VGV4dFBvc2l0aW9uKG1faW50ZXJu
YWxDb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpKTsKKyAgICBBU1NFUlQoIXRleHRQb3NpdGlvbi54
KTsKKyAgICBBU1NFUlQoIXRleHRQb3NpdGlvbi55KTsKKyNlbmRpZgorCisgICAgdXBkYXRlQ1RN
KCpDR0dTdGF0ZUdldENUTShnc3RhdGUpKTsKKworICAgIC8vIFdlIHdhbnQgdGhlIEdQVSBwcm9j
ZXNzJ3MgQ1RNIGFuZCB0ZXh0IG1hdHJpeCB0byBtYXRjaCB0aGUgY3VycmVudCBDVE0gYW5kIHRl
eHQgbWF0cml4LgorICAgIC8vIFRoZSBjdXJyZW50IHRleHQgbWF0cml4IGlzIGEgY29uY2F0ZW5h
dGlvbiBvZiB3aGF0ZXZlciBXZWJLaXQgc2V0cyBpdCB0byBhbmQgd2hhdGV2ZXIKKyAgICAvLyBD
b3JlIFRleHQgYXBwZW5kcyB0byBpdC4gU28sIHJpZ2h0IG5vdyB3ZSBoYXZlCisgICAgLy8gQ1RN
ICogbV9vcmlnaW5hbFRleHRNYXRyaXggKiBDb3JlIFRleHQncyB0ZXh0IG1hdHJpeC4KKyAgICAv
LyBIb3dldmVyLCBDR0NvbnRleHRHZXRUZXh0TWF0cml4KCkganVzdCB0ZWxscyB1cyB3aGF0IHRo
ZSB3aG9sZSB0ZXh0IG1hdHJpeCBpcywgc28KKyAgICAvLyBtX29yaWdpbmFsVGV4dE1hdHJpeCAq
IENvcmUgVGV4dCdzIHRleHQgbWF0cml4ID0gY3VycmVudFRleHRNYXRyaXguCisgICAgLy8gVGhl
IG9ubHkgd2F5IHdlIGNhbiBlbXVsYXRlIENvcmUgVGV4dCdzIHRleHQgbWF0cml4IGlzIGJ5IG1v
ZGlmeWluZyB0aGUgQ1RNIGhlcmUuCisgICAgLy8gU28sIGlmIHdlIGRvIHRoYXQsIHRoZSBHUFUg
cHJvY2VzcyB3aWxsIGhhdmUKKyAgICAvLyBDVE0gKiBYICogbV9vcmlnaW5hbFRleHRNYXRyaXgK
KyAgICAvLyBJZiB5b3Ugc2V0IHRoZXNlIHR3byBlcXVhbCB0byBlYWNoIG90aGVyLCBhbmQgc29s
dmUgZm9yIFgsIHlvdSBnZXQKKyAgICAvLyBDVE0gKiBjdXJyZW50VGV4dE1hdHJpeCA9IENUTSAq
IFggKiBtX29yaWdpbmFsVGV4dE1hdHJpeAorICAgIC8vIGN1cnJlbnRUZXh0TWF0cml4ICogaW52
ZXJzZShtX29yaWdpbmFsVGV4dE1hdHJpeCkgPSBYCisgICAgQWZmaW5lVHJhbnNmb3JtIGN1cnJl
bnRUZXh0TWF0cml4ID0gQ0dDb250ZXh0R2V0VGV4dE1hdHJpeChtX2ludGVybmFsQ29udGV4dC5w
bGF0Zm9ybUNvbnRleHQoKSk7CisgICAgQWZmaW5lVHJhbnNmb3JtIGN0bUZpeHVwOworICAgIGlm
IChhdXRvIGludmVydGVkT3JpZ2luYWxUZXh0TWF0cml4ID0gbV9vcmlnaW5hbFRleHRNYXRyaXgu
aW52ZXJzZSgpKQorICAgICAgICBjdG1GaXh1cCA9IGN1cnJlbnRUZXh0TWF0cml4ICogaW52ZXJ0
ZWRPcmlnaW5hbFRleHRNYXRyaXgudmFsdWUoKTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gaW52ZXJz
ZUNUTUZpeHVwOworICAgIGlmIChhdXRvIGludmVyc2UgPSBjdG1GaXh1cC5pbnZlcnNlKCkpCisg
ICAgICAgIGludmVyc2VDVE1GaXh1cCA9IGludmVyc2UudmFsdWUoKTsKKyAgICBlbHNlCisgICAg
ICAgIGN0bUZpeHVwID0gQWZmaW5lVHJhbnNmb3JtKCk7CisgICAgbV9vd25lci5jb25jYXRDVE0o
Y3RtRml4dXApOworCisgICAgdXBkYXRlRmlsbENvbG9yKENHR1N0YXRlR2V0RmlsbENvbG9yKGdz
dGF0ZSkpOyAvLyBGSVhNRTogV2hhdCBoYXBwZW5zIGlmIHdlJ3ZlIGdvdCBhIGdyYWRpZW50IG9y
IHBhdHRlcm4gb3IgbWFzaz8KKworICAgIC8vIFRlc3QgY2FzZTogdmVydGljYWwgdGV4dCwgcm90
YXRlZCB0ZXh0CisgICAgbV9vd25lci5hcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KERyYXdHbHlw
aHM6OmNyZWF0ZSgqbV9jdXJyZW50Rm9udCwgZ2x5cGhzLCBjb21wdXRlQWR2YW5jZXNGcm9tUG9z
aXRpb25zKHBvc2l0aW9ucywgY291bnQsIGN1cnJlbnRUZXh0TWF0cml4KS5kYXRhKCksIGNvdW50
LCBjdXJyZW50VGV4dE1hdHJpeC5tYXBQb2ludChwb3NpdGlvbnNbMF0pLCBtX3Ntb290aGluZ01v
ZGUpKTsKKworICAgIG1fb3duZXIuY29uY2F0Q1RNKGludmVyc2VDVE1GaXh1cCk7Cit9CisKK3Zv
aWQgRHJhd0dseXBoc1JlY29yZGVyOjpyZWNvcmREcmF3SW1hZ2UoQ0dSZW5kZXJpbmdTdGF0ZVJl
ZiwgQ0dHU3RhdGVSZWYgZ3N0YXRlLCBDR1JlY3QgcmVjdCwgQ0dJbWFnZVJlZiBjZ0ltYWdlKQor
eworICAgIC8vIFRlc3QgY2FzZTogRVhJRiByb3RhdGVkIGltYWdlcy4KKyAgICAvLyBGSVhNRTog
V2lsbCBDb3JlVGV4dCBldmVyIHNldCBhbnkgb2YgdGhlIHN0dWZmIG9uIHRoZSBjb250ZXh0IHRo
YXQgd2UgbmVlZCB0byBhcHBseSBoZXJlPyBTZWUgb3B0aW9ucyBpbnNpZGUgSW1hZ2VQYWludGlu
Z09wdGlvbnMuCisgICAgdXBkYXRlQ1RNKCpDR0dTdGF0ZUdldENUTShnc3RhdGUpKTsKKworICAg
IC8vIENvcmUgR3JhcGhpY3MgYXNzdW1lcyBhICJ5IHVwIiBjb29yZGluYXRlIHN5c3RlbSwgYnV0
IGluIFdlYktpdCwgd2UgdXNlIGEgInktZG93biIgY29vcmRpbmF0ZSBzeXN0ZW0uCisgICAgLy8g
VGhpcyBtZWFucyB0aGF0IFdlYktpdCdzIGRyYXdpbmcgcm91dGluZXMgKEdyYXBoaWNzQ29udGV4
dDo6ZHJhd0ltYWdlKCkpIGludGVudGlvbmFsbHkgZHJhdyBpbWFnZXMgdXBzaWRlLWRvd24gZnJv
bSBDb3JlIEdyYXBoaWNzJ3MgcG9pbnQgb2Ygdmlldy4KKyAgICAvLyAoVGhlcmUncyBhIHktZmxp
cCBpbnNpZGUgdGhlIGltcGxlbWVudGF0aW9uIG9mIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdl
KCkuKQorICAgIC8vIFRoZSByZWN0IGhhcyB0aGUgcmlnaHQgYm91bmRzLCBidXQgd2UgbmVlZCB0
byB0cmFuc2Zvcm0gZnJvbSBDRydzIGNvb3JkaW5hdGUgc3lzdGVtIHRvIFdlYktpdCdzIGJ5IHBl
cmZvcm1pbmcgb3VyIG93biB5LWZsaXAgc28gaW1hZ2VzIGFyZSBkcmF3biB0aGUgcmlnaHQtc2lk
ZS11cC4KKyAgICAvLyBXZSBkbyB0aGlzIGF0IHRoZSBib3VuZGFyeSBiZXR3ZWVuIHRoZSB0d28g
QVBJcywgd2hpY2ggaXMgcmlnaHQgaGVyZS4KKyAgICBtX293bmVyLnRyYW5zbGF0ZSgwLCByZWN0
LnNpemUuaGVpZ2h0ICsgMiAqIHJlY3Qub3JpZ2luLnkpOworICAgIG1fb3duZXIuc2NhbGUoRmxv
YXRTaXplKDEsIC0xKSk7CisKKyAgICBhdXRvIGltYWdlID0gQml0bWFwSW1hZ2U6OmNyZWF0ZShj
Z0ltYWdlKTsKKyAgICBtX293bmVyLmFwcGVuZEl0ZW1BbmRVcGRhdGVFeHRlbnQoRHJhd0ltYWdl
OjpjcmVhdGUoaW1hZ2UsIHJlY3QsIHt7IH0sIGltYWdlLT5zaXplKCl9LCB7IEltYWdlT3JpZW50
YXRpb246Ok9yaWdpblRvcFJpZ2h0IH0pKTsKKworICAgIC8vIFVuZG8gdGhlIGFib3ZlIHktZmxp
cCB0byByZXN0b3JlIHRoZSBjb250ZXh0LgorICAgIG1fb3duZXIuc2NhbGUoRmxvYXRTaXplKDEs
IC0xKSk7CisgICAgbV9vd25lci50cmFuc2xhdGUoMCwgLShyZWN0LnNpemUuaGVpZ2h0ICsgMiAq
IHJlY3Qub3JpZ2luLnkpKTsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OmRyYXdHbHlw
aHMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZmZXImIGdseXBoQnVmZmVyLCB1bnNp
Z25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmIHN0YXJ0UG9p
bnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCit7CisgICAgcHJlcGFyZUludGVy
bmFsQ29udGV4dChmb250LCBzbW9vdGhpbmdNb2RlKTsKKyAgICBGb250Q2FzY2FkZTo6ZHJhd0ds
eXBocyhtX2ludGVybmFsQ29udGV4dCwgZm9udCwgZ2x5cGhCdWZmZXIsIGZyb20sIG51bUdseXBo
cywgc3RhcnRQb2ludCwgc21vb3RoaW5nTW9kZSk7CisgICAgY29uY2x1ZGVJbnRlcm5hbENvbnRl
eHQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgRGlzcGxheUxpc3QKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJh
d0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzYWMzMjRiN2IwMGE5ZTE2
YTU2YWQ2NzBjZTA0Y2ZhNzdmYzlmYTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVj
b3JkZXJIYXJmQnV6ei5jcHAKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJE
aXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIgorCisjaW5jbHVkZSAiRGlzcGxheUxpc3RJ
dGVtcy5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0UmVjb3JkZXIuaCIKKyNpbmNsdWRlICJGbG9h
dFBvaW50LmgiCisjaW5jbHVkZSAiRm9udC5oIgorI2luY2x1ZGUgIkdseXBoQnVmZmVyLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKKworRHJhd0ds
eXBoc1JlY29yZGVyOjpEcmF3R2x5cGhzUmVjb3JkZXIoUmVjb3JkZXImIG93bmVyKQorICAgIDog
bV9vd25lcihvd25lcikKK3sKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OmRyYXdHbHlw
aHMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZmZXImIGdseXBoQnVmZmVyLCB1bnNp
Z25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmIHN0YXJ0UG9p
bnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCit7CisgICAgbV9vd25lci5hcHBl
bmRJdGVtQW5kVXBkYXRlRXh0ZW50KERyYXdHbHlwaHM6OmNyZWF0ZShmb250LCBnbHlwaEJ1ZmZl
ci5nbHlwaHMoZnJvbSksIGdseXBoQnVmZmVyLmFkdmFuY2VzKGZyb20pLCBudW1HbHlwaHMsIHN0
YXJ0UG9pbnQsIHNtb290aGluZ01vZGUpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgRGlzcGxheUxp
c3QKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
UmVjb3JkZXIuY3BwCmluZGV4IDFjNTRhZTgyMjkzOTQyMGRkNDBiN2I3MGJhN2UzOWRiYmE2NWZl
OWIuLjRhODU2Y2JiOWNkYmM0ZGI5MTgyMjU4ZmYxYmY0OWVmMDQ2YTNiNGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dFJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKQEAgLTQxLDYgKzQxLDcgQEAgUmVjb3Jk
ZXI6OlJlY29yZGVyKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgRGlzcGxheUxpc3QmIGRpc3Bs
YXlMaXN0LCBjb25zdCBHcmEKICAgICA6IEdyYXBoaWNzQ29udGV4dEltcGwoY29udGV4dCwgaW5p
dGlhbENsaXAsIEFmZmluZVRyYW5zZm9ybSgpKQogICAgICwgbV9kaXNwbGF5TGlzdChkaXNwbGF5
TGlzdCkKICAgICAsIG1fb2JzZXJ2ZXIob2JzZXJ2ZXIpCisgICAgLCBtX2RyYXdHbHlwaHNSZWNv
cmRlcigqdGhpcykKIHsKICAgICBMT0dfV0lUSF9TVFJFQU0oRGlzcGxheUxpc3RzLCBzdHJlYW0g
PDwgIlxuUmVjb3JkaW5nIHdpdGggY2xpcCAiIDw8IGluaXRpYWxDbGlwKTsKICAgICBtX3N0YXRl
U3RhY2suYXBwZW5kKHsgc3RhdGUsIGluaXRpYWxDVE0sIGluaXRpYWxDbGlwIH0pOwpAQCAtMTEx
LDcgKzExMiw3IEBAIHZvaWQgUmVjb3JkZXI6OnNldE1pdGVyTGltaXQoZmxvYXQgbWl0ZXJMaW1p
dCkKIAogdm9pZCBSZWNvcmRlcjo6ZHJhd0dseXBocyhjb25zdCBGb250JiBmb250LCBjb25zdCBH
bHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIG51bUdseXBo
cywgY29uc3QgRmxvYXRQb2ludCYgc3RhcnRQb2ludCwgRm9udFNtb290aGluZ01vZGUgc21vb3Ro
aW5nTW9kZSkKIHsKLSAgICBhcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KERyYXdHbHlwaHM6OmNy
ZWF0ZShmb250LCBnbHlwaEJ1ZmZlci5nbHlwaHMoZnJvbSksIGdseXBoQnVmZmVyLmFkdmFuY2Vz
KGZyb20pLCBudW1HbHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGluZ01vZGUpKTsKKyAgICBtX2Ry
YXdHbHlwaHNSZWNvcmRlci5kcmF3R2x5cGhzKGZvbnQsIGdseXBoQnVmZmVyLCBmcm9tLCBudW1H
bHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGluZ01vZGUpOwogfQogCiBJbWFnZURyYXdSZXN1bHQg
UmVjb3JkZXI6OmRyYXdJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGlu
YXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCkBAIC0zODYsMTMgKzM4Nyw2IEBAIHZvaWQgUmVjb3Jk
ZXI6OmFwcGVuZEl0ZW1BbmRVcGRhdGVFeHRlbnQoUmVmPERyYXdpbmdJdGVtPiYmIGl0ZW0pCiAg
ICAgdXBkYXRlSXRlbUV4dGVudChuZXdJdGVtKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgSXRl
bVR5cGU+Ci1JdGVtVHlwZSYgUmVjb3JkZXI6OmFwcGVuZEl0ZW0oUmVmPEl0ZW1UeXBlPiYmIGl0
ZW0pCi17Ci0gICAgd2lsbEFwcGVuZEl0ZW0oaXRlbS5nZXQoKSk7Ci0gICAgcmV0dXJuIGRvd25j
YXN0PEl0ZW1UeXBlPihtX2Rpc3BsYXlMaXN0LmFwcGVuZChXVEZNb3ZlKGl0ZW0pKSk7Ci19Ci0K
IHZvaWQgUmVjb3JkZXI6OnVwZGF0ZUl0ZW1FeHRlbnQoRHJhd2luZ0l0ZW0mIGl0ZW0pIGNvbnN0
CiB7CiAgICAgaWYgKE9wdGlvbmFsPEZsb2F0UmVjdD4gcmVjdCA9IGl0ZW0ubG9jYWxCb3VuZHMo
Z3JhcGhpY3NDb250ZXh0KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgK
aW5kZXggOWVlMWQzOTM4ZjIzMmYzZjE4ZDk3OGFmNzE4NzAxZDhiZTQ2MzA3Mi4uOGU3NTk2NGUy
NDhjMzNhZGY2NmQ3YzYyYWVmMDhjNTAwZTExYzMxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RSZWNvcmRlci5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgIkRpc3BsYXlMaXN0LmgiCisjaW5jbHVkZSAiRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3Jk
ZXIuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRJbXBsLmgiCiAjaW5jbHVkZSAiSW1hZ2Uu
aCIgLy8gRm9yIEltYWdlOjpUaWxlUnVsZS4KICNpbmNsdWRlICJUZXh0RmxhZ3MuaCIKQEAgLTYx
LDggKzYyLDYgQEAgcHVibGljOgogCiAgICAgc2l6ZV90IGl0ZW1Db3VudCgpIGNvbnN0IHsgcmV0
dXJuIG1fZGlzcGxheUxpc3QuaXRlbUNvdW50KCk7IH0KIAotICAgIHZvaWQgYXBwZW5kSXRlbUFu
ZFVwZGF0ZUV4dGVudChSZWY8RHJhd2luZ0l0ZW0+JiYpOwotCiAgICAgY2xhc3MgT2JzZXJ2ZXIg
ewogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB+T2JzZXJ2ZXIoKSB7IH0KQEAgLTcwLDYg
KzY5LDcgQEAgcHVibGljOgogICAgIH07CiAKIHByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIERy
YXdHbHlwaHNSZWNvcmRlcjsKICAgICBib29sIGhhc1BsYXRmb3JtQ29udGV4dCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQqIHBs
YXRmb3JtQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7IH0KIApAQCAt
MTQ5LDYgKzE0OSw3IEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSXRlbVR5cGU+
CiAgICAgSXRlbVR5cGUmIGFwcGVuZEl0ZW0oUmVmPEl0ZW1UeXBlPiYmKTsKICAgICB2b2lkIHdp
bGxBcHBlbmRJdGVtKGNvbnN0IEl0ZW0mKTsKKyAgICB2b2lkIGFwcGVuZEl0ZW1BbmRVcGRhdGVF
eHRlbnQoUmVmPERyYXdpbmdJdGVtPiYmKTsKIAogICAgIEZsb2F0UmVjdCBleHRlbnRGcm9tTG9j
YWxCb3VuZHMoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7CiAgICAgdm9pZCB1cGRhdGVJdGVtRXh0
ZW50KERyYXdpbmdJdGVtJikgY29uc3Q7CkBAIC0xOTEsOCArMTkyLDE3IEBAIHByaXZhdGU6CiAg
ICAgT2JzZXJ2ZXIqIG1fb2JzZXJ2ZXI7CiAKICAgICBWZWN0b3I8Q29udGV4dFN0YXRlLCAzMj4g
bV9zdGF0ZVN0YWNrOworCisgICAgRHJhd0dseXBoc1JlY29yZGVyIG1fZHJhd0dseXBoc1JlY29y
ZGVyOwogfTsKIAordGVtcGxhdGU8dHlwZW5hbWUgSXRlbVR5cGU+CitJdGVtVHlwZSYgUmVjb3Jk
ZXI6OmFwcGVuZEl0ZW0oUmVmPEl0ZW1UeXBlPiYmIGl0ZW0pCit7CisgICAgd2lsbEFwcGVuZEl0
ZW0oaXRlbS5nZXQoKSk7CisgICAgcmV0dXJuIGRvd25jYXN0PEl0ZW1UeXBlPihtX2Rpc3BsYXlM
aXN0LmFwcGVuZChXVEZNb3ZlKGl0ZW0pKSk7Cit9CisKIH0KIH0KIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZhcy1zYml4LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3RleHQvY2FudmFzLXNiaXgtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hOTJjMDFm
MjI4MTdjOWE1ZTJjZTI4MGFkYmQyNWY5NzgxYWJlNzZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZhcy1zYml4LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw0
MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorQGZvbnQtZmFj
ZSB7CisgICAgZm9udC1mYW1pbHk6ICJXZWJGb250IjsKKyAgICBzcmM6IHVybCgiLi4vLi4vcmVz
b3VyY2VzL0FoZW0udHRmIik7Cit9CisKK2JvZHkgeworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsK
K30KKworaW1nIHsKKyAgICBpbWFnZS1vcmllbnRhdGlvbjogbm9uZTsKK30KKworI29uZSB7Cisg
ICAgcG9zaXRpb246IGFic29sdXRlOworICAgIGxlZnQ6IDIwMHB4OworICAgIHRvcDogNDBweDsK
K30KKworI3R3byB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIGxlZnQ6IDYwMHB4Owor
ICAgIHRvcDogNDhweDsKK30KKworZGl2IHsKKyAgICBmb250OiAyMDBweCAiV2ViRm9udCI7Cisg
ICAgcG9zaXRpb246IGFic29sdXRlOworICAgIGxlZnQ6IDQwMHB4OworICAgIHRvcDogNDBweDsK
K30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpbWcgaWQ9Im9uZSIgc3JjPSJyZXNvdXJj
ZXMvaW1hZ2UxLmpwZyI+Cis8ZGl2PkM8L2Rpdj4KKzxpbWcgaWQ9InR3byIgc3JjPSJyZXNvdXJj
ZXMvaW1hZ2UyLmpwZyI+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3RleHQvY2FudmFzLXNiaXguaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jYW52
YXMtc2JpeC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhYWFhM2M1ZmE2ZjIzNTE0NzdiYTEzYzE1ZGRkZWY2
NDRkMTA0N2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFz
LXNiaXguaHRtbApAQCAtMCwwICsxLDIzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogIldlYkZvbnQiOwor
ICAgIHNyYzogdXJsKCJyZXNvdXJjZXMvQWhlbS1zYml4LnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUi
KTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImNhbnZhcyIgd2lk
dGg9IjgwMCIgaGVpZ2h0PSI4MDAiIHN0eWxlPSJ3aWR0aDogODAwcHg7IGhlaWdodDsgODAwcHg7
Ij48L2NhbnZhcz4KKzxzY3JpcHQ+CitsZXQgZm9udCA9ICIyMDBweCAnV2ViRm9udCciOworZG9j
dW1lbnQuZm9udHMubG9hZChmb250KS50aGVuKGZ1bmN0aW9uKCkgeworICAgIGxldCBjYW52YXMg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7CisgICAgbGV0IGNvbnRleHQgPSBj
YW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICBjb250ZXh0LmZvbnQgPSBmb250OworICAgIGNv
bnRleHQuZmlsbFRleHQoIkFDQiIsIDIwMCwgMjAwKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvcmVzb3VyY2VzL0Fo
ZW0tc2JpeC50dGYgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvcmVzb3VyY2VzL0FoZW0tc2JpeC50
dGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNDNiNjYyZTk3OTI5N2YyYmZmNzM2Yzk5YTMwYzA4ODgxZGIzOGI5NApH
SVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMzk5NzIKemNtZUliMnxTZnUqRCRgJUlYR3IxaVpZeH5E
bCpTdyRrYWR4QzZhal9rMnlue0c/K3peUClIST0jJVJ1MXMxJXUlCnpEUlg5LSZWT0kkUTExSj1A
OF5CcT1se09uP3xyfHw8IyhOSD9ZLUF0ZCMkeW5iKipkZjRXSXgzd0JRV0RmUExDfQp6ZitCZTl4
Z1okeDQmSjlNb1hsTE08TWMtWEs9QWBXUEhTVV5jTGlHajYjeGBjRm54b0txcHZsaz9LZWRqKSZP
OXUKemhwbTtGVyRUZ0owc3dHakZrUWtITXFzSlFCdz1fOGhJd3FBSmJZTHcmfnlON1g5MGxobjRe
bkBTemJXYTJtbWA9CnowWUQybG5mYlYpU1B9WlhERyhwJFowMk5EeXR7JUdoRjxgJWA7TXklLW94
VmQzMnAjJUVDSWotO216JVFfXylydAp6MCZ1aGswQ2ZkYCE4RD5HMFhke3FoUTB6Uk0zQTFTYXYq
fWp6KnM7QUJhIVAyMEokM2c0c3VQcDNgSkZOVT8wRk8KejZFSFhlbG5zTGVSZkcrVFNPNXF4MjhK
THZMYCpkTmdfSG1qezYjZCExanh3ZHBuaGF2MDFJVG1QN254RXotXkVVCnoobSo9NjNvXmh4a099
VUNFYnN0aWdCKnx4OSlkXlVGfnxvNnBiISorVm8oQn1mS3BIZm9gUHJLSWR9bkhmPis9Kgp6Qzxo
Z3c1PiRhfFB5Xm49K05jTmIhM1hkV2Q7Kl9BQldNQyZLcj82c1pKLUA9ZktKY196SmhPezh9eHUp
JjxGYSMKemNRNjJreiVVcEFXOGVvRTJOUGZ0T28zQEkxN15WLV96QzkwQjNKXjtmUGZOND43amcz
KGRZX3ZDQXUyamZeSjIoCnpxMSFSbkZ6SntLT2VVcmJeOCFiS3FydVZQSHNGfFd0aGxXPjRqZFA1
Q3IkX19nV0pFSVl4Xzx2RyMzUkkwfmFJTAp6TWxNI2F0eX47amR8Vm5fcj97LVJDVSg+YTBVQGp3
KDg2ZEBYXzt0K1lGKlFEJn5lZ0pHSDVickhSUUN9V3h2TiEKeiUrKD5WQW5MO3BeZkd9IWZWI3dp
VH0wajhgS1ArZWB3dztaPTE7bi1VQ357YDhyYC0wUXs0PmBidk9EcXg/QXxBCnpKS1ooOWB8PW1N
TCp1QSR2YH19T2E0Yi1GWSZhWkljaGRoPGNiNU10LTJwXipnbEB0JiFjVzIhcF5MQ1k3eXclYwp6
P0ooUik9cHpnaDI0U2NmUCFLKjQrNWpgKkdvZ2kwUFopd05teVhheFhiMUdMPWhHMm1kazl8JVVr
SkFkPCVDMy0Kel5Dclk9aDBqKlBEQiY4UmpuR1Z9QnQkfHVBTDR1X1QhclFKNUhianQyX2J8X0U1
OHFqQFdvJWheI2xhSXU9MEJrCnpRb0tNb00+dFAtMTUzQ34ycXlSd2p1OH0+TXdYX1JoTDx7KXh8
WTV5d0ojfHd4aHkjPj9PQU1DVihPYWVuJl9KQgp6QnlfIyV5M3FCc3RFe1dFdEdGdy1FMkFyXl5K
UW10JEc0N205Z1E4SUpNdWElY2hxKiZiVWY9d0AzXyh0KCFTOGoKel5NM2dRKjw7ald2Yl8xYzJZ
RnQzWm4/S3w8RmwqcGl7SWEhSVQ3QzxIKmw+Yl4zS14pRXtZcSpQJjMzSDM+KTcxCnpePjFrYTEx
UkI7eCZmZUlANU1rVTAxa31+YUlEMEBrcjBTN1pmRCVGb3BFfnJkVVBvUUhNTEJPITdYK0xwbSFv
Vgp6Q3JEd3c2WSY1PCtLJjBZJE8wMnQpPkdEWHUtKj5WYEA7SG91cyRaUCZrTnZ4PS1kYmAxXkU2
V3lxJWRpWiYkJXIKenBZezN0ZjNGVDtXJldjaio3ZCh2b157Snx5KklBNi11M3MwXzRrUE5fbFdp
UGkxcWh+XzRrUFhzcVljJXs9ZEpsCnp5d2BvOD53ZSZNVS08Zz5mZDMxPWlKJjRlLV9nZXFVbEhT
cXVMeW1OPFNxSyFscSFOME9oZGpPZmxaPX0rKk1Vbwp6TF5CP34mOzVOMF5nbz5lOXlBMEJRd0Yo
ZEsheTJeZTkzejNWdE8yVHpHPV9tYFNtX2JeampnWkBQYTw4bUdBc1MKemUzJVF5dGk0ZDFWSTJJ
UGg0QEYtP3t5dWx3fUpsfis1cG1AUUUoKl5BYDl2OzQ5dnFqMUt3NWV3dUNwbGtoSW43Cnp6Z1hy
Zk5EbkVBWTJ8TV81Q0YxMzFMeTtELX4jLT9XZV45fjRMeVZfZm9rOWlwQn1od1hCa0M8Vm5PWGRp
SiVsdwp6aGZ2MispK2p2YzNAUXdqZlhYMkw8KWREcj5RSnF5QDJGYHM4cUkpYUwrP2dRcGpGVUUm
P2FibXZeVi1aSXRyYkgKeiZPI1RYJWg0YXZvIzxpb1BZZVpTNkl7YD43YkFtRiN+ajYmVlZwNmlG
XyRwMG1eK3dVeFpiQjQofT9ORHtKPD1kCnpRSVR5WDwwY2EjbFA1YnNXPUxqOT0wK0FzYzlyWX5T
dnB4Qio+a2RZV1gpdUtXUnY4OG9RYH1lSVdNXnd4ZX5iKwp6YDNaN2NhIT5OSjxQcWVGPGVCNyE8
Z2R4IWxlZCEobEZ3MypRN30/KVExRFNtUUsoWXJRa1lVV1F1dENfcT09ek4KenB+JDlxTFF6VGFp
USs1OEQ4Jk1uNjNkTGAhVXwmTHUkb3V7dE9lRTs4LVRxNnxFXj14dSNkM011eTMobnUpV3ZgCnpF
UDt9aWw5aDVOcjZ9Yi0lRU9kS2xzMSRlbCk7cVlsczc1d1E1STBYcU83TkVxYTJgfHB+NnNZcGtr
LW1MblRTSQp6cEd0QDdCJFdlfDU3aDsjWHNUcVkyVUkwZzY7dXNXVH5zNGZeVkM+c0NoRzBmMEBT
azk4cjFzSz1GfjNLez93UEwKejxFVEBxQTV1VDF1QXkkQz94N3kxVVokYTtWV0hWVUJTTkR7YkJO
fFJqV3JGUDxfdHwzTyMpMkBPK0wqX25tVT9SCnpuKHM4enZ9anJlU35sOTxmQlBwdnQzckUoKWBa
cmMpfD5WYFo0Xy0xWjVDfVlaOF9+bitEX1ZHK01qZTNiZXJnSwp6YmJJTSFVfjdSaDZLWFNZcjNL
T358MT9oX1FHZj9rTlBOTnspUT9wTlZwOUdKcCNlUCN1Mkxnajd7Rzw1U2JAbV4KekMzQEVpT2Il
R2tMTXQhQGpNckYhc1c7ZjdrRjNCbmZNO1h6M1FQfWxIQDV4YVhLc19nM1hCM3xPdkZfbDVEeUtv
CnpPblgtMUZAVFh0Y20qYmRJTGEkOUlpT2B5VFkpS0h5elVCMjRMZ2QjM1FQa3d7KHxZalpZSkI2
X3plKDBZNldKNQp6V3lQKyo4KTFBUnY/RVl0YTRqTH4yVUUlbDQwVzxPYXNgR3UqP2VPS2hDMTFO
Y0xqenoqPDdeKEwhRTRYelhDJkAKeloyckNpTCFFNT91PndQI0BGSTImUVduJCt1bTF8WDBae1ZS
dC15P2NwMHt4WS1VI0QreilAZmV0TjshdTV1WipGCnp2Vzg9VEd3Xl9ySVpTYVJoSEw7SGhDTHZS
e0V+OUcwI0F0SDI8KDZiakoxU21QUVZPP29aKURLMURmIU8xTklRZAp6OW1lNWRJKWRpYGUtWXs9
WVBKdmBERj99bWdSdzVla1VLMlowPlU7aCN0ISVxeCU+T0ZhMWhmUVZwX3ArQFFeYioKejswa0hF
S3EqIV4jUzx4NSF4VHBkO1F7fXo2cTJsdEw+YXdkeC0lPmoyVUgqPkQ8V3Joej5BbnkxPTRlWmYy
Kjd1CnohQn0/fkxPNGZ3YiVmYU5EPilEeDlFNHJyQUVGemlMPlUtazN1V193YVdYJjx7dmtRY1ZU
dTZFe20wU30kJHl0Ngp6MDdMR09EPGxWXktQeU5ia3B+WkI1WH5UNT8xbDBwZFBqSF8xajNNfTVQ
VyhQYVMofVpWNSVjZ3FYQFVGXntoKXcKekBnI0VNNGgmIWooSTJVSGE2fkhOa2swUlJ2Nn1EaUZq
diQ2UyRqaEdMfjApNDFLfTJGVGR3ZUYzRkZMeEZaP3xVCnpWPVJlYkhIZDJxY19QJjtxRVRtSns5
JVlrc3o7PXprZH01QnJ1bzQ3TXMpMisjMzhqKXE/SX5DYGJheEtHPXtWXgp6WiVFT083KUdUMUdi
Y0VSam51fCFUU2UqIURlRUB7cXthe35Oajw8NUBgTy1CQz9Sc1YhPjFMakpzZ1poOylKMEYKemst
eFBxJkowcmJCMShoUTx8P010RlQ3UGJTOT0rdkVCczIkQk5DNyhpflBiVDtVUWQ7Rz5HJjsyWiUq
IyVkMXBLCnpUO1lLbVkhXnNkTU19MVVTfkcpYEopbiQ7PyRAVFNtQ31abz9oMGlfV0l7IzxMezZr
UGthVEpSUSVMT31wKyN5KAp6dDkmOVkkX2VVKlJEdjFJaGdjWHNAYVlZNkF1WmFMTkU3THNqenN6
aCQwUW01anZ1NmxBWDsmU1BlZXxWe3Q+eTYKeksxWFV6emVnJChFbyYkQFFvPGpsTTdUaWU1OCht
Zj9LanErWWlVKHl0TktLPUBhSiZAODM3UWp1bDlJLXp6MnxlCnorNihPfTFkPEBPMH0/RT81LVMx
SmUjSl97X0Ntc3kxZ2dKY20zfm9CMGFDd1dSYlczUjtpfDJuQVBodHk0V3pYcAp6cjNlRllTU2tx
JWZrb0coTlVvdEo0NVQ2NllBekFqdDBZIShBK1kyaFFsIV59X0NwJTB2aDRAXmYyRHsqZFNZdXIK
ek8wZXV6Pll8WUUteFFKMVo7R05vOEo3MU9RdzIpQzhiYjdsTlZpJVo2OGM+UkRmS3J1TlVHQUdA
flpxSD97RURnCnpkRHFxdzU/WlNiQilxb2ZnZGk3eDxPYEFhSCghV01ZcT1LdDFFMGN3cUs8XnVR
WVVmcUoza1dzYk5jVFZnSyNQZwp6fDVpJiFMVGg8UCFvUFYjTFRoPEwhZlcrX1AqWXlSeTluZ2Bj
WikrKENIXjJlNSpBeGl3IzFyeE16R2NYej43R24Keit1eC1sSXV1JmQ2MnVAVXQwTmBTYzFodmlF
dFZBaS1CeXNXXz9rOXtncihOQjl3ZlpCNl5jVnlDRHVxczNqYzFpCnpOYmVBWElJRWYkaHVIaHFA
Sjk7Jil7WnojNkpGRXZCdyQhJWprWThwRjleanxkWGlBT3dkRzYwLTIyeSpyJCZeMQp6Yip2elRN
RSk/PntQbjF9YmApSjVxeUIwbiNLWkIqMzY0eXAoVW1rZUFoUlJNSGRAWDNfb0V3UCFFbWtJeUg+
X0MKekErVmNoKj1SeDkkb3otY2E+eigoNCMhJCNydXdfbFJGKzdgbH1MfDczKCpkVil7JFJTa1Uw
Z0paeDk7PGZrP0l3CnpMaVpvKHw4YjVhKFhVPVpVaj8+PmVANmUwYFR3ZWZ3SHpTeTV0Kkd+K2N6
aTlyRTZ6Z0pXJiYqeHQkfihHSl5tNgp6bnAoOXI1aThGUSZVKypzQmV3RnRURH1fVzMmPD8tKkYz
RCs4emVvaXdNYEg/UmJlVH1vUWMlI1RBN2U+Ml5rc3gKeklaZFB2OWJyMl9ZVmFRXkJYLWk/UTVP
OWglS3VwUnw0OHtMWT13eDBWK0hHbldSPmxPQElOYX0+fkJoMillV0wrCnprYDsqOUNoa3l7em1p
QXwpKFBecV5SSmRGe3g2b2dZT3w0U3RHX0IpNHwzKTZGUEFJdkZQNGtnWmF5cFI/WFJfcgp6U1lM
bCVocFQ8PSYqUV9Od1RmOG8pXytAJDI1ZFdzJml9cH5yR0hUI00xUDMyTlY0fCsrI1hsXjhPYkpH
P1BxYDIKeks5JkUyR0xpb0lTMmQrY3Z8TiNRVGZ8eUtZLS1abV5GTmtEbmoheHlNdmd5OXZec0x3
TGteTXBCZllpITlAQjszCnolPU9RRV8yMD8lKkJibyRhYHlrNTwpfW01QS0mckhZU0BDUE1afF9q
TWo5TnZrdlZSKXI+R0cxaXxwbkBZem1VPwp6TnM8ajJCU0B7KzdVfV9jQy1qMylxOy0oIUFhNkVF
RUhadXxeKzxhNntISFVUe2hsPjVqcyYhSU1CeDQzUm9jSTwKejFBUW4xKHZ3TWtvVkJgRzllO2w3
MChtRVFobXM/MF41NTEmVjhJJGFBYTYzdCZ7RiVlOXsmSDlCbW5EZ3R2fCZaCnomV18mRFVoOzt1
WXlxRG51Z00+QWtYaGJxMSFvbVE1Vm0kYl8kTFRRQVg1RCFvKXlJTmZYbzwzc3h+K1JqemUjagp6
N0VsTSZNe1RXZU8xNCVgSUJPU1k1MWhHYHFsPmMqOV9RaExnRkI5S3VBYihPYnswNUc3YmkxMlg5
MWsxR3RTPUEKei00MVZRWFc/UHo7dGJKaiV7KlcjJmVfRVM9V2I9O1YmaVAqX29yTXE3aklgUGNm
NzVnRTYmOWxBJlIlY1M9JXtVCno7cldSclNpM2tueF9IfDsrdSY1KHQ7e15eeXNVNjRFPjJEZWFV
Jn50N280UylnYD00fU9tSzA9bllwPzsrRjlYYwp6YUpDKkV0fT1weGolTWF+MGdJSnY3TmxHUEY3
N3Noa1lfN3J5Y0omMTUwY3BIWjNkfGQzSlZBY2RnMjhndCEmSTMKekVuRjxFNVNld1lZJjs9IzFJ
UW1qVXN5bX5oXlB4QlpFWWtIVU1iVnQrZ3JkfSlCLTdIQ0MxWHEzJnMlM1JuZ05FCnpNQVYyRUc9
big9UmtWKkIqVkl5e1VRLWtUe18/ZX5gajwhXjImQVZYYntmZnRneElyKXRAIShgQUwrRyE/PXdX
YQp6OD1BMEJ1bHB6MHtnWjNrKTRHNTEmbzt9ZEE4Kn0xeCRkN19fZk18LUMpZlJ4QjtQdjhBR3or
SXtRV0kjLTlKaDQKekY4cjFFQFE/bipiXnFpYWVUblAtJCN3dGFUTDA2IWZBWV4oSTVKfVZ3Umkw
d3tlfnBae0pNWWdBM2ZIOHQtKkV3CnpCeHclK3VsMHRtYHpRYkNkO0NBLXBNKU1+bElLenZkZDYm
c1loSTlWeVF7SXRJIU5NMEkxTnwrez42cGIzfEE/bAp6O1IlSHBjdDlhSnBuJklSUU5tTFlYXl8q
fDtGPn1QYypZaFoqYSRZayt7fER6SmJ7cX51ITV+JTgoOyhNZkNGJkMKemFjVnBDeyZFOHp1bWhl
eiRPfUYxeVRLbWxkKl9FPXJ2I3VzNjxMYGZMaXtxMGR7SVlNcC05N1QkZyk1ViRPOHFTCnoyPSts
PGsrLWI8I0JZfUJhODByJUh+PGNVTHZXUnM3U1J7MDE5WUxrXzkqbnw4dnNMYTRFa25genpKWHNP
dSRLQwp6M1FqQGF0dlUxbkJObXI2KUJ4aDt3fSlRfTlIQlFDYEVLQ35TM25ednpkV0ZCeXI4JCgy
ZDtlYjFFPUFkPUt5JEsKelZofXV6RiZMWiE9Zk1TVjVuT2BucHMjP2RBUGpfcU5EdXtMO0h2MkI7
MSk8KUlVNWk7U3JJdT1hckhiIShrWTVoCno7SHY0QGU+Z0YqN1N5ZXJuJU1BJVF4allNYlojUFlS
XnM1d1heRXFNSn0oaFBoOVcxUCpqTmhCYT1adFUhQSswewp6UGo3cmZKY0Y8dG9QfXBLaFFQQk9E
fk0rfG1Wcj1rMTA7WldjPUJVM05DWGshOGk8QUslUysoN2pxcUdZNmFfJHwKenVxYTl0Nl5hX0o+
IXdBfnEzQlR6czB9RGEpSkRgTTZjZFVXd0hkVnF1Sj5qfFpBRVFFdjd5KmU5NEpsezR6KFN7Cnpo
MmxvPno7KW18UU17O0tXTG8tJTRwRzloSChoTi0jNih2QkErYzNKOUliSF92dFJXUCozO1FlTzt0
P3xkNVE9TAp6aUw1K0RTRHM9a1B3fHpmI0w4Mjg8KkJzdFI3UmVuTFBBMVJYNFpDZzYyY01eVnBz
JGM2JXN+TCM4aWNaTktZeDEKemxgeFRseFdzOzlQQkIkIVZvQm57NjhsJXVpNSRUMk8xZH5QVVIr
ZCtORHIxSWlRdktmI0hYWVgyflI+cmx0QFFICnpRYlk8I21sb2JuIzIxJG9DUTJ3SXN6ayg+UCFi
Xz40I1B5ckJ2cUJnVmRvO1EzcjR9Tk0rO1pyITxFZnNyfllUJQp6VnNgTlNRanp0MFQ/Z3hKO0Qz
Nz8wS25lVzFfd197P0UpSlBzQTxCejRSSEEzTjVLPTYzMTJicVJla0tOMFhUZFoKeiZkJmhPXjMq
NT5xSUNmR0RTKFRwNE1aNShrcjlkNzIoNXZZa3FmbUlJbiRVcGg4M2Y+e2VvWWhjQ0Z3KmB2TjZR
CnolIX07b3M2dlNsVlpfI2AzJFlefWRXPypILSFBUH5nKXYkJTM9WD9eeFZYREduZ090MVM2ZyVj
RmBTNXExZV97Xwp6Z3NyV3VyUWoxbjsrOWZvKUBESyRMTHljfEFgJm5VQV91fD09X3cqMEFePVNi
QXpAKHxBISEqQWFoITtkakh0QVgKejcjenhZJm5CI0xpWV9+UT5sZ2d5NjQhNjhGWSVJSzZndzBk
SVlBaT8lUihYfExYcFVNcVIzN3VmUE5RQV82elFjCnpMWG1Ld3Y0bzAzfERyaCtqUko3TDIqTVk3
RzVTfExoQWJNaDhqcW9rQ2k/fDVNWj05dEJ6ejI4R3tyQk5DbVE+awp6d2BqXjBtPVM8enN1ZyR4
Z3NGZXdeRzlES0AmbjdwaF40SVpGRHhYS2Y/QzBjOUhvJHNvclZ5JmslQ3h3TF9SXnYKejlwK3pq
NnoqKFUhR31fKGxJUzFAUiliV015cyFsVWtoWD9xOGhRbUVpQVVeNDU+MWVYKnBFYVFxbjFYIzYy
QkFUCnpQXmBnT0JWKmRDajBsfW84NDtMejRMPEV9NyQoNj5qMlUydmR6MHY0ZmMmcCZ8RjdhOD95
QnNfJlJRSjJPOz9AXwp6QFZPNygkYzJjeThvdkBvallHZ3ZObCEmbjY5UERSQmtoSFYyX051RDRz
V0VycG96X3pSUjImWDctWCp4RzJSZnQKekJrMlotelh4c1JSWHgyeGxIaiFpLWJtUmpxJGxHd18o
Yip1YGpOdGBfO2UzZTteNzBIZUVYSCFaUkghZ0doVj5WCnooIzcwTDBEazJjXmY3WktlJDVBUmlh
eEdwNzdrWCh2SVFHRVhMK3UlKCZ0PF9KNDw7a0wtRTV4aGgwXnlaMCQ3cwp6K156S2R3Mm9UJUlh
bytyYXcjZ3s8YX1nJm9McnIoSmpgJURQTDlyYTg2U0JyQjVAZkFCaGk5Zkkza0xOZ0ZNJTwKeiEk
O3RIMWF+Vyh4UFh7fDVFc250WmZQeH15SSpaM0ZBVHxae2I2WVVhVXA9UHc2d0lLa2NnbSYkWDx4
Qzd3X3hyCnpWZGteZjhQQn4rVlpSbUwhcmppNXhVMiE4WGxDeD49XkBWck9EM2A4PG9iKjNVJl85
VT14UGd4OE45OF8tPVAwVwp6Q01zKy1sY21Lazs7eD9WanpvP3ZFZDtGYHQoPmZvI1M2aiQhaVd4
PlR4RSFCR0Y7cWB5MHwjWGF9bWQqSFN0I2EKeiV7OzdORyNzR3ozUTZ4MzVrSTsqSyNgQ1J5STkm
O2B+RE44VSk7JGNOV2ArTlZDRFQ0TDh5MzMzbUxxcHh4Sk56CnokNFZfSW83bzZMUTFBfjRmYH5U
UFhjc3wxcUZ8TEY7SUZ6QHpeen5GOGQlckJ4KDMhWXUmI2wxNGc5flNmIzI0bgp6bHsyKER5ckZG
ZjJxVkRmJGZgKyY2QlE1d1FwJWMjJHE+XlQwN1cqRzV4e0tRcTBSPSlVTm5GUUxNUT9YNWd9MSYK
ekYlZFNqMC0hfGY3OW5YN2FXPUglK0pNfEQ1e1ZYSzNkNFd6KTRWSXZoRWhqdT53I3dER3UkWihx
bDZjTGtySmVVCno4eUZOOUtyXkIrajN+a3pYaHtQVUlmezRAdiV3en04YmR9LWZ1KkZQcmh5MHJA
VTBldyFKeEA3PG0zcE9yfnNHXwp6JFFhMnRaV21VZipyYTJJPCNKO1ozNjhvPSQqdWg4Q0EwMl9B
M1VQdz9xe2l9SCphQkstTVY4WkAyPWZAI0the2UKenJLRHc0X04lST9ZaUooT0pGMEpCYzxpezVn
ezc2WGpqZiRNLW93KyYrc0RgTS0xIVJeTG9RdnU1Kj4zYkh0emIzCnpfPUcjRFkzWCt9P3ElTjNk
ekBjVFNYNWx7PGtqbXA8clM0eClpb2EqSzdEUiVgcUpGO147PnNPWihzbFNmeCs+Swp6JCpKaj8q
fTAkZGgrT2I+aXpGOE9CfXcpdHhmcjJiWGZpU2s4NVdUWGg0d31TWEN4IXZFPTtqZU5lNjRAd3V3
dDUKem4zNzMzPmhgMFRSTlNKdktiWHprS1R2UHg1Jk9EaDkxKUV1Kn1vPigqPyZ2MlV4TkxYc30q
fHI7WlklTEZFUmBnCnpmK0FxWkQ5OS0maCZQc3NrXilQR3JKJGdzZndoUVM1VGQxX3JiUGstTkNa
V3FLI3N3WFEpNE54TTNuIzM1QiU+bAp6QE9fLW4wJSRTdC1IajIkMnRQd0tZaE58a04hYzZzWUlG
elI8SnQ/fW5mPz0/JmNUNDskYGhhKHQ+YmFSYzRLTn4KentfWEVseHA2NkYze0twZVFUbzlxVmZt
QHlBcD9fdjtfX3U1cWlhfXF4fFVhWSlweXROJV5XRCg4PmN4aj8ybnpQCno8MnZ3ZXpLLUcydiNx
aE1PWitfZCZYPjZfVz8qaykyX1hBS2x1eGQ1O19sXi1ne35BSXhndUA2cFlNRG9jVjB4Ugp6bVFV
PyMtTUVuUnJkR0RlMFZCMWUpVDM4PkZQQHFeKVVWSkxHKEErR3txbTghZVhNcWoqbUIjXkpHdCFJ
azRgbXUKejQ3ezhlJVJhYmdBeyNmKmFNJG0xYGxyNDcpVjJ0blMhQUEhZVIkZkUhRHowa296MnEh
aiZnUk5ULVljNHhya0R8CnpGcyhzeUk8Xk0mR1NeNCVUN0Fodm45Rytfbj0laHFmNn5rZSopTWhX
e084MnVHcEB5PD1lSipyKHs4YGp4cUNWQAp6SzMwcHlzKmR7M3dFZiYqKDtLNm5BYnkjISpVbD5X
Wi10JVdyKW5NNXlJblRFUW9mdFRILWcpM01LfGZrPkVoUkcKeiUka3JYayhNeSp6JjF2PWRza01u
VmNaZWRHLXFCWikyfEJHQ1h7MWRWJnlvMz5Xek1DRks8cjFKa3J4KjhUeDlVCnpBYig+JnViaHs3
SGZNUlFiSF41a3RKezN7LSEheTAtdFl4MHtjPDM9cU80fDdJOGsrb2o9cmtUTjZXLUlZVTwtZwp6
am1+MXtoM3dMd00/UntSRi04WW4kV3dGYzk1UihfU3V+R2xKJGFiKm90aVMrJWA+aFU0TjBHfnVv
VkhjazlpODQKeisoZkRyZCplXjNIJSZkQHk9R3kldnQyJkN4UX1JYldxVytjYyVLVHRBOUtsNGlg
PWtBOVI+T2FuNGRKMklPeH58Cno/I1AkdG9vRU9yME1pTStrSVE+fWhQMXwyWFFDN0lwN0QySXQ3
fnYmdUhTY2hJa3E9OWI5YkJUb3FiKzZLOXRuRQp6S2t2eFJzbX1afkFMeyRMSytlRFJOcjcrN2Ao
Wmd8JEc2ezFtXkspd0tSS2M9PGQqMUI4ISUwRkA7RERGenVWOyoKeileRT02WXZHN1cjU2AzPl84
dGQocEghUnoxJXFEd1B3YHBIZzlWcTRjdHlMaktLP2BpMlklLTg4R3BHflN2QzVXCnpUZ05QUz1Q
YFhDQHpKJTZ6NGxlb21rY0w8TzdvKWB3VH1ZRklpODFza1pONmUzV2d1ITMydj1YWFFpYjNHdl5s
IQp6WVgrTUtEIVEzfmNDS3psUSlAP1oldT08WTsmUT9FS180bVdta0pARGY/XksjNTx0VW8jcm0o
QlN6RnpjM0dXeGoKenVqK2dyZSZQSypRTFRwaTh0YiNlc2shWCNyfWZqdTYpJERLLVRjZjs7Z34+
LU1iOUMoZiRCd3ZzaHFKY21vdkd7Cno4YC0mSilrN3VnOSV2ME9ZYFc1eUxqWDNNV0t9NVAxSlJG
bz4lVSY1XzI4RHVFalY3V2IyalgtOy0pdH4jJHdhRwp6aXd3YWJaI1dyUyQobmd8X290KC1SYCpz
OU9JTEV0V25UQHRWcE1ZMyspMVd8PCROZ2JTdiZkeHArS2owTzVRQGcKenB7cnhmcihiXyU5JnNf
K0tfPDFhXjEwT1g/Qlk7ZD1+NWk7d2FYJn55QmEwSTRlSlAwaTJ0O2RxSz03X0dmeV42CnpqYykx
cCEtcFI0JkQ8dCtKYypIXlR6JVdTY3toNXNeNi1YOEFZYlJWJSQhQzUlcFEjJTF1PSg4NGYhSTN3
KntYRwp6JUokbilJYjhCPlNLLXh6UnEzYVd6MCpJLW0tK29FMUV3aChANz8qPkJ8Sk8rN1hPMnFE
aGFYM0hkbnlme2smKjgKekMhdExMeE8rdip2a2IxUGhtNzhqIXFXWnEtZklaUylZOTx6aHc8fURl
Xj1ebjRSPiVALWJgXm1CMSpBbHlmO0Y1CnppK3R0Slp6YWM8KFF8e2x0WWg9enRBe1c8Z30kJj5f
fm1qYGxyJXFNXzMzQzdZZnJIIV9ZI2g2KztyKU93ODdZMQp6TTltWTZhP2Y2I3VHcXJRcXhocD09
anBYe0s4UUFuNWRmPWdsTzl2dCVtKT4yanE8ZFg4Kkg9TzMhZ0tXTzRFKEcKekZPKElVYWdjQDda
UUVDPUtYP01iUUtqRnZZfH1UNT9uJGVVMHZtVDsrR3d6R2t2XkAqRSNiQzZhMjkyb3h8MlZMCnpS
TUNeZ2Z0U2w7KmBBLWlSb3RJQXV6NkMlU2dmcnp3RW5KUXpXSGBeK2tTSkZVMi1xdT5VJFJsSEMo
YzdKWVR4KQp6OUFAcispWmRDM0dUaj54cWokbVFiZFB0MHpuVyZjSDBYez4qeX4pVDxKQHppYX1a
TSNjREElQ0BGQEdmcyU4SE0KemY3U0U3RV4pJl9nWUN6Wi1YO3ZzdkxFaF9JaGpFRHFUeyZNNzdS
eTh7blZZKStNKjU9KjRPVmZSfEtgQU9CbCMkCnpURHQ9UmZ+MjEkWD9feHd3TUBaMFhKd3IhX3RW
VloreHJ1Kl9UdWFEP1QoVDFfPSt+X2ZzRVp2NSY3Wm9DZFc1cwp6c2J4SGxkNzNaSi1Cb2JvZFBR
OVNKMWc1XjktZ35fanV6KlZDbGVPekc/b1cyWT8jQHtnRiNFaVAxVUM0UEIpaH4KejkqPHwleE8m
TC1vdVJ4b19MRV5fcXt9SikjYGZUMTRxKGhzQGVGZm1gPEAlS3lkT0FxdHs/eVU+OVNIYU99Sk1O
CnpeV2JhNngrSGdCbHdZS0ZJIz0qbipWYW9fN09pYW9ifk9+SS04RSZPYTR0WGZwTCRTI0ZrcFhP
bn1vWXR7X2NNNAp6cnY9QGdjfG1AaSVTIXw+SnkzX0ArPVYtM2dVMlYlYHlEO2FQXyM2elkzc2xx
TEhJQ1JIRm4kbU9NKGRaRFlqOEkKeiZWSWQwWmB6Q2QpczJATFU3RFd5T0ZNbnJZcndCYkgkNTAz
RE9fREwkNmR0Qj93fkt7XjZpOXxxa1lqbnRyeW1zCno2aTU0R3MrTDRlWnkpX0NYV289S2Fadlg1
NCk1RERtIWw0cHY8T0c1PUxEITE5MDwrYz02bEw5Xm8rOUtKY3FWdgp6eF9ffDRfQD9zUD1XVU1J
P0YrbGdBR2VUSyh0UV5iODJjM2FXe2dwTmtBQE41Km9GOHw5eyZgTmF4KD95JTFZJTkKenJ9T3V3
WShEVz8ydSRmIU5SQUE8ZVQ9bUBOaVExQ0dRJkMkeD9DYE10RWx8eGFrKCRPYEd3YktaJV5iMjRW
QDczCnpIP2ZKfFkkOX1yNTB2diUjZXw7ME5BdyR1aXx+Sn15PVZOUEAwaSFNa30zSzJTVCEwbF9w
YVNQLU9sKCRPemIrdwp6UmMoSWhqaiR9TTYwM04zbD5mPCglUjJHfS0heHdMOT0/NXN3XkthQlZj
aGd9ajcwTn1CckZiVlhWSFMwSHphcEYKeiQ0K2gzNU03dklET193Nklhalh7cXhDVE16KntTYVRN
S29xby1Pen0xRlFPclZoNCpaKXUkVjJfUjNWTG9KZVcmCnpXZFpjOVNzT2RRRjxoYFQ1NCpxcndr
NGBYfENFfmdVQXt3ZVoob2xUYmJzRjRxcG5nPSoyUipQaHpWRGRfY0lpSQp6V3MjSF5WWEV1PEpA
ZjhldEopdDtGUHBaI1kyaXJSWD5SJjFUekZEZ2RhPlRgKXpkbGd1SDdHJUJ0cDxuSX5pRTQKeio/
LW5hRW9ReFVudG0jeE9udElkcF5GNzJHRm08R0JGbndBTU5JYyRWJUdnSmkqMjwxa0JzfkJwMjto
e091ZyZyCnpvQSNqb2pBdVEpLU58al4wO0woPjMhaHMoSmxrX21LZ1IxbGdfaD1uPz5+LS1USFly
Qj87PlJ4aX19WC1FMkY4Twp6PGFEeFlhcTI0bS1CaTVOP0IyQjBaJG0ye2h5K2loP2Q8Q3dPM0lx
YntYQjZgZCs8bktNYGc3ST97ZjJ3ejV1RXAKek5eLVMmTSVRZllUZSFCSUVScE0kR2ktP0I5ZXcq
KXk4MmJ0ISNlcjcwYUpQWjRXVTFjczwoJVg+Q0FIUFcmeU13Cnp4d25zOz5ZM152b3l4OEV4dE14
OUc8RE59JGtNSzNpSSRrK044aXArKWsmaDZxS2NtRiMpM195P0J2cU5mVWpJQQp6PEdASzhMd1VM
ajY8cmgoSiZefiFRPiFfTG14R3E8Zz8hdCpsVHpgUGcwQVhNd3s8Uno1UCpOc15nUnMqIXBGR30K
ejNPZmMkKDEmO1NaS1BLb3tpKCFUc0JORjVjeGZJKihjKTRoJVBKeyhpP1RLUnNrJmVEbGNqYGIr
bS1tQW9sR2p5Cno7WkhtQztoa0lzX081OF8hfj8kTUdYJF88I09tVkM0XitsfD5VKEQ/Kyt4QzBK
VnMyQDhAP3J+V0xDOF9uYmdPfAp6c2g7Y3F7NWI5MHc9RSV4VVYlK0syYTQ1cHhFMENLKGlofUM2
TWZJQ0paQGszV35iIWxJd2ZBVnJzJiFxJHJXKzQKem5eWmhnT2Z4U1lWWlItK1dEfDU8S0k+LWo1
OWdBTlckSWQ9S0Q/Iy1jMkkpI1dxKi08JVhPdzUmWW9XRnBgM0s1CnpNJjZ9O25EUXsxaVJaSlg4
UysoOzYjNG1AamxyKm9LSEdVYk9Xbj1rUUZabjRZbiNHRll5QlVKLU9ePnYrM0lsTwp6e08wZWhE
N35zV2NXajFPXiRER2IoU3o9blQkTS02aWtAQEM9TTxHUW5XejFmNVkycTs1ZEhwRVF+ZFAjPiRr
Yl8Kei0xbEJ7M0xDUVI2YitCPm5xQGpXPUAkMHohODQ9Rj5palA/MHBwOVZyVyVJKDR6Rn4ySk1G
YyhsQXE2OUcjM3IwCnp0WTBXZENqY3RMRD56ITcmKDsmXkV0YmIwNipFUV4kSkRpWDwrTXBNbyNN
R0pWQD8ydTw0MT5NNHMrQGo1V3RPTAp6Yzc2WkM9R1cqbEA1VEY2SVh5UWpjKDZVOG0pZUExU15o
WDAoZSQmYSZhVjZVI3l6eWcwJj5zV2dIamBJRnV2eHoKekg8UXUyczUtdkVBYmhDaSR2KTlPVSZ+
V284MX42fGVZc2hJT2Y0PERvbysjdmVQVG5Cb0FWVlM0bEFGKVVyUlV8Cnp8RD5Bc3tIRC12c1dD
Pk1faWpGSl9OZjNSOXJsajBWWTlBVnE9eCtDYXZ3SFIjQHM4TFBnN1I0Jj5WPG5pPGF0RQp6OVFg
MnByZjdrLWFtPlB2WDlDa3hsZ0NofF4mekd5KiFaKkNQa3IwYFklZDJrZE1pJWYkOWEjNmxYWlBf
JDk2XyMKeip0T1F9ZE0qMk1BbFNxeT52fE4lUUZSaXZxdj4zQCtkIT9gJCp0Qn48IT9UNVlQPFF4
c3FIb0lYITRsa1Ffcn0oCnpFRzlBYHkkV2BwPkx0RjBSMVBEfSU3YmhMc2s+I0xld2MyMERXeG1G
TmhqOVMtTUF4IXVhYyNrbF9VQVc+MCtIYQp6Kl5RTFc9TkFra3tJXzFse3FVI2YqNjVoezhkQlp4
XmZVYEtnLUdlOTNucHolSjshVStQcTBoJjEkZER3bnIkMjkKej5aWWFGRmJudFZ8OUk7bUVyKihy
I0tRWHghQVQ1PCMrPD1TQ1IwUk52KWlKPTY/TU9mantibGZAdk53dXdxd2dwCnomcCMkRkI+KClM
OTRsI0dJTU85U2BMbEZIOStmdVhMOyhHZl94b3I+MkBVZ0dfKX0zT21UeVoyLSVRc30tRHxlcwp6
KEN2eUhEME0hel57Mjk4U1E3Vkg/d1BBNjR4WClsYHBPa0dXb3FBWHR+K2ZFTyhvX15uYGRvcyNq
R2EkejZ7PjwKenhaSEo0Pkwhb2VLTDNld0doVWghUFIqWX1BIT00OSZmZE5fVj59VCtYSztGKDx9
THIkNlJkOG1Fd3BAMW9tWU09CnoxY2xGdzZrVyVzYnQ8dTNOKX44VyE2JTdNVyMwJUNvNnxLM3xK
SypjdjJ6IVBMVSZVRyRDM2w5bH5qU2A3QT5gPwp6SHk9SXVaKy1hZ3QtJD1GY2ZlRnB3WlRNeDtg
V0kwPDNOPis/cWs9M1h2LUxkeHdQcDlOfFhEeDgodmBsQF9DIS0Kem0xV3ZRMjN+ekRaKSlsJS1G
PmA7cyFsSnY+dUY4Ml9YdVFKVWZwKHt2VnJ5eVp8K2E9WUpQRCk/ZEZNdHFjWjZSCno0NjU4dyNk
Qk1Kdzc3Y1BvOzBkalhqOXFGVlptSTFaKEAwMXhPN3YyeX5oMXYreDx2R3pNVGg3KUFsXyo7fWZB
Iwp6VnR1eDh6UkBJdXlpc1o1VHM/Ym53eWNSa3FyUHhDendneTBtdkB3PjZpYkheYGR2MCRmQklO
Rkc8b2x4YGg7OHAKenVvfE57Qz5IKEZfdWglZVlBSVZ6ViVZa0JGeFA0Pz5eZ292WjE0MSFEbTlL
MSl0dDRSTU5Mej1rTFg/JSlwWTJJCnpZUHtncTVQRT8xXkx8X01AYFlLPUBKVz1zK2xkNER5KiRZ
bEd9NzdpN2psQkU8Z0xZUGxYQV45NGIzLWkzSnE+Owp6UCl2N0sqcyt1I3Irc0pPeD8hSENsUDdi
XjxlUF91bCkkcGJhS0o4NlNeM1Z7KFVmQTxJeDJRTC09Z3deX3AlcjEKenpPa21vVFheTlVgdF4p
PDB8cTBIYCR1cDJPbGhWWDw+O0kldlk0RGJoO0QzVDtmWEEqQ15pX1NfcihAKjkld3RPCno/aS1+
cXA8ZEx4TG1SdkJXJEo8YTJVUEUzWU18V1hfOGFjX0RlLUpPKzNVM0IyZX51cmBKJVA+clV2Q1lr
QTRgaQp6X1Y+I2V1P1p8dm4zfVZ+IyhicHs1ejJuRCYrLXl8VVhGQj5kYiokYzZnQndpUnVIY2l3
Nil1UmxNfEJ5JWc0dmoKemhvZjFwZCQ7cjBWMz9iNnItYiVfKDI8aVZPfSNnWU0pK3pAK0JBSzVh
eU4kT3lIdmtqYCY+aDEzUW85Und1SlRXCnoqJXdaSE1YdFBrZ0xXR0ZaQi1+LSpRVWx8TS1POUhW
YGxATWRYcn16YDhUPGp6WX5DQjdgR3h7LVNLYipRJE1kdAp6MCZ1PXtQS0VJNHJ8ZzJ1ZnEzKXcp
N0NYZFYpRDh5UGp4Ulk3QFhoSW43MyhiK2xkUTBCYDR9dzIzazFeQ1MmR1kKejREeHFgbHw2aEl4
Jkt7X2B7M3phe1ZgK3UrenJtPTNJK3F3c0A4bFp4QlQzaFhxeUlnPkp1YDJ4cUNiNVJWekIpCnom
LS1aN3pCSTluPXk0WTw/I0A4UjgzZWBCWnVEaDErZURlX0ArbCZCYEdUcCR3KVReNFlUS1diVVNo
b185SVl9TAp6KHtTYTlfPiRLYUFNUWAxTVVHIyVDS1ptblA4aTVZYHNqNW4+TWo0Qnl1NVA/UzJY
P1o9QGd0cF8ydUY/Tl9+YkYKej98MGNLb0VTTTRaYGlCKSUxbTgwcU4lQj16PCt3bilrV29WNmc/
c1d0ezEkP0ladTk+JjJzNE9XYVJxa0UrPiE/Cno4OXsmMDt4NHw5dWYrT2lmVVUjeCt0PUoze3JX
Vj1gYzk5dldFP3FRdFB5Znxle0kjRylSLVl4cXZ2Vll5ZGIrbAp6c0BgcyE+bUtSQFFATGFYYkMq
MypjR05+RCpTVXc5JEptQnhBTSVUNyUob2FQZlQqYXdxMGYkUUZSS156MGlvcFYKemxBR29YJCVj
QSRHcVpEaGx3Vm4yJVFzO05EaklMUGwtK0U4UnNUdHR5SD5NcmNlcj1aM2tQJC1EOytgd3lZNFJZ
CnpvZXZrZi16VU9PQzBFcUlXPzArKGpVJG9nWHh5dSpOUmZCTktMaGFmTnsxQXI5djB0dkVVST1C
TTRVZHdzV1dITAp6UU99amhDd0JBRShjYnZpP1AwP0tyZ3IweC0hISVzclFkb0xOcXloU1VFUDBT
aTUjej5GandvSFc0cDt0KHJiZ3QKei1ta0JpbHdXKHhePCM8fSVNPzF4V2ttTjNLUXA5WFAldGZ7
bXMjVERKSzMxdWBvK205K2N+QjlSLVl7TSZiUFpOCnpXWmFEMVUtano3ZXpnKF52MXQ/ekhfa3FP
byRKWTRZbSsyJXxFa3ZGYGw4MDdlN2xXRD9qOU1RR30pNjl1Sm5SbQp6cm15JSNqJEhRbW18a1Fx
QDdxTCUxSCs1RUh5ekYjY3dmMVBEPEpiPStNfCRkMmtHUGM2XmU3TiUqRUB4Wm5rJVMKeiV9fWQ1
YClKPGo+d0BSRzB9V2gxY2hKfnVPdGF+IUlPMHkzYk5OTzxkRTQ3MDhrPjh3NTFob3YzSlJ9fGFs
SHNPCnprI1M5KCUwQVB+UzheazM8RUZtdVZBSkArVngjbFBudW0+Y2Q5aXdKZW8zbj9UWnxvQWwl
Q2duSG9uYiQtJEtXeQp6K2lxdktMfUpDXzFHMXxDWlE8I0swRWYqRm9JWTlGJVlDZFpiPGZjJE1K
PGI0KUdBSlhjd1hPcXEoVlJCLVNfKX0Kek1eIzxFJWB5d2RqQnplYVlQPV9XcDElNT0oI09FUEJr
KTNjam1hNW5pSntqS2hZYU5WVWw5UFItTzBDMSs/KStICnokPC1DPSk+MDxJJnw8aiUlaVJGY0JO
diVXcVUoRHZ3IU5Odmw8PDkrMEJtIXloWU02cnJ0azxIbDJ2RH5GOV9Kbgp6UGNOPzl1YkVfZ3Z8
VzV4UDU7cU9qS1ZmOCQtfXF2b1VYK2xidHhTUD9ONyhnRG43bSpZLTE4UDZoTUVocSRUQnwKemRg
VlpSIUJUUVhDKSZpTkJBZURtaWlYPVA8aGd2N18xa2FXPVd9TjZJTCFNLUQpZyVzeDheZWgjKWZI
VVJ+WG5PCno9c2xURF5KVDZkJml6e2JFa1Z9RmQ5PkVxXjA9fTFKIyNqVzxkTk5EMUlGKE5BbiNQ
P2pgQztFcUgyISliZ1BhfAp6UDBsemxwVlU8VGchekwoO3BidH5PeG8pUUkoSyNUQyZmUEkkVEFi
WHw1fWNvV2lpOzI/MzU/KExoNnRufEgoWkoKenY5YDd1WnZgeXRMITYmbXY3Mng0ekdfaFBgbDRg
UVRqKylFMnhhWGU9OT0wQztrbWxeQXMhK2xtb197KyNLSVImCnpGTXxDI1Y0QUFqKlM8WFVWVDJ5
RT9zT1pQKlN7OTRQRm9ATUliUCU9d2tfYmtmI2A8WS1rSCVeSXlFemNmdUB+LQp6Xit8SFVobXhF
MUB+TXk2eWx3azN0VlF7KTxtJlZEOU80Q3IkRVd6eHc7Z30yTGJFQVNHYEtTRz5+b3tDOy1VP20K
eiFqPkYxd04zQll0a1k8eTN7OWYpcz9SS1JhfCY4Qzc0PDU9KFNJKVk5TnA4RVV6cEp5UnsxKWF4
dHhkYm1jU1VFCnp2NSZYOG5WUVh9enE9Pzwpa143V3d3fklqP3ljIUomVjBSNkhLPEdnRjlQdFVr
TUIwdGVzMHRfNnsrfFJ6amQqQgp6dyVwJXJMRjthXjlzY1hrIUdrb21FVUJWWlMwXntmdktpY1BK
Wnd+NG9jODN4TiY4UHBII3IzZy1xdX4rPmRJdSUKemZBVU55PDhaKndvUUFKdUtAUV87U005NHRB
S0hIP1ptIS1WJWpzZmpHK0JQciV5RnImNTt7Kjc5bGl1b3NqJHo2CnpPJT1CWSluWnMjWHV+dFkw
fmBqMF57cj97d0k2aktOZ01rZjc8WGJmcVomSVo7T2JNYWs9OUQzc2NpbUAzYzcpKAp6bUBJTmNV
bnFSbU4xNC1YM2ROSz54PkNyKVNFdW5hZ3cwKkwkTUNpRXEtZUFBbzN2NTNYX31ibm5ZKWlxMSY2
WXkKeldVfUttcE59VGVPVXNAPCZGT2ElJVZXdjBaK1hPQXtONXw+O2p7eV9sWVZIfmBBTXgtLXV1
Z2tfdnYlSHpMdTVOCno5fH5QIW19XitmaVdyNUhPa21+UWAhNlAoZ3ZMMilUTFNQdl5NfSFkKCM3
Kjh6Zktwdl5XXzNGaHN3bWMjSThXYAp6S0QmRko2flR2Xl8rbm4jKFgjfGtTTjB+ezUpWkthc2tk
JDZgWHotQVRjTTU0Rjt+ZXYmI19HO29vRFFoTmord2UKenJUOGdGTllLWDhpYHMoekRVWWJMQUtu
e2xuelEkYGkmZWEhI0VubjA+OHI7IysyKmkmRSphbD9XI3lWZShOMWo8CnphaiNDPkZhT3omckBK
cDcmT2hKZD8ySWB6a0xMNjNlcHRaRXsycmZyPkNvdDJQcmxNNFhRP2NVUENhMH02V0w9cQp6bmJo
ancjandSO0NKP1diY35WOEx4U2grR0VwZUo8O0wxY3BGNWtucmdJMVA/ZU50YUM2fXM2JjlIJXE4
JEM+dEQKempNQD0zWXAmYHFGcVl2Z3pzS1I1TkszPSkxMVd5MXNyUz5aRXwqVj1oUFcoaDwmeTND
WUVuZDdRcVFoNVZ4cEJpCnpVUmhiVkJ1QEU/cUswKWxjPzFqViRVT2NlNiU/OElFfG1xcFA4XkYj
JF9VT1AqPzlSe3E9VFAtKmRxYUhKQmJVZQp6TVBRMG97OzlVbyhCWCFjTjdIe35aOU4qdHdXLSVa
WipaXlYlJSQtTWh1KndTdVQhb3ApNGJMbXhAPEYlNko5d0oKei0pT2trSD8zbExmPXtPMD9Pe3FL
JmdMU3Y8Qyo7TyQwOUdVdXhlRnZyOGE9YDx7WH5xaF8mKlJSV35sQCVHPD49CnpHUl4rJWQ2QGI0
LVUkUVM+IXl0RmRVeEVPbUNxZ0Z5SVhhfElzZkw2Skp0NCRgKDBDdTZxWCROZ0Y7Tz1AJXNtNAp6
KzBEdiR4WmxncVp8MSNHbVN2T0NTZUVJK0hGMGpWdCVSPFh1Zm8rfkxwe151Y0ZNRlh4X09KYEN6
XmBiRFE2JHAKenk/QHp8b1MoNXhXVnZXKFUmNW5vd3dLQVlGQTliOEFKJWpRSUQ4TGt7Pz0/Z2V5
MWpEPWwybmpYaUApU1l6fCthCno9WE83fCUtNiF1QzVJdH5XX3QkN2ErdyVyLT9Be3BwcEt1ZUtB
MXhLej1DNz5nSnlSZE1BRTR5QGc5bXdYMnhsVwp6a0drLWNFe14mYT4/aj9oTzBJOWVyTm0+QXVe
QEhOeXlaU2NrZEZfUW98REJaYlkqaHNrU1J5XjgyYn1yPUZkMHcKekk5MG5PaWFKJUNwOEVPeEsp
ZSNAemh8eSs2MjRJaz11OTBzJUQyJWlzaz0hck9mJTdgVFcmSks9PDs0aWxsS3wxCnpCbFRuKWl3
KnZkbWZrRTU1UCo8bGomSHBkVWFNVmptV0tlSURiOWMxWXteTXo+ZiY5eEV+aEJ1PGBVclRCekgq
ZQp6b0xmamBlfSUqSyh4cTY7bWVXcCRkNSgxMGhCYVJvWT47eV5iXktBdW9wPWhmSDAtQXJFdTVJ
N1ZIezxtKDdFeH0KejZWV1MpZ1lGYTYkd15KZ2N9MTZSSjQ4R0BkN15kP3F1YGkoTjxYO2s+UWl8
Tit4U3BXKEs+ZjRlX2wyRGg1VldLCnojampNaXg0NS0jIV5mRFdKNmcwbztAVkt8P2I2PUI4Ujhl
T19tPG5IYHVTTEBwc3d0YUwoVmo+d3Q7PEhYMEVxRQp6cGtCdSFZUD5oNVBBeWAwMW9kfTRKVHNY
KTBEKXt4O2BrcmVEPHNVaW8jPlpVYFVHQXpLQTtoMW9BMmZmM3cpYDkKemM1NlJKWl57O21aJUsy
SSlybDhvMypFTG8tdXFOa19faDFgbk9oSTUyY0JPcm4ydUl0dkhCdEwrLVZgfW1kSD1HCnpRemVf
VDMpQzJOdkFPfXp4N05rSC1aSWt+Y2FTZj9CVz0lODsqQC1hWj1KKTsqfjhkXzMzQnFjJk4mRENq
QUpiMgp6bWQxdms9UU9HKnteNU81QVRRZTFmYzk5SWJqViRMU05XeyRxdHxmaC11K0hGO3lmTGY3
QUBtbWBQXnROR3NIZFMKemFjb2V9S2NsfFNobE1qdGgyc3tVSTxIJX07S2x4SkNGWHR9LVEhRHFH
ZHFYQXMtTWFBbWgwSG91dk1LP2JtXk1TCnpUPytZZk9BfipfSWJWMUdeIUZjR0IrO1M4V05aZjQj
QCN9RmVMZE9remY9K3xUZkNJT1NMen40SkZYdEdCaExLKAp6ZzZwPkRybGw9K0tZWUcoYVp1Zmt4
fj1Zbj5+KGtITEdecHtPQG1xKTNvPF9GZ0xYUntxJkpqZmdrSUJTSmw5QCsKejh0NV9pU1N8MHZe
b1VsP3lOYnF7MjliKUZLOSpQKGgzVzVJPEhDdT9tUyh5fmF0fThqdDIlMzVufjJWdWhAPCY1Cnp6
Qm5geilOSnNAc2QxVzgtQHhGTiM/RUUtalBRYVY2UmJLIyVGR1dkLTxwKHJ2eUJJYmYxYW1XKnJp
VUpLJWVWbAp6Izh1SjU2RnVAWFBVK0xCRTVlKHVXeSg3NEBEYjJ8RyRaR0s+JndyMHg3Y0JBYVds
fmk+PVl0aXtlODJGOVpQJUkKekdpWFl9Yj42YktQYTE0RTZ9YyN+XlhTRVg9RSpxaztAQnMyTzRT
UmNaanIzVEx5SDU9eXQoX2RJfHlKJXJfXm5tCnoyN21LKmlEfUlJJEVtJUVnX1B5PTN+dTR3Kmxr
Wk5JZXlORndOKCRmNWtMVXFgUngrckBCdEhWMmZrMVRleDhvSQp6Xk54WT1lJTVFNm9hZiQ8N1Y1
XlcrWnllT3NjIW01OWBkSXxHVm1sN0dvTnpsK0FWOG9KVVk1aEs3O2A3S1hHak0KeilNSS1TO35j
PVMlYGF4YXBwZSNpLXhzJHktZ31DcyVMViVVUjBoMSVZVldJX1VtcX5nWncpVEhwYnxVXnJuMCpR
CnomWCU0STJqcDchaHQ1M0woXkhRV0peTCpFZFFzOHl1U2YxNGheQXJ0az5UYTRqaGg8TEhzbjJQ
TiQhVW8leEVRbQp6JnFrfjxqQD1oSih6LV5SMUtnSXlNSipDOU1oZF5WdXE5RzlzQzUxbEV8TFBK
PmZlPj9ISnp6PHMhaFhVYXV7e2YKem5hO2thJjVgJXZkcjFrI19oJE94ZXVZNiM8VEswbGVPVG9k
T1BAS3V6b34hbWVGbW5GP2hBdC17P3JBMnVRUUA/CnotNTlDdHVJTnYoOU0pRVlsbCl1Tj9qRUNp
KiEoRXlOVT9Pfig/RHNUWGRTbUtkJWFCWmdrfCY4K3E9dVVha0oldAp6TVRgNHhXJjg3R3owRF9J
QWlFdVpsVSYycGUkbiQ7UlFpKnNZbykkMW82VUctbTNXYDBkdjwta21mJjY3JWpzNTQKejdzNmxs
Vmk3dDgrYyklUTJWUHNRLUNXVzdsSCUqZ2l2QCFfWiMxc0hGNlEoSkBfUjErRXJ3cmNpITBmXnBl
TmxhCnp4dTI3UmpUe1k1Znsld0pDWDdOPDRiKTx8NipgeWljV3owaXFpVyV3bmReQyMlWn59fGNI
IXhuJmVZZ2xBIU9gSwp6PTI/MDdeaWlgSjtFSDg2WHF+O1VGPiFSMU9xQWBeT3MkWGUmZGJNWCFi
PFM3O21SX0N4aEAmbWc4VTU1VDM7SigKelhaVGxBWXQoNylaZzlkO2ktQD0/PmdsNC1xSSklVkY+
SEhrSkU/c35yLSUoVFFHXlN5b2dqZWJDQl55YWM7a0Q3CnpXQE8zMEtXK3FvT05gLVMwPU47TkA/
WUV0NWI8angwOUBMP1crT24rbnZEUkB8N0lnVjwoaUVFd1FEdjRkfGs1PAp6MDlqR31kbjNTcV5G
RHkwSFR3WGJ8MG5rV1JJYj92KEUyeX4wTElxcjFETzUyNCoqU0F2a3c1ZlcqLTI8bnRjRlUKeio2
YWh8ezc+ISE7OWF2MUtyclAkLVVwRDlAX1FlXmpXem9LcjJpWkMwVndfVj47dzI7dmotc0xafXRF
cmdXcjFxCnppZU1sM190eVUtPnVEJHtENmthZGx2cGc1aWkobiZtV2hzKmhLODFQPDBifHNfTnw7
OD58NUVgYTZBSU1JNCp1fQp6SG52QG95Wk1FTCNsKnhvZDhPczBNQzFmUyNZQmtmWHtlfkVYbFpD
IT07JkJQd3pGKilgQT1WQCNhVEIlJUtHOWcKejstYSh2amY9RFh1byFBa154KGVrQE1yTzwxIVVO
aGBOZDxKWUlkT351YnVZTylzNU1BdHxqPEkjY3B6MGAzUVJvCnoldExmIWdyRExxYn5UTj1YdGJZ
T3ZYT0JZPEgkPVVrR15veGs3cFJaYV4ld3xfS1QoST5ecFp3eTNWIzxFS20mUwp6eSNKXihyPztX
WmI3V3VJemA+UnE2X2AkQHJfeSkldGsxbGVZPGF3NEVMfFctI0BRIztpKylkQkQqSzJrJmE2cnkK
ektSeUwoKC1PUWR3ZGhfTmRPNj93VGEzYXJuKj1ZR3ImXi0+TWx7c2pLQXZse2k3K0NRUDJXRU1W
UWxmOVRtbiRtCnpVfWJWXkpSOWhJamxTZUF4Xz1eTnlndS1nTy1KWlZTSGxMK3BgUmFUenMyTWhI
SEw9WThWSyZjb017clh7NHt2fQp6USohSDthYmB1XkhneShwKWgmcSZkZSY/bntSTXQoUU4jRyUy
bTB+QHh0fCpeUnN+ViNDMl5QNTlqRk1SP3piP3UKejtZfjxWNVclLXtHYl98PWBORk9pZSNzfSF0
ZFY/Pz90dDZAKGRDcm9vaEFOQkE/WDV8SXdLdik1Nj5+IWVyT2NECnp5dGooeSY3bDBDe3k2aGhS
R2NNbU9ZeWZKeDB0aUxBSSExKVdjdF8mJXsmPDBWd0M0LVpoU2hhKTk5OHNwUEsxKAp6Xj5uVDhT
OEs4aks0TXxwPiolJCtrTmtMQlZ4TUpgbWZwck02KVd7IWgxeHFZQnNFOE5eNWpXcGlCUE5IcC05
XmsKejE0cEN0M0s+e3h0JCZRbEFKOGlxUkkwPnFFNXY4bXVvPWVFblVCaG1CXmlLT2FXajktZDsz
JFVpVVJDK3NLJXdeCno4Jm50JE5UVEozPk5iQFo0V2YydiVPJUE3eVpBZ2M0fHttfWVXciRoLXt0
X25fd3BqemptNylOdEc9Y2VfMjAjYwp6VGx4JXMrMS1oO1ZHQ30me0A2bFJMX0tHaFQkNGJPTkpG
UXNpKlNIWGtBOVdFX1Q4JWM5akBDVnZlX1BwQDhQN20KenV1dyNjbnQ5TiF0ckFePjV4U3UkUm5n
JjR6fEQ2b2tqcjk1NnxsdStnPXY9VClyezZPP2hjaGl4bzZja1cpZ3MlCnp1V3I3KCtSTiptKl5W
e2s3REtofWItbU02K3M7aWNHZENJaEZqUW1ldUE3IVFFJGRNRikrMzN9JWVNN247KjZ4NQp6en1F
STMqbyotYSF3P0lhKUVDN3FaWkVRPms1YWFCQ3pVa2BIdHROZkZ3fXl0LSo+bXs8fC1WWHN1WCtl
T1ItTnQKemFxSCgyXnVmejQhS0o9MCVUR0QqYWFkM25wWWojfCh6fURoK0J+K2B5Z3ctLUdDTylW
THdrM0ctPW5UcHNUQHg8CnomKjdKOVQ3I3BlRGg9KCYjUGNpeyV1QWo8dj5Qc35tLTNSQU4lWHZA
ZW5objQlN0MwfGBpVD5vVGFgPHgqZDNCZQp6M1hYTnpzQmdjPDtiNnM9VzlGVlZ0ayQpPU5+fVY5
TTFRI0QjTVNkNUBfeXFjREwrbkIoPmg9MC1yLUFURDRWcnkKeiZeRHpge3hVMjNwaj07Skt7Q1ZQ
Ym1ia3NgWHY/UVdgKGBGdHFrWn53VmFGSHI+d2MqZzJGQDlkeUFKblMmOXYkCnpjR1pZPkp+YnxT
U1c8a3wtKSp6OEMrMTRyMUtzRGtiWjxPKTczOzEmU2AzUVNZUSojSS1QRkktYU9LUktMM2JzIwp6
P2dXZnA+KkpQXnU/OzFBRFM1aGl1WTh3ajYzdlowb3YkbD09NSpzeEByMz1LMCo4ZEg3YXJnJVdT
UnN5d3N1WEMKekp6YFpmOFdlYUtIfG16ZSEyR1Z8LW9rLUl3Nn0taSQlNXZ+YzY9O2ZpKTxkKXpJ
fVchKmxwNld5N3FYOXxBfj8qCnp5fkJBYj59ZHoxVH5qaz4/aGVXd0tMOEN0aGtCIzhkZnEhTXUz
ajZuUih6diU3KFpYaUFTMnx+a2tBcTNSVmMhYwp6SWkySGU9ciVLUSN4KnJ6WUF7UHIrSE9kbUtL
VnJ6LUtZQkhzekxaX2Q2VWRGZkdfbU5vYF5rT1NVQyZub1ZTU3sKengjQ31qTi1CTSM1Nl5hNFRy
ZjUyJVQxJj9QT25qIT8mNlVCVHJZLWZMdXdKO3hGZSV2eUJzYVlHI3E/bC18O0xoCnpGaSlNfGQk
MFdCXjdpMU5rJnx6M0ZhaW84KnswflpLJXd+dSlZeCVNUnFoRnZGRzlrVjJmb0gtc0M/PXZ2K1Bv
JAp6d2klUDtqQ0k/e25CU2w3bkl3OCReMnFIZitAXkNLQzlJYmlWX0tlWVd1dGRrKlgkfG5rI3A0
P05pQDlncXNGdlYKejFrS2JsWnkyWW5xV1F3bkA1KiMxLU9rI0xYb1VmR3tJUGM+VGY8eTF3N3di
dmtCJiZoVEs4QyFSVzF9Ynk2PCp0Cno2Pz8hVkcqJDF7Pi1wfGtpcmNJIWl1cDVSV1daQGQtYzB0
VWlLczcpI203MnMjfk9+X209QXBybXFWZDI3SWZmTQp6IV9qU1hOKT1TaGtNSCsxN2J6VzIqYzAr
T3lGJEhfJV83Xzd2UnlUbyZ8czZpe2Y1bTw3KTF9eWAra3EzRzdlRHEKelN1cCEqKk5EeTtvUDUm
anNLS3NUQT1eWUoqMzA4S2J5ZUM8aUdgKjlXNjlHYT1sdDdjQGdfYChwNDxab2VTKilOCnpseXlS
QnlJRkkhOExjbyRwQHpicEswOX1zP0VNbFA3aTJXaDg2MkdXP1YlaS0jUD0od29rdSF+WStONWpP
THdSSAp6aDdFZTIoN1cpZD9kZW4rTkF7SCRwQzkrQXBfY2JGN2R5PzBeejtqOEljKDlGRXFsfXwq
SF93bEFwVHVKeXUmTHUKej1TSHNqX1dFP2NPTGM4LVFASWo5akQ5QWhWQSg3ZW4kak0xZz07OUJF
dyhFOFJJZlBoU1lEdnRlYUNffCRLM0hlCnpQZE1Ne0h5XzZ1ZDhTXmxLQT8lP3FUcDclO0hqI2gl
VSpKMmU3NmxNPXhJM0pZNU1hP0NuRnJ3UDdTbD5hXi1GNwp6K2VhYnQ+Z2lTTyF3TFElJGl1cUNE
bF5ycExyckAhbF8mSUxfdGMxKiYtV2x8RHoyYT56TU13Z3FuKG9PTFkyQS0KejF4KktueXFjeERu
JUVfX3NffStLSkVXM3R0QTAha3lePmRSdzNqY1VYS35pP1UjJCMyZTxlUlhvI0FsaTUqTVghCnpk
K282dzk7KHdHSlFscT8tP0V0WnN3P2VhWFZBb2lkYn03cCowSzxrZGNReHEmRVNRYyFSQlowWCFt
aDIzPlomcwp6PlFfRExDej0kQWlIZGsjO0VxMnhRX1l+dSk/X0ZQTE4jQnNJSz1ZQlJ9VU1OeCpo
JmYmcm1YYHo7Z0hyNkRFPkQKek48Sz8lYTw+IXJ6MyZBbFIzbl5ZOUEoJlY0YX0jQyppQSVJKWcr
cGk0Y1U4MHhRQE1qR2A7aFl4YzlxRD1lWEklCnpJfH1Qe3FOTjlwWk17dH43eU5+S0RyNEtlez0y
I0lTfWB4fjg0YTROTmUhOEZ7fEo/P2ZTcWg+XjMrQU1ZOEh4OAp6c19KOU1nVyg4fnRheGRfIUd1
QSQoYk93Ymt8KFMpKX5jTlZ2TVM5VGwkWGxoUjxxPT1KZ1QpZU54cHtwIzFZI04KejxsWnl6UFZ0
YipZIXEocm5BXiF9ZHZ0M2B8MHRAfm07UCokYnRWOG14KVd4MFJnVjR+QnpHX1Q7T0lLP2ViKjh5
Cnp0eksrWGVZYX0kX0Z8YHA4aCpENURpd1EmWUNXJmw3Uz9JYChLaFk7QGBBXjZJO1UpX3d+ZlUx
QDFnOCZDMUd5JAp6OVcyPXtXT3MtOXtpb1E0S1Ilbzs7PE83enlCWSRFYmRNeCNnaFMyOWl3Ymc8
PnN9NzNNcCV+QEFpMVdiKV8yblYKejRDZDhyUEd9XkJUYTxCT3srbXY9TF5nVXBld25nem9yU3lO
NGFgTVJQZkBrXzRiQmVkYiNMZVNDNDhVV3hWY1coCnpfdUU2VTl5KUloPzJaQFo5X0JgUXliTTFJ
e28xZWlkSTw/PXB7Y1dTcDB4YFlkPUQoUnlANzhsWjgoI0dfTjcrbQp6VFc5eXR3ITBhN2R+UFh1
WSt1UCQqXnI/WDgrPWN+PHdRZSkzdjtpbFllYD44Pnd8KXhebkc9cyFZMCRicWM/TzYKenFCYGMt
KE8+R205PUtAc1FtI29VYURsKGktRWE0VVdKO1V+eDllIzg7N2tHVV59QjV3dzdmWEA+aXd6KTxR
aT17Cnp3PndUJE58KTxDc2lMTkxgPW96SSQpI1Vra2FFJiVleWBgQDk2ajt6dHgzJEcpZWxyQSMq
QDtUOWBMITFlSnJiZAp6YDYlWG8jaFo7Tyk9ITFsQ0w4M2xCSmhVQSVrc1hkVCl+NHJETXtMWFdI
JEUwMX4yRXhsMGMzamV4bmwwaSs9ZmAKel5kXj5vMnI+ZkxFSWVkZnNgJD1UOHVRZVQ8Pjw5LSh0
Qzs/KWVVeWFrNHR4PCF1PF5HeF45R2d4bTcoPkRnTmY8Cnp0PVcmWF51P0cqeHluRHpgK1FWNCpP
b0pzY2UxUno8V0kkcHM9elc9NFVQdW9yJlVQMzclPWUmcTFKI1N0NiE5MAp6a2w/bUpNfTR6RVFK
R0d2bUBMVjhuI3FeKVZLKDNRKVpjSHRsY157cUg4cT5IXig2dFF3OFZjcygtLXNWeVhsRUQKejZw
UWxxPDEjfDgyUjQwYmxISkVVeD9xNjQhZ2xsNjVleEQ+SnxCa2I9WnJmcUg+PG83UVA7Y0RwWUNq
RntBXlJBCno7LTE4NHBCIWlIcX40cG5hZ2BAeUtoJTUpeUVKZ0Z2RSt1PDBLSDdpej9nfnQqIXdI
Z3Yre2JjeHQlWWQ2RFFSIwp6XkU5V3tSX2FfU3hURjQ5eS0/UztIUjB7SiQ0IXNOPVJTdVY9KCRv
Ql85U3RHQlYleVklelo9a3I1JXIzSWNzdXYKelZhZER7M1UwWHVlTjFjOSFuaj0tJGheLWJRI0I7
ViEwSXA/PEUrOGJfbWx4XmkoQkA1Si0xY1BIJUk5T25AelM/CnpSfTx+Nl8/KnxwREdMYyZBITZT
MzJMIWt8UHhBRnRQPDBoKiR1dm9GPExjRHM1X2FZNChmd2ZhRVJ2NERgS34wQQp6QlZMWi16fDxJ
UjFeMClxcmAoVkU+OFFHV1poeEhhNzxPRVhYKkB+QmtrTS0paHNQck1ZNHhKKm8lfm1lWVdnJDYK
ejt4UC1DKVUpJj5DfmlDMWk9TWtzVUhPenJ1aVRGN299a0I2VH1JS3o2MlhsZG55U2orJUVTKzxS
PzIrMD12fl5TCno3WlVmRGhQQHQ1PXBVfChjUTJ7YTlCSH0yWEZzTjZIbEl8VVFDWHhGPj11ZmZa
PDZsYiQhVTJSQTFoZUpxKz1aRQp6cSozfSpPS2V4eTZ6aFlNT1FJNjt3cyM3JTNkKiVsQ3h2dnl3
cHd2cEBZalltOXNoV1JGTHU7cW5temV8dnV+RzwKTERtZj9PJG9sXlAzZW9CawoKbGl0ZXJhbCAw
CkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3Jlc291cmNl
cy9pbWFnZTEuanBnIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3Jlc291cmNlcy9pbWFnZTEuanBn
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmU1NzIxZDUwZWQxN2QwMGZhNmM4MTY4NjEwNjExZjdhNTg0NzlkNjIKR0lU
IGJpbmFyeSBwYXRjaApsaXRlcmFsIDEyMjg5CnpjbWVIcmNUXlAzKkpja3hqc2xffVFLQVlHMjJl
NXJOKVg5T2tlb0JqM3xXR3AydWpYXk05Q21JM2ByMT5FSj96VQp6KC0wJn0mYWl7Jl9rTWY2LUx0
I0A/cHg8bipIZ0VpeF96SHBKdkcmUkY+KX5qVHpNPWxDaz1vPTBFaCNgMFJSYFgKejtKIXowUl58
WXBwYTkkZjAwMC1qMmF5MDZYb1FFWnVSJkxTOyMrN080azgxPD1vVVF7ZVlwVyh7bG94SjEpfjBv
CnpLWjk9bD1BYj0qY3ooe3NNKVRUMWtlflB9OHV0V1AwaHF0JSZJUGprIUMqelM0TiExIWEpM0c1
OFVlc1ZSVkJISAp6UFo9UFBka303SlpYUj1VYXsrWFZNKk9BJU0mP0dgQ2ZwRCtacGdoJE1gI15D
V0JTPWJJM2IpbzBFQy18TX5HV2MKejIqUz8qO1RHWio2eWsjYjBHblVKcEdZejR7RjQ2U0ZNKjh6
aThfJCY3WTVPeUI/QUJzK0JZVVExaX5FLXstWGZuCnpZZEdkI0pRRCU+I2xabDlLQGt7I2VlT25y
MFFfSFpWVnArKHdTekd1IUdHKnYhYnJAJl8tWjg5cFNmVX5OYko5dQp6SVRHaFR1fD93ayMtc29j
aVQ0e3tMMVg7Q2UyJlExS2pUNSk4X2J2YkN3P0FvP29gbGtLNj4/MUc1JXk3YyRXKFAKemkmSDtQ
e1BpUkQ7cmVlcmRMYDM7YDJrJW5mQkctST1xQ3NPR1hDSysxTEhVVShobUx5I3tCRDNJc0B5c29m
WFomCnp7cy1xRDhaLVdBeSE3KSY8MFohYjJjUGdpNyhJazhkPXZuZk5DKnZ4KEd9fnpUbUFwZWhV
V2Z4NjF+dXYwYkxEIwp6dzxQSEgwbEhxNk9SMGJDengkdnFHJSVHPWxhaUF8MHxzPXhkfHJNcyhH
OXhBTGY2WSo1eXNFUWBxJW9TKCszVm0Kek5CK35VYjs8amNuQGY4Uks+cyZTcEQlfmRnI30kTj9A
anJ1QzU9WTZycyhTTnROKHtqXnpwWUgtMmtBQVMkd0ZhCnpsYXIkbTduZVBwKTV6NHAqb0BQfSFI
JnojJGRRWU9sYlpfPTVxRVBtR087bXBWbFh6ZHUoQjZyK15sVjJXVXcrNwp6V3peelY7OHQqeUdQ
QVVqXj87ZUZjX154emMtV1ctbmxnJXVGXklTY3ghRjB8bks+Q1R4WV5tLSEtZD5MOEdrdyMKekxn
UHlfN2JDK0BpaiQyZjw1TEE/MX1PKWE4M1I4akExNX4+ZE4kMHxUdUFreV56WFVvbysjdCpBWUVO
dUliQ0A8Cno5Ymd0KkpjNUZQVC0qPlkyOz9yQmFUbzR4P199aDUqQjtMRiRIUE4yeEN6WTQoYUZs
ZXA1ZkE/aytGbGJsUER3bAp6JmM4eWtiTnVWfXp0I1NTPXhCLUZYNWZ8JXt8b3h4O2h6Y25HcylF
Q3VYOUlkbkM7SnFPLTtEV1l8WlM8PzQ5NmYKekYzKThTPj5QIXBVfWk/PlpBeyg0IUImKjw9WUk0
THlWKmt7Q297QWV5K1BnTzdRNzRMU08ycD97VVJ3aW18Ql47Cnp8OEdjdHFaN0kke2spZU1kaHp9
e2h2PndjbmgzJDJqamhkMG9QTXVAcT4lKnw4Z2wpWTBqfHF6e3YqNFdnaTh+OAp6JHU4bUZ3SElV
ZnhCUSFkZT4zb0oyTDg+IXpadio5MU9OWUo7NkpCRkdrZiVAIXhlb3QxVE5NQUh8ME1eRGg2SW8K
elphX2QlUDY2fXNYYmt9M0ckMClTT3dBJWdnRmcwUjAybmtGO3M3PjtuXiV3ekxXM2EmOzlqMHZ4
Q0o1bkcjS34pCnoqJUEzZWBzTTVMQz0zOHNNc0l+JTtIcFU5Y3MjMjZmKzx5TzxLaTx3aVZMSXlA
NHo1TjBEfXwrQ0l3eDVMNyRgbgp6NUVrZlhgOGZASjBiemhLdjlOSilAJGQ9SWdiTVVxRWVIKDh6
eXhEcVU0e3dyTFhRS09xKiFEKGNfZ3NPUmc3PkwKenA7c1prNW94JGdrfG04NHN7S0VoZDV2THlj
PSo/QFEmUWJ2VlAoNUBgd2shZno1ND0hTFEpU09OejJIfUp5dWlLCnooQTBYV3R6JStwV15RMz1X
ZXM8N2M1IXVjX2p2aXJ8OCtwJW80MWlzKEpgQGNAOFQwYXEtU0ppVyN7RFBtNm54UAp6UjNmVVhZ
bnF6Qnc2d09oY1hXT203I3RjI2oqTzFZJll8V1A3TUgjK3VXVzdhP0MkTCE5M0NCQz5PI002e2dR
PmcKenshO2NvPV57bnohb2I3P1c4eiV1MCU1cGIzTWErSHkyKm8wQ1pVMzMxU015TF9+S3JiajdU
ZUsjQUQpQntYdDwyCno+JkwmdyVzMCFqYnQmenF2aX56LWUqYUkoe3RFayN1NW15TCExJThQNk1X
ZjZPOHtlSFZfez9ldFQ9ZU0qZkBBTgp6KngweFA9dkJOZFhoY1lXUGs3bjZLc3kyYkBfX3tnVzh2
ZHE8TlQhalV0S09IKGVHcFU3aD9iKzgyIz0+M01LYF8KemZsO0woTzsrNTYqcnA4QF9PZm4mKklk
dFNwdk9qJjxaVFZgQ3tvNGduSSYwelRZMWBkZnVoKmRJdWJqa1lhazZACnp5XiErcygxN0l+Witf
OWJaO19vO3RkMUAxRjFASDhfV2ozb2NWcCRZKkYxNmRkbCg7b0o/PGUxdGlLVTZlI1hJXgp6XlFz
UFpudklpJmF7Jn1RaSpQSEZPdVQqbXQ8bit1OClMWUlZWGZWJiRTYTZxSEBveX4mbGF+bWA4ZHRh
dld+UG0Kent6bE5rWXMxNFFPSlh4VmQjaysjalVfUGE3Xk50X145bDcyTVlLdktoUW0oRmpvWF9B
QF5gaWk3P3VhSkpjY3B7Cno/Pj47ZSZpJiQpVmtmNWZ4aGFYeFZmIVNGc3BrakRmPD0qI0xITnRD
VEQxX3g2KVlsfTBodjAtbENSX0xtO24/bQp6PWpxNT9nXm9lRiFobllZZXlAZlN3Zjd5WGY/d1Q/
aiNaalduIWRmNDh5fS1jVkFnfkdWYkEoLTFeR3AxLWlKZGQKenF9ZzdveW88KiFleik2SjJJV0Iz
QiQ8YFp6UnF5bGpBK00kLW9heCptbnRGbVVQaSoyNGIzTGU/T1hYTlRDdktHCno4VE09ZjJENCgo
K21jYUBJM2pkRHkqZnVxPWhzcit0an57YDF+KXo2O3V2MEg2TEh9JHBsfDg2cFNvQG5NRDcwWQp6
eV9VN15sQFQxbCNec2RPeTNTTGMjN0M8eyNPO2YyaWhBWXx5V2h4VXI+cEV3M1Rscyh6ZSg0VE0q
OEBkTjwqaHQKejRNZklIanBNMkc2e3g7U09WWWY1O2d+JjtKZH1ecT5QMStfVCMxQjIrUWs+KjRQ
fXRLQUs5VyFFTGtULUwjcX1rCnpaP3tkeDJXJX0kYWQ9UXZwTil5RSRAWEFsYH5aJTM0RFFMPiZJ
MkRyVFN9aHxna0FzISt3OS1ZQDNeZmhaYXZ6TQp6T2ktKW1LdD1acUk4eVhKY3p6elVQP1VSbiF0
dWljbXZ7WnV5fDlMPHFRWntjIVEpYH1wJFpZdD93U2hzc0o9QjMKejNmcnpaeXtsST1Xb25jKXhT
QCRvLUNsY2BgcjZFKGErRV9vaj5uPGFZfntMQ1lZb0hPJCQxPDJxQ2wofEhpPXNBCno1JndheWRf
fHpMT0MqZXtaMTRoamR7b0c7SkNmN1p6UnxeYFZwUFFYUjBGdjgmOVJRUXlENTFqK2x+WCpTVXRQ
RAp6I0N3YWJBcHs4TVAka0FEYExVRyU5Z3B4NjVNMFZWS0dFdTI4Q2BCZ1Q/TGVpUklgIWVRej1u
cjlwZDhXNipwSmgKejFrNC03MHRTN2U8UUZjMDBkNFcjUy1KY2h1I302dykyJCR0cHwjSmg0VDtq
N093bTtKM2g3MCh1OyZeWFRqR0hRCnpVRHhWZSNHWjBTbmFuP2RFX2E7VD49dGckSUpfdkxBZnNn
em1JPVAhXkhGaV9nIzdKZDtSUnFwa0olMzVjXnB+Nwp6KTtrK1M9KUAjWVJINUM8ZEp2KUBQWDVK
Qm12MyszbCpCalMzcTkjTDx8d28zISVSPzYkM24tTlU+bl9HTDZGWnwKem8kNUVuYzB5eTZ1WSVl
OXRjYUpuejNuRCgqKCV2cmdFbUs+SF91WTZKTHNAcjNYcnVtMjwjbzR1RXk0JCNqLWBlCnpTK0JT
P2Q+P3BjOXRIflYrIUdMMihHIyN8RStGVnN0XkthPnIwaX1rd1NhYXFETV5iQV8xOXg0djI7dTVL
c1hAVQp6PDhlLXJhUkU+YDRMZW10SiptfVY1OTZXc2VjQEIhIVAyJT9KJElgek5XTU1PQGFiMCNL
bGFAM3BHZCZTMD1WbVIKem5MfXRuZD1rZ1UmaH5xSjtTLUprNnstUVRTQ34renAkJSZ0dEl1WF5G
RDcqQDNDWitTPnl6YWM+THlfSzRCPW9DCnp7NFRMSDklXkhBZWh2Rm9TY0dgeik8VCUlYjx3dD94
b1lpbWpLaF4lPH11fio5ampuZz9oJmUxazBRRig+ZHxeQwp6eDJhKmkkeTk0QjdvTTE1XjF2VTBu
d3k3Vm9pISNjJklgO2xGX2w5YmFQYD9eVm52bUhVTEBaSUt4SyhreUJmUlMKekZVMkk9a30+djw9
Nzh5QkRFRiozUTx1clZ1RntBT0dvWGsxTDdUP1BHWFRBLUVWPFdfJiZpXjglKVc3d3U/Q1c5Cnps
QVJKfiV0STU+SURQWVJDdUhuQT0+IWxwcl59NyFuKzQ4O2JGRiNYa0ZWYE9ib25PNmdMfHtZJVor
YmhPZ3VFRQp6eWR9flkrcS1iT0JJezZLO29KeWlVODdoa1NzRGtnOHI9MVlRdUI5dktKT2FsREpf
Pk4yJXNWbz8lTE8+KnZ+KGsKelVJQk44X3w+KzF0SjZNY0tsZEUpZURyRjtBJEhBWVclOCorU0hq
dT50cFh9YUtMUGppbCh5bl5Ga04tOz91WHx9Cnp5ZiliOGFYRil7SzlkO0xCdj1JRkNAKEpgIUox
XmJMMCkwZ1JCIV9vKXFhYklUPjBJRkJlP1lFUz8heSk7aUItPwp6M0g7Xmsrc0xyOyg2MmpOV2Nr
d0JXbF44WE1WViRRLW8+QFhFYDJxI1R3YFg9XjBxYTNuWDsyYFZrTFhONDVrNGUKemwmJCFqPV57
R311PFlLU2xXRTZPJE9iKWV7SGk2WWdmcGwkOVBWSn5JWHZsR01GOzRUd0FPPElae0IlI3p9OFEl
Cno1fm4+b18ocjBHQWs8fV5WeD9LVUNtSDRyQCg1U1RXYzJsTzkxbTxhOEszYTc+Y29CeWxNfTk/
S21YKnBgPnxLdgp6PnRXQnRKczduN183Y3dFaVJ3fFFrSF9AKyojKXEtK3lrUCYjYjlVd2hiSkM7
czZRdGBvTmRXaitSJW53XmRHY3UKenJvbCFNQVdWaWQ4I01Hd1lIaEJCdU9HX2pvKCglN0tZMHE7
JkUzYEhrUiNlIzNBQGtKUUdMalNWNTdDczVPSjckCno9MztBJmMlYjslVG48fShEWFJVOSpDMClP
Uj5UO1l5RGN4QSNeUmNgfDBkI2JeJXpnMk9yZSlkI3BCPXRZSWo1MQp6OzFga30kODxedG5WIUJq
VGpWV2l1UGxfVTkpdHZPI0dhSF5xcTR4PkZgc2IwWT84e3trPH1zRV5wNmlfX0RwcVoKekYlcUxf
WW09T15kekdfbUcwMH1aeHZTUUNlfC0pNUV5aEhqbV5ZTWlwSzNZeXlrYUtfKGVnPUtXTXJZZEdW
VU80Cnp5T2V3TjhNbWpOTWZeMkE/aG91aDN2K3VeQEMkZ0BrfWZ9bDw2QyEqWnZXeV9tKzB6VShh
OUtUMCEtTTw/SVkrNQp6a0ZmMXFQWj5MbTFIYlNIUSVPK3FxYXItQHpuIWF5Uj9OdlpGRFJ0RlY0
TFI4dyVJYWhqPURGPmw4blFFVmBWWjEKektHd3ByZU15VjJHWjB5c1pPVCluNk1vbiQ4Pkx0cl5T
SH4qQ2g0U1MrPDZSc3NBPDt3bm9rfVAqcWY7JXc7PEZtCnpeKD1NNW9mMDQoJm5LSW5Caz95aTQj
fDYlVyhwZTlGcUQ/YlZ0O2JqKXgySlQ4b0UwI0JVTXAxTHokY2k0d1YtNQp6KEJmP31ObHB3aVA8
OCpGbzBWbk97UjcjRXIyYUJTbSZqXnRASExjWWhlejxWKlE0cHZBXiooblp4WihjRmd7SV8KelBA
MjtvXiQ0OGlfdTFgemY9SkApa0JpTXZmKj4wbSViKVhNKF8/KDkjZmtaT248bXRST0NgRkNyUyts
YGpwPHA9Cno/aW45QFVwViY/VGpeNzhhbkAja3VXVD9ZX002WXFoO3IkfVIrUmhye2xgO1kpNFU3
NzYoSzJQYXk7RG9ifFphSQp6TTVVbWNLfU8wR2d+dWpIPnE+fjw3Mk5zfTs9NyV9eGA8aiQmZmhI
PitSam0wUUNeJkM+bzgkRUE3eHFlIXV1ZzEKeih5Z1d3WkRCcGVjd042KjFTTygxNVclKzVSVkxX
Y2x3YUg8ZGJuJkw+VWt5ak5UPWd3el4yTHAoYGB6Qyg1V2EqCnoqPkhZJFg9QXNqKlg/ej5jNXBp
UkdVViptKD9uQm5SbXQyN3lxXjBRUzBmUGh3e1phU1QzUmZAcit+WGlGeks+Qgp6ZnREemRmOW5r
UHo0PnI/Kllwbmh3UjR7e1lpez1tKldgNCNEVkwrbkMrZ3t3XiRXbiRYRD4mVjxsQF81elpsRE0K
ekhISEd+QXtudmQjKnFZRHJJS35CYztHUHpkJn5oTE9tK1ckNjdHMkRDbUR+P256TXhabi1VIUxg
cEYwdGoqS1YkCnpVcXhEUnZVdGIwS2VESTF4QiN4S280c2MzJEoxU3V4cUU7T2pTNVk1U350aVht
YGp3KFo2OERHXn5TX0xkYnU9SQp6bWhwMSNkVnNpI0g8SX5ybHs1PCFBd28hOFFDaVIyJDBvVURV
SE9JZXs8UihuSFgzQVBfbTdtOyphTERZPVR3OC0KeipVR2VNMGNSRklhaWFPfXRBNXk1bGh3JjY0
KSU4dSZCQD1SWUZ0OENrSHVZT3YzR1d2NDVsWUNUPnFOVXp3NHk0CnpBSjEtMXU8OTsjQTlCPThM
Kmp1VEYwa0xxbXgwPXBiYVpHKGxaV3psZGx2STBzWnRmKnV6QnxDK0lLM0RUNislKwp6QyE0UzFu
TSZBKEpTQDtyYUBgMmdLbz8oI1h0YD5mYWRlTTJ4N2pBTEY5e2pIX2JNKXAzQ0AoJE93WGY1IV4j
XlAKektYWSleWndER3V7SU9vPWpTTlNsOTY8VmMySDhvSFhWYXZ6Rm0we0duOXtLUytMJCpLeEEm
d1heOCYhcmRkb25fCnpKWT5GfEljQk98UWJpaDM3MWNCMFFhRXd7c3YmY25rbnNoZXdXWW9tcjlp
SiphUkl6cnF0KT1OOUJzeV5iM00oJgp6RTFaQVYlOFdBfjk1fSgjV2NvdXI0MChqP3V8aFNGLTY3
UUY2bHN8Qk5lX0VSK0R4Q2JwRk12MVh6UGsqPXhTJXAKejFLdmU8USRyVXA/YXJ9PSROXmBycU17
V20pVz52QFp9dEFRYTxNUTQkIUdCQjFvaWx1NCNIUkQhRUA8Ukl6eEFfCnpYJlZoemZDTkxuO3Rw
ST5nQCgoRG1iSkxpNz8yamR6NGpjcGVUPzk3QnUlNk1OXz9aQT5rSHo5YUNwLU0lRGZHcAp6Pzxe
JiRRfHltSWBzeGxyazJFYUgzdFZoeWh8VEVUJVN1YkNRZEhmR0hkIU9HdDtUejlINDhUYGB8OD17
JDM9aWAKekFNSm94a1N7fV8laVUxQDh8RjdlLWBDaHB5ZFNaZlhsQzA7Kn1WVkJJa3EoYURraXNE
RTNJM3s4VCZ2d29zTHxhCnpKV1dPVlpRKVAtZCZvdXNSWigpNDd6M0VAUX4tTSRDNW5uSiNzN0pn
Tns9dVp1S2xZTXR1VzZVWnkwYGY1O010OAp6Wk87YUQ0MTlWe2lIe0FiQ0hMMnhLK2JELSVSSG1L
enYkKEhDMm1CJCFINk94bU5nM1hTbylTIU9oX2xxZWViMDIKemlmPU4+bFRDWUlLbGZAXy02LUBf
PzUmSylfU0JOc3lMYytsZCZ8dnBXVyU/VmxhITxIREtZbzBFN3hjNDtVM2tsCnppLUl6Pz9Kal8m
QFZyRj0taXZ8Yj5tMkV6WVNYVWpsYG5nfXlFJnNLYmdEQmslZUQ0VFp5WlVBaGFAeGtHM15JRQp6
bGxTWlcpWl9ALUhMI3Z+aU9TZi16fmdmeUVIJjRCWXQkSzxDaj5YcDdLeCtCTT4tV1BkVHpIRXVA
T3wkJU49bkMKek5TaShMT01BVnF5WHs0IWBKN3JWJCNlVn02X2pkPmtSM1Z3X1EjMSY9cklIbDJo
Vyg2cGJTam1vUm9xbV5YP1lCCnpeWDVCTCllRF9sOUhuRXVNSkkrcjQkeigxUD8tci0rYHEwVTly
NUx4R2U9VlljVUxpcjl9Q0x7OypTUk9HYDc+JAp6Q0Nqe312UWJhdGQ8ZzRFY15IKzVtVE9aTVop
Kjl8anRvJjd5Z2VzT0J3XkRxYkgmSDZLYHBYWEtDKXs+XiVDa1MKei1RbW5QNFdmUjlKM3ZeJVIm
PlBRIU5LcExHYGNPbkEoV3t9QGB4Iy0+aFN1SEYtS1FSZVZ6N2AzOHxaT0NLUm8zCnpCO2BrfnYt
ZWBPb3ZgQUd5bF5kYyoybThZN2VCcGwzek14al9adlBRKjJ+NWttZV92VE9JdVlTdGZ4N3chUENP
dwp6OSgzbUw3MXZPX2J+UnppO1khQDZHWENJe3lCflRKaVlAQE5PPkI5LSRWVF5eWEp5aTwqWSZ8
UE9GdDtPbH0+SkgKenpZNGojSF98Um1fcEYxeWRtNGU8RWgtXnVMVWN+NEB5ZFE/bEk4eDA8S2Z5
Pi1UMnc0YjQ/IzQzVnJzdGUxU1F8CnpnZ34mTSpUMnhtT3decGVKR3NiTVBSc1pqZDlkJkpmT3d7
KDd8VTZMaHwtN1VJSVU3U0o3PGQyb2lEfGV4UGEtcgp6KjBOUWlxfnImYGpudHx+SiRTVDQ/dVp1
b29QdHhMSWpXMyE2UEhwKWtORkswSyUoUTZyPUh9dEUwP1pRc1BZbkYKenZVNERoRis1RGs5QTRY
NnJNV0B1ailTMG9KbUR3ZjktKG5oMkM9fVJnbVdeb2AlJHpYdn5aZzRFbUFpNTRoRy1sCnpGUiY3
aEJXI2dwJUkjJjNSQWs+PjV0JngrVXBEdmokWD5WYk11X2JtbiZDdnY1PCQyTlk5NSNkNXw8VlZN
I3lBKAp6ejteTTBCV09qdXc5Z0hjQyVONUtHMEphY2txVktOYWp1aWg3R1IxfDIxRCkjSz04VkxE
c3RmK1Z4N0hILXZaZlIKemxOSDdNVTB9Ji1AXkdMbm00Um5UeFNBQDxAM1MyeyFqV3hwI1kkRlZx
OC1GQUxxMSQoPiFqPGJZcDwhJnQ1LWkmCnp7K3tYbGB2bzgjIVgoYiNxYTcreztOakFDMG9XKEts
KTR4XjU8WVF3OUIofU4rYExtY3Mmdk5HNU9zUUBgUmUqYAp6RGZ4fHdYWnxZSCZ3NDFBJExUNnxx
N0VIMiVVTUZ8aWleVl5lKGkqPEppb09Sd1crfjBVfmVwQHhnN2Iob1ZffjkKejE5cGBWeHVWaldr
blBVMkZpcmZaYiprXiFPXiZjcCZvcGN2IyNARVQjKSNHUWk2SkMmQy1GbiNyYUtJVjZgbEpWCnor
QHFlPHBPQyY7UXlXTVglQFpsTDZFKk8qaFgyZ3Z4Kk9CcjJFdWxQYVlzektJYmtfRmBJfTMwTD5J
QDAoJGJlPQp6Wns8OTRSNFFKQTdLPDNAWVRaXiheSlhsPm9+PUtQKklJYmdXRiNYVGhEMEpPSm9s
fiNvbDNzTW9gLU5jYG56SiQKej55STRkK259YU44SU5FaG9Zfj1GI1BUTHRARS1QUl5DS0B5bn0p
UCNuNjFhNit+KHIqJjlROWQkR1dsc1NyNUQwCnpQWCN1JDc+QXZvSkNeIWJ0PjcpN0VhSUdHbVVv
TFZELVBje3JMdUh+cn1WJnJqaVczPmwlOUEqNFZSbTJUPnVkZwp6Y1oySi1aYFNxbHgmZ3Nod0Qt
dm13Sj11flJDNWM4PHxVaVZxcyNTM2Q9T2o2ej1CY1pBZFErM25CdTVBRCU5MkkKenZ5Q3k9K2JR
bWZUVXFEcXVSXik9NzlxNUZCOFVNUnQhfnNEVF9VcjNZfTBOeTxaSVFEN3JhO0VpSV9sZlJaPHpS
CnpebWAhZXhnb3ZFcTJeUkNWPWc9MmB4NW5xX355eHdIN142SnQrRnF9PEF9X3ByZn5jYEdua0Mk
JHIlPTBPemcxUgp6d2F9OD4+Yn1icnNrXmdIUzAkVFdNVjcjYjtYMU1ENzlyantZeFA+aEN0P1A1
IzZvQjY/RTFzeTwwRSE8MUBAXmAKek5zR2MxdFg7UVNnYG0yeXJVbGlRU3VAVDZpKCNIbi0yJn02
IytvajN5PH10MF9WS0QtIzR3YFZpY0MzNmQyTDdVCnpQSEwjY1hBWXNvcz9VV1kxelZlSDtZRG0r
aTZvRUxQSCZTZDxTekhNLUNee35tQ3E7JXBxM3wmVWxPWS1lMHZ6TAp6KG1aTW5ZYk5QZEp0I1Qw
bj59JVVgRk1jd2g9c3N7RVc9e0hSVCtqYF9+eEJnJVMyWilma24+Mk0+e151aXBybygKeiM/UVdi
TFhQUlgxdXNVfnRLYTM1a3VSY3I0ZE5CfUhqWSF8Nm0pTDZQYE8tZEIkTkBaIWRYMlBKWFdqVXFK
fSo8CnpuSG8la2BkdHNsO2Z3YndYYUApQHBQeld5VD5FR0BYbGdDO3QtQlVoczhTMCQ9UXJzVi18
MjdZTUpjeXgxYnFGVAp6PWRKJDhWZVd1fUR7N1BlWSk3ezVWclZhQDBvUDN2SHMkU34qe1MhIXtO
OEdGKmJgMEJyS1NyMkctPkJ2JDhTc24KeitGX2d0aEt8KWlOWEUxdGolMGM5RCE7eX03dW1iO2Ra
UEtUQjtvdG8xej1mKHFmakJHcFVUWW5MfEJIbHg1RGMjCnoyUWswdWwzY1FgYFh2OVkmTCNDfXVv
JClDZVRCNEF5WFk4b2h1WT1mckErdk5jdittVWc8a0JjN3hCflR2RERZMQp6KWljNEdYRE99STc8
dndeMSV3cz8xV1pOJjRXand4VTMwRmwzaW0oUTlKX34kRWpfOWxGRExQaTJ+akYmKXdEYGIKenQy
eE1Vcnw0WlBuKGRmTjVWb2A1PShhYzIqNSVKSnJsQ3QmenJER3ZgfUcxU0hKb04/c2pyWGRlMGxg
IWgpaHEoCnpldGV2YVlea0I+KlFee2BHc3E+M2Rwdno+VyteJFFqNHQxWkg/TFdRbkRXJXU2d31h
fD9JZTl3allJenFOc09ncwp6YntENTxaLTlNKzhMamJrKkMwKHFeSnx7VWlDfStKbjR9VmRxTzwj
aT1kaDxRenpNUCpjJX1GV0MzYDNfMVpRXkgKekFZRjJDQF9lXntvZnNIcmd7fmZKTTkwVnd3aDlj
ekwlIWltYzsjdkdVUCpKIWptJWYrKytYb0ZuRCp7WDdWJitPCnpHT0FYTnxKMCZ1VnF7R2JjZGsw
OTtUMFchZ19pYSVkblVEWnZsSWImSUluTTt3X2slIVRAfldXRz48OHJNS2BqSwp6I3lvPW5QZklW
TndCeUFJaWtgfl5pQ0I+UXFSfUFJZkg2TilVWVUmd1g9X2ZRWGtqS3o7QHBJakYwemV8Oz9yMHgK
enAlQzdXJXBfKEQpVDlTZEghfFA3bjA/IzZCNiRJUF9KU0xmV2VzLV40YSp2YWkrX2RSSTJ9RGBA
aWFQNyV1MkM+CnomI3ViTDZJZkVGXlJAQD1Ub0k8eGR9cGhtUSZwOHc8RjlXJG5FYWxldiFiZ2Y9
IVdBfWxPX0VaIUs3PG1NfS01awp6YnZgeSoobX5lazheelpCUmlobnVneXxnJmJhcTxhOGArKk13
eEtfc29aNV9kPDRNc1RnelEkMGFkKDVNQzwjTmUKekwlblFQY3I/cmlkNmh+fiR7Q3lBeTw/eDxD
WTdjSWM/RXJQU3MhbmMqZSYyNzZJMW16eWxQVSZgJm4jQTE3dTc8Cno5dF5IN2QwV1pNLVhuVnlL
bSF3OypKPjhyO1ReVUFsQ2VSdk0tYThRcEgqaCk4JSYjO09BRDg0KmhuTjY2bl80awp6LWF7WFUq
XzdfVmBNTlFHUDd+OHcjXmRmQzQtRGJzOW1SM0J5bU4mSThjZEdPIWgjeUIhRGwzZzFFPXw2OHxY
aDcKekAzekNmNWsyfmc7WHsxTzMmMDczQlpNSEJENHMyKUlne3RaaCg4NkwpYmA4NzhFXmhZdERO
YXAtelB9K3M3NVBkCnpPNWVTPGdAaCEyRlZpRDY+WFchWXZIbHpBR2RrVTI4XnRqbEg2KVhIXk1o
VjVjIWpkKzZKM0IwUz95fmpGMzsydwp6e0RSX35QMnsxcXZzSHxeelhUSUohKHk9KWo8aFZLYncx
TmdZQkY8NyNoJTFCM0NybkdAK2h4b2BFPmhATGl3d0MKemR3YTBxRiRUTGtzPD91VXE3Ui1QXys7
YSpHa2RNRkFEJF9+QEZWR21AT2pnbjxaJkFwbEl1NDYtZilScmVKUFF1CnpOaygwbyM2OE84eDch
MG4/OFVNMld+TiQ7MHdjTCVEQjF3cXk8RjdSKXJZU21TUnhMTEE5LT9hWDR7TTJ2NitMNgp6NElG
JEY7NHNfbStaJVV5cXQ2QFFhSD8yQGQyM2I9TDBIe09FM3ZNcG42bE5AUihaeWMrbDFYb2JyVU8k
bDR8YEoKenU4KVY3T3AlM1chbDRwTnNoN0lXVjNNTUg5dnlEdTtUY2xHRFFJPWllO2ZocXZXYjNE
bDJ9ejNYaklTcWskKiF5CnptWFVuSE1zNE5we3Ika0xrNTlmZFhaQT84KXlZTHEyQV5BTzdseVgm
I304fVdiPGIjQitoIU1QZmZsRT5GPDg5RAp6bldgNSh8QXVnSjNGJnhiRUhNRXZ4WURtMyk1VnhN
MyhNJVhGcVluOFVmLWp3WndOOHx6T2IhbjhEfktIYiU3PUEKeksodUlgSiopayNlZmolVTd+Vn4/
aG1QcTh1YGA8YHBJYCVXNG98T3FzezxoP1NXYkVRREJIV2JlMmVWaXg/Qmd3Cno/VXglOSlrTmQk
dCZUUVZkYXNzRTslMjs2RWo/e3toRDZaZjkoPVV3WWFCPV4mISZjKUJVbCNgTih5S2lRd1RwLQp6
QHt8e00mVW8yO19aZ2lWSFEpTnNuYX0hdDlUTGd3UyVwKWB6VVh8QDE0QyVHR1dnNzltMU5ZSzxi
STEjNm9xP1QKemhgNyh4aylzPjlsR3daQVk1OXMjKSZMfEVad0t4cUVAN21ia3l0VlZaKiNFS0BW
Q09YamlgPmhuSXlxJWw2QGtPCnpWPzM2Sj9jP1QjcilGbztnd2Q4I3lKfHAoK043PH5yNUpqNSRG
OVI2az1MJkVgUi1BfTw5Rz5SRGFUayRBTkB3TAp6dGdAQEQmUTFuUk1qXiNSPFB6O3JCMEZJXlp8
PlVhXjx+R2JfaFFuVzR0U1FGZUt9cGUwSnY9bi1GcD9gaWohT2kKeiVvamt0YDA+eStRfkM/ITRC
Sl9waCZWVVkhT1BXNzxjWXtqWGg3Uml0NCY8KFNxJTk0YjJ8bFE8dGZYTShLeE9GCno1dllPZmsy
YT02TC01Jn1oZ3V8MFZ6UjdtZ3IzK21TeUJ6fStyJDt2YzFLRHdHTmx5cENlMD9TU3BRa345YTY0
TQp6U24zang8Pj1PQ2glO1F3QzJuNEhnUUsocSVmRWNUdWQzPE0lYHhhV0g5WDI3KTdFNjdnei12
P3RIYX5+ZVNrOzIKelN7SVc9TjVmYDFtI1hsWVAybkQhbEJWQFVaanF+fHg3eVN4WGxvJj1NPl8w
dzgyKSFQSTBZc1EwSzkzQ3tPfSlmCnp0QG4mamNFc21XaT0waXY5fD9HOWojMmE+LWk9WmkoOC1z
PzF+a0YmdT8hbndtM1NWU1ZDdExrdTcoa3ooUm11Vgp6SHh5Kk5VITc+fk1UJTNKe2tZZCljYW9u
M0lpZk1GekUpNW5PYD9qVT5lWDxnQyN3MVN7Jj1pQmQtK3R4b3dMTVUKeihOXn4hbnwoaDg5UWd6
aChXSUM1VVByTnt3TT5GSXB8OXc1STsoIVR6VUN+QXdBM1ZnSXdLZzZNZUhiPVUhV2UlCnprbTxU
KVNJRXlpNj9rZUkrdk42Y3lpU1h1ak07V1RydT5EPjEyOzxnNUdsR09JRFJSTHJ7ZVFOPlN8KlRD
KUN5JQp6YCMkVUh0anZvZFNDSnt8ZmczWFB5bDJyQ1M9Z2QycmgxO0Zod2Q9WCUpVzF3X2M0TzJG
bGpXU3gxaG85PyM/dU0KempTXmdTci0yRlZ3R088NVRRVUpHdkJyNVBqP0BoWHdQUldSTG15dFIk
WE1ZfF5nSSllZ1ltNCQ8UXlZYzZ0aG8rCnorJVYqPVNab0JadzFCeXJpTHg3JSZPZG9POWhPTyNf
VjJBTGM3QU9nLVhET3BIb0JTT1A+U3QrcFZ7SWApSE85eQp6Ulc0RShlY0pBNCs/fE0jemEyfDN4
T0tYXj9sWT02Vm1He3B0RCZqY0IrR2hFbjtseTVXMUM2XkF4VGwoKX1gMHQKek8wKHF+SSZfUzhh
IVpDVmZ3OyZgaHB9fkBJZGM2ZFIkfGNiRWYwQmd1Q09oTzg+ZEZlektDYmkkV2M1clc9KUNUCnpo
fVdNTTh7KUZHY3B5Rz9jODR+YnBnTDVnaSp8QkheTkx+a0RURyExXiVCS1N0WlArRjRVdDYwTmk4
Ji1zJXJJZwp6ZDZjY19menMza3UmUG9Fckl6SXd5P0pqQmVFZTxxWmVrXkYzbyF7YTZvb0B3VkBo
fGwmb3xNcjNjVWNsRjJEVEYKekBZMTtmK2ctfmVffSlXJXVeK3lZVD1YNWQ5YistKXRTVy11Qzhm
enVDWjxDKmwjNGwxISUzS3Z0MClXfFdeTjBjCno+VFlhMjVEbUJoQEBpfWMySW5vYGdZQ1VZczZD
PlZIN2cxMkFCO2RfKj5jMVUmTVAhSEBIRS0qclRmfCY7Kzhjdgp6IyhuR2pyRj1KbC0yeFArVSt3
Y3kwODI0JV4ra2k0bm9LeWFVd3ZqQTA/e3o1b2JAPThmYVhXR2k9el81P3opbHwKem8xWkNgMmhL
fE5feXNWZUxsdEY8QH1KNj5TLTFDc3A3Wm1YQikkJmtgUW0+KVQtY31mYyN0Nis4fSFJP3JwUlM0
CnpTSXV4aik/e1o1XnhtR3hkVmEhfHQrPzwwSjw+aVNqWmx3RHBCbUJKNzdhSGxrPDszRytySVoy
dWx1c1dpJG8oTgp6OSZrZns0d28wYXVfJi1XIUEjXn00NHR7eiRffmQzPjh6KGojaUohWSUyazRH
cFMlVSNCMn1SSSlAciN9M0ZwUz8Kelh9OVo4MzxvWFZofD5wMjEpbDhyVUZCRk9tfSY5dnYxQVJi
UG8zKXtHSFc4RFl1JSUrOEw8Z1Z1cip7bCZrUks7Cnp4Sz1JRExwejg5SU5DcC1xQ1d+d1VSZiZl
anl+X2MpO2l2WkotaHotTUR4UUoqYFZlc2ROJmBCMkw4RHk0KHt1WQp6bV5uVCpzTU1tTjZraT0l
Tz99fG9sWTg0YjBncDdMcW5OfnwmLTEzUVhBPEYhYXFKKD9IeCtTIWdIYUM1Xkx4M24KendfQ1km
P0o9Rih2WXg5Tz9Fe1dEUkdRLWxkOXZIOzg8QE5faFdwKWFfTjtIVDJ8fXZqMmNlUWVUdHlEcTF6
YTI/CnpfS0xGdVkxeTdfX185NHB3K0hNUEBGNVVLYVd6IzhLYTIoMFRPYHo8RU8oU1hzMzIlUytY
eDBQJWsyd2JeaTJHQwpMRkozcTJWKVRDaVNQJG52CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvcmVzb3VyY2VzL2ltYWdlMi5qcGcgYi9M
YXlvdXRUZXN0cy9mYXN0L3RleHQvcmVzb3VyY2VzL2ltYWdlMi5qcGcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTIw
MDEyZWUxMTE5MzM4MTAxNjQ2OTFlZThjMjhmMjM2YzFkOGQ3YgpHSVQgYmluYXJ5IHBhdGNoCmxp
dGVyYWwgNDgwMQp6Y21iVk5jfDRTQmArc0koNVFkX0xYNiYrKyNAS2d+Xn1HbUs1PDIhWmpOUGF0
Nl5TcSs5RVAlI1k+Qn55anRZYXEKemk4M052X0tfYEhoWXI2LW1VSTMlZkJmRn1wM243TS19YCNM
X3dgKWdkejxhUD9HYj4oTlk3OVlmSXQ4TTB7KCNRCnpRNWFQPiUrbjEzakV3PEYwMDVXKDc2PWw2
ZmB9UWsrWXBZUVNSQk5Pa2khNUJeYm1qJWVEREdjS1FSRSpLI217YQp6LXkhMEE5NTRlIT1JMjxE
NE54SnRwT18yODlXa0ImZH5mViV0bXI8NThHPHB1KmV9UjB6fFk0S0lCUlpkYy1CUyQKemhmfX58
dX4tPjVII2E1RmdHazsqJDxmVWI+eHsqQFZzUSNQY34wJm8reDBrVW9Ve3lwIV4rNjBWM2sjSEAm
WSlsCnppbWJBVjkxWn0pWmU7RWszYXo9M2VTbStENzVjbUFTZ35DVSEybSFLMDNnOEphNFpnb09A
aSRVZktycC0yWTRWRQp6dmRlKSZWMzFfIUxDeXN0MVlwXiUzJVhBSEpIQWJYP1o7c1ZCSyFhJmk0
Nk49VmFKRyEyYmlDVF9gNWJEKDtuc28KejAzITFxPF5WQ3YwYmgpR2ApNTdpd18mR3FfdkBGelZz
anlUZH5uZm9xNUcyIzxtU1EtYVFZK2VnRk1RUWpfdldtCnpoME5RezFLQztxeWp7SUo4d2trJU42
dmljOSlCa2Vgdi07fTxrWmUqKm8mVjRJZ0owe3s2a35AelEmekFgeDx2Sgp6JVJsKDZlYDVmVTt8
NUBDRGo8YSZHPV9nJGBHMVJuLTJGez42fnFGZFVFMT9WJn0pSVYoe15POyRNXmI+QkBubzEKelRq
Jl8+Pnt0UU5jSnw2b0NnPyFWME5UejBmfH41fmNoP0BBSSM+KT9fMFBFVlBKRE0+Y0glaHp8R155
OWZOdy1XCnoreGFlUCpLXihueSRmaUItVHBxOHR6PDZfSXNtZGcwTyRacmpFbzNJMXx8ZG8hT1lD
VyFwZzxRZGd1QDwmKjM5VAp6RSh8WH1BQkdvPTc3JnBaNkEoSG5qN0V6cU59UjtYJGpRbV5peiV4
cztuYnZNPCMwUG1BazU2bnRjT0BwWS19aTsKekFYKlVqVSReWj5mUmhQRzJYYkskQXBwdD1mcEoy
JW4/USpHZ2FQdWk/Yk4lfEFXI15iZmYyI1AleUl9TWtpblk8CnowKXMpfUZhYCFWeEhPUWY7Q2xl
aCQjN1V1TXd7YDduSWwzNyZ4TU9oZSNqKHpyczVVMWBUSW8/UypMJi0lcSZOYgp6cD9HKmpQbCQ8
Mk5YcDQ4Q0BMd2Q9JHpIbig+RXxRdk4mJlBXbz5pOCo0ZjM/JkUzUChEPTtXSEJzNDZYNVBrRjMK
ej9VPmoqYW0xQVNzYzg/PUdjcTZMPHJmcV9lcDItR2QxViMzeH43KSQ7YE4pUjxgIXllVFlHb1Vo
bVhDcXpFQXo1CnpVJmg4S0NhMCFuPXU2KzBTNjB7N3p5RzxocVlGRih5UnlMTnp2fCl5YndTfjk3
I3kqcTNqeihANXpZeGA1Ul9wJgp6dFpqeUgjMipwRE1LTiltTnEkKUlpZGs2SmUzOUVKOzYyTXg1
eEcmKHI1JE5NbUhxI08tVDByQjlTSGtkUzNrZkMKejEyLWB6ajEkbFY9KDR8UGpvb3toa3c9Q2o5
STkjOzREfiRZOXF2YUUlKnw3QHFXaHk3VE89NCUpZjJyS1ZiN3BSCnppM0g3VGpHalJ1NmlVRzcq
eEhTNyZie0lhbiFHMzVlSH1UPFNIKyQrQzZ7bGU2JjxKQz5DcSozTyU1Pm9xdWNEZQp6MXhKMUdv
TDJ0S0ZhN0IpdXdrd1M8dzdhOT5yS28zbF5oRU4odmQyQFZSPDMhbDQqSUVJYjh3QVIqa0JSVCFl
ZG4Kemx2WkJObFlIbl9ScF4lI2pyO0RJQSpjb3VTKjx3KGVTQ05IWFpKKX54TjNwbSNgfWRJUHQt
RGpHWF58ZF99Jn1XCnplREFZVTNaWVpxYStrV1VlUStPJlVtTk0rMiVpMTNkO0xwRmN9O0twejNp
RSZzWEltWERPKEx1OHl8ODhqeEJMKAp6ZFZKUEwkP0cxPStPJSooMlRoUik9O1dffjU9TjYlKk14
dCFgX1VUN0B8K31HKko7IWUkdWl8Xj1QczU+KCFkMXsKejJ5PCgrQU0zO0QtSFEhTmJMP2dLIURn
Z3BCKWdUbmIlSnQqNmpMQj1YZmAqTF5ERythQHhKJTtvbH50TU8+fWotCno8cjRRQE5TY2RTZjk7
b1hlOThAcGxKQShYcUEoQmFURkx3fCt2aCRgYmBoanUraVpDJHktVFpZc356RV5aZzdxOwp6eGRn
I1pjR0l6UWkqRzRqI3FSazlwSEN7S0RveUxLZ2w1SSRtOG1XfUlRU35XeUdHMz5kMGQ9MVBrZGdE
TTBMMD0KeiZaYD8pUTBVckpuNk82MVZ8VFE1RHgxXjE4a31TV3RqanhJRj9AMTFtJH5NdW0jQSk5
TDEyIyMobnR9aUtIR1Z1Cnp4clBvQUhDNDtaeFopU3E7RlJ6ejsqVE4mWH5OTn5nZz99QXJvRlhp
bXMmPilZTmlTaUAtQVdZSzhhek5KMzZaTwp6TDhZQFFQUU9mQ2pWNFhQXiRkSVgkeV5OXndgeyMp
VEc7d0AkcDNnXkRZYF5ubEs7QEglXkZ0N1RGSWNQNHpWNEUKelAxalV2OFMqOXpPVzlsI2EkZUh+
Jn1xZDloTGxyPUxfQG89Y3R1RCthYVY4QUhzQmQ8VUtPREM+Y01jU1BrWGNUCnpZKTMlbiM0N1hn
PTtiWUxuJEBEVTlAa2pzcyFEe2FjaXIwe2wybk10S3pHKWZCM196emExcnIlI0A7JXtgQX1ZQwp6
WjlsJVRSUVd2OWZIMHxeY0RuYU9md1ElVlNiQlpvRiR0bVN1UGFvIUh7cHowKHdlKjxEYlFjO3By
WSErVXA0PmcKekV5ZEB8UXV9TVRlQlhwOXBQTihhZ3dxciRGe3pYJmZnQnU1QnZnekhEM3R8Nk1U
fXFSbmI3QWk+R1RaUiRVa0A0CnpiZlVhYD1KfmIwT0RSTk1CYGYlZXt5RXY2eEVWRndme1Bhb2RD
JH1fVzR1V2V2ZHhJUXpUa2E2WiYjQEAkQUo4PQp6ZEx0NjhheEticG1TNmlYLW58KjRQRlMrZlVB
KS1GPmlhLWdHI3FaTlQ2fj1Eaz12PCRoWCtHZm8yKH0xQWRMJm8Kemg9eUJJU3tOTHdDKEgrcyZ+
bS05K2hmMUYzMnlfWHw3a2xfeUFfUDh3TmVzcW1tT31mdDllR0x5P1hfSilHaW5uCnptc1ZvX3lF
JDdedSRYNCZ7Zlp4dnNWMlJGVnlCS3d7blpuOXlAPyo2alVMTntTcXhQNlF4LVRWcjxnPj4jTnd0
Xgp6WHRMJDA1bW58ZypDVHEqJVYoYmJhQld0YFpMPWg+TVRLXm5rOVRBUlVjc1lqT1A3OUBIamdK
RXghPzZhKikrPDYKemg2WlVta1Uhbj1sdFBXeHhSLWRtdF42ZWx6d0ZjMmFlO0U+QjR4JEdfXys9
eXt9LVp2VWVRYDFVRzBKcV87PjJ2CnpXJjc0NVJNaCRJe1JLRDhDS0ticGpYSTxYN1Q9Uk9scElv
eExsJik7Zzw5ais9QzFxYVd2PFlSRXRFWkgpIUIwegp6VGlISHpaTUQqKz5pbTkjYChLcmNVekFM
ZzNfKytsRTA/e14zTSFaSG8yNXwwaHtvJDkmYktidlBMXmpLeTE7SGcKekUlNVUke29OdTMmWEhG
V1hnQm5qQkI7ajd3K2RjOXNxYU1vK1Q+b2pkRm5+Pz9KZEVtKipTLSViV1ZUfnQ0YnEmCnp6bFBs
P1ZMPmR4VEZXbkBgbWkhb3F0VWQtSXY+WENUfUhINyshcXgyUX1LczZ0RUxLcU53TjxWJnBtN3ZJ
MSlXWAp6O2ZkdTs+Mzw8cTNLZXkwbSNpQ0NeRWFIIXZWSXotJEhqfC1hKmMwVHI9OEk7WjFmPy10
cSF4RD1yfDEzbjg1X3YKenlyYnxZX2B6N2k0WCMkNFElSDNpY1l7K20kdnkhUl95TV5SNSRzQUFW
SXVoNSVVdH1yS1pOQHVYVlRST1lxMjU+Cno/T1NxUlo+YFBIISZLfH1eb3t0RXZAJUFHZy1EfjxK
P0Q+cSpLVDN2dTYjUUZzWWQla3Jld149KGlaKDt2fiNLNwp6OW5VcilFUzt3QSNjYEFpcldxOWNs
dSgpYypvY3dmJXBHcHBGOGtmZTtsK2ZIMG1pVUptQnVERkE+eS1nU0pfaD0KemgzZXwyR0BPZ1JH
Tj5BOCZ5Xkp7SmQtKGpgc0wqX1g3UXxKSm1zZEd0fXMlKHdhanFYaTQqcHhgbDhZelpEKXB+Cnpx
TyFnYFEkczZFJDNeKGc0YmB+JlJ9aHVRM2M/ZlUhNTF4VmVmWnE0bEZ3SGYqWjhxPVRvMUEoYEtr
OHVJJk9TUQp6K1FqPnFyRH1ifWZaQWw7ZktrUmZhKSRTN3lsPH5pKkktdXhBLTN9fmV4K1B0KGV9
XkdUbTslPmxhXm1HYT9lMkgKek15KUk1THptYH5QY3p3YT8yJDgxblVsez1rJFh9UlAyQ0g8QX1m
dE5DNU9fNDc9PC0mMT95XjxWPD5TOzY3Rz01CnpoST8hZz5eRGdjaTlZJGllJnMwX2RWWUxUaXhL
eV87alhFMTxgcDBeJGNeRyFsOz05NlhTJHB4NjVsPHhHTiVfZAp6OW0mRWg2IXt7WS0qIyslU1RP
KWdIUDt+MWozUHJtRFVIeEQzY1B3XkBrSC1EaFUwQ09FWllGey03P2R5K3Q3NloKend+U0YmdEI8
MSQ1dnp+QXVnM344ZyU1VnZFQyVWVzI4bFJOaDxxdkxLQmNjTWlhe0V9Oyk1RkpaMkM3Tl5QV3gt
CnpLVSsxYlNzaWAoaiNZfmZJYiprU1dKPm91TDYoI1JPSE89NDRoVzIxWWVTbCZZMVhQaHlrVFIl
Y2RBckkrZ0lCPAp6eW00T19sMHclJjhOYzl5Ql9XbTZpfWpXekUoPEBJQ1NUTXxeaUE8bSFEUD5E
PGwjS09Cezg+V0lufmQ0MXU2SjEKenlzY1AwUTZWNHRFO2Q+aXkpO3phV2t5dDx2RWhCbF8mdXRS
VyMjZDR0Kk9GdGIoNTZGQyRAQWFKKjhSdXZCaH1oCno3VndicT1CKFV5WShwe0RGfUstVmh5cmhq
OUw/QW5aK29PbkAxPjk7TVVqTnpSTSl8NnBxVDM5ZWRlJEZ3ezU2MAp6UjdIb0llYT9OQDJmb3l2
JGJqKmdjYmZtUFVyIWRHK3UkQUF5cjJXUVF9ZDlIYVB9Snt3O30qbzlMcm8ycl9UUkwKelg5JWMl
QDhkcj1FJmRsSXpmMH4mKk8rZGJWRDA1KzI4MylmUmRac3RCbHRsX2IqQmt8bTNFQDlRNnpZXnRl
IVgyCnpUfHNhPDkpcVZPO0piIVVyR0Rfaip7TGZsN0A2Kjh0Mk8rZEBsYnpqel99b1pnaD0jbXBL
RU1rS3NeWlkqMG58Vwp6SDNCKjlsI2NNX2ZhfGM9PnQqcHRqUUNgYD5aK3o7YlFZUmo+WkQ0MnYp
TnskZD1HYWBhcyM5emtpKnllcnVvQz8Kemd2e3lIISQmKkshQG9SfTgpcG1VTHg/c3UyUlllMzdl
ZypxNjkoaExMJEp+JlA/cUFkbXhJeikpN1F1a0lpekA1Cno/e1FnfiN0ISZxLV9UK20jTT1kWj81
OStFUUg3e0lrNDtqZW8rJFdUPj4+TWNQeCQqJkNNZzNZPG5hUW4mVXFSOAp6KXJ0OVpHcHBwRz8t
KiFiPWN2KGIkNSgxSj9RNUdTQ2okcilCe0B0Ml9RTC0yZ1ktNEIqbmA1KTkzfi1yUWVBfUIKejhN
UipiVkxfajdST00jIzdwKk1wX3ojd2t3RWQ8bVBjdG90WUA3LTxGMCt0ZDt3NXAleDBVRjhUTyNH
dE5+R2AkCnotU3lPMDYpOF8hbmh4aT5IREotcEo/aDFZZiE0S0s+ZncxcFFTYDd9a3xfYzE/KUJC
YClwc312RDY8WWN0Y199JQp6UWxCbExwe14jdnd9R1FGdnZ6ZndAQkVjdjRGdUhyYF5TfGZZYnJZ
RiF8RkBRQmFuTHBZdE5ETm43LV9gUyptPUsKekwtdSslRHw7PWhxV3NMXyY5SDhMQ3NRP1Jefil9
dXV+KFFla1FNfVlEfTZxKUQhKWFrYW1HRjxoUSRFOVNxYUlmCnpCVHBaez00MHUyTzslLT9JaSot
fTxJd1VlXiN1MjYkKiFqWmtCVCgwTi1PS2R5c3gkYW8mSm9gPnlzKDNyIVFUKwp6JmlGJiFZZUB6
Qlg2REVUbnlReEF7SDdIbTQqaT9XSWNKOUZRZW5zayhSUmFrS0l5IzE+MDg4Mjc1S1c/eSohZW8K
ekRWYXFLRUF1cmFQNWRVN01zLU1pLWA8eEhJfV9iWU5qSTVjUzRvKiF1KHc/SkJhVVRWLVF0YX4/
PTVLN3ZpPT5CCnpQazl8d3ZwRGkye1l3MzZeWURTcHdAWDM0MXl4M1dqND5MSXQ1MH41I29AeWwp
dz1mN1RLX042JF5yaU5hJlpKYQp6TTEhMnxBSzlKJSojdzQ8bjw7dUtxfCFSOGhVRD5IUHdfUUNP
KlNBQTlzKm16WkAlLVlnX21oSnFUTmVGTXJmP3IKejhEKCMzYjJsP2hWJnA9KmpISEc2OWkreHZt
YEFFalJBYEZBMC1nSGJHc1ZqLSpjUT5qSE9kKmt5YHY9WVd2QyZJCnpSdSkpV2d4YDw7OGVsXigp
NVUpcnRTczxKeE0wR3lMe2hRbDRCMEZiYW41T0lge0Q3Wj5oJXZqJVFZR0tsKzlURQp6ViNgRnZo
bkt4JXFpP2xROEBNYypKJXlmfTRxRUFhVCs+WkNlVkJ2UlRLfVc/a04zSytYUVo7KHtSV2pjdnJn
M3wKenlxVjlPYGJ5MFJwbVo5fV5+WHRoRXRvbE9rZVZNO1lmUGY+QGQ2dCg8Kl5nfEVfVlZgUHEl
V0oqKEZeenNCMThoCno2Q1lYT0RXU3k1RHlWeHJzeEJyc24/e2dnTXA2ZXtnYEgxISNNM1R4JDRS
Qm0rcGw3QmpDe2pLJXliI313P0YrSwpEP0dBVF8KCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411542</attachid>
            <date>2020-10-16 01:00:02 -0700</date>
            <delta_ts>2020-10-26 18:09:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217506-20201016010001.patch</filename>
            <type>text/plain</type>
            <size>88069</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGIwZGJhY2I1NTcyMjIz
OTE4NzU4NzUyYzFkYjU2NWZlMGEyZGY4NS4uMzNmOThiMzAzOTYyZjEwYzIxYTM2MmE4NzlmODIy
MGY4NDM2ZDY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIwLTEwLTE1ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBb
R1BVIFByb2Nlc3NdIFBlcmZvcm0gaW1hZ2UgZGVjb2Rpbmcgb2YgY29sb3IgZm9udHMgaW4gdGhl
IFdlYiBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTc1MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0OiBmYXN0L3RleHQvY2FudmFzLXNiaXguaHRtbAorICAgICAgICAgICAgICBmYXN0
L3RleHQvY2FudmFzLUNPTFIuaHRtbAorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAg
ICAgKiBQbGF0Zm9ybUFwcGxlV2luLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtV2luQ2Fpcm8u
Y21ha2U6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2oveGNz
aGFyZWRkYXRhL3hjc2NoZW1lcy9XZWJDb3JlLnhjc2NoZW1lOgorICAgICAgICAqIHBsYXRmb3Jt
L0ZyZWVUeXBlLmNtYWtlOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJD
b3JlVGV4dC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmJlZ2lu
TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmVuZExheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpkcmF3R2x5cGhzKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpkcmF3SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdHbHlwaHNSZWNvcmRlcjo6Y3JlYXRlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdHbHlwaHNSZWNvcmRl
cik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpw
cmVwYXJlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpE
cmF3R2x5cGhzUmVjb3JkZXI6OmNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnVwZGF0ZUNUTSk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVGaWxs
Q29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRl
cjo6cmVjb3JkQmVnaW5MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJh
d0dseXBoc1JlY29yZGVyOjpyZWNvcmRFbmRMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6Y29tcHV0ZUFkdmFuY2VzRnJvbVBvc2l0aW9ucyk6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpyZWNvcmREcmF3R2x5cGhzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZERy
YXdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29y
ZGVyOjpkcmF3R2x5cGhzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6RHJhd0dseXBo
c1JlY29yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVj
b3JkZXI6OmRyYXdHbHlwaHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpSZWNvcmRlcjo6UmVjb3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlY29yZGVyOjpkcmF3R2x5cGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpS
ZWNvcmRlcjo6YXBwZW5kSXRlbSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6YXBwZW5kSXRlbSk6CisKIDIwMjAtMTAtMTUgIE15bGVz
IEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIERv
bid0IGNoYW5nZSB0aGUgdGV4dCBtYXRyaXggbXVsdGlwbGUgdGltZXMgaW5zaWRlIEZvbnRDYXNj
YWRlOjpkcmF3R2x5cGhzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IGM0ZDMzNDI5ZGJlNmIwYzIw
ZGE3OTIzMWM2YjMzZWZjOGJkNTc5NjIuLmU3MGJiZWNlZWM1MDhhMGM2YjgyNTQwMjI0OTA5ZDFj
YWJhNTJlNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTEwLTE1
ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0Nv
Y29hXSBbR1BVIFByb2Nlc3NdIFBlcmZvcm0gaW1hZ2UgZGVjb2Rpbmcgb2YgY29sb3IgZm9udHMg
aW4gdGhlIFdlYiBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTc1MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg6CisKIDIwMjAtMTAtMTMg
IEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBsZWZ0
b3ZlciBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4IHN1cHBvcnQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCmluZGV4IDBhZGU3ZDhjOGQ0YjJmMmQ5OGQ2ZDM5MGU5MzhhYjMzZWI3NDU4MTcuLjhjYTBk
ZTcwMjk4MTlhNTQ1ZDQ4MTVmYTIwMDMzYjM1MzA1ZWE4OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpA
QCAtMTIyOSw2ICsxMjI5LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVS
UwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0V4dGVuc2lvbnNHTEFOR0xFLmgKIAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5oCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmgK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29u
dGV4dC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1h
Z2VCdWZmZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1zLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVH
cmFwaGljc1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNz
U1BJLmgKaW5kZXggYTdmODJiODYxYjYyYzRhZWZiODNjMTgxMWQ1NWM3YWY3NDllNmI5MS4uNzdj
Zjc3Yjg5YTYzYWUwZjBiMjZlMzNjNmNhZmRhNjE3YmY4YzNhNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKQEAgLTM4LDYgKzM4LDcgQEAK
IAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKKyNpbmNsdWRlIDxDb3JlR3JhcGhpY3Mv
Q0dDb250ZXh0RGVsZWdhdGVQcml2YXRlLmg+CiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHRm9u
dENhY2hlLmg+CiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHUGF0aFByaXZhdGUuaD4KICNpbmNs
dWRlIDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBoaWNzUHJpdmF0ZS5oPgpAQCAtNTgsMTkgKzU5LDEy
IEBAIHN0cnVjdCBDR0ZvbnRITWV0cmljcyB7CiAgICAgaW50IG1pblJpZ2h0U2lkZUJlYXJpbmc7
CiB9OwogCi1zdHJ1Y3QgQ0dGb250RGVzY3JpcHRvciB7Ci0gICAgQ0dSZWN0IGJib3g7Ci0gICAg
Q0dGbG9hdCBhc2NlbnQ7Ci0gICAgQ0dGbG9hdCBkZXNjZW50OwotICAgIENHRmxvYXQgY2FwSGVp
Z2h0OwotICAgIENHRmxvYXQgaXRhbGljQW5nbGU7Ci0gICAgQ0dGbG9hdCBzdGVtVjsKLSAgICBD
R0Zsb2F0IHN0ZW1IOwotICAgIENHRmxvYXQgYXZnV2lkdGg7Ci0gICAgQ0dGbG9hdCBtYXhXaWR0
aDsKLSAgICBDR0Zsb2F0IG1pc3NpbmdXaWR0aDsKLSAgICBDR0Zsb2F0IGxlYWRpbmc7Ci0gICAg
Q0dGbG9hdCB4SGVpZ2h0OwordHlwZWRlZiBDRl9FTlVNIChpbnQzMl90LCBDR0NvbnRleHREZWxl
Z2F0ZUNhbGxiYWNrTmFtZSkKK3sKKyAgICBkZURyYXdJbWFnZSA9IDcsCisgICAgZGVEcmF3R2x5
cGhzID0gOCwKKyAgICBkZUJlZ2luTGF5ZXIgPSAxNywKKyAgICBkZUVuZExheWVyID0gMTgsCiB9
OwogCiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBDR0NvbG9yVHJhbnNmb3JtKiBDR0NvbG9yVHJhbnNm
b3JtUmVmOwpAQCAtMTkzLDYgKzE4NywxMSBAQCBzdGF0aWMgY29uc3QgQ0dTTm90aWZpY2F0aW9u
VHlwZSBrQ0dTZXNzaW9uQ29uc29sZURpc2Nvbm5lY3QgPSAoQ0dTTm90aWZpY2F0aW9uVAogCiAj
ZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCit0eXBlZGVmIHN0cnVjdCBDR0NvbnRleHREZWxlZ2F0
ZSAqQ0dDb250ZXh0RGVsZWdhdGVSZWY7Cit0eXBlZGVmIHZvaWQgKCpDR0NvbnRleHREZWxlZ2F0
ZUNhbGxiYWNrKSh2b2lkKTsKK3R5cGVkZWYgc3RydWN0IENHUmVuZGVyaW5nU3RhdGUgKkNHUmVu
ZGVyaW5nU3RhdGVSZWY7Cit0eXBlZGVmIHN0cnVjdCBDR0dTdGF0ZSAqQ0dHU3RhdGVSZWY7CisK
ICNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCiAjaWYgUExBVEZPUk0oQ09DT0Ep
CkBAIC0yMzMsNyArMjMyLDYgQEAgdm9pZCBDR0NvbnRleHRSZXNldENsaXAoQ0dDb250ZXh0UmVm
KTsKIENHQ29udGV4dFR5cGUgQ0dDb250ZXh0R2V0VHlwZShDR0NvbnRleHRSZWYpOwogCiBDRlN0
cmluZ1JlZiBDR0ZvbnRDb3B5RmFtaWx5TmFtZShDR0ZvbnRSZWYpOwotYm9vbCBDR0ZvbnRHZXRE
ZXNjcmlwdG9yKENHRm9udFJlZiwgQ0dGb250RGVzY3JpcHRvciopOwogYm9vbCBDR0ZvbnRHZXRH
bHlwaEFkdmFuY2VzRm9yU3R5bGUoQ0dGb250UmVmLCBjb25zdCBDR0FmZmluZVRyYW5zZm9ybSog
LCBDR0ZvbnRSZW5kZXJpbmdTdHlsZSwgY29uc3QgQ0dHbHlwaFtdLCBzaXplX3QgY291bnQsIENH
U2l6ZSBhZHZhbmNlc1tdKTsKIHZvaWQgQ0dGb250R2V0R2x5cGhzRm9yVW5pY2hhcnMoQ0dGb250
UmVmLCBjb25zdCBVbmlDaGFyW10sIENHR2x5cGhbXSwgc2l6ZV90IGNvdW50KTsKIGNvbnN0IENH
Rm9udEhNZXRyaWNzKiBDR0ZvbnRHZXRITWV0cmljcyhDR0ZvbnRSZWYpOwpAQCAtMjUyLDYgKzI1
MCwxNiBAQCBib29sIENHQ29udGV4dEdldEFsbG93c0ZvbnRTdWJwaXhlbFBvc2l0aW9uaW5nKENH
Q29udGV4dFJlZik7CiBib29sIENHQ29udGV4dERyYXdzV2l0aENvcnJlY3RTaGFkb3dPZmZzZXRz
KENHQ29udGV4dFJlZik7CiBDR1BhdHRlcm5SZWYgQ0dQYXR0ZXJuQ3JlYXRlV2l0aEltYWdlMihD
R0ltYWdlUmVmLCBDR0FmZmluZVRyYW5zZm9ybSwgQ0dQYXR0ZXJuVGlsaW5nKTsKIAorQ0dDb250
ZXh0RGVsZWdhdGVSZWYgQ0dDb250ZXh0RGVsZWdhdGVDcmVhdGUodm9pZCogaW5mbyk7Cit2b2lk
IENHQ29udGV4dERlbGVnYXRlU2V0Q2FsbGJhY2soQ0dDb250ZXh0RGVsZWdhdGVSZWYsIENHQ29u
dGV4dERlbGVnYXRlQ2FsbGJhY2tOYW1lLCBDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrKTsKK0NH
Q29udGV4dFJlZiBDR0NvbnRleHRDcmVhdGVXaXRoRGVsZWdhdGUoQ0dDb250ZXh0RGVsZWdhdGVS
ZWYsIENHQ29udGV4dFR5cGUsIENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmKTsKK3Zv
aWQqIENHQ29udGV4dERlbGVnYXRlR2V0SW5mbyhDR0NvbnRleHREZWxlZ2F0ZVJlZik7Cit2b2lk
IENHQ29udGV4dERlbGVnYXRlUmVsZWFzZShDR0NvbnRleHREZWxlZ2F0ZVJlZik7CitDR0Zsb2F0
IENHR1N0YXRlR2V0QWxwaGEoQ0dHU3RhdGVSZWYpOworQ0dGb250UmVmIENHR1N0YXRlR2V0Rm9u
dChDR0dTdGF0ZVJlZik7Citjb25zdCBDR0FmZmluZVRyYW5zZm9ybSAqQ0dHU3RhdGVHZXRDVE0o
Q0dHU3RhdGVSZWYpOworQ0dDb2xvclJlZiBDR0dTdGF0ZUdldEZpbGxDb2xvcihDR0dTdGF0ZVJl
Zik7CisKICNpZiBIQVZFKENHUEFUSF9HRVRfTlVNQkVSX09GX0VMRU1FTlRTKQogc2l6ZV90IENH
UGF0aEdldE51bWJlck9mRWxlbWVudHMoQ0dQYXRoUmVmKTsKICNlbmRpZgpAQCAtMjg2LDE2ICsy
OTQsOSBAQCBDR1JlY3QqIENHU05leHRSZWN0KGNvbnN0IENHU1JlZ2lvbkVudW1lcmF0b3JPYmop
OwogQ0dTUmVnaW9uRW51bWVyYXRvck9iaiBDR1NSZWdpb25FbnVtZXJhdG9yKENHUmVnaW9uUmVm
KTsKIENHU3R5bGVSZWYgQ0dTdHlsZUNyZWF0ZUZvY3VzUmluZ1dpdGhDb2xvcihjb25zdCBDR0Zv
Y3VzUmluZ1N0eWxlKiwgQ0dDb2xvclJlZik7CiB2b2lkIENHQ29udGV4dFNldFN0eWxlKENHQ29u
dGV4dFJlZiwgQ0dTdHlsZVJlZik7Ci0KIHZvaWQgQ0dDb250ZXh0RHJhd0NvbmljR3JhZGllbnQo
Q0dDb250ZXh0UmVmLCBDR0dyYWRpZW50UmVmLCBDR1BvaW50IGNlbnRlciwgQ0dGbG9hdCBhbmds
ZSk7Ci0KLSNpZiBIQVZFKENHX1BBVEhfVU5FVkVOX0NPUk5FUlNfUk9VTkRFRFJFQ1QpCiB2b2lk
IENHUGF0aEFkZFVuZXZlbkNvcm5lcnNSb3VuZGVkUmVjdChDR011dGFibGVQYXRoUmVmLCBjb25z
dCBDR0FmZmluZVRyYW5zZm9ybSAqLCBDR1JlY3QsIGNvbnN0IENHU2l6ZSBjb3JuZXJzWzRdKTsK
LSNlbmRpZgotCi0jaWYgSEFWRShDR19GT05UX1JFTkRFUklOR19HRVRfRk9OVF9TTU9PVEhJTkdf
RElTQUJMRUQpCiBib29sIENHRm9udFJlbmRlcmluZ0dldEZvbnRTbW9vdGhpbmdEaXNhYmxlZCh2
b2lkKTsKLSNlbmRpZgogCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKQEAgLTMyOCwxNSAr
MzI5LDEwIEBAIGJvb2wgQ29sb3JTeW5jUHJvZmlsZUlzV2lkZUdhbXV0KENvbG9yU3luY1Byb2Zp
bGVSZWYpOwogc2l6ZV90IENHRGlzcGxheU1vZGVHZXRQaXhlbHNXaWRlKENHRGlzcGxheU1vZGVS
ZWYpOwogc2l6ZV90IENHRGlzcGxheU1vZGVHZXRQaXhlbHNIaWdoKENHRGlzcGxheU1vZGVSZWYp
OwogCi0jaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQotCiBDR0Vy
cm9yIENHU1NldERlbnlXaW5kb3dTZXJ2ZXJDb25uZWN0aW9ucyhib29sKTsKLQogdHlwZWRlZiBp
bnQzMl90IENHU0Rpc3BsYXlJRDsKIENHU0Rpc3BsYXlJRCBDR1NNYWluRGlzcGxheUlEKHZvaWQp
OwogCi0jZW5kaWYgLy8gRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQot
CiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCiAjaWYgRU5BQkxFKFBERktJVF9QTFVHSU4pICYm
ICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1BcHBsZVdpbi5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQXBwbGVXaW4uY21h
a2UKaW5kZXggYTc4OGU2OWRlNzQ0MWM5NDA4NGY3MDM2YTNlOGY0OWFkNDUxYTU4ZC4uMzhhMmI3
NzY4OTU1OThhNGY0ZTM2YWRlN2M2MDNiMDQwNzhkZGM3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUGxhdGZvcm1BcHBsZVdpbi5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bUFwcGxlV2luLmNtYWtlCkBAIC0zMCw2ICszMCw4IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09V
UkNFUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vY2YvV2ViQ29yZUFWQ0ZSZXNvdXJjZUxvYWRlci5jcHAKIAorICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNw
cAorCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3Bw
CiAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL2NmL0F1dGhlbnRpY2F0aW9uQ0YuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbkNhaXJvLmNtYWtlIGIvU291cmNlL1dlYkNv
cmUvUGxhdGZvcm1XaW5DYWlyby5jbWFrZQppbmRleCBjNGI4NmMxNDg5YWFjOWE1ZTJlYTAwNDAw
MjBmMzQxOTY2YTE0NTMzLi5iZmUwOGQ3YTY0OTg3NzI5NzM0N2Y4NmJlZjg0MGUzZTY5ZjI4ODhh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbkNhaXJvLmNtYWtlCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UKQEAgLTE4LDYgKzE4LDggQEAg
bGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250
ZXh0LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKIAorICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNv
cmRlckhhcmZCdXp6LmNwcAorCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21Q
bGF0Zm9ybURhdGFDYWlyby5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBsYXRm
b3JtRGF0YUNhaXJvV2luLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9HbHlwaFBhZ2VU
cmVlTm9kZUNhaXJvV2luLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0Nv
Y29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggNjQxNDA1OTI1
NDAxZTZlM2NkNWI2NmY5YTNmZjdjZDhkMDcxY2UwOC4uZTcwMmFiNTY1MTY5NjU2YzEzZmM5MGMx
M2UxYTI0ZjNiM2E5ZmNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29h
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0zNzgsNiArMzc4
LDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbQogcGxh
dGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAKIHBsYXRmb3JtL2dy
YXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY29y
ZWltYWdlL0ZpbHRlckVmZmVjdFJlbmRlcmVyQ29yZUltYWdlLm1tCitwbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAK
IHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdEYXRhLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L2NvY29hL0dQVUJpbmRHcm91cEFsbG9jYXRvck1ldGFsLm1tCiBwbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvY29jb2EvR1BVQmluZEdyb3VwTGF5b3V0TWV0YWwubW0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxYWNmMTQ0Mzk5MjQ4
NTgxNDhkZDIwYjllOGRlN2E1MWUzYjIyZGNlLi5lOWRiYjA5ZTEyZGE2ZTM0NGJkM2Y3NGVjZjBi
YjJkY2E3NzM2NWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC02MTksNiArNjE5LDcgQEAKIAkJMUNBRjM0ODEwQTZDNDA1MjAw
QUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUNBRjM0N0UwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9i
amVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTFDQUYzNDgyMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FGMzQ3RjBBNkM0MDUyMDBB
QkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0Lm1tICovOyB9OwogCQkxQ0FGMzQ4MzBBNkM0MDUyMDBB
QkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBRjM0ODAwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNj
cmlwdE9iamVjdFByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQkxQ0FGNTZEQjI1MzAxQUM4MDAxN0I0NzIgLyogRGlzcGxheUxpc3REcmF3
R2x5cGhzUmVjb3JkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFDQUY1NkQ4MjUzMDE0NTcwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNS
ZWNvcmRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTFDQ0Q4MTUwMjIzMUY4M0UwMDY1RkMyQiAvKiBXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09w
ZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMTUyNTUxNDE2RkQyMzRGMDAzRDdBREIgLyogV2ViQ29yZVJlc291cmNl
SGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tICovOyB9OwogCQkxQ0NERjVCRTE5OTAz
MzI0MDBCQ0VCQUQgLyogU1ZHVG9PVEZGb250Q29udmVyc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDREY1QkMxOTkwMzMyNDAwQkNFQkFEIC8q
IFNWR1RvT1RGRm9udENvbnZlcnNpb24uaCAqLzsgfTsKIAkJMUNGQUUzMjMwQTZENkEzRjAwMzI1
OTNEIC8qIGxpYm9iamMuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQ0ZBRTMyMjBBNkQ2QTNGMDAzMjU5M0QgLyogbGlib2JqYy5keWxpYiAq
LzsgfTsKQEAgLTY3MTYsNiArNjcxNyw4IEBACiAJCTFDQUYzNDdFMEE2QzQwNTIwMEFCRTA2RSAv
KiBXZWJTY3JpcHRPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
U2NyaXB0T2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUYzNDdGMEE2
QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBXZWJTY3JpcHRPYmplY3QubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFDQUYzNDgwMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3RQ
cml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNjcmlwdE9iamVj
dFByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNBRjU2RDgyNTMwMTQ1
NzAwMTdCNDcyIC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTFDQUY1NkRFMjUzMDI0NUEwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlw
aHNSZWNvcmRlckNvcmVUZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpc3BsYXlMaXN0RHJh
d0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkxQ0I1RkU4ODIyREVCQzhCMDA5NDQwRTIgLyogV0hMU0xFcnJvci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXSExTTEVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQjY5QjMyMjFE
RUQ0MEIwMDZFODQ2QSAvKiBXSExTTFJlc29sdmFibGVUeXBlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdI
TFNMUmVzb2x2YWJsZVR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNCNjlC
MzQyMURFRDYzQTAwNkU4NDZBIC8qIFdITFNMRmxvYXRMaXRlcmFsVHlwZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXSExTTEZsb2F0TGl0ZXJhbFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE3NTE1LDYgKzE3NTE4LDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTBGRTVGQkNBMUMz
REQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdC5jcHAgKi8sCiAJCQkJMEZFNUZCQ0IxQzNERDUx
RTAwMDdBMkNBIC8qIERpc3BsYXlMaXN0LmggKi8sCisJCQkJMUNBRjU2RDgyNTMwMTQ1NzAwMTdC
NDcyIC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmggKi8sCisJCQkJMUNBRjU2REUy
NTMwMjQ1QTAwMTdCNDcyIC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQu
Y3BwICovLAogCQkJCTU1QzBBMjk1MjNGRTJDRTAwMEYyQ0I5MyAvKiBEaXNwbGF5TGlzdERyYXdp
bmdDb250ZXh0LmNwcCAqLywKIAkJCQk3MkVBMDlGOTIzRkNDQzZBMDA4NTA0QTUgLyogRGlzcGxh
eUxpc3REcmF3aW5nQ29udGV4dC5oICovLAogCQkJCTcyRUEwOUY3MjNGQ0NCM0QwMDg1MDRBNSAv
KiBEaXNwbGF5TGlzdEltYWdlQnVmZmVyLmggKi8sCkBAIC0zMTIzNyw2ICszMTI0Miw3IEBACiAJ
CQkJN0VEQUFGQzkxOUEyQ0NEQzAwMzRERkQxIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEY3OTBGNDIyNTE3Q0U2RTAwOUJBMDM0IC8qIERpc3BsYXlMYXll
ckNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTVGQkQzMUMzREQ1MUUwMDA3QTJD
QSAvKiBEaXNwbGF5TGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNBRjU2REIyNTMwMUFDODAw
MTdCNDcyIC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1NUFEMDk0MDI0MDg5NjQwMDBERTREMkYgLyogRGlzcGxheUxpc3REcmF3aW5nQ29udGV4
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTVBRDA5M0UyNDA4OTYzNTAwREU0RDJGIC8qIERpc3Bs
YXlMaXN0SW1hZ2VCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTVGQkQ1MUMzREQ1MUUw
MDA3QTJDQSAvKiBEaXNwbGF5TGlzdEl0ZW1zLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtlIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vRnJlZVR5cGUuY21ha2UKaW5kZXggN2MwNGQ5M2E1Yjg1YzczMjU4MWM5NWEwNjVi
ZTA1YjYzNjdjN2FlNC4uZjM4YjU0ZTE3YzkzMTU2NTE1NGNhYjk1M2E4MWUwZTk2ZjU3NDlhNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJlZVR5cGUuY21ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJlZVR5cGUuY21ha2UKQEAgLTUsNiArNSw4IEBAIGxp
c3QoQVBQRU5EIFdlYkNvcmVfUFJJVkFURV9JTkNMVURFX0RJUkVDVE9SSUVTCiApCiAKIGxpc3Qo
QVBQRU5EIFdlYkNvcmVfU09VUkNFUworICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcAorCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvZnJlZXR5cGUvRm9udEN1c3RvbVBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzliMDFhODYwNjk5MzVmZmM3YTVhNzNjNzBkNDlhYTU2Y2RiMTUzMAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oCkBAIC0wLDAgKzEsOTAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgorI2luY2x1ZGUgIkNvbG9yLmgiCisjaW5j
bHVkZSAiR3JhZGllbnQuaCIKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRl
ICJQYXR0ZXJuLmgiCisjaW5jbHVkZSAiVGV4dEZsYWdzLmgiCisKKyNpZiBVU0UoQ09SRV9URVhU
KQorI2luY2x1ZGUgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3MuaD4KKyNpbmNsdWRlIDxwYWwv
c3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgRmxvYXRQb2ludDsKK2NsYXNzIEZvbnQ7CitjbGFzcyBHbHlwaEJ1ZmZlcjsKK2Ns
YXNzIEdyYXBoaWNzQ29udGV4dDsKKworbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKKworY2xhc3Mg
UmVjb3JkZXI7CisKK2NsYXNzIERyYXdHbHlwaHNSZWNvcmRlciB7CitwdWJsaWM6CisgICAgZXhw
bGljaXQgRHJhd0dseXBoc1JlY29yZGVyKFJlY29yZGVyJik7CisKKyAgICB2b2lkIGRyYXdHbHlw
aHMoY29uc3QgRm9udCYsIGNvbnN0IEdseXBoQnVmZmVyJiwgdW5zaWduZWQgZnJvbSwgdW5zaWdu
ZWQgbnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBhbmNob3JQb2ludCwgRm9udFNtb290aGlu
Z01vZGUpOworCisjaWYgVVNFKENPUkVfVEVYVCkKKyAgICB2b2lkIHJlY29yZEJlZ2luTGF5ZXIo
Q0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYsIENHUmVjdCk7CisgICAgdm9pZCByZWNv
cmRFbmRMYXllcihDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZik7CisgICAgdm9pZCBy
ZWNvcmREcmF3R2x5cGhzKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmLCBjb25zdCBD
R0FmZmluZVRyYW5zZm9ybSosIGNvbnN0IENHR2x5cGhbXSwgY29uc3QgQ0dQb2ludCBwb3NpdGlv
bnNbXSwgc2l6ZV90IGNvdW50KTsKKyAgICB2b2lkIHJlY29yZERyYXdJbWFnZShDR1JlbmRlcmlu
Z1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiwgQ0dSZWN0LCBDR0ltYWdlUmVmKTsKKyNlbmRpZgorCitw
cml2YXRlOgorICAgIEdyYXBoaWNzQ29udGV4dCBjcmVhdGVJbnRlcm5hbENvbnRleHQoKTsKKyAg
ICB2b2lkIHByZXBhcmVJbnRlcm5hbENvbnRleHQoY29uc3QgRm9udCYsIEZvbnRTbW9vdGhpbmdN
b2RlKTsKKyAgICB2b2lkIGNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KCk7CisgICAgdm9pZCB1cGRh
dGVDVE0oQWZmaW5lVHJhbnNmb3JtKTsKKyAgICB2b2lkIHVwZGF0ZUZpbGxDb2xvcihjb25zdCBD
b2xvciYsIEdyYWRpZW50KiA9IG51bGxwdHIsIFBhdHRlcm4qID0gbnVsbHB0cik7CisKKyAgICBS
ZWNvcmRlciYgbV9vd25lcjsKKyAgICBHcmFwaGljc0NvbnRleHQgbV9pbnRlcm5hbENvbnRleHQ7
CisgICAgY29uc3QgRm9udCogbV9jdXJyZW50Rm9udCB7IG51bGxwdHIgfTsKKyAgICBDb2xvciBt
X2N1cnJlbnRDb2xvcjsKKworICAgIENvbG9yIG1fb3JpZ2luYWxGaWxsQ29sb3I7CisgICAgUmVm
UHRyPEdyYWRpZW50PiBtX29yaWdpbmFsRmlsbEdyYWRpZW50OworICAgIFJlZlB0cjxQYXR0ZXJu
PiBtX29yaWdpbmFsRmlsbFBhdHRlcm47CisKKyAgICBBZmZpbmVUcmFuc2Zvcm0gbV9vcmlnaW5h
bENUTTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gbV9jdXJyZW50Q1RNOworCisgICAgQWZmaW5lVHJh
bnNmb3JtIG1fb3JpZ2luYWxUZXh0TWF0cml4OworCisgICAgRm9udFNtb290aGluZ01vZGUgbV9z
bW9vdGhpbmdNb2RlIHsgRm9udFNtb290aGluZ01vZGU6OkF1dG9TbW9vdGhpbmcgfTsKK307CisK
K30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJh
d0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4ZWM2YzEyY2U5M2ZhY2Nk
MmE5YzZhZWE2ZWFhYTNhYjBmYmY5ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVj
b3JkZXJDb3JlVGV4dC5jcHAKQEAgLTAsMCArMSwyNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
RGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCIKKworI2luY2x1ZGUgIkJpdG1hcEltYWdl
LmgiCisjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRlICJEaXNwbGF5TGlzdEl0ZW1zLmgiCisj
aW5jbHVkZSAiRGlzcGxheUxpc3RSZWNvcmRlci5oIgorI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIK
KyNpbmNsdWRlICJGb250LmgiCisjaW5jbHVkZSAiRm9udENhc2NhZGUuaCIKKyNpbmNsdWRlICJH
bHlwaEJ1ZmZlci5oIgorCisjaW5jbHVkZSA8Q29yZVRleHQvQ29yZVRleHQuaD4KKyNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CisKKyNpZiBQTEFURk9STShXSU4pCisjaW5jbHVkZSA8cGFsL3NwaS93
aW4vQ29yZVRleHRTUElXaW4uaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK25h
bWVzcGFjZSBEaXNwbGF5TGlzdCB7CisKK3N0YXRpYyBDR0NvbnRleHREZWxlZ2F0ZVJlZiBiZWdp
bkxheWVyKENHQ29udGV4dERlbGVnYXRlUmVmIGRlbGVnYXRlLCBDR1JlbmRlcmluZ1N0YXRlUmVm
IHJzdGF0ZSwgQ0dHU3RhdGVSZWYgZ3N0YXRlLCBDR1JlY3QgcmVjdCwgQ0ZEaWN0aW9uYXJ5UmVm
LCBDR0NvbnRleHREZWxlZ2F0ZVJlZikKK3sKKyAgICBEcmF3R2x5cGhzUmVjb3JkZXImIHJlY29y
ZGVyID0gKnN0YXRpY19jYXN0PERyYXdHbHlwaHNSZWNvcmRlcio+KENHQ29udGV4dERlbGVnYXRl
R2V0SW5mbyhkZWxlZ2F0ZSkpOworICAgIHJlY29yZGVyLnJlY29yZEJlZ2luTGF5ZXIocnN0YXRl
LCBnc3RhdGUsIHJlY3QpOworICAgIHJldHVybiBkZWxlZ2F0ZTsKK30KKworc3RhdGljIENHQ29u
dGV4dERlbGVnYXRlUmVmIGVuZExheWVyKENHQ29udGV4dERlbGVnYXRlUmVmIGRlbGVnYXRlLCBD
R1JlbmRlcmluZ1N0YXRlUmVmIHJzdGF0ZSwgQ0dHU3RhdGVSZWYgZ3N0YXRlKQoreworICAgIERy
YXdHbHlwaHNSZWNvcmRlciYgcmVjb3JkZXIgPSAqc3RhdGljX2Nhc3Q8RHJhd0dseXBoc1JlY29y
ZGVyKj4oQ0dDb250ZXh0RGVsZWdhdGVHZXRJbmZvKGRlbGVnYXRlKSk7CisgICAgcmVjb3JkZXIu
cmVjb3JkRW5kTGF5ZXIocnN0YXRlLCBnc3RhdGUpOworICAgIHJldHVybiBkZWxlZ2F0ZTsKK30K
Kworc3RhdGljIENHRXJyb3IgZHJhd0dseXBocyhDR0NvbnRleHREZWxlZ2F0ZVJlZiBkZWxlZ2F0
ZSwgQ0dSZW5kZXJpbmdTdGF0ZVJlZiByc3RhdGUsIENHR1N0YXRlUmVmIGdzdGF0ZSwgY29uc3Qg
Q0dBZmZpbmVUcmFuc2Zvcm0qIHRtLCBjb25zdCBDR0dseXBoIGdseXBoc1tdLCBjb25zdCBDR1Bv
aW50IHBvc2l0aW9uc1tdLCBzaXplX3QgY291bnQpCit7CisgICAgaWYgKENHR1N0YXRlR2V0QWxw
aGEoZ3N0YXRlKSA+IDApIHsKKyAgICAgICAgRHJhd0dseXBoc1JlY29yZGVyJiByZWNvcmRlciA9
ICpzdGF0aWNfY2FzdDxEcmF3R2x5cGhzUmVjb3JkZXIqPihDR0NvbnRleHREZWxlZ2F0ZUdldElu
Zm8oZGVsZWdhdGUpKTsKKyAgICAgICAgcmVjb3JkZXIucmVjb3JkRHJhd0dseXBocyhyc3RhdGUs
IGdzdGF0ZSwgdG0sIGdseXBocywgcG9zaXRpb25zLCBjb3VudCk7CisgICAgfQorICAgIHJldHVy
biBrQ0dFcnJvclN1Y2Nlc3M7Cit9CisKK3N0YXRpYyBDR0Vycm9yIGRyYXdJbWFnZShDR0NvbnRl
eHREZWxlZ2F0ZVJlZiBkZWxlZ2F0ZSwgQ0dSZW5kZXJpbmdTdGF0ZVJlZiByc3RhdGUsIENHR1N0
YXRlUmVmIGdzdGF0ZSwgQ0dSZWN0IHJlY3QsIENHSW1hZ2VSZWYgaW1hZ2UpCit7CisgICAgRHJh
d0dseXBoc1JlY29yZGVyJiByZWNvcmRlciA9ICpzdGF0aWNfY2FzdDxEcmF3R2x5cGhzUmVjb3Jk
ZXIqPihDR0NvbnRleHREZWxlZ2F0ZUdldEluZm8oZGVsZWdhdGUpKTsKKyAgICByZWNvcmRlci5y
ZWNvcmREcmF3SW1hZ2UocnN0YXRlLCBnc3RhdGUsIHJlY3QsIGltYWdlKTsKKyAgICByZXR1cm4g
a0NHRXJyb3JTdWNjZXNzOworfQorCitHcmFwaGljc0NvbnRleHQgRHJhd0dseXBoc1JlY29yZGVy
OjpjcmVhdGVJbnRlcm5hbENvbnRleHQoKQoreworICAgIGF1dG8gY29udGV4dERlbGVnYXRlID0g
YWRvcHRDRihDR0NvbnRleHREZWxlZ2F0ZUNyZWF0ZSh0aGlzKSk7CisgICAgQ0dDb250ZXh0RGVs
ZWdhdGVTZXRDYWxsYmFjayhjb250ZXh0RGVsZWdhdGUuZ2V0KCksIGRlQmVnaW5MYXllciwgcmVp
bnRlcnByZXRfY2FzdDxDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrPigmYmVnaW5MYXllcikpOwor
ICAgIENHQ29udGV4dERlbGVnYXRlU2V0Q2FsbGJhY2soY29udGV4dERlbGVnYXRlLmdldCgpLCBk
ZUVuZExheWVyLCByZWludGVycHJldF9jYXN0PENHQ29udGV4dERlbGVnYXRlQ2FsbGJhY2s+KCZl
bmRMYXllcikpOworICAgIENHQ29udGV4dERlbGVnYXRlU2V0Q2FsbGJhY2soY29udGV4dERlbGVn
YXRlLmdldCgpLCBkZURyYXdHbHlwaHMsIHJlaW50ZXJwcmV0X2Nhc3Q8Q0dDb250ZXh0RGVsZWdh
dGVDYWxsYmFjaz4oJldlYkNvcmU6OkRpc3BsYXlMaXN0OjpkcmF3R2x5cGhzKSk7CisgICAgQ0dD
b250ZXh0RGVsZWdhdGVTZXRDYWxsYmFjayhjb250ZXh0RGVsZWdhdGUuZ2V0KCksIGRlRHJhd0lt
YWdlLCByZWludGVycHJldF9jYXN0PENHQ29udGV4dERlbGVnYXRlQ2FsbGJhY2s+KCZkcmF3SW1h
Z2UpKTsKKyAgICBhdXRvIGNvbnRleHQgPSBhZG9wdENGKENHQ29udGV4dENyZWF0ZVdpdGhEZWxl
Z2F0ZShjb250ZXh0RGVsZWdhdGUuZ2V0KCksIGtDR0NvbnRleHRUeXBlVW5rbm93biwgbnVsbHB0
ciwgbnVsbHB0cikpOworICAgIHJldHVybiBHcmFwaGljc0NvbnRleHQoY29udGV4dC5nZXQoKSk7
Cit9CisKK0RyYXdHbHlwaHNSZWNvcmRlcjo6RHJhd0dseXBoc1JlY29yZGVyKFJlY29yZGVyJiBv
d25lcikKKyAgICA6IG1fb3duZXIob3duZXIpCisgICAgLCBtX2ludGVybmFsQ29udGV4dChjcmVh
dGVJbnRlcm5hbENvbnRleHQoKSkKK3sKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnBy
ZXBhcmVJbnRlcm5hbENvbnRleHQoY29uc3QgRm9udCYgZm9udCwgRm9udFNtb290aGluZ01vZGUg
c21vb3RoaW5nTW9kZSkKK3sKKyAgICBBU1NFUlQoQ0dBZmZpbmVUcmFuc2Zvcm1Jc0lkZW50aXR5
KENURm9udEdldE1hdHJpeChmb250LnBsYXRmb3JtRGF0YSgpLmN0Rm9udCgpKSkpOworCisgICAg
YXV0byYgc3RhdGUgPSBtX293bmVyLmN1cnJlbnRTdGF0ZSgpLnN0YXRlQ2hhbmdlLm1fc3RhdGU7
CisgICAgbV9vcmlnaW5hbEZpbGxDb2xvciA9IHN0YXRlLmZpbGxDb2xvcjsKKyAgICBtX29yaWdp
bmFsRmlsbEdyYWRpZW50ID0gc3RhdGUuZmlsbEdyYWRpZW50OworICAgIG1fb3JpZ2luYWxGaWxs
UGF0dGVybiA9IHN0YXRlLmZpbGxQYXR0ZXJuOworICAgIG1fY3VycmVudENvbG9yID0gbV9vcmln
aW5hbEZpbGxDb2xvcjsKKworICAgIGlmIChtX29yaWdpbmFsRmlsbENvbG9yLmlzVmFsaWQoKSkK
KyAgICAgICAgbV9pbnRlcm5hbENvbnRleHQuc2V0RmlsbENvbG9yKG1fb3JpZ2luYWxGaWxsQ29s
b3IpOworICAgIGVsc2UgaWYgKG1fb3JpZ2luYWxGaWxsR3JhZGllbnQpCisgICAgICAgIG1faW50
ZXJuYWxDb250ZXh0LnNldEZpbGxHcmFkaWVudCgqbV9vcmlnaW5hbEZpbGxHcmFkaWVudCk7Cisg
ICAgZWxzZSB7CisgICAgICAgIEFTU0VSVChtX29yaWdpbmFsRmlsbFBhdHRlcm4pOworICAgICAg
ICBpZiAobV9vcmlnaW5hbEZpbGxQYXR0ZXJuKQorICAgICAgICAgICAgbV9pbnRlcm5hbENvbnRl
eHQuc2V0RmlsbFBhdHRlcm4oKm1fb3JpZ2luYWxGaWxsUGF0dGVybik7CisgICAgfQorCisgICAg
bV9pbnRlcm5hbENvbnRleHQuc2V0U2hhZG93KHN0YXRlLnNoYWRvd09mZnNldCwgc3RhdGUuc2hh
ZG93Qmx1ciwgc3RhdGUuc2hhZG93Q29sb3IpOworCisgICAgbV9vcmlnaW5hbENUTSA9IG1fb3du
ZXIuY3VycmVudFN0YXRlKCkuY3RtOyAvLyBGSVhNRTogRGVhbCB3aXRoIGRldmljZSBzY2FsZS4K
KyAgICBtX2N1cnJlbnRDVE0gPSBtX29yaWdpbmFsQ1RNOworICAgIG1faW50ZXJuYWxDb250ZXh0
LnNldENUTShtX29yaWdpbmFsQ1RNKTsKKworICAgIG1fb3JpZ2luYWxUZXh0TWF0cml4ID0gY29t
cHV0ZU92ZXJhbGxUZXh0TWF0cml4KGZvbnQpOworICAgIGlmIChmb250LnBsYXRmb3JtRGF0YSgp
Lm9yaWVudGF0aW9uKCkgPT0gRm9udE9yaWVudGF0aW9uOjpWZXJ0aWNhbCkKKyAgICAgICAgbV9v
cmlnaW5hbFRleHRNYXRyaXggPSBjb21wdXRlVmVydGljYWxUZXh0TWF0cml4KGZvbnQsIG1fb3Jp
Z2luYWxUZXh0TWF0cml4KTsKKworICAgIG1fY3VycmVudEZvbnQgPSAmZm9udDsKKyAgICBtX3Nt
b290aGluZ01vZGUgPSBzbW9vdGhpbmdNb2RlOworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRl
cjo6Y29uY2x1ZGVJbnRlcm5hbENvbnRleHQoKQoreworICAgIHVwZGF0ZUZpbGxDb2xvcihtX29y
aWdpbmFsRmlsbENvbG9yLCBtX29yaWdpbmFsRmlsbEdyYWRpZW50LmdldCgpLCBtX29yaWdpbmFs
RmlsbFBhdHRlcm4uZ2V0KCkpOworICAgIHVwZGF0ZUNUTShtX29yaWdpbmFsQ1RNKTsKK30KKwor
dm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnVwZGF0ZUNUTShBZmZpbmVUcmFuc2Zvcm0gY3RtKQor
eworICAgIGlmIChjdG0gPT0gbV9jdXJyZW50Q1RNKQorICAgICAgICByZXR1cm47CisKKyAgICBt
X293bmVyLnNldENUTShjdG0pOworICAgIG1fY3VycmVudENUTSA9IGN0bTsKK30KKwordm9pZCBE
cmF3R2x5cGhzUmVjb3JkZXI6OnVwZGF0ZUZpbGxDb2xvcihjb25zdCBDb2xvciYgbmV3Q29sb3Is
IEdyYWRpZW50KiBuZXdHcmFkaWVudCwgUGF0dGVybiogbmV3UGF0dGVybikKK3sKKyAgICBpZiAo
bmV3Q29sb3IgPT0gbV9jdXJyZW50Q29sb3IpCisgICAgICAgIHJldHVybjsKKworICAgIEdyYXBo
aWNzQ29udGV4dFN0YXRlIG5ld1N0YXRlOworICAgIG5ld1N0YXRlLmZpbGxDb2xvciA9IG5ld0Nv
bG9yOworICAgIGlmIChuZXdHcmFkaWVudCkKKyAgICAgICAgbmV3U3RhdGUuZmlsbEdyYWRpZW50
ID0gbmV3R3JhZGllbnQ7CisgICAgaWYgKG5ld1BhdHRlcm4pCisgICAgICAgIG5ld1N0YXRlLmZp
bGxQYXR0ZXJuID0gbmV3UGF0dGVybjsKKyAgICBtX293bmVyLnVwZGF0ZVN0YXRlKG5ld1N0YXRl
LCB7IEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsQ29sb3JDaGFuZ2UgfSk7CisgICAgbV9jdXJy
ZW50Q29sb3IgPSBuZXdDb2xvcjsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29y
ZEJlZ2luTGF5ZXIoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYgZ3N0YXRlLCBDR1Jl
Y3QpCit7CisgICAgdXBkYXRlQ1RNKCpDR0dTdGF0ZUdldENUTShnc3RhdGUpKTsKKyAgICBhdXRv
IGFscGhhID0gQ0dHU3RhdGVHZXRBbHBoYShnc3RhdGUpOworICAgIG1fb3duZXIuYmVnaW5UcmFu
c3BhcmVuY3lMYXllcihhbHBoYSk7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpyZWNv
cmRFbmRMYXllcihDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiBnc3RhdGUpCit7Cisg
ICAgdXBkYXRlQ1RNKCpDR0dTdGF0ZUdldENUTShnc3RhdGUpKTsKKyAgICBtX293bmVyLmVuZFRy
YW5zcGFyZW5jeUxheWVyKCk7Cit9CisKK3N0YXRpYyBWZWN0b3I8Q0dTaXplPiBjb21wdXRlQWR2
YW5jZXNGcm9tUG9zaXRpb25zKGNvbnN0IENHUG9pbnQgcG9zaXRpb25zW10sIHNpemVfdCBjb3Vu
dCwgY29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0mIHRleHRNYXRyaXgpCit7CisgICAgVmVjdG9yPENH
U2l6ZT4gcmVzdWx0OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQgLSAxOyArK2kp
IHsKKyAgICAgICAgYXV0byBuZXh0UG9zaXRpb24gPSBwb3NpdGlvbnNbaSArIDFdOworICAgICAg
ICBhdXRvIGN1cnJlbnRQb3NpdGlvbiA9IHBvc2l0aW9uc1tpXTsKKyAgICAgICAgYXV0byBhZHZh
bmNlID0gQ0dTaXplTWFrZShuZXh0UG9zaXRpb24ueCAtIGN1cnJlbnRQb3NpdGlvbi54LCBuZXh0
UG9zaXRpb24ueSAtIGN1cnJlbnRQb3NpdGlvbi55KTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChD
R1NpemVBcHBseUFmZmluZVRyYW5zZm9ybShhZHZhbmNlLCB0ZXh0TWF0cml4KSk7CisgICAgfQor
ICAgIHJlc3VsdC5jb25zdHJ1Y3RBbmRBcHBlbmQoQ0dTaXplTWFrZSgwLCAwKSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZERyYXdHbHlw
aHMoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYgZ3N0YXRlLCBjb25zdCBDR0FmZmlu
ZVRyYW5zZm9ybSosIGNvbnN0IENHR2x5cGggZ2x5cGhzW10sIGNvbnN0IENHUG9pbnQgcG9zaXRp
b25zW10sIHNpemVfdCBjb3VudCkKK3sKKyAgICBpZiAoIWNvdW50KQorICAgICAgICByZXR1cm47
CisKKyAgICBDR0ZvbnRSZWYgdXNlZEZvbnQgPSBDR0dTdGF0ZUdldEZvbnQoZ3N0YXRlKTsKKyAg
ICBpZiAodXNlZEZvbnQgIT0gYWRvcHRDRihDVEZvbnRDb3B5R3JhcGhpY3NGb250KG1fY3VycmVu
dEZvbnQtPnBsYXRmb3JtRGF0YSgpLmN0Rm9udCgpLCBudWxscHRyKSkuZ2V0KCkpCisgICAgICAg
IHJldHVybjsKKworI2lmIEFTU0VSVF9FTkFCTEVECisgICAgYXV0byB0ZXh0UG9zaXRpb24gPSBD
R0NvbnRleHRHZXRUZXh0UG9zaXRpb24obV9pbnRlcm5hbENvbnRleHQucGxhdGZvcm1Db250ZXh0
KCkpOworICAgIEFTU0VSVCghdGV4dFBvc2l0aW9uLngpOworICAgIEFTU0VSVCghdGV4dFBvc2l0
aW9uLnkpOworI2VuZGlmCisKKyAgICB1cGRhdGVDVE0oKkNHR1N0YXRlR2V0Q1RNKGdzdGF0ZSkp
OworCisgICAgLy8gV2Ugd2FudCB0aGUgR1BVIHByb2Nlc3MncyBDVE0gYW5kIHRleHQgbWF0cml4
IHRvIG1hdGNoIHRoZSBjdXJyZW50IENUTSBhbmQgdGV4dCBtYXRyaXguCisgICAgLy8gVGhlIGN1
cnJlbnQgdGV4dCBtYXRyaXggaXMgYSBjb25jYXRlbmF0aW9uIG9mIHdoYXRldmVyIFdlYktpdCBz
ZXRzIGl0IHRvIGFuZCB3aGF0ZXZlcgorICAgIC8vIENvcmUgVGV4dCBhcHBlbmRzIHRvIGl0LiBT
bywgcmlnaHQgbm93IHdlIGhhdmUKKyAgICAvLyBDVE0gKiBtX29yaWdpbmFsVGV4dE1hdHJpeCAq
IENvcmUgVGV4dCdzIHRleHQgbWF0cml4LgorICAgIC8vIEhvd2V2ZXIsIENHQ29udGV4dEdldFRl
eHRNYXRyaXgoKSBqdXN0IHRlbGxzIHVzIHdoYXQgdGhlIHdob2xlIHRleHQgbWF0cml4IGlzLCBz
bworICAgIC8vIG1fb3JpZ2luYWxUZXh0TWF0cml4ICogQ29yZSBUZXh0J3MgdGV4dCBtYXRyaXgg
PSBjdXJyZW50VGV4dE1hdHJpeC4KKyAgICAvLyBUaGUgb25seSB3YXkgd2UgY2FuIGVtdWxhdGUg
Q29yZSBUZXh0J3MgdGV4dCBtYXRyaXggaXMgYnkgbW9kaWZ5aW5nIHRoZSBDVE0gaGVyZS4KKyAg
ICAvLyBTbywgaWYgd2UgZG8gdGhhdCwgdGhlIEdQVSBwcm9jZXNzIHdpbGwgaGF2ZQorICAgIC8v
IENUTSAqIFggKiBtX29yaWdpbmFsVGV4dE1hdHJpeAorICAgIC8vIElmIHlvdSBzZXQgdGhlc2Ug
dHdvIGVxdWFsIHRvIGVhY2ggb3RoZXIsIGFuZCBzb2x2ZSBmb3IgWCwgeW91IGdldAorICAgIC8v
IENUTSAqIGN1cnJlbnRUZXh0TWF0cml4ID0gQ1RNICogWCAqIG1fb3JpZ2luYWxUZXh0TWF0cml4
CisgICAgLy8gY3VycmVudFRleHRNYXRyaXggKiBpbnZlcnNlKG1fb3JpZ2luYWxUZXh0TWF0cml4
KSA9IFgKKyAgICBBZmZpbmVUcmFuc2Zvcm0gY3VycmVudFRleHRNYXRyaXggPSBDR0NvbnRleHRH
ZXRUZXh0TWF0cml4KG1faW50ZXJuYWxDb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpKTsKKyAgICBB
ZmZpbmVUcmFuc2Zvcm0gY3RtRml4dXA7CisgICAgaWYgKGF1dG8gaW52ZXJ0ZWRPcmlnaW5hbFRl
eHRNYXRyaXggPSBtX29yaWdpbmFsVGV4dE1hdHJpeC5pbnZlcnNlKCkpCisgICAgICAgIGN0bUZp
eHVwID0gY3VycmVudFRleHRNYXRyaXggKiBpbnZlcnRlZE9yaWdpbmFsVGV4dE1hdHJpeC52YWx1
ZSgpOworICAgIEFmZmluZVRyYW5zZm9ybSBpbnZlcnNlQ1RNRml4dXA7CisgICAgaWYgKGF1dG8g
aW52ZXJzZSA9IGN0bUZpeHVwLmludmVyc2UoKSkKKyAgICAgICAgaW52ZXJzZUNUTUZpeHVwID0g
aW52ZXJzZS52YWx1ZSgpOworICAgIGVsc2UKKyAgICAgICAgY3RtRml4dXAgPSBBZmZpbmVUcmFu
c2Zvcm0oKTsKKyAgICBtX293bmVyLmNvbmNhdENUTShjdG1GaXh1cCk7CisKKyAgICB1cGRhdGVG
aWxsQ29sb3IoQ0dHU3RhdGVHZXRGaWxsQ29sb3IoZ3N0YXRlKSk7IC8vIEZJWE1FOiBXaGF0IGhh
cHBlbnMgaWYgd2UndmUgZ290IGEgZ3JhZGllbnQgb3IgcGF0dGVybiBvciBtYXNrPworCisgICAg
Ly8gVGVzdCBjYXNlOiB2ZXJ0aWNhbCB0ZXh0LCByb3RhdGVkIHRleHQKKyAgICBtX293bmVyLmFw
cGVuZEl0ZW1BbmRVcGRhdGVFeHRlbnQoRHJhd0dseXBoczo6Y3JlYXRlKCptX2N1cnJlbnRGb250
LCBnbHlwaHMsIGNvbXB1dGVBZHZhbmNlc0Zyb21Qb3NpdGlvbnMocG9zaXRpb25zLCBjb3VudCwg
Y3VycmVudFRleHRNYXRyaXgpLmRhdGEoKSwgY291bnQsIGN1cnJlbnRUZXh0TWF0cml4Lm1hcFBv
aW50KHBvc2l0aW9uc1swXSksIG1fc21vb3RoaW5nTW9kZSkpOworCisgICAgbV9vd25lci5jb25j
YXRDVE0oaW52ZXJzZUNUTUZpeHVwKTsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnJl
Y29yZERyYXdJbWFnZShDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiBnc3RhdGUsIENH
UmVjdCByZWN0LCBDR0ltYWdlUmVmIGNnSW1hZ2UpCit7CisgICAgLy8gVGVzdCBjYXNlOiBFWElG
IHJvdGF0ZWQgaW1hZ2VzLgorICAgIC8vIEZJWE1FOiBXaWxsIENvcmVUZXh0IGV2ZXIgc2V0IGFu
eSBvZiB0aGUgc3R1ZmYgb24gdGhlIGNvbnRleHQgdGhhdCB3ZSBuZWVkIHRvIGFwcGx5IGhlcmU/
IFNlZSBvcHRpb25zIGluc2lkZSBJbWFnZVBhaW50aW5nT3B0aW9ucy4KKyAgICB1cGRhdGVDVE0o
KkNHR1N0YXRlR2V0Q1RNKGdzdGF0ZSkpOworCisgICAgLy8gQ29yZSBHcmFwaGljcyBhc3N1bWVz
IGEgInkgdXAiIGNvb3JkaW5hdGUgc3lzdGVtLCBidXQgaW4gV2ViS2l0LCB3ZSB1c2UgYSAieS1k
b3duIiBjb29yZGluYXRlIHN5c3RlbS4KKyAgICAvLyBUaGlzIG1lYW5zIHRoYXQgV2ViS2l0J3Mg
ZHJhd2luZyByb3V0aW5lcyAoR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoKSkgaW50ZW50aW9u
YWxseSBkcmF3IGltYWdlcyB1cHNpZGUtZG93biBmcm9tIENvcmUgR3JhcGhpY3MncyBwb2ludCBv
ZiB2aWV3LgorICAgIC8vIChUaGVyZSdzIGEgeS1mbGlwIGluc2lkZSB0aGUgaW1wbGVtZW50YXRp
b24gb2YgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoKS4pCisgICAgLy8gVGhlIHJlY3QgaGFz
IHRoZSByaWdodCBib3VuZHMsIGJ1dCB3ZSBuZWVkIHRvIHRyYW5zZm9ybSBmcm9tIENHJ3MgY29v
cmRpbmF0ZSBzeXN0ZW0gdG8gV2ViS2l0J3MgYnkgcGVyZm9ybWluZyBvdXIgb3duIHktZmxpcCBz
byBpbWFnZXMgYXJlIGRyYXduIHRoZSByaWdodC1zaWRlLXVwLgorICAgIC8vIFdlIGRvIHRoaXMg
YXQgdGhlIGJvdW5kYXJ5IGJldHdlZW4gdGhlIHR3byBBUElzLCB3aGljaCBpcyByaWdodCBoZXJl
LgorICAgIG1fb3duZXIudHJhbnNsYXRlKDAsIHJlY3Quc2l6ZS5oZWlnaHQgKyAyICogcmVjdC5v
cmlnaW4ueSk7CisgICAgbV9vd25lci5zY2FsZShGbG9hdFNpemUoMSwgLTEpKTsKKworICAgIGF1
dG8gaW1hZ2UgPSBCaXRtYXBJbWFnZTo6Y3JlYXRlKGNnSW1hZ2UpOworICAgIG1fb3duZXIuYXBw
ZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChEcmF3SW1hZ2U6OmNyZWF0ZShpbWFnZSwgcmVjdCwge3sg
fSwgaW1hZ2UtPnNpemUoKX0sIHsgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luVG9wUmlnaHQgfSkp
OworCisgICAgLy8gVW5kbyB0aGUgYWJvdmUgeS1mbGlwIHRvIHJlc3RvcmUgdGhlIGNvbnRleHQu
CisgICAgbV9vd25lci5zY2FsZShGbG9hdFNpemUoMSwgLTEpKTsKKyAgICBtX293bmVyLnRyYW5z
bGF0ZSgwLCAtKHJlY3Quc2l6ZS5oZWlnaHQgKyAyICogcmVjdC5vcmlnaW4ueSkpOworfQorCit2
b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6ZHJhd0dseXBocyhjb25zdCBGb250JiBmb250LCBjb25z
dCBHbHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIG51bUds
eXBocywgY29uc3QgRmxvYXRQb2ludCYgc3RhcnRQb2ludCwgRm9udFNtb290aGluZ01vZGUgc21v
b3RoaW5nTW9kZSkKK3sKKyAgICBwcmVwYXJlSW50ZXJuYWxDb250ZXh0KGZvbnQsIHNtb290aGlu
Z01vZGUpOworICAgIEZvbnRDYXNjYWRlOjpkcmF3R2x5cGhzKG1faW50ZXJuYWxDb250ZXh0LCBm
b250LCBnbHlwaEJ1ZmZlciwgZnJvbSwgbnVtR2x5cGhzLCBzdGFydFBvaW50LCBzbW9vdGhpbmdN
b2RlKTsKKyAgICBjb25jbHVkZUludGVybmFsQ29udGV4dCgpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBEaXNwbGF5TGlzdAorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3
R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjNhYzMyNGI3YjAwYTllMTZhNTZhZDY3MGNlMDRjZmE3N2ZjOWZhOAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcApAQCAtMCww
ICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29y
ZGVyLmgiCisKKyNpbmNsdWRlICJEaXNwbGF5TGlzdEl0ZW1zLmgiCisjaW5jbHVkZSAiRGlzcGxh
eUxpc3RSZWNvcmRlci5oIgorI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKKyNpbmNsdWRlICJGb250
LmgiCisjaW5jbHVkZSAiR2x5cGhCdWZmZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitu
YW1lc3BhY2UgRGlzcGxheUxpc3QgeworCitEcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdHbHlwaHNS
ZWNvcmRlcihSZWNvcmRlciYgb3duZXIpCisgICAgOiBtX293bmVyKG93bmVyKQoreworfQorCit2
b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6ZHJhd0dseXBocyhjb25zdCBGb250JiBmb250LCBjb25z
dCBHbHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIG51bUds
eXBocywgY29uc3QgRmxvYXRQb2ludCYgc3RhcnRQb2ludCwgRm9udFNtb290aGluZ01vZGUgc21v
b3RoaW5nTW9kZSkKK3sKKyAgICBtX293bmVyLmFwcGVuZEl0ZW1BbmRVcGRhdGVFeHRlbnQoRHJh
d0dseXBoczo6Y3JlYXRlKGZvbnQsIGdseXBoQnVmZmVyLmdseXBocyhmcm9tKSwgZ2x5cGhCdWZm
ZXIuYWR2YW5jZXMoZnJvbSksIG51bUdseXBocywgc3RhcnRQb2ludCwgc21vb3RoaW5nTW9kZSkp
OworfQorCit9IC8vIG5hbWVzcGFjZSBEaXNwbGF5TGlzdAorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKaW5kZXggMWM1NGFl
ODIyOTM5NDIwZGQ0MGI3YjcwYmE3ZTM5ZGJiYTY1ZmU5Yi4uNGE4NTZjYmI5Y2RiYzRkYjkxODIy
NThmZjFiZjQ5ZWYwNDZhM2I0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29y
ZGVyLmNwcApAQCAtNDEsNiArNDEsNyBAQCBSZWNvcmRlcjo6UmVjb3JkZXIoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIGNvbnN0IEdyYQogICAgIDog
R3JhcGhpY3NDb250ZXh0SW1wbChjb250ZXh0LCBpbml0aWFsQ2xpcCwgQWZmaW5lVHJhbnNmb3Jt
KCkpCiAgICAgLCBtX2Rpc3BsYXlMaXN0KGRpc3BsYXlMaXN0KQogICAgICwgbV9vYnNlcnZlcihv
YnNlcnZlcikKKyAgICAsIG1fZHJhd0dseXBoc1JlY29yZGVyKCp0aGlzKQogewogICAgIExPR19X
SVRIX1NUUkVBTShEaXNwbGF5TGlzdHMsIHN0cmVhbSA8PCAiXG5SZWNvcmRpbmcgd2l0aCBjbGlw
ICIgPDwgaW5pdGlhbENsaXApOwogICAgIG1fc3RhdGVTdGFjay5hcHBlbmQoeyBzdGF0ZSwgaW5p
dGlhbENUTSwgaW5pdGlhbENsaXAgfSk7CkBAIC0xMTEsNyArMTEyLDcgQEAgdm9pZCBSZWNvcmRl
cjo6c2V0TWl0ZXJMaW1pdChmbG9hdCBtaXRlckxpbWl0KQogCiB2b2lkIFJlY29yZGVyOjpkcmF3
R2x5cGhzKGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IEdseXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwg
dW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBzdGFy
dFBvaW50LCBGb250U21vb3RoaW5nTW9kZSBzbW9vdGhpbmdNb2RlKQogewotICAgIGFwcGVuZEl0
ZW1BbmRVcGRhdGVFeHRlbnQoRHJhd0dseXBoczo6Y3JlYXRlKGZvbnQsIGdseXBoQnVmZmVyLmds
eXBocyhmcm9tKSwgZ2x5cGhCdWZmZXIuYWR2YW5jZXMoZnJvbSksIG51bUdseXBocywgc3RhcnRQ
b2ludCwgc21vb3RoaW5nTW9kZSkpOworICAgIG1fZHJhd0dseXBoc1JlY29yZGVyLmRyYXdHbHlw
aHMoZm9udCwgZ2x5cGhCdWZmZXIsIGZyb20sIG51bUdseXBocywgc3RhcnRQb2ludCwgc21vb3Ro
aW5nTW9kZSk7CiB9CiAKIEltYWdlRHJhd1Jlc3VsdCBSZWNvcmRlcjo6ZHJhd0ltYWdlKEltYWdl
JiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBz
b3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBpbWFnZVBhaW50aW5nT3B0aW9ucykK
QEAgLTM4NiwxMyArMzg3LDYgQEAgdm9pZCBSZWNvcmRlcjo6YXBwZW5kSXRlbUFuZFVwZGF0ZUV4
dGVudChSZWY8RHJhd2luZ0l0ZW0+JiYgaXRlbSkKICAgICB1cGRhdGVJdGVtRXh0ZW50KG5ld0l0
ZW0pOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBJdGVtVHlwZT4KLUl0ZW1UeXBlJiBSZWNvcmRl
cjo6YXBwZW5kSXRlbShSZWY8SXRlbVR5cGU+JiYgaXRlbSkKLXsKLSAgICB3aWxsQXBwZW5kSXRl
bShpdGVtLmdldCgpKTsKLSAgICByZXR1cm4gZG93bmNhc3Q8SXRlbVR5cGU+KG1fZGlzcGxheUxp
c3QuYXBwZW5kKFdURk1vdmUoaXRlbSkpKTsKLX0KLQogdm9pZCBSZWNvcmRlcjo6dXBkYXRlSXRl
bUV4dGVudChEcmF3aW5nSXRlbSYgaXRlbSkgY29uc3QKIHsKICAgICBpZiAoT3B0aW9uYWw8Rmxv
YXRSZWN0PiByZWN0ID0gaXRlbS5sb2NhbEJvdW5kcyhncmFwaGljc0NvbnRleHQoKSkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RSZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaAppbmRleCA5ZWUxZDM5MzhmMjMyZjNmMThk
OTc4YWY3MTg3MDFkOGJlNDYzMDcyLi44ZTc1OTY0ZTI0OGMzM2FkZjY2ZDdjNjJhZWYwOGM1MDBl
MTFjMzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKQEAgLTI2LDYg
KzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRGlzcGxheUxpc3QuaCIKKyNpbmNs
dWRlICJEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIgogI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dEltcGwuaCIKICNpbmNsdWRlICJJbWFnZS5oIiAvLyBGb3IgSW1hZ2U6OlRpbGVSdWxl
LgogI2luY2x1ZGUgIlRleHRGbGFncy5oIgpAQCAtNjEsOCArNjIsNiBAQCBwdWJsaWM6CiAKICAg
ICBzaXplX3QgaXRlbUNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9kaXNwbGF5TGlzdC5pdGVtQ291
bnQoKTsgfQogCi0gICAgdm9pZCBhcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KFJlZjxEcmF3aW5n
SXRlbT4mJik7Ci0KICAgICBjbGFzcyBPYnNlcnZlciB7CiAgICAgcHVibGljOgogICAgICAgICB2
aXJ0dWFsIH5PYnNlcnZlcigpIHsgfQpAQCAtNzAsNiArNjksNyBAQCBwdWJsaWM6CiAgICAgfTsK
IAogcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgRHJhd0dseXBoc1JlY29yZGVyOwogICAgIGJv
b2wgaGFzUGxhdGZvcm1Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dCogcGxhdGZvcm1Db250ZXh0KCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQogCkBAIC0xNDksNiArMTQ5LDcgQEAgcHJpdmF0ZToK
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBJdGVtVHlwZT4KICAgICBJdGVtVHlwZSYgYXBwZW5kSXRl
bShSZWY8SXRlbVR5cGU+JiYpOwogICAgIHZvaWQgd2lsbEFwcGVuZEl0ZW0oY29uc3QgSXRlbSYp
OworICAgIHZvaWQgYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChSZWY8RHJhd2luZ0l0ZW0+JiYp
OwogCiAgICAgRmxvYXRSZWN0IGV4dGVudEZyb21Mb2NhbEJvdW5kcyhjb25zdCBGbG9hdFJlY3Qm
KSBjb25zdDsKICAgICB2b2lkIHVwZGF0ZUl0ZW1FeHRlbnQoRHJhd2luZ0l0ZW0mKSBjb25zdDsK
QEAgLTE5MSw4ICsxOTIsMTcgQEAgcHJpdmF0ZToKICAgICBPYnNlcnZlciogbV9vYnNlcnZlcjsK
IAogICAgIFZlY3RvcjxDb250ZXh0U3RhdGUsIDMyPiBtX3N0YXRlU3RhY2s7CisKKyAgICBEcmF3
R2x5cGhzUmVjb3JkZXIgbV9kcmF3R2x5cGhzUmVjb3JkZXI7CiB9OwogCit0ZW1wbGF0ZTx0eXBl
bmFtZSBJdGVtVHlwZT4KK0l0ZW1UeXBlJiBSZWNvcmRlcjo6YXBwZW5kSXRlbShSZWY8SXRlbVR5
cGU+JiYgaXRlbSkKK3sKKyAgICB3aWxsQXBwZW5kSXRlbShpdGVtLmdldCgpKTsKKyAgICByZXR1
cm4gZG93bmNhc3Q8SXRlbVR5cGU+KG1fZGlzcGxheUxpc3QuYXBwZW5kKFdURk1vdmUoaXRlbSkp
KTsKK30KKwogfQogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFz
LUNPTFItZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jYW52YXMtQ09MUi1l
eHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2MWE0MDEwNmVlNmVhNDVjYmU2ODc2NWRhNmU4ZTky
NTIxNzNkNjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFz
LUNPTFItZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDU0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogIldl
YkZvbnQiOworICAgIHNyYzogdXJsKCJyZXNvdXJjZXMvQWhlbS1DT0xSLnR0ZiIpIGZvcm1hdCgi
dHJ1ZXR5cGUiKTsKK30KKworYm9keSB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworfQorCisj
b25lIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgbGVmdDogMjAwcHg7CisgICAgdG9w
OiA0MHB4OworfQorCisjdHdvIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgbGVmdDog
NDAwcHg7CisgICAgdG9wOiA0MHB4OworICAgIGNvbG9yOiByZ2IoMjU1LCAwLCAyNTUpOworfQor
CisjdGhyZWUgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiA0MDBweDsKKyAg
ICB0b3A6IDQwcHg7CisgICAgY29sb3I6IHJnYigwLCAyNTUsIDI1NSk7Cit9CisKKyNmb3VyIHsK
KyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgbGVmdDogNjAwcHg7CisgICAgdG9wOiA0MHB4
OworfQorCitkaXYgeworICAgIGZvbnQ6IDIwMHB4ICJXZWJGb250IjsKKyAgICBwb3NpdGlvbjog
YWJzb2x1dGU7CisgICAgbGVmdDogNDAwcHg7CisgICAgdG9wOiA0MHB4OworfQorPC9zdHlsZT4K
KzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0ib25lIj5CPC9kaXY+Cis8ZGl2IGlkPSJ0d28iPkI8
L2Rpdj4KKzxkaXYgaWQ9InRocmVlIj4mI3g3RUI1OzwvZGl2PgorPGRpdiBpZD0iZm91ciI+Qjwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0
L2NhbnZhcy1DT0xSLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFzLUNPTFIuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42MmRlMzJkYWE1NTI4MTliNDkyNzdhNzJkMGIwNWE2N2ViYzBhZTQ5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZhcy1DT0xSLmh0bWwK
QEAgLTAsMCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxl
PgorQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6ICJXZWJGb250IjsKKyAgICBzcmM6IHVy
bCgicmVzb3VyY2VzL0FoZW0tQ09MUi50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7Cit9Cis8L3N0
eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSI4MDAiIGhl
aWdodD0iODAwIiBzdHlsZT0id2lkdGg6IDgwMHB4OyBoZWlnaHQ7IDgwMHB4OyI+PC9jYW52YXM+
Cis8c2NyaXB0PgorbGV0IGZvbnQgPSAiMjAwcHggJ1dlYkZvbnQnIjsKK2RvY3VtZW50LmZvbnRz
LmxvYWQoZm9udCkudGhlbihmdW5jdGlvbigpIHsKKyAgICBsZXQgY2FudmFzID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOworICAgIGxldCBjb250ZXh0ID0gY2FudmFzLmdldENv
bnRleHQoIjJkIik7CisgICAgY29udGV4dC5mb250ID0gZm9udDsKKyAgICBjb250ZXh0LmZpbGxU
ZXh0KCJCQUIiLCAyMDAsIDIwMCk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZhcy1zYml4LWV4cGVjdGVkLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFzLXNiaXgtZXhwZWN0ZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41YjRiMjE0ZDU4N2Y3NGU3NzcwZjlhNzNhZjliNGM2ZWE2MWE0NDY5Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZhcy1zYml4LWV4cGVjdGVkLmh0
bWwKQEAgLTAsMCArMSw0MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0
eWxlPgorQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6ICJXZWJGb250IjsKKyAgICBzcmM6
IHVybCgicmVzb3VyY2VzL0FoZW0tc2JpeC50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7Cit9CisK
K2JvZHkgeworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKK30KKworaW1nIHsKKyAgICBpbWFnZS1v
cmllbnRhdGlvbjogbm9uZTsKK30KKworI29uZSB7CisgICAgcG9zaXRpb246IGFic29sdXRlOwor
ICAgIGxlZnQ6IDIwMHB4OworICAgIHRvcDogNDBweDsKK30KKworI3R3byB7CisgICAgcG9zaXRp
b246IGFic29sdXRlOworICAgIGxlZnQ6IDYwMHB4OworICAgIHRvcDogNDhweDsKK30KKworZGl2
IHsKKyAgICBmb250OiAyMDBweCAiV2ViRm9udCI7CisgICAgcG9zaXRpb246IGFic29sdXRlOwor
ICAgIGxlZnQ6IDQwMHB4OworICAgIHRvcDogNDBweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxpbWcgaWQ9Im9uZSIgc3JjPSJyZXNvdXJjZXMvaW1hZ2UxLmpwZyI+Cis8ZGl2PiYj
eDdFQjU7PC9kaXY+Cis8aW1nIGlkPSJ0d28iIHNyYz0icmVzb3VyY2VzL2ltYWdlMi5qcGciPgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZh
cy1zYml4Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFzLXNiaXguaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kNDUyYjQ4YTAxOWY0MDU5YjZkN2VhMjQzNzAyMGUwNDU3ZjRiOGZiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZhcy1zYml4Lmh0bWwKQEAgLTAs
MCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorQGZv
bnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6ICJXZWJGb250IjsKKyAgICBzcmM6IHVybCgicmVz
b3VyY2VzL0FoZW0tc2JpeC50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7Cit9Cis8L3N0eWxlPgor
PC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSI4MDAiIGhlaWdodD0i
ODAwIiBzdHlsZT0id2lkdGg6IDgwMHB4OyBoZWlnaHQ7IDgwMHB4OyI+PC9jYW52YXM+Cis8c2Ny
aXB0PgorbGV0IGZvbnQgPSAiMjAwcHggJ1dlYkZvbnQnIjsKK2RvY3VtZW50LmZvbnRzLmxvYWQo
Zm9udCkudGhlbihmdW5jdGlvbigpIHsKKyAgICBsZXQgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNhbnZhcyIpOworICAgIGxldCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQo
IjJkIik7CisgICAgY29udGV4dC5mb250ID0gZm9udDsKKyAgICBjb250ZXh0LmZpbGxUZXh0KCJB
XHU3RUI1QiIsIDIwMCwgMjAwKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvcmVzb3VyY2VzL0FoZW0tQ09MUi50dGYg
Yi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvcmVzb3VyY2VzL0FoZW0tQ09MUi50dGYKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzIyM2E1NTQzMDY1OTk5Njg1MTE4MGU5OGIxNTQ1NGY3YzRiMmQ4NgpHSVQgYmluYXJ5IHBh
dGNoCmxpdGVyYWwgMjE4MjgKemNtZUhQMzN3RCR3bXd6V2R2X3AjNVA/Q2hnZEhYNllAR25rVWBQ
bHM0PG95diYoVGlPUylrTTFyVnxubzlDWEJlCnowUzZ1VFFEeiltOX1iRVM2YGZINWZwSXx7NUxy
VDAjejYtZTJFbFA1KWNhMkA9fUpmI3AzbkVia01+dmp0RXprTQp6YTwrVCF5e0FzeVRvUTtWaTU4
UFlRO0lLfkpXVXV3bGFSOTsqTVE8Rk1Vdz9tUWpxPXtTSzVXc3Z2VDU5VTttcykKek5DdGQpTU9g
cDk+aDc1YjBtcTIhelVwOCtNclYrbCRndlJSJDxeVTJzfmtncE1TeVE1PlZKRHBDfEoyYCUzRXVR
CnooZyZiQ1A9Z0dvJDVzRyUySC0oOGJxJnFeOUFYbVNXK0wwe2FJXy0wY0UjI21NMSF7eWlKNWk1
PTl0aXJAZWYwRgp6a3xWKm8oQXdifWB2STFUaE9kWjQ7fCYjJFRyIVlvPlV0c3hkPWc5NzE2TH1F
Z25abHdBK3dLfkZYQXEwPHE5ZUkKekJMJEVvWjVOaTM5YVl6Zkh2XyZ5ZGtQeVVOMDFuUzRWbkQ2
bX1wZnAkckR1b3d+S08lV2pkZWE8QkI5SmcrTF9KCnpDTUVmcGxZbT4yMFRKPVZDe1R6aTY/ZihA
bTI1V1hSflFZek51eX45VH09PHVCbEh7a0VqPiFWcW19ZCtKeCkqMQp6bGtebGxQNShpdz1vJEp3
SnhrQmc4aFcxb2xoKUQ7XmRofVA+KiFeQWg1a1QpcSp2KVJkWXZ9Vk10WHhiKFByOTAKemYxKT8o
OW9rQ28odEdyMCtENjt5MUtMMyEoa31HJDklYFl6KUpoLUckTWd5OXFyY0ZuXmpGJFhwVjhtdzBE
VkQhCnpyJGg3KUkhc15FNWpzaj0oTFo0Zy1fVztvak4wZnBETUdkfFUxJTJXNmdQQCpoP35Xbzt4
Mkt3eEpPenBKdTBufgp6OSslY2hmMFB9dlM1QV9YPHk1KCErK1JMUiZYOS01ZXRFUTlsQWUpMUJ0
eShfV2MxOFAkPl4yUUZRYjNQU3NDWUsKek93NzFFQmIwRz9AREBNJG9uPSVlbUFUNjxFeFdhQmBQ
NncrPiF1Z1lgZTQ/c2lfV2VkSGdgbGdGRTtQJEhPdDtUCnpCcCZEZlYre3tlYitfV0F4P0JBKGIr
XjhnPyV2WE1fcjZKWUo1UT4rJnNFKFc+XyZJcndkLSEwTnEwTkMoNDhvfAp6V2dtM2NUa1o/cDRV
bEQzY2NWX0t5VVBFVD91ZDEjZTQ+MTtlNGB2dVQ5cjJDR2RlQHIxOS0zVXNkN08xOU1GZzQKelB+
S0hgUXkqb1V2UXYzU2A1UD1aTiU9dDhnVkUoZmlnV2lWQTFPUE8yYkIlVjE4OHxhYSgzYWxPRjVg
NFM5VThPCnpEc0whRGskdyghd2tmeE8tYWNpZWErN2p7YS0pOEtOPTt3aWV0JD5kXmItQzQ3JShu
VGV4WTJhdE90Y2hseHZpUQp6JTR9dDkrWlN5fCtZWXB+dzYoVkZYeHIyRmxlVEV2eXRXYT8tZnY1
N0o8QHUoXn49M1Y+dWFxYFQzPkVtKlpOWkgKeitTWE9BRF9iQWhgfDk0T1RSdmBpdnRAaEJ3d0Jj
YEg/X1JndlpkdmZtUGNEfFpuPEk0Y2VANXtKXnJya1M+YWpSCno+VGcjK3dSLTtRRF5AK1k+Zldh
fUthdX4kQFcmNnxgYDVjYVRmVEdZaWZiPkFqIXBpJUBSZDQoVlIrV3hfdEpudwp6RjNnOT9CdytN
UE5HLXpESTFoOEJncWVfWFFfQG9ncj5DU1o1KVpjQkFzampHbGpMS3FpXkwoVWJFUXopdWh0X30K
ek58KktAPng7c15SKjl0cCVNUHJ1Vjlme0NvTV4ySmJsUjxyQEZEUEtsJTN2M1VDfXFHP3tDJmhm
NFhgKj0qJHkrCnp2e3VWVXZ3U3FtTjMobzElU1c/KEd8Tlhqe2RfYmw+ZTdXKlY/fn48PSRqUlJ3
NCQoOUItKUNgcExTN34oe0R1PQp6bVAtNEAqJkhpTShQS3M4WSVOO1VaT0pDMzVNfSZqaUYpVXo0
QldKN2xsbF5oWGhlNDxZVj9WTyNxYDlzR3F6dlcKel5TcTx2bWlGXmt1NGtpeyZFZTx6SnheamNm
Z1lieUJVaFlAS1lYOWtfVy1FJShGIUB7S09xZnlffTBZezY2PjtiCnpWQTtVYDJPSHE9RUY5N0xR
biYhWHg0MmZ+IXFoflN4YlZrdjhoPH5xJSR0Q1pEVyZTYWJqcVlMRz84WGZJWW50OQp6LTkmZHxQ
dGh+akNBMDsqZkEoUWQmdkMma15jNG1SSWxAP0J2TUApZTY1XyZRO1dwdHVWSV9YZzM5a3hvMyVp
ODwKeiFja0VhZHhgX1o7Yks1NjdOPn1waWdVIyNAajd2dF8+bE9keEtgWEN6OTtTIzR+WEFMNHlp
WnhJKnBWQE9CMTlTCnpRYyNMV1M0bFRZY1MkUnhSb0RyJVM9dWdyQXt+PDJZO0llY1pKXkM+YD8y
ayh3dUB8KXdrdkVgK2l0UGxWfCYhTAp6K1YlKEFvMzs7YXBXNDIobFJlNGEtIypseVhEX21zKilP
cnoqYzxLRitWOE1HVjFMfkh5IzAwaVJ7SXxOPWt8WCgKelk+cEppUyZubFlnXnV4I1heelZyVmFK
dEA+bTkjekpuVlNkQHVLNG0kRGJWXklTeDkkYkduPjtvRWdxNj1YdVVhCnomUk5iMVhVd19DZDko
OVpgMkUpVGQqPl84S1JJX2V8S2RGQ1I5cnErS2kzZGZ1SXFmKTErSSUtKXZnQkRITGx4VAp6X3Eh
Zip0I1E1UGRkSWNmXl9sQXt4OHpRQ3BYbmFxRV53RSlyQERYVXA2NzBNRkxCQEx7PFpybF9ZM1pn
PylUbFQKej9sMFdtZFlxbkFQcjRgNUdzWkt+R3QqUDxpRnlgI1p0fnBpYEhrbHAmJiFASW8pMHx4
SnBiPzxfajxqM3lAUzB1CnotbSVgdi1afGJYWmBgfXNkejwkQD9ASTQ7LWREWUVkdnwmRmR5bzE9
VXIqbHYtKjhgYCtoNEo3aXRrZTJUd2p5Iwp6SV5RemlMJXRfe1lrZURoQEE+eG40KjAlRmF3UFJt
bDlOVXpqWlReWFlyKURTcV5ZfHcqZXBBKFE9Q1BFZ3krPksKelpvKGxXZ19eRSpOVGVQRD8tMWxh
aTg0Zm9tYyYqJG1wRHZNK29gWVUqVjdLPFB0PzwlPFFqMmBwN3pxOVVUZ0pxCno1MVE2JWNSTjJ7
X3MtUFEwQCtnNDlVIVBEa340TExvLWF7S1lQTyFYcTBUcnhaNnt4OXNoKU5xZjB+fjVWNCUjPgp6
KF9aUztwNilAelEpfjQ2V1lrfSNyJkI9ZEU8TjF+YDQyISshR150diFsQmZNXil6Jm53cDMzO0N1
I1RTWTNMO0YKemNYfUUrTiF6NVNwXzg8JmRLeC1PK3BuamdsZTl5NjhhZiV1byh8SzNQS0dZaik1
K3UtYG5IfTxwJm1vRz4qLSN8CnotJHlnM2hDKEQka0B+RGRzdFIqSmdjXmA0TUBkK1Bzd29iKjBj
cE4jRW4/SiY4ZXl1WDNnbEx6dGQ0PyFCQTg4Tgp6Pjx4fEpKe05XQmtyemlmKks1Rj92MXswQlBA
bX49VE4kfWc2ey1pLTNaJCElUSVlZ30/eipRWHFoPUZvaENuOXsKeiZUMShKVHYxNDJhMmkpSlJH
fW57UkdpTGpGVlNRVHQxPnBCSk9ZfEI2JDRYOTwqYihHdDhJJmN1TVIoaF5OVyNOCno0flJLdVVj
O3pldWVhYmpHU1ZecFNUe15ARzsoU25UTGJiJlF4PDtRcTh1ZmVYeCkoLU9QLSpXMzgpQGlhU1BV
OAp6Mi1zUGtJQzVBcyUqOUJeJnc2S0d2blUlbHtkaEwyYnkodFJsIWpHfUdQZyFRUGc2QDhSWmkr
QDc5aUgyKTtxRl8KekJfRFZhYzQ0Jlp1Qks2YkdKOWVeeCN5Vj09OVg8TWhHIS02JUlRa25YQ1M5
aWctY1BsMjBVcCElTm1XU2A0XnlgCnope29wJVktdHl1dFFxfnl4KD0mI0cmXk4wNEZmO2gwYyhz
Y3RxQi13UmhYc2klISFRSisjODBpYXZ3M1IxUDFPZwp6PTI5QzBqb151fkYoI0l5OT91WVpQZXZ+
MVdrWkFmR2gxOGAqeXBSI2FCbXRsMyl8fSVhdkd6SWJyc2lwbytaI1EKej1kezw/Pk1fQHYyNit0
NUxvTG1nNEo7YTBhaz5JXyFNNGhqTChwMGZtPlZEPz4pdT55bWE8d2NrM25YWmlEdzZ2CnpsU2hO
NSgrWlNtX1JxTDlKMkxvV2k+aVplR3p2a3FWLUtTbCZuQzJEaT5eXnxeNEpXa18/Y3IoI19zc3g1
eUQhRAp6O21MQXBgZShVJCV4VHQ/bjVpXmVSZ2p4MGJkLXwwO1FuSkNuNzJmJiZiPyZsJStNIW1x
NFRgS0dYUUpkODFYYWQKejlPOFomM0JRVXswbzR3KWJmS09icHdqbC0wQCNhSXd9OGdDPU43ZU5E
NWs+cCsrdkpsdCF9OWFMcEozQzJVe0NjCnokKTxjeilvTzclKkhsdHEhaig7PFB8cytVZ0hhWEdU
WERMZUwmKyE7UjAxNF5ZJGE2RVVYbHhaY195ZGB2PD5YSgp6OzUmaGxwIztXVThWN29ibiNHWFpm
TE08I29rNVNHMVAhZTshM34hZGIhdURPcD4wQ0grfTdNbjQ0SmpUdSh7e18KejtHIWQ2RU5fQUBt
ZFZVQFVJI3cySjdIKG9qOXVkPChWcFNYPHEzO25QUDZlZHM1NH5kbyM2eTs0NEhYaipzS1N9CnpI
cU9MKjRtZUwoOUczPDxOWH5HY2lGVXgkJnNAOC0xMjZnTCtYUXZpcTJGVylkRW1zRERjTj40SUFP
NkdvVWojIQp6XkchQyNhR31ZMTcmY3BCSzRjQTtxfEBNcCZHUDhUTG1mbCZgS1ZvRDshbEdVK1F+
Oyp3clMpQTBPeSNyNiN5QGMKeihaRSojPkNFJjtwPj5JZ1VhMmEqRjt7MyVQS1VMbz5zaWt7aXlD
dU9TMkpOOF5IbSpZQ1QoYHIpJl5jM0hRJmYrCnorNVBPczkhIVJRNGIkZntLTWh3c249O18kXl5i
aXlvPU05dypZWmwkLUUyQlcjUz5IVVh9RE5COG09a3JTYT9uMAp6XkBlPkFQSERhbTwyQDA3JDJD
Jkp6dUFQcDdgQVhTezJra09NWndHZzw3YiY4dT5FcCVFajYjV2FhOXhBK09BMioKekd4K3p7bDtM
WiNtc2c4KlB0ITVgJUJNPWQ2a354YGlMUUF0ezAmWGRYNVdQNjkxa2tJV14oVkVXI1Z+PlhVM0Rg
Cno8VVMwOzQhOCRUI0xSd0RjYklkIyFGKiFocE5NJHx0ZEtwTjVjKV4rJTA/bzZHSFE5PFAmMEpI
eTRKaXZfRCQqYAp6T0lIJD1xRUdtMz1UeGNZcENWUG1YVlpNRXR8KDZqU0l3dFBIKmt0eyo+YEsh
P1g3RHF2LWowfjl+eHQ+XlpkfFIKenRMKFd+YnhVVT1ZPT9FO0opTlJjbCF4YGwtbEZGMWIrJClp
b019RnhHMHdXUCZ2RX5QQ1hkZ3FkVE5zRHgkP1UkCnpkeURLLVlqNGpkKCRRQVBBN2JYe0QzTEw5
JW1zKHNmNylBMVZvdnZDPHZSSk8/b1BJQEhQfTYhbEo3fXAwKDhmdAp6ZG1jMWdwPXl6UmMlRXJ3
VClmNV5CYylpP0ZhTV8+YHhLaCpzbWFFM2dsNEBwJjshMntGMkl3bUwmTCp3SGtgfXoKejJsdTEp
P3M/SmBaU0R4dWlXN2pabFl7R2ppYHVFe1U/eWJYayp2alclKF5oPHBNKTs+b3hDMkJ2clQ/KUp6
VHhVCnpxejhWSjgzI3xUdm1YQVpscnF0Tz02RmdJUj52bXpPSEp0STNPdSFfTnlqPzglRm95OTcm
V3FCP2JHcWchVklNSwp6S1N4JExeMXYkd210SUl5WGJ6JVRXaSl8MkdpcEx8UUI5fiR1OEt3KTxu
bUJCOG1XJVU0Tjx1UDErbThSYUJZUUwKejhMYlB9TWwkNnw1cVdON2VRbXQ1d3hYZG44YlAoMVU7
fDMhTlZHdyY0Xj4yfkJlZUBVd1VWUHZreCtmU3JaeSU9CnpzfkJsS0J2O2pqTC1CSn0zUlRmP0lO
RFNqc2d7ZkRMJjFqSGA2MFBEVDM1JSZGQW1qNTw7cVkrSTlRS0BYaGFVaQp6ViZVM1FlNihFQyY9
NEQpbEAkKF8kMV5NUlcpKWhpJXhIYWU3SStSdDstUHJmMC16WSM2YT8wKz5gWkBGVj5+TXkKenN0
JCVMcUxtPypkME1FdDUhaCNlS2dPUyhuZVNKMSFEWiU1aElOYHZPLS0zaXhmTSlDJiM0VH1NfitJ
amM+NDQjCnpSJTFMWGghJERKN2Z6V29zY2VHQk0yZUhgdUApbn5xKHZaanFfVXI7I2dOI2FXblZH
eiozWUIxYDxOanxIenJ8Qgp6VGslT05LNTRjbUQ/WnVUWEVFWTxSKCNUbVBnP093RD9WdyhDJC1x
UjdMVDt6bFprSShSKHcqNkVfNCs9Pj08OVAKejsqJVg/aUJeMmxpY2d5M1BnWj1ndmxxQFlNJVU0
YDZYUytqV1pzSFRvKjEkMlQ3eT02UWRgNCsqbDRIfnBYP1pXCnp7NkM2TUJJMnc/RX5nPGZSO30p
TjtjdlN9dTZDanp3bkhqY1ZkcmxiZT9sNXxEVCs5flB7TksoSjJgTittSjZwUwp6ZGltcnc+PyFQ
dF5TNHJ7N3hoTiNLOXEoTjlRI3J+PlE2dFMwZHl2dk1RM0I0Tj1OaX1Ba0khNGpNRTgrQkp3XyoK
ek1qLVpuRjF9Nz5CQSZgU0dqaH1+PE5RVVBjY0Z+Skh7PnlOOXtyZXBMU3lOQ0BYQnZsQ0YoY0oz
RH1jN2lHRTd8CnpNdzdBMnQ0eGk+UE5pdngqVW1zaGUtPlJ0dmt7eFVtQGM3enIlVU4pYlF4V2Eq
bGpyPyEwZDVWSz81QStwTmxVQQp6Vk1LSEp5RzBCO3BtXnQzMTlVU1YoYykoOGR8RShQVmJBai1v
VGQxNDlNeU9Ze2VySGVDM0hSQWg8KHNFKD1CdXgKei1BK3FzOFR9SHdxSktwWChuST5XZnFkI0Jw
U0ViNndXeXUyXyMkPnF6dXdfQSNrYzVme1kxdDBKRGpNdnYodVQxCnplMihKaGBibWxoSkQ7VH0q
YVcrSm4mVjQyPWtZUTZIUWk2RWFrQXJqXj9icSZiUz0odHlhREd2WmRBezhUdH5Pawp6SiMtKTRp
JkcpKnF6QzhAVDI2T2lmQjZlSSgtQ0pyM0p3d2xye0VJWWYoUUckZUx8QVpMK0J8YTNuQFlgcHxf
QUsKel5ieWo4R3FCJmdwVV98VWt1WDN3USNlYUZUYWJseEF3dzdfNDhsSX1BO001JG41fUgpPGpG
M2EtNUlPTiQ7O0lmCnp7eVphKkZIVzJ4bTVpVjRZPmQ+Rmp4UjBjWE83PldxZCMtP1hQKkFkKlBq
OVhJWkEmUD5DYldlJT1QPkk/cUY0SQp6WjZHQGskYThXaypQcVFMZEVAPGw/TzlsPyF6emFTSyNB
SGlaflEyZ1Focyl6TEAhcjQwSVpraXROSG80Y2A4MG8KekQmVHIodVJhVT5URD9HVnU4SnA2a1c8
THpxcTBsWGB1UFJmcylZWEJCREg+P0NgYVdTdXFzKT5fO0xDNFUqUmhlCkFAJkV0OwoKbGl0ZXJh
bCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3Jlc291
cmNlcy9BaGVtLXNiaXgudHRmIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3Jlc291cmNlcy9BaGVt
LXNiaXgudHRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQzYjY2MmU5NzkyOTdmMmJmZjczNmM5OWEzMGMwODg4MWRi
MzhiOTQKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDM5OTcyCnpjbWVJYjJ8U2Z1KkQkYCVJWEdy
MWlaWXh+RGwqU3cka2FkeEM2YWpfazJ5bntHPyt6XlApSEk9IyVSdTFzMSV1JQp6RFJYOS0mVk9J
JFExMUo9QDheQnE9bHtPbj98cnx8PCMoTkg/WS1BdGQjJHluYioqZGY0V0l4M3dCUVdEZlBMQ30K
emYrQmU5eGdaJHg0Jko5TW9YbExNPE1jLVhLPUFgV1BIU1VeY0xpR2o2I3hgY0ZueG9LcXB2bGs/
S2VkaikmTzl1CnpocG07RlckVGdKMHN3R2pGa1FrSE1xc0pRQnc9XzhoSXdxQUpiWUx3Jn55TjdY
OTBsaG40Xm5AU3piV2EybW1gPQp6MFlEMmxuZmJWKVNQfVpYREcocCRaMDJORHl0eyVHaEY8YCVg
O015JS1veFZkMzJwIyVFQ0lqLTtteiVRX18pcnQKejAmdWhrMENmZGAhOEQ+RzBYZHtxaFEwelJN
M0ExU2F2Kn1qeipzO0FCYSFQMjBKJDNnNHN1UHAzYEpGTlU/MEZPCno2RUhYZWxuc0xlUmZHK1RT
TzVxeDI4Skx2TGAqZE5nX0htans2I2QhMWp4d2RwbmhhdjAxSVRtUDdueEV6LV5FVQp6KG0qPTYz
b15oeGtPfVVDRWJzdGlnQip8eDkpZF5VRn58bzZwYiEqK1ZvKEJ9ZktwSGZvYFByS0lkfW5IZj4r
PSoKekM8aGd3NT4kYXxQeV5uPStOY05iITNYZFdkOypfQUJXTUMmS3I/NnNaSi1APWZLSmNfekpo
T3s4fXh1KSY8RmEjCnpjUTYya3olVXBBVzhlb0UyTlBmdE9vM0BJMTdeVi1fekM5MEIzSl47ZlBm
TjQ+N2pnMyhkWV92Q0F1MmpmXkoyKAp6cTEhUm5Gekp7S09lVXJiXjghYktxcnVWUEhzRnxXdGhs
Vz40amRQNUNyJF9fZ1dKRUlZeF88dkcjM1JJMH5hSUwKek1sTSNhdHl+O2pkfFZuX3I/ey1SQ1Uo
PmEwVUBqdyg4NmRAWF87dCtZRipRRCZ+ZWdKR0g1YnJIUlFDfVd4dk4hCnolKyg+VkFuTDtwXmZH
fSFmViN3aVR9MGo4YEtQK2Vgd3c7Wj0xO24tVUN+e2A4cmAtMFF7ND5gYnZPRHF4P0F8QQp6Skta
KDlgfD1tTUwqdUEkdmB9fU9hNGItRlkmYVpJY2hkaDxjYjVNdC0ycF4qZ2xAdCYhY1cyIXBeTENZ
N3l3JWMKej9KKFIpPXB6Z2gyNFNjZlAhSyo0KzVqYCpHb2dpMFBaKXdObXlYYXhYYjFHTD1oRzJt
ZGs5fCVVa0pBZDwlQzMtCnpeQ3JZPWgwaipQREImOFJqbkdWfUJ0JHx1QUw0dV9UIXJRSjVIYmp0
Ml9ifF9FNThxakBXbyVoXiNsYUl1PTBCawp6UW9LTW9NPnRQLTE1M0N+MnF5UndqdTh9Pk13WF9S
aEw8eyl4fFk1eXdKI3x3eGh5Iz4/T0FNQ1YoT2FlbiZfSkIKekJ5XyMleTNxQnN0RXtXRXRHRnct
RTJBcl5eSlFtdCRHNDdtOWdROElKTXVhJWNocSomYlVmPXdAM18odCghUzhqCnpeTTNnUSo8O2pX
dmJfMWMyWUZ0M1puP0t8PEZsKnBpe0lhIUlUN0M8SCpsPmJeM0teKUV7WXEqUCYzM0gzPik3MQp6
Xj4xa2ExMVJCO3gmZmVJQDVNa1UwMWt9fmFJRDBAa3IwUzdaZkQlRm9wRX5yZFVQb1FITUxCTyE3
WCtMcG0hb1YKekNyRHd3NlkmNTwrSyYwWSRPMDJ0KT5HRFh1LSo+VmBAO0hvdXMkWlAma052eD0t
ZGJgMV5FNld5cSVkaVomJCVyCnpwWXszdGYzRlQ7VyZXY2oqN2Qodm9ee0p8eSpJQTYtdTNzMF80
a1BOX2xXaVBpMXFofl80a1BYc3FZYyV7PWRKbAp6eXdgbzg+d2UmTVUtPGc+ZmQzMT1pSiY0ZS1f
Z2VxVWxIU3F1THltTjxTcUshbHEhTjBPaGRqT2ZsWj19KypNVW8KekxeQj9+Jjs1TjBeZ28+ZTl5
QTBCUXdGKGRLIXkyXmU5M3ozVnRPMlR6Rz1fbWBTbV9iXmpqZ1pAUGE8OG1HQXNTCnplMyVReXRp
NGQxVkkySVBoNEBGLT97eXVsd31KbH4rNXBtQFFFKCpeQWA5djs0OXZxajFLdzVld3VDcGxraElu
Nwp6emdYcmZORG5FQVkyfE1fNUNGMTMxTHk7RC1+Iy0/V2VeOX40THlWX2ZvazlpcEJ9aHdYQmtD
PFZuT1hkaUolbHcKemhmdjIrKStqdmMzQFF3amZYWDJMPClkRHI+UUpxeUAyRmBzOHFJKWFMKz9n
UXBqRlVFJj9hYm12XlYtWkl0cmJICnomTyNUWCVoNGF2byM8aW9QWWVaUzZJe2A+N2JBbUYjfmo2
JlZWcDZpRl8kcDBtXit3VXhaYkI0KH0/TkR7Sjw9ZAp6UUlUeVg8MGNhI2xQNWJzVz1Majk9MCtB
c2M5cll+U3ZweEIqPmtkWVdYKXVLV1J2ODhvUWB9ZUlXTV53eGV+YisKemAzWjdjYSE+Tko8UHFl
RjxlQjchPGdkeCFsZWQhKGxGdzMqUTd9PylRMURTbVFLKFlyUWtZVVdRdXRDX3E9PXpOCnpwfiQ5
cUxRelRhaVErNThEOCZNbjYzZExgIVV8Jkx1JG91e3RPZUU7OC1UcTZ8RV49eHUjZDNNdXkzKG51
KVd2YAp6RVA7fWlsOWg1TnI2fWItJUVPZEtsczEkZWwpO3FZbHM3NXdRNUkwWHFPN05FcWEyYHxw
fjZzWXBray1tTG5UU0kKenBHdEA3QiRXZXw1N2g7I1hzVHFZMlVJMGc2O3VzV1R+czRmXlZDPnND
aEcwZjBAU2s5OHIxc0s9Rn4zS3s/d1BMCno8RVRAcUE1dVQxdUF5JEM/eDd5MVVaJGE7VldIVlVC
U05Ee2JCTnxSaldyRlA8X3R8M08jKTJATytMKl9ubVU/Ugp6bihzOHp2fWpyZVN+bDk8ZkJQcHZ0
M3JFKClgWnJjKXw+VmBaNF8tMVo1Q31ZWjhffm4rRF9WRytNamUzYmVyZ0sKemJiSU0hVX43Umg2
S1hTWXIzS09+fDE/aF9RR2Y/a05QTk57KVE/cE5WcDlHSnAjZVAjdTJMZ2o3e0c8NVNiQG1eCnpD
M0BFaU9iJUdrTE10IUBqTXJGIXNXO2Y3a0YzQm5mTTtYejNRUH1sSEA1eGFYS3NfZzNYQjN8T3ZG
X2w1RHlLbwp6T25YLTFGQFRYdGNtKmJkSUxhJDlJaU9geVRZKUtIeXpVQjI0TGdkIzNRUGt3eyh8
WWpaWUpCNl96ZSgwWTZXSjUKeld5UCsqOCkxQVJ2P0VZdGE0akx+MlVFJWw0MFc8T2FzYEd1Kj9l
T0toQzExTmNManp6Kjw3XihMIUU0WHpYQyZACnpaMnJDaUwhRTU/dT53UCNARkkyJlFXbiQrdW0x
fFgwWntWUnQteT9jcDB7eFktVSNEK3opQGZldE47IXU1dVoqRgp6dlc4PVRHd15fcklaU2FSaEhM
O0hoQ0x2UntFfjlHMCNBdEgyPCg2YmpKMVNtUFFWTz9vWilESzFEZiFPMU5JUWQKejltZTVkSSlk
aWBlLVl7PVlQSnZgREY/fW1nUnc1ZWtVSzJaMD5VO2gjdCElcXglPk9GYTFoZlFWcF9wK0BRXmIq
Cno7MGtIRUtxKiFeI1M8eDUheFRwZDtRe316NnEybHRMPmF3ZHgtJT5qMlVIKj5EPFdyaHo+QW55
MT00ZVpmMio3dQp6IUJ9P35MTzRmd2IlZmFORD4pRHg5RTRyckFFRnppTD5VLWszdVdfd2FXWCY8
e3ZrUWNWVHU2RXttMFN9JCR5dDYKejA3TEdPRDxsVl5LUHlOYmtwflpCNVh+VDU/MWwwcGRQakhf
MWozTX01UFcoUGFTKH1aVjUlY2dxWEBVRl57aCl3CnpAZyNFTTRoJiFqKEkyVUhhNn5ITmtrMFJS
djZ9RGlGanYkNlMkamhHTH4wKTQxS30yRlRkd2VGM0ZGTHhGWj98VQp6Vj1SZWJISGQycWNfUCY7
cUVUbUp7OSVZa3N6Oz16a2R9NUJydW80N01zKTIrIzM4ailxP0l+Q2BiYXhLRz17Vl4KelolRU9P
NylHVDFHYmNFUmpudXwhVFNlKiFEZUVAe3F7YXt+Tmo8PDVAYE8tQkM/UnNWIT4xTGpKc2daaDsp
SjBGCnprLXhQcSZKMHJiQjEoaFE8fD9NdEZUN1BiUzk9K3ZFQnMyJEJOQzcoaX5QYlQ7VVFkO0c+
RyY7MlolKiMlZDFwSwp6VDtZS21ZIV5zZE1NfTFVU35HKWBKKW4kOz8kQFRTbUN9Wm8/aDBpX1dJ
eyM8THs2a1BrYVRKUlElTE99cCsjeSgKenQ5JjlZJF9lVSpSRHYxSWhnY1hzQGFZWTZBdVphTE5F
N0xzanpzemgkMFFtNWp2dTZsQVg7JlNQZWV8Vnt0Pnk2CnpLMVhVenplZyQoRW8mJEBRbzxqbE03
VGllNTgobWY/S2pxK1lpVSh5dE5LSz1AYUomQDgzN1FqdWw5SS16ejJ8ZQp6KzYoT30xZDxATzB9
P0U/NS1TMUplI0pfe19DbXN5MWdnSmNtM35vQjBhQ3dXUmJXM1I7aXwybkFQaHR5NFd6WHAKenIz
ZUZZU1NrcSVma29HKE5Vb3RKNDVUNjZZQXpBanQwWSEoQStZMmhRbCFefV9DcCUwdmg0QF5mMkR7
KmRTWXVyCnpPMGV1ej5ZfFlFLXhRSjFaO0dObzhKNzFPUXcyKUM4YmI3bE5WaSVaNjhjPlJEZkty
dU5VR0FHQH5acUg/e0VEZwp6ZERxcXc1P1pTYkIpcW9mZ2RpN3g8T2BBYUgoIVdNWXE9S3QxRTBj
d3FLPF51UVlVZnFKM2tXc2JOY1RWZ0sjUGcKenw1aSYhTFRoPFAhb1BWI0xUaDxMIWZXK19QKll5
Unk5bmdgY1opKyhDSF4yZTUqQXhpdyMxcnhNekdjWHo+N0duCnordXgtbEl1dSZkNjJ1QFV0ME5g
U2MxaHZpRXRWQWktQnlzV18/azl7Z3IoTkI5d2ZaQjZeY1Z5Q0R1cXMzamMxaQp6TmJlQVhJSUVm
JGh1SGhxQEo5OyYpe1p6IzZKRkV2QnckISVqa1k4cEY5Xmp8ZFhpQU93ZEc2MC0yMnkqciQmXjEK
emIqdnpUTUUpPz57UG4xfWJgKUo1cXlCMG4jS1pCKjM2NHlwKFVta2VBaFJSTUhkQFgzX29Fd1Ah
RW1rSXlIPl9DCnpBK1ZjaCo9Ung5JG96LWNhPnooKDQjISQjcnV3X2xSRis3YGx9THw3MygqZFYp
eyRSU2tVMGdKWng5Ozxmaz9Jdwp6TGlabyh8OGI1YShYVT1aVWo/Pj5lQDZlMGBUd2Vmd0h6U3k1
dCpHfitjemk5ckU2emdKVyYmKnh0JH4oR0pebTYKem5wKDlyNWk4RlEmVSsqc0Jld0Z0VER9X1cz
Jjw/LSpGM0QrOHplb2l3TWBIP1JiZVR9b1FjJSNUQTdlPjJea3N4CnpJWmRQdjlicjJfWVZhUV5C
WC1pP1E1TzloJUt1cFJ8NDh7TFk9d3gwVitIR25XUj5sT0BJTmF9Pn5CaDIpZVdMKwp6a2A7KjlD
aGt5e3ptaUF8KShQXnFeUkpkRnt4Nm9nWU98NFN0R19CKTR8Myk2RlBBSXZGUDRrZ1pheXBSP1hS
X3IKelNZTGwlaHBUPD0mKlFfTndUZjhvKV8rQCQyNWRXcyZpfXB+ckdIVCNNMVAzMk5WNHwrKyNY
bF44T2JKRz9QcWAyCnpLOSZFMkdMaW9JUzJkK2N2fE4jUVRmfHlLWS0tWm1eRk5rRG5qIXh5TXZn
eTl2XnNMd0xrXk1wQmZZaSE5QEI7Mwp6JT1PUUVfMjA/JSpCYm8kYWB5azU8KX1tNUEtJnJIWVNA
Q1BNWnxfak1qOU52a3ZWUilyPkdHMWl8cG5AWXptVT8Kek5zPGoyQlNAeys3VX1fY0MtajMpcTst
KCFBYTZFRUVIWnV8Xis8YTZ7SEhVVHtobD41anMmIUlNQng0M1JvY0k8CnoxQVFuMSh2d01rb1ZC
YEc5ZTtsNzAobUVRaG1zPzBeNTUxJlY4SSRhQWE2M3Qme0YlZTl7Jkg5Qm1uRGd0dnwmWgp6Jldf
JkRVaDs7dVl5cURudWdNPkFrWGhicTEhb21RNVZtJGJfJExUUUFYNUQhbyl5SU5mWG88M3N4fitS
anplI2oKejdFbE0mTXtUV2VPMTQlYElCT1NZNTFoR2BxbD5jKjlfUWhMZ0ZCOUt1QWIoT2J7MDVH
N2JpMTJYOTFrMUd0Uz1BCnotNDFWUVhXP1B6O3RiSmoleypXIyZlX0VTPVdiPTtWJmlQKl9vck1x
N2pJYFBjZjc1Z0U2JjlsQSZSJWNTPSV7VQp6O3JXUnJTaTNrbnhfSHw7K3UmNSh0O3teXnlzVTY0
RT4yRGVhVSZ+dDdvNFMpZ2A9NH1PbUswPW5ZcD87K0Y5WGMKemFKQypFdH09cHhqJU1hfjBnSUp2
N05sR1BGNzdzaGtZXzdyeWNKJjE1MGNwSFozZHxkM0pWQWNkZzI4Z3QhJkkzCnpFbkY8RTVTZXdZ
WSY7PSMxSVFtalVzeW1+aF5QeEJaRVlrSFVNYlZ0K2dyZH0pQi03SENDMVhxMyZzJTNSbmdORQp6
TUFWMkVHPW4oPVJrVipCKlZJeXtVUS1rVHtfP2V+YGo8IV4yJkFWWGJ7ZmZ0Z3hJcil0QCEoYEFM
K0chPz13V2EKejg9QTBCdWxwejB7Z1ozayk0RzUxJm87fWRBOCp9MXgkZDdfX2ZNfC1DKWZSeEI7
UHY4QUd6K0l7UVdJIy05Smg0CnpGOHIxRUBRP24qYl5xaWFlVG5QLSQjd3RhVEwwNiFmQVleKEk1
Sn1Wd1JpMHd7ZX5wWntKTVlnQTNmSDh0LSpFdwp6Qnh3JSt1bDB0bWB6UWJDZDtDQS1wTSlNfmxJ
S3p2ZGQ2JnNZaEk5VnlRe0l0SSFOTTBJMU58K3s+NnBiM3xBP2wKejtSJUhwY3Q5YUpwbiZJUlFO
bUxZWF5fKnw7Rj59UGMqWWhaKmEkWWsre3xEekpie3F+dSE1fiU4KDsoTWZDRiZDCnphY1ZwQ3sm
RTh6dW1oZXokT31GMXlUS21sZCpfRT1ydiN1czY8TGBmTGl7cTBke0lZTXAtOTdUJGcpNVYkTzhx
Uwp6Mj0rbDxrKy1iPCNCWX1CYTgwciVIfjxjVUx2V1JzN1NSezAxOVlMa185Km58OHZzTGE0RWtu
YHp6SlhzT3UkS0MKejNRakBhdHZVMW5CTm1yNilCeGg7d30pUX05SEJRQ2BFS0N+UzNuXnZ6ZFdG
QnlyOCQoMmQ7ZWIxRT1BZD1LeSRLCnpWaH11ekYmTFohPWZNU1Y1bk9gbnBzIz9kQVBqX3FORHV7
TDtIdjJCOzEpPClJVTVpO1NySXU9YXJIYiEoa1k1aAp6O0h2NEBlPmdGKjdTeWVybiVNQSVReGpZ
TWJaI1BZUl5zNXdYXkVxTUp9KGhQaDlXMVAqak5oQmE9WnRVIUErMHsKelBqN3JmSmNGPHRvUH1w
S2hRUEJPRH5NK3xtVnI9azEwO1pXYz1CVTNOQ1hrIThpPEFLJVMrKDdqcXFHWTZhXyR8Cnp1cWE5
dDZeYV9KPiF3QX5xM0JUenMwfURhKUpEYE02Y2RVV3dIZFZxdUo+anxaQUVRRXY3eSplOTRKbHs0
eihTewp6aDJsbz56OyltfFFNeztLV0xvLSU0cEc5aEgoaE4tIzYodkJBK2MzSjlJYkhfdnRSV1Aq
MztRZU87dD98ZDVRPUwKemlMNStEU0RzPWtQd3x6ZiNMODI4PCpCc3RSN1JlbkxQQTFSWDRaQ2c2
MmNNXlZwcyRjNiVzfkwjOGljWk5LWXgxCnpsYHhUbHhXczs5UEJCJCFWb0JuezY4bCV1aTUkVDJP
MWR+UFVSK2QrTkRyMUlpUXZLZiNIWFlYMn5SPnJsdEBRSAp6UWJZPCNtbG9ibiMyMSRvQ1Eyd0lz
emsoPlAhYl8+NCNQeXJCdnFCZ1ZkbztRM3I0fU5NKztaciE8RWZzcn5ZVCUKelZzYE5TUWp6dDBU
P2d4SjtEMzc/MEtuZVcxX3dfez9FKUpQc0E8Qno0UkhBM041Sz02MzEyYnFSZWtLTjBYVGRaCnom
ZCZoT14zKjU+cUlDZkdEUyhUcDRNWjUoa3I5ZDcyKDV2WWtxZm1JSW4kVXBoODNmPntlb1loY0NG
dypgdk42UQp6JSF9O29zNnZTbFZaXyNgMyRZXn1kVz8qSC0hQVB+Zyl2JCUzPVg/XnhWWERHbmdP
dDFTNmclY0ZgUzVxMWVfe18Kemdzcld1clFqMW47KzlmbylAREskTEx5Y3xBYCZuVUFfdXw9PV93
KjBBXj1TYkF6QCh8QSEhKkFhaCE7ZGpIdEFYCno3I3p4WSZuQiNMaVlfflE+bGdneTY0ITY4Rlkl
SUs2Z3cwZElZQWk/JVIoWHxMWHBVTXFSMzd1ZlBOUUFfNnpRYwp6TFhtS3d2NG8wM3xEcmgralJK
N0wyKk1ZN0c1U3xMaEFiTWg4anFva0NpP3w1TVo9OXRCenoyOEd7ckJOQ21RPmsKendgal4wbT1T
PHpzdWckeGdzRmV3Xkc5REtAJm43cGheNElaRkR4WEtmP0MwYzlIbyRzb3JWeSZrJUN4d0xfUl52
Cno5cCt6ajZ6KihVIUd9XyhsSVMxQFIpYldNeXMhbFVraFg/cThoUW1FaUFVXjQ1PjFlWCpwRWFR
cW4xWCM2MkJBVAp6UF5gZ09CVipkQ2owbH1vODQ7THo0TDxFfTckKDY+ajJVMnZkejB2NGZjJnAm
fEY3YTg/eUJzXyZSUUoyTzs/QF8KekBWTzcoJGMyY3k4b3ZAb2pZR2d2TmwhJm42OVBEUkJraEhW
Ml9OdUQ0c1dFcnBvel96UlIyJlg3LVgqeEcyUmZ0CnpCazJaLXpYeHNSUlh4MnhsSGohaS1ibVJq
cSRsR3dfKGIqdWBqTnRgXztlM2U7XjcwSGVFWEghWlJIIWdHaFY+Vgp6KCM3MEwwRGsyY15mN1pL
ZSQ1QVJpYXhHcDc3a1godklRR0VYTCt1JSgmdDxfSjQ8O2tMLUU1eGhoMF55WjAkN3MKeiteektk
dzJvVCVJYW8rcmF3I2d7PGF9ZyZvTHJyKEpqYCVEUEw5cmE4NlNCckI1QGZBQmhpOWZJM2tMTmdG
TSU8CnohJDt0SDFhflcoeFBYe3w1RXNudFpmUHh9eUkqWjNGQVR8WntiNllVYVVwPVB3NndJS2tj
Z20mJFg8eEM3d194cgp6VmRrXmY4UEJ+K1ZaUm1MIXJqaTV4VTIhOFhsQ3g+PV5AVnJPRDNgODxv
YiozVSZfOVU9eFBneDhOOThfLT1QMFcKekNNcystbGNtS2s7O3g/Vmp6bz92RWQ7RmB0KD5mbyNT
NmokIWlXeD5UeEUhQkdGO3FgeTB8I1hhfW1kKkhTdCNhCnolezs3Tkcjc0d6M1E2eDM1a0k7Kksj
YENSeUk5JjtgfkROOFUpOyRjTldgK05WQ0RUNEw4eTMzM21McXB4eEpOegp6JDRWX0lvN282TFEx
QX40ZmB+VFBYY3N8MXFGfExGO0lGekB6Xnp+RjhkJXJCeCgzIVl1JiNsMTRnOX5TZiMyNG4Kemx7
MihEeXJGRmYycVZEZiRmYCsmNkJRNXdRcCVjIyRxPl5UMDdXKkc1eHtLUXEwUj0pVU5uRlFMTVE/
WDVnfTEmCnpGJWRTajAtIXxmNzluWDdhVz1IJStKTXxENXtWWEszZDRXeik0Vkl2aEVoanU+dyN3
REd1JFoocWw2Y0xrckplVQp6OHlGTjlLcl5CK2ozfmt6WGh7UFVJZns0QHYld3p9OGJkfS1mdSpG
UHJoeTByQFUwZXchSnhANzxtM3BPcn5zR18KeiRRYTJ0WldtVWYqcmEySTwjSjtaMzY4bz0kKnVo
OENBMDJfQTNVUHc/cXtpfUgqYUJLLU1WOFpAMj1mQCNLYXtlCnpyS0R3NF9OJUk/WWlKKE9KRjBK
QmM8aXs1Z3s3NlhqamYkTS1vdysmK3NEYE0tMSFSXkxvUXZ1NSo+M2JIdHpiMwp6Xz1HI0RZM1gr
fT9xJU4zZHpAY1RTWDVsezxram1wPHJTNHgpaW9hKks3RFIlYHFKRjteOz5zT1ooc2xTZngrPksK
eiQqSmo/Kn0wJGRoK09iPml6RjhPQn13KXR4ZnIyYlhmaVNrODVXVFhoNHd9U1hDeCF2RT07amVO
ZTY0QHd1d3Q1CnpuMzczMz5oYDBUUk5TSnZLYlh6a0tUdlB4NSZPRGg5MSlFdSp9bz4oKj8mdjJV
eE5MWHN9KnxyO1pZJUxGRVJgZwp6ZitBcVpEOTktJmgmUHNza14pUEdySiRnc2Z3aFFTNVRkMV9y
YlBrLU5DWldxSyNzd1hRKTROeE0zbiMzNUIlPmwKekBPXy1uMCUkU3QtSGoyJDJ0UHdLWWhOfGtO
IWM2c1lJRnpSPEp0P31uZj89PyZjVDQ7JGBoYSh0PmJhUmM0S05+Cnp7X1hFbHhwNjZGM3tLcGVR
VG85cVZmbUB5QXA/X3Y7X191NXFpYX1xeHxVYVkpcHl0TiVeV0QoOD5jeGo/Mm56UAp6PDJ2d2V6
Sy1HMnYjcWhNT1orX2QmWD42X1c/KmspMl9YQUtsdXhkNTtfbF4tZ3t+QUl4Z3VANnBZTURvY1Yw
eFIKem1RVT8jLU1FblJyZEdEZTBWQjFlKVQzOD5GUEBxXilVVkpMRyhBK0d7cW04IWVYTXFqKm1C
I15KR3QhSWs0YG11Cno0N3s4ZSVSYWJnQXsjZiphTSRtMWBscjQ3KVYydG5TIUFBIWVSJGZFIUR6
MGtvejJxIWomZ1JOVC1ZYzR4cmtEfAp6RnMoc3lJPF5NJkdTXjQlVDdBaHZuOUcrX249JWhxZjZ+
a2UqKU1oV3tPODJ1R3BAeTw9ZUoqcih7OGBqeHFDVkAKekszMHB5cypkezN3RWYmKig7SzZuQWJ5
IyEqVWw+V1otdCVXciluTTV5SW5URVFvZnRUSC1nKTNNS3xmaz5FaFJHCnolJGtyWGsoTXkqeiYx
dj1kc2tNblZjWmVkRy1xQlopMnxCR0NYezFkViZ5bzM+V3pNQ0ZLPHIxSmtyeCo4VHg5VQp6QWIo
PiZ1Ymh7N0hmTVJRYkheNWt0Snszey0hIXkwLXRZeDB7YzwzPXFPNHw3SThrK29qPXJrVE42Vy1J
WVU8LWcKemptfjF7aDN3THdNP1J7UkYtOFluJFd3RmM5NVIoX1N1fkdsSiRhYipvdGlTKyVgPmhV
NE4wR351b1ZIY2s5aTg0CnorKGZEcmQqZV4zSCUmZEB5PUd5JXZ0MiZDeFF9SWJXcVcrY2MlS1R0
QTlLbDRpYD1rQTlSPk9hbjRkSjJJT3h+fAp6PyNQJHRvb0VPcjBNaU0ra0lRPn1oUDF8MlhRQzdJ
cDdEMkl0N352JnVIU2NoSWtxPTliOWJCVG9xYis2Szl0bkUKektrdnhSc219Wn5BTHskTEsrZURS
TnI3KzdgKFpnfCRHNnsxbV5LKXdLUktjPTxkKjFCOCElMEZAO0RERnp1VjsqCnopXkU9Nll2RzdX
I1NgMz5fOHRkKHBIIVJ6MSVxRHdQd2BwSGc5VnE0Y3R5TGpLSz9gaTJZJS04OEdwR35TdkM1Vwp6
VGdOUFM9UGBYQ0B6SiU2ejRsZW9ta2NMPE83bylgd1R9WUZJaTgxc2taTjZlM1dndSEzMnY9WFhR
aWIzR3ZebCEKellYK01LRCFRM35jQ0t6bFEpQD9aJXU9PFk7JlE/RUtfNG1XbWtKQERmP15LIzU8
dFVvI3JtKEJTekZ6YzNHV3hqCnp1aitncmUmUEsqUUxUcGk4dGIjZXNrIVgjcn1manU2KSRESy1U
Y2Y7O2d+Pi1NYjlDKGYkQnd2c2hxSmNtb3ZHewp6OGAtJkopazd1ZzkldjBPWWBXNXlMalgzTVdL
fTVQMUpSRm8+JVUmNV8yOER1RWpWN1diMmpYLTstKXR+IyR3YUcKeml3d2FiWiNXclMkKG5nfF9v
dCgtUmAqczlPSUxFdFduVEB0VnBNWTMrKTFXfDwkTmdiU3YmZHhwK0tqME81UUBnCnpwe3J4ZnIo
Yl8lOSZzXytLXzwxYV4xME9YP0JZO2Q9fjVpO3dhWCZ+eUJhMEk0ZUpQMGkydDtkcUs9N19HZnle
Ngp6amMpMXAhLXBSNCZEPHQrSmMqSF5UeiVXU2N7aDVzXjYtWDhBWWJSViUkIUM1JXBRIyUxdT0o
ODRmIUkzdyp7WEcKeiVKJG4pSWI4Qj5TSy14elJxM2FXejAqSS1tLStvRTFFd2goQDc/Kj5CfEpP
KzdYTzJxRGhhWDNIZG55ZntrJio4CnpDIXRMTHhPK3YqdmtiMVBobTc4aiFxV1pxLWZJWlMpWTk8
emh3PH1EZV49Xm40Uj4lQC1iYF5tQjEqQWx5ZjtGNQp6aSt0dEpaemFjPChRfHtsdFloPXp0QXtX
PGd9JCY+X35tamBsciVxTV8zM0M3WWZySCFfWSNoNis7cilPdzg3WTEKek05bVk2YT9mNiN1R3Fy
UXF4aHA9PWpwWHtLOFFBbjVkZj1nbE85dnQlbSk+MmpxPGRYOCpIPU8zIWdLV080RShHCnpGTyhJ
VWFnY0A3WlFFQz1LWD9NYlFLakZ2WXx9VDU/biRlVTB2bVQ7K0d3ekdrdl5AKkUjYkM2YTI5Mm94
fDJWTAp6Uk1DXmdmdFNsOypgQS1pUm90SUF1ejZDJVNnZnJ6d0VuSlF6V0hgXitrU0pGVTItcXU+
VSRSbEhDKGM3SllUeCkKejlBQHIrKVpkQzNHVGo+eHFqJG1RYmRQdDB6blcmY0gwWHs+Knl+KVQ8
SkB6aWF9Wk0jY0RBJUNARkBHZnMlOEhNCnpmN1NFN0VeKSZfZ1lDelotWDt2c3ZMRWhfSWhqRURx
VHsmTTc3Unk4e25WWSkrTSo1PSo0T1ZmUnxLYEFPQmwjJAp6VER0PVJmfjIxJFg/X3h3d01AWjBY
SndyIV90VlZaK3hydSpfVHVhRD9UKFQxXz0rfl9mc0VadjUmN1pvQ2RXNXMKenNieEhsZDczWkot
Qm9ib2RQUTlTSjFnNV45LWd+X2p1eipWQ2xlT3pHP29XMlk/I0B7Z0YjRWlQMVVDNFBCKWh+Cno5
Kjx8JXhPJkwtb3VSeG9fTEVeX3F7fUopI2BmVDE0cShoc0BlRmZtYDxAJUt5ZE9BcXR7P3lVPjlT
SGFPfUpNTgp6XldiYTZ4K0hnQmx3WUtGSSM9Km4qVmFvXzdPaWFvYn5PfkktOEUmT2E0dFhmcEwk
UyNGa3BYT259b1l0e19jTTQKenJ2PUBnY3xtQGklUyF8Pkp5M19AKz1WLTNnVTJWJWB5RDthUF8j
NnpZM3NscUxISUNSSEZuJG1PTShkWkRZajhJCnomVklkMFpgekNkKXMyQExVN0RXeU9GTW5yWXJ3
QmJIJDUwM0RPX0RMJDZkdEI/d35Le142aTl8cWtZam50cnltcwp6Nmk1NEdzK0w0ZVp5KV9DWFdv
PUthWnZYNTQpNUREbSFsNHB2PE9HNT1MRCExOTA8K2M9NmxMOV5vKzlLSmNxVnYKenhfX3w0X0A/
c1A9V1VNST9GK2xnQUdlVEsodFFeYjgyYzNhV3tncE5rQUBONSpvRjh8OXsmYE5heCg/eSUxWSU5
CnpyfU91d1koRFc/MnUkZiFOUkFBPGVUPW1ATmlRMUNHUSZDJHg/Q2BNdEVsfHhhaygkT2BHd2JL
WiVeYjI0VkA3Mwp6SD9mSnxZJDl9cjUwdnYlI2V8OzBOQXckdWl8fkp9eT1WTlBAMGkhTWt9M0sy
U1QhMGxfcGFTUC1PbCgkT3piK3cKelJjKEloamokfU02MDNOM2w+ZjwoJVIyR30tIXh3TDk9PzVz
d15LYUJWY2hnfWo3ME59QnJGYlZYVkhTMEh6YXBGCnokNCtoMzVNN3ZJRE9fdzZJYWpYe3F4Q1RN
eip7U2FUTUtvcW8tT3p9MUZRT3JWaDQqWil1JFYyX1IzVkxvSmVXJgp6V2RaYzlTc09kUUY8aGBU
NTQqcXJ3azRgWHxDRX5nVUF7d2VaKG9sVGJic0Y0cXBuZz0qMlIqUGh6VkRkX2NJaUkKeldzI0he
VlhFdTxKQGY4ZXRKKXQ7RlBwWiNZMmlyUlg+UiYxVHpGRGdkYT5UYCl6ZGxndUg3RyVCdHA8bkl+
aUU0CnoqPy1uYUVvUXhVbnRtI3hPbnRJZHBeRjcyR0ZtPEdCRm53QU1OSWMkViVHZ0ppKjI8MWtC
c35CcDI7aHtPdWcmcgp6b0Ejam9qQXVRKS1OfGpeMDtMKD4zIWhzKEpsa19tS2dSMWxnX2g9bj8+
fi0tVEhZckI/Oz5SeGl9fVgtRTJGOE8KejxhRHhZYXEyNG0tQmk1Tj9CMkIwWiRtMntoeStpaD9k
PEN3TzNJcWJ7WEI2YGQrPG5LTWBnN0k/e2Yyd3o1dUVwCnpOXi1TJk0lUWZZVGUhQklFUnBNJEdp
LT9COWV3Kil5ODJidCEjZXI3MGFKUFo0V1UxY3M8KCVYPkNBSFBXJnlNdwp6eHduczs+WTNedm95
eDhFeHRNeDlHPEROfSRrTUszaUkkaytOOGlwKylrJmg2cUtjbUYjKTNfeT9CdnFOZlVqSUEKejxH
QEs4THdVTGo2PHJoKEomXn4hUT4hX0xteEdxPGc/IXQqbFR6YFBnMEFYTXd7PFJ6NVAqTnNeZ1Jz
KiFwRkd9CnozT2ZjJCgxJjtTWktQS297aSghVHNCTkY1Y3hmSSooYyk0aCVQSnsoaT9US1JzayZl
RGxjamBiK20tbUFvbEdqeQp6O1pIbUM7aGtJc19PNThfIX4/JE1HWCRfPCNPbVZDNF4rbHw+VShE
PysreEMwSlZzMkA4QD9yfldMQzhfbmJnT3wKenNoO2NxezViOTB3PUUleFVWJStLMmE0NXB4RTBD
SyhpaH1DNk1mSUNKWkBrM1d+YiFsSXdmQVZycyYhcSRyVys0CnpuXlpoZ09meFNZVlpSLStXRHw1
PEtJPi1qNTlnQU5XJElkPUtEPyMtYzJJKSNXcSotPCVYT3c1JllvV0ZwYDNLNQp6TSY2fTtuRFF7
MWlSWkpYOFMrKDs2IzRtQGpscipvS0hHVWJPV249a1FGWm40WW4jR0ZZeUJVSi1PXj52KzNJbE8K
entPMGVoRDd+c1djV2oxT14kREdiKFN6PW5UJE0tNmlrQEBDPU08R1FuV3oxZjVZMnE7NWRIcEVR
fmRQIz4ka2JfCnotMWxCezNMQ1FSNmIrQj5ucUBqVz1AJDB6ITg0PUY+aWpQPzBwcDlWclclSSg0
ekZ+MkpNRmMobEFxNjlHIzNyMAp6dFkwV2RDamN0TEQ+eiE3Jig7Jl5FdGJiMDYqRVFeJEpEaVg8
K01wTW8jTUdKVkA/MnU8NDE+TTRzK0BqNVd0T0wKemM3NlpDPUdXKmxANVRGNklYeVFqYyg2VTht
KWVBMVNeaFgwKGUkJmEmYVY2VSN5enlnMCY+c1dnSGpgSUZ1dnh6CnpIPFF1MnM1LXZFQWJoQ2kk
dik5T1UmfldvODF+NnxlWXNoSU9mNDxEb28rI3ZlUFRuQm9BVlZTNGxBRilVclJVfAp6fEQ+QXN7
SEQtdnNXQz5NX2lqRkpfTmYzUjlybGowVlk5QVZxPXgrQ2F2d0hSI0BzOExQZzdSNCY+VjxuaTxh
dEUKejlRYDJwcmY3ay1hbT5Qdlg5Q2t4bGdDaHxeJnpHeSohWipDUGtyMGBZJWQya2RNaSVmJDlh
IzZsWFpQXyQ5Nl8jCnoqdE9RfWRNKjJNQWxTcXk+dnxOJVFGUml2cXY+M0ArZCE/YCQqdEJ+PCE/
VDVZUDxReHNxSG9JWCE0bGtRX3J9KAp6RUc5QWB5JFdgcD5MdEYwUjFQRH0lN2JoTHNrPiNMZXdj
MjBEV3htRk5oajlTLU1BeCF1YWMja2xfVUFXPjArSGEKeipeUUxXPU5Ba2t7SV8xbHtxVSNmKjY1
aHs4ZEJaeF5mVWBLZy1HZTkzbnB6JUo7IVUrUHEwaCYxJGREd25yJDI5Cno+WllhRkZibnRWfDlJ
O21FcioociNLUVh4IUFUNTwjKzw9U0NSMFJOdilpSj02P01PZmp7YmxmQHZOd3V3cXdncAp6JnAj
JEZCPigpTDk0bCNHSU1POVNgTGxGSDkrZnVYTDsoR2ZfeG9yPjJAVWdHXyl9M09tVHlaMi0lUXN9
LUR8ZXMKeihDdnlIRDBNIXpeezI5OFNRN1ZIP3dQQTY0eFgpbGBwT2tHV29xQVh0fitmRU8ob19e
bmBkb3MjakdhJHo2ez48Cnp4WkhKND5MIW9lS0wzZXdHaFVoIVBSKll9QSE9NDkmZmROX1Y+fVQr
WEs7Rig8fUxyJDZSZDhtRXdwQDFvbVlNPQp6MWNsRnc2a1clc2J0PHUzTil+OFchNiU3TVcjMCVD
bzZ8SzN8SksqY3YyeiFQTFUmVUckQzNsOWx+alNgN0E+YD8Kekh5PUl1WistYWd0LSQ9RmNmZUZw
d1pUTXg7YFdJMDwzTj4rP3FrPTNYdi1MZHh3UHA5TnxYRHg4KHZgbEBfQyEtCnptMVd2UTIzfnpE
WikpbCUtRj5gO3MhbEp2PnVGODJfWHVRSlVmcCh7dlZyeXlafCthPVlKUEQpP2RGTXRxY1o2Ugp6
NDY1OHcjZEJNSnc3N2NQbzswZGpYajlxRlZabUkxWihAMDF4Tzd2Mnl+aDF2K3g8dkd6TVRoNylB
bF8qO31mQSMKelZ0dXg4elJASXV5aXNaNVRzP2Jud3ljUmtxclB4Q3p3Z3kwbXZAdz42aWJIXmBk
djAkZkJJTkZHPG9seGBoOzhwCnp1b3xOe0M+SChGX3VoJWVZQUlWelYlWWtCRnhQND8+Xmdvdlox
NDEhRG05SzEpdHQ0Uk1OTHo9a0xYPyUpcFkySQp6WVB7Z3E1UEU/MV5MfF9NQGBZSz1ASlc9cyts
ZDREeSokWWxHfTc3aTdqbEJFPGdMWVBsWEFeOTRiMy1pM0pxPjsKelApdjdLKnMrdSNyK3NKT3g/
IUhDbFA3Yl48ZVBfdWwpJHBiYUtKODZTXjNWeyhVZkE8SXgyUUwtPWd3Xl9wJXIxCnp6T2ttb1RY
Xk5VYHReKTwwfHEwSGAkdXAyT2xoVlg8PjtJJXZZNERiaDtEM1Q7ZlhBKkNeaV9TX3IoQCo5JXd0
Twp6P2ktfnFwPGRMeExtUnZCVyRKPGEyVVBFM1lNfFdYXzhhY19EZS1KTyszVTNCMmV+dXJgSiVQ
PnJVdkNZa0E0YGkKel9WPiNldT9afHZuM31WfiMoYnB7NXoybkQmKy15fFVYRkI+ZGIqJGM2Z0J3
aVJ1SGNpdzYpdVJsTXxCeSVnNHZqCnpob2YxcGQkO3IwVjM/YjZyLWIlXygyPGlWT30jZ1lNKSt6
QCtCQUs1YXlOJE95SHZramAmPmgxM1FvOVJ3dUpUVwp6KiV3WkhNWHRQa2dMV0dGWkItfi0qUVVs
fE0tTzlIVmBsQE1kWHJ9emA4VDxqell+Q0I3YEd4ey1TS2IqUSRNZHQKejAmdT17UEtFSTRyfGcy
dWZxMyl3KTdDWGRWKUQ4eVBqeFJZN0BYaEluNzMoYitsZFEwQmA0fXcyM2sxXkNTJkdZCno0RHhx
YGx8NmhJeCZLe19gezN6YXtWYCt1K3pybT0zSStxd3NAOGxaeEJUM2hYcXlJZz5KdWAyeHFDYjVS
VnpCKQp6Ji0tWjd6Qkk5bj15NFk8PyNAOFI4M2VgQlp1RGgxK2VEZV9AK2wmQmBHVHAkdylUXjRZ
VEtXYlVTaG9fOUlZfUwKeih7U2E5Xz4kS2FBTVFgMU1VRyMlQ0tabW5QOGk1WWBzajVuPk1qNEJ5
dTVQP1MyWD9aPUBndHBfMnVGP05ffmJGCno/fDBjS29FU000WmBpQiklMW04MHFOJUI9ejwrd24p
a1dvVjZnP3NXdHsxJD9JWnU5PiYyczRPV2FScWtFKz4hPwp6ODl7JjA7eDR8OXVmK09pZlVVI3gr
dD1KM3tyV1Y9YGM5OXZXRT9xUXRQeWZ8ZXtJI0cpUi1ZeHF2dlZZeWRiK2wKenNAYHMhPm1LUkBR
QExhWGJDKjMqY0dOfkQqU1V3OSRKbUJ4QU0lVDclKG9hUGZUKmF3cTBmJFFGUkteejBpb3BWCnps
QUdvWCQlY0EkR3FaRGhsd1ZuMiVRcztORGpJTFBsLStFOFJzVHR0eUg+TXJjZXI9WjNrUCQtRDsr
YHd5WTRSWQp6b2V2a2YtelVPT0MwRXFJVz8wKyhqVSRvZ1h4eXUqTlJmQk5LTGhhZk57MUFyOXYw
dHZFVUk9Qk00VWR3c1dXSEwKelFPfWpoQ3dCQUUoY2J2aT9QMD9LcmdyMHgtISElc3JRZG9MTnF5
aFNVRVAwU2k1I3o+Rmp3b0hXNHA7dChyYmd0CnotbWtCaWx3Vyh4XjwjPH0lTT8xeFdrbU4zS1Fw
OVhQJXRme21zI1RESkszMXVgbyttOStjfkI5Ui1Ze00mYlBaTgp6V1phRDFVLWp6N2V6ZyhedjF0
P3pIX2txT28kSlk0WW0rMiV8RWt2RmBsODA3ZTdsV0Q/ajlNUUd9KTY5dUpuUm0KenJteSUjaiRI
UW1tfGtRcUA3cUwlMUgrNUVIeXpGI2N3ZjFQRDxKYj0rTXwkZDJrR1BjNl5lN04lKkVAeFpuayVT
CnolfX1kNWApSjxqPndAUkcwfVdoMWNoSn51T3RhfiFJTzB5M2JOTk88ZEU0NzA4az44dzUxaG92
M0pSfXxhbEhzTwp6ayNTOSglMEFQflM4XmszPEVGbXVWQUpAK1Z4I2xQbnVtPmNkOWl3SmVvM24/
VFp8b0FsJUNnbkhvbmIkLSRLV3kKeitpcXZLTH1KQ18xRzF8Q1pRPCNLMEVmKkZvSVk5RiVZQ2Ra
YjxmYyRNSjxiNClHQUpYY3dYT3FxKFZSQi1TXyl9CnpNXiM8RSVgeXdkakJ6ZWFZUD1fV3AxJTU9
KCNPRVBCaykzY2ptYTVuaUp7aktoWWFOVlVsOVBSLU8wQzErPykrSAp6JDwtQz0pPjA8SSZ8PGol
JWlSRmNCTnYlV3FVKER2dyFOTnZsPDw5KzBCbSF5aFlNNnJydGs8SGwydkR+RjlfSm4KelBjTj85
dWJFX2d2fFc1eFA1O3FPaktWZjgkLX1xdm9VWCtsYnR4U1A/TjcoZ0RuN20qWS0xOFA2aE1FaHEk
VEJ8CnpkYFZaUiFCVFFYQykmaU5CQWVEbWlpWD1QPGhndjdfMWthVz1XfU42SUwhTS1EKWclc3g4
XmVoIylmSFVSflhuTwp6PXNsVEReSlQ2ZCZpentiRWtWfUZkOT5FcV4wPX0xSiMjalc8ZE5ORDFJ
RihOQW4jUD9qYEM7RXFIMiEpYmdQYXwKelAwbHpscFZVPFRnIXpMKDtwYnR+T3hvKVFJKEsjVEMm
ZlBJJFRBYlh8NX1jb1dpaTsyPzM1PyhMaDZ0bnxIKFpKCnp2OWA3dVp2YHl0TCE2Jm12NzJ4NHpH
X2hQYGw0YFFUaispRTJ4YVhlPTk9MEM7a21sXkFzIStsbW9feysjS0lSJgp6Rk18QyNWNEFBaipT
PFhVVlQyeUU/c09aUCpTezk0UEZvQE1JYlAlPXdrX2JrZiNgPFkta0glXkl5RXpjZnVAfi0Kel4r
fEhVaG14RTFAfk15Nnlsd2szdFZReyk8bSZWRDlPNENyJEVXenh3O2d9MkxiRUFTR2BLU0c+fm97
QzstVT9tCnohaj5GMXdOM0JZdGtZPHkzezlmKXM/UktSYXwmOEM3NDw1PShTSSlZOU5wOEVVenBK
eVJ7MSlheHR4ZGJtY1NVRQp6djUmWDhuVlFYfXpxPT88KWteN1d3d35Jaj95YyFKJlYwUjZISzxH
Z0Y5UHRVa01CMHRlczB0XzZ7K3xSempkKkIKenclcCVyTEY7YV45c2NYayFHa29tRVVCVlpTMF57
ZnZLaWNQSlp3fjRvYzgzeE4mOFBwSCNyM2ctcXV+Kz5kSXUlCnpmQVVOeTw4Wip3b1FBSnVLQFFf
O1NNOTR0QUtISD9abSEtViVqc2ZqRytCUHIleUZyJjU7eyo3OWxpdW9zaiR6Ngp6TyU9Qlkpblpz
I1h1fnRZMH5gajBee3I/e3dJNmpLTmdNa2Y3PFhiZnFaJklaO09iTWFrPTlEM3NjaW1AM2M3KSgK
em1ASU5jVW5xUm1OMTQtWDNkTks+eD5DcilTRXVuYWd3MCpMJE1DaUVxLWVBQW8zdjUzWF99Ym5u
WSlpcTEmNll5CnpXVX1LbXBOfVRlT1VzQDwmRk9hJSVWV3YwWitYT0F7TjV8Pjtqe3lfbFlWSH5g
QU14LS11dWdrX3Z2JUh6THU1Tgp6OXx+UCFtfV4rZmlXcjVIT2ttflFgITZQKGd2TDIpVExTUHZe
TX0hZCgjNyo4emZLcHZeV18zRmhzd21jI0k4V2AKektEJkZKNn5Udl5fK25uIyhYI3xrU04wfns1
KVpLYXNrZCQ2YFh6LUFUY001NEY7fmV2JiNfRztvb0RRaE5qK3dlCnpyVDhnRk5ZS1g4aWBzKHpE
VVliTEFLbntsbnpRJGBpJmVhISNFbm4wPjhyOyMrMippJkUqYWw/VyN5VmUoTjFqPAp6YWojQz5G
YU96JnJASnA3Jk9oSmQ/MklgemtMTDYzZXB0WkV7MnJmcj5Db3QyUHJsTTRYUT9jVVBDYTB9NldM
PXEKem5iaGp3I2p3UjtDSj9XYmN+VjhMeFNoK0dFcGVKPDtMMWNwRjVrbnJnSTFQP2VOdGFDNn1z
NiY5SCVxOCRDPnRECnpqTUA9M1lwJmBxRnFZdmd6c0tSNU5LMz0pMTFXeTFzclM+WkV8KlY9aFBX
KGg8JnkzQ1lFbmQ3UXFRaDVWeHBCaQp6VVJoYlZCdUBFP3FLMClsYz8xalYkVU9jZTYlPzhJRXxt
cXBQOF5GIyRfVU9QKj85UntxPVRQLSpkcWFISkJiVWUKek1QUTBvezs5VW8oQlghY043SHt+WjlO
KnR3Vy0lWloqWl5WJSUkLU1odSp3U3VUIW9wKTRiTG14QDxGJTZKOXdKCnotKU9ra0g/M2xMZj17
TzA/T3txSyZnTFN2PEMqO08kMDlHVXV4ZUZ2cjhhPWA8e1h+cWhfJipSUld+bEAlRzw+PQp6R1Je
KyVkNkBiNC1VJFFTPiF5dEZkVXhFT21DcWdGeUlYYXxJc2ZMNkpKdDQkYCgwQ3U2cVgkTmdGO089
QCVzbTQKeiswRHYkeFpsZ3FafDEjR21Tdk9DU2VFSStIRjBqVnQlUjxYdWZvK35McHtedWNGTUZY
eF9PSmBDel5gYkRRNiRwCnp5P0B6fG9TKDV4V1Z2VyhVJjVub3d3S0FZRkE5YjhBSiVqUUlEOExr
ez89P2dleTFqRD1sMm5qWGlAKVNZenwrYQp6PVhPN3wlLTYhdUM1SXR+V190JDdhK3clci0/QXtw
cHBLdWVLQTF4S3o9Qzc+Z0p5UmRNQUU0eUBnOW13WDJ4bFcKemtHay1jRXteJmE+P2o/aE8wSTll
ck5tPkF1XkBITnl5WlNja2RGX1FvfERCWmJZKmhza1NSeV44MmJ9cj1GZDB3CnpJOTBuT2lhSiVD
cDhFT3hLKWUjQHpofHkrNjI0SWs9dTkwcyVEMiVpc2s9IXJPZiU3YFRXJkpLPTw7NGlsbEt8MQp6
QmxUbilpdyp2ZG1ma0U1NVAqPGxqJkhwZFVhTVZqbVdLZUlEYjljMVl7Xk16PmYmOXhFfmhCdTxg
VXJUQnpIKmUKem9MZmpgZX0lKksoeHE2O21lV3AkZDUoMTBoQmFSb1k+O3leYl5LQXVvcD1oZkgw
LUFyRXU1STdWSHs8bSg3RXh9Cno2VldTKWdZRmE2JHdeSmdjfTE2Uko0OEdAZDdeZD9xdWBpKE48
WDtrPlFpfE4reFNwVyhLPmY0ZV9sMkRoNVZXSwp6I2pqTWl4NDUtIyFeZkRXSjZnMG87QFZLfD9i
Nj1COFI4ZU9fbTxuSGB1U0xAcHN3dGFMKFZqPnd0OzxIWDBFcUUKenBrQnUhWVA+aDVQQXlgMDFv
ZH00SlRzWCkwRCl7eDtga3JlRDxzVWlvIz5aVWBVR0F6S0E7aDFvQTJmZjN3KWA5CnpjNTZSSlpe
ezttWiVLMkkpcmw4bzMqRUxvLXVxTmtfX2gxYG5PaEk1MmNCT3JuMnVJdHZIQnRMKy1WYH1tZEg9
Rwp6UXplX1QzKUMyTnZBT316eDdOa0gtWklrfmNhU2Y/Qlc9JTg7KkAtYVo9Sik7Kn44ZF8zM0Jx
YyZOJkRDakFKYjIKem1kMXZrPVFPRyp7XjVPNUFUUWUxZmM5OUlialYkTFNOV3skcXR8ZmgtdStI
Rjt5ZkxmN0FAbW1gUF50TkdzSGRTCnphY29lfUtjbHxTaGxNanRoMnN7VUk8SCV9O0tseEpDRlh0
fS1RIURxR2RxWEFzLU1hQW1oMEhvdXZNSz9ibV5NUwp6VD8rWWZPQX4qX0liVjFHXiFGY0dCKztT
OFdOWmY0I0AjfUZlTGRPa3pmPSt8VGZDSU9TTHp+NEpGWHRHQmhMSygKemc2cD5EcmxsPStLWVlH
KGFadWZreH49WW4+fihrSExHXnB7T0BtcSkzbzxfRmdMWFJ7cSZKamZna0lCU0psOUArCno4dDVf
aVNTfDB2Xm9VbD95TmJxezI5YilGSzkqUChoM1c1STxIQ3U/bVMoeX5hdH04anQyJTM1bn4yVnVo
QDwmNQp6ekJuYHopTkpzQHNkMVc4LUB4Rk4jP0VFLWpQUWFWNlJiSyMlRkdXZC08cChydnlCSWJm
MWFtVypyaVVKSyVlVmwKeiM4dUo1NkZ1QFhQVStMQkU1ZSh1V3koNzRARGIyfEckWkdLPiZ3cjB4
N2NCQWFXbH5pPj1ZdGl7ZTgyRjlaUCVJCnpHaVhZfWI+NmJLUGExNEU2fWMjfl5YU0VYPUUqcWs7
QEJzMk80U1JjWmpyM1RMeUg1PXl0KF9kSXx5SiVyX15ubQp6MjdtSyppRH1JSSRFbSVFZ19QeT0z
fnU0dypsa1pOSWV5TkZ3TigkZjVrTFVxYFJ4K3JAQnRIVjJmazFUZXg4b0kKel5OeFk9ZSU1RTZv
YWYkPDdWNV5XK1p5ZU9zYyFtNTlgZEl8R1ZtbDdHb056bCtBVjhvSlVZNWhLNztgN0tYR2pNCnop
TUktUzt+Yz1TJWBheGFwcGUjaS14cyR5LWd9Q3MlTFYlVVIwaDElWVZXSV9VbXF+Z1p3KVRIcGJ8
VV5ybjAqUQp6JlglNEkyanA3IWh0NTNMKF5IUVdKXkwqRWRRczh5dVNmMTRoXkFydGs+VGE0amho
PExIc24yUE4kIVVvJXhFUW0KeiZxa348akA9aEooei1eUjFLZ0l5TUoqQzlNaGReVnVxOUc5c0M1
MWxFfExQSj5mZT4/SEp6ejxzIWhYVWF1e3tmCnpuYTtrYSY1YCV2ZHIxayNfaCRPeGV1WTYjPFRL
MGxlT1RvZE9QQEt1em9+IW1lRm1uRj9oQXQtez9yQTJ1UVFAPwp6LTU5Q3R1SU52KDlNKUVZbGwp
dU4/akVDaSohKEV5TlU/T34oP0RzVFhkU21LZCVhQlpna3wmOCtxPXVVYWtKJXQKek1UYDR4VyY4
N0d6MERfSUFpRXVabFUmMnBlJG4kO1JRaSpzWW8pJDFvNlVHLW0zV2AwZHY8LWttZiY2NyVqczU0
Cno3czZsbFZpN3Q4K2MpJVEyVlBzUS1DV1c3bEglKmdpdkAhX1ojMXNIRjZRKEpAX1IxK0Vyd3Jj
aSEwZl5wZU5sYQp6eHUyN1JqVHtZNWZ7JXdKQ1g3Tjw0Yik8fDYqYHlpY1d6MGlxaVcld25kXkMj
JVp+fXxjSCF4biZlWWdsQSFPYEsKej0yPzA3XmlpYEo7RUg4NlhxfjtVRj4hUjFPcUFgXk9zJFhl
JmRiTVghYjxTNzttUl9DeGhAJm1nOFU1NVQzO0ooCnpYWlRsQVl0KDcpWmc5ZDtpLUA9Pz5nbDQt
cUkpJVZGPkhIa0pFP3N+ci0lKFRRR15TeW9namViQ0JeeWFjO2tENwp6V0BPMzBLVytxb09OYC1T
MD1OO05AP1lFdDViPGp4MDlATD9XK09uK252RFJAfDdJZ1Y8KGlFRXdRRHY0ZHxrNTwKejA5akd9
ZG4zU3FeRkR5MEhUd1hifDBua1dSSWI/dihFMnl+MExJcXIxRE81MjQqKlNBdmt3NWZXKi0yPG50
Y0ZVCnoqNmFofHs3PiEhOzlhdjFLcnJQJC1VcEQ5QF9RZV5qV3pvS3IyaVpDMFZ3X1Y+O3cyO3Zq
LXNMWn10RXJnV3IxcQp6aWVNbDNfdHlVLT51RCR7RDZrYWRsdnBnNWlpKG4mbVdocypoSzgxUDww
YnxzX058Ozg+fDVFYGE2QUlNSTQqdX0KekhudkBveVpNRUwjbCp4b2Q4T3MwTUMxZlMjWUJrZlh7
ZX5FWGxaQyE9OyZCUHd6RiopYEE9VkAjYVRCJSVLRzlnCno7LWEodmpmPURYdW8hQWteeChla0BN
ck88MSFVTmhgTmQ8SllJZE9+dWJ1WU8pczVNQXR8ajxJI2NwejBgM1FSbwp6JXRMZiFnckRMcWJ+
VE49WHRiWU92WE9CWTxIJD1Va0deb3hrN3BSWmFeJXd8X0tUKEk+XnBad3kzViM8RUttJlMKenkj
Sl4ocj87V1piN1d1SXpgPlJxNl9gJEByX3kpJXRrMWxlWTxhdzRFTHxXLSNAUSM7aSspZEJEKksy
ayZhNnJ5CnpLUnlMKCgtT1Fkd2RoX05kTzY/d1RhM2Fybio9WUdyJl4tPk1se3NqS0F2bHtpNytD
UVAyV0VNVlFsZjlUbW4kbQp6VX1iVl5KUjloSWpsU2VBeF89Xk55Z3UtZ08tSlpWU0hsTCtwYFJh
VHpzMk1oSEhMPVk4VksmY29Ne3JYezR7dn0KelEqIUg7YWJgdV5IZ3kocCloJnEmZGUmP257Uk10
KFFOI0clMm0wfkB4dHwqXlJzflYjQzJeUDU5akZNUj96Yj91Cno7WX48VjVXJS17R2JffD1gTkZP
aWUjc30hdGRWPz8/dHQ2QChkQ3Jvb2hBTkJBP1g1fEl3S3YpNTY+fiFlck9jRAp6eXRqKHkmN2ww
Q3t5NmhoUkdjTW1PWXlmSngwdGlMQUkhMSlXY3RfJiV7JjwwVndDNC1aaFNoYSk5OThzcFBLMSgK
el4+blQ4UzhLOGpLNE18cD4qJSQra05rTEJWeE1KYG1mcHJNNilXeyFoMXhxWUJzRThOXjVqV3Bp
QlBOSHAtOV5rCnoxNHBDdDNLPnt4dCQmUWxBSjhpcVJJMD5xRTV2OG11bz1lRW5VQmhtQl5pS09h
V2o5LWQ7MyRVaVVSQytzSyV3Xgp6OCZudCROVFRKMz5OYkBaNFdmMnYlTyVBN3laQWdjNHx7bX1l
V3IkaC17dF9uX3dwanpqbTcpTnRHPWNlXzIwI2MKelRseCVzKzEtaDtWR0N9JntANmxSTF9LR2hU
JDRiT05KRlFzaSpTSFhrQTlXRV9UOCVjOWpAQ1Z2ZV9QcEA4UDdtCnp1dXcjY250OU4hdHJBXj41
eFN1JFJuZyY0enxENm9ranI5NTZ8bHUrZz12PVQpcns2Tz9oY2hpeG82Y2tXKWdzJQp6dVdyNygr
Uk4qbSpeVntrN0RLaH1iLW1NNitzO2ljR2RDSWhGalFtZXVBNyFRRSRkTUYpKzMzfSVlTTduOyo2
eDUKenp9RUkzKm8qLWEhdz9JYSlFQzdxWlpFUT5rNWFhQkN6VWtgSHR0TmZGd315dC0qPm17PHwt
VlhzdVgrZU9SLU50CnphcUgoMl51Zno0IUtKPTAlVEdEKmFhZDNucFlqI3woen1EaCtCfitgeWd3
LS1HQ08pVkx3azNHLT1uVHBzVEB4PAp6Jio3SjlUNyNwZURoPSgmI1BjaXsldUFqPHY+UHN+bS0z
UkFOJVh2QGVuaG40JTdDMHxgaVQ+b1RhYDx4KmQzQmUKejNYWE56c0JnYzw7YjZzPVc5RlZWdGsk
KT1Ofn1WOU0xUSNEI01TZDVAX3lxY0RMK25CKD5oPTAtci1BVEQ0VnJ5CnomXkR6YHt4VTIzcGo9
O0pLe0NWUGJtYmtzYFh2P1FXYChgRnRxa1p+d1ZhRkhyPndjKmcyRkA5ZHlBSm5TJjl2JAp6Y0da
WT5KfmJ8U1NXPGt8LSkqejhDKzE0cjFLc0RrYlo8Tyk3MzsxJlNgM1FTWVEqI0ktUEZJLWFPS1JL
TDNicyMKej9nV2ZwPipKUF51PzsxQURTNWhpdVk4d2o2M3ZaMG92JGw9PTUqc3hAcjM9SzAqOGRI
N2FyZyVXU1JzeXdzdVhDCnpKemBaZjhXZWFLSHxtemUhMkdWfC1vay1JdzZ9LWkkJTV2fmM2PTtm
aSk8ZCl6SX1XISpscDZXeTdxWDl8QX4/Kgp6eX5CQWI+fWR6MVR+ams+P2hlV3dLTDhDdGhrQiM4
ZGZxIU11M2o2blIoenYlNyhaWGlBUzJ8fmtrQXEzUlZjIWMKeklpMkhlPXIlS1EjeCpyellBe1By
K0hPZG1LS1Zyei1LWUJIc3pMWl9kNlVkRmZHX21Ob2Bea09TVUMmbm9WU1N7Cnp4I0N9ak4tQk0j
NTZeYTRUcmY1MiVUMSY/UE9uaiE/JjZVQlRyWS1mTHV3Sjt4RmUldnlCc2FZRyNxP2wtfDtMaAp6
RmkpTXxkJDBXQl43aTFOayZ8ejNGYWlvOCp7MH5aSyV3fnUpWXglTVJxaEZ2Rkc5a1YyZm9ILXND
Pz12ditQbyQKendpJVA7akNJP3tuQlNsN25JdzgkXjJxSGYrQF5DS0M5SWJpVl9LZVlXdXRkaypY
JHxuayNwND9OaUA5Z3FzRnZWCnoxa0tibFp5MllucVdRd25ANSojMS1PayNMWG9VZkd7SVBjPlRm
PHkxdzd3YnZrQiYmaFRLOEMhUlcxfWJ5NjwqdAp6Nj8/IVZHKiQxez4tcHxraXJjSSFpdXA1UldX
WkBkLWMwdFVpS3M3KSNtNzJzI35Pfl9tPUFwcm1xVmQyN0lmZk0KeiFfalNYTik9U2hrTUgrMTdi
elcyKmMwK095RiRIXyVfN183dlJ5VG8mfHM2aXtmNW08NykxfXlgK2txM0c3ZURxCnpTdXAhKipO
RHk7b1A1JmpzS0tzVEE9XllKKjMwOEtieWVDPGlHYCo5VzY5R2E9bHQ3Y0BnX2AocDQ8Wm9lUyop
Tgp6bHl5UkJ5SUZJIThMY28kcEB6YnBLMDl9cz9FTWxQN2kyV2g4NjJHVz9WJWktI1A9KHdva3Uh
flkrTjVqT0x3UkgKemg3RWUyKDdXKWQ/ZGVuK05Be0gkcEM5K0FwX2NiRjdkeT8wXno7ajhJYyg5
RkVxbH18Kkhfd2xBcFR1Snl1Jkx1Cno9U0hzal9XRT9jT0xjOC1RQElqOWpEOUFoVkEoN2VuJGpN
MWc9OzlCRXcoRThSSWZQaFNZRHZ0ZWFDX3wkSzNIZQp6UGRNTXtIeV82dWQ4U15sS0E/JT9xVHA3
JTtIaiNoJVUqSjJlNzZsTT14STNKWTVNYT9DbkZyd1A3U2w+YV4tRjcKeitlYWJ0PmdpU08hd0xR
JSRpdXFDRGxecnBMcnJAIWxfJklMX3RjMSomLVdsfER6MmE+ek1Nd2dxbihvT0xZMkEtCnoxeCpL
bnlxY3hEbiVFX19zX30rS0pFVzN0dEEwIWt5Xj5kUnczamNVWEt+aT9VIyQjMmU8ZVJYbyNBbGk1
Kk1YIQp6ZCtvNnc5Oyh3R0pRbHE/LT9FdFpzdz9lYVhWQW9pZGJ9N3AqMEs8a2RjUXhxJkVTUWMh
UkJaMFghbWgyMz5aJnMKej5RX0RMQ3o9JEFpSGRrIztFcTJ4UV9ZfnUpP19GUExOI0JzSUs9WUJS
fVVNTngqaCZmJnJtWGB6O2dIcjZERT5ECnpOPEs/JWE8PiFyejMmQWxSM25eWTlBKCZWNGF9I0Mq
aUElSSlnK3BpNGNVODB4UUBNakdgO2hZeGM5cUQ9ZVhJJQp6SXx9UHtxTk45cFpNe3R+N3lOfktE
cjRLZXs9MiNJU31geH44NGE0Tk5lIThGe3xKPz9mU3FoPl4zK0FNWThIeDgKenNfSjlNZ1coOH50
YXhkXyFHdUEkKGJPd2JrfChTKSl+Y05Wdk1TOVRsJFhsaFI8cT09SmdUKWVOeHB7cCMxWSNOCno8
bFp5elBWdGIqWSFxKHJuQV4hfWR2dDNgfDB0QH5tO1AqJGJ0VjhteClXeDBSZ1Y0fkJ6R19UO09J
Sz9lYio4eQp6dHpLK1hlWWF9JF9GfGBwOGgqRDVEaXdRJllDVyZsN1M/SWAoS2hZO0BgQV42STtV
KV93fmZVMUAxZzgmQzFHeSQKejlXMj17V09zLTl7aW9RNEtSJW87OzxPN3p5QlkkRWJkTXgjZ2hT
Mjlpd2JnPD5zfTczTXAlfkBBaTFXYilfMm5WCno0Q2Q4clBHfV5CVGE8Qk97K212PUxeZ1VwZXdu
Z3pvclN5TjRhYE1SUGZAa180YkJlZGIjTGVTQzQ4VVd4VmNXKAp6X3VFNlU5eSlJaD8yWkBaOV9C
YFF5Yk0xSXtvMWVpZEk8Pz1we2NXU3AweGBZZD1EKFJ5QDc4bFo4KCNHX043K20KelRXOXl0dyEw
YTdkflBYdVkrdVAkKl5yP1g4Kz1jfjx3UWUpM3Y7aWxZZWA+OD53fCl4Xm5HPXMhWTAkYnFjP082
CnpxQmBjLShPPkdtOT1LQHNRbSNvVWFEbChpLUVhNFVXSjtVfng5ZSM4OzdrR1VefUI1d3c3ZlhA
Pml3eik8UWk9ewp6dz53VCROfCk8Q3NpTE5MYD1vekkkKSNVa2thRSYlZXlgYEA5Nmo7enR4MyRH
KWVsckEjKkA7VDlgTCExZUpyYmQKemA2JVhvI2haO08pPSExbENMODNsQkpoVUEla3NYZFQpfjRy
RE17TFhXSCRFMDF+MkV4bDBjM2pleG5sMGkrPWZgCnpeZF4+bzJyPmZMRUllZGZzYCQ9VDh1UWVU
PD48OS0odEM7PyllVXlhazR0eDwhdTxeR3heOUdneG03KD5EZ05mPAp6dD1XJlhedT9HKnh5bkR6
YCtRVjQqT29Kc2NlMVJ6PFdJJHBzPXpXPTRVUHVvciZVUDM3JT1lJnExSiNTdDYhOTAKemtsP21K
TX00ekVRSkdHdm1ATFY4biNxXilWSygzUSlaY0h0bGNee3FIOHE+SF4oNnRRdzhWY3MoLS1zVnlY
bEVECno2cFFscTwxI3w4MlI0MGJsSEpFVXg/cTY0IWdsbDY1ZXhEPkp8QmtiPVpyZnFIPjxvN1FQ
O2NEcFlDakZ7QV5SQQp6Oy0xODRwQiFpSHF+NHBuYWdgQHlLaCU1KXlFSmdGdkUrdTwwS0g3aXo/
Z350KiF3SGd2K3tiY3h0JVlkNkRRUiMKel5FOVd7Ul9hX1N4VEY0OXktP1M7SFIwe0okNCFzTj1S
U3VWPSgkb0JfOVN0R0JWJXlZJXpaPWtyNSVyM0ljc3V2CnpWYWREezNVMFh1ZU4xYzkhbmo9LSRo
Xi1iUSNCO1YhMElwPzxFKzhiX21seF5pKEJANUotMWNQSCVJOU9uQHpTPwp6Un08fjZfPyp8cERH
TGMmQSE2UzMyTCFrfFB4QUZ0UDwwaCokdXZvRjxMY0RzNV9hWTQoZndmYUVSdjREYEt+MEEKekJW
TFotenw8SVIxXjApcXJgKFZFPjhRR1daaHhIYTc8T0VYWCpAfkJra00tKWhzUHJNWTR4SipvJX5t
ZVlXZyQ2Cno7eFAtQylVKSY+Q35pQzFpPU1rc1VIT3pydWlURjdvfWtCNlR9SUt6NjJYbGRueVNq
KyVFUys8Uj8yKzA9dn5eUwp6N1pVZkRoUEB0NT1wVXwoY1Eye2E5Qkh9MlhGc042SGxJfFVRQ1h4
Rj49dWZmWjw2bGIkIVUyUkExaGVKcSs9WkUKenEqM30qT0tleHk2emhZTU9RSTY7d3MjNyUzZCol
bEN4dnZ5d3B3dnBAWWpZbTlzaFdSRkx1O3FubXplfHZ1fkc8CkxEbWY/TyRvbF5QM2VvQmsKCmxp
dGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9y
ZXNvdXJjZXMvaW1hZ2UxLmpwZyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9yZXNvdXJjZXMvaW1h
Z2UxLmpwZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lNTcyMWQ1MGVkMTdkMDBmYTZjODE2ODYxMDYxMWY3YTU4NDc5
ZDYyCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMjI4OQp6Y21lSHJjVF5QMypKY2t4anNsX31R
S0FZRzIyZTVyTilYOU9rZW9CajN8V0dwMnVqWF5NOUNtSTNgcjE+RUo/elUKeigtMCZ9JmFpeyZf
a01mNi1MdCNAP3B4PG4qSGdFaXhfekhwSnZHJlJGPil+alR6TT1sQ2s9bz0wRWgjYDBSUmBYCno7
SiF6MFJefFlwcGE5JGYwMDAtajJheTA2WG9RRVp1UiZMUzsjKzdPNGs4MTw9b1VRe2VZcFcoe2xv
eEoxKX4wbwp6S1o5PWw9QWI9KmN6KHtzTSlUVDFrZX5QfTh1dFdQMGhxdCUmSVBqayFDKnpTNE4h
MSFhKTNHNThVZXNWUlZCSEgKelBaPVBQZGt9N0paWFI9VWF7K1hWTSpPQSVNJj9HYENmcEQrWnBn
aCRNYCNeQ1dCUz1iSTNiKW8wRUMtfE1+R1djCnoyKlM/KjtUR1oqNnlrI2IwR25VSnBHWXo0e0Y0
NlNGTSo4emk4XyQmN1k1T3lCP0FCcytCWVVRMWl+RS17LVhmbgp6WWRHZCNKUUQlPiNsWmw5S0Br
eyNlZU9ucjBRX0haVlZwKyh3U3pHdSFHRyp2IWJyQCZfLVo4OXBTZlV+TmJKOXUKeklUR2hUdXw/
d2sjLXNvY2lUNHt7TDFYO0NlMiZRMUtqVDUpOF9idmJDdz9Bbz9vYGxrSzY+PzFHNSV5N2MkVyhQ
CnppJkg7UHtQaVJEO3JlZXJkTGAzO2AyayVuZkJHLUk9cUNzT0dYQ0srMUxIVVUoaG1MeSN7QkQz
SXNAeXNvZlhaJgp6e3MtcUQ4Wi1XQXkhNykmPDBaIWIyY1BnaTcoSWs4ZD12bmZOQyp2eChHfX56
VG1BcGVoVVdmeDYxfnV2MGJMRCMKenc8UEhIMGxIcTZPUjBiQ3p4JHZxRyUlRz1sYWlBfDB8cz14
ZHxyTXMoRzl4QUxmNlkqNXlzRVFgcSVvUygrM1ZtCnpOQit+VWI7PGpjbkBmOFJLPnMmU3BEJX5k
ZyN9JE4/QGpydUM1PVk2cnMoU050Tih7al56cFlILTJrQUFTJHdGYQp6bGFyJG03bmVQcCk1ejRw
Km9AUH0hSCZ6IyRkUVlPbGJaXz01cUVQbUdPO21wVmxYemR1KEI2citebFYyV1V3KzcKeld6XnpW
Ozh0KnlHUEFVal4/O2VGY19eeHpjLVdXLW5sZyV1Rl5JU2N4IUYwfG5LPkNUeFlebS0hLWQ+TDhH
a3cjCnpMZ1B5XzdiQytAaWokMmY8NUxBPzF9TylhODNSOGpBMTV+PmROJDB8VHVBa3leelhVb28r
I3QqQVlFTnVJYkNAPAp6OWJndCpKYzVGUFQtKj5ZMjs/ckJhVG80eD9ffWg1KkI7TEYkSFBOMnhD
elk0KGFGbGVwNWZBP2srRmxibFBEd2wKeiZjOHlrYk51Vn16dCNTUz14Qi1GWDVmfCV7fG94eDto
emNuR3MpRUN1WDlJZG5DO0pxTy07RFdZfFpTPD80OTZmCnpGMyk4Uz4+UCFwVX1pPz5aQXsoNCFC
Jio8PVlJNEx5Vipre0Nve0FleStQZ083UTc0TFNPMnA/e1VSd2ltfEJeOwp6fDhHY3RxWjdJJHtr
KWVNZGh6fXtodj53Y25oMyQyampoZDBvUE11QHE+JSp8OGdsKVkwanxxent2KjRXZ2k4fjgKeiR1
OG1Gd0hJVWZ4QlEhZGU+M29KMkw4PiF6WnYqOTFPTllKOzZKQkZHa2YlQCF4ZW90MVROTUFIfDBN
XkRoNklvCnpaYV9kJVA2Nn1zWGJrfTNHJDApU093QSVnZ0ZnMFIwMm5rRjtzNz47bl4ld3pMVzNh
Jjs5ajB2eENKNW5HI0t+KQp6KiVBM2Vgc001TEM9MzhzTXNJfiU7SHBVOWNzIzI2Zis8eU88S2k8
d2lWTEl5QDR6NU4wRH18K0NJd3g1TDckYG4KejVFa2ZYYDhmQEowYnpoS3Y5TkopQCRkPUlnYk1V
cUVlSCg4enl4RHFVNHt3ckxYUUtPcSohRChjX2dzT1JnNz5MCnpwO3NaazVveCRna3xtODRze0tF
aGQ1dkx5Yz0qP0BRJlFidlZQKDVAYHdrIWZ6NTQ9IUxRKVNPTnoySH1KeXVpSwp6KEEwWFd0eiUr
cFdeUTM9V2VzPDdjNSF1Y19qdmlyfDgrcCVvNDFpcyhKYEBjQDhUMGFxLVNKaVcje0RQbTZueFAK
elIzZlVYWW5xekJ3NndPaGNYV09tNyN0YyNqKk8xWSZZfFdQN01IIyt1V1c3YT9DJEwhOTNDQkM+
TyNNNntnUT5nCnp7ITtjbz1ee256IW9iNz9XOHoldTAlNXBiM01hK0h5MipvMENaVTMzMVNNeUxf
fktyYmo3VGVLI0FEKUJ7WHQ8Mgp6PiZMJnclczAhamJ0Jnpxdml+ei1lKmFJKHt0RWsjdTVteUwh
MSU4UDZNV2Y2Tzh7ZUhWX3s/ZXRUPWVNKmZAQU4Keip4MHhQPXZCTmRYaGNZV1BrN242S3N5MmJA
X197Z1c4dmRxPE5UIWpVdEtPSChlR3BVN2g/Yis4MiM9PjNNS2BfCnpmbDtMKE87KzU2KnJwOEBf
T2ZuJipJZHRTcHZPaiY8WlRWYEN7bzRnbkkmMHpUWTFgZGZ1aCpkSXViamtZYWs2QAp6eV4hK3Mo
MTdJflorXzliWjtfbzt0ZDFAMUYxQEg4X1dqM29jVnAkWSpGMTZkZGwoO29KPzxlMXRpS1U2ZSNY
SV4Kel5Rc1BabnZJaSZheyZ9UWkqUEhGT3VUKm10PG4rdTgpTFlJWVhmViYkU2E2cUhAb3l+Jmxh
fm1gOGR0YXZXflBtCnp7emxOa1lzMTRRT0pYeFZkI2srI2pVX1BhN15OdF9eOWw3Mk1ZS3ZLaFFt
KEZqb1hfQUBeYGlpNz91YUpKY2Nwewp6Pz4+O2UmaSYkKVZrZjVmeGhhWHhWZiFTRnNwa2pEZjw9
KiNMSE50Q1REMV94NilZbH0waHYwLWxDUl9MbTtuP20Kej1qcTU/Z15vZUYhaG5ZWWV5QGZTd2Y3
eVhmP3dUP2ojWmpXbiFkZjQ4eX0tY1ZBZ35HVmJBKC0xXkdwMS1pSmRkCnpxfWc3b3lvPCohZXop
NkoySVdCM0IkPGBaelJxeWxqQStNJC1vYXgqbW50Rm1VUGkqMjRiM0xlP09YWE5UQ3ZLRwp6OFRN
PWYyRDQoKCttY2FASTNqZER5KmZ1cT1oc3IrdGp+e2Axfil6Njt1djBINkxIfSRwbHw4NnBTb0Bu
TUQ3MFkKenlfVTdebEBUMWwjXnNkT3kzU0xjIzdDPHsjTztmMmloQVl8eVdoeFVyPnBFdzNUbHMo
emUoNFRNKjhAZE48Kmh0Cno0TWZJSGpwTTJHNnt4O1NPVllmNTtnfiY7SmR9XnE+UDErX1QjMUIy
K1FrPio0UH10S0FLOVchRUxrVC1MI3F9awp6Wj97ZHgyVyV9JGFkPVF2cE4peUUkQFhBbGB+WiUz
NERRTD4mSTJEclRTfWh8Z2tBcyErdzktWUAzXmZoWmF2ek0Kek9pLSltS3Q9WnFJOHlYSmN6enpV
UD9VUm4hdHVpY212e1p1eXw5TDxxUVp7YyFRKWB9cCRaWXQ/d1Noc3NKPUIzCnozZnJ6Wnl7bEk9
V29uYyl4U0Akby1DbGNgYHI2RShhK0Vfb2o+bjxhWX57TENZWW9ITyQkMTwycUNsKHxIaT1zQQp6
NSZ3YXlkX3x6TE9DKmV7WjE0aGpke29HO0pDZjdaelJ8XmBWcFBRWFIwRnY4JjlSUVF5RDUxaits
flgqU1V0UEQKeiNDd2FiQXB7OE1QJGtBRGBMVUclOWdweDY1TTBWVktHRXUyOENgQmdUP0xlaVJJ
YCFlUXo9bnI5cGQ4VzYqcEpoCnoxazQtNzB0UzdlPFFGYzAwZDRXI1MtSmNodSN9NncpMiQkdHB8
I0poNFQ7ajdPd207SjNoNzAodTsmXlhUakdIUQp6VUR4VmUjR1owU25hbj9kRV9hO1Q+PXRnJElK
X3ZMQWZzZ3ptST1QIV5IRmlfZyM3SmQ7UlJxcGtKJTM1Y15wfjcKeik7aytTPSlAI1lSSDVDPGRK
dilAUFg1SkJtdjMrM2wqQmpTM3E5I0w8fHdvMyElUj82JDNuLU5VPm5fR0w2Rlp8CnpvJDVFbmMw
eXk2dVklZTl0Y2FKbnozbkQoKigldnJnRW1LPkhfdVk2SkxzQHIzWHJ1bTI8I280dUV5NCQjai1g
ZQp6UytCUz9kPj9wYzl0SH5WKyFHTDIoRyMjfEUrRlZzdF5LYT5yMGl9a3dTYWFxRE1eYkFfMTl4
NHYyO3U1S3NYQFUKejw4ZS1yYVJFPmA0TGVtdEoqbX1WNTk2V3NlY0BCISFQMiU/SiRJYHpOV01N
T0BhYjAjS2xhQDNwR2QmUzA9Vm1SCnpuTH10bmQ9a2dVJmh+cUo7Uy1KazZ7LVFUU0N+K3pwJCUm
dHRJdVheRkQ3KkAzQ1orUz55emFjPkx5X0s0Qj1vQwp6ezRUTEg5JV5IQWVodkZvU2NHYHopPFQl
JWI8d3Q/eG9ZaW1qS2heJTx9dX4qOWpqbmc/aCZlMWswUUYoPmR8XkMKengyYSppJHk5NEI3b00x
NV4xdlUwbnd5N1ZvaSEjYyZJYDtsRl9sOWJhUGA/XlZudm1IVUxAWklLeEsoa3lCZlJTCnpGVTJJ
PWt9PnY8PTc4eUJERUYqM1E8dXJWdUZ7QU9Hb1hrMUw3VD9QR1hUQS1FVjxXXyYmaV44JSlXN3d1
P0NXOQp6bEFSSn4ldEk1PklEUFlSQ3VIbkE9PiFscHJefTchbis0ODtiRkYjWGtGVmBPYm9uTzZn
THx7WSVaK2JoT2d1RUUKenlkfX5ZK3EtYk9CSXs2SztvSnlpVTg3aGtTc0RrZzhyPTFZUXVCOXZL
Sk9hbERKXz5OMiVzVm8/JUxPPip2fihrCnpVSUJOOF98PisxdEo2TWNLbGRFKWVEckY7QSRIQVlX
JTgqK1NIanU+dHBYfWFLTFBqaWwoeW5eRmtOLTs/dVh8fQp6eWYpYjhhWEYpe0s5ZDtMQnY9SUZD
QChKYCFKMV5iTDApMGdSQiFfbylxYWJJVD4wSUZCZT9ZRVM/IXkpO2lCLT8KejNIO15rK3NMcjso
NjJqTldja3dCV2xeOFhNVlYkUS1vPkBYRWAycSNUd2BYPV4wcWEzblg7MmBWa0xYTjQ1azRlCnps
JiQhaj1ee0d9dTxZS1NsV0U2TyRPYille0hpNllnZnBsJDlQVkp+SVh2bEdNRjs0VHdBTzxJWntC
JSN6fThRJQp6NX5uPm9fKHIwR0FrPH1eVng/S1VDbUg0ckAoNVNUV2MybE85MW08YThLM2E3PmNv
QnlsTX05P0ttWCpwYD58S3YKej50V0J0SnM3bjdfN2N3RWlSd3xRa0hfQCsqIylxLSt5a1AmI2I5
VXdoYkpDO3M2UXRgb05kV2orUiVud15kR2N1Cnpyb2whTUFXVmlkOCNNR3dZSGhCQnVPR19qbygo
JTdLWTBxOyZFM2BIa1IjZSMzQUBrSlFHTGpTVjU3Q3M1T0o3JAp6PTM7QSZjJWI7JVRuPH0oRFhS
VTkqQzApT1I+VDtZeURjeEEjXlJjYHwwZCNiXiV6ZzJPcmUpZCNwQj10WUlqNTEKejsxYGt9JDg8
XnRuViFCalRqVldpdVBsX1U5KXR2TyNHYUhecXE0eD5GYHNiMFk/OHt7azx9c0VecDZpX19EcHFa
CnpGJXFMX1ltPU9eZHpHX21HMDB9Wnh2U1FDZXwtKTVFeWhIam1eWU1pcEszWXl5a2FLXyhlZz1L
V01yWWRHVlVPNAp6eU9ld044TW1qTk1mXjJBP2hvdWgzdit1XkBDJGdAa31mfWw8NkMhKlp2V3lf
bSswelUoYTlLVDAhLU08P0lZKzUKemtGZjFxUFo+TG0xSGJTSFElTytxcWFyLUB6biFheVI/TnZa
RkRSdEZWNExSOHclSWFoaj1ERj5sOG5RRVZgVloxCnpLR3dwcmVNeVYyR1oweXNaT1QpbjZNb24k
OD5MdHJeU0h+KkNoNFNTKzw2UnNzQTw7d25va31QKnFmOyV3OzxGbQp6Xig9TTVvZjA0KCZuS0lu
Qms/eWk0I3w2JVcocGU5RnFEP2JWdDtiail4MkpUOG9FMCNCVU1wMUx6JGNpNHdWLTUKeihCZj99
Tmxwd2lQPDgqRm8wVm5Pe1I3I0VyMmFCU20mal50QEhMY1loZXo8VipRNHB2QV4qKG5aeFooY0Zn
e0lfCnpQQDI7b14kNDhpX3UxYHpmPUpAKWtCaU12Zio+MG0lYilYTShfPyg5I2ZrWk9uPG10Uk9D
YEZDclMrbGBqcDxwPQp6P2luOUBVcFYmP1RqXjc4YW5AI2t1V1Q/WV9NNllxaDtyJH1SK1Jocnts
YDtZKTRVNzc2KEsyUGF5O0RvYnxaYUkKek01VW1jS31PMEdnfnVqSD5xPn48NzJOc307PTclfXhg
PGokJmZoSD4rUmptMFFDXiZDPm84JEVBN3hxZSF1dWcxCnooeWdXd1pEQnBlY3dONioxU08oMTVX
JSs1UlZMV2Nsd2FIPGRibiZMPlVreWpOVD1nd3peMkxwKGBgekMoNVdhKgp6Kj5IWSRYPUFzaipY
P3o+YzVwaVJHVVYqbSg/bkJuUm10Mjd5cV4wUVMwZlBod3taYVNUM1JmQHIrflhpRnpLPkIKemZ0
RHpkZjlua1B6ND5yPypZcG5od1I0e3tZaXs9bSpXYDQjRFZMK25DK2d7d14kV24kWEQ+JlY8bEBf
NXpabERNCnpISEhHfkF7bnZkIypxWURySUt+QmM7R1B6ZCZ+aExPbStXJDY3RzJEQ21Efj9uek14
Wm4tVSFMYHBGMHRqKktWJAp6VXF4RFJ2VXRiMEtlREkxeEIjeEtvNHNjMyRKMVN1eHFFO09qUzVZ
NVN+dGlYbWBqdyhaNjhER15+U19MZGJ1PUkKem1ocDEjZFZzaSNIPEl+cmx7NTwhQXdvIThRQ2lS
MiQwb1VEVUhPSWV7PFIobkhYM0FQX203bTsqYUxEWT1UdzgtCnoqVUdlTTBjUkZJYWlhT310QTV5
NWxodyY2NCklOHUmQkA9UllGdDhDa0h1WU92M0dXdjQ1bFlDVD5xTlV6dzR5NAp6QUoxLTF1PDk7
I0E5Qj04TCpqdVRGMGtMcW14MD1wYmFaRyhsWld6bGRsdkkwc1p0Zip1ekJ8QytJSzNEVDYrJSsK
ekMhNFMxbk0mQShKU0A7cmFAYDJnS28/KCNYdGA+ZmFkZU0yeDdqQUxGOXtqSF9iTSlwM0NAKCRP
d1hmNSFeI15QCnpLWFkpXlp3REd1e0lPbz1qU05TbDk2PFZjMkg4b0hYVmF2ekZtMHtHbjl7S1Mr
TCQqS3hBJndYXjgmIXJkZG9uXwp6Slk+RnxJY0JPfFFiaWgzNzFjQjBRYUV3e3N2JmNua25zaGV3
V1lvbXI5aUoqYVJJenJxdCk9TjlCc3leYjNNKCYKekUxWkFWJThXQX45NX0oI1djb3VyNDAoaj91
fGhTRi02N1FGNmxzfEJOZV9FUitEeENicEZNdjFYelBrKj14UyVwCnoxS3ZlPFEkclVwP2FyfT0k
Tl5gcnFNe1dtKVc+dkBafXRBUWE8TVE0JCFHQkIxb2lsdTQjSFJEIUVAPFJJenhBXwp6WCZWaHpm
Q05Mbjt0cEk+Z0AoKERtYkpMaTc/MmpkejRqY3BlVD85N0J1JTZNTl8/WkE+a0h6OWFDcC1NJURm
R3AKej88XiYkUXx5bUlgc3hscmsyRWFIM3RWaHlofFRFVCVTdWJDUWRIZkdIZCFPR3Q7VHo5SDQ4
VGBgfDg9eyQzPWlgCnpBTUpveGtTe31fJWlVMUA4fEY3ZS1gQ2hweWRTWmZYbEMwOyp9VlZCSWtx
KGFEa2lzREUzSTN7OFQmdndvc0x8YQp6SldXT1ZaUSlQLWQmb3VzUlooKTQ3ejNFQFF+LU0kQzVu
bkojczdKZ057PXVadUtsWU10dVc2VVp5MGBmNTtNdDgKelpPO2FENDE5VntpSHtBYkNITDJ4Syti
RC0lUkhtS3p2JChIQzJtQiQhSDZPeG1OZzNYU28pUyFPaF9scWVlYjAyCnppZj1OPmxUQ1lJS2xm
QF8tNi1AXz81JkspX1NCTnN5TGMrbGQmfHZwV1clP1ZsYSE8SERLWW8wRTd4YzQ7VTNrbAp6aS1J
ej8/SmpfJkBWckY9LWl2fGI+bTJFellTWFVqbGBuZ315RSZzS2JnREJrJWVENFRaeVpVQWhhQHhr
RzNeSUUKemxsU1pXKVpfQC1ITCN2fmlPU2Yten5nZnlFSCY0Qll0JEs8Q2o+WHA3S3grQk0+LVdQ
ZFR6SEV1QE98JCVOPW5DCnpOU2koTE9NQVZxeVh7NCFgSjdyViQjZVZ9Nl9qZD5rUjNWd19RIzEm
PXJJSGwyaFcoNnBiU2ptb1JvcW1eWD9ZQgp6Xlg1QkwpZURfbDlIbkV1TUpJK3I0JHooMVA/LXIt
K2BxMFU5cjVMeEdlPVZZY1VMaXI5fUNMezsqU1JPR2A3PiQKekNDant9dlFiYXRkPGc0RWNeSCs1
bVRPWk1aKSo5fGp0byY3eWdlc09Cd15EcWJIJkg2S2BwWFhLQyl7Pl4lQ2tTCnotUW1uUDRXZlI5
SjN2XiVSJj5QUSFOS3BMR2BjT25BKFd7fUBgeCMtPmhTdUhGLUtRUmVWejdgMzh8Wk9DS1JvMwp6
Qjtga352LWVgT292YEFHeWxeZGMqMm04WTdlQnBsM3pNeGpfWnZQUSoyfjVrbWVfdlRPSXVZU3Rm
eDd3IVBDT3cKejkoM21MNzF2T19iflJ6aTtZIUA2R1hDSXt5Qn5USmlZQEBOTz5COS0kVlReXlhK
eWk8KlkmfFBPRnQ7T2x9PkpICnp6WTRqI0hffFJtX3BGMXlkbTRlPEVoLV51TFVjfjRAeWRRP2xJ
OHgwPEtmeT4tVDJ3NGI0PyM0M1Zyc3RlMVNRfAp6Z2d+Jk0qVDJ4bU93XnBlSkdzYk1QUnNaamQ5
ZCZKZk93eyg3fFU2TGh8LTdVSUlVN1NKNzxkMm9pRHxleFBhLXIKeiowTlFpcX5yJmBqbnR8fkok
U1Q0P3VadW9vUHR4TElqVzMhNlBIcClrTkZLMEslKFE2cj1IfXRFMD9aUXNQWW5GCnp2VTREaEYr
NURrOUE0WDZyTVdAdWopUzBvSm1Ed2Y5LShuaDJDPX1SZ21XXm9gJSR6WHZ+Wmc0RW1BaTU0aEct
bAp6RlImN2hCVyNncCVJIyYzUkFrPj41dCZ4K1VwRHZqJFg+VmJNdV9ibW4mQ3Z2NTwkMk5ZOTUj
ZDV8PFZWTSN5QSgKeno7Xk0wQldPanV3OWdIY0MlTjVLRzBKYWNrcVZLTmFqdWloN0dSMXwyMUQp
I0s9OFZMRHN0ZitWeDdISC12WmZSCnpsTkg3TVUwfSYtQF5HTG5tNFJuVHhTQUA8QDNTMnshald4
cCNZJEZWcTgtRkFMcTEkKD4hajxiWXA8ISZ0NS1pJgp6eyt7WGxgdm84IyFYKGIjcWE3K3s7TmpB
QzBvVyhLbCk0eF41PFlRdzlCKH1OK2BMbWNzJnZORzVPc1FAYFJlKmAKekRmeHx3WFp8WUgmdzQx
QSRMVDZ8cTdFSDIlVU1GfGlpXlZeZShpKjxKaW9PUndXK34wVX5lcEB4ZzdiKG9WX345CnoxOXBg
Vnh1VmpXa25QVTJGaXJmWmIqa14hT14mY3Amb3BjdiMjQEVUIykjR1FpNkpDJkMtRm4jcmFLSVY2
YGxKVgp6K0BxZTxwT0MmO1F5V01YJUBabEw2RSpPKmhYMmd2eCpPQnIyRXVsUGFZc3pLSWJrX0Zg
SX0zMEw+SUAwKCRiZT0Kelp7PDk0UjRRSkE3SzwzQFlUWl4oXkpYbD5vfj1LUCpJSWJnV0YjWFRo
RDBKT0pvbH4jb2wzc01vYC1OY2BuekokCno+eUk0ZCtufWFOOElORWhvWX49RiNQVEx0QEUtUFJe
Q0tAeW59KVAjbjYxYTYrfihyKiY5UTlkJEdXbHNTcjVEMAp6UFgjdSQ3PkF2b0pDXiFidD43KTdF
YUlHR21Vb0xWRC1QY3tyTHVIfnJ9ViZyamlXMz5sJTlBKjRWUm0yVD51ZGcKemNaMkotWmBTcWx4
JmdzaHdELXZtd0o9dX5SQzVjODx8VWlWcXMjUzNkPU9qNno9QmNaQWRRKzNuQnU1QUQlOTJJCnp2
eUN5PStiUW1mVFVxRHF1Ul4pPTc5cTVGQjhVTVJ0IX5zRFRfVXIzWX0wTnk8WklRRDdyYTtFaUlf
bGZSWjx6Ugp6Xm1gIWV4Z292RXEyXlJDVj1nPTJgeDVucV9+eXh3SDdeNkp0K0ZxfTxBfV9wcmZ+
Y2BHbmtDJCRyJT0wT3pnMVIKendhfTg+PmJ9YnJza15nSFMwJFRXTVY3I2I7WDFNRDc5cmp7WXhQ
PmhDdD9QNSM2b0I2P0Uxc3k8MEUhPDFAQF5gCnpOc0djMXRYO1FTZ2BtMnlyVWxpUVN1QFQ2aSgj
SG4tMiZ9NiMrb2ozeTx9dDBfVktELSM0d2BWaWNDMzZkMkw3VQp6UEhMI2NYQVlzb3M/VVdZMXpW
ZUg7WURtK2k2b0VMUEgmU2Q8U3pITS1DXnt+bUNxOyVwcTN8JlVsT1ktZTB2ekwKeihtWk1uWWJO
UGRKdCNUMG4+fSVVYEZNY3doPXNze0VXPXtIUlQramBffnhCZyVTMlopZmtuPjJNPntedWlwcm8o
CnojP1FXYkxYUFJYMXVzVX50S2EzNWt1UmNyNGROQn1IalkhfDZtKUw2UGBPLWRCJE5AWiFkWDJQ
SlhXalVxSn0qPAp6bkhvJWtgZHRzbDtmd2J3WGFAKUBwUHpXeVQ+RUdAWGxnQzt0LUJVaHM4UzAk
PVFyc1YtfDI3WU1KY3l4MWJxRlQKej1kSiQ4VmVXdX1EezdQZVkpN3s1VnJWYUAwb1AzdkhzJFN+
KntTISF7TjhHRipiYDBCcktTcjJHLT5CdiQ4U3NuCnorRl9ndGhLfClpTlhFMXRqJTBjOUQhO3l9
N3VtYjtkWlBLVEI7b3RvMXo9ZihxZmpCR3BVVFluTHxCSGx4NURjIwp6MlFrMHVsM2NRYGBYdjlZ
JkwjQ311byQpQ2VUQjRBeVhZOG9odVk9ZnJBK3ZOY3YrbVVnPGtCYzd4Qn5UdkREWTEKeilpYzRH
WERPfUk3PHZ3XjEld3M/MVdaTiY0V2p3eFUzMEZsM2ltKFE5Sl9+JEVqXzlsRkRMUGkyfmpGJil3
RGBiCnp0MnhNVXJ8NFpQbihkZk41Vm9gNT0oYWMyKjUlSkpybEN0JnpyREd2YH1HMVNISm9OP3Nq
clhkZTBsYCFoKWhxKAp6ZXRldmFZXmtCPipRXntgR3NxPjNkcHZ6PlcrXiRRajR0MVpIP0xXUW5E
VyV1Nnd9YXw/SWU5d2pZSXpxTnNPZ3MKemJ7RDU8Wi05TSs4TGpiaypDMChxXkp8e1VpQ30rSm40
fVZkcU88I2k9ZGg8UXp6TVAqYyV9RldDM2AzXzFaUV5ICnpBWUYyQ0BfZV57b2ZzSHJne35mSk05
MFZ3d2g5Y3pMJSFpbWM7I3ZHVVAqSiFqbSVmKysrWG9GbkQqe1g3ViYrTwp6R09BWE58SjAmdVZx
e0diY2RrMDk7VDBXIWdfaWElZG5VRFp2bEliJklJbk07d19rJSFUQH5XV0c+PDhyTUtgaksKeiN5
bz1uUGZJVk53QnlBSWlrYH5eaUNCPlFxUn1BSWZINk4pVVlVJndYPV9mUVhrakt6O0BwSWpGMHpl
fDs/cjB4CnpwJUM3VyVwXyhEKVQ5U2RIIXxQN24wPyM2QjYkSVBfSlNMZldlcy1eNGEqdmFpK19k
UkkyfURgQGlhUDcldTJDPgp6JiN1Ykw2SWZFRl5SQEA9VG9JPHhkfXBobVEmcDh3PEY5VyRuRWFs
ZXYhYmdmPSFXQX1sT19FWiFLNzxtTX0tNWsKemJ2YHkqKG1+ZWs4XnpaQlJpaG51Z3l8ZyZiYXE8
YThgKypNd3hLX3NvWjVfZDw0TXNUZ3pRJDBhZCg1TUM8I05lCnpMJW5RUGNyP3JpZDZofn4ke0N5
QXk8P3g8Q1k3Y0ljP0VyUFNzIW5jKmUmMjc2STFtenlsUFUmYCZuI0ExN3U3PAp6OXReSDdkMFda
TS1YblZ5S20hdzsqSj44cjtUXlVBbENlUnZNLWE4UXBIKmgpOCUmIztPQUQ4NCpobk42Nm5fNGsK
ei1he1hVKl83X1ZgTU5RR1A3fjh3I15kZkM0LURiczltUjNCeW1OJkk4Y2RHTyFoI3lCIURsM2cx
RT18Njh8WGg3CnpAM3pDZjVrMn5nO1h7MU8zJjA3M0JaTUhCRDRzMilJZ3t0WmgoODZMKWJgODc4
RV5oWXRETmFwLXpQfStzNzVQZAp6TzVlUzxnQGghMkZWaUQ2PlhXIVl2SGx6QUdka1UyOF50amxI
NilYSF5NaFY1YyFqZCs2SjNCMFM/eX5qRjM7MncKentEUl9+UDJ7MXF2c0h8XnpYVElKISh5PSlq
PGhWS2J3MU5nWUJGPDcjaCUxQjNDcm5HQCtoeG9gRT5oQExpd3dDCnpkd2EwcUYkVExrczw/dVVx
N1ItUF8rO2EqR2tkTUZBRCRffkBGVkdtQE9qZ248WiZBcGxJdTQ2LWYpUnJlSlBRdQp6TmsoMG8j
NjhPOHg3ITBuPzhVTTJXfk4kOzB3Y0wlREIxd3F5PEY3UilyWVNtU1J4TExBOS0/YVg0e00ydjYr
TDYKejRJRiRGOzRzX20rWiVVeXF0NkBRYUg/MkBkMjNiPUwwSHtPRTN2TXBuNmxOQFIoWnljK2wx
WG9iclVPJGw0fGBKCnp1OClWN09wJTNXIWw0cE5zaDdJV1YzTU1IOXZ5RHU7VGNsR0RRST1pZTtm
aHF2V2IzRGwyfXozWGpJU3FrJCoheQp6bVhVbkhNczROcHtyJGtMazU5ZmRYWkE/OCl5WUxxMkFe
QU83bHlYJiN9OH1XYjxiI0IraCFNUGZmbEU+Rjw4OUQKem5XYDUofEF1Z0ozRiZ4YkVITUV2eFlE
bTMpNVZ4TTMoTSVYRnFZbjhVZi1qd1p3Tjh8ek9iIW44RH5LSGIlNz1BCnpLKHVJYEoqKWsjZWZq
JVU3flZ+P2htUHE4dWBgPGBwSWAlVzRvfE9xc3s8aD9TV2JFUURCSFdiZTJlVml4P0Jndwp6P1V4
JTkpa05kJHQmVFFWZGFzc0U7JTI7NkVqP3t7aEQ2WmY5KD1Vd1lhQj1eJiEmYylCVWwjYE4oeUtp
UXdUcC0KekB7fHtNJlVvMjtfWmdpVkhRKU5zbmF9IXQ5VExnd1MlcClgelVYfEAxNEMlR0dXZzc5
bTFOWUs8YkkxIzZvcT9UCnpoYDcoeGspcz45bEd3WkFZNTlzIykmTHxFWndLeHFFQDdtYmt5dFZW
WiojRUtAVkNPWGppYD5obkl5cSVsNkBrTwp6Vj8zNko/Yz9UI3IpRm87Z3dkOCN5SnxwKCtONzx+
cjVKajUkRjlSNms9TCZFYFItQX08OUc+UkRhVGskQU5Ad0wKenRnQEBEJlExblJNal4jUjxQejty
QjBGSV5afD5VYV48fkdiX2hRblc0dFNRRmVLfXBlMEp2PW4tRnA/YGlqIU9pCnolb2prdGAwPnkr
UX5DPyE0QkpfcGgmVlVZIU9QVzc8Y1l7alhoN1JpdDQmPChTcSU5NGIyfGxRPHRmWE0oS3hPRgp6
NXZZT2ZrMmE9NkwtNSZ9aGd1fDBWelI3bWdyMyttU3lCen0rciQ7dmMxS0R3R05seXBDZTA/U1Nw
UWt+OWE2NE0KelNuM2p4PD49T0NoJTtRd0MybjRIZ1FLKHElZkVjVHVkMzxNJWB4YVdIOVgyNyk3
RTY3Z3otdj90SGF+fmVTazsyCnpTe0lXPU41ZmAxbSNYbFlQMm5EIWxCVkBVWmpxfnx4N3lTeFhs
byY9TT5fMHc4MikhUEkwWXNRMEs5M0N7T30pZgp6dEBuJmpjRXNtV2k9MGl2OXw/RzlqIzJhPi1p
PVppKDgtcz8xfmtGJnU/IW53bTNTVlNWQ3RMa3U3KGt6KFJtdVYKekh4eSpOVSE3Pn5NVCUzSntr
WWQpY2FvbjNJaWZNRnpFKTVuT2A/alU+ZVg8Z0MjdzFTeyY9aUJkLSt0eG93TE1VCnooTl5+IW58
KGg4OVFnemgoV0lDNVVQck57d00+RklwfDl3NUk7KCFUelVDfkF3QTNWZ0l3S2c2TWVIYj1VIVdl
JQp6a208VClTSUV5aTY/a2VJK3ZONmN5aVNYdWpNO1dUcnU+RD4xMjs8ZzVHbEdPSURSUkxye2VR
Tj5TfCpUQylDeSUKemAjJFVIdGp2b2RTQ0p7fGZnM1hQeWwyckNTPWdkMnJoMTtGaHdkPVglKVcx
d19jNE8yRmxqV1N4MWhvOT8jP3VNCnpqU15nU3ItMkZWd0dPPDVUUVVKR3ZCcjVQaj9AaFh3UFJX
UkxteXRSJFhNWXxeZ0kpZWdZbTQkPFF5WWM2dGhvKwp6KyVWKj1TWm9CWncxQnlyaUx4NyUmT2Rv
TzloT08jX1YyQUxjN0FPZy1YRE9wSG9CU09QPlN0K3BWe0lgKUhPOXkKelJXNEUoZWNKQTQrP3xN
I3phMnwzeE9LWF4/bFk9NlZtR3twdEQmamNCK0doRW47bHk1VzFDNl5BeFRsKCl9YDB0CnpPMChx
fkkmX1M4YSFaQ1ZmdzsmYGhwfX5ASWRjNmRSJHxjYkVmMEJndUNPaE84PmRGZXpLQ2JpJFdjNXJX
PSlDVAp6aH1XTU04eylGR2NweUc/Yzg0fmJwZ0w1Z2kqfEJIXk5MfmtEVEchMV4lQktTdFpQK0Y0
VXQ2ME5pOCYtcyVySWcKemQ2Y2NfZnpzM2t1JlBvRXJJekl3eT9KakJlRWU8cVpla15GM28he2E2
b29Ad1ZAaHxsJm98TXIzY1VjbEYyRFRGCnpAWTE7ZitnLX5lX30pVyV1Xit5WVQ9WDVkOWIrLSl0
U1ctdUM4Znp1Q1o8QypsIzRsMSElM0t2dDApV3xXXk4wYwp6PlRZYTI1RG1CaEBAaX1jMklub2Bn
WUNVWXM2Qz5WSDdnMTJBQjtkXyo+YzFVJk1QIUhASEUtKnJUZnwmOys4Y3YKeiMobkdqckY9Smwt
MnhQK1Urd2N5MDgyNCVeK2tpNG5vS3lhVXd2akEwP3t6NW9iQD04ZmFYV0dpPXpfNT96KWx8Cnpv
MVpDYDJoS3xOX3lzVmVMbHRGPEB9SjY+Uy0xQ3NwN1ptWEIpJCZrYFFtPilULWN9ZmMjdDYrOH0h
ST9ycFJTNAp6U0l1eGopP3taNV54bUd4ZFZhIXx0Kz88MEo8PmlTalpsd0RwQm1CSjc3YUhsazw7
M0crcklaMnVsdXNXaSRvKE4Kejkma2Z7NHdvMGF1XyYtVyFBI159NDR0e3okX35kMz44eihqI2lK
IVklMms0R3BTJVUjQjJ9UkkpQHIjfTNGcFM/CnpYfTlaODM8b1hWaHw+cDIxKWw4clVGQkZPbX0m
OXZ2MUFSYlBvMyl7R0hXOERZdSUlKzhMPGdWdXIqe2wma1JLOwp6eEs9SURMcHo4OUlOQ3AtcUNX
fndVUmYmZWp5fl9jKTtpdlpKLWh6LU1EeFFKKmBWZXNkTiZgQjJMOER5NCh7dVkKem1eblQqc01N
bU42a2k9JU8/fXxvbFk4NGIwZ3A3THFuTn58Ji0xM1FYQTxGIWFxSig/SHgrUyFnSGFDNV5MeDNu
Cnp3X0NZJj9KPUYodll4OU8/RXtXRFJHUS1sZDl2SDs4PEBOX2hXcClhX047SFQyfH12ajJjZVFl
VHR5RHExemEyPwp6X0tMRnVZMXk3X19fOTRwdytITVBARjVVS2FXeiM4S2EyKDBUT2B6PEVPKFNY
czMyJVMrWHgwUCVrMndiXmkyR0MKTEZKM3EyVilUQ2lTUCRudgoKbGl0ZXJhbCAwCkhjbVY/ZDAw
MDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3Jlc291cmNlcy9pbWFnZTIu
anBnIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3Jlc291cmNlcy9pbWFnZTIuanBnCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjkyMDAxMmVlMTExOTMzODEwMTY0NjkxZWU4YzI4ZjIzNmMxZDhkN2IKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDQ4MDEKemNtYlZOY3w0U0JgK3NJKDVRZF9MWDYmKysjQEtnfl59R21LNTwy
IVpqTlBhdDZeU3ErOUVQJSNZPkJ+eWp0WWFxCnppODNOdl9LX2BIaFlyNi1tVUkzJWZCZkZ9cDNu
N00tfWAjTF93YClnZHo8YVA/R2I+KE5ZNzlZZkl0OE0weygjUQp6UTVhUD4lK24xM2pFdzxGMDA1
Vyg3Nj1sNmZgfVFrK1lwWVFTUkJOT2tpITVCXmJtaiVlRERHY0tRUkUqSyNte2EKei15ITBBOTU0
ZSE9STI8RDROeEp0cE9fMjg5V2tCJmR+ZlYldG1yPDU4RzxwdSplfVIwenxZNEtJQlJaZGMtQlMk
CnpoZn1+fHV+LT41SCNhNUZnR2s7KiQ8ZlViPnh7KkBWc1EjUGN+MCZvK3gwa1VvVXt5cCFeKzYw
VjNrI0hAJlkpbAp6aW1iQVY5MVp9KVplO0VrM2F6PTNlU20rRDc1Y21BU2d+Q1UhMm0hSzAzZzhK
YTRaZ29PQGkkVWZLcnAtMlk0VkUKenZkZSkmVjMxXyFMQ3lzdDFZcF4lMyVYQUhKSEFiWD9aO3NW
QkshYSZpNDZOPVZhSkchMmJpQ1RfYDViRCg7bnNvCnowMyExcTxeVkN2MGJoKUdgKTU3aXdfJkdx
X3ZARnpWc2p5VGR+bmZvcTVHMiM8bVNRLWFRWStlZ0ZNUVFqX3ZXbQp6aDBOUXsxS0M7cXlqe0lK
OHdrayVONnZpYzkpQmtlYHYtO308a1plKipvJlY0SWdKMHt7Nmt+QHpRJnpBYHg8dkoKeiVSbCg2
ZWA1ZlU7fDVAQ0RqPGEmRz1fZyRgRzFSbi0yRns+Nn5xRmRVRTE/ViZ9KUlWKHteTzskTV5iPkJA
bm8xCnpUaiZfPj57dFFOY0p8Nm9DZz8hVjBOVHowZnx+NX5jaD9AQUkjPik/XzBQRVZQSkRNPmNI
JWh6fEdeeTlmTnctVwp6K3hhZVAqS14obnkkZmlCLVRwcTh0ejw2X0lzbWRnME8kWnJqRW8zSTF8
fGRvIU9ZQ1chcGc8UWRndUA8JiozOVQKekUofFh9QUJHbz03NyZwWjZBKEhuajdFenFOfVI7WCRq
UW1eaXoleHM7bmJ2TTwjMFBtQWs1Nm50Y09AcFktfWk7CnpBWCpValUkXlo+ZlJoUEcyWGJLJEFw
cHQ9ZnBKMiVuP1EqR2dhUHVpP2JOJXxBVyNeYmZmMiNQJXlJfU1raW5ZPAp6MClzKX1GYWAhVnhI
T1FmO0NsZWgkIzdVdU13e2A3bklsMzcmeE1PaGUjaih6cnM1VTFgVElvP1MqTCYtJXEmTmIKenA/
RypqUGwkPDJOWHA0OENATHdkPSR6SG4oPkV8UXZOJiZQV28+aTgqNGYzPyZFM1AoRD07V0hCczQ2
WDVQa0YzCno/VT5qKmFtMUFTc2M4Pz1HY3E2TDxyZnFfZXAyLUdkMVYjM3h+NykkO2BOKVI8YCF5
ZVRZR29VaG1YQ3F6RUF6NQp6VSZoOEtDYTAhbj11NiswUzYwezd6eUc8aHFZRkYoeVJ5TE56dnwp
eWJ3U345NyN5KnEzanooQDV6WXhgNVJfcCYKenRaanlIIzIqcERNS04pbU5xJClJaWRrNkplMzlF
Sjs2Mk14NXhHJihyNSROTW1IcSNPLVQwckI5U0hrZFMza2ZDCnoxMi1gemoxJGxWPSg0fFBqb297
aGt3PUNqOUk5Izs0RH4kWTlxdmFFJSp8N0BxV2h5N1RPPTQlKWYycktWYjdwUgp6aTNIN1RqR2pS
dTZpVUc3KnhIUzcmYntJYW4hRzM1ZUh9VDxTSCskK0M2e2xlNiY8SkM+Q3EqM08lNT5vcXVjRGUK
ejF4SjFHb0wydEtGYTdCKXV3a3dTPHc3YTk+cktvM2xeaEVOKHZkMkBWUjwzIWw0KklFSWI4d0FS
KmtCUlQhZWRuCnpsdlpCTmxZSG5fUnBeJSNqcjtESUEqY291Uyo8dyhlU0NOSFhaSil+eE4zcG0j
YH1kSVB0LURqR1hefGRffSZ9Vwp6ZURBWVUzWllacWEra1dVZVErTyZVbU5NKzIlaTEzZDtMcEZj
fTtLcHozaUUmc1hJbVhETyhMdTh5fDg4anhCTCgKemRWSlBMJD9HMT0rTyUqKDJUaFIpPTtXX341
PU42JSpNeHQhYF9VVDdAfCt9RypKOyFlJHVpfF49UHM1PighZDF7CnoyeTwoK0FNMztELUhRIU5i
TD9nSyFEZ2dwQilnVG5iJUp0KjZqTEI9WGZgKkxeREcrYUB4SiU7b2x+dE1PPn1qLQp6PHI0UUBO
U2NkU2Y5O29YZTk4QHBsSkEoWHFBKEJhVEZMd3wrdmgkYGJgaGp1K2laQyR5LVRaWXN+ekVeWmc3
cTsKenhkZyNaY0dJelFpKkc0aiNxUms5cEhDe0tEb3lMS2dsNUkkbThtV31JUVN+V3lHRzM+ZDBk
PTFQa2RnRE0wTDA9CnomWmA/KVEwVXJKbjZPNjFWfFRRNUR4MV4xOGt9U1d0amp4SUY/QDExbSR+
TXVtI0EpOUwxMiMjKG50fWlLSEdWdQp6eHJQb0FIQzQ7WnhaKVNxO0ZSeno7KlROJlh+Tk5+Z2c/
fUFyb0ZYaW1zJj4pWU5pU2lALUFXWUs4YXpOSjM2Wk8Kekw4WUBRUFFPZkNqVjRYUF4kZElYJHle
Tl53YHsjKVRHO3dAJHAzZ15EWWBebmxLO0BIJV5GdDdURkljUDR6VjRFCnpQMWpVdjhTKjl6T1c5
bCNhJGVIfiZ9cWQ5aExscj1MX0BvPWN0dUQrYWFWOEFIc0JkPFVLT0RDPmNNY1NQa1hjVAp6WSkz
JW4jNDdYZz07YllMbiRARFU5QGtqc3MhRHthY2lyMHtsMm5NdEt6RylmQjNfenphMXJyJSNAOyV7
YEF9WUMKelo5bCVUUlFXdjlmSDB8XmNEbmFPZndRJVZTYkJab0YkdG1TdVBhbyFIe3B6MCh3ZSo8
RGJRYztwclkhK1VwND5nCnpFeWRAfFF1fU1UZUJYcDlwUE4oYWd3cXIkRnt6WCZmZ0J1NUJ2Z3pI
RDN0fDZNVH1xUm5iN0FpPkdUWlIkVWtANAp6YmZVYWA9Sn5iME9EUk5NQmBmJWV7eUV2NnhFVkZ3
ZntQYW9kQyR9X1c0dVdldmR4SVF6VGthNlomI0BAJEFKOD0KemRMdDY4YXhLYnBtUzZpWC1ufCo0
UEZTK2ZVQSktRj5pYS1nRyNxWk5UNn49RGs9djwkaFgrR2ZvMih9MUFkTCZvCnpoPXlCSVN7Tkx3
QyhIK3Mmfm0tOStoZjFGMzJ5X1h8N2tsX3lBX1A4d05lc3FtbU99ZnQ5ZUdMeT9YX0opR2lubgp6
bXNWb195RSQ3XnUkWDQme2ZaeHZzVjJSRlZ5Qkt3e25abjl5QD8qNmpVTE57U3F4UDZReC1UVnI8
Zz4+I053dF4Kelh0TCQwNW1ufGcqQ1RxKiVWKGJiYUJXdGBaTD1oPk1US15uazlUQVJVY3NZak9Q
NzlASGpnSkV4IT82YSopKzw2CnpoNlpVbWtVIW49bHRQV3h4Ui1kbXReNmVsendGYzJhZTtFPkI0
eCRHX18rPXl7fS1adlVlUWAxVUcwSnFfOz4ydgp6VyY3NDVSTWgkSXtSS0Q4Q0tLYnBqWEk8WDdU
PVJPbHBJb3hMbCYpO2c8OWorPUMxcWFXdjxZUkV0RVpIKSFCMHoKelRpSEh6Wk1EKis+aW05I2Ao
S3JjVXpBTGczXysrbEUwP3teM00hWkhvMjV8MGh7byQ5JmJLYnZQTF5qS3kxO0hnCnpFJTVVJHtv
TnUzJlhIRldYZ0JuakJCO2o3dytkYzlzcWFNbytUPm9qZEZufj8/SmRFbSoqUy0lYldWVH50NGJx
Jgp6emxQbD9WTD5keFRGV25AYG1pIW9xdFVkLUl2PlhDVH1ISDcrIXF4MlF9S3M2dEVMS3FOd048
ViZwbTd2STEpV1gKejtmZHU7PjM8PHEzS2V5MG0jaUNDXkVhSCF2Vkl6LSRIanwtYSpjMFRyPThJ
O1oxZj8tdHEheEQ9cnwxM244NV92Cnp5cmJ8WV9gejdpNFgjJDRRJUgzaWNZeyttJHZ5IVJfeU1e
UjUkc0FBVkl1aDUlVXR9cktaTkB1WFZUUk9ZcTI1Pgp6P09TcVJaPmBQSCEmS3x9Xm97dEV2QCVB
R2ctRH48Sj9EPnEqS1QzdnU2I1FGc1lkJWtyZXdePShpWig7dn4jSzcKejluVXIpRVM7d0EjY2BB
aXJXcTljbHUoKWMqb2N3ZiVwR3BwRjhrZmU7bCtmSDBtaVVKbUJ1REZBPnktZ1NKX2g9CnpoM2V8
MkdAT2dSR04+QTgmeV5Ke0pkLShqYHNMKl9YN1F8Skptc2RHdH1zJSh3YWpxWGk0KnB4YGw4WXpa
RClwfgp6cU8hZ2BRJHM2RSQzXihnNGJgfiZSfWh1UTNjP2ZVITUxeFZlZlpxNGxGd0hmKlo4cT1U
bzFBKGBLazh1SSZPU1EKeitRaj5xckR9Yn1mWkFsO2ZLa1JmYSkkUzd5bDx+aSpJLXV4QS0zfX5l
eCtQdChlfV5HVG07JT5sYV5tR2E/ZTJICnpNeSlJNUx6bWB+UGN6d2E/MiQ4MW5VbHs9ayRYfVJQ
MkNIPEF9ZnROQzVPXzQ3PTwtJjE/eV48Vjw+Uzs2N0c9NQp6aEk/IWc+XkRnY2k5WSRpZSZzMF9k
VllMVGl4S3lfO2pYRTE8YHAwXiRjXkchbDs9OTZYUyRweDY1bDx4R04lX2QKejltJkVoNiF7e1kt
KiMrJVNUTylnSFA7fjFqM1BybURVSHhEM2NQd15Aa0gtRGhVMENPRVpZRnstNz9keSt0NzZaCnp3
flNGJnRCPDEkNXZ6fkF1ZzN+OGclNVZ2RUMlVlcyOGxSTmg8cXZMS0JjY01pYXtFfTspNUZKWjJD
N05eUFd4LQp6S1UrMWJTc2lgKGojWX5mSWIqa1NXSj5vdUw2KCNST0hPPTQ0aFcyMVllU2wmWTFY
UGh5a1RSJWNkQXJJK2dJQjwKenltNE9fbDB3JSY4TmM5eUJfV202aX1qV3pFKDxASUNTVE18XmlB
PG0hRFA+RDxsI0tPQns4PldJbn5kNDF1NkoxCnp5c2NQMFE2VjR0RTtkPml5KTt6YVdreXQ8dkVo
QmxfJnV0UlcjI2Q0dCpPRnRiKDU2RkMkQEFhSio4UnV2Qmh9aAp6N1Z3YnE9QihVeVkocHtERn1L
LVZoeXJoajlMP0FuWitvT25AMT45O01Vak56Uk0pfDZwcVQzOWVkZSRGd3s1NjAKelI3SG9JZWE/
TkAyZm95diRiaipnY2JmbVBVciFkRyt1JEFBeXIyV1FRfWQ5SGFQfUp7dzt9Km85THJvMnJfVFJM
CnpYOSVjJUA4ZHI9RSZkbEl6ZjB+JipPK2RiVkQwNSsyODMpZlJkWnN0Qmx0bF9iKkJrfG0zRUA5
UTZ6WV50ZSFYMgp6VHxzYTw5KXFWTztKYiFVckdEX2oqe0xmbDdANio4dDJPK2RAbGJ6anpffW9a
Z2g9I21wS0VNa0tzXlpZKjBufFcKekgzQio5bCNjTV9mYXxjPT50KnB0alFDYGA+Wit6O2JRWVJq
PlpENDJ2KU57JGQ9R2FgYXMjOXpraSp5ZXJ1b0M/Cnpndnt5SCEkJipLIUBvUn04KXBtVUx4P3N1
MlJZZTM3ZWcqcTY5KGhMTCRKfiZQP3FBZG14SXopKTdRdWtJaXpANQp6P3tRZ34jdCEmcS1fVCtt
I009ZFo/NTkrRVFIN3tJazQ7amVvKyRXVD4+Pk1jUHgkKiZDTWczWTxuYVFuJlVxUjgKeilydDla
R3BwcEc/LSohYj1jdihiJDUoMUo/UTVHU0NqJHIpQntAdDJfUUwtMmdZLTRCKm5gNSk5M34tclFl
QX1CCno4TVIqYlZMX2o3Uk9NIyM3cCpNcF96I3drd0VkPG1QY3RvdFlANy08RjArdGQ7dzVwJXgw
VUY4VE8jR3ROfkdgJAp6LVN5TzA2KThfIW5oeGk+SERKLXBKP2gxWWYhNEtLPmZ3MXBRU2A3fWt8
X2MxPylCQmApcHN9dkQ2PFljdGNffSUKelFsQmxMcHteI3Z3fUdRRnZ2emZ3QEJFY3Y0RnVIcmBe
U3xmWWJyWUYhfEZAUUJhbkxwWXRORE5uNy1fYFMqbT1LCnpMLXUrJUR8Oz1ocVdzTF8mOUg4TENz
UT9SXn4pfXV1fihRZWtRTX1ZRH02cSlEISlha2FtR0Y8aFEkRTlTcWFJZgp6QlRwWns9NDB1Mk87
JS0/SWkqLX08SXdVZV4jdTI2JCohalprQlQoME4tT0tkeXN4JGFvJkpvYD55cygzciFRVCsKeiZp
RiYhWWVAekJYNkRFVG55UXhBe0g3SG00Kmk/V0ljSjlGUWVuc2soUlJha0tJeSMxPjA4ODI3NUtX
P3kqIWVvCnpEVmFxS0VBdXJhUDVkVTdNcy1NaS1gPHhISX1fYllOakk1Y1M0byohdSh3P0pCYVVU
Vi1RdGF+Pz01Szd2aT0+Qgp6UGs5fHd2cERpMntZdzM2XllEU3B3QFgzNDF5eDNXajQ+TEl0NTB+
NSNvQHlsKXc9ZjdUS19ONiRecmlOYSZaSmEKek0xITJ8QUs5SiUqI3c0PG48O3VLcXwhUjhoVUQ+
SFB3X1FDTypTQUE5cyptelpAJS1ZZ19taEpxVE5lRk1yZj9yCno4RCgjM2IybD9oViZwPSpqSEhH
NjlpK3h2bWBBRWpSQWBGQTAtZ0hiR3NWai0qY1E+akhPZCpreWB2PVlXdkMmSQp6UnUpKVdneGA8
OzhlbF4oKTVVKXJ0U3M8SnhNMEd5THtoUWw0QjBGYmFuNU9JYHtEN1o+aCV2aiVRWUdLbCs5VEUK
elYjYEZ2aG5LeCVxaT9sUThATWMqSiV5Zn00cUVBYVQrPlpDZVZCdlJUS31XP2tOM0srWFFaOyh7
UldqY3ZyZzN8Cnp5cVY5T2BieTBScG1aOX1eflh0aEV0b2xPa2VWTTtZZlBmPkBkNnQoPCpeZ3xF
X1ZWYFBxJVdKKihGXnpzQjE4aAp6NkNZWE9EV1N5NUR5Vnhyc3hCcnNuP3tnZ01wNmV7Z2BIMSEj
TTNUeCQ0UkJtK3BsN0JqQ3tqSyV5YiN9dz9GK0sKRD9HQVRfCgpsaXRlcmFsIDAKSGNtVj9kMDAw
MDEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412368</attachid>
            <date>2020-10-26 18:09:10 -0700</date>
            <delta_ts>2020-10-26 22:57:29 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-217506-20201026180909.patch</filename>
            <type>text/plain</type>
            <size>91604</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4OTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGMxNzk1ZmM4YzEyZDNm
OWI4NjQ2MzYyZGQxNzY3OGEyZWQ5YTQ3Yy4uYTE4MmMxYjg2YTQ0ZGM1NDRkZTIxNTMzNTA5YzRh
MGRlYzdmYTQ2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIwLTEwLTI2ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBb
R1BVIFByb2Nlc3NdIFBlcmZvcm0gaW1hZ2UgZGVjb2Rpbmcgb2YgY29sb3IgZm9udHMgaW4gdGhl
IFdlYiBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTc1MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0OiBmYXN0L3RleHQvY2FudmFzLXNiaXguaHRtbAorICAgICAgICAgICAgICBmYXN0
L3RleHQvY2FudmFzLUNPTFIuaHRtbAorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAg
ICAgKiBQbGF0Zm9ybUFwcGxlV2luLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtV2luQ2Fpcm8u
Y21ha2U6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2oveGNz
aGFyZWRkYXRhL3hjc2NoZW1lcy9XZWJDb3JlLnhjc2NoZW1lOgorICAgICAgICAqIHBsYXRmb3Jt
L0ZyZWVUeXBlLmNtYWtlOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJD
b3JlVGV4dC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmJlZ2lu
TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmVuZExheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpkcmF3R2x5cGhzKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpkcmF3SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdHbHlwaHNSZWNvcmRlcjo6Y3JlYXRlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdHbHlwaHNSZWNvcmRl
cik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpw
cmVwYXJlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpE
cmF3R2x5cGhzUmVjb3JkZXI6OmNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnVwZGF0ZUNUTSk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVGaWxs
Q29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRl
cjo6cmVjb3JkQmVnaW5MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJh
d0dseXBoc1JlY29yZGVyOjpyZWNvcmRFbmRMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6Y29tcHV0ZUFkdmFuY2VzRnJvbVBvc2l0aW9ucyk6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpyZWNvcmREcmF3R2x5cGhzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZERy
YXdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29y
ZGVyOjpkcmF3R2x5cGhzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6RHJhd0dseXBo
c1JlY29yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVj
b3JkZXI6OmRyYXdHbHlwaHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpSZWNvcmRlcjo6UmVjb3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlY29yZGVyOjpkcmF3R2x5cGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpS
ZWNvcmRlcjo6YXBwZW5kSXRlbSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6YXBwZW5kSXRlbSk6CisKIDIwMjAtMTAtMjYgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBhIFdlYWtIYXNoU2V0
IGZvciBEb2N1bWVudDo6bV9jYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkRWxlbWVudHMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCmluZGV4IGM0ZDMzNDI5ZGJlNmIwYzIwZGE3OTIzMWM2YjMzZWZjOGJkNTc5NjIu
LjU2MGRlNTA0ZjY2YWVmZjE4YTBlNjAxZjg0MjI2ZjQzYzc0YjljMDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTEwLTI2ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1t
YXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBbR1BVIFByb2Nlc3NdIFBlcmZv
cm0gaW1hZ2UgZGVjb2Rpbmcgb2YgY29sb3IgZm9udHMgaW4gdGhlIFdlYiBQcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1MDYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhbC9zcGkvY2cv
Q29yZUdyYXBoaWNzU1BJLmg6CisKIDIwMjAtMTAtMTMgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBsZWZ0b3ZlciBNQUNPU1hfREVQTE9ZTUVOVF9U
QVJHRVRfbWFjb3N4IHN1cHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMu
Y21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDk5MTgzYTcyM2VhNGY4
NDk1ZGZiZDY0YzcyMDI3MzFmYWU2MTQ2M2IuLmYxM2RiZjU2Zjk1N2M2NjMyMjZmZjA0YTQzODQz
MzBkMjc0NDliZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysr
IGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTIzNyw2ICsxMjM3LDcgQEAgc2V0
KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L2FuZ2xlL0V4dGVuc2lvbnNHTEFOR0xFLmgKIAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdC5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5oCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKaW5kZXggYTdmODJiODYxYjYy
YzRhZWZiODNjMTgxMWQ1NWM3YWY3NDllNmI5MS4uYjRkODAxYzI3OWMwYTYyMzBkMzJlOGVmNzY3
ZDFlZTY4Njk3Y2ViMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2cv
Q29yZUdyYXBoaWNzU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29y
ZUdyYXBoaWNzU1BJLmgKQEAgLTM4LDYgKzM4LDcgQEAKIAogI2lmIFVTRShBUFBMRV9JTlRFUk5B
TF9TREspCiAKKyNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dDb250ZXh0RGVsZWdhdGVQcml2YXRl
Lmg+CiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHRm9udENhY2hlLmg+CiAjaW5jbHVkZSA8Q29y
ZUdyYXBoaWNzL0NHUGF0aFByaXZhdGUuaD4KICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ29yZUdy
YXBoaWNzUHJpdmF0ZS5oPgpAQCAtNTgsMTkgKzU5LDEyIEBAIHN0cnVjdCBDR0ZvbnRITWV0cmlj
cyB7CiAgICAgaW50IG1pblJpZ2h0U2lkZUJlYXJpbmc7CiB9OwogCi1zdHJ1Y3QgQ0dGb250RGVz
Y3JpcHRvciB7Ci0gICAgQ0dSZWN0IGJib3g7Ci0gICAgQ0dGbG9hdCBhc2NlbnQ7Ci0gICAgQ0dG
bG9hdCBkZXNjZW50OwotICAgIENHRmxvYXQgY2FwSGVpZ2h0OwotICAgIENHRmxvYXQgaXRhbGlj
QW5nbGU7Ci0gICAgQ0dGbG9hdCBzdGVtVjsKLSAgICBDR0Zsb2F0IHN0ZW1IOwotICAgIENHRmxv
YXQgYXZnV2lkdGg7Ci0gICAgQ0dGbG9hdCBtYXhXaWR0aDsKLSAgICBDR0Zsb2F0IG1pc3NpbmdX
aWR0aDsKLSAgICBDR0Zsb2F0IGxlYWRpbmc7Ci0gICAgQ0dGbG9hdCB4SGVpZ2h0OwordHlwZWRl
ZiBDRl9FTlVNIChpbnQzMl90LCBDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrTmFtZSkKK3sKKyAg
ICBkZURyYXdJbWFnZSA9IDcsCisgICAgZGVEcmF3R2x5cGhzID0gOCwKKyAgICBkZUJlZ2luTGF5
ZXIgPSAxNywKKyAgICBkZUVuZExheWVyID0gMTgsCiB9OwogCiB0eXBlZGVmIGNvbnN0IHN0cnVj
dCBDR0NvbG9yVHJhbnNmb3JtKiBDR0NvbG9yVHJhbnNmb3JtUmVmOwpAQCAtMTc3LDYgKzE3MSwy
MiBAQCBzdHJ1Y3QgQ0dGb2N1c1JpbmdTdHlsZSB7CiB9OwogdHlwZWRlZiBzdHJ1Y3QgQ0dGb2N1
c1JpbmdTdHlsZSBDR0ZvY3VzUmluZ1N0eWxlOwogCitzdHJ1Y3QgQ0dTaGFkb3dTdHlsZSB7Cisg
ICAgdW5zaWduZWQ7CisgICAgQ0dGbG9hdDsKKyAgICBDR0Zsb2F0IGF6aW11dGg7CisgICAgQ0dG
bG9hdDsKKyAgICBDR0Zsb2F0IGhlaWdodDsKKyAgICBDR0Zsb2F0IHJhZGl1czsKKyAgICBDR0Zs
b2F0OworfTsKK3R5cGVkZWYgc3RydWN0IENHU2hhZG93U3R5bGUgQ0dTaGFkb3dTdHlsZTsKKwor
dHlwZWRlZiBDRl9FTlVNIChpbnQzMl90LCBDR1N0eWxlVHlwZSkKK3sKKyAgICBrQ0dTdHlsZVNo
YWRvdyA9IDEsCit9OworCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKICNpZiBQTEFURk9S
TShNQUMpCkBAIC0xOTMsNiArMjAzLDEyIEBAIHN0YXRpYyBjb25zdCBDR1NOb3RpZmljYXRpb25U
eXBlIGtDR1Nlc3Npb25Db25zb2xlRGlzY29ubmVjdCA9IChDR1NOb3RpZmljYXRpb25UCiAKICNl
bmRpZiAvLyBQTEFURk9STShNQUMpCiAKK3R5cGVkZWYgc3RydWN0IENHQ29udGV4dERlbGVnYXRl
ICpDR0NvbnRleHREZWxlZ2F0ZVJlZjsKK3R5cGVkZWYgdm9pZCAoKkNHQ29udGV4dERlbGVnYXRl
Q2FsbGJhY2spKHZvaWQpOwordHlwZWRlZiBzdHJ1Y3QgQ0dSZW5kZXJpbmdTdGF0ZSAqQ0dSZW5k
ZXJpbmdTdGF0ZVJlZjsKK3R5cGVkZWYgc3RydWN0IENHR1N0YXRlICpDR0dTdGF0ZVJlZjsKK3R5
cGVkZWYgc3RydWN0IENHU3R5bGUgKkNHU3R5bGVSZWY7CisKICNlbmRpZiAvLyBVU0UoQVBQTEVf
SU5URVJOQUxfU0RLKQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC0yMDMsNyArMjE5LDYgQEAg
dHlwZWRlZiB1aW50MzJfdCBDR1NXaW5kb3dJRDsKIAogdHlwZWRlZiBDR1NXaW5kb3dJRCogQ0dT
V2luZG93SURMaXN0OwogdHlwZWRlZiBzdHJ1Y3QgQ0ZfQlJJREdFRF9UWVBFKGlkKSBDR1NSZWdp
b25PYmplY3QqIENHU1JlZ2lvbk9iajsKLXR5cGVkZWYgc3RydWN0IENGX0JSSURHRURfVFlQRShp
ZCkgQ0dTdHlsZSogQ0dTdHlsZVJlZjsKIAogdHlwZWRlZiB2b2lkKiBDR1NOb3RpZmljYXRpb25B
cmc7CiB0eXBlZGVmIHZvaWQqIENHU05vdGlmaWNhdGlvbkRhdGE7CkBAIC0yMzMsNyArMjQ4LDYg
QEAgdm9pZCBDR0NvbnRleHRSZXNldENsaXAoQ0dDb250ZXh0UmVmKTsKIENHQ29udGV4dFR5cGUg
Q0dDb250ZXh0R2V0VHlwZShDR0NvbnRleHRSZWYpOwogCiBDRlN0cmluZ1JlZiBDR0ZvbnRDb3B5
RmFtaWx5TmFtZShDR0ZvbnRSZWYpOwotYm9vbCBDR0ZvbnRHZXREZXNjcmlwdG9yKENHRm9udFJl
ZiwgQ0dGb250RGVzY3JpcHRvciopOwogYm9vbCBDR0ZvbnRHZXRHbHlwaEFkdmFuY2VzRm9yU3R5
bGUoQ0dGb250UmVmLCBjb25zdCBDR0FmZmluZVRyYW5zZm9ybSogLCBDR0ZvbnRSZW5kZXJpbmdT
dHlsZSwgY29uc3QgQ0dHbHlwaFtdLCBzaXplX3QgY291bnQsIENHU2l6ZSBhZHZhbmNlc1tdKTsK
IHZvaWQgQ0dGb250R2V0R2x5cGhzRm9yVW5pY2hhcnMoQ0dGb250UmVmLCBjb25zdCBVbmlDaGFy
W10sIENHR2x5cGhbXSwgc2l6ZV90IGNvdW50KTsKIGNvbnN0IENHRm9udEhNZXRyaWNzKiBDR0Zv
bnRHZXRITWV0cmljcyhDR0ZvbnRSZWYpOwpAQCAtMjUyLDYgKzI2NiwyMCBAQCBib29sIENHQ29u
dGV4dEdldEFsbG93c0ZvbnRTdWJwaXhlbFBvc2l0aW9uaW5nKENHQ29udGV4dFJlZik7CiBib29s
IENHQ29udGV4dERyYXdzV2l0aENvcnJlY3RTaGFkb3dPZmZzZXRzKENHQ29udGV4dFJlZik7CiBD
R1BhdHRlcm5SZWYgQ0dQYXR0ZXJuQ3JlYXRlV2l0aEltYWdlMihDR0ltYWdlUmVmLCBDR0FmZmlu
ZVRyYW5zZm9ybSwgQ0dQYXR0ZXJuVGlsaW5nKTsKIAorQ0dDb250ZXh0RGVsZWdhdGVSZWYgQ0dD
b250ZXh0RGVsZWdhdGVDcmVhdGUodm9pZCogaW5mbyk7Cit2b2lkIENHQ29udGV4dERlbGVnYXRl
U2V0Q2FsbGJhY2soQ0dDb250ZXh0RGVsZWdhdGVSZWYsIENHQ29udGV4dERlbGVnYXRlQ2FsbGJh
Y2tOYW1lLCBDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrKTsKK0NHQ29udGV4dFJlZiBDR0NvbnRl
eHRDcmVhdGVXaXRoRGVsZWdhdGUoQ0dDb250ZXh0RGVsZWdhdGVSZWYsIENHQ29udGV4dFR5cGUs
IENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmKTsKK3ZvaWQqIENHQ29udGV4dERlbGVn
YXRlR2V0SW5mbyhDR0NvbnRleHREZWxlZ2F0ZVJlZik7Cit2b2lkIENHQ29udGV4dERlbGVnYXRl
UmVsZWFzZShDR0NvbnRleHREZWxlZ2F0ZVJlZik7CitDR0Zsb2F0IENHR1N0YXRlR2V0QWxwaGEo
Q0dHU3RhdGVSZWYpOworQ0dGb250UmVmIENHR1N0YXRlR2V0Rm9udChDR0dTdGF0ZVJlZik7Citj
b25zdCBDR0FmZmluZVRyYW5zZm9ybSAqQ0dHU3RhdGVHZXRDVE0oQ0dHU3RhdGVSZWYpOworQ0dD
b2xvclJlZiBDR0dTdGF0ZUdldEZpbGxDb2xvcihDR0dTdGF0ZVJlZik7CitDR1N0eWxlUmVmIENH
R1N0YXRlR2V0U3R5bGUoQ0dHU3RhdGVSZWYpOworQ0dTdHlsZVR5cGUgQ0dTdHlsZUdldFR5cGUo
Q0dTdHlsZVJlZik7Citjb25zdCB2b2lkICpDR1N0eWxlR2V0RGF0YShDR1N0eWxlUmVmKTsKK0NH
Q29sb3JSZWYgQ0dTdHlsZUdldENvbG9yKENHU3R5bGVSZWYpOworCiAjaWYgSEFWRShDR1BBVEhf
R0VUX05VTUJFUl9PRl9FTEVNRU5UUykKIHNpemVfdCBDR1BhdGhHZXROdW1iZXJPZkVsZW1lbnRz
KENHUGF0aFJlZik7CiAjZW5kaWYKQEAgLTI4NiwxNiArMzE0LDkgQEAgQ0dSZWN0KiBDR1NOZXh0
UmVjdChjb25zdCBDR1NSZWdpb25FbnVtZXJhdG9yT2JqKTsKIENHU1JlZ2lvbkVudW1lcmF0b3JP
YmogQ0dTUmVnaW9uRW51bWVyYXRvcihDR1JlZ2lvblJlZik7CiBDR1N0eWxlUmVmIENHU3R5bGVD
cmVhdGVGb2N1c1JpbmdXaXRoQ29sb3IoY29uc3QgQ0dGb2N1c1JpbmdTdHlsZSosIENHQ29sb3JS
ZWYpOwogdm9pZCBDR0NvbnRleHRTZXRTdHlsZShDR0NvbnRleHRSZWYsIENHU3R5bGVSZWYpOwot
CiB2b2lkIENHQ29udGV4dERyYXdDb25pY0dyYWRpZW50KENHQ29udGV4dFJlZiwgQ0dHcmFkaWVu
dFJlZiwgQ0dQb2ludCBjZW50ZXIsIENHRmxvYXQgYW5nbGUpOwotCi0jaWYgSEFWRShDR19QQVRI
X1VORVZFTl9DT1JORVJTX1JPVU5ERURSRUNUKQogdm9pZCBDR1BhdGhBZGRVbmV2ZW5Db3JuZXJz
Um91bmRlZFJlY3QoQ0dNdXRhYmxlUGF0aFJlZiwgY29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0gKiwg
Q0dSZWN0LCBjb25zdCBDR1NpemUgY29ybmVyc1s0XSk7Ci0jZW5kaWYKLQotI2lmIEhBVkUoQ0df
Rk9OVF9SRU5ERVJJTkdfR0VUX0ZPTlRfU01PT1RISU5HX0RJU0FCTEVEKQogYm9vbCBDR0ZvbnRS
ZW5kZXJpbmdHZXRGb250U21vb3RoaW5nRGlzYWJsZWQodm9pZCk7Ci0jZW5kaWYKIAogI2VuZGlm
IC8vIFBMQVRGT1JNKENPQ09BKQogCkBAIC0zMjgsMTUgKzM0OSwxMCBAQCBib29sIENvbG9yU3lu
Y1Byb2ZpbGVJc1dpZGVHYW11dChDb2xvclN5bmNQcm9maWxlUmVmKTsKIHNpemVfdCBDR0Rpc3Bs
YXlNb2RlR2V0UGl4ZWxzV2lkZShDR0Rpc3BsYXlNb2RlUmVmKTsKIHNpemVfdCBDR0Rpc3BsYXlN
b2RlR2V0UGl4ZWxzSGlnaChDR0Rpc3BsYXlNb2RlUmVmKTsKIAotI2lmIEVOQUJMRShXRUJQUk9D
RVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKLQogQ0dFcnJvciBDR1NTZXREZW55V2luZG93U2Vy
dmVyQ29ubmVjdGlvbnMoYm9vbCk7Ci0KIHR5cGVkZWYgaW50MzJfdCBDR1NEaXNwbGF5SUQ7CiBD
R1NEaXNwbGF5SUQgQ0dTTWFpbkRpc3BsYXlJRCh2b2lkKTsKIAotI2VuZGlmIC8vIEVOQUJMRShX
RUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKLQogI2VuZGlmIC8vIFBMQVRGT1JNKE1B
QykKIAogI2lmIEVOQUJMRShQREZLSVRfUExVR0lOKSAmJiAhVVNFKEFQUExFX0lOVEVSTkFMX1NE
SykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQXBwbGVXaW4uY21ha2UgYi9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUFwcGxlV2luLmNtYWtlCmluZGV4IGE3ODhlNjlkZTc0NDFj
OTQwODRmNzAzNmEzZThmNDlhZDQ1MWE1OGQuLjM4YTJiNzc2ODk1NTk4YTRmNGUzNmFkZTdjNjAz
YjA0MDc4ZGRjNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQXBwbGVXaW4u
Y21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1BcHBsZVdpbi5jbWFrZQpAQCAtMzAs
NiArMzAsOCBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3Bw
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL1dlYkNvcmVBVkNGUmVzb3Vy
Y2VMb2FkZXIuY3BwCiAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAKKwogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAogCiAgICAgcGxhdGZvcm0vbmV0d29y
ay9jZi9BdXRoZW50aWNhdGlvbkNGLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1XaW5DYWlyby5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21h
a2UKaW5kZXggYTY4OTY0NzdkZTBjZjUwMzRmM2ZkMDlmM2YwYzc2YTdkYTZlYzhhMS4uMDc3OGY3
NTU2NmM2NDYzMDIwYTBlMDdjNTJhNjVjMWE0NzRmNjI4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUGxhdGZvcm1XaW5DYWlyby5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bVdpbkNhaXJvLmNtYWtlCkBAIC0yMiw2ICsyMiw4IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09V
UkNFUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCiAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHAKKwogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8uY3BwCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFDYWlyb1dpbi5jcHAKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR2x5cGhQYWdlVHJlZU5vZGVDYWlyb1dpbi5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGViNGUxN2YyZTczNmVhODY4MWM1NmQyMDI1MTQ5MjZi
OGRjOTk0NTAuLjJhZDMzYTk1NTE5MmQ5MDc2ZWIzZDhjMTYyY2ZlMzg2MjJkZmIxOGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvU291cmNlc0NvY29hLnR4dApAQCAtMzc5LDYgKzM3OSw3IEBAIHBsYXRmb3JtL2dyYXBoaWNz
L2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVs
QnVmZmVyQ29uZm9ybWVyQ1YuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVD
b3BpZXJDVi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GaWx0ZXJFZmZlY3RSZW5k
ZXJlckNvcmVJbWFnZS5tbQorcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUv
VGlsaW5nRGF0YS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBB
bGxvY2F0b3JNZXRhbC5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91
cExheW91dE1ldGFsLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggYjMwMzM0MmQ0NTExOGYwOThhNGEyMzNhNDdhOWNlZjkyY2Y5
YTUyZC4uNmRlMzQ4NmRkZDZlNjgwNDFhM2YzYWYxZGQ4Mzk2ZTA2YTI0MmJiYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjIw
LDYgKzYyMCw3IEBACiAJCTFDQUYzNDgxMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmpl
Y3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUYz
NDdFMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQ0FGMzQ4MjBBNkM0MDUyMDBBQkUw
NkUgLyogV2ViU2NyaXB0T2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUNBRjM0N0YwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVj
dC5tbSAqLzsgfTsKIAkJMUNBRjM0ODMwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVj
dFByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFDQUYzNDgwMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3RQcml2YXRlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMUNBRjU2REIy
NTMwMUFDODAwMTdCNDcyIC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FGNTZEODI1MzAxNDU3
MDAxN0I0NzIgLyogRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQ0NEODE1MDIyMzFGODNFMDA2
NUZDMkIgLyogV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE1MjU1MTQx
NkZEMjM0RjAwM0Q3QURCIC8qIFdlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVE
ZWxlZ2F0ZS5tbSAqLzsgfTsKIAkJMUNDREY1QkUxOTkwMzMyNDAwQkNFQkFEIC8qIFNWR1RvT1RG
Rm9udENvbnZlcnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFDQ0RGNUJDMTk5MDMzMjQwMEJDRUJBRCAvKiBTVkdUb09URkZvbnRDb252ZXJzaW9u
LmggKi87IH07CiAJCTFDRkFFMzIzMEE2RDZBM0YwMDMyNTkzRCAvKiBsaWJvYmpjLmR5bGliIGlu
IEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNGQUUzMjIw
QTZENkEzRjAwMzI1OTNEIC8qIGxpYm9iamMuZHlsaWIgKi87IH07CkBAIC02NzM2LDYgKzY3Mzcs
OCBAQAogCQkxQ0FGMzQ3RTBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNjcmlwdE9iamVjdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FGMzQ3RjBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2Ny
aXB0T2JqZWN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2Vi
U2NyaXB0T2JqZWN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FGMzQ4MDBB
NkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTY3JpcHRPYmplY3RQcml2YXRlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFDQUY1NkQ4MjUzMDE0NTcwMDE3QjQ3MiAvKiBEaXNwbGF5TGlz
dERyYXdHbHlwaHNSZWNvcmRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5TGlzdERyYXdHbHlw
aHNSZWNvcmRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0FGNTZERTI1MzAy
NDVBMDAxN0I0NzIgLyogRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNCNUZFODgyMkRFQkM4QjAwOTQ0
MEUyIC8qIFdITFNMRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xFcnJvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0I2OUIzMjIxREVENDBCMDA2RTg0NkEgLyogV0hMU0xS
ZXNvbHZhYmxlVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTFJlc29sdmFibGVUeXBlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQjY5QjM0MjFERUQ2M0EwMDZFODQ2QSAvKiBX
SExTTEZsb2F0TGl0ZXJhbFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xGbG9hdExpdGVyYWxU
eXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzYwNyw2ICsxNzYxMCw4IEBA
CiAJCQljaGlsZHJlbiA9ICgKIAkJCQkwRkU1RkJDQTFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxh
eUxpc3QuY3BwICovLAogCQkJCTBGRTVGQkNCMUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlz
dC5oICovLAorCQkJCTFDQUY1NkQ4MjUzMDE0NTcwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdH
bHlwaHNSZWNvcmRlci5oICovLAorCQkJCTFDQUY1NkRFMjUzMDI0NUEwMDE3QjQ3MiAvKiBEaXNw
bGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcCAqLywKIAkJCQk1NUMwQTI5NTIz
RkUyQ0UwMDBGMkNCOTMgLyogRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5jcHAgKi8sCiAJCQkJ
NzJFQTA5RjkyM0ZDQ0M2QTAwODUwNEE1IC8qIERpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaCAq
LywKIAkJCQk3MkVBMDlGNzIzRkNDQjNEMDA4NTA0QTUgLyogRGlzcGxheUxpc3RJbWFnZUJ1ZmZl
ci5oICovLApAQCAtMzE0MjgsNiArMzE0MzMsNyBAQAogCQkJCTdFREFBRkM5MTlBMkNDREMwMDM0
REZEMSAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2EuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNzkw
RjQyMjUxN0NFNkUwMDlCQTAzNCAvKiBEaXNwbGF5TGF5ZXJDb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkU1RkJEMzFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3QuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTFDQUY1NkRCMjUzMDFBQzgwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERy
YXdHbHlwaHNSZWNvcmRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTVBRDA5NDAyNDA4OTY0MDAw
REU0RDJGIC8qIERpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTU1QUQwOTNFMjQwODk2MzUwMERFNEQyRiAvKiBEaXNwbGF5TGlzdEltYWdlQnVmZmVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkU1RkJENTFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3RJ
dGVtcy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9GcmVlVHlwZS5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtl
CmluZGV4IDdjMDRkOTNhNWI4NWM3MzI1ODFjOTVhMDY1YmUwNWI2MzY3YzdhZTQuLmYzOGI1NGUx
N2M5MzE1NjUxNTRjYWI5NTNhODFlMGU5NmY1NzQ5YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0ZyZWVUeXBlLmNtYWtlCkBAIC01LDYgKzUsOCBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1BSSVZB
VEVfSU5DTFVERV9ESVJFQ1RPUklFUwogKQogCiBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMK
KyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhz
UmVjb3JkZXJIYXJmQnV6ei5jcHAKKwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0Zv
bnRDYWNoZUZyZWVUeXBlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRD
dXN0b21QbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9mcmVl
dHlwZS9Gb250UGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhz
UmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBkOGRmMTg2YWQz
YWRlOTY4NjdlY2VkZWFjZTZmZDc1ZjgwMzNjYTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5
cGhzUmVjb3JkZXIuaApAQCAtMCwwICsxLDEwMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQWZmaW5lVHJh
bnNmb3JtLmgiCisjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRlICJHcmFkaWVudC5oIgorI2lu
Y2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIlBhdHRlcm4uaCIKKyNpbmNsdWRl
ICJUZXh0RmxhZ3MuaCIKKworI2lmIFVTRShDT1JFX1RFWFQpCisjaW5jbHVkZSA8Q29yZUdyYXBo
aWNzL0NvcmVHcmFwaGljcy5oPgorI2luY2x1ZGUgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJ
Lmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGbG9hdFBvaW50Owor
Y2xhc3MgRm9udDsKK2NsYXNzIEdseXBoQnVmZmVyOworY2xhc3MgR3JhcGhpY3NDb250ZXh0Owor
CituYW1lc3BhY2UgRGlzcGxheUxpc3QgeworCitjbGFzcyBSZWNvcmRlcjsKKworY2xhc3MgRHJh
d0dseXBoc1JlY29yZGVyIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBEcmF3R2x5cGhzUmVjb3Jk
ZXIoUmVjb3JkZXImKTsKKworICAgIHZvaWQgZHJhd0dseXBocyhjb25zdCBGb250JiwgY29uc3Qg
R2x5cGhCdWZmZXImLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZs
b2F0UG9pbnQmIGFuY2hvclBvaW50LCBGb250U21vb3RoaW5nTW9kZSk7CisKKyNpZiBVU0UoQ09S
RV9URVhUKQorICAgIHZvaWQgcmVjb3JkQmVnaW5MYXllcihDR1JlbmRlcmluZ1N0YXRlUmVmLCBD
R0dTdGF0ZVJlZiwgQ0dSZWN0KTsKKyAgICB2b2lkIHJlY29yZEVuZExheWVyKENHUmVuZGVyaW5n
U3RhdGVSZWYsIENHR1N0YXRlUmVmKTsKKyAgICB2b2lkIHJlY29yZERyYXdHbHlwaHMoQ0dSZW5k
ZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYsIGNvbnN0IENHQWZmaW5lVHJhbnNmb3JtKiwgY29u
c3QgQ0dHbHlwaFtdLCBjb25zdCBDR1BvaW50IHBvc2l0aW9uc1tdLCBzaXplX3QgY291bnQpOwor
ICAgIHZvaWQgcmVjb3JkRHJhd0ltYWdlKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVm
LCBDR1JlY3QsIENHSW1hZ2VSZWYpOworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgR3JhcGhpY3ND
b250ZXh0IGNyZWF0ZUludGVybmFsQ29udGV4dCgpOworICAgIHZvaWQgcHJlcGFyZUludGVybmFs
Q29udGV4dChjb25zdCBGb250JiwgRm9udFNtb290aGluZ01vZGUpOworICAgIHZvaWQgY29uY2x1
ZGVJbnRlcm5hbENvbnRleHQoKTsKKyAgICB2b2lkIHVwZGF0ZUNUTShBZmZpbmVUcmFuc2Zvcm0p
OworICAgIHZvaWQgdXBkYXRlRmlsbENvbG9yKGNvbnN0IENvbG9yJiwgR3JhZGllbnQqID0gbnVs
bHB0ciwgUGF0dGVybiogPSBudWxscHRyKTsKKyAgICB2b2lkIHVwZGF0ZVNoYWRvdyhjb25zdCBG
bG9hdFNpemUmIHNoYWRvd09mZnNldCwgZmxvYXQgc2hhZG93Qmx1ciwgY29uc3QgQ29sb3ImIHNo
YWRvd0NvbG9yKTsKKworI2lmIFVTRShDT1JFX1RFWFQpCisgICAgdm9pZCB1cGRhdGVTaGFkb3co
Q0dTdHlsZVJlZik7CisjZW5kaWYKKworICAgIFJlY29yZGVyJiBtX293bmVyOworICAgIEdyYXBo
aWNzQ29udGV4dCBtX2ludGVybmFsQ29udGV4dDsKKyAgICBjb25zdCBGb250KiBtX2N1cnJlbnRG
b250IHsgbnVsbHB0ciB9OworICAgIENvbG9yIG1fY3VycmVudENvbG9yOworCisgICAgQ29sb3Ig
bV9vcmlnaW5hbEZpbGxDb2xvcjsKKyAgICBSZWZQdHI8R3JhZGllbnQ+IG1fb3JpZ2luYWxGaWxs
R3JhZGllbnQ7CisgICAgUmVmUHRyPFBhdHRlcm4+IG1fb3JpZ2luYWxGaWxsUGF0dGVybjsKKwor
ICAgIEFmZmluZVRyYW5zZm9ybSBtX29yaWdpbmFsQ1RNOworICAgIEFmZmluZVRyYW5zZm9ybSBt
X2N1cnJlbnRDVE07CisKKyAgICBBZmZpbmVUcmFuc2Zvcm0gbV9vcmlnaW5hbFRleHRNYXRyaXg7
CisKKyAgICBGbG9hdFNpemUgbV9vcmlnaW5hbFNoYWRvd09mZnNldDsKKyAgICBmbG9hdCBtX29y
aWdpbmFsU2hhZG93Qmx1cjsKKyAgICBDb2xvciBtX29yaWdpbmFsU2hhZG93Q29sb3I7CisKKyAg
ICBGbG9hdFNpemUgbV9jdXJyZW50U2hhZG93T2Zmc2V0OworICAgIGZsb2F0IG1fY3VycmVudFNo
YWRvd0JsdXI7CisgICAgQ29sb3IgbV9jdXJyZW50U2hhZG93Q29sb3I7CisKKyAgICBGb250U21v
b3RoaW5nTW9kZSBtX3Ntb290aGluZ01vZGUgeyBGb250U21vb3RoaW5nTW9kZTo6QXV0b1Ntb290
aGluZyB9OworfTsKKworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3Jl
VGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTVj
ZmJkODAwYjZkNGY5ZWUxNTk3Mjc1MWEzNGE2MThkMjcyMzVlZQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcApAQCAtMCwwICsxLDMwOCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIgorCisjaW5jbHVk
ZSAiQml0bWFwSW1hZ2UuaCIKKyNpbmNsdWRlICJDb2xvci5oIgorI2luY2x1ZGUgIkRpc3BsYXlM
aXN0SXRlbXMuaCIKKyNpbmNsdWRlICJEaXNwbGF5TGlzdFJlY29yZGVyLmgiCisjaW5jbHVkZSAi
RmxvYXRQb2ludC5oIgorI2luY2x1ZGUgIkZvbnQuaCIKKyNpbmNsdWRlICJGb250Q2FzY2FkZS5o
IgorI2luY2x1ZGUgIkdseXBoQnVmZmVyLmgiCisKKyNpbmNsdWRlIDxDb3JlVGV4dC9Db3JlVGV4
dC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworI2lmIFBMQVRGT1JNKFdJTikKKyNpbmNs
dWRlIDxwYWwvc3BpL3dpbi9Db3JlVGV4dFNQSVdpbi5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKKworc3RhdGljIENHQ29udGV4dERl
bGVnYXRlUmVmIGJlZ2luTGF5ZXIoQ0dDb250ZXh0RGVsZWdhdGVSZWYgZGVsZWdhdGUsIENHUmVu
ZGVyaW5nU3RhdGVSZWYgcnN0YXRlLCBDR0dTdGF0ZVJlZiBnc3RhdGUsIENHUmVjdCByZWN0LCBD
RkRpY3Rpb25hcnlSZWYsIENHQ29udGV4dERlbGVnYXRlUmVmKQoreworICAgIERyYXdHbHlwaHNS
ZWNvcmRlciYgcmVjb3JkZXIgPSAqc3RhdGljX2Nhc3Q8RHJhd0dseXBoc1JlY29yZGVyKj4oQ0dD
b250ZXh0RGVsZWdhdGVHZXRJbmZvKGRlbGVnYXRlKSk7CisgICAgcmVjb3JkZXIucmVjb3JkQmVn
aW5MYXllcihyc3RhdGUsIGdzdGF0ZSwgcmVjdCk7CisgICAgcmV0dXJuIGRlbGVnYXRlOworfQor
CitzdGF0aWMgQ0dDb250ZXh0RGVsZWdhdGVSZWYgZW5kTGF5ZXIoQ0dDb250ZXh0RGVsZWdhdGVS
ZWYgZGVsZWdhdGUsIENHUmVuZGVyaW5nU3RhdGVSZWYgcnN0YXRlLCBDR0dTdGF0ZVJlZiBnc3Rh
dGUpCit7CisgICAgRHJhd0dseXBoc1JlY29yZGVyJiByZWNvcmRlciA9ICpzdGF0aWNfY2FzdDxE
cmF3R2x5cGhzUmVjb3JkZXIqPihDR0NvbnRleHREZWxlZ2F0ZUdldEluZm8oZGVsZWdhdGUpKTsK
KyAgICByZWNvcmRlci5yZWNvcmRFbmRMYXllcihyc3RhdGUsIGdzdGF0ZSk7CisgICAgcmV0dXJu
IGRlbGVnYXRlOworfQorCitzdGF0aWMgQ0dFcnJvciBkcmF3R2x5cGhzKENHQ29udGV4dERlbGVn
YXRlUmVmIGRlbGVnYXRlLCBDR1JlbmRlcmluZ1N0YXRlUmVmIHJzdGF0ZSwgQ0dHU3RhdGVSZWYg
Z3N0YXRlLCBjb25zdCBDR0FmZmluZVRyYW5zZm9ybSogdG0sIGNvbnN0IENHR2x5cGggZ2x5cGhz
W10sIGNvbnN0IENHUG9pbnQgcG9zaXRpb25zW10sIHNpemVfdCBjb3VudCkKK3sKKyAgICBpZiAo
Q0dHU3RhdGVHZXRBbHBoYShnc3RhdGUpID4gMCkgeworICAgICAgICBEcmF3R2x5cGhzUmVjb3Jk
ZXImIHJlY29yZGVyID0gKnN0YXRpY19jYXN0PERyYXdHbHlwaHNSZWNvcmRlcio+KENHQ29udGV4
dERlbGVnYXRlR2V0SW5mbyhkZWxlZ2F0ZSkpOworICAgICAgICByZWNvcmRlci5yZWNvcmREcmF3
R2x5cGhzKHJzdGF0ZSwgZ3N0YXRlLCB0bSwgZ2x5cGhzLCBwb3NpdGlvbnMsIGNvdW50KTsKKyAg
ICB9CisgICAgcmV0dXJuIGtDR0Vycm9yU3VjY2VzczsKK30KKworc3RhdGljIENHRXJyb3IgZHJh
d0ltYWdlKENHQ29udGV4dERlbGVnYXRlUmVmIGRlbGVnYXRlLCBDR1JlbmRlcmluZ1N0YXRlUmVm
IHJzdGF0ZSwgQ0dHU3RhdGVSZWYgZ3N0YXRlLCBDR1JlY3QgcmVjdCwgQ0dJbWFnZVJlZiBpbWFn
ZSkKK3sKKyAgICBEcmF3R2x5cGhzUmVjb3JkZXImIHJlY29yZGVyID0gKnN0YXRpY19jYXN0PERy
YXdHbHlwaHNSZWNvcmRlcio+KENHQ29udGV4dERlbGVnYXRlR2V0SW5mbyhkZWxlZ2F0ZSkpOwor
ICAgIHJlY29yZGVyLnJlY29yZERyYXdJbWFnZShyc3RhdGUsIGdzdGF0ZSwgcmVjdCwgaW1hZ2Up
OworICAgIHJldHVybiBrQ0dFcnJvclN1Y2Nlc3M7Cit9CisKK0dyYXBoaWNzQ29udGV4dCBEcmF3
R2x5cGhzUmVjb3JkZXI6OmNyZWF0ZUludGVybmFsQ29udGV4dCgpCit7CisgICAgYXV0byBjb250
ZXh0RGVsZWdhdGUgPSBhZG9wdENGKENHQ29udGV4dERlbGVnYXRlQ3JlYXRlKHRoaXMpKTsKKyAg
ICBDR0NvbnRleHREZWxlZ2F0ZVNldENhbGxiYWNrKGNvbnRleHREZWxlZ2F0ZS5nZXQoKSwgZGVC
ZWdpbkxheWVyLCByZWludGVycHJldF9jYXN0PENHQ29udGV4dERlbGVnYXRlQ2FsbGJhY2s+KCZi
ZWdpbkxheWVyKSk7CisgICAgQ0dDb250ZXh0RGVsZWdhdGVTZXRDYWxsYmFjayhjb250ZXh0RGVs
ZWdhdGUuZ2V0KCksIGRlRW5kTGF5ZXIsIHJlaW50ZXJwcmV0X2Nhc3Q8Q0dDb250ZXh0RGVsZWdh
dGVDYWxsYmFjaz4oJmVuZExheWVyKSk7CisgICAgQ0dDb250ZXh0RGVsZWdhdGVTZXRDYWxsYmFj
ayhjb250ZXh0RGVsZWdhdGUuZ2V0KCksIGRlRHJhd0dseXBocywgcmVpbnRlcnByZXRfY2FzdDxD
R0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrPigmV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmRyYXdHbHlw
aHMpKTsKKyAgICBDR0NvbnRleHREZWxlZ2F0ZVNldENhbGxiYWNrKGNvbnRleHREZWxlZ2F0ZS5n
ZXQoKSwgZGVEcmF3SW1hZ2UsIHJlaW50ZXJwcmV0X2Nhc3Q8Q0dDb250ZXh0RGVsZWdhdGVDYWxs
YmFjaz4oJmRyYXdJbWFnZSkpOworICAgIGF1dG8gY29udGV4dCA9IGFkb3B0Q0YoQ0dDb250ZXh0
Q3JlYXRlV2l0aERlbGVnYXRlKGNvbnRleHREZWxlZ2F0ZS5nZXQoKSwga0NHQ29udGV4dFR5cGVV
bmtub3duLCBudWxscHRyLCBudWxscHRyKSk7CisgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dChj
b250ZXh0LmdldCgpKTsKK30KKworRHJhd0dseXBoc1JlY29yZGVyOjpEcmF3R2x5cGhzUmVjb3Jk
ZXIoUmVjb3JkZXImIG93bmVyKQorICAgIDogbV9vd25lcihvd25lcikKKyAgICAsIG1faW50ZXJu
YWxDb250ZXh0KGNyZWF0ZUludGVybmFsQ29udGV4dCgpKQoreworfQorCit2b2lkIERyYXdHbHlw
aHNSZWNvcmRlcjo6cHJlcGFyZUludGVybmFsQ29udGV4dChjb25zdCBGb250JiBmb250LCBGb250
U21vb3RoaW5nTW9kZSBzbW9vdGhpbmdNb2RlKQoreworICAgIEFTU0VSVChDR0FmZmluZVRyYW5z
Zm9ybUlzSWRlbnRpdHkoQ1RGb250R2V0TWF0cml4KGZvbnQucGxhdGZvcm1EYXRhKCkuY3RGb250
KCkpKSk7CisKKyAgICBhdXRvJiBzdGF0ZSA9IG1fb3duZXIuY3VycmVudFN0YXRlKCkuc3RhdGVD
aGFuZ2UubV9zdGF0ZTsKKyAgICBtX29yaWdpbmFsRmlsbENvbG9yID0gc3RhdGUuZmlsbENvbG9y
OworICAgIG1fb3JpZ2luYWxGaWxsR3JhZGllbnQgPSBzdGF0ZS5maWxsR3JhZGllbnQ7CisgICAg
bV9vcmlnaW5hbEZpbGxQYXR0ZXJuID0gc3RhdGUuZmlsbFBhdHRlcm47CisgICAgbV9jdXJyZW50
Q29sb3IgPSBtX29yaWdpbmFsRmlsbENvbG9yOworCisgICAgaWYgKG1fb3JpZ2luYWxGaWxsQ29s
b3IuaXNWYWxpZCgpKQorICAgICAgICBtX2ludGVybmFsQ29udGV4dC5zZXRGaWxsQ29sb3IobV9v
cmlnaW5hbEZpbGxDb2xvcik7CisgICAgZWxzZSBpZiAobV9vcmlnaW5hbEZpbGxHcmFkaWVudCkK
KyAgICAgICAgbV9pbnRlcm5hbENvbnRleHQuc2V0RmlsbEdyYWRpZW50KCptX29yaWdpbmFsRmls
bEdyYWRpZW50KTsKKyAgICBlbHNlIHsKKyAgICAgICAgQVNTRVJUKG1fb3JpZ2luYWxGaWxsUGF0
dGVybik7CisgICAgICAgIGlmIChtX29yaWdpbmFsRmlsbFBhdHRlcm4pCisgICAgICAgICAgICBt
X2ludGVybmFsQ29udGV4dC5zZXRGaWxsUGF0dGVybigqbV9vcmlnaW5hbEZpbGxQYXR0ZXJuKTsK
KyAgICB9CisKKyAgICBtX29yaWdpbmFsQ1RNID0gbV9vd25lci5jdXJyZW50U3RhdGUoKS5jdG07
IC8vIEZJWE1FOiBEZWFsIHdpdGggZGV2aWNlIHNjYWxlLgorICAgIG1fY3VycmVudENUTSA9IG1f
b3JpZ2luYWxDVE07CisgICAgbV9pbnRlcm5hbENvbnRleHQuc2V0Q1RNKG1fb3JpZ2luYWxDVE0p
OworCisgICAgbV9vcmlnaW5hbFRleHRNYXRyaXggPSBjb21wdXRlT3ZlcmFsbFRleHRNYXRyaXgo
Zm9udCk7CisgICAgaWYgKGZvbnQucGxhdGZvcm1EYXRhKCkub3JpZW50YXRpb24oKSA9PSBGb250
T3JpZW50YXRpb246OlZlcnRpY2FsKQorICAgICAgICBtX29yaWdpbmFsVGV4dE1hdHJpeCA9IGNv
bXB1dGVWZXJ0aWNhbFRleHRNYXRyaXgoZm9udCwgbV9vcmlnaW5hbFRleHRNYXRyaXgpOworCisg
ICAgbV9pbnRlcm5hbENvbnRleHQuc2V0U2hhZG93KHN0YXRlLnNoYWRvd09mZnNldCwgc3RhdGUu
c2hhZG93Qmx1ciwgc3RhdGUuc2hhZG93Q29sb3IpOworCisgICAgbV9vcmlnaW5hbFNoYWRvd09m
ZnNldCA9IHN0YXRlLnNoYWRvd09mZnNldDsKKyAgICBtX29yaWdpbmFsU2hhZG93Qmx1ciA9IHN0
YXRlLnNoYWRvd0JsdXI7CisgICAgbV9vcmlnaW5hbFNoYWRvd0NvbG9yID0gc3RhdGUuc2hhZG93
Q29sb3I7CisKKyAgICBtX2N1cnJlbnRTaGFkb3dPZmZzZXQgPSBtX29yaWdpbmFsU2hhZG93T2Zm
c2V0OworICAgIG1fY3VycmVudFNoYWRvd0JsdXIgPSBtX29yaWdpbmFsU2hhZG93Qmx1cjsKKyAg
ICBtX2N1cnJlbnRTaGFkb3dDb2xvciA9IG1fb3JpZ2luYWxTaGFkb3dDb2xvcjsKKworICAgIG1f
Y3VycmVudEZvbnQgPSAmZm9udDsKKyAgICBtX3Ntb290aGluZ01vZGUgPSBzbW9vdGhpbmdNb2Rl
OworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6Y29uY2x1ZGVJbnRlcm5hbENvbnRleHQo
KQoreworICAgIHVwZGF0ZUZpbGxDb2xvcihtX29yaWdpbmFsRmlsbENvbG9yLCBtX29yaWdpbmFs
RmlsbEdyYWRpZW50LmdldCgpLCBtX29yaWdpbmFsRmlsbFBhdHRlcm4uZ2V0KCkpOworICAgIHVw
ZGF0ZUNUTShtX29yaWdpbmFsQ1RNKTsKKyAgICB1cGRhdGVTaGFkb3cobV9vcmlnaW5hbFNoYWRv
d09mZnNldCwgbV9vcmlnaW5hbFNoYWRvd0JsdXIsIG1fb3JpZ2luYWxTaGFkb3dDb2xvcik7Cit9
CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVDVE0oQWZmaW5lVHJhbnNmb3JtIGN0
bSkKK3sKKyAgICBpZiAoY3RtID09IG1fY3VycmVudENUTSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9vd25lci5zZXRDVE0oY3RtKTsKKyAgICBtX2N1cnJlbnRDVE0gPSBjdG07Cit9CisKK3Zv
aWQgRHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVGaWxsQ29sb3IoY29uc3QgQ29sb3ImIG5ld0Nv
bG9yLCBHcmFkaWVudCogbmV3R3JhZGllbnQsIFBhdHRlcm4qIG5ld1BhdHRlcm4pCit7CisgICAg
Ly8gVGhpcyBjaGVjayBsb29rcyB3cm9uZyBidXQgaXQgYWN0dWFsbHkgaXNuJ3QsIGZvciBvdXIg
bGltaXRlZCB1c2UuCisgICAgLy8gQ1Qgd2lsbCBvbmx5IGV2ZXIgc2V0IHRoaXMgdG8gYSBzb2xp
ZCBjb2xvciwgd2hpY2ggdGhpcyBpcyB0aGUgY29ycmVjdCBjaGVjayBmb3IuCisgICAgLy8gSW4g
Y29uY2x1ZGVJbnRlcm5hbENvbnRleHQoKSB3ZSBzZXQgaXQgYmFjayB0byB3aGF0IGl0IHdhcyBv
cmlnaW5hbGx5LCB3aGljaCB0aGlzIGNoZWNrIHdvcmtzIGNvcnJlY3RseSBmb3IgdG9vLgorICAg
IGlmIChuZXdDb2xvciA9PSBtX2N1cnJlbnRDb2xvcikKKyAgICAgICAgcmV0dXJuOworCisgICAg
R3JhcGhpY3NDb250ZXh0U3RhdGUgbmV3U3RhdGU7CisgICAgbmV3U3RhdGUuZmlsbENvbG9yID0g
bmV3Q29sb3I7CisgICAgaWYgKG5ld0dyYWRpZW50KQorICAgICAgICBuZXdTdGF0ZS5maWxsR3Jh
ZGllbnQgPSBuZXdHcmFkaWVudDsKKyAgICBpZiAobmV3UGF0dGVybikKKyAgICAgICAgbmV3U3Rh
dGUuZmlsbFBhdHRlcm4gPSBuZXdQYXR0ZXJuOworICAgIG1fb3duZXIudXBkYXRlU3RhdGUobmV3
U3RhdGUsIHsgR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxDb2xvckNoYW5nZSB9KTsKKyAgICBt
X2N1cnJlbnRDb2xvciA9IG5ld0NvbG9yOworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6
dXBkYXRlU2hhZG93KGNvbnN0IEZsb2F0U2l6ZSYgc2hhZG93T2Zmc2V0LCBmbG9hdCBzaGFkb3dC
bHVyLCBjb25zdCBDb2xvciYgc2hhZG93Q29sb3IpCit7CisgICAgaWYgKHNoYWRvd09mZnNldCA9
PSBtX2N1cnJlbnRTaGFkb3dPZmZzZXQgJiYgc2hhZG93Qmx1ciA9PSBtX2N1cnJlbnRTaGFkb3dC
bHVyICYmIHNoYWRvd0NvbG9yID09IG1fY3VycmVudFNoYWRvd0NvbG9yKQorICAgICAgICByZXR1
cm47CisKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZSBuZXdTdGF0ZTsKKyAgICBuZXdTdGF0ZS5z
aGFkb3dPZmZzZXQgPSBzaGFkb3dPZmZzZXQ7CisgICAgbmV3U3RhdGUuc2hhZG93Qmx1ciA9IHNo
YWRvd0JsdXI7CisgICAgbmV3U3RhdGUuc2hhZG93Q29sb3IgPSBzaGFkb3dDb2xvcjsKKyAgICBt
X293bmVyLnVwZGF0ZVN0YXRlKG5ld1N0YXRlLCB7IEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaGFk
b3dDaGFuZ2UgfSk7CisKKyAgICBtX2N1cnJlbnRTaGFkb3dPZmZzZXQgPSBzaGFkb3dPZmZzZXQ7
CisgICAgbV9jdXJyZW50U2hhZG93Qmx1ciA9IHNoYWRvd0JsdXI7CisgICAgbV9jdXJyZW50U2hh
ZG93Q29sb3IgPSBzaGFkb3dDb2xvcjsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnVw
ZGF0ZVNoYWRvdyhDR1N0eWxlUmVmIHN0eWxlKQoreworICAgIGlmIChDR1N0eWxlR2V0VHlwZShz
dHlsZSkgIT0ga0NHU3R5bGVTaGFkb3cpIHsKKyAgICAgICAgLy8gRklYTUU6IFN1cHBvcnQgbW9y
ZSBraW5kcyBvZiBDR1N0eWxlcy4KKyAgICAgICAgdXBkYXRlU2hhZG93KHswLCAwfSwgMCwgQ29s
b3IoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb25zdCBhdXRvJiBzaGFkb3dT
dHlsZSA9ICpzdGF0aWNfY2FzdDxjb25zdCBDR1NoYWRvd1N0eWxlKj4oQ0dTdHlsZUdldERhdGEo
c3R5bGUpKTsKKyAgICBhdXRvIHJhZCA9IGRlZzJyYWQoc2hhZG93U3R5bGUuYXppbXV0aCAtIDE4
MCk7CisgICAgLy8gVGhlIGltcGxlbWVudGF0aW9uIG9mIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
REJhc2U6OmFwcGx5U2hhZG93KCkgZmxpcHMgdGhlIHkgY29vcmRpbmF0ZSwgc28gd2UgZmxpcCBp
dCBhZ2FpbiBoZXJlLgorICAgIC8vIFNlZSBhIHNpbWlsYXIgY29tbWVudCBpbiBEcmF3R2x5cGhz
UmVjb3JkZXI6OnJlY29yZERyYXdJbWFnZSgpIGJlbG93IGZvciBtb3JlIGV4cGxhbmF0aW9uLgor
ICAgIGF1dG8gc2hhZG93T2Zmc2V0ID0gRmxvYXRTaXplKHN0ZDo6Y29zKHJhZCksIC1zdGQ6OnNp
bihyYWQpKSAqIHNoYWRvd1N0eWxlLmhlaWdodDsKKyAgICB1cGRhdGVTaGFkb3coc2hhZG93T2Zm
c2V0LCBzaGFkb3dTdHlsZS5yYWRpdXMsIENHU3R5bGVHZXRDb2xvcihzdHlsZSkpOworfQorCit2
b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6cmVjb3JkQmVnaW5MYXllcihDR1JlbmRlcmluZ1N0YXRl
UmVmLCBDR0dTdGF0ZVJlZiBnc3RhdGUsIENHUmVjdCkKK3sKKyAgICB1cGRhdGVDVE0oKkNHR1N0
YXRlR2V0Q1RNKGdzdGF0ZSkpOworICAgIGF1dG8gYWxwaGEgPSBDR0dTdGF0ZUdldEFscGhhKGdz
dGF0ZSk7CisgICAgbV9vd25lci5iZWdpblRyYW5zcGFyZW5jeUxheWVyKGFscGhhKTsKK30KKwor
dm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZEVuZExheWVyKENHUmVuZGVyaW5nU3RhdGVS
ZWYsIENHR1N0YXRlUmVmIGdzdGF0ZSkKK3sKKyAgICB1cGRhdGVDVE0oKkNHR1N0YXRlR2V0Q1RN
KGdzdGF0ZSkpOworICAgIG1fb3duZXIuZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKK30KKworc3Rh
dGljIFZlY3RvcjxDR1NpemU+IGNvbXB1dGVBZHZhbmNlc0Zyb21Qb3NpdGlvbnMoY29uc3QgQ0dQ
b2ludCBwb3NpdGlvbnNbXSwgc2l6ZV90IGNvdW50LCBjb25zdCBDR0FmZmluZVRyYW5zZm9ybSYg
dGV4dE1hdHJpeCkKK3sKKyAgICBWZWN0b3I8Q0dTaXplPiByZXN1bHQ7CisgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBjb3VudCAtIDE7ICsraSkgeworICAgICAgICBhdXRvIG5leHRQb3NpdGlv
biA9IHBvc2l0aW9uc1tpICsgMV07CisgICAgICAgIGF1dG8gY3VycmVudFBvc2l0aW9uID0gcG9z
aXRpb25zW2ldOworICAgICAgICBhdXRvIGFkdmFuY2UgPSBDR1NpemVNYWtlKG5leHRQb3NpdGlv
bi54IC0gY3VycmVudFBvc2l0aW9uLngsIG5leHRQb3NpdGlvbi55IC0gY3VycmVudFBvc2l0aW9u
LnkpOworICAgICAgICByZXN1bHQuYXBwZW5kKENHU2l6ZUFwcGx5QWZmaW5lVHJhbnNmb3JtKGFk
dmFuY2UsIHRleHRNYXRyaXgpKTsKKyAgICB9CisgICAgcmVzdWx0LmNvbnN0cnVjdEFuZEFwcGVu
ZChDR1NpemVNYWtlKDAsIDApKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit2b2lkIERyYXdH
bHlwaHNSZWNvcmRlcjo6cmVjb3JkRHJhd0dseXBocyhDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dT
dGF0ZVJlZiBnc3RhdGUsIGNvbnN0IENHQWZmaW5lVHJhbnNmb3JtKiwgY29uc3QgQ0dHbHlwaCBn
bHlwaHNbXSwgY29uc3QgQ0dQb2ludCBwb3NpdGlvbnNbXSwgc2l6ZV90IGNvdW50KQoreworICAg
IGlmICghY291bnQpCisgICAgICAgIHJldHVybjsKKworICAgIENHRm9udFJlZiB1c2VkRm9udCA9
IENHR1N0YXRlR2V0Rm9udChnc3RhdGUpOworICAgIGlmICh1c2VkRm9udCAhPSBhZG9wdENGKENU
Rm9udENvcHlHcmFwaGljc0ZvbnQobV9jdXJyZW50Rm9udC0+cGxhdGZvcm1EYXRhKCkuY3RGb250
KCksIG51bGxwdHIpKS5nZXQoKSkKKyAgICAgICAgcmV0dXJuOworCisjaWYgQVNTRVJUX0VOQUJM
RUQKKyAgICBhdXRvIHRleHRQb3NpdGlvbiA9IENHQ29udGV4dEdldFRleHRQb3NpdGlvbihtX2lu
dGVybmFsQ29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKSk7CisgICAgQVNTRVJUKCF0ZXh0UG9zaXRp
b24ueCk7CisgICAgQVNTRVJUKCF0ZXh0UG9zaXRpb24ueSk7CisjZW5kaWYKKworICAgIHVwZGF0
ZUNUTSgqQ0dHU3RhdGVHZXRDVE0oZ3N0YXRlKSk7CisKKyAgICAvLyBXZSB3YW50IHRoZSBHUFUg
cHJvY2VzcydzIENUTSBhbmQgdGV4dCBtYXRyaXggdG8gbWF0Y2ggdGhlIGN1cnJlbnQgQ1RNIGFu
ZCB0ZXh0IG1hdHJpeC4KKyAgICAvLyBUaGUgY3VycmVudCB0ZXh0IG1hdHJpeCBpcyBhIGNvbmNh
dGVuYXRpb24gb2Ygd2hhdGV2ZXIgV2ViS2l0IHNldHMgaXQgdG8gYW5kIHdoYXRldmVyCisgICAg
Ly8gQ29yZSBUZXh0IGFwcGVuZHMgdG8gaXQuIFNvLCByaWdodCBub3cgd2UgaGF2ZQorICAgIC8v
IENUTSAqIG1fb3JpZ2luYWxUZXh0TWF0cml4ICogQ29yZSBUZXh0J3MgdGV4dCBtYXRyaXguCisg
ICAgLy8gSG93ZXZlciwgQ0dDb250ZXh0R2V0VGV4dE1hdHJpeCgpIGp1c3QgdGVsbHMgdXMgd2hh
dCB0aGUgd2hvbGUgdGV4dCBtYXRyaXggaXMsIHNvCisgICAgLy8gbV9vcmlnaW5hbFRleHRNYXRy
aXggKiBDb3JlIFRleHQncyB0ZXh0IG1hdHJpeCA9IGN1cnJlbnRUZXh0TWF0cml4LgorICAgIC8v
IFRoZSBvbmx5IHdheSB3ZSBjYW4gZW11bGF0ZSBDb3JlIFRleHQncyB0ZXh0IG1hdHJpeCBpcyBi
eSBtb2RpZnlpbmcgdGhlIENUTSBoZXJlLgorICAgIC8vIFNvLCBpZiB3ZSBkbyB0aGF0LCB0aGUg
R1BVIHByb2Nlc3Mgd2lsbCBoYXZlCisgICAgLy8gQ1RNICogWCAqIG1fb3JpZ2luYWxUZXh0TWF0
cml4CisgICAgLy8gSWYgeW91IHNldCB0aGVzZSB0d28gZXF1YWwgdG8gZWFjaCBvdGhlciwgYW5k
IHNvbHZlIGZvciBYLCB5b3UgZ2V0CisgICAgLy8gQ1RNICogY3VycmVudFRleHRNYXRyaXggPSBD
VE0gKiBYICogbV9vcmlnaW5hbFRleHRNYXRyaXgKKyAgICAvLyBjdXJyZW50VGV4dE1hdHJpeCAq
IGludmVyc2UobV9vcmlnaW5hbFRleHRNYXRyaXgpID0gWAorICAgIEFmZmluZVRyYW5zZm9ybSBj
dXJyZW50VGV4dE1hdHJpeCA9IENHQ29udGV4dEdldFRleHRNYXRyaXgobV9pbnRlcm5hbENvbnRl
eHQucGxhdGZvcm1Db250ZXh0KCkpOworICAgIEFmZmluZVRyYW5zZm9ybSBjdG1GaXh1cDsKKyAg
ICBpZiAoYXV0byBpbnZlcnRlZE9yaWdpbmFsVGV4dE1hdHJpeCA9IG1fb3JpZ2luYWxUZXh0TWF0
cml4LmludmVyc2UoKSkKKyAgICAgICAgY3RtRml4dXAgPSBjdXJyZW50VGV4dE1hdHJpeCAqIGlu
dmVydGVkT3JpZ2luYWxUZXh0TWF0cml4LnZhbHVlKCk7CisgICAgQWZmaW5lVHJhbnNmb3JtIGlu
dmVyc2VDVE1GaXh1cDsKKyAgICBpZiAoYXV0byBpbnZlcnNlID0gY3RtRml4dXAuaW52ZXJzZSgp
KQorICAgICAgICBpbnZlcnNlQ1RNRml4dXAgPSBpbnZlcnNlLnZhbHVlKCk7CisgICAgZWxzZQor
ICAgICAgICBjdG1GaXh1cCA9IEFmZmluZVRyYW5zZm9ybSgpOworICAgIG1fb3duZXIuY29uY2F0
Q1RNKGN0bUZpeHVwKTsKKworICAgIHVwZGF0ZUZpbGxDb2xvcihDR0dTdGF0ZUdldEZpbGxDb2xv
cihnc3RhdGUpKTsKKyAgICB1cGRhdGVTaGFkb3coQ0dHU3RhdGVHZXRTdHlsZShnc3RhdGUpKTsK
KworICAgIG1fb3duZXIuYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChEcmF3R2x5cGhzOjpjcmVh
dGUoKm1fY3VycmVudEZvbnQsIGdseXBocywgY29tcHV0ZUFkdmFuY2VzRnJvbVBvc2l0aW9ucyhw
b3NpdGlvbnMsIGNvdW50LCBjdXJyZW50VGV4dE1hdHJpeCkuZGF0YSgpLCBjb3VudCwgY3VycmVu
dFRleHRNYXRyaXgubWFwUG9pbnQocG9zaXRpb25zWzBdKSwgbV9zbW9vdGhpbmdNb2RlKSk7CisK
KyAgICBtX293bmVyLmNvbmNhdENUTShpbnZlcnNlQ1RNRml4dXApOworfQorCit2b2lkIERyYXdH
bHlwaHNSZWNvcmRlcjo6cmVjb3JkRHJhd0ltYWdlKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0
YXRlUmVmIGdzdGF0ZSwgQ0dSZWN0IHJlY3QsIENHSW1hZ2VSZWYgY2dJbWFnZSkKK3sKKyAgICB1
cGRhdGVDVE0oKkNHR1N0YXRlR2V0Q1RNKGdzdGF0ZSkpOworICAgIHVwZGF0ZVNoYWRvdyhDR0dT
dGF0ZUdldFN0eWxlKGdzdGF0ZSkpOworCisgICAgLy8gQ29yZSBHcmFwaGljcyBhc3N1bWVzIGEg
InkgdXAiIGNvb3JkaW5hdGUgc3lzdGVtLCBidXQgaW4gV2ViS2l0LCB3ZSB1c2UgYSAieS1kb3du
IiBjb29yZGluYXRlIHN5c3RlbS4KKyAgICAvLyBUaGlzIG1lYW5zIHRoYXQgV2ViS2l0J3MgZHJh
d2luZyByb3V0aW5lcyAoR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoKSkgaW50ZW50aW9uYWxs
eSBkcmF3IGltYWdlcyB1cHNpZGUtZG93biBmcm9tIENvcmUgR3JhcGhpY3MncyBwb2ludCBvZiB2
aWV3LgorICAgIC8vIChUaGVyZSdzIGEgeS1mbGlwIGluc2lkZSB0aGUgaW1wbGVtZW50YXRpb24g
b2YgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoKS4pCisgICAgLy8gVGhlIHJlY3QgaGFzIHRo
ZSByaWdodCBib3VuZHMsIGJ1dCB3ZSBuZWVkIHRvIHRyYW5zZm9ybSBmcm9tIENHJ3MgY29vcmRp
bmF0ZSBzeXN0ZW0gdG8gV2ViS2l0J3MgYnkgcGVyZm9ybWluZyBvdXIgb3duIHktZmxpcCBzbyBp
bWFnZXMgYXJlIGRyYXduIHRoZSByaWdodC1zaWRlLXVwLgorICAgIC8vIFdlIGRvIHRoaXMgYXQg
dGhlIGJvdW5kYXJ5IGJldHdlZW4gdGhlIHR3byBBUElzLCB3aGljaCBpcyByaWdodCBoZXJlLgor
ICAgIG1fb3duZXIudHJhbnNsYXRlKDAsIHJlY3Quc2l6ZS5oZWlnaHQgKyAyICogcmVjdC5vcmln
aW4ueSk7CisgICAgbV9vd25lci5zY2FsZShGbG9hdFNpemUoMSwgLTEpKTsKKworICAgIGF1dG8g
aW1hZ2UgPSBCaXRtYXBJbWFnZTo6Y3JlYXRlKGNnSW1hZ2UpOworICAgIG1fb3duZXIuYXBwZW5k
SXRlbUFuZFVwZGF0ZUV4dGVudChEcmF3SW1hZ2U6OmNyZWF0ZShpbWFnZSwgcmVjdCwge3sgfSwg
aW1hZ2UtPnNpemUoKX0sIHsgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luVG9wTGVmdCB9KSk7CisK
KyAgICAvLyBVbmRvIHRoZSBhYm92ZSB5LWZsaXAgdG8gcmVzdG9yZSB0aGUgY29udGV4dC4KKyAg
ICBtX293bmVyLnNjYWxlKEZsb2F0U2l6ZSgxLCAtMSkpOworICAgIG1fb3duZXIudHJhbnNsYXRl
KDAsIC0ocmVjdC5zaXplLmhlaWdodCArIDIgKiByZWN0Lm9yaWdpbi55KSk7Cit9CisKK3ZvaWQg
RHJhd0dseXBoc1JlY29yZGVyOjpkcmF3R2x5cGhzKGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IEds
eXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbnVtR2x5cGhz
LCBjb25zdCBGbG9hdFBvaW50JiBzdGFydFBvaW50LCBGb250U21vb3RoaW5nTW9kZSBzbW9vdGhp
bmdNb2RlKQoreworICAgIHByZXBhcmVJbnRlcm5hbENvbnRleHQoZm9udCwgc21vb3RoaW5nTW9k
ZSk7CisgICAgRm9udENhc2NhZGU6OmRyYXdHbHlwaHMobV9pbnRlcm5hbENvbnRleHQsIGZvbnQs
IGdseXBoQnVmZmVyLCBmcm9tLCBudW1HbHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGluZ01vZGUp
OworICAgIGNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIERp
c3BsYXlMaXN0CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlw
aHNSZWNvcmRlckhhcmZCdXp6LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yM2FjMzI0YjdiMDBhOWUxNmE1NmFkNjcwY2UwNGNmYTc3ZmM5ZmE4Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwCkBAIC0wLDAgKzEs
NTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIu
aCIKKworI2luY2x1ZGUgIkRpc3BsYXlMaXN0SXRlbXMuaCIKKyNpbmNsdWRlICJEaXNwbGF5TGlz
dFJlY29yZGVyLmgiCisjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgorI2luY2x1ZGUgIkZvbnQuaCIK
KyNpbmNsdWRlICJHbHlwaEJ1ZmZlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK25hbWVz
cGFjZSBEaXNwbGF5TGlzdCB7CisKK0RyYXdHbHlwaHNSZWNvcmRlcjo6RHJhd0dseXBoc1JlY29y
ZGVyKFJlY29yZGVyJiBvd25lcikKKyAgICA6IG1fb3duZXIob3duZXIpCit7Cit9CisKK3ZvaWQg
RHJhd0dseXBoc1JlY29yZGVyOjpkcmF3R2x5cGhzKGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IEds
eXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbnVtR2x5cGhz
LCBjb25zdCBGbG9hdFBvaW50JiBzdGFydFBvaW50LCBGb250U21vb3RoaW5nTW9kZSBzbW9vdGhp
bmdNb2RlKQoreworICAgIG1fb3duZXIuYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChEcmF3R2x5
cGhzOjpjcmVhdGUoZm9udCwgZ2x5cGhCdWZmZXIuZ2x5cGhzKGZyb20pLCBnbHlwaEJ1ZmZlci5h
ZHZhbmNlcyhmcm9tKSwgbnVtR2x5cGhzLCBzdGFydFBvaW50LCBzbW9vdGhpbmdNb2RlKSk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIERpc3BsYXlMaXN0CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAppbmRleCA2OGQyZjY4MDUx
NWVhZTU1OGEwZDRmYmVmNmFiMWEyN2UwYTA5ZWI0Li44YWJlZTFiN2NiOTQ5YjU2OWE0YmE2ODg3
M2FjMTFjMGFmNmE1YTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIu
Y3BwCkBAIC00MSw2ICs0MSw3IEBAIFJlY29yZGVyOjpSZWNvcmRlcihHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIERpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgY29uc3QgR3JhCiAgICAgOiBHcmFw
aGljc0NvbnRleHRJbXBsKGNvbnRleHQsIGluaXRpYWxDbGlwLCBBZmZpbmVUcmFuc2Zvcm0oKSkK
ICAgICAsIG1fZGlzcGxheUxpc3QoZGlzcGxheUxpc3QpCiAgICAgLCBtX29ic2VydmVyKG9ic2Vy
dmVyKQorICAgICwgbV9kcmF3R2x5cGhzUmVjb3JkZXIoKnRoaXMpCiB7CiAgICAgTE9HX1dJVEhf
U1RSRUFNKERpc3BsYXlMaXN0cywgc3RyZWFtIDw8ICJcblJlY29yZGluZyB3aXRoIGNsaXAgIiA8
PCBpbml0aWFsQ2xpcCk7CiAgICAgbV9zdGF0ZVN0YWNrLmFwcGVuZCh7IHN0YXRlLCBpbml0aWFs
Q1RNLCBpbml0aWFsQ2xpcCB9KTsKQEAgLTE0NSw3ICsxNDYsNyBAQCB2b2lkIFJlY29yZGVyOjpz
ZXRNaXRlckxpbWl0KGZsb2F0IG1pdGVyTGltaXQpCiAKIHZvaWQgUmVjb3JkZXI6OmRyYXdHbHlw
aHMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZmZXImIGdseXBoQnVmZmVyLCB1bnNp
Z25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmIHN0YXJ0UG9p
bnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCiB7Ci0gICAgYXBwZW5kSXRlbUFu
ZFVwZGF0ZUV4dGVudChEcmF3R2x5cGhzOjpjcmVhdGUoZm9udCwgZ2x5cGhCdWZmZXIuZ2x5cGhz
KGZyb20pLCBnbHlwaEJ1ZmZlci5hZHZhbmNlcyhmcm9tKSwgbnVtR2x5cGhzLCBzdGFydFBvaW50
LCBzbW9vdGhpbmdNb2RlKSk7CisgICAgbV9kcmF3R2x5cGhzUmVjb3JkZXIuZHJhd0dseXBocyhm
b250LCBnbHlwaEJ1ZmZlciwgZnJvbSwgbnVtR2x5cGhzLCBzdGFydFBvaW50LCBzbW9vdGhpbmdN
b2RlKTsKIH0KIAogSW1hZ2VEcmF3UmVzdWx0IFJlY29yZGVyOjpkcmF3SW1hZ2UoSW1hZ2UmIGlt
YWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJj
ZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIGltYWdlUGFpbnRpbmdPcHRpb25zKQpAQCAt
MjE2LDYgKzIxNyw5IEBAIHZvaWQgUmVjb3JkZXI6OnNjYWxlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6
ZSkKIAogdm9pZCBSZWNvcmRlcjo6Y29uY2F0Q1RNKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJh
bnNmb3JtKQogeworICAgIGlmICh0cmFuc2Zvcm0uaXNJZGVudGl0eSgpKQorICAgICAgICByZXR1
cm47CisKICAgICBjdXJyZW50U3RhdGUoKS5jb25jYXRDVE0odHJhbnNmb3JtKTsKICAgICBhcHBl
bmRJdGVtKENvbmNhdGVuYXRlQ1RNOjpjcmVhdGUodHJhbnNmb3JtKSk7CiB9CkBAIC00MTgsMTMg
KzQyMiw2IEBAIHZvaWQgUmVjb3JkZXI6OmFwcGVuZEl0ZW1BbmRVcGRhdGVFeHRlbnQoUmVmPERy
YXdpbmdJdGVtPiYmIGl0ZW0pCiAgICAgdXBkYXRlSXRlbUV4dGVudChuZXdJdGVtKTsKIH0KIAot
dGVtcGxhdGU8dHlwZW5hbWUgSXRlbVR5cGU+Ci1JdGVtVHlwZSYgUmVjb3JkZXI6OmFwcGVuZEl0
ZW0oUmVmPEl0ZW1UeXBlPiYmIGl0ZW0pCi17Ci0gICAgd2lsbEFwcGVuZEl0ZW0oaXRlbS5nZXQo
KSk7Ci0gICAgcmV0dXJuIGRvd25jYXN0PEl0ZW1UeXBlPihtX2Rpc3BsYXlMaXN0LmFwcGVuZChX
VEZNb3ZlKGl0ZW0pKSk7Ci19Ci0KIHZvaWQgUmVjb3JkZXI6OnVwZGF0ZUl0ZW1FeHRlbnQoRHJh
d2luZ0l0ZW0mIGl0ZW0pIGNvbnN0CiB7CiAgICAgaWYgKE9wdGlvbmFsPEZsb2F0UmVjdD4gcmVj
dCA9IGl0ZW0ubG9jYWxCb3VuZHMoZ3JhcGhpY3NDb250ZXh0KCkpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVj
b3JkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdFJlY29yZGVyLmgKaW5kZXggMWIyNGMyNmM2NzI4OGY4MTcyNzNhMmQyYWVmMmI0
YmM5NmUzNWM3NS4uMDQ0ZDE0MGViNTBmOTcyNDg5Nzc1NDkxNmFlMmM1ODFlMDUzOTExYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0UmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCkBAIC0yNiw2ICsyNiw3IEBACiAj
cHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkRpc3BsYXlMaXN0LmgiCisjaW5jbHVkZSAiRGlzcGxh
eUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRJbXBs
LmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIgLy8gRm9yIEltYWdlOjpUaWxlUnVsZS4KICNpbmNsdWRl
ICJUZXh0RmxhZ3MuaCIKQEAgLTYxLDggKzYyLDYgQEAgcHVibGljOgogCiAgICAgc2l6ZV90IGl0
ZW1Db3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheUxpc3QuaXRlbUNvdW50KCk7IH0KIAot
ICAgIHZvaWQgYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChSZWY8RHJhd2luZ0l0ZW0+JiYpOwot
CiAgICAgY2xhc3MgT2JzZXJ2ZXIgewogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB+T2Jz
ZXJ2ZXIoKSB7IH0KQEAgLTcwLDYgKzY5LDcgQEAgcHVibGljOgogICAgIH07CiAKIHByaXZhdGU6
CisgICAgZnJpZW5kIGNsYXNzIERyYXdHbHlwaHNSZWNvcmRlcjsKICAgICBib29sIGhhc1BsYXRm
b3JtQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgUGxhdGZv
cm1HcmFwaGljc0NvbnRleHQqIHBsYXRmb3JtQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIG51bGxwdHI7IH0KIApAQCAtMTQ4LDYgKzE0OCw3IEBAIHByaXZhdGU6CiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgSXRlbVR5cGU+CiAgICAgSXRlbVR5cGUmIGFwcGVuZEl0ZW0oUmVmPEl0ZW1U
eXBlPiYmKTsKICAgICB2b2lkIHdpbGxBcHBlbmRJdGVtKGNvbnN0IEl0ZW0mKTsKKyAgICB2b2lk
IGFwcGVuZEl0ZW1BbmRVcGRhdGVFeHRlbnQoUmVmPERyYXdpbmdJdGVtPiYmKTsKIAogICAgIEZs
b2F0UmVjdCBleHRlbnRGcm9tTG9jYWxCb3VuZHMoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7CiAg
ICAgdm9pZCB1cGRhdGVJdGVtRXh0ZW50KERyYXdpbmdJdGVtJikgY29uc3Q7CkBAIC0xOTAsOCAr
MTkxLDE3IEBAIHByaXZhdGU6CiAgICAgT2JzZXJ2ZXIqIG1fb2JzZXJ2ZXI7CiAKICAgICBWZWN0
b3I8Q29udGV4dFN0YXRlLCAzMj4gbV9zdGF0ZVN0YWNrOworCisgICAgRHJhd0dseXBoc1JlY29y
ZGVyIG1fZHJhd0dseXBoc1JlY29yZGVyOwogfTsKIAordGVtcGxhdGU8dHlwZW5hbWUgSXRlbVR5
cGU+CitJdGVtVHlwZSYgUmVjb3JkZXI6OmFwcGVuZEl0ZW0oUmVmPEl0ZW1UeXBlPiYmIGl0ZW0p
Cit7CisgICAgd2lsbEFwcGVuZEl0ZW0oaXRlbS5nZXQoKSk7CisgICAgcmV0dXJuIGRvd25jYXN0
PEl0ZW1UeXBlPihtX2Rpc3BsYXlMaXN0LmFwcGVuZChXVEZNb3ZlKGl0ZW0pKSk7Cit9CisKIH0K
IH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZhcy1DT0xSLWV4cGVj
dGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFzLUNPTFItZXhwZWN0ZWQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jMWNiMTg3MDBmNzYwY2U1YTA2MTQwZWE1ODM4NDZlNjA1OTI4MzQ1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZhcy1DT0xSLWV4cGVj
dGVkLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHN0eWxlPgorQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6ICJXZWJGb250IjsKKyAg
ICBzcmM6IHVybCgicmVzb3VyY2VzL0FoZW0tQ09MUi50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7
Cit9CisKK2JvZHkgeworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKK30KKworI29uZSB7CisgICAg
cG9zaXRpb246IGFic29sdXRlOworICAgIGxlZnQ6IDEwMHB4OworICAgIHRvcDogNDBweDsKK30K
KworI3R3byB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIGxlZnQ6IDMwMHB4OworICAg
IHRvcDogNDBweDsKKyAgICBjb2xvcjogcmdiKDI1NSwgMCwgMjU1KTsKK30KKworI3RocmVlIHsK
KyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgbGVmdDogMzAwcHg7CisgICAgdG9wOiA0MHB4
OworICAgIGNvbG9yOiByZ2IoMCwgMjU1LCAyNTUpOworfQorCisjZm91ciB7CisgICAgcG9zaXRp
b246IGFic29sdXRlOworICAgIGxlZnQ6IDUwMHB4OworICAgIHRvcDogNDBweDsKK30KKworZGl2
IHsKKyAgICBmb250OiAyMDBweCAiV2ViRm9udCI7CisgICAgcG9zaXRpb246IGFic29sdXRlOwor
ICAgIGxlZnQ6IDQwMHB4OworICAgIHRvcDogNDBweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxkaXYgaWQ9Im9uZSI+QjwvZGl2PgorPGRpdiBpZD0idHdvIj5CPC9kaXY+Cis8ZGl2
IGlkPSJ0aHJlZSI+JiN4N0VCNTs8L2Rpdj4KKzxkaXYgaWQ9ImZvdXIiPkI8L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jYW52YXMtQ09M
Ui5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZhcy1DT0xSLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNWMyMjJkYjQyMTQ0NDIzODIzMzkyNWIxODY2ODA0ZDBiODY0ZDMxNAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jYW52YXMtQ09MUi5odG1sCkBAIC0wLDAgKzEs
MjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK0Bmb250LWZh
Y2UgeworICAgIGZvbnQtZmFtaWx5OiAiV2ViRm9udCI7CisgICAgc3JjOiB1cmwoInJlc291cmNl
cy9BaGVtLUNPTFIudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOworfQorPC9zdHlsZT4KKzwvaGVh
ZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iNzUwIiBoZWlnaHQ9IjM1MCIg
c3R5bGU9IndpZHRoOiA3NTBweDsgaGVpZ2h0OyAzNTBweDsiPjwvY2FudmFzPgorPHNjcmlwdD4K
K2xldCBmb250ID0gIjIwMHB4ICdXZWJGb250JyI7Citkb2N1bWVudC5mb250cy5sb2FkKGZvbnQp
LnRoZW4oZnVuY3Rpb24oKSB7CisgICAgbGV0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjYW52YXMiKTsKKyAgICBsZXQgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIp
OworICAgIGNvbnRleHQuZm9udCA9IGZvbnQ7CisgICAgY29udGV4dC5maWxsVGV4dCgiQkFCIiwg
MTAwLCAyMDApOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvdGV4dC9yZXNvdXJjZXMvQWhlbS1DT0xSLnR0ZiBiL0xheW91dFRl
c3RzL2Zhc3QvdGV4dC9yZXNvdXJjZXMvQWhlbS1DT0xSLnR0ZgpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjIzYTU1
NDMwNjU5OTk2ODUxMTgwZTk4YjE1NDU0ZjdjNGIyZDg2CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJh
bCAyMTgyOAp6Y21lSFAzM3dEJHdtd3pXZHZfcCM1UD9DaGdkSFg2WUBHbmtVYFBsczQ8b3l2JihU
aU9TKWtNMXJWfG5vOUNYQmUKejBTNnVUUUR6KW05fWJFUzZgZkg1ZnBJfHs1THJUMCN6Ni1lMkVs
UDUpY2EyQD19SmYjcDNuRWJrTX52anRFemtNCnphPCtUIXl7QXN5VG9RO1ZpNThQWVE7SUt+SldV
dXdsYVI5OypNUTxGTVV3P21RanE9e1NLNVdzdnZUNTlVO21zKQp6TkN0ZClNT2BwOT5oNzViMG1x
MiF6VXA4K01yVitsJGd2UlIkPF5VMnN+a2dwTVN5UTU+VkpEcEN8SjJgJTNFdVEKeihnJmJDUD1n
R28kNXNHJTJILSg4YnEmcV45QVhtU1crTDB7YUlfLTBjRSMjbU0xIXt5aUo1aTU9OXRpckBlZjBG
CnprfFYqbyhBd2J9YHZJMVRoT2RaNDt8JiMkVHIhWW8+VXRzeGQ9Zzk3MTZMfUVnblpsd0Erd0t+
RlhBcTA8cTllSQp6QkwkRW9aNU5pMzlhWXpmSHZfJnlka1B5VU4wMW5TNFZuRDZtfXBmcCRyRHVv
d35LTyVXamRlYTxCQjlKZytMX0oKekNNRWZwbFltPjIwVEo9VkN7VHppNj9mKEBtMjVXWFJ+UVl6
TnV5fjlUfT08dUJsSHtrRWo+IVZxbX1kK0p4KSoxCnpsa15sbFA1KGl3PW8kSndKeGtCZzhoVzFv
bGgpRDteZGh9UD4qIV5BaDVrVClxKnYpUmRZdn1WTXRYeGIoUHI5MAp6ZjEpPyg5b2tDbyh0R3Iw
K0Q2O3kxS0wzIShrfUckOSVgWXopSmgtRyRNZ3k5cXJjRm5eakYkWHBWOG13MERWRCEKenIkaDcp
SSFzXkU1anNqPShMWjRnLV9XO29qTjBmcERNR2R8VTElMlc2Z1BAKmg/fldvO3gyS3d4Sk96cEp1
MG5+Cno5KyVjaGYwUH12UzVBX1g8eTUoISsrUkxSJlg5LTVldEVROWxBZSkxQnR5KF9XYzE4UCQ+
XjJRRlFiM1BTc0NZSwp6T3c3MUVCYjBHP0BEQE0kb249JWVtQVQ2PEV4V2FCYFA2dys+IXVnWWBl
ND9zaV9XZWRIZ2BsZ0ZFO1AkSE90O1QKekJwJkRmVit7e2ViK19XQXg/QkEoYiteOGc/JXZYTV9y
NkpZSjVRPismc0UoVz5fJklyd2QtITBOcTBOQyg0OG98CnpXZ20zY1RrWj9wNFVsRDNjY1ZfS3lV
UEVUP3VkMSNlND4xO2U0YHZ1VDlyMkNHZGVAcjE5LTNVc2Q3TzE5TUZnNAp6UH5LSGBReSpvVXZR
djNTYDVQPVpOJT10OGdWRShmaWdXaVZBMU9QTzJiQiVWMTg4fGFhKDNhbE9GNWA0UzlVOE8KekRz
TCFEayR3KCF3a2Z4Ty1hY2llYSs3anthLSk4S049O3dpZXQkPmReYi1DNDclKG5UZXhZMmF0T3Rj
aGx4dmlRCnolNH10OStaU3l8K1lZcH53NihWRlh4cjJGbGVURXZ5dFdhPy1mdjU3SjxAdShefj0z
Vj51YXFgVDM+RW0qWk5aSAp6K1NYT0FEX2JBaGB8OTRPVFJ2YGl2dEBoQnd3QmNgSD9fUmd2WmR2
Zm1QY0R8Wm48STRjZUA1e0pecnJrUz5halIKej5UZyMrd1ItO1FEXkArWT5mV2F9S2F1fiRAVyY2
fGBgNWNhVGZUR1lpZmI+QWohcGklQFJkNChWUitXeF90Sm53CnpGM2c5P0J3K01QTkctekRJMWg4
QmdxZV9YUV9Ab2dyPkNTWjUpWmNCQXNqakdsakxLcWleTChVYkVReil1aHRffQp6TnwqS0A+eDtz
XlIqOXRwJU1QcnVWOWZ7Q29NXjJKYmxSPHJARkRQS2wlM3YzVUN9cUc/e0MmaGY0WGAqPSokeSsK
enZ7dVZVdndTcW1OMyhvMSVTVz8oR3xOWGp7ZF9ibD5lN1cqVj9+fjw9JGpSUnc0JCg5Qi0pQ2Bw
TFM3fih7RHU9CnptUC00QComSGlNKFBLczhZJU47VVpPSkMzNU19JmppRilVejRCV0o3bGxsXmhY
aGU0PFlWP1ZPI3FgOXNHcXp2Vwp6XlNxPHZtaUZea3U0a2l7JkVlPHpKeF5qY2ZnWWJ5QlVoWUBL
WVg5a19XLUUlKEYhQHtLT3FmeV99MFl7NjY+O2IKelZBO1VgMk9IcT1FRjk3TFFuJiFYeDQyZn4h
cWh+U3hiVmt2OGg8fnElJHRDWkRXJlNhYmpxWUxHPzhYZklZbnQ5CnotOSZkfFB0aH5qQ0EwOypm
QShRZCZ2QyZrXmM0bVJJbEA/QnZNQCllNjVfJlE7V3B0dVZJX1hnMzlreG8zJWk4PAp6IWNrRWFk
eGBfWjtiSzU2N04+fXBpZ1UjI0BqN3Z0Xz5sT2R4S2BYQ3o5O1MjNH5YQUw0eWlaeEkqcFZAT0Ix
OVMKelFjI0xXUzRsVFljUyRSeFJvRHIlUz11Z3JBe348Mlk7SWVjWkpeQz5gPzJrKHd1QHwpd2t2
RWAraXRQbFZ8JiFMCnorViUoQW8zOzthcFc0MihsUmU0YS0jKmx5WERfbXMqKU9yeipjPEtGK1Y4
TUdWMUx+SHkjMDBpUntJfE49a3xYKAp6WT5wSmlTJm5sWWdedXgjWF56VnJWYUp0QD5tOSN6Sm5W
U2RAdUs0bSREYlZeSVN4OSRiR24+O29FZ3E2PVh1VWEKeiZSTmIxWFV3X0NkOSg5WmAyRSlUZCo+
XzhLUklfZXxLZEZDUjlycStLaTNkZnVJcWYpMStJJS0pdmdCREhMbHhUCnpfcSFmKnQjUTVQZGRJ
Y2ZeX2xBe3g4elFDcFhuYXFFXndFKXJARFhVcDY3ME1GTEJATHs8WnJsX1kzWmc/KVRsVAp6P2ww
V21kWXFuQVByNGA1R3NaS35HdCpQPGlGeWAjWnR+cGlgSGtscCYmIUBJbykwfHhKcGI/PF9qPGoz
eUBTMHUKei1tJWB2LVp8YlhaYGB9c2R6PCRAP0BJNDstZERZRWR2fCZGZHlvMT1Vcipsdi0qOGBg
K2g0SjdpdGtlMlR3ankjCnpJXlF6aUwldF97WWtlRGhAQT54bjQqMCVGYXdQUm1sOU5VempaVF5Y
WXIpRFNxXll8dyplcEEoUT1DUEVneSs+Swp6Wm8obFdnX15FKk5UZVBEPy0xbGFpODRmb21jJiok
bXBEdk0rb2BZVSpWN0s8UHQ/PCU8UWoyYHA3enE5VVRnSnEKejUxUTYlY1JOMntfcy1QUTBAK2c0
OVUhUERrfjRMTG8tYXtLWVBPIVhxMFRyeFo2e3g5c2gpTnFmMH5+NVY0JSM+CnooX1pTO3A2KUB6
USl+NDZXWWt9I3ImQj1kRTxOMX5gNDIhKyFHXnR2IWxCZk1eKXombndwMzM7Q3UjVFNZM0w7Rgp6
Y1h9RStOIXo1U3BfODwmZEt4LU8rcG5qZ2xlOXk2OGFmJXVvKHxLM1BLR1lqKTUrdS1gbkh9PHAm
bW9HPiotI3wKei0keWczaEMoRCRrQH5EZHN0UipKZ2NeYDRNQGQrUHN3b2IqMGNwTiNFbj9KJjhl
eXVYM2dsTHp0ZDQ/IUJBODhOCno+PHh8Skp7TldCa3J6aWYqSzVGP3YxezBCUEBtfj1UTiR9ZzZ7
LWktM1okISVRJWVnfT96KlFYcWg9Rm9oQ245ewp6JlQxKEpUdjE0MmEyaSlKUkd9bntSR2lMakZW
U1FUdDE+cEJKT1l8QjYkNFg5PCpiKEd0OEkmY3VNUihoXk5XI04KejR+Ukt1VWM7emV1ZWFiakdT
Vl5wU1R7XkBHOyhTblRMYmImUXg8O1FxOHVmZVh4KSgtT1AtKlczOClAaWFTUFU4CnoyLXNQa0lD
NUFzJSo5Ql4mdzZLR3ZuVSVse2RoTDJieSh0Umwhakd9R1BnIVFQZzZAOFJaaStANzlpSDIpO3FG
Xwp6Ql9EVmFjNDQmWnVCSzZiR0o5ZV54I3lWPT05WDxNaEchLTYlSVFrblhDUzlpZy1jUGwyMFVw
ISVObVdTYDReeWAKeil7b3AlWS10eXV0UXF+eXgoPSYjRyZeTjA0RmY7aDBjKHNjdHFCLXdSaFhz
aSUhIVFKKyM4MGlhdnczUjFQMU9nCno9MjlDMGpvXnV+RigjSXk5P3VZWlBldn4xV2taQWZHaDE4
YCp5cFIjYUJtdGwzKXx9JWF2R3pJYnJzaXBvK1ojUQp6PWR7PD8+TV9AdjI2K3Q1TG9MbWc0Sjth
MGFrPklfIU00aGpMKHAwZm0+VkQ/Pil1PnltYTx3Y2szblhaaUR3NnYKemxTaE41KCtaU21fUnFM
OUoyTG9XaT5pWmVHenZrcVYtS1NsJm5DMkRpPl5efF40SldrXz9jcigjX3NzeDV5RCFECno7bUxB
cGBlKFUkJXhUdD9uNWleZVJnangwYmQtfDA7UW5KQ243MmYmJmI/JmwlK00hbXE0VGBLR1hRSmQ4
MVhhZAp6OU84WiYzQlFVezBvNHcpYmZLT2Jwd2psLTBAI2FJd304Z0M9TjdlTkQ1az5wKyt2Smx0
IX05YUxwSjNDMlV7Q2MKeiQpPGN6KW9PNyUqSGx0cSFqKDs8UHxzK1VnSGFYR1RYRExlTCYrITtS
MDE0XlkkYTZFVVhseFpjX3lkYHY8PlhKCno7NSZobHAjO1dVOFY3b2JuI0dYWmZMTTwjb2s1U0cx
UCFlOyEzfiFkYiF1RE9wPjBDSCt9N01uNDRKalR1KHt7Xwp6O0chZDZFTl9BQG1kVlVAVUkjdzJK
N0gob2o5dWQ8KFZwU1g8cTM7blBQNmVkczU0fmRvIzZ5OzQ0SFhqKnNLU30KekhxT0wqNG1lTCg5
RzM8PE5YfkdjaUZVeCQmc0A4LTEyNmdMK1hRdmlxMkZXKWRFbXNERGNOPjRJQU82R29VaiMhCnpe
RyFDI2FHfVkxNyZjcEJLNGNBO3F8QE1wJkdQOFRMbWZsJmBLVm9EOyFsR1UrUX47KndyUylBME95
I3I2I3lAYwp6KFpFKiM+Q0UmO3A+PklnVWEyYSpGO3szJVBLVUxvPnNpa3tpeUN1T1MySk44Xkht
KllDVChgcikmXmMzSFEmZisKeis1UE9zOSEhUlE0YiRme0tNaHdzbj07XyReXmJpeW89TTl3Klla
bCQtRTJCVyNTPkhVWH1ETkI4bT1rclNhP24wCnpeQGU+QVBIRGFtPDJAMDckMkMmSnp1QVBwN2BB
WFN7MmtrT01ad0dnPDdiJjh1PkVwJUVqNiNXYWE5eEErT0EyKgp6R3grentsO0xaI21zZzgqUHQh
NWAlQk09ZDZrfnhgaUxRQXR7MCZYZFg1V1A2OTFra0lXXihWRVcjVn4+WFUzRGAKejxVUzA7NCE4
JFQjTFJ3RGNiSWQjIUYqIWhwTk0kfHRkS3BONWMpXislMD9vNkdIUTk8UCYwSkh5NEppdl9EJCpg
CnpPSUgkPXFFR20zPVR4Y1lwQ1ZQbVhWWk1FdHwoNmpTSXd0UEgqa3R7Kj5gSyE/WDdEcXYtajB+
OX54dD5eWmR8Ugp6dEwoV35ieFVVPVk9P0U7SilOUmNsIXhgbC1sRkYxYiskKWlvTX1GeEcwd1dQ
JnZFflBDWGRncWRUTnNEeCQ/VSQKemR5REstWWo0amQoJFFBUEE3Ylh7RDNMTDklbXMoc2Y3KUEx
Vm92dkM8dlJKTz9vUElASFB9NiFsSjd9cDAoOGZ0CnpkbWMxZ3A9eXpSYyVFcndUKWY1XkJjKWk/
RmFNXz5geEtoKnNtYUUzZ2w0QHAmOyEye0YySXdtTCZMKndIa2B9egp6Mmx1MSk/cz9KYFpTRHh1
aVc3alpsWXtHamlgdUV7VT95YlhrKnZqVyUoXmg8cE0pOz5veEMyQnZyVD8pSnpUeFUKenF6OFZK
ODMjfFR2bVhBWmxycXRPPTZGZ0lSPnZtek9ISnRJM091IV9OeWo/OCVGb3k5NyZXcUI/YkdxZyFW
SU1LCnpLU3gkTF4xdiR3bXRJSXlYYnolVFdpKXwyR2lwTHxRQjl+JHU4S3cpPG5tQkI4bVclVTRO
PHVQMSttOFJhQllRTAp6OExiUH1NbCQ2fDVxV043ZVFtdDV3eFhkbjhiUCgxVTt8MyFOVkd3JjRe
PjJ+QmVlQFV3VVZQdmt4K2ZTclp5JT0KenN+QmxLQnY7ampMLUJKfTNSVGY/SU5EU2pzZ3tmREwm
MWpIYDYwUERUMzUlJkZBbWo1PDtxWStJOVFLQFhoYVVpCnpWJlUzUWU2KEVDJj00RClsQCQoXyQx
Xk1SVykpaGkleEhhZTdJK1J0Oy1QcmYwLXpZIzZhPzArPmBaQEZWPn5NeQp6c3QkJUxxTG0/KmQw
TUV0NSFoI2VLZ09TKG5lU0oxIURaJTVoSU5gdk8tLTNpeGZNKUMmIzRUfU1+K0lqYz40NCMKelIl
MUxYaCEkREo3ZnpXb3NjZUdCTTJlSGB1QClufnEodlpqcV9VcjsjZ04jYVduVkd6KjNZQjFgPE5q
fEh6cnxCCnpUayVPTks1NGNtRD9adVRYRUVZPFIoI1RtUGc/T3dEP1Z3KEMkLXFSN0xUO3psWmtJ
KFIodyo2RV80Kz0+PTw5UAp6OyolWD9pQl4ybGljZ3kzUGdaPWd2bHFAWU0lVTRgNlhTK2pXWnNI
VG8qMSQyVDd5PTZRZGA0KypsNEh+cFg/WlcKens2QzZNQkkydz9Ffmc8ZlI7fSlOO2N2U311NkNq
enduSGpjVmRybGJlP2w1fERUKzl+UHtOSyhKMmBOK21KNnBTCnpkaW1ydz4/IVB0XlM0cns3eGhO
I0s5cShOOVEjcn4+UTZ0UzBkeXZ2TVEzQjROPU5pfUFrSSE0ak1FOCtCSndfKgp6TWotWm5GMX03
PkJBJmBTR2pofX48TlFVUGNjRn5KSHs+eU45e3JlcExTeU5DQFhCdmxDRihjSjNEfWM3aUdFN3wK
ek13N0EydDR4aT5QTml2eCpVbXNoZS0+UnR2a3t4VW1AYzd6ciVVTiliUXhXYSpsanI/ITBkNVZL
PzVBK3BObFVBCnpWTUtISnlHMEI7cG1edDMxOVVTVihjKSg4ZHxFKFBWYkFqLW9UZDE0OU15T1l7
ZXJIZUMzSFJBaDwoc0UoPUJ1eAp6LUErcXM4VH1Id3FKS3BYKG5JPldmcWQjQnBTRWI2d1d5dTJf
IyQ+cXp1d19BI2tjNWZ7WTF0MEpEak12dih1VDEKemUyKEpoYGJtbGhKRDtUfSphVytKbiZWNDI9
a1lRNkhRaTZFYWtBcmpeP2JxJmJTPSh0eWFER3ZaZEF7OFR0fk9rCnpKIy0pNGkmRykqcXpDOEBU
MjZPaWZCNmVJKC1DSnIzSnd3bHJ7RUlZZihRRyRlTHxBWkwrQnxhM25AWWBwfF9BSwp6XmJ5ajhH
cUImZ3BVX3xVa3VYM3dRI2VhRlRhYmx4QXd3N180OGxJfUE7TTUkbjV9SCk8akYzYS01SU9OJDs7
SWYKent5WmEqRkhXMnhtNWlWNFk+ZD5GanhSMGNYTzc+V3FkIy0/WFAqQWQqUGo5WElaQSZQPkNi
V2UlPVA+ST9xRjRJCnpaNkdAayRhOFdrKlBxUUxkRUA8bD9POWw/IXp6YVNLI0FIaVp+UTJnUWhz
KXpMQCFyNDBJWmtpdE5IbzRjYDgwbwp6RCZUcih1UmFVPlREP0dWdThKcDZrVzxMenFxMGxYYHVQ
UmZzKVlYQkJESD4/Q2BhV1N1cXMpPl87TEM0VSpSaGUKQUAmRXQ7CgpsaXRlcmFsIDAKSGNtVj9k
MDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9jYW52YXMt
dGV4dC1zYml4LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9j
YW52YXMtdGV4dC1zYml4LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWI0YjIxNGQ1ODdmNzRl
Nzc3MGY5YTczYWY5YjRjNmVhNjFhNDQ2OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvY2FudmFzL2NhbnZhcy10ZXh0LXNiaXgtZXhwZWN0ZWQuaHRtbApAQCAtMCww
ICsxLDQzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitAZm9u
dC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogIldlYkZvbnQiOworICAgIHNyYzogdXJsKCJyZXNv
dXJjZXMvQWhlbS1zYml4LnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsKK30KKworYm9keSB7Cisg
ICAgcG9zaXRpb246IHJlbGF0aXZlOworfQorCitpbWcgeworICAgIGltYWdlLW9yaWVudGF0aW9u
OiBub25lOworfQorCisjb25lIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgbGVmdDog
MjAwcHg7CisgICAgdG9wOiA0MHB4OworfQorCisjdHdvIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1
dGU7CisgICAgbGVmdDogNjAwcHg7CisgICAgdG9wOiA0OHB4OworfQorCitkaXYgeworICAgIGZv
bnQ6IDIwMHB4ICJXZWJGb250IjsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgbGVmdDog
NDAwcHg7CisgICAgdG9wOiA0MHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGlt
ZyBpZD0ib25lIiBzcmM9InJlc291cmNlcy9pbWFnZTEuanBnIj4KKzxkaXY+JiN4N0VCNTs8L2Rp
dj4KKzxpbWcgaWQ9InR3byIgc3JjPSJyZXNvdXJjZXMvaW1hZ2UyLmpwZyI+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9jYW52YXMt
dGV4dC1zYml4Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9jYW52YXMtdGV4
dC1zYml4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDk4NmQxNDRjN2EwYjA3NGZlZTU5YTA2YTk4NGFiOWNl
Yzk1NmIzYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFz
L2NhbnZhcy10ZXh0LXNiaXguaHRtbApAQCAtMCwwICsxLDIzIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTog
IldlYkZvbnQiOworICAgIHNyYzogdXJsKCJyZXNvdXJjZXMvQWhlbS1zYml4LnR0ZiIpIGZvcm1h
dCgidHJ1ZXR5cGUiKTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9
ImNhbnZhcyIgd2lkdGg9Ijc3NSIgaGVpZ2h0PSI1NTAiIHN0eWxlPSJ3aWR0aDogNzc1cHg7IGhl
aWdodDsgNTUwcHg7Ij48L2NhbnZhcz4KKzxzY3JpcHQ+CitsZXQgZm9udCA9ICIyMDBweCAnV2Vi
Rm9udCciOworZG9jdW1lbnQuZm9udHMubG9hZChmb250KS50aGVuKGZ1bmN0aW9uKCkgeworICAg
IGxldCBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7CisgICAgbGV0
IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICBjb250ZXh0LmZvbnQgPSBm
b250OworICAgIGNvbnRleHQuZmlsbFRleHQoIkFcdTdFQjVCIiwgMjAwLCAyMDApOworfSk7Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvY2FudmFzL3Jlc291cmNlcy9BaGVtLXNiaXgudHRmIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9jYW52YXMvcmVzb3VyY2VzL0FoZW0tc2JpeC50dGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDNiNjYyZTk3
OTI5N2YyYmZmNzM2Yzk5YTMwYzA4ODgxZGIzOGI5NApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwg
Mzk5NzIKemNtZUliMnxTZnUqRCRgJUlYR3IxaVpZeH5EbCpTdyRrYWR4QzZhal9rMnlue0c/K3pe
UClIST0jJVJ1MXMxJXUlCnpEUlg5LSZWT0kkUTExSj1AOF5CcT1se09uP3xyfHw8IyhOSD9ZLUF0
ZCMkeW5iKipkZjRXSXgzd0JRV0RmUExDfQp6ZitCZTl4Z1okeDQmSjlNb1hsTE08TWMtWEs9QWBX
UEhTVV5jTGlHajYjeGBjRm54b0txcHZsaz9LZWRqKSZPOXUKemhwbTtGVyRUZ0owc3dHakZrUWtI
TXFzSlFCdz1fOGhJd3FBSmJZTHcmfnlON1g5MGxobjRebkBTemJXYTJtbWA9CnowWUQybG5mYlYp
U1B9WlhERyhwJFowMk5EeXR7JUdoRjxgJWA7TXklLW94VmQzMnAjJUVDSWotO216JVFfXylydAp6
MCZ1aGswQ2ZkYCE4RD5HMFhke3FoUTB6Uk0zQTFTYXYqfWp6KnM7QUJhIVAyMEokM2c0c3VQcDNg
SkZOVT8wRk8KejZFSFhlbG5zTGVSZkcrVFNPNXF4MjhKTHZMYCpkTmdfSG1qezYjZCExanh3ZHBu
aGF2MDFJVG1QN254RXotXkVVCnoobSo9NjNvXmh4a099VUNFYnN0aWdCKnx4OSlkXlVGfnxvNnBi
ISorVm8oQn1mS3BIZm9gUHJLSWR9bkhmPis9Kgp6QzxoZ3c1PiRhfFB5Xm49K05jTmIhM1hkV2Q7
Kl9BQldNQyZLcj82c1pKLUA9ZktKY196SmhPezh9eHUpJjxGYSMKemNRNjJreiVVcEFXOGVvRTJO
UGZ0T28zQEkxN15WLV96QzkwQjNKXjtmUGZOND43amczKGRZX3ZDQXUyamZeSjIoCnpxMSFSbkZ6
SntLT2VVcmJeOCFiS3FydVZQSHNGfFd0aGxXPjRqZFA1Q3IkX19nV0pFSVl4Xzx2RyMzUkkwfmFJ
TAp6TWxNI2F0eX47amR8Vm5fcj97LVJDVSg+YTBVQGp3KDg2ZEBYXzt0K1lGKlFEJn5lZ0pHSDVi
ckhSUUN9V3h2TiEKeiUrKD5WQW5MO3BeZkd9IWZWI3dpVH0wajhgS1ArZWB3dztaPTE7bi1VQ357
YDhyYC0wUXs0PmBidk9EcXg/QXxBCnpKS1ooOWB8PW1NTCp1QSR2YH19T2E0Yi1GWSZhWkljaGRo
PGNiNU10LTJwXipnbEB0JiFjVzIhcF5MQ1k3eXclYwp6P0ooUik9cHpnaDI0U2NmUCFLKjQrNWpg
KkdvZ2kwUFopd05teVhheFhiMUdMPWhHMm1kazl8JVVrSkFkPCVDMy0Kel5Dclk9aDBqKlBEQiY4
UmpuR1Z9QnQkfHVBTDR1X1QhclFKNUhianQyX2J8X0U1OHFqQFdvJWheI2xhSXU9MEJrCnpRb0tN
b00+dFAtMTUzQ34ycXlSd2p1OH0+TXdYX1JoTDx7KXh8WTV5d0ojfHd4aHkjPj9PQU1DVihPYWVu
Jl9KQgp6QnlfIyV5M3FCc3RFe1dFdEdGdy1FMkFyXl5KUW10JEc0N205Z1E4SUpNdWElY2hxKiZi
VWY9d0AzXyh0KCFTOGoKel5NM2dRKjw7ald2Yl8xYzJZRnQzWm4/S3w8RmwqcGl7SWEhSVQ3QzxI
Kmw+Yl4zS14pRXtZcSpQJjMzSDM+KTcxCnpePjFrYTExUkI7eCZmZUlANU1rVTAxa31+YUlEMEBr
cjBTN1pmRCVGb3BFfnJkVVBvUUhNTEJPITdYK0xwbSFvVgp6Q3JEd3c2WSY1PCtLJjBZJE8wMnQp
PkdEWHUtKj5WYEA7SG91cyRaUCZrTnZ4PS1kYmAxXkU2V3lxJWRpWiYkJXIKenBZezN0ZjNGVDtX
Jldjaio3ZCh2b157Snx5KklBNi11M3MwXzRrUE5fbFdpUGkxcWh+XzRrUFhzcVljJXs9ZEpsCnp5
d2BvOD53ZSZNVS08Zz5mZDMxPWlKJjRlLV9nZXFVbEhTcXVMeW1OPFNxSyFscSFOME9oZGpPZmxa
PX0rKk1Vbwp6TF5CP34mOzVOMF5nbz5lOXlBMEJRd0YoZEsheTJeZTkzejNWdE8yVHpHPV9tYFNt
X2JeampnWkBQYTw4bUdBc1MKemUzJVF5dGk0ZDFWSTJJUGg0QEYtP3t5dWx3fUpsfis1cG1AUUUo
Kl5BYDl2OzQ5dnFqMUt3NWV3dUNwbGtoSW43Cnp6Z1hyZk5EbkVBWTJ8TV81Q0YxMzFMeTtELX4j
LT9XZV45fjRMeVZfZm9rOWlwQn1od1hCa0M8Vm5PWGRpSiVsdwp6aGZ2MispK2p2YzNAUXdqZlhY
Mkw8KWREcj5RSnF5QDJGYHM4cUkpYUwrP2dRcGpGVUUmP2FibXZeVi1aSXRyYkgKeiZPI1RYJWg0
YXZvIzxpb1BZZVpTNkl7YD43YkFtRiN+ajYmVlZwNmlGXyRwMG1eK3dVeFpiQjQofT9ORHtKPD1k
CnpRSVR5WDwwY2EjbFA1YnNXPUxqOT0wK0FzYzlyWX5TdnB4Qio+a2RZV1gpdUtXUnY4OG9RYH1l
SVdNXnd4ZX5iKwp6YDNaN2NhIT5OSjxQcWVGPGVCNyE8Z2R4IWxlZCEobEZ3MypRN30/KVExRFNt
UUsoWXJRa1lVV1F1dENfcT09ek4KenB+JDlxTFF6VGFpUSs1OEQ4Jk1uNjNkTGAhVXwmTHUkb3V7
dE9lRTs4LVRxNnxFXj14dSNkM011eTMobnUpV3ZgCnpFUDt9aWw5aDVOcjZ9Yi0lRU9kS2xzMSRl
bCk7cVlsczc1d1E1STBYcU83TkVxYTJgfHB+NnNZcGtrLW1MblRTSQp6cEd0QDdCJFdlfDU3aDsj
WHNUcVkyVUkwZzY7dXNXVH5zNGZeVkM+c0NoRzBmMEBTazk4cjFzSz1GfjNLez93UEwKejxFVEBx
QTV1VDF1QXkkQz94N3kxVVokYTtWV0hWVUJTTkR7YkJOfFJqV3JGUDxfdHwzTyMpMkBPK0wqX25t
VT9SCnpuKHM4enZ9anJlU35sOTxmQlBwdnQzckUoKWBacmMpfD5WYFo0Xy0xWjVDfVlaOF9+bitE
X1ZHK01qZTNiZXJnSwp6YmJJTSFVfjdSaDZLWFNZcjNLT358MT9oX1FHZj9rTlBOTnspUT9wTlZw
OUdKcCNlUCN1Mkxnajd7Rzw1U2JAbV4KekMzQEVpT2IlR2tMTXQhQGpNckYhc1c7ZjdrRjNCbmZN
O1h6M1FQfWxIQDV4YVhLc19nM1hCM3xPdkZfbDVEeUtvCnpPblgtMUZAVFh0Y20qYmRJTGEkOUlp
T2B5VFkpS0h5elVCMjRMZ2QjM1FQa3d7KHxZalpZSkI2X3plKDBZNldKNQp6V3lQKyo4KTFBUnY/
RVl0YTRqTH4yVUUlbDQwVzxPYXNgR3UqP2VPS2hDMTFOY0xqenoqPDdeKEwhRTRYelhDJkAKeloy
ckNpTCFFNT91PndQI0BGSTImUVduJCt1bTF8WDBae1ZSdC15P2NwMHt4WS1VI0QreilAZmV0Tjsh
dTV1WipGCnp2Vzg9VEd3Xl9ySVpTYVJoSEw7SGhDTHZSe0V+OUcwI0F0SDI8KDZiakoxU21QUVZP
P29aKURLMURmIU8xTklRZAp6OW1lNWRJKWRpYGUtWXs9WVBKdmBERj99bWdSdzVla1VLMlowPlU7
aCN0ISVxeCU+T0ZhMWhmUVZwX3ArQFFeYioKejswa0hFS3EqIV4jUzx4NSF4VHBkO1F7fXo2cTJs
dEw+YXdkeC0lPmoyVUgqPkQ8V3Joej5BbnkxPTRlWmYyKjd1CnohQn0/fkxPNGZ3YiVmYU5EPilE
eDlFNHJyQUVGemlMPlUtazN1V193YVdYJjx7dmtRY1ZUdTZFe20wU30kJHl0Ngp6MDdMR09EPGxW
XktQeU5ia3B+WkI1WH5UNT8xbDBwZFBqSF8xajNNfTVQVyhQYVMofVpWNSVjZ3FYQFVGXntoKXcK
ekBnI0VNNGgmIWooSTJVSGE2fkhOa2swUlJ2Nn1EaUZqdiQ2UyRqaEdMfjApNDFLfTJGVGR3ZUYz
RkZMeEZaP3xVCnpWPVJlYkhIZDJxY19QJjtxRVRtSns5JVlrc3o7PXprZH01QnJ1bzQ3TXMpMisj
MzhqKXE/SX5DYGJheEtHPXtWXgp6WiVFT083KUdUMUdiY0VSam51fCFUU2UqIURlRUB7cXthe35O
ajw8NUBgTy1CQz9Sc1YhPjFMakpzZ1poOylKMEYKemsteFBxJkowcmJCMShoUTx8P010RlQ3UGJT
OT0rdkVCczIkQk5DNyhpflBiVDtVUWQ7Rz5HJjsyWiUqIyVkMXBLCnpUO1lLbVkhXnNkTU19MVVT
fkcpYEopbiQ7PyRAVFNtQ31abz9oMGlfV0l7IzxMezZrUGthVEpSUSVMT31wKyN5KAp6dDkmOVkk
X2VVKlJEdjFJaGdjWHNAYVlZNkF1WmFMTkU3THNqenN6aCQwUW01anZ1NmxBWDsmU1BlZXxWe3Q+
eTYKeksxWFV6emVnJChFbyYkQFFvPGpsTTdUaWU1OChtZj9LanErWWlVKHl0TktLPUBhSiZAODM3
UWp1bDlJLXp6MnxlCnorNihPfTFkPEBPMH0/RT81LVMxSmUjSl97X0Ntc3kxZ2dKY20zfm9CMGFD
d1dSYlczUjtpfDJuQVBodHk0V3pYcAp6cjNlRllTU2txJWZrb0coTlVvdEo0NVQ2NllBekFqdDBZ
IShBK1kyaFFsIV59X0NwJTB2aDRAXmYyRHsqZFNZdXIKek8wZXV6Pll8WUUteFFKMVo7R05vOEo3
MU9RdzIpQzhiYjdsTlZpJVo2OGM+UkRmS3J1TlVHQUdAflpxSD97RURnCnpkRHFxdzU/WlNiQilx
b2ZnZGk3eDxPYEFhSCghV01ZcT1LdDFFMGN3cUs8XnVRWVVmcUoza1dzYk5jVFZnSyNQZwp6fDVp
JiFMVGg8UCFvUFYjTFRoPEwhZlcrX1AqWXlSeTluZ2BjWikrKENIXjJlNSpBeGl3IzFyeE16R2NY
ej43R24Keit1eC1sSXV1JmQ2MnVAVXQwTmBTYzFodmlFdFZBaS1CeXNXXz9rOXtncihOQjl3ZlpC
Nl5jVnlDRHVxczNqYzFpCnpOYmVBWElJRWYkaHVIaHFASjk7Jil7WnojNkpGRXZCdyQhJWprWThw
RjleanxkWGlBT3dkRzYwLTIyeSpyJCZeMQp6Yip2elRNRSk/PntQbjF9YmApSjVxeUIwbiNLWkIq
MzY0eXAoVW1rZUFoUlJNSGRAWDNfb0V3UCFFbWtJeUg+X0MKekErVmNoKj1SeDkkb3otY2E+eigo
NCMhJCNydXdfbFJGKzdgbH1MfDczKCpkVil7JFJTa1UwZ0paeDk7PGZrP0l3CnpMaVpvKHw4YjVh
KFhVPVpVaj8+PmVANmUwYFR3ZWZ3SHpTeTV0Kkd+K2N6aTlyRTZ6Z0pXJiYqeHQkfihHSl5tNgp6
bnAoOXI1aThGUSZVKypzQmV3RnRURH1fVzMmPD8tKkYzRCs4emVvaXdNYEg/UmJlVH1vUWMlI1RB
N2U+Ml5rc3gKeklaZFB2OWJyMl9ZVmFRXkJYLWk/UTVPOWglS3VwUnw0OHtMWT13eDBWK0hHbldS
PmxPQElOYX0+fkJoMillV0wrCnprYDsqOUNoa3l7em1pQXwpKFBecV5SSmRGe3g2b2dZT3w0U3RH
X0IpNHwzKTZGUEFJdkZQNGtnWmF5cFI/WFJfcgp6U1lMbCVocFQ8PSYqUV9Od1RmOG8pXytAJDI1
ZFdzJml9cH5yR0hUI00xUDMyTlY0fCsrI1hsXjhPYkpHP1BxYDIKeks5JkUyR0xpb0lTMmQrY3Z8
TiNRVGZ8eUtZLS1abV5GTmtEbmoheHlNdmd5OXZec0x3TGteTXBCZllpITlAQjszCnolPU9RRV8y
MD8lKkJibyRhYHlrNTwpfW01QS0mckhZU0BDUE1afF9qTWo5TnZrdlZSKXI+R0cxaXxwbkBZem1V
Pwp6TnM8ajJCU0B7KzdVfV9jQy1qMylxOy0oIUFhNkVFRUhadXxeKzxhNntISFVUe2hsPjVqcyYh
SU1CeDQzUm9jSTwKejFBUW4xKHZ3TWtvVkJgRzllO2w3MChtRVFobXM/MF41NTEmVjhJJGFBYTYz
dCZ7RiVlOXsmSDlCbW5EZ3R2fCZaCnomV18mRFVoOzt1WXlxRG51Z00+QWtYaGJxMSFvbVE1Vm0k
Yl8kTFRRQVg1RCFvKXlJTmZYbzwzc3h+K1JqemUjagp6N0VsTSZNe1RXZU8xNCVgSUJPU1k1MWhH
YHFsPmMqOV9RaExnRkI5S3VBYihPYnswNUc3YmkxMlg5MWsxR3RTPUEKei00MVZRWFc/UHo7dGJK
aiV7KlcjJmVfRVM9V2I9O1YmaVAqX29yTXE3aklgUGNmNzVnRTYmOWxBJlIlY1M9JXtVCno7cldS
clNpM2tueF9IfDsrdSY1KHQ7e15eeXNVNjRFPjJEZWFVJn50N280UylnYD00fU9tSzA9bllwPzsr
RjlYYwp6YUpDKkV0fT1weGolTWF+MGdJSnY3TmxHUEY3N3Noa1lfN3J5Y0omMTUwY3BIWjNkfGQz
SlZBY2RnMjhndCEmSTMKekVuRjxFNVNld1lZJjs9IzFJUW1qVXN5bX5oXlB4QlpFWWtIVU1iVnQr
Z3JkfSlCLTdIQ0MxWHEzJnMlM1JuZ05FCnpNQVYyRUc9big9UmtWKkIqVkl5e1VRLWtUe18/ZX5g
ajwhXjImQVZYYntmZnRneElyKXRAIShgQUwrRyE/PXdXYQp6OD1BMEJ1bHB6MHtnWjNrKTRHNTEm
bzt9ZEE4Kn0xeCRkN19fZk18LUMpZlJ4QjtQdjhBR3orSXtRV0kjLTlKaDQKekY4cjFFQFE/bipi
XnFpYWVUblAtJCN3dGFUTDA2IWZBWV4oSTVKfVZ3Umkwd3tlfnBae0pNWWdBM2ZIOHQtKkV3CnpC
eHclK3VsMHRtYHpRYkNkO0NBLXBNKU1+bElLenZkZDYmc1loSTlWeVF7SXRJIU5NMEkxTnwrez42
cGIzfEE/bAp6O1IlSHBjdDlhSnBuJklSUU5tTFlYXl8qfDtGPn1QYypZaFoqYSRZayt7fER6SmJ7
cX51ITV+JTgoOyhNZkNGJkMKemFjVnBDeyZFOHp1bWhleiRPfUYxeVRLbWxkKl9FPXJ2I3VzNjxM
YGZMaXtxMGR7SVlNcC05N1QkZyk1ViRPOHFTCnoyPStsPGsrLWI8I0JZfUJhODByJUh+PGNVTHZX
UnM3U1J7MDE5WUxrXzkqbnw4dnNMYTRFa25genpKWHNPdSRLQwp6M1FqQGF0dlUxbkJObXI2KUJ4
aDt3fSlRfTlIQlFDYEVLQ35TM25ednpkV0ZCeXI4JCgyZDtlYjFFPUFkPUt5JEsKelZofXV6RiZM
WiE9Zk1TVjVuT2BucHMjP2RBUGpfcU5EdXtMO0h2MkI7MSk8KUlVNWk7U3JJdT1hckhiIShrWTVo
Cno7SHY0QGU+Z0YqN1N5ZXJuJU1BJVF4allNYlojUFlSXnM1d1heRXFNSn0oaFBoOVcxUCpqTmhC
YT1adFUhQSswewp6UGo3cmZKY0Y8dG9QfXBLaFFQQk9Efk0rfG1Wcj1rMTA7WldjPUJVM05DWGsh
OGk8QUslUysoN2pxcUdZNmFfJHwKenVxYTl0Nl5hX0o+IXdBfnEzQlR6czB9RGEpSkRgTTZjZFVX
d0hkVnF1Sj5qfFpBRVFFdjd5KmU5NEpsezR6KFN7CnpoMmxvPno7KW18UU17O0tXTG8tJTRwRzlo
SChoTi0jNih2QkErYzNKOUliSF92dFJXUCozO1FlTzt0P3xkNVE9TAp6aUw1K0RTRHM9a1B3fHpm
I0w4Mjg8KkJzdFI3UmVuTFBBMVJYNFpDZzYyY01eVnBzJGM2JXN+TCM4aWNaTktZeDEKemxgeFRs
eFdzOzlQQkIkIVZvQm57NjhsJXVpNSRUMk8xZH5QVVIrZCtORHIxSWlRdktmI0hYWVgyflI+cmx0
QFFICnpRYlk8I21sb2JuIzIxJG9DUTJ3SXN6ayg+UCFiXz40I1B5ckJ2cUJnVmRvO1EzcjR9Tk0r
O1pyITxFZnNyfllUJQp6VnNgTlNRanp0MFQ/Z3hKO0QzNz8wS25lVzFfd197P0UpSlBzQTxCejRS
SEEzTjVLPTYzMTJicVJla0tOMFhUZFoKeiZkJmhPXjMqNT5xSUNmR0RTKFRwNE1aNShrcjlkNzIo
NXZZa3FmbUlJbiRVcGg4M2Y+e2VvWWhjQ0Z3KmB2TjZRCnolIX07b3M2dlNsVlpfI2AzJFlefWRX
PypILSFBUH5nKXYkJTM9WD9eeFZYREduZ090MVM2ZyVjRmBTNXExZV97Xwp6Z3NyV3VyUWoxbjsr
OWZvKUBESyRMTHljfEFgJm5VQV91fD09X3cqMEFePVNiQXpAKHxBISEqQWFoITtkakh0QVgKejcj
enhZJm5CI0xpWV9+UT5sZ2d5NjQhNjhGWSVJSzZndzBkSVlBaT8lUihYfExYcFVNcVIzN3VmUE5R
QV82elFjCnpMWG1Ld3Y0bzAzfERyaCtqUko3TDIqTVk3RzVTfExoQWJNaDhqcW9rQ2k/fDVNWj05
dEJ6ejI4R3tyQk5DbVE+awp6d2BqXjBtPVM8enN1ZyR4Z3NGZXdeRzlES0AmbjdwaF40SVpGRHhY
S2Y/QzBjOUhvJHNvclZ5JmslQ3h3TF9SXnYKejlwK3pqNnoqKFUhR31fKGxJUzFAUiliV015cyFs
VWtoWD9xOGhRbUVpQVVeNDU+MWVYKnBFYVFxbjFYIzYyQkFUCnpQXmBnT0JWKmRDajBsfW84NDtM
ejRMPEV9NyQoNj5qMlUydmR6MHY0ZmMmcCZ8RjdhOD95QnNfJlJRSjJPOz9AXwp6QFZPNygkYzJj
eThvdkBvallHZ3ZObCEmbjY5UERSQmtoSFYyX051RDRzV0VycG96X3pSUjImWDctWCp4RzJSZnQK
ekJrMlotelh4c1JSWHgyeGxIaiFpLWJtUmpxJGxHd18oYip1YGpOdGBfO2UzZTteNzBIZUVYSCFa
UkghZ0doVj5WCnooIzcwTDBEazJjXmY3WktlJDVBUmlheEdwNzdrWCh2SVFHRVhMK3UlKCZ0PF9K
NDw7a0wtRTV4aGgwXnlaMCQ3cwp6K156S2R3Mm9UJUlhbytyYXcjZ3s8YX1nJm9McnIoSmpgJURQ
TDlyYTg2U0JyQjVAZkFCaGk5Zkkza0xOZ0ZNJTwKeiEkO3RIMWF+Vyh4UFh7fDVFc250WmZQeH15
SSpaM0ZBVHxae2I2WVVhVXA9UHc2d0lLa2NnbSYkWDx4Qzd3X3hyCnpWZGteZjhQQn4rVlpSbUwh
cmppNXhVMiE4WGxDeD49XkBWck9EM2A4PG9iKjNVJl85VT14UGd4OE45OF8tPVAwVwp6Q01zKy1s
Y21Lazs7eD9WanpvP3ZFZDtGYHQoPmZvI1M2aiQhaVd4PlR4RSFCR0Y7cWB5MHwjWGF9bWQqSFN0
I2EKeiV7OzdORyNzR3ozUTZ4MzVrSTsqSyNgQ1J5STkmO2B+RE44VSk7JGNOV2ArTlZDRFQ0TDh5
MzMzbUxxcHh4Sk56CnokNFZfSW83bzZMUTFBfjRmYH5UUFhjc3wxcUZ8TEY7SUZ6QHpeen5GOGQl
ckJ4KDMhWXUmI2wxNGc5flNmIzI0bgp6bHsyKER5ckZGZjJxVkRmJGZgKyY2QlE1d1FwJWMjJHE+
XlQwN1cqRzV4e0tRcTBSPSlVTm5GUUxNUT9YNWd9MSYKekYlZFNqMC0hfGY3OW5YN2FXPUglK0pN
fEQ1e1ZYSzNkNFd6KTRWSXZoRWhqdT53I3dER3UkWihxbDZjTGtySmVVCno4eUZOOUtyXkIrajN+
a3pYaHtQVUlmezRAdiV3en04YmR9LWZ1KkZQcmh5MHJAVTBldyFKeEA3PG0zcE9yfnNHXwp6JFFh
MnRaV21VZipyYTJJPCNKO1ozNjhvPSQqdWg4Q0EwMl9BM1VQdz9xe2l9SCphQkstTVY4WkAyPWZA
I0the2UKenJLRHc0X04lST9ZaUooT0pGMEpCYzxpezVnezc2WGpqZiRNLW93KyYrc0RgTS0xIVJe
TG9RdnU1Kj4zYkh0emIzCnpfPUcjRFkzWCt9P3ElTjNkekBjVFNYNWx7PGtqbXA8clM0eClpb2Eq
SzdEUiVgcUpGO147PnNPWihzbFNmeCs+Swp6JCpKaj8qfTAkZGgrT2I+aXpGOE9CfXcpdHhmcjJi
WGZpU2s4NVdUWGg0d31TWEN4IXZFPTtqZU5lNjRAd3V3dDUKem4zNzMzPmhgMFRSTlNKdktiWHpr
S1R2UHg1Jk9EaDkxKUV1Kn1vPigqPyZ2MlV4TkxYc30qfHI7WlklTEZFUmBnCnpmK0FxWkQ5OS0m
aCZQc3NrXilQR3JKJGdzZndoUVM1VGQxX3JiUGstTkNaV3FLI3N3WFEpNE54TTNuIzM1QiU+bAp6
QE9fLW4wJSRTdC1IajIkMnRQd0tZaE58a04hYzZzWUlGelI8SnQ/fW5mPz0/JmNUNDskYGhhKHQ+
YmFSYzRLTn4KentfWEVseHA2NkYze0twZVFUbzlxVmZtQHlBcD9fdjtfX3U1cWlhfXF4fFVhWSlw
eXROJV5XRCg4PmN4aj8ybnpQCno8MnZ3ZXpLLUcydiNxaE1PWitfZCZYPjZfVz8qaykyX1hBS2x1
eGQ1O19sXi1ne35BSXhndUA2cFlNRG9jVjB4Ugp6bVFVPyMtTUVuUnJkR0RlMFZCMWUpVDM4PkZQ
QHFeKVVWSkxHKEErR3txbTghZVhNcWoqbUIjXkpHdCFJazRgbXUKejQ3ezhlJVJhYmdBeyNmKmFN
JG0xYGxyNDcpVjJ0blMhQUEhZVIkZkUhRHowa296MnEhaiZnUk5ULVljNHhya0R8CnpGcyhzeUk8
Xk0mR1NeNCVUN0Fodm45Rytfbj0laHFmNn5rZSopTWhXe084MnVHcEB5PD1lSipyKHs4YGp4cUNW
QAp6SzMwcHlzKmR7M3dFZiYqKDtLNm5BYnkjISpVbD5XWi10JVdyKW5NNXlJblRFUW9mdFRILWcp
M01LfGZrPkVoUkcKeiUka3JYayhNeSp6JjF2PWRza01uVmNaZWRHLXFCWikyfEJHQ1h7MWRWJnlv
Mz5Xek1DRks8cjFKa3J4KjhUeDlVCnpBYig+JnViaHs3SGZNUlFiSF41a3RKezN7LSEheTAtdFl4
MHtjPDM9cU80fDdJOGsrb2o9cmtUTjZXLUlZVTwtZwp6am1+MXtoM3dMd00/UntSRi04WW4kV3dG
Yzk1UihfU3V+R2xKJGFiKm90aVMrJWA+aFU0TjBHfnVvVkhjazlpODQKeisoZkRyZCplXjNIJSZk
QHk9R3kldnQyJkN4UX1JYldxVytjYyVLVHRBOUtsNGlgPWtBOVI+T2FuNGRKMklPeH58Cno/I1Ak
dG9vRU9yME1pTStrSVE+fWhQMXwyWFFDN0lwN0QySXQ3fnYmdUhTY2hJa3E9OWI5YkJUb3FiKzZL
OXRuRQp6S2t2eFJzbX1afkFMeyRMSytlRFJOcjcrN2AoWmd8JEc2ezFtXkspd0tSS2M9PGQqMUI4
ISUwRkA7RERGenVWOyoKeileRT02WXZHN1cjU2AzPl84dGQocEghUnoxJXFEd1B3YHBIZzlWcTRj
dHlMaktLP2BpMlklLTg4R3BHflN2QzVXCnpUZ05QUz1QYFhDQHpKJTZ6NGxlb21rY0w8TzdvKWB3
VH1ZRklpODFza1pONmUzV2d1ITMydj1YWFFpYjNHdl5sIQp6WVgrTUtEIVEzfmNDS3psUSlAP1ol
dT08WTsmUT9FS180bVdta0pARGY/XksjNTx0VW8jcm0oQlN6RnpjM0dXeGoKenVqK2dyZSZQSypR
TFRwaTh0YiNlc2shWCNyfWZqdTYpJERLLVRjZjs7Z34+LU1iOUMoZiRCd3ZzaHFKY21vdkd7Cno4
YC0mSilrN3VnOSV2ME9ZYFc1eUxqWDNNV0t9NVAxSlJGbz4lVSY1XzI4RHVFalY3V2IyalgtOy0p
dH4jJHdhRwp6aXd3YWJaI1dyUyQobmd8X290KC1SYCpzOU9JTEV0V25UQHRWcE1ZMyspMVd8PCRO
Z2JTdiZkeHArS2owTzVRQGcKenB7cnhmcihiXyU5JnNfK0tfPDFhXjEwT1g/Qlk7ZD1+NWk7d2FY
Jn55QmEwSTRlSlAwaTJ0O2RxSz03X0dmeV42CnpqYykxcCEtcFI0JkQ8dCtKYypIXlR6JVdTY3to
NXNeNi1YOEFZYlJWJSQhQzUlcFEjJTF1PSg4NGYhSTN3KntYRwp6JUokbilJYjhCPlNLLXh6UnEz
YVd6MCpJLW0tK29FMUV3aChANz8qPkJ8Sk8rN1hPMnFEaGFYM0hkbnlme2smKjgKekMhdExMeE8r
dip2a2IxUGhtNzhqIXFXWnEtZklaUylZOTx6aHc8fURlXj1ebjRSPiVALWJgXm1CMSpBbHlmO0Y1
CnppK3R0Slp6YWM8KFF8e2x0WWg9enRBe1c8Z30kJj5ffm1qYGxyJXFNXzMzQzdZZnJIIV9ZI2g2
KztyKU93ODdZMQp6TTltWTZhP2Y2I3VHcXJRcXhocD09anBYe0s4UUFuNWRmPWdsTzl2dCVtKT4y
anE8ZFg4Kkg9TzMhZ0tXTzRFKEcKekZPKElVYWdjQDdaUUVDPUtYP01iUUtqRnZZfH1UNT9uJGVV
MHZtVDsrR3d6R2t2XkAqRSNiQzZhMjkyb3h8MlZMCnpSTUNeZ2Z0U2w7KmBBLWlSb3RJQXV6NkMl
U2dmcnp3RW5KUXpXSGBeK2tTSkZVMi1xdT5VJFJsSEMoYzdKWVR4KQp6OUFAcispWmRDM0dUaj54
cWokbVFiZFB0MHpuVyZjSDBYez4qeX4pVDxKQHppYX1aTSNjREElQ0BGQEdmcyU4SE0KemY3U0U3
RV4pJl9nWUN6Wi1YO3ZzdkxFaF9JaGpFRHFUeyZNNzdSeTh7blZZKStNKjU9KjRPVmZSfEtgQU9C
bCMkCnpURHQ9UmZ+MjEkWD9feHd3TUBaMFhKd3IhX3RWVloreHJ1Kl9UdWFEP1QoVDFfPSt+X2Zz
RVp2NSY3Wm9DZFc1cwp6c2J4SGxkNzNaSi1Cb2JvZFBROVNKMWc1XjktZ35fanV6KlZDbGVPekc/
b1cyWT8jQHtnRiNFaVAxVUM0UEIpaH4KejkqPHwleE8mTC1vdVJ4b19MRV5fcXt9SikjYGZUMTRx
KGhzQGVGZm1gPEAlS3lkT0FxdHs/eVU+OVNIYU99Sk1OCnpeV2JhNngrSGdCbHdZS0ZJIz0qbipW
YW9fN09pYW9ifk9+SS04RSZPYTR0WGZwTCRTI0ZrcFhPbn1vWXR7X2NNNAp6cnY9QGdjfG1AaSVT
IXw+SnkzX0ArPVYtM2dVMlYlYHlEO2FQXyM2elkzc2xxTEhJQ1JIRm4kbU9NKGRaRFlqOEkKeiZW
SWQwWmB6Q2QpczJATFU3RFd5T0ZNbnJZcndCYkgkNTAzRE9fREwkNmR0Qj93fkt7XjZpOXxxa1lq
bnRyeW1zCno2aTU0R3MrTDRlWnkpX0NYV289S2Fadlg1NCk1RERtIWw0cHY8T0c1PUxEITE5MDwr
Yz02bEw5Xm8rOUtKY3FWdgp6eF9ffDRfQD9zUD1XVU1JP0YrbGdBR2VUSyh0UV5iODJjM2FXe2dw
TmtBQE41Km9GOHw5eyZgTmF4KD95JTFZJTkKenJ9T3V3WShEVz8ydSRmIU5SQUE8ZVQ9bUBOaVEx
Q0dRJkMkeD9DYE10RWx8eGFrKCRPYEd3YktaJV5iMjRWQDczCnpIP2ZKfFkkOX1yNTB2diUjZXw7
ME5BdyR1aXx+Sn15PVZOUEAwaSFNa30zSzJTVCEwbF9wYVNQLU9sKCRPemIrdwp6UmMoSWhqaiR9
TTYwM04zbD5mPCglUjJHfS0heHdMOT0/NXN3XkthQlZjaGd9ajcwTn1CckZiVlhWSFMwSHphcEYK
eiQ0K2gzNU03dklET193Nklhalh7cXhDVE16KntTYVRNS29xby1Pen0xRlFPclZoNCpaKXUkVjJf
UjNWTG9KZVcmCnpXZFpjOVNzT2RRRjxoYFQ1NCpxcndrNGBYfENFfmdVQXt3ZVoob2xUYmJzRjRx
cG5nPSoyUipQaHpWRGRfY0lpSQp6V3MjSF5WWEV1PEpAZjhldEopdDtGUHBaI1kyaXJSWD5SJjFU
ekZEZ2RhPlRgKXpkbGd1SDdHJUJ0cDxuSX5pRTQKeio/LW5hRW9ReFVudG0jeE9udElkcF5GNzJH
Rm08R0JGbndBTU5JYyRWJUdnSmkqMjwxa0JzfkJwMjtoe091ZyZyCnpvQSNqb2pBdVEpLU58al4w
O0woPjMhaHMoSmxrX21LZ1IxbGdfaD1uPz5+LS1USFlyQj87PlJ4aX19WC1FMkY4Twp6PGFEeFlh
cTI0bS1CaTVOP0IyQjBaJG0ye2h5K2loP2Q8Q3dPM0lxYntYQjZgZCs8bktNYGc3ST97ZjJ3ejV1
RXAKek5eLVMmTSVRZllUZSFCSUVScE0kR2ktP0I5ZXcqKXk4MmJ0ISNlcjcwYUpQWjRXVTFjczwo
JVg+Q0FIUFcmeU13Cnp4d25zOz5ZM152b3l4OEV4dE14OUc8RE59JGtNSzNpSSRrK044aXArKWsm
aDZxS2NtRiMpM195P0J2cU5mVWpJQQp6PEdASzhMd1VMajY8cmgoSiZefiFRPiFfTG14R3E8Zz8h
dCpsVHpgUGcwQVhNd3s8Uno1UCpOc15nUnMqIXBGR30KejNPZmMkKDEmO1NaS1BLb3tpKCFUc0JO
RjVjeGZJKihjKTRoJVBKeyhpP1RLUnNrJmVEbGNqYGIrbS1tQW9sR2p5Cno7WkhtQztoa0lzX081
OF8hfj8kTUdYJF88I09tVkM0XitsfD5VKEQ/Kyt4QzBKVnMyQDhAP3J+V0xDOF9uYmdPfAp6c2g7
Y3F7NWI5MHc9RSV4VVYlK0syYTQ1cHhFMENLKGlofUM2TWZJQ0paQGszV35iIWxJd2ZBVnJzJiFx
JHJXKzQKem5eWmhnT2Z4U1lWWlItK1dEfDU8S0k+LWo1OWdBTlckSWQ9S0Q/Iy1jMkkpI1dxKi08
JVhPdzUmWW9XRnBgM0s1CnpNJjZ9O25EUXsxaVJaSlg4UysoOzYjNG1AamxyKm9LSEdVYk9Xbj1r
UUZabjRZbiNHRll5QlVKLU9ePnYrM0lsTwp6e08wZWhEN35zV2NXajFPXiRER2IoU3o9blQkTS02
aWtAQEM9TTxHUW5XejFmNVkycTs1ZEhwRVF+ZFAjPiRrYl8Kei0xbEJ7M0xDUVI2YitCPm5xQGpX
PUAkMHohODQ9Rj5palA/MHBwOVZyVyVJKDR6Rn4ySk1GYyhsQXE2OUcjM3IwCnp0WTBXZENqY3RM
RD56ITcmKDsmXkV0YmIwNipFUV4kSkRpWDwrTXBNbyNNR0pWQD8ydTw0MT5NNHMrQGo1V3RPTAp6
Yzc2WkM9R1cqbEA1VEY2SVh5UWpjKDZVOG0pZUExU15oWDAoZSQmYSZhVjZVI3l6eWcwJj5zV2dI
amBJRnV2eHoKekg8UXUyczUtdkVBYmhDaSR2KTlPVSZ+V284MX42fGVZc2hJT2Y0PERvbysjdmVQ
VG5Cb0FWVlM0bEFGKVVyUlV8Cnp8RD5Bc3tIRC12c1dDPk1faWpGSl9OZjNSOXJsajBWWTlBVnE9
eCtDYXZ3SFIjQHM4TFBnN1I0Jj5WPG5pPGF0RQp6OVFgMnByZjdrLWFtPlB2WDlDa3hsZ0NofF4m
ekd5KiFaKkNQa3IwYFklZDJrZE1pJWYkOWEjNmxYWlBfJDk2XyMKeip0T1F9ZE0qMk1BbFNxeT52
fE4lUUZSaXZxdj4zQCtkIT9gJCp0Qn48IT9UNVlQPFF4c3FIb0lYITRsa1Ffcn0oCnpFRzlBYHkk
V2BwPkx0RjBSMVBEfSU3YmhMc2s+I0xld2MyMERXeG1GTmhqOVMtTUF4IXVhYyNrbF9VQVc+MCtI
YQp6Kl5RTFc9TkFra3tJXzFse3FVI2YqNjVoezhkQlp4XmZVYEtnLUdlOTNucHolSjshVStQcTBo
JjEkZER3bnIkMjkKej5aWWFGRmJudFZ8OUk7bUVyKihyI0tRWHghQVQ1PCMrPD1TQ1IwUk52KWlK
PTY/TU9mantibGZAdk53dXdxd2dwCnomcCMkRkI+KClMOTRsI0dJTU85U2BMbEZIOStmdVhMOyhH
Zl94b3I+MkBVZ0dfKX0zT21UeVoyLSVRc30tRHxlcwp6KEN2eUhEME0hel57Mjk4U1E3Vkg/d1BB
NjR4WClsYHBPa0dXb3FBWHR+K2ZFTyhvX15uYGRvcyNqR2EkejZ7PjwKenhaSEo0Pkwhb2VLTDNl
d0doVWghUFIqWX1BIT00OSZmZE5fVj59VCtYSztGKDx9THIkNlJkOG1Fd3BAMW9tWU09CnoxY2xG
dzZrVyVzYnQ8dTNOKX44VyE2JTdNVyMwJUNvNnxLM3xKSypjdjJ6IVBMVSZVRyRDM2w5bH5qU2A3
QT5gPwp6SHk9SXVaKy1hZ3QtJD1GY2ZlRnB3WlRNeDtgV0kwPDNOPis/cWs9M1h2LUxkeHdQcDlO
fFhEeDgodmBsQF9DIS0Kem0xV3ZRMjN+ekRaKSlsJS1GPmA7cyFsSnY+dUY4Ml9YdVFKVWZwKHt2
VnJ5eVp8K2E9WUpQRCk/ZEZNdHFjWjZSCno0NjU4dyNkQk1Kdzc3Y1BvOzBkalhqOXFGVlptSTFa
KEAwMXhPN3YyeX5oMXYreDx2R3pNVGg3KUFsXyo7fWZBIwp6VnR1eDh6UkBJdXlpc1o1VHM/Ym53
eWNSa3FyUHhDendneTBtdkB3PjZpYkheYGR2MCRmQklORkc8b2x4YGg7OHAKenVvfE57Qz5IKEZf
dWglZVlBSVZ6ViVZa0JGeFA0Pz5eZ292WjE0MSFEbTlLMSl0dDRSTU5Mej1rTFg/JSlwWTJJCnpZ
UHtncTVQRT8xXkx8X01AYFlLPUBKVz1zK2xkNER5KiRZbEd9NzdpN2psQkU8Z0xZUGxYQV45NGIz
LWkzSnE+Owp6UCl2N0sqcyt1I3Irc0pPeD8hSENsUDdiXjxlUF91bCkkcGJhS0o4NlNeM1Z7KFVm
QTxJeDJRTC09Z3deX3AlcjEKenpPa21vVFheTlVgdF4pPDB8cTBIYCR1cDJPbGhWWDw+O0kldlk0
RGJoO0QzVDtmWEEqQ15pX1NfcihAKjkld3RPCno/aS1+cXA8ZEx4TG1SdkJXJEo8YTJVUEUzWU18
V1hfOGFjX0RlLUpPKzNVM0IyZX51cmBKJVA+clV2Q1lrQTRgaQp6X1Y+I2V1P1p8dm4zfVZ+Iyhi
cHs1ejJuRCYrLXl8VVhGQj5kYiokYzZnQndpUnVIY2l3Nil1UmxNfEJ5JWc0dmoKemhvZjFwZCQ7
cjBWMz9iNnItYiVfKDI8aVZPfSNnWU0pK3pAK0JBSzVheU4kT3lIdmtqYCY+aDEzUW85Und1SlRX
CnoqJXdaSE1YdFBrZ0xXR0ZaQi1+LSpRVWx8TS1POUhWYGxATWRYcn16YDhUPGp6WX5DQjdgR3h7
LVNLYipRJE1kdAp6MCZ1PXtQS0VJNHJ8ZzJ1ZnEzKXcpN0NYZFYpRDh5UGp4Ulk3QFhoSW43Myhi
K2xkUTBCYDR9dzIzazFeQ1MmR1kKejREeHFgbHw2aEl4Jkt7X2B7M3phe1ZgK3UrenJtPTNJK3F3
c0A4bFp4QlQzaFhxeUlnPkp1YDJ4cUNiNVJWekIpCnomLS1aN3pCSTluPXk0WTw/I0A4UjgzZWBC
WnVEaDErZURlX0ArbCZCYEdUcCR3KVReNFlUS1diVVNob185SVl9TAp6KHtTYTlfPiRLYUFNUWAx
TVVHIyVDS1ptblA4aTVZYHNqNW4+TWo0Qnl1NVA/UzJYP1o9QGd0cF8ydUY/Tl9+YkYKej98MGNL
b0VTTTRaYGlCKSUxbTgwcU4lQj16PCt3bilrV29WNmc/c1d0ezEkP0ladTk+JjJzNE9XYVJxa0Ur
PiE/Cno4OXsmMDt4NHw5dWYrT2lmVVUjeCt0PUoze3JXVj1gYzk5dldFP3FRdFB5Znxle0kjRylS
LVl4cXZ2Vll5ZGIrbAp6c0BgcyE+bUtSQFFATGFYYkMqMypjR05+RCpTVXc5JEptQnhBTSVUNyUo
b2FQZlQqYXdxMGYkUUZSS156MGlvcFYKemxBR29YJCVjQSRHcVpEaGx3Vm4yJVFzO05EaklMUGwt
K0U4UnNUdHR5SD5NcmNlcj1aM2tQJC1EOytgd3lZNFJZCnpvZXZrZi16VU9PQzBFcUlXPzArKGpV
JG9nWHh5dSpOUmZCTktMaGFmTnsxQXI5djB0dkVVST1CTTRVZHdzV1dITAp6UU99amhDd0JBRShj
YnZpP1AwP0tyZ3IweC0hISVzclFkb0xOcXloU1VFUDBTaTUjej5GandvSFc0cDt0KHJiZ3QKei1t
a0JpbHdXKHhePCM8fSVNPzF4V2ttTjNLUXA5WFAldGZ7bXMjVERKSzMxdWBvK205K2N+QjlSLVl7
TSZiUFpOCnpXWmFEMVUtano3ZXpnKF52MXQ/ekhfa3FPbyRKWTRZbSsyJXxFa3ZGYGw4MDdlN2xX
RD9qOU1RR30pNjl1Sm5SbQp6cm15JSNqJEhRbW18a1FxQDdxTCUxSCs1RUh5ekYjY3dmMVBEPEpi
PStNfCRkMmtHUGM2XmU3TiUqRUB4Wm5rJVMKeiV9fWQ1YClKPGo+d0BSRzB9V2gxY2hKfnVPdGF+
IUlPMHkzYk5OTzxkRTQ3MDhrPjh3NTFob3YzSlJ9fGFsSHNPCnprI1M5KCUwQVB+UzheazM8RUZt
dVZBSkArVngjbFBudW0+Y2Q5aXdKZW8zbj9UWnxvQWwlQ2duSG9uYiQtJEtXeQp6K2lxdktMfUpD
XzFHMXxDWlE8I0swRWYqRm9JWTlGJVlDZFpiPGZjJE1KPGI0KUdBSlhjd1hPcXEoVlJCLVNfKX0K
ek1eIzxFJWB5d2RqQnplYVlQPV9XcDElNT0oI09FUEJrKTNjam1hNW5pSntqS2hZYU5WVWw5UFIt
TzBDMSs/KStICnokPC1DPSk+MDxJJnw8aiUlaVJGY0JOdiVXcVUoRHZ3IU5Odmw8PDkrMEJtIXlo
WU02cnJ0azxIbDJ2RH5GOV9Kbgp6UGNOPzl1YkVfZ3Z8VzV4UDU7cU9qS1ZmOCQtfXF2b1VYK2xi
dHhTUD9ONyhnRG43bSpZLTE4UDZoTUVocSRUQnwKemRgVlpSIUJUUVhDKSZpTkJBZURtaWlYPVA8
aGd2N18xa2FXPVd9TjZJTCFNLUQpZyVzeDheZWgjKWZIVVJ+WG5PCno9c2xURF5KVDZkJml6e2JF
a1Z9RmQ5PkVxXjA9fTFKIyNqVzxkTk5EMUlGKE5BbiNQP2pgQztFcUgyISliZ1BhfAp6UDBsemxw
VlU8VGchekwoO3BidH5PeG8pUUkoSyNUQyZmUEkkVEFiWHw1fWNvV2lpOzI/MzU/KExoNnRufEgo
WkoKenY5YDd1WnZgeXRMITYmbXY3Mng0ekdfaFBgbDRgUVRqKylFMnhhWGU9OT0wQztrbWxeQXMh
K2xtb197KyNLSVImCnpGTXxDI1Y0QUFqKlM8WFVWVDJ5RT9zT1pQKlN7OTRQRm9ATUliUCU9d2tf
YmtmI2A8WS1rSCVeSXlFemNmdUB+LQp6Xit8SFVobXhFMUB+TXk2eWx3azN0VlF7KTxtJlZEOU80
Q3IkRVd6eHc7Z30yTGJFQVNHYEtTRz5+b3tDOy1VP20KeiFqPkYxd04zQll0a1k8eTN7OWYpcz9S
S1JhfCY4Qzc0PDU9KFNJKVk5TnA4RVV6cEp5UnsxKWF4dHhkYm1jU1VFCnp2NSZYOG5WUVh9enE9
Pzwpa143V3d3fklqP3ljIUomVjBSNkhLPEdnRjlQdFVrTUIwdGVzMHRfNnsrfFJ6amQqQgp6dyVw
JXJMRjthXjlzY1hrIUdrb21FVUJWWlMwXntmdktpY1BKWnd+NG9jODN4TiY4UHBII3IzZy1xdX4r
PmRJdSUKemZBVU55PDhaKndvUUFKdUtAUV87U005NHRBS0hIP1ptIS1WJWpzZmpHK0JQciV5RnIm
NTt7Kjc5bGl1b3NqJHo2CnpPJT1CWSluWnMjWHV+dFkwfmBqMF57cj97d0k2aktOZ01rZjc8WGJm
cVomSVo7T2JNYWs9OUQzc2NpbUAzYzcpKAp6bUBJTmNVbnFSbU4xNC1YM2ROSz54PkNyKVNFdW5h
Z3cwKkwkTUNpRXEtZUFBbzN2NTNYX31ibm5ZKWlxMSY2WXkKeldVfUttcE59VGVPVXNAPCZGT2El
JVZXdjBaK1hPQXtONXw+O2p7eV9sWVZIfmBBTXgtLXV1Z2tfdnYlSHpMdTVOCno5fH5QIW19Xitm
aVdyNUhPa21+UWAhNlAoZ3ZMMilUTFNQdl5NfSFkKCM3Kjh6Zktwdl5XXzNGaHN3bWMjSThXYAp6
S0QmRko2flR2Xl8rbm4jKFgjfGtTTjB+ezUpWkthc2tkJDZgWHotQVRjTTU0Rjt+ZXYmI19HO29v
RFFoTmord2UKenJUOGdGTllLWDhpYHMoekRVWWJMQUtue2xuelEkYGkmZWEhI0VubjA+OHI7Iysy
KmkmRSphbD9XI3lWZShOMWo8CnphaiNDPkZhT3omckBKcDcmT2hKZD8ySWB6a0xMNjNlcHRaRXsy
cmZyPkNvdDJQcmxNNFhRP2NVUENhMH02V0w9cQp6bmJoancjandSO0NKP1diY35WOEx4U2grR0Vw
ZUo8O0wxY3BGNWtucmdJMVA/ZU50YUM2fXM2JjlIJXE4JEM+dEQKempNQD0zWXAmYHFGcVl2Z3pz
S1I1TkszPSkxMVd5MXNyUz5aRXwqVj1oUFcoaDwmeTNDWUVuZDdRcVFoNVZ4cEJpCnpVUmhiVkJ1
QEU/cUswKWxjPzFqViRVT2NlNiU/OElFfG1xcFA4XkYjJF9VT1AqPzlSe3E9VFAtKmRxYUhKQmJV
ZQp6TVBRMG97OzlVbyhCWCFjTjdIe35aOU4qdHdXLSVaWipaXlYlJSQtTWh1KndTdVQhb3ApNGJM
bXhAPEYlNko5d0oKei0pT2trSD8zbExmPXtPMD9Pe3FLJmdMU3Y8Qyo7TyQwOUdVdXhlRnZyOGE9
YDx7WH5xaF8mKlJSV35sQCVHPD49CnpHUl4rJWQ2QGI0LVUkUVM+IXl0RmRVeEVPbUNxZ0Z5SVhh
fElzZkw2Skp0NCRgKDBDdTZxWCROZ0Y7Tz1AJXNtNAp6KzBEdiR4WmxncVp8MSNHbVN2T0NTZUVJ
K0hGMGpWdCVSPFh1Zm8rfkxwe151Y0ZNRlh4X09KYEN6XmBiRFE2JHAKenk/QHp8b1MoNXhXVnZX
KFUmNW5vd3dLQVlGQTliOEFKJWpRSUQ4TGt7Pz0/Z2V5MWpEPWwybmpYaUApU1l6fCthCno9WE83
fCUtNiF1QzVJdH5XX3QkN2ErdyVyLT9Be3BwcEt1ZUtBMXhLej1DNz5nSnlSZE1BRTR5QGc5bXdY
MnhsVwp6a0drLWNFe14mYT4/aj9oTzBJOWVyTm0+QXVeQEhOeXlaU2NrZEZfUW98REJaYlkqaHNr
U1J5XjgyYn1yPUZkMHcKekk5MG5PaWFKJUNwOEVPeEspZSNAemh8eSs2MjRJaz11OTBzJUQyJWlz
az0hck9mJTdgVFcmSks9PDs0aWxsS3wxCnpCbFRuKWl3KnZkbWZrRTU1UCo8bGomSHBkVWFNVmpt
V0tlSURiOWMxWXteTXo+ZiY5eEV+aEJ1PGBVclRCekgqZQp6b0xmamBlfSUqSyh4cTY7bWVXcCRk
NSgxMGhCYVJvWT47eV5iXktBdW9wPWhmSDAtQXJFdTVJN1ZIezxtKDdFeH0KejZWV1MpZ1lGYTYk
d15KZ2N9MTZSSjQ4R0BkN15kP3F1YGkoTjxYO2s+UWl8Tit4U3BXKEs+ZjRlX2wyRGg1VldLCnoj
ampNaXg0NS0jIV5mRFdKNmcwbztAVkt8P2I2PUI4UjhlT19tPG5IYHVTTEBwc3d0YUwoVmo+d3Q7
PEhYMEVxRQp6cGtCdSFZUD5oNVBBeWAwMW9kfTRKVHNYKTBEKXt4O2BrcmVEPHNVaW8jPlpVYFVH
QXpLQTtoMW9BMmZmM3cpYDkKemM1NlJKWl57O21aJUsySSlybDhvMypFTG8tdXFOa19faDFgbk9o
STUyY0JPcm4ydUl0dkhCdEwrLVZgfW1kSD1HCnpRemVfVDMpQzJOdkFPfXp4N05rSC1aSWt+Y2FT
Zj9CVz0lODsqQC1hWj1KKTsqfjhkXzMzQnFjJk4mRENqQUpiMgp6bWQxdms9UU9HKnteNU81QVRR
ZTFmYzk5SWJqViRMU05XeyRxdHxmaC11K0hGO3lmTGY3QUBtbWBQXnROR3NIZFMKemFjb2V9S2Ns
fFNobE1qdGgyc3tVSTxIJX07S2x4SkNGWHR9LVEhRHFHZHFYQXMtTWFBbWgwSG91dk1LP2JtXk1T
CnpUPytZZk9BfipfSWJWMUdeIUZjR0IrO1M4V05aZjQjQCN9RmVMZE9remY9K3xUZkNJT1NMen40
SkZYdEdCaExLKAp6ZzZwPkRybGw9K0tZWUcoYVp1Zmt4fj1Zbj5+KGtITEdecHtPQG1xKTNvPF9G
Z0xYUntxJkpqZmdrSUJTSmw5QCsKejh0NV9pU1N8MHZeb1VsP3lOYnF7MjliKUZLOSpQKGgzVzVJ
PEhDdT9tUyh5fmF0fThqdDIlMzVufjJWdWhAPCY1Cnp6Qm5geilOSnNAc2QxVzgtQHhGTiM/RUUt
alBRYVY2UmJLIyVGR1dkLTxwKHJ2eUJJYmYxYW1XKnJpVUpLJWVWbAp6Izh1SjU2RnVAWFBVK0xC
RTVlKHVXeSg3NEBEYjJ8RyRaR0s+JndyMHg3Y0JBYVdsfmk+PVl0aXtlODJGOVpQJUkKekdpWFl9
Yj42YktQYTE0RTZ9YyN+XlhTRVg9RSpxaztAQnMyTzRTUmNaanIzVEx5SDU9eXQoX2RJfHlKJXJf
Xm5tCnoyN21LKmlEfUlJJEVtJUVnX1B5PTN+dTR3KmxrWk5JZXlORndOKCRmNWtMVXFgUngrckBC
dEhWMmZrMVRleDhvSQp6Xk54WT1lJTVFNm9hZiQ8N1Y1XlcrWnllT3NjIW01OWBkSXxHVm1sN0dv
TnpsK0FWOG9KVVk1aEs3O2A3S1hHak0KeilNSS1TO35jPVMlYGF4YXBwZSNpLXhzJHktZ31DcyVM
ViVVUjBoMSVZVldJX1VtcX5nWncpVEhwYnxVXnJuMCpRCnomWCU0STJqcDchaHQ1M0woXkhRV0pe
TCpFZFFzOHl1U2YxNGheQXJ0az5UYTRqaGg8TEhzbjJQTiQhVW8leEVRbQp6JnFrfjxqQD1oSih6
LV5SMUtnSXlNSipDOU1oZF5WdXE5RzlzQzUxbEV8TFBKPmZlPj9ISnp6PHMhaFhVYXV7e2YKem5h
O2thJjVgJXZkcjFrI19oJE94ZXVZNiM8VEswbGVPVG9kT1BAS3V6b34hbWVGbW5GP2hBdC17P3JB
MnVRUUA/CnotNTlDdHVJTnYoOU0pRVlsbCl1Tj9qRUNpKiEoRXlOVT9Pfig/RHNUWGRTbUtkJWFC
WmdrfCY4K3E9dVVha0oldAp6TVRgNHhXJjg3R3owRF9JQWlFdVpsVSYycGUkbiQ7UlFpKnNZbykk
MW82VUctbTNXYDBkdjwta21mJjY3JWpzNTQKejdzNmxsVmk3dDgrYyklUTJWUHNRLUNXVzdsSCUq
Z2l2QCFfWiMxc0hGNlEoSkBfUjErRXJ3cmNpITBmXnBlTmxhCnp4dTI3UmpUe1k1Znsld0pDWDdO
PDRiKTx8NipgeWljV3owaXFpVyV3bmReQyMlWn59fGNIIXhuJmVZZ2xBIU9gSwp6PTI/MDdeaWlg
SjtFSDg2WHF+O1VGPiFSMU9xQWBeT3MkWGUmZGJNWCFiPFM3O21SX0N4aEAmbWc4VTU1VDM7SigK
elhaVGxBWXQoNylaZzlkO2ktQD0/PmdsNC1xSSklVkY+SEhrSkU/c35yLSUoVFFHXlN5b2dqZWJD
Ql55YWM7a0Q3CnpXQE8zMEtXK3FvT05gLVMwPU47TkA/WUV0NWI8angwOUBMP1crT24rbnZEUkB8
N0lnVjwoaUVFd1FEdjRkfGs1PAp6MDlqR31kbjNTcV5GRHkwSFR3WGJ8MG5rV1JJYj92KEUyeX4w
TElxcjFETzUyNCoqU0F2a3c1ZlcqLTI8bnRjRlUKeio2YWh8ezc+ISE7OWF2MUtyclAkLVVwRDlA
X1FlXmpXem9LcjJpWkMwVndfVj47dzI7dmotc0xafXRFcmdXcjFxCnppZU1sM190eVUtPnVEJHtE
NmthZGx2cGc1aWkobiZtV2hzKmhLODFQPDBifHNfTnw7OD58NUVgYTZBSU1JNCp1fQp6SG52QG95
Wk1FTCNsKnhvZDhPczBNQzFmUyNZQmtmWHtlfkVYbFpDIT07JkJQd3pGKilgQT1WQCNhVEIlJUtH
OWcKejstYSh2amY9RFh1byFBa154KGVrQE1yTzwxIVVOaGBOZDxKWUlkT351YnVZTylzNU1BdHxq
PEkjY3B6MGAzUVJvCnoldExmIWdyRExxYn5UTj1YdGJZT3ZYT0JZPEgkPVVrR15veGs3cFJaYV4l
d3xfS1QoST5ecFp3eTNWIzxFS20mUwp6eSNKXihyPztXWmI3V3VJemA+UnE2X2AkQHJfeSkldGsx
bGVZPGF3NEVMfFctI0BRIztpKylkQkQqSzJrJmE2cnkKektSeUwoKC1PUWR3ZGhfTmRPNj93VGEz
YXJuKj1ZR3ImXi0+TWx7c2pLQXZse2k3K0NRUDJXRU1WUWxmOVRtbiRtCnpVfWJWXkpSOWhJamxT
ZUF4Xz1eTnlndS1nTy1KWlZTSGxMK3BgUmFUenMyTWhISEw9WThWSyZjb017clh7NHt2fQp6USoh
SDthYmB1XkhneShwKWgmcSZkZSY/bntSTXQoUU4jRyUybTB+QHh0fCpeUnN+ViNDMl5QNTlqRk1S
P3piP3UKejtZfjxWNVclLXtHYl98PWBORk9pZSNzfSF0ZFY/Pz90dDZAKGRDcm9vaEFOQkE/WDV8
SXdLdik1Nj5+IWVyT2NECnp5dGooeSY3bDBDe3k2aGhSR2NNbU9ZeWZKeDB0aUxBSSExKVdjdF8m
JXsmPDBWd0M0LVpoU2hhKTk5OHNwUEsxKAp6Xj5uVDhTOEs4aks0TXxwPiolJCtrTmtMQlZ4TUpg
bWZwck02KVd7IWgxeHFZQnNFOE5eNWpXcGlCUE5IcC05XmsKejE0cEN0M0s+e3h0JCZRbEFKOGlx
UkkwPnFFNXY4bXVvPWVFblVCaG1CXmlLT2FXajktZDszJFVpVVJDK3NLJXdeCno4Jm50JE5UVEoz
Pk5iQFo0V2YydiVPJUE3eVpBZ2M0fHttfWVXciRoLXt0X25fd3BqemptNylOdEc9Y2VfMjAjYwp6
VGx4JXMrMS1oO1ZHQ30me0A2bFJMX0tHaFQkNGJPTkpGUXNpKlNIWGtBOVdFX1Q4JWM5akBDVnZl
X1BwQDhQN20KenV1dyNjbnQ5TiF0ckFePjV4U3UkUm5nJjR6fEQ2b2tqcjk1NnxsdStnPXY9VCly
ezZPP2hjaGl4bzZja1cpZ3MlCnp1V3I3KCtSTiptKl5We2s3REtofWItbU02K3M7aWNHZENJaEZq
UW1ldUE3IVFFJGRNRikrMzN9JWVNN247KjZ4NQp6en1FSTMqbyotYSF3P0lhKUVDN3FaWkVRPms1
YWFCQ3pVa2BIdHROZkZ3fXl0LSo+bXs8fC1WWHN1WCtlT1ItTnQKemFxSCgyXnVmejQhS0o9MCVU
R0QqYWFkM25wWWojfCh6fURoK0J+K2B5Z3ctLUdDTylWTHdrM0ctPW5UcHNUQHg8CnomKjdKOVQ3
I3BlRGg9KCYjUGNpeyV1QWo8dj5Qc35tLTNSQU4lWHZAZW5objQlN0MwfGBpVD5vVGFgPHgqZDNC
ZQp6M1hYTnpzQmdjPDtiNnM9VzlGVlZ0ayQpPU5+fVY5TTFRI0QjTVNkNUBfeXFjREwrbkIoPmg9
MC1yLUFURDRWcnkKeiZeRHpge3hVMjNwaj07Skt7Q1ZQYm1ia3NgWHY/UVdgKGBGdHFrWn53VmFG
SHI+d2MqZzJGQDlkeUFKblMmOXYkCnpjR1pZPkp+YnxTU1c8a3wtKSp6OEMrMTRyMUtzRGtiWjxP
KTczOzEmU2AzUVNZUSojSS1QRkktYU9LUktMM2JzIwp6P2dXZnA+KkpQXnU/OzFBRFM1aGl1WTh3
ajYzdlowb3YkbD09NSpzeEByMz1LMCo4ZEg3YXJnJVdTUnN5d3N1WEMKekp6YFpmOFdlYUtIfG16
ZSEyR1Z8LW9rLUl3Nn0taSQlNXZ+YzY9O2ZpKTxkKXpJfVchKmxwNld5N3FYOXxBfj8qCnp5fkJB
Yj59ZHoxVH5qaz4/aGVXd0tMOEN0aGtCIzhkZnEhTXUzajZuUih6diU3KFpYaUFTMnx+a2tBcTNS
VmMhYwp6SWkySGU9ciVLUSN4KnJ6WUF7UHIrSE9kbUtLVnJ6LUtZQkhzekxaX2Q2VWRGZkdfbU5v
YF5rT1NVQyZub1ZTU3sKengjQ31qTi1CTSM1Nl5hNFRyZjUyJVQxJj9QT25qIT8mNlVCVHJZLWZM
dXdKO3hGZSV2eUJzYVlHI3E/bC18O0xoCnpGaSlNfGQkMFdCXjdpMU5rJnx6M0ZhaW84KnswflpL
JXd+dSlZeCVNUnFoRnZGRzlrVjJmb0gtc0M/PXZ2K1BvJAp6d2klUDtqQ0k/e25CU2w3bkl3OCRe
MnFIZitAXkNLQzlJYmlWX0tlWVd1dGRrKlgkfG5rI3A0P05pQDlncXNGdlYKejFrS2JsWnkyWW5x
V1F3bkA1KiMxLU9rI0xYb1VmR3tJUGM+VGY8eTF3N3didmtCJiZoVEs4QyFSVzF9Ynk2PCp0Cno2
Pz8hVkcqJDF7Pi1wfGtpcmNJIWl1cDVSV1daQGQtYzB0VWlLczcpI203MnMjfk9+X209QXBybXFW
ZDI3SWZmTQp6IV9qU1hOKT1TaGtNSCsxN2J6VzIqYzArT3lGJEhfJV83Xzd2UnlUbyZ8czZpe2Y1
bTw3KTF9eWAra3EzRzdlRHEKelN1cCEqKk5EeTtvUDUmanNLS3NUQT1eWUoqMzA4S2J5ZUM8aUdg
KjlXNjlHYT1sdDdjQGdfYChwNDxab2VTKilOCnpseXlSQnlJRkkhOExjbyRwQHpicEswOX1zP0VN
bFA3aTJXaDg2MkdXP1YlaS0jUD0od29rdSF+WStONWpPTHdSSAp6aDdFZTIoN1cpZD9kZW4rTkF7
SCRwQzkrQXBfY2JGN2R5PzBeejtqOEljKDlGRXFsfXwqSF93bEFwVHVKeXUmTHUKej1TSHNqX1dF
P2NPTGM4LVFASWo5akQ5QWhWQSg3ZW4kak0xZz07OUJFdyhFOFJJZlBoU1lEdnRlYUNffCRLM0hl
CnpQZE1Ne0h5XzZ1ZDhTXmxLQT8lP3FUcDclO0hqI2glVSpKMmU3NmxNPXhJM0pZNU1hP0NuRnJ3
UDdTbD5hXi1GNwp6K2VhYnQ+Z2lTTyF3TFElJGl1cUNEbF5ycExyckAhbF8mSUxfdGMxKiYtV2x8
RHoyYT56TU13Z3FuKG9PTFkyQS0KejF4KktueXFjeERuJUVfX3NffStLSkVXM3R0QTAha3lePmRS
dzNqY1VYS35pP1UjJCMyZTxlUlhvI0FsaTUqTVghCnpkK282dzk7KHdHSlFscT8tP0V0WnN3P2Vh
WFZBb2lkYn03cCowSzxrZGNReHEmRVNRYyFSQlowWCFtaDIzPlomcwp6PlFfRExDej0kQWlIZGsj
O0VxMnhRX1l+dSk/X0ZQTE4jQnNJSz1ZQlJ9VU1OeCpoJmYmcm1YYHo7Z0hyNkRFPkQKek48Sz8l
YTw+IXJ6MyZBbFIzbl5ZOUEoJlY0YX0jQyppQSVJKWcrcGk0Y1U4MHhRQE1qR2A7aFl4YzlxRD1l
WEklCnpJfH1Qe3FOTjlwWk17dH43eU5+S0RyNEtlez0yI0lTfWB4fjg0YTROTmUhOEZ7fEo/P2ZT
cWg+XjMrQU1ZOEh4OAp6c19KOU1nVyg4fnRheGRfIUd1QSQoYk93Ymt8KFMpKX5jTlZ2TVM5VGwk
WGxoUjxxPT1KZ1QpZU54cHtwIzFZI04KejxsWnl6UFZ0YipZIXEocm5BXiF9ZHZ0M2B8MHRAfm07
UCokYnRWOG14KVd4MFJnVjR+QnpHX1Q7T0lLP2ViKjh5Cnp0eksrWGVZYX0kX0Z8YHA4aCpENURp
d1EmWUNXJmw3Uz9JYChLaFk7QGBBXjZJO1UpX3d+ZlUxQDFnOCZDMUd5JAp6OVcyPXtXT3MtOXtp
b1E0S1Ilbzs7PE83enlCWSRFYmRNeCNnaFMyOWl3Ymc8PnN9NzNNcCV+QEFpMVdiKV8yblYKejRD
ZDhyUEd9XkJUYTxCT3srbXY9TF5nVXBld25nem9yU3lONGFgTVJQZkBrXzRiQmVkYiNMZVNDNDhV
V3hWY1coCnpfdUU2VTl5KUloPzJaQFo5X0JgUXliTTFJe28xZWlkSTw/PXB7Y1dTcDB4YFlkPUQo
UnlANzhsWjgoI0dfTjcrbQp6VFc5eXR3ITBhN2R+UFh1WSt1UCQqXnI/WDgrPWN+PHdRZSkzdjtp
bFllYD44Pnd8KXhebkc9cyFZMCRicWM/TzYKenFCYGMtKE8+R205PUtAc1FtI29VYURsKGktRWE0
VVdKO1V+eDllIzg7N2tHVV59QjV3dzdmWEA+aXd6KTxRaT17Cnp3PndUJE58KTxDc2lMTkxgPW96
SSQpI1Vra2FFJiVleWBgQDk2ajt6dHgzJEcpZWxyQSMqQDtUOWBMITFlSnJiZAp6YDYlWG8jaFo7
Tyk9ITFsQ0w4M2xCSmhVQSVrc1hkVCl+NHJETXtMWFdIJEUwMX4yRXhsMGMzamV4bmwwaSs9ZmAK
el5kXj5vMnI+ZkxFSWVkZnNgJD1UOHVRZVQ8Pjw5LSh0Qzs/KWVVeWFrNHR4PCF1PF5HeF45R2d4
bTcoPkRnTmY8Cnp0PVcmWF51P0cqeHluRHpgK1FWNCpPb0pzY2UxUno8V0kkcHM9elc9NFVQdW9y
JlVQMzclPWUmcTFKI1N0NiE5MAp6a2w/bUpNfTR6RVFKR0d2bUBMVjhuI3FeKVZLKDNRKVpjSHRs
Y157cUg4cT5IXig2dFF3OFZjcygtLXNWeVhsRUQKejZwUWxxPDEjfDgyUjQwYmxISkVVeD9xNjQh
Z2xsNjVleEQ+SnxCa2I9WnJmcUg+PG83UVA7Y0RwWUNqRntBXlJBCno7LTE4NHBCIWlIcX40cG5h
Z2BAeUtoJTUpeUVKZ0Z2RSt1PDBLSDdpej9nfnQqIXdIZ3Yre2JjeHQlWWQ2RFFSIwp6XkU5V3tS
X2FfU3hURjQ5eS0/UztIUjB7SiQ0IXNOPVJTdVY9KCRvQl85U3RHQlYleVklelo9a3I1JXIzSWNz
dXYKelZhZER7M1UwWHVlTjFjOSFuaj0tJGheLWJRI0I7ViEwSXA/PEUrOGJfbWx4XmkoQkA1Si0x
Y1BIJUk5T25AelM/CnpSfTx+Nl8/KnxwREdMYyZBITZTMzJMIWt8UHhBRnRQPDBoKiR1dm9GPExj
RHM1X2FZNChmd2ZhRVJ2NERgS34wQQp6QlZMWi16fDxJUjFeMClxcmAoVkU+OFFHV1poeEhhNzxP
RVhYKkB+QmtrTS0paHNQck1ZNHhKKm8lfm1lWVdnJDYKejt4UC1DKVUpJj5DfmlDMWk9TWtzVUhP
enJ1aVRGN299a0I2VH1JS3o2MlhsZG55U2orJUVTKzxSPzIrMD12fl5TCno3WlVmRGhQQHQ1PXBV
fChjUTJ7YTlCSH0yWEZzTjZIbEl8VVFDWHhGPj11ZmZaPDZsYiQhVTJSQTFoZUpxKz1aRQp6cSoz
fSpPS2V4eTZ6aFlNT1FJNjt3cyM3JTNkKiVsQ3h2dnl3cHd2cEBZalltOXNoV1JGTHU7cW5temV8
dnV+RzwKTERtZj9PJG9sXlAzZW9CawoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYW52YXMvcmVzb3VyY2VzL2ltYWdlMS5qcGcgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9yZXNvdXJjZXMvaW1hZ2UxLmpwZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lNTcyMWQ1MGVkMTdkMDBmYTZjODE2ODYxMDYxMWY3YTU4NDc5ZDYyCkdJVCBiaW5hcnkg
cGF0Y2gKbGl0ZXJhbCAxMjI4OQp6Y21lSHJjVF5QMypKY2t4anNsX31RS0FZRzIyZTVyTilYOU9r
ZW9CajN8V0dwMnVqWF5NOUNtSTNgcjE+RUo/elUKeigtMCZ9JmFpeyZfa01mNi1MdCNAP3B4PG4q
SGdFaXhfekhwSnZHJlJGPil+alR6TT1sQ2s9bz0wRWgjYDBSUmBYCno7SiF6MFJefFlwcGE5JGYw
MDAtajJheTA2WG9RRVp1UiZMUzsjKzdPNGs4MTw9b1VRe2VZcFcoe2xveEoxKX4wbwp6S1o5PWw9
QWI9KmN6KHtzTSlUVDFrZX5QfTh1dFdQMGhxdCUmSVBqayFDKnpTNE4hMSFhKTNHNThVZXNWUlZC
SEgKelBaPVBQZGt9N0paWFI9VWF7K1hWTSpPQSVNJj9HYENmcEQrWnBnaCRNYCNeQ1dCUz1iSTNi
KW8wRUMtfE1+R1djCnoyKlM/KjtUR1oqNnlrI2IwR25VSnBHWXo0e0Y0NlNGTSo4emk4XyQmN1k1
T3lCP0FCcytCWVVRMWl+RS17LVhmbgp6WWRHZCNKUUQlPiNsWmw5S0BreyNlZU9ucjBRX0haVlZw
Kyh3U3pHdSFHRyp2IWJyQCZfLVo4OXBTZlV+TmJKOXUKeklUR2hUdXw/d2sjLXNvY2lUNHt7TDFY
O0NlMiZRMUtqVDUpOF9idmJDdz9Bbz9vYGxrSzY+PzFHNSV5N2MkVyhQCnppJkg7UHtQaVJEO3Jl
ZXJkTGAzO2AyayVuZkJHLUk9cUNzT0dYQ0srMUxIVVUoaG1MeSN7QkQzSXNAeXNvZlhaJgp6e3Mt
cUQ4Wi1XQXkhNykmPDBaIWIyY1BnaTcoSWs4ZD12bmZOQyp2eChHfX56VG1BcGVoVVdmeDYxfnV2
MGJMRCMKenc8UEhIMGxIcTZPUjBiQ3p4JHZxRyUlRz1sYWlBfDB8cz14ZHxyTXMoRzl4QUxmNlkq
NXlzRVFgcSVvUygrM1ZtCnpOQit+VWI7PGpjbkBmOFJLPnMmU3BEJX5kZyN9JE4/QGpydUM1PVk2
cnMoU050Tih7al56cFlILTJrQUFTJHdGYQp6bGFyJG03bmVQcCk1ejRwKm9AUH0hSCZ6IyRkUVlP
bGJaXz01cUVQbUdPO21wVmxYemR1KEI2citebFYyV1V3KzcKeld6XnpWOzh0KnlHUEFVal4/O2VG
Y19eeHpjLVdXLW5sZyV1Rl5JU2N4IUYwfG5LPkNUeFlebS0hLWQ+TDhHa3cjCnpMZ1B5XzdiQytA
aWokMmY8NUxBPzF9TylhODNSOGpBMTV+PmROJDB8VHVBa3leelhVb28rI3QqQVlFTnVJYkNAPAp6
OWJndCpKYzVGUFQtKj5ZMjs/ckJhVG80eD9ffWg1KkI7TEYkSFBOMnhDelk0KGFGbGVwNWZBP2sr
RmxibFBEd2wKeiZjOHlrYk51Vn16dCNTUz14Qi1GWDVmfCV7fG94eDtoemNuR3MpRUN1WDlJZG5D
O0pxTy07RFdZfFpTPD80OTZmCnpGMyk4Uz4+UCFwVX1pPz5aQXsoNCFCJio8PVlJNEx5Vipre0Nv
e0FleStQZ083UTc0TFNPMnA/e1VSd2ltfEJeOwp6fDhHY3RxWjdJJHtrKWVNZGh6fXtodj53Y25o
MyQyampoZDBvUE11QHE+JSp8OGdsKVkwanxxent2KjRXZ2k4fjgKeiR1OG1Gd0hJVWZ4QlEhZGU+
M29KMkw4PiF6WnYqOTFPTllKOzZKQkZHa2YlQCF4ZW90MVROTUFIfDBNXkRoNklvCnpaYV9kJVA2
Nn1zWGJrfTNHJDApU093QSVnZ0ZnMFIwMm5rRjtzNz47bl4ld3pMVzNhJjs5ajB2eENKNW5HI0t+
KQp6KiVBM2Vgc001TEM9MzhzTXNJfiU7SHBVOWNzIzI2Zis8eU88S2k8d2lWTEl5QDR6NU4wRH18
K0NJd3g1TDckYG4KejVFa2ZYYDhmQEowYnpoS3Y5TkopQCRkPUlnYk1VcUVlSCg4enl4RHFVNHt3
ckxYUUtPcSohRChjX2dzT1JnNz5MCnpwO3NaazVveCRna3xtODRze0tFaGQ1dkx5Yz0qP0BRJlFi
dlZQKDVAYHdrIWZ6NTQ9IUxRKVNPTnoySH1KeXVpSwp6KEEwWFd0eiUrcFdeUTM9V2VzPDdjNSF1
Y19qdmlyfDgrcCVvNDFpcyhKYEBjQDhUMGFxLVNKaVcje0RQbTZueFAKelIzZlVYWW5xekJ3NndP
aGNYV09tNyN0YyNqKk8xWSZZfFdQN01IIyt1V1c3YT9DJEwhOTNDQkM+TyNNNntnUT5nCnp7ITtj
bz1ee256IW9iNz9XOHoldTAlNXBiM01hK0h5MipvMENaVTMzMVNNeUxffktyYmo3VGVLI0FEKUJ7
WHQ8Mgp6PiZMJnclczAhamJ0Jnpxdml+ei1lKmFJKHt0RWsjdTVteUwhMSU4UDZNV2Y2Tzh7ZUhW
X3s/ZXRUPWVNKmZAQU4Keip4MHhQPXZCTmRYaGNZV1BrN242S3N5MmJAX197Z1c4dmRxPE5UIWpV
dEtPSChlR3BVN2g/Yis4MiM9PjNNS2BfCnpmbDtMKE87KzU2KnJwOEBfT2ZuJipJZHRTcHZPaiY8
WlRWYEN7bzRnbkkmMHpUWTFgZGZ1aCpkSXViamtZYWs2QAp6eV4hK3MoMTdJflorXzliWjtfbzt0
ZDFAMUYxQEg4X1dqM29jVnAkWSpGMTZkZGwoO29KPzxlMXRpS1U2ZSNYSV4Kel5Rc1BabnZJaSZh
eyZ9UWkqUEhGT3VUKm10PG4rdTgpTFlJWVhmViYkU2E2cUhAb3l+Jmxhfm1gOGR0YXZXflBtCnp7
emxOa1lzMTRRT0pYeFZkI2srI2pVX1BhN15OdF9eOWw3Mk1ZS3ZLaFFtKEZqb1hfQUBeYGlpNz91
YUpKY2Nwewp6Pz4+O2UmaSYkKVZrZjVmeGhhWHhWZiFTRnNwa2pEZjw9KiNMSE50Q1REMV94NilZ
bH0waHYwLWxDUl9MbTtuP20Kej1qcTU/Z15vZUYhaG5ZWWV5QGZTd2Y3eVhmP3dUP2ojWmpXbiFk
ZjQ4eX0tY1ZBZ35HVmJBKC0xXkdwMS1pSmRkCnpxfWc3b3lvPCohZXopNkoySVdCM0IkPGBaelJx
eWxqQStNJC1vYXgqbW50Rm1VUGkqMjRiM0xlP09YWE5UQ3ZLRwp6OFRNPWYyRDQoKCttY2FASTNq
ZER5KmZ1cT1oc3IrdGp+e2Axfil6Njt1djBINkxIfSRwbHw4NnBTb0BuTUQ3MFkKenlfVTdebEBU
MWwjXnNkT3kzU0xjIzdDPHsjTztmMmloQVl8eVdoeFVyPnBFdzNUbHMoemUoNFRNKjhAZE48Kmh0
Cno0TWZJSGpwTTJHNnt4O1NPVllmNTtnfiY7SmR9XnE+UDErX1QjMUIyK1FrPio0UH10S0FLOVch
RUxrVC1MI3F9awp6Wj97ZHgyVyV9JGFkPVF2cE4peUUkQFhBbGB+WiUzNERRTD4mSTJEclRTfWh8
Z2tBcyErdzktWUAzXmZoWmF2ek0Kek9pLSltS3Q9WnFJOHlYSmN6enpVUD9VUm4hdHVpY212e1p1
eXw5TDxxUVp7YyFRKWB9cCRaWXQ/d1Noc3NKPUIzCnozZnJ6Wnl7bEk9V29uYyl4U0Akby1DbGNg
YHI2RShhK0Vfb2o+bjxhWX57TENZWW9ITyQkMTwycUNsKHxIaT1zQQp6NSZ3YXlkX3x6TE9DKmV7
WjE0aGpke29HO0pDZjdaelJ8XmBWcFBRWFIwRnY4JjlSUVF5RDUxaitsflgqU1V0UEQKeiNDd2Fi
QXB7OE1QJGtBRGBMVUclOWdweDY1TTBWVktHRXUyOENgQmdUP0xlaVJJYCFlUXo9bnI5cGQ4VzYq
cEpoCnoxazQtNzB0UzdlPFFGYzAwZDRXI1MtSmNodSN9NncpMiQkdHB8I0poNFQ7ajdPd207SjNo
NzAodTsmXlhUakdIUQp6VUR4VmUjR1owU25hbj9kRV9hO1Q+PXRnJElKX3ZMQWZzZ3ptST1QIV5I
RmlfZyM3SmQ7UlJxcGtKJTM1Y15wfjcKeik7aytTPSlAI1lSSDVDPGRKdilAUFg1SkJtdjMrM2wq
QmpTM3E5I0w8fHdvMyElUj82JDNuLU5VPm5fR0w2Rlp8CnpvJDVFbmMweXk2dVklZTl0Y2FKbnoz
bkQoKigldnJnRW1LPkhfdVk2SkxzQHIzWHJ1bTI8I280dUV5NCQjai1gZQp6UytCUz9kPj9wYzl0
SH5WKyFHTDIoRyMjfEUrRlZzdF5LYT5yMGl9a3dTYWFxRE1eYkFfMTl4NHYyO3U1S3NYQFUKejw4
ZS1yYVJFPmA0TGVtdEoqbX1WNTk2V3NlY0BCISFQMiU/SiRJYHpOV01NT0BhYjAjS2xhQDNwR2Qm
UzA9Vm1SCnpuTH10bmQ9a2dVJmh+cUo7Uy1KazZ7LVFUU0N+K3pwJCUmdHRJdVheRkQ3KkAzQ1or
Uz55emFjPkx5X0s0Qj1vQwp6ezRUTEg5JV5IQWVodkZvU2NHYHopPFQlJWI8d3Q/eG9ZaW1qS2he
JTx9dX4qOWpqbmc/aCZlMWswUUYoPmR8XkMKengyYSppJHk5NEI3b00xNV4xdlUwbnd5N1ZvaSEj
YyZJYDtsRl9sOWJhUGA/XlZudm1IVUxAWklLeEsoa3lCZlJTCnpGVTJJPWt9PnY8PTc4eUJERUYq
M1E8dXJWdUZ7QU9Hb1hrMUw3VD9QR1hUQS1FVjxXXyYmaV44JSlXN3d1P0NXOQp6bEFSSn4ldEk1
PklEUFlSQ3VIbkE9PiFscHJefTchbis0ODtiRkYjWGtGVmBPYm9uTzZnTHx7WSVaK2JoT2d1RUUK
enlkfX5ZK3EtYk9CSXs2SztvSnlpVTg3aGtTc0RrZzhyPTFZUXVCOXZLSk9hbERKXz5OMiVzVm8/
JUxPPip2fihrCnpVSUJOOF98PisxdEo2TWNLbGRFKWVEckY7QSRIQVlXJTgqK1NIanU+dHBYfWFL
TFBqaWwoeW5eRmtOLTs/dVh8fQp6eWYpYjhhWEYpe0s5ZDtMQnY9SUZDQChKYCFKMV5iTDApMGdS
QiFfbylxYWJJVD4wSUZCZT9ZRVM/IXkpO2lCLT8KejNIO15rK3NMcjsoNjJqTldja3dCV2xeOFhN
VlYkUS1vPkBYRWAycSNUd2BYPV4wcWEzblg7MmBWa0xYTjQ1azRlCnpsJiQhaj1ee0d9dTxZS1Ns
V0U2TyRPYille0hpNllnZnBsJDlQVkp+SVh2bEdNRjs0VHdBTzxJWntCJSN6fThRJQp6NX5uPm9f
KHIwR0FrPH1eVng/S1VDbUg0ckAoNVNUV2MybE85MW08YThLM2E3PmNvQnlsTX05P0ttWCpwYD58
S3YKej50V0J0SnM3bjdfN2N3RWlSd3xRa0hfQCsqIylxLSt5a1AmI2I5VXdoYkpDO3M2UXRgb05k
V2orUiVud15kR2N1Cnpyb2whTUFXVmlkOCNNR3dZSGhCQnVPR19qbygoJTdLWTBxOyZFM2BIa1Ij
ZSMzQUBrSlFHTGpTVjU3Q3M1T0o3JAp6PTM7QSZjJWI7JVRuPH0oRFhSVTkqQzApT1I+VDtZeURj
eEEjXlJjYHwwZCNiXiV6ZzJPcmUpZCNwQj10WUlqNTEKejsxYGt9JDg8XnRuViFCalRqVldpdVBs
X1U5KXR2TyNHYUhecXE0eD5GYHNiMFk/OHt7azx9c0VecDZpX19EcHFaCnpGJXFMX1ltPU9eZHpH
X21HMDB9Wnh2U1FDZXwtKTVFeWhIam1eWU1pcEszWXl5a2FLXyhlZz1LV01yWWRHVlVPNAp6eU9l
d044TW1qTk1mXjJBP2hvdWgzdit1XkBDJGdAa31mfWw8NkMhKlp2V3lfbSswelUoYTlLVDAhLU08
P0lZKzUKemtGZjFxUFo+TG0xSGJTSFElTytxcWFyLUB6biFheVI/TnZaRkRSdEZWNExSOHclSWFo
aj1ERj5sOG5RRVZgVloxCnpLR3dwcmVNeVYyR1oweXNaT1QpbjZNb24kOD5MdHJeU0h+KkNoNFNT
Kzw2UnNzQTw7d25va31QKnFmOyV3OzxGbQp6Xig9TTVvZjA0KCZuS0luQms/eWk0I3w2JVcocGU5
RnFEP2JWdDtiail4MkpUOG9FMCNCVU1wMUx6JGNpNHdWLTUKeihCZj99Tmxwd2lQPDgqRm8wVm5P
e1I3I0VyMmFCU20mal50QEhMY1loZXo8VipRNHB2QV4qKG5aeFooY0Zne0lfCnpQQDI7b14kNDhp
X3UxYHpmPUpAKWtCaU12Zio+MG0lYilYTShfPyg5I2ZrWk9uPG10Uk9DYEZDclMrbGBqcDxwPQp6
P2luOUBVcFYmP1RqXjc4YW5AI2t1V1Q/WV9NNllxaDtyJH1SK1JocntsYDtZKTRVNzc2KEsyUGF5
O0RvYnxaYUkKek01VW1jS31PMEdnfnVqSD5xPn48NzJOc307PTclfXhgPGokJmZoSD4rUmptMFFD
XiZDPm84JEVBN3hxZSF1dWcxCnooeWdXd1pEQnBlY3dONioxU08oMTVXJSs1UlZMV2Nsd2FIPGRi
biZMPlVreWpOVD1nd3peMkxwKGBgekMoNVdhKgp6Kj5IWSRYPUFzaipYP3o+YzVwaVJHVVYqbSg/
bkJuUm10Mjd5cV4wUVMwZlBod3taYVNUM1JmQHIrflhpRnpLPkIKemZ0RHpkZjlua1B6ND5yPypZ
cG5od1I0e3tZaXs9bSpXYDQjRFZMK25DK2d7d14kV24kWEQ+JlY8bEBfNXpabERNCnpISEhHfkF7
bnZkIypxWURySUt+QmM7R1B6ZCZ+aExPbStXJDY3RzJEQ21Efj9uek14Wm4tVSFMYHBGMHRqKktW
JAp6VXF4RFJ2VXRiMEtlREkxeEIjeEtvNHNjMyRKMVN1eHFFO09qUzVZNVN+dGlYbWBqdyhaNjhE
R15+U19MZGJ1PUkKem1ocDEjZFZzaSNIPEl+cmx7NTwhQXdvIThRQ2lSMiQwb1VEVUhPSWV7PFIo
bkhYM0FQX203bTsqYUxEWT1UdzgtCnoqVUdlTTBjUkZJYWlhT310QTV5NWxodyY2NCklOHUmQkA9
UllGdDhDa0h1WU92M0dXdjQ1bFlDVD5xTlV6dzR5NAp6QUoxLTF1PDk7I0E5Qj04TCpqdVRGMGtM
cW14MD1wYmFaRyhsWld6bGRsdkkwc1p0Zip1ekJ8QytJSzNEVDYrJSsKekMhNFMxbk0mQShKU0A7
cmFAYDJnS28/KCNYdGA+ZmFkZU0yeDdqQUxGOXtqSF9iTSlwM0NAKCRPd1hmNSFeI15QCnpLWFkp
Xlp3REd1e0lPbz1qU05TbDk2PFZjMkg4b0hYVmF2ekZtMHtHbjl7S1MrTCQqS3hBJndYXjgmIXJk
ZG9uXwp6Slk+RnxJY0JPfFFiaWgzNzFjQjBRYUV3e3N2JmNua25zaGV3V1lvbXI5aUoqYVJJenJx
dCk9TjlCc3leYjNNKCYKekUxWkFWJThXQX45NX0oI1djb3VyNDAoaj91fGhTRi02N1FGNmxzfEJO
ZV9FUitEeENicEZNdjFYelBrKj14UyVwCnoxS3ZlPFEkclVwP2FyfT0kTl5gcnFNe1dtKVc+dkBa
fXRBUWE8TVE0JCFHQkIxb2lsdTQjSFJEIUVAPFJJenhBXwp6WCZWaHpmQ05Mbjt0cEk+Z0AoKERt
YkpMaTc/MmpkejRqY3BlVD85N0J1JTZNTl8/WkE+a0h6OWFDcC1NJURmR3AKej88XiYkUXx5bUlg
c3hscmsyRWFIM3RWaHlofFRFVCVTdWJDUWRIZkdIZCFPR3Q7VHo5SDQ4VGBgfDg9eyQzPWlgCnpB
TUpveGtTe31fJWlVMUA4fEY3ZS1gQ2hweWRTWmZYbEMwOyp9VlZCSWtxKGFEa2lzREUzSTN7OFQm
dndvc0x8YQp6SldXT1ZaUSlQLWQmb3VzUlooKTQ3ejNFQFF+LU0kQzVubkojczdKZ057PXVadUts
WU10dVc2VVp5MGBmNTtNdDgKelpPO2FENDE5VntpSHtBYkNITDJ4SytiRC0lUkhtS3p2JChIQzJt
QiQhSDZPeG1OZzNYU28pUyFPaF9scWVlYjAyCnppZj1OPmxUQ1lJS2xmQF8tNi1AXz81JkspX1NC
TnN5TGMrbGQmfHZwV1clP1ZsYSE8SERLWW8wRTd4YzQ7VTNrbAp6aS1Jej8/SmpfJkBWckY9LWl2
fGI+bTJFellTWFVqbGBuZ315RSZzS2JnREJrJWVENFRaeVpVQWhhQHhrRzNeSUUKemxsU1pXKVpf
QC1ITCN2fmlPU2Yten5nZnlFSCY0Qll0JEs8Q2o+WHA3S3grQk0+LVdQZFR6SEV1QE98JCVOPW5D
CnpOU2koTE9NQVZxeVh7NCFgSjdyViQjZVZ9Nl9qZD5rUjNWd19RIzEmPXJJSGwyaFcoNnBiU2pt
b1JvcW1eWD9ZQgp6Xlg1QkwpZURfbDlIbkV1TUpJK3I0JHooMVA/LXItK2BxMFU5cjVMeEdlPVZZ
Y1VMaXI5fUNMezsqU1JPR2A3PiQKekNDant9dlFiYXRkPGc0RWNeSCs1bVRPWk1aKSo5fGp0byY3
eWdlc09Cd15EcWJIJkg2S2BwWFhLQyl7Pl4lQ2tTCnotUW1uUDRXZlI5SjN2XiVSJj5QUSFOS3BM
R2BjT25BKFd7fUBgeCMtPmhTdUhGLUtRUmVWejdgMzh8Wk9DS1JvMwp6Qjtga352LWVgT292YEFH
eWxeZGMqMm04WTdlQnBsM3pNeGpfWnZQUSoyfjVrbWVfdlRPSXVZU3RmeDd3IVBDT3cKejkoM21M
NzF2T19iflJ6aTtZIUA2R1hDSXt5Qn5USmlZQEBOTz5COS0kVlReXlhKeWk8KlkmfFBPRnQ7T2x9
PkpICnp6WTRqI0hffFJtX3BGMXlkbTRlPEVoLV51TFVjfjRAeWRRP2xJOHgwPEtmeT4tVDJ3NGI0
PyM0M1Zyc3RlMVNRfAp6Z2d+Jk0qVDJ4bU93XnBlSkdzYk1QUnNaamQ5ZCZKZk93eyg3fFU2TGh8
LTdVSUlVN1NKNzxkMm9pRHxleFBhLXIKeiowTlFpcX5yJmBqbnR8fkokU1Q0P3VadW9vUHR4TElq
VzMhNlBIcClrTkZLMEslKFE2cj1IfXRFMD9aUXNQWW5GCnp2VTREaEYrNURrOUE0WDZyTVdAdWop
UzBvSm1Ed2Y5LShuaDJDPX1SZ21XXm9gJSR6WHZ+Wmc0RW1BaTU0aEctbAp6RlImN2hCVyNncCVJ
IyYzUkFrPj41dCZ4K1VwRHZqJFg+VmJNdV9ibW4mQ3Z2NTwkMk5ZOTUjZDV8PFZWTSN5QSgKeno7
Xk0wQldPanV3OWdIY0MlTjVLRzBKYWNrcVZLTmFqdWloN0dSMXwyMUQpI0s9OFZMRHN0ZitWeDdI
SC12WmZSCnpsTkg3TVUwfSYtQF5HTG5tNFJuVHhTQUA8QDNTMnshald4cCNZJEZWcTgtRkFMcTEk
KD4hajxiWXA8ISZ0NS1pJgp6eyt7WGxgdm84IyFYKGIjcWE3K3s7TmpBQzBvVyhLbCk0eF41PFlR
dzlCKH1OK2BMbWNzJnZORzVPc1FAYFJlKmAKekRmeHx3WFp8WUgmdzQxQSRMVDZ8cTdFSDIlVU1G
fGlpXlZeZShpKjxKaW9PUndXK34wVX5lcEB4ZzdiKG9WX345CnoxOXBgVnh1VmpXa25QVTJGaXJm
WmIqa14hT14mY3Amb3BjdiMjQEVUIykjR1FpNkpDJkMtRm4jcmFLSVY2YGxKVgp6K0BxZTxwT0Mm
O1F5V01YJUBabEw2RSpPKmhYMmd2eCpPQnIyRXVsUGFZc3pLSWJrX0ZgSX0zMEw+SUAwKCRiZT0K
elp7PDk0UjRRSkE3SzwzQFlUWl4oXkpYbD5vfj1LUCpJSWJnV0YjWFRoRDBKT0pvbH4jb2wzc01v
YC1OY2BuekokCno+eUk0ZCtufWFOOElORWhvWX49RiNQVEx0QEUtUFJeQ0tAeW59KVAjbjYxYTYr
fihyKiY5UTlkJEdXbHNTcjVEMAp6UFgjdSQ3PkF2b0pDXiFidD43KTdFYUlHR21Vb0xWRC1QY3ty
THVIfnJ9ViZyamlXMz5sJTlBKjRWUm0yVD51ZGcKemNaMkotWmBTcWx4JmdzaHdELXZtd0o9dX5S
QzVjODx8VWlWcXMjUzNkPU9qNno9QmNaQWRRKzNuQnU1QUQlOTJJCnp2eUN5PStiUW1mVFVxRHF1
Ul4pPTc5cTVGQjhVTVJ0IX5zRFRfVXIzWX0wTnk8WklRRDdyYTtFaUlfbGZSWjx6Ugp6Xm1gIWV4
Z292RXEyXlJDVj1nPTJgeDVucV9+eXh3SDdeNkp0K0ZxfTxBfV9wcmZ+Y2BHbmtDJCRyJT0wT3pn
MVIKendhfTg+PmJ9YnJza15nSFMwJFRXTVY3I2I7WDFNRDc5cmp7WXhQPmhDdD9QNSM2b0I2P0Ux
c3k8MEUhPDFAQF5gCnpOc0djMXRYO1FTZ2BtMnlyVWxpUVN1QFQ2aSgjSG4tMiZ9NiMrb2ozeTx9
dDBfVktELSM0d2BWaWNDMzZkMkw3VQp6UEhMI2NYQVlzb3M/VVdZMXpWZUg7WURtK2k2b0VMUEgm
U2Q8U3pITS1DXnt+bUNxOyVwcTN8JlVsT1ktZTB2ekwKeihtWk1uWWJOUGRKdCNUMG4+fSVVYEZN
Y3doPXNze0VXPXtIUlQramBffnhCZyVTMlopZmtuPjJNPntedWlwcm8oCnojP1FXYkxYUFJYMXVz
VX50S2EzNWt1UmNyNGROQn1IalkhfDZtKUw2UGBPLWRCJE5AWiFkWDJQSlhXalVxSn0qPAp6bkhv
JWtgZHRzbDtmd2J3WGFAKUBwUHpXeVQ+RUdAWGxnQzt0LUJVaHM4UzAkPVFyc1YtfDI3WU1KY3l4
MWJxRlQKej1kSiQ4VmVXdX1EezdQZVkpN3s1VnJWYUAwb1AzdkhzJFN+KntTISF7TjhHRipiYDBC
cktTcjJHLT5CdiQ4U3NuCnorRl9ndGhLfClpTlhFMXRqJTBjOUQhO3l9N3VtYjtkWlBLVEI7b3Rv
MXo9ZihxZmpCR3BVVFluTHxCSGx4NURjIwp6MlFrMHVsM2NRYGBYdjlZJkwjQ311byQpQ2VUQjRB
eVhZOG9odVk9ZnJBK3ZOY3YrbVVnPGtCYzd4Qn5UdkREWTEKeilpYzRHWERPfUk3PHZ3XjEld3M/
MVdaTiY0V2p3eFUzMEZsM2ltKFE5Sl9+JEVqXzlsRkRMUGkyfmpGJil3RGBiCnp0MnhNVXJ8NFpQ
bihkZk41Vm9gNT0oYWMyKjUlSkpybEN0JnpyREd2YH1HMVNISm9OP3NqclhkZTBsYCFoKWhxKAp6
ZXRldmFZXmtCPipRXntgR3NxPjNkcHZ6PlcrXiRRajR0MVpIP0xXUW5EVyV1Nnd9YXw/SWU5d2pZ
SXpxTnNPZ3MKemJ7RDU8Wi05TSs4TGpiaypDMChxXkp8e1VpQ30rSm40fVZkcU88I2k9ZGg8UXp6
TVAqYyV9RldDM2AzXzFaUV5ICnpBWUYyQ0BfZV57b2ZzSHJne35mSk05MFZ3d2g5Y3pMJSFpbWM7
I3ZHVVAqSiFqbSVmKysrWG9GbkQqe1g3ViYrTwp6R09BWE58SjAmdVZxe0diY2RrMDk7VDBXIWdf
aWElZG5VRFp2bEliJklJbk07d19rJSFUQH5XV0c+PDhyTUtgaksKeiN5bz1uUGZJVk53QnlBSWlr
YH5eaUNCPlFxUn1BSWZINk4pVVlVJndYPV9mUVhrakt6O0BwSWpGMHplfDs/cjB4CnpwJUM3VyVw
XyhEKVQ5U2RIIXxQN24wPyM2QjYkSVBfSlNMZldlcy1eNGEqdmFpK19kUkkyfURgQGlhUDcldTJD
Pgp6JiN1Ykw2SWZFRl5SQEA9VG9JPHhkfXBobVEmcDh3PEY5VyRuRWFsZXYhYmdmPSFXQX1sT19F
WiFLNzxtTX0tNWsKemJ2YHkqKG1+ZWs4XnpaQlJpaG51Z3l8ZyZiYXE8YThgKypNd3hLX3NvWjVf
ZDw0TXNUZ3pRJDBhZCg1TUM8I05lCnpMJW5RUGNyP3JpZDZofn4ke0N5QXk8P3g8Q1k3Y0ljP0Vy
UFNzIW5jKmUmMjc2STFtenlsUFUmYCZuI0ExN3U3PAp6OXReSDdkMFdaTS1YblZ5S20hdzsqSj44
cjtUXlVBbENlUnZNLWE4UXBIKmgpOCUmIztPQUQ4NCpobk42Nm5fNGsKei1he1hVKl83X1ZgTU5R
R1A3fjh3I15kZkM0LURiczltUjNCeW1OJkk4Y2RHTyFoI3lCIURsM2cxRT18Njh8WGg3CnpAM3pD
ZjVrMn5nO1h7MU8zJjA3M0JaTUhCRDRzMilJZ3t0WmgoODZMKWJgODc4RV5oWXRETmFwLXpQfStz
NzVQZAp6TzVlUzxnQGghMkZWaUQ2PlhXIVl2SGx6QUdka1UyOF50amxINilYSF5NaFY1YyFqZCs2
SjNCMFM/eX5qRjM7MncKentEUl9+UDJ7MXF2c0h8XnpYVElKISh5PSlqPGhWS2J3MU5nWUJGPDcj
aCUxQjNDcm5HQCtoeG9gRT5oQExpd3dDCnpkd2EwcUYkVExrczw/dVVxN1ItUF8rO2EqR2tkTUZB
RCRffkBGVkdtQE9qZ248WiZBcGxJdTQ2LWYpUnJlSlBRdQp6TmsoMG8jNjhPOHg3ITBuPzhVTTJX
fk4kOzB3Y0wlREIxd3F5PEY3UilyWVNtU1J4TExBOS0/YVg0e00ydjYrTDYKejRJRiRGOzRzX20r
WiVVeXF0NkBRYUg/MkBkMjNiPUwwSHtPRTN2TXBuNmxOQFIoWnljK2wxWG9iclVPJGw0fGBKCnp1
OClWN09wJTNXIWw0cE5zaDdJV1YzTU1IOXZ5RHU7VGNsR0RRST1pZTtmaHF2V2IzRGwyfXozWGpJ
U3FrJCoheQp6bVhVbkhNczROcHtyJGtMazU5ZmRYWkE/OCl5WUxxMkFeQU83bHlYJiN9OH1XYjxi
I0IraCFNUGZmbEU+Rjw4OUQKem5XYDUofEF1Z0ozRiZ4YkVITUV2eFlEbTMpNVZ4TTMoTSVYRnFZ
bjhVZi1qd1p3Tjh8ek9iIW44RH5LSGIlNz1BCnpLKHVJYEoqKWsjZWZqJVU3flZ+P2htUHE4dWBg
PGBwSWAlVzRvfE9xc3s8aD9TV2JFUURCSFdiZTJlVml4P0Jndwp6P1V4JTkpa05kJHQmVFFWZGFz
c0U7JTI7NkVqP3t7aEQ2WmY5KD1Vd1lhQj1eJiEmYylCVWwjYE4oeUtpUXdUcC0KekB7fHtNJlVv
MjtfWmdpVkhRKU5zbmF9IXQ5VExnd1MlcClgelVYfEAxNEMlR0dXZzc5bTFOWUs8YkkxIzZvcT9U
CnpoYDcoeGspcz45bEd3WkFZNTlzIykmTHxFWndLeHFFQDdtYmt5dFZWWiojRUtAVkNPWGppYD5o
bkl5cSVsNkBrTwp6Vj8zNko/Yz9UI3IpRm87Z3dkOCN5SnxwKCtONzx+cjVKajUkRjlSNms9TCZF
YFItQX08OUc+UkRhVGskQU5Ad0wKenRnQEBEJlExblJNal4jUjxQejtyQjBGSV5afD5VYV48fkdi
X2hRblc0dFNRRmVLfXBlMEp2PW4tRnA/YGlqIU9pCnolb2prdGAwPnkrUX5DPyE0QkpfcGgmVlVZ
IU9QVzc8Y1l7alhoN1JpdDQmPChTcSU5NGIyfGxRPHRmWE0oS3hPRgp6NXZZT2ZrMmE9NkwtNSZ9
aGd1fDBWelI3bWdyMyttU3lCen0rciQ7dmMxS0R3R05seXBDZTA/U1NwUWt+OWE2NE0KelNuM2p4
PD49T0NoJTtRd0MybjRIZ1FLKHElZkVjVHVkMzxNJWB4YVdIOVgyNyk3RTY3Z3otdj90SGF+fmVT
azsyCnpTe0lXPU41ZmAxbSNYbFlQMm5EIWxCVkBVWmpxfnx4N3lTeFhsbyY9TT5fMHc4MikhUEkw
WXNRMEs5M0N7T30pZgp6dEBuJmpjRXNtV2k9MGl2OXw/RzlqIzJhPi1pPVppKDgtcz8xfmtGJnU/
IW53bTNTVlNWQ3RMa3U3KGt6KFJtdVYKekh4eSpOVSE3Pn5NVCUzSntrWWQpY2FvbjNJaWZNRnpF
KTVuT2A/alU+ZVg8Z0MjdzFTeyY9aUJkLSt0eG93TE1VCnooTl5+IW58KGg4OVFnemgoV0lDNVVQ
ck57d00+RklwfDl3NUk7KCFUelVDfkF3QTNWZ0l3S2c2TWVIYj1VIVdlJQp6a208VClTSUV5aTY/
a2VJK3ZONmN5aVNYdWpNO1dUcnU+RD4xMjs8ZzVHbEdPSURSUkxye2VRTj5TfCpUQylDeSUKemAj
JFVIdGp2b2RTQ0p7fGZnM1hQeWwyckNTPWdkMnJoMTtGaHdkPVglKVcxd19jNE8yRmxqV1N4MWhv
OT8jP3VNCnpqU15nU3ItMkZWd0dPPDVUUVVKR3ZCcjVQaj9AaFh3UFJXUkxteXRSJFhNWXxeZ0kp
ZWdZbTQkPFF5WWM2dGhvKwp6KyVWKj1TWm9CWncxQnlyaUx4NyUmT2RvTzloT08jX1YyQUxjN0FP
Zy1YRE9wSG9CU09QPlN0K3BWe0lgKUhPOXkKelJXNEUoZWNKQTQrP3xNI3phMnwzeE9LWF4/bFk9
NlZtR3twdEQmamNCK0doRW47bHk1VzFDNl5BeFRsKCl9YDB0CnpPMChxfkkmX1M4YSFaQ1Zmdzsm
YGhwfX5ASWRjNmRSJHxjYkVmMEJndUNPaE84PmRGZXpLQ2JpJFdjNXJXPSlDVAp6aH1XTU04eylG
R2NweUc/Yzg0fmJwZ0w1Z2kqfEJIXk5MfmtEVEchMV4lQktTdFpQK0Y0VXQ2ME5pOCYtcyVySWcK
emQ2Y2NfZnpzM2t1JlBvRXJJekl3eT9KakJlRWU8cVpla15GM28he2E2b29Ad1ZAaHxsJm98TXIz
Y1VjbEYyRFRGCnpAWTE7ZitnLX5lX30pVyV1Xit5WVQ9WDVkOWIrLSl0U1ctdUM4Znp1Q1o8Qyps
IzRsMSElM0t2dDApV3xXXk4wYwp6PlRZYTI1RG1CaEBAaX1jMklub2BnWUNVWXM2Qz5WSDdnMTJB
QjtkXyo+YzFVJk1QIUhASEUtKnJUZnwmOys4Y3YKeiMobkdqckY9SmwtMnhQK1Urd2N5MDgyNCVe
K2tpNG5vS3lhVXd2akEwP3t6NW9iQD04ZmFYV0dpPXpfNT96KWx8CnpvMVpDYDJoS3xOX3lzVmVM
bHRGPEB9SjY+Uy0xQ3NwN1ptWEIpJCZrYFFtPilULWN9ZmMjdDYrOH0hST9ycFJTNAp6U0l1eGop
P3taNV54bUd4ZFZhIXx0Kz88MEo8PmlTalpsd0RwQm1CSjc3YUhsazw7M0crcklaMnVsdXNXaSRv
KE4Kejkma2Z7NHdvMGF1XyYtVyFBI159NDR0e3okX35kMz44eihqI2lKIVklMms0R3BTJVUjQjJ9
UkkpQHIjfTNGcFM/CnpYfTlaODM8b1hWaHw+cDIxKWw4clVGQkZPbX0mOXZ2MUFSYlBvMyl7R0hX
OERZdSUlKzhMPGdWdXIqe2wma1JLOwp6eEs9SURMcHo4OUlOQ3AtcUNXfndVUmYmZWp5fl9jKTtp
dlpKLWh6LU1EeFFKKmBWZXNkTiZgQjJMOER5NCh7dVkKem1eblQqc01NbU42a2k9JU8/fXxvbFk4
NGIwZ3A3THFuTn58Ji0xM1FYQTxGIWFxSig/SHgrUyFnSGFDNV5MeDNuCnp3X0NZJj9KPUYodll4
OU8/RXtXRFJHUS1sZDl2SDs4PEBOX2hXcClhX047SFQyfH12ajJjZVFlVHR5RHExemEyPwp6X0tM
RnVZMXk3X19fOTRwdytITVBARjVVS2FXeiM4S2EyKDBUT2B6PEVPKFNYczMyJVMrWHgwUCVrMndi
XmkyR0MKTEZKM3EyVilUQ2lTUCRudgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYW52YXMvcmVzb3VyY2VzL2ltYWdlMi5qcGcgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9yZXNvdXJjZXMvaW1hZ2UyLmpwZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45MjAwMTJlZTExMTkzMzgxMDE2NDY5MWVlOGMyOGYyMzZjMWQ4ZDdiCkdJVCBiaW5hcnkg
cGF0Y2gKbGl0ZXJhbCA0ODAxCnpjbWJWTmN8NFNCYCtzSSg1UWRfTFg2JisrI0BLZ35efUdtSzU8
MiFaak5QYXQ2XlNxKzlFUCUjWT5CfnlqdFlhcQp6aTgzTnZfS19gSGhZcjYtbVVJMyVmQmZGfXAz
bjdNLX1gI0xfd2ApZ2R6PGFQP0diPihOWTc5WWZJdDhNMHsoI1EKelE1YVA+JStuMTNqRXc8RjAw
NVcoNzY9bDZmYH1RaytZcFlRU1JCTk9raSE1Ql5ibWolZURER2NLUVJFKksjbXthCnoteSEwQTk1
NGUhPUkyPEQ0TnhKdHBPXzI4OVdrQiZkfmZWJXRtcjw1OEc8cHUqZX1SMHp8WTRLSUJSWmRjLUJT
JAp6aGZ9fnx1fi0+NUgjYTVGZ0drOyokPGZVYj54eypAVnNRI1BjfjAmbyt4MGtVb1V7eXAhXis2
MFYzayNIQCZZKWwKemltYkFWOTFafSlaZTtFazNhej0zZVNtK0Q3NWNtQVNnfkNVITJtIUswM2c4
SmE0WmdvT0BpJFVmS3JwLTJZNFZFCnp2ZGUpJlYzMV8hTEN5c3QxWXBeJTMlWEFISkhBYlg/Wjtz
VkJLIWEmaTQ2Tj1WYUpHITJiaUNUX2A1YkQoO25zbwp6MDMhMXE8XlZDdjBiaClHYCk1N2l3XyZH
cV92QEZ6VnNqeVRkfm5mb3E1RzIjPG1TUS1hUVkrZWdGTVFRal92V20KemgwTlF7MUtDO3F5antJ
Sjh3a2slTjZ2aWM5KUJrZWB2LTt9PGtaZSoqbyZWNElnSjB7ezZrfkB6USZ6QWB4PHZKCnolUmwo
NmVgNWZVO3w1QENEajxhJkc9X2ckYEcxUm4tMkZ7PjZ+cUZkVUUxP1YmfSlJVih7Xk87JE1eYj5C
QG5vMQp6VGomXz4+e3RRTmNKfDZvQ2c/IVYwTlR6MGZ8fjV+Y2g/QEFJIz4pP18wUEVWUEpETT5j
SCVoenxHXnk5Zk53LVcKeit4YWVQKkteKG55JGZpQi1UcHE4dHo8Nl9Jc21kZzBPJFpyakVvM0kx
fHxkbyFPWUNXIXBnPFFkZ3VAPCYqMzlUCnpFKHxYfUFCR289NzcmcFo2QShIbmo3RXpxTn1SO1gk
alFtXml6JXhzO25idk08IzBQbUFrNTZudGNPQHBZLX1pOwp6QVgqVWpVJF5aPmZSaFBHMlhiSyRB
cHB0PWZwSjIlbj9RKkdnYVB1aT9iTiV8QVcjXmJmZjIjUCV5SX1Na2luWTwKejApcyl9RmFgIVZ4
SE9RZjtDbGVoJCM3VXVNd3tgN25JbDM3JnhNT2hlI2ooenJzNVUxYFRJbz9TKkwmLSVxJk5iCnpw
P0cqalBsJDwyTlhwNDhDQEx3ZD0kekhuKD5FfFF2TiYmUFdvPmk4KjRmMz8mRTNQKEQ9O1dIQnM0
Nlg1UGtGMwp6P1U+aiphbTFBU3NjOD89R2NxNkw8cmZxX2VwMi1HZDFWIzN4fjcpJDtgTilSPGAh
eWVUWUdvVWhtWENxekVBejUKelUmaDhLQ2EwIW49dTYrMFM2MHs3enlHPGhxWUZGKHlSeUxOenZ8
KXlid1N+OTcjeSpxM2p6KEA1ell4YDVSX3AmCnp0Wmp5SCMyKnBETUtOKW1OcSQpSWlkazZKZTM5
RUo7NjJNeDV4RyYocjUkTk1tSHEjTy1UMHJCOVNIa2RTM2tmQwp6MTItYHpqMSRsVj0oNHxQam9v
e2hrdz1DajlJOSM7NER+JFk5cXZhRSUqfDdAcVdoeTdUTz00JSlmMnJLVmI3cFIKemkzSDdUakdq
UnU2aVVHNyp4SFM3JmJ7SWFuIUczNWVIfVQ8U0grJCtDNntsZTYmPEpDPkNxKjNPJTU+b3F1Y0Rl
CnoxeEoxR29MMnRLRmE3Qil1d2t3Uzx3N2E5PnJLbzNsXmhFTih2ZDJAVlI8MyFsNCpJRUliOHdB
UiprQlJUIWVkbgp6bHZaQk5sWUhuX1JwXiUjanI7RElBKmNvdVMqPHcoZVNDTkhYWkopfnhOM3Bt
I2B9ZElQdC1EakdYXnxkX30mfVcKemVEQVlVM1pZWnFhK2tXVWVRK08mVW1OTSsyJWkxM2Q7THBG
Y307S3B6M2lFJnNYSW1YRE8oTHU4eXw4OGp4QkwoCnpkVkpQTCQ/RzE9K08lKigyVGhSKT07V19+
NT1ONiUqTXh0IWBfVVQ3QHwrfUcqSjshZSR1aXxePVBzNT4oIWQxewp6Mnk8KCtBTTM7RC1IUSFO
Ykw/Z0shRGdncEIpZ1RuYiVKdCo2akxCPVhmYCpMXkRHK2FAeEolO29sfnRNTz59ai0KejxyNFFA
TlNjZFNmOTtvWGU5OEBwbEpBKFhxQShCYVRGTHd8K3ZoJGBiYGhqdStpWkMkeS1UWllzfnpFXlpn
N3E7Cnp4ZGcjWmNHSXpRaSpHNGojcVJrOXBIQ3tLRG95TEtnbDVJJG04bVd9SVFTfld5R0czPmQw
ZD0xUGtkZ0RNMEwwPQp6JlpgPylRMFVySm42TzYxVnxUUTVEeDFeMThrfVNXdGpqeElGP0AxMW0k
fk11bSNBKTlMMTIjIyhudH1pS0hHVnUKenhyUG9BSEM0O1p4WilTcTtGUnp6OypUTiZYfk5Ofmdn
P31Bcm9GWGltcyY+KVlOaVNpQC1BV1lLOGF6TkozNlpPCnpMOFlAUVBRT2ZDalY0WFBeJGRJWCR5
Xk5ed2B7IylURzt3QCRwM2deRFlgXm5sSztASCVeRnQ3VEZJY1A0elY0RQp6UDFqVXY4Uyo5ek9X
OWwjYSRlSH4mfXFkOWhMbHI9TF9Abz1jdHVEK2FhVjhBSHNCZDxVS09EQz5jTWNTUGtYY1QKelkp
MyVuIzQ3WGc9O2JZTG4kQERVOUBranNzIUR7YWNpcjB7bDJuTXRLekcpZkIzX3p6YTFyciUjQDsl
e2BBfVlDCnpaOWwlVFJRV3Y5ZkgwfF5jRG5hT2Z3USVWU2JCWm9GJHRtU3VQYW8hSHtwejAod2Uq
PERiUWM7cHJZIStVcDQ+Zwp6RXlkQHxRdX1NVGVCWHA5cFBOKGFnd3FyJEZ7elgmZmdCdTVCdmd6
SEQzdHw2TVR9cVJuYjdBaT5HVFpSJFVrQDQKemJmVWFgPUp+YjBPRFJOTUJgZiVle3lFdjZ4RVZG
d2Z7UGFvZEMkfV9XNHVXZXZkeElRelRrYTZaJiNAQCRBSjg9CnpkTHQ2OGF4S2JwbVM2aVgtbnwq
NFBGUytmVUEpLUY+aWEtZ0cjcVpOVDZ+PURrPXY8JGhYK0dmbzIofTFBZEwmbwp6aD15QklTe05M
d0MoSCtzJn5tLTkraGYxRjMyeV9YfDdrbF95QV9QOHdOZXNxbW1PfWZ0OWVHTHk/WF9KKUdpbm4K
em1zVm9feUUkN151JFg0JntmWnh2c1YyUkZWeUJLd3tuWm45eUA/KjZqVUxOe1NxeFA2UXgtVFZy
PGc+PiNOd3ReCnpYdEwkMDVtbnxnKkNUcSolVihiYmFCV3RgWkw9aD5NVEtebms5VEFSVWNzWWpP
UDc5QEhqZ0pFeCE/NmEqKSs8Ngp6aDZaVW1rVSFuPWx0UFd4eFItZG10XjZlbHp3RmMyYWU7RT5C
NHgkR19fKz15e30tWnZVZVFgMVVHMEpxXzs+MnYKelcmNzQ1Uk1oJEl7UktEOENLS2JwalhJPFg3
VD1ST2xwSW94TGwmKTtnPDlqKz1DMXFhV3Y8WVJFdEVaSCkhQjB6CnpUaUhIelpNRCorPmltOSNg
KEtyY1V6QUxnM18rK2xFMD97XjNNIVpIbzI1fDBoe28kOSZiS2J2UExeakt5MTtIZwp6RSU1VSR7
b051MyZYSEZXWGdCbmpCQjtqN3crZGM5c3FhTW8rVD5vamRGbn4/P0pkRW0qKlMtJWJXVlR+dDRi
cSYKenpsUGw/Vkw+ZHhURlduQGBtaSFvcXRVZC1Jdj5YQ1R9SEg3KyFxeDJRfUtzNnRFTEtxTndO
PFYmcG03dkkxKVdYCno7ZmR1Oz4zPDxxM0tleTBtI2lDQ15FYUghdlZJei0kSGp8LWEqYzBUcj04
STtaMWY/LXRxIXhEPXJ8MTNuODVfdgp6eXJifFlfYHo3aTRYIyQ0USVIM2ljWXsrbSR2eSFSX3lN
XlI1JHNBQVZJdWg1JVV0fXJLWk5AdVhWVFJPWXEyNT4Kej9PU3FSWj5gUEghJkt8fV5ve3RFdkAl
QUdnLUR+PEo/RD5xKktUM3Z1NiNRRnNZZCVrcmV3Xj0oaVooO3Z+I0s3Cno5blVyKUVTO3dBI2Ng
QWlyV3E5Y2x1KCljKm9jd2YlcEdwcEY4a2ZlO2wrZkgwbWlVSm1CdURGQT55LWdTSl9oPQp6aDNl
fDJHQE9nUkdOPkE4JnleSntKZC0oamBzTCpfWDdRfEpKbXNkR3R9cyUod2FqcVhpNCpweGBsOFl6
WkQpcH4KenFPIWdgUSRzNkUkM14oZzRiYH4mUn1odVEzYz9mVSE1MXhWZWZacTRsRndIZipaOHE9
VG8xQShgS2s4dUkmT1NRCnorUWo+cXJEfWJ9ZlpBbDtmS2tSZmEpJFM3eWw8fmkqSS11eEEtM31+
ZXgrUHQoZX1eR1RtOyU+bGFebUdhP2UySAp6TXkpSTVMem1gflBjendhPzIkODFuVWx7PWskWH1S
UDJDSDxBfWZ0TkM1T180Nz08LSYxP3lePFY8PlM7NjdHPTUKemhJPyFnPl5EZ2NpOVkkaWUmczBf
ZFZZTFRpeEt5XztqWEUxPGBwMF4kY15HIWw7PTk2WFMkcHg2NWw8eEdOJV9kCno5bSZFaDYhe3tZ
LSojKyVTVE8pZ0hQO34xajNQcm1EVUh4RDNjUHdeQGtILURoVTBDT0VaWUZ7LTc/ZHkrdDc2Wgp6
d35TRiZ0QjwxJDV2en5BdWczfjhnJTVWdkVDJVZXMjhsUk5oPHF2TEtCY2NNaWF7RX07KTVGSloy
QzdOXlBXeC0KektVKzFiU3NpYChqI1l+ZkliKmtTV0o+b3VMNigjUk9ITz00NGhXMjFZZVNsJlkx
WFBoeWtUUiVjZEFySStnSUI8Cnp5bTRPX2wwdyUmOE5jOXlCX1dtNml9ald6RSg8QElDU1RNfF5p
QTxtIURQPkQ8bCNLT0J7OD5XSW5+ZDQxdTZKMQp6eXNjUDBRNlY0dEU7ZD5peSk7emFXa3l0PHZF
aEJsXyZ1dFJXIyNkNHQqT0Z0Yig1NkZDJEBBYUoqOFJ1dkJofWgKejdWd2JxPUIoVXlZKHB7REZ9
Sy1WaHlyaGo5TD9Bblorb09uQDE+OTtNVWpOelJNKXw2cHFUMzllZGUkRnd7NTYwCnpSN0hvSWVh
P05AMmZveXYkYmoqZ2NiZm1QVXIhZEcrdSRBQXlyMldRUX1kOUhhUH1Ke3c7fSpvOUxybzJyX1RS
TAp6WDklYyVAOGRyPUUmZGxJemYwfiYqTytkYlZEMDUrMjgzKWZSZFpzdEJsdGxfYipCa3xtM0VA
OVE2elledGUhWDIKelR8c2E8OSlxVk87SmIhVXJHRF9qKntMZmw3QDYqOHQyTytkQGxiemp6X31v
WmdoPSNtcEtFTWtLc15aWSowbnxXCnpIM0IqOWwjY01fZmF8Yz0+dCpwdGpRQ2BgPlorejtiUVlS
aj5aRDQydilOeyRkPUdhYGFzIzl6a2kqeWVydW9DPwp6Z3Z7eUghJCYqSyFAb1J9OClwbVVMeD9z
dTJSWWUzN2VnKnE2OShoTEwkSn4mUD9xQWRteEl6KSk3UXVrSWl6QDUKej97UWd+I3QhJnEtX1Qr
bSNNPWRaPzU5K0VRSDd7SWs0O2plbyskV1Q+Pj5NY1B4JComQ01nM1k8bmFRbiZVcVI4CnopcnQ5
WkdwcHBHPy0qIWI9Y3YoYiQ1KDFKP1E1R1NDaiRyKUJ7QHQyX1FMLTJnWS00QipuYDUpOTN+LXJR
ZUF9Qgp6OE1SKmJWTF9qN1JPTSMjN3AqTXBfeiN3a3dFZDxtUGN0b3RZQDctPEYwK3RkO3c1cCV4
MFVGOFRPI0d0Tn5HYCQKei1TeU8wNik4XyFuaHhpPkhESi1wSj9oMVlmITRLSz5mdzFwUVNgN31r
fF9jMT8pQkJgKXBzfXZENjxZY3RjX30lCnpRbEJsTHB7XiN2d31HUUZ2dnpmd0BCRWN2NEZ1SHJg
XlN8ZllicllGIXxGQFFCYW5McFl0TkRObjctX2BTKm09Swp6TC11KyVEfDs9aHFXc0xfJjlIOExD
c1E/Ul5+KX11dX4oUWVrUU19WUR9NnEpRCEpYWthbUdGPGhRJEU5U3FhSWYKekJUcFp7PTQwdTJP
OyUtP0lpKi19PEl3VWVeI3UyNiQqIWpaa0JUKDBOLU9LZHlzeCRhbyZKb2A+eXMoM3IhUVQrCnom
aUYmIVllQHpCWDZERVRueVF4QXtIN0htNCppP1dJY0o5RlFlbnNrKFJSYWtLSXkjMT4wODgyNzVL
Vz95KiFlbwp6RFZhcUtFQXVyYVA1ZFU3TXMtTWktYDx4SEl9X2JZTmpJNWNTNG8qIXUodz9KQmFV
VFYtUXRhfj89NUs3dmk9PkIKelBrOXx3dnBEaTJ7WXczNl5ZRFNwd0BYMzQxeXgzV2o0PkxJdDUw
fjUjb0B5bCl3PWY3VEtfTjYkXnJpTmEmWkphCnpNMSEyfEFLOUolKiN3NDxuPDt1S3F8IVI4aFVE
PkhQd19RQ08qU0FBOXMqbXpaQCUtWWdfbWhKcVROZUZNcmY/cgp6OEQoIzNiMmw/aFYmcD0qakhI
RzY5aSt4dm1gQUVqUkFgRkEwLWdIYkdzVmotKmNRPmpIT2Qqa3lgdj1ZV3ZDJkkKelJ1KSlXZ3hg
PDs4ZWxeKCk1VSlydFNzPEp4TTBHeUx7aFFsNEIwRmJhbjVPSWB7RDdaPmgldmolUVlHS2wrOVRF
CnpWI2BGdmhuS3glcWk/bFE4QE1jKkoleWZ9NHFFQWFUKz5aQ2VWQnZSVEt9Vz9rTjNLK1hRWjso
e1JXamN2cmczfAp6eXFWOU9gYnkwUnBtWjl9Xn5YdGhFdG9sT2tlVk07WWZQZj5AZDZ0KDwqXmd8
RV9WVmBQcSVXSiooRl56c0IxOGgKejZDWVhPRFdTeTVEeVZ4cnN4QnJzbj97Z2dNcDZle2dgSDEh
I00zVHgkNFJCbStwbDdCakN7aksleWIjfXc/RitLCkQ/R0FUXwoKbGl0ZXJhbCAwCkhjbVY/ZDAw
MDAxCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412395</attachid>
            <date>2020-10-26 22:57:31 -0700</date>
            <delta_ts>2020-10-27 17:16:36 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-217506-20201026225730.patch</filename>
            <type>text/plain</type>
            <size>94387</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4OTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGMxNzk1ZmM4YzEyZDNm
OWI4NjQ2MzYyZGQxNzY3OGEyZWQ5YTQ3Yy4uYTE4MmMxYjg2YTQ0ZGM1NDRkZTIxNTMzNTA5YzRh
MGRlYzdmYTQ2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIwLTEwLTI2ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBb
R1BVIFByb2Nlc3NdIFBlcmZvcm0gaW1hZ2UgZGVjb2Rpbmcgb2YgY29sb3IgZm9udHMgaW4gdGhl
IFdlYiBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTc1MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0OiBmYXN0L3RleHQvY2FudmFzLXNiaXguaHRtbAorICAgICAgICAgICAgICBmYXN0
L3RleHQvY2FudmFzLUNPTFIuaHRtbAorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAg
ICAgKiBQbGF0Zm9ybUFwcGxlV2luLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtV2luQ2Fpcm8u
Y21ha2U6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2oveGNz
aGFyZWRkYXRhL3hjc2NoZW1lcy9XZWJDb3JlLnhjc2NoZW1lOgorICAgICAgICAqIHBsYXRmb3Jt
L0ZyZWVUeXBlLmNtYWtlOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJD
b3JlVGV4dC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmJlZ2lu
TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmVuZExheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpkcmF3R2x5cGhzKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpkcmF3SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdHbHlwaHNSZWNvcmRlcjo6Y3JlYXRlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdHbHlwaHNSZWNvcmRl
cik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpw
cmVwYXJlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpE
cmF3R2x5cGhzUmVjb3JkZXI6OmNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnVwZGF0ZUNUTSk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVGaWxs
Q29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRl
cjo6cmVjb3JkQmVnaW5MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJh
d0dseXBoc1JlY29yZGVyOjpyZWNvcmRFbmRMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6Y29tcHV0ZUFkdmFuY2VzRnJvbVBvc2l0aW9ucyk6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpyZWNvcmREcmF3R2x5cGhzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZERy
YXdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29y
ZGVyOjpkcmF3R2x5cGhzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6RHJhd0dseXBo
c1JlY29yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVj
b3JkZXI6OmRyYXdHbHlwaHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpSZWNvcmRlcjo6UmVjb3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlY29yZGVyOjpkcmF3R2x5cGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpS
ZWNvcmRlcjo6YXBwZW5kSXRlbSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6YXBwZW5kSXRlbSk6CisKIDIwMjAtMTAtMjYgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBhIFdlYWtIYXNoU2V0
IGZvciBEb2N1bWVudDo6bV9jYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkRWxlbWVudHMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCmluZGV4IGM0ZDMzNDI5ZGJlNmIwYzIwZGE3OTIzMWM2YjMzZWZjOGJkNTc5NjIu
LjU2MGRlNTA0ZjY2YWVmZjE4YTBlNjAxZjg0MjI2ZjQzYzc0YjljMDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTEwLTI2ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1t
YXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBbR1BVIFByb2Nlc3NdIFBlcmZv
cm0gaW1hZ2UgZGVjb2Rpbmcgb2YgY29sb3IgZm9udHMgaW4gdGhlIFdlYiBQcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1MDYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhbC9zcGkvY2cv
Q29yZUdyYXBoaWNzU1BJLmg6CisKIDIwMjAtMTAtMTMgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBsZWZ0b3ZlciBNQUNPU1hfREVQTE9ZTUVOVF9U
QVJHRVRfbWFjb3N4IHN1cHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMu
Y21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDk5MTgzYTcyM2VhNGY4
NDk1ZGZiZDY0YzcyMDI3MzFmYWU2MTQ2M2IuLmYxM2RiZjU2Zjk1N2M2NjMyMjZmZjA0YTQzODQz
MzBkMjc0NDliZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysr
IGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTIzNyw2ICsxMjM3LDcgQEAgc2V0
KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L2FuZ2xlL0V4dGVuc2lvbnNHTEFOR0xFLmgKIAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdC5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5oCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKaW5kZXggYTdmODJiODYxYjYy
YzRhZWZiODNjMTgxMWQ1NWM3YWY3NDllNmI5MS4uYjRkODAxYzI3OWMwYTYyMzBkMzJlOGVmNzY3
ZDFlZTY4Njk3Y2ViMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2cv
Q29yZUdyYXBoaWNzU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29y
ZUdyYXBoaWNzU1BJLmgKQEAgLTM4LDYgKzM4LDcgQEAKIAogI2lmIFVTRShBUFBMRV9JTlRFUk5B
TF9TREspCiAKKyNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dDb250ZXh0RGVsZWdhdGVQcml2YXRl
Lmg+CiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHRm9udENhY2hlLmg+CiAjaW5jbHVkZSA8Q29y
ZUdyYXBoaWNzL0NHUGF0aFByaXZhdGUuaD4KICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ29yZUdy
YXBoaWNzUHJpdmF0ZS5oPgpAQCAtNTgsMTkgKzU5LDEyIEBAIHN0cnVjdCBDR0ZvbnRITWV0cmlj
cyB7CiAgICAgaW50IG1pblJpZ2h0U2lkZUJlYXJpbmc7CiB9OwogCi1zdHJ1Y3QgQ0dGb250RGVz
Y3JpcHRvciB7Ci0gICAgQ0dSZWN0IGJib3g7Ci0gICAgQ0dGbG9hdCBhc2NlbnQ7Ci0gICAgQ0dG
bG9hdCBkZXNjZW50OwotICAgIENHRmxvYXQgY2FwSGVpZ2h0OwotICAgIENHRmxvYXQgaXRhbGlj
QW5nbGU7Ci0gICAgQ0dGbG9hdCBzdGVtVjsKLSAgICBDR0Zsb2F0IHN0ZW1IOwotICAgIENHRmxv
YXQgYXZnV2lkdGg7Ci0gICAgQ0dGbG9hdCBtYXhXaWR0aDsKLSAgICBDR0Zsb2F0IG1pc3NpbmdX
aWR0aDsKLSAgICBDR0Zsb2F0IGxlYWRpbmc7Ci0gICAgQ0dGbG9hdCB4SGVpZ2h0OwordHlwZWRl
ZiBDRl9FTlVNIChpbnQzMl90LCBDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrTmFtZSkKK3sKKyAg
ICBkZURyYXdJbWFnZSA9IDcsCisgICAgZGVEcmF3R2x5cGhzID0gOCwKKyAgICBkZUJlZ2luTGF5
ZXIgPSAxNywKKyAgICBkZUVuZExheWVyID0gMTgsCiB9OwogCiB0eXBlZGVmIGNvbnN0IHN0cnVj
dCBDR0NvbG9yVHJhbnNmb3JtKiBDR0NvbG9yVHJhbnNmb3JtUmVmOwpAQCAtMTc3LDYgKzE3MSwy
MiBAQCBzdHJ1Y3QgQ0dGb2N1c1JpbmdTdHlsZSB7CiB9OwogdHlwZWRlZiBzdHJ1Y3QgQ0dGb2N1
c1JpbmdTdHlsZSBDR0ZvY3VzUmluZ1N0eWxlOwogCitzdHJ1Y3QgQ0dTaGFkb3dTdHlsZSB7Cisg
ICAgdW5zaWduZWQ7CisgICAgQ0dGbG9hdDsKKyAgICBDR0Zsb2F0IGF6aW11dGg7CisgICAgQ0dG
bG9hdDsKKyAgICBDR0Zsb2F0IGhlaWdodDsKKyAgICBDR0Zsb2F0IHJhZGl1czsKKyAgICBDR0Zs
b2F0OworfTsKK3R5cGVkZWYgc3RydWN0IENHU2hhZG93U3R5bGUgQ0dTaGFkb3dTdHlsZTsKKwor
dHlwZWRlZiBDRl9FTlVNIChpbnQzMl90LCBDR1N0eWxlVHlwZSkKK3sKKyAgICBrQ0dTdHlsZVNo
YWRvdyA9IDEsCit9OworCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKICNpZiBQTEFURk9S
TShNQUMpCkBAIC0xOTMsNiArMjAzLDEyIEBAIHN0YXRpYyBjb25zdCBDR1NOb3RpZmljYXRpb25U
eXBlIGtDR1Nlc3Npb25Db25zb2xlRGlzY29ubmVjdCA9IChDR1NOb3RpZmljYXRpb25UCiAKICNl
bmRpZiAvLyBQTEFURk9STShNQUMpCiAKK3R5cGVkZWYgc3RydWN0IENHQ29udGV4dERlbGVnYXRl
ICpDR0NvbnRleHREZWxlZ2F0ZVJlZjsKK3R5cGVkZWYgdm9pZCAoKkNHQ29udGV4dERlbGVnYXRl
Q2FsbGJhY2spKHZvaWQpOwordHlwZWRlZiBzdHJ1Y3QgQ0dSZW5kZXJpbmdTdGF0ZSAqQ0dSZW5k
ZXJpbmdTdGF0ZVJlZjsKK3R5cGVkZWYgc3RydWN0IENHR1N0YXRlICpDR0dTdGF0ZVJlZjsKK3R5
cGVkZWYgc3RydWN0IENHU3R5bGUgKkNHU3R5bGVSZWY7CisKICNlbmRpZiAvLyBVU0UoQVBQTEVf
SU5URVJOQUxfU0RLKQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC0yMDMsNyArMjE5LDYgQEAg
dHlwZWRlZiB1aW50MzJfdCBDR1NXaW5kb3dJRDsKIAogdHlwZWRlZiBDR1NXaW5kb3dJRCogQ0dT
V2luZG93SURMaXN0OwogdHlwZWRlZiBzdHJ1Y3QgQ0ZfQlJJREdFRF9UWVBFKGlkKSBDR1NSZWdp
b25PYmplY3QqIENHU1JlZ2lvbk9iajsKLXR5cGVkZWYgc3RydWN0IENGX0JSSURHRURfVFlQRShp
ZCkgQ0dTdHlsZSogQ0dTdHlsZVJlZjsKIAogdHlwZWRlZiB2b2lkKiBDR1NOb3RpZmljYXRpb25B
cmc7CiB0eXBlZGVmIHZvaWQqIENHU05vdGlmaWNhdGlvbkRhdGE7CkBAIC0yMzMsNyArMjQ4LDYg
QEAgdm9pZCBDR0NvbnRleHRSZXNldENsaXAoQ0dDb250ZXh0UmVmKTsKIENHQ29udGV4dFR5cGUg
Q0dDb250ZXh0R2V0VHlwZShDR0NvbnRleHRSZWYpOwogCiBDRlN0cmluZ1JlZiBDR0ZvbnRDb3B5
RmFtaWx5TmFtZShDR0ZvbnRSZWYpOwotYm9vbCBDR0ZvbnRHZXREZXNjcmlwdG9yKENHRm9udFJl
ZiwgQ0dGb250RGVzY3JpcHRvciopOwogYm9vbCBDR0ZvbnRHZXRHbHlwaEFkdmFuY2VzRm9yU3R5
bGUoQ0dGb250UmVmLCBjb25zdCBDR0FmZmluZVRyYW5zZm9ybSogLCBDR0ZvbnRSZW5kZXJpbmdT
dHlsZSwgY29uc3QgQ0dHbHlwaFtdLCBzaXplX3QgY291bnQsIENHU2l6ZSBhZHZhbmNlc1tdKTsK
IHZvaWQgQ0dGb250R2V0R2x5cGhzRm9yVW5pY2hhcnMoQ0dGb250UmVmLCBjb25zdCBVbmlDaGFy
W10sIENHR2x5cGhbXSwgc2l6ZV90IGNvdW50KTsKIGNvbnN0IENHRm9udEhNZXRyaWNzKiBDR0Zv
bnRHZXRITWV0cmljcyhDR0ZvbnRSZWYpOwpAQCAtMjUyLDYgKzI2NiwyMCBAQCBib29sIENHQ29u
dGV4dEdldEFsbG93c0ZvbnRTdWJwaXhlbFBvc2l0aW9uaW5nKENHQ29udGV4dFJlZik7CiBib29s
IENHQ29udGV4dERyYXdzV2l0aENvcnJlY3RTaGFkb3dPZmZzZXRzKENHQ29udGV4dFJlZik7CiBD
R1BhdHRlcm5SZWYgQ0dQYXR0ZXJuQ3JlYXRlV2l0aEltYWdlMihDR0ltYWdlUmVmLCBDR0FmZmlu
ZVRyYW5zZm9ybSwgQ0dQYXR0ZXJuVGlsaW5nKTsKIAorQ0dDb250ZXh0RGVsZWdhdGVSZWYgQ0dD
b250ZXh0RGVsZWdhdGVDcmVhdGUodm9pZCogaW5mbyk7Cit2b2lkIENHQ29udGV4dERlbGVnYXRl
U2V0Q2FsbGJhY2soQ0dDb250ZXh0RGVsZWdhdGVSZWYsIENHQ29udGV4dERlbGVnYXRlQ2FsbGJh
Y2tOYW1lLCBDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrKTsKK0NHQ29udGV4dFJlZiBDR0NvbnRl
eHRDcmVhdGVXaXRoRGVsZWdhdGUoQ0dDb250ZXh0RGVsZWdhdGVSZWYsIENHQ29udGV4dFR5cGUs
IENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmKTsKK3ZvaWQqIENHQ29udGV4dERlbGVn
YXRlR2V0SW5mbyhDR0NvbnRleHREZWxlZ2F0ZVJlZik7Cit2b2lkIENHQ29udGV4dERlbGVnYXRl
UmVsZWFzZShDR0NvbnRleHREZWxlZ2F0ZVJlZik7CitDR0Zsb2F0IENHR1N0YXRlR2V0QWxwaGEo
Q0dHU3RhdGVSZWYpOworQ0dGb250UmVmIENHR1N0YXRlR2V0Rm9udChDR0dTdGF0ZVJlZik7Citj
b25zdCBDR0FmZmluZVRyYW5zZm9ybSAqQ0dHU3RhdGVHZXRDVE0oQ0dHU3RhdGVSZWYpOworQ0dD
b2xvclJlZiBDR0dTdGF0ZUdldEZpbGxDb2xvcihDR0dTdGF0ZVJlZik7CitDR1N0eWxlUmVmIENH
R1N0YXRlR2V0U3R5bGUoQ0dHU3RhdGVSZWYpOworQ0dTdHlsZVR5cGUgQ0dTdHlsZUdldFR5cGUo
Q0dTdHlsZVJlZik7Citjb25zdCB2b2lkICpDR1N0eWxlR2V0RGF0YShDR1N0eWxlUmVmKTsKK0NH
Q29sb3JSZWYgQ0dTdHlsZUdldENvbG9yKENHU3R5bGVSZWYpOworCiAjaWYgSEFWRShDR1BBVEhf
R0VUX05VTUJFUl9PRl9FTEVNRU5UUykKIHNpemVfdCBDR1BhdGhHZXROdW1iZXJPZkVsZW1lbnRz
KENHUGF0aFJlZik7CiAjZW5kaWYKQEAgLTI4NiwxNiArMzE0LDkgQEAgQ0dSZWN0KiBDR1NOZXh0
UmVjdChjb25zdCBDR1NSZWdpb25FbnVtZXJhdG9yT2JqKTsKIENHU1JlZ2lvbkVudW1lcmF0b3JP
YmogQ0dTUmVnaW9uRW51bWVyYXRvcihDR1JlZ2lvblJlZik7CiBDR1N0eWxlUmVmIENHU3R5bGVD
cmVhdGVGb2N1c1JpbmdXaXRoQ29sb3IoY29uc3QgQ0dGb2N1c1JpbmdTdHlsZSosIENHQ29sb3JS
ZWYpOwogdm9pZCBDR0NvbnRleHRTZXRTdHlsZShDR0NvbnRleHRSZWYsIENHU3R5bGVSZWYpOwot
CiB2b2lkIENHQ29udGV4dERyYXdDb25pY0dyYWRpZW50KENHQ29udGV4dFJlZiwgQ0dHcmFkaWVu
dFJlZiwgQ0dQb2ludCBjZW50ZXIsIENHRmxvYXQgYW5nbGUpOwotCi0jaWYgSEFWRShDR19QQVRI
X1VORVZFTl9DT1JORVJTX1JPVU5ERURSRUNUKQogdm9pZCBDR1BhdGhBZGRVbmV2ZW5Db3JuZXJz
Um91bmRlZFJlY3QoQ0dNdXRhYmxlUGF0aFJlZiwgY29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0gKiwg
Q0dSZWN0LCBjb25zdCBDR1NpemUgY29ybmVyc1s0XSk7Ci0jZW5kaWYKLQotI2lmIEhBVkUoQ0df
Rk9OVF9SRU5ERVJJTkdfR0VUX0ZPTlRfU01PT1RISU5HX0RJU0FCTEVEKQogYm9vbCBDR0ZvbnRS
ZW5kZXJpbmdHZXRGb250U21vb3RoaW5nRGlzYWJsZWQodm9pZCk7Ci0jZW5kaWYKIAogI2VuZGlm
IC8vIFBMQVRGT1JNKENPQ09BKQogCkBAIC0zMjgsMTUgKzM0OSwxMCBAQCBib29sIENvbG9yU3lu
Y1Byb2ZpbGVJc1dpZGVHYW11dChDb2xvclN5bmNQcm9maWxlUmVmKTsKIHNpemVfdCBDR0Rpc3Bs
YXlNb2RlR2V0UGl4ZWxzV2lkZShDR0Rpc3BsYXlNb2RlUmVmKTsKIHNpemVfdCBDR0Rpc3BsYXlN
b2RlR2V0UGl4ZWxzSGlnaChDR0Rpc3BsYXlNb2RlUmVmKTsKIAotI2lmIEVOQUJMRShXRUJQUk9D
RVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKLQogQ0dFcnJvciBDR1NTZXREZW55V2luZG93U2Vy
dmVyQ29ubmVjdGlvbnMoYm9vbCk7Ci0KIHR5cGVkZWYgaW50MzJfdCBDR1NEaXNwbGF5SUQ7CiBD
R1NEaXNwbGF5SUQgQ0dTTWFpbkRpc3BsYXlJRCh2b2lkKTsKIAotI2VuZGlmIC8vIEVOQUJMRShX
RUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKLQogI2VuZGlmIC8vIFBMQVRGT1JNKE1B
QykKIAogI2lmIEVOQUJMRShQREZLSVRfUExVR0lOKSAmJiAhVVNFKEFQUExFX0lOVEVSTkFMX1NE
SykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQXBwbGVXaW4uY21ha2UgYi9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUFwcGxlV2luLmNtYWtlCmluZGV4IGE3ODhlNjlkZTc0NDFj
OTQwODRmNzAzNmEzZThmNDlhZDQ1MWE1OGQuLjM4YTJiNzc2ODk1NTk4YTRmNGUzNmFkZTdjNjAz
YjA0MDc4ZGRjNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQXBwbGVXaW4u
Y21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1BcHBsZVdpbi5jbWFrZQpAQCAtMzAs
NiArMzAsOCBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3Bw
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL1dlYkNvcmVBVkNGUmVzb3Vy
Y2VMb2FkZXIuY3BwCiAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAKKwogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAogCiAgICAgcGxhdGZvcm0vbmV0d29y
ay9jZi9BdXRoZW50aWNhdGlvbkNGLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1XaW5DYWlyby5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21h
a2UKaW5kZXggYTY4OTY0NzdkZTBjZjUwMzRmM2ZkMDlmM2YwYzc2YTdkYTZlYzhhMS4uMDc3OGY3
NTU2NmM2NDYzMDIwYTBlMDdjNTJhNjVjMWE0NzRmNjI4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUGxhdGZvcm1XaW5DYWlyby5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bVdpbkNhaXJvLmNtYWtlCkBAIC0yMiw2ICsyMiw4IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09V
UkNFUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCiAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHAKKwogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8uY3BwCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFDYWlyb1dpbi5jcHAKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR2x5cGhQYWdlVHJlZU5vZGVDYWlyb1dpbi5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGViNGUxN2YyZTczNmVhODY4MWM1NmQyMDI1MTQ5MjZi
OGRjOTk0NTAuLjJhZDMzYTk1NTE5MmQ5MDc2ZWIzZDhjMTYyY2ZlMzg2MjJkZmIxOGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvU291cmNlc0NvY29hLnR4dApAQCAtMzc5LDYgKzM3OSw3IEBAIHBsYXRmb3JtL2dyYXBoaWNz
L2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVs
QnVmZmVyQ29uZm9ybWVyQ1YuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVD
b3BpZXJDVi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GaWx0ZXJFZmZlY3RSZW5k
ZXJlckNvcmVJbWFnZS5tbQorcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUv
VGlsaW5nRGF0YS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBB
bGxvY2F0b3JNZXRhbC5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91
cExheW91dE1ldGFsLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggYjMwMzM0MmQ0NTExOGYwOThhNGEyMzNhNDdhOWNlZjkyY2Y5
YTUyZC4uNmRlMzQ4NmRkZDZlNjgwNDFhM2YzYWYxZGQ4Mzk2ZTA2YTI0MmJiYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjIw
LDYgKzYyMCw3IEBACiAJCTFDQUYzNDgxMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmpl
Y3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUYz
NDdFMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQ0FGMzQ4MjBBNkM0MDUyMDBBQkUw
NkUgLyogV2ViU2NyaXB0T2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUNBRjM0N0YwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVj
dC5tbSAqLzsgfTsKIAkJMUNBRjM0ODMwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVj
dFByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFDQUYzNDgwMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3RQcml2YXRlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMUNBRjU2REIy
NTMwMUFDODAwMTdCNDcyIC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FGNTZEODI1MzAxNDU3
MDAxN0I0NzIgLyogRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQ0NEODE1MDIyMzFGODNFMDA2
NUZDMkIgLyogV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE1MjU1MTQx
NkZEMjM0RjAwM0Q3QURCIC8qIFdlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVE
ZWxlZ2F0ZS5tbSAqLzsgfTsKIAkJMUNDREY1QkUxOTkwMzMyNDAwQkNFQkFEIC8qIFNWR1RvT1RG
Rm9udENvbnZlcnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFDQ0RGNUJDMTk5MDMzMjQwMEJDRUJBRCAvKiBTVkdUb09URkZvbnRDb252ZXJzaW9u
LmggKi87IH07CiAJCTFDRkFFMzIzMEE2RDZBM0YwMDMyNTkzRCAvKiBsaWJvYmpjLmR5bGliIGlu
IEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNGQUUzMjIw
QTZENkEzRjAwMzI1OTNEIC8qIGxpYm9iamMuZHlsaWIgKi87IH07CkBAIC02NzM2LDYgKzY3Mzcs
OCBAQAogCQkxQ0FGMzQ3RTBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNjcmlwdE9iamVjdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FGMzQ3RjBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2Ny
aXB0T2JqZWN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2Vi
U2NyaXB0T2JqZWN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FGMzQ4MDBB
NkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTY3JpcHRPYmplY3RQcml2YXRlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFDQUY1NkQ4MjUzMDE0NTcwMDE3QjQ3MiAvKiBEaXNwbGF5TGlz
dERyYXdHbHlwaHNSZWNvcmRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5TGlzdERyYXdHbHlw
aHNSZWNvcmRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0FGNTZERTI1MzAy
NDVBMDAxN0I0NzIgLyogRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNCNUZFODgyMkRFQkM4QjAwOTQ0
MEUyIC8qIFdITFNMRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xFcnJvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0I2OUIzMjIxREVENDBCMDA2RTg0NkEgLyogV0hMU0xS
ZXNvbHZhYmxlVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTFJlc29sdmFibGVUeXBlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQjY5QjM0MjFERUQ2M0EwMDZFODQ2QSAvKiBX
SExTTEZsb2F0TGl0ZXJhbFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xGbG9hdExpdGVyYWxU
eXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzYwNyw2ICsxNzYxMCw4IEBA
CiAJCQljaGlsZHJlbiA9ICgKIAkJCQkwRkU1RkJDQTFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxh
eUxpc3QuY3BwICovLAogCQkJCTBGRTVGQkNCMUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlz
dC5oICovLAorCQkJCTFDQUY1NkQ4MjUzMDE0NTcwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdH
bHlwaHNSZWNvcmRlci5oICovLAorCQkJCTFDQUY1NkRFMjUzMDI0NUEwMDE3QjQ3MiAvKiBEaXNw
bGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcCAqLywKIAkJCQk1NUMwQTI5NTIz
RkUyQ0UwMDBGMkNCOTMgLyogRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5jcHAgKi8sCiAJCQkJ
NzJFQTA5RjkyM0ZDQ0M2QTAwODUwNEE1IC8qIERpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaCAq
LywKIAkJCQk3MkVBMDlGNzIzRkNDQjNEMDA4NTA0QTUgLyogRGlzcGxheUxpc3RJbWFnZUJ1ZmZl
ci5oICovLApAQCAtMzE0MjgsNiArMzE0MzMsNyBAQAogCQkJCTdFREFBRkM5MTlBMkNDREMwMDM0
REZEMSAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2EuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNzkw
RjQyMjUxN0NFNkUwMDlCQTAzNCAvKiBEaXNwbGF5TGF5ZXJDb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkU1RkJEMzFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3QuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTFDQUY1NkRCMjUzMDFBQzgwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERy
YXdHbHlwaHNSZWNvcmRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTVBRDA5NDAyNDA4OTY0MDAw
REU0RDJGIC8qIERpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTU1QUQwOTNFMjQwODk2MzUwMERFNEQyRiAvKiBEaXNwbGF5TGlzdEltYWdlQnVmZmVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkU1RkJENTFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3RJ
dGVtcy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9GcmVlVHlwZS5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtl
CmluZGV4IDdjMDRkOTNhNWI4NWM3MzI1ODFjOTVhMDY1YmUwNWI2MzY3YzdhZTQuLmYzOGI1NGUx
N2M5MzE1NjUxNTRjYWI5NTNhODFlMGU5NmY1NzQ5YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0ZyZWVUeXBlLmNtYWtlCkBAIC01LDYgKzUsOCBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1BSSVZB
VEVfSU5DTFVERV9ESVJFQ1RPUklFUwogKQogCiBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMK
KyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhz
UmVjb3JkZXJIYXJmQnV6ei5jcHAKKwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0Zv
bnRDYWNoZUZyZWVUeXBlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRD
dXN0b21QbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9mcmVl
dHlwZS9Gb250UGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250Q2FzY2FkZUNvcmVUZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRDYXNjYWRlQ29y
ZVRleHQuY3BwCmluZGV4IDRhOGU0ZTBlYTE5NDE0NDM2MjUwYTRiZThhYTQ1Y2I3MWRiMjE2ZmIu
LmY5N2Y3MGI4Zjc2NDgzODA3MDZmN2QwYmU3NWQ0YTBkOTdmZTg4ZmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRDYXNjYWRlQ29yZVRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0Zv
bnRDYXNjYWRlQ29yZVRleHQuY3BwCkBAIC02OSw2ICs2OSwxNCBAQCBzdGF0aWMgY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiByb3RhdGVMZWZ0VHJhbnNmb3JtKCkKIAogdm9pZCBmaWxsVmVjdG9yV2l0
aEhvcml6b250YWxHbHlwaFBvc2l0aW9ucyhWZWN0b3I8Q0dQb2ludCwgMjU2PiYgcG9zaXRpb25z
LCBDR0NvbnRleHRSZWYgY29udGV4dCwgY29uc3QgQ0dTaXplKiBhZHZhbmNlcywgdW5zaWduZWQg
Y291bnQsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50KQogeworICAgIC8vIFRoZSBpbnB1dCBwb3Np
dGlvbnMgYXJlIGluIHRoZSBjb250ZXh0J3MgY29vcmRpbmF0ZSBzeXN0ZW0sIHdpdGhvdXQgdGhl
IHRleHQgbWF0cml4LgorICAgIC8vIEhvd2V2ZXIsIHRoZSBwb3NpdGlvbnMgdGhhdCBDVC9DRyBh
Y2NlcHQgYXJlIGluIHRoZSB0ZXh0IG1hdHJpeCdzIGNvb3JkaW5hdGUgc3lzdGVtLgorICAgIC8v
IENHQ29udGV4dEdldFRleHRNYXRyaXgoKSBnaXZlcyB1cyB0aGUgbWF0cml4IHRoYXQgbWFwcyBm
cm9tIHRleHQncyBjb29yZGluYXRlIHN5c3RlbSB0byB0aGUgY29udGV4dCdzIChub24tdGV4dCkg
Y29vcmRpbmF0ZSBzeXN0ZW0uCisgICAgLy8gV2UgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgdG8g
ZGVsaXZlciBDVCwgaW5zaWRlIHRoZSB0ZXh0J3MgY29vcmRpbmF0ZSBzeXN0ZW0sIHN1Y2ggdGhh
dCBpdCBlbmRzIHVwIGNvaW5jaWRlbnQgd2l0aCB0aGUgaW5wdXQgaW4gdGhlIGNvbnRleHQncyBj
b29yZGluYXRlIHN5c3RlbS4KKyAgICAvLworICAgIC8vIENUTSAqIHRleHQgbWF0cml4ICogcG9z
aXRpb25zIHdlIG5lZWQgdG8gZGVsaXZlciB0byBDVCA9IENUTSAqIGlucHV0IHBvc2l0aW9ucwor
ICAgIC8vIFNvbHZpbmcgZm9yIHRoZSBwb3NpdGlvbnMgd2UgbmVlZCB0byBkZWxpdmVyIHRvIENU
LCB3ZSBnZXQKKyAgICAvLyBwb3NpdGlvbnMgd2UgbmVlZCB0byBkZWxpdmVyIHRvIENUID0gaW52
ZXJzZSh0ZXh0IG1hdHJpeCkgKiBpbnB1dCBwb3NpdGlvbnMKICAgICBDR0FmZmluZVRyYW5zZm9y
bSBtYXRyaXggPSBDR0FmZmluZVRyYW5zZm9ybUludmVydChDR0NvbnRleHRHZXRUZXh0TWF0cml4
KGNvbnRleHQpKTsKICAgICBwb3NpdGlvbnNbMF0gPSBDR1BvaW50QXBwbHlBZmZpbmVUcmFuc2Zv
cm0ocG9pbnQsIG1hdHJpeCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IGNvdW50OyAr
K2kpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29y
ZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNWM4YzM1OWJmYzdhOWQ5NTU0ZDNkMmU2YWExMTg3OWMyMDU0YzMz
NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oCkBAIC0wLDAgKzEsMTEw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKKyNpbmNsdWRlICJDb2xvci5o
IgorI2luY2x1ZGUgIkdyYWRpZW50LmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisj
aW5jbHVkZSAiUGF0dGVybi5oIgorI2luY2x1ZGUgIlRleHRGbGFncy5oIgorCisjaWYgVVNFKENP
UkVfVEVYVCkKKyNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBoaWNzLmg+CisjaW5jbHVk
ZSA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIEZsb2F0UG9pbnQ7CitjbGFzcyBGb250OworY2xhc3MgR2x5cGhCdWZm
ZXI7CitjbGFzcyBHcmFwaGljc0NvbnRleHQ7CisKK25hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CisK
K2NsYXNzIFJlY29yZGVyOworCitjbGFzcyBEcmF3R2x5cGhzUmVjb3JkZXIgeworcHVibGljOgor
ICAgIGV4cGxpY2l0IERyYXdHbHlwaHNSZWNvcmRlcihSZWNvcmRlciYpOworCisgICAgdm9pZCBk
cmF3R2x5cGhzKGNvbnN0IEZvbnQmLCBjb25zdCBHbHlwaEJ1ZmZlciYsIHVuc2lnbmVkIGZyb20s
IHVuc2lnbmVkIG51bUdseXBocywgY29uc3QgRmxvYXRQb2ludCYgYW5jaG9yUG9pbnQsIEZvbnRT
bW9vdGhpbmdNb2RlKTsKKworI2lmIFVTRShDT1JFX1RFWFQpCisgICAgdm9pZCByZWNvcmRCZWdp
bkxheWVyKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmLCBDR1JlY3QpOworICAgIHZv
aWQgcmVjb3JkRW5kTGF5ZXIoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYpOworICAg
IHZvaWQgcmVjb3JkRHJhd0dseXBocyhDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiwg
Y29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0qLCBjb25zdCBDR0dseXBoW10sIGNvbnN0IENHUG9pbnQg
cG9zaXRpb25zW10sIHNpemVfdCBjb3VudCk7CisgICAgdm9pZCByZWNvcmREcmF3SW1hZ2UoQ0dS
ZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYsIENHUmVjdCwgQ0dJbWFnZVJlZik7CisjZW5k
aWYKKworcHJpdmF0ZToKKyAgICBHcmFwaGljc0NvbnRleHQgY3JlYXRlSW50ZXJuYWxDb250ZXh0
KCk7CisgICAgdm9pZCBwcmVwYXJlSW50ZXJuYWxDb250ZXh0KGNvbnN0IEZvbnQmLCBGb250U21v
b3RoaW5nTW9kZSk7CisgICAgdm9pZCBjb25jbHVkZUludGVybmFsQ29udGV4dCgpOworICAgIHZv
aWQgdXBkYXRlQ1RNKEFmZmluZVRyYW5zZm9ybSk7CisgICAgdm9pZCB1cGRhdGVGaWxsQ29sb3Io
Y29uc3QgQ29sb3ImLCBHcmFkaWVudCogPSBudWxscHRyLCBQYXR0ZXJuKiA9IG51bGxwdHIpOwor
ICAgIGVudW0gY2xhc3MgU2hhZG93c0lnbm9yZVRyYW5zZm9ybXMgeworICAgICAgICBVbnNwZWNp
ZmllZCwKKyAgICAgICAgWWVzLAorICAgICAgICBObworICAgIH07CisgICAgdm9pZCB1cGRhdGVT
aGFkb3coY29uc3QgRmxvYXRTaXplJiBzaGFkb3dPZmZzZXQsIGZsb2F0IHNoYWRvd0JsdXIsIGNv
bnN0IENvbG9yJiBzaGFkb3dDb2xvciwgU2hhZG93c0lnbm9yZVRyYW5zZm9ybXMpOworCisjaWYg
VVNFKENPUkVfVEVYVCkKKyAgICB2b2lkIHVwZGF0ZVNoYWRvdyhDR1N0eWxlUmVmKTsKKyNlbmRp
ZgorCisgICAgUmVjb3JkZXImIG1fb3duZXI7CisgICAgR3JhcGhpY3NDb250ZXh0IG1faW50ZXJu
YWxDb250ZXh0OworICAgIGNvbnN0IEZvbnQqIG1fY3VycmVudEZvbnQgeyBudWxscHRyIH07Cisg
ICAgQ29sb3IgbV9jdXJyZW50Q29sb3I7CisKKyAgICBDb2xvciBtX29yaWdpbmFsRmlsbENvbG9y
OworICAgIFJlZlB0cjxHcmFkaWVudD4gbV9vcmlnaW5hbEZpbGxHcmFkaWVudDsKKyAgICBSZWZQ
dHI8UGF0dGVybj4gbV9vcmlnaW5hbEZpbGxQYXR0ZXJuOworCisgICAgQWZmaW5lVHJhbnNmb3Jt
IG1fb3JpZ2luYWxDVE07CisgICAgQWZmaW5lVHJhbnNmb3JtIG1fY3VycmVudENUTTsKKworICAg
IEFmZmluZVRyYW5zZm9ybSBtX29yaWdpbmFsVGV4dE1hdHJpeDsKKworICAgIEZsb2F0U2l6ZSBt
X29yaWdpbmFsU2hhZG93T2Zmc2V0OworICAgIGZsb2F0IG1fb3JpZ2luYWxTaGFkb3dCbHVyOwor
ICAgIENvbG9yIG1fb3JpZ2luYWxTaGFkb3dDb2xvcjsKKyAgICBib29sIG1fb3JpZ2luYWxTaGFk
b3dzSWdub3JlVHJhbnNmb3JtczsKKworICAgIEZsb2F0U2l6ZSBtX2N1cnJlbnRTaGFkb3dPZmZz
ZXQ7CisgICAgZmxvYXQgbV9jdXJyZW50U2hhZG93Qmx1cjsKKyAgICBDb2xvciBtX2N1cnJlbnRT
aGFkb3dDb2xvcjsKKyAgICBib29sIG1fY3VycmVudFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOwor
CisgICAgRm9udFNtb290aGluZ01vZGUgbV9zbW9vdGhpbmdNb2RlIHsgRm9udFNtb290aGluZ01v
ZGU6OkF1dG9TbW9vdGhpbmcgfTsKK307CisKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBo
c1JlY29yZGVyQ29yZVRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjA3MjA3NzhlNzA3ZjU5MGMyMmE5MzQ3MTI5ZDBiMDc2ZWYxYzBkN2UKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAKQEAgLTAsMCArMSwz
MjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIu
aCIKKworI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgiCisjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNs
dWRlICJEaXNwbGF5TGlzdEl0ZW1zLmgiCisjaW5jbHVkZSAiRGlzcGxheUxpc3RSZWNvcmRlci5o
IgorI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKKyNpbmNsdWRlICJGb250LmgiCisjaW5jbHVkZSAi
Rm9udENhc2NhZGUuaCIKKyNpbmNsdWRlICJHbHlwaEJ1ZmZlci5oIgorCisjaW5jbHVkZSA8Q29y
ZVRleHQvQ29yZVRleHQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKKyNpZiBQTEFURk9S
TShXSU4pCisjaW5jbHVkZSA8cGFsL3NwaS93aW4vQ29yZVRleHRTUElXaW4uaD4KKyNlbmRpZgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK25hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CisKK3N0YXRp
YyBDR0NvbnRleHREZWxlZ2F0ZVJlZiBiZWdpbkxheWVyKENHQ29udGV4dERlbGVnYXRlUmVmIGRl
bGVnYXRlLCBDR1JlbmRlcmluZ1N0YXRlUmVmIHJzdGF0ZSwgQ0dHU3RhdGVSZWYgZ3N0YXRlLCBD
R1JlY3QgcmVjdCwgQ0ZEaWN0aW9uYXJ5UmVmLCBDR0NvbnRleHREZWxlZ2F0ZVJlZikKK3sKKyAg
ICBEcmF3R2x5cGhzUmVjb3JkZXImIHJlY29yZGVyID0gKnN0YXRpY19jYXN0PERyYXdHbHlwaHNS
ZWNvcmRlcio+KENHQ29udGV4dERlbGVnYXRlR2V0SW5mbyhkZWxlZ2F0ZSkpOworICAgIHJlY29y
ZGVyLnJlY29yZEJlZ2luTGF5ZXIocnN0YXRlLCBnc3RhdGUsIHJlY3QpOworICAgIHJldHVybiBk
ZWxlZ2F0ZTsKK30KKworc3RhdGljIENHQ29udGV4dERlbGVnYXRlUmVmIGVuZExheWVyKENHQ29u
dGV4dERlbGVnYXRlUmVmIGRlbGVnYXRlLCBDR1JlbmRlcmluZ1N0YXRlUmVmIHJzdGF0ZSwgQ0dH
U3RhdGVSZWYgZ3N0YXRlKQoreworICAgIERyYXdHbHlwaHNSZWNvcmRlciYgcmVjb3JkZXIgPSAq
c3RhdGljX2Nhc3Q8RHJhd0dseXBoc1JlY29yZGVyKj4oQ0dDb250ZXh0RGVsZWdhdGVHZXRJbmZv
KGRlbGVnYXRlKSk7CisgICAgcmVjb3JkZXIucmVjb3JkRW5kTGF5ZXIocnN0YXRlLCBnc3RhdGUp
OworICAgIHJldHVybiBkZWxlZ2F0ZTsKK30KKworc3RhdGljIENHRXJyb3IgZHJhd0dseXBocyhD
R0NvbnRleHREZWxlZ2F0ZVJlZiBkZWxlZ2F0ZSwgQ0dSZW5kZXJpbmdTdGF0ZVJlZiByc3RhdGUs
IENHR1N0YXRlUmVmIGdzdGF0ZSwgY29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0qIHRtLCBjb25zdCBD
R0dseXBoIGdseXBoc1tdLCBjb25zdCBDR1BvaW50IHBvc2l0aW9uc1tdLCBzaXplX3QgY291bnQp
Cit7CisgICAgaWYgKENHR1N0YXRlR2V0QWxwaGEoZ3N0YXRlKSA+IDApIHsKKyAgICAgICAgRHJh
d0dseXBoc1JlY29yZGVyJiByZWNvcmRlciA9ICpzdGF0aWNfY2FzdDxEcmF3R2x5cGhzUmVjb3Jk
ZXIqPihDR0NvbnRleHREZWxlZ2F0ZUdldEluZm8oZGVsZWdhdGUpKTsKKyAgICAgICAgcmVjb3Jk
ZXIucmVjb3JkRHJhd0dseXBocyhyc3RhdGUsIGdzdGF0ZSwgdG0sIGdseXBocywgcG9zaXRpb25z
LCBjb3VudCk7CisgICAgfQorICAgIHJldHVybiBrQ0dFcnJvclN1Y2Nlc3M7Cit9CisKK3N0YXRp
YyBDR0Vycm9yIGRyYXdJbWFnZShDR0NvbnRleHREZWxlZ2F0ZVJlZiBkZWxlZ2F0ZSwgQ0dSZW5k
ZXJpbmdTdGF0ZVJlZiByc3RhdGUsIENHR1N0YXRlUmVmIGdzdGF0ZSwgQ0dSZWN0IHJlY3QsIENH
SW1hZ2VSZWYgaW1hZ2UpCit7CisgICAgRHJhd0dseXBoc1JlY29yZGVyJiByZWNvcmRlciA9ICpz
dGF0aWNfY2FzdDxEcmF3R2x5cGhzUmVjb3JkZXIqPihDR0NvbnRleHREZWxlZ2F0ZUdldEluZm8o
ZGVsZWdhdGUpKTsKKyAgICByZWNvcmRlci5yZWNvcmREcmF3SW1hZ2UocnN0YXRlLCBnc3RhdGUs
IHJlY3QsIGltYWdlKTsKKyAgICByZXR1cm4ga0NHRXJyb3JTdWNjZXNzOworfQorCitHcmFwaGlj
c0NvbnRleHQgRHJhd0dseXBoc1JlY29yZGVyOjpjcmVhdGVJbnRlcm5hbENvbnRleHQoKQorewor
ICAgIGF1dG8gY29udGV4dERlbGVnYXRlID0gYWRvcHRDRihDR0NvbnRleHREZWxlZ2F0ZUNyZWF0
ZSh0aGlzKSk7CisgICAgQ0dDb250ZXh0RGVsZWdhdGVTZXRDYWxsYmFjayhjb250ZXh0RGVsZWdh
dGUuZ2V0KCksIGRlQmVnaW5MYXllciwgcmVpbnRlcnByZXRfY2FzdDxDR0NvbnRleHREZWxlZ2F0
ZUNhbGxiYWNrPigmYmVnaW5MYXllcikpOworICAgIENHQ29udGV4dERlbGVnYXRlU2V0Q2FsbGJh
Y2soY29udGV4dERlbGVnYXRlLmdldCgpLCBkZUVuZExheWVyLCByZWludGVycHJldF9jYXN0PENH
Q29udGV4dERlbGVnYXRlQ2FsbGJhY2s+KCZlbmRMYXllcikpOworICAgIENHQ29udGV4dERlbGVn
YXRlU2V0Q2FsbGJhY2soY29udGV4dERlbGVnYXRlLmdldCgpLCBkZURyYXdHbHlwaHMsIHJlaW50
ZXJwcmV0X2Nhc3Q8Q0dDb250ZXh0RGVsZWdhdGVDYWxsYmFjaz4oJldlYkNvcmU6OkRpc3BsYXlM
aXN0OjpkcmF3R2x5cGhzKSk7CisgICAgQ0dDb250ZXh0RGVsZWdhdGVTZXRDYWxsYmFjayhjb250
ZXh0RGVsZWdhdGUuZ2V0KCksIGRlRHJhd0ltYWdlLCByZWludGVycHJldF9jYXN0PENHQ29udGV4
dERlbGVnYXRlQ2FsbGJhY2s+KCZkcmF3SW1hZ2UpKTsKKyAgICBhdXRvIGNvbnRleHQgPSBhZG9w
dENGKENHQ29udGV4dENyZWF0ZVdpdGhEZWxlZ2F0ZShjb250ZXh0RGVsZWdhdGUuZ2V0KCksIGtD
R0NvbnRleHRUeXBlVW5rbm93biwgbnVsbHB0ciwgbnVsbHB0cikpOworICAgIHJldHVybiBHcmFw
aGljc0NvbnRleHQoY29udGV4dC5nZXQoKSk7Cit9CisKK0RyYXdHbHlwaHNSZWNvcmRlcjo6RHJh
d0dseXBoc1JlY29yZGVyKFJlY29yZGVyJiBvd25lcikKKyAgICA6IG1fb3duZXIob3duZXIpCisg
ICAgLCBtX2ludGVybmFsQ29udGV4dChjcmVhdGVJbnRlcm5hbENvbnRleHQoKSkKK3sKK30KKwor
dm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnByZXBhcmVJbnRlcm5hbENvbnRleHQoY29uc3QgRm9u
dCYgZm9udCwgRm9udFNtb290aGluZ01vZGUgc21vb3RoaW5nTW9kZSkKK3sKKyAgICBBU1NFUlQo
Q0dBZmZpbmVUcmFuc2Zvcm1Jc0lkZW50aXR5KENURm9udEdldE1hdHJpeChmb250LnBsYXRmb3Jt
RGF0YSgpLmN0Rm9udCgpKSkpOworCisgICAgYXV0byYgc3RhdGUgPSBtX293bmVyLmN1cnJlbnRT
dGF0ZSgpLnN0YXRlQ2hhbmdlLm1fc3RhdGU7CisgICAgbV9vcmlnaW5hbEZpbGxDb2xvciA9IHN0
YXRlLmZpbGxDb2xvcjsKKyAgICBtX29yaWdpbmFsRmlsbEdyYWRpZW50ID0gc3RhdGUuZmlsbEdy
YWRpZW50OworICAgIG1fb3JpZ2luYWxGaWxsUGF0dGVybiA9IHN0YXRlLmZpbGxQYXR0ZXJuOwor
ICAgIG1fY3VycmVudENvbG9yID0gbV9vcmlnaW5hbEZpbGxDb2xvcjsKKworICAgIGlmIChtX29y
aWdpbmFsRmlsbENvbG9yLmlzVmFsaWQoKSkKKyAgICAgICAgbV9pbnRlcm5hbENvbnRleHQuc2V0
RmlsbENvbG9yKG1fb3JpZ2luYWxGaWxsQ29sb3IpOworICAgIGVsc2UgaWYgKG1fb3JpZ2luYWxG
aWxsR3JhZGllbnQpCisgICAgICAgIG1faW50ZXJuYWxDb250ZXh0LnNldEZpbGxHcmFkaWVudCgq
bV9vcmlnaW5hbEZpbGxHcmFkaWVudCk7CisgICAgZWxzZSB7CisgICAgICAgIEFTU0VSVChtX29y
aWdpbmFsRmlsbFBhdHRlcm4pOworICAgICAgICBpZiAobV9vcmlnaW5hbEZpbGxQYXR0ZXJuKQor
ICAgICAgICAgICAgbV9pbnRlcm5hbENvbnRleHQuc2V0RmlsbFBhdHRlcm4oKm1fb3JpZ2luYWxG
aWxsUGF0dGVybik7CisgICAgfQorCisgICAgbV9vcmlnaW5hbENUTSA9IG1fb3duZXIuY3VycmVu
dFN0YXRlKCkuY3RtOyAvLyBGSVhNRTogRGVhbCB3aXRoIGRldmljZSBzY2FsZS4KKyAgICBtX2N1
cnJlbnRDVE0gPSBtX29yaWdpbmFsQ1RNOworICAgIG1faW50ZXJuYWxDb250ZXh0LnNldENUTSht
X29yaWdpbmFsQ1RNKTsKKworICAgIG1fb3JpZ2luYWxUZXh0TWF0cml4ID0gY29tcHV0ZU92ZXJh
bGxUZXh0TWF0cml4KGZvbnQpOworICAgIGlmIChmb250LnBsYXRmb3JtRGF0YSgpLm9yaWVudGF0
aW9uKCkgPT0gRm9udE9yaWVudGF0aW9uOjpWZXJ0aWNhbCkKKyAgICAgICAgbV9vcmlnaW5hbFRl
eHRNYXRyaXggPSBjb21wdXRlVmVydGljYWxUZXh0TWF0cml4KGZvbnQsIG1fb3JpZ2luYWxUZXh0
TWF0cml4KTsKKworICAgIGlmIChzdGF0ZS5zaGFkb3dzVXNlTGVnYWN5UmFkaXVzKQorICAgICAg
ICBtX2ludGVybmFsQ29udGV4dC5zZXRMZWdhY3lTaGFkb3coc3RhdGUuc2hhZG93T2Zmc2V0LCBz
dGF0ZS5zaGFkb3dCbHVyLCBzdGF0ZS5zaGFkb3dDb2xvcik7CisgICAgZWxzZQorICAgICAgICBt
X2ludGVybmFsQ29udGV4dC5zZXRTaGFkb3coc3RhdGUuc2hhZG93T2Zmc2V0LCBzdGF0ZS5zaGFk
b3dCbHVyLCBzdGF0ZS5zaGFkb3dDb2xvcik7CisgICAgbV9pbnRlcm5hbENvbnRleHQuc2V0U2hh
ZG93c0lnbm9yZVRyYW5zZm9ybXMoc3RhdGUuc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMpOworCisg
ICAgbV9vcmlnaW5hbFNoYWRvd09mZnNldCA9IHN0YXRlLnNoYWRvd09mZnNldDsKKyAgICBtX29y
aWdpbmFsU2hhZG93Qmx1ciA9IHN0YXRlLnNoYWRvd0JsdXI7CisgICAgbV9vcmlnaW5hbFNoYWRv
d0NvbG9yID0gc3RhdGUuc2hhZG93Q29sb3I7CisgICAgbV9vcmlnaW5hbFNoYWRvd3NJZ25vcmVU
cmFuc2Zvcm1zID0gc3RhdGUuc2hhZG93c0lnbm9yZVRyYW5zZm9ybXM7CisKKyAgICBtX2N1cnJl
bnRTaGFkb3dPZmZzZXQgPSBtX29yaWdpbmFsU2hhZG93T2Zmc2V0OworICAgIG1fY3VycmVudFNo
YWRvd0JsdXIgPSBtX29yaWdpbmFsU2hhZG93Qmx1cjsKKyAgICBtX2N1cnJlbnRTaGFkb3dDb2xv
ciA9IG1fb3JpZ2luYWxTaGFkb3dDb2xvcjsKKyAgICBtX2N1cnJlbnRTaGFkb3dzSWdub3JlVHJh
bnNmb3JtcyA9IG1fb3JpZ2luYWxTaGFkb3dzSWdub3JlVHJhbnNmb3JtczsKKworICAgIG1fY3Vy
cmVudEZvbnQgPSAmZm9udDsKKyAgICBtX3Ntb290aGluZ01vZGUgPSBzbW9vdGhpbmdNb2RlOwor
fQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6Y29uY2x1ZGVJbnRlcm5hbENvbnRleHQoKQor
eworICAgIHVwZGF0ZUZpbGxDb2xvcihtX29yaWdpbmFsRmlsbENvbG9yLCBtX29yaWdpbmFsRmls
bEdyYWRpZW50LmdldCgpLCBtX29yaWdpbmFsRmlsbFBhdHRlcm4uZ2V0KCkpOworICAgIHVwZGF0
ZUNUTShtX29yaWdpbmFsQ1RNKTsKKyAgICB1cGRhdGVTaGFkb3cobV9vcmlnaW5hbFNoYWRvd09m
ZnNldCwgbV9vcmlnaW5hbFNoYWRvd0JsdXIsIG1fb3JpZ2luYWxTaGFkb3dDb2xvciwgbV9vcmln
aW5hbFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zID8gU2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6Olll
cyA6IFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOjpObyk7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1Jl
Y29yZGVyOjp1cGRhdGVDVE0oQWZmaW5lVHJhbnNmb3JtIGN0bSkKK3sKKyAgICBpZiAoY3RtID09
IG1fY3VycmVudENUTSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9vd25lci5zZXRDVE0oY3Rt
KTsKKyAgICBtX2N1cnJlbnRDVE0gPSBjdG07Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVy
Ojp1cGRhdGVGaWxsQ29sb3IoY29uc3QgQ29sb3ImIG5ld0NvbG9yLCBHcmFkaWVudCogbmV3R3Jh
ZGllbnQsIFBhdHRlcm4qIG5ld1BhdHRlcm4pCit7CisgICAgLy8gVGhpcyBjaGVjayBsb29rcyB3
cm9uZyBidXQgaXQgYWN0dWFsbHkgaXNuJ3QsIGZvciBvdXIgbGltaXRlZCB1c2UuCisgICAgLy8g
Q1Qgd2lsbCBvbmx5IGV2ZXIgc2V0IHRoaXMgdG8gYSBzb2xpZCBjb2xvciwgd2hpY2ggdGhpcyBp
cyB0aGUgY29ycmVjdCBjaGVjayBmb3IuCisgICAgLy8gSW4gY29uY2x1ZGVJbnRlcm5hbENvbnRl
eHQoKSB3ZSBzZXQgaXQgYmFjayB0byB3aGF0IGl0IHdhcyBvcmlnaW5hbGx5LCB3aGljaCB0aGlz
IGNoZWNrIHdvcmtzIGNvcnJlY3RseSBmb3IgdG9vLgorICAgIGlmIChuZXdDb2xvciA9PSBtX2N1
cnJlbnRDb2xvcikKKyAgICAgICAgcmV0dXJuOworCisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGUg
bmV3U3RhdGU7CisgICAgbmV3U3RhdGUuZmlsbENvbG9yID0gbmV3Q29sb3I7CisgICAgaWYgKG5l
d0dyYWRpZW50KQorICAgICAgICBuZXdTdGF0ZS5maWxsR3JhZGllbnQgPSBuZXdHcmFkaWVudDsK
KyAgICBpZiAobmV3UGF0dGVybikKKyAgICAgICAgbmV3U3RhdGUuZmlsbFBhdHRlcm4gPSBuZXdQ
YXR0ZXJuOworICAgIG1fb3duZXIudXBkYXRlU3RhdGUobmV3U3RhdGUsIHsgR3JhcGhpY3NDb250
ZXh0U3RhdGU6OkZpbGxDb2xvckNoYW5nZSB9KTsKKyAgICBtX2N1cnJlbnRDb2xvciA9IG5ld0Nv
bG9yOworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6dXBkYXRlU2hhZG93KGNvbnN0IEZs
b2F0U2l6ZSYgc2hhZG93T2Zmc2V0LCBmbG9hdCBzaGFkb3dCbHVyLCBjb25zdCBDb2xvciYgc2hh
ZG93Q29sb3IsIFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zIHNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1z
KQoreworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlIG5ld1N0YXRlOworICAgIEdyYXBoaWNzQ29u
dGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIHN0YXRlQ2hhbmdlRmxhZ3M7CisKKyAgICBpZiAo
c2hhZG93T2Zmc2V0ICE9IG1fY3VycmVudFNoYWRvd09mZnNldCAmJiBzaGFkb3dCbHVyICE9IG1f
Y3VycmVudFNoYWRvd0JsdXIgJiYgc2hhZG93Q29sb3IgIT0gbV9jdXJyZW50U2hhZG93Q29sb3Ip
IHsKKyAgICAgICAgbmV3U3RhdGUuc2hhZG93T2Zmc2V0ID0gc2hhZG93T2Zmc2V0OworICAgICAg
ICBuZXdTdGF0ZS5zaGFkb3dCbHVyID0gc2hhZG93Qmx1cjsKKyAgICAgICAgbmV3U3RhdGUuc2hh
ZG93Q29sb3IgPSBzaGFkb3dDb2xvcjsKKyAgICAgICAgc3RhdGVDaGFuZ2VGbGFncy5hZGQoR3Jh
cGhpY3NDb250ZXh0U3RhdGU6OlNoYWRvd0NoYW5nZSk7CisgICAgfQorICAgIGlmIChzaGFkb3dz
SWdub3JlVHJhbnNmb3JtcyAhPSBTaGFkb3dzSWdub3JlVHJhbnNmb3Jtczo6VW5zcGVjaWZpZWQg
JiYgKHNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zID09IFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOjpZ
ZXMpICE9IG1fY3VycmVudFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zKSB7CisgICAgICAgIG5ld1N0
YXRlLnNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zID0gKHNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zID09
IFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOjpZZXMpOworICAgICAgICBzdGF0ZUNoYW5nZUZsYWdz
LmFkZChHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hhZG93c0lnbm9yZVRyYW5zZm9ybXNDaGFuZ2Up
OworICAgIH0KKyAgICBpZiAoc3RhdGVDaGFuZ2VGbGFncy5pc0VtcHR5KCkpCisgICAgICAgIHJl
dHVybjsKKyAgICBtX293bmVyLnVwZGF0ZVN0YXRlKG5ld1N0YXRlLCBzdGF0ZUNoYW5nZUZsYWdz
KTsKKworICAgIG1fY3VycmVudFNoYWRvd09mZnNldCA9IHNoYWRvd09mZnNldDsKKyAgICBtX2N1
cnJlbnRTaGFkb3dCbHVyID0gc2hhZG93Qmx1cjsKKyAgICBtX2N1cnJlbnRTaGFkb3dDb2xvciA9
IHNoYWRvd0NvbG9yOworICAgIG1fY3VycmVudFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zID0gKHNo
YWRvd3NJZ25vcmVUcmFuc2Zvcm1zID09IFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOjpZZXMpOwor
fQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6dXBkYXRlU2hhZG93KENHU3R5bGVSZWYgc3R5
bGUpCit7CisgICAgaWYgKENHU3R5bGVHZXRUeXBlKHN0eWxlKSAhPSBrQ0dTdHlsZVNoYWRvdykg
eworICAgICAgICAvLyBGSVhNRTogU3VwcG9ydCBtb3JlIGtpbmRzIG9mIENHU3R5bGVzLgorICAg
ICAgICB1cGRhdGVTaGFkb3coezAsIDB9LCAwLCBDb2xvcigpLCBTaGFkb3dzSWdub3JlVHJhbnNm
b3Jtczo6VW5zcGVjaWZpZWQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY29uc3Qg
YXV0byYgc2hhZG93U3R5bGUgPSAqc3RhdGljX2Nhc3Q8Y29uc3QgQ0dTaGFkb3dTdHlsZSo+KENH
U3R5bGVHZXREYXRhKHN0eWxlKSk7CisgICAgYXV0byByYWQgPSBkZWcycmFkKHNoYWRvd1N0eWxl
LmF6aW11dGggLSAxODApOworICAgIGF1dG8gc2hhZG93T2Zmc2V0ID0gRmxvYXRTaXplKHN0ZDo6
Y29zKHJhZCksIHN0ZDo6c2luKHJhZCkpICogc2hhZG93U3R5bGUuaGVpZ2h0OworICAgIHVwZGF0
ZVNoYWRvdyhzaGFkb3dPZmZzZXQsIHNoYWRvd1N0eWxlLnJhZGl1cywgQ0dTdHlsZUdldENvbG9y
KHN0eWxlKSwgU2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6Olllcyk7Cit9CisKK3ZvaWQgRHJhd0ds
eXBoc1JlY29yZGVyOjpyZWNvcmRCZWdpbkxheWVyKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0
YXRlUmVmIGdzdGF0ZSwgQ0dSZWN0KQoreworICAgIHVwZGF0ZUNUTSgqQ0dHU3RhdGVHZXRDVE0o
Z3N0YXRlKSk7CisgICAgYXV0byBhbHBoYSA9IENHR1N0YXRlR2V0QWxwaGEoZ3N0YXRlKTsKKyAg
ICBtX293bmVyLmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoYWxwaGEpOworfQorCit2b2lkIERyYXdH
bHlwaHNSZWNvcmRlcjo6cmVjb3JkRW5kTGF5ZXIoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3Rh
dGVSZWYgZ3N0YXRlKQoreworICAgIHVwZGF0ZUNUTSgqQ0dHU3RhdGVHZXRDVE0oZ3N0YXRlKSk7
CisgICAgbV9vd25lci5lbmRUcmFuc3BhcmVuY3lMYXllcigpOworfQorCitzdGF0aWMgVmVjdG9y
PENHU2l6ZT4gY29tcHV0ZUFkdmFuY2VzRnJvbVBvc2l0aW9ucyhjb25zdCBDR1BvaW50IHBvc2l0
aW9uc1tdLCBzaXplX3QgY291bnQsIGNvbnN0IENHQWZmaW5lVHJhbnNmb3JtJiB0ZXh0TWF0cml4
KQoreworICAgIFZlY3RvcjxDR1NpemU+IHJlc3VsdDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IGNvdW50IC0gMTsgKytpKSB7CisgICAgICAgIGF1dG8gbmV4dFBvc2l0aW9uID0gcG9zaXRp
b25zW2kgKyAxXTsKKyAgICAgICAgYXV0byBjdXJyZW50UG9zaXRpb24gPSBwb3NpdGlvbnNbaV07
CisgICAgICAgIGF1dG8gYWR2YW5jZSA9IENHU2l6ZU1ha2UobmV4dFBvc2l0aW9uLnggLSBjdXJy
ZW50UG9zaXRpb24ueCwgbmV4dFBvc2l0aW9uLnkgLSBjdXJyZW50UG9zaXRpb24ueSk7CisgICAg
ICAgIHJlc3VsdC5hcHBlbmQoQ0dTaXplQXBwbHlBZmZpbmVUcmFuc2Zvcm0oYWR2YW5jZSwgdGV4
dE1hdHJpeCkpOworICAgIH0KKyAgICByZXN1bHQuY29uc3RydWN0QW5kQXBwZW5kKENHU2l6ZU1h
a2UoMCwgMCkpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29y
ZGVyOjpyZWNvcmREcmF3R2x5cGhzKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmIGdz
dGF0ZSwgY29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0qLCBjb25zdCBDR0dseXBoIGdseXBoc1tdLCBj
b25zdCBDR1BvaW50IHBvc2l0aW9uc1tdLCBzaXplX3QgY291bnQpCit7CisgICAgaWYgKCFjb3Vu
dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgQ0dGb250UmVmIHVzZWRGb250ID0gQ0dHU3RhdGVH
ZXRGb250KGdzdGF0ZSk7CisgICAgaWYgKHVzZWRGb250ICE9IGFkb3B0Q0YoQ1RGb250Q29weUdy
YXBoaWNzRm9udChtX2N1cnJlbnRGb250LT5wbGF0Zm9ybURhdGEoKS5jdEZvbnQoKSwgbnVsbHB0
cikpLmdldCgpKQorICAgICAgICByZXR1cm47CisKKyNpZiBBU1NFUlRfRU5BQkxFRAorICAgIGF1
dG8gdGV4dFBvc2l0aW9uID0gQ0dDb250ZXh0R2V0VGV4dFBvc2l0aW9uKG1faW50ZXJuYWxDb250
ZXh0LnBsYXRmb3JtQ29udGV4dCgpKTsKKyAgICBBU1NFUlQoIXRleHRQb3NpdGlvbi54KTsKKyAg
ICBBU1NFUlQoIXRleHRQb3NpdGlvbi55KTsKKyNlbmRpZgorCisgICAgdXBkYXRlQ1RNKCpDR0dT
dGF0ZUdldENUTShnc3RhdGUpKTsKKworICAgIC8vIFdlIHdhbnQgdGhlIEdQVSBwcm9jZXNzJ3Mg
Q1RNIGFuZCB0ZXh0IG1hdHJpeCB0byBtYXRjaCB0aGUgY3VycmVudCBDVE0gYW5kIHRleHQgbWF0
cml4LgorICAgIC8vIFRoZSBjdXJyZW50IHRleHQgbWF0cml4IGlzIGEgY29uY2F0ZW5hdGlvbiBv
ZiB3aGF0ZXZlciBXZWJLaXQgc2V0cyBpdCB0byBhbmQgd2hhdGV2ZXIKKyAgICAvLyBDb3JlIFRl
eHQgYXBwZW5kcyB0byBpdC4gU28sIHJpZ2h0IG5vdyB3ZSBoYXZlCisgICAgLy8gQ1RNICogbV9v
cmlnaW5hbFRleHRNYXRyaXggKiBDb3JlIFRleHQncyB0ZXh0IG1hdHJpeC4KKyAgICAvLyBIb3dl
dmVyLCBDR0NvbnRleHRHZXRUZXh0TWF0cml4KCkganVzdCB0ZWxscyB1cyB3aGF0IHRoZSB3aG9s
ZSB0ZXh0IG1hdHJpeCBpcywgc28KKyAgICAvLyBtX29yaWdpbmFsVGV4dE1hdHJpeCAqIENvcmUg
VGV4dCdzIHRleHQgbWF0cml4ID0gY3VycmVudFRleHRNYXRyaXguCisgICAgLy8gVGhlIG9ubHkg
d2F5IHdlIGNhbiBlbXVsYXRlIENvcmUgVGV4dCdzIHRleHQgbWF0cml4IGlzIGJ5IG1vZGlmeWlu
ZyB0aGUgQ1RNIGhlcmUuCisgICAgLy8gU28sIGlmIHdlIGRvIHRoYXQsIHRoZSBHUFUgcHJvY2Vz
cyB3aWxsIGhhdmUKKyAgICAvLyBDVE0gKiBYICogbV9vcmlnaW5hbFRleHRNYXRyaXgKKyAgICAv
LyBJZiB5b3Ugc2V0IHRoZXNlIHR3byBlcXVhbCB0byBlYWNoIG90aGVyLCBhbmQgc29sdmUgZm9y
IFgsIHlvdSBnZXQKKyAgICAvLyBDVE0gKiBjdXJyZW50VGV4dE1hdHJpeCA9IENUTSAqIFggKiBt
X29yaWdpbmFsVGV4dE1hdHJpeAorICAgIC8vIGN1cnJlbnRUZXh0TWF0cml4ICogaW52ZXJzZSht
X29yaWdpbmFsVGV4dE1hdHJpeCkgPSBYCisgICAgQWZmaW5lVHJhbnNmb3JtIGN1cnJlbnRUZXh0
TWF0cml4ID0gQ0dDb250ZXh0R2V0VGV4dE1hdHJpeChtX2ludGVybmFsQ29udGV4dC5wbGF0Zm9y
bUNvbnRleHQoKSk7CisgICAgQWZmaW5lVHJhbnNmb3JtIGN0bUZpeHVwOworICAgIGlmIChhdXRv
IGludmVydGVkT3JpZ2luYWxUZXh0TWF0cml4ID0gbV9vcmlnaW5hbFRleHRNYXRyaXguaW52ZXJz
ZSgpKQorICAgICAgICBjdG1GaXh1cCA9IGN1cnJlbnRUZXh0TWF0cml4ICogaW52ZXJ0ZWRPcmln
aW5hbFRleHRNYXRyaXgudmFsdWUoKTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gaW52ZXJzZUNUTUZp
eHVwOworICAgIGlmIChhdXRvIGludmVyc2UgPSBjdG1GaXh1cC5pbnZlcnNlKCkpCisgICAgICAg
IGludmVyc2VDVE1GaXh1cCA9IGludmVyc2UudmFsdWUoKTsKKyAgICBlbHNlCisgICAgICAgIGN0
bUZpeHVwID0gQWZmaW5lVHJhbnNmb3JtKCk7CisgICAgbV9vd25lci5jb25jYXRDVE0oY3RtRml4
dXApOworCisgICAgdXBkYXRlRmlsbENvbG9yKENHR1N0YXRlR2V0RmlsbENvbG9yKGdzdGF0ZSkp
OworICAgIHVwZGF0ZVNoYWRvdyhDR0dTdGF0ZUdldFN0eWxlKGdzdGF0ZSkpOworCisgICAgbV9v
d25lci5hcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KERyYXdHbHlwaHM6OmNyZWF0ZSgqbV9jdXJy
ZW50Rm9udCwgZ2x5cGhzLCBjb21wdXRlQWR2YW5jZXNGcm9tUG9zaXRpb25zKHBvc2l0aW9ucywg
Y291bnQsIGN1cnJlbnRUZXh0TWF0cml4KS5kYXRhKCksIGNvdW50LCBjdXJyZW50VGV4dE1hdHJp
eC5tYXBQb2ludChwb3NpdGlvbnNbMF0pLCBtX3Ntb290aGluZ01vZGUpKTsKKworICAgIG1fb3du
ZXIuY29uY2F0Q1RNKGludmVyc2VDVE1GaXh1cCk7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29y
ZGVyOjpyZWNvcmREcmF3SW1hZ2UoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYgZ3N0
YXRlLCBDR1JlY3QgcmVjdCwgQ0dJbWFnZVJlZiBjZ0ltYWdlKQoreworICAgIHVwZGF0ZUNUTSgq
Q0dHU3RhdGVHZXRDVE0oZ3N0YXRlKSk7CisgICAgdXBkYXRlU2hhZG93KENHR1N0YXRlR2V0U3R5
bGUoZ3N0YXRlKSk7CisKKyAgICAvLyBDb3JlIEdyYXBoaWNzIGFzc3VtZXMgYSAieSB1cCIgY29v
cmRpbmF0ZSBzeXN0ZW0sIGJ1dCBpbiBXZWJLaXQsIHdlIHVzZSBhICJ5LWRvd24iIGNvb3JkaW5h
dGUgc3lzdGVtLgorICAgIC8vIFRoaXMgbWVhbnMgdGhhdCBXZWJLaXQncyBkcmF3aW5nIHJvdXRp
bmVzIChHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZSgpKSBpbnRlbnRpb25hbGx5IGRyYXcgaW1h
Z2VzIHVwc2lkZS1kb3duIGZyb20gQ29yZSBHcmFwaGljcydzIHBvaW50IG9mIHZpZXcuCisgICAg
Ly8gKFRoZXJlJ3MgYSB5LWZsaXAgaW5zaWRlIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBHcmFwaGlj
c0NvbnRleHQ6OmRyYXdJbWFnZSgpLikKKyAgICAvLyBUaGUgcmVjdCBoYXMgdGhlIHJpZ2h0IGJv
dW5kcywgYnV0IHdlIG5lZWQgdG8gdHJhbnNmb3JtIGZyb20gQ0cncyBjb29yZGluYXRlIHN5c3Rl
bSB0byBXZWJLaXQncyBieSBwZXJmb3JtaW5nIG91ciBvd24geS1mbGlwIHNvIGltYWdlcyBhcmUg
ZHJhd24gdGhlIHJpZ2h0LXNpZGUtdXAuCisgICAgLy8gV2UgZG8gdGhpcyBhdCB0aGUgYm91bmRh
cnkgYmV0d2VlbiB0aGUgdHdvIEFQSXMsIHdoaWNoIGlzIHJpZ2h0IGhlcmUuCisgICAgbV9vd25l
ci50cmFuc2xhdGUoMCwgcmVjdC5zaXplLmhlaWdodCArIDIgKiByZWN0Lm9yaWdpbi55KTsKKyAg
ICBtX293bmVyLnNjYWxlKEZsb2F0U2l6ZSgxLCAtMSkpOworCisgICAgYXV0byBpbWFnZSA9IEJp
dG1hcEltYWdlOjpjcmVhdGUoY2dJbWFnZSk7CisgICAgbV9vd25lci5hcHBlbmRJdGVtQW5kVXBk
YXRlRXh0ZW50KERyYXdJbWFnZTo6Y3JlYXRlKGltYWdlLCByZWN0LCB7eyB9LCBpbWFnZS0+c2l6
ZSgpfSwgeyBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Ub3BMZWZ0IH0pKTsKKworICAgIC8vIFVu
ZG8gdGhlIGFib3ZlIHktZmxpcCB0byByZXN0b3JlIHRoZSBjb250ZXh0LgorICAgIG1fb3duZXIu
c2NhbGUoRmxvYXRTaXplKDEsIC0xKSk7CisgICAgbV9vd25lci50cmFuc2xhdGUoMCwgLShyZWN0
LnNpemUuaGVpZ2h0ICsgMiAqIHJlY3Qub3JpZ2luLnkpKTsKK30KKwordm9pZCBEcmF3R2x5cGhz
UmVjb3JkZXI6OmRyYXdHbHlwaHMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZmZXIm
IGdseXBoQnVmZmVyLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZs
b2F0UG9pbnQmIHN0YXJ0UG9pbnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCit7
CisgICAgcHJlcGFyZUludGVybmFsQ29udGV4dChmb250LCBzbW9vdGhpbmdNb2RlKTsKKyAgICBG
b250Q2FzY2FkZTo6ZHJhd0dseXBocyhtX2ludGVybmFsQ29udGV4dCwgZm9udCwgZ2x5cGhCdWZm
ZXIsIGZyb20sIG51bUdseXBocywgc3RhcnRQb2ludCwgc21vb3RoaW5nTW9kZSk7CisgICAgY29u
Y2x1ZGVJbnRlcm5hbENvbnRleHQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgRGlzcGxheUxpc3QK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVy
SGFyZkJ1enouY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjIzYWMzMjRiN2IwMGE5ZTE2YTU2YWQ2NzBjZTA0Y2ZhNzdmYzlmYTgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHAKQEAgLTAsMCArMSw1MSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIgorCisjaW5j
bHVkZSAiRGlzcGxheUxpc3RJdGVtcy5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0UmVjb3JkZXIu
aCIKKyNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiRm9udC5oIgorI2luY2x1ZGUg
IkdseXBoQnVmZmVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIERpc3Bs
YXlMaXN0IHsKKworRHJhd0dseXBoc1JlY29yZGVyOjpEcmF3R2x5cGhzUmVjb3JkZXIoUmVjb3Jk
ZXImIG93bmVyKQorICAgIDogbV9vd25lcihvd25lcikKK3sKK30KKwordm9pZCBEcmF3R2x5cGhz
UmVjb3JkZXI6OmRyYXdHbHlwaHMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZmZXIm
IGdseXBoQnVmZmVyLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZs
b2F0UG9pbnQmIHN0YXJ0UG9pbnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCit7
CisgICAgbV9vd25lci5hcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KERyYXdHbHlwaHM6OmNyZWF0
ZShmb250LCBnbHlwaEJ1ZmZlci5nbHlwaHMoZnJvbSksIGdseXBoQnVmZmVyLmFkdmFuY2VzKGZy
b20pLCBudW1HbHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGluZ01vZGUpKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgRGlzcGxheUxpc3QKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCmluZGV4IDY4ZDJmNjgwNTE1ZWFlNTU4YTBk
NGZiZWY2YWIxYTI3ZTBhMDllYjQuLjhhYmVlMWI3Y2I5NDliNTY5YTRiYTY4ODczYWMxMWMwYWY2
YTVhN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKQEAgLTQx
LDYgKzQxLDcgQEAgUmVjb3JkZXI6OlJlY29yZGVyKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwg
RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBjb25zdCBHcmEKICAgICA6IEdyYXBoaWNzQ29udGV4
dEltcGwoY29udGV4dCwgaW5pdGlhbENsaXAsIEFmZmluZVRyYW5zZm9ybSgpKQogICAgICwgbV9k
aXNwbGF5TGlzdChkaXNwbGF5TGlzdCkKICAgICAsIG1fb2JzZXJ2ZXIob2JzZXJ2ZXIpCisgICAg
LCBtX2RyYXdHbHlwaHNSZWNvcmRlcigqdGhpcykKIHsKICAgICBMT0dfV0lUSF9TVFJFQU0oRGlz
cGxheUxpc3RzLCBzdHJlYW0gPDwgIlxuUmVjb3JkaW5nIHdpdGggY2xpcCAiIDw8IGluaXRpYWxD
bGlwKTsKICAgICBtX3N0YXRlU3RhY2suYXBwZW5kKHsgc3RhdGUsIGluaXRpYWxDVE0sIGluaXRp
YWxDbGlwIH0pOwpAQCAtMTQ1LDcgKzE0Niw3IEBAIHZvaWQgUmVjb3JkZXI6OnNldE1pdGVyTGlt
aXQoZmxvYXQgbWl0ZXJMaW1pdCkKIAogdm9pZCBSZWNvcmRlcjo6ZHJhd0dseXBocyhjb25zdCBG
b250JiBmb250LCBjb25zdCBHbHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIHVuc2lnbmVkIGZyb20s
IHVuc2lnbmVkIG51bUdseXBocywgY29uc3QgRmxvYXRQb2ludCYgc3RhcnRQb2ludCwgRm9udFNt
b290aGluZ01vZGUgc21vb3RoaW5nTW9kZSkKIHsKLSAgICBhcHBlbmRJdGVtQW5kVXBkYXRlRXh0
ZW50KERyYXdHbHlwaHM6OmNyZWF0ZShmb250LCBnbHlwaEJ1ZmZlci5nbHlwaHMoZnJvbSksIGds
eXBoQnVmZmVyLmFkdmFuY2VzKGZyb20pLCBudW1HbHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGlu
Z01vZGUpKTsKKyAgICBtX2RyYXdHbHlwaHNSZWNvcmRlci5kcmF3R2x5cGhzKGZvbnQsIGdseXBo
QnVmZmVyLCBmcm9tLCBudW1HbHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGluZ01vZGUpOwogfQog
CiBJbWFnZURyYXdSZXN1bHQgUmVjb3JkZXI6OmRyYXdJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0
IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJ
bWFnZVBhaW50aW5nT3B0aW9ucyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCkBAIC0yMTYsNiArMjE3
LDkgQEAgdm9pZCBSZWNvcmRlcjo6c2NhbGUoY29uc3QgRmxvYXRTaXplJiBzaXplKQogCiB2b2lk
IFJlY29yZGVyOjpjb25jYXRDVE0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0pCiB7
CisgICAgaWYgKHRyYW5zZm9ybS5pc0lkZW50aXR5KCkpCisgICAgICAgIHJldHVybjsKKwogICAg
IGN1cnJlbnRTdGF0ZSgpLmNvbmNhdENUTSh0cmFuc2Zvcm0pOwogICAgIGFwcGVuZEl0ZW0oQ29u
Y2F0ZW5hdGVDVE06OmNyZWF0ZSh0cmFuc2Zvcm0pKTsKIH0KQEAgLTQxOCwxMyArNDIyLDYgQEAg
dm9pZCBSZWNvcmRlcjo6YXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChSZWY8RHJhd2luZ0l0ZW0+
JiYgaXRlbSkKICAgICB1cGRhdGVJdGVtRXh0ZW50KG5ld0l0ZW0pOwogfQogCi10ZW1wbGF0ZTx0
eXBlbmFtZSBJdGVtVHlwZT4KLUl0ZW1UeXBlJiBSZWNvcmRlcjo6YXBwZW5kSXRlbShSZWY8SXRl
bVR5cGU+JiYgaXRlbSkKLXsKLSAgICB3aWxsQXBwZW5kSXRlbShpdGVtLmdldCgpKTsKLSAgICBy
ZXR1cm4gZG93bmNhc3Q8SXRlbVR5cGU+KG1fZGlzcGxheUxpc3QuYXBwZW5kKFdURk1vdmUoaXRl
bSkpKTsKLX0KLQogdm9pZCBSZWNvcmRlcjo6dXBkYXRlSXRlbUV4dGVudChEcmF3aW5nSXRlbSYg
aXRlbSkgY29uc3QKIHsKICAgICBpZiAoT3B0aW9uYWw8RmxvYXRSZWN0PiByZWN0ID0gaXRlbS5s
b2NhbEJvdW5kcyhncmFwaGljc0NvbnRleHQoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
UmVjb3JkZXIuaAppbmRleCAxYjI0YzI2YzY3Mjg4ZjgxNzI3M2EyZDJhZWYyYjRiYzk2ZTM1Yzc1
Li4wNDRkMTQwZWI1MGY5NzI0ODk3NzU0OTE2YWUyYzU4MWUwNTM5MTFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RS
ZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSAiRGlzcGxheUxpc3QuaCIKKyNpbmNsdWRlICJEaXNwbGF5TGlzdERyYXdH
bHlwaHNSZWNvcmRlci5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEltcGwuaCIKICNpbmNs
dWRlICJJbWFnZS5oIiAvLyBGb3IgSW1hZ2U6OlRpbGVSdWxlLgogI2luY2x1ZGUgIlRleHRGbGFn
cy5oIgpAQCAtNjEsOCArNjIsNiBAQCBwdWJsaWM6CiAKICAgICBzaXplX3QgaXRlbUNvdW50KCkg
Y29uc3QgeyByZXR1cm4gbV9kaXNwbGF5TGlzdC5pdGVtQ291bnQoKTsgfQogCi0gICAgdm9pZCBh
cHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KFJlZjxEcmF3aW5nSXRlbT4mJik7Ci0KICAgICBjbGFz
cyBPYnNlcnZlciB7CiAgICAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIH5PYnNlcnZlcigpIHsg
fQpAQCAtNzAsNiArNjksNyBAQCBwdWJsaWM6CiAgICAgfTsKIAogcHJpdmF0ZToKKyAgICBmcmll
bmQgY2xhc3MgRHJhd0dseXBoc1JlY29yZGVyOwogICAgIGJvb2wgaGFzUGxhdGZvcm1Db250ZXh0
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICBQbGF0Zm9ybUdyYXBoaWNz
Q29udGV4dCogcGxhdGZvcm1Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0
cjsgfQogCkBAIC0xNDgsNiArMTQ4LDcgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBJdGVtVHlwZT4KICAgICBJdGVtVHlwZSYgYXBwZW5kSXRlbShSZWY8SXRlbVR5cGU+JiYpOwog
ICAgIHZvaWQgd2lsbEFwcGVuZEl0ZW0oY29uc3QgSXRlbSYpOworICAgIHZvaWQgYXBwZW5kSXRl
bUFuZFVwZGF0ZUV4dGVudChSZWY8RHJhd2luZ0l0ZW0+JiYpOwogCiAgICAgRmxvYXRSZWN0IGV4
dGVudEZyb21Mb2NhbEJvdW5kcyhjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsKICAgICB2b2lkIHVw
ZGF0ZUl0ZW1FeHRlbnQoRHJhd2luZ0l0ZW0mKSBjb25zdDsKQEAgLTE5MCw4ICsxOTEsMTcgQEAg
cHJpdmF0ZToKICAgICBPYnNlcnZlciogbV9vYnNlcnZlcjsKIAogICAgIFZlY3RvcjxDb250ZXh0
U3RhdGUsIDMyPiBtX3N0YXRlU3RhY2s7CisKKyAgICBEcmF3R2x5cGhzUmVjb3JkZXIgbV9kcmF3
R2x5cGhzUmVjb3JkZXI7CiB9OwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBJdGVtVHlwZT4KK0l0ZW1U
eXBlJiBSZWNvcmRlcjo6YXBwZW5kSXRlbShSZWY8SXRlbVR5cGU+JiYgaXRlbSkKK3sKKyAgICB3
aWxsQXBwZW5kSXRlbShpdGVtLmdldCgpKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8SXRlbVR5cGU+
KG1fZGlzcGxheUxpc3QuYXBwZW5kKFdURk1vdmUoaXRlbSkpKTsKK30KKwogfQogfQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFzLUNPTFItZXhwZWN0ZWQuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jYW52YXMtQ09MUi1leHBlY3RlZC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmMxY2IxODcwMGY3NjBjZTVhMDYxNDBlYTU4Mzg0NmU2MDU5MjgzNDUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFzLUNPTFItZXhwZWN0ZWQuaHRtbApA
QCAtMCwwICsxLDU0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+
CitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogIldlYkZvbnQiOworICAgIHNyYzogdXJs
KCJyZXNvdXJjZXMvQWhlbS1DT0xSLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsKK30KKworYm9k
eSB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworfQorCisjb25lIHsKKyAgICBwb3NpdGlvbjog
YWJzb2x1dGU7CisgICAgbGVmdDogMTAwcHg7CisgICAgdG9wOiA0MHB4OworfQorCisjdHdvIHsK
KyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgbGVmdDogMzAwcHg7CisgICAgdG9wOiA0MHB4
OworICAgIGNvbG9yOiByZ2IoMjU1LCAwLCAyNTUpOworfQorCisjdGhyZWUgeworICAgIHBvc2l0
aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiAzMDBweDsKKyAgICB0b3A6IDQwcHg7CisgICAgY29s
b3I6IHJnYigwLCAyNTUsIDI1NSk7Cit9CisKKyNmb3VyIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1
dGU7CisgICAgbGVmdDogNTAwcHg7CisgICAgdG9wOiA0MHB4OworfQorCitkaXYgeworICAgIGZv
bnQ6IDIwMHB4ICJXZWJGb250IjsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgbGVmdDog
NDAwcHg7CisgICAgdG9wOiA0MHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRp
diBpZD0ib25lIj5CPC9kaXY+Cis8ZGl2IGlkPSJ0d28iPkI8L2Rpdj4KKzxkaXYgaWQ9InRocmVl
Ij4mI3g3RUI1OzwvZGl2PgorPGRpdiBpZD0iZm91ciI+QjwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZhcy1DT0xSLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFzLUNPTFIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YzIyMmRi
NDIxNDQ0MjM4MjMzOTI1YjE4NjY4MDRkMGI4NjRkMzE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZhcy1DT0xSLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorQGZvbnQtZmFjZSB7CisgICAg
Zm9udC1mYW1pbHk6ICJXZWJGb250IjsKKyAgICBzcmM6IHVybCgicmVzb3VyY2VzL0FoZW0tQ09M
Ui50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+
Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSI3NTAiIGhlaWdodD0iMzUwIiBzdHlsZT0id2lk
dGg6IDc1MHB4OyBoZWlnaHQ7IDM1MHB4OyI+PC9jYW52YXM+Cis8c2NyaXB0PgorbGV0IGZvbnQg
PSAiMjAwcHggJ1dlYkZvbnQnIjsKK2RvY3VtZW50LmZvbnRzLmxvYWQoZm9udCkudGhlbihmdW5j
dGlvbigpIHsKKyAgICBsZXQgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZh
cyIpOworICAgIGxldCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7CisgICAgY29u
dGV4dC5mb250ID0gZm9udDsKKyAgICBjb250ZXh0LmZpbGxUZXh0KCJCQUIiLCAxMDAsIDIwMCk7
Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC90ZXh0L3Jlc291cmNlcy9BaGVtLUNPTFIudHRmIGIvTGF5b3V0VGVzdHMvZmFzdC90
ZXh0L3Jlc291cmNlcy9BaGVtLUNPTFIudHRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyMjNhNTU0MzA2NTk5OTY4
NTExODBlOThiMTU0NTRmN2M0YjJkODYKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDIxODI4Cnpj
bWVIUDMzd0Qkd213eldkdl9wIzVQP0NoZ2RIWDZZQEdua1VgUGxzNDxveXYmKFRpT1Mpa00xclZ8
bm85Q1hCZQp6MFM2dVRRRHopbTl9YkVTNmBmSDVmcEl8ezVMclQwI3o2LWUyRWxQNSljYTJAPX1K
ZiNwM25FYmtNfnZqdEV6a00KemE8K1QheXtBc3lUb1E7Vmk1OFBZUTtJS35KV1V1d2xhUjk7Kk1R
PEZNVXc/bVFqcT17U0s1V3N2dlQ1OVU7bXMpCnpOQ3RkKU1PYHA5Pmg3NWIwbXEyIXpVcDgrTXJW
K2wkZ3ZSUiQ8XlUyc35rZ3BNU3lRNT5WSkRwQ3xKMmAlM0V1UQp6KGcmYkNQPWdHbyQ1c0clMkgt
KDhicSZxXjlBWG1TVytMMHthSV8tMGNFIyNtTTEhe3lpSjVpNT05dGlyQGVmMEYKemt8VipvKEF3
Yn1gdkkxVGhPZFo0O3wmIyRUciFZbz5VdHN4ZD1nOTcxNkx9RWduWmx3QSt3S35GWEFxMDxxOWVJ
CnpCTCRFb1o1TmkzOWFZemZIdl8meWRrUHlVTjAxblM0Vm5ENm19cGZwJHJEdW93fktPJVdqZGVh
PEJCOUpnK0xfSgp6Q01FZnBsWW0+MjBUSj1WQ3tUemk2P2YoQG0yNVdYUn5RWXpOdXl+OVR9PTx1
QmxIe2tFaj4hVnFtfWQrSngpKjEKemxrXmxsUDUoaXc9byRKd0p4a0JnOGhXMW9saClEO15kaH1Q
PiohXkFoNWtUKXEqdilSZFl2fVZNdFh4YihQcjkwCnpmMSk/KDlva0NvKHRHcjArRDY7eTFLTDMh
KGt9RyQ5JWBZeilKaC1HJE1neTlxcmNGbl5qRiRYcFY4bXcwRFZEIQp6ciRoNylJIXNeRTVqc2o9
KExaNGctX1c7b2pOMGZwRE1HZHxVMSUyVzZnUEAqaD9+V287eDJLd3hKT3pwSnUwbn4KejkrJWNo
ZjBQfXZTNUFfWDx5NSghKytSTFImWDktNWV0RVE5bEFlKTFCdHkoX1djMThQJD5eMlFGUWIzUFNz
Q1lLCnpPdzcxRUJiMEc/QERATSRvbj0lZW1BVDY8RXhXYUJgUDZ3Kz4hdWdZYGU0P3NpX1dlZEhn
YGxnRkU7UCRIT3Q7VAp6QnAmRGZWK3t7ZWIrX1dBeD9CQShiK144Zz8ldlhNX3I2SllKNVE+KyZz
RShXPl8mSXJ3ZC0hME5xME5DKDQ4b3wKeldnbTNjVGtaP3A0VWxEM2NjVl9LeVVQRVQ/dWQxI2U0
PjE7ZTRgdnVUOXIyQ0dkZUByMTktM1VzZDdPMTlNRmc0CnpQfktIYFF5Km9VdlF2M1NgNVA9Wk4l
PXQ4Z1ZFKGZpZ1dpVkExT1BPMmJCJVYxODh8YWEoM2FsT0Y1YDRTOVU4Twp6RHNMIURrJHcoIXdr
ZnhPLWFjaWVhKzdqe2EtKThLTj07d2lldCQ+ZF5iLUM0NyUoblRleFkyYXRPdGNobHh2aVEKeiU0
fXQ5K1pTeXwrWVlwfnc2KFZGWHhyMkZsZVRFdnl0V2E/LWZ2NTdKPEB1KF5+PTNWPnVhcWBUMz5F
bSpaTlpICnorU1hPQURfYkFoYHw5NE9UUnZgaXZ0QGhCd3dCY2BIP19SZ3ZaZHZmbVBjRHxabjxJ
NGNlQDV7Sl5ycmtTPmFqUgp6PlRnIyt3Ui07UUReQCtZPmZXYX1LYXV+JEBXJjZ8YGA1Y2FUZlRH
WWlmYj5BaiFwaSVAUmQ0KFZSK1d4X3RKbncKekYzZzk/QncrTVBORy16REkxaDhCZ3FlX1hRX0Bv
Z3I+Q1NaNSlaY0JBc2pqR2xqTEtxaV5MKFViRVF6KXVodF99CnpOfCpLQD54O3NeUio5dHAlTVBy
dVY5ZntDb01eMkpibFI8ckBGRFBLbCUzdjNVQ31xRz97QyZoZjRYYCo9KiR5Kwp6dnt1VlV2d1Nx
bU4zKG8xJVNXPyhHfE5YantkX2JsPmU3VypWP35+PD0kalJSdzQkKDlCLSlDYHBMUzd+KHtEdT0K
em1QLTRAKiZIaU0oUEtzOFklTjtVWk9KQzM1TX0mamlGKVV6NEJXSjdsbGxeaFhoZTQ8WVY/Vk8j
cWA5c0dxenZXCnpeU3E8dm1pRl5rdTRraXsmRWU8ekp4XmpjZmdZYnlCVWhZQEtZWDlrX1ctRSUo
RiFAe0tPcWZ5X30wWXs2Nj47Ygp6VkE7VWAyT0hxPUVGOTdMUW4mIVh4NDJmfiFxaH5TeGJWa3Y4
aDx+cSUkdENaRFcmU2FianFZTEc/OFhmSVludDkKei05JmR8UHRofmpDQTA7KmZBKFFkJnZDJmte
YzRtUklsQD9Cdk1AKWU2NV8mUTtXcHR1VklfWGczOWt4bzMlaTg8CnohY2tFYWR4YF9aO2JLNTY3
Tj59cGlnVSMjQGo3dnRfPmxPZHhLYFhDejk7UyM0flhBTDR5aVp4SSpwVkBPQjE5Uwp6UWMjTFdT
NGxUWWNTJFJ4Um9EciVTPXVnckF7fjwyWTtJZWNaSl5DPmA/Mmsod3VAfCl3a3ZFYCtpdFBsVnwm
IUwKeitWJShBbzM7O2FwVzQyKGxSZTRhLSMqbHlYRF9tcyopT3J6KmM8S0YrVjhNR1YxTH5IeSMw
MGlSe0l8Tj1rfFgoCnpZPnBKaVMmbmxZZ151eCNYXnpWclZhSnRAPm05I3pKblZTZEB1SzRtJERi
Vl5JU3g5JGJHbj47b0VncTY9WHVVYQp6JlJOYjFYVXdfQ2Q5KDlaYDJFKVRkKj5fOEtSSV9lfEtk
RkNSOXJxK0tpM2RmdUlxZikxK0klLSl2Z0JESExseFQKel9xIWYqdCNRNVBkZEljZl5fbEF7eDh6
UUNwWG5hcUVed0UpckBEWFVwNjcwTUZMQkBMezxacmxfWTNaZz8pVGxUCno/bDBXbWRZcW5BUHI0
YDVHc1pLfkd0KlA8aUZ5YCNadH5waWBIa2xwJiYhQElvKTB8eEpwYj88X2o8ajN5QFMwdQp6LW0l
YHYtWnxiWFpgYH1zZHo8JEA/QEk0Oy1kRFlFZHZ8JkZkeW8xPVVyKmx2LSo4YGAraDRKN2l0a2Uy
VHdqeSMKekleUXppTCV0X3tZa2VEaEBBPnhuNCowJUZhd1BSbWw5TlV6alpUXlhZcilEU3FeWXx3
KmVwQShRPUNQRWd5Kz5LCnpabyhsV2dfXkUqTlRlUEQ/LTFsYWk4NGZvbWMmKiRtcER2TStvYFlV
KlY3SzxQdD88JTxRajJgcDd6cTlVVGdKcQp6NTFRNiVjUk4ye19zLVBRMEArZzQ5VSFQRGt+NExM
by1he0tZUE8hWHEwVHJ4WjZ7eDlzaClOcWYwfn41VjQlIz4KeihfWlM7cDYpQHpRKX40NldZa30j
ciZCPWRFPE4xfmA0MiErIUdedHYhbEJmTV4peiZud3AzMztDdSNUU1kzTDtGCnpjWH1FK04hejVT
cF84PCZkS3gtTytwbmpnbGU5eTY4YWYldW8ofEszUEtHWWopNSt1LWBuSH08cCZtb0c+Ki0jfAp6
LSR5ZzNoQyhEJGtAfkRkc3RSKkpnY15gNE1AZCtQc3dvYiowY3BOI0VuP0omOGV5dVgzZ2xMenRk
ND8hQkE4OE4Kej48eHxKSntOV0JrcnppZipLNUY/djF7MEJQQG1+PVROJH1nNnstaS0zWiQhJVEl
ZWd9P3oqUVhxaD1Gb2hDbjl7CnomVDEoSlR2MTQyYTJpKUpSR31ue1JHaUxqRlZTUVR0MT5wQkpP
WXxCNiQ0WDk8KmIoR3Q4SSZjdU1SKGheTlcjTgp6NH5SS3VVYzt6ZXVlYWJqR1NWXnBTVHteQEc7
KFNuVExiYiZReDw7UXE4dWZlWHgpKC1PUC0qVzM4KUBpYVNQVTgKejItc1BrSUM1QXMlKjlCXiZ3
NktHdm5VJWx7ZGhMMmJ5KHRSbCFqR31HUGchUVBnNkA4UlppK0A3OWlIMik7cUZfCnpCX0RWYWM0
NCZadUJLNmJHSjllXngjeVY9PTlYPE1oRyEtNiVJUWtuWENTOWlnLWNQbDIwVXAhJU5tV1NgNF55
YAp6KXtvcCVZLXR5dXRRcX55eCg9JiNHJl5OMDRGZjtoMGMoc2N0cUItd1JoWHNpJSEhUUorIzgw
aWF2dzNSMVAxT2cKej0yOUMwam9edX5GKCNJeTk/dVlaUGV2fjFXa1pBZkdoMThgKnlwUiNhQm10
bDMpfH0lYXZHeklicnNpcG8rWiNRCno9ZHs8Pz5NX0B2MjYrdDVMb0xtZzRKO2EwYWs+SV8hTTRo
akwocDBmbT5WRD8+KXU+eW1hPHdjazNuWFppRHc2dgp6bFNoTjUoK1pTbV9ScUw5SjJMb1dpPmla
ZUd6dmtxVi1LU2wmbkMyRGk+Xl58XjRKV2tfP2NyKCNfc3N4NXlEIUQKejttTEFwYGUoVSQleFR0
P241aV5lUmdqeDBiZC18MDtRbkpDbjcyZiYmYj8mbCUrTSFtcTRUYEtHWFFKZDgxWGFkCno5Tzha
JjNCUVV7MG80dyliZktPYnB3amwtMEAjYUl3fThnQz1ON2VORDVrPnArK3ZKbHQhfTlhTHBKM0My
VXtDYwp6JCk8Y3opb083JSpIbHRxIWooOzxQfHMrVWdIYVhHVFhETGVMJishO1IwMTReWSRhNkVV
WGx4WmNfeWRgdjw+WEoKejs1JmhscCM7V1U4VjdvYm4jR1haZkxNPCNvazVTRzFQIWU7ITN+IWRi
IXVET3A+MENIK303TW40NEpqVHUoe3tfCno7RyFkNkVOX0FAbWRWVUBVSSN3Mko3SChvajl1ZDwo
VnBTWDxxMztuUFA2ZWRzNTR+ZG8jNnk7NDRIWGoqc0tTfQp6SHFPTCo0bWVMKDlHMzw8Tlh+R2Np
RlV4JCZzQDgtMTI2Z0wrWFF2aXEyRlcpZEVtc0REY04+NElBTzZHb1VqIyEKel5HIUMjYUd9WTE3
JmNwQks0Y0E7cXxATXAmR1A4VExtZmwmYEtWb0Q7IWxHVStRfjsqd3JTKUEwT3kjcjYjeUBjCnoo
WkUqIz5DRSY7cD4+SWdVYTJhKkY7ezMlUEtVTG8+c2lre2l5Q3VPUzJKTjheSG0qWUNUKGByKSZe
YzNIUSZmKwp6KzVQT3M5ISFSUTRiJGZ7S01od3NuPTtfJF5eYml5bz1NOXcqWVpsJC1FMkJXI1M+
SFVYfUROQjhtPWtyU2E/bjAKel5AZT5BUEhEYW08MkAwNyQyQyZKenVBUHA3YEFYU3sya2tPTVp3
R2c8N2ImOHU+RXAlRWo2I1dhYTl4QStPQTIqCnpHeCt6e2w7TFojbXNnOCpQdCE1YCVCTT1kNmt+
eGBpTFFBdHswJlhkWDVXUDY5MWtrSVdeKFZFVyNWfj5YVTNEYAp6PFVTMDs0ITgkVCNMUndEY2JJ
ZCMhRiohaHBOTSR8dGRLcE41YyleKyUwP282R0hROTxQJjBKSHk0Sml2X0QkKmAKek9JSCQ9cUVH
bTM9VHhjWXBDVlBtWFZaTUV0fCg2alNJd3RQSCprdHsqPmBLIT9YN0Rxdi1qMH45fnh0Pl5aZHxS
Cnp0TChXfmJ4VVU9WT0/RTtKKU5SY2wheGBsLWxGRjFiKyQpaW9NfUZ4RzB3V1AmdkV+UENYZGdx
ZFROc0R4JD9VJAp6ZHlESy1ZajRqZCgkUUFQQTdiWHtEM0xMOSVtcyhzZjcpQTFWb3Z2Qzx2UkpP
P29QSUBIUH02IWxKN31wMCg4ZnQKemRtYzFncD15elJjJUVyd1QpZjVeQmMpaT9GYU1fPmB4S2gq
c21hRTNnbDRAcCY7ITJ7RjJJd21MJkwqd0hrYH16CnoybHUxKT9zP0pgWlNEeHVpVzdqWmxZe0dq
aWB1RXtVP3liWGsqdmpXJSheaDxwTSk7Pm94QzJCdnJUPylKelR4VQp6cXo4Vko4MyN8VHZtWEFa
bHJxdE89NkZnSVI+dm16T0hKdEkzT3UhX055aj84JUZveTk3JldxQj9iR3FnIVZJTUsKektTeCRM
XjF2JHdtdElJeVhieiVUV2kpfDJHaXBMfFFCOX4kdThLdyk8bm1CQjhtVyVVNE48dVAxK204UmFC
WVFMCno4TGJQfU1sJDZ8NXFXTjdlUW10NXd4WGRuOGJQKDFVO3wzIU5WR3cmNF4+Mn5CZWVAVXdV
VlB2a3grZlNyWnklPQp6c35CbEtCdjtqakwtQkp9M1JUZj9JTkRTanNne2ZETCYxakhgNjBQRFQz
NSUmRkFtajU8O3FZK0k5UUtAWGhhVWkKelYmVTNRZTYoRUMmPTREKWxAJChfJDFeTVJXKSloaSV4
SGFlN0krUnQ7LVByZjAtelkjNmE/MCs+YFpARlY+fk15CnpzdCQlTHFMbT8qZDBNRXQ1IWgjZUtn
T1MobmVTSjEhRFolNWhJTmB2Ty0tM2l4Zk0pQyYjNFR9TX4rSWpjPjQ0Iwp6UiUxTFhoISRESjdm
eldvc2NlR0JNMmVIYHVAKW5+cSh2WmpxX1VyOyNnTiNhV25WR3oqM1lCMWA8Tmp8SHpyfEIKelRr
JU9OSzU0Y21EP1p1VFhFRVk8UigjVG1QZz9Pd0Q/VncoQyQtcVI3TFQ7emxaa0koUih3KjZFXzQr
PT49PDlQCno7KiVYP2lCXjJsaWNneTNQZ1o9Z3ZscUBZTSVVNGA2WFMraldac0hUbyoxJDJUN3k9
NlFkYDQrKmw0SH5wWD9aVwp6ezZDNk1CSTJ3P0V+ZzxmUjt9KU47Y3ZTfXU2Q2p6d25IamNWZHJs
YmU/bDV8RFQrOX5Qe05LKEoyYE4rbUo2cFMKemRpbXJ3Pj8hUHReUzRyezd4aE4jSzlxKE45USNy
fj5RNnRTMGR5dnZNUTNCNE49Tml9QWtJITRqTUU4K0JKd18qCnpNai1abkYxfTc+QkEmYFNHamh9
fjxOUVVQY2NGfkpIez55Tjl7cmVwTFN5TkNAWEJ2bENGKGNKM0R9YzdpR0U3fAp6TXc3QTJ0NHhp
PlBOaXZ4KlVtc2hlLT5SdHZre3hVbUBjN3pyJVVOKWJReFdhKmxqcj8hMGQ1Vks/NUErcE5sVUEK
elZNS0hKeUcwQjtwbV50MzE5VVNWKGMpKDhkfEUoUFZiQWotb1RkMTQ5TXlPWXtlckhlQzNIUkFo
PChzRSg9QnV4CnotQStxczhUfUh3cUpLcFgobkk+V2ZxZCNCcFNFYjZ3V3l1Ml8jJD5xenV3X0Ej
a2M1ZntZMXQwSkRqTXZ2KHVUMQp6ZTIoSmhgYm1saEpEO1R9KmFXK0puJlY0Mj1rWVE2SFFpNkVh
a0Fyal4/YnEmYlM9KHR5YURHdlpkQXs4VHR+T2sKekojLSk0aSZHKSpxekM4QFQyNk9pZkI2ZUko
LUNKcjNKd3dscntFSVlmKFFHJGVMfEFaTCtCfGEzbkBZYHB8X0FLCnpeYnlqOEdxQiZncFVffFVr
dVgzd1EjZWFGVGFibHhBd3c3XzQ4bEl9QTtNNSRuNX1IKTxqRjNhLTVJT04kOztJZgp6e3laYSpG
SFcyeG01aVY0WT5kPkZqeFIwY1hPNz5XcWQjLT9YUCpBZCpQajlYSVpBJlA+Q2JXZSU9UD5JP3FG
NEkKelo2R0BrJGE4V2sqUHFRTGRFQDxsP085bD8henphU0sjQUhpWn5RMmdRaHMpekxAIXI0MEla
a2l0TkhvNGNgODBvCnpEJlRyKHVSYVU+VEQ/R1Z1OEpwNmtXPEx6cXEwbFhgdVBSZnMpWVhCQkRI
Pj9DYGFXU3Vxcyk+XztMQzRVKlJoZQpBQCZFdDsKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL2NhbnZhcy10ZXh0LXNiaXgt
ZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL2NhbnZhcy10ZXh0
LXNiaXgtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YjRiMjE0ZDU4N2Y3NGU3NzcwZjlhNzNh
ZjliNGM2ZWE2MWE0NDY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9jYW52YXMvY2FudmFzLXRleHQtc2JpeC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNDMgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK0Bmb250LWZhY2Ugewor
ICAgIGZvbnQtZmFtaWx5OiAiV2ViRm9udCI7CisgICAgc3JjOiB1cmwoInJlc291cmNlcy9BaGVt
LXNiaXgudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOworfQorCitib2R5IHsKKyAgICBwb3NpdGlv
bjogcmVsYXRpdmU7Cit9CisKK2ltZyB7CisgICAgaW1hZ2Utb3JpZW50YXRpb246IG5vbmU7Cit9
CisKKyNvbmUgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiAyMDBweDsKKyAg
ICB0b3A6IDQwcHg7Cit9CisKKyN0d28geworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBs
ZWZ0OiA2MDBweDsKKyAgICB0b3A6IDQ4cHg7Cit9CisKK2RpdiB7CisgICAgZm9udDogMjAwcHgg
IldlYkZvbnQiOworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiA0MDBweDsKKyAg
ICB0b3A6IDQwcHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8aW1nIGlkPSJvbmUi
IHNyYz0icmVzb3VyY2VzL2ltYWdlMS5qcGciPgorPGRpdj4mI3g3RUI1OzwvZGl2PgorPGltZyBp
ZD0idHdvIiBzcmM9InJlc291cmNlcy9pbWFnZTIuanBnIj4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL2NhbnZhcy10ZXh0LXNiaXgu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL2NhbnZhcy10ZXh0LXNiaXguaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kOTg2ZDE0NGM3YTBiMDc0ZmVlNTlhMDZhOTg0YWI5Y2VjOTU2YjNjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYW52YXMvY2FudmFzLXRl
eHQtc2JpeC5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzdHlsZT4KK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiAiV2ViRm9udCI7
CisgICAgc3JjOiB1cmwoInJlc291cmNlcy9BaGVtLXNiaXgudHRmIikgZm9ybWF0KCJ0cnVldHlw
ZSIpOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iY2FudmFzIiB3
aWR0aD0iNzc1IiBoZWlnaHQ9IjU1MCIgc3R5bGU9IndpZHRoOiA3NzVweDsgaGVpZ2h0OyA1NTBw
eDsiPjwvY2FudmFzPgorPHNjcmlwdD4KK2xldCBmb250ID0gIjIwMHB4ICdXZWJGb250JyI7Citk
b2N1bWVudC5mb250cy5sb2FkKGZvbnQpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgbGV0IGNhbnZh
cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKKyAgICBsZXQgY29udGV4dCA9
IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOworICAgIGNvbnRleHQuZm9udCA9IGZvbnQ7CisgICAg
Y29udGV4dC5maWxsVGV4dCgiQVx1N0VCNUIiLCAyMDAsIDIwMCk7Cit9KTsKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYW52
YXMvcmVzb3VyY2VzL0FoZW0tc2JpeC50dGYgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZh
cy9yZXNvdXJjZXMvQWhlbS1zYml4LnR0ZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40M2I2NjJlOTc5Mjk3ZjJiZmY3
MzZjOTlhMzBjMDg4ODFkYjM4Yjk0CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAzOTk3Mgp6Y21l
SWIyfFNmdSpEJGAlSVhHcjFpWll4fkRsKlN3JGthZHhDNmFqX2syeW57Rz8rel5QKUhJPSMlUnUx
czEldSUKekRSWDktJlZPSSRRMTFKPUA4XkJxPWx7T24/fHJ8fDwjKE5IP1ktQXRkIyR5bmIqKmRm
NFdJeDN3QlFXRGZQTEN9CnpmK0JlOXhnWiR4NCZKOU1vWGxMTTxNYy1YSz1BYFdQSFNVXmNMaUdq
NiN4YGNGbnhvS3FwdmxrP0tlZGopJk85dQp6aHBtO0ZXJFRnSjBzd0dqRmtRa0hNcXNKUUJ3PV84
aEl3cUFKYllMdyZ+eU43WDkwbGhuNF5uQFN6YldhMm1tYD0KejBZRDJsbmZiVilTUH1aWERHKHAk
WjAyTkR5dHslR2hGPGAlYDtNeSUtb3hWZDMycCMlRUNJai07bXolUV9fKXJ0CnowJnVoazBDZmRg
IThEPkcwWGR7cWhRMHpSTTNBMVNhdip9anoqcztBQmEhUDIwSiQzZzRzdVBwM2BKRk5VPzBGTwp6
NkVIWGVsbnNMZVJmRytUU081cXgyOEpMdkxgKmROZ19IbWp7NiNkITFqeHdkcG5oYXYwMUlUbVA3
bnhFei1eRVUKeihtKj02M29eaHhrT31VQ0Vic3RpZ0IqfHg5KWReVUZ+fG82cGIhKitWbyhCfWZL
cEhmb2BQcktJZH1uSGY+Kz0qCnpDPGhndzU+JGF8UHlebj0rTmNOYiEzWGRXZDsqX0FCV01DJkty
PzZzWkotQD1mS0pjX3pKaE97OH14dSkmPEZhIwp6Y1E2Mmt6JVVwQVc4ZW9FMk5QZnRPbzNASTE3
XlYtX3pDOTBCM0peO2ZQZk40PjdqZzMoZFlfdkNBdTJqZl5KMigKenExIVJuRnpKe0tPZVVyYl44
IWJLcXJ1VlBIc0Z8V3RobFc+NGpkUDVDciRfX2dXSkVJWXhfPHZHIzNSSTB+YUlMCnpNbE0jYXR5
fjtqZHxWbl9yP3stUkNVKD5hMFVAancoODZkQFhfO3QrWUYqUUQmfmVnSkdINWJySFJRQ31XeHZO
IQp6JSsoPlZBbkw7cF5mR30hZlYjd2lUfTBqOGBLUCtlYHd3O1o9MTtuLVVDfntgOHJgLTBRezQ+
YGJ2T0RxeD9BfEEKekpLWig5YHw9bU1MKnVBJHZgfX1PYTRiLUZZJmFaSWNoZGg8Y2I1TXQtMnBe
KmdsQHQmIWNXMiFwXkxDWTd5dyVjCno/SihSKT1wemdoMjRTY2ZQIUsqNCs1amAqR29naTBQWil3
Tm15WGF4WGIxR0w9aEcybWRrOXwlVWtKQWQ8JUMzLQp6XkNyWT1oMGoqUERCJjhSam5HVn1CdCR8
dUFMNHVfVCFyUUo1SGJqdDJfYnxfRTU4cWpAV28laF4jbGFJdT0wQmsKelFvS01vTT50UC0xNTND
fjJxeVJ3anU4fT5Nd1hfUmhMPHspeHxZNXl3SiN8d3hoeSM+P09BTUNWKE9hZW4mX0pCCnpCeV8j
JXkzcUJzdEV7V0V0R0Z3LUUyQXJeXkpRbXQkRzQ3bTlnUThJSk11YSVjaHEqJmJVZj13QDNfKHQo
IVM4agp6Xk0zZ1EqPDtqV3ZiXzFjMllGdDNabj9LfDxGbCpwaXtJYSFJVDdDPEgqbD5iXjNLXilF
e1lxKlAmMzNIMz4pNzEKel4+MWthMTFSQjt4JmZlSUA1TWtVMDFrfX5hSUQwQGtyMFM3WmZEJUZv
cEV+cmRVUG9RSE1MQk8hN1grTHBtIW9WCnpDckR3dzZZJjU8K0smMFkkTzAydCk+R0RYdS0qPlZg
QDtIb3VzJFpQJmtOdng9LWRiYDFeRTZXeXElZGlaJiQlcgp6cFl7M3RmM0ZUO1cmV2NqKjdkKHZv
XntKfHkqSUE2LXUzczBfNGtQTl9sV2lQaTFxaH5fNGtQWHNxWWMlez1kSmwKenl3YG84PndlJk1V
LTxnPmZkMzE9aUomNGUtX2dlcVVsSFNxdUx5bU48U3FLIWxxIU4wT2hkak9mbFo9fSsqTVVvCnpM
XkI/fiY7NU4wXmdvPmU5eUEwQlF3RihkSyF5Ml5lOTN6M1Z0TzJUekc9X21gU21fYl5qamdaQFBh
PDhtR0FzUwp6ZTMlUXl0aTRkMVZJMklQaDRARi0/e3l1bHd9Smx+KzVwbUBRRSgqXkFgOXY7NDl2
cWoxS3c1ZXd1Q3Bsa2hJbjcKenpnWHJmTkRuRUFZMnxNXzVDRjEzMUx5O0QtfiMtP1dlXjl+NEx5
Vl9mb2s5aXBCfWh3WEJrQzxWbk9YZGlKJWx3CnpoZnYyKykranZjM0BRd2pmWFgyTDwpZERyPlFK
cXlAMkZgczhxSSlhTCs/Z1FwakZVRSY/YWJtdl5WLVpJdHJiSAp6Jk8jVFglaDRhdm8jPGlvUFll
WlM2SXtgPjdiQW1GI35qNiZWVnA2aUZfJHAwbV4rd1V4WmJCNCh9P05Ee0o8PWQKelFJVHlYPDBj
YSNsUDVic1c9TGo5PTArQXNjOXJZflN2cHhCKj5rZFlXWCl1S1dSdjg4b1FgfWVJV01ed3hlfmIr
CnpgM1o3Y2EhPk5KPFBxZUY8ZUI3ITxnZHghbGVkIShsRnczKlE3fT8pUTFEU21RSyhZclFrWVVX
UXV0Q19xPT16Tgp6cH4kOXFMUXpUYWlRKzU4RDgmTW42M2RMYCFVfCZMdSRvdXt0T2VFOzgtVHE2
fEVePXh1I2QzTXV5MyhudSlXdmAKekVQO31pbDloNU5yNn1iLSVFT2RLbHMxJGVsKTtxWWxzNzV3
UTVJMFhxTzdORXFhMmB8cH42c1lwa2stbUxuVFNJCnpwR3RAN0IkV2V8NTdoOyNYc1RxWTJVSTBn
Njt1c1dUfnM0Zl5WQz5zQ2hHMGYwQFNrOThyMXNLPUZ+M0t7P3dQTAp6PEVUQHFBNXVUMXVBeSRD
P3g3eTFVWiRhO1ZXSFZVQlNORHtiQk58UmpXckZQPF90fDNPIykyQE8rTCpfbm1VP1IKem4oczh6
dn1qcmVTfmw5PGZCUHB2dDNyRSgpYFpyYyl8PlZgWjRfLTFaNUN9WVo4X35uK0RfVkcrTWplM2Jl
cmdLCnpiYklNIVV+N1JoNktYU1lyM0tPfnwxP2hfUUdmP2tOUE5OeylRP3BOVnA5R0pwI2VQI3Uy
TGdqN3tHPDVTYkBtXgp6QzNARWlPYiVHa0xNdCFAak1yRiFzVztmN2tGM0JuZk07WHozUVB9bEhA
NXhhWEtzX2czWEIzfE92Rl9sNUR5S28Kek9uWC0xRkBUWHRjbSpiZElMYSQ5SWlPYHlUWSlLSHl6
VUIyNExnZCMzUVBrd3sofFlqWllKQjZfemUoMFk2V0o1CnpXeVArKjgpMUFSdj9FWXRhNGpMfjJV
RSVsNDBXPE9hc2BHdSo/ZU9LaEMxMU5jTGp6eio8N14oTCFFNFh6WEMmQAp6WjJyQ2lMIUU1P3U+
d1AjQEZJMiZRV24kK3VtMXxYMFp7VlJ0LXk/Y3Awe3hZLVUjRCt6KUBmZXROOyF1NXVaKkYKenZX
OD1UR3deX3JJWlNhUmhITDtIaENMdlJ7RX45RzAjQXRIMjwoNmJqSjFTbVBRVk8/b1opREsxRGYh
TzFOSVFkCno5bWU1ZEkpZGlgZS1Zez1ZUEp2YERGP31tZ1J3NWVrVUsyWjA+VTtoI3QhJXF4JT5P
RmExaGZRVnBfcCtAUV5iKgp6OzBrSEVLcSohXiNTPHg1IXhUcGQ7UXt9ejZxMmx0TD5hd2R4LSU+
ajJVSCo+RDxXcmh6PkFueTE9NGVaZjIqN3UKeiFCfT9+TE80ZndiJWZhTkQ+KUR4OUU0cnJBRUZ6
aUw+VS1rM3VXX3dhV1gmPHt2a1FjVlR1NkV7bTBTfSQkeXQ2CnowN0xHT0Q8bFZeS1B5TmJrcH5a
QjVYflQ1PzFsMHBkUGpIXzFqM019NVBXKFBhUyh9WlY1JWNncVhAVUZee2gpdwp6QGcjRU00aCYh
aihJMlVIYTZ+SE5razBSUnY2fURpRmp2JDZTJGpoR0x+MCk0MUt9MkZUZHdlRjNGRkx4Rlo/fFUK
elY9UmViSEhkMnFjX1AmO3FFVG1KezklWWtzejs9emtkfTVCcnVvNDdNcykyKyMzOGopcT9JfkNg
YmF4S0c9e1ZeCnpaJUVPTzcpR1QxR2JjRVJqbnV8IVRTZSohRGVFQHtxe2F7fk5qPDw1QGBPLUJD
P1JzViE+MUxqSnNnWmg7KUowRgp6ay14UHEmSjByYkIxKGhRPHw/TXRGVDdQYlM5PSt2RUJzMiRC
TkM3KGl+UGJUO1VRZDtHPkcmOzJaJSojJWQxcEsKelQ7WUttWSFec2RNTX0xVVN+RylgSiluJDs/
JEBUU21DfVpvP2gwaV9XSXsjPEx7NmtQa2FUSlJRJUxPfXArI3koCnp0OSY5WSRfZVUqUkR2MUlo
Z2NYc0BhWVk2QXVaYUxORTdMc2p6c3poJDBRbTVqdnU2bEFYOyZTUGVlfFZ7dD55Ngp6SzFYVXp6
ZWckKEVvJiRAUW88amxNN1RpZTU4KG1mP0tqcStZaVUoeXROS0s9QGFKJkA4MzdRanVsOUktenoy
fGUKeis2KE99MWQ8QE8wfT9FPzUtUzFKZSNKX3tfQ21zeTFnZ0pjbTN+b0IwYUN3V1JiVzNSO2l8
Mm5BUGh0eTRXelhwCnpyM2VGWVNTa3ElZmtvRyhOVW90SjQ1VDY2WUF6QWp0MFkhKEErWTJoUWwh
Xn1fQ3AlMHZoNEBeZjJEeypkU1l1cgp6TzBldXo+WXxZRS14UUoxWjtHTm84SjcxT1F3MilDOGJi
N2xOVmklWjY4Yz5SRGZLcnVOVUdBR0B+WnFIP3tFRGcKemREcXF3NT9aU2JCKXFvZmdkaTd4PE9g
QWFIKCFXTVlxPUt0MUUwY3dxSzxedVFZVWZxSjNrV3NiTmNUVmdLI1BnCnp8NWkmIUxUaDxQIW9Q
ViNMVGg8TCFmVytfUCpZeVJ5OW5nYGNaKSsoQ0heMmU1KkF4aXcjMXJ4TXpHY1h6PjdHbgp6K3V4
LWxJdXUmZDYydUBVdDBOYFNjMWh2aUV0VkFpLUJ5c1dfP2s5e2dyKE5COXdmWkI2XmNWeUNEdXFz
M2pjMWkKek5iZUFYSUlFZiRodUhocUBKOTsmKXtaeiM2SkZFdkJ3JCElamtZOHBGOV5qfGRYaUFP
d2RHNjAtMjJ5KnIkJl4xCnpiKnZ6VE1FKT8+e1BuMX1iYClKNXF5QjBuI0taQiozNjR5cChVbWtl
QWhSUk1IZEBYM19vRXdQIUVta0l5SD5fQwp6QStWY2gqPVJ4OSRvei1jYT56KCg0IyEkI3J1d19s
UkYrN2BsfUx8NzMoKmRWKXskUlNrVTBnSlp4OTs8Zms/SXcKekxpWm8ofDhiNWEoWFU9WlVqPz4+
ZUA2ZTBgVHdlZndIelN5NXQqR34rY3ppOXJFNnpnSlcmJip4dCR+KEdKXm02CnpucCg5cjVpOEZR
JlUrKnNCZXdGdFREfV9XMyY8Py0qRjNEKzh6ZW9pd01gSD9SYmVUfW9RYyUjVEE3ZT4yXmtzeAp6
SVpkUHY5YnIyX1lWYVFeQlgtaT9RNU85aCVLdXBSfDQ4e0xZPXd4MFYrSEduV1I+bE9ASU5hfT5+
QmgyKWVXTCsKemtgOyo5Q2hreXt6bWlBfCkoUF5xXlJKZEZ7eDZvZ1lPfDRTdEdfQik0fDMpNkZQ
QUl2RlA0a2daYXlwUj9YUl9yCnpTWUxsJWhwVDw9JipRX053VGY4bylfK0AkMjVkV3MmaX1wfnJH
SFQjTTFQMzJOVjR8KysjWGxeOE9iSkc/UHFgMgp6SzkmRTJHTGlvSVMyZCtjdnxOI1FUZnx5S1kt
LVptXkZOa0RuaiF4eU12Z3k5dl5zTHdMa15NcEJmWWkhOUBCOzMKeiU9T1FFXzIwPyUqQmJvJGFg
eWs1PCl9bTVBLSZySFlTQENQTVp8X2pNajlOdmt2VlIpcj5HRzFpfHBuQFl6bVU/CnpOczxqMkJT
QHsrN1V9X2NDLWozKXE7LSghQWE2RUVFSFp1fF4rPGE2e0hIVVR7aGw+NWpzJiFJTUJ4NDNSb2NJ
PAp6MUFRbjEodndNa29WQmBHOWU7bDcwKG1FUWhtcz8wXjU1MSZWOEkkYUFhNjN0JntGJWU5eyZI
OUJtbkRndHZ8JloKeiZXXyZEVWg7O3VZeXFEbnVnTT5Ba1hoYnExIW9tUTVWbSRiXyRMVFFBWDVE
IW8peUlOZlhvPDNzeH4rUmp6ZSNqCno3RWxNJk17VFdlTzE0JWBJQk9TWTUxaEdgcWw+Yyo5X1Fo
TGdGQjlLdUFiKE9iezA1RzdiaTEyWDkxazFHdFM9QQp6LTQxVlFYVz9Qejt0YkpqJXsqVyMmZV9F
Uz1XYj07ViZpUCpfb3JNcTdqSWBQY2Y3NWdFNiY5bEEmUiVjUz0le1UKejtyV1JyU2kza254X0h8
Oyt1JjUodDt7Xl55c1U2NEU+MkRlYVUmfnQ3bzRTKWdgPTR9T21LMD1uWXA/OytGOVhjCnphSkMq
RXR9PXB4aiVNYX4wZ0lKdjdObEdQRjc3c2hrWV83cnljSiYxNTBjcEhaM2R8ZDNKVkFjZGcyOGd0
ISZJMwp6RW5GPEU1U2V3WVkmOz0jMUlRbWpVc3ltfmheUHhCWkVZa0hVTWJWdCtncmR9KUItN0hD
QzFYcTMmcyUzUm5nTkUKek1BVjJFRz1uKD1Sa1YqQipWSXl7VVEta1R7Xz9lfmBqPCFeMiZBVlhi
e2ZmdGd4SXIpdEAhKGBBTCtHIT89d1dhCno4PUEwQnVscHowe2daM2spNEc1MSZvO31kQTgqfTF4
JGQ3X19mTXwtQylmUnhCO1B2OEFHeitJe1FXSSMtOUpoNAp6RjhyMUVAUT9uKmJecWlhZVRuUC0k
I3d0YVRMMDYhZkFZXihJNUp9VndSaTB3e2V+cFp7Sk1ZZ0EzZkg4dC0qRXcKekJ4dyUrdWwwdG1g
elFiQ2Q7Q0EtcE0pTX5sSUt6dmRkNiZzWWhJOVZ5UXtJdEkhTk0wSTFOfCt7PjZwYjN8QT9sCno7
UiVIcGN0OWFKcG4mSVJRTm1MWVheXyp8O0Y+fVBjKlloWiphJFlrK3t8RHpKYntxfnUhNX4lOCg7
KE1mQ0YmQwp6YWNWcEN7JkU4enVtaGV6JE99RjF5VEttbGQqX0U9cnYjdXM2PExgZkxpe3EwZHtJ
WU1wLTk3VCRnKTVWJE84cVMKejI9K2w8aystYjwjQll9QmE4MHIlSH48Y1VMdldSczdTUnswMTlZ
TGtfOSpufDh2c0xhNEVrbmB6ekpYc091JEtDCnozUWpAYXR2VTFuQk5tcjYpQnhoO3d9KVF9OUhC
UUNgRUtDflMzbl52emRXRkJ5cjgkKDJkO2ViMUU9QWQ9S3kkSwp6Vmh9dXpGJkxaIT1mTVNWNW5P
YG5wcyM/ZEFQal9xTkR1e0w7SHYyQjsxKTwpSVU1aTtTckl1PWFySGIhKGtZNWgKejtIdjRAZT5n
Rio3U3llcm4lTUElUXhqWU1iWiNQWVJeczV3WF5FcU1KfShoUGg5VzFQKmpOaEJhPVp0VSFBKzB7
CnpQajdyZkpjRjx0b1B9cEtoUVBCT0R+TSt8bVZyPWsxMDtaV2M9QlUzTkNYayE4aTxBSyVTKyg3
anFxR1k2YV8kfAp6dXFhOXQ2XmFfSj4hd0F+cTNCVHpzMH1EYSlKRGBNNmNkVVd3SGRWcXVKPmp8
WkFFUUV2N3kqZTk0Smx7NHooU3sKemgybG8+ejspbXxRTXs7S1dMby0lNHBHOWhIKGhOLSM2KHZC
QStjM0o5SWJIX3Z0UldQKjM7UWVPO3Q/fGQ1UT1MCnppTDUrRFNEcz1rUHd8emYjTDgyODwqQnN0
UjdSZW5MUEExUlg0WkNnNjJjTV5WcHMkYzYlc35MIzhpY1pOS1l4MQp6bGB4VGx4V3M7OVBCQiQh
Vm9Cbns2OGwldWk1JFQyTzFkflBVUitkK05EcjFJaVF2S2YjSFhZWDJ+Uj5ybHRAUUgKelFiWTwj
bWxvYm4jMjEkb0NRMndJc3prKD5QIWJfPjQjUHlyQnZxQmdWZG87UTNyNH1OTSs7WnIhPEVmc3J+
WVQlCnpWc2BOU1FqenQwVD9neEo7RDM3PzBLbmVXMV93X3s/RSlKUHNBPEJ6NFJIQTNONUs9NjMx
MmJxUmVrS04wWFRkWgp6JmQmaE9eMyo1PnFJQ2ZHRFMoVHA0TVo1KGtyOWQ3Mig1dllrcWZtSUlu
JFVwaDgzZj57ZW9ZaGNDRncqYHZONlEKeiUhfTtvczZ2U2xWWl8jYDMkWV59ZFc/KkgtIUFQfmcp
diQlMz1YP154VlhER25nT3QxUzZnJWNGYFM1cTFlX3tfCnpnc3JXdXJRajFuOys5Zm8pQERLJExM
eWN8QWAmblVBX3V8PT1fdyowQV49U2JBekAofEEhISpBYWghO2RqSHRBWAp6NyN6eFkmbkIjTGlZ
X35RPmxnZ3k2NCE2OEZZJUlLNmd3MGRJWUFpPyVSKFh8TFhwVU1xUjM3dWZQTlFBXzZ6UWMKekxY
bUt3djRvMDN8RHJoK2pSSjdMMipNWTdHNVN8TGhBYk1oOGpxb2tDaT98NU1aPTl0Qnp6MjhHe3JC
TkNtUT5rCnp3YGpeMG09Uzx6c3VnJHhnc0Zld15HOURLQCZuN3BoXjRJWkZEeFhLZj9DMGM5SG8k
c29yVnkmayVDeHdMX1Jedgp6OXAremo2eiooVSFHfV8obElTMUBSKWJXTXlzIWxVa2hYP3E4aFFt
RWlBVV40NT4xZVgqcEVhUXFuMVgjNjJCQVQKelBeYGdPQlYqZENqMGx9bzg0O0x6NEw8RX03JCg2
PmoyVTJ2ZHowdjRmYyZwJnxGN2E4P3lCc18mUlFKMk87P0BfCnpAVk83KCRjMmN5OG92QG9qWUdn
dk5sISZuNjlQRFJCa2hIVjJfTnVENHNXRXJwb3pfelJSMiZYNy1YKnhHMlJmdAp6QmsyWi16WHhz
UlJYeDJ4bEhqIWktYm1SanEkbEd3XyhiKnVgak50YF87ZTNlO143MEhlRVhIIVpSSCFnR2hWPlYK
eigjNzBMMERrMmNeZjdaS2UkNUFSaWF4R3A3N2tYKHZJUUdFWEwrdSUoJnQ8X0o0PDtrTC1FNXho
aDBeeVowJDdzCnorXnpLZHcyb1QlSWFvK3JhdyNnezxhfWcmb0xycihKamAlRFBMOXJhODZTQnJC
NUBmQUJoaTlmSTNrTE5nRk0lPAp6ISQ7dEgxYX5XKHhQWHt8NUVzbnRaZlB4fXlJKlozRkFUfFp7
YjZZVWFVcD1QdzZ3SUtrY2dtJiRYPHhDN3dfeHIKelZka15mOFBCfitWWlJtTCFyamk1eFUyIThY
bEN4Pj1eQFZyT0QzYDg8b2IqM1UmXzlVPXhQZ3g4Tjk4Xy09UDBXCnpDTXMrLWxjbUtrOzt4P1Zq
em8/dkVkO0ZgdCg+Zm8jUzZqJCFpV3g+VHhFIUJHRjtxYHkwfCNYYX1tZCpIU3QjYQp6JXs7N05H
I3NHejNRNngzNWtJOypLI2BDUnlJOSY7YH5ETjhVKTskY05XYCtOVkNEVDRMOHkzMzNtTHFweHhK
TnoKeiQ0Vl9JbzdvNkxRMUF+NGZgflRQWGNzfDFxRnxMRjtJRnpAel56fkY4ZCVyQngoMyFZdSYj
bDE0Zzl+U2YjMjRuCnpsezIoRHlyRkZmMnFWRGYkZmArJjZCUTV3UXAlYyMkcT5eVDA3VypHNXh7
S1FxMFI9KVVObkZRTE1RP1g1Z30xJgp6RiVkU2owLSF8Zjc5blg3YVc9SCUrSk18RDV7VlhLM2Q0
V3opNFZJdmhFaGp1Pncjd0RHdSRaKHFsNmNMa3JKZVUKejh5Rk45S3JeQitqM35relhoe1BVSWZ7
NEB2JXd6fThiZH0tZnUqRlByaHkwckBVMGV3IUp4QDc8bTNwT3J+c0dfCnokUWEydFpXbVVmKnJh
Mkk8I0o7WjM2OG89JCp1aDhDQTAyX0EzVVB3P3F7aX1IKmFCSy1NVjhaQDI9ZkAjS2F7ZQp6cktE
dzRfTiVJP1lpSihPSkYwSkJjPGl7NWd7NzZYampmJE0tb3crJitzRGBNLTEhUl5Mb1F2dTUqPjNi
SHR6YjMKel89RyNEWTNYK30/cSVOM2R6QGNUU1g1bHs8a2ptcDxyUzR4KWlvYSpLN0RSJWBxSkY7
Xjs+c09aKHNsU2Z4Kz5LCnokKkpqPyp9MCRkaCtPYj5pekY4T0J9dyl0eGZyMmJYZmlTazg1V1RY
aDR3fVNYQ3ghdkU9O2plTmU2NEB3dXd0NQp6bjM3MzM+aGAwVFJOU0p2S2JYemtLVHZQeDUmT0Ro
OTEpRXUqfW8+KCo/JnYyVXhOTFhzfSp8cjtaWSVMRkVSYGcKemYrQXFaRDk5LSZoJlBzc2teKVBH
ckokZ3Nmd2hRUzVUZDFfcmJQay1OQ1pXcUsjc3dYUSk0TnhNM24jMzVCJT5sCnpAT18tbjAlJFN0
LUhqMiQydFB3S1loTnxrTiFjNnNZSUZ6UjxKdD99bmY/PT8mY1Q0OyRgaGEodD5iYVJjNEtOfgp6
e19YRWx4cDY2RjN7S3BlUVRvOXFWZm1AeUFwP192O19fdTVxaWF9cXh8VWFZKXB5dE4lXldEKDg+
Y3hqPzJuelAKejwydndlekstRzJ2I3FoTU9aK19kJlg+Nl9XPyprKTJfWEFLbHV4ZDU7X2xeLWd7
fkFJeGd1QDZwWU1Eb2NWMHhSCnptUVU/Iy1NRW5ScmRHRGUwVkIxZSlUMzg+RlBAcV4pVVZKTEco
QStHe3FtOCFlWE1xaiptQiNeSkd0IUlrNGBtdQp6NDd7OGUlUmFiZ0F7I2YqYU0kbTFgbHI0NylW
MnRuUyFBQSFlUiRmRSFEejBrb3oycSFqJmdSTlQtWWM0eHJrRHwKekZzKHN5STxeTSZHU140JVQ3
QWh2bjlHK19uPSVocWY2fmtlKilNaFd7TzgydUdwQHk8PWVKKnIoezhganhxQ1ZACnpLMzBweXMq
ZHszd0VmJiooO0s2bkFieSMhKlVsPldaLXQlV3Ipbk01eUluVEVRb2Z0VEgtZykzTUt8Zms+RWhS
Rwp6JSRrclhrKE15KnomMXY9ZHNrTW5WY1plZEctcUJaKTJ8QkdDWHsxZFYmeW8zPld6TUNGSzxy
MUprcngqOFR4OVUKekFiKD4mdWJoezdIZk1SUWJIXjVrdEp7M3stISF5MC10WXgwe2M8Mz1xTzR8
N0k4aytvaj1ya1RONlctSVlVPC1nCnpqbX4xe2gzd0x3TT9Se1JGLThZbiRXd0ZjOTVSKF9TdX5H
bEokYWIqb3RpUyslYD5oVTROMEd+dW9WSGNrOWk4NAp6KyhmRHJkKmVeM0glJmRAeT1HeSV2dDIm
Q3hRfUliV3FXK2NjJUtUdEE5S2w0aWA9a0E5Uj5PYW40ZEoySU94fnwKej8jUCR0b29FT3IwTWlN
K2tJUT59aFAxfDJYUUM3SXA3RDJJdDd+diZ1SFNjaElrcT05YjliQlRvcWIrNks5dG5FCnpLa3Z4
UnNtfVp+QUx7JExLK2VEUk5yNys3YChaZ3wkRzZ7MW1eSyl3S1JLYz08ZCoxQjghJTBGQDtEREZ6
dVY7Kgp6KV5FPTZZdkc3VyNTYDM+Xzh0ZChwSCFSejElcUR3UHdgcEhnOVZxNGN0eUxqS0s/YGky
WSUtODhHcEd+U3ZDNVcKelRnTlBTPVBgWENAekolNno0bGVvbWtjTDxPN28pYHdUfVlGSWk4MXNr
Wk42ZTNXZ3UhMzJ2PVhYUWliM0d2XmwhCnpZWCtNS0QhUTN+Y0NLemxRKUA/WiV1PTxZOyZRP0VL
XzRtV21rSkBEZj9eSyM1PHRVbyNybShCU3pGemMzR1d4agp6dWorZ3JlJlBLKlFMVHBpOHRiI2Vz
ayFYI3J9Zmp1NikkREstVGNmOztnfj4tTWI5QyhmJEJ3dnNocUpjbW92R3sKejhgLSZKKWs3dWc5
JXYwT1lgVzV5TGpYM01XS301UDFKUkZvPiVVJjVfMjhEdUVqVjdXYjJqWC07LSl0fiMkd2FHCnpp
d3dhYlojV3JTJChuZ3xfb3QoLVJgKnM5T0lMRXRXblRAdFZwTVkzKykxV3w8JE5nYlN2JmR4cCtL
ajBPNVFAZwp6cHtyeGZyKGJfJTkmc18rS188MWFeMTBPWD9CWTtkPX41aTt3YVgmfnlCYTBJNGVK
UDBpMnQ7ZHFLPTdfR2Z5XjYKempjKTFwIS1wUjQmRDx0K0pjKkheVHolV1Nje2g1c142LVg4QVli
UlYlJCFDNSVwUSMlMXU9KDg0ZiFJM3cqe1hHCnolSiRuKUliOEI+U0steHpScTNhV3owKkktbS0r
b0UxRXdoKEA3Pyo+QnxKTys3WE8ycURoYVgzSGRueWZ7ayYqOAp6QyF0TEx4Tyt2KnZrYjFQaG03
OGohcVdacS1mSVpTKVk5PHpodzx9RGVePV5uNFI+JUAtYmBebUIxKkFseWY7RjUKemkrdHRKWnph
YzwoUXx7bHRZaD16dEF7VzxnfSQmPl9+bWpgbHIlcU1fMzNDN1lmckghX1kjaDYrO3IpT3c4N1kx
CnpNOW1ZNmE/ZjYjdUdxclFxeGhwPT1qcFh7SzhRQW41ZGY9Z2xPOXZ0JW0pPjJqcTxkWDgqSD1P
MyFnS1dPNEUoRwp6Rk8oSVVhZ2NAN1pRRUM9S1g/TWJRS2pGdll8fVQ1P24kZVUwdm1UOytHd3pH
a3ZeQCpFI2JDNmEyOTJveHwyVkwKelJNQ15nZnRTbDsqYEEtaVJvdElBdXo2QyVTZ2ZyendFbkpR
eldIYF4ra1NKRlUyLXF1PlUkUmxIQyhjN0pZVHgpCno5QUByKylaZEMzR1RqPnhxaiRtUWJkUHQw
em5XJmNIMFh7Pip5filUPEpAemlhfVpNI2NEQSVDQEZAR2ZzJThITQp6ZjdTRTdFXikmX2dZQ3pa
LVg7dnN2TEVoX0loakVEcVR7Jk03N1J5OHtuVlkpK00qNT0qNE9WZlJ8S2BBT0JsIyQKelREdD1S
Zn4yMSRYP194d3dNQFowWEp3ciFfdFZWWit4cnUqX1R1YUQ/VChUMV89K35fZnNFWnY1Jjdab0Nk
VzVzCnpzYnhIbGQ3M1pKLUJvYm9kUFE5U0oxZzVeOS1nfl9qdXoqVkNsZU96Rz9vVzJZPyNAe2dG
I0VpUDFVQzRQQilofgp6OSo8fCV4TyZMLW91UnhvX0xFXl9xe31KKSNgZlQxNHEoaHNAZUZmbWA8
QCVLeWRPQXF0ez95VT45U0hhT31KTU4Kel5XYmE2eCtIZ0Jsd1lLRkkjPSpuKlZhb183T2lhb2J+
T35JLThFJk9hNHRYZnBMJFMjRmtwWE9ufW9ZdHtfY000Cnpydj1AZ2N8bUBpJVMhfD5KeTNfQCs9
Vi0zZ1UyViVgeUQ7YVBfIzZ6WTNzbHFMSElDUkhGbiRtT00oZFpEWWo4SQp6JlZJZDBaYHpDZClz
MkBMVTdEV3lPRk1ucllyd0JiSCQ1MDNET19ETCQ2ZHRCP3d+S3teNmk5fHFrWWpudHJ5bXMKejZp
NTRHcytMNGVaeSlfQ1hXbz1LYVp2WDU0KTVERG0hbDRwdjxPRzU9TEQhMTkwPCtjPTZsTDlebys5
S0pjcVZ2Cnp4X198NF9AP3NQPVdVTUk/RitsZ0FHZVRLKHRRXmI4MmMzYVd7Z3BOa0FATjUqb0Y4
fDl7JmBOYXgoP3klMVklOQp6cn1PdXdZKERXPzJ1JGYhTlJBQTxlVD1tQE5pUTFDR1EmQyR4P0Ng
TXRFbHx4YWsoJE9gR3diS1olXmIyNFZANzMKekg/Zkp8WSQ5fXI1MHZ2JSNlfDswTkF3JHVpfH5K
fXk9Vk5QQDBpIU1rfTNLMlNUITBsX3BhU1AtT2woJE96Yit3CnpSYyhJaGpqJH1NNjAzTjNsPmY8
KCVSMkd9LSF4d0w5PT81c3deS2FCVmNoZ31qNzBOfUJyRmJWWFZIUzBIemFwRgp6JDQraDM1TTd2
SURPX3c2SWFqWHtxeENUTXoqe1NhVE1Lb3FvLU96fTFGUU9yVmg0KlopdSRWMl9SM1ZMb0plVyYK
eldkWmM5U3NPZFFGPGhgVDU0KnFyd2s0YFh8Q0V+Z1VBe3dlWihvbFRiYnNGNHFwbmc9KjJSKlBo
elZEZF9jSWlJCnpXcyNIXlZYRXU8SkBmOGV0Sil0O0ZQcFojWTJpclJYPlImMVR6RkRnZGE+VGAp
emRsZ3VIN0clQnRwPG5JfmlFNAp6Kj8tbmFFb1F4VW50bSN4T250SWRwXkY3MkdGbTxHQkZud0FN
TkljJFYlR2dKaSoyPDFrQnN+QnAyO2h7T3VnJnIKem9BI2pvakF1USktTnxqXjA7TCg+MyFocyhK
bGtfbUtnUjFsZ19oPW4/Pn4tLVRIWXJCPzs+UnhpfX1YLUUyRjhPCno8YUR4WWFxMjRtLUJpNU4/
QjJCMFokbTJ7aHkraWg/ZDxDd08zSXFie1hCNmBkKzxuS01gZzdJP3tmMnd6NXVFcAp6Tl4tUyZN
JVFmWVRlIUJJRVJwTSRHaS0/QjlldyopeTgyYnQhI2VyNzBhSlBaNFdVMWNzPCglWD5DQUhQVyZ5
TXcKenh3bnM7PlkzXnZveXg4RXh0TXg5RzxETn0ka01LM2lJJGsrTjhpcCspayZoNnFLY21GIykz
X3k/QnZxTmZVaklBCno8R0BLOEx3VUxqNjxyaChKJl5+IVE+IV9MbXhHcTxnPyF0KmxUemBQZzBB
WE13ezxSejVQKk5zXmdScyohcEZHfQp6M09mYyQoMSY7U1pLUEtve2koIVRzQk5GNWN4ZkkqKGMp
NGglUEp7KGk/VEtSc2smZURsY2pgYittLW1Bb2xHankKejtaSG1DO2hrSXNfTzU4XyF+PyRNR1gk
XzwjT21WQzReK2x8PlUoRD8rK3hDMEpWczJAOEA/cn5XTEM4X25iZ098CnpzaDtjcXs1Yjkwdz1F
JXhVViUrSzJhNDVweEUwQ0soaWh9QzZNZklDSlpAazNXfmIhbEl3ZkFWcnMmIXEkclcrNAp6bl5a
aGdPZnhTWVZaUi0rV0R8NTxLST4tajU5Z0FOVyRJZD1LRD8jLWMySSkjV3EqLTwlWE93NSZZb1dG
cGAzSzUKek0mNn07bkRRezFpUlpKWDhTKyg7NiM0bUBqbHIqb0tIR1ViT1duPWtRRlpuNFluI0dG
WXlCVUotT14+diszSWxPCnp7TzBlaEQ3fnNXY1dqMU9eJERHYihTej1uVCRNLTZpa0BAQz1NPEdR
bld6MWY1WTJxOzVkSHBFUX5kUCM+JGtiXwp6LTFsQnszTENRUjZiK0I+bnFAalc9QCQweiE4ND1G
PmlqUD8wcHA5VnJXJUkoNHpGfjJKTUZjKGxBcTY5RyMzcjAKenRZMFdkQ2pjdExEPnohNyYoOyZe
RXRiYjA2KkVRXiRKRGlYPCtNcE1vI01HSlZAPzJ1PDQxPk00cytAajVXdE9MCnpjNzZaQz1HVyps
QDVURjZJWHlRamMoNlU4bSllQTFTXmhYMChlJCZhJmFWNlUjeXp5ZzAmPnNXZ0hqYElGdXZ4egp6
SDxRdTJzNS12RUFiaENpJHYpOU9VJn5XbzgxfjZ8ZVlzaElPZjQ8RG9vKyN2ZVBUbkJvQVZWUzRs
QUYpVXJSVXwKenxEPkFze0hELXZzV0M+TV9pakZKX05mM1I5cmxqMFZZOUFWcT14K0NhdndIUiNA
czhMUGc3UjQmPlY8bmk8YXRFCno5UWAycHJmN2stYW0+UHZYOUNreGxnQ2h8XiZ6R3kqIVoqQ1Br
cjBgWSVkMmtkTWklZiQ5YSM2bFhaUF8kOTZfIwp6KnRPUX1kTSoyTUFsU3F5PnZ8TiVRRlJpdnF2
PjNAK2QhP2AkKnRCfjwhP1Q1WVA8UXhzcUhvSVghNGxrUV9yfSgKekVHOUFgeSRXYHA+THRGMFIx
UER9JTdiaExzaz4jTGV3YzIwRFd4bUZOaGo5Uy1NQXghdWFjI2tsX1VBVz4wK0hhCnoqXlFMVz1O
QWtre0lfMWx7cVUjZio2NWh7OGRCWnheZlVgS2ctR2U5M25weiVKOyFVK1BxMGgmMSRkRHduciQy
OQp6PlpZYUZGYm50Vnw5STttRXIqKHIjS1FYeCFBVDU8Iys8PVNDUjBSTnYpaUo9Nj9NT2Zqe2Js
ZkB2Tnd1d3F3Z3AKeiZwIyRGQj4oKUw5NGwjR0lNTzlTYExsRkg5K2Z1WEw7KEdmX3hvcj4yQFVn
R18pfTNPbVR5WjItJVFzfS1EfGVzCnooQ3Z5SEQwTSF6XnsyOThTUTdWSD93UEE2NHhYKWxgcE9r
R1dvcUFYdH4rZkVPKG9fXm5gZG9zI2pHYSR6Nns+PAp6eFpISjQ+TCFvZUtMM2V3R2hVaCFQUipZ
fUEhPTQ5JmZkTl9WPn1UK1hLO0YoPH1MciQ2UmQ4bUV3cEAxb21ZTT0KejFjbEZ3NmtXJXNidDx1
M04pfjhXITYlN01XIzAlQ282fEszfEpLKmN2MnohUExVJlVHJEMzbDlsfmpTYDdBPmA/CnpIeT1J
dVorLWFndC0kPUZjZmVGcHdaVE14O2BXSTA8M04+Kz9xaz0zWHYtTGR4d1BwOU58WER4OCh2YGxA
X0MhLQp6bTFXdlEyM356RFopKWwlLUY+YDtzIWxKdj51RjgyX1h1UUpVZnAoe3ZWcnl5WnwrYT1Z
SlBEKT9kRk10cWNaNlIKejQ2NTh3I2RCTUp3NzdjUG87MGRqWGo5cUZWWm1JMVooQDAxeE83djJ5
fmgxdit4PHZHek1UaDcpQWxfKjt9ZkEjCnpWdHV4OHpSQEl1eWlzWjVUcz9ibnd5Y1JrcXJQeEN6
d2d5MG12QHc+NmliSF5gZHYwJGZCSU5GRzxvbHhgaDs4cAp6dW98TntDPkgoRl91aCVlWUFJVnpW
JVlrQkZ4UDQ/Pl5nb3ZaMTQxIURtOUsxKXR0NFJNTkx6PWtMWD8lKXBZMkkKellQe2dxNVBFPzFe
THxfTUBgWUs9QEpXPXMrbGQ0RHkqJFlsR303N2k3amxCRTxnTFlQbFhBXjk0YjMtaTNKcT47CnpQ
KXY3SypzK3UjcitzSk94PyFIQ2xQN2JePGVQX3VsKSRwYmFLSjg2U14zVnsoVWZBPEl4MlFMLT1n
d15fcCVyMQp6ek9rbW9UWF5OVWB0Xik8MHxxMEhgJHVwMk9saFZYPD47SSV2WTREYmg7RDNUO2ZY
QSpDXmlfU19yKEAqOSV3dE8Kej9pLX5xcDxkTHhMbVJ2QlckSjxhMlVQRTNZTXxXWF84YWNfRGUt
Sk8rM1UzQjJlfnVyYEolUD5yVXZDWWtBNGBpCnpfVj4jZXU/Wnx2bjN9Vn4jKGJwezV6Mm5EJist
eXxVWEZCPmRiKiRjNmdCd2lSdUhjaXc2KXVSbE18QnklZzR2agp6aG9mMXBkJDtyMFYzP2I2ci1i
JV8oMjxpVk99I2dZTSkrekArQkFLNWF5TiRPeUh2a2pgJj5oMTNRbzlSd3VKVFcKeiold1pITVh0
UGtnTFdHRlpCLX4tKlFVbHxNLU85SFZgbEBNZFhyfXpgOFQ8anpZfkNCN2BHeHstU0tiKlEkTWR0
CnowJnU9e1BLRUk0cnxnMnVmcTMpdyk3Q1hkVilEOHlQanhSWTdAWGhJbjczKGIrbGRRMEJgNH13
MjNrMV5DUyZHWQp6NER4cWBsfDZoSXgmS3tfYHszemF7VmArdSt6cm09M0krcXdzQDhsWnhCVDNo
WHF5SWc+SnVgMnhxQ2I1UlZ6QikKeiYtLVo3ekJJOW49eTRZPD8jQDhSODNlYEJadURoMStlRGVf
QCtsJkJgR1RwJHcpVF40WVRLV2JVU2hvXzlJWX1MCnooe1NhOV8+JEthQU1RYDFNVUcjJUNLWm1u
UDhpNVlgc2o1bj5NajRCeXU1UD9TMlg/Wj1AZ3RwXzJ1Rj9OX35iRgp6P3wwY0tvRVNNNFpgaUIp
JTFtODBxTiVCPXo8K3duKWtXb1Y2Zz9zV3R7MSQ/SVp1OT4mMnM0T1dhUnFrRSs+IT8Kejg5eyYw
O3g0fDl1ZitPaWZVVSN4K3Q9SjN7cldWPWBjOTl2V0U/cVF0UHlmfGV7SSNHKVItWXhxdnZWWXlk
YitsCnpzQGBzIT5tS1JAUUBMYVhiQyozKmNHTn5EKlNVdzkkSm1CeEFNJVQ3JShvYVBmVCphd3Ew
ZiRRRlJLXnowaW9wVgp6bEFHb1gkJWNBJEdxWkRobHdWbjIlUXM7TkRqSUxQbC0rRThSc1R0dHlI
Pk1yY2VyPVoza1AkLUQ7K2B3eVk0UlkKem9ldmtmLXpVT09DMEVxSVc/MCsoalUkb2dYeHl1Kk5S
ZkJOS0xoYWZOezFBcjl2MHR2RVVJPUJNNFVkd3NXV0hMCnpRT31qaEN3QkFFKGNidmk/UDA/S3Jn
cjB4LSEhJXNyUWRvTE5xeWhTVUVQMFNpNSN6PkZqd29IVzRwO3QocmJndAp6LW1rQmlsd1coeF48
Izx9JU0/MXhXa21OM0tRcDlYUCV0ZnttcyNUREpLMzF1YG8rbTkrY35COVItWXtNJmJQWk4Kelda
YUQxVS1qejdlemcoXnYxdD96SF9rcU9vJEpZNFltKzIlfEVrdkZgbDgwN2U3bFdEP2o5TVFHfSk2
OXVKblJtCnpybXklI2okSFFtbXxrUXFAN3FMJTFIKzVFSHl6RiNjd2YxUEQ8SmI9K018JGQya0dQ
YzZeZTdOJSpFQHhabmslUwp6JX19ZDVgKUo8aj53QFJHMH1XaDFjaEp+dU90YX4hSU8weTNiTk5P
PGRFNDcwOGs+OHc1MWhvdjNKUn18YWxIc08KemsjUzkoJTBBUH5TOF5rMzxFRm11VkFKQCtWeCNs
UG51bT5jZDlpd0plbzNuP1RafG9BbCVDZ25Ib25iJC0kS1d5CnoraXF2S0x9SkNfMUcxfENaUTwj
SzBFZipGb0lZOUYlWUNkWmI8ZmMkTUo8YjQpR0FKWGN3WE9xcShWUkItU18pfQp6TV4jPEUlYHl3
ZGpCemVhWVA9X1dwMSU1PSgjT0VQQmspM2NqbWE1bmlKe2pLaFlhTlZVbDlQUi1PMEMxKz8pK0gK
eiQ8LUM9KT4wPEkmfDxqJSVpUkZjQk52JVdxVShEdnchTk52bDw8OSswQm0heWhZTTZycnRrPEhs
MnZEfkY5X0puCnpQY04/OXViRV9ndnxXNXhQNTtxT2pLVmY4JC19cXZvVVgrbGJ0eFNQP043KGdE
bjdtKlktMThQNmhNRWhxJFRCfAp6ZGBWWlIhQlRRWEMpJmlOQkFlRG1paVg9UDxoZ3Y3XzFrYVc9
V31ONklMIU0tRClnJXN4OF5laCMpZkhVUn5Ybk8Kej1zbFREXkpUNmQmaXp7YkVrVn1GZDk+RXFe
MD19MUojI2pXPGROTkQxSUYoTkFuI1A/amBDO0VxSDIhKWJnUGF8CnpQMGx6bHBWVTxUZyF6TCg7
cGJ0fk94bylRSShLI1RDJmZQSSRUQWJYfDV9Y29XaWk7Mj8zNT8oTGg2dG58SChaSgp6djlgN3Va
dmB5dEwhNiZtdjcyeDR6R19oUGBsNGBRVGorKUUyeGFYZT05PTBDO2ttbF5BcyErbG1vX3srI0tJ
UiYKekZNfEMjVjRBQWoqUzxYVVZUMnlFP3NPWlAqU3s5NFBGb0BNSWJQJT13a19ia2YjYDxZLWtI
JV5JeUV6Y2Z1QH4tCnpeK3xIVWhteEUxQH5NeTZ5bHdrM3RWUXspPG0mVkQ5TzRDciRFV3p4dztn
fTJMYkVBU0dgS1NHPn5ve0M7LVU/bQp6IWo+RjF3TjNCWXRrWTx5M3s5ZilzP1JLUmF8JjhDNzQ8
NT0oU0kpWTlOcDhFVXpwSnlSezEpYXh0eGRibWNTVUUKenY1Jlg4blZRWH16cT0/PClrXjdXd3d+
SWo/eWMhSiZWMFI2SEs8R2dGOVB0VWtNQjB0ZXMwdF82eyt8UnpqZCpCCnp3JXAlckxGO2FeOXNj
WGshR2tvbUVVQlZaUzBee2Z2S2ljUEpad340b2M4M3hOJjhQcEgjcjNnLXF1fis+ZEl1JQp6ZkFV
Tnk8OFoqd29RQUp1S0BRXztTTTk0dEFLSEg/Wm0hLVYlanNmakcrQlByJXlGciY1O3sqNzlsaXVv
c2okejYKek8lPUJZKW5acyNYdX50WTB+YGowXntyP3t3STZqS05nTWtmNzxYYmZxWiZJWjtPYk1h
az05RDNzY2ltQDNjNykoCnptQElOY1VucVJtTjE0LVgzZE5LPng+Q3IpU0V1bmFndzAqTCRNQ2lF
cS1lQUFvM3Y1M1hffWJublkpaXExJjZZeQp6V1V9S21wTn1UZU9Vc0A8JkZPYSUlVld2MForWE9B
e041fD47ant5X2xZVkh+YEFNeC0tdXVna192diVIekx1NU4Kejl8flAhbX1eK2ZpV3I1SE9rbX5R
YCE2UChndkwyKVRMU1B2Xk19IWQoIzcqOHpmS3B2XldfM0Zoc3dtYyNJOFdgCnpLRCZGSjZ+VHZe
XytubiMoWCN8a1NOMH57NSlaS2Fza2QkNmBYei1BVGNNNTRGO35ldiYjX0c7b29EUWhOait3ZQp6
clQ4Z0ZOWUtYOGlgcyh6RFVZYkxBS257bG56USRgaSZlYSEjRW5uMD44cjsjKzIqaSZFKmFsP1cj
eVZlKE4xajwKemFqI0M+RmFPeiZyQEpwNyZPaEpkPzJJYHprTEw2M2VwdFpFezJyZnI+Q290MlBy
bE00WFE/Y1VQQ2EwfTZXTD1xCnpuYmhqdyNqd1I7Q0o/V2JjflY4THhTaCtHRXBlSjw7TDFjcEY1
a25yZ0kxUD9lTnRhQzZ9czYmOUglcTgkQz50RAp6ak1APTNZcCZgcUZxWXZnenNLUjVOSzM9KTEx
V3kxc3JTPlpFfCpWPWhQVyhoPCZ5M0NZRW5kN1FxUWg1VnhwQmkKelVSaGJWQnVART9xSzApbGM/
MWpWJFVPY2U2JT84SUV8bXFwUDheRiMkX1VPUCo/OVJ7cT1UUC0qZHFhSEpCYlVlCnpNUFEwb3s7
OVVvKEJYIWNON0h7flo5Tip0d1ctJVpaKlpeViUlJC1NaHUqd1N1VCFvcCk0YkxteEA8RiU2Sjl3
Sgp6LSlPa2tIPzNsTGY9e08wP097cUsmZ0xTdjxDKjtPJDA5R1V1eGVGdnI4YT1gPHtYfnFoXyYq
UlJXfmxAJUc8Pj0KekdSXislZDZAYjQtVSRRUz4heXRGZFV4RU9tQ3FnRnlJWGF8SXNmTDZKSnQ0
JGAoMEN1NnFYJE5nRjtPPUAlc200CnorMER2JHhabGdxWnwxI0dtU3ZPQ1NlRUkrSEYwalZ0JVI8
WHVmbyt+THB7XnVjRk1GWHhfT0pgQ3peYGJEUTYkcAp6eT9AenxvUyg1eFdWdlcoVSY1bm93d0tB
WUZBOWI4QUolalFJRDhMa3s/PT9nZXkxakQ9bDJualhpQClTWXp8K2EKej1YTzd8JS02IXVDNUl0
fldfdCQ3YSt3JXItP0F7cHBwS3VlS0ExeEt6PUM3PmdKeVJkTUFFNHlAZzltd1gyeGxXCnprR2st
Y0V7XiZhPj9qP2hPMEk5ZXJObT5BdV5ASE55eVpTY2tkRl9Rb3xEQlpiWSpoc2tTUnleODJifXI9
RmQwdwp6STkwbk9pYUolQ3A4RU94SyllI0B6aHx5KzYyNElrPXU5MHMlRDIlaXNrPSFyT2YlN2BU
VyZKSz08OzRpbGxLfDEKekJsVG4paXcqdmRtZmtFNTVQKjxsaiZIcGRVYU1Wam1XS2VJRGI5YzFZ
e15Nej5mJjl4RX5oQnU8YFVyVEJ6SCplCnpvTGZqYGV9JSpLKHhxNjttZVdwJGQ1KDEwaEJhUm9Z
Pjt5XmJeS0F1b3A9aGZIMC1BckV1NUk3Vkh7PG0oN0V4fQp6NlZXUylnWUZhNiR3XkpnY30xNlJK
NDhHQGQ3XmQ/cXVgaShOPFg7az5RaXxOK3hTcFcoSz5mNGVfbDJEaDVWV0sKeiNqak1peDQ1LSMh
XmZEV0o2ZzBvO0BWS3w/YjY9QjhSOGVPX208bkhgdVNMQHBzd3RhTChWaj53dDs8SFgwRXFFCnpw
a0J1IVlQPmg1UEF5YDAxb2R9NEpUc1gpMEQpe3g7YGtyZUQ8c1VpbyM+WlVgVUdBektBO2gxb0Ey
ZmYzdylgOQp6YzU2UkpaXns7bVolSzJJKXJsOG8zKkVMby11cU5rX19oMWBuT2hJNTJjQk9ybjJ1
SXR2SEJ0TCstVmB9bWRIPUcKelF6ZV9UMylDMk52QU99eng3TmtILVpJa35jYVNmP0JXPSU4OypA
LWFaPUopOyp+OGRfMzNCcWMmTiZEQ2pBSmIyCnptZDF2az1RT0cqe141TzVBVFFlMWZjOTlJYmpW
JExTTld7JHF0fGZoLXUrSEY7eWZMZjdBQG1tYFBedE5Hc0hkUwp6YWNvZX1LY2x8U2hsTWp0aDJz
e1VJPEglfTtLbHhKQ0ZYdH0tUSFEcUdkcVhBcy1NYUFtaDBIb3V2TUs/Ym1eTVMKelQ/K1lmT0F+
Kl9JYlYxR14hRmNHQis7UzhXTlpmNCNAI31GZUxkT2t6Zj0rfFRmQ0lPU0x6fjRKRlh0R0JoTEso
CnpnNnA+RHJsbD0rS1lZRyhhWnVma3h+PVluPn4oa0hMR15we09AbXEpM288X0ZnTFhSe3EmSmpm
Z2tJQlNKbDlAKwp6OHQ1X2lTU3wwdl5vVWw/eU5icXsyOWIpRks5KlAoaDNXNUk8SEN1P21TKHl+
YXR9OGp0MiUzNW5+MlZ1aEA8JjUKenpCbmB6KU5Kc0BzZDFXOC1AeEZOIz9FRS1qUFFhVjZSYksj
JUZHV2QtPHAocnZ5QkliZjFhbVcqcmlVSkslZVZsCnojOHVKNTZGdUBYUFUrTEJFNWUodVd5KDc0
QERiMnxHJFpHSz4md3IweDdjQkFhV2x+aT49WXRpe2U4MkY5WlAlSQp6R2lYWX1iPjZiS1BhMTRF
Nn1jI35eWFNFWD1FKnFrO0BCczJPNFNSY1pqcjNUTHlINT15dChfZEl8eUolcl9ebm0KejI3bUsq
aUR9SUkkRW0lRWdfUHk9M351NHcqbGtaTklleU5Gd04oJGY1a0xVcWBSeCtyQEJ0SFYyZmsxVGV4
OG9JCnpeTnhZPWUlNUU2b2FmJDw3VjVeVytaeWVPc2MhbTU5YGRJfEdWbWw3R29OemwrQVY4b0pV
WTVoSzc7YDdLWEdqTQp6KU1JLVM7fmM9UyVgYXhhcHBlI2kteHMkeS1nfUNzJUxWJVVSMGgxJVlW
V0lfVW1xfmdadylUSHBifFVecm4wKlEKeiZYJTRJMmpwNyFodDUzTCheSFFXSl5MKkVkUXM4eXVT
ZjE0aF5BcnRrPlRhNGpoaDxMSHNuMlBOJCFVbyV4RVFtCnomcWt+PGpAPWhKKHotXlIxS2dJeU1K
KkM5TWhkXlZ1cTlHOXNDNTFsRXxMUEo+ZmU+P0hKeno8cyFoWFVhdXt7Zgp6bmE7a2EmNWAldmRy
MWsjX2gkT3hldVk2IzxUSzBsZU9Ub2RPUEBLdXpvfiFtZUZtbkY/aEF0LXs/ckEydVFRQD8Kei01
OUN0dUlOdig5TSlFWWxsKXVOP2pFQ2kqIShFeU5VP09+KD9Ec1RYZFNtS2QlYUJaZ2t8JjgrcT11
VWFrSiV0CnpNVGA0eFcmODdHejBEX0lBaUV1WmxVJjJwZSRuJDtSUWkqc1lvKSQxbzZVRy1tM1dg
MGR2PC1rbWYmNjclanM1NAp6N3M2bGxWaTd0OCtjKSVRMlZQc1EtQ1dXN2xIJSpnaXZAIV9aIzFz
SEY2UShKQF9SMStFcndyY2khMGZecGVObGEKenh1MjdSalR7WTVmeyV3SkNYN048NGIpPHw2KmB5
aWNXejBpcWlXJXduZF5DIyVafn18Y0gheG4mZVlnbEEhT2BLCno9Mj8wN15paWBKO0VIODZYcX47
VUY+IVIxT3FBYF5PcyRYZSZkYk1YIWI8Uzc7bVJfQ3hoQCZtZzhVNTVUMztKKAp6WFpUbEFZdCg3
KVpnOWQ7aS1APT8+Z2w0LXFJKSVWRj5ISGtKRT9zfnItJShUUUdeU3lvZ2plYkNCXnlhYztrRDcK
eldATzMwS1crcW9PTmAtUzA9TjtOQD9ZRXQ1YjxqeDA5QEw/VytPbitudkRSQHw3SWdWPChpRUV3
UUR2NGR8azU8CnowOWpHfWRuM1NxXkZEeTBIVHdYYnwwbmtXUkliP3YoRTJ5fjBMSXFyMURPNTI0
KipTQXZrdzVmVyotMjxudGNGVQp6KjZhaHx7Nz4hITs5YXYxS3JyUCQtVXBEOUBfUWVeald6b0ty
MmlaQzBWd19WPjt3Mjt2ai1zTFp9dEVyZ1dyMXEKemllTWwzX3R5VS0+dUQke0Q2a2FkbHZwZzVp
aShuJm1XaHMqaEs4MVA8MGJ8c19OfDs4Pnw1RWBhNkFJTUk0KnV9CnpIbnZAb3laTUVMI2wqeG9k
OE9zME1DMWZTI1lCa2ZYe2V+RVhsWkMhPTsmQlB3ekYqKWBBPVZAI2FUQiUlS0c5Zwp6Oy1hKHZq
Zj1EWHVvIUFrXngoZWtATXJPPDEhVU5oYE5kPEpZSWRPfnVidVlPKXM1TUF0fGo8SSNjcHowYDNR
Um8KeiV0TGYhZ3JETHFiflROPVh0YllPdlhPQlk8SCQ9VWtHXm94azdwUlphXiV3fF9LVChJPl5w
Wnd5M1YjPEVLbSZTCnp5I0peKHI/O1daYjdXdUl6YD5ScTZfYCRAcl95KSV0azFsZVk8YXc0RUx8
Vy0jQFEjO2krKWRCRCpLMmsmYTZyeQp6S1J5TCgoLU9RZHdkaF9OZE82P3dUYTNhcm4qPVlHciZe
LT5NbHtzaktBdmx7aTcrQ1FQMldFTVZRbGY5VG1uJG0KelV9YlZeSlI5aElqbFNlQXhfPV5OeWd1
LWdPLUpaVlNIbEwrcGBSYVR6czJNaEhITD1ZOFZLJmNvTXtyWHs0e3Z9CnpRKiFIO2FiYHVeSGd5
KHApaCZxJmRlJj9ue1JNdChRTiNHJTJtMH5AeHR8Kl5Sc35WI0MyXlA1OWpGTVI/emI/dQp6O1l+
PFY1VyUte0diX3w9YE5GT2llI3N9IXRkVj8/P3R0NkAoZENyb29oQU5CQT9YNXxJd0t2KTU2Pn4h
ZXJPY0QKenl0aih5JjdsMEN7eTZoaFJHY01tT1l5Zkp4MHRpTEFJITEpV2N0XyYleyY8MFZ3QzQt
WmhTaGEpOTk4c3BQSzEoCnpePm5UOFM4SzhqSzRNfHA+KiUkK2tOa0xCVnhNSmBtZnByTTYpV3sh
aDF4cVlCc0U4Tl41aldwaUJQTkhwLTleawp6MTRwQ3QzSz57eHQkJlFsQUo4aXFSSTA+cUU1djht
dW89ZUVuVUJobUJeaUtPYVdqOS1kOzMkVWlVUkMrc0sld14KejgmbnQkTlRUSjM+TmJAWjRXZjJ2
JU8lQTd5WkFnYzR8e219ZVdyJGgte3Rfbl93cGp6am03KU50Rz1jZV8yMCNjCnpUbHglcysxLWg7
VkdDfSZ7QDZsUkxfS0doVCQ0Yk9OSkZRc2kqU0hYa0E5V0VfVDglYzlqQENWdmVfUHBAOFA3bQp6
dXV3I2NudDlOIXRyQV4+NXhTdSRSbmcmNHp8RDZva2pyOTU2fGx1K2c9dj1UKXJ7Nk8/aGNoaXhv
NmNrVylncyUKenVXcjcoK1JOKm0qXlZ7azdES2h9Yi1tTTYrcztpY0dkQ0loRmpRbWV1QTchUUUk
ZE1GKSszM30lZU03bjsqNng1Cnp6fUVJMypvKi1hIXc/SWEpRUM3cVpaRVE+azVhYUJDelVrYEh0
dE5mRnd9eXQtKj5tezx8LVZYc3VYK2VPUi1OdAp6YXFIKDJedWZ6NCFLSj0wJVRHRCphYWQzbnBZ
aiN8KHp9RGgrQn4rYHlndy0tR0NPKVZMd2szRy09blRwc1RAeDwKeiYqN0o5VDcjcGVEaD0oJiNQ
Y2l7JXVBajx2PlBzfm0tM1JBTiVYdkBlbmhuNCU3QzB8YGlUPm9UYWA8eCpkM0JlCnozWFhOenNC
Z2M8O2I2cz1XOUZWVnRrJCk9Tn59VjlNMVEjRCNNU2Q1QF95cWNETCtuQig+aD0wLXItQVRENFZy
eQp6Jl5EemB7eFUyM3BqPTtKS3tDVlBibWJrc2BYdj9RV2AoYEZ0cWtafndWYUZIcj53YypnMkZA
OWR5QUpuUyY5diQKemNHWlk+Sn5ifFNTVzxrfC0pKno4QysxNHIxS3NEa2JaPE8pNzM7MSZTYDNR
U1lRKiNJLVBGSS1hT0tSS0wzYnMjCno/Z1dmcD4qSlBedT87MUFEUzVoaXVZOHdqNjN2WjBvdiRs
PT01KnN4QHIzPUswKjhkSDdhcmclV1NSc3l3c3VYQwp6SnpgWmY4V2VhS0h8bXplITJHVnwtb2st
SXc2fS1pJCU1dn5jNj07ZmkpPGQpekl9VyEqbHA2V3k3cVg5fEF+PyoKenl+QkFiPn1kejFUfmpr
Pj9oZVd3S0w4Q3Roa0IjOGRmcSFNdTNqNm5SKHp2JTcoWlhpQVMyfH5ra0FxM1JWYyFjCnpJaTJI
ZT1yJUtRI3gqcnpZQXtQcitIT2RtS0tWcnotS1lCSHN6TFpfZDZVZEZmR19tTm9gXmtPU1VDJm5v
VlNTewp6eCNDfWpOLUJNIzU2XmE0VHJmNTIlVDEmP1BPbmohPyY2VUJUclktZkx1d0o7eEZlJXZ5
QnNhWUcjcT9sLXw7TGgKekZpKU18ZCQwV0JeN2kxTmsmfHozRmFpbzgqezB+Wksld351KVl4JU1S
cWhGdkZHOWtWMmZvSC1zQz89dnYrUG8kCnp3aSVQO2pDST97bkJTbDduSXc4JF4ycUhmK0BeQ0tD
OUliaVZfS2VZV3V0ZGsqWCR8bmsjcDQ/TmlAOWdxc0Z2Vgp6MWtLYmxaeTJZbnFXUXduQDUqIzEt
T2sjTFhvVWZHe0lQYz5UZjx5MXc3d2J2a0ImJmhUSzhDIVJXMX1ieTY8KnQKejY/PyFWRyokMXs+
LXB8a2lyY0khaXVwNVJXV1pAZC1jMHRVaUtzNykjbTcycyN+T35fbT1BcHJtcVZkMjdJZmZNCnoh
X2pTWE4pPVNoa01IKzE3YnpXMipjMCtPeUYkSF8lXzdfN3ZSeVRvJnxzNml7ZjVtPDcpMX15YCtr
cTNHN2VEcQp6U3VwISoqTkR5O29QNSZqc0tLc1RBPV5ZSiozMDhLYnllQzxpR2AqOVc2OUdhPWx0
N2NAZ19gKHA0PFpvZVMqKU4Kemx5eVJCeUlGSSE4TGNvJHBAemJwSzA5fXM/RU1sUDdpMldoODYy
R1c/ViVpLSNQPSh3b2t1IX5ZK041ak9Md1JICnpoN0VlMig3VylkP2RlbitOQXtIJHBDOStBcF9j
YkY3ZHk/MF56O2o4SWMoOUZFcWx9fCpIX3dsQXBUdUp5dSZMdQp6PVNIc2pfV0U/Y09MYzgtUUBJ
ajlqRDlBaFZBKDdlbiRqTTFnPTs5QkV3KEU4UklmUGhTWUR2dGVhQ198JEszSGUKelBkTU17SHlf
NnVkOFNebEtBPyU/cVRwNyU7SGojaCVVKkoyZTc2bE09eEkzSlk1TWE/Q25GcndQN1NsPmFeLUY3
CnorZWFidD5naVNPIXdMUSUkaXVxQ0RsXnJwTHJyQCFsXyZJTF90YzEqJi1XbHxEejJhPnpNTXdn
cW4ob09MWTJBLQp6MXgqS255cWN4RG4lRV9fc199K0tKRVczdHRBMCFreV4+ZFJ3M2pjVVhLfmk/
VSMkIzJlPGVSWG8jQWxpNSpNWCEKemQrbzZ3OTsod0dKUWxxPy0/RXRac3c/ZWFYVkFvaWRifTdw
KjBLPGtkY1F4cSZFU1FjIVJCWjBYIW1oMjM+WiZzCno+UV9ETEN6PSRBaUhkayM7RXEyeFFfWX51
KT9fRlBMTiNCc0lLPVlCUn1VTU54KmgmZiZybVhgejtnSHI2REU+RAp6TjxLPyVhPD4hcnozJkFs
UjNuXlk5QSgmVjRhfSNDKmlBJUkpZytwaTRjVTgweFFATWpHYDtoWXhjOXFEPWVYSSUKekl8fVB7
cU5OOXBaTXt0fjd5Tn5LRHI0S2V7PTIjSVN9YHh+ODRhNE5OZSE4Rnt8Sj8/ZlNxaD5eMytBTVk4
SHg4CnpzX0o5TWdXKDh+dGF4ZF8hR3VBJChiT3dia3woUykpfmNOVnZNUzlUbCRYbGhSPHE9PUpn
VCllTnhwe3AjMVkjTgp6PGxaeXpQVnRiKlkhcShybkFeIX1kdnQzYHwwdEB+bTtQKiRidFY4bXgp
V3gwUmdWNH5CekdfVDtPSUs/ZWIqOHkKenR6SytYZVlhfSRfRnxgcDhoKkQ1RGl3USZZQ1cmbDdT
P0lgKEtoWTtAYEFeNkk7VSlfd35mVTFAMWc4JkMxR3kkCno5VzI9e1dPcy05e2lvUTRLUiVvOzs8
Tzd6eUJZJEViZE14I2doUzI5aXdiZzw+c303M01wJX5AQWkxV2IpXzJuVgp6NENkOHJQR31eQlRh
PEJPeyttdj1MXmdVcGV3bmd6b3JTeU40YWBNUlBmQGtfNGJCZWRiI0xlU0M0OFVXeFZjVygKel91
RTZVOXkpSWg/MlpAWjlfQmBReWJNMUl7bzFlaWRJPD89cHtjV1NwMHhgWWQ9RChSeUA3OGxaOCgj
R19ONyttCnpUVzl5dHchMGE3ZH5QWHVZK3VQJCpecj9YOCs9Y348d1FlKTN2O2lsWWVgPjg+d3wp
eF5uRz1zIVkwJGJxYz9PNgp6cUJgYy0oTz5HbTk9S0BzUW0jb1VhRGwoaS1FYTRVV0o7VX54OWUj
ODs3a0dVXn1CNXd3N2ZYQD5pd3opPFFpPXsKenc+d1QkTnwpPENzaUxOTGA9b3pJJCkjVWtrYUUm
JWV5YGBAOTZqO3p0eDMkRyllbHJBIypAO1Q5YEwhMWVKcmJkCnpgNiVYbyNoWjtPKT0hMWxDTDgz
bEJKaFVBJWtzWGRUKX40ckRNe0xYV0gkRTAxfjJFeGwwYzNqZXhubDBpKz1mYAp6XmRePm8ycj5m
TEVJZWRmc2AkPVQ4dVFlVDw+PDktKHRDOz8pZVV5YWs0dHg8IXU8Xkd4XjlHZ3htNyg+RGdOZjwK
enQ9VyZYXnU/Ryp4eW5EemArUVY0Kk9vSnNjZTFSejxXSSRwcz16Vz00VVB1b3ImVVAzNyU9ZSZx
MUojU3Q2ITkwCnprbD9tSk19NHpFUUpHR3ZtQExWOG4jcV4pVksoM1EpWmNIdGxjXntxSDhxPkhe
KDZ0UXc4VmNzKC0tc1Z5WGxFRAp6NnBRbHE8MSN8ODJSNDBibEhKRVV4P3E2NCFnbGw2NWV4RD5K
fEJrYj1acmZxSD48bzdRUDtjRHBZQ2pGe0FeUkEKejstMTg0cEIhaUhxfjRwbmFnYEB5S2glNSl5
RUpnRnZFK3U8MEtIN2l6P2d+dCohd0hndit7YmN4dCVZZDZEUVIjCnpeRTlXe1JfYV9TeFRGNDl5
LT9TO0hSMHtKJDQhc049UlN1Vj0oJG9CXzlTdEdCViV5WSV6Wj1rcjUlcjNJY3N1dgp6VmFkRHsz
VTBYdWVOMWM5IW5qPS0kaF4tYlEjQjtWITBJcD88RSs4Yl9tbHheaShCQDVKLTFjUEglSTlPbkB6
Uz8KelJ9PH42Xz8qfHBER0xjJkEhNlMzMkwha3xQeEFGdFA8MGgqJHV2b0Y8TGNEczVfYVk0KGZ3
ZmFFUnY0RGBLfjBBCnpCVkxaLXp8PElSMV4wKXFyYChWRT44UUdXWmh4SGE3PE9FWFgqQH5Ca2tN
LSloc1ByTVk0eEoqbyV+bWVZV2ckNgp6O3hQLUMpVSkmPkN+aUMxaT1Na3NVSE96cnVpVEY3b31r
QjZUfUlLejYyWGxkbnlTaislRVMrPFI/MiswPXZ+XlMKejdaVWZEaFBAdDU9cFV8KGNRMnthOUJI
fTJYRnNONkhsSXxVUUNYeEY+PXVmZlo8NmxiJCFVMlJBMWhlSnErPVpFCnpxKjN9Kk9LZXh5Nnpo
WU1PUUk2O3dzIzclM2QqJWxDeHZ2eXdwd3ZwQFlqWW05c2hXUkZMdTtxbm16ZXx2dX5HPApMRG1m
P08kb2xeUDNlb0JrCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9yZXNvdXJjZXMvaW1hZ2UxLmpwZyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvY2FudmFzL3Jlc291cmNlcy9pbWFnZTEuanBnCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU1NzIx
ZDUwZWQxN2QwMGZhNmM4MTY4NjEwNjExZjdhNTg0NzlkNjIKR0lUIGJpbmFyeSBwYXRjaApsaXRl
cmFsIDEyMjg5CnpjbWVIcmNUXlAzKkpja3hqc2xffVFLQVlHMjJlNXJOKVg5T2tlb0JqM3xXR3Ay
dWpYXk05Q21JM2ByMT5FSj96VQp6KC0wJn0mYWl7Jl9rTWY2LUx0I0A/cHg8bipIZ0VpeF96SHBK
dkcmUkY+KX5qVHpNPWxDaz1vPTBFaCNgMFJSYFgKejtKIXowUl58WXBwYTkkZjAwMC1qMmF5MDZY
b1FFWnVSJkxTOyMrN080azgxPD1vVVF7ZVlwVyh7bG94SjEpfjBvCnpLWjk9bD1BYj0qY3ooe3NN
KVRUMWtlflB9OHV0V1AwaHF0JSZJUGprIUMqelM0TiExIWEpM0c1OFVlc1ZSVkJISAp6UFo9UFBk
a303SlpYUj1VYXsrWFZNKk9BJU0mP0dgQ2ZwRCtacGdoJE1gI15DV0JTPWJJM2IpbzBFQy18TX5H
V2MKejIqUz8qO1RHWio2eWsjYjBHblVKcEdZejR7RjQ2U0ZNKjh6aThfJCY3WTVPeUI/QUJzK0JZ
VVExaX5FLXstWGZuCnpZZEdkI0pRRCU+I2xabDlLQGt7I2VlT25yMFFfSFpWVnArKHdTekd1IUdH
KnYhYnJAJl8tWjg5cFNmVX5OYko5dQp6SVRHaFR1fD93ayMtc29jaVQ0e3tMMVg7Q2UyJlExS2pU
NSk4X2J2YkN3P0FvP29gbGtLNj4/MUc1JXk3YyRXKFAKemkmSDtQe1BpUkQ7cmVlcmRMYDM7YDJr
JW5mQkctST1xQ3NPR1hDSysxTEhVVShobUx5I3tCRDNJc0B5c29mWFomCnp7cy1xRDhaLVdBeSE3
KSY8MFohYjJjUGdpNyhJazhkPXZuZk5DKnZ4KEd9fnpUbUFwZWhVV2Z4NjF+dXYwYkxEIwp6dzxQ
SEgwbEhxNk9SMGJDengkdnFHJSVHPWxhaUF8MHxzPXhkfHJNcyhHOXhBTGY2WSo1eXNFUWBxJW9T
KCszVm0Kek5CK35VYjs8amNuQGY4Uks+cyZTcEQlfmRnI30kTj9AanJ1QzU9WTZycyhTTnROKHtq
XnpwWUgtMmtBQVMkd0ZhCnpsYXIkbTduZVBwKTV6NHAqb0BQfSFIJnojJGRRWU9sYlpfPTVxRVBt
R087bXBWbFh6ZHUoQjZyK15sVjJXVXcrNwp6V3peelY7OHQqeUdQQVVqXj87ZUZjX154emMtV1ct
bmxnJXVGXklTY3ghRjB8bks+Q1R4WV5tLSEtZD5MOEdrdyMKekxnUHlfN2JDK0BpaiQyZjw1TEE/
MX1PKWE4M1I4akExNX4+ZE4kMHxUdUFreV56WFVvbysjdCpBWUVOdUliQ0A8Cno5Ymd0KkpjNUZQ
VC0qPlkyOz9yQmFUbzR4P199aDUqQjtMRiRIUE4yeEN6WTQoYUZsZXA1ZkE/aytGbGJsUER3bAp6
JmM4eWtiTnVWfXp0I1NTPXhCLUZYNWZ8JXt8b3h4O2h6Y25HcylFQ3VYOUlkbkM7SnFPLTtEV1l8
WlM8PzQ5NmYKekYzKThTPj5QIXBVfWk/PlpBeyg0IUImKjw9WUk0THlWKmt7Q297QWV5K1BnTzdR
NzRMU08ycD97VVJ3aW18Ql47Cnp8OEdjdHFaN0kke2spZU1kaHp9e2h2PndjbmgzJDJqamhkMG9Q
TXVAcT4lKnw4Z2wpWTBqfHF6e3YqNFdnaTh+OAp6JHU4bUZ3SElVZnhCUSFkZT4zb0oyTDg+IXpa
dio5MU9OWUo7NkpCRkdrZiVAIXhlb3QxVE5NQUh8ME1eRGg2SW8KelphX2QlUDY2fXNYYmt9M0ck
MClTT3dBJWdnRmcwUjAybmtGO3M3PjtuXiV3ekxXM2EmOzlqMHZ4Q0o1bkcjS34pCnoqJUEzZWBz
TTVMQz0zOHNNc0l+JTtIcFU5Y3MjMjZmKzx5TzxLaTx3aVZMSXlANHo1TjBEfXwrQ0l3eDVMNyRg
bgp6NUVrZlhgOGZASjBiemhLdjlOSilAJGQ9SWdiTVVxRWVIKDh6eXhEcVU0e3dyTFhRS09xKiFE
KGNfZ3NPUmc3PkwKenA7c1prNW94JGdrfG04NHN7S0VoZDV2THljPSo/QFEmUWJ2VlAoNUBgd2sh
Zno1ND0hTFEpU09OejJIfUp5dWlLCnooQTBYV3R6JStwV15RMz1XZXM8N2M1IXVjX2p2aXJ8OCtw
JW80MWlzKEpgQGNAOFQwYXEtU0ppVyN7RFBtNm54UAp6UjNmVVhZbnF6Qnc2d09oY1hXT203I3Rj
I2oqTzFZJll8V1A3TUgjK3VXVzdhP0MkTCE5M0NCQz5PI002e2dRPmcKenshO2NvPV57bnohb2I3
P1c4eiV1MCU1cGIzTWErSHkyKm8wQ1pVMzMxU015TF9+S3JiajdUZUsjQUQpQntYdDwyCno+Jkwm
dyVzMCFqYnQmenF2aX56LWUqYUkoe3RFayN1NW15TCExJThQNk1XZjZPOHtlSFZfez9ldFQ9ZU0q
ZkBBTgp6KngweFA9dkJOZFhoY1lXUGs3bjZLc3kyYkBfX3tnVzh2ZHE8TlQhalV0S09IKGVHcFU3
aD9iKzgyIz0+M01LYF8KemZsO0woTzsrNTYqcnA4QF9PZm4mKklkdFNwdk9qJjxaVFZgQ3tvNGdu
SSYwelRZMWBkZnVoKmRJdWJqa1lhazZACnp5XiErcygxN0l+WitfOWJaO19vO3RkMUAxRjFASDhf
V2ozb2NWcCRZKkYxNmRkbCg7b0o/PGUxdGlLVTZlI1hJXgp6XlFzUFpudklpJmF7Jn1RaSpQSEZP
dVQqbXQ8bit1OClMWUlZWGZWJiRTYTZxSEBveX4mbGF+bWA4ZHRhdld+UG0Kent6bE5rWXMxNFFP
Slh4VmQjaysjalVfUGE3Xk50X145bDcyTVlLdktoUW0oRmpvWF9BQF5gaWk3P3VhSkpjY3B7Cno/
Pj47ZSZpJiQpVmtmNWZ4aGFYeFZmIVNGc3BrakRmPD0qI0xITnRDVEQxX3g2KVlsfTBodjAtbENS
X0xtO24/bQp6PWpxNT9nXm9lRiFobllZZXlAZlN3Zjd5WGY/d1Q/aiNaalduIWRmNDh5fS1jVkFn
fkdWYkEoLTFeR3AxLWlKZGQKenF9ZzdveW88KiFleik2SjJJV0IzQiQ8YFp6UnF5bGpBK00kLW9h
eCptbnRGbVVQaSoyNGIzTGU/T1hYTlRDdktHCno4VE09ZjJENCgoK21jYUBJM2pkRHkqZnVxPWhz
cit0an57YDF+KXo2O3V2MEg2TEh9JHBsfDg2cFNvQG5NRDcwWQp6eV9VN15sQFQxbCNec2RPeTNT
TGMjN0M8eyNPO2YyaWhBWXx5V2h4VXI+cEV3M1Rscyh6ZSg0VE0qOEBkTjwqaHQKejRNZklIanBN
Mkc2e3g7U09WWWY1O2d+JjtKZH1ecT5QMStfVCMxQjIrUWs+KjRQfXRLQUs5VyFFTGtULUwjcX1r
CnpaP3tkeDJXJX0kYWQ9UXZwTil5RSRAWEFsYH5aJTM0RFFMPiZJMkRyVFN9aHxna0FzISt3OS1Z
QDNeZmhaYXZ6TQp6T2ktKW1LdD1acUk4eVhKY3p6elVQP1VSbiF0dWljbXZ7WnV5fDlMPHFRWntj
IVEpYH1wJFpZdD93U2hzc0o9QjMKejNmcnpaeXtsST1Xb25jKXhTQCRvLUNsY2BgcjZFKGErRV9v
aj5uPGFZfntMQ1lZb0hPJCQxPDJxQ2wofEhpPXNBCno1JndheWRffHpMT0MqZXtaMTRoamR7b0c7
SkNmN1p6UnxeYFZwUFFYUjBGdjgmOVJRUXlENTFqK2x+WCpTVXRQRAp6I0N3YWJBcHs4TVAka0FE
YExVRyU5Z3B4NjVNMFZWS0dFdTI4Q2BCZ1Q/TGVpUklgIWVRej1ucjlwZDhXNipwSmgKejFrNC03
MHRTN2U8UUZjMDBkNFcjUy1KY2h1I302dykyJCR0cHwjSmg0VDtqN093bTtKM2g3MCh1OyZeWFRq
R0hRCnpVRHhWZSNHWjBTbmFuP2RFX2E7VD49dGckSUpfdkxBZnNnem1JPVAhXkhGaV9nIzdKZDtS
UnFwa0olMzVjXnB+Nwp6KTtrK1M9KUAjWVJINUM8ZEp2KUBQWDVKQm12MyszbCpCalMzcTkjTDx8
d28zISVSPzYkM24tTlU+bl9HTDZGWnwKem8kNUVuYzB5eTZ1WSVlOXRjYUpuejNuRCgqKCV2cmdF
bUs+SF91WTZKTHNAcjNYcnVtMjwjbzR1RXk0JCNqLWBlCnpTK0JTP2Q+P3BjOXRIflYrIUdMMihH
IyN8RStGVnN0XkthPnIwaX1rd1NhYXFETV5iQV8xOXg0djI7dTVLc1hAVQp6PDhlLXJhUkU+YDRM
ZW10SiptfVY1OTZXc2VjQEIhIVAyJT9KJElgek5XTU1PQGFiMCNLbGFAM3BHZCZTMD1WbVIKem5M
fXRuZD1rZ1UmaH5xSjtTLUprNnstUVRTQ34renAkJSZ0dEl1WF5GRDcqQDNDWitTPnl6YWM+THlf
SzRCPW9DCnp7NFRMSDklXkhBZWh2Rm9TY0dgeik8VCUlYjx3dD94b1lpbWpLaF4lPH11fio5ampu
Zz9oJmUxazBRRig+ZHxeQwp6eDJhKmkkeTk0QjdvTTE1XjF2VTBud3k3Vm9pISNjJklgO2xGX2w5
YmFQYD9eVm52bUhVTEBaSUt4SyhreUJmUlMKekZVMkk9a30+djw9Nzh5QkRFRiozUTx1clZ1RntB
T0dvWGsxTDdUP1BHWFRBLUVWPFdfJiZpXjglKVc3d3U/Q1c5CnpsQVJKfiV0STU+SURQWVJDdUhu
QT0+IWxwcl59NyFuKzQ4O2JGRiNYa0ZWYE9ib25PNmdMfHtZJVorYmhPZ3VFRQp6eWR9flkrcS1i
T0JJezZLO29KeWlVODdoa1NzRGtnOHI9MVlRdUI5dktKT2FsREpfPk4yJXNWbz8lTE8+KnZ+KGsK
elVJQk44X3w+KzF0SjZNY0tsZEUpZURyRjtBJEhBWVclOCorU0hqdT50cFh9YUtMUGppbCh5bl5G
a04tOz91WHx9Cnp5ZiliOGFYRil7SzlkO0xCdj1JRkNAKEpgIUoxXmJMMCkwZ1JCIV9vKXFhYklU
PjBJRkJlP1lFUz8heSk7aUItPwp6M0g7Xmsrc0xyOyg2MmpOV2Nrd0JXbF44WE1WViRRLW8+QFhF
YDJxI1R3YFg9XjBxYTNuWDsyYFZrTFhONDVrNGUKemwmJCFqPV57R311PFlLU2xXRTZPJE9iKWV7
SGk2WWdmcGwkOVBWSn5JWHZsR01GOzRUd0FPPElae0IlI3p9OFElCno1fm4+b18ocjBHQWs8fV5W
eD9LVUNtSDRyQCg1U1RXYzJsTzkxbTxhOEszYTc+Y29CeWxNfTk/S21YKnBgPnxLdgp6PnRXQnRK
czduN183Y3dFaVJ3fFFrSF9AKyojKXEtK3lrUCYjYjlVd2hiSkM7czZRdGBvTmRXaitSJW53XmRH
Y3UKenJvbCFNQVdWaWQ4I01Hd1lIaEJCdU9HX2pvKCglN0tZMHE7JkUzYEhrUiNlIzNBQGtKUUdM
alNWNTdDczVPSjckCno9MztBJmMlYjslVG48fShEWFJVOSpDMClPUj5UO1l5RGN4QSNeUmNgfDBk
I2JeJXpnMk9yZSlkI3BCPXRZSWo1MQp6OzFga30kODxedG5WIUJqVGpWV2l1UGxfVTkpdHZPI0dh
SF5xcTR4PkZgc2IwWT84e3trPH1zRV5wNmlfX0RwcVoKekYlcUxfWW09T15kekdfbUcwMH1aeHZT
UUNlfC0pNUV5aEhqbV5ZTWlwSzNZeXlrYUtfKGVnPUtXTXJZZEdWVU80Cnp5T2V3TjhNbWpOTWZe
MkE/aG91aDN2K3VeQEMkZ0BrfWZ9bDw2QyEqWnZXeV9tKzB6VShhOUtUMCEtTTw/SVkrNQp6a0Zm
MXFQWj5MbTFIYlNIUSVPK3FxYXItQHpuIWF5Uj9OdlpGRFJ0RlY0TFI4dyVJYWhqPURGPmw4blFF
VmBWWjEKektHd3ByZU15VjJHWjB5c1pPVCluNk1vbiQ4Pkx0cl5TSH4qQ2g0U1MrPDZSc3NBPDt3
bm9rfVAqcWY7JXc7PEZtCnpeKD1NNW9mMDQoJm5LSW5Caz95aTQjfDYlVyhwZTlGcUQ/YlZ0O2Jq
KXgySlQ4b0UwI0JVTXAxTHokY2k0d1YtNQp6KEJmP31ObHB3aVA8OCpGbzBWbk97UjcjRXIyYUJT
bSZqXnRASExjWWhlejxWKlE0cHZBXiooblp4WihjRmd7SV8KelBAMjtvXiQ0OGlfdTFgemY9SkAp
a0JpTXZmKj4wbSViKVhNKF8/KDkjZmtaT248bXRST0NgRkNyUytsYGpwPHA9Cno/aW45QFVwViY/
VGpeNzhhbkAja3VXVD9ZX002WXFoO3IkfVIrUmhye2xgO1kpNFU3NzYoSzJQYXk7RG9ifFphSQp6
TTVVbWNLfU8wR2d+dWpIPnE+fjw3Mk5zfTs9NyV9eGA8aiQmZmhIPitSam0wUUNeJkM+bzgkRUE3
eHFlIXV1ZzEKeih5Z1d3WkRCcGVjd042KjFTTygxNVclKzVSVkxXY2x3YUg8ZGJuJkw+VWt5ak5U
PWd3el4yTHAoYGB6Qyg1V2EqCnoqPkhZJFg9QXNqKlg/ej5jNXBpUkdVViptKD9uQm5SbXQyN3lx
XjBRUzBmUGh3e1phU1QzUmZAcit+WGlGeks+Qgp6ZnREemRmOW5rUHo0PnI/Kllwbmh3UjR7e1lp
ez1tKldgNCNEVkwrbkMrZ3t3XiRXbiRYRD4mVjxsQF81elpsRE0KekhISEd+QXtudmQjKnFZRHJJ
S35CYztHUHpkJn5oTE9tK1ckNjdHMkRDbUR+P256TXhabi1VIUxgcEYwdGoqS1YkCnpVcXhEUnZV
dGIwS2VESTF4QiN4S280c2MzJEoxU3V4cUU7T2pTNVk1U350aVhtYGp3KFo2OERHXn5TX0xkYnU9
SQp6bWhwMSNkVnNpI0g8SX5ybHs1PCFBd28hOFFDaVIyJDBvVURVSE9JZXs8UihuSFgzQVBfbTdt
OyphTERZPVR3OC0KeipVR2VNMGNSRklhaWFPfXRBNXk1bGh3JjY0KSU4dSZCQD1SWUZ0OENrSHVZ
T3YzR1d2NDVsWUNUPnFOVXp3NHk0CnpBSjEtMXU8OTsjQTlCPThMKmp1VEYwa0xxbXgwPXBiYVpH
KGxaV3psZGx2STBzWnRmKnV6QnxDK0lLM0RUNislKwp6QyE0UzFuTSZBKEpTQDtyYUBgMmdLbz8o
I1h0YD5mYWRlTTJ4N2pBTEY5e2pIX2JNKXAzQ0AoJE93WGY1IV4jXlAKektYWSleWndER3V7SU9v
PWpTTlNsOTY8VmMySDhvSFhWYXZ6Rm0we0duOXtLUytMJCpLeEEmd1heOCYhcmRkb25fCnpKWT5G
fEljQk98UWJpaDM3MWNCMFFhRXd7c3YmY25rbnNoZXdXWW9tcjlpSiphUkl6cnF0KT1OOUJzeV5i
M00oJgp6RTFaQVYlOFdBfjk1fSgjV2NvdXI0MChqP3V8aFNGLTY3UUY2bHN8Qk5lX0VSK0R4Q2Jw
Rk12MVh6UGsqPXhTJXAKejFLdmU8USRyVXA/YXJ9PSROXmBycU17V20pVz52QFp9dEFRYTxNUTQk
IUdCQjFvaWx1NCNIUkQhRUA8Ukl6eEFfCnpYJlZoemZDTkxuO3RwST5nQCgoRG1iSkxpNz8yamR6
NGpjcGVUPzk3QnUlNk1OXz9aQT5rSHo5YUNwLU0lRGZHcAp6PzxeJiRRfHltSWBzeGxyazJFYUgz
dFZoeWh8VEVUJVN1YkNRZEhmR0hkIU9HdDtUejlINDhUYGB8OD17JDM9aWAKekFNSm94a1N7fV8l
aVUxQDh8RjdlLWBDaHB5ZFNaZlhsQzA7Kn1WVkJJa3EoYURraXNERTNJM3s4VCZ2d29zTHxhCnpK
V1dPVlpRKVAtZCZvdXNSWigpNDd6M0VAUX4tTSRDNW5uSiNzN0pnTns9dVp1S2xZTXR1VzZVWnkw
YGY1O010OAp6Wk87YUQ0MTlWe2lIe0FiQ0hMMnhLK2JELSVSSG1LenYkKEhDMm1CJCFINk94bU5n
M1hTbylTIU9oX2xxZWViMDIKemlmPU4+bFRDWUlLbGZAXy02LUBfPzUmSylfU0JOc3lMYytsZCZ8
dnBXVyU/VmxhITxIREtZbzBFN3hjNDtVM2tsCnppLUl6Pz9Kal8mQFZyRj0taXZ8Yj5tMkV6WVNY
VWpsYG5nfXlFJnNLYmdEQmslZUQ0VFp5WlVBaGFAeGtHM15JRQp6bGxTWlcpWl9ALUhMI3Z+aU9T
Zi16fmdmeUVIJjRCWXQkSzxDaj5YcDdLeCtCTT4tV1BkVHpIRXVAT3wkJU49bkMKek5TaShMT01B
VnF5WHs0IWBKN3JWJCNlVn02X2pkPmtSM1Z3X1EjMSY9cklIbDJoVyg2cGJTam1vUm9xbV5YP1lC
CnpeWDVCTCllRF9sOUhuRXVNSkkrcjQkeigxUD8tci0rYHEwVTlyNUx4R2U9VlljVUxpcjl9Q0x7
OypTUk9HYDc+JAp6Q0Nqe312UWJhdGQ8ZzRFY15IKzVtVE9aTVopKjl8anRvJjd5Z2VzT0J3XkRx
YkgmSDZLYHBYWEtDKXs+XiVDa1MKei1RbW5QNFdmUjlKM3ZeJVImPlBRIU5LcExHYGNPbkEoV3t9
QGB4Iy0+aFN1SEYtS1FSZVZ6N2AzOHxaT0NLUm8zCnpCO2BrfnYtZWBPb3ZgQUd5bF5kYyoybThZ
N2VCcGwzek14al9adlBRKjJ+NWttZV92VE9JdVlTdGZ4N3chUENPdwp6OSgzbUw3MXZPX2J+Unpp
O1khQDZHWENJe3lCflRKaVlAQE5PPkI5LSRWVF5eWEp5aTwqWSZ8UE9GdDtPbH0+SkgKenpZNGoj
SF98Um1fcEYxeWRtNGU8RWgtXnVMVWN+NEB5ZFE/bEk4eDA8S2Z5Pi1UMnc0YjQ/IzQzVnJzdGUx
U1F8CnpnZ34mTSpUMnhtT3decGVKR3NiTVBSc1pqZDlkJkpmT3d7KDd8VTZMaHwtN1VJSVU3U0o3
PGQyb2lEfGV4UGEtcgp6KjBOUWlxfnImYGpudHx+SiRTVDQ/dVp1b29QdHhMSWpXMyE2UEhwKWtO
RkswSyUoUTZyPUh9dEUwP1pRc1BZbkYKenZVNERoRis1RGs5QTRYNnJNV0B1ailTMG9KbUR3Zjkt
KG5oMkM9fVJnbVdeb2AlJHpYdn5aZzRFbUFpNTRoRy1sCnpGUiY3aEJXI2dwJUkjJjNSQWs+PjV0
JngrVXBEdmokWD5WYk11X2JtbiZDdnY1PCQyTlk5NSNkNXw8VlZNI3lBKAp6ejteTTBCV09qdXc5
Z0hjQyVONUtHMEphY2txVktOYWp1aWg3R1IxfDIxRCkjSz04VkxEc3RmK1Z4N0hILXZaZlIKemxO
SDdNVTB9Ji1AXkdMbm00Um5UeFNBQDxAM1MyeyFqV3hwI1kkRlZxOC1GQUxxMSQoPiFqPGJZcDwh
JnQ1LWkmCnp7K3tYbGB2bzgjIVgoYiNxYTcreztOakFDMG9XKEtsKTR4XjU8WVF3OUIofU4rYExt
Y3Mmdk5HNU9zUUBgUmUqYAp6RGZ4fHdYWnxZSCZ3NDFBJExUNnxxN0VIMiVVTUZ8aWleVl5lKGkq
PEppb09Sd1crfjBVfmVwQHhnN2Iob1ZffjkKejE5cGBWeHVWaldrblBVMkZpcmZaYiprXiFPXiZj
cCZvcGN2IyNARVQjKSNHUWk2SkMmQy1GbiNyYUtJVjZgbEpWCnorQHFlPHBPQyY7UXlXTVglQFps
TDZFKk8qaFgyZ3Z4Kk9CcjJFdWxQYVlzektJYmtfRmBJfTMwTD5JQDAoJGJlPQp6Wns8OTRSNFFK
QTdLPDNAWVRaXiheSlhsPm9+PUtQKklJYmdXRiNYVGhEMEpPSm9sfiNvbDNzTW9gLU5jYG56SiQK
ej55STRkK259YU44SU5FaG9Zfj1GI1BUTHRARS1QUl5DS0B5bn0pUCNuNjFhNit+KHIqJjlROWQk
R1dsc1NyNUQwCnpQWCN1JDc+QXZvSkNeIWJ0PjcpN0VhSUdHbVVvTFZELVBje3JMdUh+cn1WJnJq
aVczPmwlOUEqNFZSbTJUPnVkZwp6Y1oySi1aYFNxbHgmZ3Nod0Qtdm13Sj11flJDNWM4PHxVaVZx
cyNTM2Q9T2o2ej1CY1pBZFErM25CdTVBRCU5MkkKenZ5Q3k9K2JRbWZUVXFEcXVSXik9NzlxNUZC
OFVNUnQhfnNEVF9VcjNZfTBOeTxaSVFEN3JhO0VpSV9sZlJaPHpSCnpebWAhZXhnb3ZFcTJeUkNW
PWc9MmB4NW5xX355eHdIN142SnQrRnF9PEF9X3ByZn5jYEdua0MkJHIlPTBPemcxUgp6d2F9OD4+
Yn1icnNrXmdIUzAkVFdNVjcjYjtYMU1ENzlyantZeFA+aEN0P1A1IzZvQjY/RTFzeTwwRSE8MUBA
XmAKek5zR2MxdFg7UVNnYG0yeXJVbGlRU3VAVDZpKCNIbi0yJn02IytvajN5PH10MF9WS0QtIzR3
YFZpY0MzNmQyTDdVCnpQSEwjY1hBWXNvcz9VV1kxelZlSDtZRG0raTZvRUxQSCZTZDxTekhNLUNe
e35tQ3E7JXBxM3wmVWxPWS1lMHZ6TAp6KG1aTW5ZYk5QZEp0I1Qwbj59JVVgRk1jd2g9c3N7RVc9
e0hSVCtqYF9+eEJnJVMyWilma24+Mk0+e151aXBybygKeiM/UVdiTFhQUlgxdXNVfnRLYTM1a3VS
Y3I0ZE5CfUhqWSF8Nm0pTDZQYE8tZEIkTkBaIWRYMlBKWFdqVXFKfSo8CnpuSG8la2BkdHNsO2Z3
YndYYUApQHBQeld5VD5FR0BYbGdDO3QtQlVoczhTMCQ9UXJzVi18MjdZTUpjeXgxYnFGVAp6PWRK
JDhWZVd1fUR7N1BlWSk3ezVWclZhQDBvUDN2SHMkU34qe1MhIXtOOEdGKmJgMEJyS1NyMkctPkJ2
JDhTc24KeitGX2d0aEt8KWlOWEUxdGolMGM5RCE7eX03dW1iO2RaUEtUQjtvdG8xej1mKHFmakJH
cFVUWW5MfEJIbHg1RGMjCnoyUWswdWwzY1FgYFh2OVkmTCNDfXVvJClDZVRCNEF5WFk4b2h1WT1m
ckErdk5jdittVWc8a0JjN3hCflR2RERZMQp6KWljNEdYRE99STc8dndeMSV3cz8xV1pOJjRXand4
VTMwRmwzaW0oUTlKX34kRWpfOWxGRExQaTJ+akYmKXdEYGIKenQyeE1Vcnw0WlBuKGRmTjVWb2A1
PShhYzIqNSVKSnJsQ3QmenJER3ZgfUcxU0hKb04/c2pyWGRlMGxgIWgpaHEoCnpldGV2YVlea0I+
KlFee2BHc3E+M2Rwdno+VyteJFFqNHQxWkg/TFdRbkRXJXU2d31hfD9JZTl3allJenFOc09ncwp6
YntENTxaLTlNKzhMamJrKkMwKHFeSnx7VWlDfStKbjR9VmRxTzwjaT1kaDxRenpNUCpjJX1GV0Mz
YDNfMVpRXkgKekFZRjJDQF9lXntvZnNIcmd7fmZKTTkwVnd3aDljekwlIWltYzsjdkdVUCpKIWpt
JWYrKytYb0ZuRCp7WDdWJitPCnpHT0FYTnxKMCZ1VnF7R2JjZGswOTtUMFchZ19pYSVkblVEWnZs
SWImSUluTTt3X2slIVRAfldXRz48OHJNS2BqSwp6I3lvPW5QZklWTndCeUFJaWtgfl5pQ0I+UXFS
fUFJZkg2TilVWVUmd1g9X2ZRWGtqS3o7QHBJakYwemV8Oz9yMHgKenAlQzdXJXBfKEQpVDlTZEgh
fFA3bjA/IzZCNiRJUF9KU0xmV2VzLV40YSp2YWkrX2RSSTJ9RGBAaWFQNyV1MkM+CnomI3ViTDZJ
ZkVGXlJAQD1Ub0k8eGR9cGhtUSZwOHc8RjlXJG5FYWxldiFiZ2Y9IVdBfWxPX0VaIUs3PG1NfS01
awp6YnZgeSoobX5lazheelpCUmlobnVneXxnJmJhcTxhOGArKk13eEtfc29aNV9kPDRNc1RnelEk
MGFkKDVNQzwjTmUKekwlblFQY3I/cmlkNmh+fiR7Q3lBeTw/eDxDWTdjSWM/RXJQU3MhbmMqZSYy
NzZJMW16eWxQVSZgJm4jQTE3dTc8Cno5dF5IN2QwV1pNLVhuVnlLbSF3OypKPjhyO1ReVUFsQ2VS
dk0tYThRcEgqaCk4JSYjO09BRDg0KmhuTjY2bl80awp6LWF7WFUqXzdfVmBNTlFHUDd+OHcjXmRm
QzQtRGJzOW1SM0J5bU4mSThjZEdPIWgjeUIhRGwzZzFFPXw2OHxYaDcKekAzekNmNWsyfmc7WHsx
TzMmMDczQlpNSEJENHMyKUlne3RaaCg4NkwpYmA4NzhFXmhZdEROYXAtelB9K3M3NVBkCnpPNWVT
PGdAaCEyRlZpRDY+WFchWXZIbHpBR2RrVTI4XnRqbEg2KVhIXk1oVjVjIWpkKzZKM0IwUz95fmpG
Mzsydwp6e0RSX35QMnsxcXZzSHxeelhUSUohKHk9KWo8aFZLYncxTmdZQkY8NyNoJTFCM0NybkdA
K2h4b2BFPmhATGl3d0MKemR3YTBxRiRUTGtzPD91VXE3Ui1QXys7YSpHa2RNRkFEJF9+QEZWR21A
T2pnbjxaJkFwbEl1NDYtZilScmVKUFF1CnpOaygwbyM2OE84eDchMG4/OFVNMld+TiQ7MHdjTCVE
QjF3cXk8RjdSKXJZU21TUnhMTEE5LT9hWDR7TTJ2NitMNgp6NElGJEY7NHNfbStaJVV5cXQ2QFFh
SD8yQGQyM2I9TDBIe09FM3ZNcG42bE5AUihaeWMrbDFYb2JyVU8kbDR8YEoKenU4KVY3T3AlM1ch
bDRwTnNoN0lXVjNNTUg5dnlEdTtUY2xHRFFJPWllO2ZocXZXYjNEbDJ9ejNYaklTcWskKiF5Cnpt
WFVuSE1zNE5we3Ika0xrNTlmZFhaQT84KXlZTHEyQV5BTzdseVgmI304fVdiPGIjQitoIU1QZmZs
RT5GPDg5RAp6bldgNSh8QXVnSjNGJnhiRUhNRXZ4WURtMyk1VnhNMyhNJVhGcVluOFVmLWp3WndO
OHx6T2IhbjhEfktIYiU3PUEKeksodUlgSiopayNlZmolVTd+Vn4/aG1QcTh1YGA8YHBJYCVXNG98
T3FzezxoP1NXYkVRREJIV2JlMmVWaXg/Qmd3Cno/VXglOSlrTmQkdCZUUVZkYXNzRTslMjs2RWo/
e3toRDZaZjkoPVV3WWFCPV4mISZjKUJVbCNgTih5S2lRd1RwLQp6QHt8e00mVW8yO19aZ2lWSFEp
TnNuYX0hdDlUTGd3UyVwKWB6VVh8QDE0QyVHR1dnNzltMU5ZSzxiSTEjNm9xP1QKemhgNyh4aylz
PjlsR3daQVk1OXMjKSZMfEVad0t4cUVAN21ia3l0VlZaKiNFS0BWQ09YamlgPmhuSXlxJWw2QGtP
CnpWPzM2Sj9jP1QjcilGbztnd2Q4I3lKfHAoK043PH5yNUpqNSRGOVI2az1MJkVgUi1BfTw5Rz5S
RGFUayRBTkB3TAp6dGdAQEQmUTFuUk1qXiNSPFB6O3JCMEZJXlp8PlVhXjx+R2JfaFFuVzR0U1FG
ZUt9cGUwSnY9bi1GcD9gaWohT2kKeiVvamt0YDA+eStRfkM/ITRCSl9waCZWVVkhT1BXNzxjWXtq
WGg3Uml0NCY8KFNxJTk0YjJ8bFE8dGZYTShLeE9GCno1dllPZmsyYT02TC01Jn1oZ3V8MFZ6Ujdt
Z3IzK21TeUJ6fStyJDt2YzFLRHdHTmx5cENlMD9TU3BRa345YTY0TQp6U24zang8Pj1PQ2glO1F3
QzJuNEhnUUsocSVmRWNUdWQzPE0lYHhhV0g5WDI3KTdFNjdnei12P3RIYX5+ZVNrOzIKelN7SVc9
TjVmYDFtI1hsWVAybkQhbEJWQFVaanF+fHg3eVN4WGxvJj1NPl8wdzgyKSFQSTBZc1EwSzkzQ3tP
fSlmCnp0QG4mamNFc21XaT0waXY5fD9HOWojMmE+LWk9WmkoOC1zPzF+a0YmdT8hbndtM1NWU1ZD
dExrdTcoa3ooUm11Vgp6SHh5Kk5VITc+fk1UJTNKe2tZZCljYW9uM0lpZk1GekUpNW5PYD9qVT5l
WDxnQyN3MVN7Jj1pQmQtK3R4b3dMTVUKeihOXn4hbnwoaDg5UWd6aChXSUM1VVByTnt3TT5GSXB8
OXc1STsoIVR6VUN+QXdBM1ZnSXdLZzZNZUhiPVUhV2UlCnprbTxUKVNJRXlpNj9rZUkrdk42Y3lp
U1h1ak07V1RydT5EPjEyOzxnNUdsR09JRFJSTHJ7ZVFOPlN8KlRDKUN5JQp6YCMkVUh0anZvZFND
Snt8ZmczWFB5bDJyQ1M9Z2QycmgxO0Zod2Q9WCUpVzF3X2M0TzJGbGpXU3gxaG85PyM/dU0KempT
XmdTci0yRlZ3R088NVRRVUpHdkJyNVBqP0BoWHdQUldSTG15dFIkWE1ZfF5nSSllZ1ltNCQ8UXlZ
YzZ0aG8rCnorJVYqPVNab0JadzFCeXJpTHg3JSZPZG9POWhPTyNfVjJBTGM3QU9nLVhET3BIb0JT
T1A+U3QrcFZ7SWApSE85eQp6Ulc0RShlY0pBNCs/fE0jemEyfDN4T0tYXj9sWT02Vm1He3B0RCZq
Y0IrR2hFbjtseTVXMUM2XkF4VGwoKX1gMHQKek8wKHF+SSZfUzhhIVpDVmZ3OyZgaHB9fkBJZGM2
ZFIkfGNiRWYwQmd1Q09oTzg+ZEZlektDYmkkV2M1clc9KUNUCnpofVdNTTh7KUZHY3B5Rz9jODR+
YnBnTDVnaSp8QkheTkx+a0RURyExXiVCS1N0WlArRjRVdDYwTmk4Ji1zJXJJZwp6ZDZjY19menMz
a3UmUG9Fckl6SXd5P0pqQmVFZTxxWmVrXkYzbyF7YTZvb0B3VkBofGwmb3xNcjNjVWNsRjJEVEYK
ekBZMTtmK2ctfmVffSlXJXVeK3lZVD1YNWQ5YistKXRTVy11QzhmenVDWjxDKmwjNGwxISUzS3Z0
MClXfFdeTjBjCno+VFlhMjVEbUJoQEBpfWMySW5vYGdZQ1VZczZDPlZIN2cxMkFCO2RfKj5jMVUm
TVAhSEBIRS0qclRmfCY7Kzhjdgp6IyhuR2pyRj1KbC0yeFArVSt3Y3kwODI0JV4ra2k0bm9LeWFV
d3ZqQTA/e3o1b2JAPThmYVhXR2k9el81P3opbHwKem8xWkNgMmhLfE5feXNWZUxsdEY8QH1KNj5T
LTFDc3A3Wm1YQikkJmtgUW0+KVQtY31mYyN0Nis4fSFJP3JwUlM0CnpTSXV4aik/e1o1XnhtR3hk
VmEhfHQrPzwwSjw+aVNqWmx3RHBCbUJKNzdhSGxrPDszRytySVoydWx1c1dpJG8oTgp6OSZrZns0
d28wYXVfJi1XIUEjXn00NHR7eiRffmQzPjh6KGojaUohWSUyazRHcFMlVSNCMn1SSSlAciN9M0Zw
Uz8Kelh9OVo4MzxvWFZofD5wMjEpbDhyVUZCRk9tfSY5dnYxQVJiUG8zKXtHSFc4RFl1JSUrOEw8
Z1Z1cip7bCZrUks7Cnp4Sz1JRExwejg5SU5DcC1xQ1d+d1VSZiZlanl+X2MpO2l2WkotaHotTUR4
UUoqYFZlc2ROJmBCMkw4RHk0KHt1WQp6bV5uVCpzTU1tTjZraT0lTz99fG9sWTg0YjBncDdMcW5O
fnwmLTEzUVhBPEYhYXFKKD9IeCtTIWdIYUM1Xkx4M24KendfQ1kmP0o9Rih2WXg5Tz9Fe1dEUkdR
LWxkOXZIOzg8QE5faFdwKWFfTjtIVDJ8fXZqMmNlUWVUdHlEcTF6YTI/CnpfS0xGdVkxeTdfX185
NHB3K0hNUEBGNVVLYVd6IzhLYTIoMFRPYHo8RU8oU1hzMzIlUytYeDBQJWsyd2JeaTJHQwpMRkoz
cTJWKVRDaVNQJG52CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9yZXNvdXJjZXMvaW1hZ2UyLmpwZyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvY2FudmFzL3Jlc291cmNlcy9pbWFnZTIuanBnCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyMDAx
MmVlMTExOTMzODEwMTY0NjkxZWU4YzI4ZjIzNmMxZDhkN2IKR0lUIGJpbmFyeSBwYXRjaApsaXRl
cmFsIDQ4MDEKemNtYlZOY3w0U0JgK3NJKDVRZF9MWDYmKysjQEtnfl59R21LNTwyIVpqTlBhdDZe
U3ErOUVQJSNZPkJ+eWp0WWFxCnppODNOdl9LX2BIaFlyNi1tVUkzJWZCZkZ9cDNuN00tfWAjTF93
YClnZHo8YVA/R2I+KE5ZNzlZZkl0OE0weygjUQp6UTVhUD4lK24xM2pFdzxGMDA1Vyg3Nj1sNmZg
fVFrK1lwWVFTUkJOT2tpITVCXmJtaiVlRERHY0tRUkUqSyNte2EKei15ITBBOTU0ZSE9STI8RDRO
eEp0cE9fMjg5V2tCJmR+ZlYldG1yPDU4RzxwdSplfVIwenxZNEtJQlJaZGMtQlMkCnpoZn1+fHV+
LT41SCNhNUZnR2s7KiQ8ZlViPnh7KkBWc1EjUGN+MCZvK3gwa1VvVXt5cCFeKzYwVjNrI0hAJlkp
bAp6aW1iQVY5MVp9KVplO0VrM2F6PTNlU20rRDc1Y21BU2d+Q1UhMm0hSzAzZzhKYTRaZ29PQGkk
VWZLcnAtMlk0VkUKenZkZSkmVjMxXyFMQ3lzdDFZcF4lMyVYQUhKSEFiWD9aO3NWQkshYSZpNDZO
PVZhSkchMmJpQ1RfYDViRCg7bnNvCnowMyExcTxeVkN2MGJoKUdgKTU3aXdfJkdxX3ZARnpWc2p5
VGR+bmZvcTVHMiM8bVNRLWFRWStlZ0ZNUVFqX3ZXbQp6aDBOUXsxS0M7cXlqe0lKOHdrayVONnZp
YzkpQmtlYHYtO308a1plKipvJlY0SWdKMHt7Nmt+QHpRJnpBYHg8dkoKeiVSbCg2ZWA1ZlU7fDVA
Q0RqPGEmRz1fZyRgRzFSbi0yRns+Nn5xRmRVRTE/ViZ9KUlWKHteTzskTV5iPkJAbm8xCnpUaiZf
Pj57dFFOY0p8Nm9DZz8hVjBOVHowZnx+NX5jaD9AQUkjPik/XzBQRVZQSkRNPmNIJWh6fEdeeTlm
TnctVwp6K3hhZVAqS14obnkkZmlCLVRwcTh0ejw2X0lzbWRnME8kWnJqRW8zSTF8fGRvIU9ZQ1ch
cGc8UWRndUA8JiozOVQKekUofFh9QUJHbz03NyZwWjZBKEhuajdFenFOfVI7WCRqUW1eaXoleHM7
bmJ2TTwjMFBtQWs1Nm50Y09AcFktfWk7CnpBWCpValUkXlo+ZlJoUEcyWGJLJEFwcHQ9ZnBKMiVu
P1EqR2dhUHVpP2JOJXxBVyNeYmZmMiNQJXlJfU1raW5ZPAp6MClzKX1GYWAhVnhIT1FmO0NsZWgk
IzdVdU13e2A3bklsMzcmeE1PaGUjaih6cnM1VTFgVElvP1MqTCYtJXEmTmIKenA/RypqUGwkPDJO
WHA0OENATHdkPSR6SG4oPkV8UXZOJiZQV28+aTgqNGYzPyZFM1AoRD07V0hCczQ2WDVQa0YzCno/
VT5qKmFtMUFTc2M4Pz1HY3E2TDxyZnFfZXAyLUdkMVYjM3h+NykkO2BOKVI8YCF5ZVRZR29VaG1Y
Q3F6RUF6NQp6VSZoOEtDYTAhbj11NiswUzYwezd6eUc8aHFZRkYoeVJ5TE56dnwpeWJ3U345NyN5
KnEzanooQDV6WXhgNVJfcCYKenRaanlIIzIqcERNS04pbU5xJClJaWRrNkplMzlFSjs2Mk14NXhH
JihyNSROTW1IcSNPLVQwckI5U0hrZFMza2ZDCnoxMi1gemoxJGxWPSg0fFBqb297aGt3PUNqOUk5
Izs0RH4kWTlxdmFFJSp8N0BxV2h5N1RPPTQlKWYycktWYjdwUgp6aTNIN1RqR2pSdTZpVUc3KnhI
UzcmYntJYW4hRzM1ZUh9VDxTSCskK0M2e2xlNiY8SkM+Q3EqM08lNT5vcXVjRGUKejF4SjFHb0wy
dEtGYTdCKXV3a3dTPHc3YTk+cktvM2xeaEVOKHZkMkBWUjwzIWw0KklFSWI4d0FSKmtCUlQhZWRu
CnpsdlpCTmxZSG5fUnBeJSNqcjtESUEqY291Uyo8dyhlU0NOSFhaSil+eE4zcG0jYH1kSVB0LURq
R1hefGRffSZ9Vwp6ZURBWVUzWllacWEra1dVZVErTyZVbU5NKzIlaTEzZDtMcEZjfTtLcHozaUUm
c1hJbVhETyhMdTh5fDg4anhCTCgKemRWSlBMJD9HMT0rTyUqKDJUaFIpPTtXX341PU42JSpNeHQh
YF9VVDdAfCt9RypKOyFlJHVpfF49UHM1PighZDF7CnoyeTwoK0FNMztELUhRIU5iTD9nSyFEZ2dw
QilnVG5iJUp0KjZqTEI9WGZgKkxeREcrYUB4SiU7b2x+dE1PPn1qLQp6PHI0UUBOU2NkU2Y5O29Y
ZTk4QHBsSkEoWHFBKEJhVEZMd3wrdmgkYGJgaGp1K2laQyR5LVRaWXN+ekVeWmc3cTsKenhkZyNa
Y0dJelFpKkc0aiNxUms5cEhDe0tEb3lMS2dsNUkkbThtV31JUVN+V3lHRzM+ZDBkPTFQa2RnRE0w
TDA9CnomWmA/KVEwVXJKbjZPNjFWfFRRNUR4MV4xOGt9U1d0amp4SUY/QDExbSR+TXVtI0EpOUwx
MiMjKG50fWlLSEdWdQp6eHJQb0FIQzQ7WnhaKVNxO0ZSeno7KlROJlh+Tk5+Z2c/fUFyb0ZYaW1z
Jj4pWU5pU2lALUFXWUs4YXpOSjM2Wk8Kekw4WUBRUFFPZkNqVjRYUF4kZElYJHleTl53YHsjKVRH
O3dAJHAzZ15EWWBebmxLO0BIJV5GdDdURkljUDR6VjRFCnpQMWpVdjhTKjl6T1c5bCNhJGVIfiZ9
cWQ5aExscj1MX0BvPWN0dUQrYWFWOEFIc0JkPFVLT0RDPmNNY1NQa1hjVAp6WSkzJW4jNDdYZz07
YllMbiRARFU5QGtqc3MhRHthY2lyMHtsMm5NdEt6RylmQjNfenphMXJyJSNAOyV7YEF9WUMKelo5
bCVUUlFXdjlmSDB8XmNEbmFPZndRJVZTYkJab0YkdG1TdVBhbyFIe3B6MCh3ZSo8RGJRYztwclkh
K1VwND5nCnpFeWRAfFF1fU1UZUJYcDlwUE4oYWd3cXIkRnt6WCZmZ0J1NUJ2Z3pIRDN0fDZNVH1x
Um5iN0FpPkdUWlIkVWtANAp6YmZVYWA9Sn5iME9EUk5NQmBmJWV7eUV2NnhFVkZ3ZntQYW9kQyR9
X1c0dVdldmR4SVF6VGthNlomI0BAJEFKOD0KemRMdDY4YXhLYnBtUzZpWC1ufCo0UEZTK2ZVQSkt
Rj5pYS1nRyNxWk5UNn49RGs9djwkaFgrR2ZvMih9MUFkTCZvCnpoPXlCSVN7Tkx3QyhIK3Mmfm0t
OStoZjFGMzJ5X1h8N2tsX3lBX1A4d05lc3FtbU99ZnQ5ZUdMeT9YX0opR2lubgp6bXNWb195RSQ3
XnUkWDQme2ZaeHZzVjJSRlZ5Qkt3e25abjl5QD8qNmpVTE57U3F4UDZReC1UVnI8Zz4+I053dF4K
elh0TCQwNW1ufGcqQ1RxKiVWKGJiYUJXdGBaTD1oPk1US15uazlUQVJVY3NZak9QNzlASGpnSkV4
IT82YSopKzw2CnpoNlpVbWtVIW49bHRQV3h4Ui1kbXReNmVsendGYzJhZTtFPkI0eCRHX18rPXl7
fS1adlVlUWAxVUcwSnFfOz4ydgp6VyY3NDVSTWgkSXtSS0Q4Q0tLYnBqWEk8WDdUPVJPbHBJb3hM
bCYpO2c8OWorPUMxcWFXdjxZUkV0RVpIKSFCMHoKelRpSEh6Wk1EKis+aW05I2AoS3JjVXpBTGcz
XysrbEUwP3teM00hWkhvMjV8MGh7byQ5JmJLYnZQTF5qS3kxO0hnCnpFJTVVJHtvTnUzJlhIRldY
Z0JuakJCO2o3dytkYzlzcWFNbytUPm9qZEZufj8/SmRFbSoqUy0lYldWVH50NGJxJgp6emxQbD9W
TD5keFRGV25AYG1pIW9xdFVkLUl2PlhDVH1ISDcrIXF4MlF9S3M2dEVMS3FOd048ViZwbTd2STEp
V1gKejtmZHU7PjM8PHEzS2V5MG0jaUNDXkVhSCF2Vkl6LSRIanwtYSpjMFRyPThJO1oxZj8tdHEh
eEQ9cnwxM244NV92Cnp5cmJ8WV9gejdpNFgjJDRRJUgzaWNZeyttJHZ5IVJfeU1eUjUkc0FBVkl1
aDUlVXR9cktaTkB1WFZUUk9ZcTI1Pgp6P09TcVJaPmBQSCEmS3x9Xm97dEV2QCVBR2ctRH48Sj9E
PnEqS1QzdnU2I1FGc1lkJWtyZXdePShpWig7dn4jSzcKejluVXIpRVM7d0EjY2BBaXJXcTljbHUo
KWMqb2N3ZiVwR3BwRjhrZmU7bCtmSDBtaVVKbUJ1REZBPnktZ1NKX2g9CnpoM2V8MkdAT2dSR04+
QTgmeV5Ke0pkLShqYHNMKl9YN1F8Skptc2RHdH1zJSh3YWpxWGk0KnB4YGw4WXpaRClwfgp6cU8h
Z2BRJHM2RSQzXihnNGJgfiZSfWh1UTNjP2ZVITUxeFZlZlpxNGxGd0hmKlo4cT1UbzFBKGBLazh1
SSZPU1EKeitRaj5xckR9Yn1mWkFsO2ZLa1JmYSkkUzd5bDx+aSpJLXV4QS0zfX5leCtQdChlfV5H
VG07JT5sYV5tR2E/ZTJICnpNeSlJNUx6bWB+UGN6d2E/MiQ4MW5VbHs9ayRYfVJQMkNIPEF9ZnRO
QzVPXzQ3PTwtJjE/eV48Vjw+Uzs2N0c9NQp6aEk/IWc+XkRnY2k5WSRpZSZzMF9kVllMVGl4S3lf
O2pYRTE8YHAwXiRjXkchbDs9OTZYUyRweDY1bDx4R04lX2QKejltJkVoNiF7e1ktKiMrJVNUTyln
SFA7fjFqM1BybURVSHhEM2NQd15Aa0gtRGhVMENPRVpZRnstNz9keSt0NzZaCnp3flNGJnRCPDEk
NXZ6fkF1ZzN+OGclNVZ2RUMlVlcyOGxSTmg8cXZMS0JjY01pYXtFfTspNUZKWjJDN05eUFd4LQp6
S1UrMWJTc2lgKGojWX5mSWIqa1NXSj5vdUw2KCNST0hPPTQ0aFcyMVllU2wmWTFYUGh5a1RSJWNk
QXJJK2dJQjwKenltNE9fbDB3JSY4TmM5eUJfV202aX1qV3pFKDxASUNTVE18XmlBPG0hRFA+RDxs
I0tPQns4PldJbn5kNDF1NkoxCnp5c2NQMFE2VjR0RTtkPml5KTt6YVdreXQ8dkVoQmxfJnV0Ulcj
I2Q0dCpPRnRiKDU2RkMkQEFhSio4UnV2Qmh9aAp6N1Z3YnE9QihVeVkocHtERn1LLVZoeXJoajlM
P0FuWitvT25AMT45O01Vak56Uk0pfDZwcVQzOWVkZSRGd3s1NjAKelI3SG9JZWE/TkAyZm95diRi
aipnY2JmbVBVciFkRyt1JEFBeXIyV1FRfWQ5SGFQfUp7dzt9Km85THJvMnJfVFJMCnpYOSVjJUA4
ZHI9RSZkbEl6ZjB+JipPK2RiVkQwNSsyODMpZlJkWnN0Qmx0bF9iKkJrfG0zRUA5UTZ6WV50ZSFY
Mgp6VHxzYTw5KXFWTztKYiFVckdEX2oqe0xmbDdANio4dDJPK2RAbGJ6anpffW9aZ2g9I21wS0VN
a0tzXlpZKjBufFcKekgzQio5bCNjTV9mYXxjPT50KnB0alFDYGA+Wit6O2JRWVJqPlpENDJ2KU57
JGQ9R2FgYXMjOXpraSp5ZXJ1b0M/Cnpndnt5SCEkJipLIUBvUn04KXBtVUx4P3N1MlJZZTM3ZWcq
cTY5KGhMTCRKfiZQP3FBZG14SXopKTdRdWtJaXpANQp6P3tRZ34jdCEmcS1fVCttI009ZFo/NTkr
RVFIN3tJazQ7amVvKyRXVD4+Pk1jUHgkKiZDTWczWTxuYVFuJlVxUjgKeilydDlaR3BwcEc/LSoh
Yj1jdihiJDUoMUo/UTVHU0NqJHIpQntAdDJfUUwtMmdZLTRCKm5gNSk5M34tclFlQX1CCno4TVIq
YlZMX2o3Uk9NIyM3cCpNcF96I3drd0VkPG1QY3RvdFlANy08RjArdGQ7dzVwJXgwVUY4VE8jR3RO
fkdgJAp6LVN5TzA2KThfIW5oeGk+SERKLXBKP2gxWWYhNEtLPmZ3MXBRU2A3fWt8X2MxPylCQmAp
cHN9dkQ2PFljdGNffSUKelFsQmxMcHteI3Z3fUdRRnZ2emZ3QEJFY3Y0RnVIcmBeU3xmWWJyWUYh
fEZAUUJhbkxwWXRORE5uNy1fYFMqbT1LCnpMLXUrJUR8Oz1ocVdzTF8mOUg4TENzUT9SXn4pfXV1
fihRZWtRTX1ZRH02cSlEISlha2FtR0Y8aFEkRTlTcWFJZgp6QlRwWns9NDB1Mk87JS0/SWkqLX08
SXdVZV4jdTI2JCohalprQlQoME4tT0tkeXN4JGFvJkpvYD55cygzciFRVCsKeiZpRiYhWWVAekJY
NkRFVG55UXhBe0g3SG00Kmk/V0ljSjlGUWVuc2soUlJha0tJeSMxPjA4ODI3NUtXP3kqIWVvCnpE
VmFxS0VBdXJhUDVkVTdNcy1NaS1gPHhISX1fYllOakk1Y1M0byohdSh3P0pCYVVUVi1RdGF+Pz01
Szd2aT0+Qgp6UGs5fHd2cERpMntZdzM2XllEU3B3QFgzNDF5eDNXajQ+TEl0NTB+NSNvQHlsKXc9
ZjdUS19ONiRecmlOYSZaSmEKek0xITJ8QUs5SiUqI3c0PG48O3VLcXwhUjhoVUQ+SFB3X1FDTypT
QUE5cyptelpAJS1ZZ19taEpxVE5lRk1yZj9yCno4RCgjM2IybD9oViZwPSpqSEhHNjlpK3h2bWBB
RWpSQWBGQTAtZ0hiR3NWai0qY1E+akhPZCpreWB2PVlXdkMmSQp6UnUpKVdneGA8OzhlbF4oKTVV
KXJ0U3M8SnhNMEd5THtoUWw0QjBGYmFuNU9JYHtEN1o+aCV2aiVRWUdLbCs5VEUKelYjYEZ2aG5L
eCVxaT9sUThATWMqSiV5Zn00cUVBYVQrPlpDZVZCdlJUS31XP2tOM0srWFFaOyh7UldqY3ZyZzN8
Cnp5cVY5T2BieTBScG1aOX1eflh0aEV0b2xPa2VWTTtZZlBmPkBkNnQoPCpeZ3xFX1ZWYFBxJVdK
KihGXnpzQjE4aAp6NkNZWE9EV1N5NUR5Vnhyc3hCcnNuP3tnZ01wNmV7Z2BIMSEjTTNUeCQ0UkJt
K3BsN0JqQ3tqSyV5YiN9dz9GK0sKRD9HQVRfCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412480</attachid>
            <date>2020-10-27 17:16:39 -0700</date>
            <delta_ts>2020-10-28 16:40:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217506-20201027171637.patch</filename>
            <type>text/plain</type>
            <size>98092</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4OTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGMxNzk1ZmM4YzEyZDNm
OWI4NjQ2MzYyZGQxNzY3OGEyZWQ5YTQ3Yy4uYTE4MmMxYjg2YTQ0ZGM1NDRkZTIxNTMzNTA5YzRh
MGRlYzdmYTQ2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIwLTEwLTI2ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBb
R1BVIFByb2Nlc3NdIFBlcmZvcm0gaW1hZ2UgZGVjb2Rpbmcgb2YgY29sb3IgZm9udHMgaW4gdGhl
IFdlYiBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTc1MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0OiBmYXN0L3RleHQvY2FudmFzLXNiaXguaHRtbAorICAgICAgICAgICAgICBmYXN0
L3RleHQvY2FudmFzLUNPTFIuaHRtbAorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAg
ICAgKiBQbGF0Zm9ybUFwcGxlV2luLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtV2luQ2Fpcm8u
Y21ha2U6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2oveGNz
aGFyZWRkYXRhL3hjc2NoZW1lcy9XZWJDb3JlLnhjc2NoZW1lOgorICAgICAgICAqIHBsYXRmb3Jt
L0ZyZWVUeXBlLmNtYWtlOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJD
b3JlVGV4dC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmJlZ2lu
TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmVuZExheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpkcmF3R2x5cGhzKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpkcmF3SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdHbHlwaHNSZWNvcmRlcjo6Y3JlYXRlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdHbHlwaHNSZWNvcmRl
cik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpw
cmVwYXJlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpE
cmF3R2x5cGhzUmVjb3JkZXI6OmNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnVwZGF0ZUNUTSk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVGaWxs
Q29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRl
cjo6cmVjb3JkQmVnaW5MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJh
d0dseXBoc1JlY29yZGVyOjpyZWNvcmRFbmRMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6Y29tcHV0ZUFkdmFuY2VzRnJvbVBvc2l0aW9ucyk6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpyZWNvcmREcmF3R2x5cGhzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZERy
YXdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29y
ZGVyOjpkcmF3R2x5cGhzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6RHJhd0dseXBo
c1JlY29yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVj
b3JkZXI6OmRyYXdHbHlwaHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpSZWNvcmRlcjo6UmVjb3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlY29yZGVyOjpkcmF3R2x5cGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpS
ZWNvcmRlcjo6YXBwZW5kSXRlbSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6YXBwZW5kSXRlbSk6CisKIDIwMjAtMTAtMjYgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBhIFdlYWtIYXNoU2V0
IGZvciBEb2N1bWVudDo6bV9jYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkRWxlbWVudHMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCmluZGV4IGM0ZDMzNDI5ZGJlNmIwYzIwZGE3OTIzMWM2YjMzZWZjOGJkNTc5NjIu
LjU2MGRlNTA0ZjY2YWVmZjE4YTBlNjAxZjg0MjI2ZjQzYzc0YjljMDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTEwLTI2ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1t
YXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBbR1BVIFByb2Nlc3NdIFBlcmZv
cm0gaW1hZ2UgZGVjb2Rpbmcgb2YgY29sb3IgZm9udHMgaW4gdGhlIFdlYiBQcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1MDYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhbC9zcGkvY2cv
Q29yZUdyYXBoaWNzU1BJLmg6CisKIDIwMjAtMTAtMTMgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBsZWZ0b3ZlciBNQUNPU1hfREVQTE9ZTUVOVF9U
QVJHRVRfbWFjb3N4IHN1cHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMu
Y21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDk5MTgzYTcyM2VhNGY4
NDk1ZGZiZDY0YzcyMDI3MzFmYWU2MTQ2M2IuLmYxM2RiZjU2Zjk1N2M2NjMyMjZmZjA0YTQzODQz
MzBkMjc0NDliZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysr
IGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTIzNyw2ICsxMjM3LDcgQEAgc2V0
KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L2FuZ2xlL0V4dGVuc2lvbnNHTEFOR0xFLmgKIAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdC5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5oCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKaW5kZXggYTdmODJiODYxYjYy
YzRhZWZiODNjMTgxMWQ1NWM3YWY3NDllNmI5MS4uNDgwZGI5YjI4ZjA3YjQxOTNkYmM4MzJkYTdh
MzVlNjcxN2QxNjRiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2cv
Q29yZUdyYXBoaWNzU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29y
ZUdyYXBoaWNzU1BJLmgKQEAgLTM4LDYgKzM4LDcgQEAKIAogI2lmIFVTRShBUFBMRV9JTlRFUk5B
TF9TREspCiAKKyNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dDb250ZXh0RGVsZWdhdGVQcml2YXRl
Lmg+CiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHRm9udENhY2hlLmg+CiAjaW5jbHVkZSA8Q29y
ZUdyYXBoaWNzL0NHUGF0aFByaXZhdGUuaD4KICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ29yZUdy
YXBoaWNzUHJpdmF0ZS5oPgpAQCAtNTgsMTkgKzU5LDEyIEBAIHN0cnVjdCBDR0ZvbnRITWV0cmlj
cyB7CiAgICAgaW50IG1pblJpZ2h0U2lkZUJlYXJpbmc7CiB9OwogCi1zdHJ1Y3QgQ0dGb250RGVz
Y3JpcHRvciB7Ci0gICAgQ0dSZWN0IGJib3g7Ci0gICAgQ0dGbG9hdCBhc2NlbnQ7Ci0gICAgQ0dG
bG9hdCBkZXNjZW50OwotICAgIENHRmxvYXQgY2FwSGVpZ2h0OwotICAgIENHRmxvYXQgaXRhbGlj
QW5nbGU7Ci0gICAgQ0dGbG9hdCBzdGVtVjsKLSAgICBDR0Zsb2F0IHN0ZW1IOwotICAgIENHRmxv
YXQgYXZnV2lkdGg7Ci0gICAgQ0dGbG9hdCBtYXhXaWR0aDsKLSAgICBDR0Zsb2F0IG1pc3NpbmdX
aWR0aDsKLSAgICBDR0Zsb2F0IGxlYWRpbmc7Ci0gICAgQ0dGbG9hdCB4SGVpZ2h0OwordHlwZWRl
ZiBDRl9FTlVNIChpbnQzMl90LCBDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrTmFtZSkKK3sKKyAg
ICBkZURyYXdJbWFnZSA9IDcsCisgICAgZGVEcmF3R2x5cGhzID0gOCwKKyAgICBkZUJlZ2luTGF5
ZXIgPSAxNywKKyAgICBkZUVuZExheWVyID0gMTgsCiB9OwogCiB0eXBlZGVmIGNvbnN0IHN0cnVj
dCBDR0NvbG9yVHJhbnNmb3JtKiBDR0NvbG9yVHJhbnNmb3JtUmVmOwpAQCAtMTc3LDYgKzE3MSwy
MiBAQCBzdHJ1Y3QgQ0dGb2N1c1JpbmdTdHlsZSB7CiB9OwogdHlwZWRlZiBzdHJ1Y3QgQ0dGb2N1
c1JpbmdTdHlsZSBDR0ZvY3VzUmluZ1N0eWxlOwogCitzdHJ1Y3QgQ0dTaGFkb3dTdHlsZSB7Cisg
ICAgdW5zaWduZWQ7CisgICAgQ0dGbG9hdDsKKyAgICBDR0Zsb2F0IGF6aW11dGg7CisgICAgQ0dG
bG9hdDsKKyAgICBDR0Zsb2F0IGhlaWdodDsKKyAgICBDR0Zsb2F0IHJhZGl1czsKKyAgICBDR0Zs
b2F0OworfTsKK3R5cGVkZWYgc3RydWN0IENHU2hhZG93U3R5bGUgQ0dTaGFkb3dTdHlsZTsKKwor
dHlwZWRlZiBDRl9FTlVNIChpbnQzMl90LCBDR1N0eWxlVHlwZSkKK3sKKyAgICBrQ0dTdHlsZVNo
YWRvdyA9IDEsCit9OworCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKICNpZiBQTEFURk9S
TShNQUMpCkBAIC0xOTMsNiArMjAzLDEyIEBAIHN0YXRpYyBjb25zdCBDR1NOb3RpZmljYXRpb25U
eXBlIGtDR1Nlc3Npb25Db25zb2xlRGlzY29ubmVjdCA9IChDR1NOb3RpZmljYXRpb25UCiAKICNl
bmRpZiAvLyBQTEFURk9STShNQUMpCiAKK3R5cGVkZWYgc3RydWN0IENHQ29udGV4dERlbGVnYXRl
ICpDR0NvbnRleHREZWxlZ2F0ZVJlZjsKK3R5cGVkZWYgdm9pZCAoKkNHQ29udGV4dERlbGVnYXRl
Q2FsbGJhY2spKHZvaWQpOwordHlwZWRlZiBzdHJ1Y3QgQ0dSZW5kZXJpbmdTdGF0ZSAqQ0dSZW5k
ZXJpbmdTdGF0ZVJlZjsKK3R5cGVkZWYgc3RydWN0IENHR1N0YXRlICpDR0dTdGF0ZVJlZjsKK3R5
cGVkZWYgc3RydWN0IENHU3R5bGUgKkNHU3R5bGVSZWY7CisKICNlbmRpZiAvLyBVU0UoQVBQTEVf
SU5URVJOQUxfU0RLKQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC0yMDMsNyArMjE5LDYgQEAg
dHlwZWRlZiB1aW50MzJfdCBDR1NXaW5kb3dJRDsKIAogdHlwZWRlZiBDR1NXaW5kb3dJRCogQ0dT
V2luZG93SURMaXN0OwogdHlwZWRlZiBzdHJ1Y3QgQ0ZfQlJJREdFRF9UWVBFKGlkKSBDR1NSZWdp
b25PYmplY3QqIENHU1JlZ2lvbk9iajsKLXR5cGVkZWYgc3RydWN0IENGX0JSSURHRURfVFlQRShp
ZCkgQ0dTdHlsZSogQ0dTdHlsZVJlZjsKIAogdHlwZWRlZiB2b2lkKiBDR1NOb3RpZmljYXRpb25B
cmc7CiB0eXBlZGVmIHZvaWQqIENHU05vdGlmaWNhdGlvbkRhdGE7CkBAIC0yMzMsNyArMjQ4LDYg
QEAgdm9pZCBDR0NvbnRleHRSZXNldENsaXAoQ0dDb250ZXh0UmVmKTsKIENHQ29udGV4dFR5cGUg
Q0dDb250ZXh0R2V0VHlwZShDR0NvbnRleHRSZWYpOwogCiBDRlN0cmluZ1JlZiBDR0ZvbnRDb3B5
RmFtaWx5TmFtZShDR0ZvbnRSZWYpOwotYm9vbCBDR0ZvbnRHZXREZXNjcmlwdG9yKENHRm9udFJl
ZiwgQ0dGb250RGVzY3JpcHRvciopOwogYm9vbCBDR0ZvbnRHZXRHbHlwaEFkdmFuY2VzRm9yU3R5
bGUoQ0dGb250UmVmLCBjb25zdCBDR0FmZmluZVRyYW5zZm9ybSogLCBDR0ZvbnRSZW5kZXJpbmdT
dHlsZSwgY29uc3QgQ0dHbHlwaFtdLCBzaXplX3QgY291bnQsIENHU2l6ZSBhZHZhbmNlc1tdKTsK
IHZvaWQgQ0dGb250R2V0R2x5cGhzRm9yVW5pY2hhcnMoQ0dGb250UmVmLCBjb25zdCBVbmlDaGFy
W10sIENHR2x5cGhbXSwgc2l6ZV90IGNvdW50KTsKIGNvbnN0IENHRm9udEhNZXRyaWNzKiBDR0Zv
bnRHZXRITWV0cmljcyhDR0ZvbnRSZWYpOwpAQCAtMjUyLDYgKzI2NiwyMSBAQCBib29sIENHQ29u
dGV4dEdldEFsbG93c0ZvbnRTdWJwaXhlbFBvc2l0aW9uaW5nKENHQ29udGV4dFJlZik7CiBib29s
IENHQ29udGV4dERyYXdzV2l0aENvcnJlY3RTaGFkb3dPZmZzZXRzKENHQ29udGV4dFJlZik7CiBD
R1BhdHRlcm5SZWYgQ0dQYXR0ZXJuQ3JlYXRlV2l0aEltYWdlMihDR0ltYWdlUmVmLCBDR0FmZmlu
ZVRyYW5zZm9ybSwgQ0dQYXR0ZXJuVGlsaW5nKTsKIAorQ0dDb250ZXh0RGVsZWdhdGVSZWYgQ0dD
b250ZXh0RGVsZWdhdGVDcmVhdGUodm9pZCogaW5mbyk7Cit2b2lkIENHQ29udGV4dERlbGVnYXRl
U2V0Q2FsbGJhY2soQ0dDb250ZXh0RGVsZWdhdGVSZWYsIENHQ29udGV4dERlbGVnYXRlQ2FsbGJh
Y2tOYW1lLCBDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrKTsKK0NHQ29udGV4dFJlZiBDR0NvbnRl
eHRDcmVhdGVXaXRoRGVsZWdhdGUoQ0dDb250ZXh0RGVsZWdhdGVSZWYsIENHQ29udGV4dFR5cGUs
IENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmKTsKK3ZvaWQqIENHQ29udGV4dERlbGVn
YXRlR2V0SW5mbyhDR0NvbnRleHREZWxlZ2F0ZVJlZik7Cit2b2lkIENHQ29udGV4dERlbGVnYXRl
UmVsZWFzZShDR0NvbnRleHREZWxlZ2F0ZVJlZik7CitDR0Zsb2F0IENHR1N0YXRlR2V0QWxwaGEo
Q0dHU3RhdGVSZWYpOworQ0dGb250UmVmIENHR1N0YXRlR2V0Rm9udChDR0dTdGF0ZVJlZik7Citj
b25zdCBDR0FmZmluZVRyYW5zZm9ybSAqQ0dHU3RhdGVHZXRDVE0oQ0dHU3RhdGVSZWYpOworQ0dD
b2xvclJlZiBDR0dTdGF0ZUdldEZpbGxDb2xvcihDR0dTdGF0ZVJlZik7CitDR0NvbG9yUmVmIENH
R1N0YXRlR2V0U3Ryb2tlQ29sb3IoQ0dHU3RhdGVSZWYpOworQ0dTdHlsZVJlZiBDR0dTdGF0ZUdl
dFN0eWxlKENHR1N0YXRlUmVmKTsKK0NHU3R5bGVUeXBlIENHU3R5bGVHZXRUeXBlKENHU3R5bGVS
ZWYpOworY29uc3Qgdm9pZCAqQ0dTdHlsZUdldERhdGEoQ0dTdHlsZVJlZik7CitDR0NvbG9yUmVm
IENHU3R5bGVHZXRDb2xvcihDR1N0eWxlUmVmKTsKKwogI2lmIEhBVkUoQ0dQQVRIX0dFVF9OVU1C
RVJfT0ZfRUxFTUVOVFMpCiBzaXplX3QgQ0dQYXRoR2V0TnVtYmVyT2ZFbGVtZW50cyhDR1BhdGhS
ZWYpOwogI2VuZGlmCkBAIC0yODYsMTYgKzMxNSw5IEBAIENHUmVjdCogQ0dTTmV4dFJlY3QoY29u
c3QgQ0dTUmVnaW9uRW51bWVyYXRvck9iaik7CiBDR1NSZWdpb25FbnVtZXJhdG9yT2JqIENHU1Jl
Z2lvbkVudW1lcmF0b3IoQ0dSZWdpb25SZWYpOwogQ0dTdHlsZVJlZiBDR1N0eWxlQ3JlYXRlRm9j
dXNSaW5nV2l0aENvbG9yKGNvbnN0IENHRm9jdXNSaW5nU3R5bGUqLCBDR0NvbG9yUmVmKTsKIHZv
aWQgQ0dDb250ZXh0U2V0U3R5bGUoQ0dDb250ZXh0UmVmLCBDR1N0eWxlUmVmKTsKLQogdm9pZCBD
R0NvbnRleHREcmF3Q29uaWNHcmFkaWVudChDR0NvbnRleHRSZWYsIENHR3JhZGllbnRSZWYsIENH
UG9pbnQgY2VudGVyLCBDR0Zsb2F0IGFuZ2xlKTsKLQotI2lmIEhBVkUoQ0dfUEFUSF9VTkVWRU5f
Q09STkVSU19ST1VOREVEUkVDVCkKIHZvaWQgQ0dQYXRoQWRkVW5ldmVuQ29ybmVyc1JvdW5kZWRS
ZWN0KENHTXV0YWJsZVBhdGhSZWYsIGNvbnN0IENHQWZmaW5lVHJhbnNmb3JtICosIENHUmVjdCwg
Y29uc3QgQ0dTaXplIGNvcm5lcnNbNF0pOwotI2VuZGlmCi0KLSNpZiBIQVZFKENHX0ZPTlRfUkVO
REVSSU5HX0dFVF9GT05UX1NNT09USElOR19ESVNBQkxFRCkKIGJvb2wgQ0dGb250UmVuZGVyaW5n
R2V0Rm9udFNtb290aGluZ0Rpc2FibGVkKHZvaWQpOwotI2VuZGlmCiAKICNlbmRpZiAvLyBQTEFU
Rk9STShDT0NPQSkKIApAQCAtMzI4LDE1ICszNTAsMTAgQEAgYm9vbCBDb2xvclN5bmNQcm9maWxl
SXNXaWRlR2FtdXQoQ29sb3JTeW5jUHJvZmlsZVJlZik7CiBzaXplX3QgQ0dEaXNwbGF5TW9kZUdl
dFBpeGVsc1dpZGUoQ0dEaXNwbGF5TW9kZVJlZik7CiBzaXplX3QgQ0dEaXNwbGF5TW9kZUdldFBp
eGVsc0hpZ2goQ0dEaXNwbGF5TW9kZVJlZik7CiAKLSNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5E
T1dTRVJWRVJfQkxPQ0tJTkcpCi0KIENHRXJyb3IgQ0dTU2V0RGVueVdpbmRvd1NlcnZlckNvbm5l
Y3Rpb25zKGJvb2wpOwotCiB0eXBlZGVmIGludDMyX3QgQ0dTRGlzcGxheUlEOwogQ0dTRGlzcGxh
eUlEIENHU01haW5EaXNwbGF5SUQodm9pZCk7CiAKLSNlbmRpZiAvLyBFTkFCTEUoV0VCUFJPQ0VT
U19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCi0KICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKICNp
ZiBFTkFCTEUoUERGS0lUX1BMVUdJTikgJiYgIVVTRShBUFBMRV9JTlRFUk5BTF9TREspCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUFwcGxlV2luLmNtYWtlIGIvU291cmNlL1dl
YkNvcmUvUGxhdGZvcm1BcHBsZVdpbi5jbWFrZQppbmRleCBhNzg4ZTY5ZGU3NDQxYzk0MDg0Zjcw
MzZhM2U4ZjQ5YWQ0NTFhNThkLi4zOGEyYjc3Njg5NTU5OGE0ZjRlMzZhZGU3YzYwM2IwNDA3OGRk
Yzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUFwcGxlV2luLmNtYWtlCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQXBwbGVXaW4uY21ha2UKQEAgLTMwLDYgKzMwLDgg
QEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9XZWJDb3JlQVZDRlJlc291cmNlTG9hZGVy
LmNwcAogCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJh
d0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwCisKICAgICBwbGF0Zm9ybS9ncmFwaGljcy93aW4v
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKIAogICAgIHBsYXRmb3JtL25ldHdvcmsvY2YvQXV0
aGVudGljYXRpb25DRi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2lu
Q2Fpcm8uY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbkNhaXJvLmNtYWtlCmluZGV4
IGE2ODk2NDc3ZGUwY2Y1MDM0ZjNmZDA5ZjNmMGM3NmE3ZGE2ZWM4YTEuLjA3NzhmNzU1NjZjNjQ2
MzAyMGEwZTA3YzUyYTY1YzFhNDc0ZjYyODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Bs
YXRmb3JtV2luQ2Fpcm8uY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5DYWly
by5jbWFrZQpAQCAtMjIsNiArMjIsOCBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
UGxhdGZvcm1EaXNwbGF5LmNwcAogCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwCisKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YUNhaXJvLmNwcAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhQ2Fpcm9XaW4uY3BwCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0dseXBoUGFnZVRyZWVOb2RlQ2Fpcm9XaW4uY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNl
c0NvY29hLnR4dAppbmRleCBlYjRlMTdmMmU3MzZlYTg2ODFjNTZkMjAyNTE0OTI2YjhkYzk5NDUw
Li4yYWQzM2E5NTUxOTJkOTA3NmViM2Q4YzE2MmNmZTM4NjIyZGZiMThjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXNDb2NvYS50eHQKQEAgLTM3OSw2ICszNzksNyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFn
ZVRyYW5zZmVyU2Vzc2lvblZULm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNv
bmZvcm1lckNWLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1Yu
Y3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvRmlsdGVyRWZmZWN0UmVuZGVyZXJDb3Jl
SW1hZ2UubW0KK3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdH
bHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1RpbGluZ0Rh
dGEuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQmluZEdyb3VwQWxsb2NhdG9y
TWV0YWwubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBMYXlvdXRN
ZXRhbC5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGIzMDMzNDJkNDUxMThmMDk4YTRhMjMzYTQ3YTljZWY5MmNmOWE1MmQuLjZk
ZTM0ODZkZGQ2ZTY4MDQxYTNmM2FmMWRkODM5NmUwNmEyNDJiYmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYyMCw2ICs2MjAs
NyBAQAogCQkxQ0FGMzQ4MTBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FGMzQ3RTBBNkM0
MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUNBRjM0ODIwQTZDNDA1MjAwQUJFMDZFIC8qIFdl
YlNjcmlwdE9iamVjdC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFDQUYzNDdGMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QubW0gKi87
IH07CiAJCTFDQUYzNDgzMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3RQcml2YXRl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FGMzQ4
MDBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTFDQUY1NkRCMjUzMDFBQzgw
MDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBRjU2RDgyNTMwMTQ1NzAwMTdCNDcy
IC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUNDRDgxNTAyMjMxRjgzRTAwNjVGQzJCIC8q
IFdlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNTI1NTE0MTZGRDIzNEYw
MDNEN0FEQiAvKiBXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUu
bW0gKi87IH07CiAJCTFDQ0RGNUJFMTk5MDMzMjQwMEJDRUJBRCAvKiBTVkdUb09URkZvbnRDb252
ZXJzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
Q0NERjVCQzE5OTAzMzI0MDBCQ0VCQUQgLyogU1ZHVG9PVEZGb250Q29udmVyc2lvbi5oICovOyB9
OwogCQkxQ0ZBRTMyMzBBNkQ2QTNGMDAzMjU5M0QgLyogbGlib2JqYy5keWxpYiBpbiBGcmFtZXdv
cmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDRkFFMzIyMEE2RDZBM0Yw
MDMyNTkzRCAvKiBsaWJvYmpjLmR5bGliICovOyB9OwpAQCAtNjczNiw2ICs2NzM3LDggQEAKIAkJ
MUNBRjM0N0UwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTY3JpcHRPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUNBRjM0N0YwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVj
dC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlNjcmlwdE9i
amVjdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBRjM0ODAwQTZDNDA1MjAw
QUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdFByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxQ0FGNTZEODI1MzAxNDU3MDAxN0I0NzIgLyogRGlzcGxheUxpc3REcmF3R2x5
cGhzUmVjb3JkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3Jk
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNBRjU2REUyNTMwMjQ1QTAwMTdC
NDcyIC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQjVGRTg4MjJERUJDOEIwMDk0NDBFMiAvKiBX
SExTTEVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdITFNMRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUNCNjlCMzIyMURFRDQwQjAwNkU4NDZBIC8qIFdITFNMUmVzb2x2YWJs
ZVR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xSZXNvbHZhYmxlVHlwZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQ0I2OUIzNDIxREVENjNBMDA2RTg0NkEgLyogV0hMU0xGbG9h
dExpdGVyYWxUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdITFNMRmxvYXRMaXRlcmFsVHlwZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc2MDcsNiArMTc2MTAsOCBAQAogCQkJY2hp
bGRyZW4gPSAoCiAJCQkJMEZFNUZCQ0ExQzNERDUxRTAwMDdBMkNBIC8qIERpc3BsYXlMaXN0LmNw
cCAqLywKIAkJCQkwRkU1RkJDQjFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3QuaCAqLywK
KwkJCQkxQ0FGNTZEODI1MzAxNDU3MDAxN0I0NzIgLyogRGlzcGxheUxpc3REcmF3R2x5cGhzUmVj
b3JkZXIuaCAqLywKKwkJCQkxQ0FGNTZERTI1MzAyNDVBMDAxN0I0NzIgLyogRGlzcGxheUxpc3RE
cmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAgKi8sCiAJCQkJNTVDMEEyOTUyM0ZFMkNFMDAw
RjJDQjkzIC8qIERpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuY3BwICovLAogCQkJCTcyRUEwOUY5
MjNGQ0NDNkEwMDg1MDRBNSAvKiBEaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmggKi8sCiAJCQkJ
NzJFQTA5RjcyM0ZDQ0IzRDAwODUwNEE1IC8qIERpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaCAqLywK
QEAgLTMxNDI4LDYgKzMxNDMzLDcgQEAKIAkJCQk3RURBQUZDOTE5QTJDQ0RDMDAzNERGRDEgLyog
RGlza0NhY2hlTW9uaXRvckNvY29hLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjc5MEY0MjI1MTdD
RTZFMDA5QkEwMzQgLyogRGlzcGxheUxheWVyQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZFNUZCRDMxQzNERDUxRTAwMDdBMkNBIC8qIERpc3BsYXlMaXN0LmggaW4gSGVhZGVycyAq
LywKKwkJCQkxQ0FGNTZEQjI1MzAxQUM4MDAxN0I0NzIgLyogRGlzcGxheUxpc3REcmF3R2x5cGhz
UmVjb3JkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1QUQwOTQwMjQwODk2NDAwMERFNEQyRiAv
KiBEaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1NUFEMDkz
RTI0MDg5NjM1MDBERTREMkYgLyogRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZFNUZCRDUxQzNERDUxRTAwMDdBMkNBIC8qIERpc3BsYXlMaXN0SXRlbXMuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJlZVR5
cGUuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GcmVlVHlwZS5jbWFrZQppbmRleCA3
YzA0ZDkzYTViODVjNzMyNTgxYzk1YTA2NWJlMDViNjM2N2M3YWU0Li5mMzhiNTRlMTdjOTMxNTY1
MTU0Y2FiOTUzYTgxZTBlOTZmNTc0OWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9GcmVlVHlwZS5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GcmVlVHlw
ZS5jbWFrZQpAQCAtNSw2ICs1LDggQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9QUklWQVRFX0lOQ0xV
REVfRElSRUNUT1JJRVMKICkKIAogbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVy
SGFyZkJ1enouY3BwCisKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q2FjaGVG
cmVlVHlwZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhRnJlZVR5cGUuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9u
dFBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tlbmQuY3BwCmluZGV4IDJh
ZDMxYWM1N2Q1ZjFiZGU3OTQxOWM1ZjkxNTY5N2IzNzU0NGJiNDguLjViMjBkODkyZWQ4YmJjZjYw
MTgxNmE2MzY3NmEwMGYxZmE1YzE3YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5jcHAKQEAgLTYx
LDYgKzYxLDcgQEAgUmV0YWluUHRyPENHQ29sb3JTcGFjZVJlZj4gSW1hZ2VCdWZmZXJDR0JhY2tl
bmQ6OmNvbnRleHRDb2xvclNwYWNlKGNvbnN0IEdyYXBoaWMKIAogdm9pZCBJbWFnZUJ1ZmZlckNH
QmFja2VuZDo6c2V0dXBDb250ZXh0KCkKIHsKKyAgICAvLyBUaGUgaW5pdGlhbCBDVE0gbWF0Y2hl
cyBEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmNsaXBUb0RyYXdpbmdDb21tYW5kcygpJ3MgaW5pdGlh
bCBDVE0uCiAgICAgY29udGV4dCgpLnNjYWxlKEZsb2F0U2l6ZSgxLCAtMSkpOwogICAgIGNvbnRl
eHQoKS50cmFuc2xhdGUoMCwgLW1fYmFja2VuZFNpemUuaGVpZ2h0KCkpOwogICAgIGNvbnRleHQo
KS5hcHBseURldmljZVNjYWxlRmFjdG9yKG1fcmVzb2x1dGlvblNjYWxlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRDYXNjYWRlQ29y
ZVRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9u
dENhc2NhZGVDb3JlVGV4dC5jcHAKaW5kZXggNGE4ZTRlMGVhMTk0MTQ0MzYyNTBhNGJlOGFhNDVj
YjcxZGIyMTZmYi4uZjk3ZjcwYjhmNzY0ODM4MDcwNmY3ZDBiZTc1ZDRhMGQ5N2ZlODhmYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udENh
c2NhZGVDb3JlVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29yZXRleHQvRm9udENhc2NhZGVDb3JlVGV4dC5jcHAKQEAgLTY5LDYgKzY5LDE0IEBAIHN0YXRp
YyBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHJvdGF0ZUxlZnRUcmFuc2Zvcm0oKQogCiB2b2lkIGZp
bGxWZWN0b3JXaXRoSG9yaXpvbnRhbEdseXBoUG9zaXRpb25zKFZlY3RvcjxDR1BvaW50LCAyNTY+
JiBwb3NpdGlvbnMsIENHQ29udGV4dFJlZiBjb250ZXh0LCBjb25zdCBDR1NpemUqIGFkdmFuY2Vz
LCB1bnNpZ25lZCBjb3VudCwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQpCiB7CisgICAgLy8gVGhl
IGlucHV0IHBvc2l0aW9ucyBhcmUgaW4gdGhlIGNvbnRleHQncyBjb29yZGluYXRlIHN5c3RlbSwg
d2l0aG91dCB0aGUgdGV4dCBtYXRyaXguCisgICAgLy8gSG93ZXZlciwgdGhlIHBvc2l0aW9ucyB0
aGF0IENUL0NHIGFjY2VwdCBhcmUgaW4gdGhlIHRleHQgbWF0cml4J3MgY29vcmRpbmF0ZSBzeXN0
ZW0uCisgICAgLy8gQ0dDb250ZXh0R2V0VGV4dE1hdHJpeCgpIGdpdmVzIHVzIHRoZSBtYXRyaXgg
dGhhdCBtYXBzIGZyb20gdGV4dCdzIGNvb3JkaW5hdGUgc3lzdGVtIHRvIHRoZSBjb250ZXh0J3Mg
KG5vbi10ZXh0KSBjb29yZGluYXRlIHN5c3RlbS4KKyAgICAvLyBXZSBuZWVkIHRvIGZpZ3VyZSBv
dXQgd2hhdCB0byBkZWxpdmVyIENULCBpbnNpZGUgdGhlIHRleHQncyBjb29yZGluYXRlIHN5c3Rl
bSwgc3VjaCB0aGF0IGl0IGVuZHMgdXAgY29pbmNpZGVudCB3aXRoIHRoZSBpbnB1dCBpbiB0aGUg
Y29udGV4dCdzIGNvb3JkaW5hdGUgc3lzdGVtLgorICAgIC8vCisgICAgLy8gQ1RNICogdGV4dCBt
YXRyaXggKiBwb3NpdGlvbnMgd2UgbmVlZCB0byBkZWxpdmVyIHRvIENUID0gQ1RNICogaW5wdXQg
cG9zaXRpb25zCisgICAgLy8gU29sdmluZyBmb3IgdGhlIHBvc2l0aW9ucyB3ZSBuZWVkIHRvIGRl
bGl2ZXIgdG8gQ1QsIHdlIGdldAorICAgIC8vIHBvc2l0aW9ucyB3ZSBuZWVkIHRvIGRlbGl2ZXIg
dG8gQ1QgPSBpbnZlcnNlKHRleHQgbWF0cml4KSAqIGlucHV0IHBvc2l0aW9ucwogICAgIENHQWZm
aW5lVHJhbnNmb3JtIG1hdHJpeCA9IENHQWZmaW5lVHJhbnNmb3JtSW52ZXJ0KENHQ29udGV4dEdl
dFRleHRNYXRyaXgoY29udGV4dCkpOwogICAgIHBvc2l0aW9uc1swXSA9IENHUG9pbnRBcHBseUFm
ZmluZVRyYW5zZm9ybShwb2ludCwgbWF0cml4KTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBp
IDwgY291bnQ7ICsraSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3
R2x5cGhzUmVjb3JkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44Mzc0ZWMyMmFlZDA0YjdlYmIzODE4ZWM1MTk5
ODYwYjJjODU0NDM3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmgKQEAg
LTAsMCArMSwxMTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgorI2luY2x1
ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSAiR3JhZGllbnQuaCIKKyNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHQuaCIKKyNpbmNsdWRlICJQYXR0ZXJuLmgiCisjaW5jbHVkZSAiVGV4dEZsYWdzLmgiCisK
KyNpZiBVU0UoQ09SRV9URVhUKQorI2luY2x1ZGUgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3Mu
aD4KKyNpbmNsdWRlIDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgorI2VuZGlmCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRmxvYXRQb2ludDsKK2NsYXNzIEZvbnQ7CitjbGFz
cyBHbHlwaEJ1ZmZlcjsKK2NsYXNzIEdyYXBoaWNzQ29udGV4dDsKKworbmFtZXNwYWNlIERpc3Bs
YXlMaXN0IHsKKworY2xhc3MgUmVjb3JkZXI7CisKK2NsYXNzIERyYXdHbHlwaHNSZWNvcmRlciB7
CitwdWJsaWM6CisgICAgZXhwbGljaXQgRHJhd0dseXBoc1JlY29yZGVyKFJlY29yZGVyJik7CisK
KyAgICB2b2lkIGRyYXdHbHlwaHMoY29uc3QgRm9udCYsIGNvbnN0IEdseXBoQnVmZmVyJiwgdW5z
aWduZWQgZnJvbSwgdW5zaWduZWQgbnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBhbmNob3JQ
b2ludCwgRm9udFNtb290aGluZ01vZGUpOworCisjaWYgVVNFKENPUkVfVEVYVCkKKyAgICB2b2lk
IHJlY29yZEJlZ2luTGF5ZXIoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYsIENHUmVj
dCk7CisgICAgdm9pZCByZWNvcmRFbmRMYXllcihDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0
ZVJlZik7CisgICAgdm9pZCByZWNvcmREcmF3R2x5cGhzKENHUmVuZGVyaW5nU3RhdGVSZWYsIENH
R1N0YXRlUmVmLCBjb25zdCBDR0FmZmluZVRyYW5zZm9ybSosIGNvbnN0IENHR2x5cGhbXSwgY29u
c3QgQ0dQb2ludCBwb3NpdGlvbnNbXSwgc2l6ZV90IGNvdW50KTsKKyAgICB2b2lkIHJlY29yZERy
YXdJbWFnZShDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiwgQ0dSZWN0LCBDR0ltYWdl
UmVmKTsKKyNlbmRpZgorCitwcml2YXRlOgorICAgIEdyYXBoaWNzQ29udGV4dCBjcmVhdGVJbnRl
cm5hbENvbnRleHQoKTsKKyAgICB2b2lkIHByZXBhcmVJbnRlcm5hbENvbnRleHQoY29uc3QgRm9u
dCYsIEZvbnRTbW9vdGhpbmdNb2RlKTsKKyAgICB2b2lkIGNvbmNsdWRlSW50ZXJuYWxDb250ZXh0
KCk7CisgICAgdm9pZCB1cGRhdGVDVE0oQWZmaW5lVHJhbnNmb3JtKTsKKyAgICB2b2lkIHVwZGF0
ZUZpbGxDb2xvcihjb25zdCBDb2xvciYsIEdyYWRpZW50KiA9IG51bGxwdHIsIFBhdHRlcm4qID0g
bnVsbHB0cik7CisgICAgdm9pZCB1cGRhdGVTdHJva2VDb2xvcihjb25zdCBDb2xvciYsIEdyYWRp
ZW50KiA9IG51bGxwdHIsIFBhdHRlcm4qID0gbnVsbHB0cik7CisgICAgZW51bSBjbGFzcyBTaGFk
b3dzSWdub3JlVHJhbnNmb3JtcyB7CisgICAgICAgIFVuc3BlY2lmaWVkLAorICAgICAgICBZZXMs
CisgICAgICAgIE5vCisgICAgfTsKKyAgICB2b2lkIHVwZGF0ZVNoYWRvdyhjb25zdCBGbG9hdFNp
emUmIHNoYWRvd09mZnNldCwgZmxvYXQgc2hhZG93Qmx1ciwgY29uc3QgQ29sb3ImIHNoYWRvd0Nv
bG9yLCBTaGFkb3dzSWdub3JlVHJhbnNmb3Jtcyk7CisKKyNpZiBVU0UoQ09SRV9URVhUKQorICAg
IHZvaWQgdXBkYXRlU2hhZG93KENHU3R5bGVSZWYpOworI2VuZGlmCisKKyAgICBSZWNvcmRlciYg
bV9vd25lcjsKKyAgICBHcmFwaGljc0NvbnRleHQgbV9pbnRlcm5hbENvbnRleHQ7CisgICAgY29u
c3QgRm9udCogbV9jdXJyZW50Rm9udCB7IG51bGxwdHIgfTsKKworICAgIENvbG9yIG1fY3VycmVu
dEZpbGxDb2xvcjsKKyAgICBDb2xvciBtX2N1cnJlbnRTdHJva2VDb2xvcjsKKworICAgIENvbG9y
IG1fb3JpZ2luYWxGaWxsQ29sb3I7CisgICAgUmVmUHRyPEdyYWRpZW50PiBtX29yaWdpbmFsRmls
bEdyYWRpZW50OworICAgIFJlZlB0cjxQYXR0ZXJuPiBtX29yaWdpbmFsRmlsbFBhdHRlcm47CisK
KyAgICBDb2xvciBtX29yaWdpbmFsU3Ryb2tlQ29sb3I7CisgICAgUmVmUHRyPEdyYWRpZW50PiBt
X29yaWdpbmFsU3Ryb2tlR3JhZGllbnQ7CisgICAgUmVmUHRyPFBhdHRlcm4+IG1fb3JpZ2luYWxT
dHJva2VQYXR0ZXJuOworCisgICAgQWZmaW5lVHJhbnNmb3JtIG1fb3JpZ2luYWxDVE07CisgICAg
QWZmaW5lVHJhbnNmb3JtIG1fY3VycmVudENUTTsKKworICAgIEFmZmluZVRyYW5zZm9ybSBtX29y
aWdpbmFsVGV4dE1hdHJpeDsKKworICAgIEZsb2F0U2l6ZSBtX29yaWdpbmFsU2hhZG93T2Zmc2V0
OworICAgIGZsb2F0IG1fb3JpZ2luYWxTaGFkb3dCbHVyOworICAgIENvbG9yIG1fb3JpZ2luYWxT
aGFkb3dDb2xvcjsKKyAgICBib29sIG1fb3JpZ2luYWxTaGFkb3dzSWdub3JlVHJhbnNmb3JtczsK
KworICAgIEZsb2F0U2l6ZSBtX2N1cnJlbnRTaGFkb3dPZmZzZXQ7CisgICAgZmxvYXQgbV9jdXJy
ZW50U2hhZG93Qmx1cjsKKyAgICBDb2xvciBtX2N1cnJlbnRTaGFkb3dDb2xvcjsKKyAgICBib29s
IG1fY3VycmVudFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOworCisgICAgRm9udFNtb290aGluZ01v
ZGUgbV9zbW9vdGhpbmdNb2RlIHsgRm9udFNtb290aGluZ01vZGU6OkF1dG9TbW9vdGhpbmcgfTsK
K307CisKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmZWRkMTRkZGFl
NTY5OWIwNTM5MmNhYzQyYjNmMzVkYTRmYzA0ZWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5
cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAKQEAgLTAsMCArMSwzNTkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCIKKworI2luY2x1ZGUgIkJpdG1h
cEltYWdlLmgiCisjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRlICJEaXNwbGF5TGlzdEl0ZW1z
LmgiCisjaW5jbHVkZSAiRGlzcGxheUxpc3RSZWNvcmRlci5oIgorI2luY2x1ZGUgIkZsb2F0UG9p
bnQuaCIKKyNpbmNsdWRlICJGb250LmgiCisjaW5jbHVkZSAiRm9udENhc2NhZGUuaCIKKyNpbmNs
dWRlICJHbHlwaEJ1ZmZlci5oIgorCisjaW5jbHVkZSA8Q29yZVRleHQvQ29yZVRleHQuaD4KKyNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKKyNpZiBQTEFURk9STShXSU4pCisjaW5jbHVkZSA8cGFs
L3NwaS93aW4vQ29yZVRleHRTUElXaW4uaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK25hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CisKK3N0YXRpYyBDR0NvbnRleHREZWxlZ2F0ZVJl
ZiBiZWdpbkxheWVyKENHQ29udGV4dERlbGVnYXRlUmVmIGRlbGVnYXRlLCBDR1JlbmRlcmluZ1N0
YXRlUmVmIHJzdGF0ZSwgQ0dHU3RhdGVSZWYgZ3N0YXRlLCBDR1JlY3QgcmVjdCwgQ0ZEaWN0aW9u
YXJ5UmVmLCBDR0NvbnRleHREZWxlZ2F0ZVJlZikKK3sKKyAgICBEcmF3R2x5cGhzUmVjb3JkZXIm
IHJlY29yZGVyID0gKnN0YXRpY19jYXN0PERyYXdHbHlwaHNSZWNvcmRlcio+KENHQ29udGV4dERl
bGVnYXRlR2V0SW5mbyhkZWxlZ2F0ZSkpOworICAgIHJlY29yZGVyLnJlY29yZEJlZ2luTGF5ZXIo
cnN0YXRlLCBnc3RhdGUsIHJlY3QpOworICAgIHJldHVybiBkZWxlZ2F0ZTsKK30KKworc3RhdGlj
IENHQ29udGV4dERlbGVnYXRlUmVmIGVuZExheWVyKENHQ29udGV4dERlbGVnYXRlUmVmIGRlbGVn
YXRlLCBDR1JlbmRlcmluZ1N0YXRlUmVmIHJzdGF0ZSwgQ0dHU3RhdGVSZWYgZ3N0YXRlKQorewor
ICAgIERyYXdHbHlwaHNSZWNvcmRlciYgcmVjb3JkZXIgPSAqc3RhdGljX2Nhc3Q8RHJhd0dseXBo
c1JlY29yZGVyKj4oQ0dDb250ZXh0RGVsZWdhdGVHZXRJbmZvKGRlbGVnYXRlKSk7CisgICAgcmVj
b3JkZXIucmVjb3JkRW5kTGF5ZXIocnN0YXRlLCBnc3RhdGUpOworICAgIHJldHVybiBkZWxlZ2F0
ZTsKK30KKworc3RhdGljIENHRXJyb3IgZHJhd0dseXBocyhDR0NvbnRleHREZWxlZ2F0ZVJlZiBk
ZWxlZ2F0ZSwgQ0dSZW5kZXJpbmdTdGF0ZVJlZiByc3RhdGUsIENHR1N0YXRlUmVmIGdzdGF0ZSwg
Y29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0qIHRtLCBjb25zdCBDR0dseXBoIGdseXBoc1tdLCBjb25z
dCBDR1BvaW50IHBvc2l0aW9uc1tdLCBzaXplX3QgY291bnQpCit7CisgICAgaWYgKENHR1N0YXRl
R2V0QWxwaGEoZ3N0YXRlKSA+IDApIHsKKyAgICAgICAgRHJhd0dseXBoc1JlY29yZGVyJiByZWNv
cmRlciA9ICpzdGF0aWNfY2FzdDxEcmF3R2x5cGhzUmVjb3JkZXIqPihDR0NvbnRleHREZWxlZ2F0
ZUdldEluZm8oZGVsZWdhdGUpKTsKKyAgICAgICAgcmVjb3JkZXIucmVjb3JkRHJhd0dseXBocyhy
c3RhdGUsIGdzdGF0ZSwgdG0sIGdseXBocywgcG9zaXRpb25zLCBjb3VudCk7CisgICAgfQorICAg
IHJldHVybiBrQ0dFcnJvclN1Y2Nlc3M7Cit9CisKK3N0YXRpYyBDR0Vycm9yIGRyYXdJbWFnZShD
R0NvbnRleHREZWxlZ2F0ZVJlZiBkZWxlZ2F0ZSwgQ0dSZW5kZXJpbmdTdGF0ZVJlZiByc3RhdGUs
IENHR1N0YXRlUmVmIGdzdGF0ZSwgQ0dSZWN0IHJlY3QsIENHSW1hZ2VSZWYgaW1hZ2UpCit7Cisg
ICAgRHJhd0dseXBoc1JlY29yZGVyJiByZWNvcmRlciA9ICpzdGF0aWNfY2FzdDxEcmF3R2x5cGhz
UmVjb3JkZXIqPihDR0NvbnRleHREZWxlZ2F0ZUdldEluZm8oZGVsZWdhdGUpKTsKKyAgICByZWNv
cmRlci5yZWNvcmREcmF3SW1hZ2UocnN0YXRlLCBnc3RhdGUsIHJlY3QsIGltYWdlKTsKKyAgICBy
ZXR1cm4ga0NHRXJyb3JTdWNjZXNzOworfQorCitHcmFwaGljc0NvbnRleHQgRHJhd0dseXBoc1Jl
Y29yZGVyOjpjcmVhdGVJbnRlcm5hbENvbnRleHQoKQoreworICAgIGF1dG8gY29udGV4dERlbGVn
YXRlID0gYWRvcHRDRihDR0NvbnRleHREZWxlZ2F0ZUNyZWF0ZSh0aGlzKSk7CisgICAgQ0dDb250
ZXh0RGVsZWdhdGVTZXRDYWxsYmFjayhjb250ZXh0RGVsZWdhdGUuZ2V0KCksIGRlQmVnaW5MYXll
ciwgcmVpbnRlcnByZXRfY2FzdDxDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrPigmYmVnaW5MYXll
cikpOworICAgIENHQ29udGV4dERlbGVnYXRlU2V0Q2FsbGJhY2soY29udGV4dERlbGVnYXRlLmdl
dCgpLCBkZUVuZExheWVyLCByZWludGVycHJldF9jYXN0PENHQ29udGV4dERlbGVnYXRlQ2FsbGJh
Y2s+KCZlbmRMYXllcikpOworICAgIENHQ29udGV4dERlbGVnYXRlU2V0Q2FsbGJhY2soY29udGV4
dERlbGVnYXRlLmdldCgpLCBkZURyYXdHbHlwaHMsIHJlaW50ZXJwcmV0X2Nhc3Q8Q0dDb250ZXh0
RGVsZWdhdGVDYWxsYmFjaz4oJldlYkNvcmU6OkRpc3BsYXlMaXN0OjpkcmF3R2x5cGhzKSk7Cisg
ICAgQ0dDb250ZXh0RGVsZWdhdGVTZXRDYWxsYmFjayhjb250ZXh0RGVsZWdhdGUuZ2V0KCksIGRl
RHJhd0ltYWdlLCByZWludGVycHJldF9jYXN0PENHQ29udGV4dERlbGVnYXRlQ2FsbGJhY2s+KCZk
cmF3SW1hZ2UpKTsKKyAgICBhdXRvIGNvbnRleHQgPSBhZG9wdENGKENHQ29udGV4dENyZWF0ZVdp
dGhEZWxlZ2F0ZShjb250ZXh0RGVsZWdhdGUuZ2V0KCksIGtDR0NvbnRleHRUeXBlVW5rbm93biwg
bnVsbHB0ciwgbnVsbHB0cikpOworICAgIHJldHVybiBHcmFwaGljc0NvbnRleHQoY29udGV4dC5n
ZXQoKSk7Cit9CisKK0RyYXdHbHlwaHNSZWNvcmRlcjo6RHJhd0dseXBoc1JlY29yZGVyKFJlY29y
ZGVyJiBvd25lcikKKyAgICA6IG1fb3duZXIob3duZXIpCisgICAgLCBtX2ludGVybmFsQ29udGV4
dChjcmVhdGVJbnRlcm5hbENvbnRleHQoKSkKK3sKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3Jk
ZXI6OnByZXBhcmVJbnRlcm5hbENvbnRleHQoY29uc3QgRm9udCYgZm9udCwgRm9udFNtb290aGlu
Z01vZGUgc21vb3RoaW5nTW9kZSkKK3sKKyAgICBBU1NFUlQoQ0dBZmZpbmVUcmFuc2Zvcm1Jc0lk
ZW50aXR5KENURm9udEdldE1hdHJpeChmb250LnBsYXRmb3JtRGF0YSgpLmN0Rm9udCgpKSkpOwor
CisgICAgYXV0byYgc3RhdGUgPSBtX293bmVyLmN1cnJlbnRTdGF0ZSgpLnN0YXRlQ2hhbmdlLm1f
c3RhdGU7CisKKyAgICBtX29yaWdpbmFsRmlsbENvbG9yID0gc3RhdGUuZmlsbENvbG9yOworICAg
IG1fb3JpZ2luYWxGaWxsR3JhZGllbnQgPSBzdGF0ZS5maWxsR3JhZGllbnQ7CisgICAgbV9vcmln
aW5hbEZpbGxQYXR0ZXJuID0gc3RhdGUuZmlsbFBhdHRlcm47CisKKyAgICBtX29yaWdpbmFsU3Ry
b2tlQ29sb3IgPSBzdGF0ZS5zdHJva2VDb2xvcjsKKyAgICBtX29yaWdpbmFsU3Ryb2tlR3JhZGll
bnQgPSBzdGF0ZS5zdHJva2VHcmFkaWVudDsKKyAgICBtX29yaWdpbmFsU3Ryb2tlUGF0dGVybiA9
IHN0YXRlLnN0cm9rZVBhdHRlcm47CisKKyAgICBtX2N1cnJlbnRGaWxsQ29sb3IgPSBtX29yaWdp
bmFsRmlsbENvbG9yOworICAgIG1fY3VycmVudFN0cm9rZUNvbG9yID0gbV9vcmlnaW5hbFN0cm9r
ZUNvbG9yOworCisgICAgaWYgKG1fb3JpZ2luYWxGaWxsQ29sb3IuaXNWYWxpZCgpKQorICAgICAg
ICBtX2ludGVybmFsQ29udGV4dC5zZXRGaWxsQ29sb3IobV9vcmlnaW5hbEZpbGxDb2xvcik7Cisg
ICAgZWxzZSBpZiAobV9vcmlnaW5hbEZpbGxHcmFkaWVudCkKKyAgICAgICAgbV9pbnRlcm5hbENv
bnRleHQuc2V0RmlsbEdyYWRpZW50KCptX29yaWdpbmFsRmlsbEdyYWRpZW50KTsKKyAgICBlbHNl
IHsKKyAgICAgICAgQVNTRVJUKG1fb3JpZ2luYWxGaWxsUGF0dGVybik7CisgICAgICAgIGlmICht
X29yaWdpbmFsRmlsbFBhdHRlcm4pCisgICAgICAgICAgICBtX2ludGVybmFsQ29udGV4dC5zZXRG
aWxsUGF0dGVybigqbV9vcmlnaW5hbEZpbGxQYXR0ZXJuKTsKKyAgICB9CisKKyAgICBtX29yaWdp
bmFsQ1RNID0gbV9vd25lci5jdXJyZW50U3RhdGUoKS5jdG07IC8vIEZJWE1FOiBEZWFsIHdpdGgg
ZGV2aWNlIHNjYWxlLgorICAgIG1fY3VycmVudENUTSA9IG1fb3JpZ2luYWxDVE07CisgICAgbV9p
bnRlcm5hbENvbnRleHQuc2V0Q1RNKG1fb3JpZ2luYWxDVE0pOworCisgICAgbV9vcmlnaW5hbFRl
eHRNYXRyaXggPSBjb21wdXRlT3ZlcmFsbFRleHRNYXRyaXgoZm9udCk7CisgICAgaWYgKGZvbnQu
cGxhdGZvcm1EYXRhKCkub3JpZW50YXRpb24oKSA9PSBGb250T3JpZW50YXRpb246OlZlcnRpY2Fs
KQorICAgICAgICBtX29yaWdpbmFsVGV4dE1hdHJpeCA9IGNvbXB1dGVWZXJ0aWNhbFRleHRNYXRy
aXgoZm9udCwgbV9vcmlnaW5hbFRleHRNYXRyaXgpOworCisgICAgbV9pbnRlcm5hbENvbnRleHQu
c2V0U2hhZG93c0lnbm9yZVRyYW5zZm9ybXMoc3RhdGUuc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMp
OworICAgIGlmIChzdGF0ZS5zaGFkb3dzVXNlTGVnYWN5UmFkaXVzKQorICAgICAgICBtX2ludGVy
bmFsQ29udGV4dC5zZXRMZWdhY3lTaGFkb3coc3RhdGUuc2hhZG93T2Zmc2V0LCBzdGF0ZS5zaGFk
b3dCbHVyLCBzdGF0ZS5zaGFkb3dDb2xvcik7CisgICAgZWxzZQorICAgICAgICBtX2ludGVybmFs
Q29udGV4dC5zZXRTaGFkb3coc3RhdGUuc2hhZG93T2Zmc2V0LCBzdGF0ZS5zaGFkb3dCbHVyLCBz
dGF0ZS5zaGFkb3dDb2xvcik7CisKKyAgICBtX2ludGVybmFsQ29udGV4dC5zZXRUZXh0RHJhd2lu
Z01vZGUoc3RhdGUudGV4dERyYXdpbmdNb2RlKTsKKworICAgIG1fb3JpZ2luYWxTaGFkb3dPZmZz
ZXQgPSBzdGF0ZS5zaGFkb3dPZmZzZXQ7CisgICAgbV9vcmlnaW5hbFNoYWRvd0JsdXIgPSBzdGF0
ZS5zaGFkb3dCbHVyOworICAgIG1fb3JpZ2luYWxTaGFkb3dDb2xvciA9IHN0YXRlLnNoYWRvd0Nv
bG9yOworICAgIG1fb3JpZ2luYWxTaGFkb3dzSWdub3JlVHJhbnNmb3JtcyA9IHN0YXRlLnNoYWRv
d3NJZ25vcmVUcmFuc2Zvcm1zOworCisgICAgbV9jdXJyZW50U2hhZG93T2Zmc2V0ID0gbV9vcmln
aW5hbFNoYWRvd09mZnNldDsKKyAgICBtX2N1cnJlbnRTaGFkb3dCbHVyID0gbV9vcmlnaW5hbFNo
YWRvd0JsdXI7CisgICAgbV9jdXJyZW50U2hhZG93Q29sb3IgPSBtX29yaWdpbmFsU2hhZG93Q29s
b3I7CisgICAgbV9jdXJyZW50U2hhZG93c0lnbm9yZVRyYW5zZm9ybXMgPSBtX29yaWdpbmFsU2hh
ZG93c0lnbm9yZVRyYW5zZm9ybXM7CisKKyAgICBtX2N1cnJlbnRGb250ID0gJmZvbnQ7CisgICAg
bV9zbW9vdGhpbmdNb2RlID0gc21vb3RoaW5nTW9kZTsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVj
b3JkZXI6OmNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KCkKK3sKKyAgICB1cGRhdGVGaWxsQ29sb3Io
bV9vcmlnaW5hbEZpbGxDb2xvciwgbV9vcmlnaW5hbEZpbGxHcmFkaWVudC5nZXQoKSwgbV9vcmln
aW5hbEZpbGxQYXR0ZXJuLmdldCgpKTsKKyAgICB1cGRhdGVTdHJva2VDb2xvcihtX29yaWdpbmFs
U3Ryb2tlQ29sb3IsIG1fb3JpZ2luYWxTdHJva2VHcmFkaWVudC5nZXQoKSwgbV9vcmlnaW5hbFN0
cm9rZVBhdHRlcm4uZ2V0KCkpOworICAgIHVwZGF0ZUNUTShtX29yaWdpbmFsQ1RNKTsKKyAgICB1
cGRhdGVTaGFkb3cobV9vcmlnaW5hbFNoYWRvd09mZnNldCwgbV9vcmlnaW5hbFNoYWRvd0JsdXIs
IG1fb3JpZ2luYWxTaGFkb3dDb2xvciwgbV9vcmlnaW5hbFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1z
ID8gU2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6OlllcyA6IFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1z
OjpObyk7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVDVE0oQWZmaW5lVHJh
bnNmb3JtIGN0bSkKK3sKKyAgICBpZiAoY3RtID09IG1fY3VycmVudENUTSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9vd25lci5zZXRDVE0oY3RtKTsKKyAgICBtX2N1cnJlbnRDVE0gPSBjdG07
Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVGaWxsQ29sb3IoY29uc3QgQ29s
b3ImIG5ld0NvbG9yLCBHcmFkaWVudCogbmV3R3JhZGllbnQsIFBhdHRlcm4qIG5ld1BhdHRlcm4p
Cit7CisgICAgLy8gVGhpcyBjaGVjayBsb29rcyB3cm9uZyBidXQgaXQgYWN0dWFsbHkgaXNuJ3Qs
IGZvciBvdXIgbGltaXRlZCB1c2UuCisgICAgLy8gQ1Qgd2lsbCBvbmx5IGV2ZXIgc2V0IHRoaXMg
dG8gYSBzb2xpZCBjb2xvciwgd2hpY2ggdGhpcyBpcyB0aGUgY29ycmVjdCBjaGVjayBmb3IuCisg
ICAgLy8gSW4gY29uY2x1ZGVJbnRlcm5hbENvbnRleHQoKSB3ZSBzZXQgaXQgYmFjayB0byB3aGF0
IGl0IHdhcyBvcmlnaW5hbGx5LCB3aGljaCB0aGlzIGNoZWNrIHdvcmtzIGNvcnJlY3RseSBmb3Ig
dG9vLgorICAgIGlmIChuZXdDb2xvciA9PSBtX2N1cnJlbnRGaWxsQ29sb3IpCisgICAgICAgIHJl
dHVybjsKKworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlIG5ld1N0YXRlOworICAgIG5ld1N0YXRl
LmZpbGxDb2xvciA9IG5ld0NvbG9yOworICAgIGlmIChuZXdHcmFkaWVudCkKKyAgICAgICAgbmV3
U3RhdGUuZmlsbEdyYWRpZW50ID0gbmV3R3JhZGllbnQ7CisgICAgaWYgKG5ld1BhdHRlcm4pCisg
ICAgICAgIG5ld1N0YXRlLmZpbGxQYXR0ZXJuID0gbmV3UGF0dGVybjsKKyAgICBtX293bmVyLnVw
ZGF0ZVN0YXRlKG5ld1N0YXRlLCB7IEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsQ29sb3JDaGFu
Z2UgfSk7CisgICAgbV9jdXJyZW50RmlsbENvbG9yID0gbmV3Q29sb3I7Cit9CisKK3ZvaWQgRHJh
d0dseXBoc1JlY29yZGVyOjp1cGRhdGVTdHJva2VDb2xvcihjb25zdCBDb2xvciYgbmV3Q29sb3Is
IEdyYWRpZW50KiBuZXdHcmFkaWVudCwgUGF0dGVybiogbmV3UGF0dGVybikKK3sKKyAgICAvLyBU
aGlzIGNoZWNrIGxvb2tzIHdyb25nIGJ1dCBpdCBhY3R1YWxseSBpc24ndCwgZm9yIG91ciBsaW1p
dGVkIHVzZS4KKyAgICAvLyBDVCB3aWxsIG9ubHkgZXZlciBzZXQgdGhpcyB0byBhIHNvbGlkIGNv
bG9yLCB3aGljaCB0aGlzIGlzIHRoZSBjb3JyZWN0IGNoZWNrIGZvci4KKyAgICAvLyBJbiBjb25j
bHVkZUludGVybmFsQ29udGV4dCgpIHdlIHNldCBpdCBiYWNrIHRvIHdoYXQgaXQgd2FzIG9yaWdp
bmFsbHksIHdoaWNoIHRoaXMgY2hlY2sgd29ya3MgY29ycmVjdGx5IGZvciB0b28uCisgICAgaWYg
KG5ld0NvbG9yID09IG1fY3VycmVudFN0cm9rZUNvbG9yKQorICAgICAgICByZXR1cm47CisKKyAg
ICBHcmFwaGljc0NvbnRleHRTdGF0ZSBuZXdTdGF0ZTsKKyAgICBuZXdTdGF0ZS5zdHJva2VDb2xv
ciA9IG5ld0NvbG9yOworICAgIGlmIChuZXdHcmFkaWVudCkKKyAgICAgICAgbmV3U3RhdGUuc3Ry
b2tlR3JhZGllbnQgPSBuZXdHcmFkaWVudDsKKyAgICBpZiAobmV3UGF0dGVybikKKyAgICAgICAg
bmV3U3RhdGUuc3Ryb2tlUGF0dGVybiA9IG5ld1BhdHRlcm47CisgICAgbV9vd25lci51cGRhdGVT
dGF0ZShuZXdTdGF0ZSwgeyBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlQ29sb3JDaGFuZ2Ug
fSk7CisgICAgbV9jdXJyZW50U3Ryb2tlQ29sb3IgPSBuZXdDb2xvcjsKK30KKworc3RhdGljIGJv
b2wgc2hhZG93SXNDbGVhcmVkKGNvbnN0IEZsb2F0U2l6ZSYgc2hhZG93T2Zmc2V0LCBmbG9hdCBz
aGFkb3dCbHVyKQoreworICAgIHJldHVybiBzaGFkb3dPZmZzZXQgPT0gRmxvYXRTaXplKCkgJiYg
IXNoYWRvd0JsdXI7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVTaGFkb3co
Y29uc3QgRmxvYXRTaXplJiBzaGFkb3dPZmZzZXQsIGZsb2F0IHNoYWRvd0JsdXIsIGNvbnN0IENv
bG9yJiBzaGFkb3dDb2xvciwgU2hhZG93c0lnbm9yZVRyYW5zZm9ybXMgc2hhZG93c0lnbm9yZVRy
YW5zZm9ybXMpCit7CisgICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBjb25zaWRlciBzaGFkb3dzSWdu
b3JlVHJhbnNmb3JtcyBpZiBub2JvZHkgaGFzIGFueSBzaGFkb3dzLgorICAgIGlmIChzaGFkb3dJ
c0NsZWFyZWQoc2hhZG93T2Zmc2V0LCBzaGFkb3dCbHVyKSAmJiBzaGFkb3dJc0NsZWFyZWQobV9j
dXJyZW50U2hhZG93T2Zmc2V0LCBtX2N1cnJlbnRTaGFkb3dCbHVyKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGUgbmV3U3RhdGU7CisgICAgR3JhcGhpY3NDb250
ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3Mgc3RhdGVDaGFuZ2VGbGFnczsKKworICAgIGlmIChz
aGFkb3dPZmZzZXQgIT0gbV9jdXJyZW50U2hhZG93T2Zmc2V0IHx8IHNoYWRvd0JsdXIgIT0gbV9j
dXJyZW50U2hhZG93Qmx1ciB8fCBzaGFkb3dDb2xvciAhPSBtX2N1cnJlbnRTaGFkb3dDb2xvcikg
eworICAgICAgICBuZXdTdGF0ZS5zaGFkb3dPZmZzZXQgPSBzaGFkb3dPZmZzZXQ7CisgICAgICAg
IG5ld1N0YXRlLnNoYWRvd0JsdXIgPSBzaGFkb3dCbHVyOworICAgICAgICBuZXdTdGF0ZS5zaGFk
b3dDb2xvciA9IHNoYWRvd0NvbG9yOworICAgICAgICBzdGF0ZUNoYW5nZUZsYWdzLmFkZChHcmFw
aGljc0NvbnRleHRTdGF0ZTo6U2hhZG93Q2hhbmdlKTsKKyAgICB9CisgICAgaWYgKHNoYWRvd3NJ
Z25vcmVUcmFuc2Zvcm1zICE9IFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOjpVbnNwZWNpZmllZCAm
JiAoc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMgPT0gU2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6Olll
cykgIT0gbV9jdXJyZW50U2hhZG93c0lnbm9yZVRyYW5zZm9ybXMpIHsKKyAgICAgICAgbmV3U3Rh
dGUuc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMgPSAoc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMgPT0g
U2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6Olllcyk7CisgICAgICAgIHN0YXRlQ2hhbmdlRmxhZ3Mu
YWRkKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaGFkb3dzSWdub3JlVHJhbnNmb3Jtc0NoYW5nZSk7
CisgICAgfQorICAgIGlmIChzdGF0ZUNoYW5nZUZsYWdzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0
dXJuOworICAgIG1fb3duZXIudXBkYXRlU3RhdGUobmV3U3RhdGUsIHN0YXRlQ2hhbmdlRmxhZ3Mp
OworCisgICAgbV9jdXJyZW50U2hhZG93T2Zmc2V0ID0gc2hhZG93T2Zmc2V0OworICAgIG1fY3Vy
cmVudFNoYWRvd0JsdXIgPSBzaGFkb3dCbHVyOworICAgIG1fY3VycmVudFNoYWRvd0NvbG9yID0g
c2hhZG93Q29sb3I7CisgICAgbV9jdXJyZW50U2hhZG93c0lnbm9yZVRyYW5zZm9ybXMgPSAoc2hh
ZG93c0lnbm9yZVRyYW5zZm9ybXMgPT0gU2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6Olllcyk7Cit9
CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVTaGFkb3coQ0dTdHlsZVJlZiBzdHls
ZSkKK3sKKyAgICBpZiAoQ0dTdHlsZUdldFR5cGUoc3R5bGUpICE9IGtDR1N0eWxlU2hhZG93KSB7
CisgICAgICAgIC8vIEZJWE1FOiBTdXBwb3J0IG1vcmUga2luZHMgb2YgQ0dTdHlsZXMuCisgICAg
ICAgIHVwZGF0ZVNoYWRvdyh7MCwgMH0sIDAsIENvbG9yKCksIFNoYWRvd3NJZ25vcmVUcmFuc2Zv
cm1zOjpVbnNwZWNpZmllZCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb25zdCBh
dXRvJiBzaGFkb3dTdHlsZSA9ICpzdGF0aWNfY2FzdDxjb25zdCBDR1NoYWRvd1N0eWxlKj4oQ0dT
dHlsZUdldERhdGEoc3R5bGUpKTsKKyAgICBhdXRvIHJhZCA9IGRlZzJyYWQoc2hhZG93U3R5bGUu
YXppbXV0aCAtIDE4MCk7CisgICAgYXV0byBzaGFkb3dPZmZzZXQgPSBGbG9hdFNpemUoc3RkOjpj
b3MocmFkKSwgc3RkOjpzaW4ocmFkKSkgKiBzaGFkb3dTdHlsZS5oZWlnaHQ7CisgICAgdXBkYXRl
U2hhZG93KHNoYWRvd09mZnNldCwgc2hhZG93U3R5bGUucmFkaXVzLCBDR1N0eWxlR2V0Q29sb3Io
c3R5bGUpLCBTaGFkb3dzSWdub3JlVHJhbnNmb3Jtczo6WWVzKTsKK30KKwordm9pZCBEcmF3R2x5
cGhzUmVjb3JkZXI6OnJlY29yZEJlZ2luTGF5ZXIoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3Rh
dGVSZWYgZ3N0YXRlLCBDR1JlY3QpCit7CisgICAgdXBkYXRlQ1RNKCpDR0dTdGF0ZUdldENUTShn
c3RhdGUpKTsKKyAgICBhdXRvIGFscGhhID0gQ0dHU3RhdGVHZXRBbHBoYShnc3RhdGUpOworICAg
IG1fb3duZXIuYmVnaW5UcmFuc3BhcmVuY3lMYXllcihhbHBoYSk7Cit9CisKK3ZvaWQgRHJhd0ds
eXBoc1JlY29yZGVyOjpyZWNvcmRFbmRMYXllcihDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0
ZVJlZiBnc3RhdGUpCit7CisgICAgdXBkYXRlQ1RNKCpDR0dTdGF0ZUdldENUTShnc3RhdGUpKTsK
KyAgICBtX293bmVyLmVuZFRyYW5zcGFyZW5jeUxheWVyKCk7Cit9CisKK3N0YXRpYyBWZWN0b3I8
Q0dTaXplPiBjb21wdXRlQWR2YW5jZXNGcm9tUG9zaXRpb25zKGNvbnN0IENHUG9pbnQgcG9zaXRp
b25zW10sIHNpemVfdCBjb3VudCwgY29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0mIHRleHRNYXRyaXgp
Cit7CisgICAgVmVjdG9yPENHU2l6ZT4gcmVzdWx0OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgY291bnQgLSAxOyArK2kpIHsKKyAgICAgICAgYXV0byBuZXh0UG9zaXRpb24gPSBwb3NpdGlv
bnNbaSArIDFdOworICAgICAgICBhdXRvIGN1cnJlbnRQb3NpdGlvbiA9IHBvc2l0aW9uc1tpXTsK
KyAgICAgICAgYXV0byBhZHZhbmNlID0gQ0dTaXplTWFrZShuZXh0UG9zaXRpb24ueCAtIGN1cnJl
bnRQb3NpdGlvbi54LCBuZXh0UG9zaXRpb24ueSAtIGN1cnJlbnRQb3NpdGlvbi55KTsKKyAgICAg
ICAgcmVzdWx0LmFwcGVuZChDR1NpemVBcHBseUFmZmluZVRyYW5zZm9ybShhZHZhbmNlLCB0ZXh0
TWF0cml4KSk7CisgICAgfQorICAgIHJlc3VsdC5jb25zdHJ1Y3RBbmRBcHBlbmQoQ0dTaXplTWFr
ZSgwLCAwKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3Jk
ZXI6OnJlY29yZERyYXdHbHlwaHMoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYgZ3N0
YXRlLCBjb25zdCBDR0FmZmluZVRyYW5zZm9ybSosIGNvbnN0IENHR2x5cGggZ2x5cGhzW10sIGNv
bnN0IENHUG9pbnQgcG9zaXRpb25zW10sIHNpemVfdCBjb3VudCkKK3sKKyAgICBpZiAoIWNvdW50
KQorICAgICAgICByZXR1cm47CisKKyAgICBDR0ZvbnRSZWYgdXNlZEZvbnQgPSBDR0dTdGF0ZUdl
dEZvbnQoZ3N0YXRlKTsKKyAgICBpZiAodXNlZEZvbnQgIT0gYWRvcHRDRihDVEZvbnRDb3B5R3Jh
cGhpY3NGb250KG1fY3VycmVudEZvbnQtPnBsYXRmb3JtRGF0YSgpLmN0Rm9udCgpLCBudWxscHRy
KSkuZ2V0KCkpCisgICAgICAgIHJldHVybjsKKworI2lmIEFTU0VSVF9FTkFCTEVECisgICAgYXV0
byB0ZXh0UG9zaXRpb24gPSBDR0NvbnRleHRHZXRUZXh0UG9zaXRpb24obV9pbnRlcm5hbENvbnRl
eHQucGxhdGZvcm1Db250ZXh0KCkpOworICAgIEFTU0VSVCghdGV4dFBvc2l0aW9uLngpOworICAg
IEFTU0VSVCghdGV4dFBvc2l0aW9uLnkpOworI2VuZGlmCisKKyAgICB1cGRhdGVDVE0oKkNHR1N0
YXRlR2V0Q1RNKGdzdGF0ZSkpOworCisgICAgLy8gV2Ugd2FudCB0aGUgR1BVIHByb2Nlc3MncyBD
VE0gYW5kIHRleHQgbWF0cml4IHRvIG1hdGNoIHRoZSBjdXJyZW50IENUTSBhbmQgdGV4dCBtYXRy
aXguCisgICAgLy8gVGhlIGN1cnJlbnQgdGV4dCBtYXRyaXggaXMgYSBjb25jYXRlbmF0aW9uIG9m
IHdoYXRldmVyIFdlYktpdCBzZXRzIGl0IHRvIGFuZCB3aGF0ZXZlcgorICAgIC8vIENvcmUgVGV4
dCBhcHBlbmRzIHRvIGl0LiBTbywgcmlnaHQgbm93IHdlIGhhdmUKKyAgICAvLyBDVE0gKiBtX29y
aWdpbmFsVGV4dE1hdHJpeCAqIENvcmUgVGV4dCdzIHRleHQgbWF0cml4LgorICAgIC8vIEhvd2V2
ZXIsIENHQ29udGV4dEdldFRleHRNYXRyaXgoKSBqdXN0IHRlbGxzIHVzIHdoYXQgdGhlIHdob2xl
IHRleHQgbWF0cml4IGlzLCBzbworICAgIC8vIG1fb3JpZ2luYWxUZXh0TWF0cml4ICogQ29yZSBU
ZXh0J3MgdGV4dCBtYXRyaXggPSBjdXJyZW50VGV4dE1hdHJpeC4KKyAgICAvLyBUaGUgb25seSB3
YXkgd2UgY2FuIGVtdWxhdGUgQ29yZSBUZXh0J3MgdGV4dCBtYXRyaXggaXMgYnkgbW9kaWZ5aW5n
IHRoZSBDVE0gaGVyZS4KKyAgICAvLyBTbywgaWYgd2UgZG8gdGhhdCwgdGhlIEdQVSBwcm9jZXNz
IHdpbGwgaGF2ZQorICAgIC8vIENUTSAqIFggKiBtX29yaWdpbmFsVGV4dE1hdHJpeAorICAgIC8v
IElmIHlvdSBzZXQgdGhlc2UgdHdvIGVxdWFsIHRvIGVhY2ggb3RoZXIsIGFuZCBzb2x2ZSBmb3Ig
WCwgeW91IGdldAorICAgIC8vIENUTSAqIGN1cnJlbnRUZXh0TWF0cml4ID0gQ1RNICogWCAqIG1f
b3JpZ2luYWxUZXh0TWF0cml4CisgICAgLy8gY3VycmVudFRleHRNYXRyaXggKiBpbnZlcnNlKG1f
b3JpZ2luYWxUZXh0TWF0cml4KSA9IFgKKyAgICBBZmZpbmVUcmFuc2Zvcm0gY3VycmVudFRleHRN
YXRyaXggPSBDR0NvbnRleHRHZXRUZXh0TWF0cml4KG1faW50ZXJuYWxDb250ZXh0LnBsYXRmb3Jt
Q29udGV4dCgpKTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gY3RtRml4dXA7CisgICAgaWYgKGF1dG8g
aW52ZXJ0ZWRPcmlnaW5hbFRleHRNYXRyaXggPSBtX29yaWdpbmFsVGV4dE1hdHJpeC5pbnZlcnNl
KCkpCisgICAgICAgIGN0bUZpeHVwID0gY3VycmVudFRleHRNYXRyaXggKiBpbnZlcnRlZE9yaWdp
bmFsVGV4dE1hdHJpeC52YWx1ZSgpOworICAgIEFmZmluZVRyYW5zZm9ybSBpbnZlcnNlQ1RNRml4
dXA7CisgICAgaWYgKGF1dG8gaW52ZXJzZSA9IGN0bUZpeHVwLmludmVyc2UoKSkKKyAgICAgICAg
aW52ZXJzZUNUTUZpeHVwID0gaW52ZXJzZS52YWx1ZSgpOworICAgIGVsc2UKKyAgICAgICAgY3Rt
Rml4dXAgPSBBZmZpbmVUcmFuc2Zvcm0oKTsKKyAgICBtX293bmVyLmNvbmNhdENUTShjdG1GaXh1
cCk7CisKKyAgICB1cGRhdGVGaWxsQ29sb3IoQ0dHU3RhdGVHZXRGaWxsQ29sb3IoZ3N0YXRlKSk7
CisgICAgdXBkYXRlU3Ryb2tlQ29sb3IoQ0dHU3RhdGVHZXRTdHJva2VDb2xvcihnc3RhdGUpKTsK
KyAgICB1cGRhdGVTaGFkb3coQ0dHU3RhdGVHZXRTdHlsZShnc3RhdGUpKTsKKworICAgIG1fb3du
ZXIuYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChEcmF3R2x5cGhzOjpjcmVhdGUoKm1fY3VycmVu
dEZvbnQsIGdseXBocywgY29tcHV0ZUFkdmFuY2VzRnJvbVBvc2l0aW9ucyhwb3NpdGlvbnMsIGNv
dW50LCBjdXJyZW50VGV4dE1hdHJpeCkuZGF0YSgpLCBjb3VudCwgY3VycmVudFRleHRNYXRyaXgu
bWFwUG9pbnQocG9zaXRpb25zWzBdKSwgbV9zbW9vdGhpbmdNb2RlKSk7CisKKyAgICBtX293bmVy
LmNvbmNhdENUTShpbnZlcnNlQ1RNRml4dXApOworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRl
cjo6cmVjb3JkRHJhd0ltYWdlKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmIGdzdGF0
ZSwgQ0dSZWN0IHJlY3QsIENHSW1hZ2VSZWYgY2dJbWFnZSkKK3sKKyAgICB1cGRhdGVDVE0oKkNH
R1N0YXRlR2V0Q1RNKGdzdGF0ZSkpOworICAgIHVwZGF0ZVNoYWRvdyhDR0dTdGF0ZUdldFN0eWxl
KGdzdGF0ZSkpOworCisgICAgLy8gQ29yZSBHcmFwaGljcyBhc3N1bWVzIGEgInkgdXAiIGNvb3Jk
aW5hdGUgc3lzdGVtLCBidXQgaW4gV2ViS2l0LCB3ZSB1c2UgYSAieS1kb3duIiBjb29yZGluYXRl
IHN5c3RlbS4KKyAgICAvLyBUaGlzIG1lYW5zIHRoYXQgV2ViS2l0J3MgZHJhd2luZyByb3V0aW5l
cyAoR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoKSkgaW50ZW50aW9uYWxseSBkcmF3IGltYWdl
cyB1cHNpZGUtZG93biBmcm9tIENvcmUgR3JhcGhpY3MncyBwb2ludCBvZiB2aWV3LgorICAgIC8v
IChUaGVyZSdzIGEgeS1mbGlwIGluc2lkZSB0aGUgaW1wbGVtZW50YXRpb24gb2YgR3JhcGhpY3ND
b250ZXh0OjpkcmF3SW1hZ2UoKS4pCisgICAgLy8gVGhlIHJlY3QgaGFzIHRoZSByaWdodCBib3Vu
ZHMsIGJ1dCB3ZSBuZWVkIHRvIHRyYW5zZm9ybSBmcm9tIENHJ3MgY29vcmRpbmF0ZSBzeXN0ZW0g
dG8gV2ViS2l0J3MgYnkgcGVyZm9ybWluZyBvdXIgb3duIHktZmxpcCBzbyBpbWFnZXMgYXJlIGRy
YXduIHRoZSByaWdodC1zaWRlLXVwLgorICAgIC8vIFdlIGRvIHRoaXMgYXQgdGhlIGJvdW5kYXJ5
IGJldHdlZW4gdGhlIHR3byBBUElzLCB3aGljaCBpcyByaWdodCBoZXJlLgorICAgIG1fb3duZXIu
dHJhbnNsYXRlKDAsIHJlY3Quc2l6ZS5oZWlnaHQgKyAyICogcmVjdC5vcmlnaW4ueSk7CisgICAg
bV9vd25lci5zY2FsZShGbG9hdFNpemUoMSwgLTEpKTsKKworICAgIGF1dG8gaW1hZ2UgPSBCaXRt
YXBJbWFnZTo6Y3JlYXRlKGNnSW1hZ2UpOworICAgIG1fb3duZXIuYXBwZW5kSXRlbUFuZFVwZGF0
ZUV4dGVudChEcmF3SW1hZ2U6OmNyZWF0ZShpbWFnZSwgcmVjdCwge3sgfSwgaW1hZ2UtPnNpemUo
KX0sIHsgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luVG9wTGVmdCB9KSk7CisKKyAgICAvLyBVbmRv
IHRoZSBhYm92ZSB5LWZsaXAgdG8gcmVzdG9yZSB0aGUgY29udGV4dC4KKyAgICBtX293bmVyLnNj
YWxlKEZsb2F0U2l6ZSgxLCAtMSkpOworICAgIG1fb3duZXIudHJhbnNsYXRlKDAsIC0ocmVjdC5z
aXplLmhlaWdodCArIDIgKiByZWN0Lm9yaWdpbi55KSk7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1Jl
Y29yZGVyOjpkcmF3R2x5cGhzKGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IEdseXBoQnVmZmVyJiBn
bHlwaEJ1ZmZlciwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbnVtR2x5cGhzLCBjb25zdCBGbG9h
dFBvaW50JiBzdGFydFBvaW50LCBGb250U21vb3RoaW5nTW9kZSBzbW9vdGhpbmdNb2RlKQorewor
ICAgIHByZXBhcmVJbnRlcm5hbENvbnRleHQoZm9udCwgc21vb3RoaW5nTW9kZSk7CisgICAgRm9u
dENhc2NhZGU6OmRyYXdHbHlwaHMobV9pbnRlcm5hbENvbnRleHQsIGZvbnQsIGdseXBoQnVmZmVy
LCBmcm9tLCBudW1HbHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGluZ01vZGUpOworICAgIGNvbmNs
dWRlSW50ZXJuYWxDb250ZXh0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIERpc3BsYXlMaXN0CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckhh
cmZCdXp6LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
M2FjMzI0YjdiMDBhOWUxNmE1NmFkNjcwY2UwNGNmYTc3ZmM5ZmE4Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0RHJhd0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCIKKworI2luY2x1
ZGUgIkRpc3BsYXlMaXN0SXRlbXMuaCIKKyNpbmNsdWRlICJEaXNwbGF5TGlzdFJlY29yZGVyLmgi
CisjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgorI2luY2x1ZGUgIkZvbnQuaCIKKyNpbmNsdWRlICJH
bHlwaEJ1ZmZlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK25hbWVzcGFjZSBEaXNwbGF5
TGlzdCB7CisKK0RyYXdHbHlwaHNSZWNvcmRlcjo6RHJhd0dseXBoc1JlY29yZGVyKFJlY29yZGVy
JiBvd25lcikKKyAgICA6IG1fb3duZXIob3duZXIpCit7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1Jl
Y29yZGVyOjpkcmF3R2x5cGhzKGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IEdseXBoQnVmZmVyJiBn
bHlwaEJ1ZmZlciwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbnVtR2x5cGhzLCBjb25zdCBGbG9h
dFBvaW50JiBzdGFydFBvaW50LCBGb250U21vb3RoaW5nTW9kZSBzbW9vdGhpbmdNb2RlKQorewor
ICAgIG1fb3duZXIuYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChEcmF3R2x5cGhzOjpjcmVhdGUo
Zm9udCwgZ2x5cGhCdWZmZXIuZ2x5cGhzKGZyb20pLCBnbHlwaEJ1ZmZlci5hZHZhbmNlcyhmcm9t
KSwgbnVtR2x5cGhzLCBzdGFydFBvaW50LCBzbW9vdGhpbmdNb2RlKSk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIERpc3BsYXlMaXN0CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dFJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAppbmRleCA2OGQyZjY4MDUxNWVhZTU1OGEwZDRm
YmVmNmFiMWEyN2UwYTA5ZWI0Li4yNmU3YzJmOTA5NDljNTZmYjNlNzEzNGRhOTY1OTFjZWZkMDMz
Yjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCkBAIC00MSw2
ICs0MSw3IEBAIFJlY29yZGVyOjpSZWNvcmRlcihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIERp
c3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgY29uc3QgR3JhCiAgICAgOiBHcmFwaGljc0NvbnRleHRJ
bXBsKGNvbnRleHQsIGluaXRpYWxDbGlwLCBBZmZpbmVUcmFuc2Zvcm0oKSkKICAgICAsIG1fZGlz
cGxheUxpc3QoZGlzcGxheUxpc3QpCiAgICAgLCBtX29ic2VydmVyKG9ic2VydmVyKQorICAgICwg
bV9kcmF3R2x5cGhzUmVjb3JkZXIoKnRoaXMpCiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKERpc3Bs
YXlMaXN0cywgc3RyZWFtIDw8ICJcblJlY29yZGluZyB3aXRoIGNsaXAgIiA8PCBpbml0aWFsQ2xp
cCk7CiAgICAgbV9zdGF0ZVN0YWNrLmFwcGVuZCh7IHN0YXRlLCBpbml0aWFsQ1RNLCBpbml0aWFs
Q2xpcCB9KTsKQEAgLTE0NSw3ICsxNDYsNyBAQCB2b2lkIFJlY29yZGVyOjpzZXRNaXRlckxpbWl0
KGZsb2F0IG1pdGVyTGltaXQpCiAKIHZvaWQgUmVjb3JkZXI6OmRyYXdHbHlwaHMoY29uc3QgRm9u
dCYgZm9udCwgY29uc3QgR2x5cGhCdWZmZXImIGdseXBoQnVmZmVyLCB1bnNpZ25lZCBmcm9tLCB1
bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmIHN0YXJ0UG9pbnQsIEZvbnRTbW9v
dGhpbmdNb2RlIHNtb290aGluZ01vZGUpCiB7Ci0gICAgYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVu
dChEcmF3R2x5cGhzOjpjcmVhdGUoZm9udCwgZ2x5cGhCdWZmZXIuZ2x5cGhzKGZyb20pLCBnbHlw
aEJ1ZmZlci5hZHZhbmNlcyhmcm9tKSwgbnVtR2x5cGhzLCBzdGFydFBvaW50LCBzbW9vdGhpbmdN
b2RlKSk7CisgICAgbV9kcmF3R2x5cGhzUmVjb3JkZXIuZHJhd0dseXBocyhmb250LCBnbHlwaEJ1
ZmZlciwgZnJvbSwgbnVtR2x5cGhzLCBzdGFydFBvaW50LCBzbW9vdGhpbmdNb2RlKTsKIH0KIAog
SW1hZ2VEcmF3UmVzdWx0IFJlY29yZGVyOjpkcmF3SW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1h
Z2VQYWludGluZ09wdGlvbnMmIGltYWdlUGFpbnRpbmdPcHRpb25zKQpAQCAtMjE2LDYgKzIxNyw5
IEBAIHZvaWQgUmVjb3JkZXI6OnNjYWxlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSkKIAogdm9pZCBS
ZWNvcmRlcjo6Y29uY2F0Q1RNKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtKQogewor
ICAgIGlmICh0cmFuc2Zvcm0uaXNJZGVudGl0eSgpKQorICAgICAgICByZXR1cm47CisKICAgICBj
dXJyZW50U3RhdGUoKS5jb25jYXRDVE0odHJhbnNmb3JtKTsKICAgICBhcHBlbmRJdGVtKENvbmNh
dGVuYXRlQ1RNOjpjcmVhdGUodHJhbnNmb3JtKSk7CiB9CkBAIC0zODksNyArMzkzLDE3IEBAIHZv
aWQgUmVjb3JkZXI6OmNsaXBUb0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRS
ZWN0JikKIAogdm9pZCBSZWNvcmRlcjo6Y2xpcFRvRHJhd2luZ0NvbW1hbmRzKGNvbnN0IEZsb2F0
UmVjdCYgZGVzdGluYXRpb24sIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgRnVuY3Rpb248dm9pZChH
cmFwaGljc0NvbnRleHQmKT4mJiBkcmF3aW5nRnVuY3Rpb24pCiB7Ci0gICAgYXV0byByZWNvcmRp
bmdDb250ZXh0ID0gbWFrZVVuaXF1ZTxEcmF3aW5nQ29udGV4dD4oZGVzdGluYXRpb24uc2l6ZSgp
KTsKKyAgICAvLyBUaGUgaW5pdGlhbCBDVE0gbWF0Y2hlcyBJbWFnZUJ1ZmZlcidzIGluaXRpYWwg
Q1RNLgorICAgIEFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0gPSBnZXRDVE0oR3JhcGhpY3NDb250
ZXh0OjpEZWZpbml0ZWx5SW5jbHVkZURldmljZVNjYWxlKTsKKyAgICBGbG9hdFNpemUgc2NhbGVG
YWN0b3IodHJhbnNmb3JtLnhTY2FsZSgpLCB0cmFuc2Zvcm0ueVNjYWxlKCkpOworICAgIGF1dG8g
c2NhbGVkU2l6ZSA9IGV4cGFuZGVkSW50U2l6ZShkZXN0aW5hdGlvbi5zaXplKCkgKiBzY2FsZUZh
Y3Rvcik7CisKKyAgICBBZmZpbmVUcmFuc2Zvcm0gaW5pdGlhbENUTTsKKyAgICBpbml0aWFsQ1RN
LnNjYWxlKDEsIC0xKTsKKyAgICBpbml0aWFsQ1RNLnRyYW5zbGF0ZSgwLCAtc2NhbGVkU2l6ZS5o
ZWlnaHQoKSk7CisgICAgaW5pdGlhbENUTS5zY2FsZShzY2FsZWRTaXplIC8gZGVzdGluYXRpb24u
c2l6ZSgpKTsKKworICAgIGF1dG8gcmVjb3JkaW5nQ29udGV4dCA9IG1ha2VVbmlxdWU8RHJhd2lu
Z0NvbnRleHQ+KGRlc3RpbmF0aW9uLnNpemUoKSwgaW5pdGlhbENUTSk7CiAgICAgZHJhd2luZ0Z1
bmN0aW9uKHJlY29yZGluZ0NvbnRleHQtPmNvbnRleHQoKSk7CiAgICAgYXBwZW5kSXRlbShDbGlw
VG9EcmF3aW5nQ29tbWFuZHM6OmNyZWF0ZShkZXN0aW5hdGlvbiwgY29sb3JTcGFjZSwgcmVjb3Jk
aW5nQ29udGV4dC0+dGFrZURpc3BsYXlMaXN0KCkpKTsKIH0KQEAgLTQxOCwxMyArNDMyLDYgQEAg
dm9pZCBSZWNvcmRlcjo6YXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChSZWY8RHJhd2luZ0l0ZW0+
JiYgaXRlbSkKICAgICB1cGRhdGVJdGVtRXh0ZW50KG5ld0l0ZW0pOwogfQogCi10ZW1wbGF0ZTx0
eXBlbmFtZSBJdGVtVHlwZT4KLUl0ZW1UeXBlJiBSZWNvcmRlcjo6YXBwZW5kSXRlbShSZWY8SXRl
bVR5cGU+JiYgaXRlbSkKLXsKLSAgICB3aWxsQXBwZW5kSXRlbShpdGVtLmdldCgpKTsKLSAgICBy
ZXR1cm4gZG93bmNhc3Q8SXRlbVR5cGU+KG1fZGlzcGxheUxpc3QuYXBwZW5kKFdURk1vdmUoaXRl
bSkpKTsKLX0KLQogdm9pZCBSZWNvcmRlcjo6dXBkYXRlSXRlbUV4dGVudChEcmF3aW5nSXRlbSYg
aXRlbSkgY29uc3QKIHsKICAgICBpZiAoT3B0aW9uYWw8RmxvYXRSZWN0PiByZWN0ID0gaXRlbS5s
b2NhbEJvdW5kcyhncmFwaGljc0NvbnRleHQoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
UmVjb3JkZXIuaAppbmRleCAxYjI0YzI2YzY3Mjg4ZjgxNzI3M2EyZDJhZWYyYjRiYzk2ZTM1Yzc1
Li4wNDRkMTQwZWI1MGY5NzI0ODk3NzU0OTE2YWUyYzU4MWUwNTM5MTFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RS
ZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSAiRGlzcGxheUxpc3QuaCIKKyNpbmNsdWRlICJEaXNwbGF5TGlzdERyYXdH
bHlwaHNSZWNvcmRlci5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEltcGwuaCIKICNpbmNs
dWRlICJJbWFnZS5oIiAvLyBGb3IgSW1hZ2U6OlRpbGVSdWxlLgogI2luY2x1ZGUgIlRleHRGbGFn
cy5oIgpAQCAtNjEsOCArNjIsNiBAQCBwdWJsaWM6CiAKICAgICBzaXplX3QgaXRlbUNvdW50KCkg
Y29uc3QgeyByZXR1cm4gbV9kaXNwbGF5TGlzdC5pdGVtQ291bnQoKTsgfQogCi0gICAgdm9pZCBh
cHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KFJlZjxEcmF3aW5nSXRlbT4mJik7Ci0KICAgICBjbGFz
cyBPYnNlcnZlciB7CiAgICAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIH5PYnNlcnZlcigpIHsg
fQpAQCAtNzAsNiArNjksNyBAQCBwdWJsaWM6CiAgICAgfTsKIAogcHJpdmF0ZToKKyAgICBmcmll
bmQgY2xhc3MgRHJhd0dseXBoc1JlY29yZGVyOwogICAgIGJvb2wgaGFzUGxhdGZvcm1Db250ZXh0
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICBQbGF0Zm9ybUdyYXBoaWNz
Q29udGV4dCogcGxhdGZvcm1Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0
cjsgfQogCkBAIC0xNDgsNiArMTQ4LDcgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBJdGVtVHlwZT4KICAgICBJdGVtVHlwZSYgYXBwZW5kSXRlbShSZWY8SXRlbVR5cGU+JiYpOwog
ICAgIHZvaWQgd2lsbEFwcGVuZEl0ZW0oY29uc3QgSXRlbSYpOworICAgIHZvaWQgYXBwZW5kSXRl
bUFuZFVwZGF0ZUV4dGVudChSZWY8RHJhd2luZ0l0ZW0+JiYpOwogCiAgICAgRmxvYXRSZWN0IGV4
dGVudEZyb21Mb2NhbEJvdW5kcyhjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsKICAgICB2b2lkIHVw
ZGF0ZUl0ZW1FeHRlbnQoRHJhd2luZ0l0ZW0mKSBjb25zdDsKQEAgLTE5MCw4ICsxOTEsMTcgQEAg
cHJpdmF0ZToKICAgICBPYnNlcnZlciogbV9vYnNlcnZlcjsKIAogICAgIFZlY3RvcjxDb250ZXh0
U3RhdGUsIDMyPiBtX3N0YXRlU3RhY2s7CisKKyAgICBEcmF3R2x5cGhzUmVjb3JkZXIgbV9kcmF3
R2x5cGhzUmVjb3JkZXI7CiB9OwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBJdGVtVHlwZT4KK0l0ZW1U
eXBlJiBSZWNvcmRlcjo6YXBwZW5kSXRlbShSZWY8SXRlbVR5cGU+JiYgaXRlbSkKK3sKKyAgICB3
aWxsQXBwZW5kSXRlbShpdGVtLmdldCgpKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8SXRlbVR5cGU+
KG1fZGlzcGxheUxpc3QuYXBwZW5kKFdURk1vdmUoaXRlbSkpKTsKK30KKwogfQogfQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFzLUNPTFItZXhwZWN0ZWQuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jYW52YXMtQ09MUi1leHBlY3RlZC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmMxY2IxODcwMGY3NjBjZTVhMDYxNDBlYTU4Mzg0NmU2MDU5MjgzNDUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFzLUNPTFItZXhwZWN0ZWQuaHRtbApA
QCAtMCwwICsxLDU0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+
CitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogIldlYkZvbnQiOworICAgIHNyYzogdXJs
KCJyZXNvdXJjZXMvQWhlbS1DT0xSLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsKK30KKworYm9k
eSB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworfQorCisjb25lIHsKKyAgICBwb3NpdGlvbjog
YWJzb2x1dGU7CisgICAgbGVmdDogMTAwcHg7CisgICAgdG9wOiA0MHB4OworfQorCisjdHdvIHsK
KyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgbGVmdDogMzAwcHg7CisgICAgdG9wOiA0MHB4
OworICAgIGNvbG9yOiByZ2IoMjU1LCAwLCAyNTUpOworfQorCisjdGhyZWUgeworICAgIHBvc2l0
aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiAzMDBweDsKKyAgICB0b3A6IDQwcHg7CisgICAgY29s
b3I6IHJnYigwLCAyNTUsIDI1NSk7Cit9CisKKyNmb3VyIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1
dGU7CisgICAgbGVmdDogNTAwcHg7CisgICAgdG9wOiA0MHB4OworfQorCitkaXYgeworICAgIGZv
bnQ6IDIwMHB4ICJXZWJGb250IjsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgbGVmdDog
NDAwcHg7CisgICAgdG9wOiA0MHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRp
diBpZD0ib25lIj5CPC9kaXY+Cis8ZGl2IGlkPSJ0d28iPkI8L2Rpdj4KKzxkaXYgaWQ9InRocmVl
Ij4mI3g3RUI1OzwvZGl2PgorPGRpdiBpZD0iZm91ciI+QjwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZhcy1DT0xSLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFzLUNPTFIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YzIyMmRi
NDIxNDQ0MjM4MjMzOTI1YjE4NjY4MDRkMGI4NjRkMzE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZhcy1DT0xSLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorQGZvbnQtZmFjZSB7CisgICAg
Zm9udC1mYW1pbHk6ICJXZWJGb250IjsKKyAgICBzcmM6IHVybCgicmVzb3VyY2VzL0FoZW0tQ09M
Ui50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+
Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSI3NTAiIGhlaWdodD0iMzUwIiBzdHlsZT0id2lk
dGg6IDc1MHB4OyBoZWlnaHQ7IDM1MHB4OyI+PC9jYW52YXM+Cis8c2NyaXB0PgorbGV0IGZvbnQg
PSAiMjAwcHggJ1dlYkZvbnQnIjsKK2RvY3VtZW50LmZvbnRzLmxvYWQoZm9udCkudGhlbihmdW5j
dGlvbigpIHsKKyAgICBsZXQgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZh
cyIpOworICAgIGxldCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7CisgICAgY29u
dGV4dC5mb250ID0gZm9udDsKKyAgICBjb250ZXh0LmZpbGxUZXh0KCJCQUIiLCAxMDAsIDIwMCk7
Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC90ZXh0L3Jlc291cmNlcy9BaGVtLUNPTFIudHRmIGIvTGF5b3V0VGVzdHMvZmFzdC90
ZXh0L3Jlc291cmNlcy9BaGVtLUNPTFIudHRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyMjNhNTU0MzA2NTk5OTY4
NTExODBlOThiMTU0NTRmN2M0YjJkODYKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDIxODI4Cnpj
bWVIUDMzd0Qkd213eldkdl9wIzVQP0NoZ2RIWDZZQEdua1VgUGxzNDxveXYmKFRpT1Mpa00xclZ8
bm85Q1hCZQp6MFM2dVRRRHopbTl9YkVTNmBmSDVmcEl8ezVMclQwI3o2LWUyRWxQNSljYTJAPX1K
ZiNwM25FYmtNfnZqdEV6a00KemE8K1QheXtBc3lUb1E7Vmk1OFBZUTtJS35KV1V1d2xhUjk7Kk1R
PEZNVXc/bVFqcT17U0s1V3N2dlQ1OVU7bXMpCnpOQ3RkKU1PYHA5Pmg3NWIwbXEyIXpVcDgrTXJW
K2wkZ3ZSUiQ8XlUyc35rZ3BNU3lRNT5WSkRwQ3xKMmAlM0V1UQp6KGcmYkNQPWdHbyQ1c0clMkgt
KDhicSZxXjlBWG1TVytMMHthSV8tMGNFIyNtTTEhe3lpSjVpNT05dGlyQGVmMEYKemt8VipvKEF3
Yn1gdkkxVGhPZFo0O3wmIyRUciFZbz5VdHN4ZD1nOTcxNkx9RWduWmx3QSt3S35GWEFxMDxxOWVJ
CnpCTCRFb1o1TmkzOWFZemZIdl8meWRrUHlVTjAxblM0Vm5ENm19cGZwJHJEdW93fktPJVdqZGVh
PEJCOUpnK0xfSgp6Q01FZnBsWW0+MjBUSj1WQ3tUemk2P2YoQG0yNVdYUn5RWXpOdXl+OVR9PTx1
QmxIe2tFaj4hVnFtfWQrSngpKjEKemxrXmxsUDUoaXc9byRKd0p4a0JnOGhXMW9saClEO15kaH1Q
PiohXkFoNWtUKXEqdilSZFl2fVZNdFh4YihQcjkwCnpmMSk/KDlva0NvKHRHcjArRDY7eTFLTDMh
KGt9RyQ5JWBZeilKaC1HJE1neTlxcmNGbl5qRiRYcFY4bXcwRFZEIQp6ciRoNylJIXNeRTVqc2o9
KExaNGctX1c7b2pOMGZwRE1HZHxVMSUyVzZnUEAqaD9+V287eDJLd3hKT3pwSnUwbn4KejkrJWNo
ZjBQfXZTNUFfWDx5NSghKytSTFImWDktNWV0RVE5bEFlKTFCdHkoX1djMThQJD5eMlFGUWIzUFNz
Q1lLCnpPdzcxRUJiMEc/QERATSRvbj0lZW1BVDY8RXhXYUJgUDZ3Kz4hdWdZYGU0P3NpX1dlZEhn
YGxnRkU7UCRIT3Q7VAp6QnAmRGZWK3t7ZWIrX1dBeD9CQShiK144Zz8ldlhNX3I2SllKNVE+KyZz
RShXPl8mSXJ3ZC0hME5xME5DKDQ4b3wKeldnbTNjVGtaP3A0VWxEM2NjVl9LeVVQRVQ/dWQxI2U0
PjE7ZTRgdnVUOXIyQ0dkZUByMTktM1VzZDdPMTlNRmc0CnpQfktIYFF5Km9VdlF2M1NgNVA9Wk4l
PXQ4Z1ZFKGZpZ1dpVkExT1BPMmJCJVYxODh8YWEoM2FsT0Y1YDRTOVU4Twp6RHNMIURrJHcoIXdr
ZnhPLWFjaWVhKzdqe2EtKThLTj07d2lldCQ+ZF5iLUM0NyUoblRleFkyYXRPdGNobHh2aVEKeiU0
fXQ5K1pTeXwrWVlwfnc2KFZGWHhyMkZsZVRFdnl0V2E/LWZ2NTdKPEB1KF5+PTNWPnVhcWBUMz5F
bSpaTlpICnorU1hPQURfYkFoYHw5NE9UUnZgaXZ0QGhCd3dCY2BIP19SZ3ZaZHZmbVBjRHxabjxJ
NGNlQDV7Sl5ycmtTPmFqUgp6PlRnIyt3Ui07UUReQCtZPmZXYX1LYXV+JEBXJjZ8YGA1Y2FUZlRH
WWlmYj5BaiFwaSVAUmQ0KFZSK1d4X3RKbncKekYzZzk/QncrTVBORy16REkxaDhCZ3FlX1hRX0Bv
Z3I+Q1NaNSlaY0JBc2pqR2xqTEtxaV5MKFViRVF6KXVodF99CnpOfCpLQD54O3NeUio5dHAlTVBy
dVY5ZntDb01eMkpibFI8ckBGRFBLbCUzdjNVQ31xRz97QyZoZjRYYCo9KiR5Kwp6dnt1VlV2d1Nx
bU4zKG8xJVNXPyhHfE5YantkX2JsPmU3VypWP35+PD0kalJSdzQkKDlCLSlDYHBMUzd+KHtEdT0K
em1QLTRAKiZIaU0oUEtzOFklTjtVWk9KQzM1TX0mamlGKVV6NEJXSjdsbGxeaFhoZTQ8WVY/Vk8j
cWA5c0dxenZXCnpeU3E8dm1pRl5rdTRraXsmRWU8ekp4XmpjZmdZYnlCVWhZQEtZWDlrX1ctRSUo
RiFAe0tPcWZ5X30wWXs2Nj47Ygp6VkE7VWAyT0hxPUVGOTdMUW4mIVh4NDJmfiFxaH5TeGJWa3Y4
aDx+cSUkdENaRFcmU2FianFZTEc/OFhmSVludDkKei05JmR8UHRofmpDQTA7KmZBKFFkJnZDJmte
YzRtUklsQD9Cdk1AKWU2NV8mUTtXcHR1VklfWGczOWt4bzMlaTg8CnohY2tFYWR4YF9aO2JLNTY3
Tj59cGlnVSMjQGo3dnRfPmxPZHhLYFhDejk7UyM0flhBTDR5aVp4SSpwVkBPQjE5Uwp6UWMjTFdT
NGxUWWNTJFJ4Um9EciVTPXVnckF7fjwyWTtJZWNaSl5DPmA/Mmsod3VAfCl3a3ZFYCtpdFBsVnwm
IUwKeitWJShBbzM7O2FwVzQyKGxSZTRhLSMqbHlYRF9tcyopT3J6KmM8S0YrVjhNR1YxTH5IeSMw
MGlSe0l8Tj1rfFgoCnpZPnBKaVMmbmxZZ151eCNYXnpWclZhSnRAPm05I3pKblZTZEB1SzRtJERi
Vl5JU3g5JGJHbj47b0VncTY9WHVVYQp6JlJOYjFYVXdfQ2Q5KDlaYDJFKVRkKj5fOEtSSV9lfEtk
RkNSOXJxK0tpM2RmdUlxZikxK0klLSl2Z0JESExseFQKel9xIWYqdCNRNVBkZEljZl5fbEF7eDh6
UUNwWG5hcUVed0UpckBEWFVwNjcwTUZMQkBMezxacmxfWTNaZz8pVGxUCno/bDBXbWRZcW5BUHI0
YDVHc1pLfkd0KlA8aUZ5YCNadH5waWBIa2xwJiYhQElvKTB8eEpwYj88X2o8ajN5QFMwdQp6LW0l
YHYtWnxiWFpgYH1zZHo8JEA/QEk0Oy1kRFlFZHZ8JkZkeW8xPVVyKmx2LSo4YGAraDRKN2l0a2Uy
VHdqeSMKekleUXppTCV0X3tZa2VEaEBBPnhuNCowJUZhd1BSbWw5TlV6alpUXlhZcilEU3FeWXx3
KmVwQShRPUNQRWd5Kz5LCnpabyhsV2dfXkUqTlRlUEQ/LTFsYWk4NGZvbWMmKiRtcER2TStvYFlV
KlY3SzxQdD88JTxRajJgcDd6cTlVVGdKcQp6NTFRNiVjUk4ye19zLVBRMEArZzQ5VSFQRGt+NExM
by1he0tZUE8hWHEwVHJ4WjZ7eDlzaClOcWYwfn41VjQlIz4KeihfWlM7cDYpQHpRKX40NldZa30j
ciZCPWRFPE4xfmA0MiErIUdedHYhbEJmTV4peiZud3AzMztDdSNUU1kzTDtGCnpjWH1FK04hejVT
cF84PCZkS3gtTytwbmpnbGU5eTY4YWYldW8ofEszUEtHWWopNSt1LWBuSH08cCZtb0c+Ki0jfAp6
LSR5ZzNoQyhEJGtAfkRkc3RSKkpnY15gNE1AZCtQc3dvYiowY3BOI0VuP0omOGV5dVgzZ2xMenRk
ND8hQkE4OE4Kej48eHxKSntOV0JrcnppZipLNUY/djF7MEJQQG1+PVROJH1nNnstaS0zWiQhJVEl
ZWd9P3oqUVhxaD1Gb2hDbjl7CnomVDEoSlR2MTQyYTJpKUpSR31ue1JHaUxqRlZTUVR0MT5wQkpP
WXxCNiQ0WDk8KmIoR3Q4SSZjdU1SKGheTlcjTgp6NH5SS3VVYzt6ZXVlYWJqR1NWXnBTVHteQEc7
KFNuVExiYiZReDw7UXE4dWZlWHgpKC1PUC0qVzM4KUBpYVNQVTgKejItc1BrSUM1QXMlKjlCXiZ3
NktHdm5VJWx7ZGhMMmJ5KHRSbCFqR31HUGchUVBnNkA4UlppK0A3OWlIMik7cUZfCnpCX0RWYWM0
NCZadUJLNmJHSjllXngjeVY9PTlYPE1oRyEtNiVJUWtuWENTOWlnLWNQbDIwVXAhJU5tV1NgNF55
YAp6KXtvcCVZLXR5dXRRcX55eCg9JiNHJl5OMDRGZjtoMGMoc2N0cUItd1JoWHNpJSEhUUorIzgw
aWF2dzNSMVAxT2cKej0yOUMwam9edX5GKCNJeTk/dVlaUGV2fjFXa1pBZkdoMThgKnlwUiNhQm10
bDMpfH0lYXZHeklicnNpcG8rWiNRCno9ZHs8Pz5NX0B2MjYrdDVMb0xtZzRKO2EwYWs+SV8hTTRo
akwocDBmbT5WRD8+KXU+eW1hPHdjazNuWFppRHc2dgp6bFNoTjUoK1pTbV9ScUw5SjJMb1dpPmla
ZUd6dmtxVi1LU2wmbkMyRGk+Xl58XjRKV2tfP2NyKCNfc3N4NXlEIUQKejttTEFwYGUoVSQleFR0
P241aV5lUmdqeDBiZC18MDtRbkpDbjcyZiYmYj8mbCUrTSFtcTRUYEtHWFFKZDgxWGFkCno5Tzha
JjNCUVV7MG80dyliZktPYnB3amwtMEAjYUl3fThnQz1ON2VORDVrPnArK3ZKbHQhfTlhTHBKM0My
VXtDYwp6JCk8Y3opb083JSpIbHRxIWooOzxQfHMrVWdIYVhHVFhETGVMJishO1IwMTReWSRhNkVV
WGx4WmNfeWRgdjw+WEoKejs1JmhscCM7V1U4VjdvYm4jR1haZkxNPCNvazVTRzFQIWU7ITN+IWRi
IXVET3A+MENIK303TW40NEpqVHUoe3tfCno7RyFkNkVOX0FAbWRWVUBVSSN3Mko3SChvajl1ZDwo
VnBTWDxxMztuUFA2ZWRzNTR+ZG8jNnk7NDRIWGoqc0tTfQp6SHFPTCo0bWVMKDlHMzw8Tlh+R2Np
RlV4JCZzQDgtMTI2Z0wrWFF2aXEyRlcpZEVtc0REY04+NElBTzZHb1VqIyEKel5HIUMjYUd9WTE3
JmNwQks0Y0E7cXxATXAmR1A4VExtZmwmYEtWb0Q7IWxHVStRfjsqd3JTKUEwT3kjcjYjeUBjCnoo
WkUqIz5DRSY7cD4+SWdVYTJhKkY7ezMlUEtVTG8+c2lre2l5Q3VPUzJKTjheSG0qWUNUKGByKSZe
YzNIUSZmKwp6KzVQT3M5ISFSUTRiJGZ7S01od3NuPTtfJF5eYml5bz1NOXcqWVpsJC1FMkJXI1M+
SFVYfUROQjhtPWtyU2E/bjAKel5AZT5BUEhEYW08MkAwNyQyQyZKenVBUHA3YEFYU3sya2tPTVp3
R2c8N2ImOHU+RXAlRWo2I1dhYTl4QStPQTIqCnpHeCt6e2w7TFojbXNnOCpQdCE1YCVCTT1kNmt+
eGBpTFFBdHswJlhkWDVXUDY5MWtrSVdeKFZFVyNWfj5YVTNEYAp6PFVTMDs0ITgkVCNMUndEY2JJ
ZCMhRiohaHBOTSR8dGRLcE41YyleKyUwP282R0hROTxQJjBKSHk0Sml2X0QkKmAKek9JSCQ9cUVH
bTM9VHhjWXBDVlBtWFZaTUV0fCg2alNJd3RQSCprdHsqPmBLIT9YN0Rxdi1qMH45fnh0Pl5aZHxS
Cnp0TChXfmJ4VVU9WT0/RTtKKU5SY2wheGBsLWxGRjFiKyQpaW9NfUZ4RzB3V1AmdkV+UENYZGdx
ZFROc0R4JD9VJAp6ZHlESy1ZajRqZCgkUUFQQTdiWHtEM0xMOSVtcyhzZjcpQTFWb3Z2Qzx2UkpP
P29QSUBIUH02IWxKN31wMCg4ZnQKemRtYzFncD15elJjJUVyd1QpZjVeQmMpaT9GYU1fPmB4S2gq
c21hRTNnbDRAcCY7ITJ7RjJJd21MJkwqd0hrYH16CnoybHUxKT9zP0pgWlNEeHVpVzdqWmxZe0dq
aWB1RXtVP3liWGsqdmpXJSheaDxwTSk7Pm94QzJCdnJUPylKelR4VQp6cXo4Vko4MyN8VHZtWEFa
bHJxdE89NkZnSVI+dm16T0hKdEkzT3UhX055aj84JUZveTk3JldxQj9iR3FnIVZJTUsKektTeCRM
XjF2JHdtdElJeVhieiVUV2kpfDJHaXBMfFFCOX4kdThLdyk8bm1CQjhtVyVVNE48dVAxK204UmFC
WVFMCno4TGJQfU1sJDZ8NXFXTjdlUW10NXd4WGRuOGJQKDFVO3wzIU5WR3cmNF4+Mn5CZWVAVXdV
VlB2a3grZlNyWnklPQp6c35CbEtCdjtqakwtQkp9M1JUZj9JTkRTanNne2ZETCYxakhgNjBQRFQz
NSUmRkFtajU8O3FZK0k5UUtAWGhhVWkKelYmVTNRZTYoRUMmPTREKWxAJChfJDFeTVJXKSloaSV4
SGFlN0krUnQ7LVByZjAtelkjNmE/MCs+YFpARlY+fk15CnpzdCQlTHFMbT8qZDBNRXQ1IWgjZUtn
T1MobmVTSjEhRFolNWhJTmB2Ty0tM2l4Zk0pQyYjNFR9TX4rSWpjPjQ0Iwp6UiUxTFhoISRESjdm
eldvc2NlR0JNMmVIYHVAKW5+cSh2WmpxX1VyOyNnTiNhV25WR3oqM1lCMWA8Tmp8SHpyfEIKelRr
JU9OSzU0Y21EP1p1VFhFRVk8UigjVG1QZz9Pd0Q/VncoQyQtcVI3TFQ7emxaa0koUih3KjZFXzQr
PT49PDlQCno7KiVYP2lCXjJsaWNneTNQZ1o9Z3ZscUBZTSVVNGA2WFMraldac0hUbyoxJDJUN3k9
NlFkYDQrKmw0SH5wWD9aVwp6ezZDNk1CSTJ3P0V+ZzxmUjt9KU47Y3ZTfXU2Q2p6d25IamNWZHJs
YmU/bDV8RFQrOX5Qe05LKEoyYE4rbUo2cFMKemRpbXJ3Pj8hUHReUzRyezd4aE4jSzlxKE45USNy
fj5RNnRTMGR5dnZNUTNCNE49Tml9QWtJITRqTUU4K0JKd18qCnpNai1abkYxfTc+QkEmYFNHamh9
fjxOUVVQY2NGfkpIez55Tjl7cmVwTFN5TkNAWEJ2bENGKGNKM0R9YzdpR0U3fAp6TXc3QTJ0NHhp
PlBOaXZ4KlVtc2hlLT5SdHZre3hVbUBjN3pyJVVOKWJReFdhKmxqcj8hMGQ1Vks/NUErcE5sVUEK
elZNS0hKeUcwQjtwbV50MzE5VVNWKGMpKDhkfEUoUFZiQWotb1RkMTQ5TXlPWXtlckhlQzNIUkFo
PChzRSg9QnV4CnotQStxczhUfUh3cUpLcFgobkk+V2ZxZCNCcFNFYjZ3V3l1Ml8jJD5xenV3X0Ej
a2M1ZntZMXQwSkRqTXZ2KHVUMQp6ZTIoSmhgYm1saEpEO1R9KmFXK0puJlY0Mj1rWVE2SFFpNkVh
a0Fyal4/YnEmYlM9KHR5YURHdlpkQXs4VHR+T2sKekojLSk0aSZHKSpxekM4QFQyNk9pZkI2ZUko
LUNKcjNKd3dscntFSVlmKFFHJGVMfEFaTCtCfGEzbkBZYHB8X0FLCnpeYnlqOEdxQiZncFVffFVr
dVgzd1EjZWFGVGFibHhBd3c3XzQ4bEl9QTtNNSRuNX1IKTxqRjNhLTVJT04kOztJZgp6e3laYSpG
SFcyeG01aVY0WT5kPkZqeFIwY1hPNz5XcWQjLT9YUCpBZCpQajlYSVpBJlA+Q2JXZSU9UD5JP3FG
NEkKelo2R0BrJGE4V2sqUHFRTGRFQDxsP085bD8henphU0sjQUhpWn5RMmdRaHMpekxAIXI0MEla
a2l0TkhvNGNgODBvCnpEJlRyKHVSYVU+VEQ/R1Z1OEpwNmtXPEx6cXEwbFhgdVBSZnMpWVhCQkRI
Pj9DYGFXU3Vxcyk+XztMQzRVKlJoZQpBQCZFdDsKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL2NhbnZhcy10ZXh0LXNiaXgt
ZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL2NhbnZhcy10ZXh0
LXNiaXgtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YjRiMjE0ZDU4N2Y3NGU3NzcwZjlhNzNh
ZjliNGM2ZWE2MWE0NDY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9jYW52YXMvY2FudmFzLXRleHQtc2JpeC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNDMgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK0Bmb250LWZhY2Ugewor
ICAgIGZvbnQtZmFtaWx5OiAiV2ViRm9udCI7CisgICAgc3JjOiB1cmwoInJlc291cmNlcy9BaGVt
LXNiaXgudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOworfQorCitib2R5IHsKKyAgICBwb3NpdGlv
bjogcmVsYXRpdmU7Cit9CisKK2ltZyB7CisgICAgaW1hZ2Utb3JpZW50YXRpb246IG5vbmU7Cit9
CisKKyNvbmUgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiAyMDBweDsKKyAg
ICB0b3A6IDQwcHg7Cit9CisKKyN0d28geworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBs
ZWZ0OiA2MDBweDsKKyAgICB0b3A6IDQ4cHg7Cit9CisKK2RpdiB7CisgICAgZm9udDogMjAwcHgg
IldlYkZvbnQiOworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiA0MDBweDsKKyAg
ICB0b3A6IDQwcHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8aW1nIGlkPSJvbmUi
IHNyYz0icmVzb3VyY2VzL2ltYWdlMS5qcGciPgorPGRpdj4mI3g3RUI1OzwvZGl2PgorPGltZyBp
ZD0idHdvIiBzcmM9InJlc291cmNlcy9pbWFnZTIuanBnIj4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL2NhbnZhcy10ZXh0LXNiaXgu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL2NhbnZhcy10ZXh0LXNiaXguaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kOTg2ZDE0NGM3YTBiMDc0ZmVlNTlhMDZhOTg0YWI5Y2VjOTU2YjNjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYW52YXMvY2FudmFzLXRl
eHQtc2JpeC5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzdHlsZT4KK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiAiV2ViRm9udCI7
CisgICAgc3JjOiB1cmwoInJlc291cmNlcy9BaGVtLXNiaXgudHRmIikgZm9ybWF0KCJ0cnVldHlw
ZSIpOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iY2FudmFzIiB3
aWR0aD0iNzc1IiBoZWlnaHQ9IjU1MCIgc3R5bGU9IndpZHRoOiA3NzVweDsgaGVpZ2h0OyA1NTBw
eDsiPjwvY2FudmFzPgorPHNjcmlwdD4KK2xldCBmb250ID0gIjIwMHB4ICdXZWJGb250JyI7Citk
b2N1bWVudC5mb250cy5sb2FkKGZvbnQpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgbGV0IGNhbnZh
cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKKyAgICBsZXQgY29udGV4dCA9
IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOworICAgIGNvbnRleHQuZm9udCA9IGZvbnQ7CisgICAg
Y29udGV4dC5maWxsVGV4dCgiQVx1N0VCNUIiLCAyMDAsIDIwMCk7Cit9KTsKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYW52
YXMvcmVzb3VyY2VzL0FoZW0tc2JpeC50dGYgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZh
cy9yZXNvdXJjZXMvQWhlbS1zYml4LnR0ZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40M2I2NjJlOTc5Mjk3ZjJiZmY3
MzZjOTlhMzBjMDg4ODFkYjM4Yjk0CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAzOTk3Mgp6Y21l
SWIyfFNmdSpEJGAlSVhHcjFpWll4fkRsKlN3JGthZHhDNmFqX2syeW57Rz8rel5QKUhJPSMlUnUx
czEldSUKekRSWDktJlZPSSRRMTFKPUA4XkJxPWx7T24/fHJ8fDwjKE5IP1ktQXRkIyR5bmIqKmRm
NFdJeDN3QlFXRGZQTEN9CnpmK0JlOXhnWiR4NCZKOU1vWGxMTTxNYy1YSz1BYFdQSFNVXmNMaUdq
NiN4YGNGbnhvS3FwdmxrP0tlZGopJk85dQp6aHBtO0ZXJFRnSjBzd0dqRmtRa0hNcXNKUUJ3PV84
aEl3cUFKYllMdyZ+eU43WDkwbGhuNF5uQFN6YldhMm1tYD0KejBZRDJsbmZiVilTUH1aWERHKHAk
WjAyTkR5dHslR2hGPGAlYDtNeSUtb3hWZDMycCMlRUNJai07bXolUV9fKXJ0CnowJnVoazBDZmRg
IThEPkcwWGR7cWhRMHpSTTNBMVNhdip9anoqcztBQmEhUDIwSiQzZzRzdVBwM2BKRk5VPzBGTwp6
NkVIWGVsbnNMZVJmRytUU081cXgyOEpMdkxgKmROZ19IbWp7NiNkITFqeHdkcG5oYXYwMUlUbVA3
bnhFei1eRVUKeihtKj02M29eaHhrT31VQ0Vic3RpZ0IqfHg5KWReVUZ+fG82cGIhKitWbyhCfWZL
cEhmb2BQcktJZH1uSGY+Kz0qCnpDPGhndzU+JGF8UHlebj0rTmNOYiEzWGRXZDsqX0FCV01DJkty
PzZzWkotQD1mS0pjX3pKaE97OH14dSkmPEZhIwp6Y1E2Mmt6JVVwQVc4ZW9FMk5QZnRPbzNASTE3
XlYtX3pDOTBCM0peO2ZQZk40PjdqZzMoZFlfdkNBdTJqZl5KMigKenExIVJuRnpKe0tPZVVyYl44
IWJLcXJ1VlBIc0Z8V3RobFc+NGpkUDVDciRfX2dXSkVJWXhfPHZHIzNSSTB+YUlMCnpNbE0jYXR5
fjtqZHxWbl9yP3stUkNVKD5hMFVAancoODZkQFhfO3QrWUYqUUQmfmVnSkdINWJySFJRQ31XeHZO
IQp6JSsoPlZBbkw7cF5mR30hZlYjd2lUfTBqOGBLUCtlYHd3O1o9MTtuLVVDfntgOHJgLTBRezQ+
YGJ2T0RxeD9BfEEKekpLWig5YHw9bU1MKnVBJHZgfX1PYTRiLUZZJmFaSWNoZGg8Y2I1TXQtMnBe
KmdsQHQmIWNXMiFwXkxDWTd5dyVjCno/SihSKT1wemdoMjRTY2ZQIUsqNCs1amAqR29naTBQWil3
Tm15WGF4WGIxR0w9aEcybWRrOXwlVWtKQWQ8JUMzLQp6XkNyWT1oMGoqUERCJjhSam5HVn1CdCR8
dUFMNHVfVCFyUUo1SGJqdDJfYnxfRTU4cWpAV28laF4jbGFJdT0wQmsKelFvS01vTT50UC0xNTND
fjJxeVJ3anU4fT5Nd1hfUmhMPHspeHxZNXl3SiN8d3hoeSM+P09BTUNWKE9hZW4mX0pCCnpCeV8j
JXkzcUJzdEV7V0V0R0Z3LUUyQXJeXkpRbXQkRzQ3bTlnUThJSk11YSVjaHEqJmJVZj13QDNfKHQo
IVM4agp6Xk0zZ1EqPDtqV3ZiXzFjMllGdDNabj9LfDxGbCpwaXtJYSFJVDdDPEgqbD5iXjNLXilF
e1lxKlAmMzNIMz4pNzEKel4+MWthMTFSQjt4JmZlSUA1TWtVMDFrfX5hSUQwQGtyMFM3WmZEJUZv
cEV+cmRVUG9RSE1MQk8hN1grTHBtIW9WCnpDckR3dzZZJjU8K0smMFkkTzAydCk+R0RYdS0qPlZg
QDtIb3VzJFpQJmtOdng9LWRiYDFeRTZXeXElZGlaJiQlcgp6cFl7M3RmM0ZUO1cmV2NqKjdkKHZv
XntKfHkqSUE2LXUzczBfNGtQTl9sV2lQaTFxaH5fNGtQWHNxWWMlez1kSmwKenl3YG84PndlJk1V
LTxnPmZkMzE9aUomNGUtX2dlcVVsSFNxdUx5bU48U3FLIWxxIU4wT2hkak9mbFo9fSsqTVVvCnpM
XkI/fiY7NU4wXmdvPmU5eUEwQlF3RihkSyF5Ml5lOTN6M1Z0TzJUekc9X21gU21fYl5qamdaQFBh
PDhtR0FzUwp6ZTMlUXl0aTRkMVZJMklQaDRARi0/e3l1bHd9Smx+KzVwbUBRRSgqXkFgOXY7NDl2
cWoxS3c1ZXd1Q3Bsa2hJbjcKenpnWHJmTkRuRUFZMnxNXzVDRjEzMUx5O0QtfiMtP1dlXjl+NEx5
Vl9mb2s5aXBCfWh3WEJrQzxWbk9YZGlKJWx3CnpoZnYyKykranZjM0BRd2pmWFgyTDwpZERyPlFK
cXlAMkZgczhxSSlhTCs/Z1FwakZVRSY/YWJtdl5WLVpJdHJiSAp6Jk8jVFglaDRhdm8jPGlvUFll
WlM2SXtgPjdiQW1GI35qNiZWVnA2aUZfJHAwbV4rd1V4WmJCNCh9P05Ee0o8PWQKelFJVHlYPDBj
YSNsUDVic1c9TGo5PTArQXNjOXJZflN2cHhCKj5rZFlXWCl1S1dSdjg4b1FgfWVJV01ed3hlfmIr
CnpgM1o3Y2EhPk5KPFBxZUY8ZUI3ITxnZHghbGVkIShsRnczKlE3fT8pUTFEU21RSyhZclFrWVVX
UXV0Q19xPT16Tgp6cH4kOXFMUXpUYWlRKzU4RDgmTW42M2RMYCFVfCZMdSRvdXt0T2VFOzgtVHE2
fEVePXh1I2QzTXV5MyhudSlXdmAKekVQO31pbDloNU5yNn1iLSVFT2RLbHMxJGVsKTtxWWxzNzV3
UTVJMFhxTzdORXFhMmB8cH42c1lwa2stbUxuVFNJCnpwR3RAN0IkV2V8NTdoOyNYc1RxWTJVSTBn
Njt1c1dUfnM0Zl5WQz5zQ2hHMGYwQFNrOThyMXNLPUZ+M0t7P3dQTAp6PEVUQHFBNXVUMXVBeSRD
P3g3eTFVWiRhO1ZXSFZVQlNORHtiQk58UmpXckZQPF90fDNPIykyQE8rTCpfbm1VP1IKem4oczh6
dn1qcmVTfmw5PGZCUHB2dDNyRSgpYFpyYyl8PlZgWjRfLTFaNUN9WVo4X35uK0RfVkcrTWplM2Jl
cmdLCnpiYklNIVV+N1JoNktYU1lyM0tPfnwxP2hfUUdmP2tOUE5OeylRP3BOVnA5R0pwI2VQI3Uy
TGdqN3tHPDVTYkBtXgp6QzNARWlPYiVHa0xNdCFAak1yRiFzVztmN2tGM0JuZk07WHozUVB9bEhA
NXhhWEtzX2czWEIzfE92Rl9sNUR5S28Kek9uWC0xRkBUWHRjbSpiZElMYSQ5SWlPYHlUWSlLSHl6
VUIyNExnZCMzUVBrd3sofFlqWllKQjZfemUoMFk2V0o1CnpXeVArKjgpMUFSdj9FWXRhNGpMfjJV
RSVsNDBXPE9hc2BHdSo/ZU9LaEMxMU5jTGp6eio8N14oTCFFNFh6WEMmQAp6WjJyQ2lMIUU1P3U+
d1AjQEZJMiZRV24kK3VtMXxYMFp7VlJ0LXk/Y3Awe3hZLVUjRCt6KUBmZXROOyF1NXVaKkYKenZX
OD1UR3deX3JJWlNhUmhITDtIaENMdlJ7RX45RzAjQXRIMjwoNmJqSjFTbVBRVk8/b1opREsxRGYh
TzFOSVFkCno5bWU1ZEkpZGlgZS1Zez1ZUEp2YERGP31tZ1J3NWVrVUsyWjA+VTtoI3QhJXF4JT5P
RmExaGZRVnBfcCtAUV5iKgp6OzBrSEVLcSohXiNTPHg1IXhUcGQ7UXt9ejZxMmx0TD5hd2R4LSU+
ajJVSCo+RDxXcmh6PkFueTE9NGVaZjIqN3UKeiFCfT9+TE80ZndiJWZhTkQ+KUR4OUU0cnJBRUZ6
aUw+VS1rM3VXX3dhV1gmPHt2a1FjVlR1NkV7bTBTfSQkeXQ2CnowN0xHT0Q8bFZeS1B5TmJrcH5a
QjVYflQ1PzFsMHBkUGpIXzFqM019NVBXKFBhUyh9WlY1JWNncVhAVUZee2gpdwp6QGcjRU00aCYh
aihJMlVIYTZ+SE5razBSUnY2fURpRmp2JDZTJGpoR0x+MCk0MUt9MkZUZHdlRjNGRkx4Rlo/fFUK
elY9UmViSEhkMnFjX1AmO3FFVG1KezklWWtzejs9emtkfTVCcnVvNDdNcykyKyMzOGopcT9JfkNg
YmF4S0c9e1ZeCnpaJUVPTzcpR1QxR2JjRVJqbnV8IVRTZSohRGVFQHtxe2F7fk5qPDw1QGBPLUJD
P1JzViE+MUxqSnNnWmg7KUowRgp6ay14UHEmSjByYkIxKGhRPHw/TXRGVDdQYlM5PSt2RUJzMiRC
TkM3KGl+UGJUO1VRZDtHPkcmOzJaJSojJWQxcEsKelQ7WUttWSFec2RNTX0xVVN+RylgSiluJDs/
JEBUU21DfVpvP2gwaV9XSXsjPEx7NmtQa2FUSlJRJUxPfXArI3koCnp0OSY5WSRfZVUqUkR2MUlo
Z2NYc0BhWVk2QXVaYUxORTdMc2p6c3poJDBRbTVqdnU2bEFYOyZTUGVlfFZ7dD55Ngp6SzFYVXp6
ZWckKEVvJiRAUW88amxNN1RpZTU4KG1mP0tqcStZaVUoeXROS0s9QGFKJkA4MzdRanVsOUktenoy
fGUKeis2KE99MWQ8QE8wfT9FPzUtUzFKZSNKX3tfQ21zeTFnZ0pjbTN+b0IwYUN3V1JiVzNSO2l8
Mm5BUGh0eTRXelhwCnpyM2VGWVNTa3ElZmtvRyhOVW90SjQ1VDY2WUF6QWp0MFkhKEErWTJoUWwh
Xn1fQ3AlMHZoNEBeZjJEeypkU1l1cgp6TzBldXo+WXxZRS14UUoxWjtHTm84SjcxT1F3MilDOGJi
N2xOVmklWjY4Yz5SRGZLcnVOVUdBR0B+WnFIP3tFRGcKemREcXF3NT9aU2JCKXFvZmdkaTd4PE9g
QWFIKCFXTVlxPUt0MUUwY3dxSzxedVFZVWZxSjNrV3NiTmNUVmdLI1BnCnp8NWkmIUxUaDxQIW9Q
ViNMVGg8TCFmVytfUCpZeVJ5OW5nYGNaKSsoQ0heMmU1KkF4aXcjMXJ4TXpHY1h6PjdHbgp6K3V4
LWxJdXUmZDYydUBVdDBOYFNjMWh2aUV0VkFpLUJ5c1dfP2s5e2dyKE5COXdmWkI2XmNWeUNEdXFz
M2pjMWkKek5iZUFYSUlFZiRodUhocUBKOTsmKXtaeiM2SkZFdkJ3JCElamtZOHBGOV5qfGRYaUFP
d2RHNjAtMjJ5KnIkJl4xCnpiKnZ6VE1FKT8+e1BuMX1iYClKNXF5QjBuI0taQiozNjR5cChVbWtl
QWhSUk1IZEBYM19vRXdQIUVta0l5SD5fQwp6QStWY2gqPVJ4OSRvei1jYT56KCg0IyEkI3J1d19s
UkYrN2BsfUx8NzMoKmRWKXskUlNrVTBnSlp4OTs8Zms/SXcKekxpWm8ofDhiNWEoWFU9WlVqPz4+
ZUA2ZTBgVHdlZndIelN5NXQqR34rY3ppOXJFNnpnSlcmJip4dCR+KEdKXm02CnpucCg5cjVpOEZR
JlUrKnNCZXdGdFREfV9XMyY8Py0qRjNEKzh6ZW9pd01gSD9SYmVUfW9RYyUjVEE3ZT4yXmtzeAp6
SVpkUHY5YnIyX1lWYVFeQlgtaT9RNU85aCVLdXBSfDQ4e0xZPXd4MFYrSEduV1I+bE9ASU5hfT5+
QmgyKWVXTCsKemtgOyo5Q2hreXt6bWlBfCkoUF5xXlJKZEZ7eDZvZ1lPfDRTdEdfQik0fDMpNkZQ
QUl2RlA0a2daYXlwUj9YUl9yCnpTWUxsJWhwVDw9JipRX053VGY4bylfK0AkMjVkV3MmaX1wfnJH
SFQjTTFQMzJOVjR8KysjWGxeOE9iSkc/UHFgMgp6SzkmRTJHTGlvSVMyZCtjdnxOI1FUZnx5S1kt
LVptXkZOa0RuaiF4eU12Z3k5dl5zTHdMa15NcEJmWWkhOUBCOzMKeiU9T1FFXzIwPyUqQmJvJGFg
eWs1PCl9bTVBLSZySFlTQENQTVp8X2pNajlOdmt2VlIpcj5HRzFpfHBuQFl6bVU/CnpOczxqMkJT
QHsrN1V9X2NDLWozKXE7LSghQWE2RUVFSFp1fF4rPGE2e0hIVVR7aGw+NWpzJiFJTUJ4NDNSb2NJ
PAp6MUFRbjEodndNa29WQmBHOWU7bDcwKG1FUWhtcz8wXjU1MSZWOEkkYUFhNjN0JntGJWU5eyZI
OUJtbkRndHZ8JloKeiZXXyZEVWg7O3VZeXFEbnVnTT5Ba1hoYnExIW9tUTVWbSRiXyRMVFFBWDVE
IW8peUlOZlhvPDNzeH4rUmp6ZSNqCno3RWxNJk17VFdlTzE0JWBJQk9TWTUxaEdgcWw+Yyo5X1Fo
TGdGQjlLdUFiKE9iezA1RzdiaTEyWDkxazFHdFM9QQp6LTQxVlFYVz9Qejt0YkpqJXsqVyMmZV9F
Uz1XYj07ViZpUCpfb3JNcTdqSWBQY2Y3NWdFNiY5bEEmUiVjUz0le1UKejtyV1JyU2kza254X0h8
Oyt1JjUodDt7Xl55c1U2NEU+MkRlYVUmfnQ3bzRTKWdgPTR9T21LMD1uWXA/OytGOVhjCnphSkMq
RXR9PXB4aiVNYX4wZ0lKdjdObEdQRjc3c2hrWV83cnljSiYxNTBjcEhaM2R8ZDNKVkFjZGcyOGd0
ISZJMwp6RW5GPEU1U2V3WVkmOz0jMUlRbWpVc3ltfmheUHhCWkVZa0hVTWJWdCtncmR9KUItN0hD
QzFYcTMmcyUzUm5nTkUKek1BVjJFRz1uKD1Sa1YqQipWSXl7VVEta1R7Xz9lfmBqPCFeMiZBVlhi
e2ZmdGd4SXIpdEAhKGBBTCtHIT89d1dhCno4PUEwQnVscHowe2daM2spNEc1MSZvO31kQTgqfTF4
JGQ3X19mTXwtQylmUnhCO1B2OEFHeitJe1FXSSMtOUpoNAp6RjhyMUVAUT9uKmJecWlhZVRuUC0k
I3d0YVRMMDYhZkFZXihJNUp9VndSaTB3e2V+cFp7Sk1ZZ0EzZkg4dC0qRXcKekJ4dyUrdWwwdG1g
elFiQ2Q7Q0EtcE0pTX5sSUt6dmRkNiZzWWhJOVZ5UXtJdEkhTk0wSTFOfCt7PjZwYjN8QT9sCno7
UiVIcGN0OWFKcG4mSVJRTm1MWVheXyp8O0Y+fVBjKlloWiphJFlrK3t8RHpKYntxfnUhNX4lOCg7
KE1mQ0YmQwp6YWNWcEN7JkU4enVtaGV6JE99RjF5VEttbGQqX0U9cnYjdXM2PExgZkxpe3EwZHtJ
WU1wLTk3VCRnKTVWJE84cVMKejI9K2w8aystYjwjQll9QmE4MHIlSH48Y1VMdldSczdTUnswMTlZ
TGtfOSpufDh2c0xhNEVrbmB6ekpYc091JEtDCnozUWpAYXR2VTFuQk5tcjYpQnhoO3d9KVF9OUhC
UUNgRUtDflMzbl52emRXRkJ5cjgkKDJkO2ViMUU9QWQ9S3kkSwp6Vmh9dXpGJkxaIT1mTVNWNW5P
YG5wcyM/ZEFQal9xTkR1e0w7SHYyQjsxKTwpSVU1aTtTckl1PWFySGIhKGtZNWgKejtIdjRAZT5n
Rio3U3llcm4lTUElUXhqWU1iWiNQWVJeczV3WF5FcU1KfShoUGg5VzFQKmpOaEJhPVp0VSFBKzB7
CnpQajdyZkpjRjx0b1B9cEtoUVBCT0R+TSt8bVZyPWsxMDtaV2M9QlUzTkNYayE4aTxBSyVTKyg3
anFxR1k2YV8kfAp6dXFhOXQ2XmFfSj4hd0F+cTNCVHpzMH1EYSlKRGBNNmNkVVd3SGRWcXVKPmp8
WkFFUUV2N3kqZTk0Smx7NHooU3sKemgybG8+ejspbXxRTXs7S1dMby0lNHBHOWhIKGhOLSM2KHZC
QStjM0o5SWJIX3Z0UldQKjM7UWVPO3Q/fGQ1UT1MCnppTDUrRFNEcz1rUHd8emYjTDgyODwqQnN0
UjdSZW5MUEExUlg0WkNnNjJjTV5WcHMkYzYlc35MIzhpY1pOS1l4MQp6bGB4VGx4V3M7OVBCQiQh
Vm9Cbns2OGwldWk1JFQyTzFkflBVUitkK05EcjFJaVF2S2YjSFhZWDJ+Uj5ybHRAUUgKelFiWTwj
bWxvYm4jMjEkb0NRMndJc3prKD5QIWJfPjQjUHlyQnZxQmdWZG87UTNyNH1OTSs7WnIhPEVmc3J+
WVQlCnpWc2BOU1FqenQwVD9neEo7RDM3PzBLbmVXMV93X3s/RSlKUHNBPEJ6NFJIQTNONUs9NjMx
MmJxUmVrS04wWFRkWgp6JmQmaE9eMyo1PnFJQ2ZHRFMoVHA0TVo1KGtyOWQ3Mig1dllrcWZtSUlu
JFVwaDgzZj57ZW9ZaGNDRncqYHZONlEKeiUhfTtvczZ2U2xWWl8jYDMkWV59ZFc/KkgtIUFQfmcp
diQlMz1YP154VlhER25nT3QxUzZnJWNGYFM1cTFlX3tfCnpnc3JXdXJRajFuOys5Zm8pQERLJExM
eWN8QWAmblVBX3V8PT1fdyowQV49U2JBekAofEEhISpBYWghO2RqSHRBWAp6NyN6eFkmbkIjTGlZ
X35RPmxnZ3k2NCE2OEZZJUlLNmd3MGRJWUFpPyVSKFh8TFhwVU1xUjM3dWZQTlFBXzZ6UWMKekxY
bUt3djRvMDN8RHJoK2pSSjdMMipNWTdHNVN8TGhBYk1oOGpxb2tDaT98NU1aPTl0Qnp6MjhHe3JC
TkNtUT5rCnp3YGpeMG09Uzx6c3VnJHhnc0Zld15HOURLQCZuN3BoXjRJWkZEeFhLZj9DMGM5SG8k
c29yVnkmayVDeHdMX1Jedgp6OXAremo2eiooVSFHfV8obElTMUBSKWJXTXlzIWxVa2hYP3E4aFFt
RWlBVV40NT4xZVgqcEVhUXFuMVgjNjJCQVQKelBeYGdPQlYqZENqMGx9bzg0O0x6NEw8RX03JCg2
PmoyVTJ2ZHowdjRmYyZwJnxGN2E4P3lCc18mUlFKMk87P0BfCnpAVk83KCRjMmN5OG92QG9qWUdn
dk5sISZuNjlQRFJCa2hIVjJfTnVENHNXRXJwb3pfelJSMiZYNy1YKnhHMlJmdAp6QmsyWi16WHhz
UlJYeDJ4bEhqIWktYm1SanEkbEd3XyhiKnVgak50YF87ZTNlO143MEhlRVhIIVpSSCFnR2hWPlYK
eigjNzBMMERrMmNeZjdaS2UkNUFSaWF4R3A3N2tYKHZJUUdFWEwrdSUoJnQ8X0o0PDtrTC1FNXho
aDBeeVowJDdzCnorXnpLZHcyb1QlSWFvK3JhdyNnezxhfWcmb0xycihKamAlRFBMOXJhODZTQnJC
NUBmQUJoaTlmSTNrTE5nRk0lPAp6ISQ7dEgxYX5XKHhQWHt8NUVzbnRaZlB4fXlJKlozRkFUfFp7
YjZZVWFVcD1QdzZ3SUtrY2dtJiRYPHhDN3dfeHIKelZka15mOFBCfitWWlJtTCFyamk1eFUyIThY
bEN4Pj1eQFZyT0QzYDg8b2IqM1UmXzlVPXhQZ3g4Tjk4Xy09UDBXCnpDTXMrLWxjbUtrOzt4P1Zq
em8/dkVkO0ZgdCg+Zm8jUzZqJCFpV3g+VHhFIUJHRjtxYHkwfCNYYX1tZCpIU3QjYQp6JXs7N05H
I3NHejNRNngzNWtJOypLI2BDUnlJOSY7YH5ETjhVKTskY05XYCtOVkNEVDRMOHkzMzNtTHFweHhK
TnoKeiQ0Vl9JbzdvNkxRMUF+NGZgflRQWGNzfDFxRnxMRjtJRnpAel56fkY4ZCVyQngoMyFZdSYj
bDE0Zzl+U2YjMjRuCnpsezIoRHlyRkZmMnFWRGYkZmArJjZCUTV3UXAlYyMkcT5eVDA3VypHNXh7
S1FxMFI9KVVObkZRTE1RP1g1Z30xJgp6RiVkU2owLSF8Zjc5blg3YVc9SCUrSk18RDV7VlhLM2Q0
V3opNFZJdmhFaGp1Pncjd0RHdSRaKHFsNmNMa3JKZVUKejh5Rk45S3JeQitqM35relhoe1BVSWZ7
NEB2JXd6fThiZH0tZnUqRlByaHkwckBVMGV3IUp4QDc8bTNwT3J+c0dfCnokUWEydFpXbVVmKnJh
Mkk8I0o7WjM2OG89JCp1aDhDQTAyX0EzVVB3P3F7aX1IKmFCSy1NVjhaQDI9ZkAjS2F7ZQp6cktE
dzRfTiVJP1lpSihPSkYwSkJjPGl7NWd7NzZYampmJE0tb3crJitzRGBNLTEhUl5Mb1F2dTUqPjNi
SHR6YjMKel89RyNEWTNYK30/cSVOM2R6QGNUU1g1bHs8a2ptcDxyUzR4KWlvYSpLN0RSJWBxSkY7
Xjs+c09aKHNsU2Z4Kz5LCnokKkpqPyp9MCRkaCtPYj5pekY4T0J9dyl0eGZyMmJYZmlTazg1V1RY
aDR3fVNYQ3ghdkU9O2plTmU2NEB3dXd0NQp6bjM3MzM+aGAwVFJOU0p2S2JYemtLVHZQeDUmT0Ro
OTEpRXUqfW8+KCo/JnYyVXhOTFhzfSp8cjtaWSVMRkVSYGcKemYrQXFaRDk5LSZoJlBzc2teKVBH
ckokZ3Nmd2hRUzVUZDFfcmJQay1OQ1pXcUsjc3dYUSk0TnhNM24jMzVCJT5sCnpAT18tbjAlJFN0
LUhqMiQydFB3S1loTnxrTiFjNnNZSUZ6UjxKdD99bmY/PT8mY1Q0OyRgaGEodD5iYVJjNEtOfgp6
e19YRWx4cDY2RjN7S3BlUVRvOXFWZm1AeUFwP192O19fdTVxaWF9cXh8VWFZKXB5dE4lXldEKDg+
Y3hqPzJuelAKejwydndlekstRzJ2I3FoTU9aK19kJlg+Nl9XPyprKTJfWEFLbHV4ZDU7X2xeLWd7
fkFJeGd1QDZwWU1Eb2NWMHhSCnptUVU/Iy1NRW5ScmRHRGUwVkIxZSlUMzg+RlBAcV4pVVZKTEco
QStHe3FtOCFlWE1xaiptQiNeSkd0IUlrNGBtdQp6NDd7OGUlUmFiZ0F7I2YqYU0kbTFgbHI0NylW
MnRuUyFBQSFlUiRmRSFEejBrb3oycSFqJmdSTlQtWWM0eHJrRHwKekZzKHN5STxeTSZHU140JVQ3
QWh2bjlHK19uPSVocWY2fmtlKilNaFd7TzgydUdwQHk8PWVKKnIoezhganhxQ1ZACnpLMzBweXMq
ZHszd0VmJiooO0s2bkFieSMhKlVsPldaLXQlV3Ipbk01eUluVEVRb2Z0VEgtZykzTUt8Zms+RWhS
Rwp6JSRrclhrKE15KnomMXY9ZHNrTW5WY1plZEctcUJaKTJ8QkdDWHsxZFYmeW8zPld6TUNGSzxy
MUprcngqOFR4OVUKekFiKD4mdWJoezdIZk1SUWJIXjVrdEp7M3stISF5MC10WXgwe2M8Mz1xTzR8
N0k4aytvaj1ya1RONlctSVlVPC1nCnpqbX4xe2gzd0x3TT9Se1JGLThZbiRXd0ZjOTVSKF9TdX5H
bEokYWIqb3RpUyslYD5oVTROMEd+dW9WSGNrOWk4NAp6KyhmRHJkKmVeM0glJmRAeT1HeSV2dDIm
Q3hRfUliV3FXK2NjJUtUdEE5S2w0aWA9a0E5Uj5PYW40ZEoySU94fnwKej8jUCR0b29FT3IwTWlN
K2tJUT59aFAxfDJYUUM3SXA3RDJJdDd+diZ1SFNjaElrcT05YjliQlRvcWIrNks5dG5FCnpLa3Z4
UnNtfVp+QUx7JExLK2VEUk5yNys3YChaZ3wkRzZ7MW1eSyl3S1JLYz08ZCoxQjghJTBGQDtEREZ6
dVY7Kgp6KV5FPTZZdkc3VyNTYDM+Xzh0ZChwSCFSejElcUR3UHdgcEhnOVZxNGN0eUxqS0s/YGky
WSUtODhHcEd+U3ZDNVcKelRnTlBTPVBgWENAekolNno0bGVvbWtjTDxPN28pYHdUfVlGSWk4MXNr
Wk42ZTNXZ3UhMzJ2PVhYUWliM0d2XmwhCnpZWCtNS0QhUTN+Y0NLemxRKUA/WiV1PTxZOyZRP0VL
XzRtV21rSkBEZj9eSyM1PHRVbyNybShCU3pGemMzR1d4agp6dWorZ3JlJlBLKlFMVHBpOHRiI2Vz
ayFYI3J9Zmp1NikkREstVGNmOztnfj4tTWI5QyhmJEJ3dnNocUpjbW92R3sKejhgLSZKKWs3dWc5
JXYwT1lgVzV5TGpYM01XS301UDFKUkZvPiVVJjVfMjhEdUVqVjdXYjJqWC07LSl0fiMkd2FHCnpp
d3dhYlojV3JTJChuZ3xfb3QoLVJgKnM5T0lMRXRXblRAdFZwTVkzKykxV3w8JE5nYlN2JmR4cCtL
ajBPNVFAZwp6cHtyeGZyKGJfJTkmc18rS188MWFeMTBPWD9CWTtkPX41aTt3YVgmfnlCYTBJNGVK
UDBpMnQ7ZHFLPTdfR2Z5XjYKempjKTFwIS1wUjQmRDx0K0pjKkheVHolV1Nje2g1c142LVg4QVli
UlYlJCFDNSVwUSMlMXU9KDg0ZiFJM3cqe1hHCnolSiRuKUliOEI+U0steHpScTNhV3owKkktbS0r
b0UxRXdoKEA3Pyo+QnxKTys3WE8ycURoYVgzSGRueWZ7ayYqOAp6QyF0TEx4Tyt2KnZrYjFQaG03
OGohcVdacS1mSVpTKVk5PHpodzx9RGVePV5uNFI+JUAtYmBebUIxKkFseWY7RjUKemkrdHRKWnph
YzwoUXx7bHRZaD16dEF7VzxnfSQmPl9+bWpgbHIlcU1fMzNDN1lmckghX1kjaDYrO3IpT3c4N1kx
CnpNOW1ZNmE/ZjYjdUdxclFxeGhwPT1qcFh7SzhRQW41ZGY9Z2xPOXZ0JW0pPjJqcTxkWDgqSD1P
MyFnS1dPNEUoRwp6Rk8oSVVhZ2NAN1pRRUM9S1g/TWJRS2pGdll8fVQ1P24kZVUwdm1UOytHd3pH
a3ZeQCpFI2JDNmEyOTJveHwyVkwKelJNQ15nZnRTbDsqYEEtaVJvdElBdXo2QyVTZ2ZyendFbkpR
eldIYF4ra1NKRlUyLXF1PlUkUmxIQyhjN0pZVHgpCno5QUByKylaZEMzR1RqPnhxaiRtUWJkUHQw
em5XJmNIMFh7Pip5filUPEpAemlhfVpNI2NEQSVDQEZAR2ZzJThITQp6ZjdTRTdFXikmX2dZQ3pa
LVg7dnN2TEVoX0loakVEcVR7Jk03N1J5OHtuVlkpK00qNT0qNE9WZlJ8S2BBT0JsIyQKelREdD1S
Zn4yMSRYP194d3dNQFowWEp3ciFfdFZWWit4cnUqX1R1YUQ/VChUMV89K35fZnNFWnY1Jjdab0Nk
VzVzCnpzYnhIbGQ3M1pKLUJvYm9kUFE5U0oxZzVeOS1nfl9qdXoqVkNsZU96Rz9vVzJZPyNAe2dG
I0VpUDFVQzRQQilofgp6OSo8fCV4TyZMLW91UnhvX0xFXl9xe31KKSNgZlQxNHEoaHNAZUZmbWA8
QCVLeWRPQXF0ez95VT45U0hhT31KTU4Kel5XYmE2eCtIZ0Jsd1lLRkkjPSpuKlZhb183T2lhb2J+
T35JLThFJk9hNHRYZnBMJFMjRmtwWE9ufW9ZdHtfY000Cnpydj1AZ2N8bUBpJVMhfD5KeTNfQCs9
Vi0zZ1UyViVgeUQ7YVBfIzZ6WTNzbHFMSElDUkhGbiRtT00oZFpEWWo4SQp6JlZJZDBaYHpDZClz
MkBMVTdEV3lPRk1ucllyd0JiSCQ1MDNET19ETCQ2ZHRCP3d+S3teNmk5fHFrWWpudHJ5bXMKejZp
NTRHcytMNGVaeSlfQ1hXbz1LYVp2WDU0KTVERG0hbDRwdjxPRzU9TEQhMTkwPCtjPTZsTDlebys5
S0pjcVZ2Cnp4X198NF9AP3NQPVdVTUk/RitsZ0FHZVRLKHRRXmI4MmMzYVd7Z3BOa0FATjUqb0Y4
fDl7JmBOYXgoP3klMVklOQp6cn1PdXdZKERXPzJ1JGYhTlJBQTxlVD1tQE5pUTFDR1EmQyR4P0Ng
TXRFbHx4YWsoJE9gR3diS1olXmIyNFZANzMKekg/Zkp8WSQ5fXI1MHZ2JSNlfDswTkF3JHVpfH5K
fXk9Vk5QQDBpIU1rfTNLMlNUITBsX3BhU1AtT2woJE96Yit3CnpSYyhJaGpqJH1NNjAzTjNsPmY8
KCVSMkd9LSF4d0w5PT81c3deS2FCVmNoZ31qNzBOfUJyRmJWWFZIUzBIemFwRgp6JDQraDM1TTd2
SURPX3c2SWFqWHtxeENUTXoqe1NhVE1Lb3FvLU96fTFGUU9yVmg0KlopdSRWMl9SM1ZMb0plVyYK
eldkWmM5U3NPZFFGPGhgVDU0KnFyd2s0YFh8Q0V+Z1VBe3dlWihvbFRiYnNGNHFwbmc9KjJSKlBo
elZEZF9jSWlJCnpXcyNIXlZYRXU8SkBmOGV0Sil0O0ZQcFojWTJpclJYPlImMVR6RkRnZGE+VGAp
emRsZ3VIN0clQnRwPG5JfmlFNAp6Kj8tbmFFb1F4VW50bSN4T250SWRwXkY3MkdGbTxHQkZud0FN
TkljJFYlR2dKaSoyPDFrQnN+QnAyO2h7T3VnJnIKem9BI2pvakF1USktTnxqXjA7TCg+MyFocyhK
bGtfbUtnUjFsZ19oPW4/Pn4tLVRIWXJCPzs+UnhpfX1YLUUyRjhPCno8YUR4WWFxMjRtLUJpNU4/
QjJCMFokbTJ7aHkraWg/ZDxDd08zSXFie1hCNmBkKzxuS01gZzdJP3tmMnd6NXVFcAp6Tl4tUyZN
JVFmWVRlIUJJRVJwTSRHaS0/QjlldyopeTgyYnQhI2VyNzBhSlBaNFdVMWNzPCglWD5DQUhQVyZ5
TXcKenh3bnM7PlkzXnZveXg4RXh0TXg5RzxETn0ka01LM2lJJGsrTjhpcCspayZoNnFLY21GIykz
X3k/QnZxTmZVaklBCno8R0BLOEx3VUxqNjxyaChKJl5+IVE+IV9MbXhHcTxnPyF0KmxUemBQZzBB
WE13ezxSejVQKk5zXmdScyohcEZHfQp6M09mYyQoMSY7U1pLUEtve2koIVRzQk5GNWN4ZkkqKGMp
NGglUEp7KGk/VEtSc2smZURsY2pgYittLW1Bb2xHankKejtaSG1DO2hrSXNfTzU4XyF+PyRNR1gk
XzwjT21WQzReK2x8PlUoRD8rK3hDMEpWczJAOEA/cn5XTEM4X25iZ098CnpzaDtjcXs1Yjkwdz1F
JXhVViUrSzJhNDVweEUwQ0soaWh9QzZNZklDSlpAazNXfmIhbEl3ZkFWcnMmIXEkclcrNAp6bl5a
aGdPZnhTWVZaUi0rV0R8NTxLST4tajU5Z0FOVyRJZD1LRD8jLWMySSkjV3EqLTwlWE93NSZZb1dG
cGAzSzUKek0mNn07bkRRezFpUlpKWDhTKyg7NiM0bUBqbHIqb0tIR1ViT1duPWtRRlpuNFluI0dG
WXlCVUotT14+diszSWxPCnp7TzBlaEQ3fnNXY1dqMU9eJERHYihTej1uVCRNLTZpa0BAQz1NPEdR
bld6MWY1WTJxOzVkSHBFUX5kUCM+JGtiXwp6LTFsQnszTENRUjZiK0I+bnFAalc9QCQweiE4ND1G
PmlqUD8wcHA5VnJXJUkoNHpGfjJKTUZjKGxBcTY5RyMzcjAKenRZMFdkQ2pjdExEPnohNyYoOyZe
RXRiYjA2KkVRXiRKRGlYPCtNcE1vI01HSlZAPzJ1PDQxPk00cytAajVXdE9MCnpjNzZaQz1HVyps
QDVURjZJWHlRamMoNlU4bSllQTFTXmhYMChlJCZhJmFWNlUjeXp5ZzAmPnNXZ0hqYElGdXZ4egp6
SDxRdTJzNS12RUFiaENpJHYpOU9VJn5XbzgxfjZ8ZVlzaElPZjQ8RG9vKyN2ZVBUbkJvQVZWUzRs
QUYpVXJSVXwKenxEPkFze0hELXZzV0M+TV9pakZKX05mM1I5cmxqMFZZOUFWcT14K0NhdndIUiNA
czhMUGc3UjQmPlY8bmk8YXRFCno5UWAycHJmN2stYW0+UHZYOUNreGxnQ2h8XiZ6R3kqIVoqQ1Br
cjBgWSVkMmtkTWklZiQ5YSM2bFhaUF8kOTZfIwp6KnRPUX1kTSoyTUFsU3F5PnZ8TiVRRlJpdnF2
PjNAK2QhP2AkKnRCfjwhP1Q1WVA8UXhzcUhvSVghNGxrUV9yfSgKekVHOUFgeSRXYHA+THRGMFIx
UER9JTdiaExzaz4jTGV3YzIwRFd4bUZOaGo5Uy1NQXghdWFjI2tsX1VBVz4wK0hhCnoqXlFMVz1O
QWtre0lfMWx7cVUjZio2NWh7OGRCWnheZlVgS2ctR2U5M25weiVKOyFVK1BxMGgmMSRkRHduciQy
OQp6PlpZYUZGYm50Vnw5STttRXIqKHIjS1FYeCFBVDU8Iys8PVNDUjBSTnYpaUo9Nj9NT2Zqe2Js
ZkB2Tnd1d3F3Z3AKeiZwIyRGQj4oKUw5NGwjR0lNTzlTYExsRkg5K2Z1WEw7KEdmX3hvcj4yQFVn
R18pfTNPbVR5WjItJVFzfS1EfGVzCnooQ3Z5SEQwTSF6XnsyOThTUTdWSD93UEE2NHhYKWxgcE9r
R1dvcUFYdH4rZkVPKG9fXm5gZG9zI2pHYSR6Nns+PAp6eFpISjQ+TCFvZUtMM2V3R2hVaCFQUipZ
fUEhPTQ5JmZkTl9WPn1UK1hLO0YoPH1MciQ2UmQ4bUV3cEAxb21ZTT0KejFjbEZ3NmtXJXNidDx1
M04pfjhXITYlN01XIzAlQ282fEszfEpLKmN2MnohUExVJlVHJEMzbDlsfmpTYDdBPmA/CnpIeT1J
dVorLWFndC0kPUZjZmVGcHdaVE14O2BXSTA8M04+Kz9xaz0zWHYtTGR4d1BwOU58WER4OCh2YGxA
X0MhLQp6bTFXdlEyM356RFopKWwlLUY+YDtzIWxKdj51RjgyX1h1UUpVZnAoe3ZWcnl5WnwrYT1Z
SlBEKT9kRk10cWNaNlIKejQ2NTh3I2RCTUp3NzdjUG87MGRqWGo5cUZWWm1JMVooQDAxeE83djJ5
fmgxdit4PHZHek1UaDcpQWxfKjt9ZkEjCnpWdHV4OHpSQEl1eWlzWjVUcz9ibnd5Y1JrcXJQeEN6
d2d5MG12QHc+NmliSF5gZHYwJGZCSU5GRzxvbHhgaDs4cAp6dW98TntDPkgoRl91aCVlWUFJVnpW
JVlrQkZ4UDQ/Pl5nb3ZaMTQxIURtOUsxKXR0NFJNTkx6PWtMWD8lKXBZMkkKellQe2dxNVBFPzFe
THxfTUBgWUs9QEpXPXMrbGQ0RHkqJFlsR303N2k3amxCRTxnTFlQbFhBXjk0YjMtaTNKcT47CnpQ
KXY3SypzK3UjcitzSk94PyFIQ2xQN2JePGVQX3VsKSRwYmFLSjg2U14zVnsoVWZBPEl4MlFMLT1n
d15fcCVyMQp6ek9rbW9UWF5OVWB0Xik8MHxxMEhgJHVwMk9saFZYPD47SSV2WTREYmg7RDNUO2ZY
QSpDXmlfU19yKEAqOSV3dE8Kej9pLX5xcDxkTHhMbVJ2QlckSjxhMlVQRTNZTXxXWF84YWNfRGUt
Sk8rM1UzQjJlfnVyYEolUD5yVXZDWWtBNGBpCnpfVj4jZXU/Wnx2bjN9Vn4jKGJwezV6Mm5EJist
eXxVWEZCPmRiKiRjNmdCd2lSdUhjaXc2KXVSbE18QnklZzR2agp6aG9mMXBkJDtyMFYzP2I2ci1i
JV8oMjxpVk99I2dZTSkrekArQkFLNWF5TiRPeUh2a2pgJj5oMTNRbzlSd3VKVFcKeiold1pITVh0
UGtnTFdHRlpCLX4tKlFVbHxNLU85SFZgbEBNZFhyfXpgOFQ8anpZfkNCN2BHeHstU0tiKlEkTWR0
CnowJnU9e1BLRUk0cnxnMnVmcTMpdyk3Q1hkVilEOHlQanhSWTdAWGhJbjczKGIrbGRRMEJgNH13
MjNrMV5DUyZHWQp6NER4cWBsfDZoSXgmS3tfYHszemF7VmArdSt6cm09M0krcXdzQDhsWnhCVDNo
WHF5SWc+SnVgMnhxQ2I1UlZ6QikKeiYtLVo3ekJJOW49eTRZPD8jQDhSODNlYEJadURoMStlRGVf
QCtsJkJgR1RwJHcpVF40WVRLV2JVU2hvXzlJWX1MCnooe1NhOV8+JEthQU1RYDFNVUcjJUNLWm1u
UDhpNVlgc2o1bj5NajRCeXU1UD9TMlg/Wj1AZ3RwXzJ1Rj9OX35iRgp6P3wwY0tvRVNNNFpgaUIp
JTFtODBxTiVCPXo8K3duKWtXb1Y2Zz9zV3R7MSQ/SVp1OT4mMnM0T1dhUnFrRSs+IT8Kejg5eyYw
O3g0fDl1ZitPaWZVVSN4K3Q9SjN7cldWPWBjOTl2V0U/cVF0UHlmfGV7SSNHKVItWXhxdnZWWXlk
YitsCnpzQGBzIT5tS1JAUUBMYVhiQyozKmNHTn5EKlNVdzkkSm1CeEFNJVQ3JShvYVBmVCphd3Ew
ZiRRRlJLXnowaW9wVgp6bEFHb1gkJWNBJEdxWkRobHdWbjIlUXM7TkRqSUxQbC0rRThSc1R0dHlI
Pk1yY2VyPVoza1AkLUQ7K2B3eVk0UlkKem9ldmtmLXpVT09DMEVxSVc/MCsoalUkb2dYeHl1Kk5S
ZkJOS0xoYWZOezFBcjl2MHR2RVVJPUJNNFVkd3NXV0hMCnpRT31qaEN3QkFFKGNidmk/UDA/S3Jn
cjB4LSEhJXNyUWRvTE5xeWhTVUVQMFNpNSN6PkZqd29IVzRwO3QocmJndAp6LW1rQmlsd1coeF48
Izx9JU0/MXhXa21OM0tRcDlYUCV0ZnttcyNUREpLMzF1YG8rbTkrY35COVItWXtNJmJQWk4Kelda
YUQxVS1qejdlemcoXnYxdD96SF9rcU9vJEpZNFltKzIlfEVrdkZgbDgwN2U3bFdEP2o5TVFHfSk2
OXVKblJtCnpybXklI2okSFFtbXxrUXFAN3FMJTFIKzVFSHl6RiNjd2YxUEQ8SmI9K018JGQya0dQ
YzZeZTdOJSpFQHhabmslUwp6JX19ZDVgKUo8aj53QFJHMH1XaDFjaEp+dU90YX4hSU8weTNiTk5P
PGRFNDcwOGs+OHc1MWhvdjNKUn18YWxIc08KemsjUzkoJTBBUH5TOF5rMzxFRm11VkFKQCtWeCNs
UG51bT5jZDlpd0plbzNuP1RafG9BbCVDZ25Ib25iJC0kS1d5CnoraXF2S0x9SkNfMUcxfENaUTwj
SzBFZipGb0lZOUYlWUNkWmI8ZmMkTUo8YjQpR0FKWGN3WE9xcShWUkItU18pfQp6TV4jPEUlYHl3
ZGpCemVhWVA9X1dwMSU1PSgjT0VQQmspM2NqbWE1bmlKe2pLaFlhTlZVbDlQUi1PMEMxKz8pK0gK
eiQ8LUM9KT4wPEkmfDxqJSVpUkZjQk52JVdxVShEdnchTk52bDw8OSswQm0heWhZTTZycnRrPEhs
MnZEfkY5X0puCnpQY04/OXViRV9ndnxXNXhQNTtxT2pLVmY4JC19cXZvVVgrbGJ0eFNQP043KGdE
bjdtKlktMThQNmhNRWhxJFRCfAp6ZGBWWlIhQlRRWEMpJmlOQkFlRG1paVg9UDxoZ3Y3XzFrYVc9
V31ONklMIU0tRClnJXN4OF5laCMpZkhVUn5Ybk8Kej1zbFREXkpUNmQmaXp7YkVrVn1GZDk+RXFe
MD19MUojI2pXPGROTkQxSUYoTkFuI1A/amBDO0VxSDIhKWJnUGF8CnpQMGx6bHBWVTxUZyF6TCg7
cGJ0fk94bylRSShLI1RDJmZQSSRUQWJYfDV9Y29XaWk7Mj8zNT8oTGg2dG58SChaSgp6djlgN3Va
dmB5dEwhNiZtdjcyeDR6R19oUGBsNGBRVGorKUUyeGFYZT05PTBDO2ttbF5BcyErbG1vX3srI0tJ
UiYKekZNfEMjVjRBQWoqUzxYVVZUMnlFP3NPWlAqU3s5NFBGb0BNSWJQJT13a19ia2YjYDxZLWtI
JV5JeUV6Y2Z1QH4tCnpeK3xIVWhteEUxQH5NeTZ5bHdrM3RWUXspPG0mVkQ5TzRDciRFV3p4dztn
fTJMYkVBU0dgS1NHPn5ve0M7LVU/bQp6IWo+RjF3TjNCWXRrWTx5M3s5ZilzP1JLUmF8JjhDNzQ8
NT0oU0kpWTlOcDhFVXpwSnlSezEpYXh0eGRibWNTVUUKenY1Jlg4blZRWH16cT0/PClrXjdXd3d+
SWo/eWMhSiZWMFI2SEs8R2dGOVB0VWtNQjB0ZXMwdF82eyt8UnpqZCpCCnp3JXAlckxGO2FeOXNj
WGshR2tvbUVVQlZaUzBee2Z2S2ljUEpad340b2M4M3hOJjhQcEgjcjNnLXF1fis+ZEl1JQp6ZkFV
Tnk8OFoqd29RQUp1S0BRXztTTTk0dEFLSEg/Wm0hLVYlanNmakcrQlByJXlGciY1O3sqNzlsaXVv
c2okejYKek8lPUJZKW5acyNYdX50WTB+YGowXntyP3t3STZqS05nTWtmNzxYYmZxWiZJWjtPYk1h
az05RDNzY2ltQDNjNykoCnptQElOY1VucVJtTjE0LVgzZE5LPng+Q3IpU0V1bmFndzAqTCRNQ2lF
cS1lQUFvM3Y1M1hffWJublkpaXExJjZZeQp6V1V9S21wTn1UZU9Vc0A8JkZPYSUlVld2MForWE9B
e041fD47ant5X2xZVkh+YEFNeC0tdXVna192diVIekx1NU4Kejl8flAhbX1eK2ZpV3I1SE9rbX5R
YCE2UChndkwyKVRMU1B2Xk19IWQoIzcqOHpmS3B2XldfM0Zoc3dtYyNJOFdgCnpLRCZGSjZ+VHZe
XytubiMoWCN8a1NOMH57NSlaS2Fza2QkNmBYei1BVGNNNTRGO35ldiYjX0c7b29EUWhOait3ZQp6
clQ4Z0ZOWUtYOGlgcyh6RFVZYkxBS257bG56USRgaSZlYSEjRW5uMD44cjsjKzIqaSZFKmFsP1cj
eVZlKE4xajwKemFqI0M+RmFPeiZyQEpwNyZPaEpkPzJJYHprTEw2M2VwdFpFezJyZnI+Q290MlBy
bE00WFE/Y1VQQ2EwfTZXTD1xCnpuYmhqdyNqd1I7Q0o/V2JjflY4THhTaCtHRXBlSjw7TDFjcEY1
a25yZ0kxUD9lTnRhQzZ9czYmOUglcTgkQz50RAp6ak1APTNZcCZgcUZxWXZnenNLUjVOSzM9KTEx
V3kxc3JTPlpFfCpWPWhQVyhoPCZ5M0NZRW5kN1FxUWg1VnhwQmkKelVSaGJWQnVART9xSzApbGM/
MWpWJFVPY2U2JT84SUV8bXFwUDheRiMkX1VPUCo/OVJ7cT1UUC0qZHFhSEpCYlVlCnpNUFEwb3s7
OVVvKEJYIWNON0h7flo5Tip0d1ctJVpaKlpeViUlJC1NaHUqd1N1VCFvcCk0YkxteEA8RiU2Sjl3
Sgp6LSlPa2tIPzNsTGY9e08wP097cUsmZ0xTdjxDKjtPJDA5R1V1eGVGdnI4YT1gPHtYfnFoXyYq
UlJXfmxAJUc8Pj0KekdSXislZDZAYjQtVSRRUz4heXRGZFV4RU9tQ3FnRnlJWGF8SXNmTDZKSnQ0
JGAoMEN1NnFYJE5nRjtPPUAlc200CnorMER2JHhabGdxWnwxI0dtU3ZPQ1NlRUkrSEYwalZ0JVI8
WHVmbyt+THB7XnVjRk1GWHhfT0pgQ3peYGJEUTYkcAp6eT9AenxvUyg1eFdWdlcoVSY1bm93d0tB
WUZBOWI4QUolalFJRDhMa3s/PT9nZXkxakQ9bDJualhpQClTWXp8K2EKej1YTzd8JS02IXVDNUl0
fldfdCQ3YSt3JXItP0F7cHBwS3VlS0ExeEt6PUM3PmdKeVJkTUFFNHlAZzltd1gyeGxXCnprR2st
Y0V7XiZhPj9qP2hPMEk5ZXJObT5BdV5ASE55eVpTY2tkRl9Rb3xEQlpiWSpoc2tTUnleODJifXI9
RmQwdwp6STkwbk9pYUolQ3A4RU94SyllI0B6aHx5KzYyNElrPXU5MHMlRDIlaXNrPSFyT2YlN2BU
VyZKSz08OzRpbGxLfDEKekJsVG4paXcqdmRtZmtFNTVQKjxsaiZIcGRVYU1Wam1XS2VJRGI5YzFZ
e15Nej5mJjl4RX5oQnU8YFVyVEJ6SCplCnpvTGZqYGV9JSpLKHhxNjttZVdwJGQ1KDEwaEJhUm9Z
Pjt5XmJeS0F1b3A9aGZIMC1BckV1NUk3Vkh7PG0oN0V4fQp6NlZXUylnWUZhNiR3XkpnY30xNlJK
NDhHQGQ3XmQ/cXVgaShOPFg7az5RaXxOK3hTcFcoSz5mNGVfbDJEaDVWV0sKeiNqak1peDQ1LSMh
XmZEV0o2ZzBvO0BWS3w/YjY9QjhSOGVPX208bkhgdVNMQHBzd3RhTChWaj53dDs8SFgwRXFFCnpw
a0J1IVlQPmg1UEF5YDAxb2R9NEpUc1gpMEQpe3g7YGtyZUQ8c1VpbyM+WlVgVUdBektBO2gxb0Ey
ZmYzdylgOQp6YzU2UkpaXns7bVolSzJJKXJsOG8zKkVMby11cU5rX19oMWBuT2hJNTJjQk9ybjJ1
SXR2SEJ0TCstVmB9bWRIPUcKelF6ZV9UMylDMk52QU99eng3TmtILVpJa35jYVNmP0JXPSU4OypA
LWFaPUopOyp+OGRfMzNCcWMmTiZEQ2pBSmIyCnptZDF2az1RT0cqe141TzVBVFFlMWZjOTlJYmpW
JExTTld7JHF0fGZoLXUrSEY7eWZMZjdBQG1tYFBedE5Hc0hkUwp6YWNvZX1LY2x8U2hsTWp0aDJz
e1VJPEglfTtLbHhKQ0ZYdH0tUSFEcUdkcVhBcy1NYUFtaDBIb3V2TUs/Ym1eTVMKelQ/K1lmT0F+
Kl9JYlYxR14hRmNHQis7UzhXTlpmNCNAI31GZUxkT2t6Zj0rfFRmQ0lPU0x6fjRKRlh0R0JoTEso
CnpnNnA+RHJsbD0rS1lZRyhhWnVma3h+PVluPn4oa0hMR15we09AbXEpM288X0ZnTFhSe3EmSmpm
Z2tJQlNKbDlAKwp6OHQ1X2lTU3wwdl5vVWw/eU5icXsyOWIpRks5KlAoaDNXNUk8SEN1P21TKHl+
YXR9OGp0MiUzNW5+MlZ1aEA8JjUKenpCbmB6KU5Kc0BzZDFXOC1AeEZOIz9FRS1qUFFhVjZSYksj
JUZHV2QtPHAocnZ5QkliZjFhbVcqcmlVSkslZVZsCnojOHVKNTZGdUBYUFUrTEJFNWUodVd5KDc0
QERiMnxHJFpHSz4md3IweDdjQkFhV2x+aT49WXRpe2U4MkY5WlAlSQp6R2lYWX1iPjZiS1BhMTRF
Nn1jI35eWFNFWD1FKnFrO0BCczJPNFNSY1pqcjNUTHlINT15dChfZEl8eUolcl9ebm0KejI3bUsq
aUR9SUkkRW0lRWdfUHk9M351NHcqbGtaTklleU5Gd04oJGY1a0xVcWBSeCtyQEJ0SFYyZmsxVGV4
OG9JCnpeTnhZPWUlNUU2b2FmJDw3VjVeVytaeWVPc2MhbTU5YGRJfEdWbWw3R29OemwrQVY4b0pV
WTVoSzc7YDdLWEdqTQp6KU1JLVM7fmM9UyVgYXhhcHBlI2kteHMkeS1nfUNzJUxWJVVSMGgxJVlW
V0lfVW1xfmdadylUSHBifFVecm4wKlEKeiZYJTRJMmpwNyFodDUzTCheSFFXSl5MKkVkUXM4eXVT
ZjE0aF5BcnRrPlRhNGpoaDxMSHNuMlBOJCFVbyV4RVFtCnomcWt+PGpAPWhKKHotXlIxS2dJeU1K
KkM5TWhkXlZ1cTlHOXNDNTFsRXxMUEo+ZmU+P0hKeno8cyFoWFVhdXt7Zgp6bmE7a2EmNWAldmRy
MWsjX2gkT3hldVk2IzxUSzBsZU9Ub2RPUEBLdXpvfiFtZUZtbkY/aEF0LXs/ckEydVFRQD8Kei01
OUN0dUlOdig5TSlFWWxsKXVOP2pFQ2kqIShFeU5VP09+KD9Ec1RYZFNtS2QlYUJaZ2t8JjgrcT11
VWFrSiV0CnpNVGA0eFcmODdHejBEX0lBaUV1WmxVJjJwZSRuJDtSUWkqc1lvKSQxbzZVRy1tM1dg
MGR2PC1rbWYmNjclanM1NAp6N3M2bGxWaTd0OCtjKSVRMlZQc1EtQ1dXN2xIJSpnaXZAIV9aIzFz
SEY2UShKQF9SMStFcndyY2khMGZecGVObGEKenh1MjdSalR7WTVmeyV3SkNYN048NGIpPHw2KmB5
aWNXejBpcWlXJXduZF5DIyVafn18Y0gheG4mZVlnbEEhT2BLCno9Mj8wN15paWBKO0VIODZYcX47
VUY+IVIxT3FBYF5PcyRYZSZkYk1YIWI8Uzc7bVJfQ3hoQCZtZzhVNTVUMztKKAp6WFpUbEFZdCg3
KVpnOWQ7aS1APT8+Z2w0LXFJKSVWRj5ISGtKRT9zfnItJShUUUdeU3lvZ2plYkNCXnlhYztrRDcK
eldATzMwS1crcW9PTmAtUzA9TjtOQD9ZRXQ1YjxqeDA5QEw/VytPbitudkRSQHw3SWdWPChpRUV3
UUR2NGR8azU8CnowOWpHfWRuM1NxXkZEeTBIVHdYYnwwbmtXUkliP3YoRTJ5fjBMSXFyMURPNTI0
KipTQXZrdzVmVyotMjxudGNGVQp6KjZhaHx7Nz4hITs5YXYxS3JyUCQtVXBEOUBfUWVeald6b0ty
MmlaQzBWd19WPjt3Mjt2ai1zTFp9dEVyZ1dyMXEKemllTWwzX3R5VS0+dUQke0Q2a2FkbHZwZzVp
aShuJm1XaHMqaEs4MVA8MGJ8c19OfDs4Pnw1RWBhNkFJTUk0KnV9CnpIbnZAb3laTUVMI2wqeG9k
OE9zME1DMWZTI1lCa2ZYe2V+RVhsWkMhPTsmQlB3ekYqKWBBPVZAI2FUQiUlS0c5Zwp6Oy1hKHZq
Zj1EWHVvIUFrXngoZWtATXJPPDEhVU5oYE5kPEpZSWRPfnVidVlPKXM1TUF0fGo8SSNjcHowYDNR
Um8KeiV0TGYhZ3JETHFiflROPVh0YllPdlhPQlk8SCQ9VWtHXm94azdwUlphXiV3fF9LVChJPl5w
Wnd5M1YjPEVLbSZTCnp5I0peKHI/O1daYjdXdUl6YD5ScTZfYCRAcl95KSV0azFsZVk8YXc0RUx8
Vy0jQFEjO2krKWRCRCpLMmsmYTZyeQp6S1J5TCgoLU9RZHdkaF9OZE82P3dUYTNhcm4qPVlHciZe
LT5NbHtzaktBdmx7aTcrQ1FQMldFTVZRbGY5VG1uJG0KelV9YlZeSlI5aElqbFNlQXhfPV5OeWd1
LWdPLUpaVlNIbEwrcGBSYVR6czJNaEhITD1ZOFZLJmNvTXtyWHs0e3Z9CnpRKiFIO2FiYHVeSGd5
KHApaCZxJmRlJj9ue1JNdChRTiNHJTJtMH5AeHR8Kl5Sc35WI0MyXlA1OWpGTVI/emI/dQp6O1l+
PFY1VyUte0diX3w9YE5GT2llI3N9IXRkVj8/P3R0NkAoZENyb29oQU5CQT9YNXxJd0t2KTU2Pn4h
ZXJPY0QKenl0aih5JjdsMEN7eTZoaFJHY01tT1l5Zkp4MHRpTEFJITEpV2N0XyYleyY8MFZ3QzQt
WmhTaGEpOTk4c3BQSzEoCnpePm5UOFM4SzhqSzRNfHA+KiUkK2tOa0xCVnhNSmBtZnByTTYpV3sh
aDF4cVlCc0U4Tl41aldwaUJQTkhwLTleawp6MTRwQ3QzSz57eHQkJlFsQUo4aXFSSTA+cUU1djht
dW89ZUVuVUJobUJeaUtPYVdqOS1kOzMkVWlVUkMrc0sld14KejgmbnQkTlRUSjM+TmJAWjRXZjJ2
JU8lQTd5WkFnYzR8e219ZVdyJGgte3Rfbl93cGp6am03KU50Rz1jZV8yMCNjCnpUbHglcysxLWg7
VkdDfSZ7QDZsUkxfS0doVCQ0Yk9OSkZRc2kqU0hYa0E5V0VfVDglYzlqQENWdmVfUHBAOFA3bQp6
dXV3I2NudDlOIXRyQV4+NXhTdSRSbmcmNHp8RDZva2pyOTU2fGx1K2c9dj1UKXJ7Nk8/aGNoaXhv
NmNrVylncyUKenVXcjcoK1JOKm0qXlZ7azdES2h9Yi1tTTYrcztpY0dkQ0loRmpRbWV1QTchUUUk
ZE1GKSszM30lZU03bjsqNng1Cnp6fUVJMypvKi1hIXc/SWEpRUM3cVpaRVE+azVhYUJDelVrYEh0
dE5mRnd9eXQtKj5tezx8LVZYc3VYK2VPUi1OdAp6YXFIKDJedWZ6NCFLSj0wJVRHRCphYWQzbnBZ
aiN8KHp9RGgrQn4rYHlndy0tR0NPKVZMd2szRy09blRwc1RAeDwKeiYqN0o5VDcjcGVEaD0oJiNQ
Y2l7JXVBajx2PlBzfm0tM1JBTiVYdkBlbmhuNCU3QzB8YGlUPm9UYWA8eCpkM0JlCnozWFhOenNC
Z2M8O2I2cz1XOUZWVnRrJCk9Tn59VjlNMVEjRCNNU2Q1QF95cWNETCtuQig+aD0wLXItQVRENFZy
eQp6Jl5EemB7eFUyM3BqPTtKS3tDVlBibWJrc2BYdj9RV2AoYEZ0cWtafndWYUZIcj53YypnMkZA
OWR5QUpuUyY5diQKemNHWlk+Sn5ifFNTVzxrfC0pKno4QysxNHIxS3NEa2JaPE8pNzM7MSZTYDNR
U1lRKiNJLVBGSS1hT0tSS0wzYnMjCno/Z1dmcD4qSlBedT87MUFEUzVoaXVZOHdqNjN2WjBvdiRs
PT01KnN4QHIzPUswKjhkSDdhcmclV1NSc3l3c3VYQwp6SnpgWmY4V2VhS0h8bXplITJHVnwtb2st
SXc2fS1pJCU1dn5jNj07ZmkpPGQpekl9VyEqbHA2V3k3cVg5fEF+PyoKenl+QkFiPn1kejFUfmpr
Pj9oZVd3S0w4Q3Roa0IjOGRmcSFNdTNqNm5SKHp2JTcoWlhpQVMyfH5ra0FxM1JWYyFjCnpJaTJI
ZT1yJUtRI3gqcnpZQXtQcitIT2RtS0tWcnotS1lCSHN6TFpfZDZVZEZmR19tTm9gXmtPU1VDJm5v
VlNTewp6eCNDfWpOLUJNIzU2XmE0VHJmNTIlVDEmP1BPbmohPyY2VUJUclktZkx1d0o7eEZlJXZ5
QnNhWUcjcT9sLXw7TGgKekZpKU18ZCQwV0JeN2kxTmsmfHozRmFpbzgqezB+Wksld351KVl4JU1S
cWhGdkZHOWtWMmZvSC1zQz89dnYrUG8kCnp3aSVQO2pDST97bkJTbDduSXc4JF4ycUhmK0BeQ0tD
OUliaVZfS2VZV3V0ZGsqWCR8bmsjcDQ/TmlAOWdxc0Z2Vgp6MWtLYmxaeTJZbnFXUXduQDUqIzEt
T2sjTFhvVWZHe0lQYz5UZjx5MXc3d2J2a0ImJmhUSzhDIVJXMX1ieTY8KnQKejY/PyFWRyokMXs+
LXB8a2lyY0khaXVwNVJXV1pAZC1jMHRVaUtzNykjbTcycyN+T35fbT1BcHJtcVZkMjdJZmZNCnoh
X2pTWE4pPVNoa01IKzE3YnpXMipjMCtPeUYkSF8lXzdfN3ZSeVRvJnxzNml7ZjVtPDcpMX15YCtr
cTNHN2VEcQp6U3VwISoqTkR5O29QNSZqc0tLc1RBPV5ZSiozMDhLYnllQzxpR2AqOVc2OUdhPWx0
N2NAZ19gKHA0PFpvZVMqKU4Kemx5eVJCeUlGSSE4TGNvJHBAemJwSzA5fXM/RU1sUDdpMldoODYy
R1c/ViVpLSNQPSh3b2t1IX5ZK041ak9Md1JICnpoN0VlMig3VylkP2RlbitOQXtIJHBDOStBcF9j
YkY3ZHk/MF56O2o4SWMoOUZFcWx9fCpIX3dsQXBUdUp5dSZMdQp6PVNIc2pfV0U/Y09MYzgtUUBJ
ajlqRDlBaFZBKDdlbiRqTTFnPTs5QkV3KEU4UklmUGhTWUR2dGVhQ198JEszSGUKelBkTU17SHlf
NnVkOFNebEtBPyU/cVRwNyU7SGojaCVVKkoyZTc2bE09eEkzSlk1TWE/Q25GcndQN1NsPmFeLUY3
CnorZWFidD5naVNPIXdMUSUkaXVxQ0RsXnJwTHJyQCFsXyZJTF90YzEqJi1XbHxEejJhPnpNTXdn
cW4ob09MWTJBLQp6MXgqS255cWN4RG4lRV9fc199K0tKRVczdHRBMCFreV4+ZFJ3M2pjVVhLfmk/
VSMkIzJlPGVSWG8jQWxpNSpNWCEKemQrbzZ3OTsod0dKUWxxPy0/RXRac3c/ZWFYVkFvaWRifTdw
KjBLPGtkY1F4cSZFU1FjIVJCWjBYIW1oMjM+WiZzCno+UV9ETEN6PSRBaUhkayM7RXEyeFFfWX51
KT9fRlBMTiNCc0lLPVlCUn1VTU54KmgmZiZybVhgejtnSHI2REU+RAp6TjxLPyVhPD4hcnozJkFs
UjNuXlk5QSgmVjRhfSNDKmlBJUkpZytwaTRjVTgweFFATWpHYDtoWXhjOXFEPWVYSSUKekl8fVB7
cU5OOXBaTXt0fjd5Tn5LRHI0S2V7PTIjSVN9YHh+ODRhNE5OZSE4Rnt8Sj8/ZlNxaD5eMytBTVk4
SHg4CnpzX0o5TWdXKDh+dGF4ZF8hR3VBJChiT3dia3woUykpfmNOVnZNUzlUbCRYbGhSPHE9PUpn
VCllTnhwe3AjMVkjTgp6PGxaeXpQVnRiKlkhcShybkFeIX1kdnQzYHwwdEB+bTtQKiRidFY4bXgp
V3gwUmdWNH5CekdfVDtPSUs/ZWIqOHkKenR6SytYZVlhfSRfRnxgcDhoKkQ1RGl3USZZQ1cmbDdT
P0lgKEtoWTtAYEFeNkk7VSlfd35mVTFAMWc4JkMxR3kkCno5VzI9e1dPcy05e2lvUTRLUiVvOzs8
Tzd6eUJZJEViZE14I2doUzI5aXdiZzw+c303M01wJX5AQWkxV2IpXzJuVgp6NENkOHJQR31eQlRh
PEJPeyttdj1MXmdVcGV3bmd6b3JTeU40YWBNUlBmQGtfNGJCZWRiI0xlU0M0OFVXeFZjVygKel91
RTZVOXkpSWg/MlpAWjlfQmBReWJNMUl7bzFlaWRJPD89cHtjV1NwMHhgWWQ9RChSeUA3OGxaOCgj
R19ONyttCnpUVzl5dHchMGE3ZH5QWHVZK3VQJCpecj9YOCs9Y348d1FlKTN2O2lsWWVgPjg+d3wp
eF5uRz1zIVkwJGJxYz9PNgp6cUJgYy0oTz5HbTk9S0BzUW0jb1VhRGwoaS1FYTRVV0o7VX54OWUj
ODs3a0dVXn1CNXd3N2ZYQD5pd3opPFFpPXsKenc+d1QkTnwpPENzaUxOTGA9b3pJJCkjVWtrYUUm
JWV5YGBAOTZqO3p0eDMkRyllbHJBIypAO1Q5YEwhMWVKcmJkCnpgNiVYbyNoWjtPKT0hMWxDTDgz
bEJKaFVBJWtzWGRUKX40ckRNe0xYV0gkRTAxfjJFeGwwYzNqZXhubDBpKz1mYAp6XmRePm8ycj5m
TEVJZWRmc2AkPVQ4dVFlVDw+PDktKHRDOz8pZVV5YWs0dHg8IXU8Xkd4XjlHZ3htNyg+RGdOZjwK
enQ9VyZYXnU/Ryp4eW5EemArUVY0Kk9vSnNjZTFSejxXSSRwcz16Vz00VVB1b3ImVVAzNyU9ZSZx
MUojU3Q2ITkwCnprbD9tSk19NHpFUUpHR3ZtQExWOG4jcV4pVksoM1EpWmNIdGxjXntxSDhxPkhe
KDZ0UXc4VmNzKC0tc1Z5WGxFRAp6NnBRbHE8MSN8ODJSNDBibEhKRVV4P3E2NCFnbGw2NWV4RD5K
fEJrYj1acmZxSD48bzdRUDtjRHBZQ2pGe0FeUkEKejstMTg0cEIhaUhxfjRwbmFnYEB5S2glNSl5
RUpnRnZFK3U8MEtIN2l6P2d+dCohd0hndit7YmN4dCVZZDZEUVIjCnpeRTlXe1JfYV9TeFRGNDl5
LT9TO0hSMHtKJDQhc049UlN1Vj0oJG9CXzlTdEdCViV5WSV6Wj1rcjUlcjNJY3N1dgp6VmFkRHsz
VTBYdWVOMWM5IW5qPS0kaF4tYlEjQjtWITBJcD88RSs4Yl9tbHheaShCQDVKLTFjUEglSTlPbkB6
Uz8KelJ9PH42Xz8qfHBER0xjJkEhNlMzMkwha3xQeEFGdFA8MGgqJHV2b0Y8TGNEczVfYVk0KGZ3
ZmFFUnY0RGBLfjBBCnpCVkxaLXp8PElSMV4wKXFyYChWRT44UUdXWmh4SGE3PE9FWFgqQH5Ca2tN
LSloc1ByTVk0eEoqbyV+bWVZV2ckNgp6O3hQLUMpVSkmPkN+aUMxaT1Na3NVSE96cnVpVEY3b31r
QjZUfUlLejYyWGxkbnlTaislRVMrPFI/MiswPXZ+XlMKejdaVWZEaFBAdDU9cFV8KGNRMnthOUJI
fTJYRnNONkhsSXxVUUNYeEY+PXVmZlo8NmxiJCFVMlJBMWhlSnErPVpFCnpxKjN9Kk9LZXh5Nnpo
WU1PUUk2O3dzIzclM2QqJWxDeHZ2eXdwd3ZwQFlqWW05c2hXUkZMdTtxbm16ZXx2dX5HPApMRG1m
P08kb2xeUDNlb0JrCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9yZXNvdXJjZXMvaW1hZ2UxLmpwZyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvY2FudmFzL3Jlc291cmNlcy9pbWFnZTEuanBnCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU1NzIx
ZDUwZWQxN2QwMGZhNmM4MTY4NjEwNjExZjdhNTg0NzlkNjIKR0lUIGJpbmFyeSBwYXRjaApsaXRl
cmFsIDEyMjg5CnpjbWVIcmNUXlAzKkpja3hqc2xffVFLQVlHMjJlNXJOKVg5T2tlb0JqM3xXR3Ay
dWpYXk05Q21JM2ByMT5FSj96VQp6KC0wJn0mYWl7Jl9rTWY2LUx0I0A/cHg8bipIZ0VpeF96SHBK
dkcmUkY+KX5qVHpNPWxDaz1vPTBFaCNgMFJSYFgKejtKIXowUl58WXBwYTkkZjAwMC1qMmF5MDZY
b1FFWnVSJkxTOyMrN080azgxPD1vVVF7ZVlwVyh7bG94SjEpfjBvCnpLWjk9bD1BYj0qY3ooe3NN
KVRUMWtlflB9OHV0V1AwaHF0JSZJUGprIUMqelM0TiExIWEpM0c1OFVlc1ZSVkJISAp6UFo9UFBk
a303SlpYUj1VYXsrWFZNKk9BJU0mP0dgQ2ZwRCtacGdoJE1gI15DV0JTPWJJM2IpbzBFQy18TX5H
V2MKejIqUz8qO1RHWio2eWsjYjBHblVKcEdZejR7RjQ2U0ZNKjh6aThfJCY3WTVPeUI/QUJzK0JZ
VVExaX5FLXstWGZuCnpZZEdkI0pRRCU+I2xabDlLQGt7I2VlT25yMFFfSFpWVnArKHdTekd1IUdH
KnYhYnJAJl8tWjg5cFNmVX5OYko5dQp6SVRHaFR1fD93ayMtc29jaVQ0e3tMMVg7Q2UyJlExS2pU
NSk4X2J2YkN3P0FvP29gbGtLNj4/MUc1JXk3YyRXKFAKemkmSDtQe1BpUkQ7cmVlcmRMYDM7YDJr
JW5mQkctST1xQ3NPR1hDSysxTEhVVShobUx5I3tCRDNJc0B5c29mWFomCnp7cy1xRDhaLVdBeSE3
KSY8MFohYjJjUGdpNyhJazhkPXZuZk5DKnZ4KEd9fnpUbUFwZWhVV2Z4NjF+dXYwYkxEIwp6dzxQ
SEgwbEhxNk9SMGJDengkdnFHJSVHPWxhaUF8MHxzPXhkfHJNcyhHOXhBTGY2WSo1eXNFUWBxJW9T
KCszVm0Kek5CK35VYjs8amNuQGY4Uks+cyZTcEQlfmRnI30kTj9AanJ1QzU9WTZycyhTTnROKHtq
XnpwWUgtMmtBQVMkd0ZhCnpsYXIkbTduZVBwKTV6NHAqb0BQfSFIJnojJGRRWU9sYlpfPTVxRVBt
R087bXBWbFh6ZHUoQjZyK15sVjJXVXcrNwp6V3peelY7OHQqeUdQQVVqXj87ZUZjX154emMtV1ct
bmxnJXVGXklTY3ghRjB8bks+Q1R4WV5tLSEtZD5MOEdrdyMKekxnUHlfN2JDK0BpaiQyZjw1TEE/
MX1PKWE4M1I4akExNX4+ZE4kMHxUdUFreV56WFVvbysjdCpBWUVOdUliQ0A8Cno5Ymd0KkpjNUZQ
VC0qPlkyOz9yQmFUbzR4P199aDUqQjtMRiRIUE4yeEN6WTQoYUZsZXA1ZkE/aytGbGJsUER3bAp6
JmM4eWtiTnVWfXp0I1NTPXhCLUZYNWZ8JXt8b3h4O2h6Y25HcylFQ3VYOUlkbkM7SnFPLTtEV1l8
WlM8PzQ5NmYKekYzKThTPj5QIXBVfWk/PlpBeyg0IUImKjw9WUk0THlWKmt7Q297QWV5K1BnTzdR
NzRMU08ycD97VVJ3aW18Ql47Cnp8OEdjdHFaN0kke2spZU1kaHp9e2h2PndjbmgzJDJqamhkMG9Q
TXVAcT4lKnw4Z2wpWTBqfHF6e3YqNFdnaTh+OAp6JHU4bUZ3SElVZnhCUSFkZT4zb0oyTDg+IXpa
dio5MU9OWUo7NkpCRkdrZiVAIXhlb3QxVE5NQUh8ME1eRGg2SW8KelphX2QlUDY2fXNYYmt9M0ck
MClTT3dBJWdnRmcwUjAybmtGO3M3PjtuXiV3ekxXM2EmOzlqMHZ4Q0o1bkcjS34pCnoqJUEzZWBz
TTVMQz0zOHNNc0l+JTtIcFU5Y3MjMjZmKzx5TzxLaTx3aVZMSXlANHo1TjBEfXwrQ0l3eDVMNyRg
bgp6NUVrZlhgOGZASjBiemhLdjlOSilAJGQ9SWdiTVVxRWVIKDh6eXhEcVU0e3dyTFhRS09xKiFE
KGNfZ3NPUmc3PkwKenA7c1prNW94JGdrfG04NHN7S0VoZDV2THljPSo/QFEmUWJ2VlAoNUBgd2sh
Zno1ND0hTFEpU09OejJIfUp5dWlLCnooQTBYV3R6JStwV15RMz1XZXM8N2M1IXVjX2p2aXJ8OCtw
JW80MWlzKEpgQGNAOFQwYXEtU0ppVyN7RFBtNm54UAp6UjNmVVhZbnF6Qnc2d09oY1hXT203I3Rj
I2oqTzFZJll8V1A3TUgjK3VXVzdhP0MkTCE5M0NCQz5PI002e2dRPmcKenshO2NvPV57bnohb2I3
P1c4eiV1MCU1cGIzTWErSHkyKm8wQ1pVMzMxU015TF9+S3JiajdUZUsjQUQpQntYdDwyCno+Jkwm
dyVzMCFqYnQmenF2aX56LWUqYUkoe3RFayN1NW15TCExJThQNk1XZjZPOHtlSFZfez9ldFQ9ZU0q
ZkBBTgp6KngweFA9dkJOZFhoY1lXUGs3bjZLc3kyYkBfX3tnVzh2ZHE8TlQhalV0S09IKGVHcFU3
aD9iKzgyIz0+M01LYF8KemZsO0woTzsrNTYqcnA4QF9PZm4mKklkdFNwdk9qJjxaVFZgQ3tvNGdu
SSYwelRZMWBkZnVoKmRJdWJqa1lhazZACnp5XiErcygxN0l+WitfOWJaO19vO3RkMUAxRjFASDhf
V2ozb2NWcCRZKkYxNmRkbCg7b0o/PGUxdGlLVTZlI1hJXgp6XlFzUFpudklpJmF7Jn1RaSpQSEZP
dVQqbXQ8bit1OClMWUlZWGZWJiRTYTZxSEBveX4mbGF+bWA4ZHRhdld+UG0Kent6bE5rWXMxNFFP
Slh4VmQjaysjalVfUGE3Xk50X145bDcyTVlLdktoUW0oRmpvWF9BQF5gaWk3P3VhSkpjY3B7Cno/
Pj47ZSZpJiQpVmtmNWZ4aGFYeFZmIVNGc3BrakRmPD0qI0xITnRDVEQxX3g2KVlsfTBodjAtbENS
X0xtO24/bQp6PWpxNT9nXm9lRiFobllZZXlAZlN3Zjd5WGY/d1Q/aiNaalduIWRmNDh5fS1jVkFn
fkdWYkEoLTFeR3AxLWlKZGQKenF9ZzdveW88KiFleik2SjJJV0IzQiQ8YFp6UnF5bGpBK00kLW9h
eCptbnRGbVVQaSoyNGIzTGU/T1hYTlRDdktHCno4VE09ZjJENCgoK21jYUBJM2pkRHkqZnVxPWhz
cit0an57YDF+KXo2O3V2MEg2TEh9JHBsfDg2cFNvQG5NRDcwWQp6eV9VN15sQFQxbCNec2RPeTNT
TGMjN0M8eyNPO2YyaWhBWXx5V2h4VXI+cEV3M1Rscyh6ZSg0VE0qOEBkTjwqaHQKejRNZklIanBN
Mkc2e3g7U09WWWY1O2d+JjtKZH1ecT5QMStfVCMxQjIrUWs+KjRQfXRLQUs5VyFFTGtULUwjcX1r
CnpaP3tkeDJXJX0kYWQ9UXZwTil5RSRAWEFsYH5aJTM0RFFMPiZJMkRyVFN9aHxna0FzISt3OS1Z
QDNeZmhaYXZ6TQp6T2ktKW1LdD1acUk4eVhKY3p6elVQP1VSbiF0dWljbXZ7WnV5fDlMPHFRWntj
IVEpYH1wJFpZdD93U2hzc0o9QjMKejNmcnpaeXtsST1Xb25jKXhTQCRvLUNsY2BgcjZFKGErRV9v
aj5uPGFZfntMQ1lZb0hPJCQxPDJxQ2wofEhpPXNBCno1JndheWRffHpMT0MqZXtaMTRoamR7b0c7
SkNmN1p6UnxeYFZwUFFYUjBGdjgmOVJRUXlENTFqK2x+WCpTVXRQRAp6I0N3YWJBcHs4TVAka0FE
YExVRyU5Z3B4NjVNMFZWS0dFdTI4Q2BCZ1Q/TGVpUklgIWVRej1ucjlwZDhXNipwSmgKejFrNC03
MHRTN2U8UUZjMDBkNFcjUy1KY2h1I302dykyJCR0cHwjSmg0VDtqN093bTtKM2g3MCh1OyZeWFRq
R0hRCnpVRHhWZSNHWjBTbmFuP2RFX2E7VD49dGckSUpfdkxBZnNnem1JPVAhXkhGaV9nIzdKZDtS
UnFwa0olMzVjXnB+Nwp6KTtrK1M9KUAjWVJINUM8ZEp2KUBQWDVKQm12MyszbCpCalMzcTkjTDx8
d28zISVSPzYkM24tTlU+bl9HTDZGWnwKem8kNUVuYzB5eTZ1WSVlOXRjYUpuejNuRCgqKCV2cmdF
bUs+SF91WTZKTHNAcjNYcnVtMjwjbzR1RXk0JCNqLWBlCnpTK0JTP2Q+P3BjOXRIflYrIUdMMihH
IyN8RStGVnN0XkthPnIwaX1rd1NhYXFETV5iQV8xOXg0djI7dTVLc1hAVQp6PDhlLXJhUkU+YDRM
ZW10SiptfVY1OTZXc2VjQEIhIVAyJT9KJElgek5XTU1PQGFiMCNLbGFAM3BHZCZTMD1WbVIKem5M
fXRuZD1rZ1UmaH5xSjtTLUprNnstUVRTQ34renAkJSZ0dEl1WF5GRDcqQDNDWitTPnl6YWM+THlf
SzRCPW9DCnp7NFRMSDklXkhBZWh2Rm9TY0dgeik8VCUlYjx3dD94b1lpbWpLaF4lPH11fio5ampu
Zz9oJmUxazBRRig+ZHxeQwp6eDJhKmkkeTk0QjdvTTE1XjF2VTBud3k3Vm9pISNjJklgO2xGX2w5
YmFQYD9eVm52bUhVTEBaSUt4SyhreUJmUlMKekZVMkk9a30+djw9Nzh5QkRFRiozUTx1clZ1RntB
T0dvWGsxTDdUP1BHWFRBLUVWPFdfJiZpXjglKVc3d3U/Q1c5CnpsQVJKfiV0STU+SURQWVJDdUhu
QT0+IWxwcl59NyFuKzQ4O2JGRiNYa0ZWYE9ib25PNmdMfHtZJVorYmhPZ3VFRQp6eWR9flkrcS1i
T0JJezZLO29KeWlVODdoa1NzRGtnOHI9MVlRdUI5dktKT2FsREpfPk4yJXNWbz8lTE8+KnZ+KGsK
elVJQk44X3w+KzF0SjZNY0tsZEUpZURyRjtBJEhBWVclOCorU0hqdT50cFh9YUtMUGppbCh5bl5G
a04tOz91WHx9Cnp5ZiliOGFYRil7SzlkO0xCdj1JRkNAKEpgIUoxXmJMMCkwZ1JCIV9vKXFhYklU
PjBJRkJlP1lFUz8heSk7aUItPwp6M0g7Xmsrc0xyOyg2MmpOV2Nrd0JXbF44WE1WViRRLW8+QFhF
YDJxI1R3YFg9XjBxYTNuWDsyYFZrTFhONDVrNGUKemwmJCFqPV57R311PFlLU2xXRTZPJE9iKWV7
SGk2WWdmcGwkOVBWSn5JWHZsR01GOzRUd0FPPElae0IlI3p9OFElCno1fm4+b18ocjBHQWs8fV5W
eD9LVUNtSDRyQCg1U1RXYzJsTzkxbTxhOEszYTc+Y29CeWxNfTk/S21YKnBgPnxLdgp6PnRXQnRK
czduN183Y3dFaVJ3fFFrSF9AKyojKXEtK3lrUCYjYjlVd2hiSkM7czZRdGBvTmRXaitSJW53XmRH
Y3UKenJvbCFNQVdWaWQ4I01Hd1lIaEJCdU9HX2pvKCglN0tZMHE7JkUzYEhrUiNlIzNBQGtKUUdM
alNWNTdDczVPSjckCno9MztBJmMlYjslVG48fShEWFJVOSpDMClPUj5UO1l5RGN4QSNeUmNgfDBk
I2JeJXpnMk9yZSlkI3BCPXRZSWo1MQp6OzFga30kODxedG5WIUJqVGpWV2l1UGxfVTkpdHZPI0dh
SF5xcTR4PkZgc2IwWT84e3trPH1zRV5wNmlfX0RwcVoKekYlcUxfWW09T15kekdfbUcwMH1aeHZT
UUNlfC0pNUV5aEhqbV5ZTWlwSzNZeXlrYUtfKGVnPUtXTXJZZEdWVU80Cnp5T2V3TjhNbWpOTWZe
MkE/aG91aDN2K3VeQEMkZ0BrfWZ9bDw2QyEqWnZXeV9tKzB6VShhOUtUMCEtTTw/SVkrNQp6a0Zm
MXFQWj5MbTFIYlNIUSVPK3FxYXItQHpuIWF5Uj9OdlpGRFJ0RlY0TFI4dyVJYWhqPURGPmw4blFF
VmBWWjEKektHd3ByZU15VjJHWjB5c1pPVCluNk1vbiQ4Pkx0cl5TSH4qQ2g0U1MrPDZSc3NBPDt3
bm9rfVAqcWY7JXc7PEZtCnpeKD1NNW9mMDQoJm5LSW5Caz95aTQjfDYlVyhwZTlGcUQ/YlZ0O2Jq
KXgySlQ4b0UwI0JVTXAxTHokY2k0d1YtNQp6KEJmP31ObHB3aVA8OCpGbzBWbk97UjcjRXIyYUJT
bSZqXnRASExjWWhlejxWKlE0cHZBXiooblp4WihjRmd7SV8KelBAMjtvXiQ0OGlfdTFgemY9SkAp
a0JpTXZmKj4wbSViKVhNKF8/KDkjZmtaT248bXRST0NgRkNyUytsYGpwPHA9Cno/aW45QFVwViY/
VGpeNzhhbkAja3VXVD9ZX002WXFoO3IkfVIrUmhye2xgO1kpNFU3NzYoSzJQYXk7RG9ifFphSQp6
TTVVbWNLfU8wR2d+dWpIPnE+fjw3Mk5zfTs9NyV9eGA8aiQmZmhIPitSam0wUUNeJkM+bzgkRUE3
eHFlIXV1ZzEKeih5Z1d3WkRCcGVjd042KjFTTygxNVclKzVSVkxXY2x3YUg8ZGJuJkw+VWt5ak5U
PWd3el4yTHAoYGB6Qyg1V2EqCnoqPkhZJFg9QXNqKlg/ej5jNXBpUkdVViptKD9uQm5SbXQyN3lx
XjBRUzBmUGh3e1phU1QzUmZAcit+WGlGeks+Qgp6ZnREemRmOW5rUHo0PnI/Kllwbmh3UjR7e1lp
ez1tKldgNCNEVkwrbkMrZ3t3XiRXbiRYRD4mVjxsQF81elpsRE0KekhISEd+QXtudmQjKnFZRHJJ
S35CYztHUHpkJn5oTE9tK1ckNjdHMkRDbUR+P256TXhabi1VIUxgcEYwdGoqS1YkCnpVcXhEUnZV
dGIwS2VESTF4QiN4S280c2MzJEoxU3V4cUU7T2pTNVk1U350aVhtYGp3KFo2OERHXn5TX0xkYnU9
SQp6bWhwMSNkVnNpI0g8SX5ybHs1PCFBd28hOFFDaVIyJDBvVURVSE9JZXs8UihuSFgzQVBfbTdt
OyphTERZPVR3OC0KeipVR2VNMGNSRklhaWFPfXRBNXk1bGh3JjY0KSU4dSZCQD1SWUZ0OENrSHVZ
T3YzR1d2NDVsWUNUPnFOVXp3NHk0CnpBSjEtMXU8OTsjQTlCPThMKmp1VEYwa0xxbXgwPXBiYVpH
KGxaV3psZGx2STBzWnRmKnV6QnxDK0lLM0RUNislKwp6QyE0UzFuTSZBKEpTQDtyYUBgMmdLbz8o
I1h0YD5mYWRlTTJ4N2pBTEY5e2pIX2JNKXAzQ0AoJE93WGY1IV4jXlAKektYWSleWndER3V7SU9v
PWpTTlNsOTY8VmMySDhvSFhWYXZ6Rm0we0duOXtLUytMJCpLeEEmd1heOCYhcmRkb25fCnpKWT5G
fEljQk98UWJpaDM3MWNCMFFhRXd7c3YmY25rbnNoZXdXWW9tcjlpSiphUkl6cnF0KT1OOUJzeV5i
M00oJgp6RTFaQVYlOFdBfjk1fSgjV2NvdXI0MChqP3V8aFNGLTY3UUY2bHN8Qk5lX0VSK0R4Q2Jw
Rk12MVh6UGsqPXhTJXAKejFLdmU8USRyVXA/YXJ9PSROXmBycU17V20pVz52QFp9dEFRYTxNUTQk
IUdCQjFvaWx1NCNIUkQhRUA8Ukl6eEFfCnpYJlZoemZDTkxuO3RwST5nQCgoRG1iSkxpNz8yamR6
NGpjcGVUPzk3QnUlNk1OXz9aQT5rSHo5YUNwLU0lRGZHcAp6PzxeJiRRfHltSWBzeGxyazJFYUgz
dFZoeWh8VEVUJVN1YkNRZEhmR0hkIU9HdDtUejlINDhUYGB8OD17JDM9aWAKekFNSm94a1N7fV8l
aVUxQDh8RjdlLWBDaHB5ZFNaZlhsQzA7Kn1WVkJJa3EoYURraXNERTNJM3s4VCZ2d29zTHxhCnpK
V1dPVlpRKVAtZCZvdXNSWigpNDd6M0VAUX4tTSRDNW5uSiNzN0pnTns9dVp1S2xZTXR1VzZVWnkw
YGY1O010OAp6Wk87YUQ0MTlWe2lIe0FiQ0hMMnhLK2JELSVSSG1LenYkKEhDMm1CJCFINk94bU5n
M1hTbylTIU9oX2xxZWViMDIKemlmPU4+bFRDWUlLbGZAXy02LUBfPzUmSylfU0JOc3lMYytsZCZ8
dnBXVyU/VmxhITxIREtZbzBFN3hjNDtVM2tsCnppLUl6Pz9Kal8mQFZyRj0taXZ8Yj5tMkV6WVNY
VWpsYG5nfXlFJnNLYmdEQmslZUQ0VFp5WlVBaGFAeGtHM15JRQp6bGxTWlcpWl9ALUhMI3Z+aU9T
Zi16fmdmeUVIJjRCWXQkSzxDaj5YcDdLeCtCTT4tV1BkVHpIRXVAT3wkJU49bkMKek5TaShMT01B
VnF5WHs0IWBKN3JWJCNlVn02X2pkPmtSM1Z3X1EjMSY9cklIbDJoVyg2cGJTam1vUm9xbV5YP1lC
CnpeWDVCTCllRF9sOUhuRXVNSkkrcjQkeigxUD8tci0rYHEwVTlyNUx4R2U9VlljVUxpcjl9Q0x7
OypTUk9HYDc+JAp6Q0Nqe312UWJhdGQ8ZzRFY15IKzVtVE9aTVopKjl8anRvJjd5Z2VzT0J3XkRx
YkgmSDZLYHBYWEtDKXs+XiVDa1MKei1RbW5QNFdmUjlKM3ZeJVImPlBRIU5LcExHYGNPbkEoV3t9
QGB4Iy0+aFN1SEYtS1FSZVZ6N2AzOHxaT0NLUm8zCnpCO2BrfnYtZWBPb3ZgQUd5bF5kYyoybThZ
N2VCcGwzek14al9adlBRKjJ+NWttZV92VE9JdVlTdGZ4N3chUENPdwp6OSgzbUw3MXZPX2J+Unpp
O1khQDZHWENJe3lCflRKaVlAQE5PPkI5LSRWVF5eWEp5aTwqWSZ8UE9GdDtPbH0+SkgKenpZNGoj
SF98Um1fcEYxeWRtNGU8RWgtXnVMVWN+NEB5ZFE/bEk4eDA8S2Z5Pi1UMnc0YjQ/IzQzVnJzdGUx
U1F8CnpnZ34mTSpUMnhtT3decGVKR3NiTVBSc1pqZDlkJkpmT3d7KDd8VTZMaHwtN1VJSVU3U0o3
PGQyb2lEfGV4UGEtcgp6KjBOUWlxfnImYGpudHx+SiRTVDQ/dVp1b29QdHhMSWpXMyE2UEhwKWtO
RkswSyUoUTZyPUh9dEUwP1pRc1BZbkYKenZVNERoRis1RGs5QTRYNnJNV0B1ailTMG9KbUR3Zjkt
KG5oMkM9fVJnbVdeb2AlJHpYdn5aZzRFbUFpNTRoRy1sCnpGUiY3aEJXI2dwJUkjJjNSQWs+PjV0
JngrVXBEdmokWD5WYk11X2JtbiZDdnY1PCQyTlk5NSNkNXw8VlZNI3lBKAp6ejteTTBCV09qdXc5
Z0hjQyVONUtHMEphY2txVktOYWp1aWg3R1IxfDIxRCkjSz04VkxEc3RmK1Z4N0hILXZaZlIKemxO
SDdNVTB9Ji1AXkdMbm00Um5UeFNBQDxAM1MyeyFqV3hwI1kkRlZxOC1GQUxxMSQoPiFqPGJZcDwh
JnQ1LWkmCnp7K3tYbGB2bzgjIVgoYiNxYTcreztOakFDMG9XKEtsKTR4XjU8WVF3OUIofU4rYExt
Y3Mmdk5HNU9zUUBgUmUqYAp6RGZ4fHdYWnxZSCZ3NDFBJExUNnxxN0VIMiVVTUZ8aWleVl5lKGkq
PEppb09Sd1crfjBVfmVwQHhnN2Iob1ZffjkKejE5cGBWeHVWaldrblBVMkZpcmZaYiprXiFPXiZj
cCZvcGN2IyNARVQjKSNHUWk2SkMmQy1GbiNyYUtJVjZgbEpWCnorQHFlPHBPQyY7UXlXTVglQFps
TDZFKk8qaFgyZ3Z4Kk9CcjJFdWxQYVlzektJYmtfRmBJfTMwTD5JQDAoJGJlPQp6Wns8OTRSNFFK
QTdLPDNAWVRaXiheSlhsPm9+PUtQKklJYmdXRiNYVGhEMEpPSm9sfiNvbDNzTW9gLU5jYG56SiQK
ej55STRkK259YU44SU5FaG9Zfj1GI1BUTHRARS1QUl5DS0B5bn0pUCNuNjFhNit+KHIqJjlROWQk
R1dsc1NyNUQwCnpQWCN1JDc+QXZvSkNeIWJ0PjcpN0VhSUdHbVVvTFZELVBje3JMdUh+cn1WJnJq
aVczPmwlOUEqNFZSbTJUPnVkZwp6Y1oySi1aYFNxbHgmZ3Nod0Qtdm13Sj11flJDNWM4PHxVaVZx
cyNTM2Q9T2o2ej1CY1pBZFErM25CdTVBRCU5MkkKenZ5Q3k9K2JRbWZUVXFEcXVSXik9NzlxNUZC
OFVNUnQhfnNEVF9VcjNZfTBOeTxaSVFEN3JhO0VpSV9sZlJaPHpSCnpebWAhZXhnb3ZFcTJeUkNW
PWc9MmB4NW5xX355eHdIN142SnQrRnF9PEF9X3ByZn5jYEdua0MkJHIlPTBPemcxUgp6d2F9OD4+
Yn1icnNrXmdIUzAkVFdNVjcjYjtYMU1ENzlyantZeFA+aEN0P1A1IzZvQjY/RTFzeTwwRSE8MUBA
XmAKek5zR2MxdFg7UVNnYG0yeXJVbGlRU3VAVDZpKCNIbi0yJn02IytvajN5PH10MF9WS0QtIzR3
YFZpY0MzNmQyTDdVCnpQSEwjY1hBWXNvcz9VV1kxelZlSDtZRG0raTZvRUxQSCZTZDxTekhNLUNe
e35tQ3E7JXBxM3wmVWxPWS1lMHZ6TAp6KG1aTW5ZYk5QZEp0I1Qwbj59JVVgRk1jd2g9c3N7RVc9
e0hSVCtqYF9+eEJnJVMyWilma24+Mk0+e151aXBybygKeiM/UVdiTFhQUlgxdXNVfnRLYTM1a3VS
Y3I0ZE5CfUhqWSF8Nm0pTDZQYE8tZEIkTkBaIWRYMlBKWFdqVXFKfSo8CnpuSG8la2BkdHNsO2Z3
YndYYUApQHBQeld5VD5FR0BYbGdDO3QtQlVoczhTMCQ9UXJzVi18MjdZTUpjeXgxYnFGVAp6PWRK
JDhWZVd1fUR7N1BlWSk3ezVWclZhQDBvUDN2SHMkU34qe1MhIXtOOEdGKmJgMEJyS1NyMkctPkJ2
JDhTc24KeitGX2d0aEt8KWlOWEUxdGolMGM5RCE7eX03dW1iO2RaUEtUQjtvdG8xej1mKHFmakJH
cFVUWW5MfEJIbHg1RGMjCnoyUWswdWwzY1FgYFh2OVkmTCNDfXVvJClDZVRCNEF5WFk4b2h1WT1m
ckErdk5jdittVWc8a0JjN3hCflR2RERZMQp6KWljNEdYRE99STc8dndeMSV3cz8xV1pOJjRXand4
VTMwRmwzaW0oUTlKX34kRWpfOWxGRExQaTJ+akYmKXdEYGIKenQyeE1Vcnw0WlBuKGRmTjVWb2A1
PShhYzIqNSVKSnJsQ3QmenJER3ZgfUcxU0hKb04/c2pyWGRlMGxgIWgpaHEoCnpldGV2YVlea0I+
KlFee2BHc3E+M2Rwdno+VyteJFFqNHQxWkg/TFdRbkRXJXU2d31hfD9JZTl3allJenFOc09ncwp6
YntENTxaLTlNKzhMamJrKkMwKHFeSnx7VWlDfStKbjR9VmRxTzwjaT1kaDxRenpNUCpjJX1GV0Mz
YDNfMVpRXkgKekFZRjJDQF9lXntvZnNIcmd7fmZKTTkwVnd3aDljekwlIWltYzsjdkdVUCpKIWpt
JWYrKytYb0ZuRCp7WDdWJitPCnpHT0FYTnxKMCZ1VnF7R2JjZGswOTtUMFchZ19pYSVkblVEWnZs
SWImSUluTTt3X2slIVRAfldXRz48OHJNS2BqSwp6I3lvPW5QZklWTndCeUFJaWtgfl5pQ0I+UXFS
fUFJZkg2TilVWVUmd1g9X2ZRWGtqS3o7QHBJakYwemV8Oz9yMHgKenAlQzdXJXBfKEQpVDlTZEgh
fFA3bjA/IzZCNiRJUF9KU0xmV2VzLV40YSp2YWkrX2RSSTJ9RGBAaWFQNyV1MkM+CnomI3ViTDZJ
ZkVGXlJAQD1Ub0k8eGR9cGhtUSZwOHc8RjlXJG5FYWxldiFiZ2Y9IVdBfWxPX0VaIUs3PG1NfS01
awp6YnZgeSoobX5lazheelpCUmlobnVneXxnJmJhcTxhOGArKk13eEtfc29aNV9kPDRNc1RnelEk
MGFkKDVNQzwjTmUKekwlblFQY3I/cmlkNmh+fiR7Q3lBeTw/eDxDWTdjSWM/RXJQU3MhbmMqZSYy
NzZJMW16eWxQVSZgJm4jQTE3dTc8Cno5dF5IN2QwV1pNLVhuVnlLbSF3OypKPjhyO1ReVUFsQ2VS
dk0tYThRcEgqaCk4JSYjO09BRDg0KmhuTjY2bl80awp6LWF7WFUqXzdfVmBNTlFHUDd+OHcjXmRm
QzQtRGJzOW1SM0J5bU4mSThjZEdPIWgjeUIhRGwzZzFFPXw2OHxYaDcKekAzekNmNWsyfmc7WHsx
TzMmMDczQlpNSEJENHMyKUlne3RaaCg4NkwpYmA4NzhFXmhZdEROYXAtelB9K3M3NVBkCnpPNWVT
PGdAaCEyRlZpRDY+WFchWXZIbHpBR2RrVTI4XnRqbEg2KVhIXk1oVjVjIWpkKzZKM0IwUz95fmpG
Mzsydwp6e0RSX35QMnsxcXZzSHxeelhUSUohKHk9KWo8aFZLYncxTmdZQkY8NyNoJTFCM0NybkdA
K2h4b2BFPmhATGl3d0MKemR3YTBxRiRUTGtzPD91VXE3Ui1QXys7YSpHa2RNRkFEJF9+QEZWR21A
T2pnbjxaJkFwbEl1NDYtZilScmVKUFF1CnpOaygwbyM2OE84eDchMG4/OFVNMld+TiQ7MHdjTCVE
QjF3cXk8RjdSKXJZU21TUnhMTEE5LT9hWDR7TTJ2NitMNgp6NElGJEY7NHNfbStaJVV5cXQ2QFFh
SD8yQGQyM2I9TDBIe09FM3ZNcG42bE5AUihaeWMrbDFYb2JyVU8kbDR8YEoKenU4KVY3T3AlM1ch
bDRwTnNoN0lXVjNNTUg5dnlEdTtUY2xHRFFJPWllO2ZocXZXYjNEbDJ9ejNYaklTcWskKiF5Cnpt
WFVuSE1zNE5we3Ika0xrNTlmZFhaQT84KXlZTHEyQV5BTzdseVgmI304fVdiPGIjQitoIU1QZmZs
RT5GPDg5RAp6bldgNSh8QXVnSjNGJnhiRUhNRXZ4WURtMyk1VnhNMyhNJVhGcVluOFVmLWp3WndO
OHx6T2IhbjhEfktIYiU3PUEKeksodUlgSiopayNlZmolVTd+Vn4/aG1QcTh1YGA8YHBJYCVXNG98
T3FzezxoP1NXYkVRREJIV2JlMmVWaXg/Qmd3Cno/VXglOSlrTmQkdCZUUVZkYXNzRTslMjs2RWo/
e3toRDZaZjkoPVV3WWFCPV4mISZjKUJVbCNgTih5S2lRd1RwLQp6QHt8e00mVW8yO19aZ2lWSFEp
TnNuYX0hdDlUTGd3UyVwKWB6VVh8QDE0QyVHR1dnNzltMU5ZSzxiSTEjNm9xP1QKemhgNyh4aylz
PjlsR3daQVk1OXMjKSZMfEVad0t4cUVAN21ia3l0VlZaKiNFS0BWQ09YamlgPmhuSXlxJWw2QGtP
CnpWPzM2Sj9jP1QjcilGbztnd2Q4I3lKfHAoK043PH5yNUpqNSRGOVI2az1MJkVgUi1BfTw5Rz5S
RGFUayRBTkB3TAp6dGdAQEQmUTFuUk1qXiNSPFB6O3JCMEZJXlp8PlVhXjx+R2JfaFFuVzR0U1FG
ZUt9cGUwSnY9bi1GcD9gaWohT2kKeiVvamt0YDA+eStRfkM/ITRCSl9waCZWVVkhT1BXNzxjWXtq
WGg3Uml0NCY8KFNxJTk0YjJ8bFE8dGZYTShLeE9GCno1dllPZmsyYT02TC01Jn1oZ3V8MFZ6Ujdt
Z3IzK21TeUJ6fStyJDt2YzFLRHdHTmx5cENlMD9TU3BRa345YTY0TQp6U24zang8Pj1PQ2glO1F3
QzJuNEhnUUsocSVmRWNUdWQzPE0lYHhhV0g5WDI3KTdFNjdnei12P3RIYX5+ZVNrOzIKelN7SVc9
TjVmYDFtI1hsWVAybkQhbEJWQFVaanF+fHg3eVN4WGxvJj1NPl8wdzgyKSFQSTBZc1EwSzkzQ3tP
fSlmCnp0QG4mamNFc21XaT0waXY5fD9HOWojMmE+LWk9WmkoOC1zPzF+a0YmdT8hbndtM1NWU1ZD
dExrdTcoa3ooUm11Vgp6SHh5Kk5VITc+fk1UJTNKe2tZZCljYW9uM0lpZk1GekUpNW5PYD9qVT5l
WDxnQyN3MVN7Jj1pQmQtK3R4b3dMTVUKeihOXn4hbnwoaDg5UWd6aChXSUM1VVByTnt3TT5GSXB8
OXc1STsoIVR6VUN+QXdBM1ZnSXdLZzZNZUhiPVUhV2UlCnprbTxUKVNJRXlpNj9rZUkrdk42Y3lp
U1h1ak07V1RydT5EPjEyOzxnNUdsR09JRFJSTHJ7ZVFOPlN8KlRDKUN5JQp6YCMkVUh0anZvZFND
Snt8ZmczWFB5bDJyQ1M9Z2QycmgxO0Zod2Q9WCUpVzF3X2M0TzJGbGpXU3gxaG85PyM/dU0KempT
XmdTci0yRlZ3R088NVRRVUpHdkJyNVBqP0BoWHdQUldSTG15dFIkWE1ZfF5nSSllZ1ltNCQ8UXlZ
YzZ0aG8rCnorJVYqPVNab0JadzFCeXJpTHg3JSZPZG9POWhPTyNfVjJBTGM3QU9nLVhET3BIb0JT
T1A+U3QrcFZ7SWApSE85eQp6Ulc0RShlY0pBNCs/fE0jemEyfDN4T0tYXj9sWT02Vm1He3B0RCZq
Y0IrR2hFbjtseTVXMUM2XkF4VGwoKX1gMHQKek8wKHF+SSZfUzhhIVpDVmZ3OyZgaHB9fkBJZGM2
ZFIkfGNiRWYwQmd1Q09oTzg+ZEZlektDYmkkV2M1clc9KUNUCnpofVdNTTh7KUZHY3B5Rz9jODR+
YnBnTDVnaSp8QkheTkx+a0RURyExXiVCS1N0WlArRjRVdDYwTmk4Ji1zJXJJZwp6ZDZjY19menMz
a3UmUG9Fckl6SXd5P0pqQmVFZTxxWmVrXkYzbyF7YTZvb0B3VkBofGwmb3xNcjNjVWNsRjJEVEYK
ekBZMTtmK2ctfmVffSlXJXVeK3lZVD1YNWQ5YistKXRTVy11QzhmenVDWjxDKmwjNGwxISUzS3Z0
MClXfFdeTjBjCno+VFlhMjVEbUJoQEBpfWMySW5vYGdZQ1VZczZDPlZIN2cxMkFCO2RfKj5jMVUm
TVAhSEBIRS0qclRmfCY7Kzhjdgp6IyhuR2pyRj1KbC0yeFArVSt3Y3kwODI0JV4ra2k0bm9LeWFV
d3ZqQTA/e3o1b2JAPThmYVhXR2k9el81P3opbHwKem8xWkNgMmhLfE5feXNWZUxsdEY8QH1KNj5T
LTFDc3A3Wm1YQikkJmtgUW0+KVQtY31mYyN0Nis4fSFJP3JwUlM0CnpTSXV4aik/e1o1XnhtR3hk
VmEhfHQrPzwwSjw+aVNqWmx3RHBCbUJKNzdhSGxrPDszRytySVoydWx1c1dpJG8oTgp6OSZrZns0
d28wYXVfJi1XIUEjXn00NHR7eiRffmQzPjh6KGojaUohWSUyazRHcFMlVSNCMn1SSSlAciN9M0Zw
Uz8Kelh9OVo4MzxvWFZofD5wMjEpbDhyVUZCRk9tfSY5dnYxQVJiUG8zKXtHSFc4RFl1JSUrOEw8
Z1Z1cip7bCZrUks7Cnp4Sz1JRExwejg5SU5DcC1xQ1d+d1VSZiZlanl+X2MpO2l2WkotaHotTUR4
UUoqYFZlc2ROJmBCMkw4RHk0KHt1WQp6bV5uVCpzTU1tTjZraT0lTz99fG9sWTg0YjBncDdMcW5O
fnwmLTEzUVhBPEYhYXFKKD9IeCtTIWdIYUM1Xkx4M24KendfQ1kmP0o9Rih2WXg5Tz9Fe1dEUkdR
LWxkOXZIOzg8QE5faFdwKWFfTjtIVDJ8fXZqMmNlUWVUdHlEcTF6YTI/CnpfS0xGdVkxeTdfX185
NHB3K0hNUEBGNVVLYVd6IzhLYTIoMFRPYHo8RU8oU1hzMzIlUytYeDBQJWsyd2JeaTJHQwpMRkoz
cTJWKVRDaVNQJG52CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9yZXNvdXJjZXMvaW1hZ2UyLmpwZyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvY2FudmFzL3Jlc291cmNlcy9pbWFnZTIuanBnCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyMDAx
MmVlMTExOTMzODEwMTY0NjkxZWU4YzI4ZjIzNmMxZDhkN2IKR0lUIGJpbmFyeSBwYXRjaApsaXRl
cmFsIDQ4MDEKemNtYlZOY3w0U0JgK3NJKDVRZF9MWDYmKysjQEtnfl59R21LNTwyIVpqTlBhdDZe
U3ErOUVQJSNZPkJ+eWp0WWFxCnppODNOdl9LX2BIaFlyNi1tVUkzJWZCZkZ9cDNuN00tfWAjTF93
YClnZHo8YVA/R2I+KE5ZNzlZZkl0OE0weygjUQp6UTVhUD4lK24xM2pFdzxGMDA1Vyg3Nj1sNmZg
fVFrK1lwWVFTUkJOT2tpITVCXmJtaiVlRERHY0tRUkUqSyNte2EKei15ITBBOTU0ZSE9STI8RDRO
eEp0cE9fMjg5V2tCJmR+ZlYldG1yPDU4RzxwdSplfVIwenxZNEtJQlJaZGMtQlMkCnpoZn1+fHV+
LT41SCNhNUZnR2s7KiQ8ZlViPnh7KkBWc1EjUGN+MCZvK3gwa1VvVXt5cCFeKzYwVjNrI0hAJlkp
bAp6aW1iQVY5MVp9KVplO0VrM2F6PTNlU20rRDc1Y21BU2d+Q1UhMm0hSzAzZzhKYTRaZ29PQGkk
VWZLcnAtMlk0VkUKenZkZSkmVjMxXyFMQ3lzdDFZcF4lMyVYQUhKSEFiWD9aO3NWQkshYSZpNDZO
PVZhSkchMmJpQ1RfYDViRCg7bnNvCnowMyExcTxeVkN2MGJoKUdgKTU3aXdfJkdxX3ZARnpWc2p5
VGR+bmZvcTVHMiM8bVNRLWFRWStlZ0ZNUVFqX3ZXbQp6aDBOUXsxS0M7cXlqe0lKOHdrayVONnZp
YzkpQmtlYHYtO308a1plKipvJlY0SWdKMHt7Nmt+QHpRJnpBYHg8dkoKeiVSbCg2ZWA1ZlU7fDVA
Q0RqPGEmRz1fZyRgRzFSbi0yRns+Nn5xRmRVRTE/ViZ9KUlWKHteTzskTV5iPkJAbm8xCnpUaiZf
Pj57dFFOY0p8Nm9DZz8hVjBOVHowZnx+NX5jaD9AQUkjPik/XzBQRVZQSkRNPmNIJWh6fEdeeTlm
TnctVwp6K3hhZVAqS14obnkkZmlCLVRwcTh0ejw2X0lzbWRnME8kWnJqRW8zSTF8fGRvIU9ZQ1ch
cGc8UWRndUA8JiozOVQKekUofFh9QUJHbz03NyZwWjZBKEhuajdFenFOfVI7WCRqUW1eaXoleHM7
bmJ2TTwjMFBtQWs1Nm50Y09AcFktfWk7CnpBWCpValUkXlo+ZlJoUEcyWGJLJEFwcHQ9ZnBKMiVu
P1EqR2dhUHVpP2JOJXxBVyNeYmZmMiNQJXlJfU1raW5ZPAp6MClzKX1GYWAhVnhIT1FmO0NsZWgk
IzdVdU13e2A3bklsMzcmeE1PaGUjaih6cnM1VTFgVElvP1MqTCYtJXEmTmIKenA/RypqUGwkPDJO
WHA0OENATHdkPSR6SG4oPkV8UXZOJiZQV28+aTgqNGYzPyZFM1AoRD07V0hCczQ2WDVQa0YzCno/
VT5qKmFtMUFTc2M4Pz1HY3E2TDxyZnFfZXAyLUdkMVYjM3h+NykkO2BOKVI8YCF5ZVRZR29VaG1Y
Q3F6RUF6NQp6VSZoOEtDYTAhbj11NiswUzYwezd6eUc8aHFZRkYoeVJ5TE56dnwpeWJ3U345NyN5
KnEzanooQDV6WXhgNVJfcCYKenRaanlIIzIqcERNS04pbU5xJClJaWRrNkplMzlFSjs2Mk14NXhH
JihyNSROTW1IcSNPLVQwckI5U0hrZFMza2ZDCnoxMi1gemoxJGxWPSg0fFBqb297aGt3PUNqOUk5
Izs0RH4kWTlxdmFFJSp8N0BxV2h5N1RPPTQlKWYycktWYjdwUgp6aTNIN1RqR2pSdTZpVUc3KnhI
UzcmYntJYW4hRzM1ZUh9VDxTSCskK0M2e2xlNiY8SkM+Q3EqM08lNT5vcXVjRGUKejF4SjFHb0wy
dEtGYTdCKXV3a3dTPHc3YTk+cktvM2xeaEVOKHZkMkBWUjwzIWw0KklFSWI4d0FSKmtCUlQhZWRu
CnpsdlpCTmxZSG5fUnBeJSNqcjtESUEqY291Uyo8dyhlU0NOSFhaSil+eE4zcG0jYH1kSVB0LURq
R1hefGRffSZ9Vwp6ZURBWVUzWllacWEra1dVZVErTyZVbU5NKzIlaTEzZDtMcEZjfTtLcHozaUUm
c1hJbVhETyhMdTh5fDg4anhCTCgKemRWSlBMJD9HMT0rTyUqKDJUaFIpPTtXX341PU42JSpNeHQh
YF9VVDdAfCt9RypKOyFlJHVpfF49UHM1PighZDF7CnoyeTwoK0FNMztELUhRIU5iTD9nSyFEZ2dw
QilnVG5iJUp0KjZqTEI9WGZgKkxeREcrYUB4SiU7b2x+dE1PPn1qLQp6PHI0UUBOU2NkU2Y5O29Y
ZTk4QHBsSkEoWHFBKEJhVEZMd3wrdmgkYGJgaGp1K2laQyR5LVRaWXN+ekVeWmc3cTsKenhkZyNa
Y0dJelFpKkc0aiNxUms5cEhDe0tEb3lMS2dsNUkkbThtV31JUVN+V3lHRzM+ZDBkPTFQa2RnRE0w
TDA9CnomWmA/KVEwVXJKbjZPNjFWfFRRNUR4MV4xOGt9U1d0amp4SUY/QDExbSR+TXVtI0EpOUwx
MiMjKG50fWlLSEdWdQp6eHJQb0FIQzQ7WnhaKVNxO0ZSeno7KlROJlh+Tk5+Z2c/fUFyb0ZYaW1z
Jj4pWU5pU2lALUFXWUs4YXpOSjM2Wk8Kekw4WUBRUFFPZkNqVjRYUF4kZElYJHleTl53YHsjKVRH
O3dAJHAzZ15EWWBebmxLO0BIJV5GdDdURkljUDR6VjRFCnpQMWpVdjhTKjl6T1c5bCNhJGVIfiZ9
cWQ5aExscj1MX0BvPWN0dUQrYWFWOEFIc0JkPFVLT0RDPmNNY1NQa1hjVAp6WSkzJW4jNDdYZz07
YllMbiRARFU5QGtqc3MhRHthY2lyMHtsMm5NdEt6RylmQjNfenphMXJyJSNAOyV7YEF9WUMKelo5
bCVUUlFXdjlmSDB8XmNEbmFPZndRJVZTYkJab0YkdG1TdVBhbyFIe3B6MCh3ZSo8RGJRYztwclkh
K1VwND5nCnpFeWRAfFF1fU1UZUJYcDlwUE4oYWd3cXIkRnt6WCZmZ0J1NUJ2Z3pIRDN0fDZNVH1x
Um5iN0FpPkdUWlIkVWtANAp6YmZVYWA9Sn5iME9EUk5NQmBmJWV7eUV2NnhFVkZ3ZntQYW9kQyR9
X1c0dVdldmR4SVF6VGthNlomI0BAJEFKOD0KemRMdDY4YXhLYnBtUzZpWC1ufCo0UEZTK2ZVQSkt
Rj5pYS1nRyNxWk5UNn49RGs9djwkaFgrR2ZvMih9MUFkTCZvCnpoPXlCSVN7Tkx3QyhIK3Mmfm0t
OStoZjFGMzJ5X1h8N2tsX3lBX1A4d05lc3FtbU99ZnQ5ZUdMeT9YX0opR2lubgp6bXNWb195RSQ3
XnUkWDQme2ZaeHZzVjJSRlZ5Qkt3e25abjl5QD8qNmpVTE57U3F4UDZReC1UVnI8Zz4+I053dF4K
elh0TCQwNW1ufGcqQ1RxKiVWKGJiYUJXdGBaTD1oPk1US15uazlUQVJVY3NZak9QNzlASGpnSkV4
IT82YSopKzw2CnpoNlpVbWtVIW49bHRQV3h4Ui1kbXReNmVsendGYzJhZTtFPkI0eCRHX18rPXl7
fS1adlVlUWAxVUcwSnFfOz4ydgp6VyY3NDVSTWgkSXtSS0Q4Q0tLYnBqWEk8WDdUPVJPbHBJb3hM
bCYpO2c8OWorPUMxcWFXdjxZUkV0RVpIKSFCMHoKelRpSEh6Wk1EKis+aW05I2AoS3JjVXpBTGcz
XysrbEUwP3teM00hWkhvMjV8MGh7byQ5JmJLYnZQTF5qS3kxO0hnCnpFJTVVJHtvTnUzJlhIRldY
Z0JuakJCO2o3dytkYzlzcWFNbytUPm9qZEZufj8/SmRFbSoqUy0lYldWVH50NGJxJgp6emxQbD9W
TD5keFRGV25AYG1pIW9xdFVkLUl2PlhDVH1ISDcrIXF4MlF9S3M2dEVMS3FOd048ViZwbTd2STEp
V1gKejtmZHU7PjM8PHEzS2V5MG0jaUNDXkVhSCF2Vkl6LSRIanwtYSpjMFRyPThJO1oxZj8tdHEh
eEQ9cnwxM244NV92Cnp5cmJ8WV9gejdpNFgjJDRRJUgzaWNZeyttJHZ5IVJfeU1eUjUkc0FBVkl1
aDUlVXR9cktaTkB1WFZUUk9ZcTI1Pgp6P09TcVJaPmBQSCEmS3x9Xm97dEV2QCVBR2ctRH48Sj9E
PnEqS1QzdnU2I1FGc1lkJWtyZXdePShpWig7dn4jSzcKejluVXIpRVM7d0EjY2BBaXJXcTljbHUo
KWMqb2N3ZiVwR3BwRjhrZmU7bCtmSDBtaVVKbUJ1REZBPnktZ1NKX2g9CnpoM2V8MkdAT2dSR04+
QTgmeV5Ke0pkLShqYHNMKl9YN1F8Skptc2RHdH1zJSh3YWpxWGk0KnB4YGw4WXpaRClwfgp6cU8h
Z2BRJHM2RSQzXihnNGJgfiZSfWh1UTNjP2ZVITUxeFZlZlpxNGxGd0hmKlo4cT1UbzFBKGBLazh1
SSZPU1EKeitRaj5xckR9Yn1mWkFsO2ZLa1JmYSkkUzd5bDx+aSpJLXV4QS0zfX5leCtQdChlfV5H
VG07JT5sYV5tR2E/ZTJICnpNeSlJNUx6bWB+UGN6d2E/MiQ4MW5VbHs9ayRYfVJQMkNIPEF9ZnRO
QzVPXzQ3PTwtJjE/eV48Vjw+Uzs2N0c9NQp6aEk/IWc+XkRnY2k5WSRpZSZzMF9kVllMVGl4S3lf
O2pYRTE8YHAwXiRjXkchbDs9OTZYUyRweDY1bDx4R04lX2QKejltJkVoNiF7e1ktKiMrJVNUTyln
SFA7fjFqM1BybURVSHhEM2NQd15Aa0gtRGhVMENPRVpZRnstNz9keSt0NzZaCnp3flNGJnRCPDEk
NXZ6fkF1ZzN+OGclNVZ2RUMlVlcyOGxSTmg8cXZMS0JjY01pYXtFfTspNUZKWjJDN05eUFd4LQp6
S1UrMWJTc2lgKGojWX5mSWIqa1NXSj5vdUw2KCNST0hPPTQ0aFcyMVllU2wmWTFYUGh5a1RSJWNk
QXJJK2dJQjwKenltNE9fbDB3JSY4TmM5eUJfV202aX1qV3pFKDxASUNTVE18XmlBPG0hRFA+RDxs
I0tPQns4PldJbn5kNDF1NkoxCnp5c2NQMFE2VjR0RTtkPml5KTt6YVdreXQ8dkVoQmxfJnV0Ulcj
I2Q0dCpPRnRiKDU2RkMkQEFhSio4UnV2Qmh9aAp6N1Z3YnE9QihVeVkocHtERn1LLVZoeXJoajlM
P0FuWitvT25AMT45O01Vak56Uk0pfDZwcVQzOWVkZSRGd3s1NjAKelI3SG9JZWE/TkAyZm95diRi
aipnY2JmbVBVciFkRyt1JEFBeXIyV1FRfWQ5SGFQfUp7dzt9Km85THJvMnJfVFJMCnpYOSVjJUA4
ZHI9RSZkbEl6ZjB+JipPK2RiVkQwNSsyODMpZlJkWnN0Qmx0bF9iKkJrfG0zRUA5UTZ6WV50ZSFY
Mgp6VHxzYTw5KXFWTztKYiFVckdEX2oqe0xmbDdANio4dDJPK2RAbGJ6anpffW9aZ2g9I21wS0VN
a0tzXlpZKjBufFcKekgzQio5bCNjTV9mYXxjPT50KnB0alFDYGA+Wit6O2JRWVJqPlpENDJ2KU57
JGQ9R2FgYXMjOXpraSp5ZXJ1b0M/Cnpndnt5SCEkJipLIUBvUn04KXBtVUx4P3N1MlJZZTM3ZWcq
cTY5KGhMTCRKfiZQP3FBZG14SXopKTdRdWtJaXpANQp6P3tRZ34jdCEmcS1fVCttI009ZFo/NTkr
RVFIN3tJazQ7amVvKyRXVD4+Pk1jUHgkKiZDTWczWTxuYVFuJlVxUjgKeilydDlaR3BwcEc/LSoh
Yj1jdihiJDUoMUo/UTVHU0NqJHIpQntAdDJfUUwtMmdZLTRCKm5gNSk5M34tclFlQX1CCno4TVIq
YlZMX2o3Uk9NIyM3cCpNcF96I3drd0VkPG1QY3RvdFlANy08RjArdGQ7dzVwJXgwVUY4VE8jR3RO
fkdgJAp6LVN5TzA2KThfIW5oeGk+SERKLXBKP2gxWWYhNEtLPmZ3MXBRU2A3fWt8X2MxPylCQmAp
cHN9dkQ2PFljdGNffSUKelFsQmxMcHteI3Z3fUdRRnZ2emZ3QEJFY3Y0RnVIcmBeU3xmWWJyWUYh
fEZAUUJhbkxwWXRORE5uNy1fYFMqbT1LCnpMLXUrJUR8Oz1ocVdzTF8mOUg4TENzUT9SXn4pfXV1
fihRZWtRTX1ZRH02cSlEISlha2FtR0Y8aFEkRTlTcWFJZgp6QlRwWns9NDB1Mk87JS0/SWkqLX08
SXdVZV4jdTI2JCohalprQlQoME4tT0tkeXN4JGFvJkpvYD55cygzciFRVCsKeiZpRiYhWWVAekJY
NkRFVG55UXhBe0g3SG00Kmk/V0ljSjlGUWVuc2soUlJha0tJeSMxPjA4ODI3NUtXP3kqIWVvCnpE
VmFxS0VBdXJhUDVkVTdNcy1NaS1gPHhISX1fYllOakk1Y1M0byohdSh3P0pCYVVUVi1RdGF+Pz01
Szd2aT0+Qgp6UGs5fHd2cERpMntZdzM2XllEU3B3QFgzNDF5eDNXajQ+TEl0NTB+NSNvQHlsKXc9
ZjdUS19ONiRecmlOYSZaSmEKek0xITJ8QUs5SiUqI3c0PG48O3VLcXwhUjhoVUQ+SFB3X1FDTypT
QUE5cyptelpAJS1ZZ19taEpxVE5lRk1yZj9yCno4RCgjM2IybD9oViZwPSpqSEhHNjlpK3h2bWBB
RWpSQWBGQTAtZ0hiR3NWai0qY1E+akhPZCpreWB2PVlXdkMmSQp6UnUpKVdneGA8OzhlbF4oKTVV
KXJ0U3M8SnhNMEd5THtoUWw0QjBGYmFuNU9JYHtEN1o+aCV2aiVRWUdLbCs5VEUKelYjYEZ2aG5L
eCVxaT9sUThATWMqSiV5Zn00cUVBYVQrPlpDZVZCdlJUS31XP2tOM0srWFFaOyh7UldqY3ZyZzN8
Cnp5cVY5T2BieTBScG1aOX1eflh0aEV0b2xPa2VWTTtZZlBmPkBkNnQoPCpeZ3xFX1ZWYFBxJVdK
KihGXnpzQjE4aAp6NkNZWE9EV1N5NUR5Vnhyc3hCcnNuP3tnZ01wNmV7Z2BIMSEjTTNUeCQ0UkJt
K3BsN0JqQ3tqSyV5YiN9dz9GK0sKRD9HQVRfCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412589</attachid>
            <date>2020-10-28 16:40:22 -0700</date>
            <delta_ts>2020-10-28 18:34:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217506-20201028164022.patch</filename>
            <type>text/plain</type>
            <size>98242</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQ4OWVlMzRlY2RiMzJl
OTAwOGNjMmY4OTEwOTFhYjhlMWZjYjE3Mi4uYzk3Yzg1ODgyMzkwMjczY2E3YzVkMjA2MGYyNTRh
NGEwNmVjN2NjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIwLTEwLTI2ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBb
R1BVIFByb2Nlc3NdIFBlcmZvcm0gaW1hZ2UgZGVjb2Rpbmcgb2YgY29sb3IgZm9udHMgaW4gdGhl
IFdlYiBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTc1MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0OiBmYXN0L3RleHQvY2FudmFzLXNiaXguaHRtbAorICAgICAgICAgICAgICBmYXN0
L3RleHQvY2FudmFzLUNPTFIuaHRtbAorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAg
ICAgKiBQbGF0Zm9ybUFwcGxlV2luLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtV2luQ2Fpcm8u
Y21ha2U6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2oveGNz
aGFyZWRkYXRhL3hjc2NoZW1lcy9XZWJDb3JlLnhjc2NoZW1lOgorICAgICAgICAqIHBsYXRmb3Jt
L0ZyZWVUeXBlLmNtYWtlOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJD
b3JlVGV4dC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmJlZ2lu
TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmVuZExheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpkcmF3R2x5cGhzKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpkcmF3SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdHbHlwaHNSZWNvcmRlcjo6Y3JlYXRlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdHbHlwaHNSZWNvcmRl
cik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpw
cmVwYXJlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpE
cmF3R2x5cGhzUmVjb3JkZXI6OmNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnVwZGF0ZUNUTSk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVGaWxs
Q29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRl
cjo6cmVjb3JkQmVnaW5MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJh
d0dseXBoc1JlY29yZGVyOjpyZWNvcmRFbmRMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6Y29tcHV0ZUFkdmFuY2VzRnJvbVBvc2l0aW9ucyk6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpyZWNvcmREcmF3R2x5cGhzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZERy
YXdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29y
ZGVyOjpkcmF3R2x5cGhzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6RHJhd0dseXBo
c1JlY29yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVj
b3JkZXI6OmRyYXdHbHlwaHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpSZWNvcmRlcjo6UmVjb3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlY29yZGVyOjpkcmF3R2x5cGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpS
ZWNvcmRlcjo6YXBwZW5kSXRlbSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6YXBwZW5kSXRlbSk6CisKIDIwMjAtMTAtMjggIENvbnJh
ZCBTaHVsdHogIDxjb25yYWRfc2h1bHR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgZGlh
Z25vc3RpYyBsb2dnaW5nIGZvciBwbHVnLWlucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggYzRkMzM0
MjlkYmU2YjBjMjBkYTc5MjMxYzZiMzNlZmM4YmQ1Nzk2Mi4uNTYwZGU1MDRmNjZhZWZmMThhMGU2
MDFmODQyMjZmNDNjNzRiOWMwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMjAtMTAtMjYgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbQ29jb2FdIFtHUFUgUHJvY2Vzc10gUGVyZm9ybSBpbWFnZSBkZWNvZGluZyBvZiBj
b2xvciBmb250cyBpbiB0aGUgV2ViIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzUwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaDoKKwog
MjAyMC0xMC0xMyAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVtb3ZlIGxlZnRvdmVyIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3ggc3VwcG9ydApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKaW5kZXggNjg4NGQwZjg2ZDI5ZGMxNDkxNjYxMTdiYTVjOTY0ZDEwYjMz
YmRkZi4uMjgwMWFkNmZkODVmYzM2NGU4ZDA2NTE0NDkyMzlhNzI5MTU5ZjRiMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCkBAIC0xMjM3LDYgKzEyMzcsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1F
V09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvRXh0ZW5zaW9uc0dMQU5H
TEUuaAogCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmgK
KyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhz
UmVjb3JkZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dERyYXdpbmdDb250ZXh0LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RJbWFnZUJ1ZmZlci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0SXRlbXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvY2cvQ29yZUdyYXBoaWNzU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9D
b3JlR3JhcGhpY3NTUEkuaAppbmRleCBhN2Y4MmI4NjFiNjJjNGFlZmI4M2MxODExZDU1YzdhZjc0
OWU2YjkxLi40ODBkYjliMjhmMDdiNDE5M2RiYzgzMmRhN2EzNWU2NzE3ZDE2NGJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaApAQCAtMzgs
NiArMzgsNyBAQAogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAorI2luY2x1ZGUgPENv
cmVHcmFwaGljcy9DR0NvbnRleHREZWxlZ2F0ZVByaXZhdGUuaD4KICNpbmNsdWRlIDxDb3JlR3Jh
cGhpY3MvQ0dGb250Q2FjaGUuaD4KICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dQYXRoUHJpdmF0
ZS5oPgogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3NQcml2YXRlLmg+CkBAIC01
OCwxOSArNTksMTIgQEAgc3RydWN0IENHRm9udEhNZXRyaWNzIHsKICAgICBpbnQgbWluUmlnaHRT
aWRlQmVhcmluZzsKIH07CiAKLXN0cnVjdCBDR0ZvbnREZXNjcmlwdG9yIHsKLSAgICBDR1JlY3Qg
YmJveDsKLSAgICBDR0Zsb2F0IGFzY2VudDsKLSAgICBDR0Zsb2F0IGRlc2NlbnQ7Ci0gICAgQ0dG
bG9hdCBjYXBIZWlnaHQ7Ci0gICAgQ0dGbG9hdCBpdGFsaWNBbmdsZTsKLSAgICBDR0Zsb2F0IHN0
ZW1WOwotICAgIENHRmxvYXQgc3RlbUg7Ci0gICAgQ0dGbG9hdCBhdmdXaWR0aDsKLSAgICBDR0Zs
b2F0IG1heFdpZHRoOwotICAgIENHRmxvYXQgbWlzc2luZ1dpZHRoOwotICAgIENHRmxvYXQgbGVh
ZGluZzsKLSAgICBDR0Zsb2F0IHhIZWlnaHQ7Cit0eXBlZGVmIENGX0VOVU0gKGludDMyX3QsIENH
Q29udGV4dERlbGVnYXRlQ2FsbGJhY2tOYW1lKQoreworICAgIGRlRHJhd0ltYWdlID0gNywKKyAg
ICBkZURyYXdHbHlwaHMgPSA4LAorICAgIGRlQmVnaW5MYXllciA9IDE3LAorICAgIGRlRW5kTGF5
ZXIgPSAxOCwKIH07CiAKIHR5cGVkZWYgY29uc3Qgc3RydWN0IENHQ29sb3JUcmFuc2Zvcm0qIENH
Q29sb3JUcmFuc2Zvcm1SZWY7CkBAIC0xNzcsNiArMTcxLDIyIEBAIHN0cnVjdCBDR0ZvY3VzUmlu
Z1N0eWxlIHsKIH07CiB0eXBlZGVmIHN0cnVjdCBDR0ZvY3VzUmluZ1N0eWxlIENHRm9jdXNSaW5n
U3R5bGU7CiAKK3N0cnVjdCBDR1NoYWRvd1N0eWxlIHsKKyAgICB1bnNpZ25lZDsKKyAgICBDR0Zs
b2F0OworICAgIENHRmxvYXQgYXppbXV0aDsKKyAgICBDR0Zsb2F0OworICAgIENHRmxvYXQgaGVp
Z2h0OworICAgIENHRmxvYXQgcmFkaXVzOworICAgIENHRmxvYXQ7Cit9OwordHlwZWRlZiBzdHJ1
Y3QgQ0dTaGFkb3dTdHlsZSBDR1NoYWRvd1N0eWxlOworCit0eXBlZGVmIENGX0VOVU0gKGludDMy
X3QsIENHU3R5bGVUeXBlKQoreworICAgIGtDR1N0eWxlU2hhZG93ID0gMSwKK307CisKICNlbmRp
ZiAvLyBQTEFURk9STShDT0NPQSkKIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTE5Myw2ICsyMDMs
MTIgQEAgc3RhdGljIGNvbnN0IENHU05vdGlmaWNhdGlvblR5cGUga0NHU2Vzc2lvbkNvbnNvbGVE
aXNjb25uZWN0ID0gKENHU05vdGlmaWNhdGlvblQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykK
IAordHlwZWRlZiBzdHJ1Y3QgQ0dDb250ZXh0RGVsZWdhdGUgKkNHQ29udGV4dERlbGVnYXRlUmVm
OwordHlwZWRlZiB2b2lkICgqQ0dDb250ZXh0RGVsZWdhdGVDYWxsYmFjaykodm9pZCk7Cit0eXBl
ZGVmIHN0cnVjdCBDR1JlbmRlcmluZ1N0YXRlICpDR1JlbmRlcmluZ1N0YXRlUmVmOwordHlwZWRl
ZiBzdHJ1Y3QgQ0dHU3RhdGUgKkNHR1N0YXRlUmVmOwordHlwZWRlZiBzdHJ1Y3QgQ0dTdHlsZSAq
Q0dTdHlsZVJlZjsKKwogI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKICNpZiBQ
TEFURk9STShDT0NPQSkKQEAgLTIwMyw3ICsyMTksNiBAQCB0eXBlZGVmIHVpbnQzMl90IENHU1dp
bmRvd0lEOwogCiB0eXBlZGVmIENHU1dpbmRvd0lEKiBDR1NXaW5kb3dJRExpc3Q7CiB0eXBlZGVm
IHN0cnVjdCBDRl9CUklER0VEX1RZUEUoaWQpIENHU1JlZ2lvbk9iamVjdCogQ0dTUmVnaW9uT2Jq
OwotdHlwZWRlZiBzdHJ1Y3QgQ0ZfQlJJREdFRF9UWVBFKGlkKSBDR1N0eWxlKiBDR1N0eWxlUmVm
OwogCiB0eXBlZGVmIHZvaWQqIENHU05vdGlmaWNhdGlvbkFyZzsKIHR5cGVkZWYgdm9pZCogQ0dT
Tm90aWZpY2F0aW9uRGF0YTsKQEAgLTIzMyw3ICsyNDgsNiBAQCB2b2lkIENHQ29udGV4dFJlc2V0
Q2xpcChDR0NvbnRleHRSZWYpOwogQ0dDb250ZXh0VHlwZSBDR0NvbnRleHRHZXRUeXBlKENHQ29u
dGV4dFJlZik7CiAKIENGU3RyaW5nUmVmIENHRm9udENvcHlGYW1pbHlOYW1lKENHRm9udFJlZik7
Ci1ib29sIENHRm9udEdldERlc2NyaXB0b3IoQ0dGb250UmVmLCBDR0ZvbnREZXNjcmlwdG9yKik7
CiBib29sIENHRm9udEdldEdseXBoQWR2YW5jZXNGb3JTdHlsZShDR0ZvbnRSZWYsIGNvbnN0IENH
QWZmaW5lVHJhbnNmb3JtKiAsIENHRm9udFJlbmRlcmluZ1N0eWxlLCBjb25zdCBDR0dseXBoW10s
IHNpemVfdCBjb3VudCwgQ0dTaXplIGFkdmFuY2VzW10pOwogdm9pZCBDR0ZvbnRHZXRHbHlwaHNG
b3JVbmljaGFycyhDR0ZvbnRSZWYsIGNvbnN0IFVuaUNoYXJbXSwgQ0dHbHlwaFtdLCBzaXplX3Qg
Y291bnQpOwogY29uc3QgQ0dGb250SE1ldHJpY3MqIENHRm9udEdldEhNZXRyaWNzKENHRm9udFJl
Zik7CkBAIC0yNTIsNiArMjY2LDIxIEBAIGJvb2wgQ0dDb250ZXh0R2V0QWxsb3dzRm9udFN1YnBp
eGVsUG9zaXRpb25pbmcoQ0dDb250ZXh0UmVmKTsKIGJvb2wgQ0dDb250ZXh0RHJhd3NXaXRoQ29y
cmVjdFNoYWRvd09mZnNldHMoQ0dDb250ZXh0UmVmKTsKIENHUGF0dGVyblJlZiBDR1BhdHRlcm5D
cmVhdGVXaXRoSW1hZ2UyKENHSW1hZ2VSZWYsIENHQWZmaW5lVHJhbnNmb3JtLCBDR1BhdHRlcm5U
aWxpbmcpOwogCitDR0NvbnRleHREZWxlZ2F0ZVJlZiBDR0NvbnRleHREZWxlZ2F0ZUNyZWF0ZSh2
b2lkKiBpbmZvKTsKK3ZvaWQgQ0dDb250ZXh0RGVsZWdhdGVTZXRDYWxsYmFjayhDR0NvbnRleHRE
ZWxlZ2F0ZVJlZiwgQ0dDb250ZXh0RGVsZWdhdGVDYWxsYmFja05hbWUsIENHQ29udGV4dERlbGVn
YXRlQ2FsbGJhY2spOworQ0dDb250ZXh0UmVmIENHQ29udGV4dENyZWF0ZVdpdGhEZWxlZ2F0ZShD
R0NvbnRleHREZWxlZ2F0ZVJlZiwgQ0dDb250ZXh0VHlwZSwgQ0dSZW5kZXJpbmdTdGF0ZVJlZiwg
Q0dHU3RhdGVSZWYpOwordm9pZCogQ0dDb250ZXh0RGVsZWdhdGVHZXRJbmZvKENHQ29udGV4dERl
bGVnYXRlUmVmKTsKK3ZvaWQgQ0dDb250ZXh0RGVsZWdhdGVSZWxlYXNlKENHQ29udGV4dERlbGVn
YXRlUmVmKTsKK0NHRmxvYXQgQ0dHU3RhdGVHZXRBbHBoYShDR0dTdGF0ZVJlZik7CitDR0ZvbnRS
ZWYgQ0dHU3RhdGVHZXRGb250KENHR1N0YXRlUmVmKTsKK2NvbnN0IENHQWZmaW5lVHJhbnNmb3Jt
ICpDR0dTdGF0ZUdldENUTShDR0dTdGF0ZVJlZik7CitDR0NvbG9yUmVmIENHR1N0YXRlR2V0Rmls
bENvbG9yKENHR1N0YXRlUmVmKTsKK0NHQ29sb3JSZWYgQ0dHU3RhdGVHZXRTdHJva2VDb2xvcihD
R0dTdGF0ZVJlZik7CitDR1N0eWxlUmVmIENHR1N0YXRlR2V0U3R5bGUoQ0dHU3RhdGVSZWYpOwor
Q0dTdHlsZVR5cGUgQ0dTdHlsZUdldFR5cGUoQ0dTdHlsZVJlZik7Citjb25zdCB2b2lkICpDR1N0
eWxlR2V0RGF0YShDR1N0eWxlUmVmKTsKK0NHQ29sb3JSZWYgQ0dTdHlsZUdldENvbG9yKENHU3R5
bGVSZWYpOworCiAjaWYgSEFWRShDR1BBVEhfR0VUX05VTUJFUl9PRl9FTEVNRU5UUykKIHNpemVf
dCBDR1BhdGhHZXROdW1iZXJPZkVsZW1lbnRzKENHUGF0aFJlZik7CiAjZW5kaWYKQEAgLTI4Niwx
NiArMzE1LDkgQEAgQ0dSZWN0KiBDR1NOZXh0UmVjdChjb25zdCBDR1NSZWdpb25FbnVtZXJhdG9y
T2JqKTsKIENHU1JlZ2lvbkVudW1lcmF0b3JPYmogQ0dTUmVnaW9uRW51bWVyYXRvcihDR1JlZ2lv
blJlZik7CiBDR1N0eWxlUmVmIENHU3R5bGVDcmVhdGVGb2N1c1JpbmdXaXRoQ29sb3IoY29uc3Qg
Q0dGb2N1c1JpbmdTdHlsZSosIENHQ29sb3JSZWYpOwogdm9pZCBDR0NvbnRleHRTZXRTdHlsZShD
R0NvbnRleHRSZWYsIENHU3R5bGVSZWYpOwotCiB2b2lkIENHQ29udGV4dERyYXdDb25pY0dyYWRp
ZW50KENHQ29udGV4dFJlZiwgQ0dHcmFkaWVudFJlZiwgQ0dQb2ludCBjZW50ZXIsIENHRmxvYXQg
YW5nbGUpOwotCi0jaWYgSEFWRShDR19QQVRIX1VORVZFTl9DT1JORVJTX1JPVU5ERURSRUNUKQog
dm9pZCBDR1BhdGhBZGRVbmV2ZW5Db3JuZXJzUm91bmRlZFJlY3QoQ0dNdXRhYmxlUGF0aFJlZiwg
Y29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0gKiwgQ0dSZWN0LCBjb25zdCBDR1NpemUgY29ybmVyc1s0
XSk7Ci0jZW5kaWYKLQotI2lmIEhBVkUoQ0dfRk9OVF9SRU5ERVJJTkdfR0VUX0ZPTlRfU01PT1RI
SU5HX0RJU0FCTEVEKQogYm9vbCBDR0ZvbnRSZW5kZXJpbmdHZXRGb250U21vb3RoaW5nRGlzYWJs
ZWQodm9pZCk7Ci0jZW5kaWYKIAogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCkBAIC0zMjgs
MTUgKzM1MCwxMCBAQCBib29sIENvbG9yU3luY1Byb2ZpbGVJc1dpZGVHYW11dChDb2xvclN5bmNQ
cm9maWxlUmVmKTsKIHNpemVfdCBDR0Rpc3BsYXlNb2RlR2V0UGl4ZWxzV2lkZShDR0Rpc3BsYXlN
b2RlUmVmKTsKIHNpemVfdCBDR0Rpc3BsYXlNb2RlR2V0UGl4ZWxzSGlnaChDR0Rpc3BsYXlNb2Rl
UmVmKTsKIAotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKLQog
Q0dFcnJvciBDR1NTZXREZW55V2luZG93U2VydmVyQ29ubmVjdGlvbnMoYm9vbCk7Ci0KIHR5cGVk
ZWYgaW50MzJfdCBDR1NEaXNwbGF5SUQ7CiBDR1NEaXNwbGF5SUQgQ0dTTWFpbkRpc3BsYXlJRCh2
b2lkKTsKIAotI2VuZGlmIC8vIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lO
RykKLQogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAogI2lmIEVOQUJMRShQREZLSVRfUExVR0lO
KSAmJiAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BsYXRmb3JtQXBwbGVXaW4uY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUFwcGxlV2lu
LmNtYWtlCmluZGV4IGE3ODhlNjlkZTc0NDFjOTQwODRmNzAzNmEzZThmNDlhZDQ1MWE1OGQuLjM4
YTJiNzc2ODk1NTk4YTRmNGUzNmFkZTdjNjAzYjA0MDc4ZGRjNzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BsYXRmb3JtQXBwbGVXaW4uY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1BcHBsZVdpbi5jbWFrZQpAQCAtMzAsNiArMzAsOCBAQCBsaXN0KEFQUEVORCBXZWJDb3Jl
X1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL2NmL1dlYkNvcmVBVkNGUmVzb3VyY2VMb2FkZXIuY3BwCiAKKyAgICBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4
dC5jcHAKKwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
LmNwcAogCiAgICAgcGxhdGZvcm0vbmV0d29yay9jZi9BdXRoZW50aWNhdGlvbkNGLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5DYWlyby5jbWFrZSBiL1NvdXJjZS9X
ZWJDb3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UKaW5kZXggYTY4OTY0NzdkZTBjZjUwMzRmM2Zk
MDlmM2YwYzc2YTdkYTZlYzhhMS4uMDc3OGY3NTU2NmM2NDYzMDIwYTBlMDdjNTJhNjVjMWE0NzRm
NjI4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5DYWlyby5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbkNhaXJvLmNtYWtlCkBAIC0yMiw2ICsyMiw4
IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dM
Q29udGV4dC5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCiAK
KyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhz
UmVjb3JkZXJIYXJmQnV6ei5jcHAKKwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3Vz
dG9tUGxhdGZvcm1EYXRhQ2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQ
bGF0Zm9ybURhdGFDYWlyb1dpbi5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR2x5cGhQ
YWdlVHJlZU5vZGVDYWlyb1dpbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGViNGUx
N2YyZTczNmVhODY4MWM1NmQyMDI1MTQ5MjZiOGRjOTk0NTAuLjJhZDMzYTk1NTE5MmQ5MDc2ZWIz
ZDhjMTYyY2ZlMzg2MjJkZmIxOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXND
b2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMzc5LDYg
KzM3OSw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0K
IHBsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwCiBwbGF0Zm9y
bS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNz
L2NvcmVpbWFnZS9GaWx0ZXJFZmZlY3RSZW5kZXJlckNvcmVJbWFnZS5tbQorcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQu
Y3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGlsaW5nRGF0YS5jcHAKIHBsYXRmb3JtL2dyYXBo
aWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBBbGxvY2F0b3JNZXRhbC5tbQogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cExheW91dE1ldGFsLm1tCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNGM5NDk2ODc4
ZjdkZjEyOTNiMzdkMmNjNDgwOTk2ZjlhYWJkYmU3Ni4uM2YwZGY4YmI3MGU5Mzg0M2RkY2IyZGNl
MTZkMDY4ODMzMzU0YTA4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjIwLDYgKzYyMCw3IEBACiAJCTFDQUYzNDgxMEE2QzQw
NTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUYzNDdFMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3Jp
cHRPYmplY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkxQ0FGMzQ4MjBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0Lm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBRjM0N0YwQTZDNDA1
MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdC5tbSAqLzsgfTsKIAkJMUNBRjM0ODMwQTZDNDA1
MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdFByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUYzNDgwMEE2QzQwNTIwMEFCRTA2RSAvKiBX
ZWJTY3JpcHRPYmplY3RQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJMUNBRjU2REIyNTMwMUFDODAwMTdCNDcyIC8qIERpc3BsYXlMaXN0
RHJhd0dseXBoc1JlY29yZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQ0FGNTZEODI1MzAxNDU3MDAxN0I0NzIgLyogRGlzcGxheUxpc3REcmF3R2x5
cGhzUmVjb3JkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkxQ0NEODE1MDIyMzFGODNFMDA2NUZDMkIgLyogV2ViQ29yZVJlc291cmNlSGFuZGxl
QXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTE1MjU1MTQxNkZEMjM0RjAwM0Q3QURCIC8qIFdlYkNvcmVSZXNv
dXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbSAqLzsgfTsKIAkJMUNDREY1QkUx
OTkwMzMyNDAwQkNFQkFEIC8qIFNWR1RvT1RGRm9udENvbnZlcnNpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQ0RGNUJDMTk5MDMzMjQwMEJDRUJB
RCAvKiBTVkdUb09URkZvbnRDb252ZXJzaW9uLmggKi87IH07CiAJCTFDRkFFMzIzMEE2RDZBM0Yw
MDMyNTkzRCAvKiBsaWJvYmpjLmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUNGQUUzMjIwQTZENkEzRjAwMzI1OTNEIC8qIGxpYm9iamMuZHls
aWIgKi87IH07CkBAIC02NzM1LDYgKzY3MzYsOCBAQAogCQkxQ0FGMzQ3RTBBNkM0MDUyMDBBQkUw
NkUgLyogV2ViU2NyaXB0T2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYlNjcmlwdE9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FGMzQ3
RjBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0Lm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViU2NyaXB0T2JqZWN0Lm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxQ0FGMzQ4MDBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2Jq
ZWN0UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTY3JpcHRP
YmplY3RQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQUY1NkQ4MjUz
MDE0NTcwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxQ0FGNTZERTI1MzAyNDVBMDAxN0I0NzIgLyogRGlzcGxheUxpc3REcmF3
R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaXNwbGF5TGlz
dERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUNCNUZFODgyMkRFQkM4QjAwOTQ0MEUyIC8qIFdITFNMRXJyb3IuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0hMU0xFcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0I2OUIz
MjIxREVENDBCMDA2RTg0NkEgLyogV0hMU0xSZXNvbHZhYmxlVHlwZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXSExTTFJlc29sdmFibGVUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFD
QjY5QjM0MjFERUQ2M0EwMDZFODQ2QSAvKiBXSExTTEZsb2F0TGl0ZXJhbFR5cGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0hMU0xGbG9hdExpdGVyYWxUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xNzYwNiw2ICsxNzYwOSw4IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQkwRkU1RkJD
QTFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3QuY3BwICovLAogCQkJCTBGRTVGQkNCMUMz
REQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdC5oICovLAorCQkJCTFDQUY1NkQ4MjUzMDE0NTcw
MDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oICovLAorCQkJCTFDQUY1
NkRFMjUzMDI0NUEwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVU
ZXh0LmNwcCAqLywKIAkJCQk1NUMwQTI5NTIzRkUyQ0UwMDBGMkNCOTMgLyogRGlzcGxheUxpc3RE
cmF3aW5nQ29udGV4dC5jcHAgKi8sCiAJCQkJNzJFQTA5RjkyM0ZDQ0M2QTAwODUwNEE1IC8qIERp
c3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaCAqLywKIAkJCQk3MkVBMDlGNzIzRkNDQjNEMDA4NTA0
QTUgLyogRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oICovLApAQCAtMzE0MjcsNiArMzE0MzIsNyBA
QAogCQkJCTdFREFBRkM5MTlBMkNDREMwMDM0REZEMSAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2Eu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGNzkwRjQyMjUxN0NFNkUwMDlCQTAzNCAvKiBEaXNwbGF5
TGF5ZXJDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU1RkJEMzFDM0RENTFFMDAw
N0EyQ0EgLyogRGlzcGxheUxpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDQUY1NkRCMjUzMDFB
QzgwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTVBRDA5NDAyNDA4OTY0MDAwREU0RDJGIC8qIERpc3BsYXlMaXN0RHJhd2luZ0Nv
bnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1QUQwOTNFMjQwODk2MzUwMERFNEQyRiAvKiBE
aXNwbGF5TGlzdEltYWdlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU1RkJENTFDM0RE
NTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3RJdGVtcy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GcmVlVHlwZS5jbWFrZSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtlCmluZGV4IDdjMDRkOTNhNWI4NWM3MzI1ODFjOTVh
MDY1YmUwNWI2MzY3YzdhZTQuLmYzOGI1NGUxN2M5MzE1NjUxNTRjYWI5NTNhODFlMGU5NmY1NzQ5
YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtlCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtlCkBAIC01LDYgKzUsOCBA
QCBsaXN0KEFQUEVORCBXZWJDb3JlX1BSSVZBVEVfSU5DTFVERV9ESVJFQ1RPUklFUwogKQogCiBs
aXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHAKKwogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250UGxhdGZvcm1EYXRhRnJlZVR5cGUu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFn
ZUJ1ZmZlckNHQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5jcHAKaW5kZXggMmFkMzFhYzU3ZDVmMWJkZTc5NDE5YzVm
OTE1Njk3YjM3NTQ0YmI0OC4uNWIyMGQ4OTJlZDhiYmNmNjAxODE2YTYzNjc2YTAwZjFmYTVjMTdi
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VC
dWZmZXJDR0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5kLmNwcApAQCAtNjEsNiArNjEsNyBAQCBSZXRhaW5QdHI8
Q0dDb2xvclNwYWNlUmVmPiBJbWFnZUJ1ZmZlckNHQmFja2VuZDo6Y29udGV4dENvbG9yU3BhY2Uo
Y29uc3QgR3JhcGhpYwogCiB2b2lkIEltYWdlQnVmZmVyQ0dCYWNrZW5kOjpzZXR1cENvbnRleHQo
KQogeworICAgIC8vIFRoZSBpbml0aWFsIENUTSBtYXRjaGVzIERpc3BsYXlMaXN0OjpSZWNvcmRl
cjo6Y2xpcFRvRHJhd2luZ0NvbW1hbmRzKCkncyBpbml0aWFsIENUTS4KICAgICBjb250ZXh0KCku
c2NhbGUoRmxvYXRTaXplKDEsIC0xKSk7CiAgICAgY29udGV4dCgpLnRyYW5zbGF0ZSgwLCAtbV9i
YWNrZW5kU2l6ZS5oZWlnaHQoKSk7CiAgICAgY29udGV4dCgpLmFwcGx5RGV2aWNlU2NhbGVGYWN0
b3IobV9yZXNvbHV0aW9uU2NhbGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udENhc2NhZGVDb3JlVGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250Q2FzY2FkZUNvcmVUZXh0LmNwcApp
bmRleCA0YThlNGUwZWExOTQxNDQzNjI1MGE0YmU4YWE0NWNiNzFkYjIxNmZiLi5mOTdmNzBiOGY3
NjQ4MzgwNzA2ZjdkMGJlNzVkNGEwZDk3ZmU4OGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250Q2FzY2FkZUNvcmVUZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250Q2FzY2FkZUNv
cmVUZXh0LmNwcApAQCAtNjksNiArNjksMTQgQEAgc3RhdGljIGNvbnN0IEFmZmluZVRyYW5zZm9y
bSYgcm90YXRlTGVmdFRyYW5zZm9ybSgpCiAKIHZvaWQgZmlsbFZlY3RvcldpdGhIb3Jpem9udGFs
R2x5cGhQb3NpdGlvbnMoVmVjdG9yPENHUG9pbnQsIDI1Nj4mIHBvc2l0aW9ucywgQ0dDb250ZXh0
UmVmIGNvbnRleHQsIGNvbnN0IENHU2l6ZSogYWR2YW5jZXMsIHVuc2lnbmVkIGNvdW50LCBjb25z
dCBGbG9hdFBvaW50JiBwb2ludCkKIHsKKyAgICAvLyBUaGUgaW5wdXQgcG9zaXRpb25zIGFyZSBp
biB0aGUgY29udGV4dCdzIGNvb3JkaW5hdGUgc3lzdGVtLCB3aXRob3V0IHRoZSB0ZXh0IG1hdHJp
eC4KKyAgICAvLyBIb3dldmVyLCB0aGUgcG9zaXRpb25zIHRoYXQgQ1QvQ0cgYWNjZXB0IGFyZSBp
biB0aGUgdGV4dCBtYXRyaXgncyBjb29yZGluYXRlIHN5c3RlbS4KKyAgICAvLyBDR0NvbnRleHRH
ZXRUZXh0TWF0cml4KCkgZ2l2ZXMgdXMgdGhlIG1hdHJpeCB0aGF0IG1hcHMgZnJvbSB0ZXh0J3Mg
Y29vcmRpbmF0ZSBzeXN0ZW0gdG8gdGhlIGNvbnRleHQncyAobm9uLXRleHQpIGNvb3JkaW5hdGUg
c3lzdGVtLgorICAgIC8vIFdlIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0IHRvIGRlbGl2ZXIgQ1Qs
IGluc2lkZSB0aGUgdGV4dCdzIGNvb3JkaW5hdGUgc3lzdGVtLCBzdWNoIHRoYXQgaXQgZW5kcyB1
cCBjb2luY2lkZW50IHdpdGggdGhlIGlucHV0IGluIHRoZSBjb250ZXh0J3MgY29vcmRpbmF0ZSBz
eXN0ZW0uCisgICAgLy8KKyAgICAvLyBDVE0gKiB0ZXh0IG1hdHJpeCAqIHBvc2l0aW9ucyB3ZSBu
ZWVkIHRvIGRlbGl2ZXIgdG8gQ1QgPSBDVE0gKiBpbnB1dCBwb3NpdGlvbnMKKyAgICAvLyBTb2x2
aW5nIGZvciB0aGUgcG9zaXRpb25zIHdlIG5lZWQgdG8gZGVsaXZlciB0byBDVCwgd2UgZ2V0Cisg
ICAgLy8gcG9zaXRpb25zIHdlIG5lZWQgdG8gZGVsaXZlciB0byBDVCA9IGludmVyc2UodGV4dCBt
YXRyaXgpICogaW5wdXQgcG9zaXRpb25zCiAgICAgQ0dBZmZpbmVUcmFuc2Zvcm0gbWF0cml4ID0g
Q0dBZmZpbmVUcmFuc2Zvcm1JbnZlcnQoQ0dDb250ZXh0R2V0VGV4dE1hdHJpeChjb250ZXh0KSk7
CiAgICAgcG9zaXRpb25zWzBdID0gQ0dQb2ludEFwcGx5QWZmaW5lVHJhbnNmb3JtKHBvaW50LCBt
YXRyaXgpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCBjb3VudDsgKytpKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjgzNzRlYzIyYWVkMDRiN2ViYjM4MThlYzUxOTk4NjBiMmM4NTQ0MzcKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaApAQCAtMCwwICsxLDExNyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCisjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRl
ICJHcmFkaWVudC5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIlBh
dHRlcm4uaCIKKyNpbmNsdWRlICJUZXh0RmxhZ3MuaCIKKworI2lmIFVTRShDT1JFX1RFWFQpCisj
aW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NvcmVHcmFwaGljcy5oPgorI2luY2x1ZGUgPHBhbC9zcGkv
Y2cvQ29yZUdyYXBoaWNzU1BJLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBGbG9hdFBvaW50OworY2xhc3MgRm9udDsKK2NsYXNzIEdseXBoQnVmZmVyOworY2xhc3Mg
R3JhcGhpY3NDb250ZXh0OworCituYW1lc3BhY2UgRGlzcGxheUxpc3QgeworCitjbGFzcyBSZWNv
cmRlcjsKKworY2xhc3MgRHJhd0dseXBoc1JlY29yZGVyIHsKK3B1YmxpYzoKKyAgICBleHBsaWNp
dCBEcmF3R2x5cGhzUmVjb3JkZXIoUmVjb3JkZXImKTsKKworICAgIHZvaWQgZHJhd0dseXBocyhj
b25zdCBGb250JiwgY29uc3QgR2x5cGhCdWZmZXImLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBu
dW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmIGFuY2hvclBvaW50LCBGb250U21vb3RoaW5nTW9k
ZSk7CisKKyNpZiBVU0UoQ09SRV9URVhUKQorICAgIHZvaWQgcmVjb3JkQmVnaW5MYXllcihDR1Jl
bmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiwgQ0dSZWN0KTsKKyAgICB2b2lkIHJlY29yZEVu
ZExheWVyKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmKTsKKyAgICB2b2lkIHJlY29y
ZERyYXdHbHlwaHMoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYsIGNvbnN0IENHQWZm
aW5lVHJhbnNmb3JtKiwgY29uc3QgQ0dHbHlwaFtdLCBjb25zdCBDR1BvaW50IHBvc2l0aW9uc1td
LCBzaXplX3QgY291bnQpOworICAgIHZvaWQgcmVjb3JkRHJhd0ltYWdlKENHUmVuZGVyaW5nU3Rh
dGVSZWYsIENHR1N0YXRlUmVmLCBDR1JlY3QsIENHSW1hZ2VSZWYpOworI2VuZGlmCisKK3ByaXZh
dGU6CisgICAgR3JhcGhpY3NDb250ZXh0IGNyZWF0ZUludGVybmFsQ29udGV4dCgpOworICAgIHZv
aWQgcHJlcGFyZUludGVybmFsQ29udGV4dChjb25zdCBGb250JiwgRm9udFNtb290aGluZ01vZGUp
OworICAgIHZvaWQgY29uY2x1ZGVJbnRlcm5hbENvbnRleHQoKTsKKyAgICB2b2lkIHVwZGF0ZUNU
TShBZmZpbmVUcmFuc2Zvcm0pOworICAgIHZvaWQgdXBkYXRlRmlsbENvbG9yKGNvbnN0IENvbG9y
JiwgR3JhZGllbnQqID0gbnVsbHB0ciwgUGF0dGVybiogPSBudWxscHRyKTsKKyAgICB2b2lkIHVw
ZGF0ZVN0cm9rZUNvbG9yKGNvbnN0IENvbG9yJiwgR3JhZGllbnQqID0gbnVsbHB0ciwgUGF0dGVy
biogPSBudWxscHRyKTsKKyAgICBlbnVtIGNsYXNzIFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zIHsK
KyAgICAgICAgVW5zcGVjaWZpZWQsCisgICAgICAgIFllcywKKyAgICAgICAgTm8KKyAgICB9Owor
ICAgIHZvaWQgdXBkYXRlU2hhZG93KGNvbnN0IEZsb2F0U2l6ZSYgc2hhZG93T2Zmc2V0LCBmbG9h
dCBzaGFkb3dCbHVyLCBjb25zdCBDb2xvciYgc2hhZG93Q29sb3IsIFNoYWRvd3NJZ25vcmVUcmFu
c2Zvcm1zKTsKKworI2lmIFVTRShDT1JFX1RFWFQpCisgICAgdm9pZCB1cGRhdGVTaGFkb3coQ0dT
dHlsZVJlZik7CisjZW5kaWYKKworICAgIFJlY29yZGVyJiBtX293bmVyOworICAgIEdyYXBoaWNz
Q29udGV4dCBtX2ludGVybmFsQ29udGV4dDsKKyAgICBjb25zdCBGb250KiBtX2N1cnJlbnRGb250
IHsgbnVsbHB0ciB9OworCisgICAgQ29sb3IgbV9jdXJyZW50RmlsbENvbG9yOworICAgIENvbG9y
IG1fY3VycmVudFN0cm9rZUNvbG9yOworCisgICAgQ29sb3IgbV9vcmlnaW5hbEZpbGxDb2xvcjsK
KyAgICBSZWZQdHI8R3JhZGllbnQ+IG1fb3JpZ2luYWxGaWxsR3JhZGllbnQ7CisgICAgUmVmUHRy
PFBhdHRlcm4+IG1fb3JpZ2luYWxGaWxsUGF0dGVybjsKKworICAgIENvbG9yIG1fb3JpZ2luYWxT
dHJva2VDb2xvcjsKKyAgICBSZWZQdHI8R3JhZGllbnQ+IG1fb3JpZ2luYWxTdHJva2VHcmFkaWVu
dDsKKyAgICBSZWZQdHI8UGF0dGVybj4gbV9vcmlnaW5hbFN0cm9rZVBhdHRlcm47CisKKyAgICBB
ZmZpbmVUcmFuc2Zvcm0gbV9vcmlnaW5hbENUTTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gbV9jdXJy
ZW50Q1RNOworCisgICAgQWZmaW5lVHJhbnNmb3JtIG1fb3JpZ2luYWxUZXh0TWF0cml4OworCisg
ICAgRmxvYXRTaXplIG1fb3JpZ2luYWxTaGFkb3dPZmZzZXQ7CisgICAgZmxvYXQgbV9vcmlnaW5h
bFNoYWRvd0JsdXI7CisgICAgQ29sb3IgbV9vcmlnaW5hbFNoYWRvd0NvbG9yOworICAgIGJvb2wg
bV9vcmlnaW5hbFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOworCisgICAgRmxvYXRTaXplIG1fY3Vy
cmVudFNoYWRvd09mZnNldDsKKyAgICBmbG9hdCBtX2N1cnJlbnRTaGFkb3dCbHVyOworICAgIENv
bG9yIG1fY3VycmVudFNoYWRvd0NvbG9yOworICAgIGJvb2wgbV9jdXJyZW50U2hhZG93c0lnbm9y
ZVRyYW5zZm9ybXM7CisKKyAgICBGb250U21vb3RoaW5nTW9kZSBtX3Ntb290aGluZ01vZGUgeyBG
b250U21vb3RoaW5nTW9kZTo6QXV0b1Ntb290aGluZyB9OworfTsKKworfQorCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJD
b3JlVGV4dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjRjODM0NmJkNmI0NmNjM2RhNWIwYzgyMWYyNmJiM2Yw
MjBkYjRhYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNw
cApAQCAtMCwwICsxLDM2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEaXNwbGF5TGlzdERyYXdH
bHlwaHNSZWNvcmRlci5oIgorCisjaW5jbHVkZSAiQml0bWFwSW1hZ2UuaCIKKyNpbmNsdWRlICJD
b2xvci5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0SXRlbXMuaCIKKyNpbmNsdWRlICJEaXNwbGF5
TGlzdFJlY29yZGVyLmgiCisjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgorI2luY2x1ZGUgIkZvbnQu
aCIKKyNpbmNsdWRlICJGb250Q2FzY2FkZS5oIgorI2luY2x1ZGUgIkdseXBoQnVmZmVyLmgiCisK
KyNpbmNsdWRlIDxDb3JlVGV4dC9Db3JlVGV4dC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
KworI2lmIFBMQVRGT1JNKFdJTikKKyNpbmNsdWRlIDxwYWwvc3BpL3dpbi9Db3JlVGV4dFNQSVdp
bi5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIERpc3BsYXlM
aXN0IHsKKworc3RhdGljIENHQ29udGV4dERlbGVnYXRlUmVmIGJlZ2luTGF5ZXIoQ0dDb250ZXh0
RGVsZWdhdGVSZWYgZGVsZWdhdGUsIENHUmVuZGVyaW5nU3RhdGVSZWYgcnN0YXRlLCBDR0dTdGF0
ZVJlZiBnc3RhdGUsIENHUmVjdCByZWN0LCBDRkRpY3Rpb25hcnlSZWYsIENHQ29udGV4dERlbGVn
YXRlUmVmKQoreworICAgIERyYXdHbHlwaHNSZWNvcmRlciYgcmVjb3JkZXIgPSAqc3RhdGljX2Nh
c3Q8RHJhd0dseXBoc1JlY29yZGVyKj4oQ0dDb250ZXh0RGVsZWdhdGVHZXRJbmZvKGRlbGVnYXRl
KSk7CisgICAgcmVjb3JkZXIucmVjb3JkQmVnaW5MYXllcihyc3RhdGUsIGdzdGF0ZSwgcmVjdCk7
CisgICAgcmV0dXJuIGRlbGVnYXRlOworfQorCitzdGF0aWMgQ0dDb250ZXh0RGVsZWdhdGVSZWYg
ZW5kTGF5ZXIoQ0dDb250ZXh0RGVsZWdhdGVSZWYgZGVsZWdhdGUsIENHUmVuZGVyaW5nU3RhdGVS
ZWYgcnN0YXRlLCBDR0dTdGF0ZVJlZiBnc3RhdGUpCit7CisgICAgRHJhd0dseXBoc1JlY29yZGVy
JiByZWNvcmRlciA9ICpzdGF0aWNfY2FzdDxEcmF3R2x5cGhzUmVjb3JkZXIqPihDR0NvbnRleHRE
ZWxlZ2F0ZUdldEluZm8oZGVsZWdhdGUpKTsKKyAgICByZWNvcmRlci5yZWNvcmRFbmRMYXllcihy
c3RhdGUsIGdzdGF0ZSk7CisgICAgcmV0dXJuIGRlbGVnYXRlOworfQorCitzdGF0aWMgQ0dFcnJv
ciBkcmF3R2x5cGhzKENHQ29udGV4dERlbGVnYXRlUmVmIGRlbGVnYXRlLCBDR1JlbmRlcmluZ1N0
YXRlUmVmIHJzdGF0ZSwgQ0dHU3RhdGVSZWYgZ3N0YXRlLCBjb25zdCBDR0FmZmluZVRyYW5zZm9y
bSogdG0sIGNvbnN0IENHR2x5cGggZ2x5cGhzW10sIGNvbnN0IENHUG9pbnQgcG9zaXRpb25zW10s
IHNpemVfdCBjb3VudCkKK3sKKyAgICBpZiAoQ0dHU3RhdGVHZXRBbHBoYShnc3RhdGUpID4gMCkg
eworICAgICAgICBEcmF3R2x5cGhzUmVjb3JkZXImIHJlY29yZGVyID0gKnN0YXRpY19jYXN0PERy
YXdHbHlwaHNSZWNvcmRlcio+KENHQ29udGV4dERlbGVnYXRlR2V0SW5mbyhkZWxlZ2F0ZSkpOwor
ICAgICAgICByZWNvcmRlci5yZWNvcmREcmF3R2x5cGhzKHJzdGF0ZSwgZ3N0YXRlLCB0bSwgZ2x5
cGhzLCBwb3NpdGlvbnMsIGNvdW50KTsKKyAgICB9CisgICAgcmV0dXJuIGtDR0Vycm9yU3VjY2Vz
czsKK30KKworc3RhdGljIENHRXJyb3IgZHJhd0ltYWdlKENHQ29udGV4dERlbGVnYXRlUmVmIGRl
bGVnYXRlLCBDR1JlbmRlcmluZ1N0YXRlUmVmIHJzdGF0ZSwgQ0dHU3RhdGVSZWYgZ3N0YXRlLCBD
R1JlY3QgcmVjdCwgQ0dJbWFnZVJlZiBpbWFnZSkKK3sKKyAgICBEcmF3R2x5cGhzUmVjb3JkZXIm
IHJlY29yZGVyID0gKnN0YXRpY19jYXN0PERyYXdHbHlwaHNSZWNvcmRlcio+KENHQ29udGV4dERl
bGVnYXRlR2V0SW5mbyhkZWxlZ2F0ZSkpOworICAgIHJlY29yZGVyLnJlY29yZERyYXdJbWFnZShy
c3RhdGUsIGdzdGF0ZSwgcmVjdCwgaW1hZ2UpOworICAgIHJldHVybiBrQ0dFcnJvclN1Y2Nlc3M7
Cit9CisKK0dyYXBoaWNzQ29udGV4dCBEcmF3R2x5cGhzUmVjb3JkZXI6OmNyZWF0ZUludGVybmFs
Q29udGV4dCgpCit7CisgICAgYXV0byBjb250ZXh0RGVsZWdhdGUgPSBhZG9wdENGKENHQ29udGV4
dERlbGVnYXRlQ3JlYXRlKHRoaXMpKTsKKyAgICBDR0NvbnRleHREZWxlZ2F0ZVNldENhbGxiYWNr
KGNvbnRleHREZWxlZ2F0ZS5nZXQoKSwgZGVCZWdpbkxheWVyLCByZWludGVycHJldF9jYXN0PENH
Q29udGV4dERlbGVnYXRlQ2FsbGJhY2s+KCZiZWdpbkxheWVyKSk7CisgICAgQ0dDb250ZXh0RGVs
ZWdhdGVTZXRDYWxsYmFjayhjb250ZXh0RGVsZWdhdGUuZ2V0KCksIGRlRW5kTGF5ZXIsIHJlaW50
ZXJwcmV0X2Nhc3Q8Q0dDb250ZXh0RGVsZWdhdGVDYWxsYmFjaz4oJmVuZExheWVyKSk7CisgICAg
Q0dDb250ZXh0RGVsZWdhdGVTZXRDYWxsYmFjayhjb250ZXh0RGVsZWdhdGUuZ2V0KCksIGRlRHJh
d0dseXBocywgcmVpbnRlcnByZXRfY2FzdDxDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrPigmV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OmRyYXdHbHlwaHMpKTsKKyAgICBDR0NvbnRleHREZWxlZ2F0ZVNl
dENhbGxiYWNrKGNvbnRleHREZWxlZ2F0ZS5nZXQoKSwgZGVEcmF3SW1hZ2UsIHJlaW50ZXJwcmV0
X2Nhc3Q8Q0dDb250ZXh0RGVsZWdhdGVDYWxsYmFjaz4oJmRyYXdJbWFnZSkpOworICAgIGF1dG8g
Y29udGV4dCA9IGFkb3B0Q0YoQ0dDb250ZXh0Q3JlYXRlV2l0aERlbGVnYXRlKGNvbnRleHREZWxl
Z2F0ZS5nZXQoKSwga0NHQ29udGV4dFR5cGVVbmtub3duLCBudWxscHRyLCBudWxscHRyKSk7Cisg
ICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dChjb250ZXh0LmdldCgpKTsKK30KKworRHJhd0dseXBo
c1JlY29yZGVyOjpEcmF3R2x5cGhzUmVjb3JkZXIoUmVjb3JkZXImIG93bmVyKQorICAgIDogbV9v
d25lcihvd25lcikKKyAgICAsIG1faW50ZXJuYWxDb250ZXh0KGNyZWF0ZUludGVybmFsQ29udGV4
dCgpKQoreworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6cHJlcGFyZUludGVybmFsQ29u
dGV4dChjb25zdCBGb250JiBmb250LCBGb250U21vb3RoaW5nTW9kZSBzbW9vdGhpbmdNb2RlKQor
eworICAgIEFTU0VSVChDR0FmZmluZVRyYW5zZm9ybUlzSWRlbnRpdHkoQ1RGb250R2V0TWF0cml4
KGZvbnQucGxhdGZvcm1EYXRhKCkuY3RGb250KCkpKSk7CisKKyAgICBhdXRvJiBzdGF0ZSA9IG1f
b3duZXIuY3VycmVudFN0YXRlKCkuc3RhdGVDaGFuZ2UubV9zdGF0ZTsKKworICAgIG1fb3JpZ2lu
YWxGaWxsQ29sb3IgPSBzdGF0ZS5maWxsQ29sb3I7CisgICAgbV9vcmlnaW5hbEZpbGxHcmFkaWVu
dCA9IHN0YXRlLmZpbGxHcmFkaWVudDsKKyAgICBtX29yaWdpbmFsRmlsbFBhdHRlcm4gPSBzdGF0
ZS5maWxsUGF0dGVybjsKKworICAgIG1fb3JpZ2luYWxTdHJva2VDb2xvciA9IHN0YXRlLnN0cm9r
ZUNvbG9yOworICAgIG1fb3JpZ2luYWxTdHJva2VHcmFkaWVudCA9IHN0YXRlLnN0cm9rZUdyYWRp
ZW50OworICAgIG1fb3JpZ2luYWxTdHJva2VQYXR0ZXJuID0gc3RhdGUuc3Ryb2tlUGF0dGVybjsK
KworICAgIG1fY3VycmVudEZpbGxDb2xvciA9IG1fb3JpZ2luYWxGaWxsQ29sb3I7CisgICAgbV9j
dXJyZW50U3Ryb2tlQ29sb3IgPSBtX29yaWdpbmFsU3Ryb2tlQ29sb3I7CisKKyAgICBpZiAobV9v
cmlnaW5hbEZpbGxDb2xvci5pc1ZhbGlkKCkpCisgICAgICAgIG1faW50ZXJuYWxDb250ZXh0LnNl
dEZpbGxDb2xvcihtX29yaWdpbmFsRmlsbENvbG9yKTsKKyAgICBlbHNlIGlmIChtX29yaWdpbmFs
RmlsbEdyYWRpZW50KQorICAgICAgICBtX2ludGVybmFsQ29udGV4dC5zZXRGaWxsR3JhZGllbnQo
Km1fb3JpZ2luYWxGaWxsR3JhZGllbnQpOworICAgIGVsc2UgeworICAgICAgICBBU1NFUlQobV9v
cmlnaW5hbEZpbGxQYXR0ZXJuKTsKKyAgICAgICAgaWYgKG1fb3JpZ2luYWxGaWxsUGF0dGVybikK
KyAgICAgICAgICAgIG1faW50ZXJuYWxDb250ZXh0LnNldEZpbGxQYXR0ZXJuKCptX29yaWdpbmFs
RmlsbFBhdHRlcm4pOworICAgIH0KKworICAgIGlmIChtX29yaWdpbmFsU3Ryb2tlQ29sb3IuaXNW
YWxpZCgpKQorICAgICAgICBtX2ludGVybmFsQ29udGV4dC5zZXRTdHJva2VDb2xvcihtX29yaWdp
bmFsU3Ryb2tlQ29sb3IpOworICAgIGVsc2UgaWYgKG1fb3JpZ2luYWxTdHJva2VHcmFkaWVudCkK
KyAgICAgICAgbV9pbnRlcm5hbENvbnRleHQuc2V0U3Ryb2tlR3JhZGllbnQoKm1fb3JpZ2luYWxT
dHJva2VHcmFkaWVudCk7CisgICAgZWxzZSB7CisgICAgICAgIEFTU0VSVChtX29yaWdpbmFsU3Ry
b2tlUGF0dGVybik7CisgICAgICAgIGlmIChtX29yaWdpbmFsU3Ryb2tlUGF0dGVybikKKyAgICAg
ICAgICAgIG1faW50ZXJuYWxDb250ZXh0LnNldFN0cm9rZVBhdHRlcm4oKm1fb3JpZ2luYWxTdHJv
a2VQYXR0ZXJuKTsKKyAgICB9CisKKyAgICBtX29yaWdpbmFsQ1RNID0gbV9vd25lci5jdXJyZW50
U3RhdGUoKS5jdG07IC8vIEZJWE1FOiBEZWFsIHdpdGggZGV2aWNlIHNjYWxlLgorICAgIG1fY3Vy
cmVudENUTSA9IG1fb3JpZ2luYWxDVE07CisgICAgbV9pbnRlcm5hbENvbnRleHQuc2V0Q1RNKG1f
b3JpZ2luYWxDVE0pOworCisgICAgbV9vcmlnaW5hbFRleHRNYXRyaXggPSBjb21wdXRlT3ZlcmFs
bFRleHRNYXRyaXgoZm9udCk7CisgICAgaWYgKGZvbnQucGxhdGZvcm1EYXRhKCkub3JpZW50YXRp
b24oKSA9PSBGb250T3JpZW50YXRpb246OlZlcnRpY2FsKQorICAgICAgICBtX29yaWdpbmFsVGV4
dE1hdHJpeCA9IGNvbXB1dGVWZXJ0aWNhbFRleHRNYXRyaXgoZm9udCwgbV9vcmlnaW5hbFRleHRN
YXRyaXgpOworCisgICAgbV9pbnRlcm5hbENvbnRleHQuc2V0U2hhZG93c0lnbm9yZVRyYW5zZm9y
bXMoc3RhdGUuc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMpOworICAgIGlmIChzdGF0ZS5zaGFkb3dz
VXNlTGVnYWN5UmFkaXVzKQorICAgICAgICBtX2ludGVybmFsQ29udGV4dC5zZXRMZWdhY3lTaGFk
b3coc3RhdGUuc2hhZG93T2Zmc2V0LCBzdGF0ZS5zaGFkb3dCbHVyLCBzdGF0ZS5zaGFkb3dDb2xv
cik7CisgICAgZWxzZQorICAgICAgICBtX2ludGVybmFsQ29udGV4dC5zZXRTaGFkb3coc3RhdGUu
c2hhZG93T2Zmc2V0LCBzdGF0ZS5zaGFkb3dCbHVyLCBzdGF0ZS5zaGFkb3dDb2xvcik7CisKKyAg
ICBtX2ludGVybmFsQ29udGV4dC5zZXRUZXh0RHJhd2luZ01vZGUoc3RhdGUudGV4dERyYXdpbmdN
b2RlKTsKKworICAgIG1fb3JpZ2luYWxTaGFkb3dPZmZzZXQgPSBzdGF0ZS5zaGFkb3dPZmZzZXQ7
CisgICAgbV9vcmlnaW5hbFNoYWRvd0JsdXIgPSBzdGF0ZS5zaGFkb3dCbHVyOworICAgIG1fb3Jp
Z2luYWxTaGFkb3dDb2xvciA9IHN0YXRlLnNoYWRvd0NvbG9yOworICAgIG1fb3JpZ2luYWxTaGFk
b3dzSWdub3JlVHJhbnNmb3JtcyA9IHN0YXRlLnNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOworCisg
ICAgbV9jdXJyZW50U2hhZG93T2Zmc2V0ID0gbV9vcmlnaW5hbFNoYWRvd09mZnNldDsKKyAgICBt
X2N1cnJlbnRTaGFkb3dCbHVyID0gbV9vcmlnaW5hbFNoYWRvd0JsdXI7CisgICAgbV9jdXJyZW50
U2hhZG93Q29sb3IgPSBtX29yaWdpbmFsU2hhZG93Q29sb3I7CisgICAgbV9jdXJyZW50U2hhZG93
c0lnbm9yZVRyYW5zZm9ybXMgPSBtX29yaWdpbmFsU2hhZG93c0lnbm9yZVRyYW5zZm9ybXM7CisK
KyAgICBtX2N1cnJlbnRGb250ID0gJmZvbnQ7CisgICAgbV9zbW9vdGhpbmdNb2RlID0gc21vb3Ro
aW5nTW9kZTsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OmNvbmNsdWRlSW50ZXJuYWxD
b250ZXh0KCkKK3sKKyAgICB1cGRhdGVGaWxsQ29sb3IobV9vcmlnaW5hbEZpbGxDb2xvciwgbV9v
cmlnaW5hbEZpbGxHcmFkaWVudC5nZXQoKSwgbV9vcmlnaW5hbEZpbGxQYXR0ZXJuLmdldCgpKTsK
KyAgICB1cGRhdGVTdHJva2VDb2xvcihtX29yaWdpbmFsU3Ryb2tlQ29sb3IsIG1fb3JpZ2luYWxT
dHJva2VHcmFkaWVudC5nZXQoKSwgbV9vcmlnaW5hbFN0cm9rZVBhdHRlcm4uZ2V0KCkpOworICAg
IHVwZGF0ZUNUTShtX29yaWdpbmFsQ1RNKTsKKyAgICB1cGRhdGVTaGFkb3cobV9vcmlnaW5hbFNo
YWRvd09mZnNldCwgbV9vcmlnaW5hbFNoYWRvd0JsdXIsIG1fb3JpZ2luYWxTaGFkb3dDb2xvciwg
bV9vcmlnaW5hbFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zID8gU2hhZG93c0lnbm9yZVRyYW5zZm9y
bXM6OlllcyA6IFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOjpObyk7Cit9CisKK3ZvaWQgRHJhd0ds
eXBoc1JlY29yZGVyOjp1cGRhdGVDVE0oQWZmaW5lVHJhbnNmb3JtIGN0bSkKK3sKKyAgICBpZiAo
Y3RtID09IG1fY3VycmVudENUTSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9vd25lci5zZXRD
VE0oY3RtKTsKKyAgICBtX2N1cnJlbnRDVE0gPSBjdG07Cit9CisKK3ZvaWQgRHJhd0dseXBoc1Jl
Y29yZGVyOjp1cGRhdGVGaWxsQ29sb3IoY29uc3QgQ29sb3ImIG5ld0NvbG9yLCBHcmFkaWVudCog
bmV3R3JhZGllbnQsIFBhdHRlcm4qIG5ld1BhdHRlcm4pCit7CisgICAgLy8gVGhpcyBjaGVjayBs
b29rcyB3cm9uZyBidXQgaXQgYWN0dWFsbHkgaXNuJ3QsIGZvciBvdXIgbGltaXRlZCB1c2UuCisg
ICAgLy8gQ1Qgd2lsbCBvbmx5IGV2ZXIgc2V0IHRoaXMgdG8gYSBzb2xpZCBjb2xvciwgd2hpY2gg
dGhpcyBpcyB0aGUgY29ycmVjdCBjaGVjayBmb3IuCisgICAgLy8gSW4gY29uY2x1ZGVJbnRlcm5h
bENvbnRleHQoKSB3ZSBzZXQgaXQgYmFjayB0byB3aGF0IGl0IHdhcyBvcmlnaW5hbGx5LCB3aGlj
aCB0aGlzIGNoZWNrIHdvcmtzIGNvcnJlY3RseSBmb3IgdG9vLgorICAgIGlmIChuZXdDb2xvciA9
PSBtX2N1cnJlbnRGaWxsQ29sb3IpCisgICAgICAgIHJldHVybjsKKworICAgIEdyYXBoaWNzQ29u
dGV4dFN0YXRlIG5ld1N0YXRlOworICAgIG5ld1N0YXRlLmZpbGxDb2xvciA9IG5ld0NvbG9yOwor
ICAgIGlmIChuZXdHcmFkaWVudCkKKyAgICAgICAgbmV3U3RhdGUuZmlsbEdyYWRpZW50ID0gbmV3
R3JhZGllbnQ7CisgICAgaWYgKG5ld1BhdHRlcm4pCisgICAgICAgIG5ld1N0YXRlLmZpbGxQYXR0
ZXJuID0gbmV3UGF0dGVybjsKKyAgICBtX293bmVyLnVwZGF0ZVN0YXRlKG5ld1N0YXRlLCB7IEdy
YXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsQ29sb3JDaGFuZ2UgfSk7CisgICAgbV9jdXJyZW50Rmls
bENvbG9yID0gbmV3Q29sb3I7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVT
dHJva2VDb2xvcihjb25zdCBDb2xvciYgbmV3Q29sb3IsIEdyYWRpZW50KiBuZXdHcmFkaWVudCwg
UGF0dGVybiogbmV3UGF0dGVybikKK3sKKyAgICAvLyBUaGlzIGNoZWNrIGxvb2tzIHdyb25nIGJ1
dCBpdCBhY3R1YWxseSBpc24ndCwgZm9yIG91ciBsaW1pdGVkIHVzZS4KKyAgICAvLyBDVCB3aWxs
IG9ubHkgZXZlciBzZXQgdGhpcyB0byBhIHNvbGlkIGNvbG9yLCB3aGljaCB0aGlzIGlzIHRoZSBj
b3JyZWN0IGNoZWNrIGZvci4KKyAgICAvLyBJbiBjb25jbHVkZUludGVybmFsQ29udGV4dCgpIHdl
IHNldCBpdCBiYWNrIHRvIHdoYXQgaXQgd2FzIG9yaWdpbmFsbHksIHdoaWNoIHRoaXMgY2hlY2sg
d29ya3MgY29ycmVjdGx5IGZvciB0b28uCisgICAgaWYgKG5ld0NvbG9yID09IG1fY3VycmVudFN0
cm9rZUNvbG9yKQorICAgICAgICByZXR1cm47CisKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZSBu
ZXdTdGF0ZTsKKyAgICBuZXdTdGF0ZS5zdHJva2VDb2xvciA9IG5ld0NvbG9yOworICAgIGlmIChu
ZXdHcmFkaWVudCkKKyAgICAgICAgbmV3U3RhdGUuc3Ryb2tlR3JhZGllbnQgPSBuZXdHcmFkaWVu
dDsKKyAgICBpZiAobmV3UGF0dGVybikKKyAgICAgICAgbmV3U3RhdGUuc3Ryb2tlUGF0dGVybiA9
IG5ld1BhdHRlcm47CisgICAgbV9vd25lci51cGRhdGVTdGF0ZShuZXdTdGF0ZSwgeyBHcmFwaGlj
c0NvbnRleHRTdGF0ZTo6U3Ryb2tlQ29sb3JDaGFuZ2UgfSk7CisgICAgbV9jdXJyZW50U3Ryb2tl
Q29sb3IgPSBuZXdDb2xvcjsKK30KKworc3RhdGljIGJvb2wgc2hhZG93SXNDbGVhcmVkKGNvbnN0
IEZsb2F0U2l6ZSYgc2hhZG93T2Zmc2V0LCBmbG9hdCBzaGFkb3dCbHVyKQoreworICAgIHJldHVy
biBzaGFkb3dPZmZzZXQgPT0gRmxvYXRTaXplKCkgJiYgIXNoYWRvd0JsdXI7Cit9CisKK3ZvaWQg
RHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVTaGFkb3coY29uc3QgRmxvYXRTaXplJiBzaGFkb3dP
ZmZzZXQsIGZsb2F0IHNoYWRvd0JsdXIsIGNvbnN0IENvbG9yJiBzaGFkb3dDb2xvciwgU2hhZG93
c0lnbm9yZVRyYW5zZm9ybXMgc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMpCit7CisgICAgLy8gV2Ug
ZG9uJ3QgbmVlZCB0byBjb25zaWRlciBzaGFkb3dzSWdub3JlVHJhbnNmb3JtcyBpZiBub2JvZHkg
aGFzIGFueSBzaGFkb3dzLgorICAgIGlmIChzaGFkb3dJc0NsZWFyZWQoc2hhZG93T2Zmc2V0LCBz
aGFkb3dCbHVyKSAmJiBzaGFkb3dJc0NsZWFyZWQobV9jdXJyZW50U2hhZG93T2Zmc2V0LCBtX2N1
cnJlbnRTaGFkb3dCbHVyKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgR3JhcGhpY3NDb250ZXh0
U3RhdGUgbmV3U3RhdGU7CisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxh
Z3Mgc3RhdGVDaGFuZ2VGbGFnczsKKworICAgIGlmIChzaGFkb3dPZmZzZXQgIT0gbV9jdXJyZW50
U2hhZG93T2Zmc2V0IHx8IHNoYWRvd0JsdXIgIT0gbV9jdXJyZW50U2hhZG93Qmx1ciB8fCBzaGFk
b3dDb2xvciAhPSBtX2N1cnJlbnRTaGFkb3dDb2xvcikgeworICAgICAgICBuZXdTdGF0ZS5zaGFk
b3dPZmZzZXQgPSBzaGFkb3dPZmZzZXQ7CisgICAgICAgIG5ld1N0YXRlLnNoYWRvd0JsdXIgPSBz
aGFkb3dCbHVyOworICAgICAgICBuZXdTdGF0ZS5zaGFkb3dDb2xvciA9IHNoYWRvd0NvbG9yOwor
ICAgICAgICBzdGF0ZUNoYW5nZUZsYWdzLmFkZChHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hhZG93
Q2hhbmdlKTsKKyAgICB9CisgICAgaWYgKHNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zICE9IFNoYWRv
d3NJZ25vcmVUcmFuc2Zvcm1zOjpVbnNwZWNpZmllZCAmJiAoc2hhZG93c0lnbm9yZVRyYW5zZm9y
bXMgPT0gU2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6OlllcykgIT0gbV9jdXJyZW50U2hhZG93c0ln
bm9yZVRyYW5zZm9ybXMpIHsKKyAgICAgICAgbmV3U3RhdGUuc2hhZG93c0lnbm9yZVRyYW5zZm9y
bXMgPSAoc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMgPT0gU2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6
Olllcyk7CisgICAgICAgIHN0YXRlQ2hhbmdlRmxhZ3MuYWRkKEdyYXBoaWNzQ29udGV4dFN0YXRl
OjpTaGFkb3dzSWdub3JlVHJhbnNmb3Jtc0NoYW5nZSk7CisgICAgfQorICAgIGlmIChzdGF0ZUNo
YW5nZUZsYWdzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fb3duZXIudXBkYXRl
U3RhdGUobmV3U3RhdGUsIHN0YXRlQ2hhbmdlRmxhZ3MpOworCisgICAgbV9jdXJyZW50U2hhZG93
T2Zmc2V0ID0gc2hhZG93T2Zmc2V0OworICAgIG1fY3VycmVudFNoYWRvd0JsdXIgPSBzaGFkb3dC
bHVyOworICAgIG1fY3VycmVudFNoYWRvd0NvbG9yID0gc2hhZG93Q29sb3I7CisgICAgbV9jdXJy
ZW50U2hhZG93c0lnbm9yZVRyYW5zZm9ybXMgPSAoc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMgPT0g
U2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6Olllcyk7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29y
ZGVyOjp1cGRhdGVTaGFkb3coQ0dTdHlsZVJlZiBzdHlsZSkKK3sKKyAgICBpZiAoQ0dTdHlsZUdl
dFR5cGUoc3R5bGUpICE9IGtDR1N0eWxlU2hhZG93KSB7CisgICAgICAgIC8vIEZJWE1FOiBTdXBw
b3J0IG1vcmUga2luZHMgb2YgQ0dTdHlsZXMuCisgICAgICAgIHVwZGF0ZVNoYWRvdyh7MCwgMH0s
IDAsIENvbG9yKCksIFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOjpVbnNwZWNpZmllZCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb25zdCBhdXRvJiBzaGFkb3dTdHlsZSA9ICpzdGF0
aWNfY2FzdDxjb25zdCBDR1NoYWRvd1N0eWxlKj4oQ0dTdHlsZUdldERhdGEoc3R5bGUpKTsKKyAg
ICBhdXRvIHJhZCA9IGRlZzJyYWQoc2hhZG93U3R5bGUuYXppbXV0aCAtIDE4MCk7CisgICAgYXV0
byBzaGFkb3dPZmZzZXQgPSBGbG9hdFNpemUoc3RkOjpjb3MocmFkKSwgc3RkOjpzaW4ocmFkKSkg
KiBzaGFkb3dTdHlsZS5oZWlnaHQ7CisgICAgdXBkYXRlU2hhZG93KHNoYWRvd09mZnNldCwgc2hh
ZG93U3R5bGUucmFkaXVzLCBDR1N0eWxlR2V0Q29sb3Ioc3R5bGUpLCBTaGFkb3dzSWdub3JlVHJh
bnNmb3Jtczo6WWVzKTsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZEJlZ2lu
TGF5ZXIoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYgZ3N0YXRlLCBDR1JlY3QpCit7
CisgICAgdXBkYXRlQ1RNKCpDR0dTdGF0ZUdldENUTShnc3RhdGUpKTsKKyAgICBhdXRvIGFscGhh
ID0gQ0dHU3RhdGVHZXRBbHBoYShnc3RhdGUpOworICAgIG1fb3duZXIuYmVnaW5UcmFuc3BhcmVu
Y3lMYXllcihhbHBoYSk7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpyZWNvcmRFbmRM
YXllcihDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiBnc3RhdGUpCit7CisgICAgdXBk
YXRlQ1RNKCpDR0dTdGF0ZUdldENUTShnc3RhdGUpKTsKKyAgICBtX293bmVyLmVuZFRyYW5zcGFy
ZW5jeUxheWVyKCk7Cit9CisKK3N0YXRpYyBWZWN0b3I8Q0dTaXplPiBjb21wdXRlQWR2YW5jZXNG
cm9tUG9zaXRpb25zKGNvbnN0IENHUG9pbnQgcG9zaXRpb25zW10sIHNpemVfdCBjb3VudCwgY29u
c3QgQ0dBZmZpbmVUcmFuc2Zvcm0mIHRleHRNYXRyaXgpCit7CisgICAgVmVjdG9yPENHU2l6ZT4g
cmVzdWx0OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQgLSAxOyArK2kpIHsKKyAg
ICAgICAgYXV0byBuZXh0UG9zaXRpb24gPSBwb3NpdGlvbnNbaSArIDFdOworICAgICAgICBhdXRv
IGN1cnJlbnRQb3NpdGlvbiA9IHBvc2l0aW9uc1tpXTsKKyAgICAgICAgYXV0byBhZHZhbmNlID0g
Q0dTaXplTWFrZShuZXh0UG9zaXRpb24ueCAtIGN1cnJlbnRQb3NpdGlvbi54LCBuZXh0UG9zaXRp
b24ueSAtIGN1cnJlbnRQb3NpdGlvbi55KTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChDR1NpemVB
cHBseUFmZmluZVRyYW5zZm9ybShhZHZhbmNlLCB0ZXh0TWF0cml4KSk7CisgICAgfQorICAgIHJl
c3VsdC5jb25zdHJ1Y3RBbmRBcHBlbmQoQ0dTaXplTWFrZSgwLCAwKSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZERyYXdHbHlwaHMoQ0dS
ZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYgZ3N0YXRlLCBjb25zdCBDR0FmZmluZVRyYW5z
Zm9ybSosIGNvbnN0IENHR2x5cGggZ2x5cGhzW10sIGNvbnN0IENHUG9pbnQgcG9zaXRpb25zW10s
IHNpemVfdCBjb3VudCkKK3sKKyAgICBpZiAoIWNvdW50KQorICAgICAgICByZXR1cm47CisKKyAg
ICBDR0ZvbnRSZWYgdXNlZEZvbnQgPSBDR0dTdGF0ZUdldEZvbnQoZ3N0YXRlKTsKKyAgICBpZiAo
dXNlZEZvbnQgIT0gYWRvcHRDRihDVEZvbnRDb3B5R3JhcGhpY3NGb250KG1fY3VycmVudEZvbnQt
PnBsYXRmb3JtRGF0YSgpLmN0Rm9udCgpLCBudWxscHRyKSkuZ2V0KCkpCisgICAgICAgIHJldHVy
bjsKKworI2lmIEFTU0VSVF9FTkFCTEVECisgICAgYXV0byB0ZXh0UG9zaXRpb24gPSBDR0NvbnRl
eHRHZXRUZXh0UG9zaXRpb24obV9pbnRlcm5hbENvbnRleHQucGxhdGZvcm1Db250ZXh0KCkpOwor
ICAgIEFTU0VSVCghdGV4dFBvc2l0aW9uLngpOworICAgIEFTU0VSVCghdGV4dFBvc2l0aW9uLnkp
OworI2VuZGlmCisKKyAgICB1cGRhdGVDVE0oKkNHR1N0YXRlR2V0Q1RNKGdzdGF0ZSkpOworCisg
ICAgLy8gV2Ugd2FudCB0aGUgR1BVIHByb2Nlc3MncyBDVE0gYW5kIHRleHQgbWF0cml4IHRvIG1h
dGNoIHRoZSBjdXJyZW50IENUTSBhbmQgdGV4dCBtYXRyaXguCisgICAgLy8gVGhlIGN1cnJlbnQg
dGV4dCBtYXRyaXggaXMgYSBjb25jYXRlbmF0aW9uIG9mIHdoYXRldmVyIFdlYktpdCBzZXRzIGl0
IHRvIGFuZCB3aGF0ZXZlcgorICAgIC8vIENvcmUgVGV4dCBhcHBlbmRzIHRvIGl0LiBTbywgcmln
aHQgbm93IHdlIGhhdmUKKyAgICAvLyBDVE0gKiBtX29yaWdpbmFsVGV4dE1hdHJpeCAqIENvcmUg
VGV4dCdzIHRleHQgbWF0cml4LgorICAgIC8vIEhvd2V2ZXIsIENHQ29udGV4dEdldFRleHRNYXRy
aXgoKSBqdXN0IHRlbGxzIHVzIHdoYXQgdGhlIHdob2xlIHRleHQgbWF0cml4IGlzLCBzbworICAg
IC8vIG1fb3JpZ2luYWxUZXh0TWF0cml4ICogQ29yZSBUZXh0J3MgdGV4dCBtYXRyaXggPSBjdXJy
ZW50VGV4dE1hdHJpeC4KKyAgICAvLyBUaGUgb25seSB3YXkgd2UgY2FuIGVtdWxhdGUgQ29yZSBU
ZXh0J3MgdGV4dCBtYXRyaXggaXMgYnkgbW9kaWZ5aW5nIHRoZSBDVE0gaGVyZS4KKyAgICAvLyBT
bywgaWYgd2UgZG8gdGhhdCwgdGhlIEdQVSBwcm9jZXNzIHdpbGwgaGF2ZQorICAgIC8vIENUTSAq
IFggKiBtX29yaWdpbmFsVGV4dE1hdHJpeAorICAgIC8vIElmIHlvdSBzZXQgdGhlc2UgdHdvIGVx
dWFsIHRvIGVhY2ggb3RoZXIsIGFuZCBzb2x2ZSBmb3IgWCwgeW91IGdldAorICAgIC8vIENUTSAq
IGN1cnJlbnRUZXh0TWF0cml4ID0gQ1RNICogWCAqIG1fb3JpZ2luYWxUZXh0TWF0cml4CisgICAg
Ly8gY3VycmVudFRleHRNYXRyaXggKiBpbnZlcnNlKG1fb3JpZ2luYWxUZXh0TWF0cml4KSA9IFgK
KyAgICBBZmZpbmVUcmFuc2Zvcm0gY3VycmVudFRleHRNYXRyaXggPSBDR0NvbnRleHRHZXRUZXh0
TWF0cml4KG1faW50ZXJuYWxDb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpKTsKKyAgICBBZmZpbmVU
cmFuc2Zvcm0gY3RtRml4dXA7CisgICAgaWYgKGF1dG8gaW52ZXJ0ZWRPcmlnaW5hbFRleHRNYXRy
aXggPSBtX29yaWdpbmFsVGV4dE1hdHJpeC5pbnZlcnNlKCkpCisgICAgICAgIGN0bUZpeHVwID0g
Y3VycmVudFRleHRNYXRyaXggKiBpbnZlcnRlZE9yaWdpbmFsVGV4dE1hdHJpeC52YWx1ZSgpOwor
ICAgIEFmZmluZVRyYW5zZm9ybSBpbnZlcnNlQ1RNRml4dXA7CisgICAgaWYgKGF1dG8gaW52ZXJz
ZSA9IGN0bUZpeHVwLmludmVyc2UoKSkKKyAgICAgICAgaW52ZXJzZUNUTUZpeHVwID0gaW52ZXJz
ZS52YWx1ZSgpOworICAgIGVsc2UKKyAgICAgICAgY3RtRml4dXAgPSBBZmZpbmVUcmFuc2Zvcm0o
KTsKKyAgICBtX293bmVyLmNvbmNhdENUTShjdG1GaXh1cCk7CisKKyAgICB1cGRhdGVGaWxsQ29s
b3IoQ0dHU3RhdGVHZXRGaWxsQ29sb3IoZ3N0YXRlKSk7CisgICAgdXBkYXRlU3Ryb2tlQ29sb3Io
Q0dHU3RhdGVHZXRTdHJva2VDb2xvcihnc3RhdGUpKTsKKyAgICB1cGRhdGVTaGFkb3coQ0dHU3Rh
dGVHZXRTdHlsZShnc3RhdGUpKTsKKworICAgIG1fb3duZXIuYXBwZW5kSXRlbUFuZFVwZGF0ZUV4
dGVudChEcmF3R2x5cGhzOjpjcmVhdGUoKm1fY3VycmVudEZvbnQsIGdseXBocywgY29tcHV0ZUFk
dmFuY2VzRnJvbVBvc2l0aW9ucyhwb3NpdGlvbnMsIGNvdW50LCBjdXJyZW50VGV4dE1hdHJpeCku
ZGF0YSgpLCBjb3VudCwgY3VycmVudFRleHRNYXRyaXgubWFwUG9pbnQocG9zaXRpb25zWzBdKSwg
bV9zbW9vdGhpbmdNb2RlKSk7CisKKyAgICBtX293bmVyLmNvbmNhdENUTShpbnZlcnNlQ1RNRml4
dXApOworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6cmVjb3JkRHJhd0ltYWdlKENHUmVu
ZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmIGdzdGF0ZSwgQ0dSZWN0IHJlY3QsIENHSW1hZ2VS
ZWYgY2dJbWFnZSkKK3sKKyAgICB1cGRhdGVDVE0oKkNHR1N0YXRlR2V0Q1RNKGdzdGF0ZSkpOwor
ICAgIHVwZGF0ZVNoYWRvdyhDR0dTdGF0ZUdldFN0eWxlKGdzdGF0ZSkpOworCisgICAgLy8gQ29y
ZSBHcmFwaGljcyBhc3N1bWVzIGEgInkgdXAiIGNvb3JkaW5hdGUgc3lzdGVtLCBidXQgaW4gV2Vi
S2l0LCB3ZSB1c2UgYSAieS1kb3duIiBjb29yZGluYXRlIHN5c3RlbS4KKyAgICAvLyBUaGlzIG1l
YW5zIHRoYXQgV2ViS2l0J3MgZHJhd2luZyByb3V0aW5lcyAoR3JhcGhpY3NDb250ZXh0OjpkcmF3
SW1hZ2UoKSkgaW50ZW50aW9uYWxseSBkcmF3IGltYWdlcyB1cHNpZGUtZG93biBmcm9tIENvcmUg
R3JhcGhpY3MncyBwb2ludCBvZiB2aWV3LgorICAgIC8vIChUaGVyZSdzIGEgeS1mbGlwIGluc2lk
ZSB0aGUgaW1wbGVtZW50YXRpb24gb2YgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoKS4pCisg
ICAgLy8gVGhlIHJlY3QgaGFzIHRoZSByaWdodCBib3VuZHMsIGJ1dCB3ZSBuZWVkIHRvIHRyYW5z
Zm9ybSBmcm9tIENHJ3MgY29vcmRpbmF0ZSBzeXN0ZW0gdG8gV2ViS2l0J3MgYnkgcGVyZm9ybWlu
ZyBvdXIgb3duIHktZmxpcCBzbyBpbWFnZXMgYXJlIGRyYXduIHRoZSByaWdodC1zaWRlLXVwLgor
ICAgIC8vIFdlIGRvIHRoaXMgYXQgdGhlIGJvdW5kYXJ5IGJldHdlZW4gdGhlIHR3byBBUElzLCB3
aGljaCBpcyByaWdodCBoZXJlLgorICAgIG1fb3duZXIudHJhbnNsYXRlKDAsIHJlY3Quc2l6ZS5o
ZWlnaHQgKyAyICogcmVjdC5vcmlnaW4ueSk7CisgICAgbV9vd25lci5zY2FsZShGbG9hdFNpemUo
MSwgLTEpKTsKKworICAgIGF1dG8gaW1hZ2UgPSBCaXRtYXBJbWFnZTo6Y3JlYXRlKGNnSW1hZ2Up
OworICAgIG1fb3duZXIuYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChEcmF3SW1hZ2U6OmNyZWF0
ZShpbWFnZSwgcmVjdCwge3sgfSwgaW1hZ2UtPnNpemUoKX0sIHsgSW1hZ2VPcmllbnRhdGlvbjo6
T3JpZ2luVG9wTGVmdCB9KSk7CisKKyAgICAvLyBVbmRvIHRoZSBhYm92ZSB5LWZsaXAgdG8gcmVz
dG9yZSB0aGUgY29udGV4dC4KKyAgICBtX293bmVyLnNjYWxlKEZsb2F0U2l6ZSgxLCAtMSkpOwor
ICAgIG1fb3duZXIudHJhbnNsYXRlKDAsIC0ocmVjdC5zaXplLmhlaWdodCArIDIgKiByZWN0Lm9y
aWdpbi55KSk7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpkcmF3R2x5cGhzKGNvbnN0
IEZvbnQmIGZvbnQsIGNvbnN0IEdseXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgdW5zaWduZWQgZnJv
bSwgdW5zaWduZWQgbnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBzdGFydFBvaW50LCBGb250
U21vb3RoaW5nTW9kZSBzbW9vdGhpbmdNb2RlKQoreworICAgIHByZXBhcmVJbnRlcm5hbENvbnRl
eHQoZm9udCwgc21vb3RoaW5nTW9kZSk7CisgICAgRm9udENhc2NhZGU6OmRyYXdHbHlwaHMobV9p
bnRlcm5hbENvbnRleHQsIGZvbnQsIGdseXBoQnVmZmVyLCBmcm9tLCBudW1HbHlwaHMsIHN0YXJ0
UG9pbnQsIHNtb290aGluZ01vZGUpOworICAgIGNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KCk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIERpc3BsYXlMaXN0CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNS
ZWNvcmRlckhhcmZCdXp6LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yM2FjMzI0YjdiMDBhOWUxNmE1NmFkNjcw
Y2UwNGNmYTc3ZmM5ZmE4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVySGFy
ZkJ1enouY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGlzcGxheUxp
c3REcmF3R2x5cGhzUmVjb3JkZXIuaCIKKworI2luY2x1ZGUgIkRpc3BsYXlMaXN0SXRlbXMuaCIK
KyNpbmNsdWRlICJEaXNwbGF5TGlzdFJlY29yZGVyLmgiCisjaW5jbHVkZSAiRmxvYXRQb2ludC5o
IgorI2luY2x1ZGUgIkZvbnQuaCIKKyNpbmNsdWRlICJHbHlwaEJ1ZmZlci5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK25hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CisKK0RyYXdHbHlwaHNSZWNv
cmRlcjo6RHJhd0dseXBoc1JlY29yZGVyKFJlY29yZGVyJiBvd25lcikKKyAgICA6IG1fb3duZXIo
b3duZXIpCit7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpkcmF3R2x5cGhzKGNvbnN0
IEZvbnQmIGZvbnQsIGNvbnN0IEdseXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgdW5zaWduZWQgZnJv
bSwgdW5zaWduZWQgbnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBzdGFydFBvaW50LCBGb250
U21vb3RoaW5nTW9kZSBzbW9vdGhpbmdNb2RlKQoreworICAgIG1fb3duZXIuYXBwZW5kSXRlbUFu
ZFVwZGF0ZUV4dGVudChEcmF3R2x5cGhzOjpjcmVhdGUoZm9udCwgZ2x5cGhCdWZmZXIuZ2x5cGhz
KGZyb20pLCBnbHlwaEJ1ZmZlci5hZHZhbmNlcyhmcm9tKSwgbnVtR2x5cGhzLCBzdGFydFBvaW50
LCBzbW9vdGhpbmdNb2RlKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIERpc3BsYXlMaXN0CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVy
LmNwcAppbmRleCBmNjZjZjFlY2ZiMmYwOTgzYWI0YzdlYmFiZGQxMGE3Mzk4MTQ2MmRiLi5mMDk2
ZjBiZDcwODY4ZjExZmE4OGMwZjU1MDZkYjc0NWQ3MTBjODMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCkBAIC00Miw2ICs0Miw3IEBAIFJlY29yZGVyOjpSZWNv
cmRlcihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIERpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwg
Y29uc3QgR3JhCiAgICAgOiBHcmFwaGljc0NvbnRleHRJbXBsKGNvbnRleHQsIGluaXRpYWxDbGlw
LCBBZmZpbmVUcmFuc2Zvcm0oKSkKICAgICAsIG1fZGlzcGxheUxpc3QoZGlzcGxheUxpc3QpCiAg
ICAgLCBtX2RlbGVnYXRlKGRlbGVnYXRlKQorICAgICwgbV9kcmF3R2x5cGhzUmVjb3JkZXIoKnRo
aXMpCiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKERpc3BsYXlMaXN0cywgc3RyZWFtIDw8ICJcblJl
Y29yZGluZyB3aXRoIGNsaXAgIiA8PCBpbml0aWFsQ2xpcCk7CiAgICAgbV9zdGF0ZVN0YWNrLmFw
cGVuZCh7IHN0YXRlLCBpbml0aWFsQ1RNLCBpbml0aWFsQ2xpcCB9KTsKQEAgLTE1Nyw3ICsxNTgs
NyBAQCB2b2lkIFJlY29yZGVyOjpzZXRNaXRlckxpbWl0KGZsb2F0IG1pdGVyTGltaXQpCiAKIHZv
aWQgUmVjb3JkZXI6OmRyYXdHbHlwaHMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZm
ZXImIGdseXBoQnVmZmVyLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0
IEZsb2F0UG9pbnQmIHN0YXJ0UG9pbnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUp
CiB7Ci0gICAgYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChEcmF3R2x5cGhzOjpjcmVhdGUoZm9u
dCwgZ2x5cGhCdWZmZXIuZ2x5cGhzKGZyb20pLCBnbHlwaEJ1ZmZlci5hZHZhbmNlcyhmcm9tKSwg
bnVtR2x5cGhzLCBzdGFydFBvaW50LCBzbW9vdGhpbmdNb2RlKSk7CisgICAgbV9kcmF3R2x5cGhz
UmVjb3JkZXIuZHJhd0dseXBocyhmb250LCBnbHlwaEJ1ZmZlciwgZnJvbSwgbnVtR2x5cGhzLCBz
dGFydFBvaW50LCBzbW9vdGhpbmdNb2RlKTsKIH0KIAogSW1hZ2VEcmF3UmVzdWx0IFJlY29yZGVy
OjpkcmF3SW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBj
b25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIGltYWdl
UGFpbnRpbmdPcHRpb25zKQpAQCAtMjM3LDYgKzIzOCw5IEBAIHZvaWQgUmVjb3JkZXI6OnNjYWxl
KGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSkKIAogdm9pZCBSZWNvcmRlcjo6Y29uY2F0Q1RNKGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtKQogeworICAgIGlmICh0cmFuc2Zvcm0uaXNJZGVu
dGl0eSgpKQorICAgICAgICByZXR1cm47CisKICAgICBjdXJyZW50U3RhdGUoKS5jb25jYXRDVE0o
dHJhbnNmb3JtKTsKICAgICBhcHBlbmRJdGVtKENvbmNhdGVuYXRlQ1RNOjpjcmVhdGUodHJhbnNm
b3JtKSk7CiB9CkBAIC00MjIsNyArNDI2LDE3IEBAIHZvaWQgUmVjb3JkZXI6OmNsaXBUb0ltYWdl
QnVmZmVyKEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JikKIAogdm9pZCBSZWNvcmRlcjo6
Y2xpcFRvRHJhd2luZ0NvbW1hbmRzKGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIENvbG9y
U3BhY2UgY29sb3JTcGFjZSwgRnVuY3Rpb248dm9pZChHcmFwaGljc0NvbnRleHQmKT4mJiBkcmF3
aW5nRnVuY3Rpb24pCiB7Ci0gICAgYXV0byByZWNvcmRpbmdDb250ZXh0ID0gbWFrZVVuaXF1ZTxE
cmF3aW5nQ29udGV4dD4oZGVzdGluYXRpb24uc2l6ZSgpKTsKKyAgICAvLyBUaGUgaW5pdGlhbCBD
VE0gbWF0Y2hlcyBJbWFnZUJ1ZmZlcidzIGluaXRpYWwgQ1RNLgorICAgIEFmZmluZVRyYW5zZm9y
bSB0cmFuc2Zvcm0gPSBnZXRDVE0oR3JhcGhpY3NDb250ZXh0OjpEZWZpbml0ZWx5SW5jbHVkZURl
dmljZVNjYWxlKTsKKyAgICBGbG9hdFNpemUgc2NhbGVGYWN0b3IodHJhbnNmb3JtLnhTY2FsZSgp
LCB0cmFuc2Zvcm0ueVNjYWxlKCkpOworICAgIGF1dG8gc2NhbGVkU2l6ZSA9IGV4cGFuZGVkSW50
U2l6ZShkZXN0aW5hdGlvbi5zaXplKCkgKiBzY2FsZUZhY3Rvcik7CisKKyAgICBBZmZpbmVUcmFu
c2Zvcm0gaW5pdGlhbENUTTsKKyAgICBpbml0aWFsQ1RNLnNjYWxlKDEsIC0xKTsKKyAgICBpbml0
aWFsQ1RNLnRyYW5zbGF0ZSgwLCAtc2NhbGVkU2l6ZS5oZWlnaHQoKSk7CisgICAgaW5pdGlhbENU
TS5zY2FsZShzY2FsZWRTaXplIC8gZGVzdGluYXRpb24uc2l6ZSgpKTsKKworICAgIGF1dG8gcmVj
b3JkaW5nQ29udGV4dCA9IG1ha2VVbmlxdWU8RHJhd2luZ0NvbnRleHQ+KGRlc3RpbmF0aW9uLnNp
emUoKSwgaW5pdGlhbENUTSk7CiAgICAgZHJhd2luZ0Z1bmN0aW9uKHJlY29yZGluZ0NvbnRleHQt
PmNvbnRleHQoKSk7CiAgICAgYXBwZW5kSXRlbShDbGlwVG9EcmF3aW5nQ29tbWFuZHM6OmNyZWF0
ZShkZXN0aW5hdGlvbiwgY29sb3JTcGFjZSwgcmVjb3JkaW5nQ29udGV4dC0+dGFrZURpc3BsYXlM
aXN0KCkpKTsKIH0KQEAgLTQ1MSwxMyArNDY1LDYgQEAgdm9pZCBSZWNvcmRlcjo6YXBwZW5kSXRl
bUFuZFVwZGF0ZUV4dGVudChSZWY8RHJhd2luZ0l0ZW0+JiYgaXRlbSkKICAgICB1cGRhdGVJdGVt
RXh0ZW50KG5ld0l0ZW0pOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBJdGVtVHlwZT4KLUl0ZW1U
eXBlJiBSZWNvcmRlcjo6YXBwZW5kSXRlbShSZWY8SXRlbVR5cGU+JiYgaXRlbSkKLXsKLSAgICB3
aWxsQXBwZW5kSXRlbShpdGVtLmdldCgpKTsKLSAgICByZXR1cm4gZG93bmNhc3Q8SXRlbVR5cGU+
KG1fZGlzcGxheUxpc3QuYXBwZW5kKFdURk1vdmUoaXRlbSkpKTsKLX0KLQogdm9pZCBSZWNvcmRl
cjo6dXBkYXRlSXRlbUV4dGVudChEcmF3aW5nSXRlbSYgaXRlbSkgY29uc3QKIHsKICAgICBpZiAo
T3B0aW9uYWw8RmxvYXRSZWN0PiByZWN0ID0gaXRlbS5sb2NhbEJvdW5kcyhncmFwaGljc0NvbnRl
eHQoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaAppbmRleCA4NjhjZTJh
NzQzN2M3NDQ4Zjg2NWVlOTAyOTJlZTBiMTM4YzQ0NDNhLi4xMGU0YjIwMjUzMmI1MGYxYzgwMTUx
ODYyYjQyOTUwZGZmZmE5Mzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVy
LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRGlzcGxheUxp
c3QuaCIKKyNpbmNsdWRlICJEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIgogI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dEltcGwuaCIKICNpbmNsdWRlICJJbWFnZS5oIiAvLyBGb3IgSW1h
Z2U6OlRpbGVSdWxlLgogI2luY2x1ZGUgIlRleHRGbGFncy5oIgpAQCAtNzEsNiArNzIsNyBAQCBw
dWJsaWM6CiAgICAgfTsKIAogcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgRHJhd0dseXBoc1Jl
Y29yZGVyOwogICAgIGJvb2wgaGFzUGxhdGZvcm1Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dCogcGxhdGZvcm1Db250
ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQogCkBAIC0xNTAsNiArMTUy
LDcgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBJdGVtVHlwZT4KICAgICBJdGVt
VHlwZSYgYXBwZW5kSXRlbShSZWY8SXRlbVR5cGU+JiYpOwogICAgIHZvaWQgd2lsbEFwcGVuZEl0
ZW0oY29uc3QgSXRlbSYpOworICAgIHZvaWQgYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChSZWY8
RHJhd2luZ0l0ZW0+JiYpOwogCiAgICAgdm9pZCBhcHBlbmRTdGF0ZUNoYW5nZUl0ZW0oY29uc3Qg
R3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2UmLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVD
aGFuZ2VGbGFncyk7CiAKQEAgLTE5NCw4ICsxOTcsMTcgQEAgcHJpdmF0ZToKICAgICBEZWxlZ2F0
ZSogbV9kZWxlZ2F0ZTsKIAogICAgIFZlY3RvcjxDb250ZXh0U3RhdGUsIDMyPiBtX3N0YXRlU3Rh
Y2s7CisKKyAgICBEcmF3R2x5cGhzUmVjb3JkZXIgbV9kcmF3R2x5cGhzUmVjb3JkZXI7CiB9Owog
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBJdGVtVHlwZT4KK0l0ZW1UeXBlJiBSZWNvcmRlcjo6YXBwZW5k
SXRlbShSZWY8SXRlbVR5cGU+JiYgaXRlbSkKK3sKKyAgICB3aWxsQXBwZW5kSXRlbShpdGVtLmdl
dCgpKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8SXRlbVR5cGU+KG1fZGlzcGxheUxpc3QuYXBwZW5k
KFdURk1vdmUoaXRlbSkpKTsKK30KKwogfQogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3RleHQvY2FudmFzLUNPTFItZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4
dC9jYW52YXMtQ09MUi1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxY2IxODcwMGY3NjBjZTVh
MDYxNDBlYTU4Mzg0NmU2MDU5MjgzNDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3RleHQvY2FudmFzLUNPTFItZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDU0IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAgICBm
b250LWZhbWlseTogIldlYkZvbnQiOworICAgIHNyYzogdXJsKCJyZXNvdXJjZXMvQWhlbS1DT0xS
LnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsKK30KKworYm9keSB7CisgICAgcG9zaXRpb246IHJl
bGF0aXZlOworfQorCisjb25lIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgbGVmdDog
MTAwcHg7CisgICAgdG9wOiA0MHB4OworfQorCisjdHdvIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1
dGU7CisgICAgbGVmdDogMzAwcHg7CisgICAgdG9wOiA0MHB4OworICAgIGNvbG9yOiByZ2IoMjU1
LCAwLCAyNTUpOworfQorCisjdGhyZWUgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBs
ZWZ0OiAzMDBweDsKKyAgICB0b3A6IDQwcHg7CisgICAgY29sb3I6IHJnYigwLCAyNTUsIDI1NSk7
Cit9CisKKyNmb3VyIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgbGVmdDogNTAwcHg7
CisgICAgdG9wOiA0MHB4OworfQorCitkaXYgeworICAgIGZvbnQ6IDIwMHB4ICJXZWJGb250IjsK
KyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgbGVmdDogNDAwcHg7CisgICAgdG9wOiA0MHB4
OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0ib25lIj5CPC9kaXY+Cis8
ZGl2IGlkPSJ0d28iPkI8L2Rpdj4KKzxkaXYgaWQ9InRocmVlIj4mI3g3RUI1OzwvZGl2PgorPGRp
diBpZD0iZm91ciI+QjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC90ZXh0L2NhbnZhcy1DT0xSLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQv
Y2FudmFzLUNPTFIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YzIyMmRiNDIxNDQ0MjM4MjMzOTI1YjE4NjY4
MDRkMGI4NjRkMzE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2Nh
bnZhcy1DT0xSLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPHN0eWxlPgorQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6ICJXZWJGb250
IjsKKyAgICBzcmM6IHVybCgicmVzb3VyY2VzL0FoZW0tQ09MUi50dGYiKSBmb3JtYXQoInRydWV0
eXBlIik7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJjYW52YXMi
IHdpZHRoPSI3NTAiIGhlaWdodD0iMzUwIiBzdHlsZT0id2lkdGg6IDc1MHB4OyBoZWlnaHQ7IDM1
MHB4OyI+PC9jYW52YXM+Cis8c2NyaXB0PgorbGV0IGZvbnQgPSAiMjAwcHggJ1dlYkZvbnQnIjsK
K2RvY3VtZW50LmZvbnRzLmxvYWQoZm9udCkudGhlbihmdW5jdGlvbigpIHsKKyAgICBsZXQgY2Fu
dmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOworICAgIGxldCBjb250ZXh0
ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7CisgICAgY29udGV4dC5mb250ID0gZm9udDsKKyAg
ICBjb250ZXh0LmZpbGxUZXh0KCJCQUIiLCAxMDAsIDIwMCk7Cit9KTsKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3Jlc291cmNl
cy9BaGVtLUNPTFIudHRmIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3Jlc291cmNlcy9BaGVtLUNP
TFIudHRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmMyMjNhNTU0MzA2NTk5OTY4NTExODBlOThiMTU0NTRmN2M0YjJk
ODYKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDIxODI4CnpjbWVIUDMzd0Qkd213eldkdl9wIzVQ
P0NoZ2RIWDZZQEdua1VgUGxzNDxveXYmKFRpT1Mpa00xclZ8bm85Q1hCZQp6MFM2dVRRRHopbTl9
YkVTNmBmSDVmcEl8ezVMclQwI3o2LWUyRWxQNSljYTJAPX1KZiNwM25FYmtNfnZqdEV6a00KemE8
K1QheXtBc3lUb1E7Vmk1OFBZUTtJS35KV1V1d2xhUjk7Kk1RPEZNVXc/bVFqcT17U0s1V3N2dlQ1
OVU7bXMpCnpOQ3RkKU1PYHA5Pmg3NWIwbXEyIXpVcDgrTXJWK2wkZ3ZSUiQ8XlUyc35rZ3BNU3lR
NT5WSkRwQ3xKMmAlM0V1UQp6KGcmYkNQPWdHbyQ1c0clMkgtKDhicSZxXjlBWG1TVytMMHthSV8t
MGNFIyNtTTEhe3lpSjVpNT05dGlyQGVmMEYKemt8VipvKEF3Yn1gdkkxVGhPZFo0O3wmIyRUciFZ
bz5VdHN4ZD1nOTcxNkx9RWduWmx3QSt3S35GWEFxMDxxOWVJCnpCTCRFb1o1TmkzOWFZemZIdl8m
eWRrUHlVTjAxblM0Vm5ENm19cGZwJHJEdW93fktPJVdqZGVhPEJCOUpnK0xfSgp6Q01FZnBsWW0+
MjBUSj1WQ3tUemk2P2YoQG0yNVdYUn5RWXpOdXl+OVR9PTx1QmxIe2tFaj4hVnFtfWQrSngpKjEK
emxrXmxsUDUoaXc9byRKd0p4a0JnOGhXMW9saClEO15kaH1QPiohXkFoNWtUKXEqdilSZFl2fVZN
dFh4YihQcjkwCnpmMSk/KDlva0NvKHRHcjArRDY7eTFLTDMhKGt9RyQ5JWBZeilKaC1HJE1neTlx
cmNGbl5qRiRYcFY4bXcwRFZEIQp6ciRoNylJIXNeRTVqc2o9KExaNGctX1c7b2pOMGZwRE1HZHxV
MSUyVzZnUEAqaD9+V287eDJLd3hKT3pwSnUwbn4KejkrJWNoZjBQfXZTNUFfWDx5NSghKytSTFIm
WDktNWV0RVE5bEFlKTFCdHkoX1djMThQJD5eMlFGUWIzUFNzQ1lLCnpPdzcxRUJiMEc/QERATSRv
bj0lZW1BVDY8RXhXYUJgUDZ3Kz4hdWdZYGU0P3NpX1dlZEhnYGxnRkU7UCRIT3Q7VAp6QnAmRGZW
K3t7ZWIrX1dBeD9CQShiK144Zz8ldlhNX3I2SllKNVE+KyZzRShXPl8mSXJ3ZC0hME5xME5DKDQ4
b3wKeldnbTNjVGtaP3A0VWxEM2NjVl9LeVVQRVQ/dWQxI2U0PjE7ZTRgdnVUOXIyQ0dkZUByMTkt
M1VzZDdPMTlNRmc0CnpQfktIYFF5Km9VdlF2M1NgNVA9Wk4lPXQ4Z1ZFKGZpZ1dpVkExT1BPMmJC
JVYxODh8YWEoM2FsT0Y1YDRTOVU4Twp6RHNMIURrJHcoIXdrZnhPLWFjaWVhKzdqe2EtKThLTj07
d2lldCQ+ZF5iLUM0NyUoblRleFkyYXRPdGNobHh2aVEKeiU0fXQ5K1pTeXwrWVlwfnc2KFZGWHhy
MkZsZVRFdnl0V2E/LWZ2NTdKPEB1KF5+PTNWPnVhcWBUMz5FbSpaTlpICnorU1hPQURfYkFoYHw5
NE9UUnZgaXZ0QGhCd3dCY2BIP19SZ3ZaZHZmbVBjRHxabjxJNGNlQDV7Sl5ycmtTPmFqUgp6PlRn
Iyt3Ui07UUReQCtZPmZXYX1LYXV+JEBXJjZ8YGA1Y2FUZlRHWWlmYj5BaiFwaSVAUmQ0KFZSK1d4
X3RKbncKekYzZzk/QncrTVBORy16REkxaDhCZ3FlX1hRX0BvZ3I+Q1NaNSlaY0JBc2pqR2xqTEtx
aV5MKFViRVF6KXVodF99CnpOfCpLQD54O3NeUio5dHAlTVBydVY5ZntDb01eMkpibFI8ckBGRFBL
bCUzdjNVQ31xRz97QyZoZjRYYCo9KiR5Kwp6dnt1VlV2d1NxbU4zKG8xJVNXPyhHfE5YantkX2Js
PmU3VypWP35+PD0kalJSdzQkKDlCLSlDYHBMUzd+KHtEdT0Kem1QLTRAKiZIaU0oUEtzOFklTjtV
Wk9KQzM1TX0mamlGKVV6NEJXSjdsbGxeaFhoZTQ8WVY/Vk8jcWA5c0dxenZXCnpeU3E8dm1pRl5r
dTRraXsmRWU8ekp4XmpjZmdZYnlCVWhZQEtZWDlrX1ctRSUoRiFAe0tPcWZ5X30wWXs2Nj47Ygp6
VkE7VWAyT0hxPUVGOTdMUW4mIVh4NDJmfiFxaH5TeGJWa3Y4aDx+cSUkdENaRFcmU2FianFZTEc/
OFhmSVludDkKei05JmR8UHRofmpDQTA7KmZBKFFkJnZDJmteYzRtUklsQD9Cdk1AKWU2NV8mUTtX
cHR1VklfWGczOWt4bzMlaTg8CnohY2tFYWR4YF9aO2JLNTY3Tj59cGlnVSMjQGo3dnRfPmxPZHhL
YFhDejk7UyM0flhBTDR5aVp4SSpwVkBPQjE5Uwp6UWMjTFdTNGxUWWNTJFJ4Um9EciVTPXVnckF7
fjwyWTtJZWNaSl5DPmA/Mmsod3VAfCl3a3ZFYCtpdFBsVnwmIUwKeitWJShBbzM7O2FwVzQyKGxS
ZTRhLSMqbHlYRF9tcyopT3J6KmM8S0YrVjhNR1YxTH5IeSMwMGlSe0l8Tj1rfFgoCnpZPnBKaVMm
bmxZZ151eCNYXnpWclZhSnRAPm05I3pKblZTZEB1SzRtJERiVl5JU3g5JGJHbj47b0VncTY9WHVV
YQp6JlJOYjFYVXdfQ2Q5KDlaYDJFKVRkKj5fOEtSSV9lfEtkRkNSOXJxK0tpM2RmdUlxZikxK0kl
LSl2Z0JESExseFQKel9xIWYqdCNRNVBkZEljZl5fbEF7eDh6UUNwWG5hcUVed0UpckBEWFVwNjcw
TUZMQkBMezxacmxfWTNaZz8pVGxUCno/bDBXbWRZcW5BUHI0YDVHc1pLfkd0KlA8aUZ5YCNadH5w
aWBIa2xwJiYhQElvKTB8eEpwYj88X2o8ajN5QFMwdQp6LW0lYHYtWnxiWFpgYH1zZHo8JEA/QEk0
Oy1kRFlFZHZ8JkZkeW8xPVVyKmx2LSo4YGAraDRKN2l0a2UyVHdqeSMKekleUXppTCV0X3tZa2VE
aEBBPnhuNCowJUZhd1BSbWw5TlV6alpUXlhZcilEU3FeWXx3KmVwQShRPUNQRWd5Kz5LCnpabyhs
V2dfXkUqTlRlUEQ/LTFsYWk4NGZvbWMmKiRtcER2TStvYFlVKlY3SzxQdD88JTxRajJgcDd6cTlV
VGdKcQp6NTFRNiVjUk4ye19zLVBRMEArZzQ5VSFQRGt+NExMby1he0tZUE8hWHEwVHJ4WjZ7eDlz
aClOcWYwfn41VjQlIz4KeihfWlM7cDYpQHpRKX40NldZa30jciZCPWRFPE4xfmA0MiErIUdedHYh
bEJmTV4peiZud3AzMztDdSNUU1kzTDtGCnpjWH1FK04hejVTcF84PCZkS3gtTytwbmpnbGU5eTY4
YWYldW8ofEszUEtHWWopNSt1LWBuSH08cCZtb0c+Ki0jfAp6LSR5ZzNoQyhEJGtAfkRkc3RSKkpn
Y15gNE1AZCtQc3dvYiowY3BOI0VuP0omOGV5dVgzZ2xMenRkND8hQkE4OE4Kej48eHxKSntOV0Jr
cnppZipLNUY/djF7MEJQQG1+PVROJH1nNnstaS0zWiQhJVElZWd9P3oqUVhxaD1Gb2hDbjl7Cnom
VDEoSlR2MTQyYTJpKUpSR31ue1JHaUxqRlZTUVR0MT5wQkpPWXxCNiQ0WDk8KmIoR3Q4SSZjdU1S
KGheTlcjTgp6NH5SS3VVYzt6ZXVlYWJqR1NWXnBTVHteQEc7KFNuVExiYiZReDw7UXE4dWZlWHgp
KC1PUC0qVzM4KUBpYVNQVTgKejItc1BrSUM1QXMlKjlCXiZ3NktHdm5VJWx7ZGhMMmJ5KHRSbCFq
R31HUGchUVBnNkA4UlppK0A3OWlIMik7cUZfCnpCX0RWYWM0NCZadUJLNmJHSjllXngjeVY9PTlY
PE1oRyEtNiVJUWtuWENTOWlnLWNQbDIwVXAhJU5tV1NgNF55YAp6KXtvcCVZLXR5dXRRcX55eCg9
JiNHJl5OMDRGZjtoMGMoc2N0cUItd1JoWHNpJSEhUUorIzgwaWF2dzNSMVAxT2cKej0yOUMwam9e
dX5GKCNJeTk/dVlaUGV2fjFXa1pBZkdoMThgKnlwUiNhQm10bDMpfH0lYXZHeklicnNpcG8rWiNR
Cno9ZHs8Pz5NX0B2MjYrdDVMb0xtZzRKO2EwYWs+SV8hTTRoakwocDBmbT5WRD8+KXU+eW1hPHdj
azNuWFppRHc2dgp6bFNoTjUoK1pTbV9ScUw5SjJMb1dpPmlaZUd6dmtxVi1LU2wmbkMyRGk+Xl58
XjRKV2tfP2NyKCNfc3N4NXlEIUQKejttTEFwYGUoVSQleFR0P241aV5lUmdqeDBiZC18MDtRbkpD
bjcyZiYmYj8mbCUrTSFtcTRUYEtHWFFKZDgxWGFkCno5TzhaJjNCUVV7MG80dyliZktPYnB3amwt
MEAjYUl3fThnQz1ON2VORDVrPnArK3ZKbHQhfTlhTHBKM0MyVXtDYwp6JCk8Y3opb083JSpIbHRx
IWooOzxQfHMrVWdIYVhHVFhETGVMJishO1IwMTReWSRhNkVVWGx4WmNfeWRgdjw+WEoKejs1Jmhs
cCM7V1U4VjdvYm4jR1haZkxNPCNvazVTRzFQIWU7ITN+IWRiIXVET3A+MENIK303TW40NEpqVHUo
e3tfCno7RyFkNkVOX0FAbWRWVUBVSSN3Mko3SChvajl1ZDwoVnBTWDxxMztuUFA2ZWRzNTR+ZG8j
Nnk7NDRIWGoqc0tTfQp6SHFPTCo0bWVMKDlHMzw8Tlh+R2NpRlV4JCZzQDgtMTI2Z0wrWFF2aXEy
RlcpZEVtc0REY04+NElBTzZHb1VqIyEKel5HIUMjYUd9WTE3JmNwQks0Y0E7cXxATXAmR1A4VExt
ZmwmYEtWb0Q7IWxHVStRfjsqd3JTKUEwT3kjcjYjeUBjCnooWkUqIz5DRSY7cD4+SWdVYTJhKkY7
ezMlUEtVTG8+c2lre2l5Q3VPUzJKTjheSG0qWUNUKGByKSZeYzNIUSZmKwp6KzVQT3M5ISFSUTRi
JGZ7S01od3NuPTtfJF5eYml5bz1NOXcqWVpsJC1FMkJXI1M+SFVYfUROQjhtPWtyU2E/bjAKel5A
ZT5BUEhEYW08MkAwNyQyQyZKenVBUHA3YEFYU3sya2tPTVp3R2c8N2ImOHU+RXAlRWo2I1dhYTl4
QStPQTIqCnpHeCt6e2w7TFojbXNnOCpQdCE1YCVCTT1kNmt+eGBpTFFBdHswJlhkWDVXUDY5MWtr
SVdeKFZFVyNWfj5YVTNEYAp6PFVTMDs0ITgkVCNMUndEY2JJZCMhRiohaHBOTSR8dGRLcE41Yyle
KyUwP282R0hROTxQJjBKSHk0Sml2X0QkKmAKek9JSCQ9cUVHbTM9VHhjWXBDVlBtWFZaTUV0fCg2
alNJd3RQSCprdHsqPmBLIT9YN0Rxdi1qMH45fnh0Pl5aZHxSCnp0TChXfmJ4VVU9WT0/RTtKKU5S
Y2wheGBsLWxGRjFiKyQpaW9NfUZ4RzB3V1AmdkV+UENYZGdxZFROc0R4JD9VJAp6ZHlESy1ZajRq
ZCgkUUFQQTdiWHtEM0xMOSVtcyhzZjcpQTFWb3Z2Qzx2UkpPP29QSUBIUH02IWxKN31wMCg4ZnQK
emRtYzFncD15elJjJUVyd1QpZjVeQmMpaT9GYU1fPmB4S2gqc21hRTNnbDRAcCY7ITJ7RjJJd21M
Jkwqd0hrYH16CnoybHUxKT9zP0pgWlNEeHVpVzdqWmxZe0dqaWB1RXtVP3liWGsqdmpXJSheaDxw
TSk7Pm94QzJCdnJUPylKelR4VQp6cXo4Vko4MyN8VHZtWEFabHJxdE89NkZnSVI+dm16T0hKdEkz
T3UhX055aj84JUZveTk3JldxQj9iR3FnIVZJTUsKektTeCRMXjF2JHdtdElJeVhieiVUV2kpfDJH
aXBMfFFCOX4kdThLdyk8bm1CQjhtVyVVNE48dVAxK204UmFCWVFMCno4TGJQfU1sJDZ8NXFXTjdl
UW10NXd4WGRuOGJQKDFVO3wzIU5WR3cmNF4+Mn5CZWVAVXdVVlB2a3grZlNyWnklPQp6c35CbEtC
djtqakwtQkp9M1JUZj9JTkRTanNne2ZETCYxakhgNjBQRFQzNSUmRkFtajU8O3FZK0k5UUtAWGhh
VWkKelYmVTNRZTYoRUMmPTREKWxAJChfJDFeTVJXKSloaSV4SGFlN0krUnQ7LVByZjAtelkjNmE/
MCs+YFpARlY+fk15CnpzdCQlTHFMbT8qZDBNRXQ1IWgjZUtnT1MobmVTSjEhRFolNWhJTmB2Ty0t
M2l4Zk0pQyYjNFR9TX4rSWpjPjQ0Iwp6UiUxTFhoISRESjdmeldvc2NlR0JNMmVIYHVAKW5+cSh2
WmpxX1VyOyNnTiNhV25WR3oqM1lCMWA8Tmp8SHpyfEIKelRrJU9OSzU0Y21EP1p1VFhFRVk8Uigj
VG1QZz9Pd0Q/VncoQyQtcVI3TFQ7emxaa0koUih3KjZFXzQrPT49PDlQCno7KiVYP2lCXjJsaWNn
eTNQZ1o9Z3ZscUBZTSVVNGA2WFMraldac0hUbyoxJDJUN3k9NlFkYDQrKmw0SH5wWD9aVwp6ezZD
Nk1CSTJ3P0V+ZzxmUjt9KU47Y3ZTfXU2Q2p6d25IamNWZHJsYmU/bDV8RFQrOX5Qe05LKEoyYE4r
bUo2cFMKemRpbXJ3Pj8hUHReUzRyezd4aE4jSzlxKE45USNyfj5RNnRTMGR5dnZNUTNCNE49Tml9
QWtJITRqTUU4K0JKd18qCnpNai1abkYxfTc+QkEmYFNHamh9fjxOUVVQY2NGfkpIez55Tjl7cmVw
TFN5TkNAWEJ2bENGKGNKM0R9YzdpR0U3fAp6TXc3QTJ0NHhpPlBOaXZ4KlVtc2hlLT5SdHZre3hV
bUBjN3pyJVVOKWJReFdhKmxqcj8hMGQ1Vks/NUErcE5sVUEKelZNS0hKeUcwQjtwbV50MzE5VVNW
KGMpKDhkfEUoUFZiQWotb1RkMTQ5TXlPWXtlckhlQzNIUkFoPChzRSg9QnV4CnotQStxczhUfUh3
cUpLcFgobkk+V2ZxZCNCcFNFYjZ3V3l1Ml8jJD5xenV3X0Eja2M1ZntZMXQwSkRqTXZ2KHVUMQp6
ZTIoSmhgYm1saEpEO1R9KmFXK0puJlY0Mj1rWVE2SFFpNkVha0Fyal4/YnEmYlM9KHR5YURHdlpk
QXs4VHR+T2sKekojLSk0aSZHKSpxekM4QFQyNk9pZkI2ZUkoLUNKcjNKd3dscntFSVlmKFFHJGVM
fEFaTCtCfGEzbkBZYHB8X0FLCnpeYnlqOEdxQiZncFVffFVrdVgzd1EjZWFGVGFibHhBd3c3XzQ4
bEl9QTtNNSRuNX1IKTxqRjNhLTVJT04kOztJZgp6e3laYSpGSFcyeG01aVY0WT5kPkZqeFIwY1hP
Nz5XcWQjLT9YUCpBZCpQajlYSVpBJlA+Q2JXZSU9UD5JP3FGNEkKelo2R0BrJGE4V2sqUHFRTGRF
QDxsP085bD8henphU0sjQUhpWn5RMmdRaHMpekxAIXI0MElaa2l0TkhvNGNgODBvCnpEJlRyKHVS
YVU+VEQ/R1Z1OEpwNmtXPEx6cXEwbFhgdVBSZnMpWVhCQkRIPj9DYGFXU3Vxcyk+XztMQzRVKlJo
ZQpBQCZFdDsKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvY2FudmFzL2NhbnZhcy10ZXh0LXNiaXgtZXhwZWN0ZWQuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL2NhbnZhcy10ZXh0LXNiaXgtZXhwZWN0ZWQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41YjRiMjE0ZDU4N2Y3NGU3NzcwZjlhNzNhZjliNGM2ZWE2MWE0NDY5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYW52YXMvY2FudmFzLXRleHQt
c2JpeC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNDMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzdHlsZT4KK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiAiV2Vi
Rm9udCI7CisgICAgc3JjOiB1cmwoInJlc291cmNlcy9BaGVtLXNiaXgudHRmIikgZm9ybWF0KCJ0
cnVldHlwZSIpOworfQorCitib2R5IHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cit9CisKK2lt
ZyB7CisgICAgaW1hZ2Utb3JpZW50YXRpb246IG5vbmU7Cit9CisKKyNvbmUgeworICAgIHBvc2l0
aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiAyMDBweDsKKyAgICB0b3A6IDQwcHg7Cit9CisKKyN0
d28geworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiA2MDBweDsKKyAgICB0b3A6
IDQ4cHg7Cit9CisKK2RpdiB7CisgICAgZm9udDogMjAwcHggIldlYkZvbnQiOworICAgIHBvc2l0
aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiA0MDBweDsKKyAgICB0b3A6IDQwcHg7Cit9Cis8L3N0
eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8aW1nIGlkPSJvbmUiIHNyYz0icmVzb3VyY2VzL2ltYWdl
MS5qcGciPgorPGRpdj4mI3g3RUI1OzwvZGl2PgorPGltZyBpZD0idHdvIiBzcmM9InJlc291cmNl
cy9pbWFnZTIuanBnIj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvY2FudmFzL2NhbnZhcy10ZXh0LXNiaXguaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvY2FudmFzL2NhbnZhcy10ZXh0LXNiaXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTg2ZDE0
NGM3YTBiMDc0ZmVlNTlhMDZhOTg0YWI5Y2VjOTU2YjNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9jYW52YXMvY2FudmFzLXRleHQtc2JpeC5odG1sCkBAIC0wLDAg
KzEsMjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK0Bmb250
LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiAiV2ViRm9udCI7CisgICAgc3JjOiB1cmwoInJlc291
cmNlcy9BaGVtLXNiaXgudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOworfQorPC9zdHlsZT4KKzwv
aGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iNzc1IiBoZWlnaHQ9IjU1
MCIgc3R5bGU9IndpZHRoOiA3NzVweDsgaGVpZ2h0OyA1NTBweDsiPjwvY2FudmFzPgorPHNjcmlw
dD4KK2xldCBmb250ID0gIjIwMHB4ICdXZWJGb250JyI7Citkb2N1bWVudC5mb250cy5sb2FkKGZv
bnQpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgbGV0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjYW52YXMiKTsKKyAgICBsZXQgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCIy
ZCIpOworICAgIGNvbnRleHQuZm9udCA9IGZvbnQ7CisgICAgY29udGV4dC5maWxsVGV4dCgiQVx1
N0VCNUIiLCAyMDAsIDIwMCk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYW52YXMvcmVzb3VyY2VzL0FoZW0tc2Jp
eC50dGYgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9yZXNvdXJjZXMvQWhlbS1zYml4
LnR0ZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40M2I2NjJlOTc5Mjk3ZjJiZmY3MzZjOTlhMzBjMDg4ODFkYjM4Yjk0
CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAzOTk3Mgp6Y21lSWIyfFNmdSpEJGAlSVhHcjFpWll4
fkRsKlN3JGthZHhDNmFqX2syeW57Rz8rel5QKUhJPSMlUnUxczEldSUKekRSWDktJlZPSSRRMTFK
PUA4XkJxPWx7T24/fHJ8fDwjKE5IP1ktQXRkIyR5bmIqKmRmNFdJeDN3QlFXRGZQTEN9CnpmK0Jl
OXhnWiR4NCZKOU1vWGxMTTxNYy1YSz1BYFdQSFNVXmNMaUdqNiN4YGNGbnhvS3FwdmxrP0tlZGop
Jk85dQp6aHBtO0ZXJFRnSjBzd0dqRmtRa0hNcXNKUUJ3PV84aEl3cUFKYllMdyZ+eU43WDkwbGhu
NF5uQFN6YldhMm1tYD0KejBZRDJsbmZiVilTUH1aWERHKHAkWjAyTkR5dHslR2hGPGAlYDtNeSUt
b3hWZDMycCMlRUNJai07bXolUV9fKXJ0CnowJnVoazBDZmRgIThEPkcwWGR7cWhRMHpSTTNBMVNh
dip9anoqcztBQmEhUDIwSiQzZzRzdVBwM2BKRk5VPzBGTwp6NkVIWGVsbnNMZVJmRytUU081cXgy
OEpMdkxgKmROZ19IbWp7NiNkITFqeHdkcG5oYXYwMUlUbVA3bnhFei1eRVUKeihtKj02M29eaHhr
T31VQ0Vic3RpZ0IqfHg5KWReVUZ+fG82cGIhKitWbyhCfWZLcEhmb2BQcktJZH1uSGY+Kz0qCnpD
PGhndzU+JGF8UHlebj0rTmNOYiEzWGRXZDsqX0FCV01DJktyPzZzWkotQD1mS0pjX3pKaE97OH14
dSkmPEZhIwp6Y1E2Mmt6JVVwQVc4ZW9FMk5QZnRPbzNASTE3XlYtX3pDOTBCM0peO2ZQZk40Pjdq
ZzMoZFlfdkNBdTJqZl5KMigKenExIVJuRnpKe0tPZVVyYl44IWJLcXJ1VlBIc0Z8V3RobFc+NGpk
UDVDciRfX2dXSkVJWXhfPHZHIzNSSTB+YUlMCnpNbE0jYXR5fjtqZHxWbl9yP3stUkNVKD5hMFVA
ancoODZkQFhfO3QrWUYqUUQmfmVnSkdINWJySFJRQ31XeHZOIQp6JSsoPlZBbkw7cF5mR30hZlYj
d2lUfTBqOGBLUCtlYHd3O1o9MTtuLVVDfntgOHJgLTBRezQ+YGJ2T0RxeD9BfEEKekpLWig5YHw9
bU1MKnVBJHZgfX1PYTRiLUZZJmFaSWNoZGg8Y2I1TXQtMnBeKmdsQHQmIWNXMiFwXkxDWTd5dyVj
Cno/SihSKT1wemdoMjRTY2ZQIUsqNCs1amAqR29naTBQWil3Tm15WGF4WGIxR0w9aEcybWRrOXwl
VWtKQWQ8JUMzLQp6XkNyWT1oMGoqUERCJjhSam5HVn1CdCR8dUFMNHVfVCFyUUo1SGJqdDJfYnxf
RTU4cWpAV28laF4jbGFJdT0wQmsKelFvS01vTT50UC0xNTNDfjJxeVJ3anU4fT5Nd1hfUmhMPHsp
eHxZNXl3SiN8d3hoeSM+P09BTUNWKE9hZW4mX0pCCnpCeV8jJXkzcUJzdEV7V0V0R0Z3LUUyQXJe
XkpRbXQkRzQ3bTlnUThJSk11YSVjaHEqJmJVZj13QDNfKHQoIVM4agp6Xk0zZ1EqPDtqV3ZiXzFj
MllGdDNabj9LfDxGbCpwaXtJYSFJVDdDPEgqbD5iXjNLXilFe1lxKlAmMzNIMz4pNzEKel4+MWth
MTFSQjt4JmZlSUA1TWtVMDFrfX5hSUQwQGtyMFM3WmZEJUZvcEV+cmRVUG9RSE1MQk8hN1grTHBt
IW9WCnpDckR3dzZZJjU8K0smMFkkTzAydCk+R0RYdS0qPlZgQDtIb3VzJFpQJmtOdng9LWRiYDFe
RTZXeXElZGlaJiQlcgp6cFl7M3RmM0ZUO1cmV2NqKjdkKHZvXntKfHkqSUE2LXUzczBfNGtQTl9s
V2lQaTFxaH5fNGtQWHNxWWMlez1kSmwKenl3YG84PndlJk1VLTxnPmZkMzE9aUomNGUtX2dlcVVs
SFNxdUx5bU48U3FLIWxxIU4wT2hkak9mbFo9fSsqTVVvCnpMXkI/fiY7NU4wXmdvPmU5eUEwQlF3
RihkSyF5Ml5lOTN6M1Z0TzJUekc9X21gU21fYl5qamdaQFBhPDhtR0FzUwp6ZTMlUXl0aTRkMVZJ
MklQaDRARi0/e3l1bHd9Smx+KzVwbUBRRSgqXkFgOXY7NDl2cWoxS3c1ZXd1Q3Bsa2hJbjcKenpn
WHJmTkRuRUFZMnxNXzVDRjEzMUx5O0QtfiMtP1dlXjl+NEx5Vl9mb2s5aXBCfWh3WEJrQzxWbk9Y
ZGlKJWx3CnpoZnYyKykranZjM0BRd2pmWFgyTDwpZERyPlFKcXlAMkZgczhxSSlhTCs/Z1FwakZV
RSY/YWJtdl5WLVpJdHJiSAp6Jk8jVFglaDRhdm8jPGlvUFllWlM2SXtgPjdiQW1GI35qNiZWVnA2
aUZfJHAwbV4rd1V4WmJCNCh9P05Ee0o8PWQKelFJVHlYPDBjYSNsUDVic1c9TGo5PTArQXNjOXJZ
flN2cHhCKj5rZFlXWCl1S1dSdjg4b1FgfWVJV01ed3hlfmIrCnpgM1o3Y2EhPk5KPFBxZUY8ZUI3
ITxnZHghbGVkIShsRnczKlE3fT8pUTFEU21RSyhZclFrWVVXUXV0Q19xPT16Tgp6cH4kOXFMUXpU
YWlRKzU4RDgmTW42M2RMYCFVfCZMdSRvdXt0T2VFOzgtVHE2fEVePXh1I2QzTXV5MyhudSlXdmAK
ekVQO31pbDloNU5yNn1iLSVFT2RLbHMxJGVsKTtxWWxzNzV3UTVJMFhxTzdORXFhMmB8cH42c1lw
a2stbUxuVFNJCnpwR3RAN0IkV2V8NTdoOyNYc1RxWTJVSTBnNjt1c1dUfnM0Zl5WQz5zQ2hHMGYw
QFNrOThyMXNLPUZ+M0t7P3dQTAp6PEVUQHFBNXVUMXVBeSRDP3g3eTFVWiRhO1ZXSFZVQlNORHti
Qk58UmpXckZQPF90fDNPIykyQE8rTCpfbm1VP1IKem4oczh6dn1qcmVTfmw5PGZCUHB2dDNyRSgp
YFpyYyl8PlZgWjRfLTFaNUN9WVo4X35uK0RfVkcrTWplM2JlcmdLCnpiYklNIVV+N1JoNktYU1ly
M0tPfnwxP2hfUUdmP2tOUE5OeylRP3BOVnA5R0pwI2VQI3UyTGdqN3tHPDVTYkBtXgp6QzNARWlP
YiVHa0xNdCFAak1yRiFzVztmN2tGM0JuZk07WHozUVB9bEhANXhhWEtzX2czWEIzfE92Rl9sNUR5
S28Kek9uWC0xRkBUWHRjbSpiZElMYSQ5SWlPYHlUWSlLSHl6VUIyNExnZCMzUVBrd3sofFlqWllK
QjZfemUoMFk2V0o1CnpXeVArKjgpMUFSdj9FWXRhNGpMfjJVRSVsNDBXPE9hc2BHdSo/ZU9LaEMx
MU5jTGp6eio8N14oTCFFNFh6WEMmQAp6WjJyQ2lMIUU1P3U+d1AjQEZJMiZRV24kK3VtMXxYMFp7
VlJ0LXk/Y3Awe3hZLVUjRCt6KUBmZXROOyF1NXVaKkYKenZXOD1UR3deX3JJWlNhUmhITDtIaENM
dlJ7RX45RzAjQXRIMjwoNmJqSjFTbVBRVk8/b1opREsxRGYhTzFOSVFkCno5bWU1ZEkpZGlgZS1Z
ez1ZUEp2YERGP31tZ1J3NWVrVUsyWjA+VTtoI3QhJXF4JT5PRmExaGZRVnBfcCtAUV5iKgp6OzBr
SEVLcSohXiNTPHg1IXhUcGQ7UXt9ejZxMmx0TD5hd2R4LSU+ajJVSCo+RDxXcmh6PkFueTE9NGVa
ZjIqN3UKeiFCfT9+TE80ZndiJWZhTkQ+KUR4OUU0cnJBRUZ6aUw+VS1rM3VXX3dhV1gmPHt2a1Fj
VlR1NkV7bTBTfSQkeXQ2CnowN0xHT0Q8bFZeS1B5TmJrcH5aQjVYflQ1PzFsMHBkUGpIXzFqM019
NVBXKFBhUyh9WlY1JWNncVhAVUZee2gpdwp6QGcjRU00aCYhaihJMlVIYTZ+SE5razBSUnY2fURp
Rmp2JDZTJGpoR0x+MCk0MUt9MkZUZHdlRjNGRkx4Rlo/fFUKelY9UmViSEhkMnFjX1AmO3FFVG1K
ezklWWtzejs9emtkfTVCcnVvNDdNcykyKyMzOGopcT9JfkNgYmF4S0c9e1ZeCnpaJUVPTzcpR1Qx
R2JjRVJqbnV8IVRTZSohRGVFQHtxe2F7fk5qPDw1QGBPLUJDP1JzViE+MUxqSnNnWmg7KUowRgp6
ay14UHEmSjByYkIxKGhRPHw/TXRGVDdQYlM5PSt2RUJzMiRCTkM3KGl+UGJUO1VRZDtHPkcmOzJa
JSojJWQxcEsKelQ7WUttWSFec2RNTX0xVVN+RylgSiluJDs/JEBUU21DfVpvP2gwaV9XSXsjPEx7
NmtQa2FUSlJRJUxPfXArI3koCnp0OSY5WSRfZVUqUkR2MUloZ2NYc0BhWVk2QXVaYUxORTdMc2p6
c3poJDBRbTVqdnU2bEFYOyZTUGVlfFZ7dD55Ngp6SzFYVXp6ZWckKEVvJiRAUW88amxNN1RpZTU4
KG1mP0tqcStZaVUoeXROS0s9QGFKJkA4MzdRanVsOUktenoyfGUKeis2KE99MWQ8QE8wfT9FPzUt
UzFKZSNKX3tfQ21zeTFnZ0pjbTN+b0IwYUN3V1JiVzNSO2l8Mm5BUGh0eTRXelhwCnpyM2VGWVNT
a3ElZmtvRyhOVW90SjQ1VDY2WUF6QWp0MFkhKEErWTJoUWwhXn1fQ3AlMHZoNEBeZjJEeypkU1l1
cgp6TzBldXo+WXxZRS14UUoxWjtHTm84SjcxT1F3MilDOGJiN2xOVmklWjY4Yz5SRGZLcnVOVUdB
R0B+WnFIP3tFRGcKemREcXF3NT9aU2JCKXFvZmdkaTd4PE9gQWFIKCFXTVlxPUt0MUUwY3dxSzxe
dVFZVWZxSjNrV3NiTmNUVmdLI1BnCnp8NWkmIUxUaDxQIW9QViNMVGg8TCFmVytfUCpZeVJ5OW5n
YGNaKSsoQ0heMmU1KkF4aXcjMXJ4TXpHY1h6PjdHbgp6K3V4LWxJdXUmZDYydUBVdDBOYFNjMWh2
aUV0VkFpLUJ5c1dfP2s5e2dyKE5COXdmWkI2XmNWeUNEdXFzM2pjMWkKek5iZUFYSUlFZiRodUho
cUBKOTsmKXtaeiM2SkZFdkJ3JCElamtZOHBGOV5qfGRYaUFPd2RHNjAtMjJ5KnIkJl4xCnpiKnZ6
VE1FKT8+e1BuMX1iYClKNXF5QjBuI0taQiozNjR5cChVbWtlQWhSUk1IZEBYM19vRXdQIUVta0l5
SD5fQwp6QStWY2gqPVJ4OSRvei1jYT56KCg0IyEkI3J1d19sUkYrN2BsfUx8NzMoKmRWKXskUlNr
VTBnSlp4OTs8Zms/SXcKekxpWm8ofDhiNWEoWFU9WlVqPz4+ZUA2ZTBgVHdlZndIelN5NXQqR34r
Y3ppOXJFNnpnSlcmJip4dCR+KEdKXm02CnpucCg5cjVpOEZRJlUrKnNCZXdGdFREfV9XMyY8Py0q
RjNEKzh6ZW9pd01gSD9SYmVUfW9RYyUjVEE3ZT4yXmtzeAp6SVpkUHY5YnIyX1lWYVFeQlgtaT9R
NU85aCVLdXBSfDQ4e0xZPXd4MFYrSEduV1I+bE9ASU5hfT5+QmgyKWVXTCsKemtgOyo5Q2hreXt6
bWlBfCkoUF5xXlJKZEZ7eDZvZ1lPfDRTdEdfQik0fDMpNkZQQUl2RlA0a2daYXlwUj9YUl9yCnpT
WUxsJWhwVDw9JipRX053VGY4bylfK0AkMjVkV3MmaX1wfnJHSFQjTTFQMzJOVjR8KysjWGxeOE9i
Skc/UHFgMgp6SzkmRTJHTGlvSVMyZCtjdnxOI1FUZnx5S1ktLVptXkZOa0RuaiF4eU12Z3k5dl5z
THdMa15NcEJmWWkhOUBCOzMKeiU9T1FFXzIwPyUqQmJvJGFgeWs1PCl9bTVBLSZySFlTQENQTVp8
X2pNajlOdmt2VlIpcj5HRzFpfHBuQFl6bVU/CnpOczxqMkJTQHsrN1V9X2NDLWozKXE7LSghQWE2
RUVFSFp1fF4rPGE2e0hIVVR7aGw+NWpzJiFJTUJ4NDNSb2NJPAp6MUFRbjEodndNa29WQmBHOWU7
bDcwKG1FUWhtcz8wXjU1MSZWOEkkYUFhNjN0JntGJWU5eyZIOUJtbkRndHZ8JloKeiZXXyZEVWg7
O3VZeXFEbnVnTT5Ba1hoYnExIW9tUTVWbSRiXyRMVFFBWDVEIW8peUlOZlhvPDNzeH4rUmp6ZSNq
Cno3RWxNJk17VFdlTzE0JWBJQk9TWTUxaEdgcWw+Yyo5X1FoTGdGQjlLdUFiKE9iezA1RzdiaTEy
WDkxazFHdFM9QQp6LTQxVlFYVz9Qejt0YkpqJXsqVyMmZV9FUz1XYj07ViZpUCpfb3JNcTdqSWBQ
Y2Y3NWdFNiY5bEEmUiVjUz0le1UKejtyV1JyU2kza254X0h8Oyt1JjUodDt7Xl55c1U2NEU+MkRl
YVUmfnQ3bzRTKWdgPTR9T21LMD1uWXA/OytGOVhjCnphSkMqRXR9PXB4aiVNYX4wZ0lKdjdObEdQ
Rjc3c2hrWV83cnljSiYxNTBjcEhaM2R8ZDNKVkFjZGcyOGd0ISZJMwp6RW5GPEU1U2V3WVkmOz0j
MUlRbWpVc3ltfmheUHhCWkVZa0hVTWJWdCtncmR9KUItN0hDQzFYcTMmcyUzUm5nTkUKek1BVjJF
Rz1uKD1Sa1YqQipWSXl7VVEta1R7Xz9lfmBqPCFeMiZBVlhie2ZmdGd4SXIpdEAhKGBBTCtHIT89
d1dhCno4PUEwQnVscHowe2daM2spNEc1MSZvO31kQTgqfTF4JGQ3X19mTXwtQylmUnhCO1B2OEFH
eitJe1FXSSMtOUpoNAp6RjhyMUVAUT9uKmJecWlhZVRuUC0kI3d0YVRMMDYhZkFZXihJNUp9VndS
aTB3e2V+cFp7Sk1ZZ0EzZkg4dC0qRXcKekJ4dyUrdWwwdG1gelFiQ2Q7Q0EtcE0pTX5sSUt6dmRk
NiZzWWhJOVZ5UXtJdEkhTk0wSTFOfCt7PjZwYjN8QT9sCno7UiVIcGN0OWFKcG4mSVJRTm1MWVhe
Xyp8O0Y+fVBjKlloWiphJFlrK3t8RHpKYntxfnUhNX4lOCg7KE1mQ0YmQwp6YWNWcEN7JkU4enVt
aGV6JE99RjF5VEttbGQqX0U9cnYjdXM2PExgZkxpe3EwZHtJWU1wLTk3VCRnKTVWJE84cVMKejI9
K2w8aystYjwjQll9QmE4MHIlSH48Y1VMdldSczdTUnswMTlZTGtfOSpufDh2c0xhNEVrbmB6ekpY
c091JEtDCnozUWpAYXR2VTFuQk5tcjYpQnhoO3d9KVF9OUhCUUNgRUtDflMzbl52emRXRkJ5cjgk
KDJkO2ViMUU9QWQ9S3kkSwp6Vmh9dXpGJkxaIT1mTVNWNW5PYG5wcyM/ZEFQal9xTkR1e0w7SHYy
QjsxKTwpSVU1aTtTckl1PWFySGIhKGtZNWgKejtIdjRAZT5nRio3U3llcm4lTUElUXhqWU1iWiNQ
WVJeczV3WF5FcU1KfShoUGg5VzFQKmpOaEJhPVp0VSFBKzB7CnpQajdyZkpjRjx0b1B9cEtoUVBC
T0R+TSt8bVZyPWsxMDtaV2M9QlUzTkNYayE4aTxBSyVTKyg3anFxR1k2YV8kfAp6dXFhOXQ2XmFf
Sj4hd0F+cTNCVHpzMH1EYSlKRGBNNmNkVVd3SGRWcXVKPmp8WkFFUUV2N3kqZTk0Smx7NHooU3sK
emgybG8+ejspbXxRTXs7S1dMby0lNHBHOWhIKGhOLSM2KHZCQStjM0o5SWJIX3Z0UldQKjM7UWVP
O3Q/fGQ1UT1MCnppTDUrRFNEcz1rUHd8emYjTDgyODwqQnN0UjdSZW5MUEExUlg0WkNnNjJjTV5W
cHMkYzYlc35MIzhpY1pOS1l4MQp6bGB4VGx4V3M7OVBCQiQhVm9Cbns2OGwldWk1JFQyTzFkflBV
UitkK05EcjFJaVF2S2YjSFhZWDJ+Uj5ybHRAUUgKelFiWTwjbWxvYm4jMjEkb0NRMndJc3prKD5Q
IWJfPjQjUHlyQnZxQmdWZG87UTNyNH1OTSs7WnIhPEVmc3J+WVQlCnpWc2BOU1FqenQwVD9neEo7
RDM3PzBLbmVXMV93X3s/RSlKUHNBPEJ6NFJIQTNONUs9NjMxMmJxUmVrS04wWFRkWgp6JmQmaE9e
Myo1PnFJQ2ZHRFMoVHA0TVo1KGtyOWQ3Mig1dllrcWZtSUluJFVwaDgzZj57ZW9ZaGNDRncqYHZO
NlEKeiUhfTtvczZ2U2xWWl8jYDMkWV59ZFc/KkgtIUFQfmcpdiQlMz1YP154VlhER25nT3QxUzZn
JWNGYFM1cTFlX3tfCnpnc3JXdXJRajFuOys5Zm8pQERLJExMeWN8QWAmblVBX3V8PT1fdyowQV49
U2JBekAofEEhISpBYWghO2RqSHRBWAp6NyN6eFkmbkIjTGlZX35RPmxnZ3k2NCE2OEZZJUlLNmd3
MGRJWUFpPyVSKFh8TFhwVU1xUjM3dWZQTlFBXzZ6UWMKekxYbUt3djRvMDN8RHJoK2pSSjdMMipN
WTdHNVN8TGhBYk1oOGpxb2tDaT98NU1aPTl0Qnp6MjhHe3JCTkNtUT5rCnp3YGpeMG09Uzx6c3Vn
JHhnc0Zld15HOURLQCZuN3BoXjRJWkZEeFhLZj9DMGM5SG8kc29yVnkmayVDeHdMX1Jedgp6OXAr
emo2eiooVSFHfV8obElTMUBSKWJXTXlzIWxVa2hYP3E4aFFtRWlBVV40NT4xZVgqcEVhUXFuMVgj
NjJCQVQKelBeYGdPQlYqZENqMGx9bzg0O0x6NEw8RX03JCg2PmoyVTJ2ZHowdjRmYyZwJnxGN2E4
P3lCc18mUlFKMk87P0BfCnpAVk83KCRjMmN5OG92QG9qWUdndk5sISZuNjlQRFJCa2hIVjJfTnVE
NHNXRXJwb3pfelJSMiZYNy1YKnhHMlJmdAp6QmsyWi16WHhzUlJYeDJ4bEhqIWktYm1SanEkbEd3
XyhiKnVgak50YF87ZTNlO143MEhlRVhIIVpSSCFnR2hWPlYKeigjNzBMMERrMmNeZjdaS2UkNUFS
aWF4R3A3N2tYKHZJUUdFWEwrdSUoJnQ8X0o0PDtrTC1FNXhoaDBeeVowJDdzCnorXnpLZHcyb1Ql
SWFvK3JhdyNnezxhfWcmb0xycihKamAlRFBMOXJhODZTQnJCNUBmQUJoaTlmSTNrTE5nRk0lPAp6
ISQ7dEgxYX5XKHhQWHt8NUVzbnRaZlB4fXlJKlozRkFUfFp7YjZZVWFVcD1QdzZ3SUtrY2dtJiRY
PHhDN3dfeHIKelZka15mOFBCfitWWlJtTCFyamk1eFUyIThYbEN4Pj1eQFZyT0QzYDg8b2IqM1Um
XzlVPXhQZ3g4Tjk4Xy09UDBXCnpDTXMrLWxjbUtrOzt4P1Zqem8/dkVkO0ZgdCg+Zm8jUzZqJCFp
V3g+VHhFIUJHRjtxYHkwfCNYYX1tZCpIU3QjYQp6JXs7N05HI3NHejNRNngzNWtJOypLI2BDUnlJ
OSY7YH5ETjhVKTskY05XYCtOVkNEVDRMOHkzMzNtTHFweHhKTnoKeiQ0Vl9JbzdvNkxRMUF+NGZg
flRQWGNzfDFxRnxMRjtJRnpAel56fkY4ZCVyQngoMyFZdSYjbDE0Zzl+U2YjMjRuCnpsezIoRHly
RkZmMnFWRGYkZmArJjZCUTV3UXAlYyMkcT5eVDA3VypHNXh7S1FxMFI9KVVObkZRTE1RP1g1Z30x
Jgp6RiVkU2owLSF8Zjc5blg3YVc9SCUrSk18RDV7VlhLM2Q0V3opNFZJdmhFaGp1Pncjd0RHdSRa
KHFsNmNMa3JKZVUKejh5Rk45S3JeQitqM35relhoe1BVSWZ7NEB2JXd6fThiZH0tZnUqRlByaHkw
ckBVMGV3IUp4QDc8bTNwT3J+c0dfCnokUWEydFpXbVVmKnJhMkk8I0o7WjM2OG89JCp1aDhDQTAy
X0EzVVB3P3F7aX1IKmFCSy1NVjhaQDI9ZkAjS2F7ZQp6cktEdzRfTiVJP1lpSihPSkYwSkJjPGl7
NWd7NzZYampmJE0tb3crJitzRGBNLTEhUl5Mb1F2dTUqPjNiSHR6YjMKel89RyNEWTNYK30/cSVO
M2R6QGNUU1g1bHs8a2ptcDxyUzR4KWlvYSpLN0RSJWBxSkY7Xjs+c09aKHNsU2Z4Kz5LCnokKkpq
Pyp9MCRkaCtPYj5pekY4T0J9dyl0eGZyMmJYZmlTazg1V1RYaDR3fVNYQ3ghdkU9O2plTmU2NEB3
dXd0NQp6bjM3MzM+aGAwVFJOU0p2S2JYemtLVHZQeDUmT0RoOTEpRXUqfW8+KCo/JnYyVXhOTFhz
fSp8cjtaWSVMRkVSYGcKemYrQXFaRDk5LSZoJlBzc2teKVBHckokZ3Nmd2hRUzVUZDFfcmJQay1O
Q1pXcUsjc3dYUSk0TnhNM24jMzVCJT5sCnpAT18tbjAlJFN0LUhqMiQydFB3S1loTnxrTiFjNnNZ
SUZ6UjxKdD99bmY/PT8mY1Q0OyRgaGEodD5iYVJjNEtOfgp6e19YRWx4cDY2RjN7S3BlUVRvOXFW
Zm1AeUFwP192O19fdTVxaWF9cXh8VWFZKXB5dE4lXldEKDg+Y3hqPzJuelAKejwydndlekstRzJ2
I3FoTU9aK19kJlg+Nl9XPyprKTJfWEFLbHV4ZDU7X2xeLWd7fkFJeGd1QDZwWU1Eb2NWMHhSCnpt
UVU/Iy1NRW5ScmRHRGUwVkIxZSlUMzg+RlBAcV4pVVZKTEcoQStHe3FtOCFlWE1xaiptQiNeSkd0
IUlrNGBtdQp6NDd7OGUlUmFiZ0F7I2YqYU0kbTFgbHI0NylWMnRuUyFBQSFlUiRmRSFEejBrb3oy
cSFqJmdSTlQtWWM0eHJrRHwKekZzKHN5STxeTSZHU140JVQ3QWh2bjlHK19uPSVocWY2fmtlKilN
aFd7TzgydUdwQHk8PWVKKnIoezhganhxQ1ZACnpLMzBweXMqZHszd0VmJiooO0s2bkFieSMhKlVs
PldaLXQlV3Ipbk01eUluVEVRb2Z0VEgtZykzTUt8Zms+RWhSRwp6JSRrclhrKE15KnomMXY9ZHNr
TW5WY1plZEctcUJaKTJ8QkdDWHsxZFYmeW8zPld6TUNGSzxyMUprcngqOFR4OVUKekFiKD4mdWJo
ezdIZk1SUWJIXjVrdEp7M3stISF5MC10WXgwe2M8Mz1xTzR8N0k4aytvaj1ya1RONlctSVlVPC1n
CnpqbX4xe2gzd0x3TT9Se1JGLThZbiRXd0ZjOTVSKF9TdX5HbEokYWIqb3RpUyslYD5oVTROMEd+
dW9WSGNrOWk4NAp6KyhmRHJkKmVeM0glJmRAeT1HeSV2dDImQ3hRfUliV3FXK2NjJUtUdEE5S2w0
aWA9a0E5Uj5PYW40ZEoySU94fnwKej8jUCR0b29FT3IwTWlNK2tJUT59aFAxfDJYUUM3SXA3RDJJ
dDd+diZ1SFNjaElrcT05YjliQlRvcWIrNks5dG5FCnpLa3Z4UnNtfVp+QUx7JExLK2VEUk5yNys3
YChaZ3wkRzZ7MW1eSyl3S1JLYz08ZCoxQjghJTBGQDtEREZ6dVY7Kgp6KV5FPTZZdkc3VyNTYDM+
Xzh0ZChwSCFSejElcUR3UHdgcEhnOVZxNGN0eUxqS0s/YGkyWSUtODhHcEd+U3ZDNVcKelRnTlBT
PVBgWENAekolNno0bGVvbWtjTDxPN28pYHdUfVlGSWk4MXNrWk42ZTNXZ3UhMzJ2PVhYUWliM0d2
XmwhCnpZWCtNS0QhUTN+Y0NLemxRKUA/WiV1PTxZOyZRP0VLXzRtV21rSkBEZj9eSyM1PHRVbyNy
bShCU3pGemMzR1d4agp6dWorZ3JlJlBLKlFMVHBpOHRiI2VzayFYI3J9Zmp1NikkREstVGNmOztn
fj4tTWI5QyhmJEJ3dnNocUpjbW92R3sKejhgLSZKKWs3dWc5JXYwT1lgVzV5TGpYM01XS301UDFK
UkZvPiVVJjVfMjhEdUVqVjdXYjJqWC07LSl0fiMkd2FHCnppd3dhYlojV3JTJChuZ3xfb3QoLVJg
KnM5T0lMRXRXblRAdFZwTVkzKykxV3w8JE5nYlN2JmR4cCtLajBPNVFAZwp6cHtyeGZyKGJfJTkm
c18rS188MWFeMTBPWD9CWTtkPX41aTt3YVgmfnlCYTBJNGVKUDBpMnQ7ZHFLPTdfR2Z5XjYKempj
KTFwIS1wUjQmRDx0K0pjKkheVHolV1Nje2g1c142LVg4QVliUlYlJCFDNSVwUSMlMXU9KDg0ZiFJ
M3cqe1hHCnolSiRuKUliOEI+U0steHpScTNhV3owKkktbS0rb0UxRXdoKEA3Pyo+QnxKTys3WE8y
cURoYVgzSGRueWZ7ayYqOAp6QyF0TEx4Tyt2KnZrYjFQaG03OGohcVdacS1mSVpTKVk5PHpodzx9
RGVePV5uNFI+JUAtYmBebUIxKkFseWY7RjUKemkrdHRKWnphYzwoUXx7bHRZaD16dEF7VzxnfSQm
Pl9+bWpgbHIlcU1fMzNDN1lmckghX1kjaDYrO3IpT3c4N1kxCnpNOW1ZNmE/ZjYjdUdxclFxeGhw
PT1qcFh7SzhRQW41ZGY9Z2xPOXZ0JW0pPjJqcTxkWDgqSD1PMyFnS1dPNEUoRwp6Rk8oSVVhZ2NA
N1pRRUM9S1g/TWJRS2pGdll8fVQ1P24kZVUwdm1UOytHd3pHa3ZeQCpFI2JDNmEyOTJveHwyVkwK
elJNQ15nZnRTbDsqYEEtaVJvdElBdXo2QyVTZ2ZyendFbkpReldIYF4ra1NKRlUyLXF1PlUkUmxI
QyhjN0pZVHgpCno5QUByKylaZEMzR1RqPnhxaiRtUWJkUHQwem5XJmNIMFh7Pip5filUPEpAemlh
fVpNI2NEQSVDQEZAR2ZzJThITQp6ZjdTRTdFXikmX2dZQ3paLVg7dnN2TEVoX0loakVEcVR7Jk03
N1J5OHtuVlkpK00qNT0qNE9WZlJ8S2BBT0JsIyQKelREdD1SZn4yMSRYP194d3dNQFowWEp3ciFf
dFZWWit4cnUqX1R1YUQ/VChUMV89K35fZnNFWnY1Jjdab0NkVzVzCnpzYnhIbGQ3M1pKLUJvYm9k
UFE5U0oxZzVeOS1nfl9qdXoqVkNsZU96Rz9vVzJZPyNAe2dGI0VpUDFVQzRQQilofgp6OSo8fCV4
TyZMLW91UnhvX0xFXl9xe31KKSNgZlQxNHEoaHNAZUZmbWA8QCVLeWRPQXF0ez95VT45U0hhT31K
TU4Kel5XYmE2eCtIZ0Jsd1lLRkkjPSpuKlZhb183T2lhb2J+T35JLThFJk9hNHRYZnBMJFMjRmtw
WE9ufW9ZdHtfY000Cnpydj1AZ2N8bUBpJVMhfD5KeTNfQCs9Vi0zZ1UyViVgeUQ7YVBfIzZ6WTNz
bHFMSElDUkhGbiRtT00oZFpEWWo4SQp6JlZJZDBaYHpDZClzMkBMVTdEV3lPRk1ucllyd0JiSCQ1
MDNET19ETCQ2ZHRCP3d+S3teNmk5fHFrWWpudHJ5bXMKejZpNTRHcytMNGVaeSlfQ1hXbz1LYVp2
WDU0KTVERG0hbDRwdjxPRzU9TEQhMTkwPCtjPTZsTDlebys5S0pjcVZ2Cnp4X198NF9AP3NQPVdV
TUk/RitsZ0FHZVRLKHRRXmI4MmMzYVd7Z3BOa0FATjUqb0Y4fDl7JmBOYXgoP3klMVklOQp6cn1P
dXdZKERXPzJ1JGYhTlJBQTxlVD1tQE5pUTFDR1EmQyR4P0NgTXRFbHx4YWsoJE9gR3diS1olXmIy
NFZANzMKekg/Zkp8WSQ5fXI1MHZ2JSNlfDswTkF3JHVpfH5KfXk9Vk5QQDBpIU1rfTNLMlNUITBs
X3BhU1AtT2woJE96Yit3CnpSYyhJaGpqJH1NNjAzTjNsPmY8KCVSMkd9LSF4d0w5PT81c3deS2FC
VmNoZ31qNzBOfUJyRmJWWFZIUzBIemFwRgp6JDQraDM1TTd2SURPX3c2SWFqWHtxeENUTXoqe1Nh
VE1Lb3FvLU96fTFGUU9yVmg0KlopdSRWMl9SM1ZMb0plVyYKeldkWmM5U3NPZFFGPGhgVDU0KnFy
d2s0YFh8Q0V+Z1VBe3dlWihvbFRiYnNGNHFwbmc9KjJSKlBoelZEZF9jSWlJCnpXcyNIXlZYRXU8
SkBmOGV0Sil0O0ZQcFojWTJpclJYPlImMVR6RkRnZGE+VGApemRsZ3VIN0clQnRwPG5JfmlFNAp6
Kj8tbmFFb1F4VW50bSN4T250SWRwXkY3MkdGbTxHQkZud0FNTkljJFYlR2dKaSoyPDFrQnN+QnAy
O2h7T3VnJnIKem9BI2pvakF1USktTnxqXjA7TCg+MyFocyhKbGtfbUtnUjFsZ19oPW4/Pn4tLVRI
WXJCPzs+UnhpfX1YLUUyRjhPCno8YUR4WWFxMjRtLUJpNU4/QjJCMFokbTJ7aHkraWg/ZDxDd08z
SXFie1hCNmBkKzxuS01gZzdJP3tmMnd6NXVFcAp6Tl4tUyZNJVFmWVRlIUJJRVJwTSRHaS0/Qjll
dyopeTgyYnQhI2VyNzBhSlBaNFdVMWNzPCglWD5DQUhQVyZ5TXcKenh3bnM7PlkzXnZveXg4RXh0
TXg5RzxETn0ka01LM2lJJGsrTjhpcCspayZoNnFLY21GIykzX3k/QnZxTmZVaklBCno8R0BLOEx3
VUxqNjxyaChKJl5+IVE+IV9MbXhHcTxnPyF0KmxUemBQZzBBWE13ezxSejVQKk5zXmdScyohcEZH
fQp6M09mYyQoMSY7U1pLUEtve2koIVRzQk5GNWN4ZkkqKGMpNGglUEp7KGk/VEtSc2smZURsY2pg
YittLW1Bb2xHankKejtaSG1DO2hrSXNfTzU4XyF+PyRNR1gkXzwjT21WQzReK2x8PlUoRD8rK3hD
MEpWczJAOEA/cn5XTEM4X25iZ098CnpzaDtjcXs1Yjkwdz1FJXhVViUrSzJhNDVweEUwQ0soaWh9
QzZNZklDSlpAazNXfmIhbEl3ZkFWcnMmIXEkclcrNAp6bl5aaGdPZnhTWVZaUi0rV0R8NTxLST4t
ajU5Z0FOVyRJZD1LRD8jLWMySSkjV3EqLTwlWE93NSZZb1dGcGAzSzUKek0mNn07bkRRezFpUlpK
WDhTKyg7NiM0bUBqbHIqb0tIR1ViT1duPWtRRlpuNFluI0dGWXlCVUotT14+diszSWxPCnp7TzBl
aEQ3fnNXY1dqMU9eJERHYihTej1uVCRNLTZpa0BAQz1NPEdRbld6MWY1WTJxOzVkSHBFUX5kUCM+
JGtiXwp6LTFsQnszTENRUjZiK0I+bnFAalc9QCQweiE4ND1GPmlqUD8wcHA5VnJXJUkoNHpGfjJK
TUZjKGxBcTY5RyMzcjAKenRZMFdkQ2pjdExEPnohNyYoOyZeRXRiYjA2KkVRXiRKRGlYPCtNcE1v
I01HSlZAPzJ1PDQxPk00cytAajVXdE9MCnpjNzZaQz1HVypsQDVURjZJWHlRamMoNlU4bSllQTFT
XmhYMChlJCZhJmFWNlUjeXp5ZzAmPnNXZ0hqYElGdXZ4egp6SDxRdTJzNS12RUFiaENpJHYpOU9V
Jn5XbzgxfjZ8ZVlzaElPZjQ8RG9vKyN2ZVBUbkJvQVZWUzRsQUYpVXJSVXwKenxEPkFze0hELXZz
V0M+TV9pakZKX05mM1I5cmxqMFZZOUFWcT14K0NhdndIUiNAczhMUGc3UjQmPlY8bmk8YXRFCno5
UWAycHJmN2stYW0+UHZYOUNreGxnQ2h8XiZ6R3kqIVoqQ1BrcjBgWSVkMmtkTWklZiQ5YSM2bFha
UF8kOTZfIwp6KnRPUX1kTSoyTUFsU3F5PnZ8TiVRRlJpdnF2PjNAK2QhP2AkKnRCfjwhP1Q1WVA8
UXhzcUhvSVghNGxrUV9yfSgKekVHOUFgeSRXYHA+THRGMFIxUER9JTdiaExzaz4jTGV3YzIwRFd4
bUZOaGo5Uy1NQXghdWFjI2tsX1VBVz4wK0hhCnoqXlFMVz1OQWtre0lfMWx7cVUjZio2NWh7OGRC
WnheZlVgS2ctR2U5M25weiVKOyFVK1BxMGgmMSRkRHduciQyOQp6PlpZYUZGYm50Vnw5STttRXIq
KHIjS1FYeCFBVDU8Iys8PVNDUjBSTnYpaUo9Nj9NT2Zqe2JsZkB2Tnd1d3F3Z3AKeiZwIyRGQj4o
KUw5NGwjR0lNTzlTYExsRkg5K2Z1WEw7KEdmX3hvcj4yQFVnR18pfTNPbVR5WjItJVFzfS1EfGVz
CnooQ3Z5SEQwTSF6XnsyOThTUTdWSD93UEE2NHhYKWxgcE9rR1dvcUFYdH4rZkVPKG9fXm5gZG9z
I2pHYSR6Nns+PAp6eFpISjQ+TCFvZUtMM2V3R2hVaCFQUipZfUEhPTQ5JmZkTl9WPn1UK1hLO0Yo
PH1MciQ2UmQ4bUV3cEAxb21ZTT0KejFjbEZ3NmtXJXNidDx1M04pfjhXITYlN01XIzAlQ282fEsz
fEpLKmN2MnohUExVJlVHJEMzbDlsfmpTYDdBPmA/CnpIeT1JdVorLWFndC0kPUZjZmVGcHdaVE14
O2BXSTA8M04+Kz9xaz0zWHYtTGR4d1BwOU58WER4OCh2YGxAX0MhLQp6bTFXdlEyM356RFopKWwl
LUY+YDtzIWxKdj51RjgyX1h1UUpVZnAoe3ZWcnl5WnwrYT1ZSlBEKT9kRk10cWNaNlIKejQ2NTh3
I2RCTUp3NzdjUG87MGRqWGo5cUZWWm1JMVooQDAxeE83djJ5fmgxdit4PHZHek1UaDcpQWxfKjt9
ZkEjCnpWdHV4OHpSQEl1eWlzWjVUcz9ibnd5Y1JrcXJQeEN6d2d5MG12QHc+NmliSF5gZHYwJGZC
SU5GRzxvbHhgaDs4cAp6dW98TntDPkgoRl91aCVlWUFJVnpWJVlrQkZ4UDQ/Pl5nb3ZaMTQxIURt
OUsxKXR0NFJNTkx6PWtMWD8lKXBZMkkKellQe2dxNVBFPzFeTHxfTUBgWUs9QEpXPXMrbGQ0RHkq
JFlsR303N2k3amxCRTxnTFlQbFhBXjk0YjMtaTNKcT47CnpQKXY3SypzK3UjcitzSk94PyFIQ2xQ
N2JePGVQX3VsKSRwYmFLSjg2U14zVnsoVWZBPEl4MlFMLT1nd15fcCVyMQp6ek9rbW9UWF5OVWB0
Xik8MHxxMEhgJHVwMk9saFZYPD47SSV2WTREYmg7RDNUO2ZYQSpDXmlfU19yKEAqOSV3dE8Kej9p
LX5xcDxkTHhMbVJ2QlckSjxhMlVQRTNZTXxXWF84YWNfRGUtSk8rM1UzQjJlfnVyYEolUD5yVXZD
WWtBNGBpCnpfVj4jZXU/Wnx2bjN9Vn4jKGJwezV6Mm5EJisteXxVWEZCPmRiKiRjNmdCd2lSdUhj
aXc2KXVSbE18QnklZzR2agp6aG9mMXBkJDtyMFYzP2I2ci1iJV8oMjxpVk99I2dZTSkrekArQkFL
NWF5TiRPeUh2a2pgJj5oMTNRbzlSd3VKVFcKeiold1pITVh0UGtnTFdHRlpCLX4tKlFVbHxNLU85
SFZgbEBNZFhyfXpgOFQ8anpZfkNCN2BHeHstU0tiKlEkTWR0CnowJnU9e1BLRUk0cnxnMnVmcTMp
dyk3Q1hkVilEOHlQanhSWTdAWGhJbjczKGIrbGRRMEJgNH13MjNrMV5DUyZHWQp6NER4cWBsfDZo
SXgmS3tfYHszemF7VmArdSt6cm09M0krcXdzQDhsWnhCVDNoWHF5SWc+SnVgMnhxQ2I1UlZ6QikK
eiYtLVo3ekJJOW49eTRZPD8jQDhSODNlYEJadURoMStlRGVfQCtsJkJgR1RwJHcpVF40WVRLV2JV
U2hvXzlJWX1MCnooe1NhOV8+JEthQU1RYDFNVUcjJUNLWm1uUDhpNVlgc2o1bj5NajRCeXU1UD9T
Mlg/Wj1AZ3RwXzJ1Rj9OX35iRgp6P3wwY0tvRVNNNFpgaUIpJTFtODBxTiVCPXo8K3duKWtXb1Y2
Zz9zV3R7MSQ/SVp1OT4mMnM0T1dhUnFrRSs+IT8Kejg5eyYwO3g0fDl1ZitPaWZVVSN4K3Q9SjN7
cldWPWBjOTl2V0U/cVF0UHlmfGV7SSNHKVItWXhxdnZWWXlkYitsCnpzQGBzIT5tS1JAUUBMYVhi
QyozKmNHTn5EKlNVdzkkSm1CeEFNJVQ3JShvYVBmVCphd3EwZiRRRlJLXnowaW9wVgp6bEFHb1gk
JWNBJEdxWkRobHdWbjIlUXM7TkRqSUxQbC0rRThSc1R0dHlIPk1yY2VyPVoza1AkLUQ7K2B3eVk0
UlkKem9ldmtmLXpVT09DMEVxSVc/MCsoalUkb2dYeHl1Kk5SZkJOS0xoYWZOezFBcjl2MHR2RVVJ
PUJNNFVkd3NXV0hMCnpRT31qaEN3QkFFKGNidmk/UDA/S3JncjB4LSEhJXNyUWRvTE5xeWhTVUVQ
MFNpNSN6PkZqd29IVzRwO3QocmJndAp6LW1rQmlsd1coeF48Izx9JU0/MXhXa21OM0tRcDlYUCV0
ZnttcyNUREpLMzF1YG8rbTkrY35COVItWXtNJmJQWk4KeldaYUQxVS1qejdlemcoXnYxdD96SF9r
cU9vJEpZNFltKzIlfEVrdkZgbDgwN2U3bFdEP2o5TVFHfSk2OXVKblJtCnpybXklI2okSFFtbXxr
UXFAN3FMJTFIKzVFSHl6RiNjd2YxUEQ8SmI9K018JGQya0dQYzZeZTdOJSpFQHhabmslUwp6JX19
ZDVgKUo8aj53QFJHMH1XaDFjaEp+dU90YX4hSU8weTNiTk5PPGRFNDcwOGs+OHc1MWhvdjNKUn18
YWxIc08KemsjUzkoJTBBUH5TOF5rMzxFRm11VkFKQCtWeCNsUG51bT5jZDlpd0plbzNuP1RafG9B
bCVDZ25Ib25iJC0kS1d5CnoraXF2S0x9SkNfMUcxfENaUTwjSzBFZipGb0lZOUYlWUNkWmI8ZmMk
TUo8YjQpR0FKWGN3WE9xcShWUkItU18pfQp6TV4jPEUlYHl3ZGpCemVhWVA9X1dwMSU1PSgjT0VQ
QmspM2NqbWE1bmlKe2pLaFlhTlZVbDlQUi1PMEMxKz8pK0gKeiQ8LUM9KT4wPEkmfDxqJSVpUkZj
Qk52JVdxVShEdnchTk52bDw8OSswQm0heWhZTTZycnRrPEhsMnZEfkY5X0puCnpQY04/OXViRV9n
dnxXNXhQNTtxT2pLVmY4JC19cXZvVVgrbGJ0eFNQP043KGdEbjdtKlktMThQNmhNRWhxJFRCfAp6
ZGBWWlIhQlRRWEMpJmlOQkFlRG1paVg9UDxoZ3Y3XzFrYVc9V31ONklMIU0tRClnJXN4OF5laCMp
ZkhVUn5Ybk8Kej1zbFREXkpUNmQmaXp7YkVrVn1GZDk+RXFeMD19MUojI2pXPGROTkQxSUYoTkFu
I1A/amBDO0VxSDIhKWJnUGF8CnpQMGx6bHBWVTxUZyF6TCg7cGJ0fk94bylRSShLI1RDJmZQSSRU
QWJYfDV9Y29XaWk7Mj8zNT8oTGg2dG58SChaSgp6djlgN3VadmB5dEwhNiZtdjcyeDR6R19oUGBs
NGBRVGorKUUyeGFYZT05PTBDO2ttbF5BcyErbG1vX3srI0tJUiYKekZNfEMjVjRBQWoqUzxYVVZU
MnlFP3NPWlAqU3s5NFBGb0BNSWJQJT13a19ia2YjYDxZLWtIJV5JeUV6Y2Z1QH4tCnpeK3xIVWht
eEUxQH5NeTZ5bHdrM3RWUXspPG0mVkQ5TzRDciRFV3p4dztnfTJMYkVBU0dgS1NHPn5ve0M7LVU/
bQp6IWo+RjF3TjNCWXRrWTx5M3s5ZilzP1JLUmF8JjhDNzQ8NT0oU0kpWTlOcDhFVXpwSnlSezEp
YXh0eGRibWNTVUUKenY1Jlg4blZRWH16cT0/PClrXjdXd3d+SWo/eWMhSiZWMFI2SEs8R2dGOVB0
VWtNQjB0ZXMwdF82eyt8UnpqZCpCCnp3JXAlckxGO2FeOXNjWGshR2tvbUVVQlZaUzBee2Z2S2lj
UEpad340b2M4M3hOJjhQcEgjcjNnLXF1fis+ZEl1JQp6ZkFVTnk8OFoqd29RQUp1S0BRXztTTTk0
dEFLSEg/Wm0hLVYlanNmakcrQlByJXlGciY1O3sqNzlsaXVvc2okejYKek8lPUJZKW5acyNYdX50
WTB+YGowXntyP3t3STZqS05nTWtmNzxYYmZxWiZJWjtPYk1haz05RDNzY2ltQDNjNykoCnptQElO
Y1VucVJtTjE0LVgzZE5LPng+Q3IpU0V1bmFndzAqTCRNQ2lFcS1lQUFvM3Y1M1hffWJublkpaXEx
JjZZeQp6V1V9S21wTn1UZU9Vc0A8JkZPYSUlVld2MForWE9Be041fD47ant5X2xZVkh+YEFNeC0t
dXVna192diVIekx1NU4Kejl8flAhbX1eK2ZpV3I1SE9rbX5RYCE2UChndkwyKVRMU1B2Xk19IWQo
IzcqOHpmS3B2XldfM0Zoc3dtYyNJOFdgCnpLRCZGSjZ+VHZeXytubiMoWCN8a1NOMH57NSlaS2Fz
a2QkNmBYei1BVGNNNTRGO35ldiYjX0c7b29EUWhOait3ZQp6clQ4Z0ZOWUtYOGlgcyh6RFVZYkxB
S257bG56USRgaSZlYSEjRW5uMD44cjsjKzIqaSZFKmFsP1cjeVZlKE4xajwKemFqI0M+RmFPeiZy
QEpwNyZPaEpkPzJJYHprTEw2M2VwdFpFezJyZnI+Q290MlBybE00WFE/Y1VQQ2EwfTZXTD1xCnpu
YmhqdyNqd1I7Q0o/V2JjflY4THhTaCtHRXBlSjw7TDFjcEY1a25yZ0kxUD9lTnRhQzZ9czYmOUgl
cTgkQz50RAp6ak1APTNZcCZgcUZxWXZnenNLUjVOSzM9KTExV3kxc3JTPlpFfCpWPWhQVyhoPCZ5
M0NZRW5kN1FxUWg1VnhwQmkKelVSaGJWQnVART9xSzApbGM/MWpWJFVPY2U2JT84SUV8bXFwUDhe
RiMkX1VPUCo/OVJ7cT1UUC0qZHFhSEpCYlVlCnpNUFEwb3s7OVVvKEJYIWNON0h7flo5Tip0d1ct
JVpaKlpeViUlJC1NaHUqd1N1VCFvcCk0YkxteEA8RiU2Sjl3Sgp6LSlPa2tIPzNsTGY9e08wP097
cUsmZ0xTdjxDKjtPJDA5R1V1eGVGdnI4YT1gPHtYfnFoXyYqUlJXfmxAJUc8Pj0KekdSXislZDZA
YjQtVSRRUz4heXRGZFV4RU9tQ3FnRnlJWGF8SXNmTDZKSnQ0JGAoMEN1NnFYJE5nRjtPPUAlc200
CnorMER2JHhabGdxWnwxI0dtU3ZPQ1NlRUkrSEYwalZ0JVI8WHVmbyt+THB7XnVjRk1GWHhfT0pg
Q3peYGJEUTYkcAp6eT9AenxvUyg1eFdWdlcoVSY1bm93d0tBWUZBOWI4QUolalFJRDhMa3s/PT9n
ZXkxakQ9bDJualhpQClTWXp8K2EKej1YTzd8JS02IXVDNUl0fldfdCQ3YSt3JXItP0F7cHBwS3Vl
S0ExeEt6PUM3PmdKeVJkTUFFNHlAZzltd1gyeGxXCnprR2stY0V7XiZhPj9qP2hPMEk5ZXJObT5B
dV5ASE55eVpTY2tkRl9Rb3xEQlpiWSpoc2tTUnleODJifXI9RmQwdwp6STkwbk9pYUolQ3A4RU94
SyllI0B6aHx5KzYyNElrPXU5MHMlRDIlaXNrPSFyT2YlN2BUVyZKSz08OzRpbGxLfDEKekJsVG4p
aXcqdmRtZmtFNTVQKjxsaiZIcGRVYU1Wam1XS2VJRGI5YzFZe15Nej5mJjl4RX5oQnU8YFVyVEJ6
SCplCnpvTGZqYGV9JSpLKHhxNjttZVdwJGQ1KDEwaEJhUm9ZPjt5XmJeS0F1b3A9aGZIMC1BckV1
NUk3Vkh7PG0oN0V4fQp6NlZXUylnWUZhNiR3XkpnY30xNlJKNDhHQGQ3XmQ/cXVgaShOPFg7az5R
aXxOK3hTcFcoSz5mNGVfbDJEaDVWV0sKeiNqak1peDQ1LSMhXmZEV0o2ZzBvO0BWS3w/YjY9QjhS
OGVPX208bkhgdVNMQHBzd3RhTChWaj53dDs8SFgwRXFFCnpwa0J1IVlQPmg1UEF5YDAxb2R9NEpU
c1gpMEQpe3g7YGtyZUQ8c1VpbyM+WlVgVUdBektBO2gxb0EyZmYzdylgOQp6YzU2UkpaXns7bVol
SzJJKXJsOG8zKkVMby11cU5rX19oMWBuT2hJNTJjQk9ybjJ1SXR2SEJ0TCstVmB9bWRIPUcKelF6
ZV9UMylDMk52QU99eng3TmtILVpJa35jYVNmP0JXPSU4OypALWFaPUopOyp+OGRfMzNCcWMmTiZE
Q2pBSmIyCnptZDF2az1RT0cqe141TzVBVFFlMWZjOTlJYmpWJExTTld7JHF0fGZoLXUrSEY7eWZM
ZjdBQG1tYFBedE5Hc0hkUwp6YWNvZX1LY2x8U2hsTWp0aDJze1VJPEglfTtLbHhKQ0ZYdH0tUSFE
cUdkcVhBcy1NYUFtaDBIb3V2TUs/Ym1eTVMKelQ/K1lmT0F+Kl9JYlYxR14hRmNHQis7UzhXTlpm
NCNAI31GZUxkT2t6Zj0rfFRmQ0lPU0x6fjRKRlh0R0JoTEsoCnpnNnA+RHJsbD0rS1lZRyhhWnVm
a3h+PVluPn4oa0hMR15we09AbXEpM288X0ZnTFhSe3EmSmpmZ2tJQlNKbDlAKwp6OHQ1X2lTU3ww
dl5vVWw/eU5icXsyOWIpRks5KlAoaDNXNUk8SEN1P21TKHl+YXR9OGp0MiUzNW5+MlZ1aEA8JjUK
enpCbmB6KU5Kc0BzZDFXOC1AeEZOIz9FRS1qUFFhVjZSYksjJUZHV2QtPHAocnZ5QkliZjFhbVcq
cmlVSkslZVZsCnojOHVKNTZGdUBYUFUrTEJFNWUodVd5KDc0QERiMnxHJFpHSz4md3IweDdjQkFh
V2x+aT49WXRpe2U4MkY5WlAlSQp6R2lYWX1iPjZiS1BhMTRFNn1jI35eWFNFWD1FKnFrO0BCczJP
NFNSY1pqcjNUTHlINT15dChfZEl8eUolcl9ebm0KejI3bUsqaUR9SUkkRW0lRWdfUHk9M351NHcq
bGtaTklleU5Gd04oJGY1a0xVcWBSeCtyQEJ0SFYyZmsxVGV4OG9JCnpeTnhZPWUlNUU2b2FmJDw3
VjVeVytaeWVPc2MhbTU5YGRJfEdWbWw3R29OemwrQVY4b0pVWTVoSzc7YDdLWEdqTQp6KU1JLVM7
fmM9UyVgYXhhcHBlI2kteHMkeS1nfUNzJUxWJVVSMGgxJVlWV0lfVW1xfmdadylUSHBifFVecm4w
KlEKeiZYJTRJMmpwNyFodDUzTCheSFFXSl5MKkVkUXM4eXVTZjE0aF5BcnRrPlRhNGpoaDxMSHNu
MlBOJCFVbyV4RVFtCnomcWt+PGpAPWhKKHotXlIxS2dJeU1KKkM5TWhkXlZ1cTlHOXNDNTFsRXxM
UEo+ZmU+P0hKeno8cyFoWFVhdXt7Zgp6bmE7a2EmNWAldmRyMWsjX2gkT3hldVk2IzxUSzBsZU9U
b2RPUEBLdXpvfiFtZUZtbkY/aEF0LXs/ckEydVFRQD8Kei01OUN0dUlOdig5TSlFWWxsKXVOP2pF
Q2kqIShFeU5VP09+KD9Ec1RYZFNtS2QlYUJaZ2t8JjgrcT11VWFrSiV0CnpNVGA0eFcmODdHejBE
X0lBaUV1WmxVJjJwZSRuJDtSUWkqc1lvKSQxbzZVRy1tM1dgMGR2PC1rbWYmNjclanM1NAp6N3M2
bGxWaTd0OCtjKSVRMlZQc1EtQ1dXN2xIJSpnaXZAIV9aIzFzSEY2UShKQF9SMStFcndyY2khMGZe
cGVObGEKenh1MjdSalR7WTVmeyV3SkNYN048NGIpPHw2KmB5aWNXejBpcWlXJXduZF5DIyVafn18
Y0gheG4mZVlnbEEhT2BLCno9Mj8wN15paWBKO0VIODZYcX47VUY+IVIxT3FBYF5PcyRYZSZkYk1Y
IWI8Uzc7bVJfQ3hoQCZtZzhVNTVUMztKKAp6WFpUbEFZdCg3KVpnOWQ7aS1APT8+Z2w0LXFJKSVW
Rj5ISGtKRT9zfnItJShUUUdeU3lvZ2plYkNCXnlhYztrRDcKeldATzMwS1crcW9PTmAtUzA9TjtO
QD9ZRXQ1YjxqeDA5QEw/VytPbitudkRSQHw3SWdWPChpRUV3UUR2NGR8azU8CnowOWpHfWRuM1Nx
XkZEeTBIVHdYYnwwbmtXUkliP3YoRTJ5fjBMSXFyMURPNTI0KipTQXZrdzVmVyotMjxudGNGVQp6
KjZhaHx7Nz4hITs5YXYxS3JyUCQtVXBEOUBfUWVeald6b0tyMmlaQzBWd19WPjt3Mjt2ai1zTFp9
dEVyZ1dyMXEKemllTWwzX3R5VS0+dUQke0Q2a2FkbHZwZzVpaShuJm1XaHMqaEs4MVA8MGJ8c19O
fDs4Pnw1RWBhNkFJTUk0KnV9CnpIbnZAb3laTUVMI2wqeG9kOE9zME1DMWZTI1lCa2ZYe2V+RVhs
WkMhPTsmQlB3ekYqKWBBPVZAI2FUQiUlS0c5Zwp6Oy1hKHZqZj1EWHVvIUFrXngoZWtATXJPPDEh
VU5oYE5kPEpZSWRPfnVidVlPKXM1TUF0fGo8SSNjcHowYDNRUm8KeiV0TGYhZ3JETHFiflROPVh0
YllPdlhPQlk8SCQ9VWtHXm94azdwUlphXiV3fF9LVChJPl5wWnd5M1YjPEVLbSZTCnp5I0peKHI/
O1daYjdXdUl6YD5ScTZfYCRAcl95KSV0azFsZVk8YXc0RUx8Vy0jQFEjO2krKWRCRCpLMmsmYTZy
eQp6S1J5TCgoLU9RZHdkaF9OZE82P3dUYTNhcm4qPVlHciZeLT5NbHtzaktBdmx7aTcrQ1FQMldF
TVZRbGY5VG1uJG0KelV9YlZeSlI5aElqbFNlQXhfPV5OeWd1LWdPLUpaVlNIbEwrcGBSYVR6czJN
aEhITD1ZOFZLJmNvTXtyWHs0e3Z9CnpRKiFIO2FiYHVeSGd5KHApaCZxJmRlJj9ue1JNdChRTiNH
JTJtMH5AeHR8Kl5Sc35WI0MyXlA1OWpGTVI/emI/dQp6O1l+PFY1VyUte0diX3w9YE5GT2llI3N9
IXRkVj8/P3R0NkAoZENyb29oQU5CQT9YNXxJd0t2KTU2Pn4hZXJPY0QKenl0aih5JjdsMEN7eTZo
aFJHY01tT1l5Zkp4MHRpTEFJITEpV2N0XyYleyY8MFZ3QzQtWmhTaGEpOTk4c3BQSzEoCnpePm5U
OFM4SzhqSzRNfHA+KiUkK2tOa0xCVnhNSmBtZnByTTYpV3shaDF4cVlCc0U4Tl41aldwaUJQTkhw
LTleawp6MTRwQ3QzSz57eHQkJlFsQUo4aXFSSTA+cUU1djhtdW89ZUVuVUJobUJeaUtPYVdqOS1k
OzMkVWlVUkMrc0sld14KejgmbnQkTlRUSjM+TmJAWjRXZjJ2JU8lQTd5WkFnYzR8e219ZVdyJGgt
e3Rfbl93cGp6am03KU50Rz1jZV8yMCNjCnpUbHglcysxLWg7VkdDfSZ7QDZsUkxfS0doVCQ0Yk9O
SkZRc2kqU0hYa0E5V0VfVDglYzlqQENWdmVfUHBAOFA3bQp6dXV3I2NudDlOIXRyQV4+NXhTdSRS
bmcmNHp8RDZva2pyOTU2fGx1K2c9dj1UKXJ7Nk8/aGNoaXhvNmNrVylncyUKenVXcjcoK1JOKm0q
XlZ7azdES2h9Yi1tTTYrcztpY0dkQ0loRmpRbWV1QTchUUUkZE1GKSszM30lZU03bjsqNng1Cnp6
fUVJMypvKi1hIXc/SWEpRUM3cVpaRVE+azVhYUJDelVrYEh0dE5mRnd9eXQtKj5tezx8LVZYc3VY
K2VPUi1OdAp6YXFIKDJedWZ6NCFLSj0wJVRHRCphYWQzbnBZaiN8KHp9RGgrQn4rYHlndy0tR0NP
KVZMd2szRy09blRwc1RAeDwKeiYqN0o5VDcjcGVEaD0oJiNQY2l7JXVBajx2PlBzfm0tM1JBTiVY
dkBlbmhuNCU3QzB8YGlUPm9UYWA8eCpkM0JlCnozWFhOenNCZ2M8O2I2cz1XOUZWVnRrJCk9Tn59
VjlNMVEjRCNNU2Q1QF95cWNETCtuQig+aD0wLXItQVRENFZyeQp6Jl5EemB7eFUyM3BqPTtKS3tD
VlBibWJrc2BYdj9RV2AoYEZ0cWtafndWYUZIcj53YypnMkZAOWR5QUpuUyY5diQKemNHWlk+Sn5i
fFNTVzxrfC0pKno4QysxNHIxS3NEa2JaPE8pNzM7MSZTYDNRU1lRKiNJLVBGSS1hT0tSS0wzYnMj
Cno/Z1dmcD4qSlBedT87MUFEUzVoaXVZOHdqNjN2WjBvdiRsPT01KnN4QHIzPUswKjhkSDdhcmcl
V1NSc3l3c3VYQwp6SnpgWmY4V2VhS0h8bXplITJHVnwtb2stSXc2fS1pJCU1dn5jNj07ZmkpPGQp
ekl9VyEqbHA2V3k3cVg5fEF+PyoKenl+QkFiPn1kejFUfmprPj9oZVd3S0w4Q3Roa0IjOGRmcSFN
dTNqNm5SKHp2JTcoWlhpQVMyfH5ra0FxM1JWYyFjCnpJaTJIZT1yJUtRI3gqcnpZQXtQcitIT2Rt
S0tWcnotS1lCSHN6TFpfZDZVZEZmR19tTm9gXmtPU1VDJm5vVlNTewp6eCNDfWpOLUJNIzU2XmE0
VHJmNTIlVDEmP1BPbmohPyY2VUJUclktZkx1d0o7eEZlJXZ5QnNhWUcjcT9sLXw7TGgKekZpKU18
ZCQwV0JeN2kxTmsmfHozRmFpbzgqezB+Wksld351KVl4JU1ScWhGdkZHOWtWMmZvSC1zQz89dnYr
UG8kCnp3aSVQO2pDST97bkJTbDduSXc4JF4ycUhmK0BeQ0tDOUliaVZfS2VZV3V0ZGsqWCR8bmsj
cDQ/TmlAOWdxc0Z2Vgp6MWtLYmxaeTJZbnFXUXduQDUqIzEtT2sjTFhvVWZHe0lQYz5UZjx5MXc3
d2J2a0ImJmhUSzhDIVJXMX1ieTY8KnQKejY/PyFWRyokMXs+LXB8a2lyY0khaXVwNVJXV1pAZC1j
MHRVaUtzNykjbTcycyN+T35fbT1BcHJtcVZkMjdJZmZNCnohX2pTWE4pPVNoa01IKzE3YnpXMipj
MCtPeUYkSF8lXzdfN3ZSeVRvJnxzNml7ZjVtPDcpMX15YCtrcTNHN2VEcQp6U3VwISoqTkR5O29Q
NSZqc0tLc1RBPV5ZSiozMDhLYnllQzxpR2AqOVc2OUdhPWx0N2NAZ19gKHA0PFpvZVMqKU4Kemx5
eVJCeUlGSSE4TGNvJHBAemJwSzA5fXM/RU1sUDdpMldoODYyR1c/ViVpLSNQPSh3b2t1IX5ZK041
ak9Md1JICnpoN0VlMig3VylkP2RlbitOQXtIJHBDOStBcF9jYkY3ZHk/MF56O2o4SWMoOUZFcWx9
fCpIX3dsQXBUdUp5dSZMdQp6PVNIc2pfV0U/Y09MYzgtUUBJajlqRDlBaFZBKDdlbiRqTTFnPTs5
QkV3KEU4UklmUGhTWUR2dGVhQ198JEszSGUKelBkTU17SHlfNnVkOFNebEtBPyU/cVRwNyU7SGoj
aCVVKkoyZTc2bE09eEkzSlk1TWE/Q25GcndQN1NsPmFeLUY3CnorZWFidD5naVNPIXdMUSUkaXVx
Q0RsXnJwTHJyQCFsXyZJTF90YzEqJi1XbHxEejJhPnpNTXdncW4ob09MWTJBLQp6MXgqS255cWN4
RG4lRV9fc199K0tKRVczdHRBMCFreV4+ZFJ3M2pjVVhLfmk/VSMkIzJlPGVSWG8jQWxpNSpNWCEK
emQrbzZ3OTsod0dKUWxxPy0/RXRac3c/ZWFYVkFvaWRifTdwKjBLPGtkY1F4cSZFU1FjIVJCWjBY
IW1oMjM+WiZzCno+UV9ETEN6PSRBaUhkayM7RXEyeFFfWX51KT9fRlBMTiNCc0lLPVlCUn1VTU54
KmgmZiZybVhgejtnSHI2REU+RAp6TjxLPyVhPD4hcnozJkFsUjNuXlk5QSgmVjRhfSNDKmlBJUkp
ZytwaTRjVTgweFFATWpHYDtoWXhjOXFEPWVYSSUKekl8fVB7cU5OOXBaTXt0fjd5Tn5LRHI0S2V7
PTIjSVN9YHh+ODRhNE5OZSE4Rnt8Sj8/ZlNxaD5eMytBTVk4SHg4CnpzX0o5TWdXKDh+dGF4ZF8h
R3VBJChiT3dia3woUykpfmNOVnZNUzlUbCRYbGhSPHE9PUpnVCllTnhwe3AjMVkjTgp6PGxaeXpQ
VnRiKlkhcShybkFeIX1kdnQzYHwwdEB+bTtQKiRidFY4bXgpV3gwUmdWNH5CekdfVDtPSUs/ZWIq
OHkKenR6SytYZVlhfSRfRnxgcDhoKkQ1RGl3USZZQ1cmbDdTP0lgKEtoWTtAYEFeNkk7VSlfd35m
VTFAMWc4JkMxR3kkCno5VzI9e1dPcy05e2lvUTRLUiVvOzs8Tzd6eUJZJEViZE14I2doUzI5aXdi
Zzw+c303M01wJX5AQWkxV2IpXzJuVgp6NENkOHJQR31eQlRhPEJPeyttdj1MXmdVcGV3bmd6b3JT
eU40YWBNUlBmQGtfNGJCZWRiI0xlU0M0OFVXeFZjVygKel91RTZVOXkpSWg/MlpAWjlfQmBReWJN
MUl7bzFlaWRJPD89cHtjV1NwMHhgWWQ9RChSeUA3OGxaOCgjR19ONyttCnpUVzl5dHchMGE3ZH5Q
WHVZK3VQJCpecj9YOCs9Y348d1FlKTN2O2lsWWVgPjg+d3wpeF5uRz1zIVkwJGJxYz9PNgp6cUJg
Yy0oTz5HbTk9S0BzUW0jb1VhRGwoaS1FYTRVV0o7VX54OWUjODs3a0dVXn1CNXd3N2ZYQD5pd3op
PFFpPXsKenc+d1QkTnwpPENzaUxOTGA9b3pJJCkjVWtrYUUmJWV5YGBAOTZqO3p0eDMkRyllbHJB
IypAO1Q5YEwhMWVKcmJkCnpgNiVYbyNoWjtPKT0hMWxDTDgzbEJKaFVBJWtzWGRUKX40ckRNe0xY
V0gkRTAxfjJFeGwwYzNqZXhubDBpKz1mYAp6XmRePm8ycj5mTEVJZWRmc2AkPVQ4dVFlVDw+PDkt
KHRDOz8pZVV5YWs0dHg8IXU8Xkd4XjlHZ3htNyg+RGdOZjwKenQ9VyZYXnU/Ryp4eW5EemArUVY0
Kk9vSnNjZTFSejxXSSRwcz16Vz00VVB1b3ImVVAzNyU9ZSZxMUojU3Q2ITkwCnprbD9tSk19NHpF
UUpHR3ZtQExWOG4jcV4pVksoM1EpWmNIdGxjXntxSDhxPkheKDZ0UXc4VmNzKC0tc1Z5WGxFRAp6
NnBRbHE8MSN8ODJSNDBibEhKRVV4P3E2NCFnbGw2NWV4RD5KfEJrYj1acmZxSD48bzdRUDtjRHBZ
Q2pGe0FeUkEKejstMTg0cEIhaUhxfjRwbmFnYEB5S2glNSl5RUpnRnZFK3U8MEtIN2l6P2d+dCoh
d0hndit7YmN4dCVZZDZEUVIjCnpeRTlXe1JfYV9TeFRGNDl5LT9TO0hSMHtKJDQhc049UlN1Vj0o
JG9CXzlTdEdCViV5WSV6Wj1rcjUlcjNJY3N1dgp6VmFkRHszVTBYdWVOMWM5IW5qPS0kaF4tYlEj
QjtWITBJcD88RSs4Yl9tbHheaShCQDVKLTFjUEglSTlPbkB6Uz8KelJ9PH42Xz8qfHBER0xjJkEh
NlMzMkwha3xQeEFGdFA8MGgqJHV2b0Y8TGNEczVfYVk0KGZ3ZmFFUnY0RGBLfjBBCnpCVkxaLXp8
PElSMV4wKXFyYChWRT44UUdXWmh4SGE3PE9FWFgqQH5Ca2tNLSloc1ByTVk0eEoqbyV+bWVZV2ck
Ngp6O3hQLUMpVSkmPkN+aUMxaT1Na3NVSE96cnVpVEY3b31rQjZUfUlLejYyWGxkbnlTaislRVMr
PFI/MiswPXZ+XlMKejdaVWZEaFBAdDU9cFV8KGNRMnthOUJIfTJYRnNONkhsSXxVUUNYeEY+PXVm
Zlo8NmxiJCFVMlJBMWhlSnErPVpFCnpxKjN9Kk9LZXh5NnpoWU1PUUk2O3dzIzclM2QqJWxDeHZ2
eXdwd3ZwQFlqWW05c2hXUkZMdTtxbm16ZXx2dX5HPApMRG1mP08kb2xeUDNlb0JrCgpsaXRlcmFs
IDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZh
cy9yZXNvdXJjZXMvaW1hZ2UxLmpwZyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL3Jl
c291cmNlcy9pbWFnZTEuanBnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU1NzIxZDUwZWQxN2QwMGZhNmM4MTY4NjEw
NjExZjdhNTg0NzlkNjIKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDEyMjg5CnpjbWVIcmNUXlAz
Kkpja3hqc2xffVFLQVlHMjJlNXJOKVg5T2tlb0JqM3xXR3AydWpYXk05Q21JM2ByMT5FSj96VQp6
KC0wJn0mYWl7Jl9rTWY2LUx0I0A/cHg8bipIZ0VpeF96SHBKdkcmUkY+KX5qVHpNPWxDaz1vPTBF
aCNgMFJSYFgKejtKIXowUl58WXBwYTkkZjAwMC1qMmF5MDZYb1FFWnVSJkxTOyMrN080azgxPD1v
VVF7ZVlwVyh7bG94SjEpfjBvCnpLWjk9bD1BYj0qY3ooe3NNKVRUMWtlflB9OHV0V1AwaHF0JSZJ
UGprIUMqelM0TiExIWEpM0c1OFVlc1ZSVkJISAp6UFo9UFBka303SlpYUj1VYXsrWFZNKk9BJU0m
P0dgQ2ZwRCtacGdoJE1gI15DV0JTPWJJM2IpbzBFQy18TX5HV2MKejIqUz8qO1RHWio2eWsjYjBH
blVKcEdZejR7RjQ2U0ZNKjh6aThfJCY3WTVPeUI/QUJzK0JZVVExaX5FLXstWGZuCnpZZEdkI0pR
RCU+I2xabDlLQGt7I2VlT25yMFFfSFpWVnArKHdTekd1IUdHKnYhYnJAJl8tWjg5cFNmVX5OYko5
dQp6SVRHaFR1fD93ayMtc29jaVQ0e3tMMVg7Q2UyJlExS2pUNSk4X2J2YkN3P0FvP29gbGtLNj4/
MUc1JXk3YyRXKFAKemkmSDtQe1BpUkQ7cmVlcmRMYDM7YDJrJW5mQkctST1xQ3NPR1hDSysxTEhV
VShobUx5I3tCRDNJc0B5c29mWFomCnp7cy1xRDhaLVdBeSE3KSY8MFohYjJjUGdpNyhJazhkPXZu
Zk5DKnZ4KEd9fnpUbUFwZWhVV2Z4NjF+dXYwYkxEIwp6dzxQSEgwbEhxNk9SMGJDengkdnFHJSVH
PWxhaUF8MHxzPXhkfHJNcyhHOXhBTGY2WSo1eXNFUWBxJW9TKCszVm0Kek5CK35VYjs8amNuQGY4
Uks+cyZTcEQlfmRnI30kTj9AanJ1QzU9WTZycyhTTnROKHtqXnpwWUgtMmtBQVMkd0ZhCnpsYXIk
bTduZVBwKTV6NHAqb0BQfSFIJnojJGRRWU9sYlpfPTVxRVBtR087bXBWbFh6ZHUoQjZyK15sVjJX
VXcrNwp6V3peelY7OHQqeUdQQVVqXj87ZUZjX154emMtV1ctbmxnJXVGXklTY3ghRjB8bks+Q1R4
WV5tLSEtZD5MOEdrdyMKekxnUHlfN2JDK0BpaiQyZjw1TEE/MX1PKWE4M1I4akExNX4+ZE4kMHxU
dUFreV56WFVvbysjdCpBWUVOdUliQ0A8Cno5Ymd0KkpjNUZQVC0qPlkyOz9yQmFUbzR4P199aDUq
QjtMRiRIUE4yeEN6WTQoYUZsZXA1ZkE/aytGbGJsUER3bAp6JmM4eWtiTnVWfXp0I1NTPXhCLUZY
NWZ8JXt8b3h4O2h6Y25HcylFQ3VYOUlkbkM7SnFPLTtEV1l8WlM8PzQ5NmYKekYzKThTPj5QIXBV
fWk/PlpBeyg0IUImKjw9WUk0THlWKmt7Q297QWV5K1BnTzdRNzRMU08ycD97VVJ3aW18Ql47Cnp8
OEdjdHFaN0kke2spZU1kaHp9e2h2PndjbmgzJDJqamhkMG9QTXVAcT4lKnw4Z2wpWTBqfHF6e3Yq
NFdnaTh+OAp6JHU4bUZ3SElVZnhCUSFkZT4zb0oyTDg+IXpadio5MU9OWUo7NkpCRkdrZiVAIXhl
b3QxVE5NQUh8ME1eRGg2SW8KelphX2QlUDY2fXNYYmt9M0ckMClTT3dBJWdnRmcwUjAybmtGO3M3
PjtuXiV3ekxXM2EmOzlqMHZ4Q0o1bkcjS34pCnoqJUEzZWBzTTVMQz0zOHNNc0l+JTtIcFU5Y3Mj
MjZmKzx5TzxLaTx3aVZMSXlANHo1TjBEfXwrQ0l3eDVMNyRgbgp6NUVrZlhgOGZASjBiemhLdjlO
SilAJGQ9SWdiTVVxRWVIKDh6eXhEcVU0e3dyTFhRS09xKiFEKGNfZ3NPUmc3PkwKenA7c1prNW94
JGdrfG04NHN7S0VoZDV2THljPSo/QFEmUWJ2VlAoNUBgd2shZno1ND0hTFEpU09OejJIfUp5dWlL
CnooQTBYV3R6JStwV15RMz1XZXM8N2M1IXVjX2p2aXJ8OCtwJW80MWlzKEpgQGNAOFQwYXEtU0pp
VyN7RFBtNm54UAp6UjNmVVhZbnF6Qnc2d09oY1hXT203I3RjI2oqTzFZJll8V1A3TUgjK3VXVzdh
P0MkTCE5M0NCQz5PI002e2dRPmcKenshO2NvPV57bnohb2I3P1c4eiV1MCU1cGIzTWErSHkyKm8w
Q1pVMzMxU015TF9+S3JiajdUZUsjQUQpQntYdDwyCno+JkwmdyVzMCFqYnQmenF2aX56LWUqYUko
e3RFayN1NW15TCExJThQNk1XZjZPOHtlSFZfez9ldFQ9ZU0qZkBBTgp6KngweFA9dkJOZFhoY1lX
UGs3bjZLc3kyYkBfX3tnVzh2ZHE8TlQhalV0S09IKGVHcFU3aD9iKzgyIz0+M01LYF8KemZsO0wo
TzsrNTYqcnA4QF9PZm4mKklkdFNwdk9qJjxaVFZgQ3tvNGduSSYwelRZMWBkZnVoKmRJdWJqa1lh
azZACnp5XiErcygxN0l+WitfOWJaO19vO3RkMUAxRjFASDhfV2ozb2NWcCRZKkYxNmRkbCg7b0o/
PGUxdGlLVTZlI1hJXgp6XlFzUFpudklpJmF7Jn1RaSpQSEZPdVQqbXQ8bit1OClMWUlZWGZWJiRT
YTZxSEBveX4mbGF+bWA4ZHRhdld+UG0Kent6bE5rWXMxNFFPSlh4VmQjaysjalVfUGE3Xk50X145
bDcyTVlLdktoUW0oRmpvWF9BQF5gaWk3P3VhSkpjY3B7Cno/Pj47ZSZpJiQpVmtmNWZ4aGFYeFZm
IVNGc3BrakRmPD0qI0xITnRDVEQxX3g2KVlsfTBodjAtbENSX0xtO24/bQp6PWpxNT9nXm9lRiFo
bllZZXlAZlN3Zjd5WGY/d1Q/aiNaalduIWRmNDh5fS1jVkFnfkdWYkEoLTFeR3AxLWlKZGQKenF9
ZzdveW88KiFleik2SjJJV0IzQiQ8YFp6UnF5bGpBK00kLW9heCptbnRGbVVQaSoyNGIzTGU/T1hY
TlRDdktHCno4VE09ZjJENCgoK21jYUBJM2pkRHkqZnVxPWhzcit0an57YDF+KXo2O3V2MEg2TEh9
JHBsfDg2cFNvQG5NRDcwWQp6eV9VN15sQFQxbCNec2RPeTNTTGMjN0M8eyNPO2YyaWhBWXx5V2h4
VXI+cEV3M1Rscyh6ZSg0VE0qOEBkTjwqaHQKejRNZklIanBNMkc2e3g7U09WWWY1O2d+JjtKZH1e
cT5QMStfVCMxQjIrUWs+KjRQfXRLQUs5VyFFTGtULUwjcX1rCnpaP3tkeDJXJX0kYWQ9UXZwTil5
RSRAWEFsYH5aJTM0RFFMPiZJMkRyVFN9aHxna0FzISt3OS1ZQDNeZmhaYXZ6TQp6T2ktKW1LdD1a
cUk4eVhKY3p6elVQP1VSbiF0dWljbXZ7WnV5fDlMPHFRWntjIVEpYH1wJFpZdD93U2hzc0o9QjMK
ejNmcnpaeXtsST1Xb25jKXhTQCRvLUNsY2BgcjZFKGErRV9vaj5uPGFZfntMQ1lZb0hPJCQxPDJx
Q2wofEhpPXNBCno1JndheWRffHpMT0MqZXtaMTRoamR7b0c7SkNmN1p6UnxeYFZwUFFYUjBGdjgm
OVJRUXlENTFqK2x+WCpTVXRQRAp6I0N3YWJBcHs4TVAka0FEYExVRyU5Z3B4NjVNMFZWS0dFdTI4
Q2BCZ1Q/TGVpUklgIWVRej1ucjlwZDhXNipwSmgKejFrNC03MHRTN2U8UUZjMDBkNFcjUy1KY2h1
I302dykyJCR0cHwjSmg0VDtqN093bTtKM2g3MCh1OyZeWFRqR0hRCnpVRHhWZSNHWjBTbmFuP2RF
X2E7VD49dGckSUpfdkxBZnNnem1JPVAhXkhGaV9nIzdKZDtSUnFwa0olMzVjXnB+Nwp6KTtrK1M9
KUAjWVJINUM8ZEp2KUBQWDVKQm12MyszbCpCalMzcTkjTDx8d28zISVSPzYkM24tTlU+bl9HTDZG
WnwKem8kNUVuYzB5eTZ1WSVlOXRjYUpuejNuRCgqKCV2cmdFbUs+SF91WTZKTHNAcjNYcnVtMjwj
bzR1RXk0JCNqLWBlCnpTK0JTP2Q+P3BjOXRIflYrIUdMMihHIyN8RStGVnN0XkthPnIwaX1rd1Nh
YXFETV5iQV8xOXg0djI7dTVLc1hAVQp6PDhlLXJhUkU+YDRMZW10SiptfVY1OTZXc2VjQEIhIVAy
JT9KJElgek5XTU1PQGFiMCNLbGFAM3BHZCZTMD1WbVIKem5MfXRuZD1rZ1UmaH5xSjtTLUprNnst
UVRTQ34renAkJSZ0dEl1WF5GRDcqQDNDWitTPnl6YWM+THlfSzRCPW9DCnp7NFRMSDklXkhBZWh2
Rm9TY0dgeik8VCUlYjx3dD94b1lpbWpLaF4lPH11fio5ampuZz9oJmUxazBRRig+ZHxeQwp6eDJh
KmkkeTk0QjdvTTE1XjF2VTBud3k3Vm9pISNjJklgO2xGX2w5YmFQYD9eVm52bUhVTEBaSUt4Syhr
eUJmUlMKekZVMkk9a30+djw9Nzh5QkRFRiozUTx1clZ1RntBT0dvWGsxTDdUP1BHWFRBLUVWPFdf
JiZpXjglKVc3d3U/Q1c5CnpsQVJKfiV0STU+SURQWVJDdUhuQT0+IWxwcl59NyFuKzQ4O2JGRiNY
a0ZWYE9ib25PNmdMfHtZJVorYmhPZ3VFRQp6eWR9flkrcS1iT0JJezZLO29KeWlVODdoa1NzRGtn
OHI9MVlRdUI5dktKT2FsREpfPk4yJXNWbz8lTE8+KnZ+KGsKelVJQk44X3w+KzF0SjZNY0tsZEUp
ZURyRjtBJEhBWVclOCorU0hqdT50cFh9YUtMUGppbCh5bl5Ga04tOz91WHx9Cnp5ZiliOGFYRil7
SzlkO0xCdj1JRkNAKEpgIUoxXmJMMCkwZ1JCIV9vKXFhYklUPjBJRkJlP1lFUz8heSk7aUItPwp6
M0g7Xmsrc0xyOyg2MmpOV2Nrd0JXbF44WE1WViRRLW8+QFhFYDJxI1R3YFg9XjBxYTNuWDsyYFZr
TFhONDVrNGUKemwmJCFqPV57R311PFlLU2xXRTZPJE9iKWV7SGk2WWdmcGwkOVBWSn5JWHZsR01G
OzRUd0FPPElae0IlI3p9OFElCno1fm4+b18ocjBHQWs8fV5WeD9LVUNtSDRyQCg1U1RXYzJsTzkx
bTxhOEszYTc+Y29CeWxNfTk/S21YKnBgPnxLdgp6PnRXQnRKczduN183Y3dFaVJ3fFFrSF9AKyoj
KXEtK3lrUCYjYjlVd2hiSkM7czZRdGBvTmRXaitSJW53XmRHY3UKenJvbCFNQVdWaWQ4I01Hd1lI
aEJCdU9HX2pvKCglN0tZMHE7JkUzYEhrUiNlIzNBQGtKUUdMalNWNTdDczVPSjckCno9MztBJmMl
YjslVG48fShEWFJVOSpDMClPUj5UO1l5RGN4QSNeUmNgfDBkI2JeJXpnMk9yZSlkI3BCPXRZSWo1
MQp6OzFga30kODxedG5WIUJqVGpWV2l1UGxfVTkpdHZPI0dhSF5xcTR4PkZgc2IwWT84e3trPH1z
RV5wNmlfX0RwcVoKekYlcUxfWW09T15kekdfbUcwMH1aeHZTUUNlfC0pNUV5aEhqbV5ZTWlwSzNZ
eXlrYUtfKGVnPUtXTXJZZEdWVU80Cnp5T2V3TjhNbWpOTWZeMkE/aG91aDN2K3VeQEMkZ0BrfWZ9
bDw2QyEqWnZXeV9tKzB6VShhOUtUMCEtTTw/SVkrNQp6a0ZmMXFQWj5MbTFIYlNIUSVPK3FxYXIt
QHpuIWF5Uj9OdlpGRFJ0RlY0TFI4dyVJYWhqPURGPmw4blFFVmBWWjEKektHd3ByZU15VjJHWjB5
c1pPVCluNk1vbiQ4Pkx0cl5TSH4qQ2g0U1MrPDZSc3NBPDt3bm9rfVAqcWY7JXc7PEZtCnpeKD1N
NW9mMDQoJm5LSW5Caz95aTQjfDYlVyhwZTlGcUQ/YlZ0O2JqKXgySlQ4b0UwI0JVTXAxTHokY2k0
d1YtNQp6KEJmP31ObHB3aVA8OCpGbzBWbk97UjcjRXIyYUJTbSZqXnRASExjWWhlejxWKlE0cHZB
Xiooblp4WihjRmd7SV8KelBAMjtvXiQ0OGlfdTFgemY9SkApa0JpTXZmKj4wbSViKVhNKF8/KDkj
ZmtaT248bXRST0NgRkNyUytsYGpwPHA9Cno/aW45QFVwViY/VGpeNzhhbkAja3VXVD9ZX002WXFo
O3IkfVIrUmhye2xgO1kpNFU3NzYoSzJQYXk7RG9ifFphSQp6TTVVbWNLfU8wR2d+dWpIPnE+fjw3
Mk5zfTs9NyV9eGA8aiQmZmhIPitSam0wUUNeJkM+bzgkRUE3eHFlIXV1ZzEKeih5Z1d3WkRCcGVj
d042KjFTTygxNVclKzVSVkxXY2x3YUg8ZGJuJkw+VWt5ak5UPWd3el4yTHAoYGB6Qyg1V2EqCnoq
PkhZJFg9QXNqKlg/ej5jNXBpUkdVViptKD9uQm5SbXQyN3lxXjBRUzBmUGh3e1phU1QzUmZAcit+
WGlGeks+Qgp6ZnREemRmOW5rUHo0PnI/Kllwbmh3UjR7e1lpez1tKldgNCNEVkwrbkMrZ3t3XiRX
biRYRD4mVjxsQF81elpsRE0KekhISEd+QXtudmQjKnFZRHJJS35CYztHUHpkJn5oTE9tK1ckNjdH
MkRDbUR+P256TXhabi1VIUxgcEYwdGoqS1YkCnpVcXhEUnZVdGIwS2VESTF4QiN4S280c2MzJEox
U3V4cUU7T2pTNVk1U350aVhtYGp3KFo2OERHXn5TX0xkYnU9SQp6bWhwMSNkVnNpI0g8SX5ybHs1
PCFBd28hOFFDaVIyJDBvVURVSE9JZXs8UihuSFgzQVBfbTdtOyphTERZPVR3OC0KeipVR2VNMGNS
RklhaWFPfXRBNXk1bGh3JjY0KSU4dSZCQD1SWUZ0OENrSHVZT3YzR1d2NDVsWUNUPnFOVXp3NHk0
CnpBSjEtMXU8OTsjQTlCPThMKmp1VEYwa0xxbXgwPXBiYVpHKGxaV3psZGx2STBzWnRmKnV6QnxD
K0lLM0RUNislKwp6QyE0UzFuTSZBKEpTQDtyYUBgMmdLbz8oI1h0YD5mYWRlTTJ4N2pBTEY5e2pI
X2JNKXAzQ0AoJE93WGY1IV4jXlAKektYWSleWndER3V7SU9vPWpTTlNsOTY8VmMySDhvSFhWYXZ6
Rm0we0duOXtLUytMJCpLeEEmd1heOCYhcmRkb25fCnpKWT5GfEljQk98UWJpaDM3MWNCMFFhRXd7
c3YmY25rbnNoZXdXWW9tcjlpSiphUkl6cnF0KT1OOUJzeV5iM00oJgp6RTFaQVYlOFdBfjk1fSgj
V2NvdXI0MChqP3V8aFNGLTY3UUY2bHN8Qk5lX0VSK0R4Q2JwRk12MVh6UGsqPXhTJXAKejFLdmU8
USRyVXA/YXJ9PSROXmBycU17V20pVz52QFp9dEFRYTxNUTQkIUdCQjFvaWx1NCNIUkQhRUA8Ukl6
eEFfCnpYJlZoemZDTkxuO3RwST5nQCgoRG1iSkxpNz8yamR6NGpjcGVUPzk3QnUlNk1OXz9aQT5r
SHo5YUNwLU0lRGZHcAp6PzxeJiRRfHltSWBzeGxyazJFYUgzdFZoeWh8VEVUJVN1YkNRZEhmR0hk
IU9HdDtUejlINDhUYGB8OD17JDM9aWAKekFNSm94a1N7fV8laVUxQDh8RjdlLWBDaHB5ZFNaZlhs
QzA7Kn1WVkJJa3EoYURraXNERTNJM3s4VCZ2d29zTHxhCnpKV1dPVlpRKVAtZCZvdXNSWigpNDd6
M0VAUX4tTSRDNW5uSiNzN0pnTns9dVp1S2xZTXR1VzZVWnkwYGY1O010OAp6Wk87YUQ0MTlWe2lI
e0FiQ0hMMnhLK2JELSVSSG1LenYkKEhDMm1CJCFINk94bU5nM1hTbylTIU9oX2xxZWViMDIKemlm
PU4+bFRDWUlLbGZAXy02LUBfPzUmSylfU0JOc3lMYytsZCZ8dnBXVyU/VmxhITxIREtZbzBFN3hj
NDtVM2tsCnppLUl6Pz9Kal8mQFZyRj0taXZ8Yj5tMkV6WVNYVWpsYG5nfXlFJnNLYmdEQmslZUQ0
VFp5WlVBaGFAeGtHM15JRQp6bGxTWlcpWl9ALUhMI3Z+aU9TZi16fmdmeUVIJjRCWXQkSzxDaj5Y
cDdLeCtCTT4tV1BkVHpIRXVAT3wkJU49bkMKek5TaShMT01BVnF5WHs0IWBKN3JWJCNlVn02X2pk
PmtSM1Z3X1EjMSY9cklIbDJoVyg2cGJTam1vUm9xbV5YP1lCCnpeWDVCTCllRF9sOUhuRXVNSkkr
cjQkeigxUD8tci0rYHEwVTlyNUx4R2U9VlljVUxpcjl9Q0x7OypTUk9HYDc+JAp6Q0Nqe312UWJh
dGQ8ZzRFY15IKzVtVE9aTVopKjl8anRvJjd5Z2VzT0J3XkRxYkgmSDZLYHBYWEtDKXs+XiVDa1MK
ei1RbW5QNFdmUjlKM3ZeJVImPlBRIU5LcExHYGNPbkEoV3t9QGB4Iy0+aFN1SEYtS1FSZVZ6N2Az
OHxaT0NLUm8zCnpCO2BrfnYtZWBPb3ZgQUd5bF5kYyoybThZN2VCcGwzek14al9adlBRKjJ+NWtt
ZV92VE9JdVlTdGZ4N3chUENPdwp6OSgzbUw3MXZPX2J+UnppO1khQDZHWENJe3lCflRKaVlAQE5P
PkI5LSRWVF5eWEp5aTwqWSZ8UE9GdDtPbH0+SkgKenpZNGojSF98Um1fcEYxeWRtNGU8RWgtXnVM
VWN+NEB5ZFE/bEk4eDA8S2Z5Pi1UMnc0YjQ/IzQzVnJzdGUxU1F8CnpnZ34mTSpUMnhtT3decGVK
R3NiTVBSc1pqZDlkJkpmT3d7KDd8VTZMaHwtN1VJSVU3U0o3PGQyb2lEfGV4UGEtcgp6KjBOUWlx
fnImYGpudHx+SiRTVDQ/dVp1b29QdHhMSWpXMyE2UEhwKWtORkswSyUoUTZyPUh9dEUwP1pRc1BZ
bkYKenZVNERoRis1RGs5QTRYNnJNV0B1ailTMG9KbUR3ZjktKG5oMkM9fVJnbVdeb2AlJHpYdn5a
ZzRFbUFpNTRoRy1sCnpGUiY3aEJXI2dwJUkjJjNSQWs+PjV0JngrVXBEdmokWD5WYk11X2JtbiZD
dnY1PCQyTlk5NSNkNXw8VlZNI3lBKAp6ejteTTBCV09qdXc5Z0hjQyVONUtHMEphY2txVktOYWp1
aWg3R1IxfDIxRCkjSz04VkxEc3RmK1Z4N0hILXZaZlIKemxOSDdNVTB9Ji1AXkdMbm00Um5UeFNB
QDxAM1MyeyFqV3hwI1kkRlZxOC1GQUxxMSQoPiFqPGJZcDwhJnQ1LWkmCnp7K3tYbGB2bzgjIVgo
YiNxYTcreztOakFDMG9XKEtsKTR4XjU8WVF3OUIofU4rYExtY3Mmdk5HNU9zUUBgUmUqYAp6RGZ4
fHdYWnxZSCZ3NDFBJExUNnxxN0VIMiVVTUZ8aWleVl5lKGkqPEppb09Sd1crfjBVfmVwQHhnN2Io
b1ZffjkKejE5cGBWeHVWaldrblBVMkZpcmZaYiprXiFPXiZjcCZvcGN2IyNARVQjKSNHUWk2SkMm
Qy1GbiNyYUtJVjZgbEpWCnorQHFlPHBPQyY7UXlXTVglQFpsTDZFKk8qaFgyZ3Z4Kk9CcjJFdWxQ
YVlzektJYmtfRmBJfTMwTD5JQDAoJGJlPQp6Wns8OTRSNFFKQTdLPDNAWVRaXiheSlhsPm9+PUtQ
KklJYmdXRiNYVGhEMEpPSm9sfiNvbDNzTW9gLU5jYG56SiQKej55STRkK259YU44SU5FaG9Zfj1G
I1BUTHRARS1QUl5DS0B5bn0pUCNuNjFhNit+KHIqJjlROWQkR1dsc1NyNUQwCnpQWCN1JDc+QXZv
SkNeIWJ0PjcpN0VhSUdHbVVvTFZELVBje3JMdUh+cn1WJnJqaVczPmwlOUEqNFZSbTJUPnVkZwp6
Y1oySi1aYFNxbHgmZ3Nod0Qtdm13Sj11flJDNWM4PHxVaVZxcyNTM2Q9T2o2ej1CY1pBZFErM25C
dTVBRCU5MkkKenZ5Q3k9K2JRbWZUVXFEcXVSXik9NzlxNUZCOFVNUnQhfnNEVF9VcjNZfTBOeTxa
SVFEN3JhO0VpSV9sZlJaPHpSCnpebWAhZXhnb3ZFcTJeUkNWPWc9MmB4NW5xX355eHdIN142SnQr
RnF9PEF9X3ByZn5jYEdua0MkJHIlPTBPemcxUgp6d2F9OD4+Yn1icnNrXmdIUzAkVFdNVjcjYjtY
MU1ENzlyantZeFA+aEN0P1A1IzZvQjY/RTFzeTwwRSE8MUBAXmAKek5zR2MxdFg7UVNnYG0yeXJV
bGlRU3VAVDZpKCNIbi0yJn02IytvajN5PH10MF9WS0QtIzR3YFZpY0MzNmQyTDdVCnpQSEwjY1hB
WXNvcz9VV1kxelZlSDtZRG0raTZvRUxQSCZTZDxTekhNLUNee35tQ3E7JXBxM3wmVWxPWS1lMHZ6
TAp6KG1aTW5ZYk5QZEp0I1Qwbj59JVVgRk1jd2g9c3N7RVc9e0hSVCtqYF9+eEJnJVMyWilma24+
Mk0+e151aXBybygKeiM/UVdiTFhQUlgxdXNVfnRLYTM1a3VSY3I0ZE5CfUhqWSF8Nm0pTDZQYE8t
ZEIkTkBaIWRYMlBKWFdqVXFKfSo8CnpuSG8la2BkdHNsO2Z3YndYYUApQHBQeld5VD5FR0BYbGdD
O3QtQlVoczhTMCQ9UXJzVi18MjdZTUpjeXgxYnFGVAp6PWRKJDhWZVd1fUR7N1BlWSk3ezVWclZh
QDBvUDN2SHMkU34qe1MhIXtOOEdGKmJgMEJyS1NyMkctPkJ2JDhTc24KeitGX2d0aEt8KWlOWEUx
dGolMGM5RCE7eX03dW1iO2RaUEtUQjtvdG8xej1mKHFmakJHcFVUWW5MfEJIbHg1RGMjCnoyUWsw
dWwzY1FgYFh2OVkmTCNDfXVvJClDZVRCNEF5WFk4b2h1WT1mckErdk5jdittVWc8a0JjN3hCflR2
RERZMQp6KWljNEdYRE99STc8dndeMSV3cz8xV1pOJjRXand4VTMwRmwzaW0oUTlKX34kRWpfOWxG
RExQaTJ+akYmKXdEYGIKenQyeE1Vcnw0WlBuKGRmTjVWb2A1PShhYzIqNSVKSnJsQ3QmenJER3Zg
fUcxU0hKb04/c2pyWGRlMGxgIWgpaHEoCnpldGV2YVlea0I+KlFee2BHc3E+M2Rwdno+VyteJFFq
NHQxWkg/TFdRbkRXJXU2d31hfD9JZTl3allJenFOc09ncwp6YntENTxaLTlNKzhMamJrKkMwKHFe
Snx7VWlDfStKbjR9VmRxTzwjaT1kaDxRenpNUCpjJX1GV0MzYDNfMVpRXkgKekFZRjJDQF9lXntv
ZnNIcmd7fmZKTTkwVnd3aDljekwlIWltYzsjdkdVUCpKIWptJWYrKytYb0ZuRCp7WDdWJitPCnpH
T0FYTnxKMCZ1VnF7R2JjZGswOTtUMFchZ19pYSVkblVEWnZsSWImSUluTTt3X2slIVRAfldXRz48
OHJNS2BqSwp6I3lvPW5QZklWTndCeUFJaWtgfl5pQ0I+UXFSfUFJZkg2TilVWVUmd1g9X2ZRWGtq
S3o7QHBJakYwemV8Oz9yMHgKenAlQzdXJXBfKEQpVDlTZEghfFA3bjA/IzZCNiRJUF9KU0xmV2Vz
LV40YSp2YWkrX2RSSTJ9RGBAaWFQNyV1MkM+CnomI3ViTDZJZkVGXlJAQD1Ub0k8eGR9cGhtUSZw
OHc8RjlXJG5FYWxldiFiZ2Y9IVdBfWxPX0VaIUs3PG1NfS01awp6YnZgeSoobX5lazheelpCUmlo
bnVneXxnJmJhcTxhOGArKk13eEtfc29aNV9kPDRNc1RnelEkMGFkKDVNQzwjTmUKekwlblFQY3I/
cmlkNmh+fiR7Q3lBeTw/eDxDWTdjSWM/RXJQU3MhbmMqZSYyNzZJMW16eWxQVSZgJm4jQTE3dTc8
Cno5dF5IN2QwV1pNLVhuVnlLbSF3OypKPjhyO1ReVUFsQ2VSdk0tYThRcEgqaCk4JSYjO09BRDg0
KmhuTjY2bl80awp6LWF7WFUqXzdfVmBNTlFHUDd+OHcjXmRmQzQtRGJzOW1SM0J5bU4mSThjZEdP
IWgjeUIhRGwzZzFFPXw2OHxYaDcKekAzekNmNWsyfmc7WHsxTzMmMDczQlpNSEJENHMyKUlne3Ra
aCg4NkwpYmA4NzhFXmhZdEROYXAtelB9K3M3NVBkCnpPNWVTPGdAaCEyRlZpRDY+WFchWXZIbHpB
R2RrVTI4XnRqbEg2KVhIXk1oVjVjIWpkKzZKM0IwUz95fmpGMzsydwp6e0RSX35QMnsxcXZzSHxe
elhUSUohKHk9KWo8aFZLYncxTmdZQkY8NyNoJTFCM0NybkdAK2h4b2BFPmhATGl3d0MKemR3YTBx
RiRUTGtzPD91VXE3Ui1QXys7YSpHa2RNRkFEJF9+QEZWR21AT2pnbjxaJkFwbEl1NDYtZilScmVK
UFF1CnpOaygwbyM2OE84eDchMG4/OFVNMld+TiQ7MHdjTCVEQjF3cXk8RjdSKXJZU21TUnhMTEE5
LT9hWDR7TTJ2NitMNgp6NElGJEY7NHNfbStaJVV5cXQ2QFFhSD8yQGQyM2I9TDBIe09FM3ZNcG42
bE5AUihaeWMrbDFYb2JyVU8kbDR8YEoKenU4KVY3T3AlM1chbDRwTnNoN0lXVjNNTUg5dnlEdTtU
Y2xHRFFJPWllO2ZocXZXYjNEbDJ9ejNYaklTcWskKiF5CnptWFVuSE1zNE5we3Ika0xrNTlmZFha
QT84KXlZTHEyQV5BTzdseVgmI304fVdiPGIjQitoIU1QZmZsRT5GPDg5RAp6bldgNSh8QXVnSjNG
JnhiRUhNRXZ4WURtMyk1VnhNMyhNJVhGcVluOFVmLWp3WndOOHx6T2IhbjhEfktIYiU3PUEKekso
dUlgSiopayNlZmolVTd+Vn4/aG1QcTh1YGA8YHBJYCVXNG98T3FzezxoP1NXYkVRREJIV2JlMmVW
aXg/Qmd3Cno/VXglOSlrTmQkdCZUUVZkYXNzRTslMjs2RWo/e3toRDZaZjkoPVV3WWFCPV4mISZj
KUJVbCNgTih5S2lRd1RwLQp6QHt8e00mVW8yO19aZ2lWSFEpTnNuYX0hdDlUTGd3UyVwKWB6VVh8
QDE0QyVHR1dnNzltMU5ZSzxiSTEjNm9xP1QKemhgNyh4aylzPjlsR3daQVk1OXMjKSZMfEVad0t4
cUVAN21ia3l0VlZaKiNFS0BWQ09YamlgPmhuSXlxJWw2QGtPCnpWPzM2Sj9jP1QjcilGbztnd2Q4
I3lKfHAoK043PH5yNUpqNSRGOVI2az1MJkVgUi1BfTw5Rz5SRGFUayRBTkB3TAp6dGdAQEQmUTFu
Uk1qXiNSPFB6O3JCMEZJXlp8PlVhXjx+R2JfaFFuVzR0U1FGZUt9cGUwSnY9bi1GcD9gaWohT2kK
eiVvamt0YDA+eStRfkM/ITRCSl9waCZWVVkhT1BXNzxjWXtqWGg3Uml0NCY8KFNxJTk0YjJ8bFE8
dGZYTShLeE9GCno1dllPZmsyYT02TC01Jn1oZ3V8MFZ6UjdtZ3IzK21TeUJ6fStyJDt2YzFLRHdH
Tmx5cENlMD9TU3BRa345YTY0TQp6U24zang8Pj1PQ2glO1F3QzJuNEhnUUsocSVmRWNUdWQzPE0l
YHhhV0g5WDI3KTdFNjdnei12P3RIYX5+ZVNrOzIKelN7SVc9TjVmYDFtI1hsWVAybkQhbEJWQFVa
anF+fHg3eVN4WGxvJj1NPl8wdzgyKSFQSTBZc1EwSzkzQ3tPfSlmCnp0QG4mamNFc21XaT0waXY5
fD9HOWojMmE+LWk9WmkoOC1zPzF+a0YmdT8hbndtM1NWU1ZDdExrdTcoa3ooUm11Vgp6SHh5Kk5V
ITc+fk1UJTNKe2tZZCljYW9uM0lpZk1GekUpNW5PYD9qVT5lWDxnQyN3MVN7Jj1pQmQtK3R4b3dM
TVUKeihOXn4hbnwoaDg5UWd6aChXSUM1VVByTnt3TT5GSXB8OXc1STsoIVR6VUN+QXdBM1ZnSXdL
ZzZNZUhiPVUhV2UlCnprbTxUKVNJRXlpNj9rZUkrdk42Y3lpU1h1ak07V1RydT5EPjEyOzxnNUds
R09JRFJSTHJ7ZVFOPlN8KlRDKUN5JQp6YCMkVUh0anZvZFNDSnt8ZmczWFB5bDJyQ1M9Z2Qycmgx
O0Zod2Q9WCUpVzF3X2M0TzJGbGpXU3gxaG85PyM/dU0KempTXmdTci0yRlZ3R088NVRRVUpHdkJy
NVBqP0BoWHdQUldSTG15dFIkWE1ZfF5nSSllZ1ltNCQ8UXlZYzZ0aG8rCnorJVYqPVNab0JadzFC
eXJpTHg3JSZPZG9POWhPTyNfVjJBTGM3QU9nLVhET3BIb0JTT1A+U3QrcFZ7SWApSE85eQp6Ulc0
RShlY0pBNCs/fE0jemEyfDN4T0tYXj9sWT02Vm1He3B0RCZqY0IrR2hFbjtseTVXMUM2XkF4VGwo
KX1gMHQKek8wKHF+SSZfUzhhIVpDVmZ3OyZgaHB9fkBJZGM2ZFIkfGNiRWYwQmd1Q09oTzg+ZEZl
ektDYmkkV2M1clc9KUNUCnpofVdNTTh7KUZHY3B5Rz9jODR+YnBnTDVnaSp8QkheTkx+a0RURyEx
XiVCS1N0WlArRjRVdDYwTmk4Ji1zJXJJZwp6ZDZjY19menMza3UmUG9Fckl6SXd5P0pqQmVFZTxx
WmVrXkYzbyF7YTZvb0B3VkBofGwmb3xNcjNjVWNsRjJEVEYKekBZMTtmK2ctfmVffSlXJXVeK3lZ
VD1YNWQ5YistKXRTVy11QzhmenVDWjxDKmwjNGwxISUzS3Z0MClXfFdeTjBjCno+VFlhMjVEbUJo
QEBpfWMySW5vYGdZQ1VZczZDPlZIN2cxMkFCO2RfKj5jMVUmTVAhSEBIRS0qclRmfCY7Kzhjdgp6
IyhuR2pyRj1KbC0yeFArVSt3Y3kwODI0JV4ra2k0bm9LeWFVd3ZqQTA/e3o1b2JAPThmYVhXR2k9
el81P3opbHwKem8xWkNgMmhLfE5feXNWZUxsdEY8QH1KNj5TLTFDc3A3Wm1YQikkJmtgUW0+KVQt
Y31mYyN0Nis4fSFJP3JwUlM0CnpTSXV4aik/e1o1XnhtR3hkVmEhfHQrPzwwSjw+aVNqWmx3RHBC
bUJKNzdhSGxrPDszRytySVoydWx1c1dpJG8oTgp6OSZrZns0d28wYXVfJi1XIUEjXn00NHR7eiRf
fmQzPjh6KGojaUohWSUyazRHcFMlVSNCMn1SSSlAciN9M0ZwUz8Kelh9OVo4MzxvWFZofD5wMjEp
bDhyVUZCRk9tfSY5dnYxQVJiUG8zKXtHSFc4RFl1JSUrOEw8Z1Z1cip7bCZrUks7Cnp4Sz1JRExw
ejg5SU5DcC1xQ1d+d1VSZiZlanl+X2MpO2l2WkotaHotTUR4UUoqYFZlc2ROJmBCMkw4RHk0KHt1
WQp6bV5uVCpzTU1tTjZraT0lTz99fG9sWTg0YjBncDdMcW5OfnwmLTEzUVhBPEYhYXFKKD9IeCtT
IWdIYUM1Xkx4M24KendfQ1kmP0o9Rih2WXg5Tz9Fe1dEUkdRLWxkOXZIOzg8QE5faFdwKWFfTjtI
VDJ8fXZqMmNlUWVUdHlEcTF6YTI/CnpfS0xGdVkxeTdfX185NHB3K0hNUEBGNVVLYVd6IzhLYTIo
MFRPYHo8RU8oU1hzMzIlUytYeDBQJWsyd2JeaTJHQwpMRkozcTJWKVRDaVNQJG52CgpsaXRlcmFs
IDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZh
cy9yZXNvdXJjZXMvaW1hZ2UyLmpwZyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL3Jl
c291cmNlcy9pbWFnZTIuanBnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyMDAxMmVlMTExOTMzODEwMTY0NjkxZWU4
YzI4ZjIzNmMxZDhkN2IKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDQ4MDEKemNtYlZOY3w0U0Jg
K3NJKDVRZF9MWDYmKysjQEtnfl59R21LNTwyIVpqTlBhdDZeU3ErOUVQJSNZPkJ+eWp0WWFxCnpp
ODNOdl9LX2BIaFlyNi1tVUkzJWZCZkZ9cDNuN00tfWAjTF93YClnZHo8YVA/R2I+KE5ZNzlZZkl0
OE0weygjUQp6UTVhUD4lK24xM2pFdzxGMDA1Vyg3Nj1sNmZgfVFrK1lwWVFTUkJOT2tpITVCXmJt
aiVlRERHY0tRUkUqSyNte2EKei15ITBBOTU0ZSE9STI8RDROeEp0cE9fMjg5V2tCJmR+ZlYldG1y
PDU4RzxwdSplfVIwenxZNEtJQlJaZGMtQlMkCnpoZn1+fHV+LT41SCNhNUZnR2s7KiQ8ZlViPnh7
KkBWc1EjUGN+MCZvK3gwa1VvVXt5cCFeKzYwVjNrI0hAJlkpbAp6aW1iQVY5MVp9KVplO0VrM2F6
PTNlU20rRDc1Y21BU2d+Q1UhMm0hSzAzZzhKYTRaZ29PQGkkVWZLcnAtMlk0VkUKenZkZSkmVjMx
XyFMQ3lzdDFZcF4lMyVYQUhKSEFiWD9aO3NWQkshYSZpNDZOPVZhSkchMmJpQ1RfYDViRCg7bnNv
CnowMyExcTxeVkN2MGJoKUdgKTU3aXdfJkdxX3ZARnpWc2p5VGR+bmZvcTVHMiM8bVNRLWFRWStl
Z0ZNUVFqX3ZXbQp6aDBOUXsxS0M7cXlqe0lKOHdrayVONnZpYzkpQmtlYHYtO308a1plKipvJlY0
SWdKMHt7Nmt+QHpRJnpBYHg8dkoKeiVSbCg2ZWA1ZlU7fDVAQ0RqPGEmRz1fZyRgRzFSbi0yRns+
Nn5xRmRVRTE/ViZ9KUlWKHteTzskTV5iPkJAbm8xCnpUaiZfPj57dFFOY0p8Nm9DZz8hVjBOVHow
Znx+NX5jaD9AQUkjPik/XzBQRVZQSkRNPmNIJWh6fEdeeTlmTnctVwp6K3hhZVAqS14obnkkZmlC
LVRwcTh0ejw2X0lzbWRnME8kWnJqRW8zSTF8fGRvIU9ZQ1chcGc8UWRndUA8JiozOVQKekUofFh9
QUJHbz03NyZwWjZBKEhuajdFenFOfVI7WCRqUW1eaXoleHM7bmJ2TTwjMFBtQWs1Nm50Y09AcFkt
fWk7CnpBWCpValUkXlo+ZlJoUEcyWGJLJEFwcHQ9ZnBKMiVuP1EqR2dhUHVpP2JOJXxBVyNeYmZm
MiNQJXlJfU1raW5ZPAp6MClzKX1GYWAhVnhIT1FmO0NsZWgkIzdVdU13e2A3bklsMzcmeE1PaGUj
aih6cnM1VTFgVElvP1MqTCYtJXEmTmIKenA/RypqUGwkPDJOWHA0OENATHdkPSR6SG4oPkV8UXZO
JiZQV28+aTgqNGYzPyZFM1AoRD07V0hCczQ2WDVQa0YzCno/VT5qKmFtMUFTc2M4Pz1HY3E2TDxy
ZnFfZXAyLUdkMVYjM3h+NykkO2BOKVI8YCF5ZVRZR29VaG1YQ3F6RUF6NQp6VSZoOEtDYTAhbj11
NiswUzYwezd6eUc8aHFZRkYoeVJ5TE56dnwpeWJ3U345NyN5KnEzanooQDV6WXhgNVJfcCYKenRa
anlIIzIqcERNS04pbU5xJClJaWRrNkplMzlFSjs2Mk14NXhHJihyNSROTW1IcSNPLVQwckI5U0hr
ZFMza2ZDCnoxMi1gemoxJGxWPSg0fFBqb297aGt3PUNqOUk5Izs0RH4kWTlxdmFFJSp8N0BxV2h5
N1RPPTQlKWYycktWYjdwUgp6aTNIN1RqR2pSdTZpVUc3KnhIUzcmYntJYW4hRzM1ZUh9VDxTSCsk
K0M2e2xlNiY8SkM+Q3EqM08lNT5vcXVjRGUKejF4SjFHb0wydEtGYTdCKXV3a3dTPHc3YTk+cktv
M2xeaEVOKHZkMkBWUjwzIWw0KklFSWI4d0FSKmtCUlQhZWRuCnpsdlpCTmxZSG5fUnBeJSNqcjtE
SUEqY291Uyo8dyhlU0NOSFhaSil+eE4zcG0jYH1kSVB0LURqR1hefGRffSZ9Vwp6ZURBWVUzWlla
cWEra1dVZVErTyZVbU5NKzIlaTEzZDtMcEZjfTtLcHozaUUmc1hJbVhETyhMdTh5fDg4anhCTCgK
emRWSlBMJD9HMT0rTyUqKDJUaFIpPTtXX341PU42JSpNeHQhYF9VVDdAfCt9RypKOyFlJHVpfF49
UHM1PighZDF7CnoyeTwoK0FNMztELUhRIU5iTD9nSyFEZ2dwQilnVG5iJUp0KjZqTEI9WGZgKkxe
REcrYUB4SiU7b2x+dE1PPn1qLQp6PHI0UUBOU2NkU2Y5O29YZTk4QHBsSkEoWHFBKEJhVEZMd3wr
dmgkYGJgaGp1K2laQyR5LVRaWXN+ekVeWmc3cTsKenhkZyNaY0dJelFpKkc0aiNxUms5cEhDe0tE
b3lMS2dsNUkkbThtV31JUVN+V3lHRzM+ZDBkPTFQa2RnRE0wTDA9CnomWmA/KVEwVXJKbjZPNjFW
fFRRNUR4MV4xOGt9U1d0amp4SUY/QDExbSR+TXVtI0EpOUwxMiMjKG50fWlLSEdWdQp6eHJQb0FI
QzQ7WnhaKVNxO0ZSeno7KlROJlh+Tk5+Z2c/fUFyb0ZYaW1zJj4pWU5pU2lALUFXWUs4YXpOSjM2
Wk8Kekw4WUBRUFFPZkNqVjRYUF4kZElYJHleTl53YHsjKVRHO3dAJHAzZ15EWWBebmxLO0BIJV5G
dDdURkljUDR6VjRFCnpQMWpVdjhTKjl6T1c5bCNhJGVIfiZ9cWQ5aExscj1MX0BvPWN0dUQrYWFW
OEFIc0JkPFVLT0RDPmNNY1NQa1hjVAp6WSkzJW4jNDdYZz07YllMbiRARFU5QGtqc3MhRHthY2ly
MHtsMm5NdEt6RylmQjNfenphMXJyJSNAOyV7YEF9WUMKelo5bCVUUlFXdjlmSDB8XmNEbmFPZndR
JVZTYkJab0YkdG1TdVBhbyFIe3B6MCh3ZSo8RGJRYztwclkhK1VwND5nCnpFeWRAfFF1fU1UZUJY
cDlwUE4oYWd3cXIkRnt6WCZmZ0J1NUJ2Z3pIRDN0fDZNVH1xUm5iN0FpPkdUWlIkVWtANAp6YmZV
YWA9Sn5iME9EUk5NQmBmJWV7eUV2NnhFVkZ3ZntQYW9kQyR9X1c0dVdldmR4SVF6VGthNlomI0BA
JEFKOD0KemRMdDY4YXhLYnBtUzZpWC1ufCo0UEZTK2ZVQSktRj5pYS1nRyNxWk5UNn49RGs9djwk
aFgrR2ZvMih9MUFkTCZvCnpoPXlCSVN7Tkx3QyhIK3Mmfm0tOStoZjFGMzJ5X1h8N2tsX3lBX1A4
d05lc3FtbU99ZnQ5ZUdMeT9YX0opR2lubgp6bXNWb195RSQ3XnUkWDQme2ZaeHZzVjJSRlZ5Qkt3
e25abjl5QD8qNmpVTE57U3F4UDZReC1UVnI8Zz4+I053dF4Kelh0TCQwNW1ufGcqQ1RxKiVWKGJi
YUJXdGBaTD1oPk1US15uazlUQVJVY3NZak9QNzlASGpnSkV4IT82YSopKzw2CnpoNlpVbWtVIW49
bHRQV3h4Ui1kbXReNmVsendGYzJhZTtFPkI0eCRHX18rPXl7fS1adlVlUWAxVUcwSnFfOz4ydgp6
VyY3NDVSTWgkSXtSS0Q4Q0tLYnBqWEk8WDdUPVJPbHBJb3hMbCYpO2c8OWorPUMxcWFXdjxZUkV0
RVpIKSFCMHoKelRpSEh6Wk1EKis+aW05I2AoS3JjVXpBTGczXysrbEUwP3teM00hWkhvMjV8MGh7
byQ5JmJLYnZQTF5qS3kxO0hnCnpFJTVVJHtvTnUzJlhIRldYZ0JuakJCO2o3dytkYzlzcWFNbytU
Pm9qZEZufj8/SmRFbSoqUy0lYldWVH50NGJxJgp6emxQbD9WTD5keFRGV25AYG1pIW9xdFVkLUl2
PlhDVH1ISDcrIXF4MlF9S3M2dEVMS3FOd048ViZwbTd2STEpV1gKejtmZHU7PjM8PHEzS2V5MG0j
aUNDXkVhSCF2Vkl6LSRIanwtYSpjMFRyPThJO1oxZj8tdHEheEQ9cnwxM244NV92Cnp5cmJ8WV9g
ejdpNFgjJDRRJUgzaWNZeyttJHZ5IVJfeU1eUjUkc0FBVkl1aDUlVXR9cktaTkB1WFZUUk9ZcTI1
Pgp6P09TcVJaPmBQSCEmS3x9Xm97dEV2QCVBR2ctRH48Sj9EPnEqS1QzdnU2I1FGc1lkJWtyZXde
PShpWig7dn4jSzcKejluVXIpRVM7d0EjY2BBaXJXcTljbHUoKWMqb2N3ZiVwR3BwRjhrZmU7bCtm
SDBtaVVKbUJ1REZBPnktZ1NKX2g9CnpoM2V8MkdAT2dSR04+QTgmeV5Ke0pkLShqYHNMKl9YN1F8
Skptc2RHdH1zJSh3YWpxWGk0KnB4YGw4WXpaRClwfgp6cU8hZ2BRJHM2RSQzXihnNGJgfiZSfWh1
UTNjP2ZVITUxeFZlZlpxNGxGd0hmKlo4cT1UbzFBKGBLazh1SSZPU1EKeitRaj5xckR9Yn1mWkFs
O2ZLa1JmYSkkUzd5bDx+aSpJLXV4QS0zfX5leCtQdChlfV5HVG07JT5sYV5tR2E/ZTJICnpNeSlJ
NUx6bWB+UGN6d2E/MiQ4MW5VbHs9ayRYfVJQMkNIPEF9ZnROQzVPXzQ3PTwtJjE/eV48Vjw+Uzs2
N0c9NQp6aEk/IWc+XkRnY2k5WSRpZSZzMF9kVllMVGl4S3lfO2pYRTE8YHAwXiRjXkchbDs9OTZY
UyRweDY1bDx4R04lX2QKejltJkVoNiF7e1ktKiMrJVNUTylnSFA7fjFqM1BybURVSHhEM2NQd15A
a0gtRGhVMENPRVpZRnstNz9keSt0NzZaCnp3flNGJnRCPDEkNXZ6fkF1ZzN+OGclNVZ2RUMlVlcy
OGxSTmg8cXZMS0JjY01pYXtFfTspNUZKWjJDN05eUFd4LQp6S1UrMWJTc2lgKGojWX5mSWIqa1NX
Sj5vdUw2KCNST0hPPTQ0aFcyMVllU2wmWTFYUGh5a1RSJWNkQXJJK2dJQjwKenltNE9fbDB3JSY4
TmM5eUJfV202aX1qV3pFKDxASUNTVE18XmlBPG0hRFA+RDxsI0tPQns4PldJbn5kNDF1NkoxCnp5
c2NQMFE2VjR0RTtkPml5KTt6YVdreXQ8dkVoQmxfJnV0UlcjI2Q0dCpPRnRiKDU2RkMkQEFhSio4
UnV2Qmh9aAp6N1Z3YnE9QihVeVkocHtERn1LLVZoeXJoajlMP0FuWitvT25AMT45O01Vak56Uk0p
fDZwcVQzOWVkZSRGd3s1NjAKelI3SG9JZWE/TkAyZm95diRiaipnY2JmbVBVciFkRyt1JEFBeXIy
V1FRfWQ5SGFQfUp7dzt9Km85THJvMnJfVFJMCnpYOSVjJUA4ZHI9RSZkbEl6ZjB+JipPK2RiVkQw
NSsyODMpZlJkWnN0Qmx0bF9iKkJrfG0zRUA5UTZ6WV50ZSFYMgp6VHxzYTw5KXFWTztKYiFVckdE
X2oqe0xmbDdANio4dDJPK2RAbGJ6anpffW9aZ2g9I21wS0VNa0tzXlpZKjBufFcKekgzQio5bCNj
TV9mYXxjPT50KnB0alFDYGA+Wit6O2JRWVJqPlpENDJ2KU57JGQ9R2FgYXMjOXpraSp5ZXJ1b0M/
Cnpndnt5SCEkJipLIUBvUn04KXBtVUx4P3N1MlJZZTM3ZWcqcTY5KGhMTCRKfiZQP3FBZG14SXop
KTdRdWtJaXpANQp6P3tRZ34jdCEmcS1fVCttI009ZFo/NTkrRVFIN3tJazQ7amVvKyRXVD4+Pk1j
UHgkKiZDTWczWTxuYVFuJlVxUjgKeilydDlaR3BwcEc/LSohYj1jdihiJDUoMUo/UTVHU0NqJHIp
QntAdDJfUUwtMmdZLTRCKm5gNSk5M34tclFlQX1CCno4TVIqYlZMX2o3Uk9NIyM3cCpNcF96I3dr
d0VkPG1QY3RvdFlANy08RjArdGQ7dzVwJXgwVUY4VE8jR3ROfkdgJAp6LVN5TzA2KThfIW5oeGk+
SERKLXBKP2gxWWYhNEtLPmZ3MXBRU2A3fWt8X2MxPylCQmApcHN9dkQ2PFljdGNffSUKelFsQmxM
cHteI3Z3fUdRRnZ2emZ3QEJFY3Y0RnVIcmBeU3xmWWJyWUYhfEZAUUJhbkxwWXRORE5uNy1fYFMq
bT1LCnpMLXUrJUR8Oz1ocVdzTF8mOUg4TENzUT9SXn4pfXV1fihRZWtRTX1ZRH02cSlEISlha2Ft
R0Y8aFEkRTlTcWFJZgp6QlRwWns9NDB1Mk87JS0/SWkqLX08SXdVZV4jdTI2JCohalprQlQoME4t
T0tkeXN4JGFvJkpvYD55cygzciFRVCsKeiZpRiYhWWVAekJYNkRFVG55UXhBe0g3SG00Kmk/V0lj
SjlGUWVuc2soUlJha0tJeSMxPjA4ODI3NUtXP3kqIWVvCnpEVmFxS0VBdXJhUDVkVTdNcy1NaS1g
PHhISX1fYllOakk1Y1M0byohdSh3P0pCYVVUVi1RdGF+Pz01Szd2aT0+Qgp6UGs5fHd2cERpMntZ
dzM2XllEU3B3QFgzNDF5eDNXajQ+TEl0NTB+NSNvQHlsKXc9ZjdUS19ONiRecmlOYSZaSmEKek0x
ITJ8QUs5SiUqI3c0PG48O3VLcXwhUjhoVUQ+SFB3X1FDTypTQUE5cyptelpAJS1ZZ19taEpxVE5l
Rk1yZj9yCno4RCgjM2IybD9oViZwPSpqSEhHNjlpK3h2bWBBRWpSQWBGQTAtZ0hiR3NWai0qY1E+
akhPZCpreWB2PVlXdkMmSQp6UnUpKVdneGA8OzhlbF4oKTVVKXJ0U3M8SnhNMEd5THtoUWw0QjBG
YmFuNU9JYHtEN1o+aCV2aiVRWUdLbCs5VEUKelYjYEZ2aG5LeCVxaT9sUThATWMqSiV5Zn00cUVB
YVQrPlpDZVZCdlJUS31XP2tOM0srWFFaOyh7UldqY3ZyZzN8Cnp5cVY5T2BieTBScG1aOX1eflh0
aEV0b2xPa2VWTTtZZlBmPkBkNnQoPCpeZ3xFX1ZWYFBxJVdKKihGXnpzQjE4aAp6NkNZWE9EV1N5
NUR5Vnhyc3hCcnNuP3tnZ01wNmV7Z2BIMSEjTTNUeCQ0UkJtK3BsN0JqQ3tqSyV5YiN9dz9GK0sK
RD9HQVRfCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCg==
</data>
<flag name="commit-queue"
          id="429075"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412598</attachid>
            <date>2020-10-28 18:06:59 -0700</date>
            <delta_ts>2020-10-28 19:15:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217506-20201028180658.patch</filename>
            <type>text/plain</type>
            <size>98467</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQ4OWVlMzRlY2RiMzJl
OTAwOGNjMmY4OTEwOTFhYjhlMWZjYjE3Mi4uYzk3Yzg1ODgyMzkwMjczY2E3YzVkMjA2MGYyNTRh
NGEwNmVjN2NjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIwLTEwLTI2ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBb
R1BVIFByb2Nlc3NdIFBlcmZvcm0gaW1hZ2UgZGVjb2Rpbmcgb2YgY29sb3IgZm9udHMgaW4gdGhl
IFdlYiBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTc1MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0OiBmYXN0L3RleHQvY2FudmFzLXNiaXguaHRtbAorICAgICAgICAgICAgICBmYXN0
L3RleHQvY2FudmFzLUNPTFIuaHRtbAorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAg
ICAgKiBQbGF0Zm9ybUFwcGxlV2luLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtV2luQ2Fpcm8u
Y21ha2U6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2oveGNz
aGFyZWRkYXRhL3hjc2NoZW1lcy9XZWJDb3JlLnhjc2NoZW1lOgorICAgICAgICAqIHBsYXRmb3Jt
L0ZyZWVUeXBlLmNtYWtlOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJD
b3JlVGV4dC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmJlZ2lu
TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmVuZExheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpkcmF3R2x5cGhzKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpkcmF3SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdHbHlwaHNSZWNvcmRlcjo6Y3JlYXRlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdHbHlwaHNSZWNvcmRl
cik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpw
cmVwYXJlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpE
cmF3R2x5cGhzUmVjb3JkZXI6OmNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnVwZGF0ZUNUTSk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVGaWxs
Q29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRl
cjo6cmVjb3JkQmVnaW5MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJh
d0dseXBoc1JlY29yZGVyOjpyZWNvcmRFbmRMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6Y29tcHV0ZUFkdmFuY2VzRnJvbVBvc2l0aW9ucyk6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpyZWNvcmREcmF3R2x5cGhzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZERy
YXdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29y
ZGVyOjpkcmF3R2x5cGhzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6RHJhd0dseXBo
c1JlY29yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVj
b3JkZXI6OmRyYXdHbHlwaHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpSZWNvcmRlcjo6UmVjb3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlY29yZGVyOjpkcmF3R2x5cGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpS
ZWNvcmRlcjo6YXBwZW5kSXRlbSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6YXBwZW5kSXRlbSk6CisKIDIwMjAtMTAtMjggIENvbnJh
ZCBTaHVsdHogIDxjb25yYWRfc2h1bHR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgZGlh
Z25vc3RpYyBsb2dnaW5nIGZvciBwbHVnLWlucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggYzRkMzM0
MjlkYmU2YjBjMjBkYTc5MjMxYzZiMzNlZmM4YmQ1Nzk2Mi4uNTYwZGU1MDRmNjZhZWZmMThhMGU2
MDFmODQyMjZmNDNjNzRiOWMwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMjAtMTAtMjYgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbQ29jb2FdIFtHUFUgUHJvY2Vzc10gUGVyZm9ybSBpbWFnZSBkZWNvZGluZyBvZiBj
b2xvciBmb250cyBpbiB0aGUgV2ViIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzUwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaDoKKwog
MjAyMC0xMC0xMyAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVtb3ZlIGxlZnRvdmVyIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3ggc3VwcG9ydApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKaW5kZXggNjg4NGQwZjg2ZDI5ZGMxNDkxNjYxMTdiYTVjOTY0ZDEwYjMz
YmRkZi4uMjgwMWFkNmZkODVmYzM2NGU4ZDA2NTE0NDkyMzlhNzI5MTU5ZjRiMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCkBAIC0xMjM3LDYgKzEyMzcsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1F
V09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvRXh0ZW5zaW9uc0dMQU5H
TEUuaAogCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmgK
KyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhz
UmVjb3JkZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dERyYXdpbmdDb250ZXh0LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RJbWFnZUJ1ZmZlci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0SXRlbXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvY2cvQ29yZUdyYXBoaWNzU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9D
b3JlR3JhcGhpY3NTUEkuaAppbmRleCBhN2Y4MmI4NjFiNjJjNGFlZmI4M2MxODExZDU1YzdhZjc0
OWU2YjkxLi40ODBkYjliMjhmMDdiNDE5M2RiYzgzMmRhN2EzNWU2NzE3ZDE2NGJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaApAQCAtMzgs
NiArMzgsNyBAQAogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAorI2luY2x1ZGUgPENv
cmVHcmFwaGljcy9DR0NvbnRleHREZWxlZ2F0ZVByaXZhdGUuaD4KICNpbmNsdWRlIDxDb3JlR3Jh
cGhpY3MvQ0dGb250Q2FjaGUuaD4KICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dQYXRoUHJpdmF0
ZS5oPgogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3NQcml2YXRlLmg+CkBAIC01
OCwxOSArNTksMTIgQEAgc3RydWN0IENHRm9udEhNZXRyaWNzIHsKICAgICBpbnQgbWluUmlnaHRT
aWRlQmVhcmluZzsKIH07CiAKLXN0cnVjdCBDR0ZvbnREZXNjcmlwdG9yIHsKLSAgICBDR1JlY3Qg
YmJveDsKLSAgICBDR0Zsb2F0IGFzY2VudDsKLSAgICBDR0Zsb2F0IGRlc2NlbnQ7Ci0gICAgQ0dG
bG9hdCBjYXBIZWlnaHQ7Ci0gICAgQ0dGbG9hdCBpdGFsaWNBbmdsZTsKLSAgICBDR0Zsb2F0IHN0
ZW1WOwotICAgIENHRmxvYXQgc3RlbUg7Ci0gICAgQ0dGbG9hdCBhdmdXaWR0aDsKLSAgICBDR0Zs
b2F0IG1heFdpZHRoOwotICAgIENHRmxvYXQgbWlzc2luZ1dpZHRoOwotICAgIENHRmxvYXQgbGVh
ZGluZzsKLSAgICBDR0Zsb2F0IHhIZWlnaHQ7Cit0eXBlZGVmIENGX0VOVU0gKGludDMyX3QsIENH
Q29udGV4dERlbGVnYXRlQ2FsbGJhY2tOYW1lKQoreworICAgIGRlRHJhd0ltYWdlID0gNywKKyAg
ICBkZURyYXdHbHlwaHMgPSA4LAorICAgIGRlQmVnaW5MYXllciA9IDE3LAorICAgIGRlRW5kTGF5
ZXIgPSAxOCwKIH07CiAKIHR5cGVkZWYgY29uc3Qgc3RydWN0IENHQ29sb3JUcmFuc2Zvcm0qIENH
Q29sb3JUcmFuc2Zvcm1SZWY7CkBAIC0xNzcsNiArMTcxLDIyIEBAIHN0cnVjdCBDR0ZvY3VzUmlu
Z1N0eWxlIHsKIH07CiB0eXBlZGVmIHN0cnVjdCBDR0ZvY3VzUmluZ1N0eWxlIENHRm9jdXNSaW5n
U3R5bGU7CiAKK3N0cnVjdCBDR1NoYWRvd1N0eWxlIHsKKyAgICB1bnNpZ25lZDsKKyAgICBDR0Zs
b2F0OworICAgIENHRmxvYXQgYXppbXV0aDsKKyAgICBDR0Zsb2F0OworICAgIENHRmxvYXQgaGVp
Z2h0OworICAgIENHRmxvYXQgcmFkaXVzOworICAgIENHRmxvYXQ7Cit9OwordHlwZWRlZiBzdHJ1
Y3QgQ0dTaGFkb3dTdHlsZSBDR1NoYWRvd1N0eWxlOworCit0eXBlZGVmIENGX0VOVU0gKGludDMy
X3QsIENHU3R5bGVUeXBlKQoreworICAgIGtDR1N0eWxlU2hhZG93ID0gMSwKK307CisKICNlbmRp
ZiAvLyBQTEFURk9STShDT0NPQSkKIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTE5Myw2ICsyMDMs
MTIgQEAgc3RhdGljIGNvbnN0IENHU05vdGlmaWNhdGlvblR5cGUga0NHU2Vzc2lvbkNvbnNvbGVE
aXNjb25uZWN0ID0gKENHU05vdGlmaWNhdGlvblQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykK
IAordHlwZWRlZiBzdHJ1Y3QgQ0dDb250ZXh0RGVsZWdhdGUgKkNHQ29udGV4dERlbGVnYXRlUmVm
OwordHlwZWRlZiB2b2lkICgqQ0dDb250ZXh0RGVsZWdhdGVDYWxsYmFjaykodm9pZCk7Cit0eXBl
ZGVmIHN0cnVjdCBDR1JlbmRlcmluZ1N0YXRlICpDR1JlbmRlcmluZ1N0YXRlUmVmOwordHlwZWRl
ZiBzdHJ1Y3QgQ0dHU3RhdGUgKkNHR1N0YXRlUmVmOwordHlwZWRlZiBzdHJ1Y3QgQ0dTdHlsZSAq
Q0dTdHlsZVJlZjsKKwogI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKICNpZiBQ
TEFURk9STShDT0NPQSkKQEAgLTIwMyw3ICsyMTksNiBAQCB0eXBlZGVmIHVpbnQzMl90IENHU1dp
bmRvd0lEOwogCiB0eXBlZGVmIENHU1dpbmRvd0lEKiBDR1NXaW5kb3dJRExpc3Q7CiB0eXBlZGVm
IHN0cnVjdCBDRl9CUklER0VEX1RZUEUoaWQpIENHU1JlZ2lvbk9iamVjdCogQ0dTUmVnaW9uT2Jq
OwotdHlwZWRlZiBzdHJ1Y3QgQ0ZfQlJJREdFRF9UWVBFKGlkKSBDR1N0eWxlKiBDR1N0eWxlUmVm
OwogCiB0eXBlZGVmIHZvaWQqIENHU05vdGlmaWNhdGlvbkFyZzsKIHR5cGVkZWYgdm9pZCogQ0dT
Tm90aWZpY2F0aW9uRGF0YTsKQEAgLTIzMyw3ICsyNDgsNiBAQCB2b2lkIENHQ29udGV4dFJlc2V0
Q2xpcChDR0NvbnRleHRSZWYpOwogQ0dDb250ZXh0VHlwZSBDR0NvbnRleHRHZXRUeXBlKENHQ29u
dGV4dFJlZik7CiAKIENGU3RyaW5nUmVmIENHRm9udENvcHlGYW1pbHlOYW1lKENHRm9udFJlZik7
Ci1ib29sIENHRm9udEdldERlc2NyaXB0b3IoQ0dGb250UmVmLCBDR0ZvbnREZXNjcmlwdG9yKik7
CiBib29sIENHRm9udEdldEdseXBoQWR2YW5jZXNGb3JTdHlsZShDR0ZvbnRSZWYsIGNvbnN0IENH
QWZmaW5lVHJhbnNmb3JtKiAsIENHRm9udFJlbmRlcmluZ1N0eWxlLCBjb25zdCBDR0dseXBoW10s
IHNpemVfdCBjb3VudCwgQ0dTaXplIGFkdmFuY2VzW10pOwogdm9pZCBDR0ZvbnRHZXRHbHlwaHNG
b3JVbmljaGFycyhDR0ZvbnRSZWYsIGNvbnN0IFVuaUNoYXJbXSwgQ0dHbHlwaFtdLCBzaXplX3Qg
Y291bnQpOwogY29uc3QgQ0dGb250SE1ldHJpY3MqIENHRm9udEdldEhNZXRyaWNzKENHRm9udFJl
Zik7CkBAIC0yNTIsNiArMjY2LDIxIEBAIGJvb2wgQ0dDb250ZXh0R2V0QWxsb3dzRm9udFN1YnBp
eGVsUG9zaXRpb25pbmcoQ0dDb250ZXh0UmVmKTsKIGJvb2wgQ0dDb250ZXh0RHJhd3NXaXRoQ29y
cmVjdFNoYWRvd09mZnNldHMoQ0dDb250ZXh0UmVmKTsKIENHUGF0dGVyblJlZiBDR1BhdHRlcm5D
cmVhdGVXaXRoSW1hZ2UyKENHSW1hZ2VSZWYsIENHQWZmaW5lVHJhbnNmb3JtLCBDR1BhdHRlcm5U
aWxpbmcpOwogCitDR0NvbnRleHREZWxlZ2F0ZVJlZiBDR0NvbnRleHREZWxlZ2F0ZUNyZWF0ZSh2
b2lkKiBpbmZvKTsKK3ZvaWQgQ0dDb250ZXh0RGVsZWdhdGVTZXRDYWxsYmFjayhDR0NvbnRleHRE
ZWxlZ2F0ZVJlZiwgQ0dDb250ZXh0RGVsZWdhdGVDYWxsYmFja05hbWUsIENHQ29udGV4dERlbGVn
YXRlQ2FsbGJhY2spOworQ0dDb250ZXh0UmVmIENHQ29udGV4dENyZWF0ZVdpdGhEZWxlZ2F0ZShD
R0NvbnRleHREZWxlZ2F0ZVJlZiwgQ0dDb250ZXh0VHlwZSwgQ0dSZW5kZXJpbmdTdGF0ZVJlZiwg
Q0dHU3RhdGVSZWYpOwordm9pZCogQ0dDb250ZXh0RGVsZWdhdGVHZXRJbmZvKENHQ29udGV4dERl
bGVnYXRlUmVmKTsKK3ZvaWQgQ0dDb250ZXh0RGVsZWdhdGVSZWxlYXNlKENHQ29udGV4dERlbGVn
YXRlUmVmKTsKK0NHRmxvYXQgQ0dHU3RhdGVHZXRBbHBoYShDR0dTdGF0ZVJlZik7CitDR0ZvbnRS
ZWYgQ0dHU3RhdGVHZXRGb250KENHR1N0YXRlUmVmKTsKK2NvbnN0IENHQWZmaW5lVHJhbnNmb3Jt
ICpDR0dTdGF0ZUdldENUTShDR0dTdGF0ZVJlZik7CitDR0NvbG9yUmVmIENHR1N0YXRlR2V0Rmls
bENvbG9yKENHR1N0YXRlUmVmKTsKK0NHQ29sb3JSZWYgQ0dHU3RhdGVHZXRTdHJva2VDb2xvcihD
R0dTdGF0ZVJlZik7CitDR1N0eWxlUmVmIENHR1N0YXRlR2V0U3R5bGUoQ0dHU3RhdGVSZWYpOwor
Q0dTdHlsZVR5cGUgQ0dTdHlsZUdldFR5cGUoQ0dTdHlsZVJlZik7Citjb25zdCB2b2lkICpDR1N0
eWxlR2V0RGF0YShDR1N0eWxlUmVmKTsKK0NHQ29sb3JSZWYgQ0dTdHlsZUdldENvbG9yKENHU3R5
bGVSZWYpOworCiAjaWYgSEFWRShDR1BBVEhfR0VUX05VTUJFUl9PRl9FTEVNRU5UUykKIHNpemVf
dCBDR1BhdGhHZXROdW1iZXJPZkVsZW1lbnRzKENHUGF0aFJlZik7CiAjZW5kaWYKQEAgLTI4Niwx
NiArMzE1LDkgQEAgQ0dSZWN0KiBDR1NOZXh0UmVjdChjb25zdCBDR1NSZWdpb25FbnVtZXJhdG9y
T2JqKTsKIENHU1JlZ2lvbkVudW1lcmF0b3JPYmogQ0dTUmVnaW9uRW51bWVyYXRvcihDR1JlZ2lv
blJlZik7CiBDR1N0eWxlUmVmIENHU3R5bGVDcmVhdGVGb2N1c1JpbmdXaXRoQ29sb3IoY29uc3Qg
Q0dGb2N1c1JpbmdTdHlsZSosIENHQ29sb3JSZWYpOwogdm9pZCBDR0NvbnRleHRTZXRTdHlsZShD
R0NvbnRleHRSZWYsIENHU3R5bGVSZWYpOwotCiB2b2lkIENHQ29udGV4dERyYXdDb25pY0dyYWRp
ZW50KENHQ29udGV4dFJlZiwgQ0dHcmFkaWVudFJlZiwgQ0dQb2ludCBjZW50ZXIsIENHRmxvYXQg
YW5nbGUpOwotCi0jaWYgSEFWRShDR19QQVRIX1VORVZFTl9DT1JORVJTX1JPVU5ERURSRUNUKQog
dm9pZCBDR1BhdGhBZGRVbmV2ZW5Db3JuZXJzUm91bmRlZFJlY3QoQ0dNdXRhYmxlUGF0aFJlZiwg
Y29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0gKiwgQ0dSZWN0LCBjb25zdCBDR1NpemUgY29ybmVyc1s0
XSk7Ci0jZW5kaWYKLQotI2lmIEhBVkUoQ0dfRk9OVF9SRU5ERVJJTkdfR0VUX0ZPTlRfU01PT1RI
SU5HX0RJU0FCTEVEKQogYm9vbCBDR0ZvbnRSZW5kZXJpbmdHZXRGb250U21vb3RoaW5nRGlzYWJs
ZWQodm9pZCk7Ci0jZW5kaWYKIAogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCkBAIC0zMjgs
MTUgKzM1MCwxMCBAQCBib29sIENvbG9yU3luY1Byb2ZpbGVJc1dpZGVHYW11dChDb2xvclN5bmNQ
cm9maWxlUmVmKTsKIHNpemVfdCBDR0Rpc3BsYXlNb2RlR2V0UGl4ZWxzV2lkZShDR0Rpc3BsYXlN
b2RlUmVmKTsKIHNpemVfdCBDR0Rpc3BsYXlNb2RlR2V0UGl4ZWxzSGlnaChDR0Rpc3BsYXlNb2Rl
UmVmKTsKIAotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKLQog
Q0dFcnJvciBDR1NTZXREZW55V2luZG93U2VydmVyQ29ubmVjdGlvbnMoYm9vbCk7Ci0KIHR5cGVk
ZWYgaW50MzJfdCBDR1NEaXNwbGF5SUQ7CiBDR1NEaXNwbGF5SUQgQ0dTTWFpbkRpc3BsYXlJRCh2
b2lkKTsKIAotI2VuZGlmIC8vIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lO
RykKLQogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAogI2lmIEVOQUJMRShQREZLSVRfUExVR0lO
KSAmJiAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BsYXRmb3JtQXBwbGVXaW4uY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUFwcGxlV2lu
LmNtYWtlCmluZGV4IGE3ODhlNjlkZTc0NDFjOTQwODRmNzAzNmEzZThmNDlhZDQ1MWE1OGQuLjM4
YTJiNzc2ODk1NTk4YTRmNGUzNmFkZTdjNjAzYjA0MDc4ZGRjNzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BsYXRmb3JtQXBwbGVXaW4uY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1BcHBsZVdpbi5jbWFrZQpAQCAtMzAsNiArMzAsOCBAQCBsaXN0KEFQUEVORCBXZWJDb3Jl
X1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL2NmL1dlYkNvcmVBVkNGUmVzb3VyY2VMb2FkZXIuY3BwCiAKKyAgICBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4
dC5jcHAKKwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
LmNwcAogCiAgICAgcGxhdGZvcm0vbmV0d29yay9jZi9BdXRoZW50aWNhdGlvbkNGLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5DYWlyby5jbWFrZSBiL1NvdXJjZS9X
ZWJDb3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UKaW5kZXggYTY4OTY0NzdkZTBjZjUwMzRmM2Zk
MDlmM2YwYzc2YTdkYTZlYzhhMS4uMDc3OGY3NTU2NmM2NDYzMDIwYTBlMDdjNTJhNjVjMWE0NzRm
NjI4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5DYWlyby5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbkNhaXJvLmNtYWtlCkBAIC0yMiw2ICsyMiw4
IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dM
Q29udGV4dC5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCiAK
KyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhz
UmVjb3JkZXJIYXJmQnV6ei5jcHAKKwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3Vz
dG9tUGxhdGZvcm1EYXRhQ2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQ
bGF0Zm9ybURhdGFDYWlyb1dpbi5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR2x5cGhQ
YWdlVHJlZU5vZGVDYWlyb1dpbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGViNGUx
N2YyZTczNmVhODY4MWM1NmQyMDI1MTQ5MjZiOGRjOTk0NTAuLjJhZDMzYTk1NTE5MmQ5MDc2ZWIz
ZDhjMTYyY2ZlMzg2MjJkZmIxOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXND
b2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMzc5LDYg
KzM3OSw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0K
IHBsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwCiBwbGF0Zm9y
bS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNz
L2NvcmVpbWFnZS9GaWx0ZXJFZmZlY3RSZW5kZXJlckNvcmVJbWFnZS5tbQorcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQu
Y3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGlsaW5nRGF0YS5jcHAKIHBsYXRmb3JtL2dyYXBo
aWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBBbGxvY2F0b3JNZXRhbC5tbQogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cExheW91dE1ldGFsLm1tCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNGM5NDk2ODc4
ZjdkZjEyOTNiMzdkMmNjNDgwOTk2ZjlhYWJkYmU3Ni4uM2YwZGY4YmI3MGU5Mzg0M2RkY2IyZGNl
MTZkMDY4ODMzMzU0YTA4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjIwLDYgKzYyMCw3IEBACiAJCTFDQUYzNDgxMEE2QzQw
NTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUYzNDdFMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3Jp
cHRPYmplY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkxQ0FGMzQ4MjBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0Lm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBRjM0N0YwQTZDNDA1
MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdC5tbSAqLzsgfTsKIAkJMUNBRjM0ODMwQTZDNDA1
MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdFByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUYzNDgwMEE2QzQwNTIwMEFCRTA2RSAvKiBX
ZWJTY3JpcHRPYmplY3RQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJMUNBRjU2REIyNTMwMUFDODAwMTdCNDcyIC8qIERpc3BsYXlMaXN0
RHJhd0dseXBoc1JlY29yZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQ0FGNTZEODI1MzAxNDU3MDAxN0I0NzIgLyogRGlzcGxheUxpc3REcmF3R2x5
cGhzUmVjb3JkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkxQ0NEODE1MDIyMzFGODNFMDA2NUZDMkIgLyogV2ViQ29yZVJlc291cmNlSGFuZGxl
QXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTE1MjU1MTQxNkZEMjM0RjAwM0Q3QURCIC8qIFdlYkNvcmVSZXNv
dXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbSAqLzsgfTsKIAkJMUNDREY1QkUx
OTkwMzMyNDAwQkNFQkFEIC8qIFNWR1RvT1RGRm9udENvbnZlcnNpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQ0RGNUJDMTk5MDMzMjQwMEJDRUJB
RCAvKiBTVkdUb09URkZvbnRDb252ZXJzaW9uLmggKi87IH07CiAJCTFDRkFFMzIzMEE2RDZBM0Yw
MDMyNTkzRCAvKiBsaWJvYmpjLmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUNGQUUzMjIwQTZENkEzRjAwMzI1OTNEIC8qIGxpYm9iamMuZHls
aWIgKi87IH07CkBAIC02NzM1LDYgKzY3MzYsOCBAQAogCQkxQ0FGMzQ3RTBBNkM0MDUyMDBBQkUw
NkUgLyogV2ViU2NyaXB0T2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYlNjcmlwdE9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FGMzQ3
RjBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0Lm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViU2NyaXB0T2JqZWN0Lm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxQ0FGMzQ4MDBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2Jq
ZWN0UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTY3JpcHRP
YmplY3RQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQUY1NkQ4MjUz
MDE0NTcwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxQ0FGNTZERTI1MzAyNDVBMDAxN0I0NzIgLyogRGlzcGxheUxpc3REcmF3
R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaXNwbGF5TGlz
dERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUNCNUZFODgyMkRFQkM4QjAwOTQ0MEUyIC8qIFdITFNMRXJyb3IuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0hMU0xFcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0I2OUIz
MjIxREVENDBCMDA2RTg0NkEgLyogV0hMU0xSZXNvbHZhYmxlVHlwZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXSExTTFJlc29sdmFibGVUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFD
QjY5QjM0MjFERUQ2M0EwMDZFODQ2QSAvKiBXSExTTEZsb2F0TGl0ZXJhbFR5cGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0hMU0xGbG9hdExpdGVyYWxUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xNzYwNiw2ICsxNzYwOSw4IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQkwRkU1RkJD
QTFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3QuY3BwICovLAogCQkJCTBGRTVGQkNCMUMz
REQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdC5oICovLAorCQkJCTFDQUY1NkQ4MjUzMDE0NTcw
MDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oICovLAorCQkJCTFDQUY1
NkRFMjUzMDI0NUEwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVU
ZXh0LmNwcCAqLywKIAkJCQk1NUMwQTI5NTIzRkUyQ0UwMDBGMkNCOTMgLyogRGlzcGxheUxpc3RE
cmF3aW5nQ29udGV4dC5jcHAgKi8sCiAJCQkJNzJFQTA5RjkyM0ZDQ0M2QTAwODUwNEE1IC8qIERp
c3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaCAqLywKIAkJCQk3MkVBMDlGNzIzRkNDQjNEMDA4NTA0
QTUgLyogRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oICovLApAQCAtMzE0MjcsNiArMzE0MzIsNyBA
QAogCQkJCTdFREFBRkM5MTlBMkNDREMwMDM0REZEMSAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2Eu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGNzkwRjQyMjUxN0NFNkUwMDlCQTAzNCAvKiBEaXNwbGF5
TGF5ZXJDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU1RkJEMzFDM0RENTFFMDAw
N0EyQ0EgLyogRGlzcGxheUxpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDQUY1NkRCMjUzMDFB
QzgwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTVBRDA5NDAyNDA4OTY0MDAwREU0RDJGIC8qIERpc3BsYXlMaXN0RHJhd2luZ0Nv
bnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1QUQwOTNFMjQwODk2MzUwMERFNEQyRiAvKiBE
aXNwbGF5TGlzdEltYWdlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU1RkJENTFDM0RE
NTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3RJdGVtcy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GcmVlVHlwZS5jbWFrZSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtlCmluZGV4IDdjMDRkOTNhNWI4NWM3MzI1ODFjOTVh
MDY1YmUwNWI2MzY3YzdhZTQuLmYzOGI1NGUxN2M5MzE1NjUxNTRjYWI5NTNhODFlMGU5NmY1NzQ5
YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtlCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtlCkBAIC01LDYgKzUsOCBA
QCBsaXN0KEFQUEVORCBXZWJDb3JlX1BSSVZBVEVfSU5DTFVERV9ESVJFQ1RPUklFUwogKQogCiBs
aXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHAKKwogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250UGxhdGZvcm1EYXRhRnJlZVR5cGUu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFn
ZUJ1ZmZlckNHQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5jcHAKaW5kZXggMmFkMzFhYzU3ZDVmMWJkZTc5NDE5YzVm
OTE1Njk3YjM3NTQ0YmI0OC4uNWIyMGQ4OTJlZDhiYmNmNjAxODE2YTYzNjc2YTAwZjFmYTVjMTdi
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VC
dWZmZXJDR0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5kLmNwcApAQCAtNjEsNiArNjEsNyBAQCBSZXRhaW5QdHI8
Q0dDb2xvclNwYWNlUmVmPiBJbWFnZUJ1ZmZlckNHQmFja2VuZDo6Y29udGV4dENvbG9yU3BhY2Uo
Y29uc3QgR3JhcGhpYwogCiB2b2lkIEltYWdlQnVmZmVyQ0dCYWNrZW5kOjpzZXR1cENvbnRleHQo
KQogeworICAgIC8vIFRoZSBpbml0aWFsIENUTSBtYXRjaGVzIERpc3BsYXlMaXN0OjpSZWNvcmRl
cjo6Y2xpcFRvRHJhd2luZ0NvbW1hbmRzKCkncyBpbml0aWFsIENUTS4KICAgICBjb250ZXh0KCku
c2NhbGUoRmxvYXRTaXplKDEsIC0xKSk7CiAgICAgY29udGV4dCgpLnRyYW5zbGF0ZSgwLCAtbV9i
YWNrZW5kU2l6ZS5oZWlnaHQoKSk7CiAgICAgY29udGV4dCgpLmFwcGx5RGV2aWNlU2NhbGVGYWN0
b3IobV9yZXNvbHV0aW9uU2NhbGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udENhc2NhZGVDb3JlVGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250Q2FzY2FkZUNvcmVUZXh0LmNwcApp
bmRleCA0YThlNGUwZWExOTQxNDQzNjI1MGE0YmU4YWE0NWNiNzFkYjIxNmZiLi5mOTdmNzBiOGY3
NjQ4MzgwNzA2ZjdkMGJlNzVkNGEwZDk3ZmU4OGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250Q2FzY2FkZUNvcmVUZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250Q2FzY2FkZUNv
cmVUZXh0LmNwcApAQCAtNjksNiArNjksMTQgQEAgc3RhdGljIGNvbnN0IEFmZmluZVRyYW5zZm9y
bSYgcm90YXRlTGVmdFRyYW5zZm9ybSgpCiAKIHZvaWQgZmlsbFZlY3RvcldpdGhIb3Jpem9udGFs
R2x5cGhQb3NpdGlvbnMoVmVjdG9yPENHUG9pbnQsIDI1Nj4mIHBvc2l0aW9ucywgQ0dDb250ZXh0
UmVmIGNvbnRleHQsIGNvbnN0IENHU2l6ZSogYWR2YW5jZXMsIHVuc2lnbmVkIGNvdW50LCBjb25z
dCBGbG9hdFBvaW50JiBwb2ludCkKIHsKKyAgICAvLyBUaGUgaW5wdXQgcG9zaXRpb25zIGFyZSBp
biB0aGUgY29udGV4dCdzIGNvb3JkaW5hdGUgc3lzdGVtLCB3aXRob3V0IHRoZSB0ZXh0IG1hdHJp
eC4KKyAgICAvLyBIb3dldmVyLCB0aGUgcG9zaXRpb25zIHRoYXQgQ1QvQ0cgYWNjZXB0IGFyZSBp
biB0aGUgdGV4dCBtYXRyaXgncyBjb29yZGluYXRlIHN5c3RlbS4KKyAgICAvLyBDR0NvbnRleHRH
ZXRUZXh0TWF0cml4KCkgZ2l2ZXMgdXMgdGhlIG1hdHJpeCB0aGF0IG1hcHMgZnJvbSB0ZXh0J3Mg
Y29vcmRpbmF0ZSBzeXN0ZW0gdG8gdGhlIGNvbnRleHQncyAobm9uLXRleHQpIGNvb3JkaW5hdGUg
c3lzdGVtLgorICAgIC8vIFdlIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0IHRvIGRlbGl2ZXIgQ1Qs
IGluc2lkZSB0aGUgdGV4dCdzIGNvb3JkaW5hdGUgc3lzdGVtLCBzdWNoIHRoYXQgaXQgZW5kcyB1
cCBjb2luY2lkZW50IHdpdGggdGhlIGlucHV0IGluIHRoZSBjb250ZXh0J3MgY29vcmRpbmF0ZSBz
eXN0ZW0uCisgICAgLy8KKyAgICAvLyBDVE0gKiB0ZXh0IG1hdHJpeCAqIHBvc2l0aW9ucyB3ZSBu
ZWVkIHRvIGRlbGl2ZXIgdG8gQ1QgPSBDVE0gKiBpbnB1dCBwb3NpdGlvbnMKKyAgICAvLyBTb2x2
aW5nIGZvciB0aGUgcG9zaXRpb25zIHdlIG5lZWQgdG8gZGVsaXZlciB0byBDVCwgd2UgZ2V0Cisg
ICAgLy8gcG9zaXRpb25zIHdlIG5lZWQgdG8gZGVsaXZlciB0byBDVCA9IGludmVyc2UodGV4dCBt
YXRyaXgpICogaW5wdXQgcG9zaXRpb25zCiAgICAgQ0dBZmZpbmVUcmFuc2Zvcm0gbWF0cml4ID0g
Q0dBZmZpbmVUcmFuc2Zvcm1JbnZlcnQoQ0dDb250ZXh0R2V0VGV4dE1hdHJpeChjb250ZXh0KSk7
CiAgICAgcG9zaXRpb25zWzBdID0gQ0dQb2ludEFwcGx5QWZmaW5lVHJhbnNmb3JtKHBvaW50LCBt
YXRyaXgpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCBjb3VudDsgKytpKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjgzNzRlYzIyYWVkMDRiN2ViYjM4MThlYzUxOTk4NjBiMmM4NTQ0MzcKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaApAQCAtMCwwICsxLDExNyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCisjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRl
ICJHcmFkaWVudC5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIlBh
dHRlcm4uaCIKKyNpbmNsdWRlICJUZXh0RmxhZ3MuaCIKKworI2lmIFVTRShDT1JFX1RFWFQpCisj
aW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NvcmVHcmFwaGljcy5oPgorI2luY2x1ZGUgPHBhbC9zcGkv
Y2cvQ29yZUdyYXBoaWNzU1BJLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBGbG9hdFBvaW50OworY2xhc3MgRm9udDsKK2NsYXNzIEdseXBoQnVmZmVyOworY2xhc3Mg
R3JhcGhpY3NDb250ZXh0OworCituYW1lc3BhY2UgRGlzcGxheUxpc3QgeworCitjbGFzcyBSZWNv
cmRlcjsKKworY2xhc3MgRHJhd0dseXBoc1JlY29yZGVyIHsKK3B1YmxpYzoKKyAgICBleHBsaWNp
dCBEcmF3R2x5cGhzUmVjb3JkZXIoUmVjb3JkZXImKTsKKworICAgIHZvaWQgZHJhd0dseXBocyhj
b25zdCBGb250JiwgY29uc3QgR2x5cGhCdWZmZXImLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBu
dW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmIGFuY2hvclBvaW50LCBGb250U21vb3RoaW5nTW9k
ZSk7CisKKyNpZiBVU0UoQ09SRV9URVhUKQorICAgIHZvaWQgcmVjb3JkQmVnaW5MYXllcihDR1Jl
bmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiwgQ0dSZWN0KTsKKyAgICB2b2lkIHJlY29yZEVu
ZExheWVyKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmKTsKKyAgICB2b2lkIHJlY29y
ZERyYXdHbHlwaHMoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYsIGNvbnN0IENHQWZm
aW5lVHJhbnNmb3JtKiwgY29uc3QgQ0dHbHlwaFtdLCBjb25zdCBDR1BvaW50IHBvc2l0aW9uc1td
LCBzaXplX3QgY291bnQpOworICAgIHZvaWQgcmVjb3JkRHJhd0ltYWdlKENHUmVuZGVyaW5nU3Rh
dGVSZWYsIENHR1N0YXRlUmVmLCBDR1JlY3QsIENHSW1hZ2VSZWYpOworI2VuZGlmCisKK3ByaXZh
dGU6CisgICAgR3JhcGhpY3NDb250ZXh0IGNyZWF0ZUludGVybmFsQ29udGV4dCgpOworICAgIHZv
aWQgcHJlcGFyZUludGVybmFsQ29udGV4dChjb25zdCBGb250JiwgRm9udFNtb290aGluZ01vZGUp
OworICAgIHZvaWQgY29uY2x1ZGVJbnRlcm5hbENvbnRleHQoKTsKKyAgICB2b2lkIHVwZGF0ZUNU
TShBZmZpbmVUcmFuc2Zvcm0pOworICAgIHZvaWQgdXBkYXRlRmlsbENvbG9yKGNvbnN0IENvbG9y
JiwgR3JhZGllbnQqID0gbnVsbHB0ciwgUGF0dGVybiogPSBudWxscHRyKTsKKyAgICB2b2lkIHVw
ZGF0ZVN0cm9rZUNvbG9yKGNvbnN0IENvbG9yJiwgR3JhZGllbnQqID0gbnVsbHB0ciwgUGF0dGVy
biogPSBudWxscHRyKTsKKyAgICBlbnVtIGNsYXNzIFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zIHsK
KyAgICAgICAgVW5zcGVjaWZpZWQsCisgICAgICAgIFllcywKKyAgICAgICAgTm8KKyAgICB9Owor
ICAgIHZvaWQgdXBkYXRlU2hhZG93KGNvbnN0IEZsb2F0U2l6ZSYgc2hhZG93T2Zmc2V0LCBmbG9h
dCBzaGFkb3dCbHVyLCBjb25zdCBDb2xvciYgc2hhZG93Q29sb3IsIFNoYWRvd3NJZ25vcmVUcmFu
c2Zvcm1zKTsKKworI2lmIFVTRShDT1JFX1RFWFQpCisgICAgdm9pZCB1cGRhdGVTaGFkb3coQ0dT
dHlsZVJlZik7CisjZW5kaWYKKworICAgIFJlY29yZGVyJiBtX293bmVyOworICAgIEdyYXBoaWNz
Q29udGV4dCBtX2ludGVybmFsQ29udGV4dDsKKyAgICBjb25zdCBGb250KiBtX2N1cnJlbnRGb250
IHsgbnVsbHB0ciB9OworCisgICAgQ29sb3IgbV9jdXJyZW50RmlsbENvbG9yOworICAgIENvbG9y
IG1fY3VycmVudFN0cm9rZUNvbG9yOworCisgICAgQ29sb3IgbV9vcmlnaW5hbEZpbGxDb2xvcjsK
KyAgICBSZWZQdHI8R3JhZGllbnQ+IG1fb3JpZ2luYWxGaWxsR3JhZGllbnQ7CisgICAgUmVmUHRy
PFBhdHRlcm4+IG1fb3JpZ2luYWxGaWxsUGF0dGVybjsKKworICAgIENvbG9yIG1fb3JpZ2luYWxT
dHJva2VDb2xvcjsKKyAgICBSZWZQdHI8R3JhZGllbnQ+IG1fb3JpZ2luYWxTdHJva2VHcmFkaWVu
dDsKKyAgICBSZWZQdHI8UGF0dGVybj4gbV9vcmlnaW5hbFN0cm9rZVBhdHRlcm47CisKKyAgICBB
ZmZpbmVUcmFuc2Zvcm0gbV9vcmlnaW5hbENUTTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gbV9jdXJy
ZW50Q1RNOworCisgICAgQWZmaW5lVHJhbnNmb3JtIG1fb3JpZ2luYWxUZXh0TWF0cml4OworCisg
ICAgRmxvYXRTaXplIG1fb3JpZ2luYWxTaGFkb3dPZmZzZXQ7CisgICAgZmxvYXQgbV9vcmlnaW5h
bFNoYWRvd0JsdXI7CisgICAgQ29sb3IgbV9vcmlnaW5hbFNoYWRvd0NvbG9yOworICAgIGJvb2wg
bV9vcmlnaW5hbFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOworCisgICAgRmxvYXRTaXplIG1fY3Vy
cmVudFNoYWRvd09mZnNldDsKKyAgICBmbG9hdCBtX2N1cnJlbnRTaGFkb3dCbHVyOworICAgIENv
bG9yIG1fY3VycmVudFNoYWRvd0NvbG9yOworICAgIGJvb2wgbV9jdXJyZW50U2hhZG93c0lnbm9y
ZVRyYW5zZm9ybXM7CisKKyAgICBGb250U21vb3RoaW5nTW9kZSBtX3Ntb290aGluZ01vZGUgeyBG
b250U21vb3RoaW5nTW9kZTo6QXV0b1Ntb290aGluZyB9OworfTsKKworfQorCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJD
b3JlVGV4dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjRjODM0NmJkNmI0NmNjM2RhNWIwYzgyMWYyNmJiM2Yw
MjBkYjRhYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNw
cApAQCAtMCwwICsxLDM2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEaXNwbGF5TGlzdERyYXdH
bHlwaHNSZWNvcmRlci5oIgorCisjaW5jbHVkZSAiQml0bWFwSW1hZ2UuaCIKKyNpbmNsdWRlICJD
b2xvci5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0SXRlbXMuaCIKKyNpbmNsdWRlICJEaXNwbGF5
TGlzdFJlY29yZGVyLmgiCisjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgorI2luY2x1ZGUgIkZvbnQu
aCIKKyNpbmNsdWRlICJGb250Q2FzY2FkZS5oIgorI2luY2x1ZGUgIkdseXBoQnVmZmVyLmgiCisK
KyNpbmNsdWRlIDxDb3JlVGV4dC9Db3JlVGV4dC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
KworI2lmIFBMQVRGT1JNKFdJTikKKyNpbmNsdWRlIDxwYWwvc3BpL3dpbi9Db3JlVGV4dFNQSVdp
bi5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIERpc3BsYXlM
aXN0IHsKKworc3RhdGljIENHQ29udGV4dERlbGVnYXRlUmVmIGJlZ2luTGF5ZXIoQ0dDb250ZXh0
RGVsZWdhdGVSZWYgZGVsZWdhdGUsIENHUmVuZGVyaW5nU3RhdGVSZWYgcnN0YXRlLCBDR0dTdGF0
ZVJlZiBnc3RhdGUsIENHUmVjdCByZWN0LCBDRkRpY3Rpb25hcnlSZWYsIENHQ29udGV4dERlbGVn
YXRlUmVmKQoreworICAgIERyYXdHbHlwaHNSZWNvcmRlciYgcmVjb3JkZXIgPSAqc3RhdGljX2Nh
c3Q8RHJhd0dseXBoc1JlY29yZGVyKj4oQ0dDb250ZXh0RGVsZWdhdGVHZXRJbmZvKGRlbGVnYXRl
KSk7CisgICAgcmVjb3JkZXIucmVjb3JkQmVnaW5MYXllcihyc3RhdGUsIGdzdGF0ZSwgcmVjdCk7
CisgICAgcmV0dXJuIGRlbGVnYXRlOworfQorCitzdGF0aWMgQ0dDb250ZXh0RGVsZWdhdGVSZWYg
ZW5kTGF5ZXIoQ0dDb250ZXh0RGVsZWdhdGVSZWYgZGVsZWdhdGUsIENHUmVuZGVyaW5nU3RhdGVS
ZWYgcnN0YXRlLCBDR0dTdGF0ZVJlZiBnc3RhdGUpCit7CisgICAgRHJhd0dseXBoc1JlY29yZGVy
JiByZWNvcmRlciA9ICpzdGF0aWNfY2FzdDxEcmF3R2x5cGhzUmVjb3JkZXIqPihDR0NvbnRleHRE
ZWxlZ2F0ZUdldEluZm8oZGVsZWdhdGUpKTsKKyAgICByZWNvcmRlci5yZWNvcmRFbmRMYXllcihy
c3RhdGUsIGdzdGF0ZSk7CisgICAgcmV0dXJuIGRlbGVnYXRlOworfQorCitzdGF0aWMgQ0dFcnJv
ciBkcmF3R2x5cGhzKENHQ29udGV4dERlbGVnYXRlUmVmIGRlbGVnYXRlLCBDR1JlbmRlcmluZ1N0
YXRlUmVmIHJzdGF0ZSwgQ0dHU3RhdGVSZWYgZ3N0YXRlLCBjb25zdCBDR0FmZmluZVRyYW5zZm9y
bSogdG0sIGNvbnN0IENHR2x5cGggZ2x5cGhzW10sIGNvbnN0IENHUG9pbnQgcG9zaXRpb25zW10s
IHNpemVfdCBjb3VudCkKK3sKKyAgICBpZiAoQ0dHU3RhdGVHZXRBbHBoYShnc3RhdGUpID4gMCkg
eworICAgICAgICBEcmF3R2x5cGhzUmVjb3JkZXImIHJlY29yZGVyID0gKnN0YXRpY19jYXN0PERy
YXdHbHlwaHNSZWNvcmRlcio+KENHQ29udGV4dERlbGVnYXRlR2V0SW5mbyhkZWxlZ2F0ZSkpOwor
ICAgICAgICByZWNvcmRlci5yZWNvcmREcmF3R2x5cGhzKHJzdGF0ZSwgZ3N0YXRlLCB0bSwgZ2x5
cGhzLCBwb3NpdGlvbnMsIGNvdW50KTsKKyAgICB9CisgICAgcmV0dXJuIGtDR0Vycm9yU3VjY2Vz
czsKK30KKworc3RhdGljIENHRXJyb3IgZHJhd0ltYWdlKENHQ29udGV4dERlbGVnYXRlUmVmIGRl
bGVnYXRlLCBDR1JlbmRlcmluZ1N0YXRlUmVmIHJzdGF0ZSwgQ0dHU3RhdGVSZWYgZ3N0YXRlLCBD
R1JlY3QgcmVjdCwgQ0dJbWFnZVJlZiBpbWFnZSkKK3sKKyAgICBEcmF3R2x5cGhzUmVjb3JkZXIm
IHJlY29yZGVyID0gKnN0YXRpY19jYXN0PERyYXdHbHlwaHNSZWNvcmRlcio+KENHQ29udGV4dERl
bGVnYXRlR2V0SW5mbyhkZWxlZ2F0ZSkpOworICAgIHJlY29yZGVyLnJlY29yZERyYXdJbWFnZShy
c3RhdGUsIGdzdGF0ZSwgcmVjdCwgaW1hZ2UpOworICAgIHJldHVybiBrQ0dFcnJvclN1Y2Nlc3M7
Cit9CisKK0dyYXBoaWNzQ29udGV4dCBEcmF3R2x5cGhzUmVjb3JkZXI6OmNyZWF0ZUludGVybmFs
Q29udGV4dCgpCit7CisgICAgYXV0byBjb250ZXh0RGVsZWdhdGUgPSBhZG9wdENGKENHQ29udGV4
dERlbGVnYXRlQ3JlYXRlKHRoaXMpKTsKKyAgICBDR0NvbnRleHREZWxlZ2F0ZVNldENhbGxiYWNr
KGNvbnRleHREZWxlZ2F0ZS5nZXQoKSwgZGVCZWdpbkxheWVyLCByZWludGVycHJldF9jYXN0PENH
Q29udGV4dERlbGVnYXRlQ2FsbGJhY2s+KCZiZWdpbkxheWVyKSk7CisgICAgQ0dDb250ZXh0RGVs
ZWdhdGVTZXRDYWxsYmFjayhjb250ZXh0RGVsZWdhdGUuZ2V0KCksIGRlRW5kTGF5ZXIsIHJlaW50
ZXJwcmV0X2Nhc3Q8Q0dDb250ZXh0RGVsZWdhdGVDYWxsYmFjaz4oJmVuZExheWVyKSk7CisgICAg
Q0dDb250ZXh0RGVsZWdhdGVTZXRDYWxsYmFjayhjb250ZXh0RGVsZWdhdGUuZ2V0KCksIGRlRHJh
d0dseXBocywgcmVpbnRlcnByZXRfY2FzdDxDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrPigmV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OmRyYXdHbHlwaHMpKTsKKyAgICBDR0NvbnRleHREZWxlZ2F0ZVNl
dENhbGxiYWNrKGNvbnRleHREZWxlZ2F0ZS5nZXQoKSwgZGVEcmF3SW1hZ2UsIHJlaW50ZXJwcmV0
X2Nhc3Q8Q0dDb250ZXh0RGVsZWdhdGVDYWxsYmFjaz4oJmRyYXdJbWFnZSkpOworICAgIGF1dG8g
Y29udGV4dCA9IGFkb3B0Q0YoQ0dDb250ZXh0Q3JlYXRlV2l0aERlbGVnYXRlKGNvbnRleHREZWxl
Z2F0ZS5nZXQoKSwga0NHQ29udGV4dFR5cGVVbmtub3duLCBudWxscHRyLCBudWxscHRyKSk7Cisg
ICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dChjb250ZXh0LmdldCgpKTsKK30KKworRHJhd0dseXBo
c1JlY29yZGVyOjpEcmF3R2x5cGhzUmVjb3JkZXIoUmVjb3JkZXImIG93bmVyKQorICAgIDogbV9v
d25lcihvd25lcikKKyAgICAsIG1faW50ZXJuYWxDb250ZXh0KGNyZWF0ZUludGVybmFsQ29udGV4
dCgpKQoreworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6cHJlcGFyZUludGVybmFsQ29u
dGV4dChjb25zdCBGb250JiBmb250LCBGb250U21vb3RoaW5nTW9kZSBzbW9vdGhpbmdNb2RlKQor
eworICAgIEFTU0VSVChDR0FmZmluZVRyYW5zZm9ybUlzSWRlbnRpdHkoQ1RGb250R2V0TWF0cml4
KGZvbnQucGxhdGZvcm1EYXRhKCkuY3RGb250KCkpKSk7CisKKyAgICBhdXRvJiBzdGF0ZSA9IG1f
b3duZXIuY3VycmVudFN0YXRlKCkuc3RhdGVDaGFuZ2UubV9zdGF0ZTsKKworICAgIG1fb3JpZ2lu
YWxGaWxsQ29sb3IgPSBzdGF0ZS5maWxsQ29sb3I7CisgICAgbV9vcmlnaW5hbEZpbGxHcmFkaWVu
dCA9IHN0YXRlLmZpbGxHcmFkaWVudDsKKyAgICBtX29yaWdpbmFsRmlsbFBhdHRlcm4gPSBzdGF0
ZS5maWxsUGF0dGVybjsKKworICAgIG1fb3JpZ2luYWxTdHJva2VDb2xvciA9IHN0YXRlLnN0cm9r
ZUNvbG9yOworICAgIG1fb3JpZ2luYWxTdHJva2VHcmFkaWVudCA9IHN0YXRlLnN0cm9rZUdyYWRp
ZW50OworICAgIG1fb3JpZ2luYWxTdHJva2VQYXR0ZXJuID0gc3RhdGUuc3Ryb2tlUGF0dGVybjsK
KworICAgIG1fY3VycmVudEZpbGxDb2xvciA9IG1fb3JpZ2luYWxGaWxsQ29sb3I7CisgICAgbV9j
dXJyZW50U3Ryb2tlQ29sb3IgPSBtX29yaWdpbmFsU3Ryb2tlQ29sb3I7CisKKyAgICBpZiAobV9v
cmlnaW5hbEZpbGxDb2xvci5pc1ZhbGlkKCkpCisgICAgICAgIG1faW50ZXJuYWxDb250ZXh0LnNl
dEZpbGxDb2xvcihtX29yaWdpbmFsRmlsbENvbG9yKTsKKyAgICBlbHNlIGlmIChtX29yaWdpbmFs
RmlsbEdyYWRpZW50KQorICAgICAgICBtX2ludGVybmFsQ29udGV4dC5zZXRGaWxsR3JhZGllbnQo
Km1fb3JpZ2luYWxGaWxsR3JhZGllbnQpOworICAgIGVsc2UgeworICAgICAgICBBU1NFUlQobV9v
cmlnaW5hbEZpbGxQYXR0ZXJuKTsKKyAgICAgICAgaWYgKG1fb3JpZ2luYWxGaWxsUGF0dGVybikK
KyAgICAgICAgICAgIG1faW50ZXJuYWxDb250ZXh0LnNldEZpbGxQYXR0ZXJuKCptX29yaWdpbmFs
RmlsbFBhdHRlcm4pOworICAgIH0KKworICAgIGlmIChtX29yaWdpbmFsU3Ryb2tlQ29sb3IuaXNW
YWxpZCgpKQorICAgICAgICBtX2ludGVybmFsQ29udGV4dC5zZXRTdHJva2VDb2xvcihtX29yaWdp
bmFsU3Ryb2tlQ29sb3IpOworICAgIGVsc2UgaWYgKG1fb3JpZ2luYWxTdHJva2VHcmFkaWVudCkK
KyAgICAgICAgbV9pbnRlcm5hbENvbnRleHQuc2V0U3Ryb2tlR3JhZGllbnQoKm1fb3JpZ2luYWxT
dHJva2VHcmFkaWVudCk7CisgICAgZWxzZSB7CisgICAgICAgIEFTU0VSVChtX29yaWdpbmFsU3Ry
b2tlUGF0dGVybik7CisgICAgICAgIGlmIChtX29yaWdpbmFsU3Ryb2tlUGF0dGVybikKKyAgICAg
ICAgICAgIG1faW50ZXJuYWxDb250ZXh0LnNldFN0cm9rZVBhdHRlcm4oKm1fb3JpZ2luYWxTdHJv
a2VQYXR0ZXJuKTsKKyAgICB9CisKKyAgICBtX29yaWdpbmFsQ1RNID0gbV9vd25lci5jdXJyZW50
U3RhdGUoKS5jdG07IC8vIEZJWE1FOiBEZWFsIHdpdGggZGV2aWNlIHNjYWxlLgorICAgIG1fY3Vy
cmVudENUTSA9IG1fb3JpZ2luYWxDVE07CisgICAgbV9pbnRlcm5hbENvbnRleHQuc2V0Q1RNKG1f
b3JpZ2luYWxDVE0pOworCisgICAgbV9vcmlnaW5hbFRleHRNYXRyaXggPSBjb21wdXRlT3ZlcmFs
bFRleHRNYXRyaXgoZm9udCk7CisgICAgaWYgKGZvbnQucGxhdGZvcm1EYXRhKCkub3JpZW50YXRp
b24oKSA9PSBGb250T3JpZW50YXRpb246OlZlcnRpY2FsKQorICAgICAgICBtX29yaWdpbmFsVGV4
dE1hdHJpeCA9IGNvbXB1dGVWZXJ0aWNhbFRleHRNYXRyaXgoZm9udCwgbV9vcmlnaW5hbFRleHRN
YXRyaXgpOworCisgICAgbV9pbnRlcm5hbENvbnRleHQuc2V0U2hhZG93c0lnbm9yZVRyYW5zZm9y
bXMoc3RhdGUuc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMpOworICAgIGlmIChzdGF0ZS5zaGFkb3dz
VXNlTGVnYWN5UmFkaXVzKQorICAgICAgICBtX2ludGVybmFsQ29udGV4dC5zZXRMZWdhY3lTaGFk
b3coc3RhdGUuc2hhZG93T2Zmc2V0LCBzdGF0ZS5zaGFkb3dCbHVyLCBzdGF0ZS5zaGFkb3dDb2xv
cik7CisgICAgZWxzZQorICAgICAgICBtX2ludGVybmFsQ29udGV4dC5zZXRTaGFkb3coc3RhdGUu
c2hhZG93T2Zmc2V0LCBzdGF0ZS5zaGFkb3dCbHVyLCBzdGF0ZS5zaGFkb3dDb2xvcik7CisKKyAg
ICBtX2ludGVybmFsQ29udGV4dC5zZXRUZXh0RHJhd2luZ01vZGUoc3RhdGUudGV4dERyYXdpbmdN
b2RlKTsKKworICAgIG1fb3JpZ2luYWxTaGFkb3dPZmZzZXQgPSBzdGF0ZS5zaGFkb3dPZmZzZXQ7
CisgICAgbV9vcmlnaW5hbFNoYWRvd0JsdXIgPSBzdGF0ZS5zaGFkb3dCbHVyOworICAgIG1fb3Jp
Z2luYWxTaGFkb3dDb2xvciA9IHN0YXRlLnNoYWRvd0NvbG9yOworICAgIG1fb3JpZ2luYWxTaGFk
b3dzSWdub3JlVHJhbnNmb3JtcyA9IHN0YXRlLnNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOworCisg
ICAgbV9jdXJyZW50U2hhZG93T2Zmc2V0ID0gbV9vcmlnaW5hbFNoYWRvd09mZnNldDsKKyAgICBt
X2N1cnJlbnRTaGFkb3dCbHVyID0gbV9vcmlnaW5hbFNoYWRvd0JsdXI7CisgICAgbV9jdXJyZW50
U2hhZG93Q29sb3IgPSBtX29yaWdpbmFsU2hhZG93Q29sb3I7CisgICAgbV9jdXJyZW50U2hhZG93
c0lnbm9yZVRyYW5zZm9ybXMgPSBtX29yaWdpbmFsU2hhZG93c0lnbm9yZVRyYW5zZm9ybXM7CisK
KyAgICBtX2N1cnJlbnRGb250ID0gJmZvbnQ7CisgICAgbV9zbW9vdGhpbmdNb2RlID0gc21vb3Ro
aW5nTW9kZTsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OmNvbmNsdWRlSW50ZXJuYWxD
b250ZXh0KCkKK3sKKyAgICB1cGRhdGVGaWxsQ29sb3IobV9vcmlnaW5hbEZpbGxDb2xvciwgbV9v
cmlnaW5hbEZpbGxHcmFkaWVudC5nZXQoKSwgbV9vcmlnaW5hbEZpbGxQYXR0ZXJuLmdldCgpKTsK
KyAgICB1cGRhdGVTdHJva2VDb2xvcihtX29yaWdpbmFsU3Ryb2tlQ29sb3IsIG1fb3JpZ2luYWxT
dHJva2VHcmFkaWVudC5nZXQoKSwgbV9vcmlnaW5hbFN0cm9rZVBhdHRlcm4uZ2V0KCkpOworICAg
IHVwZGF0ZUNUTShtX29yaWdpbmFsQ1RNKTsKKyAgICB1cGRhdGVTaGFkb3cobV9vcmlnaW5hbFNo
YWRvd09mZnNldCwgbV9vcmlnaW5hbFNoYWRvd0JsdXIsIG1fb3JpZ2luYWxTaGFkb3dDb2xvciwg
bV9vcmlnaW5hbFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zID8gU2hhZG93c0lnbm9yZVRyYW5zZm9y
bXM6OlllcyA6IFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOjpObyk7Cit9CisKK3ZvaWQgRHJhd0ds
eXBoc1JlY29yZGVyOjp1cGRhdGVDVE0oQWZmaW5lVHJhbnNmb3JtIGN0bSkKK3sKKyAgICBpZiAo
Y3RtID09IG1fY3VycmVudENUTSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9vd25lci5zZXRD
VE0oY3RtKTsKKyAgICBtX2N1cnJlbnRDVE0gPSBjdG07Cit9CisKK3ZvaWQgRHJhd0dseXBoc1Jl
Y29yZGVyOjp1cGRhdGVGaWxsQ29sb3IoY29uc3QgQ29sb3ImIG5ld0NvbG9yLCBHcmFkaWVudCog
bmV3R3JhZGllbnQsIFBhdHRlcm4qIG5ld1BhdHRlcm4pCit7CisgICAgLy8gVGhpcyBjaGVjayBs
b29rcyB3cm9uZyBidXQgaXQgYWN0dWFsbHkgaXNuJ3QsIGZvciBvdXIgbGltaXRlZCB1c2UuCisg
ICAgLy8gQ1Qgd2lsbCBvbmx5IGV2ZXIgc2V0IHRoaXMgdG8gYSBzb2xpZCBjb2xvciwgd2hpY2gg
dGhpcyBpcyB0aGUgY29ycmVjdCBjaGVjayBmb3IuCisgICAgLy8gSW4gY29uY2x1ZGVJbnRlcm5h
bENvbnRleHQoKSB3ZSBzZXQgaXQgYmFjayB0byB3aGF0IGl0IHdhcyBvcmlnaW5hbGx5LCB3aGlj
aCB0aGlzIGNoZWNrIHdvcmtzIGNvcnJlY3RseSBmb3IgdG9vLgorICAgIGlmIChuZXdDb2xvciA9
PSBtX2N1cnJlbnRGaWxsQ29sb3IpCisgICAgICAgIHJldHVybjsKKworICAgIEdyYXBoaWNzQ29u
dGV4dFN0YXRlIG5ld1N0YXRlOworICAgIG5ld1N0YXRlLmZpbGxDb2xvciA9IG5ld0NvbG9yOwor
ICAgIGlmIChuZXdHcmFkaWVudCkKKyAgICAgICAgbmV3U3RhdGUuZmlsbEdyYWRpZW50ID0gbmV3
R3JhZGllbnQ7CisgICAgaWYgKG5ld1BhdHRlcm4pCisgICAgICAgIG5ld1N0YXRlLmZpbGxQYXR0
ZXJuID0gbmV3UGF0dGVybjsKKyAgICBtX293bmVyLnVwZGF0ZVN0YXRlKG5ld1N0YXRlLCB7IEdy
YXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsQ29sb3JDaGFuZ2UgfSk7CisgICAgbV9jdXJyZW50Rmls
bENvbG9yID0gbmV3Q29sb3I7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVT
dHJva2VDb2xvcihjb25zdCBDb2xvciYgbmV3Q29sb3IsIEdyYWRpZW50KiBuZXdHcmFkaWVudCwg
UGF0dGVybiogbmV3UGF0dGVybikKK3sKKyAgICAvLyBUaGlzIGNoZWNrIGxvb2tzIHdyb25nIGJ1
dCBpdCBhY3R1YWxseSBpc24ndCwgZm9yIG91ciBsaW1pdGVkIHVzZS4KKyAgICAvLyBDVCB3aWxs
IG9ubHkgZXZlciBzZXQgdGhpcyB0byBhIHNvbGlkIGNvbG9yLCB3aGljaCB0aGlzIGlzIHRoZSBj
b3JyZWN0IGNoZWNrIGZvci4KKyAgICAvLyBJbiBjb25jbHVkZUludGVybmFsQ29udGV4dCgpIHdl
IHNldCBpdCBiYWNrIHRvIHdoYXQgaXQgd2FzIG9yaWdpbmFsbHksIHdoaWNoIHRoaXMgY2hlY2sg
d29ya3MgY29ycmVjdGx5IGZvciB0b28uCisgICAgaWYgKG5ld0NvbG9yID09IG1fY3VycmVudFN0
cm9rZUNvbG9yKQorICAgICAgICByZXR1cm47CisKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZSBu
ZXdTdGF0ZTsKKyAgICBuZXdTdGF0ZS5zdHJva2VDb2xvciA9IG5ld0NvbG9yOworICAgIGlmIChu
ZXdHcmFkaWVudCkKKyAgICAgICAgbmV3U3RhdGUuc3Ryb2tlR3JhZGllbnQgPSBuZXdHcmFkaWVu
dDsKKyAgICBpZiAobmV3UGF0dGVybikKKyAgICAgICAgbmV3U3RhdGUuc3Ryb2tlUGF0dGVybiA9
IG5ld1BhdHRlcm47CisgICAgbV9vd25lci51cGRhdGVTdGF0ZShuZXdTdGF0ZSwgeyBHcmFwaGlj
c0NvbnRleHRTdGF0ZTo6U3Ryb2tlQ29sb3JDaGFuZ2UgfSk7CisgICAgbV9jdXJyZW50U3Ryb2tl
Q29sb3IgPSBuZXdDb2xvcjsKK30KKworc3RhdGljIGJvb2wgc2hhZG93SXNDbGVhcmVkKGNvbnN0
IEZsb2F0U2l6ZSYgc2hhZG93T2Zmc2V0LCBmbG9hdCBzaGFkb3dCbHVyKQoreworICAgIHJldHVy
biBzaGFkb3dPZmZzZXQgPT0gRmxvYXRTaXplKCkgJiYgIXNoYWRvd0JsdXI7Cit9CisKK3ZvaWQg
RHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVTaGFkb3coY29uc3QgRmxvYXRTaXplJiBzaGFkb3dP
ZmZzZXQsIGZsb2F0IHNoYWRvd0JsdXIsIGNvbnN0IENvbG9yJiBzaGFkb3dDb2xvciwgU2hhZG93
c0lnbm9yZVRyYW5zZm9ybXMgc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMpCit7CisgICAgLy8gV2Ug
ZG9uJ3QgbmVlZCB0byBjb25zaWRlciBzaGFkb3dzSWdub3JlVHJhbnNmb3JtcyBpZiBub2JvZHkg
aGFzIGFueSBzaGFkb3dzLgorICAgIGlmIChzaGFkb3dJc0NsZWFyZWQoc2hhZG93T2Zmc2V0LCBz
aGFkb3dCbHVyKSAmJiBzaGFkb3dJc0NsZWFyZWQobV9jdXJyZW50U2hhZG93T2Zmc2V0LCBtX2N1
cnJlbnRTaGFkb3dCbHVyKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgR3JhcGhpY3NDb250ZXh0
U3RhdGUgbmV3U3RhdGU7CisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxh
Z3Mgc3RhdGVDaGFuZ2VGbGFnczsKKworICAgIGlmIChzaGFkb3dPZmZzZXQgIT0gbV9jdXJyZW50
U2hhZG93T2Zmc2V0IHx8IHNoYWRvd0JsdXIgIT0gbV9jdXJyZW50U2hhZG93Qmx1ciB8fCBzaGFk
b3dDb2xvciAhPSBtX2N1cnJlbnRTaGFkb3dDb2xvcikgeworICAgICAgICBuZXdTdGF0ZS5zaGFk
b3dPZmZzZXQgPSBzaGFkb3dPZmZzZXQ7CisgICAgICAgIG5ld1N0YXRlLnNoYWRvd0JsdXIgPSBz
aGFkb3dCbHVyOworICAgICAgICBuZXdTdGF0ZS5zaGFkb3dDb2xvciA9IHNoYWRvd0NvbG9yOwor
ICAgICAgICBzdGF0ZUNoYW5nZUZsYWdzLmFkZChHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hhZG93
Q2hhbmdlKTsKKyAgICB9CisgICAgaWYgKHNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zICE9IFNoYWRv
d3NJZ25vcmVUcmFuc2Zvcm1zOjpVbnNwZWNpZmllZCAmJiAoc2hhZG93c0lnbm9yZVRyYW5zZm9y
bXMgPT0gU2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6OlllcykgIT0gbV9jdXJyZW50U2hhZG93c0ln
bm9yZVRyYW5zZm9ybXMpIHsKKyAgICAgICAgbmV3U3RhdGUuc2hhZG93c0lnbm9yZVRyYW5zZm9y
bXMgPSAoc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMgPT0gU2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6
Olllcyk7CisgICAgICAgIHN0YXRlQ2hhbmdlRmxhZ3MuYWRkKEdyYXBoaWNzQ29udGV4dFN0YXRl
OjpTaGFkb3dzSWdub3JlVHJhbnNmb3Jtc0NoYW5nZSk7CisgICAgfQorICAgIGlmIChzdGF0ZUNo
YW5nZUZsYWdzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fb3duZXIudXBkYXRl
U3RhdGUobmV3U3RhdGUsIHN0YXRlQ2hhbmdlRmxhZ3MpOworCisgICAgbV9jdXJyZW50U2hhZG93
T2Zmc2V0ID0gc2hhZG93T2Zmc2V0OworICAgIG1fY3VycmVudFNoYWRvd0JsdXIgPSBzaGFkb3dC
bHVyOworICAgIG1fY3VycmVudFNoYWRvd0NvbG9yID0gc2hhZG93Q29sb3I7CisgICAgbV9jdXJy
ZW50U2hhZG93c0lnbm9yZVRyYW5zZm9ybXMgPSAoc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMgPT0g
U2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6Olllcyk7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29y
ZGVyOjp1cGRhdGVTaGFkb3coQ0dTdHlsZVJlZiBzdHlsZSkKK3sKKyAgICBpZiAoQ0dTdHlsZUdl
dFR5cGUoc3R5bGUpICE9IGtDR1N0eWxlU2hhZG93KSB7CisgICAgICAgIC8vIEZJWE1FOiBTdXBw
b3J0IG1vcmUga2luZHMgb2YgQ0dTdHlsZXMuCisgICAgICAgIHVwZGF0ZVNoYWRvdyh7MCwgMH0s
IDAsIENvbG9yKCksIFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOjpVbnNwZWNpZmllZCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb25zdCBhdXRvJiBzaGFkb3dTdHlsZSA9ICpzdGF0
aWNfY2FzdDxjb25zdCBDR1NoYWRvd1N0eWxlKj4oQ0dTdHlsZUdldERhdGEoc3R5bGUpKTsKKyAg
ICBhdXRvIHJhZCA9IGRlZzJyYWQoc2hhZG93U3R5bGUuYXppbXV0aCAtIDE4MCk7CisgICAgYXV0
byBzaGFkb3dPZmZzZXQgPSBGbG9hdFNpemUoc3RkOjpjb3MocmFkKSwgc3RkOjpzaW4ocmFkKSkg
KiBzaGFkb3dTdHlsZS5oZWlnaHQ7CisgICAgdXBkYXRlU2hhZG93KHNoYWRvd09mZnNldCwgc2hh
ZG93U3R5bGUucmFkaXVzLCBDR1N0eWxlR2V0Q29sb3Ioc3R5bGUpLCBTaGFkb3dzSWdub3JlVHJh
bnNmb3Jtczo6WWVzKTsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZEJlZ2lu
TGF5ZXIoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYgZ3N0YXRlLCBDR1JlY3QpCit7
CisgICAgdXBkYXRlQ1RNKCpDR0dTdGF0ZUdldENUTShnc3RhdGUpKTsKKyAgICBhdXRvIGFscGhh
ID0gQ0dHU3RhdGVHZXRBbHBoYShnc3RhdGUpOworICAgIG1fb3duZXIuYmVnaW5UcmFuc3BhcmVu
Y3lMYXllcihhbHBoYSk7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpyZWNvcmRFbmRM
YXllcihDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiBnc3RhdGUpCit7CisgICAgdXBk
YXRlQ1RNKCpDR0dTdGF0ZUdldENUTShnc3RhdGUpKTsKKyAgICBtX293bmVyLmVuZFRyYW5zcGFy
ZW5jeUxheWVyKCk7Cit9CisKK3N0YXRpYyBWZWN0b3I8Q0dTaXplPiBjb21wdXRlQWR2YW5jZXNG
cm9tUG9zaXRpb25zKGNvbnN0IENHUG9pbnQgcG9zaXRpb25zW10sIHNpemVfdCBjb3VudCwgY29u
c3QgQ0dBZmZpbmVUcmFuc2Zvcm0mIHRleHRNYXRyaXgpCit7CisgICAgVmVjdG9yPENHU2l6ZT4g
cmVzdWx0OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQgLSAxOyArK2kpIHsKKyAg
ICAgICAgYXV0byBuZXh0UG9zaXRpb24gPSBwb3NpdGlvbnNbaSArIDFdOworICAgICAgICBhdXRv
IGN1cnJlbnRQb3NpdGlvbiA9IHBvc2l0aW9uc1tpXTsKKyAgICAgICAgYXV0byBhZHZhbmNlID0g
Q0dTaXplTWFrZShuZXh0UG9zaXRpb24ueCAtIGN1cnJlbnRQb3NpdGlvbi54LCBuZXh0UG9zaXRp
b24ueSAtIGN1cnJlbnRQb3NpdGlvbi55KTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChDR1NpemVB
cHBseUFmZmluZVRyYW5zZm9ybShhZHZhbmNlLCB0ZXh0TWF0cml4KSk7CisgICAgfQorICAgIHJl
c3VsdC5jb25zdHJ1Y3RBbmRBcHBlbmQoQ0dTaXplTWFrZSgwLCAwKSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZERyYXdHbHlwaHMoQ0dS
ZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYgZ3N0YXRlLCBjb25zdCBDR0FmZmluZVRyYW5z
Zm9ybSosIGNvbnN0IENHR2x5cGggZ2x5cGhzW10sIGNvbnN0IENHUG9pbnQgcG9zaXRpb25zW10s
IHNpemVfdCBjb3VudCkKK3sKKyAgICBpZiAoIWNvdW50KQorICAgICAgICByZXR1cm47CisKKyAg
ICBDR0ZvbnRSZWYgdXNlZEZvbnQgPSBDR0dTdGF0ZUdldEZvbnQoZ3N0YXRlKTsKKyAgICBpZiAo
dXNlZEZvbnQgIT0gYWRvcHRDRihDVEZvbnRDb3B5R3JhcGhpY3NGb250KG1fY3VycmVudEZvbnQt
PnBsYXRmb3JtRGF0YSgpLmN0Rm9udCgpLCBudWxscHRyKSkuZ2V0KCkpCisgICAgICAgIHJldHVy
bjsKKworI2lmIEFTU0VSVF9FTkFCTEVECisgICAgYXV0byB0ZXh0UG9zaXRpb24gPSBDR0NvbnRl
eHRHZXRUZXh0UG9zaXRpb24obV9pbnRlcm5hbENvbnRleHQucGxhdGZvcm1Db250ZXh0KCkpOwor
ICAgIEFTU0VSVCghdGV4dFBvc2l0aW9uLngpOworICAgIEFTU0VSVCghdGV4dFBvc2l0aW9uLnkp
OworI2VuZGlmCisKKyAgICB1cGRhdGVDVE0oKkNHR1N0YXRlR2V0Q1RNKGdzdGF0ZSkpOworCisg
ICAgLy8gV2Ugd2FudCB0aGUgR1BVIHByb2Nlc3MncyBDVE0gYW5kIHRleHQgbWF0cml4IHRvIG1h
dGNoIHRoZSBjdXJyZW50IENUTSBhbmQgdGV4dCBtYXRyaXguCisgICAgLy8gVGhlIGN1cnJlbnQg
dGV4dCBtYXRyaXggaXMgYSBjb25jYXRlbmF0aW9uIG9mIHdoYXRldmVyIFdlYktpdCBzZXRzIGl0
IHRvIGFuZCB3aGF0ZXZlcgorICAgIC8vIENvcmUgVGV4dCBhcHBlbmRzIHRvIGl0LiBTbywgcmln
aHQgbm93IHdlIGhhdmUKKyAgICAvLyBDVE0gKiBtX29yaWdpbmFsVGV4dE1hdHJpeCAqIENvcmUg
VGV4dCdzIHRleHQgbWF0cml4LgorICAgIC8vIEhvd2V2ZXIsIENHQ29udGV4dEdldFRleHRNYXRy
aXgoKSBqdXN0IHRlbGxzIHVzIHdoYXQgdGhlIHdob2xlIHRleHQgbWF0cml4IGlzLCBzbworICAg
IC8vIG1fb3JpZ2luYWxUZXh0TWF0cml4ICogQ29yZSBUZXh0J3MgdGV4dCBtYXRyaXggPSBjdXJy
ZW50VGV4dE1hdHJpeC4KKyAgICAvLyBUaGUgb25seSB3YXkgd2UgY2FuIGVtdWxhdGUgQ29yZSBU
ZXh0J3MgdGV4dCBtYXRyaXggaXMgYnkgbW9kaWZ5aW5nIHRoZSBDVE0gaGVyZS4KKyAgICAvLyBT
bywgaWYgd2UgZG8gdGhhdCwgdGhlIEdQVSBwcm9jZXNzIHdpbGwgaGF2ZQorICAgIC8vIENUTSAq
IFggKiBtX29yaWdpbmFsVGV4dE1hdHJpeAorICAgIC8vIElmIHlvdSBzZXQgdGhlc2UgdHdvIGVx
dWFsIHRvIGVhY2ggb3RoZXIsIGFuZCBzb2x2ZSBmb3IgWCwgeW91IGdldAorICAgIC8vIENUTSAq
IGN1cnJlbnRUZXh0TWF0cml4ID0gQ1RNICogWCAqIG1fb3JpZ2luYWxUZXh0TWF0cml4CisgICAg
Ly8gY3VycmVudFRleHRNYXRyaXggKiBpbnZlcnNlKG1fb3JpZ2luYWxUZXh0TWF0cml4KSA9IFgK
KyAgICBBZmZpbmVUcmFuc2Zvcm0gY3VycmVudFRleHRNYXRyaXggPSBDR0NvbnRleHRHZXRUZXh0
TWF0cml4KG1faW50ZXJuYWxDb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpKTsKKyAgICBBZmZpbmVU
cmFuc2Zvcm0gY3RtRml4dXA7CisgICAgaWYgKGF1dG8gaW52ZXJ0ZWRPcmlnaW5hbFRleHRNYXRy
aXggPSBtX29yaWdpbmFsVGV4dE1hdHJpeC5pbnZlcnNlKCkpCisgICAgICAgIGN0bUZpeHVwID0g
Y3VycmVudFRleHRNYXRyaXggKiBpbnZlcnRlZE9yaWdpbmFsVGV4dE1hdHJpeC52YWx1ZSgpOwor
ICAgIEFmZmluZVRyYW5zZm9ybSBpbnZlcnNlQ1RNRml4dXA7CisgICAgaWYgKGF1dG8gaW52ZXJz
ZSA9IGN0bUZpeHVwLmludmVyc2UoKSkKKyAgICAgICAgaW52ZXJzZUNUTUZpeHVwID0gaW52ZXJz
ZS52YWx1ZSgpOworICAgIGVsc2UKKyAgICAgICAgY3RtRml4dXAgPSBBZmZpbmVUcmFuc2Zvcm0o
KTsKKyAgICBtX293bmVyLmNvbmNhdENUTShjdG1GaXh1cCk7CisKKyAgICB1cGRhdGVGaWxsQ29s
b3IoQ0dHU3RhdGVHZXRGaWxsQ29sb3IoZ3N0YXRlKSk7CisgICAgdXBkYXRlU3Ryb2tlQ29sb3Io
Q0dHU3RhdGVHZXRTdHJva2VDb2xvcihnc3RhdGUpKTsKKyAgICB1cGRhdGVTaGFkb3coQ0dHU3Rh
dGVHZXRTdHlsZShnc3RhdGUpKTsKKworICAgIG1fb3duZXIuYXBwZW5kSXRlbUFuZFVwZGF0ZUV4
dGVudChEcmF3R2x5cGhzOjpjcmVhdGUoKm1fY3VycmVudEZvbnQsIGdseXBocywgY29tcHV0ZUFk
dmFuY2VzRnJvbVBvc2l0aW9ucyhwb3NpdGlvbnMsIGNvdW50LCBjdXJyZW50VGV4dE1hdHJpeCku
ZGF0YSgpLCBjb3VudCwgY3VycmVudFRleHRNYXRyaXgubWFwUG9pbnQocG9zaXRpb25zWzBdKSwg
bV9zbW9vdGhpbmdNb2RlKSk7CisKKyAgICBtX293bmVyLmNvbmNhdENUTShpbnZlcnNlQ1RNRml4
dXApOworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6cmVjb3JkRHJhd0ltYWdlKENHUmVu
ZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmIGdzdGF0ZSwgQ0dSZWN0IHJlY3QsIENHSW1hZ2VS
ZWYgY2dJbWFnZSkKK3sKKyAgICB1cGRhdGVDVE0oKkNHR1N0YXRlR2V0Q1RNKGdzdGF0ZSkpOwor
ICAgIHVwZGF0ZVNoYWRvdyhDR0dTdGF0ZUdldFN0eWxlKGdzdGF0ZSkpOworCisgICAgLy8gQ29y
ZSBHcmFwaGljcyBhc3N1bWVzIGEgInkgdXAiIGNvb3JkaW5hdGUgc3lzdGVtLCBidXQgaW4gV2Vi
S2l0LCB3ZSB1c2UgYSAieS1kb3duIiBjb29yZGluYXRlIHN5c3RlbS4KKyAgICAvLyBUaGlzIG1l
YW5zIHRoYXQgV2ViS2l0J3MgZHJhd2luZyByb3V0aW5lcyAoR3JhcGhpY3NDb250ZXh0OjpkcmF3
SW1hZ2UoKSkgaW50ZW50aW9uYWxseSBkcmF3IGltYWdlcyB1cHNpZGUtZG93biBmcm9tIENvcmUg
R3JhcGhpY3MncyBwb2ludCBvZiB2aWV3LgorICAgIC8vIChUaGVyZSdzIGEgeS1mbGlwIGluc2lk
ZSB0aGUgaW1wbGVtZW50YXRpb24gb2YgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoKS4pCisg
ICAgLy8gVGhlIHJlY3QgaGFzIHRoZSByaWdodCBib3VuZHMsIGJ1dCB3ZSBuZWVkIHRvIHRyYW5z
Zm9ybSBmcm9tIENHJ3MgY29vcmRpbmF0ZSBzeXN0ZW0gdG8gV2ViS2l0J3MgYnkgcGVyZm9ybWlu
ZyBvdXIgb3duIHktZmxpcCBzbyBpbWFnZXMgYXJlIGRyYXduIHRoZSByaWdodC1zaWRlLXVwLgor
ICAgIC8vIFdlIGRvIHRoaXMgYXQgdGhlIGJvdW5kYXJ5IGJldHdlZW4gdGhlIHR3byBBUElzLCB3
aGljaCBpcyByaWdodCBoZXJlLgorICAgIG1fb3duZXIudHJhbnNsYXRlKDAsIHJlY3Quc2l6ZS5o
ZWlnaHQgKyAyICogcmVjdC5vcmlnaW4ueSk7CisgICAgbV9vd25lci5zY2FsZShGbG9hdFNpemUo
MSwgLTEpKTsKKworICAgIGF1dG8gaW1hZ2UgPSBCaXRtYXBJbWFnZTo6Y3JlYXRlKGNnSW1hZ2Up
OworICAgIG1fb3duZXIuYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChEcmF3SW1hZ2U6OmNyZWF0
ZShpbWFnZSwgcmVjdCwge3sgfSwgaW1hZ2UtPnNpemUoKX0sIHsgSW1hZ2VPcmllbnRhdGlvbjo6
T3JpZ2luVG9wTGVmdCB9KSk7CisKKyAgICAvLyBVbmRvIHRoZSBhYm92ZSB5LWZsaXAgdG8gcmVz
dG9yZSB0aGUgY29udGV4dC4KKyAgICBtX293bmVyLnNjYWxlKEZsb2F0U2l6ZSgxLCAtMSkpOwor
ICAgIG1fb3duZXIudHJhbnNsYXRlKDAsIC0ocmVjdC5zaXplLmhlaWdodCArIDIgKiByZWN0Lm9y
aWdpbi55KSk7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpkcmF3R2x5cGhzKGNvbnN0
IEZvbnQmIGZvbnQsIGNvbnN0IEdseXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgdW5zaWduZWQgZnJv
bSwgdW5zaWduZWQgbnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBzdGFydFBvaW50LCBGb250
U21vb3RoaW5nTW9kZSBzbW9vdGhpbmdNb2RlKQoreworICAgIHByZXBhcmVJbnRlcm5hbENvbnRl
eHQoZm9udCwgc21vb3RoaW5nTW9kZSk7CisgICAgRm9udENhc2NhZGU6OmRyYXdHbHlwaHMobV9p
bnRlcm5hbENvbnRleHQsIGZvbnQsIGdseXBoQnVmZmVyLCBmcm9tLCBudW1HbHlwaHMsIHN0YXJ0
UG9pbnQsIHNtb290aGluZ01vZGUpOworICAgIGNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KCk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIERpc3BsYXlMaXN0CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNS
ZWNvcmRlckhhcmZCdXp6LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yM2FjMzI0YjdiMDBhOWUxNmE1NmFkNjcw
Y2UwNGNmYTc3ZmM5ZmE4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVySGFy
ZkJ1enouY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGlzcGxheUxp
c3REcmF3R2x5cGhzUmVjb3JkZXIuaCIKKworI2luY2x1ZGUgIkRpc3BsYXlMaXN0SXRlbXMuaCIK
KyNpbmNsdWRlICJEaXNwbGF5TGlzdFJlY29yZGVyLmgiCisjaW5jbHVkZSAiRmxvYXRQb2ludC5o
IgorI2luY2x1ZGUgIkZvbnQuaCIKKyNpbmNsdWRlICJHbHlwaEJ1ZmZlci5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK25hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CisKK0RyYXdHbHlwaHNSZWNv
cmRlcjo6RHJhd0dseXBoc1JlY29yZGVyKFJlY29yZGVyJiBvd25lcikKKyAgICA6IG1fb3duZXIo
b3duZXIpCit7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpkcmF3R2x5cGhzKGNvbnN0
IEZvbnQmIGZvbnQsIGNvbnN0IEdseXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgdW5zaWduZWQgZnJv
bSwgdW5zaWduZWQgbnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBzdGFydFBvaW50LCBGb250
U21vb3RoaW5nTW9kZSBzbW9vdGhpbmdNb2RlKQoreworICAgIG1fb3duZXIuYXBwZW5kSXRlbUFu
ZFVwZGF0ZUV4dGVudChEcmF3R2x5cGhzOjpjcmVhdGUoZm9udCwgZ2x5cGhCdWZmZXIuZ2x5cGhz
KGZyb20pLCBnbHlwaEJ1ZmZlci5hZHZhbmNlcyhmcm9tKSwgbnVtR2x5cGhzLCBzdGFydFBvaW50
LCBzbW9vdGhpbmdNb2RlKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIERpc3BsYXlMaXN0CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVy
LmNwcAppbmRleCBmNjZjZjFlY2ZiMmYwOTgzYWI0YzdlYmFiZGQxMGE3Mzk4MTQ2MmRiLi5mMDk2
ZjBiZDcwODY4ZjExZmE4OGMwZjU1MDZkYjc0NWQ3MTBjODMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCkBAIC00Miw2ICs0Miw3IEBAIFJlY29yZGVyOjpSZWNv
cmRlcihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIERpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwg
Y29uc3QgR3JhCiAgICAgOiBHcmFwaGljc0NvbnRleHRJbXBsKGNvbnRleHQsIGluaXRpYWxDbGlw
LCBBZmZpbmVUcmFuc2Zvcm0oKSkKICAgICAsIG1fZGlzcGxheUxpc3QoZGlzcGxheUxpc3QpCiAg
ICAgLCBtX2RlbGVnYXRlKGRlbGVnYXRlKQorICAgICwgbV9kcmF3R2x5cGhzUmVjb3JkZXIoKnRo
aXMpCiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKERpc3BsYXlMaXN0cywgc3RyZWFtIDw8ICJcblJl
Y29yZGluZyB3aXRoIGNsaXAgIiA8PCBpbml0aWFsQ2xpcCk7CiAgICAgbV9zdGF0ZVN0YWNrLmFw
cGVuZCh7IHN0YXRlLCBpbml0aWFsQ1RNLCBpbml0aWFsQ2xpcCB9KTsKQEAgLTE1Nyw3ICsxNTgs
NyBAQCB2b2lkIFJlY29yZGVyOjpzZXRNaXRlckxpbWl0KGZsb2F0IG1pdGVyTGltaXQpCiAKIHZv
aWQgUmVjb3JkZXI6OmRyYXdHbHlwaHMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZm
ZXImIGdseXBoQnVmZmVyLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0
IEZsb2F0UG9pbnQmIHN0YXJ0UG9pbnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUp
CiB7Ci0gICAgYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChEcmF3R2x5cGhzOjpjcmVhdGUoZm9u
dCwgZ2x5cGhCdWZmZXIuZ2x5cGhzKGZyb20pLCBnbHlwaEJ1ZmZlci5hZHZhbmNlcyhmcm9tKSwg
bnVtR2x5cGhzLCBzdGFydFBvaW50LCBzbW9vdGhpbmdNb2RlKSk7CisgICAgbV9kcmF3R2x5cGhz
UmVjb3JkZXIuZHJhd0dseXBocyhmb250LCBnbHlwaEJ1ZmZlciwgZnJvbSwgbnVtR2x5cGhzLCBz
dGFydFBvaW50LCBzbW9vdGhpbmdNb2RlKTsKIH0KIAogSW1hZ2VEcmF3UmVzdWx0IFJlY29yZGVy
OjpkcmF3SW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBj
b25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIGltYWdl
UGFpbnRpbmdPcHRpb25zKQpAQCAtMjM3LDYgKzIzOCw5IEBAIHZvaWQgUmVjb3JkZXI6OnNjYWxl
KGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSkKIAogdm9pZCBSZWNvcmRlcjo6Y29uY2F0Q1RNKGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtKQogeworICAgIGlmICh0cmFuc2Zvcm0uaXNJZGVu
dGl0eSgpKQorICAgICAgICByZXR1cm47CisKICAgICBjdXJyZW50U3RhdGUoKS5jb25jYXRDVE0o
dHJhbnNmb3JtKTsKICAgICBhcHBlbmRJdGVtKENvbmNhdGVuYXRlQ1RNOjpjcmVhdGUodHJhbnNm
b3JtKSk7CiB9CkBAIC00MjIsNyArNDI2LDE3IEBAIHZvaWQgUmVjb3JkZXI6OmNsaXBUb0ltYWdl
QnVmZmVyKEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JikKIAogdm9pZCBSZWNvcmRlcjo6
Y2xpcFRvRHJhd2luZ0NvbW1hbmRzKGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIENvbG9y
U3BhY2UgY29sb3JTcGFjZSwgRnVuY3Rpb248dm9pZChHcmFwaGljc0NvbnRleHQmKT4mJiBkcmF3
aW5nRnVuY3Rpb24pCiB7Ci0gICAgYXV0byByZWNvcmRpbmdDb250ZXh0ID0gbWFrZVVuaXF1ZTxE
cmF3aW5nQ29udGV4dD4oZGVzdGluYXRpb24uc2l6ZSgpKTsKKyAgICAvLyBUaGUgaW5pdGlhbCBD
VE0gbWF0Y2hlcyBJbWFnZUJ1ZmZlcidzIGluaXRpYWwgQ1RNLgorICAgIEFmZmluZVRyYW5zZm9y
bSB0cmFuc2Zvcm0gPSBnZXRDVE0oR3JhcGhpY3NDb250ZXh0OjpEZWZpbml0ZWx5SW5jbHVkZURl
dmljZVNjYWxlKTsKKyAgICBGbG9hdFNpemUgc2NhbGVGYWN0b3IodHJhbnNmb3JtLnhTY2FsZSgp
LCB0cmFuc2Zvcm0ueVNjYWxlKCkpOworICAgIGF1dG8gc2NhbGVkU2l6ZSA9IGV4cGFuZGVkSW50
U2l6ZShkZXN0aW5hdGlvbi5zaXplKCkgKiBzY2FsZUZhY3Rvcik7CisKKyAgICBBZmZpbmVUcmFu
c2Zvcm0gaW5pdGlhbENUTTsKKyAgICBpbml0aWFsQ1RNLnNjYWxlKDEsIC0xKTsKKyAgICBpbml0
aWFsQ1RNLnRyYW5zbGF0ZSgwLCAtc2NhbGVkU2l6ZS5oZWlnaHQoKSk7CisgICAgaW5pdGlhbENU
TS5zY2FsZShzY2FsZWRTaXplIC8gZGVzdGluYXRpb24uc2l6ZSgpKTsKKworICAgIGF1dG8gcmVj
b3JkaW5nQ29udGV4dCA9IG1ha2VVbmlxdWU8RHJhd2luZ0NvbnRleHQ+KGRlc3RpbmF0aW9uLnNp
emUoKSwgaW5pdGlhbENUTSk7CiAgICAgZHJhd2luZ0Z1bmN0aW9uKHJlY29yZGluZ0NvbnRleHQt
PmNvbnRleHQoKSk7CiAgICAgYXBwZW5kSXRlbShDbGlwVG9EcmF3aW5nQ29tbWFuZHM6OmNyZWF0
ZShkZXN0aW5hdGlvbiwgY29sb3JTcGFjZSwgcmVjb3JkaW5nQ29udGV4dC0+dGFrZURpc3BsYXlM
aXN0KCkpKTsKIH0KQEAgLTQ1MSwxMyArNDY1LDYgQEAgdm9pZCBSZWNvcmRlcjo6YXBwZW5kSXRl
bUFuZFVwZGF0ZUV4dGVudChSZWY8RHJhd2luZ0l0ZW0+JiYgaXRlbSkKICAgICB1cGRhdGVJdGVt
RXh0ZW50KG5ld0l0ZW0pOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBJdGVtVHlwZT4KLUl0ZW1U
eXBlJiBSZWNvcmRlcjo6YXBwZW5kSXRlbShSZWY8SXRlbVR5cGU+JiYgaXRlbSkKLXsKLSAgICB3
aWxsQXBwZW5kSXRlbShpdGVtLmdldCgpKTsKLSAgICByZXR1cm4gZG93bmNhc3Q8SXRlbVR5cGU+
KG1fZGlzcGxheUxpc3QuYXBwZW5kKFdURk1vdmUoaXRlbSkpKTsKLX0KLQogdm9pZCBSZWNvcmRl
cjo6dXBkYXRlSXRlbUV4dGVudChEcmF3aW5nSXRlbSYgaXRlbSkgY29uc3QKIHsKICAgICBpZiAo
T3B0aW9uYWw8RmxvYXRSZWN0PiByZWN0ID0gaXRlbS5sb2NhbEJvdW5kcyhncmFwaGljc0NvbnRl
eHQoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaAppbmRleCA4NjhjZTJh
NzQzN2M3NDQ4Zjg2NWVlOTAyOTJlZTBiMTM4YzQ0NDNhLi4wY2FjZWE0ZmRiOWIzNWM1ZDcyNjgx
OWM2NjhjN2UzYThhZDMyZDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVy
LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRGlzcGxheUxp
c3QuaCIKKyNpbmNsdWRlICJEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIgogI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dEltcGwuaCIKICNpbmNsdWRlICJJbWFnZS5oIiAvLyBGb3IgSW1h
Z2U6OlRpbGVSdWxlLgogI2luY2x1ZGUgIlRleHRGbGFncy5oIgpAQCAtNjEsOCArNjIsNiBAQCBw
dWJsaWM6CiAKICAgICBzaXplX3QgaXRlbUNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9kaXNwbGF5
TGlzdC5pdGVtQ291bnQoKTsgfQogCi0gICAgdm9pZCBhcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50
KFJlZjxEcmF3aW5nSXRlbT4mJik7Ci0KICAgICBjbGFzcyBEZWxlZ2F0ZSB7CiAgICAgcHVibGlj
OgogICAgICAgICB2aXJ0dWFsIH5EZWxlZ2F0ZSgpIHsgfQpAQCAtNzEsNiArNzAsNyBAQCBwdWJs
aWM6CiAgICAgfTsKIAogcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgRHJhd0dseXBoc1JlY29y
ZGVyOwogICAgIGJvb2wgaGFzUGxhdGZvcm1Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gZmFsc2U7IH0KICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dCogcGxhdGZvcm1Db250ZXh0
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQogCkBAIC0xNTAsNiArMTUwLDcg
QEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBJdGVtVHlwZT4KICAgICBJdGVtVHlw
ZSYgYXBwZW5kSXRlbShSZWY8SXRlbVR5cGU+JiYpOwogICAgIHZvaWQgd2lsbEFwcGVuZEl0ZW0o
Y29uc3QgSXRlbSYpOworICAgIHZvaWQgYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChSZWY8RHJh
d2luZ0l0ZW0+JiYpOwogCiAgICAgdm9pZCBhcHBlbmRTdGF0ZUNoYW5nZUl0ZW0oY29uc3QgR3Jh
cGhpY3NDb250ZXh0U3RhdGVDaGFuZ2UmLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFu
Z2VGbGFncyk7CiAKQEAgLTE5NCw4ICsxOTUsMTcgQEAgcHJpdmF0ZToKICAgICBEZWxlZ2F0ZSog
bV9kZWxlZ2F0ZTsKIAogICAgIFZlY3RvcjxDb250ZXh0U3RhdGUsIDMyPiBtX3N0YXRlU3RhY2s7
CisKKyAgICBEcmF3R2x5cGhzUmVjb3JkZXIgbV9kcmF3R2x5cGhzUmVjb3JkZXI7CiB9OwogCit0
ZW1wbGF0ZTx0eXBlbmFtZSBJdGVtVHlwZT4KK0l0ZW1UeXBlJiBSZWNvcmRlcjo6YXBwZW5kSXRl
bShSZWY8SXRlbVR5cGU+JiYgaXRlbSkKK3sKKyAgICB3aWxsQXBwZW5kSXRlbShpdGVtLmdldCgp
KTsKKyAgICByZXR1cm4gZG93bmNhc3Q8SXRlbVR5cGU+KG1fZGlzcGxheUxpc3QuYXBwZW5kKFdU
Rk1vdmUoaXRlbSkpKTsKK30KKwogfQogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3RleHQvY2FudmFzLUNPTFItZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9j
YW52YXMtQ09MUi1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxY2IxODcwMGY3NjBjZTVhMDYx
NDBlYTU4Mzg0NmU2MDU5MjgzNDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3RleHQvY2FudmFzLUNPTFItZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDU0IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAgICBmb250
LWZhbWlseTogIldlYkZvbnQiOworICAgIHNyYzogdXJsKCJyZXNvdXJjZXMvQWhlbS1DT0xSLnR0
ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsKK30KKworYm9keSB7CisgICAgcG9zaXRpb246IHJlbGF0
aXZlOworfQorCisjb25lIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgbGVmdDogMTAw
cHg7CisgICAgdG9wOiA0MHB4OworfQorCisjdHdvIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7
CisgICAgbGVmdDogMzAwcHg7CisgICAgdG9wOiA0MHB4OworICAgIGNvbG9yOiByZ2IoMjU1LCAw
LCAyNTUpOworfQorCisjdGhyZWUgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0
OiAzMDBweDsKKyAgICB0b3A6IDQwcHg7CisgICAgY29sb3I6IHJnYigwLCAyNTUsIDI1NSk7Cit9
CisKKyNmb3VyIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgbGVmdDogNTAwcHg7Cisg
ICAgdG9wOiA0MHB4OworfQorCitkaXYgeworICAgIGZvbnQ6IDIwMHB4ICJXZWJGb250IjsKKyAg
ICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgbGVmdDogNDAwcHg7CisgICAgdG9wOiA0MHB4Owor
fQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0ib25lIj5CPC9kaXY+Cis8ZGl2
IGlkPSJ0d28iPkI8L2Rpdj4KKzxkaXYgaWQ9InRocmVlIj4mI3g3RUI1OzwvZGl2PgorPGRpdiBp
ZD0iZm91ciI+QjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC90ZXh0L2NhbnZhcy1DT0xSLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY2Fu
dmFzLUNPTFIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YzIyMmRiNDIxNDQ0MjM4MjMzOTI1YjE4NjY4MDRk
MGI4NjRkMzE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZh
cy1DT0xSLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHN0eWxlPgorQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6ICJXZWJGb250IjsK
KyAgICBzcmM6IHVybCgicmVzb3VyY2VzL0FoZW0tQ09MUi50dGYiKSBmb3JtYXQoInRydWV0eXBl
Iik7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdp
ZHRoPSI3NTAiIGhlaWdodD0iMzUwIiBzdHlsZT0id2lkdGg6IDc1MHB4OyBoZWlnaHQ7IDM1MHB4
OyI+PC9jYW52YXM+Cis8c2NyaXB0PgorbGV0IGZvbnQgPSAiMjAwcHggJ1dlYkZvbnQnIjsKK2Rv
Y3VtZW50LmZvbnRzLmxvYWQoZm9udCkudGhlbihmdW5jdGlvbigpIHsKKyAgICBsZXQgY2FudmFz
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOworICAgIGxldCBjb250ZXh0ID0g
Y2FudmFzLmdldENvbnRleHQoIjJkIik7CisgICAgY29udGV4dC5mb250ID0gZm9udDsKKyAgICBj
b250ZXh0LmZpbGxUZXh0KCJCQUIiLCAxMDAsIDIwMCk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3Jlc291cmNlcy9B
aGVtLUNPTFIudHRmIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3Jlc291cmNlcy9BaGVtLUNPTFIu
dHRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmMyMjNhNTU0MzA2NTk5OTY4NTExODBlOThiMTU0NTRmN2M0YjJkODYK
R0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDIxODI4CnpjbWVIUDMzd0Qkd213eldkdl9wIzVQP0No
Z2RIWDZZQEdua1VgUGxzNDxveXYmKFRpT1Mpa00xclZ8bm85Q1hCZQp6MFM2dVRRRHopbTl9YkVT
NmBmSDVmcEl8ezVMclQwI3o2LWUyRWxQNSljYTJAPX1KZiNwM25FYmtNfnZqdEV6a00KemE8K1Qh
eXtBc3lUb1E7Vmk1OFBZUTtJS35KV1V1d2xhUjk7Kk1RPEZNVXc/bVFqcT17U0s1V3N2dlQ1OVU7
bXMpCnpOQ3RkKU1PYHA5Pmg3NWIwbXEyIXpVcDgrTXJWK2wkZ3ZSUiQ8XlUyc35rZ3BNU3lRNT5W
SkRwQ3xKMmAlM0V1UQp6KGcmYkNQPWdHbyQ1c0clMkgtKDhicSZxXjlBWG1TVytMMHthSV8tMGNF
IyNtTTEhe3lpSjVpNT05dGlyQGVmMEYKemt8VipvKEF3Yn1gdkkxVGhPZFo0O3wmIyRUciFZbz5V
dHN4ZD1nOTcxNkx9RWduWmx3QSt3S35GWEFxMDxxOWVJCnpCTCRFb1o1TmkzOWFZemZIdl8meWRr
UHlVTjAxblM0Vm5ENm19cGZwJHJEdW93fktPJVdqZGVhPEJCOUpnK0xfSgp6Q01FZnBsWW0+MjBU
Sj1WQ3tUemk2P2YoQG0yNVdYUn5RWXpOdXl+OVR9PTx1QmxIe2tFaj4hVnFtfWQrSngpKjEKemxr
XmxsUDUoaXc9byRKd0p4a0JnOGhXMW9saClEO15kaH1QPiohXkFoNWtUKXEqdilSZFl2fVZNdFh4
YihQcjkwCnpmMSk/KDlva0NvKHRHcjArRDY7eTFLTDMhKGt9RyQ5JWBZeilKaC1HJE1neTlxcmNG
bl5qRiRYcFY4bXcwRFZEIQp6ciRoNylJIXNeRTVqc2o9KExaNGctX1c7b2pOMGZwRE1HZHxVMSUy
VzZnUEAqaD9+V287eDJLd3hKT3pwSnUwbn4KejkrJWNoZjBQfXZTNUFfWDx5NSghKytSTFImWDkt
NWV0RVE5bEFlKTFCdHkoX1djMThQJD5eMlFGUWIzUFNzQ1lLCnpPdzcxRUJiMEc/QERATSRvbj0l
ZW1BVDY8RXhXYUJgUDZ3Kz4hdWdZYGU0P3NpX1dlZEhnYGxnRkU7UCRIT3Q7VAp6QnAmRGZWK3t7
ZWIrX1dBeD9CQShiK144Zz8ldlhNX3I2SllKNVE+KyZzRShXPl8mSXJ3ZC0hME5xME5DKDQ4b3wK
eldnbTNjVGtaP3A0VWxEM2NjVl9LeVVQRVQ/dWQxI2U0PjE7ZTRgdnVUOXIyQ0dkZUByMTktM1Vz
ZDdPMTlNRmc0CnpQfktIYFF5Km9VdlF2M1NgNVA9Wk4lPXQ4Z1ZFKGZpZ1dpVkExT1BPMmJCJVYx
ODh8YWEoM2FsT0Y1YDRTOVU4Twp6RHNMIURrJHcoIXdrZnhPLWFjaWVhKzdqe2EtKThLTj07d2ll
dCQ+ZF5iLUM0NyUoblRleFkyYXRPdGNobHh2aVEKeiU0fXQ5K1pTeXwrWVlwfnc2KFZGWHhyMkZs
ZVRFdnl0V2E/LWZ2NTdKPEB1KF5+PTNWPnVhcWBUMz5FbSpaTlpICnorU1hPQURfYkFoYHw5NE9U
UnZgaXZ0QGhCd3dCY2BIP19SZ3ZaZHZmbVBjRHxabjxJNGNlQDV7Sl5ycmtTPmFqUgp6PlRnIyt3
Ui07UUReQCtZPmZXYX1LYXV+JEBXJjZ8YGA1Y2FUZlRHWWlmYj5BaiFwaSVAUmQ0KFZSK1d4X3RK
bncKekYzZzk/QncrTVBORy16REkxaDhCZ3FlX1hRX0BvZ3I+Q1NaNSlaY0JBc2pqR2xqTEtxaV5M
KFViRVF6KXVodF99CnpOfCpLQD54O3NeUio5dHAlTVBydVY5ZntDb01eMkpibFI8ckBGRFBLbCUz
djNVQ31xRz97QyZoZjRYYCo9KiR5Kwp6dnt1VlV2d1NxbU4zKG8xJVNXPyhHfE5YantkX2JsPmU3
VypWP35+PD0kalJSdzQkKDlCLSlDYHBMUzd+KHtEdT0Kem1QLTRAKiZIaU0oUEtzOFklTjtVWk9K
QzM1TX0mamlGKVV6NEJXSjdsbGxeaFhoZTQ8WVY/Vk8jcWA5c0dxenZXCnpeU3E8dm1pRl5rdTRr
aXsmRWU8ekp4XmpjZmdZYnlCVWhZQEtZWDlrX1ctRSUoRiFAe0tPcWZ5X30wWXs2Nj47Ygp6VkE7
VWAyT0hxPUVGOTdMUW4mIVh4NDJmfiFxaH5TeGJWa3Y4aDx+cSUkdENaRFcmU2FianFZTEc/OFhm
SVludDkKei05JmR8UHRofmpDQTA7KmZBKFFkJnZDJmteYzRtUklsQD9Cdk1AKWU2NV8mUTtXcHR1
VklfWGczOWt4bzMlaTg8CnohY2tFYWR4YF9aO2JLNTY3Tj59cGlnVSMjQGo3dnRfPmxPZHhLYFhD
ejk7UyM0flhBTDR5aVp4SSpwVkBPQjE5Uwp6UWMjTFdTNGxUWWNTJFJ4Um9EciVTPXVnckF7fjwy
WTtJZWNaSl5DPmA/Mmsod3VAfCl3a3ZFYCtpdFBsVnwmIUwKeitWJShBbzM7O2FwVzQyKGxSZTRh
LSMqbHlYRF9tcyopT3J6KmM8S0YrVjhNR1YxTH5IeSMwMGlSe0l8Tj1rfFgoCnpZPnBKaVMmbmxZ
Z151eCNYXnpWclZhSnRAPm05I3pKblZTZEB1SzRtJERiVl5JU3g5JGJHbj47b0VncTY9WHVVYQp6
JlJOYjFYVXdfQ2Q5KDlaYDJFKVRkKj5fOEtSSV9lfEtkRkNSOXJxK0tpM2RmdUlxZikxK0klLSl2
Z0JESExseFQKel9xIWYqdCNRNVBkZEljZl5fbEF7eDh6UUNwWG5hcUVed0UpckBEWFVwNjcwTUZM
QkBMezxacmxfWTNaZz8pVGxUCno/bDBXbWRZcW5BUHI0YDVHc1pLfkd0KlA8aUZ5YCNadH5waWBI
a2xwJiYhQElvKTB8eEpwYj88X2o8ajN5QFMwdQp6LW0lYHYtWnxiWFpgYH1zZHo8JEA/QEk0Oy1k
RFlFZHZ8JkZkeW8xPVVyKmx2LSo4YGAraDRKN2l0a2UyVHdqeSMKekleUXppTCV0X3tZa2VEaEBB
PnhuNCowJUZhd1BSbWw5TlV6alpUXlhZcilEU3FeWXx3KmVwQShRPUNQRWd5Kz5LCnpabyhsV2df
XkUqTlRlUEQ/LTFsYWk4NGZvbWMmKiRtcER2TStvYFlVKlY3SzxQdD88JTxRajJgcDd6cTlVVGdK
cQp6NTFRNiVjUk4ye19zLVBRMEArZzQ5VSFQRGt+NExMby1he0tZUE8hWHEwVHJ4WjZ7eDlzaClO
cWYwfn41VjQlIz4KeihfWlM7cDYpQHpRKX40NldZa30jciZCPWRFPE4xfmA0MiErIUdedHYhbEJm
TV4peiZud3AzMztDdSNUU1kzTDtGCnpjWH1FK04hejVTcF84PCZkS3gtTytwbmpnbGU5eTY4YWYl
dW8ofEszUEtHWWopNSt1LWBuSH08cCZtb0c+Ki0jfAp6LSR5ZzNoQyhEJGtAfkRkc3RSKkpnY15g
NE1AZCtQc3dvYiowY3BOI0VuP0omOGV5dVgzZ2xMenRkND8hQkE4OE4Kej48eHxKSntOV0Jrcnpp
ZipLNUY/djF7MEJQQG1+PVROJH1nNnstaS0zWiQhJVElZWd9P3oqUVhxaD1Gb2hDbjl7CnomVDEo
SlR2MTQyYTJpKUpSR31ue1JHaUxqRlZTUVR0MT5wQkpPWXxCNiQ0WDk8KmIoR3Q4SSZjdU1SKGhe
TlcjTgp6NH5SS3VVYzt6ZXVlYWJqR1NWXnBTVHteQEc7KFNuVExiYiZReDw7UXE4dWZlWHgpKC1P
UC0qVzM4KUBpYVNQVTgKejItc1BrSUM1QXMlKjlCXiZ3NktHdm5VJWx7ZGhMMmJ5KHRSbCFqR31H
UGchUVBnNkA4UlppK0A3OWlIMik7cUZfCnpCX0RWYWM0NCZadUJLNmJHSjllXngjeVY9PTlYPE1o
RyEtNiVJUWtuWENTOWlnLWNQbDIwVXAhJU5tV1NgNF55YAp6KXtvcCVZLXR5dXRRcX55eCg9JiNH
Jl5OMDRGZjtoMGMoc2N0cUItd1JoWHNpJSEhUUorIzgwaWF2dzNSMVAxT2cKej0yOUMwam9edX5G
KCNJeTk/dVlaUGV2fjFXa1pBZkdoMThgKnlwUiNhQm10bDMpfH0lYXZHeklicnNpcG8rWiNRCno9
ZHs8Pz5NX0B2MjYrdDVMb0xtZzRKO2EwYWs+SV8hTTRoakwocDBmbT5WRD8+KXU+eW1hPHdjazNu
WFppRHc2dgp6bFNoTjUoK1pTbV9ScUw5SjJMb1dpPmlaZUd6dmtxVi1LU2wmbkMyRGk+Xl58XjRK
V2tfP2NyKCNfc3N4NXlEIUQKejttTEFwYGUoVSQleFR0P241aV5lUmdqeDBiZC18MDtRbkpDbjcy
ZiYmYj8mbCUrTSFtcTRUYEtHWFFKZDgxWGFkCno5TzhaJjNCUVV7MG80dyliZktPYnB3amwtMEAj
YUl3fThnQz1ON2VORDVrPnArK3ZKbHQhfTlhTHBKM0MyVXtDYwp6JCk8Y3opb083JSpIbHRxIWoo
OzxQfHMrVWdIYVhHVFhETGVMJishO1IwMTReWSRhNkVVWGx4WmNfeWRgdjw+WEoKejs1JmhscCM7
V1U4VjdvYm4jR1haZkxNPCNvazVTRzFQIWU7ITN+IWRiIXVET3A+MENIK303TW40NEpqVHUoe3tf
Cno7RyFkNkVOX0FAbWRWVUBVSSN3Mko3SChvajl1ZDwoVnBTWDxxMztuUFA2ZWRzNTR+ZG8jNnk7
NDRIWGoqc0tTfQp6SHFPTCo0bWVMKDlHMzw8Tlh+R2NpRlV4JCZzQDgtMTI2Z0wrWFF2aXEyRlcp
ZEVtc0REY04+NElBTzZHb1VqIyEKel5HIUMjYUd9WTE3JmNwQks0Y0E7cXxATXAmR1A4VExtZmwm
YEtWb0Q7IWxHVStRfjsqd3JTKUEwT3kjcjYjeUBjCnooWkUqIz5DRSY7cD4+SWdVYTJhKkY7ezMl
UEtVTG8+c2lre2l5Q3VPUzJKTjheSG0qWUNUKGByKSZeYzNIUSZmKwp6KzVQT3M5ISFSUTRiJGZ7
S01od3NuPTtfJF5eYml5bz1NOXcqWVpsJC1FMkJXI1M+SFVYfUROQjhtPWtyU2E/bjAKel5AZT5B
UEhEYW08MkAwNyQyQyZKenVBUHA3YEFYU3sya2tPTVp3R2c8N2ImOHU+RXAlRWo2I1dhYTl4QStP
QTIqCnpHeCt6e2w7TFojbXNnOCpQdCE1YCVCTT1kNmt+eGBpTFFBdHswJlhkWDVXUDY5MWtrSVde
KFZFVyNWfj5YVTNEYAp6PFVTMDs0ITgkVCNMUndEY2JJZCMhRiohaHBOTSR8dGRLcE41YyleKyUw
P282R0hROTxQJjBKSHk0Sml2X0QkKmAKek9JSCQ9cUVHbTM9VHhjWXBDVlBtWFZaTUV0fCg2alNJ
d3RQSCprdHsqPmBLIT9YN0Rxdi1qMH45fnh0Pl5aZHxSCnp0TChXfmJ4VVU9WT0/RTtKKU5SY2wh
eGBsLWxGRjFiKyQpaW9NfUZ4RzB3V1AmdkV+UENYZGdxZFROc0R4JD9VJAp6ZHlESy1ZajRqZCgk
UUFQQTdiWHtEM0xMOSVtcyhzZjcpQTFWb3Z2Qzx2UkpPP29QSUBIUH02IWxKN31wMCg4ZnQKemRt
YzFncD15elJjJUVyd1QpZjVeQmMpaT9GYU1fPmB4S2gqc21hRTNnbDRAcCY7ITJ7RjJJd21MJkwq
d0hrYH16CnoybHUxKT9zP0pgWlNEeHVpVzdqWmxZe0dqaWB1RXtVP3liWGsqdmpXJSheaDxwTSk7
Pm94QzJCdnJUPylKelR4VQp6cXo4Vko4MyN8VHZtWEFabHJxdE89NkZnSVI+dm16T0hKdEkzT3Uh
X055aj84JUZveTk3JldxQj9iR3FnIVZJTUsKektTeCRMXjF2JHdtdElJeVhieiVUV2kpfDJHaXBM
fFFCOX4kdThLdyk8bm1CQjhtVyVVNE48dVAxK204UmFCWVFMCno4TGJQfU1sJDZ8NXFXTjdlUW10
NXd4WGRuOGJQKDFVO3wzIU5WR3cmNF4+Mn5CZWVAVXdVVlB2a3grZlNyWnklPQp6c35CbEtCdjtq
akwtQkp9M1JUZj9JTkRTanNne2ZETCYxakhgNjBQRFQzNSUmRkFtajU8O3FZK0k5UUtAWGhhVWkK
elYmVTNRZTYoRUMmPTREKWxAJChfJDFeTVJXKSloaSV4SGFlN0krUnQ7LVByZjAtelkjNmE/MCs+
YFpARlY+fk15CnpzdCQlTHFMbT8qZDBNRXQ1IWgjZUtnT1MobmVTSjEhRFolNWhJTmB2Ty0tM2l4
Zk0pQyYjNFR9TX4rSWpjPjQ0Iwp6UiUxTFhoISRESjdmeldvc2NlR0JNMmVIYHVAKW5+cSh2Wmpx
X1VyOyNnTiNhV25WR3oqM1lCMWA8Tmp8SHpyfEIKelRrJU9OSzU0Y21EP1p1VFhFRVk8UigjVG1Q
Zz9Pd0Q/VncoQyQtcVI3TFQ7emxaa0koUih3KjZFXzQrPT49PDlQCno7KiVYP2lCXjJsaWNneTNQ
Z1o9Z3ZscUBZTSVVNGA2WFMraldac0hUbyoxJDJUN3k9NlFkYDQrKmw0SH5wWD9aVwp6ezZDNk1C
STJ3P0V+ZzxmUjt9KU47Y3ZTfXU2Q2p6d25IamNWZHJsYmU/bDV8RFQrOX5Qe05LKEoyYE4rbUo2
cFMKemRpbXJ3Pj8hUHReUzRyezd4aE4jSzlxKE45USNyfj5RNnRTMGR5dnZNUTNCNE49Tml9QWtJ
ITRqTUU4K0JKd18qCnpNai1abkYxfTc+QkEmYFNHamh9fjxOUVVQY2NGfkpIez55Tjl7cmVwTFN5
TkNAWEJ2bENGKGNKM0R9YzdpR0U3fAp6TXc3QTJ0NHhpPlBOaXZ4KlVtc2hlLT5SdHZre3hVbUBj
N3pyJVVOKWJReFdhKmxqcj8hMGQ1Vks/NUErcE5sVUEKelZNS0hKeUcwQjtwbV50MzE5VVNWKGMp
KDhkfEUoUFZiQWotb1RkMTQ5TXlPWXtlckhlQzNIUkFoPChzRSg9QnV4CnotQStxczhUfUh3cUpL
cFgobkk+V2ZxZCNCcFNFYjZ3V3l1Ml8jJD5xenV3X0Eja2M1ZntZMXQwSkRqTXZ2KHVUMQp6ZTIo
SmhgYm1saEpEO1R9KmFXK0puJlY0Mj1rWVE2SFFpNkVha0Fyal4/YnEmYlM9KHR5YURHdlpkQXs4
VHR+T2sKekojLSk0aSZHKSpxekM4QFQyNk9pZkI2ZUkoLUNKcjNKd3dscntFSVlmKFFHJGVMfEFa
TCtCfGEzbkBZYHB8X0FLCnpeYnlqOEdxQiZncFVffFVrdVgzd1EjZWFGVGFibHhBd3c3XzQ4bEl9
QTtNNSRuNX1IKTxqRjNhLTVJT04kOztJZgp6e3laYSpGSFcyeG01aVY0WT5kPkZqeFIwY1hPNz5X
cWQjLT9YUCpBZCpQajlYSVpBJlA+Q2JXZSU9UD5JP3FGNEkKelo2R0BrJGE4V2sqUHFRTGRFQDxs
P085bD8henphU0sjQUhpWn5RMmdRaHMpekxAIXI0MElaa2l0TkhvNGNgODBvCnpEJlRyKHVSYVU+
VEQ/R1Z1OEpwNmtXPEx6cXEwbFhgdVBSZnMpWVhCQkRIPj9DYGFXU3Vxcyk+XztMQzRVKlJoZQpB
QCZFdDsKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvY2FudmFzL2NhbnZhcy10ZXh0LXNiaXgtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvY2FudmFzL2NhbnZhcy10ZXh0LXNiaXgtZXhwZWN0ZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41YjRiMjE0ZDU4N2Y3NGU3NzcwZjlhNzNhZjliNGM2ZWE2MWE0NDY5Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYW52YXMvY2FudmFzLXRleHQtc2Jp
eC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNDMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzdHlsZT4KK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiAiV2ViRm9u
dCI7CisgICAgc3JjOiB1cmwoInJlc291cmNlcy9BaGVtLXNiaXgudHRmIikgZm9ybWF0KCJ0cnVl
dHlwZSIpOworfQorCitib2R5IHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cit9CisKK2ltZyB7
CisgICAgaW1hZ2Utb3JpZW50YXRpb246IG5vbmU7Cit9CisKKyNvbmUgeworICAgIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiAyMDBweDsKKyAgICB0b3A6IDQwcHg7Cit9CisKKyN0d28g
eworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiA2MDBweDsKKyAgICB0b3A6IDQ4
cHg7Cit9CisKK2RpdiB7CisgICAgZm9udDogMjAwcHggIldlYkZvbnQiOworICAgIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiA0MDBweDsKKyAgICB0b3A6IDQwcHg7Cit9Cis8L3N0eWxl
PgorPC9oZWFkPgorPGJvZHk+Cis8aW1nIGlkPSJvbmUiIHNyYz0icmVzb3VyY2VzL2ltYWdlMS5q
cGciPgorPGRpdj4mI3g3RUI1OzwvZGl2PgorPGltZyBpZD0idHdvIiBzcmM9InJlc291cmNlcy9p
bWFnZTIuanBnIj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvY2FudmFzL2NhbnZhcy10ZXh0LXNiaXguaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvY2FudmFzL2NhbnZhcy10ZXh0LXNiaXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTg2ZDE0NGM3
YTBiMDc0ZmVlNTlhMDZhOTg0YWI5Y2VjOTU2YjNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9jYW52YXMvY2FudmFzLXRleHQtc2JpeC5odG1sCkBAIC0wLDAgKzEs
MjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK0Bmb250LWZh
Y2UgeworICAgIGZvbnQtZmFtaWx5OiAiV2ViRm9udCI7CisgICAgc3JjOiB1cmwoInJlc291cmNl
cy9BaGVtLXNiaXgudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOworfQorPC9zdHlsZT4KKzwvaGVh
ZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iNzc1IiBoZWlnaHQ9IjU1MCIg
c3R5bGU9IndpZHRoOiA3NzVweDsgaGVpZ2h0OyA1NTBweDsiPjwvY2FudmFzPgorPHNjcmlwdD4K
K2xldCBmb250ID0gIjIwMHB4ICdXZWJGb250JyI7Citkb2N1bWVudC5mb250cy5sb2FkKGZvbnQp
LnRoZW4oZnVuY3Rpb24oKSB7CisgICAgbGV0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjYW52YXMiKTsKKyAgICBsZXQgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIp
OworICAgIGNvbnRleHQuZm9udCA9IGZvbnQ7CisgICAgY29udGV4dC5maWxsVGV4dCgiQVx1N0VC
NUIiLCAyMDAsIDIwMCk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYW52YXMvcmVzb3VyY2VzL0FoZW0tc2JpeC50
dGYgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9yZXNvdXJjZXMvQWhlbS1zYml4LnR0
ZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40M2I2NjJlOTc5Mjk3ZjJiZmY3MzZjOTlhMzBjMDg4ODFkYjM4Yjk0CkdJ
VCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAzOTk3Mgp6Y21lSWIyfFNmdSpEJGAlSVhHcjFpWll4fkRs
KlN3JGthZHhDNmFqX2syeW57Rz8rel5QKUhJPSMlUnUxczEldSUKekRSWDktJlZPSSRRMTFKPUA4
XkJxPWx7T24/fHJ8fDwjKE5IP1ktQXRkIyR5bmIqKmRmNFdJeDN3QlFXRGZQTEN9CnpmK0JlOXhn
WiR4NCZKOU1vWGxMTTxNYy1YSz1BYFdQSFNVXmNMaUdqNiN4YGNGbnhvS3FwdmxrP0tlZGopJk85
dQp6aHBtO0ZXJFRnSjBzd0dqRmtRa0hNcXNKUUJ3PV84aEl3cUFKYllMdyZ+eU43WDkwbGhuNF5u
QFN6YldhMm1tYD0KejBZRDJsbmZiVilTUH1aWERHKHAkWjAyTkR5dHslR2hGPGAlYDtNeSUtb3hW
ZDMycCMlRUNJai07bXolUV9fKXJ0CnowJnVoazBDZmRgIThEPkcwWGR7cWhRMHpSTTNBMVNhdip9
anoqcztBQmEhUDIwSiQzZzRzdVBwM2BKRk5VPzBGTwp6NkVIWGVsbnNMZVJmRytUU081cXgyOEpM
dkxgKmROZ19IbWp7NiNkITFqeHdkcG5oYXYwMUlUbVA3bnhFei1eRVUKeihtKj02M29eaHhrT31V
Q0Vic3RpZ0IqfHg5KWReVUZ+fG82cGIhKitWbyhCfWZLcEhmb2BQcktJZH1uSGY+Kz0qCnpDPGhn
dzU+JGF8UHlebj0rTmNOYiEzWGRXZDsqX0FCV01DJktyPzZzWkotQD1mS0pjX3pKaE97OH14dSkm
PEZhIwp6Y1E2Mmt6JVVwQVc4ZW9FMk5QZnRPbzNASTE3XlYtX3pDOTBCM0peO2ZQZk40PjdqZzMo
ZFlfdkNBdTJqZl5KMigKenExIVJuRnpKe0tPZVVyYl44IWJLcXJ1VlBIc0Z8V3RobFc+NGpkUDVD
ciRfX2dXSkVJWXhfPHZHIzNSSTB+YUlMCnpNbE0jYXR5fjtqZHxWbl9yP3stUkNVKD5hMFVAanco
ODZkQFhfO3QrWUYqUUQmfmVnSkdINWJySFJRQ31XeHZOIQp6JSsoPlZBbkw7cF5mR30hZlYjd2lU
fTBqOGBLUCtlYHd3O1o9MTtuLVVDfntgOHJgLTBRezQ+YGJ2T0RxeD9BfEEKekpLWig5YHw9bU1M
KnVBJHZgfX1PYTRiLUZZJmFaSWNoZGg8Y2I1TXQtMnBeKmdsQHQmIWNXMiFwXkxDWTd5dyVjCno/
SihSKT1wemdoMjRTY2ZQIUsqNCs1amAqR29naTBQWil3Tm15WGF4WGIxR0w9aEcybWRrOXwlVWtK
QWQ8JUMzLQp6XkNyWT1oMGoqUERCJjhSam5HVn1CdCR8dUFMNHVfVCFyUUo1SGJqdDJfYnxfRTU4
cWpAV28laF4jbGFJdT0wQmsKelFvS01vTT50UC0xNTNDfjJxeVJ3anU4fT5Nd1hfUmhMPHspeHxZ
NXl3SiN8d3hoeSM+P09BTUNWKE9hZW4mX0pCCnpCeV8jJXkzcUJzdEV7V0V0R0Z3LUUyQXJeXkpR
bXQkRzQ3bTlnUThJSk11YSVjaHEqJmJVZj13QDNfKHQoIVM4agp6Xk0zZ1EqPDtqV3ZiXzFjMllG
dDNabj9LfDxGbCpwaXtJYSFJVDdDPEgqbD5iXjNLXilFe1lxKlAmMzNIMz4pNzEKel4+MWthMTFS
Qjt4JmZlSUA1TWtVMDFrfX5hSUQwQGtyMFM3WmZEJUZvcEV+cmRVUG9RSE1MQk8hN1grTHBtIW9W
CnpDckR3dzZZJjU8K0smMFkkTzAydCk+R0RYdS0qPlZgQDtIb3VzJFpQJmtOdng9LWRiYDFeRTZX
eXElZGlaJiQlcgp6cFl7M3RmM0ZUO1cmV2NqKjdkKHZvXntKfHkqSUE2LXUzczBfNGtQTl9sV2lQ
aTFxaH5fNGtQWHNxWWMlez1kSmwKenl3YG84PndlJk1VLTxnPmZkMzE9aUomNGUtX2dlcVVsSFNx
dUx5bU48U3FLIWxxIU4wT2hkak9mbFo9fSsqTVVvCnpMXkI/fiY7NU4wXmdvPmU5eUEwQlF3Rihk
SyF5Ml5lOTN6M1Z0TzJUekc9X21gU21fYl5qamdaQFBhPDhtR0FzUwp6ZTMlUXl0aTRkMVZJMklQ
aDRARi0/e3l1bHd9Smx+KzVwbUBRRSgqXkFgOXY7NDl2cWoxS3c1ZXd1Q3Bsa2hJbjcKenpnWHJm
TkRuRUFZMnxNXzVDRjEzMUx5O0QtfiMtP1dlXjl+NEx5Vl9mb2s5aXBCfWh3WEJrQzxWbk9YZGlK
JWx3CnpoZnYyKykranZjM0BRd2pmWFgyTDwpZERyPlFKcXlAMkZgczhxSSlhTCs/Z1FwakZVRSY/
YWJtdl5WLVpJdHJiSAp6Jk8jVFglaDRhdm8jPGlvUFllWlM2SXtgPjdiQW1GI35qNiZWVnA2aUZf
JHAwbV4rd1V4WmJCNCh9P05Ee0o8PWQKelFJVHlYPDBjYSNsUDVic1c9TGo5PTArQXNjOXJZflN2
cHhCKj5rZFlXWCl1S1dSdjg4b1FgfWVJV01ed3hlfmIrCnpgM1o3Y2EhPk5KPFBxZUY8ZUI3ITxn
ZHghbGVkIShsRnczKlE3fT8pUTFEU21RSyhZclFrWVVXUXV0Q19xPT16Tgp6cH4kOXFMUXpUYWlR
KzU4RDgmTW42M2RMYCFVfCZMdSRvdXt0T2VFOzgtVHE2fEVePXh1I2QzTXV5MyhudSlXdmAKekVQ
O31pbDloNU5yNn1iLSVFT2RLbHMxJGVsKTtxWWxzNzV3UTVJMFhxTzdORXFhMmB8cH42c1lwa2st
bUxuVFNJCnpwR3RAN0IkV2V8NTdoOyNYc1RxWTJVSTBnNjt1c1dUfnM0Zl5WQz5zQ2hHMGYwQFNr
OThyMXNLPUZ+M0t7P3dQTAp6PEVUQHFBNXVUMXVBeSRDP3g3eTFVWiRhO1ZXSFZVQlNORHtiQk58
UmpXckZQPF90fDNPIykyQE8rTCpfbm1VP1IKem4oczh6dn1qcmVTfmw5PGZCUHB2dDNyRSgpYFpy
Yyl8PlZgWjRfLTFaNUN9WVo4X35uK0RfVkcrTWplM2JlcmdLCnpiYklNIVV+N1JoNktYU1lyM0tP
fnwxP2hfUUdmP2tOUE5OeylRP3BOVnA5R0pwI2VQI3UyTGdqN3tHPDVTYkBtXgp6QzNARWlPYiVH
a0xNdCFAak1yRiFzVztmN2tGM0JuZk07WHozUVB9bEhANXhhWEtzX2czWEIzfE92Rl9sNUR5S28K
ek9uWC0xRkBUWHRjbSpiZElMYSQ5SWlPYHlUWSlLSHl6VUIyNExnZCMzUVBrd3sofFlqWllKQjZf
emUoMFk2V0o1CnpXeVArKjgpMUFSdj9FWXRhNGpMfjJVRSVsNDBXPE9hc2BHdSo/ZU9LaEMxMU5j
TGp6eio8N14oTCFFNFh6WEMmQAp6WjJyQ2lMIUU1P3U+d1AjQEZJMiZRV24kK3VtMXxYMFp7VlJ0
LXk/Y3Awe3hZLVUjRCt6KUBmZXROOyF1NXVaKkYKenZXOD1UR3deX3JJWlNhUmhITDtIaENMdlJ7
RX45RzAjQXRIMjwoNmJqSjFTbVBRVk8/b1opREsxRGYhTzFOSVFkCno5bWU1ZEkpZGlgZS1Zez1Z
UEp2YERGP31tZ1J3NWVrVUsyWjA+VTtoI3QhJXF4JT5PRmExaGZRVnBfcCtAUV5iKgp6OzBrSEVL
cSohXiNTPHg1IXhUcGQ7UXt9ejZxMmx0TD5hd2R4LSU+ajJVSCo+RDxXcmh6PkFueTE9NGVaZjIq
N3UKeiFCfT9+TE80ZndiJWZhTkQ+KUR4OUU0cnJBRUZ6aUw+VS1rM3VXX3dhV1gmPHt2a1FjVlR1
NkV7bTBTfSQkeXQ2CnowN0xHT0Q8bFZeS1B5TmJrcH5aQjVYflQ1PzFsMHBkUGpIXzFqM019NVBX
KFBhUyh9WlY1JWNncVhAVUZee2gpdwp6QGcjRU00aCYhaihJMlVIYTZ+SE5razBSUnY2fURpRmp2
JDZTJGpoR0x+MCk0MUt9MkZUZHdlRjNGRkx4Rlo/fFUKelY9UmViSEhkMnFjX1AmO3FFVG1Kezkl
WWtzejs9emtkfTVCcnVvNDdNcykyKyMzOGopcT9JfkNgYmF4S0c9e1ZeCnpaJUVPTzcpR1QxR2Jj
RVJqbnV8IVRTZSohRGVFQHtxe2F7fk5qPDw1QGBPLUJDP1JzViE+MUxqSnNnWmg7KUowRgp6ay14
UHEmSjByYkIxKGhRPHw/TXRGVDdQYlM5PSt2RUJzMiRCTkM3KGl+UGJUO1VRZDtHPkcmOzJaJSoj
JWQxcEsKelQ7WUttWSFec2RNTX0xVVN+RylgSiluJDs/JEBUU21DfVpvP2gwaV9XSXsjPEx7NmtQ
a2FUSlJRJUxPfXArI3koCnp0OSY5WSRfZVUqUkR2MUloZ2NYc0BhWVk2QXVaYUxORTdMc2p6c3po
JDBRbTVqdnU2bEFYOyZTUGVlfFZ7dD55Ngp6SzFYVXp6ZWckKEVvJiRAUW88amxNN1RpZTU4KG1m
P0tqcStZaVUoeXROS0s9QGFKJkA4MzdRanVsOUktenoyfGUKeis2KE99MWQ8QE8wfT9FPzUtUzFK
ZSNKX3tfQ21zeTFnZ0pjbTN+b0IwYUN3V1JiVzNSO2l8Mm5BUGh0eTRXelhwCnpyM2VGWVNTa3El
ZmtvRyhOVW90SjQ1VDY2WUF6QWp0MFkhKEErWTJoUWwhXn1fQ3AlMHZoNEBeZjJEeypkU1l1cgp6
TzBldXo+WXxZRS14UUoxWjtHTm84SjcxT1F3MilDOGJiN2xOVmklWjY4Yz5SRGZLcnVOVUdBR0B+
WnFIP3tFRGcKemREcXF3NT9aU2JCKXFvZmdkaTd4PE9gQWFIKCFXTVlxPUt0MUUwY3dxSzxedVFZ
VWZxSjNrV3NiTmNUVmdLI1BnCnp8NWkmIUxUaDxQIW9QViNMVGg8TCFmVytfUCpZeVJ5OW5nYGNa
KSsoQ0heMmU1KkF4aXcjMXJ4TXpHY1h6PjdHbgp6K3V4LWxJdXUmZDYydUBVdDBOYFNjMWh2aUV0
VkFpLUJ5c1dfP2s5e2dyKE5COXdmWkI2XmNWeUNEdXFzM2pjMWkKek5iZUFYSUlFZiRodUhocUBK
OTsmKXtaeiM2SkZFdkJ3JCElamtZOHBGOV5qfGRYaUFPd2RHNjAtMjJ5KnIkJl4xCnpiKnZ6VE1F
KT8+e1BuMX1iYClKNXF5QjBuI0taQiozNjR5cChVbWtlQWhSUk1IZEBYM19vRXdQIUVta0l5SD5f
Qwp6QStWY2gqPVJ4OSRvei1jYT56KCg0IyEkI3J1d19sUkYrN2BsfUx8NzMoKmRWKXskUlNrVTBn
Slp4OTs8Zms/SXcKekxpWm8ofDhiNWEoWFU9WlVqPz4+ZUA2ZTBgVHdlZndIelN5NXQqR34rY3pp
OXJFNnpnSlcmJip4dCR+KEdKXm02CnpucCg5cjVpOEZRJlUrKnNCZXdGdFREfV9XMyY8Py0qRjNE
Kzh6ZW9pd01gSD9SYmVUfW9RYyUjVEE3ZT4yXmtzeAp6SVpkUHY5YnIyX1lWYVFeQlgtaT9RNU85
aCVLdXBSfDQ4e0xZPXd4MFYrSEduV1I+bE9ASU5hfT5+QmgyKWVXTCsKemtgOyo5Q2hreXt6bWlB
fCkoUF5xXlJKZEZ7eDZvZ1lPfDRTdEdfQik0fDMpNkZQQUl2RlA0a2daYXlwUj9YUl9yCnpTWUxs
JWhwVDw9JipRX053VGY4bylfK0AkMjVkV3MmaX1wfnJHSFQjTTFQMzJOVjR8KysjWGxeOE9iSkc/
UHFgMgp6SzkmRTJHTGlvSVMyZCtjdnxOI1FUZnx5S1ktLVptXkZOa0RuaiF4eU12Z3k5dl5zTHdM
a15NcEJmWWkhOUBCOzMKeiU9T1FFXzIwPyUqQmJvJGFgeWs1PCl9bTVBLSZySFlTQENQTVp8X2pN
ajlOdmt2VlIpcj5HRzFpfHBuQFl6bVU/CnpOczxqMkJTQHsrN1V9X2NDLWozKXE7LSghQWE2RUVF
SFp1fF4rPGE2e0hIVVR7aGw+NWpzJiFJTUJ4NDNSb2NJPAp6MUFRbjEodndNa29WQmBHOWU7bDcw
KG1FUWhtcz8wXjU1MSZWOEkkYUFhNjN0JntGJWU5eyZIOUJtbkRndHZ8JloKeiZXXyZEVWg7O3VZ
eXFEbnVnTT5Ba1hoYnExIW9tUTVWbSRiXyRMVFFBWDVEIW8peUlOZlhvPDNzeH4rUmp6ZSNqCno3
RWxNJk17VFdlTzE0JWBJQk9TWTUxaEdgcWw+Yyo5X1FoTGdGQjlLdUFiKE9iezA1RzdiaTEyWDkx
azFHdFM9QQp6LTQxVlFYVz9Qejt0YkpqJXsqVyMmZV9FUz1XYj07ViZpUCpfb3JNcTdqSWBQY2Y3
NWdFNiY5bEEmUiVjUz0le1UKejtyV1JyU2kza254X0h8Oyt1JjUodDt7Xl55c1U2NEU+MkRlYVUm
fnQ3bzRTKWdgPTR9T21LMD1uWXA/OytGOVhjCnphSkMqRXR9PXB4aiVNYX4wZ0lKdjdObEdQRjc3
c2hrWV83cnljSiYxNTBjcEhaM2R8ZDNKVkFjZGcyOGd0ISZJMwp6RW5GPEU1U2V3WVkmOz0jMUlR
bWpVc3ltfmheUHhCWkVZa0hVTWJWdCtncmR9KUItN0hDQzFYcTMmcyUzUm5nTkUKek1BVjJFRz1u
KD1Sa1YqQipWSXl7VVEta1R7Xz9lfmBqPCFeMiZBVlhie2ZmdGd4SXIpdEAhKGBBTCtHIT89d1dh
Cno4PUEwQnVscHowe2daM2spNEc1MSZvO31kQTgqfTF4JGQ3X19mTXwtQylmUnhCO1B2OEFHeitJ
e1FXSSMtOUpoNAp6RjhyMUVAUT9uKmJecWlhZVRuUC0kI3d0YVRMMDYhZkFZXihJNUp9VndSaTB3
e2V+cFp7Sk1ZZ0EzZkg4dC0qRXcKekJ4dyUrdWwwdG1gelFiQ2Q7Q0EtcE0pTX5sSUt6dmRkNiZz
WWhJOVZ5UXtJdEkhTk0wSTFOfCt7PjZwYjN8QT9sCno7UiVIcGN0OWFKcG4mSVJRTm1MWVheXyp8
O0Y+fVBjKlloWiphJFlrK3t8RHpKYntxfnUhNX4lOCg7KE1mQ0YmQwp6YWNWcEN7JkU4enVtaGV6
JE99RjF5VEttbGQqX0U9cnYjdXM2PExgZkxpe3EwZHtJWU1wLTk3VCRnKTVWJE84cVMKejI9K2w8
aystYjwjQll9QmE4MHIlSH48Y1VMdldSczdTUnswMTlZTGtfOSpufDh2c0xhNEVrbmB6ekpYc091
JEtDCnozUWpAYXR2VTFuQk5tcjYpQnhoO3d9KVF9OUhCUUNgRUtDflMzbl52emRXRkJ5cjgkKDJk
O2ViMUU9QWQ9S3kkSwp6Vmh9dXpGJkxaIT1mTVNWNW5PYG5wcyM/ZEFQal9xTkR1e0w7SHYyQjsx
KTwpSVU1aTtTckl1PWFySGIhKGtZNWgKejtIdjRAZT5nRio3U3llcm4lTUElUXhqWU1iWiNQWVJe
czV3WF5FcU1KfShoUGg5VzFQKmpOaEJhPVp0VSFBKzB7CnpQajdyZkpjRjx0b1B9cEtoUVBCT0R+
TSt8bVZyPWsxMDtaV2M9QlUzTkNYayE4aTxBSyVTKyg3anFxR1k2YV8kfAp6dXFhOXQ2XmFfSj4h
d0F+cTNCVHpzMH1EYSlKRGBNNmNkVVd3SGRWcXVKPmp8WkFFUUV2N3kqZTk0Smx7NHooU3sKemgy
bG8+ejspbXxRTXs7S1dMby0lNHBHOWhIKGhOLSM2KHZCQStjM0o5SWJIX3Z0UldQKjM7UWVPO3Q/
fGQ1UT1MCnppTDUrRFNEcz1rUHd8emYjTDgyODwqQnN0UjdSZW5MUEExUlg0WkNnNjJjTV5WcHMk
YzYlc35MIzhpY1pOS1l4MQp6bGB4VGx4V3M7OVBCQiQhVm9Cbns2OGwldWk1JFQyTzFkflBVUitk
K05EcjFJaVF2S2YjSFhZWDJ+Uj5ybHRAUUgKelFiWTwjbWxvYm4jMjEkb0NRMndJc3prKD5QIWJf
PjQjUHlyQnZxQmdWZG87UTNyNH1OTSs7WnIhPEVmc3J+WVQlCnpWc2BOU1FqenQwVD9neEo7RDM3
PzBLbmVXMV93X3s/RSlKUHNBPEJ6NFJIQTNONUs9NjMxMmJxUmVrS04wWFRkWgp6JmQmaE9eMyo1
PnFJQ2ZHRFMoVHA0TVo1KGtyOWQ3Mig1dllrcWZtSUluJFVwaDgzZj57ZW9ZaGNDRncqYHZONlEK
eiUhfTtvczZ2U2xWWl8jYDMkWV59ZFc/KkgtIUFQfmcpdiQlMz1YP154VlhER25nT3QxUzZnJWNG
YFM1cTFlX3tfCnpnc3JXdXJRajFuOys5Zm8pQERLJExMeWN8QWAmblVBX3V8PT1fdyowQV49U2JB
ekAofEEhISpBYWghO2RqSHRBWAp6NyN6eFkmbkIjTGlZX35RPmxnZ3k2NCE2OEZZJUlLNmd3MGRJ
WUFpPyVSKFh8TFhwVU1xUjM3dWZQTlFBXzZ6UWMKekxYbUt3djRvMDN8RHJoK2pSSjdMMipNWTdH
NVN8TGhBYk1oOGpxb2tDaT98NU1aPTl0Qnp6MjhHe3JCTkNtUT5rCnp3YGpeMG09Uzx6c3VnJHhn
c0Zld15HOURLQCZuN3BoXjRJWkZEeFhLZj9DMGM5SG8kc29yVnkmayVDeHdMX1Jedgp6OXAremo2
eiooVSFHfV8obElTMUBSKWJXTXlzIWxVa2hYP3E4aFFtRWlBVV40NT4xZVgqcEVhUXFuMVgjNjJC
QVQKelBeYGdPQlYqZENqMGx9bzg0O0x6NEw8RX03JCg2PmoyVTJ2ZHowdjRmYyZwJnxGN2E4P3lC
c18mUlFKMk87P0BfCnpAVk83KCRjMmN5OG92QG9qWUdndk5sISZuNjlQRFJCa2hIVjJfTnVENHNX
RXJwb3pfelJSMiZYNy1YKnhHMlJmdAp6QmsyWi16WHhzUlJYeDJ4bEhqIWktYm1SanEkbEd3Xyhi
KnVgak50YF87ZTNlO143MEhlRVhIIVpSSCFnR2hWPlYKeigjNzBMMERrMmNeZjdaS2UkNUFSaWF4
R3A3N2tYKHZJUUdFWEwrdSUoJnQ8X0o0PDtrTC1FNXhoaDBeeVowJDdzCnorXnpLZHcyb1QlSWFv
K3JhdyNnezxhfWcmb0xycihKamAlRFBMOXJhODZTQnJCNUBmQUJoaTlmSTNrTE5nRk0lPAp6ISQ7
dEgxYX5XKHhQWHt8NUVzbnRaZlB4fXlJKlozRkFUfFp7YjZZVWFVcD1QdzZ3SUtrY2dtJiRYPHhD
N3dfeHIKelZka15mOFBCfitWWlJtTCFyamk1eFUyIThYbEN4Pj1eQFZyT0QzYDg8b2IqM1UmXzlV
PXhQZ3g4Tjk4Xy09UDBXCnpDTXMrLWxjbUtrOzt4P1Zqem8/dkVkO0ZgdCg+Zm8jUzZqJCFpV3g+
VHhFIUJHRjtxYHkwfCNYYX1tZCpIU3QjYQp6JXs7N05HI3NHejNRNngzNWtJOypLI2BDUnlJOSY7
YH5ETjhVKTskY05XYCtOVkNEVDRMOHkzMzNtTHFweHhKTnoKeiQ0Vl9JbzdvNkxRMUF+NGZgflRQ
WGNzfDFxRnxMRjtJRnpAel56fkY4ZCVyQngoMyFZdSYjbDE0Zzl+U2YjMjRuCnpsezIoRHlyRkZm
MnFWRGYkZmArJjZCUTV3UXAlYyMkcT5eVDA3VypHNXh7S1FxMFI9KVVObkZRTE1RP1g1Z30xJgp6
RiVkU2owLSF8Zjc5blg3YVc9SCUrSk18RDV7VlhLM2Q0V3opNFZJdmhFaGp1Pncjd0RHdSRaKHFs
NmNMa3JKZVUKejh5Rk45S3JeQitqM35relhoe1BVSWZ7NEB2JXd6fThiZH0tZnUqRlByaHkwckBV
MGV3IUp4QDc8bTNwT3J+c0dfCnokUWEydFpXbVVmKnJhMkk8I0o7WjM2OG89JCp1aDhDQTAyX0Ez
VVB3P3F7aX1IKmFCSy1NVjhaQDI9ZkAjS2F7ZQp6cktEdzRfTiVJP1lpSihPSkYwSkJjPGl7NWd7
NzZYampmJE0tb3crJitzRGBNLTEhUl5Mb1F2dTUqPjNiSHR6YjMKel89RyNEWTNYK30/cSVOM2R6
QGNUU1g1bHs8a2ptcDxyUzR4KWlvYSpLN0RSJWBxSkY7Xjs+c09aKHNsU2Z4Kz5LCnokKkpqPyp9
MCRkaCtPYj5pekY4T0J9dyl0eGZyMmJYZmlTazg1V1RYaDR3fVNYQ3ghdkU9O2plTmU2NEB3dXd0
NQp6bjM3MzM+aGAwVFJOU0p2S2JYemtLVHZQeDUmT0RoOTEpRXUqfW8+KCo/JnYyVXhOTFhzfSp8
cjtaWSVMRkVSYGcKemYrQXFaRDk5LSZoJlBzc2teKVBHckokZ3Nmd2hRUzVUZDFfcmJQay1OQ1pX
cUsjc3dYUSk0TnhNM24jMzVCJT5sCnpAT18tbjAlJFN0LUhqMiQydFB3S1loTnxrTiFjNnNZSUZ6
UjxKdD99bmY/PT8mY1Q0OyRgaGEodD5iYVJjNEtOfgp6e19YRWx4cDY2RjN7S3BlUVRvOXFWZm1A
eUFwP192O19fdTVxaWF9cXh8VWFZKXB5dE4lXldEKDg+Y3hqPzJuelAKejwydndlekstRzJ2I3Fo
TU9aK19kJlg+Nl9XPyprKTJfWEFLbHV4ZDU7X2xeLWd7fkFJeGd1QDZwWU1Eb2NWMHhSCnptUVU/
Iy1NRW5ScmRHRGUwVkIxZSlUMzg+RlBAcV4pVVZKTEcoQStHe3FtOCFlWE1xaiptQiNeSkd0IUlr
NGBtdQp6NDd7OGUlUmFiZ0F7I2YqYU0kbTFgbHI0NylWMnRuUyFBQSFlUiRmRSFEejBrb3oycSFq
JmdSTlQtWWM0eHJrRHwKekZzKHN5STxeTSZHU140JVQ3QWh2bjlHK19uPSVocWY2fmtlKilNaFd7
TzgydUdwQHk8PWVKKnIoezhganhxQ1ZACnpLMzBweXMqZHszd0VmJiooO0s2bkFieSMhKlVsPlda
LXQlV3Ipbk01eUluVEVRb2Z0VEgtZykzTUt8Zms+RWhSRwp6JSRrclhrKE15KnomMXY9ZHNrTW5W
Y1plZEctcUJaKTJ8QkdDWHsxZFYmeW8zPld6TUNGSzxyMUprcngqOFR4OVUKekFiKD4mdWJoezdI
Zk1SUWJIXjVrdEp7M3stISF5MC10WXgwe2M8Mz1xTzR8N0k4aytvaj1ya1RONlctSVlVPC1nCnpq
bX4xe2gzd0x3TT9Se1JGLThZbiRXd0ZjOTVSKF9TdX5HbEokYWIqb3RpUyslYD5oVTROMEd+dW9W
SGNrOWk4NAp6KyhmRHJkKmVeM0glJmRAeT1HeSV2dDImQ3hRfUliV3FXK2NjJUtUdEE5S2w0aWA9
a0E5Uj5PYW40ZEoySU94fnwKej8jUCR0b29FT3IwTWlNK2tJUT59aFAxfDJYUUM3SXA3RDJJdDd+
diZ1SFNjaElrcT05YjliQlRvcWIrNks5dG5FCnpLa3Z4UnNtfVp+QUx7JExLK2VEUk5yNys3YCha
Z3wkRzZ7MW1eSyl3S1JLYz08ZCoxQjghJTBGQDtEREZ6dVY7Kgp6KV5FPTZZdkc3VyNTYDM+Xzh0
ZChwSCFSejElcUR3UHdgcEhnOVZxNGN0eUxqS0s/YGkyWSUtODhHcEd+U3ZDNVcKelRnTlBTPVBg
WENAekolNno0bGVvbWtjTDxPN28pYHdUfVlGSWk4MXNrWk42ZTNXZ3UhMzJ2PVhYUWliM0d2Xmwh
CnpZWCtNS0QhUTN+Y0NLemxRKUA/WiV1PTxZOyZRP0VLXzRtV21rSkBEZj9eSyM1PHRVbyNybShC
U3pGemMzR1d4agp6dWorZ3JlJlBLKlFMVHBpOHRiI2VzayFYI3J9Zmp1NikkREstVGNmOztnfj4t
TWI5QyhmJEJ3dnNocUpjbW92R3sKejhgLSZKKWs3dWc5JXYwT1lgVzV5TGpYM01XS301UDFKUkZv
PiVVJjVfMjhEdUVqVjdXYjJqWC07LSl0fiMkd2FHCnppd3dhYlojV3JTJChuZ3xfb3QoLVJgKnM5
T0lMRXRXblRAdFZwTVkzKykxV3w8JE5nYlN2JmR4cCtLajBPNVFAZwp6cHtyeGZyKGJfJTkmc18r
S188MWFeMTBPWD9CWTtkPX41aTt3YVgmfnlCYTBJNGVKUDBpMnQ7ZHFLPTdfR2Z5XjYKempjKTFw
IS1wUjQmRDx0K0pjKkheVHolV1Nje2g1c142LVg4QVliUlYlJCFDNSVwUSMlMXU9KDg0ZiFJM3cq
e1hHCnolSiRuKUliOEI+U0steHpScTNhV3owKkktbS0rb0UxRXdoKEA3Pyo+QnxKTys3WE8ycURo
YVgzSGRueWZ7ayYqOAp6QyF0TEx4Tyt2KnZrYjFQaG03OGohcVdacS1mSVpTKVk5PHpodzx9RGVe
PV5uNFI+JUAtYmBebUIxKkFseWY7RjUKemkrdHRKWnphYzwoUXx7bHRZaD16dEF7VzxnfSQmPl9+
bWpgbHIlcU1fMzNDN1lmckghX1kjaDYrO3IpT3c4N1kxCnpNOW1ZNmE/ZjYjdUdxclFxeGhwPT1q
cFh7SzhRQW41ZGY9Z2xPOXZ0JW0pPjJqcTxkWDgqSD1PMyFnS1dPNEUoRwp6Rk8oSVVhZ2NAN1pR
RUM9S1g/TWJRS2pGdll8fVQ1P24kZVUwdm1UOytHd3pHa3ZeQCpFI2JDNmEyOTJveHwyVkwKelJN
Q15nZnRTbDsqYEEtaVJvdElBdXo2QyVTZ2ZyendFbkpReldIYF4ra1NKRlUyLXF1PlUkUmxIQyhj
N0pZVHgpCno5QUByKylaZEMzR1RqPnhxaiRtUWJkUHQwem5XJmNIMFh7Pip5filUPEpAemlhfVpN
I2NEQSVDQEZAR2ZzJThITQp6ZjdTRTdFXikmX2dZQ3paLVg7dnN2TEVoX0loakVEcVR7Jk03N1J5
OHtuVlkpK00qNT0qNE9WZlJ8S2BBT0JsIyQKelREdD1SZn4yMSRYP194d3dNQFowWEp3ciFfdFZW
Wit4cnUqX1R1YUQ/VChUMV89K35fZnNFWnY1Jjdab0NkVzVzCnpzYnhIbGQ3M1pKLUJvYm9kUFE5
U0oxZzVeOS1nfl9qdXoqVkNsZU96Rz9vVzJZPyNAe2dGI0VpUDFVQzRQQilofgp6OSo8fCV4TyZM
LW91UnhvX0xFXl9xe31KKSNgZlQxNHEoaHNAZUZmbWA8QCVLeWRPQXF0ez95VT45U0hhT31KTU4K
el5XYmE2eCtIZ0Jsd1lLRkkjPSpuKlZhb183T2lhb2J+T35JLThFJk9hNHRYZnBMJFMjRmtwWE9u
fW9ZdHtfY000Cnpydj1AZ2N8bUBpJVMhfD5KeTNfQCs9Vi0zZ1UyViVgeUQ7YVBfIzZ6WTNzbHFM
SElDUkhGbiRtT00oZFpEWWo4SQp6JlZJZDBaYHpDZClzMkBMVTdEV3lPRk1ucllyd0JiSCQ1MDNE
T19ETCQ2ZHRCP3d+S3teNmk5fHFrWWpudHJ5bXMKejZpNTRHcytMNGVaeSlfQ1hXbz1LYVp2WDU0
KTVERG0hbDRwdjxPRzU9TEQhMTkwPCtjPTZsTDlebys5S0pjcVZ2Cnp4X198NF9AP3NQPVdVTUk/
RitsZ0FHZVRLKHRRXmI4MmMzYVd7Z3BOa0FATjUqb0Y4fDl7JmBOYXgoP3klMVklOQp6cn1PdXdZ
KERXPzJ1JGYhTlJBQTxlVD1tQE5pUTFDR1EmQyR4P0NgTXRFbHx4YWsoJE9gR3diS1olXmIyNFZA
NzMKekg/Zkp8WSQ5fXI1MHZ2JSNlfDswTkF3JHVpfH5KfXk9Vk5QQDBpIU1rfTNLMlNUITBsX3Bh
U1AtT2woJE96Yit3CnpSYyhJaGpqJH1NNjAzTjNsPmY8KCVSMkd9LSF4d0w5PT81c3deS2FCVmNo
Z31qNzBOfUJyRmJWWFZIUzBIemFwRgp6JDQraDM1TTd2SURPX3c2SWFqWHtxeENUTXoqe1NhVE1L
b3FvLU96fTFGUU9yVmg0KlopdSRWMl9SM1ZMb0plVyYKeldkWmM5U3NPZFFGPGhgVDU0KnFyd2s0
YFh8Q0V+Z1VBe3dlWihvbFRiYnNGNHFwbmc9KjJSKlBoelZEZF9jSWlJCnpXcyNIXlZYRXU8SkBm
OGV0Sil0O0ZQcFojWTJpclJYPlImMVR6RkRnZGE+VGApemRsZ3VIN0clQnRwPG5JfmlFNAp6Kj8t
bmFFb1F4VW50bSN4T250SWRwXkY3MkdGbTxHQkZud0FNTkljJFYlR2dKaSoyPDFrQnN+QnAyO2h7
T3VnJnIKem9BI2pvakF1USktTnxqXjA7TCg+MyFocyhKbGtfbUtnUjFsZ19oPW4/Pn4tLVRIWXJC
Pzs+UnhpfX1YLUUyRjhPCno8YUR4WWFxMjRtLUJpNU4/QjJCMFokbTJ7aHkraWg/ZDxDd08zSXFi
e1hCNmBkKzxuS01gZzdJP3tmMnd6NXVFcAp6Tl4tUyZNJVFmWVRlIUJJRVJwTSRHaS0/Qjlldyop
eTgyYnQhI2VyNzBhSlBaNFdVMWNzPCglWD5DQUhQVyZ5TXcKenh3bnM7PlkzXnZveXg4RXh0TXg5
RzxETn0ka01LM2lJJGsrTjhpcCspayZoNnFLY21GIykzX3k/QnZxTmZVaklBCno8R0BLOEx3VUxq
NjxyaChKJl5+IVE+IV9MbXhHcTxnPyF0KmxUemBQZzBBWE13ezxSejVQKk5zXmdScyohcEZHfQp6
M09mYyQoMSY7U1pLUEtve2koIVRzQk5GNWN4ZkkqKGMpNGglUEp7KGk/VEtSc2smZURsY2pgYitt
LW1Bb2xHankKejtaSG1DO2hrSXNfTzU4XyF+PyRNR1gkXzwjT21WQzReK2x8PlUoRD8rK3hDMEpW
czJAOEA/cn5XTEM4X25iZ098CnpzaDtjcXs1Yjkwdz1FJXhVViUrSzJhNDVweEUwQ0soaWh9QzZN
ZklDSlpAazNXfmIhbEl3ZkFWcnMmIXEkclcrNAp6bl5aaGdPZnhTWVZaUi0rV0R8NTxLST4tajU5
Z0FOVyRJZD1LRD8jLWMySSkjV3EqLTwlWE93NSZZb1dGcGAzSzUKek0mNn07bkRRezFpUlpKWDhT
Kyg7NiM0bUBqbHIqb0tIR1ViT1duPWtRRlpuNFluI0dGWXlCVUotT14+diszSWxPCnp7TzBlaEQ3
fnNXY1dqMU9eJERHYihTej1uVCRNLTZpa0BAQz1NPEdRbld6MWY1WTJxOzVkSHBFUX5kUCM+JGti
Xwp6LTFsQnszTENRUjZiK0I+bnFAalc9QCQweiE4ND1GPmlqUD8wcHA5VnJXJUkoNHpGfjJKTUZj
KGxBcTY5RyMzcjAKenRZMFdkQ2pjdExEPnohNyYoOyZeRXRiYjA2KkVRXiRKRGlYPCtNcE1vI01H
SlZAPzJ1PDQxPk00cytAajVXdE9MCnpjNzZaQz1HVypsQDVURjZJWHlRamMoNlU4bSllQTFTXmhY
MChlJCZhJmFWNlUjeXp5ZzAmPnNXZ0hqYElGdXZ4egp6SDxRdTJzNS12RUFiaENpJHYpOU9VJn5X
bzgxfjZ8ZVlzaElPZjQ8RG9vKyN2ZVBUbkJvQVZWUzRsQUYpVXJSVXwKenxEPkFze0hELXZzV0M+
TV9pakZKX05mM1I5cmxqMFZZOUFWcT14K0NhdndIUiNAczhMUGc3UjQmPlY8bmk8YXRFCno5UWAy
cHJmN2stYW0+UHZYOUNreGxnQ2h8XiZ6R3kqIVoqQ1BrcjBgWSVkMmtkTWklZiQ5YSM2bFhaUF8k
OTZfIwp6KnRPUX1kTSoyTUFsU3F5PnZ8TiVRRlJpdnF2PjNAK2QhP2AkKnRCfjwhP1Q1WVA8UXhz
cUhvSVghNGxrUV9yfSgKekVHOUFgeSRXYHA+THRGMFIxUER9JTdiaExzaz4jTGV3YzIwRFd4bUZO
aGo5Uy1NQXghdWFjI2tsX1VBVz4wK0hhCnoqXlFMVz1OQWtre0lfMWx7cVUjZio2NWh7OGRCWnhe
ZlVgS2ctR2U5M25weiVKOyFVK1BxMGgmMSRkRHduciQyOQp6PlpZYUZGYm50Vnw5STttRXIqKHIj
S1FYeCFBVDU8Iys8PVNDUjBSTnYpaUo9Nj9NT2Zqe2JsZkB2Tnd1d3F3Z3AKeiZwIyRGQj4oKUw5
NGwjR0lNTzlTYExsRkg5K2Z1WEw7KEdmX3hvcj4yQFVnR18pfTNPbVR5WjItJVFzfS1EfGVzCnoo
Q3Z5SEQwTSF6XnsyOThTUTdWSD93UEE2NHhYKWxgcE9rR1dvcUFYdH4rZkVPKG9fXm5gZG9zI2pH
YSR6Nns+PAp6eFpISjQ+TCFvZUtMM2V3R2hVaCFQUipZfUEhPTQ5JmZkTl9WPn1UK1hLO0YoPH1M
ciQ2UmQ4bUV3cEAxb21ZTT0KejFjbEZ3NmtXJXNidDx1M04pfjhXITYlN01XIzAlQ282fEszfEpL
KmN2MnohUExVJlVHJEMzbDlsfmpTYDdBPmA/CnpIeT1JdVorLWFndC0kPUZjZmVGcHdaVE14O2BX
STA8M04+Kz9xaz0zWHYtTGR4d1BwOU58WER4OCh2YGxAX0MhLQp6bTFXdlEyM356RFopKWwlLUY+
YDtzIWxKdj51RjgyX1h1UUpVZnAoe3ZWcnl5WnwrYT1ZSlBEKT9kRk10cWNaNlIKejQ2NTh3I2RC
TUp3NzdjUG87MGRqWGo5cUZWWm1JMVooQDAxeE83djJ5fmgxdit4PHZHek1UaDcpQWxfKjt9ZkEj
CnpWdHV4OHpSQEl1eWlzWjVUcz9ibnd5Y1JrcXJQeEN6d2d5MG12QHc+NmliSF5gZHYwJGZCSU5G
RzxvbHhgaDs4cAp6dW98TntDPkgoRl91aCVlWUFJVnpWJVlrQkZ4UDQ/Pl5nb3ZaMTQxIURtOUsx
KXR0NFJNTkx6PWtMWD8lKXBZMkkKellQe2dxNVBFPzFeTHxfTUBgWUs9QEpXPXMrbGQ0RHkqJFls
R303N2k3amxCRTxnTFlQbFhBXjk0YjMtaTNKcT47CnpQKXY3SypzK3UjcitzSk94PyFIQ2xQN2Je
PGVQX3VsKSRwYmFLSjg2U14zVnsoVWZBPEl4MlFMLT1nd15fcCVyMQp6ek9rbW9UWF5OVWB0Xik8
MHxxMEhgJHVwMk9saFZYPD47SSV2WTREYmg7RDNUO2ZYQSpDXmlfU19yKEAqOSV3dE8Kej9pLX5x
cDxkTHhMbVJ2QlckSjxhMlVQRTNZTXxXWF84YWNfRGUtSk8rM1UzQjJlfnVyYEolUD5yVXZDWWtB
NGBpCnpfVj4jZXU/Wnx2bjN9Vn4jKGJwezV6Mm5EJisteXxVWEZCPmRiKiRjNmdCd2lSdUhjaXc2
KXVSbE18QnklZzR2agp6aG9mMXBkJDtyMFYzP2I2ci1iJV8oMjxpVk99I2dZTSkrekArQkFLNWF5
TiRPeUh2a2pgJj5oMTNRbzlSd3VKVFcKeiold1pITVh0UGtnTFdHRlpCLX4tKlFVbHxNLU85SFZg
bEBNZFhyfXpgOFQ8anpZfkNCN2BHeHstU0tiKlEkTWR0CnowJnU9e1BLRUk0cnxnMnVmcTMpdyk3
Q1hkVilEOHlQanhSWTdAWGhJbjczKGIrbGRRMEJgNH13MjNrMV5DUyZHWQp6NER4cWBsfDZoSXgm
S3tfYHszemF7VmArdSt6cm09M0krcXdzQDhsWnhCVDNoWHF5SWc+SnVgMnhxQ2I1UlZ6QikKeiYt
LVo3ekJJOW49eTRZPD8jQDhSODNlYEJadURoMStlRGVfQCtsJkJgR1RwJHcpVF40WVRLV2JVU2hv
XzlJWX1MCnooe1NhOV8+JEthQU1RYDFNVUcjJUNLWm1uUDhpNVlgc2o1bj5NajRCeXU1UD9TMlg/
Wj1AZ3RwXzJ1Rj9OX35iRgp6P3wwY0tvRVNNNFpgaUIpJTFtODBxTiVCPXo8K3duKWtXb1Y2Zz9z
V3R7MSQ/SVp1OT4mMnM0T1dhUnFrRSs+IT8Kejg5eyYwO3g0fDl1ZitPaWZVVSN4K3Q9SjN7cldW
PWBjOTl2V0U/cVF0UHlmfGV7SSNHKVItWXhxdnZWWXlkYitsCnpzQGBzIT5tS1JAUUBMYVhiQyoz
KmNHTn5EKlNVdzkkSm1CeEFNJVQ3JShvYVBmVCphd3EwZiRRRlJLXnowaW9wVgp6bEFHb1gkJWNB
JEdxWkRobHdWbjIlUXM7TkRqSUxQbC0rRThSc1R0dHlIPk1yY2VyPVoza1AkLUQ7K2B3eVk0UlkK
em9ldmtmLXpVT09DMEVxSVc/MCsoalUkb2dYeHl1Kk5SZkJOS0xoYWZOezFBcjl2MHR2RVVJPUJN
NFVkd3NXV0hMCnpRT31qaEN3QkFFKGNidmk/UDA/S3JncjB4LSEhJXNyUWRvTE5xeWhTVUVQMFNp
NSN6PkZqd29IVzRwO3QocmJndAp6LW1rQmlsd1coeF48Izx9JU0/MXhXa21OM0tRcDlYUCV0Zntt
cyNUREpLMzF1YG8rbTkrY35COVItWXtNJmJQWk4KeldaYUQxVS1qejdlemcoXnYxdD96SF9rcU9v
JEpZNFltKzIlfEVrdkZgbDgwN2U3bFdEP2o5TVFHfSk2OXVKblJtCnpybXklI2okSFFtbXxrUXFA
N3FMJTFIKzVFSHl6RiNjd2YxUEQ8SmI9K018JGQya0dQYzZeZTdOJSpFQHhabmslUwp6JX19ZDVg
KUo8aj53QFJHMH1XaDFjaEp+dU90YX4hSU8weTNiTk5PPGRFNDcwOGs+OHc1MWhvdjNKUn18YWxI
c08KemsjUzkoJTBBUH5TOF5rMzxFRm11VkFKQCtWeCNsUG51bT5jZDlpd0plbzNuP1RafG9BbCVD
Z25Ib25iJC0kS1d5CnoraXF2S0x9SkNfMUcxfENaUTwjSzBFZipGb0lZOUYlWUNkWmI8ZmMkTUo8
YjQpR0FKWGN3WE9xcShWUkItU18pfQp6TV4jPEUlYHl3ZGpCemVhWVA9X1dwMSU1PSgjT0VQQmsp
M2NqbWE1bmlKe2pLaFlhTlZVbDlQUi1PMEMxKz8pK0gKeiQ8LUM9KT4wPEkmfDxqJSVpUkZjQk52
JVdxVShEdnchTk52bDw8OSswQm0heWhZTTZycnRrPEhsMnZEfkY5X0puCnpQY04/OXViRV9ndnxX
NXhQNTtxT2pLVmY4JC19cXZvVVgrbGJ0eFNQP043KGdEbjdtKlktMThQNmhNRWhxJFRCfAp6ZGBW
WlIhQlRRWEMpJmlOQkFlRG1paVg9UDxoZ3Y3XzFrYVc9V31ONklMIU0tRClnJXN4OF5laCMpZkhV
Un5Ybk8Kej1zbFREXkpUNmQmaXp7YkVrVn1GZDk+RXFeMD19MUojI2pXPGROTkQxSUYoTkFuI1A/
amBDO0VxSDIhKWJnUGF8CnpQMGx6bHBWVTxUZyF6TCg7cGJ0fk94bylRSShLI1RDJmZQSSRUQWJY
fDV9Y29XaWk7Mj8zNT8oTGg2dG58SChaSgp6djlgN3VadmB5dEwhNiZtdjcyeDR6R19oUGBsNGBR
VGorKUUyeGFYZT05PTBDO2ttbF5BcyErbG1vX3srI0tJUiYKekZNfEMjVjRBQWoqUzxYVVZUMnlF
P3NPWlAqU3s5NFBGb0BNSWJQJT13a19ia2YjYDxZLWtIJV5JeUV6Y2Z1QH4tCnpeK3xIVWhteEUx
QH5NeTZ5bHdrM3RWUXspPG0mVkQ5TzRDciRFV3p4dztnfTJMYkVBU0dgS1NHPn5ve0M7LVU/bQp6
IWo+RjF3TjNCWXRrWTx5M3s5ZilzP1JLUmF8JjhDNzQ8NT0oU0kpWTlOcDhFVXpwSnlSezEpYXh0
eGRibWNTVUUKenY1Jlg4blZRWH16cT0/PClrXjdXd3d+SWo/eWMhSiZWMFI2SEs8R2dGOVB0VWtN
QjB0ZXMwdF82eyt8UnpqZCpCCnp3JXAlckxGO2FeOXNjWGshR2tvbUVVQlZaUzBee2Z2S2ljUEpa
d340b2M4M3hOJjhQcEgjcjNnLXF1fis+ZEl1JQp6ZkFVTnk8OFoqd29RQUp1S0BRXztTTTk0dEFL
SEg/Wm0hLVYlanNmakcrQlByJXlGciY1O3sqNzlsaXVvc2okejYKek8lPUJZKW5acyNYdX50WTB+
YGowXntyP3t3STZqS05nTWtmNzxYYmZxWiZJWjtPYk1haz05RDNzY2ltQDNjNykoCnptQElOY1Vu
cVJtTjE0LVgzZE5LPng+Q3IpU0V1bmFndzAqTCRNQ2lFcS1lQUFvM3Y1M1hffWJublkpaXExJjZZ
eQp6V1V9S21wTn1UZU9Vc0A8JkZPYSUlVld2MForWE9Be041fD47ant5X2xZVkh+YEFNeC0tdXVn
a192diVIekx1NU4Kejl8flAhbX1eK2ZpV3I1SE9rbX5RYCE2UChndkwyKVRMU1B2Xk19IWQoIzcq
OHpmS3B2XldfM0Zoc3dtYyNJOFdgCnpLRCZGSjZ+VHZeXytubiMoWCN8a1NOMH57NSlaS2Fza2Qk
NmBYei1BVGNNNTRGO35ldiYjX0c7b29EUWhOait3ZQp6clQ4Z0ZOWUtYOGlgcyh6RFVZYkxBS257
bG56USRgaSZlYSEjRW5uMD44cjsjKzIqaSZFKmFsP1cjeVZlKE4xajwKemFqI0M+RmFPeiZyQEpw
NyZPaEpkPzJJYHprTEw2M2VwdFpFezJyZnI+Q290MlBybE00WFE/Y1VQQ2EwfTZXTD1xCnpuYmhq
dyNqd1I7Q0o/V2JjflY4THhTaCtHRXBlSjw7TDFjcEY1a25yZ0kxUD9lTnRhQzZ9czYmOUglcTgk
Qz50RAp6ak1APTNZcCZgcUZxWXZnenNLUjVOSzM9KTExV3kxc3JTPlpFfCpWPWhQVyhoPCZ5M0NZ
RW5kN1FxUWg1VnhwQmkKelVSaGJWQnVART9xSzApbGM/MWpWJFVPY2U2JT84SUV8bXFwUDheRiMk
X1VPUCo/OVJ7cT1UUC0qZHFhSEpCYlVlCnpNUFEwb3s7OVVvKEJYIWNON0h7flo5Tip0d1ctJVpa
KlpeViUlJC1NaHUqd1N1VCFvcCk0YkxteEA8RiU2Sjl3Sgp6LSlPa2tIPzNsTGY9e08wP097cUsm
Z0xTdjxDKjtPJDA5R1V1eGVGdnI4YT1gPHtYfnFoXyYqUlJXfmxAJUc8Pj0KekdSXislZDZAYjQt
VSRRUz4heXRGZFV4RU9tQ3FnRnlJWGF8SXNmTDZKSnQ0JGAoMEN1NnFYJE5nRjtPPUAlc200Cnor
MER2JHhabGdxWnwxI0dtU3ZPQ1NlRUkrSEYwalZ0JVI8WHVmbyt+THB7XnVjRk1GWHhfT0pgQ3pe
YGJEUTYkcAp6eT9AenxvUyg1eFdWdlcoVSY1bm93d0tBWUZBOWI4QUolalFJRDhMa3s/PT9nZXkx
akQ9bDJualhpQClTWXp8K2EKej1YTzd8JS02IXVDNUl0fldfdCQ3YSt3JXItP0F7cHBwS3VlS0Ex
eEt6PUM3PmdKeVJkTUFFNHlAZzltd1gyeGxXCnprR2stY0V7XiZhPj9qP2hPMEk5ZXJObT5BdV5A
SE55eVpTY2tkRl9Rb3xEQlpiWSpoc2tTUnleODJifXI9RmQwdwp6STkwbk9pYUolQ3A4RU94Syll
I0B6aHx5KzYyNElrPXU5MHMlRDIlaXNrPSFyT2YlN2BUVyZKSz08OzRpbGxLfDEKekJsVG4paXcq
dmRtZmtFNTVQKjxsaiZIcGRVYU1Wam1XS2VJRGI5YzFZe15Nej5mJjl4RX5oQnU8YFVyVEJ6SCpl
CnpvTGZqYGV9JSpLKHhxNjttZVdwJGQ1KDEwaEJhUm9ZPjt5XmJeS0F1b3A9aGZIMC1BckV1NUk3
Vkh7PG0oN0V4fQp6NlZXUylnWUZhNiR3XkpnY30xNlJKNDhHQGQ3XmQ/cXVgaShOPFg7az5RaXxO
K3hTcFcoSz5mNGVfbDJEaDVWV0sKeiNqak1peDQ1LSMhXmZEV0o2ZzBvO0BWS3w/YjY9QjhSOGVP
X208bkhgdVNMQHBzd3RhTChWaj53dDs8SFgwRXFFCnpwa0J1IVlQPmg1UEF5YDAxb2R9NEpUc1gp
MEQpe3g7YGtyZUQ8c1VpbyM+WlVgVUdBektBO2gxb0EyZmYzdylgOQp6YzU2UkpaXns7bVolSzJJ
KXJsOG8zKkVMby11cU5rX19oMWBuT2hJNTJjQk9ybjJ1SXR2SEJ0TCstVmB9bWRIPUcKelF6ZV9U
MylDMk52QU99eng3TmtILVpJa35jYVNmP0JXPSU4OypALWFaPUopOyp+OGRfMzNCcWMmTiZEQ2pB
SmIyCnptZDF2az1RT0cqe141TzVBVFFlMWZjOTlJYmpWJExTTld7JHF0fGZoLXUrSEY7eWZMZjdB
QG1tYFBedE5Hc0hkUwp6YWNvZX1LY2x8U2hsTWp0aDJze1VJPEglfTtLbHhKQ0ZYdH0tUSFEcUdk
cVhBcy1NYUFtaDBIb3V2TUs/Ym1eTVMKelQ/K1lmT0F+Kl9JYlYxR14hRmNHQis7UzhXTlpmNCNA
I31GZUxkT2t6Zj0rfFRmQ0lPU0x6fjRKRlh0R0JoTEsoCnpnNnA+RHJsbD0rS1lZRyhhWnVma3h+
PVluPn4oa0hMR15we09AbXEpM288X0ZnTFhSe3EmSmpmZ2tJQlNKbDlAKwp6OHQ1X2lTU3wwdl5v
VWw/eU5icXsyOWIpRks5KlAoaDNXNUk8SEN1P21TKHl+YXR9OGp0MiUzNW5+MlZ1aEA8JjUKenpC
bmB6KU5Kc0BzZDFXOC1AeEZOIz9FRS1qUFFhVjZSYksjJUZHV2QtPHAocnZ5QkliZjFhbVcqcmlV
SkslZVZsCnojOHVKNTZGdUBYUFUrTEJFNWUodVd5KDc0QERiMnxHJFpHSz4md3IweDdjQkFhV2x+
aT49WXRpe2U4MkY5WlAlSQp6R2lYWX1iPjZiS1BhMTRFNn1jI35eWFNFWD1FKnFrO0BCczJPNFNS
Y1pqcjNUTHlINT15dChfZEl8eUolcl9ebm0KejI3bUsqaUR9SUkkRW0lRWdfUHk9M351NHcqbGta
TklleU5Gd04oJGY1a0xVcWBSeCtyQEJ0SFYyZmsxVGV4OG9JCnpeTnhZPWUlNUU2b2FmJDw3VjVe
VytaeWVPc2MhbTU5YGRJfEdWbWw3R29OemwrQVY4b0pVWTVoSzc7YDdLWEdqTQp6KU1JLVM7fmM9
UyVgYXhhcHBlI2kteHMkeS1nfUNzJUxWJVVSMGgxJVlWV0lfVW1xfmdadylUSHBifFVecm4wKlEK
eiZYJTRJMmpwNyFodDUzTCheSFFXSl5MKkVkUXM4eXVTZjE0aF5BcnRrPlRhNGpoaDxMSHNuMlBO
JCFVbyV4RVFtCnomcWt+PGpAPWhKKHotXlIxS2dJeU1KKkM5TWhkXlZ1cTlHOXNDNTFsRXxMUEo+
ZmU+P0hKeno8cyFoWFVhdXt7Zgp6bmE7a2EmNWAldmRyMWsjX2gkT3hldVk2IzxUSzBsZU9Ub2RP
UEBLdXpvfiFtZUZtbkY/aEF0LXs/ckEydVFRQD8Kei01OUN0dUlOdig5TSlFWWxsKXVOP2pFQ2kq
IShFeU5VP09+KD9Ec1RYZFNtS2QlYUJaZ2t8JjgrcT11VWFrSiV0CnpNVGA0eFcmODdHejBEX0lB
aUV1WmxVJjJwZSRuJDtSUWkqc1lvKSQxbzZVRy1tM1dgMGR2PC1rbWYmNjclanM1NAp6N3M2bGxW
aTd0OCtjKSVRMlZQc1EtQ1dXN2xIJSpnaXZAIV9aIzFzSEY2UShKQF9SMStFcndyY2khMGZecGVO
bGEKenh1MjdSalR7WTVmeyV3SkNYN048NGIpPHw2KmB5aWNXejBpcWlXJXduZF5DIyVafn18Y0gh
eG4mZVlnbEEhT2BLCno9Mj8wN15paWBKO0VIODZYcX47VUY+IVIxT3FBYF5PcyRYZSZkYk1YIWI8
Uzc7bVJfQ3hoQCZtZzhVNTVUMztKKAp6WFpUbEFZdCg3KVpnOWQ7aS1APT8+Z2w0LXFJKSVWRj5I
SGtKRT9zfnItJShUUUdeU3lvZ2plYkNCXnlhYztrRDcKeldATzMwS1crcW9PTmAtUzA9TjtOQD9Z
RXQ1YjxqeDA5QEw/VytPbitudkRSQHw3SWdWPChpRUV3UUR2NGR8azU8CnowOWpHfWRuM1NxXkZE
eTBIVHdYYnwwbmtXUkliP3YoRTJ5fjBMSXFyMURPNTI0KipTQXZrdzVmVyotMjxudGNGVQp6KjZh
aHx7Nz4hITs5YXYxS3JyUCQtVXBEOUBfUWVeald6b0tyMmlaQzBWd19WPjt3Mjt2ai1zTFp9dEVy
Z1dyMXEKemllTWwzX3R5VS0+dUQke0Q2a2FkbHZwZzVpaShuJm1XaHMqaEs4MVA8MGJ8c19OfDs4
Pnw1RWBhNkFJTUk0KnV9CnpIbnZAb3laTUVMI2wqeG9kOE9zME1DMWZTI1lCa2ZYe2V+RVhsWkMh
PTsmQlB3ekYqKWBBPVZAI2FUQiUlS0c5Zwp6Oy1hKHZqZj1EWHVvIUFrXngoZWtATXJPPDEhVU5o
YE5kPEpZSWRPfnVidVlPKXM1TUF0fGo8SSNjcHowYDNRUm8KeiV0TGYhZ3JETHFiflROPVh0YllP
dlhPQlk8SCQ9VWtHXm94azdwUlphXiV3fF9LVChJPl5wWnd5M1YjPEVLbSZTCnp5I0peKHI/O1da
YjdXdUl6YD5ScTZfYCRAcl95KSV0azFsZVk8YXc0RUx8Vy0jQFEjO2krKWRCRCpLMmsmYTZyeQp6
S1J5TCgoLU9RZHdkaF9OZE82P3dUYTNhcm4qPVlHciZeLT5NbHtzaktBdmx7aTcrQ1FQMldFTVZR
bGY5VG1uJG0KelV9YlZeSlI5aElqbFNlQXhfPV5OeWd1LWdPLUpaVlNIbEwrcGBSYVR6czJNaEhI
TD1ZOFZLJmNvTXtyWHs0e3Z9CnpRKiFIO2FiYHVeSGd5KHApaCZxJmRlJj9ue1JNdChRTiNHJTJt
MH5AeHR8Kl5Sc35WI0MyXlA1OWpGTVI/emI/dQp6O1l+PFY1VyUte0diX3w9YE5GT2llI3N9IXRk
Vj8/P3R0NkAoZENyb29oQU5CQT9YNXxJd0t2KTU2Pn4hZXJPY0QKenl0aih5JjdsMEN7eTZoaFJH
Y01tT1l5Zkp4MHRpTEFJITEpV2N0XyYleyY8MFZ3QzQtWmhTaGEpOTk4c3BQSzEoCnpePm5UOFM4
SzhqSzRNfHA+KiUkK2tOa0xCVnhNSmBtZnByTTYpV3shaDF4cVlCc0U4Tl41aldwaUJQTkhwLTle
awp6MTRwQ3QzSz57eHQkJlFsQUo4aXFSSTA+cUU1djhtdW89ZUVuVUJobUJeaUtPYVdqOS1kOzMk
VWlVUkMrc0sld14KejgmbnQkTlRUSjM+TmJAWjRXZjJ2JU8lQTd5WkFnYzR8e219ZVdyJGgte3Rf
bl93cGp6am03KU50Rz1jZV8yMCNjCnpUbHglcysxLWg7VkdDfSZ7QDZsUkxfS0doVCQ0Yk9OSkZR
c2kqU0hYa0E5V0VfVDglYzlqQENWdmVfUHBAOFA3bQp6dXV3I2NudDlOIXRyQV4+NXhTdSRSbmcm
NHp8RDZva2pyOTU2fGx1K2c9dj1UKXJ7Nk8/aGNoaXhvNmNrVylncyUKenVXcjcoK1JOKm0qXlZ7
azdES2h9Yi1tTTYrcztpY0dkQ0loRmpRbWV1QTchUUUkZE1GKSszM30lZU03bjsqNng1Cnp6fUVJ
MypvKi1hIXc/SWEpRUM3cVpaRVE+azVhYUJDelVrYEh0dE5mRnd9eXQtKj5tezx8LVZYc3VYK2VP
Ui1OdAp6YXFIKDJedWZ6NCFLSj0wJVRHRCphYWQzbnBZaiN8KHp9RGgrQn4rYHlndy0tR0NPKVZM
d2szRy09blRwc1RAeDwKeiYqN0o5VDcjcGVEaD0oJiNQY2l7JXVBajx2PlBzfm0tM1JBTiVYdkBl
bmhuNCU3QzB8YGlUPm9UYWA8eCpkM0JlCnozWFhOenNCZ2M8O2I2cz1XOUZWVnRrJCk9Tn59VjlN
MVEjRCNNU2Q1QF95cWNETCtuQig+aD0wLXItQVRENFZyeQp6Jl5EemB7eFUyM3BqPTtKS3tDVlBi
bWJrc2BYdj9RV2AoYEZ0cWtafndWYUZIcj53YypnMkZAOWR5QUpuUyY5diQKemNHWlk+Sn5ifFNT
VzxrfC0pKno4QysxNHIxS3NEa2JaPE8pNzM7MSZTYDNRU1lRKiNJLVBGSS1hT0tSS0wzYnMjCno/
Z1dmcD4qSlBedT87MUFEUzVoaXVZOHdqNjN2WjBvdiRsPT01KnN4QHIzPUswKjhkSDdhcmclV1NS
c3l3c3VYQwp6SnpgWmY4V2VhS0h8bXplITJHVnwtb2stSXc2fS1pJCU1dn5jNj07ZmkpPGQpekl9
VyEqbHA2V3k3cVg5fEF+PyoKenl+QkFiPn1kejFUfmprPj9oZVd3S0w4Q3Roa0IjOGRmcSFNdTNq
Nm5SKHp2JTcoWlhpQVMyfH5ra0FxM1JWYyFjCnpJaTJIZT1yJUtRI3gqcnpZQXtQcitIT2RtS0tW
cnotS1lCSHN6TFpfZDZVZEZmR19tTm9gXmtPU1VDJm5vVlNTewp6eCNDfWpOLUJNIzU2XmE0VHJm
NTIlVDEmP1BPbmohPyY2VUJUclktZkx1d0o7eEZlJXZ5QnNhWUcjcT9sLXw7TGgKekZpKU18ZCQw
V0JeN2kxTmsmfHozRmFpbzgqezB+Wksld351KVl4JU1ScWhGdkZHOWtWMmZvSC1zQz89dnYrUG8k
Cnp3aSVQO2pDST97bkJTbDduSXc4JF4ycUhmK0BeQ0tDOUliaVZfS2VZV3V0ZGsqWCR8bmsjcDQ/
TmlAOWdxc0Z2Vgp6MWtLYmxaeTJZbnFXUXduQDUqIzEtT2sjTFhvVWZHe0lQYz5UZjx5MXc3d2J2
a0ImJmhUSzhDIVJXMX1ieTY8KnQKejY/PyFWRyokMXs+LXB8a2lyY0khaXVwNVJXV1pAZC1jMHRV
aUtzNykjbTcycyN+T35fbT1BcHJtcVZkMjdJZmZNCnohX2pTWE4pPVNoa01IKzE3YnpXMipjMCtP
eUYkSF8lXzdfN3ZSeVRvJnxzNml7ZjVtPDcpMX15YCtrcTNHN2VEcQp6U3VwISoqTkR5O29QNSZq
c0tLc1RBPV5ZSiozMDhLYnllQzxpR2AqOVc2OUdhPWx0N2NAZ19gKHA0PFpvZVMqKU4Kemx5eVJC
eUlGSSE4TGNvJHBAemJwSzA5fXM/RU1sUDdpMldoODYyR1c/ViVpLSNQPSh3b2t1IX5ZK041ak9M
d1JICnpoN0VlMig3VylkP2RlbitOQXtIJHBDOStBcF9jYkY3ZHk/MF56O2o4SWMoOUZFcWx9fCpI
X3dsQXBUdUp5dSZMdQp6PVNIc2pfV0U/Y09MYzgtUUBJajlqRDlBaFZBKDdlbiRqTTFnPTs5QkV3
KEU4UklmUGhTWUR2dGVhQ198JEszSGUKelBkTU17SHlfNnVkOFNebEtBPyU/cVRwNyU7SGojaCVV
KkoyZTc2bE09eEkzSlk1TWE/Q25GcndQN1NsPmFeLUY3CnorZWFidD5naVNPIXdMUSUkaXVxQ0Rs
XnJwTHJyQCFsXyZJTF90YzEqJi1XbHxEejJhPnpNTXdncW4ob09MWTJBLQp6MXgqS255cWN4RG4l
RV9fc199K0tKRVczdHRBMCFreV4+ZFJ3M2pjVVhLfmk/VSMkIzJlPGVSWG8jQWxpNSpNWCEKemQr
bzZ3OTsod0dKUWxxPy0/RXRac3c/ZWFYVkFvaWRifTdwKjBLPGtkY1F4cSZFU1FjIVJCWjBYIW1o
MjM+WiZzCno+UV9ETEN6PSRBaUhkayM7RXEyeFFfWX51KT9fRlBMTiNCc0lLPVlCUn1VTU54Kmgm
ZiZybVhgejtnSHI2REU+RAp6TjxLPyVhPD4hcnozJkFsUjNuXlk5QSgmVjRhfSNDKmlBJUkpZytw
aTRjVTgweFFATWpHYDtoWXhjOXFEPWVYSSUKekl8fVB7cU5OOXBaTXt0fjd5Tn5LRHI0S2V7PTIj
SVN9YHh+ODRhNE5OZSE4Rnt8Sj8/ZlNxaD5eMytBTVk4SHg4CnpzX0o5TWdXKDh+dGF4ZF8hR3VB
JChiT3dia3woUykpfmNOVnZNUzlUbCRYbGhSPHE9PUpnVCllTnhwe3AjMVkjTgp6PGxaeXpQVnRi
KlkhcShybkFeIX1kdnQzYHwwdEB+bTtQKiRidFY4bXgpV3gwUmdWNH5CekdfVDtPSUs/ZWIqOHkK
enR6SytYZVlhfSRfRnxgcDhoKkQ1RGl3USZZQ1cmbDdTP0lgKEtoWTtAYEFeNkk7VSlfd35mVTFA
MWc4JkMxR3kkCno5VzI9e1dPcy05e2lvUTRLUiVvOzs8Tzd6eUJZJEViZE14I2doUzI5aXdiZzw+
c303M01wJX5AQWkxV2IpXzJuVgp6NENkOHJQR31eQlRhPEJPeyttdj1MXmdVcGV3bmd6b3JTeU40
YWBNUlBmQGtfNGJCZWRiI0xlU0M0OFVXeFZjVygKel91RTZVOXkpSWg/MlpAWjlfQmBReWJNMUl7
bzFlaWRJPD89cHtjV1NwMHhgWWQ9RChSeUA3OGxaOCgjR19ONyttCnpUVzl5dHchMGE3ZH5QWHVZ
K3VQJCpecj9YOCs9Y348d1FlKTN2O2lsWWVgPjg+d3wpeF5uRz1zIVkwJGJxYz9PNgp6cUJgYy0o
Tz5HbTk9S0BzUW0jb1VhRGwoaS1FYTRVV0o7VX54OWUjODs3a0dVXn1CNXd3N2ZYQD5pd3opPFFp
PXsKenc+d1QkTnwpPENzaUxOTGA9b3pJJCkjVWtrYUUmJWV5YGBAOTZqO3p0eDMkRyllbHJBIypA
O1Q5YEwhMWVKcmJkCnpgNiVYbyNoWjtPKT0hMWxDTDgzbEJKaFVBJWtzWGRUKX40ckRNe0xYV0gk
RTAxfjJFeGwwYzNqZXhubDBpKz1mYAp6XmRePm8ycj5mTEVJZWRmc2AkPVQ4dVFlVDw+PDktKHRD
Oz8pZVV5YWs0dHg8IXU8Xkd4XjlHZ3htNyg+RGdOZjwKenQ9VyZYXnU/Ryp4eW5EemArUVY0Kk9v
SnNjZTFSejxXSSRwcz16Vz00VVB1b3ImVVAzNyU9ZSZxMUojU3Q2ITkwCnprbD9tSk19NHpFUUpH
R3ZtQExWOG4jcV4pVksoM1EpWmNIdGxjXntxSDhxPkheKDZ0UXc4VmNzKC0tc1Z5WGxFRAp6NnBR
bHE8MSN8ODJSNDBibEhKRVV4P3E2NCFnbGw2NWV4RD5KfEJrYj1acmZxSD48bzdRUDtjRHBZQ2pG
e0FeUkEKejstMTg0cEIhaUhxfjRwbmFnYEB5S2glNSl5RUpnRnZFK3U8MEtIN2l6P2d+dCohd0hn
dit7YmN4dCVZZDZEUVIjCnpeRTlXe1JfYV9TeFRGNDl5LT9TO0hSMHtKJDQhc049UlN1Vj0oJG9C
XzlTdEdCViV5WSV6Wj1rcjUlcjNJY3N1dgp6VmFkRHszVTBYdWVOMWM5IW5qPS0kaF4tYlEjQjtW
ITBJcD88RSs4Yl9tbHheaShCQDVKLTFjUEglSTlPbkB6Uz8KelJ9PH42Xz8qfHBER0xjJkEhNlMz
Mkwha3xQeEFGdFA8MGgqJHV2b0Y8TGNEczVfYVk0KGZ3ZmFFUnY0RGBLfjBBCnpCVkxaLXp8PElS
MV4wKXFyYChWRT44UUdXWmh4SGE3PE9FWFgqQH5Ca2tNLSloc1ByTVk0eEoqbyV+bWVZV2ckNgp6
O3hQLUMpVSkmPkN+aUMxaT1Na3NVSE96cnVpVEY3b31rQjZUfUlLejYyWGxkbnlTaislRVMrPFI/
MiswPXZ+XlMKejdaVWZEaFBAdDU9cFV8KGNRMnthOUJIfTJYRnNONkhsSXxVUUNYeEY+PXVmZlo8
NmxiJCFVMlJBMWhlSnErPVpFCnpxKjN9Kk9LZXh5NnpoWU1PUUk2O3dzIzclM2QqJWxDeHZ2eXdw
d3ZwQFlqWW05c2hXUkZMdTtxbm16ZXx2dX5HPApMRG1mP08kb2xeUDNlb0JrCgpsaXRlcmFsIDAK
SGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9y
ZXNvdXJjZXMvaW1hZ2UxLmpwZyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL3Jlc291
cmNlcy9pbWFnZTEuanBnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU1NzIxZDUwZWQxN2QwMGZhNmM4MTY4NjEwNjEx
ZjdhNTg0NzlkNjIKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDEyMjg5CnpjbWVIcmNUXlAzKkpj
a3hqc2xffVFLQVlHMjJlNXJOKVg5T2tlb0JqM3xXR3AydWpYXk05Q21JM2ByMT5FSj96VQp6KC0w
Jn0mYWl7Jl9rTWY2LUx0I0A/cHg8bipIZ0VpeF96SHBKdkcmUkY+KX5qVHpNPWxDaz1vPTBFaCNg
MFJSYFgKejtKIXowUl58WXBwYTkkZjAwMC1qMmF5MDZYb1FFWnVSJkxTOyMrN080azgxPD1vVVF7
ZVlwVyh7bG94SjEpfjBvCnpLWjk9bD1BYj0qY3ooe3NNKVRUMWtlflB9OHV0V1AwaHF0JSZJUGpr
IUMqelM0TiExIWEpM0c1OFVlc1ZSVkJISAp6UFo9UFBka303SlpYUj1VYXsrWFZNKk9BJU0mP0dg
Q2ZwRCtacGdoJE1gI15DV0JTPWJJM2IpbzBFQy18TX5HV2MKejIqUz8qO1RHWio2eWsjYjBHblVK
cEdZejR7RjQ2U0ZNKjh6aThfJCY3WTVPeUI/QUJzK0JZVVExaX5FLXstWGZuCnpZZEdkI0pRRCU+
I2xabDlLQGt7I2VlT25yMFFfSFpWVnArKHdTekd1IUdHKnYhYnJAJl8tWjg5cFNmVX5OYko5dQp6
SVRHaFR1fD93ayMtc29jaVQ0e3tMMVg7Q2UyJlExS2pUNSk4X2J2YkN3P0FvP29gbGtLNj4/MUc1
JXk3YyRXKFAKemkmSDtQe1BpUkQ7cmVlcmRMYDM7YDJrJW5mQkctST1xQ3NPR1hDSysxTEhVVSho
bUx5I3tCRDNJc0B5c29mWFomCnp7cy1xRDhaLVdBeSE3KSY8MFohYjJjUGdpNyhJazhkPXZuZk5D
KnZ4KEd9fnpUbUFwZWhVV2Z4NjF+dXYwYkxEIwp6dzxQSEgwbEhxNk9SMGJDengkdnFHJSVHPWxh
aUF8MHxzPXhkfHJNcyhHOXhBTGY2WSo1eXNFUWBxJW9TKCszVm0Kek5CK35VYjs8amNuQGY4Uks+
cyZTcEQlfmRnI30kTj9AanJ1QzU9WTZycyhTTnROKHtqXnpwWUgtMmtBQVMkd0ZhCnpsYXIkbTdu
ZVBwKTV6NHAqb0BQfSFIJnojJGRRWU9sYlpfPTVxRVBtR087bXBWbFh6ZHUoQjZyK15sVjJXVXcr
Nwp6V3peelY7OHQqeUdQQVVqXj87ZUZjX154emMtV1ctbmxnJXVGXklTY3ghRjB8bks+Q1R4WV5t
LSEtZD5MOEdrdyMKekxnUHlfN2JDK0BpaiQyZjw1TEE/MX1PKWE4M1I4akExNX4+ZE4kMHxUdUFr
eV56WFVvbysjdCpBWUVOdUliQ0A8Cno5Ymd0KkpjNUZQVC0qPlkyOz9yQmFUbzR4P199aDUqQjtM
RiRIUE4yeEN6WTQoYUZsZXA1ZkE/aytGbGJsUER3bAp6JmM4eWtiTnVWfXp0I1NTPXhCLUZYNWZ8
JXt8b3h4O2h6Y25HcylFQ3VYOUlkbkM7SnFPLTtEV1l8WlM8PzQ5NmYKekYzKThTPj5QIXBVfWk/
PlpBeyg0IUImKjw9WUk0THlWKmt7Q297QWV5K1BnTzdRNzRMU08ycD97VVJ3aW18Ql47Cnp8OEdj
dHFaN0kke2spZU1kaHp9e2h2PndjbmgzJDJqamhkMG9QTXVAcT4lKnw4Z2wpWTBqfHF6e3YqNFdn
aTh+OAp6JHU4bUZ3SElVZnhCUSFkZT4zb0oyTDg+IXpadio5MU9OWUo7NkpCRkdrZiVAIXhlb3Qx
VE5NQUh8ME1eRGg2SW8KelphX2QlUDY2fXNYYmt9M0ckMClTT3dBJWdnRmcwUjAybmtGO3M3Pjtu
XiV3ekxXM2EmOzlqMHZ4Q0o1bkcjS34pCnoqJUEzZWBzTTVMQz0zOHNNc0l+JTtIcFU5Y3MjMjZm
Kzx5TzxLaTx3aVZMSXlANHo1TjBEfXwrQ0l3eDVMNyRgbgp6NUVrZlhgOGZASjBiemhLdjlOSilA
JGQ9SWdiTVVxRWVIKDh6eXhEcVU0e3dyTFhRS09xKiFEKGNfZ3NPUmc3PkwKenA7c1prNW94JGdr
fG04NHN7S0VoZDV2THljPSo/QFEmUWJ2VlAoNUBgd2shZno1ND0hTFEpU09OejJIfUp5dWlLCnoo
QTBYV3R6JStwV15RMz1XZXM8N2M1IXVjX2p2aXJ8OCtwJW80MWlzKEpgQGNAOFQwYXEtU0ppVyN7
RFBtNm54UAp6UjNmVVhZbnF6Qnc2d09oY1hXT203I3RjI2oqTzFZJll8V1A3TUgjK3VXVzdhP0Mk
TCE5M0NCQz5PI002e2dRPmcKenshO2NvPV57bnohb2I3P1c4eiV1MCU1cGIzTWErSHkyKm8wQ1pV
MzMxU015TF9+S3JiajdUZUsjQUQpQntYdDwyCno+JkwmdyVzMCFqYnQmenF2aX56LWUqYUkoe3RF
ayN1NW15TCExJThQNk1XZjZPOHtlSFZfez9ldFQ9ZU0qZkBBTgp6KngweFA9dkJOZFhoY1lXUGs3
bjZLc3kyYkBfX3tnVzh2ZHE8TlQhalV0S09IKGVHcFU3aD9iKzgyIz0+M01LYF8KemZsO0woTzsr
NTYqcnA4QF9PZm4mKklkdFNwdk9qJjxaVFZgQ3tvNGduSSYwelRZMWBkZnVoKmRJdWJqa1lhazZA
Cnp5XiErcygxN0l+WitfOWJaO19vO3RkMUAxRjFASDhfV2ozb2NWcCRZKkYxNmRkbCg7b0o/PGUx
dGlLVTZlI1hJXgp6XlFzUFpudklpJmF7Jn1RaSpQSEZPdVQqbXQ8bit1OClMWUlZWGZWJiRTYTZx
SEBveX4mbGF+bWA4ZHRhdld+UG0Kent6bE5rWXMxNFFPSlh4VmQjaysjalVfUGE3Xk50X145bDcy
TVlLdktoUW0oRmpvWF9BQF5gaWk3P3VhSkpjY3B7Cno/Pj47ZSZpJiQpVmtmNWZ4aGFYeFZmIVNG
c3BrakRmPD0qI0xITnRDVEQxX3g2KVlsfTBodjAtbENSX0xtO24/bQp6PWpxNT9nXm9lRiFobllZ
ZXlAZlN3Zjd5WGY/d1Q/aiNaalduIWRmNDh5fS1jVkFnfkdWYkEoLTFeR3AxLWlKZGQKenF9Zzdv
eW88KiFleik2SjJJV0IzQiQ8YFp6UnF5bGpBK00kLW9heCptbnRGbVVQaSoyNGIzTGU/T1hYTlRD
dktHCno4VE09ZjJENCgoK21jYUBJM2pkRHkqZnVxPWhzcit0an57YDF+KXo2O3V2MEg2TEh9JHBs
fDg2cFNvQG5NRDcwWQp6eV9VN15sQFQxbCNec2RPeTNTTGMjN0M8eyNPO2YyaWhBWXx5V2h4VXI+
cEV3M1Rscyh6ZSg0VE0qOEBkTjwqaHQKejRNZklIanBNMkc2e3g7U09WWWY1O2d+JjtKZH1ecT5Q
MStfVCMxQjIrUWs+KjRQfXRLQUs5VyFFTGtULUwjcX1rCnpaP3tkeDJXJX0kYWQ9UXZwTil5RSRA
WEFsYH5aJTM0RFFMPiZJMkRyVFN9aHxna0FzISt3OS1ZQDNeZmhaYXZ6TQp6T2ktKW1LdD1acUk4
eVhKY3p6elVQP1VSbiF0dWljbXZ7WnV5fDlMPHFRWntjIVEpYH1wJFpZdD93U2hzc0o9QjMKejNm
cnpaeXtsST1Xb25jKXhTQCRvLUNsY2BgcjZFKGErRV9vaj5uPGFZfntMQ1lZb0hPJCQxPDJxQ2wo
fEhpPXNBCno1JndheWRffHpMT0MqZXtaMTRoamR7b0c7SkNmN1p6UnxeYFZwUFFYUjBGdjgmOVJR
UXlENTFqK2x+WCpTVXRQRAp6I0N3YWJBcHs4TVAka0FEYExVRyU5Z3B4NjVNMFZWS0dFdTI4Q2BC
Z1Q/TGVpUklgIWVRej1ucjlwZDhXNipwSmgKejFrNC03MHRTN2U8UUZjMDBkNFcjUy1KY2h1I302
dykyJCR0cHwjSmg0VDtqN093bTtKM2g3MCh1OyZeWFRqR0hRCnpVRHhWZSNHWjBTbmFuP2RFX2E7
VD49dGckSUpfdkxBZnNnem1JPVAhXkhGaV9nIzdKZDtSUnFwa0olMzVjXnB+Nwp6KTtrK1M9KUAj
WVJINUM8ZEp2KUBQWDVKQm12MyszbCpCalMzcTkjTDx8d28zISVSPzYkM24tTlU+bl9HTDZGWnwK
em8kNUVuYzB5eTZ1WSVlOXRjYUpuejNuRCgqKCV2cmdFbUs+SF91WTZKTHNAcjNYcnVtMjwjbzR1
RXk0JCNqLWBlCnpTK0JTP2Q+P3BjOXRIflYrIUdMMihHIyN8RStGVnN0XkthPnIwaX1rd1NhYXFE
TV5iQV8xOXg0djI7dTVLc1hAVQp6PDhlLXJhUkU+YDRMZW10SiptfVY1OTZXc2VjQEIhIVAyJT9K
JElgek5XTU1PQGFiMCNLbGFAM3BHZCZTMD1WbVIKem5MfXRuZD1rZ1UmaH5xSjtTLUprNnstUVRT
Q34renAkJSZ0dEl1WF5GRDcqQDNDWitTPnl6YWM+THlfSzRCPW9DCnp7NFRMSDklXkhBZWh2Rm9T
Y0dgeik8VCUlYjx3dD94b1lpbWpLaF4lPH11fio5ampuZz9oJmUxazBRRig+ZHxeQwp6eDJhKmkk
eTk0QjdvTTE1XjF2VTBud3k3Vm9pISNjJklgO2xGX2w5YmFQYD9eVm52bUhVTEBaSUt4SyhreUJm
UlMKekZVMkk9a30+djw9Nzh5QkRFRiozUTx1clZ1RntBT0dvWGsxTDdUP1BHWFRBLUVWPFdfJiZp
XjglKVc3d3U/Q1c5CnpsQVJKfiV0STU+SURQWVJDdUhuQT0+IWxwcl59NyFuKzQ4O2JGRiNYa0ZW
YE9ib25PNmdMfHtZJVorYmhPZ3VFRQp6eWR9flkrcS1iT0JJezZLO29KeWlVODdoa1NzRGtnOHI9
MVlRdUI5dktKT2FsREpfPk4yJXNWbz8lTE8+KnZ+KGsKelVJQk44X3w+KzF0SjZNY0tsZEUpZURy
RjtBJEhBWVclOCorU0hqdT50cFh9YUtMUGppbCh5bl5Ga04tOz91WHx9Cnp5ZiliOGFYRil7Szlk
O0xCdj1JRkNAKEpgIUoxXmJMMCkwZ1JCIV9vKXFhYklUPjBJRkJlP1lFUz8heSk7aUItPwp6M0g7
Xmsrc0xyOyg2MmpOV2Nrd0JXbF44WE1WViRRLW8+QFhFYDJxI1R3YFg9XjBxYTNuWDsyYFZrTFhO
NDVrNGUKemwmJCFqPV57R311PFlLU2xXRTZPJE9iKWV7SGk2WWdmcGwkOVBWSn5JWHZsR01GOzRU
d0FPPElae0IlI3p9OFElCno1fm4+b18ocjBHQWs8fV5WeD9LVUNtSDRyQCg1U1RXYzJsTzkxbTxh
OEszYTc+Y29CeWxNfTk/S21YKnBgPnxLdgp6PnRXQnRKczduN183Y3dFaVJ3fFFrSF9AKyojKXEt
K3lrUCYjYjlVd2hiSkM7czZRdGBvTmRXaitSJW53XmRHY3UKenJvbCFNQVdWaWQ4I01Hd1lIaEJC
dU9HX2pvKCglN0tZMHE7JkUzYEhrUiNlIzNBQGtKUUdMalNWNTdDczVPSjckCno9MztBJmMlYjsl
VG48fShEWFJVOSpDMClPUj5UO1l5RGN4QSNeUmNgfDBkI2JeJXpnMk9yZSlkI3BCPXRZSWo1MQp6
OzFga30kODxedG5WIUJqVGpWV2l1UGxfVTkpdHZPI0dhSF5xcTR4PkZgc2IwWT84e3trPH1zRV5w
NmlfX0RwcVoKekYlcUxfWW09T15kekdfbUcwMH1aeHZTUUNlfC0pNUV5aEhqbV5ZTWlwSzNZeXlr
YUtfKGVnPUtXTXJZZEdWVU80Cnp5T2V3TjhNbWpOTWZeMkE/aG91aDN2K3VeQEMkZ0BrfWZ9bDw2
QyEqWnZXeV9tKzB6VShhOUtUMCEtTTw/SVkrNQp6a0ZmMXFQWj5MbTFIYlNIUSVPK3FxYXItQHpu
IWF5Uj9OdlpGRFJ0RlY0TFI4dyVJYWhqPURGPmw4blFFVmBWWjEKektHd3ByZU15VjJHWjB5c1pP
VCluNk1vbiQ4Pkx0cl5TSH4qQ2g0U1MrPDZSc3NBPDt3bm9rfVAqcWY7JXc7PEZtCnpeKD1NNW9m
MDQoJm5LSW5Caz95aTQjfDYlVyhwZTlGcUQ/YlZ0O2JqKXgySlQ4b0UwI0JVTXAxTHokY2k0d1Yt
NQp6KEJmP31ObHB3aVA8OCpGbzBWbk97UjcjRXIyYUJTbSZqXnRASExjWWhlejxWKlE0cHZBXioo
blp4WihjRmd7SV8KelBAMjtvXiQ0OGlfdTFgemY9SkApa0JpTXZmKj4wbSViKVhNKF8/KDkjZmta
T248bXRST0NgRkNyUytsYGpwPHA9Cno/aW45QFVwViY/VGpeNzhhbkAja3VXVD9ZX002WXFoO3Ik
fVIrUmhye2xgO1kpNFU3NzYoSzJQYXk7RG9ifFphSQp6TTVVbWNLfU8wR2d+dWpIPnE+fjw3Mk5z
fTs9NyV9eGA8aiQmZmhIPitSam0wUUNeJkM+bzgkRUE3eHFlIXV1ZzEKeih5Z1d3WkRCcGVjd042
KjFTTygxNVclKzVSVkxXY2x3YUg8ZGJuJkw+VWt5ak5UPWd3el4yTHAoYGB6Qyg1V2EqCnoqPkhZ
JFg9QXNqKlg/ej5jNXBpUkdVViptKD9uQm5SbXQyN3lxXjBRUzBmUGh3e1phU1QzUmZAcit+WGlG
eks+Qgp6ZnREemRmOW5rUHo0PnI/Kllwbmh3UjR7e1lpez1tKldgNCNEVkwrbkMrZ3t3XiRXbiRY
RD4mVjxsQF81elpsRE0KekhISEd+QXtudmQjKnFZRHJJS35CYztHUHpkJn5oTE9tK1ckNjdHMkRD
bUR+P256TXhabi1VIUxgcEYwdGoqS1YkCnpVcXhEUnZVdGIwS2VESTF4QiN4S280c2MzJEoxU3V4
cUU7T2pTNVk1U350aVhtYGp3KFo2OERHXn5TX0xkYnU9SQp6bWhwMSNkVnNpI0g8SX5ybHs1PCFB
d28hOFFDaVIyJDBvVURVSE9JZXs8UihuSFgzQVBfbTdtOyphTERZPVR3OC0KeipVR2VNMGNSRklh
aWFPfXRBNXk1bGh3JjY0KSU4dSZCQD1SWUZ0OENrSHVZT3YzR1d2NDVsWUNUPnFOVXp3NHk0CnpB
SjEtMXU8OTsjQTlCPThMKmp1VEYwa0xxbXgwPXBiYVpHKGxaV3psZGx2STBzWnRmKnV6QnxDK0lL
M0RUNislKwp6QyE0UzFuTSZBKEpTQDtyYUBgMmdLbz8oI1h0YD5mYWRlTTJ4N2pBTEY5e2pIX2JN
KXAzQ0AoJE93WGY1IV4jXlAKektYWSleWndER3V7SU9vPWpTTlNsOTY8VmMySDhvSFhWYXZ6Rm0w
e0duOXtLUytMJCpLeEEmd1heOCYhcmRkb25fCnpKWT5GfEljQk98UWJpaDM3MWNCMFFhRXd7c3Ym
Y25rbnNoZXdXWW9tcjlpSiphUkl6cnF0KT1OOUJzeV5iM00oJgp6RTFaQVYlOFdBfjk1fSgjV2Nv
dXI0MChqP3V8aFNGLTY3UUY2bHN8Qk5lX0VSK0R4Q2JwRk12MVh6UGsqPXhTJXAKejFLdmU8USRy
VXA/YXJ9PSROXmBycU17V20pVz52QFp9dEFRYTxNUTQkIUdCQjFvaWx1NCNIUkQhRUA8Ukl6eEFf
CnpYJlZoemZDTkxuO3RwST5nQCgoRG1iSkxpNz8yamR6NGpjcGVUPzk3QnUlNk1OXz9aQT5rSHo5
YUNwLU0lRGZHcAp6PzxeJiRRfHltSWBzeGxyazJFYUgzdFZoeWh8VEVUJVN1YkNRZEhmR0hkIU9H
dDtUejlINDhUYGB8OD17JDM9aWAKekFNSm94a1N7fV8laVUxQDh8RjdlLWBDaHB5ZFNaZlhsQzA7
Kn1WVkJJa3EoYURraXNERTNJM3s4VCZ2d29zTHxhCnpKV1dPVlpRKVAtZCZvdXNSWigpNDd6M0VA
UX4tTSRDNW5uSiNzN0pnTns9dVp1S2xZTXR1VzZVWnkwYGY1O010OAp6Wk87YUQ0MTlWe2lIe0Fi
Q0hMMnhLK2JELSVSSG1LenYkKEhDMm1CJCFINk94bU5nM1hTbylTIU9oX2xxZWViMDIKemlmPU4+
bFRDWUlLbGZAXy02LUBfPzUmSylfU0JOc3lMYytsZCZ8dnBXVyU/VmxhITxIREtZbzBFN3hjNDtV
M2tsCnppLUl6Pz9Kal8mQFZyRj0taXZ8Yj5tMkV6WVNYVWpsYG5nfXlFJnNLYmdEQmslZUQ0VFp5
WlVBaGFAeGtHM15JRQp6bGxTWlcpWl9ALUhMI3Z+aU9TZi16fmdmeUVIJjRCWXQkSzxDaj5YcDdL
eCtCTT4tV1BkVHpIRXVAT3wkJU49bkMKek5TaShMT01BVnF5WHs0IWBKN3JWJCNlVn02X2pkPmtS
M1Z3X1EjMSY9cklIbDJoVyg2cGJTam1vUm9xbV5YP1lCCnpeWDVCTCllRF9sOUhuRXVNSkkrcjQk
eigxUD8tci0rYHEwVTlyNUx4R2U9VlljVUxpcjl9Q0x7OypTUk9HYDc+JAp6Q0Nqe312UWJhdGQ8
ZzRFY15IKzVtVE9aTVopKjl8anRvJjd5Z2VzT0J3XkRxYkgmSDZLYHBYWEtDKXs+XiVDa1MKei1R
bW5QNFdmUjlKM3ZeJVImPlBRIU5LcExHYGNPbkEoV3t9QGB4Iy0+aFN1SEYtS1FSZVZ6N2AzOHxa
T0NLUm8zCnpCO2BrfnYtZWBPb3ZgQUd5bF5kYyoybThZN2VCcGwzek14al9adlBRKjJ+NWttZV92
VE9JdVlTdGZ4N3chUENPdwp6OSgzbUw3MXZPX2J+UnppO1khQDZHWENJe3lCflRKaVlAQE5PPkI5
LSRWVF5eWEp5aTwqWSZ8UE9GdDtPbH0+SkgKenpZNGojSF98Um1fcEYxeWRtNGU8RWgtXnVMVWN+
NEB5ZFE/bEk4eDA8S2Z5Pi1UMnc0YjQ/IzQzVnJzdGUxU1F8CnpnZ34mTSpUMnhtT3decGVKR3Ni
TVBSc1pqZDlkJkpmT3d7KDd8VTZMaHwtN1VJSVU3U0o3PGQyb2lEfGV4UGEtcgp6KjBOUWlxfnIm
YGpudHx+SiRTVDQ/dVp1b29QdHhMSWpXMyE2UEhwKWtORkswSyUoUTZyPUh9dEUwP1pRc1BZbkYK
enZVNERoRis1RGs5QTRYNnJNV0B1ailTMG9KbUR3ZjktKG5oMkM9fVJnbVdeb2AlJHpYdn5aZzRF
bUFpNTRoRy1sCnpGUiY3aEJXI2dwJUkjJjNSQWs+PjV0JngrVXBEdmokWD5WYk11X2JtbiZDdnY1
PCQyTlk5NSNkNXw8VlZNI3lBKAp6ejteTTBCV09qdXc5Z0hjQyVONUtHMEphY2txVktOYWp1aWg3
R1IxfDIxRCkjSz04VkxEc3RmK1Z4N0hILXZaZlIKemxOSDdNVTB9Ji1AXkdMbm00Um5UeFNBQDxA
M1MyeyFqV3hwI1kkRlZxOC1GQUxxMSQoPiFqPGJZcDwhJnQ1LWkmCnp7K3tYbGB2bzgjIVgoYiNx
YTcreztOakFDMG9XKEtsKTR4XjU8WVF3OUIofU4rYExtY3Mmdk5HNU9zUUBgUmUqYAp6RGZ4fHdY
WnxZSCZ3NDFBJExUNnxxN0VIMiVVTUZ8aWleVl5lKGkqPEppb09Sd1crfjBVfmVwQHhnN2Iob1Zf
fjkKejE5cGBWeHVWaldrblBVMkZpcmZaYiprXiFPXiZjcCZvcGN2IyNARVQjKSNHUWk2SkMmQy1G
biNyYUtJVjZgbEpWCnorQHFlPHBPQyY7UXlXTVglQFpsTDZFKk8qaFgyZ3Z4Kk9CcjJFdWxQYVlz
ektJYmtfRmBJfTMwTD5JQDAoJGJlPQp6Wns8OTRSNFFKQTdLPDNAWVRaXiheSlhsPm9+PUtQKklJ
YmdXRiNYVGhEMEpPSm9sfiNvbDNzTW9gLU5jYG56SiQKej55STRkK259YU44SU5FaG9Zfj1GI1BU
THRARS1QUl5DS0B5bn0pUCNuNjFhNit+KHIqJjlROWQkR1dsc1NyNUQwCnpQWCN1JDc+QXZvSkNe
IWJ0PjcpN0VhSUdHbVVvTFZELVBje3JMdUh+cn1WJnJqaVczPmwlOUEqNFZSbTJUPnVkZwp6Y1oy
Si1aYFNxbHgmZ3Nod0Qtdm13Sj11flJDNWM4PHxVaVZxcyNTM2Q9T2o2ej1CY1pBZFErM25CdTVB
RCU5MkkKenZ5Q3k9K2JRbWZUVXFEcXVSXik9NzlxNUZCOFVNUnQhfnNEVF9VcjNZfTBOeTxaSVFE
N3JhO0VpSV9sZlJaPHpSCnpebWAhZXhnb3ZFcTJeUkNWPWc9MmB4NW5xX355eHdIN142SnQrRnF9
PEF9X3ByZn5jYEdua0MkJHIlPTBPemcxUgp6d2F9OD4+Yn1icnNrXmdIUzAkVFdNVjcjYjtYMU1E
NzlyantZeFA+aEN0P1A1IzZvQjY/RTFzeTwwRSE8MUBAXmAKek5zR2MxdFg7UVNnYG0yeXJVbGlR
U3VAVDZpKCNIbi0yJn02IytvajN5PH10MF9WS0QtIzR3YFZpY0MzNmQyTDdVCnpQSEwjY1hBWXNv
cz9VV1kxelZlSDtZRG0raTZvRUxQSCZTZDxTekhNLUNee35tQ3E7JXBxM3wmVWxPWS1lMHZ6TAp6
KG1aTW5ZYk5QZEp0I1Qwbj59JVVgRk1jd2g9c3N7RVc9e0hSVCtqYF9+eEJnJVMyWilma24+Mk0+
e151aXBybygKeiM/UVdiTFhQUlgxdXNVfnRLYTM1a3VSY3I0ZE5CfUhqWSF8Nm0pTDZQYE8tZEIk
TkBaIWRYMlBKWFdqVXFKfSo8CnpuSG8la2BkdHNsO2Z3YndYYUApQHBQeld5VD5FR0BYbGdDO3Qt
QlVoczhTMCQ9UXJzVi18MjdZTUpjeXgxYnFGVAp6PWRKJDhWZVd1fUR7N1BlWSk3ezVWclZhQDBv
UDN2SHMkU34qe1MhIXtOOEdGKmJgMEJyS1NyMkctPkJ2JDhTc24KeitGX2d0aEt8KWlOWEUxdGol
MGM5RCE7eX03dW1iO2RaUEtUQjtvdG8xej1mKHFmakJHcFVUWW5MfEJIbHg1RGMjCnoyUWswdWwz
Y1FgYFh2OVkmTCNDfXVvJClDZVRCNEF5WFk4b2h1WT1mckErdk5jdittVWc8a0JjN3hCflR2RERZ
MQp6KWljNEdYRE99STc8dndeMSV3cz8xV1pOJjRXand4VTMwRmwzaW0oUTlKX34kRWpfOWxGRExQ
aTJ+akYmKXdEYGIKenQyeE1Vcnw0WlBuKGRmTjVWb2A1PShhYzIqNSVKSnJsQ3QmenJER3ZgfUcx
U0hKb04/c2pyWGRlMGxgIWgpaHEoCnpldGV2YVlea0I+KlFee2BHc3E+M2Rwdno+VyteJFFqNHQx
Wkg/TFdRbkRXJXU2d31hfD9JZTl3allJenFOc09ncwp6YntENTxaLTlNKzhMamJrKkMwKHFeSnx7
VWlDfStKbjR9VmRxTzwjaT1kaDxRenpNUCpjJX1GV0MzYDNfMVpRXkgKekFZRjJDQF9lXntvZnNI
cmd7fmZKTTkwVnd3aDljekwlIWltYzsjdkdVUCpKIWptJWYrKytYb0ZuRCp7WDdWJitPCnpHT0FY
TnxKMCZ1VnF7R2JjZGswOTtUMFchZ19pYSVkblVEWnZsSWImSUluTTt3X2slIVRAfldXRz48OHJN
S2BqSwp6I3lvPW5QZklWTndCeUFJaWtgfl5pQ0I+UXFSfUFJZkg2TilVWVUmd1g9X2ZRWGtqS3o7
QHBJakYwemV8Oz9yMHgKenAlQzdXJXBfKEQpVDlTZEghfFA3bjA/IzZCNiRJUF9KU0xmV2VzLV40
YSp2YWkrX2RSSTJ9RGBAaWFQNyV1MkM+CnomI3ViTDZJZkVGXlJAQD1Ub0k8eGR9cGhtUSZwOHc8
RjlXJG5FYWxldiFiZ2Y9IVdBfWxPX0VaIUs3PG1NfS01awp6YnZgeSoobX5lazheelpCUmlobnVn
eXxnJmJhcTxhOGArKk13eEtfc29aNV9kPDRNc1RnelEkMGFkKDVNQzwjTmUKekwlblFQY3I/cmlk
Nmh+fiR7Q3lBeTw/eDxDWTdjSWM/RXJQU3MhbmMqZSYyNzZJMW16eWxQVSZgJm4jQTE3dTc8Cno5
dF5IN2QwV1pNLVhuVnlLbSF3OypKPjhyO1ReVUFsQ2VSdk0tYThRcEgqaCk4JSYjO09BRDg0Kmhu
TjY2bl80awp6LWF7WFUqXzdfVmBNTlFHUDd+OHcjXmRmQzQtRGJzOW1SM0J5bU4mSThjZEdPIWgj
eUIhRGwzZzFFPXw2OHxYaDcKekAzekNmNWsyfmc7WHsxTzMmMDczQlpNSEJENHMyKUlne3RaaCg4
NkwpYmA4NzhFXmhZdEROYXAtelB9K3M3NVBkCnpPNWVTPGdAaCEyRlZpRDY+WFchWXZIbHpBR2Rr
VTI4XnRqbEg2KVhIXk1oVjVjIWpkKzZKM0IwUz95fmpGMzsydwp6e0RSX35QMnsxcXZzSHxeelhU
SUohKHk9KWo8aFZLYncxTmdZQkY8NyNoJTFCM0NybkdAK2h4b2BFPmhATGl3d0MKemR3YTBxRiRU
TGtzPD91VXE3Ui1QXys7YSpHa2RNRkFEJF9+QEZWR21AT2pnbjxaJkFwbEl1NDYtZilScmVKUFF1
CnpOaygwbyM2OE84eDchMG4/OFVNMld+TiQ7MHdjTCVEQjF3cXk8RjdSKXJZU21TUnhMTEE5LT9h
WDR7TTJ2NitMNgp6NElGJEY7NHNfbStaJVV5cXQ2QFFhSD8yQGQyM2I9TDBIe09FM3ZNcG42bE5A
UihaeWMrbDFYb2JyVU8kbDR8YEoKenU4KVY3T3AlM1chbDRwTnNoN0lXVjNNTUg5dnlEdTtUY2xH
RFFJPWllO2ZocXZXYjNEbDJ9ejNYaklTcWskKiF5CnptWFVuSE1zNE5we3Ika0xrNTlmZFhaQT84
KXlZTHEyQV5BTzdseVgmI304fVdiPGIjQitoIU1QZmZsRT5GPDg5RAp6bldgNSh8QXVnSjNGJnhi
RUhNRXZ4WURtMyk1VnhNMyhNJVhGcVluOFVmLWp3WndOOHx6T2IhbjhEfktIYiU3PUEKeksodUlg
SiopayNlZmolVTd+Vn4/aG1QcTh1YGA8YHBJYCVXNG98T3FzezxoP1NXYkVRREJIV2JlMmVWaXg/
Qmd3Cno/VXglOSlrTmQkdCZUUVZkYXNzRTslMjs2RWo/e3toRDZaZjkoPVV3WWFCPV4mISZjKUJV
bCNgTih5S2lRd1RwLQp6QHt8e00mVW8yO19aZ2lWSFEpTnNuYX0hdDlUTGd3UyVwKWB6VVh8QDE0
QyVHR1dnNzltMU5ZSzxiSTEjNm9xP1QKemhgNyh4aylzPjlsR3daQVk1OXMjKSZMfEVad0t4cUVA
N21ia3l0VlZaKiNFS0BWQ09YamlgPmhuSXlxJWw2QGtPCnpWPzM2Sj9jP1QjcilGbztnd2Q4I3lK
fHAoK043PH5yNUpqNSRGOVI2az1MJkVgUi1BfTw5Rz5SRGFUayRBTkB3TAp6dGdAQEQmUTFuUk1q
XiNSPFB6O3JCMEZJXlp8PlVhXjx+R2JfaFFuVzR0U1FGZUt9cGUwSnY9bi1GcD9gaWohT2kKeiVv
amt0YDA+eStRfkM/ITRCSl9waCZWVVkhT1BXNzxjWXtqWGg3Uml0NCY8KFNxJTk0YjJ8bFE8dGZY
TShLeE9GCno1dllPZmsyYT02TC01Jn1oZ3V8MFZ6UjdtZ3IzK21TeUJ6fStyJDt2YzFLRHdHTmx5
cENlMD9TU3BRa345YTY0TQp6U24zang8Pj1PQ2glO1F3QzJuNEhnUUsocSVmRWNUdWQzPE0lYHhh
V0g5WDI3KTdFNjdnei12P3RIYX5+ZVNrOzIKelN7SVc9TjVmYDFtI1hsWVAybkQhbEJWQFVaanF+
fHg3eVN4WGxvJj1NPl8wdzgyKSFQSTBZc1EwSzkzQ3tPfSlmCnp0QG4mamNFc21XaT0waXY5fD9H
OWojMmE+LWk9WmkoOC1zPzF+a0YmdT8hbndtM1NWU1ZDdExrdTcoa3ooUm11Vgp6SHh5Kk5VITc+
fk1UJTNKe2tZZCljYW9uM0lpZk1GekUpNW5PYD9qVT5lWDxnQyN3MVN7Jj1pQmQtK3R4b3dMTVUK
eihOXn4hbnwoaDg5UWd6aChXSUM1VVByTnt3TT5GSXB8OXc1STsoIVR6VUN+QXdBM1ZnSXdLZzZN
ZUhiPVUhV2UlCnprbTxUKVNJRXlpNj9rZUkrdk42Y3lpU1h1ak07V1RydT5EPjEyOzxnNUdsR09J
RFJSTHJ7ZVFOPlN8KlRDKUN5JQp6YCMkVUh0anZvZFNDSnt8ZmczWFB5bDJyQ1M9Z2QycmgxO0Zo
d2Q9WCUpVzF3X2M0TzJGbGpXU3gxaG85PyM/dU0KempTXmdTci0yRlZ3R088NVRRVUpHdkJyNVBq
P0BoWHdQUldSTG15dFIkWE1ZfF5nSSllZ1ltNCQ8UXlZYzZ0aG8rCnorJVYqPVNab0JadzFCeXJp
THg3JSZPZG9POWhPTyNfVjJBTGM3QU9nLVhET3BIb0JTT1A+U3QrcFZ7SWApSE85eQp6Ulc0RShl
Y0pBNCs/fE0jemEyfDN4T0tYXj9sWT02Vm1He3B0RCZqY0IrR2hFbjtseTVXMUM2XkF4VGwoKX1g
MHQKek8wKHF+SSZfUzhhIVpDVmZ3OyZgaHB9fkBJZGM2ZFIkfGNiRWYwQmd1Q09oTzg+ZEZlektD
YmkkV2M1clc9KUNUCnpofVdNTTh7KUZHY3B5Rz9jODR+YnBnTDVnaSp8QkheTkx+a0RURyExXiVC
S1N0WlArRjRVdDYwTmk4Ji1zJXJJZwp6ZDZjY19menMza3UmUG9Fckl6SXd5P0pqQmVFZTxxWmVr
XkYzbyF7YTZvb0B3VkBofGwmb3xNcjNjVWNsRjJEVEYKekBZMTtmK2ctfmVffSlXJXVeK3lZVD1Y
NWQ5YistKXRTVy11QzhmenVDWjxDKmwjNGwxISUzS3Z0MClXfFdeTjBjCno+VFlhMjVEbUJoQEBp
fWMySW5vYGdZQ1VZczZDPlZIN2cxMkFCO2RfKj5jMVUmTVAhSEBIRS0qclRmfCY7Kzhjdgp6Iyhu
R2pyRj1KbC0yeFArVSt3Y3kwODI0JV4ra2k0bm9LeWFVd3ZqQTA/e3o1b2JAPThmYVhXR2k9el81
P3opbHwKem8xWkNgMmhLfE5feXNWZUxsdEY8QH1KNj5TLTFDc3A3Wm1YQikkJmtgUW0+KVQtY31m
YyN0Nis4fSFJP3JwUlM0CnpTSXV4aik/e1o1XnhtR3hkVmEhfHQrPzwwSjw+aVNqWmx3RHBCbUJK
NzdhSGxrPDszRytySVoydWx1c1dpJG8oTgp6OSZrZns0d28wYXVfJi1XIUEjXn00NHR7eiRffmQz
Pjh6KGojaUohWSUyazRHcFMlVSNCMn1SSSlAciN9M0ZwUz8Kelh9OVo4MzxvWFZofD5wMjEpbDhy
VUZCRk9tfSY5dnYxQVJiUG8zKXtHSFc4RFl1JSUrOEw8Z1Z1cip7bCZrUks7Cnp4Sz1JRExwejg5
SU5DcC1xQ1d+d1VSZiZlanl+X2MpO2l2WkotaHotTUR4UUoqYFZlc2ROJmBCMkw4RHk0KHt1WQp6
bV5uVCpzTU1tTjZraT0lTz99fG9sWTg0YjBncDdMcW5OfnwmLTEzUVhBPEYhYXFKKD9IeCtTIWdI
YUM1Xkx4M24KendfQ1kmP0o9Rih2WXg5Tz9Fe1dEUkdRLWxkOXZIOzg8QE5faFdwKWFfTjtIVDJ8
fXZqMmNlUWVUdHlEcTF6YTI/CnpfS0xGdVkxeTdfX185NHB3K0hNUEBGNVVLYVd6IzhLYTIoMFRP
YHo8RU8oU1hzMzIlUytYeDBQJWsyd2JeaTJHQwpMRkozcTJWKVRDaVNQJG52CgpsaXRlcmFsIDAK
SGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9y
ZXNvdXJjZXMvaW1hZ2UyLmpwZyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL3Jlc291
cmNlcy9pbWFnZTIuanBnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyMDAxMmVlMTExOTMzODEwMTY0NjkxZWU4YzI4
ZjIzNmMxZDhkN2IKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDQ4MDEKemNtYlZOY3w0U0JgK3NJ
KDVRZF9MWDYmKysjQEtnfl59R21LNTwyIVpqTlBhdDZeU3ErOUVQJSNZPkJ+eWp0WWFxCnppODNO
dl9LX2BIaFlyNi1tVUkzJWZCZkZ9cDNuN00tfWAjTF93YClnZHo8YVA/R2I+KE5ZNzlZZkl0OE0w
eygjUQp6UTVhUD4lK24xM2pFdzxGMDA1Vyg3Nj1sNmZgfVFrK1lwWVFTUkJOT2tpITVCXmJtaiVl
RERHY0tRUkUqSyNte2EKei15ITBBOTU0ZSE9STI8RDROeEp0cE9fMjg5V2tCJmR+ZlYldG1yPDU4
RzxwdSplfVIwenxZNEtJQlJaZGMtQlMkCnpoZn1+fHV+LT41SCNhNUZnR2s7KiQ8ZlViPnh7KkBW
c1EjUGN+MCZvK3gwa1VvVXt5cCFeKzYwVjNrI0hAJlkpbAp6aW1iQVY5MVp9KVplO0VrM2F6PTNl
U20rRDc1Y21BU2d+Q1UhMm0hSzAzZzhKYTRaZ29PQGkkVWZLcnAtMlk0VkUKenZkZSkmVjMxXyFM
Q3lzdDFZcF4lMyVYQUhKSEFiWD9aO3NWQkshYSZpNDZOPVZhSkchMmJpQ1RfYDViRCg7bnNvCnow
MyExcTxeVkN2MGJoKUdgKTU3aXdfJkdxX3ZARnpWc2p5VGR+bmZvcTVHMiM8bVNRLWFRWStlZ0ZN
UVFqX3ZXbQp6aDBOUXsxS0M7cXlqe0lKOHdrayVONnZpYzkpQmtlYHYtO308a1plKipvJlY0SWdK
MHt7Nmt+QHpRJnpBYHg8dkoKeiVSbCg2ZWA1ZlU7fDVAQ0RqPGEmRz1fZyRgRzFSbi0yRns+Nn5x
RmRVRTE/ViZ9KUlWKHteTzskTV5iPkJAbm8xCnpUaiZfPj57dFFOY0p8Nm9DZz8hVjBOVHowZnx+
NX5jaD9AQUkjPik/XzBQRVZQSkRNPmNIJWh6fEdeeTlmTnctVwp6K3hhZVAqS14obnkkZmlCLVRw
cTh0ejw2X0lzbWRnME8kWnJqRW8zSTF8fGRvIU9ZQ1chcGc8UWRndUA8JiozOVQKekUofFh9QUJH
bz03NyZwWjZBKEhuajdFenFOfVI7WCRqUW1eaXoleHM7bmJ2TTwjMFBtQWs1Nm50Y09AcFktfWk7
CnpBWCpValUkXlo+ZlJoUEcyWGJLJEFwcHQ9ZnBKMiVuP1EqR2dhUHVpP2JOJXxBVyNeYmZmMiNQ
JXlJfU1raW5ZPAp6MClzKX1GYWAhVnhIT1FmO0NsZWgkIzdVdU13e2A3bklsMzcmeE1PaGUjaih6
cnM1VTFgVElvP1MqTCYtJXEmTmIKenA/RypqUGwkPDJOWHA0OENATHdkPSR6SG4oPkV8UXZOJiZQ
V28+aTgqNGYzPyZFM1AoRD07V0hCczQ2WDVQa0YzCno/VT5qKmFtMUFTc2M4Pz1HY3E2TDxyZnFf
ZXAyLUdkMVYjM3h+NykkO2BOKVI8YCF5ZVRZR29VaG1YQ3F6RUF6NQp6VSZoOEtDYTAhbj11Nisw
UzYwezd6eUc8aHFZRkYoeVJ5TE56dnwpeWJ3U345NyN5KnEzanooQDV6WXhgNVJfcCYKenRaanlI
IzIqcERNS04pbU5xJClJaWRrNkplMzlFSjs2Mk14NXhHJihyNSROTW1IcSNPLVQwckI5U0hrZFMz
a2ZDCnoxMi1gemoxJGxWPSg0fFBqb297aGt3PUNqOUk5Izs0RH4kWTlxdmFFJSp8N0BxV2h5N1RP
PTQlKWYycktWYjdwUgp6aTNIN1RqR2pSdTZpVUc3KnhIUzcmYntJYW4hRzM1ZUh9VDxTSCskK0M2
e2xlNiY8SkM+Q3EqM08lNT5vcXVjRGUKejF4SjFHb0wydEtGYTdCKXV3a3dTPHc3YTk+cktvM2xe
aEVOKHZkMkBWUjwzIWw0KklFSWI4d0FSKmtCUlQhZWRuCnpsdlpCTmxZSG5fUnBeJSNqcjtESUEq
Y291Uyo8dyhlU0NOSFhaSil+eE4zcG0jYH1kSVB0LURqR1hefGRffSZ9Vwp6ZURBWVUzWllacWEr
a1dVZVErTyZVbU5NKzIlaTEzZDtMcEZjfTtLcHozaUUmc1hJbVhETyhMdTh5fDg4anhCTCgKemRW
SlBMJD9HMT0rTyUqKDJUaFIpPTtXX341PU42JSpNeHQhYF9VVDdAfCt9RypKOyFlJHVpfF49UHM1
PighZDF7CnoyeTwoK0FNMztELUhRIU5iTD9nSyFEZ2dwQilnVG5iJUp0KjZqTEI9WGZgKkxeREcr
YUB4SiU7b2x+dE1PPn1qLQp6PHI0UUBOU2NkU2Y5O29YZTk4QHBsSkEoWHFBKEJhVEZMd3wrdmgk
YGJgaGp1K2laQyR5LVRaWXN+ekVeWmc3cTsKenhkZyNaY0dJelFpKkc0aiNxUms5cEhDe0tEb3lM
S2dsNUkkbThtV31JUVN+V3lHRzM+ZDBkPTFQa2RnRE0wTDA9CnomWmA/KVEwVXJKbjZPNjFWfFRR
NUR4MV4xOGt9U1d0amp4SUY/QDExbSR+TXVtI0EpOUwxMiMjKG50fWlLSEdWdQp6eHJQb0FIQzQ7
WnhaKVNxO0ZSeno7KlROJlh+Tk5+Z2c/fUFyb0ZYaW1zJj4pWU5pU2lALUFXWUs4YXpOSjM2Wk8K
ekw4WUBRUFFPZkNqVjRYUF4kZElYJHleTl53YHsjKVRHO3dAJHAzZ15EWWBebmxLO0BIJV5GdDdU
RkljUDR6VjRFCnpQMWpVdjhTKjl6T1c5bCNhJGVIfiZ9cWQ5aExscj1MX0BvPWN0dUQrYWFWOEFI
c0JkPFVLT0RDPmNNY1NQa1hjVAp6WSkzJW4jNDdYZz07YllMbiRARFU5QGtqc3MhRHthY2lyMHts
Mm5NdEt6RylmQjNfenphMXJyJSNAOyV7YEF9WUMKelo5bCVUUlFXdjlmSDB8XmNEbmFPZndRJVZT
YkJab0YkdG1TdVBhbyFIe3B6MCh3ZSo8RGJRYztwclkhK1VwND5nCnpFeWRAfFF1fU1UZUJYcDlw
UE4oYWd3cXIkRnt6WCZmZ0J1NUJ2Z3pIRDN0fDZNVH1xUm5iN0FpPkdUWlIkVWtANAp6YmZVYWA9
Sn5iME9EUk5NQmBmJWV7eUV2NnhFVkZ3ZntQYW9kQyR9X1c0dVdldmR4SVF6VGthNlomI0BAJEFK
OD0KemRMdDY4YXhLYnBtUzZpWC1ufCo0UEZTK2ZVQSktRj5pYS1nRyNxWk5UNn49RGs9djwkaFgr
R2ZvMih9MUFkTCZvCnpoPXlCSVN7Tkx3QyhIK3Mmfm0tOStoZjFGMzJ5X1h8N2tsX3lBX1A4d05l
c3FtbU99ZnQ5ZUdMeT9YX0opR2lubgp6bXNWb195RSQ3XnUkWDQme2ZaeHZzVjJSRlZ5Qkt3e25a
bjl5QD8qNmpVTE57U3F4UDZReC1UVnI8Zz4+I053dF4Kelh0TCQwNW1ufGcqQ1RxKiVWKGJiYUJX
dGBaTD1oPk1US15uazlUQVJVY3NZak9QNzlASGpnSkV4IT82YSopKzw2CnpoNlpVbWtVIW49bHRQ
V3h4Ui1kbXReNmVsendGYzJhZTtFPkI0eCRHX18rPXl7fS1adlVlUWAxVUcwSnFfOz4ydgp6VyY3
NDVSTWgkSXtSS0Q4Q0tLYnBqWEk8WDdUPVJPbHBJb3hMbCYpO2c8OWorPUMxcWFXdjxZUkV0RVpI
KSFCMHoKelRpSEh6Wk1EKis+aW05I2AoS3JjVXpBTGczXysrbEUwP3teM00hWkhvMjV8MGh7byQ5
JmJLYnZQTF5qS3kxO0hnCnpFJTVVJHtvTnUzJlhIRldYZ0JuakJCO2o3dytkYzlzcWFNbytUPm9q
ZEZufj8/SmRFbSoqUy0lYldWVH50NGJxJgp6emxQbD9WTD5keFRGV25AYG1pIW9xdFVkLUl2PlhD
VH1ISDcrIXF4MlF9S3M2dEVMS3FOd048ViZwbTd2STEpV1gKejtmZHU7PjM8PHEzS2V5MG0jaUND
XkVhSCF2Vkl6LSRIanwtYSpjMFRyPThJO1oxZj8tdHEheEQ9cnwxM244NV92Cnp5cmJ8WV9gejdp
NFgjJDRRJUgzaWNZeyttJHZ5IVJfeU1eUjUkc0FBVkl1aDUlVXR9cktaTkB1WFZUUk9ZcTI1Pgp6
P09TcVJaPmBQSCEmS3x9Xm97dEV2QCVBR2ctRH48Sj9EPnEqS1QzdnU2I1FGc1lkJWtyZXdePShp
Wig7dn4jSzcKejluVXIpRVM7d0EjY2BBaXJXcTljbHUoKWMqb2N3ZiVwR3BwRjhrZmU7bCtmSDBt
aVVKbUJ1REZBPnktZ1NKX2g9CnpoM2V8MkdAT2dSR04+QTgmeV5Ke0pkLShqYHNMKl9YN1F8Skpt
c2RHdH1zJSh3YWpxWGk0KnB4YGw4WXpaRClwfgp6cU8hZ2BRJHM2RSQzXihnNGJgfiZSfWh1UTNj
P2ZVITUxeFZlZlpxNGxGd0hmKlo4cT1UbzFBKGBLazh1SSZPU1EKeitRaj5xckR9Yn1mWkFsO2ZL
a1JmYSkkUzd5bDx+aSpJLXV4QS0zfX5leCtQdChlfV5HVG07JT5sYV5tR2E/ZTJICnpNeSlJNUx6
bWB+UGN6d2E/MiQ4MW5VbHs9ayRYfVJQMkNIPEF9ZnROQzVPXzQ3PTwtJjE/eV48Vjw+Uzs2N0c9
NQp6aEk/IWc+XkRnY2k5WSRpZSZzMF9kVllMVGl4S3lfO2pYRTE8YHAwXiRjXkchbDs9OTZYUyRw
eDY1bDx4R04lX2QKejltJkVoNiF7e1ktKiMrJVNUTylnSFA7fjFqM1BybURVSHhEM2NQd15Aa0gt
RGhVMENPRVpZRnstNz9keSt0NzZaCnp3flNGJnRCPDEkNXZ6fkF1ZzN+OGclNVZ2RUMlVlcyOGxS
Tmg8cXZMS0JjY01pYXtFfTspNUZKWjJDN05eUFd4LQp6S1UrMWJTc2lgKGojWX5mSWIqa1NXSj5v
dUw2KCNST0hPPTQ0aFcyMVllU2wmWTFYUGh5a1RSJWNkQXJJK2dJQjwKenltNE9fbDB3JSY4TmM5
eUJfV202aX1qV3pFKDxASUNTVE18XmlBPG0hRFA+RDxsI0tPQns4PldJbn5kNDF1NkoxCnp5c2NQ
MFE2VjR0RTtkPml5KTt6YVdreXQ8dkVoQmxfJnV0UlcjI2Q0dCpPRnRiKDU2RkMkQEFhSio4UnV2
Qmh9aAp6N1Z3YnE9QihVeVkocHtERn1LLVZoeXJoajlMP0FuWitvT25AMT45O01Vak56Uk0pfDZw
cVQzOWVkZSRGd3s1NjAKelI3SG9JZWE/TkAyZm95diRiaipnY2JmbVBVciFkRyt1JEFBeXIyV1FR
fWQ5SGFQfUp7dzt9Km85THJvMnJfVFJMCnpYOSVjJUA4ZHI9RSZkbEl6ZjB+JipPK2RiVkQwNSsy
ODMpZlJkWnN0Qmx0bF9iKkJrfG0zRUA5UTZ6WV50ZSFYMgp6VHxzYTw5KXFWTztKYiFVckdEX2oq
e0xmbDdANio4dDJPK2RAbGJ6anpffW9aZ2g9I21wS0VNa0tzXlpZKjBufFcKekgzQio5bCNjTV9m
YXxjPT50KnB0alFDYGA+Wit6O2JRWVJqPlpENDJ2KU57JGQ9R2FgYXMjOXpraSp5ZXJ1b0M/Cnpn
dnt5SCEkJipLIUBvUn04KXBtVUx4P3N1MlJZZTM3ZWcqcTY5KGhMTCRKfiZQP3FBZG14SXopKTdR
dWtJaXpANQp6P3tRZ34jdCEmcS1fVCttI009ZFo/NTkrRVFIN3tJazQ7amVvKyRXVD4+Pk1jUHgk
KiZDTWczWTxuYVFuJlVxUjgKeilydDlaR3BwcEc/LSohYj1jdihiJDUoMUo/UTVHU0NqJHIpQntA
dDJfUUwtMmdZLTRCKm5gNSk5M34tclFlQX1CCno4TVIqYlZMX2o3Uk9NIyM3cCpNcF96I3drd0Vk
PG1QY3RvdFlANy08RjArdGQ7dzVwJXgwVUY4VE8jR3ROfkdgJAp6LVN5TzA2KThfIW5oeGk+SERK
LXBKP2gxWWYhNEtLPmZ3MXBRU2A3fWt8X2MxPylCQmApcHN9dkQ2PFljdGNffSUKelFsQmxMcHte
I3Z3fUdRRnZ2emZ3QEJFY3Y0RnVIcmBeU3xmWWJyWUYhfEZAUUJhbkxwWXRORE5uNy1fYFMqbT1L
CnpMLXUrJUR8Oz1ocVdzTF8mOUg4TENzUT9SXn4pfXV1fihRZWtRTX1ZRH02cSlEISlha2FtR0Y8
aFEkRTlTcWFJZgp6QlRwWns9NDB1Mk87JS0/SWkqLX08SXdVZV4jdTI2JCohalprQlQoME4tT0tk
eXN4JGFvJkpvYD55cygzciFRVCsKeiZpRiYhWWVAekJYNkRFVG55UXhBe0g3SG00Kmk/V0ljSjlG
UWVuc2soUlJha0tJeSMxPjA4ODI3NUtXP3kqIWVvCnpEVmFxS0VBdXJhUDVkVTdNcy1NaS1gPHhI
SX1fYllOakk1Y1M0byohdSh3P0pCYVVUVi1RdGF+Pz01Szd2aT0+Qgp6UGs5fHd2cERpMntZdzM2
XllEU3B3QFgzNDF5eDNXajQ+TEl0NTB+NSNvQHlsKXc9ZjdUS19ONiRecmlOYSZaSmEKek0xITJ8
QUs5SiUqI3c0PG48O3VLcXwhUjhoVUQ+SFB3X1FDTypTQUE5cyptelpAJS1ZZ19taEpxVE5lRk1y
Zj9yCno4RCgjM2IybD9oViZwPSpqSEhHNjlpK3h2bWBBRWpSQWBGQTAtZ0hiR3NWai0qY1E+akhP
ZCpreWB2PVlXdkMmSQp6UnUpKVdneGA8OzhlbF4oKTVVKXJ0U3M8SnhNMEd5THtoUWw0QjBGYmFu
NU9JYHtEN1o+aCV2aiVRWUdLbCs5VEUKelYjYEZ2aG5LeCVxaT9sUThATWMqSiV5Zn00cUVBYVQr
PlpDZVZCdlJUS31XP2tOM0srWFFaOyh7UldqY3ZyZzN8Cnp5cVY5T2BieTBScG1aOX1eflh0aEV0
b2xPa2VWTTtZZlBmPkBkNnQoPCpeZ3xFX1ZWYFBxJVdKKihGXnpzQjE4aAp6NkNZWE9EV1N5NUR5
Vnhyc3hCcnNuP3tnZ01wNmV7Z2BIMSEjTTNUeCQ0UkJtK3BsN0JqQ3tqSyV5YiN9dz9GK0sKRD9H
QVRfCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412603</attachid>
            <date>2020-10-28 19:15:32 -0700</date>
            <delta_ts>2020-10-28 23:29:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217506-20201028191531.patch</filename>
            <type>text/plain</type>
            <size>98475</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQ4OWVlMzRlY2RiMzJl
OTAwOGNjMmY4OTEwOTFhYjhlMWZjYjE3Mi4uYzk3Yzg1ODgyMzkwMjczY2E3YzVkMjA2MGYyNTRh
NGEwNmVjN2NjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIwLTEwLTI2ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBb
R1BVIFByb2Nlc3NdIFBlcmZvcm0gaW1hZ2UgZGVjb2Rpbmcgb2YgY29sb3IgZm9udHMgaW4gdGhl
IFdlYiBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTc1MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0OiBmYXN0L3RleHQvY2FudmFzLXNiaXguaHRtbAorICAgICAgICAgICAgICBmYXN0
L3RleHQvY2FudmFzLUNPTFIuaHRtbAorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAg
ICAgKiBQbGF0Zm9ybUFwcGxlV2luLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtV2luQ2Fpcm8u
Y21ha2U6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2oveGNz
aGFyZWRkYXRhL3hjc2NoZW1lcy9XZWJDb3JlLnhjc2NoZW1lOgorICAgICAgICAqIHBsYXRmb3Jt
L0ZyZWVUeXBlLmNtYWtlOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJD
b3JlVGV4dC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmJlZ2lu
TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmVuZExheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpkcmF3R2x5cGhzKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpkcmF3SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdHbHlwaHNSZWNvcmRlcjo6Y3JlYXRlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdHbHlwaHNSZWNvcmRl
cik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpw
cmVwYXJlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpE
cmF3R2x5cGhzUmVjb3JkZXI6OmNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnVwZGF0ZUNUTSk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVGaWxs
Q29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRl
cjo6cmVjb3JkQmVnaW5MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJh
d0dseXBoc1JlY29yZGVyOjpyZWNvcmRFbmRMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6Y29tcHV0ZUFkdmFuY2VzRnJvbVBvc2l0aW9ucyk6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpyZWNvcmREcmF3R2x5cGhzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZERy
YXdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29y
ZGVyOjpkcmF3R2x5cGhzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6RHJhd0dseXBo
c1JlY29yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVj
b3JkZXI6OmRyYXdHbHlwaHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpSZWNvcmRlcjo6UmVjb3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlY29yZGVyOjpkcmF3R2x5cGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpS
ZWNvcmRlcjo6YXBwZW5kSXRlbSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6YXBwZW5kSXRlbSk6CisKIDIwMjAtMTAtMjggIENvbnJh
ZCBTaHVsdHogIDxjb25yYWRfc2h1bHR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgZGlh
Z25vc3RpYyBsb2dnaW5nIGZvciBwbHVnLWlucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggYzRkMzM0
MjlkYmU2YjBjMjBkYTc5MjMxYzZiMzNlZmM4YmQ1Nzk2Mi4uNTYwZGU1MDRmNjZhZWZmMThhMGU2
MDFmODQyMjZmNDNjNzRiOWMwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMjAtMTAtMjYgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbQ29jb2FdIFtHUFUgUHJvY2Vzc10gUGVyZm9ybSBpbWFnZSBkZWNvZGluZyBvZiBj
b2xvciBmb250cyBpbiB0aGUgV2ViIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzUwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaDoKKwog
MjAyMC0xMC0xMyAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVtb3ZlIGxlZnRvdmVyIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3ggc3VwcG9ydApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKaW5kZXggNjg4NGQwZjg2ZDI5ZGMxNDkxNjYxMTdiYTVjOTY0ZDEwYjMz
YmRkZi4uMjgwMWFkNmZkODVmYzM2NGU4ZDA2NTE0NDkyMzlhNzI5MTU5ZjRiMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCkBAIC0xMjM3LDYgKzEyMzcsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1F
V09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvRXh0ZW5zaW9uc0dMQU5H
TEUuaAogCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmgK
KyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhz
UmVjb3JkZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dERyYXdpbmdDb250ZXh0LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RJbWFnZUJ1ZmZlci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0SXRlbXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvY2cvQ29yZUdyYXBoaWNzU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9D
b3JlR3JhcGhpY3NTUEkuaAppbmRleCBhN2Y4MmI4NjFiNjJjNGFlZmI4M2MxODExZDU1YzdhZjc0
OWU2YjkxLi4xNDUyZTg3MWQ4NjIxM2FkZDUzOWFhYzI5MmZkOWE4NjExYzVlZmNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaApAQCAtMzgs
NiArMzgsNyBAQAogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAorI2luY2x1ZGUgPENv
cmVHcmFwaGljcy9DR0NvbnRleHREZWxlZ2F0ZVByaXZhdGUuaD4KICNpbmNsdWRlIDxDb3JlR3Jh
cGhpY3MvQ0dGb250Q2FjaGUuaD4KICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dQYXRoUHJpdmF0
ZS5oPgogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3NQcml2YXRlLmg+CkBAIC01
OCwxOSArNTksMTIgQEAgc3RydWN0IENHRm9udEhNZXRyaWNzIHsKICAgICBpbnQgbWluUmlnaHRT
aWRlQmVhcmluZzsKIH07CiAKLXN0cnVjdCBDR0ZvbnREZXNjcmlwdG9yIHsKLSAgICBDR1JlY3Qg
YmJveDsKLSAgICBDR0Zsb2F0IGFzY2VudDsKLSAgICBDR0Zsb2F0IGRlc2NlbnQ7Ci0gICAgQ0dG
bG9hdCBjYXBIZWlnaHQ7Ci0gICAgQ0dGbG9hdCBpdGFsaWNBbmdsZTsKLSAgICBDR0Zsb2F0IHN0
ZW1WOwotICAgIENHRmxvYXQgc3RlbUg7Ci0gICAgQ0dGbG9hdCBhdmdXaWR0aDsKLSAgICBDR0Zs
b2F0IG1heFdpZHRoOwotICAgIENHRmxvYXQgbWlzc2luZ1dpZHRoOwotICAgIENHRmxvYXQgbGVh
ZGluZzsKLSAgICBDR0Zsb2F0IHhIZWlnaHQ7Cit0eXBlZGVmIENGX0VOVU0gKGludDMyX3QsIENH
Q29udGV4dERlbGVnYXRlQ2FsbGJhY2tOYW1lKQoreworICAgIGRlRHJhd0ltYWdlID0gNywKKyAg
ICBkZURyYXdHbHlwaHMgPSA4LAorICAgIGRlQmVnaW5MYXllciA9IDE3LAorICAgIGRlRW5kTGF5
ZXIgPSAxOCwKIH07CiAKIHR5cGVkZWYgY29uc3Qgc3RydWN0IENHQ29sb3JUcmFuc2Zvcm0qIENH
Q29sb3JUcmFuc2Zvcm1SZWY7CkBAIC0xNzcsNiArMTcxLDIyIEBAIHN0cnVjdCBDR0ZvY3VzUmlu
Z1N0eWxlIHsKIH07CiB0eXBlZGVmIHN0cnVjdCBDR0ZvY3VzUmluZ1N0eWxlIENHRm9jdXNSaW5n
U3R5bGU7CiAKK3N0cnVjdCBDR1NoYWRvd1N0eWxlIHsKKyAgICB1bnNpZ25lZCBhOworICAgIENH
RmxvYXQgYjsKKyAgICBDR0Zsb2F0IGF6aW11dGg7CisgICAgQ0dGbG9hdCBjOworICAgIENHRmxv
YXQgaGVpZ2h0OworICAgIENHRmxvYXQgcmFkaXVzOworICAgIENHRmxvYXQgZDsKK307Cit0eXBl
ZGVmIHN0cnVjdCBDR1NoYWRvd1N0eWxlIENHU2hhZG93U3R5bGU7CisKK3R5cGVkZWYgQ0ZfRU5V
TSAoaW50MzJfdCwgQ0dTdHlsZVR5cGUpCit7CisgICAga0NHU3R5bGVTaGFkb3cgPSAxLAorfTsK
KwogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMTkz
LDYgKzIwMywxMiBAQCBzdGF0aWMgY29uc3QgQ0dTTm90aWZpY2F0aW9uVHlwZSBrQ0dTZXNzaW9u
Q29uc29sZURpc2Nvbm5lY3QgPSAoQ0dTTm90aWZpY2F0aW9uVAogCiAjZW5kaWYgLy8gUExBVEZP
Uk0oTUFDKQogCit0eXBlZGVmIHN0cnVjdCBDR0NvbnRleHREZWxlZ2F0ZSAqQ0dDb250ZXh0RGVs
ZWdhdGVSZWY7Cit0eXBlZGVmIHZvaWQgKCpDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrKSh2b2lk
KTsKK3R5cGVkZWYgc3RydWN0IENHUmVuZGVyaW5nU3RhdGUgKkNHUmVuZGVyaW5nU3RhdGVSZWY7
Cit0eXBlZGVmIHN0cnVjdCBDR0dTdGF0ZSAqQ0dHU3RhdGVSZWY7Cit0eXBlZGVmIHN0cnVjdCBD
R1N0eWxlICpDR1N0eWxlUmVmOworCiAjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykK
IAogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtMjAzLDcgKzIxOSw2IEBAIHR5cGVkZWYgdWludDMy
X3QgQ0dTV2luZG93SUQ7CiAKIHR5cGVkZWYgQ0dTV2luZG93SUQqIENHU1dpbmRvd0lETGlzdDsK
IHR5cGVkZWYgc3RydWN0IENGX0JSSURHRURfVFlQRShpZCkgQ0dTUmVnaW9uT2JqZWN0KiBDR1NS
ZWdpb25PYmo7Ci10eXBlZGVmIHN0cnVjdCBDRl9CUklER0VEX1RZUEUoaWQpIENHU3R5bGUqIENH
U3R5bGVSZWY7CiAKIHR5cGVkZWYgdm9pZCogQ0dTTm90aWZpY2F0aW9uQXJnOwogdHlwZWRlZiB2
b2lkKiBDR1NOb3RpZmljYXRpb25EYXRhOwpAQCAtMjMzLDcgKzI0OCw2IEBAIHZvaWQgQ0dDb250
ZXh0UmVzZXRDbGlwKENHQ29udGV4dFJlZik7CiBDR0NvbnRleHRUeXBlIENHQ29udGV4dEdldFR5
cGUoQ0dDb250ZXh0UmVmKTsKIAogQ0ZTdHJpbmdSZWYgQ0dGb250Q29weUZhbWlseU5hbWUoQ0dG
b250UmVmKTsKLWJvb2wgQ0dGb250R2V0RGVzY3JpcHRvcihDR0ZvbnRSZWYsIENHRm9udERlc2Ny
aXB0b3IqKTsKIGJvb2wgQ0dGb250R2V0R2x5cGhBZHZhbmNlc0ZvclN0eWxlKENHRm9udFJlZiwg
Y29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0qICwgQ0dGb250UmVuZGVyaW5nU3R5bGUsIGNvbnN0IENH
R2x5cGhbXSwgc2l6ZV90IGNvdW50LCBDR1NpemUgYWR2YW5jZXNbXSk7CiB2b2lkIENHRm9udEdl
dEdseXBoc0ZvclVuaWNoYXJzKENHRm9udFJlZiwgY29uc3QgVW5pQ2hhcltdLCBDR0dseXBoW10s
IHNpemVfdCBjb3VudCk7CiBjb25zdCBDR0ZvbnRITWV0cmljcyogQ0dGb250R2V0SE1ldHJpY3Mo
Q0dGb250UmVmKTsKQEAgLTI1Miw2ICsyNjYsMjEgQEAgYm9vbCBDR0NvbnRleHRHZXRBbGxvd3NG
b250U3VicGl4ZWxQb3NpdGlvbmluZyhDR0NvbnRleHRSZWYpOwogYm9vbCBDR0NvbnRleHREcmF3
c1dpdGhDb3JyZWN0U2hhZG93T2Zmc2V0cyhDR0NvbnRleHRSZWYpOwogQ0dQYXR0ZXJuUmVmIENH
UGF0dGVybkNyZWF0ZVdpdGhJbWFnZTIoQ0dJbWFnZVJlZiwgQ0dBZmZpbmVUcmFuc2Zvcm0sIENH
UGF0dGVyblRpbGluZyk7CiAKK0NHQ29udGV4dERlbGVnYXRlUmVmIENHQ29udGV4dERlbGVnYXRl
Q3JlYXRlKHZvaWQqIGluZm8pOwordm9pZCBDR0NvbnRleHREZWxlZ2F0ZVNldENhbGxiYWNrKENH
Q29udGV4dERlbGVnYXRlUmVmLCBDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrTmFtZSwgQ0dDb250
ZXh0RGVsZWdhdGVDYWxsYmFjayk7CitDR0NvbnRleHRSZWYgQ0dDb250ZXh0Q3JlYXRlV2l0aERl
bGVnYXRlKENHQ29udGV4dERlbGVnYXRlUmVmLCBDR0NvbnRleHRUeXBlLCBDR1JlbmRlcmluZ1N0
YXRlUmVmLCBDR0dTdGF0ZVJlZik7Cit2b2lkKiBDR0NvbnRleHREZWxlZ2F0ZUdldEluZm8oQ0dD
b250ZXh0RGVsZWdhdGVSZWYpOwordm9pZCBDR0NvbnRleHREZWxlZ2F0ZVJlbGVhc2UoQ0dDb250
ZXh0RGVsZWdhdGVSZWYpOworQ0dGbG9hdCBDR0dTdGF0ZUdldEFscGhhKENHR1N0YXRlUmVmKTsK
K0NHRm9udFJlZiBDR0dTdGF0ZUdldEZvbnQoQ0dHU3RhdGVSZWYpOworY29uc3QgQ0dBZmZpbmVU
cmFuc2Zvcm0gKkNHR1N0YXRlR2V0Q1RNKENHR1N0YXRlUmVmKTsKK0NHQ29sb3JSZWYgQ0dHU3Rh
dGVHZXRGaWxsQ29sb3IoQ0dHU3RhdGVSZWYpOworQ0dDb2xvclJlZiBDR0dTdGF0ZUdldFN0cm9r
ZUNvbG9yKENHR1N0YXRlUmVmKTsKK0NHU3R5bGVSZWYgQ0dHU3RhdGVHZXRTdHlsZShDR0dTdGF0
ZVJlZik7CitDR1N0eWxlVHlwZSBDR1N0eWxlR2V0VHlwZShDR1N0eWxlUmVmKTsKK2NvbnN0IHZv
aWQgKkNHU3R5bGVHZXREYXRhKENHU3R5bGVSZWYpOworQ0dDb2xvclJlZiBDR1N0eWxlR2V0Q29s
b3IoQ0dTdHlsZVJlZik7CisKICNpZiBIQVZFKENHUEFUSF9HRVRfTlVNQkVSX09GX0VMRU1FTlRT
KQogc2l6ZV90IENHUGF0aEdldE51bWJlck9mRWxlbWVudHMoQ0dQYXRoUmVmKTsKICNlbmRpZgpA
QCAtMjg2LDE2ICszMTUsOSBAQCBDR1JlY3QqIENHU05leHRSZWN0KGNvbnN0IENHU1JlZ2lvbkVu
dW1lcmF0b3JPYmopOwogQ0dTUmVnaW9uRW51bWVyYXRvck9iaiBDR1NSZWdpb25FbnVtZXJhdG9y
KENHUmVnaW9uUmVmKTsKIENHU3R5bGVSZWYgQ0dTdHlsZUNyZWF0ZUZvY3VzUmluZ1dpdGhDb2xv
cihjb25zdCBDR0ZvY3VzUmluZ1N0eWxlKiwgQ0dDb2xvclJlZik7CiB2b2lkIENHQ29udGV4dFNl
dFN0eWxlKENHQ29udGV4dFJlZiwgQ0dTdHlsZVJlZik7Ci0KIHZvaWQgQ0dDb250ZXh0RHJhd0Nv
bmljR3JhZGllbnQoQ0dDb250ZXh0UmVmLCBDR0dyYWRpZW50UmVmLCBDR1BvaW50IGNlbnRlciwg
Q0dGbG9hdCBhbmdsZSk7Ci0KLSNpZiBIQVZFKENHX1BBVEhfVU5FVkVOX0NPUk5FUlNfUk9VTkRF
RFJFQ1QpCiB2b2lkIENHUGF0aEFkZFVuZXZlbkNvcm5lcnNSb3VuZGVkUmVjdChDR011dGFibGVQ
YXRoUmVmLCBjb25zdCBDR0FmZmluZVRyYW5zZm9ybSAqLCBDR1JlY3QsIGNvbnN0IENHU2l6ZSBj
b3JuZXJzWzRdKTsKLSNlbmRpZgotCi0jaWYgSEFWRShDR19GT05UX1JFTkRFUklOR19HRVRfRk9O
VF9TTU9PVEhJTkdfRElTQUJMRUQpCiBib29sIENHRm9udFJlbmRlcmluZ0dldEZvbnRTbW9vdGhp
bmdEaXNhYmxlZCh2b2lkKTsKLSNlbmRpZgogCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAK
QEAgLTMyOCwxNSArMzUwLDEwIEBAIGJvb2wgQ29sb3JTeW5jUHJvZmlsZUlzV2lkZUdhbXV0KENv
bG9yU3luY1Byb2ZpbGVSZWYpOwogc2l6ZV90IENHRGlzcGxheU1vZGVHZXRQaXhlbHNXaWRlKENH
RGlzcGxheU1vZGVSZWYpOwogc2l6ZV90IENHRGlzcGxheU1vZGVHZXRQaXhlbHNIaWdoKENHRGlz
cGxheU1vZGVSZWYpOwogCi0jaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NL
SU5HKQotCiBDR0Vycm9yIENHU1NldERlbnlXaW5kb3dTZXJ2ZXJDb25uZWN0aW9ucyhib29sKTsK
LQogdHlwZWRlZiBpbnQzMl90IENHU0Rpc3BsYXlJRDsKIENHU0Rpc3BsYXlJRCBDR1NNYWluRGlz
cGxheUlEKHZvaWQpOwogCi0jZW5kaWYgLy8gRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVS
X0JMT0NLSU5HKQotCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCiAjaWYgRU5BQkxFKFBERktJ
VF9QTFVHSU4pICYmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1BcHBsZVdpbi5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
QXBwbGVXaW4uY21ha2UKaW5kZXggYTc4OGU2OWRlNzQ0MWM5NDA4NGY3MDM2YTNlOGY0OWFkNDUx
YTU4ZC4uMzhhMmI3NzY4OTU1OThhNGY0ZTM2YWRlN2M2MDNiMDQwNzhkZGM3NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1BcHBsZVdpbi5jbWFrZQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybUFwcGxlV2luLmNtYWtlCkBAIC0zMCw2ICszMCw4IEBAIGxpc3QoQVBQRU5E
IFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vY2YvV2ViQ29yZUFWQ0ZSZXNvdXJjZUxvYWRlci5jcHAKIAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRl
ckNvcmVUZXh0LmNwcAorCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGEuY3BwCiAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL2NmL0F1dGhlbnRpY2F0aW9uQ0Yu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbkNhaXJvLmNtYWtlIGIv
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5DYWlyby5jbWFrZQppbmRleCBhNjg5NjQ3N2RlMGNm
NTAzNGYzZmQwOWYzZjBjNzZhN2RhNmVjOGExLi4wNzc4Zjc1NTY2YzY0NjMwMjBhMGUwN2M1MmE2
NWMxYTQ3NGY2Mjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbkNhaXJv
LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UKQEAgLTIy
LDYgKzIyLDggQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvR0xDb250ZXh0LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxh
eS5jcHAKIAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERy
YXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcAorCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy93
aW4vRm9udFBsYXRmb3JtRGF0YUNhaXJvV2luLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dp
bi9HbHlwaFBhZ2VUcmVlTm9kZUNhaXJvV2luLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5k
ZXggZWI0ZTE3ZjJlNzM2ZWE4NjgxYzU2ZDIwMjUxNDkyNmI4ZGM5OTQ1MC4uMmFkMzNhOTU1MTky
ZDkwNzZlYjNkOGMxNjJjZmUzODYyMmRmYjE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
U291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBA
IC0zNzksNiArMzc5LDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Np
b25WVC5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAK
IHBsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcAogcGxhdGZvcm0v
Z3JhcGhpY3MvY29yZWltYWdlL0ZpbHRlckVmZmVjdFJlbmRlcmVyQ29yZUltYWdlLm1tCitwbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJD
b3JlVGV4dC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdEYXRhLmNwcAogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cEFsbG9jYXRvck1ldGFsLm1tCiBwbGF0
Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQmluZEdyb3VwTGF5b3V0TWV0YWwubW0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0
Yzk0OTY4NzhmN2RmMTI5M2IzN2QyY2M0ODA5OTZmOWFhYmRiZTc2Li4zZjBkZjhiYjcwZTkzODQz
ZGRjYjJkY2UxNmQwNjg4MzMzNTRhMDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02MjAsNiArNjIwLDcgQEAKIAkJMUNBRjM0
ODEwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBRjM0N0UwQTZDNDA1MjAwQUJFMDZFIC8q
IFdlYlNjcmlwdE9iamVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTFDQUYzNDgyMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3Qu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FGMzQ3
RjBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0Lm1tICovOyB9OwogCQkxQ0FGMzQ4
MzBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBRjM0ODAwQTZDNDA1MjAwQUJF
MDZFIC8qIFdlYlNjcmlwdE9iamVjdFByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQkxQ0FGNTZEQjI1MzAxQUM4MDAxN0I0NzIgLyogRGlz
cGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUY1NkQ4MjUzMDE0NTcwMDE3QjQ3MiAvKiBEaXNwbGF5TGlz
dERyYXdHbHlwaHNSZWNvcmRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTFDQ0Q4MTUwMjIzMUY4M0UwMDY1RkMyQiAvKiBXZWJDb3JlUmVzb3Vy
Y2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTUyNTUxNDE2RkQyMzRGMDAzRDdBREIgLyogV2Vi
Q29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tICovOyB9OwogCQkx
Q0NERjVCRTE5OTAzMzI0MDBCQ0VCQUQgLyogU1ZHVG9PVEZGb250Q29udmVyc2lvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDREY1QkMxOTkwMzMy
NDAwQkNFQkFEIC8qIFNWR1RvT1RGRm9udENvbnZlcnNpb24uaCAqLzsgfTsKIAkJMUNGQUUzMjMw
QTZENkEzRjAwMzI1OTNEIC8qIGxpYm9iamMuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0ZBRTMyMjBBNkQ2QTNGMDAzMjU5M0QgLyogbGli
b2JqYy5keWxpYiAqLzsgfTsKQEAgLTY3MzUsNiArNjczNiw4IEBACiAJCTFDQUYzNDdFMEE2QzQw
NTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViU2NyaXB0T2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFDQUYzNDdGMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJTY3JpcHRPYmplY3QubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUYzNDgwMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJT
Y3JpcHRPYmplY3RQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YlNjcmlwdE9iamVjdFByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNB
RjU2RDgyNTMwMTQ1NzAwMTdCNDcyIC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQUY1NkRFMjUzMDI0NUEwMDE3QjQ3MiAvKiBEaXNwbGF5
TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERp
c3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQ0I1RkU4ODIyREVCQzhCMDA5NDQwRTIgLyogV0hMU0xFcnJvci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXSExTTEVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFDQjY5QjMyMjFERUQ0MEIwMDZFODQ2QSAvKiBXSExTTFJlc29sdmFibGVUeXBlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdITFNMUmVzb2x2YWJsZVR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUNCNjlCMzQyMURFRDYzQTAwNkU4NDZBIC8qIFdITFNMRmxvYXRMaXRlcmFsVHlwZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXSExTTEZsb2F0TGl0ZXJhbFR5cGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE3NjA2LDYgKzE3NjA5LDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJ
CTBGRTVGQkNBMUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdC5jcHAgKi8sCiAJCQkJMEZF
NUZCQ0IxQzNERDUxRTAwMDdBMkNBIC8qIERpc3BsYXlMaXN0LmggKi8sCisJCQkJMUNBRjU2RDgy
NTMwMTQ1NzAwMTdCNDcyIC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmggKi8sCisJ
CQkJMUNBRjU2REUyNTMwMjQ1QTAwMTdCNDcyIC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29y
ZGVyQ29yZVRleHQuY3BwICovLAogCQkJCTU1QzBBMjk1MjNGRTJDRTAwMEYyQ0I5MyAvKiBEaXNw
bGF5TGlzdERyYXdpbmdDb250ZXh0LmNwcCAqLywKIAkJCQk3MkVBMDlGOTIzRkNDQzZBMDA4NTA0
QTUgLyogRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5oICovLAogCQkJCTcyRUEwOUY3MjNGQ0NC
M0QwMDg1MDRBNSAvKiBEaXNwbGF5TGlzdEltYWdlQnVmZmVyLmggKi8sCkBAIC0zMTQyNyw2ICsz
MTQzMiw3IEBACiAJCQkJN0VEQUFGQzkxOUEyQ0NEQzAwMzRERkQxIC8qIERpc2tDYWNoZU1vbml0
b3JDb2NvYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3OTBGNDIyNTE3Q0U2RTAwOUJBMDM0IC8q
IERpc3BsYXlMYXllckNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTVGQkQzMUMz
REQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNBRjU2
REIyNTMwMUFDODAwMTdCNDcyIC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1NUFEMDk0MDI0MDg5NjQwMDBERTREMkYgLyogRGlzcGxheUxpc3RE
cmF3aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTVBRDA5M0UyNDA4OTYzNTAwREU0
RDJGIC8qIERpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTVG
QkQ1MUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdEl0ZW1zLmggaW4gSGVhZGVycyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtlIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJlZVR5cGUuY21ha2UKaW5kZXggN2MwNGQ5M2E1Yjg1Yzcz
MjU4MWM5NWEwNjViZTA1YjYzNjdjN2FlNC4uZjM4YjU0ZTE3YzkzMTU2NTE1NGNhYjk1M2E4MWUw
ZTk2ZjU3NDlhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJlZVR5cGUu
Y21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJlZVR5cGUuY21ha2UKQEAgLTUs
NiArNSw4IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfUFJJVkFURV9JTkNMVURFX0RJUkVDVE9SSUVT
CiApCiAKIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUworICAgIHBsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcAor
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udEN1c3RvbVBsYXRmb3JtRGF0YUZyZWVU
eXBlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRQbGF0Zm9ybURhdGFG
cmVlVHlwZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5kLmNwcAppbmRleCAyYWQzMWFjNTdkNWYxYmRl
Nzk0MTljNWY5MTU2OTdiMzc1NDRiYjQ4Li41YjIwZDg5MmVkOGJiY2Y2MDE4MTZhNjM2NzZhMDBm
MWZhNWMxN2IzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tlbmQuY3BwCkBAIC02MSw2ICs2MSw3IEBAIFJl
dGFpblB0cjxDR0NvbG9yU3BhY2VSZWY+IEltYWdlQnVmZmVyQ0dCYWNrZW5kOjpjb250ZXh0Q29s
b3JTcGFjZShjb25zdCBHcmFwaGljCiAKIHZvaWQgSW1hZ2VCdWZmZXJDR0JhY2tlbmQ6OnNldHVw
Q29udGV4dCgpCiB7CisgICAgLy8gVGhlIGluaXRpYWwgQ1RNIG1hdGNoZXMgRGlzcGxheUxpc3Q6
OlJlY29yZGVyOjpjbGlwVG9EcmF3aW5nQ29tbWFuZHMoKSdzIGluaXRpYWwgQ1RNLgogICAgIGNv
bnRleHQoKS5zY2FsZShGbG9hdFNpemUoMSwgLTEpKTsKICAgICBjb250ZXh0KCkudHJhbnNsYXRl
KDAsIC1tX2JhY2tlbmRTaXplLmhlaWdodCgpKTsKICAgICBjb250ZXh0KCkuYXBwbHlEZXZpY2VT
Y2FsZUZhY3RvcihtX3Jlc29sdXRpb25TY2FsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250Q2FzY2FkZUNvcmVUZXh0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRDYXNjYWRlQ29yZVRl
eHQuY3BwCmluZGV4IDRhOGU0ZTBlYTE5NDE0NDM2MjUwYTRiZThhYTQ1Y2I3MWRiMjE2ZmIuLmY5
N2Y3MGI4Zjc2NDgzODA3MDZmN2QwYmU3NWQ0YTBkOTdmZTg4ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRDYXNjYWRlQ29yZVRleHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRD
YXNjYWRlQ29yZVRleHQuY3BwCkBAIC02OSw2ICs2OSwxNCBAQCBzdGF0aWMgY29uc3QgQWZmaW5l
VHJhbnNmb3JtJiByb3RhdGVMZWZ0VHJhbnNmb3JtKCkKIAogdm9pZCBmaWxsVmVjdG9yV2l0aEhv
cml6b250YWxHbHlwaFBvc2l0aW9ucyhWZWN0b3I8Q0dQb2ludCwgMjU2PiYgcG9zaXRpb25zLCBD
R0NvbnRleHRSZWYgY29udGV4dCwgY29uc3QgQ0dTaXplKiBhZHZhbmNlcywgdW5zaWduZWQgY291
bnQsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50KQogeworICAgIC8vIFRoZSBpbnB1dCBwb3NpdGlv
bnMgYXJlIGluIHRoZSBjb250ZXh0J3MgY29vcmRpbmF0ZSBzeXN0ZW0sIHdpdGhvdXQgdGhlIHRl
eHQgbWF0cml4LgorICAgIC8vIEhvd2V2ZXIsIHRoZSBwb3NpdGlvbnMgdGhhdCBDVC9DRyBhY2Nl
cHQgYXJlIGluIHRoZSB0ZXh0IG1hdHJpeCdzIGNvb3JkaW5hdGUgc3lzdGVtLgorICAgIC8vIENH
Q29udGV4dEdldFRleHRNYXRyaXgoKSBnaXZlcyB1cyB0aGUgbWF0cml4IHRoYXQgbWFwcyBmcm9t
IHRleHQncyBjb29yZGluYXRlIHN5c3RlbSB0byB0aGUgY29udGV4dCdzIChub24tdGV4dCkgY29v
cmRpbmF0ZSBzeXN0ZW0uCisgICAgLy8gV2UgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgdG8gZGVs
aXZlciBDVCwgaW5zaWRlIHRoZSB0ZXh0J3MgY29vcmRpbmF0ZSBzeXN0ZW0sIHN1Y2ggdGhhdCBp
dCBlbmRzIHVwIGNvaW5jaWRlbnQgd2l0aCB0aGUgaW5wdXQgaW4gdGhlIGNvbnRleHQncyBjb29y
ZGluYXRlIHN5c3RlbS4KKyAgICAvLworICAgIC8vIENUTSAqIHRleHQgbWF0cml4ICogcG9zaXRp
b25zIHdlIG5lZWQgdG8gZGVsaXZlciB0byBDVCA9IENUTSAqIGlucHV0IHBvc2l0aW9ucworICAg
IC8vIFNvbHZpbmcgZm9yIHRoZSBwb3NpdGlvbnMgd2UgbmVlZCB0byBkZWxpdmVyIHRvIENULCB3
ZSBnZXQKKyAgICAvLyBwb3NpdGlvbnMgd2UgbmVlZCB0byBkZWxpdmVyIHRvIENUID0gaW52ZXJz
ZSh0ZXh0IG1hdHJpeCkgKiBpbnB1dCBwb3NpdGlvbnMKICAgICBDR0FmZmluZVRyYW5zZm9ybSBt
YXRyaXggPSBDR0FmZmluZVRyYW5zZm9ybUludmVydChDR0NvbnRleHRHZXRUZXh0TWF0cml4KGNv
bnRleHQpKTsKICAgICBwb3NpdGlvbnNbMF0gPSBDR1BvaW50QXBwbHlBZmZpbmVUcmFuc2Zvcm0o
cG9pbnQsIG1hdHJpeCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IGNvdW50OyArK2kp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVy
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uODM3NGVjMjJhZWQwNGI3ZWJiMzgxOGVjNTE5OTg2MGIyYzg1NDQzNwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oCkBAIC0wLDAgKzEsMTE3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKKyNpbmNsdWRlICJDb2xvci5oIgor
I2luY2x1ZGUgIkdyYWRpZW50LmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5j
bHVkZSAiUGF0dGVybi5oIgorI2luY2x1ZGUgIlRleHRGbGFncy5oIgorCisjaWYgVVNFKENPUkVf
VEVYVCkKKyNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBoaWNzLmg+CisjaW5jbHVkZSA8
cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIEZsb2F0UG9pbnQ7CitjbGFzcyBGb250OworY2xhc3MgR2x5cGhCdWZmZXI7
CitjbGFzcyBHcmFwaGljc0NvbnRleHQ7CisKK25hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CisKK2Ns
YXNzIFJlY29yZGVyOworCitjbGFzcyBEcmF3R2x5cGhzUmVjb3JkZXIgeworcHVibGljOgorICAg
IGV4cGxpY2l0IERyYXdHbHlwaHNSZWNvcmRlcihSZWNvcmRlciYpOworCisgICAgdm9pZCBkcmF3
R2x5cGhzKGNvbnN0IEZvbnQmLCBjb25zdCBHbHlwaEJ1ZmZlciYsIHVuc2lnbmVkIGZyb20sIHVu
c2lnbmVkIG51bUdseXBocywgY29uc3QgRmxvYXRQb2ludCYgYW5jaG9yUG9pbnQsIEZvbnRTbW9v
dGhpbmdNb2RlKTsKKworI2lmIFVTRShDT1JFX1RFWFQpCisgICAgdm9pZCByZWNvcmRCZWdpbkxh
eWVyKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmLCBDR1JlY3QpOworICAgIHZvaWQg
cmVjb3JkRW5kTGF5ZXIoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYpOworICAgIHZv
aWQgcmVjb3JkRHJhd0dseXBocyhDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiwgY29u
c3QgQ0dBZmZpbmVUcmFuc2Zvcm0qLCBjb25zdCBDR0dseXBoW10sIGNvbnN0IENHUG9pbnQgcG9z
aXRpb25zW10sIHNpemVfdCBjb3VudCk7CisgICAgdm9pZCByZWNvcmREcmF3SW1hZ2UoQ0dSZW5k
ZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYsIENHUmVjdCwgQ0dJbWFnZVJlZik7CisjZW5kaWYK
KworcHJpdmF0ZToKKyAgICBHcmFwaGljc0NvbnRleHQgY3JlYXRlSW50ZXJuYWxDb250ZXh0KCk7
CisgICAgdm9pZCBwcmVwYXJlSW50ZXJuYWxDb250ZXh0KGNvbnN0IEZvbnQmLCBGb250U21vb3Ro
aW5nTW9kZSk7CisgICAgdm9pZCBjb25jbHVkZUludGVybmFsQ29udGV4dCgpOworICAgIHZvaWQg
dXBkYXRlQ1RNKEFmZmluZVRyYW5zZm9ybSk7CisgICAgdm9pZCB1cGRhdGVGaWxsQ29sb3IoY29u
c3QgQ29sb3ImLCBHcmFkaWVudCogPSBudWxscHRyLCBQYXR0ZXJuKiA9IG51bGxwdHIpOworICAg
IHZvaWQgdXBkYXRlU3Ryb2tlQ29sb3IoY29uc3QgQ29sb3ImLCBHcmFkaWVudCogPSBudWxscHRy
LCBQYXR0ZXJuKiA9IG51bGxwdHIpOworICAgIGVudW0gY2xhc3MgU2hhZG93c0lnbm9yZVRyYW5z
Zm9ybXMgeworICAgICAgICBVbnNwZWNpZmllZCwKKyAgICAgICAgWWVzLAorICAgICAgICBObwor
ICAgIH07CisgICAgdm9pZCB1cGRhdGVTaGFkb3coY29uc3QgRmxvYXRTaXplJiBzaGFkb3dPZmZz
ZXQsIGZsb2F0IHNoYWRvd0JsdXIsIGNvbnN0IENvbG9yJiBzaGFkb3dDb2xvciwgU2hhZG93c0ln
bm9yZVRyYW5zZm9ybXMpOworCisjaWYgVVNFKENPUkVfVEVYVCkKKyAgICB2b2lkIHVwZGF0ZVNo
YWRvdyhDR1N0eWxlUmVmKTsKKyNlbmRpZgorCisgICAgUmVjb3JkZXImIG1fb3duZXI7CisgICAg
R3JhcGhpY3NDb250ZXh0IG1faW50ZXJuYWxDb250ZXh0OworICAgIGNvbnN0IEZvbnQqIG1fY3Vy
cmVudEZvbnQgeyBudWxscHRyIH07CisKKyAgICBDb2xvciBtX2N1cnJlbnRGaWxsQ29sb3I7Cisg
ICAgQ29sb3IgbV9jdXJyZW50U3Ryb2tlQ29sb3I7CisKKyAgICBDb2xvciBtX29yaWdpbmFsRmls
bENvbG9yOworICAgIFJlZlB0cjxHcmFkaWVudD4gbV9vcmlnaW5hbEZpbGxHcmFkaWVudDsKKyAg
ICBSZWZQdHI8UGF0dGVybj4gbV9vcmlnaW5hbEZpbGxQYXR0ZXJuOworCisgICAgQ29sb3IgbV9v
cmlnaW5hbFN0cm9rZUNvbG9yOworICAgIFJlZlB0cjxHcmFkaWVudD4gbV9vcmlnaW5hbFN0cm9r
ZUdyYWRpZW50OworICAgIFJlZlB0cjxQYXR0ZXJuPiBtX29yaWdpbmFsU3Ryb2tlUGF0dGVybjsK
KworICAgIEFmZmluZVRyYW5zZm9ybSBtX29yaWdpbmFsQ1RNOworICAgIEFmZmluZVRyYW5zZm9y
bSBtX2N1cnJlbnRDVE07CisKKyAgICBBZmZpbmVUcmFuc2Zvcm0gbV9vcmlnaW5hbFRleHRNYXRy
aXg7CisKKyAgICBGbG9hdFNpemUgbV9vcmlnaW5hbFNoYWRvd09mZnNldDsKKyAgICBmbG9hdCBt
X29yaWdpbmFsU2hhZG93Qmx1cjsKKyAgICBDb2xvciBtX29yaWdpbmFsU2hhZG93Q29sb3I7Cisg
ICAgYm9vbCBtX29yaWdpbmFsU2hhZG93c0lnbm9yZVRyYW5zZm9ybXM7CisKKyAgICBGbG9hdFNp
emUgbV9jdXJyZW50U2hhZG93T2Zmc2V0OworICAgIGZsb2F0IG1fY3VycmVudFNoYWRvd0JsdXI7
CisgICAgQ29sb3IgbV9jdXJyZW50U2hhZG93Q29sb3I7CisgICAgYm9vbCBtX2N1cnJlbnRTaGFk
b3dzSWdub3JlVHJhbnNmb3JtczsKKworICAgIEZvbnRTbW9vdGhpbmdNb2RlIG1fc21vb3RoaW5n
TW9kZSB7IEZvbnRTbW9vdGhpbmdNb2RlOjpBdXRvU21vb3RoaW5nIH07Cit9OworCit9CisKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNS
ZWNvcmRlckNvcmVUZXh0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNGM4MzQ2YmQ2YjQ2Y2MzZGE1YjBjODIx
ZjI2YmIzZjAyMGRiNGFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyQ29y
ZVRleHQuY3BwCkBAIC0wLDAgKzEsMzY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpc3BsYXlM
aXN0RHJhd0dseXBoc1JlY29yZGVyLmgiCisKKyNpbmNsdWRlICJCaXRtYXBJbWFnZS5oIgorI2lu
Y2x1ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSAiRGlzcGxheUxpc3RJdGVtcy5oIgorI2luY2x1ZGUg
IkRpc3BsYXlMaXN0UmVjb3JkZXIuaCIKKyNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVk
ZSAiRm9udC5oIgorI2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgiCisjaW5jbHVkZSAiR2x5cGhCdWZm
ZXIuaCIKKworI2luY2x1ZGUgPENvcmVUZXh0L0NvcmVUZXh0Lmg+CisjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgorCisjaWYgUExBVEZPUk0oV0lOKQorI2luY2x1ZGUgPHBhbC9zcGkvd2luL0NvcmVU
ZXh0U1BJV2luLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCituYW1lc3BhY2Ug
RGlzcGxheUxpc3QgeworCitzdGF0aWMgQ0dDb250ZXh0RGVsZWdhdGVSZWYgYmVnaW5MYXllcihD
R0NvbnRleHREZWxlZ2F0ZVJlZiBkZWxlZ2F0ZSwgQ0dSZW5kZXJpbmdTdGF0ZVJlZiByc3RhdGUs
IENHR1N0YXRlUmVmIGdzdGF0ZSwgQ0dSZWN0IHJlY3QsIENGRGljdGlvbmFyeVJlZiwgQ0dDb250
ZXh0RGVsZWdhdGVSZWYpCit7CisgICAgRHJhd0dseXBoc1JlY29yZGVyJiByZWNvcmRlciA9ICpz
dGF0aWNfY2FzdDxEcmF3R2x5cGhzUmVjb3JkZXIqPihDR0NvbnRleHREZWxlZ2F0ZUdldEluZm8o
ZGVsZWdhdGUpKTsKKyAgICByZWNvcmRlci5yZWNvcmRCZWdpbkxheWVyKHJzdGF0ZSwgZ3N0YXRl
LCByZWN0KTsKKyAgICByZXR1cm4gZGVsZWdhdGU7Cit9CisKK3N0YXRpYyBDR0NvbnRleHREZWxl
Z2F0ZVJlZiBlbmRMYXllcihDR0NvbnRleHREZWxlZ2F0ZVJlZiBkZWxlZ2F0ZSwgQ0dSZW5kZXJp
bmdTdGF0ZVJlZiByc3RhdGUsIENHR1N0YXRlUmVmIGdzdGF0ZSkKK3sKKyAgICBEcmF3R2x5cGhz
UmVjb3JkZXImIHJlY29yZGVyID0gKnN0YXRpY19jYXN0PERyYXdHbHlwaHNSZWNvcmRlcio+KENH
Q29udGV4dERlbGVnYXRlR2V0SW5mbyhkZWxlZ2F0ZSkpOworICAgIHJlY29yZGVyLnJlY29yZEVu
ZExheWVyKHJzdGF0ZSwgZ3N0YXRlKTsKKyAgICByZXR1cm4gZGVsZWdhdGU7Cit9CisKK3N0YXRp
YyBDR0Vycm9yIGRyYXdHbHlwaHMoQ0dDb250ZXh0RGVsZWdhdGVSZWYgZGVsZWdhdGUsIENHUmVu
ZGVyaW5nU3RhdGVSZWYgcnN0YXRlLCBDR0dTdGF0ZVJlZiBnc3RhdGUsIGNvbnN0IENHQWZmaW5l
VHJhbnNmb3JtKiB0bSwgY29uc3QgQ0dHbHlwaCBnbHlwaHNbXSwgY29uc3QgQ0dQb2ludCBwb3Np
dGlvbnNbXSwgc2l6ZV90IGNvdW50KQoreworICAgIGlmIChDR0dTdGF0ZUdldEFscGhhKGdzdGF0
ZSkgPiAwKSB7CisgICAgICAgIERyYXdHbHlwaHNSZWNvcmRlciYgcmVjb3JkZXIgPSAqc3RhdGlj
X2Nhc3Q8RHJhd0dseXBoc1JlY29yZGVyKj4oQ0dDb250ZXh0RGVsZWdhdGVHZXRJbmZvKGRlbGVn
YXRlKSk7CisgICAgICAgIHJlY29yZGVyLnJlY29yZERyYXdHbHlwaHMocnN0YXRlLCBnc3RhdGUs
IHRtLCBnbHlwaHMsIHBvc2l0aW9ucywgY291bnQpOworICAgIH0KKyAgICByZXR1cm4ga0NHRXJy
b3JTdWNjZXNzOworfQorCitzdGF0aWMgQ0dFcnJvciBkcmF3SW1hZ2UoQ0dDb250ZXh0RGVsZWdh
dGVSZWYgZGVsZWdhdGUsIENHUmVuZGVyaW5nU3RhdGVSZWYgcnN0YXRlLCBDR0dTdGF0ZVJlZiBn
c3RhdGUsIENHUmVjdCByZWN0LCBDR0ltYWdlUmVmIGltYWdlKQoreworICAgIERyYXdHbHlwaHNS
ZWNvcmRlciYgcmVjb3JkZXIgPSAqc3RhdGljX2Nhc3Q8RHJhd0dseXBoc1JlY29yZGVyKj4oQ0dD
b250ZXh0RGVsZWdhdGVHZXRJbmZvKGRlbGVnYXRlKSk7CisgICAgcmVjb3JkZXIucmVjb3JkRHJh
d0ltYWdlKHJzdGF0ZSwgZ3N0YXRlLCByZWN0LCBpbWFnZSk7CisgICAgcmV0dXJuIGtDR0Vycm9y
U3VjY2VzczsKK30KKworR3JhcGhpY3NDb250ZXh0IERyYXdHbHlwaHNSZWNvcmRlcjo6Y3JlYXRl
SW50ZXJuYWxDb250ZXh0KCkKK3sKKyAgICBhdXRvIGNvbnRleHREZWxlZ2F0ZSA9IGFkb3B0Q0Yo
Q0dDb250ZXh0RGVsZWdhdGVDcmVhdGUodGhpcykpOworICAgIENHQ29udGV4dERlbGVnYXRlU2V0
Q2FsbGJhY2soY29udGV4dERlbGVnYXRlLmdldCgpLCBkZUJlZ2luTGF5ZXIsIHJlaW50ZXJwcmV0
X2Nhc3Q8Q0dDb250ZXh0RGVsZWdhdGVDYWxsYmFjaz4oJmJlZ2luTGF5ZXIpKTsKKyAgICBDR0Nv
bnRleHREZWxlZ2F0ZVNldENhbGxiYWNrKGNvbnRleHREZWxlZ2F0ZS5nZXQoKSwgZGVFbmRMYXll
ciwgcmVpbnRlcnByZXRfY2FzdDxDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrPigmZW5kTGF5ZXIp
KTsKKyAgICBDR0NvbnRleHREZWxlZ2F0ZVNldENhbGxiYWNrKGNvbnRleHREZWxlZ2F0ZS5nZXQo
KSwgZGVEcmF3R2x5cGhzLCByZWludGVycHJldF9jYXN0PENHQ29udGV4dERlbGVnYXRlQ2FsbGJh
Y2s+KCZXZWJDb3JlOjpEaXNwbGF5TGlzdDo6ZHJhd0dseXBocykpOworICAgIENHQ29udGV4dERl
bGVnYXRlU2V0Q2FsbGJhY2soY29udGV4dERlbGVnYXRlLmdldCgpLCBkZURyYXdJbWFnZSwgcmVp
bnRlcnByZXRfY2FzdDxDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrPigmZHJhd0ltYWdlKSk7Cisg
ICAgYXV0byBjb250ZXh0ID0gYWRvcHRDRihDR0NvbnRleHRDcmVhdGVXaXRoRGVsZWdhdGUoY29u
dGV4dERlbGVnYXRlLmdldCgpLCBrQ0dDb250ZXh0VHlwZVVua25vd24sIG51bGxwdHIsIG51bGxw
dHIpKTsKKyAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0KGNvbnRleHQuZ2V0KCkpOworfQorCitE
cmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdHbHlwaHNSZWNvcmRlcihSZWNvcmRlciYgb3duZXIpCisg
ICAgOiBtX293bmVyKG93bmVyKQorICAgICwgbV9pbnRlcm5hbENvbnRleHQoY3JlYXRlSW50ZXJu
YWxDb250ZXh0KCkpCit7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpwcmVwYXJlSW50
ZXJuYWxDb250ZXh0KGNvbnN0IEZvbnQmIGZvbnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGlu
Z01vZGUpCit7CisgICAgQVNTRVJUKENHQWZmaW5lVHJhbnNmb3JtSXNJZGVudGl0eShDVEZvbnRH
ZXRNYXRyaXgoZm9udC5wbGF0Zm9ybURhdGEoKS5jdEZvbnQoKSkpKTsKKworICAgIGF1dG8mIHN0
YXRlID0gbV9vd25lci5jdXJyZW50U3RhdGUoKS5zdGF0ZUNoYW5nZS5tX3N0YXRlOworCisgICAg
bV9vcmlnaW5hbEZpbGxDb2xvciA9IHN0YXRlLmZpbGxDb2xvcjsKKyAgICBtX29yaWdpbmFsRmls
bEdyYWRpZW50ID0gc3RhdGUuZmlsbEdyYWRpZW50OworICAgIG1fb3JpZ2luYWxGaWxsUGF0dGVy
biA9IHN0YXRlLmZpbGxQYXR0ZXJuOworCisgICAgbV9vcmlnaW5hbFN0cm9rZUNvbG9yID0gc3Rh
dGUuc3Ryb2tlQ29sb3I7CisgICAgbV9vcmlnaW5hbFN0cm9rZUdyYWRpZW50ID0gc3RhdGUuc3Ry
b2tlR3JhZGllbnQ7CisgICAgbV9vcmlnaW5hbFN0cm9rZVBhdHRlcm4gPSBzdGF0ZS5zdHJva2VQ
YXR0ZXJuOworCisgICAgbV9jdXJyZW50RmlsbENvbG9yID0gbV9vcmlnaW5hbEZpbGxDb2xvcjsK
KyAgICBtX2N1cnJlbnRTdHJva2VDb2xvciA9IG1fb3JpZ2luYWxTdHJva2VDb2xvcjsKKworICAg
IGlmIChtX29yaWdpbmFsRmlsbENvbG9yLmlzVmFsaWQoKSkKKyAgICAgICAgbV9pbnRlcm5hbENv
bnRleHQuc2V0RmlsbENvbG9yKG1fb3JpZ2luYWxGaWxsQ29sb3IpOworICAgIGVsc2UgaWYgKG1f
b3JpZ2luYWxGaWxsR3JhZGllbnQpCisgICAgICAgIG1faW50ZXJuYWxDb250ZXh0LnNldEZpbGxH
cmFkaWVudCgqbV9vcmlnaW5hbEZpbGxHcmFkaWVudCk7CisgICAgZWxzZSB7CisgICAgICAgIEFT
U0VSVChtX29yaWdpbmFsRmlsbFBhdHRlcm4pOworICAgICAgICBpZiAobV9vcmlnaW5hbEZpbGxQ
YXR0ZXJuKQorICAgICAgICAgICAgbV9pbnRlcm5hbENvbnRleHQuc2V0RmlsbFBhdHRlcm4oKm1f
b3JpZ2luYWxGaWxsUGF0dGVybik7CisgICAgfQorCisgICAgaWYgKG1fb3JpZ2luYWxTdHJva2VD
b2xvci5pc1ZhbGlkKCkpCisgICAgICAgIG1faW50ZXJuYWxDb250ZXh0LnNldFN0cm9rZUNvbG9y
KG1fb3JpZ2luYWxTdHJva2VDb2xvcik7CisgICAgZWxzZSBpZiAobV9vcmlnaW5hbFN0cm9rZUdy
YWRpZW50KQorICAgICAgICBtX2ludGVybmFsQ29udGV4dC5zZXRTdHJva2VHcmFkaWVudCgqbV9v
cmlnaW5hbFN0cm9rZUdyYWRpZW50KTsKKyAgICBlbHNlIHsKKyAgICAgICAgQVNTRVJUKG1fb3Jp
Z2luYWxTdHJva2VQYXR0ZXJuKTsKKyAgICAgICAgaWYgKG1fb3JpZ2luYWxTdHJva2VQYXR0ZXJu
KQorICAgICAgICAgICAgbV9pbnRlcm5hbENvbnRleHQuc2V0U3Ryb2tlUGF0dGVybigqbV9vcmln
aW5hbFN0cm9rZVBhdHRlcm4pOworICAgIH0KKworICAgIG1fb3JpZ2luYWxDVE0gPSBtX293bmVy
LmN1cnJlbnRTdGF0ZSgpLmN0bTsgLy8gRklYTUU6IERlYWwgd2l0aCBkZXZpY2Ugc2NhbGUuCisg
ICAgbV9jdXJyZW50Q1RNID0gbV9vcmlnaW5hbENUTTsKKyAgICBtX2ludGVybmFsQ29udGV4dC5z
ZXRDVE0obV9vcmlnaW5hbENUTSk7CisKKyAgICBtX29yaWdpbmFsVGV4dE1hdHJpeCA9IGNvbXB1
dGVPdmVyYWxsVGV4dE1hdHJpeChmb250KTsKKyAgICBpZiAoZm9udC5wbGF0Zm9ybURhdGEoKS5v
cmllbnRhdGlvbigpID09IEZvbnRPcmllbnRhdGlvbjo6VmVydGljYWwpCisgICAgICAgIG1fb3Jp
Z2luYWxUZXh0TWF0cml4ID0gY29tcHV0ZVZlcnRpY2FsVGV4dE1hdHJpeChmb250LCBtX29yaWdp
bmFsVGV4dE1hdHJpeCk7CisKKyAgICBtX2ludGVybmFsQ29udGV4dC5zZXRTaGFkb3dzSWdub3Jl
VHJhbnNmb3JtcyhzdGF0ZS5zaGFkb3dzSWdub3JlVHJhbnNmb3Jtcyk7CisgICAgaWYgKHN0YXRl
LnNoYWRvd3NVc2VMZWdhY3lSYWRpdXMpCisgICAgICAgIG1faW50ZXJuYWxDb250ZXh0LnNldExl
Z2FjeVNoYWRvdyhzdGF0ZS5zaGFkb3dPZmZzZXQsIHN0YXRlLnNoYWRvd0JsdXIsIHN0YXRlLnNo
YWRvd0NvbG9yKTsKKyAgICBlbHNlCisgICAgICAgIG1faW50ZXJuYWxDb250ZXh0LnNldFNoYWRv
dyhzdGF0ZS5zaGFkb3dPZmZzZXQsIHN0YXRlLnNoYWRvd0JsdXIsIHN0YXRlLnNoYWRvd0NvbG9y
KTsKKworICAgIG1faW50ZXJuYWxDb250ZXh0LnNldFRleHREcmF3aW5nTW9kZShzdGF0ZS50ZXh0
RHJhd2luZ01vZGUpOworCisgICAgbV9vcmlnaW5hbFNoYWRvd09mZnNldCA9IHN0YXRlLnNoYWRv
d09mZnNldDsKKyAgICBtX29yaWdpbmFsU2hhZG93Qmx1ciA9IHN0YXRlLnNoYWRvd0JsdXI7Cisg
ICAgbV9vcmlnaW5hbFNoYWRvd0NvbG9yID0gc3RhdGUuc2hhZG93Q29sb3I7CisgICAgbV9vcmln
aW5hbFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zID0gc3RhdGUuc2hhZG93c0lnbm9yZVRyYW5zZm9y
bXM7CisKKyAgICBtX2N1cnJlbnRTaGFkb3dPZmZzZXQgPSBtX29yaWdpbmFsU2hhZG93T2Zmc2V0
OworICAgIG1fY3VycmVudFNoYWRvd0JsdXIgPSBtX29yaWdpbmFsU2hhZG93Qmx1cjsKKyAgICBt
X2N1cnJlbnRTaGFkb3dDb2xvciA9IG1fb3JpZ2luYWxTaGFkb3dDb2xvcjsKKyAgICBtX2N1cnJl
bnRTaGFkb3dzSWdub3JlVHJhbnNmb3JtcyA9IG1fb3JpZ2luYWxTaGFkb3dzSWdub3JlVHJhbnNm
b3JtczsKKworICAgIG1fY3VycmVudEZvbnQgPSAmZm9udDsKKyAgICBtX3Ntb290aGluZ01vZGUg
PSBzbW9vdGhpbmdNb2RlOworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6Y29uY2x1ZGVJ
bnRlcm5hbENvbnRleHQoKQoreworICAgIHVwZGF0ZUZpbGxDb2xvcihtX29yaWdpbmFsRmlsbENv
bG9yLCBtX29yaWdpbmFsRmlsbEdyYWRpZW50LmdldCgpLCBtX29yaWdpbmFsRmlsbFBhdHRlcm4u
Z2V0KCkpOworICAgIHVwZGF0ZVN0cm9rZUNvbG9yKG1fb3JpZ2luYWxTdHJva2VDb2xvciwgbV9v
cmlnaW5hbFN0cm9rZUdyYWRpZW50LmdldCgpLCBtX29yaWdpbmFsU3Ryb2tlUGF0dGVybi5nZXQo
KSk7CisgICAgdXBkYXRlQ1RNKG1fb3JpZ2luYWxDVE0pOworICAgIHVwZGF0ZVNoYWRvdyhtX29y
aWdpbmFsU2hhZG93T2Zmc2V0LCBtX29yaWdpbmFsU2hhZG93Qmx1ciwgbV9vcmlnaW5hbFNoYWRv
d0NvbG9yLCBtX29yaWdpbmFsU2hhZG93c0lnbm9yZVRyYW5zZm9ybXMgPyBTaGFkb3dzSWdub3Jl
VHJhbnNmb3Jtczo6WWVzIDogU2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6Ok5vKTsKK30KKwordm9p
ZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnVwZGF0ZUNUTShBZmZpbmVUcmFuc2Zvcm0gY3RtKQorewor
ICAgIGlmIChjdG0gPT0gbV9jdXJyZW50Q1RNKQorICAgICAgICByZXR1cm47CisKKyAgICBtX293
bmVyLnNldENUTShjdG0pOworICAgIG1fY3VycmVudENUTSA9IGN0bTsKK30KKwordm9pZCBEcmF3
R2x5cGhzUmVjb3JkZXI6OnVwZGF0ZUZpbGxDb2xvcihjb25zdCBDb2xvciYgbmV3Q29sb3IsIEdy
YWRpZW50KiBuZXdHcmFkaWVudCwgUGF0dGVybiogbmV3UGF0dGVybikKK3sKKyAgICAvLyBUaGlz
IGNoZWNrIGxvb2tzIHdyb25nIGJ1dCBpdCBhY3R1YWxseSBpc24ndCwgZm9yIG91ciBsaW1pdGVk
IHVzZS4KKyAgICAvLyBDVCB3aWxsIG9ubHkgZXZlciBzZXQgdGhpcyB0byBhIHNvbGlkIGNvbG9y
LCB3aGljaCB0aGlzIGlzIHRoZSBjb3JyZWN0IGNoZWNrIGZvci4KKyAgICAvLyBJbiBjb25jbHVk
ZUludGVybmFsQ29udGV4dCgpIHdlIHNldCBpdCBiYWNrIHRvIHdoYXQgaXQgd2FzIG9yaWdpbmFs
bHksIHdoaWNoIHRoaXMgY2hlY2sgd29ya3MgY29ycmVjdGx5IGZvciB0b28uCisgICAgaWYgKG5l
d0NvbG9yID09IG1fY3VycmVudEZpbGxDb2xvcikKKyAgICAgICAgcmV0dXJuOworCisgICAgR3Jh
cGhpY3NDb250ZXh0U3RhdGUgbmV3U3RhdGU7CisgICAgbmV3U3RhdGUuZmlsbENvbG9yID0gbmV3
Q29sb3I7CisgICAgaWYgKG5ld0dyYWRpZW50KQorICAgICAgICBuZXdTdGF0ZS5maWxsR3JhZGll
bnQgPSBuZXdHcmFkaWVudDsKKyAgICBpZiAobmV3UGF0dGVybikKKyAgICAgICAgbmV3U3RhdGUu
ZmlsbFBhdHRlcm4gPSBuZXdQYXR0ZXJuOworICAgIG1fb3duZXIudXBkYXRlU3RhdGUobmV3U3Rh
dGUsIHsgR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxDb2xvckNoYW5nZSB9KTsKKyAgICBtX2N1
cnJlbnRGaWxsQ29sb3IgPSBuZXdDb2xvcjsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6
OnVwZGF0ZVN0cm9rZUNvbG9yKGNvbnN0IENvbG9yJiBuZXdDb2xvciwgR3JhZGllbnQqIG5ld0dy
YWRpZW50LCBQYXR0ZXJuKiBuZXdQYXR0ZXJuKQoreworICAgIC8vIFRoaXMgY2hlY2sgbG9va3Mg
d3JvbmcgYnV0IGl0IGFjdHVhbGx5IGlzbid0LCBmb3Igb3VyIGxpbWl0ZWQgdXNlLgorICAgIC8v
IENUIHdpbGwgb25seSBldmVyIHNldCB0aGlzIHRvIGEgc29saWQgY29sb3IsIHdoaWNoIHRoaXMg
aXMgdGhlIGNvcnJlY3QgY2hlY2sgZm9yLgorICAgIC8vIEluIGNvbmNsdWRlSW50ZXJuYWxDb250
ZXh0KCkgd2Ugc2V0IGl0IGJhY2sgdG8gd2hhdCBpdCB3YXMgb3JpZ2luYWxseSwgd2hpY2ggdGhp
cyBjaGVjayB3b3JrcyBjb3JyZWN0bHkgZm9yIHRvby4KKyAgICBpZiAobmV3Q29sb3IgPT0gbV9j
dXJyZW50U3Ryb2tlQ29sb3IpCisgICAgICAgIHJldHVybjsKKworICAgIEdyYXBoaWNzQ29udGV4
dFN0YXRlIG5ld1N0YXRlOworICAgIG5ld1N0YXRlLnN0cm9rZUNvbG9yID0gbmV3Q29sb3I7Cisg
ICAgaWYgKG5ld0dyYWRpZW50KQorICAgICAgICBuZXdTdGF0ZS5zdHJva2VHcmFkaWVudCA9IG5l
d0dyYWRpZW50OworICAgIGlmIChuZXdQYXR0ZXJuKQorICAgICAgICBuZXdTdGF0ZS5zdHJva2VQ
YXR0ZXJuID0gbmV3UGF0dGVybjsKKyAgICBtX293bmVyLnVwZGF0ZVN0YXRlKG5ld1N0YXRlLCB7
IEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VDb2xvckNoYW5nZSB9KTsKKyAgICBtX2N1cnJl
bnRTdHJva2VDb2xvciA9IG5ld0NvbG9yOworfQorCitzdGF0aWMgYm9vbCBzaGFkb3dJc0NsZWFy
ZWQoY29uc3QgRmxvYXRTaXplJiBzaGFkb3dPZmZzZXQsIGZsb2F0IHNoYWRvd0JsdXIpCit7Cisg
ICAgcmV0dXJuIHNoYWRvd09mZnNldCA9PSBGbG9hdFNpemUoKSAmJiAhc2hhZG93Qmx1cjsKK30K
Kwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnVwZGF0ZVNoYWRvdyhjb25zdCBGbG9hdFNpemUm
IHNoYWRvd09mZnNldCwgZmxvYXQgc2hhZG93Qmx1ciwgY29uc3QgQ29sb3ImIHNoYWRvd0NvbG9y
LCBTaGFkb3dzSWdub3JlVHJhbnNmb3JtcyBzaGFkb3dzSWdub3JlVHJhbnNmb3JtcykKK3sKKyAg
ICAvLyBXZSBkb24ndCBuZWVkIHRvIGNvbnNpZGVyIHNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zIGlm
IG5vYm9keSBoYXMgYW55IHNoYWRvd3MuCisgICAgaWYgKHNoYWRvd0lzQ2xlYXJlZChzaGFkb3dP
ZmZzZXQsIHNoYWRvd0JsdXIpICYmIHNoYWRvd0lzQ2xlYXJlZChtX2N1cnJlbnRTaGFkb3dPZmZz
ZXQsIG1fY3VycmVudFNoYWRvd0JsdXIpKQorICAgICAgICByZXR1cm47CisKKyAgICBHcmFwaGlj
c0NvbnRleHRTdGF0ZSBuZXdTdGF0ZTsKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVD
aGFuZ2VGbGFncyBzdGF0ZUNoYW5nZUZsYWdzOworCisgICAgaWYgKHNoYWRvd09mZnNldCAhPSBt
X2N1cnJlbnRTaGFkb3dPZmZzZXQgfHwgc2hhZG93Qmx1ciAhPSBtX2N1cnJlbnRTaGFkb3dCbHVy
IHx8IHNoYWRvd0NvbG9yICE9IG1fY3VycmVudFNoYWRvd0NvbG9yKSB7CisgICAgICAgIG5ld1N0
YXRlLnNoYWRvd09mZnNldCA9IHNoYWRvd09mZnNldDsKKyAgICAgICAgbmV3U3RhdGUuc2hhZG93
Qmx1ciA9IHNoYWRvd0JsdXI7CisgICAgICAgIG5ld1N0YXRlLnNoYWRvd0NvbG9yID0gc2hhZG93
Q29sb3I7CisgICAgICAgIHN0YXRlQ2hhbmdlRmxhZ3MuYWRkKEdyYXBoaWNzQ29udGV4dFN0YXRl
OjpTaGFkb3dDaGFuZ2UpOworICAgIH0KKyAgICBpZiAoc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMg
IT0gU2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6OlVuc3BlY2lmaWVkICYmIChzaGFkb3dzSWdub3Jl
VHJhbnNmb3JtcyA9PSBTaGFkb3dzSWdub3JlVHJhbnNmb3Jtczo6WWVzKSAhPSBtX2N1cnJlbnRT
aGFkb3dzSWdub3JlVHJhbnNmb3JtcykgeworICAgICAgICBuZXdTdGF0ZS5zaGFkb3dzSWdub3Jl
VHJhbnNmb3JtcyA9IChzaGFkb3dzSWdub3JlVHJhbnNmb3JtcyA9PSBTaGFkb3dzSWdub3JlVHJh
bnNmb3Jtczo6WWVzKTsKKyAgICAgICAgc3RhdGVDaGFuZ2VGbGFncy5hZGQoR3JhcGhpY3NDb250
ZXh0U3RhdGU6OlNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zQ2hhbmdlKTsKKyAgICB9CisgICAgaWYg
KHN0YXRlQ2hhbmdlRmxhZ3MuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisgICAgbV9vd25l
ci51cGRhdGVTdGF0ZShuZXdTdGF0ZSwgc3RhdGVDaGFuZ2VGbGFncyk7CisKKyAgICBtX2N1cnJl
bnRTaGFkb3dPZmZzZXQgPSBzaGFkb3dPZmZzZXQ7CisgICAgbV9jdXJyZW50U2hhZG93Qmx1ciA9
IHNoYWRvd0JsdXI7CisgICAgbV9jdXJyZW50U2hhZG93Q29sb3IgPSBzaGFkb3dDb2xvcjsKKyAg
ICBtX2N1cnJlbnRTaGFkb3dzSWdub3JlVHJhbnNmb3JtcyA9IChzaGFkb3dzSWdub3JlVHJhbnNm
b3JtcyA9PSBTaGFkb3dzSWdub3JlVHJhbnNmb3Jtczo6WWVzKTsKK30KKwordm9pZCBEcmF3R2x5
cGhzUmVjb3JkZXI6OnVwZGF0ZVNoYWRvdyhDR1N0eWxlUmVmIHN0eWxlKQoreworICAgIGlmIChD
R1N0eWxlR2V0VHlwZShzdHlsZSkgIT0ga0NHU3R5bGVTaGFkb3cpIHsKKyAgICAgICAgLy8gRklY
TUU6IFN1cHBvcnQgbW9yZSBraW5kcyBvZiBDR1N0eWxlcy4KKyAgICAgICAgdXBkYXRlU2hhZG93
KHswLCAwfSwgMCwgQ29sb3IoKSwgU2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6OlVuc3BlY2lmaWVk
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnN0IGF1dG8mIHNoYWRvd1N0eWxl
ID0gKnN0YXRpY19jYXN0PGNvbnN0IENHU2hhZG93U3R5bGUqPihDR1N0eWxlR2V0RGF0YShzdHls
ZSkpOworICAgIGF1dG8gcmFkID0gZGVnMnJhZChzaGFkb3dTdHlsZS5hemltdXRoIC0gMTgwKTsK
KyAgICBhdXRvIHNoYWRvd09mZnNldCA9IEZsb2F0U2l6ZShzdGQ6OmNvcyhyYWQpLCBzdGQ6OnNp
bihyYWQpKSAqIHNoYWRvd1N0eWxlLmhlaWdodDsKKyAgICB1cGRhdGVTaGFkb3coc2hhZG93T2Zm
c2V0LCBzaGFkb3dTdHlsZS5yYWRpdXMsIENHU3R5bGVHZXRDb2xvcihzdHlsZSksIFNoYWRvd3NJ
Z25vcmVUcmFuc2Zvcm1zOjpZZXMpOworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6cmVj
b3JkQmVnaW5MYXllcihDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiBnc3RhdGUsIENH
UmVjdCkKK3sKKyAgICB1cGRhdGVDVE0oKkNHR1N0YXRlR2V0Q1RNKGdzdGF0ZSkpOworICAgIGF1
dG8gYWxwaGEgPSBDR0dTdGF0ZUdldEFscGhhKGdzdGF0ZSk7CisgICAgbV9vd25lci5iZWdpblRy
YW5zcGFyZW5jeUxheWVyKGFscGhhKTsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnJl
Y29yZEVuZExheWVyKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmIGdzdGF0ZSkKK3sK
KyAgICB1cGRhdGVDVE0oKkNHR1N0YXRlR2V0Q1RNKGdzdGF0ZSkpOworICAgIG1fb3duZXIuZW5k
VHJhbnNwYXJlbmN5TGF5ZXIoKTsKK30KKworc3RhdGljIFZlY3RvcjxDR1NpemU+IGNvbXB1dGVB
ZHZhbmNlc0Zyb21Qb3NpdGlvbnMoY29uc3QgQ0dQb2ludCBwb3NpdGlvbnNbXSwgc2l6ZV90IGNv
dW50LCBjb25zdCBDR0FmZmluZVRyYW5zZm9ybSYgdGV4dE1hdHJpeCkKK3sKKyAgICBWZWN0b3I8
Q0dTaXplPiByZXN1bHQ7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudCAtIDE7ICsr
aSkgeworICAgICAgICBhdXRvIG5leHRQb3NpdGlvbiA9IHBvc2l0aW9uc1tpICsgMV07CisgICAg
ICAgIGF1dG8gY3VycmVudFBvc2l0aW9uID0gcG9zaXRpb25zW2ldOworICAgICAgICBhdXRvIGFk
dmFuY2UgPSBDR1NpemVNYWtlKG5leHRQb3NpdGlvbi54IC0gY3VycmVudFBvc2l0aW9uLngsIG5l
eHRQb3NpdGlvbi55IC0gY3VycmVudFBvc2l0aW9uLnkpOworICAgICAgICByZXN1bHQuYXBwZW5k
KENHU2l6ZUFwcGx5QWZmaW5lVHJhbnNmb3JtKGFkdmFuY2UsIHRleHRNYXRyaXgpKTsKKyAgICB9
CisgICAgcmVzdWx0LmNvbnN0cnVjdEFuZEFwcGVuZChDR1NpemVNYWtlKDAsIDApKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6cmVjb3JkRHJhd0ds
eXBocyhDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiBnc3RhdGUsIGNvbnN0IENHQWZm
aW5lVHJhbnNmb3JtKiwgY29uc3QgQ0dHbHlwaCBnbHlwaHNbXSwgY29uc3QgQ0dQb2ludCBwb3Np
dGlvbnNbXSwgc2l6ZV90IGNvdW50KQoreworICAgIGlmICghY291bnQpCisgICAgICAgIHJldHVy
bjsKKworICAgIENHRm9udFJlZiB1c2VkRm9udCA9IENHR1N0YXRlR2V0Rm9udChnc3RhdGUpOwor
ICAgIGlmICh1c2VkRm9udCAhPSBhZG9wdENGKENURm9udENvcHlHcmFwaGljc0ZvbnQobV9jdXJy
ZW50Rm9udC0+cGxhdGZvcm1EYXRhKCkuY3RGb250KCksIG51bGxwdHIpKS5nZXQoKSkKKyAgICAg
ICAgcmV0dXJuOworCisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICBhdXRvIHRleHRQb3NpdGlvbiA9
IENHQ29udGV4dEdldFRleHRQb3NpdGlvbihtX2ludGVybmFsQ29udGV4dC5wbGF0Zm9ybUNvbnRl
eHQoKSk7CisgICAgQVNTRVJUKCF0ZXh0UG9zaXRpb24ueCk7CisgICAgQVNTRVJUKCF0ZXh0UG9z
aXRpb24ueSk7CisjZW5kaWYKKworICAgIHVwZGF0ZUNUTSgqQ0dHU3RhdGVHZXRDVE0oZ3N0YXRl
KSk7CisKKyAgICAvLyBXZSB3YW50IHRoZSBHUFUgcHJvY2VzcydzIENUTSBhbmQgdGV4dCBtYXRy
aXggdG8gbWF0Y2ggdGhlIGN1cnJlbnQgQ1RNIGFuZCB0ZXh0IG1hdHJpeC4KKyAgICAvLyBUaGUg
Y3VycmVudCB0ZXh0IG1hdHJpeCBpcyBhIGNvbmNhdGVuYXRpb24gb2Ygd2hhdGV2ZXIgV2ViS2l0
IHNldHMgaXQgdG8gYW5kIHdoYXRldmVyCisgICAgLy8gQ29yZSBUZXh0IGFwcGVuZHMgdG8gaXQu
IFNvLCByaWdodCBub3cgd2UgaGF2ZQorICAgIC8vIENUTSAqIG1fb3JpZ2luYWxUZXh0TWF0cml4
ICogQ29yZSBUZXh0J3MgdGV4dCBtYXRyaXguCisgICAgLy8gSG93ZXZlciwgQ0dDb250ZXh0R2V0
VGV4dE1hdHJpeCgpIGp1c3QgdGVsbHMgdXMgd2hhdCB0aGUgd2hvbGUgdGV4dCBtYXRyaXggaXMs
IHNvCisgICAgLy8gbV9vcmlnaW5hbFRleHRNYXRyaXggKiBDb3JlIFRleHQncyB0ZXh0IG1hdHJp
eCA9IGN1cnJlbnRUZXh0TWF0cml4LgorICAgIC8vIFRoZSBvbmx5IHdheSB3ZSBjYW4gZW11bGF0
ZSBDb3JlIFRleHQncyB0ZXh0IG1hdHJpeCBpcyBieSBtb2RpZnlpbmcgdGhlIENUTSBoZXJlLgor
ICAgIC8vIFNvLCBpZiB3ZSBkbyB0aGF0LCB0aGUgR1BVIHByb2Nlc3Mgd2lsbCBoYXZlCisgICAg
Ly8gQ1RNICogWCAqIG1fb3JpZ2luYWxUZXh0TWF0cml4CisgICAgLy8gSWYgeW91IHNldCB0aGVz
ZSB0d28gZXF1YWwgdG8gZWFjaCBvdGhlciwgYW5kIHNvbHZlIGZvciBYLCB5b3UgZ2V0CisgICAg
Ly8gQ1RNICogY3VycmVudFRleHRNYXRyaXggPSBDVE0gKiBYICogbV9vcmlnaW5hbFRleHRNYXRy
aXgKKyAgICAvLyBjdXJyZW50VGV4dE1hdHJpeCAqIGludmVyc2UobV9vcmlnaW5hbFRleHRNYXRy
aXgpID0gWAorICAgIEFmZmluZVRyYW5zZm9ybSBjdXJyZW50VGV4dE1hdHJpeCA9IENHQ29udGV4
dEdldFRleHRNYXRyaXgobV9pbnRlcm5hbENvbnRleHQucGxhdGZvcm1Db250ZXh0KCkpOworICAg
IEFmZmluZVRyYW5zZm9ybSBjdG1GaXh1cDsKKyAgICBpZiAoYXV0byBpbnZlcnRlZE9yaWdpbmFs
VGV4dE1hdHJpeCA9IG1fb3JpZ2luYWxUZXh0TWF0cml4LmludmVyc2UoKSkKKyAgICAgICAgY3Rt
Rml4dXAgPSBjdXJyZW50VGV4dE1hdHJpeCAqIGludmVydGVkT3JpZ2luYWxUZXh0TWF0cml4LnZh
bHVlKCk7CisgICAgQWZmaW5lVHJhbnNmb3JtIGludmVyc2VDVE1GaXh1cDsKKyAgICBpZiAoYXV0
byBpbnZlcnNlID0gY3RtRml4dXAuaW52ZXJzZSgpKQorICAgICAgICBpbnZlcnNlQ1RNRml4dXAg
PSBpbnZlcnNlLnZhbHVlKCk7CisgICAgZWxzZQorICAgICAgICBjdG1GaXh1cCA9IEFmZmluZVRy
YW5zZm9ybSgpOworICAgIG1fb3duZXIuY29uY2F0Q1RNKGN0bUZpeHVwKTsKKworICAgIHVwZGF0
ZUZpbGxDb2xvcihDR0dTdGF0ZUdldEZpbGxDb2xvcihnc3RhdGUpKTsKKyAgICB1cGRhdGVTdHJv
a2VDb2xvcihDR0dTdGF0ZUdldFN0cm9rZUNvbG9yKGdzdGF0ZSkpOworICAgIHVwZGF0ZVNoYWRv
dyhDR0dTdGF0ZUdldFN0eWxlKGdzdGF0ZSkpOworCisgICAgbV9vd25lci5hcHBlbmRJdGVtQW5k
VXBkYXRlRXh0ZW50KERyYXdHbHlwaHM6OmNyZWF0ZSgqbV9jdXJyZW50Rm9udCwgZ2x5cGhzLCBj
b21wdXRlQWR2YW5jZXNGcm9tUG9zaXRpb25zKHBvc2l0aW9ucywgY291bnQsIGN1cnJlbnRUZXh0
TWF0cml4KS5kYXRhKCksIGNvdW50LCBjdXJyZW50VGV4dE1hdHJpeC5tYXBQb2ludChwb3NpdGlv
bnNbMF0pLCBtX3Ntb290aGluZ01vZGUpKTsKKworICAgIG1fb3duZXIuY29uY2F0Q1RNKGludmVy
c2VDVE1GaXh1cCk7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpyZWNvcmREcmF3SW1h
Z2UoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYgZ3N0YXRlLCBDR1JlY3QgcmVjdCwg
Q0dJbWFnZVJlZiBjZ0ltYWdlKQoreworICAgIHVwZGF0ZUNUTSgqQ0dHU3RhdGVHZXRDVE0oZ3N0
YXRlKSk7CisgICAgdXBkYXRlU2hhZG93KENHR1N0YXRlR2V0U3R5bGUoZ3N0YXRlKSk7CisKKyAg
ICAvLyBDb3JlIEdyYXBoaWNzIGFzc3VtZXMgYSAieSB1cCIgY29vcmRpbmF0ZSBzeXN0ZW0sIGJ1
dCBpbiBXZWJLaXQsIHdlIHVzZSBhICJ5LWRvd24iIGNvb3JkaW5hdGUgc3lzdGVtLgorICAgIC8v
IFRoaXMgbWVhbnMgdGhhdCBXZWJLaXQncyBkcmF3aW5nIHJvdXRpbmVzIChHcmFwaGljc0NvbnRl
eHQ6OmRyYXdJbWFnZSgpKSBpbnRlbnRpb25hbGx5IGRyYXcgaW1hZ2VzIHVwc2lkZS1kb3duIGZy
b20gQ29yZSBHcmFwaGljcydzIHBvaW50IG9mIHZpZXcuCisgICAgLy8gKFRoZXJlJ3MgYSB5LWZs
aXAgaW5zaWRlIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFn
ZSgpLikKKyAgICAvLyBUaGUgcmVjdCBoYXMgdGhlIHJpZ2h0IGJvdW5kcywgYnV0IHdlIG5lZWQg
dG8gdHJhbnNmb3JtIGZyb20gQ0cncyBjb29yZGluYXRlIHN5c3RlbSB0byBXZWJLaXQncyBieSBw
ZXJmb3JtaW5nIG91ciBvd24geS1mbGlwIHNvIGltYWdlcyBhcmUgZHJhd24gdGhlIHJpZ2h0LXNp
ZGUtdXAuCisgICAgLy8gV2UgZG8gdGhpcyBhdCB0aGUgYm91bmRhcnkgYmV0d2VlbiB0aGUgdHdv
IEFQSXMsIHdoaWNoIGlzIHJpZ2h0IGhlcmUuCisgICAgbV9vd25lci50cmFuc2xhdGUoMCwgcmVj
dC5zaXplLmhlaWdodCArIDIgKiByZWN0Lm9yaWdpbi55KTsKKyAgICBtX293bmVyLnNjYWxlKEZs
b2F0U2l6ZSgxLCAtMSkpOworCisgICAgYXV0byBpbWFnZSA9IEJpdG1hcEltYWdlOjpjcmVhdGUo
Y2dJbWFnZSk7CisgICAgbV9vd25lci5hcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KERyYXdJbWFn
ZTo6Y3JlYXRlKGltYWdlLCByZWN0LCB7eyB9LCBpbWFnZS0+c2l6ZSgpfSwgeyBJbWFnZU9yaWVu
dGF0aW9uOjpPcmlnaW5Ub3BMZWZ0IH0pKTsKKworICAgIC8vIFVuZG8gdGhlIGFib3ZlIHktZmxp
cCB0byByZXN0b3JlIHRoZSBjb250ZXh0LgorICAgIG1fb3duZXIuc2NhbGUoRmxvYXRTaXplKDEs
IC0xKSk7CisgICAgbV9vd25lci50cmFuc2xhdGUoMCwgLShyZWN0LnNpemUuaGVpZ2h0ICsgMiAq
IHJlY3Qub3JpZ2luLnkpKTsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OmRyYXdHbHlw
aHMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZmZXImIGdseXBoQnVmZmVyLCB1bnNp
Z25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmIHN0YXJ0UG9p
bnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCit7CisgICAgcHJlcGFyZUludGVy
bmFsQ29udGV4dChmb250LCBzbW9vdGhpbmdNb2RlKTsKKyAgICBGb250Q2FzY2FkZTo6ZHJhd0ds
eXBocyhtX2ludGVybmFsQ29udGV4dCwgZm9udCwgZ2x5cGhCdWZmZXIsIGZyb20sIG51bUdseXBo
cywgc3RhcnRQb2ludCwgc21vb3RoaW5nTW9kZSk7CisgICAgY29uY2x1ZGVJbnRlcm5hbENvbnRl
eHQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgRGlzcGxheUxpc3QKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJh
d0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzYWMzMjRiN2IwMGE5ZTE2
YTU2YWQ2NzBjZTA0Y2ZhNzdmYzlmYTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVj
b3JkZXJIYXJmQnV6ei5jcHAKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJE
aXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIgorCisjaW5jbHVkZSAiRGlzcGxheUxpc3RJ
dGVtcy5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0UmVjb3JkZXIuaCIKKyNpbmNsdWRlICJGbG9h
dFBvaW50LmgiCisjaW5jbHVkZSAiRm9udC5oIgorI2luY2x1ZGUgIkdseXBoQnVmZmVyLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKKworRHJhd0ds
eXBoc1JlY29yZGVyOjpEcmF3R2x5cGhzUmVjb3JkZXIoUmVjb3JkZXImIG93bmVyKQorICAgIDog
bV9vd25lcihvd25lcikKK3sKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OmRyYXdHbHlw
aHMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZmZXImIGdseXBoQnVmZmVyLCB1bnNp
Z25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmIHN0YXJ0UG9p
bnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCit7CisgICAgbV9vd25lci5hcHBl
bmRJdGVtQW5kVXBkYXRlRXh0ZW50KERyYXdHbHlwaHM6OmNyZWF0ZShmb250LCBnbHlwaEJ1ZmZl
ci5nbHlwaHMoZnJvbSksIGdseXBoQnVmZmVyLmFkdmFuY2VzKGZyb20pLCBudW1HbHlwaHMsIHN0
YXJ0UG9pbnQsIHNtb290aGluZ01vZGUpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgRGlzcGxheUxp
c3QKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
UmVjb3JkZXIuY3BwCmluZGV4IGY2NmNmMWVjZmIyZjA5ODNhYjRjN2ViYWJkZDEwYTczOTgxNDYy
ZGIuLmYwOTZmMGJkNzA4NjhmMTFmYTg4YzBmNTUwNmRiNzQ1ZDcxMGM4MzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dFJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKQEAgLTQyLDYgKzQyLDcgQEAgUmVjb3Jk
ZXI6OlJlY29yZGVyKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgRGlzcGxheUxpc3QmIGRpc3Bs
YXlMaXN0LCBjb25zdCBHcmEKICAgICA6IEdyYXBoaWNzQ29udGV4dEltcGwoY29udGV4dCwgaW5p
dGlhbENsaXAsIEFmZmluZVRyYW5zZm9ybSgpKQogICAgICwgbV9kaXNwbGF5TGlzdChkaXNwbGF5
TGlzdCkKICAgICAsIG1fZGVsZWdhdGUoZGVsZWdhdGUpCisgICAgLCBtX2RyYXdHbHlwaHNSZWNv
cmRlcigqdGhpcykKIHsKICAgICBMT0dfV0lUSF9TVFJFQU0oRGlzcGxheUxpc3RzLCBzdHJlYW0g
PDwgIlxuUmVjb3JkaW5nIHdpdGggY2xpcCAiIDw8IGluaXRpYWxDbGlwKTsKICAgICBtX3N0YXRl
U3RhY2suYXBwZW5kKHsgc3RhdGUsIGluaXRpYWxDVE0sIGluaXRpYWxDbGlwIH0pOwpAQCAtMTU3
LDcgKzE1OCw3IEBAIHZvaWQgUmVjb3JkZXI6OnNldE1pdGVyTGltaXQoZmxvYXQgbWl0ZXJMaW1p
dCkKIAogdm9pZCBSZWNvcmRlcjo6ZHJhd0dseXBocyhjb25zdCBGb250JiBmb250LCBjb25zdCBH
bHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIG51bUdseXBo
cywgY29uc3QgRmxvYXRQb2ludCYgc3RhcnRQb2ludCwgRm9udFNtb290aGluZ01vZGUgc21vb3Ro
aW5nTW9kZSkKIHsKLSAgICBhcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KERyYXdHbHlwaHM6OmNy
ZWF0ZShmb250LCBnbHlwaEJ1ZmZlci5nbHlwaHMoZnJvbSksIGdseXBoQnVmZmVyLmFkdmFuY2Vz
KGZyb20pLCBudW1HbHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGluZ01vZGUpKTsKKyAgICBtX2Ry
YXdHbHlwaHNSZWNvcmRlci5kcmF3R2x5cGhzKGZvbnQsIGdseXBoQnVmZmVyLCBmcm9tLCBudW1H
bHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGluZ01vZGUpOwogfQogCiBJbWFnZURyYXdSZXN1bHQg
UmVjb3JkZXI6OmRyYXdJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGlu
YXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCkBAIC0yMzcsNiArMjM4LDkgQEAgdm9pZCBSZWNvcmRl
cjo6c2NhbGUoY29uc3QgRmxvYXRTaXplJiBzaXplKQogCiB2b2lkIFJlY29yZGVyOjpjb25jYXRD
VE0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0pCiB7CisgICAgaWYgKHRyYW5zZm9y
bS5pc0lkZW50aXR5KCkpCisgICAgICAgIHJldHVybjsKKwogICAgIGN1cnJlbnRTdGF0ZSgpLmNv
bmNhdENUTSh0cmFuc2Zvcm0pOwogICAgIGFwcGVuZEl0ZW0oQ29uY2F0ZW5hdGVDVE06OmNyZWF0
ZSh0cmFuc2Zvcm0pKTsKIH0KQEAgLTQyMiw3ICs0MjYsMTcgQEAgdm9pZCBSZWNvcmRlcjo6Y2xp
cFRvSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImLCBjb25zdCBGbG9hdFJlY3QmKQogCiB2b2lkIFJl
Y29yZGVyOjpjbGlwVG9EcmF3aW5nQ29tbWFuZHMoY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlv
biwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBGdW5jdGlvbjx2b2lkKEdyYXBoaWNzQ29udGV4dCYp
PiYmIGRyYXdpbmdGdW5jdGlvbikKIHsKLSAgICBhdXRvIHJlY29yZGluZ0NvbnRleHQgPSBtYWtl
VW5pcXVlPERyYXdpbmdDb250ZXh0PihkZXN0aW5hdGlvbi5zaXplKCkpOworICAgIC8vIFRoZSBp
bml0aWFsIENUTSBtYXRjaGVzIEltYWdlQnVmZmVyJ3MgaW5pdGlhbCBDVE0uCisgICAgQWZmaW5l
VHJhbnNmb3JtIHRyYW5zZm9ybSA9IGdldENUTShHcmFwaGljc0NvbnRleHQ6OkRlZmluaXRlbHlJ
bmNsdWRlRGV2aWNlU2NhbGUpOworICAgIEZsb2F0U2l6ZSBzY2FsZUZhY3Rvcih0cmFuc2Zvcm0u
eFNjYWxlKCksIHRyYW5zZm9ybS55U2NhbGUoKSk7CisgICAgYXV0byBzY2FsZWRTaXplID0gZXhw
YW5kZWRJbnRTaXplKGRlc3RpbmF0aW9uLnNpemUoKSAqIHNjYWxlRmFjdG9yKTsKKworICAgIEFm
ZmluZVRyYW5zZm9ybSBpbml0aWFsQ1RNOworICAgIGluaXRpYWxDVE0uc2NhbGUoMSwgLTEpOwor
ICAgIGluaXRpYWxDVE0udHJhbnNsYXRlKDAsIC1zY2FsZWRTaXplLmhlaWdodCgpKTsKKyAgICBp
bml0aWFsQ1RNLnNjYWxlKHNjYWxlZFNpemUgLyBkZXN0aW5hdGlvbi5zaXplKCkpOworCisgICAg
YXV0byByZWNvcmRpbmdDb250ZXh0ID0gbWFrZVVuaXF1ZTxEcmF3aW5nQ29udGV4dD4oZGVzdGlu
YXRpb24uc2l6ZSgpLCBpbml0aWFsQ1RNKTsKICAgICBkcmF3aW5nRnVuY3Rpb24ocmVjb3JkaW5n
Q29udGV4dC0+Y29udGV4dCgpKTsKICAgICBhcHBlbmRJdGVtKENsaXBUb0RyYXdpbmdDb21tYW5k
czo6Y3JlYXRlKGRlc3RpbmF0aW9uLCBjb2xvclNwYWNlLCByZWNvcmRpbmdDb250ZXh0LT50YWtl
RGlzcGxheUxpc3QoKSkpOwogfQpAQCAtNDUxLDEzICs0NjUsNiBAQCB2b2lkIFJlY29yZGVyOjph
cHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KFJlZjxEcmF3aW5nSXRlbT4mJiBpdGVtKQogICAgIHVw
ZGF0ZUl0ZW1FeHRlbnQobmV3SXRlbSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIEl0ZW1UeXBl
PgotSXRlbVR5cGUmIFJlY29yZGVyOjphcHBlbmRJdGVtKFJlZjxJdGVtVHlwZT4mJiBpdGVtKQot
ewotICAgIHdpbGxBcHBlbmRJdGVtKGl0ZW0uZ2V0KCkpOwotICAgIHJldHVybiBkb3duY2FzdDxJ
dGVtVHlwZT4obV9kaXNwbGF5TGlzdC5hcHBlbmQoV1RGTW92ZShpdGVtKSkpOwotfQotCiB2b2lk
IFJlY29yZGVyOjp1cGRhdGVJdGVtRXh0ZW50KERyYXdpbmdJdGVtJiBpdGVtKSBjb25zdAogewog
ICAgIGlmIChPcHRpb25hbDxGbG9hdFJlY3Q+IHJlY3QgPSBpdGVtLmxvY2FsQm91bmRzKGdyYXBo
aWNzQ29udGV4dCgpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCmluZGV4
IDg2OGNlMmE3NDM3Yzc0NDhmODY1ZWU5MDI5MmVlMGIxMzhjNDQ0M2EuLjBjYWNlYTRmZGI5YjM1
YzVkNzI2ODE5YzY2OGM3ZTNhOGFkMzJkOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
UmVjb3JkZXIuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJE
aXNwbGF5TGlzdC5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmgi
CiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0SW1wbC5oIgogI2luY2x1ZGUgIkltYWdlLmgiIC8v
IEZvciBJbWFnZTo6VGlsZVJ1bGUuCiAjaW5jbHVkZSAiVGV4dEZsYWdzLmgiCkBAIC02MSw4ICs2
Miw2IEBAIHB1YmxpYzoKIAogICAgIHNpemVfdCBpdGVtQ291bnQoKSBjb25zdCB7IHJldHVybiBt
X2Rpc3BsYXlMaXN0Lml0ZW1Db3VudCgpOyB9CiAKLSAgICB2b2lkIGFwcGVuZEl0ZW1BbmRVcGRh
dGVFeHRlbnQoUmVmPERyYXdpbmdJdGVtPiYmKTsKLQogICAgIGNsYXNzIERlbGVnYXRlIHsKICAg
ICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfkRlbGVnYXRlKCkgeyB9CkBAIC03MSw2ICs3MCw3
IEBAIHB1YmxpYzoKICAgICB9OwogCiBwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBEcmF3R2x5
cGhzUmVjb3JkZXI7CiAgICAgYm9vbCBoYXNQbGF0Zm9ybUNvbnRleHQoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBmYWxzZTsgfQogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0KiBwbGF0Zm9y
bUNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9CiAKQEAgLTE1MCw2
ICsxNTAsNyBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEl0ZW1UeXBlPgogICAg
IEl0ZW1UeXBlJiBhcHBlbmRJdGVtKFJlZjxJdGVtVHlwZT4mJik7CiAgICAgdm9pZCB3aWxsQXBw
ZW5kSXRlbShjb25zdCBJdGVtJik7CisgICAgdm9pZCBhcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50
KFJlZjxEcmF3aW5nSXRlbT4mJik7CiAKICAgICB2b2lkIGFwcGVuZFN0YXRlQ2hhbmdlSXRlbShj
b25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSYsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpT
dGF0ZUNoYW5nZUZsYWdzKTsKIApAQCAtMTk0LDggKzE5NSwxNyBAQCBwcml2YXRlOgogICAgIERl
bGVnYXRlKiBtX2RlbGVnYXRlOwogCiAgICAgVmVjdG9yPENvbnRleHRTdGF0ZSwgMzI+IG1fc3Rh
dGVTdGFjazsKKworICAgIERyYXdHbHlwaHNSZWNvcmRlciBtX2RyYXdHbHlwaHNSZWNvcmRlcjsK
IH07CiAKK3RlbXBsYXRlPHR5cGVuYW1lIEl0ZW1UeXBlPgorSXRlbVR5cGUmIFJlY29yZGVyOjph
cHBlbmRJdGVtKFJlZjxJdGVtVHlwZT4mJiBpdGVtKQoreworICAgIHdpbGxBcHBlbmRJdGVtKGl0
ZW0uZ2V0KCkpOworICAgIHJldHVybiBkb3duY2FzdDxJdGVtVHlwZT4obV9kaXNwbGF5TGlzdC5h
cHBlbmQoV1RGTW92ZShpdGVtKSkpOworfQorCiB9CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvdGV4dC9jYW52YXMtQ09MUi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC90ZXh0L2NhbnZhcy1DT0xSLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzFjYjE4NzAwZjc2
MGNlNWEwNjE0MGVhNTgzODQ2ZTYwNTkyODM0NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvdGV4dC9jYW52YXMtQ09MUi1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNTQgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK0Bmb250LWZhY2Ugewor
ICAgIGZvbnQtZmFtaWx5OiAiV2ViRm9udCI7CisgICAgc3JjOiB1cmwoInJlc291cmNlcy9BaGVt
LUNPTFIudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOworfQorCitib2R5IHsKKyAgICBwb3NpdGlv
bjogcmVsYXRpdmU7Cit9CisKKyNvbmUgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBs
ZWZ0OiAxMDBweDsKKyAgICB0b3A6IDQwcHg7Cit9CisKKyN0d28geworICAgIHBvc2l0aW9uOiBh
YnNvbHV0ZTsKKyAgICBsZWZ0OiAzMDBweDsKKyAgICB0b3A6IDQwcHg7CisgICAgY29sb3I6IHJn
YigyNTUsIDAsIDI1NSk7Cit9CisKKyN0aHJlZSB7CisgICAgcG9zaXRpb246IGFic29sdXRlOwor
ICAgIGxlZnQ6IDMwMHB4OworICAgIHRvcDogNDBweDsKKyAgICBjb2xvcjogcmdiKDAsIDI1NSwg
MjU1KTsKK30KKworI2ZvdXIgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiA1
MDBweDsKKyAgICB0b3A6IDQwcHg7Cit9CisKK2RpdiB7CisgICAgZm9udDogMjAwcHggIldlYkZv
bnQiOworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiA0MDBweDsKKyAgICB0b3A6
IDQwcHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJvbmUiPkI8L2Rp
dj4KKzxkaXYgaWQ9InR3byI+QjwvZGl2PgorPGRpdiBpZD0idGhyZWUiPiYjeDdFQjU7PC9kaXY+
Cis8ZGl2IGlkPSJmb3VyIj5CPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFzLUNPTFIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
dGV4dC9jYW52YXMtQ09MUi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjMjIyZGI0MjE0NDQyMzgyMzM5MjVi
MTg2NjgwNGQwYjg2NGQzMTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Rl
eHQvY2FudmFzLUNPTFIuaHRtbApAQCAtMCwwICsxLDIzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogIldl
YkZvbnQiOworICAgIHNyYzogdXJsKCJyZXNvdXJjZXMvQWhlbS1DT0xSLnR0ZiIpIGZvcm1hdCgi
dHJ1ZXR5cGUiKTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImNh
bnZhcyIgd2lkdGg9Ijc1MCIgaGVpZ2h0PSIzNTAiIHN0eWxlPSJ3aWR0aDogNzUwcHg7IGhlaWdo
dDsgMzUwcHg7Ij48L2NhbnZhcz4KKzxzY3JpcHQ+CitsZXQgZm9udCA9ICIyMDBweCAnV2ViRm9u
dCciOworZG9jdW1lbnQuZm9udHMubG9hZChmb250KS50aGVuKGZ1bmN0aW9uKCkgeworICAgIGxl
dCBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7CisgICAgbGV0IGNv
bnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICBjb250ZXh0LmZvbnQgPSBmb250
OworICAgIGNvbnRleHQuZmlsbFRleHQoIkJBQiIsIDEwMCwgMjAwKTsKK30pOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvcmVz
b3VyY2VzL0FoZW0tQ09MUi50dGYgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvcmVzb3VyY2VzL0Fo
ZW0tQ09MUi50dGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzIyM2E1NTQzMDY1OTk5Njg1MTE4MGU5OGIxNTQ1NGY3
YzRiMmQ4NgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMjE4MjgKemNtZUhQMzN3RCR3bXd6V2R2
X3AjNVA/Q2hnZEhYNllAR25rVWBQbHM0PG95diYoVGlPUylrTTFyVnxubzlDWEJlCnowUzZ1VFFE
eiltOX1iRVM2YGZINWZwSXx7NUxyVDAjejYtZTJFbFA1KWNhMkA9fUpmI3AzbkVia01+dmp0RXpr
TQp6YTwrVCF5e0FzeVRvUTtWaTU4UFlRO0lLfkpXVXV3bGFSOTsqTVE8Rk1Vdz9tUWpxPXtTSzVX
c3Z2VDU5VTttcykKek5DdGQpTU9gcDk+aDc1YjBtcTIhelVwOCtNclYrbCRndlJSJDxeVTJzfmtn
cE1TeVE1PlZKRHBDfEoyYCUzRXVRCnooZyZiQ1A9Z0dvJDVzRyUySC0oOGJxJnFeOUFYbVNXK0ww
e2FJXy0wY0UjI21NMSF7eWlKNWk1PTl0aXJAZWYwRgp6a3xWKm8oQXdifWB2STFUaE9kWjQ7fCYj
JFRyIVlvPlV0c3hkPWc5NzE2TH1FZ25abHdBK3dLfkZYQXEwPHE5ZUkKekJMJEVvWjVOaTM5YVl6
Zkh2XyZ5ZGtQeVVOMDFuUzRWbkQ2bX1wZnAkckR1b3d+S08lV2pkZWE8QkI5SmcrTF9KCnpDTUVm
cGxZbT4yMFRKPVZDe1R6aTY/ZihAbTI1V1hSflFZek51eX45VH09PHVCbEh7a0VqPiFWcW19ZCtK
eCkqMQp6bGtebGxQNShpdz1vJEp3SnhrQmc4aFcxb2xoKUQ7XmRofVA+KiFeQWg1a1QpcSp2KVJk
WXZ9Vk10WHhiKFByOTAKemYxKT8oOW9rQ28odEdyMCtENjt5MUtMMyEoa31HJDklYFl6KUpoLUck
TWd5OXFyY0ZuXmpGJFhwVjhtdzBEVkQhCnpyJGg3KUkhc15FNWpzaj0oTFo0Zy1fVztvak4wZnBE
TUdkfFUxJTJXNmdQQCpoP35Xbzt4Mkt3eEpPenBKdTBufgp6OSslY2hmMFB9dlM1QV9YPHk1KCEr
K1JMUiZYOS01ZXRFUTlsQWUpMUJ0eShfV2MxOFAkPl4yUUZRYjNQU3NDWUsKek93NzFFQmIwRz9A
REBNJG9uPSVlbUFUNjxFeFdhQmBQNncrPiF1Z1lgZTQ/c2lfV2VkSGdgbGdGRTtQJEhPdDtUCnpC
cCZEZlYre3tlYitfV0F4P0JBKGIrXjhnPyV2WE1fcjZKWUo1UT4rJnNFKFc+XyZJcndkLSEwTnEw
TkMoNDhvfAp6V2dtM2NUa1o/cDRVbEQzY2NWX0t5VVBFVD91ZDEjZTQ+MTtlNGB2dVQ5cjJDR2Rl
QHIxOS0zVXNkN08xOU1GZzQKelB+S0hgUXkqb1V2UXYzU2A1UD1aTiU9dDhnVkUoZmlnV2lWQTFP
UE8yYkIlVjE4OHxhYSgzYWxPRjVgNFM5VThPCnpEc0whRGskdyghd2tmeE8tYWNpZWErN2p7YS0p
OEtOPTt3aWV0JD5kXmItQzQ3JShuVGV4WTJhdE90Y2hseHZpUQp6JTR9dDkrWlN5fCtZWXB+dzYo
VkZYeHIyRmxlVEV2eXRXYT8tZnY1N0o8QHUoXn49M1Y+dWFxYFQzPkVtKlpOWkgKeitTWE9BRF9i
QWhgfDk0T1RSdmBpdnRAaEJ3d0JjYEg/X1JndlpkdmZtUGNEfFpuPEk0Y2VANXtKXnJya1M+YWpS
Cno+VGcjK3dSLTtRRF5AK1k+ZldhfUthdX4kQFcmNnxgYDVjYVRmVEdZaWZiPkFqIXBpJUBSZDQo
VlIrV3hfdEpudwp6RjNnOT9CdytNUE5HLXpESTFoOEJncWVfWFFfQG9ncj5DU1o1KVpjQkFzampH
bGpMS3FpXkwoVWJFUXopdWh0X30Kek58KktAPng7c15SKjl0cCVNUHJ1Vjlme0NvTV4ySmJsUjxy
QEZEUEtsJTN2M1VDfXFHP3tDJmhmNFhgKj0qJHkrCnp2e3VWVXZ3U3FtTjMobzElU1c/KEd8Tlhq
e2RfYmw+ZTdXKlY/fn48PSRqUlJ3NCQoOUItKUNgcExTN34oe0R1PQp6bVAtNEAqJkhpTShQS3M4
WSVOO1VaT0pDMzVNfSZqaUYpVXo0QldKN2xsbF5oWGhlNDxZVj9WTyNxYDlzR3F6dlcKel5TcTx2
bWlGXmt1NGtpeyZFZTx6SnheamNmZ1lieUJVaFlAS1lYOWtfVy1FJShGIUB7S09xZnlffTBZezY2
PjtiCnpWQTtVYDJPSHE9RUY5N0xRbiYhWHg0MmZ+IXFoflN4YlZrdjhoPH5xJSR0Q1pEVyZTYWJq
cVlMRz84WGZJWW50OQp6LTkmZHxQdGh+akNBMDsqZkEoUWQmdkMma15jNG1SSWxAP0J2TUApZTY1
XyZRO1dwdHVWSV9YZzM5a3hvMyVpODwKeiFja0VhZHhgX1o7Yks1NjdOPn1waWdVIyNAajd2dF8+
bE9keEtgWEN6OTtTIzR+WEFMNHlpWnhJKnBWQE9CMTlTCnpRYyNMV1M0bFRZY1MkUnhSb0RyJVM9
dWdyQXt+PDJZO0llY1pKXkM+YD8yayh3dUB8KXdrdkVgK2l0UGxWfCYhTAp6K1YlKEFvMzs7YXBX
NDIobFJlNGEtIypseVhEX21zKilPcnoqYzxLRitWOE1HVjFMfkh5IzAwaVJ7SXxOPWt8WCgKelk+
cEppUyZubFlnXnV4I1heelZyVmFKdEA+bTkjekpuVlNkQHVLNG0kRGJWXklTeDkkYkduPjtvRWdx
Nj1YdVVhCnomUk5iMVhVd19DZDkoOVpgMkUpVGQqPl84S1JJX2V8S2RGQ1I5cnErS2kzZGZ1SXFm
KTErSSUtKXZnQkRITGx4VAp6X3EhZip0I1E1UGRkSWNmXl9sQXt4OHpRQ3BYbmFxRV53RSlyQERY
VXA2NzBNRkxCQEx7PFpybF9ZM1pnPylUbFQKej9sMFdtZFlxbkFQcjRgNUdzWkt+R3QqUDxpRnlg
I1p0fnBpYEhrbHAmJiFASW8pMHx4SnBiPzxfajxqM3lAUzB1CnotbSVgdi1afGJYWmBgfXNkejwk
QD9ASTQ7LWREWUVkdnwmRmR5bzE9VXIqbHYtKjhgYCtoNEo3aXRrZTJUd2p5Iwp6SV5RemlMJXRf
e1lrZURoQEE+eG40KjAlRmF3UFJtbDlOVXpqWlReWFlyKURTcV5ZfHcqZXBBKFE9Q1BFZ3krPksK
elpvKGxXZ19eRSpOVGVQRD8tMWxhaTg0Zm9tYyYqJG1wRHZNK29gWVUqVjdLPFB0PzwlPFFqMmBw
N3pxOVVUZ0pxCno1MVE2JWNSTjJ7X3MtUFEwQCtnNDlVIVBEa340TExvLWF7S1lQTyFYcTBUcnha
Nnt4OXNoKU5xZjB+fjVWNCUjPgp6KF9aUztwNilAelEpfjQ2V1lrfSNyJkI9ZEU8TjF+YDQyISsh
R150diFsQmZNXil6Jm53cDMzO0N1I1RTWTNMO0YKemNYfUUrTiF6NVNwXzg8JmRLeC1PK3Buamds
ZTl5NjhhZiV1byh8SzNQS0dZaik1K3UtYG5IfTxwJm1vRz4qLSN8CnotJHlnM2hDKEQka0B+RGRz
dFIqSmdjXmA0TUBkK1Bzd29iKjBjcE4jRW4/SiY4ZXl1WDNnbEx6dGQ0PyFCQTg4Tgp6Pjx4fEpK
e05XQmtyemlmKks1Rj92MXswQlBAbX49VE4kfWc2ey1pLTNaJCElUSVlZ30/eipRWHFoPUZvaENu
OXsKeiZUMShKVHYxNDJhMmkpSlJHfW57UkdpTGpGVlNRVHQxPnBCSk9ZfEI2JDRYOTwqYihHdDhJ
JmN1TVIoaF5OVyNOCno0flJLdVVjO3pldWVhYmpHU1ZecFNUe15ARzsoU25UTGJiJlF4PDtRcTh1
ZmVYeCkoLU9QLSpXMzgpQGlhU1BVOAp6Mi1zUGtJQzVBcyUqOUJeJnc2S0d2blUlbHtkaEwyYnko
dFJsIWpHfUdQZyFRUGc2QDhSWmkrQDc5aUgyKTtxRl8KekJfRFZhYzQ0Jlp1Qks2YkdKOWVeeCN5
Vj09OVg8TWhHIS02JUlRa25YQ1M5aWctY1BsMjBVcCElTm1XU2A0XnlgCnope29wJVktdHl1dFFx
fnl4KD0mI0cmXk4wNEZmO2gwYyhzY3RxQi13UmhYc2klISFRSisjODBpYXZ3M1IxUDFPZwp6PTI5
QzBqb151fkYoI0l5OT91WVpQZXZ+MVdrWkFmR2gxOGAqeXBSI2FCbXRsMyl8fSVhdkd6SWJyc2lw
bytaI1EKej1kezw/Pk1fQHYyNit0NUxvTG1nNEo7YTBhaz5JXyFNNGhqTChwMGZtPlZEPz4pdT55
bWE8d2NrM25YWmlEdzZ2CnpsU2hONSgrWlNtX1JxTDlKMkxvV2k+aVplR3p2a3FWLUtTbCZuQzJE
aT5eXnxeNEpXa18/Y3IoI19zc3g1eUQhRAp6O21MQXBgZShVJCV4VHQ/bjVpXmVSZ2p4MGJkLXww
O1FuSkNuNzJmJiZiPyZsJStNIW1xNFRgS0dYUUpkODFYYWQKejlPOFomM0JRVXswbzR3KWJmS09i
cHdqbC0wQCNhSXd9OGdDPU43ZU5ENWs+cCsrdkpsdCF9OWFMcEozQzJVe0NjCnokKTxjeilvTzcl
KkhsdHEhaig7PFB8cytVZ0hhWEdUWERMZUwmKyE7UjAxNF5ZJGE2RVVYbHhaY195ZGB2PD5YSgp6
OzUmaGxwIztXVThWN29ibiNHWFpmTE08I29rNVNHMVAhZTshM34hZGIhdURPcD4wQ0grfTdNbjQ0
SmpUdSh7e18KejtHIWQ2RU5fQUBtZFZVQFVJI3cySjdIKG9qOXVkPChWcFNYPHEzO25QUDZlZHM1
NH5kbyM2eTs0NEhYaipzS1N9CnpIcU9MKjRtZUwoOUczPDxOWH5HY2lGVXgkJnNAOC0xMjZnTCtY
UXZpcTJGVylkRW1zRERjTj40SUFPNkdvVWojIQp6XkchQyNhR31ZMTcmY3BCSzRjQTtxfEBNcCZH
UDhUTG1mbCZgS1ZvRDshbEdVK1F+Oyp3clMpQTBPeSNyNiN5QGMKeihaRSojPkNFJjtwPj5JZ1Vh
MmEqRjt7MyVQS1VMbz5zaWt7aXlDdU9TMkpOOF5IbSpZQ1QoYHIpJl5jM0hRJmYrCnorNVBPczkh
IVJRNGIkZntLTWh3c249O18kXl5iaXlvPU05dypZWmwkLUUyQlcjUz5IVVh9RE5COG09a3JTYT9u
MAp6XkBlPkFQSERhbTwyQDA3JDJDJkp6dUFQcDdgQVhTezJra09NWndHZzw3YiY4dT5FcCVFajYj
V2FhOXhBK09BMioKekd4K3p7bDtMWiNtc2c4KlB0ITVgJUJNPWQ2a354YGlMUUF0ezAmWGRYNVdQ
Njkxa2tJV14oVkVXI1Z+PlhVM0RgCno8VVMwOzQhOCRUI0xSd0RjYklkIyFGKiFocE5NJHx0ZEtw
TjVjKV4rJTA/bzZHSFE5PFAmMEpIeTRKaXZfRCQqYAp6T0lIJD1xRUdtMz1UeGNZcENWUG1YVlpN
RXR8KDZqU0l3dFBIKmt0eyo+YEshP1g3RHF2LWowfjl+eHQ+XlpkfFIKenRMKFd+YnhVVT1ZPT9F
O0opTlJjbCF4YGwtbEZGMWIrJClpb019RnhHMHdXUCZ2RX5QQ1hkZ3FkVE5zRHgkP1UkCnpkeURL
LVlqNGpkKCRRQVBBN2JYe0QzTEw5JW1zKHNmNylBMVZvdnZDPHZSSk8/b1BJQEhQfTYhbEo3fXAw
KDhmdAp6ZG1jMWdwPXl6UmMlRXJ3VClmNV5CYylpP0ZhTV8+YHhLaCpzbWFFM2dsNEBwJjshMntG
Mkl3bUwmTCp3SGtgfXoKejJsdTEpP3M/SmBaU0R4dWlXN2pabFl7R2ppYHVFe1U/eWJYayp2alcl
KF5oPHBNKTs+b3hDMkJ2clQ/KUp6VHhVCnpxejhWSjgzI3xUdm1YQVpscnF0Tz02RmdJUj52bXpP
SEp0STNPdSFfTnlqPzglRm95OTcmV3FCP2JHcWchVklNSwp6S1N4JExeMXYkd210SUl5WGJ6JVRX
aSl8MkdpcEx8UUI5fiR1OEt3KTxubUJCOG1XJVU0Tjx1UDErbThSYUJZUUwKejhMYlB9TWwkNnw1
cVdON2VRbXQ1d3hYZG44YlAoMVU7fDMhTlZHdyY0Xj4yfkJlZUBVd1VWUHZreCtmU3JaeSU9Cnpz
fkJsS0J2O2pqTC1CSn0zUlRmP0lORFNqc2d7ZkRMJjFqSGA2MFBEVDM1JSZGQW1qNTw7cVkrSTlR
S0BYaGFVaQp6ViZVM1FlNihFQyY9NEQpbEAkKF8kMV5NUlcpKWhpJXhIYWU3SStSdDstUHJmMC16
WSM2YT8wKz5gWkBGVj5+TXkKenN0JCVMcUxtPypkME1FdDUhaCNlS2dPUyhuZVNKMSFEWiU1aElO
YHZPLS0zaXhmTSlDJiM0VH1NfitJamM+NDQjCnpSJTFMWGghJERKN2Z6V29zY2VHQk0yZUhgdUAp
bn5xKHZaanFfVXI7I2dOI2FXblZHeiozWUIxYDxOanxIenJ8Qgp6VGslT05LNTRjbUQ/WnVUWEVF
WTxSKCNUbVBnP093RD9WdyhDJC1xUjdMVDt6bFprSShSKHcqNkVfNCs9Pj08OVAKejsqJVg/aUJe
MmxpY2d5M1BnWj1ndmxxQFlNJVU0YDZYUytqV1pzSFRvKjEkMlQ3eT02UWRgNCsqbDRIfnBYP1pX
Cnp7NkM2TUJJMnc/RX5nPGZSO30pTjtjdlN9dTZDanp3bkhqY1ZkcmxiZT9sNXxEVCs5flB7Tkso
SjJgTittSjZwUwp6ZGltcnc+PyFQdF5TNHJ7N3hoTiNLOXEoTjlRI3J+PlE2dFMwZHl2dk1RM0I0
Tj1OaX1Ba0khNGpNRTgrQkp3XyoKek1qLVpuRjF9Nz5CQSZgU0dqaH1+PE5RVVBjY0Z+Skh7PnlO
OXtyZXBMU3lOQ0BYQnZsQ0YoY0ozRH1jN2lHRTd8CnpNdzdBMnQ0eGk+UE5pdngqVW1zaGUtPlJ0
dmt7eFVtQGM3enIlVU4pYlF4V2EqbGpyPyEwZDVWSz81QStwTmxVQQp6Vk1LSEp5RzBCO3BtXnQz
MTlVU1YoYykoOGR8RShQVmJBai1vVGQxNDlNeU9Ze2VySGVDM0hSQWg8KHNFKD1CdXgKei1BK3Fz
OFR9SHdxSktwWChuST5XZnFkI0JwU0ViNndXeXUyXyMkPnF6dXdfQSNrYzVme1kxdDBKRGpNdnYo
dVQxCnplMihKaGBibWxoSkQ7VH0qYVcrSm4mVjQyPWtZUTZIUWk2RWFrQXJqXj9icSZiUz0odHlh
REd2WmRBezhUdH5Pawp6SiMtKTRpJkcpKnF6QzhAVDI2T2lmQjZlSSgtQ0pyM0p3d2xye0VJWWYo
UUckZUx8QVpMK0J8YTNuQFlgcHxfQUsKel5ieWo4R3FCJmdwVV98VWt1WDN3USNlYUZUYWJseEF3
dzdfNDhsSX1BO001JG41fUgpPGpGM2EtNUlPTiQ7O0lmCnp7eVphKkZIVzJ4bTVpVjRZPmQ+Rmp4
UjBjWE83PldxZCMtP1hQKkFkKlBqOVhJWkEmUD5DYldlJT1QPkk/cUY0SQp6WjZHQGskYThXaypQ
cVFMZEVAPGw/TzlsPyF6emFTSyNBSGlaflEyZ1Focyl6TEAhcjQwSVpraXROSG80Y2A4MG8KekQm
VHIodVJhVT5URD9HVnU4SnA2a1c8THpxcTBsWGB1UFJmcylZWEJCREg+P0NgYVdTdXFzKT5fO0xD
NFUqUmhlCkFAJkV0OwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9jYW52YXMvY2FudmFzLXRleHQtc2JpeC1leHBlY3RlZC5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYW52YXMvY2FudmFzLXRleHQtc2JpeC1leHBlY3RlZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjViNGIyMTRkNTg3Zjc0ZTc3NzBmOWE3M2FmOWI0YzZlYTYxYTQ0NjkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9jYW52YXMt
dGV4dC1zYml4LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw0MyBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6
ICJXZWJGb250IjsKKyAgICBzcmM6IHVybCgicmVzb3VyY2VzL0FoZW0tc2JpeC50dGYiKSBmb3Jt
YXQoInRydWV0eXBlIik7Cit9CisKK2JvZHkgeworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKK30K
KworaW1nIHsKKyAgICBpbWFnZS1vcmllbnRhdGlvbjogbm9uZTsKK30KKworI29uZSB7CisgICAg
cG9zaXRpb246IGFic29sdXRlOworICAgIGxlZnQ6IDIwMHB4OworICAgIHRvcDogNDBweDsKK30K
KworI3R3byB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIGxlZnQ6IDYwMHB4OworICAg
IHRvcDogNDhweDsKK30KKworZGl2IHsKKyAgICBmb250OiAyMDBweCAiV2ViRm9udCI7CisgICAg
cG9zaXRpb246IGFic29sdXRlOworICAgIGxlZnQ6IDQwMHB4OworICAgIHRvcDogNDBweDsKK30K
Kzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpbWcgaWQ9Im9uZSIgc3JjPSJyZXNvdXJjZXMv
aW1hZ2UxLmpwZyI+Cis8ZGl2PiYjeDdFQjU7PC9kaXY+Cis8aW1nIGlkPSJ0d28iIHNyYz0icmVz
b3VyY2VzL2ltYWdlMi5qcGciPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9jYW52YXMvY2FudmFzLXRleHQtc2JpeC5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9jYW52YXMvY2FudmFzLXRleHQtc2JpeC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5
ODZkMTQ0YzdhMGIwNzRmZWU1OWEwNmE5ODRhYjljZWM5NTZiM2MKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9jYW52YXMtdGV4dC1zYml4Lmh0bWwKQEAg
LTAsMCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgor
QGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6ICJXZWJGb250IjsKKyAgICBzcmM6IHVybCgi
cmVzb3VyY2VzL0FoZW0tc2JpeC50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7Cit9Cis8L3N0eWxl
PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSI3NzUiIGhlaWdo
dD0iNTUwIiBzdHlsZT0id2lkdGg6IDc3NXB4OyBoZWlnaHQ7IDU1MHB4OyI+PC9jYW52YXM+Cis8
c2NyaXB0PgorbGV0IGZvbnQgPSAiMjAwcHggJ1dlYkZvbnQnIjsKK2RvY3VtZW50LmZvbnRzLmxv
YWQoZm9udCkudGhlbihmdW5jdGlvbigpIHsKKyAgICBsZXQgY2FudmFzID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImNhbnZhcyIpOworICAgIGxldCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRl
eHQoIjJkIik7CisgICAgY29udGV4dC5mb250ID0gZm9udDsKKyAgICBjb250ZXh0LmZpbGxUZXh0
KCJBXHU3RUI1QiIsIDIwMCwgMjAwKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9yZXNvdXJjZXMvQWhl
bS1zYml4LnR0ZiBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL3Jlc291cmNlcy9BaGVt
LXNiaXgudHRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQzYjY2MmU5NzkyOTdmMmJmZjczNmM5OWEzMGMwODg4MWRi
MzhiOTQKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDM5OTcyCnpjbWVJYjJ8U2Z1KkQkYCVJWEdy
MWlaWXh+RGwqU3cka2FkeEM2YWpfazJ5bntHPyt6XlApSEk9IyVSdTFzMSV1JQp6RFJYOS0mVk9J
JFExMUo9QDheQnE9bHtPbj98cnx8PCMoTkg/WS1BdGQjJHluYioqZGY0V0l4M3dCUVdEZlBMQ30K
emYrQmU5eGdaJHg0Jko5TW9YbExNPE1jLVhLPUFgV1BIU1VeY0xpR2o2I3hgY0ZueG9LcXB2bGs/
S2VkaikmTzl1CnpocG07RlckVGdKMHN3R2pGa1FrSE1xc0pRQnc9XzhoSXdxQUpiWUx3Jn55TjdY
OTBsaG40Xm5AU3piV2EybW1gPQp6MFlEMmxuZmJWKVNQfVpYREcocCRaMDJORHl0eyVHaEY8YCVg
O015JS1veFZkMzJwIyVFQ0lqLTtteiVRX18pcnQKejAmdWhrMENmZGAhOEQ+RzBYZHtxaFEwelJN
M0ExU2F2Kn1qeipzO0FCYSFQMjBKJDNnNHN1UHAzYEpGTlU/MEZPCno2RUhYZWxuc0xlUmZHK1RT
TzVxeDI4Skx2TGAqZE5nX0htans2I2QhMWp4d2RwbmhhdjAxSVRtUDdueEV6LV5FVQp6KG0qPTYz
b15oeGtPfVVDRWJzdGlnQip8eDkpZF5VRn58bzZwYiEqK1ZvKEJ9ZktwSGZvYFByS0lkfW5IZj4r
PSoKekM8aGd3NT4kYXxQeV5uPStOY05iITNYZFdkOypfQUJXTUMmS3I/NnNaSi1APWZLSmNfekpo
T3s4fXh1KSY8RmEjCnpjUTYya3olVXBBVzhlb0UyTlBmdE9vM0BJMTdeVi1fekM5MEIzSl47ZlBm
TjQ+N2pnMyhkWV92Q0F1MmpmXkoyKAp6cTEhUm5Gekp7S09lVXJiXjghYktxcnVWUEhzRnxXdGhs
Vz40amRQNUNyJF9fZ1dKRUlZeF88dkcjM1JJMH5hSUwKek1sTSNhdHl+O2pkfFZuX3I/ey1SQ1Uo
PmEwVUBqdyg4NmRAWF87dCtZRipRRCZ+ZWdKR0g1YnJIUlFDfVd4dk4hCnolKyg+VkFuTDtwXmZH
fSFmViN3aVR9MGo4YEtQK2Vgd3c7Wj0xO24tVUN+e2A4cmAtMFF7ND5gYnZPRHF4P0F8QQp6Skta
KDlgfD1tTUwqdUEkdmB9fU9hNGItRlkmYVpJY2hkaDxjYjVNdC0ycF4qZ2xAdCYhY1cyIXBeTENZ
N3l3JWMKej9KKFIpPXB6Z2gyNFNjZlAhSyo0KzVqYCpHb2dpMFBaKXdObXlYYXhYYjFHTD1oRzJt
ZGs5fCVVa0pBZDwlQzMtCnpeQ3JZPWgwaipQREImOFJqbkdWfUJ0JHx1QUw0dV9UIXJRSjVIYmp0
Ml9ifF9FNThxakBXbyVoXiNsYUl1PTBCawp6UW9LTW9NPnRQLTE1M0N+MnF5UndqdTh9Pk13WF9S
aEw8eyl4fFk1eXdKI3x3eGh5Iz4/T0FNQ1YoT2FlbiZfSkIKekJ5XyMleTNxQnN0RXtXRXRHRnct
RTJBcl5eSlFtdCRHNDdtOWdROElKTXVhJWNocSomYlVmPXdAM18odCghUzhqCnpeTTNnUSo8O2pX
dmJfMWMyWUZ0M1puP0t8PEZsKnBpe0lhIUlUN0M8SCpsPmJeM0teKUV7WXEqUCYzM0gzPik3MQp6
Xj4xa2ExMVJCO3gmZmVJQDVNa1UwMWt9fmFJRDBAa3IwUzdaZkQlRm9wRX5yZFVQb1FITUxCTyE3
WCtMcG0hb1YKekNyRHd3NlkmNTwrSyYwWSRPMDJ0KT5HRFh1LSo+VmBAO0hvdXMkWlAma052eD0t
ZGJgMV5FNld5cSVkaVomJCVyCnpwWXszdGYzRlQ7VyZXY2oqN2Qodm9ee0p8eSpJQTYtdTNzMF80
a1BOX2xXaVBpMXFofl80a1BYc3FZYyV7PWRKbAp6eXdgbzg+d2UmTVUtPGc+ZmQzMT1pSiY0ZS1f
Z2VxVWxIU3F1THltTjxTcUshbHEhTjBPaGRqT2ZsWj19KypNVW8KekxeQj9+Jjs1TjBeZ28+ZTl5
QTBCUXdGKGRLIXkyXmU5M3ozVnRPMlR6Rz1fbWBTbV9iXmpqZ1pAUGE8OG1HQXNTCnplMyVReXRp
NGQxVkkySVBoNEBGLT97eXVsd31KbH4rNXBtQFFFKCpeQWA5djs0OXZxajFLdzVld3VDcGxraElu
Nwp6emdYcmZORG5FQVkyfE1fNUNGMTMxTHk7RC1+Iy0/V2VeOX40THlWX2ZvazlpcEJ9aHdYQmtD
PFZuT1hkaUolbHcKemhmdjIrKStqdmMzQFF3amZYWDJMPClkRHI+UUpxeUAyRmBzOHFJKWFMKz9n
UXBqRlVFJj9hYm12XlYtWkl0cmJICnomTyNUWCVoNGF2byM8aW9QWWVaUzZJe2A+N2JBbUYjfmo2
JlZWcDZpRl8kcDBtXit3VXhaYkI0KH0/TkR7Sjw9ZAp6UUlUeVg8MGNhI2xQNWJzVz1Majk9MCtB
c2M5cll+U3ZweEIqPmtkWVdYKXVLV1J2ODhvUWB9ZUlXTV53eGV+YisKemAzWjdjYSE+Tko8UHFl
RjxlQjchPGdkeCFsZWQhKGxGdzMqUTd9PylRMURTbVFLKFlyUWtZVVdRdXRDX3E9PXpOCnpwfiQ5
cUxRelRhaVErNThEOCZNbjYzZExgIVV8Jkx1JG91e3RPZUU7OC1UcTZ8RV49eHUjZDNNdXkzKG51
KVd2YAp6RVA7fWlsOWg1TnI2fWItJUVPZEtsczEkZWwpO3FZbHM3NXdRNUkwWHFPN05FcWEyYHxw
fjZzWXBray1tTG5UU0kKenBHdEA3QiRXZXw1N2g7I1hzVHFZMlVJMGc2O3VzV1R+czRmXlZDPnND
aEcwZjBAU2s5OHIxc0s9Rn4zS3s/d1BMCno8RVRAcUE1dVQxdUF5JEM/eDd5MVVaJGE7VldIVlVC
U05Ee2JCTnxSaldyRlA8X3R8M08jKTJATytMKl9ubVU/Ugp6bihzOHp2fWpyZVN+bDk8ZkJQcHZ0
M3JFKClgWnJjKXw+VmBaNF8tMVo1Q31ZWjhffm4rRF9WRytNamUzYmVyZ0sKemJiSU0hVX43Umg2
S1hTWXIzS09+fDE/aF9RR2Y/a05QTk57KVE/cE5WcDlHSnAjZVAjdTJMZ2o3e0c8NVNiQG1eCnpD
M0BFaU9iJUdrTE10IUBqTXJGIXNXO2Y3a0YzQm5mTTtYejNRUH1sSEA1eGFYS3NfZzNYQjN8T3ZG
X2w1RHlLbwp6T25YLTFGQFRYdGNtKmJkSUxhJDlJaU9geVRZKUtIeXpVQjI0TGdkIzNRUGt3eyh8
WWpaWUpCNl96ZSgwWTZXSjUKeld5UCsqOCkxQVJ2P0VZdGE0akx+MlVFJWw0MFc8T2FzYEd1Kj9l
T0toQzExTmNManp6Kjw3XihMIUU0WHpYQyZACnpaMnJDaUwhRTU/dT53UCNARkkyJlFXbiQrdW0x
fFgwWntWUnQteT9jcDB7eFktVSNEK3opQGZldE47IXU1dVoqRgp6dlc4PVRHd15fcklaU2FSaEhM
O0hoQ0x2UntFfjlHMCNBdEgyPCg2YmpKMVNtUFFWTz9vWilESzFEZiFPMU5JUWQKejltZTVkSSlk
aWBlLVl7PVlQSnZgREY/fW1nUnc1ZWtVSzJaMD5VO2gjdCElcXglPk9GYTFoZlFWcF9wK0BRXmIq
Cno7MGtIRUtxKiFeI1M8eDUheFRwZDtRe316NnEybHRMPmF3ZHgtJT5qMlVIKj5EPFdyaHo+QW55
MT00ZVpmMio3dQp6IUJ9P35MTzRmd2IlZmFORD4pRHg5RTRyckFFRnppTD5VLWszdVdfd2FXWCY8
e3ZrUWNWVHU2RXttMFN9JCR5dDYKejA3TEdPRDxsVl5LUHlOYmtwflpCNVh+VDU/MWwwcGRQakhf
MWozTX01UFcoUGFTKH1aVjUlY2dxWEBVRl57aCl3CnpAZyNFTTRoJiFqKEkyVUhhNn5ITmtrMFJS
djZ9RGlGanYkNlMkamhHTH4wKTQxS30yRlRkd2VGM0ZGTHhGWj98VQp6Vj1SZWJISGQycWNfUCY7
cUVUbUp7OSVZa3N6Oz16a2R9NUJydW80N01zKTIrIzM4ailxP0l+Q2BiYXhLRz17Vl4KelolRU9P
NylHVDFHYmNFUmpudXwhVFNlKiFEZUVAe3F7YXt+Tmo8PDVAYE8tQkM/UnNWIT4xTGpKc2daaDsp
SjBGCnprLXhQcSZKMHJiQjEoaFE8fD9NdEZUN1BiUzk9K3ZFQnMyJEJOQzcoaX5QYlQ7VVFkO0c+
RyY7MlolKiMlZDFwSwp6VDtZS21ZIV5zZE1NfTFVU35HKWBKKW4kOz8kQFRTbUN9Wm8/aDBpX1dJ
eyM8THs2a1BrYVRKUlElTE99cCsjeSgKenQ5JjlZJF9lVSpSRHYxSWhnY1hzQGFZWTZBdVphTE5F
N0xzanpzemgkMFFtNWp2dTZsQVg7JlNQZWV8Vnt0Pnk2CnpLMVhVenplZyQoRW8mJEBRbzxqbE03
VGllNTgobWY/S2pxK1lpVSh5dE5LSz1AYUomQDgzN1FqdWw5SS16ejJ8ZQp6KzYoT30xZDxATzB9
P0U/NS1TMUplI0pfe19DbXN5MWdnSmNtM35vQjBhQ3dXUmJXM1I7aXwybkFQaHR5NFd6WHAKenIz
ZUZZU1NrcSVma29HKE5Vb3RKNDVUNjZZQXpBanQwWSEoQStZMmhRbCFefV9DcCUwdmg0QF5mMkR7
KmRTWXVyCnpPMGV1ej5ZfFlFLXhRSjFaO0dObzhKNzFPUXcyKUM4YmI3bE5WaSVaNjhjPlJEZkty
dU5VR0FHQH5acUg/e0VEZwp6ZERxcXc1P1pTYkIpcW9mZ2RpN3g8T2BBYUgoIVdNWXE9S3QxRTBj
d3FLPF51UVlVZnFKM2tXc2JOY1RWZ0sjUGcKenw1aSYhTFRoPFAhb1BWI0xUaDxMIWZXK19QKll5
Unk5bmdgY1opKyhDSF4yZTUqQXhpdyMxcnhNekdjWHo+N0duCnordXgtbEl1dSZkNjJ1QFV0ME5g
U2MxaHZpRXRWQWktQnlzV18/azl7Z3IoTkI5d2ZaQjZeY1Z5Q0R1cXMzamMxaQp6TmJlQVhJSUVm
JGh1SGhxQEo5OyYpe1p6IzZKRkV2QnckISVqa1k4cEY5Xmp8ZFhpQU93ZEc2MC0yMnkqciQmXjEK
emIqdnpUTUUpPz57UG4xfWJgKUo1cXlCMG4jS1pCKjM2NHlwKFVta2VBaFJSTUhkQFgzX29Fd1Ah
RW1rSXlIPl9DCnpBK1ZjaCo9Ung5JG96LWNhPnooKDQjISQjcnV3X2xSRis3YGx9THw3MygqZFYp
eyRSU2tVMGdKWng5Ozxmaz9Jdwp6TGlabyh8OGI1YShYVT1aVWo/Pj5lQDZlMGBUd2Vmd0h6U3k1
dCpHfitjemk5ckU2emdKVyYmKnh0JH4oR0pebTYKem5wKDlyNWk4RlEmVSsqc0Jld0Z0VER9X1cz
Jjw/LSpGM0QrOHplb2l3TWBIP1JiZVR9b1FjJSNUQTdlPjJea3N4CnpJWmRQdjlicjJfWVZhUV5C
WC1pP1E1TzloJUt1cFJ8NDh7TFk9d3gwVitIR25XUj5sT0BJTmF9Pn5CaDIpZVdMKwp6a2A7KjlD
aGt5e3ptaUF8KShQXnFeUkpkRnt4Nm9nWU98NFN0R19CKTR8Myk2RlBBSXZGUDRrZ1pheXBSP1hS
X3IKelNZTGwlaHBUPD0mKlFfTndUZjhvKV8rQCQyNWRXcyZpfXB+ckdIVCNNMVAzMk5WNHwrKyNY
bF44T2JKRz9QcWAyCnpLOSZFMkdMaW9JUzJkK2N2fE4jUVRmfHlLWS0tWm1eRk5rRG5qIXh5TXZn
eTl2XnNMd0xrXk1wQmZZaSE5QEI7Mwp6JT1PUUVfMjA/JSpCYm8kYWB5azU8KX1tNUEtJnJIWVNA
Q1BNWnxfak1qOU52a3ZWUilyPkdHMWl8cG5AWXptVT8Kek5zPGoyQlNAeys3VX1fY0MtajMpcTst
KCFBYTZFRUVIWnV8Xis8YTZ7SEhVVHtobD41anMmIUlNQng0M1JvY0k8CnoxQVFuMSh2d01rb1ZC
YEc5ZTtsNzAobUVRaG1zPzBeNTUxJlY4SSRhQWE2M3Qme0YlZTl7Jkg5Qm1uRGd0dnwmWgp6Jldf
JkRVaDs7dVl5cURudWdNPkFrWGhicTEhb21RNVZtJGJfJExUUUFYNUQhbyl5SU5mWG88M3N4fitS
anplI2oKejdFbE0mTXtUV2VPMTQlYElCT1NZNTFoR2BxbD5jKjlfUWhMZ0ZCOUt1QWIoT2J7MDVH
N2JpMTJYOTFrMUd0Uz1BCnotNDFWUVhXP1B6O3RiSmoleypXIyZlX0VTPVdiPTtWJmlQKl9vck1x
N2pJYFBjZjc1Z0U2JjlsQSZSJWNTPSV7VQp6O3JXUnJTaTNrbnhfSHw7K3UmNSh0O3teXnlzVTY0
RT4yRGVhVSZ+dDdvNFMpZ2A9NH1PbUswPW5ZcD87K0Y5WGMKemFKQypFdH09cHhqJU1hfjBnSUp2
N05sR1BGNzdzaGtZXzdyeWNKJjE1MGNwSFozZHxkM0pWQWNkZzI4Z3QhJkkzCnpFbkY8RTVTZXdZ
WSY7PSMxSVFtalVzeW1+aF5QeEJaRVlrSFVNYlZ0K2dyZH0pQi03SENDMVhxMyZzJTNSbmdORQp6
TUFWMkVHPW4oPVJrVipCKlZJeXtVUS1rVHtfP2V+YGo8IV4yJkFWWGJ7ZmZ0Z3hJcil0QCEoYEFM
K0chPz13V2EKejg9QTBCdWxwejB7Z1ozayk0RzUxJm87fWRBOCp9MXgkZDdfX2ZNfC1DKWZSeEI7
UHY4QUd6K0l7UVdJIy05Smg0CnpGOHIxRUBRP24qYl5xaWFlVG5QLSQjd3RhVEwwNiFmQVleKEk1
Sn1Wd1JpMHd7ZX5wWntKTVlnQTNmSDh0LSpFdwp6Qnh3JSt1bDB0bWB6UWJDZDtDQS1wTSlNfmxJ
S3p2ZGQ2JnNZaEk5VnlRe0l0SSFOTTBJMU58K3s+NnBiM3xBP2wKejtSJUhwY3Q5YUpwbiZJUlFO
bUxZWF5fKnw7Rj59UGMqWWhaKmEkWWsre3xEekpie3F+dSE1fiU4KDsoTWZDRiZDCnphY1ZwQ3sm
RTh6dW1oZXokT31GMXlUS21sZCpfRT1ydiN1czY8TGBmTGl7cTBke0lZTXAtOTdUJGcpNVYkTzhx
Uwp6Mj0rbDxrKy1iPCNCWX1CYTgwciVIfjxjVUx2V1JzN1NSezAxOVlMa185Km58OHZzTGE0RWtu
YHp6SlhzT3UkS0MKejNRakBhdHZVMW5CTm1yNilCeGg7d30pUX05SEJRQ2BFS0N+UzNuXnZ6ZFdG
QnlyOCQoMmQ7ZWIxRT1BZD1LeSRLCnpWaH11ekYmTFohPWZNU1Y1bk9gbnBzIz9kQVBqX3FORHV7
TDtIdjJCOzEpPClJVTVpO1NySXU9YXJIYiEoa1k1aAp6O0h2NEBlPmdGKjdTeWVybiVNQSVReGpZ
TWJaI1BZUl5zNXdYXkVxTUp9KGhQaDlXMVAqak5oQmE9WnRVIUErMHsKelBqN3JmSmNGPHRvUH1w
S2hRUEJPRH5NK3xtVnI9azEwO1pXYz1CVTNOQ1hrIThpPEFLJVMrKDdqcXFHWTZhXyR8Cnp1cWE5
dDZeYV9KPiF3QX5xM0JUenMwfURhKUpEYE02Y2RVV3dIZFZxdUo+anxaQUVRRXY3eSplOTRKbHs0
eihTewp6aDJsbz56OyltfFFNeztLV0xvLSU0cEc5aEgoaE4tIzYodkJBK2MzSjlJYkhfdnRSV1Aq
MztRZU87dD98ZDVRPUwKemlMNStEU0RzPWtQd3x6ZiNMODI4PCpCc3RSN1JlbkxQQTFSWDRaQ2c2
MmNNXlZwcyRjNiVzfkwjOGljWk5LWXgxCnpsYHhUbHhXczs5UEJCJCFWb0JuezY4bCV1aTUkVDJP
MWR+UFVSK2QrTkRyMUlpUXZLZiNIWFlYMn5SPnJsdEBRSAp6UWJZPCNtbG9ibiMyMSRvQ1Eyd0lz
emsoPlAhYl8+NCNQeXJCdnFCZ1ZkbztRM3I0fU5NKztaciE8RWZzcn5ZVCUKelZzYE5TUWp6dDBU
P2d4SjtEMzc/MEtuZVcxX3dfez9FKUpQc0E8Qno0UkhBM041Sz02MzEyYnFSZWtLTjBYVGRaCnom
ZCZoT14zKjU+cUlDZkdEUyhUcDRNWjUoa3I5ZDcyKDV2WWtxZm1JSW4kVXBoODNmPntlb1loY0NG
dypgdk42UQp6JSF9O29zNnZTbFZaXyNgMyRZXn1kVz8qSC0hQVB+Zyl2JCUzPVg/XnhWWERHbmdP
dDFTNmclY0ZgUzVxMWVfe18Kemdzcld1clFqMW47KzlmbylAREskTEx5Y3xBYCZuVUFfdXw9PV93
KjBBXj1TYkF6QCh8QSEhKkFhaCE7ZGpIdEFYCno3I3p4WSZuQiNMaVlfflE+bGdneTY0ITY4Rlkl
SUs2Z3cwZElZQWk/JVIoWHxMWHBVTXFSMzd1ZlBOUUFfNnpRYwp6TFhtS3d2NG8wM3xEcmgralJK
N0wyKk1ZN0c1U3xMaEFiTWg4anFva0NpP3w1TVo9OXRCenoyOEd7ckJOQ21RPmsKendgal4wbT1T
PHpzdWckeGdzRmV3Xkc5REtAJm43cGheNElaRkR4WEtmP0MwYzlIbyRzb3JWeSZrJUN4d0xfUl52
Cno5cCt6ajZ6KihVIUd9XyhsSVMxQFIpYldNeXMhbFVraFg/cThoUW1FaUFVXjQ1PjFlWCpwRWFR
cW4xWCM2MkJBVAp6UF5gZ09CVipkQ2owbH1vODQ7THo0TDxFfTckKDY+ajJVMnZkejB2NGZjJnAm
fEY3YTg/eUJzXyZSUUoyTzs/QF8KekBWTzcoJGMyY3k4b3ZAb2pZR2d2TmwhJm42OVBEUkJraEhW
Ml9OdUQ0c1dFcnBvel96UlIyJlg3LVgqeEcyUmZ0CnpCazJaLXpYeHNSUlh4MnhsSGohaS1ibVJq
cSRsR3dfKGIqdWBqTnRgXztlM2U7XjcwSGVFWEghWlJIIWdHaFY+Vgp6KCM3MEwwRGsyY15mN1pL
ZSQ1QVJpYXhHcDc3a1godklRR0VYTCt1JSgmdDxfSjQ8O2tMLUU1eGhoMF55WjAkN3MKeiteektk
dzJvVCVJYW8rcmF3I2d7PGF9ZyZvTHJyKEpqYCVEUEw5cmE4NlNCckI1QGZBQmhpOWZJM2tMTmdG
TSU8CnohJDt0SDFhflcoeFBYe3w1RXNudFpmUHh9eUkqWjNGQVR8WntiNllVYVVwPVB3NndJS2tj
Z20mJFg8eEM3d194cgp6VmRrXmY4UEJ+K1ZaUm1MIXJqaTV4VTIhOFhsQ3g+PV5AVnJPRDNgODxv
YiozVSZfOVU9eFBneDhOOThfLT1QMFcKekNNcystbGNtS2s7O3g/Vmp6bz92RWQ7RmB0KD5mbyNT
NmokIWlXeD5UeEUhQkdGO3FgeTB8I1hhfW1kKkhTdCNhCnolezs3Tkcjc0d6M1E2eDM1a0k7Kksj
YENSeUk5JjtgfkROOFUpOyRjTldgK05WQ0RUNEw4eTMzM21McXB4eEpOegp6JDRWX0lvN282TFEx
QX40ZmB+VFBYY3N8MXFGfExGO0lGekB6Xnp+RjhkJXJCeCgzIVl1JiNsMTRnOX5TZiMyNG4Kemx7
MihEeXJGRmYycVZEZiRmYCsmNkJRNXdRcCVjIyRxPl5UMDdXKkc1eHtLUXEwUj0pVU5uRlFMTVE/
WDVnfTEmCnpGJWRTajAtIXxmNzluWDdhVz1IJStKTXxENXtWWEszZDRXeik0Vkl2aEVoanU+dyN3
REd1JFoocWw2Y0xrckplVQp6OHlGTjlLcl5CK2ozfmt6WGh7UFVJZns0QHYld3p9OGJkfS1mdSpG
UHJoeTByQFUwZXchSnhANzxtM3BPcn5zR18KeiRRYTJ0WldtVWYqcmEySTwjSjtaMzY4bz0kKnVo
OENBMDJfQTNVUHc/cXtpfUgqYUJLLU1WOFpAMj1mQCNLYXtlCnpyS0R3NF9OJUk/WWlKKE9KRjBK
QmM8aXs1Z3s3NlhqamYkTS1vdysmK3NEYE0tMSFSXkxvUXZ1NSo+M2JIdHpiMwp6Xz1HI0RZM1gr
fT9xJU4zZHpAY1RTWDVsezxram1wPHJTNHgpaW9hKks3RFIlYHFKRjteOz5zT1ooc2xTZngrPksK
eiQqSmo/Kn0wJGRoK09iPml6RjhPQn13KXR4ZnIyYlhmaVNrODVXVFhoNHd9U1hDeCF2RT07amVO
ZTY0QHd1d3Q1CnpuMzczMz5oYDBUUk5TSnZLYlh6a0tUdlB4NSZPRGg5MSlFdSp9bz4oKj8mdjJV
eE5MWHN9KnxyO1pZJUxGRVJgZwp6ZitBcVpEOTktJmgmUHNza14pUEdySiRnc2Z3aFFTNVRkMV9y
YlBrLU5DWldxSyNzd1hRKTROeE0zbiMzNUIlPmwKekBPXy1uMCUkU3QtSGoyJDJ0UHdLWWhOfGtO
IWM2c1lJRnpSPEp0P31uZj89PyZjVDQ7JGBoYSh0PmJhUmM0S05+Cnp7X1hFbHhwNjZGM3tLcGVR
VG85cVZmbUB5QXA/X3Y7X191NXFpYX1xeHxVYVkpcHl0TiVeV0QoOD5jeGo/Mm56UAp6PDJ2d2V6
Sy1HMnYjcWhNT1orX2QmWD42X1c/KmspMl9YQUtsdXhkNTtfbF4tZ3t+QUl4Z3VANnBZTURvY1Yw
eFIKem1RVT8jLU1FblJyZEdEZTBWQjFlKVQzOD5GUEBxXilVVkpMRyhBK0d7cW04IWVYTXFqKm1C
I15KR3QhSWs0YG11Cno0N3s4ZSVSYWJnQXsjZiphTSRtMWBscjQ3KVYydG5TIUFBIWVSJGZFIUR6
MGtvejJxIWomZ1JOVC1ZYzR4cmtEfAp6RnMoc3lJPF5NJkdTXjQlVDdBaHZuOUcrX249JWhxZjZ+
a2UqKU1oV3tPODJ1R3BAeTw9ZUoqcih7OGBqeHFDVkAKekszMHB5cypkezN3RWYmKig7SzZuQWJ5
IyEqVWw+V1otdCVXciluTTV5SW5URVFvZnRUSC1nKTNNS3xmaz5FaFJHCnolJGtyWGsoTXkqeiYx
dj1kc2tNblZjWmVkRy1xQlopMnxCR0NYezFkViZ5bzM+V3pNQ0ZLPHIxSmtyeCo4VHg5VQp6QWIo
PiZ1Ymh7N0hmTVJRYkheNWt0Snszey0hIXkwLXRZeDB7YzwzPXFPNHw3SThrK29qPXJrVE42Vy1J
WVU8LWcKemptfjF7aDN3THdNP1J7UkYtOFluJFd3RmM5NVIoX1N1fkdsSiRhYipvdGlTKyVgPmhV
NE4wR351b1ZIY2s5aTg0CnorKGZEcmQqZV4zSCUmZEB5PUd5JXZ0MiZDeFF9SWJXcVcrY2MlS1R0
QTlLbDRpYD1rQTlSPk9hbjRkSjJJT3h+fAp6PyNQJHRvb0VPcjBNaU0ra0lRPn1oUDF8MlhRQzdJ
cDdEMkl0N352JnVIU2NoSWtxPTliOWJCVG9xYis2Szl0bkUKektrdnhSc219Wn5BTHskTEsrZURS
TnI3KzdgKFpnfCRHNnsxbV5LKXdLUktjPTxkKjFCOCElMEZAO0RERnp1VjsqCnopXkU9Nll2RzdX
I1NgMz5fOHRkKHBIIVJ6MSVxRHdQd2BwSGc5VnE0Y3R5TGpLSz9gaTJZJS04OEdwR35TdkM1Vwp6
VGdOUFM9UGBYQ0B6SiU2ejRsZW9ta2NMPE83bylgd1R9WUZJaTgxc2taTjZlM1dndSEzMnY9WFhR
aWIzR3ZebCEKellYK01LRCFRM35jQ0t6bFEpQD9aJXU9PFk7JlE/RUtfNG1XbWtKQERmP15LIzU8
dFVvI3JtKEJTekZ6YzNHV3hqCnp1aitncmUmUEsqUUxUcGk4dGIjZXNrIVgjcn1manU2KSRESy1U
Y2Y7O2d+Pi1NYjlDKGYkQnd2c2hxSmNtb3ZHewp6OGAtJkopazd1ZzkldjBPWWBXNXlMalgzTVdL
fTVQMUpSRm8+JVUmNV8yOER1RWpWN1diMmpYLTstKXR+IyR3YUcKeml3d2FiWiNXclMkKG5nfF9v
dCgtUmAqczlPSUxFdFduVEB0VnBNWTMrKTFXfDwkTmdiU3YmZHhwK0tqME81UUBnCnpwe3J4ZnIo
Yl8lOSZzXytLXzwxYV4xME9YP0JZO2Q9fjVpO3dhWCZ+eUJhMEk0ZUpQMGkydDtkcUs9N19HZnle
Ngp6amMpMXAhLXBSNCZEPHQrSmMqSF5UeiVXU2N7aDVzXjYtWDhBWWJSViUkIUM1JXBRIyUxdT0o
ODRmIUkzdyp7WEcKeiVKJG4pSWI4Qj5TSy14elJxM2FXejAqSS1tLStvRTFFd2goQDc/Kj5CfEpP
KzdYTzJxRGhhWDNIZG55ZntrJio4CnpDIXRMTHhPK3YqdmtiMVBobTc4aiFxV1pxLWZJWlMpWTk8
emh3PH1EZV49Xm40Uj4lQC1iYF5tQjEqQWx5ZjtGNQp6aSt0dEpaemFjPChRfHtsdFloPXp0QXtX
PGd9JCY+X35tamBsciVxTV8zM0M3WWZySCFfWSNoNis7cilPdzg3WTEKek05bVk2YT9mNiN1R3Fy
UXF4aHA9PWpwWHtLOFFBbjVkZj1nbE85dnQlbSk+MmpxPGRYOCpIPU8zIWdLV080RShHCnpGTyhJ
VWFnY0A3WlFFQz1LWD9NYlFLakZ2WXx9VDU/biRlVTB2bVQ7K0d3ekdrdl5AKkUjYkM2YTI5Mm94
fDJWTAp6Uk1DXmdmdFNsOypgQS1pUm90SUF1ejZDJVNnZnJ6d0VuSlF6V0hgXitrU0pGVTItcXU+
VSRSbEhDKGM3SllUeCkKejlBQHIrKVpkQzNHVGo+eHFqJG1RYmRQdDB6blcmY0gwWHs+Knl+KVQ8
SkB6aWF9Wk0jY0RBJUNARkBHZnMlOEhNCnpmN1NFN0VeKSZfZ1lDelotWDt2c3ZMRWhfSWhqRURx
VHsmTTc3Unk4e25WWSkrTSo1PSo0T1ZmUnxLYEFPQmwjJAp6VER0PVJmfjIxJFg/X3h3d01AWjBY
SndyIV90VlZaK3hydSpfVHVhRD9UKFQxXz0rfl9mc0VadjUmN1pvQ2RXNXMKenNieEhsZDczWkot
Qm9ib2RQUTlTSjFnNV45LWd+X2p1eipWQ2xlT3pHP29XMlk/I0B7Z0YjRWlQMVVDNFBCKWh+Cno5
Kjx8JXhPJkwtb3VSeG9fTEVeX3F7fUopI2BmVDE0cShoc0BlRmZtYDxAJUt5ZE9BcXR7P3lVPjlT
SGFPfUpNTgp6XldiYTZ4K0hnQmx3WUtGSSM9Km4qVmFvXzdPaWFvYn5PfkktOEUmT2E0dFhmcEwk
UyNGa3BYT259b1l0e19jTTQKenJ2PUBnY3xtQGklUyF8Pkp5M19AKz1WLTNnVTJWJWB5RDthUF8j
NnpZM3NscUxISUNSSEZuJG1PTShkWkRZajhJCnomVklkMFpgekNkKXMyQExVN0RXeU9GTW5yWXJ3
QmJIJDUwM0RPX0RMJDZkdEI/d35Le142aTl8cWtZam50cnltcwp6Nmk1NEdzK0w0ZVp5KV9DWFdv
PUthWnZYNTQpNUREbSFsNHB2PE9HNT1MRCExOTA8K2M9NmxMOV5vKzlLSmNxVnYKenhfX3w0X0A/
c1A9V1VNST9GK2xnQUdlVEsodFFeYjgyYzNhV3tncE5rQUBONSpvRjh8OXsmYE5heCg/eSUxWSU5
CnpyfU91d1koRFc/MnUkZiFOUkFBPGVUPW1ATmlRMUNHUSZDJHg/Q2BNdEVsfHhhaygkT2BHd2JL
WiVeYjI0VkA3Mwp6SD9mSnxZJDl9cjUwdnYlI2V8OzBOQXckdWl8fkp9eT1WTlBAMGkhTWt9M0sy
U1QhMGxfcGFTUC1PbCgkT3piK3cKelJjKEloamokfU02MDNOM2w+ZjwoJVIyR30tIXh3TDk9PzVz
d15LYUJWY2hnfWo3ME59QnJGYlZYVkhTMEh6YXBGCnokNCtoMzVNN3ZJRE9fdzZJYWpYe3F4Q1RN
eip7U2FUTUtvcW8tT3p9MUZRT3JWaDQqWil1JFYyX1IzVkxvSmVXJgp6V2RaYzlTc09kUUY8aGBU
NTQqcXJ3azRgWHxDRX5nVUF7d2VaKG9sVGJic0Y0cXBuZz0qMlIqUGh6VkRkX2NJaUkKeldzI0he
VlhFdTxKQGY4ZXRKKXQ7RlBwWiNZMmlyUlg+UiYxVHpGRGdkYT5UYCl6ZGxndUg3RyVCdHA8bkl+
aUU0CnoqPy1uYUVvUXhVbnRtI3hPbnRJZHBeRjcyR0ZtPEdCRm53QU1OSWMkViVHZ0ppKjI8MWtC
c35CcDI7aHtPdWcmcgp6b0Ejam9qQXVRKS1OfGpeMDtMKD4zIWhzKEpsa19tS2dSMWxnX2g9bj8+
fi0tVEhZckI/Oz5SeGl9fVgtRTJGOE8KejxhRHhZYXEyNG0tQmk1Tj9CMkIwWiRtMntoeStpaD9k
PEN3TzNJcWJ7WEI2YGQrPG5LTWBnN0k/e2Yyd3o1dUVwCnpOXi1TJk0lUWZZVGUhQklFUnBNJEdp
LT9COWV3Kil5ODJidCEjZXI3MGFKUFo0V1UxY3M8KCVYPkNBSFBXJnlNdwp6eHduczs+WTNedm95
eDhFeHRNeDlHPEROfSRrTUszaUkkaytOOGlwKylrJmg2cUtjbUYjKTNfeT9CdnFOZlVqSUEKejxH
QEs4THdVTGo2PHJoKEomXn4hUT4hX0xteEdxPGc/IXQqbFR6YFBnMEFYTXd7PFJ6NVAqTnNeZ1Jz
KiFwRkd9CnozT2ZjJCgxJjtTWktQS297aSghVHNCTkY1Y3hmSSooYyk0aCVQSnsoaT9US1JzayZl
RGxjamBiK20tbUFvbEdqeQp6O1pIbUM7aGtJc19PNThfIX4/JE1HWCRfPCNPbVZDNF4rbHw+VShE
PysreEMwSlZzMkA4QD9yfldMQzhfbmJnT3wKenNoO2NxezViOTB3PUUleFVWJStLMmE0NXB4RTBD
SyhpaH1DNk1mSUNKWkBrM1d+YiFsSXdmQVZycyYhcSRyVys0CnpuXlpoZ09meFNZVlpSLStXRHw1
PEtJPi1qNTlnQU5XJElkPUtEPyMtYzJJKSNXcSotPCVYT3c1JllvV0ZwYDNLNQp6TSY2fTtuRFF7
MWlSWkpYOFMrKDs2IzRtQGpscipvS0hHVWJPV249a1FGWm40WW4jR0ZZeUJVSi1PXj52KzNJbE8K
entPMGVoRDd+c1djV2oxT14kREdiKFN6PW5UJE0tNmlrQEBDPU08R1FuV3oxZjVZMnE7NWRIcEVR
fmRQIz4ka2JfCnotMWxCezNMQ1FSNmIrQj5ucUBqVz1AJDB6ITg0PUY+aWpQPzBwcDlWclclSSg0
ekZ+MkpNRmMobEFxNjlHIzNyMAp6dFkwV2RDamN0TEQ+eiE3Jig7Jl5FdGJiMDYqRVFeJEpEaVg8
K01wTW8jTUdKVkA/MnU8NDE+TTRzK0BqNVd0T0wKemM3NlpDPUdXKmxANVRGNklYeVFqYyg2VTht
KWVBMVNeaFgwKGUkJmEmYVY2VSN5enlnMCY+c1dnSGpgSUZ1dnh6CnpIPFF1MnM1LXZFQWJoQ2kk
dik5T1UmfldvODF+NnxlWXNoSU9mNDxEb28rI3ZlUFRuQm9BVlZTNGxBRilVclJVfAp6fEQ+QXN7
SEQtdnNXQz5NX2lqRkpfTmYzUjlybGowVlk5QVZxPXgrQ2F2d0hSI0BzOExQZzdSNCY+VjxuaTxh
dEUKejlRYDJwcmY3ay1hbT5Qdlg5Q2t4bGdDaHxeJnpHeSohWipDUGtyMGBZJWQya2RNaSVmJDlh
IzZsWFpQXyQ5Nl8jCnoqdE9RfWRNKjJNQWxTcXk+dnxOJVFGUml2cXY+M0ArZCE/YCQqdEJ+PCE/
VDVZUDxReHNxSG9JWCE0bGtRX3J9KAp6RUc5QWB5JFdgcD5MdEYwUjFQRH0lN2JoTHNrPiNMZXdj
MjBEV3htRk5oajlTLU1BeCF1YWMja2xfVUFXPjArSGEKeipeUUxXPU5Ba2t7SV8xbHtxVSNmKjY1
aHs4ZEJaeF5mVWBLZy1HZTkzbnB6JUo7IVUrUHEwaCYxJGREd25yJDI5Cno+WllhRkZibnRWfDlJ
O21FcioociNLUVh4IUFUNTwjKzw9U0NSMFJOdilpSj02P01PZmp7YmxmQHZOd3V3cXdncAp6JnAj
JEZCPigpTDk0bCNHSU1POVNgTGxGSDkrZnVYTDsoR2ZfeG9yPjJAVWdHXyl9M09tVHlaMi0lUXN9
LUR8ZXMKeihDdnlIRDBNIXpeezI5OFNRN1ZIP3dQQTY0eFgpbGBwT2tHV29xQVh0fitmRU8ob19e
bmBkb3MjakdhJHo2ez48Cnp4WkhKND5MIW9lS0wzZXdHaFVoIVBSKll9QSE9NDkmZmROX1Y+fVQr
WEs7Rig8fUxyJDZSZDhtRXdwQDFvbVlNPQp6MWNsRnc2a1clc2J0PHUzTil+OFchNiU3TVcjMCVD
bzZ8SzN8SksqY3YyeiFQTFUmVUckQzNsOWx+alNgN0E+YD8Kekh5PUl1WistYWd0LSQ9RmNmZUZw
d1pUTXg7YFdJMDwzTj4rP3FrPTNYdi1MZHh3UHA5TnxYRHg4KHZgbEBfQyEtCnptMVd2UTIzfnpE
WikpbCUtRj5gO3MhbEp2PnVGODJfWHVRSlVmcCh7dlZyeXlafCthPVlKUEQpP2RGTXRxY1o2Ugp6
NDY1OHcjZEJNSnc3N2NQbzswZGpYajlxRlZabUkxWihAMDF4Tzd2Mnl+aDF2K3g8dkd6TVRoNylB
bF8qO31mQSMKelZ0dXg4elJASXV5aXNaNVRzP2Jud3ljUmtxclB4Q3p3Z3kwbXZAdz42aWJIXmBk
djAkZkJJTkZHPG9seGBoOzhwCnp1b3xOe0M+SChGX3VoJWVZQUlWelYlWWtCRnhQND8+Xmdvdlox
NDEhRG05SzEpdHQ0Uk1OTHo9a0xYPyUpcFkySQp6WVB7Z3E1UEU/MV5MfF9NQGBZSz1ASlc9cyts
ZDREeSokWWxHfTc3aTdqbEJFPGdMWVBsWEFeOTRiMy1pM0pxPjsKelApdjdLKnMrdSNyK3NKT3g/
IUhDbFA3Yl48ZVBfdWwpJHBiYUtKODZTXjNWeyhVZkE8SXgyUUwtPWd3Xl9wJXIxCnp6T2ttb1RY
Xk5VYHReKTwwfHEwSGAkdXAyT2xoVlg8PjtJJXZZNERiaDtEM1Q7ZlhBKkNeaV9TX3IoQCo5JXd0
Twp6P2ktfnFwPGRMeExtUnZCVyRKPGEyVVBFM1lNfFdYXzhhY19EZS1KTyszVTNCMmV+dXJgSiVQ
PnJVdkNZa0E0YGkKel9WPiNldT9afHZuM31WfiMoYnB7NXoybkQmKy15fFVYRkI+ZGIqJGM2Z0J3
aVJ1SGNpdzYpdVJsTXxCeSVnNHZqCnpob2YxcGQkO3IwVjM/YjZyLWIlXygyPGlWT30jZ1lNKSt6
QCtCQUs1YXlOJE95SHZramAmPmgxM1FvOVJ3dUpUVwp6KiV3WkhNWHRQa2dMV0dGWkItfi0qUVVs
fE0tTzlIVmBsQE1kWHJ9emA4VDxqell+Q0I3YEd4ey1TS2IqUSRNZHQKejAmdT17UEtFSTRyfGcy
dWZxMyl3KTdDWGRWKUQ4eVBqeFJZN0BYaEluNzMoYitsZFEwQmA0fXcyM2sxXkNTJkdZCno0RHhx
YGx8NmhJeCZLe19gezN6YXtWYCt1K3pybT0zSStxd3NAOGxaeEJUM2hYcXlJZz5KdWAyeHFDYjVS
VnpCKQp6Ji0tWjd6Qkk5bj15NFk8PyNAOFI4M2VgQlp1RGgxK2VEZV9AK2wmQmBHVHAkdylUXjRZ
VEtXYlVTaG9fOUlZfUwKeih7U2E5Xz4kS2FBTVFgMU1VRyMlQ0tabW5QOGk1WWBzajVuPk1qNEJ5
dTVQP1MyWD9aPUBndHBfMnVGP05ffmJGCno/fDBjS29FU000WmBpQiklMW04MHFOJUI9ejwrd24p
a1dvVjZnP3NXdHsxJD9JWnU5PiYyczRPV2FScWtFKz4hPwp6ODl7JjA7eDR8OXVmK09pZlVVI3gr
dD1KM3tyV1Y9YGM5OXZXRT9xUXRQeWZ8ZXtJI0cpUi1ZeHF2dlZZeWRiK2wKenNAYHMhPm1LUkBR
QExhWGJDKjMqY0dOfkQqU1V3OSRKbUJ4QU0lVDclKG9hUGZUKmF3cTBmJFFGUkteejBpb3BWCnps
QUdvWCQlY0EkR3FaRGhsd1ZuMiVRcztORGpJTFBsLStFOFJzVHR0eUg+TXJjZXI9WjNrUCQtRDsr
YHd5WTRSWQp6b2V2a2YtelVPT0MwRXFJVz8wKyhqVSRvZ1h4eXUqTlJmQk5LTGhhZk57MUFyOXYw
dHZFVUk9Qk00VWR3c1dXSEwKelFPfWpoQ3dCQUUoY2J2aT9QMD9LcmdyMHgtISElc3JRZG9MTnF5
aFNVRVAwU2k1I3o+Rmp3b0hXNHA7dChyYmd0CnotbWtCaWx3Vyh4XjwjPH0lTT8xeFdrbU4zS1Fw
OVhQJXRme21zI1RESkszMXVgbyttOStjfkI5Ui1Ze00mYlBaTgp6V1phRDFVLWp6N2V6ZyhedjF0
P3pIX2txT28kSlk0WW0rMiV8RWt2RmBsODA3ZTdsV0Q/ajlNUUd9KTY5dUpuUm0KenJteSUjaiRI
UW1tfGtRcUA3cUwlMUgrNUVIeXpGI2N3ZjFQRDxKYj0rTXwkZDJrR1BjNl5lN04lKkVAeFpuayVT
CnolfX1kNWApSjxqPndAUkcwfVdoMWNoSn51T3RhfiFJTzB5M2JOTk88ZEU0NzA4az44dzUxaG92
M0pSfXxhbEhzTwp6ayNTOSglMEFQflM4XmszPEVGbXVWQUpAK1Z4I2xQbnVtPmNkOWl3SmVvM24/
VFp8b0FsJUNnbkhvbmIkLSRLV3kKeitpcXZLTH1KQ18xRzF8Q1pRPCNLMEVmKkZvSVk5RiVZQ2Ra
YjxmYyRNSjxiNClHQUpYY3dYT3FxKFZSQi1TXyl9CnpNXiM8RSVgeXdkakJ6ZWFZUD1fV3AxJTU9
KCNPRVBCaykzY2ptYTVuaUp7aktoWWFOVlVsOVBSLU8wQzErPykrSAp6JDwtQz0pPjA8SSZ8PGol
JWlSRmNCTnYlV3FVKER2dyFOTnZsPDw5KzBCbSF5aFlNNnJydGs8SGwydkR+RjlfSm4KelBjTj85
dWJFX2d2fFc1eFA1O3FPaktWZjgkLX1xdm9VWCtsYnR4U1A/TjcoZ0RuN20qWS0xOFA2aE1FaHEk
VEJ8CnpkYFZaUiFCVFFYQykmaU5CQWVEbWlpWD1QPGhndjdfMWthVz1XfU42SUwhTS1EKWclc3g4
XmVoIylmSFVSflhuTwp6PXNsVEReSlQ2ZCZpentiRWtWfUZkOT5FcV4wPX0xSiMjalc8ZE5ORDFJ
RihOQW4jUD9qYEM7RXFIMiEpYmdQYXwKelAwbHpscFZVPFRnIXpMKDtwYnR+T3hvKVFJKEsjVEMm
ZlBJJFRBYlh8NX1jb1dpaTsyPzM1PyhMaDZ0bnxIKFpKCnp2OWA3dVp2YHl0TCE2Jm12NzJ4NHpH
X2hQYGw0YFFUaispRTJ4YVhlPTk9MEM7a21sXkFzIStsbW9feysjS0lSJgp6Rk18QyNWNEFBaipT
PFhVVlQyeUU/c09aUCpTezk0UEZvQE1JYlAlPXdrX2JrZiNgPFkta0glXkl5RXpjZnVAfi0Kel4r
fEhVaG14RTFAfk15Nnlsd2szdFZReyk8bSZWRDlPNENyJEVXenh3O2d9MkxiRUFTR2BLU0c+fm97
QzstVT9tCnohaj5GMXdOM0JZdGtZPHkzezlmKXM/UktSYXwmOEM3NDw1PShTSSlZOU5wOEVVenBK
eVJ7MSlheHR4ZGJtY1NVRQp6djUmWDhuVlFYfXpxPT88KWteN1d3d35Jaj95YyFKJlYwUjZISzxH
Z0Y5UHRVa01CMHRlczB0XzZ7K3xSempkKkIKenclcCVyTEY7YV45c2NYayFHa29tRVVCVlpTMF57
ZnZLaWNQSlp3fjRvYzgzeE4mOFBwSCNyM2ctcXV+Kz5kSXUlCnpmQVVOeTw4Wip3b1FBSnVLQFFf
O1NNOTR0QUtISD9abSEtViVqc2ZqRytCUHIleUZyJjU7eyo3OWxpdW9zaiR6Ngp6TyU9Qlkpblpz
I1h1fnRZMH5gajBee3I/e3dJNmpLTmdNa2Y3PFhiZnFaJklaO09iTWFrPTlEM3NjaW1AM2M3KSgK
em1ASU5jVW5xUm1OMTQtWDNkTks+eD5DcilTRXVuYWd3MCpMJE1DaUVxLWVBQW8zdjUzWF99Ym5u
WSlpcTEmNll5CnpXVX1LbXBOfVRlT1VzQDwmRk9hJSVWV3YwWitYT0F7TjV8Pjtqe3lfbFlWSH5g
QU14LS11dWdrX3Z2JUh6THU1Tgp6OXx+UCFtfV4rZmlXcjVIT2ttflFgITZQKGd2TDIpVExTUHZe
TX0hZCgjNyo4emZLcHZeV18zRmhzd21jI0k4V2AKektEJkZKNn5Udl5fK25uIyhYI3xrU04wfns1
KVpLYXNrZCQ2YFh6LUFUY001NEY7fmV2JiNfRztvb0RRaE5qK3dlCnpyVDhnRk5ZS1g4aWBzKHpE
VVliTEFLbntsbnpRJGBpJmVhISNFbm4wPjhyOyMrMippJkUqYWw/VyN5VmUoTjFqPAp6YWojQz5G
YU96JnJASnA3Jk9oSmQ/MklgemtMTDYzZXB0WkV7MnJmcj5Db3QyUHJsTTRYUT9jVVBDYTB9NldM
PXEKem5iaGp3I2p3UjtDSj9XYmN+VjhMeFNoK0dFcGVKPDtMMWNwRjVrbnJnSTFQP2VOdGFDNn1z
NiY5SCVxOCRDPnRECnpqTUA9M1lwJmBxRnFZdmd6c0tSNU5LMz0pMTFXeTFzclM+WkV8KlY9aFBX
KGg8JnkzQ1lFbmQ3UXFRaDVWeHBCaQp6VVJoYlZCdUBFP3FLMClsYz8xalYkVU9jZTYlPzhJRXxt
cXBQOF5GIyRfVU9QKj85UntxPVRQLSpkcWFISkJiVWUKek1QUTBvezs5VW8oQlghY043SHt+WjlO
KnR3Vy0lWloqWl5WJSUkLU1odSp3U3VUIW9wKTRiTG14QDxGJTZKOXdKCnotKU9ra0g/M2xMZj17
TzA/T3txSyZnTFN2PEMqO08kMDlHVXV4ZUZ2cjhhPWA8e1h+cWhfJipSUld+bEAlRzw+PQp6R1Je
KyVkNkBiNC1VJFFTPiF5dEZkVXhFT21DcWdGeUlYYXxJc2ZMNkpKdDQkYCgwQ3U2cVgkTmdGO089
QCVzbTQKeiswRHYkeFpsZ3FafDEjR21Tdk9DU2VFSStIRjBqVnQlUjxYdWZvK35McHtedWNGTUZY
eF9PSmBDel5gYkRRNiRwCnp5P0B6fG9TKDV4V1Z2VyhVJjVub3d3S0FZRkE5YjhBSiVqUUlEOExr
ez89P2dleTFqRD1sMm5qWGlAKVNZenwrYQp6PVhPN3wlLTYhdUM1SXR+V190JDdhK3clci0/QXtw
cHBLdWVLQTF4S3o9Qzc+Z0p5UmRNQUU0eUBnOW13WDJ4bFcKemtHay1jRXteJmE+P2o/aE8wSTll
ck5tPkF1XkBITnl5WlNja2RGX1FvfERCWmJZKmhza1NSeV44MmJ9cj1GZDB3CnpJOTBuT2lhSiVD
cDhFT3hLKWUjQHpofHkrNjI0SWs9dTkwcyVEMiVpc2s9IXJPZiU3YFRXJkpLPTw7NGlsbEt8MQp6
QmxUbilpdyp2ZG1ma0U1NVAqPGxqJkhwZFVhTVZqbVdLZUlEYjljMVl7Xk16PmYmOXhFfmhCdTxg
VXJUQnpIKmUKem9MZmpgZX0lKksoeHE2O21lV3AkZDUoMTBoQmFSb1k+O3leYl5LQXVvcD1oZkgw
LUFyRXU1STdWSHs8bSg3RXh9Cno2VldTKWdZRmE2JHdeSmdjfTE2Uko0OEdAZDdeZD9xdWBpKE48
WDtrPlFpfE4reFNwVyhLPmY0ZV9sMkRoNVZXSwp6I2pqTWl4NDUtIyFeZkRXSjZnMG87QFZLfD9i
Nj1COFI4ZU9fbTxuSGB1U0xAcHN3dGFMKFZqPnd0OzxIWDBFcUUKenBrQnUhWVA+aDVQQXlgMDFv
ZH00SlRzWCkwRCl7eDtga3JlRDxzVWlvIz5aVWBVR0F6S0E7aDFvQTJmZjN3KWA5CnpjNTZSSlpe
ezttWiVLMkkpcmw4bzMqRUxvLXVxTmtfX2gxYG5PaEk1MmNCT3JuMnVJdHZIQnRMKy1WYH1tZEg9
Rwp6UXplX1QzKUMyTnZBT316eDdOa0gtWklrfmNhU2Y/Qlc9JTg7KkAtYVo9Sik7Kn44ZF8zM0Jx
YyZOJkRDakFKYjIKem1kMXZrPVFPRyp7XjVPNUFUUWUxZmM5OUlialYkTFNOV3skcXR8ZmgtdStI
Rjt5ZkxmN0FAbW1gUF50TkdzSGRTCnphY29lfUtjbHxTaGxNanRoMnN7VUk8SCV9O0tseEpDRlh0
fS1RIURxR2RxWEFzLU1hQW1oMEhvdXZNSz9ibV5NUwp6VD8rWWZPQX4qX0liVjFHXiFGY0dCKztT
OFdOWmY0I0AjfUZlTGRPa3pmPSt8VGZDSU9TTHp+NEpGWHRHQmhMSygKemc2cD5EcmxsPStLWVlH
KGFadWZreH49WW4+fihrSExHXnB7T0BtcSkzbzxfRmdMWFJ7cSZKamZna0lCU0psOUArCno4dDVf
aVNTfDB2Xm9VbD95TmJxezI5YilGSzkqUChoM1c1STxIQ3U/bVMoeX5hdH04anQyJTM1bn4yVnVo
QDwmNQp6ekJuYHopTkpzQHNkMVc4LUB4Rk4jP0VFLWpQUWFWNlJiSyMlRkdXZC08cChydnlCSWJm
MWFtVypyaVVKSyVlVmwKeiM4dUo1NkZ1QFhQVStMQkU1ZSh1V3koNzRARGIyfEckWkdLPiZ3cjB4
N2NCQWFXbH5pPj1ZdGl7ZTgyRjlaUCVJCnpHaVhZfWI+NmJLUGExNEU2fWMjfl5YU0VYPUUqcWs7
QEJzMk80U1JjWmpyM1RMeUg1PXl0KF9kSXx5SiVyX15ubQp6MjdtSyppRH1JSSRFbSVFZ19QeT0z
fnU0dypsa1pOSWV5TkZ3TigkZjVrTFVxYFJ4K3JAQnRIVjJmazFUZXg4b0kKel5OeFk9ZSU1RTZv
YWYkPDdWNV5XK1p5ZU9zYyFtNTlgZEl8R1ZtbDdHb056bCtBVjhvSlVZNWhLNztgN0tYR2pNCnop
TUktUzt+Yz1TJWBheGFwcGUjaS14cyR5LWd9Q3MlTFYlVVIwaDElWVZXSV9VbXF+Z1p3KVRIcGJ8
VV5ybjAqUQp6JlglNEkyanA3IWh0NTNMKF5IUVdKXkwqRWRRczh5dVNmMTRoXkFydGs+VGE0amho
PExIc24yUE4kIVVvJXhFUW0KeiZxa348akA9aEooei1eUjFLZ0l5TUoqQzlNaGReVnVxOUc5c0M1
MWxFfExQSj5mZT4/SEp6ejxzIWhYVWF1e3tmCnpuYTtrYSY1YCV2ZHIxayNfaCRPeGV1WTYjPFRL
MGxlT1RvZE9QQEt1em9+IW1lRm1uRj9oQXQtez9yQTJ1UVFAPwp6LTU5Q3R1SU52KDlNKUVZbGwp
dU4/akVDaSohKEV5TlU/T34oP0RzVFhkU21LZCVhQlpna3wmOCtxPXVVYWtKJXQKek1UYDR4VyY4
N0d6MERfSUFpRXVabFUmMnBlJG4kO1JRaSpzWW8pJDFvNlVHLW0zV2AwZHY8LWttZiY2NyVqczU0
Cno3czZsbFZpN3Q4K2MpJVEyVlBzUS1DV1c3bEglKmdpdkAhX1ojMXNIRjZRKEpAX1IxK0Vyd3Jj
aSEwZl5wZU5sYQp6eHUyN1JqVHtZNWZ7JXdKQ1g3Tjw0Yik8fDYqYHlpY1d6MGlxaVcld25kXkMj
JVp+fXxjSCF4biZlWWdsQSFPYEsKej0yPzA3XmlpYEo7RUg4NlhxfjtVRj4hUjFPcUFgXk9zJFhl
JmRiTVghYjxTNzttUl9DeGhAJm1nOFU1NVQzO0ooCnpYWlRsQVl0KDcpWmc5ZDtpLUA9Pz5nbDQt
cUkpJVZGPkhIa0pFP3N+ci0lKFRRR15TeW9namViQ0JeeWFjO2tENwp6V0BPMzBLVytxb09OYC1T
MD1OO05AP1lFdDViPGp4MDlATD9XK09uK252RFJAfDdJZ1Y8KGlFRXdRRHY0ZHxrNTwKejA5akd9
ZG4zU3FeRkR5MEhUd1hifDBua1dSSWI/dihFMnl+MExJcXIxRE81MjQqKlNBdmt3NWZXKi0yPG50
Y0ZVCnoqNmFofHs3PiEhOzlhdjFLcnJQJC1VcEQ5QF9RZV5qV3pvS3IyaVpDMFZ3X1Y+O3cyO3Zq
LXNMWn10RXJnV3IxcQp6aWVNbDNfdHlVLT51RCR7RDZrYWRsdnBnNWlpKG4mbVdocypoSzgxUDww
YnxzX058Ozg+fDVFYGE2QUlNSTQqdX0KekhudkBveVpNRUwjbCp4b2Q4T3MwTUMxZlMjWUJrZlh7
ZX5FWGxaQyE9OyZCUHd6RiopYEE9VkAjYVRCJSVLRzlnCno7LWEodmpmPURYdW8hQWteeChla0BN
ck88MSFVTmhgTmQ8SllJZE9+dWJ1WU8pczVNQXR8ajxJI2NwejBgM1FSbwp6JXRMZiFnckRMcWJ+
VE49WHRiWU92WE9CWTxIJD1Va0deb3hrN3BSWmFeJXd8X0tUKEk+XnBad3kzViM8RUttJlMKenkj
Sl4ocj87V1piN1d1SXpgPlJxNl9gJEByX3kpJXRrMWxlWTxhdzRFTHxXLSNAUSM7aSspZEJEKksy
ayZhNnJ5CnpLUnlMKCgtT1Fkd2RoX05kTzY/d1RhM2Fybio9WUdyJl4tPk1se3NqS0F2bHtpNytD
UVAyV0VNVlFsZjlUbW4kbQp6VX1iVl5KUjloSWpsU2VBeF89Xk55Z3UtZ08tSlpWU0hsTCtwYFJh
VHpzMk1oSEhMPVk4VksmY29Ne3JYezR7dn0KelEqIUg7YWJgdV5IZ3kocCloJnEmZGUmP257Uk10
KFFOI0clMm0wfkB4dHwqXlJzflYjQzJeUDU5akZNUj96Yj91Cno7WX48VjVXJS17R2JffD1gTkZP
aWUjc30hdGRWPz8/dHQ2QChkQ3Jvb2hBTkJBP1g1fEl3S3YpNTY+fiFlck9jRAp6eXRqKHkmN2ww
Q3t5NmhoUkdjTW1PWXlmSngwdGlMQUkhMSlXY3RfJiV7JjwwVndDNC1aaFNoYSk5OThzcFBLMSgK
el4+blQ4UzhLOGpLNE18cD4qJSQra05rTEJWeE1KYG1mcHJNNilXeyFoMXhxWUJzRThOXjVqV3Bp
QlBOSHAtOV5rCnoxNHBDdDNLPnt4dCQmUWxBSjhpcVJJMD5xRTV2OG11bz1lRW5VQmhtQl5pS09h
V2o5LWQ7MyRVaVVSQytzSyV3Xgp6OCZudCROVFRKMz5OYkBaNFdmMnYlTyVBN3laQWdjNHx7bX1l
V3IkaC17dF9uX3dwanpqbTcpTnRHPWNlXzIwI2MKelRseCVzKzEtaDtWR0N9JntANmxSTF9LR2hU
JDRiT05KRlFzaSpTSFhrQTlXRV9UOCVjOWpAQ1Z2ZV9QcEA4UDdtCnp1dXcjY250OU4hdHJBXj41
eFN1JFJuZyY0enxENm9ranI5NTZ8bHUrZz12PVQpcns2Tz9oY2hpeG82Y2tXKWdzJQp6dVdyNygr
Uk4qbSpeVntrN0RLaH1iLW1NNitzO2ljR2RDSWhGalFtZXVBNyFRRSRkTUYpKzMzfSVlTTduOyo2
eDUKenp9RUkzKm8qLWEhdz9JYSlFQzdxWlpFUT5rNWFhQkN6VWtgSHR0TmZGd315dC0qPm17PHwt
VlhzdVgrZU9SLU50CnphcUgoMl51Zno0IUtKPTAlVEdEKmFhZDNucFlqI3woen1EaCtCfitgeWd3
LS1HQ08pVkx3azNHLT1uVHBzVEB4PAp6Jio3SjlUNyNwZURoPSgmI1BjaXsldUFqPHY+UHN+bS0z
UkFOJVh2QGVuaG40JTdDMHxgaVQ+b1RhYDx4KmQzQmUKejNYWE56c0JnYzw7YjZzPVc5RlZWdGsk
KT1Ofn1WOU0xUSNEI01TZDVAX3lxY0RMK25CKD5oPTAtci1BVEQ0VnJ5CnomXkR6YHt4VTIzcGo9
O0pLe0NWUGJtYmtzYFh2P1FXYChgRnRxa1p+d1ZhRkhyPndjKmcyRkA5ZHlBSm5TJjl2JAp6Y0da
WT5KfmJ8U1NXPGt8LSkqejhDKzE0cjFLc0RrYlo8Tyk3MzsxJlNgM1FTWVEqI0ktUEZJLWFPS1JL
TDNicyMKej9nV2ZwPipKUF51PzsxQURTNWhpdVk4d2o2M3ZaMG92JGw9PTUqc3hAcjM9SzAqOGRI
N2FyZyVXU1JzeXdzdVhDCnpKemBaZjhXZWFLSHxtemUhMkdWfC1vay1JdzZ9LWkkJTV2fmM2PTtm
aSk8ZCl6SX1XISpscDZXeTdxWDl8QX4/Kgp6eX5CQWI+fWR6MVR+ams+P2hlV3dLTDhDdGhrQiM4
ZGZxIU11M2o2blIoenYlNyhaWGlBUzJ8fmtrQXEzUlZjIWMKeklpMkhlPXIlS1EjeCpyellBe1By
K0hPZG1LS1Zyei1LWUJIc3pMWl9kNlVkRmZHX21Ob2Bea09TVUMmbm9WU1N7Cnp4I0N9ak4tQk0j
NTZeYTRUcmY1MiVUMSY/UE9uaiE/JjZVQlRyWS1mTHV3Sjt4RmUldnlCc2FZRyNxP2wtfDtMaAp6
RmkpTXxkJDBXQl43aTFOayZ8ejNGYWlvOCp7MH5aSyV3fnUpWXglTVJxaEZ2Rkc5a1YyZm9ILXND
Pz12ditQbyQKendpJVA7akNJP3tuQlNsN25JdzgkXjJxSGYrQF5DS0M5SWJpVl9LZVlXdXRkaypY
JHxuayNwND9OaUA5Z3FzRnZWCnoxa0tibFp5MllucVdRd25ANSojMS1PayNMWG9VZkd7SVBjPlRm
PHkxdzd3YnZrQiYmaFRLOEMhUlcxfWJ5NjwqdAp6Nj8/IVZHKiQxez4tcHxraXJjSSFpdXA1UldX
WkBkLWMwdFVpS3M3KSNtNzJzI35Pfl9tPUFwcm1xVmQyN0lmZk0KeiFfalNYTik9U2hrTUgrMTdi
elcyKmMwK095RiRIXyVfN183dlJ5VG8mfHM2aXtmNW08NykxfXlgK2txM0c3ZURxCnpTdXAhKipO
RHk7b1A1JmpzS0tzVEE9XllKKjMwOEtieWVDPGlHYCo5VzY5R2E9bHQ3Y0BnX2AocDQ8Wm9lUyop
Tgp6bHl5UkJ5SUZJIThMY28kcEB6YnBLMDl9cz9FTWxQN2kyV2g4NjJHVz9WJWktI1A9KHdva3Uh
flkrTjVqT0x3UkgKemg3RWUyKDdXKWQ/ZGVuK05Be0gkcEM5K0FwX2NiRjdkeT8wXno7ajhJYyg5
RkVxbH18Kkhfd2xBcFR1Snl1Jkx1Cno9U0hzal9XRT9jT0xjOC1RQElqOWpEOUFoVkEoN2VuJGpN
MWc9OzlCRXcoRThSSWZQaFNZRHZ0ZWFDX3wkSzNIZQp6UGRNTXtIeV82dWQ4U15sS0E/JT9xVHA3
JTtIaiNoJVUqSjJlNzZsTT14STNKWTVNYT9DbkZyd1A3U2w+YV4tRjcKeitlYWJ0PmdpU08hd0xR
JSRpdXFDRGxecnBMcnJAIWxfJklMX3RjMSomLVdsfER6MmE+ek1Nd2dxbihvT0xZMkEtCnoxeCpL
bnlxY3hEbiVFX19zX30rS0pFVzN0dEEwIWt5Xj5kUnczamNVWEt+aT9VIyQjMmU8ZVJYbyNBbGk1
Kk1YIQp6ZCtvNnc5Oyh3R0pRbHE/LT9FdFpzdz9lYVhWQW9pZGJ9N3AqMEs8a2RjUXhxJkVTUWMh
UkJaMFghbWgyMz5aJnMKej5RX0RMQ3o9JEFpSGRrIztFcTJ4UV9ZfnUpP19GUExOI0JzSUs9WUJS
fVVNTngqaCZmJnJtWGB6O2dIcjZERT5ECnpOPEs/JWE8PiFyejMmQWxSM25eWTlBKCZWNGF9I0Mq
aUElSSlnK3BpNGNVODB4UUBNakdgO2hZeGM5cUQ9ZVhJJQp6SXx9UHtxTk45cFpNe3R+N3lOfktE
cjRLZXs9MiNJU31geH44NGE0Tk5lIThGe3xKPz9mU3FoPl4zK0FNWThIeDgKenNfSjlNZ1coOH50
YXhkXyFHdUEkKGJPd2JrfChTKSl+Y05Wdk1TOVRsJFhsaFI8cT09SmdUKWVOeHB7cCMxWSNOCno8
bFp5elBWdGIqWSFxKHJuQV4hfWR2dDNgfDB0QH5tO1AqJGJ0VjhteClXeDBSZ1Y0fkJ6R19UO09J
Sz9lYio4eQp6dHpLK1hlWWF9JF9GfGBwOGgqRDVEaXdRJllDVyZsN1M/SWAoS2hZO0BgQV42STtV
KV93fmZVMUAxZzgmQzFHeSQKejlXMj17V09zLTl7aW9RNEtSJW87OzxPN3p5QlkkRWJkTXgjZ2hT
Mjlpd2JnPD5zfTczTXAlfkBBaTFXYilfMm5WCno0Q2Q4clBHfV5CVGE8Qk97K212PUxeZ1VwZXdu
Z3pvclN5TjRhYE1SUGZAa180YkJlZGIjTGVTQzQ4VVd4VmNXKAp6X3VFNlU5eSlJaD8yWkBaOV9C
YFF5Yk0xSXtvMWVpZEk8Pz1we2NXU3AweGBZZD1EKFJ5QDc4bFo4KCNHX043K20KelRXOXl0dyEw
YTdkflBYdVkrdVAkKl5yP1g4Kz1jfjx3UWUpM3Y7aWxZZWA+OD53fCl4Xm5HPXMhWTAkYnFjP082
CnpxQmBjLShPPkdtOT1LQHNRbSNvVWFEbChpLUVhNFVXSjtVfng5ZSM4OzdrR1VefUI1d3c3ZlhA
Pml3eik8UWk9ewp6dz53VCROfCk8Q3NpTE5MYD1vekkkKSNVa2thRSYlZXlgYEA5Nmo7enR4MyRH
KWVsckEjKkA7VDlgTCExZUpyYmQKemA2JVhvI2haO08pPSExbENMODNsQkpoVUEla3NYZFQpfjRy
RE17TFhXSCRFMDF+MkV4bDBjM2pleG5sMGkrPWZgCnpeZF4+bzJyPmZMRUllZGZzYCQ9VDh1UWVU
PD48OS0odEM7PyllVXlhazR0eDwhdTxeR3heOUdneG03KD5EZ05mPAp6dD1XJlhedT9HKnh5bkR6
YCtRVjQqT29Kc2NlMVJ6PFdJJHBzPXpXPTRVUHVvciZVUDM3JT1lJnExSiNTdDYhOTAKemtsP21K
TX00ekVRSkdHdm1ATFY4biNxXilWSygzUSlaY0h0bGNee3FIOHE+SF4oNnRRdzhWY3MoLS1zVnlY
bEVECno2cFFscTwxI3w4MlI0MGJsSEpFVXg/cTY0IWdsbDY1ZXhEPkp8QmtiPVpyZnFIPjxvN1FQ
O2NEcFlDakZ7QV5SQQp6Oy0xODRwQiFpSHF+NHBuYWdgQHlLaCU1KXlFSmdGdkUrdTwwS0g3aXo/
Z350KiF3SGd2K3tiY3h0JVlkNkRRUiMKel5FOVd7Ul9hX1N4VEY0OXktP1M7SFIwe0okNCFzTj1S
U3VWPSgkb0JfOVN0R0JWJXlZJXpaPWtyNSVyM0ljc3V2CnpWYWREezNVMFh1ZU4xYzkhbmo9LSRo
Xi1iUSNCO1YhMElwPzxFKzhiX21seF5pKEJANUotMWNQSCVJOU9uQHpTPwp6Un08fjZfPyp8cERH
TGMmQSE2UzMyTCFrfFB4QUZ0UDwwaCokdXZvRjxMY0RzNV9hWTQoZndmYUVSdjREYEt+MEEKekJW
TFotenw8SVIxXjApcXJgKFZFPjhRR1daaHhIYTc8T0VYWCpAfkJra00tKWhzUHJNWTR4SipvJX5t
ZVlXZyQ2Cno7eFAtQylVKSY+Q35pQzFpPU1rc1VIT3pydWlURjdvfWtCNlR9SUt6NjJYbGRueVNq
KyVFUys8Uj8yKzA9dn5eUwp6N1pVZkRoUEB0NT1wVXwoY1Eye2E5Qkh9MlhGc042SGxJfFVRQ1h4
Rj49dWZmWjw2bGIkIVUyUkExaGVKcSs9WkUKenEqM30qT0tleHk2emhZTU9RSTY7d3MjNyUzZCol
bEN4dnZ5d3B3dnBAWWpZbTlzaFdSRkx1O3FubXplfHZ1fkc8CkxEbWY/TyRvbF5QM2VvQmsKCmxp
dGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
Y2FudmFzL3Jlc291cmNlcy9pbWFnZTEuanBnIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYW52
YXMvcmVzb3VyY2VzL2ltYWdlMS5qcGcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTU3MjFkNTBlZDE3ZDAwZmE2Yzgx
Njg2MTA2MTFmN2E1ODQ3OWQ2MgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTIyODkKemNtZUhy
Y1ReUDMqSmNreGpzbF99UUtBWUcyMmU1ck4pWDlPa2VvQmozfFdHcDJ1alheTTlDbUkzYHIxPkVK
P3pVCnooLTAmfSZhaXsmX2tNZjYtTHQjQD9weDxuKkhnRWl4X3pIcEp2RyZSRj4pfmpUek09bENr
PW89MEVoI2AwUlJgWAp6O0ohejBSXnxZcHBhOSRmMDAwLWoyYXkwNlhvUUVadVImTFM7Iys3TzRr
ODE8PW9VUXtlWXBXKHtsb3hKMSl+MG8KektaOT1sPUFiPSpjeih7c00pVFQxa2V+UH04dXRXUDBo
cXQlJklQamshQyp6UzROITEhYSkzRzU4VWVzVlJWQkhICnpQWj1QUGRrfTdKWlhSPVVheytYVk0q
T0ElTSY/R2BDZnBEK1pwZ2gkTWAjXkNXQlM9YkkzYilvMEVDLXxNfkdXYwp6MipTPyo7VEdaKjZ5
ayNiMEduVUpwR1l6NHtGNDZTRk0qOHppOF8kJjdZNU95Qj9BQnMrQllVUTFpfkUtey1YZm4Kellk
R2QjSlFEJT4jbFpsOUtAa3sjZWVPbnIwUV9IWlZWcCsod1N6R3UhR0cqdiFickAmXy1aODlwU2ZV
fk5iSjl1CnpJVEdoVHV8P3drIy1zb2NpVDR7e0wxWDtDZTImUTFLalQ1KThfYnZiQ3c/QW8/b2Bs
a0s2Pj8xRzUleTdjJFcoUAp6aSZIO1B7UGlSRDtyZWVyZExgMztgMmslbmZCRy1JPXFDc09HWENL
KzFMSFVVKGhtTHkje0JEM0lzQHlzb2ZYWiYKentzLXFEOFotV0F5ITcpJjwwWiFiMmNQZ2k3KElr
OGQ9dm5mTkMqdngoR31+elRtQXBlaFVXZng2MX51djBiTEQjCnp3PFBISDBsSHE2T1IwYkN6eCR2
cUclJUc9bGFpQXwwfHM9eGR8ck1zKEc5eEFMZjZZKjV5c0VRYHElb1MoKzNWbQp6TkIrflViOzxq
Y25AZjhSSz5zJlNwRCV+ZGcjfSROP0BqcnVDNT1ZNnJzKFNOdE4oe2peenBZSC0ya0FBUyR3RmEK
emxhciRtN25lUHApNXo0cCpvQFB9IUgmeiMkZFFZT2xiWl89NXFFUG1HTzttcFZsWHpkdShCNnIr
XmxWMldVdys3CnpXel56Vjs4dCp5R1BBVWpePztlRmNfXnh6Yy1XVy1ubGcldUZeSVNjeCFGMHxu
Sz5DVHhZXm0tIS1kPkw4R2t3Iwp6TGdQeV83YkMrQGlqJDJmPDVMQT8xfU8pYTgzUjhqQTE1fj5k
TiQwfFR1QWt5XnpYVW9vKyN0KkFZRU51SWJDQDwKejliZ3QqSmM1RlBULSo+WTI7P3JCYVRvNHg/
X31oNSpCO0xGJEhQTjJ4Q3pZNChhRmxlcDVmQT9rK0ZsYmxQRHdsCnomYzh5a2JOdVZ9enQjU1M9
eEItRlg1Znwle3xveHg7aHpjbkdzKUVDdVg5SWRuQztKcU8tO0RXWXxaUzw/NDk2Zgp6RjMpOFM+
PlAhcFV9aT8+WkF7KDQhQiYqPD1ZSTRMeVYqa3tDb3tBZXkrUGdPN1E3NExTTzJwP3tVUndpbXxC
XjsKenw4R2N0cVo3SSR7ayllTWRoen17aHY+d2NuaDMkMmpqaGQwb1BNdUBxPiUqfDhnbClZMGp8
cXp7dio0V2dpOH44CnokdThtRndISVVmeEJRIWRlPjNvSjJMOD4help2KjkxT05ZSjs2SkJGR2tm
JUAheGVvdDFUTk1BSHwwTV5EaDZJbwp6WmFfZCVQNjZ9c1hia30zRyQwKVNPd0ElZ2dGZzBSMDJu
a0Y7czc+O25eJXd6TFczYSY7OWowdnhDSjVuRyNLfikKeiolQTNlYHNNNUxDPTM4c01zSX4lO0hw
VTljcyMyNmYrPHlPPEtpPHdpVkxJeUA0ejVOMER9fCtDSXd4NUw3JGBuCno1RWtmWGA4ZkBKMGJ6
aEt2OU5KKUAkZD1JZ2JNVXFFZUgoOHp5eERxVTR7d3JMWFFLT3EqIUQoY19nc09SZzc+TAp6cDtz
Wms1b3gkZ2t8bTg0c3tLRWhkNXZMeWM9Kj9AUSZRYnZWUCg1QGB3ayFmejU0PSFMUSlTT056Mkh9
Snl1aUsKeihBMFhXdHolK3BXXlEzPVdlczw3YzUhdWNfanZpcnw4K3AlbzQxaXMoSmBAY0A4VDBh
cS1TSmlXI3tEUG02bnhQCnpSM2ZVWFlucXpCdzZ3T2hjWFdPbTcjdGMjaipPMVkmWXxXUDdNSCMr
dVdXN2E/QyRMITkzQ0JDPk8jTTZ7Z1E+Zwp6eyE7Y289XntueiFvYjc/Vzh6JXUwJTVwYjNNYStI
eTIqbzBDWlUzMzFTTXlMX35LcmJqN1RlSyNBRClCe1h0PDIKej4mTCZ3JXMwIWpidCZ6cXZpfnot
ZSphSSh7dEVrI3U1bXlMITElOFA2TVdmNk84e2VIVl97P2V0VD1lTSpmQEFOCnoqeDB4UD12Qk5k
WGhjWVdQazduNktzeTJiQF9fe2dXOHZkcTxOVCFqVXRLT0goZUdwVTdoP2IrODIjPT4zTUtgXwp6
Zmw7TChPOys1NipycDhAX09mbiYqSWR0U3B2T2omPFpUVmBDe280Z25JJjB6VFkxYGRmdWgqZEl1
YmprWWFrNkAKenleIStzKDE3SX5aK185Ylo7X287dGQxQDFGMUBIOF9XajNvY1ZwJFkqRjE2ZGRs
KDtvSj88ZTF0aUtVNmUjWEleCnpeUXNQWm52SWkmYXsmfVFpKlBIRk91VCptdDxuK3U4KUxZSVlY
ZlYmJFNhNnFIQG95fiZsYX5tYDhkdGF2V35QbQp6e3psTmtZczE0UU9KWHhWZCNrKyNqVV9QYTde
TnRfXjlsNzJNWUt2S2hRbShGam9YX0FAXmBpaTc/dWFKSmNjcHsKej8+PjtlJmkmJClWa2Y1Znho
YVh4VmYhU0ZzcGtqRGY8PSojTEhOdENURDFfeDYpWWx9MGh2MC1sQ1JfTG07bj9tCno9anE1P2de
b2VGIWhuWVlleUBmU3dmN3lYZj93VD9qI1pqV24hZGY0OHl9LWNWQWd+R1ZiQSgtMV5HcDEtaUpk
ZAp6cX1nN295bzwqIWV6KTZKMklXQjNCJDxgWnpScXlsakErTSQtb2F4Km1udEZtVVBpKjI0YjNM
ZT9PWFhOVEN2S0cKejhUTT1mMkQ0KCgrbWNhQEkzamREeSpmdXE9aHNyK3RqfntgMX4pejY7dXYw
SDZMSH0kcGx8ODZwU29Abk1ENzBZCnp5X1U3XmxAVDFsI15zZE95M1NMYyM3Qzx7I087ZjJpaEFZ
fHlXaHhVcj5wRXczVGxzKHplKDRUTSo4QGROPCpodAp6NE1mSUhqcE0yRzZ7eDtTT1ZZZjU7Z34m
O0pkfV5xPlAxK19UIzFCMitRaz4qNFB9dEtBSzlXIUVMa1QtTCNxfWsKelo/e2R4MlclfSRhZD1R
dnBOKXlFJEBYQWxgflolMzREUUw+JkkyRHJUU31ofGdrQXMhK3c5LVlAM15maFphdnpNCnpPaS0p
bUt0PVpxSTh5WEpjenp6VVA/VVJuIXR1aWNtdntadXl8OUw8cVFae2MhUSlgfXAkWll0P3dTaHNz
Sj1CMwp6M2Zyelp5e2xJPVdvbmMpeFNAJG8tQ2xjYGByNkUoYStFX29qPm48YVl+e0xDWVlvSE8k
JDE8MnFDbCh8SGk9c0EKejUmd2F5ZF98ekxPQyple1oxNGhqZHtvRztKQ2Y3WnpSfF5gVnBQUVhS
MEZ2OCY5UlFReUQ1MWorbH5YKlNVdFBECnojQ3dhYkFwezhNUCRrQURgTFVHJTlncHg2NU0wVlZL
R0V1MjhDYEJnVD9MZWlSSWAhZVF6PW5yOXBkOFc2KnBKaAp6MWs0LTcwdFM3ZTxRRmMwMGQ0VyNT
LUpjaHUjfTZ3KTIkJHRwfCNKaDRUO2o3T3dtO0ozaDcwKHU7Jl5YVGpHSFEKelVEeFZlI0daMFNu
YW4/ZEVfYTtUPj10ZyRJSl92TEFmc2d6bUk9UCFeSEZpX2cjN0pkO1JScXBrSiUzNWNecH43Cnop
O2srUz0pQCNZUkg1QzxkSnYpQFBYNUpCbXYzKzNsKkJqUzNxOSNMPHx3bzMhJVI/NiQzbi1OVT5u
X0dMNkZafAp6byQ1RW5jMHl5NnVZJWU5dGNhSm56M25EKCooJXZyZ0VtSz5IX3VZNkpMc0ByM1hy
dW0yPCNvNHVFeTQkI2otYGUKelMrQlM/ZD4/cGM5dEh+VishR0wyKEcjI3xFK0ZWc3ReS2E+cjBp
fWt3U2FhcURNXmJBXzE5eDR2Mjt1NUtzWEBVCno8OGUtcmFSRT5gNExlbXRKKm19VjU5NldzZWNA
QiEhUDIlP0okSWB6TldNTU9AYWIwI0tsYUAzcEdkJlMwPVZtUgp6bkx9dG5kPWtnVSZofnFKO1Mt
Sms2ey1RVFNDfit6cCQlJnR0SXVYXkZENypAM0NaK1M+eXphYz5MeV9LNEI9b0MKens0VExIOSVe
SEFlaHZGb1NjR2B6KTxUJSViPHd0P3hvWWltaktoXiU8fXV+Kjlqam5nP2gmZTFrMFFGKD5kfF5D
Cnp4MmEqaSR5OTRCN29NMTVeMXZVMG53eTdWb2khI2MmSWA7bEZfbDliYVBgP15WbnZtSFVMQFpJ
S3hLKGt5QmZSUwp6RlUyST1rfT52PD03OHlCREVGKjNRPHVyVnVGe0FPR29YazFMN1Q/UEdYVEEt
RVY8V18mJmleOCUpVzd3dT9DVzkKemxBUkp+JXRJNT5JRFBZUkN1SG5BPT4hbHByXn03IW4rNDg7
YkZGI1hrRlZgT2Jvbk82Z0x8e1klWitiaE9ndUVFCnp5ZH1+WStxLWJPQkl7Nks7b0p5aVU4N2hr
U3NEa2c4cj0xWVF1Qjl2S0pPYWxESl8+TjIlc1ZvPyVMTz4qdn4oawp6VUlCTjhffD4rMXRKNk1j
S2xkRSllRHJGO0EkSEFZVyU4KitTSGp1PnRwWH1hS0xQamlsKHluXkZrTi07P3VYfH0KenlmKWI4
YVhGKXtLOWQ7TEJ2PUlGQ0AoSmAhSjFeYkwwKTBnUkIhX28pcWFiSVQ+MElGQmU/WUVTPyF5KTtp
Qi0/CnozSDteaytzTHI7KDYyak5XY2t3QldsXjhYTVZWJFEtbz5AWEVgMnEjVHdgWD1eMHFhM25Y
OzJgVmtMWE40NWs0ZQp6bCYkIWo9XntHfXU8WUtTbFdFNk8kT2IpZXtIaTZZZ2ZwbCQ5UFZKfklY
dmxHTUY7NFR3QU88SVp7QiUjen04USUKejV+bj5vXyhyMEdBazx9XlZ4P0tVQ21INHJAKDVTVFdj
MmxPOTFtPGE4SzNhNz5jb0J5bE19OT9LbVgqcGA+fEt2Cno+dFdCdEpzN243Xzdjd0VpUnd8UWtI
X0ArKiMpcS0reWtQJiNiOVV3aGJKQztzNlF0YG9OZFdqK1IlbndeZEdjdQp6cm9sIU1BV1ZpZDgj
TUd3WUhoQkJ1T0dfam8oKCU3S1kwcTsmRTNgSGtSI2UjM0FAa0pRR0xqU1Y1N0NzNU9KNyQKej0z
O0EmYyViOyVUbjx9KERYUlU5KkMwKU9SPlQ7WXlEY3hBI15SY2B8MGQjYl4lemcyT3JlKWQjcEI9
dFlJajUxCno7MWBrfSQ4PF50blYhQmpUalZXaXVQbF9VOSl0dk8jR2FIXnFxNHg+RmBzYjBZPzh7
e2s8fXNFXnA2aV9fRHBxWgp6RiVxTF9ZbT1PXmR6R19tRzAwfVp4dlNRQ2V8LSk1RXloSGptXllN
aXBLM1l5eWthS18oZWc9S1dNcllkR1ZVTzQKenlPZXdOOE1tak5NZl4yQT9ob3VoM3YrdV5AQyRn
QGt9Zn1sPDZDISpadld5X20rMHpVKGE5S1QwIS1NPD9JWSs1CnprRmYxcVBaPkxtMUhiU0hRJU8r
cXFhci1Aem4hYXlSP052WkZEUnRGVjRMUjh3JUlhaGo9REY+bDhuUUVWYFZaMQp6S0d3cHJlTXlW
MkdaMHlzWk9UKW42TW9uJDg+THRyXlNIfipDaDRTUys8NlJzc0E8O3dub2t9UCpxZjsldzs8Rm0K
el4oPU01b2YwNCgmbktJbkJrP3lpNCN8NiVXKHBlOUZxRD9iVnQ7YmopeDJKVDhvRTAjQlVNcDFM
eiRjaTR3Vi01CnooQmY/fU5scHdpUDw4KkZvMFZuT3tSNyNFcjJhQlNtJmpedEBITGNZaGV6PFYq
UTRwdkFeKihuWnhaKGNGZ3tJXwp6UEAyO29eJDQ4aV91MWB6Zj1KQClrQmlNdmYqPjBtJWIpWE0o
Xz8oOSNma1pPbjxtdFJPQ2BGQ3JTK2xganA8cD0Kej9pbjlAVXBWJj9Ual43OGFuQCNrdVdUP1lf
TTZZcWg7ciR9UitSaHJ7bGA7WSk0VTc3NihLMlBheTtEb2J8WmFJCnpNNVVtY0t9TzBHZ351akg+
cT5+PDcyTnN9Oz03JX14YDxqJCZmaEg+K1JqbTBRQ14mQz5vOCRFQTd4cWUhdXVnMQp6KHlnV3da
REJwZWN3TjYqMVNPKDE1VyUrNVJWTFdjbHdhSDxkYm4mTD5Va3lqTlQ9Z3d6XjJMcChgYHpDKDVX
YSoKeio+SFkkWD1Bc2oqWD96PmM1cGlSR1VWKm0oP25CblJtdDI3eXFeMFFTMGZQaHd7WmFTVDNS
ZkByK35YaUZ6Sz5CCnpmdER6ZGY5bmtQejQ+cj8qWXBuaHdSNHt7WWl7PW0qV2A0I0RWTCtuQytn
e3deJFduJFhEPiZWPGxAXzV6WmxETQp6SEhIR35Be252ZCMqcVlEcklLfkJjO0dQemQmfmhMT20r
VyQ2N0cyRENtRH4/bnpNeFpuLVUhTGBwRjB0aipLViQKelVxeERSdlV0YjBLZURJMXhCI3hLbzRz
YzMkSjFTdXhxRTtPalM1WTVTfnRpWG1gancoWjY4REdeflNfTGRidT1JCnptaHAxI2RWc2kjSDxJ
fnJsezU8IUF3byE4UUNpUjIkMG9VRFVIT0llezxSKG5IWDNBUF9tN207KmFMRFk9VHc4LQp6KlVH
ZU0wY1JGSWFpYU99dEE1eTVsaHcmNjQpJTh1JkJAPVJZRnQ4Q2tIdVlPdjNHV3Y0NWxZQ1Q+cU5V
enc0eTQKekFKMS0xdTw5OyNBOUI9OEwqanVURjBrTHFteDA9cGJhWkcobFpXemxkbHZJMHNadGYq
dXpCfEMrSUszRFQ2KyUrCnpDITRTMW5NJkEoSlNAO3JhQGAyZ0tvPygjWHRgPmZhZGVNMng3akFM
Rjl7akhfYk0pcDNDQCgkT3dYZjUhXiNeUAp6S1hZKV5ad0RHdXtJT289alNOU2w5NjxWYzJIOG9I
WFZhdnpGbTB7R245e0tTK0wkKkt4QSZ3WF44JiFyZGRvbl8KekpZPkZ8SWNCT3xRYmloMzcxY0Iw
UWFFd3tzdiZjbmtuc2hld1dZb21yOWlKKmFSSXpycXQpPU45QnN5XmIzTSgmCnpFMVpBViU4V0F+
OTV9KCNXY291cjQwKGo/dXxoU0YtNjdRRjZsc3xCTmVfRVIrRHhDYnBGTXYxWHpQayo9eFMlcAp6
MUt2ZTxRJHJVcD9hcn09JE5eYHJxTXtXbSlXPnZAWn10QVFhPE1RNCQhR0JCMW9pbHU0I0hSRCFF
QDxSSXp4QV8KelgmVmh6ZkNOTG47dHBJPmdAKChEbWJKTGk3PzJqZHo0amNwZVQ/OTdCdSU2TU5f
P1pBPmtIejlhQ3AtTSVEZkdwCno/PF4mJFF8eW1JYHN4bHJrMkVhSDN0Vmh5aHxURVQlU3ViQ1Fk
SGZHSGQhT0d0O1R6OUg0OFRgYHw4PXskMz1pYAp6QU1Kb3hrU3t9XyVpVTFAOHxGN2UtYENocHlk
U1pmWGxDMDsqfVZWQklrcShhRGtpc0RFM0kzezhUJnZ3b3NMfGEKekpXV09WWlEpUC1kJm91c1Ja
KCk0N3ozRUBRfi1NJEM1bm5KI3M3SmdOez11WnVLbFlNdHVXNlVaeTBgZjU7TXQ4CnpaTzthRDQx
OVZ7aUh7QWJDSEwyeEsrYkQtJVJIbUt6diQoSEMybUIkIUg2T3htTmczWFNvKVMhT2hfbHFlZWIw
Mgp6aWY9Tj5sVENZSUtsZkBfLTYtQF8/NSZLKV9TQk5zeUxjK2xkJnx2cFdXJT9WbGEhPEhES1lv
MEU3eGM0O1Uza2wKemktSXo/P0pqXyZAVnJGPS1pdnxiPm0yRXpZU1hVamxgbmd9eUUmc0tiZ0RC
ayVlRDRUWnlaVUFoYUB4a0czXklFCnpsbFNaVylaX0AtSEwjdn5pT1NmLXp+Z2Z5RUgmNEJZdCRL
PENqPlhwN0t4K0JNPi1XUGRUekhFdUBPfCQlTj1uQwp6TlNpKExPTUFWcXlYezQhYEo3clYkI2VW
fTZfamQ+a1IzVndfUSMxJj1ySUhsMmhXKDZwYlNqbW9Sb3FtXlg/WUIKel5YNUJMKWVEX2w5SG5F
dU1KSStyNCR6KDFQPy1yLStgcTBVOXI1THhHZT1WWWNVTGlyOX1DTHs7KlNST0dgNz4kCnpDQ2p7
fXZRYmF0ZDxnNEVjXkgrNW1UT1pNWikqOXxqdG8mN3lnZXNPQndeRHFiSCZINktgcFhYS0Mpez5e
JUNrUwp6LVFtblA0V2ZSOUozdl4lUiY+UFEhTktwTEdgY09uQShXe31AYHgjLT5oU3VIRi1LUVJl
Vno3YDM4fFpPQ0tSbzMKekI7YGt+di1lYE9vdmBBR3lsXmRjKjJtOFk3ZUJwbDN6TXhqX1p2UFEq
Mn41a21lX3ZUT0l1WVN0Zng3dyFQQ093Cno5KDNtTDcxdk9fYn5Semk7WSFANkdYQ0l7eUJ+VEpp
WUBATk8+QjktJFZUXl5YSnlpPCpZJnxQT0Z0O09sfT5KSAp6elk0aiNIX3xSbV9wRjF5ZG00ZTxF
aC1edUxVY340QHlkUT9sSTh4MDxLZnk+LVQydzRiND8jNDNWcnN0ZTFTUXwKemdnfiZNKlQyeG1P
d15wZUpHc2JNUFJzWmpkOWQmSmZPd3soN3xVNkxofC03VUlJVTdTSjc8ZDJvaUR8ZXhQYS1yCnoq
ME5RaXF+ciZgam50fH5KJFNUND91WnVvb1B0eExJalczITZQSHApa05GSzBLJShRNnI9SH10RTA/
WlFzUFluRgp6dlU0RGhGKzVEazlBNFg2ck1XQHVqKVMwb0ptRHdmOS0obmgyQz19UmdtV15vYCUk
elh2flpnNEVtQWk1NGhHLWwKekZSJjdoQlcjZ3AlSSMmM1JBaz4+NXQmeCtVcER2aiRYPlZiTXVf
Ym1uJkN2djU8JDJOWTk1I2Q1fDxWVk0jeUEoCnp6O15NMEJXT2p1dzlnSGNDJU41S0cwSmFja3FW
S05hanVpaDdHUjF8MjFEKSNLPThWTERzdGYrVng3SEgtdlpmUgp6bE5IN01VMH0mLUBeR0xubTRS
blR4U0FAPEAzUzJ7IWpXeHAjWSRGVnE4LUZBTHExJCg+IWo8YllwPCEmdDUtaSYKensre1hsYHZv
OCMhWChiI3FhNyt7O05qQUMwb1coS2wpNHheNTxZUXc5Qih9TitgTG1jcyZ2Tkc1T3NRQGBSZSpg
CnpEZnh8d1hafFlIJnc0MUEkTFQ2fHE3RUgyJVVNRnxpaV5WXmUoaSo8SmlvT1J3Vyt+MFV+ZXBA
eGc3YihvVl9+OQp6MTlwYFZ4dVZqV2tuUFUyRmlyZlpiKmteIU9eJmNwJm9wY3YjI0BFVCMpI0dR
aTZKQyZDLUZuI3JhS0lWNmBsSlYKeitAcWU8cE9DJjtReVdNWCVAWmxMNkUqTypoWDJndngqT0Jy
MkV1bFBhWXN6S0lia19GYEl9MzBMPklAMCgkYmU9Cnpaezw5NFI0UUpBN0s8M0BZVFpeKF5KWGw+
b349S1AqSUliZ1dGI1hUaEQwSk9Kb2x+I29sM3NNb2AtTmNgbnpKJAp6PnlJNGQrbn1hTjhJTkVo
b1l+PUYjUFRMdEBFLVBSXkNLQHlufSlQI242MWE2K34ociomOVE5ZCRHV2xzU3I1RDAKelBYI3Uk
Nz5Bdm9KQ14hYnQ+Nyk3RWFJR0dtVW9MVkQtUGN7ckx1SH5yfVYmcmppVzM+bCU5QSo0VlJtMlQ+
dWRnCnpjWjJKLVpgU3FseCZnc2h3RC12bXdKPXV+UkM1Yzg8fFVpVnFzI1MzZD1PajZ6PUJjWkFk
USszbkJ1NUFEJTkySQp6dnlDeT0rYlFtZlRVcURxdVJeKT03OXE1RkI4VU1SdCF+c0RUX1VyM1l9
ME55PFpJUUQ3cmE7RWlJX2xmUlo8elIKel5tYCFleGdvdkVxMl5SQ1Y9Zz0yYHg1bnFffnl4d0g3
XjZKdCtGcX08QX1fcHJmfmNgR25rQyQkciU9ME96ZzFSCnp3YX04Pj5ifWJyc2teZ0hTMCRUV01W
NyNiO1gxTUQ3OXJqe1l4UD5oQ3Q/UDUjNm9CNj9FMXN5PDBFITwxQEBeYAp6TnNHYzF0WDtRU2dg
bTJ5clVsaVFTdUBUNmkoI0huLTImfTYjK29qM3k8fXQwX1ZLRC0jNHdgVmljQzM2ZDJMN1UKelBI
TCNjWEFZc29zP1VXWTF6VmVIO1lEbStpNm9FTFBIJlNkPFN6SE0tQ157fm1DcTslcHEzfCZVbE9Z
LWUwdnpMCnoobVpNblliTlBkSnQjVDBuPn0lVWBGTWN3aD1zc3tFVz17SFJUK2pgX354QmclUzJa
KWZrbj4yTT57XnVpcHJvKAp6Iz9RV2JMWFBSWDF1c1V+dEthMzVrdVJjcjRkTkJ9SGpZIXw2bSlM
NlBgTy1kQiROQFohZFgyUEpYV2pVcUp9KjwKem5IbyVrYGR0c2w7Zndid1hhQClAcFB6V3lUPkVH
QFhsZ0M7dC1CVWhzOFMwJD1RcnNWLXwyN1lNSmN5eDFicUZUCno9ZEokOFZlV3V9RHs3UGVZKTd7
NVZyVmFAMG9QM3ZIcyRTfip7UyEhe044R0YqYmAwQnJLU3IyRy0+QnYkOFNzbgp6K0ZfZ3RoS3wp
aU5YRTF0aiUwYzlEITt5fTd1bWI7ZFpQS1RCO290bzF6PWYocWZqQkdwVVRZbkx8QkhseDVEYyMK
ejJRazB1bDNjUWBgWHY5WSZMI0N9dW8kKUNlVEI0QXlYWThvaHVZPWZyQSt2TmN2K21VZzxrQmM3
eEJ+VHZERFkxCnopaWM0R1hET31JNzx2d14xJXdzPzFXWk4mNFdqd3hVMzBGbDNpbShROUpffiRF
al85bEZETFBpMn5qRiYpd0RgYgp6dDJ4TVVyfDRaUG4oZGZONVZvYDU9KGFjMio1JUpKcmxDdCZ6
ckRHdmB9RzFTSEpvTj9zanJYZGUwbGAhaClocSgKemV0ZXZhWV5rQj4qUV57YEdzcT4zZHB2ej5X
K14kUWo0dDFaSD9MV1FuRFcldTZ3fWF8P0llOXdqWUl6cU5zT2dzCnpie0Q1PFotOU0rOExqYmsq
QzAocV5KfHtVaUN9K0puNH1WZHFPPCNpPWRoPFF6ek1QKmMlfUZXQzNgM18xWlFeSAp6QVlGMkNA
X2Vee29mc0hyZ3t+ZkpNOTBWd3doOWN6TCUhaW1jOyN2R1VQKkoham0lZisrK1hvRm5EKntYN1Ym
K08KekdPQVhOfEowJnVWcXtHYmNkazA5O1QwVyFnX2lhJWRuVURadmxJYiZJSW5NO3dfayUhVEB+
V1dHPjw4ck1LYGpLCnojeW89blBmSVZOd0J5QUlpa2B+XmlDQj5RcVJ9QUlmSDZOKVVZVSZ3WD1f
ZlFYa2pLejtAcElqRjB6ZXw7P3IweAp6cCVDN1clcF8oRClUOVNkSCF8UDduMD8jNkI2JElQX0pT
TGZXZXMtXjRhKnZhaStfZFJJMn1EYEBpYVA3JXUyQz4KeiYjdWJMNklmRUZeUkBAPVRvSTx4ZH1w
aG1RJnA4dzxGOVckbkVhbGV2IWJnZj0hV0F9bE9fRVohSzc8bU19LTVrCnpidmB5KihtfmVrOF56
WkJSaWhudWd5fGcmYmFxPGE4YCsqTXd4S19zb1o1X2Q8NE1zVGd6USQwYWQoNU1DPCNOZQp6TCVu
UVBjcj9yaWQ2aH5+JHtDeUF5PD94PENZN2NJYz9FclBTcyFuYyplJjI3NkkxbXp5bFBVJmAmbiNB
MTd1NzwKejl0Xkg3ZDBXWk0tWG5WeUttIXc7Kko+OHI7VF5VQWxDZVJ2TS1hOFFwSCpoKTglJiM7
T0FEODQqaG5ONjZuXzRrCnotYXtYVSpfN19WYE1OUUdQN344dyNeZGZDNC1EYnM5bVIzQnltTiZJ
OGNkR08haCN5QiFEbDNnMUU9fDY4fFhoNwp6QDN6Q2Y1azJ+ZztYezFPMyYwNzNCWk1IQkQ0czIp
SWd7dFpoKDg2TCliYDg3OEVeaFl0RE5hcC16UH0rczc1UGQKek81ZVM8Z0BoITJGVmlENj5YVyFZ
dkhsekFHZGtVMjhedGpsSDYpWEheTWhWNWMhamQrNkozQjBTP3l+akYzOzJ3Cnp7RFJfflAyezFx
dnNIfF56WFRJSiEoeT0pajxoVktidzFOZ1lCRjw3I2glMUIzQ3JuR0AraHhvYEU+aEBMaXd3Qwp6
ZHdhMHFGJFRMa3M8P3VVcTdSLVBfKzthKkdrZE1GQUQkX35ARlZHbUBPamduPFomQXBsSXU0Ni1m
KVJyZUpQUXUKek5rKDBvIzY4Tzh4NyEwbj84VU0yV35OJDswd2NMJURCMXdxeTxGN1IpcllTbVNS
eExMQTktP2FYNHtNMnY2K0w2Cno0SUYkRjs0c19tK1olVXlxdDZAUWFIPzJAZDIzYj1MMEh7T0Uz
dk1wbjZsTkBSKFp5YytsMVhvYnJVTyRsNHxgSgp6dTgpVjdPcCUzVyFsNHBOc2g3SVdWM01NSDl2
eUR1O1RjbEdEUUk9aWU7ZmhxdldiM0RsMn16M1hqSVNxayQqIXkKem1YVW5ITXM0TnB7ciRrTGs1
OWZkWFpBPzgpeVlMcTJBXkFPN2x5WCYjfTh9V2I8YiNCK2ghTVBmZmxFPkY8ODlECnpuV2A1KHxB
dWdKM0YmeGJFSE1FdnhZRG0zKTVWeE0zKE0lWEZxWW44VWYtandad044fHpPYiFuOER+S0hiJTc9
QQp6Syh1SWBKKilrI2VmaiVVN35Wfj9obVBxOHVgYDxgcElgJVc0b3xPcXN7PGg/U1diRVFEQkhX
YmUyZVZpeD9CZ3cKej9VeCU5KWtOZCR0JlRRVmRhc3NFOyUyOzZFaj97e2hENlpmOSg9VXdZYUI9
XiYhJmMpQlVsI2BOKHlLaVF3VHAtCnpAe3x7TSZVbzI7X1pnaVZIUSlOc25hfSF0OVRMZ3dTJXAp
YHpVWHxAMTRDJUdHV2c3OW0xTllLPGJJMSM2b3E/VAp6aGA3KHhrKXM+OWxHd1pBWTU5cyMpJkx8
RVp3S3hxRUA3bWJreXRWVloqI0VLQFZDT1hqaWA+aG5JeXElbDZAa08KelY/MzZKP2M/VCNyKUZv
O2d3ZDgjeUp8cCgrTjc8fnI1Smo1JEY5UjZrPUwmRWBSLUF9PDlHPlJEYVRrJEFOQHdMCnp0Z0BA
RCZRMW5STWpeI1I8UHo7ckIwRkleWnw+VWFePH5HYl9oUW5XNHRTUUZlS31wZTBKdj1uLUZwP2Bp
aiFPaQp6JW9qa3RgMD55K1F+Qz8hNEJKX3BoJlZVWSFPUFc3PGNZe2pYaDdSaXQ0JjwoU3ElOTRi
MnxsUTx0ZlhNKEt4T0YKejV2WU9mazJhPTZMLTUmfWhndXwwVnpSN21ncjMrbVN5Qnp9K3IkO3Zj
MUtEd0dObHlwQ2UwP1NTcFFrfjlhNjRNCnpTbjNqeDw+PU9DaCU7UXdDMm40SGdRSyhxJWZFY1R1
ZDM8TSVgeGFXSDlYMjcpN0U2N2d6LXY/dEhhfn5lU2s7Mgp6U3tJVz1ONWZgMW0jWGxZUDJuRCFs
QlZAVVpqcX58eDd5U3hYbG8mPU0+XzB3ODIpIVBJMFlzUTBLOTNDe099KWYKenRAbiZqY0VzbVdp
PTBpdjl8P0c5aiMyYT4taT1aaSg4LXM/MX5rRiZ1PyFud20zU1ZTVkN0TGt1NyhreihSbXVWCnpI
eHkqTlUhNz5+TVQlM0p7a1lkKWNhb24zSWlmTUZ6RSk1bk9gP2pVPmVYPGdDI3cxU3smPWlCZC0r
dHhvd0xNVQp6KE5efiFufChoODlRZ3poKFdJQzVVUHJOe3dNPkZJcHw5dzVJOyghVHpVQ35Bd0Ez
VmdJd0tnNk1lSGI9VSFXZSUKemttPFQpU0lFeWk2P2tlSSt2TjZjeWlTWHVqTTtXVHJ1PkQ+MTI7
PGc1R2xHT0lEUlJMcntlUU4+U3wqVEMpQ3klCnpgIyRVSHRqdm9kU0NKe3xmZzNYUHlsMnJDUz1n
ZDJyaDE7Rmh3ZD1YJSlXMXdfYzRPMkZsaldTeDFobzk/Iz91TQp6alNeZ1NyLTJGVndHTzw1VFFV
Skd2QnI1UGo/QGhYd1BSV1JMbXl0UiRYTVl8XmdJKWVnWW00JDxReVljNnRobysKeislVio9U1pv
Qlp3MUJ5cmlMeDclJk9kb085aE9PI19WMkFMYzdBT2ctWERPcEhvQlNPUD5TdCtwVntJYClITzl5
CnpSVzRFKGVjSkE0Kz98TSN6YTJ8M3hPS1heP2xZPTZWbUd7cHREJmpjQitHaEVuO2x5NVcxQzZe
QXhUbCgpfWAwdAp6TzAocX5JJl9TOGEhWkNWZnc7JmBocH1+QElkYzZkUiR8Y2JFZjBCZ3VDT2hP
OD5kRmV6S0NiaSRXYzVyVz0pQ1QKemh9V01NOHspRkdjcHlHP2M4NH5icGdMNWdpKnxCSF5OTH5r
RFRHITFeJUJLU3RaUCtGNFV0NjBOaTgmLXMlcklnCnpkNmNjX2Z6czNrdSZQb0VySXpJd3k/SmpC
ZUVlPHFaZWteRjNvIXthNm9vQHdWQGh8bCZvfE1yM2NVY2xGMkRURgp6QFkxO2YrZy1+ZV99KVcl
dV4reVlUPVg1ZDliKy0pdFNXLXVDOGZ6dUNaPEMqbCM0bDEhJTNLdnQwKVd8V15OMGMKej5UWWEy
NURtQmhAQGl9YzJJbm9gZ1lDVVlzNkM+Vkg3ZzEyQUI7ZF8qPmMxVSZNUCFIQEhFLSpyVGZ8Jjsr
OGN2CnojKG5HanJGPUpsLTJ4UCtVK3djeTA4MjQlXitraTRub0t5YVV3dmpBMD97ejVvYkA9OGZh
WFdHaT16XzU/eilsfAp6bzFaQ2AyaEt8Tl95c1ZlTGx0RjxAfUo2PlMtMUNzcDdabVhCKSQma2BR
bT4pVC1jfWZjI3Q2Kzh9IUk/cnBSUzQKelNJdXhqKT97WjVeeG1HeGRWYSF8dCs/PDBKPD5pU2pa
bHdEcEJtQko3N2FIbGs8OzNHK3JJWjJ1bHVzV2kkbyhOCno5JmtmezR3bzBhdV8mLVchQSNefTQ0
dHt6JF9+ZDM+OHooaiNpSiFZJTJrNEdwUyVVI0IyfVJJKUByI30zRnBTPwp6WH05WjgzPG9YVmh8
PnAyMSlsOHJVRkJGT219Jjl2djFBUmJQbzMpe0dIVzhEWXUlJSs4TDxnVnVyKntsJmtSSzsKenhL
PUlETHB6ODlJTkNwLXFDV353VVJmJmVqeX5fYyk7aXZaSi1oei1NRHhRSipgVmVzZE4mYEIyTDhE
eTQoe3VZCnptXm5UKnNNTW1ONmtpPSVPP318b2xZODRiMGdwN0xxbk5+fCYtMTNRWEE8RiFhcUoo
P0h4K1MhZ0hhQzVeTHgzbgp6d19DWSY/Sj1GKHZZeDlPP0V7V0RSR1EtbGQ5dkg7ODxATl9oV3Ap
YV9OO0hUMnx9dmoyY2VRZVR0eURxMXphMj8Kel9LTEZ1WTF5N19fXzk0cHcrSE1QQEY1VUthV3oj
OEthMigwVE9gejxFTyhTWHMzMiVTK1h4MFAlazJ3Yl5pMkdDCkxGSjNxMlYpVENpU1AkbnYKCmxp
dGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
Y2FudmFzL3Jlc291cmNlcy9pbWFnZTIuanBnIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYW52
YXMvcmVzb3VyY2VzL2ltYWdlMi5qcGcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTIwMDEyZWUxMTE5MzM4MTAxNjQ2
OTFlZThjMjhmMjM2YzFkOGQ3YgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNDgwMQp6Y21iVk5j
fDRTQmArc0koNVFkX0xYNiYrKyNAS2d+Xn1HbUs1PDIhWmpOUGF0Nl5TcSs5RVAlI1k+Qn55anRZ
YXEKemk4M052X0tfYEhoWXI2LW1VSTMlZkJmRn1wM243TS19YCNMX3dgKWdkejxhUD9HYj4oTlk3
OVlmSXQ4TTB7KCNRCnpRNWFQPiUrbjEzakV3PEYwMDVXKDc2PWw2ZmB9UWsrWXBZUVNSQk5Pa2kh
NUJeYm1qJWVEREdjS1FSRSpLI217YQp6LXkhMEE5NTRlIT1JMjxENE54SnRwT18yODlXa0ImZH5m
ViV0bXI8NThHPHB1KmV9UjB6fFk0S0lCUlpkYy1CUyQKemhmfX58dX4tPjVII2E1RmdHazsqJDxm
VWI+eHsqQFZzUSNQY34wJm8reDBrVW9Ve3lwIV4rNjBWM2sjSEAmWSlsCnppbWJBVjkxWn0pWmU7
RWszYXo9M2VTbStENzVjbUFTZ35DVSEybSFLMDNnOEphNFpnb09AaSRVZktycC0yWTRWRQp6dmRl
KSZWMzFfIUxDeXN0MVlwXiUzJVhBSEpIQWJYP1o7c1ZCSyFhJmk0Nk49VmFKRyEyYmlDVF9gNWJE
KDtuc28KejAzITFxPF5WQ3YwYmgpR2ApNTdpd18mR3FfdkBGelZzanlUZH5uZm9xNUcyIzxtU1Et
YVFZK2VnRk1RUWpfdldtCnpoME5RezFLQztxeWp7SUo4d2trJU42dmljOSlCa2Vgdi07fTxrWmUq
Km8mVjRJZ0owe3s2a35AelEmekFgeDx2Sgp6JVJsKDZlYDVmVTt8NUBDRGo8YSZHPV9nJGBHMVJu
LTJGez42fnFGZFVFMT9WJn0pSVYoe15POyRNXmI+QkBubzEKelRqJl8+Pnt0UU5jSnw2b0NnPyFW
ME5UejBmfH41fmNoP0BBSSM+KT9fMFBFVlBKRE0+Y0glaHp8R155OWZOdy1XCnoreGFlUCpLXihu
eSRmaUItVHBxOHR6PDZfSXNtZGcwTyRacmpFbzNJMXx8ZG8hT1lDVyFwZzxRZGd1QDwmKjM5VAp6
RSh8WH1BQkdvPTc3JnBaNkEoSG5qN0V6cU59UjtYJGpRbV5peiV4cztuYnZNPCMwUG1BazU2bnRj
T0BwWS19aTsKekFYKlVqVSReWj5mUmhQRzJYYkskQXBwdD1mcEoyJW4/USpHZ2FQdWk/Yk4lfEFX
I15iZmYyI1AleUl9TWtpblk8CnowKXMpfUZhYCFWeEhPUWY7Q2xlaCQjN1V1TXd7YDduSWwzNyZ4
TU9oZSNqKHpyczVVMWBUSW8/UypMJi0lcSZOYgp6cD9HKmpQbCQ8Mk5YcDQ4Q0BMd2Q9JHpIbig+
RXxRdk4mJlBXbz5pOCo0ZjM/JkUzUChEPTtXSEJzNDZYNVBrRjMKej9VPmoqYW0xQVNzYzg/PUdj
cTZMPHJmcV9lcDItR2QxViMzeH43KSQ7YE4pUjxgIXllVFlHb1VobVhDcXpFQXo1CnpVJmg4S0Nh
MCFuPXU2KzBTNjB7N3p5RzxocVlGRih5UnlMTnp2fCl5YndTfjk3I3kqcTNqeihANXpZeGA1Ul9w
Jgp6dFpqeUgjMipwRE1LTiltTnEkKUlpZGs2SmUzOUVKOzYyTXg1eEcmKHI1JE5NbUhxI08tVDBy
QjlTSGtkUzNrZkMKejEyLWB6ajEkbFY9KDR8UGpvb3toa3c9Q2o5STkjOzREfiRZOXF2YUUlKnw3
QHFXaHk3VE89NCUpZjJyS1ZiN3BSCnppM0g3VGpHalJ1NmlVRzcqeEhTNyZie0lhbiFHMzVlSH1U
PFNIKyQrQzZ7bGU2JjxKQz5DcSozTyU1Pm9xdWNEZQp6MXhKMUdvTDJ0S0ZhN0IpdXdrd1M8dzdh
OT5yS28zbF5oRU4odmQyQFZSPDMhbDQqSUVJYjh3QVIqa0JSVCFlZG4Kemx2WkJObFlIbl9ScF4l
I2pyO0RJQSpjb3VTKjx3KGVTQ05IWFpKKX54TjNwbSNgfWRJUHQtRGpHWF58ZF99Jn1XCnplREFZ
VTNaWVpxYStrV1VlUStPJlVtTk0rMiVpMTNkO0xwRmN9O0twejNpRSZzWEltWERPKEx1OHl8ODhq
eEJMKAp6ZFZKUEwkP0cxPStPJSooMlRoUik9O1dffjU9TjYlKk14dCFgX1VUN0B8K31HKko7IWUk
dWl8Xj1QczU+KCFkMXsKejJ5PCgrQU0zO0QtSFEhTmJMP2dLIURnZ3BCKWdUbmIlSnQqNmpMQj1Y
ZmAqTF5ERythQHhKJTtvbH50TU8+fWotCno8cjRRQE5TY2RTZjk7b1hlOThAcGxKQShYcUEoQmFU
Rkx3fCt2aCRgYmBoanUraVpDJHktVFpZc356RV5aZzdxOwp6eGRnI1pjR0l6UWkqRzRqI3FSazlw
SEN7S0RveUxLZ2w1SSRtOG1XfUlRU35XeUdHMz5kMGQ9MVBrZGdETTBMMD0KeiZaYD8pUTBVckpu
Nk82MVZ8VFE1RHgxXjE4a31TV3RqanhJRj9AMTFtJH5NdW0jQSk5TDEyIyMobnR9aUtIR1Z1Cnp4
clBvQUhDNDtaeFopU3E7RlJ6ejsqVE4mWH5OTn5nZz99QXJvRlhpbXMmPilZTmlTaUAtQVdZSzhh
ek5KMzZaTwp6TDhZQFFQUU9mQ2pWNFhQXiRkSVgkeV5OXndgeyMpVEc7d0AkcDNnXkRZYF5ubEs7
QEglXkZ0N1RGSWNQNHpWNEUKelAxalV2OFMqOXpPVzlsI2EkZUh+Jn1xZDloTGxyPUxfQG89Y3R1
RCthYVY4QUhzQmQ8VUtPREM+Y01jU1BrWGNUCnpZKTMlbiM0N1hnPTtiWUxuJEBEVTlAa2pzcyFE
e2FjaXIwe2wybk10S3pHKWZCM196emExcnIlI0A7JXtgQX1ZQwp6WjlsJVRSUVd2OWZIMHxeY0Ru
YU9md1ElVlNiQlpvRiR0bVN1UGFvIUh7cHowKHdlKjxEYlFjO3ByWSErVXA0PmcKekV5ZEB8UXV9
TVRlQlhwOXBQTihhZ3dxciRGe3pYJmZnQnU1QnZnekhEM3R8Nk1UfXFSbmI3QWk+R1RaUiRVa0A0
CnpiZlVhYD1KfmIwT0RSTk1CYGYlZXt5RXY2eEVWRndme1Bhb2RDJH1fVzR1V2V2ZHhJUXpUa2E2
WiYjQEAkQUo4PQp6ZEx0NjhheEticG1TNmlYLW58KjRQRlMrZlVBKS1GPmlhLWdHI3FaTlQ2fj1E
az12PCRoWCtHZm8yKH0xQWRMJm8Kemg9eUJJU3tOTHdDKEgrcyZ+bS05K2hmMUYzMnlfWHw3a2xf
eUFfUDh3TmVzcW1tT31mdDllR0x5P1hfSilHaW5uCnptc1ZvX3lFJDdedSRYNCZ7Zlp4dnNWMlJG
VnlCS3d7blpuOXlAPyo2alVMTntTcXhQNlF4LVRWcjxnPj4jTnd0Xgp6WHRMJDA1bW58ZypDVHEq
JVYoYmJhQld0YFpMPWg+TVRLXm5rOVRBUlVjc1lqT1A3OUBIamdKRXghPzZhKikrPDYKemg2WlVt
a1Uhbj1sdFBXeHhSLWRtdF42ZWx6d0ZjMmFlO0U+QjR4JEdfXys9eXt9LVp2VWVRYDFVRzBKcV87
PjJ2CnpXJjc0NVJNaCRJe1JLRDhDS0ticGpYSTxYN1Q9Uk9scElveExsJik7Zzw5ais9QzFxYVd2
PFlSRXRFWkgpIUIwegp6VGlISHpaTUQqKz5pbTkjYChLcmNVekFMZzNfKytsRTA/e14zTSFaSG8y
NXwwaHtvJDkmYktidlBMXmpLeTE7SGcKekUlNVUke29OdTMmWEhGV1hnQm5qQkI7ajd3K2RjOXNx
YU1vK1Q+b2pkRm5+Pz9KZEVtKipTLSViV1ZUfnQ0YnEmCnp6bFBsP1ZMPmR4VEZXbkBgbWkhb3F0
VWQtSXY+WENUfUhINyshcXgyUX1LczZ0RUxLcU53TjxWJnBtN3ZJMSlXWAp6O2ZkdTs+Mzw8cTNL
ZXkwbSNpQ0NeRWFIIXZWSXotJEhqfC1hKmMwVHI9OEk7WjFmPy10cSF4RD1yfDEzbjg1X3YKenly
YnxZX2B6N2k0WCMkNFElSDNpY1l7K20kdnkhUl95TV5SNSRzQUFWSXVoNSVVdH1yS1pOQHVYVlRS
T1lxMjU+Cno/T1NxUlo+YFBIISZLfH1eb3t0RXZAJUFHZy1EfjxKP0Q+cSpLVDN2dTYjUUZzWWQl
a3Jld149KGlaKDt2fiNLNwp6OW5VcilFUzt3QSNjYEFpcldxOWNsdSgpYypvY3dmJXBHcHBGOGtm
ZTtsK2ZIMG1pVUptQnVERkE+eS1nU0pfaD0KemgzZXwyR0BPZ1JHTj5BOCZ5Xkp7SmQtKGpgc0wq
X1g3UXxKSm1zZEd0fXMlKHdhanFYaTQqcHhgbDhZelpEKXB+CnpxTyFnYFEkczZFJDNeKGc0YmB+
JlJ9aHVRM2M/ZlUhNTF4VmVmWnE0bEZ3SGYqWjhxPVRvMUEoYEtrOHVJJk9TUQp6K1FqPnFyRH1i
fWZaQWw7ZktrUmZhKSRTN3lsPH5pKkktdXhBLTN9fmV4K1B0KGV9XkdUbTslPmxhXm1HYT9lMkgK
ek15KUk1THptYH5QY3p3YT8yJDgxblVsez1rJFh9UlAyQ0g8QX1mdE5DNU9fNDc9PC0mMT95XjxW
PD5TOzY3Rz01CnpoST8hZz5eRGdjaTlZJGllJnMwX2RWWUxUaXhLeV87alhFMTxgcDBeJGNeRyFs
Oz05NlhTJHB4NjVsPHhHTiVfZAp6OW0mRWg2IXt7WS0qIyslU1RPKWdIUDt+MWozUHJtRFVIeEQz
Y1B3XkBrSC1EaFUwQ09FWllGey03P2R5K3Q3NloKend+U0YmdEI8MSQ1dnp+QXVnM344ZyU1VnZF
QyVWVzI4bFJOaDxxdkxLQmNjTWlhe0V9Oyk1RkpaMkM3Tl5QV3gtCnpLVSsxYlNzaWAoaiNZfmZJ
YiprU1dKPm91TDYoI1JPSE89NDRoVzIxWWVTbCZZMVhQaHlrVFIlY2RBckkrZ0lCPAp6eW00T19s
MHclJjhOYzl5Ql9XbTZpfWpXekUoPEBJQ1NUTXxeaUE8bSFEUD5EPGwjS09Cezg+V0lufmQ0MXU2
SjEKenlzY1AwUTZWNHRFO2Q+aXkpO3phV2t5dDx2RWhCbF8mdXRSVyMjZDR0Kk9GdGIoNTZGQyRA
QWFKKjhSdXZCaH1oCno3VndicT1CKFV5WShwe0RGfUstVmh5cmhqOUw/QW5aK29PbkAxPjk7TVVq
TnpSTSl8NnBxVDM5ZWRlJEZ3ezU2MAp6UjdIb0llYT9OQDJmb3l2JGJqKmdjYmZtUFVyIWRHK3Uk
QUF5cjJXUVF9ZDlIYVB9Snt3O30qbzlMcm8ycl9UUkwKelg5JWMlQDhkcj1FJmRsSXpmMH4mKk8r
ZGJWRDA1KzI4MylmUmRac3RCbHRsX2IqQmt8bTNFQDlRNnpZXnRlIVgyCnpUfHNhPDkpcVZPO0pi
IVVyR0Rfaip7TGZsN0A2Kjh0Mk8rZEBsYnpqel99b1pnaD0jbXBLRU1rS3NeWlkqMG58Vwp6SDNC
KjlsI2NNX2ZhfGM9PnQqcHRqUUNgYD5aK3o7YlFZUmo+WkQ0MnYpTnskZD1HYWBhcyM5emtpKnll
cnVvQz8Kemd2e3lIISQmKkshQG9SfTgpcG1VTHg/c3UyUlllMzdlZypxNjkoaExMJEp+JlA/cUFk
bXhJeikpN1F1a0lpekA1Cno/e1FnfiN0ISZxLV9UK20jTT1kWj81OStFUUg3e0lrNDtqZW8rJFdU
Pj4+TWNQeCQqJkNNZzNZPG5hUW4mVXFSOAp6KXJ0OVpHcHBwRz8tKiFiPWN2KGIkNSgxSj9RNUdT
Q2okcilCe0B0Ml9RTC0yZ1ktNEIqbmA1KTkzfi1yUWVBfUIKejhNUipiVkxfajdST00jIzdwKk1w
X3ojd2t3RWQ8bVBjdG90WUA3LTxGMCt0ZDt3NXAleDBVRjhUTyNHdE5+R2AkCnotU3lPMDYpOF8h
bmh4aT5IREotcEo/aDFZZiE0S0s+ZncxcFFTYDd9a3xfYzE/KUJCYClwc312RDY8WWN0Y199JQp6
UWxCbExwe14jdnd9R1FGdnZ6ZndAQkVjdjRGdUhyYF5TfGZZYnJZRiF8RkBRQmFuTHBZdE5ETm43
LV9gUyptPUsKekwtdSslRHw7PWhxV3NMXyY5SDhMQ3NRP1Jefil9dXV+KFFla1FNfVlEfTZxKUQh
KWFrYW1HRjxoUSRFOVNxYUlmCnpCVHBaez00MHUyTzslLT9JaSotfTxJd1VlXiN1MjYkKiFqWmtC
VCgwTi1PS2R5c3gkYW8mSm9gPnlzKDNyIVFUKwp6JmlGJiFZZUB6Qlg2REVUbnlReEF7SDdIbTQq
aT9XSWNKOUZRZW5zayhSUmFrS0l5IzE+MDg4Mjc1S1c/eSohZW8KekRWYXFLRUF1cmFQNWRVN01z
LU1pLWA8eEhJfV9iWU5qSTVjUzRvKiF1KHc/SkJhVVRWLVF0YX4/PTVLN3ZpPT5CCnpQazl8d3Zw
RGkye1l3MzZeWURTcHdAWDM0MXl4M1dqND5MSXQ1MH41I29AeWwpdz1mN1RLX042JF5yaU5hJlpK
YQp6TTEhMnxBSzlKJSojdzQ8bjw7dUtxfCFSOGhVRD5IUHdfUUNPKlNBQTlzKm16WkAlLVlnX21o
SnFUTmVGTXJmP3IKejhEKCMzYjJsP2hWJnA9KmpISEc2OWkreHZtYEFFalJBYEZBMC1nSGJHc1Zq
LSpjUT5qSE9kKmt5YHY9WVd2QyZJCnpSdSkpV2d4YDw7OGVsXigpNVUpcnRTczxKeE0wR3lMe2hR
bDRCMEZiYW41T0lge0Q3Wj5oJXZqJVFZR0tsKzlURQp6ViNgRnZobkt4JXFpP2xROEBNYypKJXlm
fTRxRUFhVCs+WkNlVkJ2UlRLfVc/a04zSytYUVo7KHtSV2pjdnJnM3wKenlxVjlPYGJ5MFJwbVo5
fV5+WHRoRXRvbE9rZVZNO1lmUGY+QGQ2dCg8Kl5nfEVfVlZgUHElV0oqKEZeenNCMThoCno2Q1lY
T0RXU3k1RHlWeHJzeEJyc24/e2dnTXA2ZXtnYEgxISNNM1R4JDRSQm0rcGw3QmpDe2pLJXliI313
P0YrSwpEP0dBVF8KCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412617</attachid>
            <date>2020-10-28 23:29:15 -0700</date>
            <delta_ts>2020-10-29 21:16:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217506-20201028232913.patch</filename>
            <type>text/plain</type>
            <size>144271</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQ4OWVlMzRlY2RiMzJl
OTAwOGNjMmY4OTEwOTFhYjhlMWZjYjE3Mi4uYzk3Yzg1ODgyMzkwMjczY2E3YzVkMjA2MGYyNTRh
NGEwNmVjN2NjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIwLTEwLTI2ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBb
R1BVIFByb2Nlc3NdIFBlcmZvcm0gaW1hZ2UgZGVjb2Rpbmcgb2YgY29sb3IgZm9udHMgaW4gdGhl
IFdlYiBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTc1MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0OiBmYXN0L3RleHQvY2FudmFzLXNiaXguaHRtbAorICAgICAgICAgICAgICBmYXN0
L3RleHQvY2FudmFzLUNPTFIuaHRtbAorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAg
ICAgKiBQbGF0Zm9ybUFwcGxlV2luLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtV2luQ2Fpcm8u
Y21ha2U6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2oveGNz
aGFyZWRkYXRhL3hjc2NoZW1lcy9XZWJDb3JlLnhjc2NoZW1lOgorICAgICAgICAqIHBsYXRmb3Jt
L0ZyZWVUeXBlLmNtYWtlOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJD
b3JlVGV4dC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmJlZ2lu
TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmVuZExheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpkcmF3R2x5cGhzKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpkcmF3SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdHbHlwaHNSZWNvcmRlcjo6Y3JlYXRlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdHbHlwaHNSZWNvcmRl
cik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpw
cmVwYXJlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpE
cmF3R2x5cGhzUmVjb3JkZXI6OmNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnVwZGF0ZUNUTSk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVGaWxs
Q29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRl
cjo6cmVjb3JkQmVnaW5MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJh
d0dseXBoc1JlY29yZGVyOjpyZWNvcmRFbmRMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6Y29tcHV0ZUFkdmFuY2VzRnJvbVBvc2l0aW9ucyk6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpyZWNvcmREcmF3R2x5cGhzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZERy
YXdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29y
ZGVyOjpkcmF3R2x5cGhzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6RHJhd0dseXBo
c1JlY29yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVj
b3JkZXI6OmRyYXdHbHlwaHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpSZWNvcmRlcjo6UmVjb3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlY29yZGVyOjpkcmF3R2x5cGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpS
ZWNvcmRlcjo6YXBwZW5kSXRlbSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6YXBwZW5kSXRlbSk6CisKIDIwMjAtMTAtMjggIENvbnJh
ZCBTaHVsdHogIDxjb25yYWRfc2h1bHR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgZGlh
Z25vc3RpYyBsb2dnaW5nIGZvciBwbHVnLWlucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggYzRkMzM0
MjlkYmU2YjBjMjBkYTc5MjMxYzZiMzNlZmM4YmQ1Nzk2Mi4uNTYwZGU1MDRmNjZhZWZmMThhMGU2
MDFmODQyMjZmNDNjNzRiOWMwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMjAtMTAtMjYgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbQ29jb2FdIFtHUFUgUHJvY2Vzc10gUGVyZm9ybSBpbWFnZSBkZWNvZGluZyBvZiBj
b2xvciBmb250cyBpbiB0aGUgV2ViIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzUwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaDoKKwog
MjAyMC0xMC0xMyAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVtb3ZlIGxlZnRvdmVyIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3ggc3VwcG9ydApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKaW5kZXggNjg4NGQwZjg2ZDI5ZGMxNDkxNjYxMTdiYTVjOTY0ZDEwYjMz
YmRkZi4uMjgwMWFkNmZkODVmYzM2NGU4ZDA2NTE0NDkyMzlhNzI5MTU5ZjRiMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCkBAIC0xMjM3LDYgKzEyMzcsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1F
V09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvRXh0ZW5zaW9uc0dMQU5H
TEUuaAogCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmgK
KyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhz
UmVjb3JkZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dERyYXdpbmdDb250ZXh0LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RJbWFnZUJ1ZmZlci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0SXRlbXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvY2cvQ29yZUdyYXBoaWNzU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9D
b3JlR3JhcGhpY3NTUEkuaAppbmRleCBhN2Y4MmI4NjFiNjJjNGFlZmI4M2MxODExZDU1YzdhZjc0
OWU2YjkxLi4xNDUyZTg3MWQ4NjIxM2FkZDUzOWFhYzI5MmZkOWE4NjExYzVlZmNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaApAQCAtMzgs
NiArMzgsNyBAQAogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAorI2luY2x1ZGUgPENv
cmVHcmFwaGljcy9DR0NvbnRleHREZWxlZ2F0ZVByaXZhdGUuaD4KICNpbmNsdWRlIDxDb3JlR3Jh
cGhpY3MvQ0dGb250Q2FjaGUuaD4KICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dQYXRoUHJpdmF0
ZS5oPgogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3NQcml2YXRlLmg+CkBAIC01
OCwxOSArNTksMTIgQEAgc3RydWN0IENHRm9udEhNZXRyaWNzIHsKICAgICBpbnQgbWluUmlnaHRT
aWRlQmVhcmluZzsKIH07CiAKLXN0cnVjdCBDR0ZvbnREZXNjcmlwdG9yIHsKLSAgICBDR1JlY3Qg
YmJveDsKLSAgICBDR0Zsb2F0IGFzY2VudDsKLSAgICBDR0Zsb2F0IGRlc2NlbnQ7Ci0gICAgQ0dG
bG9hdCBjYXBIZWlnaHQ7Ci0gICAgQ0dGbG9hdCBpdGFsaWNBbmdsZTsKLSAgICBDR0Zsb2F0IHN0
ZW1WOwotICAgIENHRmxvYXQgc3RlbUg7Ci0gICAgQ0dGbG9hdCBhdmdXaWR0aDsKLSAgICBDR0Zs
b2F0IG1heFdpZHRoOwotICAgIENHRmxvYXQgbWlzc2luZ1dpZHRoOwotICAgIENHRmxvYXQgbGVh
ZGluZzsKLSAgICBDR0Zsb2F0IHhIZWlnaHQ7Cit0eXBlZGVmIENGX0VOVU0gKGludDMyX3QsIENH
Q29udGV4dERlbGVnYXRlQ2FsbGJhY2tOYW1lKQoreworICAgIGRlRHJhd0ltYWdlID0gNywKKyAg
ICBkZURyYXdHbHlwaHMgPSA4LAorICAgIGRlQmVnaW5MYXllciA9IDE3LAorICAgIGRlRW5kTGF5
ZXIgPSAxOCwKIH07CiAKIHR5cGVkZWYgY29uc3Qgc3RydWN0IENHQ29sb3JUcmFuc2Zvcm0qIENH
Q29sb3JUcmFuc2Zvcm1SZWY7CkBAIC0xNzcsNiArMTcxLDIyIEBAIHN0cnVjdCBDR0ZvY3VzUmlu
Z1N0eWxlIHsKIH07CiB0eXBlZGVmIHN0cnVjdCBDR0ZvY3VzUmluZ1N0eWxlIENHRm9jdXNSaW5n
U3R5bGU7CiAKK3N0cnVjdCBDR1NoYWRvd1N0eWxlIHsKKyAgICB1bnNpZ25lZCBhOworICAgIENH
RmxvYXQgYjsKKyAgICBDR0Zsb2F0IGF6aW11dGg7CisgICAgQ0dGbG9hdCBjOworICAgIENHRmxv
YXQgaGVpZ2h0OworICAgIENHRmxvYXQgcmFkaXVzOworICAgIENHRmxvYXQgZDsKK307Cit0eXBl
ZGVmIHN0cnVjdCBDR1NoYWRvd1N0eWxlIENHU2hhZG93U3R5bGU7CisKK3R5cGVkZWYgQ0ZfRU5V
TSAoaW50MzJfdCwgQ0dTdHlsZVR5cGUpCit7CisgICAga0NHU3R5bGVTaGFkb3cgPSAxLAorfTsK
KwogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMTkz
LDYgKzIwMywxMiBAQCBzdGF0aWMgY29uc3QgQ0dTTm90aWZpY2F0aW9uVHlwZSBrQ0dTZXNzaW9u
Q29uc29sZURpc2Nvbm5lY3QgPSAoQ0dTTm90aWZpY2F0aW9uVAogCiAjZW5kaWYgLy8gUExBVEZP
Uk0oTUFDKQogCit0eXBlZGVmIHN0cnVjdCBDR0NvbnRleHREZWxlZ2F0ZSAqQ0dDb250ZXh0RGVs
ZWdhdGVSZWY7Cit0eXBlZGVmIHZvaWQgKCpDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrKSh2b2lk
KTsKK3R5cGVkZWYgc3RydWN0IENHUmVuZGVyaW5nU3RhdGUgKkNHUmVuZGVyaW5nU3RhdGVSZWY7
Cit0eXBlZGVmIHN0cnVjdCBDR0dTdGF0ZSAqQ0dHU3RhdGVSZWY7Cit0eXBlZGVmIHN0cnVjdCBD
R1N0eWxlICpDR1N0eWxlUmVmOworCiAjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykK
IAogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtMjAzLDcgKzIxOSw2IEBAIHR5cGVkZWYgdWludDMy
X3QgQ0dTV2luZG93SUQ7CiAKIHR5cGVkZWYgQ0dTV2luZG93SUQqIENHU1dpbmRvd0lETGlzdDsK
IHR5cGVkZWYgc3RydWN0IENGX0JSSURHRURfVFlQRShpZCkgQ0dTUmVnaW9uT2JqZWN0KiBDR1NS
ZWdpb25PYmo7Ci10eXBlZGVmIHN0cnVjdCBDRl9CUklER0VEX1RZUEUoaWQpIENHU3R5bGUqIENH
U3R5bGVSZWY7CiAKIHR5cGVkZWYgdm9pZCogQ0dTTm90aWZpY2F0aW9uQXJnOwogdHlwZWRlZiB2
b2lkKiBDR1NOb3RpZmljYXRpb25EYXRhOwpAQCAtMjMzLDcgKzI0OCw2IEBAIHZvaWQgQ0dDb250
ZXh0UmVzZXRDbGlwKENHQ29udGV4dFJlZik7CiBDR0NvbnRleHRUeXBlIENHQ29udGV4dEdldFR5
cGUoQ0dDb250ZXh0UmVmKTsKIAogQ0ZTdHJpbmdSZWYgQ0dGb250Q29weUZhbWlseU5hbWUoQ0dG
b250UmVmKTsKLWJvb2wgQ0dGb250R2V0RGVzY3JpcHRvcihDR0ZvbnRSZWYsIENHRm9udERlc2Ny
aXB0b3IqKTsKIGJvb2wgQ0dGb250R2V0R2x5cGhBZHZhbmNlc0ZvclN0eWxlKENHRm9udFJlZiwg
Y29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0qICwgQ0dGb250UmVuZGVyaW5nU3R5bGUsIGNvbnN0IENH
R2x5cGhbXSwgc2l6ZV90IGNvdW50LCBDR1NpemUgYWR2YW5jZXNbXSk7CiB2b2lkIENHRm9udEdl
dEdseXBoc0ZvclVuaWNoYXJzKENHRm9udFJlZiwgY29uc3QgVW5pQ2hhcltdLCBDR0dseXBoW10s
IHNpemVfdCBjb3VudCk7CiBjb25zdCBDR0ZvbnRITWV0cmljcyogQ0dGb250R2V0SE1ldHJpY3Mo
Q0dGb250UmVmKTsKQEAgLTI1Miw2ICsyNjYsMjEgQEAgYm9vbCBDR0NvbnRleHRHZXRBbGxvd3NG
b250U3VicGl4ZWxQb3NpdGlvbmluZyhDR0NvbnRleHRSZWYpOwogYm9vbCBDR0NvbnRleHREcmF3
c1dpdGhDb3JyZWN0U2hhZG93T2Zmc2V0cyhDR0NvbnRleHRSZWYpOwogQ0dQYXR0ZXJuUmVmIENH
UGF0dGVybkNyZWF0ZVdpdGhJbWFnZTIoQ0dJbWFnZVJlZiwgQ0dBZmZpbmVUcmFuc2Zvcm0sIENH
UGF0dGVyblRpbGluZyk7CiAKK0NHQ29udGV4dERlbGVnYXRlUmVmIENHQ29udGV4dERlbGVnYXRl
Q3JlYXRlKHZvaWQqIGluZm8pOwordm9pZCBDR0NvbnRleHREZWxlZ2F0ZVNldENhbGxiYWNrKENH
Q29udGV4dERlbGVnYXRlUmVmLCBDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrTmFtZSwgQ0dDb250
ZXh0RGVsZWdhdGVDYWxsYmFjayk7CitDR0NvbnRleHRSZWYgQ0dDb250ZXh0Q3JlYXRlV2l0aERl
bGVnYXRlKENHQ29udGV4dERlbGVnYXRlUmVmLCBDR0NvbnRleHRUeXBlLCBDR1JlbmRlcmluZ1N0
YXRlUmVmLCBDR0dTdGF0ZVJlZik7Cit2b2lkKiBDR0NvbnRleHREZWxlZ2F0ZUdldEluZm8oQ0dD
b250ZXh0RGVsZWdhdGVSZWYpOwordm9pZCBDR0NvbnRleHREZWxlZ2F0ZVJlbGVhc2UoQ0dDb250
ZXh0RGVsZWdhdGVSZWYpOworQ0dGbG9hdCBDR0dTdGF0ZUdldEFscGhhKENHR1N0YXRlUmVmKTsK
K0NHRm9udFJlZiBDR0dTdGF0ZUdldEZvbnQoQ0dHU3RhdGVSZWYpOworY29uc3QgQ0dBZmZpbmVU
cmFuc2Zvcm0gKkNHR1N0YXRlR2V0Q1RNKENHR1N0YXRlUmVmKTsKK0NHQ29sb3JSZWYgQ0dHU3Rh
dGVHZXRGaWxsQ29sb3IoQ0dHU3RhdGVSZWYpOworQ0dDb2xvclJlZiBDR0dTdGF0ZUdldFN0cm9r
ZUNvbG9yKENHR1N0YXRlUmVmKTsKK0NHU3R5bGVSZWYgQ0dHU3RhdGVHZXRTdHlsZShDR0dTdGF0
ZVJlZik7CitDR1N0eWxlVHlwZSBDR1N0eWxlR2V0VHlwZShDR1N0eWxlUmVmKTsKK2NvbnN0IHZv
aWQgKkNHU3R5bGVHZXREYXRhKENHU3R5bGVSZWYpOworQ0dDb2xvclJlZiBDR1N0eWxlR2V0Q29s
b3IoQ0dTdHlsZVJlZik7CisKICNpZiBIQVZFKENHUEFUSF9HRVRfTlVNQkVSX09GX0VMRU1FTlRT
KQogc2l6ZV90IENHUGF0aEdldE51bWJlck9mRWxlbWVudHMoQ0dQYXRoUmVmKTsKICNlbmRpZgpA
QCAtMjg2LDE2ICszMTUsOSBAQCBDR1JlY3QqIENHU05leHRSZWN0KGNvbnN0IENHU1JlZ2lvbkVu
dW1lcmF0b3JPYmopOwogQ0dTUmVnaW9uRW51bWVyYXRvck9iaiBDR1NSZWdpb25FbnVtZXJhdG9y
KENHUmVnaW9uUmVmKTsKIENHU3R5bGVSZWYgQ0dTdHlsZUNyZWF0ZUZvY3VzUmluZ1dpdGhDb2xv
cihjb25zdCBDR0ZvY3VzUmluZ1N0eWxlKiwgQ0dDb2xvclJlZik7CiB2b2lkIENHQ29udGV4dFNl
dFN0eWxlKENHQ29udGV4dFJlZiwgQ0dTdHlsZVJlZik7Ci0KIHZvaWQgQ0dDb250ZXh0RHJhd0Nv
bmljR3JhZGllbnQoQ0dDb250ZXh0UmVmLCBDR0dyYWRpZW50UmVmLCBDR1BvaW50IGNlbnRlciwg
Q0dGbG9hdCBhbmdsZSk7Ci0KLSNpZiBIQVZFKENHX1BBVEhfVU5FVkVOX0NPUk5FUlNfUk9VTkRF
RFJFQ1QpCiB2b2lkIENHUGF0aEFkZFVuZXZlbkNvcm5lcnNSb3VuZGVkUmVjdChDR011dGFibGVQ
YXRoUmVmLCBjb25zdCBDR0FmZmluZVRyYW5zZm9ybSAqLCBDR1JlY3QsIGNvbnN0IENHU2l6ZSBj
b3JuZXJzWzRdKTsKLSNlbmRpZgotCi0jaWYgSEFWRShDR19GT05UX1JFTkRFUklOR19HRVRfRk9O
VF9TTU9PVEhJTkdfRElTQUJMRUQpCiBib29sIENHRm9udFJlbmRlcmluZ0dldEZvbnRTbW9vdGhp
bmdEaXNhYmxlZCh2b2lkKTsKLSNlbmRpZgogCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAK
QEAgLTMyOCwxNSArMzUwLDEwIEBAIGJvb2wgQ29sb3JTeW5jUHJvZmlsZUlzV2lkZUdhbXV0KENv
bG9yU3luY1Byb2ZpbGVSZWYpOwogc2l6ZV90IENHRGlzcGxheU1vZGVHZXRQaXhlbHNXaWRlKENH
RGlzcGxheU1vZGVSZWYpOwogc2l6ZV90IENHRGlzcGxheU1vZGVHZXRQaXhlbHNIaWdoKENHRGlz
cGxheU1vZGVSZWYpOwogCi0jaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NL
SU5HKQotCiBDR0Vycm9yIENHU1NldERlbnlXaW5kb3dTZXJ2ZXJDb25uZWN0aW9ucyhib29sKTsK
LQogdHlwZWRlZiBpbnQzMl90IENHU0Rpc3BsYXlJRDsKIENHU0Rpc3BsYXlJRCBDR1NNYWluRGlz
cGxheUlEKHZvaWQpOwogCi0jZW5kaWYgLy8gRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVS
X0JMT0NLSU5HKQotCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCiAjaWYgRU5BQkxFKFBERktJ
VF9QTFVHSU4pICYmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1BcHBsZVdpbi5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
QXBwbGVXaW4uY21ha2UKaW5kZXggYTc4OGU2OWRlNzQ0MWM5NDA4NGY3MDM2YTNlOGY0OWFkNDUx
YTU4ZC4uMzhhMmI3NzY4OTU1OThhNGY0ZTM2YWRlN2M2MDNiMDQwNzhkZGM3NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1BcHBsZVdpbi5jbWFrZQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybUFwcGxlV2luLmNtYWtlCkBAIC0zMCw2ICszMCw4IEBAIGxpc3QoQVBQRU5E
IFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vY2YvV2ViQ29yZUFWQ0ZSZXNvdXJjZUxvYWRlci5jcHAKIAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRl
ckNvcmVUZXh0LmNwcAorCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGEuY3BwCiAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL2NmL0F1dGhlbnRpY2F0aW9uQ0Yu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbkNhaXJvLmNtYWtlIGIv
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5DYWlyby5jbWFrZQppbmRleCBhNjg5NjQ3N2RlMGNm
NTAzNGYzZmQwOWYzZjBjNzZhN2RhNmVjOGExLi4wNzc4Zjc1NTY2YzY0NjMwMjBhMGUwN2M1MmE2
NWMxYTQ3NGY2Mjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbkNhaXJv
LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UKQEAgLTIy
LDYgKzIyLDggQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvR0xDb250ZXh0LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxh
eS5jcHAKIAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERy
YXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcAorCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy93
aW4vRm9udFBsYXRmb3JtRGF0YUNhaXJvV2luLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dp
bi9HbHlwaFBhZ2VUcmVlTm9kZUNhaXJvV2luLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5k
ZXggZWI0ZTE3ZjJlNzM2ZWE4NjgxYzU2ZDIwMjUxNDkyNmI4ZGM5OTQ1MC4uMmFkMzNhOTU1MTky
ZDkwNzZlYjNkOGMxNjJjZmUzODYyMmRmYjE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
U291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBA
IC0zNzksNiArMzc5LDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Np
b25WVC5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAK
IHBsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcAogcGxhdGZvcm0v
Z3JhcGhpY3MvY29yZWltYWdlL0ZpbHRlckVmZmVjdFJlbmRlcmVyQ29yZUltYWdlLm1tCitwbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJD
b3JlVGV4dC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdEYXRhLmNwcAogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cEFsbG9jYXRvck1ldGFsLm1tCiBwbGF0
Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQmluZEdyb3VwTGF5b3V0TWV0YWwubW0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0
Yzk0OTY4NzhmN2RmMTI5M2IzN2QyY2M0ODA5OTZmOWFhYmRiZTc2Li4zZjBkZjhiYjcwZTkzODQz
ZGRjYjJkY2UxNmQwNjg4MzMzNTRhMDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02MjAsNiArNjIwLDcgQEAKIAkJMUNBRjM0
ODEwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBRjM0N0UwQTZDNDA1MjAwQUJFMDZFIC8q
IFdlYlNjcmlwdE9iamVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTFDQUYzNDgyMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3Qu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FGMzQ3
RjBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0Lm1tICovOyB9OwogCQkxQ0FGMzQ4
MzBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBRjM0ODAwQTZDNDA1MjAwQUJF
MDZFIC8qIFdlYlNjcmlwdE9iamVjdFByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQkxQ0FGNTZEQjI1MzAxQUM4MDAxN0I0NzIgLyogRGlz
cGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUY1NkQ4MjUzMDE0NTcwMDE3QjQ3MiAvKiBEaXNwbGF5TGlz
dERyYXdHbHlwaHNSZWNvcmRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTFDQ0Q4MTUwMjIzMUY4M0UwMDY1RkMyQiAvKiBXZWJDb3JlUmVzb3Vy
Y2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTUyNTUxNDE2RkQyMzRGMDAzRDdBREIgLyogV2Vi
Q29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tICovOyB9OwogCQkx
Q0NERjVCRTE5OTAzMzI0MDBCQ0VCQUQgLyogU1ZHVG9PVEZGb250Q29udmVyc2lvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDREY1QkMxOTkwMzMy
NDAwQkNFQkFEIC8qIFNWR1RvT1RGRm9udENvbnZlcnNpb24uaCAqLzsgfTsKIAkJMUNGQUUzMjMw
QTZENkEzRjAwMzI1OTNEIC8qIGxpYm9iamMuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0ZBRTMyMjBBNkQ2QTNGMDAzMjU5M0QgLyogbGli
b2JqYy5keWxpYiAqLzsgfTsKQEAgLTY3MzUsNiArNjczNiw4IEBACiAJCTFDQUYzNDdFMEE2QzQw
NTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViU2NyaXB0T2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFDQUYzNDdGMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJTY3JpcHRPYmplY3QubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUYzNDgwMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJT
Y3JpcHRPYmplY3RQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YlNjcmlwdE9iamVjdFByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNB
RjU2RDgyNTMwMTQ1NzAwMTdCNDcyIC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQUY1NkRFMjUzMDI0NUEwMDE3QjQ3MiAvKiBEaXNwbGF5
TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERp
c3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQ0I1RkU4ODIyREVCQzhCMDA5NDQwRTIgLyogV0hMU0xFcnJvci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXSExTTEVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFDQjY5QjMyMjFERUQ0MEIwMDZFODQ2QSAvKiBXSExTTFJlc29sdmFibGVUeXBlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdITFNMUmVzb2x2YWJsZVR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUNCNjlCMzQyMURFRDYzQTAwNkU4NDZBIC8qIFdITFNMRmxvYXRMaXRlcmFsVHlwZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXSExTTEZsb2F0TGl0ZXJhbFR5cGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE3NjA2LDYgKzE3NjA5LDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJ
CTBGRTVGQkNBMUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdC5jcHAgKi8sCiAJCQkJMEZF
NUZCQ0IxQzNERDUxRTAwMDdBMkNBIC8qIERpc3BsYXlMaXN0LmggKi8sCisJCQkJMUNBRjU2RDgy
NTMwMTQ1NzAwMTdCNDcyIC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmggKi8sCisJ
CQkJMUNBRjU2REUyNTMwMjQ1QTAwMTdCNDcyIC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29y
ZGVyQ29yZVRleHQuY3BwICovLAogCQkJCTU1QzBBMjk1MjNGRTJDRTAwMEYyQ0I5MyAvKiBEaXNw
bGF5TGlzdERyYXdpbmdDb250ZXh0LmNwcCAqLywKIAkJCQk3MkVBMDlGOTIzRkNDQzZBMDA4NTA0
QTUgLyogRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5oICovLAogCQkJCTcyRUEwOUY3MjNGQ0NC
M0QwMDg1MDRBNSAvKiBEaXNwbGF5TGlzdEltYWdlQnVmZmVyLmggKi8sCkBAIC0zMTQyNyw2ICsz
MTQzMiw3IEBACiAJCQkJN0VEQUFGQzkxOUEyQ0NEQzAwMzRERkQxIC8qIERpc2tDYWNoZU1vbml0
b3JDb2NvYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3OTBGNDIyNTE3Q0U2RTAwOUJBMDM0IC8q
IERpc3BsYXlMYXllckNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTVGQkQzMUMz
REQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNBRjU2
REIyNTMwMUFDODAwMTdCNDcyIC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1NUFEMDk0MDI0MDg5NjQwMDBERTREMkYgLyogRGlzcGxheUxpc3RE
cmF3aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTVBRDA5M0UyNDA4OTYzNTAwREU0
RDJGIC8qIERpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTVG
QkQ1MUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdEl0ZW1zLmggaW4gSGVhZGVycyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtlIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJlZVR5cGUuY21ha2UKaW5kZXggN2MwNGQ5M2E1Yjg1Yzcz
MjU4MWM5NWEwNjViZTA1YjYzNjdjN2FlNC4uZjM4YjU0ZTE3YzkzMTU2NTE1NGNhYjk1M2E4MWUw
ZTk2ZjU3NDlhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJlZVR5cGUu
Y21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJlZVR5cGUuY21ha2UKQEAgLTUs
NiArNSw4IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfUFJJVkFURV9JTkNMVURFX0RJUkVDVE9SSUVT
CiApCiAKIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUworICAgIHBsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcAor
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udEN1c3RvbVBsYXRmb3JtRGF0YUZyZWVU
eXBlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRQbGF0Zm9ybURhdGFG
cmVlVHlwZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5kLmNwcAppbmRleCAyYWQzMWFjNTdkNWYxYmRl
Nzk0MTljNWY5MTU2OTdiMzc1NDRiYjQ4Li41YjIwZDg5MmVkOGJiY2Y2MDE4MTZhNjM2NzZhMDBm
MWZhNWMxN2IzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tlbmQuY3BwCkBAIC02MSw2ICs2MSw3IEBAIFJl
dGFpblB0cjxDR0NvbG9yU3BhY2VSZWY+IEltYWdlQnVmZmVyQ0dCYWNrZW5kOjpjb250ZXh0Q29s
b3JTcGFjZShjb25zdCBHcmFwaGljCiAKIHZvaWQgSW1hZ2VCdWZmZXJDR0JhY2tlbmQ6OnNldHVw
Q29udGV4dCgpCiB7CisgICAgLy8gVGhlIGluaXRpYWwgQ1RNIG1hdGNoZXMgRGlzcGxheUxpc3Q6
OlJlY29yZGVyOjpjbGlwVG9EcmF3aW5nQ29tbWFuZHMoKSdzIGluaXRpYWwgQ1RNLgogICAgIGNv
bnRleHQoKS5zY2FsZShGbG9hdFNpemUoMSwgLTEpKTsKICAgICBjb250ZXh0KCkudHJhbnNsYXRl
KDAsIC1tX2JhY2tlbmRTaXplLmhlaWdodCgpKTsKICAgICBjb250ZXh0KCkuYXBwbHlEZXZpY2VT
Y2FsZUZhY3RvcihtX3Jlc29sdXRpb25TY2FsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250Q2FzY2FkZUNvcmVUZXh0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRDYXNjYWRlQ29yZVRl
eHQuY3BwCmluZGV4IDRhOGU0ZTBlYTE5NDE0NDM2MjUwYTRiZThhYTQ1Y2I3MWRiMjE2ZmIuLmY5
N2Y3MGI4Zjc2NDgzODA3MDZmN2QwYmU3NWQ0YTBkOTdmZTg4ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRDYXNjYWRlQ29yZVRleHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRD
YXNjYWRlQ29yZVRleHQuY3BwCkBAIC02OSw2ICs2OSwxNCBAQCBzdGF0aWMgY29uc3QgQWZmaW5l
VHJhbnNmb3JtJiByb3RhdGVMZWZ0VHJhbnNmb3JtKCkKIAogdm9pZCBmaWxsVmVjdG9yV2l0aEhv
cml6b250YWxHbHlwaFBvc2l0aW9ucyhWZWN0b3I8Q0dQb2ludCwgMjU2PiYgcG9zaXRpb25zLCBD
R0NvbnRleHRSZWYgY29udGV4dCwgY29uc3QgQ0dTaXplKiBhZHZhbmNlcywgdW5zaWduZWQgY291
bnQsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50KQogeworICAgIC8vIFRoZSBpbnB1dCBwb3NpdGlv
bnMgYXJlIGluIHRoZSBjb250ZXh0J3MgY29vcmRpbmF0ZSBzeXN0ZW0sIHdpdGhvdXQgdGhlIHRl
eHQgbWF0cml4LgorICAgIC8vIEhvd2V2ZXIsIHRoZSBwb3NpdGlvbnMgdGhhdCBDVC9DRyBhY2Nl
cHQgYXJlIGluIHRoZSB0ZXh0IG1hdHJpeCdzIGNvb3JkaW5hdGUgc3lzdGVtLgorICAgIC8vIENH
Q29udGV4dEdldFRleHRNYXRyaXgoKSBnaXZlcyB1cyB0aGUgbWF0cml4IHRoYXQgbWFwcyBmcm9t
IHRleHQncyBjb29yZGluYXRlIHN5c3RlbSB0byB0aGUgY29udGV4dCdzIChub24tdGV4dCkgY29v
cmRpbmF0ZSBzeXN0ZW0uCisgICAgLy8gV2UgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgdG8gZGVs
aXZlciBDVCwgaW5zaWRlIHRoZSB0ZXh0J3MgY29vcmRpbmF0ZSBzeXN0ZW0sIHN1Y2ggdGhhdCBp
dCBlbmRzIHVwIGNvaW5jaWRlbnQgd2l0aCB0aGUgaW5wdXQgaW4gdGhlIGNvbnRleHQncyBjb29y
ZGluYXRlIHN5c3RlbS4KKyAgICAvLworICAgIC8vIENUTSAqIHRleHQgbWF0cml4ICogcG9zaXRp
b25zIHdlIG5lZWQgdG8gZGVsaXZlciB0byBDVCA9IENUTSAqIGlucHV0IHBvc2l0aW9ucworICAg
IC8vIFNvbHZpbmcgZm9yIHRoZSBwb3NpdGlvbnMgd2UgbmVlZCB0byBkZWxpdmVyIHRvIENULCB3
ZSBnZXQKKyAgICAvLyBwb3NpdGlvbnMgd2UgbmVlZCB0byBkZWxpdmVyIHRvIENUID0gaW52ZXJz
ZSh0ZXh0IG1hdHJpeCkgKiBpbnB1dCBwb3NpdGlvbnMKICAgICBDR0FmZmluZVRyYW5zZm9ybSBt
YXRyaXggPSBDR0FmZmluZVRyYW5zZm9ybUludmVydChDR0NvbnRleHRHZXRUZXh0TWF0cml4KGNv
bnRleHQpKTsKICAgICBwb3NpdGlvbnNbMF0gPSBDR1BvaW50QXBwbHlBZmZpbmVUcmFuc2Zvcm0o
cG9pbnQsIG1hdHJpeCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IGNvdW50OyArK2kp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVy
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uODM3NGVjMjJhZWQwNGI3ZWJiMzgxOGVjNTE5OTg2MGIyYzg1NDQzNwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oCkBAIC0wLDAgKzEsMTE3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKKyNpbmNsdWRlICJDb2xvci5oIgor
I2luY2x1ZGUgIkdyYWRpZW50LmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5j
bHVkZSAiUGF0dGVybi5oIgorI2luY2x1ZGUgIlRleHRGbGFncy5oIgorCisjaWYgVVNFKENPUkVf
VEVYVCkKKyNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBoaWNzLmg+CisjaW5jbHVkZSA8
cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIEZsb2F0UG9pbnQ7CitjbGFzcyBGb250OworY2xhc3MgR2x5cGhCdWZmZXI7
CitjbGFzcyBHcmFwaGljc0NvbnRleHQ7CisKK25hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CisKK2Ns
YXNzIFJlY29yZGVyOworCitjbGFzcyBEcmF3R2x5cGhzUmVjb3JkZXIgeworcHVibGljOgorICAg
IGV4cGxpY2l0IERyYXdHbHlwaHNSZWNvcmRlcihSZWNvcmRlciYpOworCisgICAgdm9pZCBkcmF3
R2x5cGhzKGNvbnN0IEZvbnQmLCBjb25zdCBHbHlwaEJ1ZmZlciYsIHVuc2lnbmVkIGZyb20sIHVu
c2lnbmVkIG51bUdseXBocywgY29uc3QgRmxvYXRQb2ludCYgYW5jaG9yUG9pbnQsIEZvbnRTbW9v
dGhpbmdNb2RlKTsKKworI2lmIFVTRShDT1JFX1RFWFQpCisgICAgdm9pZCByZWNvcmRCZWdpbkxh
eWVyKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmLCBDR1JlY3QpOworICAgIHZvaWQg
cmVjb3JkRW5kTGF5ZXIoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYpOworICAgIHZv
aWQgcmVjb3JkRHJhd0dseXBocyhDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiwgY29u
c3QgQ0dBZmZpbmVUcmFuc2Zvcm0qLCBjb25zdCBDR0dseXBoW10sIGNvbnN0IENHUG9pbnQgcG9z
aXRpb25zW10sIHNpemVfdCBjb3VudCk7CisgICAgdm9pZCByZWNvcmREcmF3SW1hZ2UoQ0dSZW5k
ZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYsIENHUmVjdCwgQ0dJbWFnZVJlZik7CisjZW5kaWYK
KworcHJpdmF0ZToKKyAgICBHcmFwaGljc0NvbnRleHQgY3JlYXRlSW50ZXJuYWxDb250ZXh0KCk7
CisgICAgdm9pZCBwcmVwYXJlSW50ZXJuYWxDb250ZXh0KGNvbnN0IEZvbnQmLCBGb250U21vb3Ro
aW5nTW9kZSk7CisgICAgdm9pZCBjb25jbHVkZUludGVybmFsQ29udGV4dCgpOworICAgIHZvaWQg
dXBkYXRlQ1RNKEFmZmluZVRyYW5zZm9ybSk7CisgICAgdm9pZCB1cGRhdGVGaWxsQ29sb3IoY29u
c3QgQ29sb3ImLCBHcmFkaWVudCogPSBudWxscHRyLCBQYXR0ZXJuKiA9IG51bGxwdHIpOworICAg
IHZvaWQgdXBkYXRlU3Ryb2tlQ29sb3IoY29uc3QgQ29sb3ImLCBHcmFkaWVudCogPSBudWxscHRy
LCBQYXR0ZXJuKiA9IG51bGxwdHIpOworICAgIGVudW0gY2xhc3MgU2hhZG93c0lnbm9yZVRyYW5z
Zm9ybXMgeworICAgICAgICBVbnNwZWNpZmllZCwKKyAgICAgICAgWWVzLAorICAgICAgICBObwor
ICAgIH07CisgICAgdm9pZCB1cGRhdGVTaGFkb3coY29uc3QgRmxvYXRTaXplJiBzaGFkb3dPZmZz
ZXQsIGZsb2F0IHNoYWRvd0JsdXIsIGNvbnN0IENvbG9yJiBzaGFkb3dDb2xvciwgU2hhZG93c0ln
bm9yZVRyYW5zZm9ybXMpOworCisjaWYgVVNFKENPUkVfVEVYVCkKKyAgICB2b2lkIHVwZGF0ZVNo
YWRvdyhDR1N0eWxlUmVmKTsKKyNlbmRpZgorCisgICAgUmVjb3JkZXImIG1fb3duZXI7CisgICAg
R3JhcGhpY3NDb250ZXh0IG1faW50ZXJuYWxDb250ZXh0OworICAgIGNvbnN0IEZvbnQqIG1fY3Vy
cmVudEZvbnQgeyBudWxscHRyIH07CisKKyAgICBDb2xvciBtX2N1cnJlbnRGaWxsQ29sb3I7Cisg
ICAgQ29sb3IgbV9jdXJyZW50U3Ryb2tlQ29sb3I7CisKKyAgICBDb2xvciBtX29yaWdpbmFsRmls
bENvbG9yOworICAgIFJlZlB0cjxHcmFkaWVudD4gbV9vcmlnaW5hbEZpbGxHcmFkaWVudDsKKyAg
ICBSZWZQdHI8UGF0dGVybj4gbV9vcmlnaW5hbEZpbGxQYXR0ZXJuOworCisgICAgQ29sb3IgbV9v
cmlnaW5hbFN0cm9rZUNvbG9yOworICAgIFJlZlB0cjxHcmFkaWVudD4gbV9vcmlnaW5hbFN0cm9r
ZUdyYWRpZW50OworICAgIFJlZlB0cjxQYXR0ZXJuPiBtX29yaWdpbmFsU3Ryb2tlUGF0dGVybjsK
KworICAgIEFmZmluZVRyYW5zZm9ybSBtX29yaWdpbmFsQ1RNOworICAgIEFmZmluZVRyYW5zZm9y
bSBtX2N1cnJlbnRDVE07CisKKyAgICBBZmZpbmVUcmFuc2Zvcm0gbV9vcmlnaW5hbFRleHRNYXRy
aXg7CisKKyAgICBGbG9hdFNpemUgbV9vcmlnaW5hbFNoYWRvd09mZnNldDsKKyAgICBmbG9hdCBt
X29yaWdpbmFsU2hhZG93Qmx1cjsKKyAgICBDb2xvciBtX29yaWdpbmFsU2hhZG93Q29sb3I7Cisg
ICAgYm9vbCBtX29yaWdpbmFsU2hhZG93c0lnbm9yZVRyYW5zZm9ybXM7CisKKyAgICBGbG9hdFNp
emUgbV9jdXJyZW50U2hhZG93T2Zmc2V0OworICAgIGZsb2F0IG1fY3VycmVudFNoYWRvd0JsdXI7
CisgICAgQ29sb3IgbV9jdXJyZW50U2hhZG93Q29sb3I7CisgICAgYm9vbCBtX2N1cnJlbnRTaGFk
b3dzSWdub3JlVHJhbnNmb3JtczsKKworICAgIEZvbnRTbW9vdGhpbmdNb2RlIG1fc21vb3RoaW5n
TW9kZSB7IEZvbnRTbW9vdGhpbmdNb2RlOjpBdXRvU21vb3RoaW5nIH07Cit9OworCit9CisKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNS
ZWNvcmRlckNvcmVUZXh0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNGM4MzQ2YmQ2YjQ2Y2MzZGE1YjBjODIx
ZjI2YmIzZjAyMGRiNGFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyQ29y
ZVRleHQuY3BwCkBAIC0wLDAgKzEsMzY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpc3BsYXlM
aXN0RHJhd0dseXBoc1JlY29yZGVyLmgiCisKKyNpbmNsdWRlICJCaXRtYXBJbWFnZS5oIgorI2lu
Y2x1ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSAiRGlzcGxheUxpc3RJdGVtcy5oIgorI2luY2x1ZGUg
IkRpc3BsYXlMaXN0UmVjb3JkZXIuaCIKKyNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVk
ZSAiRm9udC5oIgorI2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgiCisjaW5jbHVkZSAiR2x5cGhCdWZm
ZXIuaCIKKworI2luY2x1ZGUgPENvcmVUZXh0L0NvcmVUZXh0Lmg+CisjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgorCisjaWYgUExBVEZPUk0oV0lOKQorI2luY2x1ZGUgPHBhbC9zcGkvd2luL0NvcmVU
ZXh0U1BJV2luLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCituYW1lc3BhY2Ug
RGlzcGxheUxpc3QgeworCitzdGF0aWMgQ0dDb250ZXh0RGVsZWdhdGVSZWYgYmVnaW5MYXllcihD
R0NvbnRleHREZWxlZ2F0ZVJlZiBkZWxlZ2F0ZSwgQ0dSZW5kZXJpbmdTdGF0ZVJlZiByc3RhdGUs
IENHR1N0YXRlUmVmIGdzdGF0ZSwgQ0dSZWN0IHJlY3QsIENGRGljdGlvbmFyeVJlZiwgQ0dDb250
ZXh0RGVsZWdhdGVSZWYpCit7CisgICAgRHJhd0dseXBoc1JlY29yZGVyJiByZWNvcmRlciA9ICpz
dGF0aWNfY2FzdDxEcmF3R2x5cGhzUmVjb3JkZXIqPihDR0NvbnRleHREZWxlZ2F0ZUdldEluZm8o
ZGVsZWdhdGUpKTsKKyAgICByZWNvcmRlci5yZWNvcmRCZWdpbkxheWVyKHJzdGF0ZSwgZ3N0YXRl
LCByZWN0KTsKKyAgICByZXR1cm4gZGVsZWdhdGU7Cit9CisKK3N0YXRpYyBDR0NvbnRleHREZWxl
Z2F0ZVJlZiBlbmRMYXllcihDR0NvbnRleHREZWxlZ2F0ZVJlZiBkZWxlZ2F0ZSwgQ0dSZW5kZXJp
bmdTdGF0ZVJlZiByc3RhdGUsIENHR1N0YXRlUmVmIGdzdGF0ZSkKK3sKKyAgICBEcmF3R2x5cGhz
UmVjb3JkZXImIHJlY29yZGVyID0gKnN0YXRpY19jYXN0PERyYXdHbHlwaHNSZWNvcmRlcio+KENH
Q29udGV4dERlbGVnYXRlR2V0SW5mbyhkZWxlZ2F0ZSkpOworICAgIHJlY29yZGVyLnJlY29yZEVu
ZExheWVyKHJzdGF0ZSwgZ3N0YXRlKTsKKyAgICByZXR1cm4gZGVsZWdhdGU7Cit9CisKK3N0YXRp
YyBDR0Vycm9yIGRyYXdHbHlwaHMoQ0dDb250ZXh0RGVsZWdhdGVSZWYgZGVsZWdhdGUsIENHUmVu
ZGVyaW5nU3RhdGVSZWYgcnN0YXRlLCBDR0dTdGF0ZVJlZiBnc3RhdGUsIGNvbnN0IENHQWZmaW5l
VHJhbnNmb3JtKiB0bSwgY29uc3QgQ0dHbHlwaCBnbHlwaHNbXSwgY29uc3QgQ0dQb2ludCBwb3Np
dGlvbnNbXSwgc2l6ZV90IGNvdW50KQoreworICAgIGlmIChDR0dTdGF0ZUdldEFscGhhKGdzdGF0
ZSkgPiAwKSB7CisgICAgICAgIERyYXdHbHlwaHNSZWNvcmRlciYgcmVjb3JkZXIgPSAqc3RhdGlj
X2Nhc3Q8RHJhd0dseXBoc1JlY29yZGVyKj4oQ0dDb250ZXh0RGVsZWdhdGVHZXRJbmZvKGRlbGVn
YXRlKSk7CisgICAgICAgIHJlY29yZGVyLnJlY29yZERyYXdHbHlwaHMocnN0YXRlLCBnc3RhdGUs
IHRtLCBnbHlwaHMsIHBvc2l0aW9ucywgY291bnQpOworICAgIH0KKyAgICByZXR1cm4ga0NHRXJy
b3JTdWNjZXNzOworfQorCitzdGF0aWMgQ0dFcnJvciBkcmF3SW1hZ2UoQ0dDb250ZXh0RGVsZWdh
dGVSZWYgZGVsZWdhdGUsIENHUmVuZGVyaW5nU3RhdGVSZWYgcnN0YXRlLCBDR0dTdGF0ZVJlZiBn
c3RhdGUsIENHUmVjdCByZWN0LCBDR0ltYWdlUmVmIGltYWdlKQoreworICAgIERyYXdHbHlwaHNS
ZWNvcmRlciYgcmVjb3JkZXIgPSAqc3RhdGljX2Nhc3Q8RHJhd0dseXBoc1JlY29yZGVyKj4oQ0dD
b250ZXh0RGVsZWdhdGVHZXRJbmZvKGRlbGVnYXRlKSk7CisgICAgcmVjb3JkZXIucmVjb3JkRHJh
d0ltYWdlKHJzdGF0ZSwgZ3N0YXRlLCByZWN0LCBpbWFnZSk7CisgICAgcmV0dXJuIGtDR0Vycm9y
U3VjY2VzczsKK30KKworR3JhcGhpY3NDb250ZXh0IERyYXdHbHlwaHNSZWNvcmRlcjo6Y3JlYXRl
SW50ZXJuYWxDb250ZXh0KCkKK3sKKyAgICBhdXRvIGNvbnRleHREZWxlZ2F0ZSA9IGFkb3B0Q0Yo
Q0dDb250ZXh0RGVsZWdhdGVDcmVhdGUodGhpcykpOworICAgIENHQ29udGV4dERlbGVnYXRlU2V0
Q2FsbGJhY2soY29udGV4dERlbGVnYXRlLmdldCgpLCBkZUJlZ2luTGF5ZXIsIHJlaW50ZXJwcmV0
X2Nhc3Q8Q0dDb250ZXh0RGVsZWdhdGVDYWxsYmFjaz4oJmJlZ2luTGF5ZXIpKTsKKyAgICBDR0Nv
bnRleHREZWxlZ2F0ZVNldENhbGxiYWNrKGNvbnRleHREZWxlZ2F0ZS5nZXQoKSwgZGVFbmRMYXll
ciwgcmVpbnRlcnByZXRfY2FzdDxDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrPigmZW5kTGF5ZXIp
KTsKKyAgICBDR0NvbnRleHREZWxlZ2F0ZVNldENhbGxiYWNrKGNvbnRleHREZWxlZ2F0ZS5nZXQo
KSwgZGVEcmF3R2x5cGhzLCByZWludGVycHJldF9jYXN0PENHQ29udGV4dERlbGVnYXRlQ2FsbGJh
Y2s+KCZXZWJDb3JlOjpEaXNwbGF5TGlzdDo6ZHJhd0dseXBocykpOworICAgIENHQ29udGV4dERl
bGVnYXRlU2V0Q2FsbGJhY2soY29udGV4dERlbGVnYXRlLmdldCgpLCBkZURyYXdJbWFnZSwgcmVp
bnRlcnByZXRfY2FzdDxDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrPigmZHJhd0ltYWdlKSk7Cisg
ICAgYXV0byBjb250ZXh0ID0gYWRvcHRDRihDR0NvbnRleHRDcmVhdGVXaXRoRGVsZWdhdGUoY29u
dGV4dERlbGVnYXRlLmdldCgpLCBrQ0dDb250ZXh0VHlwZVVua25vd24sIG51bGxwdHIsIG51bGxw
dHIpKTsKKyAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0KGNvbnRleHQuZ2V0KCkpOworfQorCitE
cmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdHbHlwaHNSZWNvcmRlcihSZWNvcmRlciYgb3duZXIpCisg
ICAgOiBtX293bmVyKG93bmVyKQorICAgICwgbV9pbnRlcm5hbENvbnRleHQoY3JlYXRlSW50ZXJu
YWxDb250ZXh0KCkpCit7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpwcmVwYXJlSW50
ZXJuYWxDb250ZXh0KGNvbnN0IEZvbnQmIGZvbnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGlu
Z01vZGUpCit7CisgICAgQVNTRVJUKENHQWZmaW5lVHJhbnNmb3JtSXNJZGVudGl0eShDVEZvbnRH
ZXRNYXRyaXgoZm9udC5wbGF0Zm9ybURhdGEoKS5jdEZvbnQoKSkpKTsKKworICAgIGF1dG8mIHN0
YXRlID0gbV9vd25lci5jdXJyZW50U3RhdGUoKS5zdGF0ZUNoYW5nZS5tX3N0YXRlOworCisgICAg
bV9vcmlnaW5hbEZpbGxDb2xvciA9IHN0YXRlLmZpbGxDb2xvcjsKKyAgICBtX29yaWdpbmFsRmls
bEdyYWRpZW50ID0gc3RhdGUuZmlsbEdyYWRpZW50OworICAgIG1fb3JpZ2luYWxGaWxsUGF0dGVy
biA9IHN0YXRlLmZpbGxQYXR0ZXJuOworCisgICAgbV9vcmlnaW5hbFN0cm9rZUNvbG9yID0gc3Rh
dGUuc3Ryb2tlQ29sb3I7CisgICAgbV9vcmlnaW5hbFN0cm9rZUdyYWRpZW50ID0gc3RhdGUuc3Ry
b2tlR3JhZGllbnQ7CisgICAgbV9vcmlnaW5hbFN0cm9rZVBhdHRlcm4gPSBzdGF0ZS5zdHJva2VQ
YXR0ZXJuOworCisgICAgbV9jdXJyZW50RmlsbENvbG9yID0gbV9vcmlnaW5hbEZpbGxDb2xvcjsK
KyAgICBtX2N1cnJlbnRTdHJva2VDb2xvciA9IG1fb3JpZ2luYWxTdHJva2VDb2xvcjsKKworICAg
IGlmIChtX29yaWdpbmFsRmlsbENvbG9yLmlzVmFsaWQoKSkKKyAgICAgICAgbV9pbnRlcm5hbENv
bnRleHQuc2V0RmlsbENvbG9yKG1fb3JpZ2luYWxGaWxsQ29sb3IpOworICAgIGVsc2UgaWYgKG1f
b3JpZ2luYWxGaWxsR3JhZGllbnQpCisgICAgICAgIG1faW50ZXJuYWxDb250ZXh0LnNldEZpbGxH
cmFkaWVudCgqbV9vcmlnaW5hbEZpbGxHcmFkaWVudCk7CisgICAgZWxzZSB7CisgICAgICAgIEFT
U0VSVChtX29yaWdpbmFsRmlsbFBhdHRlcm4pOworICAgICAgICBpZiAobV9vcmlnaW5hbEZpbGxQ
YXR0ZXJuKQorICAgICAgICAgICAgbV9pbnRlcm5hbENvbnRleHQuc2V0RmlsbFBhdHRlcm4oKm1f
b3JpZ2luYWxGaWxsUGF0dGVybik7CisgICAgfQorCisgICAgaWYgKG1fb3JpZ2luYWxTdHJva2VD
b2xvci5pc1ZhbGlkKCkpCisgICAgICAgIG1faW50ZXJuYWxDb250ZXh0LnNldFN0cm9rZUNvbG9y
KG1fb3JpZ2luYWxTdHJva2VDb2xvcik7CisgICAgZWxzZSBpZiAobV9vcmlnaW5hbFN0cm9rZUdy
YWRpZW50KQorICAgICAgICBtX2ludGVybmFsQ29udGV4dC5zZXRTdHJva2VHcmFkaWVudCgqbV9v
cmlnaW5hbFN0cm9rZUdyYWRpZW50KTsKKyAgICBlbHNlIHsKKyAgICAgICAgQVNTRVJUKG1fb3Jp
Z2luYWxTdHJva2VQYXR0ZXJuKTsKKyAgICAgICAgaWYgKG1fb3JpZ2luYWxTdHJva2VQYXR0ZXJu
KQorICAgICAgICAgICAgbV9pbnRlcm5hbENvbnRleHQuc2V0U3Ryb2tlUGF0dGVybigqbV9vcmln
aW5hbFN0cm9rZVBhdHRlcm4pOworICAgIH0KKworICAgIG1fb3JpZ2luYWxDVE0gPSBtX293bmVy
LmN1cnJlbnRTdGF0ZSgpLmN0bTsgLy8gRklYTUU6IERlYWwgd2l0aCBkZXZpY2Ugc2NhbGUuCisg
ICAgbV9jdXJyZW50Q1RNID0gbV9vcmlnaW5hbENUTTsKKyAgICBtX2ludGVybmFsQ29udGV4dC5z
ZXRDVE0obV9vcmlnaW5hbENUTSk7CisKKyAgICBtX29yaWdpbmFsVGV4dE1hdHJpeCA9IGNvbXB1
dGVPdmVyYWxsVGV4dE1hdHJpeChmb250KTsKKyAgICBpZiAoZm9udC5wbGF0Zm9ybURhdGEoKS5v
cmllbnRhdGlvbigpID09IEZvbnRPcmllbnRhdGlvbjo6VmVydGljYWwpCisgICAgICAgIG1fb3Jp
Z2luYWxUZXh0TWF0cml4ID0gY29tcHV0ZVZlcnRpY2FsVGV4dE1hdHJpeChmb250LCBtX29yaWdp
bmFsVGV4dE1hdHJpeCk7CisKKyAgICBtX2ludGVybmFsQ29udGV4dC5zZXRTaGFkb3dzSWdub3Jl
VHJhbnNmb3JtcyhzdGF0ZS5zaGFkb3dzSWdub3JlVHJhbnNmb3Jtcyk7CisgICAgaWYgKHN0YXRl
LnNoYWRvd3NVc2VMZWdhY3lSYWRpdXMpCisgICAgICAgIG1faW50ZXJuYWxDb250ZXh0LnNldExl
Z2FjeVNoYWRvdyhzdGF0ZS5zaGFkb3dPZmZzZXQsIHN0YXRlLnNoYWRvd0JsdXIsIHN0YXRlLnNo
YWRvd0NvbG9yKTsKKyAgICBlbHNlCisgICAgICAgIG1faW50ZXJuYWxDb250ZXh0LnNldFNoYWRv
dyhzdGF0ZS5zaGFkb3dPZmZzZXQsIHN0YXRlLnNoYWRvd0JsdXIsIHN0YXRlLnNoYWRvd0NvbG9y
KTsKKworICAgIG1faW50ZXJuYWxDb250ZXh0LnNldFRleHREcmF3aW5nTW9kZShzdGF0ZS50ZXh0
RHJhd2luZ01vZGUpOworCisgICAgbV9vcmlnaW5hbFNoYWRvd09mZnNldCA9IHN0YXRlLnNoYWRv
d09mZnNldDsKKyAgICBtX29yaWdpbmFsU2hhZG93Qmx1ciA9IHN0YXRlLnNoYWRvd0JsdXI7Cisg
ICAgbV9vcmlnaW5hbFNoYWRvd0NvbG9yID0gc3RhdGUuc2hhZG93Q29sb3I7CisgICAgbV9vcmln
aW5hbFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zID0gc3RhdGUuc2hhZG93c0lnbm9yZVRyYW5zZm9y
bXM7CisKKyAgICBtX2N1cnJlbnRTaGFkb3dPZmZzZXQgPSBtX29yaWdpbmFsU2hhZG93T2Zmc2V0
OworICAgIG1fY3VycmVudFNoYWRvd0JsdXIgPSBtX29yaWdpbmFsU2hhZG93Qmx1cjsKKyAgICBt
X2N1cnJlbnRTaGFkb3dDb2xvciA9IG1fb3JpZ2luYWxTaGFkb3dDb2xvcjsKKyAgICBtX2N1cnJl
bnRTaGFkb3dzSWdub3JlVHJhbnNmb3JtcyA9IG1fb3JpZ2luYWxTaGFkb3dzSWdub3JlVHJhbnNm
b3JtczsKKworICAgIG1fY3VycmVudEZvbnQgPSAmZm9udDsKKyAgICBtX3Ntb290aGluZ01vZGUg
PSBzbW9vdGhpbmdNb2RlOworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6Y29uY2x1ZGVJ
bnRlcm5hbENvbnRleHQoKQoreworICAgIHVwZGF0ZUZpbGxDb2xvcihtX29yaWdpbmFsRmlsbENv
bG9yLCBtX29yaWdpbmFsRmlsbEdyYWRpZW50LmdldCgpLCBtX29yaWdpbmFsRmlsbFBhdHRlcm4u
Z2V0KCkpOworICAgIHVwZGF0ZVN0cm9rZUNvbG9yKG1fb3JpZ2luYWxTdHJva2VDb2xvciwgbV9v
cmlnaW5hbFN0cm9rZUdyYWRpZW50LmdldCgpLCBtX29yaWdpbmFsU3Ryb2tlUGF0dGVybi5nZXQo
KSk7CisgICAgdXBkYXRlQ1RNKG1fb3JpZ2luYWxDVE0pOworICAgIHVwZGF0ZVNoYWRvdyhtX29y
aWdpbmFsU2hhZG93T2Zmc2V0LCBtX29yaWdpbmFsU2hhZG93Qmx1ciwgbV9vcmlnaW5hbFNoYWRv
d0NvbG9yLCBtX29yaWdpbmFsU2hhZG93c0lnbm9yZVRyYW5zZm9ybXMgPyBTaGFkb3dzSWdub3Jl
VHJhbnNmb3Jtczo6WWVzIDogU2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6Ok5vKTsKK30KKwordm9p
ZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnVwZGF0ZUNUTShBZmZpbmVUcmFuc2Zvcm0gY3RtKQorewor
ICAgIGlmIChjdG0gPT0gbV9jdXJyZW50Q1RNKQorICAgICAgICByZXR1cm47CisKKyAgICBtX293
bmVyLnNldENUTShjdG0pOworICAgIG1fY3VycmVudENUTSA9IGN0bTsKK30KKwordm9pZCBEcmF3
R2x5cGhzUmVjb3JkZXI6OnVwZGF0ZUZpbGxDb2xvcihjb25zdCBDb2xvciYgbmV3Q29sb3IsIEdy
YWRpZW50KiBuZXdHcmFkaWVudCwgUGF0dGVybiogbmV3UGF0dGVybikKK3sKKyAgICAvLyBUaGlz
IGNoZWNrIGxvb2tzIHdyb25nIGJ1dCBpdCBhY3R1YWxseSBpc24ndCwgZm9yIG91ciBsaW1pdGVk
IHVzZS4KKyAgICAvLyBDVCB3aWxsIG9ubHkgZXZlciBzZXQgdGhpcyB0byBhIHNvbGlkIGNvbG9y
LCB3aGljaCB0aGlzIGlzIHRoZSBjb3JyZWN0IGNoZWNrIGZvci4KKyAgICAvLyBJbiBjb25jbHVk
ZUludGVybmFsQ29udGV4dCgpIHdlIHNldCBpdCBiYWNrIHRvIHdoYXQgaXQgd2FzIG9yaWdpbmFs
bHksIHdoaWNoIHRoaXMgY2hlY2sgd29ya3MgY29ycmVjdGx5IGZvciB0b28uCisgICAgaWYgKG5l
d0NvbG9yID09IG1fY3VycmVudEZpbGxDb2xvcikKKyAgICAgICAgcmV0dXJuOworCisgICAgR3Jh
cGhpY3NDb250ZXh0U3RhdGUgbmV3U3RhdGU7CisgICAgbmV3U3RhdGUuZmlsbENvbG9yID0gbmV3
Q29sb3I7CisgICAgaWYgKG5ld0dyYWRpZW50KQorICAgICAgICBuZXdTdGF0ZS5maWxsR3JhZGll
bnQgPSBuZXdHcmFkaWVudDsKKyAgICBpZiAobmV3UGF0dGVybikKKyAgICAgICAgbmV3U3RhdGUu
ZmlsbFBhdHRlcm4gPSBuZXdQYXR0ZXJuOworICAgIG1fb3duZXIudXBkYXRlU3RhdGUobmV3U3Rh
dGUsIHsgR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxDb2xvckNoYW5nZSB9KTsKKyAgICBtX2N1
cnJlbnRGaWxsQ29sb3IgPSBuZXdDb2xvcjsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6
OnVwZGF0ZVN0cm9rZUNvbG9yKGNvbnN0IENvbG9yJiBuZXdDb2xvciwgR3JhZGllbnQqIG5ld0dy
YWRpZW50LCBQYXR0ZXJuKiBuZXdQYXR0ZXJuKQoreworICAgIC8vIFRoaXMgY2hlY2sgbG9va3Mg
d3JvbmcgYnV0IGl0IGFjdHVhbGx5IGlzbid0LCBmb3Igb3VyIGxpbWl0ZWQgdXNlLgorICAgIC8v
IENUIHdpbGwgb25seSBldmVyIHNldCB0aGlzIHRvIGEgc29saWQgY29sb3IsIHdoaWNoIHRoaXMg
aXMgdGhlIGNvcnJlY3QgY2hlY2sgZm9yLgorICAgIC8vIEluIGNvbmNsdWRlSW50ZXJuYWxDb250
ZXh0KCkgd2Ugc2V0IGl0IGJhY2sgdG8gd2hhdCBpdCB3YXMgb3JpZ2luYWxseSwgd2hpY2ggdGhp
cyBjaGVjayB3b3JrcyBjb3JyZWN0bHkgZm9yIHRvby4KKyAgICBpZiAobmV3Q29sb3IgPT0gbV9j
dXJyZW50U3Ryb2tlQ29sb3IpCisgICAgICAgIHJldHVybjsKKworICAgIEdyYXBoaWNzQ29udGV4
dFN0YXRlIG5ld1N0YXRlOworICAgIG5ld1N0YXRlLnN0cm9rZUNvbG9yID0gbmV3Q29sb3I7Cisg
ICAgaWYgKG5ld0dyYWRpZW50KQorICAgICAgICBuZXdTdGF0ZS5zdHJva2VHcmFkaWVudCA9IG5l
d0dyYWRpZW50OworICAgIGlmIChuZXdQYXR0ZXJuKQorICAgICAgICBuZXdTdGF0ZS5zdHJva2VQ
YXR0ZXJuID0gbmV3UGF0dGVybjsKKyAgICBtX293bmVyLnVwZGF0ZVN0YXRlKG5ld1N0YXRlLCB7
IEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VDb2xvckNoYW5nZSB9KTsKKyAgICBtX2N1cnJl
bnRTdHJva2VDb2xvciA9IG5ld0NvbG9yOworfQorCitzdGF0aWMgYm9vbCBzaGFkb3dJc0NsZWFy
ZWQoY29uc3QgRmxvYXRTaXplJiBzaGFkb3dPZmZzZXQsIGZsb2F0IHNoYWRvd0JsdXIpCit7Cisg
ICAgcmV0dXJuIHNoYWRvd09mZnNldCA9PSBGbG9hdFNpemUoKSAmJiAhc2hhZG93Qmx1cjsKK30K
Kwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnVwZGF0ZVNoYWRvdyhjb25zdCBGbG9hdFNpemUm
IHNoYWRvd09mZnNldCwgZmxvYXQgc2hhZG93Qmx1ciwgY29uc3QgQ29sb3ImIHNoYWRvd0NvbG9y
LCBTaGFkb3dzSWdub3JlVHJhbnNmb3JtcyBzaGFkb3dzSWdub3JlVHJhbnNmb3JtcykKK3sKKyAg
ICAvLyBXZSBkb24ndCBuZWVkIHRvIGNvbnNpZGVyIHNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zIGlm
IG5vYm9keSBoYXMgYW55IHNoYWRvd3MuCisgICAgaWYgKHNoYWRvd0lzQ2xlYXJlZChzaGFkb3dP
ZmZzZXQsIHNoYWRvd0JsdXIpICYmIHNoYWRvd0lzQ2xlYXJlZChtX2N1cnJlbnRTaGFkb3dPZmZz
ZXQsIG1fY3VycmVudFNoYWRvd0JsdXIpKQorICAgICAgICByZXR1cm47CisKKyAgICBHcmFwaGlj
c0NvbnRleHRTdGF0ZSBuZXdTdGF0ZTsKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVD
aGFuZ2VGbGFncyBzdGF0ZUNoYW5nZUZsYWdzOworCisgICAgaWYgKHNoYWRvd09mZnNldCAhPSBt
X2N1cnJlbnRTaGFkb3dPZmZzZXQgfHwgc2hhZG93Qmx1ciAhPSBtX2N1cnJlbnRTaGFkb3dCbHVy
IHx8IHNoYWRvd0NvbG9yICE9IG1fY3VycmVudFNoYWRvd0NvbG9yKSB7CisgICAgICAgIG5ld1N0
YXRlLnNoYWRvd09mZnNldCA9IHNoYWRvd09mZnNldDsKKyAgICAgICAgbmV3U3RhdGUuc2hhZG93
Qmx1ciA9IHNoYWRvd0JsdXI7CisgICAgICAgIG5ld1N0YXRlLnNoYWRvd0NvbG9yID0gc2hhZG93
Q29sb3I7CisgICAgICAgIHN0YXRlQ2hhbmdlRmxhZ3MuYWRkKEdyYXBoaWNzQ29udGV4dFN0YXRl
OjpTaGFkb3dDaGFuZ2UpOworICAgIH0KKyAgICBpZiAoc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMg
IT0gU2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6OlVuc3BlY2lmaWVkICYmIChzaGFkb3dzSWdub3Jl
VHJhbnNmb3JtcyA9PSBTaGFkb3dzSWdub3JlVHJhbnNmb3Jtczo6WWVzKSAhPSBtX2N1cnJlbnRT
aGFkb3dzSWdub3JlVHJhbnNmb3JtcykgeworICAgICAgICBuZXdTdGF0ZS5zaGFkb3dzSWdub3Jl
VHJhbnNmb3JtcyA9IChzaGFkb3dzSWdub3JlVHJhbnNmb3JtcyA9PSBTaGFkb3dzSWdub3JlVHJh
bnNmb3Jtczo6WWVzKTsKKyAgICAgICAgc3RhdGVDaGFuZ2VGbGFncy5hZGQoR3JhcGhpY3NDb250
ZXh0U3RhdGU6OlNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zQ2hhbmdlKTsKKyAgICB9CisgICAgaWYg
KHN0YXRlQ2hhbmdlRmxhZ3MuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisgICAgbV9vd25l
ci51cGRhdGVTdGF0ZShuZXdTdGF0ZSwgc3RhdGVDaGFuZ2VGbGFncyk7CisKKyAgICBtX2N1cnJl
bnRTaGFkb3dPZmZzZXQgPSBzaGFkb3dPZmZzZXQ7CisgICAgbV9jdXJyZW50U2hhZG93Qmx1ciA9
IHNoYWRvd0JsdXI7CisgICAgbV9jdXJyZW50U2hhZG93Q29sb3IgPSBzaGFkb3dDb2xvcjsKKyAg
ICBtX2N1cnJlbnRTaGFkb3dzSWdub3JlVHJhbnNmb3JtcyA9IChzaGFkb3dzSWdub3JlVHJhbnNm
b3JtcyA9PSBTaGFkb3dzSWdub3JlVHJhbnNmb3Jtczo6WWVzKTsKK30KKwordm9pZCBEcmF3R2x5
cGhzUmVjb3JkZXI6OnVwZGF0ZVNoYWRvdyhDR1N0eWxlUmVmIHN0eWxlKQoreworICAgIGlmIChD
R1N0eWxlR2V0VHlwZShzdHlsZSkgIT0ga0NHU3R5bGVTaGFkb3cpIHsKKyAgICAgICAgLy8gRklY
TUU6IFN1cHBvcnQgbW9yZSBraW5kcyBvZiBDR1N0eWxlcy4KKyAgICAgICAgdXBkYXRlU2hhZG93
KHswLCAwfSwgMCwgQ29sb3IoKSwgU2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6OlVuc3BlY2lmaWVk
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnN0IGF1dG8mIHNoYWRvd1N0eWxl
ID0gKnN0YXRpY19jYXN0PGNvbnN0IENHU2hhZG93U3R5bGUqPihDR1N0eWxlR2V0RGF0YShzdHls
ZSkpOworICAgIGF1dG8gcmFkID0gZGVnMnJhZChzaGFkb3dTdHlsZS5hemltdXRoIC0gMTgwKTsK
KyAgICBhdXRvIHNoYWRvd09mZnNldCA9IEZsb2F0U2l6ZShzdGQ6OmNvcyhyYWQpLCBzdGQ6OnNp
bihyYWQpKSAqIHNoYWRvd1N0eWxlLmhlaWdodDsKKyAgICB1cGRhdGVTaGFkb3coc2hhZG93T2Zm
c2V0LCBzaGFkb3dTdHlsZS5yYWRpdXMsIENHU3R5bGVHZXRDb2xvcihzdHlsZSksIFNoYWRvd3NJ
Z25vcmVUcmFuc2Zvcm1zOjpZZXMpOworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6cmVj
b3JkQmVnaW5MYXllcihDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiBnc3RhdGUsIENH
UmVjdCkKK3sKKyAgICB1cGRhdGVDVE0oKkNHR1N0YXRlR2V0Q1RNKGdzdGF0ZSkpOworICAgIGF1
dG8gYWxwaGEgPSBDR0dTdGF0ZUdldEFscGhhKGdzdGF0ZSk7CisgICAgbV9vd25lci5iZWdpblRy
YW5zcGFyZW5jeUxheWVyKGFscGhhKTsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnJl
Y29yZEVuZExheWVyKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmIGdzdGF0ZSkKK3sK
KyAgICB1cGRhdGVDVE0oKkNHR1N0YXRlR2V0Q1RNKGdzdGF0ZSkpOworICAgIG1fb3duZXIuZW5k
VHJhbnNwYXJlbmN5TGF5ZXIoKTsKK30KKworc3RhdGljIFZlY3RvcjxDR1NpemU+IGNvbXB1dGVB
ZHZhbmNlc0Zyb21Qb3NpdGlvbnMoY29uc3QgQ0dQb2ludCBwb3NpdGlvbnNbXSwgc2l6ZV90IGNv
dW50LCBjb25zdCBDR0FmZmluZVRyYW5zZm9ybSYgdGV4dE1hdHJpeCkKK3sKKyAgICBWZWN0b3I8
Q0dTaXplPiByZXN1bHQ7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudCAtIDE7ICsr
aSkgeworICAgICAgICBhdXRvIG5leHRQb3NpdGlvbiA9IHBvc2l0aW9uc1tpICsgMV07CisgICAg
ICAgIGF1dG8gY3VycmVudFBvc2l0aW9uID0gcG9zaXRpb25zW2ldOworICAgICAgICBhdXRvIGFk
dmFuY2UgPSBDR1NpemVNYWtlKG5leHRQb3NpdGlvbi54IC0gY3VycmVudFBvc2l0aW9uLngsIG5l
eHRQb3NpdGlvbi55IC0gY3VycmVudFBvc2l0aW9uLnkpOworICAgICAgICByZXN1bHQuYXBwZW5k
KENHU2l6ZUFwcGx5QWZmaW5lVHJhbnNmb3JtKGFkdmFuY2UsIHRleHRNYXRyaXgpKTsKKyAgICB9
CisgICAgcmVzdWx0LmNvbnN0cnVjdEFuZEFwcGVuZChDR1NpemVNYWtlKDAsIDApKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6cmVjb3JkRHJhd0ds
eXBocyhDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiBnc3RhdGUsIGNvbnN0IENHQWZm
aW5lVHJhbnNmb3JtKiwgY29uc3QgQ0dHbHlwaCBnbHlwaHNbXSwgY29uc3QgQ0dQb2ludCBwb3Np
dGlvbnNbXSwgc2l6ZV90IGNvdW50KQoreworICAgIGlmICghY291bnQpCisgICAgICAgIHJldHVy
bjsKKworICAgIENHRm9udFJlZiB1c2VkRm9udCA9IENHR1N0YXRlR2V0Rm9udChnc3RhdGUpOwor
ICAgIGlmICh1c2VkRm9udCAhPSBhZG9wdENGKENURm9udENvcHlHcmFwaGljc0ZvbnQobV9jdXJy
ZW50Rm9udC0+cGxhdGZvcm1EYXRhKCkuY3RGb250KCksIG51bGxwdHIpKS5nZXQoKSkKKyAgICAg
ICAgcmV0dXJuOworCisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICBhdXRvIHRleHRQb3NpdGlvbiA9
IENHQ29udGV4dEdldFRleHRQb3NpdGlvbihtX2ludGVybmFsQ29udGV4dC5wbGF0Zm9ybUNvbnRl
eHQoKSk7CisgICAgQVNTRVJUKCF0ZXh0UG9zaXRpb24ueCk7CisgICAgQVNTRVJUKCF0ZXh0UG9z
aXRpb24ueSk7CisjZW5kaWYKKworICAgIHVwZGF0ZUNUTSgqQ0dHU3RhdGVHZXRDVE0oZ3N0YXRl
KSk7CisKKyAgICAvLyBXZSB3YW50IHRoZSBHUFUgcHJvY2VzcydzIENUTSBhbmQgdGV4dCBtYXRy
aXggdG8gbWF0Y2ggdGhlIGN1cnJlbnQgQ1RNIGFuZCB0ZXh0IG1hdHJpeC4KKyAgICAvLyBUaGUg
Y3VycmVudCB0ZXh0IG1hdHJpeCBpcyBhIGNvbmNhdGVuYXRpb24gb2Ygd2hhdGV2ZXIgV2ViS2l0
IHNldHMgaXQgdG8gYW5kIHdoYXRldmVyCisgICAgLy8gQ29yZSBUZXh0IGFwcGVuZHMgdG8gaXQu
IFNvLCByaWdodCBub3cgd2UgaGF2ZQorICAgIC8vIENUTSAqIG1fb3JpZ2luYWxUZXh0TWF0cml4
ICogQ29yZSBUZXh0J3MgdGV4dCBtYXRyaXguCisgICAgLy8gSG93ZXZlciwgQ0dDb250ZXh0R2V0
VGV4dE1hdHJpeCgpIGp1c3QgdGVsbHMgdXMgd2hhdCB0aGUgd2hvbGUgdGV4dCBtYXRyaXggaXMs
IHNvCisgICAgLy8gbV9vcmlnaW5hbFRleHRNYXRyaXggKiBDb3JlIFRleHQncyB0ZXh0IG1hdHJp
eCA9IGN1cnJlbnRUZXh0TWF0cml4LgorICAgIC8vIFRoZSBvbmx5IHdheSB3ZSBjYW4gZW11bGF0
ZSBDb3JlIFRleHQncyB0ZXh0IG1hdHJpeCBpcyBieSBtb2RpZnlpbmcgdGhlIENUTSBoZXJlLgor
ICAgIC8vIFNvLCBpZiB3ZSBkbyB0aGF0LCB0aGUgR1BVIHByb2Nlc3Mgd2lsbCBoYXZlCisgICAg
Ly8gQ1RNICogWCAqIG1fb3JpZ2luYWxUZXh0TWF0cml4CisgICAgLy8gSWYgeW91IHNldCB0aGVz
ZSB0d28gZXF1YWwgdG8gZWFjaCBvdGhlciwgYW5kIHNvbHZlIGZvciBYLCB5b3UgZ2V0CisgICAg
Ly8gQ1RNICogY3VycmVudFRleHRNYXRyaXggPSBDVE0gKiBYICogbV9vcmlnaW5hbFRleHRNYXRy
aXgKKyAgICAvLyBjdXJyZW50VGV4dE1hdHJpeCAqIGludmVyc2UobV9vcmlnaW5hbFRleHRNYXRy
aXgpID0gWAorICAgIEFmZmluZVRyYW5zZm9ybSBjdXJyZW50VGV4dE1hdHJpeCA9IENHQ29udGV4
dEdldFRleHRNYXRyaXgobV9pbnRlcm5hbENvbnRleHQucGxhdGZvcm1Db250ZXh0KCkpOworICAg
IEFmZmluZVRyYW5zZm9ybSBjdG1GaXh1cDsKKyAgICBpZiAoYXV0byBpbnZlcnRlZE9yaWdpbmFs
VGV4dE1hdHJpeCA9IG1fb3JpZ2luYWxUZXh0TWF0cml4LmludmVyc2UoKSkKKyAgICAgICAgY3Rt
Rml4dXAgPSBjdXJyZW50VGV4dE1hdHJpeCAqIGludmVydGVkT3JpZ2luYWxUZXh0TWF0cml4LnZh
bHVlKCk7CisgICAgQWZmaW5lVHJhbnNmb3JtIGludmVyc2VDVE1GaXh1cDsKKyAgICBpZiAoYXV0
byBpbnZlcnNlID0gY3RtRml4dXAuaW52ZXJzZSgpKQorICAgICAgICBpbnZlcnNlQ1RNRml4dXAg
PSBpbnZlcnNlLnZhbHVlKCk7CisgICAgZWxzZQorICAgICAgICBjdG1GaXh1cCA9IEFmZmluZVRy
YW5zZm9ybSgpOworICAgIG1fb3duZXIuY29uY2F0Q1RNKGN0bUZpeHVwKTsKKworICAgIHVwZGF0
ZUZpbGxDb2xvcihDR0dTdGF0ZUdldEZpbGxDb2xvcihnc3RhdGUpKTsKKyAgICB1cGRhdGVTdHJv
a2VDb2xvcihDR0dTdGF0ZUdldFN0cm9rZUNvbG9yKGdzdGF0ZSkpOworICAgIHVwZGF0ZVNoYWRv
dyhDR0dTdGF0ZUdldFN0eWxlKGdzdGF0ZSkpOworCisgICAgbV9vd25lci5hcHBlbmRJdGVtQW5k
VXBkYXRlRXh0ZW50KERyYXdHbHlwaHM6OmNyZWF0ZSgqbV9jdXJyZW50Rm9udCwgZ2x5cGhzLCBj
b21wdXRlQWR2YW5jZXNGcm9tUG9zaXRpb25zKHBvc2l0aW9ucywgY291bnQsIGN1cnJlbnRUZXh0
TWF0cml4KS5kYXRhKCksIGNvdW50LCBjdXJyZW50VGV4dE1hdHJpeC5tYXBQb2ludChwb3NpdGlv
bnNbMF0pLCBtX3Ntb290aGluZ01vZGUpKTsKKworICAgIG1fb3duZXIuY29uY2F0Q1RNKGludmVy
c2VDVE1GaXh1cCk7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpyZWNvcmREcmF3SW1h
Z2UoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYgZ3N0YXRlLCBDR1JlY3QgcmVjdCwg
Q0dJbWFnZVJlZiBjZ0ltYWdlKQoreworICAgIHVwZGF0ZUNUTSgqQ0dHU3RhdGVHZXRDVE0oZ3N0
YXRlKSk7CisgICAgdXBkYXRlU2hhZG93KENHR1N0YXRlR2V0U3R5bGUoZ3N0YXRlKSk7CisKKyAg
ICAvLyBDb3JlIEdyYXBoaWNzIGFzc3VtZXMgYSAieSB1cCIgY29vcmRpbmF0ZSBzeXN0ZW0sIGJ1
dCBpbiBXZWJLaXQsIHdlIHVzZSBhICJ5LWRvd24iIGNvb3JkaW5hdGUgc3lzdGVtLgorICAgIC8v
IFRoaXMgbWVhbnMgdGhhdCBXZWJLaXQncyBkcmF3aW5nIHJvdXRpbmVzIChHcmFwaGljc0NvbnRl
eHQ6OmRyYXdJbWFnZSgpKSBpbnRlbnRpb25hbGx5IGRyYXcgaW1hZ2VzIHVwc2lkZS1kb3duIGZy
b20gQ29yZSBHcmFwaGljcydzIHBvaW50IG9mIHZpZXcuCisgICAgLy8gKFRoZXJlJ3MgYSB5LWZs
aXAgaW5zaWRlIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFn
ZSgpLikKKyAgICAvLyBUaGUgcmVjdCBoYXMgdGhlIHJpZ2h0IGJvdW5kcywgYnV0IHdlIG5lZWQg
dG8gdHJhbnNmb3JtIGZyb20gQ0cncyBjb29yZGluYXRlIHN5c3RlbSB0byBXZWJLaXQncyBieSBw
ZXJmb3JtaW5nIG91ciBvd24geS1mbGlwIHNvIGltYWdlcyBhcmUgZHJhd24gdGhlIHJpZ2h0LXNp
ZGUtdXAuCisgICAgLy8gV2UgZG8gdGhpcyBhdCB0aGUgYm91bmRhcnkgYmV0d2VlbiB0aGUgdHdv
IEFQSXMsIHdoaWNoIGlzIHJpZ2h0IGhlcmUuCisgICAgbV9vd25lci50cmFuc2xhdGUoMCwgcmVj
dC5zaXplLmhlaWdodCArIDIgKiByZWN0Lm9yaWdpbi55KTsKKyAgICBtX293bmVyLnNjYWxlKEZs
b2F0U2l6ZSgxLCAtMSkpOworCisgICAgYXV0byBpbWFnZSA9IEJpdG1hcEltYWdlOjpjcmVhdGUo
Y2dJbWFnZSk7CisgICAgbV9vd25lci5hcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KERyYXdJbWFn
ZTo6Y3JlYXRlKGltYWdlLCByZWN0LCB7eyB9LCBpbWFnZS0+c2l6ZSgpfSwgeyBJbWFnZU9yaWVu
dGF0aW9uOjpPcmlnaW5Ub3BMZWZ0IH0pKTsKKworICAgIC8vIFVuZG8gdGhlIGFib3ZlIHktZmxp
cCB0byByZXN0b3JlIHRoZSBjb250ZXh0LgorICAgIG1fb3duZXIuc2NhbGUoRmxvYXRTaXplKDEs
IC0xKSk7CisgICAgbV9vd25lci50cmFuc2xhdGUoMCwgLShyZWN0LnNpemUuaGVpZ2h0ICsgMiAq
IHJlY3Qub3JpZ2luLnkpKTsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OmRyYXdHbHlw
aHMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZmZXImIGdseXBoQnVmZmVyLCB1bnNp
Z25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmIHN0YXJ0UG9p
bnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCit7CisgICAgcHJlcGFyZUludGVy
bmFsQ29udGV4dChmb250LCBzbW9vdGhpbmdNb2RlKTsKKyAgICBGb250Q2FzY2FkZTo6ZHJhd0ds
eXBocyhtX2ludGVybmFsQ29udGV4dCwgZm9udCwgZ2x5cGhCdWZmZXIsIGZyb20sIG51bUdseXBo
cywgc3RhcnRQb2ludCwgc21vb3RoaW5nTW9kZSk7CisgICAgY29uY2x1ZGVJbnRlcm5hbENvbnRl
eHQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgRGlzcGxheUxpc3QKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJh
d0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzYWMzMjRiN2IwMGE5ZTE2
YTU2YWQ2NzBjZTA0Y2ZhNzdmYzlmYTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVj
b3JkZXJIYXJmQnV6ei5jcHAKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJE
aXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIgorCisjaW5jbHVkZSAiRGlzcGxheUxpc3RJ
dGVtcy5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0UmVjb3JkZXIuaCIKKyNpbmNsdWRlICJGbG9h
dFBvaW50LmgiCisjaW5jbHVkZSAiRm9udC5oIgorI2luY2x1ZGUgIkdseXBoQnVmZmVyLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKKworRHJhd0ds
eXBoc1JlY29yZGVyOjpEcmF3R2x5cGhzUmVjb3JkZXIoUmVjb3JkZXImIG93bmVyKQorICAgIDog
bV9vd25lcihvd25lcikKK3sKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OmRyYXdHbHlw
aHMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZmZXImIGdseXBoQnVmZmVyLCB1bnNp
Z25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmIHN0YXJ0UG9p
bnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCit7CisgICAgbV9vd25lci5hcHBl
bmRJdGVtQW5kVXBkYXRlRXh0ZW50KERyYXdHbHlwaHM6OmNyZWF0ZShmb250LCBnbHlwaEJ1ZmZl
ci5nbHlwaHMoZnJvbSksIGdseXBoQnVmZmVyLmFkdmFuY2VzKGZyb20pLCBudW1HbHlwaHMsIHN0
YXJ0UG9pbnQsIHNtb290aGluZ01vZGUpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgRGlzcGxheUxp
c3QKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
UmVjb3JkZXIuY3BwCmluZGV4IGY2NmNmMWVjZmIyZjA5ODNhYjRjN2ViYWJkZDEwYTczOTgxNDYy
ZGIuLmYwOTZmMGJkNzA4NjhmMTFmYTg4YzBmNTUwNmRiNzQ1ZDcxMGM4MzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dFJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKQEAgLTQyLDYgKzQyLDcgQEAgUmVjb3Jk
ZXI6OlJlY29yZGVyKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgRGlzcGxheUxpc3QmIGRpc3Bs
YXlMaXN0LCBjb25zdCBHcmEKICAgICA6IEdyYXBoaWNzQ29udGV4dEltcGwoY29udGV4dCwgaW5p
dGlhbENsaXAsIEFmZmluZVRyYW5zZm9ybSgpKQogICAgICwgbV9kaXNwbGF5TGlzdChkaXNwbGF5
TGlzdCkKICAgICAsIG1fZGVsZWdhdGUoZGVsZWdhdGUpCisgICAgLCBtX2RyYXdHbHlwaHNSZWNv
cmRlcigqdGhpcykKIHsKICAgICBMT0dfV0lUSF9TVFJFQU0oRGlzcGxheUxpc3RzLCBzdHJlYW0g
PDwgIlxuUmVjb3JkaW5nIHdpdGggY2xpcCAiIDw8IGluaXRpYWxDbGlwKTsKICAgICBtX3N0YXRl
U3RhY2suYXBwZW5kKHsgc3RhdGUsIGluaXRpYWxDVE0sIGluaXRpYWxDbGlwIH0pOwpAQCAtMTU3
LDcgKzE1OCw3IEBAIHZvaWQgUmVjb3JkZXI6OnNldE1pdGVyTGltaXQoZmxvYXQgbWl0ZXJMaW1p
dCkKIAogdm9pZCBSZWNvcmRlcjo6ZHJhd0dseXBocyhjb25zdCBGb250JiBmb250LCBjb25zdCBH
bHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIG51bUdseXBo
cywgY29uc3QgRmxvYXRQb2ludCYgc3RhcnRQb2ludCwgRm9udFNtb290aGluZ01vZGUgc21vb3Ro
aW5nTW9kZSkKIHsKLSAgICBhcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KERyYXdHbHlwaHM6OmNy
ZWF0ZShmb250LCBnbHlwaEJ1ZmZlci5nbHlwaHMoZnJvbSksIGdseXBoQnVmZmVyLmFkdmFuY2Vz
KGZyb20pLCBudW1HbHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGluZ01vZGUpKTsKKyAgICBtX2Ry
YXdHbHlwaHNSZWNvcmRlci5kcmF3R2x5cGhzKGZvbnQsIGdseXBoQnVmZmVyLCBmcm9tLCBudW1H
bHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGluZ01vZGUpOwogfQogCiBJbWFnZURyYXdSZXN1bHQg
UmVjb3JkZXI6OmRyYXdJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGlu
YXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCkBAIC0yMzcsNiArMjM4LDkgQEAgdm9pZCBSZWNvcmRl
cjo6c2NhbGUoY29uc3QgRmxvYXRTaXplJiBzaXplKQogCiB2b2lkIFJlY29yZGVyOjpjb25jYXRD
VE0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0pCiB7CisgICAgaWYgKHRyYW5zZm9y
bS5pc0lkZW50aXR5KCkpCisgICAgICAgIHJldHVybjsKKwogICAgIGN1cnJlbnRTdGF0ZSgpLmNv
bmNhdENUTSh0cmFuc2Zvcm0pOwogICAgIGFwcGVuZEl0ZW0oQ29uY2F0ZW5hdGVDVE06OmNyZWF0
ZSh0cmFuc2Zvcm0pKTsKIH0KQEAgLTQyMiw3ICs0MjYsMTcgQEAgdm9pZCBSZWNvcmRlcjo6Y2xp
cFRvSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImLCBjb25zdCBGbG9hdFJlY3QmKQogCiB2b2lkIFJl
Y29yZGVyOjpjbGlwVG9EcmF3aW5nQ29tbWFuZHMoY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlv
biwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBGdW5jdGlvbjx2b2lkKEdyYXBoaWNzQ29udGV4dCYp
PiYmIGRyYXdpbmdGdW5jdGlvbikKIHsKLSAgICBhdXRvIHJlY29yZGluZ0NvbnRleHQgPSBtYWtl
VW5pcXVlPERyYXdpbmdDb250ZXh0PihkZXN0aW5hdGlvbi5zaXplKCkpOworICAgIC8vIFRoZSBp
bml0aWFsIENUTSBtYXRjaGVzIEltYWdlQnVmZmVyJ3MgaW5pdGlhbCBDVE0uCisgICAgQWZmaW5l
VHJhbnNmb3JtIHRyYW5zZm9ybSA9IGdldENUTShHcmFwaGljc0NvbnRleHQ6OkRlZmluaXRlbHlJ
bmNsdWRlRGV2aWNlU2NhbGUpOworICAgIEZsb2F0U2l6ZSBzY2FsZUZhY3Rvcih0cmFuc2Zvcm0u
eFNjYWxlKCksIHRyYW5zZm9ybS55U2NhbGUoKSk7CisgICAgYXV0byBzY2FsZWRTaXplID0gZXhw
YW5kZWRJbnRTaXplKGRlc3RpbmF0aW9uLnNpemUoKSAqIHNjYWxlRmFjdG9yKTsKKworICAgIEFm
ZmluZVRyYW5zZm9ybSBpbml0aWFsQ1RNOworICAgIGluaXRpYWxDVE0uc2NhbGUoMSwgLTEpOwor
ICAgIGluaXRpYWxDVE0udHJhbnNsYXRlKDAsIC1zY2FsZWRTaXplLmhlaWdodCgpKTsKKyAgICBp
bml0aWFsQ1RNLnNjYWxlKHNjYWxlZFNpemUgLyBkZXN0aW5hdGlvbi5zaXplKCkpOworCisgICAg
YXV0byByZWNvcmRpbmdDb250ZXh0ID0gbWFrZVVuaXF1ZTxEcmF3aW5nQ29udGV4dD4oZGVzdGlu
YXRpb24uc2l6ZSgpLCBpbml0aWFsQ1RNKTsKICAgICBkcmF3aW5nRnVuY3Rpb24ocmVjb3JkaW5n
Q29udGV4dC0+Y29udGV4dCgpKTsKICAgICBhcHBlbmRJdGVtKENsaXBUb0RyYXdpbmdDb21tYW5k
czo6Y3JlYXRlKGRlc3RpbmF0aW9uLCBjb2xvclNwYWNlLCByZWNvcmRpbmdDb250ZXh0LT50YWtl
RGlzcGxheUxpc3QoKSkpOwogfQpAQCAtNDUxLDEzICs0NjUsNiBAQCB2b2lkIFJlY29yZGVyOjph
cHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KFJlZjxEcmF3aW5nSXRlbT4mJiBpdGVtKQogICAgIHVw
ZGF0ZUl0ZW1FeHRlbnQobmV3SXRlbSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIEl0ZW1UeXBl
PgotSXRlbVR5cGUmIFJlY29yZGVyOjphcHBlbmRJdGVtKFJlZjxJdGVtVHlwZT4mJiBpdGVtKQot
ewotICAgIHdpbGxBcHBlbmRJdGVtKGl0ZW0uZ2V0KCkpOwotICAgIHJldHVybiBkb3duY2FzdDxJ
dGVtVHlwZT4obV9kaXNwbGF5TGlzdC5hcHBlbmQoV1RGTW92ZShpdGVtKSkpOwotfQotCiB2b2lk
IFJlY29yZGVyOjp1cGRhdGVJdGVtRXh0ZW50KERyYXdpbmdJdGVtJiBpdGVtKSBjb25zdAogewog
ICAgIGlmIChPcHRpb25hbDxGbG9hdFJlY3Q+IHJlY3QgPSBpdGVtLmxvY2FsQm91bmRzKGdyYXBo
aWNzQ29udGV4dCgpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCmluZGV4
IDg2OGNlMmE3NDM3Yzc0NDhmODY1ZWU5MDI5MmVlMGIxMzhjNDQ0M2EuLjBjYWNlYTRmZGI5YjM1
YzVkNzI2ODE5YzY2OGM3ZTNhOGFkMzJkOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
UmVjb3JkZXIuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJE
aXNwbGF5TGlzdC5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmgi
CiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0SW1wbC5oIgogI2luY2x1ZGUgIkltYWdlLmgiIC8v
IEZvciBJbWFnZTo6VGlsZVJ1bGUuCiAjaW5jbHVkZSAiVGV4dEZsYWdzLmgiCkBAIC02MSw4ICs2
Miw2IEBAIHB1YmxpYzoKIAogICAgIHNpemVfdCBpdGVtQ291bnQoKSBjb25zdCB7IHJldHVybiBt
X2Rpc3BsYXlMaXN0Lml0ZW1Db3VudCgpOyB9CiAKLSAgICB2b2lkIGFwcGVuZEl0ZW1BbmRVcGRh
dGVFeHRlbnQoUmVmPERyYXdpbmdJdGVtPiYmKTsKLQogICAgIGNsYXNzIERlbGVnYXRlIHsKICAg
ICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfkRlbGVnYXRlKCkgeyB9CkBAIC03MSw2ICs3MCw3
IEBAIHB1YmxpYzoKICAgICB9OwogCiBwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBEcmF3R2x5
cGhzUmVjb3JkZXI7CiAgICAgYm9vbCBoYXNQbGF0Zm9ybUNvbnRleHQoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBmYWxzZTsgfQogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0KiBwbGF0Zm9y
bUNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9CiAKQEAgLTE1MCw2
ICsxNTAsNyBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEl0ZW1UeXBlPgogICAg
IEl0ZW1UeXBlJiBhcHBlbmRJdGVtKFJlZjxJdGVtVHlwZT4mJik7CiAgICAgdm9pZCB3aWxsQXBw
ZW5kSXRlbShjb25zdCBJdGVtJik7CisgICAgdm9pZCBhcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50
KFJlZjxEcmF3aW5nSXRlbT4mJik7CiAKICAgICB2b2lkIGFwcGVuZFN0YXRlQ2hhbmdlSXRlbShj
b25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSYsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpT
dGF0ZUNoYW5nZUZsYWdzKTsKIApAQCAtMTk0LDggKzE5NSwxNyBAQCBwcml2YXRlOgogICAgIERl
bGVnYXRlKiBtX2RlbGVnYXRlOwogCiAgICAgVmVjdG9yPENvbnRleHRTdGF0ZSwgMzI+IG1fc3Rh
dGVTdGFjazsKKworICAgIERyYXdHbHlwaHNSZWNvcmRlciBtX2RyYXdHbHlwaHNSZWNvcmRlcjsK
IH07CiAKK3RlbXBsYXRlPHR5cGVuYW1lIEl0ZW1UeXBlPgorSXRlbVR5cGUmIFJlY29yZGVyOjph
cHBlbmRJdGVtKFJlZjxJdGVtVHlwZT4mJiBpdGVtKQoreworICAgIHdpbGxBcHBlbmRJdGVtKGl0
ZW0uZ2V0KCkpOworICAgIHJldHVybiBkb3duY2FzdDxJdGVtVHlwZT4obV9kaXNwbGF5TGlzdC5h
cHBlbmQoV1RGTW92ZShpdGVtKSkpOworfQorCiB9CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvdGV4dC9jYW52YXMtQ09MUi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC90ZXh0L2NhbnZhcy1DT0xSLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzFjYjE4NzAwZjc2
MGNlNWEwNjE0MGVhNTgzODQ2ZTYwNTkyODM0NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvdGV4dC9jYW52YXMtQ09MUi1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNTQgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK0Bmb250LWZhY2Ugewor
ICAgIGZvbnQtZmFtaWx5OiAiV2ViRm9udCI7CisgICAgc3JjOiB1cmwoInJlc291cmNlcy9BaGVt
LUNPTFIudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOworfQorCitib2R5IHsKKyAgICBwb3NpdGlv
bjogcmVsYXRpdmU7Cit9CisKKyNvbmUgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBs
ZWZ0OiAxMDBweDsKKyAgICB0b3A6IDQwcHg7Cit9CisKKyN0d28geworICAgIHBvc2l0aW9uOiBh
YnNvbHV0ZTsKKyAgICBsZWZ0OiAzMDBweDsKKyAgICB0b3A6IDQwcHg7CisgICAgY29sb3I6IHJn
YigyNTUsIDAsIDI1NSk7Cit9CisKKyN0aHJlZSB7CisgICAgcG9zaXRpb246IGFic29sdXRlOwor
ICAgIGxlZnQ6IDMwMHB4OworICAgIHRvcDogNDBweDsKKyAgICBjb2xvcjogcmdiKDAsIDI1NSwg
MjU1KTsKK30KKworI2ZvdXIgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiA1
MDBweDsKKyAgICB0b3A6IDQwcHg7Cit9CisKK2RpdiB7CisgICAgZm9udDogMjAwcHggIldlYkZv
bnQiOworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiA0MDBweDsKKyAgICB0b3A6
IDQwcHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJvbmUiPkI8L2Rp
dj4KKzxkaXYgaWQ9InR3byI+QjwvZGl2PgorPGRpdiBpZD0idGhyZWUiPiYjeDdFQjU7PC9kaXY+
Cis8ZGl2IGlkPSJmb3VyIj5CPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFzLUNPTFIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
dGV4dC9jYW52YXMtQ09MUi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjMjIyZGI0MjE0NDQyMzgyMzM5MjVi
MTg2NjgwNGQwYjg2NGQzMTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Rl
eHQvY2FudmFzLUNPTFIuaHRtbApAQCAtMCwwICsxLDIzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogIldl
YkZvbnQiOworICAgIHNyYzogdXJsKCJyZXNvdXJjZXMvQWhlbS1DT0xSLnR0ZiIpIGZvcm1hdCgi
dHJ1ZXR5cGUiKTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImNh
bnZhcyIgd2lkdGg9Ijc1MCIgaGVpZ2h0PSIzNTAiIHN0eWxlPSJ3aWR0aDogNzUwcHg7IGhlaWdo
dDsgMzUwcHg7Ij48L2NhbnZhcz4KKzxzY3JpcHQ+CitsZXQgZm9udCA9ICIyMDBweCAnV2ViRm9u
dCciOworZG9jdW1lbnQuZm9udHMubG9hZChmb250KS50aGVuKGZ1bmN0aW9uKCkgeworICAgIGxl
dCBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7CisgICAgbGV0IGNv
bnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICBjb250ZXh0LmZvbnQgPSBmb250
OworICAgIGNvbnRleHQuZmlsbFRleHQoIkJBQiIsIDEwMCwgMjAwKTsKK30pOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY2Fu
dmFzLWN0bS1DT0xSLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFz
LWN0bS1DT0xSLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmQwNDE3MzVmMGY5NTA1MGYwMWNi
MGUwMGYyNWRmZmEzZjc2NTE2YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
dGV4dC9jYW52YXMtY3RtLUNPTFItZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c3R5
bGU+CitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogIldlYkZvbnQiOworICAgIHNyYzog
dXJsKCJyZXNvdXJjZXMvQWhlbS1DT0xSLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsKK30KKzwv
c3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsi
PjxkaXYgc3R5bGU9ImZvbnQ6IDEwMHB4ICdXZWJGb250JzsgcG9zaXRpb246IGFic29sdXRlOyB0
b3A6IDEyMHB4OyBsZWZ0OiAyMDBweDsiPkJBQjwvZGl2PjwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZhcy1jdG0tQ09MUi5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZhcy1jdG0tQ09MUi5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjJiMjc0NGNkYjRiMTM1NWY5YTM4YWVlODQxNjM3ZjEzMGY4ZDUyZWYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFzLWN0bS1DT0xSLmh0bWwKQEAgLTAsMCAr
MSwzMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgorPHN0eWxlPgorQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6ICJXZWJGb250
IjsKKyAgICBzcmM6IHVybCgicmVzb3VyY2VzL0FoZW0tQ09MUi50dGYiKSBmb3JtYXQoInRydWV0
eXBlIik7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJjYW52YXMi
IHdpZHRoPSI3MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6IDcwMHB4OyBoZWlnaHQ7IDUw
MHB4OyI+PC9jYW52YXM+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCitsZXQgZm9udCA9ICI1MHB4ICdXZWJGb250JyI7
Citkb2N1bWVudC5mb250cy5sb2FkKGZvbnQpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgbGV0IGNh
bnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKKyAgICBsZXQgY29udGV4
dCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOworICAgIGNvbnRleHQuc2NhbGUoMiwgMik7Cisg
ICAgY29udGV4dC5mb250ID0gZm9udDsKKyAgICBjb250ZXh0LmZpbGxUZXh0KCJCQUIiLCAxMDAs
IDEwMCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFzLWZpbGwtY29sb3ItQ09MUi1leHBlY3RlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZhcy1maWxsLWNvbG9yLUNPTFItZXhwZWN0
ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44NTM2MmNmNzY2ZTcxYTJmNjdiMjIwMjBlYjdkMzQ1MzliNGUw
NDE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZhcy1maWxs
LWNvbG9yLUNPTFItZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c3R5bGU+CitAZm9u
dC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogIldlYkZvbnQiOworICAgIHNyYzogdXJsKCJyZXNv
dXJjZXMvQWhlbS1DT0xSLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsKK30KKzwvc3R5bGU+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsiPjxkaXYgc3R5
bGU9ImZvbnQ6IDEwMHB4ICdXZWJGb250JzsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDIwcHg7
IGxlZnQ6IDEwMHB4OyBjb2xvcjogZ3JlZW47Ij5CQUI8L2Rpdj48L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jYW52YXMtZmlsbC1jb2xv
ci1DT0xSLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFzLWZpbGwtY29sb3ItQ09M
Ui5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjhjY2Y3ZDYxMWI3OWI5NmE0OWQ0MTM0MDBmNTU4Y2MwNDdhN2U1
ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFzLWZpbGwt
Y29sb3ItQ09MUi5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzdHlsZT4KK0Bmb250LWZhY2Ugewor
ICAgIGZvbnQtZmFtaWx5OiAiV2ViRm9udCI7CisgICAgc3JjOiB1cmwoInJlc291cmNlcy9BaGVt
LUNPTFIudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxi
b2R5PgorPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iNzAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9
IndpZHRoOiA3MDBweDsgaGVpZ2h0OyA1MDBweDsiPjwvY2FudmFzPgorPHNjcmlwdD4KK2lmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworbGV0
IGZvbnQgPSAiMTAwcHggJ1dlYkZvbnQnIjsKK2RvY3VtZW50LmZvbnRzLmxvYWQoZm9udCkudGhl
bihmdW5jdGlvbigpIHsKKyAgICBsZXQgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNhbnZhcyIpOworICAgIGxldCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7Cisg
ICAgY29udGV4dC5mb250ID0gZm9udDsKKyAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICJncmVlbiI7
CisgICAgY29udGV4dC5maWxsVGV4dCgiQkFCIiwgMTAwLCAxMDApOworICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9KTsKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0
L2NhbnZhcy1maWxsLWNvbG9yLXNoYWRvdy1DT0xSLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3RleHQvY2FudmFzLWZpbGwtY29sb3Itc2hhZG93LUNPTFItZXhwZWN0ZWQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42YWFmZDNmYmQyZThjYmNkOTc2MTVlMDY1MzE2MmVmZWViZWZmNTMwCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZhcy1maWxsLWNvbG9yLXNo
YWRvdy1DT0xSLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxOSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPC9oZWFkPgorPGJvZHk+
Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSI3MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lk
dGg6IDcwMHB4OyBoZWlnaHQ7IDUwMHB4OyI+PC9jYW52YXM+Cis8c2NyaXB0PgorbGV0IGNhbnZh
cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKK2xldCBjb250ZXh0ID0gY2Fu
dmFzLmdldENvbnRleHQoIjJkIik7Citjb250ZXh0LmZpbGxTdHlsZSA9ICJtYWdlbnRhIjsKK2Nv
bnRleHQuZmlsbFJlY3QoMjAwLCAyMCwgMTAwLCAxMDApOworY29udGV4dC5maWxsU3R5bGUgPSAi
YXF1YSI7Citjb250ZXh0LmZpbGxSZWN0KDIyMCwgMjAsIDIwLCAxMDApOworY29udGV4dC5maWxs
U3R5bGUgPSAiZ3JlZW4iOworY29udGV4dC5maWxsUmVjdCgyMDAsIDEyMCwgMzAwLCAxMDApOwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3RleHQvY2FudmFzLWZpbGwtY29sb3Itc2hhZG93LUNPTFIuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvdGV4dC9jYW52YXMtZmlsbC1jb2xvci1zaGFkb3ctQ09MUi5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4
ZmVmZGQ1MjU2MDJkMGZiNTg5OWU5MDZlMjdiNzBjZmE2MDFhOGMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFzLWZpbGwtY29sb3Itc2hhZG93LUNPTFIuaHRt
bApAQCAtMCwwICsxLDMzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWls
eTogIldlYkZvbnQiOworICAgIHNyYzogdXJsKCJyZXNvdXJjZXMvQWhlbS1DT0xSLnR0ZiIpIGZv
cm1hdCgidHJ1ZXR5cGUiKTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMg
aWQ9ImNhbnZhcyIgd2lkdGg9IjcwMCIgaGVpZ2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDogNzAwcHg7
IGhlaWdodDsgNTAwcHg7Ij48L2NhbnZhcz4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKK2xldCBmb250ID0gIjEwMHB4
ICdXZWJGb250JyI7Citkb2N1bWVudC5mb250cy5sb2FkKGZvbnQpLnRoZW4oZnVuY3Rpb24oKSB7
CisgICAgbGV0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKKyAg
ICBsZXQgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOworICAgIGNvbnRleHQuZm9u
dCA9IGZvbnQ7CisgICAgY29udGV4dC5maWxsU3R5bGUgPSAid2hpdGUiOworICAgIGNvbnRleHQu
c2hhZG93Q29sb3IgPSAiZ3JlZW4iOworICAgIGNvbnRleHQuc2hhZG93T2Zmc2V0WCA9IDEwMDsK
KyAgICBjb250ZXh0LnNoYWRvd09mZnNldFkgPSAxMDA7CisgICAgY29udGV4dC5maWxsVGV4dCgi
QkFCIiwgMTAwLCAxMDApOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZhcy1maWxsLWNvbG9yLXNoYWRv
dy1jdG0tQ09MUi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZhcy1m
aWxsLWNvbG9yLXNoYWRvdy1jdG0tQ09MUi1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4YjE3
ZjE3NzAxZThkZDU4YTY0OWIxN2Y2NjczNWYyNGE4ZDE1ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFzLWZpbGwtY29sb3Itc2hhZG93LWN0bS1DT0xSLWV4
cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlk
PSJjYW52YXMiIHdpZHRoPSI3MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6IDcwMHB4OyBo
ZWlnaHQ7IDUwMHB4OyI+PC9jYW52YXM+Cis8c2NyaXB0PgorbGV0IGNhbnZhcyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKK2xldCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRl
eHQoIjJkIik7Citjb250ZXh0LmZpbGxTdHlsZSA9ICJtYWdlbnRhIjsKK2NvbnRleHQuZmlsbFJl
Y3QoMzAwLCAxMjAsIDEwMCwgMTAwKTsKK2NvbnRleHQuZmlsbFN0eWxlID0gImFxdWEiOworY29u
dGV4dC5maWxsUmVjdCgzMjAsIDEyMCwgMjAsIDEwMCk7Citjb250ZXh0LmZpbGxTdHlsZSA9ICJn
cmVlbiI7Citjb250ZXh0LmZpbGxSZWN0KDMwMCwgMjIwLCAzMDAsIDEwMCk7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jYW52
YXMtZmlsbC1jb2xvci1zaGFkb3ctY3RtLUNPTFIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4
dC9jYW52YXMtZmlsbC1jb2xvci1zaGFkb3ctY3RtLUNPTFIuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NDhk
Y2UxYzBhNTlmODM5OGQwMGM1MDQ2ZjAwMzFhMjk4NjdmMWY4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZhcy1maWxsLWNvbG9yLXNoYWRvdy1jdG0tQ09MUi5o
dG1sCkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzdHlsZT4KK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFt
aWx5OiAiV2ViRm9udCI7CisgICAgc3JjOiB1cmwoInJlc291cmNlcy9BaGVtLUNPTFIudHRmIikg
Zm9ybWF0KCJ0cnVldHlwZSIpOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZh
cyBpZD0iY2FudmFzIiB3aWR0aD0iNzAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiA3MDBw
eDsgaGVpZ2h0OyA1MDBweDsiPjwvY2FudmFzPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworbGV0IGZvbnQgPSAiNTBw
eCAnV2ViRm9udCciOworZG9jdW1lbnQuZm9udHMubG9hZChmb250KS50aGVuKGZ1bmN0aW9uKCkg
eworICAgIGxldCBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7Cisg
ICAgbGV0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICBjb250ZXh0LnNj
YWxlKDIsIDIpOworICAgIGNvbnRleHQuZm9udCA9IGZvbnQ7CisgICAgY29udGV4dC5maWxsU3R5
bGUgPSAid2hpdGUiOworICAgIGNvbnRleHQuc2hhZG93Q29sb3IgPSAiZ3JlZW4iOworICAgIGNv
bnRleHQuc2hhZG93T2Zmc2V0WCA9IDEwMDsKKyAgICBjb250ZXh0LnNoYWRvd09mZnNldFkgPSAx
MDA7CisgICAgY29udGV4dC5maWxsVGV4dCgiQkFCIiwgMTAwLCAxMDApOworICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9KTsKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90
ZXh0L2NhbnZhcy1maWxsLWdyYWRpZW50LUNPTFItZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvdGV4dC9jYW52YXMtZmlsbC1ncmFkaWVudC1DT0xSLWV4cGVjdGVkLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZWZmOGQyMzczZTJlOGExNmFkZTBmNWQ0MDk0OTcxMTZiM2E3NDI3MQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jYW52YXMtZmlsbC1ncmFkaWVudC1DT0xS
LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHN0eWxlPgorQGZvbnQtZmFjZSB7Cisg
ICAgZm9udC1mYW1pbHk6ICJXZWJGb250IjsKKyAgICBzcmM6IHVybCgicmVzb3VyY2VzL0FoZW0t
Q09MUi50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJv
ZHk+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSI3MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0i
d2lkdGg6IDcwMHB4OyBoZWlnaHQ7IDUwMHB4OyI+PC9jYW52YXM+Cis8c2NyaXB0PgoraWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCitsZXQg
Zm9udCA9ICIxMDBweCAnV2ViRm9udCciOworZG9jdW1lbnQuZm9udHMubG9hZChmb250KS50aGVu
KGZ1bmN0aW9uKCkgeworICAgIGxldCBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
Y2FudmFzIik7CisgICAgbGV0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAg
ICBjb250ZXh0LmZvbnQgPSBmb250OworICAgIGxldCBncmFkaWVudCA9IGNvbnRleHQuY3JlYXRl
TGluZWFyR3JhZGllbnQoMTAwLCAyMDAsIDQwMCwgMjAwKTsKKyAgICBncmFkaWVudC5hZGRDb2xv
clN0b3AoMCwgInJnYigyNTUsIDAsIDEyOCkiKTsKKyAgICBncmFkaWVudC5hZGRDb2xvclN0b3Ao
MSwgInJnYigyNTUsIDE1MywgNTEpIik7CisgICAgY29udGV4dC5maWxsU3R5bGUgPSBncmFkaWVu
dDsKKyAgICBjb250ZXh0LmZpbGxSZWN0KDEwMCwgMjAsIDMwMCwgMTAwKTsKKyAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfSk7Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
dGV4dC9jYW52YXMtZmlsbC1ncmFkaWVudC1DT0xSLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Rl
eHQvY2FudmFzLWZpbGwtZ3JhZGllbnQtQ09MUi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhYjg2YTEzNTlj
NGNiNTQ0MWYwMTBjMzA1Y2RjMjE4ZTI0ZjAzNGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3RleHQvY2FudmFzLWZpbGwtZ3JhZGllbnQtQ09MUi5odG1sCkBAIC0wLDAgKzEs
MzMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KKzxzdHlsZT4KK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiAiV2ViRm9udCI7
CisgICAgc3JjOiB1cmwoInJlc291cmNlcy9BaGVtLUNPTFIudHRmIikgZm9ybWF0KCJ0cnVldHlw
ZSIpOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iY2FudmFzIiB3
aWR0aD0iNzAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiA3MDBweDsgaGVpZ2h0OyA1MDBw
eDsiPjwvY2FudmFzPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworbGV0IGZvbnQgPSAiMTAwcHggJ1dlYkZvbnQnIjsK
K2RvY3VtZW50LmZvbnRzLmxvYWQoZm9udCkudGhlbihmdW5jdGlvbigpIHsKKyAgICBsZXQgY2Fu
dmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOworICAgIGxldCBjb250ZXh0
ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7CisgICAgY29udGV4dC5mb250ID0gZm9udDsKKyAg
ICBsZXQgZ3JhZGllbnQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KDEwMCwgMjAwLCA0
MDAsIDIwMCk7CisgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKDAsICJyZ2IoMjU1LCAwLCAxMjgp
Iik7CisgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKDEsICJyZ2IoMjU1LCAxNTMsIDUxKSIpOwor
ICAgIGNvbnRleHQuZmlsbFN0eWxlID0gZ3JhZGllbnQ7CisgICAgY29udGV4dC5maWxsVGV4dCgi
QkFCIiwgMTAwLCAxMDApOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZhcy1saW5lZGFzaC1DT0xSLWV4
cGVjdGVkLW1pc21hdGNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFzLWxpbmVk
YXNoLUNPTFItZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOTQwMDI4Njc4NWFi
Mzg3OWNkOGM5OTE1MDBkMTUwYTBkYjkwMzUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC90ZXh0L2NhbnZhcy1saW5lZGFzaC1DT0xSLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwK
QEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHN0eWxlPgorQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6
ICJXZWJGb250IjsKKyAgICBzcmM6IHVybCgicmVzb3VyY2VzL0FoZW0tQ09MUi50dGYiKSBmb3Jt
YXQoInRydWV0eXBlIik7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlk
PSJjYW52YXMiIHdpZHRoPSI3MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6IDcwMHB4OyBo
ZWlnaHQ7IDUwMHB4OyI+PC9jYW52YXM+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCitsZXQgZm9udCA9ICI1MHB4ICdX
ZWJGb250JyI7Citkb2N1bWVudC5mb250cy5sb2FkKGZvbnQpLnRoZW4oZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKKyAgICBs
ZXQgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOworICAgIGNvbnRleHQuZm9udCA9
IGZvbnQ7CisgICAgY29udGV4dC5zdHJva2VUZXh0KCJBIiwgMTAwLCAxMDApOworICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9KTsK
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC90ZXh0L2NhbnZhcy1saW5lZGFzaC1DT0xSLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQv
Y2FudmFzLWxpbmVkYXNoLUNPTFIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZjU0YTQ0ZDQyYzM2YTQ3ZGQ0
NDE1OTI0MDhmMjNmZWI4ODA0N2VlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC90ZXh0L2NhbnZhcy1saW5lZGFzaC1DT0xSLmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHN0eWxl
PgorQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6ICJXZWJGb250IjsKKyAgICBzcmM6IHVy
bCgicmVzb3VyY2VzL0FoZW0tQ09MUi50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7Cit9Cis8L3N0
eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSI3MDAiIGhl
aWdodD0iNTAwIiBzdHlsZT0id2lkdGg6IDcwMHB4OyBoZWlnaHQ7IDUwMHB4OyI+PC9jYW52YXM+
Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOworCitsZXQgZm9udCA9ICI1MHB4ICdXZWJGb250JyI7Citkb2N1bWVudC5mb250
cy5sb2FkKGZvbnQpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgbGV0IGNhbnZhcyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKKyAgICBsZXQgY29udGV4dCA9IGNhbnZhcy5nZXRD
b250ZXh0KCIyZCIpOworICAgIGNvbnRleHQuc2V0TGluZURhc2goWzIsIDJdKTsKKyAgICBjb250
ZXh0LmZvbnQgPSBmb250OworICAgIGNvbnRleHQuc3Ryb2tlVGV4dCgiQSIsIDEwMCwgMTAwKTsK
KyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvdGV4dC9jYW52YXMtbGluZWRhc2gtb3V0bGluZXMtZXhwZWN0ZWQtbWlzbWF0
Y2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jYW52YXMtbGluZWRhc2gtb3V0bGluZXMt
ZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NTRmMzA1MDhmZjQ3MzRlMGM3NTZh
NmFiMGY4ZDVhZTIzMzA0MzRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90
ZXh0L2NhbnZhcy1saW5lZGFzaC1vdXRsaW5lcy1leHBlY3RlZC1taXNtYXRjaC5odG1sCkBAIC0w
LDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKzxzdHlsZT4KK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiAiV2Vi
Rm9udCI7CisgICAgc3JjOiB1cmwoInJlc291cmNlcy9BaGVtLUNPTFIudHRmIikgZm9ybWF0KCJ0
cnVldHlwZSIpOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iY2Fu
dmFzIiB3aWR0aD0iNzAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiA3MDBweDsgaGVpZ2h0
OyA1MDBweDsiPjwvY2FudmFzPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworbGV0IGZvbnQgPSAiNTBweCAnV2ViRm9u
dCciOworZG9jdW1lbnQuZm9udHMubG9hZChmb250KS50aGVuKGZ1bmN0aW9uKCkgeworICAgIGxl
dCBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7CisgICAgbGV0IGNv
bnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICBjb250ZXh0LmZvbnQgPSBmb250
OworICAgIGNvbnRleHQuc3Ryb2tlVGV4dCgiQiIsIDEwMCwgMTAwKTsKKyAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfSk7Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4
dC9jYW52YXMtbGluZWRhc2gtb3V0bGluZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9j
YW52YXMtbGluZWRhc2gtb3V0bGluZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NTQ2MmY3Zjc4NDFmYjdh
MjI1OWNlOGUwNGNiODkwZDFlNjRjMjUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC90ZXh0L2NhbnZhcy1saW5lZGFzaC1vdXRsaW5lcy5odG1sCkBAIC0wLDAgKzEsMzAgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
KzxzdHlsZT4KK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiAiV2ViRm9udCI7CisgICAg
c3JjOiB1cmwoInJlc291cmNlcy9BaGVtLUNPTFIudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOwor
fQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0i
NzAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiA3MDBweDsgaGVpZ2h0OyA1MDBweDsiPjwv
Y2FudmFzPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKKworbGV0IGZvbnQgPSAiNTBweCAnV2ViRm9udCciOworZG9jdW1l
bnQuZm9udHMubG9hZChmb250KS50aGVuKGZ1bmN0aW9uKCkgeworICAgIGxldCBjYW52YXMgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7CisgICAgbGV0IGNvbnRleHQgPSBjYW52
YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICBjb250ZXh0LnNldExpbmVEYXNoKFsyLCAyXSk7Cisg
ICAgY29udGV4dC5mb250ID0gZm9udDsKKyAgICBjb250ZXh0LnN0cm9rZVRleHQoIkIiLCAxMDAs
IDEwMCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFzLXN0cm9rZS1jb2xvci1DT0xSLWV4cGVjdGVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFzLXN0cm9rZS1jb2xvci1DT0xSLWV4
cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjU0NzEyMTQ0MDQ0MGI0OTI2Njg4MWU5NmVkMGUxZjEy
Njc4YzExMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jYW52YXMt
c3Ryb2tlLWNvbG9yLUNPTFItZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c3R5bGU+
CitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogIldlYkZvbnQiOworICAgIHNyYzogdXJs
KCJyZXNvdXJjZXMvQWhlbS1DT0xSLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsKK30KKzwvc3R5
bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImNhbnZhcyIgd2lkdGg9IjcwMCIgaGVp
Z2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDogNzAwcHg7IGhlaWdodDsgNTAwcHg7Ij48L2NhbnZhcz4K
KzxzY3JpcHQ+CitsZXQgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIp
OworbGV0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKK2NvbnRleHQuc3Ryb2tl
U3R5bGUgPSAiZ3JlZW4iOworY29udGV4dC5saW5lV2lkdGggPSAyOworY29udGV4dC5zdHJva2VS
ZWN0KDEwMCwgMjAsIDEwMCwgMTAwKTsKK2NvbnRleHQuc3Ryb2tlUmVjdCgyMDAsIDIwLCAxMDAs
IDEwMCk7Citjb250ZXh0LnN0cm9rZVJlY3QoMjIwLCAyMCwgMjAsIDEwMCk7Citjb250ZXh0LnN0
cm9rZVJlY3QoMzAwLCAyMCwgMTAwLCAxMDApOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFzLXN0cm9rZS1jb2xvci1D
T0xSLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFzLXN0cm9rZS1jb2xvci1DT0xS
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODZhODRhYjA3ZmNiMGNiNDg3YTUxZGI2NTlmNjQ1NzEzYzBmMTQ0
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jYW52YXMtc3Ryb2tl
LWNvbG9yLUNPTFIuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c3R5bGU+CitAZm9udC1mYWNlIHsK
KyAgICBmb250LWZhbWlseTogIldlYkZvbnQiOworICAgIHNyYzogdXJsKCJyZXNvdXJjZXMvQWhl
bS1DT0xSLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxjYW52YXMgaWQ9ImNhbnZhcyIgd2lkdGg9IjcwMCIgaGVpZ2h0PSI1MDAiIHN0eWxl
PSJ3aWR0aDogNzAwcHg7IGhlaWdodDsgNTAwcHg7Ij48L2NhbnZhcz4KKzxzY3JpcHQ+CitpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKK2xl
dCBmb250ID0gIjEwMHB4ICdXZWJGb250JyI7Citkb2N1bWVudC5mb250cy5sb2FkKGZvbnQpLnRo
ZW4oZnVuY3Rpb24oKSB7CisgICAgbGV0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjYW52YXMiKTsKKyAgICBsZXQgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOwor
ICAgIGNvbnRleHQuZm9udCA9IGZvbnQ7CisgICAgY29udGV4dC5zdHJva2VTdHlsZSA9ICJncmVl
biI7CisgICAgY29udGV4dC5zdHJva2VUZXh0KCJCQUIiLCAxMDAsIDEwMCk7CisgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30pOwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3RleHQvY2FudmFzLXN0cm9rZS1jb2xvci1zaGFkb3ctQ09MUi1leHBlY3RlZC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZhcy1zdHJva2UtY29sb3Itc2hhZG93LUNPTFItZXhwZWN0
ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kNTNhMjhhMzlkMmNlZWQ3ODU0MDQ0OGE0MTQyNjVlODhiNDQw
N2QzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZhcy1zdHJv
a2UtY29sb3Itc2hhZG93LUNPTFItZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE5IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImNhbnZhcyIgd2lkdGg9IjcwMCIgaGVpZ2h0PSI1MDAi
IHN0eWxlPSJ3aWR0aDogNzAwcHg7IGhlaWdodDsgNTAwcHg7Ij48L2NhbnZhcz4KKzxzY3JpcHQ+
CitsZXQgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOworbGV0IGNv
bnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKK2NvbnRleHQubGluZVdpZHRoID0gMjsK
K2NvbnRleHQuc3Ryb2tlU3R5bGUgPSAiZ3JlZW4iOworY29udGV4dC5zdHJva2VSZWN0KDIwMCwg
MTI1LCAxMDAsIDEwMCk7Citjb250ZXh0LnN0cm9rZVJlY3QoMzAwLCAxMjUsIDEwMCwgMTAwKTsK
K2NvbnRleHQuc3Ryb2tlUmVjdCgzMjAsIDEyNSwgMjAsIDEwMCk7Citjb250ZXh0LnN0cm9rZVJl
Y3QoNDAwLCAxMjUsIDEwMCwgMTAwKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZhcy1zdHJva2UtY29sb3Itc2hhZG93
LUNPTFIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jYW52YXMtc3Ryb2tlLWNvbG9yLXNo
YWRvdy1DT0xSLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGY0ODQ3ODNkYzUyM2VmZGE1NTJjMzA2NTNlZTU3
OTBmMzM3ZmZiOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jYW52
YXMtc3Ryb2tlLWNvbG9yLXNoYWRvdy1DT0xSLmh0bWwKQEAgLTAsMCArMSwzMyBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHN0eWxl
PgorQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6ICJXZWJGb250IjsKKyAgICBzcmM6IHVy
bCgicmVzb3VyY2VzL0FoZW0tQ09MUi50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7Cit9Cis8L3N0
eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSI3MDAiIGhl
aWdodD0iNTAwIiBzdHlsZT0id2lkdGg6IDcwMHB4OyBoZWlnaHQ7IDUwMHB4OyI+PC9jYW52YXM+
Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOworCitsZXQgZm9udCA9ICIxMDBweCAnV2ViRm9udCciOworZG9jdW1lbnQuZm9u
dHMubG9hZChmb250KS50aGVuKGZ1bmN0aW9uKCkgeworICAgIGxldCBjYW52YXMgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7CisgICAgbGV0IGNvbnRleHQgPSBjYW52YXMuZ2V0
Q29udGV4dCgiMmQiKTsKKyAgICBjb250ZXh0LmZvbnQgPSBmb250OworICAgIGNvbnRleHQuc3Ry
b2tlU3R5bGUgPSAid2hpdGUiOworICAgIGNvbnRleHQuc2hhZG93Q29sb3IgPSAiZ3JlZW4iOwor
ICAgIGNvbnRleHQuc2hhZG93T2Zmc2V0WCA9IDEwMDsKKyAgICBjb250ZXh0LnNoYWRvd09mZnNl
dFkgPSAxMDU7CisgICAgY29udGV4dC5zdHJva2VUZXh0KCJCQUIiLCAxMDAsIDEwMCk7CisgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
K30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3RleHQvY2FudmFzLXN0cm9rZS1jb2xvci1zaGFkb3ctY3RtLUNPTFItZXhwZWN0ZWQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jYW52YXMtc3Ryb2tlLWNvbG9yLXNoYWRvdy1j
dG0tQ09MUi1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwZGFjMjdlNDc1ZDc5NzRlMmNkMDNk
NzcyNmIxZTE3OTQ5ODU0YzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Rl
eHQvY2FudmFzLXN0cm9rZS1jb2xvci1zaGFkb3ctY3RtLUNPTFItZXhwZWN0ZWQuaHRtbApAQCAt
MCwwICsxLDE5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImNhbnZhcyIgd2lkdGg9
IjcwMCIgaGVpZ2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDogNzAwcHg7IGhlaWdodDsgNTAwcHg7Ij48
L2NhbnZhcz4KKzxzY3JpcHQ+CitsZXQgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNhbnZhcyIpOworbGV0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKK2NvbnRl
eHQubGluZVdpZHRoID0gMjsKK2NvbnRleHQuc3Ryb2tlU3R5bGUgPSAiZ3JlZW4iOworY29udGV4
dC5zdHJva2VSZWN0KDMwMCwgMjI1LCAxMDAsIDEwMCk7Citjb250ZXh0LnN0cm9rZVJlY3QoNDAw
LCAyMjUsIDEwMCwgMTAwKTsKK2NvbnRleHQuc3Ryb2tlUmVjdCg0MjAsIDIyNSwgMjAsIDEwMCk7
Citjb250ZXh0LnN0cm9rZVJlY3QoNTAwLCAyMjUsIDEwMCwgMTAwKTsKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZhcy1z
dHJva2UtY29sb3Itc2hhZG93LWN0bS1DT0xSLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQv
Y2FudmFzLXN0cm9rZS1jb2xvci1zaGFkb3ctY3RtLUNPTFIuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNmRh
OTQ3NmNkMzlhZTA0M2RhMWIyMTViMWI4YmZmNTFhMTk1NDY3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZhcy1zdHJva2UtY29sb3Itc2hhZG93LWN0bS1DT0xS
Lmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHN0eWxlPgorQGZvbnQtZmFjZSB7CisgICAgZm9udC1m
YW1pbHk6ICJXZWJGb250IjsKKyAgICBzcmM6IHVybCgicmVzb3VyY2VzL0FoZW0tQ09MUi50dGYi
KSBmb3JtYXQoInRydWV0eXBlIik7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8Y2Fu
dmFzIGlkPSJjYW52YXMiIHdpZHRoPSI3MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6IDcw
MHB4OyBoZWlnaHQ7IDUwMHB4OyI+PC9jYW52YXM+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCitsZXQgZm9udCA9ICI1
MHB4ICdXZWJGb250JyI7Citkb2N1bWVudC5mb250cy5sb2FkKGZvbnQpLnRoZW4oZnVuY3Rpb24o
KSB7CisgICAgbGV0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsK
KyAgICBsZXQgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOworICAgIGNvbnRleHQu
c2NhbGUoMiwgMik7CisgICAgY29udGV4dC5mb250ID0gZm9udDsKKyAgICBjb250ZXh0LnN0cm9r
ZVN0eWxlID0gIndoaXRlIjsKKyAgICBjb250ZXh0LnNoYWRvd0NvbG9yID0gImdyZWVuIjsKKyAg
ICBjb250ZXh0LnNoYWRvd09mZnNldFggPSAxMDA7CisgICAgY29udGV4dC5zaGFkb3dPZmZzZXRZ
ID0gMTA1OworICAgIGNvbnRleHQuc3Ryb2tlVGV4dCgiQkFCIiwgMTAwLCAxMDApOworICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9
KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC90ZXh0L2NhbnZhcy1zdHJva2UtZ3JhZGllbnQtQ09MUi1leHBlY3RlZC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZhcy1zdHJva2UtZ3JhZGllbnQtQ09MUi1leHBlY3RlZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjY1NjM5MmNlMTg2ZDRjMmJkZmQ3YzU1MjhkYWYzNDIyZDI1NDE2NTUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFzLXN0cm9rZS1n
cmFkaWVudC1DT0xSLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPC9oZWFkPgorPGJv
ZHk+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSI3MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0i
d2lkdGg6IDcwMHB4OyBoZWlnaHQ7IDUwMHB4OyI+PC9jYW52YXM+Cis8c2NyaXB0PgorbGV0IGNh
bnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKK2xldCBjb250ZXh0ID0g
Y2FudmFzLmdldENvbnRleHQoIjJkIik7Citjb250ZXh0LmxpbmVXaWR0aCA9IDI7CitsZXQgZ3Jh
ZGllbnQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KDEwMCwgMjAwLCA0MDAsIDIwMCk7
CitncmFkaWVudC5hZGRDb2xvclN0b3AoMCwgInJnYigyNTUsIDAsIDEyOCkiKTsKK2dyYWRpZW50
LmFkZENvbG9yU3RvcCgxLCAicmdiKDI1NSwgMTUzLCA1MSkiKTsKK2NvbnRleHQuc3Ryb2tlU3R5
bGUgPSBncmFkaWVudDsKK2NvbnRleHQuc3Ryb2tlUmVjdCgxMDAsIDIwLCAxMDAsIDEwMCk7Citj
b250ZXh0LnN0cm9rZVJlY3QoMjAwLCAyMCwgMTAwLCAxMDApOworY29udGV4dC5zdHJva2VSZWN0
KDIyMCwgMjAsIDIwLCAxMDApOworY29udGV4dC5zdHJva2VSZWN0KDMwMCwgMjAsIDEwMCwgMTAw
KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC90ZXh0L2NhbnZhcy1zdHJva2UtZ3JhZGllbnQtQ09MUi5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC90ZXh0L2NhbnZhcy1zdHJva2UtZ3JhZGllbnQtQ09MUi5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1
M2JhYWJmZjMxYTA3MzkwODZiNzNjNGY0ZjBiZWM3N2Y0YTA4ZGMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFzLXN0cm9rZS1ncmFkaWVudC1DT0xSLmh0bWwK
QEAgLTAsMCArMSwzMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHN0eWxlPgorQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6
ICJXZWJGb250IjsKKyAgICBzcmM6IHVybCgicmVzb3VyY2VzL0FoZW0tQ09MUi50dGYiKSBmb3Jt
YXQoInRydWV0eXBlIik7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlk
PSJjYW52YXMiIHdpZHRoPSI3MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6IDcwMHB4OyBo
ZWlnaHQ7IDUwMHB4OyI+PC9jYW52YXM+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCitsZXQgZm9udCA9ICIxMDBweCAn
V2ViRm9udCciOworZG9jdW1lbnQuZm9udHMubG9hZChmb250KS50aGVuKGZ1bmN0aW9uKCkgewor
ICAgIGxldCBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7CisgICAg
bGV0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICBjb250ZXh0LmZvbnQg
PSBmb250OworICAgIGxldCBncmFkaWVudCA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQo
MTAwLCAyMDAsIDQwMCwgMjAwKTsKKyAgICBncmFkaWVudC5hZGRDb2xvclN0b3AoMCwgInJnYigy
NTUsIDAsIDEyOCkiKTsKKyAgICBncmFkaWVudC5hZGRDb2xvclN0b3AoMSwgInJnYigyNTUsIDE1
MywgNTEpIik7CisgICAgY29udGV4dC5zdHJva2VTdHlsZSA9IGdyYWRpZW50OworICAgIGNvbnRl
eHQuc3Ryb2tlVGV4dCgiQkFCIiwgMTAwLCAxMDApOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9KTsKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3Jlc291cmNl
cy9BaGVtLUNPTFIudHRmIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3Jlc291cmNlcy9BaGVtLUNP
TFIudHRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmMyMjNhNTU0MzA2NTk5OTY4NTExODBlOThiMTU0NTRmN2M0YjJk
ODYKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDIxODI4CnpjbWVIUDMzd0Qkd213eldkdl9wIzVQ
P0NoZ2RIWDZZQEdua1VgUGxzNDxveXYmKFRpT1Mpa00xclZ8bm85Q1hCZQp6MFM2dVRRRHopbTl9
YkVTNmBmSDVmcEl8ezVMclQwI3o2LWUyRWxQNSljYTJAPX1KZiNwM25FYmtNfnZqdEV6a00KemE8
K1QheXtBc3lUb1E7Vmk1OFBZUTtJS35KV1V1d2xhUjk7Kk1RPEZNVXc/bVFqcT17U0s1V3N2dlQ1
OVU7bXMpCnpOQ3RkKU1PYHA5Pmg3NWIwbXEyIXpVcDgrTXJWK2wkZ3ZSUiQ8XlUyc35rZ3BNU3lR
NT5WSkRwQ3xKMmAlM0V1UQp6KGcmYkNQPWdHbyQ1c0clMkgtKDhicSZxXjlBWG1TVytMMHthSV8t
MGNFIyNtTTEhe3lpSjVpNT05dGlyQGVmMEYKemt8VipvKEF3Yn1gdkkxVGhPZFo0O3wmIyRUciFZ
bz5VdHN4ZD1nOTcxNkx9RWduWmx3QSt3S35GWEFxMDxxOWVJCnpCTCRFb1o1TmkzOWFZemZIdl8m
eWRrUHlVTjAxblM0Vm5ENm19cGZwJHJEdW93fktPJVdqZGVhPEJCOUpnK0xfSgp6Q01FZnBsWW0+
MjBUSj1WQ3tUemk2P2YoQG0yNVdYUn5RWXpOdXl+OVR9PTx1QmxIe2tFaj4hVnFtfWQrSngpKjEK
emxrXmxsUDUoaXc9byRKd0p4a0JnOGhXMW9saClEO15kaH1QPiohXkFoNWtUKXEqdilSZFl2fVZN
dFh4YihQcjkwCnpmMSk/KDlva0NvKHRHcjArRDY7eTFLTDMhKGt9RyQ5JWBZeilKaC1HJE1neTlx
cmNGbl5qRiRYcFY4bXcwRFZEIQp6ciRoNylJIXNeRTVqc2o9KExaNGctX1c7b2pOMGZwRE1HZHxV
MSUyVzZnUEAqaD9+V287eDJLd3hKT3pwSnUwbn4KejkrJWNoZjBQfXZTNUFfWDx5NSghKytSTFIm
WDktNWV0RVE5bEFlKTFCdHkoX1djMThQJD5eMlFGUWIzUFNzQ1lLCnpPdzcxRUJiMEc/QERATSRv
bj0lZW1BVDY8RXhXYUJgUDZ3Kz4hdWdZYGU0P3NpX1dlZEhnYGxnRkU7UCRIT3Q7VAp6QnAmRGZW
K3t7ZWIrX1dBeD9CQShiK144Zz8ldlhNX3I2SllKNVE+KyZzRShXPl8mSXJ3ZC0hME5xME5DKDQ4
b3wKeldnbTNjVGtaP3A0VWxEM2NjVl9LeVVQRVQ/dWQxI2U0PjE7ZTRgdnVUOXIyQ0dkZUByMTkt
M1VzZDdPMTlNRmc0CnpQfktIYFF5Km9VdlF2M1NgNVA9Wk4lPXQ4Z1ZFKGZpZ1dpVkExT1BPMmJC
JVYxODh8YWEoM2FsT0Y1YDRTOVU4Twp6RHNMIURrJHcoIXdrZnhPLWFjaWVhKzdqe2EtKThLTj07
d2lldCQ+ZF5iLUM0NyUoblRleFkyYXRPdGNobHh2aVEKeiU0fXQ5K1pTeXwrWVlwfnc2KFZGWHhy
MkZsZVRFdnl0V2E/LWZ2NTdKPEB1KF5+PTNWPnVhcWBUMz5FbSpaTlpICnorU1hPQURfYkFoYHw5
NE9UUnZgaXZ0QGhCd3dCY2BIP19SZ3ZaZHZmbVBjRHxabjxJNGNlQDV7Sl5ycmtTPmFqUgp6PlRn
Iyt3Ui07UUReQCtZPmZXYX1LYXV+JEBXJjZ8YGA1Y2FUZlRHWWlmYj5BaiFwaSVAUmQ0KFZSK1d4
X3RKbncKekYzZzk/QncrTVBORy16REkxaDhCZ3FlX1hRX0BvZ3I+Q1NaNSlaY0JBc2pqR2xqTEtx
aV5MKFViRVF6KXVodF99CnpOfCpLQD54O3NeUio5dHAlTVBydVY5ZntDb01eMkpibFI8ckBGRFBL
bCUzdjNVQ31xRz97QyZoZjRYYCo9KiR5Kwp6dnt1VlV2d1NxbU4zKG8xJVNXPyhHfE5YantkX2Js
PmU3VypWP35+PD0kalJSdzQkKDlCLSlDYHBMUzd+KHtEdT0Kem1QLTRAKiZIaU0oUEtzOFklTjtV
Wk9KQzM1TX0mamlGKVV6NEJXSjdsbGxeaFhoZTQ8WVY/Vk8jcWA5c0dxenZXCnpeU3E8dm1pRl5r
dTRraXsmRWU8ekp4XmpjZmdZYnlCVWhZQEtZWDlrX1ctRSUoRiFAe0tPcWZ5X30wWXs2Nj47Ygp6
VkE7VWAyT0hxPUVGOTdMUW4mIVh4NDJmfiFxaH5TeGJWa3Y4aDx+cSUkdENaRFcmU2FianFZTEc/
OFhmSVludDkKei05JmR8UHRofmpDQTA7KmZBKFFkJnZDJmteYzRtUklsQD9Cdk1AKWU2NV8mUTtX
cHR1VklfWGczOWt4bzMlaTg8CnohY2tFYWR4YF9aO2JLNTY3Tj59cGlnVSMjQGo3dnRfPmxPZHhL
YFhDejk7UyM0flhBTDR5aVp4SSpwVkBPQjE5Uwp6UWMjTFdTNGxUWWNTJFJ4Um9EciVTPXVnckF7
fjwyWTtJZWNaSl5DPmA/Mmsod3VAfCl3a3ZFYCtpdFBsVnwmIUwKeitWJShBbzM7O2FwVzQyKGxS
ZTRhLSMqbHlYRF9tcyopT3J6KmM8S0YrVjhNR1YxTH5IeSMwMGlSe0l8Tj1rfFgoCnpZPnBKaVMm
bmxZZ151eCNYXnpWclZhSnRAPm05I3pKblZTZEB1SzRtJERiVl5JU3g5JGJHbj47b0VncTY9WHVV
YQp6JlJOYjFYVXdfQ2Q5KDlaYDJFKVRkKj5fOEtSSV9lfEtkRkNSOXJxK0tpM2RmdUlxZikxK0kl
LSl2Z0JESExseFQKel9xIWYqdCNRNVBkZEljZl5fbEF7eDh6UUNwWG5hcUVed0UpckBEWFVwNjcw
TUZMQkBMezxacmxfWTNaZz8pVGxUCno/bDBXbWRZcW5BUHI0YDVHc1pLfkd0KlA8aUZ5YCNadH5w
aWBIa2xwJiYhQElvKTB8eEpwYj88X2o8ajN5QFMwdQp6LW0lYHYtWnxiWFpgYH1zZHo8JEA/QEk0
Oy1kRFlFZHZ8JkZkeW8xPVVyKmx2LSo4YGAraDRKN2l0a2UyVHdqeSMKekleUXppTCV0X3tZa2VE
aEBBPnhuNCowJUZhd1BSbWw5TlV6alpUXlhZcilEU3FeWXx3KmVwQShRPUNQRWd5Kz5LCnpabyhs
V2dfXkUqTlRlUEQ/LTFsYWk4NGZvbWMmKiRtcER2TStvYFlVKlY3SzxQdD88JTxRajJgcDd6cTlV
VGdKcQp6NTFRNiVjUk4ye19zLVBRMEArZzQ5VSFQRGt+NExMby1he0tZUE8hWHEwVHJ4WjZ7eDlz
aClOcWYwfn41VjQlIz4KeihfWlM7cDYpQHpRKX40NldZa30jciZCPWRFPE4xfmA0MiErIUdedHYh
bEJmTV4peiZud3AzMztDdSNUU1kzTDtGCnpjWH1FK04hejVTcF84PCZkS3gtTytwbmpnbGU5eTY4
YWYldW8ofEszUEtHWWopNSt1LWBuSH08cCZtb0c+Ki0jfAp6LSR5ZzNoQyhEJGtAfkRkc3RSKkpn
Y15gNE1AZCtQc3dvYiowY3BOI0VuP0omOGV5dVgzZ2xMenRkND8hQkE4OE4Kej48eHxKSntOV0Jr
cnppZipLNUY/djF7MEJQQG1+PVROJH1nNnstaS0zWiQhJVElZWd9P3oqUVhxaD1Gb2hDbjl7Cnom
VDEoSlR2MTQyYTJpKUpSR31ue1JHaUxqRlZTUVR0MT5wQkpPWXxCNiQ0WDk8KmIoR3Q4SSZjdU1S
KGheTlcjTgp6NH5SS3VVYzt6ZXVlYWJqR1NWXnBTVHteQEc7KFNuVExiYiZReDw7UXE4dWZlWHgp
KC1PUC0qVzM4KUBpYVNQVTgKejItc1BrSUM1QXMlKjlCXiZ3NktHdm5VJWx7ZGhMMmJ5KHRSbCFq
R31HUGchUVBnNkA4UlppK0A3OWlIMik7cUZfCnpCX0RWYWM0NCZadUJLNmJHSjllXngjeVY9PTlY
PE1oRyEtNiVJUWtuWENTOWlnLWNQbDIwVXAhJU5tV1NgNF55YAp6KXtvcCVZLXR5dXRRcX55eCg9
JiNHJl5OMDRGZjtoMGMoc2N0cUItd1JoWHNpJSEhUUorIzgwaWF2dzNSMVAxT2cKej0yOUMwam9e
dX5GKCNJeTk/dVlaUGV2fjFXa1pBZkdoMThgKnlwUiNhQm10bDMpfH0lYXZHeklicnNpcG8rWiNR
Cno9ZHs8Pz5NX0B2MjYrdDVMb0xtZzRKO2EwYWs+SV8hTTRoakwocDBmbT5WRD8+KXU+eW1hPHdj
azNuWFppRHc2dgp6bFNoTjUoK1pTbV9ScUw5SjJMb1dpPmlaZUd6dmtxVi1LU2wmbkMyRGk+Xl58
XjRKV2tfP2NyKCNfc3N4NXlEIUQKejttTEFwYGUoVSQleFR0P241aV5lUmdqeDBiZC18MDtRbkpD
bjcyZiYmYj8mbCUrTSFtcTRUYEtHWFFKZDgxWGFkCno5TzhaJjNCUVV7MG80dyliZktPYnB3amwt
MEAjYUl3fThnQz1ON2VORDVrPnArK3ZKbHQhfTlhTHBKM0MyVXtDYwp6JCk8Y3opb083JSpIbHRx
IWooOzxQfHMrVWdIYVhHVFhETGVMJishO1IwMTReWSRhNkVVWGx4WmNfeWRgdjw+WEoKejs1Jmhs
cCM7V1U4VjdvYm4jR1haZkxNPCNvazVTRzFQIWU7ITN+IWRiIXVET3A+MENIK303TW40NEpqVHUo
e3tfCno7RyFkNkVOX0FAbWRWVUBVSSN3Mko3SChvajl1ZDwoVnBTWDxxMztuUFA2ZWRzNTR+ZG8j
Nnk7NDRIWGoqc0tTfQp6SHFPTCo0bWVMKDlHMzw8Tlh+R2NpRlV4JCZzQDgtMTI2Z0wrWFF2aXEy
RlcpZEVtc0REY04+NElBTzZHb1VqIyEKel5HIUMjYUd9WTE3JmNwQks0Y0E7cXxATXAmR1A4VExt
ZmwmYEtWb0Q7IWxHVStRfjsqd3JTKUEwT3kjcjYjeUBjCnooWkUqIz5DRSY7cD4+SWdVYTJhKkY7
ezMlUEtVTG8+c2lre2l5Q3VPUzJKTjheSG0qWUNUKGByKSZeYzNIUSZmKwp6KzVQT3M5ISFSUTRi
JGZ7S01od3NuPTtfJF5eYml5bz1NOXcqWVpsJC1FMkJXI1M+SFVYfUROQjhtPWtyU2E/bjAKel5A
ZT5BUEhEYW08MkAwNyQyQyZKenVBUHA3YEFYU3sya2tPTVp3R2c8N2ImOHU+RXAlRWo2I1dhYTl4
QStPQTIqCnpHeCt6e2w7TFojbXNnOCpQdCE1YCVCTT1kNmt+eGBpTFFBdHswJlhkWDVXUDY5MWtr
SVdeKFZFVyNWfj5YVTNEYAp6PFVTMDs0ITgkVCNMUndEY2JJZCMhRiohaHBOTSR8dGRLcE41Yyle
KyUwP282R0hROTxQJjBKSHk0Sml2X0QkKmAKek9JSCQ9cUVHbTM9VHhjWXBDVlBtWFZaTUV0fCg2
alNJd3RQSCprdHsqPmBLIT9YN0Rxdi1qMH45fnh0Pl5aZHxSCnp0TChXfmJ4VVU9WT0/RTtKKU5S
Y2wheGBsLWxGRjFiKyQpaW9NfUZ4RzB3V1AmdkV+UENYZGdxZFROc0R4JD9VJAp6ZHlESy1ZajRq
ZCgkUUFQQTdiWHtEM0xMOSVtcyhzZjcpQTFWb3Z2Qzx2UkpPP29QSUBIUH02IWxKN31wMCg4ZnQK
emRtYzFncD15elJjJUVyd1QpZjVeQmMpaT9GYU1fPmB4S2gqc21hRTNnbDRAcCY7ITJ7RjJJd21M
Jkwqd0hrYH16CnoybHUxKT9zP0pgWlNEeHVpVzdqWmxZe0dqaWB1RXtVP3liWGsqdmpXJSheaDxw
TSk7Pm94QzJCdnJUPylKelR4VQp6cXo4Vko4MyN8VHZtWEFabHJxdE89NkZnSVI+dm16T0hKdEkz
T3UhX055aj84JUZveTk3JldxQj9iR3FnIVZJTUsKektTeCRMXjF2JHdtdElJeVhieiVUV2kpfDJH
aXBMfFFCOX4kdThLdyk8bm1CQjhtVyVVNE48dVAxK204UmFCWVFMCno4TGJQfU1sJDZ8NXFXTjdl
UW10NXd4WGRuOGJQKDFVO3wzIU5WR3cmNF4+Mn5CZWVAVXdVVlB2a3grZlNyWnklPQp6c35CbEtC
djtqakwtQkp9M1JUZj9JTkRTanNne2ZETCYxakhgNjBQRFQzNSUmRkFtajU8O3FZK0k5UUtAWGhh
VWkKelYmVTNRZTYoRUMmPTREKWxAJChfJDFeTVJXKSloaSV4SGFlN0krUnQ7LVByZjAtelkjNmE/
MCs+YFpARlY+fk15CnpzdCQlTHFMbT8qZDBNRXQ1IWgjZUtnT1MobmVTSjEhRFolNWhJTmB2Ty0t
M2l4Zk0pQyYjNFR9TX4rSWpjPjQ0Iwp6UiUxTFhoISRESjdmeldvc2NlR0JNMmVIYHVAKW5+cSh2
WmpxX1VyOyNnTiNhV25WR3oqM1lCMWA8Tmp8SHpyfEIKelRrJU9OSzU0Y21EP1p1VFhFRVk8Uigj
VG1QZz9Pd0Q/VncoQyQtcVI3TFQ7emxaa0koUih3KjZFXzQrPT49PDlQCno7KiVYP2lCXjJsaWNn
eTNQZ1o9Z3ZscUBZTSVVNGA2WFMraldac0hUbyoxJDJUN3k9NlFkYDQrKmw0SH5wWD9aVwp6ezZD
Nk1CSTJ3P0V+ZzxmUjt9KU47Y3ZTfXU2Q2p6d25IamNWZHJsYmU/bDV8RFQrOX5Qe05LKEoyYE4r
bUo2cFMKemRpbXJ3Pj8hUHReUzRyezd4aE4jSzlxKE45USNyfj5RNnRTMGR5dnZNUTNCNE49Tml9
QWtJITRqTUU4K0JKd18qCnpNai1abkYxfTc+QkEmYFNHamh9fjxOUVVQY2NGfkpIez55Tjl7cmVw
TFN5TkNAWEJ2bENGKGNKM0R9YzdpR0U3fAp6TXc3QTJ0NHhpPlBOaXZ4KlVtc2hlLT5SdHZre3hV
bUBjN3pyJVVOKWJReFdhKmxqcj8hMGQ1Vks/NUErcE5sVUEKelZNS0hKeUcwQjtwbV50MzE5VVNW
KGMpKDhkfEUoUFZiQWotb1RkMTQ5TXlPWXtlckhlQzNIUkFoPChzRSg9QnV4CnotQStxczhUfUh3
cUpLcFgobkk+V2ZxZCNCcFNFYjZ3V3l1Ml8jJD5xenV3X0Eja2M1ZntZMXQwSkRqTXZ2KHVUMQp6
ZTIoSmhgYm1saEpEO1R9KmFXK0puJlY0Mj1rWVE2SFFpNkVha0Fyal4/YnEmYlM9KHR5YURHdlpk
QXs4VHR+T2sKekojLSk0aSZHKSpxekM4QFQyNk9pZkI2ZUkoLUNKcjNKd3dscntFSVlmKFFHJGVM
fEFaTCtCfGEzbkBZYHB8X0FLCnpeYnlqOEdxQiZncFVffFVrdVgzd1EjZWFGVGFibHhBd3c3XzQ4
bEl9QTtNNSRuNX1IKTxqRjNhLTVJT04kOztJZgp6e3laYSpGSFcyeG01aVY0WT5kPkZqeFIwY1hP
Nz5XcWQjLT9YUCpBZCpQajlYSVpBJlA+Q2JXZSU9UD5JP3FGNEkKelo2R0BrJGE4V2sqUHFRTGRF
QDxsP085bD8henphU0sjQUhpWn5RMmdRaHMpekxAIXI0MElaa2l0TkhvNGNgODBvCnpEJlRyKHVS
YVU+VEQ/R1Z1OEpwNmtXPEx6cXEwbFhgdVBSZnMpWVhCQkRIPj9DYGFXU3Vxcyk+XztMQzRVKlJo
ZQpBQCZFdDsKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvY2FudmFzL2NhbnZhcy1jdG0tc2JpeC1leHBlY3RlZC5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9jYW52YXMvY2FudmFzLWN0bS1zYml4LWV4cGVjdGVkLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNGVlNTIxNDY1ZmQyOTIyYTA2ZmM3OTMzMzNhYmFjOTczNmYyMGViZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL2NhbnZhcy1jdG0tc2Jp
eC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzdHlsZT4KK0Bmb250LWZhY2Ugewor
ICAgIGZvbnQtZmFtaWx5OiAiV2ViRm9udCI7CisgICAgc3JjOiB1cmwoInJlc291cmNlcy9BaGVt
LXNiaXgudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxi
b2R5PgorPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyI+PGRpdiBzdHlsZT0iZm9udDog
MTAwcHggJ1dlYkZvbnQnOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTIwcHg7IGxlZnQ6IDIw
MHB4OyI+QSYjeDdFQjU7QjwvZGl2PjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYW52YXMvY2FudmFzLWN0bS1zYml4Lmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9jYW52YXMtY3RtLXNiaXguaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44NDlkNTk1MDAzZDZjOGYyMzY2NGJmMzQzNDAzYjJkNWNhNWQxOTEyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYW52YXMvY2FudmFzLWN0bS1zYml4Lmh0
bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHN0eWxlPgorQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1p
bHk6ICJXZWJGb250IjsKKyAgICBzcmM6IHVybCgicmVzb3VyY2VzL0FoZW0tc2JpeC50dGYiKSBm
b3JtYXQoInRydWV0eXBlIik7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFz
IGlkPSJjYW52YXMiIHdpZHRoPSI3MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6IDcwMHB4
OyBoZWlnaHQ7IDUwMHB4OyI+PC9jYW52YXM+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCitsZXQgZm9udCA9ICI1MHB4
ICdXZWJGb250JyI7Citkb2N1bWVudC5mb250cy5sb2FkKGZvbnQpLnRoZW4oZnVuY3Rpb24oKSB7
CisgICAgbGV0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKKyAg
ICBsZXQgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOworICAgIGNvbnRleHQuc2Nh
bGUoMiwgMik7CisgICAgY29udGV4dC5mb250ID0gZm9udDsKKyAgICBjb250ZXh0LmZpbGxUZXh0
KCJBXHU3RUI1QiIsIDEwMCwgMTAwKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL2NhbnZhcy1m
aWxsLWNvbG9yLXNiaXgtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2Fu
dmFzL2NhbnZhcy1maWxsLWNvbG9yLXNiaXgtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mOWYw
MzQzZTNjN2Q4MTNmMjQ1MDU3NjQwMzg2NWViODNkNmZmYjYyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYW52YXMvY2FudmFzLWZpbGwtY29sb3Itc2JpeC1leHBl
Y3RlZC5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzdHlsZT4KK0Bmb250LWZhY2UgeworICAgIGZv
bnQtZmFtaWx5OiAiV2ViRm9udCI7CisgICAgc3JjOiB1cmwoInJlc291cmNlcy9BaGVtLXNiaXgu
dHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5Pgor
PGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyI+PGRpdiBzdHlsZT0iZm9udDogMTAwcHgg
J1dlYkZvbnQnOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMjBweDsgbGVmdDogMTAwcHg7IGNv
bG9yOiBncmVlbjsiPkEmI3g3RUI1O0I8L2Rpdj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL2NhbnZhcy1maWxsLWNvbG9y
LXNiaXguaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL2NhbnZhcy1maWxsLWNv
bG9yLXNiaXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYzVmNzgwZWRhYjFlNzdlYzc0Y2QzYWNiNjczY2Rh
MDBhY2RlOTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYW52
YXMvY2FudmFzLWZpbGwtY29sb3Itc2JpeC5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzdHlsZT4K
K0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiAiV2ViRm9udCI7CisgICAgc3JjOiB1cmwo
InJlc291cmNlcy9BaGVtLXNiaXgudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOworfQorPC9zdHls
ZT4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iNzAwIiBoZWln
aHQ9IjUwMCIgc3R5bGU9IndpZHRoOiA3MDBweDsgaGVpZ2h0OyA1MDBweDsiPjwvY2FudmFzPgor
PHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKKworbGV0IGZvbnQgPSAiMTAwcHggJ1dlYkZvbnQnIjsKK2RvY3VtZW50LmZvbnRz
LmxvYWQoZm9udCkudGhlbihmdW5jdGlvbigpIHsKKyAgICBsZXQgY2FudmFzID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOworICAgIGxldCBjb250ZXh0ID0gY2FudmFzLmdldENv
bnRleHQoIjJkIik7CisgICAgY29udGV4dC5mb250ID0gZm9udDsKKyAgICBjb250ZXh0LmZpbGxT
dHlsZSA9ICJncmVlbiI7CisgICAgY29udGV4dC5maWxsVGV4dCgiQVx1N0VCNUIiLCAxMDAsIDEw
MCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9jYW52YXMtZmlsbC1jb2xvci1zaGFkb3ctY3Rt
LXNiaXgtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL2NhbnZh
cy1maWxsLWNvbG9yLXNoYWRvdy1jdG0tc2JpeC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQw
Zjk2NjhkOGFiNzU0NzVmODAyM2JkZTI3MDJiYTE1YTE1Zjg3NDYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9jYW52YXMtZmlsbC1jb2xvci1zaGFkb3ct
Y3RtLXNiaXgtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDMzIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c3R5bGU+CitAZm9udC1m
YWNlIHsKKyAgICBmb250LWZhbWlseTogIldlYkZvbnQiOworICAgIHNyYzogdXJsKCJyZXNvdXJj
ZXMvQWhlbS1zYml4LnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsKK30KKzwvc3R5bGU+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImNhbnZhcyIgd2lkdGg9IjcwMCIgaGVpZ2h0PSI1MDAi
IHN0eWxlPSJ3aWR0aDogNzAwcHg7IGhlaWdodDsgNTAwcHg7Ij48L2NhbnZhcz4KKzxzY3JpcHQ+
CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
CisKK2xldCBmb250ID0gIjEwMHB4ICdXZWJGb250JyI7Citkb2N1bWVudC5mb250cy5sb2FkKGZv
bnQpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgbGV0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjYW52YXMiKTsKKyAgICBsZXQgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCIy
ZCIpOworICAgIGNvbnRleHQuZm9udCA9IGZvbnQ7CisgICAgY29udGV4dC5maWxsVGV4dCgiQSBC
IiwgMjAwLCAyMDApOworICAgIGNvbnRleHQuZmlsbFN0eWxlID0gImdyZWVuIjsKKyAgICBjb250
ZXh0LmZpbGxSZWN0KDMwMCwgMjIwLCAxNTIgLyAyLCAxNjAgLyAyKTsKKyAgICBjb250ZXh0LmZp
bGxSZWN0KDQyMCwgMjIwLCAyMCwgMTAwKTsKKyAgICBjb250ZXh0LmZpbGxSZWN0KDUwMCwgMjI0
LCAxNjAgLyAyLCAxNTIgLyAyKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL2NhbnZhcy1maWxs
LWNvbG9yLXNoYWRvdy1jdG0tc2JpeC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYW52
YXMvY2FudmFzLWZpbGwtY29sb3Itc2hhZG93LWN0bS1zYml4Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDNj
YWJjNjA3MDkyYTk3N2I2ZjE0MDgyOGIxZDQ0YzYyZTgwMWQ4NgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL2NhbnZhcy1maWxsLWNvbG9yLXNoYWRvdy1j
dG0tc2JpeC5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzdHlsZT4KK0Bmb250LWZhY2UgeworICAg
IGZvbnQtZmFtaWx5OiAiV2ViRm9udCI7CisgICAgc3JjOiB1cmwoInJlc291cmNlcy9BaGVtLXNi
aXgudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5
PgorPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iNzAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9Indp
ZHRoOiA3MDBweDsgaGVpZ2h0OyA1MDBweDsiPjwvY2FudmFzPgorPHNjcmlwdD4KK2lmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworbGV0IGZv
bnQgPSAiNTBweCAnV2ViRm9udCciOworZG9jdW1lbnQuZm9udHMubG9hZChmb250KS50aGVuKGZ1
bmN0aW9uKCkgeworICAgIGxldCBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2Fu
dmFzIik7CisgICAgbGV0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICBj
b250ZXh0LnNjYWxlKDIsIDIpOworICAgIGNvbnRleHQuZm9udCA9IGZvbnQ7CisgICAgY29udGV4
dC5maWxsU3R5bGUgPSAid2hpdGUiOworICAgIGNvbnRleHQuc2hhZG93Q29sb3IgPSAiZ3JlZW4i
OworICAgIGNvbnRleHQuc2hhZG93T2Zmc2V0WCA9IDEwMDsKKyAgICBjb250ZXh0LnNoYWRvd09m
ZnNldFkgPSAxMDA7CisgICAgY29udGV4dC5maWxsVGV4dCgiQVx1N0VCNUIiLCAxMDAsIDEwMCk7
CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9jYW52YXMtZmlsbC1jb2xvci1zaGFkb3ctc2JpeC1l
eHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYW52YXMvY2FudmFzLWZpbGwt
Y29sb3Itc2hhZG93LXNiaXgtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yM2VlYzM4NzgyNDAz
ZWQ0ZmI5YjQ3OGYwZTJiYThkMDNmNTU5Mjk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9jYW52YXMvY2FudmFzLWZpbGwtY29sb3Itc2hhZG93LXNiaXgtZXhwZWN0
ZWQuaHRtbApAQCAtMCwwICsxLDMzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAgICBmb250
LWZhbWlseTogIldlYkZvbnQiOworICAgIHNyYzogdXJsKCJyZXNvdXJjZXMvQWhlbS1zYml4LnR0
ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxj
YW52YXMgaWQ9ImNhbnZhcyIgd2lkdGg9IjcwMCIgaGVpZ2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDog
NzAwcHg7IGhlaWdodDsgNTAwcHg7Ij48L2NhbnZhcz4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKK2xldCBmb250ID0g
IjEwMHB4ICdXZWJGb250JyI7Citkb2N1bWVudC5mb250cy5sb2FkKGZvbnQpLnRoZW4oZnVuY3Rp
b24oKSB7CisgICAgbGV0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMi
KTsKKyAgICBsZXQgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOworICAgIGNvbnRl
eHQuZm9udCA9IGZvbnQ7CisgICAgY29udGV4dC5maWxsVGV4dCgiQSBCIiwgMTAwLCAxMDApOwor
ICAgIGNvbnRleHQuZmlsbFN0eWxlID0gImdyZWVuIjsKKyAgICBjb250ZXh0LmZpbGxSZWN0KDIw
MCwgMTIwLCAxNTIgLyAyLCAxNjAgLyAyKTsKKyAgICBjb250ZXh0LmZpbGxSZWN0KDMyMCwgMTIw
LCAyMCwgMTAwKTsKKyAgICBjb250ZXh0LmZpbGxSZWN0KDQwMCwgMTI0LCAxNjAgLyAyLCAxNTIg
LyAyKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL2NhbnZhcy1maWxsLWNvbG9yLXNoYWRvdy1z
Yml4Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9jYW52YXMtZmlsbC1jb2xv
ci1zaGFkb3ctc2JpeC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxZDI5N2RiNzIzMzViZDlhZjc3OTVlMTE5
NDZmOWQ0MDhiZDE1YTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2NhbnZhcy9jYW52YXMtZmlsbC1jb2xvci1zaGFkb3ctc2JpeC5odG1sCkBAIC0wLDAgKzEsMzMg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKzxzdHlsZT4KK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiAiV2ViRm9udCI7Cisg
ICAgc3JjOiB1cmwoInJlc291cmNlcy9BaGVtLXNiaXgudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIp
OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0
aD0iNzAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiA3MDBweDsgaGVpZ2h0OyA1MDBweDsi
PjwvY2FudmFzPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKKworbGV0IGZvbnQgPSAiMTAwcHggJ1dlYkZvbnQnIjsKK2Rv
Y3VtZW50LmZvbnRzLmxvYWQoZm9udCkudGhlbihmdW5jdGlvbigpIHsKKyAgICBsZXQgY2FudmFz
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOworICAgIGxldCBjb250ZXh0ID0g
Y2FudmFzLmdldENvbnRleHQoIjJkIik7CisgICAgY29udGV4dC5mb250ID0gZm9udDsKKyAgICBj
b250ZXh0LmZpbGxTdHlsZSA9ICJ3aGl0ZSI7CisgICAgY29udGV4dC5zaGFkb3dDb2xvciA9ICJn
cmVlbiI7CisgICAgY29udGV4dC5zaGFkb3dPZmZzZXRYID0gMTAwOworICAgIGNvbnRleHQuc2hh
ZG93T2Zmc2V0WSA9IDEwMDsKKyAgICBjb250ZXh0LmZpbGxUZXh0KCJBXHU3RUI1QiIsIDEwMCwg
MTAwKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL2NhbnZhcy1maWxsLWdyYWRpZW50LXNiaXgt
ZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL2NhbnZhcy1maWxs
LWdyYWRpZW50LXNiaXgtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOGQ2ZTYxODYxZTYxNGZk
ZjQ2MzllOThkOWQ5Mjc1YTQzZGFjNmI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9jYW52YXMvY2FudmFzLWZpbGwtZ3JhZGllbnQtc2JpeC1leHBlY3RlZC5odG1s
CkBAIC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KKzxzdHlsZT4KK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5
OiAiV2ViRm9udCI7CisgICAgc3JjOiB1cmwoInJlc291cmNlcy9BaGVtLXNiaXgudHRmIikgZm9y
bWF0KCJ0cnVldHlwZSIpOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBp
ZD0iY2FudmFzIiB3aWR0aD0iNzAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiA3MDBweDsg
aGVpZ2h0OyA1MDBweDsiPjwvY2FudmFzPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworbGV0IGZvbnQgPSAiMTAwcHgg
J1dlYkZvbnQnIjsKK2RvY3VtZW50LmZvbnRzLmxvYWQoZm9udCkudGhlbihmdW5jdGlvbigpIHsK
KyAgICBsZXQgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOworICAg
IGxldCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7CisgICAgY29udGV4dC5mb250
ID0gZm9udDsKKyAgICBsZXQgZ3JhZGllbnQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50
KDEwMCwgMjAwLCA0MDAsIDIwMCk7CisgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKDAsICJyZ2Io
MjU1LCAwLCAxMjgpIik7CisgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKDEsICJyZ2IoMjU1LCAx
NTMsIDUxKSIpOworICAgIGNvbnRleHQuZmlsbFN0eWxlID0gZ3JhZGllbnQ7CisgICAgY29udGV4
dC5maWxsUmVjdCgxMDAsIDIwLCAxNTIgLyAyLCAxNjAgLyAyKTsKKyAgICBjb250ZXh0LmZpbGxS
ZWN0KDIyMCwgMjAsIDIwLCAxMDApOworICAgIGNvbnRleHQuZmlsbFJlY3QoMzAwLCAyNCwgMTYw
IC8gMiwgMTUyIC8gMik7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9jYW52YXMtZmlsbC1ncmFk
aWVudC1zYml4Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9jYW52YXMtZmls
bC1ncmFkaWVudC1zYml4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWIxZWYxMzk2ZDUxZDUxZmFlNDQ2NmJm
ODY1OGIxZGJiZDI4NzUwOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvY2FudmFzL2NhbnZhcy1maWxsLWdyYWRpZW50LXNiaXguaHRtbApAQCAtMCwwICsxLDMzIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Cis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogIldlYkZvbnQiOworICAg
IHNyYzogdXJsKCJyZXNvdXJjZXMvQWhlbS1zYml4LnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsK
K30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImNhbnZhcyIgd2lkdGg9
IjcwMCIgaGVpZ2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDogNzAwcHg7IGhlaWdodDsgNTAwcHg7Ij48
L2NhbnZhcz4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisKK2xldCBmb250ID0gIjEwMHB4ICdXZWJGb250JyI7Citkb2N1
bWVudC5mb250cy5sb2FkKGZvbnQpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgbGV0IGNhbnZhcyA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKKyAgICBsZXQgY29udGV4dCA9IGNh
bnZhcy5nZXRDb250ZXh0KCIyZCIpOworICAgIGNvbnRleHQuZm9udCA9IGZvbnQ7CisgICAgbGV0
IGdyYWRpZW50ID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudCgxMDAsIDIwMCwgNDAwLCAy
MDApOworICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcCgwLCAicmdiKDI1NSwgMCwgMTI4KSIpOwor
ICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcCgxLCAicmdiKDI1NSwgMTUzLCA1MSkiKTsKKyAgICBj
b250ZXh0LmZpbGxTdHlsZSA9IGdyYWRpZW50OworICAgIGNvbnRleHQuZmlsbFRleHQoIkFcdTdF
QjVCIiwgMTAwLCAxMDApOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYW52YXMvY2FudmFzLWxpbmVkYXNo
LXNiaXgtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL2NhbnZh
cy1saW5lZGFzaC1zYml4LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjE5MzkxOGY3YWRiZWYz
MzcyMjc4NjczMzZiMTFiYTRlODgzOTNmZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvY2FudmFzL2NhbnZhcy1saW5lZGFzaC1zYml4LWV4cGVjdGVkLmh0bWwKQEAg
LTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hh
cnNldD0idXRmLTgiPgorPHN0eWxlPgorQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6ICJX
ZWJGb250IjsKKyAgICBzcmM6IHVybCgicmVzb3VyY2VzL0FoZW0tc2JpeC50dGYiKSBmb3JtYXQo
InRydWV0eXBlIik7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJj
YW52YXMiIHdpZHRoPSI3MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6IDcwMHB4OyBoZWln
aHQ7IDUwMHB4OyI+PC9jYW52YXM+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCitsZXQgZm9udCA9ICIxMDBweCAnV2Vi
Rm9udCciOworZG9jdW1lbnQuZm9udHMubG9hZChmb250KS50aGVuKGZ1bmN0aW9uKCkgeworICAg
IGxldCBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7CisgICAgbGV0
IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICBjb250ZXh0LmZvbnQgPSBm
b250OworICAgIGNvbnRleHQuc3Ryb2tlVGV4dCgiQUIiLCAxMDAsIDEwMCk7CisgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30pOwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2NhbnZhcy9jYW52YXMtbGluZWRhc2gtc2JpeC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9jYW52YXMvY2FudmFzLWxpbmVkYXNoLXNiaXguaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMDVm
NzE3NDc3YzI2M2Q4ZWE0N2ZmN2MzZGRjYTlhNjBmNDAzZTJmCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYW52YXMvY2FudmFzLWxpbmVkYXNoLXNiaXguaHRtbApA
QCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Cis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTog
IldlYkZvbnQiOworICAgIHNyYzogdXJsKCJyZXNvdXJjZXMvQWhlbS1zYml4LnR0ZiIpIGZvcm1h
dCgidHJ1ZXR5cGUiKTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9
ImNhbnZhcyIgd2lkdGg9IjcwMCIgaGVpZ2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDogNzAwcHg7IGhl
aWdodDsgNTAwcHg7Ij48L2NhbnZhcz4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKK2xldCBmb250ID0gIjEwMHB4ICdX
ZWJGb250JyI7Citkb2N1bWVudC5mb250cy5sb2FkKGZvbnQpLnRoZW4oZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKKyAgICBs
ZXQgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOworICAgIGNvbnRleHQuc2V0TGlu
ZURhc2goWzIsIDJdKTsKKyAgICBjb250ZXh0LmZvbnQgPSBmb250OworICAgIGNvbnRleHQuc3Ry
b2tlVGV4dCgiQUIiLCAxMDAsIDEwMCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9jYW52YXMt
c3Ryb2tlLWNvbG9yLXNiaXgtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
Y2FudmFzL2NhbnZhcy1zdHJva2UtY29sb3Itc2JpeC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM4MDMzZDEyMmY2ZmZhN2VjYzVhNzQ1NThjNGM5ZmQzM2E2MjYxMGUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9jYW52YXMtc3Ryb2tlLWNvbG9yLXNi
aXgtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDMzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c3R5bGU+CitAZm9udC1mYWNlIHsK
KyAgICBmb250LWZhbWlseTogIldlYkZvbnQiOworICAgIHNyYzogdXJsKCJyZXNvdXJjZXMvQWhl
bS1zYml4LnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxjYW52YXMgaWQ9ImNhbnZhcyIgd2lkdGg9IjcwMCIgaGVpZ2h0PSI1MDAiIHN0eWxl
PSJ3aWR0aDogNzAwcHg7IGhlaWdodDsgNTAwcHg7Ij48L2NhbnZhcz4KKzxzY3JpcHQ+CitpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKK2xl
dCBmb250ID0gIjEwMHB4ICdXZWJGb250JyI7Citkb2N1bWVudC5mb250cy5sb2FkKGZvbnQpLnRo
ZW4oZnVuY3Rpb24oKSB7CisgICAgbGV0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjYW52YXMiKTsKKyAgICBsZXQgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOwor
ICAgIGNvbnRleHQuZm9udCA9IGZvbnQ7CisgICAgY29udGV4dC5zdHJva2VTdHlsZSA9ICJncmVl
biI7CisgICAgY29udGV4dC5saW5lV2lkdGggPSAyOworICAgIGNvbnRleHQuZmlsbFRleHQoIkEi
LCAxMDAsIDEwMCk7CisgICAgY29udGV4dC5zdHJva2VSZWN0KDIyMCwgMjAsIDIwLCAxMDApOwor
ICAgIGNvbnRleHQuZmlsbFRleHQoIkIiLCAzMDAsIDEwMCk7CisgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30pOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nh
bnZhcy9jYW52YXMtc3Ryb2tlLWNvbG9yLXNiaXguaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvY2FudmFzL2NhbnZhcy1zdHJva2UtY29sb3Itc2JpeC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFjZjhm
MGY0ZWIyOWNjNWM2ZWY2Yzg1Y2ExOWIxNmRhNTc1MTA2M2IKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9jYW52YXMtc3Ryb2tlLWNvbG9yLXNiaXguaHRt
bApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWls
eTogIldlYkZvbnQiOworICAgIHNyYzogdXJsKCJyZXNvdXJjZXMvQWhlbS1zYml4LnR0ZiIpIGZv
cm1hdCgidHJ1ZXR5cGUiKTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMg
aWQ9ImNhbnZhcyIgd2lkdGg9IjcwMCIgaGVpZ2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDogNzAwcHg7
IGhlaWdodDsgNTAwcHg7Ij48L2NhbnZhcz4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKK2xldCBmb250ID0gIjEwMHB4
ICdXZWJGb250JyI7Citkb2N1bWVudC5mb250cy5sb2FkKGZvbnQpLnRoZW4oZnVuY3Rpb24oKSB7
CisgICAgbGV0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKKyAg
ICBsZXQgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOworICAgIGNvbnRleHQuZm9u
dCA9IGZvbnQ7CisgICAgY29udGV4dC5zdHJva2VTdHlsZSA9ICJncmVlbiI7CisgICAgY29udGV4
dC5zdHJva2VUZXh0KCJBXHU3RUI1QiIsIDEwMCwgMTAwKTsKKyAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfSk7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2Fu
dmFzL2NhbnZhcy1zdHJva2UtY29sb3Itc2hhZG93LWN0bS1zYml4LWV4cGVjdGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9jYW52YXMtc3Ryb2tlLWNvbG9yLXNoYWRvdy1j
dG0tc2JpeC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjMjUwN2M4YzI3MTE3MTA3OGEwOTll
MzdiZjZjMjVkZGE0MjI3OWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2NhbnZhcy9jYW52YXMtc3Ryb2tlLWNvbG9yLXNoYWRvdy1jdG0tc2JpeC1leHBlY3RlZC5o
dG1sCkBAIC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzdHlsZT4KK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFt
aWx5OiAiV2ViRm9udCI7CisgICAgc3JjOiB1cmwoInJlc291cmNlcy9BaGVtLXNiaXgudHRmIikg
Zm9ybWF0KCJ0cnVldHlwZSIpOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZh
cyBpZD0iY2FudmFzIiB3aWR0aD0iNzAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiA3MDBw
eDsgaGVpZ2h0OyA1MDBweDsiPjwvY2FudmFzPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworbGV0IGZvbnQgPSAiMTAw
cHggJ1dlYkZvbnQnIjsKK2RvY3VtZW50LmZvbnRzLmxvYWQoZm9udCkudGhlbihmdW5jdGlvbigp
IHsKKyAgICBsZXQgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOwor
ICAgIGxldCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7CisgICAgY29udGV4dC5s
aW5lV2lkdGggPSAyOworICAgIGNvbnRleHQuZm9udCA9IGZvbnQ7CisgICAgY29udGV4dC5maWxs
VGV4dCgiQSBCIiwgMjAwLCAyMDApOworICAgIGNvbnRleHQuZmlsbFN0eWxlID0gImdyZWVuIjsK
KyAgICBjb250ZXh0LnN0cm9rZVN0eWxlID0gImdyZWVuIjsKKyAgICBjb250ZXh0LmZpbGxSZWN0
KDMwMCwgMjI1LCAxNTIgLyAyLCAxNjAgLyAyKTsKKyAgICBjb250ZXh0LnN0cm9rZVJlY3QoNDIw
LCAyMjUsIDIwLCAxMDApOworICAgIGNvbnRleHQuZmlsbFJlY3QoNTAwLCAyMjksIDE2MCAvIDIs
IDE1MiAvIDIpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYW52YXMvY2FudmFzLXN0cm9rZS1jb2xvci1z
aGFkb3ctY3RtLXNiaXguaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL2NhbnZh
cy1zdHJva2UtY29sb3Itc2hhZG93LWN0bS1zYml4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTc2OTEyNDIx
NGM1YWY0ZTBhOTE0OTcwMjIwMDY2NmFkY2IxZWEwNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL2NhbnZhcy1zdHJva2UtY29sb3Itc2hhZG93LWN0bS1z
Yml4Lmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHN0eWxlPgorQGZvbnQtZmFjZSB7CisgICAgZm9u
dC1mYW1pbHk6ICJXZWJGb250IjsKKyAgICBzcmM6IHVybCgicmVzb3VyY2VzL0FoZW0tc2JpeC50
dGYiKSBmb3JtYXQoInRydWV0eXBlIik7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8
Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSI3MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6
IDcwMHB4OyBoZWlnaHQ7IDUwMHB4OyI+PC9jYW52YXM+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCitsZXQgZm9udCA9
ICI1MHB4ICdXZWJGb250JyI7Citkb2N1bWVudC5mb250cy5sb2FkKGZvbnQpLnRoZW4oZnVuY3Rp
b24oKSB7CisgICAgbGV0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMi
KTsKKyAgICBsZXQgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOworICAgIGNvbnRl
eHQuc2NhbGUoMiwgMik7CisgICAgY29udGV4dC5mb250ID0gZm9udDsKKyAgICBjb250ZXh0LnN0
cm9rZVN0eWxlID0gIndoaXRlIjsKKyAgICBjb250ZXh0LnNoYWRvd0NvbG9yID0gImdyZWVuIjsK
KyAgICBjb250ZXh0LnNoYWRvd09mZnNldFggPSAxMDA7CisgICAgY29udGV4dC5zaGFkb3dPZmZz
ZXRZID0gMTA1OworICAgIGNvbnRleHQuc3Ryb2tlVGV4dCgiQVx1N0VCNUIiLCAxMDAsIDEwMCk7
CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9jYW52YXMtc3Ryb2tlLWNvbG9yLXNoYWRvdy1zYml4
LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9jYW52YXMtc3Ry
b2tlLWNvbG9yLXNoYWRvdy1zYml4LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTMzMGRiNjNj
NDI5Y2NlOTVlMDhmMTQ2ZWUwZDYyYzlkZDNlZmQyYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL2NhbnZhcy1zdHJva2UtY29sb3Itc2hhZG93LXNiaXgt
ZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAg
ICBmb250LWZhbWlseTogIldlYkZvbnQiOworICAgIHNyYzogdXJsKCJyZXNvdXJjZXMvQWhlbS1z
Yml4LnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxjYW52YXMgaWQ9ImNhbnZhcyIgd2lkdGg9IjcwMCIgaGVpZ2h0PSI1MDAiIHN0eWxlPSJ3
aWR0aDogNzAwcHg7IGhlaWdodDsgNTAwcHg7Ij48L2NhbnZhcz4KKzxzY3JpcHQ+CitpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKK2xldCBm
b250ID0gIjEwMHB4ICdXZWJGb250JyI7Citkb2N1bWVudC5mb250cy5sb2FkKGZvbnQpLnRoZW4o
ZnVuY3Rpb24oKSB7CisgICAgbGV0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
YW52YXMiKTsKKyAgICBsZXQgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOworICAg
IGNvbnRleHQubGluZVdpZHRoID0gMjsKKyAgICBjb250ZXh0LmZvbnQgPSBmb250OworICAgIGNv
bnRleHQuZmlsbFRleHQoIkEgQiIsIDEwMCwgMTAwKTsKKyAgICBjb250ZXh0LmZpbGxTdHlsZSA9
ICJncmVlbiI7CisgICAgY29udGV4dC5zdHJva2VTdHlsZSA9ICJncmVlbiI7CisgICAgY29udGV4
dC5maWxsUmVjdCgyMDAsIDEyNSwgMTUyIC8gMiwgMTYwIC8gMik7CisgICAgY29udGV4dC5zdHJv
a2VSZWN0KDMyMCwgMTI1LCAyMCwgMTAwKTsKKyAgICBjb250ZXh0LmZpbGxSZWN0KDQwMCwgMTI5
LCAxNjAgLyAyLCAxNTIgLyAyKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL2NhbnZhcy1zdHJv
a2UtY29sb3Itc2hhZG93LXNiaXguaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFz
L2NhbnZhcy1zdHJva2UtY29sb3Itc2hhZG93LXNiaXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZDhiMGIx
ZThjNzE4N2ZlNzA3MjE0ZDhkNTZlNzk3ZTRhNmMzZmJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9jYW52YXMvY2FudmFzLXN0cm9rZS1jb2xvci1zaGFkb3ctc2Jp
eC5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzdHlsZT4KK0Bmb250LWZhY2UgeworICAgIGZvbnQt
ZmFtaWx5OiAiV2ViRm9udCI7CisgICAgc3JjOiB1cmwoInJlc291cmNlcy9BaGVtLXNiaXgudHRm
IikgZm9ybWF0KCJ0cnVldHlwZSIpOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGNh
bnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iNzAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiA3
MDBweDsgaGVpZ2h0OyA1MDBweDsiPjwvY2FudmFzPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworbGV0IGZvbnQgPSAi
MTAwcHggJ1dlYkZvbnQnIjsKK2RvY3VtZW50LmZvbnRzLmxvYWQoZm9udCkudGhlbihmdW5jdGlv
bigpIHsKKyAgICBsZXQgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIp
OworICAgIGxldCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7CisgICAgY29udGV4
dC5mb250ID0gZm9udDsKKyAgICBjb250ZXh0LnN0cm9rZVN0eWxlID0gIndoaXRlIjsKKyAgICBj
b250ZXh0LnNoYWRvd0NvbG9yID0gImdyZWVuIjsKKyAgICBjb250ZXh0LnNoYWRvd09mZnNldFgg
PSAxMDA7CisgICAgY29udGV4dC5zaGFkb3dPZmZzZXRZID0gMTA1OworICAgIGNvbnRleHQuc3Ry
b2tlVGV4dCgiQVx1N0VCNUIiLCAxMDAsIDEwMCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30pOworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9j
YW52YXMtc3Ryb2tlLWdyYWRpZW50LXNiaXgtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvY2FudmFzL2NhbnZhcy1zdHJva2UtZ3JhZGllbnQtc2JpeC1leHBlY3RlZC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjU2YjkwZjY2NmQ5MjUyODY4NGY3MDhmYThhZTU4MzRiMWE4MTUxZGQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9jYW52YXMtc3Ry
b2tlLWdyYWRpZW50LXNiaXgtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c3R5bGU+
CitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogIldlYkZvbnQiOworICAgIHNyYzogdXJs
KCJyZXNvdXJjZXMvQWhlbS1zYml4LnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsKK30KKzwvc3R5
bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImNhbnZhcyIgd2lkdGg9IjcwMCIgaGVp
Z2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDogNzAwcHg7IGhlaWdodDsgNTAwcHg7Ij48L2NhbnZhcz4K
KzxzY3JpcHQ+CitsZXQgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIp
OworbGV0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKK2NvbnRleHQubGluZVdp
ZHRoID0gMjsKK2xldCBncmFkaWVudCA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoMTAw
LCAyMDAsIDQwMCwgMjAwKTsKK2dyYWRpZW50LmFkZENvbG9yU3RvcCgwLCAicmdiKDI1NSwgMCwg
MTI4KSIpOworZ3JhZGllbnQuYWRkQ29sb3JTdG9wKDEsICJyZ2IoMjU1LCAxNTMsIDUxKSIpOwor
Y29udGV4dC5maWxsU3R5bGUgPSBncmFkaWVudDsKK2NvbnRleHQuc3Ryb2tlU3R5bGUgPSBncmFk
aWVudDsKK2NvbnRleHQuZmlsbFJlY3QoMTAwLCAyMCwgMTUyIC8gMiwgMTYwIC8gMik7Citjb250
ZXh0LnN0cm9rZVJlY3QoMjIwLCAyMCwgMjAsIDEwMCk7Citjb250ZXh0LmZpbGxSZWN0KDMwMCwg
MjQsIDE2MCAvIDIsIDE1MiAvIDIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9jYW52YXMtc3Ryb2tlLWdyYWRp
ZW50LXNiaXguaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL2NhbnZhcy1zdHJv
a2UtZ3JhZGllbnQtc2JpeC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxZDc2ODg0MDIyYzlhZTdmYTE5ZjA0
YjVlZDA1MmJkMGI5ZTU1NDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2NhbnZhcy9jYW52YXMtc3Ryb2tlLWdyYWRpZW50LXNiaXguaHRtbApAQCAtMCwwICsxLDMz
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Cis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogIldlYkZvbnQiOwor
ICAgIHNyYzogdXJsKCJyZXNvdXJjZXMvQWhlbS1zYml4LnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUi
KTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImNhbnZhcyIgd2lk
dGg9IjcwMCIgaGVpZ2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDogNzAwcHg7IGhlaWdodDsgNTAwcHg7
Ij48L2NhbnZhcz4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CisKK2xldCBmb250ID0gIjEwMHB4ICdXZWJGb250JyI7Citk
b2N1bWVudC5mb250cy5sb2FkKGZvbnQpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgbGV0IGNhbnZh
cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKKyAgICBsZXQgY29udGV4dCA9
IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOworICAgIGNvbnRleHQuZm9udCA9IGZvbnQ7CisgICAg
bGV0IGdyYWRpZW50ID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudCgxMDAsIDIwMCwgNDAw
LCAyMDApOworICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcCgwLCAicmdiKDI1NSwgMCwgMTI4KSIp
OworICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcCgxLCAicmdiKDI1NSwgMTUzLCA1MSkiKTsKKyAg
ICBjb250ZXh0LnN0cm9rZVN0eWxlID0gZ3JhZGllbnQ7CisgICAgY29udGV4dC5zdHJva2VUZXh0
KCJBXHU3RUI1QiIsIDEwMCwgMTAwKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL2NhbnZhcy10
ZXh0LXNiaXgtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL2Nh
bnZhcy10ZXh0LXNiaXgtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YjRiMjE0ZDU4N2Y3NGU3
NzcwZjlhNzNhZjliNGM2ZWE2MWE0NDY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9jYW52YXMvY2FudmFzLXRleHQtc2JpeC1leHBlY3RlZC5odG1sCkBAIC0wLDAg
KzEsNDMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK0Bmb250
LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiAiV2ViRm9udCI7CisgICAgc3JjOiB1cmwoInJlc291
cmNlcy9BaGVtLXNiaXgudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOworfQorCitib2R5IHsKKyAg
ICBwb3NpdGlvbjogcmVsYXRpdmU7Cit9CisKK2ltZyB7CisgICAgaW1hZ2Utb3JpZW50YXRpb246
IG5vbmU7Cit9CisKKyNvbmUgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiAy
MDBweDsKKyAgICB0b3A6IDQwcHg7Cit9CisKKyN0d28geworICAgIHBvc2l0aW9uOiBhYnNvbHV0
ZTsKKyAgICBsZWZ0OiA2MDBweDsKKyAgICB0b3A6IDQ4cHg7Cit9CisKK2RpdiB7CisgICAgZm9u
dDogMjAwcHggIldlYkZvbnQiOworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiA0
MDBweDsKKyAgICB0b3A6IDQwcHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8aW1n
IGlkPSJvbmUiIHNyYz0icmVzb3VyY2VzL2ltYWdlMS5qcGciPgorPGRpdj4mI3g3RUI1OzwvZGl2
PgorPGltZyBpZD0idHdvIiBzcmM9InJlc291cmNlcy9pbWFnZTIuanBnIj4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL2NhbnZhcy10
ZXh0LXNiaXguaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL2NhbnZhcy10ZXh0
LXNiaXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTg2ZDE0NGM3YTBiMDc0ZmVlNTlhMDZhOTg0YWI5Y2Vj
OTU2YjNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYW52YXMv
Y2FudmFzLXRleHQtc2JpeC5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiAi
V2ViRm9udCI7CisgICAgc3JjOiB1cmwoInJlc291cmNlcy9BaGVtLXNiaXgudHRmIikgZm9ybWF0
KCJ0cnVldHlwZSIpOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0i
Y2FudmFzIiB3aWR0aD0iNzc1IiBoZWlnaHQ9IjU1MCIgc3R5bGU9IndpZHRoOiA3NzVweDsgaGVp
Z2h0OyA1NTBweDsiPjwvY2FudmFzPgorPHNjcmlwdD4KK2xldCBmb250ID0gIjIwMHB4ICdXZWJG
b250JyI7Citkb2N1bWVudC5mb250cy5sb2FkKGZvbnQpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAg
bGV0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKKyAgICBsZXQg
Y29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOworICAgIGNvbnRleHQuZm9udCA9IGZv
bnQ7CisgICAgY29udGV4dC5maWxsVGV4dCgiQVx1N0VCNUIiLCAyMDAsIDIwMCk7Cit9KTsKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9jYW52YXMvcmVzb3VyY2VzL0FoZW0tc2JpeC50dGYgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2NhbnZhcy9yZXNvdXJjZXMvQWhlbS1zYml4LnR0ZgpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40M2I2NjJlOTc5
Mjk3ZjJiZmY3MzZjOTlhMzBjMDg4ODFkYjM4Yjk0CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAz
OTk3Mgp6Y21lSWIyfFNmdSpEJGAlSVhHcjFpWll4fkRsKlN3JGthZHhDNmFqX2syeW57Rz8rel5Q
KUhJPSMlUnUxczEldSUKekRSWDktJlZPSSRRMTFKPUA4XkJxPWx7T24/fHJ8fDwjKE5IP1ktQXRk
IyR5bmIqKmRmNFdJeDN3QlFXRGZQTEN9CnpmK0JlOXhnWiR4NCZKOU1vWGxMTTxNYy1YSz1BYFdQ
SFNVXmNMaUdqNiN4YGNGbnhvS3FwdmxrP0tlZGopJk85dQp6aHBtO0ZXJFRnSjBzd0dqRmtRa0hN
cXNKUUJ3PV84aEl3cUFKYllMdyZ+eU43WDkwbGhuNF5uQFN6YldhMm1tYD0KejBZRDJsbmZiVilT
UH1aWERHKHAkWjAyTkR5dHslR2hGPGAlYDtNeSUtb3hWZDMycCMlRUNJai07bXolUV9fKXJ0Cnow
JnVoazBDZmRgIThEPkcwWGR7cWhRMHpSTTNBMVNhdip9anoqcztBQmEhUDIwSiQzZzRzdVBwM2BK
Rk5VPzBGTwp6NkVIWGVsbnNMZVJmRytUU081cXgyOEpMdkxgKmROZ19IbWp7NiNkITFqeHdkcG5o
YXYwMUlUbVA3bnhFei1eRVUKeihtKj02M29eaHhrT31VQ0Vic3RpZ0IqfHg5KWReVUZ+fG82cGIh
KitWbyhCfWZLcEhmb2BQcktJZH1uSGY+Kz0qCnpDPGhndzU+JGF8UHlebj0rTmNOYiEzWGRXZDsq
X0FCV01DJktyPzZzWkotQD1mS0pjX3pKaE97OH14dSkmPEZhIwp6Y1E2Mmt6JVVwQVc4ZW9FMk5Q
ZnRPbzNASTE3XlYtX3pDOTBCM0peO2ZQZk40PjdqZzMoZFlfdkNBdTJqZl5KMigKenExIVJuRnpK
e0tPZVVyYl44IWJLcXJ1VlBIc0Z8V3RobFc+NGpkUDVDciRfX2dXSkVJWXhfPHZHIzNSSTB+YUlM
CnpNbE0jYXR5fjtqZHxWbl9yP3stUkNVKD5hMFVAancoODZkQFhfO3QrWUYqUUQmfmVnSkdINWJy
SFJRQ31XeHZOIQp6JSsoPlZBbkw7cF5mR30hZlYjd2lUfTBqOGBLUCtlYHd3O1o9MTtuLVVDfntg
OHJgLTBRezQ+YGJ2T0RxeD9BfEEKekpLWig5YHw9bU1MKnVBJHZgfX1PYTRiLUZZJmFaSWNoZGg8
Y2I1TXQtMnBeKmdsQHQmIWNXMiFwXkxDWTd5dyVjCno/SihSKT1wemdoMjRTY2ZQIUsqNCs1amAq
R29naTBQWil3Tm15WGF4WGIxR0w9aEcybWRrOXwlVWtKQWQ8JUMzLQp6XkNyWT1oMGoqUERCJjhS
am5HVn1CdCR8dUFMNHVfVCFyUUo1SGJqdDJfYnxfRTU4cWpAV28laF4jbGFJdT0wQmsKelFvS01v
TT50UC0xNTNDfjJxeVJ3anU4fT5Nd1hfUmhMPHspeHxZNXl3SiN8d3hoeSM+P09BTUNWKE9hZW4m
X0pCCnpCeV8jJXkzcUJzdEV7V0V0R0Z3LUUyQXJeXkpRbXQkRzQ3bTlnUThJSk11YSVjaHEqJmJV
Zj13QDNfKHQoIVM4agp6Xk0zZ1EqPDtqV3ZiXzFjMllGdDNabj9LfDxGbCpwaXtJYSFJVDdDPEgq
bD5iXjNLXilFe1lxKlAmMzNIMz4pNzEKel4+MWthMTFSQjt4JmZlSUA1TWtVMDFrfX5hSUQwQGty
MFM3WmZEJUZvcEV+cmRVUG9RSE1MQk8hN1grTHBtIW9WCnpDckR3dzZZJjU8K0smMFkkTzAydCk+
R0RYdS0qPlZgQDtIb3VzJFpQJmtOdng9LWRiYDFeRTZXeXElZGlaJiQlcgp6cFl7M3RmM0ZUO1cm
V2NqKjdkKHZvXntKfHkqSUE2LXUzczBfNGtQTl9sV2lQaTFxaH5fNGtQWHNxWWMlez1kSmwKenl3
YG84PndlJk1VLTxnPmZkMzE9aUomNGUtX2dlcVVsSFNxdUx5bU48U3FLIWxxIU4wT2hkak9mbFo9
fSsqTVVvCnpMXkI/fiY7NU4wXmdvPmU5eUEwQlF3RihkSyF5Ml5lOTN6M1Z0TzJUekc9X21gU21f
Yl5qamdaQFBhPDhtR0FzUwp6ZTMlUXl0aTRkMVZJMklQaDRARi0/e3l1bHd9Smx+KzVwbUBRRSgq
XkFgOXY7NDl2cWoxS3c1ZXd1Q3Bsa2hJbjcKenpnWHJmTkRuRUFZMnxNXzVDRjEzMUx5O0QtfiMt
P1dlXjl+NEx5Vl9mb2s5aXBCfWh3WEJrQzxWbk9YZGlKJWx3CnpoZnYyKykranZjM0BRd2pmWFgy
TDwpZERyPlFKcXlAMkZgczhxSSlhTCs/Z1FwakZVRSY/YWJtdl5WLVpJdHJiSAp6Jk8jVFglaDRh
dm8jPGlvUFllWlM2SXtgPjdiQW1GI35qNiZWVnA2aUZfJHAwbV4rd1V4WmJCNCh9P05Ee0o8PWQK
elFJVHlYPDBjYSNsUDVic1c9TGo5PTArQXNjOXJZflN2cHhCKj5rZFlXWCl1S1dSdjg4b1FgfWVJ
V01ed3hlfmIrCnpgM1o3Y2EhPk5KPFBxZUY8ZUI3ITxnZHghbGVkIShsRnczKlE3fT8pUTFEU21R
SyhZclFrWVVXUXV0Q19xPT16Tgp6cH4kOXFMUXpUYWlRKzU4RDgmTW42M2RMYCFVfCZMdSRvdXt0
T2VFOzgtVHE2fEVePXh1I2QzTXV5MyhudSlXdmAKekVQO31pbDloNU5yNn1iLSVFT2RLbHMxJGVs
KTtxWWxzNzV3UTVJMFhxTzdORXFhMmB8cH42c1lwa2stbUxuVFNJCnpwR3RAN0IkV2V8NTdoOyNY
c1RxWTJVSTBnNjt1c1dUfnM0Zl5WQz5zQ2hHMGYwQFNrOThyMXNLPUZ+M0t7P3dQTAp6PEVUQHFB
NXVUMXVBeSRDP3g3eTFVWiRhO1ZXSFZVQlNORHtiQk58UmpXckZQPF90fDNPIykyQE8rTCpfbm1V
P1IKem4oczh6dn1qcmVTfmw5PGZCUHB2dDNyRSgpYFpyYyl8PlZgWjRfLTFaNUN9WVo4X35uK0Rf
VkcrTWplM2JlcmdLCnpiYklNIVV+N1JoNktYU1lyM0tPfnwxP2hfUUdmP2tOUE5OeylRP3BOVnA5
R0pwI2VQI3UyTGdqN3tHPDVTYkBtXgp6QzNARWlPYiVHa0xNdCFAak1yRiFzVztmN2tGM0JuZk07
WHozUVB9bEhANXhhWEtzX2czWEIzfE92Rl9sNUR5S28Kek9uWC0xRkBUWHRjbSpiZElMYSQ5SWlP
YHlUWSlLSHl6VUIyNExnZCMzUVBrd3sofFlqWllKQjZfemUoMFk2V0o1CnpXeVArKjgpMUFSdj9F
WXRhNGpMfjJVRSVsNDBXPE9hc2BHdSo/ZU9LaEMxMU5jTGp6eio8N14oTCFFNFh6WEMmQAp6WjJy
Q2lMIUU1P3U+d1AjQEZJMiZRV24kK3VtMXxYMFp7VlJ0LXk/Y3Awe3hZLVUjRCt6KUBmZXROOyF1
NXVaKkYKenZXOD1UR3deX3JJWlNhUmhITDtIaENMdlJ7RX45RzAjQXRIMjwoNmJqSjFTbVBRVk8/
b1opREsxRGYhTzFOSVFkCno5bWU1ZEkpZGlgZS1Zez1ZUEp2YERGP31tZ1J3NWVrVUsyWjA+VTto
I3QhJXF4JT5PRmExaGZRVnBfcCtAUV5iKgp6OzBrSEVLcSohXiNTPHg1IXhUcGQ7UXt9ejZxMmx0
TD5hd2R4LSU+ajJVSCo+RDxXcmh6PkFueTE9NGVaZjIqN3UKeiFCfT9+TE80ZndiJWZhTkQ+KUR4
OUU0cnJBRUZ6aUw+VS1rM3VXX3dhV1gmPHt2a1FjVlR1NkV7bTBTfSQkeXQ2CnowN0xHT0Q8bFZe
S1B5TmJrcH5aQjVYflQ1PzFsMHBkUGpIXzFqM019NVBXKFBhUyh9WlY1JWNncVhAVUZee2gpdwp6
QGcjRU00aCYhaihJMlVIYTZ+SE5razBSUnY2fURpRmp2JDZTJGpoR0x+MCk0MUt9MkZUZHdlRjNG
Rkx4Rlo/fFUKelY9UmViSEhkMnFjX1AmO3FFVG1KezklWWtzejs9emtkfTVCcnVvNDdNcykyKyMz
OGopcT9JfkNgYmF4S0c9e1ZeCnpaJUVPTzcpR1QxR2JjRVJqbnV8IVRTZSohRGVFQHtxe2F7fk5q
PDw1QGBPLUJDP1JzViE+MUxqSnNnWmg7KUowRgp6ay14UHEmSjByYkIxKGhRPHw/TXRGVDdQYlM5
PSt2RUJzMiRCTkM3KGl+UGJUO1VRZDtHPkcmOzJaJSojJWQxcEsKelQ7WUttWSFec2RNTX0xVVN+
RylgSiluJDs/JEBUU21DfVpvP2gwaV9XSXsjPEx7NmtQa2FUSlJRJUxPfXArI3koCnp0OSY5WSRf
ZVUqUkR2MUloZ2NYc0BhWVk2QXVaYUxORTdMc2p6c3poJDBRbTVqdnU2bEFYOyZTUGVlfFZ7dD55
Ngp6SzFYVXp6ZWckKEVvJiRAUW88amxNN1RpZTU4KG1mP0tqcStZaVUoeXROS0s9QGFKJkA4MzdR
anVsOUktenoyfGUKeis2KE99MWQ8QE8wfT9FPzUtUzFKZSNKX3tfQ21zeTFnZ0pjbTN+b0IwYUN3
V1JiVzNSO2l8Mm5BUGh0eTRXelhwCnpyM2VGWVNTa3ElZmtvRyhOVW90SjQ1VDY2WUF6QWp0MFkh
KEErWTJoUWwhXn1fQ3AlMHZoNEBeZjJEeypkU1l1cgp6TzBldXo+WXxZRS14UUoxWjtHTm84Sjcx
T1F3MilDOGJiN2xOVmklWjY4Yz5SRGZLcnVOVUdBR0B+WnFIP3tFRGcKemREcXF3NT9aU2JCKXFv
ZmdkaTd4PE9gQWFIKCFXTVlxPUt0MUUwY3dxSzxedVFZVWZxSjNrV3NiTmNUVmdLI1BnCnp8NWkm
IUxUaDxQIW9QViNMVGg8TCFmVytfUCpZeVJ5OW5nYGNaKSsoQ0heMmU1KkF4aXcjMXJ4TXpHY1h6
PjdHbgp6K3V4LWxJdXUmZDYydUBVdDBOYFNjMWh2aUV0VkFpLUJ5c1dfP2s5e2dyKE5COXdmWkI2
XmNWeUNEdXFzM2pjMWkKek5iZUFYSUlFZiRodUhocUBKOTsmKXtaeiM2SkZFdkJ3JCElamtZOHBG
OV5qfGRYaUFPd2RHNjAtMjJ5KnIkJl4xCnpiKnZ6VE1FKT8+e1BuMX1iYClKNXF5QjBuI0taQioz
NjR5cChVbWtlQWhSUk1IZEBYM19vRXdQIUVta0l5SD5fQwp6QStWY2gqPVJ4OSRvei1jYT56KCg0
IyEkI3J1d19sUkYrN2BsfUx8NzMoKmRWKXskUlNrVTBnSlp4OTs8Zms/SXcKekxpWm8ofDhiNWEo
WFU9WlVqPz4+ZUA2ZTBgVHdlZndIelN5NXQqR34rY3ppOXJFNnpnSlcmJip4dCR+KEdKXm02Cnpu
cCg5cjVpOEZRJlUrKnNCZXdGdFREfV9XMyY8Py0qRjNEKzh6ZW9pd01gSD9SYmVUfW9RYyUjVEE3
ZT4yXmtzeAp6SVpkUHY5YnIyX1lWYVFeQlgtaT9RNU85aCVLdXBSfDQ4e0xZPXd4MFYrSEduV1I+
bE9ASU5hfT5+QmgyKWVXTCsKemtgOyo5Q2hreXt6bWlBfCkoUF5xXlJKZEZ7eDZvZ1lPfDRTdEdf
Qik0fDMpNkZQQUl2RlA0a2daYXlwUj9YUl9yCnpTWUxsJWhwVDw9JipRX053VGY4bylfK0AkMjVk
V3MmaX1wfnJHSFQjTTFQMzJOVjR8KysjWGxeOE9iSkc/UHFgMgp6SzkmRTJHTGlvSVMyZCtjdnxO
I1FUZnx5S1ktLVptXkZOa0RuaiF4eU12Z3k5dl5zTHdMa15NcEJmWWkhOUBCOzMKeiU9T1FFXzIw
PyUqQmJvJGFgeWs1PCl9bTVBLSZySFlTQENQTVp8X2pNajlOdmt2VlIpcj5HRzFpfHBuQFl6bVU/
CnpOczxqMkJTQHsrN1V9X2NDLWozKXE7LSghQWE2RUVFSFp1fF4rPGE2e0hIVVR7aGw+NWpzJiFJ
TUJ4NDNSb2NJPAp6MUFRbjEodndNa29WQmBHOWU7bDcwKG1FUWhtcz8wXjU1MSZWOEkkYUFhNjN0
JntGJWU5eyZIOUJtbkRndHZ8JloKeiZXXyZEVWg7O3VZeXFEbnVnTT5Ba1hoYnExIW9tUTVWbSRi
XyRMVFFBWDVEIW8peUlOZlhvPDNzeH4rUmp6ZSNqCno3RWxNJk17VFdlTzE0JWBJQk9TWTUxaEdg
cWw+Yyo5X1FoTGdGQjlLdUFiKE9iezA1RzdiaTEyWDkxazFHdFM9QQp6LTQxVlFYVz9Qejt0Ykpq
JXsqVyMmZV9FUz1XYj07ViZpUCpfb3JNcTdqSWBQY2Y3NWdFNiY5bEEmUiVjUz0le1UKejtyV1Jy
U2kza254X0h8Oyt1JjUodDt7Xl55c1U2NEU+MkRlYVUmfnQ3bzRTKWdgPTR9T21LMD1uWXA/OytG
OVhjCnphSkMqRXR9PXB4aiVNYX4wZ0lKdjdObEdQRjc3c2hrWV83cnljSiYxNTBjcEhaM2R8ZDNK
VkFjZGcyOGd0ISZJMwp6RW5GPEU1U2V3WVkmOz0jMUlRbWpVc3ltfmheUHhCWkVZa0hVTWJWdCtn
cmR9KUItN0hDQzFYcTMmcyUzUm5nTkUKek1BVjJFRz1uKD1Sa1YqQipWSXl7VVEta1R7Xz9lfmBq
PCFeMiZBVlhie2ZmdGd4SXIpdEAhKGBBTCtHIT89d1dhCno4PUEwQnVscHowe2daM2spNEc1MSZv
O31kQTgqfTF4JGQ3X19mTXwtQylmUnhCO1B2OEFHeitJe1FXSSMtOUpoNAp6RjhyMUVAUT9uKmJe
cWlhZVRuUC0kI3d0YVRMMDYhZkFZXihJNUp9VndSaTB3e2V+cFp7Sk1ZZ0EzZkg4dC0qRXcKekJ4
dyUrdWwwdG1gelFiQ2Q7Q0EtcE0pTX5sSUt6dmRkNiZzWWhJOVZ5UXtJdEkhTk0wSTFOfCt7PjZw
YjN8QT9sCno7UiVIcGN0OWFKcG4mSVJRTm1MWVheXyp8O0Y+fVBjKlloWiphJFlrK3t8RHpKYntx
fnUhNX4lOCg7KE1mQ0YmQwp6YWNWcEN7JkU4enVtaGV6JE99RjF5VEttbGQqX0U9cnYjdXM2PExg
Zkxpe3EwZHtJWU1wLTk3VCRnKTVWJE84cVMKejI9K2w8aystYjwjQll9QmE4MHIlSH48Y1VMdldS
czdTUnswMTlZTGtfOSpufDh2c0xhNEVrbmB6ekpYc091JEtDCnozUWpAYXR2VTFuQk5tcjYpQnho
O3d9KVF9OUhCUUNgRUtDflMzbl52emRXRkJ5cjgkKDJkO2ViMUU9QWQ9S3kkSwp6Vmh9dXpGJkxa
IT1mTVNWNW5PYG5wcyM/ZEFQal9xTkR1e0w7SHYyQjsxKTwpSVU1aTtTckl1PWFySGIhKGtZNWgK
ejtIdjRAZT5nRio3U3llcm4lTUElUXhqWU1iWiNQWVJeczV3WF5FcU1KfShoUGg5VzFQKmpOaEJh
PVp0VSFBKzB7CnpQajdyZkpjRjx0b1B9cEtoUVBCT0R+TSt8bVZyPWsxMDtaV2M9QlUzTkNYayE4
aTxBSyVTKyg3anFxR1k2YV8kfAp6dXFhOXQ2XmFfSj4hd0F+cTNCVHpzMH1EYSlKRGBNNmNkVVd3
SGRWcXVKPmp8WkFFUUV2N3kqZTk0Smx7NHooU3sKemgybG8+ejspbXxRTXs7S1dMby0lNHBHOWhI
KGhOLSM2KHZCQStjM0o5SWJIX3Z0UldQKjM7UWVPO3Q/fGQ1UT1MCnppTDUrRFNEcz1rUHd8emYj
TDgyODwqQnN0UjdSZW5MUEExUlg0WkNnNjJjTV5WcHMkYzYlc35MIzhpY1pOS1l4MQp6bGB4VGx4
V3M7OVBCQiQhVm9Cbns2OGwldWk1JFQyTzFkflBVUitkK05EcjFJaVF2S2YjSFhZWDJ+Uj5ybHRA
UUgKelFiWTwjbWxvYm4jMjEkb0NRMndJc3prKD5QIWJfPjQjUHlyQnZxQmdWZG87UTNyNH1OTSs7
WnIhPEVmc3J+WVQlCnpWc2BOU1FqenQwVD9neEo7RDM3PzBLbmVXMV93X3s/RSlKUHNBPEJ6NFJI
QTNONUs9NjMxMmJxUmVrS04wWFRkWgp6JmQmaE9eMyo1PnFJQ2ZHRFMoVHA0TVo1KGtyOWQ3Mig1
dllrcWZtSUluJFVwaDgzZj57ZW9ZaGNDRncqYHZONlEKeiUhfTtvczZ2U2xWWl8jYDMkWV59ZFc/
KkgtIUFQfmcpdiQlMz1YP154VlhER25nT3QxUzZnJWNGYFM1cTFlX3tfCnpnc3JXdXJRajFuOys5
Zm8pQERLJExMeWN8QWAmblVBX3V8PT1fdyowQV49U2JBekAofEEhISpBYWghO2RqSHRBWAp6NyN6
eFkmbkIjTGlZX35RPmxnZ3k2NCE2OEZZJUlLNmd3MGRJWUFpPyVSKFh8TFhwVU1xUjM3dWZQTlFB
XzZ6UWMKekxYbUt3djRvMDN8RHJoK2pSSjdMMipNWTdHNVN8TGhBYk1oOGpxb2tDaT98NU1aPTl0
Qnp6MjhHe3JCTkNtUT5rCnp3YGpeMG09Uzx6c3VnJHhnc0Zld15HOURLQCZuN3BoXjRJWkZEeFhL
Zj9DMGM5SG8kc29yVnkmayVDeHdMX1Jedgp6OXAremo2eiooVSFHfV8obElTMUBSKWJXTXlzIWxV
a2hYP3E4aFFtRWlBVV40NT4xZVgqcEVhUXFuMVgjNjJCQVQKelBeYGdPQlYqZENqMGx9bzg0O0x6
NEw8RX03JCg2PmoyVTJ2ZHowdjRmYyZwJnxGN2E4P3lCc18mUlFKMk87P0BfCnpAVk83KCRjMmN5
OG92QG9qWUdndk5sISZuNjlQRFJCa2hIVjJfTnVENHNXRXJwb3pfelJSMiZYNy1YKnhHMlJmdAp6
QmsyWi16WHhzUlJYeDJ4bEhqIWktYm1SanEkbEd3XyhiKnVgak50YF87ZTNlO143MEhlRVhIIVpS
SCFnR2hWPlYKeigjNzBMMERrMmNeZjdaS2UkNUFSaWF4R3A3N2tYKHZJUUdFWEwrdSUoJnQ8X0o0
PDtrTC1FNXhoaDBeeVowJDdzCnorXnpLZHcyb1QlSWFvK3JhdyNnezxhfWcmb0xycihKamAlRFBM
OXJhODZTQnJCNUBmQUJoaTlmSTNrTE5nRk0lPAp6ISQ7dEgxYX5XKHhQWHt8NUVzbnRaZlB4fXlJ
KlozRkFUfFp7YjZZVWFVcD1QdzZ3SUtrY2dtJiRYPHhDN3dfeHIKelZka15mOFBCfitWWlJtTCFy
amk1eFUyIThYbEN4Pj1eQFZyT0QzYDg8b2IqM1UmXzlVPXhQZ3g4Tjk4Xy09UDBXCnpDTXMrLWxj
bUtrOzt4P1Zqem8/dkVkO0ZgdCg+Zm8jUzZqJCFpV3g+VHhFIUJHRjtxYHkwfCNYYX1tZCpIU3Qj
YQp6JXs7N05HI3NHejNRNngzNWtJOypLI2BDUnlJOSY7YH5ETjhVKTskY05XYCtOVkNEVDRMOHkz
MzNtTHFweHhKTnoKeiQ0Vl9JbzdvNkxRMUF+NGZgflRQWGNzfDFxRnxMRjtJRnpAel56fkY4ZCVy
QngoMyFZdSYjbDE0Zzl+U2YjMjRuCnpsezIoRHlyRkZmMnFWRGYkZmArJjZCUTV3UXAlYyMkcT5e
VDA3VypHNXh7S1FxMFI9KVVObkZRTE1RP1g1Z30xJgp6RiVkU2owLSF8Zjc5blg3YVc9SCUrSk18
RDV7VlhLM2Q0V3opNFZJdmhFaGp1Pncjd0RHdSRaKHFsNmNMa3JKZVUKejh5Rk45S3JeQitqM35r
elhoe1BVSWZ7NEB2JXd6fThiZH0tZnUqRlByaHkwckBVMGV3IUp4QDc8bTNwT3J+c0dfCnokUWEy
dFpXbVVmKnJhMkk8I0o7WjM2OG89JCp1aDhDQTAyX0EzVVB3P3F7aX1IKmFCSy1NVjhaQDI9ZkAj
S2F7ZQp6cktEdzRfTiVJP1lpSihPSkYwSkJjPGl7NWd7NzZYampmJE0tb3crJitzRGBNLTEhUl5M
b1F2dTUqPjNiSHR6YjMKel89RyNEWTNYK30/cSVOM2R6QGNUU1g1bHs8a2ptcDxyUzR4KWlvYSpL
N0RSJWBxSkY7Xjs+c09aKHNsU2Z4Kz5LCnokKkpqPyp9MCRkaCtPYj5pekY4T0J9dyl0eGZyMmJY
ZmlTazg1V1RYaDR3fVNYQ3ghdkU9O2plTmU2NEB3dXd0NQp6bjM3MzM+aGAwVFJOU0p2S2JYemtL
VHZQeDUmT0RoOTEpRXUqfW8+KCo/JnYyVXhOTFhzfSp8cjtaWSVMRkVSYGcKemYrQXFaRDk5LSZo
JlBzc2teKVBHckokZ3Nmd2hRUzVUZDFfcmJQay1OQ1pXcUsjc3dYUSk0TnhNM24jMzVCJT5sCnpA
T18tbjAlJFN0LUhqMiQydFB3S1loTnxrTiFjNnNZSUZ6UjxKdD99bmY/PT8mY1Q0OyRgaGEodD5i
YVJjNEtOfgp6e19YRWx4cDY2RjN7S3BlUVRvOXFWZm1AeUFwP192O19fdTVxaWF9cXh8VWFZKXB5
dE4lXldEKDg+Y3hqPzJuelAKejwydndlekstRzJ2I3FoTU9aK19kJlg+Nl9XPyprKTJfWEFLbHV4
ZDU7X2xeLWd7fkFJeGd1QDZwWU1Eb2NWMHhSCnptUVU/Iy1NRW5ScmRHRGUwVkIxZSlUMzg+RlBA
cV4pVVZKTEcoQStHe3FtOCFlWE1xaiptQiNeSkd0IUlrNGBtdQp6NDd7OGUlUmFiZ0F7I2YqYU0k
bTFgbHI0NylWMnRuUyFBQSFlUiRmRSFEejBrb3oycSFqJmdSTlQtWWM0eHJrRHwKekZzKHN5STxe
TSZHU140JVQ3QWh2bjlHK19uPSVocWY2fmtlKilNaFd7TzgydUdwQHk8PWVKKnIoezhganhxQ1ZA
CnpLMzBweXMqZHszd0VmJiooO0s2bkFieSMhKlVsPldaLXQlV3Ipbk01eUluVEVRb2Z0VEgtZykz
TUt8Zms+RWhSRwp6JSRrclhrKE15KnomMXY9ZHNrTW5WY1plZEctcUJaKTJ8QkdDWHsxZFYmeW8z
Pld6TUNGSzxyMUprcngqOFR4OVUKekFiKD4mdWJoezdIZk1SUWJIXjVrdEp7M3stISF5MC10WXgw
e2M8Mz1xTzR8N0k4aytvaj1ya1RONlctSVlVPC1nCnpqbX4xe2gzd0x3TT9Se1JGLThZbiRXd0Zj
OTVSKF9TdX5HbEokYWIqb3RpUyslYD5oVTROMEd+dW9WSGNrOWk4NAp6KyhmRHJkKmVeM0glJmRA
eT1HeSV2dDImQ3hRfUliV3FXK2NjJUtUdEE5S2w0aWA9a0E5Uj5PYW40ZEoySU94fnwKej8jUCR0
b29FT3IwTWlNK2tJUT59aFAxfDJYUUM3SXA3RDJJdDd+diZ1SFNjaElrcT05YjliQlRvcWIrNks5
dG5FCnpLa3Z4UnNtfVp+QUx7JExLK2VEUk5yNys3YChaZ3wkRzZ7MW1eSyl3S1JLYz08ZCoxQjgh
JTBGQDtEREZ6dVY7Kgp6KV5FPTZZdkc3VyNTYDM+Xzh0ZChwSCFSejElcUR3UHdgcEhnOVZxNGN0
eUxqS0s/YGkyWSUtODhHcEd+U3ZDNVcKelRnTlBTPVBgWENAekolNno0bGVvbWtjTDxPN28pYHdU
fVlGSWk4MXNrWk42ZTNXZ3UhMzJ2PVhYUWliM0d2XmwhCnpZWCtNS0QhUTN+Y0NLemxRKUA/WiV1
PTxZOyZRP0VLXzRtV21rSkBEZj9eSyM1PHRVbyNybShCU3pGemMzR1d4agp6dWorZ3JlJlBLKlFM
VHBpOHRiI2VzayFYI3J9Zmp1NikkREstVGNmOztnfj4tTWI5QyhmJEJ3dnNocUpjbW92R3sKejhg
LSZKKWs3dWc5JXYwT1lgVzV5TGpYM01XS301UDFKUkZvPiVVJjVfMjhEdUVqVjdXYjJqWC07LSl0
fiMkd2FHCnppd3dhYlojV3JTJChuZ3xfb3QoLVJgKnM5T0lMRXRXblRAdFZwTVkzKykxV3w8JE5n
YlN2JmR4cCtLajBPNVFAZwp6cHtyeGZyKGJfJTkmc18rS188MWFeMTBPWD9CWTtkPX41aTt3YVgm
fnlCYTBJNGVKUDBpMnQ7ZHFLPTdfR2Z5XjYKempjKTFwIS1wUjQmRDx0K0pjKkheVHolV1Nje2g1
c142LVg4QVliUlYlJCFDNSVwUSMlMXU9KDg0ZiFJM3cqe1hHCnolSiRuKUliOEI+U0steHpScTNh
V3owKkktbS0rb0UxRXdoKEA3Pyo+QnxKTys3WE8ycURoYVgzSGRueWZ7ayYqOAp6QyF0TEx4Tyt2
KnZrYjFQaG03OGohcVdacS1mSVpTKVk5PHpodzx9RGVePV5uNFI+JUAtYmBebUIxKkFseWY7RjUK
emkrdHRKWnphYzwoUXx7bHRZaD16dEF7VzxnfSQmPl9+bWpgbHIlcU1fMzNDN1lmckghX1kjaDYr
O3IpT3c4N1kxCnpNOW1ZNmE/ZjYjdUdxclFxeGhwPT1qcFh7SzhRQW41ZGY9Z2xPOXZ0JW0pPjJq
cTxkWDgqSD1PMyFnS1dPNEUoRwp6Rk8oSVVhZ2NAN1pRRUM9S1g/TWJRS2pGdll8fVQ1P24kZVUw
dm1UOytHd3pHa3ZeQCpFI2JDNmEyOTJveHwyVkwKelJNQ15nZnRTbDsqYEEtaVJvdElBdXo2QyVT
Z2ZyendFbkpReldIYF4ra1NKRlUyLXF1PlUkUmxIQyhjN0pZVHgpCno5QUByKylaZEMzR1RqPnhx
aiRtUWJkUHQwem5XJmNIMFh7Pip5filUPEpAemlhfVpNI2NEQSVDQEZAR2ZzJThITQp6ZjdTRTdF
XikmX2dZQ3paLVg7dnN2TEVoX0loakVEcVR7Jk03N1J5OHtuVlkpK00qNT0qNE9WZlJ8S2BBT0Js
IyQKelREdD1SZn4yMSRYP194d3dNQFowWEp3ciFfdFZWWit4cnUqX1R1YUQ/VChUMV89K35fZnNF
WnY1Jjdab0NkVzVzCnpzYnhIbGQ3M1pKLUJvYm9kUFE5U0oxZzVeOS1nfl9qdXoqVkNsZU96Rz9v
VzJZPyNAe2dGI0VpUDFVQzRQQilofgp6OSo8fCV4TyZMLW91UnhvX0xFXl9xe31KKSNgZlQxNHEo
aHNAZUZmbWA8QCVLeWRPQXF0ez95VT45U0hhT31KTU4Kel5XYmE2eCtIZ0Jsd1lLRkkjPSpuKlZh
b183T2lhb2J+T35JLThFJk9hNHRYZnBMJFMjRmtwWE9ufW9ZdHtfY000Cnpydj1AZ2N8bUBpJVMh
fD5KeTNfQCs9Vi0zZ1UyViVgeUQ7YVBfIzZ6WTNzbHFMSElDUkhGbiRtT00oZFpEWWo4SQp6JlZJ
ZDBaYHpDZClzMkBMVTdEV3lPRk1ucllyd0JiSCQ1MDNET19ETCQ2ZHRCP3d+S3teNmk5fHFrWWpu
dHJ5bXMKejZpNTRHcytMNGVaeSlfQ1hXbz1LYVp2WDU0KTVERG0hbDRwdjxPRzU9TEQhMTkwPCtj
PTZsTDlebys5S0pjcVZ2Cnp4X198NF9AP3NQPVdVTUk/RitsZ0FHZVRLKHRRXmI4MmMzYVd7Z3BO
a0FATjUqb0Y4fDl7JmBOYXgoP3klMVklOQp6cn1PdXdZKERXPzJ1JGYhTlJBQTxlVD1tQE5pUTFD
R1EmQyR4P0NgTXRFbHx4YWsoJE9gR3diS1olXmIyNFZANzMKekg/Zkp8WSQ5fXI1MHZ2JSNlfDsw
TkF3JHVpfH5KfXk9Vk5QQDBpIU1rfTNLMlNUITBsX3BhU1AtT2woJE96Yit3CnpSYyhJaGpqJH1N
NjAzTjNsPmY8KCVSMkd9LSF4d0w5PT81c3deS2FCVmNoZ31qNzBOfUJyRmJWWFZIUzBIemFwRgp6
JDQraDM1TTd2SURPX3c2SWFqWHtxeENUTXoqe1NhVE1Lb3FvLU96fTFGUU9yVmg0KlopdSRWMl9S
M1ZMb0plVyYKeldkWmM5U3NPZFFGPGhgVDU0KnFyd2s0YFh8Q0V+Z1VBe3dlWihvbFRiYnNGNHFw
bmc9KjJSKlBoelZEZF9jSWlJCnpXcyNIXlZYRXU8SkBmOGV0Sil0O0ZQcFojWTJpclJYPlImMVR6
RkRnZGE+VGApemRsZ3VIN0clQnRwPG5JfmlFNAp6Kj8tbmFFb1F4VW50bSN4T250SWRwXkY3MkdG
bTxHQkZud0FNTkljJFYlR2dKaSoyPDFrQnN+QnAyO2h7T3VnJnIKem9BI2pvakF1USktTnxqXjA7
TCg+MyFocyhKbGtfbUtnUjFsZ19oPW4/Pn4tLVRIWXJCPzs+UnhpfX1YLUUyRjhPCno8YUR4WWFx
MjRtLUJpNU4/QjJCMFokbTJ7aHkraWg/ZDxDd08zSXFie1hCNmBkKzxuS01gZzdJP3tmMnd6NXVF
cAp6Tl4tUyZNJVFmWVRlIUJJRVJwTSRHaS0/QjlldyopeTgyYnQhI2VyNzBhSlBaNFdVMWNzPCgl
WD5DQUhQVyZ5TXcKenh3bnM7PlkzXnZveXg4RXh0TXg5RzxETn0ka01LM2lJJGsrTjhpcCspayZo
NnFLY21GIykzX3k/QnZxTmZVaklBCno8R0BLOEx3VUxqNjxyaChKJl5+IVE+IV9MbXhHcTxnPyF0
KmxUemBQZzBBWE13ezxSejVQKk5zXmdScyohcEZHfQp6M09mYyQoMSY7U1pLUEtve2koIVRzQk5G
NWN4ZkkqKGMpNGglUEp7KGk/VEtSc2smZURsY2pgYittLW1Bb2xHankKejtaSG1DO2hrSXNfTzU4
XyF+PyRNR1gkXzwjT21WQzReK2x8PlUoRD8rK3hDMEpWczJAOEA/cn5XTEM4X25iZ098CnpzaDtj
cXs1Yjkwdz1FJXhVViUrSzJhNDVweEUwQ0soaWh9QzZNZklDSlpAazNXfmIhbEl3ZkFWcnMmIXEk
clcrNAp6bl5aaGdPZnhTWVZaUi0rV0R8NTxLST4tajU5Z0FOVyRJZD1LRD8jLWMySSkjV3EqLTwl
WE93NSZZb1dGcGAzSzUKek0mNn07bkRRezFpUlpKWDhTKyg7NiM0bUBqbHIqb0tIR1ViT1duPWtR
RlpuNFluI0dGWXlCVUotT14+diszSWxPCnp7TzBlaEQ3fnNXY1dqMU9eJERHYihTej1uVCRNLTZp
a0BAQz1NPEdRbld6MWY1WTJxOzVkSHBFUX5kUCM+JGtiXwp6LTFsQnszTENRUjZiK0I+bnFAalc9
QCQweiE4ND1GPmlqUD8wcHA5VnJXJUkoNHpGfjJKTUZjKGxBcTY5RyMzcjAKenRZMFdkQ2pjdExE
PnohNyYoOyZeRXRiYjA2KkVRXiRKRGlYPCtNcE1vI01HSlZAPzJ1PDQxPk00cytAajVXdE9MCnpj
NzZaQz1HVypsQDVURjZJWHlRamMoNlU4bSllQTFTXmhYMChlJCZhJmFWNlUjeXp5ZzAmPnNXZ0hq
YElGdXZ4egp6SDxRdTJzNS12RUFiaENpJHYpOU9VJn5XbzgxfjZ8ZVlzaElPZjQ8RG9vKyN2ZVBU
bkJvQVZWUzRsQUYpVXJSVXwKenxEPkFze0hELXZzV0M+TV9pakZKX05mM1I5cmxqMFZZOUFWcT14
K0NhdndIUiNAczhMUGc3UjQmPlY8bmk8YXRFCno5UWAycHJmN2stYW0+UHZYOUNreGxnQ2h8XiZ6
R3kqIVoqQ1BrcjBgWSVkMmtkTWklZiQ5YSM2bFhaUF8kOTZfIwp6KnRPUX1kTSoyTUFsU3F5PnZ8
TiVRRlJpdnF2PjNAK2QhP2AkKnRCfjwhP1Q1WVA8UXhzcUhvSVghNGxrUV9yfSgKekVHOUFgeSRX
YHA+THRGMFIxUER9JTdiaExzaz4jTGV3YzIwRFd4bUZOaGo5Uy1NQXghdWFjI2tsX1VBVz4wK0hh
CnoqXlFMVz1OQWtre0lfMWx7cVUjZio2NWh7OGRCWnheZlVgS2ctR2U5M25weiVKOyFVK1BxMGgm
MSRkRHduciQyOQp6PlpZYUZGYm50Vnw5STttRXIqKHIjS1FYeCFBVDU8Iys8PVNDUjBSTnYpaUo9
Nj9NT2Zqe2JsZkB2Tnd1d3F3Z3AKeiZwIyRGQj4oKUw5NGwjR0lNTzlTYExsRkg5K2Z1WEw7KEdm
X3hvcj4yQFVnR18pfTNPbVR5WjItJVFzfS1EfGVzCnooQ3Z5SEQwTSF6XnsyOThTUTdWSD93UEE2
NHhYKWxgcE9rR1dvcUFYdH4rZkVPKG9fXm5gZG9zI2pHYSR6Nns+PAp6eFpISjQ+TCFvZUtMM2V3
R2hVaCFQUipZfUEhPTQ5JmZkTl9WPn1UK1hLO0YoPH1MciQ2UmQ4bUV3cEAxb21ZTT0KejFjbEZ3
NmtXJXNidDx1M04pfjhXITYlN01XIzAlQ282fEszfEpLKmN2MnohUExVJlVHJEMzbDlsfmpTYDdB
PmA/CnpIeT1JdVorLWFndC0kPUZjZmVGcHdaVE14O2BXSTA8M04+Kz9xaz0zWHYtTGR4d1BwOU58
WER4OCh2YGxAX0MhLQp6bTFXdlEyM356RFopKWwlLUY+YDtzIWxKdj51RjgyX1h1UUpVZnAoe3ZW
cnl5WnwrYT1ZSlBEKT9kRk10cWNaNlIKejQ2NTh3I2RCTUp3NzdjUG87MGRqWGo5cUZWWm1JMVoo
QDAxeE83djJ5fmgxdit4PHZHek1UaDcpQWxfKjt9ZkEjCnpWdHV4OHpSQEl1eWlzWjVUcz9ibnd5
Y1JrcXJQeEN6d2d5MG12QHc+NmliSF5gZHYwJGZCSU5GRzxvbHhgaDs4cAp6dW98TntDPkgoRl91
aCVlWUFJVnpWJVlrQkZ4UDQ/Pl5nb3ZaMTQxIURtOUsxKXR0NFJNTkx6PWtMWD8lKXBZMkkKellQ
e2dxNVBFPzFeTHxfTUBgWUs9QEpXPXMrbGQ0RHkqJFlsR303N2k3amxCRTxnTFlQbFhBXjk0YjMt
aTNKcT47CnpQKXY3SypzK3UjcitzSk94PyFIQ2xQN2JePGVQX3VsKSRwYmFLSjg2U14zVnsoVWZB
PEl4MlFMLT1nd15fcCVyMQp6ek9rbW9UWF5OVWB0Xik8MHxxMEhgJHVwMk9saFZYPD47SSV2WTRE
Ymg7RDNUO2ZYQSpDXmlfU19yKEAqOSV3dE8Kej9pLX5xcDxkTHhMbVJ2QlckSjxhMlVQRTNZTXxX
WF84YWNfRGUtSk8rM1UzQjJlfnVyYEolUD5yVXZDWWtBNGBpCnpfVj4jZXU/Wnx2bjN9Vn4jKGJw
ezV6Mm5EJisteXxVWEZCPmRiKiRjNmdCd2lSdUhjaXc2KXVSbE18QnklZzR2agp6aG9mMXBkJDty
MFYzP2I2ci1iJV8oMjxpVk99I2dZTSkrekArQkFLNWF5TiRPeUh2a2pgJj5oMTNRbzlSd3VKVFcK
eiold1pITVh0UGtnTFdHRlpCLX4tKlFVbHxNLU85SFZgbEBNZFhyfXpgOFQ8anpZfkNCN2BHeHst
U0tiKlEkTWR0CnowJnU9e1BLRUk0cnxnMnVmcTMpdyk3Q1hkVilEOHlQanhSWTdAWGhJbjczKGIr
bGRRMEJgNH13MjNrMV5DUyZHWQp6NER4cWBsfDZoSXgmS3tfYHszemF7VmArdSt6cm09M0krcXdz
QDhsWnhCVDNoWHF5SWc+SnVgMnhxQ2I1UlZ6QikKeiYtLVo3ekJJOW49eTRZPD8jQDhSODNlYEJa
dURoMStlRGVfQCtsJkJgR1RwJHcpVF40WVRLV2JVU2hvXzlJWX1MCnooe1NhOV8+JEthQU1RYDFN
VUcjJUNLWm1uUDhpNVlgc2o1bj5NajRCeXU1UD9TMlg/Wj1AZ3RwXzJ1Rj9OX35iRgp6P3wwY0tv
RVNNNFpgaUIpJTFtODBxTiVCPXo8K3duKWtXb1Y2Zz9zV3R7MSQ/SVp1OT4mMnM0T1dhUnFrRSs+
IT8Kejg5eyYwO3g0fDl1ZitPaWZVVSN4K3Q9SjN7cldWPWBjOTl2V0U/cVF0UHlmfGV7SSNHKVIt
WXhxdnZWWXlkYitsCnpzQGBzIT5tS1JAUUBMYVhiQyozKmNHTn5EKlNVdzkkSm1CeEFNJVQ3JShv
YVBmVCphd3EwZiRRRlJLXnowaW9wVgp6bEFHb1gkJWNBJEdxWkRobHdWbjIlUXM7TkRqSUxQbC0r
RThSc1R0dHlIPk1yY2VyPVoza1AkLUQ7K2B3eVk0UlkKem9ldmtmLXpVT09DMEVxSVc/MCsoalUk
b2dYeHl1Kk5SZkJOS0xoYWZOezFBcjl2MHR2RVVJPUJNNFVkd3NXV0hMCnpRT31qaEN3QkFFKGNi
dmk/UDA/S3JncjB4LSEhJXNyUWRvTE5xeWhTVUVQMFNpNSN6PkZqd29IVzRwO3QocmJndAp6LW1r
Qmlsd1coeF48Izx9JU0/MXhXa21OM0tRcDlYUCV0ZnttcyNUREpLMzF1YG8rbTkrY35COVItWXtN
JmJQWk4KeldaYUQxVS1qejdlemcoXnYxdD96SF9rcU9vJEpZNFltKzIlfEVrdkZgbDgwN2U3bFdE
P2o5TVFHfSk2OXVKblJtCnpybXklI2okSFFtbXxrUXFAN3FMJTFIKzVFSHl6RiNjd2YxUEQ8SmI9
K018JGQya0dQYzZeZTdOJSpFQHhabmslUwp6JX19ZDVgKUo8aj53QFJHMH1XaDFjaEp+dU90YX4h
SU8weTNiTk5PPGRFNDcwOGs+OHc1MWhvdjNKUn18YWxIc08KemsjUzkoJTBBUH5TOF5rMzxFRm11
VkFKQCtWeCNsUG51bT5jZDlpd0plbzNuP1RafG9BbCVDZ25Ib25iJC0kS1d5CnoraXF2S0x9SkNf
MUcxfENaUTwjSzBFZipGb0lZOUYlWUNkWmI8ZmMkTUo8YjQpR0FKWGN3WE9xcShWUkItU18pfQp6
TV4jPEUlYHl3ZGpCemVhWVA9X1dwMSU1PSgjT0VQQmspM2NqbWE1bmlKe2pLaFlhTlZVbDlQUi1P
MEMxKz8pK0gKeiQ8LUM9KT4wPEkmfDxqJSVpUkZjQk52JVdxVShEdnchTk52bDw8OSswQm0heWhZ
TTZycnRrPEhsMnZEfkY5X0puCnpQY04/OXViRV9ndnxXNXhQNTtxT2pLVmY4JC19cXZvVVgrbGJ0
eFNQP043KGdEbjdtKlktMThQNmhNRWhxJFRCfAp6ZGBWWlIhQlRRWEMpJmlOQkFlRG1paVg9UDxo
Z3Y3XzFrYVc9V31ONklMIU0tRClnJXN4OF5laCMpZkhVUn5Ybk8Kej1zbFREXkpUNmQmaXp7YkVr
Vn1GZDk+RXFeMD19MUojI2pXPGROTkQxSUYoTkFuI1A/amBDO0VxSDIhKWJnUGF8CnpQMGx6bHBW
VTxUZyF6TCg7cGJ0fk94bylRSShLI1RDJmZQSSRUQWJYfDV9Y29XaWk7Mj8zNT8oTGg2dG58SCha
Sgp6djlgN3VadmB5dEwhNiZtdjcyeDR6R19oUGBsNGBRVGorKUUyeGFYZT05PTBDO2ttbF5BcyEr
bG1vX3srI0tJUiYKekZNfEMjVjRBQWoqUzxYVVZUMnlFP3NPWlAqU3s5NFBGb0BNSWJQJT13a19i
a2YjYDxZLWtIJV5JeUV6Y2Z1QH4tCnpeK3xIVWhteEUxQH5NeTZ5bHdrM3RWUXspPG0mVkQ5TzRD
ciRFV3p4dztnfTJMYkVBU0dgS1NHPn5ve0M7LVU/bQp6IWo+RjF3TjNCWXRrWTx5M3s5ZilzP1JL
UmF8JjhDNzQ8NT0oU0kpWTlOcDhFVXpwSnlSezEpYXh0eGRibWNTVUUKenY1Jlg4blZRWH16cT0/
PClrXjdXd3d+SWo/eWMhSiZWMFI2SEs8R2dGOVB0VWtNQjB0ZXMwdF82eyt8UnpqZCpCCnp3JXAl
ckxGO2FeOXNjWGshR2tvbUVVQlZaUzBee2Z2S2ljUEpad340b2M4M3hOJjhQcEgjcjNnLXF1fis+
ZEl1JQp6ZkFVTnk8OFoqd29RQUp1S0BRXztTTTk0dEFLSEg/Wm0hLVYlanNmakcrQlByJXlGciY1
O3sqNzlsaXVvc2okejYKek8lPUJZKW5acyNYdX50WTB+YGowXntyP3t3STZqS05nTWtmNzxYYmZx
WiZJWjtPYk1haz05RDNzY2ltQDNjNykoCnptQElOY1VucVJtTjE0LVgzZE5LPng+Q3IpU0V1bmFn
dzAqTCRNQ2lFcS1lQUFvM3Y1M1hffWJublkpaXExJjZZeQp6V1V9S21wTn1UZU9Vc0A8JkZPYSUl
Vld2MForWE9Be041fD47ant5X2xZVkh+YEFNeC0tdXVna192diVIekx1NU4Kejl8flAhbX1eK2Zp
V3I1SE9rbX5RYCE2UChndkwyKVRMU1B2Xk19IWQoIzcqOHpmS3B2XldfM0Zoc3dtYyNJOFdgCnpL
RCZGSjZ+VHZeXytubiMoWCN8a1NOMH57NSlaS2Fza2QkNmBYei1BVGNNNTRGO35ldiYjX0c7b29E
UWhOait3ZQp6clQ4Z0ZOWUtYOGlgcyh6RFVZYkxBS257bG56USRgaSZlYSEjRW5uMD44cjsjKzIq
aSZFKmFsP1cjeVZlKE4xajwKemFqI0M+RmFPeiZyQEpwNyZPaEpkPzJJYHprTEw2M2VwdFpFezJy
ZnI+Q290MlBybE00WFE/Y1VQQ2EwfTZXTD1xCnpuYmhqdyNqd1I7Q0o/V2JjflY4THhTaCtHRXBl
Sjw7TDFjcEY1a25yZ0kxUD9lTnRhQzZ9czYmOUglcTgkQz50RAp6ak1APTNZcCZgcUZxWXZnenNL
UjVOSzM9KTExV3kxc3JTPlpFfCpWPWhQVyhoPCZ5M0NZRW5kN1FxUWg1VnhwQmkKelVSaGJWQnVA
RT9xSzApbGM/MWpWJFVPY2U2JT84SUV8bXFwUDheRiMkX1VPUCo/OVJ7cT1UUC0qZHFhSEpCYlVl
CnpNUFEwb3s7OVVvKEJYIWNON0h7flo5Tip0d1ctJVpaKlpeViUlJC1NaHUqd1N1VCFvcCk0Ykxt
eEA8RiU2Sjl3Sgp6LSlPa2tIPzNsTGY9e08wP097cUsmZ0xTdjxDKjtPJDA5R1V1eGVGdnI4YT1g
PHtYfnFoXyYqUlJXfmxAJUc8Pj0KekdSXislZDZAYjQtVSRRUz4heXRGZFV4RU9tQ3FnRnlJWGF8
SXNmTDZKSnQ0JGAoMEN1NnFYJE5nRjtPPUAlc200CnorMER2JHhabGdxWnwxI0dtU3ZPQ1NlRUkr
SEYwalZ0JVI8WHVmbyt+THB7XnVjRk1GWHhfT0pgQ3peYGJEUTYkcAp6eT9AenxvUyg1eFdWdlco
VSY1bm93d0tBWUZBOWI4QUolalFJRDhMa3s/PT9nZXkxakQ9bDJualhpQClTWXp8K2EKej1YTzd8
JS02IXVDNUl0fldfdCQ3YSt3JXItP0F7cHBwS3VlS0ExeEt6PUM3PmdKeVJkTUFFNHlAZzltd1gy
eGxXCnprR2stY0V7XiZhPj9qP2hPMEk5ZXJObT5BdV5ASE55eVpTY2tkRl9Rb3xEQlpiWSpoc2tT
UnleODJifXI9RmQwdwp6STkwbk9pYUolQ3A4RU94SyllI0B6aHx5KzYyNElrPXU5MHMlRDIlaXNr
PSFyT2YlN2BUVyZKSz08OzRpbGxLfDEKekJsVG4paXcqdmRtZmtFNTVQKjxsaiZIcGRVYU1Wam1X
S2VJRGI5YzFZe15Nej5mJjl4RX5oQnU8YFVyVEJ6SCplCnpvTGZqYGV9JSpLKHhxNjttZVdwJGQ1
KDEwaEJhUm9ZPjt5XmJeS0F1b3A9aGZIMC1BckV1NUk3Vkh7PG0oN0V4fQp6NlZXUylnWUZhNiR3
XkpnY30xNlJKNDhHQGQ3XmQ/cXVgaShOPFg7az5RaXxOK3hTcFcoSz5mNGVfbDJEaDVWV0sKeiNq
ak1peDQ1LSMhXmZEV0o2ZzBvO0BWS3w/YjY9QjhSOGVPX208bkhgdVNMQHBzd3RhTChWaj53dDs8
SFgwRXFFCnpwa0J1IVlQPmg1UEF5YDAxb2R9NEpUc1gpMEQpe3g7YGtyZUQ8c1VpbyM+WlVgVUdB
ektBO2gxb0EyZmYzdylgOQp6YzU2UkpaXns7bVolSzJJKXJsOG8zKkVMby11cU5rX19oMWBuT2hJ
NTJjQk9ybjJ1SXR2SEJ0TCstVmB9bWRIPUcKelF6ZV9UMylDMk52QU99eng3TmtILVpJa35jYVNm
P0JXPSU4OypALWFaPUopOyp+OGRfMzNCcWMmTiZEQ2pBSmIyCnptZDF2az1RT0cqe141TzVBVFFl
MWZjOTlJYmpWJExTTld7JHF0fGZoLXUrSEY7eWZMZjdBQG1tYFBedE5Hc0hkUwp6YWNvZX1LY2x8
U2hsTWp0aDJze1VJPEglfTtLbHhKQ0ZYdH0tUSFEcUdkcVhBcy1NYUFtaDBIb3V2TUs/Ym1eTVMK
elQ/K1lmT0F+Kl9JYlYxR14hRmNHQis7UzhXTlpmNCNAI31GZUxkT2t6Zj0rfFRmQ0lPU0x6fjRK
Rlh0R0JoTEsoCnpnNnA+RHJsbD0rS1lZRyhhWnVma3h+PVluPn4oa0hMR15we09AbXEpM288X0Zn
TFhSe3EmSmpmZ2tJQlNKbDlAKwp6OHQ1X2lTU3wwdl5vVWw/eU5icXsyOWIpRks5KlAoaDNXNUk8
SEN1P21TKHl+YXR9OGp0MiUzNW5+MlZ1aEA8JjUKenpCbmB6KU5Kc0BzZDFXOC1AeEZOIz9FRS1q
UFFhVjZSYksjJUZHV2QtPHAocnZ5QkliZjFhbVcqcmlVSkslZVZsCnojOHVKNTZGdUBYUFUrTEJF
NWUodVd5KDc0QERiMnxHJFpHSz4md3IweDdjQkFhV2x+aT49WXRpe2U4MkY5WlAlSQp6R2lYWX1i
PjZiS1BhMTRFNn1jI35eWFNFWD1FKnFrO0BCczJPNFNSY1pqcjNUTHlINT15dChfZEl8eUolcl9e
bm0KejI3bUsqaUR9SUkkRW0lRWdfUHk9M351NHcqbGtaTklleU5Gd04oJGY1a0xVcWBSeCtyQEJ0
SFYyZmsxVGV4OG9JCnpeTnhZPWUlNUU2b2FmJDw3VjVeVytaeWVPc2MhbTU5YGRJfEdWbWw3R29O
emwrQVY4b0pVWTVoSzc7YDdLWEdqTQp6KU1JLVM7fmM9UyVgYXhhcHBlI2kteHMkeS1nfUNzJUxW
JVVSMGgxJVlWV0lfVW1xfmdadylUSHBifFVecm4wKlEKeiZYJTRJMmpwNyFodDUzTCheSFFXSl5M
KkVkUXM4eXVTZjE0aF5BcnRrPlRhNGpoaDxMSHNuMlBOJCFVbyV4RVFtCnomcWt+PGpAPWhKKHot
XlIxS2dJeU1KKkM5TWhkXlZ1cTlHOXNDNTFsRXxMUEo+ZmU+P0hKeno8cyFoWFVhdXt7Zgp6bmE7
a2EmNWAldmRyMWsjX2gkT3hldVk2IzxUSzBsZU9Ub2RPUEBLdXpvfiFtZUZtbkY/aEF0LXs/ckEy
dVFRQD8Kei01OUN0dUlOdig5TSlFWWxsKXVOP2pFQ2kqIShFeU5VP09+KD9Ec1RYZFNtS2QlYUJa
Z2t8JjgrcT11VWFrSiV0CnpNVGA0eFcmODdHejBEX0lBaUV1WmxVJjJwZSRuJDtSUWkqc1lvKSQx
bzZVRy1tM1dgMGR2PC1rbWYmNjclanM1NAp6N3M2bGxWaTd0OCtjKSVRMlZQc1EtQ1dXN2xIJSpn
aXZAIV9aIzFzSEY2UShKQF9SMStFcndyY2khMGZecGVObGEKenh1MjdSalR7WTVmeyV3SkNYN048
NGIpPHw2KmB5aWNXejBpcWlXJXduZF5DIyVafn18Y0gheG4mZVlnbEEhT2BLCno9Mj8wN15paWBK
O0VIODZYcX47VUY+IVIxT3FBYF5PcyRYZSZkYk1YIWI8Uzc7bVJfQ3hoQCZtZzhVNTVUMztKKAp6
WFpUbEFZdCg3KVpnOWQ7aS1APT8+Z2w0LXFJKSVWRj5ISGtKRT9zfnItJShUUUdeU3lvZ2plYkNC
XnlhYztrRDcKeldATzMwS1crcW9PTmAtUzA9TjtOQD9ZRXQ1YjxqeDA5QEw/VytPbitudkRSQHw3
SWdWPChpRUV3UUR2NGR8azU8CnowOWpHfWRuM1NxXkZEeTBIVHdYYnwwbmtXUkliP3YoRTJ5fjBM
SXFyMURPNTI0KipTQXZrdzVmVyotMjxudGNGVQp6KjZhaHx7Nz4hITs5YXYxS3JyUCQtVXBEOUBf
UWVeald6b0tyMmlaQzBWd19WPjt3Mjt2ai1zTFp9dEVyZ1dyMXEKemllTWwzX3R5VS0+dUQke0Q2
a2FkbHZwZzVpaShuJm1XaHMqaEs4MVA8MGJ8c19OfDs4Pnw1RWBhNkFJTUk0KnV9CnpIbnZAb3la
TUVMI2wqeG9kOE9zME1DMWZTI1lCa2ZYe2V+RVhsWkMhPTsmQlB3ekYqKWBBPVZAI2FUQiUlS0c5
Zwp6Oy1hKHZqZj1EWHVvIUFrXngoZWtATXJPPDEhVU5oYE5kPEpZSWRPfnVidVlPKXM1TUF0fGo8
SSNjcHowYDNRUm8KeiV0TGYhZ3JETHFiflROPVh0YllPdlhPQlk8SCQ9VWtHXm94azdwUlphXiV3
fF9LVChJPl5wWnd5M1YjPEVLbSZTCnp5I0peKHI/O1daYjdXdUl6YD5ScTZfYCRAcl95KSV0azFs
ZVk8YXc0RUx8Vy0jQFEjO2krKWRCRCpLMmsmYTZyeQp6S1J5TCgoLU9RZHdkaF9OZE82P3dUYTNh
cm4qPVlHciZeLT5NbHtzaktBdmx7aTcrQ1FQMldFTVZRbGY5VG1uJG0KelV9YlZeSlI5aElqbFNl
QXhfPV5OeWd1LWdPLUpaVlNIbEwrcGBSYVR6czJNaEhITD1ZOFZLJmNvTXtyWHs0e3Z9CnpRKiFI
O2FiYHVeSGd5KHApaCZxJmRlJj9ue1JNdChRTiNHJTJtMH5AeHR8Kl5Sc35WI0MyXlA1OWpGTVI/
emI/dQp6O1l+PFY1VyUte0diX3w9YE5GT2llI3N9IXRkVj8/P3R0NkAoZENyb29oQU5CQT9YNXxJ
d0t2KTU2Pn4hZXJPY0QKenl0aih5JjdsMEN7eTZoaFJHY01tT1l5Zkp4MHRpTEFJITEpV2N0XyYl
eyY8MFZ3QzQtWmhTaGEpOTk4c3BQSzEoCnpePm5UOFM4SzhqSzRNfHA+KiUkK2tOa0xCVnhNSmBt
ZnByTTYpV3shaDF4cVlCc0U4Tl41aldwaUJQTkhwLTleawp6MTRwQ3QzSz57eHQkJlFsQUo4aXFS
STA+cUU1djhtdW89ZUVuVUJobUJeaUtPYVdqOS1kOzMkVWlVUkMrc0sld14KejgmbnQkTlRUSjM+
TmJAWjRXZjJ2JU8lQTd5WkFnYzR8e219ZVdyJGgte3Rfbl93cGp6am03KU50Rz1jZV8yMCNjCnpU
bHglcysxLWg7VkdDfSZ7QDZsUkxfS0doVCQ0Yk9OSkZRc2kqU0hYa0E5V0VfVDglYzlqQENWdmVf
UHBAOFA3bQp6dXV3I2NudDlOIXRyQV4+NXhTdSRSbmcmNHp8RDZva2pyOTU2fGx1K2c9dj1UKXJ7
Nk8/aGNoaXhvNmNrVylncyUKenVXcjcoK1JOKm0qXlZ7azdES2h9Yi1tTTYrcztpY0dkQ0loRmpR
bWV1QTchUUUkZE1GKSszM30lZU03bjsqNng1Cnp6fUVJMypvKi1hIXc/SWEpRUM3cVpaRVE+azVh
YUJDelVrYEh0dE5mRnd9eXQtKj5tezx8LVZYc3VYK2VPUi1OdAp6YXFIKDJedWZ6NCFLSj0wJVRH
RCphYWQzbnBZaiN8KHp9RGgrQn4rYHlndy0tR0NPKVZMd2szRy09blRwc1RAeDwKeiYqN0o5VDcj
cGVEaD0oJiNQY2l7JXVBajx2PlBzfm0tM1JBTiVYdkBlbmhuNCU3QzB8YGlUPm9UYWA8eCpkM0Jl
CnozWFhOenNCZ2M8O2I2cz1XOUZWVnRrJCk9Tn59VjlNMVEjRCNNU2Q1QF95cWNETCtuQig+aD0w
LXItQVRENFZyeQp6Jl5EemB7eFUyM3BqPTtKS3tDVlBibWJrc2BYdj9RV2AoYEZ0cWtafndWYUZI
cj53YypnMkZAOWR5QUpuUyY5diQKemNHWlk+Sn5ifFNTVzxrfC0pKno4QysxNHIxS3NEa2JaPE8p
NzM7MSZTYDNRU1lRKiNJLVBGSS1hT0tSS0wzYnMjCno/Z1dmcD4qSlBedT87MUFEUzVoaXVZOHdq
NjN2WjBvdiRsPT01KnN4QHIzPUswKjhkSDdhcmclV1NSc3l3c3VYQwp6SnpgWmY4V2VhS0h8bXpl
ITJHVnwtb2stSXc2fS1pJCU1dn5jNj07ZmkpPGQpekl9VyEqbHA2V3k3cVg5fEF+PyoKenl+QkFi
Pn1kejFUfmprPj9oZVd3S0w4Q3Roa0IjOGRmcSFNdTNqNm5SKHp2JTcoWlhpQVMyfH5ra0FxM1JW
YyFjCnpJaTJIZT1yJUtRI3gqcnpZQXtQcitIT2RtS0tWcnotS1lCSHN6TFpfZDZVZEZmR19tTm9g
XmtPU1VDJm5vVlNTewp6eCNDfWpOLUJNIzU2XmE0VHJmNTIlVDEmP1BPbmohPyY2VUJUclktZkx1
d0o7eEZlJXZ5QnNhWUcjcT9sLXw7TGgKekZpKU18ZCQwV0JeN2kxTmsmfHozRmFpbzgqezB+Wksl
d351KVl4JU1ScWhGdkZHOWtWMmZvSC1zQz89dnYrUG8kCnp3aSVQO2pDST97bkJTbDduSXc4JF4y
cUhmK0BeQ0tDOUliaVZfS2VZV3V0ZGsqWCR8bmsjcDQ/TmlAOWdxc0Z2Vgp6MWtLYmxaeTJZbnFX
UXduQDUqIzEtT2sjTFhvVWZHe0lQYz5UZjx5MXc3d2J2a0ImJmhUSzhDIVJXMX1ieTY8KnQKejY/
PyFWRyokMXs+LXB8a2lyY0khaXVwNVJXV1pAZC1jMHRVaUtzNykjbTcycyN+T35fbT1BcHJtcVZk
MjdJZmZNCnohX2pTWE4pPVNoa01IKzE3YnpXMipjMCtPeUYkSF8lXzdfN3ZSeVRvJnxzNml7ZjVt
PDcpMX15YCtrcTNHN2VEcQp6U3VwISoqTkR5O29QNSZqc0tLc1RBPV5ZSiozMDhLYnllQzxpR2Aq
OVc2OUdhPWx0N2NAZ19gKHA0PFpvZVMqKU4Kemx5eVJCeUlGSSE4TGNvJHBAemJwSzA5fXM/RU1s
UDdpMldoODYyR1c/ViVpLSNQPSh3b2t1IX5ZK041ak9Md1JICnpoN0VlMig3VylkP2RlbitOQXtI
JHBDOStBcF9jYkY3ZHk/MF56O2o4SWMoOUZFcWx9fCpIX3dsQXBUdUp5dSZMdQp6PVNIc2pfV0U/
Y09MYzgtUUBJajlqRDlBaFZBKDdlbiRqTTFnPTs5QkV3KEU4UklmUGhTWUR2dGVhQ198JEszSGUK
elBkTU17SHlfNnVkOFNebEtBPyU/cVRwNyU7SGojaCVVKkoyZTc2bE09eEkzSlk1TWE/Q25GcndQ
N1NsPmFeLUY3CnorZWFidD5naVNPIXdMUSUkaXVxQ0RsXnJwTHJyQCFsXyZJTF90YzEqJi1XbHxE
ejJhPnpNTXdncW4ob09MWTJBLQp6MXgqS255cWN4RG4lRV9fc199K0tKRVczdHRBMCFreV4+ZFJ3
M2pjVVhLfmk/VSMkIzJlPGVSWG8jQWxpNSpNWCEKemQrbzZ3OTsod0dKUWxxPy0/RXRac3c/ZWFY
VkFvaWRifTdwKjBLPGtkY1F4cSZFU1FjIVJCWjBYIW1oMjM+WiZzCno+UV9ETEN6PSRBaUhkayM7
RXEyeFFfWX51KT9fRlBMTiNCc0lLPVlCUn1VTU54KmgmZiZybVhgejtnSHI2REU+RAp6TjxLPyVh
PD4hcnozJkFsUjNuXlk5QSgmVjRhfSNDKmlBJUkpZytwaTRjVTgweFFATWpHYDtoWXhjOXFEPWVY
SSUKekl8fVB7cU5OOXBaTXt0fjd5Tn5LRHI0S2V7PTIjSVN9YHh+ODRhNE5OZSE4Rnt8Sj8/ZlNx
aD5eMytBTVk4SHg4CnpzX0o5TWdXKDh+dGF4ZF8hR3VBJChiT3dia3woUykpfmNOVnZNUzlUbCRY
bGhSPHE9PUpnVCllTnhwe3AjMVkjTgp6PGxaeXpQVnRiKlkhcShybkFeIX1kdnQzYHwwdEB+bTtQ
KiRidFY4bXgpV3gwUmdWNH5CekdfVDtPSUs/ZWIqOHkKenR6SytYZVlhfSRfRnxgcDhoKkQ1RGl3
USZZQ1cmbDdTP0lgKEtoWTtAYEFeNkk7VSlfd35mVTFAMWc4JkMxR3kkCno5VzI9e1dPcy05e2lv
UTRLUiVvOzs8Tzd6eUJZJEViZE14I2doUzI5aXdiZzw+c303M01wJX5AQWkxV2IpXzJuVgp6NENk
OHJQR31eQlRhPEJPeyttdj1MXmdVcGV3bmd6b3JTeU40YWBNUlBmQGtfNGJCZWRiI0xlU0M0OFVX
eFZjVygKel91RTZVOXkpSWg/MlpAWjlfQmBReWJNMUl7bzFlaWRJPD89cHtjV1NwMHhgWWQ9RChS
eUA3OGxaOCgjR19ONyttCnpUVzl5dHchMGE3ZH5QWHVZK3VQJCpecj9YOCs9Y348d1FlKTN2O2ls
WWVgPjg+d3wpeF5uRz1zIVkwJGJxYz9PNgp6cUJgYy0oTz5HbTk9S0BzUW0jb1VhRGwoaS1FYTRV
V0o7VX54OWUjODs3a0dVXn1CNXd3N2ZYQD5pd3opPFFpPXsKenc+d1QkTnwpPENzaUxOTGA9b3pJ
JCkjVWtrYUUmJWV5YGBAOTZqO3p0eDMkRyllbHJBIypAO1Q5YEwhMWVKcmJkCnpgNiVYbyNoWjtP
KT0hMWxDTDgzbEJKaFVBJWtzWGRUKX40ckRNe0xYV0gkRTAxfjJFeGwwYzNqZXhubDBpKz1mYAp6
XmRePm8ycj5mTEVJZWRmc2AkPVQ4dVFlVDw+PDktKHRDOz8pZVV5YWs0dHg8IXU8Xkd4XjlHZ3ht
Nyg+RGdOZjwKenQ9VyZYXnU/Ryp4eW5EemArUVY0Kk9vSnNjZTFSejxXSSRwcz16Vz00VVB1b3Im
VVAzNyU9ZSZxMUojU3Q2ITkwCnprbD9tSk19NHpFUUpHR3ZtQExWOG4jcV4pVksoM1EpWmNIdGxj
XntxSDhxPkheKDZ0UXc4VmNzKC0tc1Z5WGxFRAp6NnBRbHE8MSN8ODJSNDBibEhKRVV4P3E2NCFn
bGw2NWV4RD5KfEJrYj1acmZxSD48bzdRUDtjRHBZQ2pGe0FeUkEKejstMTg0cEIhaUhxfjRwbmFn
YEB5S2glNSl5RUpnRnZFK3U8MEtIN2l6P2d+dCohd0hndit7YmN4dCVZZDZEUVIjCnpeRTlXe1Jf
YV9TeFRGNDl5LT9TO0hSMHtKJDQhc049UlN1Vj0oJG9CXzlTdEdCViV5WSV6Wj1rcjUlcjNJY3N1
dgp6VmFkRHszVTBYdWVOMWM5IW5qPS0kaF4tYlEjQjtWITBJcD88RSs4Yl9tbHheaShCQDVKLTFj
UEglSTlPbkB6Uz8KelJ9PH42Xz8qfHBER0xjJkEhNlMzMkwha3xQeEFGdFA8MGgqJHV2b0Y8TGNE
czVfYVk0KGZ3ZmFFUnY0RGBLfjBBCnpCVkxaLXp8PElSMV4wKXFyYChWRT44UUdXWmh4SGE3PE9F
WFgqQH5Ca2tNLSloc1ByTVk0eEoqbyV+bWVZV2ckNgp6O3hQLUMpVSkmPkN+aUMxaT1Na3NVSE96
cnVpVEY3b31rQjZUfUlLejYyWGxkbnlTaislRVMrPFI/MiswPXZ+XlMKejdaVWZEaFBAdDU9cFV8
KGNRMnthOUJIfTJYRnNONkhsSXxVUUNYeEY+PXVmZlo8NmxiJCFVMlJBMWhlSnErPVpFCnpxKjN9
Kk9LZXh5NnpoWU1PUUk2O3dzIzclM2QqJWxDeHZ2eXdwd3ZwQFlqWW05c2hXUkZMdTtxbm16ZXx2
dX5HPApMRG1mP08kb2xeUDNlb0JrCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9yZXNvdXJjZXMvaW1hZ2UxLmpwZyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL3Jlc291cmNlcy9pbWFnZTEuanBnCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmU1NzIxZDUwZWQxN2QwMGZhNmM4MTY4NjEwNjExZjdhNTg0NzlkNjIKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDEyMjg5CnpjbWVIcmNUXlAzKkpja3hqc2xffVFLQVlHMjJlNXJOKVg5T2tl
b0JqM3xXR3AydWpYXk05Q21JM2ByMT5FSj96VQp6KC0wJn0mYWl7Jl9rTWY2LUx0I0A/cHg8bipI
Z0VpeF96SHBKdkcmUkY+KX5qVHpNPWxDaz1vPTBFaCNgMFJSYFgKejtKIXowUl58WXBwYTkkZjAw
MC1qMmF5MDZYb1FFWnVSJkxTOyMrN080azgxPD1vVVF7ZVlwVyh7bG94SjEpfjBvCnpLWjk9bD1B
Yj0qY3ooe3NNKVRUMWtlflB9OHV0V1AwaHF0JSZJUGprIUMqelM0TiExIWEpM0c1OFVlc1ZSVkJI
SAp6UFo9UFBka303SlpYUj1VYXsrWFZNKk9BJU0mP0dgQ2ZwRCtacGdoJE1gI15DV0JTPWJJM2Ip
bzBFQy18TX5HV2MKejIqUz8qO1RHWio2eWsjYjBHblVKcEdZejR7RjQ2U0ZNKjh6aThfJCY3WTVP
eUI/QUJzK0JZVVExaX5FLXstWGZuCnpZZEdkI0pRRCU+I2xabDlLQGt7I2VlT25yMFFfSFpWVnAr
KHdTekd1IUdHKnYhYnJAJl8tWjg5cFNmVX5OYko5dQp6SVRHaFR1fD93ayMtc29jaVQ0e3tMMVg7
Q2UyJlExS2pUNSk4X2J2YkN3P0FvP29gbGtLNj4/MUc1JXk3YyRXKFAKemkmSDtQe1BpUkQ7cmVl
cmRMYDM7YDJrJW5mQkctST1xQ3NPR1hDSysxTEhVVShobUx5I3tCRDNJc0B5c29mWFomCnp7cy1x
RDhaLVdBeSE3KSY8MFohYjJjUGdpNyhJazhkPXZuZk5DKnZ4KEd9fnpUbUFwZWhVV2Z4NjF+dXYw
YkxEIwp6dzxQSEgwbEhxNk9SMGJDengkdnFHJSVHPWxhaUF8MHxzPXhkfHJNcyhHOXhBTGY2WSo1
eXNFUWBxJW9TKCszVm0Kek5CK35VYjs8amNuQGY4Uks+cyZTcEQlfmRnI30kTj9AanJ1QzU9WTZy
cyhTTnROKHtqXnpwWUgtMmtBQVMkd0ZhCnpsYXIkbTduZVBwKTV6NHAqb0BQfSFIJnojJGRRWU9s
YlpfPTVxRVBtR087bXBWbFh6ZHUoQjZyK15sVjJXVXcrNwp6V3peelY7OHQqeUdQQVVqXj87ZUZj
X154emMtV1ctbmxnJXVGXklTY3ghRjB8bks+Q1R4WV5tLSEtZD5MOEdrdyMKekxnUHlfN2JDK0Bp
aiQyZjw1TEE/MX1PKWE4M1I4akExNX4+ZE4kMHxUdUFreV56WFVvbysjdCpBWUVOdUliQ0A8Cno5
Ymd0KkpjNUZQVC0qPlkyOz9yQmFUbzR4P199aDUqQjtMRiRIUE4yeEN6WTQoYUZsZXA1ZkE/aytG
bGJsUER3bAp6JmM4eWtiTnVWfXp0I1NTPXhCLUZYNWZ8JXt8b3h4O2h6Y25HcylFQ3VYOUlkbkM7
SnFPLTtEV1l8WlM8PzQ5NmYKekYzKThTPj5QIXBVfWk/PlpBeyg0IUImKjw9WUk0THlWKmt7Q297
QWV5K1BnTzdRNzRMU08ycD97VVJ3aW18Ql47Cnp8OEdjdHFaN0kke2spZU1kaHp9e2h2Pndjbmgz
JDJqamhkMG9QTXVAcT4lKnw4Z2wpWTBqfHF6e3YqNFdnaTh+OAp6JHU4bUZ3SElVZnhCUSFkZT4z
b0oyTDg+IXpadio5MU9OWUo7NkpCRkdrZiVAIXhlb3QxVE5NQUh8ME1eRGg2SW8KelphX2QlUDY2
fXNYYmt9M0ckMClTT3dBJWdnRmcwUjAybmtGO3M3PjtuXiV3ekxXM2EmOzlqMHZ4Q0o1bkcjS34p
CnoqJUEzZWBzTTVMQz0zOHNNc0l+JTtIcFU5Y3MjMjZmKzx5TzxLaTx3aVZMSXlANHo1TjBEfXwr
Q0l3eDVMNyRgbgp6NUVrZlhgOGZASjBiemhLdjlOSilAJGQ9SWdiTVVxRWVIKDh6eXhEcVU0e3dy
TFhRS09xKiFEKGNfZ3NPUmc3PkwKenA7c1prNW94JGdrfG04NHN7S0VoZDV2THljPSo/QFEmUWJ2
VlAoNUBgd2shZno1ND0hTFEpU09OejJIfUp5dWlLCnooQTBYV3R6JStwV15RMz1XZXM8N2M1IXVj
X2p2aXJ8OCtwJW80MWlzKEpgQGNAOFQwYXEtU0ppVyN7RFBtNm54UAp6UjNmVVhZbnF6Qnc2d09o
Y1hXT203I3RjI2oqTzFZJll8V1A3TUgjK3VXVzdhP0MkTCE5M0NCQz5PI002e2dRPmcKenshO2Nv
PV57bnohb2I3P1c4eiV1MCU1cGIzTWErSHkyKm8wQ1pVMzMxU015TF9+S3JiajdUZUsjQUQpQntY
dDwyCno+JkwmdyVzMCFqYnQmenF2aX56LWUqYUkoe3RFayN1NW15TCExJThQNk1XZjZPOHtlSFZf
ez9ldFQ9ZU0qZkBBTgp6KngweFA9dkJOZFhoY1lXUGs3bjZLc3kyYkBfX3tnVzh2ZHE8TlQhalV0
S09IKGVHcFU3aD9iKzgyIz0+M01LYF8KemZsO0woTzsrNTYqcnA4QF9PZm4mKklkdFNwdk9qJjxa
VFZgQ3tvNGduSSYwelRZMWBkZnVoKmRJdWJqa1lhazZACnp5XiErcygxN0l+WitfOWJaO19vO3Rk
MUAxRjFASDhfV2ozb2NWcCRZKkYxNmRkbCg7b0o/PGUxdGlLVTZlI1hJXgp6XlFzUFpudklpJmF7
Jn1RaSpQSEZPdVQqbXQ8bit1OClMWUlZWGZWJiRTYTZxSEBveX4mbGF+bWA4ZHRhdld+UG0Kent6
bE5rWXMxNFFPSlh4VmQjaysjalVfUGE3Xk50X145bDcyTVlLdktoUW0oRmpvWF9BQF5gaWk3P3Vh
SkpjY3B7Cno/Pj47ZSZpJiQpVmtmNWZ4aGFYeFZmIVNGc3BrakRmPD0qI0xITnRDVEQxX3g2KVls
fTBodjAtbENSX0xtO24/bQp6PWpxNT9nXm9lRiFobllZZXlAZlN3Zjd5WGY/d1Q/aiNaalduIWRm
NDh5fS1jVkFnfkdWYkEoLTFeR3AxLWlKZGQKenF9ZzdveW88KiFleik2SjJJV0IzQiQ8YFp6UnF5
bGpBK00kLW9heCptbnRGbVVQaSoyNGIzTGU/T1hYTlRDdktHCno4VE09ZjJENCgoK21jYUBJM2pk
RHkqZnVxPWhzcit0an57YDF+KXo2O3V2MEg2TEh9JHBsfDg2cFNvQG5NRDcwWQp6eV9VN15sQFQx
bCNec2RPeTNTTGMjN0M8eyNPO2YyaWhBWXx5V2h4VXI+cEV3M1Rscyh6ZSg0VE0qOEBkTjwqaHQK
ejRNZklIanBNMkc2e3g7U09WWWY1O2d+JjtKZH1ecT5QMStfVCMxQjIrUWs+KjRQfXRLQUs5VyFF
TGtULUwjcX1rCnpaP3tkeDJXJX0kYWQ9UXZwTil5RSRAWEFsYH5aJTM0RFFMPiZJMkRyVFN9aHxn
a0FzISt3OS1ZQDNeZmhaYXZ6TQp6T2ktKW1LdD1acUk4eVhKY3p6elVQP1VSbiF0dWljbXZ7WnV5
fDlMPHFRWntjIVEpYH1wJFpZdD93U2hzc0o9QjMKejNmcnpaeXtsST1Xb25jKXhTQCRvLUNsY2Bg
cjZFKGErRV9vaj5uPGFZfntMQ1lZb0hPJCQxPDJxQ2wofEhpPXNBCno1JndheWRffHpMT0MqZXta
MTRoamR7b0c7SkNmN1p6UnxeYFZwUFFYUjBGdjgmOVJRUXlENTFqK2x+WCpTVXRQRAp6I0N3YWJB
cHs4TVAka0FEYExVRyU5Z3B4NjVNMFZWS0dFdTI4Q2BCZ1Q/TGVpUklgIWVRej1ucjlwZDhXNipw
SmgKejFrNC03MHRTN2U8UUZjMDBkNFcjUy1KY2h1I302dykyJCR0cHwjSmg0VDtqN093bTtKM2g3
MCh1OyZeWFRqR0hRCnpVRHhWZSNHWjBTbmFuP2RFX2E7VD49dGckSUpfdkxBZnNnem1JPVAhXkhG
aV9nIzdKZDtSUnFwa0olMzVjXnB+Nwp6KTtrK1M9KUAjWVJINUM8ZEp2KUBQWDVKQm12MyszbCpC
alMzcTkjTDx8d28zISVSPzYkM24tTlU+bl9HTDZGWnwKem8kNUVuYzB5eTZ1WSVlOXRjYUpuejNu
RCgqKCV2cmdFbUs+SF91WTZKTHNAcjNYcnVtMjwjbzR1RXk0JCNqLWBlCnpTK0JTP2Q+P3BjOXRI
flYrIUdMMihHIyN8RStGVnN0XkthPnIwaX1rd1NhYXFETV5iQV8xOXg0djI7dTVLc1hAVQp6PDhl
LXJhUkU+YDRMZW10SiptfVY1OTZXc2VjQEIhIVAyJT9KJElgek5XTU1PQGFiMCNLbGFAM3BHZCZT
MD1WbVIKem5MfXRuZD1rZ1UmaH5xSjtTLUprNnstUVRTQ34renAkJSZ0dEl1WF5GRDcqQDNDWitT
Pnl6YWM+THlfSzRCPW9DCnp7NFRMSDklXkhBZWh2Rm9TY0dgeik8VCUlYjx3dD94b1lpbWpLaF4l
PH11fio5ampuZz9oJmUxazBRRig+ZHxeQwp6eDJhKmkkeTk0QjdvTTE1XjF2VTBud3k3Vm9pISNj
JklgO2xGX2w5YmFQYD9eVm52bUhVTEBaSUt4SyhreUJmUlMKekZVMkk9a30+djw9Nzh5QkRFRioz
UTx1clZ1RntBT0dvWGsxTDdUP1BHWFRBLUVWPFdfJiZpXjglKVc3d3U/Q1c5CnpsQVJKfiV0STU+
SURQWVJDdUhuQT0+IWxwcl59NyFuKzQ4O2JGRiNYa0ZWYE9ib25PNmdMfHtZJVorYmhPZ3VFRQp6
eWR9flkrcS1iT0JJezZLO29KeWlVODdoa1NzRGtnOHI9MVlRdUI5dktKT2FsREpfPk4yJXNWbz8l
TE8+KnZ+KGsKelVJQk44X3w+KzF0SjZNY0tsZEUpZURyRjtBJEhBWVclOCorU0hqdT50cFh9YUtM
UGppbCh5bl5Ga04tOz91WHx9Cnp5ZiliOGFYRil7SzlkO0xCdj1JRkNAKEpgIUoxXmJMMCkwZ1JC
IV9vKXFhYklUPjBJRkJlP1lFUz8heSk7aUItPwp6M0g7Xmsrc0xyOyg2MmpOV2Nrd0JXbF44WE1W
ViRRLW8+QFhFYDJxI1R3YFg9XjBxYTNuWDsyYFZrTFhONDVrNGUKemwmJCFqPV57R311PFlLU2xX
RTZPJE9iKWV7SGk2WWdmcGwkOVBWSn5JWHZsR01GOzRUd0FPPElae0IlI3p9OFElCno1fm4+b18o
cjBHQWs8fV5WeD9LVUNtSDRyQCg1U1RXYzJsTzkxbTxhOEszYTc+Y29CeWxNfTk/S21YKnBgPnxL
dgp6PnRXQnRKczduN183Y3dFaVJ3fFFrSF9AKyojKXEtK3lrUCYjYjlVd2hiSkM7czZRdGBvTmRX
aitSJW53XmRHY3UKenJvbCFNQVdWaWQ4I01Hd1lIaEJCdU9HX2pvKCglN0tZMHE7JkUzYEhrUiNl
IzNBQGtKUUdMalNWNTdDczVPSjckCno9MztBJmMlYjslVG48fShEWFJVOSpDMClPUj5UO1l5RGN4
QSNeUmNgfDBkI2JeJXpnMk9yZSlkI3BCPXRZSWo1MQp6OzFga30kODxedG5WIUJqVGpWV2l1UGxf
VTkpdHZPI0dhSF5xcTR4PkZgc2IwWT84e3trPH1zRV5wNmlfX0RwcVoKekYlcUxfWW09T15kekdf
bUcwMH1aeHZTUUNlfC0pNUV5aEhqbV5ZTWlwSzNZeXlrYUtfKGVnPUtXTXJZZEdWVU80Cnp5T2V3
TjhNbWpOTWZeMkE/aG91aDN2K3VeQEMkZ0BrfWZ9bDw2QyEqWnZXeV9tKzB6VShhOUtUMCEtTTw/
SVkrNQp6a0ZmMXFQWj5MbTFIYlNIUSVPK3FxYXItQHpuIWF5Uj9OdlpGRFJ0RlY0TFI4dyVJYWhq
PURGPmw4blFFVmBWWjEKektHd3ByZU15VjJHWjB5c1pPVCluNk1vbiQ4Pkx0cl5TSH4qQ2g0U1Mr
PDZSc3NBPDt3bm9rfVAqcWY7JXc7PEZtCnpeKD1NNW9mMDQoJm5LSW5Caz95aTQjfDYlVyhwZTlG
cUQ/YlZ0O2JqKXgySlQ4b0UwI0JVTXAxTHokY2k0d1YtNQp6KEJmP31ObHB3aVA8OCpGbzBWbk97
UjcjRXIyYUJTbSZqXnRASExjWWhlejxWKlE0cHZBXiooblp4WihjRmd7SV8KelBAMjtvXiQ0OGlf
dTFgemY9SkApa0JpTXZmKj4wbSViKVhNKF8/KDkjZmtaT248bXRST0NgRkNyUytsYGpwPHA9Cno/
aW45QFVwViY/VGpeNzhhbkAja3VXVD9ZX002WXFoO3IkfVIrUmhye2xgO1kpNFU3NzYoSzJQYXk7
RG9ifFphSQp6TTVVbWNLfU8wR2d+dWpIPnE+fjw3Mk5zfTs9NyV9eGA8aiQmZmhIPitSam0wUUNe
JkM+bzgkRUE3eHFlIXV1ZzEKeih5Z1d3WkRCcGVjd042KjFTTygxNVclKzVSVkxXY2x3YUg8ZGJu
Jkw+VWt5ak5UPWd3el4yTHAoYGB6Qyg1V2EqCnoqPkhZJFg9QXNqKlg/ej5jNXBpUkdVViptKD9u
Qm5SbXQyN3lxXjBRUzBmUGh3e1phU1QzUmZAcit+WGlGeks+Qgp6ZnREemRmOW5rUHo0PnI/Kllw
bmh3UjR7e1lpez1tKldgNCNEVkwrbkMrZ3t3XiRXbiRYRD4mVjxsQF81elpsRE0KekhISEd+QXtu
dmQjKnFZRHJJS35CYztHUHpkJn5oTE9tK1ckNjdHMkRDbUR+P256TXhabi1VIUxgcEYwdGoqS1Yk
CnpVcXhEUnZVdGIwS2VESTF4QiN4S280c2MzJEoxU3V4cUU7T2pTNVk1U350aVhtYGp3KFo2OERH
Xn5TX0xkYnU9SQp6bWhwMSNkVnNpI0g8SX5ybHs1PCFBd28hOFFDaVIyJDBvVURVSE9JZXs8Uihu
SFgzQVBfbTdtOyphTERZPVR3OC0KeipVR2VNMGNSRklhaWFPfXRBNXk1bGh3JjY0KSU4dSZCQD1S
WUZ0OENrSHVZT3YzR1d2NDVsWUNUPnFOVXp3NHk0CnpBSjEtMXU8OTsjQTlCPThMKmp1VEYwa0xx
bXgwPXBiYVpHKGxaV3psZGx2STBzWnRmKnV6QnxDK0lLM0RUNislKwp6QyE0UzFuTSZBKEpTQDty
YUBgMmdLbz8oI1h0YD5mYWRlTTJ4N2pBTEY5e2pIX2JNKXAzQ0AoJE93WGY1IV4jXlAKektYWSle
WndER3V7SU9vPWpTTlNsOTY8VmMySDhvSFhWYXZ6Rm0we0duOXtLUytMJCpLeEEmd1heOCYhcmRk
b25fCnpKWT5GfEljQk98UWJpaDM3MWNCMFFhRXd7c3YmY25rbnNoZXdXWW9tcjlpSiphUkl6cnF0
KT1OOUJzeV5iM00oJgp6RTFaQVYlOFdBfjk1fSgjV2NvdXI0MChqP3V8aFNGLTY3UUY2bHN8Qk5l
X0VSK0R4Q2JwRk12MVh6UGsqPXhTJXAKejFLdmU8USRyVXA/YXJ9PSROXmBycU17V20pVz52QFp9
dEFRYTxNUTQkIUdCQjFvaWx1NCNIUkQhRUA8Ukl6eEFfCnpYJlZoemZDTkxuO3RwST5nQCgoRG1i
SkxpNz8yamR6NGpjcGVUPzk3QnUlNk1OXz9aQT5rSHo5YUNwLU0lRGZHcAp6PzxeJiRRfHltSWBz
eGxyazJFYUgzdFZoeWh8VEVUJVN1YkNRZEhmR0hkIU9HdDtUejlINDhUYGB8OD17JDM9aWAKekFN
Sm94a1N7fV8laVUxQDh8RjdlLWBDaHB5ZFNaZlhsQzA7Kn1WVkJJa3EoYURraXNERTNJM3s4VCZ2
d29zTHxhCnpKV1dPVlpRKVAtZCZvdXNSWigpNDd6M0VAUX4tTSRDNW5uSiNzN0pnTns9dVp1S2xZ
TXR1VzZVWnkwYGY1O010OAp6Wk87YUQ0MTlWe2lIe0FiQ0hMMnhLK2JELSVSSG1LenYkKEhDMm1C
JCFINk94bU5nM1hTbylTIU9oX2xxZWViMDIKemlmPU4+bFRDWUlLbGZAXy02LUBfPzUmSylfU0JO
c3lMYytsZCZ8dnBXVyU/VmxhITxIREtZbzBFN3hjNDtVM2tsCnppLUl6Pz9Kal8mQFZyRj0taXZ8
Yj5tMkV6WVNYVWpsYG5nfXlFJnNLYmdEQmslZUQ0VFp5WlVBaGFAeGtHM15JRQp6bGxTWlcpWl9A
LUhMI3Z+aU9TZi16fmdmeUVIJjRCWXQkSzxDaj5YcDdLeCtCTT4tV1BkVHpIRXVAT3wkJU49bkMK
ek5TaShMT01BVnF5WHs0IWBKN3JWJCNlVn02X2pkPmtSM1Z3X1EjMSY9cklIbDJoVyg2cGJTam1v
Um9xbV5YP1lCCnpeWDVCTCllRF9sOUhuRXVNSkkrcjQkeigxUD8tci0rYHEwVTlyNUx4R2U9Vllj
VUxpcjl9Q0x7OypTUk9HYDc+JAp6Q0Nqe312UWJhdGQ8ZzRFY15IKzVtVE9aTVopKjl8anRvJjd5
Z2VzT0J3XkRxYkgmSDZLYHBYWEtDKXs+XiVDa1MKei1RbW5QNFdmUjlKM3ZeJVImPlBRIU5LcExH
YGNPbkEoV3t9QGB4Iy0+aFN1SEYtS1FSZVZ6N2AzOHxaT0NLUm8zCnpCO2BrfnYtZWBPb3ZgQUd5
bF5kYyoybThZN2VCcGwzek14al9adlBRKjJ+NWttZV92VE9JdVlTdGZ4N3chUENPdwp6OSgzbUw3
MXZPX2J+UnppO1khQDZHWENJe3lCflRKaVlAQE5PPkI5LSRWVF5eWEp5aTwqWSZ8UE9GdDtPbH0+
SkgKenpZNGojSF98Um1fcEYxeWRtNGU8RWgtXnVMVWN+NEB5ZFE/bEk4eDA8S2Z5Pi1UMnc0YjQ/
IzQzVnJzdGUxU1F8CnpnZ34mTSpUMnhtT3decGVKR3NiTVBSc1pqZDlkJkpmT3d7KDd8VTZMaHwt
N1VJSVU3U0o3PGQyb2lEfGV4UGEtcgp6KjBOUWlxfnImYGpudHx+SiRTVDQ/dVp1b29QdHhMSWpX
MyE2UEhwKWtORkswSyUoUTZyPUh9dEUwP1pRc1BZbkYKenZVNERoRis1RGs5QTRYNnJNV0B1ailT
MG9KbUR3ZjktKG5oMkM9fVJnbVdeb2AlJHpYdn5aZzRFbUFpNTRoRy1sCnpGUiY3aEJXI2dwJUkj
JjNSQWs+PjV0JngrVXBEdmokWD5WYk11X2JtbiZDdnY1PCQyTlk5NSNkNXw8VlZNI3lBKAp6ejte
TTBCV09qdXc5Z0hjQyVONUtHMEphY2txVktOYWp1aWg3R1IxfDIxRCkjSz04VkxEc3RmK1Z4N0hI
LXZaZlIKemxOSDdNVTB9Ji1AXkdMbm00Um5UeFNBQDxAM1MyeyFqV3hwI1kkRlZxOC1GQUxxMSQo
PiFqPGJZcDwhJnQ1LWkmCnp7K3tYbGB2bzgjIVgoYiNxYTcreztOakFDMG9XKEtsKTR4XjU8WVF3
OUIofU4rYExtY3Mmdk5HNU9zUUBgUmUqYAp6RGZ4fHdYWnxZSCZ3NDFBJExUNnxxN0VIMiVVTUZ8
aWleVl5lKGkqPEppb09Sd1crfjBVfmVwQHhnN2Iob1ZffjkKejE5cGBWeHVWaldrblBVMkZpcmZa
YiprXiFPXiZjcCZvcGN2IyNARVQjKSNHUWk2SkMmQy1GbiNyYUtJVjZgbEpWCnorQHFlPHBPQyY7
UXlXTVglQFpsTDZFKk8qaFgyZ3Z4Kk9CcjJFdWxQYVlzektJYmtfRmBJfTMwTD5JQDAoJGJlPQp6
Wns8OTRSNFFKQTdLPDNAWVRaXiheSlhsPm9+PUtQKklJYmdXRiNYVGhEMEpPSm9sfiNvbDNzTW9g
LU5jYG56SiQKej55STRkK259YU44SU5FaG9Zfj1GI1BUTHRARS1QUl5DS0B5bn0pUCNuNjFhNit+
KHIqJjlROWQkR1dsc1NyNUQwCnpQWCN1JDc+QXZvSkNeIWJ0PjcpN0VhSUdHbVVvTFZELVBje3JM
dUh+cn1WJnJqaVczPmwlOUEqNFZSbTJUPnVkZwp6Y1oySi1aYFNxbHgmZ3Nod0Qtdm13Sj11flJD
NWM4PHxVaVZxcyNTM2Q9T2o2ej1CY1pBZFErM25CdTVBRCU5MkkKenZ5Q3k9K2JRbWZUVXFEcXVS
Xik9NzlxNUZCOFVNUnQhfnNEVF9VcjNZfTBOeTxaSVFEN3JhO0VpSV9sZlJaPHpSCnpebWAhZXhn
b3ZFcTJeUkNWPWc9MmB4NW5xX355eHdIN142SnQrRnF9PEF9X3ByZn5jYEdua0MkJHIlPTBPemcx
Ugp6d2F9OD4+Yn1icnNrXmdIUzAkVFdNVjcjYjtYMU1ENzlyantZeFA+aEN0P1A1IzZvQjY/RTFz
eTwwRSE8MUBAXmAKek5zR2MxdFg7UVNnYG0yeXJVbGlRU3VAVDZpKCNIbi0yJn02IytvajN5PH10
MF9WS0QtIzR3YFZpY0MzNmQyTDdVCnpQSEwjY1hBWXNvcz9VV1kxelZlSDtZRG0raTZvRUxQSCZT
ZDxTekhNLUNee35tQ3E7JXBxM3wmVWxPWS1lMHZ6TAp6KG1aTW5ZYk5QZEp0I1Qwbj59JVVgRk1j
d2g9c3N7RVc9e0hSVCtqYF9+eEJnJVMyWilma24+Mk0+e151aXBybygKeiM/UVdiTFhQUlgxdXNV
fnRLYTM1a3VSY3I0ZE5CfUhqWSF8Nm0pTDZQYE8tZEIkTkBaIWRYMlBKWFdqVXFKfSo8CnpuSG8l
a2BkdHNsO2Z3YndYYUApQHBQeld5VD5FR0BYbGdDO3QtQlVoczhTMCQ9UXJzVi18MjdZTUpjeXgx
YnFGVAp6PWRKJDhWZVd1fUR7N1BlWSk3ezVWclZhQDBvUDN2SHMkU34qe1MhIXtOOEdGKmJgMEJy
S1NyMkctPkJ2JDhTc24KeitGX2d0aEt8KWlOWEUxdGolMGM5RCE7eX03dW1iO2RaUEtUQjtvdG8x
ej1mKHFmakJHcFVUWW5MfEJIbHg1RGMjCnoyUWswdWwzY1FgYFh2OVkmTCNDfXVvJClDZVRCNEF5
WFk4b2h1WT1mckErdk5jdittVWc8a0JjN3hCflR2RERZMQp6KWljNEdYRE99STc8dndeMSV3cz8x
V1pOJjRXand4VTMwRmwzaW0oUTlKX34kRWpfOWxGRExQaTJ+akYmKXdEYGIKenQyeE1Vcnw0WlBu
KGRmTjVWb2A1PShhYzIqNSVKSnJsQ3QmenJER3ZgfUcxU0hKb04/c2pyWGRlMGxgIWgpaHEoCnpl
dGV2YVlea0I+KlFee2BHc3E+M2Rwdno+VyteJFFqNHQxWkg/TFdRbkRXJXU2d31hfD9JZTl3allJ
enFOc09ncwp6YntENTxaLTlNKzhMamJrKkMwKHFeSnx7VWlDfStKbjR9VmRxTzwjaT1kaDxRenpN
UCpjJX1GV0MzYDNfMVpRXkgKekFZRjJDQF9lXntvZnNIcmd7fmZKTTkwVnd3aDljekwlIWltYzsj
dkdVUCpKIWptJWYrKytYb0ZuRCp7WDdWJitPCnpHT0FYTnxKMCZ1VnF7R2JjZGswOTtUMFchZ19p
YSVkblVEWnZsSWImSUluTTt3X2slIVRAfldXRz48OHJNS2BqSwp6I3lvPW5QZklWTndCeUFJaWtg
fl5pQ0I+UXFSfUFJZkg2TilVWVUmd1g9X2ZRWGtqS3o7QHBJakYwemV8Oz9yMHgKenAlQzdXJXBf
KEQpVDlTZEghfFA3bjA/IzZCNiRJUF9KU0xmV2VzLV40YSp2YWkrX2RSSTJ9RGBAaWFQNyV1MkM+
CnomI3ViTDZJZkVGXlJAQD1Ub0k8eGR9cGhtUSZwOHc8RjlXJG5FYWxldiFiZ2Y9IVdBfWxPX0Va
IUs3PG1NfS01awp6YnZgeSoobX5lazheelpCUmlobnVneXxnJmJhcTxhOGArKk13eEtfc29aNV9k
PDRNc1RnelEkMGFkKDVNQzwjTmUKekwlblFQY3I/cmlkNmh+fiR7Q3lBeTw/eDxDWTdjSWM/RXJQ
U3MhbmMqZSYyNzZJMW16eWxQVSZgJm4jQTE3dTc8Cno5dF5IN2QwV1pNLVhuVnlLbSF3OypKPjhy
O1ReVUFsQ2VSdk0tYThRcEgqaCk4JSYjO09BRDg0KmhuTjY2bl80awp6LWF7WFUqXzdfVmBNTlFH
UDd+OHcjXmRmQzQtRGJzOW1SM0J5bU4mSThjZEdPIWgjeUIhRGwzZzFFPXw2OHxYaDcKekAzekNm
NWsyfmc7WHsxTzMmMDczQlpNSEJENHMyKUlne3RaaCg4NkwpYmA4NzhFXmhZdEROYXAtelB9K3M3
NVBkCnpPNWVTPGdAaCEyRlZpRDY+WFchWXZIbHpBR2RrVTI4XnRqbEg2KVhIXk1oVjVjIWpkKzZK
M0IwUz95fmpGMzsydwp6e0RSX35QMnsxcXZzSHxeelhUSUohKHk9KWo8aFZLYncxTmdZQkY8NyNo
JTFCM0NybkdAK2h4b2BFPmhATGl3d0MKemR3YTBxRiRUTGtzPD91VXE3Ui1QXys7YSpHa2RNRkFE
JF9+QEZWR21AT2pnbjxaJkFwbEl1NDYtZilScmVKUFF1CnpOaygwbyM2OE84eDchMG4/OFVNMld+
TiQ7MHdjTCVEQjF3cXk8RjdSKXJZU21TUnhMTEE5LT9hWDR7TTJ2NitMNgp6NElGJEY7NHNfbSta
JVV5cXQ2QFFhSD8yQGQyM2I9TDBIe09FM3ZNcG42bE5AUihaeWMrbDFYb2JyVU8kbDR8YEoKenU4
KVY3T3AlM1chbDRwTnNoN0lXVjNNTUg5dnlEdTtUY2xHRFFJPWllO2ZocXZXYjNEbDJ9ejNYaklT
cWskKiF5CnptWFVuSE1zNE5we3Ika0xrNTlmZFhaQT84KXlZTHEyQV5BTzdseVgmI304fVdiPGIj
QitoIU1QZmZsRT5GPDg5RAp6bldgNSh8QXVnSjNGJnhiRUhNRXZ4WURtMyk1VnhNMyhNJVhGcVlu
OFVmLWp3WndOOHx6T2IhbjhEfktIYiU3PUEKeksodUlgSiopayNlZmolVTd+Vn4/aG1QcTh1YGA8
YHBJYCVXNG98T3FzezxoP1NXYkVRREJIV2JlMmVWaXg/Qmd3Cno/VXglOSlrTmQkdCZUUVZkYXNz
RTslMjs2RWo/e3toRDZaZjkoPVV3WWFCPV4mISZjKUJVbCNgTih5S2lRd1RwLQp6QHt8e00mVW8y
O19aZ2lWSFEpTnNuYX0hdDlUTGd3UyVwKWB6VVh8QDE0QyVHR1dnNzltMU5ZSzxiSTEjNm9xP1QK
emhgNyh4aylzPjlsR3daQVk1OXMjKSZMfEVad0t4cUVAN21ia3l0VlZaKiNFS0BWQ09YamlgPmhu
SXlxJWw2QGtPCnpWPzM2Sj9jP1QjcilGbztnd2Q4I3lKfHAoK043PH5yNUpqNSRGOVI2az1MJkVg
Ui1BfTw5Rz5SRGFUayRBTkB3TAp6dGdAQEQmUTFuUk1qXiNSPFB6O3JCMEZJXlp8PlVhXjx+R2Jf
aFFuVzR0U1FGZUt9cGUwSnY9bi1GcD9gaWohT2kKeiVvamt0YDA+eStRfkM/ITRCSl9waCZWVVkh
T1BXNzxjWXtqWGg3Uml0NCY8KFNxJTk0YjJ8bFE8dGZYTShLeE9GCno1dllPZmsyYT02TC01Jn1o
Z3V8MFZ6UjdtZ3IzK21TeUJ6fStyJDt2YzFLRHdHTmx5cENlMD9TU3BRa345YTY0TQp6U24zang8
Pj1PQ2glO1F3QzJuNEhnUUsocSVmRWNUdWQzPE0lYHhhV0g5WDI3KTdFNjdnei12P3RIYX5+ZVNr
OzIKelN7SVc9TjVmYDFtI1hsWVAybkQhbEJWQFVaanF+fHg3eVN4WGxvJj1NPl8wdzgyKSFQSTBZ
c1EwSzkzQ3tPfSlmCnp0QG4mamNFc21XaT0waXY5fD9HOWojMmE+LWk9WmkoOC1zPzF+a0YmdT8h
bndtM1NWU1ZDdExrdTcoa3ooUm11Vgp6SHh5Kk5VITc+fk1UJTNKe2tZZCljYW9uM0lpZk1GekUp
NW5PYD9qVT5lWDxnQyN3MVN7Jj1pQmQtK3R4b3dMTVUKeihOXn4hbnwoaDg5UWd6aChXSUM1VVBy
Tnt3TT5GSXB8OXc1STsoIVR6VUN+QXdBM1ZnSXdLZzZNZUhiPVUhV2UlCnprbTxUKVNJRXlpNj9r
ZUkrdk42Y3lpU1h1ak07V1RydT5EPjEyOzxnNUdsR09JRFJSTHJ7ZVFOPlN8KlRDKUN5JQp6YCMk
VUh0anZvZFNDSnt8ZmczWFB5bDJyQ1M9Z2QycmgxO0Zod2Q9WCUpVzF3X2M0TzJGbGpXU3gxaG85
PyM/dU0KempTXmdTci0yRlZ3R088NVRRVUpHdkJyNVBqP0BoWHdQUldSTG15dFIkWE1ZfF5nSSll
Z1ltNCQ8UXlZYzZ0aG8rCnorJVYqPVNab0JadzFCeXJpTHg3JSZPZG9POWhPTyNfVjJBTGM3QU9n
LVhET3BIb0JTT1A+U3QrcFZ7SWApSE85eQp6Ulc0RShlY0pBNCs/fE0jemEyfDN4T0tYXj9sWT02
Vm1He3B0RCZqY0IrR2hFbjtseTVXMUM2XkF4VGwoKX1gMHQKek8wKHF+SSZfUzhhIVpDVmZ3OyZg
aHB9fkBJZGM2ZFIkfGNiRWYwQmd1Q09oTzg+ZEZlektDYmkkV2M1clc9KUNUCnpofVdNTTh7KUZH
Y3B5Rz9jODR+YnBnTDVnaSp8QkheTkx+a0RURyExXiVCS1N0WlArRjRVdDYwTmk4Ji1zJXJJZwp6
ZDZjY19menMza3UmUG9Fckl6SXd5P0pqQmVFZTxxWmVrXkYzbyF7YTZvb0B3VkBofGwmb3xNcjNj
VWNsRjJEVEYKekBZMTtmK2ctfmVffSlXJXVeK3lZVD1YNWQ5YistKXRTVy11QzhmenVDWjxDKmwj
NGwxISUzS3Z0MClXfFdeTjBjCno+VFlhMjVEbUJoQEBpfWMySW5vYGdZQ1VZczZDPlZIN2cxMkFC
O2RfKj5jMVUmTVAhSEBIRS0qclRmfCY7Kzhjdgp6IyhuR2pyRj1KbC0yeFArVSt3Y3kwODI0JV4r
a2k0bm9LeWFVd3ZqQTA/e3o1b2JAPThmYVhXR2k9el81P3opbHwKem8xWkNgMmhLfE5feXNWZUxs
dEY8QH1KNj5TLTFDc3A3Wm1YQikkJmtgUW0+KVQtY31mYyN0Nis4fSFJP3JwUlM0CnpTSXV4aik/
e1o1XnhtR3hkVmEhfHQrPzwwSjw+aVNqWmx3RHBCbUJKNzdhSGxrPDszRytySVoydWx1c1dpJG8o
Tgp6OSZrZns0d28wYXVfJi1XIUEjXn00NHR7eiRffmQzPjh6KGojaUohWSUyazRHcFMlVSNCMn1S
SSlAciN9M0ZwUz8Kelh9OVo4MzxvWFZofD5wMjEpbDhyVUZCRk9tfSY5dnYxQVJiUG8zKXtHSFc4
RFl1JSUrOEw8Z1Z1cip7bCZrUks7Cnp4Sz1JRExwejg5SU5DcC1xQ1d+d1VSZiZlanl+X2MpO2l2
WkotaHotTUR4UUoqYFZlc2ROJmBCMkw4RHk0KHt1WQp6bV5uVCpzTU1tTjZraT0lTz99fG9sWTg0
YjBncDdMcW5OfnwmLTEzUVhBPEYhYXFKKD9IeCtTIWdIYUM1Xkx4M24KendfQ1kmP0o9Rih2WXg5
Tz9Fe1dEUkdRLWxkOXZIOzg8QE5faFdwKWFfTjtIVDJ8fXZqMmNlUWVUdHlEcTF6YTI/CnpfS0xG
dVkxeTdfX185NHB3K0hNUEBGNVVLYVd6IzhLYTIoMFRPYHo8RU8oU1hzMzIlUytYeDBQJWsyd2Je
aTJHQwpMRkozcTJWKVRDaVNQJG52CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhbnZhcy9yZXNvdXJjZXMvaW1hZ2UyLmpwZyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvY2FudmFzL3Jlc291cmNlcy9pbWFnZTIuanBnCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjkyMDAxMmVlMTExOTMzODEwMTY0NjkxZWU4YzI4ZjIzNmMxZDhkN2IKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDQ4MDEKemNtYlZOY3w0U0JgK3NJKDVRZF9MWDYmKysjQEtnfl59R21LNTwy
IVpqTlBhdDZeU3ErOUVQJSNZPkJ+eWp0WWFxCnppODNOdl9LX2BIaFlyNi1tVUkzJWZCZkZ9cDNu
N00tfWAjTF93YClnZHo8YVA/R2I+KE5ZNzlZZkl0OE0weygjUQp6UTVhUD4lK24xM2pFdzxGMDA1
Vyg3Nj1sNmZgfVFrK1lwWVFTUkJOT2tpITVCXmJtaiVlRERHY0tRUkUqSyNte2EKei15ITBBOTU0
ZSE9STI8RDROeEp0cE9fMjg5V2tCJmR+ZlYldG1yPDU4RzxwdSplfVIwenxZNEtJQlJaZGMtQlMk
CnpoZn1+fHV+LT41SCNhNUZnR2s7KiQ8ZlViPnh7KkBWc1EjUGN+MCZvK3gwa1VvVXt5cCFeKzYw
VjNrI0hAJlkpbAp6aW1iQVY5MVp9KVplO0VrM2F6PTNlU20rRDc1Y21BU2d+Q1UhMm0hSzAzZzhK
YTRaZ29PQGkkVWZLcnAtMlk0VkUKenZkZSkmVjMxXyFMQ3lzdDFZcF4lMyVYQUhKSEFiWD9aO3NW
QkshYSZpNDZOPVZhSkchMmJpQ1RfYDViRCg7bnNvCnowMyExcTxeVkN2MGJoKUdgKTU3aXdfJkdx
X3ZARnpWc2p5VGR+bmZvcTVHMiM8bVNRLWFRWStlZ0ZNUVFqX3ZXbQp6aDBOUXsxS0M7cXlqe0lK
OHdrayVONnZpYzkpQmtlYHYtO308a1plKipvJlY0SWdKMHt7Nmt+QHpRJnpBYHg8dkoKeiVSbCg2
ZWA1ZlU7fDVAQ0RqPGEmRz1fZyRgRzFSbi0yRns+Nn5xRmRVRTE/ViZ9KUlWKHteTzskTV5iPkJA
bm8xCnpUaiZfPj57dFFOY0p8Nm9DZz8hVjBOVHowZnx+NX5jaD9AQUkjPik/XzBQRVZQSkRNPmNI
JWh6fEdeeTlmTnctVwp6K3hhZVAqS14obnkkZmlCLVRwcTh0ejw2X0lzbWRnME8kWnJqRW8zSTF8
fGRvIU9ZQ1chcGc8UWRndUA8JiozOVQKekUofFh9QUJHbz03NyZwWjZBKEhuajdFenFOfVI7WCRq
UW1eaXoleHM7bmJ2TTwjMFBtQWs1Nm50Y09AcFktfWk7CnpBWCpValUkXlo+ZlJoUEcyWGJLJEFw
cHQ9ZnBKMiVuP1EqR2dhUHVpP2JOJXxBVyNeYmZmMiNQJXlJfU1raW5ZPAp6MClzKX1GYWAhVnhI
T1FmO0NsZWgkIzdVdU13e2A3bklsMzcmeE1PaGUjaih6cnM1VTFgVElvP1MqTCYtJXEmTmIKenA/
RypqUGwkPDJOWHA0OENATHdkPSR6SG4oPkV8UXZOJiZQV28+aTgqNGYzPyZFM1AoRD07V0hCczQ2
WDVQa0YzCno/VT5qKmFtMUFTc2M4Pz1HY3E2TDxyZnFfZXAyLUdkMVYjM3h+NykkO2BOKVI8YCF5
ZVRZR29VaG1YQ3F6RUF6NQp6VSZoOEtDYTAhbj11NiswUzYwezd6eUc8aHFZRkYoeVJ5TE56dnwp
eWJ3U345NyN5KnEzanooQDV6WXhgNVJfcCYKenRaanlIIzIqcERNS04pbU5xJClJaWRrNkplMzlF
Sjs2Mk14NXhHJihyNSROTW1IcSNPLVQwckI5U0hrZFMza2ZDCnoxMi1gemoxJGxWPSg0fFBqb297
aGt3PUNqOUk5Izs0RH4kWTlxdmFFJSp8N0BxV2h5N1RPPTQlKWYycktWYjdwUgp6aTNIN1RqR2pS
dTZpVUc3KnhIUzcmYntJYW4hRzM1ZUh9VDxTSCskK0M2e2xlNiY8SkM+Q3EqM08lNT5vcXVjRGUK
ejF4SjFHb0wydEtGYTdCKXV3a3dTPHc3YTk+cktvM2xeaEVOKHZkMkBWUjwzIWw0KklFSWI4d0FS
KmtCUlQhZWRuCnpsdlpCTmxZSG5fUnBeJSNqcjtESUEqY291Uyo8dyhlU0NOSFhaSil+eE4zcG0j
YH1kSVB0LURqR1hefGRffSZ9Vwp6ZURBWVUzWllacWEra1dVZVErTyZVbU5NKzIlaTEzZDtMcEZj
fTtLcHozaUUmc1hJbVhETyhMdTh5fDg4anhCTCgKemRWSlBMJD9HMT0rTyUqKDJUaFIpPTtXX341
PU42JSpNeHQhYF9VVDdAfCt9RypKOyFlJHVpfF49UHM1PighZDF7CnoyeTwoK0FNMztELUhRIU5i
TD9nSyFEZ2dwQilnVG5iJUp0KjZqTEI9WGZgKkxeREcrYUB4SiU7b2x+dE1PPn1qLQp6PHI0UUBO
U2NkU2Y5O29YZTk4QHBsSkEoWHFBKEJhVEZMd3wrdmgkYGJgaGp1K2laQyR5LVRaWXN+ekVeWmc3
cTsKenhkZyNaY0dJelFpKkc0aiNxUms5cEhDe0tEb3lMS2dsNUkkbThtV31JUVN+V3lHRzM+ZDBk
PTFQa2RnRE0wTDA9CnomWmA/KVEwVXJKbjZPNjFWfFRRNUR4MV4xOGt9U1d0amp4SUY/QDExbSR+
TXVtI0EpOUwxMiMjKG50fWlLSEdWdQp6eHJQb0FIQzQ7WnhaKVNxO0ZSeno7KlROJlh+Tk5+Z2c/
fUFyb0ZYaW1zJj4pWU5pU2lALUFXWUs4YXpOSjM2Wk8Kekw4WUBRUFFPZkNqVjRYUF4kZElYJHle
Tl53YHsjKVRHO3dAJHAzZ15EWWBebmxLO0BIJV5GdDdURkljUDR6VjRFCnpQMWpVdjhTKjl6T1c5
bCNhJGVIfiZ9cWQ5aExscj1MX0BvPWN0dUQrYWFWOEFIc0JkPFVLT0RDPmNNY1NQa1hjVAp6WSkz
JW4jNDdYZz07YllMbiRARFU5QGtqc3MhRHthY2lyMHtsMm5NdEt6RylmQjNfenphMXJyJSNAOyV7
YEF9WUMKelo5bCVUUlFXdjlmSDB8XmNEbmFPZndRJVZTYkJab0YkdG1TdVBhbyFIe3B6MCh3ZSo8
RGJRYztwclkhK1VwND5nCnpFeWRAfFF1fU1UZUJYcDlwUE4oYWd3cXIkRnt6WCZmZ0J1NUJ2Z3pI
RDN0fDZNVH1xUm5iN0FpPkdUWlIkVWtANAp6YmZVYWA9Sn5iME9EUk5NQmBmJWV7eUV2NnhFVkZ3
ZntQYW9kQyR9X1c0dVdldmR4SVF6VGthNlomI0BAJEFKOD0KemRMdDY4YXhLYnBtUzZpWC1ufCo0
UEZTK2ZVQSktRj5pYS1nRyNxWk5UNn49RGs9djwkaFgrR2ZvMih9MUFkTCZvCnpoPXlCSVN7Tkx3
QyhIK3Mmfm0tOStoZjFGMzJ5X1h8N2tsX3lBX1A4d05lc3FtbU99ZnQ5ZUdMeT9YX0opR2lubgp6
bXNWb195RSQ3XnUkWDQme2ZaeHZzVjJSRlZ5Qkt3e25abjl5QD8qNmpVTE57U3F4UDZReC1UVnI8
Zz4+I053dF4Kelh0TCQwNW1ufGcqQ1RxKiVWKGJiYUJXdGBaTD1oPk1US15uazlUQVJVY3NZak9Q
NzlASGpnSkV4IT82YSopKzw2CnpoNlpVbWtVIW49bHRQV3h4Ui1kbXReNmVsendGYzJhZTtFPkI0
eCRHX18rPXl7fS1adlVlUWAxVUcwSnFfOz4ydgp6VyY3NDVSTWgkSXtSS0Q4Q0tLYnBqWEk8WDdU
PVJPbHBJb3hMbCYpO2c8OWorPUMxcWFXdjxZUkV0RVpIKSFCMHoKelRpSEh6Wk1EKis+aW05I2Ao
S3JjVXpBTGczXysrbEUwP3teM00hWkhvMjV8MGh7byQ5JmJLYnZQTF5qS3kxO0hnCnpFJTVVJHtv
TnUzJlhIRldYZ0JuakJCO2o3dytkYzlzcWFNbytUPm9qZEZufj8/SmRFbSoqUy0lYldWVH50NGJx
Jgp6emxQbD9WTD5keFRGV25AYG1pIW9xdFVkLUl2PlhDVH1ISDcrIXF4MlF9S3M2dEVMS3FOd048
ViZwbTd2STEpV1gKejtmZHU7PjM8PHEzS2V5MG0jaUNDXkVhSCF2Vkl6LSRIanwtYSpjMFRyPThJ
O1oxZj8tdHEheEQ9cnwxM244NV92Cnp5cmJ8WV9gejdpNFgjJDRRJUgzaWNZeyttJHZ5IVJfeU1e
UjUkc0FBVkl1aDUlVXR9cktaTkB1WFZUUk9ZcTI1Pgp6P09TcVJaPmBQSCEmS3x9Xm97dEV2QCVB
R2ctRH48Sj9EPnEqS1QzdnU2I1FGc1lkJWtyZXdePShpWig7dn4jSzcKejluVXIpRVM7d0EjY2BB
aXJXcTljbHUoKWMqb2N3ZiVwR3BwRjhrZmU7bCtmSDBtaVVKbUJ1REZBPnktZ1NKX2g9CnpoM2V8
MkdAT2dSR04+QTgmeV5Ke0pkLShqYHNMKl9YN1F8Skptc2RHdH1zJSh3YWpxWGk0KnB4YGw4WXpa
RClwfgp6cU8hZ2BRJHM2RSQzXihnNGJgfiZSfWh1UTNjP2ZVITUxeFZlZlpxNGxGd0hmKlo4cT1U
bzFBKGBLazh1SSZPU1EKeitRaj5xckR9Yn1mWkFsO2ZLa1JmYSkkUzd5bDx+aSpJLXV4QS0zfX5l
eCtQdChlfV5HVG07JT5sYV5tR2E/ZTJICnpNeSlJNUx6bWB+UGN6d2E/MiQ4MW5VbHs9ayRYfVJQ
MkNIPEF9ZnROQzVPXzQ3PTwtJjE/eV48Vjw+Uzs2N0c9NQp6aEk/IWc+XkRnY2k5WSRpZSZzMF9k
VllMVGl4S3lfO2pYRTE8YHAwXiRjXkchbDs9OTZYUyRweDY1bDx4R04lX2QKejltJkVoNiF7e1kt
KiMrJVNUTylnSFA7fjFqM1BybURVSHhEM2NQd15Aa0gtRGhVMENPRVpZRnstNz9keSt0NzZaCnp3
flNGJnRCPDEkNXZ6fkF1ZzN+OGclNVZ2RUMlVlcyOGxSTmg8cXZMS0JjY01pYXtFfTspNUZKWjJD
N05eUFd4LQp6S1UrMWJTc2lgKGojWX5mSWIqa1NXSj5vdUw2KCNST0hPPTQ0aFcyMVllU2wmWTFY
UGh5a1RSJWNkQXJJK2dJQjwKenltNE9fbDB3JSY4TmM5eUJfV202aX1qV3pFKDxASUNTVE18XmlB
PG0hRFA+RDxsI0tPQns4PldJbn5kNDF1NkoxCnp5c2NQMFE2VjR0RTtkPml5KTt6YVdreXQ8dkVo
QmxfJnV0UlcjI2Q0dCpPRnRiKDU2RkMkQEFhSio4UnV2Qmh9aAp6N1Z3YnE9QihVeVkocHtERn1L
LVZoeXJoajlMP0FuWitvT25AMT45O01Vak56Uk0pfDZwcVQzOWVkZSRGd3s1NjAKelI3SG9JZWE/
TkAyZm95diRiaipnY2JmbVBVciFkRyt1JEFBeXIyV1FRfWQ5SGFQfUp7dzt9Km85THJvMnJfVFJM
CnpYOSVjJUA4ZHI9RSZkbEl6ZjB+JipPK2RiVkQwNSsyODMpZlJkWnN0Qmx0bF9iKkJrfG0zRUA5
UTZ6WV50ZSFYMgp6VHxzYTw5KXFWTztKYiFVckdEX2oqe0xmbDdANio4dDJPK2RAbGJ6anpffW9a
Z2g9I21wS0VNa0tzXlpZKjBufFcKekgzQio5bCNjTV9mYXxjPT50KnB0alFDYGA+Wit6O2JRWVJq
PlpENDJ2KU57JGQ9R2FgYXMjOXpraSp5ZXJ1b0M/Cnpndnt5SCEkJipLIUBvUn04KXBtVUx4P3N1
MlJZZTM3ZWcqcTY5KGhMTCRKfiZQP3FBZG14SXopKTdRdWtJaXpANQp6P3tRZ34jdCEmcS1fVCtt
I009ZFo/NTkrRVFIN3tJazQ7amVvKyRXVD4+Pk1jUHgkKiZDTWczWTxuYVFuJlVxUjgKeilydDla
R3BwcEc/LSohYj1jdihiJDUoMUo/UTVHU0NqJHIpQntAdDJfUUwtMmdZLTRCKm5gNSk5M34tclFl
QX1CCno4TVIqYlZMX2o3Uk9NIyM3cCpNcF96I3drd0VkPG1QY3RvdFlANy08RjArdGQ7dzVwJXgw
VUY4VE8jR3ROfkdgJAp6LVN5TzA2KThfIW5oeGk+SERKLXBKP2gxWWYhNEtLPmZ3MXBRU2A3fWt8
X2MxPylCQmApcHN9dkQ2PFljdGNffSUKelFsQmxMcHteI3Z3fUdRRnZ2emZ3QEJFY3Y0RnVIcmBe
U3xmWWJyWUYhfEZAUUJhbkxwWXRORE5uNy1fYFMqbT1LCnpMLXUrJUR8Oz1ocVdzTF8mOUg4TENz
UT9SXn4pfXV1fihRZWtRTX1ZRH02cSlEISlha2FtR0Y8aFEkRTlTcWFJZgp6QlRwWns9NDB1Mk87
JS0/SWkqLX08SXdVZV4jdTI2JCohalprQlQoME4tT0tkeXN4JGFvJkpvYD55cygzciFRVCsKeiZp
RiYhWWVAekJYNkRFVG55UXhBe0g3SG00Kmk/V0ljSjlGUWVuc2soUlJha0tJeSMxPjA4ODI3NUtX
P3kqIWVvCnpEVmFxS0VBdXJhUDVkVTdNcy1NaS1gPHhISX1fYllOakk1Y1M0byohdSh3P0pCYVVU
Vi1RdGF+Pz01Szd2aT0+Qgp6UGs5fHd2cERpMntZdzM2XllEU3B3QFgzNDF5eDNXajQ+TEl0NTB+
NSNvQHlsKXc9ZjdUS19ONiRecmlOYSZaSmEKek0xITJ8QUs5SiUqI3c0PG48O3VLcXwhUjhoVUQ+
SFB3X1FDTypTQUE5cyptelpAJS1ZZ19taEpxVE5lRk1yZj9yCno4RCgjM2IybD9oViZwPSpqSEhH
NjlpK3h2bWBBRWpSQWBGQTAtZ0hiR3NWai0qY1E+akhPZCpreWB2PVlXdkMmSQp6UnUpKVdneGA8
OzhlbF4oKTVVKXJ0U3M8SnhNMEd5THtoUWw0QjBGYmFuNU9JYHtEN1o+aCV2aiVRWUdLbCs5VEUK
elYjYEZ2aG5LeCVxaT9sUThATWMqSiV5Zn00cUVBYVQrPlpDZVZCdlJUS31XP2tOM0srWFFaOyh7
UldqY3ZyZzN8Cnp5cVY5T2BieTBScG1aOX1eflh0aEV0b2xPa2VWTTtZZlBmPkBkNnQoPCpeZ3xF
X1ZWYFBxJVdKKihGXnpzQjE4aAp6NkNZWE9EV1N5NUR5Vnhyc3hCcnNuP3tnZ01wNmV7Z2BIMSEj
TTNUeCQ0UkJtK3BsN0JqQ3tqSyV5YiN9dz9GK0sKRD9HQVRfCgpsaXRlcmFsIDAKSGNtVj9kMDAw
MDEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412706</attachid>
            <date>2020-10-29 20:02:47 -0700</date>
            <delta_ts>2020-10-29 21:16:13 -0700</delta_ts>
            <desc>Rebased</desc>
            <filename>bug-217506-20201029200247.patch</filename>
            <type>text/plain</type>
            <size>46840</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI2OWI0YzJlYzgyOTE2
NzA1NGU2ZmMzMWVlN2I1NDU5ZDQ3NDRhMi4uOTI3Y2RmYzRjZTljZDhjZjQ2MjVkYjg2YTMyZTFk
MDVjNDhkM2VhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIwLTEwLTI5ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBb
R1BVIFByb2Nlc3NdIFBlcmZvcm0gaW1hZ2UgZGVjb2Rpbmcgb2YgY29sb3IgZm9udHMgaW4gdGhl
IFdlYiBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTc1MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6Cisg
ICAgICAgICogUGxhdGZvcm1BcHBsZVdpbi5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybVdpbkNh
aXJvLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL0ZyZWVUeXBl
LmNtYWtlOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNr
ZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQ0dCYWNrZW5kOjpzZXR1cENv
bnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRDYXNjYWRl
Q29yZVRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbFZlY3RvcldpdGhIb3Jpem9udGFs
R2x5cGhQb3NpdGlvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJD
b3JlVGV4dC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmJlZ2lu
TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmVuZExheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpkcmF3R2x5cGhzKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpkcmF3SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdHbHlwaHNSZWNvcmRlcjo6Y3JlYXRlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdHbHlwaHNSZWNvcmRl
cik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpw
cmVwYXJlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpE
cmF3R2x5cGhzUmVjb3JkZXI6OmNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnVwZGF0ZUNUTSk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVGaWxs
Q29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRl
cjo6dXBkYXRlU3Ryb2tlQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OnNo
YWRvd0lzQ2xlYXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBo
c1JlY29yZGVyOjp1cGRhdGVTaGFkb3cpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdHbHlwaHNSZWNvcmRlcjo6cmVjb3JkQmVnaW5MYXllcik6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpyZWNvcmRFbmRMYXllcik6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Y29tcHV0ZUFkdmFuY2VzRnJvbVBvc2l0aW9ucyk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpyZWNv
cmREcmF3R2x5cGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhz
UmVjb3JkZXI6OnJlY29yZERyYXdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RHJhd0dseXBoc1JlY29yZGVyOjpkcmF3R2x5cGhzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6
ei5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNS
ZWNvcmRlcjo6RHJhd0dseXBoc1JlY29yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OmRyYXdHbHlwaHMpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6UmVjb3JkZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpkcmF3R2x5cGhzKToKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6Y29uY2F0Q1RNKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6Y2xpcFRvRHJhd2luZ0NvbW1hbmRzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oOgor
CiAyMDIwLTEwLTI5ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbQ29jb2FdIFJlbW92ZSBzb2Z0IGxpbmtpbmcgb2YgTmV0d29ya0V4dGVuc2lvbi5mcmFt
ZXdvcmsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IGM0ZDMzNDI5ZGJlNmIwYzIwZGE3OTIzMWM2YjMz
ZWZjOGJkNTc5NjIuLjg4ZjI4NDI1YmU2OThjN2RlMTM0NDRiYzVhNjI0ZmQyYjY1OWRjMmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTEwLTI5ICBNeWxlcyBDLiBN
YXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBbR1BVIFBy
b2Nlc3NdIFBlcmZvcm0gaW1hZ2UgZGVjb2Rpbmcgb2YgY29sb3IgZm9udHMgaW4gdGhlIFdlYiBQ
cm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTc1MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg6CisKIDIwMjAtMTAtMTMgIEtlaXRoIFJvbGxp
biAgPGtyb2xsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBsZWZ0b3ZlciBNQUNPU1hf
REVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4IHN1cHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDY4
ODRkMGY4NmQyOWRjMTQ5MTY2MTE3YmE1Yzk2NGQxMGIzM2JkZGYuLjI4MDFhZDZmZDg1ZmMzNjRl
OGQwNjUxNDQ5MjM5YTcyOTE1OWY0YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTIzNyw2ICsx
MjM3LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2FuZ2xlL0V4dGVuc2lvbnNHTEFOR0xFLmgKIAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmgKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5oCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5o
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKaW5kZXgg
YTdmODJiODYxYjYyYzRhZWZiODNjMTgxMWQ1NWM3YWY3NDllNmI5MS4uMTQ1MmU4NzFkODYyMTNh
ZGQ1MzlhYWMyOTJmZDlhODYxMWM1ZWZjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKQEAgLTM4LDYgKzM4LDcgQEAKIAogI2lmIFVTRShB
UFBMRV9JTlRFUk5BTF9TREspCiAKKyNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dDb250ZXh0RGVs
ZWdhdGVQcml2YXRlLmg+CiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHRm9udENhY2hlLmg+CiAj
aW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHUGF0aFByaXZhdGUuaD4KICNpbmNsdWRlIDxDb3JlR3Jh
cGhpY3MvQ29yZUdyYXBoaWNzUHJpdmF0ZS5oPgpAQCAtNTgsMTkgKzU5LDEyIEBAIHN0cnVjdCBD
R0ZvbnRITWV0cmljcyB7CiAgICAgaW50IG1pblJpZ2h0U2lkZUJlYXJpbmc7CiB9OwogCi1zdHJ1
Y3QgQ0dGb250RGVzY3JpcHRvciB7Ci0gICAgQ0dSZWN0IGJib3g7Ci0gICAgQ0dGbG9hdCBhc2Nl
bnQ7Ci0gICAgQ0dGbG9hdCBkZXNjZW50OwotICAgIENHRmxvYXQgY2FwSGVpZ2h0OwotICAgIENH
RmxvYXQgaXRhbGljQW5nbGU7Ci0gICAgQ0dGbG9hdCBzdGVtVjsKLSAgICBDR0Zsb2F0IHN0ZW1I
OwotICAgIENHRmxvYXQgYXZnV2lkdGg7Ci0gICAgQ0dGbG9hdCBtYXhXaWR0aDsKLSAgICBDR0Zs
b2F0IG1pc3NpbmdXaWR0aDsKLSAgICBDR0Zsb2F0IGxlYWRpbmc7Ci0gICAgQ0dGbG9hdCB4SGVp
Z2h0OwordHlwZWRlZiBDRl9FTlVNIChpbnQzMl90LCBDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNr
TmFtZSkKK3sKKyAgICBkZURyYXdJbWFnZSA9IDcsCisgICAgZGVEcmF3R2x5cGhzID0gOCwKKyAg
ICBkZUJlZ2luTGF5ZXIgPSAxNywKKyAgICBkZUVuZExheWVyID0gMTgsCiB9OwogCiB0eXBlZGVm
IGNvbnN0IHN0cnVjdCBDR0NvbG9yVHJhbnNmb3JtKiBDR0NvbG9yVHJhbnNmb3JtUmVmOwpAQCAt
MTc3LDYgKzE3MSwyMiBAQCBzdHJ1Y3QgQ0dGb2N1c1JpbmdTdHlsZSB7CiB9OwogdHlwZWRlZiBz
dHJ1Y3QgQ0dGb2N1c1JpbmdTdHlsZSBDR0ZvY3VzUmluZ1N0eWxlOwogCitzdHJ1Y3QgQ0dTaGFk
b3dTdHlsZSB7CisgICAgdW5zaWduZWQgYTsKKyAgICBDR0Zsb2F0IGI7CisgICAgQ0dGbG9hdCBh
emltdXRoOworICAgIENHRmxvYXQgYzsKKyAgICBDR0Zsb2F0IGhlaWdodDsKKyAgICBDR0Zsb2F0
IHJhZGl1czsKKyAgICBDR0Zsb2F0IGQ7Cit9OwordHlwZWRlZiBzdHJ1Y3QgQ0dTaGFkb3dTdHls
ZSBDR1NoYWRvd1N0eWxlOworCit0eXBlZGVmIENGX0VOVU0gKGludDMyX3QsIENHU3R5bGVUeXBl
KQoreworICAgIGtDR1N0eWxlU2hhZG93ID0gMSwKK307CisKICNlbmRpZiAvLyBQTEFURk9STShD
T0NPQSkKIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTE5Myw2ICsyMDMsMTIgQEAgc3RhdGljIGNv
bnN0IENHU05vdGlmaWNhdGlvblR5cGUga0NHU2Vzc2lvbkNvbnNvbGVEaXNjb25uZWN0ID0gKENH
U05vdGlmaWNhdGlvblQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAordHlwZWRlZiBzdHJ1
Y3QgQ0dDb250ZXh0RGVsZWdhdGUgKkNHQ29udGV4dERlbGVnYXRlUmVmOwordHlwZWRlZiB2b2lk
ICgqQ0dDb250ZXh0RGVsZWdhdGVDYWxsYmFjaykodm9pZCk7Cit0eXBlZGVmIHN0cnVjdCBDR1Jl
bmRlcmluZ1N0YXRlICpDR1JlbmRlcmluZ1N0YXRlUmVmOwordHlwZWRlZiBzdHJ1Y3QgQ0dHU3Rh
dGUgKkNHR1N0YXRlUmVmOwordHlwZWRlZiBzdHJ1Y3QgQ0dTdHlsZSAqQ0dTdHlsZVJlZjsKKwog
I2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKICNpZiBQTEFURk9STShDT0NPQSkK
QEAgLTIwMyw3ICsyMTksNiBAQCB0eXBlZGVmIHVpbnQzMl90IENHU1dpbmRvd0lEOwogCiB0eXBl
ZGVmIENHU1dpbmRvd0lEKiBDR1NXaW5kb3dJRExpc3Q7CiB0eXBlZGVmIHN0cnVjdCBDRl9CUklE
R0VEX1RZUEUoaWQpIENHU1JlZ2lvbk9iamVjdCogQ0dTUmVnaW9uT2JqOwotdHlwZWRlZiBzdHJ1
Y3QgQ0ZfQlJJREdFRF9UWVBFKGlkKSBDR1N0eWxlKiBDR1N0eWxlUmVmOwogCiB0eXBlZGVmIHZv
aWQqIENHU05vdGlmaWNhdGlvbkFyZzsKIHR5cGVkZWYgdm9pZCogQ0dTTm90aWZpY2F0aW9uRGF0
YTsKQEAgLTIzMyw3ICsyNDgsNiBAQCB2b2lkIENHQ29udGV4dFJlc2V0Q2xpcChDR0NvbnRleHRS
ZWYpOwogQ0dDb250ZXh0VHlwZSBDR0NvbnRleHRHZXRUeXBlKENHQ29udGV4dFJlZik7CiAKIENG
U3RyaW5nUmVmIENHRm9udENvcHlGYW1pbHlOYW1lKENHRm9udFJlZik7Ci1ib29sIENHRm9udEdl
dERlc2NyaXB0b3IoQ0dGb250UmVmLCBDR0ZvbnREZXNjcmlwdG9yKik7CiBib29sIENHRm9udEdl
dEdseXBoQWR2YW5jZXNGb3JTdHlsZShDR0ZvbnRSZWYsIGNvbnN0IENHQWZmaW5lVHJhbnNmb3Jt
KiAsIENHRm9udFJlbmRlcmluZ1N0eWxlLCBjb25zdCBDR0dseXBoW10sIHNpemVfdCBjb3VudCwg
Q0dTaXplIGFkdmFuY2VzW10pOwogdm9pZCBDR0ZvbnRHZXRHbHlwaHNGb3JVbmljaGFycyhDR0Zv
bnRSZWYsIGNvbnN0IFVuaUNoYXJbXSwgQ0dHbHlwaFtdLCBzaXplX3QgY291bnQpOwogY29uc3Qg
Q0dGb250SE1ldHJpY3MqIENHRm9udEdldEhNZXRyaWNzKENHRm9udFJlZik7CkBAIC0yNTIsNiAr
MjY2LDIxIEBAIGJvb2wgQ0dDb250ZXh0R2V0QWxsb3dzRm9udFN1YnBpeGVsUG9zaXRpb25pbmco
Q0dDb250ZXh0UmVmKTsKIGJvb2wgQ0dDb250ZXh0RHJhd3NXaXRoQ29ycmVjdFNoYWRvd09mZnNl
dHMoQ0dDb250ZXh0UmVmKTsKIENHUGF0dGVyblJlZiBDR1BhdHRlcm5DcmVhdGVXaXRoSW1hZ2Uy
KENHSW1hZ2VSZWYsIENHQWZmaW5lVHJhbnNmb3JtLCBDR1BhdHRlcm5UaWxpbmcpOwogCitDR0Nv
bnRleHREZWxlZ2F0ZVJlZiBDR0NvbnRleHREZWxlZ2F0ZUNyZWF0ZSh2b2lkKiBpbmZvKTsKK3Zv
aWQgQ0dDb250ZXh0RGVsZWdhdGVTZXRDYWxsYmFjayhDR0NvbnRleHREZWxlZ2F0ZVJlZiwgQ0dD
b250ZXh0RGVsZWdhdGVDYWxsYmFja05hbWUsIENHQ29udGV4dERlbGVnYXRlQ2FsbGJhY2spOwor
Q0dDb250ZXh0UmVmIENHQ29udGV4dENyZWF0ZVdpdGhEZWxlZ2F0ZShDR0NvbnRleHREZWxlZ2F0
ZVJlZiwgQ0dDb250ZXh0VHlwZSwgQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYpOwor
dm9pZCogQ0dDb250ZXh0RGVsZWdhdGVHZXRJbmZvKENHQ29udGV4dERlbGVnYXRlUmVmKTsKK3Zv
aWQgQ0dDb250ZXh0RGVsZWdhdGVSZWxlYXNlKENHQ29udGV4dERlbGVnYXRlUmVmKTsKK0NHRmxv
YXQgQ0dHU3RhdGVHZXRBbHBoYShDR0dTdGF0ZVJlZik7CitDR0ZvbnRSZWYgQ0dHU3RhdGVHZXRG
b250KENHR1N0YXRlUmVmKTsKK2NvbnN0IENHQWZmaW5lVHJhbnNmb3JtICpDR0dTdGF0ZUdldENU
TShDR0dTdGF0ZVJlZik7CitDR0NvbG9yUmVmIENHR1N0YXRlR2V0RmlsbENvbG9yKENHR1N0YXRl
UmVmKTsKK0NHQ29sb3JSZWYgQ0dHU3RhdGVHZXRTdHJva2VDb2xvcihDR0dTdGF0ZVJlZik7CitD
R1N0eWxlUmVmIENHR1N0YXRlR2V0U3R5bGUoQ0dHU3RhdGVSZWYpOworQ0dTdHlsZVR5cGUgQ0dT
dHlsZUdldFR5cGUoQ0dTdHlsZVJlZik7Citjb25zdCB2b2lkICpDR1N0eWxlR2V0RGF0YShDR1N0
eWxlUmVmKTsKK0NHQ29sb3JSZWYgQ0dTdHlsZUdldENvbG9yKENHU3R5bGVSZWYpOworCiAjaWYg
SEFWRShDR1BBVEhfR0VUX05VTUJFUl9PRl9FTEVNRU5UUykKIHNpemVfdCBDR1BhdGhHZXROdW1i
ZXJPZkVsZW1lbnRzKENHUGF0aFJlZik7CiAjZW5kaWYKQEAgLTI4NiwxNiArMzE1LDkgQEAgQ0dS
ZWN0KiBDR1NOZXh0UmVjdChjb25zdCBDR1NSZWdpb25FbnVtZXJhdG9yT2JqKTsKIENHU1JlZ2lv
bkVudW1lcmF0b3JPYmogQ0dTUmVnaW9uRW51bWVyYXRvcihDR1JlZ2lvblJlZik7CiBDR1N0eWxl
UmVmIENHU3R5bGVDcmVhdGVGb2N1c1JpbmdXaXRoQ29sb3IoY29uc3QgQ0dGb2N1c1JpbmdTdHls
ZSosIENHQ29sb3JSZWYpOwogdm9pZCBDR0NvbnRleHRTZXRTdHlsZShDR0NvbnRleHRSZWYsIENH
U3R5bGVSZWYpOwotCiB2b2lkIENHQ29udGV4dERyYXdDb25pY0dyYWRpZW50KENHQ29udGV4dFJl
ZiwgQ0dHcmFkaWVudFJlZiwgQ0dQb2ludCBjZW50ZXIsIENHRmxvYXQgYW5nbGUpOwotCi0jaWYg
SEFWRShDR19QQVRIX1VORVZFTl9DT1JORVJTX1JPVU5ERURSRUNUKQogdm9pZCBDR1BhdGhBZGRV
bmV2ZW5Db3JuZXJzUm91bmRlZFJlY3QoQ0dNdXRhYmxlUGF0aFJlZiwgY29uc3QgQ0dBZmZpbmVU
cmFuc2Zvcm0gKiwgQ0dSZWN0LCBjb25zdCBDR1NpemUgY29ybmVyc1s0XSk7Ci0jZW5kaWYKLQot
I2lmIEhBVkUoQ0dfRk9OVF9SRU5ERVJJTkdfR0VUX0ZPTlRfU01PT1RISU5HX0RJU0FCTEVEKQog
Ym9vbCBDR0ZvbnRSZW5kZXJpbmdHZXRGb250U21vb3RoaW5nRGlzYWJsZWQodm9pZCk7Ci0jZW5k
aWYKIAogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCkBAIC0zMjgsMTUgKzM1MCwxMCBAQCBi
b29sIENvbG9yU3luY1Byb2ZpbGVJc1dpZGVHYW11dChDb2xvclN5bmNQcm9maWxlUmVmKTsKIHNp
emVfdCBDR0Rpc3BsYXlNb2RlR2V0UGl4ZWxzV2lkZShDR0Rpc3BsYXlNb2RlUmVmKTsKIHNpemVf
dCBDR0Rpc3BsYXlNb2RlR2V0UGl4ZWxzSGlnaChDR0Rpc3BsYXlNb2RlUmVmKTsKIAotI2lmIEVO
QUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKLQogQ0dFcnJvciBDR1NTZXRE
ZW55V2luZG93U2VydmVyQ29ubmVjdGlvbnMoYm9vbCk7Ci0KIHR5cGVkZWYgaW50MzJfdCBDR1NE
aXNwbGF5SUQ7CiBDR1NEaXNwbGF5SUQgQ0dTTWFpbkRpc3BsYXlJRCh2b2lkKTsKIAotI2VuZGlm
IC8vIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKLQogI2VuZGlmIC8v
IFBMQVRGT1JNKE1BQykKIAogI2lmIEVOQUJMRShQREZLSVRfUExVR0lOKSAmJiAhVVNFKEFQUExF
X0lOVEVSTkFMX1NESykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQXBwbGVX
aW4uY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUFwcGxlV2luLmNtYWtlCmluZGV4IGE3
ODhlNjlkZTc0NDFjOTQwODRmNzAzNmEzZThmNDlhZDQ1MWE1OGQuLjM4YTJiNzc2ODk1NTk4YTRm
NGUzNmFkZTdjNjAzYjA0MDc4ZGRjNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRm
b3JtQXBwbGVXaW4uY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1BcHBsZVdpbi5j
bWFrZQpAQCAtMzAsNiArMzAsOCBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uQ0YuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL1dlYkNv
cmVBVkNGUmVzb3VyY2VMb2FkZXIuY3BwCiAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAKKwogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAogCiAgICAgcGxh
dGZvcm0vbmV0d29yay9jZi9BdXRoZW50aWNhdGlvbkNGLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1XaW5DYWlyby5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
V2luQ2Fpcm8uY21ha2UKaW5kZXggYTY4OTY0NzdkZTBjZjUwMzRmM2ZkMDlmM2YwYzc2YTdkYTZl
YzhhMS4uMDc3OGY3NTU2NmM2NDYzMDIwYTBlMDdjNTJhNjVjMWE0NzRmNjI4OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5DYWlyby5jbWFrZQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybVdpbkNhaXJvLmNtYWtlCkBAIC0yMiw2ICsyMiw4IEBAIGxpc3QoQVBQRU5E
IFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCiAKKyAgICBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6
ei5jcHAKKwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
Q2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFDYWly
b1dpbi5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR2x5cGhQYWdlVHJlZU5vZGVDYWly
b1dpbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGViNGUxN2YyZTczNmVhODY4MWM1
NmQyMDI1MTQ5MjZiOGRjOTk0NTAuLjJhZDMzYTk1NTE5MmQ5MDc2ZWIzZDhjMTYyY2ZlMzg2MjJk
ZmIxOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMzc5LDYgKzM3OSw3IEBAIHBsYXRm
b3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0KIHBsYXRmb3JtL2dyYXBo
aWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9W
aWRlb1RleHR1cmVDb3BpZXJDVi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GaWx0
ZXJFZmZlY3RSZW5kZXJlckNvcmVJbWFnZS5tbQorcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwCiBwbGF0Zm9ybS9n
cmFwaGljcy9ncHUvVGlsaW5nRGF0YS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9H
UFVCaW5kR3JvdXBBbGxvY2F0b3JNZXRhbC5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29h
L0dQVUJpbmRHcm91cExheW91dE1ldGFsLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmRlOTVhN2EyNjk4ODNkNTJjNmI5Nzhm
N2JhNWM0ZDFiZDEwZTAwYy4uYzVmMTc1MjlkZTk5MWNlNjU4MjBiYWFjYzUzNWJjMmViZTNiMTY5
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtNjIwLDYgKzYyMCw3IEBACiAJCTFDQUYzNDgxMEE2QzQwNTIwMEFCRTA2RSAvKiBX
ZWJTY3JpcHRPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFDQUYzNDdFMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQ0FGMzQ4MjBB
NkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBRjM0N0YwQTZDNDA1MjAwQUJFMDZFIC8qIFdl
YlNjcmlwdE9iamVjdC5tbSAqLzsgfTsKIAkJMUNBRjM0ODMwQTZDNDA1MjAwQUJFMDZFIC8qIFdl
YlNjcmlwdE9iamVjdFByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFDQUYzNDgwMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3RQ
cml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJMUNBRjU2REIyNTMwMUFDODAwMTdCNDcyIC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29y
ZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FG
NTZEODI1MzAxNDU3MDAxN0I0NzIgLyogRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQ0NEODE1
MDIyMzFGODNFMDA2NUZDMkIgLyogV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1
ZURlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTE1MjU1MTQxNkZEMjM0RjAwM0Q3QURCIC8qIFdlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3Bl
cmF0aW9uUXVldWVEZWxlZ2F0ZS5tbSAqLzsgfTsKIAkJMUNDREY1QkUxOTkwMzMyNDAwQkNFQkFE
IC8qIFNWR1RvT1RGRm9udENvbnZlcnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFDQ0RGNUJDMTk5MDMzMjQwMEJDRUJBRCAvKiBTVkdUb09URkZv
bnRDb252ZXJzaW9uLmggKi87IH07CiAJCTFDRkFFMzIzMEE2RDZBM0YwMDMyNTkzRCAvKiBsaWJv
YmpjLmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUNGQUUzMjIwQTZENkEzRjAwMzI1OTNEIC8qIGxpYm9iamMuZHlsaWIgKi87IH07CkBAIC02
NzM1LDYgKzY3MzYsOCBAQAogCQkxQ0FGMzQ3RTBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0
T2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNjcmlwdE9iamVj
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FGMzQ3RjBBNkM0MDUyMDBBQkUw
NkUgLyogV2ViU2NyaXB0T2JqZWN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gV2ViU2NyaXB0T2JqZWN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkxQ0FGMzQ4MDBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTY3JpcHRPYmplY3RQcml2YXRlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQUY1NkQ4MjUzMDE0NTcwMDE3QjQ3MiAv
KiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5
TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
Q0FGNTZERTI1MzAyNDVBMDAxN0I0NzIgLyogRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJD
b3JlVGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNv
cmRlckNvcmVUZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNCNUZFODgy
MkRFQkM4QjAwOTQ0MEUyIC8qIFdITFNMRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xFcnJv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0I2OUIzMjIxREVENDBCMDA2RTg0
NkEgLyogV0hMU0xSZXNvbHZhYmxlVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTFJlc29sdmFi
bGVUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQjY5QjM0MjFERUQ2M0Ew
MDZFODQ2QSAvKiBXSExTTEZsb2F0TGl0ZXJhbFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xG
bG9hdExpdGVyYWxUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzYwNyw2
ICsxNzYxMCw4IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQkwRkU1RkJDQTFDM0RENTFFMDAwN0Ey
Q0EgLyogRGlzcGxheUxpc3QuY3BwICovLAogCQkJCTBGRTVGQkNCMUMzREQ1MUUwMDA3QTJDQSAv
KiBEaXNwbGF5TGlzdC5oICovLAorCQkJCTFDQUY1NkQ4MjUzMDE0NTcwMDE3QjQ3MiAvKiBEaXNw
bGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oICovLAorCQkJCTFDQUY1NkRFMjUzMDI0NUEwMDE3
QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcCAqLywKIAkJ
CQk1NUMwQTI5NTIzRkUyQ0UwMDBGMkNCOTMgLyogRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5j
cHAgKi8sCiAJCQkJNzJFQTA5RjkyM0ZDQ0M2QTAwODUwNEE1IC8qIERpc3BsYXlMaXN0RHJhd2lu
Z0NvbnRleHQuaCAqLywKIAkJCQk3MkVBMDlGNzIzRkNDQjNEMDA4NTA0QTUgLyogRGlzcGxheUxp
c3RJbWFnZUJ1ZmZlci5oICovLApAQCAtMzE0MjksNiArMzE0MzQsNyBAQAogCQkJCTdFREFBRkM5
MTlBMkNDREMwMDM0REZEMSAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2EuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGNzkwRjQyMjUxN0NFNkUwMDlCQTAzNCAvKiBEaXNwbGF5TGF5ZXJDb250cm9sbGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU1RkJEMzFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxh
eUxpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDQUY1NkRCMjUzMDFBQzgwMDE3QjQ3MiAvKiBE
aXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTVBRDA5
NDAyNDA4OTY0MDAwREU0RDJGIC8qIERpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTU1QUQwOTNFMjQwODk2MzUwMERFNEQyRiAvKiBEaXNwbGF5TGlzdEltYWdl
QnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU1RkJENTFDM0RENTFFMDAwN0EyQ0EgLyog
RGlzcGxheUxpc3RJdGVtcy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9GcmVlVHlwZS5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Zy
ZWVUeXBlLmNtYWtlCmluZGV4IDdjMDRkOTNhNWI4NWM3MzI1ODFjOTVhMDY1YmUwNWI2MzY3Yzdh
ZTQuLmYzOGI1NGUxN2M5MzE1NjUxNTRjYWI5NTNhODFlMGU5NmY1NzQ5YTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtlCkBAIC01LDYgKzUsOCBAQCBsaXN0KEFQUEVORCBX
ZWJDb3JlX1BSSVZBVEVfSU5DTFVERV9ESVJFQ1RPUklFUwogKQogCiBsaXN0KEFQUEVORCBXZWJD
b3JlX1NPVVJDRVMKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHAKKwogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Zy
ZWV0eXBlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9mcmVldHlwZS9Gb250UGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQmFja2Vu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNH
QmFja2VuZC5jcHAKaW5kZXggMmFkMzFhYzU3ZDVmMWJkZTc5NDE5YzVmOTE1Njk3YjM3NTQ0YmI0
OC4uNWIyMGQ4OTJlZDhiYmNmNjAxODE2YTYzNjc2YTAwZjFmYTVjMTdiMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tlbmQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVy
Q0dCYWNrZW5kLmNwcApAQCAtNjEsNiArNjEsNyBAQCBSZXRhaW5QdHI8Q0dDb2xvclNwYWNlUmVm
PiBJbWFnZUJ1ZmZlckNHQmFja2VuZDo6Y29udGV4dENvbG9yU3BhY2UoY29uc3QgR3JhcGhpYwog
CiB2b2lkIEltYWdlQnVmZmVyQ0dCYWNrZW5kOjpzZXR1cENvbnRleHQoKQogeworICAgIC8vIFRo
ZSBpbml0aWFsIENUTSBtYXRjaGVzIERpc3BsYXlMaXN0OjpSZWNvcmRlcjo6Y2xpcFRvRHJhd2lu
Z0NvbW1hbmRzKCkncyBpbml0aWFsIENUTS4KICAgICBjb250ZXh0KCkuc2NhbGUoRmxvYXRTaXpl
KDEsIC0xKSk7CiAgICAgY29udGV4dCgpLnRyYW5zbGF0ZSgwLCAtbV9iYWNrZW5kU2l6ZS5oZWln
aHQoKSk7CiAgICAgY29udGV4dCgpLmFwcGx5RGV2aWNlU2NhbGVGYWN0b3IobV9yZXNvbHV0aW9u
U2NhbGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29y
ZXRleHQvRm9udENhc2NhZGVDb3JlVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb3JldGV4dC9Gb250Q2FzY2FkZUNvcmVUZXh0LmNwcAppbmRleCA0YThlNGUwZWEx
OTQxNDQzNjI1MGE0YmU4YWE0NWNiNzFkYjIxNmZiLi5mOTdmNzBiOGY3NjQ4MzgwNzA2ZjdkMGJl
NzVkNGEwZDk3ZmU4OGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb3JldGV4dC9Gb250Q2FzY2FkZUNvcmVUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250Q2FzY2FkZUNvcmVUZXh0LmNwcApAQCAt
NjksNiArNjksMTQgQEAgc3RhdGljIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcm90YXRlTGVmdFRy
YW5zZm9ybSgpCiAKIHZvaWQgZmlsbFZlY3RvcldpdGhIb3Jpem9udGFsR2x5cGhQb3NpdGlvbnMo
VmVjdG9yPENHUG9pbnQsIDI1Nj4mIHBvc2l0aW9ucywgQ0dDb250ZXh0UmVmIGNvbnRleHQsIGNv
bnN0IENHU2l6ZSogYWR2YW5jZXMsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBGbG9hdFBvaW50JiBw
b2ludCkKIHsKKyAgICAvLyBUaGUgaW5wdXQgcG9zaXRpb25zIGFyZSBpbiB0aGUgY29udGV4dCdz
IGNvb3JkaW5hdGUgc3lzdGVtLCB3aXRob3V0IHRoZSB0ZXh0IG1hdHJpeC4KKyAgICAvLyBIb3dl
dmVyLCB0aGUgcG9zaXRpb25zIHRoYXQgQ1QvQ0cgYWNjZXB0IGFyZSBpbiB0aGUgdGV4dCBtYXRy
aXgncyBjb29yZGluYXRlIHN5c3RlbS4KKyAgICAvLyBDR0NvbnRleHRHZXRUZXh0TWF0cml4KCkg
Z2l2ZXMgdXMgdGhlIG1hdHJpeCB0aGF0IG1hcHMgZnJvbSB0ZXh0J3MgY29vcmRpbmF0ZSBzeXN0
ZW0gdG8gdGhlIGNvbnRleHQncyAobm9uLXRleHQpIGNvb3JkaW5hdGUgc3lzdGVtLgorICAgIC8v
IFdlIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0IHRvIGRlbGl2ZXIgQ1QsIGluc2lkZSB0aGUgdGV4
dCdzIGNvb3JkaW5hdGUgc3lzdGVtLCBzdWNoIHRoYXQgaXQgZW5kcyB1cCBjb2luY2lkZW50IHdp
dGggdGhlIGlucHV0IGluIHRoZSBjb250ZXh0J3MgY29vcmRpbmF0ZSBzeXN0ZW0uCisgICAgLy8K
KyAgICAvLyBDVE0gKiB0ZXh0IG1hdHJpeCAqIHBvc2l0aW9ucyB3ZSBuZWVkIHRvIGRlbGl2ZXIg
dG8gQ1QgPSBDVE0gKiBpbnB1dCBwb3NpdGlvbnMKKyAgICAvLyBTb2x2aW5nIGZvciB0aGUgcG9z
aXRpb25zIHdlIG5lZWQgdG8gZGVsaXZlciB0byBDVCwgd2UgZ2V0CisgICAgLy8gcG9zaXRpb25z
IHdlIG5lZWQgdG8gZGVsaXZlciB0byBDVCA9IGludmVyc2UodGV4dCBtYXRyaXgpICogaW5wdXQg
cG9zaXRpb25zCiAgICAgQ0dBZmZpbmVUcmFuc2Zvcm0gbWF0cml4ID0gQ0dBZmZpbmVUcmFuc2Zv
cm1JbnZlcnQoQ0dDb250ZXh0R2V0VGV4dE1hdHJpeChjb250ZXh0KSk7CiAgICAgcG9zaXRpb25z
WzBdID0gQ0dQb2ludEFwcGx5QWZmaW5lVHJhbnNmb3JtKHBvaW50LCBtYXRyaXgpOwogICAgIGZv
ciAodW5zaWduZWQgaSA9IDE7IGkgPCBjb3VudDsgKytpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5
cGhzUmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgzNzRlYzIy
YWVkMDRiN2ViYjM4MThlYzUxOTk4NjBiMmM4NTQ0MzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3
R2x5cGhzUmVjb3JkZXIuaApAQCAtMCwwICsxLDExNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQWZmaW5l
VHJhbnNmb3JtLmgiCisjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRlICJHcmFkaWVudC5oIgor
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIlBhdHRlcm4uaCIKKyNpbmNs
dWRlICJUZXh0RmxhZ3MuaCIKKworI2lmIFVTRShDT1JFX1RFWFQpCisjaW5jbHVkZSA8Q29yZUdy
YXBoaWNzL0NvcmVHcmFwaGljcy5oPgorI2luY2x1ZGUgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNz
U1BJLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGbG9hdFBvaW50
OworY2xhc3MgRm9udDsKK2NsYXNzIEdseXBoQnVmZmVyOworY2xhc3MgR3JhcGhpY3NDb250ZXh0
OworCituYW1lc3BhY2UgRGlzcGxheUxpc3QgeworCitjbGFzcyBSZWNvcmRlcjsKKworY2xhc3Mg
RHJhd0dseXBoc1JlY29yZGVyIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBEcmF3R2x5cGhzUmVj
b3JkZXIoUmVjb3JkZXImKTsKKworICAgIHZvaWQgZHJhd0dseXBocyhjb25zdCBGb250JiwgY29u
c3QgR2x5cGhCdWZmZXImLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0
IEZsb2F0UG9pbnQmIGFuY2hvclBvaW50LCBGb250U21vb3RoaW5nTW9kZSk7CisKKyNpZiBVU0Uo
Q09SRV9URVhUKQorICAgIHZvaWQgcmVjb3JkQmVnaW5MYXllcihDR1JlbmRlcmluZ1N0YXRlUmVm
LCBDR0dTdGF0ZVJlZiwgQ0dSZWN0KTsKKyAgICB2b2lkIHJlY29yZEVuZExheWVyKENHUmVuZGVy
aW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmKTsKKyAgICB2b2lkIHJlY29yZERyYXdHbHlwaHMoQ0dS
ZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYsIGNvbnN0IENHQWZmaW5lVHJhbnNmb3JtKiwg
Y29uc3QgQ0dHbHlwaFtdLCBjb25zdCBDR1BvaW50IHBvc2l0aW9uc1tdLCBzaXplX3QgY291bnQp
OworICAgIHZvaWQgcmVjb3JkRHJhd0ltYWdlKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRl
UmVmLCBDR1JlY3QsIENHSW1hZ2VSZWYpOworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgR3JhcGhp
Y3NDb250ZXh0IGNyZWF0ZUludGVybmFsQ29udGV4dCgpOworICAgIHZvaWQgcHJlcGFyZUludGVy
bmFsQ29udGV4dChjb25zdCBGb250JiwgRm9udFNtb290aGluZ01vZGUpOworICAgIHZvaWQgY29u
Y2x1ZGVJbnRlcm5hbENvbnRleHQoKTsKKyAgICB2b2lkIHVwZGF0ZUNUTShBZmZpbmVUcmFuc2Zv
cm0pOworICAgIHZvaWQgdXBkYXRlRmlsbENvbG9yKGNvbnN0IENvbG9yJiwgR3JhZGllbnQqID0g
bnVsbHB0ciwgUGF0dGVybiogPSBudWxscHRyKTsKKyAgICB2b2lkIHVwZGF0ZVN0cm9rZUNvbG9y
KGNvbnN0IENvbG9yJiwgR3JhZGllbnQqID0gbnVsbHB0ciwgUGF0dGVybiogPSBudWxscHRyKTsK
KyAgICBlbnVtIGNsYXNzIFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zIHsKKyAgICAgICAgVW5zcGVj
aWZpZWQsCisgICAgICAgIFllcywKKyAgICAgICAgTm8KKyAgICB9OworICAgIHZvaWQgdXBkYXRl
U2hhZG93KGNvbnN0IEZsb2F0U2l6ZSYgc2hhZG93T2Zmc2V0LCBmbG9hdCBzaGFkb3dCbHVyLCBj
b25zdCBDb2xvciYgc2hhZG93Q29sb3IsIFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zKTsKKworI2lm
IFVTRShDT1JFX1RFWFQpCisgICAgdm9pZCB1cGRhdGVTaGFkb3coQ0dTdHlsZVJlZik7CisjZW5k
aWYKKworICAgIFJlY29yZGVyJiBtX293bmVyOworICAgIEdyYXBoaWNzQ29udGV4dCBtX2ludGVy
bmFsQ29udGV4dDsKKyAgICBjb25zdCBGb250KiBtX2N1cnJlbnRGb250IHsgbnVsbHB0ciB9Owor
CisgICAgQ29sb3IgbV9jdXJyZW50RmlsbENvbG9yOworICAgIENvbG9yIG1fY3VycmVudFN0cm9r
ZUNvbG9yOworCisgICAgQ29sb3IgbV9vcmlnaW5hbEZpbGxDb2xvcjsKKyAgICBSZWZQdHI8R3Jh
ZGllbnQ+IG1fb3JpZ2luYWxGaWxsR3JhZGllbnQ7CisgICAgUmVmUHRyPFBhdHRlcm4+IG1fb3Jp
Z2luYWxGaWxsUGF0dGVybjsKKworICAgIENvbG9yIG1fb3JpZ2luYWxTdHJva2VDb2xvcjsKKyAg
ICBSZWZQdHI8R3JhZGllbnQ+IG1fb3JpZ2luYWxTdHJva2VHcmFkaWVudDsKKyAgICBSZWZQdHI8
UGF0dGVybj4gbV9vcmlnaW5hbFN0cm9rZVBhdHRlcm47CisKKyAgICBBZmZpbmVUcmFuc2Zvcm0g
bV9vcmlnaW5hbENUTTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gbV9jdXJyZW50Q1RNOworCisgICAg
QWZmaW5lVHJhbnNmb3JtIG1fb3JpZ2luYWxUZXh0TWF0cml4OworCisgICAgRmxvYXRTaXplIG1f
b3JpZ2luYWxTaGFkb3dPZmZzZXQ7CisgICAgZmxvYXQgbV9vcmlnaW5hbFNoYWRvd0JsdXI7Cisg
ICAgQ29sb3IgbV9vcmlnaW5hbFNoYWRvd0NvbG9yOworICAgIGJvb2wgbV9vcmlnaW5hbFNoYWRv
d3NJZ25vcmVUcmFuc2Zvcm1zOworCisgICAgRmxvYXRTaXplIG1fY3VycmVudFNoYWRvd09mZnNl
dDsKKyAgICBmbG9hdCBtX2N1cnJlbnRTaGFkb3dCbHVyOworICAgIENvbG9yIG1fY3VycmVudFNo
YWRvd0NvbG9yOworICAgIGJvb2wgbV9jdXJyZW50U2hhZG93c0lnbm9yZVRyYW5zZm9ybXM7CisK
KyAgICBGb250U21vb3RoaW5nTW9kZSBtX3Ntb290aGluZ01vZGUgeyBGb250U21vb3RoaW5nTW9k
ZTo6QXV0b1Ntb290aGluZyB9OworfTsKKworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhz
UmVjb3JkZXJDb3JlVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjRjODM0NmJkNmI0NmNjM2RhNWIwYzgyMWYyNmJiM2YwMjBkYjRhYwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcApAQCAtMCwwICsxLDM2
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5o
IgorCisjaW5jbHVkZSAiQml0bWFwSW1hZ2UuaCIKKyNpbmNsdWRlICJDb2xvci5oIgorI2luY2x1
ZGUgIkRpc3BsYXlMaXN0SXRlbXMuaCIKKyNpbmNsdWRlICJEaXNwbGF5TGlzdFJlY29yZGVyLmgi
CisjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgorI2luY2x1ZGUgIkZvbnQuaCIKKyNpbmNsdWRlICJG
b250Q2FzY2FkZS5oIgorI2luY2x1ZGUgIkdseXBoQnVmZmVyLmgiCisKKyNpbmNsdWRlIDxDb3Jl
VGV4dC9Db3JlVGV4dC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworI2lmIFBMQVRGT1JN
KFdJTikKKyNpbmNsdWRlIDxwYWwvc3BpL3dpbi9Db3JlVGV4dFNQSVdpbi5oPgorI2VuZGlmCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKKworc3RhdGlj
IENHQ29udGV4dERlbGVnYXRlUmVmIGJlZ2luTGF5ZXIoQ0dDb250ZXh0RGVsZWdhdGVSZWYgZGVs
ZWdhdGUsIENHUmVuZGVyaW5nU3RhdGVSZWYgcnN0YXRlLCBDR0dTdGF0ZVJlZiBnc3RhdGUsIENH
UmVjdCByZWN0LCBDRkRpY3Rpb25hcnlSZWYsIENHQ29udGV4dERlbGVnYXRlUmVmKQoreworICAg
IERyYXdHbHlwaHNSZWNvcmRlciYgcmVjb3JkZXIgPSAqc3RhdGljX2Nhc3Q8RHJhd0dseXBoc1Jl
Y29yZGVyKj4oQ0dDb250ZXh0RGVsZWdhdGVHZXRJbmZvKGRlbGVnYXRlKSk7CisgICAgcmVjb3Jk
ZXIucmVjb3JkQmVnaW5MYXllcihyc3RhdGUsIGdzdGF0ZSwgcmVjdCk7CisgICAgcmV0dXJuIGRl
bGVnYXRlOworfQorCitzdGF0aWMgQ0dDb250ZXh0RGVsZWdhdGVSZWYgZW5kTGF5ZXIoQ0dDb250
ZXh0RGVsZWdhdGVSZWYgZGVsZWdhdGUsIENHUmVuZGVyaW5nU3RhdGVSZWYgcnN0YXRlLCBDR0dT
dGF0ZVJlZiBnc3RhdGUpCit7CisgICAgRHJhd0dseXBoc1JlY29yZGVyJiByZWNvcmRlciA9ICpz
dGF0aWNfY2FzdDxEcmF3R2x5cGhzUmVjb3JkZXIqPihDR0NvbnRleHREZWxlZ2F0ZUdldEluZm8o
ZGVsZWdhdGUpKTsKKyAgICByZWNvcmRlci5yZWNvcmRFbmRMYXllcihyc3RhdGUsIGdzdGF0ZSk7
CisgICAgcmV0dXJuIGRlbGVnYXRlOworfQorCitzdGF0aWMgQ0dFcnJvciBkcmF3R2x5cGhzKENH
Q29udGV4dERlbGVnYXRlUmVmIGRlbGVnYXRlLCBDR1JlbmRlcmluZ1N0YXRlUmVmIHJzdGF0ZSwg
Q0dHU3RhdGVSZWYgZ3N0YXRlLCBjb25zdCBDR0FmZmluZVRyYW5zZm9ybSogdG0sIGNvbnN0IENH
R2x5cGggZ2x5cGhzW10sIGNvbnN0IENHUG9pbnQgcG9zaXRpb25zW10sIHNpemVfdCBjb3VudCkK
K3sKKyAgICBpZiAoQ0dHU3RhdGVHZXRBbHBoYShnc3RhdGUpID4gMCkgeworICAgICAgICBEcmF3
R2x5cGhzUmVjb3JkZXImIHJlY29yZGVyID0gKnN0YXRpY19jYXN0PERyYXdHbHlwaHNSZWNvcmRl
cio+KENHQ29udGV4dERlbGVnYXRlR2V0SW5mbyhkZWxlZ2F0ZSkpOworICAgICAgICByZWNvcmRl
ci5yZWNvcmREcmF3R2x5cGhzKHJzdGF0ZSwgZ3N0YXRlLCB0bSwgZ2x5cGhzLCBwb3NpdGlvbnMs
IGNvdW50KTsKKyAgICB9CisgICAgcmV0dXJuIGtDR0Vycm9yU3VjY2VzczsKK30KKworc3RhdGlj
IENHRXJyb3IgZHJhd0ltYWdlKENHQ29udGV4dERlbGVnYXRlUmVmIGRlbGVnYXRlLCBDR1JlbmRl
cmluZ1N0YXRlUmVmIHJzdGF0ZSwgQ0dHU3RhdGVSZWYgZ3N0YXRlLCBDR1JlY3QgcmVjdCwgQ0dJ
bWFnZVJlZiBpbWFnZSkKK3sKKyAgICBEcmF3R2x5cGhzUmVjb3JkZXImIHJlY29yZGVyID0gKnN0
YXRpY19jYXN0PERyYXdHbHlwaHNSZWNvcmRlcio+KENHQ29udGV4dERlbGVnYXRlR2V0SW5mbyhk
ZWxlZ2F0ZSkpOworICAgIHJlY29yZGVyLnJlY29yZERyYXdJbWFnZShyc3RhdGUsIGdzdGF0ZSwg
cmVjdCwgaW1hZ2UpOworICAgIHJldHVybiBrQ0dFcnJvclN1Y2Nlc3M7Cit9CisKK0dyYXBoaWNz
Q29udGV4dCBEcmF3R2x5cGhzUmVjb3JkZXI6OmNyZWF0ZUludGVybmFsQ29udGV4dCgpCit7Cisg
ICAgYXV0byBjb250ZXh0RGVsZWdhdGUgPSBhZG9wdENGKENHQ29udGV4dERlbGVnYXRlQ3JlYXRl
KHRoaXMpKTsKKyAgICBDR0NvbnRleHREZWxlZ2F0ZVNldENhbGxiYWNrKGNvbnRleHREZWxlZ2F0
ZS5nZXQoKSwgZGVCZWdpbkxheWVyLCByZWludGVycHJldF9jYXN0PENHQ29udGV4dERlbGVnYXRl
Q2FsbGJhY2s+KCZiZWdpbkxheWVyKSk7CisgICAgQ0dDb250ZXh0RGVsZWdhdGVTZXRDYWxsYmFj
ayhjb250ZXh0RGVsZWdhdGUuZ2V0KCksIGRlRW5kTGF5ZXIsIHJlaW50ZXJwcmV0X2Nhc3Q8Q0dD
b250ZXh0RGVsZWdhdGVDYWxsYmFjaz4oJmVuZExheWVyKSk7CisgICAgQ0dDb250ZXh0RGVsZWdh
dGVTZXRDYWxsYmFjayhjb250ZXh0RGVsZWdhdGUuZ2V0KCksIGRlRHJhd0dseXBocywgcmVpbnRl
cnByZXRfY2FzdDxDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrPigmV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OmRyYXdHbHlwaHMpKTsKKyAgICBDR0NvbnRleHREZWxlZ2F0ZVNldENhbGxiYWNrKGNvbnRl
eHREZWxlZ2F0ZS5nZXQoKSwgZGVEcmF3SW1hZ2UsIHJlaW50ZXJwcmV0X2Nhc3Q8Q0dDb250ZXh0
RGVsZWdhdGVDYWxsYmFjaz4oJmRyYXdJbWFnZSkpOworICAgIGF1dG8gY29udGV4dCA9IGFkb3B0
Q0YoQ0dDb250ZXh0Q3JlYXRlV2l0aERlbGVnYXRlKGNvbnRleHREZWxlZ2F0ZS5nZXQoKSwga0NH
Q29udGV4dFR5cGVVbmtub3duLCBudWxscHRyLCBudWxscHRyKSk7CisgICAgcmV0dXJuIEdyYXBo
aWNzQ29udGV4dChjb250ZXh0LmdldCgpKTsKK30KKworRHJhd0dseXBoc1JlY29yZGVyOjpEcmF3
R2x5cGhzUmVjb3JkZXIoUmVjb3JkZXImIG93bmVyKQorICAgIDogbV9vd25lcihvd25lcikKKyAg
ICAsIG1faW50ZXJuYWxDb250ZXh0KGNyZWF0ZUludGVybmFsQ29udGV4dCgpKQoreworfQorCit2
b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6cHJlcGFyZUludGVybmFsQ29udGV4dChjb25zdCBGb250
JiBmb250LCBGb250U21vb3RoaW5nTW9kZSBzbW9vdGhpbmdNb2RlKQoreworICAgIEFTU0VSVChD
R0FmZmluZVRyYW5zZm9ybUlzSWRlbnRpdHkoQ1RGb250R2V0TWF0cml4KGZvbnQucGxhdGZvcm1E
YXRhKCkuY3RGb250KCkpKSk7CisKKyAgICBhdXRvJiBzdGF0ZSA9IG1fb3duZXIuY3VycmVudFN0
YXRlKCkuc3RhdGVDaGFuZ2UubV9zdGF0ZTsKKworICAgIG1fb3JpZ2luYWxGaWxsQ29sb3IgPSBz
dGF0ZS5maWxsQ29sb3I7CisgICAgbV9vcmlnaW5hbEZpbGxHcmFkaWVudCA9IHN0YXRlLmZpbGxH
cmFkaWVudDsKKyAgICBtX29yaWdpbmFsRmlsbFBhdHRlcm4gPSBzdGF0ZS5maWxsUGF0dGVybjsK
KworICAgIG1fb3JpZ2luYWxTdHJva2VDb2xvciA9IHN0YXRlLnN0cm9rZUNvbG9yOworICAgIG1f
b3JpZ2luYWxTdHJva2VHcmFkaWVudCA9IHN0YXRlLnN0cm9rZUdyYWRpZW50OworICAgIG1fb3Jp
Z2luYWxTdHJva2VQYXR0ZXJuID0gc3RhdGUuc3Ryb2tlUGF0dGVybjsKKworICAgIG1fY3VycmVu
dEZpbGxDb2xvciA9IG1fb3JpZ2luYWxGaWxsQ29sb3I7CisgICAgbV9jdXJyZW50U3Ryb2tlQ29s
b3IgPSBtX29yaWdpbmFsU3Ryb2tlQ29sb3I7CisKKyAgICBpZiAobV9vcmlnaW5hbEZpbGxDb2xv
ci5pc1ZhbGlkKCkpCisgICAgICAgIG1faW50ZXJuYWxDb250ZXh0LnNldEZpbGxDb2xvcihtX29y
aWdpbmFsRmlsbENvbG9yKTsKKyAgICBlbHNlIGlmIChtX29yaWdpbmFsRmlsbEdyYWRpZW50KQor
ICAgICAgICBtX2ludGVybmFsQ29udGV4dC5zZXRGaWxsR3JhZGllbnQoKm1fb3JpZ2luYWxGaWxs
R3JhZGllbnQpOworICAgIGVsc2UgeworICAgICAgICBBU1NFUlQobV9vcmlnaW5hbEZpbGxQYXR0
ZXJuKTsKKyAgICAgICAgaWYgKG1fb3JpZ2luYWxGaWxsUGF0dGVybikKKyAgICAgICAgICAgIG1f
aW50ZXJuYWxDb250ZXh0LnNldEZpbGxQYXR0ZXJuKCptX29yaWdpbmFsRmlsbFBhdHRlcm4pOwor
ICAgIH0KKworICAgIGlmIChtX29yaWdpbmFsU3Ryb2tlQ29sb3IuaXNWYWxpZCgpKQorICAgICAg
ICBtX2ludGVybmFsQ29udGV4dC5zZXRTdHJva2VDb2xvcihtX29yaWdpbmFsU3Ryb2tlQ29sb3Ip
OworICAgIGVsc2UgaWYgKG1fb3JpZ2luYWxTdHJva2VHcmFkaWVudCkKKyAgICAgICAgbV9pbnRl
cm5hbENvbnRleHQuc2V0U3Ryb2tlR3JhZGllbnQoKm1fb3JpZ2luYWxTdHJva2VHcmFkaWVudCk7
CisgICAgZWxzZSB7CisgICAgICAgIEFTU0VSVChtX29yaWdpbmFsU3Ryb2tlUGF0dGVybik7Cisg
ICAgICAgIGlmIChtX29yaWdpbmFsU3Ryb2tlUGF0dGVybikKKyAgICAgICAgICAgIG1faW50ZXJu
YWxDb250ZXh0LnNldFN0cm9rZVBhdHRlcm4oKm1fb3JpZ2luYWxTdHJva2VQYXR0ZXJuKTsKKyAg
ICB9CisKKyAgICBtX29yaWdpbmFsQ1RNID0gbV9vd25lci5jdXJyZW50U3RhdGUoKS5jdG07IC8v
IEZJWE1FOiBEZWFsIHdpdGggZGV2aWNlIHNjYWxlLgorICAgIG1fY3VycmVudENUTSA9IG1fb3Jp
Z2luYWxDVE07CisgICAgbV9pbnRlcm5hbENvbnRleHQuc2V0Q1RNKG1fb3JpZ2luYWxDVE0pOwor
CisgICAgbV9vcmlnaW5hbFRleHRNYXRyaXggPSBjb21wdXRlT3ZlcmFsbFRleHRNYXRyaXgoZm9u
dCk7CisgICAgaWYgKGZvbnQucGxhdGZvcm1EYXRhKCkub3JpZW50YXRpb24oKSA9PSBGb250T3Jp
ZW50YXRpb246OlZlcnRpY2FsKQorICAgICAgICBtX29yaWdpbmFsVGV4dE1hdHJpeCA9IGNvbXB1
dGVWZXJ0aWNhbFRleHRNYXRyaXgoZm9udCwgbV9vcmlnaW5hbFRleHRNYXRyaXgpOworCisgICAg
bV9pbnRlcm5hbENvbnRleHQuc2V0U2hhZG93c0lnbm9yZVRyYW5zZm9ybXMoc3RhdGUuc2hhZG93
c0lnbm9yZVRyYW5zZm9ybXMpOworICAgIGlmIChzdGF0ZS5zaGFkb3dzVXNlTGVnYWN5UmFkaXVz
KQorICAgICAgICBtX2ludGVybmFsQ29udGV4dC5zZXRMZWdhY3lTaGFkb3coc3RhdGUuc2hhZG93
T2Zmc2V0LCBzdGF0ZS5zaGFkb3dCbHVyLCBzdGF0ZS5zaGFkb3dDb2xvcik7CisgICAgZWxzZQor
ICAgICAgICBtX2ludGVybmFsQ29udGV4dC5zZXRTaGFkb3coc3RhdGUuc2hhZG93T2Zmc2V0LCBz
dGF0ZS5zaGFkb3dCbHVyLCBzdGF0ZS5zaGFkb3dDb2xvcik7CisKKyAgICBtX2ludGVybmFsQ29u
dGV4dC5zZXRUZXh0RHJhd2luZ01vZGUoc3RhdGUudGV4dERyYXdpbmdNb2RlKTsKKworICAgIG1f
b3JpZ2luYWxTaGFkb3dPZmZzZXQgPSBzdGF0ZS5zaGFkb3dPZmZzZXQ7CisgICAgbV9vcmlnaW5h
bFNoYWRvd0JsdXIgPSBzdGF0ZS5zaGFkb3dCbHVyOworICAgIG1fb3JpZ2luYWxTaGFkb3dDb2xv
ciA9IHN0YXRlLnNoYWRvd0NvbG9yOworICAgIG1fb3JpZ2luYWxTaGFkb3dzSWdub3JlVHJhbnNm
b3JtcyA9IHN0YXRlLnNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOworCisgICAgbV9jdXJyZW50U2hh
ZG93T2Zmc2V0ID0gbV9vcmlnaW5hbFNoYWRvd09mZnNldDsKKyAgICBtX2N1cnJlbnRTaGFkb3dC
bHVyID0gbV9vcmlnaW5hbFNoYWRvd0JsdXI7CisgICAgbV9jdXJyZW50U2hhZG93Q29sb3IgPSBt
X29yaWdpbmFsU2hhZG93Q29sb3I7CisgICAgbV9jdXJyZW50U2hhZG93c0lnbm9yZVRyYW5zZm9y
bXMgPSBtX29yaWdpbmFsU2hhZG93c0lnbm9yZVRyYW5zZm9ybXM7CisKKyAgICBtX2N1cnJlbnRG
b250ID0gJmZvbnQ7CisgICAgbV9zbW9vdGhpbmdNb2RlID0gc21vb3RoaW5nTW9kZTsKK30KKwor
dm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OmNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KCkKK3sKKyAg
ICB1cGRhdGVGaWxsQ29sb3IobV9vcmlnaW5hbEZpbGxDb2xvciwgbV9vcmlnaW5hbEZpbGxHcmFk
aWVudC5nZXQoKSwgbV9vcmlnaW5hbEZpbGxQYXR0ZXJuLmdldCgpKTsKKyAgICB1cGRhdGVTdHJv
a2VDb2xvcihtX29yaWdpbmFsU3Ryb2tlQ29sb3IsIG1fb3JpZ2luYWxTdHJva2VHcmFkaWVudC5n
ZXQoKSwgbV9vcmlnaW5hbFN0cm9rZVBhdHRlcm4uZ2V0KCkpOworICAgIHVwZGF0ZUNUTShtX29y
aWdpbmFsQ1RNKTsKKyAgICB1cGRhdGVTaGFkb3cobV9vcmlnaW5hbFNoYWRvd09mZnNldCwgbV9v
cmlnaW5hbFNoYWRvd0JsdXIsIG1fb3JpZ2luYWxTaGFkb3dDb2xvciwgbV9vcmlnaW5hbFNoYWRv
d3NJZ25vcmVUcmFuc2Zvcm1zID8gU2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6OlllcyA6IFNoYWRv
d3NJZ25vcmVUcmFuc2Zvcm1zOjpObyk7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjp1
cGRhdGVDVE0oQWZmaW5lVHJhbnNmb3JtIGN0bSkKK3sKKyAgICBpZiAoY3RtID09IG1fY3VycmVu
dENUTSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9vd25lci5zZXRDVE0oY3RtKTsKKyAgICBt
X2N1cnJlbnRDVE0gPSBjdG07Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVG
aWxsQ29sb3IoY29uc3QgQ29sb3ImIG5ld0NvbG9yLCBHcmFkaWVudCogbmV3R3JhZGllbnQsIFBh
dHRlcm4qIG5ld1BhdHRlcm4pCit7CisgICAgLy8gVGhpcyBjaGVjayBsb29rcyB3cm9uZyBidXQg
aXQgYWN0dWFsbHkgaXNuJ3QsIGZvciBvdXIgbGltaXRlZCB1c2UuCisgICAgLy8gQ1Qgd2lsbCBv
bmx5IGV2ZXIgc2V0IHRoaXMgdG8gYSBzb2xpZCBjb2xvciwgd2hpY2ggdGhpcyBpcyB0aGUgY29y
cmVjdCBjaGVjayBmb3IuCisgICAgLy8gSW4gY29uY2x1ZGVJbnRlcm5hbENvbnRleHQoKSB3ZSBz
ZXQgaXQgYmFjayB0byB3aGF0IGl0IHdhcyBvcmlnaW5hbGx5LCB3aGljaCB0aGlzIGNoZWNrIHdv
cmtzIGNvcnJlY3RseSBmb3IgdG9vLgorICAgIGlmIChuZXdDb2xvciA9PSBtX2N1cnJlbnRGaWxs
Q29sb3IpCisgICAgICAgIHJldHVybjsKKworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlIG5ld1N0
YXRlOworICAgIG5ld1N0YXRlLmZpbGxDb2xvciA9IG5ld0NvbG9yOworICAgIGlmIChuZXdHcmFk
aWVudCkKKyAgICAgICAgbmV3U3RhdGUuZmlsbEdyYWRpZW50ID0gbmV3R3JhZGllbnQ7CisgICAg
aWYgKG5ld1BhdHRlcm4pCisgICAgICAgIG5ld1N0YXRlLmZpbGxQYXR0ZXJuID0gbmV3UGF0dGVy
bjsKKyAgICBtX293bmVyLnVwZGF0ZVN0YXRlKG5ld1N0YXRlLCB7IEdyYXBoaWNzQ29udGV4dFN0
YXRlOjpGaWxsQ29sb3JDaGFuZ2UgfSk7CisgICAgbV9jdXJyZW50RmlsbENvbG9yID0gbmV3Q29s
b3I7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVTdHJva2VDb2xvcihjb25z
dCBDb2xvciYgbmV3Q29sb3IsIEdyYWRpZW50KiBuZXdHcmFkaWVudCwgUGF0dGVybiogbmV3UGF0
dGVybikKK3sKKyAgICAvLyBUaGlzIGNoZWNrIGxvb2tzIHdyb25nIGJ1dCBpdCBhY3R1YWxseSBp
c24ndCwgZm9yIG91ciBsaW1pdGVkIHVzZS4KKyAgICAvLyBDVCB3aWxsIG9ubHkgZXZlciBzZXQg
dGhpcyB0byBhIHNvbGlkIGNvbG9yLCB3aGljaCB0aGlzIGlzIHRoZSBjb3JyZWN0IGNoZWNrIGZv
ci4KKyAgICAvLyBJbiBjb25jbHVkZUludGVybmFsQ29udGV4dCgpIHdlIHNldCBpdCBiYWNrIHRv
IHdoYXQgaXQgd2FzIG9yaWdpbmFsbHksIHdoaWNoIHRoaXMgY2hlY2sgd29ya3MgY29ycmVjdGx5
IGZvciB0b28uCisgICAgaWYgKG5ld0NvbG9yID09IG1fY3VycmVudFN0cm9rZUNvbG9yKQorICAg
ICAgICByZXR1cm47CisKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZSBuZXdTdGF0ZTsKKyAgICBu
ZXdTdGF0ZS5zdHJva2VDb2xvciA9IG5ld0NvbG9yOworICAgIGlmIChuZXdHcmFkaWVudCkKKyAg
ICAgICAgbmV3U3RhdGUuc3Ryb2tlR3JhZGllbnQgPSBuZXdHcmFkaWVudDsKKyAgICBpZiAobmV3
UGF0dGVybikKKyAgICAgICAgbmV3U3RhdGUuc3Ryb2tlUGF0dGVybiA9IG5ld1BhdHRlcm47Cisg
ICAgbV9vd25lci51cGRhdGVTdGF0ZShuZXdTdGF0ZSwgeyBHcmFwaGljc0NvbnRleHRTdGF0ZTo6
U3Ryb2tlQ29sb3JDaGFuZ2UgfSk7CisgICAgbV9jdXJyZW50U3Ryb2tlQ29sb3IgPSBuZXdDb2xv
cjsKK30KKworc3RhdGljIGJvb2wgc2hhZG93SXNDbGVhcmVkKGNvbnN0IEZsb2F0U2l6ZSYgc2hh
ZG93T2Zmc2V0LCBmbG9hdCBzaGFkb3dCbHVyKQoreworICAgIHJldHVybiBzaGFkb3dPZmZzZXQg
PT0gRmxvYXRTaXplKCkgJiYgIXNoYWRvd0JsdXI7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29y
ZGVyOjp1cGRhdGVTaGFkb3coY29uc3QgRmxvYXRTaXplJiBzaGFkb3dPZmZzZXQsIGZsb2F0IHNo
YWRvd0JsdXIsIGNvbnN0IENvbG9yJiBzaGFkb3dDb2xvciwgU2hhZG93c0lnbm9yZVRyYW5zZm9y
bXMgc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMpCit7CisgICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBj
b25zaWRlciBzaGFkb3dzSWdub3JlVHJhbnNmb3JtcyBpZiBub2JvZHkgaGFzIGFueSBzaGFkb3dz
LgorICAgIGlmIChzaGFkb3dJc0NsZWFyZWQoc2hhZG93T2Zmc2V0LCBzaGFkb3dCbHVyKSAmJiBz
aGFkb3dJc0NsZWFyZWQobV9jdXJyZW50U2hhZG93T2Zmc2V0LCBtX2N1cnJlbnRTaGFkb3dCbHVy
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGUgbmV3U3RhdGU7
CisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3Mgc3RhdGVDaGFuZ2VG
bGFnczsKKworICAgIGlmIChzaGFkb3dPZmZzZXQgIT0gbV9jdXJyZW50U2hhZG93T2Zmc2V0IHx8
IHNoYWRvd0JsdXIgIT0gbV9jdXJyZW50U2hhZG93Qmx1ciB8fCBzaGFkb3dDb2xvciAhPSBtX2N1
cnJlbnRTaGFkb3dDb2xvcikgeworICAgICAgICBuZXdTdGF0ZS5zaGFkb3dPZmZzZXQgPSBzaGFk
b3dPZmZzZXQ7CisgICAgICAgIG5ld1N0YXRlLnNoYWRvd0JsdXIgPSBzaGFkb3dCbHVyOworICAg
ICAgICBuZXdTdGF0ZS5zaGFkb3dDb2xvciA9IHNoYWRvd0NvbG9yOworICAgICAgICBzdGF0ZUNo
YW5nZUZsYWdzLmFkZChHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hhZG93Q2hhbmdlKTsKKyAgICB9
CisgICAgaWYgKHNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zICE9IFNoYWRvd3NJZ25vcmVUcmFuc2Zv
cm1zOjpVbnNwZWNpZmllZCAmJiAoc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMgPT0gU2hhZG93c0ln
bm9yZVRyYW5zZm9ybXM6OlllcykgIT0gbV9jdXJyZW50U2hhZG93c0lnbm9yZVRyYW5zZm9ybXMp
IHsKKyAgICAgICAgbmV3U3RhdGUuc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMgPSAoc2hhZG93c0ln
bm9yZVRyYW5zZm9ybXMgPT0gU2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6Olllcyk7CisgICAgICAg
IHN0YXRlQ2hhbmdlRmxhZ3MuYWRkKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaGFkb3dzSWdub3Jl
VHJhbnNmb3Jtc0NoYW5nZSk7CisgICAgfQorICAgIGlmIChzdGF0ZUNoYW5nZUZsYWdzLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fb3duZXIudXBkYXRlU3RhdGUobmV3U3RhdGUs
IHN0YXRlQ2hhbmdlRmxhZ3MpOworCisgICAgbV9jdXJyZW50U2hhZG93T2Zmc2V0ID0gc2hhZG93
T2Zmc2V0OworICAgIG1fY3VycmVudFNoYWRvd0JsdXIgPSBzaGFkb3dCbHVyOworICAgIG1fY3Vy
cmVudFNoYWRvd0NvbG9yID0gc2hhZG93Q29sb3I7CisgICAgbV9jdXJyZW50U2hhZG93c0lnbm9y
ZVRyYW5zZm9ybXMgPSAoc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMgPT0gU2hhZG93c0lnbm9yZVRy
YW5zZm9ybXM6Olllcyk7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVTaGFk
b3coQ0dTdHlsZVJlZiBzdHlsZSkKK3sKKyAgICBpZiAoQ0dTdHlsZUdldFR5cGUoc3R5bGUpICE9
IGtDR1N0eWxlU2hhZG93KSB7CisgICAgICAgIC8vIEZJWE1FOiBTdXBwb3J0IG1vcmUga2luZHMg
b2YgQ0dTdHlsZXMuCisgICAgICAgIHVwZGF0ZVNoYWRvdyh7MCwgMH0sIDAsIENvbG9yKCksIFNo
YWRvd3NJZ25vcmVUcmFuc2Zvcm1zOjpVbnNwZWNpZmllZCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBjb25zdCBhdXRvJiBzaGFkb3dTdHlsZSA9ICpzdGF0aWNfY2FzdDxjb25zdCBD
R1NoYWRvd1N0eWxlKj4oQ0dTdHlsZUdldERhdGEoc3R5bGUpKTsKKyAgICBhdXRvIHJhZCA9IGRl
ZzJyYWQoc2hhZG93U3R5bGUuYXppbXV0aCAtIDE4MCk7CisgICAgYXV0byBzaGFkb3dPZmZzZXQg
PSBGbG9hdFNpemUoc3RkOjpjb3MocmFkKSwgc3RkOjpzaW4ocmFkKSkgKiBzaGFkb3dTdHlsZS5o
ZWlnaHQ7CisgICAgdXBkYXRlU2hhZG93KHNoYWRvd09mZnNldCwgc2hhZG93U3R5bGUucmFkaXVz
LCBDR1N0eWxlR2V0Q29sb3Ioc3R5bGUpLCBTaGFkb3dzSWdub3JlVHJhbnNmb3Jtczo6WWVzKTsK
K30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZEJlZ2luTGF5ZXIoQ0dSZW5kZXJp
bmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYgZ3N0YXRlLCBDR1JlY3QpCit7CisgICAgdXBkYXRlQ1RN
KCpDR0dTdGF0ZUdldENUTShnc3RhdGUpKTsKKyAgICBhdXRvIGFscGhhID0gQ0dHU3RhdGVHZXRB
bHBoYShnc3RhdGUpOworICAgIG1fb3duZXIuYmVnaW5UcmFuc3BhcmVuY3lMYXllcihhbHBoYSk7
Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpyZWNvcmRFbmRMYXllcihDR1JlbmRlcmlu
Z1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiBnc3RhdGUpCit7CisgICAgdXBkYXRlQ1RNKCpDR0dTdGF0
ZUdldENUTShnc3RhdGUpKTsKKyAgICBtX293bmVyLmVuZFRyYW5zcGFyZW5jeUxheWVyKCk7Cit9
CisKK3N0YXRpYyBWZWN0b3I8Q0dTaXplPiBjb21wdXRlQWR2YW5jZXNGcm9tUG9zaXRpb25zKGNv
bnN0IENHUG9pbnQgcG9zaXRpb25zW10sIHNpemVfdCBjb3VudCwgY29uc3QgQ0dBZmZpbmVUcmFu
c2Zvcm0mIHRleHRNYXRyaXgpCit7CisgICAgVmVjdG9yPENHU2l6ZT4gcmVzdWx0OworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQgLSAxOyArK2kpIHsKKyAgICAgICAgYXV0byBuZXh0
UG9zaXRpb24gPSBwb3NpdGlvbnNbaSArIDFdOworICAgICAgICBhdXRvIGN1cnJlbnRQb3NpdGlv
biA9IHBvc2l0aW9uc1tpXTsKKyAgICAgICAgYXV0byBhZHZhbmNlID0gQ0dTaXplTWFrZShuZXh0
UG9zaXRpb24ueCAtIGN1cnJlbnRQb3NpdGlvbi54LCBuZXh0UG9zaXRpb24ueSAtIGN1cnJlbnRQ
b3NpdGlvbi55KTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChDR1NpemVBcHBseUFmZmluZVRyYW5z
Zm9ybShhZHZhbmNlLCB0ZXh0TWF0cml4KSk7CisgICAgfQorICAgIHJlc3VsdC5jb25zdHJ1Y3RB
bmRBcHBlbmQoQ0dTaXplTWFrZSgwLCAwKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordm9p
ZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZERyYXdHbHlwaHMoQ0dSZW5kZXJpbmdTdGF0ZVJl
ZiwgQ0dHU3RhdGVSZWYgZ3N0YXRlLCBjb25zdCBDR0FmZmluZVRyYW5zZm9ybSosIGNvbnN0IENH
R2x5cGggZ2x5cGhzW10sIGNvbnN0IENHUG9pbnQgcG9zaXRpb25zW10sIHNpemVfdCBjb3VudCkK
K3sKKyAgICBpZiAoIWNvdW50KQorICAgICAgICByZXR1cm47CisKKyAgICBDR0ZvbnRSZWYgdXNl
ZEZvbnQgPSBDR0dTdGF0ZUdldEZvbnQoZ3N0YXRlKTsKKyAgICBpZiAodXNlZEZvbnQgIT0gYWRv
cHRDRihDVEZvbnRDb3B5R3JhcGhpY3NGb250KG1fY3VycmVudEZvbnQtPnBsYXRmb3JtRGF0YSgp
LmN0Rm9udCgpLCBudWxscHRyKSkuZ2V0KCkpCisgICAgICAgIHJldHVybjsKKworI2lmIEFTU0VS
VF9FTkFCTEVECisgICAgYXV0byB0ZXh0UG9zaXRpb24gPSBDR0NvbnRleHRHZXRUZXh0UG9zaXRp
b24obV9pbnRlcm5hbENvbnRleHQucGxhdGZvcm1Db250ZXh0KCkpOworICAgIEFTU0VSVCghdGV4
dFBvc2l0aW9uLngpOworICAgIEFTU0VSVCghdGV4dFBvc2l0aW9uLnkpOworI2VuZGlmCisKKyAg
ICB1cGRhdGVDVE0oKkNHR1N0YXRlR2V0Q1RNKGdzdGF0ZSkpOworCisgICAgLy8gV2Ugd2FudCB0
aGUgR1BVIHByb2Nlc3MncyBDVE0gYW5kIHRleHQgbWF0cml4IHRvIG1hdGNoIHRoZSBjdXJyZW50
IENUTSBhbmQgdGV4dCBtYXRyaXguCisgICAgLy8gVGhlIGN1cnJlbnQgdGV4dCBtYXRyaXggaXMg
YSBjb25jYXRlbmF0aW9uIG9mIHdoYXRldmVyIFdlYktpdCBzZXRzIGl0IHRvIGFuZCB3aGF0ZXZl
cgorICAgIC8vIENvcmUgVGV4dCBhcHBlbmRzIHRvIGl0LiBTbywgcmlnaHQgbm93IHdlIGhhdmUK
KyAgICAvLyBDVE0gKiBtX29yaWdpbmFsVGV4dE1hdHJpeCAqIENvcmUgVGV4dCdzIHRleHQgbWF0
cml4LgorICAgIC8vIEhvd2V2ZXIsIENHQ29udGV4dEdldFRleHRNYXRyaXgoKSBqdXN0IHRlbGxz
IHVzIHdoYXQgdGhlIHdob2xlIHRleHQgbWF0cml4IGlzLCBzbworICAgIC8vIG1fb3JpZ2luYWxU
ZXh0TWF0cml4ICogQ29yZSBUZXh0J3MgdGV4dCBtYXRyaXggPSBjdXJyZW50VGV4dE1hdHJpeC4K
KyAgICAvLyBUaGUgb25seSB3YXkgd2UgY2FuIGVtdWxhdGUgQ29yZSBUZXh0J3MgdGV4dCBtYXRy
aXggaXMgYnkgbW9kaWZ5aW5nIHRoZSBDVE0gaGVyZS4KKyAgICAvLyBTbywgaWYgd2UgZG8gdGhh
dCwgdGhlIEdQVSBwcm9jZXNzIHdpbGwgaGF2ZQorICAgIC8vIENUTSAqIFggKiBtX29yaWdpbmFs
VGV4dE1hdHJpeAorICAgIC8vIElmIHlvdSBzZXQgdGhlc2UgdHdvIGVxdWFsIHRvIGVhY2ggb3Ro
ZXIsIGFuZCBzb2x2ZSBmb3IgWCwgeW91IGdldAorICAgIC8vIENUTSAqIGN1cnJlbnRUZXh0TWF0
cml4ID0gQ1RNICogWCAqIG1fb3JpZ2luYWxUZXh0TWF0cml4CisgICAgLy8gY3VycmVudFRleHRN
YXRyaXggKiBpbnZlcnNlKG1fb3JpZ2luYWxUZXh0TWF0cml4KSA9IFgKKyAgICBBZmZpbmVUcmFu
c2Zvcm0gY3VycmVudFRleHRNYXRyaXggPSBDR0NvbnRleHRHZXRUZXh0TWF0cml4KG1faW50ZXJu
YWxDb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpKTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gY3RtRml4
dXA7CisgICAgaWYgKGF1dG8gaW52ZXJ0ZWRPcmlnaW5hbFRleHRNYXRyaXggPSBtX29yaWdpbmFs
VGV4dE1hdHJpeC5pbnZlcnNlKCkpCisgICAgICAgIGN0bUZpeHVwID0gY3VycmVudFRleHRNYXRy
aXggKiBpbnZlcnRlZE9yaWdpbmFsVGV4dE1hdHJpeC52YWx1ZSgpOworICAgIEFmZmluZVRyYW5z
Zm9ybSBpbnZlcnNlQ1RNRml4dXA7CisgICAgaWYgKGF1dG8gaW52ZXJzZSA9IGN0bUZpeHVwLmlu
dmVyc2UoKSkKKyAgICAgICAgaW52ZXJzZUNUTUZpeHVwID0gaW52ZXJzZS52YWx1ZSgpOworICAg
IGVsc2UKKyAgICAgICAgY3RtRml4dXAgPSBBZmZpbmVUcmFuc2Zvcm0oKTsKKyAgICBtX293bmVy
LmNvbmNhdENUTShjdG1GaXh1cCk7CisKKyAgICB1cGRhdGVGaWxsQ29sb3IoQ0dHU3RhdGVHZXRG
aWxsQ29sb3IoZ3N0YXRlKSk7CisgICAgdXBkYXRlU3Ryb2tlQ29sb3IoQ0dHU3RhdGVHZXRTdHJv
a2VDb2xvcihnc3RhdGUpKTsKKyAgICB1cGRhdGVTaGFkb3coQ0dHU3RhdGVHZXRTdHlsZShnc3Rh
dGUpKTsKKworICAgIG1fb3duZXIuYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChEcmF3R2x5cGhz
OjpjcmVhdGUoKm1fY3VycmVudEZvbnQsIGdseXBocywgY29tcHV0ZUFkdmFuY2VzRnJvbVBvc2l0
aW9ucyhwb3NpdGlvbnMsIGNvdW50LCBjdXJyZW50VGV4dE1hdHJpeCkuZGF0YSgpLCBjb3VudCwg
Y3VycmVudFRleHRNYXRyaXgubWFwUG9pbnQocG9zaXRpb25zWzBdKSwgbV9zbW9vdGhpbmdNb2Rl
KSk7CisKKyAgICBtX293bmVyLmNvbmNhdENUTShpbnZlcnNlQ1RNRml4dXApOworfQorCit2b2lk
IERyYXdHbHlwaHNSZWNvcmRlcjo6cmVjb3JkRHJhd0ltYWdlKENHUmVuZGVyaW5nU3RhdGVSZWYs
IENHR1N0YXRlUmVmIGdzdGF0ZSwgQ0dSZWN0IHJlY3QsIENHSW1hZ2VSZWYgY2dJbWFnZSkKK3sK
KyAgICB1cGRhdGVDVE0oKkNHR1N0YXRlR2V0Q1RNKGdzdGF0ZSkpOworICAgIHVwZGF0ZVNoYWRv
dyhDR0dTdGF0ZUdldFN0eWxlKGdzdGF0ZSkpOworCisgICAgLy8gQ29yZSBHcmFwaGljcyBhc3N1
bWVzIGEgInkgdXAiIGNvb3JkaW5hdGUgc3lzdGVtLCBidXQgaW4gV2ViS2l0LCB3ZSB1c2UgYSAi
eS1kb3duIiBjb29yZGluYXRlIHN5c3RlbS4KKyAgICAvLyBUaGlzIG1lYW5zIHRoYXQgV2ViS2l0
J3MgZHJhd2luZyByb3V0aW5lcyAoR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoKSkgaW50ZW50
aW9uYWxseSBkcmF3IGltYWdlcyB1cHNpZGUtZG93biBmcm9tIENvcmUgR3JhcGhpY3MncyBwb2lu
dCBvZiB2aWV3LgorICAgIC8vIChUaGVyZSdzIGEgeS1mbGlwIGluc2lkZSB0aGUgaW1wbGVtZW50
YXRpb24gb2YgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoKS4pCisgICAgLy8gVGhlIHJlY3Qg
aGFzIHRoZSByaWdodCBib3VuZHMsIGJ1dCB3ZSBuZWVkIHRvIHRyYW5zZm9ybSBmcm9tIENHJ3Mg
Y29vcmRpbmF0ZSBzeXN0ZW0gdG8gV2ViS2l0J3MgYnkgcGVyZm9ybWluZyBvdXIgb3duIHktZmxp
cCBzbyBpbWFnZXMgYXJlIGRyYXduIHRoZSByaWdodC1zaWRlLXVwLgorICAgIC8vIFdlIGRvIHRo
aXMgYXQgdGhlIGJvdW5kYXJ5IGJldHdlZW4gdGhlIHR3byBBUElzLCB3aGljaCBpcyByaWdodCBo
ZXJlLgorICAgIG1fb3duZXIudHJhbnNsYXRlKDAsIHJlY3Quc2l6ZS5oZWlnaHQgKyAyICogcmVj
dC5vcmlnaW4ueSk7CisgICAgbV9vd25lci5zY2FsZShGbG9hdFNpemUoMSwgLTEpKTsKKworICAg
IGF1dG8gaW1hZ2UgPSBCaXRtYXBJbWFnZTo6Y3JlYXRlKGNnSW1hZ2UpOworICAgIG1fb3duZXIu
YXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChEcmF3SW1hZ2U6OmNyZWF0ZShpbWFnZSwgcmVjdCwg
e3sgfSwgaW1hZ2UtPnNpemUoKX0sIHsgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luVG9wTGVmdCB9
KSk7CisKKyAgICAvLyBVbmRvIHRoZSBhYm92ZSB5LWZsaXAgdG8gcmVzdG9yZSB0aGUgY29udGV4
dC4KKyAgICBtX293bmVyLnNjYWxlKEZsb2F0U2l6ZSgxLCAtMSkpOworICAgIG1fb3duZXIudHJh
bnNsYXRlKDAsIC0ocmVjdC5zaXplLmhlaWdodCArIDIgKiByZWN0Lm9yaWdpbi55KSk7Cit9CisK
K3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpkcmF3R2x5cGhzKGNvbnN0IEZvbnQmIGZvbnQsIGNv
bnN0IEdseXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbnVt
R2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBzdGFydFBvaW50LCBGb250U21vb3RoaW5nTW9kZSBz
bW9vdGhpbmdNb2RlKQoreworICAgIHByZXBhcmVJbnRlcm5hbENvbnRleHQoZm9udCwgc21vb3Ro
aW5nTW9kZSk7CisgICAgRm9udENhc2NhZGU6OmRyYXdHbHlwaHMobV9pbnRlcm5hbENvbnRleHQs
IGZvbnQsIGdseXBoQnVmZmVyLCBmcm9tLCBudW1HbHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGlu
Z01vZGUpOworICAgIGNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIERpc3BsYXlMaXN0CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERy
YXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yM2FjMzI0YjdiMDBhOWUxNmE1NmFkNjcwY2UwNGNmYTc3ZmM5ZmE4
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwCkBAIC0w
LDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGlzcGxheUxpc3REcmF3R2x5cGhzUmVj
b3JkZXIuaCIKKworI2luY2x1ZGUgIkRpc3BsYXlMaXN0SXRlbXMuaCIKKyNpbmNsdWRlICJEaXNw
bGF5TGlzdFJlY29yZGVyLmgiCisjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgorI2luY2x1ZGUgIkZv
bnQuaCIKKyNpbmNsdWRlICJHbHlwaEJ1ZmZlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K25hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CisKK0RyYXdHbHlwaHNSZWNvcmRlcjo6RHJhd0dseXBo
c1JlY29yZGVyKFJlY29yZGVyJiBvd25lcikKKyAgICA6IG1fb3duZXIob3duZXIpCit7Cit9CisK
K3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpkcmF3R2x5cGhzKGNvbnN0IEZvbnQmIGZvbnQsIGNv
bnN0IEdseXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbnVt
R2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBzdGFydFBvaW50LCBGb250U21vb3RoaW5nTW9kZSBz
bW9vdGhpbmdNb2RlKQoreworICAgIG1fb3duZXIuYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChE
cmF3R2x5cGhzOjpjcmVhdGUoZm9udCwgZ2x5cGhCdWZmZXIuZ2x5cGhzKGZyb20pLCBnbHlwaEJ1
ZmZlci5hZHZhbmNlcyhmcm9tKSwgbnVtR2x5cGhzLCBzdGFydFBvaW50LCBzbW9vdGhpbmdNb2Rl
KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIERpc3BsYXlMaXN0CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAppbmRleCA4ZDFi
NjQ3YmRkOWYxNjllZmVmYjU0MjU0NDE3NDYyMWYwNmNiNmU1Li5kMTQyYzM3NzljYjk5M2U3Mzcy
YmI4Yjg4ODdmY2M0Yzc1MmZlOTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVj
b3JkZXIuY3BwCkBAIC00Miw2ICs0Miw3IEBAIFJlY29yZGVyOjpSZWNvcmRlcihHcmFwaGljc0Nv
bnRleHQmIGNvbnRleHQsIERpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgY29uc3QgR3JhCiAgICAg
OiBHcmFwaGljc0NvbnRleHRJbXBsKGNvbnRleHQsIGluaXRpYWxDbGlwLCBBZmZpbmVUcmFuc2Zv
cm0oKSkKICAgICAsIG1fZGlzcGxheUxpc3QoZGlzcGxheUxpc3QpCiAgICAgLCBtX2RlbGVnYXRl
KGRlbGVnYXRlKQorICAgICwgbV9kcmF3R2x5cGhzUmVjb3JkZXIoKnRoaXMpCiB7CiAgICAgTE9H
X1dJVEhfU1RSRUFNKERpc3BsYXlMaXN0cywgc3RyZWFtIDw8ICJcblJlY29yZGluZyB3aXRoIGNs
aXAgIiA8PCBpbml0aWFsQ2xpcCk7CiAgICAgbV9zdGF0ZVN0YWNrLmFwcGVuZCh7IHN0YXRlLCBp
bml0aWFsQ1RNLCBpbml0aWFsQ2xpcCB9KTsKQEAgLTE2Myw3ICsxNjQsNyBAQCB2b2lkIFJlY29y
ZGVyOjpzZXRNaXRlckxpbWl0KGZsb2F0IG1pdGVyTGltaXQpCiAKIHZvaWQgUmVjb3JkZXI6OmRy
YXdHbHlwaHMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZmZXImIGdseXBoQnVmZmVy
LCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmIHN0
YXJ0UG9pbnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCiB7Ci0gICAgYXBwZW5k
SXRlbUFuZFVwZGF0ZUV4dGVudChEcmF3R2x5cGhzOjpjcmVhdGUoZm9udCwgZ2x5cGhCdWZmZXIu
Z2x5cGhzKGZyb20pLCBnbHlwaEJ1ZmZlci5hZHZhbmNlcyhmcm9tKSwgbnVtR2x5cGhzLCBzdGFy
dFBvaW50LCBzbW9vdGhpbmdNb2RlKSk7CisgICAgbV9kcmF3R2x5cGhzUmVjb3JkZXIuZHJhd0ds
eXBocyhmb250LCBnbHlwaEJ1ZmZlciwgZnJvbSwgbnVtR2x5cGhzLCBzdGFydFBvaW50LCBzbW9v
dGhpbmdNb2RlKTsKIH0KIAogSW1hZ2VEcmF3UmVzdWx0IFJlY29yZGVyOjpkcmF3SW1hZ2UoSW1h
Z2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3Qm
IHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIGltYWdlUGFpbnRpbmdPcHRpb25z
KQpAQCAtMjQzLDYgKzI0NCw5IEBAIHZvaWQgUmVjb3JkZXI6OnNjYWxlKGNvbnN0IEZsb2F0U2l6
ZSYgc2l6ZSkKIAogdm9pZCBSZWNvcmRlcjo6Y29uY2F0Q1RNKGNvbnN0IEFmZmluZVRyYW5zZm9y
bSYgdHJhbnNmb3JtKQogeworICAgIGlmICh0cmFuc2Zvcm0uaXNJZGVudGl0eSgpKQorICAgICAg
ICByZXR1cm47CisKICAgICBjdXJyZW50U3RhdGUoKS5jb25jYXRDVE0odHJhbnNmb3JtKTsKICAg
ICBhcHBlbmRJdGVtKENvbmNhdGVuYXRlQ1RNOjpjcmVhdGUodHJhbnNmb3JtKSk7CiB9CkBAIC00
MjgsNyArNDMyLDE3IEBAIHZvaWQgUmVjb3JkZXI6OmNsaXBUb0ltYWdlQnVmZmVyKEltYWdlQnVm
ZmVyJiwgY29uc3QgRmxvYXRSZWN0JikKIAogdm9pZCBSZWNvcmRlcjo6Y2xpcFRvRHJhd2luZ0Nv
bW1hbmRzKGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIENvbG9yU3BhY2UgY29sb3JTcGFj
ZSwgRnVuY3Rpb248dm9pZChHcmFwaGljc0NvbnRleHQmKT4mJiBkcmF3aW5nRnVuY3Rpb24pCiB7
Ci0gICAgYXV0byByZWNvcmRpbmdDb250ZXh0ID0gbWFrZVVuaXF1ZTxEcmF3aW5nQ29udGV4dD4o
ZGVzdGluYXRpb24uc2l6ZSgpKTsKKyAgICAvLyBUaGUgaW5pdGlhbCBDVE0gbWF0Y2hlcyBJbWFn
ZUJ1ZmZlcidzIGluaXRpYWwgQ1RNLgorICAgIEFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0gPSBn
ZXRDVE0oR3JhcGhpY3NDb250ZXh0OjpEZWZpbml0ZWx5SW5jbHVkZURldmljZVNjYWxlKTsKKyAg
ICBGbG9hdFNpemUgc2NhbGVGYWN0b3IodHJhbnNmb3JtLnhTY2FsZSgpLCB0cmFuc2Zvcm0ueVNj
YWxlKCkpOworICAgIGF1dG8gc2NhbGVkU2l6ZSA9IGV4cGFuZGVkSW50U2l6ZShkZXN0aW5hdGlv
bi5zaXplKCkgKiBzY2FsZUZhY3Rvcik7CisKKyAgICBBZmZpbmVUcmFuc2Zvcm0gaW5pdGlhbENU
TTsKKyAgICBpbml0aWFsQ1RNLnNjYWxlKDEsIC0xKTsKKyAgICBpbml0aWFsQ1RNLnRyYW5zbGF0
ZSgwLCAtc2NhbGVkU2l6ZS5oZWlnaHQoKSk7CisgICAgaW5pdGlhbENUTS5zY2FsZShzY2FsZWRT
aXplIC8gZGVzdGluYXRpb24uc2l6ZSgpKTsKKworICAgIGF1dG8gcmVjb3JkaW5nQ29udGV4dCA9
IG1ha2VVbmlxdWU8RHJhd2luZ0NvbnRleHQ+KGRlc3RpbmF0aW9uLnNpemUoKSwgaW5pdGlhbENU
TSk7CiAgICAgZHJhd2luZ0Z1bmN0aW9uKHJlY29yZGluZ0NvbnRleHQtPmNvbnRleHQoKSk7CiAg
ICAgYXBwZW5kSXRlbShDbGlwVG9EcmF3aW5nQ29tbWFuZHM6OmNyZWF0ZShkZXN0aW5hdGlvbiwg
Y29sb3JTcGFjZSwgcmVjb3JkaW5nQ29udGV4dC0+dGFrZURpc3BsYXlMaXN0KCkpKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdFJlY29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCmluZGV4IDViOGE0NGM1MTgwYzFmZWFl
MDg1YzAxYTg4ZDA4NTRkNjk1Zjk1YTkuLjMxYzhjODk2Mzc4YzBjYWZiYjIxMTI4OTU5N2NlZTI4
YjRmYTc1ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaApAQCAtMjYs
NiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJEaXNwbGF5TGlzdC5oIgorI2lu
Y2x1ZGUgIkRpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmgiCiAjaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0SW1wbC5oIgogI2luY2x1ZGUgIkltYWdlLmgiIC8vIEZvciBJbWFnZTo6VGlsZVJ1
bGUuCiAjaW5jbHVkZSAiVGV4dEZsYWdzLmgiCkBAIC02MSw4ICs2Miw2IEBAIHB1YmxpYzoKIAog
ICAgIHNpemVfdCBpdGVtQ291bnQoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlMaXN0Lml0ZW1D
b3VudCgpOyB9CiAKLSAgICB2b2lkIGFwcGVuZEl0ZW1BbmRVcGRhdGVFeHRlbnQoUmVmPERyYXdp
bmdJdGVtPiYmKTsKLQogICAgIGNsYXNzIERlbGVnYXRlIHsKICAgICBwdWJsaWM6CiAgICAgICAg
IHZpcnR1YWwgfkRlbGVnYXRlKCkgeyB9CkBAIC03Miw2ICs3MSw3IEBAIHB1YmxpYzoKICAgICB9
OwogCiBwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBEcmF3R2x5cGhzUmVjb3JkZXI7CiAgICAg
Ym9vbCBoYXNQbGF0Zm9ybUNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsg
fQogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0KiBwbGF0Zm9ybUNvbnRleHQoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9CiAKQEAgLTE1MSw2ICsxNTEsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgYXBwZW5kSXRlbShSZWY8SXRlbT4mJik7CiAgICAgdm9pZCB3aWxsQXBwZW5k
SXRlbShjb25zdCBJdGVtJik7CiAgICAgdm9pZCBkaWRBcHBlbmRJdGVtKGNvbnN0IEl0ZW0mKTsK
KyAgICB2b2lkIGFwcGVuZEl0ZW1BbmRVcGRhdGVFeHRlbnQoUmVmPERyYXdpbmdJdGVtPiYmKTsK
IAogICAgIHZvaWQgYXBwZW5kU3RhdGVDaGFuZ2VJdGVtKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0
YXRlQ2hhbmdlJiwgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MpOwogCkBA
IC0xOTUsNiArMTk2LDggQEAgcHJpdmF0ZToKICAgICBEZWxlZ2F0ZSogbV9kZWxlZ2F0ZTsKIAog
ICAgIFZlY3RvcjxDb250ZXh0U3RhdGUsIDMyPiBtX3N0YXRlU3RhY2s7CisKKyAgICBEcmF3R2x5
cGhzUmVjb3JkZXIgbV9kcmF3R2x5cGhzUmVjb3JkZXI7CiB9OwogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412710</attachid>
            <date>2020-10-29 21:16:15 -0700</date>
            <delta_ts>2020-10-29 22:56:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217506-20201029211614.patch</filename>
            <type>text/plain</type>
            <size>52641</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI2OWI0YzJlYzgyOTE2
NzA1NGU2ZmMzMWVlN2I1NDU5ZDQ3NDRhMi4uMGY0ZTkxYjhlNzVlZTRkNmI4ZmFlMmNjZmY2ZDMx
NzhkZDYyNGU0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMyBAQAorMjAyMC0xMC0yOSAgTXls
ZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0g
W0dQVSBQcm9jZXNzXSBQZXJmb3JtIGltYWdlIGRlY29kaW5nIG9mIGNvbG9yIGZvbnRzIGluIHRo
ZSBXZWIgUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE3NTA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ29yZSBUZXh0IGl0c2VsZiBkb2Vzbid0IGtub3cgaG93IHRvIGRyYXcgdGhpbmdzOyBp
dCBoYXMgdG8gcmVseSBvbiBDb3JlIEdyYXBoaWNzIHRvIGRvIHRoYXQuCisgICAgICAgIEhvd2V2
ZXIsIENvcmUgR3JhcGhpY3Mgb25seSB1bmRlcnN0YW5kcyB0aGUgc2ltcGxlc3Qgb2YgdGV4dCBk
cmF3aW5nIGNvbmNlcHRzOyBpdCBkb2Vzbid0IHVuZGVyc3RhbmQKKyAgICAgICAgdGhpbmdzIGxp
a2UgY29sb3IgZm9udHMgb3IgZW1vamkuIENvcmUgVGV4dCBzaXRzIGJldHdlZW4gdGhlIGFwcGxp
Y2F0aW9uIGFuZCBDb3JlIEdyYXBoaWNzLCBhbmQgaXMKKyAgICAgICAgcmVzcG9uc2libGUgZm9y
IHNwbGl0dGluZyB1cCBhbiBhcmJpdHJhcnkgZHJhdyBjb21tYW5kIGludG8gaW5kaXZpZHVhbCBz
aW1wbGUgcGllY2VzIHdoaWNoIENvcmUKKyAgICAgICAgR3JhcGhpY3MgY2FuIHVuZGVyc3RhbmQu
IEZvciBleGFtcGxlLCB3aGVuIHlvdSBhc2sgQ29yZSBUZXh0IHRvIGRyYXcgYSBzdHJpbmcgd2hp
Y2ggaW5jbHVkZXMgYW4gZW1vamkKKyAgICAgICAgY2hhcmFjdGVyLCBDb3JlIFRleHQgd2lsbCBl
bmQgdXAgdGVsbGluZyBDb3JlIEdyYXBoaWNzIHRvIGRyYXcgYWxsIHRoZSBvdXRsaW5lcywgYW5k
IHRoZW4gdGVsbGluZyBDb3JlCisgICAgICAgIEdyYXBoaWNzIHRvIGRyYXcgdGhlIGVtb2ppIGlt
YWdlICh1c2luZyBDb3JlIEdyYXBoaWNzJ3Mgbm9ybWFsIGltYWdlIGRyYXdpbmcgcm91dGluZXMp
LgorCisgICAgICAgIFRoaXMgaXMgZXhhY3RseSB0aGUgc2FtZSBraW5kIG9mIGZpbHRlcmluZyB3
ZSB3YW50IHRvIGRvIGZvciB0aGUgR1BVIFByb2Nlc3MuIFdlIHdhbnQgdG8gYmUgYWJsZSB0bwor
ICAgICAgICBzZXBhcmF0ZSBvdXQgdGhlIGdseXBocyB3aGljaCBhcmUgcmVuZGVyZWQgdXNpbmcg
b3V0bGluZXMgZnJvbSB0aGUgZW1vamkgZ2x5cGhzIHdoaWNoIGFyZSByZW5kZXJlZAorICAgICAg
ICB1c2luZyBpbWFnZXMuIFdlIHdhbnQgdG8gaGFuZGxlIHRoZSBpbWFnZSBnbHlwaHMgb3Vyc2Vs
ZiBpbiBXZWJLaXQgdXNpbmcgb3VyIG93biBpbWFnZSBkcmF3aW5nIGRpc3BsYXkKKyAgICAgICAg
bGlzdCBmYWNpbGl0aWVzLCB3aGljaCB3aWxsIGNhdXNlIGltYWdlcyB0byBiZSBkZWNvZGVkIGlu
IHRoZSBXZWIgUHJvY2VzcywgdGhlcmVieSBpbmNyZWFzaW5nIHRoZQorICAgICAgICBzZWN1cml0
eSBvZiB0aGUgR1BVIFByb2Nlc3MuCisKKyAgICAgICAgU28sIHRoaXMgcGF0Y2ggaW1wbGVtZW50
cyBhIGN1c3RvbSBDR0NvbnRleHQsIGJhY2tlZCBieSBhIGZ1bmN0aW9uIHRhYmxlIHRoYXQgaXMg
cG9wdWxhdGVkIGluIFdlYktpdC4KKyAgICAgICAgV2UgcGFzcyB0aGlzIGN1c3RvbSBDR0NvbnRl
eHQgaW50byBDb3JlIFRleHQsIHdoaWNoIGRvZXMgaXRzIG5vcm1hbCBzcGxpdHRpbmcgdXAgb2Yg
b3V0bGluZXMgLyBpbWFnZXMsCisgICAgICAgIGFuZCBjYWxscyBnbHlwaCAvIGltYWdlIGRyYXdp
bmcgZnVuY3Rpb25zIG9uIG91ciBDR0NvbnRleHQuIEJlY2F1c2UgdGhlc2UgZnVuY3Rpb25zIGFy
ZSBpbXBsZW1lbnRlZCBieQorICAgICAgICBXZWJLaXQsIHRoaXMgZWZmZWN0aXZlbHkgbWFrZXMg
V2ViS2l0IGFibGUgdG8gaW50ZXJjZXB0IHRoZSBkcmF3aW5nIGNhbGxzLCBhbmQgaW1wbGVtZW50
IHRoZW0gb3Vyc2VsZgorICAgICAgICBieSBhcHBlbmRpbmcgaXRlbXMgdG8gdGhlIGN1cnJlbnQg
ZGlzcGxheSBsaXN0LiBTbywgd2hlbiBDb3JlIFRleHQgdGVsbHMgb3VyIENHQ29udGV4dCB0byBk
cmF3IGFuIGVtb2ppLAorICAgICAgICBvdXIgY2FsbGJhY2sgcnVucyBhbmQgd2UgImp1c3QiIGFw
cGVuZCBhIERyYXdJbWFnZSBkaXNwbGF5IGxpc3QgaXRlbS4KKworICAgICAgICBJIHVzZSBzY2Fy
ZS1xdW90ZXMgYXJvdW5kICJqdXN0IiBiZWNhdXNlIGl0IGlzIGEgYml0IG1vcmUgY29tcGxpY2F0
ZWQgdGhhbiB0aGF0LiBDb3JlIFRleHQgaW50ZXJuYWxseQorICAgICAgICBjYW4gY2hhbmdlIHRo
ZSBmaWxsL3N0cm9rZSBjb2xvciAoZm9yIENPTFIgZ2x5cGhzKSwgdGhlIHRleHQgbWF0cml4IChp
dCBzaG91bGQgYmUgdXBkYXRlZCBiZXR3ZWVuCisgICAgICAgIGFkamFjZW50IHJ1bnMpLCB0aGUg
Q1RNLCBhbmQgdGhlIHNoYWRvdyBzdGF0ZSAoYmVjYXVzZSBDb3JlIFRleHQgc29tZXRpbWVzIHdp
bGwgaW1wbGVtZW50IHNoYWRvd3MgaXRzZWxmCisgICAgICAgIGJ5IGp1c3QgZHJhd2luZyB0aGUg
dGV4dCB0d28gdGltZXMpLiBTbywgaW4gb3VyIENHQ29udGV4dCBjYWxsYmFjaywgd2UgaGF2ZSB0
byBsb29rIGF0IHRoZSBzdGF0ZSBvZgorICAgICAgICB0aGUgQ0dDb250ZXh0LCBmaWd1cmUgb3V0
IGlmIGFueXRoaW5nIGNoYW5nZWQgKGJlY2F1c2Ugd2UncmUgbm90IG5vdGlmaWVkIHdoZW4gY2hh
bmdlcyBoYXBwZW4pLCBhbmQKKyAgICAgICAgaWYgdGhpbmdzIGRpZCBjaGFuZ2UsIGFwcGVuZCBh
ZGRpdGlvbmFsIGRpc3BsYXkgbGlzdCBpdGVtcyB0byBtYWtlIGEgcGFyYWxsZWwgY2hhbmdlIGhh
cHBlbiBhdCBkcmF3CisgICAgICAgIHRpbWUuCisKKyAgICAgICAgVGVzdHMgYWRkZWQgaW4gaHR0
cHM6Ly90cmFjLndlYmtpdC5vcmcvcjI2OTE3NworCisgICAgICAgICogSGVhZGVycy5jbWFrZToK
KyAgICAgICAgKiBQbGF0Zm9ybUFwcGxlV2luLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtV2lu
Q2Fpcm8uY21ha2U6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vRnJlZVR5
cGUuY21ha2U6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0Jh
Y2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJDR0JhY2tlbmQ6OnNldHVw
Q29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udENhc2Nh
ZGVDb3JlVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaWxsVmVjdG9yV2l0aEhvcml6b250
YWxHbHlwaFBvc2l0aW9ucyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmg6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRl
ckNvcmVUZXh0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6YmVn
aW5MYXllcik6IFZUYWJsZSBjYWxsYmFjayBmb3IgY3JlYXRpbmcgYSB0cmFuc3BhcmVuY3kgbGF5
ZXIuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6ZW5kTGF5ZXIpOiBEaXR0byBmb3Ig
ZW5kaW5nIGEgdHJhbnNwYXJlbmN5IGxheWVyLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OmRyYXdHbHlwaHMpOiBWVGFibGUgY2FsbGJhY2sgZm9yIGRyYXdpbmcgb3V0bGluZSBnbHlw
aHMuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6ZHJhd0ltYWdlKTogVlRhYmxlIGNh
bGxiYWNrIGZvciBkcmF3aW5nIGFuIGltYWdlLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6Y3JlYXRlSW50ZXJuYWxDb250ZXh0KTogU2V0IHVwIHRo
ZSBjdXN0b20gQ0dDb250ZXh0CisgICAgICAgIGluZnJhc3RydWN0dXJlLiBIb29rIHVwIHRoZSBW
VGFibGUgY2FsbGJhY2tzLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlw
aHNSZWNvcmRlcjo6RHJhd0dseXBoc1JlY29yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnBvcHVsYXRlSW50ZXJuYWxTdGF0ZSk6IFdlIG5l
ZWQgdG8gc2F2ZSB0aGUgR3JhcGhpY3NDb250ZXh0CisgICAgICAgIHN0YXRlIGF0IHRoZSBiZWdp
bm5pbmcgb2YgdGhlIGVudHJ5IHBvaW50LCBzbyB3ZSBjYW4gcmVzdG9yZSBhbnl0aGluZyB0aGF0
IGNoYW5nZWQgd2hlbiB3ZSdyZSBkb25lLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdHbHlwaHNSZWNvcmRlcjo6cG9wdWxhdGVJbnRlcm5hbENvbnRleHQpOiBCZWNhdXNlIENv
cmUgVGV4dCBpbnRlcm5hbGx5CisgICAgICAgIGludGVycm9nYXRlcyB0aGUgQ0dDb250ZXh0IHRv
IHNlZSBpZiBpdCBuZWVkcyB0byBkbyB0aGluZ3MgbGlrZSBkcmF3IHNoYWRvd3MgaXRzZWxmLCB3
ZSBuZWVkIHRvIG1ha2UKKyAgICAgICAgc3VyZSB0aGF0IHRoZSByZWNvcmRlcidzIHN0YXRlIGlz
IG1pcnJvcmVkIGluIG91ciBjdXN0b20gQ0dDb250ZXh0LiBUaGlzIGFwcGxpZXMgYWxsIHRoZSBy
ZWxldmFudAorICAgICAgICBzdGF0ZSB0byBvdXIgQ0dDb250ZXh0IHNvIGl0J3MgcmVhZHkgd2hl
biBDb3JlIFRleHQgYXNrcyBmb3IgaXQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
RHJhd0dseXBoc1JlY29yZGVyOjpwcmVwYXJlSW50ZXJuYWxDb250ZXh0KTogQ2FsbCB0aGUgYWJv
dmUgdHdvIGZ1bmN0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5
cGhzUmVjb3JkZXI6OmNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KTogQ2FsbGVkIG9uY2Ugd2hlbiB3
ZSdyZSBkb25lLgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGNsZWFucyB1cCwgYnkgcG9zc2libHkg
YXBwZW5kaW5nIGFkZGl0aW9uYWwgZGlzcGxheSBsaXN0IGl0ZW1zIHRvIHJlc3RvcmUgdGhlIHN0
YXRlCisgICAgICAgIGJhY2sgdG8gd2hhdCBpdCB3YXMgd2hlbiB3ZSBzdGFydGVkLgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6dXBkYXRlRmlsbENv
bG9yKTogRGV0ZWN0IGEgY2hhbmdlZCBmaWxsIGNvbG9yLCBhbmQgaWYgaXQgaGFzCisgICAgICAg
IGNoYW5nZWQsIGFwcGVuZCBhIGRpc3BsYXkgbGlzdCBpdGVtIHRvIG1ha2UgYSBwYXJhbGxlbCBj
aGFuZ2UgYXQgZHJhd2luZyB0aW1lLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRy
YXdHbHlwaHNSZWNvcmRlcjo6dXBkYXRlU3Ryb2tlQ29sb3IpOiBEaXR0byBmb3IgdGhlIHN0cm9r
ZSBjb2xvci4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3Jk
ZXI6OnVwZGF0ZUNUTSk6IERpdHRvIGZvciB0aGUgQ1RNLgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OnNoYWRvd0lzQ2xlYXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVTaGFkb3cpOiBEaXR0byBmb3IgdGhlIHNoYWRv
dyBzdGF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3Jk
ZXI6OnJlY29yZEJlZ2luTGF5ZXIpOiBIb29rIHRoaXMgdXAgdG8gYmVnaW5UcmFuc3BhcmVuY3lM
YXllcigpLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRl
cjo6cmVjb3JkRW5kTGF5ZXIpOiBIb29rIHRoaXMgdXAgdG8gZW5kVHJhbnNwYXJlbmN5TGF5ZXIo
KS4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0Ojpjb21wdXRlQWR2YW5jZXNGcm9tUG9z
aXRpb25zKTogQ0dDb250ZXh0IGdpdmVzIHVzIHBvc2l0aW9ucywgYnV0IG91ciBkaXNwbGF5IGxp
c3QKKyAgICAgICAgaW5mcmFzdHJ1Y3R1cmUgcmVxdWlyZXMgYWR2YW5jZXMuIFNpbXBseSBzdWJ0
cmFjdCB0byBjb252ZXJ0IGJldHdlZW4gdGhlbS4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZERyYXdHbHlwaHMpOiBUaGUgY2FsbGJhY2sg
dGhhdCBhcHBlbmRzIGEgRHJhd0dseXBocworICAgICAgICBkaXNwbGF5IGxpc3QgaXRlbS4gTm90
ZSBpdCBoYXMgdG8gY2FsbCB0aGUgdmFyaW91cyB1cGRhdGUoKSBmdW5jdGlvbnMgdG8gZGV0ZWN0
IGNoYW5nZXMgaW4gdGhlIENHQ29udGV4dAorICAgICAgICBzdGF0ZS4KKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZERyYXdJbWFnZSk6IERp
dHRvIGZvciBhIERyYXdJbWFnZSBkaXNwbGF5IGxpc3QgaXRlbS4KKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OmRyYXdHbHlwaHMpOiBUaGUgbWFpbiBl
bnRyeSBwb2ludC4gU2ltcGx5IHNldCB1cCwgZG8gdGhlIHdvcmssCisgICAgICAgIHRoZW4gY2xl
YW4gdXAuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0RHJhd0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwOiBBZGRlZC4gRHVtbXkgaW1wbGVtZW50
YXRpb24KKyAgICAgICAgdG8gbWFrZSB0aGUgb3RoZXIgcG9ydHMgY29udGludWUgdG8gY29tcGls
ZS4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OkRy
YXdHbHlwaHNSZWNvcmRlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ds
eXBoc1JlY29yZGVyOjpkcmF3R2x5cGhzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6UmVjb3JkZXI6OlJlY29yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpSZWNvcmRlcjo6ZHJhd0dseXBocyk6IENhbGwgbV9kcmF3R2x5cGhzUmVjb3JkZXIu
ZHJhd0dseXBocygpIGluc3RlYWQgb2YganVzdAorICAgICAgICBhcHBlbmRpbmcgYSBEcmF3R2x5
cGhzIGNvbW1hbmQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmNv
bmNhdENUTSk6IFRpbnkgb3B0aW1pemF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlJlY29yZGVyOjpjbGlwVG9EcmF3aW5nQ29tbWFuZHMpOiBUaGUgY3VycmVudCBjbGlwVG9E
cmF3aW5nQ29tbWFuZHMncyBjb250ZXh0CisgICAgICAgIENUTSBkaWRuJ3QgbWF0Y2ggdGhlIHBh
cmFsbGVsIG9uZSB1c2VkIGR1cmluZyBwbGF5YmFjay4gSW4gb3JkZXIgdG8gbWFrZSB0aGUgQ1RN
cyBtYXRjaCBhcmUgcmVjb3JkaW5nCisgICAgICAgIGFuZCBwbGF5YmFjayB0aW1lLCB3ZSBoYXZl
IHRvIG1ha2Ugc3VyZSB0aGV5IHN0YXJ0IG9mZiB0aGUgc2FtZS4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oOiBEaXNwbGF5TGlz
dDo6UmVjb3JkZXIgb3ducyBhIERyYXdHbHlwaHNSZWNvcmRlciwKKyAgICAgICAgd2hvc2UgbGlm
ZXRpbWUgZXF1YWxzIHRoYXQgb2YgdGhlIERpc3BsYXlMaXN0OjpSZWNvcmRlci4gUmF0aGVyIHRo
YW4gZGVzdHJveWluZyAvIHJlY3JlYXRpbmcgdGhlCisgICAgICAgIERyYXdHbHlwaHNSZWNvcmRl
ciwgdGhlIERyYXdHbHlwaHNSZWNvcmRlciBjbGFzcyBpcyBzbWFydCBlbm91Z2ggdG8gY2xlYW4g
dXAgYWZ0ZXIgaXRzZWxmIHNvIGl0IGNhbiBiZQorICAgICAgICByZXVzZWQgbXVsdGlwbGUgdGlt
ZXMuCisKIDIwMjAtMTAtMjkgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgog
CiAgICAgICAgIFtDb2NvYV0gUmVtb3ZlIHNvZnQgbGlua2luZyBvZiBOZXR3b3JrRXh0ZW5zaW9u
LmZyYW1ld29yawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggYzRkMzM0MjlkYmU2YjBjMjBkYTc5MjMx
YzZiMzNlZmM4YmQ1Nzk2Mi4uMDQ4MThmYTFhMzgwYzljMjE1MzMzYjgxM2NkOTVlMWRjNzU5NzM0
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMTAtMjkgIE15bGVz
IEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFtH
UFUgUHJvY2Vzc10gUGVyZm9ybSBpbWFnZSBkZWNvZGluZyBvZiBjb2xvciBmb250cyBpbiB0aGUg
V2ViIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxNzUwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBzb21lIG5ldyBlbnRyeSBwb2ludHMsIGFuZCBkbyBzb21lIHZhcmlvdXMgY2xlYW51
cC4KKworICAgICAgICAqIHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg6CisKIDIwMjAtMTAt
MTMgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBs
ZWZ0b3ZlciBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4IHN1cHBvcnQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCmluZGV4IDY4ODRkMGY4NmQyOWRjMTQ5MTY2MTE3YmE1Yzk2NGQxMGIzM2JkZGYuLjI4
MDFhZDZmZDg1ZmMzNjRlOGQwNjUxNDQ5MjM5YTcyOTE1OWY0YjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQpAQCAtMTIzNyw2ICsxMjM3LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVB
REVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0V4dGVuc2lvbnNHTEFOR0xFLmgKIAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5oCisgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVy
LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5n
Q29udGV4dC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SW1hZ2VCdWZmZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1zLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0Nv
cmVHcmFwaGljc1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBo
aWNzU1BJLmgKaW5kZXggYTdmODJiODYxYjYyYzRhZWZiODNjMTgxMWQ1NWM3YWY3NDllNmI5MS4u
NDAwNDZlMGUwNDhiM2RmNjBmYmRmNzAzNDA2MmU3ODlhNzc2YTU3MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKQEAgLTM4LDYgKzM4LDcg
QEAKIAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKKyNpbmNsdWRlIDxDb3JlR3JhcGhp
Y3MvQ0dDb250ZXh0RGVsZWdhdGVQcml2YXRlLmg+CiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NH
Rm9udENhY2hlLmg+CiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHUGF0aFByaXZhdGUuaD4KICNp
bmNsdWRlIDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBoaWNzUHJpdmF0ZS5oPgpAQCAtNTgsMTkgKzU5
LDEyIEBAIHN0cnVjdCBDR0ZvbnRITWV0cmljcyB7CiAgICAgaW50IG1pblJpZ2h0U2lkZUJlYXJp
bmc7CiB9OwogCi1zdHJ1Y3QgQ0dGb250RGVzY3JpcHRvciB7Ci0gICAgQ0dSZWN0IGJib3g7Ci0g
ICAgQ0dGbG9hdCBhc2NlbnQ7Ci0gICAgQ0dGbG9hdCBkZXNjZW50OwotICAgIENHRmxvYXQgY2Fw
SGVpZ2h0OwotICAgIENHRmxvYXQgaXRhbGljQW5nbGU7Ci0gICAgQ0dGbG9hdCBzdGVtVjsKLSAg
ICBDR0Zsb2F0IHN0ZW1IOwotICAgIENHRmxvYXQgYXZnV2lkdGg7Ci0gICAgQ0dGbG9hdCBtYXhX
aWR0aDsKLSAgICBDR0Zsb2F0IG1pc3NpbmdXaWR0aDsKLSAgICBDR0Zsb2F0IGxlYWRpbmc7Ci0g
ICAgQ0dGbG9hdCB4SGVpZ2h0OwordHlwZWRlZiBDRl9FTlVNIChpbnQzMl90LCBDR0NvbnRleHRE
ZWxlZ2F0ZUNhbGxiYWNrTmFtZSkKK3sKKyAgICBkZURyYXdJbWFnZSA9IDcsCisgICAgZGVEcmF3
R2x5cGhzID0gOCwKKyAgICBkZUJlZ2luTGF5ZXIgPSAxNywKKyAgICBkZUVuZExheWVyID0gMTgs
CiB9OwogCiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBDR0NvbG9yVHJhbnNmb3JtKiBDR0NvbG9yVHJh
bnNmb3JtUmVmOwpAQCAtMTc3LDggKzE3MSwyNCBAQCBzdHJ1Y3QgQ0dGb2N1c1JpbmdTdHlsZSB7
CiB9OwogdHlwZWRlZiBzdHJ1Y3QgQ0dGb2N1c1JpbmdTdHlsZSBDR0ZvY3VzUmluZ1N0eWxlOwog
CitzdHJ1Y3QgQ0dTaGFkb3dTdHlsZSB7CisgICAgdW5zaWduZWQgYTsKKyAgICBDR0Zsb2F0IGI7
CisgICAgQ0dGbG9hdCBhemltdXRoOworICAgIENHRmxvYXQgYzsKKyAgICBDR0Zsb2F0IGhlaWdo
dDsKKyAgICBDR0Zsb2F0IHJhZGl1czsKKyAgICBDR0Zsb2F0IGQ7Cit9OwordHlwZWRlZiBzdHJ1
Y3QgQ0dTaGFkb3dTdHlsZSBDR1NoYWRvd1N0eWxlOworCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09D
T0EpCiAKK3R5cGVkZWYgQ0ZfRU5VTSAoaW50MzJfdCwgQ0dTdHlsZVR5cGUpCit7CisgICAga0NH
U3R5bGVTaGFkb3cgPSAxLAorfTsKKwogI2lmIFBMQVRGT1JNKE1BQykKIAogdHlwZWRlZiBDRl9F
TlVNKHVpbnQzMl90LCBDR1NOb3RpZmljYXRpb25UeXBlKSB7CkBAIC0xOTMsNiArMjAzLDEyIEBA
IHN0YXRpYyBjb25zdCBDR1NOb3RpZmljYXRpb25UeXBlIGtDR1Nlc3Npb25Db25zb2xlRGlzY29u
bmVjdCA9IChDR1NOb3RpZmljYXRpb25UCiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKK3R5
cGVkZWYgc3RydWN0IENHQ29udGV4dERlbGVnYXRlICpDR0NvbnRleHREZWxlZ2F0ZVJlZjsKK3R5
cGVkZWYgdm9pZCAoKkNHQ29udGV4dERlbGVnYXRlQ2FsbGJhY2spKHZvaWQpOwordHlwZWRlZiBz
dHJ1Y3QgQ0dSZW5kZXJpbmdTdGF0ZSAqQ0dSZW5kZXJpbmdTdGF0ZVJlZjsKK3R5cGVkZWYgc3Ry
dWN0IENHR1N0YXRlICpDR0dTdGF0ZVJlZjsKK3R5cGVkZWYgc3RydWN0IENHU3R5bGUgKkNHU3R5
bGVSZWY7CisKICNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCiAjaWYgUExBVEZP
Uk0oQ09DT0EpCkBAIC0yMDMsNyArMjE5LDYgQEAgdHlwZWRlZiB1aW50MzJfdCBDR1NXaW5kb3dJ
RDsKIAogdHlwZWRlZiBDR1NXaW5kb3dJRCogQ0dTV2luZG93SURMaXN0OwogdHlwZWRlZiBzdHJ1
Y3QgQ0ZfQlJJREdFRF9UWVBFKGlkKSBDR1NSZWdpb25PYmplY3QqIENHU1JlZ2lvbk9iajsKLXR5
cGVkZWYgc3RydWN0IENGX0JSSURHRURfVFlQRShpZCkgQ0dTdHlsZSogQ0dTdHlsZVJlZjsKIAog
dHlwZWRlZiB2b2lkKiBDR1NOb3RpZmljYXRpb25Bcmc7CiB0eXBlZGVmIHZvaWQqIENHU05vdGlm
aWNhdGlvbkRhdGE7CkBAIC0yMzMsNyArMjQ4LDYgQEAgdm9pZCBDR0NvbnRleHRSZXNldENsaXAo
Q0dDb250ZXh0UmVmKTsKIENHQ29udGV4dFR5cGUgQ0dDb250ZXh0R2V0VHlwZShDR0NvbnRleHRS
ZWYpOwogCiBDRlN0cmluZ1JlZiBDR0ZvbnRDb3B5RmFtaWx5TmFtZShDR0ZvbnRSZWYpOwotYm9v
bCBDR0ZvbnRHZXREZXNjcmlwdG9yKENHRm9udFJlZiwgQ0dGb250RGVzY3JpcHRvciopOwogYm9v
bCBDR0ZvbnRHZXRHbHlwaEFkdmFuY2VzRm9yU3R5bGUoQ0dGb250UmVmLCBjb25zdCBDR0FmZmlu
ZVRyYW5zZm9ybSogLCBDR0ZvbnRSZW5kZXJpbmdTdHlsZSwgY29uc3QgQ0dHbHlwaFtdLCBzaXpl
X3QgY291bnQsIENHU2l6ZSBhZHZhbmNlc1tdKTsKIHZvaWQgQ0dGb250R2V0R2x5cGhzRm9yVW5p
Y2hhcnMoQ0dGb250UmVmLCBjb25zdCBVbmlDaGFyW10sIENHR2x5cGhbXSwgc2l6ZV90IGNvdW50
KTsKIGNvbnN0IENHRm9udEhNZXRyaWNzKiBDR0ZvbnRHZXRITWV0cmljcyhDR0ZvbnRSZWYpOwpA
QCAtMjUyLDYgKzI2NiwyMSBAQCBib29sIENHQ29udGV4dEdldEFsbG93c0ZvbnRTdWJwaXhlbFBv
c2l0aW9uaW5nKENHQ29udGV4dFJlZik7CiBib29sIENHQ29udGV4dERyYXdzV2l0aENvcnJlY3RT
aGFkb3dPZmZzZXRzKENHQ29udGV4dFJlZik7CiBDR1BhdHRlcm5SZWYgQ0dQYXR0ZXJuQ3JlYXRl
V2l0aEltYWdlMihDR0ltYWdlUmVmLCBDR0FmZmluZVRyYW5zZm9ybSwgQ0dQYXR0ZXJuVGlsaW5n
KTsKIAorQ0dDb250ZXh0RGVsZWdhdGVSZWYgQ0dDb250ZXh0RGVsZWdhdGVDcmVhdGUodm9pZCog
aW5mbyk7Cit2b2lkIENHQ29udGV4dERlbGVnYXRlU2V0Q2FsbGJhY2soQ0dDb250ZXh0RGVsZWdh
dGVSZWYsIENHQ29udGV4dERlbGVnYXRlQ2FsbGJhY2tOYW1lLCBDR0NvbnRleHREZWxlZ2F0ZUNh
bGxiYWNrKTsKK0NHQ29udGV4dFJlZiBDR0NvbnRleHRDcmVhdGVXaXRoRGVsZWdhdGUoQ0dDb250
ZXh0RGVsZWdhdGVSZWYsIENHQ29udGV4dFR5cGUsIENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0
YXRlUmVmKTsKK3ZvaWQqIENHQ29udGV4dERlbGVnYXRlR2V0SW5mbyhDR0NvbnRleHREZWxlZ2F0
ZVJlZik7Cit2b2lkIENHQ29udGV4dERlbGVnYXRlUmVsZWFzZShDR0NvbnRleHREZWxlZ2F0ZVJl
Zik7CitDR0Zsb2F0IENHR1N0YXRlR2V0QWxwaGEoQ0dHU3RhdGVSZWYpOworQ0dGb250UmVmIENH
R1N0YXRlR2V0Rm9udChDR0dTdGF0ZVJlZik7Citjb25zdCBDR0FmZmluZVRyYW5zZm9ybSAqQ0dH
U3RhdGVHZXRDVE0oQ0dHU3RhdGVSZWYpOworQ0dDb2xvclJlZiBDR0dTdGF0ZUdldEZpbGxDb2xv
cihDR0dTdGF0ZVJlZik7CitDR0NvbG9yUmVmIENHR1N0YXRlR2V0U3Ryb2tlQ29sb3IoQ0dHU3Rh
dGVSZWYpOworQ0dTdHlsZVJlZiBDR0dTdGF0ZUdldFN0eWxlKENHR1N0YXRlUmVmKTsKK0NHU3R5
bGVUeXBlIENHU3R5bGVHZXRUeXBlKENHU3R5bGVSZWYpOworY29uc3Qgdm9pZCAqQ0dTdHlsZUdl
dERhdGEoQ0dTdHlsZVJlZik7CitDR0NvbG9yUmVmIENHU3R5bGVHZXRDb2xvcihDR1N0eWxlUmVm
KTsKKwogI2lmIEhBVkUoQ0dQQVRIX0dFVF9OVU1CRVJfT0ZfRUxFTUVOVFMpCiBzaXplX3QgQ0dQ
YXRoR2V0TnVtYmVyT2ZFbGVtZW50cyhDR1BhdGhSZWYpOwogI2VuZGlmCkBAIC0yODYsMTYgKzMx
NSw5IEBAIENHUmVjdCogQ0dTTmV4dFJlY3QoY29uc3QgQ0dTUmVnaW9uRW51bWVyYXRvck9iaik7
CiBDR1NSZWdpb25FbnVtZXJhdG9yT2JqIENHU1JlZ2lvbkVudW1lcmF0b3IoQ0dSZWdpb25SZWYp
OwogQ0dTdHlsZVJlZiBDR1N0eWxlQ3JlYXRlRm9jdXNSaW5nV2l0aENvbG9yKGNvbnN0IENHRm9j
dXNSaW5nU3R5bGUqLCBDR0NvbG9yUmVmKTsKIHZvaWQgQ0dDb250ZXh0U2V0U3R5bGUoQ0dDb250
ZXh0UmVmLCBDR1N0eWxlUmVmKTsKLQogdm9pZCBDR0NvbnRleHREcmF3Q29uaWNHcmFkaWVudChD
R0NvbnRleHRSZWYsIENHR3JhZGllbnRSZWYsIENHUG9pbnQgY2VudGVyLCBDR0Zsb2F0IGFuZ2xl
KTsKLQotI2lmIEhBVkUoQ0dfUEFUSF9VTkVWRU5fQ09STkVSU19ST1VOREVEUkVDVCkKIHZvaWQg
Q0dQYXRoQWRkVW5ldmVuQ29ybmVyc1JvdW5kZWRSZWN0KENHTXV0YWJsZVBhdGhSZWYsIGNvbnN0
IENHQWZmaW5lVHJhbnNmb3JtICosIENHUmVjdCwgY29uc3QgQ0dTaXplIGNvcm5lcnNbNF0pOwot
I2VuZGlmCi0KLSNpZiBIQVZFKENHX0ZPTlRfUkVOREVSSU5HX0dFVF9GT05UX1NNT09USElOR19E
SVNBQkxFRCkKIGJvb2wgQ0dGb250UmVuZGVyaW5nR2V0Rm9udFNtb290aGluZ0Rpc2FibGVkKHZv
aWQpOwotI2VuZGlmCiAKICNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKIApAQCAtMzI4LDE1ICsz
NTAsMTAgQEAgYm9vbCBDb2xvclN5bmNQcm9maWxlSXNXaWRlR2FtdXQoQ29sb3JTeW5jUHJvZmls
ZVJlZik7CiBzaXplX3QgQ0dEaXNwbGF5TW9kZUdldFBpeGVsc1dpZGUoQ0dEaXNwbGF5TW9kZVJl
Zik7CiBzaXplX3QgQ0dEaXNwbGF5TW9kZUdldFBpeGVsc0hpZ2goQ0dEaXNwbGF5TW9kZVJlZik7
CiAKLSNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCi0KIENHRXJy
b3IgQ0dTU2V0RGVueVdpbmRvd1NlcnZlckNvbm5lY3Rpb25zKGJvb2wpOwotCiB0eXBlZGVmIGlu
dDMyX3QgQ0dTRGlzcGxheUlEOwogQ0dTRGlzcGxheUlEIENHU01haW5EaXNwbGF5SUQodm9pZCk7
CiAKLSNlbmRpZiAvLyBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCi0K
ICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKICNpZiBFTkFCTEUoUERGS0lUX1BMVUdJTikgJiYg
IVVTRShBUFBMRV9JTlRFUk5BTF9TREspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0
Zm9ybUFwcGxlV2luLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1BcHBsZVdpbi5jbWFr
ZQppbmRleCBhNzg4ZTY5ZGU3NDQxYzk0MDg0ZjcwMzZhM2U4ZjQ5YWQ0NTFhNThkLi4zOGEyYjc3
Njg5NTU5OGE0ZjRlMzZhZGU3YzYwM2IwNDA3OGRkYzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybUFwcGxlV2luLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
QXBwbGVXaW4uY21ha2UKQEAgLTMwLDYgKzMwLDggQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VS
Q0VTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbkNGLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9jZi9XZWJDb3JlQVZDRlJlc291cmNlTG9hZGVyLmNwcAogCisgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3Bw
CisKICAgICBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAK
IAogICAgIHBsYXRmb3JtL25ldHdvcmsvY2YvQXV0aGVudGljYXRpb25DRi5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9QbGF0Zm9ybVdpbkNhaXJvLmNtYWtlCmluZGV4IGE2ODk2NDc3ZGUwY2Y1MDM0ZjNmZDA5ZjNm
MGM3NmE3ZGE2ZWM4YTEuLjA3NzhmNzU1NjZjNjQ2MzAyMGEwZTA3YzUyYTY1YzFhNDc0ZjYyODkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5DYWlyby5jbWFrZQpAQCAtMjIsNiArMjIsOCBAQCBs
aXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRl
eHQuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcAogCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29y
ZGVySGFyZkJ1enouY3BwCisKICAgICBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBs
YXRmb3JtRGF0YUNhaXJvLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZv
cm1EYXRhQ2Fpcm9XaW4uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dseXBoUGFnZVRy
ZWVOb2RlQ2Fpcm9XaW4uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29j
b2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCBlYjRlMTdmMmU3
MzZlYTg2ODFjNTZkMjAyNTE0OTI2YjhkYzk5NDUwLi4yYWQzM2E5NTUxOTJkOTA3NmViM2Q4YzE2
MmNmZTM4NjIyZGZiMThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2Eu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTM3OSw2ICszNzks
NyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tCiBwbGF0
Zm9ybS9ncmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcAogcGxhdGZvcm0vZ3Jh
cGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jb3Jl
aW1hZ2UvRmlsdGVyRWZmZWN0UmVuZGVyZXJDb3JlSW1hZ2UubW0KK3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcAog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1RpbGluZ0RhdGEuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9n
cHUvY29jb2EvR1BVQmluZEdyb3VwQWxsb2NhdG9yTWV0YWwubW0KIHBsYXRmb3JtL2dyYXBoaWNz
L2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBMYXlvdXRNZXRhbC5tbQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZkZTk1YTdhMjY5ODgz
ZDUyYzZiOTc4ZjdiYTVjNGQxYmQxMGUwMGMuLmM1ZjE3NTI5ZGU5OTFjZTY1ODIwYmFhY2M1MzVi
YzJlYmUzYjE2OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTYyMCw2ICs2MjAsNyBAQAogCQkxQ0FGMzQ4MTBBNkM0MDUyMDBB
QkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQ0FGMzQ3RTBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2Jq
ZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
MUNBRjM0ODIwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdC5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUYzNDdGMEE2QzQwNTIwMEFC
RTA2RSAvKiBXZWJTY3JpcHRPYmplY3QubW0gKi87IH07CiAJCTFDQUYzNDgzMEE2QzQwNTIwMEFC
RTA2RSAvKiBXZWJTY3JpcHRPYmplY3RQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FGMzQ4MDBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2Ny
aXB0T2JqZWN0UHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTFDQUY1NkRCMjUzMDFBQzgwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdH
bHlwaHNSZWNvcmRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUNBRjU2RDgyNTMwMTQ1NzAwMTdCNDcyIC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1Jl
Y29yZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMUNDRDgxNTAyMjMxRjgzRTAwNjVGQzJCIC8qIFdlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3Bl
cmF0aW9uUXVldWVEZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUxNTI1NTE0MTZGRDIzNEYwMDNEN0FEQiAvKiBXZWJDb3JlUmVzb3VyY2VI
YW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0gKi87IH07CiAJCTFDQ0RGNUJFMTk5MDMz
MjQwMEJDRUJBRCAvKiBTVkdUb09URkZvbnRDb252ZXJzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0NERjVCQzE5OTAzMzI0MDBCQ0VCQUQgLyog
U1ZHVG9PVEZGb250Q29udmVyc2lvbi5oICovOyB9OwogCQkxQ0ZBRTMyMzBBNkQ2QTNGMDAzMjU5
M0QgLyogbGlib2JqYy5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFDRkFFMzIyMEE2RDZBM0YwMDMyNTkzRCAvKiBsaWJvYmpjLmR5bGliICov
OyB9OwpAQCAtNjczNSw2ICs2NzM2LDggQEAKIAkJMUNBRjM0N0UwQTZDNDA1MjAwQUJFMDZFIC8q
IFdlYlNjcmlwdE9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJT
Y3JpcHRPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBRjM0N0YwQTZD
NDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFdlYlNjcmlwdE9iamVjdC5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUNBRjM0ODAwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdFBy
aXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU2NyaXB0T2JqZWN0
UHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0FGNTZEODI1MzAxNDU3
MDAxN0I0NzIgLyogRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUNBRjU2REUyNTMwMjQ1QTAwMTdCNDcyIC8qIERpc3BsYXlMaXN0RHJhd0dseXBo
c1JlY29yZGVyQ29yZVRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGlzcGxheUxpc3REcmF3
R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFDQjVGRTg4MjJERUJDOEIwMDk0NDBFMiAvKiBXSExTTEVycm9yLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdITFNMRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNCNjlCMzIyMURF
RDQwQjAwNkU4NDZBIC8qIFdITFNMUmVzb2x2YWJsZVR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hM
U0xSZXNvbHZhYmxlVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0I2OUIz
NDIxREVENjNBMDA2RTg0NkEgLyogV0hMU0xGbG9hdExpdGVyYWxUeXBlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdITFNMRmxvYXRMaXRlcmFsVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTc2MDcsNiArMTc2MTAsOCBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMEZFNUZCQ0ExQzNE
RDUxRTAwMDdBMkNBIC8qIERpc3BsYXlMaXN0LmNwcCAqLywKIAkJCQkwRkU1RkJDQjFDM0RENTFF
MDAwN0EyQ0EgLyogRGlzcGxheUxpc3QuaCAqLywKKwkJCQkxQ0FGNTZEODI1MzAxNDU3MDAxN0I0
NzIgLyogRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCAqLywKKwkJCQkxQ0FGNTZERTI1
MzAyNDVBMDAxN0I0NzIgLyogRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5j
cHAgKi8sCiAJCQkJNTVDMEEyOTUyM0ZFMkNFMDAwRjJDQjkzIC8qIERpc3BsYXlMaXN0RHJhd2lu
Z0NvbnRleHQuY3BwICovLAogCQkJCTcyRUEwOUY5MjNGQ0NDNkEwMDg1MDRBNSAvKiBEaXNwbGF5
TGlzdERyYXdpbmdDb250ZXh0LmggKi8sCiAJCQkJNzJFQTA5RjcyM0ZDQ0IzRDAwODUwNEE1IC8q
IERpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaCAqLywKQEAgLTMxNDI5LDYgKzMxNDM0LDcgQEAKIAkJ
CQk3RURBQUZDOTE5QTJDQ0RDMDAzNERGRDEgLyogRGlza0NhY2hlTW9uaXRvckNvY29hLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjc5MEY0MjI1MTdDRTZFMDA5QkEwMzQgLyogRGlzcGxheUxheWVy
Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFNUZCRDMxQzNERDUxRTAwMDdBMkNB
IC8qIERpc3BsYXlMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0FGNTZEQjI1MzAxQUM4MDAx
N0I0NzIgLyogRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTU1QUQwOTQwMjQwODk2NDAwMERFNEQyRiAvKiBEaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1NUFEMDkzRTI0MDg5NjM1MDBERTREMkYgLyogRGlzcGxh
eUxpc3RJbWFnZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFNUZCRDUxQzNERDUxRTAw
MDdBMkNBIC8qIERpc3BsYXlMaXN0SXRlbXMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJlZVR5cGUuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9GcmVlVHlwZS5jbWFrZQppbmRleCA3YzA0ZDkzYTViODVjNzMyNTgxYzk1YTA2NWJl
MDViNjM2N2M3YWU0Li5mMzhiNTRlMTdjOTMxNTY1MTU0Y2FiOTUzYTgxZTBlOTZmNTc0OWE0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GcmVlVHlwZS5jbWFrZQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GcmVlVHlwZS5jbWFrZQpAQCAtNSw2ICs1LDggQEAgbGlz
dChBUFBFTkQgV2ViQ29yZV9QUklWQVRFX0lOQ0xVREVfRElSRUNUT1JJRVMKICkKIAogbGlzdChB
UFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwCisKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q2FjaGVGcmVlVHlwZS5jcHAKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9mcmVldHlwZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udFBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZm
ZXJDR0JhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1h
Z2VCdWZmZXJDR0JhY2tlbmQuY3BwCmluZGV4IDJhZDMxYWM1N2Q1ZjFiZGU3OTQxOWM1ZjkxNTY5
N2IzNzU0NGJiNDguLjViMjBkODkyZWQ4YmJjZjYwMTgxNmE2MzY3NmEwMGYxZmE1YzE3YjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVy
Q0dCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZUJ1ZmZlckNHQmFja2VuZC5jcHAKQEAgLTYxLDYgKzYxLDcgQEAgUmV0YWluUHRyPENHQ29s
b3JTcGFjZVJlZj4gSW1hZ2VCdWZmZXJDR0JhY2tlbmQ6OmNvbnRleHRDb2xvclNwYWNlKGNvbnN0
IEdyYXBoaWMKIAogdm9pZCBJbWFnZUJ1ZmZlckNHQmFja2VuZDo6c2V0dXBDb250ZXh0KCkKIHsK
KyAgICAvLyBUaGUgaW5pdGlhbCBDVE0gbWF0Y2hlcyBEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmNs
aXBUb0RyYXdpbmdDb21tYW5kcygpJ3MgaW5pdGlhbCBDVE0uCiAgICAgY29udGV4dCgpLnNjYWxl
KEZsb2F0U2l6ZSgxLCAtMSkpOwogICAgIGNvbnRleHQoKS50cmFuc2xhdGUoMCwgLW1fYmFja2Vu
ZFNpemUuaGVpZ2h0KCkpOwogICAgIGNvbnRleHQoKS5hcHBseURldmljZVNjYWxlRmFjdG9yKG1f
cmVzb2x1dGlvblNjYWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvcmV0ZXh0L0ZvbnRDYXNjYWRlQ29yZVRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udENhc2NhZGVDb3JlVGV4dC5jcHAKaW5kZXgg
NGE4ZTRlMGVhMTk0MTQ0MzYyNTBhNGJlOGFhNDVjYjcxZGIyMTZmYi4uZjk3ZjcwYjhmNzY0ODM4
MDcwNmY3ZDBiZTc1ZDRhMGQ5N2ZlODhmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udENhc2NhZGVDb3JlVGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udENhc2NhZGVDb3JlVGV4
dC5jcHAKQEAgLTY5LDYgKzY5LDE0IEBAIHN0YXRpYyBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHJv
dGF0ZUxlZnRUcmFuc2Zvcm0oKQogCiB2b2lkIGZpbGxWZWN0b3JXaXRoSG9yaXpvbnRhbEdseXBo
UG9zaXRpb25zKFZlY3RvcjxDR1BvaW50LCAyNTY+JiBwb3NpdGlvbnMsIENHQ29udGV4dFJlZiBj
b250ZXh0LCBjb25zdCBDR1NpemUqIGFkdmFuY2VzLCB1bnNpZ25lZCBjb3VudCwgY29uc3QgRmxv
YXRQb2ludCYgcG9pbnQpCiB7CisgICAgLy8gVGhlIGlucHV0IHBvc2l0aW9ucyBhcmUgaW4gdGhl
IGNvbnRleHQncyBjb29yZGluYXRlIHN5c3RlbSwgd2l0aG91dCB0aGUgdGV4dCBtYXRyaXguCisg
ICAgLy8gSG93ZXZlciwgdGhlIHBvc2l0aW9ucyB0aGF0IENUL0NHIGFjY2VwdCBhcmUgaW4gdGhl
IHRleHQgbWF0cml4J3MgY29vcmRpbmF0ZSBzeXN0ZW0uCisgICAgLy8gQ0dDb250ZXh0R2V0VGV4
dE1hdHJpeCgpIGdpdmVzIHVzIHRoZSBtYXRyaXggdGhhdCBtYXBzIGZyb20gdGV4dCdzIGNvb3Jk
aW5hdGUgc3lzdGVtIHRvIHRoZSBjb250ZXh0J3MgKG5vbi10ZXh0KSBjb29yZGluYXRlIHN5c3Rl
bS4KKyAgICAvLyBXZSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCB0byBkZWxpdmVyIENULCBpbnNp
ZGUgdGhlIHRleHQncyBjb29yZGluYXRlIHN5c3RlbSwgc3VjaCB0aGF0IGl0IGVuZHMgdXAgY29p
bmNpZGVudCB3aXRoIHRoZSBpbnB1dCBpbiB0aGUgY29udGV4dCdzIGNvb3JkaW5hdGUgc3lzdGVt
LgorICAgIC8vCisgICAgLy8gQ1RNICogdGV4dCBtYXRyaXggKiBwb3NpdGlvbnMgd2UgbmVlZCB0
byBkZWxpdmVyIHRvIENUID0gQ1RNICogaW5wdXQgcG9zaXRpb25zCisgICAgLy8gU29sdmluZyBm
b3IgdGhlIHBvc2l0aW9ucyB3ZSBuZWVkIHRvIGRlbGl2ZXIgdG8gQ1QsIHdlIGdldAorICAgIC8v
IHBvc2l0aW9ucyB3ZSBuZWVkIHRvIGRlbGl2ZXIgdG8gQ1QgPSBpbnZlcnNlKHRleHQgbWF0cml4
KSAqIGlucHV0IHBvc2l0aW9ucwogICAgIENHQWZmaW5lVHJhbnNmb3JtIG1hdHJpeCA9IENHQWZm
aW5lVHJhbnNmb3JtSW52ZXJ0KENHQ29udGV4dEdldFRleHRNYXRyaXgoY29udGV4dCkpOwogICAg
IHBvc2l0aW9uc1swXSA9IENHUG9pbnRBcHBseUFmZmluZVRyYW5zZm9ybShwb2ludCwgbWF0cml4
KTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwgY291bnQ7ICsraSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0RHJhd0dseXBoc1JlY29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40ZjhlNTQ3OTk1Zjk5MzczNDIwMmRhMTI2YWIwZjE3MTMyOWNjZTNiCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmgKQEAgLTAsMCArMSwxMTcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgorI2luY2x1ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSAiR3Jh
ZGllbnQuaCIKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJQYXR0ZXJu
LmgiCisjaW5jbHVkZSAiVGV4dEZsYWdzLmgiCisKKyNpZiBVU0UoQ09SRV9URVhUKQorI2luY2x1
ZGUgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3MuaD4KKyNpbmNsdWRlIDxwYWwvc3BpL2NnL0Nv
cmVHcmFwaGljc1NQSS5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
RmxvYXRQb2ludDsKK2NsYXNzIEZvbnQ7CitjbGFzcyBHbHlwaEJ1ZmZlcjsKK2NsYXNzIEdyYXBo
aWNzQ29udGV4dDsKKworbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKKworY2xhc3MgUmVjb3JkZXI7
CisKK2NsYXNzIERyYXdHbHlwaHNSZWNvcmRlciB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgRHJh
d0dseXBoc1JlY29yZGVyKFJlY29yZGVyJik7CisKKyAgICB2b2lkIGRyYXdHbHlwaHMoY29uc3Qg
Rm9udCYsIGNvbnN0IEdseXBoQnVmZmVyJiwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbnVtR2x5
cGhzLCBjb25zdCBGbG9hdFBvaW50JiBhbmNob3JQb2ludCwgRm9udFNtb290aGluZ01vZGUpOwor
CisjaWYgVVNFKENPUkVfVEVYVCkKKyAgICB2b2lkIHJlY29yZEJlZ2luTGF5ZXIoQ0dSZW5kZXJp
bmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYsIENHUmVjdCk7CisgICAgdm9pZCByZWNvcmRFbmRMYXll
cihDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZik7CisgICAgdm9pZCByZWNvcmREcmF3
R2x5cGhzKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmLCBjb25zdCBDR0FmZmluZVRy
YW5zZm9ybSosIGNvbnN0IENHR2x5cGhbXSwgY29uc3QgQ0dQb2ludCBwb3NpdGlvbnNbXSwgc2l6
ZV90IGNvdW50KTsKKyAgICB2b2lkIHJlY29yZERyYXdJbWFnZShDR1JlbmRlcmluZ1N0YXRlUmVm
LCBDR0dTdGF0ZVJlZiwgQ0dSZWN0LCBDR0ltYWdlUmVmKTsKKyNlbmRpZgorCitwcml2YXRlOgor
ICAgIEdyYXBoaWNzQ29udGV4dCBjcmVhdGVJbnRlcm5hbENvbnRleHQoKTsKKworICAgIHZvaWQg
cG9wdWxhdGVJbnRlcm5hbFN0YXRlKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJik7CisgICAg
dm9pZCBwb3B1bGF0ZUludGVybmFsQ29udGV4dChjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYp
OworICAgIHZvaWQgcHJlcGFyZUludGVybmFsQ29udGV4dChjb25zdCBGb250JiwgRm9udFNtb290
aGluZ01vZGUpOworICAgIHZvaWQgY29uY2x1ZGVJbnRlcm5hbENvbnRleHQoKTsKKworICAgIHZv
aWQgdXBkYXRlRmlsbENvbG9yKGNvbnN0IENvbG9yJiwgR3JhZGllbnQqID0gbnVsbHB0ciwgUGF0
dGVybiogPSBudWxscHRyKTsKKyAgICB2b2lkIHVwZGF0ZVN0cm9rZUNvbG9yKGNvbnN0IENvbG9y
JiwgR3JhZGllbnQqID0gbnVsbHB0ciwgUGF0dGVybiogPSBudWxscHRyKTsKKyAgICB2b2lkIHVw
ZGF0ZUNUTShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mKTsKKyAgICBlbnVtIGNsYXNzIFNoYWRvd3NJ
Z25vcmVUcmFuc2Zvcm1zIHsKKyAgICAgICAgVW5zcGVjaWZpZWQsCisgICAgICAgIFllcywKKyAg
ICAgICAgTm8KKyAgICB9OworICAgIHZvaWQgdXBkYXRlU2hhZG93KGNvbnN0IEZsb2F0U2l6ZSYg
c2hhZG93T2Zmc2V0LCBmbG9hdCBzaGFkb3dCbHVyLCBjb25zdCBDb2xvciYgc2hhZG93Q29sb3Is
IFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zKTsKKworI2lmIFVTRShDT1JFX1RFWFQpCisgICAgdm9p
ZCB1cGRhdGVTaGFkb3coQ0dTdHlsZVJlZik7CisjZW5kaWYKKworICAgIFJlY29yZGVyJiBtX293
bmVyOworICAgIEdyYXBoaWNzQ29udGV4dCBtX2ludGVybmFsQ29udGV4dDsKKyAgICBjb25zdCBG
b250KiBtX29yaWdpbmFsRm9udCB7IG51bGxwdHIgfTsKKyAgICBGb250U21vb3RoaW5nTW9kZSBt
X3Ntb290aGluZ01vZGUgeyBGb250U21vb3RoaW5nTW9kZTo6QXV0b1Ntb290aGluZyB9OworICAg
IEFmZmluZVRyYW5zZm9ybSBtX29yaWdpbmFsVGV4dE1hdHJpeDsKKworICAgIHN0cnVjdCBTdGF0
ZSB7CisgICAgICAgIHN0cnVjdCBTdHlsZSB7CisgICAgICAgICAgICBDb2xvciBjb2xvcjsKKyAg
ICAgICAgICAgIFJlZlB0cjxHcmFkaWVudD4gZ3JhZGllbnQ7CisgICAgICAgICAgICBSZWZQdHI8
UGF0dGVybj4gcGF0dGVybjsKKyAgICAgICAgfTsKKyAgICAgICAgU3R5bGUgZmlsbFN0eWxlOwor
ICAgICAgICBTdHlsZSBzdHJva2VTdHlsZTsKKworICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gY3Rt
OworCisgICAgICAgIHN0cnVjdCBTaGFkb3dTdGF0ZSB7CisgICAgICAgICAgICBGbG9hdFNpemUg
b2Zmc2V0OworICAgICAgICAgICAgZmxvYXQgYmx1ciB7IDAgfTsKKyAgICAgICAgICAgIENvbG9y
IGNvbG9yOworICAgICAgICAgICAgYm9vbCBpZ25vcmVUcmFuc2Zvcm1zIHsgZmFsc2UgfTsKKyAg
ICAgICAgfTsKKyAgICAgICAgU2hhZG93U3RhdGUgc2hhZG93OworICAgIH07CisgICAgU3RhdGUg
bV9vcmlnaW5hbFN0YXRlOworICAgIFN0YXRlIG1fY3VycmVudFN0YXRlOworfTsKKworfQorCit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhz
UmVjb3JkZXJDb3JlVGV4dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2NjNzlmMjZlYzg3YWQ2NzhiZDI5YmY0
YTYyOGU2ODk5MDk4ZGU2OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNv
cmVUZXh0LmNwcApAQCAtMCwwICsxLDM3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEaXNwbGF5
TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIgorCisjaW5jbHVkZSAiQml0bWFwSW1hZ2UuaCIKKyNp
bmNsdWRlICJDb2xvci5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0SXRlbXMuaCIKKyNpbmNsdWRl
ICJEaXNwbGF5TGlzdFJlY29yZGVyLmgiCisjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgorI2luY2x1
ZGUgIkZvbnQuaCIKKyNpbmNsdWRlICJGb250Q2FzY2FkZS5oIgorI2luY2x1ZGUgIkdseXBoQnVm
ZmVyLmgiCisKKyNpbmNsdWRlIDxDb3JlVGV4dC9Db3JlVGV4dC5oPgorI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KKworI2lmIFBMQVRGT1JNKFdJTikKKyNpbmNsdWRlIDxwYWwvc3BpL3dpbi9Db3Jl
VGV4dFNQSVdpbi5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworbmFtZXNwYWNl
IERpc3BsYXlMaXN0IHsKKworc3RhdGljIENHQ29udGV4dERlbGVnYXRlUmVmIGJlZ2luTGF5ZXIo
Q0dDb250ZXh0RGVsZWdhdGVSZWYgZGVsZWdhdGUsIENHUmVuZGVyaW5nU3RhdGVSZWYgcnN0YXRl
LCBDR0dTdGF0ZVJlZiBnc3RhdGUsIENHUmVjdCByZWN0LCBDRkRpY3Rpb25hcnlSZWYsIENHQ29u
dGV4dERlbGVnYXRlUmVmKQoreworICAgIERyYXdHbHlwaHNSZWNvcmRlciYgcmVjb3JkZXIgPSAq
c3RhdGljX2Nhc3Q8RHJhd0dseXBoc1JlY29yZGVyKj4oQ0dDb250ZXh0RGVsZWdhdGVHZXRJbmZv
KGRlbGVnYXRlKSk7CisgICAgcmVjb3JkZXIucmVjb3JkQmVnaW5MYXllcihyc3RhdGUsIGdzdGF0
ZSwgcmVjdCk7CisgICAgcmV0dXJuIGRlbGVnYXRlOworfQorCitzdGF0aWMgQ0dDb250ZXh0RGVs
ZWdhdGVSZWYgZW5kTGF5ZXIoQ0dDb250ZXh0RGVsZWdhdGVSZWYgZGVsZWdhdGUsIENHUmVuZGVy
aW5nU3RhdGVSZWYgcnN0YXRlLCBDR0dTdGF0ZVJlZiBnc3RhdGUpCit7CisgICAgRHJhd0dseXBo
c1JlY29yZGVyJiByZWNvcmRlciA9ICpzdGF0aWNfY2FzdDxEcmF3R2x5cGhzUmVjb3JkZXIqPihD
R0NvbnRleHREZWxlZ2F0ZUdldEluZm8oZGVsZWdhdGUpKTsKKyAgICByZWNvcmRlci5yZWNvcmRF
bmRMYXllcihyc3RhdGUsIGdzdGF0ZSk7CisgICAgcmV0dXJuIGRlbGVnYXRlOworfQorCitzdGF0
aWMgQ0dFcnJvciBkcmF3R2x5cGhzKENHQ29udGV4dERlbGVnYXRlUmVmIGRlbGVnYXRlLCBDR1Jl
bmRlcmluZ1N0YXRlUmVmIHJzdGF0ZSwgQ0dHU3RhdGVSZWYgZ3N0YXRlLCBjb25zdCBDR0FmZmlu
ZVRyYW5zZm9ybSogdG0sIGNvbnN0IENHR2x5cGggZ2x5cGhzW10sIGNvbnN0IENHUG9pbnQgcG9z
aXRpb25zW10sIHNpemVfdCBjb3VudCkKK3sKKyAgICBpZiAoQ0dHU3RhdGVHZXRBbHBoYShnc3Rh
dGUpID4gMCkgeworICAgICAgICBEcmF3R2x5cGhzUmVjb3JkZXImIHJlY29yZGVyID0gKnN0YXRp
Y19jYXN0PERyYXdHbHlwaHNSZWNvcmRlcio+KENHQ29udGV4dERlbGVnYXRlR2V0SW5mbyhkZWxl
Z2F0ZSkpOworICAgICAgICByZWNvcmRlci5yZWNvcmREcmF3R2x5cGhzKHJzdGF0ZSwgZ3N0YXRl
LCB0bSwgZ2x5cGhzLCBwb3NpdGlvbnMsIGNvdW50KTsKKyAgICB9CisgICAgcmV0dXJuIGtDR0Vy
cm9yU3VjY2VzczsKK30KKworc3RhdGljIENHRXJyb3IgZHJhd0ltYWdlKENHQ29udGV4dERlbGVn
YXRlUmVmIGRlbGVnYXRlLCBDR1JlbmRlcmluZ1N0YXRlUmVmIHJzdGF0ZSwgQ0dHU3RhdGVSZWYg
Z3N0YXRlLCBDR1JlY3QgcmVjdCwgQ0dJbWFnZVJlZiBpbWFnZSkKK3sKKyAgICBEcmF3R2x5cGhz
UmVjb3JkZXImIHJlY29yZGVyID0gKnN0YXRpY19jYXN0PERyYXdHbHlwaHNSZWNvcmRlcio+KENH
Q29udGV4dERlbGVnYXRlR2V0SW5mbyhkZWxlZ2F0ZSkpOworICAgIHJlY29yZGVyLnJlY29yZERy
YXdJbWFnZShyc3RhdGUsIGdzdGF0ZSwgcmVjdCwgaW1hZ2UpOworICAgIHJldHVybiBrQ0dFcnJv
clN1Y2Nlc3M7Cit9CisKK0dyYXBoaWNzQ29udGV4dCBEcmF3R2x5cGhzUmVjb3JkZXI6OmNyZWF0
ZUludGVybmFsQ29udGV4dCgpCit7CisgICAgYXV0byBjb250ZXh0RGVsZWdhdGUgPSBhZG9wdENG
KENHQ29udGV4dERlbGVnYXRlQ3JlYXRlKHRoaXMpKTsKKyAgICBDR0NvbnRleHREZWxlZ2F0ZVNl
dENhbGxiYWNrKGNvbnRleHREZWxlZ2F0ZS5nZXQoKSwgZGVCZWdpbkxheWVyLCByZWludGVycHJl
dF9jYXN0PENHQ29udGV4dERlbGVnYXRlQ2FsbGJhY2s+KCZiZWdpbkxheWVyKSk7CisgICAgQ0dD
b250ZXh0RGVsZWdhdGVTZXRDYWxsYmFjayhjb250ZXh0RGVsZWdhdGUuZ2V0KCksIGRlRW5kTGF5
ZXIsIHJlaW50ZXJwcmV0X2Nhc3Q8Q0dDb250ZXh0RGVsZWdhdGVDYWxsYmFjaz4oJmVuZExheWVy
KSk7CisgICAgQ0dDb250ZXh0RGVsZWdhdGVTZXRDYWxsYmFjayhjb250ZXh0RGVsZWdhdGUuZ2V0
KCksIGRlRHJhd0dseXBocywgcmVpbnRlcnByZXRfY2FzdDxDR0NvbnRleHREZWxlZ2F0ZUNhbGxi
YWNrPigmV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmRyYXdHbHlwaHMpKTsKKyAgICBDR0NvbnRleHRE
ZWxlZ2F0ZVNldENhbGxiYWNrKGNvbnRleHREZWxlZ2F0ZS5nZXQoKSwgZGVEcmF3SW1hZ2UsIHJl
aW50ZXJwcmV0X2Nhc3Q8Q0dDb250ZXh0RGVsZWdhdGVDYWxsYmFjaz4oJmRyYXdJbWFnZSkpOwor
ICAgIGF1dG8gY29udGV4dCA9IGFkb3B0Q0YoQ0dDb250ZXh0Q3JlYXRlV2l0aERlbGVnYXRlKGNv
bnRleHREZWxlZ2F0ZS5nZXQoKSwga0NHQ29udGV4dFR5cGVVbmtub3duLCBudWxscHRyLCBudWxs
cHRyKSk7CisgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dChjb250ZXh0LmdldCgpKTsKK30KKwor
RHJhd0dseXBoc1JlY29yZGVyOjpEcmF3R2x5cGhzUmVjb3JkZXIoUmVjb3JkZXImIG93bmVyKQor
ICAgIDogbV9vd25lcihvd25lcikKKyAgICAsIG1faW50ZXJuYWxDb250ZXh0KGNyZWF0ZUludGVy
bmFsQ29udGV4dCgpKQoreworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6cG9wdWxhdGVJ
bnRlcm5hbFN0YXRlKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBjb250ZXh0U3RhdGUpCit7
CisgICAgbV9vcmlnaW5hbFN0YXRlLmZpbGxTdHlsZS5jb2xvciA9IGNvbnRleHRTdGF0ZS5maWxs
Q29sb3I7CisgICAgbV9vcmlnaW5hbFN0YXRlLmZpbGxTdHlsZS5ncmFkaWVudCA9IGNvbnRleHRT
dGF0ZS5maWxsR3JhZGllbnQ7CisgICAgbV9vcmlnaW5hbFN0YXRlLmZpbGxTdHlsZS5wYXR0ZXJu
ID0gY29udGV4dFN0YXRlLmZpbGxQYXR0ZXJuOworCisgICAgbV9vcmlnaW5hbFN0YXRlLnN0cm9r
ZVN0eWxlLmNvbG9yID0gY29udGV4dFN0YXRlLnN0cm9rZUNvbG9yOworICAgIG1fb3JpZ2luYWxT
dGF0ZS5zdHJva2VTdHlsZS5ncmFkaWVudCA9IGNvbnRleHRTdGF0ZS5zdHJva2VHcmFkaWVudDsK
KyAgICBtX29yaWdpbmFsU3RhdGUuc3Ryb2tlU3R5bGUucGF0dGVybiA9IGNvbnRleHRTdGF0ZS5z
dHJva2VQYXR0ZXJuOworCisgICAgbV9vcmlnaW5hbFN0YXRlLmN0bSA9IG1fb3duZXIuY3VycmVu
dFN0YXRlKCkuY3RtOyAvLyBGSVhNRTogRGVhbCB3aXRoIGRldmljZSBzY2FsZS4KKworICAgIG1f
b3JpZ2luYWxTdGF0ZS5zaGFkb3cub2Zmc2V0ID0gY29udGV4dFN0YXRlLnNoYWRvd09mZnNldDsK
KyAgICBtX29yaWdpbmFsU3RhdGUuc2hhZG93LmJsdXIgPSBjb250ZXh0U3RhdGUuc2hhZG93Qmx1
cjsKKyAgICBtX29yaWdpbmFsU3RhdGUuc2hhZG93LmNvbG9yID0gY29udGV4dFN0YXRlLnNoYWRv
d0NvbG9yOworICAgIG1fb3JpZ2luYWxTdGF0ZS5zaGFkb3cuaWdub3JlVHJhbnNmb3JtcyA9IGNv
bnRleHRTdGF0ZS5zaGFkb3dzSWdub3JlVHJhbnNmb3JtczsKKworICAgIG1fY3VycmVudFN0YXRl
ID0gbV9vcmlnaW5hbFN0YXRlOworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6cG9wdWxh
dGVJbnRlcm5hbENvbnRleHQoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmIGNvbnRleHRTdGF0
ZSkKK3sKKyAgICBpZiAobV9vcmlnaW5hbFN0YXRlLmZpbGxTdHlsZS5jb2xvci5pc1ZhbGlkKCkp
CisgICAgICAgIG1faW50ZXJuYWxDb250ZXh0LnNldEZpbGxDb2xvcihtX29yaWdpbmFsU3RhdGUu
ZmlsbFN0eWxlLmNvbG9yKTsKKyAgICBlbHNlIGlmIChtX29yaWdpbmFsU3RhdGUuZmlsbFN0eWxl
LmdyYWRpZW50KQorICAgICAgICBtX2ludGVybmFsQ29udGV4dC5zZXRGaWxsR3JhZGllbnQoKm1f
b3JpZ2luYWxTdGF0ZS5maWxsU3R5bGUuZ3JhZGllbnQpOworICAgIGVsc2UgeworICAgICAgICBB
U1NFUlQobV9vcmlnaW5hbFN0YXRlLmZpbGxTdHlsZS5wYXR0ZXJuKTsKKyAgICAgICAgaWYgKG1f
b3JpZ2luYWxTdGF0ZS5maWxsU3R5bGUucGF0dGVybikKKyAgICAgICAgICAgIG1faW50ZXJuYWxD
b250ZXh0LnNldEZpbGxQYXR0ZXJuKCptX29yaWdpbmFsU3RhdGUuZmlsbFN0eWxlLnBhdHRlcm4p
OworICAgIH0KKworICAgIGlmIChtX29yaWdpbmFsU3RhdGUuc3Ryb2tlU3R5bGUuY29sb3IuaXNW
YWxpZCgpKQorICAgICAgICBtX2ludGVybmFsQ29udGV4dC5zZXRTdHJva2VDb2xvcihtX29yaWdp
bmFsU3RhdGUuc3Ryb2tlU3R5bGUuY29sb3IpOworICAgIGVsc2UgaWYgKG1fb3JpZ2luYWxTdGF0
ZS5zdHJva2VTdHlsZS5ncmFkaWVudCkKKyAgICAgICAgbV9pbnRlcm5hbENvbnRleHQuc2V0U3Ry
b2tlR3JhZGllbnQoKm1fb3JpZ2luYWxTdGF0ZS5zdHJva2VTdHlsZS5ncmFkaWVudCk7CisgICAg
ZWxzZSB7CisgICAgICAgIEFTU0VSVChtX29yaWdpbmFsU3RhdGUuc3Ryb2tlU3R5bGUucGF0dGVy
bik7CisgICAgICAgIGlmIChtX29yaWdpbmFsU3RhdGUuc3Ryb2tlU3R5bGUucGF0dGVybikKKyAg
ICAgICAgICAgIG1faW50ZXJuYWxDb250ZXh0LnNldFN0cm9rZVBhdHRlcm4oKm1fb3JpZ2luYWxT
dGF0ZS5zdHJva2VTdHlsZS5wYXR0ZXJuKTsKKyAgICB9CisKKyAgICBtX2ludGVybmFsQ29udGV4
dC5zZXRDVE0obV9vcmlnaW5hbFN0YXRlLmN0bSk7CisKKyAgICBtX2ludGVybmFsQ29udGV4dC5z
ZXRTaGFkb3dzSWdub3JlVHJhbnNmb3JtcyhtX29yaWdpbmFsU3RhdGUuc2hhZG93Lmlnbm9yZVRy
YW5zZm9ybXMpOworICAgIGlmIChjb250ZXh0U3RhdGUuc2hhZG93c1VzZUxlZ2FjeVJhZGl1cykK
KyAgICAgICAgbV9pbnRlcm5hbENvbnRleHQuc2V0TGVnYWN5U2hhZG93KG1fb3JpZ2luYWxTdGF0
ZS5zaGFkb3cub2Zmc2V0LCBtX29yaWdpbmFsU3RhdGUuc2hhZG93LmJsdXIsIG1fb3JpZ2luYWxT
dGF0ZS5zaGFkb3cuY29sb3IpOworICAgIGVsc2UKKyAgICAgICAgbV9pbnRlcm5hbENvbnRleHQu
c2V0U2hhZG93KG1fb3JpZ2luYWxTdGF0ZS5zaGFkb3cub2Zmc2V0LCBtX29yaWdpbmFsU3RhdGUu
c2hhZG93LmJsdXIsIG1fb3JpZ2luYWxTdGF0ZS5zaGFkb3cuY29sb3IpOworCisgICAgbV9pbnRl
cm5hbENvbnRleHQuc2V0VGV4dERyYXdpbmdNb2RlKGNvbnRleHRTdGF0ZS50ZXh0RHJhd2luZ01v
ZGUpOworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6cHJlcGFyZUludGVybmFsQ29udGV4
dChjb25zdCBGb250JiBmb250LCBGb250U21vb3RoaW5nTW9kZSBzbW9vdGhpbmdNb2RlKQorewor
ICAgIEFTU0VSVChDR0FmZmluZVRyYW5zZm9ybUlzSWRlbnRpdHkoQ1RGb250R2V0TWF0cml4KGZv
bnQucGxhdGZvcm1EYXRhKCkuY3RGb250KCkpKSk7CisKKyAgICBtX29yaWdpbmFsRm9udCA9ICZm
b250OworICAgIG1fc21vb3RoaW5nTW9kZSA9IHNtb290aGluZ01vZGU7CisKKyAgICBtX29yaWdp
bmFsVGV4dE1hdHJpeCA9IGNvbXB1dGVPdmVyYWxsVGV4dE1hdHJpeChmb250KTsKKyAgICBpZiAo
Zm9udC5wbGF0Zm9ybURhdGEoKS5vcmllbnRhdGlvbigpID09IEZvbnRPcmllbnRhdGlvbjo6VmVy
dGljYWwpCisgICAgICAgIG1fb3JpZ2luYWxUZXh0TWF0cml4ID0gY29tcHV0ZVZlcnRpY2FsVGV4
dE1hdHJpeChmb250LCBtX29yaWdpbmFsVGV4dE1hdHJpeCk7CisKKyAgICBhdXRvJiBjb250ZXh0
U3RhdGUgPSBtX293bmVyLmN1cnJlbnRTdGF0ZSgpLnN0YXRlQ2hhbmdlLm1fc3RhdGU7CisgICAg
cG9wdWxhdGVJbnRlcm5hbFN0YXRlKGNvbnRleHRTdGF0ZSk7CisgICAgcG9wdWxhdGVJbnRlcm5h
bENvbnRleHQoY29udGV4dFN0YXRlKTsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OmNv
bmNsdWRlSW50ZXJuYWxDb250ZXh0KCkKK3sKKyAgICB1cGRhdGVDVE0obV9vcmlnaW5hbFN0YXRl
LmN0bSk7CisgICAgdXBkYXRlRmlsbENvbG9yKG1fb3JpZ2luYWxTdGF0ZS5maWxsU3R5bGUuY29s
b3IsIG1fb3JpZ2luYWxTdGF0ZS5maWxsU3R5bGUuZ3JhZGllbnQuZ2V0KCksIG1fb3JpZ2luYWxT
dGF0ZS5maWxsU3R5bGUucGF0dGVybi5nZXQoKSk7CisgICAgdXBkYXRlU3Ryb2tlQ29sb3IobV9v
cmlnaW5hbFN0YXRlLnN0cm9rZVN0eWxlLmNvbG9yLCBtX29yaWdpbmFsU3RhdGUuc3Ryb2tlU3R5
bGUuZ3JhZGllbnQuZ2V0KCksIG1fb3JpZ2luYWxTdGF0ZS5zdHJva2VTdHlsZS5wYXR0ZXJuLmdl
dCgpKTsKKyAgICB1cGRhdGVTaGFkb3cobV9vcmlnaW5hbFN0YXRlLnNoYWRvdy5vZmZzZXQsIG1f
b3JpZ2luYWxTdGF0ZS5zaGFkb3cuYmx1ciwgbV9vcmlnaW5hbFN0YXRlLnNoYWRvdy5jb2xvciwg
bV9vcmlnaW5hbFN0YXRlLnNoYWRvdy5pZ25vcmVUcmFuc2Zvcm1zID8gU2hhZG93c0lnbm9yZVRy
YW5zZm9ybXM6OlllcyA6IFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOjpObyk7Cit9CisKK3ZvaWQg
RHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVGaWxsQ29sb3IoY29uc3QgQ29sb3ImIG5ld0NvbG9y
LCBHcmFkaWVudCogbmV3R3JhZGllbnQsIFBhdHRlcm4qIG5ld1BhdHRlcm4pCit7CisgICAgLy8g
VGhpcyBjaGVjayBsb29rcyB3cm9uZyBidXQgaXQgYWN0dWFsbHkgaXNuJ3QsIGZvciBvdXIgbGlt
aXRlZCB1c2UuCisgICAgLy8gQ1Qgd2lsbCBvbmx5IGV2ZXIgc2V0IHRoaXMgdG8gYSBzb2xpZCBj
b2xvciwgd2hpY2ggdGhpcyBpcyB0aGUgY29ycmVjdCBjaGVjayBmb3IuCisgICAgLy8gSW4gY29u
Y2x1ZGVJbnRlcm5hbENvbnRleHQoKSB3ZSBzZXQgaXQgYmFjayB0byB3aGF0IGl0IHdhcyBvcmln
aW5hbGx5LCB3aGljaCB0aGlzIGNoZWNrIHdvcmtzIGNvcnJlY3RseSBmb3IgdG9vLgorICAgIGlm
IChuZXdDb2xvciA9PSBtX2N1cnJlbnRTdGF0ZS5maWxsU3R5bGUuY29sb3IpCisgICAgICAgIHJl
dHVybjsKKworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlIG5ld1N0YXRlOworICAgIG5ld1N0YXRl
LmZpbGxDb2xvciA9IG5ld0NvbG9yOworICAgIGlmIChuZXdHcmFkaWVudCkKKyAgICAgICAgbmV3
U3RhdGUuZmlsbEdyYWRpZW50ID0gbmV3R3JhZGllbnQ7CisgICAgaWYgKG5ld1BhdHRlcm4pCisg
ICAgICAgIG5ld1N0YXRlLmZpbGxQYXR0ZXJuID0gbmV3UGF0dGVybjsKKyAgICBtX293bmVyLnVw
ZGF0ZVN0YXRlKG5ld1N0YXRlLCB7IEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsQ29sb3JDaGFu
Z2UgfSk7CisgICAgbV9jdXJyZW50U3RhdGUuZmlsbFN0eWxlLmNvbG9yID0gbmV3Q29sb3I7Cit9
CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVTdHJva2VDb2xvcihjb25zdCBDb2xv
ciYgbmV3Q29sb3IsIEdyYWRpZW50KiBuZXdHcmFkaWVudCwgUGF0dGVybiogbmV3UGF0dGVybikK
K3sKKyAgICAvLyBUaGlzIGNoZWNrIGxvb2tzIHdyb25nIGJ1dCBpdCBhY3R1YWxseSBpc24ndCwg
Zm9yIG91ciBsaW1pdGVkIHVzZS4KKyAgICAvLyBDVCB3aWxsIG9ubHkgZXZlciBzZXQgdGhpcyB0
byBhIHNvbGlkIGNvbG9yLCB3aGljaCB0aGlzIGlzIHRoZSBjb3JyZWN0IGNoZWNrIGZvci4KKyAg
ICAvLyBJbiBjb25jbHVkZUludGVybmFsQ29udGV4dCgpIHdlIHNldCBpdCBiYWNrIHRvIHdoYXQg
aXQgd2FzIG9yaWdpbmFsbHksIHdoaWNoIHRoaXMgY2hlY2sgd29ya3MgY29ycmVjdGx5IGZvciB0
b28uCisgICAgaWYgKG5ld0NvbG9yID09IG1fY3VycmVudFN0YXRlLnN0cm9rZVN0eWxlLmNvbG9y
KQorICAgICAgICByZXR1cm47CisKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZSBuZXdTdGF0ZTsK
KyAgICBuZXdTdGF0ZS5zdHJva2VDb2xvciA9IG5ld0NvbG9yOworICAgIGlmIChuZXdHcmFkaWVu
dCkKKyAgICAgICAgbmV3U3RhdGUuc3Ryb2tlR3JhZGllbnQgPSBuZXdHcmFkaWVudDsKKyAgICBp
ZiAobmV3UGF0dGVybikKKyAgICAgICAgbmV3U3RhdGUuc3Ryb2tlUGF0dGVybiA9IG5ld1BhdHRl
cm47CisgICAgbV9vd25lci51cGRhdGVTdGF0ZShuZXdTdGF0ZSwgeyBHcmFwaGljc0NvbnRleHRT
dGF0ZTo6U3Ryb2tlQ29sb3JDaGFuZ2UgfSk7CisgICAgbV9jdXJyZW50U3RhdGUuc3Ryb2tlU3R5
bGUuY29sb3IgPSBuZXdDb2xvcjsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnVwZGF0
ZUNUTShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGN0bSkKK3sKKyAgICBpZiAoY3RtID09IG1fY3Vy
cmVudFN0YXRlLmN0bSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9vd25lci5zZXRDVE0oY3Rt
KTsKKyAgICBtX2N1cnJlbnRTdGF0ZS5jdG0gPSBjdG07Cit9CisKK3N0YXRpYyBib29sIHNoYWRv
d0lzQ2xlYXJlZChjb25zdCBGbG9hdFNpemUmIHNoYWRvd09mZnNldCwgZmxvYXQgc2hhZG93Qmx1
cikKK3sKKyAgICByZXR1cm4gc2hhZG93T2Zmc2V0ID09IEZsb2F0U2l6ZSgpICYmICFzaGFkb3dC
bHVyOworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6dXBkYXRlU2hhZG93KGNvbnN0IEZs
b2F0U2l6ZSYgc2hhZG93T2Zmc2V0LCBmbG9hdCBzaGFkb3dCbHVyLCBjb25zdCBDb2xvciYgc2hh
ZG93Q29sb3IsIFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zIHNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1z
KQoreworICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gY29uc2lkZXIgc2hhZG93c0lnbm9yZVRyYW5z
Zm9ybXMgaWYgbm9ib2R5IGhhcyBhbnkgc2hhZG93cy4KKyAgICBpZiAoc2hhZG93SXNDbGVhcmVk
KHNoYWRvd09mZnNldCwgc2hhZG93Qmx1cikgJiYgc2hhZG93SXNDbGVhcmVkKG1fY3VycmVudFN0
YXRlLnNoYWRvdy5vZmZzZXQsIG1fY3VycmVudFN0YXRlLnNoYWRvdy5ibHVyKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGUgbmV3U3RhdGU7CisgICAgR3JhcGhp
Y3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3Mgc3RhdGVDaGFuZ2VGbGFnczsKKworICAg
IGlmIChzaGFkb3dPZmZzZXQgIT0gbV9jdXJyZW50U3RhdGUuc2hhZG93Lm9mZnNldCB8fCBzaGFk
b3dCbHVyICE9IG1fY3VycmVudFN0YXRlLnNoYWRvdy5ibHVyIHx8IHNoYWRvd0NvbG9yICE9IG1f
Y3VycmVudFN0YXRlLnNoYWRvdy5jb2xvcikgeworICAgICAgICBuZXdTdGF0ZS5zaGFkb3dPZmZz
ZXQgPSBzaGFkb3dPZmZzZXQ7CisgICAgICAgIG5ld1N0YXRlLnNoYWRvd0JsdXIgPSBzaGFkb3dC
bHVyOworICAgICAgICBuZXdTdGF0ZS5zaGFkb3dDb2xvciA9IHNoYWRvd0NvbG9yOworICAgICAg
ICBzdGF0ZUNoYW5nZUZsYWdzLmFkZChHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hhZG93Q2hhbmdl
KTsKKyAgICB9CisgICAgaWYgKHNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zICE9IFNoYWRvd3NJZ25v
cmVUcmFuc2Zvcm1zOjpVbnNwZWNpZmllZCAmJiAoc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMgPT0g
U2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6OlllcykgIT0gbV9jdXJyZW50U3RhdGUuc2hhZG93Lmln
bm9yZVRyYW5zZm9ybXMpIHsKKyAgICAgICAgbmV3U3RhdGUuc2hhZG93c0lnbm9yZVRyYW5zZm9y
bXMgPSAoc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMgPT0gU2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6
Olllcyk7CisgICAgICAgIHN0YXRlQ2hhbmdlRmxhZ3MuYWRkKEdyYXBoaWNzQ29udGV4dFN0YXRl
OjpTaGFkb3dzSWdub3JlVHJhbnNmb3Jtc0NoYW5nZSk7CisgICAgfQorICAgIGlmIChzdGF0ZUNo
YW5nZUZsYWdzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fb3duZXIudXBkYXRl
U3RhdGUobmV3U3RhdGUsIHN0YXRlQ2hhbmdlRmxhZ3MpOworCisgICAgbV9jdXJyZW50U3RhdGUu
c2hhZG93Lm9mZnNldCA9IHNoYWRvd09mZnNldDsKKyAgICBtX2N1cnJlbnRTdGF0ZS5zaGFkb3cu
Ymx1ciA9IHNoYWRvd0JsdXI7CisgICAgbV9jdXJyZW50U3RhdGUuc2hhZG93LmNvbG9yID0gc2hh
ZG93Q29sb3I7CisgICAgbV9jdXJyZW50U3RhdGUuc2hhZG93Lmlnbm9yZVRyYW5zZm9ybXMgPSAo
c2hhZG93c0lnbm9yZVRyYW5zZm9ybXMgPT0gU2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6Olllcyk7
Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVTaGFkb3coQ0dTdHlsZVJlZiBz
dHlsZSkKK3sKKyAgICBpZiAoQ0dTdHlsZUdldFR5cGUoc3R5bGUpICE9IGtDR1N0eWxlU2hhZG93
KSB7CisgICAgICAgIC8vIEZJWE1FOiBTdXBwb3J0IG1vcmUga2luZHMgb2YgQ0dTdHlsZXMuCisg
ICAgICAgIHVwZGF0ZVNoYWRvdyh7MCwgMH0sIDAsIENvbG9yKCksIFNoYWRvd3NJZ25vcmVUcmFu
c2Zvcm1zOjpVbnNwZWNpZmllZCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb25z
dCBhdXRvJiBzaGFkb3dTdHlsZSA9ICpzdGF0aWNfY2FzdDxjb25zdCBDR1NoYWRvd1N0eWxlKj4o
Q0dTdHlsZUdldERhdGEoc3R5bGUpKTsKKyAgICBhdXRvIHJhZCA9IGRlZzJyYWQoc2hhZG93U3R5
bGUuYXppbXV0aCAtIDE4MCk7CisgICAgYXV0byBzaGFkb3dPZmZzZXQgPSBGbG9hdFNpemUoc3Rk
Ojpjb3MocmFkKSwgc3RkOjpzaW4ocmFkKSkgKiBzaGFkb3dTdHlsZS5oZWlnaHQ7CisgICAgdXBk
YXRlU2hhZG93KHNoYWRvd09mZnNldCwgc2hhZG93U3R5bGUucmFkaXVzLCBDR1N0eWxlR2V0Q29s
b3Ioc3R5bGUpLCBTaGFkb3dzSWdub3JlVHJhbnNmb3Jtczo6WWVzKTsKK30KKwordm9pZCBEcmF3
R2x5cGhzUmVjb3JkZXI6OnJlY29yZEJlZ2luTGF5ZXIoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dH
U3RhdGVSZWYgZ3N0YXRlLCBDR1JlY3QpCit7CisgICAgdXBkYXRlQ1RNKCpDR0dTdGF0ZUdldENU
TShnc3RhdGUpKTsKKyAgICBhdXRvIGFscGhhID0gQ0dHU3RhdGVHZXRBbHBoYShnc3RhdGUpOwor
ICAgIG1fb3duZXIuYmVnaW5UcmFuc3BhcmVuY3lMYXllcihhbHBoYSk7Cit9CisKK3ZvaWQgRHJh
d0dseXBoc1JlY29yZGVyOjpyZWNvcmRFbmRMYXllcihDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dT
dGF0ZVJlZiBnc3RhdGUpCit7CisgICAgdXBkYXRlQ1RNKCpDR0dTdGF0ZUdldENUTShnc3RhdGUp
KTsKKyAgICBtX293bmVyLmVuZFRyYW5zcGFyZW5jeUxheWVyKCk7Cit9CisKK3N0YXRpYyBWZWN0
b3I8Q0dTaXplPiBjb21wdXRlQWR2YW5jZXNGcm9tUG9zaXRpb25zKGNvbnN0IENHUG9pbnQgcG9z
aXRpb25zW10sIHNpemVfdCBjb3VudCwgY29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0mIHRleHRNYXRy
aXgpCit7CisgICAgVmVjdG9yPENHU2l6ZT4gcmVzdWx0OworICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgY291bnQgLSAxOyArK2kpIHsKKyAgICAgICAgYXV0byBuZXh0UG9zaXRpb24gPSBwb3Np
dGlvbnNbaSArIDFdOworICAgICAgICBhdXRvIGN1cnJlbnRQb3NpdGlvbiA9IHBvc2l0aW9uc1tp
XTsKKyAgICAgICAgYXV0byBhZHZhbmNlID0gQ0dTaXplTWFrZShuZXh0UG9zaXRpb24ueCAtIGN1
cnJlbnRQb3NpdGlvbi54LCBuZXh0UG9zaXRpb24ueSAtIGN1cnJlbnRQb3NpdGlvbi55KTsKKyAg
ICAgICAgcmVzdWx0LmFwcGVuZChDR1NpemVBcHBseUFmZmluZVRyYW5zZm9ybShhZHZhbmNlLCB0
ZXh0TWF0cml4KSk7CisgICAgfQorICAgIHJlc3VsdC5jb25zdHJ1Y3RBbmRBcHBlbmQoQ0dTaXpl
TWFrZSgwLCAwKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVj
b3JkZXI6OnJlY29yZERyYXdHbHlwaHMoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYg
Z3N0YXRlLCBjb25zdCBDR0FmZmluZVRyYW5zZm9ybSosIGNvbnN0IENHR2x5cGggZ2x5cGhzW10s
IGNvbnN0IENHUG9pbnQgcG9zaXRpb25zW10sIHNpemVfdCBjb3VudCkKK3sKKyAgICBpZiAoIWNv
dW50KQorICAgICAgICByZXR1cm47CisKKyAgICBDR0ZvbnRSZWYgdXNlZEZvbnQgPSBDR0dTdGF0
ZUdldEZvbnQoZ3N0YXRlKTsKKyAgICBpZiAodXNlZEZvbnQgIT0gYWRvcHRDRihDVEZvbnRDb3B5
R3JhcGhpY3NGb250KG1fb3JpZ2luYWxGb250LT5wbGF0Zm9ybURhdGEoKS5jdEZvbnQoKSwgbnVs
bHB0cikpLmdldCgpKQorICAgICAgICByZXR1cm47CisKKyNpZiBBU1NFUlRfRU5BQkxFRAorICAg
IGF1dG8gdGV4dFBvc2l0aW9uID0gQ0dDb250ZXh0R2V0VGV4dFBvc2l0aW9uKG1faW50ZXJuYWxD
b250ZXh0LnBsYXRmb3JtQ29udGV4dCgpKTsKKyAgICBBU1NFUlQoIXRleHRQb3NpdGlvbi54KTsK
KyAgICBBU1NFUlQoIXRleHRQb3NpdGlvbi55KTsKKyNlbmRpZgorCisgICAgdXBkYXRlQ1RNKCpD
R0dTdGF0ZUdldENUTShnc3RhdGUpKTsKKworICAgIC8vIFdlIHdhbnQgdGhlIEdQVSBwcm9jZXNz
J3MgQ1RNIGFuZCB0ZXh0IG1hdHJpeCB0byBtYXRjaCB0aGUgY3VycmVudCBDVE0gYW5kIHRleHQg
bWF0cml4LgorICAgIC8vIFRoZSBjdXJyZW50IHRleHQgbWF0cml4IGlzIGEgY29uY2F0ZW5hdGlv
biBvZiB3aGF0ZXZlciBXZWJLaXQgc2V0cyBpdCB0byBhbmQgd2hhdGV2ZXIKKyAgICAvLyBDb3Jl
IFRleHQgYXBwZW5kcyB0byBpdC4gU28sIHJpZ2h0IG5vdyB3ZSBoYXZlCisgICAgLy8gQ1RNICog
bV9vcmlnaW5hbFRleHRNYXRyaXggKiBDb3JlIFRleHQncyB0ZXh0IG1hdHJpeC4KKyAgICAvLyBI
b3dldmVyLCBDR0NvbnRleHRHZXRUZXh0TWF0cml4KCkganVzdCB0ZWxscyB1cyB3aGF0IHRoZSB3
aG9sZSB0ZXh0IG1hdHJpeCBpcywgc28KKyAgICAvLyBtX29yaWdpbmFsVGV4dE1hdHJpeCAqIENv
cmUgVGV4dCdzIHRleHQgbWF0cml4ID0gY3VycmVudFRleHRNYXRyaXguCisgICAgLy8gVGhlIG9u
bHkgd2F5IHdlIGNhbiBlbXVsYXRlIENvcmUgVGV4dCdzIHRleHQgbWF0cml4IGlzIGJ5IG1vZGlm
eWluZyB0aGUgQ1RNIGhlcmUuCisgICAgLy8gU28sIGlmIHdlIGRvIHRoYXQsIHRoZSBHUFUgcHJv
Y2VzcyB3aWxsIGhhdmUKKyAgICAvLyBDVE0gKiBYICogbV9vcmlnaW5hbFRleHRNYXRyaXgKKyAg
ICAvLyBJZiB5b3Ugc2V0IHRoZXNlIHR3byBlcXVhbCB0byBlYWNoIG90aGVyLCBhbmQgc29sdmUg
Zm9yIFgsIHlvdSBnZXQKKyAgICAvLyBDVE0gKiBjdXJyZW50VGV4dE1hdHJpeCA9IENUTSAqIFgg
KiBtX29yaWdpbmFsVGV4dE1hdHJpeAorICAgIC8vIGN1cnJlbnRUZXh0TWF0cml4ICogaW52ZXJz
ZShtX29yaWdpbmFsVGV4dE1hdHJpeCkgPSBYCisgICAgQWZmaW5lVHJhbnNmb3JtIGN1cnJlbnRU
ZXh0TWF0cml4ID0gQ0dDb250ZXh0R2V0VGV4dE1hdHJpeChtX2ludGVybmFsQ29udGV4dC5wbGF0
Zm9ybUNvbnRleHQoKSk7CisgICAgQWZmaW5lVHJhbnNmb3JtIGN0bUZpeHVwOworICAgIGlmIChh
dXRvIGludmVydGVkT3JpZ2luYWxUZXh0TWF0cml4ID0gbV9vcmlnaW5hbFRleHRNYXRyaXguaW52
ZXJzZSgpKQorICAgICAgICBjdG1GaXh1cCA9IGN1cnJlbnRUZXh0TWF0cml4ICogaW52ZXJ0ZWRP
cmlnaW5hbFRleHRNYXRyaXgudmFsdWUoKTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gaW52ZXJzZUNU
TUZpeHVwOworICAgIGlmIChhdXRvIGludmVyc2UgPSBjdG1GaXh1cC5pbnZlcnNlKCkpCisgICAg
ICAgIGludmVyc2VDVE1GaXh1cCA9IGludmVyc2UudmFsdWUoKTsKKyAgICBlbHNlCisgICAgICAg
IGN0bUZpeHVwID0gQWZmaW5lVHJhbnNmb3JtKCk7CisgICAgbV9vd25lci5jb25jYXRDVE0oY3Rt
Rml4dXApOworCisgICAgdXBkYXRlRmlsbENvbG9yKENHR1N0YXRlR2V0RmlsbENvbG9yKGdzdGF0
ZSkpOworICAgIHVwZGF0ZVN0cm9rZUNvbG9yKENHR1N0YXRlR2V0U3Ryb2tlQ29sb3IoZ3N0YXRl
KSk7CisgICAgdXBkYXRlU2hhZG93KENHR1N0YXRlR2V0U3R5bGUoZ3N0YXRlKSk7CisKKyAgICBt
X293bmVyLmFwcGVuZEl0ZW1BbmRVcGRhdGVFeHRlbnQoRHJhd0dseXBoczo6Y3JlYXRlKCptX29y
aWdpbmFsRm9udCwgZ2x5cGhzLCBjb21wdXRlQWR2YW5jZXNGcm9tUG9zaXRpb25zKHBvc2l0aW9u
cywgY291bnQsIGN1cnJlbnRUZXh0TWF0cml4KS5kYXRhKCksIGNvdW50LCBjdXJyZW50VGV4dE1h
dHJpeC5tYXBQb2ludChwb3NpdGlvbnNbMF0pLCBtX3Ntb290aGluZ01vZGUpKTsKKworICAgIG1f
b3duZXIuY29uY2F0Q1RNKGludmVyc2VDVE1GaXh1cCk7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1Jl
Y29yZGVyOjpyZWNvcmREcmF3SW1hZ2UoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYg
Z3N0YXRlLCBDR1JlY3QgcmVjdCwgQ0dJbWFnZVJlZiBjZ0ltYWdlKQoreworICAgIHVwZGF0ZUNU
TSgqQ0dHU3RhdGVHZXRDVE0oZ3N0YXRlKSk7CisgICAgdXBkYXRlU2hhZG93KENHR1N0YXRlR2V0
U3R5bGUoZ3N0YXRlKSk7CisKKyAgICAvLyBDb3JlIEdyYXBoaWNzIGFzc3VtZXMgYSAieSB1cCIg
Y29vcmRpbmF0ZSBzeXN0ZW0sIGJ1dCBpbiBXZWJLaXQsIHdlIHVzZSBhICJ5LWRvd24iIGNvb3Jk
aW5hdGUgc3lzdGVtLgorICAgIC8vIFRoaXMgbWVhbnMgdGhhdCBXZWJLaXQncyBkcmF3aW5nIHJv
dXRpbmVzIChHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZSgpKSBpbnRlbnRpb25hbGx5IGRyYXcg
aW1hZ2VzIHVwc2lkZS1kb3duIGZyb20gQ29yZSBHcmFwaGljcydzIHBvaW50IG9mIHZpZXcuCisg
ICAgLy8gKFRoZXJlJ3MgYSB5LWZsaXAgaW5zaWRlIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBHcmFw
aGljc0NvbnRleHQ6OmRyYXdJbWFnZSgpLikKKyAgICAvLyBUaGUgcmVjdCBoYXMgdGhlIHJpZ2h0
IGJvdW5kcywgYnV0IHdlIG5lZWQgdG8gdHJhbnNmb3JtIGZyb20gQ0cncyBjb29yZGluYXRlIHN5
c3RlbSB0byBXZWJLaXQncyBieSBwZXJmb3JtaW5nIG91ciBvd24geS1mbGlwIHNvIGltYWdlcyBh
cmUgZHJhd24gdGhlIHJpZ2h0LXNpZGUtdXAuCisgICAgLy8gV2UgZG8gdGhpcyBhdCB0aGUgYm91
bmRhcnkgYmV0d2VlbiB0aGUgdHdvIEFQSXMsIHdoaWNoIGlzIHJpZ2h0IGhlcmUuCisgICAgbV9v
d25lci50cmFuc2xhdGUoMCwgcmVjdC5zaXplLmhlaWdodCArIDIgKiByZWN0Lm9yaWdpbi55KTsK
KyAgICBtX293bmVyLnNjYWxlKEZsb2F0U2l6ZSgxLCAtMSkpOworCisgICAgYXV0byBpbWFnZSA9
IEJpdG1hcEltYWdlOjpjcmVhdGUoY2dJbWFnZSk7CisgICAgbV9vd25lci5hcHBlbmRJdGVtQW5k
VXBkYXRlRXh0ZW50KERyYXdJbWFnZTo6Y3JlYXRlKGltYWdlLCByZWN0LCB7eyB9LCBpbWFnZS0+
c2l6ZSgpfSwgeyBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Ub3BMZWZ0IH0pKTsKKworICAgIC8v
IFVuZG8gdGhlIGFib3ZlIHktZmxpcCB0byByZXN0b3JlIHRoZSBjb250ZXh0LgorICAgIG1fb3du
ZXIuc2NhbGUoRmxvYXRTaXplKDEsIC0xKSk7CisgICAgbV9vd25lci50cmFuc2xhdGUoMCwgLShy
ZWN0LnNpemUuaGVpZ2h0ICsgMiAqIHJlY3Qub3JpZ2luLnkpKTsKK30KKwordm9pZCBEcmF3R2x5
cGhzUmVjb3JkZXI6OmRyYXdHbHlwaHMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZm
ZXImIGdseXBoQnVmZmVyLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0
IEZsb2F0UG9pbnQmIHN0YXJ0UG9pbnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUp
Cit7CisgICAgcHJlcGFyZUludGVybmFsQ29udGV4dChmb250LCBzbW9vdGhpbmdNb2RlKTsKKyAg
ICBGb250Q2FzY2FkZTo6ZHJhd0dseXBocyhtX2ludGVybmFsQ29udGV4dCwgZm9udCwgZ2x5cGhC
dWZmZXIsIGZyb20sIG51bUdseXBocywgc3RhcnRQb2ludCwgc21vb3RoaW5nTW9kZSk7CisgICAg
Y29uY2x1ZGVJbnRlcm5hbENvbnRleHQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgRGlzcGxheUxp
c3QKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29y
ZGVySGFyZkJ1enouY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIzYWMzMjRiN2IwMGE5ZTE2YTU2YWQ2NzBjZTA0Y2ZhNzdmYzlmYTgKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHAKQEAgLTAsMCArMSw1MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIgorCisj
aW5jbHVkZSAiRGlzcGxheUxpc3RJdGVtcy5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0UmVjb3Jk
ZXIuaCIKKyNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiRm9udC5oIgorI2luY2x1
ZGUgIkdseXBoQnVmZmVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIERp
c3BsYXlMaXN0IHsKKworRHJhd0dseXBoc1JlY29yZGVyOjpEcmF3R2x5cGhzUmVjb3JkZXIoUmVj
b3JkZXImIG93bmVyKQorICAgIDogbV9vd25lcihvd25lcikKK3sKK30KKwordm9pZCBEcmF3R2x5
cGhzUmVjb3JkZXI6OmRyYXdHbHlwaHMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZm
ZXImIGdseXBoQnVmZmVyLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0
IEZsb2F0UG9pbnQmIHN0YXJ0UG9pbnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUp
Cit7CisgICAgbV9vd25lci5hcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KERyYXdHbHlwaHM6OmNy
ZWF0ZShmb250LCBnbHlwaEJ1ZmZlci5nbHlwaHMoZnJvbSksIGdseXBoQnVmZmVyLmFkdmFuY2Vz
KGZyb20pLCBudW1HbHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGluZ01vZGUpKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgRGlzcGxheUxpc3QKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0UmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCmluZGV4IDhkMWI2NDdiZGQ5ZjE2OWVm
ZWZiNTQyNTQ0MTc0NjIxZjA2Y2I2ZTUuLmQxNDJjMzc3OWNiOTkzZTczNzJiYjhiODg4N2ZjYzRj
NzUyZmU5ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKQEAg
LTQyLDYgKzQyLDcgQEAgUmVjb3JkZXI6OlJlY29yZGVyKEdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCwgRGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBjb25zdCBHcmEKICAgICA6IEdyYXBoaWNzQ29u
dGV4dEltcGwoY29udGV4dCwgaW5pdGlhbENsaXAsIEFmZmluZVRyYW5zZm9ybSgpKQogICAgICwg
bV9kaXNwbGF5TGlzdChkaXNwbGF5TGlzdCkKICAgICAsIG1fZGVsZWdhdGUoZGVsZWdhdGUpCisg
ICAgLCBtX2RyYXdHbHlwaHNSZWNvcmRlcigqdGhpcykKIHsKICAgICBMT0dfV0lUSF9TVFJFQU0o
RGlzcGxheUxpc3RzLCBzdHJlYW0gPDwgIlxuUmVjb3JkaW5nIHdpdGggY2xpcCAiIDw8IGluaXRp
YWxDbGlwKTsKICAgICBtX3N0YXRlU3RhY2suYXBwZW5kKHsgc3RhdGUsIGluaXRpYWxDVE0sIGlu
aXRpYWxDbGlwIH0pOwpAQCAtMTYzLDcgKzE2NCw3IEBAIHZvaWQgUmVjb3JkZXI6OnNldE1pdGVy
TGltaXQoZmxvYXQgbWl0ZXJMaW1pdCkKIAogdm9pZCBSZWNvcmRlcjo6ZHJhd0dseXBocyhjb25z
dCBGb250JiBmb250LCBjb25zdCBHbHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIHVuc2lnbmVkIGZy
b20sIHVuc2lnbmVkIG51bUdseXBocywgY29uc3QgRmxvYXRQb2ludCYgc3RhcnRQb2ludCwgRm9u
dFNtb290aGluZ01vZGUgc21vb3RoaW5nTW9kZSkKIHsKLSAgICBhcHBlbmRJdGVtQW5kVXBkYXRl
RXh0ZW50KERyYXdHbHlwaHM6OmNyZWF0ZShmb250LCBnbHlwaEJ1ZmZlci5nbHlwaHMoZnJvbSks
IGdseXBoQnVmZmVyLmFkdmFuY2VzKGZyb20pLCBudW1HbHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290
aGluZ01vZGUpKTsKKyAgICBtX2RyYXdHbHlwaHNSZWNvcmRlci5kcmF3R2x5cGhzKGZvbnQsIGds
eXBoQnVmZmVyLCBmcm9tLCBudW1HbHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGluZ01vZGUpOwog
fQogCiBJbWFnZURyYXdSZXN1bHQgUmVjb3JkZXI6OmRyYXdJbWFnZShJbWFnZSYgaW1hZ2UsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25z
dCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCkBAIC0yNDMsNiAr
MjQ0LDkgQEAgdm9pZCBSZWNvcmRlcjo6c2NhbGUoY29uc3QgRmxvYXRTaXplJiBzaXplKQogCiB2
b2lkIFJlY29yZGVyOjpjb25jYXRDVE0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0p
CiB7CisgICAgaWYgKHRyYW5zZm9ybS5pc0lkZW50aXR5KCkpCisgICAgICAgIHJldHVybjsKKwog
ICAgIGN1cnJlbnRTdGF0ZSgpLmNvbmNhdENUTSh0cmFuc2Zvcm0pOwogICAgIGFwcGVuZEl0ZW0o
Q29uY2F0ZW5hdGVDVE06OmNyZWF0ZSh0cmFuc2Zvcm0pKTsKIH0KQEAgLTQyOCw3ICs0MzIsMTcg
QEAgdm9pZCBSZWNvcmRlcjo6Y2xpcFRvSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImLCBjb25zdCBG
bG9hdFJlY3QmKQogCiB2b2lkIFJlY29yZGVyOjpjbGlwVG9EcmF3aW5nQ29tbWFuZHMoY29uc3Qg
RmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBGdW5jdGlvbjx2
b2lkKEdyYXBoaWNzQ29udGV4dCYpPiYmIGRyYXdpbmdGdW5jdGlvbikKIHsKLSAgICBhdXRvIHJl
Y29yZGluZ0NvbnRleHQgPSBtYWtlVW5pcXVlPERyYXdpbmdDb250ZXh0PihkZXN0aW5hdGlvbi5z
aXplKCkpOworICAgIC8vIFRoZSBpbml0aWFsIENUTSBtYXRjaGVzIEltYWdlQnVmZmVyJ3MgaW5p
dGlhbCBDVE0uCisgICAgQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSA9IGdldENUTShHcmFwaGlj
c0NvbnRleHQ6OkRlZmluaXRlbHlJbmNsdWRlRGV2aWNlU2NhbGUpOworICAgIEZsb2F0U2l6ZSBz
Y2FsZUZhY3Rvcih0cmFuc2Zvcm0ueFNjYWxlKCksIHRyYW5zZm9ybS55U2NhbGUoKSk7CisgICAg
YXV0byBzY2FsZWRTaXplID0gZXhwYW5kZWRJbnRTaXplKGRlc3RpbmF0aW9uLnNpemUoKSAqIHNj
YWxlRmFjdG9yKTsKKworICAgIEFmZmluZVRyYW5zZm9ybSBpbml0aWFsQ1RNOworICAgIGluaXRp
YWxDVE0uc2NhbGUoMSwgLTEpOworICAgIGluaXRpYWxDVE0udHJhbnNsYXRlKDAsIC1zY2FsZWRT
aXplLmhlaWdodCgpKTsKKyAgICBpbml0aWFsQ1RNLnNjYWxlKHNjYWxlZFNpemUgLyBkZXN0aW5h
dGlvbi5zaXplKCkpOworCisgICAgYXV0byByZWNvcmRpbmdDb250ZXh0ID0gbWFrZVVuaXF1ZTxE
cmF3aW5nQ29udGV4dD4oZGVzdGluYXRpb24uc2l6ZSgpLCBpbml0aWFsQ1RNKTsKICAgICBkcmF3
aW5nRnVuY3Rpb24ocmVjb3JkaW5nQ29udGV4dC0+Y29udGV4dCgpKTsKICAgICBhcHBlbmRJdGVt
KENsaXBUb0RyYXdpbmdDb21tYW5kczo6Y3JlYXRlKGRlc3RpbmF0aW9uLCBjb2xvclNwYWNlLCBy
ZWNvcmRpbmdDb250ZXh0LT50YWtlRGlzcGxheUxpc3QoKSkpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVj
b3JkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdFJlY29yZGVyLmgKaW5kZXggNWI4YTQ0YzUxODBjMWZlYWUwODVjMDFhODhkMDg1
NGQ2OTVmOTVhOS4uMzFjOGM4OTYzNzhjMGNhZmJiMjExMjg5NTk3Y2VlMjhiNGZhNzVkMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0UmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCkBAIC0yNiw2ICsyNiw3IEBACiAj
cHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkRpc3BsYXlMaXN0LmgiCisjaW5jbHVkZSAiRGlzcGxh
eUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRJbXBs
LmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIgLy8gRm9yIEltYWdlOjpUaWxlUnVsZS4KICNpbmNsdWRl
ICJUZXh0RmxhZ3MuaCIKQEAgLTYxLDggKzYyLDYgQEAgcHVibGljOgogCiAgICAgc2l6ZV90IGl0
ZW1Db3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheUxpc3QuaXRlbUNvdW50KCk7IH0KIAot
ICAgIHZvaWQgYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChSZWY8RHJhd2luZ0l0ZW0+JiYpOwot
CiAgICAgY2xhc3MgRGVsZWdhdGUgewogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB+RGVs
ZWdhdGUoKSB7IH0KQEAgLTcyLDYgKzcxLDcgQEAgcHVibGljOgogICAgIH07CiAKIHByaXZhdGU6
CisgICAgZnJpZW5kIGNsYXNzIERyYXdHbHlwaHNSZWNvcmRlcjsKICAgICBib29sIGhhc1BsYXRm
b3JtQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgUGxhdGZv
cm1HcmFwaGljc0NvbnRleHQqIHBsYXRmb3JtQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIG51bGxwdHI7IH0KIApAQCAtMTUxLDYgKzE1MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBh
cHBlbmRJdGVtKFJlZjxJdGVtPiYmKTsKICAgICB2b2lkIHdpbGxBcHBlbmRJdGVtKGNvbnN0IEl0
ZW0mKTsKICAgICB2b2lkIGRpZEFwcGVuZEl0ZW0oY29uc3QgSXRlbSYpOworICAgIHZvaWQgYXBw
ZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChSZWY8RHJhd2luZ0l0ZW0+JiYpOwogCiAgICAgdm9pZCBh
cHBlbmRTdGF0ZUNoYW5nZUl0ZW0oY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2UmLCBH
cmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyk7CiAKQEAgLTE5NSw2ICsxOTYs
OCBAQCBwcml2YXRlOgogICAgIERlbGVnYXRlKiBtX2RlbGVnYXRlOwogCiAgICAgVmVjdG9yPENv
bnRleHRTdGF0ZSwgMzI+IG1fc3RhdGVTdGFjazsKKworICAgIERyYXdHbHlwaHNSZWNvcmRlciBt
X2RyYXdHbHlwaHNSZWNvcmRlcjsKIH07CiAKIH0K
</data>
<flag name="commit-queue"
          id="429211"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412714</attachid>
            <date>2020-10-29 22:24:09 -0700</date>
            <delta_ts>2020-10-30 09:30:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217506-20201029222408.patch</filename>
            <type>text/plain</type>
            <size>52610</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI2OWI0YzJlYzgyOTE2
NzA1NGU2ZmMzMWVlN2I1NDU5ZDQ3NDRhMi4uMGY0ZTkxYjhlNzVlZTRkNmI4ZmFlMmNjZmY2ZDMx
NzhkZDYyNGU0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMyBAQAorMjAyMC0xMC0yOSAgTXls
ZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0g
W0dQVSBQcm9jZXNzXSBQZXJmb3JtIGltYWdlIGRlY29kaW5nIG9mIGNvbG9yIGZvbnRzIGluIHRo
ZSBXZWIgUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE3NTA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ29yZSBUZXh0IGl0c2VsZiBkb2Vzbid0IGtub3cgaG93IHRvIGRyYXcgdGhpbmdzOyBp
dCBoYXMgdG8gcmVseSBvbiBDb3JlIEdyYXBoaWNzIHRvIGRvIHRoYXQuCisgICAgICAgIEhvd2V2
ZXIsIENvcmUgR3JhcGhpY3Mgb25seSB1bmRlcnN0YW5kcyB0aGUgc2ltcGxlc3Qgb2YgdGV4dCBk
cmF3aW5nIGNvbmNlcHRzOyBpdCBkb2Vzbid0IHVuZGVyc3RhbmQKKyAgICAgICAgdGhpbmdzIGxp
a2UgY29sb3IgZm9udHMgb3IgZW1vamkuIENvcmUgVGV4dCBzaXRzIGJldHdlZW4gdGhlIGFwcGxp
Y2F0aW9uIGFuZCBDb3JlIEdyYXBoaWNzLCBhbmQgaXMKKyAgICAgICAgcmVzcG9uc2libGUgZm9y
IHNwbGl0dGluZyB1cCBhbiBhcmJpdHJhcnkgZHJhdyBjb21tYW5kIGludG8gaW5kaXZpZHVhbCBz
aW1wbGUgcGllY2VzIHdoaWNoIENvcmUKKyAgICAgICAgR3JhcGhpY3MgY2FuIHVuZGVyc3RhbmQu
IEZvciBleGFtcGxlLCB3aGVuIHlvdSBhc2sgQ29yZSBUZXh0IHRvIGRyYXcgYSBzdHJpbmcgd2hp
Y2ggaW5jbHVkZXMgYW4gZW1vamkKKyAgICAgICAgY2hhcmFjdGVyLCBDb3JlIFRleHQgd2lsbCBl
bmQgdXAgdGVsbGluZyBDb3JlIEdyYXBoaWNzIHRvIGRyYXcgYWxsIHRoZSBvdXRsaW5lcywgYW5k
IHRoZW4gdGVsbGluZyBDb3JlCisgICAgICAgIEdyYXBoaWNzIHRvIGRyYXcgdGhlIGVtb2ppIGlt
YWdlICh1c2luZyBDb3JlIEdyYXBoaWNzJ3Mgbm9ybWFsIGltYWdlIGRyYXdpbmcgcm91dGluZXMp
LgorCisgICAgICAgIFRoaXMgaXMgZXhhY3RseSB0aGUgc2FtZSBraW5kIG9mIGZpbHRlcmluZyB3
ZSB3YW50IHRvIGRvIGZvciB0aGUgR1BVIFByb2Nlc3MuIFdlIHdhbnQgdG8gYmUgYWJsZSB0bwor
ICAgICAgICBzZXBhcmF0ZSBvdXQgdGhlIGdseXBocyB3aGljaCBhcmUgcmVuZGVyZWQgdXNpbmcg
b3V0bGluZXMgZnJvbSB0aGUgZW1vamkgZ2x5cGhzIHdoaWNoIGFyZSByZW5kZXJlZAorICAgICAg
ICB1c2luZyBpbWFnZXMuIFdlIHdhbnQgdG8gaGFuZGxlIHRoZSBpbWFnZSBnbHlwaHMgb3Vyc2Vs
ZiBpbiBXZWJLaXQgdXNpbmcgb3VyIG93biBpbWFnZSBkcmF3aW5nIGRpc3BsYXkKKyAgICAgICAg
bGlzdCBmYWNpbGl0aWVzLCB3aGljaCB3aWxsIGNhdXNlIGltYWdlcyB0byBiZSBkZWNvZGVkIGlu
IHRoZSBXZWIgUHJvY2VzcywgdGhlcmVieSBpbmNyZWFzaW5nIHRoZQorICAgICAgICBzZWN1cml0
eSBvZiB0aGUgR1BVIFByb2Nlc3MuCisKKyAgICAgICAgU28sIHRoaXMgcGF0Y2ggaW1wbGVtZW50
cyBhIGN1c3RvbSBDR0NvbnRleHQsIGJhY2tlZCBieSBhIGZ1bmN0aW9uIHRhYmxlIHRoYXQgaXMg
cG9wdWxhdGVkIGluIFdlYktpdC4KKyAgICAgICAgV2UgcGFzcyB0aGlzIGN1c3RvbSBDR0NvbnRl
eHQgaW50byBDb3JlIFRleHQsIHdoaWNoIGRvZXMgaXRzIG5vcm1hbCBzcGxpdHRpbmcgdXAgb2Yg
b3V0bGluZXMgLyBpbWFnZXMsCisgICAgICAgIGFuZCBjYWxscyBnbHlwaCAvIGltYWdlIGRyYXdp
bmcgZnVuY3Rpb25zIG9uIG91ciBDR0NvbnRleHQuIEJlY2F1c2UgdGhlc2UgZnVuY3Rpb25zIGFy
ZSBpbXBsZW1lbnRlZCBieQorICAgICAgICBXZWJLaXQsIHRoaXMgZWZmZWN0aXZlbHkgbWFrZXMg
V2ViS2l0IGFibGUgdG8gaW50ZXJjZXB0IHRoZSBkcmF3aW5nIGNhbGxzLCBhbmQgaW1wbGVtZW50
IHRoZW0gb3Vyc2VsZgorICAgICAgICBieSBhcHBlbmRpbmcgaXRlbXMgdG8gdGhlIGN1cnJlbnQg
ZGlzcGxheSBsaXN0LiBTbywgd2hlbiBDb3JlIFRleHQgdGVsbHMgb3VyIENHQ29udGV4dCB0byBk
cmF3IGFuIGVtb2ppLAorICAgICAgICBvdXIgY2FsbGJhY2sgcnVucyBhbmQgd2UgImp1c3QiIGFw
cGVuZCBhIERyYXdJbWFnZSBkaXNwbGF5IGxpc3QgaXRlbS4KKworICAgICAgICBJIHVzZSBzY2Fy
ZS1xdW90ZXMgYXJvdW5kICJqdXN0IiBiZWNhdXNlIGl0IGlzIGEgYml0IG1vcmUgY29tcGxpY2F0
ZWQgdGhhbiB0aGF0LiBDb3JlIFRleHQgaW50ZXJuYWxseQorICAgICAgICBjYW4gY2hhbmdlIHRo
ZSBmaWxsL3N0cm9rZSBjb2xvciAoZm9yIENPTFIgZ2x5cGhzKSwgdGhlIHRleHQgbWF0cml4IChp
dCBzaG91bGQgYmUgdXBkYXRlZCBiZXR3ZWVuCisgICAgICAgIGFkamFjZW50IHJ1bnMpLCB0aGUg
Q1RNLCBhbmQgdGhlIHNoYWRvdyBzdGF0ZSAoYmVjYXVzZSBDb3JlIFRleHQgc29tZXRpbWVzIHdp
bGwgaW1wbGVtZW50IHNoYWRvd3MgaXRzZWxmCisgICAgICAgIGJ5IGp1c3QgZHJhd2luZyB0aGUg
dGV4dCB0d28gdGltZXMpLiBTbywgaW4gb3VyIENHQ29udGV4dCBjYWxsYmFjaywgd2UgaGF2ZSB0
byBsb29rIGF0IHRoZSBzdGF0ZSBvZgorICAgICAgICB0aGUgQ0dDb250ZXh0LCBmaWd1cmUgb3V0
IGlmIGFueXRoaW5nIGNoYW5nZWQgKGJlY2F1c2Ugd2UncmUgbm90IG5vdGlmaWVkIHdoZW4gY2hh
bmdlcyBoYXBwZW4pLCBhbmQKKyAgICAgICAgaWYgdGhpbmdzIGRpZCBjaGFuZ2UsIGFwcGVuZCBh
ZGRpdGlvbmFsIGRpc3BsYXkgbGlzdCBpdGVtcyB0byBtYWtlIGEgcGFyYWxsZWwgY2hhbmdlIGhh
cHBlbiBhdCBkcmF3CisgICAgICAgIHRpbWUuCisKKyAgICAgICAgVGVzdHMgYWRkZWQgaW4gaHR0
cHM6Ly90cmFjLndlYmtpdC5vcmcvcjI2OTE3NworCisgICAgICAgICogSGVhZGVycy5jbWFrZToK
KyAgICAgICAgKiBQbGF0Zm9ybUFwcGxlV2luLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtV2lu
Q2Fpcm8uY21ha2U6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vRnJlZVR5
cGUuY21ha2U6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0Jh
Y2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJDR0JhY2tlbmQ6OnNldHVw
Q29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udENhc2Nh
ZGVDb3JlVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaWxsVmVjdG9yV2l0aEhvcml6b250
YWxHbHlwaFBvc2l0aW9ucyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmg6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRl
ckNvcmVUZXh0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6YmVn
aW5MYXllcik6IFZUYWJsZSBjYWxsYmFjayBmb3IgY3JlYXRpbmcgYSB0cmFuc3BhcmVuY3kgbGF5
ZXIuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6ZW5kTGF5ZXIpOiBEaXR0byBmb3Ig
ZW5kaW5nIGEgdHJhbnNwYXJlbmN5IGxheWVyLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OmRyYXdHbHlwaHMpOiBWVGFibGUgY2FsbGJhY2sgZm9yIGRyYXdpbmcgb3V0bGluZSBnbHlw
aHMuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6ZHJhd0ltYWdlKTogVlRhYmxlIGNh
bGxiYWNrIGZvciBkcmF3aW5nIGFuIGltYWdlLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6Y3JlYXRlSW50ZXJuYWxDb250ZXh0KTogU2V0IHVwIHRo
ZSBjdXN0b20gQ0dDb250ZXh0CisgICAgICAgIGluZnJhc3RydWN0dXJlLiBIb29rIHVwIHRoZSBW
VGFibGUgY2FsbGJhY2tzLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlw
aHNSZWNvcmRlcjo6RHJhd0dseXBoc1JlY29yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnBvcHVsYXRlSW50ZXJuYWxTdGF0ZSk6IFdlIG5l
ZWQgdG8gc2F2ZSB0aGUgR3JhcGhpY3NDb250ZXh0CisgICAgICAgIHN0YXRlIGF0IHRoZSBiZWdp
bm5pbmcgb2YgdGhlIGVudHJ5IHBvaW50LCBzbyB3ZSBjYW4gcmVzdG9yZSBhbnl0aGluZyB0aGF0
IGNoYW5nZWQgd2hlbiB3ZSdyZSBkb25lLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdHbHlwaHNSZWNvcmRlcjo6cG9wdWxhdGVJbnRlcm5hbENvbnRleHQpOiBCZWNhdXNlIENv
cmUgVGV4dCBpbnRlcm5hbGx5CisgICAgICAgIGludGVycm9nYXRlcyB0aGUgQ0dDb250ZXh0IHRv
IHNlZSBpZiBpdCBuZWVkcyB0byBkbyB0aGluZ3MgbGlrZSBkcmF3IHNoYWRvd3MgaXRzZWxmLCB3
ZSBuZWVkIHRvIG1ha2UKKyAgICAgICAgc3VyZSB0aGF0IHRoZSByZWNvcmRlcidzIHN0YXRlIGlz
IG1pcnJvcmVkIGluIG91ciBjdXN0b20gQ0dDb250ZXh0LiBUaGlzIGFwcGxpZXMgYWxsIHRoZSBy
ZWxldmFudAorICAgICAgICBzdGF0ZSB0byBvdXIgQ0dDb250ZXh0IHNvIGl0J3MgcmVhZHkgd2hl
biBDb3JlIFRleHQgYXNrcyBmb3IgaXQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
RHJhd0dseXBoc1JlY29yZGVyOjpwcmVwYXJlSW50ZXJuYWxDb250ZXh0KTogQ2FsbCB0aGUgYWJv
dmUgdHdvIGZ1bmN0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5
cGhzUmVjb3JkZXI6OmNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KTogQ2FsbGVkIG9uY2Ugd2hlbiB3
ZSdyZSBkb25lLgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGNsZWFucyB1cCwgYnkgcG9zc2libHkg
YXBwZW5kaW5nIGFkZGl0aW9uYWwgZGlzcGxheSBsaXN0IGl0ZW1zIHRvIHJlc3RvcmUgdGhlIHN0
YXRlCisgICAgICAgIGJhY2sgdG8gd2hhdCBpdCB3YXMgd2hlbiB3ZSBzdGFydGVkLgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6dXBkYXRlRmlsbENv
bG9yKTogRGV0ZWN0IGEgY2hhbmdlZCBmaWxsIGNvbG9yLCBhbmQgaWYgaXQgaGFzCisgICAgICAg
IGNoYW5nZWQsIGFwcGVuZCBhIGRpc3BsYXkgbGlzdCBpdGVtIHRvIG1ha2UgYSBwYXJhbGxlbCBj
aGFuZ2UgYXQgZHJhd2luZyB0aW1lLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRy
YXdHbHlwaHNSZWNvcmRlcjo6dXBkYXRlU3Ryb2tlQ29sb3IpOiBEaXR0byBmb3IgdGhlIHN0cm9r
ZSBjb2xvci4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3Jk
ZXI6OnVwZGF0ZUNUTSk6IERpdHRvIGZvciB0aGUgQ1RNLgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OnNoYWRvd0lzQ2xlYXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVTaGFkb3cpOiBEaXR0byBmb3IgdGhlIHNoYWRv
dyBzdGF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3Jk
ZXI6OnJlY29yZEJlZ2luTGF5ZXIpOiBIb29rIHRoaXMgdXAgdG8gYmVnaW5UcmFuc3BhcmVuY3lM
YXllcigpLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRl
cjo6cmVjb3JkRW5kTGF5ZXIpOiBIb29rIHRoaXMgdXAgdG8gZW5kVHJhbnNwYXJlbmN5TGF5ZXIo
KS4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0Ojpjb21wdXRlQWR2YW5jZXNGcm9tUG9z
aXRpb25zKTogQ0dDb250ZXh0IGdpdmVzIHVzIHBvc2l0aW9ucywgYnV0IG91ciBkaXNwbGF5IGxp
c3QKKyAgICAgICAgaW5mcmFzdHJ1Y3R1cmUgcmVxdWlyZXMgYWR2YW5jZXMuIFNpbXBseSBzdWJ0
cmFjdCB0byBjb252ZXJ0IGJldHdlZW4gdGhlbS4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZERyYXdHbHlwaHMpOiBUaGUgY2FsbGJhY2sg
dGhhdCBhcHBlbmRzIGEgRHJhd0dseXBocworICAgICAgICBkaXNwbGF5IGxpc3QgaXRlbS4gTm90
ZSBpdCBoYXMgdG8gY2FsbCB0aGUgdmFyaW91cyB1cGRhdGUoKSBmdW5jdGlvbnMgdG8gZGV0ZWN0
IGNoYW5nZXMgaW4gdGhlIENHQ29udGV4dAorICAgICAgICBzdGF0ZS4KKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZERyYXdJbWFnZSk6IERp
dHRvIGZvciBhIERyYXdJbWFnZSBkaXNwbGF5IGxpc3QgaXRlbS4KKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OmRyYXdHbHlwaHMpOiBUaGUgbWFpbiBl
bnRyeSBwb2ludC4gU2ltcGx5IHNldCB1cCwgZG8gdGhlIHdvcmssCisgICAgICAgIHRoZW4gY2xl
YW4gdXAuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0RHJhd0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwOiBBZGRlZC4gRHVtbXkgaW1wbGVtZW50
YXRpb24KKyAgICAgICAgdG8gbWFrZSB0aGUgb3RoZXIgcG9ydHMgY29udGludWUgdG8gY29tcGls
ZS4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OkRy
YXdHbHlwaHNSZWNvcmRlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ds
eXBoc1JlY29yZGVyOjpkcmF3R2x5cGhzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6UmVjb3JkZXI6OlJlY29yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpSZWNvcmRlcjo6ZHJhd0dseXBocyk6IENhbGwgbV9kcmF3R2x5cGhzUmVjb3JkZXIu
ZHJhd0dseXBocygpIGluc3RlYWQgb2YganVzdAorICAgICAgICBhcHBlbmRpbmcgYSBEcmF3R2x5
cGhzIGNvbW1hbmQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmNv
bmNhdENUTSk6IFRpbnkgb3B0aW1pemF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlJlY29yZGVyOjpjbGlwVG9EcmF3aW5nQ29tbWFuZHMpOiBUaGUgY3VycmVudCBjbGlwVG9E
cmF3aW5nQ29tbWFuZHMncyBjb250ZXh0CisgICAgICAgIENUTSBkaWRuJ3QgbWF0Y2ggdGhlIHBh
cmFsbGVsIG9uZSB1c2VkIGR1cmluZyBwbGF5YmFjay4gSW4gb3JkZXIgdG8gbWFrZSB0aGUgQ1RN
cyBtYXRjaCBhcmUgcmVjb3JkaW5nCisgICAgICAgIGFuZCBwbGF5YmFjayB0aW1lLCB3ZSBoYXZl
IHRvIG1ha2Ugc3VyZSB0aGV5IHN0YXJ0IG9mZiB0aGUgc2FtZS4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oOiBEaXNwbGF5TGlz
dDo6UmVjb3JkZXIgb3ducyBhIERyYXdHbHlwaHNSZWNvcmRlciwKKyAgICAgICAgd2hvc2UgbGlm
ZXRpbWUgZXF1YWxzIHRoYXQgb2YgdGhlIERpc3BsYXlMaXN0OjpSZWNvcmRlci4gUmF0aGVyIHRo
YW4gZGVzdHJveWluZyAvIHJlY3JlYXRpbmcgdGhlCisgICAgICAgIERyYXdHbHlwaHNSZWNvcmRl
ciwgdGhlIERyYXdHbHlwaHNSZWNvcmRlciBjbGFzcyBpcyBzbWFydCBlbm91Z2ggdG8gY2xlYW4g
dXAgYWZ0ZXIgaXRzZWxmIHNvIGl0IGNhbiBiZQorICAgICAgICByZXVzZWQgbXVsdGlwbGUgdGlt
ZXMuCisKIDIwMjAtMTAtMjkgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgog
CiAgICAgICAgIFtDb2NvYV0gUmVtb3ZlIHNvZnQgbGlua2luZyBvZiBOZXR3b3JrRXh0ZW5zaW9u
LmZyYW1ld29yawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggYzRkMzM0MjlkYmU2YjBjMjBkYTc5MjMx
YzZiMzNlZmM4YmQ1Nzk2Mi4uMDQ4MThmYTFhMzgwYzljMjE1MzMzYjgxM2NkOTVlMWRjNzU5NzM0
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMTAtMjkgIE15bGVz
IEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFtH
UFUgUHJvY2Vzc10gUGVyZm9ybSBpbWFnZSBkZWNvZGluZyBvZiBjb2xvciBmb250cyBpbiB0aGUg
V2ViIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxNzUwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBzb21lIG5ldyBlbnRyeSBwb2ludHMsIGFuZCBkbyBzb21lIHZhcmlvdXMgY2xlYW51
cC4KKworICAgICAgICAqIHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg6CisKIDIwMjAtMTAt
MTMgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBs
ZWZ0b3ZlciBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4IHN1cHBvcnQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCmluZGV4IDY4ODRkMGY4NmQyOWRjMTQ5MTY2MTE3YmE1Yzk2NGQxMGIzM2JkZGYuLjI4
MDFhZDZmZDg1ZmMzNjRlOGQwNjUxNDQ5MjM5YTcyOTE1OWY0YjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQpAQCAtMTIzNyw2ICsxMjM3LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVB
REVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0V4dGVuc2lvbnNHTEFOR0xFLmgKIAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5oCisgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVy
LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5n
Q29udGV4dC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SW1hZ2VCdWZmZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1zLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0Nv
cmVHcmFwaGljc1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBo
aWNzU1BJLmgKaW5kZXggYTdmODJiODYxYjYyYzRhZWZiODNjMTgxMWQ1NWM3YWY3NDllNmI5MS4u
NDBkNWFmMDAzMjVjNGYyOGQ2NjZjNzQ5MmEwZDVkMWQwZjAzYWViMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKQEAgLTM4LDYgKzM4LDcg
QEAKIAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKKyNpbmNsdWRlIDxDb3JlR3JhcGhp
Y3MvQ0dDb250ZXh0RGVsZWdhdGVQcml2YXRlLmg+CiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NH
Rm9udENhY2hlLmg+CiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHUGF0aFByaXZhdGUuaD4KICNp
bmNsdWRlIDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBoaWNzUHJpdmF0ZS5oPgpAQCAtNTgsMTkgKzU5
LDEyIEBAIHN0cnVjdCBDR0ZvbnRITWV0cmljcyB7CiAgICAgaW50IG1pblJpZ2h0U2lkZUJlYXJp
bmc7CiB9OwogCi1zdHJ1Y3QgQ0dGb250RGVzY3JpcHRvciB7Ci0gICAgQ0dSZWN0IGJib3g7Ci0g
ICAgQ0dGbG9hdCBhc2NlbnQ7Ci0gICAgQ0dGbG9hdCBkZXNjZW50OwotICAgIENHRmxvYXQgY2Fw
SGVpZ2h0OwotICAgIENHRmxvYXQgaXRhbGljQW5nbGU7Ci0gICAgQ0dGbG9hdCBzdGVtVjsKLSAg
ICBDR0Zsb2F0IHN0ZW1IOwotICAgIENHRmxvYXQgYXZnV2lkdGg7Ci0gICAgQ0dGbG9hdCBtYXhX
aWR0aDsKLSAgICBDR0Zsb2F0IG1pc3NpbmdXaWR0aDsKLSAgICBDR0Zsb2F0IGxlYWRpbmc7Ci0g
ICAgQ0dGbG9hdCB4SGVpZ2h0OwordHlwZWRlZiBDRl9FTlVNIChpbnQzMl90LCBDR0NvbnRleHRE
ZWxlZ2F0ZUNhbGxiYWNrTmFtZSkKK3sKKyAgICBkZURyYXdJbWFnZSA9IDcsCisgICAgZGVEcmF3
R2x5cGhzID0gOCwKKyAgICBkZUJlZ2luTGF5ZXIgPSAxNywKKyAgICBkZUVuZExheWVyID0gMTgs
CiB9OwogCiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBDR0NvbG9yVHJhbnNmb3JtKiBDR0NvbG9yVHJh
bnNmb3JtUmVmOwpAQCAtMTc5LDYgKzE3MywyMiBAQCB0eXBlZGVmIHN0cnVjdCBDR0ZvY3VzUmlu
Z1N0eWxlIENHRm9jdXNSaW5nU3R5bGU7CiAKICNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKIAor
c3RydWN0IENHU2hhZG93U3R5bGUgeworICAgIHVuc2lnbmVkIGE7CisgICAgQ0dGbG9hdCBiOwor
ICAgIENHRmxvYXQgYXppbXV0aDsKKyAgICBDR0Zsb2F0IGM7CisgICAgQ0dGbG9hdCBoZWlnaHQ7
CisgICAgQ0dGbG9hdCByYWRpdXM7CisgICAgQ0dGbG9hdCBkOworfTsKK3R5cGVkZWYgc3RydWN0
IENHU2hhZG93U3R5bGUgQ0dTaGFkb3dTdHlsZTsKKwordHlwZWRlZiBDRl9FTlVNIChpbnQzMl90
LCBDR1N0eWxlVHlwZSkKK3sKKyAgICBrQ0dTdHlsZVNoYWRvdyA9IDEsCit9OworCiAjaWYgUExB
VEZPUk0oTUFDKQogCiB0eXBlZGVmIENGX0VOVU0odWludDMyX3QsIENHU05vdGlmaWNhdGlvblR5
cGUpIHsKQEAgLTE5Myw2ICsyMDMsMTIgQEAgc3RhdGljIGNvbnN0IENHU05vdGlmaWNhdGlvblR5
cGUga0NHU2Vzc2lvbkNvbnNvbGVEaXNjb25uZWN0ID0gKENHU05vdGlmaWNhdGlvblQKIAogI2Vu
ZGlmIC8vIFBMQVRGT1JNKE1BQykKIAordHlwZWRlZiBzdHJ1Y3QgQ0dDb250ZXh0RGVsZWdhdGUg
KkNHQ29udGV4dERlbGVnYXRlUmVmOwordHlwZWRlZiB2b2lkICgqQ0dDb250ZXh0RGVsZWdhdGVD
YWxsYmFjaykodm9pZCk7Cit0eXBlZGVmIHN0cnVjdCBDR1JlbmRlcmluZ1N0YXRlICpDR1JlbmRl
cmluZ1N0YXRlUmVmOwordHlwZWRlZiBzdHJ1Y3QgQ0dHU3RhdGUgKkNHR1N0YXRlUmVmOwordHlw
ZWRlZiBzdHJ1Y3QgQ0dTdHlsZSAqQ0dTdHlsZVJlZjsKKwogI2VuZGlmIC8vIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspCiAKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTIwMyw3ICsyMTksNiBAQCB0
eXBlZGVmIHVpbnQzMl90IENHU1dpbmRvd0lEOwogCiB0eXBlZGVmIENHU1dpbmRvd0lEKiBDR1NX
aW5kb3dJRExpc3Q7CiB0eXBlZGVmIHN0cnVjdCBDRl9CUklER0VEX1RZUEUoaWQpIENHU1JlZ2lv
bk9iamVjdCogQ0dTUmVnaW9uT2JqOwotdHlwZWRlZiBzdHJ1Y3QgQ0ZfQlJJREdFRF9UWVBFKGlk
KSBDR1N0eWxlKiBDR1N0eWxlUmVmOwogCiB0eXBlZGVmIHZvaWQqIENHU05vdGlmaWNhdGlvbkFy
ZzsKIHR5cGVkZWYgdm9pZCogQ0dTTm90aWZpY2F0aW9uRGF0YTsKQEAgLTIzMyw3ICsyNDgsNiBA
QCB2b2lkIENHQ29udGV4dFJlc2V0Q2xpcChDR0NvbnRleHRSZWYpOwogQ0dDb250ZXh0VHlwZSBD
R0NvbnRleHRHZXRUeXBlKENHQ29udGV4dFJlZik7CiAKIENGU3RyaW5nUmVmIENHRm9udENvcHlG
YW1pbHlOYW1lKENHRm9udFJlZik7Ci1ib29sIENHRm9udEdldERlc2NyaXB0b3IoQ0dGb250UmVm
LCBDR0ZvbnREZXNjcmlwdG9yKik7CiBib29sIENHRm9udEdldEdseXBoQWR2YW5jZXNGb3JTdHls
ZShDR0ZvbnRSZWYsIGNvbnN0IENHQWZmaW5lVHJhbnNmb3JtKiAsIENHRm9udFJlbmRlcmluZ1N0
eWxlLCBjb25zdCBDR0dseXBoW10sIHNpemVfdCBjb3VudCwgQ0dTaXplIGFkdmFuY2VzW10pOwog
dm9pZCBDR0ZvbnRHZXRHbHlwaHNGb3JVbmljaGFycyhDR0ZvbnRSZWYsIGNvbnN0IFVuaUNoYXJb
XSwgQ0dHbHlwaFtdLCBzaXplX3QgY291bnQpOwogY29uc3QgQ0dGb250SE1ldHJpY3MqIENHRm9u
dEdldEhNZXRyaWNzKENHRm9udFJlZik7CkBAIC0yNTIsNiArMjY2LDIxIEBAIGJvb2wgQ0dDb250
ZXh0R2V0QWxsb3dzRm9udFN1YnBpeGVsUG9zaXRpb25pbmcoQ0dDb250ZXh0UmVmKTsKIGJvb2wg
Q0dDb250ZXh0RHJhd3NXaXRoQ29ycmVjdFNoYWRvd09mZnNldHMoQ0dDb250ZXh0UmVmKTsKIENH
UGF0dGVyblJlZiBDR1BhdHRlcm5DcmVhdGVXaXRoSW1hZ2UyKENHSW1hZ2VSZWYsIENHQWZmaW5l
VHJhbnNmb3JtLCBDR1BhdHRlcm5UaWxpbmcpOwogCitDR0NvbnRleHREZWxlZ2F0ZVJlZiBDR0Nv
bnRleHREZWxlZ2F0ZUNyZWF0ZSh2b2lkKiBpbmZvKTsKK3ZvaWQgQ0dDb250ZXh0RGVsZWdhdGVT
ZXRDYWxsYmFjayhDR0NvbnRleHREZWxlZ2F0ZVJlZiwgQ0dDb250ZXh0RGVsZWdhdGVDYWxsYmFj
a05hbWUsIENHQ29udGV4dERlbGVnYXRlQ2FsbGJhY2spOworQ0dDb250ZXh0UmVmIENHQ29udGV4
dENyZWF0ZVdpdGhEZWxlZ2F0ZShDR0NvbnRleHREZWxlZ2F0ZVJlZiwgQ0dDb250ZXh0VHlwZSwg
Q0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYpOwordm9pZCogQ0dDb250ZXh0RGVsZWdh
dGVHZXRJbmZvKENHQ29udGV4dERlbGVnYXRlUmVmKTsKK3ZvaWQgQ0dDb250ZXh0RGVsZWdhdGVS
ZWxlYXNlKENHQ29udGV4dERlbGVnYXRlUmVmKTsKK0NHRmxvYXQgQ0dHU3RhdGVHZXRBbHBoYShD
R0dTdGF0ZVJlZik7CitDR0ZvbnRSZWYgQ0dHU3RhdGVHZXRGb250KENHR1N0YXRlUmVmKTsKK2Nv
bnN0IENHQWZmaW5lVHJhbnNmb3JtICpDR0dTdGF0ZUdldENUTShDR0dTdGF0ZVJlZik7CitDR0Nv
bG9yUmVmIENHR1N0YXRlR2V0RmlsbENvbG9yKENHR1N0YXRlUmVmKTsKK0NHQ29sb3JSZWYgQ0dH
U3RhdGVHZXRTdHJva2VDb2xvcihDR0dTdGF0ZVJlZik7CitDR1N0eWxlUmVmIENHR1N0YXRlR2V0
U3R5bGUoQ0dHU3RhdGVSZWYpOworQ0dTdHlsZVR5cGUgQ0dTdHlsZUdldFR5cGUoQ0dTdHlsZVJl
Zik7Citjb25zdCB2b2lkICpDR1N0eWxlR2V0RGF0YShDR1N0eWxlUmVmKTsKK0NHQ29sb3JSZWYg
Q0dTdHlsZUdldENvbG9yKENHU3R5bGVSZWYpOworCiAjaWYgSEFWRShDR1BBVEhfR0VUX05VTUJF
Ul9PRl9FTEVNRU5UUykKIHNpemVfdCBDR1BhdGhHZXROdW1iZXJPZkVsZW1lbnRzKENHUGF0aFJl
Zik7CiAjZW5kaWYKQEAgLTI4NiwxNiArMzE1LDkgQEAgQ0dSZWN0KiBDR1NOZXh0UmVjdChjb25z
dCBDR1NSZWdpb25FbnVtZXJhdG9yT2JqKTsKIENHU1JlZ2lvbkVudW1lcmF0b3JPYmogQ0dTUmVn
aW9uRW51bWVyYXRvcihDR1JlZ2lvblJlZik7CiBDR1N0eWxlUmVmIENHU3R5bGVDcmVhdGVGb2N1
c1JpbmdXaXRoQ29sb3IoY29uc3QgQ0dGb2N1c1JpbmdTdHlsZSosIENHQ29sb3JSZWYpOwogdm9p
ZCBDR0NvbnRleHRTZXRTdHlsZShDR0NvbnRleHRSZWYsIENHU3R5bGVSZWYpOwotCiB2b2lkIENH
Q29udGV4dERyYXdDb25pY0dyYWRpZW50KENHQ29udGV4dFJlZiwgQ0dHcmFkaWVudFJlZiwgQ0dQ
b2ludCBjZW50ZXIsIENHRmxvYXQgYW5nbGUpOwotCi0jaWYgSEFWRShDR19QQVRIX1VORVZFTl9D
T1JORVJTX1JPVU5ERURSRUNUKQogdm9pZCBDR1BhdGhBZGRVbmV2ZW5Db3JuZXJzUm91bmRlZFJl
Y3QoQ0dNdXRhYmxlUGF0aFJlZiwgY29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0gKiwgQ0dSZWN0LCBj
b25zdCBDR1NpemUgY29ybmVyc1s0XSk7Ci0jZW5kaWYKLQotI2lmIEhBVkUoQ0dfRk9OVF9SRU5E
RVJJTkdfR0VUX0ZPTlRfU01PT1RISU5HX0RJU0FCTEVEKQogYm9vbCBDR0ZvbnRSZW5kZXJpbmdH
ZXRGb250U21vb3RoaW5nRGlzYWJsZWQodm9pZCk7Ci0jZW5kaWYKIAogI2VuZGlmIC8vIFBMQVRG
T1JNKENPQ09BKQogCkBAIC0zMjgsMTUgKzM1MCwxMCBAQCBib29sIENvbG9yU3luY1Byb2ZpbGVJ
c1dpZGVHYW11dChDb2xvclN5bmNQcm9maWxlUmVmKTsKIHNpemVfdCBDR0Rpc3BsYXlNb2RlR2V0
UGl4ZWxzV2lkZShDR0Rpc3BsYXlNb2RlUmVmKTsKIHNpemVfdCBDR0Rpc3BsYXlNb2RlR2V0UGl4
ZWxzSGlnaChDR0Rpc3BsYXlNb2RlUmVmKTsKIAotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRP
V1NFUlZFUl9CTE9DS0lORykKLQogQ0dFcnJvciBDR1NTZXREZW55V2luZG93U2VydmVyQ29ubmVj
dGlvbnMoYm9vbCk7Ci0KIHR5cGVkZWYgaW50MzJfdCBDR1NEaXNwbGF5SUQ7CiBDR1NEaXNwbGF5
SUQgQ0dTTWFpbkRpc3BsYXlJRCh2b2lkKTsKIAotI2VuZGlmIC8vIEVOQUJMRShXRUJQUk9DRVNT
X1dJTkRPV1NFUlZFUl9CTE9DS0lORykKLQogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAogI2lm
IEVOQUJMRShQREZLSVRfUExVR0lOKSAmJiAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQXBwbGVXaW4uY21ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybUFwcGxlV2luLmNtYWtlCmluZGV4IGE3ODhlNjlkZTc0NDFjOTQwODRmNzAz
NmEzZThmNDlhZDQ1MWE1OGQuLjM4YTJiNzc2ODk1NTk4YTRmNGUzNmFkZTdjNjAzYjA0MDc4ZGRj
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQXBwbGVXaW4uY21ha2UKKysr
IGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1BcHBsZVdpbi5jbWFrZQpAQCAtMzAsNiArMzAsOCBA
QCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL1dlYkNvcmVBVkNGUmVzb3VyY2VMb2FkZXIu
Y3BwCiAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3
R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAKKwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9G
b250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAogCiAgICAgcGxhdGZvcm0vbmV0d29yay9jZi9BdXRo
ZW50aWNhdGlvbkNGLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5D
YWlyby5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UKaW5kZXgg
YTY4OTY0NzdkZTBjZjUwMzRmM2ZkMDlmM2YwYzc2YTdkYTZlYzhhMS4uMDc3OGY3NTU2NmM2NDYz
MDIwYTBlMDdjNTJhNjVjMWE0NzRmNjI4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1XaW5DYWlyby5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbkNhaXJv
LmNtYWtlCkBAIC0yMiw2ICsyMiw4IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Q
bGF0Zm9ybURpc3BsYXkuY3BwCiAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHAKKwogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8uY3BwCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFDYWlyb1dpbi5jcHAKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy93aW4vR2x5cGhQYWdlVHJlZU5vZGVDYWlyb1dpbi5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
Q29jb2EudHh0CmluZGV4IGViNGUxN2YyZTczNmVhODY4MWM1NmQyMDI1MTQ5MjZiOGRjOTk0NTAu
LjJhZDMzYTk1NTE5MmQ5MDc2ZWIzZDhjMTYyY2ZlMzg2MjJkZmIxOGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNl
c0NvY29hLnR4dApAQCAtMzc5LDYgKzM3OSw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdl
VHJhbnNmZXJTZXNzaW9uVlQubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29u
Zm9ybWVyQ1YuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5j
cHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GaWx0ZXJFZmZlY3RSZW5kZXJlckNvcmVJ
bWFnZS5tbQorcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0ds
eXBoc1JlY29yZGVyQ29yZVRleHQuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGlsaW5nRGF0
YS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBBbGxvY2F0b3JN
ZXRhbC5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cExheW91dE1l
dGFsLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggNmRlOTVhN2EyNjk4ODNkNTJjNmI5NzhmN2JhNWM0ZDFiZDEwZTAwYy4uYzVm
MTc1MjlkZTk5MWNlNjU4MjBiYWFjYzUzNWJjMmViZTNiMTY5NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjIwLDYgKzYyMCw3
IEBACiAJCTFDQUYzNDgxMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUYzNDdFMEE2QzQw
NTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQ0FGMzQ4MjBBNkM0MDUyMDBBQkUwNkUgLyogV2Vi
U2NyaXB0T2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUNBRjM0N0YwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdC5tbSAqLzsg
fTsKIAkJMUNBRjM0ODMwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdFByaXZhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUYzNDgw
MEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3RQcml2YXRlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMUNBRjU2REIyNTMwMUFDODAw
MTdCNDcyIC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FGNTZEODI1MzAxNDU3MDAxN0I0NzIg
LyogRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQ0NEODE1MDIyMzFGODNFMDA2NUZDMkIgLyog
V2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE1MjU1MTQxNkZEMjM0RjAw
M0Q3QURCIC8qIFdlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5t
bSAqLzsgfTsKIAkJMUNDREY1QkUxOTkwMzMyNDAwQkNFQkFEIC8qIFNWR1RvT1RGRm9udENvbnZl
cnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFD
Q0RGNUJDMTk5MDMzMjQwMEJDRUJBRCAvKiBTVkdUb09URkZvbnRDb252ZXJzaW9uLmggKi87IH07
CiAJCTFDRkFFMzIzMEE2RDZBM0YwMDMyNTkzRCAvKiBsaWJvYmpjLmR5bGliIGluIEZyYW1ld29y
a3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNGQUUzMjIwQTZENkEzRjAw
MzI1OTNEIC8qIGxpYm9iamMuZHlsaWIgKi87IH07CkBAIC02NzM1LDYgKzY3MzYsOCBAQAogCQkx
Q0FGMzQ3RTBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNjcmlwdE9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQ0FGMzQ3RjBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViU2NyaXB0T2Jq
ZWN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FGMzQ4MDBBNkM0MDUyMDBB
QkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJTY3JpcHRPYmplY3RQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTFDQUY1NkQ4MjUzMDE0NTcwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlw
aHNSZWNvcmRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0FGNTZERTI1MzAyNDVBMDAxN0I0
NzIgLyogRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNCNUZFODgyMkRFQkM4QjAwOTQ0MEUyIC8qIFdI
TFNMRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xFcnJvci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQ0I2OUIzMjIxREVENDBCMDA2RTg0NkEgLyogV0hMU0xSZXNvbHZhYmxl
VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTFJlc29sdmFibGVUeXBlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFDQjY5QjM0MjFERUQ2M0EwMDZFODQ2QSAvKiBXSExTTEZsb2F0
TGl0ZXJhbFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xGbG9hdExpdGVyYWxUeXBlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzYwNyw2ICsxNzYxMCw4IEBACiAJCQljaGls
ZHJlbiA9ICgKIAkJCQkwRkU1RkJDQTFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3QuY3Bw
ICovLAogCQkJCTBGRTVGQkNCMUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdC5oICovLAor
CQkJCTFDQUY1NkQ4MjUzMDE0NTcwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNv
cmRlci5oICovLAorCQkJCTFDQUY1NkRFMjUzMDI0NUEwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERy
YXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcCAqLywKIAkJCQk1NUMwQTI5NTIzRkUyQ0UwMDBG
MkNCOTMgLyogRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5jcHAgKi8sCiAJCQkJNzJFQTA5Rjky
M0ZDQ0M2QTAwODUwNEE1IC8qIERpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaCAqLywKIAkJCQk3
MkVBMDlGNzIzRkNDQjNEMDA4NTA0QTUgLyogRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oICovLApA
QCAtMzE0MjksNiArMzE0MzQsNyBAQAogCQkJCTdFREFBRkM5MTlBMkNDREMwMDM0REZEMSAvKiBE
aXNrQ2FjaGVNb25pdG9yQ29jb2EuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNzkwRjQyMjUxN0NF
NkUwMDlCQTAzNCAvKiBEaXNwbGF5TGF5ZXJDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkU1RkJEMzFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3QuaCBpbiBIZWFkZXJzICov
LAorCQkJCTFDQUY1NkRCMjUzMDFBQzgwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNS
ZWNvcmRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTVBRDA5NDAyNDA4OTY0MDAwREU0RDJGIC8q
IERpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1QUQwOTNF
MjQwODk2MzUwMERFNEQyRiAvKiBEaXNwbGF5TGlzdEltYWdlQnVmZmVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkU1RkJENTFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3RJdGVtcy5oIGlu
IEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GcmVlVHlw
ZS5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtlCmluZGV4IDdj
MDRkOTNhNWI4NWM3MzI1ODFjOTVhMDY1YmUwNWI2MzY3YzdhZTQuLmYzOGI1NGUxN2M5MzE1NjUx
NTRjYWI5NTNhODFlMGU5NmY1NzQ5YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0ZyZWVUeXBlLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyZWVUeXBl
LmNtYWtlCkBAIC01LDYgKzUsOCBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1BSSVZBVEVfSU5DTFVE
RV9ESVJFQ1RPUklFUwogKQogCiBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJI
YXJmQnV6ei5jcHAKKwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZy
ZWVUeXBlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGFGcmVlVHlwZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250
UGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5jcHAKaW5kZXggMmFk
MzFhYzU3ZDVmMWJkZTc5NDE5YzVmOTE1Njk3YjM3NTQ0YmI0OC4uNWIyMGQ4OTJlZDhiYmNmNjAx
ODE2YTYzNjc2YTAwZjFmYTVjMTdiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5kLmNwcApAQCAtNjEs
NiArNjEsNyBAQCBSZXRhaW5QdHI8Q0dDb2xvclNwYWNlUmVmPiBJbWFnZUJ1ZmZlckNHQmFja2Vu
ZDo6Y29udGV4dENvbG9yU3BhY2UoY29uc3QgR3JhcGhpYwogCiB2b2lkIEltYWdlQnVmZmVyQ0dC
YWNrZW5kOjpzZXR1cENvbnRleHQoKQogeworICAgIC8vIFRoZSBpbml0aWFsIENUTSBtYXRjaGVz
IERpc3BsYXlMaXN0OjpSZWNvcmRlcjo6Y2xpcFRvRHJhd2luZ0NvbW1hbmRzKCkncyBpbml0aWFs
IENUTS4KICAgICBjb250ZXh0KCkuc2NhbGUoRmxvYXRTaXplKDEsIC0xKSk7CiAgICAgY29udGV4
dCgpLnRyYW5zbGF0ZSgwLCAtbV9iYWNrZW5kU2l6ZS5oZWlnaHQoKSk7CiAgICAgY29udGV4dCgp
LmFwcGx5RGV2aWNlU2NhbGVGYWN0b3IobV9yZXNvbHV0aW9uU2NhbGUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udENhc2NhZGVDb3Jl
VGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250
Q2FzY2FkZUNvcmVUZXh0LmNwcAppbmRleCA0YThlNGUwZWExOTQxNDQzNjI1MGE0YmU4YWE0NWNi
NzFkYjIxNmZiLi5mOTdmNzBiOGY3NjQ4MzgwNzA2ZjdkMGJlNzVkNGEwZDk3ZmU4OGZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250Q2Fz
Y2FkZUNvcmVUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b3JldGV4dC9Gb250Q2FzY2FkZUNvcmVUZXh0LmNwcApAQCAtNjksNiArNjksMTQgQEAgc3RhdGlj
IGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcm90YXRlTGVmdFRyYW5zZm9ybSgpCiAKIHZvaWQgZmls
bFZlY3RvcldpdGhIb3Jpem9udGFsR2x5cGhQb3NpdGlvbnMoVmVjdG9yPENHUG9pbnQsIDI1Nj4m
IHBvc2l0aW9ucywgQ0dDb250ZXh0UmVmIGNvbnRleHQsIGNvbnN0IENHU2l6ZSogYWR2YW5jZXMs
IHVuc2lnbmVkIGNvdW50LCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCkKIHsKKyAgICAvLyBUaGUg
aW5wdXQgcG9zaXRpb25zIGFyZSBpbiB0aGUgY29udGV4dCdzIGNvb3JkaW5hdGUgc3lzdGVtLCB3
aXRob3V0IHRoZSB0ZXh0IG1hdHJpeC4KKyAgICAvLyBIb3dldmVyLCB0aGUgcG9zaXRpb25zIHRo
YXQgQ1QvQ0cgYWNjZXB0IGFyZSBpbiB0aGUgdGV4dCBtYXRyaXgncyBjb29yZGluYXRlIHN5c3Rl
bS4KKyAgICAvLyBDR0NvbnRleHRHZXRUZXh0TWF0cml4KCkgZ2l2ZXMgdXMgdGhlIG1hdHJpeCB0
aGF0IG1hcHMgZnJvbSB0ZXh0J3MgY29vcmRpbmF0ZSBzeXN0ZW0gdG8gdGhlIGNvbnRleHQncyAo
bm9uLXRleHQpIGNvb3JkaW5hdGUgc3lzdGVtLgorICAgIC8vIFdlIG5lZWQgdG8gZmlndXJlIG91
dCB3aGF0IHRvIGRlbGl2ZXIgQ1QsIGluc2lkZSB0aGUgdGV4dCdzIGNvb3JkaW5hdGUgc3lzdGVt
LCBzdWNoIHRoYXQgaXQgZW5kcyB1cCBjb2luY2lkZW50IHdpdGggdGhlIGlucHV0IGluIHRoZSBj
b250ZXh0J3MgY29vcmRpbmF0ZSBzeXN0ZW0uCisgICAgLy8KKyAgICAvLyBDVE0gKiB0ZXh0IG1h
dHJpeCAqIHBvc2l0aW9ucyB3ZSBuZWVkIHRvIGRlbGl2ZXIgdG8gQ1QgPSBDVE0gKiBpbnB1dCBw
b3NpdGlvbnMKKyAgICAvLyBTb2x2aW5nIGZvciB0aGUgcG9zaXRpb25zIHdlIG5lZWQgdG8gZGVs
aXZlciB0byBDVCwgd2UgZ2V0CisgICAgLy8gcG9zaXRpb25zIHdlIG5lZWQgdG8gZGVsaXZlciB0
byBDVCA9IGludmVyc2UodGV4dCBtYXRyaXgpICogaW5wdXQgcG9zaXRpb25zCiAgICAgQ0dBZmZp
bmVUcmFuc2Zvcm0gbWF0cml4ID0gQ0dBZmZpbmVUcmFuc2Zvcm1JbnZlcnQoQ0dDb250ZXh0R2V0
VGV4dE1hdHJpeChjb250ZXh0KSk7CiAgICAgcG9zaXRpb25zWzBdID0gQ0dQb2ludEFwcGx5QWZm
aW5lVHJhbnNmb3JtKHBvaW50LCBtYXRyaXgpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkg
PCBjb3VudDsgKytpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdH
bHlwaHNSZWNvcmRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmOGU1NDc5OTVmOTkzNzM0MjAyZGExMjZhYjBm
MTcxMzI5Y2NlM2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaApAQCAt
MCwwICsxLDExNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCisjaW5jbHVk
ZSAiQ29sb3IuaCIKKyNpbmNsdWRlICJHcmFkaWVudC5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29u
dGV4dC5oIgorI2luY2x1ZGUgIlBhdHRlcm4uaCIKKyNpbmNsdWRlICJUZXh0RmxhZ3MuaCIKKwor
I2lmIFVTRShDT1JFX1RFWFQpCisjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NvcmVHcmFwaGljcy5o
PgorI2luY2x1ZGUgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CisjZW5kaWYKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGbG9hdFBvaW50OworY2xhc3MgRm9udDsKK2NsYXNz
IEdseXBoQnVmZmVyOworY2xhc3MgR3JhcGhpY3NDb250ZXh0OworCituYW1lc3BhY2UgRGlzcGxh
eUxpc3QgeworCitjbGFzcyBSZWNvcmRlcjsKKworY2xhc3MgRHJhd0dseXBoc1JlY29yZGVyIHsK
K3B1YmxpYzoKKyAgICBleHBsaWNpdCBEcmF3R2x5cGhzUmVjb3JkZXIoUmVjb3JkZXImKTsKKwor
ICAgIHZvaWQgZHJhd0dseXBocyhjb25zdCBGb250JiwgY29uc3QgR2x5cGhCdWZmZXImLCB1bnNp
Z25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmIGFuY2hvclBv
aW50LCBGb250U21vb3RoaW5nTW9kZSk7CisKKyNpZiBVU0UoQ09SRV9URVhUKQorICAgIHZvaWQg
cmVjb3JkQmVnaW5MYXllcihDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiwgQ0dSZWN0
KTsKKyAgICB2b2lkIHJlY29yZEVuZExheWVyKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRl
UmVmKTsKKyAgICB2b2lkIHJlY29yZERyYXdHbHlwaHMoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dH
U3RhdGVSZWYsIGNvbnN0IENHQWZmaW5lVHJhbnNmb3JtKiwgY29uc3QgQ0dHbHlwaFtdLCBjb25z
dCBDR1BvaW50IHBvc2l0aW9uc1tdLCBzaXplX3QgY291bnQpOworICAgIHZvaWQgcmVjb3JkRHJh
d0ltYWdlKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmLCBDR1JlY3QsIENHSW1hZ2VS
ZWYpOworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgR3JhcGhpY3NDb250ZXh0IGNyZWF0ZUludGVy
bmFsQ29udGV4dCgpOworCisgICAgdm9pZCBwb3B1bGF0ZUludGVybmFsU3RhdGUoY29uc3QgR3Jh
cGhpY3NDb250ZXh0U3RhdGUmKTsKKyAgICB2b2lkIHBvcHVsYXRlSW50ZXJuYWxDb250ZXh0KGNv
bnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJik7CisgICAgdm9pZCBwcmVwYXJlSW50ZXJuYWxDb250
ZXh0KGNvbnN0IEZvbnQmLCBGb250U21vb3RoaW5nTW9kZSk7CisgICAgdm9pZCBjb25jbHVkZUlu
dGVybmFsQ29udGV4dCgpOworCisgICAgdm9pZCB1cGRhdGVGaWxsQ29sb3IoY29uc3QgQ29sb3Im
LCBHcmFkaWVudCogPSBudWxscHRyLCBQYXR0ZXJuKiA9IG51bGxwdHIpOworICAgIHZvaWQgdXBk
YXRlU3Ryb2tlQ29sb3IoY29uc3QgQ29sb3ImLCBHcmFkaWVudCogPSBudWxscHRyLCBQYXR0ZXJu
KiA9IG51bGxwdHIpOworICAgIHZvaWQgdXBkYXRlQ1RNKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYp
OworICAgIGVudW0gY2xhc3MgU2hhZG93c0lnbm9yZVRyYW5zZm9ybXMgeworICAgICAgICBVbnNw
ZWNpZmllZCwKKyAgICAgICAgWWVzLAorICAgICAgICBObworICAgIH07CisgICAgdm9pZCB1cGRh
dGVTaGFkb3coY29uc3QgRmxvYXRTaXplJiBzaGFkb3dPZmZzZXQsIGZsb2F0IHNoYWRvd0JsdXIs
IGNvbnN0IENvbG9yJiBzaGFkb3dDb2xvciwgU2hhZG93c0lnbm9yZVRyYW5zZm9ybXMpOworCisj
aWYgVVNFKENPUkVfVEVYVCkKKyAgICB2b2lkIHVwZGF0ZVNoYWRvdyhDR1N0eWxlUmVmKTsKKyNl
bmRpZgorCisgICAgUmVjb3JkZXImIG1fb3duZXI7CisgICAgR3JhcGhpY3NDb250ZXh0IG1faW50
ZXJuYWxDb250ZXh0OworICAgIGNvbnN0IEZvbnQqIG1fb3JpZ2luYWxGb250IHsgbnVsbHB0ciB9
OworICAgIEZvbnRTbW9vdGhpbmdNb2RlIG1fc21vb3RoaW5nTW9kZSB7IEZvbnRTbW9vdGhpbmdN
b2RlOjpBdXRvU21vb3RoaW5nIH07CisgICAgQWZmaW5lVHJhbnNmb3JtIG1fb3JpZ2luYWxUZXh0
TWF0cml4OworCisgICAgc3RydWN0IFN0YXRlIHsKKyAgICAgICAgc3RydWN0IFN0eWxlIHsKKyAg
ICAgICAgICAgIENvbG9yIGNvbG9yOworICAgICAgICAgICAgUmVmUHRyPEdyYWRpZW50PiBncmFk
aWVudDsKKyAgICAgICAgICAgIFJlZlB0cjxQYXR0ZXJuPiBwYXR0ZXJuOworICAgICAgICB9Owor
ICAgICAgICBTdHlsZSBmaWxsU3R5bGU7CisgICAgICAgIFN0eWxlIHN0cm9rZVN0eWxlOworCisg
ICAgICAgIEFmZmluZVRyYW5zZm9ybSBjdG07CisKKyAgICAgICAgc3RydWN0IFNoYWRvd1N0YXRl
IHsKKyAgICAgICAgICAgIEZsb2F0U2l6ZSBvZmZzZXQ7CisgICAgICAgICAgICBmbG9hdCBibHVy
IHsgMCB9OworICAgICAgICAgICAgQ29sb3IgY29sb3I7CisgICAgICAgICAgICBib29sIGlnbm9y
ZVRyYW5zZm9ybXMgeyBmYWxzZSB9OworICAgICAgICB9OworICAgICAgICBTaGFkb3dTdGF0ZSBz
aGFkb3c7CisgICAgfTsKKyAgICBTdGF0ZSBtX29yaWdpbmFsU3RhdGU7CisgICAgU3RhdGUgbV9j
dXJyZW50U3RhdGU7Cit9OworCit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRl
ckNvcmVUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zY2M3OWYyNmVjODdhZDY3OGJkMjliZjRhNjI4ZTY4OTkwOThkZTY4Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwCkBAIC0wLDAgKzEsMzcxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmgiCisKKyNp
bmNsdWRlICJCaXRtYXBJbWFnZS5oIgorI2luY2x1ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSAiRGlz
cGxheUxpc3RJdGVtcy5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0UmVjb3JkZXIuaCIKKyNpbmNs
dWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiRm9udC5oIgorI2luY2x1ZGUgIkZvbnRDYXNj
YWRlLmgiCisjaW5jbHVkZSAiR2x5cGhCdWZmZXIuaCIKKworI2luY2x1ZGUgPENvcmVUZXh0L0Nv
cmVUZXh0Lmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCisjaWYgUExBVEZPUk0oV0lOKQor
I2luY2x1ZGUgPHBhbC9zcGkvd2luL0NvcmVUZXh0U1BJV2luLmg+CisjZW5kaWYKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCituYW1lc3BhY2UgRGlzcGxheUxpc3QgeworCitzdGF0aWMgQ0dDb250
ZXh0RGVsZWdhdGVSZWYgYmVnaW5MYXllcihDR0NvbnRleHREZWxlZ2F0ZVJlZiBkZWxlZ2F0ZSwg
Q0dSZW5kZXJpbmdTdGF0ZVJlZiByc3RhdGUsIENHR1N0YXRlUmVmIGdzdGF0ZSwgQ0dSZWN0IHJl
Y3QsIENGRGljdGlvbmFyeVJlZiwgQ0dDb250ZXh0RGVsZWdhdGVSZWYpCit7CisgICAgRHJhd0ds
eXBoc1JlY29yZGVyJiByZWNvcmRlciA9ICpzdGF0aWNfY2FzdDxEcmF3R2x5cGhzUmVjb3JkZXIq
PihDR0NvbnRleHREZWxlZ2F0ZUdldEluZm8oZGVsZWdhdGUpKTsKKyAgICByZWNvcmRlci5yZWNv
cmRCZWdpbkxheWVyKHJzdGF0ZSwgZ3N0YXRlLCByZWN0KTsKKyAgICByZXR1cm4gZGVsZWdhdGU7
Cit9CisKK3N0YXRpYyBDR0NvbnRleHREZWxlZ2F0ZVJlZiBlbmRMYXllcihDR0NvbnRleHREZWxl
Z2F0ZVJlZiBkZWxlZ2F0ZSwgQ0dSZW5kZXJpbmdTdGF0ZVJlZiByc3RhdGUsIENHR1N0YXRlUmVm
IGdzdGF0ZSkKK3sKKyAgICBEcmF3R2x5cGhzUmVjb3JkZXImIHJlY29yZGVyID0gKnN0YXRpY19j
YXN0PERyYXdHbHlwaHNSZWNvcmRlcio+KENHQ29udGV4dERlbGVnYXRlR2V0SW5mbyhkZWxlZ2F0
ZSkpOworICAgIHJlY29yZGVyLnJlY29yZEVuZExheWVyKHJzdGF0ZSwgZ3N0YXRlKTsKKyAgICBy
ZXR1cm4gZGVsZWdhdGU7Cit9CisKK3N0YXRpYyBDR0Vycm9yIGRyYXdHbHlwaHMoQ0dDb250ZXh0
RGVsZWdhdGVSZWYgZGVsZWdhdGUsIENHUmVuZGVyaW5nU3RhdGVSZWYgcnN0YXRlLCBDR0dTdGF0
ZVJlZiBnc3RhdGUsIGNvbnN0IENHQWZmaW5lVHJhbnNmb3JtKiB0bSwgY29uc3QgQ0dHbHlwaCBn
bHlwaHNbXSwgY29uc3QgQ0dQb2ludCBwb3NpdGlvbnNbXSwgc2l6ZV90IGNvdW50KQoreworICAg
IGlmIChDR0dTdGF0ZUdldEFscGhhKGdzdGF0ZSkgPiAwKSB7CisgICAgICAgIERyYXdHbHlwaHNS
ZWNvcmRlciYgcmVjb3JkZXIgPSAqc3RhdGljX2Nhc3Q8RHJhd0dseXBoc1JlY29yZGVyKj4oQ0dD
b250ZXh0RGVsZWdhdGVHZXRJbmZvKGRlbGVnYXRlKSk7CisgICAgICAgIHJlY29yZGVyLnJlY29y
ZERyYXdHbHlwaHMocnN0YXRlLCBnc3RhdGUsIHRtLCBnbHlwaHMsIHBvc2l0aW9ucywgY291bnQp
OworICAgIH0KKyAgICByZXR1cm4ga0NHRXJyb3JTdWNjZXNzOworfQorCitzdGF0aWMgQ0dFcnJv
ciBkcmF3SW1hZ2UoQ0dDb250ZXh0RGVsZWdhdGVSZWYgZGVsZWdhdGUsIENHUmVuZGVyaW5nU3Rh
dGVSZWYgcnN0YXRlLCBDR0dTdGF0ZVJlZiBnc3RhdGUsIENHUmVjdCByZWN0LCBDR0ltYWdlUmVm
IGltYWdlKQoreworICAgIERyYXdHbHlwaHNSZWNvcmRlciYgcmVjb3JkZXIgPSAqc3RhdGljX2Nh
c3Q8RHJhd0dseXBoc1JlY29yZGVyKj4oQ0dDb250ZXh0RGVsZWdhdGVHZXRJbmZvKGRlbGVnYXRl
KSk7CisgICAgcmVjb3JkZXIucmVjb3JkRHJhd0ltYWdlKHJzdGF0ZSwgZ3N0YXRlLCByZWN0LCBp
bWFnZSk7CisgICAgcmV0dXJuIGtDR0Vycm9yU3VjY2VzczsKK30KKworR3JhcGhpY3NDb250ZXh0
IERyYXdHbHlwaHNSZWNvcmRlcjo6Y3JlYXRlSW50ZXJuYWxDb250ZXh0KCkKK3sKKyAgICBhdXRv
IGNvbnRleHREZWxlZ2F0ZSA9IGFkb3B0Q0YoQ0dDb250ZXh0RGVsZWdhdGVDcmVhdGUodGhpcykp
OworICAgIENHQ29udGV4dERlbGVnYXRlU2V0Q2FsbGJhY2soY29udGV4dERlbGVnYXRlLmdldCgp
LCBkZUJlZ2luTGF5ZXIsIHJlaW50ZXJwcmV0X2Nhc3Q8Q0dDb250ZXh0RGVsZWdhdGVDYWxsYmFj
az4oJmJlZ2luTGF5ZXIpKTsKKyAgICBDR0NvbnRleHREZWxlZ2F0ZVNldENhbGxiYWNrKGNvbnRl
eHREZWxlZ2F0ZS5nZXQoKSwgZGVFbmRMYXllciwgcmVpbnRlcnByZXRfY2FzdDxDR0NvbnRleHRE
ZWxlZ2F0ZUNhbGxiYWNrPigmZW5kTGF5ZXIpKTsKKyAgICBDR0NvbnRleHREZWxlZ2F0ZVNldENh
bGxiYWNrKGNvbnRleHREZWxlZ2F0ZS5nZXQoKSwgZGVEcmF3R2x5cGhzLCByZWludGVycHJldF9j
YXN0PENHQ29udGV4dERlbGVnYXRlQ2FsbGJhY2s+KCZXZWJDb3JlOjpEaXNwbGF5TGlzdDo6ZHJh
d0dseXBocykpOworICAgIENHQ29udGV4dERlbGVnYXRlU2V0Q2FsbGJhY2soY29udGV4dERlbGVn
YXRlLmdldCgpLCBkZURyYXdJbWFnZSwgcmVpbnRlcnByZXRfY2FzdDxDR0NvbnRleHREZWxlZ2F0
ZUNhbGxiYWNrPigmZHJhd0ltYWdlKSk7CisgICAgYXV0byBjb250ZXh0ID0gYWRvcHRDRihDR0Nv
bnRleHRDcmVhdGVXaXRoRGVsZWdhdGUoY29udGV4dERlbGVnYXRlLmdldCgpLCBrQ0dDb250ZXh0
VHlwZVVua25vd24sIG51bGxwdHIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gR3JhcGhpY3NDb250
ZXh0KGNvbnRleHQuZ2V0KCkpOworfQorCitEcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdHbHlwaHNS
ZWNvcmRlcihSZWNvcmRlciYgb3duZXIpCisgICAgOiBtX293bmVyKG93bmVyKQorICAgICwgbV9p
bnRlcm5hbENvbnRleHQoY3JlYXRlSW50ZXJuYWxDb250ZXh0KCkpCit7Cit9CisKK3ZvaWQgRHJh
d0dseXBoc1JlY29yZGVyOjpwb3B1bGF0ZUludGVybmFsU3RhdGUoY29uc3QgR3JhcGhpY3NDb250
ZXh0U3RhdGUmIGNvbnRleHRTdGF0ZSkKK3sKKyAgICBtX29yaWdpbmFsU3RhdGUuZmlsbFN0eWxl
LmNvbG9yID0gY29udGV4dFN0YXRlLmZpbGxDb2xvcjsKKyAgICBtX29yaWdpbmFsU3RhdGUuZmls
bFN0eWxlLmdyYWRpZW50ID0gY29udGV4dFN0YXRlLmZpbGxHcmFkaWVudDsKKyAgICBtX29yaWdp
bmFsU3RhdGUuZmlsbFN0eWxlLnBhdHRlcm4gPSBjb250ZXh0U3RhdGUuZmlsbFBhdHRlcm47CisK
KyAgICBtX29yaWdpbmFsU3RhdGUuc3Ryb2tlU3R5bGUuY29sb3IgPSBjb250ZXh0U3RhdGUuc3Ry
b2tlQ29sb3I7CisgICAgbV9vcmlnaW5hbFN0YXRlLnN0cm9rZVN0eWxlLmdyYWRpZW50ID0gY29u
dGV4dFN0YXRlLnN0cm9rZUdyYWRpZW50OworICAgIG1fb3JpZ2luYWxTdGF0ZS5zdHJva2VTdHls
ZS5wYXR0ZXJuID0gY29udGV4dFN0YXRlLnN0cm9rZVBhdHRlcm47CisKKyAgICBtX29yaWdpbmFs
U3RhdGUuY3RtID0gbV9vd25lci5jdXJyZW50U3RhdGUoKS5jdG07IC8vIEZJWE1FOiBEZWFsIHdp
dGggZGV2aWNlIHNjYWxlLgorCisgICAgbV9vcmlnaW5hbFN0YXRlLnNoYWRvdy5vZmZzZXQgPSBj
b250ZXh0U3RhdGUuc2hhZG93T2Zmc2V0OworICAgIG1fb3JpZ2luYWxTdGF0ZS5zaGFkb3cuYmx1
ciA9IGNvbnRleHRTdGF0ZS5zaGFkb3dCbHVyOworICAgIG1fb3JpZ2luYWxTdGF0ZS5zaGFkb3cu
Y29sb3IgPSBjb250ZXh0U3RhdGUuc2hhZG93Q29sb3I7CisgICAgbV9vcmlnaW5hbFN0YXRlLnNo
YWRvdy5pZ25vcmVUcmFuc2Zvcm1zID0gY29udGV4dFN0YXRlLnNoYWRvd3NJZ25vcmVUcmFuc2Zv
cm1zOworCisgICAgbV9jdXJyZW50U3RhdGUgPSBtX29yaWdpbmFsU3RhdGU7Cit9CisKK3ZvaWQg
RHJhd0dseXBoc1JlY29yZGVyOjpwb3B1bGF0ZUludGVybmFsQ29udGV4dChjb25zdCBHcmFwaGlj
c0NvbnRleHRTdGF0ZSYgY29udGV4dFN0YXRlKQoreworICAgIGlmIChtX29yaWdpbmFsU3RhdGUu
ZmlsbFN0eWxlLmNvbG9yLmlzVmFsaWQoKSkKKyAgICAgICAgbV9pbnRlcm5hbENvbnRleHQuc2V0
RmlsbENvbG9yKG1fb3JpZ2luYWxTdGF0ZS5maWxsU3R5bGUuY29sb3IpOworICAgIGVsc2UgaWYg
KG1fb3JpZ2luYWxTdGF0ZS5maWxsU3R5bGUuZ3JhZGllbnQpCisgICAgICAgIG1faW50ZXJuYWxD
b250ZXh0LnNldEZpbGxHcmFkaWVudCgqbV9vcmlnaW5hbFN0YXRlLmZpbGxTdHlsZS5ncmFkaWVu
dCk7CisgICAgZWxzZSB7CisgICAgICAgIEFTU0VSVChtX29yaWdpbmFsU3RhdGUuZmlsbFN0eWxl
LnBhdHRlcm4pOworICAgICAgICBpZiAobV9vcmlnaW5hbFN0YXRlLmZpbGxTdHlsZS5wYXR0ZXJu
KQorICAgICAgICAgICAgbV9pbnRlcm5hbENvbnRleHQuc2V0RmlsbFBhdHRlcm4oKm1fb3JpZ2lu
YWxTdGF0ZS5maWxsU3R5bGUucGF0dGVybik7CisgICAgfQorCisgICAgaWYgKG1fb3JpZ2luYWxT
dGF0ZS5zdHJva2VTdHlsZS5jb2xvci5pc1ZhbGlkKCkpCisgICAgICAgIG1faW50ZXJuYWxDb250
ZXh0LnNldFN0cm9rZUNvbG9yKG1fb3JpZ2luYWxTdGF0ZS5zdHJva2VTdHlsZS5jb2xvcik7Cisg
ICAgZWxzZSBpZiAobV9vcmlnaW5hbFN0YXRlLnN0cm9rZVN0eWxlLmdyYWRpZW50KQorICAgICAg
ICBtX2ludGVybmFsQ29udGV4dC5zZXRTdHJva2VHcmFkaWVudCgqbV9vcmlnaW5hbFN0YXRlLnN0
cm9rZVN0eWxlLmdyYWRpZW50KTsKKyAgICBlbHNlIHsKKyAgICAgICAgQVNTRVJUKG1fb3JpZ2lu
YWxTdGF0ZS5zdHJva2VTdHlsZS5wYXR0ZXJuKTsKKyAgICAgICAgaWYgKG1fb3JpZ2luYWxTdGF0
ZS5zdHJva2VTdHlsZS5wYXR0ZXJuKQorICAgICAgICAgICAgbV9pbnRlcm5hbENvbnRleHQuc2V0
U3Ryb2tlUGF0dGVybigqbV9vcmlnaW5hbFN0YXRlLnN0cm9rZVN0eWxlLnBhdHRlcm4pOworICAg
IH0KKworICAgIG1faW50ZXJuYWxDb250ZXh0LnNldENUTShtX29yaWdpbmFsU3RhdGUuY3RtKTsK
KworICAgIG1faW50ZXJuYWxDb250ZXh0LnNldFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zKG1fb3Jp
Z2luYWxTdGF0ZS5zaGFkb3cuaWdub3JlVHJhbnNmb3Jtcyk7CisgICAgaWYgKGNvbnRleHRTdGF0
ZS5zaGFkb3dzVXNlTGVnYWN5UmFkaXVzKQorICAgICAgICBtX2ludGVybmFsQ29udGV4dC5zZXRM
ZWdhY3lTaGFkb3cobV9vcmlnaW5hbFN0YXRlLnNoYWRvdy5vZmZzZXQsIG1fb3JpZ2luYWxTdGF0
ZS5zaGFkb3cuYmx1ciwgbV9vcmlnaW5hbFN0YXRlLnNoYWRvdy5jb2xvcik7CisgICAgZWxzZQor
ICAgICAgICBtX2ludGVybmFsQ29udGV4dC5zZXRTaGFkb3cobV9vcmlnaW5hbFN0YXRlLnNoYWRv
dy5vZmZzZXQsIG1fb3JpZ2luYWxTdGF0ZS5zaGFkb3cuYmx1ciwgbV9vcmlnaW5hbFN0YXRlLnNo
YWRvdy5jb2xvcik7CisKKyAgICBtX2ludGVybmFsQ29udGV4dC5zZXRUZXh0RHJhd2luZ01vZGUo
Y29udGV4dFN0YXRlLnRleHREcmF3aW5nTW9kZSk7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29y
ZGVyOjpwcmVwYXJlSW50ZXJuYWxDb250ZXh0KGNvbnN0IEZvbnQmIGZvbnQsIEZvbnRTbW9vdGhp
bmdNb2RlIHNtb290aGluZ01vZGUpCit7CisgICAgQVNTRVJUKENHQWZmaW5lVHJhbnNmb3JtSXNJ
ZGVudGl0eShDVEZvbnRHZXRNYXRyaXgoZm9udC5wbGF0Zm9ybURhdGEoKS5jdEZvbnQoKSkpKTsK
KworICAgIG1fb3JpZ2luYWxGb250ID0gJmZvbnQ7CisgICAgbV9zbW9vdGhpbmdNb2RlID0gc21v
b3RoaW5nTW9kZTsKKworICAgIG1fb3JpZ2luYWxUZXh0TWF0cml4ID0gY29tcHV0ZU92ZXJhbGxU
ZXh0TWF0cml4KGZvbnQpOworICAgIGlmIChmb250LnBsYXRmb3JtRGF0YSgpLm9yaWVudGF0aW9u
KCkgPT0gRm9udE9yaWVudGF0aW9uOjpWZXJ0aWNhbCkKKyAgICAgICAgbV9vcmlnaW5hbFRleHRN
YXRyaXggPSBjb21wdXRlVmVydGljYWxUZXh0TWF0cml4KGZvbnQsIG1fb3JpZ2luYWxUZXh0TWF0
cml4KTsKKworICAgIGF1dG8mIGNvbnRleHRTdGF0ZSA9IG1fb3duZXIuY3VycmVudFN0YXRlKCku
c3RhdGVDaGFuZ2UubV9zdGF0ZTsKKyAgICBwb3B1bGF0ZUludGVybmFsU3RhdGUoY29udGV4dFN0
YXRlKTsKKyAgICBwb3B1bGF0ZUludGVybmFsQ29udGV4dChjb250ZXh0U3RhdGUpOworfQorCit2
b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6Y29uY2x1ZGVJbnRlcm5hbENvbnRleHQoKQoreworICAg
IHVwZGF0ZUNUTShtX29yaWdpbmFsU3RhdGUuY3RtKTsKKyAgICB1cGRhdGVGaWxsQ29sb3IobV9v
cmlnaW5hbFN0YXRlLmZpbGxTdHlsZS5jb2xvciwgbV9vcmlnaW5hbFN0YXRlLmZpbGxTdHlsZS5n
cmFkaWVudC5nZXQoKSwgbV9vcmlnaW5hbFN0YXRlLmZpbGxTdHlsZS5wYXR0ZXJuLmdldCgpKTsK
KyAgICB1cGRhdGVTdHJva2VDb2xvcihtX29yaWdpbmFsU3RhdGUuc3Ryb2tlU3R5bGUuY29sb3Is
IG1fb3JpZ2luYWxTdGF0ZS5zdHJva2VTdHlsZS5ncmFkaWVudC5nZXQoKSwgbV9vcmlnaW5hbFN0
YXRlLnN0cm9rZVN0eWxlLnBhdHRlcm4uZ2V0KCkpOworICAgIHVwZGF0ZVNoYWRvdyhtX29yaWdp
bmFsU3RhdGUuc2hhZG93Lm9mZnNldCwgbV9vcmlnaW5hbFN0YXRlLnNoYWRvdy5ibHVyLCBtX29y
aWdpbmFsU3RhdGUuc2hhZG93LmNvbG9yLCBtX29yaWdpbmFsU3RhdGUuc2hhZG93Lmlnbm9yZVRy
YW5zZm9ybXMgPyBTaGFkb3dzSWdub3JlVHJhbnNmb3Jtczo6WWVzIDogU2hhZG93c0lnbm9yZVRy
YW5zZm9ybXM6Ok5vKTsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnVwZGF0ZUZpbGxD
b2xvcihjb25zdCBDb2xvciYgbmV3Q29sb3IsIEdyYWRpZW50KiBuZXdHcmFkaWVudCwgUGF0dGVy
biogbmV3UGF0dGVybikKK3sKKyAgICAvLyBUaGlzIGNoZWNrIGxvb2tzIHdyb25nIGJ1dCBpdCBh
Y3R1YWxseSBpc24ndCwgZm9yIG91ciBsaW1pdGVkIHVzZS4KKyAgICAvLyBDVCB3aWxsIG9ubHkg
ZXZlciBzZXQgdGhpcyB0byBhIHNvbGlkIGNvbG9yLCB3aGljaCB0aGlzIGlzIHRoZSBjb3JyZWN0
IGNoZWNrIGZvci4KKyAgICAvLyBJbiBjb25jbHVkZUludGVybmFsQ29udGV4dCgpIHdlIHNldCBp
dCBiYWNrIHRvIHdoYXQgaXQgd2FzIG9yaWdpbmFsbHksIHdoaWNoIHRoaXMgY2hlY2sgd29ya3Mg
Y29ycmVjdGx5IGZvciB0b28uCisgICAgaWYgKG5ld0NvbG9yID09IG1fY3VycmVudFN0YXRlLmZp
bGxTdHlsZS5jb2xvcikKKyAgICAgICAgcmV0dXJuOworCisgICAgR3JhcGhpY3NDb250ZXh0U3Rh
dGUgbmV3U3RhdGU7CisgICAgbmV3U3RhdGUuZmlsbENvbG9yID0gbmV3Q29sb3I7CisgICAgaWYg
KG5ld0dyYWRpZW50KQorICAgICAgICBuZXdTdGF0ZS5maWxsR3JhZGllbnQgPSBuZXdHcmFkaWVu
dDsKKyAgICBpZiAobmV3UGF0dGVybikKKyAgICAgICAgbmV3U3RhdGUuZmlsbFBhdHRlcm4gPSBu
ZXdQYXR0ZXJuOworICAgIG1fb3duZXIudXBkYXRlU3RhdGUobmV3U3RhdGUsIHsgR3JhcGhpY3ND
b250ZXh0U3RhdGU6OkZpbGxDb2xvckNoYW5nZSB9KTsKKyAgICBtX2N1cnJlbnRTdGF0ZS5maWxs
U3R5bGUuY29sb3IgPSBuZXdDb2xvcjsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnVw
ZGF0ZVN0cm9rZUNvbG9yKGNvbnN0IENvbG9yJiBuZXdDb2xvciwgR3JhZGllbnQqIG5ld0dyYWRp
ZW50LCBQYXR0ZXJuKiBuZXdQYXR0ZXJuKQoreworICAgIC8vIFRoaXMgY2hlY2sgbG9va3Mgd3Jv
bmcgYnV0IGl0IGFjdHVhbGx5IGlzbid0LCBmb3Igb3VyIGxpbWl0ZWQgdXNlLgorICAgIC8vIENU
IHdpbGwgb25seSBldmVyIHNldCB0aGlzIHRvIGEgc29saWQgY29sb3IsIHdoaWNoIHRoaXMgaXMg
dGhlIGNvcnJlY3QgY2hlY2sgZm9yLgorICAgIC8vIEluIGNvbmNsdWRlSW50ZXJuYWxDb250ZXh0
KCkgd2Ugc2V0IGl0IGJhY2sgdG8gd2hhdCBpdCB3YXMgb3JpZ2luYWxseSwgd2hpY2ggdGhpcyBj
aGVjayB3b3JrcyBjb3JyZWN0bHkgZm9yIHRvby4KKyAgICBpZiAobmV3Q29sb3IgPT0gbV9jdXJy
ZW50U3RhdGUuc3Ryb2tlU3R5bGUuY29sb3IpCisgICAgICAgIHJldHVybjsKKworICAgIEdyYXBo
aWNzQ29udGV4dFN0YXRlIG5ld1N0YXRlOworICAgIG5ld1N0YXRlLnN0cm9rZUNvbG9yID0gbmV3
Q29sb3I7CisgICAgaWYgKG5ld0dyYWRpZW50KQorICAgICAgICBuZXdTdGF0ZS5zdHJva2VHcmFk
aWVudCA9IG5ld0dyYWRpZW50OworICAgIGlmIChuZXdQYXR0ZXJuKQorICAgICAgICBuZXdTdGF0
ZS5zdHJva2VQYXR0ZXJuID0gbmV3UGF0dGVybjsKKyAgICBtX293bmVyLnVwZGF0ZVN0YXRlKG5l
d1N0YXRlLCB7IEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VDb2xvckNoYW5nZSB9KTsKKyAg
ICBtX2N1cnJlbnRTdGF0ZS5zdHJva2VTdHlsZS5jb2xvciA9IG5ld0NvbG9yOworfQorCit2b2lk
IERyYXdHbHlwaHNSZWNvcmRlcjo6dXBkYXRlQ1RNKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgY3Rt
KQoreworICAgIGlmIChjdG0gPT0gbV9jdXJyZW50U3RhdGUuY3RtKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX293bmVyLnNldENUTShjdG0pOworICAgIG1fY3VycmVudFN0YXRlLmN0bSA9IGN0
bTsKK30KKworc3RhdGljIGJvb2wgc2hhZG93SXNDbGVhcmVkKGNvbnN0IEZsb2F0U2l6ZSYgc2hh
ZG93T2Zmc2V0LCBmbG9hdCBzaGFkb3dCbHVyKQoreworICAgIHJldHVybiBzaGFkb3dPZmZzZXQg
PT0gRmxvYXRTaXplKCkgJiYgIXNoYWRvd0JsdXI7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29y
ZGVyOjp1cGRhdGVTaGFkb3coY29uc3QgRmxvYXRTaXplJiBzaGFkb3dPZmZzZXQsIGZsb2F0IHNo
YWRvd0JsdXIsIGNvbnN0IENvbG9yJiBzaGFkb3dDb2xvciwgU2hhZG93c0lnbm9yZVRyYW5zZm9y
bXMgc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMpCit7CisgICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBj
b25zaWRlciBzaGFkb3dzSWdub3JlVHJhbnNmb3JtcyBpZiBub2JvZHkgaGFzIGFueSBzaGFkb3dz
LgorICAgIGlmIChzaGFkb3dJc0NsZWFyZWQoc2hhZG93T2Zmc2V0LCBzaGFkb3dCbHVyKSAmJiBz
aGFkb3dJc0NsZWFyZWQobV9jdXJyZW50U3RhdGUuc2hhZG93Lm9mZnNldCwgbV9jdXJyZW50U3Rh
dGUuc2hhZG93LmJsdXIpKQorICAgICAgICByZXR1cm47CisKKyAgICBHcmFwaGljc0NvbnRleHRT
dGF0ZSBuZXdTdGF0ZTsKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFn
cyBzdGF0ZUNoYW5nZUZsYWdzOworCisgICAgaWYgKHNoYWRvd09mZnNldCAhPSBtX2N1cnJlbnRT
dGF0ZS5zaGFkb3cub2Zmc2V0IHx8IHNoYWRvd0JsdXIgIT0gbV9jdXJyZW50U3RhdGUuc2hhZG93
LmJsdXIgfHwgc2hhZG93Q29sb3IgIT0gbV9jdXJyZW50U3RhdGUuc2hhZG93LmNvbG9yKSB7Cisg
ICAgICAgIG5ld1N0YXRlLnNoYWRvd09mZnNldCA9IHNoYWRvd09mZnNldDsKKyAgICAgICAgbmV3
U3RhdGUuc2hhZG93Qmx1ciA9IHNoYWRvd0JsdXI7CisgICAgICAgIG5ld1N0YXRlLnNoYWRvd0Nv
bG9yID0gc2hhZG93Q29sb3I7CisgICAgICAgIHN0YXRlQ2hhbmdlRmxhZ3MuYWRkKEdyYXBoaWNz
Q29udGV4dFN0YXRlOjpTaGFkb3dDaGFuZ2UpOworICAgIH0KKyAgICBpZiAoc2hhZG93c0lnbm9y
ZVRyYW5zZm9ybXMgIT0gU2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6OlVuc3BlY2lmaWVkICYmIChz
aGFkb3dzSWdub3JlVHJhbnNmb3JtcyA9PSBTaGFkb3dzSWdub3JlVHJhbnNmb3Jtczo6WWVzKSAh
PSBtX2N1cnJlbnRTdGF0ZS5zaGFkb3cuaWdub3JlVHJhbnNmb3JtcykgeworICAgICAgICBuZXdT
dGF0ZS5zaGFkb3dzSWdub3JlVHJhbnNmb3JtcyA9IChzaGFkb3dzSWdub3JlVHJhbnNmb3JtcyA9
PSBTaGFkb3dzSWdub3JlVHJhbnNmb3Jtczo6WWVzKTsKKyAgICAgICAgc3RhdGVDaGFuZ2VGbGFn
cy5hZGQoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zQ2hhbmdl
KTsKKyAgICB9CisgICAgaWYgKHN0YXRlQ2hhbmdlRmxhZ3MuaXNFbXB0eSgpKQorICAgICAgICBy
ZXR1cm47CisgICAgbV9vd25lci51cGRhdGVTdGF0ZShuZXdTdGF0ZSwgc3RhdGVDaGFuZ2VGbGFn
cyk7CisKKyAgICBtX2N1cnJlbnRTdGF0ZS5zaGFkb3cub2Zmc2V0ID0gc2hhZG93T2Zmc2V0Owor
ICAgIG1fY3VycmVudFN0YXRlLnNoYWRvdy5ibHVyID0gc2hhZG93Qmx1cjsKKyAgICBtX2N1cnJl
bnRTdGF0ZS5zaGFkb3cuY29sb3IgPSBzaGFkb3dDb2xvcjsKKyAgICBtX2N1cnJlbnRTdGF0ZS5z
aGFkb3cuaWdub3JlVHJhbnNmb3JtcyA9IChzaGFkb3dzSWdub3JlVHJhbnNmb3JtcyA9PSBTaGFk
b3dzSWdub3JlVHJhbnNmb3Jtczo6WWVzKTsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6
OnVwZGF0ZVNoYWRvdyhDR1N0eWxlUmVmIHN0eWxlKQoreworICAgIGlmIChDR1N0eWxlR2V0VHlw
ZShzdHlsZSkgIT0ga0NHU3R5bGVTaGFkb3cpIHsKKyAgICAgICAgLy8gRklYTUU6IFN1cHBvcnQg
bW9yZSBraW5kcyBvZiBDR1N0eWxlcy4KKyAgICAgICAgdXBkYXRlU2hhZG93KHswLCAwfSwgMCwg
Q29sb3IoKSwgU2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6OlVuc3BlY2lmaWVkKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGNvbnN0IGF1dG8mIHNoYWRvd1N0eWxlID0gKnN0YXRpY19j
YXN0PGNvbnN0IENHU2hhZG93U3R5bGUqPihDR1N0eWxlR2V0RGF0YShzdHlsZSkpOworICAgIGF1
dG8gcmFkID0gZGVnMnJhZChzaGFkb3dTdHlsZS5hemltdXRoIC0gMTgwKTsKKyAgICBhdXRvIHNo
YWRvd09mZnNldCA9IEZsb2F0U2l6ZShzdGQ6OmNvcyhyYWQpLCBzdGQ6OnNpbihyYWQpKSAqIHNo
YWRvd1N0eWxlLmhlaWdodDsKKyAgICB1cGRhdGVTaGFkb3coc2hhZG93T2Zmc2V0LCBzaGFkb3dT
dHlsZS5yYWRpdXMsIENHU3R5bGVHZXRDb2xvcihzdHlsZSksIFNoYWRvd3NJZ25vcmVUcmFuc2Zv
cm1zOjpZZXMpOworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6cmVjb3JkQmVnaW5MYXll
cihDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiBnc3RhdGUsIENHUmVjdCkKK3sKKyAg
ICB1cGRhdGVDVE0oKkNHR1N0YXRlR2V0Q1RNKGdzdGF0ZSkpOworICAgIGF1dG8gYWxwaGEgPSBD
R0dTdGF0ZUdldEFscGhhKGdzdGF0ZSk7CisgICAgbV9vd25lci5iZWdpblRyYW5zcGFyZW5jeUxh
eWVyKGFscGhhKTsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZEVuZExheWVy
KENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmIGdzdGF0ZSkKK3sKKyAgICB1cGRhdGVD
VE0oKkNHR1N0YXRlR2V0Q1RNKGdzdGF0ZSkpOworICAgIG1fb3duZXIuZW5kVHJhbnNwYXJlbmN5
TGF5ZXIoKTsKK30KKworc3RhdGljIFZlY3RvcjxDR1NpemU+IGNvbXB1dGVBZHZhbmNlc0Zyb21Q
b3NpdGlvbnMoY29uc3QgQ0dQb2ludCBwb3NpdGlvbnNbXSwgc2l6ZV90IGNvdW50LCBjb25zdCBD
R0FmZmluZVRyYW5zZm9ybSYgdGV4dE1hdHJpeCkKK3sKKyAgICBWZWN0b3I8Q0dTaXplPiByZXN1
bHQ7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudCAtIDE7ICsraSkgeworICAgICAg
ICBhdXRvIG5leHRQb3NpdGlvbiA9IHBvc2l0aW9uc1tpICsgMV07CisgICAgICAgIGF1dG8gY3Vy
cmVudFBvc2l0aW9uID0gcG9zaXRpb25zW2ldOworICAgICAgICBhdXRvIGFkdmFuY2UgPSBDR1Np
emVNYWtlKG5leHRQb3NpdGlvbi54IC0gY3VycmVudFBvc2l0aW9uLngsIG5leHRQb3NpdGlvbi55
IC0gY3VycmVudFBvc2l0aW9uLnkpOworICAgICAgICByZXN1bHQuYXBwZW5kKENHU2l6ZUFwcGx5
QWZmaW5lVHJhbnNmb3JtKGFkdmFuY2UsIHRleHRNYXRyaXgpKTsKKyAgICB9CisgICAgcmVzdWx0
LmNvbnN0cnVjdEFuZEFwcGVuZChDR1NpemVNYWtlKDAsIDApKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6cmVjb3JkRHJhd0dseXBocyhDR1JlbmRl
cmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiBnc3RhdGUsIGNvbnN0IENHQWZmaW5lVHJhbnNmb3Jt
KiwgY29uc3QgQ0dHbHlwaCBnbHlwaHNbXSwgY29uc3QgQ0dQb2ludCBwb3NpdGlvbnNbXSwgc2l6
ZV90IGNvdW50KQoreworICAgIGlmICghY291bnQpCisgICAgICAgIHJldHVybjsKKworICAgIENH
Rm9udFJlZiB1c2VkRm9udCA9IENHR1N0YXRlR2V0Rm9udChnc3RhdGUpOworICAgIGlmICh1c2Vk
Rm9udCAhPSBhZG9wdENGKENURm9udENvcHlHcmFwaGljc0ZvbnQobV9vcmlnaW5hbEZvbnQtPnBs
YXRmb3JtRGF0YSgpLmN0Rm9udCgpLCBudWxscHRyKSkuZ2V0KCkpCisgICAgICAgIHJldHVybjsK
KworI2lmIEFTU0VSVF9FTkFCTEVECisgICAgYXV0byB0ZXh0UG9zaXRpb24gPSBDR0NvbnRleHRH
ZXRUZXh0UG9zaXRpb24obV9pbnRlcm5hbENvbnRleHQucGxhdGZvcm1Db250ZXh0KCkpOworICAg
IEFTU0VSVCghdGV4dFBvc2l0aW9uLngpOworICAgIEFTU0VSVCghdGV4dFBvc2l0aW9uLnkpOwor
I2VuZGlmCisKKyAgICB1cGRhdGVDVE0oKkNHR1N0YXRlR2V0Q1RNKGdzdGF0ZSkpOworCisgICAg
Ly8gV2Ugd2FudCB0aGUgR1BVIHByb2Nlc3MncyBDVE0gYW5kIHRleHQgbWF0cml4IHRvIG1hdGNo
IHRoZSBjdXJyZW50IENUTSBhbmQgdGV4dCBtYXRyaXguCisgICAgLy8gVGhlIGN1cnJlbnQgdGV4
dCBtYXRyaXggaXMgYSBjb25jYXRlbmF0aW9uIG9mIHdoYXRldmVyIFdlYktpdCBzZXRzIGl0IHRv
IGFuZCB3aGF0ZXZlcgorICAgIC8vIENvcmUgVGV4dCBhcHBlbmRzIHRvIGl0LiBTbywgcmlnaHQg
bm93IHdlIGhhdmUKKyAgICAvLyBDVE0gKiBtX29yaWdpbmFsVGV4dE1hdHJpeCAqIENvcmUgVGV4
dCdzIHRleHQgbWF0cml4LgorICAgIC8vIEhvd2V2ZXIsIENHQ29udGV4dEdldFRleHRNYXRyaXgo
KSBqdXN0IHRlbGxzIHVzIHdoYXQgdGhlIHdob2xlIHRleHQgbWF0cml4IGlzLCBzbworICAgIC8v
IG1fb3JpZ2luYWxUZXh0TWF0cml4ICogQ29yZSBUZXh0J3MgdGV4dCBtYXRyaXggPSBjdXJyZW50
VGV4dE1hdHJpeC4KKyAgICAvLyBUaGUgb25seSB3YXkgd2UgY2FuIGVtdWxhdGUgQ29yZSBUZXh0
J3MgdGV4dCBtYXRyaXggaXMgYnkgbW9kaWZ5aW5nIHRoZSBDVE0gaGVyZS4KKyAgICAvLyBTbywg
aWYgd2UgZG8gdGhhdCwgdGhlIEdQVSBwcm9jZXNzIHdpbGwgaGF2ZQorICAgIC8vIENUTSAqIFgg
KiBtX29yaWdpbmFsVGV4dE1hdHJpeAorICAgIC8vIElmIHlvdSBzZXQgdGhlc2UgdHdvIGVxdWFs
IHRvIGVhY2ggb3RoZXIsIGFuZCBzb2x2ZSBmb3IgWCwgeW91IGdldAorICAgIC8vIENUTSAqIGN1
cnJlbnRUZXh0TWF0cml4ID0gQ1RNICogWCAqIG1fb3JpZ2luYWxUZXh0TWF0cml4CisgICAgLy8g
Y3VycmVudFRleHRNYXRyaXggKiBpbnZlcnNlKG1fb3JpZ2luYWxUZXh0TWF0cml4KSA9IFgKKyAg
ICBBZmZpbmVUcmFuc2Zvcm0gY3VycmVudFRleHRNYXRyaXggPSBDR0NvbnRleHRHZXRUZXh0TWF0
cml4KG1faW50ZXJuYWxDb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpKTsKKyAgICBBZmZpbmVUcmFu
c2Zvcm0gY3RtRml4dXA7CisgICAgaWYgKGF1dG8gaW52ZXJ0ZWRPcmlnaW5hbFRleHRNYXRyaXgg
PSBtX29yaWdpbmFsVGV4dE1hdHJpeC5pbnZlcnNlKCkpCisgICAgICAgIGN0bUZpeHVwID0gY3Vy
cmVudFRleHRNYXRyaXggKiBpbnZlcnRlZE9yaWdpbmFsVGV4dE1hdHJpeC52YWx1ZSgpOworICAg
IEFmZmluZVRyYW5zZm9ybSBpbnZlcnNlQ1RNRml4dXA7CisgICAgaWYgKGF1dG8gaW52ZXJzZSA9
IGN0bUZpeHVwLmludmVyc2UoKSkKKyAgICAgICAgaW52ZXJzZUNUTUZpeHVwID0gaW52ZXJzZS52
YWx1ZSgpOworICAgIGVsc2UKKyAgICAgICAgY3RtRml4dXAgPSBBZmZpbmVUcmFuc2Zvcm0oKTsK
KyAgICBtX293bmVyLmNvbmNhdENUTShjdG1GaXh1cCk7CisKKyAgICB1cGRhdGVGaWxsQ29sb3Io
Q0dHU3RhdGVHZXRGaWxsQ29sb3IoZ3N0YXRlKSk7CisgICAgdXBkYXRlU3Ryb2tlQ29sb3IoQ0dH
U3RhdGVHZXRTdHJva2VDb2xvcihnc3RhdGUpKTsKKyAgICB1cGRhdGVTaGFkb3coQ0dHU3RhdGVH
ZXRTdHlsZShnc3RhdGUpKTsKKworICAgIG1fb3duZXIuYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVu
dChEcmF3R2x5cGhzOjpjcmVhdGUoKm1fb3JpZ2luYWxGb250LCBnbHlwaHMsIGNvbXB1dGVBZHZh
bmNlc0Zyb21Qb3NpdGlvbnMocG9zaXRpb25zLCBjb3VudCwgY3VycmVudFRleHRNYXRyaXgpLmRh
dGEoKSwgY291bnQsIGN1cnJlbnRUZXh0TWF0cml4Lm1hcFBvaW50KHBvc2l0aW9uc1swXSksIG1f
c21vb3RoaW5nTW9kZSkpOworCisgICAgbV9vd25lci5jb25jYXRDVE0oaW52ZXJzZUNUTUZpeHVw
KTsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZERyYXdJbWFnZShDR1JlbmRl
cmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiBnc3RhdGUsIENHUmVjdCByZWN0LCBDR0ltYWdlUmVm
IGNnSW1hZ2UpCit7CisgICAgdXBkYXRlQ1RNKCpDR0dTdGF0ZUdldENUTShnc3RhdGUpKTsKKyAg
ICB1cGRhdGVTaGFkb3coQ0dHU3RhdGVHZXRTdHlsZShnc3RhdGUpKTsKKworICAgIC8vIENvcmUg
R3JhcGhpY3MgYXNzdW1lcyBhICJ5IHVwIiBjb29yZGluYXRlIHN5c3RlbSwgYnV0IGluIFdlYktp
dCwgd2UgdXNlIGEgInktZG93biIgY29vcmRpbmF0ZSBzeXN0ZW0uCisgICAgLy8gVGhpcyBtZWFu
cyB0aGF0IFdlYktpdCdzIGRyYXdpbmcgcm91dGluZXMgKEdyYXBoaWNzQ29udGV4dDo6ZHJhd0lt
YWdlKCkpIGludGVudGlvbmFsbHkgZHJhdyBpbWFnZXMgdXBzaWRlLWRvd24gZnJvbSBDb3JlIEdy
YXBoaWNzJ3MgcG9pbnQgb2Ygdmlldy4KKyAgICAvLyAoVGhlcmUncyBhIHktZmxpcCBpbnNpZGUg
dGhlIGltcGxlbWVudGF0aW9uIG9mIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKCkuKQorICAg
IC8vIFRoZSByZWN0IGhhcyB0aGUgcmlnaHQgYm91bmRzLCBidXQgd2UgbmVlZCB0byB0cmFuc2Zv
cm0gZnJvbSBDRydzIGNvb3JkaW5hdGUgc3lzdGVtIHRvIFdlYktpdCdzIGJ5IHBlcmZvcm1pbmcg
b3VyIG93biB5LWZsaXAgc28gaW1hZ2VzIGFyZSBkcmF3biB0aGUgcmlnaHQtc2lkZS11cC4KKyAg
ICAvLyBXZSBkbyB0aGlzIGF0IHRoZSBib3VuZGFyeSBiZXR3ZWVuIHRoZSB0d28gQVBJcywgd2hp
Y2ggaXMgcmlnaHQgaGVyZS4KKyAgICBtX293bmVyLnRyYW5zbGF0ZSgwLCByZWN0LnNpemUuaGVp
Z2h0ICsgMiAqIHJlY3Qub3JpZ2luLnkpOworICAgIG1fb3duZXIuc2NhbGUoRmxvYXRTaXplKDEs
IC0xKSk7CisKKyAgICBhdXRvIGltYWdlID0gQml0bWFwSW1hZ2U6OmNyZWF0ZShjZ0ltYWdlKTsK
KyAgICBtX293bmVyLmFwcGVuZEl0ZW1BbmRVcGRhdGVFeHRlbnQoRHJhd0ltYWdlOjpjcmVhdGUo
aW1hZ2UsIHJlY3QsIHt7IH0sIGltYWdlLT5zaXplKCl9LCB7IEltYWdlT3JpZW50YXRpb246Ok9y
aWdpblRvcExlZnQgfSkpOworCisgICAgLy8gVW5kbyB0aGUgYWJvdmUgeS1mbGlwIHRvIHJlc3Rv
cmUgdGhlIGNvbnRleHQuCisgICAgbV9vd25lci5zY2FsZShGbG9hdFNpemUoMSwgLTEpKTsKKyAg
ICBtX293bmVyLnRyYW5zbGF0ZSgwLCAtKHJlY3Quc2l6ZS5oZWlnaHQgKyAyICogcmVjdC5vcmln
aW4ueSkpOworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6ZHJhd0dseXBocyhjb25zdCBG
b250JiBmb250LCBjb25zdCBHbHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIHVuc2lnbmVkIGZyb20s
IHVuc2lnbmVkIG51bUdseXBocywgY29uc3QgRmxvYXRQb2ludCYgc3RhcnRQb2ludCwgRm9udFNt
b290aGluZ01vZGUgc21vb3RoaW5nTW9kZSkKK3sKKyAgICBwcmVwYXJlSW50ZXJuYWxDb250ZXh0
KGZvbnQsIHNtb290aGluZ01vZGUpOworICAgIEZvbnRDYXNjYWRlOjpkcmF3R2x5cGhzKG1faW50
ZXJuYWxDb250ZXh0LCBmb250LCBnbHlwaEJ1ZmZlciwgZnJvbSwgbnVtR2x5cGhzLCBzdGFydFBv
aW50LCBzbW9vdGhpbmdNb2RlKTsKKyAgICBjb25jbHVkZUludGVybmFsQ29udGV4dCgpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBEaXNwbGF5TGlzdAorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVj
b3JkZXJIYXJmQnV6ei5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjNhYzMyNGI3YjAwYTllMTZhNTZhZDY3MGNl
MDRjZmE3N2ZjOWZhOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckhhcmZC
dXp6LmNwcApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0
RHJhd0dseXBoc1JlY29yZGVyLmgiCisKKyNpbmNsdWRlICJEaXNwbGF5TGlzdEl0ZW1zLmgiCisj
aW5jbHVkZSAiRGlzcGxheUxpc3RSZWNvcmRlci5oIgorI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIK
KyNpbmNsdWRlICJGb250LmgiCisjaW5jbHVkZSAiR2x5cGhCdWZmZXIuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCituYW1lc3BhY2UgRGlzcGxheUxpc3QgeworCitEcmF3R2x5cGhzUmVjb3Jk
ZXI6OkRyYXdHbHlwaHNSZWNvcmRlcihSZWNvcmRlciYgb3duZXIpCisgICAgOiBtX293bmVyKG93
bmVyKQoreworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6ZHJhd0dseXBocyhjb25zdCBG
b250JiBmb250LCBjb25zdCBHbHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIHVuc2lnbmVkIGZyb20s
IHVuc2lnbmVkIG51bUdseXBocywgY29uc3QgRmxvYXRQb2ludCYgc3RhcnRQb2ludCwgRm9udFNt
b290aGluZ01vZGUgc21vb3RoaW5nTW9kZSkKK3sKKyAgICBtX293bmVyLmFwcGVuZEl0ZW1BbmRV
cGRhdGVFeHRlbnQoRHJhd0dseXBoczo6Y3JlYXRlKGZvbnQsIGdseXBoQnVmZmVyLmdseXBocyhm
cm9tKSwgZ2x5cGhCdWZmZXIuYWR2YW5jZXMoZnJvbSksIG51bUdseXBocywgc3RhcnRQb2ludCwg
c21vb3RoaW5nTW9kZSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBEaXNwbGF5TGlzdAorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5j
cHAKaW5kZXggOGQxYjY0N2JkZDlmMTY5ZWZlZmI1NDI1NDQxNzQ2MjFmMDZjYjZlNS4uZDE0MmMz
Nzc5Y2I5OTNlNzM3MmJiOGI4ODg3ZmNjNGM3NTJmZTk4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdFJlY29yZGVyLmNwcApAQCAtNDIsNiArNDIsNyBAQCBSZWNvcmRlcjo6UmVjb3Jk
ZXIoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIGNv
bnN0IEdyYQogICAgIDogR3JhcGhpY3NDb250ZXh0SW1wbChjb250ZXh0LCBpbml0aWFsQ2xpcCwg
QWZmaW5lVHJhbnNmb3JtKCkpCiAgICAgLCBtX2Rpc3BsYXlMaXN0KGRpc3BsYXlMaXN0KQogICAg
ICwgbV9kZWxlZ2F0ZShkZWxlZ2F0ZSkKKyAgICAsIG1fZHJhd0dseXBoc1JlY29yZGVyKCp0aGlz
KQogewogICAgIExPR19XSVRIX1NUUkVBTShEaXNwbGF5TGlzdHMsIHN0cmVhbSA8PCAiXG5SZWNv
cmRpbmcgd2l0aCBjbGlwICIgPDwgaW5pdGlhbENsaXApOwogICAgIG1fc3RhdGVTdGFjay5hcHBl
bmQoeyBzdGF0ZSwgaW5pdGlhbENUTSwgaW5pdGlhbENsaXAgfSk7CkBAIC0xNjMsNyArMTY0LDcg
QEAgdm9pZCBSZWNvcmRlcjo6c2V0TWl0ZXJMaW1pdChmbG9hdCBtaXRlckxpbWl0KQogCiB2b2lk
IFJlY29yZGVyOjpkcmF3R2x5cGhzKGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IEdseXBoQnVmZmVy
JiBnbHlwaEJ1ZmZlciwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbnVtR2x5cGhzLCBjb25zdCBG
bG9hdFBvaW50JiBzdGFydFBvaW50LCBGb250U21vb3RoaW5nTW9kZSBzbW9vdGhpbmdNb2RlKQog
ewotICAgIGFwcGVuZEl0ZW1BbmRVcGRhdGVFeHRlbnQoRHJhd0dseXBoczo6Y3JlYXRlKGZvbnQs
IGdseXBoQnVmZmVyLmdseXBocyhmcm9tKSwgZ2x5cGhCdWZmZXIuYWR2YW5jZXMoZnJvbSksIG51
bUdseXBocywgc3RhcnRQb2ludCwgc21vb3RoaW5nTW9kZSkpOworICAgIG1fZHJhd0dseXBoc1Jl
Y29yZGVyLmRyYXdHbHlwaHMoZm9udCwgZ2x5cGhCdWZmZXIsIGZyb20sIG51bUdseXBocywgc3Rh
cnRQb2ludCwgc21vb3RoaW5nTW9kZSk7CiB9CiAKIEltYWdlRHJhd1Jlc3VsdCBSZWNvcmRlcjo6
ZHJhd0ltYWdlKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29u
c3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBpbWFnZVBh
aW50aW5nT3B0aW9ucykKQEAgLTI0Myw2ICsyNDQsOSBAQCB2b2lkIFJlY29yZGVyOjpzY2FsZShj
b25zdCBGbG9hdFNpemUmIHNpemUpCiAKIHZvaWQgUmVjb3JkZXI6OmNvbmNhdENUTShjb25zdCBB
ZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSkKIHsKKyAgICBpZiAodHJhbnNmb3JtLmlzSWRlbnRp
dHkoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgY3VycmVudFN0YXRlKCkuY29uY2F0Q1RNKHRy
YW5zZm9ybSk7CiAgICAgYXBwZW5kSXRlbShDb25jYXRlbmF0ZUNUTTo6Y3JlYXRlKHRyYW5zZm9y
bSkpOwogfQpAQCAtNDI4LDcgKzQzMiwxNyBAQCB2b2lkIFJlY29yZGVyOjpjbGlwVG9JbWFnZUJ1
ZmZlcihJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYpCiAKIHZvaWQgUmVjb3JkZXI6OmNs
aXBUb0RyYXdpbmdDb21tYW5kcyhjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UsIEZ1bmN0aW9uPHZvaWQoR3JhcGhpY3NDb250ZXh0Jik+JiYgZHJhd2lu
Z0Z1bmN0aW9uKQogewotICAgIGF1dG8gcmVjb3JkaW5nQ29udGV4dCA9IG1ha2VVbmlxdWU8RHJh
d2luZ0NvbnRleHQ+KGRlc3RpbmF0aW9uLnNpemUoKSk7CisgICAgLy8gVGhlIGluaXRpYWwgQ1RN
IG1hdGNoZXMgSW1hZ2VCdWZmZXIncyBpbml0aWFsIENUTS4KKyAgICBBZmZpbmVUcmFuc2Zvcm0g
dHJhbnNmb3JtID0gZ2V0Q1RNKEdyYXBoaWNzQ29udGV4dDo6RGVmaW5pdGVseUluY2x1ZGVEZXZp
Y2VTY2FsZSk7CisgICAgRmxvYXRTaXplIHNjYWxlRmFjdG9yKHRyYW5zZm9ybS54U2NhbGUoKSwg
dHJhbnNmb3JtLnlTY2FsZSgpKTsKKyAgICBhdXRvIHNjYWxlZFNpemUgPSBleHBhbmRlZEludFNp
emUoZGVzdGluYXRpb24uc2l6ZSgpICogc2NhbGVGYWN0b3IpOworCisgICAgQWZmaW5lVHJhbnNm
b3JtIGluaXRpYWxDVE07CisgICAgaW5pdGlhbENUTS5zY2FsZSgxLCAtMSk7CisgICAgaW5pdGlh
bENUTS50cmFuc2xhdGUoMCwgLXNjYWxlZFNpemUuaGVpZ2h0KCkpOworICAgIGluaXRpYWxDVE0u
c2NhbGUoc2NhbGVkU2l6ZSAvIGRlc3RpbmF0aW9uLnNpemUoKSk7CisKKyAgICBhdXRvIHJlY29y
ZGluZ0NvbnRleHQgPSBtYWtlVW5pcXVlPERyYXdpbmdDb250ZXh0PihkZXN0aW5hdGlvbi5zaXpl
KCksIGluaXRpYWxDVE0pOwogICAgIGRyYXdpbmdGdW5jdGlvbihyZWNvcmRpbmdDb250ZXh0LT5j
b250ZXh0KCkpOwogICAgIGFwcGVuZEl0ZW0oQ2xpcFRvRHJhd2luZ0NvbW1hbmRzOjpjcmVhdGUo
ZGVzdGluYXRpb24sIGNvbG9yU3BhY2UsIHJlY29yZGluZ0NvbnRleHQtPnRha2VEaXNwbGF5TGlz
dCgpKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaAppbmRleCA1Yjhh
NDRjNTE4MGMxZmVhZTA4NWMwMWE4OGQwODU0ZDY5NWY5NWE5Li4zMWM4Yzg5NjM3OGMwY2FmYmIy
MTEyODk1OTdjZWUyOGI0ZmE3NWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29y
ZGVyLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRGlzcGxh
eUxpc3QuaCIKKyNpbmNsdWRlICJEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIgogI2lu
Y2x1ZGUgIkdyYXBoaWNzQ29udGV4dEltcGwuaCIKICNpbmNsdWRlICJJbWFnZS5oIiAvLyBGb3Ig
SW1hZ2U6OlRpbGVSdWxlLgogI2luY2x1ZGUgIlRleHRGbGFncy5oIgpAQCAtNjEsOCArNjIsNiBA
QCBwdWJsaWM6CiAKICAgICBzaXplX3QgaXRlbUNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9kaXNw
bGF5TGlzdC5pdGVtQ291bnQoKTsgfQogCi0gICAgdm9pZCBhcHBlbmRJdGVtQW5kVXBkYXRlRXh0
ZW50KFJlZjxEcmF3aW5nSXRlbT4mJik7Ci0KICAgICBjbGFzcyBEZWxlZ2F0ZSB7CiAgICAgcHVi
bGljOgogICAgICAgICB2aXJ0dWFsIH5EZWxlZ2F0ZSgpIHsgfQpAQCAtNzIsNiArNzEsNyBAQCBw
dWJsaWM6CiAgICAgfTsKIAogcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgRHJhd0dseXBoc1Jl
Y29yZGVyOwogICAgIGJvb2wgaGFzUGxhdGZvcm1Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dCogcGxhdGZvcm1Db250
ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQogCkBAIC0xNTEsNiArMTUx
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFwcGVuZEl0ZW0oUmVmPEl0ZW0+JiYpOwogICAgIHZv
aWQgd2lsbEFwcGVuZEl0ZW0oY29uc3QgSXRlbSYpOwogICAgIHZvaWQgZGlkQXBwZW5kSXRlbShj
b25zdCBJdGVtJik7CisgICAgdm9pZCBhcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KFJlZjxEcmF3
aW5nSXRlbT4mJik7CiAKICAgICB2b2lkIGFwcGVuZFN0YXRlQ2hhbmdlSXRlbShjb25zdCBHcmFw
aGljc0NvbnRleHRTdGF0ZUNoYW5nZSYsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5n
ZUZsYWdzKTsKIApAQCAtMTk1LDYgKzE5Niw4IEBAIHByaXZhdGU6CiAgICAgRGVsZWdhdGUqIG1f
ZGVsZWdhdGU7CiAKICAgICBWZWN0b3I8Q29udGV4dFN0YXRlLCAzMj4gbV9zdGF0ZVN0YWNrOwor
CisgICAgRHJhd0dseXBoc1JlY29yZGVyIG1fZHJhd0dseXBoc1JlY29yZGVyOwogfTsKIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412757</attachid>
            <date>2020-10-30 09:30:55 -0700</date>
            <delta_ts>2020-10-30 12:02:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217506-20201030093054.patch</filename>
            <type>text/plain</type>
            <size>57362</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI2OWI0YzJlYzgyOTE2
NzA1NGU2ZmMzMWVlN2I1NDU5ZDQ3NDRhMi4uMGY0ZTkxYjhlNzVlZTRkNmI4ZmFlMmNjZmY2ZDMx
NzhkZDYyNGU0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMyBAQAorMjAyMC0xMC0yOSAgTXls
ZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0g
W0dQVSBQcm9jZXNzXSBQZXJmb3JtIGltYWdlIGRlY29kaW5nIG9mIGNvbG9yIGZvbnRzIGluIHRo
ZSBXZWIgUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE3NTA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ29yZSBUZXh0IGl0c2VsZiBkb2Vzbid0IGtub3cgaG93IHRvIGRyYXcgdGhpbmdzOyBp
dCBoYXMgdG8gcmVseSBvbiBDb3JlIEdyYXBoaWNzIHRvIGRvIHRoYXQuCisgICAgICAgIEhvd2V2
ZXIsIENvcmUgR3JhcGhpY3Mgb25seSB1bmRlcnN0YW5kcyB0aGUgc2ltcGxlc3Qgb2YgdGV4dCBk
cmF3aW5nIGNvbmNlcHRzOyBpdCBkb2Vzbid0IHVuZGVyc3RhbmQKKyAgICAgICAgdGhpbmdzIGxp
a2UgY29sb3IgZm9udHMgb3IgZW1vamkuIENvcmUgVGV4dCBzaXRzIGJldHdlZW4gdGhlIGFwcGxp
Y2F0aW9uIGFuZCBDb3JlIEdyYXBoaWNzLCBhbmQgaXMKKyAgICAgICAgcmVzcG9uc2libGUgZm9y
IHNwbGl0dGluZyB1cCBhbiBhcmJpdHJhcnkgZHJhdyBjb21tYW5kIGludG8gaW5kaXZpZHVhbCBz
aW1wbGUgcGllY2VzIHdoaWNoIENvcmUKKyAgICAgICAgR3JhcGhpY3MgY2FuIHVuZGVyc3RhbmQu
IEZvciBleGFtcGxlLCB3aGVuIHlvdSBhc2sgQ29yZSBUZXh0IHRvIGRyYXcgYSBzdHJpbmcgd2hp
Y2ggaW5jbHVkZXMgYW4gZW1vamkKKyAgICAgICAgY2hhcmFjdGVyLCBDb3JlIFRleHQgd2lsbCBl
bmQgdXAgdGVsbGluZyBDb3JlIEdyYXBoaWNzIHRvIGRyYXcgYWxsIHRoZSBvdXRsaW5lcywgYW5k
IHRoZW4gdGVsbGluZyBDb3JlCisgICAgICAgIEdyYXBoaWNzIHRvIGRyYXcgdGhlIGVtb2ppIGlt
YWdlICh1c2luZyBDb3JlIEdyYXBoaWNzJ3Mgbm9ybWFsIGltYWdlIGRyYXdpbmcgcm91dGluZXMp
LgorCisgICAgICAgIFRoaXMgaXMgZXhhY3RseSB0aGUgc2FtZSBraW5kIG9mIGZpbHRlcmluZyB3
ZSB3YW50IHRvIGRvIGZvciB0aGUgR1BVIFByb2Nlc3MuIFdlIHdhbnQgdG8gYmUgYWJsZSB0bwor
ICAgICAgICBzZXBhcmF0ZSBvdXQgdGhlIGdseXBocyB3aGljaCBhcmUgcmVuZGVyZWQgdXNpbmcg
b3V0bGluZXMgZnJvbSB0aGUgZW1vamkgZ2x5cGhzIHdoaWNoIGFyZSByZW5kZXJlZAorICAgICAg
ICB1c2luZyBpbWFnZXMuIFdlIHdhbnQgdG8gaGFuZGxlIHRoZSBpbWFnZSBnbHlwaHMgb3Vyc2Vs
ZiBpbiBXZWJLaXQgdXNpbmcgb3VyIG93biBpbWFnZSBkcmF3aW5nIGRpc3BsYXkKKyAgICAgICAg
bGlzdCBmYWNpbGl0aWVzLCB3aGljaCB3aWxsIGNhdXNlIGltYWdlcyB0byBiZSBkZWNvZGVkIGlu
IHRoZSBXZWIgUHJvY2VzcywgdGhlcmVieSBpbmNyZWFzaW5nIHRoZQorICAgICAgICBzZWN1cml0
eSBvZiB0aGUgR1BVIFByb2Nlc3MuCisKKyAgICAgICAgU28sIHRoaXMgcGF0Y2ggaW1wbGVtZW50
cyBhIGN1c3RvbSBDR0NvbnRleHQsIGJhY2tlZCBieSBhIGZ1bmN0aW9uIHRhYmxlIHRoYXQgaXMg
cG9wdWxhdGVkIGluIFdlYktpdC4KKyAgICAgICAgV2UgcGFzcyB0aGlzIGN1c3RvbSBDR0NvbnRl
eHQgaW50byBDb3JlIFRleHQsIHdoaWNoIGRvZXMgaXRzIG5vcm1hbCBzcGxpdHRpbmcgdXAgb2Yg
b3V0bGluZXMgLyBpbWFnZXMsCisgICAgICAgIGFuZCBjYWxscyBnbHlwaCAvIGltYWdlIGRyYXdp
bmcgZnVuY3Rpb25zIG9uIG91ciBDR0NvbnRleHQuIEJlY2F1c2UgdGhlc2UgZnVuY3Rpb25zIGFy
ZSBpbXBsZW1lbnRlZCBieQorICAgICAgICBXZWJLaXQsIHRoaXMgZWZmZWN0aXZlbHkgbWFrZXMg
V2ViS2l0IGFibGUgdG8gaW50ZXJjZXB0IHRoZSBkcmF3aW5nIGNhbGxzLCBhbmQgaW1wbGVtZW50
IHRoZW0gb3Vyc2VsZgorICAgICAgICBieSBhcHBlbmRpbmcgaXRlbXMgdG8gdGhlIGN1cnJlbnQg
ZGlzcGxheSBsaXN0LiBTbywgd2hlbiBDb3JlIFRleHQgdGVsbHMgb3VyIENHQ29udGV4dCB0byBk
cmF3IGFuIGVtb2ppLAorICAgICAgICBvdXIgY2FsbGJhY2sgcnVucyBhbmQgd2UgImp1c3QiIGFw
cGVuZCBhIERyYXdJbWFnZSBkaXNwbGF5IGxpc3QgaXRlbS4KKworICAgICAgICBJIHVzZSBzY2Fy
ZS1xdW90ZXMgYXJvdW5kICJqdXN0IiBiZWNhdXNlIGl0IGlzIGEgYml0IG1vcmUgY29tcGxpY2F0
ZWQgdGhhbiB0aGF0LiBDb3JlIFRleHQgaW50ZXJuYWxseQorICAgICAgICBjYW4gY2hhbmdlIHRo
ZSBmaWxsL3N0cm9rZSBjb2xvciAoZm9yIENPTFIgZ2x5cGhzKSwgdGhlIHRleHQgbWF0cml4IChp
dCBzaG91bGQgYmUgdXBkYXRlZCBiZXR3ZWVuCisgICAgICAgIGFkamFjZW50IHJ1bnMpLCB0aGUg
Q1RNLCBhbmQgdGhlIHNoYWRvdyBzdGF0ZSAoYmVjYXVzZSBDb3JlIFRleHQgc29tZXRpbWVzIHdp
bGwgaW1wbGVtZW50IHNoYWRvd3MgaXRzZWxmCisgICAgICAgIGJ5IGp1c3QgZHJhd2luZyB0aGUg
dGV4dCB0d28gdGltZXMpLiBTbywgaW4gb3VyIENHQ29udGV4dCBjYWxsYmFjaywgd2UgaGF2ZSB0
byBsb29rIGF0IHRoZSBzdGF0ZSBvZgorICAgICAgICB0aGUgQ0dDb250ZXh0LCBmaWd1cmUgb3V0
IGlmIGFueXRoaW5nIGNoYW5nZWQgKGJlY2F1c2Ugd2UncmUgbm90IG5vdGlmaWVkIHdoZW4gY2hh
bmdlcyBoYXBwZW4pLCBhbmQKKyAgICAgICAgaWYgdGhpbmdzIGRpZCBjaGFuZ2UsIGFwcGVuZCBh
ZGRpdGlvbmFsIGRpc3BsYXkgbGlzdCBpdGVtcyB0byBtYWtlIGEgcGFyYWxsZWwgY2hhbmdlIGhh
cHBlbiBhdCBkcmF3CisgICAgICAgIHRpbWUuCisKKyAgICAgICAgVGVzdHMgYWRkZWQgaW4gaHR0
cHM6Ly90cmFjLndlYmtpdC5vcmcvcjI2OTE3NworCisgICAgICAgICogSGVhZGVycy5jbWFrZToK
KyAgICAgICAgKiBQbGF0Zm9ybUFwcGxlV2luLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtV2lu
Q2Fpcm8uY21ha2U6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vRnJlZVR5
cGUuY21ha2U6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0Jh
Y2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJDR0JhY2tlbmQ6OnNldHVw
Q29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udENhc2Nh
ZGVDb3JlVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaWxsVmVjdG9yV2l0aEhvcml6b250
YWxHbHlwaFBvc2l0aW9ucyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmg6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRl
ckNvcmVUZXh0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6YmVn
aW5MYXllcik6IFZUYWJsZSBjYWxsYmFjayBmb3IgY3JlYXRpbmcgYSB0cmFuc3BhcmVuY3kgbGF5
ZXIuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6ZW5kTGF5ZXIpOiBEaXR0byBmb3Ig
ZW5kaW5nIGEgdHJhbnNwYXJlbmN5IGxheWVyLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OmRyYXdHbHlwaHMpOiBWVGFibGUgY2FsbGJhY2sgZm9yIGRyYXdpbmcgb3V0bGluZSBnbHlw
aHMuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6ZHJhd0ltYWdlKTogVlRhYmxlIGNh
bGxiYWNrIGZvciBkcmF3aW5nIGFuIGltYWdlLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6Y3JlYXRlSW50ZXJuYWxDb250ZXh0KTogU2V0IHVwIHRo
ZSBjdXN0b20gQ0dDb250ZXh0CisgICAgICAgIGluZnJhc3RydWN0dXJlLiBIb29rIHVwIHRoZSBW
VGFibGUgY2FsbGJhY2tzLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlw
aHNSZWNvcmRlcjo6RHJhd0dseXBoc1JlY29yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnBvcHVsYXRlSW50ZXJuYWxTdGF0ZSk6IFdlIG5l
ZWQgdG8gc2F2ZSB0aGUgR3JhcGhpY3NDb250ZXh0CisgICAgICAgIHN0YXRlIGF0IHRoZSBiZWdp
bm5pbmcgb2YgdGhlIGVudHJ5IHBvaW50LCBzbyB3ZSBjYW4gcmVzdG9yZSBhbnl0aGluZyB0aGF0
IGNoYW5nZWQgd2hlbiB3ZSdyZSBkb25lLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdHbHlwaHNSZWNvcmRlcjo6cG9wdWxhdGVJbnRlcm5hbENvbnRleHQpOiBCZWNhdXNlIENv
cmUgVGV4dCBpbnRlcm5hbGx5CisgICAgICAgIGludGVycm9nYXRlcyB0aGUgQ0dDb250ZXh0IHRv
IHNlZSBpZiBpdCBuZWVkcyB0byBkbyB0aGluZ3MgbGlrZSBkcmF3IHNoYWRvd3MgaXRzZWxmLCB3
ZSBuZWVkIHRvIG1ha2UKKyAgICAgICAgc3VyZSB0aGF0IHRoZSByZWNvcmRlcidzIHN0YXRlIGlz
IG1pcnJvcmVkIGluIG91ciBjdXN0b20gQ0dDb250ZXh0LiBUaGlzIGFwcGxpZXMgYWxsIHRoZSBy
ZWxldmFudAorICAgICAgICBzdGF0ZSB0byBvdXIgQ0dDb250ZXh0IHNvIGl0J3MgcmVhZHkgd2hl
biBDb3JlIFRleHQgYXNrcyBmb3IgaXQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
RHJhd0dseXBoc1JlY29yZGVyOjpwcmVwYXJlSW50ZXJuYWxDb250ZXh0KTogQ2FsbCB0aGUgYWJv
dmUgdHdvIGZ1bmN0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5
cGhzUmVjb3JkZXI6OmNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KTogQ2FsbGVkIG9uY2Ugd2hlbiB3
ZSdyZSBkb25lLgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGNsZWFucyB1cCwgYnkgcG9zc2libHkg
YXBwZW5kaW5nIGFkZGl0aW9uYWwgZGlzcGxheSBsaXN0IGl0ZW1zIHRvIHJlc3RvcmUgdGhlIHN0
YXRlCisgICAgICAgIGJhY2sgdG8gd2hhdCBpdCB3YXMgd2hlbiB3ZSBzdGFydGVkLgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6dXBkYXRlRmlsbENv
bG9yKTogRGV0ZWN0IGEgY2hhbmdlZCBmaWxsIGNvbG9yLCBhbmQgaWYgaXQgaGFzCisgICAgICAg
IGNoYW5nZWQsIGFwcGVuZCBhIGRpc3BsYXkgbGlzdCBpdGVtIHRvIG1ha2UgYSBwYXJhbGxlbCBj
aGFuZ2UgYXQgZHJhd2luZyB0aW1lLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRy
YXdHbHlwaHNSZWNvcmRlcjo6dXBkYXRlU3Ryb2tlQ29sb3IpOiBEaXR0byBmb3IgdGhlIHN0cm9r
ZSBjb2xvci4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3Jk
ZXI6OnVwZGF0ZUNUTSk6IERpdHRvIGZvciB0aGUgQ1RNLgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OnNoYWRvd0lzQ2xlYXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVTaGFkb3cpOiBEaXR0byBmb3IgdGhlIHNoYWRv
dyBzdGF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3Jk
ZXI6OnJlY29yZEJlZ2luTGF5ZXIpOiBIb29rIHRoaXMgdXAgdG8gYmVnaW5UcmFuc3BhcmVuY3lM
YXllcigpLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRl
cjo6cmVjb3JkRW5kTGF5ZXIpOiBIb29rIHRoaXMgdXAgdG8gZW5kVHJhbnNwYXJlbmN5TGF5ZXIo
KS4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0Ojpjb21wdXRlQWR2YW5jZXNGcm9tUG9z
aXRpb25zKTogQ0dDb250ZXh0IGdpdmVzIHVzIHBvc2l0aW9ucywgYnV0IG91ciBkaXNwbGF5IGxp
c3QKKyAgICAgICAgaW5mcmFzdHJ1Y3R1cmUgcmVxdWlyZXMgYWR2YW5jZXMuIFNpbXBseSBzdWJ0
cmFjdCB0byBjb252ZXJ0IGJldHdlZW4gdGhlbS4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZERyYXdHbHlwaHMpOiBUaGUgY2FsbGJhY2sg
dGhhdCBhcHBlbmRzIGEgRHJhd0dseXBocworICAgICAgICBkaXNwbGF5IGxpc3QgaXRlbS4gTm90
ZSBpdCBoYXMgdG8gY2FsbCB0aGUgdmFyaW91cyB1cGRhdGUoKSBmdW5jdGlvbnMgdG8gZGV0ZWN0
IGNoYW5nZXMgaW4gdGhlIENHQ29udGV4dAorICAgICAgICBzdGF0ZS4KKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZERyYXdJbWFnZSk6IERp
dHRvIGZvciBhIERyYXdJbWFnZSBkaXNwbGF5IGxpc3QgaXRlbS4KKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OmRyYXdHbHlwaHMpOiBUaGUgbWFpbiBl
bnRyeSBwb2ludC4gU2ltcGx5IHNldCB1cCwgZG8gdGhlIHdvcmssCisgICAgICAgIHRoZW4gY2xl
YW4gdXAuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0RHJhd0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwOiBBZGRlZC4gRHVtbXkgaW1wbGVtZW50
YXRpb24KKyAgICAgICAgdG8gbWFrZSB0aGUgb3RoZXIgcG9ydHMgY29udGludWUgdG8gY29tcGls
ZS4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OkRy
YXdHbHlwaHNSZWNvcmRlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ds
eXBoc1JlY29yZGVyOjpkcmF3R2x5cGhzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6UmVjb3JkZXI6OlJlY29yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpSZWNvcmRlcjo6ZHJhd0dseXBocyk6IENhbGwgbV9kcmF3R2x5cGhzUmVjb3JkZXIu
ZHJhd0dseXBocygpIGluc3RlYWQgb2YganVzdAorICAgICAgICBhcHBlbmRpbmcgYSBEcmF3R2x5
cGhzIGNvbW1hbmQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmNv
bmNhdENUTSk6IFRpbnkgb3B0aW1pemF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlJlY29yZGVyOjpjbGlwVG9EcmF3aW5nQ29tbWFuZHMpOiBUaGUgY3VycmVudCBjbGlwVG9E
cmF3aW5nQ29tbWFuZHMncyBjb250ZXh0CisgICAgICAgIENUTSBkaWRuJ3QgbWF0Y2ggdGhlIHBh
cmFsbGVsIG9uZSB1c2VkIGR1cmluZyBwbGF5YmFjay4gSW4gb3JkZXIgdG8gbWFrZSB0aGUgQ1RN
cyBtYXRjaCBhcmUgcmVjb3JkaW5nCisgICAgICAgIGFuZCBwbGF5YmFjayB0aW1lLCB3ZSBoYXZl
IHRvIG1ha2Ugc3VyZSB0aGV5IHN0YXJ0IG9mZiB0aGUgc2FtZS4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oOiBEaXNwbGF5TGlz
dDo6UmVjb3JkZXIgb3ducyBhIERyYXdHbHlwaHNSZWNvcmRlciwKKyAgICAgICAgd2hvc2UgbGlm
ZXRpbWUgZXF1YWxzIHRoYXQgb2YgdGhlIERpc3BsYXlMaXN0OjpSZWNvcmRlci4gUmF0aGVyIHRo
YW4gZGVzdHJveWluZyAvIHJlY3JlYXRpbmcgdGhlCisgICAgICAgIERyYXdHbHlwaHNSZWNvcmRl
ciwgdGhlIERyYXdHbHlwaHNSZWNvcmRlciBjbGFzcyBpcyBzbWFydCBlbm91Z2ggdG8gY2xlYW4g
dXAgYWZ0ZXIgaXRzZWxmIHNvIGl0IGNhbiBiZQorICAgICAgICByZXVzZWQgbXVsdGlwbGUgdGlt
ZXMuCisKIDIwMjAtMTAtMjkgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgog
CiAgICAgICAgIFtDb2NvYV0gUmVtb3ZlIHNvZnQgbGlua2luZyBvZiBOZXR3b3JrRXh0ZW5zaW9u
LmZyYW1ld29yawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggYzRkMzM0MjlkYmU2YjBjMjBkYTc5MjMx
YzZiMzNlZmM4YmQ1Nzk2Mi4uMDQ4MThmYTFhMzgwYzljMjE1MzMzYjgxM2NkOTVlMWRjNzU5NzM0
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMTAtMjkgIE15bGVz
IEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFtH
UFUgUHJvY2Vzc10gUGVyZm9ybSBpbWFnZSBkZWNvZGluZyBvZiBjb2xvciBmb250cyBpbiB0aGUg
V2ViIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxNzUwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBzb21lIG5ldyBlbnRyeSBwb2ludHMsIGFuZCBkbyBzb21lIHZhcmlvdXMgY2xlYW51
cC4KKworICAgICAgICAqIHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg6CisKIDIwMjAtMTAt
MTMgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBs
ZWZ0b3ZlciBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4IHN1cHBvcnQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCmluZGV4IDY4ODRkMGY4NmQyOWRjMTQ5MTY2MTE3YmE1Yzk2NGQxMGIzM2JkZGYuLjI4
MDFhZDZmZDg1ZmMzNjRlOGQwNjUxNDQ5MjM5YTcyOTE1OWY0YjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQpAQCAtMTIzNyw2ICsxMjM3LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVB
REVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0V4dGVuc2lvbnNHTEFOR0xFLmgKIAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5oCisgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVy
LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5n
Q29udGV4dC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SW1hZ2VCdWZmZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1zLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0Nv
cmVHcmFwaGljc1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBo
aWNzU1BJLmgKaW5kZXggYTdmODJiODYxYjYyYzRhZWZiODNjMTgxMWQ1NWM3YWY3NDllNmI5MS4u
NDBkNWFmMDAzMjVjNGYyOGQ2NjZjNzQ5MmEwZDVkMWQwZjAzYWViMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKQEAgLTM4LDYgKzM4LDcg
QEAKIAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKKyNpbmNsdWRlIDxDb3JlR3JhcGhp
Y3MvQ0dDb250ZXh0RGVsZWdhdGVQcml2YXRlLmg+CiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NH
Rm9udENhY2hlLmg+CiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHUGF0aFByaXZhdGUuaD4KICNp
bmNsdWRlIDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBoaWNzUHJpdmF0ZS5oPgpAQCAtNTgsMTkgKzU5
LDEyIEBAIHN0cnVjdCBDR0ZvbnRITWV0cmljcyB7CiAgICAgaW50IG1pblJpZ2h0U2lkZUJlYXJp
bmc7CiB9OwogCi1zdHJ1Y3QgQ0dGb250RGVzY3JpcHRvciB7Ci0gICAgQ0dSZWN0IGJib3g7Ci0g
ICAgQ0dGbG9hdCBhc2NlbnQ7Ci0gICAgQ0dGbG9hdCBkZXNjZW50OwotICAgIENHRmxvYXQgY2Fw
SGVpZ2h0OwotICAgIENHRmxvYXQgaXRhbGljQW5nbGU7Ci0gICAgQ0dGbG9hdCBzdGVtVjsKLSAg
ICBDR0Zsb2F0IHN0ZW1IOwotICAgIENHRmxvYXQgYXZnV2lkdGg7Ci0gICAgQ0dGbG9hdCBtYXhX
aWR0aDsKLSAgICBDR0Zsb2F0IG1pc3NpbmdXaWR0aDsKLSAgICBDR0Zsb2F0IGxlYWRpbmc7Ci0g
ICAgQ0dGbG9hdCB4SGVpZ2h0OwordHlwZWRlZiBDRl9FTlVNIChpbnQzMl90LCBDR0NvbnRleHRE
ZWxlZ2F0ZUNhbGxiYWNrTmFtZSkKK3sKKyAgICBkZURyYXdJbWFnZSA9IDcsCisgICAgZGVEcmF3
R2x5cGhzID0gOCwKKyAgICBkZUJlZ2luTGF5ZXIgPSAxNywKKyAgICBkZUVuZExheWVyID0gMTgs
CiB9OwogCiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBDR0NvbG9yVHJhbnNmb3JtKiBDR0NvbG9yVHJh
bnNmb3JtUmVmOwpAQCAtMTc5LDYgKzE3MywyMiBAQCB0eXBlZGVmIHN0cnVjdCBDR0ZvY3VzUmlu
Z1N0eWxlIENHRm9jdXNSaW5nU3R5bGU7CiAKICNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKIAor
c3RydWN0IENHU2hhZG93U3R5bGUgeworICAgIHVuc2lnbmVkIGE7CisgICAgQ0dGbG9hdCBiOwor
ICAgIENHRmxvYXQgYXppbXV0aDsKKyAgICBDR0Zsb2F0IGM7CisgICAgQ0dGbG9hdCBoZWlnaHQ7
CisgICAgQ0dGbG9hdCByYWRpdXM7CisgICAgQ0dGbG9hdCBkOworfTsKK3R5cGVkZWYgc3RydWN0
IENHU2hhZG93U3R5bGUgQ0dTaGFkb3dTdHlsZTsKKwordHlwZWRlZiBDRl9FTlVNIChpbnQzMl90
LCBDR1N0eWxlVHlwZSkKK3sKKyAgICBrQ0dTdHlsZVNoYWRvdyA9IDEsCit9OworCiAjaWYgUExB
VEZPUk0oTUFDKQogCiB0eXBlZGVmIENGX0VOVU0odWludDMyX3QsIENHU05vdGlmaWNhdGlvblR5
cGUpIHsKQEAgLTE5Myw2ICsyMDMsMTIgQEAgc3RhdGljIGNvbnN0IENHU05vdGlmaWNhdGlvblR5
cGUga0NHU2Vzc2lvbkNvbnNvbGVEaXNjb25uZWN0ID0gKENHU05vdGlmaWNhdGlvblQKIAogI2Vu
ZGlmIC8vIFBMQVRGT1JNKE1BQykKIAordHlwZWRlZiBzdHJ1Y3QgQ0dDb250ZXh0RGVsZWdhdGUg
KkNHQ29udGV4dERlbGVnYXRlUmVmOwordHlwZWRlZiB2b2lkICgqQ0dDb250ZXh0RGVsZWdhdGVD
YWxsYmFjaykodm9pZCk7Cit0eXBlZGVmIHN0cnVjdCBDR1JlbmRlcmluZ1N0YXRlICpDR1JlbmRl
cmluZ1N0YXRlUmVmOwordHlwZWRlZiBzdHJ1Y3QgQ0dHU3RhdGUgKkNHR1N0YXRlUmVmOwordHlw
ZWRlZiBzdHJ1Y3QgQ0dTdHlsZSAqQ0dTdHlsZVJlZjsKKwogI2VuZGlmIC8vIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspCiAKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTIwMyw3ICsyMTksNiBAQCB0
eXBlZGVmIHVpbnQzMl90IENHU1dpbmRvd0lEOwogCiB0eXBlZGVmIENHU1dpbmRvd0lEKiBDR1NX
aW5kb3dJRExpc3Q7CiB0eXBlZGVmIHN0cnVjdCBDRl9CUklER0VEX1RZUEUoaWQpIENHU1JlZ2lv
bk9iamVjdCogQ0dTUmVnaW9uT2JqOwotdHlwZWRlZiBzdHJ1Y3QgQ0ZfQlJJREdFRF9UWVBFKGlk
KSBDR1N0eWxlKiBDR1N0eWxlUmVmOwogCiB0eXBlZGVmIHZvaWQqIENHU05vdGlmaWNhdGlvbkFy
ZzsKIHR5cGVkZWYgdm9pZCogQ0dTTm90aWZpY2F0aW9uRGF0YTsKQEAgLTIzMyw3ICsyNDgsNiBA
QCB2b2lkIENHQ29udGV4dFJlc2V0Q2xpcChDR0NvbnRleHRSZWYpOwogQ0dDb250ZXh0VHlwZSBD
R0NvbnRleHRHZXRUeXBlKENHQ29udGV4dFJlZik7CiAKIENGU3RyaW5nUmVmIENHRm9udENvcHlG
YW1pbHlOYW1lKENHRm9udFJlZik7Ci1ib29sIENHRm9udEdldERlc2NyaXB0b3IoQ0dGb250UmVm
LCBDR0ZvbnREZXNjcmlwdG9yKik7CiBib29sIENHRm9udEdldEdseXBoQWR2YW5jZXNGb3JTdHls
ZShDR0ZvbnRSZWYsIGNvbnN0IENHQWZmaW5lVHJhbnNmb3JtKiAsIENHRm9udFJlbmRlcmluZ1N0
eWxlLCBjb25zdCBDR0dseXBoW10sIHNpemVfdCBjb3VudCwgQ0dTaXplIGFkdmFuY2VzW10pOwog
dm9pZCBDR0ZvbnRHZXRHbHlwaHNGb3JVbmljaGFycyhDR0ZvbnRSZWYsIGNvbnN0IFVuaUNoYXJb
XSwgQ0dHbHlwaFtdLCBzaXplX3QgY291bnQpOwogY29uc3QgQ0dGb250SE1ldHJpY3MqIENHRm9u
dEdldEhNZXRyaWNzKENHRm9udFJlZik7CkBAIC0yNTIsNiArMjY2LDIxIEBAIGJvb2wgQ0dDb250
ZXh0R2V0QWxsb3dzRm9udFN1YnBpeGVsUG9zaXRpb25pbmcoQ0dDb250ZXh0UmVmKTsKIGJvb2wg
Q0dDb250ZXh0RHJhd3NXaXRoQ29ycmVjdFNoYWRvd09mZnNldHMoQ0dDb250ZXh0UmVmKTsKIENH
UGF0dGVyblJlZiBDR1BhdHRlcm5DcmVhdGVXaXRoSW1hZ2UyKENHSW1hZ2VSZWYsIENHQWZmaW5l
VHJhbnNmb3JtLCBDR1BhdHRlcm5UaWxpbmcpOwogCitDR0NvbnRleHREZWxlZ2F0ZVJlZiBDR0Nv
bnRleHREZWxlZ2F0ZUNyZWF0ZSh2b2lkKiBpbmZvKTsKK3ZvaWQgQ0dDb250ZXh0RGVsZWdhdGVT
ZXRDYWxsYmFjayhDR0NvbnRleHREZWxlZ2F0ZVJlZiwgQ0dDb250ZXh0RGVsZWdhdGVDYWxsYmFj
a05hbWUsIENHQ29udGV4dERlbGVnYXRlQ2FsbGJhY2spOworQ0dDb250ZXh0UmVmIENHQ29udGV4
dENyZWF0ZVdpdGhEZWxlZ2F0ZShDR0NvbnRleHREZWxlZ2F0ZVJlZiwgQ0dDb250ZXh0VHlwZSwg
Q0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYpOwordm9pZCogQ0dDb250ZXh0RGVsZWdh
dGVHZXRJbmZvKENHQ29udGV4dERlbGVnYXRlUmVmKTsKK3ZvaWQgQ0dDb250ZXh0RGVsZWdhdGVS
ZWxlYXNlKENHQ29udGV4dERlbGVnYXRlUmVmKTsKK0NHRmxvYXQgQ0dHU3RhdGVHZXRBbHBoYShD
R0dTdGF0ZVJlZik7CitDR0ZvbnRSZWYgQ0dHU3RhdGVHZXRGb250KENHR1N0YXRlUmVmKTsKK2Nv
bnN0IENHQWZmaW5lVHJhbnNmb3JtICpDR0dTdGF0ZUdldENUTShDR0dTdGF0ZVJlZik7CitDR0Nv
bG9yUmVmIENHR1N0YXRlR2V0RmlsbENvbG9yKENHR1N0YXRlUmVmKTsKK0NHQ29sb3JSZWYgQ0dH
U3RhdGVHZXRTdHJva2VDb2xvcihDR0dTdGF0ZVJlZik7CitDR1N0eWxlUmVmIENHR1N0YXRlR2V0
U3R5bGUoQ0dHU3RhdGVSZWYpOworQ0dTdHlsZVR5cGUgQ0dTdHlsZUdldFR5cGUoQ0dTdHlsZVJl
Zik7Citjb25zdCB2b2lkICpDR1N0eWxlR2V0RGF0YShDR1N0eWxlUmVmKTsKK0NHQ29sb3JSZWYg
Q0dTdHlsZUdldENvbG9yKENHU3R5bGVSZWYpOworCiAjaWYgSEFWRShDR1BBVEhfR0VUX05VTUJF
Ul9PRl9FTEVNRU5UUykKIHNpemVfdCBDR1BhdGhHZXROdW1iZXJPZkVsZW1lbnRzKENHUGF0aFJl
Zik7CiAjZW5kaWYKQEAgLTI4NiwxNiArMzE1LDkgQEAgQ0dSZWN0KiBDR1NOZXh0UmVjdChjb25z
dCBDR1NSZWdpb25FbnVtZXJhdG9yT2JqKTsKIENHU1JlZ2lvbkVudW1lcmF0b3JPYmogQ0dTUmVn
aW9uRW51bWVyYXRvcihDR1JlZ2lvblJlZik7CiBDR1N0eWxlUmVmIENHU3R5bGVDcmVhdGVGb2N1
c1JpbmdXaXRoQ29sb3IoY29uc3QgQ0dGb2N1c1JpbmdTdHlsZSosIENHQ29sb3JSZWYpOwogdm9p
ZCBDR0NvbnRleHRTZXRTdHlsZShDR0NvbnRleHRSZWYsIENHU3R5bGVSZWYpOwotCiB2b2lkIENH
Q29udGV4dERyYXdDb25pY0dyYWRpZW50KENHQ29udGV4dFJlZiwgQ0dHcmFkaWVudFJlZiwgQ0dQ
b2ludCBjZW50ZXIsIENHRmxvYXQgYW5nbGUpOwotCi0jaWYgSEFWRShDR19QQVRIX1VORVZFTl9D
T1JORVJTX1JPVU5ERURSRUNUKQogdm9pZCBDR1BhdGhBZGRVbmV2ZW5Db3JuZXJzUm91bmRlZFJl
Y3QoQ0dNdXRhYmxlUGF0aFJlZiwgY29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0gKiwgQ0dSZWN0LCBj
b25zdCBDR1NpemUgY29ybmVyc1s0XSk7Ci0jZW5kaWYKLQotI2lmIEhBVkUoQ0dfRk9OVF9SRU5E
RVJJTkdfR0VUX0ZPTlRfU01PT1RISU5HX0RJU0FCTEVEKQogYm9vbCBDR0ZvbnRSZW5kZXJpbmdH
ZXRGb250U21vb3RoaW5nRGlzYWJsZWQodm9pZCk7Ci0jZW5kaWYKIAogI2VuZGlmIC8vIFBMQVRG
T1JNKENPQ09BKQogCkBAIC0zMjgsMTUgKzM1MCwxMCBAQCBib29sIENvbG9yU3luY1Byb2ZpbGVJ
c1dpZGVHYW11dChDb2xvclN5bmNQcm9maWxlUmVmKTsKIHNpemVfdCBDR0Rpc3BsYXlNb2RlR2V0
UGl4ZWxzV2lkZShDR0Rpc3BsYXlNb2RlUmVmKTsKIHNpemVfdCBDR0Rpc3BsYXlNb2RlR2V0UGl4
ZWxzSGlnaChDR0Rpc3BsYXlNb2RlUmVmKTsKIAotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRP
V1NFUlZFUl9CTE9DS0lORykKLQogQ0dFcnJvciBDR1NTZXREZW55V2luZG93U2VydmVyQ29ubmVj
dGlvbnMoYm9vbCk7Ci0KIHR5cGVkZWYgaW50MzJfdCBDR1NEaXNwbGF5SUQ7CiBDR1NEaXNwbGF5
SUQgQ0dTTWFpbkRpc3BsYXlJRCh2b2lkKTsKIAotI2VuZGlmIC8vIEVOQUJMRShXRUJQUk9DRVNT
X1dJTkRPV1NFUlZFUl9CTE9DS0lORykKLQogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAogI2lm
IEVOQUJMRShQREZLSVRfUExVR0lOKSAmJiAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQXBwbGVXaW4uY21ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybUFwcGxlV2luLmNtYWtlCmluZGV4IGE3ODhlNjlkZTc0NDFjOTQwODRmNzAz
NmEzZThmNDlhZDQ1MWE1OGQuLjM4YTJiNzc2ODk1NTk4YTRmNGUzNmFkZTdjNjAzYjA0MDc4ZGRj
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQXBwbGVXaW4uY21ha2UKKysr
IGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1BcHBsZVdpbi5jbWFrZQpAQCAtMzAsNiArMzAsOCBA
QCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL1dlYkNvcmVBVkNGUmVzb3VyY2VMb2FkZXIu
Y3BwCiAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3
R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAKKwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9G
b250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAogCiAgICAgcGxhdGZvcm0vbmV0d29yay9jZi9BdXRo
ZW50aWNhdGlvbkNGLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5D
YWlyby5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UKaW5kZXgg
YTY4OTY0NzdkZTBjZjUwMzRmM2ZkMDlmM2YwYzc2YTdkYTZlYzhhMS4uMDc3OGY3NTU2NmM2NDYz
MDIwYTBlMDdjNTJhNjVjMWE0NzRmNjI4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1XaW5DYWlyby5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbkNhaXJv
LmNtYWtlCkBAIC0yMiw2ICsyMiw4IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Q
bGF0Zm9ybURpc3BsYXkuY3BwCiAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHAKKwogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8uY3BwCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFDYWlyb1dpbi5jcHAKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy93aW4vR2x5cGhQYWdlVHJlZU5vZGVDYWlyb1dpbi5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
Q29jb2EudHh0CmluZGV4IGViNGUxN2YyZTczNmVhODY4MWM1NmQyMDI1MTQ5MjZiOGRjOTk0NTAu
LjJhZDMzYTk1NTE5MmQ5MDc2ZWIzZDhjMTYyY2ZlMzg2MjJkZmIxOGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNl
c0NvY29hLnR4dApAQCAtMzc5LDYgKzM3OSw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdl
VHJhbnNmZXJTZXNzaW9uVlQubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29u
Zm9ybWVyQ1YuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5j
cHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GaWx0ZXJFZmZlY3RSZW5kZXJlckNvcmVJ
bWFnZS5tbQorcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0ds
eXBoc1JlY29yZGVyQ29yZVRleHQuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGlsaW5nRGF0
YS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBBbGxvY2F0b3JN
ZXRhbC5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cExheW91dE1l
dGFsLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggNmRlOTVhN2EyNjk4ODNkNTJjNmI5NzhmN2JhNWM0ZDFiZDEwZTAwYy4uYzVm
MTc1MjlkZTk5MWNlNjU4MjBiYWFjYzUzNWJjMmViZTNiMTY5NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjIwLDYgKzYyMCw3
IEBACiAJCTFDQUYzNDgxMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUYzNDdFMEE2QzQw
NTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQ0FGMzQ4MjBBNkM0MDUyMDBBQkUwNkUgLyogV2Vi
U2NyaXB0T2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUNBRjM0N0YwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdC5tbSAqLzsg
fTsKIAkJMUNBRjM0ODMwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdFByaXZhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUYzNDgw
MEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3RQcml2YXRlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMUNBRjU2REIyNTMwMUFDODAw
MTdCNDcyIC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FGNTZEODI1MzAxNDU3MDAxN0I0NzIg
LyogRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQ0NEODE1MDIyMzFGODNFMDA2NUZDMkIgLyog
V2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE1MjU1MTQxNkZEMjM0RjAw
M0Q3QURCIC8qIFdlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5t
bSAqLzsgfTsKIAkJMUNDREY1QkUxOTkwMzMyNDAwQkNFQkFEIC8qIFNWR1RvT1RGRm9udENvbnZl
cnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFD
Q0RGNUJDMTk5MDMzMjQwMEJDRUJBRCAvKiBTVkdUb09URkZvbnRDb252ZXJzaW9uLmggKi87IH07
CiAJCTFDRkFFMzIzMEE2RDZBM0YwMDMyNTkzRCAvKiBsaWJvYmpjLmR5bGliIGluIEZyYW1ld29y
a3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNGQUUzMjIwQTZENkEzRjAw
MzI1OTNEIC8qIGxpYm9iamMuZHlsaWIgKi87IH07CkBAIC02NzM1LDYgKzY3MzYsOCBAQAogCQkx
Q0FGMzQ3RTBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNjcmlwdE9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQ0FGMzQ3RjBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViU2NyaXB0T2Jq
ZWN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FGMzQ4MDBBNkM0MDUyMDBB
QkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJTY3JpcHRPYmplY3RQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTFDQUY1NkQ4MjUzMDE0NTcwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlw
aHNSZWNvcmRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0FGNTZERTI1MzAyNDVBMDAxN0I0
NzIgLyogRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNCNUZFODgyMkRFQkM4QjAwOTQ0MEUyIC8qIFdI
TFNMRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xFcnJvci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQ0I2OUIzMjIxREVENDBCMDA2RTg0NkEgLyogV0hMU0xSZXNvbHZhYmxl
VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTFJlc29sdmFibGVUeXBlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFDQjY5QjM0MjFERUQ2M0EwMDZFODQ2QSAvKiBXSExTTEZsb2F0
TGl0ZXJhbFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xGbG9hdExpdGVyYWxUeXBlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzYwNyw2ICsxNzYxMCw4IEBACiAJCQljaGls
ZHJlbiA9ICgKIAkJCQkwRkU1RkJDQTFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3QuY3Bw
ICovLAogCQkJCTBGRTVGQkNCMUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdC5oICovLAor
CQkJCTFDQUY1NkQ4MjUzMDE0NTcwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNv
cmRlci5oICovLAorCQkJCTFDQUY1NkRFMjUzMDI0NUEwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERy
YXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcCAqLywKIAkJCQk1NUMwQTI5NTIzRkUyQ0UwMDBG
MkNCOTMgLyogRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5jcHAgKi8sCiAJCQkJNzJFQTA5Rjky
M0ZDQ0M2QTAwODUwNEE1IC8qIERpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaCAqLywKIAkJCQk3
MkVBMDlGNzIzRkNDQjNEMDA4NTA0QTUgLyogRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oICovLApA
QCAtMzE0MjksNiArMzE0MzQsNyBAQAogCQkJCTdFREFBRkM5MTlBMkNDREMwMDM0REZEMSAvKiBE
aXNrQ2FjaGVNb25pdG9yQ29jb2EuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNzkwRjQyMjUxN0NF
NkUwMDlCQTAzNCAvKiBEaXNwbGF5TGF5ZXJDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkU1RkJEMzFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3QuaCBpbiBIZWFkZXJzICov
LAorCQkJCTFDQUY1NkRCMjUzMDFBQzgwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNS
ZWNvcmRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTVBRDA5NDAyNDA4OTY0MDAwREU0RDJGIC8q
IERpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1QUQwOTNF
MjQwODk2MzUwMERFNEQyRiAvKiBEaXNwbGF5TGlzdEltYWdlQnVmZmVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkU1RkJENTFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3RJdGVtcy5oIGlu
IEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GcmVlVHlw
ZS5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyZWVUeXBlLmNtYWtlCmluZGV4IDdj
MDRkOTNhNWI4NWM3MzI1ODFjOTVhMDY1YmUwNWI2MzY3YzdhZTQuLmYzOGI1NGUxN2M5MzE1NjUx
NTRjYWI5NTNhODFlMGU5NmY1NzQ5YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0ZyZWVUeXBlLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyZWVUeXBl
LmNtYWtlCkBAIC01LDYgKzUsOCBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1BSSVZBVEVfSU5DTFVE
RV9ESVJFQ1RPUklFUwogKQogCiBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJI
YXJmQnV6ei5jcHAKKwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZy
ZWVUeXBlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGFGcmVlVHlwZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250
UGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5jcHAKaW5kZXggMmFk
MzFhYzU3ZDVmMWJkZTc5NDE5YzVmOTE1Njk3YjM3NTQ0YmI0OC4uNWIyMGQ4OTJlZDhiYmNmNjAx
ODE2YTYzNjc2YTAwZjFmYTVjMTdiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5kLmNwcApAQCAtNjEs
NiArNjEsNyBAQCBSZXRhaW5QdHI8Q0dDb2xvclNwYWNlUmVmPiBJbWFnZUJ1ZmZlckNHQmFja2Vu
ZDo6Y29udGV4dENvbG9yU3BhY2UoY29uc3QgR3JhcGhpYwogCiB2b2lkIEltYWdlQnVmZmVyQ0dC
YWNrZW5kOjpzZXR1cENvbnRleHQoKQogeworICAgIC8vIFRoZSBpbml0aWFsIENUTSBtYXRjaGVz
IERpc3BsYXlMaXN0OjpSZWNvcmRlcjo6Y2xpcFRvRHJhd2luZ0NvbW1hbmRzKCkncyBpbml0aWFs
IENUTS4KICAgICBjb250ZXh0KCkuc2NhbGUoRmxvYXRTaXplKDEsIC0xKSk7CiAgICAgY29udGV4
dCgpLnRyYW5zbGF0ZSgwLCAtbV9iYWNrZW5kU2l6ZS5oZWlnaHQoKSk7CiAgICAgY29udGV4dCgp
LmFwcGx5RGV2aWNlU2NhbGVGYWN0b3IobV9yZXNvbHV0aW9uU2NhbGUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udENhc2NhZGVDb3Jl
VGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250
Q2FzY2FkZUNvcmVUZXh0LmNwcAppbmRleCA0YThlNGUwZWExOTQxNDQzNjI1MGE0YmU4YWE0NWNi
NzFkYjIxNmZiLi5kZDdhZDkxYmNmYmQzMjE4NzFjMjFiZGEzMjM1MjI1YTRiZGY5M2E1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250Q2Fz
Y2FkZUNvcmVUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b3JldGV4dC9Gb250Q2FzY2FkZUNvcmVUZXh0LmNwcApAQCAtNDEsNiArNDEsNTAgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiByb3RhdGVM
ZWZ0VHJhbnNmb3JtKCkKK3sKKyAgICBzdGF0aWMgQWZmaW5lVHJhbnNmb3JtIHJlc3VsdCgwLCAt
MSwgMSwgMCwgMCwgMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworQWZmaW5lVHJhbnNmb3Jt
IGNvbXB1dGVPdmVyYWxsVGV4dE1hdHJpeChjb25zdCBGb250JiBmb250KQoreworICAgIGF1dG8m
IHBsYXRmb3JtRGF0YSA9IGZvbnQucGxhdGZvcm1EYXRhKCk7CisgICAgQWZmaW5lVHJhbnNmb3Jt
IHJlc3VsdDsKKyAgICBpZiAoIXBsYXRmb3JtRGF0YS5pc0NvbG9yQml0bWFwRm9udCgpKQorICAg
ICAgICByZXN1bHQgPSBDVEZvbnRHZXRNYXRyaXgocGxhdGZvcm1EYXRhLmZvbnQoKSk7CisgICAg
cmVzdWx0LnNldEIoLXJlc3VsdC5iKCkpOworICAgIHJlc3VsdC5zZXREKC1yZXN1bHQuZCgpKTsK
KyAgICBpZiAocGxhdGZvcm1EYXRhLnN5bnRoZXRpY09ibGlxdWUoKSkgeworICAgICAgICBmbG9h
dCBvYmxpcXVlU2tldyA9IHRhbmYoZGVnMnJhZChGb250Q2FzY2FkZTo6c3ludGhldGljT2JsaXF1
ZUFuZ2xlKCkpKTsKKyAgICAgICAgaWYgKHBsYXRmb3JtRGF0YS5vcmllbnRhdGlvbigpID09IEZv
bnRPcmllbnRhdGlvbjo6VmVydGljYWwpIHsKKyAgICAgICAgICAgIGlmIChmb250LmlzVGV4dE9y
aWVudGF0aW9uRmFsbGJhY2soKSkKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBBZmZpbmVUcmFu
c2Zvcm0oMSwgb2JsaXF1ZVNrZXcsIDAsIDEsIDAsIDApICogcmVzdWx0OworICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIHJlc3VsdCA9IEFmZmluZVRyYW5zZm9ybSgxLCAtb2JsaXF1
ZVNrZXcsIDAsIDEsIDAsIDApICogcmVzdWx0OworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
IHJlc3VsdCA9IEFmZmluZVRyYW5zZm9ybSgxLCAwLCAtb2JsaXF1ZVNrZXcsIDEsIDAsIDApICog
cmVzdWx0OworICAgIH0KKworICAgIC8vIFdlJ3JlIGVtdWxhdGluZyB0aGUgYmVoYXZpb3Igb2Yg
Q0dDb250ZXh0U2V0VGV4dFBvc2l0aW9uKCkgYnkgYWRkaW5nIGNvbnN0YW50IGFtb3VudHMgdG8g
ZWFjaCBnbHlwaCdzIHBvc2l0aW9uCisgICAgLy8gKHNlZSBmaWxsVmVjdG9yV2l0aEhvcml6b250
YWxHbHlwaFBvc2l0aW9ucygpIGFuZCBmaWxsVmVjdG9yV2l0aFZlcnRpY2FsR2x5cGhQb3NpdGlv
bnMoKSkuCisgICAgLy8gQ0dDb250ZXh0U2V0VGV4dFBvc2l0aW9uKCkgaGFzIHRoZSBzaWRlIGVm
ZmVjdCBvZiBjbG9iYmVyaW5nIHRoZSBFIGFuZCBGIGZpZWxkcyBvZiB0aGUgdGV4dCBtYXRyaXgs
CisgICAgLy8gc28gd2UgZG8gdGhhdCBleHBsaWNpdGx5IGhlcmUuCisgICAgcmVzdWx0LnNldEUo
MCk7CisgICAgcmVzdWx0LnNldEYoMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworQWZmaW5l
VHJhbnNmb3JtIGNvbXB1dGVWZXJ0aWNhbFRleHRNYXRyaXgoY29uc3QgRm9udCYgZm9udCwgY29u
c3QgQWZmaW5lVHJhbnNmb3JtJiBwcmV2aW91c1RleHRNYXRyaXgpCit7CisgICAgQVNTRVJUX1VO
VVNFRChmb250LCBmb250LnBsYXRmb3JtRGF0YSgpLm9yaWVudGF0aW9uKCkgPT0gRm9udE9yaWVu
dGF0aW9uOjpWZXJ0aWNhbCk7CisgICAgLy8gVGhlIHRyYW5zbGF0aW9uIGhlcmUgKCJlIiBhbmQg
ImYiIGZpZWxkcykgYXJlIGlycmVsZXZhbnQsIGJlY2F1c2UKKyAgICAvLyB0aGlzIG1hdHJpeCBp
cyBpbnZlcnRlZCBpbiBmaWxsVmVjdG9yV2l0aFZlcnRpY2FsR2x5cGhQb3NpdGlvbnMgdG8gcGxh
Y2UgdGhlIGdseXBocyBpbiB0aGUgQ1RNJ3MgY29vcmRpbmF0ZSBzeXN0ZW0uCisgICAgLy8gQWxs
IHdlJ3JlIHRyeWluZyB0byBkbyBoZXJlIGlzIHJvdGF0ZSB0aGUgdGV4dCBtYXRyaXggc28gZ2x5
cGhzIGFwcGVhciB2aXN1YWxseSB1cHJpZ2h0LgorICAgIC8vIFdlIGhhdmUgdG8gaW5jbHVkZSB0
aGUgcHJldmlvdXMgdGV4dCBtYXRyaXggYmVjYXVzZSBpdCBpbmNsdWRlcyB0aGluZ3MgbGlrZSBz
eW50aGV0aWMgb2JsaXF1ZS4KKyAgICByZXR1cm4gcm90YXRlTGVmdFRyYW5zZm9ybSgpICogcHJl
dmlvdXNUZXh0TWF0cml4OworfQorCiAjaWYgIVBMQVRGT1JNKFdJTikKIAogLy8gQ29uZnVzaW5n
bHksIGV2ZW4gd2hlbiBDR0ZvbnRSZW5kZXJpbmdHZXRGb250U21vb3RoaW5nRGlzYWJsZWQoKSBy
ZXR1cm5zIHRydWUsIENHQ29udGV4dFNldFNob3VsZFNtb290aEZvbnRzKCkgc3RpbGwgaW1wYWN0
cyB0ZXh0CkBAIC02MSwxNCArMTA1LDE2IEBAIGJvb2wgRm9udENhc2NhZGU6OmlzU3VicGl4ZWxB
bnRpYWxpYXNpbmdBdmFpbGFibGUoKQogI2VuZGlmCiB9CiAKLXN0YXRpYyBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mIHJvdGF0ZUxlZnRUcmFuc2Zvcm0oKQotewotICAgIHN0YXRpYyBBZmZpbmVUcmFu
c2Zvcm0gcmVzdWx0KDAsIC0xLCAxLCAwLCAwLCAwKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQot
CiB2b2lkIGZpbGxWZWN0b3JXaXRoSG9yaXpvbnRhbEdseXBoUG9zaXRpb25zKFZlY3RvcjxDR1Bv
aW50LCAyNTY+JiBwb3NpdGlvbnMsIENHQ29udGV4dFJlZiBjb250ZXh0LCBjb25zdCBDR1NpemUq
IGFkdmFuY2VzLCB1bnNpZ25lZCBjb3VudCwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQpCiB7Cisg
ICAgLy8gVGhlIGlucHV0IHBvc2l0aW9ucyBhcmUgaW4gdGhlIGNvbnRleHQncyBjb29yZGluYXRl
IHN5c3RlbSwgd2l0aG91dCB0aGUgdGV4dCBtYXRyaXguCisgICAgLy8gSG93ZXZlciwgdGhlIHBv
c2l0aW9ucyB0aGF0IENUL0NHIGFjY2VwdCBhcmUgaW4gdGhlIHRleHQgbWF0cml4J3MgY29vcmRp
bmF0ZSBzeXN0ZW0uCisgICAgLy8gQ0dDb250ZXh0R2V0VGV4dE1hdHJpeCgpIGdpdmVzIHVzIHRo
ZSBtYXRyaXggdGhhdCBtYXBzIGZyb20gdGV4dCdzIGNvb3JkaW5hdGUgc3lzdGVtIHRvIHRoZSBj
b250ZXh0J3MgKG5vbi10ZXh0KSBjb29yZGluYXRlIHN5c3RlbS4KKyAgICAvLyBXZSBuZWVkIHRv
IGZpZ3VyZSBvdXQgd2hhdCB0byBkZWxpdmVyIENULCBpbnNpZGUgdGhlIHRleHQncyBjb29yZGlu
YXRlIHN5c3RlbSwgc3VjaCB0aGF0IGl0IGVuZHMgdXAgY29pbmNpZGVudCB3aXRoIHRoZSBpbnB1
dCBpbiB0aGUgY29udGV4dCdzIGNvb3JkaW5hdGUgc3lzdGVtLgorICAgIC8vCisgICAgLy8gQ1RN
ICogdGV4dCBtYXRyaXggKiBwb3NpdGlvbnMgd2UgbmVlZCB0byBkZWxpdmVyIHRvIENUID0gQ1RN
ICogaW5wdXQgcG9zaXRpb25zCisgICAgLy8gU29sdmluZyBmb3IgdGhlIHBvc2l0aW9ucyB3ZSBu
ZWVkIHRvIGRlbGl2ZXIgdG8gQ1QsIHdlIGdldAorICAgIC8vIHBvc2l0aW9ucyB3ZSBuZWVkIHRv
IGRlbGl2ZXIgdG8gQ1QgPSBpbnZlcnNlKHRleHQgbWF0cml4KSAqIGlucHV0IHBvc2l0aW9ucwog
ICAgIENHQWZmaW5lVHJhbnNmb3JtIG1hdHJpeCA9IENHQWZmaW5lVHJhbnNmb3JtSW52ZXJ0KENH
Q29udGV4dEdldFRleHRNYXRyaXgoY29udGV4dCkpOwogICAgIHBvc2l0aW9uc1swXSA9IENHUG9p
bnRBcHBseUFmZmluZVRyYW5zZm9ybShwb2ludCwgbWF0cml4KTsKICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAxOyBpIDwgY291bnQ7ICsraSkgewpAQCAtMTM3LDQ0ICsxODMsNiBAQCBzdGF0aWMgdm9p
ZCBzZXRDR0ZvbnRSZW5kZXJpbmdNb2RlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkKICAgICBD
R0NvbnRleHRTZXRTaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHMoY2dDb250ZXh0LCBkb1N1YnBp
eGVsUXVhbnRpemF0aW9uKTsKIH0KIAotQWZmaW5lVHJhbnNmb3JtIGNvbXB1dGVPdmVyYWxsVGV4
dE1hdHJpeChjb25zdCBGb250JiBmb250KQotewotICAgIGF1dG8mIHBsYXRmb3JtRGF0YSA9IGZv
bnQucGxhdGZvcm1EYXRhKCk7Ci0gICAgQWZmaW5lVHJhbnNmb3JtIHJlc3VsdDsKLSAgICBpZiAo
IXBsYXRmb3JtRGF0YS5pc0NvbG9yQml0bWFwRm9udCgpKQotICAgICAgICByZXN1bHQgPSBDVEZv
bnRHZXRNYXRyaXgocGxhdGZvcm1EYXRhLmZvbnQoKSk7Ci0gICAgcmVzdWx0LnNldEIoLXJlc3Vs
dC5iKCkpOwotICAgIHJlc3VsdC5zZXREKC1yZXN1bHQuZCgpKTsKLSAgICBpZiAocGxhdGZvcm1E
YXRhLnN5bnRoZXRpY09ibGlxdWUoKSkgewotICAgICAgICBmbG9hdCBvYmxpcXVlU2tldyA9IHRh
bmYoZGVnMnJhZChGb250Q2FzY2FkZTo6c3ludGhldGljT2JsaXF1ZUFuZ2xlKCkpKTsKLSAgICAg
ICAgaWYgKHBsYXRmb3JtRGF0YS5vcmllbnRhdGlvbigpID09IEZvbnRPcmllbnRhdGlvbjo6VmVy
dGljYWwpIHsKLSAgICAgICAgICAgIGlmIChmb250LmlzVGV4dE9yaWVudGF0aW9uRmFsbGJhY2so
KSkKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBBZmZpbmVUcmFuc2Zvcm0oMSwgb2JsaXF1ZVNr
ZXcsIDAsIDEsIDAsIDApICogcmVzdWx0OwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgIHJlc3VsdCA9IEFmZmluZVRyYW5zZm9ybSgxLCAtb2JsaXF1ZVNrZXcsIDAsIDEsIDAsIDAp
ICogcmVzdWx0OwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHJlc3VsdCA9IEFmZmluZVRy
YW5zZm9ybSgxLCAwLCAtb2JsaXF1ZVNrZXcsIDEsIDAsIDApICogcmVzdWx0OwotICAgIH0KLQot
ICAgIC8vIFdlJ3JlIGVtdWxhdGluZyB0aGUgYmVoYXZpb3Igb2YgQ0dDb250ZXh0U2V0VGV4dFBv
c2l0aW9uKCkgYnkgYWRkaW5nIGNvbnN0YW50IGFtb3VudHMgdG8gZWFjaCBnbHlwaCdzIHBvc2l0
aW9uCi0gICAgLy8gKHNlZSBmaWxsVmVjdG9yV2l0aEhvcml6b250YWxHbHlwaFBvc2l0aW9ucygp
IGFuZCBmaWxsVmVjdG9yV2l0aFZlcnRpY2FsR2x5cGhQb3NpdGlvbnMoKSkuCi0gICAgLy8gQ0dD
b250ZXh0U2V0VGV4dFBvc2l0aW9uKCkgaGFzIHRoZSBzaWRlIGVmZmVjdCBvZiBjbG9iYmVyaW5n
IHRoZSBFIGFuZCBGIGZpZWxkcyBvZiB0aGUgdGV4dCBtYXRyaXgsCi0gICAgLy8gc28gd2UgZG8g
dGhhdCBleHBsaWNpdGx5IGhlcmUuCi0gICAgcmVzdWx0LnNldEUoMCk7Ci0gICAgcmVzdWx0LnNl
dEYoMCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotQWZmaW5lVHJhbnNmb3JtIGNvbXB1dGVW
ZXJ0aWNhbFRleHRNYXRyaXgoY29uc3QgRm9udCYgZm9udCwgY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiBwcmV2aW91c1RleHRNYXRyaXgpCi17Ci0gICAgQVNTRVJUX1VOVVNFRChmb250LCBmb250LnBs
YXRmb3JtRGF0YSgpLm9yaWVudGF0aW9uKCkgPT0gRm9udE9yaWVudGF0aW9uOjpWZXJ0aWNhbCk7
Ci0gICAgLy8gVGhlIHRyYW5zbGF0aW9uIGhlcmUgKCJlIiBhbmQgImYiIGZpZWxkcykgYXJlIGly
cmVsZXZhbnQsIGJlY2F1c2UKLSAgICAvLyB0aGlzIG1hdHJpeCBpcyBpbnZlcnRlZCBpbiBmaWxs
VmVjdG9yV2l0aFZlcnRpY2FsR2x5cGhQb3NpdGlvbnMgdG8gcGxhY2UgdGhlIGdseXBocyBpbiB0
aGUgQ1RNJ3MgY29vcmRpbmF0ZSBzeXN0ZW0uCi0gICAgLy8gQWxsIHdlJ3JlIHRyeWluZyB0byBk
byBoZXJlIGlzIHJvdGF0ZSB0aGUgdGV4dCBtYXRyaXggc28gZ2x5cGhzIGFwcGVhciB2aXN1YWxs
eSB1cHJpZ2h0LgotICAgIC8vIFdlIGhhdmUgdG8gaW5jbHVkZSB0aGUgcHJldmlvdXMgdGV4dCBt
YXRyaXggYmVjYXVzZSBpdCBpbmNsdWRlcyB0aGluZ3MgbGlrZSBzeW50aGV0aWMgb2JsaXF1ZS4K
LSAgICByZXR1cm4gcm90YXRlTGVmdFRyYW5zZm9ybSgpICogcHJldmlvdXNUZXh0TWF0cml4Owot
fQotCiB2b2lkIEZvbnRDYXNjYWRlOjpkcmF3R2x5cGhzKEdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCwgY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZmZXImIGdseXBoQnVmZmVyLCB1bnNp
Z25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmIGFuY2hvclBv
aW50LCBGb250U21vb3RoaW5nTW9kZSBzbW9vdGhpbmdNb2RlKQogewogICAgIGNvbnN0IGF1dG8m
IHBsYXRmb3JtRGF0YSA9IGZvbnQucGxhdGZvcm1EYXRhKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5
cGhzUmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmOGU1NDc5
OTVmOTkzNzM0MjAyZGExMjZhYjBmMTcxMzI5Y2NlM2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3
R2x5cGhzUmVjb3JkZXIuaApAQCAtMCwwICsxLDExNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQWZmaW5l
VHJhbnNmb3JtLmgiCisjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRlICJHcmFkaWVudC5oIgor
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIlBhdHRlcm4uaCIKKyNpbmNs
dWRlICJUZXh0RmxhZ3MuaCIKKworI2lmIFVTRShDT1JFX1RFWFQpCisjaW5jbHVkZSA8Q29yZUdy
YXBoaWNzL0NvcmVHcmFwaGljcy5oPgorI2luY2x1ZGUgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNz
U1BJLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGbG9hdFBvaW50
OworY2xhc3MgRm9udDsKK2NsYXNzIEdseXBoQnVmZmVyOworY2xhc3MgR3JhcGhpY3NDb250ZXh0
OworCituYW1lc3BhY2UgRGlzcGxheUxpc3QgeworCitjbGFzcyBSZWNvcmRlcjsKKworY2xhc3Mg
RHJhd0dseXBoc1JlY29yZGVyIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBEcmF3R2x5cGhzUmVj
b3JkZXIoUmVjb3JkZXImKTsKKworICAgIHZvaWQgZHJhd0dseXBocyhjb25zdCBGb250JiwgY29u
c3QgR2x5cGhCdWZmZXImLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0
IEZsb2F0UG9pbnQmIGFuY2hvclBvaW50LCBGb250U21vb3RoaW5nTW9kZSk7CisKKyNpZiBVU0Uo
Q09SRV9URVhUKQorICAgIHZvaWQgcmVjb3JkQmVnaW5MYXllcihDR1JlbmRlcmluZ1N0YXRlUmVm
LCBDR0dTdGF0ZVJlZiwgQ0dSZWN0KTsKKyAgICB2b2lkIHJlY29yZEVuZExheWVyKENHUmVuZGVy
aW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmKTsKKyAgICB2b2lkIHJlY29yZERyYXdHbHlwaHMoQ0dS
ZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYsIGNvbnN0IENHQWZmaW5lVHJhbnNmb3JtKiwg
Y29uc3QgQ0dHbHlwaFtdLCBjb25zdCBDR1BvaW50IHBvc2l0aW9uc1tdLCBzaXplX3QgY291bnQp
OworICAgIHZvaWQgcmVjb3JkRHJhd0ltYWdlKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRl
UmVmLCBDR1JlY3QsIENHSW1hZ2VSZWYpOworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgR3JhcGhp
Y3NDb250ZXh0IGNyZWF0ZUludGVybmFsQ29udGV4dCgpOworCisgICAgdm9pZCBwb3B1bGF0ZUlu
dGVybmFsU3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmKTsKKyAgICB2b2lkIHBvcHVs
YXRlSW50ZXJuYWxDb250ZXh0KGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJik7CisgICAgdm9p
ZCBwcmVwYXJlSW50ZXJuYWxDb250ZXh0KGNvbnN0IEZvbnQmLCBGb250U21vb3RoaW5nTW9kZSk7
CisgICAgdm9pZCBjb25jbHVkZUludGVybmFsQ29udGV4dCgpOworCisgICAgdm9pZCB1cGRhdGVG
aWxsQ29sb3IoY29uc3QgQ29sb3ImLCBHcmFkaWVudCogPSBudWxscHRyLCBQYXR0ZXJuKiA9IG51
bGxwdHIpOworICAgIHZvaWQgdXBkYXRlU3Ryb2tlQ29sb3IoY29uc3QgQ29sb3ImLCBHcmFkaWVu
dCogPSBudWxscHRyLCBQYXR0ZXJuKiA9IG51bGxwdHIpOworICAgIHZvaWQgdXBkYXRlQ1RNKGNv
bnN0IEFmZmluZVRyYW5zZm9ybSYpOworICAgIGVudW0gY2xhc3MgU2hhZG93c0lnbm9yZVRyYW5z
Zm9ybXMgeworICAgICAgICBVbnNwZWNpZmllZCwKKyAgICAgICAgWWVzLAorICAgICAgICBObwor
ICAgIH07CisgICAgdm9pZCB1cGRhdGVTaGFkb3coY29uc3QgRmxvYXRTaXplJiBzaGFkb3dPZmZz
ZXQsIGZsb2F0IHNoYWRvd0JsdXIsIGNvbnN0IENvbG9yJiBzaGFkb3dDb2xvciwgU2hhZG93c0ln
bm9yZVRyYW5zZm9ybXMpOworCisjaWYgVVNFKENPUkVfVEVYVCkKKyAgICB2b2lkIHVwZGF0ZVNo
YWRvdyhDR1N0eWxlUmVmKTsKKyNlbmRpZgorCisgICAgUmVjb3JkZXImIG1fb3duZXI7CisgICAg
R3JhcGhpY3NDb250ZXh0IG1faW50ZXJuYWxDb250ZXh0OworICAgIGNvbnN0IEZvbnQqIG1fb3Jp
Z2luYWxGb250IHsgbnVsbHB0ciB9OworICAgIEZvbnRTbW9vdGhpbmdNb2RlIG1fc21vb3RoaW5n
TW9kZSB7IEZvbnRTbW9vdGhpbmdNb2RlOjpBdXRvU21vb3RoaW5nIH07CisgICAgQWZmaW5lVHJh
bnNmb3JtIG1fb3JpZ2luYWxUZXh0TWF0cml4OworCisgICAgc3RydWN0IFN0YXRlIHsKKyAgICAg
ICAgc3RydWN0IFN0eWxlIHsKKyAgICAgICAgICAgIENvbG9yIGNvbG9yOworICAgICAgICAgICAg
UmVmUHRyPEdyYWRpZW50PiBncmFkaWVudDsKKyAgICAgICAgICAgIFJlZlB0cjxQYXR0ZXJuPiBw
YXR0ZXJuOworICAgICAgICB9OworICAgICAgICBTdHlsZSBmaWxsU3R5bGU7CisgICAgICAgIFN0
eWxlIHN0cm9rZVN0eWxlOworCisgICAgICAgIEFmZmluZVRyYW5zZm9ybSBjdG07CisKKyAgICAg
ICAgc3RydWN0IFNoYWRvd1N0YXRlIHsKKyAgICAgICAgICAgIEZsb2F0U2l6ZSBvZmZzZXQ7Cisg
ICAgICAgICAgICBmbG9hdCBibHVyIHsgMCB9OworICAgICAgICAgICAgQ29sb3IgY29sb3I7Cisg
ICAgICAgICAgICBib29sIGlnbm9yZVRyYW5zZm9ybXMgeyBmYWxzZSB9OworICAgICAgICB9Owor
ICAgICAgICBTaGFkb3dTdGF0ZSBzaGFkb3c7CisgICAgfTsKKyAgICBTdGF0ZSBtX29yaWdpbmFs
U3RhdGU7CisgICAgU3RhdGUgbV9jdXJyZW50U3RhdGU7Cit9OworCit9CisKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNv
cmVUZXh0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zY2M3OWYyNmVjODdhZDY3OGJkMjliZjRhNjI4ZTY4OTkw
OThkZTY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3Bw
CkBAIC0wLDAgKzEsMzcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0RHJhd0ds
eXBoc1JlY29yZGVyLmgiCisKKyNpbmNsdWRlICJCaXRtYXBJbWFnZS5oIgorI2luY2x1ZGUgIkNv
bG9yLmgiCisjaW5jbHVkZSAiRGlzcGxheUxpc3RJdGVtcy5oIgorI2luY2x1ZGUgIkRpc3BsYXlM
aXN0UmVjb3JkZXIuaCIKKyNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiRm9udC5o
IgorI2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgiCisjaW5jbHVkZSAiR2x5cGhCdWZmZXIuaCIKKwor
I2luY2x1ZGUgPENvcmVUZXh0L0NvcmVUZXh0Lmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgor
CisjaWYgUExBVEZPUk0oV0lOKQorI2luY2x1ZGUgPHBhbC9zcGkvd2luL0NvcmVUZXh0U1BJV2lu
Lmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCituYW1lc3BhY2UgRGlzcGxheUxp
c3QgeworCitzdGF0aWMgQ0dDb250ZXh0RGVsZWdhdGVSZWYgYmVnaW5MYXllcihDR0NvbnRleHRE
ZWxlZ2F0ZVJlZiBkZWxlZ2F0ZSwgQ0dSZW5kZXJpbmdTdGF0ZVJlZiByc3RhdGUsIENHR1N0YXRl
UmVmIGdzdGF0ZSwgQ0dSZWN0IHJlY3QsIENGRGljdGlvbmFyeVJlZiwgQ0dDb250ZXh0RGVsZWdh
dGVSZWYpCit7CisgICAgRHJhd0dseXBoc1JlY29yZGVyJiByZWNvcmRlciA9ICpzdGF0aWNfY2Fz
dDxEcmF3R2x5cGhzUmVjb3JkZXIqPihDR0NvbnRleHREZWxlZ2F0ZUdldEluZm8oZGVsZWdhdGUp
KTsKKyAgICByZWNvcmRlci5yZWNvcmRCZWdpbkxheWVyKHJzdGF0ZSwgZ3N0YXRlLCByZWN0KTsK
KyAgICByZXR1cm4gZGVsZWdhdGU7Cit9CisKK3N0YXRpYyBDR0NvbnRleHREZWxlZ2F0ZVJlZiBl
bmRMYXllcihDR0NvbnRleHREZWxlZ2F0ZVJlZiBkZWxlZ2F0ZSwgQ0dSZW5kZXJpbmdTdGF0ZVJl
ZiByc3RhdGUsIENHR1N0YXRlUmVmIGdzdGF0ZSkKK3sKKyAgICBEcmF3R2x5cGhzUmVjb3JkZXIm
IHJlY29yZGVyID0gKnN0YXRpY19jYXN0PERyYXdHbHlwaHNSZWNvcmRlcio+KENHQ29udGV4dERl
bGVnYXRlR2V0SW5mbyhkZWxlZ2F0ZSkpOworICAgIHJlY29yZGVyLnJlY29yZEVuZExheWVyKHJz
dGF0ZSwgZ3N0YXRlKTsKKyAgICByZXR1cm4gZGVsZWdhdGU7Cit9CisKK3N0YXRpYyBDR0Vycm9y
IGRyYXdHbHlwaHMoQ0dDb250ZXh0RGVsZWdhdGVSZWYgZGVsZWdhdGUsIENHUmVuZGVyaW5nU3Rh
dGVSZWYgcnN0YXRlLCBDR0dTdGF0ZVJlZiBnc3RhdGUsIGNvbnN0IENHQWZmaW5lVHJhbnNmb3Jt
KiB0bSwgY29uc3QgQ0dHbHlwaCBnbHlwaHNbXSwgY29uc3QgQ0dQb2ludCBwb3NpdGlvbnNbXSwg
c2l6ZV90IGNvdW50KQoreworICAgIGlmIChDR0dTdGF0ZUdldEFscGhhKGdzdGF0ZSkgPiAwKSB7
CisgICAgICAgIERyYXdHbHlwaHNSZWNvcmRlciYgcmVjb3JkZXIgPSAqc3RhdGljX2Nhc3Q8RHJh
d0dseXBoc1JlY29yZGVyKj4oQ0dDb250ZXh0RGVsZWdhdGVHZXRJbmZvKGRlbGVnYXRlKSk7Cisg
ICAgICAgIHJlY29yZGVyLnJlY29yZERyYXdHbHlwaHMocnN0YXRlLCBnc3RhdGUsIHRtLCBnbHlw
aHMsIHBvc2l0aW9ucywgY291bnQpOworICAgIH0KKyAgICByZXR1cm4ga0NHRXJyb3JTdWNjZXNz
OworfQorCitzdGF0aWMgQ0dFcnJvciBkcmF3SW1hZ2UoQ0dDb250ZXh0RGVsZWdhdGVSZWYgZGVs
ZWdhdGUsIENHUmVuZGVyaW5nU3RhdGVSZWYgcnN0YXRlLCBDR0dTdGF0ZVJlZiBnc3RhdGUsIENH
UmVjdCByZWN0LCBDR0ltYWdlUmVmIGltYWdlKQoreworICAgIERyYXdHbHlwaHNSZWNvcmRlciYg
cmVjb3JkZXIgPSAqc3RhdGljX2Nhc3Q8RHJhd0dseXBoc1JlY29yZGVyKj4oQ0dDb250ZXh0RGVs
ZWdhdGVHZXRJbmZvKGRlbGVnYXRlKSk7CisgICAgcmVjb3JkZXIucmVjb3JkRHJhd0ltYWdlKHJz
dGF0ZSwgZ3N0YXRlLCByZWN0LCBpbWFnZSk7CisgICAgcmV0dXJuIGtDR0Vycm9yU3VjY2VzczsK
K30KKworR3JhcGhpY3NDb250ZXh0IERyYXdHbHlwaHNSZWNvcmRlcjo6Y3JlYXRlSW50ZXJuYWxD
b250ZXh0KCkKK3sKKyAgICBhdXRvIGNvbnRleHREZWxlZ2F0ZSA9IGFkb3B0Q0YoQ0dDb250ZXh0
RGVsZWdhdGVDcmVhdGUodGhpcykpOworICAgIENHQ29udGV4dERlbGVnYXRlU2V0Q2FsbGJhY2so
Y29udGV4dERlbGVnYXRlLmdldCgpLCBkZUJlZ2luTGF5ZXIsIHJlaW50ZXJwcmV0X2Nhc3Q8Q0dD
b250ZXh0RGVsZWdhdGVDYWxsYmFjaz4oJmJlZ2luTGF5ZXIpKTsKKyAgICBDR0NvbnRleHREZWxl
Z2F0ZVNldENhbGxiYWNrKGNvbnRleHREZWxlZ2F0ZS5nZXQoKSwgZGVFbmRMYXllciwgcmVpbnRl
cnByZXRfY2FzdDxDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrPigmZW5kTGF5ZXIpKTsKKyAgICBD
R0NvbnRleHREZWxlZ2F0ZVNldENhbGxiYWNrKGNvbnRleHREZWxlZ2F0ZS5nZXQoKSwgZGVEcmF3
R2x5cGhzLCByZWludGVycHJldF9jYXN0PENHQ29udGV4dERlbGVnYXRlQ2FsbGJhY2s+KCZXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6ZHJhd0dseXBocykpOworICAgIENHQ29udGV4dERlbGVnYXRlU2V0
Q2FsbGJhY2soY29udGV4dERlbGVnYXRlLmdldCgpLCBkZURyYXdJbWFnZSwgcmVpbnRlcnByZXRf
Y2FzdDxDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNrPigmZHJhd0ltYWdlKSk7CisgICAgYXV0byBj
b250ZXh0ID0gYWRvcHRDRihDR0NvbnRleHRDcmVhdGVXaXRoRGVsZWdhdGUoY29udGV4dERlbGVn
YXRlLmdldCgpLCBrQ0dDb250ZXh0VHlwZVVua25vd24sIG51bGxwdHIsIG51bGxwdHIpKTsKKyAg
ICByZXR1cm4gR3JhcGhpY3NDb250ZXh0KGNvbnRleHQuZ2V0KCkpOworfQorCitEcmF3R2x5cGhz
UmVjb3JkZXI6OkRyYXdHbHlwaHNSZWNvcmRlcihSZWNvcmRlciYgb3duZXIpCisgICAgOiBtX293
bmVyKG93bmVyKQorICAgICwgbV9pbnRlcm5hbENvbnRleHQoY3JlYXRlSW50ZXJuYWxDb250ZXh0
KCkpCit7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpwb3B1bGF0ZUludGVybmFsU3Rh
dGUoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmIGNvbnRleHRTdGF0ZSkKK3sKKyAgICBtX29y
aWdpbmFsU3RhdGUuZmlsbFN0eWxlLmNvbG9yID0gY29udGV4dFN0YXRlLmZpbGxDb2xvcjsKKyAg
ICBtX29yaWdpbmFsU3RhdGUuZmlsbFN0eWxlLmdyYWRpZW50ID0gY29udGV4dFN0YXRlLmZpbGxH
cmFkaWVudDsKKyAgICBtX29yaWdpbmFsU3RhdGUuZmlsbFN0eWxlLnBhdHRlcm4gPSBjb250ZXh0
U3RhdGUuZmlsbFBhdHRlcm47CisKKyAgICBtX29yaWdpbmFsU3RhdGUuc3Ryb2tlU3R5bGUuY29s
b3IgPSBjb250ZXh0U3RhdGUuc3Ryb2tlQ29sb3I7CisgICAgbV9vcmlnaW5hbFN0YXRlLnN0cm9r
ZVN0eWxlLmdyYWRpZW50ID0gY29udGV4dFN0YXRlLnN0cm9rZUdyYWRpZW50OworICAgIG1fb3Jp
Z2luYWxTdGF0ZS5zdHJva2VTdHlsZS5wYXR0ZXJuID0gY29udGV4dFN0YXRlLnN0cm9rZVBhdHRl
cm47CisKKyAgICBtX29yaWdpbmFsU3RhdGUuY3RtID0gbV9vd25lci5jdXJyZW50U3RhdGUoKS5j
dG07IC8vIEZJWE1FOiBEZWFsIHdpdGggZGV2aWNlIHNjYWxlLgorCisgICAgbV9vcmlnaW5hbFN0
YXRlLnNoYWRvdy5vZmZzZXQgPSBjb250ZXh0U3RhdGUuc2hhZG93T2Zmc2V0OworICAgIG1fb3Jp
Z2luYWxTdGF0ZS5zaGFkb3cuYmx1ciA9IGNvbnRleHRTdGF0ZS5zaGFkb3dCbHVyOworICAgIG1f
b3JpZ2luYWxTdGF0ZS5zaGFkb3cuY29sb3IgPSBjb250ZXh0U3RhdGUuc2hhZG93Q29sb3I7Cisg
ICAgbV9vcmlnaW5hbFN0YXRlLnNoYWRvdy5pZ25vcmVUcmFuc2Zvcm1zID0gY29udGV4dFN0YXRl
LnNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOworCisgICAgbV9jdXJyZW50U3RhdGUgPSBtX29yaWdp
bmFsU3RhdGU7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpwb3B1bGF0ZUludGVybmFs
Q29udGV4dChjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgY29udGV4dFN0YXRlKQoreworICAg
IGlmIChtX29yaWdpbmFsU3RhdGUuZmlsbFN0eWxlLmNvbG9yLmlzVmFsaWQoKSkKKyAgICAgICAg
bV9pbnRlcm5hbENvbnRleHQuc2V0RmlsbENvbG9yKG1fb3JpZ2luYWxTdGF0ZS5maWxsU3R5bGUu
Y29sb3IpOworICAgIGVsc2UgaWYgKG1fb3JpZ2luYWxTdGF0ZS5maWxsU3R5bGUuZ3JhZGllbnQp
CisgICAgICAgIG1faW50ZXJuYWxDb250ZXh0LnNldEZpbGxHcmFkaWVudCgqbV9vcmlnaW5hbFN0
YXRlLmZpbGxTdHlsZS5ncmFkaWVudCk7CisgICAgZWxzZSB7CisgICAgICAgIEFTU0VSVChtX29y
aWdpbmFsU3RhdGUuZmlsbFN0eWxlLnBhdHRlcm4pOworICAgICAgICBpZiAobV9vcmlnaW5hbFN0
YXRlLmZpbGxTdHlsZS5wYXR0ZXJuKQorICAgICAgICAgICAgbV9pbnRlcm5hbENvbnRleHQuc2V0
RmlsbFBhdHRlcm4oKm1fb3JpZ2luYWxTdGF0ZS5maWxsU3R5bGUucGF0dGVybik7CisgICAgfQor
CisgICAgaWYgKG1fb3JpZ2luYWxTdGF0ZS5zdHJva2VTdHlsZS5jb2xvci5pc1ZhbGlkKCkpCisg
ICAgICAgIG1faW50ZXJuYWxDb250ZXh0LnNldFN0cm9rZUNvbG9yKG1fb3JpZ2luYWxTdGF0ZS5z
dHJva2VTdHlsZS5jb2xvcik7CisgICAgZWxzZSBpZiAobV9vcmlnaW5hbFN0YXRlLnN0cm9rZVN0
eWxlLmdyYWRpZW50KQorICAgICAgICBtX2ludGVybmFsQ29udGV4dC5zZXRTdHJva2VHcmFkaWVu
dCgqbV9vcmlnaW5hbFN0YXRlLnN0cm9rZVN0eWxlLmdyYWRpZW50KTsKKyAgICBlbHNlIHsKKyAg
ICAgICAgQVNTRVJUKG1fb3JpZ2luYWxTdGF0ZS5zdHJva2VTdHlsZS5wYXR0ZXJuKTsKKyAgICAg
ICAgaWYgKG1fb3JpZ2luYWxTdGF0ZS5zdHJva2VTdHlsZS5wYXR0ZXJuKQorICAgICAgICAgICAg
bV9pbnRlcm5hbENvbnRleHQuc2V0U3Ryb2tlUGF0dGVybigqbV9vcmlnaW5hbFN0YXRlLnN0cm9r
ZVN0eWxlLnBhdHRlcm4pOworICAgIH0KKworICAgIG1faW50ZXJuYWxDb250ZXh0LnNldENUTSht
X29yaWdpbmFsU3RhdGUuY3RtKTsKKworICAgIG1faW50ZXJuYWxDb250ZXh0LnNldFNoYWRvd3NJ
Z25vcmVUcmFuc2Zvcm1zKG1fb3JpZ2luYWxTdGF0ZS5zaGFkb3cuaWdub3JlVHJhbnNmb3Jtcyk7
CisgICAgaWYgKGNvbnRleHRTdGF0ZS5zaGFkb3dzVXNlTGVnYWN5UmFkaXVzKQorICAgICAgICBt
X2ludGVybmFsQ29udGV4dC5zZXRMZWdhY3lTaGFkb3cobV9vcmlnaW5hbFN0YXRlLnNoYWRvdy5v
ZmZzZXQsIG1fb3JpZ2luYWxTdGF0ZS5zaGFkb3cuYmx1ciwgbV9vcmlnaW5hbFN0YXRlLnNoYWRv
dy5jb2xvcik7CisgICAgZWxzZQorICAgICAgICBtX2ludGVybmFsQ29udGV4dC5zZXRTaGFkb3co
bV9vcmlnaW5hbFN0YXRlLnNoYWRvdy5vZmZzZXQsIG1fb3JpZ2luYWxTdGF0ZS5zaGFkb3cuYmx1
ciwgbV9vcmlnaW5hbFN0YXRlLnNoYWRvdy5jb2xvcik7CisKKyAgICBtX2ludGVybmFsQ29udGV4
dC5zZXRUZXh0RHJhd2luZ01vZGUoY29udGV4dFN0YXRlLnRleHREcmF3aW5nTW9kZSk7Cit9CisK
K3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpwcmVwYXJlSW50ZXJuYWxDb250ZXh0KGNvbnN0IEZv
bnQmIGZvbnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCit7CisgICAgQVNTRVJU
KENHQWZmaW5lVHJhbnNmb3JtSXNJZGVudGl0eShDVEZvbnRHZXRNYXRyaXgoZm9udC5wbGF0Zm9y
bURhdGEoKS5jdEZvbnQoKSkpKTsKKworICAgIG1fb3JpZ2luYWxGb250ID0gJmZvbnQ7CisgICAg
bV9zbW9vdGhpbmdNb2RlID0gc21vb3RoaW5nTW9kZTsKKworICAgIG1fb3JpZ2luYWxUZXh0TWF0
cml4ID0gY29tcHV0ZU92ZXJhbGxUZXh0TWF0cml4KGZvbnQpOworICAgIGlmIChmb250LnBsYXRm
b3JtRGF0YSgpLm9yaWVudGF0aW9uKCkgPT0gRm9udE9yaWVudGF0aW9uOjpWZXJ0aWNhbCkKKyAg
ICAgICAgbV9vcmlnaW5hbFRleHRNYXRyaXggPSBjb21wdXRlVmVydGljYWxUZXh0TWF0cml4KGZv
bnQsIG1fb3JpZ2luYWxUZXh0TWF0cml4KTsKKworICAgIGF1dG8mIGNvbnRleHRTdGF0ZSA9IG1f
b3duZXIuY3VycmVudFN0YXRlKCkuc3RhdGVDaGFuZ2UubV9zdGF0ZTsKKyAgICBwb3B1bGF0ZUlu
dGVybmFsU3RhdGUoY29udGV4dFN0YXRlKTsKKyAgICBwb3B1bGF0ZUludGVybmFsQ29udGV4dChj
b250ZXh0U3RhdGUpOworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6Y29uY2x1ZGVJbnRl
cm5hbENvbnRleHQoKQoreworICAgIHVwZGF0ZUNUTShtX29yaWdpbmFsU3RhdGUuY3RtKTsKKyAg
ICB1cGRhdGVGaWxsQ29sb3IobV9vcmlnaW5hbFN0YXRlLmZpbGxTdHlsZS5jb2xvciwgbV9vcmln
aW5hbFN0YXRlLmZpbGxTdHlsZS5ncmFkaWVudC5nZXQoKSwgbV9vcmlnaW5hbFN0YXRlLmZpbGxT
dHlsZS5wYXR0ZXJuLmdldCgpKTsKKyAgICB1cGRhdGVTdHJva2VDb2xvcihtX29yaWdpbmFsU3Rh
dGUuc3Ryb2tlU3R5bGUuY29sb3IsIG1fb3JpZ2luYWxTdGF0ZS5zdHJva2VTdHlsZS5ncmFkaWVu
dC5nZXQoKSwgbV9vcmlnaW5hbFN0YXRlLnN0cm9rZVN0eWxlLnBhdHRlcm4uZ2V0KCkpOworICAg
IHVwZGF0ZVNoYWRvdyhtX29yaWdpbmFsU3RhdGUuc2hhZG93Lm9mZnNldCwgbV9vcmlnaW5hbFN0
YXRlLnNoYWRvdy5ibHVyLCBtX29yaWdpbmFsU3RhdGUuc2hhZG93LmNvbG9yLCBtX29yaWdpbmFs
U3RhdGUuc2hhZG93Lmlnbm9yZVRyYW5zZm9ybXMgPyBTaGFkb3dzSWdub3JlVHJhbnNmb3Jtczo6
WWVzIDogU2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6Ok5vKTsKK30KKwordm9pZCBEcmF3R2x5cGhz
UmVjb3JkZXI6OnVwZGF0ZUZpbGxDb2xvcihjb25zdCBDb2xvciYgbmV3Q29sb3IsIEdyYWRpZW50
KiBuZXdHcmFkaWVudCwgUGF0dGVybiogbmV3UGF0dGVybikKK3sKKyAgICAvLyBUaGlzIGNoZWNr
IGxvb2tzIHdyb25nIGJ1dCBpdCBhY3R1YWxseSBpc24ndCwgZm9yIG91ciBsaW1pdGVkIHVzZS4K
KyAgICAvLyBDVCB3aWxsIG9ubHkgZXZlciBzZXQgdGhpcyB0byBhIHNvbGlkIGNvbG9yLCB3aGlj
aCB0aGlzIGlzIHRoZSBjb3JyZWN0IGNoZWNrIGZvci4KKyAgICAvLyBJbiBjb25jbHVkZUludGVy
bmFsQ29udGV4dCgpIHdlIHNldCBpdCBiYWNrIHRvIHdoYXQgaXQgd2FzIG9yaWdpbmFsbHksIHdo
aWNoIHRoaXMgY2hlY2sgd29ya3MgY29ycmVjdGx5IGZvciB0b28uCisgICAgaWYgKG5ld0NvbG9y
ID09IG1fY3VycmVudFN0YXRlLmZpbGxTdHlsZS5jb2xvcikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgR3JhcGhpY3NDb250ZXh0U3RhdGUgbmV3U3RhdGU7CisgICAgbmV3U3RhdGUuZmlsbENvbG9y
ID0gbmV3Q29sb3I7CisgICAgaWYgKG5ld0dyYWRpZW50KQorICAgICAgICBuZXdTdGF0ZS5maWxs
R3JhZGllbnQgPSBuZXdHcmFkaWVudDsKKyAgICBpZiAobmV3UGF0dGVybikKKyAgICAgICAgbmV3
U3RhdGUuZmlsbFBhdHRlcm4gPSBuZXdQYXR0ZXJuOworICAgIG1fb3duZXIudXBkYXRlU3RhdGUo
bmV3U3RhdGUsIHsgR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxDb2xvckNoYW5nZSB9KTsKKyAg
ICBtX2N1cnJlbnRTdGF0ZS5maWxsU3R5bGUuY29sb3IgPSBuZXdDb2xvcjsKK30KKwordm9pZCBE
cmF3R2x5cGhzUmVjb3JkZXI6OnVwZGF0ZVN0cm9rZUNvbG9yKGNvbnN0IENvbG9yJiBuZXdDb2xv
ciwgR3JhZGllbnQqIG5ld0dyYWRpZW50LCBQYXR0ZXJuKiBuZXdQYXR0ZXJuKQoreworICAgIC8v
IFRoaXMgY2hlY2sgbG9va3Mgd3JvbmcgYnV0IGl0IGFjdHVhbGx5IGlzbid0LCBmb3Igb3VyIGxp
bWl0ZWQgdXNlLgorICAgIC8vIENUIHdpbGwgb25seSBldmVyIHNldCB0aGlzIHRvIGEgc29saWQg
Y29sb3IsIHdoaWNoIHRoaXMgaXMgdGhlIGNvcnJlY3QgY2hlY2sgZm9yLgorICAgIC8vIEluIGNv
bmNsdWRlSW50ZXJuYWxDb250ZXh0KCkgd2Ugc2V0IGl0IGJhY2sgdG8gd2hhdCBpdCB3YXMgb3Jp
Z2luYWxseSwgd2hpY2ggdGhpcyBjaGVjayB3b3JrcyBjb3JyZWN0bHkgZm9yIHRvby4KKyAgICBp
ZiAobmV3Q29sb3IgPT0gbV9jdXJyZW50U3RhdGUuc3Ryb2tlU3R5bGUuY29sb3IpCisgICAgICAg
IHJldHVybjsKKworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlIG5ld1N0YXRlOworICAgIG5ld1N0
YXRlLnN0cm9rZUNvbG9yID0gbmV3Q29sb3I7CisgICAgaWYgKG5ld0dyYWRpZW50KQorICAgICAg
ICBuZXdTdGF0ZS5zdHJva2VHcmFkaWVudCA9IG5ld0dyYWRpZW50OworICAgIGlmIChuZXdQYXR0
ZXJuKQorICAgICAgICBuZXdTdGF0ZS5zdHJva2VQYXR0ZXJuID0gbmV3UGF0dGVybjsKKyAgICBt
X293bmVyLnVwZGF0ZVN0YXRlKG5ld1N0YXRlLCB7IEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJv
a2VDb2xvckNoYW5nZSB9KTsKKyAgICBtX2N1cnJlbnRTdGF0ZS5zdHJva2VTdHlsZS5jb2xvciA9
IG5ld0NvbG9yOworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6dXBkYXRlQ1RNKGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYgY3RtKQoreworICAgIGlmIChjdG0gPT0gbV9jdXJyZW50U3RhdGUu
Y3RtKQorICAgICAgICByZXR1cm47CisKKyAgICBtX293bmVyLnNldENUTShjdG0pOworICAgIG1f
Y3VycmVudFN0YXRlLmN0bSA9IGN0bTsKK30KKworc3RhdGljIGJvb2wgc2hhZG93SXNDbGVhcmVk
KGNvbnN0IEZsb2F0U2l6ZSYgc2hhZG93T2Zmc2V0LCBmbG9hdCBzaGFkb3dCbHVyKQoreworICAg
IHJldHVybiBzaGFkb3dPZmZzZXQgPT0gRmxvYXRTaXplKCkgJiYgIXNoYWRvd0JsdXI7Cit9CisK
K3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVTaGFkb3coY29uc3QgRmxvYXRTaXplJiBz
aGFkb3dPZmZzZXQsIGZsb2F0IHNoYWRvd0JsdXIsIGNvbnN0IENvbG9yJiBzaGFkb3dDb2xvciwg
U2hhZG93c0lnbm9yZVRyYW5zZm9ybXMgc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMpCit7CisgICAg
Ly8gV2UgZG9uJ3QgbmVlZCB0byBjb25zaWRlciBzaGFkb3dzSWdub3JlVHJhbnNmb3JtcyBpZiBu
b2JvZHkgaGFzIGFueSBzaGFkb3dzLgorICAgIGlmIChzaGFkb3dJc0NsZWFyZWQoc2hhZG93T2Zm
c2V0LCBzaGFkb3dCbHVyKSAmJiBzaGFkb3dJc0NsZWFyZWQobV9jdXJyZW50U3RhdGUuc2hhZG93
Lm9mZnNldCwgbV9jdXJyZW50U3RhdGUuc2hhZG93LmJsdXIpKQorICAgICAgICByZXR1cm47CisK
KyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZSBuZXdTdGF0ZTsKKyAgICBHcmFwaGljc0NvbnRleHRT
dGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBzdGF0ZUNoYW5nZUZsYWdzOworCisgICAgaWYgKHNoYWRv
d09mZnNldCAhPSBtX2N1cnJlbnRTdGF0ZS5zaGFkb3cub2Zmc2V0IHx8IHNoYWRvd0JsdXIgIT0g
bV9jdXJyZW50U3RhdGUuc2hhZG93LmJsdXIgfHwgc2hhZG93Q29sb3IgIT0gbV9jdXJyZW50U3Rh
dGUuc2hhZG93LmNvbG9yKSB7CisgICAgICAgIG5ld1N0YXRlLnNoYWRvd09mZnNldCA9IHNoYWRv
d09mZnNldDsKKyAgICAgICAgbmV3U3RhdGUuc2hhZG93Qmx1ciA9IHNoYWRvd0JsdXI7CisgICAg
ICAgIG5ld1N0YXRlLnNoYWRvd0NvbG9yID0gc2hhZG93Q29sb3I7CisgICAgICAgIHN0YXRlQ2hh
bmdlRmxhZ3MuYWRkKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaGFkb3dDaGFuZ2UpOworICAgIH0K
KyAgICBpZiAoc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMgIT0gU2hhZG93c0lnbm9yZVRyYW5zZm9y
bXM6OlVuc3BlY2lmaWVkICYmIChzaGFkb3dzSWdub3JlVHJhbnNmb3JtcyA9PSBTaGFkb3dzSWdu
b3JlVHJhbnNmb3Jtczo6WWVzKSAhPSBtX2N1cnJlbnRTdGF0ZS5zaGFkb3cuaWdub3JlVHJhbnNm
b3JtcykgeworICAgICAgICBuZXdTdGF0ZS5zaGFkb3dzSWdub3JlVHJhbnNmb3JtcyA9IChzaGFk
b3dzSWdub3JlVHJhbnNmb3JtcyA9PSBTaGFkb3dzSWdub3JlVHJhbnNmb3Jtczo6WWVzKTsKKyAg
ICAgICAgc3RhdGVDaGFuZ2VGbGFncy5hZGQoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNoYWRvd3NJ
Z25vcmVUcmFuc2Zvcm1zQ2hhbmdlKTsKKyAgICB9CisgICAgaWYgKHN0YXRlQ2hhbmdlRmxhZ3Mu
aXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisgICAgbV9vd25lci51cGRhdGVTdGF0ZShuZXdT
dGF0ZSwgc3RhdGVDaGFuZ2VGbGFncyk7CisKKyAgICBtX2N1cnJlbnRTdGF0ZS5zaGFkb3cub2Zm
c2V0ID0gc2hhZG93T2Zmc2V0OworICAgIG1fY3VycmVudFN0YXRlLnNoYWRvdy5ibHVyID0gc2hh
ZG93Qmx1cjsKKyAgICBtX2N1cnJlbnRTdGF0ZS5zaGFkb3cuY29sb3IgPSBzaGFkb3dDb2xvcjsK
KyAgICBtX2N1cnJlbnRTdGF0ZS5zaGFkb3cuaWdub3JlVHJhbnNmb3JtcyA9IChzaGFkb3dzSWdu
b3JlVHJhbnNmb3JtcyA9PSBTaGFkb3dzSWdub3JlVHJhbnNmb3Jtczo6WWVzKTsKK30KKwordm9p
ZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnVwZGF0ZVNoYWRvdyhDR1N0eWxlUmVmIHN0eWxlKQorewor
ICAgIGlmIChDR1N0eWxlR2V0VHlwZShzdHlsZSkgIT0ga0NHU3R5bGVTaGFkb3cpIHsKKyAgICAg
ICAgLy8gRklYTUU6IFN1cHBvcnQgbW9yZSBraW5kcyBvZiBDR1N0eWxlcy4KKyAgICAgICAgdXBk
YXRlU2hhZG93KHswLCAwfSwgMCwgQ29sb3IoKSwgU2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6OlVu
c3BlY2lmaWVkKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnN0IGF1dG8mIHNo
YWRvd1N0eWxlID0gKnN0YXRpY19jYXN0PGNvbnN0IENHU2hhZG93U3R5bGUqPihDR1N0eWxlR2V0
RGF0YShzdHlsZSkpOworICAgIGF1dG8gcmFkID0gZGVnMnJhZChzaGFkb3dTdHlsZS5hemltdXRo
IC0gMTgwKTsKKyAgICBhdXRvIHNoYWRvd09mZnNldCA9IEZsb2F0U2l6ZShzdGQ6OmNvcyhyYWQp
LCBzdGQ6OnNpbihyYWQpKSAqIHNoYWRvd1N0eWxlLmhlaWdodDsKKyAgICB1cGRhdGVTaGFkb3co
c2hhZG93T2Zmc2V0LCBzaGFkb3dTdHlsZS5yYWRpdXMsIENHU3R5bGVHZXRDb2xvcihzdHlsZSks
IFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOjpZZXMpOworfQorCit2b2lkIERyYXdHbHlwaHNSZWNv
cmRlcjo6cmVjb3JkQmVnaW5MYXllcihDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiBn
c3RhdGUsIENHUmVjdCkKK3sKKyAgICB1cGRhdGVDVE0oKkNHR1N0YXRlR2V0Q1RNKGdzdGF0ZSkp
OworICAgIGF1dG8gYWxwaGEgPSBDR0dTdGF0ZUdldEFscGhhKGdzdGF0ZSk7CisgICAgbV9vd25l
ci5iZWdpblRyYW5zcGFyZW5jeUxheWVyKGFscGhhKTsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVj
b3JkZXI6OnJlY29yZEVuZExheWVyKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmIGdz
dGF0ZSkKK3sKKyAgICB1cGRhdGVDVE0oKkNHR1N0YXRlR2V0Q1RNKGdzdGF0ZSkpOworICAgIG1f
b3duZXIuZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKK30KKworc3RhdGljIFZlY3RvcjxDR1NpemU+
IGNvbXB1dGVBZHZhbmNlc0Zyb21Qb3NpdGlvbnMoY29uc3QgQ0dQb2ludCBwb3NpdGlvbnNbXSwg
c2l6ZV90IGNvdW50LCBjb25zdCBDR0FmZmluZVRyYW5zZm9ybSYgdGV4dE1hdHJpeCkKK3sKKyAg
ICBWZWN0b3I8Q0dTaXplPiByZXN1bHQ7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3Vu
dCAtIDE7ICsraSkgeworICAgICAgICBhdXRvIG5leHRQb3NpdGlvbiA9IHBvc2l0aW9uc1tpICsg
MV07CisgICAgICAgIGF1dG8gY3VycmVudFBvc2l0aW9uID0gcG9zaXRpb25zW2ldOworICAgICAg
ICBhdXRvIGFkdmFuY2UgPSBDR1NpemVNYWtlKG5leHRQb3NpdGlvbi54IC0gY3VycmVudFBvc2l0
aW9uLngsIG5leHRQb3NpdGlvbi55IC0gY3VycmVudFBvc2l0aW9uLnkpOworICAgICAgICByZXN1
bHQuYXBwZW5kKENHU2l6ZUFwcGx5QWZmaW5lVHJhbnNmb3JtKGFkdmFuY2UsIHRleHRNYXRyaXgp
KTsKKyAgICB9CisgICAgcmVzdWx0LmNvbnN0cnVjdEFuZEFwcGVuZChDR1NpemVNYWtlKDAsIDAp
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6cmVj
b3JkRHJhd0dseXBocyhDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiBnc3RhdGUsIGNv
bnN0IENHQWZmaW5lVHJhbnNmb3JtKiwgY29uc3QgQ0dHbHlwaCBnbHlwaHNbXSwgY29uc3QgQ0dQ
b2ludCBwb3NpdGlvbnNbXSwgc2l6ZV90IGNvdW50KQoreworICAgIGlmICghY291bnQpCisgICAg
ICAgIHJldHVybjsKKworICAgIENHRm9udFJlZiB1c2VkRm9udCA9IENHR1N0YXRlR2V0Rm9udChn
c3RhdGUpOworICAgIGlmICh1c2VkRm9udCAhPSBhZG9wdENGKENURm9udENvcHlHcmFwaGljc0Zv
bnQobV9vcmlnaW5hbEZvbnQtPnBsYXRmb3JtRGF0YSgpLmN0Rm9udCgpLCBudWxscHRyKSkuZ2V0
KCkpCisgICAgICAgIHJldHVybjsKKworI2lmIEFTU0VSVF9FTkFCTEVECisgICAgYXV0byB0ZXh0
UG9zaXRpb24gPSBDR0NvbnRleHRHZXRUZXh0UG9zaXRpb24obV9pbnRlcm5hbENvbnRleHQucGxh
dGZvcm1Db250ZXh0KCkpOworICAgIEFTU0VSVCghdGV4dFBvc2l0aW9uLngpOworICAgIEFTU0VS
VCghdGV4dFBvc2l0aW9uLnkpOworI2VuZGlmCisKKyAgICB1cGRhdGVDVE0oKkNHR1N0YXRlR2V0
Q1RNKGdzdGF0ZSkpOworCisgICAgLy8gV2Ugd2FudCB0aGUgR1BVIHByb2Nlc3MncyBDVE0gYW5k
IHRleHQgbWF0cml4IHRvIG1hdGNoIHRoZSBjdXJyZW50IENUTSBhbmQgdGV4dCBtYXRyaXguCisg
ICAgLy8gVGhlIGN1cnJlbnQgdGV4dCBtYXRyaXggaXMgYSBjb25jYXRlbmF0aW9uIG9mIHdoYXRl
dmVyIFdlYktpdCBzZXRzIGl0IHRvIGFuZCB3aGF0ZXZlcgorICAgIC8vIENvcmUgVGV4dCBhcHBl
bmRzIHRvIGl0LiBTbywgcmlnaHQgbm93IHdlIGhhdmUKKyAgICAvLyBDVE0gKiBtX29yaWdpbmFs
VGV4dE1hdHJpeCAqIENvcmUgVGV4dCdzIHRleHQgbWF0cml4LgorICAgIC8vIEhvd2V2ZXIsIENH
Q29udGV4dEdldFRleHRNYXRyaXgoKSBqdXN0IHRlbGxzIHVzIHdoYXQgdGhlIHdob2xlIHRleHQg
bWF0cml4IGlzLCBzbworICAgIC8vIG1fb3JpZ2luYWxUZXh0TWF0cml4ICogQ29yZSBUZXh0J3Mg
dGV4dCBtYXRyaXggPSBjdXJyZW50VGV4dE1hdHJpeC4KKyAgICAvLyBUaGUgb25seSB3YXkgd2Ug
Y2FuIGVtdWxhdGUgQ29yZSBUZXh0J3MgdGV4dCBtYXRyaXggaXMgYnkgbW9kaWZ5aW5nIHRoZSBD
VE0gaGVyZS4KKyAgICAvLyBTbywgaWYgd2UgZG8gdGhhdCwgdGhlIEdQVSBwcm9jZXNzIHdpbGwg
aGF2ZQorICAgIC8vIENUTSAqIFggKiBtX29yaWdpbmFsVGV4dE1hdHJpeAorICAgIC8vIElmIHlv
dSBzZXQgdGhlc2UgdHdvIGVxdWFsIHRvIGVhY2ggb3RoZXIsIGFuZCBzb2x2ZSBmb3IgWCwgeW91
IGdldAorICAgIC8vIENUTSAqIGN1cnJlbnRUZXh0TWF0cml4ID0gQ1RNICogWCAqIG1fb3JpZ2lu
YWxUZXh0TWF0cml4CisgICAgLy8gY3VycmVudFRleHRNYXRyaXggKiBpbnZlcnNlKG1fb3JpZ2lu
YWxUZXh0TWF0cml4KSA9IFgKKyAgICBBZmZpbmVUcmFuc2Zvcm0gY3VycmVudFRleHRNYXRyaXgg
PSBDR0NvbnRleHRHZXRUZXh0TWF0cml4KG1faW50ZXJuYWxDb250ZXh0LnBsYXRmb3JtQ29udGV4
dCgpKTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gY3RtRml4dXA7CisgICAgaWYgKGF1dG8gaW52ZXJ0
ZWRPcmlnaW5hbFRleHRNYXRyaXggPSBtX29yaWdpbmFsVGV4dE1hdHJpeC5pbnZlcnNlKCkpCisg
ICAgICAgIGN0bUZpeHVwID0gY3VycmVudFRleHRNYXRyaXggKiBpbnZlcnRlZE9yaWdpbmFsVGV4
dE1hdHJpeC52YWx1ZSgpOworICAgIEFmZmluZVRyYW5zZm9ybSBpbnZlcnNlQ1RNRml4dXA7Cisg
ICAgaWYgKGF1dG8gaW52ZXJzZSA9IGN0bUZpeHVwLmludmVyc2UoKSkKKyAgICAgICAgaW52ZXJz
ZUNUTUZpeHVwID0gaW52ZXJzZS52YWx1ZSgpOworICAgIGVsc2UKKyAgICAgICAgY3RtRml4dXAg
PSBBZmZpbmVUcmFuc2Zvcm0oKTsKKyAgICBtX293bmVyLmNvbmNhdENUTShjdG1GaXh1cCk7CisK
KyAgICB1cGRhdGVGaWxsQ29sb3IoQ0dHU3RhdGVHZXRGaWxsQ29sb3IoZ3N0YXRlKSk7CisgICAg
dXBkYXRlU3Ryb2tlQ29sb3IoQ0dHU3RhdGVHZXRTdHJva2VDb2xvcihnc3RhdGUpKTsKKyAgICB1
cGRhdGVTaGFkb3coQ0dHU3RhdGVHZXRTdHlsZShnc3RhdGUpKTsKKworICAgIG1fb3duZXIuYXBw
ZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChEcmF3R2x5cGhzOjpjcmVhdGUoKm1fb3JpZ2luYWxGb250
LCBnbHlwaHMsIGNvbXB1dGVBZHZhbmNlc0Zyb21Qb3NpdGlvbnMocG9zaXRpb25zLCBjb3VudCwg
Y3VycmVudFRleHRNYXRyaXgpLmRhdGEoKSwgY291bnQsIGN1cnJlbnRUZXh0TWF0cml4Lm1hcFBv
aW50KHBvc2l0aW9uc1swXSksIG1fc21vb3RoaW5nTW9kZSkpOworCisgICAgbV9vd25lci5jb25j
YXRDVE0oaW52ZXJzZUNUTUZpeHVwKTsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnJl
Y29yZERyYXdJbWFnZShDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiBnc3RhdGUsIENH
UmVjdCByZWN0LCBDR0ltYWdlUmVmIGNnSW1hZ2UpCit7CisgICAgdXBkYXRlQ1RNKCpDR0dTdGF0
ZUdldENUTShnc3RhdGUpKTsKKyAgICB1cGRhdGVTaGFkb3coQ0dHU3RhdGVHZXRTdHlsZShnc3Rh
dGUpKTsKKworICAgIC8vIENvcmUgR3JhcGhpY3MgYXNzdW1lcyBhICJ5IHVwIiBjb29yZGluYXRl
IHN5c3RlbSwgYnV0IGluIFdlYktpdCwgd2UgdXNlIGEgInktZG93biIgY29vcmRpbmF0ZSBzeXN0
ZW0uCisgICAgLy8gVGhpcyBtZWFucyB0aGF0IFdlYktpdCdzIGRyYXdpbmcgcm91dGluZXMgKEdy
YXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKCkpIGludGVudGlvbmFsbHkgZHJhdyBpbWFnZXMgdXBz
aWRlLWRvd24gZnJvbSBDb3JlIEdyYXBoaWNzJ3MgcG9pbnQgb2Ygdmlldy4KKyAgICAvLyAoVGhl
cmUncyBhIHktZmxpcCBpbnNpZGUgdGhlIGltcGxlbWVudGF0aW9uIG9mIEdyYXBoaWNzQ29udGV4
dDo6ZHJhd0ltYWdlKCkuKQorICAgIC8vIFRoZSByZWN0IGhhcyB0aGUgcmlnaHQgYm91bmRzLCBi
dXQgd2UgbmVlZCB0byB0cmFuc2Zvcm0gZnJvbSBDRydzIGNvb3JkaW5hdGUgc3lzdGVtIHRvIFdl
YktpdCdzIGJ5IHBlcmZvcm1pbmcgb3VyIG93biB5LWZsaXAgc28gaW1hZ2VzIGFyZSBkcmF3biB0
aGUgcmlnaHQtc2lkZS11cC4KKyAgICAvLyBXZSBkbyB0aGlzIGF0IHRoZSBib3VuZGFyeSBiZXR3
ZWVuIHRoZSB0d28gQVBJcywgd2hpY2ggaXMgcmlnaHQgaGVyZS4KKyAgICBtX293bmVyLnRyYW5z
bGF0ZSgwLCByZWN0LnNpemUuaGVpZ2h0ICsgMiAqIHJlY3Qub3JpZ2luLnkpOworICAgIG1fb3du
ZXIuc2NhbGUoRmxvYXRTaXplKDEsIC0xKSk7CisKKyAgICBhdXRvIGltYWdlID0gQml0bWFwSW1h
Z2U6OmNyZWF0ZShjZ0ltYWdlKTsKKyAgICBtX293bmVyLmFwcGVuZEl0ZW1BbmRVcGRhdGVFeHRl
bnQoRHJhd0ltYWdlOjpjcmVhdGUoaW1hZ2UsIHJlY3QsIHt7IH0sIGltYWdlLT5zaXplKCl9LCB7
IEltYWdlT3JpZW50YXRpb246Ok9yaWdpblRvcExlZnQgfSkpOworCisgICAgLy8gVW5kbyB0aGUg
YWJvdmUgeS1mbGlwIHRvIHJlc3RvcmUgdGhlIGNvbnRleHQuCisgICAgbV9vd25lci5zY2FsZShG
bG9hdFNpemUoMSwgLTEpKTsKKyAgICBtX293bmVyLnRyYW5zbGF0ZSgwLCAtKHJlY3Quc2l6ZS5o
ZWlnaHQgKyAyICogcmVjdC5vcmlnaW4ueSkpOworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRl
cjo6ZHJhd0dseXBocyhjb25zdCBGb250JiBmb250LCBjb25zdCBHbHlwaEJ1ZmZlciYgZ2x5cGhC
dWZmZXIsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIG51bUdseXBocywgY29uc3QgRmxvYXRQb2lu
dCYgc3RhcnRQb2ludCwgRm9udFNtb290aGluZ01vZGUgc21vb3RoaW5nTW9kZSkKK3sKKyAgICBw
cmVwYXJlSW50ZXJuYWxDb250ZXh0KGZvbnQsIHNtb290aGluZ01vZGUpOworICAgIEZvbnRDYXNj
YWRlOjpkcmF3R2x5cGhzKG1faW50ZXJuYWxDb250ZXh0LCBmb250LCBnbHlwaEJ1ZmZlciwgZnJv
bSwgbnVtR2x5cGhzLCBzdGFydFBvaW50LCBzbW9vdGhpbmdNb2RlKTsKKyAgICBjb25jbHVkZUlu
dGVybmFsQ29udGV4dCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBEaXNwbGF5TGlzdAorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6
ei5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjNhYzMy
NGI3YjAwYTllMTZhNTZhZDY3MGNlMDRjZmE3N2ZjOWZhOAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERy
YXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkRpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmgiCisKKyNpbmNsdWRlICJE
aXNwbGF5TGlzdEl0ZW1zLmgiCisjaW5jbHVkZSAiRGlzcGxheUxpc3RSZWNvcmRlci5oIgorI2lu
Y2x1ZGUgIkZsb2F0UG9pbnQuaCIKKyNpbmNsdWRlICJGb250LmgiCisjaW5jbHVkZSAiR2x5cGhC
dWZmZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCituYW1lc3BhY2UgRGlzcGxheUxpc3Qg
eworCitEcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdHbHlwaHNSZWNvcmRlcihSZWNvcmRlciYgb3du
ZXIpCisgICAgOiBtX293bmVyKG93bmVyKQoreworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRl
cjo6ZHJhd0dseXBocyhjb25zdCBGb250JiBmb250LCBjb25zdCBHbHlwaEJ1ZmZlciYgZ2x5cGhC
dWZmZXIsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIG51bUdseXBocywgY29uc3QgRmxvYXRQb2lu
dCYgc3RhcnRQb2ludCwgRm9udFNtb290aGluZ01vZGUgc21vb3RoaW5nTW9kZSkKK3sKKyAgICBt
X293bmVyLmFwcGVuZEl0ZW1BbmRVcGRhdGVFeHRlbnQoRHJhd0dseXBoczo6Y3JlYXRlKGZvbnQs
IGdseXBoQnVmZmVyLmdseXBocyhmcm9tKSwgZ2x5cGhCdWZmZXIuYWR2YW5jZXMoZnJvbSksIG51
bUdseXBocywgc3RhcnRQb2ludCwgc21vb3RoaW5nTW9kZSkpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBEaXNwbGF5TGlzdAorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNv
cmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RSZWNvcmRlci5jcHAKaW5kZXggOGQxYjY0N2JkZDlmMTY5ZWZlZmI1NDI1NDQx
NzQ2MjFmMDZjYjZlNS4uZDE0MmMzNzc5Y2I5OTNlNzM3MmJiOGI4ODg3ZmNjNGM3NTJmZTk4OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcApAQCAtNDIsNiArNDIs
NyBAQCBSZWNvcmRlcjo6UmVjb3JkZXIoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBEaXNwbGF5
TGlzdCYgZGlzcGxheUxpc3QsIGNvbnN0IEdyYQogICAgIDogR3JhcGhpY3NDb250ZXh0SW1wbChj
b250ZXh0LCBpbml0aWFsQ2xpcCwgQWZmaW5lVHJhbnNmb3JtKCkpCiAgICAgLCBtX2Rpc3BsYXlM
aXN0KGRpc3BsYXlMaXN0KQogICAgICwgbV9kZWxlZ2F0ZShkZWxlZ2F0ZSkKKyAgICAsIG1fZHJh
d0dseXBoc1JlY29yZGVyKCp0aGlzKQogewogICAgIExPR19XSVRIX1NUUkVBTShEaXNwbGF5TGlz
dHMsIHN0cmVhbSA8PCAiXG5SZWNvcmRpbmcgd2l0aCBjbGlwICIgPDwgaW5pdGlhbENsaXApOwog
ICAgIG1fc3RhdGVTdGFjay5hcHBlbmQoeyBzdGF0ZSwgaW5pdGlhbENUTSwgaW5pdGlhbENsaXAg
fSk7CkBAIC0xNjMsNyArMTY0LDcgQEAgdm9pZCBSZWNvcmRlcjo6c2V0TWl0ZXJMaW1pdChmbG9h
dCBtaXRlckxpbWl0KQogCiB2b2lkIFJlY29yZGVyOjpkcmF3R2x5cGhzKGNvbnN0IEZvbnQmIGZv
bnQsIGNvbnN0IEdseXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgdW5zaWduZWQgZnJvbSwgdW5zaWdu
ZWQgbnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBzdGFydFBvaW50LCBGb250U21vb3RoaW5n
TW9kZSBzbW9vdGhpbmdNb2RlKQogewotICAgIGFwcGVuZEl0ZW1BbmRVcGRhdGVFeHRlbnQoRHJh
d0dseXBoczo6Y3JlYXRlKGZvbnQsIGdseXBoQnVmZmVyLmdseXBocyhmcm9tKSwgZ2x5cGhCdWZm
ZXIuYWR2YW5jZXMoZnJvbSksIG51bUdseXBocywgc3RhcnRQb2ludCwgc21vb3RoaW5nTW9kZSkp
OworICAgIG1fZHJhd0dseXBoc1JlY29yZGVyLmRyYXdHbHlwaHMoZm9udCwgZ2x5cGhCdWZmZXIs
IGZyb20sIG51bUdseXBocywgc3RhcnRQb2ludCwgc21vb3RoaW5nTW9kZSk7CiB9CiAKIEltYWdl
RHJhd1Jlc3VsdCBSZWNvcmRlcjo6ZHJhd0ltYWdlKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRS
ZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFp
bnRpbmdPcHRpb25zJiBpbWFnZVBhaW50aW5nT3B0aW9ucykKQEAgLTI0Myw2ICsyNDQsOSBAQCB2
b2lkIFJlY29yZGVyOjpzY2FsZShjb25zdCBGbG9hdFNpemUmIHNpemUpCiAKIHZvaWQgUmVjb3Jk
ZXI6OmNvbmNhdENUTShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSkKIHsKKyAgICBp
ZiAodHJhbnNmb3JtLmlzSWRlbnRpdHkoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgY3VycmVu
dFN0YXRlKCkuY29uY2F0Q1RNKHRyYW5zZm9ybSk7CiAgICAgYXBwZW5kSXRlbShDb25jYXRlbmF0
ZUNUTTo6Y3JlYXRlKHRyYW5zZm9ybSkpOwogfQpAQCAtNDI4LDcgKzQzMiwxNyBAQCB2b2lkIFJl
Y29yZGVyOjpjbGlwVG9JbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYp
CiAKIHZvaWQgUmVjb3JkZXI6OmNsaXBUb0RyYXdpbmdDb21tYW5kcyhjb25zdCBGbG9hdFJlY3Qm
IGRlc3RpbmF0aW9uLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIEZ1bmN0aW9uPHZvaWQoR3JhcGhp
Y3NDb250ZXh0Jik+JiYgZHJhd2luZ0Z1bmN0aW9uKQogewotICAgIGF1dG8gcmVjb3JkaW5nQ29u
dGV4dCA9IG1ha2VVbmlxdWU8RHJhd2luZ0NvbnRleHQ+KGRlc3RpbmF0aW9uLnNpemUoKSk7Cisg
ICAgLy8gVGhlIGluaXRpYWwgQ1RNIG1hdGNoZXMgSW1hZ2VCdWZmZXIncyBpbml0aWFsIENUTS4K
KyAgICBBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtID0gZ2V0Q1RNKEdyYXBoaWNzQ29udGV4dDo6
RGVmaW5pdGVseUluY2x1ZGVEZXZpY2VTY2FsZSk7CisgICAgRmxvYXRTaXplIHNjYWxlRmFjdG9y
KHRyYW5zZm9ybS54U2NhbGUoKSwgdHJhbnNmb3JtLnlTY2FsZSgpKTsKKyAgICBhdXRvIHNjYWxl
ZFNpemUgPSBleHBhbmRlZEludFNpemUoZGVzdGluYXRpb24uc2l6ZSgpICogc2NhbGVGYWN0b3Ip
OworCisgICAgQWZmaW5lVHJhbnNmb3JtIGluaXRpYWxDVE07CisgICAgaW5pdGlhbENUTS5zY2Fs
ZSgxLCAtMSk7CisgICAgaW5pdGlhbENUTS50cmFuc2xhdGUoMCwgLXNjYWxlZFNpemUuaGVpZ2h0
KCkpOworICAgIGluaXRpYWxDVE0uc2NhbGUoc2NhbGVkU2l6ZSAvIGRlc3RpbmF0aW9uLnNpemUo
KSk7CisKKyAgICBhdXRvIHJlY29yZGluZ0NvbnRleHQgPSBtYWtlVW5pcXVlPERyYXdpbmdDb250
ZXh0PihkZXN0aW5hdGlvbi5zaXplKCksIGluaXRpYWxDVE0pOwogICAgIGRyYXdpbmdGdW5jdGlv
bihyZWNvcmRpbmdDb250ZXh0LT5jb250ZXh0KCkpOwogICAgIGFwcGVuZEl0ZW0oQ2xpcFRvRHJh
d2luZ0NvbW1hbmRzOjpjcmVhdGUoZGVzdGluYXRpb24sIGNvbG9yU3BhY2UsIHJlY29yZGluZ0Nv
bnRleHQtPnRha2VEaXNwbGF5TGlzdCgpKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
UmVjb3JkZXIuaAppbmRleCA1YjhhNDRjNTE4MGMxZmVhZTA4NWMwMWE4OGQwODU0ZDY5NWY5NWE5
Li4zMWM4Yzg5NjM3OGMwY2FmYmIyMTEyODk1OTdjZWUyOGI0ZmE3NWQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RS
ZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSAiRGlzcGxheUxpc3QuaCIKKyNpbmNsdWRlICJEaXNwbGF5TGlzdERyYXdH
bHlwaHNSZWNvcmRlci5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEltcGwuaCIKICNpbmNs
dWRlICJJbWFnZS5oIiAvLyBGb3IgSW1hZ2U6OlRpbGVSdWxlLgogI2luY2x1ZGUgIlRleHRGbGFn
cy5oIgpAQCAtNjEsOCArNjIsNiBAQCBwdWJsaWM6CiAKICAgICBzaXplX3QgaXRlbUNvdW50KCkg
Y29uc3QgeyByZXR1cm4gbV9kaXNwbGF5TGlzdC5pdGVtQ291bnQoKTsgfQogCi0gICAgdm9pZCBh
cHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KFJlZjxEcmF3aW5nSXRlbT4mJik7Ci0KICAgICBjbGFz
cyBEZWxlZ2F0ZSB7CiAgICAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIH5EZWxlZ2F0ZSgpIHsg
fQpAQCAtNzIsNiArNzEsNyBAQCBwdWJsaWM6CiAgICAgfTsKIAogcHJpdmF0ZToKKyAgICBmcmll
bmQgY2xhc3MgRHJhd0dseXBoc1JlY29yZGVyOwogICAgIGJvb2wgaGFzUGxhdGZvcm1Db250ZXh0
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICBQbGF0Zm9ybUdyYXBoaWNz
Q29udGV4dCogcGxhdGZvcm1Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0
cjsgfQogCkBAIC0xNTEsNiArMTUxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFwcGVuZEl0ZW0o
UmVmPEl0ZW0+JiYpOwogICAgIHZvaWQgd2lsbEFwcGVuZEl0ZW0oY29uc3QgSXRlbSYpOwogICAg
IHZvaWQgZGlkQXBwZW5kSXRlbShjb25zdCBJdGVtJik7CisgICAgdm9pZCBhcHBlbmRJdGVtQW5k
VXBkYXRlRXh0ZW50KFJlZjxEcmF3aW5nSXRlbT4mJik7CiAKICAgICB2b2lkIGFwcGVuZFN0YXRl
Q2hhbmdlSXRlbShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSYsIEdyYXBoaWNzQ29u
dGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzKTsKIApAQCAtMTk1LDYgKzE5Niw4IEBAIHByaXZh
dGU6CiAgICAgRGVsZWdhdGUqIG1fZGVsZWdhdGU7CiAKICAgICBWZWN0b3I8Q29udGV4dFN0YXRl
LCAzMj4gbV9zdGF0ZVN0YWNrOworCisgICAgRHJhd0dseXBoc1JlY29yZGVyIG1fZHJhd0dseXBo
c1JlY29yZGVyOwogfTsKIAogfQo=
</data>
<flag name="review"
          id="429252"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="429269"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412778</attachid>
            <date>2020-10-30 11:24:18 -0700</date>
            <delta_ts>2020-10-30 12:53:39 -0700</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-217506-20201030112417.patch</filename>
            <type>text/plain</type>
            <size>57372</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI2OWI0YzJlYzgyOTE2
NzA1NGU2ZmMzMWVlN2I1NDU5ZDQ3NDRhMi4uZTQ5NGRkODk3NGZmZTM0ZDE1Y2JjYjdiZWJkZTk2
YjE5NjgwZmNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwNCBAQAorMjAyMC0xMC0yOSAgTXls
ZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0g
W0dQVSBQcm9jZXNzXSBQZXJmb3JtIGltYWdlIGRlY29kaW5nIG9mIGNvbG9yIGZvbnRzIGluIHRo
ZSBXZWIgUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE3NTA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAg
ICAgIENvcmUgVGV4dCBpdHNlbGYgZG9lc24ndCBrbm93IGhvdyB0byBkcmF3IHRoaW5nczsgaXQg
aGFzIHRvIHJlbHkgb24gQ29yZSBHcmFwaGljcyB0byBkbyB0aGF0LgorICAgICAgICBIb3dldmVy
LCBDb3JlIEdyYXBoaWNzIG9ubHkgdW5kZXJzdGFuZHMgdGhlIHNpbXBsZXN0IG9mIHRleHQgZHJh
d2luZyBjb25jZXB0czsgaXQgZG9lc24ndCB1bmRlcnN0YW5kCisgICAgICAgIHRoaW5ncyBsaWtl
IGNvbG9yIGZvbnRzIG9yIGVtb2ppLiBDb3JlIFRleHQgc2l0cyBiZXR3ZWVuIHRoZSBhcHBsaWNh
dGlvbiBhbmQgQ29yZSBHcmFwaGljcywgYW5kIGlzCisgICAgICAgIHJlc3BvbnNpYmxlIGZvciBz
cGxpdHRpbmcgdXAgYW4gYXJiaXRyYXJ5IGRyYXcgY29tbWFuZCBpbnRvIGluZGl2aWR1YWwgc2lt
cGxlIHBpZWNlcyB3aGljaCBDb3JlCisgICAgICAgIEdyYXBoaWNzIGNhbiB1bmRlcnN0YW5kLiBG
b3IgZXhhbXBsZSwgd2hlbiB5b3UgYXNrIENvcmUgVGV4dCB0byBkcmF3IGEgc3RyaW5nIHdoaWNo
IGlzIG9mIHRoZSBmb3JtCisgICAgICAgICJvdXRsaW5lcyBlbW9qaSBvdXRsaW5lcyIsIENvcmUg
VGV4dCB3aWxsIGVuZCB1cCB0ZWxsaW5nIENvcmUgR3JhcGhpY3MgdG8gZHJhdyB0aGUgZmlyc3Qg
b3V0bGluZXMsIHRoZW4KKyAgICAgICAgZHJhdyB0aGUgZW1vamkgaW1hZ2UgKHVzaW5nIENvcmUg
R3JhcGhpY3MncyBub3JtYWwgaW1hZ2UgZHJhd2luZyByb3V0aW5lcyksIHRoZW4gZHJhdyB0aGUg
cmVtYWluaW5nCisgICAgICAgIG91dGxpbmVzLgorCisgICAgICAgIFRoaXMgaXMgZXhhY3RseSB0
aGUgc2FtZSBraW5kIG9mIGZpbHRlcmluZyB3ZSB3YW50IHRvIGRvIGZvciB0aGUgR1BVIFByb2Nl
c3MuIFdlIHdhbnQgdG8gYmUgYWJsZSB0bworICAgICAgICBzZXBhcmF0ZSBvdXQgdGhlIGdseXBo
cyB3aGljaCBhcmUgcmVuZGVyZWQgdXNpbmcgb3V0bGluZXMgZnJvbSB0aGUgZW1vamkgZ2x5cGhz
IHdoaWNoIGFyZSByZW5kZXJlZAorICAgICAgICB1c2luZyBpbWFnZXMuIFdlIHdhbnQgdG8gaGFu
ZGxlIHRoZSBpbWFnZSBnbHlwaHMgb3Vyc2VsZiBpbiBXZWJLaXQgdXNpbmcgb3VyIG93biBpbWFn
ZSBkcmF3aW5nIGRpc3BsYXkKKyAgICAgICAgbGlzdCBmYWNpbGl0aWVzLCB3aGljaCB3aWxsIGNh
dXNlIGltYWdlcyB0byBiZSBkZWNvZGVkIGluIHRoZSBXZWIgUHJvY2VzcywgdGhlcmVieSBpbmNy
ZWFzaW5nIHRoZQorICAgICAgICBzZWN1cml0eSBvZiB0aGUgR1BVIFByb2Nlc3MuCisKKyAgICAg
ICAgU28sIHRoaXMgcGF0Y2ggaW1wbGVtZW50cyBhIGN1c3RvbSBDR0NvbnRleHQsIGJhY2tlZCBi
eSBhIGZ1bmN0aW9uIHRhYmxlIHRoYXQgaXMgcG9wdWxhdGVkIGluIFdlYktpdC4KKyAgICAgICAg
V2UgcGFzcyB0aGlzIGN1c3RvbSBDR0NvbnRleHQgaW50byBDb3JlIFRleHQsIHdoaWNoIGRvZXMg
aXRzIG5vcm1hbCBzcGxpdHRpbmcgdXAgb2Ygb3V0bGluZXMgLyBpbWFnZXMsCisgICAgICAgIGFu
ZCBjYWxscyBnbHlwaCAvIGltYWdlIGRyYXdpbmcgZnVuY3Rpb25zIG9uIG91ciBDR0NvbnRleHQu
IEJlY2F1c2UgdGhlc2UgZnVuY3Rpb25zIGFyZSBpbXBsZW1lbnRlZCBieQorICAgICAgICBXZWJL
aXQsIHRoaXMgZWZmZWN0aXZlbHkgbWFrZXMgV2ViS2l0IGFibGUgdG8gaW50ZXJjZXB0IHRoZSBk
cmF3aW5nIGNhbGxzLCBhbmQgaW1wbGVtZW50IHRoZW0gb3Vyc2VsZgorICAgICAgICBieSBhcHBl
bmRpbmcgaXRlbXMgdG8gdGhlIGN1cnJlbnQgZGlzcGxheSBsaXN0LiBTbywgd2hlbiBDb3JlIFRl
eHQgdGVsbHMgb3VyIENHQ29udGV4dCB0byBkcmF3IGFuIGVtb2ppLAorICAgICAgICBvdXIgY2Fs
bGJhY2sgcnVucyBhbmQgd2UgImp1c3QiIGFwcGVuZCBhIERyYXdJbWFnZSBkaXNwbGF5IGxpc3Qg
aXRlbS4KKworICAgICAgICBJIHVzZSBzY2FyZS1xdW90ZXMgYXJvdW5kICJqdXN0IiBiZWNhdXNl
IGl0IGlzIGEgYml0IG1vcmUgY29tcGxpY2F0ZWQgdGhhbiB0aGF0LiBDb3JlIFRleHQgaW50ZXJu
YWxseQorICAgICAgICBjYW4gY2hhbmdlIHRoZSBmaWxsL3N0cm9rZSBjb2xvciAoZm9yIENPTFIg
Z2x5cGhzKSwgdGhlIHRleHQgbWF0cml4IChpdCBzaG91bGQgYmUgdXBkYXRlZCBiZXR3ZWVuCisg
ICAgICAgIGFkamFjZW50IHJ1bnMpLCB0aGUgQ1RNLCBhbmQgdGhlIHNoYWRvdyBzdGF0ZSAoYmVj
YXVzZSBDb3JlIFRleHQgc29tZXRpbWVzIHdpbGwgaW1wbGVtZW50IHNoYWRvd3MgaXRzZWxmCisg
ICAgICAgIGJ5IGp1c3QgZHJhd2luZyB0aGUgdGV4dCB0d28gdGltZXMpLiBTbywgaW4gb3VyIENH
Q29udGV4dCBjYWxsYmFjaywgd2UgaGF2ZSB0byBsb29rIGF0IHRoZSBzdGF0ZSBvZgorICAgICAg
ICB0aGUgQ0dDb250ZXh0LCBmaWd1cmUgb3V0IGlmIGFueXRoaW5nIGNoYW5nZWQgKGJlY2F1c2Ug
d2UncmUgbm90IG5vdGlmaWVkIHdoZW4gY2hhbmdlcyBoYXBwZW4pLCBhbmQKKyAgICAgICAgaWYg
dGhpbmdzIGRpZCBjaGFuZ2UsIGFwcGVuZCBhZGRpdGlvbmFsIGRpc3BsYXkgbGlzdCBpdGVtcyB0
byBtYWtlIGEgcGFyYWxsZWwgY2hhbmdlIGhhcHBlbiBhdCBkcmF3CisgICAgICAgIHRpbWUuCisK
KyAgICAgICAgVGVzdHMgYWRkZWQgaW4gaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvcjI2OTE3Nwor
CisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybUFwcGxlV2luLmNt
YWtlOgorICAgICAgICAqIFBsYXRmb3JtV2luQ2Fpcm8uY21ha2U6CisgICAgICAgICogU291cmNl
c0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogcGxhdGZvcm0vRnJlZVR5cGUuY21ha2U6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW1hZ2VCdWZmZXJDR0JhY2tlbmQ6OnNldHVwQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY29yZXRleHQvRm9udENhc2NhZGVDb3JlVGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpmaWxsVmVjdG9yV2l0aEhvcml6b250YWxHbHlwaFBvc2l0aW9ucyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29y
ZGVyLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6YmVnaW5MYXllcik6IFZUYWJsZSBjYWxsYmFjayBmb3Ig
Y3JlYXRpbmcgYSB0cmFuc3BhcmVuY3kgbGF5ZXIuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6ZW5kTGF5ZXIpOiBEaXR0byBmb3IgZW5kaW5nIGEgdHJhbnNwYXJlbmN5IGxheWVyLgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmRyYXdHbHlwaHMpOiBWVGFibGUgY2FsbGJh
Y2sgZm9yIGRyYXdpbmcgb3V0bGluZSBnbHlwaHMuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6ZHJhd0ltYWdlKTogVlRhYmxlIGNhbGxiYWNrIGZvciBkcmF3aW5nIGFuIGltYWdlLgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6Y3JlYXRl
SW50ZXJuYWxDb250ZXh0KTogU2V0IHVwIHRoZSBjdXN0b20gQ0dDb250ZXh0CisgICAgICAgIGlu
ZnJhc3RydWN0dXJlLiBIb29rIHVwIHRoZSBWVGFibGUgY2FsbGJhY2tzLgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6RHJhd0dseXBoc1JlY29yZGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnBv
cHVsYXRlSW50ZXJuYWxTdGF0ZSk6IFdlIG5lZWQgdG8gc2F2ZSB0aGUgR3JhcGhpY3NDb250ZXh0
CisgICAgICAgIHN0YXRlIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGVudHJ5IHBvaW50LCBzbyB3
ZSBjYW4gcmVzdG9yZSBhbnl0aGluZyB0aGF0IGNoYW5nZWQgd2hlbiB3ZSdyZSBkb25lLgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6cG9wdWxhdGVJ
bnRlcm5hbENvbnRleHQpOiBCZWNhdXNlIENvcmUgVGV4dCBpbnRlcm5hbGx5CisgICAgICAgIGlu
dGVycm9nYXRlcyB0aGUgQ0dDb250ZXh0IHRvIHNlZSBpZiBpdCBuZWVkcyB0byBkbyB0aGluZ3Mg
bGlrZSBkcmF3IHNoYWRvd3MgaXRzZWxmLCB3ZSBuZWVkIHRvIG1ha2UKKyAgICAgICAgc3VyZSB0
aGF0IHRoZSByZWNvcmRlcidzIHN0YXRlIGlzIG1pcnJvcmVkIGluIG91ciBjdXN0b20gQ0dDb250
ZXh0LiBUaGlzIGFwcGxpZXMgYWxsIHRoZSByZWxldmFudAorICAgICAgICBzdGF0ZSB0byBvdXIg
Q0dDb250ZXh0IHNvIGl0J3MgcmVhZHkgd2hlbiBDb3JlIFRleHQgYXNrcyBmb3IgaXQuCisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpwcmVwYXJlSW50
ZXJuYWxDb250ZXh0KTogQ2FsbCB0aGUgYWJvdmUgdHdvIGZ1bmN0aW9ucy4KKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OmNvbmNsdWRlSW50ZXJuYWxD
b250ZXh0KTogQ2FsbGVkIG9uY2Ugd2hlbiB3ZSdyZSBkb25lLgorICAgICAgICBUaGlzIGZ1bmN0
aW9uIGNsZWFucyB1cCwgYnkgcG9zc2libHkgYXBwZW5kaW5nIGFkZGl0aW9uYWwgZGlzcGxheSBs
aXN0IGl0ZW1zIHRvIHJlc3RvcmUgdGhlIHN0YXRlCisgICAgICAgIGJhY2sgdG8gd2hhdCBpdCB3
YXMgd2hlbiB3ZSBzdGFydGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdH
bHlwaHNSZWNvcmRlcjo6dXBkYXRlRmlsbENvbG9yKTogRGV0ZWN0IGEgY2hhbmdlZCBmaWxsIGNv
bG9yLCBhbmQgaWYgaXQgaGFzCisgICAgICAgIGNoYW5nZWQsIGFwcGVuZCBhIGRpc3BsYXkgbGlz
dCBpdGVtIHRvIG1ha2UgYSBwYXJhbGxlbCBjaGFuZ2UgYXQgZHJhd2luZyB0aW1lLgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6dXBkYXRlU3Ryb2tl
Q29sb3IpOiBEaXR0byBmb3IgdGhlIHN0cm9rZSBjb2xvci4KKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnVwZGF0ZUNUTSk6IERpdHRvIGZvciB0aGUg
Q1RNLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OnNoYWRvd0lzQ2xlYXJlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVT
aGFkb3cpOiBEaXR0byBmb3IgdGhlIHNoYWRvdyBzdGF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZEJlZ2luTGF5ZXIpOiBIb29rIHRo
aXMgdXAgdG8gYmVnaW5UcmFuc3BhcmVuY3lMYXllcigpLgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6cmVjb3JkRW5kTGF5ZXIpOiBIb29rIHRoaXMg
dXAgdG8gZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKS4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0Ojpjb21wdXRlQWR2YW5jZXNGcm9tUG9zaXRpb25zKTogQ0dDb250ZXh0IGdpdmVzIHVzIHBv
c2l0aW9ucywgYnV0IG91ciBkaXNwbGF5IGxpc3QKKyAgICAgICAgaW5mcmFzdHJ1Y3R1cmUgcmVx
dWlyZXMgYWR2YW5jZXMuIFNpbXBseSBzdWJ0cmFjdCB0byBjb252ZXJ0IGJldHdlZW4gdGhlbS4K
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29y
ZERyYXdHbHlwaHMpOiBUaGUgY2FsbGJhY2sgdGhhdCBhcHBlbmRzIGEgRHJhd0dseXBocworICAg
ICAgICBkaXNwbGF5IGxpc3QgaXRlbS4gTm90ZSBpdCBoYXMgdG8gY2FsbCB0aGUgdmFyaW91cyB1
cGRhdGUoKSBmdW5jdGlvbnMgdG8gZGV0ZWN0IGNoYW5nZXMgaW4gdGhlIENHQ29udGV4dAorICAg
ICAgICBzdGF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVj
b3JkZXI6OnJlY29yZERyYXdJbWFnZSk6IERpdHRvIGZvciBhIERyYXdJbWFnZSBkaXNwbGF5IGxp
c3QgaXRlbS4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3Jk
ZXI6OmRyYXdHbHlwaHMpOiBUaGUgbWFpbiBlbnRyeSBwb2ludC4gU2ltcGx5IHNldCB1cCwgZG8g
dGhlIHdvcmssCisgICAgICAgIHRoZW4gY2xlYW4gdXAuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVySGFyZkJ1enou
Y3BwOiBBZGRlZC4gRHVtbXkgaW1wbGVtZW50YXRpb24KKyAgICAgICAgdG8gbWFrZSB0aGUgb3Ro
ZXIgcG9ydHMgY29udGludWUgdG8gY29tcGlsZS4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpEcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdHbHlwaHNSZWNvcmRlcik6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpkcmF3R2x5cGhzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OlJlY29yZGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6ZHJhd0dseXBocyk6
IENhbGwgbV9kcmF3R2x5cGhzUmVjb3JkZXIuZHJhd0dseXBocygpIGluc3RlYWQgb2YganVzdAor
ICAgICAgICBhcHBlbmRpbmcgYSBEcmF3R2x5cGhzIGNvbW1hbmQuCisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmNvbmNhdENUTSk6IFRpbnkgb3B0aW1pemF0aW9uLgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpjbGlwVG9EcmF3aW5nQ29t
bWFuZHMpOiBUaGUgY3VycmVudCBjbGlwVG9EcmF3aW5nQ29tbWFuZHMncyBjb250ZXh0CisgICAg
ICAgIENUTSBkaWRuJ3QgbWF0Y2ggdGhlIHBhcmFsbGVsIG9uZSB1c2VkIGR1cmluZyBwbGF5YmFj
ay4gSW4gb3JkZXIgdG8gbWFrZSB0aGUgQ1RNcyBtYXRjaCBhcmUgcmVjb3JkaW5nCisgICAgICAg
IGFuZCBwbGF5YmFjayB0aW1lLCB3ZSBoYXZlIHRvIG1ha2Ugc3VyZSB0aGV5IHN0YXJ0IG9mZiB0
aGUgc2FtZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RSZWNvcmRlci5oOiBEaXNwbGF5TGlzdDo6UmVjb3JkZXIgb3ducyBhIERyYXdHbHlwaHNS
ZWNvcmRlciwKKyAgICAgICAgd2hvc2UgbGlmZXRpbWUgZXF1YWxzIHRoYXQgb2YgdGhlIERpc3Bs
YXlMaXN0OjpSZWNvcmRlci4gUmF0aGVyIHRoYW4gZGVzdHJveWluZyAvIHJlY3JlYXRpbmcgdGhl
CisgICAgICAgIERyYXdHbHlwaHNSZWNvcmRlciwgdGhlIERyYXdHbHlwaHNSZWNvcmRlciBjbGFz
cyBpcyBzbWFydCBlbm91Z2ggdG8gY2xlYW4gdXAgYWZ0ZXIgaXRzZWxmIHNvIGl0IGNhbiBiZQor
ICAgICAgICByZXVzZWQgbXVsdGlwbGUgdGltZXMuCisKIDIwMjAtMTAtMjkgIEFkaXR5YSBLZWVy
dGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gUmVtb3ZlIHNvZnQg
bGlua2luZyBvZiBOZXR3b3JrRXh0ZW5zaW9uLmZyYW1ld29yawpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5k
ZXggYzRkMzM0MjlkYmU2YjBjMjBkYTc5MjMxYzZiMzNlZmM4YmQ1Nzk2Mi4uYmJkNWFiNjY5YWEz
NDgwMmJjYmU0OTM2ODQ3ODYwZThkZmVlNDVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMjAtMTAtMjkgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxl
LmNvbT4KKworICAgICAgICBbQ29jb2FdIFtHUFUgUHJvY2Vzc10gUGVyZm9ybSBpbWFnZSBkZWNv
ZGluZyBvZiBjb2xvciBmb250cyBpbiB0aGUgV2ViIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzUwNgorCisgICAgICAgIFJldmlld2Vk
IGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBBZGQgc29tZSBuZXcgZW50cnkgcG9pbnRzLCBh
bmQgZG8gc29tZSB2YXJpb3VzIGNsZWFudXAuCisKKyAgICAgICAgKiBwYWwvc3BpL2NnL0NvcmVH
cmFwaGljc1NQSS5oOgorCiAyMDIwLTEwLTEzICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZW1vdmUgbGVmdG92ZXIgTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VU
X21hY29zeCBzdXBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
IGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA2ODg0ZDBmODZkMjlkYzE0OTE2
NjExN2JhNWM5NjRkMTBiMzNiZGRmLi4yODAxYWQ2ZmQ4NWZjMzY0ZThkMDY1MTQ0OTIzOWE3Mjkx
NTlmNGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEyMzcsNiArMTIzNyw3IEBAIHNldChXZWJD
b3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9hbmds
ZS9FeHRlbnNpb25zR0xBTkdMRS5oCiAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3QuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEltYWdlQnVmZmVyLmgKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaCBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oCmluZGV4IGE3ZjgyYjg2MWI2MmM0YWVm
YjgzYzE4MTFkNTVjN2FmNzQ5ZTZiOTEuLjQwZDVhZjAwMzI1YzRmMjhkNjY2Yzc0OTJhMGQ1ZDFk
MGYwM2FlYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVH
cmFwaGljc1NQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFw
aGljc1NQSS5oCkBAIC0zOCw2ICszOCw3IEBACiAKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RL
KQogCisjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHQ29udGV4dERlbGVnYXRlUHJpdmF0ZS5oPgog
I2luY2x1ZGUgPENvcmVHcmFwaGljcy9DR0ZvbnRDYWNoZS5oPgogI2luY2x1ZGUgPENvcmVHcmFw
aGljcy9DR1BhdGhQcml2YXRlLmg+CiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NvcmVHcmFwaGlj
c1ByaXZhdGUuaD4KQEAgLTU4LDE5ICs1OSwxMiBAQCBzdHJ1Y3QgQ0dGb250SE1ldHJpY3Mgewog
ICAgIGludCBtaW5SaWdodFNpZGVCZWFyaW5nOwogfTsKIAotc3RydWN0IENHRm9udERlc2NyaXB0
b3IgewotICAgIENHUmVjdCBiYm94OwotICAgIENHRmxvYXQgYXNjZW50OwotICAgIENHRmxvYXQg
ZGVzY2VudDsKLSAgICBDR0Zsb2F0IGNhcEhlaWdodDsKLSAgICBDR0Zsb2F0IGl0YWxpY0FuZ2xl
OwotICAgIENHRmxvYXQgc3RlbVY7Ci0gICAgQ0dGbG9hdCBzdGVtSDsKLSAgICBDR0Zsb2F0IGF2
Z1dpZHRoOwotICAgIENHRmxvYXQgbWF4V2lkdGg7Ci0gICAgQ0dGbG9hdCBtaXNzaW5nV2lkdGg7
Ci0gICAgQ0dGbG9hdCBsZWFkaW5nOwotICAgIENHRmxvYXQgeEhlaWdodDsKK3R5cGVkZWYgQ0Zf
RU5VTSAoaW50MzJfdCwgQ0dDb250ZXh0RGVsZWdhdGVDYWxsYmFja05hbWUpCit7CisgICAgZGVE
cmF3SW1hZ2UgPSA3LAorICAgIGRlRHJhd0dseXBocyA9IDgsCisgICAgZGVCZWdpbkxheWVyID0g
MTcsCisgICAgZGVFbmRMYXllciA9IDE4LAogfTsKIAogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgQ0dD
b2xvclRyYW5zZm9ybSogQ0dDb2xvclRyYW5zZm9ybVJlZjsKQEAgLTE3OSw2ICsxNzMsMjIgQEAg
dHlwZWRlZiBzdHJ1Y3QgQ0dGb2N1c1JpbmdTdHlsZSBDR0ZvY3VzUmluZ1N0eWxlOwogCiAjZW5k
aWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKK3N0cnVjdCBDR1NoYWRvd1N0eWxlIHsKKyAgICB1bnNp
Z25lZCBhOworICAgIENHRmxvYXQgYjsKKyAgICBDR0Zsb2F0IGF6aW11dGg7CisgICAgQ0dGbG9h
dCBjOworICAgIENHRmxvYXQgaGVpZ2h0OworICAgIENHRmxvYXQgcmFkaXVzOworICAgIENHRmxv
YXQgZDsKK307Cit0eXBlZGVmIHN0cnVjdCBDR1NoYWRvd1N0eWxlIENHU2hhZG93U3R5bGU7CisK
K3R5cGVkZWYgQ0ZfRU5VTSAoaW50MzJfdCwgQ0dTdHlsZVR5cGUpCit7CisgICAga0NHU3R5bGVT
aGFkb3cgPSAxLAorfTsKKwogI2lmIFBMQVRGT1JNKE1BQykKIAogdHlwZWRlZiBDRl9FTlVNKHVp
bnQzMl90LCBDR1NOb3RpZmljYXRpb25UeXBlKSB7CkBAIC0xOTMsNiArMjAzLDEyIEBAIHN0YXRp
YyBjb25zdCBDR1NOb3RpZmljYXRpb25UeXBlIGtDR1Nlc3Npb25Db25zb2xlRGlzY29ubmVjdCA9
IChDR1NOb3RpZmljYXRpb25UCiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKK3R5cGVkZWYg
c3RydWN0IENHQ29udGV4dERlbGVnYXRlICpDR0NvbnRleHREZWxlZ2F0ZVJlZjsKK3R5cGVkZWYg
dm9pZCAoKkNHQ29udGV4dERlbGVnYXRlQ2FsbGJhY2spKHZvaWQpOwordHlwZWRlZiBzdHJ1Y3Qg
Q0dSZW5kZXJpbmdTdGF0ZSAqQ0dSZW5kZXJpbmdTdGF0ZVJlZjsKK3R5cGVkZWYgc3RydWN0IENH
R1N0YXRlICpDR0dTdGF0ZVJlZjsKK3R5cGVkZWYgc3RydWN0IENHU3R5bGUgKkNHU3R5bGVSZWY7
CisKICNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCkBAIC0yMDMsNyArMjE5LDYgQEAgdHlwZWRlZiB1aW50MzJfdCBDR1NXaW5kb3dJRDsKIAog
dHlwZWRlZiBDR1NXaW5kb3dJRCogQ0dTV2luZG93SURMaXN0OwogdHlwZWRlZiBzdHJ1Y3QgQ0Zf
QlJJREdFRF9UWVBFKGlkKSBDR1NSZWdpb25PYmplY3QqIENHU1JlZ2lvbk9iajsKLXR5cGVkZWYg
c3RydWN0IENGX0JSSURHRURfVFlQRShpZCkgQ0dTdHlsZSogQ0dTdHlsZVJlZjsKIAogdHlwZWRl
ZiB2b2lkKiBDR1NOb3RpZmljYXRpb25Bcmc7CiB0eXBlZGVmIHZvaWQqIENHU05vdGlmaWNhdGlv
bkRhdGE7CkBAIC0yMzMsNyArMjQ4LDYgQEAgdm9pZCBDR0NvbnRleHRSZXNldENsaXAoQ0dDb250
ZXh0UmVmKTsKIENHQ29udGV4dFR5cGUgQ0dDb250ZXh0R2V0VHlwZShDR0NvbnRleHRSZWYpOwog
CiBDRlN0cmluZ1JlZiBDR0ZvbnRDb3B5RmFtaWx5TmFtZShDR0ZvbnRSZWYpOwotYm9vbCBDR0Zv
bnRHZXREZXNjcmlwdG9yKENHRm9udFJlZiwgQ0dGb250RGVzY3JpcHRvciopOwogYm9vbCBDR0Zv
bnRHZXRHbHlwaEFkdmFuY2VzRm9yU3R5bGUoQ0dGb250UmVmLCBjb25zdCBDR0FmZmluZVRyYW5z
Zm9ybSogLCBDR0ZvbnRSZW5kZXJpbmdTdHlsZSwgY29uc3QgQ0dHbHlwaFtdLCBzaXplX3QgY291
bnQsIENHU2l6ZSBhZHZhbmNlc1tdKTsKIHZvaWQgQ0dGb250R2V0R2x5cGhzRm9yVW5pY2hhcnMo
Q0dGb250UmVmLCBjb25zdCBVbmlDaGFyW10sIENHR2x5cGhbXSwgc2l6ZV90IGNvdW50KTsKIGNv
bnN0IENHRm9udEhNZXRyaWNzKiBDR0ZvbnRHZXRITWV0cmljcyhDR0ZvbnRSZWYpOwpAQCAtMjUy
LDYgKzI2NiwyMSBAQCBib29sIENHQ29udGV4dEdldEFsbG93c0ZvbnRTdWJwaXhlbFBvc2l0aW9u
aW5nKENHQ29udGV4dFJlZik7CiBib29sIENHQ29udGV4dERyYXdzV2l0aENvcnJlY3RTaGFkb3dP
ZmZzZXRzKENHQ29udGV4dFJlZik7CiBDR1BhdHRlcm5SZWYgQ0dQYXR0ZXJuQ3JlYXRlV2l0aElt
YWdlMihDR0ltYWdlUmVmLCBDR0FmZmluZVRyYW5zZm9ybSwgQ0dQYXR0ZXJuVGlsaW5nKTsKIAor
Q0dDb250ZXh0RGVsZWdhdGVSZWYgQ0dDb250ZXh0RGVsZWdhdGVDcmVhdGUodm9pZCogaW5mbyk7
Cit2b2lkIENHQ29udGV4dERlbGVnYXRlU2V0Q2FsbGJhY2soQ0dDb250ZXh0RGVsZWdhdGVSZWYs
IENHQ29udGV4dERlbGVnYXRlQ2FsbGJhY2tOYW1lLCBDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNr
KTsKK0NHQ29udGV4dFJlZiBDR0NvbnRleHRDcmVhdGVXaXRoRGVsZWdhdGUoQ0dDb250ZXh0RGVs
ZWdhdGVSZWYsIENHQ29udGV4dFR5cGUsIENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVm
KTsKK3ZvaWQqIENHQ29udGV4dERlbGVnYXRlR2V0SW5mbyhDR0NvbnRleHREZWxlZ2F0ZVJlZik7
Cit2b2lkIENHQ29udGV4dERlbGVnYXRlUmVsZWFzZShDR0NvbnRleHREZWxlZ2F0ZVJlZik7CitD
R0Zsb2F0IENHR1N0YXRlR2V0QWxwaGEoQ0dHU3RhdGVSZWYpOworQ0dGb250UmVmIENHR1N0YXRl
R2V0Rm9udChDR0dTdGF0ZVJlZik7Citjb25zdCBDR0FmZmluZVRyYW5zZm9ybSAqQ0dHU3RhdGVH
ZXRDVE0oQ0dHU3RhdGVSZWYpOworQ0dDb2xvclJlZiBDR0dTdGF0ZUdldEZpbGxDb2xvcihDR0dT
dGF0ZVJlZik7CitDR0NvbG9yUmVmIENHR1N0YXRlR2V0U3Ryb2tlQ29sb3IoQ0dHU3RhdGVSZWYp
OworQ0dTdHlsZVJlZiBDR0dTdGF0ZUdldFN0eWxlKENHR1N0YXRlUmVmKTsKK0NHU3R5bGVUeXBl
IENHU3R5bGVHZXRUeXBlKENHU3R5bGVSZWYpOworY29uc3Qgdm9pZCAqQ0dTdHlsZUdldERhdGEo
Q0dTdHlsZVJlZik7CitDR0NvbG9yUmVmIENHU3R5bGVHZXRDb2xvcihDR1N0eWxlUmVmKTsKKwog
I2lmIEhBVkUoQ0dQQVRIX0dFVF9OVU1CRVJfT0ZfRUxFTUVOVFMpCiBzaXplX3QgQ0dQYXRoR2V0
TnVtYmVyT2ZFbGVtZW50cyhDR1BhdGhSZWYpOwogI2VuZGlmCkBAIC0yODYsMTYgKzMxNSw5IEBA
IENHUmVjdCogQ0dTTmV4dFJlY3QoY29uc3QgQ0dTUmVnaW9uRW51bWVyYXRvck9iaik7CiBDR1NS
ZWdpb25FbnVtZXJhdG9yT2JqIENHU1JlZ2lvbkVudW1lcmF0b3IoQ0dSZWdpb25SZWYpOwogQ0dT
dHlsZVJlZiBDR1N0eWxlQ3JlYXRlRm9jdXNSaW5nV2l0aENvbG9yKGNvbnN0IENHRm9jdXNSaW5n
U3R5bGUqLCBDR0NvbG9yUmVmKTsKIHZvaWQgQ0dDb250ZXh0U2V0U3R5bGUoQ0dDb250ZXh0UmVm
LCBDR1N0eWxlUmVmKTsKLQogdm9pZCBDR0NvbnRleHREcmF3Q29uaWNHcmFkaWVudChDR0NvbnRl
eHRSZWYsIENHR3JhZGllbnRSZWYsIENHUG9pbnQgY2VudGVyLCBDR0Zsb2F0IGFuZ2xlKTsKLQot
I2lmIEhBVkUoQ0dfUEFUSF9VTkVWRU5fQ09STkVSU19ST1VOREVEUkVDVCkKIHZvaWQgQ0dQYXRo
QWRkVW5ldmVuQ29ybmVyc1JvdW5kZWRSZWN0KENHTXV0YWJsZVBhdGhSZWYsIGNvbnN0IENHQWZm
aW5lVHJhbnNmb3JtICosIENHUmVjdCwgY29uc3QgQ0dTaXplIGNvcm5lcnNbNF0pOwotI2VuZGlm
Ci0KLSNpZiBIQVZFKENHX0ZPTlRfUkVOREVSSU5HX0dFVF9GT05UX1NNT09USElOR19ESVNBQkxF
RCkKIGJvb2wgQ0dGb250UmVuZGVyaW5nR2V0Rm9udFNtb290aGluZ0Rpc2FibGVkKHZvaWQpOwot
I2VuZGlmCiAKICNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKIApAQCAtMzI4LDE1ICszNTAsMTAg
QEAgYm9vbCBDb2xvclN5bmNQcm9maWxlSXNXaWRlR2FtdXQoQ29sb3JTeW5jUHJvZmlsZVJlZik7
CiBzaXplX3QgQ0dEaXNwbGF5TW9kZUdldFBpeGVsc1dpZGUoQ0dEaXNwbGF5TW9kZVJlZik7CiBz
aXplX3QgQ0dEaXNwbGF5TW9kZUdldFBpeGVsc0hpZ2goQ0dEaXNwbGF5TW9kZVJlZik7CiAKLSNp
ZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCi0KIENHRXJyb3IgQ0dT
U2V0RGVueVdpbmRvd1NlcnZlckNvbm5lY3Rpb25zKGJvb2wpOwotCiB0eXBlZGVmIGludDMyX3Qg
Q0dTRGlzcGxheUlEOwogQ0dTRGlzcGxheUlEIENHU01haW5EaXNwbGF5SUQodm9pZCk7CiAKLSNl
bmRpZiAvLyBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCi0KICNlbmRp
ZiAvLyBQTEFURk9STShNQUMpCiAKICNpZiBFTkFCTEUoUERGS0lUX1BMVUdJTikgJiYgIVVTRShB
UFBMRV9JTlRFUk5BTF9TREspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUFw
cGxlV2luLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1BcHBsZVdpbi5jbWFrZQppbmRl
eCBhNzg4ZTY5ZGU3NDQxYzk0MDg0ZjcwMzZhM2U4ZjQ5YWQ0NTFhNThkLi4zOGEyYjc3Njg5NTU5
OGE0ZjRlMzZhZGU3YzYwM2IwNDA3OGRkYzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Q
bGF0Zm9ybUFwcGxlV2luLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQXBwbGVX
aW4uY21ha2UKQEAgLTMwLDYgKzMwLDggQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbkNGLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9X
ZWJDb3JlQVZDRlJlc291cmNlTG9hZGVyLmNwcAogCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwCisKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKIAogICAg
IHBsYXRmb3JtL25ldHdvcmsvY2YvQXV0aGVudGljYXRpb25DRi5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0
Zm9ybVdpbkNhaXJvLmNtYWtlCmluZGV4IGE2ODk2NDc3ZGUwY2Y1MDM0ZjNmZDA5ZjNmMGM3NmE3
ZGE2ZWM4YTEuLjA3NzhmNzU1NjZjNjQ2MzAyMGEwZTA3YzUyYTY1YzFhNDc0ZjYyODkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UKKysrIGIvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1XaW5DYWlyby5jbWFrZQpAQCAtMjIsNiArMjIsOCBAQCBsaXN0KEFQ
UEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3Bw
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcAogCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVySGFy
ZkJ1enouY3BwCisKICAgICBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YUNhaXJvLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRh
Q2Fpcm9XaW4uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dseXBoUGFnZVRyZWVOb2Rl
Q2Fpcm9XaW4uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0
IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCBlYjRlMTdmMmU3MzZlYTg2
ODFjNTZkMjAyNTE0OTI2YjhkYzk5NDUwLi4yYWQzM2E5NTUxOTJkOTA3NmViM2Q4YzE2MmNmZTM4
NjIyZGZiMThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTM3OSw2ICszNzksNyBAQCBw
bGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tCiBwbGF0Zm9ybS9n
cmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2Uv
RmlsdGVyRWZmZWN0UmVuZGVyZXJDb3JlSW1hZ2UubW0KK3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcAogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L1RpbGluZ0RhdGEuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29j
b2EvR1BVQmluZEdyb3VwQWxsb2NhdG9yTWV0YWwubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9j
b2NvYS9HUFVCaW5kR3JvdXBMYXlvdXRNZXRhbC5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZkZTk1YTdhMjY5ODgzZDUyYzZi
OTc4ZjdiYTVjNGQxYmQxMGUwMGMuLmM1ZjE3NTI5ZGU5OTFjZTY1ODIwYmFhY2M1MzViYzJlYmUz
YjE2OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTYyMCw2ICs2MjAsNyBAQAogCQkxQ0FGMzQ4MTBBNkM0MDUyMDBBQkUwNkUg
LyogV2ViU2NyaXB0T2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQ0FGMzQ3RTBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUNBRjM0
ODIwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdC5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUYzNDdGMEE2QzQwNTIwMEFCRTA2RSAv
KiBXZWJTY3JpcHRPYmplY3QubW0gKi87IH07CiAJCTFDQUYzNDgzMEE2QzQwNTIwMEFCRTA2RSAv
KiBXZWJTY3JpcHRPYmplY3RQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQ0FGMzQ4MDBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2Jq
ZWN0UHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTFDQUY1NkRCMjUzMDFBQzgwMDE3QjQ3MiAvKiBEaXNwbGF5TGlzdERyYXdHbHlwaHNS
ZWNvcmRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUNBRjU2RDgyNTMwMTQ1NzAwMTdCNDcyIC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUND
RDgxNTAyMjMxRjgzRTAwNjVGQzJCIC8qIFdlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9u
UXVldWVEZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxNTI1NTE0MTZGRDIzNEYwMDNEN0FEQiAvKiBXZWJDb3JlUmVzb3VyY2VIYW5kbGVB
c09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0gKi87IH07CiAJCTFDQ0RGNUJFMTk5MDMzMjQwMEJD
RUJBRCAvKiBTVkdUb09URkZvbnRDb252ZXJzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0NERjVCQzE5OTAzMzI0MDBCQ0VCQUQgLyogU1ZHVG9P
VEZGb250Q29udmVyc2lvbi5oICovOyB9OwogCQkxQ0ZBRTMyMzBBNkQ2QTNGMDAzMjU5M0QgLyog
bGlib2JqYy5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFDRkFFMzIyMEE2RDZBM0YwMDMyNTkzRCAvKiBsaWJvYmpjLmR5bGliICovOyB9OwpA
QCAtNjczNSw2ICs2NzM2LDggQEAKIAkJMUNBRjM0N0UwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNj
cmlwdE9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTY3JpcHRP
YmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBRjM0N0YwQTZDNDA1MjAw
QUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdlYlNjcmlwdE9iamVjdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUNBRjM0ODAwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdFByaXZhdGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU2NyaXB0T2JqZWN0UHJpdmF0
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0FGNTZEODI1MzAxNDU3MDAxN0I0
NzIgLyogRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlz
cGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUNBRjU2REUyNTMwMjQ1QTAwMTdCNDcyIC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29y
ZGVyQ29yZVRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGlzcGxheUxpc3REcmF3R2x5cGhz
UmVjb3JkZXJDb3JlVGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQjVG
RTg4MjJERUJDOEIwMDk0NDBFMiAvKiBXSExTTEVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdITFNM
RXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNCNjlCMzIyMURFRDQwQjAw
NkU4NDZBIC8qIFdITFNMUmVzb2x2YWJsZVR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xSZXNv
bHZhYmxlVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0I2OUIzNDIxREVE
NjNBMDA2RTg0NkEgLyogV0hMU0xGbG9hdExpdGVyYWxUeXBlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdI
TFNMRmxvYXRMaXRlcmFsVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc2
MDcsNiArMTc2MTAsOCBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMEZFNUZCQ0ExQzNERDUxRTAw
MDdBMkNBIC8qIERpc3BsYXlMaXN0LmNwcCAqLywKIAkJCQkwRkU1RkJDQjFDM0RENTFFMDAwN0Ey
Q0EgLyogRGlzcGxheUxpc3QuaCAqLywKKwkJCQkxQ0FGNTZEODI1MzAxNDU3MDAxN0I0NzIgLyog
RGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCAqLywKKwkJCQkxQ0FGNTZERTI1MzAyNDVB
MDAxN0I0NzIgLyogRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAgKi8s
CiAJCQkJNTVDMEEyOTUyM0ZFMkNFMDAwRjJDQjkzIC8qIERpc3BsYXlMaXN0RHJhd2luZ0NvbnRl
eHQuY3BwICovLAogCQkJCTcyRUEwOUY5MjNGQ0NDNkEwMDg1MDRBNSAvKiBEaXNwbGF5TGlzdERy
YXdpbmdDb250ZXh0LmggKi8sCiAJCQkJNzJFQTA5RjcyM0ZDQ0IzRDAwODUwNEE1IC8qIERpc3Bs
YXlMaXN0SW1hZ2VCdWZmZXIuaCAqLywKQEAgLTMxNDI5LDYgKzMxNDM0LDcgQEAKIAkJCQk3RURB
QUZDOTE5QTJDQ0RDMDAzNERGRDEgLyogRGlza0NhY2hlTW9uaXRvckNvY29hLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjc5MEY0MjI1MTdDRTZFMDA5QkEwMzQgLyogRGlzcGxheUxheWVyQ29udHJv
bGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFNUZCRDMxQzNERDUxRTAwMDdBMkNBIC8qIERp
c3BsYXlMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0FGNTZEQjI1MzAxQUM4MDAxN0I0NzIg
LyogRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1
QUQwOTQwMjQwODk2NDAwMERFNEQyRiAvKiBEaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk1NUFEMDkzRTI0MDg5NjM1MDBERTREMkYgLyogRGlzcGxheUxpc3RJ
bWFnZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFNUZCRDUxQzNERDUxRTAwMDdBMkNB
IC8qIERpc3BsYXlMaXN0SXRlbXMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vRnJlZVR5cGUuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9GcmVlVHlwZS5jbWFrZQppbmRleCA3YzA0ZDkzYTViODVjNzMyNTgxYzk1YTA2NWJlMDViNjM2
N2M3YWU0Li5mMzhiNTRlMTdjOTMxNTY1MTU0Y2FiOTUzYTgxZTBlOTZmNTc0OWE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GcmVlVHlwZS5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9GcmVlVHlwZS5jbWFrZQpAQCAtNSw2ICs1LDggQEAgbGlzdChBUFBF
TkQgV2ViQ29yZV9QUklWQVRFX0lOQ0xVREVfRElSRUNUT1JJRVMKICkKIAogbGlzdChBUFBFTkQg
V2ViQ29yZV9TT1VSQ0VTCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0RHJhd0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwCisKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9mcmVldHlwZS9Gb250Q2FjaGVGcmVlVHlwZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9mcmVldHlwZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udFBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0Jh
Y2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZm
ZXJDR0JhY2tlbmQuY3BwCmluZGV4IDJhZDMxYWM1N2Q1ZjFiZGU3OTQxOWM1ZjkxNTY5N2IzNzU0
NGJiNDguLjViMjBkODkyZWQ4YmJjZjYwMTgxNmE2MzY3NmEwMGYxZmE1YzE3YjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNr
ZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1
ZmZlckNHQmFja2VuZC5jcHAKQEAgLTYxLDYgKzYxLDcgQEAgUmV0YWluUHRyPENHQ29sb3JTcGFj
ZVJlZj4gSW1hZ2VCdWZmZXJDR0JhY2tlbmQ6OmNvbnRleHRDb2xvclNwYWNlKGNvbnN0IEdyYXBo
aWMKIAogdm9pZCBJbWFnZUJ1ZmZlckNHQmFja2VuZDo6c2V0dXBDb250ZXh0KCkKIHsKKyAgICAv
LyBUaGUgaW5pdGlhbCBDVE0gbWF0Y2hlcyBEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmNsaXBUb0Ry
YXdpbmdDb21tYW5kcygpJ3MgaW5pdGlhbCBDVE0uCiAgICAgY29udGV4dCgpLnNjYWxlKEZsb2F0
U2l6ZSgxLCAtMSkpOwogICAgIGNvbnRleHQoKS50cmFuc2xhdGUoMCwgLW1fYmFja2VuZFNpemUu
aGVpZ2h0KCkpOwogICAgIGNvbnRleHQoKS5hcHBseURldmljZVNjYWxlRmFjdG9yKG1fcmVzb2x1
dGlvblNjYWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvcmV0ZXh0L0ZvbnRDYXNjYWRlQ29yZVRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udENhc2NhZGVDb3JlVGV4dC5jcHAKaW5kZXggNGE4ZTRl
MGVhMTk0MTQ0MzYyNTBhNGJlOGFhNDVjYjcxZGIyMTZmYi4uZTk1YmIzNDA4ZjUyMDcxNzIxZGUz
ZDEwMzQzMWQ0YWY5NTllNDRjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29yZXRleHQvRm9udENhc2NhZGVDb3JlVGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udENhc2NhZGVDb3JlVGV4dC5jcHAK
QEAgLTQxLDYgKzQxLDUwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RhdGljIGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYgcm90YXRlTGVmdFRyYW5zZm9ybSgpCit7CisgICAgc3RhdGljIEFm
ZmluZVRyYW5zZm9ybSByZXN1bHQoMCwgLTEsIDEsIDAsIDAsIDApOworICAgIHJldHVybiByZXN1
bHQ7Cit9CisKK0FmZmluZVRyYW5zZm9ybSBjb21wdXRlT3ZlcmFsbFRleHRNYXRyaXgoY29uc3Qg
Rm9udCYgZm9udCkKK3sKKyAgICBhdXRvJiBwbGF0Zm9ybURhdGEgPSBmb250LnBsYXRmb3JtRGF0
YSgpOworICAgIEFmZmluZVRyYW5zZm9ybSByZXN1bHQ7CisgICAgaWYgKCFwbGF0Zm9ybURhdGEu
aXNDb2xvckJpdG1hcEZvbnQoKSkKKyAgICAgICAgcmVzdWx0ID0gQ1RGb250R2V0TWF0cml4KHBs
YXRmb3JtRGF0YS5jdEZvbnQoKSk7CisgICAgcmVzdWx0LnNldEIoLXJlc3VsdC5iKCkpOworICAg
IHJlc3VsdC5zZXREKC1yZXN1bHQuZCgpKTsKKyAgICBpZiAocGxhdGZvcm1EYXRhLnN5bnRoZXRp
Y09ibGlxdWUoKSkgeworICAgICAgICBmbG9hdCBvYmxpcXVlU2tldyA9IHRhbmYoZGVnMnJhZChG
b250Q2FzY2FkZTo6c3ludGhldGljT2JsaXF1ZUFuZ2xlKCkpKTsKKyAgICAgICAgaWYgKHBsYXRm
b3JtRGF0YS5vcmllbnRhdGlvbigpID09IEZvbnRPcmllbnRhdGlvbjo6VmVydGljYWwpIHsKKyAg
ICAgICAgICAgIGlmIChmb250LmlzVGV4dE9yaWVudGF0aW9uRmFsbGJhY2soKSkKKyAgICAgICAg
ICAgICAgICByZXN1bHQgPSBBZmZpbmVUcmFuc2Zvcm0oMSwgb2JsaXF1ZVNrZXcsIDAsIDEsIDAs
IDApICogcmVzdWx0OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJlc3VsdCA9
IEFmZmluZVRyYW5zZm9ybSgxLCAtb2JsaXF1ZVNrZXcsIDAsIDEsIDAsIDApICogcmVzdWx0Owor
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHJlc3VsdCA9IEFmZmluZVRyYW5zZm9ybSgxLCAw
LCAtb2JsaXF1ZVNrZXcsIDEsIDAsIDApICogcmVzdWx0OworICAgIH0KKworICAgIC8vIFdlJ3Jl
IGVtdWxhdGluZyB0aGUgYmVoYXZpb3Igb2YgQ0dDb250ZXh0U2V0VGV4dFBvc2l0aW9uKCkgYnkg
YWRkaW5nIGNvbnN0YW50IGFtb3VudHMgdG8gZWFjaCBnbHlwaCdzIHBvc2l0aW9uCisgICAgLy8g
KHNlZSBmaWxsVmVjdG9yV2l0aEhvcml6b250YWxHbHlwaFBvc2l0aW9ucygpIGFuZCBmaWxsVmVj
dG9yV2l0aFZlcnRpY2FsR2x5cGhQb3NpdGlvbnMoKSkuCisgICAgLy8gQ0dDb250ZXh0U2V0VGV4
dFBvc2l0aW9uKCkgaGFzIHRoZSBzaWRlIGVmZmVjdCBvZiBjbG9iYmVyaW5nIHRoZSBFIGFuZCBG
IGZpZWxkcyBvZiB0aGUgdGV4dCBtYXRyaXgsCisgICAgLy8gc28gd2UgZG8gdGhhdCBleHBsaWNp
dGx5IGhlcmUuCisgICAgcmVzdWx0LnNldEUoMCk7CisgICAgcmVzdWx0LnNldEYoMCk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KKworQWZmaW5lVHJhbnNmb3JtIGNvbXB1dGVWZXJ0aWNhbFRleHRN
YXRyaXgoY29uc3QgRm9udCYgZm9udCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwcmV2aW91c1Rl
eHRNYXRyaXgpCit7CisgICAgQVNTRVJUX1VOVVNFRChmb250LCBmb250LnBsYXRmb3JtRGF0YSgp
Lm9yaWVudGF0aW9uKCkgPT0gRm9udE9yaWVudGF0aW9uOjpWZXJ0aWNhbCk7CisgICAgLy8gVGhl
IHRyYW5zbGF0aW9uIGhlcmUgKCJlIiBhbmQgImYiIGZpZWxkcykgYXJlIGlycmVsZXZhbnQsIGJl
Y2F1c2UKKyAgICAvLyB0aGlzIG1hdHJpeCBpcyBpbnZlcnRlZCBpbiBmaWxsVmVjdG9yV2l0aFZl
cnRpY2FsR2x5cGhQb3NpdGlvbnMgdG8gcGxhY2UgdGhlIGdseXBocyBpbiB0aGUgQ1RNJ3MgY29v
cmRpbmF0ZSBzeXN0ZW0uCisgICAgLy8gQWxsIHdlJ3JlIHRyeWluZyB0byBkbyBoZXJlIGlzIHJv
dGF0ZSB0aGUgdGV4dCBtYXRyaXggc28gZ2x5cGhzIGFwcGVhciB2aXN1YWxseSB1cHJpZ2h0Lgor
ICAgIC8vIFdlIGhhdmUgdG8gaW5jbHVkZSB0aGUgcHJldmlvdXMgdGV4dCBtYXRyaXggYmVjYXVz
ZSBpdCBpbmNsdWRlcyB0aGluZ3MgbGlrZSBzeW50aGV0aWMgb2JsaXF1ZS4KKyAgICByZXR1cm4g
cm90YXRlTGVmdFRyYW5zZm9ybSgpICogcHJldmlvdXNUZXh0TWF0cml4OworfQorCiAjaWYgIVBM
QVRGT1JNKFdJTikKIAogLy8gQ29uZnVzaW5nbHksIGV2ZW4gd2hlbiBDR0ZvbnRSZW5kZXJpbmdH
ZXRGb250U21vb3RoaW5nRGlzYWJsZWQoKSByZXR1cm5zIHRydWUsIENHQ29udGV4dFNldFNob3Vs
ZFNtb290aEZvbnRzKCkgc3RpbGwgaW1wYWN0cyB0ZXh0CkBAIC02MSwxNCArMTA1LDE2IEBAIGJv
b2wgRm9udENhc2NhZGU6OmlzU3VicGl4ZWxBbnRpYWxpYXNpbmdBdmFpbGFibGUoKQogI2VuZGlm
CiB9CiAKLXN0YXRpYyBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHJvdGF0ZUxlZnRUcmFuc2Zvcm0o
KQotewotICAgIHN0YXRpYyBBZmZpbmVUcmFuc2Zvcm0gcmVzdWx0KDAsIC0xLCAxLCAwLCAwLCAw
KTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCiB2b2lkIGZpbGxWZWN0b3JXaXRoSG9yaXpvbnRh
bEdseXBoUG9zaXRpb25zKFZlY3RvcjxDR1BvaW50LCAyNTY+JiBwb3NpdGlvbnMsIENHQ29udGV4
dFJlZiBjb250ZXh0LCBjb25zdCBDR1NpemUqIGFkdmFuY2VzLCB1bnNpZ25lZCBjb3VudCwgY29u
c3QgRmxvYXRQb2ludCYgcG9pbnQpCiB7CisgICAgLy8gVGhlIGlucHV0IHBvc2l0aW9ucyBhcmUg
aW4gdGhlIGNvbnRleHQncyBjb29yZGluYXRlIHN5c3RlbSwgd2l0aG91dCB0aGUgdGV4dCBtYXRy
aXguCisgICAgLy8gSG93ZXZlciwgdGhlIHBvc2l0aW9ucyB0aGF0IENUL0NHIGFjY2VwdCBhcmUg
aW4gdGhlIHRleHQgbWF0cml4J3MgY29vcmRpbmF0ZSBzeXN0ZW0uCisgICAgLy8gQ0dDb250ZXh0
R2V0VGV4dE1hdHJpeCgpIGdpdmVzIHVzIHRoZSBtYXRyaXggdGhhdCBtYXBzIGZyb20gdGV4dCdz
IGNvb3JkaW5hdGUgc3lzdGVtIHRvIHRoZSBjb250ZXh0J3MgKG5vbi10ZXh0KSBjb29yZGluYXRl
IHN5c3RlbS4KKyAgICAvLyBXZSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCB0byBkZWxpdmVyIENU
LCBpbnNpZGUgdGhlIHRleHQncyBjb29yZGluYXRlIHN5c3RlbSwgc3VjaCB0aGF0IGl0IGVuZHMg
dXAgY29pbmNpZGVudCB3aXRoIHRoZSBpbnB1dCBpbiB0aGUgY29udGV4dCdzIGNvb3JkaW5hdGUg
c3lzdGVtLgorICAgIC8vCisgICAgLy8gQ1RNICogdGV4dCBtYXRyaXggKiBwb3NpdGlvbnMgd2Ug
bmVlZCB0byBkZWxpdmVyIHRvIENUID0gQ1RNICogaW5wdXQgcG9zaXRpb25zCisgICAgLy8gU29s
dmluZyBmb3IgdGhlIHBvc2l0aW9ucyB3ZSBuZWVkIHRvIGRlbGl2ZXIgdG8gQ1QsIHdlIGdldAor
ICAgIC8vIHBvc2l0aW9ucyB3ZSBuZWVkIHRvIGRlbGl2ZXIgdG8gQ1QgPSBpbnZlcnNlKHRleHQg
bWF0cml4KSAqIGlucHV0IHBvc2l0aW9ucwogICAgIENHQWZmaW5lVHJhbnNmb3JtIG1hdHJpeCA9
IENHQWZmaW5lVHJhbnNmb3JtSW52ZXJ0KENHQ29udGV4dEdldFRleHRNYXRyaXgoY29udGV4dCkp
OwogICAgIHBvc2l0aW9uc1swXSA9IENHUG9pbnRBcHBseUFmZmluZVRyYW5zZm9ybShwb2ludCwg
bWF0cml4KTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwgY291bnQ7ICsraSkgewpAQCAt
MTM3LDQ0ICsxODMsNiBAQCBzdGF0aWMgdm9pZCBzZXRDR0ZvbnRSZW5kZXJpbmdNb2RlKEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCkKICAgICBDR0NvbnRleHRTZXRTaG91bGRTdWJwaXhlbFF1YW50
aXplRm9udHMoY2dDb250ZXh0LCBkb1N1YnBpeGVsUXVhbnRpemF0aW9uKTsKIH0KIAotQWZmaW5l
VHJhbnNmb3JtIGNvbXB1dGVPdmVyYWxsVGV4dE1hdHJpeChjb25zdCBGb250JiBmb250KQotewot
ICAgIGF1dG8mIHBsYXRmb3JtRGF0YSA9IGZvbnQucGxhdGZvcm1EYXRhKCk7Ci0gICAgQWZmaW5l
VHJhbnNmb3JtIHJlc3VsdDsKLSAgICBpZiAoIXBsYXRmb3JtRGF0YS5pc0NvbG9yQml0bWFwRm9u
dCgpKQotICAgICAgICByZXN1bHQgPSBDVEZvbnRHZXRNYXRyaXgocGxhdGZvcm1EYXRhLmZvbnQo
KSk7Ci0gICAgcmVzdWx0LnNldEIoLXJlc3VsdC5iKCkpOwotICAgIHJlc3VsdC5zZXREKC1yZXN1
bHQuZCgpKTsKLSAgICBpZiAocGxhdGZvcm1EYXRhLnN5bnRoZXRpY09ibGlxdWUoKSkgewotICAg
ICAgICBmbG9hdCBvYmxpcXVlU2tldyA9IHRhbmYoZGVnMnJhZChGb250Q2FzY2FkZTo6c3ludGhl
dGljT2JsaXF1ZUFuZ2xlKCkpKTsKLSAgICAgICAgaWYgKHBsYXRmb3JtRGF0YS5vcmllbnRhdGlv
bigpID09IEZvbnRPcmllbnRhdGlvbjo6VmVydGljYWwpIHsKLSAgICAgICAgICAgIGlmIChmb250
LmlzVGV4dE9yaWVudGF0aW9uRmFsbGJhY2soKSkKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBB
ZmZpbmVUcmFuc2Zvcm0oMSwgb2JsaXF1ZVNrZXcsIDAsIDEsIDAsIDApICogcmVzdWx0OwotICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJlc3VsdCA9IEFmZmluZVRyYW5zZm9ybSgx
LCAtb2JsaXF1ZVNrZXcsIDAsIDEsIDAsIDApICogcmVzdWx0OwotICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgIHJlc3VsdCA9IEFmZmluZVRyYW5zZm9ybSgxLCAwLCAtb2JsaXF1ZVNrZXcsIDEs
IDAsIDApICogcmVzdWx0OwotICAgIH0KLQotICAgIC8vIFdlJ3JlIGVtdWxhdGluZyB0aGUgYmVo
YXZpb3Igb2YgQ0dDb250ZXh0U2V0VGV4dFBvc2l0aW9uKCkgYnkgYWRkaW5nIGNvbnN0YW50IGFt
b3VudHMgdG8gZWFjaCBnbHlwaCdzIHBvc2l0aW9uCi0gICAgLy8gKHNlZSBmaWxsVmVjdG9yV2l0
aEhvcml6b250YWxHbHlwaFBvc2l0aW9ucygpIGFuZCBmaWxsVmVjdG9yV2l0aFZlcnRpY2FsR2x5
cGhQb3NpdGlvbnMoKSkuCi0gICAgLy8gQ0dDb250ZXh0U2V0VGV4dFBvc2l0aW9uKCkgaGFzIHRo
ZSBzaWRlIGVmZmVjdCBvZiBjbG9iYmVyaW5nIHRoZSBFIGFuZCBGIGZpZWxkcyBvZiB0aGUgdGV4
dCBtYXRyaXgsCi0gICAgLy8gc28gd2UgZG8gdGhhdCBleHBsaWNpdGx5IGhlcmUuCi0gICAgcmVz
dWx0LnNldEUoMCk7Ci0gICAgcmVzdWx0LnNldEYoMCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0K
LQotQWZmaW5lVHJhbnNmb3JtIGNvbXB1dGVWZXJ0aWNhbFRleHRNYXRyaXgoY29uc3QgRm9udCYg
Zm9udCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwcmV2aW91c1RleHRNYXRyaXgpCi17Ci0gICAg
QVNTRVJUX1VOVVNFRChmb250LCBmb250LnBsYXRmb3JtRGF0YSgpLm9yaWVudGF0aW9uKCkgPT0g
Rm9udE9yaWVudGF0aW9uOjpWZXJ0aWNhbCk7Ci0gICAgLy8gVGhlIHRyYW5zbGF0aW9uIGhlcmUg
KCJlIiBhbmQgImYiIGZpZWxkcykgYXJlIGlycmVsZXZhbnQsIGJlY2F1c2UKLSAgICAvLyB0aGlz
IG1hdHJpeCBpcyBpbnZlcnRlZCBpbiBmaWxsVmVjdG9yV2l0aFZlcnRpY2FsR2x5cGhQb3NpdGlv
bnMgdG8gcGxhY2UgdGhlIGdseXBocyBpbiB0aGUgQ1RNJ3MgY29vcmRpbmF0ZSBzeXN0ZW0uCi0g
ICAgLy8gQWxsIHdlJ3JlIHRyeWluZyB0byBkbyBoZXJlIGlzIHJvdGF0ZSB0aGUgdGV4dCBtYXRy
aXggc28gZ2x5cGhzIGFwcGVhciB2aXN1YWxseSB1cHJpZ2h0LgotICAgIC8vIFdlIGhhdmUgdG8g
aW5jbHVkZSB0aGUgcHJldmlvdXMgdGV4dCBtYXRyaXggYmVjYXVzZSBpdCBpbmNsdWRlcyB0aGlu
Z3MgbGlrZSBzeW50aGV0aWMgb2JsaXF1ZS4KLSAgICByZXR1cm4gcm90YXRlTGVmdFRyYW5zZm9y
bSgpICogcHJldmlvdXNUZXh0TWF0cml4OwotfQotCiB2b2lkIEZvbnRDYXNjYWRlOjpkcmF3R2x5
cGhzKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5
cGhCdWZmZXImIGdseXBoQnVmZmVyLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMs
IGNvbnN0IEZsb2F0UG9pbnQmIGFuY2hvclBvaW50LCBGb250U21vb3RoaW5nTW9kZSBzbW9vdGhp
bmdNb2RlKQogewogICAgIGNvbnN0IGF1dG8mIHBsYXRmb3JtRGF0YSA9IGZvbnQucGxhdGZvcm1E
YXRhKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNv
cmRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjRmOGU1NDc5OTVmOTkzNzM0MjAyZGExMjZhYjBmMTcxMzI5Y2Nl
M2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaApAQCAtMCwwICsxLDEx
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCisjaW5jbHVkZSAiQ29sb3Iu
aCIKKyNpbmNsdWRlICJHcmFkaWVudC5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgor
I2luY2x1ZGUgIlBhdHRlcm4uaCIKKyNpbmNsdWRlICJUZXh0RmxhZ3MuaCIKKworI2lmIFVTRShD
T1JFX1RFWFQpCisjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NvcmVHcmFwaGljcy5oPgorI2luY2x1
ZGUgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBGbG9hdFBvaW50OworY2xhc3MgRm9udDsKK2NsYXNzIEdseXBoQnVm
ZmVyOworY2xhc3MgR3JhcGhpY3NDb250ZXh0OworCituYW1lc3BhY2UgRGlzcGxheUxpc3Qgewor
CitjbGFzcyBSZWNvcmRlcjsKKworY2xhc3MgRHJhd0dseXBoc1JlY29yZGVyIHsKK3B1YmxpYzoK
KyAgICBleHBsaWNpdCBEcmF3R2x5cGhzUmVjb3JkZXIoUmVjb3JkZXImKTsKKworICAgIHZvaWQg
ZHJhd0dseXBocyhjb25zdCBGb250JiwgY29uc3QgR2x5cGhCdWZmZXImLCB1bnNpZ25lZCBmcm9t
LCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmIGFuY2hvclBvaW50LCBGb250
U21vb3RoaW5nTW9kZSk7CisKKyNpZiBVU0UoQ09SRV9URVhUKQorICAgIHZvaWQgcmVjb3JkQmVn
aW5MYXllcihDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiwgQ0dSZWN0KTsKKyAgICB2
b2lkIHJlY29yZEVuZExheWVyKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmKTsKKyAg
ICB2b2lkIHJlY29yZERyYXdHbHlwaHMoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYs
IGNvbnN0IENHQWZmaW5lVHJhbnNmb3JtKiwgY29uc3QgQ0dHbHlwaFtdLCBjb25zdCBDR1BvaW50
IHBvc2l0aW9uc1tdLCBzaXplX3QgY291bnQpOworICAgIHZvaWQgcmVjb3JkRHJhd0ltYWdlKENH
UmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVmLCBDR1JlY3QsIENHSW1hZ2VSZWYpOworI2Vu
ZGlmCisKK3ByaXZhdGU6CisgICAgR3JhcGhpY3NDb250ZXh0IGNyZWF0ZUludGVybmFsQ29udGV4
dCgpOworCisgICAgdm9pZCBwb3B1bGF0ZUludGVybmFsU3RhdGUoY29uc3QgR3JhcGhpY3NDb250
ZXh0U3RhdGUmKTsKKyAgICB2b2lkIHBvcHVsYXRlSW50ZXJuYWxDb250ZXh0KGNvbnN0IEdyYXBo
aWNzQ29udGV4dFN0YXRlJik7CisgICAgdm9pZCBwcmVwYXJlSW50ZXJuYWxDb250ZXh0KGNvbnN0
IEZvbnQmLCBGb250U21vb3RoaW5nTW9kZSk7CisgICAgdm9pZCBjb25jbHVkZUludGVybmFsQ29u
dGV4dCgpOworCisgICAgdm9pZCB1cGRhdGVGaWxsQ29sb3IoY29uc3QgQ29sb3ImLCBHcmFkaWVu
dCogPSBudWxscHRyLCBQYXR0ZXJuKiA9IG51bGxwdHIpOworICAgIHZvaWQgdXBkYXRlU3Ryb2tl
Q29sb3IoY29uc3QgQ29sb3ImLCBHcmFkaWVudCogPSBudWxscHRyLCBQYXR0ZXJuKiA9IG51bGxw
dHIpOworICAgIHZvaWQgdXBkYXRlQ1RNKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpOworICAgIGVu
dW0gY2xhc3MgU2hhZG93c0lnbm9yZVRyYW5zZm9ybXMgeworICAgICAgICBVbnNwZWNpZmllZCwK
KyAgICAgICAgWWVzLAorICAgICAgICBObworICAgIH07CisgICAgdm9pZCB1cGRhdGVTaGFkb3co
Y29uc3QgRmxvYXRTaXplJiBzaGFkb3dPZmZzZXQsIGZsb2F0IHNoYWRvd0JsdXIsIGNvbnN0IENv
bG9yJiBzaGFkb3dDb2xvciwgU2hhZG93c0lnbm9yZVRyYW5zZm9ybXMpOworCisjaWYgVVNFKENP
UkVfVEVYVCkKKyAgICB2b2lkIHVwZGF0ZVNoYWRvdyhDR1N0eWxlUmVmKTsKKyNlbmRpZgorCisg
ICAgUmVjb3JkZXImIG1fb3duZXI7CisgICAgR3JhcGhpY3NDb250ZXh0IG1faW50ZXJuYWxDb250
ZXh0OworICAgIGNvbnN0IEZvbnQqIG1fb3JpZ2luYWxGb250IHsgbnVsbHB0ciB9OworICAgIEZv
bnRTbW9vdGhpbmdNb2RlIG1fc21vb3RoaW5nTW9kZSB7IEZvbnRTbW9vdGhpbmdNb2RlOjpBdXRv
U21vb3RoaW5nIH07CisgICAgQWZmaW5lVHJhbnNmb3JtIG1fb3JpZ2luYWxUZXh0TWF0cml4Owor
CisgICAgc3RydWN0IFN0YXRlIHsKKyAgICAgICAgc3RydWN0IFN0eWxlIHsKKyAgICAgICAgICAg
IENvbG9yIGNvbG9yOworICAgICAgICAgICAgUmVmUHRyPEdyYWRpZW50PiBncmFkaWVudDsKKyAg
ICAgICAgICAgIFJlZlB0cjxQYXR0ZXJuPiBwYXR0ZXJuOworICAgICAgICB9OworICAgICAgICBT
dHlsZSBmaWxsU3R5bGU7CisgICAgICAgIFN0eWxlIHN0cm9rZVN0eWxlOworCisgICAgICAgIEFm
ZmluZVRyYW5zZm9ybSBjdG07CisKKyAgICAgICAgc3RydWN0IFNoYWRvd1N0YXRlIHsKKyAgICAg
ICAgICAgIEZsb2F0U2l6ZSBvZmZzZXQ7CisgICAgICAgICAgICBmbG9hdCBibHVyIHsgMCB9Owor
ICAgICAgICAgICAgQ29sb3IgY29sb3I7CisgICAgICAgICAgICBib29sIGlnbm9yZVRyYW5zZm9y
bXMgeyBmYWxzZSB9OworICAgICAgICB9OworICAgICAgICBTaGFkb3dTdGF0ZSBzaGFkb3c7Cisg
ICAgfTsKKyAgICBTdGF0ZSBtX29yaWdpbmFsU3RhdGU7CisgICAgU3RhdGUgbV9jdXJyZW50U3Rh
dGU7Cit9OworCit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mN2NhNmJi
ZmZkOThmYTBkZjY4YTgxMzQ4Y2FlZDU4NjNhYTdkNTAzCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJh
d0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwCkBAIC0wLDAgKzEsMzcxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkRpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmgiCisKKyNpbmNsdWRlICJC
aXRtYXBJbWFnZS5oIgorI2luY2x1ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSAiRGlzcGxheUxpc3RJ
dGVtcy5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0UmVjb3JkZXIuaCIKKyNpbmNsdWRlICJGbG9h
dFBvaW50LmgiCisjaW5jbHVkZSAiRm9udC5oIgorI2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgiCisj
aW5jbHVkZSAiR2x5cGhCdWZmZXIuaCIKKworI2luY2x1ZGUgPENvcmVUZXh0L0NvcmVUZXh0Lmg+
CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCisjaWYgUExBVEZPUk0oV0lOKQorI2luY2x1ZGUg
PHBhbC9zcGkvd2luL0NvcmVUZXh0U1BJV2luLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCituYW1lc3BhY2UgRGlzcGxheUxpc3QgeworCitzdGF0aWMgQ0dDb250ZXh0RGVsZWdh
dGVSZWYgYmVnaW5MYXllcihDR0NvbnRleHREZWxlZ2F0ZVJlZiBkZWxlZ2F0ZSwgQ0dSZW5kZXJp
bmdTdGF0ZVJlZiByc3RhdGUsIENHR1N0YXRlUmVmIGdzdGF0ZSwgQ0dSZWN0IHJlY3QsIENGRGlj
dGlvbmFyeVJlZiwgQ0dDb250ZXh0RGVsZWdhdGVSZWYpCit7CisgICAgRHJhd0dseXBoc1JlY29y
ZGVyJiByZWNvcmRlciA9ICpzdGF0aWNfY2FzdDxEcmF3R2x5cGhzUmVjb3JkZXIqPihDR0NvbnRl
eHREZWxlZ2F0ZUdldEluZm8oZGVsZWdhdGUpKTsKKyAgICByZWNvcmRlci5yZWNvcmRCZWdpbkxh
eWVyKHJzdGF0ZSwgZ3N0YXRlLCByZWN0KTsKKyAgICByZXR1cm4gZGVsZWdhdGU7Cit9CisKK3N0
YXRpYyBDR0NvbnRleHREZWxlZ2F0ZVJlZiBlbmRMYXllcihDR0NvbnRleHREZWxlZ2F0ZVJlZiBk
ZWxlZ2F0ZSwgQ0dSZW5kZXJpbmdTdGF0ZVJlZiByc3RhdGUsIENHR1N0YXRlUmVmIGdzdGF0ZSkK
K3sKKyAgICBEcmF3R2x5cGhzUmVjb3JkZXImIHJlY29yZGVyID0gKnN0YXRpY19jYXN0PERyYXdH
bHlwaHNSZWNvcmRlcio+KENHQ29udGV4dERlbGVnYXRlR2V0SW5mbyhkZWxlZ2F0ZSkpOworICAg
IHJlY29yZGVyLnJlY29yZEVuZExheWVyKHJzdGF0ZSwgZ3N0YXRlKTsKKyAgICByZXR1cm4gZGVs
ZWdhdGU7Cit9CisKK3N0YXRpYyBDR0Vycm9yIGRyYXdHbHlwaHMoQ0dDb250ZXh0RGVsZWdhdGVS
ZWYgZGVsZWdhdGUsIENHUmVuZGVyaW5nU3RhdGVSZWYgcnN0YXRlLCBDR0dTdGF0ZVJlZiBnc3Rh
dGUsIGNvbnN0IENHQWZmaW5lVHJhbnNmb3JtKiB0bSwgY29uc3QgQ0dHbHlwaCBnbHlwaHNbXSwg
Y29uc3QgQ0dQb2ludCBwb3NpdGlvbnNbXSwgc2l6ZV90IGNvdW50KQoreworICAgIGlmIChDR0dT
dGF0ZUdldEFscGhhKGdzdGF0ZSkgPiAwKSB7CisgICAgICAgIERyYXdHbHlwaHNSZWNvcmRlciYg
cmVjb3JkZXIgPSAqc3RhdGljX2Nhc3Q8RHJhd0dseXBoc1JlY29yZGVyKj4oQ0dDb250ZXh0RGVs
ZWdhdGVHZXRJbmZvKGRlbGVnYXRlKSk7CisgICAgICAgIHJlY29yZGVyLnJlY29yZERyYXdHbHlw
aHMocnN0YXRlLCBnc3RhdGUsIHRtLCBnbHlwaHMsIHBvc2l0aW9ucywgY291bnQpOworICAgIH0K
KyAgICByZXR1cm4ga0NHRXJyb3JTdWNjZXNzOworfQorCitzdGF0aWMgQ0dFcnJvciBkcmF3SW1h
Z2UoQ0dDb250ZXh0RGVsZWdhdGVSZWYgZGVsZWdhdGUsIENHUmVuZGVyaW5nU3RhdGVSZWYgcnN0
YXRlLCBDR0dTdGF0ZVJlZiBnc3RhdGUsIENHUmVjdCByZWN0LCBDR0ltYWdlUmVmIGltYWdlKQor
eworICAgIERyYXdHbHlwaHNSZWNvcmRlciYgcmVjb3JkZXIgPSAqc3RhdGljX2Nhc3Q8RHJhd0ds
eXBoc1JlY29yZGVyKj4oQ0dDb250ZXh0RGVsZWdhdGVHZXRJbmZvKGRlbGVnYXRlKSk7CisgICAg
cmVjb3JkZXIucmVjb3JkRHJhd0ltYWdlKHJzdGF0ZSwgZ3N0YXRlLCByZWN0LCBpbWFnZSk7Cisg
ICAgcmV0dXJuIGtDR0Vycm9yU3VjY2VzczsKK30KKworR3JhcGhpY3NDb250ZXh0IERyYXdHbHlw
aHNSZWNvcmRlcjo6Y3JlYXRlSW50ZXJuYWxDb250ZXh0KCkKK3sKKyAgICBhdXRvIGNvbnRleHRE
ZWxlZ2F0ZSA9IGFkb3B0Q0YoQ0dDb250ZXh0RGVsZWdhdGVDcmVhdGUodGhpcykpOworICAgIENH
Q29udGV4dERlbGVnYXRlU2V0Q2FsbGJhY2soY29udGV4dERlbGVnYXRlLmdldCgpLCBkZUJlZ2lu
TGF5ZXIsIHJlaW50ZXJwcmV0X2Nhc3Q8Q0dDb250ZXh0RGVsZWdhdGVDYWxsYmFjaz4oJmJlZ2lu
TGF5ZXIpKTsKKyAgICBDR0NvbnRleHREZWxlZ2F0ZVNldENhbGxiYWNrKGNvbnRleHREZWxlZ2F0
ZS5nZXQoKSwgZGVFbmRMYXllciwgcmVpbnRlcnByZXRfY2FzdDxDR0NvbnRleHREZWxlZ2F0ZUNh
bGxiYWNrPigmZW5kTGF5ZXIpKTsKKyAgICBDR0NvbnRleHREZWxlZ2F0ZVNldENhbGxiYWNrKGNv
bnRleHREZWxlZ2F0ZS5nZXQoKSwgZGVEcmF3R2x5cGhzLCByZWludGVycHJldF9jYXN0PENHQ29u
dGV4dERlbGVnYXRlQ2FsbGJhY2s+KCZXZWJDb3JlOjpEaXNwbGF5TGlzdDo6ZHJhd0dseXBocykp
OworICAgIENHQ29udGV4dERlbGVnYXRlU2V0Q2FsbGJhY2soY29udGV4dERlbGVnYXRlLmdldCgp
LCBkZURyYXdJbWFnZSwgcmVpbnRlcnByZXRfY2FzdDxDR0NvbnRleHREZWxlZ2F0ZUNhbGxiYWNr
PigmZHJhd0ltYWdlKSk7CisgICAgYXV0byBjb250ZXh0ID0gYWRvcHRDRihDR0NvbnRleHRDcmVh
dGVXaXRoRGVsZWdhdGUoY29udGV4dERlbGVnYXRlLmdldCgpLCBrQ0dDb250ZXh0VHlwZVVua25v
d24sIG51bGxwdHIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0KGNvbnRl
eHQuZ2V0KCkpOworfQorCitEcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdHbHlwaHNSZWNvcmRlcihS
ZWNvcmRlciYgb3duZXIpCisgICAgOiBtX293bmVyKG93bmVyKQorICAgICwgbV9pbnRlcm5hbENv
bnRleHQoY3JlYXRlSW50ZXJuYWxDb250ZXh0KCkpCit7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1Jl
Y29yZGVyOjpwb3B1bGF0ZUludGVybmFsU3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUm
IGNvbnRleHRTdGF0ZSkKK3sKKyAgICBtX29yaWdpbmFsU3RhdGUuZmlsbFN0eWxlLmNvbG9yID0g
Y29udGV4dFN0YXRlLmZpbGxDb2xvcjsKKyAgICBtX29yaWdpbmFsU3RhdGUuZmlsbFN0eWxlLmdy
YWRpZW50ID0gY29udGV4dFN0YXRlLmZpbGxHcmFkaWVudDsKKyAgICBtX29yaWdpbmFsU3RhdGUu
ZmlsbFN0eWxlLnBhdHRlcm4gPSBjb250ZXh0U3RhdGUuZmlsbFBhdHRlcm47CisKKyAgICBtX29y
aWdpbmFsU3RhdGUuc3Ryb2tlU3R5bGUuY29sb3IgPSBjb250ZXh0U3RhdGUuc3Ryb2tlQ29sb3I7
CisgICAgbV9vcmlnaW5hbFN0YXRlLnN0cm9rZVN0eWxlLmdyYWRpZW50ID0gY29udGV4dFN0YXRl
LnN0cm9rZUdyYWRpZW50OworICAgIG1fb3JpZ2luYWxTdGF0ZS5zdHJva2VTdHlsZS5wYXR0ZXJu
ID0gY29udGV4dFN0YXRlLnN0cm9rZVBhdHRlcm47CisKKyAgICBtX29yaWdpbmFsU3RhdGUuY3Rt
ID0gbV9vd25lci5jdXJyZW50U3RhdGUoKS5jdG07IC8vIEZJWE1FOiBEZWFsIHdpdGggYmFzZSBD
VE0uCisKKyAgICBtX29yaWdpbmFsU3RhdGUuc2hhZG93Lm9mZnNldCA9IGNvbnRleHRTdGF0ZS5z
aGFkb3dPZmZzZXQ7CisgICAgbV9vcmlnaW5hbFN0YXRlLnNoYWRvdy5ibHVyID0gY29udGV4dFN0
YXRlLnNoYWRvd0JsdXI7CisgICAgbV9vcmlnaW5hbFN0YXRlLnNoYWRvdy5jb2xvciA9IGNvbnRl
eHRTdGF0ZS5zaGFkb3dDb2xvcjsKKyAgICBtX29yaWdpbmFsU3RhdGUuc2hhZG93Lmlnbm9yZVRy
YW5zZm9ybXMgPSBjb250ZXh0U3RhdGUuc2hhZG93c0lnbm9yZVRyYW5zZm9ybXM7CisKKyAgICBt
X2N1cnJlbnRTdGF0ZSA9IG1fb3JpZ2luYWxTdGF0ZTsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVj
b3JkZXI6OnBvcHVsYXRlSW50ZXJuYWxDb250ZXh0KGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRl
JiBjb250ZXh0U3RhdGUpCit7CisgICAgaWYgKG1fb3JpZ2luYWxTdGF0ZS5maWxsU3R5bGUuY29s
b3IuaXNWYWxpZCgpKQorICAgICAgICBtX2ludGVybmFsQ29udGV4dC5zZXRGaWxsQ29sb3IobV9v
cmlnaW5hbFN0YXRlLmZpbGxTdHlsZS5jb2xvcik7CisgICAgZWxzZSBpZiAobV9vcmlnaW5hbFN0
YXRlLmZpbGxTdHlsZS5ncmFkaWVudCkKKyAgICAgICAgbV9pbnRlcm5hbENvbnRleHQuc2V0Rmls
bEdyYWRpZW50KCptX29yaWdpbmFsU3RhdGUuZmlsbFN0eWxlLmdyYWRpZW50KTsKKyAgICBlbHNl
IHsKKyAgICAgICAgQVNTRVJUKG1fb3JpZ2luYWxTdGF0ZS5maWxsU3R5bGUucGF0dGVybik7Cisg
ICAgICAgIGlmIChtX29yaWdpbmFsU3RhdGUuZmlsbFN0eWxlLnBhdHRlcm4pCisgICAgICAgICAg
ICBtX2ludGVybmFsQ29udGV4dC5zZXRGaWxsUGF0dGVybigqbV9vcmlnaW5hbFN0YXRlLmZpbGxT
dHlsZS5wYXR0ZXJuKTsKKyAgICB9CisKKyAgICBpZiAobV9vcmlnaW5hbFN0YXRlLnN0cm9rZVN0
eWxlLmNvbG9yLmlzVmFsaWQoKSkKKyAgICAgICAgbV9pbnRlcm5hbENvbnRleHQuc2V0U3Ryb2tl
Q29sb3IobV9vcmlnaW5hbFN0YXRlLnN0cm9rZVN0eWxlLmNvbG9yKTsKKyAgICBlbHNlIGlmICht
X29yaWdpbmFsU3RhdGUuc3Ryb2tlU3R5bGUuZ3JhZGllbnQpCisgICAgICAgIG1faW50ZXJuYWxD
b250ZXh0LnNldFN0cm9rZUdyYWRpZW50KCptX29yaWdpbmFsU3RhdGUuc3Ryb2tlU3R5bGUuZ3Jh
ZGllbnQpOworICAgIGVsc2UgeworICAgICAgICBBU1NFUlQobV9vcmlnaW5hbFN0YXRlLnN0cm9r
ZVN0eWxlLnBhdHRlcm4pOworICAgICAgICBpZiAobV9vcmlnaW5hbFN0YXRlLnN0cm9rZVN0eWxl
LnBhdHRlcm4pCisgICAgICAgICAgICBtX2ludGVybmFsQ29udGV4dC5zZXRTdHJva2VQYXR0ZXJu
KCptX29yaWdpbmFsU3RhdGUuc3Ryb2tlU3R5bGUucGF0dGVybik7CisgICAgfQorCisgICAgbV9p
bnRlcm5hbENvbnRleHQuc2V0Q1RNKG1fb3JpZ2luYWxTdGF0ZS5jdG0pOworCisgICAgbV9pbnRl
cm5hbENvbnRleHQuc2V0U2hhZG93c0lnbm9yZVRyYW5zZm9ybXMobV9vcmlnaW5hbFN0YXRlLnNo
YWRvdy5pZ25vcmVUcmFuc2Zvcm1zKTsKKyAgICBpZiAoY29udGV4dFN0YXRlLnNoYWRvd3NVc2VM
ZWdhY3lSYWRpdXMpCisgICAgICAgIG1faW50ZXJuYWxDb250ZXh0LnNldExlZ2FjeVNoYWRvdyht
X29yaWdpbmFsU3RhdGUuc2hhZG93Lm9mZnNldCwgbV9vcmlnaW5hbFN0YXRlLnNoYWRvdy5ibHVy
LCBtX29yaWdpbmFsU3RhdGUuc2hhZG93LmNvbG9yKTsKKyAgICBlbHNlCisgICAgICAgIG1faW50
ZXJuYWxDb250ZXh0LnNldFNoYWRvdyhtX29yaWdpbmFsU3RhdGUuc2hhZG93Lm9mZnNldCwgbV9v
cmlnaW5hbFN0YXRlLnNoYWRvdy5ibHVyLCBtX29yaWdpbmFsU3RhdGUuc2hhZG93LmNvbG9yKTsK
KworICAgIG1faW50ZXJuYWxDb250ZXh0LnNldFRleHREcmF3aW5nTW9kZShjb250ZXh0U3RhdGUu
dGV4dERyYXdpbmdNb2RlKTsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnByZXBhcmVJ
bnRlcm5hbENvbnRleHQoY29uc3QgRm9udCYgZm9udCwgRm9udFNtb290aGluZ01vZGUgc21vb3Ro
aW5nTW9kZSkKK3sKKyAgICBBU1NFUlQoQ0dBZmZpbmVUcmFuc2Zvcm1Jc0lkZW50aXR5KENURm9u
dEdldE1hdHJpeChmb250LnBsYXRmb3JtRGF0YSgpLmN0Rm9udCgpKSkpOworCisgICAgbV9vcmln
aW5hbEZvbnQgPSAmZm9udDsKKyAgICBtX3Ntb290aGluZ01vZGUgPSBzbW9vdGhpbmdNb2RlOwor
CisgICAgbV9vcmlnaW5hbFRleHRNYXRyaXggPSBjb21wdXRlT3ZlcmFsbFRleHRNYXRyaXgoZm9u
dCk7CisgICAgaWYgKGZvbnQucGxhdGZvcm1EYXRhKCkub3JpZW50YXRpb24oKSA9PSBGb250T3Jp
ZW50YXRpb246OlZlcnRpY2FsKQorICAgICAgICBtX29yaWdpbmFsVGV4dE1hdHJpeCA9IGNvbXB1
dGVWZXJ0aWNhbFRleHRNYXRyaXgoZm9udCwgbV9vcmlnaW5hbFRleHRNYXRyaXgpOworCisgICAg
YXV0byYgY29udGV4dFN0YXRlID0gbV9vd25lci5jdXJyZW50U3RhdGUoKS5zdGF0ZUNoYW5nZS5t
X3N0YXRlOworICAgIHBvcHVsYXRlSW50ZXJuYWxTdGF0ZShjb250ZXh0U3RhdGUpOworICAgIHBv
cHVsYXRlSW50ZXJuYWxDb250ZXh0KGNvbnRleHRTdGF0ZSk7Cit9CisKK3ZvaWQgRHJhd0dseXBo
c1JlY29yZGVyOjpjb25jbHVkZUludGVybmFsQ29udGV4dCgpCit7CisgICAgdXBkYXRlQ1RNKG1f
b3JpZ2luYWxTdGF0ZS5jdG0pOworICAgIHVwZGF0ZUZpbGxDb2xvcihtX29yaWdpbmFsU3RhdGUu
ZmlsbFN0eWxlLmNvbG9yLCBtX29yaWdpbmFsU3RhdGUuZmlsbFN0eWxlLmdyYWRpZW50LmdldCgp
LCBtX29yaWdpbmFsU3RhdGUuZmlsbFN0eWxlLnBhdHRlcm4uZ2V0KCkpOworICAgIHVwZGF0ZVN0
cm9rZUNvbG9yKG1fb3JpZ2luYWxTdGF0ZS5zdHJva2VTdHlsZS5jb2xvciwgbV9vcmlnaW5hbFN0
YXRlLnN0cm9rZVN0eWxlLmdyYWRpZW50LmdldCgpLCBtX29yaWdpbmFsU3RhdGUuc3Ryb2tlU3R5
bGUucGF0dGVybi5nZXQoKSk7CisgICAgdXBkYXRlU2hhZG93KG1fb3JpZ2luYWxTdGF0ZS5zaGFk
b3cub2Zmc2V0LCBtX29yaWdpbmFsU3RhdGUuc2hhZG93LmJsdXIsIG1fb3JpZ2luYWxTdGF0ZS5z
aGFkb3cuY29sb3IsIG1fb3JpZ2luYWxTdGF0ZS5zaGFkb3cuaWdub3JlVHJhbnNmb3JtcyA/IFNo
YWRvd3NJZ25vcmVUcmFuc2Zvcm1zOjpZZXMgOiBTaGFkb3dzSWdub3JlVHJhbnNmb3Jtczo6Tm8p
OworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6dXBkYXRlRmlsbENvbG9yKGNvbnN0IENv
bG9yJiBuZXdDb2xvciwgR3JhZGllbnQqIG5ld0dyYWRpZW50LCBQYXR0ZXJuKiBuZXdQYXR0ZXJu
KQoreworICAgIC8vIFRoaXMgY2hlY2sgbG9va3Mgd3JvbmcgYnV0IGl0IGFjdHVhbGx5IGlzbid0
LCBmb3Igb3VyIGxpbWl0ZWQgdXNlLgorICAgIC8vIENUIHdpbGwgb25seSBldmVyIHNldCB0aGlz
IHRvIGEgc29saWQgY29sb3IsIHdoaWNoIHRoaXMgaXMgdGhlIGNvcnJlY3QgY2hlY2sgZm9yLgor
ICAgIC8vIEluIGNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KCkgd2Ugc2V0IGl0IGJhY2sgdG8gd2hh
dCBpdCB3YXMgb3JpZ2luYWxseSwgd2hpY2ggdGhpcyBjaGVjayB3b3JrcyBjb3JyZWN0bHkgZm9y
IHRvby4KKyAgICBpZiAobmV3Q29sb3IgPT0gbV9jdXJyZW50U3RhdGUuZmlsbFN0eWxlLmNvbG9y
KQorICAgICAgICByZXR1cm47CisKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZSBuZXdTdGF0ZTsK
KyAgICBuZXdTdGF0ZS5maWxsQ29sb3IgPSBuZXdDb2xvcjsKKyAgICBpZiAobmV3R3JhZGllbnQp
CisgICAgICAgIG5ld1N0YXRlLmZpbGxHcmFkaWVudCA9IG5ld0dyYWRpZW50OworICAgIGlmIChu
ZXdQYXR0ZXJuKQorICAgICAgICBuZXdTdGF0ZS5maWxsUGF0dGVybiA9IG5ld1BhdHRlcm47Cisg
ICAgbV9vd25lci51cGRhdGVTdGF0ZShuZXdTdGF0ZSwgeyBHcmFwaGljc0NvbnRleHRTdGF0ZTo6
RmlsbENvbG9yQ2hhbmdlIH0pOworICAgIG1fY3VycmVudFN0YXRlLmZpbGxTdHlsZS5jb2xvciA9
IG5ld0NvbG9yOworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6dXBkYXRlU3Ryb2tlQ29s
b3IoY29uc3QgQ29sb3ImIG5ld0NvbG9yLCBHcmFkaWVudCogbmV3R3JhZGllbnQsIFBhdHRlcm4q
IG5ld1BhdHRlcm4pCit7CisgICAgLy8gVGhpcyBjaGVjayBsb29rcyB3cm9uZyBidXQgaXQgYWN0
dWFsbHkgaXNuJ3QsIGZvciBvdXIgbGltaXRlZCB1c2UuCisgICAgLy8gQ1Qgd2lsbCBvbmx5IGV2
ZXIgc2V0IHRoaXMgdG8gYSBzb2xpZCBjb2xvciwgd2hpY2ggdGhpcyBpcyB0aGUgY29ycmVjdCBj
aGVjayBmb3IuCisgICAgLy8gSW4gY29uY2x1ZGVJbnRlcm5hbENvbnRleHQoKSB3ZSBzZXQgaXQg
YmFjayB0byB3aGF0IGl0IHdhcyBvcmlnaW5hbGx5LCB3aGljaCB0aGlzIGNoZWNrIHdvcmtzIGNv
cnJlY3RseSBmb3IgdG9vLgorICAgIGlmIChuZXdDb2xvciA9PSBtX2N1cnJlbnRTdGF0ZS5zdHJv
a2VTdHlsZS5jb2xvcikKKyAgICAgICAgcmV0dXJuOworCisgICAgR3JhcGhpY3NDb250ZXh0U3Rh
dGUgbmV3U3RhdGU7CisgICAgbmV3U3RhdGUuc3Ryb2tlQ29sb3IgPSBuZXdDb2xvcjsKKyAgICBp
ZiAobmV3R3JhZGllbnQpCisgICAgICAgIG5ld1N0YXRlLnN0cm9rZUdyYWRpZW50ID0gbmV3R3Jh
ZGllbnQ7CisgICAgaWYgKG5ld1BhdHRlcm4pCisgICAgICAgIG5ld1N0YXRlLnN0cm9rZVBhdHRl
cm4gPSBuZXdQYXR0ZXJuOworICAgIG1fb3duZXIudXBkYXRlU3RhdGUobmV3U3RhdGUsIHsgR3Jh
cGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZUNvbG9yQ2hhbmdlIH0pOworICAgIG1fY3VycmVudFN0
YXRlLnN0cm9rZVN0eWxlLmNvbG9yID0gbmV3Q29sb3I7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1Jl
Y29yZGVyOjp1cGRhdGVDVE0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBjdG0pCit7CisgICAgaWYg
KGN0bSA9PSBtX2N1cnJlbnRTdGF0ZS5jdG0pCisgICAgICAgIHJldHVybjsKKworICAgIG1fb3du
ZXIuc2V0Q1RNKGN0bSk7CisgICAgbV9jdXJyZW50U3RhdGUuY3RtID0gY3RtOworfQorCitzdGF0
aWMgYm9vbCBzaGFkb3dJc0NsZWFyZWQoY29uc3QgRmxvYXRTaXplJiBzaGFkb3dPZmZzZXQsIGZs
b2F0IHNoYWRvd0JsdXIpCit7CisgICAgcmV0dXJuIHNoYWRvd09mZnNldCA9PSBGbG9hdFNpemUo
KSAmJiAhc2hhZG93Qmx1cjsKK30KKwordm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnVwZGF0ZVNo
YWRvdyhjb25zdCBGbG9hdFNpemUmIHNoYWRvd09mZnNldCwgZmxvYXQgc2hhZG93Qmx1ciwgY29u
c3QgQ29sb3ImIHNoYWRvd0NvbG9yLCBTaGFkb3dzSWdub3JlVHJhbnNmb3JtcyBzaGFkb3dzSWdu
b3JlVHJhbnNmb3JtcykKK3sKKyAgICAvLyBXZSBkb24ndCBuZWVkIHRvIGNvbnNpZGVyIHNoYWRv
d3NJZ25vcmVUcmFuc2Zvcm1zIGlmIG5vYm9keSBoYXMgYW55IHNoYWRvd3MuCisgICAgaWYgKHNo
YWRvd0lzQ2xlYXJlZChzaGFkb3dPZmZzZXQsIHNoYWRvd0JsdXIpICYmIHNoYWRvd0lzQ2xlYXJl
ZChtX2N1cnJlbnRTdGF0ZS5zaGFkb3cub2Zmc2V0LCBtX2N1cnJlbnRTdGF0ZS5zaGFkb3cuYmx1
cikpCisgICAgICAgIHJldHVybjsKKworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlIG5ld1N0YXRl
OworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIHN0YXRlQ2hhbmdl
RmxhZ3M7CisKKyAgICBpZiAoc2hhZG93T2Zmc2V0ICE9IG1fY3VycmVudFN0YXRlLnNoYWRvdy5v
ZmZzZXQgfHwgc2hhZG93Qmx1ciAhPSBtX2N1cnJlbnRTdGF0ZS5zaGFkb3cuYmx1ciB8fCBzaGFk
b3dDb2xvciAhPSBtX2N1cnJlbnRTdGF0ZS5zaGFkb3cuY29sb3IpIHsKKyAgICAgICAgbmV3U3Rh
dGUuc2hhZG93T2Zmc2V0ID0gc2hhZG93T2Zmc2V0OworICAgICAgICBuZXdTdGF0ZS5zaGFkb3dC
bHVyID0gc2hhZG93Qmx1cjsKKyAgICAgICAgbmV3U3RhdGUuc2hhZG93Q29sb3IgPSBzaGFkb3dD
b2xvcjsKKyAgICAgICAgc3RhdGVDaGFuZ2VGbGFncy5hZGQoR3JhcGhpY3NDb250ZXh0U3RhdGU6
OlNoYWRvd0NoYW5nZSk7CisgICAgfQorICAgIGlmIChzaGFkb3dzSWdub3JlVHJhbnNmb3JtcyAh
PSBTaGFkb3dzSWdub3JlVHJhbnNmb3Jtczo6VW5zcGVjaWZpZWQgJiYgKHNoYWRvd3NJZ25vcmVU
cmFuc2Zvcm1zID09IFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOjpZZXMpICE9IG1fY3VycmVudFN0
YXRlLnNoYWRvdy5pZ25vcmVUcmFuc2Zvcm1zKSB7CisgICAgICAgIG5ld1N0YXRlLnNoYWRvd3NJ
Z25vcmVUcmFuc2Zvcm1zID0gKHNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zID09IFNoYWRvd3NJZ25v
cmVUcmFuc2Zvcm1zOjpZZXMpOworICAgICAgICBzdGF0ZUNoYW5nZUZsYWdzLmFkZChHcmFwaGlj
c0NvbnRleHRTdGF0ZTo6U2hhZG93c0lnbm9yZVRyYW5zZm9ybXNDaGFuZ2UpOworICAgIH0KKyAg
ICBpZiAoc3RhdGVDaGFuZ2VGbGFncy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKyAgICBt
X293bmVyLnVwZGF0ZVN0YXRlKG5ld1N0YXRlLCBzdGF0ZUNoYW5nZUZsYWdzKTsKKworICAgIG1f
Y3VycmVudFN0YXRlLnNoYWRvdy5vZmZzZXQgPSBzaGFkb3dPZmZzZXQ7CisgICAgbV9jdXJyZW50
U3RhdGUuc2hhZG93LmJsdXIgPSBzaGFkb3dCbHVyOworICAgIG1fY3VycmVudFN0YXRlLnNoYWRv
dy5jb2xvciA9IHNoYWRvd0NvbG9yOworICAgIG1fY3VycmVudFN0YXRlLnNoYWRvdy5pZ25vcmVU
cmFuc2Zvcm1zID0gKHNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zID09IFNoYWRvd3NJZ25vcmVUcmFu
c2Zvcm1zOjpZZXMpOworfQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6dXBkYXRlU2hhZG93
KENHU3R5bGVSZWYgc3R5bGUpCit7CisgICAgaWYgKENHU3R5bGVHZXRUeXBlKHN0eWxlKSAhPSBr
Q0dTdHlsZVNoYWRvdykgeworICAgICAgICAvLyBGSVhNRTogU3VwcG9ydCBtb3JlIGtpbmRzIG9m
IENHU3R5bGVzLgorICAgICAgICB1cGRhdGVTaGFkb3coezAsIDB9LCAwLCBDb2xvcigpLCBTaGFk
b3dzSWdub3JlVHJhbnNmb3Jtczo6VW5zcGVjaWZpZWQpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgY29uc3QgYXV0byYgc2hhZG93U3R5bGUgPSAqc3RhdGljX2Nhc3Q8Y29uc3QgQ0dT
aGFkb3dTdHlsZSo+KENHU3R5bGVHZXREYXRhKHN0eWxlKSk7CisgICAgYXV0byByYWQgPSBkZWcy
cmFkKHNoYWRvd1N0eWxlLmF6aW11dGggLSAxODApOworICAgIGF1dG8gc2hhZG93T2Zmc2V0ID0g
RmxvYXRTaXplKHN0ZDo6Y29zKHJhZCksIHN0ZDo6c2luKHJhZCkpICogc2hhZG93U3R5bGUuaGVp
Z2h0OworICAgIHVwZGF0ZVNoYWRvdyhzaGFkb3dPZmZzZXQsIHNoYWRvd1N0eWxlLnJhZGl1cywg
Q0dTdHlsZUdldENvbG9yKHN0eWxlKSwgU2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6Olllcyk7Cit9
CisKK3ZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpyZWNvcmRCZWdpbkxheWVyKENHUmVuZGVyaW5n
U3RhdGVSZWYsIENHR1N0YXRlUmVmIGdzdGF0ZSwgQ0dSZWN0KQoreworICAgIHVwZGF0ZUNUTSgq
Q0dHU3RhdGVHZXRDVE0oZ3N0YXRlKSk7CisgICAgYXV0byBhbHBoYSA9IENHR1N0YXRlR2V0QWxw
aGEoZ3N0YXRlKTsKKyAgICBtX293bmVyLmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoYWxwaGEpOwor
fQorCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6cmVjb3JkRW5kTGF5ZXIoQ0dSZW5kZXJpbmdT
dGF0ZVJlZiwgQ0dHU3RhdGVSZWYgZ3N0YXRlKQoreworICAgIHVwZGF0ZUNUTSgqQ0dHU3RhdGVH
ZXRDVE0oZ3N0YXRlKSk7CisgICAgbV9vd25lci5lbmRUcmFuc3BhcmVuY3lMYXllcigpOworfQor
CitzdGF0aWMgVmVjdG9yPENHU2l6ZT4gY29tcHV0ZUFkdmFuY2VzRnJvbVBvc2l0aW9ucyhjb25z
dCBDR1BvaW50IHBvc2l0aW9uc1tdLCBzaXplX3QgY291bnQsIGNvbnN0IENHQWZmaW5lVHJhbnNm
b3JtJiB0ZXh0TWF0cml4KQoreworICAgIFZlY3RvcjxDR1NpemU+IHJlc3VsdDsKKyAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGNvdW50IC0gMTsgKytpKSB7CisgICAgICAgIGF1dG8gbmV4dFBv
c2l0aW9uID0gcG9zaXRpb25zW2kgKyAxXTsKKyAgICAgICAgYXV0byBjdXJyZW50UG9zaXRpb24g
PSBwb3NpdGlvbnNbaV07CisgICAgICAgIGF1dG8gYWR2YW5jZSA9IENHU2l6ZU1ha2UobmV4dFBv
c2l0aW9uLnggLSBjdXJyZW50UG9zaXRpb24ueCwgbmV4dFBvc2l0aW9uLnkgLSBjdXJyZW50UG9z
aXRpb24ueSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoQ0dTaXplQXBwbHlBZmZpbmVUcmFuc2Zv
cm0oYWR2YW5jZSwgdGV4dE1hdHJpeCkpOworICAgIH0KKyAgICByZXN1bHQuY29uc3RydWN0QW5k
QXBwZW5kKENHU2l6ZU1ha2UoMCwgMCkpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3ZvaWQg
RHJhd0dseXBoc1JlY29yZGVyOjpyZWNvcmREcmF3R2x5cGhzKENHUmVuZGVyaW5nU3RhdGVSZWYs
IENHR1N0YXRlUmVmIGdzdGF0ZSwgY29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0qLCBjb25zdCBDR0ds
eXBoIGdseXBoc1tdLCBjb25zdCBDR1BvaW50IHBvc2l0aW9uc1tdLCBzaXplX3QgY291bnQpCit7
CisgICAgaWYgKCFjb3VudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgQ0dGb250UmVmIHVzZWRG
b250ID0gQ0dHU3RhdGVHZXRGb250KGdzdGF0ZSk7CisgICAgaWYgKHVzZWRGb250ICE9IGFkb3B0
Q0YoQ1RGb250Q29weUdyYXBoaWNzRm9udChtX29yaWdpbmFsRm9udC0+cGxhdGZvcm1EYXRhKCku
Y3RGb250KCksIG51bGxwdHIpKS5nZXQoKSkKKyAgICAgICAgcmV0dXJuOworCisjaWYgQVNTRVJU
X0VOQUJMRUQKKyAgICBhdXRvIHRleHRQb3NpdGlvbiA9IENHQ29udGV4dEdldFRleHRQb3NpdGlv
bihtX2ludGVybmFsQ29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKSk7CisgICAgQVNTRVJUKCF0ZXh0
UG9zaXRpb24ueCk7CisgICAgQVNTRVJUKCF0ZXh0UG9zaXRpb24ueSk7CisjZW5kaWYKKworICAg
IHVwZGF0ZUNUTSgqQ0dHU3RhdGVHZXRDVE0oZ3N0YXRlKSk7CisKKyAgICAvLyBXZSB3YW50IHRo
ZSByZXBsYXllcidzIENUTSBhbmQgdGV4dCBtYXRyaXggdG8gbWF0Y2ggdGhlIGN1cnJlbnQgQ1RN
IGFuZCB0ZXh0IG1hdHJpeC4KKyAgICAvLyBUaGUgY3VycmVudCB0ZXh0IG1hdHJpeCBpcyBhIGNv
bmNhdGVuYXRpb24gb2Ygd2hhdGV2ZXIgV2ViS2l0IHNldHMgaXQgdG8gYW5kIHdoYXRldmVyCisg
ICAgLy8gQ29yZSBUZXh0IGFwcGVuZHMgdG8gaXQuIFNvLCB3ZSBoYXZlCisgICAgLy8gQ1RNICog
bV9vcmlnaW5hbFRleHRNYXRyaXggKiBDb3JlIFRleHQncyB0ZXh0IG1hdHJpeC4KKyAgICAvLyBI
b3dldmVyLCBDR0NvbnRleHRHZXRUZXh0TWF0cml4KCkganVzdCB0ZWxscyB1cyB3aGF0IHRoZSB3
aG9sZSB0ZXh0IG1hdHJpeCBpcywgc28KKyAgICAvLyBtX29yaWdpbmFsVGV4dE1hdHJpeCAqIENv
cmUgVGV4dCdzIHRleHQgbWF0cml4ID0gY3VycmVudFRleHRNYXRyaXguCisgICAgLy8gVGhlIG9u
bHkgd2F5IHdlIGNhbiBlbXVsYXRlIENvcmUgVGV4dCdzIHRleHQgbWF0cml4IGlzIGJ5IG1vZGlm
eWluZyB0aGUgQ1RNIGhlcmUuCisgICAgLy8gU28sIGlmIHdlIGRvIHRoYXQsIHRoZSBHUFUgcHJv
Y2VzcyB3aWxsIGhhdmUKKyAgICAvLyBDVE0gKiBYICogbV9vcmlnaW5hbFRleHRNYXRyaXgKKyAg
ICAvLyBJZiB5b3Ugc2V0IHRoZXNlIHR3byBlcXVhbCB0byBlYWNoIG90aGVyLCBhbmQgc29sdmUg
Zm9yIFgsIHlvdSBnZXQKKyAgICAvLyBDVE0gKiBjdXJyZW50VGV4dE1hdHJpeCA9IENUTSAqIFgg
KiBtX29yaWdpbmFsVGV4dE1hdHJpeAorICAgIC8vIGN1cnJlbnRUZXh0TWF0cml4ICogaW52ZXJz
ZShtX29yaWdpbmFsVGV4dE1hdHJpeCkgPSBYCisgICAgQWZmaW5lVHJhbnNmb3JtIGN1cnJlbnRU
ZXh0TWF0cml4ID0gQ0dDb250ZXh0R2V0VGV4dE1hdHJpeChtX2ludGVybmFsQ29udGV4dC5wbGF0
Zm9ybUNvbnRleHQoKSk7CisgICAgQWZmaW5lVHJhbnNmb3JtIGN0bUZpeHVwOworICAgIGlmIChh
dXRvIGludmVydGVkT3JpZ2luYWxUZXh0TWF0cml4ID0gbV9vcmlnaW5hbFRleHRNYXRyaXguaW52
ZXJzZSgpKQorICAgICAgICBjdG1GaXh1cCA9IGN1cnJlbnRUZXh0TWF0cml4ICogaW52ZXJ0ZWRP
cmlnaW5hbFRleHRNYXRyaXgudmFsdWUoKTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gaW52ZXJzZUNU
TUZpeHVwOworICAgIGlmIChhdXRvIGludmVyc2UgPSBjdG1GaXh1cC5pbnZlcnNlKCkpCisgICAg
ICAgIGludmVyc2VDVE1GaXh1cCA9IGludmVyc2UudmFsdWUoKTsKKyAgICBlbHNlCisgICAgICAg
IGN0bUZpeHVwID0gQWZmaW5lVHJhbnNmb3JtKCk7CisgICAgbV9vd25lci5jb25jYXRDVE0oY3Rt
Rml4dXApOworCisgICAgdXBkYXRlRmlsbENvbG9yKENHR1N0YXRlR2V0RmlsbENvbG9yKGdzdGF0
ZSkpOworICAgIHVwZGF0ZVN0cm9rZUNvbG9yKENHR1N0YXRlR2V0U3Ryb2tlQ29sb3IoZ3N0YXRl
KSk7CisgICAgdXBkYXRlU2hhZG93KENHR1N0YXRlR2V0U3R5bGUoZ3N0YXRlKSk7CisKKyAgICBt
X293bmVyLmFwcGVuZEl0ZW1BbmRVcGRhdGVFeHRlbnQoRHJhd0dseXBoczo6Y3JlYXRlKCptX29y
aWdpbmFsRm9udCwgZ2x5cGhzLCBjb21wdXRlQWR2YW5jZXNGcm9tUG9zaXRpb25zKHBvc2l0aW9u
cywgY291bnQsIGN1cnJlbnRUZXh0TWF0cml4KS5kYXRhKCksIGNvdW50LCBjdXJyZW50VGV4dE1h
dHJpeC5tYXBQb2ludChwb3NpdGlvbnNbMF0pLCBtX3Ntb290aGluZ01vZGUpKTsKKworICAgIG1f
b3duZXIuY29uY2F0Q1RNKGludmVyc2VDVE1GaXh1cCk7Cit9CisKK3ZvaWQgRHJhd0dseXBoc1Jl
Y29yZGVyOjpyZWNvcmREcmF3SW1hZ2UoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVSZWYg
Z3N0YXRlLCBDR1JlY3QgcmVjdCwgQ0dJbWFnZVJlZiBjZ0ltYWdlKQoreworICAgIHVwZGF0ZUNU
TSgqQ0dHU3RhdGVHZXRDVE0oZ3N0YXRlKSk7CisgICAgdXBkYXRlU2hhZG93KENHR1N0YXRlR2V0
U3R5bGUoZ3N0YXRlKSk7CisKKyAgICAvLyBDb3JlIEdyYXBoaWNzIGFzc3VtZXMgYSAieSB1cCIg
Y29vcmRpbmF0ZSBzeXN0ZW0sIGJ1dCBpbiBXZWJLaXQsIHdlIHVzZSBhICJ5LWRvd24iIGNvb3Jk
aW5hdGUgc3lzdGVtLgorICAgIC8vIFRoaXMgbWVhbnMgdGhhdCBXZWJLaXQncyBkcmF3aW5nIHJv
dXRpbmVzIChHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZSgpKSBpbnRlbnRpb25hbGx5IGRyYXcg
aW1hZ2VzIHVwc2lkZS1kb3duIGZyb20gQ29yZSBHcmFwaGljcydzIHBvaW50IG9mIHZpZXcuCisg
ICAgLy8gKFRoZXJlJ3MgYSB5LWZsaXAgaW5zaWRlIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBHcmFw
aGljc0NvbnRleHQ6OmRyYXdJbWFnZSgpLikKKyAgICAvLyBUaGUgcmVjdCBoYXMgdGhlIHJpZ2h0
IGJvdW5kcywgYnV0IHdlIG5lZWQgdG8gdHJhbnNmb3JtIGZyb20gQ0cncyBjb29yZGluYXRlIHN5
c3RlbSB0byBXZWJLaXQncyBieSBwZXJmb3JtaW5nIG91ciBvd24geS1mbGlwIHNvIGltYWdlcyBh
cmUgZHJhd24gdGhlIHJpZ2h0LXNpZGUtdXAuCisgICAgLy8gV2UgZG8gdGhpcyBhdCB0aGUgYm91
bmRhcnkgYmV0d2VlbiB0aGUgdHdvIEFQSXMsIHdoaWNoIGlzIHJpZ2h0IGhlcmUuCisgICAgbV9v
d25lci50cmFuc2xhdGUoMCwgcmVjdC5zaXplLmhlaWdodCArIDIgKiByZWN0Lm9yaWdpbi55KTsK
KyAgICBtX293bmVyLnNjYWxlKEZsb2F0U2l6ZSgxLCAtMSkpOworCisgICAgYXV0byBpbWFnZSA9
IEJpdG1hcEltYWdlOjpjcmVhdGUoY2dJbWFnZSk7CisgICAgbV9vd25lci5hcHBlbmRJdGVtQW5k
VXBkYXRlRXh0ZW50KERyYXdJbWFnZTo6Y3JlYXRlKGltYWdlLCByZWN0LCB7eyB9LCBpbWFnZS0+
c2l6ZSgpfSwgeyBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Ub3BMZWZ0IH0pKTsKKworICAgIC8v
IFVuZG8gdGhlIGFib3ZlIHktZmxpcCB0byByZXN0b3JlIHRoZSBjb250ZXh0LgorICAgIG1fb3du
ZXIuc2NhbGUoRmxvYXRTaXplKDEsIC0xKSk7CisgICAgbV9vd25lci50cmFuc2xhdGUoMCwgLShy
ZWN0LnNpemUuaGVpZ2h0ICsgMiAqIHJlY3Qub3JpZ2luLnkpKTsKK30KKwordm9pZCBEcmF3R2x5
cGhzUmVjb3JkZXI6OmRyYXdHbHlwaHMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZm
ZXImIGdseXBoQnVmZmVyLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0
IEZsb2F0UG9pbnQmIHN0YXJ0UG9pbnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUp
Cit7CisgICAgcHJlcGFyZUludGVybmFsQ29udGV4dChmb250LCBzbW9vdGhpbmdNb2RlKTsKKyAg
ICBGb250Q2FzY2FkZTo6ZHJhd0dseXBocyhtX2ludGVybmFsQ29udGV4dCwgZm9udCwgZ2x5cGhC
dWZmZXIsIGZyb20sIG51bUdseXBocywgc3RhcnRQb2ludCwgc21vb3RoaW5nTW9kZSk7CisgICAg
Y29uY2x1ZGVJbnRlcm5hbENvbnRleHQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgRGlzcGxheUxp
c3QKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29y
ZGVySGFyZkJ1enouY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIzYWMzMjRiN2IwMGE5ZTE2YTU2YWQ2NzBjZTA0Y2ZhNzdmYzlmYTgKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHAKQEAgLTAsMCArMSw1MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJEaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIgorCisj
aW5jbHVkZSAiRGlzcGxheUxpc3RJdGVtcy5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0UmVjb3Jk
ZXIuaCIKKyNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiRm9udC5oIgorI2luY2x1
ZGUgIkdseXBoQnVmZmVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIERp
c3BsYXlMaXN0IHsKKworRHJhd0dseXBoc1JlY29yZGVyOjpEcmF3R2x5cGhzUmVjb3JkZXIoUmVj
b3JkZXImIG93bmVyKQorICAgIDogbV9vd25lcihvd25lcikKK3sKK30KKwordm9pZCBEcmF3R2x5
cGhzUmVjb3JkZXI6OmRyYXdHbHlwaHMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZm
ZXImIGdseXBoQnVmZmVyLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0
IEZsb2F0UG9pbnQmIHN0YXJ0UG9pbnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUp
Cit7CisgICAgbV9vd25lci5hcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KERyYXdHbHlwaHM6OmNy
ZWF0ZShmb250LCBnbHlwaEJ1ZmZlci5nbHlwaHMoZnJvbSksIGdseXBoQnVmZmVyLmFkdmFuY2Vz
KGZyb20pLCBudW1HbHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGluZ01vZGUpKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgRGlzcGxheUxpc3QKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0UmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCmluZGV4IDhkMWI2NDdiZGQ5ZjE2OWVm
ZWZiNTQyNTQ0MTc0NjIxZjA2Y2I2ZTUuLmQxNDJjMzc3OWNiOTkzZTczNzJiYjhiODg4N2ZjYzRj
NzUyZmU5ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKQEAg
LTQyLDYgKzQyLDcgQEAgUmVjb3JkZXI6OlJlY29yZGVyKEdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCwgRGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBjb25zdCBHcmEKICAgICA6IEdyYXBoaWNzQ29u
dGV4dEltcGwoY29udGV4dCwgaW5pdGlhbENsaXAsIEFmZmluZVRyYW5zZm9ybSgpKQogICAgICwg
bV9kaXNwbGF5TGlzdChkaXNwbGF5TGlzdCkKICAgICAsIG1fZGVsZWdhdGUoZGVsZWdhdGUpCisg
ICAgLCBtX2RyYXdHbHlwaHNSZWNvcmRlcigqdGhpcykKIHsKICAgICBMT0dfV0lUSF9TVFJFQU0o
RGlzcGxheUxpc3RzLCBzdHJlYW0gPDwgIlxuUmVjb3JkaW5nIHdpdGggY2xpcCAiIDw8IGluaXRp
YWxDbGlwKTsKICAgICBtX3N0YXRlU3RhY2suYXBwZW5kKHsgc3RhdGUsIGluaXRpYWxDVE0sIGlu
aXRpYWxDbGlwIH0pOwpAQCAtMTYzLDcgKzE2NCw3IEBAIHZvaWQgUmVjb3JkZXI6OnNldE1pdGVy
TGltaXQoZmxvYXQgbWl0ZXJMaW1pdCkKIAogdm9pZCBSZWNvcmRlcjo6ZHJhd0dseXBocyhjb25z
dCBGb250JiBmb250LCBjb25zdCBHbHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIHVuc2lnbmVkIGZy
b20sIHVuc2lnbmVkIG51bUdseXBocywgY29uc3QgRmxvYXRQb2ludCYgc3RhcnRQb2ludCwgRm9u
dFNtb290aGluZ01vZGUgc21vb3RoaW5nTW9kZSkKIHsKLSAgICBhcHBlbmRJdGVtQW5kVXBkYXRl
RXh0ZW50KERyYXdHbHlwaHM6OmNyZWF0ZShmb250LCBnbHlwaEJ1ZmZlci5nbHlwaHMoZnJvbSks
IGdseXBoQnVmZmVyLmFkdmFuY2VzKGZyb20pLCBudW1HbHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290
aGluZ01vZGUpKTsKKyAgICBtX2RyYXdHbHlwaHNSZWNvcmRlci5kcmF3R2x5cGhzKGZvbnQsIGds
eXBoQnVmZmVyLCBmcm9tLCBudW1HbHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGluZ01vZGUpOwog
fQogCiBJbWFnZURyYXdSZXN1bHQgUmVjb3JkZXI6OmRyYXdJbWFnZShJbWFnZSYgaW1hZ2UsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25z
dCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCkBAIC0yNDMsNiAr
MjQ0LDkgQEAgdm9pZCBSZWNvcmRlcjo6c2NhbGUoY29uc3QgRmxvYXRTaXplJiBzaXplKQogCiB2
b2lkIFJlY29yZGVyOjpjb25jYXRDVE0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0p
CiB7CisgICAgaWYgKHRyYW5zZm9ybS5pc0lkZW50aXR5KCkpCisgICAgICAgIHJldHVybjsKKwog
ICAgIGN1cnJlbnRTdGF0ZSgpLmNvbmNhdENUTSh0cmFuc2Zvcm0pOwogICAgIGFwcGVuZEl0ZW0o
Q29uY2F0ZW5hdGVDVE06OmNyZWF0ZSh0cmFuc2Zvcm0pKTsKIH0KQEAgLTQyOCw3ICs0MzIsMTcg
QEAgdm9pZCBSZWNvcmRlcjo6Y2xpcFRvSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImLCBjb25zdCBG
bG9hdFJlY3QmKQogCiB2b2lkIFJlY29yZGVyOjpjbGlwVG9EcmF3aW5nQ29tbWFuZHMoY29uc3Qg
RmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBGdW5jdGlvbjx2
b2lkKEdyYXBoaWNzQ29udGV4dCYpPiYmIGRyYXdpbmdGdW5jdGlvbikKIHsKLSAgICBhdXRvIHJl
Y29yZGluZ0NvbnRleHQgPSBtYWtlVW5pcXVlPERyYXdpbmdDb250ZXh0PihkZXN0aW5hdGlvbi5z
aXplKCkpOworICAgIC8vIFRoZSBpbml0aWFsIENUTSBtYXRjaGVzIEltYWdlQnVmZmVyJ3MgaW5p
dGlhbCBDVE0uCisgICAgQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSA9IGdldENUTShHcmFwaGlj
c0NvbnRleHQ6OkRlZmluaXRlbHlJbmNsdWRlRGV2aWNlU2NhbGUpOworICAgIEZsb2F0U2l6ZSBz
Y2FsZUZhY3Rvcih0cmFuc2Zvcm0ueFNjYWxlKCksIHRyYW5zZm9ybS55U2NhbGUoKSk7CisgICAg
YXV0byBzY2FsZWRTaXplID0gZXhwYW5kZWRJbnRTaXplKGRlc3RpbmF0aW9uLnNpemUoKSAqIHNj
YWxlRmFjdG9yKTsKKworICAgIEFmZmluZVRyYW5zZm9ybSBpbml0aWFsQ1RNOworICAgIGluaXRp
YWxDVE0uc2NhbGUoMSwgLTEpOworICAgIGluaXRpYWxDVE0udHJhbnNsYXRlKDAsIC1zY2FsZWRT
aXplLmhlaWdodCgpKTsKKyAgICBpbml0aWFsQ1RNLnNjYWxlKHNjYWxlZFNpemUgLyBkZXN0aW5h
dGlvbi5zaXplKCkpOworCisgICAgYXV0byByZWNvcmRpbmdDb250ZXh0ID0gbWFrZVVuaXF1ZTxE
cmF3aW5nQ29udGV4dD4oZGVzdGluYXRpb24uc2l6ZSgpLCBpbml0aWFsQ1RNKTsKICAgICBkcmF3
aW5nRnVuY3Rpb24ocmVjb3JkaW5nQ29udGV4dC0+Y29udGV4dCgpKTsKICAgICBhcHBlbmRJdGVt
KENsaXBUb0RyYXdpbmdDb21tYW5kczo6Y3JlYXRlKGRlc3RpbmF0aW9uLCBjb2xvclNwYWNlLCBy
ZWNvcmRpbmdDb250ZXh0LT50YWtlRGlzcGxheUxpc3QoKSkpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVj
b3JkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdFJlY29yZGVyLmgKaW5kZXggNWI4YTQ0YzUxODBjMWZlYWUwODVjMDFhODhkMDg1
NGQ2OTVmOTVhOS4uMzFjOGM4OTYzNzhjMGNhZmJiMjExMjg5NTk3Y2VlMjhiNGZhNzVkMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0UmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCkBAIC0yNiw2ICsyNiw3IEBACiAj
cHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkRpc3BsYXlMaXN0LmgiCisjaW5jbHVkZSAiRGlzcGxh
eUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRJbXBs
LmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIgLy8gRm9yIEltYWdlOjpUaWxlUnVsZS4KICNpbmNsdWRl
ICJUZXh0RmxhZ3MuaCIKQEAgLTYxLDggKzYyLDYgQEAgcHVibGljOgogCiAgICAgc2l6ZV90IGl0
ZW1Db3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheUxpc3QuaXRlbUNvdW50KCk7IH0KIAot
ICAgIHZvaWQgYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChSZWY8RHJhd2luZ0l0ZW0+JiYpOwot
CiAgICAgY2xhc3MgRGVsZWdhdGUgewogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB+RGVs
ZWdhdGUoKSB7IH0KQEAgLTcyLDYgKzcxLDcgQEAgcHVibGljOgogICAgIH07CiAKIHByaXZhdGU6
CisgICAgZnJpZW5kIGNsYXNzIERyYXdHbHlwaHNSZWNvcmRlcjsKICAgICBib29sIGhhc1BsYXRm
b3JtQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgUGxhdGZv
cm1HcmFwaGljc0NvbnRleHQqIHBsYXRmb3JtQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIG51bGxwdHI7IH0KIApAQCAtMTUxLDYgKzE1MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBh
cHBlbmRJdGVtKFJlZjxJdGVtPiYmKTsKICAgICB2b2lkIHdpbGxBcHBlbmRJdGVtKGNvbnN0IEl0
ZW0mKTsKICAgICB2b2lkIGRpZEFwcGVuZEl0ZW0oY29uc3QgSXRlbSYpOworICAgIHZvaWQgYXBw
ZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChSZWY8RHJhd2luZ0l0ZW0+JiYpOwogCiAgICAgdm9pZCBh
cHBlbmRTdGF0ZUNoYW5nZUl0ZW0oY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2UmLCBH
cmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyk7CiAKQEAgLTE5NSw2ICsxOTYs
OCBAQCBwcml2YXRlOgogICAgIERlbGVnYXRlKiBtX2RlbGVnYXRlOwogCiAgICAgVmVjdG9yPENv
bnRleHRTdGF0ZSwgMzI+IG1fc3RhdGVTdGFjazsKKworICAgIERyYXdHbHlwaHNSZWNvcmRlciBt
X2RyYXdHbHlwaHNSZWNvcmRlcjsKIH07CiAKIH0K
</data>
<flag name="commit-queue"
          id="429273"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>