<?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>163235</bug_id>
          
          <creation_ts>2016-10-10 12:52:38 -0700</creation_ts>
          <short_desc>[Win][Direct2D] Implement dashed and dotted border line drawing</short_desc>
          <delta_ts>2016-10-10 14:12:55 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>Windows 10</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>161817</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>pvollan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1238465</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-10-10 12:52:38 -0700</bug_when>
    <thetext>The initial D2D implementation did not support setting dash or dotted border styles. This patch honors the presence of these drawing directions.

This patch improves support for a number of tests in the &quot;fast/borders&quot; directory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238467</commentid>
    <comment_count>1</comment_count>
      <attachid>291146</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-10-10 12:58:00 -0700</bug_when>
    <thetext>Created attachment 291146
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238514</commentid>
    <comment_count>2</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-10-10 14:02:22 -0700</bug_when>
    <thetext>Committed r207020: &lt;http://trac.webkit.org/changeset/207020&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291146</attachid>
            <date>2016-10-10 12:58:00 -0700</date>
            <delta_ts>2016-10-10 13:32:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163235-20161010125439.patch</filename>
            <type>text/plain</type>
            <size>16439</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNzAxMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBACisyMDE2LTEwLTEwICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFtXaW5dW0RpcmVjdDJEXSBJ
bXBsZW1lbnQgZGFzaGVkIGFuZCBkb3R0ZWQgYm9yZGVyIGxpbmUgZHJhd2luZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzMjM1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGlu
ZyBmYXN0L2JvcmRlciB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dC5jcHA6IFVzZSBjdXN0b20gJ3NldFBsYXRmb3JtU3Ryb2tlU3R5bGUnIGZvciBE
MkQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQYXRoOjpsZW5ndGgpOiBEb24ndCB1c2UgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBmb3Ig
RGlyZWN0MkQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4
dERpcmVjdDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dFBsYXRmb3Jt
UHJpdmF0ZTo6YnJ1c2hXaXRoQ29sb3IpOiBJbml0aWFsaXplIHBvaW50ZXIgdG8gbnVsbHB0ci4K
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd1JlY3QpOiBVc2UgcHJvcGVy
IHN0cm9rZSBzdHlsZS4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dFBsYXRmb3Jt
UHJpdmF0ZTo6c2V0TGluZUNhcCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0UGxhdGZvcm1Qcml2YXRlOjpzZXRMaW5lSm9pbik6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlOjpzZXRTdHJva2VTdHlsZSk6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlOjpz
ZXRNaXRlckxpbWl0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRQ
bGF0Zm9ybVByaXZhdGU6OnNldERhc2hPZmZzZXQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZTo6c2V0UGF0dGVybldpZHRoKTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGU6OnNldFBh
dHRlcm5PZmZzZXQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dFBs
YXRmb3JtUHJpdmF0ZTo6c2V0U3Ryb2tlVGhpY2tuZXNzKTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGU6OnNldERhc2hlcyk6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlOjpyZWNvbXB1
dGVTdHJva2VTdHlsZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
UGxhdGZvcm1Qcml2YXRlOjpzdHJva2VTdHlsZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZSk6IFVzZSBwcm9wZXIgc3Ryb2tlIHN0eWxlLgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3RWxsaXBzZSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3UGF0aCk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzdHJva2VQYXRoKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU3Ryb2tlU3R5bGUpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0TWl0ZXJMaW1pdCk6IFRl
bGwgRDJEIGNvbnRleHQgYWJvdXQgbWl0ZXIgbGltaXQuCisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQ6OnNldExpbmVDYXApOiBEaXR0byBmb3IgbGluZSBjYXAuCisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNldExpbmVEYXNoKTogRGl0dG8gZm9yIGRhc2hlcy4K
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0TGluZUpvaW4pOiBEaXR0byBm
b3Igam9pbiBzdHlsZS4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0UGxh
dGZvcm1TdHJva2VUaGlja25lc3MpOiBEaXR0byBmb3Igc3Ryb2tlIHRoaWNrbmVzcy4KKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6cGxhdGZvcm1TdHJva2VFbGxpcHNlKTogVXNl
IHByb3BlciBzdHJva2Ugc3R5bGUuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dy
YXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZURpcmVjdDJELmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL1BhdGhEaXJlY3QyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXRo
OjpjdXJyZW50UG9pbnQpOiBaZXJvLWluaXRpYWxpemUgYSB2YWx1ZS4KKyAgICAgICAgKFdlYkNv
cmU6OlBhdGg6Omxlbmd0aCk6IEFkZGVkLgorCiAyMDE2LTEwLTEwICBXZW5zb24gSHNpZWggIDx3
ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFN1cHBvcnQgSW5wdXRFdmVudC5kYXRh
IGZvciB0aGUgbmV3IElucHV0RXZlbnQgc3BlYwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCShyZXZpc2lvbiAyMDcw
MDMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NjQsNyArOTY0LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OnNldFBsYXRmb3JtVGV4dERyYQogfQogI2VuZGlmCiAKLSNpZiAhVVNFKENBSVJPKQorI2lm
ICFVU0UoQ0FJUk8pICYmICFVU0UoRElSRUNUMkQpCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0
UGxhdGZvcm1TdHJva2VTdHlsZShTdHJva2VTdHlsZSkKIHsKIH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguY3BwCShyZXZpc2lvbiAyMDY5OTkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXRoLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDAsNiArNDAsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyNpZiAhVVNFKERJUkVDVDJE
KQogZmxvYXQgUGF0aDo6bGVuZ3RoKCkgY29uc3QKIHsKICAgICBQYXRoVHJhdmVyc2FsU3RhdGUg
dHJhdmVyc2FsU3RhdGUoUGF0aFRyYXZlcnNhbFN0YXRlOjpBY3Rpb246OlRvdGFsTGVuZ3RoKTsK
QEAgLTUwLDYgKzUxLDcgQEAgZmxvYXQgUGF0aDo6bGVuZ3RoKCkgY29uc3QKIAogICAgIHJldHVy
biB0cmF2ZXJzYWxTdGF0ZS50b3RhbExlbmd0aCgpOwogfQorI2VuZGlmCiAKIFBhdGhUcmF2ZXJz
YWxTdGF0ZSBQYXRoOjp0cmF2ZXJzYWxTdGF0ZUF0TGVuZ3RoKGZsb2F0IGxlbmd0aCwgYm9vbCYg
c3VjY2VzcykgY29uc3QKIHsKQEAgLTExNiw3ICsxMTgsNyBAQCB2b2lkIFBhdGg6OmFkZFJvdW5k
ZWRSZWN0KGNvbnN0IEZsb2F0Um91CiAgICAgfQogCiAgICAgaWYgKHN0cmF0ZWd5ID09IFByZWZl
ck5hdGl2ZVJvdW5kZWRSZWN0KSB7Ci0jaWYgVVNFKENHKQorI2lmIFVTRShDRykgfHwgVVNFKERJ
UkVDVDJEKQogICAgICAgICBwbGF0Zm9ybUFkZFBhdGhGb3JSb3VuZGVkUmVjdChyZWN0LCByYWRp
aS50b3BMZWZ0KCksIHJhZGlpLnRvcFJpZ2h0KCksIHJhZGlpLmJvdHRvbUxlZnQoKSwgcmFkaWku
Ym90dG9tUmlnaHQoKSk7CiAgICAgICAgIHJldHVybjsKICNlbmRpZgpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dERpcmVjdDJELmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhp
Y3NDb250ZXh0RGlyZWN0MkQuY3BwCShyZXZpc2lvbiAyMDcwMDIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0RGlyZWN0MkQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNzQsNyArMjc0LDcgQEAgQ09NUHRyPElEMkQxU29saWRDb2xvckJydXNo
PiBHcmFwaGljc0NvbgogICAgIH0KIAogICAgIGF1dG8gZXhpc3RpbmdCcnVzaCA9IG1fc29saWRD
b2xvcmVkQnJ1c2hDYWNoZS5lbnN1cmUoY29sb3JLZXksIFt0aGlzLCBjb2xvcl0gewotICAgICAg
ICBJRDJEMVNvbGlkQ29sb3JCcnVzaCogY29sb3JCcnVzaDsKKyAgICAgICAgSUQyRDFTb2xpZENv
bG9yQnJ1c2gqIGNvbG9yQnJ1c2ggPSBudWxscHRyOwogICAgICAgICBtX3JlbmRlclRhcmdldC0+
Q3JlYXRlU29saWRDb2xvckJydXNoKGNvbG9yLCAmY29sb3JCcnVzaCk7CiAgICAgICAgIHJldHVy
biBjb2xvckJydXNoOwogICAgIH0pOwpAQCAtNDY3LDExICs0NjcsMTQ5IEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpkcmF3UmVjdChjb25zdCBGbG8KIAogICAgIGRyYXdXaXRob3V0U2hhZG93KHJl
Y3QsIFt0aGlzLCByZWN0XShJRDJEMVJlbmRlclRhcmdldCogcmVuZGVyVGFyZ2V0KSB7CiAgICAg
ICAgIGNvbnN0IEQyRDFfUkVDVF9GIGQyZFJlY3QgPSByZWN0OwotICAgICAgICByZW5kZXJUYXJn
ZXQtPkRyYXdSZWN0YW5nbGUoJmQyZFJlY3QsIHNvbGlkU3Ryb2tlQnJ1c2goKSwgc3Ryb2tlVGhp
Y2tuZXNzKCkpOwogICAgICAgICByZW5kZXJUYXJnZXQtPkZpbGxSZWN0YW5nbGUoJmQyZFJlY3Qs
IHNvbGlkRmlsbEJydXNoKCkpOworICAgICAgICByZW5kZXJUYXJnZXQtPkRyYXdSZWN0YW5nbGUo
JmQyZFJlY3QsIHNvbGlkU3Ryb2tlQnJ1c2goKSwgc3Ryb2tlVGhpY2tuZXNzKCksIG1fZGF0YS0+
c3Ryb2tlU3R5bGUoKSk7CiAgICAgfSk7CiB9CiAKK3ZvaWQgR3JhcGhpY3NDb250ZXh0UGxhdGZv
cm1Qcml2YXRlOjpzZXRMaW5lQ2FwKExpbmVDYXAgY2FwKQoreworICAgIGlmIChtX2xpbmVDYXAg
PT0gY2FwKQorICAgICAgICByZXR1cm47CisKKyAgICBEMkQxX0NBUF9TVFlMRSBjYXBTdHlsZSA9
IEQyRDFfQ0FQX1NUWUxFX0ZMQVQ7CisgICAgc3dpdGNoIChjYXApIHsKKyAgICBjYXNlIFJvdW5k
Q2FwOgorICAgICAgICBjYXBTdHlsZSA9IEQyRDFfQ0FQX1NUWUxFX1JPVU5EOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFNxdWFyZUNhcDoKKyAgICAgICAgY2FwU3R5bGUgPSBEMkQxX0NBUF9T
VFlMRV9TUVVBUkU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnV0dENhcDoKKyAgICBkZWZh
dWx0OgorICAgICAgICBjYXBTdHlsZSA9IEQyRDFfQ0FQX1NUWUxFX0ZMQVQ7CisgICAgICAgIGJy
ZWFrOworICAgIH0KKworICAgIG1fbGluZUNhcCA9IGNhcFN0eWxlOworICAgIG1fc3Ryb2tlU3ls
ZUlzRGlydHkgPSB0cnVlOworfQorCit2b2lkIEdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0
ZTo6c2V0TGluZUpvaW4oTGluZUpvaW4gam9pbikKK3sKKyAgICBpZiAobV9saW5lSm9pbiA9PSBq
b2luKQorICAgICAgICByZXR1cm47CisKKyAgICBEMkQxX0xJTkVfSk9JTiBqb2luU3R5bGUgPSBE
MkQxX0xJTkVfSk9JTl9NSVRFUjsKKyAgICBzd2l0Y2ggKGpvaW4pIHsKKyAgICBjYXNlIFJvdW5k
Sm9pbjoKKyAgICAgICAgam9pblN0eWxlID0gRDJEMV9MSU5FX0pPSU5fUk9VTkQ7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQmV2ZWxKb2luOgorICAgICAgICBqb2luU3R5bGUgPSBEMkQxX0xJ
TkVfSk9JTl9CRVZFTDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNaXRlckpvaW46CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgam9pblN0eWxlID0gRDJEMV9MSU5FX0pPSU5fTUlURVI7CisgICAg
ICAgIGJyZWFrOworICAgIH0KKworICAgIG1fbGluZUpvaW4gPSBqb2luU3R5bGU7CisgICAgbV9z
dHJva2VTeWxlSXNEaXJ0eSA9IHRydWU7Cit9CisKK3ZvaWQgR3JhcGhpY3NDb250ZXh0UGxhdGZv
cm1Qcml2YXRlOjpzZXRTdHJva2VTdHlsZShTdHJva2VTdHlsZSBzdHJva2VTdHlsZSkKK3sKKyAg
ICBpZiAobV9zdHJva2VTdHlsZSA9PSBzdHJva2VTdHlsZSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9zdHJva2VTdHlsZSA9IHN0cm9rZVN0eWxlOworICAgIG1fc3Ryb2tlU3lsZUlzRGlydHkg
PSB0cnVlOworfQorCit2b2lkIEdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZTo6c2V0TWl0
ZXJMaW1pdChmbG9hdCBtaXRlckxpbWl0KQoreworICAgIGlmIChXVEY6OmFyZUVzc2VudGlhbGx5
RXF1YWwobWl0ZXJMaW1pdCwgbV9taXRlckxpbWl0KSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9taXRlckxpbWl0ID0gbWl0ZXJMaW1pdDsKKyAgICBtX3N0cm9rZVN5bGVJc0RpcnR5ID0gdHJ1
ZTsKK30KKwordm9pZCBHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGU6OnNldERhc2hPZmZz
ZXQoZmxvYXQgZGFzaE9mZnNldCkKK3sKKyAgICBpZiAoV1RGOjphcmVFc3NlbnRpYWxseUVxdWFs
KGRhc2hPZmZzZXQsIG1fZGFzaE9mZnNldCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZGFz
aE9mZnNldCA9IGRhc2hPZmZzZXQ7CisgICAgbV9zdHJva2VTeWxlSXNEaXJ0eSA9IHRydWU7Cit9
CisKK3ZvaWQgR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlOjpzZXRQYXR0ZXJuV2lkdGgo
ZmxvYXQgcGF0dGVybldpZHRoKQoreworICAgIGlmIChXVEY6OmFyZUVzc2VudGlhbGx5RXF1YWwo
cGF0dGVybldpZHRoLCBtX3BhdHRlcm5XaWR0aCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
cGF0dGVybldpZHRoID0gcGF0dGVybldpZHRoOworICAgIG1fc3Ryb2tlU3lsZUlzRGlydHkgPSB0
cnVlOworfQorCit2b2lkIEdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZTo6c2V0UGF0dGVy
bk9mZnNldChmbG9hdCBwYXR0ZXJuT2Zmc2V0KQoreworICAgIGlmIChXVEY6OmFyZUVzc2VudGlh
bGx5RXF1YWwocGF0dGVybk9mZnNldCwgbV9wYXR0ZXJuT2Zmc2V0KSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV9wYXR0ZXJuT2Zmc2V0ID0gcGF0dGVybk9mZnNldDsKKyAgICBtX3N0cm9rZVN5
bGVJc0RpcnR5ID0gdHJ1ZTsKK30KKwordm9pZCBHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZh
dGU6OnNldFN0cm9rZVRoaWNrbmVzcyhmbG9hdCB0aGlja25lc3MpCit7CisgICAgaWYgKFdURjo6
YXJlRXNzZW50aWFsbHlFcXVhbCh0aGlja25lc3MsIG1fc3Ryb2tlVGhpY2tuZXNzKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9zdHJva2VUaGlja25lc3MgPSB0aGlja25lc3M7CisgICAgbV9z
dHJva2VTeWxlSXNEaXJ0eSA9IHRydWU7Cit9CisKK3ZvaWQgR3JhcGhpY3NDb250ZXh0UGxhdGZv
cm1Qcml2YXRlOjpzZXREYXNoZXMoY29uc3QgRGFzaEFycmF5JiBkYXNoZXMpCit7CisgICAgaWYg
KG1fZGFzaGVzID09IGRhc2hlcykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9kYXNoZXMgPSBk
YXNoZXM7CisgICAgbV9zdHJva2VTeWxlSXNEaXJ0eSA9IHRydWU7Cit9CisKK3ZvaWQgR3JhcGhp
Y3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlOjpyZWNvbXB1dGVTdHJva2VTdHlsZSgpCit7CisgICAg
aWYgKCFtX3N0cm9rZVN5bGVJc0RpcnR5KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2QyZFN0
cm9rZVN0eWxlID0gbnVsbHB0cjsKKworICAgIGlmICgobV9zdHJva2VTdHlsZSAhPSBTb2xpZFN0
cm9rZSkgJiYgKG1fc3Ryb2tlU3R5bGUgIT0gTm9TdHJva2UpKSB7CisgICAgICAgIGZsb2F0IHBh
dHRlcm5PZmZzZXQgPSBtX3BhdHRlcm5PZmZzZXQgLyBtX3N0cm9rZVRoaWNrbmVzczsKKworICAg
ICAgICBEYXNoQXJyYXkgZGFzaGVzID0gbV9kYXNoZXM7CisKKyAgICAgICAgLy8gSW4gRGlyZWN0
MkQsIGRhc2hlcyBhbmQgZG90cyBhcmUgZGVmaW5lZCBpbiB0ZXJtcyBvZiB0aGUgcmF0aW8gb2Yg
dGhlIGRhc2ggbGVuZ3RoIHRvIHRoZSBsaW5lIHRoaWNrbmVzcy4KKyAgICAgICAgZm9yIChhdXRv
JiBkYXNoIDogZGFzaGVzKQorICAgICAgICAgICAgZGFzaCAvPSBtX3N0cm9rZVRoaWNrbmVzczsK
KworICAgICAgICBhdXRvIHN0cm9rZVN0eWxlUHJvcGVydGllcyA9IEQyRDE6OlN0cm9rZVN0eWxl
UHJvcGVydGllcyhtX2xpbmVDYXAsIG1fbGluZUNhcCwgbV9saW5lQ2FwLCBtX2xpbmVKb2luLCBt
X3N0cm9rZVRoaWNrbmVzcywgRDJEMV9EQVNIX1NUWUxFX0NVU1RPTSwgcGF0dGVybk9mZnNldCk7
CisgICAgICAgIEdyYXBoaWNzQ29udGV4dDo6c3lzdGVtRmFjdG9yeSgpLT5DcmVhdGVTdHJva2VT
dHlsZSgmc3Ryb2tlU3R5bGVQcm9wZXJ0aWVzLCBkYXNoZXMuZGF0YSgpLCBkYXNoZXMuc2l6ZSgp
LCAmbV9kMmRTdHJva2VTdHlsZSk7CisgICAgfQorCisgICAgbV9zdHJva2VTeWxlSXNEaXJ0eSA9
IGZhbHNlOworfQorCitJRDJEMVN0cm9rZVN0eWxlKiBHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVBy
aXZhdGU6OnN0cm9rZVN0eWxlKCkKK3sKKyAgICByZWNvbXB1dGVTdHJva2VTdHlsZSgpOworICAg
IHJldHVybiBtX2QyZFN0cm9rZVN0eWxlLmdldCgpOworfQorCiAvLyBUaGlzIGlzIG9ubHkgdXNl
ZCB0byBkcmF3IGJvcmRlcnMuCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmUoY29uc3Qg
RmxvYXRQb2ludCYgcG9pbnQxLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludDIpCiB7CkBAIC01MTMs
NiArNjUxLDEyIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZShjb25zdCBGbG8KICAg
ICAgICAgY29uc3QgZmxvYXQgZGFzaGVzWzJdID0geyBwYXR0ZXJuV2lkdGgsIHBhdHRlcm5XaWR0
aCB9OwogICAgICAgICBhdXRvIHN0cm9rZVN0eWxlUHJvcGVydGllcyA9IEQyRDE6OlN0cm9rZVN0
eWxlUHJvcGVydGllcygpOwogICAgICAgICBHcmFwaGljc0NvbnRleHQ6OnN5c3RlbUZhY3Rvcnko
KS0+Q3JlYXRlU3Ryb2tlU3R5bGUoJnN0cm9rZVN0eWxlUHJvcGVydGllcywgZGFzaGVzLCBBUlJB
WVNJWkUoZGFzaGVzKSwgJmQyZFN0cm9rZVN0eWxlKTsKKworICAgICAgICBtX2RhdGEtPnNldFBh
dHRlcm5XaWR0aChwYXR0ZXJuV2lkdGgpOworICAgICAgICBtX2RhdGEtPnNldFBhdHRlcm5PZmZz
ZXQocGF0dGVybk9mZnNldCk7CisgICAgICAgIG1fZGF0YS0+c2V0RGFzaGVzKERhc2hBcnJheSgy
LCBwYXR0ZXJuV2lkdGgpKTsKKworICAgICAgICBkMmRTdHJva2VTdHlsZSA9IG1fZGF0YS0+c3Ry
b2tlU3R5bGUoKTsKICAgICB9CiAKICAgICBhdXRvIGNlbnRlcmVkUG9pbnRzID0gY2VudGVyTGlu
ZUFuZEN1dE9mZkNvcm5lcnMoaXNWZXJ0aWNhbExpbmUsIGNvcm5lcldpZHRoLCBwb2ludDEsIHBv
aW50Mik7CkBAIC01NDcsNyArNjkxLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdFbGxp
cHNlKGNvbnN0IAogICAgIGRyYXdXaXRob3V0U2hhZG93KHJlY3QsIFt0aGlzLCBlbGxpcHNlXShJ
RDJEMVJlbmRlclRhcmdldCogcmVuZGVyVGFyZ2V0KSB7CiAgICAgICAgIHJlbmRlclRhcmdldC0+
RmlsbEVsbGlwc2UoJmVsbGlwc2UsIHNvbGlkRmlsbEJydXNoKCkpOwogCi0gICAgICAgIHJlbmRl
clRhcmdldC0+RHJhd0VsbGlwc2UoJmVsbGlwc2UsIHNvbGlkU3Ryb2tlQnJ1c2goKSwgc3Ryb2tl
VGhpY2tuZXNzKCkpOworICAgICAgICByZW5kZXJUYXJnZXQtPkRyYXdFbGxpcHNlKCZlbGxpcHNl
LCBzb2xpZFN0cm9rZUJydXNoKCksIHN0cm9rZVRoaWNrbmVzcygpLCBtX2RhdGEtPnN0cm9rZVN0
eWxlKCkpOwogICAgIH0pOwogfQogCkBAIC02MDMsNyArNzQ3LDcgQEAgdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OmRyYXdQYXRoKGNvbnN0IFBhdAogCiAgICAgYXV0byByZWN0ID0gcGF0aC5mYXN0Qm91
bmRpbmdSZWN0KCk7CiAgICAgZHJhd1dpdGhvdXRTaGFkb3cocmVjdCwgW3RoaXMsICZwYXRoXShJ
RDJEMVJlbmRlclRhcmdldCogcmVuZGVyVGFyZ2V0KSB7Ci0gICAgICAgIHJlbmRlclRhcmdldC0+
RHJhd0dlb21ldHJ5KHBhdGgucGxhdGZvcm1QYXRoKCksIHNvbGlkU3Ryb2tlQnJ1c2goKSk7Cisg
ICAgICAgIHJlbmRlclRhcmdldC0+RHJhd0dlb21ldHJ5KHBhdGgucGxhdGZvcm1QYXRoKCksIHNv
bGlkU3Ryb2tlQnJ1c2goKSwgc3Ryb2tlVGhpY2tuZXNzKCksIG1fZGF0YS0+c3Ryb2tlU3R5bGUo
KSk7CiAgICAgfSk7CiB9CiAKQEAgLTc2OCw3ICs5MTIsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4
dDo6c3Ryb2tlUGF0aChjb25zdCBQCiAKICAgICBGbG9hdFJlY3QgY29udGV4dFJlY3QoRmxvYXRQ
b2ludCgpLCBjb250ZXh0LT5HZXRTaXplKCkpOwogICAgIGRyYXdXaXRob3V0U2hhZG93KGNvbnRl
eHRSZWN0LCBbdGhpcywgJnBhdGhdKElEMkQxUmVuZGVyVGFyZ2V0KiByZW5kZXJUYXJnZXQpIHsK
LSAgICAgICAgcmVuZGVyVGFyZ2V0LT5EcmF3R2VvbWV0cnkocGF0aC5wbGF0Zm9ybVBhdGgoKSwg
c29saWRTdHJva2VCcnVzaCgpLCBzdHJva2VUaGlja25lc3MoKSk7CisgICAgICAgIHJlbmRlclRh
cmdldC0+RHJhd0dlb21ldHJ5KHBhdGgucGxhdGZvcm1QYXRoKCksIHNvbGlkU3Ryb2tlQnJ1c2go
KSwgc3Ryb2tlVGhpY2tuZXNzKCksIG1fZGF0YS0+c3Ryb2tlU3R5bGUoKSk7CiAgICAgfSk7CiB9
CiAKQEAgLTEwODksNiArMTIzMywxNCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xlYXJQbGF0
Zm9ybVNoYWRvCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAordm9pZCBHcmFwaGljc0NvbnRl
eHQ6OnNldFBsYXRmb3JtU3Ryb2tlU3R5bGUoU3Ryb2tlU3R5bGUgc3R5bGUpCit7CisgICAgaWYg
KHBhaW50aW5nRGlzYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9kYXRhLT5zZXRT
dHJva2VTdHlsZShzdHlsZSk7Cit9CisKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRNaXRlckxp
bWl0KGZsb2F0IGxpbWl0KQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCkBAIC0xMTAw
LDcgKzEyNTIsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0TWl0ZXJMaW1pdChmbG9hCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIG1fZGF0
YS0+c2V0TWl0ZXJMaW1pdChsaW1pdCk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGVh
clJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQpAQCAtMTEzNSw4ICsxMjg3LDE1IEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjpzdHJva2VSZWN0KGNvbnN0IEYKIAogdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OnNldExpbmVDYXAoTGluZUNhcCBjYXApCiB7Ci0gICAgKHZvaWQpY2FwOwotICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgaWYgKGlzUmVjb3JkaW5nKCkpIHsKKyAgICAgICAgbV9kaXNwbGF5TGlzdFJlY29y
ZGVyLT5zZXRMaW5lQ2FwKGNhcCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2Rh
dGEtPnNldExpbmVDYXAoY2FwKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldExpbmVE
YXNoKGNvbnN0IERhc2hBcnJheSYgZGFzaGVzLCBmbG9hdCBkYXNoT2Zmc2V0KQpAQCAtMTE1Nyw3
ICsxMzE2LDggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldExpbmVEYXNoKGNvbnN0IAogICAg
ICAgICAgICAgZGFzaE9mZnNldCA9IGZtb2QoZGFzaE9mZnNldCwgbGVuZ3RoKSArIGxlbmd0aDsK
ICAgICB9CiAKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIG1fZGF0YS0+c2V0RGFzaGVzKGRh
c2hlcyk7CisgICAgbV9kYXRhLT5zZXREYXNoT2Zmc2V0KGRhc2hPZmZzZXQpOwogfQogCiB2b2lk
IEdyYXBoaWNzQ29udGV4dDo6c2V0TGluZUpvaW4oTGluZUpvaW4gam9pbikKQEAgLTExNzAsNyAr
MTMzMCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRMaW5lSm9pbihMaW5lSm8KICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbV9kYXRhLT5z
ZXRMaW5lSm9pbihqb2luKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNhbnZhc0NsaXAo
Y29uc3QgUGF0aCYgcGF0aCwgV2luZFJ1bGUgZmlsbFJ1bGUpCkBAIC0xNDE0LDggKzE1NzQsOCBA
QCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TdHJva2VDCiAKIHZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpzZXRQbGF0Zm9ybVN0cm9rZVRoaWNrbmVzcyhmbG9hdCB0aGlja25lc3MpCiB7
Ci0gICAgLy8gVGhpcyBpcyBhIG5vLW9wIG9uIFdpbmRvd3MuIFdlIGZpbGwgdXNpbmcgdGhlIEdy
YXBoaWNzQ29udGV4dFN0YXRlOjpzdHJva2VUaGlja25lc3MgbWVtYmVyLgogICAgIEFTU0VSVCht
X3N0YXRlLnN0cm9rZVRoaWNrbmVzcyA9PSB0aGlja25lc3MpOworICAgIG1fZGF0YS0+c2V0U3Ry
b2tlVGhpY2tuZXNzKHRoaWNrbmVzcyk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQ
bGF0Zm9ybUZpbGxDb2xvcihjb25zdCBDb2xvciYgY29sb3IpCkBAIC0xNjE2LDcgKzE3NzYsNyBA
QCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6cGxhdGZvcm1TdHJva2VFbGxpCiAgICAgcGxhdGZvcm1D
b250ZXh0KCktPlNldFRhZ3MoMSwgX19MSU5FX18pOwogCiAgICAgZHJhd1dpdGhvdXRTaGFkb3co
ZWxsaXBzZSwgW3RoaXMsIGQyZEVsbGlwc2VdKElEMkQxUmVuZGVyVGFyZ2V0KiByZW5kZXJUYXJn
ZXQpIHsKLSAgICAgICAgcmVuZGVyVGFyZ2V0LT5EcmF3RWxsaXBzZSgmZDJkRWxsaXBzZSwgc29s
aWRTdHJva2VCcnVzaCgpLCBzdHJva2VUaGlja25lc3MoKSk7CisgICAgICAgIHJlbmRlclRhcmdl
dC0+RHJhd0VsbGlwc2UoJmQyZEVsbGlwc2UsIHNvbGlkU3Ryb2tlQnJ1c2goKSwgc3Ryb2tlVGhp
Y2tuZXNzKCksIG1fZGF0YS0+c3Ryb2tlU3R5bGUoKSk7CiAgICAgfSk7CiB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRQbGF0Zm9y
bVByaXZhdGVEaXJlY3QyRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGVEaXJlY3QyRC5oCShy
ZXZpc2lvbiAyMDY5OTkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
R3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlRGlyZWN0MkQuaAkod29ya2luZyBjb3B5KQpA
QCAtNTksOCArNTksMTkgQEAgcHVibGljOgogICAgIHZvaWQgY29uY2F0Q1RNKGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYpOwogICAgIHZvaWQgc2V0Q1RNKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpOwog
CisgICAgdm9pZCBzZXRMaW5lQ2FwKExpbmVDYXApOworICAgIHZvaWQgc2V0TGluZUpvaW4oTGlu
ZUpvaW4pOworICAgIHZvaWQgc2V0U3Ryb2tlU3R5bGUoU3Ryb2tlU3R5bGUpOworICAgIHZvaWQg
c2V0TWl0ZXJMaW1pdChmbG9hdCk7CisgICAgdm9pZCBzZXREYXNoT2Zmc2V0KGZsb2F0KTsKKyAg
ICB2b2lkIHNldFBhdHRlcm5XaWR0aChmbG9hdCk7CisgICAgdm9pZCBzZXRQYXR0ZXJuT2Zmc2V0
KGZsb2F0KTsKKyAgICB2b2lkIHNldFN0cm9rZVRoaWNrbmVzcyhmbG9hdCk7CisgICAgdm9pZCBz
ZXREYXNoZXMoY29uc3QgRGFzaEFycmF5Jik7CisKICAgICBJRDJEMVJlbmRlclRhcmdldCogcmVu
ZGVyVGFyZ2V0KCkgeyByZXR1cm4gbV9yZW5kZXJUYXJnZXQuZ2V0KCk7IH0KICAgICBJRDJEMUxh
eWVyKiBjbGlwTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3JlbmRlclN0YXRlcy5sYXN0KCkubV9h
Y3RpdmVMYXllci5nZXQoKTsgfQorICAgIElEMkQxU3Ryb2tlU3R5bGUqIHN0cm9rZVN0eWxlKCk7
CiAKICAgICBDT01QdHI8SUQyRDFTb2xpZENvbG9yQnJ1c2g+IGJydXNoV2l0aENvbG9yKGNvbnN0
IEQyRDFfQ09MT1JfRiYpOwogCkBAIC02OSwxNSArODAsMTkgQEAgcHVibGljOgogICAgIEQyRDFf
Q09NUE9TSVRFX01PREUgbV9jb21wb3NpdGVNb2RlIHsgRDJEMV9DT01QT1NJVEVfTU9ERV9TT1VS
Q0VfT1ZFUiB9OwogICAgIGJvb2wgbV9zaG91bGRJbmNsdWRlQ2hpbGRXaW5kb3dzIHsgZmFsc2Ug
fTsKICAgICBib29sIG1fZGlkQmVnaW5EcmF3IHsgZmFsc2UgfTsKKyAgICBib29sIG1fc3Ryb2tl
U3lsZUlzRGlydHkgeyBmYWxzZSB9OwogCiAgICAgQ09NUHRyPElEMkQxU29saWRDb2xvckJydXNo
PiBtX3NvbGlkU3Ryb2tlQnJ1c2g7CiAgICAgQ09NUHRyPElEMkQxU29saWRDb2xvckJydXNoPiBt
X3NvbGlkRmlsbEJydXNoOwogCiBwcml2YXRlOgorICAgIHZvaWQgcmVjb21wdXRlU3Ryb2tlU3R5
bGUoKTsKKwogICAgIENPTVB0cjxJRDJEMVJlbmRlclRhcmdldD4gbV9yZW5kZXJUYXJnZXQ7CiAg
ICAgSGFzaE1hcDxSR0JBMzIsIENPTVB0cjxJRDJEMVNvbGlkQ29sb3JCcnVzaD4+IG1fc29saWRD
b2xvcmVkQnJ1c2hDYWNoZTsKICAgICBDT01QdHI8SUQyRDFTb2xpZENvbG9yQnJ1c2g+IG1fd2hp
dGVCcnVzaDsKICAgICBDT01QdHI8SUQyRDFTb2xpZENvbG9yQnJ1c2g+IG1femVyb0JydXNoOwor
ICAgIENPTVB0cjxJRDJEMVN0cm9rZVN0eWxlPiBtX2QyZFN0cm9rZVN0eWxlOwogCiAgICAgc3Ry
dWN0IFJlbmRlclN0YXRlIHsKICAgICAgICAgQ09NUHRyPElEMkQxRHJhd2luZ1N0YXRlQmxvY2s+
IG1fZHJhd2luZ1N0YXRlQmxvY2s7CkBAIC04Niw2ICsxMDEsMTYgQEAgcHJpdmF0ZToKICAgICB9
OwogCiAgICAgVmVjdG9yPFJlbmRlclN0YXRlPiBtX3JlbmRlclN0YXRlczsKKworICAgIEQyRDFf
Q0FQX1NUWUxFIG1fbGluZUNhcCB7IEQyRDFfQ0FQX1NUWUxFX0ZMQVQgfTsKKyAgICBEMkQxX0xJ
TkVfSk9JTiBtX2xpbmVKb2luIHsgRDJEMV9MSU5FX0pPSU5fTUlURVIgfTsKKyAgICBTdHJva2VT
dHlsZSBtX3N0cm9rZVN0eWxlIHsgU29saWRTdHJva2UgfTsKKyAgICBEYXNoQXJyYXkgbV9kYXNo
ZXM7CisgICAgZmxvYXQgbV9taXRlckxpbWl0IHsgMS4wZiB9OworICAgIGZsb2F0IG1fZGFzaE9m
ZnNldCB7IDAgfTsKKyAgICBmbG9hdCBtX3BhdHRlcm5XaWR0aCB7IDEuMGYgfTsKKyAgICBmbG9h
dCBtX3BhdHRlcm5PZmZzZXQgeyAwIH07CisgICAgZmxvYXQgbV9zdHJva2VUaGlja25lc3MgeyAw
IH07CiB9OwogCiBjbGFzcyBEMkRDb250ZXh0U3RhdGVTYXZlciB7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vUGF0aERpcmVjdDJELmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vUGF0aERpcmVjdDJELmNwcAko
cmV2aXNpb24gMjA2OTk5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L1BhdGhEaXJlY3QyRC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5MCw3ICs0OTAsNyBAQCBGbG9h
dFBvaW50IFBhdGg6OmN1cnJlbnRQb2ludCgpIGNvbnN0IAogICAgIGlmIChpc051bGwoKSkKICAg
ICAgICAgcmV0dXJuIEZsb2F0UG9pbnQoKTsKIAotICAgIGZsb2F0IGxlbmd0aDsKKyAgICBmbG9h
dCBsZW5ndGggPSAwOwogICAgIEhSRVNVTFQgaHIgPSBtX3BhdGgtPkNvbXB1dGVMZW5ndGgobnVs
bHB0ciwgJmxlbmd0aCk7CiAgICAgaWYgKCFTVUNDRUVERUQoaHIpKQogICAgICAgICByZXR1cm4g
RmxvYXRQb2ludCgpOwpAQCAtNTA0LDYgKzUwNCwxNiBAQCBGbG9hdFBvaW50IFBhdGg6OmN1cnJl
bnRQb2ludCgpIGNvbnN0IAogICAgIHJldHVybiBwb2ludDsKIH0KIAorZmxvYXQgUGF0aDo6bGVu
Z3RoKCkgY29uc3QKK3sKKyAgICBmbG9hdCBsZW5ndGggPSAwOworICAgIEhSRVNVTFQgaHIgPSBt
X3BhdGgtPkNvbXB1dGVMZW5ndGgobnVsbHB0ciwgJmxlbmd0aCk7CisgICAgaWYgKCFTVUNDRUVE
RUQoaHIpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBsZW5ndGg7Cit9CisKIHZv
aWQgUGF0aDo6YXBwbHkoY29uc3QgUGF0aEFwcGxpZXJGdW5jdGlvbiYgZnVuY3Rpb24pIGNvbnN0
CiB7CiAgICAgaWYgKGlzTnVsbCgpKQo=
</data>
<flag name="review"
          id="314282"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>