From mboxrd@z Thu Jan 1 00:00:00 1970 From: Martin Peres Subject: Re: [PATCH v4 31/37] clk: split out update code to nv40 Date: Thu, 21 Apr 2016 01:08:25 +0300 Message-ID: <5717FDD9.7020603@free.fr> References: <1461006851-5007-1-git-send-email-nouveau@karolherbst.de> <1461006851-5007-32-git-send-email-nouveau@karolherbst.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1461006851-5007-32-git-send-email-nouveau-lIBOoy2+GI7scQ4cX5LuPg@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: nouveau.vger.kernel.org T24gMTgvMDQvMTYgMjI6MTQsIEthcm9sIEhlcmJzdCB3cm90ZToKPiB0aGlzIGNvZGUgd2lsbCBj aGFuZ2UgZm9yIGdmMTAwIGFuZCBuZXdlcgoKUmV2aWV3ZWQtYnk6IE1hcnRpbiBQZXJlcyA8bWFy dGluLnBlcmVzQGZyZWUuZnI+Cj4KPiBTaWduZWQtb2ZmLWJ5OiBLYXJvbCBIZXJic3QgPG5vdXZl YXVAa2Fyb2xoZXJic3QuZGU+Cj4gLS0tCj4gICBkcm0vbm91dmVhdS9udmttL3N1YmRldi9jbGsv YmFzZS5jICB8IDE0ICsrKysrKy0tLS0tLS0tCj4gICBkcm0vbm91dmVhdS9udmttL3N1YmRldi9j bGsvZzg0LmMgICB8ICAxICsKPiAgIGRybS9ub3V2ZWF1L252a20vc3ViZGV2L2Nsay9nZjEwMC5j IHwgIDEgKwo+ICAgZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvY2xrL2drMTA0LmMgfCAgMSArCj4g ICBkcm0vbm91dmVhdS9udmttL3N1YmRldi9jbGsvZ2syMGEuYyB8ICAxICsKPiAgIGRybS9ub3V2 ZWF1L252a20vc3ViZGV2L2Nsay9nbTIwYi5jIHwgIDEgKwo+ICAgZHJtL25vdXZlYXUvbnZrbS9z dWJkZXYvY2xrL2d0MjE1LmMgfCAgMSArCj4gICBkcm0vbm91dmVhdS9udmttL3N1YmRldi9jbGsv bWNwNzcuYyB8ICAxICsKPiAgIGRybS9ub3V2ZWF1L252a20vc3ViZGV2L2Nsay9udjQwLmMgIHwg MTUgKysrKysrKysrKysrKysrCj4gICBkcm0vbm91dmVhdS9udmttL3N1YmRldi9jbGsvbnY1MC5j ICB8ICAxICsKPiAgIGRybS9ub3V2ZWF1L252a20vc3ViZGV2L2Nsay9wcml2LmggIHwgIDUgKysr KysKPiAgIDExIGZpbGVzIGNoYW5nZWQsIDM0IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0p Cj4KPiBkaWZmIC0tZ2l0IGEvZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvY2xrL2Jhc2UuYyBiL2Ry bS9ub3V2ZWF1L252a20vc3ViZGV2L2Nsay9iYXNlLmMKPiBpbmRleCBkNmYyMzlmLi4zYzQwZjY3 IDEwMDY0NAo+IC0tLSBhL2RybS9ub3V2ZWF1L252a20vc3ViZGV2L2Nsay9iYXNlLmMKPiArKysg Yi9kcm0vbm91dmVhdS9udmttL3N1YmRldi9jbGsvYmFzZS5jCj4gQEAgLTI3OSw3ICsyNzksNyBA QCBudmttX2NzdGF0ZV9uZXcoc3RydWN0IG52a21fY2xrICpjbGssIGludCBpZHgsIHN0cnVjdCBu dmttX3BzdGF0ZSAqcHN0YXRlKQo+ICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ICAgICogUC1T dGF0ZXMKPiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KPiAtc3RhdGljIGludAo+ICtpbnQKPiAg IG52a21fcHN0YXRlX3Byb2coc3RydWN0IG52a21fY2xrICpjbGssIGludCBwc3RhdGVpZCkKPiAg IHsKPiAgIAlzdHJ1Y3QgbnZrbV9zdWJkZXYgKnN1YmRldiA9ICZjbGstPnN1YmRldjsKPiBAQCAt MzIyLDcgKzMyMiwxMCBAQCBzdGF0aWMgdm9pZAo+ICAgbnZrbV9jbGtfdXBkYXRlX2ltcGwoc3Ry dWN0IG52a21fY2xrICpjbGspCj4gICB7Cj4gICAJc3RydWN0IG52a21fc3ViZGV2ICpzdWJkZXYg PSAmY2xrLT5zdWJkZXY7Cj4gLQlpbnQgcHN0YXRlLCByZXQ7Cj4gKwlpbnQgcHN0YXRlOwo+ICsK PiArCWlmICghY2xrLT5mdW5jLT51cGRhdGUpCj4gKwkJcmV0dXJuOwo+ICAgCj4gICAJY2xrLT5w d3JzcmMgPSBwb3dlcl9zdXBwbHlfaXNfc3lzdGVtX3N1cHBsaWVkKCk7Cj4gICAKPiBAQCAtMzQx LDEyICszNDQsNyBAQCBudmttX2Nsa191cGRhdGVfaW1wbChzdHJ1Y3QgbnZrbV9jbGsgKmNsaykK PiAgIAkJcHN0YXRlID0gLTE7Cj4gICAJfQo+ICAgCj4gLQludmttX3RyYWNlKHN1YmRldiwgIi0+ ICVkXG4iLCBwc3RhdGUpOwo+IC0JcmV0ID0gbnZrbV9wc3RhdGVfcHJvZyhjbGssIHBzdGF0ZSk7 Cj4gLQlpZiAocmV0KSB7Cj4gLQkJbnZrbV9lcnJvcihzdWJkZXYsICJlcnJvciBzZXR0aW5nIHBz dGF0ZSAlZDogJWRcbiIsCj4gLQkJCSAgIHBzdGF0ZSwgcmV0KTsKPiAtCX0KPiArCWNsay0+ZnVu Yy0+dXBkYXRlKGNsaywgcHN0YXRlKTsKPiAgIH0KPiAgIAo+ICAgc3RhdGljIHZvaWQKPiBkaWZm IC0tZ2l0IGEvZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvY2xrL2c4NC5jIGIvZHJtL25vdXZlYXUv bnZrbS9zdWJkZXYvY2xrL2c4NC5jCj4gaW5kZXggZjk3ZTNlYy4uN2I5YjMwZCAxMDA2NDQKPiAt LS0gYS9kcm0vbm91dmVhdS9udmttL3N1YmRldi9jbGsvZzg0LmMKPiArKysgYi9kcm0vbm91dmVh dS9udmttL3N1YmRldi9jbGsvZzg0LmMKPiBAQCAtMjksNiArMjksNyBAQCBnODRfY2xrID0gewo+ ICAgCS5jYWxjID0gbnY1MF9jbGtfY2FsYywKPiAgIAkucHJvZyA9IG52NTBfY2xrX3Byb2csCj4g ICAJLnRpZHkgPSBudjUwX2Nsa190aWR5LAo+ICsJLnVwZGF0ZSA9IG52NDBfY2xrX3VwZGF0ZSwK PiAgIAkuZG9tYWlucyA9IHsKPiAgIAkJeyBudl9jbGtfc3JjX2NyeXN0YWwsIDB4ZmYgfSwKPiAg IAkJeyBudl9jbGtfc3JjX2hyZWYgICAsIDB4ZmYgfSwKPiBkaWZmIC0tZ2l0IGEvZHJtL25vdXZl YXUvbnZrbS9zdWJkZXYvY2xrL2dmMTAwLmMgYi9kcm0vbm91dmVhdS9udmttL3N1YmRldi9jbGsv Z2YxMDAuYwo+IGluZGV4IDcxYjdjOWYuLjgwOGUxZWQgMTAwNjQ0Cj4gLS0tIGEvZHJtL25vdXZl YXUvbnZrbS9zdWJkZXYvY2xrL2dmMTAwLmMKPiArKysgYi9kcm0vbm91dmVhdS9udmttL3N1YmRl di9jbGsvZ2YxMDAuYwo+IEBAIC00MzcsNiArNDM3LDcgQEAgZ2YxMDBfY2xrID0gewo+ICAgCS5j YWxjID0gZ2YxMDBfY2xrX2NhbGMsCj4gICAJLnByb2cgPSBnZjEwMF9jbGtfcHJvZywKPiAgIAku dGlkeSA9IGdmMTAwX2Nsa190aWR5LAo+ICsJLnVwZGF0ZSA9IG52NDBfY2xrX3VwZGF0ZSwKPiAg IAkuZG9tYWlucyA9IHsKPiAgIAkJeyBudl9jbGtfc3JjX2NyeXN0YWwsIDB4ZmYgfSwKPiAgIAkJ eyBudl9jbGtfc3JjX2hyZWYgICAsIDB4ZmYgfSwKPiBkaWZmIC0tZ2l0IGEvZHJtL25vdXZlYXUv bnZrbS9zdWJkZXYvY2xrL2drMTA0LmMgYi9kcm0vbm91dmVhdS9udmttL3N1YmRldi9jbGsvZ2sx MDQuYwo+IGluZGV4IDYzOTIzNGYuLjg0NDhhODggMTAwNjQ0Cj4gLS0tIGEvZHJtL25vdXZlYXUv bnZrbS9zdWJkZXYvY2xrL2drMTA0LmMKPiArKysgYi9kcm0vbm91dmVhdS9udmttL3N1YmRldi9j bGsvZ2sxMDQuYwo+IEBAIC00ODIsNiArNDgyLDcgQEAgZ2sxMDRfY2xrID0gewo+ICAgCS5jYWxj ID0gZ2sxMDRfY2xrX2NhbGMsCj4gICAJLnByb2cgPSBnazEwNF9jbGtfcHJvZywKPiAgIAkudGlk eSA9IGdrMTA0X2Nsa190aWR5LAo+ICsJLnVwZGF0ZSA9IG52NDBfY2xrX3VwZGF0ZSwKPiAgIAku ZG9tYWlucyA9IHsKPiAgIAkJeyBudl9jbGtfc3JjX2NyeXN0YWwsIDB4ZmYgfSwKPiAgIAkJeyBu dl9jbGtfc3JjX2hyZWYgICAsIDB4ZmYgfSwKPiBkaWZmIC0tZ2l0IGEvZHJtL25vdXZlYXUvbnZr bS9zdWJkZXYvY2xrL2drMjBhLmMgYi9kcm0vbm91dmVhdS9udmttL3N1YmRldi9jbGsvZ2syMGEu Ywo+IGluZGV4IDVmMGVlMjQuLjhiNjRjYzkgMTAwNjQ0Cj4gLS0tIGEvZHJtL25vdXZlYXUvbnZr bS9zdWJkZXYvY2xrL2drMjBhLmMKPiArKysgYi9kcm0vbm91dmVhdS9udmttL3N1YmRldi9jbGsv Z2syMGEuYwo+IEBAIC02MzYsNiArNjM2LDcgQEAgZ2syMGFfY2xrID0gewo+ICAgCS5jYWxjID0g Z2syMGFfY2xrX2NhbGMsCj4gICAJLnByb2cgPSBnazIwYV9jbGtfcHJvZywKPiAgIAkudGlkeSA9 IGdrMjBhX2Nsa190aWR5LAo+ICsJLnVwZGF0ZSA9IG52NDBfY2xrX3VwZGF0ZSwKPiAgIAkucHN0 YXRlcyA9IGdrMjBhX3BzdGF0ZXMsCj4gICAJLm5yX3BzdGF0ZXMgPSBBUlJBWV9TSVpFKGdrMjBh X3BzdGF0ZXMpLAo+ICAgCS5kb21haW5zID0gewo+IGRpZmYgLS1naXQgYS9kcm0vbm91dmVhdS9u dmttL3N1YmRldi9jbGsvZ20yMGIuYyBiL2RybS9ub3V2ZWF1L252a20vc3ViZGV2L2Nsay9nbTIw Yi5jCj4gaW5kZXggNzFiMmJiYi4uOGM4ZWI4YyAxMDA2NDQKPiAtLS0gYS9kcm0vbm91dmVhdS9u dmttL3N1YmRldi9jbGsvZ20yMGIuYwo+ICsrKyBiL2RybS9ub3V2ZWF1L252a20vc3ViZGV2L2Ns ay9nbTIwYi5jCj4gQEAgLTE2OCw2ICsxNjgsNyBAQCBnbTIwYl9jbGtfc3BlZWRvMCA9IHsKPiAg IAkuY2FsYyA9IGdrMjBhX2Nsa19jYWxjLAo+ICAgCS5wcm9nID0gZ2syMGFfY2xrX3Byb2csCj4g ICAJLnRpZHkgPSBnazIwYV9jbGtfdGlkeSwKPiArCS51cGRhdGUgPSBudjQwX2Nsa191cGRhdGUs Cj4gICAJLnBzdGF0ZXMgPSBnbTIwYl9wc3RhdGVzLAo+ICAgCS5ucl9wc3RhdGVzID0gQVJSQVlf U0laRShnbTIwYl9wc3RhdGVzKSAtIDEsCj4gICAJLmRvbWFpbnMgPSB7Cj4gZGlmZiAtLWdpdCBh L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L2Nsay9ndDIxNS5jIGIvZHJtL25vdXZlYXUvbnZrbS9z dWJkZXYvY2xrL2d0MjE1LmMKPiBpbmRleCAwNTY3MDJlLi44OTEzYWZhIDEwMDY0NAo+IC0tLSBh L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L2Nsay9ndDIxNS5jCj4gKysrIGIvZHJtL25vdXZlYXUv bnZrbS9zdWJkZXYvY2xrL2d0MjE1LmMKPiBAQCAtNTIwLDYgKzUyMCw3IEBAIGd0MjE1X2NsayA9 IHsKPiAgIAkuY2FsYyA9IGd0MjE1X2Nsa19jYWxjLAo+ICAgCS5wcm9nID0gZ3QyMTVfY2xrX3By b2csCj4gICAJLnRpZHkgPSBndDIxNV9jbGtfdGlkeSwKPiArCS51cGRhdGUgPSBudjQwX2Nsa191 cGRhdGUsCj4gICAJLmRvbWFpbnMgPSB7Cj4gICAJCXsgbnZfY2xrX3NyY19jcnlzdGFsICAsIDB4 ZmYgfSwKPiAgIAkJeyBudl9jbGtfc3JjX2NvcmUgICAgICwgMHgwMCwgMCwgImNvcmUiLCAxMDAw IH0sCj4gZGlmZiAtLWdpdCBhL2RybS9ub3V2ZWF1L252a20vc3ViZGV2L2Nsay9tY3A3Ny5jIGIv ZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvY2xrL21jcDc3LmMKPiBpbmRleCAxYzIxYjhiLi5lODBi NjhlIDEwMDY0NAo+IC0tLSBhL2RybS9ub3V2ZWF1L252a20vc3ViZGV2L2Nsay9tY3A3Ny5jCj4g KysrIGIvZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvY2xrL21jcDc3LmMKPiBAQCAtNDAwLDYgKzQw MCw3IEBAIG1jcDc3X2NsayA9IHsKPiAgIAkuY2FsYyA9IG1jcDc3X2Nsa19jYWxjLAo+ICAgCS5w cm9nID0gbWNwNzdfY2xrX3Byb2csCj4gICAJLnRpZHkgPSBtY3A3N19jbGtfdGlkeSwKPiArCS51 cGRhdGUgPSBudjQwX2Nsa191cGRhdGUsCj4gICAJLmRvbWFpbnMgPSB7Cj4gICAJCXsgbnZfY2xr X3NyY19jcnlzdGFsLCAweGZmIH0sCj4gICAJCXsgbnZfY2xrX3NyY19ocmVmICAgLCAweGZmIH0s Cj4gZGlmZiAtLWdpdCBhL2RybS9ub3V2ZWF1L252a20vc3ViZGV2L2Nsay9udjQwLmMgYi9kcm0v bm91dmVhdS9udmttL3N1YmRldi9jbGsvbnY0MC5jCj4gaW5kZXggMmFiOWI5Yi4uYTgwODMxOSAx MDA2NDQKPiAtLS0gYS9kcm0vbm91dmVhdS9udmttL3N1YmRldi9jbGsvbnY0MC5jCj4gKysrIGIv ZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvY2xrL252NDAuYwo+IEBAIC0yMDEsMTIgKzIwMSwyNyBA QCBudjQwX2Nsa190aWR5KHN0cnVjdCBudmttX2NsayAqb2JqKQo+ICAgewo+ICAgfQo+ICAgCj4g K3ZvaWQKPiArbnY0MF9jbGtfdXBkYXRlKHN0cnVjdCBudmttX2NsayAqY2xrLCBpbnQgcHN0YXRl KQo+ICt7Cj4gKwlzdHJ1Y3QgbnZrbV9zdWJkZXYgKnN1YmRldiA9ICZjbGstPnN1YmRldjsKPiAr CWludCByZXQ7Cj4gKwo+ICsJbnZrbV90cmFjZShzdWJkZXYsICItPiAlZFxuIiwgcHN0YXRlKTsK PiArCXJldCA9IG52a21fcHN0YXRlX3Byb2coY2xrLCBwc3RhdGUpOwo+ICsJaWYgKHJldCkgewo+ ICsJCW52a21fZXJyb3Ioc3ViZGV2LCAiZXJyb3Igc2V0dGluZyBwc3RhdGUgJWQ6ICVkXG4iLAo+ ICsJCQkgICBwc3RhdGUsIHJldCk7Cj4gKwl9Cj4gK30KPiArCj4gICBzdGF0aWMgY29uc3Qgc3Ry dWN0IG52a21fY2xrX2Z1bmMKPiAgIG52NDBfY2xrID0gewo+ICAgCS5yZWFkID0gbnY0MF9jbGtf cmVhZCwKPiAgIAkuY2FsYyA9IG52NDBfY2xrX2NhbGMsCj4gICAJLnByb2cgPSBudjQwX2Nsa19w cm9nLAo+ICAgCS50aWR5ID0gbnY0MF9jbGtfdGlkeSwKPiArCS51cGRhdGUgPSBudjQwX2Nsa191 cGRhdGUsCj4gICAJLmRvbWFpbnMgPSB7Cj4gICAJCXsgbnZfY2xrX3NyY19jcnlzdGFsLCAweGZm IH0sCj4gICAJCXsgbnZfY2xrX3NyY19ocmVmICAgLCAweGZmIH0sCj4gZGlmZiAtLWdpdCBhL2Ry bS9ub3V2ZWF1L252a20vc3ViZGV2L2Nsay9udjUwLmMgYi9kcm0vbm91dmVhdS9udmttL3N1YmRl di9jbGsvbnY1MC5jCj4gaW5kZXggNTg0MWYyOS4uYjI5MzE4ZSAxMDA2NDQKPiAtLS0gYS9kcm0v bm91dmVhdS9udmttL3N1YmRldi9jbGsvbnY1MC5jCj4gKysrIGIvZHJtL25vdXZlYXUvbnZrbS9z dWJkZXYvY2xrL252NTAuYwo+IEBAIC01NDQsNiArNTQ0LDcgQEAgbnY1MF9jbGsgPSB7Cj4gICAJ LmNhbGMgPSBudjUwX2Nsa19jYWxjLAo+ICAgCS5wcm9nID0gbnY1MF9jbGtfcHJvZywKPiAgIAku dGlkeSA9IG52NTBfY2xrX3RpZHksCj4gKwkudXBkYXRlID0gbnY0MF9jbGtfdXBkYXRlLAo+ICAg CS5kb21haW5zID0gewo+ICAgCQl7IG52X2Nsa19zcmNfY3J5c3RhbCwgMHhmZiB9LAo+ICAgCQl7 IG52X2Nsa19zcmNfaHJlZiAgICwgMHhmZiB9LAo+IGRpZmYgLS1naXQgYS9kcm0vbm91dmVhdS9u dmttL3N1YmRldi9jbGsvcHJpdi5oIGIvZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvY2xrL3ByaXYu aAo+IGluZGV4IDUxZWFmYzAuLjk1OGY1ZTMgMTAwNjQ0Cj4gLS0tIGEvZHJtL25vdXZlYXUvbnZr bS9zdWJkZXYvY2xrL3ByaXYuaAo+ICsrKyBiL2RybS9ub3V2ZWF1L252a20vc3ViZGV2L2Nsay9w cml2LmgKPiBAQCAtMTAsNiArMTAsNyBAQCBzdHJ1Y3QgbnZrbV9jbGtfZnVuYyB7Cj4gICAJaW50 ICgqY2FsYykoc3RydWN0IG52a21fY2xrICosIHN0cnVjdCBudmttX2NzdGF0ZSAqKTsKPiAgIAlp bnQgKCpwcm9nKShzdHJ1Y3QgbnZrbV9jbGsgKik7Cj4gICAJdm9pZCAoKnRpZHkpKHN0cnVjdCBu dmttX2NsayAqKTsKPiArCXZvaWQgKCp1cGRhdGUpKHN0cnVjdCBudmttX2NsayAqLCBpbnQgcHN0 YXRlKTsKPiAgIAlzdHJ1Y3QgbnZrbV9wc3RhdGUgKnBzdGF0ZXM7Cj4gICAJaW50IG5yX3BzdGF0 ZXM7Cj4gICAJc3RydWN0IG52a21fZG9tYWluIGRvbWFpbnNbXTsKPiBAQCAtMjAsNyArMjEsMTEg QEAgaW50IG52a21fY2xrX2N0b3IoY29uc3Qgc3RydWN0IG52a21fY2xrX2Z1bmMgKiwgc3RydWN0 IG52a21fZGV2aWNlICosIGludCwKPiAgIGludCBudmttX2Nsa19uZXdfKGNvbnN0IHN0cnVjdCBu dmttX2Nsa19mdW5jICosIHN0cnVjdCBudmttX2RldmljZSAqLCBpbnQsCj4gICAJCSAgYm9vbCBh bGxvd19yZWNsb2NrLCBzdHJ1Y3QgbnZrbV9jbGsgKiopOwo+ICAgCj4gK2ludCBudmttX3BzdGF0 ZV9wcm9nKHN0cnVjdCBudmttX2NsayAqLCBpbnQgcHN0YXRlaWQpOwo+ICsKPiAgIGludCBudjA0 X2Nsa19wbGxfY2FsYyhzdHJ1Y3QgbnZrbV9jbGsgKiwgc3RydWN0IG52Ymlvc19wbGwgKiwgaW50 IGNsaywKPiAgIAkJICAgICAgc3RydWN0IG52a21fcGxsX3ZhbHMgKik7Cj4gICBpbnQgbnYwNF9j bGtfcGxsX3Byb2coc3RydWN0IG52a21fY2xrICosIHUzMiByZWcxLCBzdHJ1Y3QgbnZrbV9wbGxf dmFscyAqKTsKPiArCj4gK3ZvaWQgbnY0MF9jbGtfdXBkYXRlKHN0cnVjdCBudmttX2NsayAqLCBp bnQgcHN0YXRlKTsKPiAgICNlbmRpZgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KTm91dmVhdSBtYWlsaW5nIGxpc3QKTm91dmVhdUBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9u b3V2ZWF1Cg==