<?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>81472</bug_id>
          
          <creation_ts>2012-03-18 05:20:31 -0700</creation_ts>
          <short_desc>New renderer for SVGLineElement</short_desc>
          <delta_ts>2014-05-13 22:42:04 -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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>65236</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Renata Hodovan">rhodovan.u-szeged</reporter>
          <assigned_to name="Renata Hodovan">rhodovan.u-szeged</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>krit</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>581453</commentid>
    <comment_count>0</comment_count>
    <who name="Renata Hodovan">rhodovan.u-szeged</who>
    <bug_when>2012-03-18 05:20:31 -0700</bug_when>
    <thetext>New renderer for SVGLineElement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581661</commentid>
    <comment_count>1</comment_count>
      <attachid>132549</attachid>
    <who name="Renata Hodovan">rhodovan.u-szeged</who>
    <bug_when>2012-03-19 00:08:19 -0700</bug_when>
    <thetext>Created attachment 132549
Draft patch

This is a draft patch with a few ambiguous points.
In this approach I use GraphicsContext:drawLine() method for displaying the lines. It&apos;s implemented on all platforms but I have a problem with them: anitaliasing is setted by the member antiAliasingForRectsAndLines what is default false. So the lines will be coarse. What should I do with this?

The second thing is RenderSVGLine::shapeDependentStrokeContains(). I have a solution for this but it&apos;s never called because lines are considered as styled elements and RenderSVGShape::strokeContains() will use the ancestor&apos;s function. Any idea?

The last thing: what is the difference between filling and stroking lines? There has any point having a line w/o stroke? (lines with 0 stroke aren&apos;t visible) I guess they are the same so in this first patch I do the same both in fillShape() and strokeShape(). (Hmm... or perhaps I should omit this function because I defined an early return for lines with zero stroke-width at creating so it shouldn&apos;t be called neither.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582894</commentid>
    <comment_count>2</comment_count>
      <attachid>132549</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-20 03:16:12 -0700</bug_when>
    <thetext>Comment on attachment 132549
Draft patch

Attachment 132549 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12009093

New failing tests:
svg/W3C-SVG-1.1/animate-elem-17-t.svg
svg/W3C-SVG-1.1/animate-elem-14-t.svg
fast/backgrounds/animated-svg-as-mask.html
svg/W3C-SVG-1.1/animate-elem-25-t.svg
svg/W3C-SVG-1.1/animate-elem-32-t.svg
svg/W3C-SVG-1.1/animate-elem-37-t.svg
svg/W3C-SVG-1.1/animate-elem-19-t.svg
http/tests/inspector/inspect-element.html
svg/W3C-SVG-1.1/animate-elem-12-t.svg
svg/as-background-image/animated-svg-as-background.html
accessibility/aria-disabled.html
svg/W3C-SVG-1.1/animate-elem-09-t.svg
fast/loader/text-document-wrapping.html
svg/W3C-SVG-1.1/animate-elem-02-t.svg
svg/W3C-SVG-1.1/animate-elem-16-t.svg
svg/W3C-SVG-1.1/animate-elem-15-t.svg
svg/W3C-SVG-1.1/animate-elem-30-t.svg
svg/W3C-SVG-1.1/animate-elem-27-t.svg
svg/W3C-SVG-1.1/animate-elem-18-t.svg
svg/as-image/animated-svg-as-image-same-image.html
svg/as-image/animated-svg-as-image-no-fixed-intrinsic-size.html
http/tests/xmlhttprequest/xmlhttprequest-unsafe-redirect.html
http/tests/inspector/compiler-source-mapping.html
svg/W3C-SVG-1.1/animate-elem-11-t.svg
svg/W3C-SVG-1.1-SE/pservers-grad-17-b.svg
svg/W3C-SVG-1.1/animate-elem-13-t.svg
svg/W3C-SVG-1.1/animate-elem-10-t.svg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638161</commentid>
    <comment_count>3</comment_count>
    <who name="Renata Hodovan">rhodovan.u-szeged</who>
    <bug_when>2012-05-31 02:51:38 -0700</bug_when>
    <thetext>Although this is just a draft patch, any comments would really be useful :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009189</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2014-05-13 22:42:04 -0700</bug_when>
    <thetext>See master bug. No more diversity at this point.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132549</attachid>
            <date>2012-03-19 00:08:19 -0700</date>
            <delta_ts>2012-04-13 07:37:07 -0700</delta_ts>
            <desc>Draft patch</desc>
            <filename>0001-rendersvgline_2.patch</filename>
            <type>text/plain</type>
            <size>22847</size>
            <attacher name="Renata Hodovan">rhodovan.u-szeged</attacher>
            
              <data encoding="base64">RnJvbSA5ZWYzNjFhMTQ5YjEzYzZhNmIzZjU4NWVlOWExODRjMzI5ZmI2ZDRiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSZW5hdGEgSG9kb3ZhbiA8cmVuaUB3ZWJraXQub3JnPgpEYXRl
OiBTdW4sIDE4IE1hciAyMDEyIDIyOjQyOjE2ICswMTAwClN1YmplY3Q6IFtQQVRDSF0gcmVuZGVy
c3ZnbGluZV8yCgotLS0KIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0ICAgICAgICAgICAg
ICAgICAgICAgIHwgICAgMSArCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgNDIgKysrKysKIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0gICAgICAgICAgICAgICAgIHwgICAgMiArCiBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qICAgICAgIHwgICA1NiArKysrKysrCiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggICAgICAgICAgICB8ICAgIDEgKwogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdBbGxJbk9uZS5jcHAgfCAgICAxICsK
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTGluZS5jcHAgICAgIHwgIDE2
OCArKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdMaW5lLmggICAgICAgfCAgIDY1ICsrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNwcCAgICB8ICAgIDIgLQogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xpbmVFbGVtZW50LmNwcCAgICAgICAgICAgICAgfCAgICA2ICsKIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMaW5lRWxlbWVudC5oICAgICAgICAgICAgICAgIHwgICAgMiArCiAxNCBmaWxlcyBj
aGFuZ2VkLCAzNjYgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0xpbmUuY3BwCiBjcmVh
dGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdMaW5l
LmgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGY4ZDVkYjYuLjk5OGEzYWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CkBAIC0xNzA0LDYgKzE3MDQsNyBAQCBJRiAoRU5BQkxFX1NWRykKICAgICAgICAg
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHAKICAgICAgICAgcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdJbmxpbmUuY3BwCiAgICAgICAgIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5l
VGV4dC5jcHAKKyAgICAgICAgcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdMaW5lLmNwcAogICAgICAg
ICByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcAogICAgICAgICByZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1BhdGguY3BwCiAgICAgICAgIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
UmVjdC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzYjY1NjE5Li42MTE1MGMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNDUgQEAKKzIwMTItMDMtMTggIFJlbmF0YSBIb2RvdmFuICA8cmVuaUB3ZWJraXQub3Jn
PgorCisgICAgICAgIE5ldyByZW5kZXJlciBmb3IgU1ZHTGluZUVsZW1lbnQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxNDcyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIC0gbm8gY2hh
bmdlIGluIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAg
ICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAg
ICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck9iamVjdDo6aXNTVkdMaW5lKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR0FsbEluT25lLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0xpbmUu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U1ZHTGluZTo6UmVuZGVyU1ZHTGluZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdMaW5l
Ojp+UmVuZGVyU1ZHTGluZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdMaW5lOjpjcmVh
dGVTaGFwZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdMaW5lOjpvYmplY3RCb3VuZGlu
Z0JveCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdMaW5lOjpzdHJva2VCb3VuZGluZ0Jv
eCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdMaW5lOjpmaWxsU2hhcGUpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU1ZHTGluZTo6c3Ryb2tlU2hhcGUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyU1ZHTGluZTo6c2hhcGVEZXBlbmRlbnRTdHJva2VDb250YWlucyk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTVkdMaW5lOjpzaGFwZURlcGVuZGVudEZpbGxDb250YWlucyk6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdMaW5lLmg6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChSZW5kZXJTVkdMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclNWR0xpbmU6OmlzU1ZHTGluZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdMaW5l
OjpyZW5kZXJOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0xpbmU6OmlzRW1wdHkp
OgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU1ZHU2hhcGU6OmZpbGxBbmRTdHJva2VQYXRoKToKKyAgICAgICAgKiBz
dmcvU1ZHTGluZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGluZUVsZW1lbnQ6
OmNyZWF0ZVJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHN2Zy9TVkdM
aW5lRWxlbWVudC5oOgorICAgICAgICAoU1ZHTGluZUVsZW1lbnQpOgorCiAyMDEyLTAzLTE0ICBT
dWRhcnNhbmEgTmFnaW5lbmkgIDxzdWRhcnNhbmEubmFnaW5lbmlAbGludXguaW50ZWwuY29tPgog
CiAgICAgICAgIEJ1aWxkIGVycm9yOiBETlNTb3VwLmNwcDozMDogZmF0YWwgZXJyb3I6IENTdHJp
bmcuaDogTm8gc3VjaCBmaWxlIG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA0
YjFlOGI3Li5hMjkzNjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTM4Nzks
NiArMzg3OSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmggXAorICAgICAgICBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR0xpbmUuY3BwIFwKKyAgICAgICAgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdMaW5lLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR01vZGVsT2JqZWN0LmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUGF0aC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggYzA0MjVhNS4uNzIyMmFmMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9U
YXJnZXQucHJpCkBAIC0yNDg2LDYgKzI0ODYsNyBAQCBIRUFERVJTICs9IFwKICAgICByZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR0ltYWdlLmggXAogICAgIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5s
aW5lLmggXAogICAgIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5oIFwKKyAgICBy
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0xpbmUuaCBcCiAgICAgcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdNb2RlbE9iamVjdC5oIFwKICAgICByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1BhdGguaCBcCiAg
ICAgcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZWN0LmggXApAQCAtMzQwNCw2ICszNDA1LDcgQEAg
Y29udGFpbnMoREVGSU5FUywgRU5BQkxFX1NWRz0xKSB7CiAgICAgICAgIHJlbmRlcmluZy9zdHls
ZS9TVkdSZW5kZXJTdHlsZS5jcHAgXAogICAgICAgICByZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVy
U3R5bGVEZWZzLmNwcCBcCiAgICAgICAgIHJlbmRlcmluZy9Qb2ludGVyRXZlbnRzSGl0UnVsZXMu
Y3BwIFwKKyAgICAgICAgcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdMaW5lLmNwcCBcCiAgICAgICAg
IHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUGF0aC5jcHAgXAogICAgICAgICByZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1JlY3QuY3BwIFwKICAgICAgICAgcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFw
ZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDU3MTJmZDQuLjJhYzRhMWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKQEAgLTU2ODIsNiArNTY4Miw4IEBACiAgICAgICAgICAgICAncmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdJbmxpbmUuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJ
bmxpbmVUZXh0LmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxp
bmVUZXh0LmgnLAorICAgICAgICAgICAgJ3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTGluZS5jcHAn
LAorICAgICAgICAgICAgJ3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTGluZS5oJywKICAgICAgICAg
ICAgICdyZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcCcsCiAgICAgICAgICAg
ICAncmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oJywKICAgICAgICAgICAgICdy
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1BhdGguY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggMzRjNWIwMC4uYzY2N2M3MSAxMDA3NTUKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTQ1MDY2LDYgKzQ1
MDY2LDYyIEBACiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN2Z1xSZW5kZXJTVkdJ
bmxpbmVUZXh0LmgiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxGaWxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3ZnXFJlbmRlclNWR0xpbmUuY3BwIgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWU9IkRlYnVnfFdpbjMyIgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VG9v
bAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTmFtZT0iUmVsZWFzZXxXaW4zMiIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvb2wKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9G
aWxlQ29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8RmlsZUNvbmZpZ3VyYXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIE5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvb2wKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PC9GaWxlQ29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8RmlsZUNvbmZpZ3VyYXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIE5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VG9v
bAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VG9vbAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
L0ZpbGVDb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxGaWxlQ29uZmlndXJhdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvb2wKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWxl
Q29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWxlPgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RmlsZQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN2Z1xSZW5k
ZXJTVkdMaW5lLmgiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZpbGU+CiAJCQkJPEZpbGUKIAkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3ZnXFJlbmRlclNWR1BhdGguY3BwIgogCQkJCQk+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggNjBlMmE0MC4uMjcy
N2Y2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtMzg4LDYg
KzM4OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNTVkdWaWV3cG9ydENvbnRhaW5l
cigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzU1ZHR3JhZGll
bnRTdG9wKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNTVkdI
aWRkZW5Db250YWluZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9v
bCBpc1NWR0xpbmUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBp
c1NWR1BhdGgoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NW
R1JlY3QoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NWR1No
YXBlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdBbGxJbk9uZS5jcHAKaW5kZXggOGY4Yzg2ZS4uOWQ0YWFkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdBbGxJbk9u
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdBbGxJbk9u
ZS5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJSZW5kZXJTVkdJbWFnZS5jcHAiCiAj
aW5jbHVkZSAiUmVuZGVyU1ZHSW5saW5lLmNwcCIKICNpbmNsdWRlICJSZW5kZXJTVkdJbmxpbmVU
ZXh0LmNwcCIKKyNpbmNsdWRlICJSZW5kZXJTVkdMaW5lLmNwcCIKICNpbmNsdWRlICJSZW5kZXJT
VkdNb2RlbE9iamVjdC5jcHAiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHUGF0aC5jcHAiCiAjaW5jbHVk
ZSAiUmVuZGVyU1ZHUmVjdC5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR0xpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdMaW5lLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YmRk
YzYzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdMaW5lLmNwcApAQCAtMCwwICsxLDE2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBVbml2ZXJzaXR5IG9mIFN6ZWdlZAorICogQ29weXJpZ2h0IChDKSAyMDEyIFJlbmF0YSBIb2Rv
dmFuIDxyZW5pQHdlYmtpdC5vcmc+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVU5JVkVSU0lUWSBPRiBTWkVHRUQg
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBVTklWRVJTSVRZIE9GIFNaRUdFRCBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShTVkcpCisjaW5jbHVkZSAiUmVuZGVyU1ZH
TGluZS5oIgorCisjaW5jbHVkZSAiU1ZHTGluZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJTVkdOYW1l
cy5oIgorI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1JlbmRlclNWR0xpbmU6OlJlbmRlclNWR0xpbmUoU1ZHTGluZUVsZW1lbnQqIG5vZGUpCisgICAg
OiBSZW5kZXJTVkdTaGFwZShub2RlKQoreworfQorCitSZW5kZXJTVkdMaW5lOjp+UmVuZGVyU1ZH
TGluZSgpCit7Cit9CisKK3ZvaWQgUmVuZGVyU1ZHTGluZTo6Y3JlYXRlU2hhcGUoKQoreworICAg
IC8vIEJlZm9yZSBjcmVhdGluZyBhIG5ldyBvYmplY3Qgd2UgbmVlZCB0byBjbGVhciB0aGUgY2Fj
aGVkIGJvdW5kaW5nIGJveAorICAgIC8vIHRvIGF2b2lkIHVzaW5nIGdhcmJhZ2UuCisgICAgbV9i
b3VuZGluZ0JveCA9IEZsb2F0UmVjdCgpOworICAgIG1fb3V0ZXJTdHJva2VSZWN0ID0gRmxvYXRS
ZWN0KCk7CisgICAgU1ZHTGluZUVsZW1lbnQqIGxpbmUgPSBzdGF0aWNfY2FzdDxTVkdMaW5lRWxl
bWVudCo+KG5vZGUoKSk7CisgICAgQVNTRVJUKGxpbmUpOworCisgICAgYm9vbCBub25TY2FsaW5n
U3Ryb2tlID0gc3R5bGUoKS0+c3ZnU3R5bGUoKS0+dmVjdG9yRWZmZWN0KCkgPT0gVkVfTk9OX1ND
QUxJTkdfU1RST0tFOworICAgIC8vIEZhbGxiYWNrIHRvIFJlbmRlclNWR1NoYXBlIGlmIG5vblNj
YWxpbmdTdHJva2UgaXMgdHJ1ZS4KKyAgICBpZiAobm9uU2NhbGluZ1N0cm9rZSkgeworICAgICAg
IFJlbmRlclNWR1NoYXBlOjpjcmVhdGVTaGFwZSgpOworICAgICAgIHNldElzUGFpbnRpbmdGYWxs
YmFjayh0cnVlKTsKKyAgICAgICByZXR1cm47CisgICAgfQorCisgICAgU1ZHTGVuZ3RoQ29udGV4
dCBsZW5ndGhDb250ZXh0KGxpbmUpOworICAgIG1fcG9pbnQxID0gRmxvYXRQb2ludChsaW5lLT54
MSgpLnZhbHVlKGxlbmd0aENvbnRleHQpLCBsaW5lLT55MSgpLnZhbHVlKGxlbmd0aENvbnRleHQp
KTsKKyAgICBtX3BvaW50MiA9IEZsb2F0UG9pbnQobGluZS0+eDIoKS52YWx1ZShsZW5ndGhDb250
ZXh0KSwgbGluZS0+eTIoKS52YWx1ZShsZW5ndGhDb250ZXh0KSk7CisgICAgRmxvYXRTaXplIGJv
dW5kaW5nQm94U2l6ZShhYnMobV9wb2ludDEueCgpIC0gbV9wb2ludDIueCgpKSwgYWJzKG1fcG9p
bnQxLnkoKSAtIG1fcG9pbnQyLnkoKSkpOworICAgIGlmICgoIWJvdW5kaW5nQm94U2l6ZS53aWR0
aCgpICYmICFib3VuZGluZ0JveFNpemUuaGVpZ2h0KCkpCisgICAgICAgIHx8ICFzdHlsZSgpLT5z
dmdTdHlsZSgpLT5oYXNTdHJva2UoKSB8fCAhdGhpcy0+c3Ryb2tlV2lkdGgoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9ib3VuZGluZ0JveCA9IEZsb2F0UmVjdChGbG9hdFBvaW50KG1fcG9p
bnQxLngoKSA8IG1fcG9pbnQyLngoKSA/IG1fcG9pbnQxLngoKSA6IG1fcG9pbnQyLngoKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wb2ludDEueSgpIDwgbV9w
b2ludDIueSgpID8gbV9wb2ludDEueSgpIDogbV9wb2ludDIueSgpKSwgYm91bmRpbmdCb3hTaXpl
KTsKKworICAgIC8vIElmIHRoZSBsaW5lIGlzIHZlcnRpY2FsIG9yIGhvcml6b250YWwgd2Ugc2hv
dWxkIGp1c3QgaW5mbGF0ZSB3aXRoIHRoZSBoYWxmIG9mIHRoZSBzdHJva2UuCisgICAgLy8gT3Ro
ZXJ3aXNlIHdlIHNob3VsZCBjYWxjdWxhdGUgdGhlIHBhZGRpbmcuCisgICAgbV9vdXRlclN0cm9r
ZVJlY3QgPSBtX2JvdW5kaW5nQm94OworICAgIGlmICghYm91bmRpbmdCb3hTaXplLndpZHRoKCkp
CisgICAgICAgIG1fb3V0ZXJTdHJva2VSZWN0LmluZmxhdGVYKHRoaXMtPnN0cm9rZVdpZHRoKCkg
LyAyKTsKKyAgICBlbHNlIGlmICghYm91bmRpbmdCb3hTaXplLmhlaWdodCgpKQorICAgICAgICBt
X291dGVyU3Ryb2tlUmVjdC5pbmZsYXRlWSh0aGlzLT5zdHJva2VXaWR0aCgpIC8gMik7CisgICAg
Ly8gV2Ugb2Zmc2V0IG9uZSBvZiB0aGUgbGluZSBlbmRwb2ludHMgd2l0aCBzdHJva2UvMiBhdCBy
aWdodCBhbmdsZXMuIFRoZW4gd2UgaW5mbGF0ZSBtX2JvdW5kaW5nQm94IGluIGJvdGggZGlyZWN0
aW9uIHdpdGgKKyAgICAvLyB0aGUgZGlzdGFuY2Ugb2YgbV9wb2ludDEgYW5kIHRoZSBvZmZzZXRl
ZCBuZXcgcG9pbnQuCisgICAgZWxzZSB7CisgICAgICAgIGRvdWJsZSBsZW5ndGggPSBzcXJ0KGJv
dW5kaW5nQm94U2l6ZS53aWR0aCgpICogYm91bmRpbmdCb3hTaXplLndpZHRoKCkgKyBib3VuZGlu
Z0JveFNpemUuaGVpZ2h0KCkgKiBib3VuZGluZ0JveFNpemUuaGVpZ2h0KCkpOworICAgICAgICBk
b3VibGUgZHggPSBib3VuZGluZ0JveFNpemUud2lkdGgoKSAvIGxlbmd0aDsKKyAgICAgICAgZG91
YmxlIGR5ID0gYm91bmRpbmdCb3hTaXplLmhlaWdodCgpIC8gbGVuZ3RoOworICAgICAgICBtX291
dGVyU3Ryb2tlUmVjdC5pbmZsYXRlWCh0aGlzLT5zdHJva2VXaWR0aCgpIC8gMiAqIGR5KTsKKyAg
ICAgICAgbV9vdXRlclN0cm9rZVJlY3QuaW5mbGF0ZVkodGhpcy0+c3Ryb2tlV2lkdGgoKSAvIDIg
KiBkeCk7CisgICAgfQorfQorCitGbG9hdFJlY3QgUmVuZGVyU1ZHTGluZTo6b2JqZWN0Qm91bmRp
bmdCb3goKSBjb25zdAoreworICAgIGlmIChpc1BhaW50aW5nRmFsbGJhY2soKSkKKyAgICAgICAg
cmV0dXJuIFJlbmRlclNWR1NoYXBlOjpvYmplY3RCb3VuZGluZ0JveCgpOworICAgIHJldHVybiBt
X2JvdW5kaW5nQm94OworfQorCitGbG9hdFJlY3QgUmVuZGVyU1ZHTGluZTo6c3Ryb2tlQm91bmRp
bmdCb3goKSBjb25zdAoreworICAgIGlmIChpc1BhaW50aW5nRmFsbGJhY2soKSkKKyAgICAgICAg
cmV0dXJuIFJlbmRlclNWR1NoYXBlOjpzdHJva2VCb3VuZGluZ0JveCgpOworICAgIHJldHVybiBt
X291dGVyU3Ryb2tlUmVjdDsKK30KKwordm9pZCBSZW5kZXJTVkdMaW5lOjpmaWxsU2hhcGUoR3Jh
cGhpY3NDb250ZXh0KiBjb250ZXh0KSBjb25zdAoreworICAgIGlmICghaXNQYWludGluZ0ZhbGxi
YWNrKCkpIHsKKyAgICAgICAgc3Ryb2tlU2hhcGUoY29udGV4dCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisgICAgUmVuZGVyU1ZHU2hhcGU6OmZpbGxTaGFwZShjb250ZXh0KTsKK30KKwordm9p
ZCBSZW5kZXJTVkdMaW5lOjpzdHJva2VTaGFwZShHcmFwaGljc0NvbnRleHQqIGNvbnRleHQpIGNv
bnN0Cit7CisgICAgaWYgKCFpc1BhaW50aW5nRmFsbGJhY2soKSkgeworICAgICAgICBjb250ZXh0
LT5kcmF3TGluZShJbnRQb2ludCgoaW50KShtX3BvaW50MS54KCkpLCAoaW50KShtX3BvaW50MS55
KCkpKSwgSW50UG9pbnQoKGludCkobV9wb2ludDIueCgpKSwgKGludCkobV9wb2ludDIueSgpKSkp
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIFJlbmRlclNWR1NoYXBlOjpzdHJva2VTaGFw
ZShjb250ZXh0KTsKK30KKworYm9vbCBSZW5kZXJTVkdMaW5lOjpzaGFwZURlcGVuZGVudFN0cm9r
ZUNvbnRhaW5zKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50KSBjb25zdAoreworICAgIC8vIENvbnNp
ZGVyaW5nIHRoZSBsaW5lIGFzIGEgcm90YXRlZCByZWN0YW5nbGUgd2hvc2UgY2VudHJhbCBsaW5l
IGlzIG91ciBsaW5lLiBJdHMgd2lkdGggaXMKKyAgICAvLyB0aGUgbGVuZ3RoIG9mIHRoZSBsaW5l
IGFuZCBpdHMgaGVpZ2h0IGlzIHRoZSB3aWR0aCBvZiB0aGUgc3Ryb2tlLiBUaGlzIGZ1bmN0aW9u
IGRlY2lkZXMKKyAgICAvLyB3aGV0aGVyIHRoZSBwb2ludCBpcyBpbnNpZGUgdGhlIHJlY3Qgb3Ig
bm90LgorICAgIGRvdWJsZSB3aWR0aCwgaGVpZ2h0LCBhbHBoYTsKKyAgICBkb3VibGUgcG9pbnRY
ID0gcG9pbnQueCgpOworICAgIGRvdWJsZSBwb2ludFkgPSBwb2ludC55KCk7CisKKyAgICB3aWR0
aCA9IHNxcnQocG93KG1fcG9pbnQxLngoKSAtIG1fcG9pbnQyLngoKSwgMikgKyBwb3cobV9wb2lu
dDEueSgpIC0gbV9wb2ludDIueSgpLCAyKSk7CisgICAgaGVpZ2h0ID0gdGhpcy0+c3Ryb2tlV2lk
dGgoKTsKKyAgICBhbHBoYSA9IGF0YW4yKGhlaWdodCwgd2lkdGgpOworCisgICAgLy8gVG8gY2hl
Y2sgdGhlIGNvbnRhaW5pbmcgd2UgbmVlZCB0byByb3RhdGUgYm90aCB0aGUgcmVjdGFuZ2xlIGFu
ZCB0aGUgcG9pbnQgd2l0aCBhbHBoYS4KKyAgICAvLyBTbyB0aGUgcmVjdGFuZ2xlIHdpbGwgYmUg
cGxhY2VkIGhvcml6b250YWxseSBhbmQgd2UgZWFzaWx5IGNhbiBkZWNpZGUgdGhlIGNvbnRhaW5p
bmcuCisgICAgLy8gRm9yIHRoZSByb3RhdGlvbiB3ZSBuZWVkIHRvIG9mZnNldCB0aGUgcG9pbnQg
d2l0aCAobV9wb2ludDEueCgpLCBtX3BvaW50MS55KCkpLgorICAgIC8vIFNvIHRoZSByb3RhdGlv
biB3aWxsIGJlIHBlcmZvcm1lZCBhcm91bmQgdGhlIG9yaWdpbi4gRmluYWxseSB3ZQorICAgIC8v
IG1vdmUgYmFjayB0aGUgb2J0YWluZWQgcG9pbnQuCisgICAgcG9pbnRYIC09IG1fcG9pbnQxLngo
KTsKKyAgICBwb2ludFkgLT0gbV9wb2ludDEueSgpOworCisgICAgRmxvYXRQb2ludCBuZXdQb2lu
dChwb2ludFggKiBjb3MoYWxwaGEpIC0gcG9pbnRZICogc2luKGFscGhhKSwgcG9pbnRYICogc2lu
KGFscGhhKSArIHBvaW50WSAqIGNvcyhhbHBoYSkpOworCisgICAgcG9pbnRYID0gbmV3UG9pbnQu
eCgpICsgbV9wb2ludDEueCgpOworICAgIHBvaW50WSA9IG5ld1BvaW50LnkoKSArIG1fcG9pbnQx
LnkoKTsKKworICAgIC8vIENoZWNraW5nIHRoYXQgdGhlIHJvdGF0ZWQgcG9pbnQgaXMgaXQgaW4g
dGhlIGhvcml6b250YWwgcmVjdGFuZ2xlLgorICAgIGlmIChwb2ludFggPj0gbV9wb2ludDEueCgp
ICYmIHBvaW50WCA8PSBtX3BvaW50Mi54KCkKKyAgICAgICAgJiYgcG9pbnRZID4gKG1fcG9pbnQx
LnkoKSAtIHRoaXMtPnN0cm9rZVdpZHRoKCkgLyAyKSAmJiBwb2ludFkgPCAobV9wb2ludDEueSgp
ICsgdGhpcy0+c3Ryb2tlV2lkdGgoKSAvIDIpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUmVuZGVyU1ZHTGluZTo6c2hhcGVEZXBlbmRlbnRGaWxs
Q29udGFpbnMoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIGNvbnN0IFdpbmRSdWxlIGZpbGxSdWxl
KSBjb25zdAoreworICAgIGlmIChpc1BhaW50aW5nRmFsbGJhY2soKSkKKyAgICAgICAgcmV0dXJu
IFJlbmRlclNWR1NoYXBlOjpzaGFwZURlcGVuZGVudEZpbGxDb250YWlucyhwb2ludCwgZmlsbFJ1
bGUpOworICAgIHJldHVybiBzaGFwZURlcGVuZGVudFN0cm9rZUNvbnRhaW5zKHBvaW50KTsKK30K
KworfQorCisjZW5kaWYgLy8gRU5BQkxFKFNWRykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTGluZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdMaW5lLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NWYwZGU1YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHTGluZS5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgVW5pdmVyc2l0eSBvZiBTemVnZWQKKyAqIENvcHlyaWdodCAoQykgMjAxMiBSZW5hdGEgSG9k
b3ZhbiA8cmVuaUB3ZWJraXQub3JnPgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFVOSVZFUlNJVFkgT0YgU1pFR0VE
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVU5JVkVSU0lUWSBPRiBTWkVHRUQg
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIFJlbmRlclNWR0xpbmVfaAorI2RlZmluZSBSZW5kZXJTVkdMaW5lX2gKKworI2lmIEVO
QUJMRShTVkcpCisjaW5jbHVkZSAiUmVuZGVyU1ZHUGF0aC5oIgorI2luY2x1ZGUgIlNWR0xpbmVF
bGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUmVuZGVyU1ZHTGluZSA6
IHB1YmxpYyBSZW5kZXJTVkdTaGFwZSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUmVuZGVyU1ZH
TGluZShTVkdMaW5lRWxlbWVudCopOworICAgIHZpcnR1YWwgflJlbmRlclNWR0xpbmUoKTsKKwor
cHJpdmF0ZToKKyAgICB2aXJ0dWFsIGJvb2wgaXNTVkdMaW5lKCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQorICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJu
ICJSZW5kZXJTVkdMaW5lIjsgfQorCisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVNoYXBlKCk7Cisg
ICAgdmlydHVhbCBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBoYXNQYXRoKCkgPyBSZW5k
ZXJTVkdTaGFwZTo6aXNFbXB0eSgpIDogKCFtX2JvdW5kaW5nQm94LndpZHRoKCkgJiYgIW1fYm91
bmRpbmdCb3guaGVpZ2h0KCkpOyB9OworICAgIHZpcnR1YWwgdm9pZCBmaWxsU2hhcGUoR3JhcGhp
Y3NDb250ZXh0KikgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHN0cm9rZVNoYXBlKEdyYXBoaWNz
Q29udGV4dCopIGNvbnN0OworICAgIHZpcnR1YWwgRmxvYXRSZWN0IG9iamVjdEJvdW5kaW5nQm94
KCkgY29uc3Q7CisgICAgdmlydHVhbCBGbG9hdFJlY3Qgc3Ryb2tlQm91bmRpbmdCb3goKSBjb25z
dDsKKyAgICB2aXJ0dWFsIGJvb2wgc2hhcGVEZXBlbmRlbnRTdHJva2VDb250YWlucyhjb25zdCBG
bG9hdFBvaW50JikgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHNoYXBlRGVwZW5kZW50RmlsbENv
bnRhaW5zKGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBXaW5kUnVsZSkgY29uc3Q7CisKK3ByaXZh
dGU6CisgICAgRmxvYXRSZWN0IG1fYm91bmRpbmdCb3g7CisgICAgRmxvYXRSZWN0IG1fb3V0ZXJT
dHJva2VSZWN0OworICAgIEZsb2F0UG9pbnQgbV9wb2ludDE7CisgICAgRmxvYXRQb2ludCBtX3Bv
aW50MjsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShTVkcpCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKaW5kZXggYzQzOGQz
MC4uODBjYjAxZiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdTaGFwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdTaGFwZS5jcHAKQEAgLTMwNiw3ICszMDYsNiBAQCB2b2lkIFJlbmRlclNWR1NoYXBlOjpmaWxs
QW5kU3Ryb2tlUGF0aChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQpCiAgICAgICAgIGlmICghc2V0
dXBOb25TY2FsaW5nU3Ryb2tlVHJhbnNmb3JtKG5vblNjYWxpbmdTdHJva2VUcmFuc2Zvcm0sIHN0
YXRlU2F2ZXIpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KLQogICAgIHN0cm9rZVBhdGgo
c3R5bGUsIGNvbnRleHQsIG1fcGF0aC5nZXQoKSwgc3Ryb2tlUGFpbnRpbmdSZXNvdXJjZSwgZmFs
bGJhY2tDb2xvciwgbm9uU2NhbGluZ1N0cm9rZSwgbm9uU2NhbGluZ1N0cm9rZVRyYW5zZm9ybSwg
QXBwbHlUb1N0cm9rZU1vZGUpOwogCiAgICAgLy8gU3BlYygxMS40KTogQW55IHplcm8gbGVuZ3Ro
IHN1YnBhdGggc2hhbGwgbm90IGJlIHN0cm9rZWQgaWYgdGhlICJzdHJva2UtbGluZWNhcCIgcHJv
cGVydHkgaGFzIGEgdmFsdWUgb2YgYnV0dApAQCAtMzE1LDcgKzMxNCw2IEBAIHZvaWQgUmVuZGVy
U1ZHU2hhcGU6OmZpbGxBbmRTdHJva2VQYXRoKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCkKICAg
ICAgICAgUGF0aCogdXNlUGF0aCA9IHplcm9MZW5ndGhMaW5lY2FwUGF0aChtX3plcm9MZW5ndGhM
aW5lY2FwTG9jYXRpb25zW2ldKTsKICAgICAgICAgc3Ryb2tlUGF0aChzdHlsZSwgY29udGV4dCwg
dXNlUGF0aCwgc3Ryb2tlUGFpbnRpbmdSZXNvdXJjZSwgZmFsbGJhY2tDb2xvciwgbm9uU2NhbGlu
Z1N0cm9rZSwgbm9uU2NhbGluZ1N0cm9rZVRyYW5zZm9ybSwgQXBwbHlUb0ZpbGxNb2RlKTsKICAg
ICB9Ci0KIH0KIAogdm9pZCBSZW5kZXJTVkdTaGFwZTo6cGFpbnQoUGFpbnRJbmZvJiBwYWludElu
Zm8sIGNvbnN0IEludFBvaW50JikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdM
aW5lRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZUVsZW1lbnQuY3BwCmlu
ZGV4IGYwNTcwNTMuLjQ0YmViZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdM
aW5lRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmNw
cApAQCAtMjUsNiArMjUsNyBAQAogCiAjaW5jbHVkZSAiQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAi
RmxvYXRQb2ludC5oIgorI2luY2x1ZGUgIlJlbmRlclNWR0xpbmUuaCIKICNpbmNsdWRlICJSZW5k
ZXJTVkdQYXRoLmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHUmVzb3VyY2UuaCIKICNpbmNsdWRlICJT
VkdFbGVtZW50SW5zdGFuY2UuaCIKQEAgLTE1MCw2ICsxNTEsMTEgQEAgYm9vbCBTVkdMaW5lRWxl
bWVudDo6c2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0CiAgICAgICAgIHx8IHkyKCkuaXNS
ZWxhdGl2ZSgpOwogfQogCitSZW5kZXJPYmplY3QqIFNWR0xpbmVFbGVtZW50OjpjcmVhdGVSZW5k
ZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKikKK3sKKyAgICByZXR1cm4gbmV3
IChhcmVuYSkgUmVuZGVyU1ZHTGluZSh0aGlzKTsKK30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxF
KFNWRykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmgKaW5kZXggZDcwNmY3NS4uNWJiMzQw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmgKQEAgLTUyLDYgKzUyLDggQEAgcHJp
dmF0ZToKIAogICAgIHZpcnR1YWwgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3Q7
CiAKKyAgICBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVy
U3R5bGUqKTsKKwogICAgIEJFR0lOX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUyhTVkdMaW5l
RWxlbWVudCkKICAgICAgICAgREVDTEFSRV9BTklNQVRFRF9MRU5HVEgoWDEsIHgxKQogICAgICAg
ICBERUNMQVJFX0FOSU1BVEVEX0xFTkdUSChZMSwgeTEpCi0tIAoxLjcuNS40Cgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>