<?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>48938</bug_id>
          
          <creation_ts>2010-11-03 11:36:45 -0700</creation_ts>
          <short_desc>Remove IMPLEMENTATION_COLOR_READ_FORMAT and TYPE</short_desc>
          <delta_ts>2010-11-04 18:00:25 -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>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Russell">kbr</reporter>
          <assigned_to name="Zhenyao Mo">zmo</assigned_to>
          <cc>bjacob</cc>
    
    <cc>cmarrin</cc>
    
    <cc>enne</cc>
    
    <cc>zmo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>304155</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-11-03 11:36:45 -0700</bug_when>
    <thetext>Per discussion on the public WebGL mailing list, the alternate format/type to readPixels defined by queries of the IMPLEMENTATION_COLOR_READ_FORMAT and IMPLEMENTATION_COLOR_READ_TYPE has been removed. These enums need to be removed from the WebKit implementation and tests updated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304800</commentid>
    <comment_count>1</comment_count>
      <attachid>72971</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-11-04 12:34:31 -0700</bug_when>
    <thetext>Created attachment 72971
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305002</commentid>
    <comment_count>2</comment_count>
      <attachid>72971</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-11-04 16:48:05 -0700</bug_when>
    <thetext>Comment on attachment 72971
patch

You need to remove these constants from WebGLRenderingContext.idl as well. Please also add a test to webgl-specific.html that gl.IMPLEMENTATION_COLOR_READ_FORMAT and gl.IMPLEMENTATION_COLOR_READ_TYPE are both undefined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305019</commentid>
    <comment_count>3</comment_count>
      <attachid>73009</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-11-04 17:13:43 -0700</bug_when>
    <thetext>Created attachment 73009
revised patch: responding to kbr&apos;s review

Will update khronos test once this patch is reviewed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305020</commentid>
    <comment_count>4</comment_count>
      <attachid>73009</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-11-04 17:14:28 -0700</bug_when>
    <thetext>Comment on attachment 73009
revised patch: responding to kbr&apos;s review

Please update the ChangeLogs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305024</commentid>
    <comment_count>5</comment_count>
      <attachid>73011</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-11-04 17:22:43 -0700</bug_when>
    <thetext>Created attachment 73011
revised patch: updated the change logs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305043</commentid>
    <comment_count>6</comment_count>
      <attachid>73011</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-11-04 17:39:48 -0700</bug_when>
    <thetext>Comment on attachment 73011
revised patch: updated the change logs

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305055</commentid>
    <comment_count>7</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-11-04 17:55:22 -0700</bug_when>
    <thetext>Committed r71372: &lt;http://trac.webkit.org/changeset/71372&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305060</commentid>
    <comment_count>8</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-11-04 18:00:25 -0700</bug_when>
    <thetext>khronos test updated.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72971</attachid>
            <date>2010-11-04 12:34:31 -0700</date>
            <delta_ts>2010-11-04 17:13:43 -0700</delta_ts>
            <desc>patch</desc>
            <filename>readpixels.patch</filename>
            <type>text/plain</type>
            <size>17267</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTM1MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTAtMTEtMDQgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUg
SU1QTEVNRU5UQVRJT05fQ09MT1JfUkVBRF9GT1JNQVQgYW5kIFRZUEUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4OTM4CisKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0Ojppbml0aWFsaXplTmV3Q29udGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcik6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnJlYWRQaXhlbHMpOgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dDNELmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDNEOjpnZXRJbnRlZ2Vydik6CisKIDIwMTAtMTEtMDQgIFBhdmVsIEZlbGRtYW4g
IDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVGltb3RoeSBI
YXRjaGVyLgpJbmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0LmNwcAkocmV2aXNpb24gNzEzNDUpCisrKyBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNywxMyArMTM3LDYgQEAgdm9p
ZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmluaXRpYWxpemVOZQogICAgIG1fY29udGV4dC0+Z2V0
SW50ZWdlcnYoR3JhcGhpY3NDb250ZXh0M0Q6Ok1BWF9WRVJURVhfQVRUUklCUywgJm51bVZlcnRl
eEF0dHJpYnMpOwogICAgIG1fbWF4VmVydGV4QXR0cmlicyA9IG51bVZlcnRleEF0dHJpYnM7CiAK
LSAgICBpbnQgaW1wbGVtZW50YXRpb25Db2xvclJlYWRGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQz
RDo6UkdCQTsKLSAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KEdyYXBoaWNzQ29udGV4dDNEOjpJ
TVBMRU1FTlRBVElPTl9DT0xPUl9SRUFEX0ZPUk1BVCwgJmltcGxlbWVudGF0aW9uQ29sb3JSZWFk
Rm9ybWF0KTsKLSAgICBtX2ltcGxlbWVudGF0aW9uQ29sb3JSZWFkRm9ybWF0ID0gaW1wbGVtZW50
YXRpb25Db2xvclJlYWRGb3JtYXQ7Ci0gICAgaW50IGltcGxlbWVudGF0aW9uQ29sb3JSZWFkVHlw
ZSA9IEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFOwotICAgIG1fY29udGV4dC0+Z2V0
SW50ZWdlcnYoR3JhcGhpY3NDb250ZXh0M0Q6OklNUExFTUVOVEFUSU9OX0NPTE9SX1JFQURfVFlQ
RSwgJmltcGxlbWVudGF0aW9uQ29sb3JSZWFkVHlwZSk7Ci0gICAgbV9pbXBsZW1lbnRhdGlvbkNv
bG9yUmVhZFR5cGUgPSBpbXBsZW1lbnRhdGlvbkNvbG9yUmVhZFR5cGU7Ci0KICAgICBtX21heFRl
eHR1cmVTaXplID0gMDsKICAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KEdyYXBoaWNzQ29udGV4
dDNEOjpNQVhfVEVYVFVSRV9TSVpFLCAmbV9tYXhUZXh0dXJlU2l6ZSk7CiAgICAgbV9tYXhUZXh0
dXJlTGV2ZWwgPSBXZWJHTFRleHR1cmU6OmNvbXB1dGVMZXZlbENvdW50KG1fbWF4VGV4dHVyZVNp
emUsIG1fbWF4VGV4dHVyZVNpemUpOwpAQCAtMTQ4MSwxMCArMTQ3NCw2IEBAIFdlYkdMR2V0SW5m
byBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFAKICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVk
TG9uZ1BhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6R1JFRU5f
QklUUzoKICAgICAgICAgcmV0dXJuIGdldExvbmdQYXJhbWV0ZXIocG5hbWUpOwotICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OklNUExFTUVOVEFUSU9OX0NPTE9SX1JFQURfRk9STUFUOgotICAg
ICAgICByZXR1cm4gZ2V0TG9uZ1BhcmFtZXRlcihwbmFtZSk7Ci0gICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6SU1QTEVNRU5UQVRJT05fQ09MT1JfUkVBRF9UWVBFOgotICAgICAgICByZXR1cm4g
Z2V0TG9uZ1BhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TElO
RV9XSURUSDoKICAgICAgICAgcmV0dXJuIGdldEZsb2F0UGFyYW1ldGVyKHBuYW1lKTsKICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpNQVhfQ09NQklORURfVEVYVFVSRV9JTUFHRV9VTklUUzoK
QEAgLTIxMjEsNyArMjExMCw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpyZWFkUGl4
ZWxzKGwKICAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRl
eHQzRDo6SU5WQUxJRF9WQUxVRSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgaWYgKCEo
KGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSAmJiB0eXBlID09IEdyYXBoaWNzQ29u
dGV4dDNEOjpVTlNJR05FRF9CWVRFKSB8fCAoZm9ybWF0ID09IG1faW1wbGVtZW50YXRpb25Db2xv
clJlYWRGb3JtYXQgJiYgdHlwZSA9PSBtX2ltcGxlbWVudGF0aW9uQ29sb3JSZWFkVHlwZSkpKSB7
CisgICAgaWYgKGZvcm1hdCAhPSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSB8fCB0eXBlICE9IEdy
YXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFKSB7CiAgICAgICAgIG1fY29udGV4dC0+c3lu
dGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHQuaAkocmV2aXNpb24gNzEzNDUpCisrKyBXZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MjAsOCArNDIwLDYg
QEAgcHVibGljOgogCiAgICAgaW50IG1fcGFja0FsaWdubWVudDsKICAgICBpbnQgbV91bnBhY2tB
bGlnbm1lbnQ7Ci0gICAgdW5zaWduZWQgbG9uZyBtX2ltcGxlbWVudGF0aW9uQ29sb3JSZWFkRm9y
bWF0OwotICAgIHVuc2lnbmVkIGxvbmcgbV9pbXBsZW1lbnRhdGlvbkNvbG9yUmVhZFR5cGU7CiAg
ICAgYm9vbCBtX3VucGFja0ZsaXBZOwogICAgIGJvb2wgbV91bnBhY2tQcmVtdWx0aXBseUFscGhh
OwogICAgIGJvb2wgbV9jb250ZXh0TG9zdDsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0M0QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgJKHJldmlzaW9uIDcxMzQ1KQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
NTEsOCArMzUxLDYgQEAgcHVibGljOgogICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX05PUk1B
TElaRUQgPSAweDg4NkEsCiAgICAgICAgIFZFUlRFWF9BVFRSSUJfQVJSQVlfUE9JTlRFUiA9IDB4
ODY0NSwKICAgICAgICAgVkVSVEVYX0FUVFJJQl9BUlJBWV9CVUZGRVJfQklORElORyA9IDB4ODg5
RiwKLSAgICAgICAgSU1QTEVNRU5UQVRJT05fQ09MT1JfUkVBRF9UWVBFID0gMHg4QjlBLAotICAg
ICAgICBJTVBMRU1FTlRBVElPTl9DT0xPUl9SRUFEX0ZPUk1BVCA9IDB4OEI5QiwKICAgICAgICAg
Q09NUElMRV9TVEFUVVMgPSAweDhCODEsCiAgICAgICAgIElORk9fTE9HX0xFTkdUSCA9IDB4OEI4
NCwKICAgICAgICAgU0hBREVSX1NPVVJDRV9MRU5HVEggPSAweDhCODgsCkluZGV4OiBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250
ZXh0M0RPcGVuR0wuY3BwCShyZXZpc2lvbiA3MTM0NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTExNywyMSArMTExNywxMiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRGcmFtZWJ1
ZmZlckF0CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdldEludGVnZXJ2KHVuc2lnbmVkIGxv
bmcgcG5hbWUsIGludCogdmFsdWUpCiB7Ci0gICAgLy8gTmVlZCB0byBlbXVsYXRlIElNUExFTUVO
VEFUSU9OX0NPTE9SX1JFQURfRk9STUFUL1RZUEUgZm9yIEdMLiAgQW55IHZhbGlkCi0gICAgLy8g
Y29tYmluYXRpb24gc2hvdWxkIHdvcmssIGJ1dCBHTF9SR0IvR0xfVU5TSUdORURfQllURSBtaWdo
dCBiZSB0aGUgbW9zdAotICAgIC8vIHVzZWZ1bCBmb3IgZGVza3RvcCBXZWJHTCB1c2Vycy4KICAg
ICAvLyBOZWVkIHRvIGVtdWxhdGUgTUFYX0ZSQUdNRU5UL1ZFUlRFWF9VTklGT1JNX1ZFQ1RPUlMg
YW5kIE1BWF9WQVJZSU5HX1ZFQ1RPUlMKICAgICAvLyBiZWNhdXNlIGRlc2t0b3AgR0wncyBjb3Jy
ZXNwb25kaW5nIHF1ZXJpZXMgcmV0dXJuIHRoZSBudW1iZXIgb2YgY29tcG9uZW50cwogICAgIC8v
IHdoZXJlYXMgR0xFUzIgcmV0dXJuIHRoZSBudW1iZXIgb2YgdmVjdG9ycyAoZWFjaCB2ZWN0b3Ig
aGFzIDQgY29tcG9uZW50cykuCiAgICAgLy8gVGhlcmVmb3JlLCB0aGUgdmFsdWUgcmV0dXJuZWQg
YnkgZGVza3RvcCBHTCBuZWVkcyB0byBiZSBkaXZpZGVkIGJ5IDQuCiAgICAgbWFrZUNvbnRleHRD
dXJyZW50KCk7CiAgICAgc3dpdGNoIChwbmFtZSkgewotICAgIGNhc2UgSU1QTEVNRU5UQVRJT05f
Q09MT1JfUkVBRF9GT1JNQVQ6Ci0gICAgICAgICp2YWx1ZSA9IEdMX1JHQjsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBJTVBMRU1FTlRBVElPTl9DT0xPUl9SRUFEX1RZUEU6Ci0gICAgICAgICp2
YWx1ZSA9IEdMX1VOU0lHTkVEX0JZVEU7Ci0gICAgICAgIGJyZWFrOwogICAgIGNhc2UgTUFYX0ZS
QUdNRU5UX1VOSUZPUk1fVkVDVE9SUzoKICAgICAgICAgOjpnbEdldEludGVnZXJ2KEdMX01BWF9G
UkFHTUVOVF9VTklGT1JNX0NPTVBPTkVOVFMsIHZhbHVlKTsKICAgICAgICAgKnZhbHVlIC89IDQ7
CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDcxMzUxKQorKysgV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEwLTExLTA0ICBaaGVu
eWFvIE1vICA8em1vQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVtb3ZlIElNUExFTUVOVEFUSU9OX0NPTE9SX1JFQURfRk9STUFU
IGFuZCBUWVBFCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00ODkzOAorCisgICAgICAgICogc3JjL1dlYkdyYXBoaWNzQ29udGV4dDNERGVmYXVsdEltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRERlZmF1bHRJbXBsOjpn
ZXRJbnRlZ2Vydik6CisKIDIwMTAtMTEtMDMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBSb2xsIENocm9taXVtIERFUFMKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9z
cmMvV2ViR3JhcGhpY3NDb250ZXh0M0REZWZhdWx0SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJHcmFwaGljc0NvbnRleHQzRERlZmF1bHRJbXBsLmNwcAkocmV2
aXNpb24gNzEzNDUpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkdyYXBoaWNzQ29udGV4dDNE
RGVmYXVsdEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSw4ICs0OSw2IEBACiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogZW51bSB7Ci0gICAgSU1QTEVNRU5UQVRJT05fQ09MT1JfUkVBRF9GT1JN
QVQgPSAweDhCOUIsCi0gICAgSU1QTEVNRU5UQVRJT05fQ09MT1JfUkVBRF9UWVBFID0gIDB4OEI5
QSwKICAgICBNQVhfVkVSVEVYX1VOSUZPUk1fVkVDVE9SUyA9IDB4OERGQiwKICAgICBNQVhfVkFS
WUlOR19WRUNUT1JTID0gMHg4REZDLAogICAgIE1BWF9GUkFHTUVOVF9VTklGT1JNX1ZFQ1RPUlMg
PSAweDhERkQKQEAgLTk2MiwyMSArOTYwLDEyIEBAIHZvaWQgV2ViR3JhcGhpY3NDb250ZXh0M0RE
ZWZhdWx0SW1wbDo6Z2UKIAogdm9pZCBXZWJHcmFwaGljc0NvbnRleHQzRERlZmF1bHRJbXBsOjpn
ZXRJbnRlZ2Vydih1bnNpZ25lZCBsb25nIHBuYW1lLCBpbnQqIHZhbHVlKQogewotICAgIC8vIE5l
ZWQgdG8gZW11bGF0ZSBJTVBMRU1FTlRBVElPTl9DT0xPUl9SRUFEX0ZPUk1BVC9UWVBFIGZvciBH
TC4gIEFueSB2YWxpZAotICAgIC8vIGNvbWJpbmF0aW9uIHNob3VsZCB3b3JrLCBidXQgR0xfUkdC
L0dMX1VOU0lHTkVEX0JZVEUgbWlnaHQgYmUgdGhlIG1vc3QKLSAgICAvLyB1c2VmdWwgZm9yIGRl
c2t0b3AgV2ViR0wgdXNlcnMuCiAgICAgLy8gTmVlZCB0byBlbXVsYXRlIE1BWF9GUkFHTUVOVC9W
RVJURVhfVU5JRk9STV9WRUNUT1JTIGFuZCBNQVhfVkFSWUlOR19WRUNUT1JTCiAgICAgLy8gYmVj
YXVzZSBkZXNrdG9wIEdMJ3MgY29ycmVzcG9uZGluZyBxdWVyaWVzIHJldHVybiB0aGUgbnVtYmVy
IG9mIGNvbXBvbmVudHMKICAgICAvLyB3aGVyZWFzIEdMRVMyIHJldHVybiB0aGUgbnVtYmVyIG9m
IHZlY3RvcnMgKGVhY2ggdmVjdG9yIGhhcyA0IGNvbXBvbmVudHMpLgogICAgIC8vIFRoZXJlZm9y
ZSwgdGhlIHZhbHVlIHJldHVybmVkIGJ5IGRlc2t0b3AgR0wgbmVlZHMgdG8gYmUgZGl2aWRlZCBi
eSA0LgogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgIHN3aXRjaCAocG5hbWUpIHsKLSAg
ICBjYXNlIElNUExFTUVOVEFUSU9OX0NPTE9SX1JFQURfRk9STUFUOgotICAgICAgICAqdmFsdWUg
PSBHTF9SR0I7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSU1QTEVNRU5UQVRJT05fQ09MT1Jf
UkVBRF9UWVBFOgotICAgICAgICAqdmFsdWUgPSBHTF9VTlNJR05FRF9CWVRFOwotICAgICAgICBi
cmVhazsKICAgICBjYXNlIE1BWF9GUkFHTUVOVF9VTklGT1JNX1ZFQ1RPUlM6CiAgICAgICAgIGds
R2V0SW50ZWdlcnYoR0xfTUFYX0ZSQUdNRU5UX1VOSUZPUk1fQ09NUE9ORU5UUywgdmFsdWUpOwog
ICAgICAgICAqdmFsdWUgLz0gNDsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDcxMzUxKQorKysgTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMTEt
MDQgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgSU1QTEVNRU5UQVRJT05fQ09MT1JfUkVB
RF9GT1JNQVQgYW5kIFRZUEUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQ4OTM4CisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9yZWFkLXBpeGVs
cy1wYWNrLWFsaWdubWVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jYW52YXMvd2Vi
Z2wvcmVhZC1waXhlbHMtcGFjay1hbGlnbm1lbnQuaHRtbDoKKwogMjAxMC0xMS0wNCAgQWRhbSBS
b2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgdGltaW5nLW91dCB0ZXN0
IHRvIHRoZSBXaW5kb3dzIFNraXBwZWQgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvd2ViZ2wvcmVhZC1waXhlbHMtcGFjay1hbGlnbm1lbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3JlYWQtcGl4ZWxzLXBhY2stYWxp
Z25tZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNzEzNDUpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy93ZWJnbC9yZWFkLXBpeGVscy1wYWNrLWFsaWdubWVudC1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTMsMTAgKzMsNiBAQCBWZXJpZnkgcmVhZFBpeGVscygpIHdvcmtzIGZp
bmUgd2l0aCB2YXJpCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIFBBU1MgZ2wgPSBpbml0
V2ViR0woJ2V4YW1wbGUnLCAndnNoYWRlcicsICdmc2hhZGVyJywgWyAncG9zJywgJ2NvbG9ySW4n
IF0sIFsgMCwgMCwgMCwgMSBdLCAxKSBpcyBub24tbnVsbC4KLUNoZWNrIHN1cHBvcnRlZCBwaXhl
bCBmb3JtYXQvdHlwZSBiZXNpZGVzIFJHQkEvVU5TSUdORURfQllURQotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgcGl4ZWxGb3JtYXQgPT0gZ2wuUkdCQSAmJiBwaXhl
bFR5cGUgPT0gZ2wuVU5TSUdORURfQllURSBpcyBmYWxzZQogVGVzdGluZyBmb3JtYXQgPSBSR0JB
IGFuZCB0eXBlID0gVU5TSUdORURfQllURQogVGVzdGluZyBQQUNLX0FMSUdOTUVOVCA9IDEsIHdp
ZHRoID0gMSwgaGVpZ2h0ID0gMgogUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogCkBAIC0xMTIsMTExICsxMDgsNiBAQCBQQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogSU5WQUxJCiBUZXN0aW5nIFBBQ0tfQUxJR05NRU5UID0gOCwgd2lkdGggPSAtMSwg
aGVpZ2h0ID0gLTEKIFBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6
IAogUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfVkFMVUUgOiAKLVRl
c3RpbmcgdGhlIG90aGVyIHN1cHBvcnRlZCBmb3JtYXQvdHlwZSBjb21iaW5hdGlvbgotVGVzdGlu
ZyBQQUNLX0FMSUdOTUVOVCA9IDEsIHdpZHRoID0gMSwgaGVpZ2h0ID0gMgotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgMjU1LDEwMiwwLDAgaXMgbm9uLW51bGwuCi1Q
QVNTIHBpeGVsIGlzIGV4cGVjdGVkQ29sb3IKLVRlc3RpbmcgUEFDS19BTElHTk1FTlQgPSAyLCB3
aWR0aCA9IDEsIGhlaWdodCA9IDIKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBO
T19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDog
Ci1QQVNTIDI1NSwxMDIsMCwwIGlzIG5vbi1udWxsLgotUEFTUyBwaXhlbCBpcyBleHBlY3RlZENv
bG9yCi1UZXN0aW5nIFBBQ0tfQUxJR05NRU5UID0gNCwgd2lkdGggPSAxLCBoZWlnaHQgPSAyCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyAyNTUsMTAyLDAsMCBpcyBu
b24tbnVsbC4KLVBBU1MgcGl4ZWwgaXMgZXhwZWN0ZWRDb2xvcgotVGVzdGluZyBQQUNLX0FMSUdO
TUVOVCA9IDgsIHdpZHRoID0gMSwgaGVpZ2h0ID0gMgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiAKLVBBU1MgMjU1LDEwMiwwLDAgaXMgbm9uLW51bGwuCi1QQVNTIHBpeGVsIGlz
IGV4cGVjdGVkQ29sb3IKLVRlc3RpbmcgUEFDS19BTElHTk1FTlQgPSA0LCB3aWR0aCA9IDIsIGhl
aWdodCA9IDIKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIDI1NSwx
MDIsMCwwIGlzIG5vbi1udWxsLgotUEFTUyBwaXhlbCBpcyBleHBlY3RlZENvbG9yCi1UZXN0aW5n
IFBBQ0tfQUxJR05NRU5UID0gOCwgd2lkdGggPSAyLCBoZWlnaHQgPSAyCi1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyAyNTUsMTAyLDAsMCBpcyBub24tbnVsbC4KLVBB
U1MgcGl4ZWwgaXMgZXhwZWN0ZWRDb2xvcgotVGVzdGluZyBQQUNLX0FMSUdOTUVOVCA9IDQsIHdp
ZHRoID0gMywgaGVpZ2h0ID0gMgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAK
LVBBU1MgMjU1LDEwMiwwLDAgaXMgbm9uLW51bGwuCi1QQVNTIHBpeGVsIGlzIGV4cGVjdGVkQ29s
b3IKLVRlc3RpbmcgUEFDS19BTElHTk1FTlQgPSA4LCB3aWR0aCA9IDMsIGhlaWdodCA9IDIKLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIDI1NSwxMDIsMCwwIGlzIG5v
bi1udWxsLgotUEFTUyBwaXhlbCBpcyBleHBlY3RlZENvbG9yCi1UZXN0aW5nIFBBQ0tfQUxJR05N
RU5UID0gNCwgd2lkdGggPSA0LCBoZWlnaHQgPSAyCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBO
T19FUlJPUiA6IAotUEFTUyAyNTUsMTAyLDAsMCBpcyBub24tbnVsbC4KLVBBU1MgcGl4ZWwgaXMg
ZXhwZWN0ZWRDb2xvcgotVGVzdGluZyBQQUNLX0FMSUdOTUVOVCA9IDgsIHdpZHRoID0gNCwgaGVp
Z2h0ID0gMgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgMjU1LDEw
MiwwLDAgaXMgbm9uLW51bGwuCi1QQVNTIHBpeGVsIGlzIGV4cGVjdGVkQ29sb3IKLVRlc3Rpbmcg
UEFDS19BTElHTk1FTlQgPSA4LCB3aWR0aCA9IDUsIGhlaWdodCA9IDEKLVBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIDI1NSwxMDIsMCwwIGlzIG5vbi1udWxsLgotUEFT
UyBwaXhlbCBpcyBleHBlY3RlZENvbG9yCi1UZXN0aW5nIFBBQ0tfQUxJR05NRU5UID0gNCwgd2lk
dGggPSA1LCBoZWlnaHQgPSAyCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9f
RVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAot
UEFTUyAyNTUsMTAyLDAsMCBpcyBub24tbnVsbC4KLVBBU1MgcGl4ZWwgaXMgZXhwZWN0ZWRDb2xv
cgotVGVzdGluZyBQQUNLX0FMSUdOTUVOVCA9IDgsIHdpZHRoID0gNSwgaGVpZ2h0ID0gMgotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgMjU1LDEwMiwwLDAgaXMgbm9u
LW51bGwuCi1QQVNTIHBpeGVsIGlzIGV4cGVjdGVkQ29sb3IKLVRlc3RpbmcgUEFDS19BTElHTk1F
TlQgPSA4LCB3aWR0aCA9IDYsIGhlaWdodCA9IDIKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogCi1QQVNTIDI1NSwxMDIsMCwwIGlzIG5vbi1udWxsLgotUEFTUyBwaXhlbCBpcyBl
eHBlY3RlZENvbG9yCi1UZXN0aW5nIFBBQ0tfQUxJR05NRU5UID0gOCwgd2lkdGggPSA3LCBoZWln
aHQgPSAyCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyAyNTUsMTAy
LDAsMCBpcyBub24tbnVsbC4KLVBBU1MgcGl4ZWwgaXMgZXhwZWN0ZWRDb2xvcgotVGVzdGluZyBQ
QUNLX0FMSUdOTUVOVCA9IDgsIHdpZHRoID0gOCwgaGVpZ2h0ID0gMgotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgMjU1LDEwMiwwLDAgaXMgbm9uLW51bGwuCi1QQVNT
IHBpeGVsIGlzIGV4cGVjdGVkQ29sb3IKLVRlc3RpbmcgUEFDS19BTElHTk1FTlQgPSAxLCB3aWR0
aCA9IDAsIGhlaWdodCA9IDAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19F
UlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1U
ZXN0aW5nIFBBQ0tfQUxJR05NRU5UID0gMiwgd2lkdGggPSAwLCBoZWlnaHQgPSAwCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotVGVzdGluZyBQQUNLX0FMSUdOTUVOVCA9IDQs
IHdpZHRoID0gMCwgaGVpZ2h0ID0gMAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Ig
OiAKLVRlc3RpbmcgUEFDS19BTElHTk1FTlQgPSA4LCB3aWR0aCA9IDAsIGhlaWdodCA9IDAKLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1UZXN0aW5nIFBBQ0tfQUxJR05NRU5U
ID0gMSwgd2lkdGggPSAtMSwgaGVpZ2h0ID0gMQotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5W
QUxJRF9WQUxVRSA6IAotVGVzdGluZyBQQUNLX0FMSUdOTUVOVCA9IDIsIHdpZHRoID0gMSwgaGVp
Z2h0ID0gLTEKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfVkFMVUUgOiAKLVRlc3Rp
bmcgUEFDS19BTElHTk1FTlQgPSA0LCB3aWR0aCA9IDAsIGhlaWdodCA9IC0xCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBJTlZBTElEX1ZBTFVFIDogCi1UZXN0aW5nIFBBQ0tfQUxJR05NRU5UID0g
OCwgd2lkdGggPSAtMSwgaGVpZ2h0ID0gLTEKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFM
SURfVkFMVUUgOiAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01Q
TEVURQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvcmVhZC1waXhlbHMtcGFj
ay1hbGlnbm1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93
ZWJnbC9yZWFkLXBpeGVscy1wYWNrLWFsaWdubWVudC5odG1sCShyZXZpc2lvbiA3MTM0NSkKKysr
IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3JlYWQtcGl4ZWxzLXBhY2stYWxpZ25tZW50
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM5LDggKzM5LDYgQEAgdmFyIGdsID0gbnVsbDsKIHZh
ciBhcnJheSA9IG51bGw7CiB2YXIgcGl4ZWwgPSBbIDAsIDAsIDAsIDAgXTsKIHZhciBleHBlY3Rl
ZENvbG9yID0gWyAwLCAwLCAwLCAwIF07Ci12YXIgcGl4ZWxGb3JtYXQgPSAwOwotdmFyIHBpeGVs
VHlwZSA9IDA7CiAKIGZ1bmN0aW9uIGNhbGN1bGF0ZVBpeGVsQnl0ZXMoZm9ybWF0LCB0eXBlKQog
ewpAQCAtMjA0LDIzICsyMDIsMTEgQEAgZnVuY3Rpb24gcnVuVGVzdEl0ZXJhdGlvbihmb3JtYXQs
IHR5cGUsIAogICAgIHNob3VsZEJlKCJwaXhlbCIsICJleHBlY3RlZENvbG9yIik7CiB9CiAKLWZ1
bmN0aW9uIGNoZWNrU3VwcG9ydGVkUGl4ZWxGb3JtYXRBbmRUeXBlKCkKLXsKLSAgICBkZWJ1Zygi
Q2hlY2sgc3VwcG9ydGVkIHBpeGVsIGZvcm1hdC90eXBlIGJlc2lkZXMgUkdCQS9VTlNJR05FRF9C
WVRFIik7Ci0gICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0gICAgcGl4ZWxG
b3JtYXQgPSBnbC5nZXRQYXJhbWV0ZXIoZ2wuSU1QTEVNRU5UQVRJT05fQ09MT1JfUkVBRF9GT1JN
QVQpOwotICAgIHBpeGVsVHlwZSA9IGdsLmdldFBhcmFtZXRlcihnbC5JTVBMRU1FTlRBVElPTl9D
T0xPUl9SRUFEX1RZUEUpOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwot
ICAgIHNob3VsZEJlRmFsc2UoInBpeGVsRm9ybWF0ID09IGdsLlJHQkEgJiYgcGl4ZWxUeXBlID09
IGdsLlVOU0lHTkVEX0JZVEUiKTsKLX0KLQogZGVzY3JpcHRpb24oJ1ZlcmlmeSByZWFkUGl4ZWxz
KCkgd29ya3MgZmluZSB3aXRoIHZhcmlvdXMgUEFDS19BTElHTk1FTlQgdmFsdWVzLicpOwogCiBz
aG91bGRCZU5vbk51bGwoImdsID0gaW5pdFdlYkdMKCdleGFtcGxlJywgJ3ZzaGFkZXInLCAnZnNo
YWRlcicsIFsgJ3BvcycsICdjb2xvckluJyBdLCBbIDAsIDAsIDAsIDEgXSwgMSkiKTsKIGdsLmRp
c2FibGUoZ2wuQkxFTkQpOwogCi1jaGVja1N1cHBvcnRlZFBpeGVsRm9ybWF0QW5kVHlwZSgpOwot
CiBkZWJ1ZygiVGVzdGluZyBmb3JtYXQgPSBSR0JBIGFuZCB0eXBlID0gVU5TSUdORURfQllURSIp
OwogcnVuVGVzdEl0ZXJhdGlvbihnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCAxLCAxLCAyKTsK
IHJ1blRlc3RJdGVyYXRpb24oZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgMiwgMSwgMik7CkBA
IC0yNDcsMzIgKzIzMyw2IEBAIHJ1blRlc3RJdGVyYXRpb24oZ2wuUkdCQSwgZ2wuVU5TSUdORURf
QlkKIHJ1blRlc3RJdGVyYXRpb24oZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgNCwgMCwgLTEp
OwogcnVuVGVzdEl0ZXJhdGlvbihnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCA4LCAtMSwgLTEp
OwogCi1kZWJ1ZygiVGVzdGluZyB0aGUgb3RoZXIgc3VwcG9ydGVkIGZvcm1hdC90eXBlIGNvbWJp
bmF0aW9uIik7Ci1ydW5UZXN0SXRlcmF0aW9uKHBpeGVsRm9ybWF0LCBwaXhlbFR5cGUsIDEsIDEs
IDIpOwotcnVuVGVzdEl0ZXJhdGlvbihwaXhlbEZvcm1hdCwgcGl4ZWxUeXBlLCAyLCAxLCAyKTsK
LXJ1blRlc3RJdGVyYXRpb24ocGl4ZWxGb3JtYXQsIHBpeGVsVHlwZSwgNCwgMSwgMik7Ci1ydW5U
ZXN0SXRlcmF0aW9uKHBpeGVsRm9ybWF0LCBwaXhlbFR5cGUsIDgsIDEsIDIpOwotcnVuVGVzdEl0
ZXJhdGlvbihwaXhlbEZvcm1hdCwgcGl4ZWxUeXBlLCA0LCAyLCAyKTsKLXJ1blRlc3RJdGVyYXRp
b24ocGl4ZWxGb3JtYXQsIHBpeGVsVHlwZSwgOCwgMiwgMik7Ci1ydW5UZXN0SXRlcmF0aW9uKHBp
eGVsRm9ybWF0LCBwaXhlbFR5cGUsIDQsIDMsIDIpOwotcnVuVGVzdEl0ZXJhdGlvbihwaXhlbEZv
cm1hdCwgcGl4ZWxUeXBlLCA4LCAzLCAyKTsKLXJ1blRlc3RJdGVyYXRpb24ocGl4ZWxGb3JtYXQs
IHBpeGVsVHlwZSwgNCwgNCwgMik7Ci1ydW5UZXN0SXRlcmF0aW9uKHBpeGVsRm9ybWF0LCBwaXhl
bFR5cGUsIDgsIDQsIDIpOwotcnVuVGVzdEl0ZXJhdGlvbihwaXhlbEZvcm1hdCwgcGl4ZWxUeXBl
LCA4LCA1LCAxKTsKLXJ1blRlc3RJdGVyYXRpb24ocGl4ZWxGb3JtYXQsIHBpeGVsVHlwZSwgNCwg
NSwgMik7Ci1ydW5UZXN0SXRlcmF0aW9uKHBpeGVsRm9ybWF0LCBwaXhlbFR5cGUsIDgsIDUsIDIp
OwotcnVuVGVzdEl0ZXJhdGlvbihwaXhlbEZvcm1hdCwgcGl4ZWxUeXBlLCA4LCA2LCAyKTsKLXJ1
blRlc3RJdGVyYXRpb24ocGl4ZWxGb3JtYXQsIHBpeGVsVHlwZSwgOCwgNywgMik7Ci1ydW5UZXN0
SXRlcmF0aW9uKHBpeGVsRm9ybWF0LCBwaXhlbFR5cGUsIDgsIDgsIDIpOwotcnVuVGVzdEl0ZXJh
dGlvbihwaXhlbEZvcm1hdCwgcGl4ZWxUeXBlLCAxLCAwLCAwKTsKLXJ1blRlc3RJdGVyYXRpb24o
cGl4ZWxGb3JtYXQsIHBpeGVsVHlwZSwgMiwgMCwgMCk7Ci1ydW5UZXN0SXRlcmF0aW9uKHBpeGVs
Rm9ybWF0LCBwaXhlbFR5cGUsIDQsIDAsIDApOwotcnVuVGVzdEl0ZXJhdGlvbihwaXhlbEZvcm1h
dCwgcGl4ZWxUeXBlLCA4LCAwLCAwKTsKLXJ1blRlc3RJdGVyYXRpb24ocGl4ZWxGb3JtYXQsIHBp
eGVsVHlwZSwgMSwgLTEsIDEpOwotcnVuVGVzdEl0ZXJhdGlvbihwaXhlbEZvcm1hdCwgcGl4ZWxU
eXBlLCAyLCAxLCAtMSk7Ci1ydW5UZXN0SXRlcmF0aW9uKHBpeGVsRm9ybWF0LCBwaXhlbFR5cGUs
IDQsIDAsIC0xKTsKLXJ1blRlc3RJdGVyYXRpb24ocGl4ZWxGb3JtYXQsIHBpeGVsVHlwZSwgOCwg
LTEsIC0xKTsKLQogc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgo=
</data>
<flag name="review"
          id="63316"
          type_id="1"
          status="-"
          setter="kbr"
    />
    <flag name="commit-queue"
          id="63317"
          type_id="3"
          status="-"
          setter="zmo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73009</attachid>
            <date>2010-11-04 17:13:43 -0700</date>
            <delta_ts>2010-11-04 17:22:43 -0700</delta_ts>
            <desc>revised patch: responding to kbr&apos;s review</desc>
            <filename>readpixels.patch</filename>
            <type>text/plain</type>
            <size>19442</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTM1MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTAtMTEtMDQgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUg
SU1QTEVNRU5UQVRJT05fQ09MT1JfUkVBRF9GT1JNQVQgYW5kIFRZUEUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4OTM4CisKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0Ojppbml0aWFsaXplTmV3Q29udGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcik6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnJlYWRQaXhlbHMpOgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dDNELmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDNEOjpnZXRJbnRlZ2Vydik6CisKIDIwMTAtMTEtMDQgIFBhdmVsIEZlbGRtYW4g
IDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVGltb3RoeSBI
YXRjaGVyLgpJbmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0LmNwcAkocmV2aXNpb24gNzEzNDUpCisrKyBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNywxMyArMTM3LDYgQEAgdm9p
ZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmluaXRpYWxpemVOZQogICAgIG1fY29udGV4dC0+Z2V0
SW50ZWdlcnYoR3JhcGhpY3NDb250ZXh0M0Q6Ok1BWF9WRVJURVhfQVRUUklCUywgJm51bVZlcnRl
eEF0dHJpYnMpOwogICAgIG1fbWF4VmVydGV4QXR0cmlicyA9IG51bVZlcnRleEF0dHJpYnM7CiAK
LSAgICBpbnQgaW1wbGVtZW50YXRpb25Db2xvclJlYWRGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQz
RDo6UkdCQTsKLSAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KEdyYXBoaWNzQ29udGV4dDNEOjpJ
TVBMRU1FTlRBVElPTl9DT0xPUl9SRUFEX0ZPUk1BVCwgJmltcGxlbWVudGF0aW9uQ29sb3JSZWFk
Rm9ybWF0KTsKLSAgICBtX2ltcGxlbWVudGF0aW9uQ29sb3JSZWFkRm9ybWF0ID0gaW1wbGVtZW50
YXRpb25Db2xvclJlYWRGb3JtYXQ7Ci0gICAgaW50IGltcGxlbWVudGF0aW9uQ29sb3JSZWFkVHlw
ZSA9IEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFOwotICAgIG1fY29udGV4dC0+Z2V0
SW50ZWdlcnYoR3JhcGhpY3NDb250ZXh0M0Q6OklNUExFTUVOVEFUSU9OX0NPTE9SX1JFQURfVFlQ
RSwgJmltcGxlbWVudGF0aW9uQ29sb3JSZWFkVHlwZSk7Ci0gICAgbV9pbXBsZW1lbnRhdGlvbkNv
bG9yUmVhZFR5cGUgPSBpbXBsZW1lbnRhdGlvbkNvbG9yUmVhZFR5cGU7Ci0KICAgICBtX21heFRl
eHR1cmVTaXplID0gMDsKICAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KEdyYXBoaWNzQ29udGV4
dDNEOjpNQVhfVEVYVFVSRV9TSVpFLCAmbV9tYXhUZXh0dXJlU2l6ZSk7CiAgICAgbV9tYXhUZXh0
dXJlTGV2ZWwgPSBXZWJHTFRleHR1cmU6OmNvbXB1dGVMZXZlbENvdW50KG1fbWF4VGV4dHVyZVNp
emUsIG1fbWF4VGV4dHVyZVNpemUpOwpAQCAtMTQ4MSwxMCArMTQ3NCw2IEBAIFdlYkdMR2V0SW5m
byBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFAKICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVk
TG9uZ1BhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6R1JFRU5f
QklUUzoKICAgICAgICAgcmV0dXJuIGdldExvbmdQYXJhbWV0ZXIocG5hbWUpOwotICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OklNUExFTUVOVEFUSU9OX0NPTE9SX1JFQURfRk9STUFUOgotICAg
ICAgICByZXR1cm4gZ2V0TG9uZ1BhcmFtZXRlcihwbmFtZSk7Ci0gICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6SU1QTEVNRU5UQVRJT05fQ09MT1JfUkVBRF9UWVBFOgotICAgICAgICByZXR1cm4g
Z2V0TG9uZ1BhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TElO
RV9XSURUSDoKICAgICAgICAgcmV0dXJuIGdldEZsb2F0UGFyYW1ldGVyKHBuYW1lKTsKICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpNQVhfQ09NQklORURfVEVYVFVSRV9JTUFHRV9VTklUUzoK
QEAgLTIxMjEsNyArMjExMCw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpyZWFkUGl4
ZWxzKGwKICAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRl
eHQzRDo6SU5WQUxJRF9WQUxVRSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgaWYgKCEo
KGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSAmJiB0eXBlID09IEdyYXBoaWNzQ29u
dGV4dDNEOjpVTlNJR05FRF9CWVRFKSB8fCAoZm9ybWF0ID09IG1faW1wbGVtZW50YXRpb25Db2xv
clJlYWRGb3JtYXQgJiYgdHlwZSA9PSBtX2ltcGxlbWVudGF0aW9uQ29sb3JSZWFkVHlwZSkpKSB7
CisgICAgaWYgKGZvcm1hdCAhPSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSB8fCB0eXBlICE9IEdy
YXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFKSB7CiAgICAgICAgIG1fY29udGV4dC0+c3lu
dGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHQuaAkocmV2aXNpb24gNzEzNDUpCisrKyBXZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MjAsOCArNDIwLDYg
QEAgcHVibGljOgogCiAgICAgaW50IG1fcGFja0FsaWdubWVudDsKICAgICBpbnQgbV91bnBhY2tB
bGlnbm1lbnQ7Ci0gICAgdW5zaWduZWQgbG9uZyBtX2ltcGxlbWVudGF0aW9uQ29sb3JSZWFkRm9y
bWF0OwotICAgIHVuc2lnbmVkIGxvbmcgbV9pbXBsZW1lbnRhdGlvbkNvbG9yUmVhZFR5cGU7CiAg
ICAgYm9vbCBtX3VucGFja0ZsaXBZOwogICAgIGJvb2wgbV91bnBhY2tQcmVtdWx0aXBseUFscGhh
OwogICAgIGJvb2wgbV9jb250ZXh0TG9zdDsKSW5kZXg6IFdlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dC5pZGwJKHJldmlzaW9uIDcxMzQ1KQorKysgV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0z
OTIsMTAgKzM5Miw2IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgaW50
IFZFUlRFWF9BVFRSSUJfQVJSQVlfUE9JTlRFUiAgICAgICAgPSAweDg2NDU7CiAgICAgICAgIGNv
bnN0IHVuc2lnbmVkIGludCBWRVJURVhfQVRUUklCX0FSUkFZX0JVRkZFUl9CSU5ESU5HID0gMHg4
ODlGOwogCi0gICAgICAgIC8qIFJlYWQgRm9ybWF0ICovCi0gICAgICAgIGNvbnN0IHVuc2lnbmVk
IGludCBJTVBMRU1FTlRBVElPTl9DT0xPUl9SRUFEX1RZUEUgICA9IDB4OEI5QTsKLSAgICAgICAg
Y29uc3QgdW5zaWduZWQgaW50IElNUExFTUVOVEFUSU9OX0NPTE9SX1JFQURfRk9STUFUID0gMHg4
QjlCOwotCiAgICAgICAgIC8qIFNoYWRlciBTb3VyY2UgKi8KICAgICAgICAgY29uc3QgdW5zaWdu
ZWQgaW50IENPTVBJTEVfU1RBVFVTICAgICAgICAgICAgICAgICA9IDB4OEI4MTsKICAgICAgICAg
Y29uc3QgdW5zaWduZWQgaW50IElORk9fTE9HX0xFTkdUSCAgICAgICAgICAgICAgICA9IDB4OEI4
NDsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNE
LmgJKHJldmlzaW9uIDcxMzQ1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHQzRC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNTEsOCArMzUxLDYgQEAgcHVibGljOgog
ICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX05PUk1BTElaRUQgPSAweDg4NkEsCiAgICAgICAg
IFZFUlRFWF9BVFRSSUJfQVJSQVlfUE9JTlRFUiA9IDB4ODY0NSwKICAgICAgICAgVkVSVEVYX0FU
VFJJQl9BUlJBWV9CVUZGRVJfQklORElORyA9IDB4ODg5RiwKLSAgICAgICAgSU1QTEVNRU5UQVRJ
T05fQ09MT1JfUkVBRF9UWVBFID0gMHg4QjlBLAotICAgICAgICBJTVBMRU1FTlRBVElPTl9DT0xP
Ul9SRUFEX0ZPUk1BVCA9IDB4OEI5QiwKICAgICAgICAgQ09NUElMRV9TVEFUVVMgPSAweDhCODEs
CiAgICAgICAgIElORk9fTE9HX0xFTkdUSCA9IDB4OEI4NCwKICAgICAgICAgU0hBREVSX1NPVVJD
RV9MRU5HVEggPSAweDhCODgsCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0wuY3BwCShyZXZpc2lv
biA3MTM0NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29u
dGV4dDNET3BlbkdMLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTExNywyMSArMTExNywxMiBAQCB2
b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRGcmFtZWJ1ZmZlckF0CiAKIHZvaWQgR3JhcGhpY3ND
b250ZXh0M0Q6OmdldEludGVnZXJ2KHVuc2lnbmVkIGxvbmcgcG5hbWUsIGludCogdmFsdWUpCiB7
Ci0gICAgLy8gTmVlZCB0byBlbXVsYXRlIElNUExFTUVOVEFUSU9OX0NPTE9SX1JFQURfRk9STUFU
L1RZUEUgZm9yIEdMLiAgQW55IHZhbGlkCi0gICAgLy8gY29tYmluYXRpb24gc2hvdWxkIHdvcmss
IGJ1dCBHTF9SR0IvR0xfVU5TSUdORURfQllURSBtaWdodCBiZSB0aGUgbW9zdAotICAgIC8vIHVz
ZWZ1bCBmb3IgZGVza3RvcCBXZWJHTCB1c2Vycy4KICAgICAvLyBOZWVkIHRvIGVtdWxhdGUgTUFY
X0ZSQUdNRU5UL1ZFUlRFWF9VTklGT1JNX1ZFQ1RPUlMgYW5kIE1BWF9WQVJZSU5HX1ZFQ1RPUlMK
ICAgICAvLyBiZWNhdXNlIGRlc2t0b3AgR0wncyBjb3JyZXNwb25kaW5nIHF1ZXJpZXMgcmV0dXJu
IHRoZSBudW1iZXIgb2YgY29tcG9uZW50cwogICAgIC8vIHdoZXJlYXMgR0xFUzIgcmV0dXJuIHRo
ZSBudW1iZXIgb2YgdmVjdG9ycyAoZWFjaCB2ZWN0b3IgaGFzIDQgY29tcG9uZW50cykuCiAgICAg
Ly8gVGhlcmVmb3JlLCB0aGUgdmFsdWUgcmV0dXJuZWQgYnkgZGVza3RvcCBHTCBuZWVkcyB0byBi
ZSBkaXZpZGVkIGJ5IDQuCiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAgc3dpdGNoIChw
bmFtZSkgewotICAgIGNhc2UgSU1QTEVNRU5UQVRJT05fQ09MT1JfUkVBRF9GT1JNQVQ6Ci0gICAg
ICAgICp2YWx1ZSA9IEdMX1JHQjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJTVBMRU1FTlRB
VElPTl9DT0xPUl9SRUFEX1RZUEU6Ci0gICAgICAgICp2YWx1ZSA9IEdMX1VOU0lHTkVEX0JZVEU7
Ci0gICAgICAgIGJyZWFrOwogICAgIGNhc2UgTUFYX0ZSQUdNRU5UX1VOSUZPUk1fVkVDVE9SUzoK
ICAgICAgICAgOjpnbEdldEludGVnZXJ2KEdMX01BWF9GUkFHTUVOVF9VTklGT1JNX0NPTVBPTkVO
VFMsIHZhbHVlKTsKICAgICAgICAgKnZhbHVlIC89IDQ7CkluZGV4OiBXZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlz
aW9uIDcxMzUxKQorKysgV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEzIEBACisyMDEwLTExLTA0ICBaaGVueWFvIE1vICA8em1vQGdvb2dsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3Zl
IElNUExFTUVOVEFUSU9OX0NPTE9SX1JFQURfRk9STUFUIGFuZCBUWVBFCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODkzOAorCisgICAgICAgICogc3Jj
L1dlYkdyYXBoaWNzQ29udGV4dDNERGVmYXVsdEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJHcmFwaGljc0NvbnRleHQzRERlZmF1bHRJbXBsOjpnZXRJbnRlZ2Vydik6CisKIDIwMTAtMTEt
MDMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSb2xsIENocm9t
aXVtIERFUFMKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViR3JhcGhpY3NDb250ZXh0M0RE
ZWZhdWx0SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJHcmFw
aGljc0NvbnRleHQzRERlZmF1bHRJbXBsLmNwcAkocmV2aXNpb24gNzEzNDUpCisrKyBXZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkdyYXBoaWNzQ29udGV4dDNERGVmYXVsdEltcGwuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00OSw4ICs0OSw2IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogZW51bSB7Ci0g
ICAgSU1QTEVNRU5UQVRJT05fQ09MT1JfUkVBRF9GT1JNQVQgPSAweDhCOUIsCi0gICAgSU1QTEVN
RU5UQVRJT05fQ09MT1JfUkVBRF9UWVBFID0gIDB4OEI5QSwKICAgICBNQVhfVkVSVEVYX1VOSUZP
Uk1fVkVDVE9SUyA9IDB4OERGQiwKICAgICBNQVhfVkFSWUlOR19WRUNUT1JTID0gMHg4REZDLAog
ICAgIE1BWF9GUkFHTUVOVF9VTklGT1JNX1ZFQ1RPUlMgPSAweDhERkQKQEAgLTk2MiwyMSArOTYw
LDEyIEBAIHZvaWQgV2ViR3JhcGhpY3NDb250ZXh0M0REZWZhdWx0SW1wbDo6Z2UKIAogdm9pZCBX
ZWJHcmFwaGljc0NvbnRleHQzRERlZmF1bHRJbXBsOjpnZXRJbnRlZ2Vydih1bnNpZ25lZCBsb25n
IHBuYW1lLCBpbnQqIHZhbHVlKQogewotICAgIC8vIE5lZWQgdG8gZW11bGF0ZSBJTVBMRU1FTlRB
VElPTl9DT0xPUl9SRUFEX0ZPUk1BVC9UWVBFIGZvciBHTC4gIEFueSB2YWxpZAotICAgIC8vIGNv
bWJpbmF0aW9uIHNob3VsZCB3b3JrLCBidXQgR0xfUkdCL0dMX1VOU0lHTkVEX0JZVEUgbWlnaHQg
YmUgdGhlIG1vc3QKLSAgICAvLyB1c2VmdWwgZm9yIGRlc2t0b3AgV2ViR0wgdXNlcnMuCiAgICAg
Ly8gTmVlZCB0byBlbXVsYXRlIE1BWF9GUkFHTUVOVC9WRVJURVhfVU5JRk9STV9WRUNUT1JTIGFu
ZCBNQVhfVkFSWUlOR19WRUNUT1JTCiAgICAgLy8gYmVjYXVzZSBkZXNrdG9wIEdMJ3MgY29ycmVz
cG9uZGluZyBxdWVyaWVzIHJldHVybiB0aGUgbnVtYmVyIG9mIGNvbXBvbmVudHMKICAgICAvLyB3
aGVyZWFzIEdMRVMyIHJldHVybiB0aGUgbnVtYmVyIG9mIHZlY3RvcnMgKGVhY2ggdmVjdG9yIGhh
cyA0IGNvbXBvbmVudHMpLgogICAgIC8vIFRoZXJlZm9yZSwgdGhlIHZhbHVlIHJldHVybmVkIGJ5
IGRlc2t0b3AgR0wgbmVlZHMgdG8gYmUgZGl2aWRlZCBieSA0LgogICAgIG1ha2VDb250ZXh0Q3Vy
cmVudCgpOwogICAgIHN3aXRjaCAocG5hbWUpIHsKLSAgICBjYXNlIElNUExFTUVOVEFUSU9OX0NP
TE9SX1JFQURfRk9STUFUOgotICAgICAgICAqdmFsdWUgPSBHTF9SR0I7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgSU1QTEVNRU5UQVRJT05fQ09MT1JfUkVBRF9UWVBFOgotICAgICAgICAqdmFs
dWUgPSBHTF9VTlNJR05FRF9CWVRFOwotICAgICAgICBicmVhazsKICAgICBjYXNlIE1BWF9GUkFH
TUVOVF9VTklGT1JNX1ZFQ1RPUlM6CiAgICAgICAgIGdsR2V0SW50ZWdlcnYoR0xfTUFYX0ZSQUdN
RU5UX1VOSUZPUk1fQ09NUE9ORU5UUywgdmFsdWUpOwogICAgICAgICAqdmFsdWUgLz0gNDsKSW5k
ZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDcxMzUxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMTEtMDQgIFpoZW55YW8gTW8gIDx6bW9AZ29v
Z2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBSZW1vdmUgSU1QTEVNRU5UQVRJT05fQ09MT1JfUkVBRF9GT1JNQVQgYW5kIFRZUEUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4OTM4CisKKyAgICAg
ICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9yZWFkLXBpeGVscy1wYWNrLWFsaWdubWVudC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvcmVhZC1waXhlbHMtcGFjay1hbGln
bm1lbnQuaHRtbDoKKwogMjAxMC0xMS0wNCAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIGEgdGltaW5nLW91dCB0ZXN0IHRvIHRoZSBXaW5kb3dzIFNraXBwZWQg
ZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvcmVhZC1waXhlbHMtcGFj
ay1hbGlnbm1lbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL3dlYmdsL3JlYWQtcGl4ZWxzLXBhY2stYWxpZ25tZW50LWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gNzEzNDUpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9yZWFkLXBpeGVs
cy1wYWNrLWFsaWdubWVudC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMsMTAgKzMs
NiBAQCBWZXJpZnkgcmVhZFBpeGVscygpIHdvcmtzIGZpbmUgd2l0aCB2YXJpCiBPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCiAKIFBBU1MgZ2wgPSBpbml0V2ViR0woJ2V4YW1wbGUnLCAndnNoYWRl
cicsICdmc2hhZGVyJywgWyAncG9zJywgJ2NvbG9ySW4nIF0sIFsgMCwgMCwgMCwgMSBdLCAxKSBp
cyBub24tbnVsbC4KLUNoZWNrIHN1cHBvcnRlZCBwaXhlbCBmb3JtYXQvdHlwZSBiZXNpZGVzIFJH
QkEvVU5TSUdORURfQllURQotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBB
U1MgcGl4ZWxGb3JtYXQgPT0gZ2wuUkdCQSAmJiBwaXhlbFR5cGUgPT0gZ2wuVU5TSUdORURfQllU
RSBpcyBmYWxzZQogVGVzdGluZyBmb3JtYXQgPSBSR0JBIGFuZCB0eXBlID0gVU5TSUdORURfQllU
RQogVGVzdGluZyBQQUNLX0FMSUdOTUVOVCA9IDEsIHdpZHRoID0gMSwgaGVpZ2h0ID0gMgogUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCkBAIC0xMTIsMTExICsx
MDgsNiBAQCBQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJCiBUZXN0aW5n
IFBBQ0tfQUxJR05NRU5UID0gOCwgd2lkdGggPSAtMSwgaGVpZ2h0ID0gLTEKIFBBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAogUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IElOVkFMSURfVkFMVUUgOiAKLVRlc3RpbmcgdGhlIG90aGVyIHN1cHBvcnRl
ZCBmb3JtYXQvdHlwZSBjb21iaW5hdGlvbgotVGVzdGluZyBQQUNLX0FMSUdOTUVOVCA9IDEsIHdp
ZHRoID0gMSwgaGVpZ2h0ID0gMgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAK
LVBBU1MgMjU1LDEwMiwwLDAgaXMgbm9uLW51bGwuCi1QQVNTIHBpeGVsIGlzIGV4cGVjdGVkQ29s
b3IKLVRlc3RpbmcgUEFDS19BTElHTk1FTlQgPSAyLCB3aWR0aCA9IDEsIGhlaWdodCA9IDIKLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIDI1NSwxMDIsMCwwIGlzIG5v
bi1udWxsLgotUEFTUyBwaXhlbCBpcyBleHBlY3RlZENvbG9yCi1UZXN0aW5nIFBBQ0tfQUxJR05N
RU5UID0gNCwgd2lkdGggPSAxLCBoZWlnaHQgPSAyCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBO
T19FUlJPUiA6IAotUEFTUyAyNTUsMTAyLDAsMCBpcyBub24tbnVsbC4KLVBBU1MgcGl4ZWwgaXMg
ZXhwZWN0ZWRDb2xvcgotVGVzdGluZyBQQUNLX0FMSUdOTUVOVCA9IDgsIHdpZHRoID0gMSwgaGVp
Z2h0ID0gMgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgMjU1LDEw
MiwwLDAgaXMgbm9uLW51bGwuCi1QQVNTIHBpeGVsIGlzIGV4cGVjdGVkQ29sb3IKLVRlc3Rpbmcg
UEFDS19BTElHTk1FTlQgPSA0LCB3aWR0aCA9IDIsIGhlaWdodCA9IDIKLVBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIDI1NSwxMDIsMCwwIGlzIG5vbi1udWxsLgotUEFT
UyBwaXhlbCBpcyBleHBlY3RlZENvbG9yCi1UZXN0aW5nIFBBQ0tfQUxJR05NRU5UID0gOCwgd2lk
dGggPSAyLCBoZWlnaHQgPSAyCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9f
RVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAot
UEFTUyAyNTUsMTAyLDAsMCBpcyBub24tbnVsbC4KLVBBU1MgcGl4ZWwgaXMgZXhwZWN0ZWRDb2xv
cgotVGVzdGluZyBQQUNLX0FMSUdOTUVOVCA9IDQsIHdpZHRoID0gMywgaGVpZ2h0ID0gMgotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgMjU1LDEwMiwwLDAgaXMgbm9u
LW51bGwuCi1QQVNTIHBpeGVsIGlzIGV4cGVjdGVkQ29sb3IKLVRlc3RpbmcgUEFDS19BTElHTk1F
TlQgPSA4LCB3aWR0aCA9IDMsIGhlaWdodCA9IDIKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogCi1QQVNTIDI1NSwxMDIsMCwwIGlzIG5vbi1udWxsLgotUEFTUyBwaXhlbCBpcyBl
eHBlY3RlZENvbG9yCi1UZXN0aW5nIFBBQ0tfQUxJR05NRU5UID0gNCwgd2lkdGggPSA0LCBoZWln
aHQgPSAyCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyAyNTUsMTAy
LDAsMCBpcyBub24tbnVsbC4KLVBBU1MgcGl4ZWwgaXMgZXhwZWN0ZWRDb2xvcgotVGVzdGluZyBQ
QUNLX0FMSUdOTUVOVCA9IDgsIHdpZHRoID0gNCwgaGVpZ2h0ID0gMgotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgMjU1LDEwMiwwLDAgaXMgbm9uLW51bGwuCi1QQVNT
IHBpeGVsIGlzIGV4cGVjdGVkQ29sb3IKLVRlc3RpbmcgUEFDS19BTElHTk1FTlQgPSA4LCB3aWR0
aCA9IDUsIGhlaWdodCA9IDEKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19F
UlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1Q
QVNTIDI1NSwxMDIsMCwwIGlzIG5vbi1udWxsLgotUEFTUyBwaXhlbCBpcyBleHBlY3RlZENvbG9y
Ci1UZXN0aW5nIFBBQ0tfQUxJR05NRU5UID0gNCwgd2lkdGggPSA1LCBoZWlnaHQgPSAyCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyAyNTUsMTAyLDAsMCBpcyBub24t
bnVsbC4KLVBBU1MgcGl4ZWwgaXMgZXhwZWN0ZWRDb2xvcgotVGVzdGluZyBQQUNLX0FMSUdOTUVO
VCA9IDgsIHdpZHRoID0gNSwgaGVpZ2h0ID0gMgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9f
RVJST1IgOiAKLVBBU1MgMjU1LDEwMiwwLDAgaXMgbm9uLW51bGwuCi1QQVNTIHBpeGVsIGlzIGV4
cGVjdGVkQ29sb3IKLVRlc3RpbmcgUEFDS19BTElHTk1FTlQgPSA4LCB3aWR0aCA9IDYsIGhlaWdo
dCA9IDIKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIDI1NSwxMDIs
MCwwIGlzIG5vbi1udWxsLgotUEFTUyBwaXhlbCBpcyBleHBlY3RlZENvbG9yCi1UZXN0aW5nIFBB
Q0tfQUxJR05NRU5UID0gOCwgd2lkdGggPSA3LCBoZWlnaHQgPSAyCi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyAyNTUsMTAyLDAsMCBpcyBub24tbnVsbC4KLVBBU1Mg
cGl4ZWwgaXMgZXhwZWN0ZWRDb2xvcgotVGVzdGluZyBQQUNLX0FMSUdOTUVOVCA9IDgsIHdpZHRo
ID0gOCwgaGVpZ2h0ID0gMgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBB
U1MgMjU1LDEwMiwwLDAgaXMgbm9uLW51bGwuCi1QQVNTIHBpeGVsIGlzIGV4cGVjdGVkQ29sb3IK
LVRlc3RpbmcgUEFDS19BTElHTk1FTlQgPSAxLCB3aWR0aCA9IDAsIGhlaWdodCA9IDAKLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1UZXN0aW5nIFBBQ0tfQUxJR05NRU5UID0g
Miwgd2lkdGggPSAwLCBoZWlnaHQgPSAwCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
UiA6IAotVGVzdGluZyBQQUNLX0FMSUdOTUVOVCA9IDQsIHdpZHRoID0gMCwgaGVpZ2h0ID0gMAot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVRlc3RpbmcgUEFDS19BTElHTk1F
TlQgPSA4LCB3aWR0aCA9IDAsIGhlaWdodCA9IDAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogCi1UZXN0aW5nIFBBQ0tfQUxJR05NRU5UID0gMSwgd2lkdGggPSAtMSwgaGVpZ2h0
ID0gMQotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9WQUxVRSA6IAotVGVzdGluZyBQ
QUNLX0FMSUdOTUVOVCA9IDIsIHdpZHRoID0gMSwgaGVpZ2h0ID0gLTEKLVBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IElOVkFMSURfVkFMVUUgOiAKLVRlc3RpbmcgUEFDS19BTElHTk1FTlQgPSA0LCB3
aWR0aCA9IDAsIGhlaWdodCA9IC0xCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX1ZB
TFVFIDogCi1UZXN0aW5nIFBBQ0tfQUxJR05NRU5UID0gOCwgd2lkdGggPSAtMSwgaGVpZ2h0ID0g
LTEKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfVkFMVUUgOiAKIFBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvcmVhZC1waXhlbHMtcGFjay1hbGlnbm1lbnQuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9yZWFkLXBpeGVscy1wYWNrLWFs
aWdubWVudC5odG1sCShyZXZpc2lvbiA3MTM0NSkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFz
L3dlYmdsL3JlYWQtcGl4ZWxzLXBhY2stYWxpZ25tZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTM5LDggKzM5LDYgQEAgdmFyIGdsID0gbnVsbDsKIHZhciBhcnJheSA9IG51bGw7CiB2YXIgcGl4
ZWwgPSBbIDAsIDAsIDAsIDAgXTsKIHZhciBleHBlY3RlZENvbG9yID0gWyAwLCAwLCAwLCAwIF07
Ci12YXIgcGl4ZWxGb3JtYXQgPSAwOwotdmFyIHBpeGVsVHlwZSA9IDA7CiAKIGZ1bmN0aW9uIGNh
bGN1bGF0ZVBpeGVsQnl0ZXMoZm9ybWF0LCB0eXBlKQogewpAQCAtMjA0LDIzICsyMDIsMTEgQEAg
ZnVuY3Rpb24gcnVuVGVzdEl0ZXJhdGlvbihmb3JtYXQsIHR5cGUsIAogICAgIHNob3VsZEJlKCJw
aXhlbCIsICJleHBlY3RlZENvbG9yIik7CiB9CiAKLWZ1bmN0aW9uIGNoZWNrU3VwcG9ydGVkUGl4
ZWxGb3JtYXRBbmRUeXBlKCkKLXsKLSAgICBkZWJ1ZygiQ2hlY2sgc3VwcG9ydGVkIHBpeGVsIGZv
cm1hdC90eXBlIGJlc2lkZXMgUkdCQS9VTlNJR05FRF9CWVRFIik7Ci0gICAgZ2xFcnJvclNob3Vs
ZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0gICAgcGl4ZWxGb3JtYXQgPSBnbC5nZXRQYXJhbWV0ZXIo
Z2wuSU1QTEVNRU5UQVRJT05fQ09MT1JfUkVBRF9GT1JNQVQpOwotICAgIHBpeGVsVHlwZSA9IGds
LmdldFBhcmFtZXRlcihnbC5JTVBMRU1FTlRBVElPTl9DT0xPUl9SRUFEX1RZUEUpOwotICAgIGds
RXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotICAgIHNob3VsZEJlRmFsc2UoInBpeGVs
Rm9ybWF0ID09IGdsLlJHQkEgJiYgcGl4ZWxUeXBlID09IGdsLlVOU0lHTkVEX0JZVEUiKTsKLX0K
LQogZGVzY3JpcHRpb24oJ1ZlcmlmeSByZWFkUGl4ZWxzKCkgd29ya3MgZmluZSB3aXRoIHZhcmlv
dXMgUEFDS19BTElHTk1FTlQgdmFsdWVzLicpOwogCiBzaG91bGRCZU5vbk51bGwoImdsID0gaW5p
dFdlYkdMKCdleGFtcGxlJywgJ3ZzaGFkZXInLCAnZnNoYWRlcicsIFsgJ3BvcycsICdjb2xvcklu
JyBdLCBbIDAsIDAsIDAsIDEgXSwgMSkiKTsKIGdsLmRpc2FibGUoZ2wuQkxFTkQpOwogCi1jaGVj
a1N1cHBvcnRlZFBpeGVsRm9ybWF0QW5kVHlwZSgpOwotCiBkZWJ1ZygiVGVzdGluZyBmb3JtYXQg
PSBSR0JBIGFuZCB0eXBlID0gVU5TSUdORURfQllURSIpOwogcnVuVGVzdEl0ZXJhdGlvbihnbC5S
R0JBLCBnbC5VTlNJR05FRF9CWVRFLCAxLCAxLCAyKTsKIHJ1blRlc3RJdGVyYXRpb24oZ2wuUkdC
QSwgZ2wuVU5TSUdORURfQllURSwgMiwgMSwgMik7CkBAIC0yNDcsMzIgKzIzMyw2IEBAIHJ1blRl
c3RJdGVyYXRpb24oZ2wuUkdCQSwgZ2wuVU5TSUdORURfQlkKIHJ1blRlc3RJdGVyYXRpb24oZ2wu
UkdCQSwgZ2wuVU5TSUdORURfQllURSwgNCwgMCwgLTEpOwogcnVuVGVzdEl0ZXJhdGlvbihnbC5S
R0JBLCBnbC5VTlNJR05FRF9CWVRFLCA4LCAtMSwgLTEpOwogCi1kZWJ1ZygiVGVzdGluZyB0aGUg
b3RoZXIgc3VwcG9ydGVkIGZvcm1hdC90eXBlIGNvbWJpbmF0aW9uIik7Ci1ydW5UZXN0SXRlcmF0
aW9uKHBpeGVsRm9ybWF0LCBwaXhlbFR5cGUsIDEsIDEsIDIpOwotcnVuVGVzdEl0ZXJhdGlvbihw
aXhlbEZvcm1hdCwgcGl4ZWxUeXBlLCAyLCAxLCAyKTsKLXJ1blRlc3RJdGVyYXRpb24ocGl4ZWxG
b3JtYXQsIHBpeGVsVHlwZSwgNCwgMSwgMik7Ci1ydW5UZXN0SXRlcmF0aW9uKHBpeGVsRm9ybWF0
LCBwaXhlbFR5cGUsIDgsIDEsIDIpOwotcnVuVGVzdEl0ZXJhdGlvbihwaXhlbEZvcm1hdCwgcGl4
ZWxUeXBlLCA0LCAyLCAyKTsKLXJ1blRlc3RJdGVyYXRpb24ocGl4ZWxGb3JtYXQsIHBpeGVsVHlw
ZSwgOCwgMiwgMik7Ci1ydW5UZXN0SXRlcmF0aW9uKHBpeGVsRm9ybWF0LCBwaXhlbFR5cGUsIDQs
IDMsIDIpOwotcnVuVGVzdEl0ZXJhdGlvbihwaXhlbEZvcm1hdCwgcGl4ZWxUeXBlLCA4LCAzLCAy
KTsKLXJ1blRlc3RJdGVyYXRpb24ocGl4ZWxGb3JtYXQsIHBpeGVsVHlwZSwgNCwgNCwgMik7Ci1y
dW5UZXN0SXRlcmF0aW9uKHBpeGVsRm9ybWF0LCBwaXhlbFR5cGUsIDgsIDQsIDIpOwotcnVuVGVz
dEl0ZXJhdGlvbihwaXhlbEZvcm1hdCwgcGl4ZWxUeXBlLCA4LCA1LCAxKTsKLXJ1blRlc3RJdGVy
YXRpb24ocGl4ZWxGb3JtYXQsIHBpeGVsVHlwZSwgNCwgNSwgMik7Ci1ydW5UZXN0SXRlcmF0aW9u
KHBpeGVsRm9ybWF0LCBwaXhlbFR5cGUsIDgsIDUsIDIpOwotcnVuVGVzdEl0ZXJhdGlvbihwaXhl
bEZvcm1hdCwgcGl4ZWxUeXBlLCA4LCA2LCAyKTsKLXJ1blRlc3RJdGVyYXRpb24ocGl4ZWxGb3Jt
YXQsIHBpeGVsVHlwZSwgOCwgNywgMik7Ci1ydW5UZXN0SXRlcmF0aW9uKHBpeGVsRm9ybWF0LCBw
aXhlbFR5cGUsIDgsIDgsIDIpOwotcnVuVGVzdEl0ZXJhdGlvbihwaXhlbEZvcm1hdCwgcGl4ZWxU
eXBlLCAxLCAwLCAwKTsKLXJ1blRlc3RJdGVyYXRpb24ocGl4ZWxGb3JtYXQsIHBpeGVsVHlwZSwg
MiwgMCwgMCk7Ci1ydW5UZXN0SXRlcmF0aW9uKHBpeGVsRm9ybWF0LCBwaXhlbFR5cGUsIDQsIDAs
IDApOwotcnVuVGVzdEl0ZXJhdGlvbihwaXhlbEZvcm1hdCwgcGl4ZWxUeXBlLCA4LCAwLCAwKTsK
LXJ1blRlc3RJdGVyYXRpb24ocGl4ZWxGb3JtYXQsIHBpeGVsVHlwZSwgMSwgLTEsIDEpOwotcnVu
VGVzdEl0ZXJhdGlvbihwaXhlbEZvcm1hdCwgcGl4ZWxUeXBlLCAyLCAxLCAtMSk7Ci1ydW5UZXN0
SXRlcmF0aW9uKHBpeGVsRm9ybWF0LCBwaXhlbFR5cGUsIDQsIDAsIC0xKTsKLXJ1blRlc3RJdGVy
YXRpb24ocGl4ZWxGb3JtYXQsIHBpeGVsVHlwZSwgOCwgLTEsIC0xKTsKLQogc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvd2ViZ2wvd2ViZ2wtc3BlY2lmaWMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3dlYmdsLXNwZWNpZmljLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gNzEzNDUpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1zcGVj
aWZpYy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDggQEAgUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSQogUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9OIDogYSBkaWZmZXJlbnQgcmVmZXJlbmNlIHZh
bHVlIGZvciBmcm9udCBhbmQgYmFjayBmYWNpbmcgaXMgaWxsZWdhbAogUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9OIDogYSBkaWZmZXJlbnQgbWFzayB2
YWx1ZSBmb3IgZnJvbnQgYW5kIGJhY2sgZmFjaW5nIGlzIGlsbGVnYWwKIFBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IGEgZGlmZmVyZW50IG1hc2sg
dmFsdWUgZm9yIGZyb250IGFuZCBiYWNrIGZhY2luZyBpcyBpbGxlZ2FsCitQQVNTIHVuZGVmaW5l
ZCBpcyB1bmRlZmluZWQuCitQQVNTIHVuZGVmaW5lZCBpcyB1bmRlZmluZWQuCiBQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3dlYmdsL3dlYmdsLXNwZWNpZmljLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtc3BlY2lmaWMuaHRtbAkocmV2aXNpb24g
NzEzNDUpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1zcGVjaWZpYy5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC05OCw2ICs5OCw5IEBAIGdsLnN0ZW5jaWxGdW5jU2VwYXJh
dGUoZ2wuQkFDSywgZ2wuQUxXQVkKIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVS
QVRJT04sCiAgICAgImEgZGlmZmVyZW50IG1hc2sgdmFsdWUgZm9yIGZyb250IGFuZCBiYWNrIGZh
Y2luZyBpcyBpbGxlZ2FsIik7CiAKK3Nob3VsZEJlVW5kZWZpbmVkKGdsLklNUExFTUVOVEFUSU9O
X0NPTE9SX1JFQURfRk9STUFUKTsKK3Nob3VsZEJlVW5kZWZpbmVkKGdsLklNUExFTUVOVEFUSU9O
X0NPTE9SX1JFQURfVFlQRSk7CisKIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiA8L3Njcmlw
dD4KIAo=
</data>
<flag name="review"
          id="63369"
          type_id="1"
          status="-"
          setter="kbr"
    />
    <flag name="commit-queue"
          id="63370"
          type_id="3"
          status="-"
          setter="zmo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73011</attachid>
            <date>2010-11-04 17:22:43 -0700</date>
            <delta_ts>2010-11-04 17:39:48 -0700</delta_ts>
            <desc>revised patch: updated the change logs</desc>
            <filename>readpixels.patch</filename>
            <type>text/plain</type>
            <size>19621</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTM2OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTAtMTEtMDQgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUg
SU1QTEVNRU5UQVRJT05fQ09MT1JfUkVBRF9GT1JNQVQgYW5kIFRZUEUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4OTM4CisKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0Ojppbml0aWFsaXplTmV3Q29udGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcik6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnJlYWRQaXhlbHMpOgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMUmVuZGVyaW5nQ29udGV4dC5pZGw6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0M0QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3Jh
cGhpY3NDb250ZXh0M0RPcGVuR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0M0Q6OmdldEludGVnZXJ2KToKKwogMjAxMC0xMS0wMyAgWmhlbnlhbyBNbyAgPHptb0Bnb29n
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUnVzc2VsbC4KSW5kZXg6IFdl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAJKHJldmlzaW9u
IDcxMzQ1KQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMzcsMTMgKzEzNyw2IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdD
b250ZXh0Ojppbml0aWFsaXplTmUKICAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KEdyYXBoaWNz
Q29udGV4dDNEOjpNQVhfVkVSVEVYX0FUVFJJQlMsICZudW1WZXJ0ZXhBdHRyaWJzKTsKICAgICBt
X21heFZlcnRleEF0dHJpYnMgPSBudW1WZXJ0ZXhBdHRyaWJzOwogCi0gICAgaW50IGltcGxlbWVu
dGF0aW9uQ29sb3JSZWFkRm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkE7Ci0gICAgbV9j
b250ZXh0LT5nZXRJbnRlZ2VydihHcmFwaGljc0NvbnRleHQzRDo6SU1QTEVNRU5UQVRJT05fQ09M
T1JfUkVBRF9GT1JNQVQsICZpbXBsZW1lbnRhdGlvbkNvbG9yUmVhZEZvcm1hdCk7Ci0gICAgbV9p
bXBsZW1lbnRhdGlvbkNvbG9yUmVhZEZvcm1hdCA9IGltcGxlbWVudGF0aW9uQ29sb3JSZWFkRm9y
bWF0OwotICAgIGludCBpbXBsZW1lbnRhdGlvbkNvbG9yUmVhZFR5cGUgPSBHcmFwaGljc0NvbnRl
eHQzRDo6VU5TSUdORURfQllURTsKLSAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KEdyYXBoaWNz
Q29udGV4dDNEOjpJTVBMRU1FTlRBVElPTl9DT0xPUl9SRUFEX1RZUEUsICZpbXBsZW1lbnRhdGlv
bkNvbG9yUmVhZFR5cGUpOwotICAgIG1faW1wbGVtZW50YXRpb25Db2xvclJlYWRUeXBlID0gaW1w
bGVtZW50YXRpb25Db2xvclJlYWRUeXBlOwotCiAgICAgbV9tYXhUZXh0dXJlU2l6ZSA9IDA7CiAg
ICAgbV9jb250ZXh0LT5nZXRJbnRlZ2VydihHcmFwaGljc0NvbnRleHQzRDo6TUFYX1RFWFRVUkVf
U0laRSwgJm1fbWF4VGV4dHVyZVNpemUpOwogICAgIG1fbWF4VGV4dHVyZUxldmVsID0gV2ViR0xU
ZXh0dXJlOjpjb21wdXRlTGV2ZWxDb3VudChtX21heFRleHR1cmVTaXplLCBtX21heFRleHR1cmVT
aXplKTsKQEAgLTE0ODEsMTAgKzE0NzQsNiBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdD
b250ZXh0OjpnZXRQCiAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZExvbmdQYXJhbWV0ZXIocG5h
bWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkdSRUVOX0JJVFM6CiAgICAgICAgIHJl
dHVybiBnZXRMb25nUGFyYW1ldGVyKHBuYW1lKTsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpJTVBMRU1FTlRBVElPTl9DT0xPUl9SRUFEX0ZPUk1BVDoKLSAgICAgICAgcmV0dXJuIGdldExv
bmdQYXJhbWV0ZXIocG5hbWUpOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OklNUExFTUVO
VEFUSU9OX0NPTE9SX1JFQURfVFlQRToKLSAgICAgICAgcmV0dXJuIGdldExvbmdQYXJhbWV0ZXIo
cG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVfV0lEVEg6CiAgICAgICAg
IHJldHVybiBnZXRGbG9hdFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6TUFYX0NPTUJJTkVEX1RFWFRVUkVfSU1BR0VfVU5JVFM6CkBAIC0yMTIxLDcgKzIxMTAs
NyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6cmVhZFBpeGVscyhsCiAgICAgICAgIG1f
Y29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfVkFM
VUUpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGlmICghKChmb3JtYXQgPT0gR3JhcGhp
Y3NDb250ZXh0M0Q6OlJHQkEgJiYgdHlwZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURf
QllURSkgfHwgKGZvcm1hdCA9PSBtX2ltcGxlbWVudGF0aW9uQ29sb3JSZWFkRm9ybWF0ICYmIHR5
cGUgPT0gbV9pbXBsZW1lbnRhdGlvbkNvbG9yUmVhZFR5cGUpKSkgeworICAgIGlmIChmb3JtYXQg
IT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEgfHwgdHlwZSAhPSBHcmFwaGljc0NvbnRleHQzRDo6
VU5TSUdORURfQllURSkgewogICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdy
YXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTik7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CkluZGV4OiBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgJ
KHJldmlzaW9uIDcxMzQ1KQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtNDIwLDggKzQyMCw2IEBAIHB1YmxpYzoKIAogICAg
IGludCBtX3BhY2tBbGlnbm1lbnQ7CiAgICAgaW50IG1fdW5wYWNrQWxpZ25tZW50OwotICAgIHVu
c2lnbmVkIGxvbmcgbV9pbXBsZW1lbnRhdGlvbkNvbG9yUmVhZEZvcm1hdDsKLSAgICB1bnNpZ25l
ZCBsb25nIG1faW1wbGVtZW50YXRpb25Db2xvclJlYWRUeXBlOwogICAgIGJvb2wgbV91bnBhY2tG
bGlwWTsKICAgICBib29sIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYTsKICAgICBib29sIG1fY29u
dGV4dExvc3Q7CkluZGV4OiBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHQuaWRsCShyZXZpc2lvbiA3MTM0NSkKKysrIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzkyLDEwICszOTIsNiBAQCBt
b2R1bGUgaHRtbCB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBWRVJURVhfQVRUUklCX0FS
UkFZX1BPSU5URVIgICAgICAgID0gMHg4NjQ1OwogICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQg
VkVSVEVYX0FUVFJJQl9BUlJBWV9CVUZGRVJfQklORElORyA9IDB4ODg5RjsKIAotICAgICAgICAv
KiBSZWFkIEZvcm1hdCAqLwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgSU1QTEVNRU5UQVRJ
T05fQ09MT1JfUkVBRF9UWVBFICAgPSAweDhCOUE7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGlu
dCBJTVBMRU1FTlRBVElPTl9DT0xPUl9SRUFEX0ZPUk1BVCA9IDB4OEI5QjsKLQogICAgICAgICAv
KiBTaGFkZXIgU291cmNlICovCiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBDT01QSUxFX1NU
QVRVUyAgICAgICAgICAgICAgICAgPSAweDhCODE7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGlu
dCBJTkZPX0xPR19MRU5HVEggICAgICAgICAgICAgICAgPSAweDhCODQ7CkluZGV4OiBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCShyZXZpc2lvbiA3MTM0
NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAkod29y
a2luZyBjb3B5KQpAQCAtMzUxLDggKzM1MSw2IEBAIHB1YmxpYzoKICAgICAgICAgVkVSVEVYX0FU
VFJJQl9BUlJBWV9OT1JNQUxJWkVEID0gMHg4ODZBLAogICAgICAgICBWRVJURVhfQVRUUklCX0FS
UkFZX1BPSU5URVIgPSAweDg2NDUsCiAgICAgICAgIFZFUlRFWF9BVFRSSUJfQVJSQVlfQlVGRkVS
X0JJTkRJTkcgPSAweDg4OUYsCi0gICAgICAgIElNUExFTUVOVEFUSU9OX0NPTE9SX1JFQURfVFlQ
RSA9IDB4OEI5QSwKLSAgICAgICAgSU1QTEVNRU5UQVRJT05fQ09MT1JfUkVBRF9GT1JNQVQgPSAw
eDhCOUIsCiAgICAgICAgIENPTVBJTEVfU1RBVFVTID0gMHg4QjgxLAogICAgICAgICBJTkZPX0xP
R19MRU5HVEggPSAweDhCODQsCiAgICAgICAgIFNIQURFUl9TT1VSQ0VfTEVOR1RIID0gMHg4Qjg4
LApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
M0RPcGVuR0wuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcAkocmV2aXNpb24gNzEzNDUpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTExMTcsMjEgKzExMTcsMTIgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQzRDo6Z2V0RnJhbWVidWZmZXJBdAogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbnRl
Z2Vydih1bnNpZ25lZCBsb25nIHBuYW1lLCBpbnQqIHZhbHVlKQogewotICAgIC8vIE5lZWQgdG8g
ZW11bGF0ZSBJTVBMRU1FTlRBVElPTl9DT0xPUl9SRUFEX0ZPUk1BVC9UWVBFIGZvciBHTC4gIEFu
eSB2YWxpZAotICAgIC8vIGNvbWJpbmF0aW9uIHNob3VsZCB3b3JrLCBidXQgR0xfUkdCL0dMX1VO
U0lHTkVEX0JZVEUgbWlnaHQgYmUgdGhlIG1vc3QKLSAgICAvLyB1c2VmdWwgZm9yIGRlc2t0b3Ag
V2ViR0wgdXNlcnMuCiAgICAgLy8gTmVlZCB0byBlbXVsYXRlIE1BWF9GUkFHTUVOVC9WRVJURVhf
VU5JRk9STV9WRUNUT1JTIGFuZCBNQVhfVkFSWUlOR19WRUNUT1JTCiAgICAgLy8gYmVjYXVzZSBk
ZXNrdG9wIEdMJ3MgY29ycmVzcG9uZGluZyBxdWVyaWVzIHJldHVybiB0aGUgbnVtYmVyIG9mIGNv
bXBvbmVudHMKICAgICAvLyB3aGVyZWFzIEdMRVMyIHJldHVybiB0aGUgbnVtYmVyIG9mIHZlY3Rv
cnMgKGVhY2ggdmVjdG9yIGhhcyA0IGNvbXBvbmVudHMpLgogICAgIC8vIFRoZXJlZm9yZSwgdGhl
IHZhbHVlIHJldHVybmVkIGJ5IGRlc2t0b3AgR0wgbmVlZHMgdG8gYmUgZGl2aWRlZCBieSA0Lgog
ICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgIHN3aXRjaCAocG5hbWUpIHsKLSAgICBjYXNl
IElNUExFTUVOVEFUSU9OX0NPTE9SX1JFQURfRk9STUFUOgotICAgICAgICAqdmFsdWUgPSBHTF9S
R0I7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSU1QTEVNRU5UQVRJT05fQ09MT1JfUkVBRF9U
WVBFOgotICAgICAgICAqdmFsdWUgPSBHTF9VTlNJR05FRF9CWVRFOwotICAgICAgICBicmVhazsK
ICAgICBjYXNlIE1BWF9GUkFHTUVOVF9VTklGT1JNX1ZFQ1RPUlM6CiAgICAgICAgIDo6Z2xHZXRJ
bnRlZ2VydihHTF9NQVhfRlJBR01FTlRfVU5JRk9STV9DT01QT05FTlRTLCB2YWx1ZSk7CiAgICAg
ICAgICp2YWx1ZSAvPSA0OwpJbmRleDogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA3MTM2OCkKKysrIFdl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAor
MjAxMC0xMS0wNCAgWmhlbnlhbyBNbyAgPHptb0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBJTVBMRU1FTlRBVElPTl9D
T0xPUl9SRUFEX0ZPUk1BVCBhbmQgVFlQRQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDg5MzgKKworICAgICAgICAqIHNyYy9XZWJHcmFwaGljc0NvbnRl
eHQzRERlZmF1bHRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0
M0REZWZhdWx0SW1wbDo6Z2V0SW50ZWdlcnYpOgorCiAyMDEwLTExLTA0ICBLYXZpdGEgS2FuZXRr
YXIgIDxra2FuZXRrYXJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0g
QmFydGguCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkdyYXBoaWNzQ29udGV4dDNERGVm
YXVsdEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViR3JhcGhp
Y3NDb250ZXh0M0REZWZhdWx0SW1wbC5jcHAJKHJldmlzaW9uIDcxMzQ1KQorKysgV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJHcmFwaGljc0NvbnRleHQzRERlZmF1bHRJbXBsLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDksOCArNDksNiBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGVudW0gewotICAg
IElNUExFTUVOVEFUSU9OX0NPTE9SX1JFQURfRk9STUFUID0gMHg4QjlCLAotICAgIElNUExFTUVO
VEFUSU9OX0NPTE9SX1JFQURfVFlQRSA9ICAweDhCOUEsCiAgICAgTUFYX1ZFUlRFWF9VTklGT1JN
X1ZFQ1RPUlMgPSAweDhERkIsCiAgICAgTUFYX1ZBUllJTkdfVkVDVE9SUyA9IDB4OERGQywKICAg
ICBNQVhfRlJBR01FTlRfVU5JRk9STV9WRUNUT1JTID0gMHg4REZECkBAIC05NjIsMjEgKzk2MCwx
MiBAQCB2b2lkIFdlYkdyYXBoaWNzQ29udGV4dDNERGVmYXVsdEltcGw6OmdlCiAKIHZvaWQgV2Vi
R3JhcGhpY3NDb250ZXh0M0REZWZhdWx0SW1wbDo6Z2V0SW50ZWdlcnYodW5zaWduZWQgbG9uZyBw
bmFtZSwgaW50KiB2YWx1ZSkKIHsKLSAgICAvLyBOZWVkIHRvIGVtdWxhdGUgSU1QTEVNRU5UQVRJ
T05fQ09MT1JfUkVBRF9GT1JNQVQvVFlQRSBmb3IgR0wuICBBbnkgdmFsaWQKLSAgICAvLyBjb21i
aW5hdGlvbiBzaG91bGQgd29yaywgYnV0IEdMX1JHQi9HTF9VTlNJR05FRF9CWVRFIG1pZ2h0IGJl
IHRoZSBtb3N0Ci0gICAgLy8gdXNlZnVsIGZvciBkZXNrdG9wIFdlYkdMIHVzZXJzLgogICAgIC8v
IE5lZWQgdG8gZW11bGF0ZSBNQVhfRlJBR01FTlQvVkVSVEVYX1VOSUZPUk1fVkVDVE9SUyBhbmQg
TUFYX1ZBUllJTkdfVkVDVE9SUwogICAgIC8vIGJlY2F1c2UgZGVza3RvcCBHTCdzIGNvcnJlc3Bv
bmRpbmcgcXVlcmllcyByZXR1cm4gdGhlIG51bWJlciBvZiBjb21wb25lbnRzCiAgICAgLy8gd2hl
cmVhcyBHTEVTMiByZXR1cm4gdGhlIG51bWJlciBvZiB2ZWN0b3JzIChlYWNoIHZlY3RvciBoYXMg
NCBjb21wb25lbnRzKS4KICAgICAvLyBUaGVyZWZvcmUsIHRoZSB2YWx1ZSByZXR1cm5lZCBieSBk
ZXNrdG9wIEdMIG5lZWRzIHRvIGJlIGRpdmlkZWQgYnkgNC4KICAgICBtYWtlQ29udGV4dEN1cnJl
bnQoKTsKICAgICBzd2l0Y2ggKHBuYW1lKSB7Ci0gICAgY2FzZSBJTVBMRU1FTlRBVElPTl9DT0xP
Ul9SRUFEX0ZPUk1BVDoKLSAgICAgICAgKnZhbHVlID0gR0xfUkdCOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIElNUExFTUVOVEFUSU9OX0NPTE9SX1JFQURfVFlQRToKLSAgICAgICAgKnZhbHVl
ID0gR0xfVU5TSUdORURfQllURTsKLSAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNQVhfRlJBR01F
TlRfVU5JRk9STV9WRUNUT1JTOgogICAgICAgICBnbEdldEludGVnZXJ2KEdMX01BWF9GUkFHTUVO
VF9VTklGT1JNX0NPTVBPTkVOVFMsIHZhbHVlKTsKICAgICAgICAgKnZhbHVlIC89IDQ7CkluZGV4
OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCShyZXZpc2lvbiA3MTM2OCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEwLTExLTA0ICBaaGVueWFvIE1vICA8em1vQGdvb2ds
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmVtb3ZlIElNUExFTUVOVEFUSU9OX0NPTE9SX1JFQURfRk9STUFUIGFuZCBUWVBFCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODkzOAorCisgICAgICAg
ICogZmFzdC9jYW52YXMvd2ViZ2wvcmVhZC1waXhlbHMtcGFjay1hbGlnbm1lbnQtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL3JlYWQtcGl4ZWxzLXBhY2stYWxpZ25t
ZW50Lmh0bWw6CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtc3BlY2lmaWMtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL3dlYmdsLXNwZWNpZmljLmh0
bWw6IFRlc3QgdHdvIGVudW1zIGFyZSB1bmRlZmluZWQgaW4gV2ViR0wuCisKIDIwMTAtMTEtMDMg
IFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5u
ZXRoIFJ1c3NlbGwuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9yZWFkLXBp
eGVscy1wYWNrLWFsaWdubWVudC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvd2ViZ2wvcmVhZC1waXhlbHMtcGFjay1hbGlnbm1lbnQtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiA3MTM0NSkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3Jl
YWQtcGl4ZWxzLXBhY2stYWxpZ25tZW50LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MywxMCArMyw2IEBAIFZlcmlmeSByZWFkUGl4ZWxzKCkgd29ya3MgZmluZSB3aXRoIHZhcmkKIE9u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogUEFTUyBnbCA9IGluaXRXZWJHTCgnZXhhbXBsZScs
ICd2c2hhZGVyJywgJ2ZzaGFkZXInLCBbICdwb3MnLCAnY29sb3JJbicgXSwgWyAwLCAwLCAwLCAx
IF0sIDEpIGlzIG5vbi1udWxsLgotQ2hlY2sgc3VwcG9ydGVkIHBpeGVsIGZvcm1hdC90eXBlIGJl
c2lkZXMgUkdCQS9VTlNJR05FRF9CWVRFCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
UiA6IAotUEFTUyBwaXhlbEZvcm1hdCA9PSBnbC5SR0JBICYmIHBpeGVsVHlwZSA9PSBnbC5VTlNJ
R05FRF9CWVRFIGlzIGZhbHNlCiBUZXN0aW5nIGZvcm1hdCA9IFJHQkEgYW5kIHR5cGUgPSBVTlNJ
R05FRF9CWVRFCiBUZXN0aW5nIFBBQ0tfQUxJR05NRU5UID0gMSwgd2lkdGggPSAxLCBoZWlnaHQg
PSAyCiBQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKQEAgLTEx
MiwxMTEgKzEwOCw2IEBAIFBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTEkK
IFRlc3RpbmcgUEFDS19BTElHTk1FTlQgPSA4LCB3aWR0aCA9IC0xLCBoZWlnaHQgPSAtMQogUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCiBQQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9WQUxVRSA6IAotVGVzdGluZyB0aGUgb3RoZXIg
c3VwcG9ydGVkIGZvcm1hdC90eXBlIGNvbWJpbmF0aW9uCi1UZXN0aW5nIFBBQ0tfQUxJR05NRU5U
ID0gMSwgd2lkdGggPSAxLCBoZWlnaHQgPSAyCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19F
UlJPUiA6IAotUEFTUyAyNTUsMTAyLDAsMCBpcyBub24tbnVsbC4KLVBBU1MgcGl4ZWwgaXMgZXhw
ZWN0ZWRDb2xvcgotVGVzdGluZyBQQUNLX0FMSUdOTUVOVCA9IDIsIHdpZHRoID0gMSwgaGVpZ2h0
ID0gMgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgMjU1LDEwMiww
LDAgaXMgbm9uLW51bGwuCi1QQVNTIHBpeGVsIGlzIGV4cGVjdGVkQ29sb3IKLVRlc3RpbmcgUEFD
S19BTElHTk1FTlQgPSA0LCB3aWR0aCA9IDEsIGhlaWdodCA9IDIKLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIDI1NSwxMDIsMCwwIGlzIG5vbi1udWxsLgotUEFTUyBw
aXhlbCBpcyBleHBlY3RlZENvbG9yCi1UZXN0aW5nIFBBQ0tfQUxJR05NRU5UID0gOCwgd2lkdGgg
PSAxLCBoZWlnaHQgPSAyCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJS
T1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFT
UyAyNTUsMTAyLDAsMCBpcyBub24tbnVsbC4KLVBBU1MgcGl4ZWwgaXMgZXhwZWN0ZWRDb2xvcgot
VGVzdGluZyBQQUNLX0FMSUdOTUVOVCA9IDQsIHdpZHRoID0gMiwgaGVpZ2h0ID0gMgotUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgMjU1LDEwMiwwLDAgaXMgbm9uLW51
bGwuCi1QQVNTIHBpeGVsIGlzIGV4cGVjdGVkQ29sb3IKLVRlc3RpbmcgUEFDS19BTElHTk1FTlQg
PSA4LCB3aWR0aCA9IDIsIGhlaWdodCA9IDIKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SIDogCi1QQVNTIDI1NSwxMDIsMCwwIGlzIG5vbi1udWxsLgotUEFTUyBwaXhlbCBpcyBleHBl
Y3RlZENvbG9yCi1UZXN0aW5nIFBBQ0tfQUxJR05NRU5UID0gNCwgd2lkdGggPSAzLCBoZWlnaHQg
PSAyCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyAyNTUsMTAyLDAs
MCBpcyBub24tbnVsbC4KLVBBU1MgcGl4ZWwgaXMgZXhwZWN0ZWRDb2xvcgotVGVzdGluZyBQQUNL
X0FMSUdOTUVOVCA9IDgsIHdpZHRoID0gMywgaGVpZ2h0ID0gMgotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgMjU1LDEwMiwwLDAgaXMgbm9uLW51bGwuCi1QQVNTIHBp
eGVsIGlzIGV4cGVjdGVkQ29sb3IKLVRlc3RpbmcgUEFDS19BTElHTk1FTlQgPSA0LCB3aWR0aCA9
IDQsIGhlaWdodCA9IDIKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
UiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNT
IDI1NSwxMDIsMCwwIGlzIG5vbi1udWxsLgotUEFTUyBwaXhlbCBpcyBleHBlY3RlZENvbG9yCi1U
ZXN0aW5nIFBBQ0tfQUxJR05NRU5UID0gOCwgd2lkdGggPSA0LCBoZWlnaHQgPSAyCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyAyNTUsMTAyLDAsMCBpcyBub24tbnVs
bC4KLVBBU1MgcGl4ZWwgaXMgZXhwZWN0ZWRDb2xvcgotVGVzdGluZyBQQUNLX0FMSUdOTUVOVCA9
IDgsIHdpZHRoID0gNSwgaGVpZ2h0ID0gMQotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJS
T1IgOiAKLVBBU1MgMjU1LDEwMiwwLDAgaXMgbm9uLW51bGwuCi1QQVNTIHBpeGVsIGlzIGV4cGVj
dGVkQ29sb3IKLVRlc3RpbmcgUEFDS19BTElHTk1FTlQgPSA0LCB3aWR0aCA9IDUsIGhlaWdodCA9
IDIKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIDI1NSwxMDIsMCww
IGlzIG5vbi1udWxsLgotUEFTUyBwaXhlbCBpcyBleHBlY3RlZENvbG9yCi1UZXN0aW5nIFBBQ0tf
QUxJR05NRU5UID0gOCwgd2lkdGggPSA1LCBoZWlnaHQgPSAyCi1QQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IAotUEFTUyAyNTUsMTAyLDAsMCBpcyBub24tbnVsbC4KLVBBU1MgcGl4
ZWwgaXMgZXhwZWN0ZWRDb2xvcgotVGVzdGluZyBQQUNLX0FMSUdOTUVOVCA9IDgsIHdpZHRoID0g
NiwgaGVpZ2h0ID0gMgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
IDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1Mg
MjU1LDEwMiwwLDAgaXMgbm9uLW51bGwuCi1QQVNTIHBpeGVsIGlzIGV4cGVjdGVkQ29sb3IKLVRl
c3RpbmcgUEFDS19BTElHTk1FTlQgPSA4LCB3aWR0aCA9IDcsIGhlaWdodCA9IDIKLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIDI1NSwxMDIsMCwwIGlzIG5vbi1udWxs
LgotUEFTUyBwaXhlbCBpcyBleHBlY3RlZENvbG9yCi1UZXN0aW5nIFBBQ0tfQUxJR05NRU5UID0g
OCwgd2lkdGggPSA4LCBoZWlnaHQgPSAyCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
UiA6IAotUEFTUyAyNTUsMTAyLDAsMCBpcyBub24tbnVsbC4KLVBBU1MgcGl4ZWwgaXMgZXhwZWN0
ZWRDb2xvcgotVGVzdGluZyBQQUNLX0FMSUdOTUVOVCA9IDEsIHdpZHRoID0gMCwgaGVpZ2h0ID0g
MAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVRlc3RpbmcgUEFDS19BTElH
Tk1FTlQgPSAyLCB3aWR0aCA9IDAsIGhlaWdodCA9IDAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IE5PX0VSUk9SIDogCi1UZXN0aW5nIFBBQ0tfQUxJR05NRU5UID0gNCwgd2lkdGggPSAwLCBoZWln
aHQgPSAwCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotVGVzdGluZyBQQUNL
X0FMSUdOTUVOVCA9IDgsIHdpZHRoID0gMCwgaGVpZ2h0ID0gMAotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiAKLVRlc3RpbmcgUEFDS19BTElHTk1FTlQgPSAxLCB3aWR0aCA9IC0x
LCBoZWlnaHQgPSAxCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Ig
OiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX1ZBTFVFIDogCi1U
ZXN0aW5nIFBBQ0tfQUxJR05NRU5UID0gMiwgd2lkdGggPSAxLCBoZWlnaHQgPSAtMQotUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9WQUxVRSA6IAotVGVzdGluZyBQQUNLX0FMSUdOTUVO
VCA9IDQsIHdpZHRoID0gMCwgaGVpZ2h0ID0gLTEKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElO
VkFMSURfVkFMVUUgOiAKLVRlc3RpbmcgUEFDS19BTElHTk1FTlQgPSA4LCB3aWR0aCA9IC0xLCBo
ZWlnaHQgPSAtMQotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDog
Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9WQUxVRSA6IAogUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9yZWFkLXBpeGVscy1wYWNrLWFsaWdubWVudC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3JlYWQtcGl4ZWxz
LXBhY2stYWxpZ25tZW50Lmh0bWwJKHJldmlzaW9uIDcxMzQ1KQorKysgTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvd2ViZ2wvcmVhZC1waXhlbHMtcGFjay1hbGlnbm1lbnQuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMzksOCArMzksNiBAQCB2YXIgZ2wgPSBudWxsOwogdmFyIGFycmF5ID0gbnVsbDsK
IHZhciBwaXhlbCA9IFsgMCwgMCwgMCwgMCBdOwogdmFyIGV4cGVjdGVkQ29sb3IgPSBbIDAsIDAs
IDAsIDAgXTsKLXZhciBwaXhlbEZvcm1hdCA9IDA7Ci12YXIgcGl4ZWxUeXBlID0gMDsKIAogZnVu
Y3Rpb24gY2FsY3VsYXRlUGl4ZWxCeXRlcyhmb3JtYXQsIHR5cGUpCiB7CkBAIC0yMDQsMjMgKzIw
MiwxMSBAQCBmdW5jdGlvbiBydW5UZXN0SXRlcmF0aW9uKGZvcm1hdCwgdHlwZSwgCiAgICAgc2hv
dWxkQmUoInBpeGVsIiwgImV4cGVjdGVkQ29sb3IiKTsKIH0KIAotZnVuY3Rpb24gY2hlY2tTdXBw
b3J0ZWRQaXhlbEZvcm1hdEFuZFR5cGUoKQotewotICAgIGRlYnVnKCJDaGVjayBzdXBwb3J0ZWQg
cGl4ZWwgZm9ybWF0L3R5cGUgYmVzaWRlcyBSR0JBL1VOU0lHTkVEX0JZVEUiKTsKLSAgICBnbEVy
cm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAgICBwaXhlbEZvcm1hdCA9IGdsLmdldFBh
cmFtZXRlcihnbC5JTVBMRU1FTlRBVElPTl9DT0xPUl9SRUFEX0ZPUk1BVCk7Ci0gICAgcGl4ZWxU
eXBlID0gZ2wuZ2V0UGFyYW1ldGVyKGdsLklNUExFTUVOVEFUSU9OX0NPTE9SX1JFQURfVFlQRSk7
Ci0gICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0gICAgc2hvdWxkQmVGYWxz
ZSgicGl4ZWxGb3JtYXQgPT0gZ2wuUkdCQSAmJiBwaXhlbFR5cGUgPT0gZ2wuVU5TSUdORURfQllU
RSIpOwotfQotCiBkZXNjcmlwdGlvbignVmVyaWZ5IHJlYWRQaXhlbHMoKSB3b3JrcyBmaW5lIHdp
dGggdmFyaW91cyBQQUNLX0FMSUdOTUVOVCB2YWx1ZXMuJyk7CiAKIHNob3VsZEJlTm9uTnVsbCgi
Z2wgPSBpbml0V2ViR0woJ2V4YW1wbGUnLCAndnNoYWRlcicsICdmc2hhZGVyJywgWyAncG9zJywg
J2NvbG9ySW4nIF0sIFsgMCwgMCwgMCwgMSBdLCAxKSIpOwogZ2wuZGlzYWJsZShnbC5CTEVORCk7
CiAKLWNoZWNrU3VwcG9ydGVkUGl4ZWxGb3JtYXRBbmRUeXBlKCk7Ci0KIGRlYnVnKCJUZXN0aW5n
IGZvcm1hdCA9IFJHQkEgYW5kIHR5cGUgPSBVTlNJR05FRF9CWVRFIik7CiBydW5UZXN0SXRlcmF0
aW9uKGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIDEsIDEsIDIpOwogcnVuVGVzdEl0ZXJhdGlv
bihnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCAyLCAxLCAyKTsKQEAgLTI0NywzMiArMjMzLDYg
QEAgcnVuVGVzdEl0ZXJhdGlvbihnbC5SR0JBLCBnbC5VTlNJR05FRF9CWQogcnVuVGVzdEl0ZXJh
dGlvbihnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCA0LCAwLCAtMSk7CiBydW5UZXN0SXRlcmF0
aW9uKGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIDgsIC0xLCAtMSk7CiAKLWRlYnVnKCJUZXN0
aW5nIHRoZSBvdGhlciBzdXBwb3J0ZWQgZm9ybWF0L3R5cGUgY29tYmluYXRpb24iKTsKLXJ1blRl
c3RJdGVyYXRpb24ocGl4ZWxGb3JtYXQsIHBpeGVsVHlwZSwgMSwgMSwgMik7Ci1ydW5UZXN0SXRl
cmF0aW9uKHBpeGVsRm9ybWF0LCBwaXhlbFR5cGUsIDIsIDEsIDIpOwotcnVuVGVzdEl0ZXJhdGlv
bihwaXhlbEZvcm1hdCwgcGl4ZWxUeXBlLCA0LCAxLCAyKTsKLXJ1blRlc3RJdGVyYXRpb24ocGl4
ZWxGb3JtYXQsIHBpeGVsVHlwZSwgOCwgMSwgMik7Ci1ydW5UZXN0SXRlcmF0aW9uKHBpeGVsRm9y
bWF0LCBwaXhlbFR5cGUsIDQsIDIsIDIpOwotcnVuVGVzdEl0ZXJhdGlvbihwaXhlbEZvcm1hdCwg
cGl4ZWxUeXBlLCA4LCAyLCAyKTsKLXJ1blRlc3RJdGVyYXRpb24ocGl4ZWxGb3JtYXQsIHBpeGVs
VHlwZSwgNCwgMywgMik7Ci1ydW5UZXN0SXRlcmF0aW9uKHBpeGVsRm9ybWF0LCBwaXhlbFR5cGUs
IDgsIDMsIDIpOwotcnVuVGVzdEl0ZXJhdGlvbihwaXhlbEZvcm1hdCwgcGl4ZWxUeXBlLCA0LCA0
LCAyKTsKLXJ1blRlc3RJdGVyYXRpb24ocGl4ZWxGb3JtYXQsIHBpeGVsVHlwZSwgOCwgNCwgMik7
Ci1ydW5UZXN0SXRlcmF0aW9uKHBpeGVsRm9ybWF0LCBwaXhlbFR5cGUsIDgsIDUsIDEpOwotcnVu
VGVzdEl0ZXJhdGlvbihwaXhlbEZvcm1hdCwgcGl4ZWxUeXBlLCA0LCA1LCAyKTsKLXJ1blRlc3RJ
dGVyYXRpb24ocGl4ZWxGb3JtYXQsIHBpeGVsVHlwZSwgOCwgNSwgMik7Ci1ydW5UZXN0SXRlcmF0
aW9uKHBpeGVsRm9ybWF0LCBwaXhlbFR5cGUsIDgsIDYsIDIpOwotcnVuVGVzdEl0ZXJhdGlvbihw
aXhlbEZvcm1hdCwgcGl4ZWxUeXBlLCA4LCA3LCAyKTsKLXJ1blRlc3RJdGVyYXRpb24ocGl4ZWxG
b3JtYXQsIHBpeGVsVHlwZSwgOCwgOCwgMik7Ci1ydW5UZXN0SXRlcmF0aW9uKHBpeGVsRm9ybWF0
LCBwaXhlbFR5cGUsIDEsIDAsIDApOwotcnVuVGVzdEl0ZXJhdGlvbihwaXhlbEZvcm1hdCwgcGl4
ZWxUeXBlLCAyLCAwLCAwKTsKLXJ1blRlc3RJdGVyYXRpb24ocGl4ZWxGb3JtYXQsIHBpeGVsVHlw
ZSwgNCwgMCwgMCk7Ci1ydW5UZXN0SXRlcmF0aW9uKHBpeGVsRm9ybWF0LCBwaXhlbFR5cGUsIDgs
IDAsIDApOwotcnVuVGVzdEl0ZXJhdGlvbihwaXhlbEZvcm1hdCwgcGl4ZWxUeXBlLCAxLCAtMSwg
MSk7Ci1ydW5UZXN0SXRlcmF0aW9uKHBpeGVsRm9ybWF0LCBwaXhlbFR5cGUsIDIsIDEsIC0xKTsK
LXJ1blRlc3RJdGVyYXRpb24ocGl4ZWxGb3JtYXQsIHBpeGVsVHlwZSwgNCwgMCwgLTEpOwotcnVu
VGVzdEl0ZXJhdGlvbihwaXhlbEZvcm1hdCwgcGl4ZWxUeXBlLCA4LCAtMSwgLTEpOwotCiBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1zcGVjaWZpYy1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtc3BlY2lmaWMtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiA3MTM0NSkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3dl
YmdsLXNwZWNpZmljLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsOCBA
QCBQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJCiBQQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOiBhIGRpZmZlcmVudCByZWZl
cmVuY2UgdmFsdWUgZm9yIGZyb250IGFuZCBiYWNrIGZhY2luZyBpcyBpbGxlZ2FsCiBQQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOiBhIGRpZmZlcmVu
dCBtYXNrIHZhbHVlIGZvciBmcm9udCBhbmQgYmFjayBmYWNpbmcgaXMgaWxsZWdhbAogUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9OIDogYSBkaWZmZXJl
bnQgbWFzayB2YWx1ZSBmb3IgZnJvbnQgYW5kIGJhY2sgZmFjaW5nIGlzIGlsbGVnYWwKK1BBU1Mg
dW5kZWZpbmVkIGlzIHVuZGVmaW5lZC4KK1BBU1MgdW5kZWZpbmVkIGlzIHVuZGVmaW5lZC4KIFBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtc3BlY2lmaWMuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1zcGVjaWZpYy5odG1sCShy
ZXZpc2lvbiA3MTM0NSkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3dlYmdsLXNw
ZWNpZmljLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTk4LDYgKzk4LDkgQEAgZ2wuc3RlbmNpbEZ1
bmNTZXBhcmF0ZShnbC5CQUNLLCBnbC5BTFdBWQogZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZB
TElEX09QRVJBVElPTiwKICAgICAiYSBkaWZmZXJlbnQgbWFzayB2YWx1ZSBmb3IgZnJvbnQgYW5k
IGJhY2sgZmFjaW5nIGlzIGlsbGVnYWwiKTsKIAorc2hvdWxkQmVVbmRlZmluZWQoZ2wuSU1QTEVN
RU5UQVRJT05fQ09MT1JfUkVBRF9GT1JNQVQpOworc2hvdWxkQmVVbmRlZmluZWQoZ2wuSU1QTEVN
RU5UQVRJT05fQ09MT1JfUkVBRF9UWVBFKTsKKwogc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
IDwvc2NyaXB0PgogCg==
</data>
<flag name="review"
          id="63372"
          type_id="1"
          status="+"
          setter="kbr"
    />
    <flag name="commit-queue"
          id="63373"
          type_id="3"
          status="-"
          setter="zmo"
    />
          </attachment>
      

    </bug>

</bugzilla>