<?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>124052</bug_id>
          
          <creation_ts>2013-11-08 10:23:03 -0800</creation_ts>
          <short_desc>[CSS Shapes] Shapes do not resolve dimensions specified in viewport units</short_desc>
          <delta_ts>2014-05-08 12:15:11 -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>CSS</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>87846</dependson>
          <blocked>89256</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Bear Travis">betravis</reporter>
          <assigned_to name="Bem Jones-Bey">bjonesbe</assigned_to>
          <cc>bjonesbe</cc>
    
    <cc>commit-queue</cc>
    
    <cc>d-r</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>pdr</cc>
    
    <cc>rhauck</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>948720</commentid>
    <comment_count>0</comment_count>
      <attachid>216409</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-11-08 10:23:03 -0800</bug_when>
    <thetext>Created attachment 216409
Testcase

When an element&apos;s height is set in viewport units, percentages in a shape do not resolve.
The shape resolves the percentages as if height were auto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994976</commentid>
    <comment_count>1</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2014-03-27 11:00:16 -0700</bug_when>
    <thetext>I believe this is actually caused by the same root cause as Bug 87846, and I&apos;m working on a fix for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997283</commentid>
    <comment_count>2</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2014-04-03 13:44:52 -0700</bug_when>
    <thetext>This isn&apos;t related to Bug 87846 at all, in fact shapes fail to work with viewport units in general, even specified on the shape itself. This is because the RenderView is not passed down into the code that computes the lengths. It is true that the fix for Bug 87846 will fix this, but depending on how long it takes to fix Bug 87846, I may fix this separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1004792</commentid>
    <comment_count>3</comment_count>
    <who name="Rebecca Hauck">rhauck</who>
    <bug_when>2014-04-28 17:27:09 -0700</bug_when>
    <thetext>Viewport units are also not computed on shape-margin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007468</commentid>
    <comment_count>4</comment_count>
      <attachid>231028</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2014-05-07 16:22:38 -0700</bug_when>
    <thetext>Created attachment 231028
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007656</commentid>
    <comment_count>5</comment_count>
      <attachid>231028</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2014-05-08 10:04:16 -0700</bug_when>
    <thetext>Comment on attachment 231028
Patch

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

r=me

&gt; Source/WebCore/css/BasicShapeFunctions.cpp:268
&gt; +float floatValueForCenterCoordinate(const BasicShapeCenterCoordinate&amp; center, float boxDimension, RenderView* view)

Can you use a reference instead of a pointer?

&gt; Source/WebCore/css/BasicShapeFunctions.h:48
&gt; +float floatValueForCenterCoordinate(const BasicShapeCenterCoordinate&amp;, float, RenderView*);

Ditto.

&gt; Source/WebCore/css/LengthFunctions.h:41
&gt; +FloatSize floatSizeForLengthSize(const LengthSize&amp;, const FloatSize&amp;, RenderView* = 0);

Hm, ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007672</commentid>
    <comment_count>6</comment_count>
      <attachid>231028</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-08 10:38:58 -0700</bug_when>
    <thetext>Comment on attachment 231028
Patch

Rejecting attachment 231028 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build-style=release&apos;, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
eBox.dia -c /Volumes/Data/EWS/WebKit/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp -o /Volumes/Data/EWS/WebKit/WebKitBuild/WebCore.build/Release/WebCore.build/Objects-normal/x86_64/RenderDeprecatedFlexibleBox.o

** BUILD FAILED **


The following build commands failed:
	CompileC /Volumes/Data/EWS/WebKit/WebKitBuild/WebCore.build/Release/WebCore.build/Objects-normal/x86_64/RenderBlock.o rendering/RenderBlock.cpp normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)

Full output: http://webkit-queues.appspot.com/results/6359674257408000</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007692</commentid>
    <comment_count>7</comment_count>
      <attachid>231083</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2014-05-08 11:35:02 -0700</bug_when>
    <thetext>Created attachment 231083
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007711</commentid>
    <comment_count>8</comment_count>
      <attachid>231083</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-08 12:15:05 -0700</bug_when>
    <thetext>Comment on attachment 231083
Patch

Clearing flags on attachment: 231083

Committed r168481: &lt;http://trac.webkit.org/changeset/168481&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007712</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-08 12:15:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>216409</attachid>
            <date>2013-11-08 10:23:03 -0800</date>
            <delta_ts>2013-11-08 10:23:03 -0800</delta_ts>
            <desc>Testcase</desc>
            <filename>shape-inside-vh.html</filename>
            <type>text/html</type>
            <size>986</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8c3R5bGU+Ci5zaGFwZWQtaW5zaWRlewogIHRleHQtYWxpZ246IGp1c3Rp
Znk7CiAgaGVpZ2h0OjEwMHZoOwogIHdpZHRoOjMwdnc7CiAgLyp1c2luZyBweCB3aWxsIGhlbHAg
c2hvdyB0aGUgc2hhcGUgaW5zaWRlKi8KICAvKmNvbW1lbnQgdGhlIHB4IHdpZHRoIGFuZCBoZWln
aHQgb3V0IGFuZCB0aGUgc2hhcGUgZG9lc24ndCB3b3JrIGFueW1vcmUqLwogIHhoZWlnaHQ6NzAw
cHg7IAogIHh3aWR0aDozMDBweDsKICBtYXJnaW46MzBweCBhdXRvOwogIGJhY2tncm91bmQtY29s
b3I6ICNlZWU7CiAgLXdlYmtpdC1zaGFwZS1pbnNpZGU6IHBvbHlnb24oMCUgNTAlLCAxMDAlIDIw
JSwgMTAwJSAxMDAlLCAwJSAxMDAlKTsKICAtd2Via2l0LXNoYXBlLXBhZGRpbmc6MTBweDsKfQo8
L3N0eWxlPgo8L2hlYWQ+Cjxib2R5Pgo8ZGl2IGNsYXNzPSJzaGFwZWQtaW5zaWRlIj4gICAgICAg
ICAgICAgCjxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNj
aW5nIGVsaXQuIFByYWVzZW50IG5vbiBjb25zZXF1YXQgYXVndWUuIFV0IHNhZ2l0dGlzIG51bGxh
IGV0IGR1aSBkYXBpYnVzLCBsb2JvcnRpcyBiaWJlbmR1bSBhdWd1ZSBtYXR0aXMuIEN1cmFiaXR1
ciBtYXVyaXMgbGVvLCB2ZXN0aWJ1bHVtIHF1aXMgdG9ydG9yIGluLCBjdXJzdXMgZmFjaWxpc2lz
IG1hZ25hLiBQcmFlc2VudCBhbGlxdWFtIHJpc3VzIG5vbiBzYWdpdHRpcyByaG9uY3VzLiBEb25l
YyBldSBhbnRlIHF1aXMgaXBzdW0gZGFwaWJ1cyB2ZWhpY3VsYSB1dCBhIGVyb3MuIFZlc3RpYnVs
dW0gcnV0cnVtIGVsZW1lbnR1bSBlbmltLCBpbnRlcmR1bSB1bHRyaWNlcyBsaWJlcm8gdml2ZXJy
YSB2aXRhZS4gUHJvaW4gYWNjdW1zYW4gdXJuYSBhcmN1LCBldCBncmF2aWRhIGR1aSBncmF2aWRh
IHNlZC4gTW9yYmkgbGFvcmVldCBtYWduYSBub24gYWxpcXVldCBjb252YWxsaXM8L3A+CjwvZGl2
Pgo8L2JvZHk+CjwvaHRtbD4=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231028</attachid>
            <date>2014-05-07 16:22:38 -0700</date>
            <delta_ts>2014-05-08 11:34:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124052-20140507162215.patch</filename>
            <type>text/plain</type>
            <size>33480</size>
            <attacher name="Bem Jones-Bey">bjonesbe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4NDQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTA3NGU2NDc0M2YwYmYz
YTg0MDc4YTEwYjA3ZjFiZjhiYmZkOGZlNC4uYWUwMWU5ZmNiMjFiMzk1ZGViMWRmYzQ4NDc1NjRk
OGJkZDRmMmRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE0LTA1LTA3ICBCZW0g
Sm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgU2hhcGVzXSBT
aGFwZXMgZG8gbm90IHJlc29sdmUgZGltZW5zaW9ucyBzcGVjaWZpZWQgaW4gdmlld3BvcnQgdW5p
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDA1
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFZpZXdw
b3J0IHVuaXQgcmVzb2x1dGlvbiBkb2Vzbid0IHdvcmsgdW5sZXNzIHRoZSBSZW5kZXJWaWV3IGlz
IHBhc3NlZAorICAgICAgICBkb3duIGludG8gdGhlIGZsb2F0VmFsdWVGb3JMZW5ndGggbWV0aG9k
cy4gQWxsIHRoaXMgZG9lcyBpcyBwbHVtYiBkb3duCisgICAgICAgIGEgUmVuZGVyVmlldyBpbiBh
bGwgb2YgdGhlc2UgY2FzZXMuCisKKyAgICAgICAgVGVzdHM6IGNzczMvbWFza2luZy9jbGlwLXBh
dGgtcG9seWdvbi12aWV3cG9ydC11bml0cy5odG1sCisgICAgICAgICAgICAgICBmYXN0L3NoYXBl
cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy12aWV3cG9ydC11bml0
cy5odG1sCisKKyAgICAgICAgKiBjc3MvQmFzaWNTaGFwZUZ1bmN0aW9ucy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpmbG9hdFZhbHVlRm9yQ2VudGVyQ29vcmRpbmF0ZSk6CisgICAgICAgICogY3Nz
L0Jhc2ljU2hhcGVGdW5jdGlvbnMuaDoKKyAgICAgICAgKiBjc3MvTGVuZ3RoRnVuY3Rpb25zLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmZsb2F0U2l6ZUZvckxlbmd0aFNpemUpOgorICAgICAgICAq
IGNzcy9MZW5ndGhGdW5jdGlvbnMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvQ2xpcFBhdGhPcGVy
YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXBlQ2xpcFBhdGhPcGVyYXRpb246OnBhdGhG
b3JSZWZlcmVuY2VSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkJveENsaXBQYXRoT3BlcmF0aW9u
OjpwYXRoRm9yUmVmZXJlbmNlUmVjdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzZXR1cENsaXBQYXRoKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNo
YXBlOjpjcmVhdGVTaGFwZSk6CisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTaGFwZU91dHNpZGVJbmZvOjpjb21wdXRlZFNoYXBlKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzaWNT
aGFwZUNpcmNsZTo6ZmxvYXRWYWx1ZUZvclJhZGl1c0luQm94KToKKyAgICAgICAgKFdlYkNvcmU6
OkJhc2ljU2hhcGVDaXJjbGU6OnBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6QmFzaWNTaGFwZUVs
bGlwc2U6OmZsb2F0VmFsdWVGb3JSYWRpdXNJbkJveCk6CisgICAgICAgIChXZWJDb3JlOjpCYXNp
Y1NoYXBlRWxsaXBzZTo6cGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpCYXNpY1NoYXBlUG9seWdv
bjo6cGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpmbG9hdFNpemVGb3JMZW5ndGhTaXplKToKKyAg
ICAgICAgKFdlYkNvcmU6OkJhc2ljU2hhcGVJbnNldDo6cGF0aCk6CisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL0Jhc2ljU2hhcGVzLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSZW5k
ZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlcmluZ0NvbnRleHQ6
OnByZXBhcmVUb1JlbmRlclNWR0NvbnRlbnQpOgorCiAyMDE0LTA1LTA3ICBSYWR1IFN0YXZpbGEg
IDxzdGF2aWxhQGFkb2JlLmNvbT4KIAogICAgICAgICBVc2UgYWZ0ZXIgZnJlZSBpbiBXZWJDb3Jl
OjpSZW5kZXJPYmplY3Q6Om5leHRTaWJsaW5nIC8gV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmpl
Y3Q6Om1vdmVDaGlsZHJlblRvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQmFzaWNT
aGFwZUZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQmFzaWNTaGFwZUZ1bmN0aW9u
cy5jcHAKaW5kZXggYzA4NmY2ZGZhZjkxMzJhNWU1ZjczNjU0MmMwMmRiMzY4NDA0MTAyNi4uYmVm
MGE0Njk0YzM0NDlmNzk4ODc4NDgyNjMyYzk2ODE0NzU3MzAwNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0Jhc2ljU2hhcGVGdW5jdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9CYXNpY1NoYXBlRnVuY3Rpb25zLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUg
IkNTU1ZhbHVlUG9vbC5oIgogI2luY2x1ZGUgIlBhaXIuaCIKICNpbmNsdWRlICJSZW5kZXJTdHls
ZS5oIgorI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC0yNjQsOSArMjY1LDkgQEAgUGFzc1JlZlB0cjxCYXNpY1NoYXBlPiBiYXNpY1NoYXBlRm9yVmFs
dWUoY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSYgY29udmUKICAgICByZXR1cm4gYmFz
aWNTaGFwZS5yZWxlYXNlKCk7CiB9CiAKLWZsb2F0IGZsb2F0VmFsdWVGb3JDZW50ZXJDb29yZGlu
YXRlKGNvbnN0IEJhc2ljU2hhcGVDZW50ZXJDb29yZGluYXRlJiBjZW50ZXIsIGZsb2F0IGJveERp
bWVuc2lvbikKK2Zsb2F0IGZsb2F0VmFsdWVGb3JDZW50ZXJDb29yZGluYXRlKGNvbnN0IEJhc2lj
U2hhcGVDZW50ZXJDb29yZGluYXRlJiBjZW50ZXIsIGZsb2F0IGJveERpbWVuc2lvbiwgUmVuZGVy
VmlldyogdmlldykKIHsKLSAgICBmbG9hdCBvZmZzZXQgPSBmbG9hdFZhbHVlRm9yTGVuZ3RoKGNl
bnRlci5sZW5ndGgoKSwgYm94RGltZW5zaW9uKTsKKyAgICBmbG9hdCBvZmZzZXQgPSBmbG9hdFZh
bHVlRm9yTGVuZ3RoKGNlbnRlci5sZW5ndGgoKSwgYm94RGltZW5zaW9uLCB2aWV3KTsKICAgICBp
ZiAoY2VudGVyLmRpcmVjdGlvbigpID09IEJhc2ljU2hhcGVDZW50ZXJDb29yZGluYXRlOjpUb3BM
ZWZ0KQogICAgICAgICByZXR1cm4gb2Zmc2V0OwogICAgIHJldHVybiBib3hEaW1lbnNpb24gLSBv
ZmZzZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQmFzaWNTaGFwZUZ1bmN0aW9u
cy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0Jhc2ljU2hhcGVGdW5jdGlvbnMuaAppbmRleCBmNjE2
MDBhZjNiZTNiNDE3N2I0MDM1NzkyNzM2NTkzYzJhY2NkOTAxLi40MTA3MmZkN2QzZmIyZGFkZjk0
NGQyZjkxZGFmY2I0OWI4NTQzZTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQmFz
aWNTaGFwZUZ1bmN0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9CYXNpY1NoYXBlRnVu
Y3Rpb25zLmgKQEAgLTQwLDExICs0MCwxMiBAQCBjbGFzcyBDU1NQcmltaXRpdmVWYWx1ZTsKIGNs
YXNzIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE7CiBjbGFzcyBDU1NWYWx1ZTsKIGNsYXNzIFJl
bmRlclN0eWxlOworY2xhc3MgUmVuZGVyVmlldzsKIAogUGFzc1JlZlB0cjxDU1NWYWx1ZT4gdmFs
dWVGb3JCYXNpY1NoYXBlKGNvbnN0IFJlbmRlclN0eWxlKiwgY29uc3QgQmFzaWNTaGFwZSopOwog
UGFzc1JlZlB0cjxCYXNpY1NoYXBlPiBiYXNpY1NoYXBlRm9yVmFsdWUoY29uc3QgQ1NTVG9MZW5n
dGhDb252ZXJzaW9uRGF0YSYsIGNvbnN0IENTU0Jhc2ljU2hhcGUqKTsKIAotZmxvYXQgZmxvYXRW
YWx1ZUZvckNlbnRlckNvb3JkaW5hdGUoY29uc3QgQmFzaWNTaGFwZUNlbnRlckNvb3JkaW5hdGUm
LCBmbG9hdCk7CitmbG9hdCBmbG9hdFZhbHVlRm9yQ2VudGVyQ29vcmRpbmF0ZShjb25zdCBCYXNp
Y1NoYXBlQ2VudGVyQ29vcmRpbmF0ZSYsIGZsb2F0LCBSZW5kZXJWaWV3Kik7CiB9CiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0xlbmd0aEZ1bmN0aW9ucy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvTGVuZ3RoRnVuY3Rpb25zLmNwcAppbmRleCBiZDY3YjEwN2YxMGIz
MWQwYzM3MWZmMzJhNTAwNWQ4NTZjMDQ4YWVlLi4yZmE5NGUyMDcxNjE1YzU1MDQ2YjBiNDc0Yjhi
NmM0YTZmNjFlYmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTGVuZ3RoRnVuY3Rp
b25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTGVuZ3RoRnVuY3Rpb25zLmNwcApAQCAt
MjEwLDkgKzIxMCw5IEBAIGZsb2F0IGZsb2F0VmFsdWVGb3JMZW5ndGgoY29uc3QgTGVuZ3RoJiBs
ZW5ndGgsIGZsb2F0IG1heGltdW1WYWx1ZSwgUmVuZGVyVmlldyoKICAgICByZXR1cm4gMDsKIH0K
IAotRmxvYXRTaXplIGZsb2F0U2l6ZUZvckxlbmd0aFNpemUoY29uc3QgTGVuZ3RoU2l6ZSYgbGVu
Z3RoU2l6ZSwgY29uc3QgRmxvYXRTaXplJiBib3hTaXplKQorRmxvYXRTaXplIGZsb2F0U2l6ZUZv
ckxlbmd0aFNpemUoY29uc3QgTGVuZ3RoU2l6ZSYgbGVuZ3RoU2l6ZSwgY29uc3QgRmxvYXRTaXpl
JiBib3hTaXplLCBSZW5kZXJWaWV3KiB2aWV3KQogewotICAgIHJldHVybiBGbG9hdFNpemUoZmxv
YXRWYWx1ZUZvckxlbmd0aChsZW5ndGhTaXplLndpZHRoKCksIGJveFNpemUud2lkdGgoKSksIGZs
b2F0VmFsdWVGb3JMZW5ndGgobGVuZ3RoU2l6ZS5oZWlnaHQoKSwgYm94U2l6ZS5oZWlnaHQoKSkp
OworICAgIHJldHVybiBGbG9hdFNpemUoZmxvYXRWYWx1ZUZvckxlbmd0aChsZW5ndGhTaXplLndp
ZHRoKCksIGJveFNpemUud2lkdGgoKSwgdmlldyksIGZsb2F0VmFsdWVGb3JMZW5ndGgobGVuZ3Ro
U2l6ZS5oZWlnaHQoKSwgYm94U2l6ZS5oZWlnaHQoKSwgdmlldykpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTGVuZ3RoRnVuY3Rp
b25zLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTGVuZ3RoRnVuY3Rpb25zLmgKaW5kZXggNmI0MTAy
OTE4NjRiYmIzN2M3YjMxMWNhOTAyZjA3Yjk3YmY2ZGQ2Mi4uYmUxOThjMWIyM2U3MGIxMGZlMGQ5
Y2VmNjNiMWIxYzM1MGZjZDkzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0xlbmd0
aEZ1bmN0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9MZW5ndGhGdW5jdGlvbnMuaApA
QCAtMzgsNyArMzgsNyBAQCBMYXlvdXRVbml0IG1pbmltdW1WYWx1ZUZvckxlbmd0aChjb25zdCBM
ZW5ndGgmLCBMYXlvdXRVbml0IG1heGltdW1WYWx1ZSwgUmVuZGVyVgogTGF5b3V0VW5pdCB2YWx1
ZUZvckxlbmd0aChjb25zdCBMZW5ndGgmLCBMYXlvdXRVbml0IG1heGltdW1WYWx1ZSwgUmVuZGVy
VmlldyogPSAwLCBib29sIHJvdW5kUGVyY2VudGFnZXMgPSBmYWxzZSk7CiBmbG9hdCBmbG9hdFZh
bHVlRm9yTGVuZ3RoKGNvbnN0IExlbmd0aCYsIExheW91dFVuaXQgbWF4aW11bVZhbHVlLCBSZW5k
ZXJWaWV3KiA9IDApOwogZmxvYXQgZmxvYXRWYWx1ZUZvckxlbmd0aChjb25zdCBMZW5ndGgmLCBm
bG9hdCBtYXhpbXVtVmFsdWUsIFJlbmRlclZpZXcqID0gMCk7Ci1GbG9hdFNpemUgZmxvYXRTaXpl
Rm9yTGVuZ3RoU2l6ZShjb25zdCBMZW5ndGhTaXplJiwgY29uc3QgRmxvYXRTaXplJik7CitGbG9h
dFNpemUgZmxvYXRTaXplRm9yTGVuZ3RoU2l6ZShjb25zdCBMZW5ndGhTaXplJiwgY29uc3QgRmxv
YXRTaXplJiwgUmVuZGVyVmlldyogPSAwKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ2xpcFBhdGhPcGVyYXRpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DbGlwUGF0aE9wZXJhdGlvbi5oCmluZGV4IGFmNjBh
OTg1OTIwODllOGU3NGI2ODU3OTJjYWRlOTk4NmFmODRlZjIuLjRiYTE1MWY3M2Q0NDZjMDgyNTM5
ZDY2YTNmMzRmMzMwOTU0MWMzMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9DbGlwUGF0aE9wZXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DbGlw
UGF0aE9wZXJhdGlvbi5oCkBAIC0xMDIsMTEgKzEwMiwxMSBAQCBwdWJsaWM6CiAKICAgICBjb25z
dCBCYXNpY1NoYXBlKiBiYXNpY1NoYXBlKCkgY29uc3QgeyByZXR1cm4gbV9zaGFwZS5nZXQoKTsg
fQogICAgIFdpbmRSdWxlIHdpbmRSdWxlKCkgY29uc3QgeyByZXR1cm4gbV9zaGFwZS0+d2luZFJ1
bGUoKTsgfQotICAgIGNvbnN0IFBhdGggcGF0aEZvclJlZmVyZW5jZVJlY3QoY29uc3QgRmxvYXRS
ZWN0JiBib3VuZGluZ1JlY3QpIGNvbnN0CisgICAgY29uc3QgUGF0aCBwYXRoRm9yUmVmZXJlbmNl
UmVjdChjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nUmVjdCwgUmVuZGVyVmlldyogdmlldykgY29u
c3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3NoYXBlKTsKICAgICAgICAgUGF0aCBwYXRoOwot
ICAgICAgICBtX3NoYXBlLT5wYXRoKHBhdGgsIGJvdW5kaW5nUmVjdCk7CisgICAgICAgIG1fc2hh
cGUtPnBhdGgocGF0aCwgYm91bmRpbmdSZWN0LCB2aWV3KTsKICAgICAgICAgcmV0dXJuIHBhdGg7
CiAgICAgfQogCkBAIC0xNDAsNyArMTQwLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEJveENsaXBQYXRoT3BlcmF0aW9uKHJlZmVyZW5jZUJveCkpOwogICAgIH0KIAot
ICAgIGNvbnN0IFBhdGggcGF0aEZvclJlZmVyZW5jZVJlY3QoY29uc3QgUm91bmRlZFJlY3QmIGJv
dW5kaW5nUmVjdCkgY29uc3QKKyAgICBjb25zdCBQYXRoIHBhdGhGb3JSZWZlcmVuY2VSZWN0KGNv
bnN0IFJvdW5kZWRSZWN0JiBib3VuZGluZ1JlY3QsIFJlbmRlclZpZXcqKSBjb25zdAogICAgIHsK
ICAgICAgICAgUGF0aCBwYXRoOwogICAgICAgICBwYXRoLmFkZFJvdW5kZWRSZWN0KGJvdW5kaW5n
UmVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCA0MGJk
YTRjMTliYzMwOTQxZDNmZGI4Nzc1ZWM0MTUxZTVmZGEwY2E5Li5mOTg4Njg1NTkzMGJlNzUxYmIy
YzczZmY2MjgxNWE3MmVjM2RmN2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5jcHAKQEAgLTM4MzgsNyArMzgzOCw3IEBAIGJvb2wgUmVuZGVyTGF5ZXI6OnNldHVwQ2xp
cFBhdGgoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXllclBhaW50aW5nSW5mCiAK
ICAgICAgICAgTGF5b3V0UmVjdCByZWZlcmVuY2VCb3ggPSBjb21wdXRlUmVmZXJlbmNlQm94KHJl
bmRlcmVyKCksIGNsaXBwaW5nUGF0aCwgb2Zmc2V0RnJvbVJvb3QsIHJvb3RSZWxhdGl2ZUJvdW5k
cyk7CiAgICAgICAgIGNvbnRleHQtPnNhdmUoKTsKLSAgICAgICAgY29udGV4dC0+Y2xpcFBhdGgo
Y2xpcHBpbmdQYXRoLnBhdGhGb3JSZWZlcmVuY2VSZWN0KHJlZmVyZW5jZUJveCksIGNsaXBwaW5n
UGF0aC53aW5kUnVsZSgpKTsKKyAgICAgICAgY29udGV4dC0+Y2xpcFBhdGgoY2xpcHBpbmdQYXRo
LnBhdGhGb3JSZWZlcmVuY2VSZWN0KHJlZmVyZW5jZUJveCwgJm1fcmVuZGVyZXIudmlldygpKSwg
Y2xpcHBpbmdQYXRoLndpbmRSdWxlKCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAK
QEAgLTM4NDksNyArMzg0OSw3IEBAIGJvb2wgUmVuZGVyTGF5ZXI6OnNldHVwQ2xpcFBhdGgoR3Jh
cGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXllclBhaW50aW5nSW5mCiAgICAgICAgIHNo
YXBlUmVjdC5tb3ZlQnkob2Zmc2V0RnJvbVJvb3QpOwogCiAgICAgICAgIGNvbnRleHQtPnNhdmUo
KTsKLSAgICAgICAgY29udGV4dC0+Y2xpcFBhdGgoY2xpcHBpbmdQYXRoLnBhdGhGb3JSZWZlcmVu
Y2VSZWN0KHNoYXBlUmVjdCksIFJVTEVfTk9OWkVSTyk7CisgICAgICAgIGNvbnRleHQtPmNsaXBQ
YXRoKGNsaXBwaW5nUGF0aC5wYXRoRm9yUmVmZXJlbmNlUmVjdChzaGFwZVJlY3QsICZtX3JlbmRl
cmVyLnZpZXcoKSksIFJVTEVfTk9OWkVSTyk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmNwcAppbmRleCA4YzcxM2E0
NmYwYjlmOTc0MzZjNWMwM2VmZWI3N2FiNzJkNmRlYTkzLi5hZTY2NWEzMTg2NGU0MzM0YTIxMmJk
NzAxMDUyYzBmYWYyZDhkYzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c2hhcGVzL1NoYXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1No
YXBlLmNwcApAQCAtOTAsNyArOTAsNyBAQCBzdGF0aWMgaW5saW5lIEZsb2F0U2l6ZSBwaHlzaWNh
bFNpemVUb0xvZ2ljYWwoY29uc3QgRmxvYXRTaXplJiBzaXplLCBXcml0aW5nTW9kZQogICAgIHJl
dHVybiBzaXplLnRyYW5zcG9zZWRTaXplKCk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxTaGFwZT4g
U2hhcGU6OmNyZWF0ZVNoYXBlKGNvbnN0IEJhc2ljU2hhcGUqIGJhc2ljU2hhcGUsIGNvbnN0IExh
eW91dFNpemUmIGxvZ2ljYWxCb3hTaXplLCBXcml0aW5nTW9kZSB3cml0aW5nTW9kZSwgZmxvYXQg
bWFyZ2luKQorc3RkOjp1bmlxdWVfcHRyPFNoYXBlPiBTaGFwZTo6Y3JlYXRlU2hhcGUoY29uc3Qg
QmFzaWNTaGFwZSogYmFzaWNTaGFwZSwgY29uc3QgTGF5b3V0U2l6ZSYgbG9naWNhbEJveFNpemUs
IFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBmbG9hdCBtYXJnaW4sIFJlbmRlclZpZXcqIHZpZXcp
CiB7CiAgICAgQVNTRVJUKGJhc2ljU2hhcGUpOwogCkBAIC0xMDMsOSArMTAzLDkgQEAgc3RkOjp1
bmlxdWVfcHRyPFNoYXBlPiBTaGFwZTo6Y3JlYXRlU2hhcGUoY29uc3QgQmFzaWNTaGFwZSogYmFz
aWNTaGFwZSwgY29uc3QgTGEKIAogICAgIGNhc2UgQmFzaWNTaGFwZTo6QmFzaWNTaGFwZUNpcmNs
ZVR5cGU6IHsKICAgICAgICAgY29uc3QgQmFzaWNTaGFwZUNpcmNsZSogY2lyY2xlID0gc3RhdGlj
X2Nhc3Q8Y29uc3QgQmFzaWNTaGFwZUNpcmNsZSo+KGJhc2ljU2hhcGUpOwotICAgICAgICBmbG9h
dCBjZW50ZXJYID0gZmxvYXRWYWx1ZUZvckNlbnRlckNvb3JkaW5hdGUoY2lyY2xlLT5jZW50ZXJY
KCksIGJveFdpZHRoKTsKLSAgICAgICAgZmxvYXQgY2VudGVyWSA9IGZsb2F0VmFsdWVGb3JDZW50
ZXJDb29yZGluYXRlKGNpcmNsZS0+Y2VudGVyWSgpLCBib3hIZWlnaHQpOwotICAgICAgICBmbG9h
dCByYWRpdXMgPSBjaXJjbGUtPmZsb2F0VmFsdWVGb3JSYWRpdXNJbkJveChib3hXaWR0aCwgYm94
SGVpZ2h0KTsKKyAgICAgICAgZmxvYXQgY2VudGVyWCA9IGZsb2F0VmFsdWVGb3JDZW50ZXJDb29y
ZGluYXRlKGNpcmNsZS0+Y2VudGVyWCgpLCBib3hXaWR0aCwgdmlldyk7CisgICAgICAgIGZsb2F0
IGNlbnRlclkgPSBmbG9hdFZhbHVlRm9yQ2VudGVyQ29vcmRpbmF0ZShjaXJjbGUtPmNlbnRlclko
KSwgYm94SGVpZ2h0LCB2aWV3KTsKKyAgICAgICAgZmxvYXQgcmFkaXVzID0gY2lyY2xlLT5mbG9h
dFZhbHVlRm9yUmFkaXVzSW5Cb3goYm94V2lkdGgsIGJveEhlaWdodCwgdmlldyk7CiAgICAgICAg
IEZsb2F0UG9pbnQgbG9naWNhbENlbnRlciA9IHBoeXNpY2FsUG9pbnRUb0xvZ2ljYWwoRmxvYXRQ
b2ludChjZW50ZXJYLCBjZW50ZXJZKSwgbG9naWNhbEJveFNpemUuaGVpZ2h0KCksIHdyaXRpbmdN
b2RlKTsKIAogICAgICAgICBzaGFwZSA9IGNyZWF0ZUNpcmNsZVNoYXBlKGxvZ2ljYWxDZW50ZXIs
IHJhZGl1cyk7CkBAIC0xMTQsMTAgKzExNCwxMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8U2hhcGU+IFNo
YXBlOjpjcmVhdGVTaGFwZShjb25zdCBCYXNpY1NoYXBlKiBiYXNpY1NoYXBlLCBjb25zdCBMYQog
CiAgICAgY2FzZSBCYXNpY1NoYXBlOjpCYXNpY1NoYXBlRWxsaXBzZVR5cGU6IHsKICAgICAgICAg
Y29uc3QgQmFzaWNTaGFwZUVsbGlwc2UqIGVsbGlwc2UgPSBzdGF0aWNfY2FzdDxjb25zdCBCYXNp
Y1NoYXBlRWxsaXBzZSo+KGJhc2ljU2hhcGUpOwotICAgICAgICBmbG9hdCBjZW50ZXJYID0gZmxv
YXRWYWx1ZUZvckNlbnRlckNvb3JkaW5hdGUoZWxsaXBzZS0+Y2VudGVyWCgpLCBib3hXaWR0aCk7
Ci0gICAgICAgIGZsb2F0IGNlbnRlclkgPSBmbG9hdFZhbHVlRm9yQ2VudGVyQ29vcmRpbmF0ZShl
bGxpcHNlLT5jZW50ZXJZKCksIGJveEhlaWdodCk7Ci0gICAgICAgIGZsb2F0IHJhZGl1c1ggPSBl
bGxpcHNlLT5mbG9hdFZhbHVlRm9yUmFkaXVzSW5Cb3goZWxsaXBzZS0+cmFkaXVzWCgpLCBjZW50
ZXJYLCBib3hXaWR0aCk7Ci0gICAgICAgIGZsb2F0IHJhZGl1c1kgPSBlbGxpcHNlLT5mbG9hdFZh
bHVlRm9yUmFkaXVzSW5Cb3goZWxsaXBzZS0+cmFkaXVzWSgpLCBjZW50ZXJZLCBib3hIZWlnaHQp
OworICAgICAgICBmbG9hdCBjZW50ZXJYID0gZmxvYXRWYWx1ZUZvckNlbnRlckNvb3JkaW5hdGUo
ZWxsaXBzZS0+Y2VudGVyWCgpLCBib3hXaWR0aCwgdmlldyk7CisgICAgICAgIGZsb2F0IGNlbnRl
clkgPSBmbG9hdFZhbHVlRm9yQ2VudGVyQ29vcmRpbmF0ZShlbGxpcHNlLT5jZW50ZXJZKCksIGJv
eEhlaWdodCwgdmlldyk7CisgICAgICAgIGZsb2F0IHJhZGl1c1ggPSBlbGxpcHNlLT5mbG9hdFZh
bHVlRm9yUmFkaXVzSW5Cb3goZWxsaXBzZS0+cmFkaXVzWCgpLCBjZW50ZXJYLCBib3hXaWR0aCwg
dmlldyk7CisgICAgICAgIGZsb2F0IHJhZGl1c1kgPSBlbGxpcHNlLT5mbG9hdFZhbHVlRm9yUmFk
aXVzSW5Cb3goZWxsaXBzZS0+cmFkaXVzWSgpLCBjZW50ZXJZLCBib3hIZWlnaHQsIHZpZXcpOwog
ICAgICAgICBGbG9hdFBvaW50IGxvZ2ljYWxDZW50ZXIgPSBwaHlzaWNhbFBvaW50VG9Mb2dpY2Fs
KEZsb2F0UG9pbnQoY2VudGVyWCwgY2VudGVyWSksIGxvZ2ljYWxCb3hTaXplLmhlaWdodCgpLCB3
cml0aW5nTW9kZSk7CiAKICAgICAgICAgc2hhcGUgPSBjcmVhdGVFbGxpcHNlU2hhcGUobG9naWNh
bENlbnRlciwgRmxvYXRTaXplKHJhZGl1c1gsIHJhZGl1c1kpKTsKQEAgLTEzMiw4ICsxMzIsOCBA
QCBzdGQ6OnVuaXF1ZV9wdHI8U2hhcGU+IFNoYXBlOjpjcmVhdGVTaGFwZShjb25zdCBCYXNpY1No
YXBlKiBiYXNpY1NoYXBlLCBjb25zdCBMYQogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9y
PEZsb2F0UG9pbnQ+PiB2ZXJ0aWNlcyA9IHN0ZDo6bWFrZV91bmlxdWU8VmVjdG9yPEZsb2F0UG9p
bnQ+Pih2YWx1ZXNTaXplIC8gMik7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB2
YWx1ZXNTaXplOyBpICs9IDIpIHsKICAgICAgICAgICAgIEZsb2F0UG9pbnQgdmVydGV4KAotICAg
ICAgICAgICAgICAgIGZsb2F0VmFsdWVGb3JMZW5ndGgodmFsdWVzLmF0KGkpLCBib3hXaWR0aCks
Ci0gICAgICAgICAgICAgICAgZmxvYXRWYWx1ZUZvckxlbmd0aCh2YWx1ZXMuYXQoaSArIDEpLCBi
b3hIZWlnaHQpKTsKKyAgICAgICAgICAgICAgICBmbG9hdFZhbHVlRm9yTGVuZ3RoKHZhbHVlcy5h
dChpKSwgYm94V2lkdGgsIHZpZXcpLAorICAgICAgICAgICAgICAgIGZsb2F0VmFsdWVGb3JMZW5n
dGgodmFsdWVzLmF0KGkgKyAxKSwgYm94SGVpZ2h0LCB2aWV3KSk7CiAgICAgICAgICAgICAoKnZl
cnRpY2VzKVtpIC8gMl0gPSBwaHlzaWNhbFBvaW50VG9Mb2dpY2FsKHZlcnRleCwgbG9naWNhbEJv
eFNpemUuaGVpZ2h0KCksIHdyaXRpbmdNb2RlKTsKICAgICAgICAgfQogCkBAIC0xNDMsMTkgKzE0
MywxOSBAQCBzdGQ6OnVuaXF1ZV9wdHI8U2hhcGU+IFNoYXBlOjpjcmVhdGVTaGFwZShjb25zdCBC
YXNpY1NoYXBlKiBiYXNpY1NoYXBlLCBjb25zdCBMYQogCiAgICAgY2FzZSBCYXNpY1NoYXBlOjpC
YXNpY1NoYXBlSW5zZXRUeXBlOiB7CiAgICAgICAgIGNvbnN0IEJhc2ljU2hhcGVJbnNldCYgaW5z
ZXQgPSAqc3RhdGljX2Nhc3Q8Y29uc3QgQmFzaWNTaGFwZUluc2V0Kj4oYmFzaWNTaGFwZSk7Ci0g
ICAgICAgIGZsb2F0IGxlZnQgPSBmbG9hdFZhbHVlRm9yTGVuZ3RoKGluc2V0LmxlZnQoKSwgYm94
V2lkdGgpOwotICAgICAgICBmbG9hdCB0b3AgPSBmbG9hdFZhbHVlRm9yTGVuZ3RoKGluc2V0LnRv
cCgpLCBib3hIZWlnaHQpOworICAgICAgICBmbG9hdCBsZWZ0ID0gZmxvYXRWYWx1ZUZvckxlbmd0
aChpbnNldC5sZWZ0KCksIGJveFdpZHRoLCB2aWV3KTsKKyAgICAgICAgZmxvYXQgdG9wID0gZmxv
YXRWYWx1ZUZvckxlbmd0aChpbnNldC50b3AoKSwgYm94SGVpZ2h0LCB2aWV3KTsKICAgICAgICAg
RmxvYXRSZWN0IHJlY3QobGVmdCwKICAgICAgICAgICAgIHRvcCwKLSAgICAgICAgICAgIHN0ZDo6
bWF4PGZsb2F0Pihib3hXaWR0aCAtIGxlZnQgLSBmbG9hdFZhbHVlRm9yTGVuZ3RoKGluc2V0LnJp
Z2h0KCksIGJveFdpZHRoKSwgMCksCi0gICAgICAgICAgICBzdGQ6Om1heDxmbG9hdD4oYm94SGVp
Z2h0IC0gdG9wIC0gZmxvYXRWYWx1ZUZvckxlbmd0aChpbnNldC5ib3R0b20oKSwgYm94SGVpZ2h0
KSwgMCkpOworICAgICAgICAgICAgc3RkOjptYXg8ZmxvYXQ+KGJveFdpZHRoIC0gbGVmdCAtIGZs
b2F0VmFsdWVGb3JMZW5ndGgoaW5zZXQucmlnaHQoKSwgYm94V2lkdGgsIHZpZXcpLCAwKSwKKyAg
ICAgICAgICAgIHN0ZDo6bWF4PGZsb2F0Pihib3hIZWlnaHQgLSB0b3AgLSBmbG9hdFZhbHVlRm9y
TGVuZ3RoKGluc2V0LmJvdHRvbSgpLCBib3hIZWlnaHQsIHZpZXcpLCAwKSk7CiAgICAgICAgIEZs
b2F0UmVjdCBsb2dpY2FsUmVjdCA9IHBoeXNpY2FsUmVjdFRvTG9naWNhbChyZWN0LCBsb2dpY2Fs
Qm94U2l6ZS5oZWlnaHQoKSwgd3JpdGluZ01vZGUpOwogCiAgICAgICAgIEZsb2F0U2l6ZSBib3hT
aXplKGJveFdpZHRoLCBib3hIZWlnaHQpOwotICAgICAgICBGbG9hdFNpemUgdG9wTGVmdFJhZGl1
cyA9IHBoeXNpY2FsU2l6ZVRvTG9naWNhbChmbG9hdFNpemVGb3JMZW5ndGhTaXplKGluc2V0LnRv
cExlZnRSYWRpdXMoKSwgYm94U2l6ZSksIHdyaXRpbmdNb2RlKTsKLSAgICAgICAgRmxvYXRTaXpl
IHRvcFJpZ2h0UmFkaXVzID0gcGh5c2ljYWxTaXplVG9Mb2dpY2FsKGZsb2F0U2l6ZUZvckxlbmd0
aFNpemUoaW5zZXQudG9wUmlnaHRSYWRpdXMoKSwgYm94U2l6ZSksIHdyaXRpbmdNb2RlKTsKLSAg
ICAgICAgRmxvYXRTaXplIGJvdHRvbUxlZnRSYWRpdXMgPSBwaHlzaWNhbFNpemVUb0xvZ2ljYWwo
ZmxvYXRTaXplRm9yTGVuZ3RoU2l6ZShpbnNldC5ib3R0b21MZWZ0UmFkaXVzKCksIGJveFNpemUp
LCB3cml0aW5nTW9kZSk7Ci0gICAgICAgIEZsb2F0U2l6ZSBib3R0b21SaWdodFJhZGl1cyA9IHBo
eXNpY2FsU2l6ZVRvTG9naWNhbChmbG9hdFNpemVGb3JMZW5ndGhTaXplKGluc2V0LmJvdHRvbVJp
Z2h0UmFkaXVzKCksIGJveFNpemUpLCB3cml0aW5nTW9kZSk7CisgICAgICAgIEZsb2F0U2l6ZSB0
b3BMZWZ0UmFkaXVzID0gcGh5c2ljYWxTaXplVG9Mb2dpY2FsKGZsb2F0U2l6ZUZvckxlbmd0aFNp
emUoaW5zZXQudG9wTGVmdFJhZGl1cygpLCBib3hTaXplLCB2aWV3KSwgd3JpdGluZ01vZGUpOwor
ICAgICAgICBGbG9hdFNpemUgdG9wUmlnaHRSYWRpdXMgPSBwaHlzaWNhbFNpemVUb0xvZ2ljYWwo
ZmxvYXRTaXplRm9yTGVuZ3RoU2l6ZShpbnNldC50b3BSaWdodFJhZGl1cygpLCBib3hTaXplLCB2
aWV3KSwgd3JpdGluZ01vZGUpOworICAgICAgICBGbG9hdFNpemUgYm90dG9tTGVmdFJhZGl1cyA9
IHBoeXNpY2FsU2l6ZVRvTG9naWNhbChmbG9hdFNpemVGb3JMZW5ndGhTaXplKGluc2V0LmJvdHRv
bUxlZnRSYWRpdXMoKSwgYm94U2l6ZSwgdmlldyksIHdyaXRpbmdNb2RlKTsKKyAgICAgICAgRmxv
YXRTaXplIGJvdHRvbVJpZ2h0UmFkaXVzID0gcGh5c2ljYWxTaXplVG9Mb2dpY2FsKGZsb2F0U2l6
ZUZvckxlbmd0aFNpemUoaW5zZXQuYm90dG9tUmlnaHRSYWRpdXMoKSwgYm94U2l6ZSwgdmlldyks
IHdyaXRpbmdNb2RlKTsKICAgICAgICAgRmxvYXRSb3VuZGVkUmVjdDo6UmFkaWkgY29ybmVyUmFk
aWkodG9wTGVmdFJhZGl1cywgdG9wUmlnaHRSYWRpdXMsIGJvdHRvbUxlZnRSYWRpdXMsIGJvdHRv
bVJpZ2h0UmFkaXVzKTsKIAogICAgICAgICBjb3JuZXJSYWRpaS5zY2FsZShjYWxjQm9yZGVyUmFk
aWlDb25zdHJhaW50U2NhbGVGb3IobG9naWNhbFJlY3QsIGNvcm5lclJhZGlpKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmgKaW5kZXggMTQzNWZmY2E2OWY3YzVlY2ZlNGI0
MjQxZDYwNTdhYWIwYzhiNmIzZC4uNjM5YmZjOGE1NjIwNmUwN2Q0MTFlZmI2YjRjZTY4OGNjYjAw
OGI1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGUuaApAQCAtNDksNiAr
NDksNyBAQCBzdHJ1Y3QgTGluZVNlZ21lbnQgewogCiBjbGFzcyBCYXNpY1NoYXBlOwogY2xhc3Mg
SW1hZ2U7CitjbGFzcyBSZW5kZXJWaWV3OwogY2xhc3MgUm91bmRlZFJlY3Q7CiAKIHR5cGVkZWYg
VmVjdG9yPExpbmVTZWdtZW50PiBTZWdtZW50TGlzdDsKQEAgLTY2LDcgKzY3LDcgQEAgcHVibGlj
OgogICAgICAgICBQYXRoIG1hcmdpblNoYXBlOwogICAgIH07CiAKLSAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPFNoYXBlPiBjcmVhdGVTaGFwZShjb25zdCBCYXNpY1NoYXBlKiwgY29uc3QgTGF5
b3V0U2l6ZSYgbG9naWNhbEJveFNpemUsIFdyaXRpbmdNb2RlLCBmbG9hdCBtYXJnaW4pOworICAg
IHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U2hhcGU+IGNyZWF0ZVNoYXBlKGNvbnN0IEJhc2ljU2hh
cGUqLCBjb25zdCBMYXlvdXRTaXplJiBsb2dpY2FsQm94U2l6ZSwgV3JpdGluZ01vZGUsIGZsb2F0
IG1hcmdpbiwgUmVuZGVyVmlldyopOwogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U2hhcGU+
IGNyZWF0ZVJhc3RlclNoYXBlKEltYWdlKiwgZmxvYXQgdGhyZXNob2xkLCBjb25zdCBMYXlvdXRS
ZWN0JiBpbWFnZVJlY3QsIGNvbnN0IExheW91dFJlY3QmIG1hcmdpblJlY3QsIFdyaXRpbmdNb2Rl
LCBmbG9hdCBtYXJnaW4pOwogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U2hhcGU+IGNyZWF0
ZUJveFNoYXBlKGNvbnN0IFJvdW5kZWRSZWN0JiwgV3JpdGluZ01vZGUsIGZsb2F0IG1hcmdpbik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRz
aWRlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlT3V0c2lk
ZUluZm8uY3BwCmluZGV4IDA1NTUzMjZmYzM5ZjJmMDg3ZmM0Mjc1M2FjZjZmY2RlYjQ4MzcyMzcu
LmFjYzUwNGE2ZjIwNmE2YWIyYjI2MmZiNTJjNmY5ODRkYzcyNzNiMDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZvLmNwcApAQCAt
MTc0LDE0ICsxNzQsMTQgQEAgY29uc3QgU2hhcGUmIFNoYXBlT3V0c2lkZUluZm86OmNvbXB1dGVk
U2hhcGUoKSBjb25zdAogICAgIGNvbnN0IFJlbmRlclN0eWxlJiBjb250YWluaW5nQmxvY2tTdHls
ZSA9IG1fcmVuZGVyZXIuY29udGFpbmluZ0Jsb2NrKCktPnN0eWxlKCk7CiAKICAgICBXcml0aW5n
TW9kZSB3cml0aW5nTW9kZSA9IGNvbnRhaW5pbmdCbG9ja1N0eWxlLndyaXRpbmdNb2RlKCk7Ci0g
ICAgZmxvYXQgbWFyZ2luID0gZmxvYXRWYWx1ZUZvckxlbmd0aChtX3JlbmRlcmVyLnN0eWxlKCku
c2hhcGVNYXJnaW4oKSwgbV9yZW5kZXJlci5jb250YWluaW5nQmxvY2soKSA/IG1fcmVuZGVyZXIu
Y29udGFpbmluZ0Jsb2NrKCktPmNvbnRlbnRXaWR0aCgpIDogTGF5b3V0VW5pdCgpKTsKKyAgICBm
bG9hdCBtYXJnaW4gPSBmbG9hdFZhbHVlRm9yTGVuZ3RoKG1fcmVuZGVyZXIuc3R5bGUoKS5zaGFw
ZU1hcmdpbigpLCBtX3JlbmRlcmVyLmNvbnRhaW5pbmdCbG9jaygpID8gbV9yZW5kZXJlci5jb250
YWluaW5nQmxvY2soKS0+Y29udGVudFdpZHRoKCkgOiBMYXlvdXRVbml0KCksICZtX3JlbmRlcmVy
LnZpZXcoKSk7CiAgICAgZmxvYXQgc2hhcGVJbWFnZVRocmVzaG9sZCA9IHN0eWxlLnNoYXBlSW1h
Z2VUaHJlc2hvbGQoKTsKICAgICBjb25zdCBTaGFwZVZhbHVlJiBzaGFwZVZhbHVlID0gKnN0eWxl
LnNoYXBlT3V0c2lkZSgpOwogCiAgICAgc3dpdGNoIChzaGFwZVZhbHVlLnR5cGUoKSkgewogICAg
IGNhc2UgU2hhcGVWYWx1ZTo6U2hhcGU6CiAgICAgICAgIEFTU0VSVChzaGFwZVZhbHVlLnNoYXBl
KCkpOwotICAgICAgICBtX3NoYXBlID0gU2hhcGU6OmNyZWF0ZVNoYXBlKHNoYXBlVmFsdWUuc2hh
cGUoKSwgbV9yZWZlcmVuY2VCb3hMb2dpY2FsU2l6ZSwgd3JpdGluZ01vZGUsIG1hcmdpbik7Cisg
ICAgICAgIG1fc2hhcGUgPSBTaGFwZTo6Y3JlYXRlU2hhcGUoc2hhcGVWYWx1ZS5zaGFwZSgpLCBt
X3JlZmVyZW5jZUJveExvZ2ljYWxTaXplLCB3cml0aW5nTW9kZSwgbWFyZ2luLCAmbV9yZW5kZXJl
ci52aWV3KCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNoYXBlVmFsdWU6OkltYWdlOiB7
CiAgICAgICAgIEltYWdlKiBpbWFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9CYXNpY1NoYXBlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvQmFzaWNTaGFwZXMuY3BwCmluZGV4IDFlY2IyZTYyZmY0YWVhMDAwOTE1NjgzNDQwMWY0ZjM0
ZTYxYThkYTMuLjIyZTk3NjE0MGRkOTc0ODJhNGQzYWYxNTYyOGVkYjc0MGY5ZDFjMTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBlcy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Jhc2ljU2hhcGVzLmNwcApAQCAtODgs
MTMgKzg4LDEzIEBAIGJvb2wgQmFzaWNTaGFwZTo6Y2FuQmxlbmQoY29uc3QgQmFzaWNTaGFwZSog
b3RoZXIpIGNvbnN0CiAgICAgICAgICYmIHRoaXNFbGxpcHNlLT5yYWRpdXNZKCkuY2FuQmxlbmQo
b3RoZXJFbGxpcHNlLT5yYWRpdXNZKCkpKTsKIH0KIAotZmxvYXQgQmFzaWNTaGFwZUNpcmNsZTo6
ZmxvYXRWYWx1ZUZvclJhZGl1c0luQm94KGZsb2F0IGJveFdpZHRoLCBmbG9hdCBib3hIZWlnaHQp
IGNvbnN0CitmbG9hdCBCYXNpY1NoYXBlQ2lyY2xlOjpmbG9hdFZhbHVlRm9yUmFkaXVzSW5Cb3go
ZmxvYXQgYm94V2lkdGgsIGZsb2F0IGJveEhlaWdodCwgUmVuZGVyVmlldyogdmlldykgY29uc3QK
IHsKICAgICBpZiAobV9yYWRpdXMudHlwZSgpID09IEJhc2ljU2hhcGVSYWRpdXM6OlZhbHVlKQog
ICAgICAgICByZXR1cm4gZmxvYXRWYWx1ZUZvckxlbmd0aChtX3JhZGl1cy52YWx1ZSgpLCBzcXJ0
ZigoYm94V2lkdGggKiBib3hXaWR0aCArIGJveEhlaWdodCAqIGJveEhlaWdodCkgLyAyKSk7CiAK
LSAgICBmbG9hdCBjZW50ZXJYID0gZmxvYXRWYWx1ZUZvckNlbnRlckNvb3JkaW5hdGUobV9jZW50
ZXJYLCBib3hXaWR0aCk7Ci0gICAgZmxvYXQgY2VudGVyWSA9IGZsb2F0VmFsdWVGb3JDZW50ZXJD
b29yZGluYXRlKG1fY2VudGVyWSwgYm94SGVpZ2h0KTsKKyAgICBmbG9hdCBjZW50ZXJYID0gZmxv
YXRWYWx1ZUZvckNlbnRlckNvb3JkaW5hdGUobV9jZW50ZXJYLCBib3hXaWR0aCwgdmlldyk7Cisg
ICAgZmxvYXQgY2VudGVyWSA9IGZsb2F0VmFsdWVGb3JDZW50ZXJDb29yZGluYXRlKG1fY2VudGVy
WSwgYm94SGVpZ2h0LCB2aWV3KTsKIAogICAgIGlmIChtX3JhZGl1cy50eXBlKCkgPT0gQmFzaWNT
aGFwZVJhZGl1czo6Q2xvc2VzdFNpZGUpCiAgICAgICAgIHJldHVybiBzdGQ6Om1pbihzdGQ6Om1p
bihjZW50ZXJYLCBib3hXaWR0aCAtIGNlbnRlclgpLCBzdGQ6Om1pbihjZW50ZXJZLCBib3hIZWln
aHQgLSBjZW50ZXJZKSk7CkBAIC0xMDMsMTMgKzEwMywxMyBAQCBmbG9hdCBCYXNpY1NoYXBlQ2ly
Y2xlOjpmbG9hdFZhbHVlRm9yUmFkaXVzSW5Cb3goZmxvYXQgYm94V2lkdGgsIGZsb2F0IGJveEhl
aWdodAogICAgIHJldHVybiBzdGQ6Om1heChzdGQ6Om1heChjZW50ZXJYLCBib3hXaWR0aCAtIGNl
bnRlclgpLCBzdGQ6Om1heChjZW50ZXJZLCBib3hIZWlnaHQgLSBjZW50ZXJZKSk7CiB9CiAKLXZv
aWQgQmFzaWNTaGFwZUNpcmNsZTo6cGF0aChQYXRoJiBwYXRoLCBjb25zdCBGbG9hdFJlY3QmIGJv
dW5kaW5nQm94KQordm9pZCBCYXNpY1NoYXBlQ2lyY2xlOjpwYXRoKFBhdGgmIHBhdGgsIGNvbnN0
IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIFJlbmRlclZpZXcqIHZpZXcpCiB7CiAgICAgQVNTRVJU
KHBhdGguaXNFbXB0eSgpKTsKIAotICAgIGZsb2F0IGNlbnRlclggPSBmbG9hdFZhbHVlRm9yQ2Vu
dGVyQ29vcmRpbmF0ZShtX2NlbnRlclgsIGJvdW5kaW5nQm94LndpZHRoKCkpOwotICAgIGZsb2F0
IGNlbnRlclkgPSBmbG9hdFZhbHVlRm9yQ2VudGVyQ29vcmRpbmF0ZShtX2NlbnRlclksIGJvdW5k
aW5nQm94LmhlaWdodCgpKTsKLSAgICBmbG9hdCByYWRpdXMgPSBmbG9hdFZhbHVlRm9yUmFkaXVz
SW5Cb3goYm91bmRpbmdCb3gud2lkdGgoKSwgYm91bmRpbmdCb3guaGVpZ2h0KCkpOworICAgIGZs
b2F0IGNlbnRlclggPSBmbG9hdFZhbHVlRm9yQ2VudGVyQ29vcmRpbmF0ZShtX2NlbnRlclgsIGJv
dW5kaW5nQm94LndpZHRoKCksIHZpZXcpOworICAgIGZsb2F0IGNlbnRlclkgPSBmbG9hdFZhbHVl
Rm9yQ2VudGVyQ29vcmRpbmF0ZShtX2NlbnRlclksIGJvdW5kaW5nQm94LmhlaWdodCgpLCB2aWV3
KTsKKyAgICBmbG9hdCByYWRpdXMgPSBmbG9hdFZhbHVlRm9yUmFkaXVzSW5Cb3goYm91bmRpbmdC
b3gud2lkdGgoKSwgYm91bmRpbmdCb3guaGVpZ2h0KCksIHZpZXcpOwogICAgIHBhdGguYWRkRWxs
aXBzZShGbG9hdFJlY3QoCiAgICAgICAgIGNlbnRlclggLSByYWRpdXMgKyBib3VuZGluZ0JveC54
KCksCiAgICAgICAgIGNlbnRlclkgLSByYWRpdXMgKyBib3VuZGluZ0JveC55KCksCkBAIC0xMzAs
MTAgKzEzMCwxMCBAQCBQYXNzUmVmUHRyPEJhc2ljU2hhcGU+IEJhc2ljU2hhcGVDaXJjbGU6OmJs
ZW5kKGNvbnN0IEJhc2ljU2hhcGUqIG90aGVyLCBkb3VibGUgcAogICAgIHJldHVybiByZXN1bHQu
cmVsZWFzZSgpOwogfQogCi1mbG9hdCBCYXNpY1NoYXBlRWxsaXBzZTo6ZmxvYXRWYWx1ZUZvclJh
ZGl1c0luQm94KGNvbnN0IEJhc2ljU2hhcGVSYWRpdXMmIHJhZGl1cywgZmxvYXQgY2VudGVyLCBm
bG9hdCBib3hXaWR0aE9ySGVpZ2h0KSBjb25zdAorZmxvYXQgQmFzaWNTaGFwZUVsbGlwc2U6OmZs
b2F0VmFsdWVGb3JSYWRpdXNJbkJveChjb25zdCBCYXNpY1NoYXBlUmFkaXVzJiByYWRpdXMsIGZs
b2F0IGNlbnRlciwgZmxvYXQgYm94V2lkdGhPckhlaWdodCwgUmVuZGVyVmlldyogdmlldykgY29u
c3QKIHsKICAgICBpZiAocmFkaXVzLnR5cGUoKSA9PSBCYXNpY1NoYXBlUmFkaXVzOjpWYWx1ZSkK
LSAgICAgICAgcmV0dXJuIGZsb2F0VmFsdWVGb3JMZW5ndGgocmFkaXVzLnZhbHVlKCksIGJveFdp
ZHRoT3JIZWlnaHQpOworICAgICAgICByZXR1cm4gZmxvYXRWYWx1ZUZvckxlbmd0aChyYWRpdXMu
dmFsdWUoKSwgYm94V2lkdGhPckhlaWdodCwgdmlldyk7CiAKICAgICBpZiAocmFkaXVzLnR5cGUo
KSA9PSBCYXNpY1NoYXBlUmFkaXVzOjpDbG9zZXN0U2lkZSkKICAgICAgICAgcmV0dXJuIHN0ZDo6
bWluKGNlbnRlciwgYm94V2lkdGhPckhlaWdodCAtIGNlbnRlcik7CkBAIC0xNDIsMTQgKzE0Miwx
NCBAQCBmbG9hdCBCYXNpY1NoYXBlRWxsaXBzZTo6ZmxvYXRWYWx1ZUZvclJhZGl1c0luQm94KGNv
bnN0IEJhc2ljU2hhcGVSYWRpdXMmIHJhZGl1cwogICAgIHJldHVybiBzdGQ6Om1heChjZW50ZXIs
IGJveFdpZHRoT3JIZWlnaHQgLSBjZW50ZXIpOwogfQogCi12b2lkIEJhc2ljU2hhcGVFbGxpcHNl
OjpwYXRoKFBhdGgmIHBhdGgsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gpCit2b2lkIEJh
c2ljU2hhcGVFbGxpcHNlOjpwYXRoKFBhdGgmIHBhdGgsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRp
bmdCb3gsIFJlbmRlclZpZXcqIHZpZXcpCiB7CiAgICAgQVNTRVJUKHBhdGguaXNFbXB0eSgpKTsK
IAotICAgIGZsb2F0IGNlbnRlclggPSBmbG9hdFZhbHVlRm9yQ2VudGVyQ29vcmRpbmF0ZShtX2Nl
bnRlclgsIGJvdW5kaW5nQm94LndpZHRoKCkpOwotICAgIGZsb2F0IGNlbnRlclkgPSBmbG9hdFZh
bHVlRm9yQ2VudGVyQ29vcmRpbmF0ZShtX2NlbnRlclksIGJvdW5kaW5nQm94LmhlaWdodCgpKTsK
LSAgICBmbG9hdCByYWRpdXNYID0gZmxvYXRWYWx1ZUZvclJhZGl1c0luQm94KG1fcmFkaXVzWCwg
Y2VudGVyWCwgYm91bmRpbmdCb3gud2lkdGgoKSk7Ci0gICAgZmxvYXQgcmFkaXVzWSA9IGZsb2F0
VmFsdWVGb3JSYWRpdXNJbkJveChtX3JhZGl1c1ksIGNlbnRlclksIGJvdW5kaW5nQm94LmhlaWdo
dCgpKTsKKyAgICBmbG9hdCBjZW50ZXJYID0gZmxvYXRWYWx1ZUZvckNlbnRlckNvb3JkaW5hdGUo
bV9jZW50ZXJYLCBib3VuZGluZ0JveC53aWR0aCgpLCB2aWV3KTsKKyAgICBmbG9hdCBjZW50ZXJZ
ID0gZmxvYXRWYWx1ZUZvckNlbnRlckNvb3JkaW5hdGUobV9jZW50ZXJZLCBib3VuZGluZ0JveC5o
ZWlnaHQoKSwgdmlldyk7CisgICAgZmxvYXQgcmFkaXVzWCA9IGZsb2F0VmFsdWVGb3JSYWRpdXNJ
bkJveChtX3JhZGl1c1gsIGNlbnRlclgsIGJvdW5kaW5nQm94LndpZHRoKCksIHZpZXcpOworICAg
IGZsb2F0IHJhZGl1c1kgPSBmbG9hdFZhbHVlRm9yUmFkaXVzSW5Cb3gobV9yYWRpdXNZLCBjZW50
ZXJZLCBib3VuZGluZ0JveC5oZWlnaHQoKSwgdmlldyk7CiAgICAgcGF0aC5hZGRFbGxpcHNlKEZs
b2F0UmVjdCgKICAgICAgICAgY2VudGVyWCAtIHJhZGl1c1ggKyBib3VuZGluZ0JveC54KCksCiAg
ICAgICAgIGNlbnRlclkgLSByYWRpdXNZICsgYm91bmRpbmdCb3gueSgpLApAQCAtMTc5LDcgKzE3
OSw3IEBAIFBhc3NSZWZQdHI8QmFzaWNTaGFwZT4gQmFzaWNTaGFwZUVsbGlwc2U6OmJsZW5kKGNv
bnN0IEJhc2ljU2hhcGUqIG90aGVyLCBkb3VibGUKICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2Uo
KTsKIH0KIAotdm9pZCBCYXNpY1NoYXBlUG9seWdvbjo6cGF0aChQYXRoJiBwYXRoLCBjb25zdCBG
bG9hdFJlY3QmIGJvdW5kaW5nQm94KQordm9pZCBCYXNpY1NoYXBlUG9seWdvbjo6cGF0aChQYXRo
JiBwYXRoLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBSZW5kZXJWaWV3KiB2aWV3KQog
ewogICAgIEFTU0VSVChwYXRoLmlzRW1wdHkoKSk7CiAgICAgQVNTRVJUKCEobV92YWx1ZXMuc2l6
ZSgpICUgMikpOwpAQCAtMTg4LDExICsxODgsMTEgQEAgdm9pZCBCYXNpY1NoYXBlUG9seWdvbjo6
cGF0aChQYXRoJiBwYXRoLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94KQogICAgIGlmICgh
bGVuZ3RoKQogICAgICAgICByZXR1cm47CiAKLSAgICBwYXRoLm1vdmVUbyhGbG9hdFBvaW50KGZs
b2F0VmFsdWVGb3JMZW5ndGgobV92YWx1ZXMuYXQoMCksIGJvdW5kaW5nQm94LndpZHRoKCkpICsg
Ym91bmRpbmdCb3gueCgpLAotICAgICAgICBmbG9hdFZhbHVlRm9yTGVuZ3RoKG1fdmFsdWVzLmF0
KDEpLCBib3VuZGluZ0JveC5oZWlnaHQoKSkgKyBib3VuZGluZ0JveC55KCkpKTsKKyAgICBwYXRo
Lm1vdmVUbyhGbG9hdFBvaW50KGZsb2F0VmFsdWVGb3JMZW5ndGgobV92YWx1ZXMuYXQoMCksIGJv
dW5kaW5nQm94LndpZHRoKCksIHZpZXcpICsgYm91bmRpbmdCb3gueCgpLAorICAgICAgICBmbG9h
dFZhbHVlRm9yTGVuZ3RoKG1fdmFsdWVzLmF0KDEpLCBib3VuZGluZ0JveC5oZWlnaHQoKSwgdmll
dykgKyBib3VuZGluZ0JveC55KCkpKTsKICAgICBmb3IgKHNpemVfdCBpID0gMjsgaSA8IGxlbmd0
aDsgaSA9IGkgKyAyKSB7Ci0gICAgICAgIHBhdGguYWRkTGluZVRvKEZsb2F0UG9pbnQoZmxvYXRW
YWx1ZUZvckxlbmd0aChtX3ZhbHVlcy5hdChpKSwgYm91bmRpbmdCb3gud2lkdGgoKSkgKyBib3Vu
ZGluZ0JveC54KCksCi0gICAgICAgICAgICBmbG9hdFZhbHVlRm9yTGVuZ3RoKG1fdmFsdWVzLmF0
KGkgKyAxKSwgYm91bmRpbmdCb3guaGVpZ2h0KCkpICsgYm91bmRpbmdCb3gueSgpKSk7CisgICAg
ICAgIHBhdGguYWRkTGluZVRvKEZsb2F0UG9pbnQoZmxvYXRWYWx1ZUZvckxlbmd0aChtX3ZhbHVl
cy5hdChpKSwgYm91bmRpbmdCb3gud2lkdGgoKSwgdmlldykgKyBib3VuZGluZ0JveC54KCksCisg
ICAgICAgICAgICBmbG9hdFZhbHVlRm9yTGVuZ3RoKG1fdmFsdWVzLmF0KGkgKyAxKSwgYm91bmRp
bmdCb3guaGVpZ2h0KCksIHZpZXcpICsgYm91bmRpbmdCb3gueSgpKSk7CiAgICAgfQogICAgIHBh
dGguY2xvc2VTdWJwYXRoKCk7CiB9CkBAIC0yMjAsMjggKzIyMCwyOCBAQCBQYXNzUmVmUHRyPEJh
c2ljU2hhcGU+IEJhc2ljU2hhcGVQb2x5Z29uOjpibGVuZChjb25zdCBCYXNpY1NoYXBlKiBvdGhl
ciwgZG91YmxlCiAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlKCk7CiB9CiAKLXN0YXRpYyBGbG9h
dFNpemUgZmxvYXRTaXplRm9yTGVuZ3RoU2l6ZShjb25zdCBMZW5ndGhTaXplJiBsZW5ndGhTaXpl
LCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94KQorc3RhdGljIEZsb2F0U2l6ZSBmbG9hdFNp
emVGb3JMZW5ndGhTaXplKGNvbnN0IExlbmd0aFNpemUmIGxlbmd0aFNpemUsIGNvbnN0IEZsb2F0
UmVjdCYgYm91bmRpbmdCb3gsIFJlbmRlclZpZXcqIHZpZXcpCiB7Ci0gICAgcmV0dXJuIEZsb2F0
U2l6ZShmbG9hdFZhbHVlRm9yTGVuZ3RoKGxlbmd0aFNpemUud2lkdGgoKSwgYm91bmRpbmdCb3gu
d2lkdGgoKSksCi0gICAgICAgIGZsb2F0VmFsdWVGb3JMZW5ndGgobGVuZ3RoU2l6ZS5oZWlnaHQo
KSwgYm91bmRpbmdCb3guaGVpZ2h0KCkpKTsKKyAgICByZXR1cm4gRmxvYXRTaXplKGZsb2F0VmFs
dWVGb3JMZW5ndGgobGVuZ3RoU2l6ZS53aWR0aCgpLCBib3VuZGluZ0JveC53aWR0aCgpLCB2aWV3
KSwKKyAgICAgICAgZmxvYXRWYWx1ZUZvckxlbmd0aChsZW5ndGhTaXplLmhlaWdodCgpLCBib3Vu
ZGluZ0JveC5oZWlnaHQoKSwgdmlldykpOwogfQogCi12b2lkIEJhc2ljU2hhcGVJbnNldDo6cGF0
aChQYXRoJiBwYXRoLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94KQordm9pZCBCYXNpY1No
YXBlSW5zZXQ6OnBhdGgoUGF0aCYgcGF0aCwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwg
UmVuZGVyVmlldyogdmlldykKIHsKICAgICBBU1NFUlQocGF0aC5pc0VtcHR5KCkpOwotICAgIGZs
b2F0IGxlZnQgPSBmbG9hdFZhbHVlRm9yTGVuZ3RoKG1fbGVmdCwgYm91bmRpbmdCb3gud2lkdGgo
KSk7Ci0gICAgZmxvYXQgdG9wID0gZmxvYXRWYWx1ZUZvckxlbmd0aChtX3RvcCwgYm91bmRpbmdC
b3guaGVpZ2h0KCkpOworICAgIGZsb2F0IGxlZnQgPSBmbG9hdFZhbHVlRm9yTGVuZ3RoKG1fbGVm
dCwgYm91bmRpbmdCb3gud2lkdGgoKSwgdmlldyk7CisgICAgZmxvYXQgdG9wID0gZmxvYXRWYWx1
ZUZvckxlbmd0aChtX3RvcCwgYm91bmRpbmdCb3guaGVpZ2h0KCksIHZpZXcpOwogICAgIEZsb2F0
Um91bmRlZFJlY3QgciA9IEZsb2F0Um91bmRlZFJlY3QoCiAgICAgICAgIEZsb2F0UmVjdCgKICAg
ICAgICAgICAgIGxlZnQgKyBib3VuZGluZ0JveC54KCksCiAgICAgICAgICAgICB0b3AgKyBib3Vu
ZGluZ0JveC55KCksCi0gICAgICAgICAgICBzdGQ6Om1heDxmbG9hdD4oYm91bmRpbmdCb3gud2lk
dGgoKSAtIGxlZnQgLSBmbG9hdFZhbHVlRm9yTGVuZ3RoKG1fcmlnaHQsIGJvdW5kaW5nQm94Lndp
ZHRoKCkpLCAwKSwKLSAgICAgICAgICAgIHN0ZDo6bWF4PGZsb2F0Pihib3VuZGluZ0JveC5oZWln
aHQoKSAtIHRvcCAtIGZsb2F0VmFsdWVGb3JMZW5ndGgobV9ib3R0b20sIGJvdW5kaW5nQm94Lmhl
aWdodCgpKSwgMCkKKyAgICAgICAgICAgIHN0ZDo6bWF4PGZsb2F0Pihib3VuZGluZ0JveC53aWR0
aCgpIC0gbGVmdCAtIGZsb2F0VmFsdWVGb3JMZW5ndGgobV9yaWdodCwgYm91bmRpbmdCb3gud2lk
dGgoKSwgdmlldyksIDApLAorICAgICAgICAgICAgc3RkOjptYXg8ZmxvYXQ+KGJvdW5kaW5nQm94
LmhlaWdodCgpIC0gdG9wIC0gZmxvYXRWYWx1ZUZvckxlbmd0aChtX2JvdHRvbSwgYm91bmRpbmdC
b3guaGVpZ2h0KCksIHZpZXcpLCAwKQogICAgICAgICApLAotICAgICAgICBmbG9hdFNpemVGb3JM
ZW5ndGhTaXplKG1fdG9wTGVmdFJhZGl1cywgYm91bmRpbmdCb3gpLAotICAgICAgICBmbG9hdFNp
emVGb3JMZW5ndGhTaXplKG1fdG9wUmlnaHRSYWRpdXMsIGJvdW5kaW5nQm94KSwKLSAgICAgICAg
ZmxvYXRTaXplRm9yTGVuZ3RoU2l6ZShtX2JvdHRvbUxlZnRSYWRpdXMsIGJvdW5kaW5nQm94KSwK
LSAgICAgICAgZmxvYXRTaXplRm9yTGVuZ3RoU2l6ZShtX2JvdHRvbVJpZ2h0UmFkaXVzLCBib3Vu
ZGluZ0JveCkKKyAgICAgICAgZmxvYXRTaXplRm9yTGVuZ3RoU2l6ZShtX3RvcExlZnRSYWRpdXMs
IGJvdW5kaW5nQm94LCB2aWV3KSwKKyAgICAgICAgZmxvYXRTaXplRm9yTGVuZ3RoU2l6ZShtX3Rv
cFJpZ2h0UmFkaXVzLCBib3VuZGluZ0JveCwgdmlldyksCisgICAgICAgIGZsb2F0U2l6ZUZvckxl
bmd0aFNpemUobV9ib3R0b21MZWZ0UmFkaXVzLCBib3VuZGluZ0JveCwgdmlldyksCisgICAgICAg
IGZsb2F0U2l6ZUZvckxlbmd0aFNpemUobV9ib3R0b21SaWdodFJhZGl1cywgYm91bmRpbmdCb3gs
IHZpZXcpCiAgICAgKTsKICAgICBwYXRoLmFkZFJvdW5kZWRSZWN0KHIpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Jhc2ljU2hhcGVzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuaAppbmRleCA4ZTE4ZjQ2M2YyZWY1
N2VmYWNkZTdjN2IzMjBjYmYyMmUxOTJiOTdhLi5lMjhhZDRkOWEzMjMyNWEyNjFhNTIyZjM0YTI2
MDJhOWVkYjM5NGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
QmFzaWNTaGFwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQmFzaWNT
aGFwZXMuaApAQCAtNDMsNiArNDMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBGbG9h
dFJlY3Q7CiBjbGFzcyBQYXRoOwogY2xhc3MgUmVuZGVyQm94OworY2xhc3MgUmVuZGVyVmlldzsK
IAogY2xhc3MgQmFzaWNTaGFwZSA6IHB1YmxpYyBSZWZDb3VudGVkPEJhc2ljU2hhcGU+IHsKIHB1
YmxpYzoKQEAgLTU3LDcgKzU4LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBjYW5CbGVuZChjb25z
dCBCYXNpY1NoYXBlKikgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGF0aChQYXRoJiwgY29u
c3QgRmxvYXRSZWN0JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwYXRoKFBhdGgmLCBjb25zdCBG
bG9hdFJlY3QmLCBSZW5kZXJWaWV3KikgPSAwOwogICAgIHZpcnR1YWwgV2luZFJ1bGUgd2luZFJ1
bGUoKSBjb25zdCB7IHJldHVybiBSVUxFX05PTlpFUk87IH0KICAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8QmFzaWNTaGFwZT4gYmxlbmQoY29uc3QgQmFzaWNTaGFwZSosIGRvdWJsZSkgY29uc3QgPSAw
OwogCkBAIC0xNTEsMTMgKzE1MiwxMyBAQCBwdWJsaWM6CiAgICAgY29uc3QgQmFzaWNTaGFwZUNl
bnRlckNvb3JkaW5hdGUmIGNlbnRlclgoKSBjb25zdCB7IHJldHVybiBtX2NlbnRlclg7IH0KICAg
ICBjb25zdCBCYXNpY1NoYXBlQ2VudGVyQ29vcmRpbmF0ZSYgY2VudGVyWSgpIGNvbnN0IHsgcmV0
dXJuIG1fY2VudGVyWTsgfQogICAgIGNvbnN0IEJhc2ljU2hhcGVSYWRpdXMmIHJhZGl1cygpIGNv
bnN0IHsgcmV0dXJuIG1fcmFkaXVzOyB9Ci0gICAgZmxvYXQgZmxvYXRWYWx1ZUZvclJhZGl1c0lu
Qm94KGZsb2F0IGJveFdpZHRoLCBmbG9hdCBib3hIZWlnaHQpIGNvbnN0OworICAgIGZsb2F0IGZs
b2F0VmFsdWVGb3JSYWRpdXNJbkJveChmbG9hdCBib3hXaWR0aCwgZmxvYXQgYm94SGVpZ2h0LCBS
ZW5kZXJWaWV3KikgY29uc3Q7CiAKICAgICB2b2lkIHNldENlbnRlclgoQmFzaWNTaGFwZUNlbnRl
ckNvb3JkaW5hdGUgY2VudGVyWCkgeyBtX2NlbnRlclggPSBzdGQ6Om1vdmUoY2VudGVyWCk7IH0K
ICAgICB2b2lkIHNldENlbnRlclkoQmFzaWNTaGFwZUNlbnRlckNvb3JkaW5hdGUgY2VudGVyWSkg
eyBtX2NlbnRlclkgPSBzdGQ6Om1vdmUoY2VudGVyWSk7IH0KICAgICB2b2lkIHNldFJhZGl1cyhC
YXNpY1NoYXBlUmFkaXVzIHJhZGl1cykgeyBtX3JhZGl1cyA9IHN0ZDo6bW92ZShyYWRpdXMpOyB9
CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGF0aChQYXRoJiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIHBhdGgoUGF0aCYsIGNvbnN0IEZsb2F0UmVjdCYsIFJlbmRl
clZpZXcqKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8QmFzaWNTaGFwZT4gYmxl
bmQoY29uc3QgQmFzaWNTaGFwZSosIGRvdWJsZSkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2aXJ0
dWFsIFR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEJhc2ljU2hhcGVDaXJjbGVU
eXBlOyB9CkBAIC0xNzcsMTQgKzE3OCwxNCBAQCBwdWJsaWM6CiAgICAgY29uc3QgQmFzaWNTaGFw
ZUNlbnRlckNvb3JkaW5hdGUmIGNlbnRlclkoKSBjb25zdCB7IHJldHVybiBtX2NlbnRlclk7IH0K
ICAgICBjb25zdCBCYXNpY1NoYXBlUmFkaXVzJiByYWRpdXNYKCkgY29uc3QgeyByZXR1cm4gbV9y
YWRpdXNYOyB9CiAgICAgY29uc3QgQmFzaWNTaGFwZVJhZGl1cyYgcmFkaXVzWSgpIGNvbnN0IHsg
cmV0dXJuIG1fcmFkaXVzWTsgfQotICAgIGZsb2F0IGZsb2F0VmFsdWVGb3JSYWRpdXNJbkJveChj
b25zdCBCYXNpY1NoYXBlUmFkaXVzJiwgZmxvYXQgY2VudGVyLCBmbG9hdCBib3hXaWR0aE9ySGVp
Z2h0KSBjb25zdDsKKyAgICBmbG9hdCBmbG9hdFZhbHVlRm9yUmFkaXVzSW5Cb3goY29uc3QgQmFz
aWNTaGFwZVJhZGl1cyYsIGZsb2F0IGNlbnRlciwgZmxvYXQgYm94V2lkdGhPckhlaWdodCwgUmVu
ZGVyVmlldyopIGNvbnN0OwogCiAgICAgdm9pZCBzZXRDZW50ZXJYKEJhc2ljU2hhcGVDZW50ZXJD
b29yZGluYXRlIGNlbnRlclgpIHsgbV9jZW50ZXJYID0gc3RkOjptb3ZlKGNlbnRlclgpOyB9CiAg
ICAgdm9pZCBzZXRDZW50ZXJZKEJhc2ljU2hhcGVDZW50ZXJDb29yZGluYXRlIGNlbnRlclkpIHsg
bV9jZW50ZXJZID0gc3RkOjptb3ZlKGNlbnRlclkpOyB9CiAgICAgdm9pZCBzZXRSYWRpdXNYKEJh
c2ljU2hhcGVSYWRpdXMgcmFkaXVzWCkgeyBtX3JhZGl1c1ggPSBzdGQ6Om1vdmUocmFkaXVzWCk7
IH0KICAgICB2b2lkIHNldFJhZGl1c1koQmFzaWNTaGFwZVJhZGl1cyByYWRpdXNZKSB7IG1fcmFk
aXVzWSA9IHN0ZDo6bW92ZShyYWRpdXNZKTsgfQogCi0gICAgdmlydHVhbCB2b2lkIHBhdGgoUGF0
aCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwYXRoKFBh
dGgmLCBjb25zdCBGbG9hdFJlY3QmLCBSZW5kZXJWaWV3Kikgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCBQYXNzUmVmUHRyPEJhc2ljU2hhcGU+IGJsZW5kKGNvbnN0IEJhc2ljU2hhcGUqLCBkb3VibGUp
IGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBCYXNpY1NoYXBlRWxsaXBzZVR5cGU7IH0KQEAgLTIwOCw3ICsyMDksNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRXaW5kUnVsZShXaW5kUnVsZSB3aW5kUnVsZSkgeyBtX3dpbmRS
dWxlID0gd2luZFJ1bGU7IH0KICAgICB2b2lkIGFwcGVuZFBvaW50KExlbmd0aCB4LCBMZW5ndGgg
eSkgeyBtX3ZhbHVlcy5hcHBlbmQoc3RkOjptb3ZlKHgpKTsgbV92YWx1ZXMuYXBwZW5kKHN0ZDo6
bW92ZSh5KSk7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBwYXRoKFBhdGgmLCBjb25zdCBGbG9hdFJl
Y3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcGF0aChQYXRoJiwgY29uc3QgRmxvYXRS
ZWN0JiwgUmVuZGVyVmlldyopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxCYXNp
Y1NoYXBlPiBibGVuZChjb25zdCBCYXNpY1NoYXBlKiwgZG91YmxlKSBjb25zdCBvdmVycmlkZTsK
IAogICAgIHZpcnR1YWwgV2luZFJ1bGUgd2luZFJ1bGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBtX3dpbmRSdWxlOyB9CkBAIC0yNDcsNyArMjQ4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
Qm90dG9tUmlnaHRSYWRpdXMoTGVuZ3RoU2l6ZSByYWRpdXMpIHsgbV9ib3R0b21SaWdodFJhZGl1
cyA9IHN0ZDo6bW92ZShyYWRpdXMpOyB9CiAgICAgdm9pZCBzZXRCb3R0b21MZWZ0UmFkaXVzKExl
bmd0aFNpemUgcmFkaXVzKSB7IG1fYm90dG9tTGVmdFJhZGl1cyA9IHN0ZDo6bW92ZShyYWRpdXMp
OyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGF0aChQYXRoJiwgY29uc3QgRmxvYXRSZWN0Jikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHBhdGgoUGF0aCYsIGNvbnN0IEZsb2F0UmVjdCYsIFJl
bmRlclZpZXcqKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8QmFzaWNTaGFwZT4g
YmxlbmQoY29uc3QgQmFzaWNTaGFwZSosIGRvdWJsZSkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2
aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEJhc2ljU2hhcGVJbnNl
dFR5cGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVu
ZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRl
cmluZ0NvbnRleHQuY3BwCmluZGV4IGExNDQ3MDk2MzdlY2ZjMzA0ZGFiMjViMmYxNzQ3ZDFjZDZh
MGQyYTUuLjEyZGUyODEwM2I3OTllNDAxYjAyZGI5ZTUyOTU3NmE3ZTZlYjdiNDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmNw
cApAQCAtMTUyLDcgKzE1Miw3IEBAIHZvaWQgU1ZHUmVuZGVyaW5nQ29udGV4dDo6cHJlcGFyZVRv
UmVuZGVyU1ZHQ29udGVudChSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgUGFpCiAgICAgICAgICAg
ICByZWZlcmVuY2VCb3guc2V0SGVpZ2h0KHZpZXdwb3J0U2l6ZS5oZWlnaHQoKSk7CiAgICAgICAg
IH0gZWxzZQogICAgICAgICAgICAgcmVmZXJlbmNlQm94ID0gcmVuZGVyZXIub2JqZWN0Qm91bmRp
bmdCb3goKTsKLSAgICAgICAgbV9wYWludEluZm8tPmNvbnRleHQtPmNsaXBQYXRoKGNsaXBQYXRo
LnBhdGhGb3JSZWZlcmVuY2VSZWN0KHJlZmVyZW5jZUJveCksIGNsaXBQYXRoLndpbmRSdWxlKCkp
OworICAgICAgICBtX3BhaW50SW5mby0+Y29udGV4dC0+Y2xpcFBhdGgoY2xpcFBhdGgucGF0aEZv
clJlZmVyZW5jZVJlY3QocmVmZXJlbmNlQm94LCAmcmVuZGVyZXIudmlldygpKSwgY2xpcFBhdGgu
d2luZFJ1bGUoKSk7CiAgICAgfQogCiAgICAgU1ZHUmVzb3VyY2VzKiByZXNvdXJjZXMgPSBTVkdS
ZXNvdXJjZXNDYWNoZTo6Y2FjaGVkUmVzb3VyY2VzRm9yUmVuZGVyT2JqZWN0KCptX3JlbmRlcmVy
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCBmNGQ5Nzk0YmMxNmM2ZjAwMWFmNjdiZDQyMThjOTEyMGY0OGQ2M2UxLi41MTI4
OGRkOWNjYzBkYjA5ZjI2MTY4ZTA2NDhhNTYzODQ0ZjQ3NmIwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTQtMDUtMDcgIEJlbSBKb25lcy1CZXkgIDxiam9uZXNiZUBhZG9iZS5jb20+CisKKyAg
ICAgICAgW0NTUyBTaGFwZXNdIFNoYXBlcyBkbyBub3QgcmVzb2x2ZSBkaW1lbnNpb25zIHNwZWNp
ZmllZCBpbiB2aWV3cG9ydCB1bml0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTI0MDUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBjc3MzL21hc2tpbmcvY2xpcC1wYXRoLXBvbHlnb24tdmlld3BvcnQt
dW5pdHMtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9tYXNraW5nL2NsaXAt
cGF0aC1wb2x5Z29uLXZpZXdwb3J0LXVuaXRzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
c2hhcGVzL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxvYXRzLXZpZXdwb3J0
LXVuaXRzLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2hhcGVzL3NoYXBl
LW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxvYXRzLXZpZXdwb3J0LXVuaXRzLmh0bWw6
IEFkZGVkLgorCiAyMDE0LTA1LTA3ICBSYWR1IFN0YXZpbGEgIDxzdGF2aWxhQGFkb2JlLmNvbT4K
IAogICAgICAgICBVc2UgYWZ0ZXIgZnJlZSBpbiBXZWJDb3JlOjpSZW5kZXJPYmplY3Q6Om5leHRT
aWJsaW5nIC8gV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6Om1vdmVDaGlsZHJlblRvCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL21hc2tpbmcvY2xpcC1wYXRoLXBvbHlnb24tdmll
d3BvcnQtdW5pdHMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvbWFza2luZy9jbGlw
LXBhdGgtcG9seWdvbi12aWV3cG9ydC11bml0cy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4
MWNhNzNmZjdjNGJiNTU2YzY2NDJjYWNjYWYxNDc0OTViMmVmNTcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9jc3MzL21hc2tpbmcvY2xpcC1wYXRoLXBvbHlnb24tdmlld3BvcnQtdW5p
dHMtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHls
ZT4KKyAgICAuY2xpcCB7CisgICAgICAgIHdpZHRoOiAyMHZ3OworICAgICAgICBoZWlnaHQ6IDIw
dnc7CisgICAgICAgIGJvcmRlcjogMTB2dyBzb2xpZCB3aGl0ZTsKKyAgICAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogYmx1ZTsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGRpdiBjbGFzcz0i
Y2xpcCI+PC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL21hc2tp
bmcvY2xpcC1wYXRoLXBvbHlnb24tdmlld3BvcnQtdW5pdHMuaHRtbCBiL0xheW91dFRlc3RzL2Nz
czMvbWFza2luZy9jbGlwLXBhdGgtcG9seWdvbi12aWV3cG9ydC11bml0cy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjVlN2I5NjBkMWNkYjRmMjY2MzU4ZWViYjY2ZTUwMjFjNzA2NmYyZWEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL21hc2tpbmcvY2xpcC1wYXRoLXBvbHlnb24tdmlld3Bv
cnQtdW5pdHMuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4K
KyAgICAuY2xpcCB7CisgICAgICAgIHdpZHRoOiA0MHZ3OworICAgICAgICBoZWlnaHQ6IDQwdnc7
CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAgIC13ZWJraXQtY2xpcC1w
YXRoOiBwb2x5Z29uKDEwdncgMTB2dywgMzB2dyAxMHZ3LCAzMHZ3IDMwdncsIDEwdncgMzB2dyk7
CisgICAgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxkaXYgY2xhc3M9ImNsaXAiPjwvZGl2Pgor
PC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtb3V0c2lk
ZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtdmlld3BvcnQtdW5pdHMtZXhwZWN0ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhcGVzL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91
dHNpZGUtZmxvYXRzLXZpZXdwb3J0LXVuaXRzLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Q3
NjMwZTk3MzAxOWVmMzZlZjcxZDY5ZDczMTU1YmRhZDM0OTRmMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3Qvc2hhcGVzL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNp
ZGUtZmxvYXRzLXZpZXdwb3J0LXVuaXRzLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwyMCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgLmNvbnRhaW5lciB7CisgICAgICAgIGNvbG9y
OiBibGFjazsKKyAgICAgICAgZm9udDogMjB2dy8xIEFoZW07CisgICAgfQorICAgIC5mbG9hdCB7
CisgICAgICAgIHdpZHRoOiAyMHZ3OworICAgICAgICBoZWlnaHQ6IDQwdnc7CisgICAgICAgIGZs
b2F0OiBsZWZ0OworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmV5OworICAgIH0KKzwvc3R5
bGU+Cis8Ym9keT4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNs
YXNzPSJmbG9hdCI+PC9kaXY+CisgICAgICAgIFg8YnIvPgorICAgICAgICBYCisgICAgPC9kaXY+
Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NoYXBlcy9zaGFwZS1vdXRz
aWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy12aWV3cG9ydC11bml0cy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1m
bG9hdHMtdmlld3BvcnQtdW5pdHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OTI0ZjUxMmJhNjVlODNiY2Vh
YmJjMjcwZDdhYjE1MTU5ODBiNDIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9zaGFwZXMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtdmlld3Bv
cnQtdW5pdHMuaHRtbApAQCAtMCwwICsxLDIyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4K
KyAgICAuY29udGFpbmVyIHsKKyAgICAgICAgY29sb3I6IGJsYWNrOworICAgICAgICBmb250OiAy
MHZ3LzEgQWhlbTsKKyAgICB9CisgICAgLmZsb2F0IHsKKyAgICAgICAgd2lkdGg6IDQwdnc7Cisg
ICAgICAgIGhlaWdodDogNDB2dzsKKyAgICAgICAgZmxvYXQ6IGxlZnQ7CisgICAgICAgIGJhY2tn
cm91bmQtY29sb3I6IGdyZXk7CisgICAgICAgIC13ZWJraXQtc2hhcGUtb3V0c2lkZTogaW5zZXQo
MHZ3IDI0dncgMHZ3IDB2dyk7CisgICAgICAgIC13ZWJraXQtc2hhcGUtbWFyZ2luOiA0dnc7Cisg
ICAgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAg
ICAgIDxkaXYgY2xhc3M9ImZsb2F0Ij48L2Rpdj4KKyAgICAgICAgWDxici8+CisgICAgICAgIFgK
KyAgICA8L2Rpdj4KKzwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231083</attachid>
            <date>2014-05-08 11:35:02 -0700</date>
            <delta_ts>2014-05-08 12:15:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124052-20140508113439.patch</filename>
            <type>text/plain</type>
            <size>34268</size>
            <attacher name="Bem Jones-Bey">bjonesbe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4NDc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmE1OTdhNzRjZGFmNzYw
MDdjNmM3NWU2ODAzNGU0MjljMTY1ZTIyZi4uMDU3NjBmNDQzN2I5N2NjNjI2NmMwMTdjMGFjMGIw
NjEzOWQ5YjExMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE0LTA1LTA3ICBCZW0g
Sm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgU2hhcGVzXSBT
aGFwZXMgZG8gbm90IHJlc29sdmUgZGltZW5zaW9ucyBzcGVjaWZpZWQgaW4gdmlld3BvcnQgdW5p
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDA1
MgorCisgICAgICAgIFJldmlld2VkIGJ5IERpcmsgU2NodWx6ZS4KKworICAgICAgICBWaWV3cG9y
dCB1bml0IHJlc29sdXRpb24gZG9lc24ndCB3b3JrIHVubGVzcyB0aGUgUmVuZGVyVmlldyBpcyBw
YXNzZWQKKyAgICAgICAgZG93biBpbnRvIHRoZSBmbG9hdFZhbHVlRm9yTGVuZ3RoIG1ldGhvZHMu
IEFsbCB0aGlzIGRvZXMgaXMgcGx1bWIgZG93bgorICAgICAgICBhIFJlbmRlclZpZXcgaW4gYWxs
IG9mIHRoZXNlIGNhc2VzLgorCisgICAgICAgIFRlc3RzOiBjc3MzL21hc2tpbmcvY2xpcC1wYXRo
LXBvbHlnb24tdmlld3BvcnQtdW5pdHMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9zaGFwZXMv
c2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtdmlld3BvcnQtdW5pdHMu
aHRtbAorCisgICAgICAgICogY3NzL0Jhc2ljU2hhcGVGdW5jdGlvbnMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6ZmxvYXRWYWx1ZUZvckNlbnRlckNvb3JkaW5hdGUpOgorICAgICAgICAqIGNzcy9C
YXNpY1NoYXBlRnVuY3Rpb25zLmg6CisgICAgICAgICogY3NzL0xlbmd0aEZ1bmN0aW9ucy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpmbG9hdFNpemVGb3JMZW5ndGhTaXplKToKKyAgICAgICAgKiBj
c3MvTGVuZ3RoRnVuY3Rpb25zLmg6CisgICAgICAgICogcmVuZGVyaW5nL0NsaXBQYXRoT3BlcmF0
aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpTaGFwZUNsaXBQYXRoT3BlcmF0aW9uOjpwYXRoRm9y
UmVmZXJlbmNlUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpCb3hDbGlwUGF0aE9wZXJhdGlvbjo6
cGF0aEZvclJlZmVyZW5jZVJlY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2V0dXBDbGlwUGF0aCk6CisgICAg
ICAgICogcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFw
ZTo6Y3JlYXRlU2hhcGUpOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGUuaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvc2hhcGVzL1NoYXBlT3V0c2lkZUluZm8uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2hhcGVPdXRzaWRlSW5mbzo6Y29tcHV0ZWRTaGFwZSk6CisgICAgICAgICogcmVu
ZGVyaW5nL3N0eWxlL0Jhc2ljU2hhcGVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljU2hh
cGVDaXJjbGU6OmZsb2F0VmFsdWVGb3JSYWRpdXNJbkJveCk6CisgICAgICAgIChXZWJDb3JlOjpC
YXNpY1NoYXBlQ2lyY2xlOjpwYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljU2hhcGVFbGxp
cHNlOjpmbG9hdFZhbHVlRm9yUmFkaXVzSW5Cb3gpOgorICAgICAgICAoV2ViQ29yZTo6QmFzaWNT
aGFwZUVsbGlwc2U6OnBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6QmFzaWNTaGFwZVBvbHlnb246
OnBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6ZmxvYXRTaXplRm9yTGVuZ3RoU2l6ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpCYXNpY1NoYXBlSW5zZXQ6OnBhdGgpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdHlsZS9CYXNpY1NoYXBlcy5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHUmVuZGVy
aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJpbmdDb250ZXh0Ojpw
cmVwYXJlVG9SZW5kZXJTVkdDb250ZW50KToKKwogMjAxNC0wNS0wOCAgQW50dGkgS29pdmlzdG8g
IDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPUyBXZWJLaXQyXSBDYW4ndCBhY3RpdmF0
ZSB0ZXh0IGZpZWxkcyBvbiBGYWNlYm9vawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0Jhc2ljU2hhcGVGdW5jdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0Jhc2ljU2hhcGVG
dW5jdGlvbnMuY3BwCmluZGV4IGMwODZmNmRmYWY5MTMyYTVlNWY3MzY1NDJjMDJkYjM2ODQwNDEw
MjYuLmJlZjBhNDY5NGMzNDQ5Zjc5ODg3ODQ4MjYzMmM5NjgxNDc1NzMwMDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9CYXNpY1NoYXBlRnVuY3Rpb25zLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQmFzaWNTaGFwZUZ1bmN0aW9ucy5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNp
bmNsdWRlICJDU1NWYWx1ZVBvb2wuaCIKICNpbmNsdWRlICJQYWlyLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtMjY0LDkgKzI2NSw5IEBAIFBhc3NSZWZQdHI8QmFzaWNTaGFwZT4gYmFzaWNTaGFw
ZUZvclZhbHVlKGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmIGNvbnZlCiAgICAgcmV0
dXJuIGJhc2ljU2hhcGUucmVsZWFzZSgpOwogfQogCi1mbG9hdCBmbG9hdFZhbHVlRm9yQ2VudGVy
Q29vcmRpbmF0ZShjb25zdCBCYXNpY1NoYXBlQ2VudGVyQ29vcmRpbmF0ZSYgY2VudGVyLCBmbG9h
dCBib3hEaW1lbnNpb24pCitmbG9hdCBmbG9hdFZhbHVlRm9yQ2VudGVyQ29vcmRpbmF0ZShjb25z
dCBCYXNpY1NoYXBlQ2VudGVyQ29vcmRpbmF0ZSYgY2VudGVyLCBmbG9hdCBib3hEaW1lbnNpb24s
IFJlbmRlclZpZXcqIHZpZXcpCiB7Ci0gICAgZmxvYXQgb2Zmc2V0ID0gZmxvYXRWYWx1ZUZvckxl
bmd0aChjZW50ZXIubGVuZ3RoKCksIGJveERpbWVuc2lvbik7CisgICAgZmxvYXQgb2Zmc2V0ID0g
ZmxvYXRWYWx1ZUZvckxlbmd0aChjZW50ZXIubGVuZ3RoKCksIGJveERpbWVuc2lvbiwgdmlldyk7
CiAgICAgaWYgKGNlbnRlci5kaXJlY3Rpb24oKSA9PSBCYXNpY1NoYXBlQ2VudGVyQ29vcmRpbmF0
ZTo6VG9wTGVmdCkKICAgICAgICAgcmV0dXJuIG9mZnNldDsKICAgICByZXR1cm4gYm94RGltZW5z
aW9uIC0gb2Zmc2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0Jhc2ljU2hhcGVG
dW5jdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9CYXNpY1NoYXBlRnVuY3Rpb25zLmgKaW5k
ZXggZjYxNjAwYWYzYmUzYjQxNzdiNDAzNTc5MjczNjU5M2MyYWNjZDkwMS4uNDEwNzJmZDdkM2Zi
MmRhZGY5NDRkMmY5MWRhZmNiNDliODU0M2UxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0Jhc2ljU2hhcGVGdW5jdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQmFzaWNT
aGFwZUZ1bmN0aW9ucy5oCkBAIC00MCwxMSArNDAsMTIgQEAgY2xhc3MgQ1NTUHJpbWl0aXZlVmFs
dWU7CiBjbGFzcyBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOwogY2xhc3MgQ1NTVmFsdWU7CiBj
bGFzcyBSZW5kZXJTdHlsZTsKK2NsYXNzIFJlbmRlclZpZXc7CiAKIFBhc3NSZWZQdHI8Q1NTVmFs
dWU+IHZhbHVlRm9yQmFzaWNTaGFwZShjb25zdCBSZW5kZXJTdHlsZSosIGNvbnN0IEJhc2ljU2hh
cGUqKTsKIFBhc3NSZWZQdHI8QmFzaWNTaGFwZT4gYmFzaWNTaGFwZUZvclZhbHVlKGNvbnN0IENT
U1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmLCBjb25zdCBDU1NCYXNpY1NoYXBlKik7CiAKLWZsb2F0
IGZsb2F0VmFsdWVGb3JDZW50ZXJDb29yZGluYXRlKGNvbnN0IEJhc2ljU2hhcGVDZW50ZXJDb29y
ZGluYXRlJiwgZmxvYXQpOworZmxvYXQgZmxvYXRWYWx1ZUZvckNlbnRlckNvb3JkaW5hdGUoY29u
c3QgQmFzaWNTaGFwZUNlbnRlckNvb3JkaW5hdGUmLCBmbG9hdCwgUmVuZGVyVmlldyopOwogfQog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9MZW5ndGhGdW5jdGlvbnMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0xlbmd0aEZ1bmN0aW9ucy5jcHAKaW5kZXggYmQ2N2Ix
MDdmMTBiMzFkMGMzNzFmZjMyYTUwMDVkODU2YzA0OGFlZS4uMmZhOTRlMjA3MTYxNWM1NTA0NmIw
YjQ3NGI4YjZjNGE2ZjYxZWJiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0xlbmd0
aEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0xlbmd0aEZ1bmN0aW9ucy5j
cHAKQEAgLTIxMCw5ICsyMTAsOSBAQCBmbG9hdCBmbG9hdFZhbHVlRm9yTGVuZ3RoKGNvbnN0IExl
bmd0aCYgbGVuZ3RoLCBmbG9hdCBtYXhpbXVtVmFsdWUsIFJlbmRlclZpZXcqCiAgICAgcmV0dXJu
IDA7CiB9CiAKLUZsb2F0U2l6ZSBmbG9hdFNpemVGb3JMZW5ndGhTaXplKGNvbnN0IExlbmd0aFNp
emUmIGxlbmd0aFNpemUsIGNvbnN0IEZsb2F0U2l6ZSYgYm94U2l6ZSkKK0Zsb2F0U2l6ZSBmbG9h
dFNpemVGb3JMZW5ndGhTaXplKGNvbnN0IExlbmd0aFNpemUmIGxlbmd0aFNpemUsIGNvbnN0IEZs
b2F0U2l6ZSYgYm94U2l6ZSwgUmVuZGVyVmlldyogdmlldykKIHsKLSAgICByZXR1cm4gRmxvYXRT
aXplKGZsb2F0VmFsdWVGb3JMZW5ndGgobGVuZ3RoU2l6ZS53aWR0aCgpLCBib3hTaXplLndpZHRo
KCkpLCBmbG9hdFZhbHVlRm9yTGVuZ3RoKGxlbmd0aFNpemUuaGVpZ2h0KCksIGJveFNpemUuaGVp
Z2h0KCkpKTsKKyAgICByZXR1cm4gRmxvYXRTaXplKGZsb2F0VmFsdWVGb3JMZW5ndGgobGVuZ3Ro
U2l6ZS53aWR0aCgpLCBib3hTaXplLndpZHRoKCksIHZpZXcpLCBmbG9hdFZhbHVlRm9yTGVuZ3Ro
KGxlbmd0aFNpemUuaGVpZ2h0KCksIGJveFNpemUuaGVpZ2h0KCksIHZpZXcpKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0xlbmd0
aEZ1bmN0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0xlbmd0aEZ1bmN0aW9ucy5oCmluZGV4
IDZiNDEwMjkxODY0YmJiMzdjN2IzMTFjYTkwMmYwN2I5N2JmNmRkNjIuLmJlMTk4YzFiMjNlNzBi
MTBmZTBkOWNlZjYzYjFiMWMzNTBmY2Q5MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9MZW5ndGhGdW5jdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTGVuZ3RoRnVuY3Rp
b25zLmgKQEAgLTM4LDcgKzM4LDcgQEAgTGF5b3V0VW5pdCBtaW5pbXVtVmFsdWVGb3JMZW5ndGgo
Y29uc3QgTGVuZ3RoJiwgTGF5b3V0VW5pdCBtYXhpbXVtVmFsdWUsIFJlbmRlclYKIExheW91dFVu
aXQgdmFsdWVGb3JMZW5ndGgoY29uc3QgTGVuZ3RoJiwgTGF5b3V0VW5pdCBtYXhpbXVtVmFsdWUs
IFJlbmRlclZpZXcqID0gMCwgYm9vbCByb3VuZFBlcmNlbnRhZ2VzID0gZmFsc2UpOwogZmxvYXQg
ZmxvYXRWYWx1ZUZvckxlbmd0aChjb25zdCBMZW5ndGgmLCBMYXlvdXRVbml0IG1heGltdW1WYWx1
ZSwgUmVuZGVyVmlldyogPSAwKTsKIGZsb2F0IGZsb2F0VmFsdWVGb3JMZW5ndGgoY29uc3QgTGVu
Z3RoJiwgZmxvYXQgbWF4aW11bVZhbHVlLCBSZW5kZXJWaWV3KiA9IDApOwotRmxvYXRTaXplIGZs
b2F0U2l6ZUZvckxlbmd0aFNpemUoY29uc3QgTGVuZ3RoU2l6ZSYsIGNvbnN0IEZsb2F0U2l6ZSYp
OworRmxvYXRTaXplIGZsb2F0U2l6ZUZvckxlbmd0aFNpemUoY29uc3QgTGVuZ3RoU2l6ZSYsIGNv
bnN0IEZsb2F0U2l6ZSYsIFJlbmRlclZpZXcqID0gMCk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NsaXBQYXRoT3BlcmF0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ2xpcFBhdGhPcGVyYXRpb24uaAppbmRl
eCBhZjYwYTk4NTkyMDg5ZThlNzRiNjg1NzkyY2FkZTk5ODZhZjg0ZWYyLi40YmExNTFmNzNkNDQ2
YzA4MjUzOWQ2NmEzZjM0ZjMzMDk1NDFjMzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvQ2xpcFBhdGhPcGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvQ2xpcFBhdGhPcGVyYXRpb24uaApAQCAtMTAyLDExICsxMDIsMTEgQEAgcHVibGljOgogCiAg
ICAgY29uc3QgQmFzaWNTaGFwZSogYmFzaWNTaGFwZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcGUu
Z2V0KCk7IH0KICAgICBXaW5kUnVsZSB3aW5kUnVsZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcGUt
PndpbmRSdWxlKCk7IH0KLSAgICBjb25zdCBQYXRoIHBhdGhGb3JSZWZlcmVuY2VSZWN0KGNvbnN0
IEZsb2F0UmVjdCYgYm91bmRpbmdSZWN0KSBjb25zdAorICAgIGNvbnN0IFBhdGggcGF0aEZvclJl
ZmVyZW5jZVJlY3QoY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ1JlY3QsIFJlbmRlclZpZXcqIHZp
ZXcpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQobV9zaGFwZSk7CiAgICAgICAgIFBhdGgg
cGF0aDsKLSAgICAgICAgbV9zaGFwZS0+cGF0aChwYXRoLCBib3VuZGluZ1JlY3QpOworICAgICAg
ICBtX3NoYXBlLT5wYXRoKHBhdGgsIGJvdW5kaW5nUmVjdCwgdmlldyk7CiAgICAgICAgIHJldHVy
biBwYXRoOwogICAgIH0KIApAQCAtMTQwLDcgKzE0MCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBCb3hDbGlwUGF0aE9wZXJhdGlvbihyZWZlcmVuY2VCb3gpKTsKICAg
ICB9CiAKLSAgICBjb25zdCBQYXRoIHBhdGhGb3JSZWZlcmVuY2VSZWN0KGNvbnN0IFJvdW5kZWRS
ZWN0JiBib3VuZGluZ1JlY3QpIGNvbnN0CisgICAgY29uc3QgUGF0aCBwYXRoRm9yUmVmZXJlbmNl
UmVjdChjb25zdCBSb3VuZGVkUmVjdCYgYm91bmRpbmdSZWN0LCBSZW5kZXJWaWV3KikgY29uc3QK
ICAgICB7CiAgICAgICAgIFBhdGggcGF0aDsKICAgICAgICAgcGF0aC5hZGRSb3VuZGVkUmVjdChi
b3VuZGluZ1JlY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5k
ZXggZTU3M2RlMmU4ODdhYzI2OTk4OTQ3MzY3ZmM4YzExOGUzYTBjYzM5OS4uNzU5OWQwODgyNDk1
Mjc5OWNiNjRiYjJiYTVkNmQ4ZjM4YWY4MWNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwCkBAIC0yNTA3LDcgKzI1MDcsNyBAQCBib29sIFJlbmRlckJsb2NrOjpu
b2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYg
cmVzdQogICAgICAgICAgICAgY2FzZSBDU1NCb3hUeXBlOjpWaWV3Qm94OgogICAgICAgICAgICAg
ICAgIHJlZmVyZW5jZUJveFJlY3QgPSBib3JkZXJCb3hSZWN0KCk7CiAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBpZiAoIWNsaXBQYXRoLT5wYXRoRm9yUmVmZXJlbmNlUmVjdChyZWZlcmVuY2VC
b3hSZWN0KS5jb250YWlucyhsb2NhdGlvbkluQ29udGFpbmVyLnBvaW50KCkgLSBsb2NhbE9mZnNl
dCwgY2xpcFBhdGgtPndpbmRSdWxlKCkpKQorICAgICAgICAgICAgaWYgKCFjbGlwUGF0aC0+cGF0
aEZvclJlZmVyZW5jZVJlY3QocmVmZXJlbmNlQm94UmVjdCwgJnZpZXcoKSkuY29udGFpbnMobG9j
YXRpb25JbkNvbnRhaW5lci5wb2ludCgpIC0gbG9jYWxPZmZzZXQsIGNsaXBQYXRoLT53aW5kUnVs
ZSgpKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXgg
NGY0OTI1YjVhNDE2MGM1YTM1NTVjZDk2MmEwYzA3YTNiZWY5NTJkOS4uY2I3Njg5NzJjN2RjOWNj
YTYxMjc3OWMxZTFiMTRkMWRkNWU5Mjc1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwCkBAIC0zODQyLDcgKzM4NDIsNyBAQCBib29sIFJlbmRlckxheWVyOjpzZXR1
cENsaXBQYXRoKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5ZXJQYWludGluZ0lu
ZgogCiAgICAgICAgIExheW91dFJlY3QgcmVmZXJlbmNlQm94ID0gY29tcHV0ZVJlZmVyZW5jZUJv
eChyZW5kZXJlcigpLCBjbGlwcGluZ1BhdGgsIG9mZnNldEZyb21Sb290LCByb290UmVsYXRpdmVC
b3VuZHMpOwogICAgICAgICBjb250ZXh0LT5zYXZlKCk7Ci0gICAgICAgIGNvbnRleHQtPmNsaXBQ
YXRoKGNsaXBwaW5nUGF0aC5wYXRoRm9yUmVmZXJlbmNlUmVjdChyZWZlcmVuY2VCb3gpLCBjbGlw
cGluZ1BhdGgud2luZFJ1bGUoKSk7CisgICAgICAgIGNvbnRleHQtPmNsaXBQYXRoKGNsaXBwaW5n
UGF0aC5wYXRoRm9yUmVmZXJlbmNlUmVjdChyZWZlcmVuY2VCb3gsICZtX3JlbmRlcmVyLnZpZXco
KSksIGNsaXBwaW5nUGF0aC53aW5kUnVsZSgpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogCkBAIC0zODUzLDcgKzM4NTMsNyBAQCBib29sIFJlbmRlckxheWVyOjpzZXR1cENsaXBQYXRo
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5ZXJQYWludGluZ0luZgogICAgICAg
ICBzaGFwZVJlY3QubW92ZUJ5KG9mZnNldEZyb21Sb290KTsKIAogICAgICAgICBjb250ZXh0LT5z
YXZlKCk7Ci0gICAgICAgIGNvbnRleHQtPmNsaXBQYXRoKGNsaXBwaW5nUGF0aC5wYXRoRm9yUmVm
ZXJlbmNlUmVjdChzaGFwZVJlY3QpLCBSVUxFX05PTlpFUk8pOworICAgICAgICBjb250ZXh0LT5j
bGlwUGF0aChjbGlwcGluZ1BhdGgucGF0aEZvclJlZmVyZW5jZVJlY3Qoc2hhcGVSZWN0LCAmbV9y
ZW5kZXJlci52aWV3KCkpLCBSVUxFX05PTlpFUk8pOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHAKaW5kZXggOGM3
MTNhNDZmMGI5Zjk3NDM2YzVjMDNlZmViNzdhYjcyZDZkZWE5My4uYWU2NjVhMzE4NjRlNDMzNGEy
MTJiZDcwMTA1MmMwZmFmMmQ4ZGM5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3NoYXBlcy9TaGFwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBl
cy9TaGFwZS5jcHAKQEAgLTkwLDcgKzkwLDcgQEAgc3RhdGljIGlubGluZSBGbG9hdFNpemUgcGh5
c2ljYWxTaXplVG9Mb2dpY2FsKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgV3JpdGluZ01vZGUKICAg
ICByZXR1cm4gc2l6ZS50cmFuc3Bvc2VkU2l6ZSgpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8U2hh
cGU+IFNoYXBlOjpjcmVhdGVTaGFwZShjb25zdCBCYXNpY1NoYXBlKiBiYXNpY1NoYXBlLCBjb25z
dCBMYXlvdXRTaXplJiBsb2dpY2FsQm94U2l6ZSwgV3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIGZs
b2F0IG1hcmdpbikKK3N0ZDo6dW5pcXVlX3B0cjxTaGFwZT4gU2hhcGU6OmNyZWF0ZVNoYXBlKGNv
bnN0IEJhc2ljU2hhcGUqIGJhc2ljU2hhcGUsIGNvbnN0IExheW91dFNpemUmIGxvZ2ljYWxCb3hT
aXplLCBXcml0aW5nTW9kZSB3cml0aW5nTW9kZSwgZmxvYXQgbWFyZ2luLCBSZW5kZXJWaWV3KiB2
aWV3KQogewogICAgIEFTU0VSVChiYXNpY1NoYXBlKTsKIApAQCAtMTAzLDkgKzEwMyw5IEBAIHN0
ZDo6dW5pcXVlX3B0cjxTaGFwZT4gU2hhcGU6OmNyZWF0ZVNoYXBlKGNvbnN0IEJhc2ljU2hhcGUq
IGJhc2ljU2hhcGUsIGNvbnN0IExhCiAKICAgICBjYXNlIEJhc2ljU2hhcGU6OkJhc2ljU2hhcGVD
aXJjbGVUeXBlOiB7CiAgICAgICAgIGNvbnN0IEJhc2ljU2hhcGVDaXJjbGUqIGNpcmNsZSA9IHN0
YXRpY19jYXN0PGNvbnN0IEJhc2ljU2hhcGVDaXJjbGUqPihiYXNpY1NoYXBlKTsKLSAgICAgICAg
ZmxvYXQgY2VudGVyWCA9IGZsb2F0VmFsdWVGb3JDZW50ZXJDb29yZGluYXRlKGNpcmNsZS0+Y2Vu
dGVyWCgpLCBib3hXaWR0aCk7Ci0gICAgICAgIGZsb2F0IGNlbnRlclkgPSBmbG9hdFZhbHVlRm9y
Q2VudGVyQ29vcmRpbmF0ZShjaXJjbGUtPmNlbnRlclkoKSwgYm94SGVpZ2h0KTsKLSAgICAgICAg
ZmxvYXQgcmFkaXVzID0gY2lyY2xlLT5mbG9hdFZhbHVlRm9yUmFkaXVzSW5Cb3goYm94V2lkdGgs
IGJveEhlaWdodCk7CisgICAgICAgIGZsb2F0IGNlbnRlclggPSBmbG9hdFZhbHVlRm9yQ2VudGVy
Q29vcmRpbmF0ZShjaXJjbGUtPmNlbnRlclgoKSwgYm94V2lkdGgsIHZpZXcpOworICAgICAgICBm
bG9hdCBjZW50ZXJZID0gZmxvYXRWYWx1ZUZvckNlbnRlckNvb3JkaW5hdGUoY2lyY2xlLT5jZW50
ZXJZKCksIGJveEhlaWdodCwgdmlldyk7CisgICAgICAgIGZsb2F0IHJhZGl1cyA9IGNpcmNsZS0+
ZmxvYXRWYWx1ZUZvclJhZGl1c0luQm94KGJveFdpZHRoLCBib3hIZWlnaHQsIHZpZXcpOwogICAg
ICAgICBGbG9hdFBvaW50IGxvZ2ljYWxDZW50ZXIgPSBwaHlzaWNhbFBvaW50VG9Mb2dpY2FsKEZs
b2F0UG9pbnQoY2VudGVyWCwgY2VudGVyWSksIGxvZ2ljYWxCb3hTaXplLmhlaWdodCgpLCB3cml0
aW5nTW9kZSk7CiAKICAgICAgICAgc2hhcGUgPSBjcmVhdGVDaXJjbGVTaGFwZShsb2dpY2FsQ2Vu
dGVyLCByYWRpdXMpOwpAQCAtMTE0LDEwICsxMTQsMTAgQEAgc3RkOjp1bmlxdWVfcHRyPFNoYXBl
PiBTaGFwZTo6Y3JlYXRlU2hhcGUoY29uc3QgQmFzaWNTaGFwZSogYmFzaWNTaGFwZSwgY29uc3Qg
TGEKIAogICAgIGNhc2UgQmFzaWNTaGFwZTo6QmFzaWNTaGFwZUVsbGlwc2VUeXBlOiB7CiAgICAg
ICAgIGNvbnN0IEJhc2ljU2hhcGVFbGxpcHNlKiBlbGxpcHNlID0gc3RhdGljX2Nhc3Q8Y29uc3Qg
QmFzaWNTaGFwZUVsbGlwc2UqPihiYXNpY1NoYXBlKTsKLSAgICAgICAgZmxvYXQgY2VudGVyWCA9
IGZsb2F0VmFsdWVGb3JDZW50ZXJDb29yZGluYXRlKGVsbGlwc2UtPmNlbnRlclgoKSwgYm94V2lk
dGgpOwotICAgICAgICBmbG9hdCBjZW50ZXJZID0gZmxvYXRWYWx1ZUZvckNlbnRlckNvb3JkaW5h
dGUoZWxsaXBzZS0+Y2VudGVyWSgpLCBib3hIZWlnaHQpOwotICAgICAgICBmbG9hdCByYWRpdXNY
ID0gZWxsaXBzZS0+ZmxvYXRWYWx1ZUZvclJhZGl1c0luQm94KGVsbGlwc2UtPnJhZGl1c1goKSwg
Y2VudGVyWCwgYm94V2lkdGgpOwotICAgICAgICBmbG9hdCByYWRpdXNZID0gZWxsaXBzZS0+Zmxv
YXRWYWx1ZUZvclJhZGl1c0luQm94KGVsbGlwc2UtPnJhZGl1c1koKSwgY2VudGVyWSwgYm94SGVp
Z2h0KTsKKyAgICAgICAgZmxvYXQgY2VudGVyWCA9IGZsb2F0VmFsdWVGb3JDZW50ZXJDb29yZGlu
YXRlKGVsbGlwc2UtPmNlbnRlclgoKSwgYm94V2lkdGgsIHZpZXcpOworICAgICAgICBmbG9hdCBj
ZW50ZXJZID0gZmxvYXRWYWx1ZUZvckNlbnRlckNvb3JkaW5hdGUoZWxsaXBzZS0+Y2VudGVyWSgp
LCBib3hIZWlnaHQsIHZpZXcpOworICAgICAgICBmbG9hdCByYWRpdXNYID0gZWxsaXBzZS0+Zmxv
YXRWYWx1ZUZvclJhZGl1c0luQm94KGVsbGlwc2UtPnJhZGl1c1goKSwgY2VudGVyWCwgYm94V2lk
dGgsIHZpZXcpOworICAgICAgICBmbG9hdCByYWRpdXNZID0gZWxsaXBzZS0+ZmxvYXRWYWx1ZUZv
clJhZGl1c0luQm94KGVsbGlwc2UtPnJhZGl1c1koKSwgY2VudGVyWSwgYm94SGVpZ2h0LCB2aWV3
KTsKICAgICAgICAgRmxvYXRQb2ludCBsb2dpY2FsQ2VudGVyID0gcGh5c2ljYWxQb2ludFRvTG9n
aWNhbChGbG9hdFBvaW50KGNlbnRlclgsIGNlbnRlclkpLCBsb2dpY2FsQm94U2l6ZS5oZWlnaHQo
KSwgd3JpdGluZ01vZGUpOwogCiAgICAgICAgIHNoYXBlID0gY3JlYXRlRWxsaXBzZVNoYXBlKGxv
Z2ljYWxDZW50ZXIsIEZsb2F0U2l6ZShyYWRpdXNYLCByYWRpdXNZKSk7CkBAIC0xMzIsOCArMTMy
LDggQEAgc3RkOjp1bmlxdWVfcHRyPFNoYXBlPiBTaGFwZTo6Y3JlYXRlU2hhcGUoY29uc3QgQmFz
aWNTaGFwZSogYmFzaWNTaGFwZSwgY29uc3QgTGEKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFZl
Y3RvcjxGbG9hdFBvaW50Pj4gdmVydGljZXMgPSBzdGQ6Om1ha2VfdW5pcXVlPFZlY3RvcjxGbG9h
dFBvaW50Pj4odmFsdWVzU2l6ZSAvIDIpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgdmFsdWVzU2l6ZTsgaSArPSAyKSB7CiAgICAgICAgICAgICBGbG9hdFBvaW50IHZlcnRleCgK
LSAgICAgICAgICAgICAgICBmbG9hdFZhbHVlRm9yTGVuZ3RoKHZhbHVlcy5hdChpKSwgYm94V2lk
dGgpLAotICAgICAgICAgICAgICAgIGZsb2F0VmFsdWVGb3JMZW5ndGgodmFsdWVzLmF0KGkgKyAx
KSwgYm94SGVpZ2h0KSk7CisgICAgICAgICAgICAgICAgZmxvYXRWYWx1ZUZvckxlbmd0aCh2YWx1
ZXMuYXQoaSksIGJveFdpZHRoLCB2aWV3KSwKKyAgICAgICAgICAgICAgICBmbG9hdFZhbHVlRm9y
TGVuZ3RoKHZhbHVlcy5hdChpICsgMSksIGJveEhlaWdodCwgdmlldykpOwogICAgICAgICAgICAg
KCp2ZXJ0aWNlcylbaSAvIDJdID0gcGh5c2ljYWxQb2ludFRvTG9naWNhbCh2ZXJ0ZXgsIGxvZ2lj
YWxCb3hTaXplLmhlaWdodCgpLCB3cml0aW5nTW9kZSk7CiAgICAgICAgIH0KIApAQCAtMTQzLDE5
ICsxNDMsMTkgQEAgc3RkOjp1bmlxdWVfcHRyPFNoYXBlPiBTaGFwZTo6Y3JlYXRlU2hhcGUoY29u
c3QgQmFzaWNTaGFwZSogYmFzaWNTaGFwZSwgY29uc3QgTGEKIAogICAgIGNhc2UgQmFzaWNTaGFw
ZTo6QmFzaWNTaGFwZUluc2V0VHlwZTogewogICAgICAgICBjb25zdCBCYXNpY1NoYXBlSW5zZXQm
IGluc2V0ID0gKnN0YXRpY19jYXN0PGNvbnN0IEJhc2ljU2hhcGVJbnNldCo+KGJhc2ljU2hhcGUp
OwotICAgICAgICBmbG9hdCBsZWZ0ID0gZmxvYXRWYWx1ZUZvckxlbmd0aChpbnNldC5sZWZ0KCks
IGJveFdpZHRoKTsKLSAgICAgICAgZmxvYXQgdG9wID0gZmxvYXRWYWx1ZUZvckxlbmd0aChpbnNl
dC50b3AoKSwgYm94SGVpZ2h0KTsKKyAgICAgICAgZmxvYXQgbGVmdCA9IGZsb2F0VmFsdWVGb3JM
ZW5ndGgoaW5zZXQubGVmdCgpLCBib3hXaWR0aCwgdmlldyk7CisgICAgICAgIGZsb2F0IHRvcCA9
IGZsb2F0VmFsdWVGb3JMZW5ndGgoaW5zZXQudG9wKCksIGJveEhlaWdodCwgdmlldyk7CiAgICAg
ICAgIEZsb2F0UmVjdCByZWN0KGxlZnQsCiAgICAgICAgICAgICB0b3AsCi0gICAgICAgICAgICBz
dGQ6Om1heDxmbG9hdD4oYm94V2lkdGggLSBsZWZ0IC0gZmxvYXRWYWx1ZUZvckxlbmd0aChpbnNl
dC5yaWdodCgpLCBib3hXaWR0aCksIDApLAotICAgICAgICAgICAgc3RkOjptYXg8ZmxvYXQ+KGJv
eEhlaWdodCAtIHRvcCAtIGZsb2F0VmFsdWVGb3JMZW5ndGgoaW5zZXQuYm90dG9tKCksIGJveEhl
aWdodCksIDApKTsKKyAgICAgICAgICAgIHN0ZDo6bWF4PGZsb2F0Pihib3hXaWR0aCAtIGxlZnQg
LSBmbG9hdFZhbHVlRm9yTGVuZ3RoKGluc2V0LnJpZ2h0KCksIGJveFdpZHRoLCB2aWV3KSwgMCks
CisgICAgICAgICAgICBzdGQ6Om1heDxmbG9hdD4oYm94SGVpZ2h0IC0gdG9wIC0gZmxvYXRWYWx1
ZUZvckxlbmd0aChpbnNldC5ib3R0b20oKSwgYm94SGVpZ2h0LCB2aWV3KSwgMCkpOwogICAgICAg
ICBGbG9hdFJlY3QgbG9naWNhbFJlY3QgPSBwaHlzaWNhbFJlY3RUb0xvZ2ljYWwocmVjdCwgbG9n
aWNhbEJveFNpemUuaGVpZ2h0KCksIHdyaXRpbmdNb2RlKTsKIAogICAgICAgICBGbG9hdFNpemUg
Ym94U2l6ZShib3hXaWR0aCwgYm94SGVpZ2h0KTsKLSAgICAgICAgRmxvYXRTaXplIHRvcExlZnRS
YWRpdXMgPSBwaHlzaWNhbFNpemVUb0xvZ2ljYWwoZmxvYXRTaXplRm9yTGVuZ3RoU2l6ZShpbnNl
dC50b3BMZWZ0UmFkaXVzKCksIGJveFNpemUpLCB3cml0aW5nTW9kZSk7Ci0gICAgICAgIEZsb2F0
U2l6ZSB0b3BSaWdodFJhZGl1cyA9IHBoeXNpY2FsU2l6ZVRvTG9naWNhbChmbG9hdFNpemVGb3JM
ZW5ndGhTaXplKGluc2V0LnRvcFJpZ2h0UmFkaXVzKCksIGJveFNpemUpLCB3cml0aW5nTW9kZSk7
Ci0gICAgICAgIEZsb2F0U2l6ZSBib3R0b21MZWZ0UmFkaXVzID0gcGh5c2ljYWxTaXplVG9Mb2dp
Y2FsKGZsb2F0U2l6ZUZvckxlbmd0aFNpemUoaW5zZXQuYm90dG9tTGVmdFJhZGl1cygpLCBib3hT
aXplKSwgd3JpdGluZ01vZGUpOwotICAgICAgICBGbG9hdFNpemUgYm90dG9tUmlnaHRSYWRpdXMg
PSBwaHlzaWNhbFNpemVUb0xvZ2ljYWwoZmxvYXRTaXplRm9yTGVuZ3RoU2l6ZShpbnNldC5ib3R0
b21SaWdodFJhZGl1cygpLCBib3hTaXplKSwgd3JpdGluZ01vZGUpOworICAgICAgICBGbG9hdFNp
emUgdG9wTGVmdFJhZGl1cyA9IHBoeXNpY2FsU2l6ZVRvTG9naWNhbChmbG9hdFNpemVGb3JMZW5n
dGhTaXplKGluc2V0LnRvcExlZnRSYWRpdXMoKSwgYm94U2l6ZSwgdmlldyksIHdyaXRpbmdNb2Rl
KTsKKyAgICAgICAgRmxvYXRTaXplIHRvcFJpZ2h0UmFkaXVzID0gcGh5c2ljYWxTaXplVG9Mb2dp
Y2FsKGZsb2F0U2l6ZUZvckxlbmd0aFNpemUoaW5zZXQudG9wUmlnaHRSYWRpdXMoKSwgYm94U2l6
ZSwgdmlldyksIHdyaXRpbmdNb2RlKTsKKyAgICAgICAgRmxvYXRTaXplIGJvdHRvbUxlZnRSYWRp
dXMgPSBwaHlzaWNhbFNpemVUb0xvZ2ljYWwoZmxvYXRTaXplRm9yTGVuZ3RoU2l6ZShpbnNldC5i
b3R0b21MZWZ0UmFkaXVzKCksIGJveFNpemUsIHZpZXcpLCB3cml0aW5nTW9kZSk7CisgICAgICAg
IEZsb2F0U2l6ZSBib3R0b21SaWdodFJhZGl1cyA9IHBoeXNpY2FsU2l6ZVRvTG9naWNhbChmbG9h
dFNpemVGb3JMZW5ndGhTaXplKGluc2V0LmJvdHRvbVJpZ2h0UmFkaXVzKCksIGJveFNpemUsIHZp
ZXcpLCB3cml0aW5nTW9kZSk7CiAgICAgICAgIEZsb2F0Um91bmRlZFJlY3Q6OlJhZGlpIGNvcm5l
clJhZGlpKHRvcExlZnRSYWRpdXMsIHRvcFJpZ2h0UmFkaXVzLCBib3R0b21MZWZ0UmFkaXVzLCBi
b3R0b21SaWdodFJhZGl1cyk7CiAKICAgICAgICAgY29ybmVyUmFkaWkuc2NhbGUoY2FsY0JvcmRl
clJhZGlpQ29uc3RyYWludFNjYWxlRm9yKGxvZ2ljYWxSZWN0LCBjb3JuZXJSYWRpaSkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5oCmluZGV4IDE0MzVmZmNhNjlmN2M1ZWNm
ZTRiNDI0MWQ2MDU3YWFiMGM4YjZiM2QuLjYzOWJmYzhhNTYyMDZlMDdkNDExZWZiNmI0Y2U2ODhj
Y2IwMDhiNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hh
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmgKQEAgLTQ5
LDYgKzQ5LDcgQEAgc3RydWN0IExpbmVTZWdtZW50IHsKIAogY2xhc3MgQmFzaWNTaGFwZTsKIGNs
YXNzIEltYWdlOworY2xhc3MgUmVuZGVyVmlldzsKIGNsYXNzIFJvdW5kZWRSZWN0OwogCiB0eXBl
ZGVmIFZlY3RvcjxMaW5lU2VnbWVudD4gU2VnbWVudExpc3Q7CkBAIC02Niw3ICs2Nyw3IEBAIHB1
YmxpYzoKICAgICAgICAgUGF0aCBtYXJnaW5TaGFwZTsKICAgICB9OwogCi0gICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxTaGFwZT4gY3JlYXRlU2hhcGUoY29uc3QgQmFzaWNTaGFwZSosIGNvbnN0
IExheW91dFNpemUmIGxvZ2ljYWxCb3hTaXplLCBXcml0aW5nTW9kZSwgZmxvYXQgbWFyZ2luKTsK
KyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNoYXBlPiBjcmVhdGVTaGFwZShjb25zdCBCYXNp
Y1NoYXBlKiwgY29uc3QgTGF5b3V0U2l6ZSYgbG9naWNhbEJveFNpemUsIFdyaXRpbmdNb2RlLCBm
bG9hdCBtYXJnaW4sIFJlbmRlclZpZXcqKTsKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNo
YXBlPiBjcmVhdGVSYXN0ZXJTaGFwZShJbWFnZSosIGZsb2F0IHRocmVzaG9sZCwgY29uc3QgTGF5
b3V0UmVjdCYgaW1hZ2VSZWN0LCBjb25zdCBMYXlvdXRSZWN0JiBtYXJnaW5SZWN0LCBXcml0aW5n
TW9kZSwgZmxvYXQgbWFyZ2luKTsKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNoYXBlPiBj
cmVhdGVCb3hTaGFwZShjb25zdCBSb3VuZGVkUmVjdCYsIFdyaXRpbmdNb2RlLCBmbG9hdCBtYXJn
aW4pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBl
T3V0c2lkZUluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZU91
dHNpZGVJbmZvLmNwcAppbmRleCAwNTU1MzI2ZmMzOWYyZjA4N2ZjNDI3NTNhY2Y2ZmNkZWI0ODM3
MjM3Li5hY2M1MDRhNmYyMDZhNmFiMmIyNjJmYjUyYzZmOTg0ZGM3MjczYjAzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlT3V0c2lkZUluZm8uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5jcHAK
QEAgLTE3NCwxNCArMTc0LDE0IEBAIGNvbnN0IFNoYXBlJiBTaGFwZU91dHNpZGVJbmZvOjpjb21w
dXRlZFNoYXBlKCkgY29uc3QKICAgICBjb25zdCBSZW5kZXJTdHlsZSYgY29udGFpbmluZ0Jsb2Nr
U3R5bGUgPSBtX3JlbmRlcmVyLmNvbnRhaW5pbmdCbG9jaygpLT5zdHlsZSgpOwogCiAgICAgV3Jp
dGluZ01vZGUgd3JpdGluZ01vZGUgPSBjb250YWluaW5nQmxvY2tTdHlsZS53cml0aW5nTW9kZSgp
OwotICAgIGZsb2F0IG1hcmdpbiA9IGZsb2F0VmFsdWVGb3JMZW5ndGgobV9yZW5kZXJlci5zdHls
ZSgpLnNoYXBlTWFyZ2luKCksIG1fcmVuZGVyZXIuY29udGFpbmluZ0Jsb2NrKCkgPyBtX3JlbmRl
cmVyLmNvbnRhaW5pbmdCbG9jaygpLT5jb250ZW50V2lkdGgoKSA6IExheW91dFVuaXQoKSk7Cisg
ICAgZmxvYXQgbWFyZ2luID0gZmxvYXRWYWx1ZUZvckxlbmd0aChtX3JlbmRlcmVyLnN0eWxlKCku
c2hhcGVNYXJnaW4oKSwgbV9yZW5kZXJlci5jb250YWluaW5nQmxvY2soKSA/IG1fcmVuZGVyZXIu
Y29udGFpbmluZ0Jsb2NrKCktPmNvbnRlbnRXaWR0aCgpIDogTGF5b3V0VW5pdCgpLCAmbV9yZW5k
ZXJlci52aWV3KCkpOwogICAgIGZsb2F0IHNoYXBlSW1hZ2VUaHJlc2hvbGQgPSBzdHlsZS5zaGFw
ZUltYWdlVGhyZXNob2xkKCk7CiAgICAgY29uc3QgU2hhcGVWYWx1ZSYgc2hhcGVWYWx1ZSA9ICpz
dHlsZS5zaGFwZU91dHNpZGUoKTsKIAogICAgIHN3aXRjaCAoc2hhcGVWYWx1ZS50eXBlKCkpIHsK
ICAgICBjYXNlIFNoYXBlVmFsdWU6OlNoYXBlOgogICAgICAgICBBU1NFUlQoc2hhcGVWYWx1ZS5z
aGFwZSgpKTsKLSAgICAgICAgbV9zaGFwZSA9IFNoYXBlOjpjcmVhdGVTaGFwZShzaGFwZVZhbHVl
LnNoYXBlKCksIG1fcmVmZXJlbmNlQm94TG9naWNhbFNpemUsIHdyaXRpbmdNb2RlLCBtYXJnaW4p
OworICAgICAgICBtX3NoYXBlID0gU2hhcGU6OmNyZWF0ZVNoYXBlKHNoYXBlVmFsdWUuc2hhcGUo
KSwgbV9yZWZlcmVuY2VCb3hMb2dpY2FsU2l6ZSwgd3JpdGluZ01vZGUsIG1hcmdpbiwgJm1fcmVu
ZGVyZXIudmlldygpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTaGFwZVZhbHVlOjpJbWFn
ZTogewogICAgICAgICBJbWFnZSogaW1hZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL0Jhc2ljU2hhcGVzLmNwcAppbmRleCAxZWNiMmU2MmZmNGFlYTAwMDkxNTY4MzQ0MDFm
NGYzNGU2MWE4ZGEzLi4yMmU5NzYxNDBkZDk3NDgyYTRkM2FmMTU2MjhlZGI3NDBmOWQxYzE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBlcy5jcHAKQEAg
LTg4LDEzICs4OCwxMyBAQCBib29sIEJhc2ljU2hhcGU6OmNhbkJsZW5kKGNvbnN0IEJhc2ljU2hh
cGUqIG90aGVyKSBjb25zdAogICAgICAgICAmJiB0aGlzRWxsaXBzZS0+cmFkaXVzWSgpLmNhbkJs
ZW5kKG90aGVyRWxsaXBzZS0+cmFkaXVzWSgpKSk7CiB9CiAKLWZsb2F0IEJhc2ljU2hhcGVDaXJj
bGU6OmZsb2F0VmFsdWVGb3JSYWRpdXNJbkJveChmbG9hdCBib3hXaWR0aCwgZmxvYXQgYm94SGVp
Z2h0KSBjb25zdAorZmxvYXQgQmFzaWNTaGFwZUNpcmNsZTo6ZmxvYXRWYWx1ZUZvclJhZGl1c0lu
Qm94KGZsb2F0IGJveFdpZHRoLCBmbG9hdCBib3hIZWlnaHQsIFJlbmRlclZpZXcqIHZpZXcpIGNv
bnN0CiB7CiAgICAgaWYgKG1fcmFkaXVzLnR5cGUoKSA9PSBCYXNpY1NoYXBlUmFkaXVzOjpWYWx1
ZSkKICAgICAgICAgcmV0dXJuIGZsb2F0VmFsdWVGb3JMZW5ndGgobV9yYWRpdXMudmFsdWUoKSwg
c3FydGYoKGJveFdpZHRoICogYm94V2lkdGggKyBib3hIZWlnaHQgKiBib3hIZWlnaHQpIC8gMikp
OwogCi0gICAgZmxvYXQgY2VudGVyWCA9IGZsb2F0VmFsdWVGb3JDZW50ZXJDb29yZGluYXRlKG1f
Y2VudGVyWCwgYm94V2lkdGgpOwotICAgIGZsb2F0IGNlbnRlclkgPSBmbG9hdFZhbHVlRm9yQ2Vu
dGVyQ29vcmRpbmF0ZShtX2NlbnRlclksIGJveEhlaWdodCk7CisgICAgZmxvYXQgY2VudGVyWCA9
IGZsb2F0VmFsdWVGb3JDZW50ZXJDb29yZGluYXRlKG1fY2VudGVyWCwgYm94V2lkdGgsIHZpZXcp
OworICAgIGZsb2F0IGNlbnRlclkgPSBmbG9hdFZhbHVlRm9yQ2VudGVyQ29vcmRpbmF0ZShtX2Nl
bnRlclksIGJveEhlaWdodCwgdmlldyk7CiAKICAgICBpZiAobV9yYWRpdXMudHlwZSgpID09IEJh
c2ljU2hhcGVSYWRpdXM6OkNsb3Nlc3RTaWRlKQogICAgICAgICByZXR1cm4gc3RkOjptaW4oc3Rk
OjptaW4oY2VudGVyWCwgYm94V2lkdGggLSBjZW50ZXJYKSwgc3RkOjptaW4oY2VudGVyWSwgYm94
SGVpZ2h0IC0gY2VudGVyWSkpOwpAQCAtMTAzLDEzICsxMDMsMTMgQEAgZmxvYXQgQmFzaWNTaGFw
ZUNpcmNsZTo6ZmxvYXRWYWx1ZUZvclJhZGl1c0luQm94KGZsb2F0IGJveFdpZHRoLCBmbG9hdCBi
b3hIZWlnaHQKICAgICByZXR1cm4gc3RkOjptYXgoc3RkOjptYXgoY2VudGVyWCwgYm94V2lkdGgg
LSBjZW50ZXJYKSwgc3RkOjptYXgoY2VudGVyWSwgYm94SGVpZ2h0IC0gY2VudGVyWSkpOwogfQog
Ci12b2lkIEJhc2ljU2hhcGVDaXJjbGU6OnBhdGgoUGF0aCYgcGF0aCwgY29uc3QgRmxvYXRSZWN0
JiBib3VuZGluZ0JveCkKK3ZvaWQgQmFzaWNTaGFwZUNpcmNsZTo6cGF0aChQYXRoJiBwYXRoLCBj
b25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBSZW5kZXJWaWV3KiB2aWV3KQogewogICAgIEFT
U0VSVChwYXRoLmlzRW1wdHkoKSk7CiAKLSAgICBmbG9hdCBjZW50ZXJYID0gZmxvYXRWYWx1ZUZv
ckNlbnRlckNvb3JkaW5hdGUobV9jZW50ZXJYLCBib3VuZGluZ0JveC53aWR0aCgpKTsKLSAgICBm
bG9hdCBjZW50ZXJZID0gZmxvYXRWYWx1ZUZvckNlbnRlckNvb3JkaW5hdGUobV9jZW50ZXJZLCBi
b3VuZGluZ0JveC5oZWlnaHQoKSk7Ci0gICAgZmxvYXQgcmFkaXVzID0gZmxvYXRWYWx1ZUZvclJh
ZGl1c0luQm94KGJvdW5kaW5nQm94LndpZHRoKCksIGJvdW5kaW5nQm94LmhlaWdodCgpKTsKKyAg
ICBmbG9hdCBjZW50ZXJYID0gZmxvYXRWYWx1ZUZvckNlbnRlckNvb3JkaW5hdGUobV9jZW50ZXJY
LCBib3VuZGluZ0JveC53aWR0aCgpLCB2aWV3KTsKKyAgICBmbG9hdCBjZW50ZXJZID0gZmxvYXRW
YWx1ZUZvckNlbnRlckNvb3JkaW5hdGUobV9jZW50ZXJZLCBib3VuZGluZ0JveC5oZWlnaHQoKSwg
dmlldyk7CisgICAgZmxvYXQgcmFkaXVzID0gZmxvYXRWYWx1ZUZvclJhZGl1c0luQm94KGJvdW5k
aW5nQm94LndpZHRoKCksIGJvdW5kaW5nQm94LmhlaWdodCgpLCB2aWV3KTsKICAgICBwYXRoLmFk
ZEVsbGlwc2UoRmxvYXRSZWN0KAogICAgICAgICBjZW50ZXJYIC0gcmFkaXVzICsgYm91bmRpbmdC
b3gueCgpLAogICAgICAgICBjZW50ZXJZIC0gcmFkaXVzICsgYm91bmRpbmdCb3gueSgpLApAQCAt
MTMwLDEwICsxMzAsMTAgQEAgUGFzc1JlZlB0cjxCYXNpY1NoYXBlPiBCYXNpY1NoYXBlQ2lyY2xl
OjpibGVuZChjb25zdCBCYXNpY1NoYXBlKiBvdGhlciwgZG91YmxlIHAKICAgICByZXR1cm4gcmVz
dWx0LnJlbGVhc2UoKTsKIH0KIAotZmxvYXQgQmFzaWNTaGFwZUVsbGlwc2U6OmZsb2F0VmFsdWVG
b3JSYWRpdXNJbkJveChjb25zdCBCYXNpY1NoYXBlUmFkaXVzJiByYWRpdXMsIGZsb2F0IGNlbnRl
ciwgZmxvYXQgYm94V2lkdGhPckhlaWdodCkgY29uc3QKK2Zsb2F0IEJhc2ljU2hhcGVFbGxpcHNl
OjpmbG9hdFZhbHVlRm9yUmFkaXVzSW5Cb3goY29uc3QgQmFzaWNTaGFwZVJhZGl1cyYgcmFkaXVz
LCBmbG9hdCBjZW50ZXIsIGZsb2F0IGJveFdpZHRoT3JIZWlnaHQsIFJlbmRlclZpZXcqIHZpZXcp
IGNvbnN0CiB7CiAgICAgaWYgKHJhZGl1cy50eXBlKCkgPT0gQmFzaWNTaGFwZVJhZGl1czo6VmFs
dWUpCi0gICAgICAgIHJldHVybiBmbG9hdFZhbHVlRm9yTGVuZ3RoKHJhZGl1cy52YWx1ZSgpLCBi
b3hXaWR0aE9ySGVpZ2h0KTsKKyAgICAgICAgcmV0dXJuIGZsb2F0VmFsdWVGb3JMZW5ndGgocmFk
aXVzLnZhbHVlKCksIGJveFdpZHRoT3JIZWlnaHQsIHZpZXcpOwogCiAgICAgaWYgKHJhZGl1cy50
eXBlKCkgPT0gQmFzaWNTaGFwZVJhZGl1czo6Q2xvc2VzdFNpZGUpCiAgICAgICAgIHJldHVybiBz
dGQ6Om1pbihjZW50ZXIsIGJveFdpZHRoT3JIZWlnaHQgLSBjZW50ZXIpOwpAQCAtMTQyLDE0ICsx
NDIsMTQgQEAgZmxvYXQgQmFzaWNTaGFwZUVsbGlwc2U6OmZsb2F0VmFsdWVGb3JSYWRpdXNJbkJv
eChjb25zdCBCYXNpY1NoYXBlUmFkaXVzJiByYWRpdXMKICAgICByZXR1cm4gc3RkOjptYXgoY2Vu
dGVyLCBib3hXaWR0aE9ySGVpZ2h0IC0gY2VudGVyKTsKIH0KIAotdm9pZCBCYXNpY1NoYXBlRWxs
aXBzZTo6cGF0aChQYXRoJiBwYXRoLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94KQordm9p
ZCBCYXNpY1NoYXBlRWxsaXBzZTo6cGF0aChQYXRoJiBwYXRoLCBjb25zdCBGbG9hdFJlY3QmIGJv
dW5kaW5nQm94LCBSZW5kZXJWaWV3KiB2aWV3KQogewogICAgIEFTU0VSVChwYXRoLmlzRW1wdHko
KSk7CiAKLSAgICBmbG9hdCBjZW50ZXJYID0gZmxvYXRWYWx1ZUZvckNlbnRlckNvb3JkaW5hdGUo
bV9jZW50ZXJYLCBib3VuZGluZ0JveC53aWR0aCgpKTsKLSAgICBmbG9hdCBjZW50ZXJZID0gZmxv
YXRWYWx1ZUZvckNlbnRlckNvb3JkaW5hdGUobV9jZW50ZXJZLCBib3VuZGluZ0JveC5oZWlnaHQo
KSk7Ci0gICAgZmxvYXQgcmFkaXVzWCA9IGZsb2F0VmFsdWVGb3JSYWRpdXNJbkJveChtX3JhZGl1
c1gsIGNlbnRlclgsIGJvdW5kaW5nQm94LndpZHRoKCkpOwotICAgIGZsb2F0IHJhZGl1c1kgPSBm
bG9hdFZhbHVlRm9yUmFkaXVzSW5Cb3gobV9yYWRpdXNZLCBjZW50ZXJZLCBib3VuZGluZ0JveC5o
ZWlnaHQoKSk7CisgICAgZmxvYXQgY2VudGVyWCA9IGZsb2F0VmFsdWVGb3JDZW50ZXJDb29yZGlu
YXRlKG1fY2VudGVyWCwgYm91bmRpbmdCb3gud2lkdGgoKSwgdmlldyk7CisgICAgZmxvYXQgY2Vu
dGVyWSA9IGZsb2F0VmFsdWVGb3JDZW50ZXJDb29yZGluYXRlKG1fY2VudGVyWSwgYm91bmRpbmdC
b3guaGVpZ2h0KCksIHZpZXcpOworICAgIGZsb2F0IHJhZGl1c1ggPSBmbG9hdFZhbHVlRm9yUmFk
aXVzSW5Cb3gobV9yYWRpdXNYLCBjZW50ZXJYLCBib3VuZGluZ0JveC53aWR0aCgpLCB2aWV3KTsK
KyAgICBmbG9hdCByYWRpdXNZID0gZmxvYXRWYWx1ZUZvclJhZGl1c0luQm94KG1fcmFkaXVzWSwg
Y2VudGVyWSwgYm91bmRpbmdCb3guaGVpZ2h0KCksIHZpZXcpOwogICAgIHBhdGguYWRkRWxsaXBz
ZShGbG9hdFJlY3QoCiAgICAgICAgIGNlbnRlclggLSByYWRpdXNYICsgYm91bmRpbmdCb3gueCgp
LAogICAgICAgICBjZW50ZXJZIC0gcmFkaXVzWSArIGJvdW5kaW5nQm94LnkoKSwKQEAgLTE3OSw3
ICsxNzksNyBAQCBQYXNzUmVmUHRyPEJhc2ljU2hhcGU+IEJhc2ljU2hhcGVFbGxpcHNlOjpibGVu
ZChjb25zdCBCYXNpY1NoYXBlKiBvdGhlciwgZG91YmxlCiAgICAgcmV0dXJuIHJlc3VsdC5yZWxl
YXNlKCk7CiB9CiAKLXZvaWQgQmFzaWNTaGFwZVBvbHlnb246OnBhdGgoUGF0aCYgcGF0aCwgY29u
c3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCkKK3ZvaWQgQmFzaWNTaGFwZVBvbHlnb246OnBhdGgo
UGF0aCYgcGF0aCwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgUmVuZGVyVmlldyogdmll
dykKIHsKICAgICBBU1NFUlQocGF0aC5pc0VtcHR5KCkpOwogICAgIEFTU0VSVCghKG1fdmFsdWVz
LnNpemUoKSAlIDIpKTsKQEAgLTE4OCwxMSArMTg4LDExIEBAIHZvaWQgQmFzaWNTaGFwZVBvbHln
b246OnBhdGgoUGF0aCYgcGF0aCwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCkKICAgICBp
ZiAoIWxlbmd0aCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcGF0aC5tb3ZlVG8oRmxvYXRQb2lu
dChmbG9hdFZhbHVlRm9yTGVuZ3RoKG1fdmFsdWVzLmF0KDApLCBib3VuZGluZ0JveC53aWR0aCgp
KSArIGJvdW5kaW5nQm94LngoKSwKLSAgICAgICAgZmxvYXRWYWx1ZUZvckxlbmd0aChtX3ZhbHVl
cy5hdCgxKSwgYm91bmRpbmdCb3guaGVpZ2h0KCkpICsgYm91bmRpbmdCb3gueSgpKSk7CisgICAg
cGF0aC5tb3ZlVG8oRmxvYXRQb2ludChmbG9hdFZhbHVlRm9yTGVuZ3RoKG1fdmFsdWVzLmF0KDAp
LCBib3VuZGluZ0JveC53aWR0aCgpLCB2aWV3KSArIGJvdW5kaW5nQm94LngoKSwKKyAgICAgICAg
ZmxvYXRWYWx1ZUZvckxlbmd0aChtX3ZhbHVlcy5hdCgxKSwgYm91bmRpbmdCb3guaGVpZ2h0KCks
IHZpZXcpICsgYm91bmRpbmdCb3gueSgpKSk7CiAgICAgZm9yIChzaXplX3QgaSA9IDI7IGkgPCBs
ZW5ndGg7IGkgPSBpICsgMikgewotICAgICAgICBwYXRoLmFkZExpbmVUbyhGbG9hdFBvaW50KGZs
b2F0VmFsdWVGb3JMZW5ndGgobV92YWx1ZXMuYXQoaSksIGJvdW5kaW5nQm94LndpZHRoKCkpICsg
Ym91bmRpbmdCb3gueCgpLAotICAgICAgICAgICAgZmxvYXRWYWx1ZUZvckxlbmd0aChtX3ZhbHVl
cy5hdChpICsgMSksIGJvdW5kaW5nQm94LmhlaWdodCgpKSArIGJvdW5kaW5nQm94LnkoKSkpOwor
ICAgICAgICBwYXRoLmFkZExpbmVUbyhGbG9hdFBvaW50KGZsb2F0VmFsdWVGb3JMZW5ndGgobV92
YWx1ZXMuYXQoaSksIGJvdW5kaW5nQm94LndpZHRoKCksIHZpZXcpICsgYm91bmRpbmdCb3gueCgp
LAorICAgICAgICAgICAgZmxvYXRWYWx1ZUZvckxlbmd0aChtX3ZhbHVlcy5hdChpICsgMSksIGJv
dW5kaW5nQm94LmhlaWdodCgpLCB2aWV3KSArIGJvdW5kaW5nQm94LnkoKSkpOwogICAgIH0KICAg
ICBwYXRoLmNsb3NlU3VicGF0aCgpOwogfQpAQCAtMjIwLDI4ICsyMjAsMjggQEAgUGFzc1JlZlB0
cjxCYXNpY1NoYXBlPiBCYXNpY1NoYXBlUG9seWdvbjo6YmxlbmQoY29uc3QgQmFzaWNTaGFwZSog
b3RoZXIsIGRvdWJsZQogICAgIHJldHVybiByZXN1bHQucmVsZWFzZSgpOwogfQogCi1zdGF0aWMg
RmxvYXRTaXplIGZsb2F0U2l6ZUZvckxlbmd0aFNpemUoY29uc3QgTGVuZ3RoU2l6ZSYgbGVuZ3Ro
U2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCkKK3N0YXRpYyBGbG9hdFNpemUgZmxv
YXRTaXplRm9yTGVuZ3RoU2l6ZShjb25zdCBMZW5ndGhTaXplJiBsZW5ndGhTaXplLCBjb25zdCBG
bG9hdFJlY3QmIGJvdW5kaW5nQm94LCBSZW5kZXJWaWV3KiB2aWV3KQogewotICAgIHJldHVybiBG
bG9hdFNpemUoZmxvYXRWYWx1ZUZvckxlbmd0aChsZW5ndGhTaXplLndpZHRoKCksIGJvdW5kaW5n
Qm94LndpZHRoKCkpLAotICAgICAgICBmbG9hdFZhbHVlRm9yTGVuZ3RoKGxlbmd0aFNpemUuaGVp
Z2h0KCksIGJvdW5kaW5nQm94LmhlaWdodCgpKSk7CisgICAgcmV0dXJuIEZsb2F0U2l6ZShmbG9h
dFZhbHVlRm9yTGVuZ3RoKGxlbmd0aFNpemUud2lkdGgoKSwgYm91bmRpbmdCb3gud2lkdGgoKSwg
dmlldyksCisgICAgICAgIGZsb2F0VmFsdWVGb3JMZW5ndGgobGVuZ3RoU2l6ZS5oZWlnaHQoKSwg
Ym91bmRpbmdCb3guaGVpZ2h0KCksIHZpZXcpKTsKIH0KIAotdm9pZCBCYXNpY1NoYXBlSW5zZXQ6
OnBhdGgoUGF0aCYgcGF0aCwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCkKK3ZvaWQgQmFz
aWNTaGFwZUluc2V0OjpwYXRoKFBhdGgmIHBhdGgsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdC
b3gsIFJlbmRlclZpZXcqIHZpZXcpCiB7CiAgICAgQVNTRVJUKHBhdGguaXNFbXB0eSgpKTsKLSAg
ICBmbG9hdCBsZWZ0ID0gZmxvYXRWYWx1ZUZvckxlbmd0aChtX2xlZnQsIGJvdW5kaW5nQm94Lndp
ZHRoKCkpOwotICAgIGZsb2F0IHRvcCA9IGZsb2F0VmFsdWVGb3JMZW5ndGgobV90b3AsIGJvdW5k
aW5nQm94LmhlaWdodCgpKTsKKyAgICBmbG9hdCBsZWZ0ID0gZmxvYXRWYWx1ZUZvckxlbmd0aCht
X2xlZnQsIGJvdW5kaW5nQm94LndpZHRoKCksIHZpZXcpOworICAgIGZsb2F0IHRvcCA9IGZsb2F0
VmFsdWVGb3JMZW5ndGgobV90b3AsIGJvdW5kaW5nQm94LmhlaWdodCgpLCB2aWV3KTsKICAgICBG
bG9hdFJvdW5kZWRSZWN0IHIgPSBGbG9hdFJvdW5kZWRSZWN0KAogICAgICAgICBGbG9hdFJlY3Qo
CiAgICAgICAgICAgICBsZWZ0ICsgYm91bmRpbmdCb3gueCgpLAogICAgICAgICAgICAgdG9wICsg
Ym91bmRpbmdCb3gueSgpLAotICAgICAgICAgICAgc3RkOjptYXg8ZmxvYXQ+KGJvdW5kaW5nQm94
LndpZHRoKCkgLSBsZWZ0IC0gZmxvYXRWYWx1ZUZvckxlbmd0aChtX3JpZ2h0LCBib3VuZGluZ0Jv
eC53aWR0aCgpKSwgMCksCi0gICAgICAgICAgICBzdGQ6Om1heDxmbG9hdD4oYm91bmRpbmdCb3gu
aGVpZ2h0KCkgLSB0b3AgLSBmbG9hdFZhbHVlRm9yTGVuZ3RoKG1fYm90dG9tLCBib3VuZGluZ0Jv
eC5oZWlnaHQoKSksIDApCisgICAgICAgICAgICBzdGQ6Om1heDxmbG9hdD4oYm91bmRpbmdCb3gu
d2lkdGgoKSAtIGxlZnQgLSBmbG9hdFZhbHVlRm9yTGVuZ3RoKG1fcmlnaHQsIGJvdW5kaW5nQm94
LndpZHRoKCksIHZpZXcpLCAwKSwKKyAgICAgICAgICAgIHN0ZDo6bWF4PGZsb2F0Pihib3VuZGlu
Z0JveC5oZWlnaHQoKSAtIHRvcCAtIGZsb2F0VmFsdWVGb3JMZW5ndGgobV9ib3R0b20sIGJvdW5k
aW5nQm94LmhlaWdodCgpLCB2aWV3KSwgMCkKICAgICAgICAgKSwKLSAgICAgICAgZmxvYXRTaXpl
Rm9yTGVuZ3RoU2l6ZShtX3RvcExlZnRSYWRpdXMsIGJvdW5kaW5nQm94KSwKLSAgICAgICAgZmxv
YXRTaXplRm9yTGVuZ3RoU2l6ZShtX3RvcFJpZ2h0UmFkaXVzLCBib3VuZGluZ0JveCksCi0gICAg
ICAgIGZsb2F0U2l6ZUZvckxlbmd0aFNpemUobV9ib3R0b21MZWZ0UmFkaXVzLCBib3VuZGluZ0Jv
eCksCi0gICAgICAgIGZsb2F0U2l6ZUZvckxlbmd0aFNpemUobV9ib3R0b21SaWdodFJhZGl1cywg
Ym91bmRpbmdCb3gpCisgICAgICAgIGZsb2F0U2l6ZUZvckxlbmd0aFNpemUobV90b3BMZWZ0UmFk
aXVzLCBib3VuZGluZ0JveCwgdmlldyksCisgICAgICAgIGZsb2F0U2l6ZUZvckxlbmd0aFNpemUo
bV90b3BSaWdodFJhZGl1cywgYm91bmRpbmdCb3gsIHZpZXcpLAorICAgICAgICBmbG9hdFNpemVG
b3JMZW5ndGhTaXplKG1fYm90dG9tTGVmdFJhZGl1cywgYm91bmRpbmdCb3gsIHZpZXcpLAorICAg
ICAgICBmbG9hdFNpemVGb3JMZW5ndGhTaXplKG1fYm90dG9tUmlnaHRSYWRpdXMsIGJvdW5kaW5n
Qm94LCB2aWV3KQogICAgICk7CiAgICAgcGF0aC5hZGRSb3VuZGVkUmVjdChyKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBlcy5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Jhc2ljU2hhcGVzLmgKaW5kZXggOGUxOGY0NjNm
MmVmNTdlZmFjZGU3YzdiMzIwY2JmMjJlMTkyYjk3YS4uZTI4YWQ0ZDlhMzIzMjVhMjYxYTUyMmYz
NGEyNjAyYTllZGIzOTRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL0Jhc2ljU2hhcGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Jh
c2ljU2hhcGVzLmgKQEAgLTQzLDYgKzQzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
RmxvYXRSZWN0OwogY2xhc3MgUGF0aDsKIGNsYXNzIFJlbmRlckJveDsKK2NsYXNzIFJlbmRlclZp
ZXc7CiAKIGNsYXNzIEJhc2ljU2hhcGUgOiBwdWJsaWMgUmVmQ291bnRlZDxCYXNpY1NoYXBlPiB7
CiBwdWJsaWM6CkBAIC01Nyw3ICs1OCw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgY2FuQmxlbmQo
Y29uc3QgQmFzaWNTaGFwZSopIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIHBhdGgoUGF0aCYs
IGNvbnN0IEZsb2F0UmVjdCYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcGF0aChQYXRoJiwgY29u
c3QgRmxvYXRSZWN0JiwgUmVuZGVyVmlldyopID0gMDsKICAgICB2aXJ0dWFsIFdpbmRSdWxlIHdp
bmRSdWxlKCkgY29uc3QgeyByZXR1cm4gUlVMRV9OT05aRVJPOyB9CiAgICAgdmlydHVhbCBQYXNz
UmVmUHRyPEJhc2ljU2hhcGU+IGJsZW5kKGNvbnN0IEJhc2ljU2hhcGUqLCBkb3VibGUpIGNvbnN0
ID0gMDsKIApAQCAtMTUxLDEzICsxNTIsMTMgQEAgcHVibGljOgogICAgIGNvbnN0IEJhc2ljU2hh
cGVDZW50ZXJDb29yZGluYXRlJiBjZW50ZXJYKCkgY29uc3QgeyByZXR1cm4gbV9jZW50ZXJYOyB9
CiAgICAgY29uc3QgQmFzaWNTaGFwZUNlbnRlckNvb3JkaW5hdGUmIGNlbnRlclkoKSBjb25zdCB7
IHJldHVybiBtX2NlbnRlclk7IH0KICAgICBjb25zdCBCYXNpY1NoYXBlUmFkaXVzJiByYWRpdXMo
KSBjb25zdCB7IHJldHVybiBtX3JhZGl1czsgfQotICAgIGZsb2F0IGZsb2F0VmFsdWVGb3JSYWRp
dXNJbkJveChmbG9hdCBib3hXaWR0aCwgZmxvYXQgYm94SGVpZ2h0KSBjb25zdDsKKyAgICBmbG9h
dCBmbG9hdFZhbHVlRm9yUmFkaXVzSW5Cb3goZmxvYXQgYm94V2lkdGgsIGZsb2F0IGJveEhlaWdo
dCwgUmVuZGVyVmlldyopIGNvbnN0OwogCiAgICAgdm9pZCBzZXRDZW50ZXJYKEJhc2ljU2hhcGVD
ZW50ZXJDb29yZGluYXRlIGNlbnRlclgpIHsgbV9jZW50ZXJYID0gc3RkOjptb3ZlKGNlbnRlclgp
OyB9CiAgICAgdm9pZCBzZXRDZW50ZXJZKEJhc2ljU2hhcGVDZW50ZXJDb29yZGluYXRlIGNlbnRl
clkpIHsgbV9jZW50ZXJZID0gc3RkOjptb3ZlKGNlbnRlclkpOyB9CiAgICAgdm9pZCBzZXRSYWRp
dXMoQmFzaWNTaGFwZVJhZGl1cyByYWRpdXMpIHsgbV9yYWRpdXMgPSBzdGQ6Om1vdmUocmFkaXVz
KTsgfQogCi0gICAgdmlydHVhbCB2b2lkIHBhdGgoUGF0aCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwYXRoKFBhdGgmLCBjb25zdCBGbG9hdFJlY3QmLCBS
ZW5kZXJWaWV3Kikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEJhc2ljU2hhcGU+
IGJsZW5kKGNvbnN0IEJhc2ljU2hhcGUqLCBkb3VibGUpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAg
dmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBCYXNpY1NoYXBlQ2ly
Y2xlVHlwZTsgfQpAQCAtMTc3LDE0ICsxNzgsMTQgQEAgcHVibGljOgogICAgIGNvbnN0IEJhc2lj
U2hhcGVDZW50ZXJDb29yZGluYXRlJiBjZW50ZXJZKCkgY29uc3QgeyByZXR1cm4gbV9jZW50ZXJZ
OyB9CiAgICAgY29uc3QgQmFzaWNTaGFwZVJhZGl1cyYgcmFkaXVzWCgpIGNvbnN0IHsgcmV0dXJu
IG1fcmFkaXVzWDsgfQogICAgIGNvbnN0IEJhc2ljU2hhcGVSYWRpdXMmIHJhZGl1c1koKSBjb25z
dCB7IHJldHVybiBtX3JhZGl1c1k7IH0KLSAgICBmbG9hdCBmbG9hdFZhbHVlRm9yUmFkaXVzSW5C
b3goY29uc3QgQmFzaWNTaGFwZVJhZGl1cyYsIGZsb2F0IGNlbnRlciwgZmxvYXQgYm94V2lkdGhP
ckhlaWdodCkgY29uc3Q7CisgICAgZmxvYXQgZmxvYXRWYWx1ZUZvclJhZGl1c0luQm94KGNvbnN0
IEJhc2ljU2hhcGVSYWRpdXMmLCBmbG9hdCBjZW50ZXIsIGZsb2F0IGJveFdpZHRoT3JIZWlnaHQs
IFJlbmRlclZpZXcqKSBjb25zdDsKIAogICAgIHZvaWQgc2V0Q2VudGVyWChCYXNpY1NoYXBlQ2Vu
dGVyQ29vcmRpbmF0ZSBjZW50ZXJYKSB7IG1fY2VudGVyWCA9IHN0ZDo6bW92ZShjZW50ZXJYKTsg
fQogICAgIHZvaWQgc2V0Q2VudGVyWShCYXNpY1NoYXBlQ2VudGVyQ29vcmRpbmF0ZSBjZW50ZXJZ
KSB7IG1fY2VudGVyWSA9IHN0ZDo6bW92ZShjZW50ZXJZKTsgfQogICAgIHZvaWQgc2V0UmFkaXVz
WChCYXNpY1NoYXBlUmFkaXVzIHJhZGl1c1gpIHsgbV9yYWRpdXNYID0gc3RkOjptb3ZlKHJhZGl1
c1gpOyB9CiAgICAgdm9pZCBzZXRSYWRpdXNZKEJhc2ljU2hhcGVSYWRpdXMgcmFkaXVzWSkgeyBt
X3JhZGl1c1kgPSBzdGQ6Om1vdmUocmFkaXVzWSk7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBwYXRo
KFBhdGgmLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcGF0
aChQYXRoJiwgY29uc3QgRmxvYXRSZWN0JiwgUmVuZGVyVmlldyopIG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxCYXNpY1NoYXBlPiBibGVuZChjb25zdCBCYXNpY1NoYXBlKiwgZG91
YmxlKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gQmFzaWNTaGFwZUVsbGlwc2VUeXBlOyB9CkBAIC0yMDgsNyArMjA5LDcg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0V2luZFJ1bGUoV2luZFJ1bGUgd2luZFJ1bGUpIHsgbV93
aW5kUnVsZSA9IHdpbmRSdWxlOyB9CiAgICAgdm9pZCBhcHBlbmRQb2ludChMZW5ndGggeCwgTGVu
Z3RoIHkpIHsgbV92YWx1ZXMuYXBwZW5kKHN0ZDo6bW92ZSh4KSk7IG1fdmFsdWVzLmFwcGVuZChz
dGQ6Om1vdmUoeSkpOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGF0aChQYXRoJiwgY29uc3QgRmxv
YXRSZWN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHBhdGgoUGF0aCYsIGNvbnN0IEZs
b2F0UmVjdCYsIFJlbmRlclZpZXcqKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
QmFzaWNTaGFwZT4gYmxlbmQoY29uc3QgQmFzaWNTaGFwZSosIGRvdWJsZSkgY29uc3Qgb3ZlcnJp
ZGU7CiAKICAgICB2aXJ0dWFsIFdpbmRSdWxlIHdpbmRSdWxlKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV93aW5kUnVsZTsgfQpAQCAtMjQ3LDcgKzI0OCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldEJvdHRvbVJpZ2h0UmFkaXVzKExlbmd0aFNpemUgcmFkaXVzKSB7IG1fYm90dG9tUmlnaHRS
YWRpdXMgPSBzdGQ6Om1vdmUocmFkaXVzKTsgfQogICAgIHZvaWQgc2V0Qm90dG9tTGVmdFJhZGl1
cyhMZW5ndGhTaXplIHJhZGl1cykgeyBtX2JvdHRvbUxlZnRSYWRpdXMgPSBzdGQ6Om1vdmUocmFk
aXVzKTsgfQogCi0gICAgdmlydHVhbCB2b2lkIHBhdGgoUGF0aCYsIGNvbnN0IEZsb2F0UmVjdCYp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwYXRoKFBhdGgmLCBjb25zdCBGbG9hdFJlY3Qm
LCBSZW5kZXJWaWV3Kikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEJhc2ljU2hh
cGU+IGJsZW5kKGNvbnN0IEJhc2ljU2hhcGUqLCBkb3VibGUpIGNvbnN0IG92ZXJyaWRlOwogCiAg
ICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBCYXNpY1NoYXBl
SW5zZXRUeXBlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NW
R1JlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdS
ZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCBhMTQ0NzA5NjM3ZWNmYzMwNGRhYjI1YjJmMTc0N2Qx
Y2Q2YTBkMmE1Li4xMmRlMjgxMDNiNzk5ZTQwMWIwMmRiOWU1Mjk1NzZhN2U2ZWI3YjQ0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4
dC5jcHAKQEAgLTE1Miw3ICsxNTIsNyBAQCB2b2lkIFNWR1JlbmRlcmluZ0NvbnRleHQ6OnByZXBh
cmVUb1JlbmRlclNWR0NvbnRlbnQoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIsIFBhaQogICAgICAg
ICAgICAgcmVmZXJlbmNlQm94LnNldEhlaWdodCh2aWV3cG9ydFNpemUuaGVpZ2h0KCkpOwogICAg
ICAgICB9IGVsc2UKICAgICAgICAgICAgIHJlZmVyZW5jZUJveCA9IHJlbmRlcmVyLm9iamVjdEJv
dW5kaW5nQm94KCk7Ci0gICAgICAgIG1fcGFpbnRJbmZvLT5jb250ZXh0LT5jbGlwUGF0aChjbGlw
UGF0aC5wYXRoRm9yUmVmZXJlbmNlUmVjdChyZWZlcmVuY2VCb3gpLCBjbGlwUGF0aC53aW5kUnVs
ZSgpKTsKKyAgICAgICAgbV9wYWludEluZm8tPmNvbnRleHQtPmNsaXBQYXRoKGNsaXBQYXRoLnBh
dGhGb3JSZWZlcmVuY2VSZWN0KHJlZmVyZW5jZUJveCwgJnJlbmRlcmVyLnZpZXcoKSksIGNsaXBQ
YXRoLndpbmRSdWxlKCkpOwogICAgIH0KIAogICAgIFNWR1Jlc291cmNlcyogcmVzb3VyY2VzID0g
U1ZHUmVzb3VyY2VzQ2FjaGU6OmNhY2hlZFJlc291cmNlc0ZvclJlbmRlck9iamVjdCgqbV9yZW5k
ZXJlcik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggYjMwZWY5Mzc0ZDBjZTYzNTY0ODJmYjMzMjVlZTg2ZjU2ZmViNzkwYi4u
NDRmZmI3MTg2NjdiYzllNDY0NjRhODdkNjg2YmQzN2MwZjQwOTA1ZCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDE0LTA1LTA3ICBCZW0gSm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgor
CisgICAgICAgIFtDU1MgU2hhcGVzXSBTaGFwZXMgZG8gbm90IHJlc29sdmUgZGltZW5zaW9ucyBz
cGVjaWZpZWQgaW4gdmlld3BvcnQgdW5pdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyNDA1MgorCisgICAgICAgIFJldmlld2VkIGJ5IERpcmsgU2No
dWx6ZS4KKworICAgICAgICAqIGNzczMvbWFza2luZy9jbGlwLXBhdGgtcG9seWdvbi12aWV3cG9y
dC11bml0cy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL21hc2tpbmcvY2xp
cC1wYXRoLXBvbHlnb24tdmlld3BvcnQtdW5pdHMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9zaGFwZXMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtdmlld3Bv
cnQtdW5pdHMtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9zaGFwZXMvc2hh
cGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtdmlld3BvcnQtdW5pdHMuaHRt
bDogQWRkZWQuCisKIDIwMTQtMDUtMDggIElvbiBSb3NjYSAgPHJvc2NhQGFkb2JlLmNvbT4KIAog
ICAgICAgICBbQ1NTIEJsZW5kaW5nXSBSZW1vdmluZyAtd2Via2l0LSBwcmVmaXhlcyBmb3IgbWl4
LWJsZW5kLW1vZGUgYW5kIGlzb2xhdGlvbiBmcm9tIGxheW91dCB0ZXN0cy4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NzczMvbWFza2luZy9jbGlwLXBhdGgtcG9seWdvbi12aWV3cG9ydC11bml0
cy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9tYXNraW5nL2NsaXAtcGF0aC1wb2x5
Z29uLXZpZXdwb3J0LXVuaXRzLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTgxY2E3M2ZmN2M0
YmI1NTZjNjY0MmNhY2NhZjE0NzQ5NWIyZWY1NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NzczMvbWFza2luZy9jbGlwLXBhdGgtcG9seWdvbi12aWV3cG9ydC11bml0cy1leHBlY3Rl
ZC5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAgIC5j
bGlwIHsKKyAgICAgICAgd2lkdGg6IDIwdnc7CisgICAgICAgIGhlaWdodDogMjB2dzsKKyAgICAg
ICAgYm9yZGVyOiAxMHZ3IHNvbGlkIHdoaXRlOworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBi
bHVlOworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8ZGl2IGNsYXNzPSJjbGlwIj48L2Rp
dj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvbWFza2luZy9jbGlwLXBh
dGgtcG9seWdvbi12aWV3cG9ydC11bml0cy5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9tYXNraW5n
L2NsaXAtcGF0aC1wb2x5Z29uLXZpZXdwb3J0LXVuaXRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWU3Yjk2
MGQxY2RiNGYyNjYzNThlZWJiNjZlNTAyMWM3MDY2ZjJlYQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2NzczMvbWFza2luZy9jbGlwLXBhdGgtcG9seWdvbi12aWV3cG9ydC11bml0cy5o
dG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAgIC5jbGlw
IHsKKyAgICAgICAgd2lkdGg6IDQwdnc7CisgICAgICAgIGhlaWdodDogNDB2dzsKKyAgICAgICAg
YmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgICAgLXdlYmtpdC1jbGlwLXBhdGg6IHBvbHln
b24oMTB2dyAxMHZ3LCAzMHZ3IDEwdncsIDMwdncgMzB2dywgMTB2dyAzMHZ3KTsKKyAgICB9Cis8
L3N0eWxlPgorPGJvZHk+CisgICAgPGRpdiBjbGFzcz0iY2xpcCI+PC9kaXY+Cis8L2JvZHk+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NoYXBlcy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9z
aGFwZS1vdXRzaWRlLWZsb2F0cy12aWV3cG9ydC11bml0cy1leHBlY3RlZC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9h
dHMtdmlld3BvcnQtdW5pdHMtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZDc2MzBlOTczMDE5
ZWYzNmVmNzFkNjlkNzMxNTViZGFkMzQ5NGYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zaGFwZXMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMt
dmlld3BvcnQtdW5pdHMtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDIwIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxzdHlsZT4KKyAgICAuY29udGFpbmVyIHsKKyAgICAgICAgY29sb3I6IGJsYWNrOwor
ICAgICAgICBmb250OiAyMHZ3LzEgQWhlbTsKKyAgICB9CisgICAgLmZsb2F0IHsKKyAgICAgICAg
d2lkdGg6IDIwdnc7CisgICAgICAgIGhlaWdodDogNDB2dzsKKyAgICAgICAgZmxvYXQ6IGxlZnQ7
CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZXk7CisgICAgfQorPC9zdHlsZT4KKzxib2R5
PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImZsb2F0
Ij48L2Rpdj4KKyAgICAgICAgWDxici8+CisgICAgICAgIFgKKyAgICA8L2Rpdj4KKzwvYm9keT4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2hhcGVzL3NoYXBlLW91dHNpZGUtZmxvYXRz
L3NoYXBlLW91dHNpZGUtZmxvYXRzLXZpZXdwb3J0LXVuaXRzLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3NoYXBlcy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy12aWV3
cG9ydC11bml0cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5MjRmNTEyYmE2NWU4M2JjZWFiYmMyNzBkN2Fi
MTUxNTk4MGI0MjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYXBlcy9z
aGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy12aWV3cG9ydC11bml0cy5o
dG1sCkBAIC0wLDAgKzEsMjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAgIC5jb250
YWluZXIgeworICAgICAgICBjb2xvcjogYmxhY2s7CisgICAgICAgIGZvbnQ6IDIwdncvMSBBaGVt
OworICAgIH0KKyAgICAuZmxvYXQgeworICAgICAgICB3aWR0aDogNDB2dzsKKyAgICAgICAgaGVp
Z2h0OiA0MHZ3OworICAgICAgICBmbG9hdDogbGVmdDsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xv
cjogZ3JleTsKKyAgICAgICAgLXdlYmtpdC1zaGFwZS1vdXRzaWRlOiBpbnNldCgwdncgMjR2dyAw
dncgMHZ3KTsKKyAgICAgICAgLXdlYmtpdC1zaGFwZS1tYXJnaW46IDR2dzsKKyAgICB9Cis8L3N0
eWxlPgorPGJvZHk+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBj
bGFzcz0iZmxvYXQiPjwvZGl2PgorICAgICAgICBYPGJyLz4KKyAgICAgICAgWAorICAgIDwvZGl2
PgorPC9ib2R5Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>