<?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>127562</bug_id>
          
          <creation_ts>2014-01-24 09:17:26 -0800</creation_ts>
          <short_desc>Subpixel rendering: Make PaintInfo layout unit aware.</short_desc>
          <delta_ts>2014-01-28 00:43:25 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>127524</blocked>
    
    <blocked>127580</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>jonlee</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>971619</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2014-01-24 09:17:26 -0800</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971664</commentid>
    <comment_count>1</comment_count>
      <attachid>222123</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-01-24 11:15:15 -0800</bug_when>
    <thetext>Created attachment 222123
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971709</commentid>
    <comment_count>2</comment_count>
      <attachid>222141</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-01-24 12:51:12 -0800</bug_when>
    <thetext>Created attachment 222141
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971710</commentid>
    <comment_count>3</comment_count>
      <attachid>222141</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-01-24 12:51:38 -0800</bug_when>
    <thetext>Comment on attachment 222141
Patch

EWS testing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971781</commentid>
    <comment_count>4</comment_count>
      <attachid>222141</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-24 15:30:39 -0800</bug_when>
    <thetext>Comment on attachment 222141
Patch

Clearing flags on attachment: 222141

Committed r162732: &lt;http://trac.webkit.org/changeset/162732&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971782</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-24 15:30:41 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972826</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-01-28 00:43:25 -0800</bug_when>
    <thetext>&lt;rdar://problem/15923399&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222123</attachid>
            <date>2014-01-24 11:15:15 -0800</date>
            <delta_ts>2014-01-24 12:51:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127562-20140124111514.patch</filename>
            <type>text/plain</type>
            <size>20093</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyNjE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDJlMzYzZTY4MGVlMDYz
N2NhNTBjZTA5ZjlhMDIyMGQ3NTcxZGRhMS4uZWNhNTJmMzI1Y2ZlYTc0ZDhhNjUzMDhjYzlkNjFm
Yjg1Y2MxNmE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE0LTAxLTI0ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VicGl4ZWwgcmVuZGVyaW5n
OiBNYWtlIFBhaW50SW5mbyBsYXlvdXQgdW5pdCBhd2FyZS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzU2MgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgUGFpbnRJbmZvJ3MgSW50UmVjdCB3
aXRoIExheW91dFJlY3QgdG8gYmUgYWJsZSB0byByZW5kZXIgdG8KKyAgICAgICAgc3VicGl4ZWwg
cG9zaXRpb25zLgorCisgICAgICAgIE5vIGZ1bmN0aW9uYWwgY2hhbmdlcy4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0xheW91dFJlY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUGFp
bnRJbmZvLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWludEluZm86OlBhaW50SW5mbyk6CisgICAg
ICAgIChXZWJDb3JlOjpQYWludEluZm86OmFwcGx5VHJhbnNmb3JtKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnBh
aW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50RmlsbExheWVyRXh0ZW5k
ZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpjb3JuZXJSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxD
b3JuZXJSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OnJlc2l6ZXJDb3JuZXJSZWN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxDb3JuZXJBbmRSZXNpemVyUmVjdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6aG9yaXpvbnRhbFNjcm9sbGJhclN0YXJ0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpkcmF3UGxhdGZvcm1SZXNpemVySW1hZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnBhaW50UmVzaXplcik6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6aGl0VGVzdE92ZXJmbG93Q29udHJvbHMpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpw
YWludENvbnRlbnRzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94OjpwYWludFNjcm9sbGJhcik6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJX
aWRnZXQ6OnBhaW50Q29udGVudHMpOgorICAgICAgICAqIHJlbmRlcmluZy9tYXRobWwvUmVuZGVy
TWF0aE1MT3BlcmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWF0aE1MT3BlcmF0
b3I6OmZpbGxXaXRoRXh0ZW5zaW9uR2x5cGgpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZH
UmVuZGVyaW5nQ29udGV4dC5oOgorCiAyMDE0LTAxLTIzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBGaXggYXV0b21ha2Ug
d2FybmluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0xh
eW91dFJlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0xheW91dFJlY3Qu
aAppbmRleCBkMmY4Y2QxYzA0NTM2YjBlZDI5YzhmOGZiMWVlODJmNjJmZmIzNjNhLi42NmExOWJk
ZjExYmMxNTI3ZjNiNTA3NjcxYzllZDljN2ZkYTVmODI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9MYXlvdXRSZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0UmVjdC5oCkBAIC0zOSw4ICszOSw2IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRmxvYXRSZWN0OwotCiBjbGFzcyBMYXlvdXRSZWN0IHsK
IHB1YmxpYzoKICAgICBMYXlvdXRSZWN0KCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUGFpbnRJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUGFpbnRJ
bmZvLmgKaW5kZXggMTRlOTNhYTI2NTQ0NmM1ZTA0M2Y3YzI5NzMyYjU3MDE4YWNlMDEyOC4uZWM1
NTUxYjkyYTkxMGY0MmY2NzY3M2YyNjI2YWUwNDVmN2Y5NzYyNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1BhaW50SW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9QYWludEluZm8uaApAQCAtNTMsNyArNTMsNyBAQCB0eXBlZGVmIEhhc2hNYXA8T3Zlcmxh
cFRlc3RSZXF1ZXN0Q2xpZW50KiwgSW50UmVjdD4gT3ZlcmxhcFRlc3RSZXF1ZXN0TWFwOwogICog
KHR4fHR5KSBpcyB0aGUgY2FsY3VsYXRlZCBwb3NpdGlvbiBvZiB0aGUgcGFyZW50CiAgKi8KIHN0
cnVjdCBQYWludEluZm8gewotICAgIFBhaW50SW5mbyhHcmFwaGljc0NvbnRleHQqIG5ld0NvbnRl
eHQsIGNvbnN0IEludFJlY3QmIG5ld1JlY3QsIFBhaW50UGhhc2UgbmV3UGhhc2UsIFBhaW50QmVo
YXZpb3IgbmV3UGFpbnRCZWhhdmlvciwKKyAgICBQYWludEluZm8oR3JhcGhpY3NDb250ZXh0KiBu
ZXdDb250ZXh0LCBjb25zdCBMYXlvdXRSZWN0JiBuZXdSZWN0LCBQYWludFBoYXNlIG5ld1BoYXNl
LCBQYWludEJlaGF2aW9yIG5ld1BhaW50QmVoYXZpb3IsCiAgICAgICAgIFJlbmRlck9iamVjdCog
bmV3U3VidHJlZVBhaW50Um9vdCA9IG51bGxwdHIsIFJlbmRlclJlZ2lvbiogcmVnaW9uID0gbnVs
bHB0ciwgTGlzdEhhc2hTZXQ8UmVuZGVySW5saW5lKj4qIG5ld091dGxpbmVPYmplY3RzID0gbnVs
bHB0ciwKICAgICAgICAgT3ZlcmxhcFRlc3RSZXF1ZXN0TWFwKiBvdmVybGFwVGVzdFJlcXVlc3Rz
ID0gbnVsbHB0ciwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogbmV3UGFpbnRDb250YWlu
ZXIgPSBudWxscHRyKQogICAgICAgICA6IGNvbnRleHQobmV3Q29udGV4dCkKQEAgLTk4LDE1ICs5
OCwxNyBAQCBzdHJ1Y3QgUGFpbnRJbmZvIHsKIAogICAgICAgICBjb250ZXh0LT5jb25jYXRDVE0o
bG9jYWxUb0FuY2VzdG9yVHJhbnNmb3JtKTsKIAotICAgICAgICBpZiAocmVjdC5pc0luZmluaXRl
KCkpCisgICAgICAgIGlmIChyZWN0ID09IExheW91dFJlY3Q6OmluZmluaXRlUmVjdCgpKQogICAg
ICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHJlY3QgPSBsb2NhbFRvQW5jZXN0b3JUcmFuc2Zv
cm0uaW52ZXJzZSgpLm1hcFJlY3QocmVjdCk7CisgICAgICAgIEZsb2F0UmVjdCB0cmFuZm9ybWVk
UmVjdChsb2NhbFRvQW5jZXN0b3JUcmFuc2Zvcm0uaW52ZXJzZSgpLm1hcFJlY3QocmVjdCkpOwor
ICAgICAgICByZWN0LnNldExvY2F0aW9uKExheW91dFBvaW50KHRyYW5mb3JtZWRSZWN0LmxvY2F0
aW9uKCkpKTsKKyAgICAgICAgcmVjdC5zZXRTaXplKExheW91dFNpemUodHJhbmZvcm1lZFJlY3Qu
c2l6ZSgpKSk7CiAgICAgfQogI2VuZGlmCiAKICAgICBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQ7
Ci0gICAgSW50UmVjdCByZWN0OworICAgIExheW91dFJlY3QgcmVjdDsKICAgICBQYWludFBoYXNl
IHBoYXNlOwogICAgIFBhaW50QmVoYXZpb3IgcGFpbnRCZWhhdmlvcjsKICAgICBSZW5kZXJPYmpl
Y3QqIHN1YnRyZWVQYWludFJvb3Q7IC8vIHVzZWQgdG8gZHJhdyBqdXN0IG9uZSBlbGVtZW50IGFu
ZCBpdHMgdmlzdWFsIGNoaWxkcmVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmNwcAppbmRleCBhMmYzMTU4ZmI1NWYzOGQwNTIzOTJhMDFkNTE0NWUxNTNmZWVmYzlkLi5hOWFh
NzFjMmU4OTNiMTliOTFiOWNiNGU3MTBiZWFlNDljYTM0MDIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTIyMTgsNyArMjIxOCw3IEBAIHZvaWQgUmVuZGVy
QmxvY2s6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFp
bnRPZmZzZXQpCiAgICAgLy8gei1pbmRleC4gIFdlIHBhaW50IGFmdGVyIHdlIHBhaW50ZWQgdGhl
IGJhY2tncm91bmQvYm9yZGVyLCBzbyB0aGF0IHRoZSBzY3JvbGxiYXJzIHdpbGwKICAgICAvLyBz
aXQgYWJvdmUgdGhlIGJhY2tncm91bmQvYm9yZGVyLgogICAgIGlmIChoYXNPdmVyZmxvd0NsaXAo
KSAmJiBzdHlsZSgpLnZpc2liaWxpdHkoKSA9PSBWSVNJQkxFICYmIChwaGFzZSA9PSBQYWludFBo
YXNlQmxvY2tCYWNrZ3JvdW5kIHx8IHBoYXNlID09IFBhaW50UGhhc2VDaGlsZEJsb2NrQmFja2dy
b3VuZCkgJiYgcGFpbnRJbmZvLnNob3VsZFBhaW50V2l0aGluUm9vdCgqdGhpcykgJiYgIXBhaW50
SW5mby5wYWludFJvb3RCYWNrZ3JvdW5kT25seSgpKQotICAgICAgICBsYXllcigpLT5wYWludE92
ZXJmbG93Q29udHJvbHMocGFpbnRJbmZvLmNvbnRleHQsIHJvdW5kZWRJbnRQb2ludChhZGp1c3Rl
ZFBhaW50T2Zmc2V0KSwgcGFpbnRJbmZvLnJlY3QpOworICAgICAgICBsYXllcigpLT5wYWludE92
ZXJmbG93Q29udHJvbHMocGFpbnRJbmZvLmNvbnRleHQsIHJvdW5kZWRJbnRQb2ludChhZGp1c3Rl
ZFBhaW50T2Zmc2V0KSwgcGl4ZWxTbmFwcGVkSW50UmVjdChwYWludEluZm8ucmVjdCkpOwogfQog
CiB2b2lkIFJlbmRlckJsb2NrOjpwYWludENvbHVtblJ1bGVzKFBhaW50SW5mbyYgcGFpbnRJbmZv
LCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAppbmRleCA1YmE5NTZmYTE2ODNjZGUz
ZDlmYzg4MDkyNWMyOTYwMGRhNzY5YjYxLi4wODc4MDNmYzhjNzFiZWNhNzcyYWQ0Mjg3NmZmMGYy
MWUxNDBiNzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
TW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hN
b2RlbE9iamVjdC5jcHAKQEAgLTcyMCw3ICs3MjAsNyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2Jq
ZWN0OjpwYWludEZpbGxMYXllckV4dGVuZGVkKGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBj
bwogICAgICAgICAvLyBGaXJzdCBmaWd1cmUgb3V0IGhvdyBiaWcgdGhlIG1hc2sgaGFzIHRvIGJl
LiAgSXQgc2hvdWxkIGJlIG5vIGJpZ2dlciB0aGFuIHdoYXQgd2UgbmVlZAogICAgICAgICAvLyB0
byBhY3R1YWxseSByZW5kZXIsIHNvIHdlIHNob3VsZCBpbnRlcnNlY3QgdGhlIGRpcnR5IHJlY3Qg
d2l0aCB0aGUgYm9yZGVyIGJveCBvZiB0aGUgYmFja2dyb3VuZC4KICAgICAgICAgbWFza1JlY3Qg
PSBwaXhlbFNuYXBwZWRJbnRSZWN0KHJlY3QpOwotICAgICAgICBtYXNrUmVjdC5pbnRlcnNlY3Qo
cGFpbnRJbmZvLnJlY3QpOworICAgICAgICBtYXNrUmVjdC5pbnRlcnNlY3QocGl4ZWxTbmFwcGVk
SW50UmVjdChwYWludEluZm8ucmVjdCkpOwogCiAgICAgICAgIC8vIE5vdyBjcmVhdGUgdGhlIG1h
c2suCiAgICAgICAgIG1hc2tJbWFnZSA9IGNvbnRleHQtPmNyZWF0ZUNvbXBhdGlibGVCdWZmZXIo
bWFza1JlY3Quc2l6ZSgpKTsKQEAgLTc3Myw3ICs3NzMsNyBAQCB2b2lkIFJlbmRlckJveE1vZGVs
T2JqZWN0OjpwYWludEZpbGxMYXllckV4dGVuZGVkKGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZv
LCBjbwogICAgICAgICBib29sIGJveFNoYWRvd1Nob3VsZEJlQXBwbGllZFRvQmFja2dyb3VuZCA9
IHRoaXMtPmJveFNoYWRvd1Nob3VsZEJlQXBwbGllZFRvQmFja2dyb3VuZChibGVlZEF2b2lkYW5j
ZSwgYm94KTsKICAgICAgICAgaWYgKGJveFNoYWRvd1Nob3VsZEJlQXBwbGllZFRvQmFja2dyb3Vu
ZCB8fCAhc2hvdWxkUGFpbnRCYWNrZ3JvdW5kSW1hZ2UgfHwgIWJnTGF5ZXItPmhhc09wYXF1ZUlt
YWdlKHRoaXMpIHx8ICFiZ0xheWVyLT5oYXNSZXBlYXRYWSgpKSB7CiAgICAgICAgICAgICBpZiAo
IWJveFNoYWRvd1Nob3VsZEJlQXBwbGllZFRvQmFja2dyb3VuZCkKLSAgICAgICAgICAgICAgICBi
YWNrZ3JvdW5kUmVjdC5pbnRlcnNlY3QocGFpbnRJbmZvLnJlY3QpOworICAgICAgICAgICAgICAg
IGJhY2tncm91bmRSZWN0LmludGVyc2VjdChwaXhlbFNuYXBwZWRJbnRSZWN0KHBhaW50SW5mby5y
ZWN0KSk7CiAKICAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgYW4gYWxwaGEgYW5kIHdlIGFyZSBw
YWludGluZyB0aGUgcm9vdCBlbGVtZW50LCBnbyBhaGVhZCBhbmQgYmxlbmQgd2l0aCB0aGUgYmFz
ZSBiYWNrZ3JvdW5kIGNvbG9yLgogICAgICAgICAgICAgQ29sb3IgYmFzZUNvbG9yOwpAQCAtODA1
LDcgKzgwNSw3IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50RmlsbExheWVyRXh0
ZW5kZWQoY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvCiAgICAgaWYgKHNob3VsZFBhaW50
QmFja2dyb3VuZEltYWdlKSB7CiAgICAgICAgIEJhY2tncm91bmRJbWFnZUdlb21ldHJ5IGdlb21l
dHJ5OwogICAgICAgICBjYWxjdWxhdGVCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRyeShwYWludEluZm8u
cGFpbnRDb250YWluZXIsIGJnTGF5ZXIsIHNjcm9sbGVkUGFpbnRSZWN0LCBnZW9tZXRyeSwgYmFj
a2dyb3VuZE9iamVjdCk7Ci0gICAgICAgIGdlb21ldHJ5LmNsaXAocGFpbnRJbmZvLnJlY3QpOwor
ICAgICAgICBnZW9tZXRyeS5jbGlwKHBpeGVsU25hcHBlZEludFJlY3QocGFpbnRJbmZvLnJlY3Qp
KTsKICAgICAgICAgaWYgKCFnZW9tZXRyeS5kZXN0UmVjdCgpLmlzRW1wdHkoKSkgewogICAgICAg
ICAgICAgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3AgPSBvcCA9PSBDb21wb3NpdGVTb3Vy
Y2VPdmVyID8gYmdMYXllci0+Y29tcG9zaXRlKCkgOiBvcDsKICAgICAgICAgICAgIGF1dG8gY2xp
ZW50Rm9yQmFja2dyb3VuZEltYWdlID0gYmFja2dyb3VuZE9iamVjdCA/IGJhY2tncm91bmRPYmpl
Y3QgOiB0aGlzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXgg
YmFlNmQzOGMxMjQ2YTQyMzkxYjdiY2M3MTZlMTMyZGY1MTRkMDY1NS4uNWZkNDZhYzczODk5NjBk
NDIxNDAwMjBkNzBjZmQyODE0NTkzOTQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwCkBAIC0yNzQyLDcgKzI3NDIsNyBAQCBzdGF0aWMgaW50IGNvcm5lclN0YXJ0
KGNvbnN0IFJlbmRlckxheWVyKiBsYXllciwgaW50IG1pblgsIGludCBtYXhYLCBpbnQgdGhpY2tu
ZQogICAgIHJldHVybiBtYXhYIC0gdGhpY2tuZXNzIC0gbGF5ZXItPnJlbmRlcmVyKCkuc3R5bGUo
KS5ib3JkZXJSaWdodFdpZHRoKCk7CiB9CiAKLXN0YXRpYyBJbnRSZWN0IGNvcm5lclJlY3QoY29u
c3QgUmVuZGVyTGF5ZXIqIGxheWVyLCBjb25zdCBJbnRSZWN0JiBib3VuZHMpCitzdGF0aWMgTGF5
b3V0UmVjdCBjb3JuZXJSZWN0KGNvbnN0IFJlbmRlckxheWVyKiBsYXllciwgY29uc3QgTGF5b3V0
UmVjdCYgYm91bmRzKQogewogICAgIGludCBob3Jpem9udGFsVGhpY2tuZXNzOwogICAgIGludCB2
ZXJ0aWNhbFRoaWNrbmVzczsKQEAgLTI3NjEsNyArMjc2MSw3IEBAIHN0YXRpYyBJbnRSZWN0IGNv
cm5lclJlY3QoY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyLCBjb25zdCBJbnRSZWN0JiBib3VuZHMp
CiAgICAgICAgIGhvcml6b250YWxUaGlja25lc3MgPSBsYXllci0+dmVydGljYWxTY3JvbGxiYXIo
KS0+d2lkdGgoKTsKICAgICAgICAgdmVydGljYWxUaGlja25lc3MgPSBsYXllci0+aG9yaXpvbnRh
bFNjcm9sbGJhcigpLT5oZWlnaHQoKTsKICAgICB9Ci0gICAgcmV0dXJuIEludFJlY3QoY29ybmVy
U3RhcnQobGF5ZXIsIGJvdW5kcy54KCksIGJvdW5kcy5tYXhYKCksIGhvcml6b250YWxUaGlja25l
c3MpLAorICAgIHJldHVybiBMYXlvdXRSZWN0KGNvcm5lclN0YXJ0KGxheWVyLCBib3VuZHMueCgp
LCBib3VuZHMubWF4WCgpLCBob3Jpem9udGFsVGhpY2tuZXNzKSwKICAgICAgICAgYm91bmRzLm1h
eFkoKSAtIHZlcnRpY2FsVGhpY2tuZXNzIC0gbGF5ZXItPnJlbmRlcmVyKCkuc3R5bGUoKS5ib3Jk
ZXJCb3R0b21XaWR0aCgpLAogICAgICAgICBob3Jpem9udGFsVGhpY2tuZXNzLCB2ZXJ0aWNhbFRo
aWNrbmVzcyk7CiB9CkBAIC0yNzc2LDI2ICsyNzc2LDI2IEBAIEludFJlY3QgUmVuZGVyTGF5ZXI6
OnNjcm9sbENvcm5lclJlY3QoKSBjb25zdAogICAgIGJvb2wgaGFzVmVydGljYWxCYXIgPSB2ZXJ0
aWNhbFNjcm9sbGJhcigpOwogICAgIGJvb2wgaGFzUmVzaXplciA9IHJlbmRlcmVyKCkuc3R5bGUo
KS5yZXNpemUoKSAhPSBSRVNJWkVfTk9ORTsKICAgICBpZiAoKGhhc0hvcml6b250YWxCYXIgJiYg
aGFzVmVydGljYWxCYXIpIHx8IChoYXNSZXNpemVyICYmIChoYXNIb3Jpem9udGFsQmFyIHx8IGhh
c1ZlcnRpY2FsQmFyKSkpCi0gICAgICAgIHJldHVybiBjb3JuZXJSZWN0KHRoaXMsIHJlbmRlckJv
eCgpLT5waXhlbFNuYXBwZWRCb3JkZXJCb3hSZWN0KCkpOworICAgICAgICByZXR1cm4gcGl4ZWxT
bmFwcGVkSW50UmVjdChjb3JuZXJSZWN0KHRoaXMsIHJlbmRlckJveCgpLT5ib3JkZXJCb3hSZWN0
KCkpKTsKICAgICByZXR1cm4gSW50UmVjdCgpOwogfQogCi1zdGF0aWMgSW50UmVjdCByZXNpemVy
Q29ybmVyUmVjdChjb25zdCBSZW5kZXJMYXllciogbGF5ZXIsIGNvbnN0IEludFJlY3QmIGJvdW5k
cykKK3N0YXRpYyBMYXlvdXRSZWN0IHJlc2l6ZXJDb3JuZXJSZWN0KGNvbnN0IFJlbmRlckxheWVy
KiBsYXllciwgY29uc3QgTGF5b3V0UmVjdCYgYm91bmRzKQogewogICAgIEFTU0VSVChsYXllci0+
cmVuZGVyZXIoKS5pc0JveCgpKTsKICAgICBpZiAobGF5ZXItPnJlbmRlcmVyKCkuc3R5bGUoKS5y
ZXNpemUoKSA9PSBSRVNJWkVfTk9ORSkKLSAgICAgICAgcmV0dXJuIEludFJlY3QoKTsKKyAgICAg
ICAgcmV0dXJuIExheW91dFJlY3QoKTsKICAgICByZXR1cm4gY29ybmVyUmVjdChsYXllciwgYm91
bmRzKTsKIH0KIAotSW50UmVjdCBSZW5kZXJMYXllcjo6c2Nyb2xsQ29ybmVyQW5kUmVzaXplclJl
Y3QoKSBjb25zdAorTGF5b3V0UmVjdCBSZW5kZXJMYXllcjo6c2Nyb2xsQ29ybmVyQW5kUmVzaXpl
clJlY3QoKSBjb25zdAogewogICAgIFJlbmRlckJveCogYm94ID0gcmVuZGVyQm94KCk7CiAgICAg
aWYgKCFib3gpCiAgICAgICAgIHJldHVybiBJbnRSZWN0KCk7Ci0gICAgSW50UmVjdCBzY3JvbGxD
b3JuZXJBbmRSZXNpemVyID0gc2Nyb2xsQ29ybmVyUmVjdCgpOworICAgIExheW91dFJlY3Qgc2Ny
b2xsQ29ybmVyQW5kUmVzaXplciA9IHNjcm9sbENvcm5lclJlY3QoKTsKICAgICBpZiAoc2Nyb2xs
Q29ybmVyQW5kUmVzaXplci5pc0VtcHR5KCkpCi0gICAgICAgIHNjcm9sbENvcm5lckFuZFJlc2l6
ZXIgPSByZXNpemVyQ29ybmVyUmVjdCh0aGlzLCBib3gtPnBpeGVsU25hcHBlZEJvcmRlckJveFJl
Y3QoKSk7CisgICAgICAgIHNjcm9sbENvcm5lckFuZFJlc2l6ZXIgPSByZXNpemVyQ29ybmVyUmVj
dCh0aGlzLCBib3gtPmJvcmRlckJveFJlY3QoKSk7CiAgICAgcmV0dXJuIHNjcm9sbENvcm5lckFu
ZFJlc2l6ZXI7CiB9CiAKQEAgLTI5MjYsNyArMjkyNiw3IEBAIExheW91dFVuaXQgUmVuZGVyTGF5
ZXI6Omhvcml6b250YWxTY3JvbGxiYXJTdGFydChpbnQgbWluWCkgY29uc3QKICAgICBjb25zdCBS
ZW5kZXJCb3gqIGJveCA9IHJlbmRlckJveCgpOwogICAgIGludCB4ID0gbWluWCArIGJveC0+Ym9y
ZGVyTGVmdCgpOwogICAgIGlmIChyZW5kZXJlcigpLnN0eWxlKCkuc2hvdWxkUGxhY2VCbG9ja0Rp
cmVjdGlvblNjcm9sbGJhck9uTG9naWNhbExlZnQoKSkKLSAgICAgICAgeCArPSBtX3ZCYXIgPyBt
X3ZCYXItPndpZHRoKCkgOiByZXNpemVyQ29ybmVyUmVjdCh0aGlzLCBib3gtPnBpeGVsU25hcHBl
ZEJvcmRlckJveFJlY3QoKSkud2lkdGgoKTsKKyAgICAgICAgeCArPSBtX3ZCYXIgPyBtX3ZCYXIt
PndpZHRoKCkgOiByb3VuZFRvSW50KHJlc2l6ZXJDb3JuZXJSZWN0KHRoaXMsIGJveC0+Ym9yZGVy
Qm94UmVjdCgpKS53aWR0aCgpKTsKICAgICByZXR1cm4geDsKIH0KIApAQCAtMzUwOSw3ICszNTA5
LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRTY3JvbGxDb3JuZXIoR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBJbnRQb2ludCYgcGEKICAgICAgICAgY29udGV4dC0+ZmlsbFJlY3Qo
YWJzUmVjdCwgQ29sb3I6OndoaXRlLCBib3gtPnN0eWxlKCkuY29sb3JTcGFjZSgpKTsKIH0KIAot
dm9pZCBSZW5kZXJMYXllcjo6ZHJhd1BsYXRmb3JtUmVzaXplckltYWdlKEdyYXBoaWNzQ29udGV4
dCogY29udGV4dCwgSW50UmVjdCByZXNpemVyQ29ybmVyUmVjdCkKK3ZvaWQgUmVuZGVyTGF5ZXI6
OmRyYXdQbGF0Zm9ybVJlc2l6ZXJJbWFnZShHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0
IExheW91dFJlY3QmIHJlc2l6ZXJDb3JuZXJSZWN0KQogewogICAgIGZsb2F0IGRldmljZVNjYWxl
RmFjdG9yID0gV2ViQ29yZTo6ZGV2aWNlU2NhbGVGYWN0b3IoJnJlbmRlcmVyKCkuZnJhbWUoKSk7
CiAKQEAgLTM1MzQsMTEgKzM1MzQsMTEgQEAgdm9pZCBSZW5kZXJMYXllcjo6ZHJhd1BsYXRmb3Jt
UmVzaXplckltYWdlKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgSW50UmVjdCByZXMKICAgICAg
ICAgY29udGV4dC0+cmVzdG9yZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIEludFJl
Y3QgaW1hZ2VSZWN0KHJlc2l6ZXJDb3JuZXJSZWN0Lm1heFhNYXhZQ29ybmVyKCkgLSBjb3JuZXJS
ZXNpemVyU2l6ZSwgY29ybmVyUmVzaXplclNpemUpOwotICAgIGNvbnRleHQtPmRyYXdJbWFnZShy
ZXNpemVDb3JuZXJJbWFnZS5nZXQoKSwgcmVuZGVyZXIoKS5zdHlsZSgpLmNvbG9yU3BhY2UoKSwg
aW1hZ2VSZWN0KTsKKyAgICBMYXlvdXRSZWN0IGltYWdlUmVjdChyZXNpemVyQ29ybmVyUmVjdC5t
YXhYTWF4WUNvcm5lcigpIC0gY29ybmVyUmVzaXplclNpemUsIGNvcm5lclJlc2l6ZXJTaXplKTsK
KyAgICBjb250ZXh0LT5kcmF3SW1hZ2UocmVzaXplQ29ybmVySW1hZ2UuZ2V0KCksIHJlbmRlcmVy
KCkuc3R5bGUoKS5jb2xvclNwYWNlKCksIHBpeGVsU25hcHBlZEludFJlY3QoaW1hZ2VSZWN0KSk7
CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50UmVzaXplcihHcmFwaGljc0NvbnRleHQqIGNv
bnRleHQsIGNvbnN0IEludFBvaW50JiBwYWludE9mZnNldCwgY29uc3QgSW50UmVjdCYgZGFtYWdl
UmVjdCkKK3ZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50UmVzaXplcihHcmFwaGljc0NvbnRleHQqIGNv
bnRleHQsIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwgY29uc3QgTGF5b3V0UmVjdCYg
ZGFtYWdlUmVjdCkKIHsKICAgICBpZiAocmVuZGVyZXIoKS5zdHlsZSgpLnJlc2l6ZSgpID09IFJF
U0laRV9OT05FKQogICAgICAgICByZXR1cm47CkBAIC0zNTQ2LDcgKzM1NDYsNyBAQCB2b2lkIFJl
bmRlckxheWVyOjpwYWludFJlc2l6ZXIoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJ
bnRQb2ludCYgcGFpbnRPZgogICAgIFJlbmRlckJveCogYm94ID0gcmVuZGVyQm94KCk7CiAgICAg
QVNTRVJUKGJveCk7CiAKLSAgICBJbnRSZWN0IGFic1JlY3QgPSByZXNpemVyQ29ybmVyUmVjdCh0
aGlzLCBib3gtPnBpeGVsU25hcHBlZEJvcmRlckJveFJlY3QoKSk7CisgICAgTGF5b3V0UmVjdCBh
YnNSZWN0ID0gcmVzaXplckNvcm5lclJlY3QodGhpcywgYm94LT5ib3JkZXJCb3hSZWN0KCkpOwog
ICAgIGFic1JlY3QubW92ZUJ5KHBhaW50T2Zmc2V0KTsKICAgICBpZiAoIWFic1JlY3QuaW50ZXJz
ZWN0cyhkYW1hZ2VSZWN0KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzU2OCwxMiArMzU2OCwxMiBA
QCB2b2lkIFJlbmRlckxheWVyOjpwYWludFJlc2l6ZXIoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0
LCBjb25zdCBJbnRQb2ludCYgcGFpbnRPZgogICAgIGlmICghaGFzT3ZlcmxheVNjcm9sbGJhcnMo
KSAmJiAobV92QmFyIHx8IG1faEJhcikpIHsKICAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVT
YXZlciBzdGF0ZVNhdmVyKCpjb250ZXh0KTsKICAgICAgICAgY29udGV4dC0+Y2xpcChhYnNSZWN0
KTsKLSAgICAgICAgSW50UmVjdCBsYXJnZXJDb3JuZXIgPSBhYnNSZWN0OwotICAgICAgICBsYXJn
ZXJDb3JuZXIuc2V0U2l6ZShJbnRTaXplKGxhcmdlckNvcm5lci53aWR0aCgpICsgMSwgbGFyZ2Vy
Q29ybmVyLmhlaWdodCgpICsgMSkpOworICAgICAgICBMYXlvdXRSZWN0IGxhcmdlckNvcm5lciA9
IGFic1JlY3Q7CisgICAgICAgIGxhcmdlckNvcm5lci5zZXRTaXplKExheW91dFNpemUobGFyZ2Vy
Q29ybmVyLndpZHRoKCkgKyBMYXlvdXRVbml0KDEpLCBsYXJnZXJDb3JuZXIuaGVpZ2h0KCkgKyBM
YXlvdXRVbml0KDEpKSk7CiAgICAgICAgIGNvbnRleHQtPnNldFN0cm9rZUNvbG9yKENvbG9yKG1h
a2VSR0IoMjE3LCAyMTcsIDIxNykpLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKICAgICAgICAgY29u
dGV4dC0+c2V0U3Ryb2tlVGhpY2tuZXNzKDEuMGYpOwogICAgICAgICBjb250ZXh0LT5zZXRGaWxs
Q29sb3IoQ29sb3I6OnRyYW5zcGFyZW50LCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKLSAgICAgICAg
Y29udGV4dC0+ZHJhd1JlY3QobGFyZ2VyQ29ybmVyKTsKKyAgICAgICAgY29udGV4dC0+ZHJhd1Jl
Y3QocGl4ZWxTbmFwcGVkSW50UmVjdChsYXJnZXJDb3JuZXIpKTsKICAgICB9CiB9CiAKQEAgLTM2
MDEsNyArMzYwMSw3IEBAIGJvb2wgUmVuZGVyTGF5ZXI6OmhpdFRlc3RPdmVyZmxvd0NvbnRyb2xz
KEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgY29uc3QgSW50UG9pbnQmCiAgICAgCiAgICAgSW50UmVj
dCByZXNpemVDb250cm9sUmVjdDsKICAgICBpZiAocmVuZGVyZXIoKS5zdHlsZSgpLnJlc2l6ZSgp
ICE9IFJFU0laRV9OT05FKSB7Ci0gICAgICAgIHJlc2l6ZUNvbnRyb2xSZWN0ID0gcmVzaXplckNv
cm5lclJlY3QodGhpcywgYm94LT5waXhlbFNuYXBwZWRCb3JkZXJCb3hSZWN0KCkpOworICAgICAg
ICByZXNpemVDb250cm9sUmVjdCA9IHBpeGVsU25hcHBlZEludFJlY3QocmVzaXplckNvcm5lclJl
Y3QodGhpcywgYm94LT5ib3JkZXJCb3hSZWN0KCkpKTsKICAgICAgICAgaWYgKHJlc2l6ZUNvbnRy
b2xSZWN0LmNvbnRhaW5zKGxvY2FsUG9pbnQpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCBkNjA2ZDlhODM1
YTY2OWRmZTNlZGFlZTgzMGJlNDNiMDhkNWRhYzA2Li5hODJmNDVkODU4OTlhMmIxMzRjZmYyOWU4
YTM0NDgxMDg3NDI4MDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApA
QCAtNDU5LDcgKzQ1OSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcGFpbnRPdmVyZmxvd0NvbnRy
b2xzKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFBvaW50JiwgY29uc3QgSW50UmVjdCYgZGFt
YWdlUmVjdCwgYm9vbCBwYWludGluZ092ZXJsYXlDb250cm9scyA9IGZhbHNlKTsKICAgICB2b2lk
IHBhaW50U2Nyb2xsQ29ybmVyKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFBvaW50JiwgY29u
c3QgSW50UmVjdCYgZGFtYWdlUmVjdCk7Ci0gICAgdm9pZCBwYWludFJlc2l6ZXIoR3JhcGhpY3ND
b250ZXh0KiwgY29uc3QgSW50UG9pbnQmLCBjb25zdCBJbnRSZWN0JiBkYW1hZ2VSZWN0KTsKKyAg
ICB2b2lkIHBhaW50UmVzaXplcihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBMYXlvdXRQb2ludCYs
IGNvbnN0IExheW91dFJlY3QmIGRhbWFnZVJlY3QpOwogCiAgICAgdm9pZCB1cGRhdGVTY3JvbGxJ
bmZvQWZ0ZXJMYXlvdXQoKTsKIApAQCAtMTA4NCw3ICsxMDg0LDcgQEAgcHJpdmF0ZToKICNlbmRp
ZgogCiAgICAgLy8gUmVjdGFuZ2xlIGVuY29tcGFzc2luZyB0aGUgc2Nyb2xsIGNvcm5lciBhbmQg
cmVzaXplciByZWN0LgotICAgIEludFJlY3Qgc2Nyb2xsQ29ybmVyQW5kUmVzaXplclJlY3QoKSBj
b25zdDsKKyAgICBMYXlvdXRSZWN0IHNjcm9sbENvcm5lckFuZFJlc2l6ZXJSZWN0KCkgY29uc3Q7
CiAKICAgICAvLyBOT1RFOiBUaGlzIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBieSB0aGUgb3ZlcnJp
ZGVuIHNldFNjcm9sbE9mZnNldCBmcm9tIFNjcm9sbGFibGVBcmVhLgogICAgIHZvaWQgc2Nyb2xs
VG8oaW50LCBpbnQpOwpAQCAtMTEzNiw3ICsxMTM2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVw
ZGF0ZVNjcm9sbENvcm5lclN0eWxlKCk7CiAgICAgdm9pZCB1cGRhdGVSZXNpemVyU3R5bGUoKTsK
IAotICAgIHZvaWQgZHJhd1BsYXRmb3JtUmVzaXplckltYWdlKEdyYXBoaWNzQ29udGV4dCosIElu
dFJlY3QgcmVzaXplckNvcm5lclJlY3QpOworICAgIHZvaWQgZHJhd1BsYXRmb3JtUmVzaXplcklt
YWdlKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91dFJlY3QmIHJlc2l6ZXJDb3JuZXJSZWN0
KTsKIAogICAgIHZvaWQgdXBkYXRlUGFnaW5hdGlvbigpOwogICAgIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCAzZmFjMjc1YWNmNTJk
MWYyOWYwMmMzZWI1ODZlNDJiMmY1YjEyMGFmLi44OTkxNGQ0OTFjZmNjN2U3ODg1ZDI0NGMzOTMw
YTMzZTdlNzMyYzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmNwcApAQCAtMjI2NCwxMiArMjI2NCwxMiBAQCB2b2lkIFJlbmRlckxheWVyQmFj
a2luZzo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBH
cmFwaAogICAgIH0gZWxzZSBpZiAoZ3JhcGhpY3NMYXllciA9PSBsYXllckZvclZlcnRpY2FsU2Ny
b2xsYmFyKCkpIHsKICAgICAgICAgcGFpbnRTY3JvbGxiYXIobV9vd25pbmdMYXllci52ZXJ0aWNh
bFNjcm9sbGJhcigpLCBjb250ZXh0LCBjbGlwKTsKICAgICB9IGVsc2UgaWYgKGdyYXBoaWNzTGF5
ZXIgPT0gbGF5ZXJGb3JTY3JvbGxDb3JuZXIoKSkgewotICAgICAgICBjb25zdCBJbnRSZWN0JiBz
Y3JvbGxDb3JuZXJBbmRSZXNpemVyID0gbV9vd25pbmdMYXllci5zY3JvbGxDb3JuZXJBbmRSZXNp
emVyUmVjdCgpOworICAgICAgICBjb25zdCBMYXlvdXRSZWN0JiBzY3JvbGxDb3JuZXJBbmRSZXNp
emVyID0gbV9vd25pbmdMYXllci5zY3JvbGxDb3JuZXJBbmRSZXNpemVyUmVjdCgpOwogICAgICAg
ICBjb250ZXh0LnNhdmUoKTsKICAgICAgICAgY29udGV4dC50cmFuc2xhdGUoLXNjcm9sbENvcm5l
ckFuZFJlc2l6ZXIueCgpLCAtc2Nyb2xsQ29ybmVyQW5kUmVzaXplci55KCkpOwotICAgICAgICBJ
bnRSZWN0IHRyYW5zZm9ybWVkQ2xpcCA9IGNsaXA7CisgICAgICAgIExheW91dFJlY3QgdHJhbnNm
b3JtZWRDbGlwID0gY2xpcDsKICAgICAgICAgdHJhbnNmb3JtZWRDbGlwLm1vdmVCeShzY3JvbGxD
b3JuZXJBbmRSZXNpemVyLmxvY2F0aW9uKCkpOwotICAgICAgICBtX293bmluZ0xheWVyLnBhaW50
U2Nyb2xsQ29ybmVyKCZjb250ZXh0LCBJbnRQb2ludCgpLCB0cmFuc2Zvcm1lZENsaXApOworICAg
ICAgICBtX293bmluZ0xheWVyLnBhaW50U2Nyb2xsQ29ybmVyKCZjb250ZXh0LCBJbnRQb2ludCgp
LCBwaXhlbFNuYXBwZWRJbnRSZWN0KHRyYW5zZm9ybWVkQ2xpcCkpOwogICAgICAgICBtX293bmlu
Z0xheWVyLnBhaW50UmVzaXplcigmY29udGV4dCwgSW50UG9pbnQoKSwgdHJhbnNmb3JtZWRDbGlw
KTsKICAgICAgICAgY29udGV4dC5yZXN0b3JlKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCmluZGV4IGFlOGM5MzYwOTE2YzFjYmI3OWJmNzY5NmQ3
NGEwZWZiODY2OTQ1NTQuLjQxMDA3ODI1NzM4Y2IwMjYwNjVmZDk3YjM3OTY3OTEwZmViNThjYWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKQEAgLTM1MCw3
ICszNTAsNyBAQCB2b2lkIFJlbmRlckxpc3RCb3g6OnBhaW50U2Nyb2xsYmFyKFBhaW50SW5mbyYg
cGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbgogICAgICAgICAgICAgbV92QmFyLT53
aWR0aCgpLAogICAgICAgICAgICAgaGVpZ2h0KCkgLSAoYm9yZGVyVG9wKCkgKyBib3JkZXJCb3R0
b20oKSkpOwogICAgICAgICBtX3ZCYXItPnNldEZyYW1lUmVjdChzY3JvbGxSZWN0KTsKLSAgICAg
ICAgbV92QmFyLT5wYWludChwYWludEluZm8uY29udGV4dCwgcGFpbnRJbmZvLnJlY3QpOworICAg
ICAgICBtX3ZCYXItPnBhaW50KHBhaW50SW5mby5jb250ZXh0LCBwaXhlbFNuYXBwZWRJbnRSZWN0
KHBhaW50SW5mby5yZWN0KSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJXaWRnZXQuY3BwCmluZGV4IDFhZmQ5MTZiYzU4NThmMWUzYTBlZWMzNjFlMmNiNGZmMzRk
ZmFhNWEuLmVmODA0YjJiZTZjMzA1ZTY5MjBmMGM2ZTUyNWZjMmVmZGIyZDMyZTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCkBAIC0yMjcsMTYgKzIyNywxNiBA
QCB2b2lkIFJlbmRlcldpZGdldDo6cGFpbnRDb250ZW50cyhQYWludEluZm8mIHBhaW50SW5mbywg
Y29uc3QgTGF5b3V0UG9pbnQmIHBhaW50TwogICAgIEludFBvaW50IHdpZGdldExvY2F0aW9uID0g
bV93aWRnZXQtPmZyYW1lUmVjdCgpLmxvY2F0aW9uKCk7CiAgICAgSW50UG9pbnQgcGFpbnRMb2Nh
dGlvbihyb3VuZFRvSW50KGFkanVzdGVkUGFpbnRPZmZzZXQueCgpICsgYm9yZGVyTGVmdCgpICsg
cGFkZGluZ0xlZnQoKSksCiAgICAgICAgIHJvdW5kVG9JbnQoYWRqdXN0ZWRQYWludE9mZnNldC55
KCkgKyBib3JkZXJUb3AoKSArIHBhZGRpbmdUb3AoKSkpOwotICAgIEludFJlY3QgcGFpbnRSZWN0
ID0gcGFpbnRJbmZvLnJlY3Q7CisgICAgTGF5b3V0UmVjdCBwYWludFJlY3QgPSBwYWludEluZm8u
cmVjdDsKIAotICAgIEludFNpemUgd2lkZ2V0UGFpbnRPZmZzZXQgPSBwYWludExvY2F0aW9uIC0g
d2lkZ2V0TG9jYXRpb247CisgICAgTGF5b3V0U2l6ZSB3aWRnZXRQYWludE9mZnNldCA9IHBhaW50
TG9jYXRpb24gLSB3aWRnZXRMb2NhdGlvbjsKICAgICAvLyBXaGVuIHBhaW50aW5nIHdpZGdldHMg
aW50byBjb21wb3NpdGluZyBsYXllcnMsIHR4IGFuZCB0eSBhcmUgcmVsYXRpdmUgdG8gdGhlIGVu
Y2xvc2luZyBjb21wb3NpdGluZyBsYXllciwKICAgICAvLyBub3QgdGhlIHJvb3QuIEluIHRoaXMg
Y2FzZSwgc2hpZnQgdGhlIENUTSBhbmQgYWRqdXN0IHRoZSBwYWludFJlY3QgdG8gYmUgcm9vdC1y
ZWxhdGl2ZSB0byBmaXggcGx1Zy1pbiBkcmF3aW5nLgogICAgIGlmICghd2lkZ2V0UGFpbnRPZmZz
ZXQuaXNaZXJvKCkpIHsKICAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQtPnRyYW5zbGF0ZSh3aWRn
ZXRQYWludE9mZnNldCk7CiAgICAgICAgIHBhaW50UmVjdC5tb3ZlKC13aWRnZXRQYWludE9mZnNl
dCk7CiAgICAgfQotICAgIG1fd2lkZ2V0LT5wYWludChwYWludEluZm8uY29udGV4dCwgcGFpbnRS
ZWN0KTsKKyAgICBtX3dpZGdldC0+cGFpbnQocGFpbnRJbmZvLmNvbnRleHQsIHBpeGVsU25hcHBl
ZEludFJlY3QocGFpbnRSZWN0KSk7CiAKICAgICBpZiAoIXdpZGdldFBhaW50T2Zmc2V0LmlzWmVy
bygpKQogICAgICAgICBwYWludEluZm8uY29udGV4dC0+dHJhbnNsYXRlKC13aWRnZXRQYWludE9m
ZnNldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRl
ck1hdGhNTE9wZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVu
ZGVyTWF0aE1MT3BlcmF0b3IuY3BwCmluZGV4IDE3NDRmMjI4M2M1MTNlNjgxOThjNzBhMjY5Mjhi
Y2Y4NzNjZDJlOWEuLjRmZTkzYTU4ZGJlYjAxNDQ3ODg0ODExYTU0Y2VmNzUxNjk1ZmE3M2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3Bl
cmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MT3BlcmF0b3IuY3BwCkBAIC0zMjksNyArMzI5LDcgQEAgdm9pZCBSZW5kZXJNYXRoTUxPcGVy
YXRvcjo6ZmlsbFdpdGhFeHRlbnNpb25HbHlwaChQYWludEluZm8mIGluZm8sIGNvbnN0IExheW91
dFAKIAogICAgIC8vIENsaXBwaW5nIHRoZSBleHRlbmRlciByZWdpb24gaGVyZSBhbGxvd3MgdXMg
dG8gZHJhdyB0aGUgYm90dG9tIGV4dGVuZGVyIGdseXBoIGludG8gdGhlCiAgICAgLy8gcmVnaW9u
cyBvZiB0aGUgYm90dG9tIGdseXBoIHdpdGhvdXQgd29ycnlpbmcgYWJvdXQgb3ZlcmRyYXcgKGhh
aXJ5IHBpeGVscykgYW5kIHNpbXBsaWZpZXMgbGF0ZXIgY2xpcHBpbmcuCi0gICAgSW50UmVjdCBj
bGlwQm91bmRzID0gaW5mby5yZWN0OworICAgIExheW91dFJlY3QgY2xpcEJvdW5kcyA9IGluZm8u
cmVjdDsKICAgICBjbGlwQm91bmRzLnNoaWZ0WUVkZ2VUbyhmcm9tLnkoKSk7CiAgICAgY2xpcEJv
dW5kcy5zaGlmdE1heFlFZGdlVG8odG8ueSgpKTsKICAgICBpbmZvLmNvbnRleHQtPmNsaXAoY2xp
cEJvdW5kcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jl
bmRlcmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVy
aW5nQ29udGV4dC5oCmluZGV4IGY2ZDhjZjdiN2M2ZjFmN2IwZTgwYzBkYzg4MmNkNmY3MWIzMGJk
MTMuLjNiZjYwNGNjMmZiZWVkYTI4N2FhYzExMWZmYWIyNmNlYTg5YmQ2MGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5oCkBAIC0x
MTUsNyArMTE1LDcgQEAgcHJpdmF0ZToKICAgICBSZW5kZXJFbGVtZW50KiBtX3JlbmRlcmVyOwog
ICAgIFBhaW50SW5mbyogbV9wYWludEluZm87CiAgICAgR3JhcGhpY3NDb250ZXh0KiBtX3NhdmVk
Q29udGV4dDsKLSAgICBJbnRSZWN0IG1fc2F2ZWRQYWludFJlY3Q7CisgICAgTGF5b3V0UmVjdCBt
X3NhdmVkUGFpbnRSZWN0OwogI2lmIEVOQUJMRShGSUxURVJTKQogICAgIFJlbmRlclNWR1Jlc291
cmNlRmlsdGVyKiBtX2ZpbHRlcjsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222141</attachid>
            <date>2014-01-24 12:51:12 -0800</date>
            <delta_ts>2014-01-24 15:30:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127562-20140124125111.patch</filename>
            <type>text/plain</type>
            <size>20699</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyNjE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDJlMzYzZTY4MGVlMDYz
N2NhNTBjZTA5ZjlhMDIyMGQ3NTcxZGRhMS4uMGRkOWIwMDg4ZTIyZTNjOGFkMjAyMzRjNGM2ZGE3
ODU2N2VjZjVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE0LTAxLTI0ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VicGl4ZWwgcmVuZGVyaW5n
OiBNYWtlIFBhaW50SW5mbyBsYXlvdXQgdW5pdCBhd2FyZS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzU2MgorCisgICAgICAgIFJldmlld2VkIGJ5
IFNpbW9uIEZyYXNlci4KKworICAgICAgICBSZXBsYWNlIFBhaW50SW5mbydzIEludFJlY3Qgd2l0
aCBMYXlvdXRSZWN0IHRvIGJlIGFibGUgdG8gcmVuZGVyIHRvCisgICAgICAgIHN1YnBpeGVsIHBv
c2l0aW9ucy4KKworICAgICAgICBObyBmdW5jdGlvbmFsIGNoYW5nZXMuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9MYXlvdXRSZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1BhaW50
SW5mby5oOgorICAgICAgICAoV2ViQ29yZTo6UGFpbnRJbmZvOjpQYWludEluZm8pOgorICAgICAg
ICAoV2ViQ29yZTo6UGFpbnRJbmZvOjphcHBseVRyYW5zZm9ybSk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwYWlu
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxMYXllckV4dGVuZGVk
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y29ybmVyUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsQ29y
bmVyUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpyZXNpemVyQ29ybmVyUmVjdCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsQ29ybmVyQW5kUmVzaXplclJlY3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6Omhvcml6b250YWxTY3JvbGxiYXJTdGFydCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6ZHJhd1BsYXRmb3JtUmVzaXplckltYWdlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpwYWludFJlc2l6ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmhpdFRlc3RPdmVyZmxvd0NvbnRyb2xzKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6cGFp
bnRDb250ZW50cyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6cGFpbnRTY3JvbGxiYXIpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyV2lk
Z2V0OjpwYWludENvbnRlbnRzKToKKyAgICAgICAgKiByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1h
dGhNTE9wZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hdGhNTE9wZXJhdG9y
OjpmaWxsV2l0aEV4dGVuc2lvbkdseXBoKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1Jl
bmRlcmluZ0NvbnRleHQuaDoKKwogMjAxNC0wMS0yMyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxj
Z2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gRml4IGF1dG9tYWtlIHdh
cm5pbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYXlvdXRVbml0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYXlvdXRVbml0LmgKaW5kZXggZTNlMWUxZDc5NzU3
YzcyYjU3MjdlOWFmMzM0YjFjZWMzODEwZTM4NS4uZDRjODdjY2QyY2VhOTQ3Nzg2YWVlM2ZiMjI1
ZGVhYzBiNzdhMGY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGF5b3V0
VW5pdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xheW91dFVuaXQuaApAQCAtMTE4
LDYgKzExOCwxMSBAQCBwdWJsaWM6CiAgICAgTGF5b3V0VW5pdChkb3VibGUgdmFsdWUpIHsgUkVQ
T1JUX09WRVJGTE9XKGlzSW5Cb3VuZHModmFsdWUpKTsgbV92YWx1ZSA9IGNsYW1wVG88aW50Pih2
YWx1ZSk7IH0KICNlbmRpZgogCisgICAgc3RhdGljIExheW91dFVuaXQgZnJvbVBpeGVsKGludCB2
YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBMYXlvdXRVbml0KHZhbHVlKTsKKyAgICB9CisK
ICAgICBzdGF0aWMgTGF5b3V0VW5pdCBmcm9tRmxvYXRDZWlsKGZsb2F0IHZhbHVlKQogICAgIHsK
ICAgICAgICAgTGF5b3V0VW5pdCB2OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTGF5b3V0UmVjdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTGF5b3V0UmVjdC5oCmluZGV4IGQyZjhjZDFjMDQ1MzZiMGVkMjljOGY4ZmIxZWU4MmY2MmZm
YjM2M2EuLjY2YTE5YmRmMTFiYzE1MjdmM2I1MDc2NzFjOWVkOWM3ZmRhNWY4MjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0xheW91dFJlY3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9MYXlvdXRSZWN0LmgKQEAgLTM5LDggKzM5
LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBGbG9hdFJlY3Q7Ci0KIGNsYXNz
IExheW91dFJlY3QgewogcHVibGljOgogICAgIExheW91dFJlY3QoKSB7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9QYWludEluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9QYWludEluZm8uaAppbmRleCAxNGU5M2FhMjY1NDQ2YzVlMDQzZjdjMjk3MzJiNTcw
MThhY2UwMTI4Li5lYzU1NTFiOTJhOTEwZjQyZjY3NjczZjI2MjZhZTA0NWY3Zjk3NjI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUGFpbnRJbmZvLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1BhaW50SW5mby5oCkBAIC01Myw3ICs1Myw3IEBAIHR5cGVkZWYg
SGFzaE1hcDxPdmVybGFwVGVzdFJlcXVlc3RDbGllbnQqLCBJbnRSZWN0PiBPdmVybGFwVGVzdFJl
cXVlc3RNYXA7CiAgKiAodHh8dHkpIGlzIHRoZSBjYWxjdWxhdGVkIHBvc2l0aW9uIG9mIHRoZSBw
YXJlbnQKICAqLwogc3RydWN0IFBhaW50SW5mbyB7Ci0gICAgUGFpbnRJbmZvKEdyYXBoaWNzQ29u
dGV4dCogbmV3Q29udGV4dCwgY29uc3QgSW50UmVjdCYgbmV3UmVjdCwgUGFpbnRQaGFzZSBuZXdQ
aGFzZSwgUGFpbnRCZWhhdmlvciBuZXdQYWludEJlaGF2aW9yLAorICAgIFBhaW50SW5mbyhHcmFw
aGljc0NvbnRleHQqIG5ld0NvbnRleHQsIGNvbnN0IExheW91dFJlY3QmIG5ld1JlY3QsIFBhaW50
UGhhc2UgbmV3UGhhc2UsIFBhaW50QmVoYXZpb3IgbmV3UGFpbnRCZWhhdmlvciwKICAgICAgICAg
UmVuZGVyT2JqZWN0KiBuZXdTdWJ0cmVlUGFpbnRSb290ID0gbnVsbHB0ciwgUmVuZGVyUmVnaW9u
KiByZWdpb24gPSBudWxscHRyLCBMaXN0SGFzaFNldDxSZW5kZXJJbmxpbmUqPiogbmV3T3V0bGlu
ZU9iamVjdHMgPSBudWxscHRyLAogICAgICAgICBPdmVybGFwVGVzdFJlcXVlc3RNYXAqIG92ZXJs
YXBUZXN0UmVxdWVzdHMgPSBudWxscHRyLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBu
ZXdQYWludENvbnRhaW5lciA9IG51bGxwdHIpCiAgICAgICAgIDogY29udGV4dChuZXdDb250ZXh0
KQpAQCAtOTgsMTUgKzk4LDE3IEBAIHN0cnVjdCBQYWludEluZm8gewogCiAgICAgICAgIGNvbnRl
eHQtPmNvbmNhdENUTShsb2NhbFRvQW5jZXN0b3JUcmFuc2Zvcm0pOwogCi0gICAgICAgIGlmIChy
ZWN0LmlzSW5maW5pdGUoKSkKKyAgICAgICAgaWYgKHJlY3QgPT0gTGF5b3V0UmVjdDo6aW5maW5p
dGVSZWN0KCkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgcmVjdCA9IGxvY2FsVG9B
bmNlc3RvclRyYW5zZm9ybS5pbnZlcnNlKCkubWFwUmVjdChyZWN0KTsKKyAgICAgICAgRmxvYXRS
ZWN0IHRyYW5mb3JtZWRSZWN0KGxvY2FsVG9BbmNlc3RvclRyYW5zZm9ybS5pbnZlcnNlKCkubWFw
UmVjdChyZWN0KSk7CisgICAgICAgIHJlY3Quc2V0TG9jYXRpb24oTGF5b3V0UG9pbnQodHJhbmZv
cm1lZFJlY3QubG9jYXRpb24oKSkpOworICAgICAgICByZWN0LnNldFNpemUoTGF5b3V0U2l6ZSh0
cmFuZm9ybWVkUmVjdC5zaXplKCkpKTsKICAgICB9CiAjZW5kaWYKIAogICAgIEdyYXBoaWNzQ29u
dGV4dCogY29udGV4dDsKLSAgICBJbnRSZWN0IHJlY3Q7CisgICAgTGF5b3V0UmVjdCByZWN0Owog
ICAgIFBhaW50UGhhc2UgcGhhc2U7CiAgICAgUGFpbnRCZWhhdmlvciBwYWludEJlaGF2aW9yOwog
ICAgIFJlbmRlck9iamVjdCogc3VidHJlZVBhaW50Um9vdDsgLy8gdXNlZCB0byBkcmF3IGp1c3Qg
b25lIGVsZW1lbnQgYW5kIGl0cyB2aXN1YWwgY2hpbGRyZW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IGEyZjMxNThmYjU1ZjM4ZDA1MjM5MmEwMWQ1MTQ1ZTE1
M2ZlZWZjOWQuLmE5YWE3MWMyZTg5M2IxOWI5MWI5Y2I0ZTcxMGJlYWU0OWNhMzQwMjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMjIxOCw3ICsyMjE4LDcg
QEAgdm9pZCBSZW5kZXJCbG9jazo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExh
eW91dFBvaW50JiBwYWludE9mZnNldCkKICAgICAvLyB6LWluZGV4LiAgV2UgcGFpbnQgYWZ0ZXIg
d2UgcGFpbnRlZCB0aGUgYmFja2dyb3VuZC9ib3JkZXIsIHNvIHRoYXQgdGhlIHNjcm9sbGJhcnMg
d2lsbAogICAgIC8vIHNpdCBhYm92ZSB0aGUgYmFja2dyb3VuZC9ib3JkZXIuCiAgICAgaWYgKGhh
c092ZXJmbG93Q2xpcCgpICYmIHN0eWxlKCkudmlzaWJpbGl0eSgpID09IFZJU0lCTEUgJiYgKHBo
YXNlID09IFBhaW50UGhhc2VCbG9ja0JhY2tncm91bmQgfHwgcGhhc2UgPT0gUGFpbnRQaGFzZUNo
aWxkQmxvY2tCYWNrZ3JvdW5kKSAmJiBwYWludEluZm8uc2hvdWxkUGFpbnRXaXRoaW5Sb290KCp0
aGlzKSAmJiAhcGFpbnRJbmZvLnBhaW50Um9vdEJhY2tncm91bmRPbmx5KCkpCi0gICAgICAgIGxh
eWVyKCktPnBhaW50T3ZlcmZsb3dDb250cm9scyhwYWludEluZm8uY29udGV4dCwgcm91bmRlZElu
dFBvaW50KGFkanVzdGVkUGFpbnRPZmZzZXQpLCBwYWludEluZm8ucmVjdCk7CisgICAgICAgIGxh
eWVyKCktPnBhaW50T3ZlcmZsb3dDb250cm9scyhwYWludEluZm8uY29udGV4dCwgcm91bmRlZElu
dFBvaW50KGFkanVzdGVkUGFpbnRPZmZzZXQpLCBwaXhlbFNuYXBwZWRJbnRSZWN0KHBhaW50SW5m
by5yZWN0KSk7CiB9CiAKIHZvaWQgUmVuZGVyQmxvY2s6OnBhaW50Q29sdW1uUnVsZXMoUGFpbnRJ
bmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCmluZGV4IDVi
YTk1NmZhMTY4M2NkZTNkOWZjODgwOTI1YzI5NjAwZGE3NjliNjEuLjA4NzgwM2ZjOGM3MWJlY2E3
NzJhZDQyODc2ZmYwZjIxZTE0MGI3NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcApAQCAtNzIwLDcgKzcyMCw3IEBAIHZvaWQgUmVu
ZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50RmlsbExheWVyRXh0ZW5kZWQoY29uc3QgUGFpbnRJbmZv
JiBwYWludEluZm8sIGNvCiAgICAgICAgIC8vIEZpcnN0IGZpZ3VyZSBvdXQgaG93IGJpZyB0aGUg
bWFzayBoYXMgdG8gYmUuICBJdCBzaG91bGQgYmUgbm8gYmlnZ2VyIHRoYW4gd2hhdCB3ZSBuZWVk
CiAgICAgICAgIC8vIHRvIGFjdHVhbGx5IHJlbmRlciwgc28gd2Ugc2hvdWxkIGludGVyc2VjdCB0
aGUgZGlydHkgcmVjdCB3aXRoIHRoZSBib3JkZXIgYm94IG9mIHRoZSBiYWNrZ3JvdW5kLgogICAg
ICAgICBtYXNrUmVjdCA9IHBpeGVsU25hcHBlZEludFJlY3QocmVjdCk7Ci0gICAgICAgIG1hc2tS
ZWN0LmludGVyc2VjdChwYWludEluZm8ucmVjdCk7CisgICAgICAgIG1hc2tSZWN0LmludGVyc2Vj
dChwaXhlbFNuYXBwZWRJbnRSZWN0KHBhaW50SW5mby5yZWN0KSk7CiAKICAgICAgICAgLy8gTm93
IGNyZWF0ZSB0aGUgbWFzay4KICAgICAgICAgbWFza0ltYWdlID0gY29udGV4dC0+Y3JlYXRlQ29t
cGF0aWJsZUJ1ZmZlcihtYXNrUmVjdC5zaXplKCkpOwpAQCAtNzczLDcgKzc3Myw3IEBAIHZvaWQg
UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50RmlsbExheWVyRXh0ZW5kZWQoY29uc3QgUGFpbnRJ
bmZvJiBwYWludEluZm8sIGNvCiAgICAgICAgIGJvb2wgYm94U2hhZG93U2hvdWxkQmVBcHBsaWVk
VG9CYWNrZ3JvdW5kID0gdGhpcy0+Ym94U2hhZG93U2hvdWxkQmVBcHBsaWVkVG9CYWNrZ3JvdW5k
KGJsZWVkQXZvaWRhbmNlLCBib3gpOwogICAgICAgICBpZiAoYm94U2hhZG93U2hvdWxkQmVBcHBs
aWVkVG9CYWNrZ3JvdW5kIHx8ICFzaG91bGRQYWludEJhY2tncm91bmRJbWFnZSB8fCAhYmdMYXll
ci0+aGFzT3BhcXVlSW1hZ2UodGhpcykgfHwgIWJnTGF5ZXItPmhhc1JlcGVhdFhZKCkpIHsKICAg
ICAgICAgICAgIGlmICghYm94U2hhZG93U2hvdWxkQmVBcHBsaWVkVG9CYWNrZ3JvdW5kKQotICAg
ICAgICAgICAgICAgIGJhY2tncm91bmRSZWN0LmludGVyc2VjdChwYWludEluZm8ucmVjdCk7Cisg
ICAgICAgICAgICAgICAgYmFja2dyb3VuZFJlY3QuaW50ZXJzZWN0KHBpeGVsU25hcHBlZEludFJl
Y3QocGFpbnRJbmZvLnJlY3QpKTsKIAogICAgICAgICAgICAgLy8gSWYgd2UgaGF2ZSBhbiBhbHBo
YSBhbmQgd2UgYXJlIHBhaW50aW5nIHRoZSByb290IGVsZW1lbnQsIGdvIGFoZWFkIGFuZCBibGVu
ZCB3aXRoIHRoZSBiYXNlIGJhY2tncm91bmQgY29sb3IuCiAgICAgICAgICAgICBDb2xvciBiYXNl
Q29sb3I7CkBAIC04MDUsNyArODA1LDcgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFp
bnRGaWxsTGF5ZXJFeHRlbmRlZChjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY28KICAgICBp
ZiAoc2hvdWxkUGFpbnRCYWNrZ3JvdW5kSW1hZ2UpIHsKICAgICAgICAgQmFja2dyb3VuZEltYWdl
R2VvbWV0cnkgZ2VvbWV0cnk7CiAgICAgICAgIGNhbGN1bGF0ZUJhY2tncm91bmRJbWFnZUdlb21l
dHJ5KHBhaW50SW5mby5wYWludENvbnRhaW5lciwgYmdMYXllciwgc2Nyb2xsZWRQYWludFJlY3Qs
IGdlb21ldHJ5LCBiYWNrZ3JvdW5kT2JqZWN0KTsKLSAgICAgICAgZ2VvbWV0cnkuY2xpcChwYWlu
dEluZm8ucmVjdCk7CisgICAgICAgIGdlb21ldHJ5LmNsaXAocGl4ZWxTbmFwcGVkSW50UmVjdChw
YWludEluZm8ucmVjdCkpOwogICAgICAgICBpZiAoIWdlb21ldHJ5LmRlc3RSZWN0KCkuaXNFbXB0
eSgpKSB7CiAgICAgICAgICAgICBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCA9IG9wID09
IENvbXBvc2l0ZVNvdXJjZU92ZXIgPyBiZ0xheWVyLT5jb21wb3NpdGUoKSA6IG9wOwogICAgICAg
ICAgICAgYXV0byBjbGllbnRGb3JCYWNrZ3JvdW5kSW1hZ2UgPSBiYWNrZ3JvdW5kT2JqZWN0ID8g
YmFja2dyb3VuZE9iamVjdCA6IHRoaXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcAppbmRleCBiYWU2ZDM4YzEyNDZhNDIzOTFiN2JjYzcxNmUxMzJkZjUxNGQwNjU1Li4y
M2NmMGRmZWFiNWY1Njc1MWExODAyMjk2YjUyMTRjOTYyMmQ4M2Q1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTI3NDIsNyArMjc0Miw3IEBAIHN0YXRpYyBp
bnQgY29ybmVyU3RhcnQoY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyLCBpbnQgbWluWCwgaW50IG1h
eFgsIGludCB0aGlja25lCiAgICAgcmV0dXJuIG1heFggLSB0aGlja25lc3MgLSBsYXllci0+cmVu
ZGVyZXIoKS5zdHlsZSgpLmJvcmRlclJpZ2h0V2lkdGgoKTsKIH0KIAotc3RhdGljIEludFJlY3Qg
Y29ybmVyUmVjdChjb25zdCBSZW5kZXJMYXllciogbGF5ZXIsIGNvbnN0IEludFJlY3QmIGJvdW5k
cykKK3N0YXRpYyBMYXlvdXRSZWN0IGNvcm5lclJlY3QoY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVy
LCBjb25zdCBMYXlvdXRSZWN0JiBib3VuZHMpCiB7CiAgICAgaW50IGhvcml6b250YWxUaGlja25l
c3M7CiAgICAgaW50IHZlcnRpY2FsVGhpY2tuZXNzOwpAQCAtMjc2MSw3ICsyNzYxLDcgQEAgc3Rh
dGljIEludFJlY3QgY29ybmVyUmVjdChjb25zdCBSZW5kZXJMYXllciogbGF5ZXIsIGNvbnN0IElu
dFJlY3QmIGJvdW5kcykKICAgICAgICAgaG9yaXpvbnRhbFRoaWNrbmVzcyA9IGxheWVyLT52ZXJ0
aWNhbFNjcm9sbGJhcigpLT53aWR0aCgpOwogICAgICAgICB2ZXJ0aWNhbFRoaWNrbmVzcyA9IGxh
eWVyLT5ob3Jpem9udGFsU2Nyb2xsYmFyKCktPmhlaWdodCgpOwogICAgIH0KLSAgICByZXR1cm4g
SW50UmVjdChjb3JuZXJTdGFydChsYXllciwgYm91bmRzLngoKSwgYm91bmRzLm1heFgoKSwgaG9y
aXpvbnRhbFRoaWNrbmVzcyksCisgICAgcmV0dXJuIExheW91dFJlY3QoY29ybmVyU3RhcnQobGF5
ZXIsIGJvdW5kcy54KCksIGJvdW5kcy5tYXhYKCksIGhvcml6b250YWxUaGlja25lc3MpLAogICAg
ICAgICBib3VuZHMubWF4WSgpIC0gdmVydGljYWxUaGlja25lc3MgLSBsYXllci0+cmVuZGVyZXIo
KS5zdHlsZSgpLmJvcmRlckJvdHRvbVdpZHRoKCksCiAgICAgICAgIGhvcml6b250YWxUaGlja25l
c3MsIHZlcnRpY2FsVGhpY2tuZXNzKTsKIH0KQEAgLTI3NzYsMjYgKzI3NzYsMjYgQEAgSW50UmVj
dCBSZW5kZXJMYXllcjo6c2Nyb2xsQ29ybmVyUmVjdCgpIGNvbnN0CiAgICAgYm9vbCBoYXNWZXJ0
aWNhbEJhciA9IHZlcnRpY2FsU2Nyb2xsYmFyKCk7CiAgICAgYm9vbCBoYXNSZXNpemVyID0gcmVu
ZGVyZXIoKS5zdHlsZSgpLnJlc2l6ZSgpICE9IFJFU0laRV9OT05FOwogICAgIGlmICgoaGFzSG9y
aXpvbnRhbEJhciAmJiBoYXNWZXJ0aWNhbEJhcikgfHwgKGhhc1Jlc2l6ZXIgJiYgKGhhc0hvcml6
b250YWxCYXIgfHwgaGFzVmVydGljYWxCYXIpKSkKLSAgICAgICAgcmV0dXJuIGNvcm5lclJlY3Qo
dGhpcywgcmVuZGVyQm94KCktPnBpeGVsU25hcHBlZEJvcmRlckJveFJlY3QoKSk7CisgICAgICAg
IHJldHVybiBwaXhlbFNuYXBwZWRJbnRSZWN0KGNvcm5lclJlY3QodGhpcywgcmVuZGVyQm94KCkt
PmJvcmRlckJveFJlY3QoKSkpOwogICAgIHJldHVybiBJbnRSZWN0KCk7CiB9CiAKLXN0YXRpYyBJ
bnRSZWN0IHJlc2l6ZXJDb3JuZXJSZWN0KGNvbnN0IFJlbmRlckxheWVyKiBsYXllciwgY29uc3Qg
SW50UmVjdCYgYm91bmRzKQorc3RhdGljIExheW91dFJlY3QgcmVzaXplckNvcm5lclJlY3QoY29u
c3QgUmVuZGVyTGF5ZXIqIGxheWVyLCBjb25zdCBMYXlvdXRSZWN0JiBib3VuZHMpCiB7CiAgICAg
QVNTRVJUKGxheWVyLT5yZW5kZXJlcigpLmlzQm94KCkpOwogICAgIGlmIChsYXllci0+cmVuZGVy
ZXIoKS5zdHlsZSgpLnJlc2l6ZSgpID09IFJFU0laRV9OT05FKQotICAgICAgICByZXR1cm4gSW50
UmVjdCgpOworICAgICAgICByZXR1cm4gTGF5b3V0UmVjdCgpOwogICAgIHJldHVybiBjb3JuZXJS
ZWN0KGxheWVyLCBib3VuZHMpOwogfQogCi1JbnRSZWN0IFJlbmRlckxheWVyOjpzY3JvbGxDb3Ju
ZXJBbmRSZXNpemVyUmVjdCgpIGNvbnN0CitMYXlvdXRSZWN0IFJlbmRlckxheWVyOjpzY3JvbGxD
b3JuZXJBbmRSZXNpemVyUmVjdCgpIGNvbnN0CiB7CiAgICAgUmVuZGVyQm94KiBib3ggPSByZW5k
ZXJCb3goKTsKICAgICBpZiAoIWJveCkKICAgICAgICAgcmV0dXJuIEludFJlY3QoKTsKLSAgICBJ
bnRSZWN0IHNjcm9sbENvcm5lckFuZFJlc2l6ZXIgPSBzY3JvbGxDb3JuZXJSZWN0KCk7CisgICAg
TGF5b3V0UmVjdCBzY3JvbGxDb3JuZXJBbmRSZXNpemVyID0gc2Nyb2xsQ29ybmVyUmVjdCgpOwog
ICAgIGlmIChzY3JvbGxDb3JuZXJBbmRSZXNpemVyLmlzRW1wdHkoKSkKLSAgICAgICAgc2Nyb2xs
Q29ybmVyQW5kUmVzaXplciA9IHJlc2l6ZXJDb3JuZXJSZWN0KHRoaXMsIGJveC0+cGl4ZWxTbmFw
cGVkQm9yZGVyQm94UmVjdCgpKTsKKyAgICAgICAgc2Nyb2xsQ29ybmVyQW5kUmVzaXplciA9IHJl
c2l6ZXJDb3JuZXJSZWN0KHRoaXMsIGJveC0+Ym9yZGVyQm94UmVjdCgpKTsKICAgICByZXR1cm4g
c2Nyb2xsQ29ybmVyQW5kUmVzaXplcjsKIH0KIApAQCAtMjkyNiw3ICsyOTI2LDcgQEAgTGF5b3V0
VW5pdCBSZW5kZXJMYXllcjo6aG9yaXpvbnRhbFNjcm9sbGJhclN0YXJ0KGludCBtaW5YKSBjb25z
dAogICAgIGNvbnN0IFJlbmRlckJveCogYm94ID0gcmVuZGVyQm94KCk7CiAgICAgaW50IHggPSBt
aW5YICsgYm94LT5ib3JkZXJMZWZ0KCk7CiAgICAgaWYgKHJlbmRlcmVyKCkuc3R5bGUoKS5zaG91
bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25Mb2dpY2FsTGVmdCgpKQotICAgICAgICB4
ICs9IG1fdkJhciA/IG1fdkJhci0+d2lkdGgoKSA6IHJlc2l6ZXJDb3JuZXJSZWN0KHRoaXMsIGJv
eC0+cGl4ZWxTbmFwcGVkQm9yZGVyQm94UmVjdCgpKS53aWR0aCgpOworICAgICAgICB4ICs9IG1f
dkJhciA/IG1fdkJhci0+d2lkdGgoKSA6IHJvdW5kVG9JbnQocmVzaXplckNvcm5lclJlY3QodGhp
cywgYm94LT5ib3JkZXJCb3hSZWN0KCkpLndpZHRoKCkpOwogICAgIHJldHVybiB4OwogfQogCkBA
IC0zNTA5LDcgKzM1MDksNyBAQCB2b2lkIFJlbmRlckxheWVyOjpwYWludFNjcm9sbENvcm5lcihH
cmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFBvaW50JiBwYQogICAgICAgICBjb250
ZXh0LT5maWxsUmVjdChhYnNSZWN0LCBDb2xvcjo6d2hpdGUsIGJveC0+c3R5bGUoKS5jb2xvclNw
YWNlKCkpOwogfQogCi12b2lkIFJlbmRlckxheWVyOjpkcmF3UGxhdGZvcm1SZXNpemVySW1hZ2Uo
R3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBJbnRSZWN0IHJlc2l6ZXJDb3JuZXJSZWN0KQordm9p
ZCBSZW5kZXJMYXllcjo6ZHJhd1BsYXRmb3JtUmVzaXplckltYWdlKEdyYXBoaWNzQ29udGV4dCog
Y29udGV4dCwgY29uc3QgTGF5b3V0UmVjdCYgcmVzaXplckNvcm5lclJlY3QpCiB7CiAgICAgZmxv
YXQgZGV2aWNlU2NhbGVGYWN0b3IgPSBXZWJDb3JlOjpkZXZpY2VTY2FsZUZhY3RvcigmcmVuZGVy
ZXIoKS5mcmFtZSgpKTsKIApAQCAtMzUzNCwxMSArMzUzNCwxMSBAQCB2b2lkIFJlbmRlckxheWVy
OjpkcmF3UGxhdGZvcm1SZXNpemVySW1hZ2UoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBJbnRS
ZWN0IHJlcwogICAgICAgICBjb250ZXh0LT5yZXN0b3JlKCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9Ci0gICAgSW50UmVjdCBpbWFnZVJlY3QocmVzaXplckNvcm5lclJlY3QubWF4WE1heFlDb3Ju
ZXIoKSAtIGNvcm5lclJlc2l6ZXJTaXplLCBjb3JuZXJSZXNpemVyU2l6ZSk7Ci0gICAgY29udGV4
dC0+ZHJhd0ltYWdlKHJlc2l6ZUNvcm5lckltYWdlLmdldCgpLCByZW5kZXJlcigpLnN0eWxlKCku
Y29sb3JTcGFjZSgpLCBpbWFnZVJlY3QpOworICAgIExheW91dFJlY3QgaW1hZ2VSZWN0KHJlc2l6
ZXJDb3JuZXJSZWN0Lm1heFhNYXhZQ29ybmVyKCkgLSBjb3JuZXJSZXNpemVyU2l6ZSwgY29ybmVy
UmVzaXplclNpemUpOworICAgIGNvbnRleHQtPmRyYXdJbWFnZShyZXNpemVDb3JuZXJJbWFnZS5n
ZXQoKSwgcmVuZGVyZXIoKS5zdHlsZSgpLmNvbG9yU3BhY2UoKSwgcGl4ZWxTbmFwcGVkSW50UmVj
dChpbWFnZVJlY3QpKTsKIH0KIAotdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRSZXNpemVyKEdyYXBo
aWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UG9pbnQmIHBhaW50T2Zmc2V0LCBjb25zdCBJ
bnRSZWN0JiBkYW1hZ2VSZWN0KQordm9pZCBSZW5kZXJMYXllcjo6cGFpbnRSZXNpemVyKEdyYXBo
aWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBjb25z
dCBMYXlvdXRSZWN0JiBkYW1hZ2VSZWN0KQogewogICAgIGlmIChyZW5kZXJlcigpLnN0eWxlKCku
cmVzaXplKCkgPT0gUkVTSVpFX05PTkUpCiAgICAgICAgIHJldHVybjsKQEAgLTM1NDYsNyArMzU0
Niw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50UmVzaXplcihHcmFwaGljc0NvbnRleHQqIGNv
bnRleHQsIGNvbnN0IEludFBvaW50JiBwYWludE9mCiAgICAgUmVuZGVyQm94KiBib3ggPSByZW5k
ZXJCb3goKTsKICAgICBBU1NFUlQoYm94KTsKIAotICAgIEludFJlY3QgYWJzUmVjdCA9IHJlc2l6
ZXJDb3JuZXJSZWN0KHRoaXMsIGJveC0+cGl4ZWxTbmFwcGVkQm9yZGVyQm94UmVjdCgpKTsKKyAg
ICBMYXlvdXRSZWN0IGFic1JlY3QgPSByZXNpemVyQ29ybmVyUmVjdCh0aGlzLCBib3gtPmJvcmRl
ckJveFJlY3QoKSk7CiAgICAgYWJzUmVjdC5tb3ZlQnkocGFpbnRPZmZzZXQpOwogICAgIGlmICgh
YWJzUmVjdC5pbnRlcnNlY3RzKGRhbWFnZVJlY3QpKQogICAgICAgICByZXR1cm47CkBAIC0zNTY4
LDEyICszNTY4LDEyIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50UmVzaXplcihHcmFwaGljc0Nv
bnRleHQqIGNvbnRleHQsIGNvbnN0IEludFBvaW50JiBwYWludE9mCiAgICAgaWYgKCFoYXNPdmVy
bGF5U2Nyb2xsYmFycygpICYmIChtX3ZCYXIgfHwgbV9oQmFyKSkgewogICAgICAgICBHcmFwaGlj
c0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKmNvbnRleHQpOwogICAgICAgICBjb250ZXh0
LT5jbGlwKGFic1JlY3QpOwotICAgICAgICBJbnRSZWN0IGxhcmdlckNvcm5lciA9IGFic1JlY3Q7
Ci0gICAgICAgIGxhcmdlckNvcm5lci5zZXRTaXplKEludFNpemUobGFyZ2VyQ29ybmVyLndpZHRo
KCkgKyAxLCBsYXJnZXJDb3JuZXIuaGVpZ2h0KCkgKyAxKSk7CisgICAgICAgIExheW91dFJlY3Qg
bGFyZ2VyQ29ybmVyID0gYWJzUmVjdDsKKyAgICAgICAgbGFyZ2VyQ29ybmVyLnNldFNpemUoTGF5
b3V0U2l6ZShsYXJnZXJDb3JuZXIud2lkdGgoKSArIExheW91dFVuaXQ6OmZyb21QaXhlbCgxKSwg
bGFyZ2VyQ29ybmVyLmhlaWdodCgpICsgTGF5b3V0VW5pdDo6ZnJvbVBpeGVsKDEpKSk7CiAgICAg
ICAgIGNvbnRleHQtPnNldFN0cm9rZUNvbG9yKENvbG9yKG1ha2VSR0IoMjE3LCAyMTcsIDIxNykp
LCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKICAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tlVGhpY2tu
ZXNzKDEuMGYpOwogICAgICAgICBjb250ZXh0LT5zZXRGaWxsQ29sb3IoQ29sb3I6OnRyYW5zcGFy
ZW50LCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKLSAgICAgICAgY29udGV4dC0+ZHJhd1JlY3QobGFy
Z2VyQ29ybmVyKTsKKyAgICAgICAgY29udGV4dC0+ZHJhd1JlY3QocGl4ZWxTbmFwcGVkSW50UmVj
dChsYXJnZXJDb3JuZXIpKTsKICAgICB9CiB9CiAKQEAgLTM2MDEsNyArMzYwMSw3IEBAIGJvb2wg
UmVuZGVyTGF5ZXI6OmhpdFRlc3RPdmVyZmxvd0NvbnRyb2xzKEhpdFRlc3RSZXN1bHQmIHJlc3Vs
dCwgY29uc3QgSW50UG9pbnQmCiAgICAgCiAgICAgSW50UmVjdCByZXNpemVDb250cm9sUmVjdDsK
ICAgICBpZiAocmVuZGVyZXIoKS5zdHlsZSgpLnJlc2l6ZSgpICE9IFJFU0laRV9OT05FKSB7Ci0g
ICAgICAgIHJlc2l6ZUNvbnRyb2xSZWN0ID0gcmVzaXplckNvcm5lclJlY3QodGhpcywgYm94LT5w
aXhlbFNuYXBwZWRCb3JkZXJCb3hSZWN0KCkpOworICAgICAgICByZXNpemVDb250cm9sUmVjdCA9
IHBpeGVsU25hcHBlZEludFJlY3QocmVzaXplckNvcm5lclJlY3QodGhpcywgYm94LT5ib3JkZXJC
b3hSZWN0KCkpKTsKICAgICAgICAgaWYgKHJlc2l6ZUNvbnRyb2xSZWN0LmNvbnRhaW5zKGxvY2Fs
UG9pbnQpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCBkNjA2ZDlhODM1YTY2OWRmZTNlZGFlZTgzMGJlNDNi
MDhkNWRhYzA2Li5hODJmNDVkODU4OTlhMmIxMzRjZmYyOWU4YTM0NDgxMDg3NDI4MDcxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtNDU5LDcgKzQ1OSw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgcGFpbnRPdmVyZmxvd0NvbnRyb2xzKEdyYXBoaWNzQ29udGV4dCos
IGNvbnN0IEludFBvaW50JiwgY29uc3QgSW50UmVjdCYgZGFtYWdlUmVjdCwgYm9vbCBwYWludGlu
Z092ZXJsYXlDb250cm9scyA9IGZhbHNlKTsKICAgICB2b2lkIHBhaW50U2Nyb2xsQ29ybmVyKEdy
YXBoaWNzQ29udGV4dCosIGNvbnN0IEludFBvaW50JiwgY29uc3QgSW50UmVjdCYgZGFtYWdlUmVj
dCk7Ci0gICAgdm9pZCBwYWludFJlc2l6ZXIoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UG9p
bnQmLCBjb25zdCBJbnRSZWN0JiBkYW1hZ2VSZWN0KTsKKyAgICB2b2lkIHBhaW50UmVzaXplcihH
cmFwaGljc0NvbnRleHQqLCBjb25zdCBMYXlvdXRQb2ludCYsIGNvbnN0IExheW91dFJlY3QmIGRh
bWFnZVJlY3QpOwogCiAgICAgdm9pZCB1cGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXQoKTsKIApA
QCAtMTA4NCw3ICsxMDg0LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgLy8gUmVjdGFuZ2xl
IGVuY29tcGFzc2luZyB0aGUgc2Nyb2xsIGNvcm5lciBhbmQgcmVzaXplciByZWN0LgotICAgIElu
dFJlY3Qgc2Nyb2xsQ29ybmVyQW5kUmVzaXplclJlY3QoKSBjb25zdDsKKyAgICBMYXlvdXRSZWN0
IHNjcm9sbENvcm5lckFuZFJlc2l6ZXJSZWN0KCkgY29uc3Q7CiAKICAgICAvLyBOT1RFOiBUaGlz
IHNob3VsZCBvbmx5IGJlIGNhbGxlZCBieSB0aGUgb3ZlcnJpZGVuIHNldFNjcm9sbE9mZnNldCBm
cm9tIFNjcm9sbGFibGVBcmVhLgogICAgIHZvaWQgc2Nyb2xsVG8oaW50LCBpbnQpOwpAQCAtMTEz
Niw3ICsxMTM2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZVNjcm9sbENvcm5lclN0eWxl
KCk7CiAgICAgdm9pZCB1cGRhdGVSZXNpemVyU3R5bGUoKTsKIAotICAgIHZvaWQgZHJhd1BsYXRm
b3JtUmVzaXplckltYWdlKEdyYXBoaWNzQ29udGV4dCosIEludFJlY3QgcmVzaXplckNvcm5lclJl
Y3QpOworICAgIHZvaWQgZHJhd1BsYXRmb3JtUmVzaXplckltYWdlKEdyYXBoaWNzQ29udGV4dCos
IGNvbnN0IExheW91dFJlY3QmIHJlc2l6ZXJDb3JuZXJSZWN0KTsKIAogICAgIHZvaWQgdXBkYXRl
UGFnaW5hdGlvbigpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcAppbmRleCAzZmFjMjc1YWNmNTJkMWYyOWYwMmMzZWI1ODZlNDJiMmY1
YjEyMGFmLi44OTkxNGQ0OTFjZmNjN2U3ODg1ZDI0NGMzOTMwYTMzZTdlNzMyYzNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMjI2
NCwxMiArMjI2NCwxMiBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRDb250ZW50cyhj
b25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwaAogICAgIH0gZWxzZSBpZiAo
Z3JhcGhpY3NMYXllciA9PSBsYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKCkpIHsKICAgICAgICAg
cGFpbnRTY3JvbGxiYXIobV9vd25pbmdMYXllci52ZXJ0aWNhbFNjcm9sbGJhcigpLCBjb250ZXh0
LCBjbGlwKTsKICAgICB9IGVsc2UgaWYgKGdyYXBoaWNzTGF5ZXIgPT0gbGF5ZXJGb3JTY3JvbGxD
b3JuZXIoKSkgewotICAgICAgICBjb25zdCBJbnRSZWN0JiBzY3JvbGxDb3JuZXJBbmRSZXNpemVy
ID0gbV9vd25pbmdMYXllci5zY3JvbGxDb3JuZXJBbmRSZXNpemVyUmVjdCgpOworICAgICAgICBj
b25zdCBMYXlvdXRSZWN0JiBzY3JvbGxDb3JuZXJBbmRSZXNpemVyID0gbV9vd25pbmdMYXllci5z
Y3JvbGxDb3JuZXJBbmRSZXNpemVyUmVjdCgpOwogICAgICAgICBjb250ZXh0LnNhdmUoKTsKICAg
ICAgICAgY29udGV4dC50cmFuc2xhdGUoLXNjcm9sbENvcm5lckFuZFJlc2l6ZXIueCgpLCAtc2Ny
b2xsQ29ybmVyQW5kUmVzaXplci55KCkpOwotICAgICAgICBJbnRSZWN0IHRyYW5zZm9ybWVkQ2xp
cCA9IGNsaXA7CisgICAgICAgIExheW91dFJlY3QgdHJhbnNmb3JtZWRDbGlwID0gY2xpcDsKICAg
ICAgICAgdHJhbnNmb3JtZWRDbGlwLm1vdmVCeShzY3JvbGxDb3JuZXJBbmRSZXNpemVyLmxvY2F0
aW9uKCkpOwotICAgICAgICBtX293bmluZ0xheWVyLnBhaW50U2Nyb2xsQ29ybmVyKCZjb250ZXh0
LCBJbnRQb2ludCgpLCB0cmFuc2Zvcm1lZENsaXApOworICAgICAgICBtX293bmluZ0xheWVyLnBh
aW50U2Nyb2xsQ29ybmVyKCZjb250ZXh0LCBJbnRQb2ludCgpLCBwaXhlbFNuYXBwZWRJbnRSZWN0
KHRyYW5zZm9ybWVkQ2xpcCkpOwogICAgICAgICBtX293bmluZ0xheWVyLnBhaW50UmVzaXplcigm
Y29udGV4dCwgSW50UG9pbnQoKSwgdHJhbnNmb3JtZWRDbGlwKTsKICAgICAgICAgY29udGV4dC5y
ZXN0b3JlKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpc3RCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3gu
Y3BwCmluZGV4IGFlOGM5MzYwOTE2YzFjYmI3OWJmNzY5NmQ3NGEwZWZiODY2OTQ1NTQuLjQxMDA3
ODI1NzM4Y2IwMjYwNjVmZDk3YjM3OTY3OTEwZmViNThjYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKQEAgLTM1MCw3ICszNTAsNyBAQCB2b2lkIFJlbmRl
ckxpc3RCb3g6OnBhaW50U2Nyb2xsYmFyKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlv
dXRQb2ludCYgcGFpbgogICAgICAgICAgICAgbV92QmFyLT53aWR0aCgpLAogICAgICAgICAgICAg
aGVpZ2h0KCkgLSAoYm9yZGVyVG9wKCkgKyBib3JkZXJCb3R0b20oKSkpOwogICAgICAgICBtX3ZC
YXItPnNldEZyYW1lUmVjdChzY3JvbGxSZWN0KTsKLSAgICAgICAgbV92QmFyLT5wYWludChwYWlu
dEluZm8uY29udGV4dCwgcGFpbnRJbmZvLnJlY3QpOworICAgICAgICBtX3ZCYXItPnBhaW50KHBh
aW50SW5mby5jb250ZXh0LCBwaXhlbFNuYXBwZWRJbnRSZWN0KHBhaW50SW5mby5yZWN0KSk7CiAg
ICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lk
Z2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCmluZGV4
IDFhZmQ5MTZiYzU4NThmMWUzYTBlZWMzNjFlMmNiNGZmMzRkZmFhNWEuLmVmODA0YjJiZTZjMzA1
ZTY5MjBmMGM2ZTUyNWZjMmVmZGIyZDMyZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJXaWRnZXQuY3BwCkBAIC0yMjcsMTYgKzIyNywxNiBAQCB2b2lkIFJlbmRlcldpZGdldDo6
cGFpbnRDb250ZW50cyhQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBh
aW50TwogICAgIEludFBvaW50IHdpZGdldExvY2F0aW9uID0gbV93aWRnZXQtPmZyYW1lUmVjdCgp
LmxvY2F0aW9uKCk7CiAgICAgSW50UG9pbnQgcGFpbnRMb2NhdGlvbihyb3VuZFRvSW50KGFkanVz
dGVkUGFpbnRPZmZzZXQueCgpICsgYm9yZGVyTGVmdCgpICsgcGFkZGluZ0xlZnQoKSksCiAgICAg
ICAgIHJvdW5kVG9JbnQoYWRqdXN0ZWRQYWludE9mZnNldC55KCkgKyBib3JkZXJUb3AoKSArIHBh
ZGRpbmdUb3AoKSkpOwotICAgIEludFJlY3QgcGFpbnRSZWN0ID0gcGFpbnRJbmZvLnJlY3Q7Cisg
ICAgTGF5b3V0UmVjdCBwYWludFJlY3QgPSBwYWludEluZm8ucmVjdDsKIAotICAgIEludFNpemUg
d2lkZ2V0UGFpbnRPZmZzZXQgPSBwYWludExvY2F0aW9uIC0gd2lkZ2V0TG9jYXRpb247CisgICAg
TGF5b3V0U2l6ZSB3aWRnZXRQYWludE9mZnNldCA9IHBhaW50TG9jYXRpb24gLSB3aWRnZXRMb2Nh
dGlvbjsKICAgICAvLyBXaGVuIHBhaW50aW5nIHdpZGdldHMgaW50byBjb21wb3NpdGluZyBsYXll
cnMsIHR4IGFuZCB0eSBhcmUgcmVsYXRpdmUgdG8gdGhlIGVuY2xvc2luZyBjb21wb3NpdGluZyBs
YXllciwKICAgICAvLyBub3QgdGhlIHJvb3QuIEluIHRoaXMgY2FzZSwgc2hpZnQgdGhlIENUTSBh
bmQgYWRqdXN0IHRoZSBwYWludFJlY3QgdG8gYmUgcm9vdC1yZWxhdGl2ZSB0byBmaXggcGx1Zy1p
biBkcmF3aW5nLgogICAgIGlmICghd2lkZ2V0UGFpbnRPZmZzZXQuaXNaZXJvKCkpIHsKICAgICAg
ICAgcGFpbnRJbmZvLmNvbnRleHQtPnRyYW5zbGF0ZSh3aWRnZXRQYWludE9mZnNldCk7CiAgICAg
ICAgIHBhaW50UmVjdC5tb3ZlKC13aWRnZXRQYWludE9mZnNldCk7CiAgICAgfQotICAgIG1fd2lk
Z2V0LT5wYWludChwYWludEluZm8uY29udGV4dCwgcGFpbnRSZWN0KTsKKyAgICBtX3dpZGdldC0+
cGFpbnQocGFpbnRJbmZvLmNvbnRleHQsIHBpeGVsU25hcHBlZEludFJlY3QocGFpbnRSZWN0KSk7
CiAKICAgICBpZiAoIXdpZGdldFBhaW50T2Zmc2V0LmlzWmVybygpKQogICAgICAgICBwYWludElu
Zm8uY29udGV4dC0+dHJhbnNsYXRlKC13aWRnZXRQYWludE9mZnNldCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE9wZXJhdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuY3Bw
CmluZGV4IDE3NDRmMjI4M2M1MTNlNjgxOThjNzBhMjY5MjhiY2Y4NzNjZDJlOWEuLjRmZTkzYTU4
ZGJlYjAxNDQ3ODg0ODExYTU0Y2VmNzUxNjk1ZmE3M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuY3BwCkBAIC0z
MjksNyArMzI5LDcgQEAgdm9pZCBSZW5kZXJNYXRoTUxPcGVyYXRvcjo6ZmlsbFdpdGhFeHRlbnNp
b25HbHlwaChQYWludEluZm8mIGluZm8sIGNvbnN0IExheW91dFAKIAogICAgIC8vIENsaXBwaW5n
IHRoZSBleHRlbmRlciByZWdpb24gaGVyZSBhbGxvd3MgdXMgdG8gZHJhdyB0aGUgYm90dG9tIGV4
dGVuZGVyIGdseXBoIGludG8gdGhlCiAgICAgLy8gcmVnaW9ucyBvZiB0aGUgYm90dG9tIGdseXBo
IHdpdGhvdXQgd29ycnlpbmcgYWJvdXQgb3ZlcmRyYXcgKGhhaXJ5IHBpeGVscykgYW5kIHNpbXBs
aWZpZXMgbGF0ZXIgY2xpcHBpbmcuCi0gICAgSW50UmVjdCBjbGlwQm91bmRzID0gaW5mby5yZWN0
OworICAgIExheW91dFJlY3QgY2xpcEJvdW5kcyA9IGluZm8ucmVjdDsKICAgICBjbGlwQm91bmRz
LnNoaWZ0WUVkZ2VUbyhmcm9tLnkoKSk7CiAgICAgY2xpcEJvdW5kcy5zaGlmdE1heFlFZGdlVG8o
dG8ueSgpKTsKICAgICBpbmZvLmNvbnRleHQtPmNsaXAoY2xpcEJvdW5kcyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IGY2
ZDhjZjdiN2M2ZjFmN2IwZTgwYzBkYzg4MmNkNmY3MWIzMGJkMTMuLjNiZjYwNGNjMmZiZWVkYTI4
N2FhYzExMWZmYWIyNmNlYTg5YmQ2MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5oCkBAIC0xMTUsNyArMTE1LDcgQEAgcHJpdmF0
ZToKICAgICBSZW5kZXJFbGVtZW50KiBtX3JlbmRlcmVyOwogICAgIFBhaW50SW5mbyogbV9wYWlu
dEluZm87CiAgICAgR3JhcGhpY3NDb250ZXh0KiBtX3NhdmVkQ29udGV4dDsKLSAgICBJbnRSZWN0
IG1fc2F2ZWRQYWludFJlY3Q7CisgICAgTGF5b3V0UmVjdCBtX3NhdmVkUGFpbnRSZWN0OwogI2lm
IEVOQUJMRShGSUxURVJTKQogICAgIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyKiBtX2ZpbHRlcjsK
ICNlbmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>