ZGlmZiAtLWdpdCBhL2FwcHMvRmFsbGJhY2svcmVzL3ZhbHVlcy1lbi1ySU4vc3RyaW5ncy54bWwgYi9hcHBzL0ZhbGxiYWNrL3Jlcy92YWx1ZXMtZW4tcklOL3N0cmluZ3MueG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhN2M4MmNiLi4wMDAwMDAwCi0tLSBhL2FwcHMvRmFsbGJhY2svcmVzL3ZhbHVlcy1lbi1ySU4vc3RyaW5ncy54bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPCEtLSAgQ29weXJpZ2h0IChDKSAyMDA3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLQotICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAgCi0gICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gIAotICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotIC0tPgotCi08cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKLSAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+Ci0gICAgPHN0cmluZyBuYW1lPSJhcHBUaXRsZSIgbXNnaWQ9IjE2MTQxMDAwMTkxMzExNjYwNiI+IkZhbGxiYWNrIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idGl0bGUiIG1zZ2lkPSI4MTU2Mjc0NTY1MDA2MTI1MTM2Ij4iVW5zdXBwb3J0ZWQgYWN0aW9uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZXJyb3IiIG1zZ2lkPSI2NTM5NjE1ODMyOTIzMzYyMzAxIj4iVGhhdCBhY3Rpb24gaXMgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQuIjwvc3RyaW5nPgotPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9hcHBzL0ZhbGxiYWNrL3Jlcy92YWx1ZXMtZXQtckVFL3N0cmluZ3MueG1sIGIvYXBwcy9GYWxsYmFjay9yZXMvdmFsdWVzLWV0LXJFRS9zdHJpbmdzLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTgxYjMyNC4uMDAwMDAwMAotLS0gYS9hcHBzL0ZhbGxiYWNrL3Jlcy92YWx1ZXMtZXQtckVFL3N0cmluZ3MueG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTwhLS0gIENvcHlyaWdodCAoQykgMjAwNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0KLSAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gIAotICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICAKLSAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAtLT4KLQotPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCi0gICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgotICAgIDxzdHJpbmcgbmFtZT0iYXBwVGl0bGUiIG1zZ2lkPSIxNjE0MTAwMDE5MTMxMTY2MDYiPiJUYWFuZGVwaWx0Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idGl0bGUiIG1zZ2lkPSI4MTU2Mjc0NTY1MDA2MTI1MTM2Ij4iVG9ldHVzZXRhIHRvaW1pbmciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJlcnJvciIgbXNnaWQ9IjY1Mzk2MTU4MzI5MjMzNjIzMDEiPiJTZWRhIHRvaW1pbmd1dCBwcmFlZ3UgZWkgdG9ldGF0YS4iPC9zdHJpbmc+Ci08L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2FwcHMvRmFsbGJhY2svcmVzL3ZhbHVlcy1mci1yQ0Evc3RyaW5ncy54bWwgYi9hcHBzL0ZhbGxiYWNrL3Jlcy92YWx1ZXMtZnItckNBL3N0cmluZ3MueG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNzUxYjk3Li4wMDAwMDAwCi0tLSBhL2FwcHMvRmFsbGJhY2svcmVzL3ZhbHVlcy1mci1yQ0Evc3RyaW5ncy54bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPCEtLSAgQ29weXJpZ2h0IChDKSAyMDA3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLQotICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAgCi0gICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gIAotICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotIC0tPgotCi08cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKLSAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+Ci0gICAgPHN0cmluZyBuYW1lPSJhcHBUaXRsZSIgbXNnaWQ9IjE2MTQxMDAwMTkxMzExNjYwNiI+IkFwcGxpY2F0aW9uIGRlIHNlY291cnMiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ0aXRsZSIgbXNnaWQ9IjgxNTYyNzQ1NjUwMDYxMjUxMzYiPiJBY3Rpb24gbm9uIHByaXNlIGVuIGNoYXJnZSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImVycm9yIiBtc2dpZD0iNjUzOTYxNTgzMjkyMzM2MjMwMSI+IkNldHRlIGFjdGlvbiBuXCdlc3QgYWN0dWVsbGVtZW50IHBhcyBwcmlzZSBlbiBjaGFyZ2UuIjwvc3RyaW5nPgotPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9hcHBzL0ZhbGxiYWNrL3Jlcy92YWx1ZXMtaHktckFNL3N0cmluZ3MueG1sIGIvYXBwcy9GYWxsYmFjay9yZXMvdmFsdWVzLWh5LXJBTS9zdHJpbmdzLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTU0Nzc0MS4uMDAwMDAwMAotLS0gYS9hcHBzL0ZhbGxiYWNrL3Jlcy92YWx1ZXMtaHktckFNL3N0cmluZ3MueG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTwhLS0gIENvcHlyaWdodCAoQykgMjAwNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0KLSAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gIAotICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICAKLSAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAtLT4KLQotPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCi0gICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgotICAgIDxzdHJpbmcgbmFtZT0iYXBwVGl0bGUiIG1zZ2lkPSIxNjE0MTAwMDE5MTMxMTY2MDYiPiJGYWxsYmFjayI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InRpdGxlIiBtc2dpZD0iODE1NjI3NDU2NTAwNjEyNTEzNiI+ItWJ1aHVu9Wh1a/WgdW+1bjVsiDVo9W41oDVrtW41bLVuNaC1anVtdW41oLVtiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImVycm9yIiBtc2dpZD0iNjUzOTYxNTgzMjkyMzM2MjMwMSI+ItSx1bXVpCDVo9W41oDVrtW41bLVuNaC1anVtdW41oLVttW2INWh1bXVqtW0INW51asg1aHVu9Wh1a/WgdW+1bjWgtW0OiI8L3N0cmluZz4KLTwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvYXBwcy9GYWxsYmFjay9yZXMvdmFsdWVzLWthLXJHRS9zdHJpbmdzLnhtbCBiL2FwcHMvRmFsbGJhY2svcmVzL3ZhbHVlcy1rYS1yR0Uvc3RyaW5ncy54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ2OWExMzUuLjAwMDAwMDAKLS0tIGEvYXBwcy9GYWxsYmFjay9yZXMvdmFsdWVzLWthLXJHRS9zdHJpbmdzLnhtbAorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08IS0tICBDb3B5cmlnaHQgKEMpIDIwMDcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotCi0gICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICAKLSAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAgCi0gICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gLS0+Ci0KLTxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgotICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KLSAgICA8c3RyaW5nIG5hbWU9ImFwcFRpdGxlIiBtc2dpZD0iMTYxNDEwMDAxOTEzMTE2NjA2Ij4i4YOo4YOU4YOb4YOd4YOV4YOa4YOY4YOXIOGDoOGDlOGDn+GDmOGDm+GDqOGDmCDhg5Lhg5Dhg5Phg5Dhg6Hhg5Xhg5rhg5AiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ0aXRsZSIgbXNnaWQ9IjgxNTYyNzQ1NjUwMDYxMjUxMzYiPiLhg5vhg53hg6Xhg5vhg5Thg5Phg5Thg5Hhg5Ag4YOb4YOu4YOQ4YOg4YOT4YOQ4YOt4YOU4YOg4YOY4YOa4YOYIOGDkOGDoCDhg5Dhg6Dhg5jhg6EiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJlcnJvciIgbXNnaWQ9IjY1Mzk2MTU4MzI5MjMzNjIzMDEiPiLhg5Thg6Eg4YOb4YOd4YOl4YOb4YOU4YOT4YOU4YOR4YOQIOGDkOGDm+GDn+GDkOGDm+GDkOGDkyDhg5vhg67hg5Dhg6Dhg5Phg5Dhg6Phg63hg5Thg6Dhg5Thg5rhg5jhg5AuIjwvc3RyaW5nPgotPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9hcHBzL0ZhbGxiYWNrL3Jlcy92YWx1ZXMta20tcktIL3N0cmluZ3MueG1sIGIvYXBwcy9GYWxsYmFjay9yZXMvdmFsdWVzLWttLXJLSC9zdHJpbmdzLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTQ0MjMzNS4uMDAwMDAwMAotLS0gYS9hcHBzL0ZhbGxiYWNrL3Jlcy92YWx1ZXMta20tcktIL3N0cmluZ3MueG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTwhLS0gIENvcHlyaWdodCAoQykgMjAwNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0KLSAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gIAotICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICAKLSAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAtLT4KLQotPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCi0gICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgotICAgIDxzdHJpbmcgbmFtZT0iYXBwVGl0bGUiIG1zZ2lkPSIxNjE0MTAwMDE5MTMxMTY2MDYiPiJGYWxsYmFjayI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InRpdGxlIiBtc2dpZD0iODE1NjI3NDU2NTAwNjEyNTEzNiI+IuGen+GegOGemOGfkuGemOGel+GetuGeluKAi+GemOGet+Gek+KAi+GelOGetuGek+KAi+GeguGetuGfhuGekeGfkuGemiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImVycm9yIiBtc2dpZD0iNjUzOTYxNTgzMjkyMzM2MjMwMSI+IuGelOGeheGfkuGeheGeu+GelOGfkuGelOGek+GfkuGek+KAi+Gen+GegOGemOGfkuGemOGel+GetuGeluKAi+Gek+GfhOGfh+KAi+GemOGet+Gek+KAi+Gej+GfkuGemuGevOGenOKAi+GelOGetuGek+KAi+GeguGetuGfhuGekeGfkuGemuKAi+GekeGfgeGflCI8L3N0cmluZz4KLTwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvYXBwcy9GYWxsYmFjay9yZXMvdmFsdWVzLWxvLXJMQS9zdHJpbmdzLnhtbCBiL2FwcHMvRmFsbGJhY2svcmVzL3ZhbHVlcy1sby1yTEEvc3RyaW5ncy54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk0OGI2MGYuLjAwMDAwMDAKLS0tIGEvYXBwcy9GYWxsYmFjay9yZXMvdmFsdWVzLWxvLXJMQS9zdHJpbmdzLnhtbAorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08IS0tICBDb3B5cmlnaHQgKEMpIDIwMDcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotCi0gICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICAKLSAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAgCi0gICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gLS0+Ci0KLTxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgotICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KLSAgICA8c3RyaW5nIG5hbWU9ImFwcFRpdGxlIiBtc2dpZD0iMTYxNDEwMDAxOTEzMTE2NjA2Ij4iRmFsbGJhY2siPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ0aXRsZSIgbXNnaWQ9IjgxNTYyNzQ1NjUwMDYxMjUxMzYiPiLguoHgurLgupngu4Dguq7gurHgupTguqfgur3guoHgupfgurXgu4jguprgu43gu4jguq7guq3guofguq7gurHgupoiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJlcnJvciIgbXNnaWQ9IjY1Mzk2MTU4MzI5MjMzNjIzMDEiPiLguoHgurLgupngu4Dguq7gurHgupTguqfgur3guoHgupngurHgu4ngupnguo3gurHguofguprgu43gu4jguq7guq3guofguq7gurHguprgu4Dgupfgurfgu4jguq0iPC9zdHJpbmc+Ci08L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2FwcHMvRmFsbGJhY2svcmVzL3ZhbHVlcy1tbi1yTU4vc3RyaW5ncy54bWwgYi9hcHBzL0ZhbGxiYWNrL3Jlcy92YWx1ZXMtbW4tck1OL3N0cmluZ3MueG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4Y2IzODcwLi4wMDAwMDAwCi0tLSBhL2FwcHMvRmFsbGJhY2svcmVzL3ZhbHVlcy1tbi1yTU4vc3RyaW5ncy54bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPCEtLSAgQ29weXJpZ2h0IChDKSAyMDA3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLQotICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAgCi0gICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gIAotICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotIC0tPgotCi08cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKLSAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+Ci0gICAgPHN0cmluZyBuYW1lPSJhcHBUaXRsZSIgbXNnaWQ9IjE2MTQxMDAwMTkxMzExNjYwNiI+IkZhbGxiYWNrIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idGl0bGUiIG1zZ2lkPSI4MTU2Mjc0NTY1MDA2MTI1MTM2Ij4i0JTRjdC80LbQuNCz0LTRjdGN0LPSr9C5INKv0LnQu9C00Y3QuyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImVycm9yIiBtc2dpZD0iNjUzOTYxNTgzMjkyMzM2MjMwMSI+ItCt0L3RjSDSr9C50LvQtNGN0Lsg0L7QtNC+0L7Qs9C+0L7RgCDQtNGN0LzQttC40LPQtNGN0Y3Qs9Kv0LkuIjwvc3RyaW5nPgotPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9hcHBzL0ZhbGxiYWNrL3Jlcy92YWx1ZXMtbXMtck1ZL3N0cmluZ3MueG1sIGIvYXBwcy9GYWxsYmFjay9yZXMvdmFsdWVzLW1zLXJNWS9zdHJpbmdzLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTMwZmU3OS4uMDAwMDAwMAotLS0gYS9hcHBzL0ZhbGxiYWNrL3Jlcy92YWx1ZXMtbXMtck1ZL3N0cmluZ3MueG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTwhLS0gIENvcHlyaWdodCAoQykgMjAwNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0KLSAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gIAotICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICAKLSAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAtLT4KLQotPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCi0gICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgotICAgIDxzdHJpbmcgbmFtZT0iYXBwVGl0bGUiIG1zZ2lkPSIxNjE0MTAwMDE5MTMxMTY2MDYiPiJKYXR1aCBiYWxpayI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InRpdGxlIiBtc2dpZD0iODE1NjI3NDU2NTAwNjEyNTEzNiI+IlRpbmRha2FuIHRpZGFrIGRpc29rb25nIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZXJyb3IiIG1zZ2lkPSI2NTM5NjE1ODMyOTIzMzYyMzAxIj4iVGluZGFrYW4gdGlkYWsgZGlzb2tvbmcgcGFkYSBtYXNhIGluaS4iPC9zdHJpbmc+Ci08L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2FwcHMvRmFsbGJhY2svcmVzL3ZhbHVlcy16aC1ySEsvc3RyaW5ncy54bWwgYi9hcHBzL0ZhbGxiYWNrL3Jlcy92YWx1ZXMtemgtckhLL3N0cmluZ3MueG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZTAxYzkyLi4wMDAwMDAwCi0tLSBhL2FwcHMvRmFsbGJhY2svcmVzL3ZhbHVlcy16aC1ySEsvc3RyaW5ncy54bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPCEtLSAgQ29weXJpZ2h0IChDKSAyMDA3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLQotICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAgCi0gICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gIAotICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotIC0tPgotCi08cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKLSAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+Ci0gICAgPHN0cmluZyBuYW1lPSJhcHBUaXRsZSIgbXNnaWQ9IjE2MTQxMDAwMTkxMzExNjYwNiI+IuW+jOWCmSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InRpdGxlIiBtc2dpZD0iODE1NjI3NDU2NTAwNjEyNTEzNiI+IuS4jeaUr+aPtOeahOaTjeS9nCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImVycm9yIiBtc2dpZD0iNjUzOTYxNTgzMjkyMzM2MjMwMSI+IuebruWJjeS4jeaUr+aPtOipsuaTjeS9nOOAgiI8L3N0cmluZz4KLTwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvYnVpbGQvd2luZG93c19zZGtfd2hpdGVsaXN0Lm1rIGIvYnVpbGQvd2luZG93c19zZGtfd2hpdGVsaXN0Lm1rCmluZGV4IGYyZjRkOGUuLjU0OGU2ZmQgMTAwNjQ0Ci0tLSBhL2J1aWxkL3dpbmRvd3Nfc2RrX3doaXRlbGlzdC5taworKysgYi9idWlsZC93aW5kb3dzX3Nka193aGl0ZWxpc3QubWsKQEAgLTUzLDYgKzUzLDcgQEAKIAlzeXN0ZW0vY29yZS9saWJjdXRpbHMgXAogCXN5c3RlbS9jb3JlL2xpYmxvZyBcCiAJc3lzdGVtL2NvcmUvbGlic3BhcnNlIFwKKwlzeXN0ZW0vY29yZS9saWJ6aXBhcmNoaXZlIFwKIAlzeXN0ZW0vY29yZS9saWJ6aXBmaWxlIFwKIAlzeXN0ZW0vY29yZS9saWJ1dGlscyBcCiAJc3lzdGVtL2V4dHJhcy9leHQ0X3V0aWxzCmRpZmYgLS1naXQgYS9pZGUvZWNsaXBzZS9hbmRyb2lkLWluY2x1ZGUtcGF0aHMueG1sIGIvaWRlL2VjbGlwc2UvYW5kcm9pZC1pbmNsdWRlLXBhdGhzLnhtbAppbmRleCA0NDg3ZmE0Li45MGJiMzBmIDEwMDY0NAotLS0gYS9pZGUvZWNsaXBzZS9hbmRyb2lkLWluY2x1ZGUtcGF0aHMueG1sCisrKyBiL2lkZS9lY2xpcHNlL2FuZHJvaWQtaW5jbHVkZS1wYXRocy54bWwKQEAgLTExLDkgKzExLDkgQEAKIDxpbmNsdWRlcGF0aD4ke1Byb2pEaXJQYXRofS9iaW9uaWMvbGliYy9hcmNoLWFybS9pbmNsdWRlPC9pbmNsdWRlcGF0aD4KIDxpbmNsdWRlcGF0aD4ke1Byb2pEaXJQYXRofS9iaW9uaWMvbGliYy9pbmNsdWRlPC9pbmNsdWRlcGF0aD4KIDxpbmNsdWRlcGF0aD4ke1Byb2pEaXJQYXRofS9iaW9uaWMvbGlic3RkYysrL2luY2x1ZGU8L2luY2x1ZGVwYXRoPgotPGluY2x1ZGVwYXRoPiR7UHJvakRpclBhdGh9L2Jpb25pYy9saWJjL2tlcm5lbC9jb21tb248L2luY2x1ZGVwYXRoPgotPGluY2x1ZGVwYXRoPiR7UHJvakRpclBhdGh9L2Jpb25pYy9saWJjL2tlcm5lbC9jb21tb24vbGludXg8L2luY2x1ZGVwYXRoPgotPGluY2x1ZGVwYXRoPiR7UHJvakRpclBhdGh9L2Jpb25pYy9saWJjL2tlcm5lbC9hcmNoLWFybTwvaW5jbHVkZXBhdGg+Cis8aW5jbHVkZXBhdGg+JHtQcm9qRGlyUGF0aH0vYmlvbmljL2xpYmMva2VybmVsL3VhcGk8L2luY2x1ZGVwYXRoPgorPGluY2x1ZGVwYXRoPiR7UHJvakRpclBhdGh9L2Jpb25pYy9saWJjL2tlcm5lbC91YXBpL2xpbnV4PC9pbmNsdWRlcGF0aD4KKzxpbmNsdWRlcGF0aD4ke1Byb2pEaXJQYXRofS9iaW9uaWMvbGliYy9rZXJuZWwvdWFwaS9hc20tYXJtPC9pbmNsdWRlcGF0aD4KIDxpbmNsdWRlcGF0aD4ke1Byb2pEaXJQYXRofS9iaW9uaWMvbGlibS9pbmNsdWRlPC9pbmNsdWRlcGF0aD4KIDxpbmNsdWRlcGF0aD4ke1Byb2pEaXJQYXRofS9iaW9uaWMvbGlibS9pbmNsdWRlL2FybTwvaW5jbHVkZXBhdGg+CiA8aW5jbHVkZXBhdGg+JHtQcm9qRGlyUGF0aH0vYmlvbmljL2xpYnRocmVhZF9kYi9pbmNsdWRlPC9pbmNsdWRlcGF0aD4KQEAgLTQxLDkgKzQxLDkgQEAKIDxpbmNsdWRlcGF0aD4ke1Byb2pEaXJQYXRofS9iaW9uaWMvbGliYy9hcmNoLWFybS9pbmNsdWRlPC9pbmNsdWRlcGF0aD4KIDxpbmNsdWRlcGF0aD4ke1Byb2pEaXJQYXRofS9iaW9uaWMvbGliYy9pbmNsdWRlPC9pbmNsdWRlcGF0aD4KIDxpbmNsdWRlcGF0aD4ke1Byb2pEaXJQYXRofS9iaW9uaWMvbGlic3RkYysrL2luY2x1ZGU8L2luY2x1ZGVwYXRoPgotPGluY2x1ZGVwYXRoPiR7UHJvakRpclBhdGh9L2Jpb25pYy9saWJjL2tlcm5lbC9jb21tb248L2luY2x1ZGVwYXRoPgotPGluY2x1ZGVwYXRoPiR7UHJvakRpclBhdGh9L2Jpb25pYy9saWJjL2tlcm5lbC9jb21tb24vbGludXg8L2luY2x1ZGVwYXRoPgotPGluY2x1ZGVwYXRoPiR7UHJvakRpclBhdGh9L2Jpb25pYy9saWJjL2tlcm5lbC9hcmNoLWFybTwvaW5jbHVkZXBhdGg+Cis8aW5jbHVkZXBhdGg+JHtQcm9qRGlyUGF0aH0vYmlvbmljL2xpYmMva2VybmVsL3VhcGk8L2luY2x1ZGVwYXRoPgorPGluY2x1ZGVwYXRoPiR7UHJvakRpclBhdGh9L2Jpb25pYy9saWJjL2tlcm5lbC91YXBpL2xpbnV4PC9pbmNsdWRlcGF0aD4KKzxpbmNsdWRlcGF0aD4ke1Byb2pEaXJQYXRofS9iaW9uaWMvbGliYy9rZXJuZWwvdWFwaS9hc20tYXJtPC9pbmNsdWRlcGF0aD4KIDxpbmNsdWRlcGF0aD4ke1Byb2pEaXJQYXRofS9iaW9uaWMvbGlibS9pbmNsdWRlPC9pbmNsdWRlcGF0aD4KIDxpbmNsdWRlcGF0aD4ke1Byb2pEaXJQYXRofS9iaW9uaWMvbGlibS9pbmNsdWRlL2FybTwvaW5jbHVkZXBhdGg+CiA8aW5jbHVkZXBhdGg+JHtQcm9qRGlyUGF0aH0vYmlvbmljL2xpYnRocmVhZF9kYi9pbmNsdWRlPC9pbmNsdWRlcGF0aD4KQEAgLTcxLDkgKzcxLDkgQEAKIDxpbmNsdWRlcGF0aD4ke1Byb2pEaXJQYXRofS9iaW9uaWMvbGliYy9hcmNoLWFybS9pbmNsdWRlPC9pbmNsdWRlcGF0aD4KIDxpbmNsdWRlcGF0aD4ke1Byb2pEaXJQYXRofS9iaW9uaWMvbGliYy9pbmNsdWRlPC9pbmNsdWRlcGF0aD4KIDxpbmNsdWRlcGF0aD4ke1Byb2pEaXJQYXRofS9iaW9uaWMvbGlic3RkYysrL2luY2x1ZGU8L2luY2x1ZGVwYXRoPgotPGluY2x1ZGVwYXRoPiR7UHJvakRpclBhdGh9L2Jpb25pYy9saWJjL2tlcm5lbC9jb21tb248L2luY2x1ZGVwYXRoPgotPGluY2x1ZGVwYXRoPiR7UHJvakRpclBhdGh9L2Jpb25pYy9saWJjL2tlcm5lbC9jb21tb24vbGludXg8L2luY2x1ZGVwYXRoPgotPGluY2x1ZGVwYXRoPiR7UHJvakRpclBhdGh9L2Jpb25pYy9saWJjL2tlcm5lbC9hcmNoLWFybTwvaW5jbHVkZXBhdGg+Cis8aW5jbHVkZXBhdGg+JHtQcm9qRGlyUGF0aH0vYmlvbmljL2xpYmMva2VybmVsL3VhcGk8L2luY2x1ZGVwYXRoPgorPGluY2x1ZGVwYXRoPiR7UHJvakRpclBhdGh9L2Jpb25pYy9saWJjL2tlcm5lbC91YXBpL2xpbnV4PC9pbmNsdWRlcGF0aD4KKzxpbmNsdWRlcGF0aD4ke1Byb2pEaXJQYXRofS9iaW9uaWMvbGliYy9rZXJuZWwvdWFwaS9hc20tYXJtPC9pbmNsdWRlcGF0aD4KIDxpbmNsdWRlcGF0aD4ke1Byb2pEaXJQYXRofS9iaW9uaWMvbGlibS9pbmNsdWRlPC9pbmNsdWRlcGF0aD4KIDxpbmNsdWRlcGF0aD4ke1Byb2pEaXJQYXRofS9iaW9uaWMvbGlibS9pbmNsdWRlL2FybTwvaW5jbHVkZXBhdGg+CiA8aW5jbHVkZXBhdGg+JHtQcm9qRGlyUGF0aH0vYmlvbmljL2xpYnRocmVhZF9kYi9pbmNsdWRlPC9pbmNsdWRlcGF0aD4KZGlmZiAtLWdpdCBhL25kay9BbmRyb2lkLm1rIGIvbmRrL0FuZHJvaWQubWsKaW5kZXggZTdkOWZlOS4uNmM5Mzc2MSAxMDA2NDQKLS0tIGEvbmRrL0FuZHJvaWQubWsKKysrIGIvbmRrL0FuZHJvaWQubWsKQEAgLTEsMyArMSw0IEBACiAjIFBsZWFzZSB0aGlzIGZpbGUgZW1wdHkuIEl0IGlzIHVzZWQgdG8gbWFrZSB0aGUgQW5kcm9pZCBidWlsZCBzeXN0ZW0gaGFwcHkuCiAKIGluY2x1ZGUgZGV2ZWxvcG1lbnQvbmRrL3NvdXJjZXMvYW5kcm9pZC9saWJwb3J0YWJsZS9BbmRyb2lkLm1rCitpbmNsdWRlIGRldmVsb3BtZW50L25kay9zb3VyY2VzL2FuZHJvaWQvbmF0aXZlX2FwcF9nbHVlL0FuZHJvaWQubWsKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xMi9hcmNoLWFybS9zeW1ib2xzL2xpYmMuc28uZnVuY3Rpb25zLnR4dCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xMi9hcmNoLWFybS9zeW1ib2xzL2xpYmMuc28uZnVuY3Rpb25zLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hY2ZiOTRjCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTEyL2FyY2gtYXJtL3N5bWJvbHMvbGliYy5zby5mdW5jdGlvbnMudHh0CkBAIC0wLDAgKzEsMTA4NCBAQAorTUQ1X0ZpbmFsCitNRDVfSW5pdAorTUQ1X1VwZGF0ZQorU0hBMUZpbmFsCitTSEExSW5pdAorU0hBMVRyYW5zZm9ybQorU0hBMVVwZGF0ZQorX1Vud2luZF9CYWNrdHJhY2UKK19VbndpbmRfQ29tcGxldGUKK19VbndpbmRfRGVsZXRlRXhjZXB0aW9uCitfVW53aW5kX0ZvcmNlZFVud2luZAorX1Vud2luZF9HZXRDRkEKK19VbndpbmRfR2V0RGF0YVJlbEJhc2UKK19VbndpbmRfR2V0TGFuZ3VhZ2VTcGVjaWZpY0RhdGEKK19VbndpbmRfR2V0UmVnaW9uU3RhcnQKK19VbndpbmRfR2V0VGV4dFJlbEJhc2UKK19VbndpbmRfUmFpc2VFeGNlcHRpb24KK19VbndpbmRfUmVzdW1lCitfVW53aW5kX1Jlc3VtZV9vcl9SZXRocm93CitfVW53aW5kX1ZSU19HZXQKK19VbndpbmRfVlJTX1BvcAorX1Vud2luZF9WUlNfU2V0CitfX19VbndpbmRfQmFja3RyYWNlCitfX19VbndpbmRfRm9yY2VkVW53aW5kCitfX19VbndpbmRfUmFpc2VFeGNlcHRpb24KK19fX1Vud2luZF9SZXN1bWUKK19fX1Vud2luZF9SZXN1bWVfb3JfUmV0aHJvdworX19hZGRkZjMKK19fYWRkc2YzCitfX2FlYWJpX2F0ZXhpdAorX19hZWFiaV9jZGNtcGVxCitfX2FlYWJpX2NkY21wbGUKK19fYWVhYmlfY2RyY21wbGUKK19fYWVhYmlfZDJmCitfX2FlYWJpX2QyaXoKK19fYWVhYmlfZGFkZAorX19hZWFiaV9kY21wZXEKK19fYWVhYmlfZGNtcGdlCitfX2FlYWJpX2RjbXBndAorX19hZWFiaV9kY21wbGUKK19fYWVhYmlfZGNtcGx0CitfX2FlYWJpX2RjbXB1bgorX19hZWFiaV9kZGl2CitfX2FlYWJpX2RtdWwKK19fYWVhYmlfZHJzdWIKK19fYWVhYmlfZHN1YgorX19hZWFiaV9mMmQKK19fYWVhYmlfZjJpegorX19hZWFiaV9mYWRkCitfX2FlYWJpX2ZjbXB1bgorX19hZWFiaV9mZGl2CitfX2FlYWJpX2ZtdWwKK19fYWVhYmlfZnJzdWIKK19fYWVhYmlfZnN1YgorX19hZWFiaV9pMmQKK19fYWVhYmlfaTJmCitfX2FlYWJpX2lkaXYKK19fYWVhYmlfaWRpdjAKK19fYWVhYmlfaWRpdm1vZAorX19hZWFiaV9sMmQKK19fYWVhYmlfbDJmCitfX2FlYWJpX2xkaXYwCitfX2FlYWJpX2xkaXZtb2QKK19fYWVhYmlfbG11bAorX19hZWFiaV9tZW1jbHIKK19fYWVhYmlfbWVtY2xyNAorX19hZWFiaV9tZW1jbHI4CitfX2FlYWJpX21lbWNweQorX19hZWFiaV9tZW1jcHk0CitfX2FlYWJpX21lbWNweTgKK19fYWVhYmlfbWVtbW92ZQorX19hZWFiaV9tZW1tb3ZlNAorX19hZWFiaV9tZW1tb3ZlOAorX19hZWFiaV9tZW1zZXQKK19fYWVhYmlfbWVtc2V0NAorX19hZWFiaV9tZW1zZXQ4CitfX2FlYWJpX3VpMmQKK19fYWVhYmlfdWkyZgorX19hZWFiaV91aWRpdgorX19hZWFiaV91aWRpdm1vZAorX19hZWFiaV91bDJkCitfX2FlYWJpX3VsMmYKK19fYWVhYmlfdWxkaXZtb2QKK19fYWVhYmlfdW53aW5kX2NwcF9wcjAKK19fYWVhYmlfdW53aW5kX2NwcF9wcjEKK19fYWVhYmlfdW53aW5kX2NwcF9wcjIKK19fYXJjNF9nZXRieXRlCitfX2Fzc2VydAorX19hc3NlcnQyCitfX2F0ZXhpdF9yZWdpc3Rlcl9jbGVhbnVwCitfX2F0b21pY19jbXB4Y2hnCitfX2F0b21pY19kZWMKK19fYXRvbWljX2luYworX19hdG9taWNfc3dhcAorX19iNjRfbnRvcAorX19iNjRfcHRvbgorX19iaW9uaWNfY2xvbmUKK19fYmlvbmljX2Nsb25lX2VudHJ5CitfX2Jpb25pY19saWJnY2NfY29tcGF0X2hvb2tzCitfX2JyaworX19jbXBkZjIKK19fY3hhX2F0ZXhpdAorX19jeGFfZmluYWxpemUKK19fZGl2MAorX19kaXZkZjMKK19fZGl2ZGkzCitfX2RpdnNmMworX19kaXZzaTMKK19fZG5fY29tcAorX19kbl9jb3VudF9sYWJlbHMKK19fZG5fc2tpcG5hbWUKK19fZG9yYW5kNDgKK19fZHRvYQorX19lcWRmMgorX19lcnJubworX19ldkFkZFRpbWUKK19fZXZDbXBUaW1lCitfX2V2Q29uc0lvdmVjCitfX2V2Q29uc1RpbWUKK19fZXZOb3dUaW1lCitfX2V2U3ViVGltZQorX19ldlRpbWVTcGVjCitfX2V2VGltZVZhbAorX19ldlVUQ1RpbWUKK19fZXh0ZW5kc2ZkZjIKK19fZmNudGwKK19fZmNudGw2NAorX19maW5kZW52CitfX2ZpeGRmc2kKK19fZml4c2ZzaQorX19mbG9hdGRpZGYKK19fZmxvYXRkaXNmCitfX2Zsb2F0c2lkZgorX19mbG9hdHNpc2YKK19fZmxvYXR1bmRpZGYKK19fZmxvYXR1bmRpc2YKK19fZmxvYXR1bnNpZGYKK19fZmxvYXR1bnNpc2YKK19fZm9yaworX19mcF9ucXVlcnkKK19fZnBfcXVlcnkKK19fZnJlbW92ZWxvY2sKK19fZnN0YXRmczY0CitfX2Z1dGV4X3N5c2NhbGwzCitfX2Z1dGV4X3N5c2NhbGw0CitfX2Z1dGV4X3dhaXQKK19fZnV0ZXhfd2FpdF9leAorX19mdXRleF93YWtlCitfX2Z1dGV4X3dha2VfZXgKK19fZ2VkZjIKK19fZ2V0X2hfZXJybm8KK19fZ2V0X3BjCitfX2dldF9yZXNfY2FjaGUKK19fZ2V0X3NwCitfX2dldF9zdGFja19iYXNlCitfX2dldF90aHJlYWQKK19fZ2V0Y3dkCitfX2dldHByaW9yaXR5CitfX2dudV9VbndpbmRfQmFja3RyYWNlCitfX2dudV9VbndpbmRfRmluZF9leGlkeAorX19nbnVfVW53aW5kX0ZvcmNlZFVud2luZAorX19nbnVfVW53aW5kX1JhaXNlRXhjZXB0aW9uCitfX2dudV9VbndpbmRfUmVzdG9yZV9WRlAKK19fZ251X1Vud2luZF9SZXN0b3JlX1ZGUF9ECitfX2dudV9VbndpbmRfUmVzdG9yZV9WRlBfRF8xNl90b18zMQorX19nbnVfVW53aW5kX1Jlc3RvcmVfV01NWEMKK19fZ251X1Vud2luZF9SZXN0b3JlX1dNTVhECitfX2dudV9VbndpbmRfUmVzdW1lCitfX2dudV9VbndpbmRfUmVzdW1lX29yX1JldGhyb3cKK19fZ251X1Vud2luZF9TYXZlX1ZGUAorX19nbnVfVW53aW5kX1NhdmVfVkZQX0QKK19fZ251X1Vud2luZF9TYXZlX1ZGUF9EXzE2X3RvXzMxCitfX2dudV9VbndpbmRfU2F2ZV9XTU1YQworX19nbnVfVW53aW5kX1NhdmVfV01NWEQKK19fZ251X2xkaXZtb2RfaGVscGVyCitfX2dudV91bGRpdm1vZF9oZWxwZXIKK19fZ251X3Vud2luZF9leGVjdXRlCitfX2dudV91bndpbmRfZnJhbWUKK19fZ3RkZjIKK19faG9zdGFsaWFzCitfX2luaXRfdGxzCitfX2lvY3RsCitfX2xlZGYyCitfX2xpYmNfYW5kcm9pZF9hYm9ydAorX19saWJjX2FuZHJvaWRfbG9nX2Fzc2VydAorX19saWJjX2FuZHJvaWRfbG9nX3ByaW50CitfX2xpYmNfYW5kcm9pZF9sb2dfdnByaW50CitfX2xpYmNfZmluaQorX19saWJjX2luaXQKK19fbGliY19pbml0X2NvbW1vbgorX19saWJjX3ByZWluaXQKK19fbGxzZWVrCitfX2xvY19hdG9uCitfX2xvY19udG9hCitfX2x0ZGYyCitfX21lbWNtcDE2CitfX21tYXAyCitfX211bGRmMworX19tdWxkaTMKK19fbXVsc2YzCitfX25lZGYyCitfX25zX2Zvcm1hdF90dGwKK19fbnNfZ2V0MTYKK19fbnNfZ2V0MzIKK19fbnNfaW5pdHBhcnNlCitfX25zX21ha2VjYW5vbgorX19uc19tc2dfZ2V0ZmxhZworX19uc19uYW1lX2NvbXByZXNzCitfX25zX25hbWVfbnRvbAorX19uc19uYW1lX250b3AKK19fbnNfbmFtZV9wYWNrCitfX25zX25hbWVfcHRvbgorX19uc19uYW1lX3JvbGxiYWNrCitfX25zX25hbWVfc2tpcAorX19uc19uYW1lX3VuY29tcHJlc3MKK19fbnNfbmFtZV91bnBhY2sKK19fbnNfcGFyc2VycgorX19uc19wdXQxNgorX19uc19wdXQzMgorX19uc19zYW1lbmFtZQorX19uc19za2lwcnIKK19fbnNfc3ByaW50cnIKK19fbnNfc3ByaW50cnJmCitfX29wZW4KK19fb3BlbmF0CitfX3BfY2RuYW1lCitfX3BfY2RubmFtZQorX19wX2NsYXNzCitfX3BfZnFuYW1lCitfX3BfZnFubmFtZQorX19wX29wdGlvbgorX19wX3F1ZXJ5CitfX3BfcmNvZGUKK19fcF9zZWNzdG9kYXRlCitfX3Bfc2VjdGlvbgorX19wX3NvY2t1bgorX19wX3RpbWUKK19fcF90eXBlCitfX3ByZWFkNjQKK19fcHRocmVhZF9jbGVhbnVwX3BvcAorX19wdGhyZWFkX2NsZWFudXBfcHVzaAorX19wdGhyZWFkX2Nsb25lCitfX3B0aHJlYWRfY29uZF90aW1lZHdhaXQKK19fcHRocmVhZF9jb25kX3RpbWVkd2FpdF9yZWxhdGl2ZQorX19wdHJhY2UKK19fcHV0bG9uZworX19wdXRzaG9ydAorX19wd3JpdGU2NAorX19yZWJvb3QKK19fcmVzX2Nsb3NlCitfX3Jlc19kbm9rCitfX3Jlc19nZXRfbmliYmxlc3VmZml4CitfX3Jlc19nZXRfbmliYmxlc3VmZml4MgorX19yZXNfZ2V0X3N0YXRlCitfX3Jlc19nZXRfc3RhdGljCitfX3Jlc19nZXRzZXJ2ZXJzCitfX3Jlc19obm9rCitfX3Jlc19ob3N0YWxpYXMKK19fcmVzX2lzb3Vyc2VydmVyCitfX3Jlc19tYWlsb2sKK19fcmVzX25hbWVpbnF1ZXJ5CitfX3Jlc19uYW1ldG9jbGFzcworX19yZXNfbmFtZXRvdHlwZQorX19yZXNfbmNsb3NlCitfX3Jlc19uZGVzdHJveQorX19yZXNfbmluaXQKK19fcmVzX25ta3F1ZXJ5CitfX3Jlc19ub3B0CitfX3Jlc19ucXVlcnkKK19fcmVzX25xdWVyeWRvbWFpbgorX19yZXNfbnNlYXJjaAorX19yZXNfbnNlbmQKK19fcmVzX29wdAorX19yZXNfb3Vyc2VydmVyX3AKK19fcmVzX293bm9rCitfX3Jlc19wcXVlcnkKK19fcmVzX3B1dF9zdGF0ZQorX19yZXNfcXVlcmllc21hdGNoCitfX3Jlc19xdWVyeWRvbWFpbgorX19yZXNfcmFuZG9taWQKK19fcmVzX3NlbmQKK19fcmVzX3NlbmRfc2V0cWhvb2sKK19fcmVzX3NlbmRfc2V0cmhvb2sKK19fcmVzX3NldHNlcnZlcnMKK19fcmVzX3Zpbml0CitfX3Jlc3RvcmVfY29yZV9yZWdzCitfX3J0X3NpZ2FjdGlvbgorX19ydF9zaWdwcm9jbWFzaworX19ydF9zaWd0aW1lZHdhaXQKK19fc2Nsb3NlCitfX3NldF9zeXNjYWxsX2Vycm5vCitfX3NldF90bHMKK19fc2V0cmVzdWlkCitfX3NldHJldWlkCitfX3NldHVpZAorX19zZmxhZ3MKK19fc2ZsdXNoCitfX3NmcAorX19zZnZ3cml0ZQorX19zaWdzdXNwZW5kCitfX3Npbml0CitfX3NsYmV4cGFuZAorX19zbWFrZWJ1ZgorX19zcmVhZAorX19zcmVmaWxsCitfX3NyZ2V0CitfX3NzZWVrCitfX3N0YWNrX2Noa19mYWlsCitfX3N0YXRmczY0CitfX3N1YmRmMworX19zdWJzZjMKK19fc3didWYKK19fc3doYXRidWYKK19fc3dyaXRlCitfX3N3c2V0dXAKK19fc3ltX250b3AKK19fc3ltX250b3MKK19fc3ltX3N0b24KK19fc3lzX2Nsb25lCitfX3N5c2xvZworX19zeXN0ZW1fcHJvcGVydGllc19pbml0CitfX3N5c3RlbV9wcm9wZXJ0eV9maW5kCitfX3N5c3RlbV9wcm9wZXJ0eV9maW5kX250aAorX19zeXN0ZW1fcHJvcGVydHlfZ2V0CitfX3N5c3RlbV9wcm9wZXJ0eV9yZWFkCitfX3N5c3RlbV9wcm9wZXJ0eV93YWl0CitfX3RocmVhZF9lbnRyeQorX190aW1lcl9jcmVhdGUKK19fdGltZXJfZGVsZXRlCitfX3RpbWVyX2dldG92ZXJydW4KK19fdGltZXJfZ2V0dGltZQorX190aW1lcl9zZXR0aW1lCitfX3RpbWVyX3RhYmxlX3N0YXJ0X3N0b3AKK19fdHJ1bmNkZnNmMgorX191ZGl2ZGkzCitfX3VkaXZzaTMKK19fdW5vcmRkZjIKK19fdW5vcmRzZjIKK19fd2FpdDQKK19fd2FpdGlkCitfY2xlYW51cAorX2RvcmFuZDQ4CitfZW5kaHRlbnQKK19leGl0CitfZXhpdF90aHJlYWQKK19leGl0X3dpdGhfc3RhY2tfdGVhcmRvd24KK19md2FsaworX2dldGh0YnlhZGRyCitfZ2V0aHRieW5hbWUKK19nZXRodGJ5bmFtZTIKK19nZXRodGVudAorX2dldGxvbmcKK19nZXRzaG9ydAorX2luaXRfdGhyZWFkCitfbG9uZ2ptcAorX21rdGVtcAorX3NldGh0ZW50Citfc2V0am1wCitfdGhyZWFkX2NyZWF0ZWRfaG9vaworYWJvcnQKK2FjY2VwdAorYWNjZXNzCithY2N0CithbGFybQorYWxwaGFzb3J0CithcmM0cmFuZG9tCithcmM0cmFuZG9tX2FkZHJhbmRvbQorYXJjNHJhbmRvbV9idWYKK2FyYzRyYW5kb21fc3RpcgorYXJjNHJhbmRvbV91bmlmb3JtCithc2N0aW1lCithc2N0aW1lNjQKK2FzY3RpbWU2NF9yCithc2N0aW1lX3IKK2FzcHJpbnRmCithdGV4aXQKK2F0b2kKK2F0b2wKK2F0b2xsCitiYXNlbmFtZQorYmFzZW5hbWVfcgorYmNvcHkKK2JpbmQKK2JpbmRyZXN2cG9ydAorYnJrCitic2Rfc2lnbmFsCitic2VhcmNoCitidG93YworYnplcm8KK2NhY2hlZmx1c2gKK2NhbGxvYworY2FwZ2V0CitjYXBzZXQKK2NoZGlyCitjaG1vZAorY2hvd24KK2Nocm9vdAorY2xlYXJlbnYKK2NsZWFyZXJyCitjbG9jaworY2xvY2tfZ2V0cmVzCitjbG9ja19nZXR0aW1lCitjbG9ja19uYW5vc2xlZXAKK2Nsb2NrX3NldHRpbWUKK2Nsb25lCitjbG9zZQorY2xvc2VkaXIKK2Nsb3NlbG9nCitjbG9zZWxvZ19yCitjb25uZWN0Citjb3B5X1RNX3RvX3RtCitjb3B5X3RtX3RvX1RNCitjcHVhY2N0X2FkZAorY3JlYXQKK2N0aW1lCitjdGltZTY0CitjdGltZTY0X3IKK2N0aW1lX3IKK2RhZW1vbgorZGVsZXRlX21vZHVsZQorZGlmZnRpbWUKK2RpcmZkCitkaXJuYW1lCitkaXJuYW1lX3IKK2RpdgorZGxjYWxsb2MKK2RsZnJlZQorZGxpbmRlcGVuZGVudF9jYWxsb2MKK2RsaW5kZXBlbmRlbnRfY29tYWxsb2MKK2RsbWFsbGluZm8KK2RsbWFsbG9jCitkbG1hbGxvY19mb290cHJpbnQKK2RsbWFsbG9jX21heF9mb290cHJpbnQKK2RsbWFsbG9jX3N0YXRzCitkbG1hbGxvY190cmltCitkbG1hbGxvY191c2FibGVfc2l6ZQorZGxtYWxsb2Nfd2Fsa19mcmVlX3BhZ2VzCitkbG1hbGxvY193YWxrX2hlYXAKK2RsbWFsbG9wdAorZGxtZW1hbGlnbgorZGxwdmFsbG9jCitkbHJlYWxsb2MKK2RsdmFsbG9jCitkbl9leHBhbmQKK2RyYW5kNDgKK2R1cAorZHVwMgorZW5kcHdlbnQKK2VuZHNlcnZlbnQKK2VuZHVzZXJzaGVsbAorZW5kdXRlbnQKK2Vwb2xsX2NyZWF0ZQorZXBvbGxfY3RsCitlcG9sbF93YWl0CitlcmFuZDQ4CitlcnIKK2VycngKK2V2ZW50ZmQKK2V2ZW50ZmRfcmVhZAorZXZlbnRmZF93cml0ZQorZXhlY2wKK2V4ZWNsZQorZXhlY2xwCitleGVjdgorZXhlY3ZlCitleGVjdnAKK2V4aXQKK2ZjaGRpcgorZmNobW9kCitmY2htb2RhdAorZmNob3duCitmY2hvd25hdAorZmNsb3NlCitmY250bAorZmRhdGFzeW5jCitmZG9wZW4KK2Zkb3BlbmRpcgorZmRwcmludGYKK2Zlb2YKK2ZlcnJvcgorZmZsdXNoCitmZnMKK2ZnZXRjCitmZ2V0bG4KK2ZnZXRwb3MKK2ZnZXRzCitmZ2V0d2MKK2ZnZXR3cworZmlsZW5vCitmbG9jaworZmxvY2tmaWxlCitmbm1hdGNoCitmb3BlbgorZm9yaworZnBhdGhjb25mCitmcHJpbnRmCitmcHVyZ2UKK2ZwdXRjCitmcHV0cworZnB1dHdjCitmcHV0d3MKK2ZyZWFkCitmcmVlCitmcmVlYWRkcmluZm8KK2ZyZWVkdG9hCitmcmVvcGVuCitmc2NhbmYKK2ZzZWVrCitmc2Vla28KK2ZzZXRwb3MKK2ZzdGF0Citmc3RhdGF0Citmc3RhdGZzCitmc3luYworZnRlbGwKK2Z0ZWxsbworZnRpbWUKK2Z0b2sKK2Z0cnVuY2F0ZQorZnRyeWxvY2tmaWxlCitmdHNfY2hpbGRyZW4KK2Z0c19jbG9zZQorZnRzX29wZW4KK2Z0c19yZWFkCitmdHNfc2V0CitmdW5sb2NrZmlsZQorZnVub3BlbgorZnV0ZXgKK2Z3aWRlCitmd3ByaW50ZgorZndyaXRlCitmd3NjYW5mCitnYWlfc3RyZXJyb3IKK2dldF9tYWxsb2NfbGVha19pbmZvCitnZXRhZGRyaW5mbworZ2V0YworZ2V0Y191bmxvY2tlZAorZ2V0Y2hhcgorZ2V0Y2hhcl91bmxvY2tlZAorZ2V0Y3dkCitnZXRkZW50cworZ2V0ZHRhYmxlc2l6ZQorZ2V0ZWdpZAorZ2V0ZW52CitnZXRldWlkCitnZXRnaWQKK2dldGdyZ2lkCitnZXRncm5hbQorZ2V0Z3JvdXBsaXN0CitnZXRncm91cHMKK2dldGhvc3RieWFkZHIKK2dldGhvc3RieW5hbWUKK2dldGhvc3RieW5hbWUyCitnZXRob3N0YnluYW1lX3IKK2dldGhvc3RlbnQKK2dldGhvc3RuYW1lCitnZXRpdGltZXIKK2dldGxvZ2luCitnZXRtbnRlbnQKK2dldG5hbWVpbmZvCitnZXRuZXRieWFkZHIKK2dldG5ldGJ5bmFtZQorZ2V0b3B0CitnZXRvcHRfbG9uZworZ2V0b3B0X2xvbmdfb25seQorZ2V0cGVlcm5hbWUKK2dldHBnaWQKK2dldHBncnAKK2dldHBpZAorZ2V0cHBpZAorZ2V0cHJpb3JpdHkKK2dldHByb3RvYnluYW1lCitnZXRwcm90b2J5bnVtYmVyCitnZXRwdAorZ2V0cHduYW0KK2dldHB3dWlkCitnZXRyZXNnaWQKK2dldHJlc3VpZAorZ2V0cmxpbWl0CitnZXRydXNhZ2UKK2dldHMKK2dldHNlcnZieW5hbWUKK2dldHNlcnZieXBvcnQKK2dldHNlcnZlbnQKK2dldHNlcnZlbnRfcgorZ2V0c29ja25hbWUKK2dldHNvY2tvcHQKK2dldHRpZAorZ2V0dGltZW9mZGF5CitnZXR1aWQKK2dldHVzZXJzaGVsbAorZ2V0dXRlbnQKK2dldHdjCitnZXR3Y2hhcgorZ210aW1lCitnbXRpbWU2NAorZ210aW1lNjRfcgorZ210aW1lX3IKK2hlcnJvcgoraHN0cmVycm9yCitpZl9pbmRleHRvbmFtZQoraWZfbmFtZXRvaW5kZXgKK2luZGV4CitpbmV0X2FkZHIKK2luZXRfYXRvbgoraW5ldF9uc2FwX2FkZHIKK2luZXRfbnNhcF9udG9hCitpbmV0X250b2EKK2luZXRfbnRvcAoraW5ldF9wdG9uCitpbml0X21vZHVsZQoraW5pdGdyb3VwcworaW5vdGlmeV9hZGRfd2F0Y2gKK2lub3RpZnlfaW5pdAoraW5vdGlmeV9ybV93YXRjaAoraW9jdGwKK2lvcHJpb19nZXQKK2lvcHJpb19zZXQKK2lzYWxudW0KK2lzYWxwaGEKK2lzYXNjaWkKK2lzYXR0eQoraXNibGFuaworaXNjbnRybAoraXNkaWdpdAoraXNncmFwaAoraXNsb3dlcgoraXNwcmludAoraXNwdW5jdAoraXNzZXR1Z2lkCitpc3NwYWNlCitpc3VwcGVyCitpc3dhbG51bQoraXN3YWxwaGEKK2lzd2NudHJsCitpc3djdHlwZQoraXN3ZGlnaXQKK2lzd2dyYXBoCitpc3dsb3dlcgoraXN3cHJpbnQKK2lzd3B1bmN0Citpc3dzcGFjZQoraXN3dXBwZXIKK2lzd3hkaWdpdAoraXN4ZGlnaXQKK2pyYW5kNDgKK2tpbGwKK2tpbGxwZwora2xvZ2N0bAorbGNob3duCitsZGV4cAorbGRpdgorbGluaworbGlzdGVuCitsbGRpdgorbG9jYWx0aW1lCitsb2NhbHRpbWU2NAorbG9jYWx0aW1lNjRfcgorbG9jYWx0aW1lX3IKK2xvbmdqbXAKK2xvbmdqbXBlcnJvcgorbHJhbmQ0OAorbHNlZWsKK2xzZWVrNjQKK2xzdGF0CittYWR2aXNlCittYWxsaW5mbworbWFsbG9jCittYWxsb2NfZGVidWdfaW5pdAorbWJybGVuCittYnJ0b3djCittYnNpbml0CittYnNydG93Y3MKK21ic3Rvd2NzCittZW1hbGlnbgorbWVtY2NweQorbWVtY2hyCittZW1jbXAKK21lbWNweQorbWVtbWVtCittZW1tb3ZlCittZW1yY2hyCittZW1zZXQKK21lbXN3YXAKK21pbmNvcmUKK21rZGlyCitta2RpcmF0Citta2R0ZW1wCitta25vZAorbWtzdGVtcAorbWtzdGVtcHMKK21rdGVtcAorbWt0aW1lCitta3RpbWU2NAorbWxvY2sKK21tYXAKK21vdW50CittcHJvdGVjdAorbXJhbmQ0OAorbXJlbWFwCittc3luYworbXVubG9jaworbXVubWFwCituYW5vc2xlZXAKK25pY2UKK25yYW5kNDgKK25zZGlzcGF0Y2gKK29wZW4KK29wZW5hdAorb3BlbmRpcgorb3BlbmxvZworb3BlbmxvZ19yCitwYXRoY29uZgorcGF1c2UKK3BjbG9zZQorcGVycm9yCitwaXBlCitwaXBlMgorcG9sbAorcG9wZW4KK3ByY3RsCitwcmVhZAorcHJpbnRmCitwc2VsZWN0CitwdGhyZWFkX2F0dHJfZGVzdHJveQorcHRocmVhZF9hdHRyX2dldGRldGFjaHN0YXRlCitwdGhyZWFkX2F0dHJfZ2V0Z3VhcmRzaXplCitwdGhyZWFkX2F0dHJfZ2V0c2NoZWRwYXJhbQorcHRocmVhZF9hdHRyX2dldHNjaGVkcG9saWN5CitwdGhyZWFkX2F0dHJfZ2V0c2NvcGUKK3B0aHJlYWRfYXR0cl9nZXRzdGFjaworcHRocmVhZF9hdHRyX2dldHN0YWNrYWRkcgorcHRocmVhZF9hdHRyX2dldHN0YWNrc2l6ZQorcHRocmVhZF9hdHRyX2luaXQKK3B0aHJlYWRfYXR0cl9zZXRkZXRhY2hzdGF0ZQorcHRocmVhZF9hdHRyX3NldGd1YXJkc2l6ZQorcHRocmVhZF9hdHRyX3NldHNjaGVkcGFyYW0KK3B0aHJlYWRfYXR0cl9zZXRzY2hlZHBvbGljeQorcHRocmVhZF9hdHRyX3NldHNjb3BlCitwdGhyZWFkX2F0dHJfc2V0c3RhY2sKK3B0aHJlYWRfYXR0cl9zZXRzdGFja2FkZHIKK3B0aHJlYWRfYXR0cl9zZXRzdGFja3NpemUKK3B0aHJlYWRfY29uZF9icm9hZGNhc3QKK3B0aHJlYWRfY29uZF9kZXN0cm95CitwdGhyZWFkX2NvbmRfaW5pdAorcHRocmVhZF9jb25kX3NpZ25hbAorcHRocmVhZF9jb25kX3RpbWVkd2FpdAorcHRocmVhZF9jb25kX3RpbWVkd2FpdF9tb25vdG9uaWMKK3B0aHJlYWRfY29uZF90aW1lZHdhaXRfbW9ub3RvbmljX25wCitwdGhyZWFkX2NvbmRfdGltZWR3YWl0X3JlbGF0aXZlX25wCitwdGhyZWFkX2NvbmRfdGltZW91dF9ucAorcHRocmVhZF9jb25kX3dhaXQKK3B0aHJlYWRfY29uZGF0dHJfZGVzdHJveQorcHRocmVhZF9jb25kYXR0cl9nZXRwc2hhcmVkCitwdGhyZWFkX2NvbmRhdHRyX2luaXQKK3B0aHJlYWRfY29uZGF0dHJfc2V0cHNoYXJlZAorcHRocmVhZF9jcmVhdGUKK3B0aHJlYWRfZGV0YWNoCitwdGhyZWFkX2VxdWFsCitwdGhyZWFkX2V4aXQKK3B0aHJlYWRfZ2V0YXR0cl9ucAorcHRocmVhZF9nZXRjcHVjbG9ja2lkCitwdGhyZWFkX2dldHNjaGVkcGFyYW0KK3B0aHJlYWRfZ2V0c3BlY2lmaWMKK3B0aHJlYWRfam9pbgorcHRocmVhZF9rZXlfY3JlYXRlCitwdGhyZWFkX2tleV9kZWxldGUKK3B0aHJlYWRfa2lsbAorcHRocmVhZF9tdXRleF9kZXN0cm95CitwdGhyZWFkX211dGV4X2luaXQKK3B0aHJlYWRfbXV0ZXhfbG9jaworcHRocmVhZF9tdXRleF9sb2NrX3RpbWVvdXRfbnAKK3B0aHJlYWRfbXV0ZXhfdHJ5bG9jaworcHRocmVhZF9tdXRleF91bmxvY2sKK3B0aHJlYWRfbXV0ZXhhdHRyX2Rlc3Ryb3kKK3B0aHJlYWRfbXV0ZXhhdHRyX2dldHBzaGFyZWQKK3B0aHJlYWRfbXV0ZXhhdHRyX2dldHR5cGUKK3B0aHJlYWRfbXV0ZXhhdHRyX2luaXQKK3B0aHJlYWRfbXV0ZXhhdHRyX3NldHBzaGFyZWQKK3B0aHJlYWRfbXV0ZXhhdHRyX3NldHR5cGUKK3B0aHJlYWRfb25jZQorcHRocmVhZF9yd2xvY2tfZGVzdHJveQorcHRocmVhZF9yd2xvY2tfaW5pdAorcHRocmVhZF9yd2xvY2tfcmRsb2NrCitwdGhyZWFkX3J3bG9ja190aW1lZHJkbG9jaworcHRocmVhZF9yd2xvY2tfdGltZWR3cmxvY2sKK3B0aHJlYWRfcndsb2NrX3RyeXJkbG9jaworcHRocmVhZF9yd2xvY2tfdHJ5d3Jsb2NrCitwdGhyZWFkX3J3bG9ja191bmxvY2sKK3B0aHJlYWRfcndsb2NrX3dybG9jaworcHRocmVhZF9yd2xvY2thdHRyX2Rlc3Ryb3kKK3B0aHJlYWRfcndsb2NrYXR0cl9nZXRwc2hhcmVkCitwdGhyZWFkX3J3bG9ja2F0dHJfaW5pdAorcHRocmVhZF9yd2xvY2thdHRyX3NldHBzaGFyZWQKK3B0aHJlYWRfc2VsZgorcHRocmVhZF9zZXRuYW1lX25wCitwdGhyZWFkX3NldHNjaGVkcGFyYW0KK3B0aHJlYWRfc2V0c3BlY2lmaWMKK3B0aHJlYWRfc2lnbWFzaworcHRyYWNlCitwdHNuYW1lCitwdHNuYW1lX3IKK3B1dGMKK3B1dGNfdW5sb2NrZWQKK3B1dGNoYXIKK3B1dGNoYXJfdW5sb2NrZWQKK3B1dGVudgorcHV0cworcHV0dXRsaW5lCitwdXR3CitwdXR3YworcHV0d2NoYXIKK3B3cml0ZQorcXNvcnQKK3JhaXNlCityZWFkCityZWFkZGlyCityZWFkZGlyX3IKK3JlYWRsaW5rCityZWFkdgorcmVhbGxvYworcmVhbHBhdGgKK3JlYm9vdAorcmVjdgorcmVjdmZyb20KK3JlY3Ztc2cKK3JlZ2NvbXAKK3JlZ2Vycm9yCityZWdleGVjCityZWdmcmVlCityZW1vdmUKK3JlbmFtZQorcmVuYW1lYXQKK3Jlc19pbml0CityZXNfbWtxdWVyeQorcmVzX25lZWRfaW5pdAorcmVzX3F1ZXJ5CityZXNfc2VhcmNoCityZXN0b3JlX2NvcmVfcmVncworcmV3aW5kCityZXdpbmRkaXIKK3JtZGlyCitzYnJrCitzY2FuZGlyCitzY2FuZgorc2NoZWRfZ2V0X3ByaW9yaXR5X21heAorc2NoZWRfZ2V0X3ByaW9yaXR5X21pbgorc2NoZWRfZ2V0cGFyYW0KK3NjaGVkX2dldHNjaGVkdWxlcgorc2NoZWRfcnJfZ2V0X2ludGVydmFsCitzY2hlZF9zZXRwYXJhbQorc2NoZWRfc2V0c2NoZWR1bGVyCitzY2hlZF95aWVsZAorc2VlZDQ4CitzZWxlY3QKK3NlbV9jbG9zZQorc2VtX2Rlc3Ryb3kKK3NlbV9nZXR2YWx1ZQorc2VtX2luaXQKK3NlbV9vcGVuCitzZW1fcG9zdAorc2VtX3RpbWVkd2FpdAorc2VtX3RyeXdhaXQKK3NlbV91bmxpbmsKK3NlbV93YWl0CitzZW5kCitzZW5kZmlsZQorc2VuZG1zZworc2VuZHRvCitzZXRidWYKK3NldGJ1ZmZlcgorc2V0ZWdpZAorc2V0ZW52CitzZXRldWlkCitzZXRnaWQKK3NldGdyb3Vwcworc2V0aXRpbWVyCitzZXRqbXAKK3NldGxpbmVidWYKK3NldGxvY2FsZQorc2V0bG9nbWFzaworc2V0bG9nbWFza19yCitzZXRwZ2lkCitzZXRwZ3JwCitzZXRwcmlvcml0eQorc2V0cmVnaWQKK3NldHJlc2dpZAorc2V0cmVzdWlkCitzZXRyZXVpZAorc2V0cmxpbWl0CitzZXRzZXJ2ZW50CitzZXRzaWQKK3NldHNvY2tvcHQKK3NldHRpbWVvZmRheQorc2V0dWlkCitzZXR1c2Vyc2hlbGwKK3NldHV0ZW50CitzZXR2YnVmCitzaHV0ZG93bgorc2lnYWN0aW9uCitzaWdhbHRzdGFjaworc2lnYmxvY2sKK3NpZ2ludGVycnVwdAorc2lnbG9uZ2ptcAorc2lncGVuZGluZworc2lncHJvY21hc2sKK3NpZ3NldGptcAorc2lnc2V0bWFzaworc2lnc3VzcGVuZAorc2lnd2FpdAorc2xlZXAKK3NucHJpbnRmCitzb2NrZXQKK3NvY2tldHBhaXIKK3NwcmludGYKK3NyYW5kNDgKK3NzY2FuZgorc3RhdAorc3RhdGZzCitzdHJjYXNlY21wCitzdHJjYXNlc3RyCitzdHJjYXQKK3N0cmNocgorc3RyY21wCitzdHJjb2xsCitzdHJjcHkKK3N0cmNzcG4KK3N0cmR1cAorc3RyZXJyb3IKK3N0cmVycm9yX3IKK3N0cmZ0aW1lCitzdHJmdGltZV90egorc3RybGNhdAorc3RybGNweQorc3RybGVuCitzdHJuY2FzZWNtcAorc3RybmNhdAorc3RybmNtcAorc3RybmNweQorc3RybmR1cAorc3Rybmxlbgorc3RybnRvaW1heAorc3RybnRvdW1heAorc3RycGJyaworc3RycHRpbWUKK3N0cnJjaHIKK3N0cnNlcAorc3Ryc2lnbmFsCitzdHJzcG4KK3N0cnN0cgorc3RydG9kCitzdHJ0b2ltYXgKK3N0cnRvaworc3RydG9rX3IKK3N0cnRvbAorc3RydG9sbAorc3RydG90aW1ldmFsCitzdHJ0b3VsCitzdHJ0b3VsbAorc3RydG91bWF4CitzdHJ4ZnJtCitzd3ByaW50Zgorc3dzY2FuZgorc3ltbGluaworc3luYworc3lzY2FsbAorc3lzY29uZgorc3lzaW5mbworc3lzbG9nCitzeXNsb2dfcgorc3lzdGVtCitzeXN2X3NpZ25hbAordGNnZXRwZ3JwCit0Y3NldHBncnAKK3RlbXBuYW0KK3RpbWUKK3RpbWVnbTY0Cit0aW1lbG9jYWw2NAordGltZXJfY3JlYXRlCit0aW1lcl9kZWxldGUKK3RpbWVyX2dldG92ZXJydW4KK3RpbWVyX2dldHRpbWUKK3RpbWVyX3NldHRpbWUKK3RpbWVzCit0a2lsbAordG1wZmlsZQordG1wbmFtCit0b2FzY2lpCit0b2xvd2VyCit0b3VwcGVyCit0b3dsb3dlcgordG93dXBwZXIKK3RydW5jYXRlCit0dHluYW1lCit0dHluYW1lX3IKK3R6c2V0Cit1bWFzawordW1vdW50Cit1bW91bnQyCit1bmFtZQordW5nZXRjCit1bmdldHdjCit1bmxpbmsKK3VubGlua2F0Cit1bmxvY2twdAordW5zZXRlbnYKK3VzbGVlcAordXRpbWUKK3V0aW1lbnNhdAordXRpbWVzCit1dG1wbmFtZQordmFsaWRfdG1fbW9uCit2YWxpZF90bV93ZGF5Cit2YWxsb2MKK3Zhc3ByaW50ZgordmVycgordmVycngKK3ZmZHByaW50ZgordmZvcmsKK3ZmcHJpbnRmCit2ZnNjYW5mCit2ZndwcmludGYKK3ZwcmludGYKK3ZzY2FuZgordnNucHJpbnRmCit2c3ByaW50ZgordnNzY2FuZgordnN3cHJpbnRmCit2c3lzbG9nCit2c3lzbG9nX3IKK3Z3YXJuCit2d2FybngKK3Z3cHJpbnRmCit3YWl0Cit3YWl0Mword2FpdGlkCit3YWl0cGlkCit3YXJuCit3YXJueAord2NwY3B5Cit3Y3BuY3B5Cit3Y3J0b21iCit3Y3NjYXNlY21wCit3Y3NjYXQKK3djc2Nocgord2NzY21wCit3Y3Njb2xsCit3Y3NjcHkKK3djc2NzcG4KK3djc2R1cAord2NzZnRpbWUKK3djc2xjYXQKK3djc2xjcHkKK3djc2xlbgord2NzbmNhc2VjbXAKK3djc25jYXQKK3djc25jbXAKK3djc25jcHkKK3djc25sZW4KK3djc3BicmsKK3djc3JjaHIKK3djc3J0b21icword2Nzc3BuCit3Y3NzdHIKK3djc3RvZAord2NzdG9rCit3Y3N0b2wKK3djc3RvbWJzCit3Y3N0b3VsCit3Y3N3Y3MKK3djc3dpZHRoCit3Y3N4ZnJtCit3Y3RvYgord2N0eXBlCit3Y3dpZHRoCit3bWVtY2hyCit3bWVtY21wCit3bWVtY3B5Cit3bWVtbW92ZQord21lbXNldAord3ByaW50Zgord3JpdGUKK3dyaXRldgord3NjYW5mCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTIvYXJjaC1hcm0vc3ltYm9scy9saWJjLnNvLnZhcmlhYmxlcy50eHQgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTIvYXJjaC1hcm0vc3ltYm9scy9saWJjLnNvLnZhcmlhYmxlcy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2U1ZWY2MwotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xMi9hcmNoLWFybS9zeW1ib2xzL2xpYmMuc28udmFyaWFibGVzLnR4dApAQCAtMCwwICsxLDUxIEBACitfQ19jdHlwZV8KK19DX3RvbG93ZXJfCitfQ190b3VwcGVyXworX19hdGV4aXQKK19fYXRleGl0X2ludmFsaWQKK19fYmlvbmljX2JyaworX19ldk9wdE1vbm9UaW1lCitfX2lzdGhyZWFkZWQKK19fbGliY19tYWxsb2NfZGVmYXVsdF9kaXNwYXRjaAorX19saWJjX21hbGxvY19kaXNwYXRjaAorX19wX2NlcnRfc3ltcworX19wX2NsYXNzX3N5bXMKK19fcF9kZWZhdWx0X3NlY3Rpb25fc3ltcworX19wX2tleV9zeW1zCitfX3BfcmNvZGVfc3ltcworX19wX3R5cGVfc3ltcworX19wX3VwZGF0ZV9zZWN0aW9uX3N5bXMKK19fcGFnZV9zaGlmdAorX19wYWdlX3NpemUKK19fcHJvZ25hbWUKK19fcmFuZDQ4X2FkZAorX19yYW5kNDhfbXVsdAorX19yYW5kNDhfc2VlZAorX19zRgorX19zRmV4dAorX19zZGlkaW5pdAorX19zZ2x1ZQorX19zdGFja19jaGtfZ3VhcmQKK19fc3lzdGVtX3Byb3BlcnR5X2FyZWFfXworX2N0eXBlXworX25yZXMKK19uc19mbGFnZGF0YQorX3JhbmQ0OF9hZGQKK19yYW5kNDhfbXVsdAorX3JhbmQ0OF9zZWVkCitfcmVzX29wY29kZXMKK190b2xvd2VyX3RhYl8KK190b3VwcGVyX3RhYl8KK2RheWxpZ2h0CitlbnZpcm9uCitoX2Vycmxpc3QKK2hfbmVycgorb3B0YXJnCitvcHRlcnIKK29wdGluZAorb3B0b3B0CitvcHRyZXNldAorc3lzX3NpZ2xpc3QKK3N5c19zaWduYW1lCit0aW1lem9uZQordHpuYW1lCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTIvYXJjaC1taXBzL3N5bWJvbHMvbGliYy5zby5mdW5jdGlvbnMudHh0IGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTEyL2FyY2gtbWlwcy9zeW1ib2xzL2xpYmMuc28uZnVuY3Rpb25zLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZmJjMjgyCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTEyL2FyY2gtbWlwcy9zeW1ib2xzL2xpYmMuc28uZnVuY3Rpb25zLnR4dApAQCAtMCwwICsxLDk1MCBAQAorTUQ1X0ZpbmFsCitNRDVfSW5pdAorTUQ1X1VwZGF0ZQorU0hBMUZpbmFsCitTSEExSW5pdAorU0hBMVRyYW5zZm9ybQorU0hBMVVwZGF0ZQorX19hcmM0X2dldGJ5dGUKK19fYXNzZXJ0CitfX2Fzc2VydDIKK19fYXRleGl0X3JlZ2lzdGVyX2NsZWFudXAKK19fYXRvbWljX2NtcHhjaGcKK19fYXRvbWljX2RlYworX19hdG9taWNfaW5jCitfX2F0b21pY19zd2FwCitfX2I2NF9udG9wCitfX2I2NF9wdG9uCitfX2JyaworX19jbG9uZV90aHJlYWRfc3RhcnQKK19fY3hhX2F0ZXhpdAorX19jeGFfZmluYWxpemUKK19fZG5fY29tcAorX19kbl9jb3VudF9sYWJlbHMKK19fZG5fc2tpcG5hbWUKK19fZG9yYW5kNDgKK19fZHRvYQorX19lcnJubworX19ldkFkZFRpbWUKK19fZXZDbXBUaW1lCitfX2V2Q29uc0lvdmVjCitfX2V2Q29uc1RpbWUKK19fZXZOb3dUaW1lCitfX2V2U3ViVGltZQorX19ldlRpbWVTcGVjCitfX2V2VGltZVZhbAorX19ldlVUQ1RpbWUKK19fZmNudGwKK19fZmNudGw2NAorX19maW5kZW52CitfX2ZvcmsKK19fZnBfbnF1ZXJ5CitfX2ZwX3F1ZXJ5CitfX2ZyZW1vdmVsb2NrCitfX2ZzdGF0ZnM2NAorX19mdXRleF9zeXNjYWxsMworX19mdXRleF9zeXNjYWxsNAorX19mdXRleF93YWl0CitfX2Z1dGV4X3dhaXRfZXgKK19fZnV0ZXhfd2FrZQorX19mdXRleF93YWtlX2V4CitfX2dldF9oX2Vycm5vCitfX2dldF9yZXNfY2FjaGUKK19fZ2V0X3NwCitfX2dldF9zdGFja19iYXNlCitfX2dldF90aHJlYWQKK19fZ2V0X3RscworX19nZXRjd2QKK19fZ2V0cHJpb3JpdHkKK19faG9zdGFsaWFzCitfX2luaXRfdGxzCitfX2lvY3RsCitfX2xpYmNfYW5kcm9pZF9sb2dfYXNzZXJ0CitfX2xpYmNfYW5kcm9pZF9sb2dfcHJpbnQKK19fbGliY19hbmRyb2lkX2xvZ192cHJpbnQKK19fbGliY19maW5pCitfX2xpYmNfaW5pdAorX19saWJjX2luaXRfY29tbW9uCitfX2xpYmNfcHJlaW5pdAorX19sbHNlZWsKK19fbG9jX2F0b24KK19fbG9jX250b2EKK19fbWVtY21wMTYKK19fbW1hcDIKK19fbnNfZm9ybWF0X3R0bAorX19uc19nZXQxNgorX19uc19nZXQzMgorX19uc19pbml0cGFyc2UKK19fbnNfbWFrZWNhbm9uCitfX25zX21zZ19nZXRmbGFnCitfX25zX25hbWVfY29tcHJlc3MKK19fbnNfbmFtZV9udG9sCitfX25zX25hbWVfbnRvcAorX19uc19uYW1lX3BhY2sKK19fbnNfbmFtZV9wdG9uCitfX25zX25hbWVfcm9sbGJhY2sKK19fbnNfbmFtZV9za2lwCitfX25zX25hbWVfdW5jb21wcmVzcworX19uc19uYW1lX3VucGFjaworX19uc19wYXJzZXJyCitfX25zX3B1dDE2CitfX25zX3B1dDMyCitfX25zX3NhbWVuYW1lCitfX25zX3NraXBycgorX19uc19zcHJpbnRycgorX19uc19zcHJpbnRycmYKK19fb3BlbgorX19vcGVuYXQKK19fcF9jZG5hbWUKK19fcF9jZG5uYW1lCitfX3BfY2xhc3MKK19fcF9mcW5hbWUKK19fcF9mcW5uYW1lCitfX3Bfb3B0aW9uCitfX3BfcXVlcnkKK19fcF9yY29kZQorX19wX3NlY3N0b2RhdGUKK19fcF9zZWN0aW9uCitfX3Bfc29ja3VuCitfX3BfdGltZQorX19wX3R5cGUKK19fcHJlYWQ2NAorX19wdGhyZWFkX2NsZWFudXBfcG9wCitfX3B0aHJlYWRfY2xlYW51cF9wdXNoCitfX3B0aHJlYWRfY2xvbmUKK19fcHRocmVhZF9jb25kX3RpbWVkd2FpdAorX19wdGhyZWFkX2NvbmRfdGltZWR3YWl0X3JlbGF0aXZlCitfX3B0cmFjZQorX19wdXRsb25nCitfX3B1dHNob3J0CitfX3B3cml0ZTY0CitfX3JlYm9vdAorX19yZXNfY2xvc2UKK19fcmVzX2Rub2sKK19fcmVzX2dldF9uaWJibGVzdWZmaXgKK19fcmVzX2dldF9uaWJibGVzdWZmaXgyCitfX3Jlc19nZXRfc3RhdGUKK19fcmVzX2dldF9zdGF0aWMKK19fcmVzX2dldHNlcnZlcnMKK19fcmVzX2hub2sKK19fcmVzX2hvc3RhbGlhcworX19yZXNfaXNvdXJzZXJ2ZXIKK19fcmVzX21haWxvaworX19yZXNfbmFtZWlucXVlcnkKK19fcmVzX25hbWV0b2NsYXNzCitfX3Jlc19uYW1ldG90eXBlCitfX3Jlc19uY2xvc2UKK19fcmVzX25kZXN0cm95CitfX3Jlc19uaW5pdAorX19yZXNfbm1rcXVlcnkKK19fcmVzX25vcHQKK19fcmVzX25xdWVyeQorX19yZXNfbnF1ZXJ5ZG9tYWluCitfX3Jlc19uc2VhcmNoCitfX3Jlc19uc2VuZAorX19yZXNfb3B0CitfX3Jlc19vdXJzZXJ2ZXJfcAorX19yZXNfb3dub2sKK19fcmVzX3BxdWVyeQorX19yZXNfcHV0X3N0YXRlCitfX3Jlc19xdWVyaWVzbWF0Y2gKK19fcmVzX3F1ZXJ5ZG9tYWluCitfX3Jlc19yYW5kb21pZAorX19yZXNfc2VuZAorX19yZXNfc2VuZF9zZXRxaG9vaworX19yZXNfc2VuZF9zZXRyaG9vaworX19yZXNfc2V0c2VydmVycworX19yZXNfdmluaXQKK19fcnRfc2lnYWN0aW9uCitfX3J0X3NpZ3Byb2NtYXNrCitfX3J0X3NpZ3RpbWVkd2FpdAorX19zY2xvc2UKK19fc2V0X3N5c2NhbGxfZXJybm8KK19fc2V0X3RocmVhZF9hcmVhCitfX3NldF90bHMKK19fc2V0cmVzdWlkCitfX3NldHJldWlkCitfX3NldHVpZAorX19zZmxhZ3MKK19fc2ZsdXNoCitfX3NmcAorX19zZnZ3cml0ZQorX19zaWdzdXNwZW5kCitfX3Npbml0CitfX3NsYmV4cGFuZAorX19zbWFrZWJ1ZgorX19zcmVhZAorX19zcmVmaWxsCitfX3NyZ2V0CitfX3NzZWVrCitfX3N0YWNrX2Noa19mYWlsCitfX3N0YXRmczY0CitfX3N3YnVmCitfX3N3aGF0YnVmCitfX3N3cml0ZQorX19zd3NldHVwCitfX3N5bV9udG9wCitfX3N5bV9udG9zCitfX3N5bV9zdG9uCitfX3N5c19jbG9uZQorX19zeXNsb2cKK19fc3lzdGVtX3Byb3BlcnRpZXNfaW5pdAorX19zeXN0ZW1fcHJvcGVydHlfZmluZAorX19zeXN0ZW1fcHJvcGVydHlfZmluZF9udGgKK19fc3lzdGVtX3Byb3BlcnR5X2dldAorX19zeXN0ZW1fcHJvcGVydHlfcmVhZAorX19zeXN0ZW1fcHJvcGVydHlfd2FpdAorX190aHJlYWRfZW50cnkKK19fdGltZXJfY3JlYXRlCitfX3RpbWVyX2RlbGV0ZQorX190aW1lcl9nZXRvdmVycnVuCitfX3RpbWVyX2dldHRpbWUKK19fdGltZXJfc2V0dGltZQorX190aW1lcl90YWJsZV9zdGFydF9zdG9wCitfX3dhaXQ0CitfX3dhaXRpZAorX2NsZWFudXAKK19kb3JhbmQ0OAorX2VuZGh0ZW50CitfZXhpdAorX2V4aXRfdGhyZWFkCitfZXhpdF93aXRoX3N0YWNrX3RlYXJkb3duCitfZmx1c2hfY2FjaGUKK19md2FsaworX2dldGh0YnlhZGRyCitfZ2V0aHRieW5hbWUKK19nZXRodGJ5bmFtZTIKK19nZXRodGVudAorX2dldGxvbmcKK19nZXRzaG9ydAorX2luaXRfdGhyZWFkCitfbG9uZ2ptcAorX21rdGVtcAorX3NldGh0ZW50Citfc2V0am1wCitfdGhyZWFkX2NyZWF0ZWRfaG9vaworX3dhaXRwaWQKK2Fib3J0CithY2NlcHQKK2FjY2VzcworYWNjdAorYWxhcm0KK2FscGhhc29ydAorYXJjNHJhbmRvbQorYXJjNHJhbmRvbV9hZGRyYW5kb20KK2FyYzRyYW5kb21fYnVmCithcmM0cmFuZG9tX3N0aXIKK2FyYzRyYW5kb21fdW5pZm9ybQorYXNjdGltZQorYXNjdGltZTY0Cithc2N0aW1lNjRfcgorYXNjdGltZV9yCithc3ByaW50ZgorYXRleGl0CithdG9pCithdG9sCithdG9sbAorYmFzZW5hbWUKK2Jhc2VuYW1lX3IKK2Jjb3B5CitiaW5kCitiaW5kcmVzdnBvcnQKK2JyaworYnNkX3NpZ25hbAorYnNlYXJjaAorYnRvd2MKK2J6ZXJvCitjYWNoZWZsdXNoCitjYWxsb2MKK2NhcGdldAorY2Fwc2V0CitjaGRpcgorY2htb2QKK2Nob3duCitjaHJvb3QKK2NsZWFyZW52CitjbGVhcmVycgorY2xvY2sKK2Nsb2NrX2dldHJlcworY2xvY2tfZ2V0dGltZQorY2xvY2tfbmFub3NsZWVwCitjbG9ja19zZXR0aW1lCitjbG9uZQorY2xvc2UKK2Nsb3NlZGlyCitjbG9zZWxvZworY2xvc2Vsb2dfcgorY29ubmVjdAorY29weV9UTV90b190bQorY29weV90bV90b19UTQorY3B1YWNjdF9hZGQKK2NyZWF0CitjdGltZQorY3RpbWU2NAorY3RpbWU2NF9yCitjdGltZV9yCitkYWVtb24KK2RlbGV0ZV9tb2R1bGUKK2RpZmZ0aW1lCitkaXJmZAorZGlybmFtZQorZGlybmFtZV9yCitkaXYKK2RsY2FsbG9jCitkbGZyZWUKK2RsaW5kZXBlbmRlbnRfY2FsbG9jCitkbGluZGVwZW5kZW50X2NvbWFsbG9jCitkbG1hbGxpbmZvCitkbG1hbGxvYworZGxtYWxsb2NfZm9vdHByaW50CitkbG1hbGxvY19tYXhfZm9vdHByaW50CitkbG1hbGxvY19zdGF0cworZGxtYWxsb2NfdHJpbQorZGxtYWxsb2NfdXNhYmxlX3NpemUKK2RsbWFsbG9jX3dhbGtfZnJlZV9wYWdlcworZGxtYWxsb2Nfd2Fsa19oZWFwCitkbG1hbGxvcHQKK2RsbWVtYWxpZ24KK2RscHZhbGxvYworZGxyZWFsbG9jCitkbHZhbGxvYworZG5fZXhwYW5kCitkcmFuZDQ4CitkdXAKK2R1cDIKK2VuZHB3ZW50CitlbmRzZXJ2ZW50CitlbmR1c2Vyc2hlbGwKK2VuZHV0ZW50CitlcG9sbF9jcmVhdGUKK2Vwb2xsX2N0bAorZXBvbGxfd2FpdAorZXJhbmQ0OAorZXJyCitlcnJ4CitldmVudGZkCitldmVudGZkX3JlYWQKK2V2ZW50ZmRfd3JpdGUKK2V4ZWNsCitleGVjbGUKK2V4ZWNscAorZXhlY3YKK2V4ZWN2ZQorZXhlY3ZwCitleGl0CitmY2hkaXIKK2ZjaG1vZAorZmNobW9kYXQKK2ZjaG93bgorZmNob3duYXQKK2ZjbG9zZQorZmNudGwKK2ZkYXRhc3luYworZmRvcGVuCitmZG9wZW5kaXIKK2ZkcHJpbnRmCitmZW9mCitmZXJyb3IKK2ZmbHVzaAorZmZzCitmZ2V0YworZmdldGxuCitmZ2V0cG9zCitmZ2V0cworZmdldHdjCitmZ2V0d3MKK2ZpbGVubworZmxvY2sKK2Zsb2NrZmlsZQorZm5tYXRjaAorZm9wZW4KK2ZvcmsKK2ZwYXRoY29uZgorZnByaW50ZgorZnB1cmdlCitmcHV0YworZnB1dHMKK2ZwdXR3YworZnB1dHdzCitmcmVhZAorZnJlZQorZnJlZWFkZHJpbmZvCitmcmVlZHRvYQorZnJlb3BlbgorZnNjYW5mCitmc2VlaworZnNlZWtvCitmc2V0cG9zCitmc3RhdAorZnN0YXRhdAorZnN0YXRmcworZnN5bmMKK2Z0ZWxsCitmdGVsbG8KK2Z0aW1lCitmdG9rCitmdHJ1bmNhdGUKK2Z0cnlsb2NrZmlsZQorZnRzX2NoaWxkcmVuCitmdHNfY2xvc2UKK2Z0c19vcGVuCitmdHNfcmVhZAorZnRzX3NldAorZnVubG9ja2ZpbGUKK2Z1bm9wZW4KK2Z1dGV4Citmd2lkZQorZndwcmludGYKK2Z3cml0ZQorZndzY2FuZgorZ2FpX3N0cmVycm9yCitnZXRfbWFsbG9jX2xlYWtfaW5mbworZ2V0YWRkcmluZm8KK2dldGMKK2dldGNfdW5sb2NrZWQKK2dldGNoYXIKK2dldGNoYXJfdW5sb2NrZWQKK2dldGN3ZAorZ2V0ZGVudHMKK2dldGR0YWJsZXNpemUKK2dldGVnaWQKK2dldGVudgorZ2V0ZXVpZAorZ2V0Z2lkCitnZXRncmdpZAorZ2V0Z3JuYW0KK2dldGdyb3VwbGlzdAorZ2V0Z3JvdXBzCitnZXRob3N0YnlhZGRyCitnZXRob3N0YnluYW1lCitnZXRob3N0YnluYW1lMgorZ2V0aG9zdGJ5bmFtZV9yCitnZXRob3N0ZW50CitnZXRob3N0bmFtZQorZ2V0aXRpbWVyCitnZXRsb2dpbgorZ2V0bW50ZW50CitnZXRuYW1laW5mbworZ2V0bmV0YnlhZGRyCitnZXRuZXRieW5hbWUKK2dldG9wdAorZ2V0b3B0X2xvbmcKK2dldG9wdF9sb25nX29ubHkKK2dldHBlZXJuYW1lCitnZXRwZ2lkCitnZXRwZ3JwCitnZXRwaWQKK2dldHBwaWQKK2dldHByaW9yaXR5CitnZXRwcm90b2J5bmFtZQorZ2V0cHJvdG9ieW51bWJlcgorZ2V0cHQKK2dldHB3bmFtCitnZXRwd3VpZAorZ2V0cmVzZ2lkCitnZXRyZXN1aWQKK2dldHJsaW1pdAorZ2V0cnVzYWdlCitnZXRzCitnZXRzZXJ2YnluYW1lCitnZXRzZXJ2Ynlwb3J0CitnZXRzZXJ2ZW50CitnZXRzZXJ2ZW50X3IKK2dldHNvY2tuYW1lCitnZXRzb2Nrb3B0CitnZXR0aWQKK2dldHRpbWVvZmRheQorZ2V0dWlkCitnZXR1c2Vyc2hlbGwKK2dldHV0ZW50CitnZXR3YworZ2V0d2NoYXIKK2dtdGltZQorZ210aW1lNjQKK2dtdGltZTY0X3IKK2dtdGltZV9yCitoZXJyb3IKK2hzdHJlcnJvcgoraWZfaW5kZXh0b25hbWUKK2lmX25hbWV0b2luZGV4CitpbmRleAoraW5ldF9hZGRyCitpbmV0X2F0b24KK2luZXRfbnNhcF9hZGRyCitpbmV0X25zYXBfbnRvYQoraW5ldF9udG9hCitpbmV0X250b3AKK2luZXRfcHRvbgoraW5pdF9tb2R1bGUKK2luaXRncm91cHMKK2lub3RpZnlfYWRkX3dhdGNoCitpbm90aWZ5X2luaXQKK2lub3RpZnlfcm1fd2F0Y2gKK2lvY3RsCitpb3ByaW9fZ2V0Citpb3ByaW9fc2V0Citpc2FsbnVtCitpc2FscGhhCitpc2FzY2lpCitpc2F0dHkKK2lzYmxhbmsKK2lzY250cmwKK2lzZGlnaXQKK2lzZ3JhcGgKK2lzbG93ZXIKK2lzcHJpbnQKK2lzcHVuY3QKK2lzc2V0dWdpZAoraXNzcGFjZQoraXN1cHBlcgoraXN3YWxudW0KK2lzd2FscGhhCitpc3djbnRybAoraXN3Y3R5cGUKK2lzd2RpZ2l0Citpc3dncmFwaAoraXN3bG93ZXIKK2lzd3ByaW50Citpc3dwdW5jdAoraXN3c3BhY2UKK2lzd3VwcGVyCitpc3d4ZGlnaXQKK2lzeGRpZ2l0CitqcmFuZDQ4CitraWxsCitraWxscGcKK2tsb2djdGwKK2xjaG93bgorbGRleHAKK2xkaXYKK2xpbmsKK2xpc3RlbgorbGxkaXYKK2xvY2FsdGltZQorbG9jYWx0aW1lNjQKK2xvY2FsdGltZTY0X3IKK2xvY2FsdGltZV9yCitsb25nam1wCitsb25nam1wZXJyb3IKK2xyYW5kNDgKK2xzZWVrCitsc2VlazY0Citsc3RhdAorbWFkdmlzZQorbWFsbGluZm8KK21hbGxvYworbWFsbG9jX2RlYnVnX2luaXQKK21icmxlbgorbWJydG93YworbWJzaW5pdAorbWJzcnRvd2NzCittYnN0b3djcworbWVtYWxpZ24KK21lbWNjcHkKK21lbWNocgorbWVtY21wCittZW1jcHkKK21lbW1lbQorbWVtbW92ZQorbWVtcmNocgorbWVtc2V0CittZW1zd2FwCittaW5jb3JlCitta2RpcgorbWtkaXJhdAorbWtkdGVtcAorbWtub2QKK21rc3RlbXAKK21rc3RlbXBzCitta3RlbXAKK21rdGltZQorbWt0aW1lNjQKK21sb2NrCittbWFwCittb3VudAorbXByb3RlY3QKK21yYW5kNDgKK21yZW1hcAorbXN5bmMKK211bmxvY2sKK211bm1hcAorbmFub3NsZWVwCituaWNlCitucmFuZDQ4Cituc2Rpc3BhdGNoCitvcGVuCitvcGVuYXQKK29wZW5kaXIKK29wZW5sb2cKK29wZW5sb2dfcgorcGF0aGNvbmYKK3BhdXNlCitwY2xvc2UKK3BlcnJvcgorcGlwZQorcGlwZTIKK3BvbGwKK3BvcGVuCitwcmN0bAorcHJlYWQKK3ByaW50ZgorcHNlbGVjdAorcHRocmVhZF9hdHRyX2Rlc3Ryb3kKK3B0aHJlYWRfYXR0cl9nZXRkZXRhY2hzdGF0ZQorcHRocmVhZF9hdHRyX2dldGd1YXJkc2l6ZQorcHRocmVhZF9hdHRyX2dldHNjaGVkcGFyYW0KK3B0aHJlYWRfYXR0cl9nZXRzY2hlZHBvbGljeQorcHRocmVhZF9hdHRyX2dldHNjb3BlCitwdGhyZWFkX2F0dHJfZ2V0c3RhY2sKK3B0aHJlYWRfYXR0cl9nZXRzdGFja2FkZHIKK3B0aHJlYWRfYXR0cl9nZXRzdGFja3NpemUKK3B0aHJlYWRfYXR0cl9pbml0CitwdGhyZWFkX2F0dHJfc2V0ZGV0YWNoc3RhdGUKK3B0aHJlYWRfYXR0cl9zZXRndWFyZHNpemUKK3B0aHJlYWRfYXR0cl9zZXRzY2hlZHBhcmFtCitwdGhyZWFkX2F0dHJfc2V0c2NoZWRwb2xpY3kKK3B0aHJlYWRfYXR0cl9zZXRzY29wZQorcHRocmVhZF9hdHRyX3NldHN0YWNrCitwdGhyZWFkX2F0dHJfc2V0c3RhY2thZGRyCitwdGhyZWFkX2F0dHJfc2V0c3RhY2tzaXplCitwdGhyZWFkX2NvbmRfYnJvYWRjYXN0CitwdGhyZWFkX2NvbmRfZGVzdHJveQorcHRocmVhZF9jb25kX2luaXQKK3B0aHJlYWRfY29uZF9zaWduYWwKK3B0aHJlYWRfY29uZF90aW1lZHdhaXQKK3B0aHJlYWRfY29uZF90aW1lZHdhaXRfbW9ub3RvbmljCitwdGhyZWFkX2NvbmRfdGltZWR3YWl0X21vbm90b25pY19ucAorcHRocmVhZF9jb25kX3RpbWVkd2FpdF9yZWxhdGl2ZV9ucAorcHRocmVhZF9jb25kX3RpbWVvdXRfbnAKK3B0aHJlYWRfY29uZF93YWl0CitwdGhyZWFkX2NvbmRhdHRyX2Rlc3Ryb3kKK3B0aHJlYWRfY29uZGF0dHJfZ2V0cHNoYXJlZAorcHRocmVhZF9jb25kYXR0cl9pbml0CitwdGhyZWFkX2NvbmRhdHRyX3NldHBzaGFyZWQKK3B0aHJlYWRfY3JlYXRlCitwdGhyZWFkX2RldGFjaAorcHRocmVhZF9lcXVhbAorcHRocmVhZF9leGl0CitwdGhyZWFkX2dldGF0dHJfbnAKK3B0aHJlYWRfZ2V0Y3B1Y2xvY2tpZAorcHRocmVhZF9nZXRzY2hlZHBhcmFtCitwdGhyZWFkX2dldHNwZWNpZmljCitwdGhyZWFkX2pvaW4KK3B0aHJlYWRfa2V5X2NyZWF0ZQorcHRocmVhZF9rZXlfZGVsZXRlCitwdGhyZWFkX2tpbGwKK3B0aHJlYWRfbXV0ZXhfZGVzdHJveQorcHRocmVhZF9tdXRleF9pbml0CitwdGhyZWFkX211dGV4X2xvY2sKK3B0aHJlYWRfbXV0ZXhfbG9ja190aW1lb3V0X25wCitwdGhyZWFkX211dGV4X3RyeWxvY2sKK3B0aHJlYWRfbXV0ZXhfdW5sb2NrCitwdGhyZWFkX211dGV4YXR0cl9kZXN0cm95CitwdGhyZWFkX211dGV4YXR0cl9nZXRwc2hhcmVkCitwdGhyZWFkX211dGV4YXR0cl9nZXR0eXBlCitwdGhyZWFkX211dGV4YXR0cl9pbml0CitwdGhyZWFkX211dGV4YXR0cl9zZXRwc2hhcmVkCitwdGhyZWFkX211dGV4YXR0cl9zZXR0eXBlCitwdGhyZWFkX29uY2UKK3B0aHJlYWRfcndsb2NrX2Rlc3Ryb3kKK3B0aHJlYWRfcndsb2NrX2luaXQKK3B0aHJlYWRfcndsb2NrX3JkbG9jaworcHRocmVhZF9yd2xvY2tfdGltZWRyZGxvY2sKK3B0aHJlYWRfcndsb2NrX3RpbWVkd3Jsb2NrCitwdGhyZWFkX3J3bG9ja190cnlyZGxvY2sKK3B0aHJlYWRfcndsb2NrX3RyeXdybG9jaworcHRocmVhZF9yd2xvY2tfdW5sb2NrCitwdGhyZWFkX3J3bG9ja193cmxvY2sKK3B0aHJlYWRfcndsb2NrYXR0cl9kZXN0cm95CitwdGhyZWFkX3J3bG9ja2F0dHJfZ2V0cHNoYXJlZAorcHRocmVhZF9yd2xvY2thdHRyX2luaXQKK3B0aHJlYWRfcndsb2NrYXR0cl9zZXRwc2hhcmVkCitwdGhyZWFkX3NlbGYKK3B0aHJlYWRfc2V0bmFtZV9ucAorcHRocmVhZF9zZXRzY2hlZHBhcmFtCitwdGhyZWFkX3NldHNwZWNpZmljCitwdGhyZWFkX3NpZ21hc2sKK3B0cmFjZQorcHRzbmFtZQorcHRzbmFtZV9yCitwdXRjCitwdXRjX3VubG9ja2VkCitwdXRjaGFyCitwdXRjaGFyX3VubG9ja2VkCitwdXRlbnYKK3B1dHMKK3B1dHV0bGluZQorcHV0dworcHV0d2MKK3B1dHdjaGFyCitwd3JpdGUKK3Fzb3J0CityYWlzZQorcmVhZAorcmVhZGRpcgorcmVhZGRpcl9yCityZWFkbGluaworcmVhZHYKK3JlYWxsb2MKK3JlYWxwYXRoCityZWJvb3QKK3JlY3YKK3JlY3Zmcm9tCityZWN2bXNnCityZWdjb21wCityZWdlcnJvcgorcmVnZXhlYworcmVnZnJlZQorcmVtb3ZlCityZW5hbWUKK3JlbmFtZWF0CityZXNfaW5pdAorcmVzX21rcXVlcnkKK3Jlc19uZWVkX2luaXQKK3Jlc19xdWVyeQorcmVzX3NlYXJjaAorcmV3aW5kCityZXdpbmRkaXIKK3JtZGlyCitzYnJrCitzY2FuZGlyCitzY2FuZgorc2NoZWRfZ2V0X3ByaW9yaXR5X21heAorc2NoZWRfZ2V0X3ByaW9yaXR5X21pbgorc2NoZWRfZ2V0cGFyYW0KK3NjaGVkX2dldHNjaGVkdWxlcgorc2NoZWRfcnJfZ2V0X2ludGVydmFsCitzY2hlZF9zZXRwYXJhbQorc2NoZWRfc2V0c2NoZWR1bGVyCitzY2hlZF95aWVsZAorc2VlZDQ4CitzZWxlY3QKK3NlbV9jbG9zZQorc2VtX2Rlc3Ryb3kKK3NlbV9nZXR2YWx1ZQorc2VtX2luaXQKK3NlbV9vcGVuCitzZW1fcG9zdAorc2VtX3RpbWVkd2FpdAorc2VtX3RyeXdhaXQKK3NlbV91bmxpbmsKK3NlbV93YWl0CitzZW5kCitzZW5kZmlsZQorc2VuZG1zZworc2VuZHRvCitzZXRidWYKK3NldGJ1ZmZlcgorc2V0ZWdpZAorc2V0ZW52CitzZXRldWlkCitzZXRnaWQKK3NldGdyb3Vwcworc2V0aXRpbWVyCitzZXRqbXAKK3NldGxpbmVidWYKK3NldGxvY2FsZQorc2V0bG9nbWFzaworc2V0bG9nbWFza19yCitzZXRwZ2lkCitzZXRwZ3JwCitzZXRwcmlvcml0eQorc2V0cmVnaWQKK3NldHJlc2dpZAorc2V0cmVzdWlkCitzZXRyZXVpZAorc2V0cmxpbWl0CitzZXRzZXJ2ZW50CitzZXRzaWQKK3NldHNvY2tvcHQKK3NldHRpbWVvZmRheQorc2V0dWlkCitzZXR1c2Vyc2hlbGwKK3NldHV0ZW50CitzZXR2YnVmCitzaHV0ZG93bgorc2lnYWN0aW9uCitzaWdhbHRzdGFjaworc2lnYmxvY2sKK3NpZ2ludGVycnVwdAorc2lnbG9uZ2ptcAorc2lncGVuZGluZworc2lncHJvY21hc2sKK3NpZ3NldGptcAorc2lnc2V0bWFzaworc2lnc3VzcGVuZAorc2lnd2FpdAorc2xlZXAKK3NucHJpbnRmCitzb2NrZXQKK3NvY2tldHBhaXIKK3NwcmludGYKK3NyYW5kNDgKK3NzY2FuZgorc3RhdAorc3RhdGZzCitzdHJjYXNlY21wCitzdHJjYXNlc3RyCitzdHJjYXQKK3N0cmNocgorc3RyY21wCitzdHJjb2xsCitzdHJjcHkKK3N0cmNzcG4KK3N0cmR1cAorc3RyZXJyb3IKK3N0cmVycm9yX3IKK3N0cmZ0aW1lCitzdHJmdGltZV90egorc3RybGNhdAorc3RybGNweQorc3RybGVuCitzdHJuY2FzZWNtcAorc3RybmNhdAorc3RybmNtcAorc3RybmNweQorc3RybmR1cAorc3Rybmxlbgorc3RybnRvaW1heAorc3RybnRvdW1heAorc3RycGJyaworc3RycHRpbWUKK3N0cnJjaHIKK3N0cnNlcAorc3Ryc2lnbmFsCitzdHJzcG4KK3N0cnN0cgorc3RydG9kCitzdHJ0b2ltYXgKK3N0cnRvaworc3RydG9rX3IKK3N0cnRvbAorc3RydG9sbAorc3RydG90aW1ldmFsCitzdHJ0b3VsCitzdHJ0b3VsbAorc3RydG91bWF4CitzdHJ4ZnJtCitzd3ByaW50Zgorc3dzY2FuZgorc3ltbGluaworc3luYworc3lzY2FsbAorc3lzY29uZgorc3lzaW5mbworc3lzbG9nCitzeXNsb2dfcgorc3lzdGVtCitzeXN2X3NpZ25hbAordGNnZXRwZ3JwCit0Y3NldHBncnAKK3RlbXBuYW0KK3RpbWUKK3RpbWVnbTY0Cit0aW1lbG9jYWw2NAordGltZXJfY3JlYXRlCit0aW1lcl9kZWxldGUKK3RpbWVyX2dldG92ZXJydW4KK3RpbWVyX2dldHRpbWUKK3RpbWVyX3NldHRpbWUKK3RpbWVzCit0a2lsbAordG1wZmlsZQordG1wbmFtCit0b2FzY2lpCit0b2xvd2VyCit0b3VwcGVyCit0b3dsb3dlcgordG93dXBwZXIKK3RydW5jYXRlCit0dHluYW1lCit0dHluYW1lX3IKK3R6c2V0Cit1bWFzawordW1vdW50Cit1bW91bnQyCit1bmFtZQordW5nZXRjCit1bmdldHdjCit1bmxpbmsKK3VubGlua2F0Cit1bmxvY2twdAordW5zZXRlbnYKK3VzbGVlcAordXRpbWUKK3V0aW1lcwordXRpbWVuc2F0Cit1dG1wbmFtZQordmFsaWRfdG1fbW9uCit2YWxpZF90bV93ZGF5Cit2YWxsb2MKK3Zhc3ByaW50ZgordmVycgordmVycngKK3ZmZHByaW50ZgordmZvcmsKK3ZmcHJpbnRmCit2ZnNjYW5mCit2ZndwcmludGYKK3ZwcmludGYKK3ZzY2FuZgordnNucHJpbnRmCit2c3ByaW50ZgordnNzY2FuZgordnN3cHJpbnRmCit2c3lzbG9nCit2c3lzbG9nX3IKK3Z3YXJuCit2d2FybngKK3Z3cHJpbnRmCit3YWl0Cit3YWl0Mword2FpdGlkCit3YWl0cGlkCit3YXJuCit3YXJueAord2NwY3B5Cit3Y3BuY3B5Cit3Y3J0b21iCit3Y3NjYXNlY21wCit3Y3NjYXQKK3djc2Nocgord2NzY21wCit3Y3Njb2xsCit3Y3NjcHkKK3djc2NzcG4KK3djc2R1cAord2NzZnRpbWUKK3djc2xjYXQKK3djc2xjcHkKK3djc2xlbgord2NzbmNhc2VjbXAKK3djc25jYXQKK3djc25jbXAKK3djc25jcHkKK3djc25sZW4KK3djc3BicmsKK3djc3JjaHIKK3djc3J0b21icword2Nzc3BuCit3Y3NzdHIKK3djc3RvZAord2NzdG9rCit3Y3N0b2wKK3djc3RvbWJzCit3Y3N0b3VsCit3Y3N3Y3MKK3djc3dpZHRoCit3Y3N4ZnJtCit3Y3RvYgord2N0eXBlCit3Y3dpZHRoCit3bWVtY2hyCit3bWVtY21wCit3bWVtY3B5Cit3bWVtbW92ZQord21lbXNldAord3ByaW50Zgord3JpdGUKK3dyaXRldgord3NjYW5mCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTIvYXJjaC1taXBzL3N5bWJvbHMvbGliYy5zby52YXJpYWJsZXMudHh0IGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTEyL2FyY2gtbWlwcy9zeW1ib2xzL2xpYmMuc28udmFyaWFibGVzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZTVlZjYzCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTEyL2FyY2gtbWlwcy9zeW1ib2xzL2xpYmMuc28udmFyaWFibGVzLnR4dApAQCAtMCwwICsxLDUxIEBACitfQ19jdHlwZV8KK19DX3RvbG93ZXJfCitfQ190b3VwcGVyXworX19hdGV4aXQKK19fYXRleGl0X2ludmFsaWQKK19fYmlvbmljX2JyaworX19ldk9wdE1vbm9UaW1lCitfX2lzdGhyZWFkZWQKK19fbGliY19tYWxsb2NfZGVmYXVsdF9kaXNwYXRjaAorX19saWJjX21hbGxvY19kaXNwYXRjaAorX19wX2NlcnRfc3ltcworX19wX2NsYXNzX3N5bXMKK19fcF9kZWZhdWx0X3NlY3Rpb25fc3ltcworX19wX2tleV9zeW1zCitfX3BfcmNvZGVfc3ltcworX19wX3R5cGVfc3ltcworX19wX3VwZGF0ZV9zZWN0aW9uX3N5bXMKK19fcGFnZV9zaGlmdAorX19wYWdlX3NpemUKK19fcHJvZ25hbWUKK19fcmFuZDQ4X2FkZAorX19yYW5kNDhfbXVsdAorX19yYW5kNDhfc2VlZAorX19zRgorX19zRmV4dAorX19zZGlkaW5pdAorX19zZ2x1ZQorX19zdGFja19jaGtfZ3VhcmQKK19fc3lzdGVtX3Byb3BlcnR5X2FyZWFfXworX2N0eXBlXworX25yZXMKK19uc19mbGFnZGF0YQorX3JhbmQ0OF9hZGQKK19yYW5kNDhfbXVsdAorX3JhbmQ0OF9zZWVkCitfcmVzX29wY29kZXMKK190b2xvd2VyX3RhYl8KK190b3VwcGVyX3RhYl8KK2RheWxpZ2h0CitlbnZpcm9uCitoX2Vycmxpc3QKK2hfbmVycgorb3B0YXJnCitvcHRlcnIKK29wdGluZAorb3B0b3B0CitvcHRyZXNldAorc3lzX3NpZ2xpc3QKK3N5c19zaWduYW1lCit0aW1lem9uZQordHpuYW1lCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTIvYXJjaC14ODYvc3ltYm9scy9saWJjLnNvLmZ1bmN0aW9ucy50eHQgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTIvYXJjaC14ODYvc3ltYm9scy9saWJjLnNvLmZ1bmN0aW9ucy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODQ3OGU0NwotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xMi9hcmNoLXg4Ni9zeW1ib2xzL2xpYmMuc28uZnVuY3Rpb25zLnR4dApAQCAtMCwwICsxLDk0NCBAQAorTUQ1X0ZpbmFsCitNRDVfSW5pdAorTUQ1X1VwZGF0ZQorU0hBMUZpbmFsCitTSEExSW5pdAorU0hBMVRyYW5zZm9ybQorU0hBMVVwZGF0ZQorX19hcmM0X2dldGJ5dGUKK19fYXNzZXJ0CitfX2Fzc2VydDIKK19fYXRleGl0X3JlZ2lzdGVyX2NsZWFudXAKK19fYjY0X250b3AKK19fYjY0X3B0b24KK19fYnJrCitfX2N4YV9hdGV4aXQKK19fY3hhX2ZpbmFsaXplCitfX2RpdmRpMworX19kbl9jb21wCitfX2RuX2NvdW50X2xhYmVscworX19kbl9za2lwbmFtZQorX19kb3JhbmQ0OAorX19kdG9hCitfX2Vycm5vCitfX2V2QWRkVGltZQorX19ldkNtcFRpbWUKK19fZXZDb25zSW92ZWMKK19fZXZDb25zVGltZQorX19ldk5vd1RpbWUKK19fZXZTdWJUaW1lCitfX2V2VGltZVNwZWMKK19fZXZUaW1lVmFsCitfX2V2VVRDVGltZQorX19mY250bAorX19mY250bDY0CitfX2ZpbmRlbnYKK19fZm9yaworX19mcF9ucXVlcnkKK19fZnBfcXVlcnkKK19fZnJlbW92ZWxvY2sKK19fZnN0YXRmczY0CitfX2Z1dGV4X3N5c2NhbGwzCitfX2Z1dGV4X3N5c2NhbGw0CitfX2Z1dGV4X3dhaXQKK19fZnV0ZXhfd2FpdF9leAorX19mdXRleF93YWtlCitfX2Z1dGV4X3dha2VfZXgKK19fZ2V0X2hfZXJybm8KK19fZ2V0X3Jlc19jYWNoZQorX19nZXRfc3AKK19fZ2V0X3N0YWNrX2Jhc2UKK19fZ2V0X3RocmVhZAorX19nZXRfdGxzCitfX2dldGN3ZAorX19nZXRwcmlvcml0eQorX19ob3N0YWxpYXMKK19faW5pdF90bHMKK19faW9jdGwKK19fbGliY19hbmRyb2lkX2xvZ19hc3NlcnQKK19fbGliY19hbmRyb2lkX2xvZ19wcmludAorX19saWJjX2FuZHJvaWRfbG9nX3ZwcmludAorX19saWJjX2ZpbmkKK19fbGliY19pbml0CitfX2xpYmNfaW5pdF9jb21tb24KK19fbGliY19wcmVpbml0CitfX2xsc2VlaworX19sb2NfYXRvbgorX19sb2NfbnRvYQorX19tbWFwMgorX19tb2RkaTMKK19fbnNfZm9ybWF0X3R0bAorX19uc19nZXQxNgorX19uc19nZXQzMgorX19uc19pbml0cGFyc2UKK19fbnNfbWFrZWNhbm9uCitfX25zX21zZ19nZXRmbGFnCitfX25zX25hbWVfY29tcHJlc3MKK19fbnNfbmFtZV9udG9sCitfX25zX25hbWVfbnRvcAorX19uc19uYW1lX3BhY2sKK19fbnNfbmFtZV9wdG9uCitfX25zX25hbWVfcm9sbGJhY2sKK19fbnNfbmFtZV9za2lwCitfX25zX25hbWVfdW5jb21wcmVzcworX19uc19uYW1lX3VucGFjaworX19uc19wYXJzZXJyCitfX25zX3B1dDE2CitfX25zX3B1dDMyCitfX25zX3NhbWVuYW1lCitfX25zX3NraXBycgorX19uc19zcHJpbnRycgorX19uc19zcHJpbnRycmYKK19fb3BlbgorX19vcGVuYXQKK19fcF9jZG5hbWUKK19fcF9jZG5uYW1lCitfX3BfY2xhc3MKK19fcF9mcW5hbWUKK19fcF9mcW5uYW1lCitfX3Bfb3B0aW9uCitfX3BfcXVlcnkKK19fcF9yY29kZQorX19wX3NlY3N0b2RhdGUKK19fcF9zZWN0aW9uCitfX3Bfc29ja3VuCitfX3BfdGltZQorX19wX3R5cGUKK19fcHJlYWQ2NAorX19wdGhyZWFkX2NsZWFudXBfcG9wCitfX3B0aHJlYWRfY2xlYW51cF9wdXNoCitfX3B0aHJlYWRfY2xvbmUKK19fcHRocmVhZF9jb25kX3RpbWVkd2FpdAorX19wdGhyZWFkX2NvbmRfdGltZWR3YWl0X3JlbGF0aXZlCitfX3B0cmFjZQorX19wdXRsb25nCitfX3B1dHNob3J0CitfX3B3cml0ZTY0CitfX3JlYm9vdAorX19yZXNfY2xvc2UKK19fcmVzX2Rub2sKK19fcmVzX2dldF9uaWJibGVzdWZmaXgKK19fcmVzX2dldF9uaWJibGVzdWZmaXgyCitfX3Jlc19nZXRfc3RhdGUKK19fcmVzX2dldF9zdGF0aWMKK19fcmVzX2dldHNlcnZlcnMKK19fcmVzX2hub2sKK19fcmVzX2hvc3RhbGlhcworX19yZXNfaXNvdXJzZXJ2ZXIKK19fcmVzX21haWxvaworX19yZXNfbmFtZWlucXVlcnkKK19fcmVzX25hbWV0b2NsYXNzCitfX3Jlc19uYW1ldG90eXBlCitfX3Jlc19uY2xvc2UKK19fcmVzX25kZXN0cm95CitfX3Jlc19uaW5pdAorX19yZXNfbm1rcXVlcnkKK19fcmVzX25vcHQKK19fcmVzX25xdWVyeQorX19yZXNfbnF1ZXJ5ZG9tYWluCitfX3Jlc19uc2VhcmNoCitfX3Jlc19uc2VuZAorX19yZXNfb3B0CitfX3Jlc19vdXJzZXJ2ZXJfcAorX19yZXNfb3dub2sKK19fcmVzX3BxdWVyeQorX19yZXNfcHV0X3N0YXRlCitfX3Jlc19xdWVyaWVzbWF0Y2gKK19fcmVzX3F1ZXJ5ZG9tYWluCitfX3Jlc19yYW5kb21pZAorX19yZXNfc2VuZAorX19yZXNfc2VuZF9zZXRxaG9vaworX19yZXNfc2VuZF9zZXRyaG9vaworX19yZXNfc2V0c2VydmVycworX19yZXNfdmluaXQKK19fcnRfc2lnYWN0aW9uCitfX3J0X3NpZ3Byb2NtYXNrCitfX3J0X3NpZ3RpbWVkd2FpdAorX19zY2xvc2UKK19fc2V0X3N5c2NhbGxfZXJybm8KK19fc2V0X3RocmVhZF9hcmVhCitfX3NldF90bHMKK19fc2V0cmVzdWlkCitfX3NldHJldWlkCitfX3NldHVpZAorX19zZmxhZ3MKK19fc2ZsdXNoCitfX3NmcAorX19zZnZ3cml0ZQorX19zaWdzdXNwZW5kCitfX3Npbml0CitfX3NsYmV4cGFuZAorX19zbWFrZWJ1ZgorX19zcmVhZAorX19zcmVmaWxsCitfX3NyZ2V0CitfX3NzZWVrCitfX3N0YWNrX2Noa19mYWlsCitfX3N0YXRmczY0CitfX3N3YnVmCitfX3N3aGF0YnVmCitfX3N3cml0ZQorX19zd3NldHVwCitfX3N5bV9udG9wCitfX3N5bV9udG9zCitfX3N5bV9zdG9uCitfX3N5c19jbG9uZQorX19zeXNsb2cKK19fc3lzdGVtX3Byb3BlcnRpZXNfaW5pdAorX19zeXN0ZW1fcHJvcGVydHlfZmluZAorX19zeXN0ZW1fcHJvcGVydHlfZmluZF9udGgKK19fc3lzdGVtX3Byb3BlcnR5X2dldAorX19zeXN0ZW1fcHJvcGVydHlfcmVhZAorX19zeXN0ZW1fcHJvcGVydHlfd2FpdAorX190aHJlYWRfZW50cnkKK19fdGltZXJfY3JlYXRlCitfX3RpbWVyX2RlbGV0ZQorX190aW1lcl9nZXRvdmVycnVuCitfX3RpbWVyX2dldHRpbWUKK19fdGltZXJfc2V0dGltZQorX190aW1lcl90YWJsZV9zdGFydF9zdG9wCitfX3VkaXZkaTMKK19fdW1vZGRpMworX193YWl0NAorX193YWl0aWQKK19jbGVhbnVwCitfZG9yYW5kNDgKK19lbmRodGVudAorX2V4aXQKK19leGl0X3RocmVhZAorX2V4aXRfd2l0aF9zdGFja190ZWFyZG93bgorX2Z3YWxrCitfZ2V0aHRieWFkZHIKK19nZXRodGJ5bmFtZQorX2dldGh0YnluYW1lMgorX2dldGh0ZW50CitfZ2V0bG9uZworX2dldHNob3J0CitfaW5pdF90aHJlYWQKK19sb25nam1wCitfbWt0ZW1wCitfc2V0aHRlbnQKK19zZXRqbXAKK190aHJlYWRfY3JlYXRlZF9ob29rCitfd2FpdHBpZAorYWJvcnQKK2FjY2VwdAorYWNjZXNzCithY2N0CithbGFybQorYWxwaGFzb3J0CithcmM0cmFuZG9tCithcmM0cmFuZG9tX2FkZHJhbmRvbQorYXJjNHJhbmRvbV9idWYKK2FyYzRyYW5kb21fc3RpcgorYXJjNHJhbmRvbV91bmlmb3JtCithc2N0aW1lCithc2N0aW1lNjQKK2FzY3RpbWU2NF9yCithc2N0aW1lX3IKK2FzcHJpbnRmCithdG9pCithdG9sCithdG9sbAorYmFzZW5hbWUKK2Jhc2VuYW1lX3IKK2Jjb3B5CitiaW5kCitiaW5kcmVzdnBvcnQKK2JyaworYnNkX3NpZ25hbAorYnNlYXJjaAorYnRvd2MKK2J6ZXJvCitjYWxsb2MKK2NhcGdldAorY2Fwc2V0CitjaGRpcgorY2htb2QKK2Nob3duCitjaHJvb3QKK2NsZWFyZW52CitjbGVhcmVycgorY2xvY2sKK2Nsb2NrX2dldHJlcworY2xvY2tfZ2V0dGltZQorY2xvY2tfbmFub3NsZWVwCitjbG9ja19zZXR0aW1lCitjbG9uZQorY2xvc2UKK2Nsb3NlZGlyCitjbG9zZWxvZworY2xvc2Vsb2dfcgorY29ubmVjdAorY29weV9UTV90b190bQorY29weV90bV90b19UTQorY3B1YWNjdF9hZGQKK2NyZWF0CitjdGltZQorY3RpbWU2NAorY3RpbWU2NF9yCitjdGltZV9yCitkYWVtb24KK2RlbGV0ZV9tb2R1bGUKK2RpZmZ0aW1lCitkaXJmZAorZGlybmFtZQorZGlybmFtZV9yCitkaXYKK2RsY2FsbG9jCitkbGZyZWUKK2RsaW5kZXBlbmRlbnRfY2FsbG9jCitkbGluZGVwZW5kZW50X2NvbWFsbG9jCitkbG1hbGxpbmZvCitkbG1hbGxvYworZGxtYWxsb2NfZm9vdHByaW50CitkbG1hbGxvY19tYXhfZm9vdHByaW50CitkbG1hbGxvY19zdGF0cworZGxtYWxsb2NfdHJpbQorZGxtYWxsb2NfdXNhYmxlX3NpemUKK2RsbWFsbG9jX3dhbGtfZnJlZV9wYWdlcworZGxtYWxsb2Nfd2Fsa19oZWFwCitkbG1hbGxvcHQKK2RsbWVtYWxpZ24KK2RscHZhbGxvYworZGxyZWFsbG9jCitkbHZhbGxvYworZG5fZXhwYW5kCitkcmFuZDQ4CitkdXAKK2R1cDIKK2VuZHB3ZW50CitlbmRzZXJ2ZW50CitlbmR1c2Vyc2hlbGwKK2VuZHV0ZW50CitlcG9sbF9jcmVhdGUKK2Vwb2xsX2N0bAorZXBvbGxfd2FpdAorZXJhbmQ0OAorZXJyCitlcnJ4CitldmVudGZkCitldmVudGZkX3JlYWQKK2V2ZW50ZmRfd3JpdGUKK2V4ZWNsCitleGVjbGUKK2V4ZWNscAorZXhlY3YKK2V4ZWN2ZQorZXhlY3ZwCitleGl0CitmY2hkaXIKK2ZjaG1vZAorZmNobW9kYXQKK2ZjaG93bgorZmNob3duYXQKK2ZjbG9zZQorZmNudGwKK2ZkYXRhc3luYworZmRvcGVuCitmZG9wZW5kaXIKK2ZkcHJpbnRmCitmZW9mCitmZXJyb3IKK2ZmbHVzaAorZmdldGMKK2ZnZXRsbgorZmdldHBvcworZmdldHMKK2ZnZXR3YworZmdldHdzCitmaWxlbm8KK2Zsb2NrCitmbG9ja2ZpbGUKK2ZubWF0Y2gKK2ZvcGVuCitmb3JrCitmcGF0aGNvbmYKK2ZwcmludGYKK2ZwdXJnZQorZnB1dGMKK2ZwdXRzCitmcHV0d2MKK2ZwdXR3cworZnJlYWQKK2ZyZWUKK2ZyZWVhZGRyaW5mbworZnJlZWR0b2EKK2ZyZW9wZW4KK2ZzY2FuZgorZnNlZWsKK2ZzZWVrbworZnNldHBvcworZnN0YXQKK2ZzdGF0YXQKK2ZzdGF0ZnMKK2ZzeW5jCitmdGVsbAorZnRlbGxvCitmdGltZQorZnRvaworZnRydW5jYXRlCitmdHJ5bG9ja2ZpbGUKK2Z0c19jaGlsZHJlbgorZnRzX2Nsb3NlCitmdHNfb3BlbgorZnRzX3JlYWQKK2Z0c19zZXQKK2Z1bmxvY2tmaWxlCitmdW5vcGVuCitmdXRleAorZndpZGUKK2Z3cHJpbnRmCitmd3JpdGUKK2Z3c2NhbmYKK2dhaV9zdHJlcnJvcgorZ2V0X21hbGxvY19sZWFrX2luZm8KK2dldGFkZHJpbmZvCitnZXRjCitnZXRjX3VubG9ja2VkCitnZXRjaGFyCitnZXRjaGFyX3VubG9ja2VkCitnZXRjd2QKK2dldGRlbnRzCitnZXRkdGFibGVzaXplCitnZXRlZ2lkCitnZXRlbnYKK2dldGV1aWQKK2dldGdpZAorZ2V0Z3JnaWQKK2dldGdybmFtCitnZXRncm91cGxpc3QKK2dldGdyb3VwcworZ2V0aG9zdGJ5YWRkcgorZ2V0aG9zdGJ5bmFtZQorZ2V0aG9zdGJ5bmFtZTIKK2dldGhvc3RieW5hbWVfcgorZ2V0aG9zdGVudAorZ2V0aG9zdG5hbWUKK2dldGl0aW1lcgorZ2V0bG9naW4KK2dldG1udGVudAorZ2V0bmFtZWluZm8KK2dldG5ldGJ5YWRkcgorZ2V0bmV0YnluYW1lCitnZXRvcHQKK2dldG9wdF9sb25nCitnZXRvcHRfbG9uZ19vbmx5CitnZXRwZWVybmFtZQorZ2V0cGdpZAorZ2V0cGdycAorZ2V0cGlkCitnZXRwcGlkCitnZXRwcmlvcml0eQorZ2V0cHJvdG9ieW5hbWUKK2dldHByb3RvYnludW1iZXIKK2dldHB0CitnZXRwd25hbQorZ2V0cHd1aWQKK2dldHJlc2dpZAorZ2V0cmVzdWlkCitnZXRybGltaXQKK2dldHJ1c2FnZQorZ2V0cworZ2V0c2VydmJ5bmFtZQorZ2V0c2VydmJ5cG9ydAorZ2V0c2VydmVudAorZ2V0c2VydmVudF9yCitnZXRzb2NrbmFtZQorZ2V0c29ja29wdAorZ2V0dGlkCitnZXR0aW1lb2ZkYXkKK2dldHVpZAorZ2V0dXNlcnNoZWxsCitnZXR1dGVudAorZ2V0d2MKK2dldHdjaGFyCitnbXRpbWUKK2dtdGltZTY0CitnbXRpbWU2NF9yCitnbXRpbWVfcgoraGVycm9yCitoc3RyZXJyb3IKK2lmX2luZGV4dG9uYW1lCitpZl9uYW1ldG9pbmRleAoraW5kZXgKK2luZXRfYWRkcgoraW5ldF9hdG9uCitpbmV0X25zYXBfYWRkcgoraW5ldF9uc2FwX250b2EKK2luZXRfbnRvYQoraW5ldF9udG9wCitpbmV0X3B0b24KK2luaXRfbW9kdWxlCitpbml0Z3JvdXBzCitpbm90aWZ5X2FkZF93YXRjaAoraW5vdGlmeV9pbml0Citpbm90aWZ5X3JtX3dhdGNoCitpb2N0bAoraW9wcmlvX2dldAoraW9wcmlvX3NldAoraXNhbG51bQoraXNhbHBoYQoraXNhc2NpaQoraXNhdHR5Citpc2JsYW5rCitpc2NudHJsCitpc2RpZ2l0Citpc2dyYXBoCitpc2xvd2VyCitpc3ByaW50Citpc3B1bmN0Citpc3NldHVnaWQKK2lzc3BhY2UKK2lzdXBwZXIKK2lzd2FsbnVtCitpc3dhbHBoYQoraXN3Y250cmwKK2lzd2N0eXBlCitpc3dkaWdpdAoraXN3Z3JhcGgKK2lzd2xvd2VyCitpc3dwcmludAoraXN3cHVuY3QKK2lzd3NwYWNlCitpc3d1cHBlcgoraXN3eGRpZ2l0Citpc3hkaWdpdAoranJhbmQ0OAora2lsbAora2lsbHBnCitrbG9nY3RsCitsY2hvd24KK2xkZXhwCitsZGl2CitsaW5rCitsaXN0ZW4KK2xsZGl2Citsb2NhbHRpbWUKK2xvY2FsdGltZTY0Citsb2NhbHRpbWU2NF9yCitsb2NhbHRpbWVfcgorbG9uZ2ptcAorbG9uZ2ptcGVycm9yCitscmFuZDQ4Citsc2VlaworbHNlZWs2NAorbHN0YXQKK21hZHZpc2UKK21hbGxpbmZvCittYWxsb2MKK21hbGxvY19kZWJ1Z19pbml0CittYnJsZW4KK21icnRvd2MKK21ic2luaXQKK21ic3J0b3djcworbWJzdG93Y3MKK21lbWFsaWduCittZW1jY3B5CittZW1jaHIKK21lbWNtcAorbWVtY3B5CittZW1tZW0KK21lbW1vdmUKK21lbXJjaHIKK21lbXNldAorbWVtc3dhcAorbWluY29yZQorbWtkaXIKK21rZGlyYXQKK21rZHRlbXAKK21rbm9kCitta3N0ZW1wCitta3N0ZW1wcworbWt0ZW1wCitta3RpbWUKK21rdGltZTY0CittbG9jaworbW1hcAorbW91bnQKK21wcm90ZWN0CittcmFuZDQ4CittcmVtYXAKK21zeW5jCittdW5sb2NrCittdW5tYXAKK25hbm9zbGVlcAorbmljZQorbnJhbmQ0OAorbnNkaXNwYXRjaAorb3Blbgorb3BlbmF0CitvcGVuZGlyCitvcGVubG9nCitvcGVubG9nX3IKK3BhdGhjb25mCitwYXVzZQorcGNsb3NlCitwZXJyb3IKK3BpcGUKK3BpcGUyCitwb2xsCitwb3BlbgorcHJjdGwKK3ByZWFkCitwcmludGYKK3BzZWxlY3QKK3B0aHJlYWRfYXR0cl9kZXN0cm95CitwdGhyZWFkX2F0dHJfZ2V0ZGV0YWNoc3RhdGUKK3B0aHJlYWRfYXR0cl9nZXRndWFyZHNpemUKK3B0aHJlYWRfYXR0cl9nZXRzY2hlZHBhcmFtCitwdGhyZWFkX2F0dHJfZ2V0c2NoZWRwb2xpY3kKK3B0aHJlYWRfYXR0cl9nZXRzY29wZQorcHRocmVhZF9hdHRyX2dldHN0YWNrCitwdGhyZWFkX2F0dHJfZ2V0c3RhY2thZGRyCitwdGhyZWFkX2F0dHJfZ2V0c3RhY2tzaXplCitwdGhyZWFkX2F0dHJfaW5pdAorcHRocmVhZF9hdHRyX3NldGRldGFjaHN0YXRlCitwdGhyZWFkX2F0dHJfc2V0Z3VhcmRzaXplCitwdGhyZWFkX2F0dHJfc2V0c2NoZWRwYXJhbQorcHRocmVhZF9hdHRyX3NldHNjaGVkcG9saWN5CitwdGhyZWFkX2F0dHJfc2V0c2NvcGUKK3B0aHJlYWRfYXR0cl9zZXRzdGFjaworcHRocmVhZF9hdHRyX3NldHN0YWNrYWRkcgorcHRocmVhZF9hdHRyX3NldHN0YWNrc2l6ZQorcHRocmVhZF9jb25kX2Jyb2FkY2FzdAorcHRocmVhZF9jb25kX2Rlc3Ryb3kKK3B0aHJlYWRfY29uZF9pbml0CitwdGhyZWFkX2NvbmRfc2lnbmFsCitwdGhyZWFkX2NvbmRfdGltZWR3YWl0CitwdGhyZWFkX2NvbmRfdGltZWR3YWl0X21vbm90b25pYworcHRocmVhZF9jb25kX3RpbWVkd2FpdF9tb25vdG9uaWNfbnAKK3B0aHJlYWRfY29uZF90aW1lZHdhaXRfcmVsYXRpdmVfbnAKK3B0aHJlYWRfY29uZF90aW1lb3V0X25wCitwdGhyZWFkX2NvbmRfd2FpdAorcHRocmVhZF9jb25kYXR0cl9kZXN0cm95CitwdGhyZWFkX2NvbmRhdHRyX2dldHBzaGFyZWQKK3B0aHJlYWRfY29uZGF0dHJfaW5pdAorcHRocmVhZF9jb25kYXR0cl9zZXRwc2hhcmVkCitwdGhyZWFkX2NyZWF0ZQorcHRocmVhZF9kZXRhY2gKK3B0aHJlYWRfZXF1YWwKK3B0aHJlYWRfZXhpdAorcHRocmVhZF9nZXRhdHRyX25wCitwdGhyZWFkX2dldGNwdWNsb2NraWQKK3B0aHJlYWRfZ2V0c2NoZWRwYXJhbQorcHRocmVhZF9nZXRzcGVjaWZpYworcHRocmVhZF9qb2luCitwdGhyZWFkX2tleV9jcmVhdGUKK3B0aHJlYWRfa2V5X2RlbGV0ZQorcHRocmVhZF9raWxsCitwdGhyZWFkX211dGV4X2Rlc3Ryb3kKK3B0aHJlYWRfbXV0ZXhfaW5pdAorcHRocmVhZF9tdXRleF9sb2NrCitwdGhyZWFkX211dGV4X2xvY2tfdGltZW91dF9ucAorcHRocmVhZF9tdXRleF90cnlsb2NrCitwdGhyZWFkX211dGV4X3VubG9jaworcHRocmVhZF9tdXRleGF0dHJfZGVzdHJveQorcHRocmVhZF9tdXRleGF0dHJfZ2V0cHNoYXJlZAorcHRocmVhZF9tdXRleGF0dHJfZ2V0dHlwZQorcHRocmVhZF9tdXRleGF0dHJfaW5pdAorcHRocmVhZF9tdXRleGF0dHJfc2V0cHNoYXJlZAorcHRocmVhZF9tdXRleGF0dHJfc2V0dHlwZQorcHRocmVhZF9vbmNlCitwdGhyZWFkX3J3bG9ja19kZXN0cm95CitwdGhyZWFkX3J3bG9ja19pbml0CitwdGhyZWFkX3J3bG9ja19yZGxvY2sKK3B0aHJlYWRfcndsb2NrX3RpbWVkcmRsb2NrCitwdGhyZWFkX3J3bG9ja190aW1lZHdybG9jaworcHRocmVhZF9yd2xvY2tfdHJ5cmRsb2NrCitwdGhyZWFkX3J3bG9ja190cnl3cmxvY2sKK3B0aHJlYWRfcndsb2NrX3VubG9jaworcHRocmVhZF9yd2xvY2tfd3Jsb2NrCitwdGhyZWFkX3J3bG9ja2F0dHJfZGVzdHJveQorcHRocmVhZF9yd2xvY2thdHRyX2dldHBzaGFyZWQKK3B0aHJlYWRfcndsb2NrYXR0cl9pbml0CitwdGhyZWFkX3J3bG9ja2F0dHJfc2V0cHNoYXJlZAorcHRocmVhZF9zZWxmCitwdGhyZWFkX3NldG5hbWVfbnAKK3B0aHJlYWRfc2V0c2NoZWRwYXJhbQorcHRocmVhZF9zZXRzcGVjaWZpYworcHRocmVhZF9zaWdtYXNrCitwdHJhY2UKK3B0c25hbWUKK3B0c25hbWVfcgorcHV0YworcHV0Y191bmxvY2tlZAorcHV0Y2hhcgorcHV0Y2hhcl91bmxvY2tlZAorcHV0ZW52CitwdXRzCitwdXR1dGxpbmUKK3B1dHcKK3B1dHdjCitwdXR3Y2hhcgorcHdyaXRlCitxc29ydAorcmFpc2UKK3JlYWQKK3JlYWRkaXIKK3JlYWRkaXJfcgorcmVhZGxpbmsKK3JlYWR2CityZWFsbG9jCityZWFscGF0aAorcmVib290CityZWN2CityZWN2ZnJvbQorcmVjdm1zZworcmVnY29tcAorcmVnZXJyb3IKK3JlZ2V4ZWMKK3JlZ2ZyZWUKK3JlbW92ZQorcmVuYW1lCityZW5hbWVhdAorcmVzX2luaXQKK3Jlc19ta3F1ZXJ5CityZXNfbmVlZF9pbml0CityZXNfcXVlcnkKK3Jlc19zZWFyY2gKK3Jld2luZAorcmV3aW5kZGlyCitybWRpcgorc2Jyaworc2NhbmRpcgorc2NhbmYKK3NjaGVkX2dldF9wcmlvcml0eV9tYXgKK3NjaGVkX2dldF9wcmlvcml0eV9taW4KK3NjaGVkX2dldHBhcmFtCitzY2hlZF9nZXRzY2hlZHVsZXIKK3NjaGVkX3JyX2dldF9pbnRlcnZhbAorc2NoZWRfc2V0cGFyYW0KK3NjaGVkX3NldHNjaGVkdWxlcgorc2NoZWRfeWllbGQKK3NlZWQ0OAorc2VsZWN0CitzZW1fY2xvc2UKK3NlbV9kZXN0cm95CitzZW1fZ2V0dmFsdWUKK3NlbV9pbml0CitzZW1fb3Blbgorc2VtX3Bvc3QKK3NlbV90aW1lZHdhaXQKK3NlbV90cnl3YWl0CitzZW1fdW5saW5rCitzZW1fd2FpdAorc2VuZAorc2VuZGZpbGUKK3NlbmRtc2cKK3NlbmR0bworc2V0YnVmCitzZXRidWZmZXIKK3NldGVnaWQKK3NldGVudgorc2V0ZXVpZAorc2V0Z2lkCitzZXRncm91cHMKK3NldGl0aW1lcgorc2V0am1wCitzZXRsaW5lYnVmCitzZXRsb2NhbGUKK3NldGxvZ21hc2sKK3NldGxvZ21hc2tfcgorc2V0cGdpZAorc2V0cGdycAorc2V0cHJpb3JpdHkKK3NldHJlZ2lkCitzZXRyZXNnaWQKK3NldHJlc3VpZAorc2V0cmV1aWQKK3NldHJsaW1pdAorc2V0c2VydmVudAorc2V0c2lkCitzZXRzb2Nrb3B0CitzZXR0aW1lb2ZkYXkKK3NldHVpZAorc2V0dXNlcnNoZWxsCitzZXR1dGVudAorc2V0dmJ1Zgorc2h1dGRvd24KK3NpZ2FjdGlvbgorc2lnYWx0c3RhY2sKK3NpZ2Jsb2NrCitzaWdpbnRlcnJ1cHQKK3NpZ2xvbmdqbXAKK3NpZ3BlbmRpbmcKK3NpZ3Byb2NtYXNrCitzaWdzZXRqbXAKK3NpZ3NldG1hc2sKK3NpZ3N1c3BlbmQKK3NpZ3dhaXQKK3NsZWVwCitzbnByaW50Zgorc29ja2V0Citzb2NrZXRwYWlyCitzcHJpbnRmCitzcmFuZDQ4Citzc2NhbmYKK3N0YXQKK3N0YXRmcworc3RyY2FzZWNtcAorc3RyY2FzZXN0cgorc3RyY2F0CitzdHJjaHIKK3N0cmNtcAorc3RyY29sbAorc3RyY3B5CitzdHJjc3BuCitzdHJkdXAKK3N0cmVycm9yCitzdHJlcnJvcl9yCitzdHJmdGltZQorc3RyZnRpbWVfdHoKK3N0cmxjYXQKK3N0cmxjcHkKK3N0cmxlbgorc3RybmNhc2VjbXAKK3N0cm5jYXQKK3N0cm5jbXAKK3N0cm5jcHkKK3N0cm5kdXAKK3N0cm5sZW4KK3N0cm50b2ltYXgKK3N0cm50b3VtYXgKK3N0cnBicmsKK3N0cnB0aW1lCitzdHJyY2hyCitzdHJzZXAKK3N0cnNpZ25hbAorc3Ryc3BuCitzdHJzdHIKK3N0cnRvZAorc3RydG9pbWF4CitzdHJ0b2sKK3N0cnRva19yCitzdHJ0b2wKK3N0cnRvbGwKK3N0cnRvdGltZXZhbAorc3RydG91bAorc3RydG91bGwKK3N0cnRvdW1heAorc3RyeGZybQorc3dwcmludGYKK3N3c2NhbmYKK3N5bWxpbmsKK3N5bmMKK3N5c2NhbGwKK3N5c2NvbmYKK3N5c2luZm8KK3N5c2xvZworc3lzbG9nX3IKK3N5c3RlbQorc3lzdl9zaWduYWwKK3RjZ2V0cGdycAordGNzZXRwZ3JwCit0ZW1wbmFtCit0aW1lCit0aW1lZ202NAordGltZWxvY2FsNjQKK3RpbWVyX2NyZWF0ZQordGltZXJfZGVsZXRlCit0aW1lcl9nZXRvdmVycnVuCit0aW1lcl9nZXR0aW1lCit0aW1lcl9zZXR0aW1lCit0aW1lcwordGtpbGwKK3RtcGZpbGUKK3RtcG5hbQordG9hc2NpaQordG9sb3dlcgordG91cHBlcgordG93bG93ZXIKK3Rvd3VwcGVyCit0cnVuY2F0ZQordHR5bmFtZQordHR5bmFtZV9yCit0enNldAordW1hc2sKK3Vtb3VudAordW1vdW50MgordW5hbWUKK3VuZ2V0YwordW5nZXR3YwordW5saW5rCit1bmxpbmthdAordW5sb2NrcHQKK3Vuc2V0ZW52Cit1c2xlZXAKK3V0aW1lCit1dGltZW5zYXQKK3V0aW1lcwordXRtcG5hbWUKK3ZhbGlkX3RtX21vbgordmFsaWRfdG1fd2RheQordmFsbG9jCit2YXNwcmludGYKK3ZlcnIKK3ZlcnJ4Cit2ZmRwcmludGYKK3Zmb3JrCit2ZnByaW50ZgordmZzY2FuZgordmZ3cHJpbnRmCit2cHJpbnRmCit2c2NhbmYKK3ZzbnByaW50ZgordnNwcmludGYKK3Zzc2NhbmYKK3Zzd3ByaW50ZgordnN5c2xvZwordnN5c2xvZ19yCit2d2Fybgordndhcm54Cit2d3ByaW50Zgord2FpdAord2FpdDMKK3dhaXRpZAord2FpdHBpZAord2Fybgord2FybngKK3djcGNweQord2NwbmNweQord2NydG9tYgord2NzY2FzZWNtcAord2NzY2F0Cit3Y3NjaHIKK3djc2NtcAord2NzY29sbAord2NzY3B5Cit3Y3Njc3BuCit3Y3NkdXAKK3djc2Z0aW1lCit3Y3NsY2F0Cit3Y3NsY3B5Cit3Y3NsZW4KK3djc25jYXNlY21wCit3Y3NuY2F0Cit3Y3NuY21wCit3Y3NuY3B5Cit3Y3NubGVuCit3Y3NwYnJrCit3Y3NyY2hyCit3Y3NydG9tYnMKK3djc3Nwbgord2Nzc3RyCit3Y3N0b2QKK3djc3Rvaword2NzdG9sCit3Y3N0b21icword2NzdG91bAord2Nzd2NzCit3Y3N3aWR0aAord2NzeGZybQord2N0b2IKK3djdHlwZQord2N3aWR0aAord21lbWNocgord21lbWNtcAord21lbWNweQord21lbW1vdmUKK3dtZW1zZXQKK3dwcmludGYKK3dyaXRlCit3cml0ZXYKK3dzY2FuZgpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTEyL2FyY2gteDg2L3N5bWJvbHMvbGliYy5zby52YXJpYWJsZXMudHh0IGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTEyL2FyY2gteDg2L3N5bWJvbHMvbGliYy5zby52YXJpYWJsZXMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlNWVmNjMKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTIvYXJjaC14ODYvc3ltYm9scy9saWJjLnNvLnZhcmlhYmxlcy50eHQKQEAgLTAsMCArMSw1MSBAQAorX0NfY3R5cGVfCitfQ190b2xvd2VyXworX0NfdG91cHBlcl8KK19fYXRleGl0CitfX2F0ZXhpdF9pbnZhbGlkCitfX2Jpb25pY19icmsKK19fZXZPcHRNb25vVGltZQorX19pc3RocmVhZGVkCitfX2xpYmNfbWFsbG9jX2RlZmF1bHRfZGlzcGF0Y2gKK19fbGliY19tYWxsb2NfZGlzcGF0Y2gKK19fcF9jZXJ0X3N5bXMKK19fcF9jbGFzc19zeW1zCitfX3BfZGVmYXVsdF9zZWN0aW9uX3N5bXMKK19fcF9rZXlfc3ltcworX19wX3Jjb2RlX3N5bXMKK19fcF90eXBlX3N5bXMKK19fcF91cGRhdGVfc2VjdGlvbl9zeW1zCitfX3BhZ2Vfc2hpZnQKK19fcGFnZV9zaXplCitfX3Byb2duYW1lCitfX3JhbmQ0OF9hZGQKK19fcmFuZDQ4X211bHQKK19fcmFuZDQ4X3NlZWQKK19fc0YKK19fc0ZleHQKK19fc2RpZGluaXQKK19fc2dsdWUKK19fc3RhY2tfY2hrX2d1YXJkCitfX3N5c3RlbV9wcm9wZXJ0eV9hcmVhX18KK19jdHlwZV8KK19ucmVzCitfbnNfZmxhZ2RhdGEKK19yYW5kNDhfYWRkCitfcmFuZDQ4X211bHQKK19yYW5kNDhfc2VlZAorX3Jlc19vcGNvZGVzCitfdG9sb3dlcl90YWJfCitfdG91cHBlcl90YWJfCitkYXlsaWdodAorZW52aXJvbgoraF9lcnJsaXN0CitoX25lcnIKK29wdGFyZworb3B0ZXJyCitvcHRpbmQKK29wdG9wdAorb3B0cmVzZXQKK3N5c19zaWdsaXN0CitzeXNfc2lnbmFtZQordGltZXpvbmUKK3R6bmFtZQpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTEyL2luY2x1ZGUvc3lzL3N0YXQuaCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xMi9pbmNsdWRlL3N5cy9zdGF0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDk3ZjQwNAotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xMi9pbmNsdWRlL3N5cy9zdGF0LmgKQEAgLTAsMCArMSwxMTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluCisgKiAgICB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiAgICBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTCisgKiBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICogQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAorICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywKKyAqIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUworICogT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VECisgKiBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQKKyAqIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKyNpZm5kZWYgX1NZU19TVEFUX0hfCisjZGVmaW5lIF9TWVNfU1RBVF9IXworCisjaW5jbHVkZSA8c3lzL2NkZWZzLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3RpbWUuaD4KKyNpbmNsdWRlIDxsaW51eC9zdGF0Lmg+CisKKyNpbmNsdWRlIDxlbmRpYW4uaD4KKworX19CRUdJTl9ERUNMUworCisvKiByZWFsbHkgbWF0Y2hlcyBzdGF0NjQgaW4gdGhlIGtlcm5lbCwgaGVuY2UgdGhlIHBhZGRpbmcKKyAqIE5vdGU6IFRoZSBrZXJuZWwgemVybydzIHRoZSBwYWRkZWQgcmVnaW9uIGJlY2F1c2UgZ2xpYmMgbWlnaHQgcmVhZCB0aGVtCisgKiBpbiB0aGUgaG9wZSB0aGF0IHRoZSBrZXJuZWwgaGFzIHN0cmV0Y2hlZCB0byB1c2luZyBsYXJnZXIgc2l6ZXMuCisgKi8KK3N0cnVjdCBzdGF0IHsKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgIHN0X2RldjsKKyAgICB1bnNpZ25lZCBjaGFyICAgICAgIF9fcGFkMFs0XTsKKworICAgIHVuc2lnbmVkIGxvbmcgICAgICAgX19zdF9pbm87CisgICAgdW5zaWduZWQgaW50ICAgICAgICBzdF9tb2RlOworICAgIHVuc2lnbmVkIGludCAgICAgICAgc3Rfbmxpbms7CisKKyAgICB1bnNpZ25lZCBsb25nICAgICAgIHN0X3VpZDsKKyAgICB1bnNpZ25lZCBsb25nICAgICAgIHN0X2dpZDsKKworICAgIHVuc2lnbmVkIGxvbmcgbG9uZyAgc3RfcmRldjsKKyAgICB1bnNpZ25lZCBjaGFyICAgICAgIF9fcGFkM1s0XTsKKworICAgIGxvbmcgbG9uZyAgICAgICAgICAgc3Rfc2l6ZTsKKyAgICB1bnNpZ25lZCBsb25nCXN0X2Jsa3NpemU7CisgICAgdW5zaWduZWQgbG9uZyBsb25nICBzdF9ibG9ja3M7CisKKyAgICB1bnNpZ25lZCBsb25nICAgICAgIHN0X2F0aW1lOworICAgIHVuc2lnbmVkIGxvbmcgICAgICAgc3RfYXRpbWVfbnNlYzsKKworICAgIHVuc2lnbmVkIGxvbmcgICAgICAgc3RfbXRpbWU7CisgICAgdW5zaWduZWQgbG9uZyAgICAgICBzdF9tdGltZV9uc2VjOworCisgICAgdW5zaWduZWQgbG9uZyAgICAgICBzdF9jdGltZTsKKyAgICB1bnNpZ25lZCBsb25nICAgICAgIHN0X2N0aW1lX25zZWM7CisKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgIHN0X2lubzsKK307CisKKy8qIEZvciBjb21wYXRpYmlsaXR5IHdpdGggR0xpYmMsIHdlIHByb3ZpZGUgbWFjcm8gYWxpYXNlcworICogZm9yIHRoZSBub24tUG9zaXggbmFuby1zZWNvbmRzIGFjY2Vzc29ycy4KKyAqLworI2RlZmluZSAgc3RfYXRpbWVuc2VjICBzdF9hdGltZV9uc2VjCisjZGVmaW5lICBzdF9tdGltZW5zZWMgIHN0X210aW1lX25zZWMKKyNkZWZpbmUgIHN0X2N0aW1lbnNlYyAgc3RfY3RpbWVfbnNlYworCitleHRlcm4gaW50ICAgIGNobW9kKGNvbnN0IGNoYXIgKiwgbW9kZV90KTsKK2V4dGVybiBpbnQgICAgZmNobW9kKGludCwgbW9kZV90KTsKK2V4dGVybiBpbnQgICAgbWtkaXIoY29uc3QgY2hhciAqLCBtb2RlX3QpOworCitleHRlcm4gaW50ICAgIHN0YXQoY29uc3QgY2hhciAqLCBzdHJ1Y3Qgc3RhdCAqKTsKK2V4dGVybiBpbnQgICAgZnN0YXQoaW50LCBzdHJ1Y3Qgc3RhdCAqKTsKK2V4dGVybiBpbnQgICAgbHN0YXQoY29uc3QgY2hhciAqLCBzdHJ1Y3Qgc3RhdCAqKTsKK2V4dGVybiBpbnQgICAgbWtub2QoY29uc3QgY2hhciAqLCBtb2RlX3QsIGRldl90KTsKK2V4dGVybiBtb2RlX3QgdW1hc2sobW9kZV90KTsKKworI2RlZmluZSAgc3RhdDY0ICAgIHN0YXQKKyNkZWZpbmUgIGZzdGF0NjQgICBmc3RhdAorI2RlZmluZSAgbHN0YXQ2NCAgIGxzdGF0CisKK3N0YXRpYyBfX2lubGluZV9fIGludCBta2ZpZm8oY29uc3QgY2hhciAqX19wLCBtb2RlX3QgX19tKQoreworICByZXR1cm4gbWtub2QoX19wLCAoX19tICYgflNfSUZNVCkgfCBTX0lGSUZPLCAoZGV2X3QpMCk7Cit9CisKK2V4dGVybiBpbnQgIGZzdGF0YXQoaW50IGRpcmZkLCBjb25zdCBjaGFyICpwYXRoLCBzdHJ1Y3Qgc3RhdCAqYnVmLCBpbnQgZmxhZ3MpOworZXh0ZXJuIGludCAgbWtkaXJhdChpbnQgZGlyZmQsIGNvbnN0IGNoYXIgKnBhdGhuYW1lLCBtb2RlX3QgbW9kZSk7CitleHRlcm4gaW50IGZjaG93bmF0KGludCBkaXJmZCwgY29uc3QgY2hhciAqcGF0aCwgdWlkX3Qgb3duZXIsIGdpZF90IGdyb3VwLCBpbnQgZmxhZ3MpOworZXh0ZXJuIGludCBmY2htb2RhdChpbnQgZGlyZmQsIGNvbnN0IGNoYXIgKnBhdGgsIG1vZGVfdCBtb2RlLCBpbnQgZmxhZ3MpOworZXh0ZXJuIGludCByZW5hbWVhdChpbnQgb2xkZGlyZmQsIGNvbnN0IGNoYXIgKm9sZHBhdGgsIGludCBuZXdkaXJmZCwgY29uc3QgY2hhciAqbmV3cGF0aCk7CisKKyMgZGVmaW5lIFVUSU1FX05PVyAgICAgICgoMWwgPDwgMzApIC0gMWwpCisjIGRlZmluZSBVVElNRV9PTUlUICAgICAoKDFsIDw8IDMwKSAtIDJsKQorZXh0ZXJuIGludCB1dGltZW5zYXQoaW50IGZkLCBjb25zdCBjaGFyICpwYXRoLCBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgdGltZXNbMl0sIGludCBmbGFncyk7CisKK19fRU5EX0RFQ0xTCisKKyNlbmRpZiAvKiBfU1lTX1NUQVRfSF8gKi8KZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xMy9hcmNoLWFybS9zeW1ib2xzL2xpYmFuZHJvaWQuc28uZnVuY3Rpb25zLnR4dCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xMy9hcmNoLWFybS9zeW1ib2xzL2xpYmFuZHJvaWQuc28uZnVuY3Rpb25zLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YWNlOGMzCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTEzL2FyY2gtYXJtL3N5bWJvbHMvbGliYW5kcm9pZC5zby5mdW5jdGlvbnMudHh0CkBAIC0wLDAgKzEsMTcwIEBACitBQXNzZXRfY2xvc2UKK0FBc3NldERpcl9jbG9zZQorQUFzc2V0RGlyX2dldE5leHRGaWxlTmFtZQorQUFzc2V0RGlyX3Jld2luZAorQUFzc2V0X2dldEJ1ZmZlcgorQUFzc2V0X2dldExlbmd0aAorQUFzc2V0X2dldExlbmd0aDY0CitBQXNzZXRfZ2V0UmVtYWluaW5nTGVuZ3RoCitBQXNzZXRfZ2V0UmVtYWluaW5nTGVuZ3RoNjQKK0FBc3NldF9pc0FsbG9jYXRlZAorQUFzc2V0TWFuYWdlcl9mcm9tSmF2YQorQUFzc2V0TWFuYWdlcl9vcGVuCitBQXNzZXRNYW5hZ2VyX29wZW5EaXIKK0FBc3NldF9vcGVuRmlsZURlc2NyaXB0b3IKK0FBc3NldF9vcGVuRmlsZURlc2NyaXB0b3I2NAorQUFzc2V0X3JlYWQKK0FBc3NldF9zZWVrCitBQXNzZXRfc2VlazY0CitBQ29uZmlndXJhdGlvbl9jb3B5CitBQ29uZmlndXJhdGlvbl9kZWxldGUKK0FDb25maWd1cmF0aW9uX2RpZmYKK0FDb25maWd1cmF0aW9uX2Zyb21Bc3NldE1hbmFnZXIKK0FDb25maWd1cmF0aW9uX2dldENvdW50cnkKK0FDb25maWd1cmF0aW9uX2dldERlbnNpdHkKK0FDb25maWd1cmF0aW9uX2dldEtleWJvYXJkCitBQ29uZmlndXJhdGlvbl9nZXRLZXlzSGlkZGVuCitBQ29uZmlndXJhdGlvbl9nZXRMYW5ndWFnZQorQUNvbmZpZ3VyYXRpb25fZ2V0TWNjCitBQ29uZmlndXJhdGlvbl9nZXRNbmMKK0FDb25maWd1cmF0aW9uX2dldE5hdkhpZGRlbgorQUNvbmZpZ3VyYXRpb25fZ2V0TmF2aWdhdGlvbgorQUNvbmZpZ3VyYXRpb25fZ2V0T3JpZW50YXRpb24KK0FDb25maWd1cmF0aW9uX2dldFNjcmVlbkhlaWdodERwCitBQ29uZmlndXJhdGlvbl9nZXRTY3JlZW5Mb25nCitBQ29uZmlndXJhdGlvbl9nZXRTY3JlZW5TaXplCitBQ29uZmlndXJhdGlvbl9nZXRTY3JlZW5XaWR0aERwCitBQ29uZmlndXJhdGlvbl9nZXRTZGtWZXJzaW9uCitBQ29uZmlndXJhdGlvbl9nZXRTbWFsbGVzdFNjcmVlbldpZHRoRHAKK0FDb25maWd1cmF0aW9uX2dldFRvdWNoc2NyZWVuCitBQ29uZmlndXJhdGlvbl9nZXRVaU1vZGVOaWdodAorQUNvbmZpZ3VyYXRpb25fZ2V0VWlNb2RlVHlwZQorQUNvbmZpZ3VyYXRpb25faXNCZXR0ZXJUaGFuCitBQ29uZmlndXJhdGlvbl9tYXRjaAorQUNvbmZpZ3VyYXRpb25fbmV3CitBQ29uZmlndXJhdGlvbl9zZXRDb3VudHJ5CitBQ29uZmlndXJhdGlvbl9zZXREZW5zaXR5CitBQ29uZmlndXJhdGlvbl9zZXRLZXlib2FyZAorQUNvbmZpZ3VyYXRpb25fc2V0S2V5c0hpZGRlbgorQUNvbmZpZ3VyYXRpb25fc2V0TGFuZ3VhZ2UKK0FDb25maWd1cmF0aW9uX3NldE1jYworQUNvbmZpZ3VyYXRpb25fc2V0TW5jCitBQ29uZmlndXJhdGlvbl9zZXROYXZIaWRkZW4KK0FDb25maWd1cmF0aW9uX3NldE5hdmlnYXRpb24KK0FDb25maWd1cmF0aW9uX3NldE9yaWVudGF0aW9uCitBQ29uZmlndXJhdGlvbl9zZXRTY3JlZW5IZWlnaHREcAorQUNvbmZpZ3VyYXRpb25fc2V0U2NyZWVuTG9uZworQUNvbmZpZ3VyYXRpb25fc2V0U2NyZWVuU2l6ZQorQUNvbmZpZ3VyYXRpb25fc2V0U2NyZWVuV2lkdGhEcAorQUNvbmZpZ3VyYXRpb25fc2V0U2RrVmVyc2lvbgorQUNvbmZpZ3VyYXRpb25fc2V0U21hbGxlc3RTY3JlZW5XaWR0aERwCitBQ29uZmlndXJhdGlvbl9zZXRUb3VjaHNjcmVlbgorQUNvbmZpZ3VyYXRpb25fc2V0VWlNb2RlTmlnaHQKK0FDb25maWd1cmF0aW9uX3NldFVpTW9kZVR5cGUKK0FJbnB1dEV2ZW50X2dldERldmljZUlkCitBSW5wdXRFdmVudF9nZXRTb3VyY2UKK0FJbnB1dEV2ZW50X2dldFR5cGUKK0FJbnB1dFF1ZXVlX2F0dGFjaExvb3BlcgorQUlucHV0UXVldWVfZGV0YWNoTG9vcGVyCitBSW5wdXRRdWV1ZV9maW5pc2hFdmVudAorQUlucHV0UXVldWVfZ2V0RXZlbnQKK0FJbnB1dFF1ZXVlX2hhc0V2ZW50cworQUlucHV0UXVldWVfcHJlRGlzcGF0Y2hFdmVudAorQUtleUV2ZW50X2dldEFjdGlvbgorQUtleUV2ZW50X2dldERvd25UaW1lCitBS2V5RXZlbnRfZ2V0RXZlbnRUaW1lCitBS2V5RXZlbnRfZ2V0RmxhZ3MKK0FLZXlFdmVudF9nZXRLZXlDb2RlCitBS2V5RXZlbnRfZ2V0TWV0YVN0YXRlCitBS2V5RXZlbnRfZ2V0UmVwZWF0Q291bnQKK0FLZXlFdmVudF9nZXRTY2FuQ29kZQorQUxvb3Blcl9hY3F1aXJlCitBTG9vcGVyX2FkZEZkCitBTG9vcGVyX2ZvclRocmVhZAorQUxvb3Blcl9wb2xsQWxsCitBTG9vcGVyX3BvbGxPbmNlCitBTG9vcGVyX3ByZXBhcmUKK0FMb29wZXJfcmVsZWFzZQorQUxvb3Blcl9yZW1vdmVGZAorQUxvb3Blcl93YWtlCitBTW90aW9uRXZlbnRfZ2V0QWN0aW9uCitBTW90aW9uRXZlbnRfZ2V0QXhpc1ZhbHVlCitBTW90aW9uRXZlbnRfZ2V0RG93blRpbWUKK0FNb3Rpb25FdmVudF9nZXRFZGdlRmxhZ3MKK0FNb3Rpb25FdmVudF9nZXRFdmVudFRpbWUKK0FNb3Rpb25FdmVudF9nZXRGbGFncworQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxBeGlzVmFsdWUKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsRXZlbnRUaW1lCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbE9yaWVudGF0aW9uCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFByZXNzdXJlCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFJhd1gKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsUmF3WQorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxTaXplCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFRvb2xNYWpvcgorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxUb29sTWlub3IKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsVG91Y2hNYWpvcgorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxUb3VjaE1pbm9yCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFgKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsWQorQU1vdGlvbkV2ZW50X2dldEhpc3RvcnlTaXplCitBTW90aW9uRXZlbnRfZ2V0TWV0YVN0YXRlCitBTW90aW9uRXZlbnRfZ2V0T3JpZW50YXRpb24KK0FNb3Rpb25FdmVudF9nZXRQb2ludGVyQ291bnQKK0FNb3Rpb25FdmVudF9nZXRQb2ludGVySWQKK0FNb3Rpb25FdmVudF9nZXRQcmVzc3VyZQorQU1vdGlvbkV2ZW50X2dldFJhd1gKK0FNb3Rpb25FdmVudF9nZXRSYXdZCitBTW90aW9uRXZlbnRfZ2V0U2l6ZQorQU1vdGlvbkV2ZW50X2dldFRvb2xNYWpvcgorQU1vdGlvbkV2ZW50X2dldFRvb2xNaW5vcgorQU1vdGlvbkV2ZW50X2dldFRvdWNoTWFqb3IKK0FNb3Rpb25FdmVudF9nZXRUb3VjaE1pbm9yCitBTW90aW9uRXZlbnRfZ2V0WAorQU1vdGlvbkV2ZW50X2dldFhPZmZzZXQKK0FNb3Rpb25FdmVudF9nZXRYUHJlY2lzaW9uCitBTW90aW9uRXZlbnRfZ2V0WQorQU1vdGlvbkV2ZW50X2dldFlPZmZzZXQKK0FNb3Rpb25FdmVudF9nZXRZUHJlY2lzaW9uCitBTmF0aXZlQWN0aXZpdHlfZmluaXNoCitBTmF0aXZlQWN0aXZpdHlfaGlkZVNvZnRJbnB1dAorQU5hdGl2ZUFjdGl2aXR5X3NldFdpbmRvd0ZsYWdzCitBTmF0aXZlQWN0aXZpdHlfc2V0V2luZG93Rm9ybWF0CitBTmF0aXZlQWN0aXZpdHlfc2hvd1NvZnRJbnB1dAorQU5hdGl2ZVdpbmRvd19hY3F1aXJlCitBTmF0aXZlV2luZG93X2Zyb21TdXJmYWNlCitBTmF0aXZlV2luZG93X2Zyb21TdXJmYWNlVGV4dHVyZQorQU5hdGl2ZVdpbmRvd19nZXRGb3JtYXQKK0FOYXRpdmVXaW5kb3dfZ2V0SGVpZ2h0CitBTmF0aXZlV2luZG93X2dldFdpZHRoCitBTmF0aXZlV2luZG93X2xvY2sKK0FOYXRpdmVXaW5kb3dfcmVsZWFzZQorQU5hdGl2ZVdpbmRvd19zZXRCdWZmZXJzR2VvbWV0cnkKK0FOYXRpdmVXaW5kb3dfdW5sb2NrQW5kUG9zdAorYW5kcm9pZF9nZXRUdHNFbmdpbmUKK0FPYmJJbmZvX2RlbGV0ZQorQU9iYkluZm9fZ2V0RmxhZ3MKK0FPYmJJbmZvX2dldFBhY2thZ2VOYW1lCitBT2JiSW5mb19nZXRWZXJzaW9uCitBT2JiU2Nhbm5lcl9nZXRPYmJJbmZvCitBU2Vuc29yRXZlbnRRdWV1ZV9kaXNhYmxlU2Vuc29yCitBU2Vuc29yRXZlbnRRdWV1ZV9lbmFibGVTZW5zb3IKK0FTZW5zb3JFdmVudFF1ZXVlX2dldEV2ZW50cworQVNlbnNvckV2ZW50UXVldWVfaGFzRXZlbnRzCitBU2Vuc29yRXZlbnRRdWV1ZV9zZXRFdmVudFJhdGUKK0FTZW5zb3JfZ2V0TWluRGVsYXkKK0FTZW5zb3JfZ2V0TmFtZQorQVNlbnNvcl9nZXRSZXNvbHV0aW9uCitBU2Vuc29yX2dldFR5cGUKK0FTZW5zb3JfZ2V0VmVuZG9yCitBU2Vuc29yTWFuYWdlcl9jcmVhdGVFdmVudFF1ZXVlCitBU2Vuc29yTWFuYWdlcl9kZXN0cm95RXZlbnRRdWV1ZQorQVNlbnNvck1hbmFnZXJfZ2V0RGVmYXVsdFNlbnNvcgorQVNlbnNvck1hbmFnZXJfZ2V0SW5zdGFuY2UKK0FTZW5zb3JNYW5hZ2VyX2dldFNlbnNvckxpc3QKK0FTdG9yYWdlTWFuYWdlcl9kZWxldGUKK0FTdG9yYWdlTWFuYWdlcl9nZXRNb3VudGVkT2JiUGF0aAorQVN0b3JhZ2VNYW5hZ2VyX2lzT2JiTW91bnRlZAorQVN0b3JhZ2VNYW5hZ2VyX21vdW50T2JiCitBU3RvcmFnZU1hbmFnZXJfbmV3CitBU3RvcmFnZU1hbmFnZXJfdW5tb3VudE9iYgorZ2V0VHRzRW5naW5lCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTMvYXJjaC1hcm0vc3ltYm9scy9saWJhbmRyb2lkLnNvLnZhcmlhYmxlcy50eHQgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTMvYXJjaC1hcm0vc3ltYm9scy9saWJhbmRyb2lkLnNvLnZhcmlhYmxlcy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGIxMzc4OQotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xMy9hcmNoLWFybS9zeW1ib2xzL2xpYmFuZHJvaWQuc28udmFyaWFibGVzLnR4dApAQCAtMCwwICsxIEBACisKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xMy9hcmNoLWFybS9zeW1ib2xzL2xpYm0uc28uZnVuY3Rpb25zLnR4dCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xMy9hcmNoLWFybS9zeW1ib2xzL2xpYm0uc28uZnVuY3Rpb25zLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZjY0OWZiCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTEzL2FyY2gtYXJtL3N5bWJvbHMvbGlibS5zby5mdW5jdGlvbnMudHh0CkBAIC0wLDAgKzEsMjMzIEBACitfX2FkZHNmMworX19hZWFiaV9jZmNtcGVxCitfX2FlYWJpX2NmY21wbGUKK19fYWVhYmlfY2ZyY21wbGUKK19fYWVhYmlfZDJsegorX19hZWFiaV9kMnVpegorX19hZWFiaV9kMnVsegorX19hZWFiaV9kY21wdW4KK19fYWVhYmlfZjJpegorX19hZWFiaV9mMmx6CitfX2FlYWJpX2YydWx6CitfX2FlYWJpX2ZhZGQKK19fYWVhYmlfZmNtcGVxCitfX2FlYWJpX2ZjbXBnZQorX19hZWFiaV9mY21wZ3QKK19fYWVhYmlfZmNtcGxlCitfX2FlYWJpX2ZjbXBsdAorX19hZWFiaV9mY21wdW4KK19fYWVhYmlfZmRpdgorX19hZWFiaV9mbXVsCitfX2FlYWJpX2Zyc3ViCitfX2FlYWJpX2ZzdWIKK19fYWVhYmlfaTJmCitfX2FlYWJpX2wyZgorX19hZWFiaV91aTJmCitfX2FlYWJpX3VsMmYKK19fY21wc2YyCitfX2RpdnNmMworX19lcXNmMgorX19leHBfX0QKK19fZml4ZGZkaQorX19maXhzZmRpCitfX2ZpeHNmc2kKK19fZml4dW5zZGZkaQorX19maXh1bnNkZnNpCitfX2ZpeHVuc3NmZGkKK19fZmxvYXRkaXNmCitfX2Zsb2F0c2lzZgorX19mbG9hdHVuZGlzZgorX19mbG9hdHVuc2lzZgorX19mcGNsYXNzaWZ5ZAorX19mcGNsYXNzaWZ5ZgorX19mcGNsYXNzaWZ5bAorX19nZXNmMgorX19ndHNmMgorX19pZWVlNzU0X3JlbV9waW8yCitfX2llZWU3NTRfcmVtX3BpbzJmCitfX2lzZmluaXRlCitfX2lzZmluaXRlZgorX19pc2Zpbml0ZWwKK19faXNpbmYKK19faXNpbmZmCitfX2lzaW5mbAorX19pc25hbmwKK19faXNub3JtYWwKK19faXNub3JtYWxmCitfX2lzbm9ybWFsbAorX19rZXJuZWxfY29zCitfX2tlcm5lbF9jb3NkZgorX19rZXJuZWxfcmVtX3BpbzIKK19fa2VybmVsX3NpbgorX19rZXJuZWxfc2luZGYKK19fa2VybmVsX3RhbgorX19rZXJuZWxfdGFuZGYKK19fbGVzZjIKK19fbG9nX19ECitfX2x0c2YyCitfX211bHNmMworX19uZXNmMgorX19zaWduYml0CitfX3NpZ25iaXRmCitfX3NpZ25iaXRsCitfX3N1YnNmMworX191bm9yZGRmMgorX191bm9yZHNmMgorYWNvcworYWNvc2YKK2Fjb3NoCithY29zaGYKK2FzaW4KK2FzaW5mCithc2luaAorYXNpbmhmCithdGFuCithdGFuMgorYXRhbjJmCithdGFuZgorYXRhbmgKK2F0YW5oZgorY2JydAorY2JydGYKK2NlaWwKK2NlaWxmCitjZWlsbAorY29weXNpZ24KK2NvcHlzaWduZgorY29weXNpZ25sCitjb3MKK2Nvc2YKK2Nvc2gKK2Nvc2hmCitkcmVtCitkcmVtZgorZXJmCitlcmZjCitlcmZjZgorZXJmZgorZXhwCitleHAyCitleHAyZgorZXhwZgorZXhwbTEKK2V4cG0xZgorZmFicworZmFic2YKK2ZhYnNsCitmZGltCitmZGltZgorZmRpbWwKK2Zpbml0ZQorZmluaXRlZgorZmxvb3IKK2Zsb29yZgorZmxvb3JsCitmbWEKK2ZtYWYKK2ZtYXgKK2ZtYXhmCitmbWF4bAorZm1pbgorZm1pbmYKK2ZtaW5sCitmbW9kCitmbW9kZgorZnJleHAKK2ZyZXhwZgorZ2FtbWEKK2dhbW1hX3IKK2dhbW1hZgorZ2FtbWFmX3IKK2h5cG90CitoeXBvdGYKK2lsb2diCitpbG9nYmYKK2lsb2dibAoraXNuYW4KK2lzbmFuZgorajAKK2owZgorajEKK2oxZgoram4KK2puZgorbGRleHAKK2xkZXhwZgorbGRleHBsCitsZ2FtbWEKK2xnYW1tYV9yCitsZ2FtbWFmCitsZ2FtbWFmX3IKK2xscmludAorbGxyaW50ZgorbGxyb3VuZAorbGxyb3VuZGYKK2xscm91bmRsCitsb2cKK2xvZzEwCitsb2cxMGYKK2xvZzFwCitsb2cxcGYKK2xvZ2IKK2xvZ2JmCitsb2dmCitscmludAorbHJpbnRmCitscm91bmQKK2xyb3VuZGYKK2xyb3VuZGwKK21vZGYKK21vZGZmCituYW4KK25hbmYKK25hbmwKK25lYXJieWludAorbmVhcmJ5aW50ZgorbmV4dGFmdGVyCituZXh0YWZ0ZXJmCituZXh0dG93YXJkZgorcG93Citwb3dmCityZW1haW5kZXIKK3JlbWFpbmRlcmYKK3JlbXF1bworcmVtcXVvZgorcmludAorcmludGYKK3JvdW5kCityb3VuZGYKK3JvdW5kbAorc2NhbGIKK3NjYWxiZgorc2NhbGJsbgorc2NhbGJsbmYKK3NjYWxibG5sCitzY2FsYm4KK3NjYWxibmYKK3NjYWxibmwKK3NpZ25pZmljYW5kCitzaWduaWZpY2FuZGYKK3Npbgorc2luY29zCitzaW5jb3NmCitzaW5jb3NsCitzaW5mCitzaW5oCitzaW5oZgorc3FydAorc3FydGYKK3RhbgordGFuZgordGFuaAordGFuaGYKK3RnYW1tYQordGdhbW1hZgordHJ1bmMKK3RydW5jZgordHJ1bmNsCit5MAoreTBmCit5MQoreTFmCit5bgoreW5mCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTMvYXJjaC1hcm0vc3ltYm9scy9saWJtLnNvLnZhcmlhYmxlcy50eHQgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTMvYXJjaC1hcm0vc3ltYm9scy9saWJtLnNvLnZhcmlhYmxlcy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTFiNjNmYwotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xMy9hcmNoLWFybS9zeW1ib2xzL2xpYm0uc28udmFyaWFibGVzLnR4dApAQCAtMCwwICsxLDIgQEAKK19fZmVfZGZsX2Vudgorc2lnbmdhbQpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTEzL2FyY2gtbWlwcy9zeW1ib2xzL2xpYmFuZHJvaWQuc28uZnVuY3Rpb25zLnR4dCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xMy9hcmNoLW1pcHMvc3ltYm9scy9saWJhbmRyb2lkLnNvLmZ1bmN0aW9ucy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGFjZThjMwotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xMy9hcmNoLW1pcHMvc3ltYm9scy9saWJhbmRyb2lkLnNvLmZ1bmN0aW9ucy50eHQKQEAgLTAsMCArMSwxNzAgQEAKK0FBc3NldF9jbG9zZQorQUFzc2V0RGlyX2Nsb3NlCitBQXNzZXREaXJfZ2V0TmV4dEZpbGVOYW1lCitBQXNzZXREaXJfcmV3aW5kCitBQXNzZXRfZ2V0QnVmZmVyCitBQXNzZXRfZ2V0TGVuZ3RoCitBQXNzZXRfZ2V0TGVuZ3RoNjQKK0FBc3NldF9nZXRSZW1haW5pbmdMZW5ndGgKK0FBc3NldF9nZXRSZW1haW5pbmdMZW5ndGg2NAorQUFzc2V0X2lzQWxsb2NhdGVkCitBQXNzZXRNYW5hZ2VyX2Zyb21KYXZhCitBQXNzZXRNYW5hZ2VyX29wZW4KK0FBc3NldE1hbmFnZXJfb3BlbkRpcgorQUFzc2V0X29wZW5GaWxlRGVzY3JpcHRvcgorQUFzc2V0X29wZW5GaWxlRGVzY3JpcHRvcjY0CitBQXNzZXRfcmVhZAorQUFzc2V0X3NlZWsKK0FBc3NldF9zZWVrNjQKK0FDb25maWd1cmF0aW9uX2NvcHkKK0FDb25maWd1cmF0aW9uX2RlbGV0ZQorQUNvbmZpZ3VyYXRpb25fZGlmZgorQUNvbmZpZ3VyYXRpb25fZnJvbUFzc2V0TWFuYWdlcgorQUNvbmZpZ3VyYXRpb25fZ2V0Q291bnRyeQorQUNvbmZpZ3VyYXRpb25fZ2V0RGVuc2l0eQorQUNvbmZpZ3VyYXRpb25fZ2V0S2V5Ym9hcmQKK0FDb25maWd1cmF0aW9uX2dldEtleXNIaWRkZW4KK0FDb25maWd1cmF0aW9uX2dldExhbmd1YWdlCitBQ29uZmlndXJhdGlvbl9nZXRNY2MKK0FDb25maWd1cmF0aW9uX2dldE1uYworQUNvbmZpZ3VyYXRpb25fZ2V0TmF2SGlkZGVuCitBQ29uZmlndXJhdGlvbl9nZXROYXZpZ2F0aW9uCitBQ29uZmlndXJhdGlvbl9nZXRPcmllbnRhdGlvbgorQUNvbmZpZ3VyYXRpb25fZ2V0U2NyZWVuSGVpZ2h0RHAKK0FDb25maWd1cmF0aW9uX2dldFNjcmVlbkxvbmcKK0FDb25maWd1cmF0aW9uX2dldFNjcmVlblNpemUKK0FDb25maWd1cmF0aW9uX2dldFNjcmVlbldpZHRoRHAKK0FDb25maWd1cmF0aW9uX2dldFNka1ZlcnNpb24KK0FDb25maWd1cmF0aW9uX2dldFNtYWxsZXN0U2NyZWVuV2lkdGhEcAorQUNvbmZpZ3VyYXRpb25fZ2V0VG91Y2hzY3JlZW4KK0FDb25maWd1cmF0aW9uX2dldFVpTW9kZU5pZ2h0CitBQ29uZmlndXJhdGlvbl9nZXRVaU1vZGVUeXBlCitBQ29uZmlndXJhdGlvbl9pc0JldHRlclRoYW4KK0FDb25maWd1cmF0aW9uX21hdGNoCitBQ29uZmlndXJhdGlvbl9uZXcKK0FDb25maWd1cmF0aW9uX3NldENvdW50cnkKK0FDb25maWd1cmF0aW9uX3NldERlbnNpdHkKK0FDb25maWd1cmF0aW9uX3NldEtleWJvYXJkCitBQ29uZmlndXJhdGlvbl9zZXRLZXlzSGlkZGVuCitBQ29uZmlndXJhdGlvbl9zZXRMYW5ndWFnZQorQUNvbmZpZ3VyYXRpb25fc2V0TWNjCitBQ29uZmlndXJhdGlvbl9zZXRNbmMKK0FDb25maWd1cmF0aW9uX3NldE5hdkhpZGRlbgorQUNvbmZpZ3VyYXRpb25fc2V0TmF2aWdhdGlvbgorQUNvbmZpZ3VyYXRpb25fc2V0T3JpZW50YXRpb24KK0FDb25maWd1cmF0aW9uX3NldFNjcmVlbkhlaWdodERwCitBQ29uZmlndXJhdGlvbl9zZXRTY3JlZW5Mb25nCitBQ29uZmlndXJhdGlvbl9zZXRTY3JlZW5TaXplCitBQ29uZmlndXJhdGlvbl9zZXRTY3JlZW5XaWR0aERwCitBQ29uZmlndXJhdGlvbl9zZXRTZGtWZXJzaW9uCitBQ29uZmlndXJhdGlvbl9zZXRTbWFsbGVzdFNjcmVlbldpZHRoRHAKK0FDb25maWd1cmF0aW9uX3NldFRvdWNoc2NyZWVuCitBQ29uZmlndXJhdGlvbl9zZXRVaU1vZGVOaWdodAorQUNvbmZpZ3VyYXRpb25fc2V0VWlNb2RlVHlwZQorQUlucHV0RXZlbnRfZ2V0RGV2aWNlSWQKK0FJbnB1dEV2ZW50X2dldFNvdXJjZQorQUlucHV0RXZlbnRfZ2V0VHlwZQorQUlucHV0UXVldWVfYXR0YWNoTG9vcGVyCitBSW5wdXRRdWV1ZV9kZXRhY2hMb29wZXIKK0FJbnB1dFF1ZXVlX2ZpbmlzaEV2ZW50CitBSW5wdXRRdWV1ZV9nZXRFdmVudAorQUlucHV0UXVldWVfaGFzRXZlbnRzCitBSW5wdXRRdWV1ZV9wcmVEaXNwYXRjaEV2ZW50CitBS2V5RXZlbnRfZ2V0QWN0aW9uCitBS2V5RXZlbnRfZ2V0RG93blRpbWUKK0FLZXlFdmVudF9nZXRFdmVudFRpbWUKK0FLZXlFdmVudF9nZXRGbGFncworQUtleUV2ZW50X2dldEtleUNvZGUKK0FLZXlFdmVudF9nZXRNZXRhU3RhdGUKK0FLZXlFdmVudF9nZXRSZXBlYXRDb3VudAorQUtleUV2ZW50X2dldFNjYW5Db2RlCitBTG9vcGVyX2FjcXVpcmUKK0FMb29wZXJfYWRkRmQKK0FMb29wZXJfZm9yVGhyZWFkCitBTG9vcGVyX3BvbGxBbGwKK0FMb29wZXJfcG9sbE9uY2UKK0FMb29wZXJfcHJlcGFyZQorQUxvb3Blcl9yZWxlYXNlCitBTG9vcGVyX3JlbW92ZUZkCitBTG9vcGVyX3dha2UKK0FNb3Rpb25FdmVudF9nZXRBY3Rpb24KK0FNb3Rpb25FdmVudF9nZXRBeGlzVmFsdWUKK0FNb3Rpb25FdmVudF9nZXREb3duVGltZQorQU1vdGlvbkV2ZW50X2dldEVkZ2VGbGFncworQU1vdGlvbkV2ZW50X2dldEV2ZW50VGltZQorQU1vdGlvbkV2ZW50X2dldEZsYWdzCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbEF4aXNWYWx1ZQorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxFdmVudFRpbWUKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsT3JpZW50YXRpb24KK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsUHJlc3N1cmUKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsUmF3WAorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxSYXdZCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFNpemUKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsVG9vbE1ham9yCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFRvb2xNaW5vcgorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxUb3VjaE1ham9yCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFRvdWNoTWlub3IKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsWAorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxZCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yeVNpemUKK0FNb3Rpb25FdmVudF9nZXRNZXRhU3RhdGUKK0FNb3Rpb25FdmVudF9nZXRPcmllbnRhdGlvbgorQU1vdGlvbkV2ZW50X2dldFBvaW50ZXJDb3VudAorQU1vdGlvbkV2ZW50X2dldFBvaW50ZXJJZAorQU1vdGlvbkV2ZW50X2dldFByZXNzdXJlCitBTW90aW9uRXZlbnRfZ2V0UmF3WAorQU1vdGlvbkV2ZW50X2dldFJhd1kKK0FNb3Rpb25FdmVudF9nZXRTaXplCitBTW90aW9uRXZlbnRfZ2V0VG9vbE1ham9yCitBTW90aW9uRXZlbnRfZ2V0VG9vbE1pbm9yCitBTW90aW9uRXZlbnRfZ2V0VG91Y2hNYWpvcgorQU1vdGlvbkV2ZW50X2dldFRvdWNoTWlub3IKK0FNb3Rpb25FdmVudF9nZXRYCitBTW90aW9uRXZlbnRfZ2V0WE9mZnNldAorQU1vdGlvbkV2ZW50X2dldFhQcmVjaXNpb24KK0FNb3Rpb25FdmVudF9nZXRZCitBTW90aW9uRXZlbnRfZ2V0WU9mZnNldAorQU1vdGlvbkV2ZW50X2dldFlQcmVjaXNpb24KK0FOYXRpdmVBY3Rpdml0eV9maW5pc2gKK0FOYXRpdmVBY3Rpdml0eV9oaWRlU29mdElucHV0CitBTmF0aXZlQWN0aXZpdHlfc2V0V2luZG93RmxhZ3MKK0FOYXRpdmVBY3Rpdml0eV9zZXRXaW5kb3dGb3JtYXQKK0FOYXRpdmVBY3Rpdml0eV9zaG93U29mdElucHV0CitBTmF0aXZlV2luZG93X2FjcXVpcmUKK0FOYXRpdmVXaW5kb3dfZnJvbVN1cmZhY2UKK0FOYXRpdmVXaW5kb3dfZnJvbVN1cmZhY2VUZXh0dXJlCitBTmF0aXZlV2luZG93X2dldEZvcm1hdAorQU5hdGl2ZVdpbmRvd19nZXRIZWlnaHQKK0FOYXRpdmVXaW5kb3dfZ2V0V2lkdGgKK0FOYXRpdmVXaW5kb3dfbG9jaworQU5hdGl2ZVdpbmRvd19yZWxlYXNlCitBTmF0aXZlV2luZG93X3NldEJ1ZmZlcnNHZW9tZXRyeQorQU5hdGl2ZVdpbmRvd191bmxvY2tBbmRQb3N0CithbmRyb2lkX2dldFR0c0VuZ2luZQorQU9iYkluZm9fZGVsZXRlCitBT2JiSW5mb19nZXRGbGFncworQU9iYkluZm9fZ2V0UGFja2FnZU5hbWUKK0FPYmJJbmZvX2dldFZlcnNpb24KK0FPYmJTY2FubmVyX2dldE9iYkluZm8KK0FTZW5zb3JFdmVudFF1ZXVlX2Rpc2FibGVTZW5zb3IKK0FTZW5zb3JFdmVudFF1ZXVlX2VuYWJsZVNlbnNvcgorQVNlbnNvckV2ZW50UXVldWVfZ2V0RXZlbnRzCitBU2Vuc29yRXZlbnRRdWV1ZV9oYXNFdmVudHMKK0FTZW5zb3JFdmVudFF1ZXVlX3NldEV2ZW50UmF0ZQorQVNlbnNvcl9nZXRNaW5EZWxheQorQVNlbnNvcl9nZXROYW1lCitBU2Vuc29yX2dldFJlc29sdXRpb24KK0FTZW5zb3JfZ2V0VHlwZQorQVNlbnNvcl9nZXRWZW5kb3IKK0FTZW5zb3JNYW5hZ2VyX2NyZWF0ZUV2ZW50UXVldWUKK0FTZW5zb3JNYW5hZ2VyX2Rlc3Ryb3lFdmVudFF1ZXVlCitBU2Vuc29yTWFuYWdlcl9nZXREZWZhdWx0U2Vuc29yCitBU2Vuc29yTWFuYWdlcl9nZXRJbnN0YW5jZQorQVNlbnNvck1hbmFnZXJfZ2V0U2Vuc29yTGlzdAorQVN0b3JhZ2VNYW5hZ2VyX2RlbGV0ZQorQVN0b3JhZ2VNYW5hZ2VyX2dldE1vdW50ZWRPYmJQYXRoCitBU3RvcmFnZU1hbmFnZXJfaXNPYmJNb3VudGVkCitBU3RvcmFnZU1hbmFnZXJfbW91bnRPYmIKK0FTdG9yYWdlTWFuYWdlcl9uZXcKK0FTdG9yYWdlTWFuYWdlcl91bm1vdW50T2JiCitnZXRUdHNFbmdpbmUKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xMy9hcmNoLW1pcHMvc3ltYm9scy9saWJhbmRyb2lkLnNvLnZhcmlhYmxlcy50eHQgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTMvYXJjaC1taXBzL3N5bWJvbHMvbGliYW5kcm9pZC5zby52YXJpYWJsZXMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiMTM3ODkKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTMvYXJjaC1taXBzL3N5bWJvbHMvbGliYW5kcm9pZC5zby52YXJpYWJsZXMudHh0CkBAIC0wLDAgKzEgQEAKKwpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTEzL2FyY2gtbWlwcy9zeW1ib2xzL2xpYm0uc28uZnVuY3Rpb25zLnR4dCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xMy9hcmNoLW1pcHMvc3ltYm9scy9saWJtLnNvLmZ1bmN0aW9ucy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjc2ZTUzMQotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xMy9hcmNoLW1pcHMvc3ltYm9scy9saWJtLnNvLmZ1bmN0aW9ucy50eHQKQEAgLTAsMCArMSwxODUgQEAKK19fZXhwX19ECitfX2ZwY2xhc3NpZnlkCitfX2ZwY2xhc3NpZnlmCitfX2ZwY2xhc3NpZnlsCitfX2llZWU3NTRfcmVtX3BpbzIKK19faWVlZTc1NF9yZW1fcGlvMmYKK19faXNmaW5pdGUKK19faXNmaW5pdGVmCitfX2lzZmluaXRlbAorX19pc2luZgorX19pc2luZmYKK19faXNpbmZsCitfX2lzbmFubAorX19pc25vcm1hbAorX19pc25vcm1hbGYKK19faXNub3JtYWxsCitfX2tlcm5lbF9jb3MKK19fa2VybmVsX2Nvc2RmCitfX2tlcm5lbF9yZW1fcGlvMgorX19rZXJuZWxfc2luCitfX2tlcm5lbF9zaW5kZgorX19rZXJuZWxfdGFuCitfX2tlcm5lbF90YW5kZgorX19sb2dfX0QKK19fc2lnbmJpdAorX19zaWduYml0ZgorX19zaWduYml0bAorYWNvcworYWNvc2YKK2Fjb3NoCithY29zaGYKK2FzaW4KK2FzaW5mCithc2luaAorYXNpbmhmCithdGFuCithdGFuMgorYXRhbjJmCithdGFuZgorYXRhbmgKK2F0YW5oZgorY2JydAorY2JydGYKK2NlaWwKK2NlaWxmCitjZWlsbAorY29weXNpZ24KK2NvcHlzaWduZgorY29weXNpZ25sCitjb3MKK2Nvc2YKK2Nvc2gKK2Nvc2hmCitkcmVtCitkcmVtZgorZXJmCitlcmZjCitlcmZjZgorZXJmZgorZXhwCitleHAyCitleHAyZgorZXhwZgorZXhwbTEKK2V4cG0xZgorZmFicworZmFic2YKK2ZhYnNsCitmZGltCitmZGltZgorZmRpbWwKK2Zpbml0ZQorZmluaXRlZgorZmxvb3IKK2Zsb29yZgorZmxvb3JsCitmbWEKK2ZtYWYKK2ZtYXgKK2ZtYXhmCitmbWF4bAorZm1pbgorZm1pbmYKK2ZtaW5sCitmbW9kCitmbW9kZgorZnJleHAKK2ZyZXhwZgorZ2FtbWEKK2dhbW1hX3IKK2dhbW1hZgorZ2FtbWFmX3IKK2h5cG90CitoeXBvdGYKK2lsb2diCitpbG9nYmYKK2lsb2dibAoraXNuYW4KK2lzbmFuZgorajAKK2owZgorajEKK2oxZgoram4KK2puZgorbGRleHAKK2xkZXhwZgorbGRleHBsCitsZ2FtbWEKK2xnYW1tYV9yCitsZ2FtbWFmCitsZ2FtbWFmX3IKK2xscmludAorbGxyaW50ZgorbGxyb3VuZAorbGxyb3VuZGYKK2xscm91bmRsCitsb2cKK2xvZzEwCitsb2cxMGYKK2xvZzFwCitsb2cxcGYKK2xvZ2IKK2xvZ2JmCitsb2dmCitscmludAorbHJpbnRmCitscm91bmQKK2xyb3VuZGYKK2xyb3VuZGwKK21vZGYKK21vZGZmCituYW4KK25hbmYKK25hbmwKK25lYXJieWludAorbmVhcmJ5aW50ZgorbmV4dGFmdGVyCituZXh0YWZ0ZXJmCituZXh0dG93YXJkZgorcG93Citwb3dmCityZW1haW5kZXIKK3JlbWFpbmRlcmYKK3JlbXF1bworcmVtcXVvZgorcmludAorcmludGYKK3JvdW5kCityb3VuZGYKK3JvdW5kbAorc2NhbGIKK3NjYWxiZgorc2NhbGJsbgorc2NhbGJsbmYKK3NjYWxibG5sCitzY2FsYm4KK3NjYWxibmYKK3NjYWxibmwKK3NpZ25pZmljYW5kCitzaWduaWZpY2FuZGYKK3Npbgorc2luY29zCitzaW5jb3NmCitzaW5jb3NsCitzaW5mCitzaW5oCitzaW5oZgorc3FydAorc3FydGYKK3RhbgordGFuZgordGFuaAordGFuaGYKK3RnYW1tYQordGdhbW1hZgordHJ1bmMKK3RydW5jZgordHJ1bmNsCit5MAoreTBmCit5MQoreTFmCit5bgoreW5mCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTMvYXJjaC1taXBzL3N5bWJvbHMvbGlibS5zby52YXJpYWJsZXMudHh0IGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTEzL2FyY2gtbWlwcy9zeW1ib2xzL2xpYm0uc28udmFyaWFibGVzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMWI2M2ZjCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTEzL2FyY2gtbWlwcy9zeW1ib2xzL2xpYm0uc28udmFyaWFibGVzLnR4dApAQCAtMCwwICsxLDIgQEAKK19fZmVfZGZsX2Vudgorc2lnbmdhbQpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTEzL2FyY2gteDg2L3N5bWJvbHMvbGliYW5kcm9pZC5zby5mdW5jdGlvbnMudHh0IGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTEzL2FyY2gteDg2L3N5bWJvbHMvbGliYW5kcm9pZC5zby5mdW5jdGlvbnMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhY2U4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTMvYXJjaC14ODYvc3ltYm9scy9saWJhbmRyb2lkLnNvLmZ1bmN0aW9ucy50eHQKQEAgLTAsMCArMSwxNzAgQEAKK0FBc3NldF9jbG9zZQorQUFzc2V0RGlyX2Nsb3NlCitBQXNzZXREaXJfZ2V0TmV4dEZpbGVOYW1lCitBQXNzZXREaXJfcmV3aW5kCitBQXNzZXRfZ2V0QnVmZmVyCitBQXNzZXRfZ2V0TGVuZ3RoCitBQXNzZXRfZ2V0TGVuZ3RoNjQKK0FBc3NldF9nZXRSZW1haW5pbmdMZW5ndGgKK0FBc3NldF9nZXRSZW1haW5pbmdMZW5ndGg2NAorQUFzc2V0X2lzQWxsb2NhdGVkCitBQXNzZXRNYW5hZ2VyX2Zyb21KYXZhCitBQXNzZXRNYW5hZ2VyX29wZW4KK0FBc3NldE1hbmFnZXJfb3BlbkRpcgorQUFzc2V0X29wZW5GaWxlRGVzY3JpcHRvcgorQUFzc2V0X29wZW5GaWxlRGVzY3JpcHRvcjY0CitBQXNzZXRfcmVhZAorQUFzc2V0X3NlZWsKK0FBc3NldF9zZWVrNjQKK0FDb25maWd1cmF0aW9uX2NvcHkKK0FDb25maWd1cmF0aW9uX2RlbGV0ZQorQUNvbmZpZ3VyYXRpb25fZGlmZgorQUNvbmZpZ3VyYXRpb25fZnJvbUFzc2V0TWFuYWdlcgorQUNvbmZpZ3VyYXRpb25fZ2V0Q291bnRyeQorQUNvbmZpZ3VyYXRpb25fZ2V0RGVuc2l0eQorQUNvbmZpZ3VyYXRpb25fZ2V0S2V5Ym9hcmQKK0FDb25maWd1cmF0aW9uX2dldEtleXNIaWRkZW4KK0FDb25maWd1cmF0aW9uX2dldExhbmd1YWdlCitBQ29uZmlndXJhdGlvbl9nZXRNY2MKK0FDb25maWd1cmF0aW9uX2dldE1uYworQUNvbmZpZ3VyYXRpb25fZ2V0TmF2SGlkZGVuCitBQ29uZmlndXJhdGlvbl9nZXROYXZpZ2F0aW9uCitBQ29uZmlndXJhdGlvbl9nZXRPcmllbnRhdGlvbgorQUNvbmZpZ3VyYXRpb25fZ2V0U2NyZWVuSGVpZ2h0RHAKK0FDb25maWd1cmF0aW9uX2dldFNjcmVlbkxvbmcKK0FDb25maWd1cmF0aW9uX2dldFNjcmVlblNpemUKK0FDb25maWd1cmF0aW9uX2dldFNjcmVlbldpZHRoRHAKK0FDb25maWd1cmF0aW9uX2dldFNka1ZlcnNpb24KK0FDb25maWd1cmF0aW9uX2dldFNtYWxsZXN0U2NyZWVuV2lkdGhEcAorQUNvbmZpZ3VyYXRpb25fZ2V0VG91Y2hzY3JlZW4KK0FDb25maWd1cmF0aW9uX2dldFVpTW9kZU5pZ2h0CitBQ29uZmlndXJhdGlvbl9nZXRVaU1vZGVUeXBlCitBQ29uZmlndXJhdGlvbl9pc0JldHRlclRoYW4KK0FDb25maWd1cmF0aW9uX21hdGNoCitBQ29uZmlndXJhdGlvbl9uZXcKK0FDb25maWd1cmF0aW9uX3NldENvdW50cnkKK0FDb25maWd1cmF0aW9uX3NldERlbnNpdHkKK0FDb25maWd1cmF0aW9uX3NldEtleWJvYXJkCitBQ29uZmlndXJhdGlvbl9zZXRLZXlzSGlkZGVuCitBQ29uZmlndXJhdGlvbl9zZXRMYW5ndWFnZQorQUNvbmZpZ3VyYXRpb25fc2V0TWNjCitBQ29uZmlndXJhdGlvbl9zZXRNbmMKK0FDb25maWd1cmF0aW9uX3NldE5hdkhpZGRlbgorQUNvbmZpZ3VyYXRpb25fc2V0TmF2aWdhdGlvbgorQUNvbmZpZ3VyYXRpb25fc2V0T3JpZW50YXRpb24KK0FDb25maWd1cmF0aW9uX3NldFNjcmVlbkhlaWdodERwCitBQ29uZmlndXJhdGlvbl9zZXRTY3JlZW5Mb25nCitBQ29uZmlndXJhdGlvbl9zZXRTY3JlZW5TaXplCitBQ29uZmlndXJhdGlvbl9zZXRTY3JlZW5XaWR0aERwCitBQ29uZmlndXJhdGlvbl9zZXRTZGtWZXJzaW9uCitBQ29uZmlndXJhdGlvbl9zZXRTbWFsbGVzdFNjcmVlbldpZHRoRHAKK0FDb25maWd1cmF0aW9uX3NldFRvdWNoc2NyZWVuCitBQ29uZmlndXJhdGlvbl9zZXRVaU1vZGVOaWdodAorQUNvbmZpZ3VyYXRpb25fc2V0VWlNb2RlVHlwZQorQUlucHV0RXZlbnRfZ2V0RGV2aWNlSWQKK0FJbnB1dEV2ZW50X2dldFNvdXJjZQorQUlucHV0RXZlbnRfZ2V0VHlwZQorQUlucHV0UXVldWVfYXR0YWNoTG9vcGVyCitBSW5wdXRRdWV1ZV9kZXRhY2hMb29wZXIKK0FJbnB1dFF1ZXVlX2ZpbmlzaEV2ZW50CitBSW5wdXRRdWV1ZV9nZXRFdmVudAorQUlucHV0UXVldWVfaGFzRXZlbnRzCitBSW5wdXRRdWV1ZV9wcmVEaXNwYXRjaEV2ZW50CitBS2V5RXZlbnRfZ2V0QWN0aW9uCitBS2V5RXZlbnRfZ2V0RG93blRpbWUKK0FLZXlFdmVudF9nZXRFdmVudFRpbWUKK0FLZXlFdmVudF9nZXRGbGFncworQUtleUV2ZW50X2dldEtleUNvZGUKK0FLZXlFdmVudF9nZXRNZXRhU3RhdGUKK0FLZXlFdmVudF9nZXRSZXBlYXRDb3VudAorQUtleUV2ZW50X2dldFNjYW5Db2RlCitBTG9vcGVyX2FjcXVpcmUKK0FMb29wZXJfYWRkRmQKK0FMb29wZXJfZm9yVGhyZWFkCitBTG9vcGVyX3BvbGxBbGwKK0FMb29wZXJfcG9sbE9uY2UKK0FMb29wZXJfcHJlcGFyZQorQUxvb3Blcl9yZWxlYXNlCitBTG9vcGVyX3JlbW92ZUZkCitBTG9vcGVyX3dha2UKK0FNb3Rpb25FdmVudF9nZXRBY3Rpb24KK0FNb3Rpb25FdmVudF9nZXRBeGlzVmFsdWUKK0FNb3Rpb25FdmVudF9nZXREb3duVGltZQorQU1vdGlvbkV2ZW50X2dldEVkZ2VGbGFncworQU1vdGlvbkV2ZW50X2dldEV2ZW50VGltZQorQU1vdGlvbkV2ZW50X2dldEZsYWdzCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbEF4aXNWYWx1ZQorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxFdmVudFRpbWUKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsT3JpZW50YXRpb24KK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsUHJlc3N1cmUKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsUmF3WAorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxSYXdZCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFNpemUKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsVG9vbE1ham9yCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFRvb2xNaW5vcgorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxUb3VjaE1ham9yCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFRvdWNoTWlub3IKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsWAorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxZCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yeVNpemUKK0FNb3Rpb25FdmVudF9nZXRNZXRhU3RhdGUKK0FNb3Rpb25FdmVudF9nZXRPcmllbnRhdGlvbgorQU1vdGlvbkV2ZW50X2dldFBvaW50ZXJDb3VudAorQU1vdGlvbkV2ZW50X2dldFBvaW50ZXJJZAorQU1vdGlvbkV2ZW50X2dldFByZXNzdXJlCitBTW90aW9uRXZlbnRfZ2V0UmF3WAorQU1vdGlvbkV2ZW50X2dldFJhd1kKK0FNb3Rpb25FdmVudF9nZXRTaXplCitBTW90aW9uRXZlbnRfZ2V0VG9vbE1ham9yCitBTW90aW9uRXZlbnRfZ2V0VG9vbE1pbm9yCitBTW90aW9uRXZlbnRfZ2V0VG91Y2hNYWpvcgorQU1vdGlvbkV2ZW50X2dldFRvdWNoTWlub3IKK0FNb3Rpb25FdmVudF9nZXRYCitBTW90aW9uRXZlbnRfZ2V0WE9mZnNldAorQU1vdGlvbkV2ZW50X2dldFhQcmVjaXNpb24KK0FNb3Rpb25FdmVudF9nZXRZCitBTW90aW9uRXZlbnRfZ2V0WU9mZnNldAorQU1vdGlvbkV2ZW50X2dldFlQcmVjaXNpb24KK0FOYXRpdmVBY3Rpdml0eV9maW5pc2gKK0FOYXRpdmVBY3Rpdml0eV9oaWRlU29mdElucHV0CitBTmF0aXZlQWN0aXZpdHlfc2V0V2luZG93RmxhZ3MKK0FOYXRpdmVBY3Rpdml0eV9zZXRXaW5kb3dGb3JtYXQKK0FOYXRpdmVBY3Rpdml0eV9zaG93U29mdElucHV0CitBTmF0aXZlV2luZG93X2FjcXVpcmUKK0FOYXRpdmVXaW5kb3dfZnJvbVN1cmZhY2UKK0FOYXRpdmVXaW5kb3dfZnJvbVN1cmZhY2VUZXh0dXJlCitBTmF0aXZlV2luZG93X2dldEZvcm1hdAorQU5hdGl2ZVdpbmRvd19nZXRIZWlnaHQKK0FOYXRpdmVXaW5kb3dfZ2V0V2lkdGgKK0FOYXRpdmVXaW5kb3dfbG9jaworQU5hdGl2ZVdpbmRvd19yZWxlYXNlCitBTmF0aXZlV2luZG93X3NldEJ1ZmZlcnNHZW9tZXRyeQorQU5hdGl2ZVdpbmRvd191bmxvY2tBbmRQb3N0CithbmRyb2lkX2dldFR0c0VuZ2luZQorQU9iYkluZm9fZGVsZXRlCitBT2JiSW5mb19nZXRGbGFncworQU9iYkluZm9fZ2V0UGFja2FnZU5hbWUKK0FPYmJJbmZvX2dldFZlcnNpb24KK0FPYmJTY2FubmVyX2dldE9iYkluZm8KK0FTZW5zb3JFdmVudFF1ZXVlX2Rpc2FibGVTZW5zb3IKK0FTZW5zb3JFdmVudFF1ZXVlX2VuYWJsZVNlbnNvcgorQVNlbnNvckV2ZW50UXVldWVfZ2V0RXZlbnRzCitBU2Vuc29yRXZlbnRRdWV1ZV9oYXNFdmVudHMKK0FTZW5zb3JFdmVudFF1ZXVlX3NldEV2ZW50UmF0ZQorQVNlbnNvcl9nZXRNaW5EZWxheQorQVNlbnNvcl9nZXROYW1lCitBU2Vuc29yX2dldFJlc29sdXRpb24KK0FTZW5zb3JfZ2V0VHlwZQorQVNlbnNvcl9nZXRWZW5kb3IKK0FTZW5zb3JNYW5hZ2VyX2NyZWF0ZUV2ZW50UXVldWUKK0FTZW5zb3JNYW5hZ2VyX2Rlc3Ryb3lFdmVudFF1ZXVlCitBU2Vuc29yTWFuYWdlcl9nZXREZWZhdWx0U2Vuc29yCitBU2Vuc29yTWFuYWdlcl9nZXRJbnN0YW5jZQorQVNlbnNvck1hbmFnZXJfZ2V0U2Vuc29yTGlzdAorQVN0b3JhZ2VNYW5hZ2VyX2RlbGV0ZQorQVN0b3JhZ2VNYW5hZ2VyX2dldE1vdW50ZWRPYmJQYXRoCitBU3RvcmFnZU1hbmFnZXJfaXNPYmJNb3VudGVkCitBU3RvcmFnZU1hbmFnZXJfbW91bnRPYmIKK0FTdG9yYWdlTWFuYWdlcl9uZXcKK0FTdG9yYWdlTWFuYWdlcl91bm1vdW50T2JiCitnZXRUdHNFbmdpbmUKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xMy9hcmNoLXg4Ni9zeW1ib2xzL2xpYmFuZHJvaWQuc28udmFyaWFibGVzLnR4dCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xMy9hcmNoLXg4Ni9zeW1ib2xzL2xpYmFuZHJvaWQuc28udmFyaWFibGVzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YjEzNzg5Ci0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTEzL2FyY2gteDg2L3N5bWJvbHMvbGliYW5kcm9pZC5zby52YXJpYWJsZXMudHh0CkBAIC0wLDAgKzEgQEAKKwpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTEzL2FyY2gteDg2L3N5bWJvbHMvbGlibS5zby5mdW5jdGlvbnMudHh0IGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTEzL2FyY2gteDg2L3N5bWJvbHMvbGlibS5zby5mdW5jdGlvbnMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2OTFlNDAKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTMvYXJjaC14ODYvc3ltYm9scy9saWJtLnNvLmZ1bmN0aW9ucy50eHQKQEAgLTAsMCArMSwxOTYgQEAKK19fZXhwX19ECitfX2ZwY2xhc3NpZnlkCitfX2ZwY2xhc3NpZnlmCitfX2ZwY2xhc3NpZnlsCitfX2llZWU3NTRfcmVtX3BpbzIKK19faWVlZTc1NF9yZW1fcGlvMmYKK19faXNmaW5pdGUKK19faXNmaW5pdGVmCitfX2lzZmluaXRlbAorX19pc2luZgorX19pc2luZmYKK19faXNpbmZsCitfX2lzbmFubAorX19pc25vcm1hbAorX19pc25vcm1hbGYKK19faXNub3JtYWxsCitfX2tlcm5lbF9jb3MKK19fa2VybmVsX2Nvc2RmCitfX2tlcm5lbF9yZW1fcGlvMgorX19rZXJuZWxfc2luCitfX2tlcm5lbF9zaW5kZgorX19rZXJuZWxfdGFuCitfX2tlcm5lbF90YW5kZgorX19sb2dfX0QKK19fc2lnbmJpdAorX19zaWduYml0ZgorX19zaWduYml0bAorX3NjYW5fbmFuCithY29zCithY29zZgorYWNvc2gKK2Fjb3NoZgorYXNpbgorYXNpbmYKK2FzaW5oCithc2luaGYKK2F0YW4KK2F0YW4yCithdGFuMmYKK2F0YW5mCithdGFuaAorYXRhbmhmCitjYnJ0CitjYnJ0ZgorY2VpbAorY2VpbGYKK2NlaWxsCitjb3B5c2lnbgorY29weXNpZ25mCitjb3B5c2lnbmwKK2NvcworY29zZgorY29zaAorY29zaGYKK2RyZW0KK2RyZW1mCitlcmYKK2VyZmMKK2VyZmNmCitlcmZmCitleHAKK2V4cDIKK2V4cDJmCitleHBmCitleHBtMQorZXhwbTFmCitmYWJzCitmYWJzZgorZmFic2wKK2ZkaW0KK2ZkaW1mCitmZGltbAorZmVjbGVhcmV4Y2VwdAorZmVkaXNhYmxlZXhjZXB0CitmZWVuYWJsZWV4Y2VwdAorZmVnZXRlbnYKK2ZlZ2V0ZXhjZXB0CitmZWdldGV4Y2VwdGZsYWcKK2ZlZ2V0cm91bmQKK2ZlaG9sZGV4Y2VwdAorZmVyYWlzZWV4Y2VwdAorZmVzZXRlbnYKK2Zlc2V0ZXhjZXB0ZmxhZworZmVzZXRyb3VuZAorZmV0ZXN0ZXhjZXB0CitmZXVwZGF0ZWVudgorZmluaXRlCitmaW5pdGVmCitmbG9vcgorZmxvb3JmCitmbG9vcmwKK2ZtYQorZm1hZgorZm1heAorZm1heGYKK2ZtYXhsCitmbWluCitmbWluZgorZm1pbmwKK2Ztb2QKK2Ztb2RmCitmcmV4cAorZnJleHBmCitnYW1tYQorZ2FtbWFfcgorZ2FtbWFmCitnYW1tYWZfcgoraHlwb3QKK2h5cG90ZgoraWxvZ2IKK2lsb2diZgoraWxvZ2JsCitpc25hbgoraXNuYW5mCitqMAorajBmCitqMQorajFmCitqbgoram5mCitsZGV4cGYKK2xkZXhwbAorbGdhbW1hCitsZ2FtbWFfcgorbGdhbW1hZgorbGdhbW1hZl9yCitsbHJpbnQKK2xscmludGYKK2xscm91bmQKK2xscm91bmRmCitsbHJvdW5kbAorbG9nCitsb2cxMAorbG9nMTBmCitsb2cxcAorbG9nMXBmCitsb2diCitsb2diZgorbG9nZgorbHJpbnQKK2xyaW50ZgorbHJvdW5kCitscm91bmRmCitscm91bmRsCittb2RmCittb2RmZgorbmFuCituYW5mCituYW5sCituZWFyYnlpbnQKK25lYXJieWludGYKK25leHRhZnRlcgorbmV4dGFmdGVyZgorbmV4dHRvd2FyZGYKK3BvdworcG93ZgorcmVtYWluZGVyCityZW1haW5kZXJmCityZW1xdW8KK3JlbXF1b2YKK3JpbnQKK3JpbnRmCityb3VuZAorcm91bmRmCityb3VuZGwKK3NjYWxiCitzY2FsYmYKK3NjYWxibgorc2NhbGJuZgorc2NhbGJubAorc2lnbmlmaWNhbmQKK3NpZ25pZmljYW5kZgorc2luCitzaW5jb3MKK3NpbmNvc2YKK3NpbmNvc2wKK3NpbmYKK3NpbmgKK3NpbmhmCitzcXJ0CitzcXJ0ZgordGFuCit0YW5mCit0YW5oCit0YW5oZgordGdhbW1hCit0Z2FtbWFmCit0cnVuYwordHJ1bmNmCit0cnVuY2wKK3kwCit5MGYKK3kxCit5MWYKK3luCit5bmYKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xMy9hcmNoLXg4Ni9zeW1ib2xzL2xpYm0uc28udmFyaWFibGVzLnR4dCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xMy9hcmNoLXg4Ni9zeW1ib2xzL2xpYm0uc28udmFyaWFibGVzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZTVjZGVlCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTEzL2FyY2gteDg2L3N5bWJvbHMvbGlibS5zby52YXJpYWJsZXMudHh0CkBAIC0wLDAgKzEsMyBAQAorX19mZV9kZmxfZW52CitfX2hhc19zc2UKK3NpZ25nYW0KZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xMy9pbmNsdWRlL2FuZHJvaWQvYXNzZXRfbWFuYWdlci5oIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTEzL2luY2x1ZGUvYW5kcm9pZC9hc3NldF9tYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmFjMzUwZQotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xMy9pbmNsdWRlL2FuZHJvaWQvYXNzZXRfbWFuYWdlci5oCkBAIC0wLDAgKzEsMTc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworCisjaWZuZGVmIEFORFJPSURfQVNTRVRfTUFOQUdFUl9ICisjZGVmaW5lIEFORFJPSURfQVNTRVRfTUFOQUdFUl9ICisKKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitzdHJ1Y3QgQUFzc2V0TWFuYWdlcjsKK3R5cGVkZWYgc3RydWN0IEFBc3NldE1hbmFnZXIgQUFzc2V0TWFuYWdlcjsKKworc3RydWN0IEFBc3NldERpcjsKK3R5cGVkZWYgc3RydWN0IEFBc3NldERpciBBQXNzZXREaXI7CisKK3N0cnVjdCBBQXNzZXQ7Cit0eXBlZGVmIHN0cnVjdCBBQXNzZXQgQUFzc2V0OworCisvKiBBdmFpbGFibGUgbW9kZXMgZm9yIG9wZW5pbmcgYXNzZXRzICovCitlbnVtIHsKKyAgICBBQVNTRVRfTU9ERV9VTktOT1dOICAgICAgPSAwLAorICAgIEFBU1NFVF9NT0RFX1JBTkRPTSAgICAgICA9IDEsCisgICAgQUFTU0VUX01PREVfU1RSRUFNSU5HICAgID0gMiwKKyAgICBBQVNTRVRfTU9ERV9CVUZGRVIgICAgICAgPSAzCit9OworCisKKy8qKgorICogT3BlbiB0aGUgbmFtZWQgZGlyZWN0b3J5IHdpdGhpbiB0aGUgYXNzZXQgaGllcmFyY2h5LiAgVGhlIGRpcmVjdG9yeSBjYW4gdGhlbgorICogYmUgaW5zcGVjdGVkIHdpdGggdGhlIEFBc3NldERpciBmdW5jdGlvbnMuICBUbyBvcGVuIHRoZSB0b3AtbGV2ZWwgZGlyZWN0b3J5LAorICogcGFzcyBpbiAiIiBhcyB0aGUgZGlyTmFtZS4KKyAqCisgKiBUaGUgb2JqZWN0IHJldHVybmVkIGhlcmUgc2hvdWxkIGJlIGZyZWVkIGJ5IGNhbGxpbmcgQUFzc2V0RGlyX2Nsb3NlKCkuCisgKi8KK0FBc3NldERpciogQUFzc2V0TWFuYWdlcl9vcGVuRGlyKEFBc3NldE1hbmFnZXIqIG1nciwgY29uc3QgY2hhciogZGlyTmFtZSk7CisKKy8qKgorICogT3BlbiBhbiBhc3NldC4KKyAqCisgKiBUaGUgb2JqZWN0IHJldHVybmVkIGhlcmUgc2hvdWxkIGJlIGZyZWVkIGJ5IGNhbGxpbmcgQUFzc2V0X2Nsb3NlKCkuCisgKi8KK0FBc3NldCogQUFzc2V0TWFuYWdlcl9vcGVuKEFBc3NldE1hbmFnZXIqIG1nciwgY29uc3QgY2hhciogZmlsZW5hbWUsIGludCBtb2RlKTsKKworLyoqCisgKiBJdGVyYXRlIG92ZXIgdGhlIGZpbGVzIGluIGFuIGFzc2V0IGRpcmVjdG9yeS4gIEEgTlVMTCBzdHJpbmcgaXMgcmV0dXJuZWQKKyAqIHdoZW4gYWxsIHRoZSBmaWxlIG5hbWVzIGhhdmUgYmVlbiByZXR1cm5lZC4KKyAqCisgKiBUaGUgcmV0dXJuZWQgZmlsZSBuYW1lIGlzIHN1aXRhYmxlIGZvciBwYXNzaW5nIHRvIEFBc3NldE1hbmFnZXJfb3BlbigpLgorICoKKyAqIFRoZSBzdHJpbmcgcmV0dXJuZWQgaGVyZSBpcyBvd25lZCBieSB0aGUgQXNzZXREaXIgaW1wbGVtZW50YXRpb24gYW5kIGlzIG5vdAorICogZ3VhcmFudGVlZCB0byByZW1haW4gdmFsaWQgaWYgYW55IG90aGVyIGNhbGxzIGFyZSBtYWRlIG9uIHRoaXMgQUFzc2V0RGlyCisgKiBpbnN0YW5jZS4KKyAqLworY29uc3QgY2hhciogQUFzc2V0RGlyX2dldE5leHRGaWxlTmFtZShBQXNzZXREaXIqIGFzc2V0RGlyKTsKKworLyoqCisgKiBSZXNldCB0aGUgaXRlcmF0aW9uIHN0YXRlIG9mIEFBc3NldERpcl9nZXROZXh0RmlsZU5hbWUoKSB0byB0aGUgYmVnaW5uaW5nLgorICovCit2b2lkIEFBc3NldERpcl9yZXdpbmQoQUFzc2V0RGlyKiBhc3NldERpcik7CisKKy8qKgorICogQ2xvc2UgYW4gb3BlbmVkIEFBc3NldERpciwgZnJlZWluZyBhbnkgcmVsYXRlZCByZXNvdXJjZXMuCisgKi8KK3ZvaWQgQUFzc2V0RGlyX2Nsb3NlKEFBc3NldERpciogYXNzZXREaXIpOworCisvKioKKyAqIEF0dGVtcHQgdG8gcmVhZCAnY291bnQnIGJ5dGVzIG9mIGRhdGEgZnJvbSB0aGUgY3VycmVudCBvZmZzZXQuCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHJlYWQsIHplcm8gb24gRU9GLCBvciA8IDAgb24gZXJyb3IuCisgKi8KK2ludCBBQXNzZXRfcmVhZChBQXNzZXQqIGFzc2V0LCB2b2lkKiBidWYsIHNpemVfdCBjb3VudCk7CisKKy8qKgorICogU2VlayB0byB0aGUgc3BlY2lmaWVkIG9mZnNldCB3aXRoaW4gdGhlIGFzc2V0IGRhdGEuICAnd2hlbmNlJyB1c2VzIHRoZQorICogc2FtZSBjb25zdGFudHMgYXMgbHNlZWsoKS9mc2VlaygpLgorICoKKyAqIFJldHVybnMgdGhlIG5ldyBwb3NpdGlvbiBvbiBzdWNjZXNzLCBvciAob2ZmX3QpIC0xIG9uIGVycm9yLgorICovCitvZmZfdCBBQXNzZXRfc2VlayhBQXNzZXQqIGFzc2V0LCBvZmZfdCBvZmZzZXQsIGludCB3aGVuY2UpOworCisvKioKKyAqIFNlZWsgdG8gdGhlIHNwZWNpZmllZCBvZmZzZXQgd2l0aGluIHRoZSBhc3NldCBkYXRhLiAgJ3doZW5jZScgdXNlcyB0aGUKKyAqIHNhbWUgY29uc3RhbnRzIGFzIGxzZWVrKCkvZnNlZWsoKS4KKyAqCisgKiBVc2VzIDY0LWJpdCBkYXRhIHR5cGUgZm9yIGxhcmdlIGZpbGVzIGFzIG9wcG9zZWQgdG8gdGhlIDMyLWJpdCB0eXBlIHVzZWQKKyAqIGJ5IEFBc3NldF9zZWVrLgorICoKKyAqIFJldHVybnMgdGhlIG5ldyBwb3NpdGlvbiBvbiBzdWNjZXNzLCBvciAob2ZmNjRfdCkgLTEgb24gZXJyb3IuCisgKi8KK29mZjY0X3QgQUFzc2V0X3NlZWs2NChBQXNzZXQqIGFzc2V0LCBvZmY2NF90IG9mZnNldCwgaW50IHdoZW5jZSk7CisKKy8qKgorICogQ2xvc2UgdGhlIGFzc2V0LCBmcmVlaW5nIGFsbCBhc3NvY2lhdGVkIHJlc291cmNlcy4KKyAqLwordm9pZCBBQXNzZXRfY2xvc2UoQUFzc2V0KiBhc3NldCk7CisKKy8qKgorICogR2V0IGEgcG9pbnRlciB0byBhIGJ1ZmZlciBob2xkaW5nIHRoZSBlbnRpcmUgY29udGVudHMgb2YgdGhlIGFzc3NldC4KKyAqCisgKiBSZXR1cm5zIE5VTEwgb24gZmFpbHVyZS4KKyAqLworY29uc3Qgdm9pZCogQUFzc2V0X2dldEJ1ZmZlcihBQXNzZXQqIGFzc2V0KTsKKworLyoqCisgKiBSZXBvcnQgdGhlIHRvdGFsIHNpemUgb2YgdGhlIGFzc2V0IGRhdGEuCisgKi8KK29mZl90IEFBc3NldF9nZXRMZW5ndGgoQUFzc2V0KiBhc3NldCk7CisKKy8qKgorICogUmVwb3J0IHRoZSB0b3RhbCBzaXplIG9mIHRoZSBhc3NldCBkYXRhLiBSZXBvcnRzIHRoZSBzaXplIHVzaW5nIGEgNjQtYml0CisgKiBudW1iZXIgaW5zdGVkIG9mIDMyLWJpdCBhcyBBQXNzZXRfZ2V0TGVuZ3RoLgorICovCitvZmY2NF90IEFBc3NldF9nZXRMZW5ndGg2NChBQXNzZXQqIGFzc2V0KTsKKworLyoqCisgKiBSZXBvcnQgdGhlIHRvdGFsIGFtb3VudCBvZiBhc3NldCBkYXRhIHRoYXQgY2FuIGJlIHJlYWQgZnJvbSB0aGUgY3VycmVudCBwb3NpdGlvbi4KKyAqLworb2ZmX3QgQUFzc2V0X2dldFJlbWFpbmluZ0xlbmd0aChBQXNzZXQqIGFzc2V0KTsKKworLyoqCisgKiBSZXBvcnQgdGhlIHRvdGFsIGFtb3VudCBvZiBhc3NldCBkYXRhIHRoYXQgY2FuIGJlIHJlYWQgZnJvbSB0aGUgY3VycmVudCBwb3NpdGlvbi4KKyAqCisgKiBVc2VzIGEgNjQtYml0IG51bWJlciBpbnN0ZWFkIG9mIGEgMzItYml0IG51bWJlciBhcyBBQXNzZXRfZ2V0UmVtYWluaW5nTGVuZ3RoIGRvZXMuCisgKi8KK29mZjY0X3QgQUFzc2V0X2dldFJlbWFpbmluZ0xlbmd0aDY0KEFBc3NldCogYXNzZXQpOworCisvKioKKyAqIE9wZW4gYSBuZXcgZmlsZSBkZXNjcmlwdG9yIHRoYXQgY2FuIGJlIHVzZWQgdG8gcmVhZCB0aGUgYXNzZXQgZGF0YS4gSWYgdGhlCisgKiBzdGFydCBvciBsZW5ndGggY2Fubm90IGJlIHJlcHJlc2VudGVkIGJ5IGEgMzItYml0IG51bWJlciwgaXQgd2lsbCBiZQorICogdHJ1bmNhdGVkLiBJZiB0aGUgZmlsZSBpcyBsYXJnZSwgdXNlIEFBc3NldF9vcGVuRmlsZURlc2NyaXB0b3I2NCBpbnN0ZWFkLgorICoKKyAqIFJldHVybnMgPCAwIGlmIGRpcmVjdCBmZCBhY2Nlc3MgaXMgbm90IHBvc3NpYmxlIChmb3IgZXhhbXBsZSwgaWYgdGhlIGFzc2V0IGlzCisgKiBjb21wcmVzc2VkKS4KKyAqLworaW50IEFBc3NldF9vcGVuRmlsZURlc2NyaXB0b3IoQUFzc2V0KiBhc3NldCwgb2ZmX3QqIG91dFN0YXJ0LCBvZmZfdCogb3V0TGVuZ3RoKTsKKworLyoqCisgKiBPcGVuIGEgbmV3IGZpbGUgZGVzY3JpcHRvciB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlYWQgdGhlIGFzc2V0IGRhdGEuCisgKgorICogVXNlcyBhIDY0LWJpdCBudW1iZXIgZm9yIHRoZSBvZmZzZXQgYW5kIGxlbmd0aCBpbnN0ZWFkIG9mIDMyLWJpdCBpbnN0ZWFkIG9mCisgKiBhcyBBQXNzZXRfb3BlbkZpbGVEZXNjcmlwdG9yIGRvZXMuCisgKgorICogUmV0dXJucyA8IDAgaWYgZGlyZWN0IGZkIGFjY2VzcyBpcyBub3QgcG9zc2libGUgKGZvciBleGFtcGxlLCBpZiB0aGUgYXNzZXQgaXMKKyAqIGNvbXByZXNzZWQpLgorICovCitpbnQgQUFzc2V0X29wZW5GaWxlRGVzY3JpcHRvcjY0KEFBc3NldCogYXNzZXQsIG9mZjY0X3QqIG91dFN0YXJ0LCBvZmY2NF90KiBvdXRMZW5ndGgpOworCisvKioKKyAqIFJldHVybnMgd2hldGhlciB0aGlzIGFzc2V0J3MgaW50ZXJuYWwgYnVmZmVyIGlzIGFsbG9jYXRlZCBpbiBvcmRpbmFyeSBSQU0gKGkuZS4gbm90CisgKiBtbWFwcGVkKS4KKyAqLworaW50IEFBc3NldF9pc0FsbG9jYXRlZChBQXNzZXQqIGFzc2V0KTsKKworCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfTsKKyNlbmRpZgorCisjZW5kaWYgICAgICAvLyBBTkRST0lEX0FTU0VUX01BTkFHRVJfSApkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTEzL2luY2x1ZGUvYW5kcm9pZC9jb25maWd1cmF0aW9uLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTMvaW5jbHVkZS9hbmRyb2lkL2NvbmZpZ3VyYXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNDQ0YzRiCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTEzL2luY2x1ZGUvYW5kcm9pZC9jb25maWd1cmF0aW9uLmgKQEAgLTAsMCArMSwzNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfQ09ORklHVVJBVElPTl9ICisjZGVmaW5lIEFORFJPSURfQ09ORklHVVJBVElPTl9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2Fzc2V0X21hbmFnZXIuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitzdHJ1Y3QgQUNvbmZpZ3VyYXRpb247Cit0eXBlZGVmIHN0cnVjdCBBQ29uZmlndXJhdGlvbiBBQ29uZmlndXJhdGlvbjsKKworZW51bSB7CisgICAgQUNPTkZJR1VSQVRJT05fT1JJRU5UQVRJT05fQU5ZICA9IDB4MDAwMCwKKyAgICBBQ09ORklHVVJBVElPTl9PUklFTlRBVElPTl9QT1JUID0gMHgwMDAxLAorICAgIEFDT05GSUdVUkFUSU9OX09SSUVOVEFUSU9OX0xBTkQgPSAweDAwMDIsCisgICAgQUNPTkZJR1VSQVRJT05fT1JJRU5UQVRJT05fU1FVQVJFID0gMHgwMDAzLAorCisgICAgQUNPTkZJR1VSQVRJT05fVE9VQ0hTQ1JFRU5fQU5ZICA9IDB4MDAwMCwKKyAgICBBQ09ORklHVVJBVElPTl9UT1VDSFNDUkVFTl9OT1RPVUNIICA9IDB4MDAwMSwKKyAgICBBQ09ORklHVVJBVElPTl9UT1VDSFNDUkVFTl9TVFlMVVMgID0gMHgwMDAyLAorICAgIEFDT05GSUdVUkFUSU9OX1RPVUNIU0NSRUVOX0ZJTkdFUiAgPSAweDAwMDMsCisKKyAgICBBQ09ORklHVVJBVElPTl9ERU5TSVRZX0RFRkFVTFQgPSAwLAorICAgIEFDT05GSUdVUkFUSU9OX0RFTlNJVFlfTE9XID0gMTIwLAorICAgIEFDT05GSUdVUkFUSU9OX0RFTlNJVFlfTUVESVVNID0gMTYwLAorICAgIEFDT05GSUdVUkFUSU9OX0RFTlNJVFlfVFYgPSAyMTMsCisgICAgQUNPTkZJR1VSQVRJT05fREVOU0lUWV9ISUdIID0gMjQwLAorICAgIEFDT05GSUdVUkFUSU9OX0RFTlNJVFlfTk9ORSA9IDB4ZmZmZiwKKworICAgIEFDT05GSUdVUkFUSU9OX0tFWUJPQVJEX0FOWSAgPSAweDAwMDAsCisgICAgQUNPTkZJR1VSQVRJT05fS0VZQk9BUkRfTk9LRVlTICA9IDB4MDAwMSwKKyAgICBBQ09ORklHVVJBVElPTl9LRVlCT0FSRF9RV0VSVFkgID0gMHgwMDAyLAorICAgIEFDT05GSUdVUkFUSU9OX0tFWUJPQVJEXzEyS0VZICA9IDB4MDAwMywKKworICAgIEFDT05GSUdVUkFUSU9OX05BVklHQVRJT05fQU5ZICA9IDB4MDAwMCwKKyAgICBBQ09ORklHVVJBVElPTl9OQVZJR0FUSU9OX05PTkFWICA9IDB4MDAwMSwKKyAgICBBQ09ORklHVVJBVElPTl9OQVZJR0FUSU9OX0RQQUQgID0gMHgwMDAyLAorICAgIEFDT05GSUdVUkFUSU9OX05BVklHQVRJT05fVFJBQ0tCQUxMICA9IDB4MDAwMywKKyAgICBBQ09ORklHVVJBVElPTl9OQVZJR0FUSU9OX1dIRUVMICA9IDB4MDAwNCwKKworICAgIEFDT05GSUdVUkFUSU9OX0tFWVNISURERU5fQU5ZID0gMHgwMDAwLAorICAgIEFDT05GSUdVUkFUSU9OX0tFWVNISURERU5fTk8gPSAweDAwMDEsCisgICAgQUNPTkZJR1VSQVRJT05fS0VZU0hJRERFTl9ZRVMgPSAweDAwMDIsCisgICAgQUNPTkZJR1VSQVRJT05fS0VZU0hJRERFTl9TT0ZUID0gMHgwMDAzLAorCisgICAgQUNPTkZJR1VSQVRJT05fTkFWSElEREVOX0FOWSA9IDB4MDAwMCwKKyAgICBBQ09ORklHVVJBVElPTl9OQVZISURERU5fTk8gPSAweDAwMDEsCisgICAgQUNPTkZJR1VSQVRJT05fTkFWSElEREVOX1lFUyA9IDB4MDAwMiwKKworICAgIEFDT05GSUdVUkFUSU9OX1NDUkVFTlNJWkVfQU5ZICA9IDB4MDAsCisgICAgQUNPTkZJR1VSQVRJT05fU0NSRUVOU0laRV9TTUFMTCA9IDB4MDEsCisgICAgQUNPTkZJR1VSQVRJT05fU0NSRUVOU0laRV9OT1JNQUwgPSAweDAyLAorICAgIEFDT05GSUdVUkFUSU9OX1NDUkVFTlNJWkVfTEFSR0UgPSAweDAzLAorICAgIEFDT05GSUdVUkFUSU9OX1NDUkVFTlNJWkVfWExBUkdFID0gMHgwNCwKKworICAgIEFDT05GSUdVUkFUSU9OX1NDUkVFTkxPTkdfQU5ZID0gMHgwMCwKKyAgICBBQ09ORklHVVJBVElPTl9TQ1JFRU5MT05HX05PID0gMHgxLAorICAgIEFDT05GSUdVUkFUSU9OX1NDUkVFTkxPTkdfWUVTID0gMHgyLAorCisgICAgQUNPTkZJR1VSQVRJT05fVUlfTU9ERV9UWVBFX0FOWSA9IDB4MDAsCisgICAgQUNPTkZJR1VSQVRJT05fVUlfTU9ERV9UWVBFX05PUk1BTCA9IDB4MDEsCisgICAgQUNPTkZJR1VSQVRJT05fVUlfTU9ERV9UWVBFX0RFU0sgPSAweDAyLAorICAgIEFDT05GSUdVUkFUSU9OX1VJX01PREVfVFlQRV9DQVIgPSAweDAzLAorICAgIEFDT05GSUdVUkFUSU9OX1VJX01PREVfVFlQRV9URUxFVklTSU9OID0gMHgwNCwKKworICAgIEFDT05GSUdVUkFUSU9OX1VJX01PREVfTklHSFRfQU5ZID0gMHgwMCwKKyAgICBBQ09ORklHVVJBVElPTl9VSV9NT0RFX05JR0hUX05PID0gMHgxLAorICAgIEFDT05GSUdVUkFUSU9OX1VJX01PREVfTklHSFRfWUVTID0gMHgyLAorCisgICAgQUNPTkZJR1VSQVRJT05fU0NSRUVOX1dJRFRIX0RQX0FOWSA9IDB4MDAwMCwKKworICAgIEFDT05GSUdVUkFUSU9OX1NDUkVFTl9IRUlHSFRfRFBfQU5ZID0gMHgwMDAwLAorCisgICAgQUNPTkZJR1VSQVRJT05fU01BTExFU1RfU0NSRUVOX1dJRFRIX0RQX0FOWSA9IDB4MDAwMCwKKworICAgIEFDT05GSUdVUkFUSU9OX01DQyA9IDB4MDAwMSwKKyAgICBBQ09ORklHVVJBVElPTl9NTkMgPSAweDAwMDIsCisgICAgQUNPTkZJR1VSQVRJT05fTE9DQUxFID0gMHgwMDA0LAorICAgIEFDT05GSUdVUkFUSU9OX1RPVUNIU0NSRUVOID0gMHgwMDA4LAorICAgIEFDT05GSUdVUkFUSU9OX0tFWUJPQVJEID0gMHgwMDEwLAorICAgIEFDT05GSUdVUkFUSU9OX0tFWUJPQVJEX0hJRERFTiA9IDB4MDAyMCwKKyAgICBBQ09ORklHVVJBVElPTl9OQVZJR0FUSU9OID0gMHgwMDQwLAorICAgIEFDT05GSUdVUkFUSU9OX09SSUVOVEFUSU9OID0gMHgwMDgwLAorICAgIEFDT05GSUdVUkFUSU9OX0RFTlNJVFkgPSAweDAxMDAsCisgICAgQUNPTkZJR1VSQVRJT05fU0NSRUVOX1NJWkUgPSAweDAyMDAsCisgICAgQUNPTkZJR1VSQVRJT05fVkVSU0lPTiA9IDB4MDQwMCwKKyAgICBBQ09ORklHVVJBVElPTl9TQ1JFRU5fTEFZT1VUID0gMHgwODAwLAorICAgIEFDT05GSUdVUkFUSU9OX1VJX01PREUgPSAweDEwMDAsCisgICAgQUNPTkZJR1VSQVRJT05fU01BTExFU1RfU0NSRUVOX1NJWkUgPSAweDIwMDAsCit9OworCisvKioKKyAqIENyZWF0ZSBhIG5ldyBBQ29uZmlndXJhdGlvbiwgaW5pdGlhbGl6ZWQgd2l0aCBubyB2YWx1ZXMgc2V0LgorICovCitBQ29uZmlndXJhdGlvbiogQUNvbmZpZ3VyYXRpb25fbmV3KCk7CisKKy8qKgorICogRnJlZSBhbiBBQ29uZmlndXJhdGlvbiB0aGF0IHdhcyBwcmV2aW91c2x5IGNyZWF0ZWQgd2l0aAorICogQUNvbmZpZ3VyYXRpb25fbmV3KCkuCisgKi8KK3ZvaWQgQUNvbmZpZ3VyYXRpb25fZGVsZXRlKEFDb25maWd1cmF0aW9uKiBjb25maWcpOworCisvKioKKyAqIENyZWF0ZSBhbmQgcmV0dXJuIGEgbmV3IEFDb25maWd1cmF0aW9uIGJhc2VkIG9uIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24gaW4KKyAqIHVzZSBpbiB0aGUgZ2l2ZW4gQXNzZXRNYW5hZ2VyLgorICovCit2b2lkIEFDb25maWd1cmF0aW9uX2Zyb21Bc3NldE1hbmFnZXIoQUNvbmZpZ3VyYXRpb24qIG91dCwgQUFzc2V0TWFuYWdlciogYW0pOworCisvKioKKyAqIENvcHkgdGhlIGNvbnRlbnRzIG9mICdzcmMnIHRvICdkZXN0Jy4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9jb3B5KEFDb25maWd1cmF0aW9uKiBkZXN0LCBBQ29uZmlndXJhdGlvbiogc3JjKTsKKworLyoqCisgKiBSZXR1cm4gdGhlIGN1cnJlbnQgTUNDIHNldCBpbiB0aGUgY29uZmlndXJhdGlvbi4gIDAgaWYgbm90IHNldC4KKyAqLworaW50MzJfdCBBQ29uZmlndXJhdGlvbl9nZXRNY2MoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZyk7CisKKy8qKgorICogU2V0IHRoZSBjdXJyZW50IE1DQyBpbiB0aGUgY29uZmlndXJhdGlvbi4gIDAgdG8gY2xlYXIuCisgKi8KK3ZvaWQgQUNvbmZpZ3VyYXRpb25fc2V0TWNjKEFDb25maWd1cmF0aW9uKiBjb25maWcsIGludDMyX3QgbWNjKTsKKworLyoqCisgKiBSZXR1cm4gdGhlIGN1cnJlbnQgTU5DIHNldCBpbiB0aGUgY29uZmlndXJhdGlvbi4gIDAgaWYgbm90IHNldC4KKyAqLworaW50MzJfdCBBQ29uZmlndXJhdGlvbl9nZXRNbmMoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZyk7CisKKy8qKgorICogU2V0IHRoZSBjdXJyZW50IE1OQyBpbiB0aGUgY29uZmlndXJhdGlvbi4gIDAgdG8gY2xlYXIuCisgKi8KK3ZvaWQgQUNvbmZpZ3VyYXRpb25fc2V0TW5jKEFDb25maWd1cmF0aW9uKiBjb25maWcsIGludDMyX3QgbW5jKTsKKworLyoqCisgKiBSZXR1cm4gdGhlIGN1cnJlbnQgbGFuZ3VhZ2UgY29kZSBzZXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uICBUaGUgb3V0cHV0IHdpbGwKKyAqIGJlIGZpbGxlZCB3aXRoIGFuIGFycmF5IG9mIHR3byBjaGFyYWN0ZXJzLiAgVGhleSBhcmUgbm90IDAtdGVybWluYXRlZC4gIElmCisgKiBhIGxhbmd1YWdlIGlzIG5vdCBzZXQsIHRoZXkgd2lsbCBiZSAwLgorICovCit2b2lkIEFDb25maWd1cmF0aW9uX2dldExhbmd1YWdlKEFDb25maWd1cmF0aW9uKiBjb25maWcsIGNoYXIqIG91dExhbmd1YWdlKTsKKworLyoqCisgKiBTZXQgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UgY29kZSBpbiB0aGUgY29uZmlndXJhdGlvbiwgZnJvbSB0aGUgZmlyc3QgdHdvCisgKiBjaGFyYWN0ZXJzIGluIHRoZSBzdHJpbmcuCisgKi8KK3ZvaWQgQUNvbmZpZ3VyYXRpb25fc2V0TGFuZ3VhZ2UoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZywgY29uc3QgY2hhciogbGFuZ3VhZ2UpOworCisvKioKKyAqIFJldHVybiB0aGUgY3VycmVudCBjb3VudHJ5IGNvZGUgc2V0IGluIHRoZSBjb25maWd1cmF0aW9uLiAgVGhlIG91dHB1dCB3aWxsCisgKiBiZSBmaWxsZWQgd2l0aCBhbiBhcnJheSBvZiB0d28gY2hhcmFjdGVycy4gIFRoZXkgYXJlIG5vdCAwLXRlcm1pbmF0ZWQuICBJZgorICogYSBjb3VudHJ5IGlzIG5vdCBzZXQsIHRoZXkgd2lsbCBiZSAwLgorICovCit2b2lkIEFDb25maWd1cmF0aW9uX2dldENvdW50cnkoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZywgY2hhciogb3V0Q291bnRyeSk7CisKKy8qKgorICogU2V0IHRoZSBjdXJyZW50IGNvdW50cnkgY29kZSBpbiB0aGUgY29uZmlndXJhdGlvbiwgZnJvbSB0aGUgZmlyc3QgdHdvCisgKiBjaGFyYWN0ZXJzIGluIHRoZSBzdHJpbmcuCisgKi8KK3ZvaWQgQUNvbmZpZ3VyYXRpb25fc2V0Q291bnRyeShBQ29uZmlndXJhdGlvbiogY29uZmlnLCBjb25zdCBjaGFyKiBjb3VudHJ5KTsKKworLyoqCisgKiBSZXR1cm4gdGhlIGN1cnJlbnQgQUNPTkZJR1VSQVRJT05fT1JJRU5UQVRJT05fKiBzZXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK2ludDMyX3QgQUNvbmZpZ3VyYXRpb25fZ2V0T3JpZW50YXRpb24oQUNvbmZpZ3VyYXRpb24qIGNvbmZpZyk7CisKKy8qKgorICogU2V0IHRoZSBjdXJyZW50IG9yaWVudGF0aW9uIGluIHRoZSBjb25maWd1cmF0aW9uLgorICovCit2b2lkIEFDb25maWd1cmF0aW9uX3NldE9yaWVudGF0aW9uKEFDb25maWd1cmF0aW9uKiBjb25maWcsIGludDMyX3Qgb3JpZW50YXRpb24pOworCisvKioKKyAqIFJldHVybiB0aGUgY3VycmVudCBBQ09ORklHVVJBVElPTl9UT1VDSFNDUkVFTl8qIHNldCBpbiB0aGUgY29uZmlndXJhdGlvbi4KKyAqLworaW50MzJfdCBBQ29uZmlndXJhdGlvbl9nZXRUb3VjaHNjcmVlbihBQ29uZmlndXJhdGlvbiogY29uZmlnKTsKKworLyoqCisgKiBTZXQgdGhlIGN1cnJlbnQgdG91Y2hzY3JlZW4gaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK3ZvaWQgQUNvbmZpZ3VyYXRpb25fc2V0VG91Y2hzY3JlZW4oQUNvbmZpZ3VyYXRpb24qIGNvbmZpZywgaW50MzJfdCB0b3VjaHNjcmVlbik7CisKKy8qKgorICogUmV0dXJuIHRoZSBjdXJyZW50IEFDT05GSUdVUkFUSU9OX0RFTlNJVFlfKiBzZXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK2ludDMyX3QgQUNvbmZpZ3VyYXRpb25fZ2V0RGVuc2l0eShBQ29uZmlndXJhdGlvbiogY29uZmlnKTsKKworLyoqCisgKiBTZXQgdGhlIGN1cnJlbnQgZGVuc2l0eSBpbiB0aGUgY29uZmlndXJhdGlvbi4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9zZXREZW5zaXR5KEFDb25maWd1cmF0aW9uKiBjb25maWcsIGludDMyX3QgZGVuc2l0eSk7CisKKy8qKgorICogUmV0dXJuIHRoZSBjdXJyZW50IEFDT05GSUdVUkFUSU9OX0tFWUJPQVJEXyogc2V0IGluIHRoZSBjb25maWd1cmF0aW9uLgorICovCitpbnQzMl90IEFDb25maWd1cmF0aW9uX2dldEtleWJvYXJkKEFDb25maWd1cmF0aW9uKiBjb25maWcpOworCisvKioKKyAqIFNldCB0aGUgY3VycmVudCBrZXlib2FyZCBpbiB0aGUgY29uZmlndXJhdGlvbi4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9zZXRLZXlib2FyZChBQ29uZmlndXJhdGlvbiogY29uZmlnLCBpbnQzMl90IGtleWJvYXJkKTsKKworLyoqCisgKiBSZXR1cm4gdGhlIGN1cnJlbnQgQUNPTkZJR1VSQVRJT05fTkFWSUdBVElPTl8qIHNldCBpbiB0aGUgY29uZmlndXJhdGlvbi4KKyAqLworaW50MzJfdCBBQ29uZmlndXJhdGlvbl9nZXROYXZpZ2F0aW9uKEFDb25maWd1cmF0aW9uKiBjb25maWcpOworCisvKioKKyAqIFNldCB0aGUgY3VycmVudCBuYXZpZ2F0aW9uIGluIHRoZSBjb25maWd1cmF0aW9uLgorICovCit2b2lkIEFDb25maWd1cmF0aW9uX3NldE5hdmlnYXRpb24oQUNvbmZpZ3VyYXRpb24qIGNvbmZpZywgaW50MzJfdCBuYXZpZ2F0aW9uKTsKKworLyoqCisgKiBSZXR1cm4gdGhlIGN1cnJlbnQgQUNPTkZJR1VSQVRJT05fS0VZU0hJRERFTl8qIHNldCBpbiB0aGUgY29uZmlndXJhdGlvbi4KKyAqLworaW50MzJfdCBBQ29uZmlndXJhdGlvbl9nZXRLZXlzSGlkZGVuKEFDb25maWd1cmF0aW9uKiBjb25maWcpOworCisvKioKKyAqIFNldCB0aGUgY3VycmVudCBrZXlzIGhpZGRlbiBpbiB0aGUgY29uZmlndXJhdGlvbi4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9zZXRLZXlzSGlkZGVuKEFDb25maWd1cmF0aW9uKiBjb25maWcsIGludDMyX3Qga2V5c0hpZGRlbik7CisKKy8qKgorICogUmV0dXJuIHRoZSBjdXJyZW50IEFDT05GSUdVUkFUSU9OX05BVkhJRERFTl8qIHNldCBpbiB0aGUgY29uZmlndXJhdGlvbi4KKyAqLworaW50MzJfdCBBQ29uZmlndXJhdGlvbl9nZXROYXZIaWRkZW4oQUNvbmZpZ3VyYXRpb24qIGNvbmZpZyk7CisKKy8qKgorICogU2V0IHRoZSBjdXJyZW50IG5hdiBoaWRkZW4gaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK3ZvaWQgQUNvbmZpZ3VyYXRpb25fc2V0TmF2SGlkZGVuKEFDb25maWd1cmF0aW9uKiBjb25maWcsIGludDMyX3QgbmF2SGlkZGVuKTsKKworLyoqCisgKiBSZXR1cm4gdGhlIGN1cnJlbnQgU0RLIChBUEkpIHZlcnNpb24gc2V0IGluIHRoZSBjb25maWd1cmF0aW9uLgorICovCitpbnQzMl90IEFDb25maWd1cmF0aW9uX2dldFNka1ZlcnNpb24oQUNvbmZpZ3VyYXRpb24qIGNvbmZpZyk7CisKKy8qKgorICogU2V0IHRoZSBjdXJyZW50IFNESyB2ZXJzaW9uIGluIHRoZSBjb25maWd1cmF0aW9uLgorICovCit2b2lkIEFDb25maWd1cmF0aW9uX3NldFNka1ZlcnNpb24oQUNvbmZpZ3VyYXRpb24qIGNvbmZpZywgaW50MzJfdCBzZGtWZXJzaW9uKTsKKworLyoqCisgKiBSZXR1cm4gdGhlIGN1cnJlbnQgQUNPTkZJR1VSQVRJT05fU0NSRUVOU0laRV8qIHNldCBpbiB0aGUgY29uZmlndXJhdGlvbi4KKyAqLworaW50MzJfdCBBQ29uZmlndXJhdGlvbl9nZXRTY3JlZW5TaXplKEFDb25maWd1cmF0aW9uKiBjb25maWcpOworCisvKioKKyAqIFNldCB0aGUgY3VycmVudCBzY3JlZW4gc2l6ZSBpbiB0aGUgY29uZmlndXJhdGlvbi4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9zZXRTY3JlZW5TaXplKEFDb25maWd1cmF0aW9uKiBjb25maWcsIGludDMyX3Qgc2NyZWVuU2l6ZSk7CisKKy8qKgorICogUmV0dXJuIHRoZSBjdXJyZW50IEFDT05GSUdVUkFUSU9OX1NDUkVFTkxPTkdfKiBzZXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK2ludDMyX3QgQUNvbmZpZ3VyYXRpb25fZ2V0U2NyZWVuTG9uZyhBQ29uZmlndXJhdGlvbiogY29uZmlnKTsKKworLyoqCisgKiBTZXQgdGhlIGN1cnJlbnQgc2NyZWVuIGxvbmcgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK3ZvaWQgQUNvbmZpZ3VyYXRpb25fc2V0U2NyZWVuTG9uZyhBQ29uZmlndXJhdGlvbiogY29uZmlnLCBpbnQzMl90IHNjcmVlbkxvbmcpOworCisvKioKKyAqIFJldHVybiB0aGUgY3VycmVudCBBQ09ORklHVVJBVElPTl9VSV9NT0RFX1RZUEVfKiBzZXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK2ludDMyX3QgQUNvbmZpZ3VyYXRpb25fZ2V0VWlNb2RlVHlwZShBQ29uZmlndXJhdGlvbiogY29uZmlnKTsKKworLyoqCisgKiBTZXQgdGhlIGN1cnJlbnQgVUkgbW9kZSB0eXBlIGluIHRoZSBjb25maWd1cmF0aW9uLgorICovCit2b2lkIEFDb25maWd1cmF0aW9uX3NldFVpTW9kZVR5cGUoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZywgaW50MzJfdCB1aU1vZGVUeXBlKTsKKworLyoqCisgKiBSZXR1cm4gdGhlIGN1cnJlbnQgQUNPTkZJR1VSQVRJT05fVUlfTU9ERV9OSUdIVF8qIHNldCBpbiB0aGUgY29uZmlndXJhdGlvbi4KKyAqLworaW50MzJfdCBBQ29uZmlndXJhdGlvbl9nZXRVaU1vZGVOaWdodChBQ29uZmlndXJhdGlvbiogY29uZmlnKTsKKworLyoqCisgKiBTZXQgdGhlIGN1cnJlbnQgVUkgbW9kZSBuaWdodCBpbiB0aGUgY29uZmlndXJhdGlvbi4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9zZXRVaU1vZGVOaWdodChBQ29uZmlndXJhdGlvbiogY29uZmlnLCBpbnQzMl90IHVpTW9kZU5pZ2h0KTsKKworLyoqCisgKiBSZXR1cm4gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBzY3JlZW4gd2lkdGggaW4gZHAgdW5pdHMsIG9yCisgKiBBQ09ORklHVVJBVElPTl9TQ1JFRU5fV0lEVEhfRFBfQU5ZIGlmIG5vdCBzZXQuCisgKi8KK2ludDMyX3QgQUNvbmZpZ3VyYXRpb25fZ2V0U2NyZWVuV2lkdGhEcChBQ29uZmlndXJhdGlvbiogY29uZmlnKTsKKworLyoqCisgKiBTZXQgdGhlIGNvbmZpZ3VyYXRpb24ncyBjdXJyZW50IHNjcmVlbiB3aWR0aCBpbiBkcCB1bml0cy4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9zZXRTY3JlZW5XaWR0aERwKEFDb25maWd1cmF0aW9uKiBjb25maWcsIGludDMyX3QgdmFsdWUpOworCisvKioKKyAqIFJldHVybiB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uIHNjcmVlbiBoZWlnaHQgaW4gZHAgdW5pdHMsIG9yCisgKiBBQ09ORklHVVJBVElPTl9TQ1JFRU5fSEVJR0hUX0RQX0FOWSBpZiBub3Qgc2V0LgorICovCitpbnQzMl90IEFDb25maWd1cmF0aW9uX2dldFNjcmVlbkhlaWdodERwKEFDb25maWd1cmF0aW9uKiBjb25maWcpOworCisvKioKKyAqIFNldCB0aGUgY29uZmlndXJhdGlvbidzIGN1cnJlbnQgc2NyZWVuIHdpZHRoIGluIGRwIHVuaXRzLgorICovCit2b2lkIEFDb25maWd1cmF0aW9uX3NldFNjcmVlbkhlaWdodERwKEFDb25maWd1cmF0aW9uKiBjb25maWcsIGludDMyX3QgdmFsdWUpOworCisvKioKKyAqIFJldHVybiB0aGUgY29uZmlndXJhdGlvbidzIHNtYWxsZXN0IHNjcmVlbiB3aWR0aCBpbiBkcCB1bml0cywgb3IKKyAqIEFDT05GSUdVUkFUSU9OX1NNQUxMRVNUX1NDUkVFTl9XSURUSF9EUF9BTlkgaWYgbm90IHNldC4KKyAqLworaW50MzJfdCBBQ29uZmlndXJhdGlvbl9nZXRTbWFsbGVzdFNjcmVlbldpZHRoRHAoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZyk7CisKKy8qKgorICogU2V0IHRoZSBjb25maWd1cmF0aW9uJ3Mgc21hbGxlc3Qgc2NyZWVuIHdpZHRoIGluIGRwIHVuaXRzLgorICovCit2b2lkIEFDb25maWd1cmF0aW9uX3NldFNtYWxsZXN0U2NyZWVuV2lkdGhEcChBQ29uZmlndXJhdGlvbiogY29uZmlnLCBpbnQzMl90IHZhbHVlKTsKKworLyoqCisgKiBQZXJmb3JtIGEgZGlmZiBiZXR3ZWVuIHR3byBjb25maWd1cmF0aW9ucy4gIFJldHVybnMgYSBiaXQgbWFzayBvZgorICogQUNPTkZJR1VSQVRJT05fKiBjb25zdGFudHMsIGVhY2ggYml0IHNldCBtZWFuaW5nIHRoYXQgY29uZmlndXJhdGlvbiBlbGVtZW50CisgKiBpcyBkaWZmZXJlbnQgYmV0d2VlbiB0aGVtLgorICovCitpbnQzMl90IEFDb25maWd1cmF0aW9uX2RpZmYoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZzEsIEFDb25maWd1cmF0aW9uKiBjb25maWcyKTsKKworLyoqCisgKiBEZXRlcm1pbmUgd2hldGhlciAnYmFzZScgaXMgYSB2YWxpZCBjb25maWd1cmF0aW9uIGZvciB1c2Ugd2l0aGluIHRoZQorICogZW52aXJvbm1lbnQgJ3JlcXVlc3RlZCcuICBSZXR1cm5zIDAgaWYgdGhlcmUgYXJlIGFueSB2YWx1ZXMgaW4gJ2Jhc2UnCisgKiB0aGF0IGNvbmZsaWN0IHdpdGggJ3JlcXVlc3RlZCcuICBSZXR1cm5zIDEgaWYgaXQgZG9lcyBub3QgY29uZmxpY3QuCisgKi8KK2ludDMyX3QgQUNvbmZpZ3VyYXRpb25fbWF0Y2goQUNvbmZpZ3VyYXRpb24qIGJhc2UsIEFDb25maWd1cmF0aW9uKiByZXF1ZXN0ZWQpOworCisvKioKKyAqIERldGVybWluZSB3aGV0aGVyIHRoZSBjb25maWd1cmF0aW9uIGluICd0ZXN0JyBpcyBiZXR0ZXIgdGhhbiB0aGUgZXhpc3RpbmcKKyAqIGNvbmZpZ3VyYXRpb24gaW4gJ2Jhc2UnLiAgSWYgJ3JlcXVlc3RlZCcgaXMgbm9uLU5VTEwsIHRoaXMgZGVjaXNpb24gaXMgYmFzZWQKKyAqIG9uIHRoZSBvdmVyYWxsIGNvbmZpZ3VyYXRpb24gZ2l2ZW4gdGhlcmUuICBJZiBpdCBpcyBOVUxMLCB0aGlzIGRlY2lzaW9uIGlzCisgKiBzaW1wbHkgYmFzZWQgb24gd2hpY2ggY29uZmlndXJhdGlvbiBpcyBtb3JlIHNwZWNpZmljLiAgUmV0dXJucyBub24tMCBpZgorICogJ3Rlc3QnIGlzIGJldHRlciB0aGFuICdiYXNlJy4KKyAqCisgKiBUaGlzIGFzc3VtZXMgeW91IGhhdmUgYWxyZWFkeSBmaWx0ZXJlZCB0aGUgY29uZmlndXJhdGlvbnMgd2l0aAorICogQUNvbmZpZ3VyYXRpb25fbWF0Y2goKS4KKyAqLworaW50MzJfdCBBQ29uZmlndXJhdGlvbl9pc0JldHRlclRoYW4oQUNvbmZpZ3VyYXRpb24qIGJhc2UsIEFDb25maWd1cmF0aW9uKiB0ZXN0LAorICAgICAgICBBQ29uZmlndXJhdGlvbiogcmVxdWVzdGVkKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9OworI2VuZGlmCisKKyNlbmRpZiAvLyBBTkRST0lEX0NPTkZJR1VSQVRJT05fSApkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTEzL2luY2x1ZGUvYW5kcm9pZC9pbnB1dC5oIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTEzL2luY2x1ZGUvYW5kcm9pZC9pbnB1dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3MTdhNTAKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTMvaW5jbHVkZS9hbmRyb2lkL2lucHV0LmgKQEAgLTAsMCArMSw4MDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIF9BTkRST0lEX0lOUFVUX0gKKyNkZWZpbmUgX0FORFJPSURfSU5QVVRfSAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogSU1QT1JUQU5UIE5PVElDRToKKyAqCisgKiAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEFuZHJvaWQncyBzZXQgb2Ygc3RhYmxlIHN5c3RlbSBoZWFkZXJzCisgKiAgIGV4cG9zZWQgYnkgdGhlIEFuZHJvaWQgTkRLIChOYXRpdmUgRGV2ZWxvcG1lbnQgS2l0KS4KKyAqCisgKiAgIFRoaXJkLXBhcnR5IHNvdXJjZSBBTkQgYmluYXJ5IGNvZGUgcmVsaWVzIG9uIHRoZSBkZWZpbml0aW9ucworICogICBoZXJlIHRvIGJlIEZST1pFTiBPTiBBTEwgVVBDT01JTkcgUExBVEZPUk0gUkVMRUFTRVMuCisgKgorICogICAtIERPIE5PVCBNT0RJRlkgRU5VTVMgKEVYQ0VQVCBJRiBZT1UgQUREIE5FVyAzMi1CSVQgVkFMVUVTKQorICogICAtIERPIE5PVCBNT0RJRlkgQ09OU1RBTlRTIE9SIEZVTkNUSU9OQUwgTUFDUk9TCisgKiAgIC0gRE8gTk9UIENIQU5HRSBUSEUgU0lHTkFUVVJFIE9GIEZVTkNUSU9OUyBJTiBBTlkgV0FZCisgKiAgIC0gRE8gTk9UIENIQU5HRSBUSEUgTEFZT1VUIE9SIFNJWkUgT0YgU1RSVUNUVVJFUworICovCisKKy8qCisgKiBTdHJ1Y3R1cmVzIGFuZCBmdW5jdGlvbnMgdG8gcmVjZWl2ZSBhbmQgcHJvY2VzcyBpbnB1dCBldmVudHMgaW4KKyAqIG5hdGl2ZSBjb2RlLgorICoKKyAqIE5PVEU6IFRoZXNlIGZ1bmN0aW9ucyBNVVNUIGJlIGltcGxlbWVudGVkIGJ5IC9zeXN0ZW0vbGliL2xpYnVpLnNvCisgKi8KKworI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPGFuZHJvaWQva2V5Y29kZXMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2xvb3Blci5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qCisgKiBLZXkgc3RhdGVzIChtYXkgYmUgcmV0dXJuZWQgYnkgcXVlcmllcyBhYm91dCB0aGUgY3VycmVudCBzdGF0ZSBvZiBhCisgKiBwYXJ0aWN1bGFyIGtleSBjb2RlLCBzY2FuIGNvZGUgb3Igc3dpdGNoKS4KKyAqLworZW51bSB7CisgICAgLyogVGhlIGtleSBzdGF0ZSBpcyB1bmtub3duIG9yIHRoZSByZXF1ZXN0ZWQga2V5IGl0c2VsZiBpcyBub3Qgc3VwcG9ydGVkLiAqLworICAgIEFLRVlfU1RBVEVfVU5LTk9XTiA9IC0xLAorCisgICAgLyogVGhlIGtleSBpcyB1cC4gKi8KKyAgICBBS0VZX1NUQVRFX1VQID0gMCwKKworICAgIC8qIFRoZSBrZXkgaXMgZG93bi4gKi8KKyAgICBBS0VZX1NUQVRFX0RPV04gPSAxLAorCisgICAgLyogVGhlIGtleSBpcyBkb3duIGJ1dCBpcyBhIHZpcnR1YWwga2V5IHByZXNzIHRoYXQgaXMgYmVpbmcgZW11bGF0ZWQgYnkgdGhlIHN5c3RlbS4gKi8KKyAgICBBS0VZX1NUQVRFX1ZJUlRVQUwgPSAyCit9OworCisvKgorICogTWV0YSBrZXkgLyBtb2RpZmVyIHN0YXRlLgorICovCitlbnVtIHsKKyAgICAvKiBObyBtZXRhIGtleXMgYXJlIHByZXNzZWQuICovCisgICAgQU1FVEFfTk9ORSA9IDAsCisKKyAgICAvKiBUaGlzIG1hc2sgaXMgdXNlZCB0byBjaGVjayB3aGV0aGVyIG9uZSBvZiB0aGUgQUxUIG1ldGEga2V5cyBpcyBwcmVzc2VkLiAqLworICAgIEFNRVRBX0FMVF9PTiA9IDB4MDIsCisKKyAgICAvKiBUaGlzIG1hc2sgaXMgdXNlZCB0byBjaGVjayB3aGV0aGVyIHRoZSBsZWZ0IEFMVCBtZXRhIGtleSBpcyBwcmVzc2VkLiAqLworICAgIEFNRVRBX0FMVF9MRUZUX09OID0gMHgxMCwKKworICAgIC8qIFRoaXMgbWFzayBpcyB1c2VkIHRvIGNoZWNrIHdoZXRoZXIgdGhlIHJpZ2h0IEFMVCBtZXRhIGtleSBpcyBwcmVzc2VkLiAqLworICAgIEFNRVRBX0FMVF9SSUdIVF9PTiA9IDB4MjAsCisKKyAgICAvKiBUaGlzIG1hc2sgaXMgdXNlZCB0byBjaGVjayB3aGV0aGVyIG9uZSBvZiB0aGUgU0hJRlQgbWV0YSBrZXlzIGlzIHByZXNzZWQuICovCisgICAgQU1FVEFfU0hJRlRfT04gPSAweDAxLAorCisgICAgLyogVGhpcyBtYXNrIGlzIHVzZWQgdG8gY2hlY2sgd2hldGhlciB0aGUgbGVmdCBTSElGVCBtZXRhIGtleSBpcyBwcmVzc2VkLiAqLworICAgIEFNRVRBX1NISUZUX0xFRlRfT04gPSAweDQwLAorCisgICAgLyogVGhpcyBtYXNrIGlzIHVzZWQgdG8gY2hlY2sgd2hldGhlciB0aGUgcmlnaHQgU0hJRlQgbWV0YSBrZXkgaXMgcHJlc3NlZC4gKi8KKyAgICBBTUVUQV9TSElGVF9SSUdIVF9PTiA9IDB4ODAsCisKKyAgICAvKiBUaGlzIG1hc2sgaXMgdXNlZCB0byBjaGVjayB3aGV0aGVyIHRoZSBTWU0gbWV0YSBrZXkgaXMgcHJlc3NlZC4gKi8KKyAgICBBTUVUQV9TWU1fT04gPSAweDA0LAorCisgICAgLyogVGhpcyBtYXNrIGlzIHVzZWQgdG8gY2hlY2sgd2hldGhlciB0aGUgRlVOQ1RJT04gbWV0YSBrZXkgaXMgcHJlc3NlZC4gKi8KKyAgICBBTUVUQV9GVU5DVElPTl9PTiA9IDB4MDgsCisKKyAgICAvKiBUaGlzIG1hc2sgaXMgdXNlZCB0byBjaGVjayB3aGV0aGVyIG9uZSBvZiB0aGUgQ1RSTCBtZXRhIGtleXMgaXMgcHJlc3NlZC4gKi8KKyAgICBBTUVUQV9DVFJMX09OID0gMHgxMDAwLAorCisgICAgLyogVGhpcyBtYXNrIGlzIHVzZWQgdG8gY2hlY2sgd2hldGhlciB0aGUgbGVmdCBDVFJMIG1ldGEga2V5IGlzIHByZXNzZWQuICovCisgICAgQU1FVEFfQ1RSTF9MRUZUX09OID0gMHgyMDAwLAorCisgICAgLyogVGhpcyBtYXNrIGlzIHVzZWQgdG8gY2hlY2sgd2hldGhlciB0aGUgcmlnaHQgQ1RSTCBtZXRhIGtleSBpcyBwcmVzc2VkLiAqLworICAgIEFNRVRBX0NUUkxfUklHSFRfT04gPSAweDQwMDAsCisKKyAgICAvKiBUaGlzIG1hc2sgaXMgdXNlZCB0byBjaGVjayB3aGV0aGVyIG9uZSBvZiB0aGUgTUVUQSBtZXRhIGtleXMgaXMgcHJlc3NlZC4gKi8KKyAgICBBTUVUQV9NRVRBX09OID0gMHgxMDAwMCwKKworICAgIC8qIFRoaXMgbWFzayBpcyB1c2VkIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGxlZnQgTUVUQSBtZXRhIGtleSBpcyBwcmVzc2VkLiAqLworICAgIEFNRVRBX01FVEFfTEVGVF9PTiA9IDB4MjAwMDAsCisKKyAgICAvKiBUaGlzIG1hc2sgaXMgdXNlZCB0byBjaGVjayB3aGV0aGVyIHRoZSByaWdodCBNRVRBIG1ldGEga2V5IGlzIHByZXNzZWQuICovCisgICAgQU1FVEFfTUVUQV9SSUdIVF9PTiA9IDB4NDAwMDAsCisKKyAgICAvKiBUaGlzIG1hc2sgaXMgdXNlZCB0byBjaGVjayB3aGV0aGVyIHRoZSBDQVBTIExPQ0sgbWV0YSBrZXkgaXMgb24uICovCisgICAgQU1FVEFfQ0FQU19MT0NLX09OID0gMHgxMDAwMDAsCisKKyAgICAvKiBUaGlzIG1hc2sgaXMgdXNlZCB0byBjaGVjayB3aGV0aGVyIHRoZSBOVU0gTE9DSyBtZXRhIGtleSBpcyBvbi4gKi8KKyAgICBBTUVUQV9OVU1fTE9DS19PTiA9IDB4MjAwMDAwLAorCisgICAgLyogVGhpcyBtYXNrIGlzIHVzZWQgdG8gY2hlY2sgd2hldGhlciB0aGUgU0NST0xMIExPQ0sgbWV0YSBrZXkgaXMgb24uICovCisgICAgQU1FVEFfU0NST0xMX0xPQ0tfT04gPSAweDQwMDAwMCwKK307CisKKy8qCisgKiBJbnB1dCBldmVudHMuCisgKgorICogSW5wdXQgZXZlbnRzIGFyZSBvcGFxdWUgc3RydWN0dXJlcy4gIFVzZSB0aGUgcHJvdmlkZWQgYWNjZXNzb3JzIGZ1bmN0aW9ucyB0bworICogcmVhZCB0aGVpciBwcm9wZXJ0aWVzLgorICovCitzdHJ1Y3QgQUlucHV0RXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBBSW5wdXRFdmVudCBBSW5wdXRFdmVudDsKKworLyoKKyAqIElucHV0IGV2ZW50IHR5cGVzLgorICovCitlbnVtIHsKKyAgICAvKiBJbmRpY2F0ZXMgdGhhdCB0aGUgaW5wdXQgZXZlbnQgaXMgYSBrZXkgZXZlbnQuICovCisgICAgQUlOUFVUX0VWRU5UX1RZUEVfS0VZID0gMSwKKworICAgIC8qIEluZGljYXRlcyB0aGF0IHRoZSBpbnB1dCBldmVudCBpcyBhIG1vdGlvbiBldmVudC4gKi8KKyAgICBBSU5QVVRfRVZFTlRfVFlQRV9NT1RJT04gPSAyCit9OworCisvKgorICogS2V5IGV2ZW50IGFjdGlvbnMuCisgKi8KK2VudW0geworICAgIC8qIFRoZSBrZXkgaGFzIGJlZW4gcHJlc3NlZCBkb3duLiAqLworICAgIEFLRVlfRVZFTlRfQUNUSU9OX0RPV04gPSAwLAorCisgICAgLyogVGhlIGtleSBoYXMgYmVlbiByZWxlYXNlZC4gKi8KKyAgICBBS0VZX0VWRU5UX0FDVElPTl9VUCA9IDEsCisKKyAgICAvKiBNdWx0aXBsZSBkdXBsaWNhdGUga2V5IGV2ZW50cyBoYXZlIG9jY3VycmVkIGluIGEgcm93LCBvciBhIGNvbXBsZXggc3RyaW5nIGlzCisgICAgICogYmVpbmcgZGVsaXZlcmVkLiAgVGhlIHJlcGVhdF9jb3VudCBwcm9wZXJ0eSBvZiB0aGUga2V5IGV2ZW50IGNvbnRhaW5zIHRoZSBudW1iZXIKKyAgICAgKiBvZiB0aW1lcyB0aGUgZ2l2ZW4ga2V5IGNvZGUgc2hvdWxkIGJlIGV4ZWN1dGVkLgorICAgICAqLworICAgIEFLRVlfRVZFTlRfQUNUSU9OX01VTFRJUExFID0gMgorfTsKKworLyoKKyAqIEtleSBldmVudCBmbGFncy4KKyAqLworZW51bSB7CisgICAgLyogVGhpcyBtYXNrIGlzIHNldCBpZiB0aGUgZGV2aWNlIHdva2UgYmVjYXVzZSBvZiB0aGlzIGtleSBldmVudC4gKi8KKyAgICBBS0VZX0VWRU5UX0ZMQUdfV09LRV9IRVJFID0gMHgxLAorCisgICAgLyogVGhpcyBtYXNrIGlzIHNldCBpZiB0aGUga2V5IGV2ZW50IHdhcyBnZW5lcmF0ZWQgYnkgYSBzb2Z0d2FyZSBrZXlib2FyZC4gKi8KKyAgICBBS0VZX0VWRU5UX0ZMQUdfU09GVF9LRVlCT0FSRCA9IDB4MiwKKworICAgIC8qIFRoaXMgbWFzayBpcyBzZXQgaWYgd2UgZG9uJ3Qgd2FudCB0aGUga2V5IGV2ZW50IHRvIGNhdXNlIHVzIHRvIGxlYXZlIHRvdWNoIG1vZGUuICovCisgICAgQUtFWV9FVkVOVF9GTEFHX0tFRVBfVE9VQ0hfTU9ERSA9IDB4NCwKKworICAgIC8qIFRoaXMgbWFzayBpcyBzZXQgaWYgYW4gZXZlbnQgd2FzIGtub3duIHRvIGNvbWUgZnJvbSBhIHRydXN0ZWQgcGFydAorICAgICAqIG9mIHRoZSBzeXN0ZW0uICBUaGF0IGlzLCB0aGUgZXZlbnQgaXMga25vd24gdG8gY29tZSBmcm9tIHRoZSB1c2VyLAorICAgICAqIGFuZCBjb3VsZCBub3QgaGF2ZSBiZWVuIHNwb29mZWQgYnkgYSB0aGlyZCBwYXJ0eSBjb21wb25lbnQuICovCisgICAgQUtFWV9FVkVOVF9GTEFHX0ZST01fU1lTVEVNID0gMHg4LAorCisgICAgLyogVGhpcyBtYXNrIGlzIHVzZWQgZm9yIGNvbXBhdGliaWxpdHksIHRvIGlkZW50aWZ5IGVudGVyIGtleXMgdGhhdCBhcmUKKyAgICAgKiBjb21pbmcgZnJvbSBhbiBJTUUgd2hvc2UgZW50ZXIga2V5IGhhcyBiZWVuIGF1dG8tbGFiZWxsZWQgIm5leHQiIG9yCisgICAgICogImRvbmUiLiAgVGhpcyBhbGxvd3MgVGV4dFZpZXcgdG8gZGlzcGF0Y2ggdGhlc2UgYXMgbm9ybWFsIGVudGVyIGtleXMKKyAgICAgKiBmb3Igb2xkIGFwcGxpY2F0aW9ucywgYnV0IHN0aWxsIGRvIHRoZSBhcHByb3ByaWF0ZSBhY3Rpb24gd2hlbgorICAgICAqIHJlY2VpdmluZyB0aGVtLiAqLworICAgIEFLRVlfRVZFTlRfRkxBR19FRElUT1JfQUNUSU9OID0gMHgxMCwKKworICAgIC8qIFdoZW4gYXNzb2NpYXRlZCB3aXRoIHVwIGtleSBldmVudHMsIHRoaXMgaW5kaWNhdGVzIHRoYXQgdGhlIGtleSBwcmVzcworICAgICAqIGhhcyBiZWVuIGNhbmNlbGVkLiAgVHlwaWNhbGx5IHRoaXMgaXMgdXNlZCB3aXRoIHZpcnR1YWwgdG91Y2ggc2NyZWVuCisgICAgICoga2V5cywgd2hlcmUgdGhlIHVzZXIgY2FuIHNsaWRlIGZyb20gdGhlIHZpcnR1YWwga2V5IGFyZWEgb24gdG8gdGhlCisgICAgICogZGlzcGxheTogaW4gdGhhdCBjYXNlLCB0aGUgYXBwbGljYXRpb24gd2lsbCByZWNlaXZlIGEgY2FuY2VsZWQgdXAKKyAgICAgKiBldmVudCBhbmQgc2hvdWxkIG5vdCBwZXJmb3JtIHRoZSBhY3Rpb24gbm9ybWFsbHkgYXNzb2NpYXRlZCB3aXRoIHRoZQorICAgICAqIGtleS4gIE5vdGUgdGhhdCBmb3IgdGhpcyB0byB3b3JrLCB0aGUgYXBwbGljYXRpb24gY2FuIG5vdCBwZXJmb3JtIGFuCisgICAgICogYWN0aW9uIGZvciBhIGtleSB1bnRpbCBpdCByZWNlaXZlcyBhbiB1cCBvciB0aGUgbG9uZyBwcmVzcyB0aW1lb3V0IGhhcworICAgICAqIGV4cGlyZWQuICovCisgICAgQUtFWV9FVkVOVF9GTEFHX0NBTkNFTEVEID0gMHgyMCwKKworICAgIC8qIFRoaXMga2V5IGV2ZW50IHdhcyBnZW5lcmF0ZWQgYnkgYSB2aXJ0dWFsIChvbi1zY3JlZW4pIGhhcmQga2V5IGFyZWEuCisgICAgICogVHlwaWNhbGx5IHRoaXMgaXMgYW4gYXJlYSBvZiB0aGUgdG91Y2hzY3JlZW4sIG91dHNpZGUgb2YgdGhlIHJlZ3VsYXIKKyAgICAgKiBkaXNwbGF5LCBkZWRpY2F0ZWQgdG8gImhhcmR3YXJlIiBidXR0b25zLiAqLworICAgIEFLRVlfRVZFTlRfRkxBR19WSVJUVUFMX0hBUkRfS0VZID0gMHg0MCwKKworICAgIC8qIFRoaXMgZmxhZyBpcyBzZXQgZm9yIHRoZSBmaXJzdCBrZXkgcmVwZWF0IHRoYXQgb2NjdXJzIGFmdGVyIHRoZQorICAgICAqIGxvbmcgcHJlc3MgdGltZW91dC4gKi8KKyAgICBBS0VZX0VWRU5UX0ZMQUdfTE9OR19QUkVTUyA9IDB4ODAsCisKKyAgICAvKiBTZXQgd2hlbiBhIGtleSBldmVudCBoYXMgQUtFWV9FVkVOVF9GTEFHX0NBTkNFTEVEIHNldCBiZWNhdXNlIGEgbG9uZworICAgICAqIHByZXNzIGFjdGlvbiB3YXMgZXhlY3V0ZWQgd2hpbGUgaXQgd2FzIGRvd24uICovCisgICAgQUtFWV9FVkVOVF9GTEFHX0NBTkNFTEVEX0xPTkdfUFJFU1MgPSAweDEwMCwKKworICAgIC8qIFNldCBmb3IgQUtFWV9FVkVOVF9BQ1RJT05fVVAgd2hlbiB0aGlzIGV2ZW50J3Mga2V5IGNvZGUgaXMgc3RpbGwgYmVpbmcKKyAgICAgKiB0cmFja2VkIGZyb20gaXRzIGluaXRpYWwgZG93bi4gIFRoYXQgaXMsIHNvbWVib2R5IHJlcXVlc3RlZCB0aGF0IHRyYWNraW5nCisgICAgICogc3RhcnRlZCBvbiB0aGUga2V5IGRvd24gYW5kIGEgbG9uZyBwcmVzcyBoYXMgbm90IGNhdXNlZAorICAgICAqIHRoZSB0cmFja2luZyB0byBiZSBjYW5jZWxlZC4gKi8KKyAgICBBS0VZX0VWRU5UX0ZMQUdfVFJBQ0tJTkcgPSAweDIwMCwKKworICAgIC8qIFNldCB3aGVuIGEga2V5IGV2ZW50IGhhcyBiZWVuIHN5bnRoZXNpemVkIHRvIGltcGxlbWVudCBkZWZhdWx0IGJlaGF2aW9yCisgICAgICogZm9yIGFuIGV2ZW50IHRoYXQgdGhlIGFwcGxpY2F0aW9uIGRpZCBub3QgaGFuZGxlLgorICAgICAqIEZhbGxiYWNrIGtleSBldmVudHMgYXJlIGdlbmVyYXRlZCBieSB1bmhhbmRsZWQgdHJhY2tiYWxsIG1vdGlvbnMKKyAgICAgKiAodG8gZW11bGF0ZSBhIGRpcmVjdGlvbmFsIGtleXBhZCkgYW5kIGJ5IGNlcnRhaW4gdW5oYW5kbGVkIGtleSBwcmVzc2VzCisgICAgICogdGhhdCBhcmUgZGVjbGFyZWQgaW4gdGhlIGtleSBtYXAgKHN1Y2ggYXMgc3BlY2lhbCBmdW5jdGlvbiBudW1lcmljIGtleXBhZAorICAgICAqIGtleXMgd2hlbiBudW1sb2NrIGlzIG9mZikuICovCisgICAgQUtFWV9FVkVOVF9GTEFHX0ZBTExCQUNLID0gMHg0MDAsCit9OworCisvKgorICogTW90aW9uIGV2ZW50IGFjdGlvbnMuCisgKi8KKworLyogQml0IHNoaWZ0IGZvciB0aGUgYWN0aW9uIGJpdHMgaG9sZGluZyB0aGUgcG9pbnRlciBpbmRleCBhcworICogZGVmaW5lZCBieSBBTU9USU9OX0VWRU5UX0FDVElPTl9QT0lOVEVSX0lOREVYX01BU0suCisgKi8KKyNkZWZpbmUgQU1PVElPTl9FVkVOVF9BQ1RJT05fUE9JTlRFUl9JTkRFWF9TSElGVCA4CisKK2VudW0geworICAgIC8qIEJpdCBtYXNrIG9mIHRoZSBwYXJ0cyBvZiB0aGUgYWN0aW9uIGNvZGUgdGhhdCBhcmUgdGhlIGFjdGlvbiBpdHNlbGYuCisgICAgICovCisgICAgQU1PVElPTl9FVkVOVF9BQ1RJT05fTUFTSyA9IDB4ZmYsCisKKyAgICAvKiBCaXRzIGluIHRoZSBhY3Rpb24gY29kZSB0aGF0IHJlcHJlc2VudCBhIHBvaW50ZXIgaW5kZXgsIHVzZWQgd2l0aAorICAgICAqIEFNT1RJT05fRVZFTlRfQUNUSU9OX1BPSU5URVJfRE9XTiBhbmQgQU1PVElPTl9FVkVOVF9BQ1RJT05fUE9JTlRFUl9VUC4gIFNoaWZ0aW5nCisgICAgICogZG93biBieSBBTU9USU9OX0VWRU5UX0FDVElPTl9QT0lOVEVSX0lOREVYX1NISUZUIHByb3ZpZGVzIHRoZSBhY3R1YWwgcG9pbnRlcgorICAgICAqIGluZGV4IHdoZXJlIHRoZSBkYXRhIGZvciB0aGUgcG9pbnRlciBnb2luZyB1cCBvciBkb3duIGNhbiBiZSBmb3VuZC4KKyAgICAgKi8KKyAgICBBTU9USU9OX0VWRU5UX0FDVElPTl9QT0lOVEVSX0lOREVYX01BU0sgID0gMHhmZjAwLAorCisgICAgLyogQSBwcmVzc2VkIGdlc3R1cmUgaGFzIHN0YXJ0ZWQsIHRoZSBtb3Rpb24gY29udGFpbnMgdGhlIGluaXRpYWwgc3RhcnRpbmcgbG9jYXRpb24uCisgICAgICovCisgICAgQU1PVElPTl9FVkVOVF9BQ1RJT05fRE9XTiA9IDAsCisKKyAgICAvKiBBIHByZXNzZWQgZ2VzdHVyZSBoYXMgZmluaXNoZWQsIHRoZSBtb3Rpb24gY29udGFpbnMgdGhlIGZpbmFsIHJlbGVhc2UgbG9jYXRpb24KKyAgICAgKiBhcyB3ZWxsIGFzIGFueSBpbnRlcm1lZGlhdGUgcG9pbnRzIHNpbmNlIHRoZSBsYXN0IGRvd24gb3IgbW92ZSBldmVudC4KKyAgICAgKi8KKyAgICBBTU9USU9OX0VWRU5UX0FDVElPTl9VUCA9IDEsCisKKyAgICAvKiBBIGNoYW5nZSBoYXMgaGFwcGVuZWQgZHVyaW5nIGEgcHJlc3MgZ2VzdHVyZSAoYmV0d2VlbiBBTU9USU9OX0VWRU5UX0FDVElPTl9ET1dOIGFuZAorICAgICAqIEFNT1RJT05fRVZFTlRfQUNUSU9OX1VQKS4gIFRoZSBtb3Rpb24gY29udGFpbnMgdGhlIG1vc3QgcmVjZW50IHBvaW50LCBhcyB3ZWxsIGFzCisgICAgICogYW55IGludGVybWVkaWF0ZSBwb2ludHMgc2luY2UgdGhlIGxhc3QgZG93biBvciBtb3ZlIGV2ZW50LgorICAgICAqLworICAgIEFNT1RJT05fRVZFTlRfQUNUSU9OX01PVkUgPSAyLAorCisgICAgLyogVGhlIGN1cnJlbnQgZ2VzdHVyZSBoYXMgYmVlbiBhYm9ydGVkLgorICAgICAqIFlvdSB3aWxsIG5vdCByZWNlaXZlIGFueSBtb3JlIHBvaW50cyBpbiBpdC4gIFlvdSBzaG91bGQgdHJlYXQgdGhpcyBhcworICAgICAqIGFuIHVwIGV2ZW50LCBidXQgbm90IHBlcmZvcm0gYW55IGFjdGlvbiB0aGF0IHlvdSBub3JtYWxseSB3b3VsZC4KKyAgICAgKi8KKyAgICBBTU9USU9OX0VWRU5UX0FDVElPTl9DQU5DRUwgPSAzLAorCisgICAgLyogQSBtb3ZlbWVudCBoYXMgaGFwcGVuZWQgb3V0c2lkZSBvZiB0aGUgbm9ybWFsIGJvdW5kcyBvZiB0aGUgVUkgZWxlbWVudC4KKyAgICAgKiBUaGlzIGRvZXMgbm90IHByb3ZpZGUgYSBmdWxsIGdlc3R1cmUsIGJ1dCBvbmx5IHRoZSBpbml0aWFsIGxvY2F0aW9uIG9mIHRoZSBtb3ZlbWVudC90b3VjaC4KKyAgICAgKi8KKyAgICBBTU9USU9OX0VWRU5UX0FDVElPTl9PVVRTSURFID0gNCwKKworICAgIC8qIEEgbm9uLXByaW1hcnkgcG9pbnRlciBoYXMgZ29uZSBkb3duLgorICAgICAqIFRoZSBiaXRzIGluIEFNT1RJT05fRVZFTlRfQUNUSU9OX1BPSU5URVJfSU5ERVhfTUFTSyBpbmRpY2F0ZSB3aGljaCBwb2ludGVyIGNoYW5nZWQuCisgICAgICovCisgICAgQU1PVElPTl9FVkVOVF9BQ1RJT05fUE9JTlRFUl9ET1dOID0gNSwKKworICAgIC8qIEEgbm9uLXByaW1hcnkgcG9pbnRlciBoYXMgZ29uZSB1cC4KKyAgICAgKiBUaGUgYml0cyBpbiBBTU9USU9OX0VWRU5UX0FDVElPTl9QT0lOVEVSX0lOREVYX01BU0sgaW5kaWNhdGUgd2hpY2ggcG9pbnRlciBjaGFuZ2VkLgorICAgICAqLworICAgIEFNT1RJT05fRVZFTlRfQUNUSU9OX1BPSU5URVJfVVAgPSA2LAorCisgICAgLyogQSBjaGFuZ2UgaGFwcGVuZWQgYnV0IHRoZSBwb2ludGVyIGlzIG5vdCBkb3duICh1bmxpa2UgQU1PVElPTl9FVkVOVF9BQ1RJT05fTU9WRSkuCisgICAgICogVGhlIG1vdGlvbiBjb250YWlucyB0aGUgbW9zdCByZWNlbnQgcG9pbnQsIGFzIHdlbGwgYXMgYW55IGludGVybWVkaWF0ZSBwb2ludHMgc2luY2UKKyAgICAgKiB0aGUgbGFzdCBob3ZlciBtb3ZlIGV2ZW50LgorICAgICAqLworICAgIEFNT1RJT05fRVZFTlRfQUNUSU9OX0hPVkVSX01PVkUgPSA3LAorCisgICAgLyogVGhlIG1vdGlvbiBldmVudCBjb250YWlucyByZWxhdGl2ZSB2ZXJ0aWNhbCBhbmQvb3IgaG9yaXpvbnRhbCBzY3JvbGwgb2Zmc2V0cy4KKyAgICAgKiBVc2UgZ2V0QXhpc1ZhbHVlIHRvIHJldHJpZXZlIHRoZSBpbmZvcm1hdGlvbiBmcm9tIEFNT1RJT05fRVZFTlRfQVhJU19WU0NST0xMCisgICAgICogYW5kIEFNT1RJT05fRVZFTlRfQVhJU19IU0NST0xMLgorICAgICAqIFRoZSBwb2ludGVyIG1heSBvciBtYXkgbm90IGJlIGRvd24gd2hlbiB0aGlzIGV2ZW50IGlzIGRpc3BhdGNoZWQuCisgICAgICogVGhpcyBhY3Rpb24gaXMgYWx3YXlzIGRlbGl2ZXJlZCB0byB0aGUgd2luZGVyIHVuZGVyIHRoZSBwb2ludGVyLCB3aGljaAorICAgICAqIG1heSBub3QgYmUgdGhlIHdpbmRvdyBjdXJyZW50bHkgdG91Y2hlZC4KKyAgICAgKi8KKyAgICBBTU9USU9OX0VWRU5UX0FDVElPTl9TQ1JPTEwgPSA4LAorfTsKKworLyoKKyAqIE1vdGlvbiBldmVudCBmbGFncy4KKyAqLworZW51bSB7CisgICAgLyogVGhpcyBmbGFnIGluZGljYXRlcyB0aGF0IHRoZSB3aW5kb3cgdGhhdCByZWNlaXZlZCB0aGlzIG1vdGlvbiBldmVudCBpcyBwYXJ0bHkKKyAgICAgKiBvciB3aG9sbHkgb2JzY3VyZWQgYnkgYW5vdGhlciB2aXNpYmxlIHdpbmRvdyBhYm92ZSBpdC4gIFRoaXMgZmxhZyBpcyBzZXQgdG8gdHJ1ZQorICAgICAqIGV2ZW4gaWYgdGhlIGV2ZW50IGRpZCBub3QgZGlyZWN0bHkgcGFzcyB0aHJvdWdoIHRoZSBvYnNjdXJlZCBhcmVhLgorICAgICAqIEEgc2VjdXJpdHkgc2Vuc2l0aXZlIGFwcGxpY2F0aW9uIGNhbiBjaGVjayB0aGlzIGZsYWcgdG8gaWRlbnRpZnkgc2l0dWF0aW9ucyBpbiB3aGljaAorICAgICAqIGEgbWFsaWNpb3VzIGFwcGxpY2F0aW9uIG1heSBoYXZlIGNvdmVyZWQgdXAgcGFydCBvZiBpdHMgY29udGVudCBmb3IgdGhlIHB1cnBvc2UKKyAgICAgKiBvZiBtaXNsZWFkaW5nIHRoZSB1c2VyIG9yIGhpamFja2luZyB0b3VjaGVzLiAgQW4gYXBwcm9wcmlhdGUgcmVzcG9uc2UgbWlnaHQgYmUKKyAgICAgKiB0byBkcm9wIHRoZSBzdXNwZWN0IHRvdWNoZXMgb3IgdG8gdGFrZSBhZGRpdGlvbmFsIHByZWNhdXRpb25zIHRvIGNvbmZpcm0gdGhlIHVzZXIncworICAgICAqIGFjdHVhbCBpbnRlbnQuCisgICAgICovCisgICAgQU1PVElPTl9FVkVOVF9GTEFHX1dJTkRPV19JU19PQlNDVVJFRCA9IDB4MSwKK307CisKKy8qCisgKiBNb3Rpb24gZXZlbnQgZWRnZSB0b3VjaCBmbGFncy4KKyAqLworZW51bSB7CisgICAgLyogTm8gZWRnZXMgaW50ZXJzZWN0ZWQgKi8KKyAgICBBTU9USU9OX0VWRU5UX0VER0VfRkxBR19OT05FID0gMCwKKworICAgIC8qIEZsYWcgaW5kaWNhdGluZyB0aGUgbW90aW9uIGV2ZW50IGludGVyc2VjdGVkIHRoZSB0b3AgZWRnZSBvZiB0aGUgc2NyZWVuLiAqLworICAgIEFNT1RJT05fRVZFTlRfRURHRV9GTEFHX1RPUCA9IDB4MDEsCisKKyAgICAvKiBGbGFnIGluZGljYXRpbmcgdGhlIG1vdGlvbiBldmVudCBpbnRlcnNlY3RlZCB0aGUgYm90dG9tIGVkZ2Ugb2YgdGhlIHNjcmVlbi4gKi8KKyAgICBBTU9USU9OX0VWRU5UX0VER0VfRkxBR19CT1RUT00gPSAweDAyLAorCisgICAgLyogRmxhZyBpbmRpY2F0aW5nIHRoZSBtb3Rpb24gZXZlbnQgaW50ZXJzZWN0ZWQgdGhlIGxlZnQgZWRnZSBvZiB0aGUgc2NyZWVuLiAqLworICAgIEFNT1RJT05fRVZFTlRfRURHRV9GTEFHX0xFRlQgPSAweDA0LAorCisgICAgLyogRmxhZyBpbmRpY2F0aW5nIHRoZSBtb3Rpb24gZXZlbnQgaW50ZXJzZWN0ZWQgdGhlIHJpZ2h0IGVkZ2Ugb2YgdGhlIHNjcmVlbi4gKi8KKyAgICBBTU9USU9OX0VWRU5UX0VER0VfRkxBR19SSUdIVCA9IDB4MDgKK307CisKKy8qCisgKiBDb25zdGFudHMgdGhhdCBpZGVudGlmeSBlYWNoIGluZGl2aWR1YWwgYXhpcyBvZiBhIG1vdGlvbiBldmVudC4KKyAqIFJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIG9uIHRoZSBNb3Rpb25FdmVudCBjbGFzcyBmb3IgZGVzY3JpcHRpb25zIG9mIGVhY2ggYXhpcy4KKyAqLworZW51bSB7CisgICAgQU1PVElPTl9FVkVOVF9BWElTX1ggPSAwLAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19ZID0gMSwKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfUFJFU1NVUkUgPSAyLAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19TSVpFID0gMywKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfVE9VQ0hfTUFKT1IgPSA0LAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19UT1VDSF9NSU5PUiA9IDUsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX1RPT0xfTUFKT1IgPSA2LAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19UT09MX01JTk9SID0gNywKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfT1JJRU5UQVRJT04gPSA4LAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19WU0NST0xMID0gOSwKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfSFNDUk9MTCA9IDEwLAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19aID0gMTEsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX1JYID0gMTIsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX1JZID0gMTMsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX1JaID0gMTQsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX0hBVF9YID0gMTUsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX0hBVF9ZID0gMTYsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX0xUUklHR0VSID0gMTcsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX1JUUklHR0VSID0gMTgsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX1RIUk9UVExFID0gMTksCisgICAgQU1PVElPTl9FVkVOVF9BWElTX1JVRERFUiA9IDIwLAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19XSEVFTCA9IDIxLAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19HQVMgPSAyMiwKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfQlJBS0UgPSAyMywKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfR0VORVJJQ18xID0gMzIsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX0dFTkVSSUNfMiA9IDMzLAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19HRU5FUklDXzMgPSAzNCwKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfR0VORVJJQ180ID0gMzUsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX0dFTkVSSUNfNSA9IDM2LAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19HRU5FUklDXzYgPSAzNywKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfR0VORVJJQ183ID0gMzgsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX0dFTkVSSUNfOCA9IDM5LAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19HRU5FUklDXzkgPSA0MCwKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfR0VORVJJQ18xMCA9IDQxLAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19HRU5FUklDXzExID0gNDIsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX0dFTkVSSUNfMTIgPSA0MywKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfR0VORVJJQ18xMyA9IDQ0LAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19HRU5FUklDXzE0ID0gNDUsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX0dFTkVSSUNfMTUgPSA0NiwKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfR0VORVJJQ18xNiA9IDQ3LAorCisgICAgLy8gTk9URTogSWYgeW91IGFkZCBhIG5ldyBheGlzIGhlcmUgeW91IG11c3QgYWxzbyBhZGQgaXQgdG8gc2V2ZXJhbCBvdGhlciBmaWxlcy4KKyAgICAvLyAgICAgICBSZWZlciB0byBmcmFtZXdvcmtzL2Jhc2UvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9Nb3Rpb25FdmVudC5qYXZhIGZvciB0aGUgZnVsbCBsaXN0LgorfTsKKworLyoKKyAqIElucHV0IHNvdXJjZXMuCisgKgorICogUmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gb24gYW5kcm9pZC52aWV3LklucHV0RGV2aWNlIGZvciBtb3JlIGRldGFpbHMgYWJvdXQgaW5wdXQgc291cmNlcworICogYW5kIHRoZWlyIGNvcnJlY3QgaW50ZXJwcmV0YXRpb24uCisgKi8KK2VudW0geworICAgIEFJTlBVVF9TT1VSQ0VfQ0xBU1NfTUFTSyA9IDB4MDAwMDAwZmYsCisKKyAgICBBSU5QVVRfU09VUkNFX0NMQVNTX0JVVFRPTiA9IDB4MDAwMDAwMDEsCisgICAgQUlOUFVUX1NPVVJDRV9DTEFTU19QT0lOVEVSID0gMHgwMDAwMDAwMiwKKyAgICBBSU5QVVRfU09VUkNFX0NMQVNTX05BVklHQVRJT04gPSAweDAwMDAwMDA0LAorICAgIEFJTlBVVF9TT1VSQ0VfQ0xBU1NfUE9TSVRJT04gPSAweDAwMDAwMDA4LAorICAgIEFJTlBVVF9TT1VSQ0VfQ0xBU1NfSk9ZU1RJQ0sgPSAweDAwMDAwMDEwLAorfTsKKworZW51bSB7CisgICAgQUlOUFVUX1NPVVJDRV9VTktOT1dOID0gMHgwMDAwMDAwMCwKKworICAgIEFJTlBVVF9TT1VSQ0VfS0VZQk9BUkQgPSAweDAwMDAwMTAwIHwgQUlOUFVUX1NPVVJDRV9DTEFTU19CVVRUT04sCisgICAgQUlOUFVUX1NPVVJDRV9EUEFEID0gMHgwMDAwMDIwMCB8IEFJTlBVVF9TT1VSQ0VfQ0xBU1NfQlVUVE9OLAorICAgIEFJTlBVVF9TT1VSQ0VfR0FNRVBBRCA9IDB4MDAwMDA0MDAgfCBBSU5QVVRfU09VUkNFX0NMQVNTX0JVVFRPTiwKKyAgICBBSU5QVVRfU09VUkNFX1RPVUNIU0NSRUVOID0gMHgwMDAwMTAwMCB8IEFJTlBVVF9TT1VSQ0VfQ0xBU1NfUE9JTlRFUiwKKyAgICBBSU5QVVRfU09VUkNFX01PVVNFID0gMHgwMDAwMjAwMCB8IEFJTlBVVF9TT1VSQ0VfQ0xBU1NfUE9JTlRFUiwKKyAgICBBSU5QVVRfU09VUkNFX1RSQUNLQkFMTCA9IDB4MDAwMTAwMDAgfCBBSU5QVVRfU09VUkNFX0NMQVNTX05BVklHQVRJT04sCisgICAgQUlOUFVUX1NPVVJDRV9UT1VDSFBBRCA9IDB4MDAxMDAwMDAgfCBBSU5QVVRfU09VUkNFX0NMQVNTX1BPU0lUSU9OLAorICAgIEFJTlBVVF9TT1VSQ0VfSk9ZU1RJQ0sgPSAweDAxMDAwMDAwIHwgQUlOUFVUX1NPVVJDRV9DTEFTU19KT1lTVElDSywKKworICAgIEFJTlBVVF9TT1VSQ0VfQU5ZID0gMHhmZmZmZmYwMCwKK307CisKKy8qCisgKiBLZXlib2FyZCB0eXBlcy4KKyAqCisgKiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBvbiBhbmRyb2lkLnZpZXcuSW5wdXREZXZpY2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqLworZW51bSB7CisgICAgQUlOUFVUX0tFWUJPQVJEX1RZUEVfTk9ORSA9IDAsCisgICAgQUlOUFVUX0tFWUJPQVJEX1RZUEVfTk9OX0FMUEhBQkVUSUMgPSAxLAorICAgIEFJTlBVVF9LRVlCT0FSRF9UWVBFX0FMUEhBQkVUSUMgPSAyLAorfTsKKworLyoKKyAqIENvbnN0YW50cyB1c2VkIHRvIHJldHJpZXZlIGluZm9ybWF0aW9uIGFib3V0IHRoZSByYW5nZSBvZiBtb3Rpb24gZm9yIGEgcGFydGljdWxhcgorICogY29vcmRpbmF0ZSBvZiBhIG1vdGlvbiBldmVudC4KKyAqCisgKiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBvbiBhbmRyb2lkLnZpZXcuSW5wdXREZXZpY2UgZm9yIG1vcmUgZGV0YWlscyBhYm91dCBpbnB1dCBzb3VyY2VzCisgKiBhbmQgdGhlaXIgY29ycmVjdCBpbnRlcnByZXRhdGlvbi4KKyAqCisgKiBERVBSRUNBVElPTiBOT1RJQ0U6IFRoZXNlIGNvbnN0YW50cyBhcmUgZGVwcmVjYXRlZC4gIFVzZSBBTU9USU9OX0VWRU5UX0FYSVNfKiBjb25zdGFudHMgaW5zdGVhZC4KKyAqLworZW51bSB7CisgICAgQUlOUFVUX01PVElPTl9SQU5HRV9YID0gQU1PVElPTl9FVkVOVF9BWElTX1gsCisgICAgQUlOUFVUX01PVElPTl9SQU5HRV9ZID0gQU1PVElPTl9FVkVOVF9BWElTX1ksCisgICAgQUlOUFVUX01PVElPTl9SQU5HRV9QUkVTU1VSRSA9IEFNT1RJT05fRVZFTlRfQVhJU19QUkVTU1VSRSwKKyAgICBBSU5QVVRfTU9USU9OX1JBTkdFX1NJWkUgPSBBTU9USU9OX0VWRU5UX0FYSVNfU0laRSwKKyAgICBBSU5QVVRfTU9USU9OX1JBTkdFX1RPVUNIX01BSk9SID0gQU1PVElPTl9FVkVOVF9BWElTX1RPVUNIX01BSk9SLAorICAgIEFJTlBVVF9NT1RJT05fUkFOR0VfVE9VQ0hfTUlOT1IgPSBBTU9USU9OX0VWRU5UX0FYSVNfVE9VQ0hfTUlOT1IsCisgICAgQUlOUFVUX01PVElPTl9SQU5HRV9UT09MX01BSk9SID0gQU1PVElPTl9FVkVOVF9BWElTX1RPT0xfTUFKT1IsCisgICAgQUlOUFVUX01PVElPTl9SQU5HRV9UT09MX01JTk9SID0gQU1PVElPTl9FVkVOVF9BWElTX1RPT0xfTUlOT1IsCisgICAgQUlOUFVUX01PVElPTl9SQU5HRV9PUklFTlRBVElPTiA9IEFNT1RJT05fRVZFTlRfQVhJU19PUklFTlRBVElPTiwKK30gX19hdHRyaWJ1dGVfXyAoKGRlcHJlY2F0ZWQpKTsKKworCisvKgorICogSW5wdXQgZXZlbnQgYWNjZXNzb3JzLgorICoKKyAqIE5vdGUgdGhhdCBtb3N0IGZ1bmN0aW9ucyBjYW4gb25seSBiZSB1c2VkIG9uIGlucHV0IGV2ZW50cyB0aGF0IGFyZSBvZiBhIGdpdmVuIHR5cGUuCisgKiBDYWxsaW5nIHRoZXNlIGZ1bmN0aW9ucyBvbiBpbnB1dCBldmVudHMgb2Ygb3RoZXIgdHlwZXMgd2lsbCB5aWVsZCB1bmRlZmluZWQgYmVoYXZpb3IuCisgKi8KKworLyoqKiBBY2Nlc3NvcnMgZm9yIGFsbCBpbnB1dCBldmVudHMuICoqKi8KKworLyogR2V0IHRoZSBpbnB1dCBldmVudCB0eXBlLiAqLworaW50MzJfdCBBSW5wdXRFdmVudF9nZXRUeXBlKGNvbnN0IEFJbnB1dEV2ZW50KiBldmVudCk7CisKKy8qIEdldCB0aGUgaWQgZm9yIHRoZSBkZXZpY2UgdGhhdCBhbiBpbnB1dCBldmVudCBjYW1lIGZyb20uCisgKgorICogSW5wdXQgZXZlbnRzIGNhbiBiZSBnZW5lcmF0ZWQgYnkgbXVsdGlwbGUgZGlmZmVyZW50IGlucHV0IGRldmljZXMuCisgKiBVc2UgdGhlIGlucHV0IGRldmljZSBpZCB0byBvYnRhaW4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIGlucHV0CisgKiBkZXZpY2UgdGhhdCB3YXMgcmVzcG9uc2libGUgZm9yIGdlbmVyYXRpbmcgYSBwYXJ0aWN1bGFyIGV2ZW50LgorICoKKyAqIEFuIGlucHV0IGRldmljZSBpZCBvZiAwIGluZGljYXRlcyB0aGF0IHRoZSBldmVudCBkaWRuJ3QgY29tZSBmcm9tIGEgcGh5c2ljYWwgZGV2aWNlOworICogb3RoZXIgbnVtYmVycyBhcmUgYXJiaXRyYXJ5IGFuZCB5b3Ugc2hvdWxkbid0IGRlcGVuZCBvbiB0aGUgdmFsdWVzLgorICogVXNlIHRoZSBwcm92aWRlZCBpbnB1dCBkZXZpY2UgcXVlcnkgQVBJIHRvIG9idGFpbiBpbmZvcm1hdGlvbiBhYm91dCBpbnB1dCBkZXZpY2VzLgorICovCitpbnQzMl90IEFJbnB1dEV2ZW50X2dldERldmljZUlkKGNvbnN0IEFJbnB1dEV2ZW50KiBldmVudCk7CisKKy8qIEdldCB0aGUgaW5wdXQgZXZlbnQgc291cmNlLiAqLworaW50MzJfdCBBSW5wdXRFdmVudF9nZXRTb3VyY2UoY29uc3QgQUlucHV0RXZlbnQqIGV2ZW50KTsKKworLyoqKiBBY2Nlc3NvcnMgZm9yIGtleSBldmVudHMgb25seS4gKioqLworCisvKiBHZXQgdGhlIGtleSBldmVudCBhY3Rpb24uICovCitpbnQzMl90IEFLZXlFdmVudF9nZXRBY3Rpb24oY29uc3QgQUlucHV0RXZlbnQqIGtleV9ldmVudCk7CisKKy8qIEdldCB0aGUga2V5IGV2ZW50IGZsYWdzLiAqLworaW50MzJfdCBBS2V5RXZlbnRfZ2V0RmxhZ3MoY29uc3QgQUlucHV0RXZlbnQqIGtleV9ldmVudCk7CisKKy8qIEdldCB0aGUga2V5IGNvZGUgb2YgdGhlIGtleSBldmVudC4KKyAqIFRoaXMgaXMgdGhlIHBoeXNpY2FsIGtleSB0aGF0IHdhcyBwcmVzc2VkLCBub3QgdGhlIFVuaWNvZGUgY2hhcmFjdGVyLiAqLworaW50MzJfdCBBS2V5RXZlbnRfZ2V0S2V5Q29kZShjb25zdCBBSW5wdXRFdmVudCoga2V5X2V2ZW50KTsKKworLyogR2V0IHRoZSBoYXJkd2FyZSBrZXkgaWQgb2YgdGhpcyBrZXkgZXZlbnQuCisgKiBUaGVzZSB2YWx1ZXMgYXJlIG5vdCByZWxpYWJsZSBhbmQgdmFyeSBmcm9tIGRldmljZSB0byBkZXZpY2UuICovCitpbnQzMl90IEFLZXlFdmVudF9nZXRTY2FuQ29kZShjb25zdCBBSW5wdXRFdmVudCoga2V5X2V2ZW50KTsKKworLyogR2V0IHRoZSBtZXRhIGtleSBzdGF0ZS4gKi8KK2ludDMyX3QgQUtleUV2ZW50X2dldE1ldGFTdGF0ZShjb25zdCBBSW5wdXRFdmVudCoga2V5X2V2ZW50KTsKKworLyogR2V0IHRoZSByZXBlYXQgY291bnQgb2YgdGhlIGV2ZW50LgorICogRm9yIGJvdGgga2V5IHVwIGFuIGtleSBkb3duIGV2ZW50cywgdGhpcyBpcyB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoZSBrZXkgaGFzCisgKiByZXBlYXRlZCB3aXRoIHRoZSBmaXJzdCBkb3duIHN0YXJ0aW5nIGF0IDAgYW5kIGNvdW50aW5nIHVwIGZyb20gdGhlcmUuICBGb3IKKyAqIG11bHRpcGxlIGtleSBldmVudHMsIHRoaXMgaXMgdGhlIG51bWJlciBvZiBkb3duL3VwIHBhaXJzIHRoYXQgaGF2ZSBvY2N1cnJlZC4gKi8KK2ludDMyX3QgQUtleUV2ZW50X2dldFJlcGVhdENvdW50KGNvbnN0IEFJbnB1dEV2ZW50KiBrZXlfZXZlbnQpOworCisvKiBHZXQgdGhlIHRpbWUgb2YgdGhlIG1vc3QgcmVjZW50IGtleSBkb3duIGV2ZW50LCBpbiB0aGUKKyAqIGphdmEubGFuZy5TeXN0ZW0ubmFub1RpbWUoKSB0aW1lIGJhc2UuICBJZiB0aGlzIGlzIGEgZG93biBldmVudCwKKyAqIHRoaXMgd2lsbCBiZSB0aGUgc2FtZSBhcyBldmVudFRpbWUuCisgKiBOb3RlIHRoYXQgd2hlbiBjaG9yZGluZyBrZXlzLCB0aGlzIHZhbHVlIGlzIHRoZSBkb3duIHRpbWUgb2YgdGhlIG1vc3QgcmVjZW50bHkKKyAqIHByZXNzZWQga2V5LCB3aGljaCBtYXkgbm90IGJlIHRoZSBzYW1lIHBoeXNpY2FsIGtleSBvZiB0aGlzIGV2ZW50LiAqLworaW50NjRfdCBBS2V5RXZlbnRfZ2V0RG93blRpbWUoY29uc3QgQUlucHV0RXZlbnQqIGtleV9ldmVudCk7CisKKy8qIEdldCB0aGUgdGltZSB0aGlzIGV2ZW50IG9jY3VycmVkLCBpbiB0aGUKKyAqIGphdmEubGFuZy5TeXN0ZW0ubmFub1RpbWUoKSB0aW1lIGJhc2UuICovCitpbnQ2NF90IEFLZXlFdmVudF9nZXRFdmVudFRpbWUoY29uc3QgQUlucHV0RXZlbnQqIGtleV9ldmVudCk7CisKKy8qKiogQWNjZXNzb3JzIGZvciBtb3Rpb24gZXZlbnRzIG9ubHkuICoqKi8KKworLyogR2V0IHRoZSBjb21iaW5lZCBtb3Rpb24gZXZlbnQgYWN0aW9uIGNvZGUgYW5kIHBvaW50ZXIgaW5kZXguICovCitpbnQzMl90IEFNb3Rpb25FdmVudF9nZXRBY3Rpb24oY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCk7CisKKy8qIEdldCB0aGUgbW90aW9uIGV2ZW50IGZsYWdzLiAqLworaW50MzJfdCBBTW90aW9uRXZlbnRfZ2V0RmxhZ3MoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCk7CisKKy8qIEdldCB0aGUgc3RhdGUgb2YgYW55IG1ldGEgLyBtb2RpZmllciBrZXlzIHRoYXQgd2VyZSBpbiBlZmZlY3Qgd2hlbiB0aGUKKyAqIGV2ZW50IHdhcyBnZW5lcmF0ZWQuICovCitpbnQzMl90IEFNb3Rpb25FdmVudF9nZXRNZXRhU3RhdGUoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCk7CisKKy8qIEdldCBhIGJpdGZpZWxkIGluZGljYXRpbmcgd2hpY2ggZWRnZXMsIGlmIGFueSwgd2VyZSB0b3VjaGVkIGJ5IHRoaXMgbW90aW9uIGV2ZW50LgorICogRm9yIHRvdWNoIGV2ZW50cywgY2xpZW50cyBjYW4gdXNlIHRoaXMgdG8gZGV0ZXJtaW5lIGlmIHRoZSB1c2VyJ3MgZmluZ2VyIHdhcworICogdG91Y2hpbmcgdGhlIGVkZ2Ugb2YgdGhlIGRpc3BsYXkuICovCitpbnQzMl90IEFNb3Rpb25FdmVudF9nZXRFZGdlRmxhZ3MoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCk7CisKKy8qIEdldCB0aGUgdGltZSB3aGVuIHRoZSB1c2VyIG9yaWdpbmFsbHkgcHJlc3NlZCBkb3duIHRvIHN0YXJ0IGEgc3RyZWFtIG9mCisgKiBwb3NpdGlvbiBldmVudHMsIGluIHRoZSBqYXZhLmxhbmcuU3lzdGVtLm5hbm9UaW1lKCkgdGltZSBiYXNlLiAqLworaW50NjRfdCBBTW90aW9uRXZlbnRfZ2V0RG93blRpbWUoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCk7CisKKy8qIEdldCB0aGUgdGltZSB3aGVuIHRoaXMgc3BlY2lmaWMgZXZlbnQgd2FzIGdlbmVyYXRlZCwKKyAqIGluIHRoZSBqYXZhLmxhbmcuU3lzdGVtLm5hbm9UaW1lKCkgdGltZSBiYXNlLiAqLworaW50NjRfdCBBTW90aW9uRXZlbnRfZ2V0RXZlbnRUaW1lKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQpOworCisvKiBHZXQgdGhlIFggY29vcmRpbmF0ZSBvZmZzZXQuCisgKiBGb3IgdG91Y2ggZXZlbnRzIG9uIHRoZSBzY3JlZW4sIHRoaXMgaXMgdGhlIGRlbHRhIHRoYXQgd2FzIGFkZGVkIHRvIHRoZSByYXcKKyAqIHNjcmVlbiBjb29yZGluYXRlcyB0byBhZGp1c3QgZm9yIHRoZSBhYnNvbHV0ZSBwb3NpdGlvbiBvZiB0aGUgY29udGFpbmluZyB3aW5kb3dzCisgKiBhbmQgdmlld3MuICovCitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0WE9mZnNldChjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50KSBfX05ES19GUEFCSV9fOworCisvKiBHZXQgdGhlIHByZWNpc2lvbiBvZiB0aGUgWSBjb29yZGluYXRlcyBiZWluZyByZXBvcnRlZC4KKyAqIEZvciB0b3VjaCBldmVudHMgb24gdGhlIHNjcmVlbiwgdGhpcyBpcyB0aGUgZGVsdGEgdGhhdCB3YXMgYWRkZWQgdG8gdGhlIHJhdworICogc2NyZWVuIGNvb3JkaW5hdGVzIHRvIGFkanVzdCBmb3IgdGhlIGFic29sdXRlIHBvc2l0aW9uIG9mIHRoZSBjb250YWluaW5nIHdpbmRvd3MKKyAqIGFuZCB2aWV3cy4gKi8KK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRZT2Zmc2V0KGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQpIF9fTkRLX0ZQQUJJX187CisKKy8qIEdldCB0aGUgcHJlY2lzaW9uIG9mIHRoZSBYIGNvb3JkaW5hdGVzIGJlaW5nIHJlcG9ydGVkLgorICogWW91IGNhbiBtdWx0aXBseSB0aGlzIG51bWJlciB3aXRoIGFuIFggY29vcmRpbmF0ZSBzYW1wbGUgdG8gZmluZCB0aGUKKyAqIGFjdHVhbCBoYXJkd2FyZSB2YWx1ZSBvZiB0aGUgWCBjb29yZGluYXRlLiAqLworZmxvYXQgQU1vdGlvbkV2ZW50X2dldFhQcmVjaXNpb24oY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCkgX19OREtfRlBBQklfXzsKKworLyogR2V0IHRoZSBwcmVjaXNpb24gb2YgdGhlIFkgY29vcmRpbmF0ZXMgYmVpbmcgcmVwb3J0ZWQuCisgKiBZb3UgY2FuIG11bHRpcGx5IHRoaXMgbnVtYmVyIHdpdGggYSBZIGNvb3JkaW5hdGUgc2FtcGxlIHRvIGZpbmQgdGhlCisgKiBhY3R1YWwgaGFyZHdhcmUgdmFsdWUgb2YgdGhlIFkgY29vcmRpbmF0ZS4gKi8KK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRZUHJlY2lzaW9uKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQpIF9fTkRLX0ZQQUJJX187CisKKy8qIEdldCB0aGUgbnVtYmVyIG9mIHBvaW50ZXJzIG9mIGRhdGEgY29udGFpbmVkIGluIHRoaXMgZXZlbnQuCisgKiBBbHdheXMgPj0gMS4gKi8KK3NpemVfdCBBTW90aW9uRXZlbnRfZ2V0UG9pbnRlckNvdW50KGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQpOworCisvKiBHZXQgdGhlIHBvaW50ZXIgaWRlbnRpZmllciBhc3NvY2lhdGVkIHdpdGggYSBwYXJ0aWN1bGFyIHBvaW50ZXIKKyAqIGRhdGEgaW5kZXggaXMgdGhpcyBldmVudC4gIFRoZSBpZGVudGlmaWVyIHRlbGxzIHlvdSB0aGUgYWN0dWFsIHBvaW50ZXIKKyAqIG51bWJlciBhc3NvY2lhdGVkIHdpdGggdGhlIGRhdGEsIGFjY291bnRpbmcgZm9yIGluZGl2aWR1YWwgcG9pbnRlcnMKKyAqIGdvaW5nIHVwIGFuZCBkb3duIHNpbmNlIHRoZSBzdGFydCBvZiB0aGUgY3VycmVudCBnZXN0dXJlLiAqLworaW50MzJfdCBBTW90aW9uRXZlbnRfZ2V0UG9pbnRlcklkKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4KTsKKworLyogR2V0IHRoZSBvcmlnaW5hbCByYXcgWCBjb29yZGluYXRlIG9mIHRoaXMgZXZlbnQuCisgKiBGb3IgdG91Y2ggZXZlbnRzIG9uIHRoZSBzY3JlZW4sIHRoaXMgaXMgdGhlIG9yaWdpbmFsIGxvY2F0aW9uIG9mIHRoZSBldmVudAorICogb24gdGhlIHNjcmVlbiwgYmVmb3JlIGl0IGhhZCBiZWVuIGFkanVzdGVkIGZvciB0aGUgY29udGFpbmluZyB3aW5kb3cKKyAqIGFuZCB2aWV3cy4gKi8KK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRSYXdYKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4KSBfX05ES19GUEFCSV9fOworCisvKiBHZXQgdGhlIG9yaWdpbmFsIHJhdyBYIGNvb3JkaW5hdGUgb2YgdGhpcyBldmVudC4KKyAqIEZvciB0b3VjaCBldmVudHMgb24gdGhlIHNjcmVlbiwgdGhpcyBpcyB0aGUgb3JpZ2luYWwgbG9jYXRpb24gb2YgdGhlIGV2ZW50CisgKiBvbiB0aGUgc2NyZWVuLCBiZWZvcmUgaXQgaGFkIGJlZW4gYWRqdXN0ZWQgZm9yIHRoZSBjb250YWluaW5nIHdpbmRvdworICogYW5kIHZpZXdzLiAqLworZmxvYXQgQU1vdGlvbkV2ZW50X2dldFJhd1koY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgpIF9fTkRLX0ZQQUJJX187CisKKy8qIEdldCB0aGUgY3VycmVudCBYIGNvb3JkaW5hdGUgb2YgdGhpcyBldmVudCBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXguCisgKiBXaG9sZSBudW1iZXJzIGFyZSBwaXhlbHM7IHRoZSB2YWx1ZSBtYXkgaGF2ZSBhIGZyYWN0aW9uIGZvciBpbnB1dCBkZXZpY2VzCisgKiB0aGF0IGFyZSBzdWItcGl4ZWwgcHJlY2lzZS4gKi8KK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRYKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4KSBfX05ES19GUEFCSV9fOworCisvKiBHZXQgdGhlIGN1cnJlbnQgWSBjb29yZGluYXRlIG9mIHRoaXMgZXZlbnQgZm9yIHRoZSBnaXZlbiBwb2ludGVyIGluZGV4LgorICogV2hvbGUgbnVtYmVycyBhcmUgcGl4ZWxzOyB0aGUgdmFsdWUgbWF5IGhhdmUgYSBmcmFjdGlvbiBmb3IgaW5wdXQgZGV2aWNlcworICogdGhhdCBhcmUgc3ViLXBpeGVsIHByZWNpc2UuICovCitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0WShjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LCBzaXplX3QgcG9pbnRlcl9pbmRleCkgX19OREtfRlBBQklfXzsKKworLyogR2V0IHRoZSBjdXJyZW50IHByZXNzdXJlIG9mIHRoaXMgZXZlbnQgZm9yIHRoZSBnaXZlbiBwb2ludGVyIGluZGV4LgorICogVGhlIHByZXNzdXJlIGdlbmVyYWxseSByYW5nZXMgZnJvbSAwIChubyBwcmVzc3VyZSBhdCBhbGwpIHRvIDEgKG5vcm1hbCBwcmVzc3VyZSksCisgKiBhbHRob3VnaCB2YWx1ZXMgaGlnaGVyIHRoYW4gMSBtYXkgYmUgZ2VuZXJhdGVkIGRlcGVuZGluZyBvbiB0aGUgY2FsaWJyYXRpb24gb2YKKyAqIHRoZSBpbnB1dCBkZXZpY2UuICovCitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0UHJlc3N1cmUoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgpIF9fTkRLX0ZQQUJJX187CisKKy8qIEdldCB0aGUgY3VycmVudCBzY2FsZWQgdmFsdWUgb2YgdGhlIGFwcHJveGltYXRlIHNpemUgZm9yIHRoZSBnaXZlbiBwb2ludGVyIGluZGV4LgorICogVGhpcyByZXByZXNlbnRzIHNvbWUgYXBwcm94aW1hdGlvbiBvZiB0aGUgYXJlYSBvZiB0aGUgc2NyZWVuIGJlaW5nCisgKiBwcmVzc2VkOyB0aGUgYWN0dWFsIHZhbHVlIGluIHBpeGVscyBjb3JyZXNwb25kaW5nIHRvIHRoZQorICogdG91Y2ggaXMgbm9ybWFsaXplZCB3aXRoIHRoZSBkZXZpY2Ugc3BlY2lmaWMgcmFuZ2Ugb2YgdmFsdWVzCisgKiBhbmQgc2NhbGVkIHRvIGEgdmFsdWUgYmV0d2VlbiAwIGFuZCAxLiAgVGhlIHZhbHVlIG9mIHNpemUgY2FuIGJlIHVzZWQgdG8KKyAqIGRldGVybWluZSBmYXQgdG91Y2ggZXZlbnRzLiAqLworZmxvYXQgQU1vdGlvbkV2ZW50X2dldFNpemUoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgpIF9fTkRLX0ZQQUJJX187CisKKy8qIEdldCB0aGUgY3VycmVudCBsZW5ndGggb2YgdGhlIG1ham9yIGF4aXMgb2YgYW4gZWxsaXBzZSB0aGF0IGRlc2NyaWJlcyB0aGUgdG91Y2ggYXJlYQorICogYXQgdGhlIHBvaW50IG9mIGNvbnRhY3QgZm9yIHRoZSBnaXZlbiBwb2ludGVyIGluZGV4LiAqLworZmxvYXQgQU1vdGlvbkV2ZW50X2dldFRvdWNoTWFqb3IoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgpIF9fTkRLX0ZQQUJJX187CisKKy8qIEdldCB0aGUgY3VycmVudCBsZW5ndGggb2YgdGhlIG1pbm9yIGF4aXMgb2YgYW4gZWxsaXBzZSB0aGF0IGRlc2NyaWJlcyB0aGUgdG91Y2ggYXJlYQorICogYXQgdGhlIHBvaW50IG9mIGNvbnRhY3QgZm9yIHRoZSBnaXZlbiBwb2ludGVyIGluZGV4LiAqLworZmxvYXQgQU1vdGlvbkV2ZW50X2dldFRvdWNoTWlub3IoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgpIF9fTkRLX0ZQQUJJX187CisKKy8qIEdldCB0aGUgY3VycmVudCBsZW5ndGggb2YgdGhlIG1ham9yIGF4aXMgb2YgYW4gZWxsaXBzZSB0aGF0IGRlc2NyaWJlcyB0aGUgc2l6ZQorICogb2YgdGhlIGFwcHJvYWNoaW5nIHRvb2wgZm9yIHRoZSBnaXZlbiBwb2ludGVyIGluZGV4LgorICogVGhlIHRvb2wgYXJlYSByZXByZXNlbnRzIHRoZSBlc3RpbWF0ZWQgc2l6ZSBvZiB0aGUgZmluZ2VyIG9yIHBlbiB0aGF0IGlzCisgKiB0b3VjaGluZyB0aGUgZGV2aWNlIGluZGVwZW5kZW50IG9mIGl0cyBhY3R1YWwgdG91Y2ggYXJlYSBhdCB0aGUgcG9pbnQgb2YgY29udGFjdC4gKi8KK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRUb29sTWFqb3IoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgpIF9fTkRLX0ZQQUJJX187CisKKy8qIEdldCB0aGUgY3VycmVudCBsZW5ndGggb2YgdGhlIG1pbm9yIGF4aXMgb2YgYW4gZWxsaXBzZSB0aGF0IGRlc2NyaWJlcyB0aGUgc2l6ZQorICogb2YgdGhlIGFwcHJvYWNoaW5nIHRvb2wgZm9yIHRoZSBnaXZlbiBwb2ludGVyIGluZGV4LgorICogVGhlIHRvb2wgYXJlYSByZXByZXNlbnRzIHRoZSBlc3RpbWF0ZWQgc2l6ZSBvZiB0aGUgZmluZ2VyIG9yIHBlbiB0aGF0IGlzCisgKiB0b3VjaGluZyB0aGUgZGV2aWNlIGluZGVwZW5kZW50IG9mIGl0cyBhY3R1YWwgdG91Y2ggYXJlYSBhdCB0aGUgcG9pbnQgb2YgY29udGFjdC4gKi8KK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRUb29sTWlub3IoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgpIF9fTkRLX0ZQQUJJX187CisKKy8qIEdldCB0aGUgY3VycmVudCBvcmllbnRhdGlvbiBvZiB0aGUgdG91Y2ggYXJlYSBhbmQgdG9vbCBhcmVhIGluIHJhZGlhbnMgY2xvY2t3aXNlIGZyb20KKyAqIHZlcnRpY2FsIGZvciB0aGUgZ2l2ZW4gcG9pbnRlciBpbmRleC4KKyAqIEFuIGFuZ2xlIG9mIDAgZGVncmVlcyBpbmRpY2F0ZXMgdGhhdCB0aGUgbWFqb3IgYXhpcyBvZiBjb250YWN0IGlzIG9yaWVudGVkCisgKiB1cHdhcmRzLCBpcyBwZXJmZWN0bHkgY2lyY3VsYXIgb3IgaXMgb2YgdW5rbm93biBvcmllbnRhdGlvbi4gIEEgcG9zaXRpdmUgYW5nbGUKKyAqIGluZGljYXRlcyB0aGF0IHRoZSBtYWpvciBheGlzIG9mIGNvbnRhY3QgaXMgb3JpZW50ZWQgdG8gdGhlIHJpZ2h0LiAgQSBuZWdhdGl2ZSBhbmdsZQorICogaW5kaWNhdGVzIHRoYXQgdGhlIG1ham9yIGF4aXMgb2YgY29udGFjdCBpcyBvcmllbnRlZCB0byB0aGUgbGVmdC4KKyAqIFRoZSBmdWxsIHJhbmdlIGlzIGZyb20gLVBJLzIgcmFkaWFucyAoZmluZ2VyIHBvaW50aW5nIGZ1bGx5IGxlZnQpIHRvIFBJLzIgcmFkaWFucworICogKGZpbmdlciBwb2ludGluZyBmdWxseSByaWdodCkuICovCitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0T3JpZW50YXRpb24oY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgpIF9fTkRLX0ZQQUJJX187CisKKy8qIEdldCB0aGUgdmFsdWUgb2YgdGhlIHJlcXVlc3QgYXhpcyBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXguICovCitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0QXhpc1ZhbHVlKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsCisgICAgICAgIGludDMyX3QgYXhpcywgc2l6ZV90IHBvaW50ZXJfaW5kZXgpIF9fTkRLX0ZQQUJJX187CisKKy8qIEdldCB0aGUgbnVtYmVyIG9mIGhpc3RvcmljYWwgcG9pbnRzIGluIHRoaXMgZXZlbnQuICBUaGVzZSBhcmUgbW92ZW1lbnRzIHRoYXQKKyAqIGhhdmUgb2NjdXJyZWQgYmV0d2VlbiB0aGlzIGV2ZW50IGFuZCB0aGUgcHJldmlvdXMgZXZlbnQuICBUaGlzIG9ubHkgYXBwbGllcworICogdG8gQU1PVElPTl9FVkVOVF9BQ1RJT05fTU9WRSBldmVudHMgLS0gYWxsIG90aGVyIGFjdGlvbnMgd2lsbCBoYXZlIGEgc2l6ZSBvZiAwLgorICogSGlzdG9yaWNhbCBzYW1wbGVzIGFyZSBpbmRleGVkIGZyb20gb2xkZXN0IHRvIG5ld2VzdC4gKi8KK3NpemVfdCBBTW90aW9uRXZlbnRfZ2V0SGlzdG9yeVNpemUoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCk7CisKKy8qIEdldCB0aGUgdGltZSB0aGF0IGEgaGlzdG9yaWNhbCBtb3ZlbWVudCBvY2N1cnJlZCBiZXR3ZWVuIHRoaXMgZXZlbnQgYW5kCisgKiB0aGUgcHJldmlvdXMgZXZlbnQsIGluIHRoZSBqYXZhLmxhbmcuU3lzdGVtLm5hbm9UaW1lKCkgdGltZSBiYXNlLiAqLworaW50NjRfdCBBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbEV2ZW50VGltZShjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LAorICAgICAgICBzaXplX3QgaGlzdG9yeV9pbmRleCk7CisKKy8qIEdldCB0aGUgaGlzdG9yaWNhbCByYXcgWCBjb29yZGluYXRlIG9mIHRoaXMgZXZlbnQgZm9yIHRoZSBnaXZlbiBwb2ludGVyIGluZGV4IHRoYXQKKyAqIG9jY3VycmVkIGJldHdlZW4gdGhpcyBldmVudCBhbmQgdGhlIHByZXZpb3VzIG1vdGlvbiBldmVudC4KKyAqIEZvciB0b3VjaCBldmVudHMgb24gdGhlIHNjcmVlbiwgdGhpcyBpcyB0aGUgb3JpZ2luYWwgbG9jYXRpb24gb2YgdGhlIGV2ZW50CisgKiBvbiB0aGUgc2NyZWVuLCBiZWZvcmUgaXQgaGFkIGJlZW4gYWRqdXN0ZWQgZm9yIHRoZSBjb250YWluaW5nIHdpbmRvdworICogYW5kIHZpZXdzLgorICogV2hvbGUgbnVtYmVycyBhcmUgcGl4ZWxzOyB0aGUgdmFsdWUgbWF5IGhhdmUgYSBmcmFjdGlvbiBmb3IgaW5wdXQgZGV2aWNlcworICogdGhhdCBhcmUgc3ViLXBpeGVsIHByZWNpc2UuICovCitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFJhd1goY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgsCisgICAgICAgIHNpemVfdCBoaXN0b3J5X2luZGV4KSBfX05ES19GUEFCSV9fOworCisvKiBHZXQgdGhlIGhpc3RvcmljYWwgcmF3IFkgY29vcmRpbmF0ZSBvZiB0aGlzIGV2ZW50IGZvciB0aGUgZ2l2ZW4gcG9pbnRlciBpbmRleCB0aGF0CisgKiBvY2N1cnJlZCBiZXR3ZWVuIHRoaXMgZXZlbnQgYW5kIHRoZSBwcmV2aW91cyBtb3Rpb24gZXZlbnQuCisgKiBGb3IgdG91Y2ggZXZlbnRzIG9uIHRoZSBzY3JlZW4sIHRoaXMgaXMgdGhlIG9yaWdpbmFsIGxvY2F0aW9uIG9mIHRoZSBldmVudAorICogb24gdGhlIHNjcmVlbiwgYmVmb3JlIGl0IGhhZCBiZWVuIGFkanVzdGVkIGZvciB0aGUgY29udGFpbmluZyB3aW5kb3cKKyAqIGFuZCB2aWV3cy4KKyAqIFdob2xlIG51bWJlcnMgYXJlIHBpeGVsczsgdGhlIHZhbHVlIG1heSBoYXZlIGEgZnJhY3Rpb24gZm9yIGlucHV0IGRldmljZXMKKyAqIHRoYXQgYXJlIHN1Yi1waXhlbCBwcmVjaXNlLiAqLworZmxvYXQgQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxSYXdZKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4LAorICAgICAgICBzaXplX3QgaGlzdG9yeV9pbmRleCkgX19OREtfRlBBQklfXzsKKworLyogR2V0IHRoZSBoaXN0b3JpY2FsIFggY29vcmRpbmF0ZSBvZiB0aGlzIGV2ZW50IGZvciB0aGUgZ2l2ZW4gcG9pbnRlciBpbmRleCB0aGF0CisgKiBvY2N1cnJlZCBiZXR3ZWVuIHRoaXMgZXZlbnQgYW5kIHRoZSBwcmV2aW91cyBtb3Rpb24gZXZlbnQuCisgKiBXaG9sZSBudW1iZXJzIGFyZSBwaXhlbHM7IHRoZSB2YWx1ZSBtYXkgaGF2ZSBhIGZyYWN0aW9uIGZvciBpbnB1dCBkZXZpY2VzCisgKiB0aGF0IGFyZSBzdWItcGl4ZWwgcHJlY2lzZS4gKi8KK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsWChjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LCBzaXplX3QgcG9pbnRlcl9pbmRleCwKKyAgICAgICAgc2l6ZV90IGhpc3RvcnlfaW5kZXgpIF9fTkRLX0ZQQUJJX187CisKKy8qIEdldCB0aGUgaGlzdG9yaWNhbCBZIGNvb3JkaW5hdGUgb2YgdGhpcyBldmVudCBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXggdGhhdAorICogb2NjdXJyZWQgYmV0d2VlbiB0aGlzIGV2ZW50IGFuZCB0aGUgcHJldmlvdXMgbW90aW9uIGV2ZW50LgorICogV2hvbGUgbnVtYmVycyBhcmUgcGl4ZWxzOyB0aGUgdmFsdWUgbWF5IGhhdmUgYSBmcmFjdGlvbiBmb3IgaW5wdXQgZGV2aWNlcworICogdGhhdCBhcmUgc3ViLXBpeGVsIHByZWNpc2UuICovCitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFkoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgsCisgICAgICAgIHNpemVfdCBoaXN0b3J5X2luZGV4KSBfX05ES19GUEFCSV9fOworCisvKiBHZXQgdGhlIGhpc3RvcmljYWwgcHJlc3N1cmUgb2YgdGhpcyBldmVudCBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXggdGhhdAorICogb2NjdXJyZWQgYmV0d2VlbiB0aGlzIGV2ZW50IGFuZCB0aGUgcHJldmlvdXMgbW90aW9uIGV2ZW50LgorICogVGhlIHByZXNzdXJlIGdlbmVyYWxseSByYW5nZXMgZnJvbSAwIChubyBwcmVzc3VyZSBhdCBhbGwpIHRvIDEgKG5vcm1hbCBwcmVzc3VyZSksCisgKiBhbHRob3VnaCB2YWx1ZXMgaGlnaGVyIHRoYW4gMSBtYXkgYmUgZ2VuZXJhdGVkIGRlcGVuZGluZyBvbiB0aGUgY2FsaWJyYXRpb24gb2YKKyAqIHRoZSBpbnB1dCBkZXZpY2UuICovCitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFByZXNzdXJlKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4LAorICAgICAgICBzaXplX3QgaGlzdG9yeV9pbmRleCkgX19OREtfRlBBQklfXzsKKworLyogR2V0IHRoZSBjdXJyZW50IHNjYWxlZCB2YWx1ZSBvZiB0aGUgYXBwcm94aW1hdGUgc2l6ZSBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXggdGhhdAorICogb2NjdXJyZWQgYmV0d2VlbiB0aGlzIGV2ZW50IGFuZCB0aGUgcHJldmlvdXMgbW90aW9uIGV2ZW50LgorICogVGhpcyByZXByZXNlbnRzIHNvbWUgYXBwcm94aW1hdGlvbiBvZiB0aGUgYXJlYSBvZiB0aGUgc2NyZWVuIGJlaW5nCisgKiBwcmVzc2VkOyB0aGUgYWN0dWFsIHZhbHVlIGluIHBpeGVscyBjb3JyZXNwb25kaW5nIHRvIHRoZQorICogdG91Y2ggaXMgbm9ybWFsaXplZCB3aXRoIHRoZSBkZXZpY2Ugc3BlY2lmaWMgcmFuZ2Ugb2YgdmFsdWVzCisgKiBhbmQgc2NhbGVkIHRvIGEgdmFsdWUgYmV0d2VlbiAwIGFuZCAxLiAgVGhlIHZhbHVlIG9mIHNpemUgY2FuIGJlIHVzZWQgdG8KKyAqIGRldGVybWluZSBmYXQgdG91Y2ggZXZlbnRzLiAqLworZmxvYXQgQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxTaXplKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4LAorICAgICAgICBzaXplX3QgaGlzdG9yeV9pbmRleCkgX19OREtfRlBBQklfXzsKKworLyogR2V0IHRoZSBoaXN0b3JpY2FsIGxlbmd0aCBvZiB0aGUgbWFqb3IgYXhpcyBvZiBhbiBlbGxpcHNlIHRoYXQgZGVzY3JpYmVzIHRoZSB0b3VjaCBhcmVhCisgKiBhdCB0aGUgcG9pbnQgb2YgY29udGFjdCBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXggdGhhdAorICogb2NjdXJyZWQgYmV0d2VlbiB0aGlzIGV2ZW50IGFuZCB0aGUgcHJldmlvdXMgbW90aW9uIGV2ZW50LiAqLworZmxvYXQgQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxUb3VjaE1ham9yKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4LAorICAgICAgICBzaXplX3QgaGlzdG9yeV9pbmRleCkgX19OREtfRlBBQklfXzsKKworLyogR2V0IHRoZSBoaXN0b3JpY2FsIGxlbmd0aCBvZiB0aGUgbWlub3IgYXhpcyBvZiBhbiBlbGxpcHNlIHRoYXQgZGVzY3JpYmVzIHRoZSB0b3VjaCBhcmVhCisgKiBhdCB0aGUgcG9pbnQgb2YgY29udGFjdCBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXggdGhhdAorICogb2NjdXJyZWQgYmV0d2VlbiB0aGlzIGV2ZW50IGFuZCB0aGUgcHJldmlvdXMgbW90aW9uIGV2ZW50LiAqLworZmxvYXQgQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxUb3VjaE1pbm9yKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4LAorICAgICAgICBzaXplX3QgaGlzdG9yeV9pbmRleCkgX19OREtfRlBBQklfXzsKKworLyogR2V0IHRoZSBoaXN0b3JpY2FsIGxlbmd0aCBvZiB0aGUgbWFqb3IgYXhpcyBvZiBhbiBlbGxpcHNlIHRoYXQgZGVzY3JpYmVzIHRoZSBzaXplCisgKiBvZiB0aGUgYXBwcm9hY2hpbmcgdG9vbCBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXggdGhhdAorICogb2NjdXJyZWQgYmV0d2VlbiB0aGlzIGV2ZW50IGFuZCB0aGUgcHJldmlvdXMgbW90aW9uIGV2ZW50LgorICogVGhlIHRvb2wgYXJlYSByZXByZXNlbnRzIHRoZSBlc3RpbWF0ZWQgc2l6ZSBvZiB0aGUgZmluZ2VyIG9yIHBlbiB0aGF0IGlzCisgKiB0b3VjaGluZyB0aGUgZGV2aWNlIGluZGVwZW5kZW50IG9mIGl0cyBhY3R1YWwgdG91Y2ggYXJlYSBhdCB0aGUgcG9pbnQgb2YgY29udGFjdC4gKi8KK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsVG9vbE1ham9yKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4LAorICAgICAgICBzaXplX3QgaGlzdG9yeV9pbmRleCkgX19OREtfRlBBQklfXzsKKworLyogR2V0IHRoZSBoaXN0b3JpY2FsIGxlbmd0aCBvZiB0aGUgbWlub3IgYXhpcyBvZiBhbiBlbGxpcHNlIHRoYXQgZGVzY3JpYmVzIHRoZSBzaXplCisgKiBvZiB0aGUgYXBwcm9hY2hpbmcgdG9vbCBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXggdGhhdAorICogb2NjdXJyZWQgYmV0d2VlbiB0aGlzIGV2ZW50IGFuZCB0aGUgcHJldmlvdXMgbW90aW9uIGV2ZW50LgorICogVGhlIHRvb2wgYXJlYSByZXByZXNlbnRzIHRoZSBlc3RpbWF0ZWQgc2l6ZSBvZiB0aGUgZmluZ2VyIG9yIHBlbiB0aGF0IGlzCisgKiB0b3VjaGluZyB0aGUgZGV2aWNlIGluZGVwZW5kZW50IG9mIGl0cyBhY3R1YWwgdG91Y2ggYXJlYSBhdCB0aGUgcG9pbnQgb2YgY29udGFjdC4gKi8KK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsVG9vbE1pbm9yKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4LAorICAgICAgICBzaXplX3QgaGlzdG9yeV9pbmRleCkgX19OREtfRlBBQklfXzsKKworLyogR2V0IHRoZSBoaXN0b3JpY2FsIG9yaWVudGF0aW9uIG9mIHRoZSB0b3VjaCBhcmVhIGFuZCB0b29sIGFyZWEgaW4gcmFkaWFucyBjbG9ja3dpc2UgZnJvbQorICogdmVydGljYWwgZm9yIHRoZSBnaXZlbiBwb2ludGVyIGluZGV4IHRoYXQKKyAqIG9jY3VycmVkIGJldHdlZW4gdGhpcyBldmVudCBhbmQgdGhlIHByZXZpb3VzIG1vdGlvbiBldmVudC4KKyAqIEFuIGFuZ2xlIG9mIDAgZGVncmVlcyBpbmRpY2F0ZXMgdGhhdCB0aGUgbWFqb3IgYXhpcyBvZiBjb250YWN0IGlzIG9yaWVudGVkCisgKiB1cHdhcmRzLCBpcyBwZXJmZWN0bHkgY2lyY3VsYXIgb3IgaXMgb2YgdW5rbm93biBvcmllbnRhdGlvbi4gIEEgcG9zaXRpdmUgYW5nbGUKKyAqIGluZGljYXRlcyB0aGF0IHRoZSBtYWpvciBheGlzIG9mIGNvbnRhY3QgaXMgb3JpZW50ZWQgdG8gdGhlIHJpZ2h0LiAgQSBuZWdhdGl2ZSBhbmdsZQorICogaW5kaWNhdGVzIHRoYXQgdGhlIG1ham9yIGF4aXMgb2YgY29udGFjdCBpcyBvcmllbnRlZCB0byB0aGUgbGVmdC4KKyAqIFRoZSBmdWxsIHJhbmdlIGlzIGZyb20gLVBJLzIgcmFkaWFucyAoZmluZ2VyIHBvaW50aW5nIGZ1bGx5IGxlZnQpIHRvIFBJLzIgcmFkaWFucworICogKGZpbmdlciBwb2ludGluZyBmdWxseSByaWdodCkuICovCitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbE9yaWVudGF0aW9uKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4LAorICAgICAgICBzaXplX3QgaGlzdG9yeV9pbmRleCkgX19OREtfRlBBQklfXzsKKworLyogR2V0IHRoZSBoaXN0b3JpY2FsIHZhbHVlIG9mIHRoZSByZXF1ZXN0IGF4aXMgZm9yIHRoZSBnaXZlbiBwb2ludGVyIGluZGV4CisgKiB0aGF0IG9jY3VycmVkIGJldHdlZW4gdGhpcyBldmVudCBhbmQgdGhlIHByZXZpb3VzIG1vdGlvbiBldmVudC4gKi8KK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsQXhpc1ZhbHVlKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsCisgICAgICAgIGludDMyX3QgYXhpcywgc2l6ZV90IHBvaW50ZXJfaW5kZXgsIHNpemVfdCBoaXN0b3J5X2luZGV4KSBfX05ES19GUEFCSV9fOworCisKKy8qCisgKiBJbnB1dCBxdWV1ZQorICoKKyAqIEFuIGlucHV0IHF1ZXVlIGlzIHRoZSBmYWNpbGl0eSB0aHJvdWdoIHdoaWNoIHlvdSByZXRyaWV2ZSBpbnB1dAorICogZXZlbnRzLgorICovCitzdHJ1Y3QgQUlucHV0UXVldWU7Cit0eXBlZGVmIHN0cnVjdCBBSW5wdXRRdWV1ZSBBSW5wdXRRdWV1ZTsKKworLyoKKyAqIEFkZCB0aGlzIGlucHV0IHF1ZXVlIHRvIGEgbG9vcGVyIGZvciBwcm9jZXNzaW5nLiAgU2VlCisgKiBBTG9vcGVyX2FkZEZkKCkgZm9yIGluZm9ybWF0aW9uIG9uIHRoZSBpZGVudCwgY2FsbGJhY2ssIGFuZCBkYXRhIHBhcmFtcy4KKyAqLwordm9pZCBBSW5wdXRRdWV1ZV9hdHRhY2hMb29wZXIoQUlucHV0UXVldWUqIHF1ZXVlLCBBTG9vcGVyKiBsb29wZXIsCisgICAgICAgIGludCBpZGVudCwgQUxvb3Blcl9jYWxsYmFja0Z1bmMgY2FsbGJhY2ssIHZvaWQqIGRhdGEpOworCisvKgorICogUmVtb3ZlIHRoZSBpbnB1dCBxdWV1ZSBmcm9tIHRoZSBsb29wZXIgaXQgaXMgY3VycmVudGx5IGF0dGFjaGVkIHRvLgorICovCit2b2lkIEFJbnB1dFF1ZXVlX2RldGFjaExvb3BlcihBSW5wdXRRdWV1ZSogcXVldWUpOworCisvKgorICogUmV0dXJucyB0cnVlIGlmIHRoZXJlIGFyZSBvbmUgb3IgbW9yZSBldmVudHMgYXZhaWxhYmxlIGluIHRoZQorICogaW5wdXQgcXVldWUuICBSZXR1cm5zIDEgaWYgdGhlIHF1ZXVlIGhhcyBldmVudHM7IDAgaWYKKyAqIGl0IGRvZXMgbm90IGhhdmUgZXZlbnRzOyBhbmQgYSBuZWdhdGl2ZSB2YWx1ZSBpZiB0aGVyZSBpcyBhbiBlcnJvci4KKyAqLworaW50MzJfdCBBSW5wdXRRdWV1ZV9oYXNFdmVudHMoQUlucHV0UXVldWUqIHF1ZXVlKTsKKworLyoKKyAqIFJldHVybnMgdGhlIG5leHQgYXZhaWxhYmxlIGV2ZW50IGZyb20gdGhlIHF1ZXVlLiAgUmV0dXJucyBhIG5lZ2F0aXZlCisgKiB2YWx1ZSBpZiBubyBldmVudHMgYXJlIGF2YWlsYWJsZSBvciBhbiBlcnJvciBoYXMgb2NjdXJyZWQuCisgKi8KK2ludDMyX3QgQUlucHV0UXVldWVfZ2V0RXZlbnQoQUlucHV0UXVldWUqIHF1ZXVlLCBBSW5wdXRFdmVudCoqIG91dEV2ZW50KTsKKworLyoKKyAqIFNlbmRzIHRoZSBrZXkgZm9yIHN0YW5kYXJkIHByZS1kaXNwYXRjaGluZyAtLSB0aGF0IGlzLCBwb3NzaWJseSBkZWxpdmVyCisgKiBpdCB0byB0aGUgY3VycmVudCBJTUUgdG8gYmUgY29uc3VtZWQgYmVmb3JlIHRoZSBhcHAuICBSZXR1cm5zIDAgaWYgaXQKKyAqIHdhcyBub3QgcHJlLWRpc3BhdGNoZWQsIG1lYW5pbmcgeW91IGNhbiBwcm9jZXNzIGl0IHJpZ2h0IG5vdy4gIElmIG5vbi16ZXJvCisgKiBpcyByZXR1cm5lZCwgeW91IG11c3QgYWJhbmRvbiB0aGUgY3VycmVudCBldmVudCBwcm9jZXNzaW5nIGFuZCBhbGxvdyB0aGUKKyAqIGV2ZW50IHRvIGFwcGVhciBhZ2FpbiBpbiB0aGUgZXZlbnQgcXVldWUgKGlmIGl0IGRvZXMgbm90IGdldCBjb25zdW1lZCBkdXJpbmcKKyAqIHByZS1kaXNwYXRjaGluZykuCisgKi8KK2ludDMyX3QgQUlucHV0UXVldWVfcHJlRGlzcGF0Y2hFdmVudChBSW5wdXRRdWV1ZSogcXVldWUsIEFJbnB1dEV2ZW50KiBldmVudCk7CisKKy8qCisgKiBSZXBvcnQgdGhhdCBkaXNwYXRjaGluZyBoYXMgZmluaXNoZWQgd2l0aCB0aGUgZ2l2ZW4gZXZlbnQuCisgKiBUaGlzIG11c3QgYmUgY2FsbGVkIGFmdGVyIHJlY2VpdmluZyBhbiBldmVudCB3aXRoIEFJbnB1dFF1ZXVlX2dldF9ldmVudCgpLgorICovCit2b2lkIEFJbnB1dFF1ZXVlX2ZpbmlzaEV2ZW50KEFJbnB1dFF1ZXVlKiBxdWV1ZSwgQUlucHV0RXZlbnQqIGV2ZW50LCBpbnQgaGFuZGxlZCk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvLyBfQU5EUk9JRF9JTlBVVF9ICmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTMvaW5jbHVkZS9hbmRyb2lkL2tleWNvZGVzLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTMvaW5jbHVkZS9hbmRyb2lkL2tleWNvZGVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzRhN2VmZgotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xMy9pbmNsdWRlL2FuZHJvaWQva2V5Y29kZXMuaApAQCAtMCwwICsxLDI1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgX0FORFJPSURfS0VZQ09ERVNfSAorI2RlZmluZSBfQU5EUk9JRF9LRVlDT0RFU19ICisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBJTVBPUlRBTlQgTk9USUNFOgorICoKKyAqICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgQW5kcm9pZCdzIHNldCBvZiBzdGFibGUgc3lzdGVtIGhlYWRlcnMKKyAqICAgZXhwb3NlZCBieSB0aGUgQW5kcm9pZCBOREsgKE5hdGl2ZSBEZXZlbG9wbWVudCBLaXQpLgorICoKKyAqICAgVGhpcmQtcGFydHkgc291cmNlIEFORCBiaW5hcnkgY29kZSByZWxpZXMgb24gdGhlIGRlZmluaXRpb25zCisgKiAgIGhlcmUgdG8gYmUgRlJPWkVOIE9OIEFMTCBVUENPTUlORyBQTEFURk9STSBSRUxFQVNFUy4KKyAqCisgKiAgIC0gRE8gTk9UIE1PRElGWSBFTlVNUyAoRVhDRVBUIElGIFlPVSBBREQgTkVXIDMyLUJJVCBWQUxVRVMpCisgKiAgIC0gRE8gTk9UIE1PRElGWSBDT05TVEFOVFMgT1IgRlVOQ1RJT05BTCBNQUNST1MKKyAqICAgLSBETyBOT1QgQ0hBTkdFIFRIRSBTSUdOQVRVUkUgT0YgRlVOQ1RJT05TIElOIEFOWSBXQVkKKyAqICAgLSBETyBOT1QgQ0hBTkdFIFRIRSBMQVlPVVQgT1IgU0laRSBPRiBTVFJVQ1RVUkVTCisgKi8KKworI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qCisgKiBLZXkgY29kZXMuCisgKi8KK2VudW0geworICAgIEFLRVlDT0RFX1VOS05PV04gICAgICAgICA9IDAsCisgICAgQUtFWUNPREVfU09GVF9MRUZUICAgICAgID0gMSwKKyAgICBBS0VZQ09ERV9TT0ZUX1JJR0hUICAgICAgPSAyLAorICAgIEFLRVlDT0RFX0hPTUUgICAgICAgICAgICA9IDMsCisgICAgQUtFWUNPREVfQkFDSyAgICAgICAgICAgID0gNCwKKyAgICBBS0VZQ09ERV9DQUxMICAgICAgICAgICAgPSA1LAorICAgIEFLRVlDT0RFX0VORENBTEwgICAgICAgICA9IDYsCisgICAgQUtFWUNPREVfMCAgICAgICAgICAgICAgID0gNywKKyAgICBBS0VZQ09ERV8xICAgICAgICAgICAgICAgPSA4LAorICAgIEFLRVlDT0RFXzIgICAgICAgICAgICAgICA9IDksCisgICAgQUtFWUNPREVfMyAgICAgICAgICAgICAgID0gMTAsCisgICAgQUtFWUNPREVfNCAgICAgICAgICAgICAgID0gMTEsCisgICAgQUtFWUNPREVfNSAgICAgICAgICAgICAgID0gMTIsCisgICAgQUtFWUNPREVfNiAgICAgICAgICAgICAgID0gMTMsCisgICAgQUtFWUNPREVfNyAgICAgICAgICAgICAgID0gMTQsCisgICAgQUtFWUNPREVfOCAgICAgICAgICAgICAgID0gMTUsCisgICAgQUtFWUNPREVfOSAgICAgICAgICAgICAgID0gMTYsCisgICAgQUtFWUNPREVfU1RBUiAgICAgICAgICAgID0gMTcsCisgICAgQUtFWUNPREVfUE9VTkQgICAgICAgICAgID0gMTgsCisgICAgQUtFWUNPREVfRFBBRF9VUCAgICAgICAgID0gMTksCisgICAgQUtFWUNPREVfRFBBRF9ET1dOICAgICAgID0gMjAsCisgICAgQUtFWUNPREVfRFBBRF9MRUZUICAgICAgID0gMjEsCisgICAgQUtFWUNPREVfRFBBRF9SSUdIVCAgICAgID0gMjIsCisgICAgQUtFWUNPREVfRFBBRF9DRU5URVIgICAgID0gMjMsCisgICAgQUtFWUNPREVfVk9MVU1FX1VQICAgICAgID0gMjQsCisgICAgQUtFWUNPREVfVk9MVU1FX0RPV04gICAgID0gMjUsCisgICAgQUtFWUNPREVfUE9XRVIgICAgICAgICAgID0gMjYsCisgICAgQUtFWUNPREVfQ0FNRVJBICAgICAgICAgID0gMjcsCisgICAgQUtFWUNPREVfQ0xFQVIgICAgICAgICAgID0gMjgsCisgICAgQUtFWUNPREVfQSAgICAgICAgICAgICAgID0gMjksCisgICAgQUtFWUNPREVfQiAgICAgICAgICAgICAgID0gMzAsCisgICAgQUtFWUNPREVfQyAgICAgICAgICAgICAgID0gMzEsCisgICAgQUtFWUNPREVfRCAgICAgICAgICAgICAgID0gMzIsCisgICAgQUtFWUNPREVfRSAgICAgICAgICAgICAgID0gMzMsCisgICAgQUtFWUNPREVfRiAgICAgICAgICAgICAgID0gMzQsCisgICAgQUtFWUNPREVfRyAgICAgICAgICAgICAgID0gMzUsCisgICAgQUtFWUNPREVfSCAgICAgICAgICAgICAgID0gMzYsCisgICAgQUtFWUNPREVfSSAgICAgICAgICAgICAgID0gMzcsCisgICAgQUtFWUNPREVfSiAgICAgICAgICAgICAgID0gMzgsCisgICAgQUtFWUNPREVfSyAgICAgICAgICAgICAgID0gMzksCisgICAgQUtFWUNPREVfTCAgICAgICAgICAgICAgID0gNDAsCisgICAgQUtFWUNPREVfTSAgICAgICAgICAgICAgID0gNDEsCisgICAgQUtFWUNPREVfTiAgICAgICAgICAgICAgID0gNDIsCisgICAgQUtFWUNPREVfTyAgICAgICAgICAgICAgID0gNDMsCisgICAgQUtFWUNPREVfUCAgICAgICAgICAgICAgID0gNDQsCisgICAgQUtFWUNPREVfUSAgICAgICAgICAgICAgID0gNDUsCisgICAgQUtFWUNPREVfUiAgICAgICAgICAgICAgID0gNDYsCisgICAgQUtFWUNPREVfUyAgICAgICAgICAgICAgID0gNDcsCisgICAgQUtFWUNPREVfVCAgICAgICAgICAgICAgID0gNDgsCisgICAgQUtFWUNPREVfVSAgICAgICAgICAgICAgID0gNDksCisgICAgQUtFWUNPREVfViAgICAgICAgICAgICAgID0gNTAsCisgICAgQUtFWUNPREVfVyAgICAgICAgICAgICAgID0gNTEsCisgICAgQUtFWUNPREVfWCAgICAgICAgICAgICAgID0gNTIsCisgICAgQUtFWUNPREVfWSAgICAgICAgICAgICAgID0gNTMsCisgICAgQUtFWUNPREVfWiAgICAgICAgICAgICAgID0gNTQsCisgICAgQUtFWUNPREVfQ09NTUEgICAgICAgICAgID0gNTUsCisgICAgQUtFWUNPREVfUEVSSU9EICAgICAgICAgID0gNTYsCisgICAgQUtFWUNPREVfQUxUX0xFRlQgICAgICAgID0gNTcsCisgICAgQUtFWUNPREVfQUxUX1JJR0hUICAgICAgID0gNTgsCisgICAgQUtFWUNPREVfU0hJRlRfTEVGVCAgICAgID0gNTksCisgICAgQUtFWUNPREVfU0hJRlRfUklHSFQgICAgID0gNjAsCisgICAgQUtFWUNPREVfVEFCICAgICAgICAgICAgID0gNjEsCisgICAgQUtFWUNPREVfU1BBQ0UgICAgICAgICAgID0gNjIsCisgICAgQUtFWUNPREVfU1lNICAgICAgICAgICAgID0gNjMsCisgICAgQUtFWUNPREVfRVhQTE9SRVIgICAgICAgID0gNjQsCisgICAgQUtFWUNPREVfRU5WRUxPUEUgICAgICAgID0gNjUsCisgICAgQUtFWUNPREVfRU5URVIgICAgICAgICAgID0gNjYsCisgICAgQUtFWUNPREVfREVMICAgICAgICAgICAgID0gNjcsCisgICAgQUtFWUNPREVfR1JBVkUgICAgICAgICAgID0gNjgsCisgICAgQUtFWUNPREVfTUlOVVMgICAgICAgICAgID0gNjksCisgICAgQUtFWUNPREVfRVFVQUxTICAgICAgICAgID0gNzAsCisgICAgQUtFWUNPREVfTEVGVF9CUkFDS0VUICAgID0gNzEsCisgICAgQUtFWUNPREVfUklHSFRfQlJBQ0tFVCAgID0gNzIsCisgICAgQUtFWUNPREVfQkFDS1NMQVNIICAgICAgID0gNzMsCisgICAgQUtFWUNPREVfU0VNSUNPTE9OICAgICAgID0gNzQsCisgICAgQUtFWUNPREVfQVBPU1RST1BIRSAgICAgID0gNzUsCisgICAgQUtFWUNPREVfU0xBU0ggICAgICAgICAgID0gNzYsCisgICAgQUtFWUNPREVfQVQgICAgICAgICAgICAgID0gNzcsCisgICAgQUtFWUNPREVfTlVNICAgICAgICAgICAgID0gNzgsCisgICAgQUtFWUNPREVfSEVBRFNFVEhPT0sgICAgID0gNzksCisgICAgQUtFWUNPREVfRk9DVVMgICAgICAgICAgID0gODAsICAgLy8gKkNhbWVyYSogZm9jdXMKKyAgICBBS0VZQ09ERV9QTFVTICAgICAgICAgICAgPSA4MSwKKyAgICBBS0VZQ09ERV9NRU5VICAgICAgICAgICAgPSA4MiwKKyAgICBBS0VZQ09ERV9OT1RJRklDQVRJT04gICAgPSA4MywKKyAgICBBS0VZQ09ERV9TRUFSQ0ggICAgICAgICAgPSA4NCwKKyAgICBBS0VZQ09ERV9NRURJQV9QTEFZX1BBVVNFPSA4NSwKKyAgICBBS0VZQ09ERV9NRURJQV9TVE9QICAgICAgPSA4NiwKKyAgICBBS0VZQ09ERV9NRURJQV9ORVhUICAgICAgPSA4NywKKyAgICBBS0VZQ09ERV9NRURJQV9QUkVWSU9VUyAgPSA4OCwKKyAgICBBS0VZQ09ERV9NRURJQV9SRVdJTkQgICAgPSA4OSwKKyAgICBBS0VZQ09ERV9NRURJQV9GQVNUX0ZPUldBUkQgPSA5MCwKKyAgICBBS0VZQ09ERV9NVVRFICAgICAgICAgICAgPSA5MSwKKyAgICBBS0VZQ09ERV9QQUdFX1VQICAgICAgICAgPSA5MiwKKyAgICBBS0VZQ09ERV9QQUdFX0RPV04gICAgICAgPSA5MywKKyAgICBBS0VZQ09ERV9QSUNUU1lNQk9MUyAgICAgPSA5NCwKKyAgICBBS0VZQ09ERV9TV0lUQ0hfQ0hBUlNFVCAgPSA5NSwKKyAgICBBS0VZQ09ERV9CVVRUT05fQSAgICAgICAgPSA5NiwKKyAgICBBS0VZQ09ERV9CVVRUT05fQiAgICAgICAgPSA5NywKKyAgICBBS0VZQ09ERV9CVVRUT05fQyAgICAgICAgPSA5OCwKKyAgICBBS0VZQ09ERV9CVVRUT05fWCAgICAgICAgPSA5OSwKKyAgICBBS0VZQ09ERV9CVVRUT05fWSAgICAgICAgPSAxMDAsCisgICAgQUtFWUNPREVfQlVUVE9OX1ogICAgICAgID0gMTAxLAorICAgIEFLRVlDT0RFX0JVVFRPTl9MMSAgICAgICA9IDEwMiwKKyAgICBBS0VZQ09ERV9CVVRUT05fUjEgICAgICAgPSAxMDMsCisgICAgQUtFWUNPREVfQlVUVE9OX0wyICAgICAgID0gMTA0LAorICAgIEFLRVlDT0RFX0JVVFRPTl9SMiAgICAgICA9IDEwNSwKKyAgICBBS0VZQ09ERV9CVVRUT05fVEhVTUJMICAgPSAxMDYsCisgICAgQUtFWUNPREVfQlVUVE9OX1RIVU1CUiAgID0gMTA3LAorICAgIEFLRVlDT0RFX0JVVFRPTl9TVEFSVCAgICA9IDEwOCwKKyAgICBBS0VZQ09ERV9CVVRUT05fU0VMRUNUICAgPSAxMDksCisgICAgQUtFWUNPREVfQlVUVE9OX01PREUgICAgID0gMTEwLAorICAgIEFLRVlDT0RFX0VTQ0FQRSAgICAgICAgICA9IDExMSwKKyAgICBBS0VZQ09ERV9GT1JXQVJEX0RFTCAgICAgPSAxMTIsCisgICAgQUtFWUNPREVfQ1RSTF9MRUZUICAgICAgID0gMTEzLAorICAgIEFLRVlDT0RFX0NUUkxfUklHSFQgICAgICA9IDExNCwKKyAgICBBS0VZQ09ERV9DQVBTX0xPQ0sgICAgICAgPSAxMTUsCisgICAgQUtFWUNPREVfU0NST0xMX0xPQ0sgICAgID0gMTE2LAorICAgIEFLRVlDT0RFX01FVEFfTEVGVCAgICAgICA9IDExNywKKyAgICBBS0VZQ09ERV9NRVRBX1JJR0hUICAgICAgPSAxMTgsCisgICAgQUtFWUNPREVfRlVOQ1RJT04gICAgICAgID0gMTE5LAorICAgIEFLRVlDT0RFX1NZU1JRICAgICAgICAgICA9IDEyMCwKKyAgICBBS0VZQ09ERV9CUkVBSyAgICAgICAgICAgPSAxMjEsCisgICAgQUtFWUNPREVfTU9WRV9IT01FICAgICAgID0gMTIyLAorICAgIEFLRVlDT0RFX01PVkVfRU5EICAgICAgICA9IDEyMywKKyAgICBBS0VZQ09ERV9JTlNFUlQgICAgICAgICAgPSAxMjQsCisgICAgQUtFWUNPREVfRk9SV0FSRCAgICAgICAgID0gMTI1LAorICAgIEFLRVlDT0RFX01FRElBX1BMQVkgICAgICA9IDEyNiwKKyAgICBBS0VZQ09ERV9NRURJQV9QQVVTRSAgICAgPSAxMjcsCisgICAgQUtFWUNPREVfTUVESUFfQ0xPU0UgICAgID0gMTI4LAorICAgIEFLRVlDT0RFX01FRElBX0VKRUNUICAgICA9IDEyOSwKKyAgICBBS0VZQ09ERV9NRURJQV9SRUNPUkQgICAgPSAxMzAsCisgICAgQUtFWUNPREVfRjEgICAgICAgICAgICAgID0gMTMxLAorICAgIEFLRVlDT0RFX0YyICAgICAgICAgICAgICA9IDEzMiwKKyAgICBBS0VZQ09ERV9GMyAgICAgICAgICAgICAgPSAxMzMsCisgICAgQUtFWUNPREVfRjQgICAgICAgICAgICAgID0gMTM0LAorICAgIEFLRVlDT0RFX0Y1ICAgICAgICAgICAgICA9IDEzNSwKKyAgICBBS0VZQ09ERV9GNiAgICAgICAgICAgICAgPSAxMzYsCisgICAgQUtFWUNPREVfRjcgICAgICAgICAgICAgID0gMTM3LAorICAgIEFLRVlDT0RFX0Y4ICAgICAgICAgICAgICA9IDEzOCwKKyAgICBBS0VZQ09ERV9GOSAgICAgICAgICAgICAgPSAxMzksCisgICAgQUtFWUNPREVfRjEwICAgICAgICAgICAgID0gMTQwLAorICAgIEFLRVlDT0RFX0YxMSAgICAgICAgICAgICA9IDE0MSwKKyAgICBBS0VZQ09ERV9GMTIgICAgICAgICAgICAgPSAxNDIsCisgICAgQUtFWUNPREVfTlVNX0xPQ0sgICAgICAgID0gMTQzLAorICAgIEFLRVlDT0RFX05VTVBBRF8wICAgICAgICA9IDE0NCwKKyAgICBBS0VZQ09ERV9OVU1QQURfMSAgICAgICAgPSAxNDUsCisgICAgQUtFWUNPREVfTlVNUEFEXzIgICAgICAgID0gMTQ2LAorICAgIEFLRVlDT0RFX05VTVBBRF8zICAgICAgICA9IDE0NywKKyAgICBBS0VZQ09ERV9OVU1QQURfNCAgICAgICAgPSAxNDgsCisgICAgQUtFWUNPREVfTlVNUEFEXzUgICAgICAgID0gMTQ5LAorICAgIEFLRVlDT0RFX05VTVBBRF82ICAgICAgICA9IDE1MCwKKyAgICBBS0VZQ09ERV9OVU1QQURfNyAgICAgICAgPSAxNTEsCisgICAgQUtFWUNPREVfTlVNUEFEXzggICAgICAgID0gMTUyLAorICAgIEFLRVlDT0RFX05VTVBBRF85ICAgICAgICA9IDE1MywKKyAgICBBS0VZQ09ERV9OVU1QQURfRElWSURFICAgPSAxNTQsCisgICAgQUtFWUNPREVfTlVNUEFEX01VTFRJUExZID0gMTU1LAorICAgIEFLRVlDT0RFX05VTVBBRF9TVUJUUkFDVCA9IDE1NiwKKyAgICBBS0VZQ09ERV9OVU1QQURfQUREICAgICAgPSAxNTcsCisgICAgQUtFWUNPREVfTlVNUEFEX0RPVCAgICAgID0gMTU4LAorICAgIEFLRVlDT0RFX05VTVBBRF9DT01NQSAgICA9IDE1OSwKKyAgICBBS0VZQ09ERV9OVU1QQURfRU5URVIgICAgPSAxNjAsCisgICAgQUtFWUNPREVfTlVNUEFEX0VRVUFMUyAgID0gMTYxLAorICAgIEFLRVlDT0RFX05VTVBBRF9MRUZUX1BBUkVOID0gMTYyLAorICAgIEFLRVlDT0RFX05VTVBBRF9SSUdIVF9QQVJFTiA9IDE2MywKKyAgICBBS0VZQ09ERV9WT0xVTUVfTVVURSAgICAgPSAxNjQsCisgICAgQUtFWUNPREVfSU5GTyAgICAgICAgICAgID0gMTY1LAorICAgIEFLRVlDT0RFX0NIQU5ORUxfVVAgICAgICA9IDE2NiwKKyAgICBBS0VZQ09ERV9DSEFOTkVMX0RPV04gICAgPSAxNjcsCisgICAgQUtFWUNPREVfWk9PTV9JTiAgICAgICAgID0gMTY4LAorICAgIEFLRVlDT0RFX1pPT01fT1VUICAgICAgICA9IDE2OSwKKyAgICBBS0VZQ09ERV9UViAgICAgICAgICAgICAgPSAxNzAsCisgICAgQUtFWUNPREVfV0lORE9XICAgICAgICAgID0gMTcxLAorICAgIEFLRVlDT0RFX0dVSURFICAgICAgICAgICA9IDE3MiwKKyAgICBBS0VZQ09ERV9EVlIgICAgICAgICAgICAgPSAxNzMsCisgICAgQUtFWUNPREVfQk9PS01BUksgICAgICAgID0gMTc0LAorICAgIEFLRVlDT0RFX0NBUFRJT05TICAgICAgICA9IDE3NSwKKyAgICBBS0VZQ09ERV9TRVRUSU5HUyAgICAgICAgPSAxNzYsCisgICAgQUtFWUNPREVfVFZfUE9XRVIgICAgICAgID0gMTc3LAorICAgIEFLRVlDT0RFX1RWX0lOUFVUICAgICAgICA9IDE3OCwKKyAgICBBS0VZQ09ERV9TVEJfUE9XRVIgICAgICAgPSAxNzksCisgICAgQUtFWUNPREVfU1RCX0lOUFVUICAgICAgID0gMTgwLAorICAgIEFLRVlDT0RFX0FWUl9QT1dFUiAgICAgICA9IDE4MSwKKyAgICBBS0VZQ09ERV9BVlJfSU5QVVQgICAgICAgPSAxODIsCisgICAgQUtFWUNPREVfUFJPR19SRUQgICAgICAgID0gMTgzLAorICAgIEFLRVlDT0RFX1BST0dfR1JFRU4gICAgICA9IDE4NCwKKyAgICBBS0VZQ09ERV9QUk9HX1lFTExPVyAgICAgPSAxODUsCisgICAgQUtFWUNPREVfUFJPR19CTFVFICAgICAgID0gMTg2LAorICAgIEFLRVlDT0RFX0FQUF9TV0lUQ0ggICAgICA9IDE4NywKKyAgICBBS0VZQ09ERV9CVVRUT05fMSAgICAgICAgPSAxODgsCisgICAgQUtFWUNPREVfQlVUVE9OXzIgICAgICAgID0gMTg5LAorICAgIEFLRVlDT0RFX0JVVFRPTl8zICAgICAgICA9IDE5MCwKKyAgICBBS0VZQ09ERV9CVVRUT05fNCAgICAgICAgPSAxOTEsCisgICAgQUtFWUNPREVfQlVUVE9OXzUgICAgICAgID0gMTkyLAorICAgIEFLRVlDT0RFX0JVVFRPTl82ICAgICAgICA9IDE5MywKKyAgICBBS0VZQ09ERV9CVVRUT05fNyAgICAgICAgPSAxOTQsCisgICAgQUtFWUNPREVfQlVUVE9OXzggICAgICAgID0gMTk1LAorICAgIEFLRVlDT0RFX0JVVFRPTl85ICAgICAgICA9IDE5NiwKKyAgICBBS0VZQ09ERV9CVVRUT05fMTAgICAgICAgPSAxOTcsCisgICAgQUtFWUNPREVfQlVUVE9OXzExICAgICAgID0gMTk4LAorICAgIEFLRVlDT0RFX0JVVFRPTl8xMiAgICAgICA9IDE5OSwKKyAgICBBS0VZQ09ERV9CVVRUT05fMTMgICAgICAgPSAyMDAsCisgICAgQUtFWUNPREVfQlVUVE9OXzE0ICAgICAgID0gMjAxLAorICAgIEFLRVlDT0RFX0JVVFRPTl8xNSAgICAgICA9IDIwMiwKKyAgICBBS0VZQ09ERV9CVVRUT05fMTYgICAgICAgPSAyMDMsCisKKyAgICAvLyBOT1RFOiBJZiB5b3UgYWRkIGEgbmV3IGtleWNvZGUgaGVyZSB5b3UgbXVzdCBhbHNvIGFkZCBpdCB0byBzZXZlcmFsIG90aGVyIGZpbGVzLgorICAgIC8vICAgICAgIFJlZmVyIHRvIGZyYW1ld29ya3MvYmFzZS9jb3JlL2phdmEvYW5kcm9pZC92aWV3L0tleUV2ZW50LmphdmEgZm9yIHRoZSBmdWxsIGxpc3QuCit9OworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gX0FORFJPSURfS0VZQ09ERVNfSApkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTEzL2luY2x1ZGUvYW5kcm9pZC9uYXRpdmVfYWN0aXZpdHkuaCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xMy9pbmNsdWRlL2FuZHJvaWQvbmF0aXZlX2FjdGl2aXR5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmM3MGY4OAotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xMy9pbmNsdWRlL2FuZHJvaWQvbmF0aXZlX2FjdGl2aXR5LmgKQEAgLTAsMCArMSwzMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisKKyNpZm5kZWYgQU5EUk9JRF9OQVRJVkVfQUNUSVZJVFlfSAorI2RlZmluZSBBTkRST0lEX05BVElWRV9BQ1RJVklUWV9ICisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKworI2luY2x1ZGUgPGpuaS5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9hc3NldF9tYW5hZ2VyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9pbnB1dC5oPgorI2luY2x1ZGUgPGFuZHJvaWQvbmF0aXZlX3dpbmRvdy5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK3N0cnVjdCBBTmF0aXZlQWN0aXZpdHlDYWxsYmFja3M7CisKKy8qKgorICogVGhpcyBzdHJ1Y3R1cmUgZGVmaW5lcyB0aGUgbmF0aXZlIHNpZGUgb2YgYW4gYW5kcm9pZC5hcHAuTmF0aXZlQWN0aXZpdHkuCisgKiBJdCBpcyBjcmVhdGVkIGJ5IHRoZSBmcmFtZXdvcmssIGFuZCBoYW5kZWQgdG8gdGhlIGFwcGxpY2F0aW9uJ3MgbmF0aXZlCisgKiBjb2RlIGFzIGl0IGlzIGJlaW5nIGxhdW5jaGVkLgorICovCit0eXBlZGVmIHN0cnVjdCBBTmF0aXZlQWN0aXZpdHkgeworICAgIC8qKgorICAgICAqIFBvaW50ZXIgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRhYmxlIG9mIHRoZSBuYXRpdmUgYXBwbGljYXRpb24uCisgICAgICogWW91IGNhbiBzZXQgdGhlIGZ1bmN0aW9ucyBoZXJlIHRvIHlvdXIgb3duIGNhbGxiYWNrcy4gIFRoZSBjYWxsYmFja3MKKyAgICAgKiBwb2ludGVyIGl0c2VsZiBoZXJlIHNob3VsZCBub3QgYmUgY2hhbmdlZDsgaXQgaXMgYWxsb2NhdGVkIGFuZCBtYW5hZ2VkCisgICAgICogZm9yIHlvdSBieSB0aGUgZnJhbWV3b3JrLgorICAgICAqLworICAgIHN0cnVjdCBBTmF0aXZlQWN0aXZpdHlDYWxsYmFja3MqIGNhbGxiYWNrczsKKworICAgIC8qKgorICAgICAqIFRoZSBnbG9iYWwgaGFuZGxlIG9uIHRoZSBwcm9jZXNzJ3MgSmF2YSBWTS4KKyAgICAgKi8KKyAgICBKYXZhVk0qIHZtOworCisgICAgLyoqCisgICAgICogSk5JIGNvbnRleHQgZm9yIHRoZSBtYWluIHRocmVhZCBvZiB0aGUgYXBwLiAgTm90ZSB0aGF0IHRoaXMgZmllbGQKKyAgICAgKiBjYW4gT05MWSBiZSB1c2VkIGZyb20gdGhlIG1haW4gdGhyZWFkIG9mIHRoZSBwcm9jZXNzOyB0aGF0IGlzLCB0aGUKKyAgICAgKiB0aHJlYWQgdGhhdCBjYWxscyBpbnRvIHRoZSBBTmF0aXZlQWN0aXZpdHlDYWxsYmFja3MuCisgICAgICovCisgICAgSk5JRW52KiBlbnY7CisKKyAgICAvKioKKyAgICAgKiBUaGUgTmF0aXZlQWN0aXZpdHkgb2JqZWN0IGhhbmRsZS4KKyAgICAgKgorICAgICAqIElNUE9SVEFOVCBOT1RFOiBUaGlzIG1lbWJlciBpcyBtaXMtbmFtZWQuIEl0IHNob3VsZCByZWFsbHkgYmUgbmFtZWQKKyAgICAgKiAnYWN0aXZpdHknIGluc3RlYWQgb2YgJ2NsYXp6Jywgc2luY2UgaXQncyBhIHJlZmVyZW5jZSB0byB0aGUKKyAgICAgKiBOYXRpdmVBY3Rpdml0eSBpbnN0YW5jZSBjcmVhdGVkIGJ5IHRoZSBzeXN0ZW0gZm9yIHlvdS4KKyAgICAgKgorICAgICAqIFdlIHVuZm9ydHVuYXRlbHkgY2Fubm90IGNoYW5nZSB0aGlzIHdpdGhvdXQgYnJlYWtpbmcgTkRLCisgICAgICogc291cmNlLWNvbXBhdGliaWxpdHkuCisgICAgICovCisgICAgam9iamVjdCBjbGF6ejsKKworICAgIC8qKgorICAgICAqIFBhdGggdG8gdGhpcyBhcHBsaWNhdGlvbidzIGludGVybmFsIGRhdGEgZGlyZWN0b3J5LgorICAgICAqLworICAgIGNvbnN0IGNoYXIqIGludGVybmFsRGF0YVBhdGg7CisgICAgCisgICAgLyoqCisgICAgICogUGF0aCB0byB0aGlzIGFwcGxpY2F0aW9uJ3MgZXh0ZXJuYWwgKHJlbW92YWJsZS9tb3VudGFibGUpIGRhdGEgZGlyZWN0b3J5LgorICAgICAqLworICAgIGNvbnN0IGNoYXIqIGV4dGVybmFsRGF0YVBhdGg7CisgICAgCisgICAgLyoqCisgICAgICogVGhlIHBsYXRmb3JtJ3MgU0RLIHZlcnNpb24gY29kZS4KKyAgICAgKi8KKyAgICBpbnQzMl90IHNka1ZlcnNpb247CisgICAgCisgICAgLyoqCisgICAgICogVGhpcyBpcyB0aGUgbmF0aXZlIGluc3RhbmNlIG9mIHRoZSBhcHBsaWNhdGlvbi4gIEl0IGlzIG5vdCB1c2VkIGJ5CisgICAgICogdGhlIGZyYW1ld29yaywgYnV0IGNhbiBiZSBzZXQgYnkgdGhlIGFwcGxpY2F0aW9uIHRvIGl0cyBvd24gaW5zdGFuY2UKKyAgICAgKiBzdGF0ZS4KKyAgICAgKi8KKyAgICB2b2lkKiBpbnN0YW5jZTsKKworICAgIC8qKgorICAgICAqIFBvaW50ZXIgdG8gdGhlIEFzc2V0IE1hbmFnZXIgaW5zdGFuY2UgZm9yIHRoZSBhcHBsaWNhdGlvbi4gIFRoZSBhcHBsaWNhdGlvbgorICAgICAqIHVzZXMgdGhpcyB0byBhY2Nlc3MgYmluYXJ5IGFzc2V0cyBidW5kbGVkIGluc2lkZSBpdHMgb3duIC5hcGsgZmlsZS4KKyAgICAgKi8KKyAgICBBQXNzZXRNYW5hZ2VyKiBhc3NldE1hbmFnZXI7CisKKyAgICAvKioKKyAgICAgKiBBdmFpbGFibGUgc3RhcnRpbmcgd2l0aCBIb25leWNvbWI6IHBhdGggdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nCisgICAgICogdGhlIGFwcGxpY2F0aW9uJ3MgT0JCIGZpbGVzIChpZiBhbnkpLiAgSWYgdGhlIGFwcCBkb2Vzbid0IGhhdmUgYW55CisgICAgICogT0JCIGZpbGVzLCB0aGlzIGRpcmVjdG9yeSBtYXkgbm90IGV4aXN0LgorICAgICAqLworICAgIGNvbnN0IGNoYXIqIG9iYlBhdGg7Cit9IEFOYXRpdmVBY3Rpdml0eTsKKworLyoqCisgKiBUaGVzZSBhcmUgdGhlIGNhbGxiYWNrcyB0aGUgZnJhbWV3b3JrIG1ha2VzIGludG8gYSBuYXRpdmUgYXBwbGljYXRpb24uCisgKiBBbGwgb2YgdGhlc2UgY2FsbGJhY2tzIGhhcHBlbiBvbiB0aGUgbWFpbiB0aHJlYWQgb2YgdGhlIGFwcGxpY2F0aW9uLgorICogQnkgZGVmYXVsdCwgYWxsIGNhbGxiYWNrcyBhcmUgTlVMTDsgc2V0IHRvIGEgcG9pbnRlciB0byB5b3VyIG93biBmdW5jdGlvbgorICogdG8gaGF2ZSBpdCBjYWxsZWQuCisgKi8KK3R5cGVkZWYgc3RydWN0IEFOYXRpdmVBY3Rpdml0eUNhbGxiYWNrcyB7CisgICAgLyoqCisgICAgICogTmF0aXZlQWN0aXZpdHkgaGFzIHN0YXJ0ZWQuICBTZWUgSmF2YSBkb2N1bWVudGF0aW9uIGZvciBBY3Rpdml0eS5vblN0YXJ0KCkKKyAgICAgKiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKyAgICAgKi8KKyAgICB2b2lkICgqb25TdGFydCkoQU5hdGl2ZUFjdGl2aXR5KiBhY3Rpdml0eSk7CisgICAgCisgICAgLyoqCisgICAgICogTmF0aXZlQWN0aXZpdHkgaGFzIHJlc3VtZWQuICBTZWUgSmF2YSBkb2N1bWVudGF0aW9uIGZvciBBY3Rpdml0eS5vblJlc3VtZSgpCisgICAgICogZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgICovCisgICAgdm9pZCAoKm9uUmVzdW1lKShBTmF0aXZlQWN0aXZpdHkqIGFjdGl2aXR5KTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBGcmFtZXdvcmsgaXMgYXNraW5nIE5hdGl2ZUFjdGl2aXR5IHRvIHNhdmUgaXRzIGN1cnJlbnQgaW5zdGFuY2Ugc3RhdGUuCisgICAgICogU2VlIEphdmEgZG9jdW1lbnRhdGlvbiBmb3IgQWN0aXZpdHkub25TYXZlSW5zdGFuY2VTdGF0ZSgpIGZvciBtb3JlCisgICAgICogaW5mb3JtYXRpb24uICBUaGUgcmV0dXJuZWQgcG9pbnRlciBuZWVkcyB0byBiZSBjcmVhdGVkIHdpdGggbWFsbG9jKCk7CisgICAgICogdGhlIGZyYW1ld29yayB3aWxsIGNhbGwgZnJlZSgpIG9uIGl0IGZvciB5b3UuICBZb3UgYWxzbyBtdXN0IGZpbGwgaW4KKyAgICAgKiBvdXRTaXplIHdpdGggdGhlIG51bWJlciBvZiBieXRlcyBpbiB0aGUgYWxsb2NhdGlvbi4gIE5vdGUgdGhhdCB0aGUKKyAgICAgKiBzYXZlZCBzdGF0ZSB3aWxsIGJlIHBlcnNpc3RlZCwgc28gaXQgY2FuIG5vdCBjb250YWluIGFueSBhY3RpdmUKKyAgICAgKiBlbnRpdGllcyAocG9pbnRlcnMgdG8gbWVtb3J5LCBmaWxlIGRlc2NyaXB0b3JzLCBldGMpLgorICAgICAqLworICAgIHZvaWQqICgqb25TYXZlSW5zdGFuY2VTdGF0ZSkoQU5hdGl2ZUFjdGl2aXR5KiBhY3Rpdml0eSwgc2l6ZV90KiBvdXRTaXplKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBOYXRpdmVBY3Rpdml0eSBoYXMgcGF1c2VkLiAgU2VlIEphdmEgZG9jdW1lbnRhdGlvbiBmb3IgQWN0aXZpdHkub25QYXVzZSgpCisgICAgICogZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgICovCisgICAgdm9pZCAoKm9uUGF1c2UpKEFOYXRpdmVBY3Rpdml0eSogYWN0aXZpdHkpOworICAgIAorICAgIC8qKgorICAgICAqIE5hdGl2ZUFjdGl2aXR5IGhhcyBzdG9wcGVkLiAgU2VlIEphdmEgZG9jdW1lbnRhdGlvbiBmb3IgQWN0aXZpdHkub25TdG9wKCkKKyAgICAgKiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKyAgICAgKi8KKyAgICB2b2lkICgqb25TdG9wKShBTmF0aXZlQWN0aXZpdHkqIGFjdGl2aXR5KTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBOYXRpdmVBY3Rpdml0eSBpcyBiZWluZyBkZXN0cm95ZWQuICBTZWUgSmF2YSBkb2N1bWVudGF0aW9uIGZvciBBY3Rpdml0eS5vbkRlc3Ryb3koKQorICAgICAqIGZvciBtb3JlIGluZm9ybWF0aW9uLgorICAgICAqLworICAgIHZvaWQgKCpvbkRlc3Ryb3kpKEFOYXRpdmVBY3Rpdml0eSogYWN0aXZpdHkpOworCisgICAgLyoqCisgICAgICogRm9jdXMgaGFzIGNoYW5nZWQgaW4gdGhpcyBOYXRpdmVBY3Rpdml0eSdzIHdpbmRvdy4gIFRoaXMgaXMgb2Z0ZW4gdXNlZCwKKyAgICAgKiBmb3IgZXhhbXBsZSwgdG8gcGF1c2UgYSBnYW1lIHdoZW4gaXQgbG9zZXMgaW5wdXQgZm9jdXMuCisgICAgICovCisgICAgdm9pZCAoKm9uV2luZG93Rm9jdXNDaGFuZ2VkKShBTmF0aXZlQWN0aXZpdHkqIGFjdGl2aXR5LCBpbnQgaGFzRm9jdXMpOworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBkcmF3aW5nIHdpbmRvdyBmb3IgdGhpcyBuYXRpdmUgYWN0aXZpdHkgaGFzIGJlZW4gY3JlYXRlZC4gIFlvdQorICAgICAqIGNhbiB1c2UgdGhlIGdpdmVuIG5hdGl2ZSB3aW5kb3cgb2JqZWN0IHRvIHN0YXJ0IGRyYXdpbmcuCisgICAgICovCisgICAgdm9pZCAoKm9uTmF0aXZlV2luZG93Q3JlYXRlZCkoQU5hdGl2ZUFjdGl2aXR5KiBhY3Rpdml0eSwgQU5hdGl2ZVdpbmRvdyogd2luZG93KTsKKworICAgIC8qKgorICAgICAqIFRoZSBkcmF3aW5nIHdpbmRvdyBmb3IgdGhpcyBuYXRpdmUgYWN0aXZpdHkgaGFzIGJlZW4gcmVzaXplZC4gIFlvdSBzaG91bGQKKyAgICAgKiByZXRyaWV2ZSB0aGUgbmV3IHNpemUgZnJvbSB0aGUgd2luZG93IGFuZCBlbnN1cmUgdGhhdCB5b3VyIHJlbmRlcmluZyBpbgorICAgICAqIGl0IG5vdyBtYXRjaGVzLgorICAgICAqLworICAgIHZvaWQgKCpvbk5hdGl2ZVdpbmRvd1Jlc2l6ZWQpKEFOYXRpdmVBY3Rpdml0eSogYWN0aXZpdHksIEFOYXRpdmVXaW5kb3cqIHdpbmRvdyk7CisKKyAgICAvKioKKyAgICAgKiBUaGUgZHJhd2luZyB3aW5kb3cgZm9yIHRoaXMgbmF0aXZlIGFjdGl2aXR5IG5lZWRzIHRvIGJlIHJlZHJhd24uICBUbyBhdm9pZAorICAgICAqIHRyYW5zaWVudCBhcnRpZmFjdHMgZHVyaW5nIHNjcmVlbiBjaGFuZ2VzIChzdWNoIHJlc2l6aW5nIGFmdGVyIHJvdGF0aW9uKSwKKyAgICAgKiBhcHBsaWNhdGlvbnMgc2hvdWxkIG5vdCByZXR1cm4gZnJvbSB0aGlzIGZ1bmN0aW9uIHVudGlsIHRoZXkgaGF2ZSBmaW5pc2hlZAorICAgICAqIGRyYXdpbmcgdGhlaXIgd2luZG93IGluIGl0cyBjdXJyZW50IHN0YXRlLgorICAgICAqLworICAgIHZvaWQgKCpvbk5hdGl2ZVdpbmRvd1JlZHJhd05lZWRlZCkoQU5hdGl2ZUFjdGl2aXR5KiBhY3Rpdml0eSwgQU5hdGl2ZVdpbmRvdyogd2luZG93KTsKKworICAgIC8qKgorICAgICAqIFRoZSBkcmF3aW5nIHdpbmRvdyBmb3IgdGhpcyBuYXRpdmUgYWN0aXZpdHkgaXMgZ29pbmcgdG8gYmUgZGVzdHJveWVkLgorICAgICAqIFlvdSBNVVNUIGVuc3VyZSB0aGF0IHlvdSBkbyBub3QgdG91Y2ggdGhlIHdpbmRvdyBvYmplY3QgYWZ0ZXIgcmV0dXJuaW5nCisgICAgICogZnJvbSB0aGlzIGZ1bmN0aW9uOiBpbiB0aGUgY29tbW9uIGNhc2Ugb2YgZHJhd2luZyB0byB0aGUgd2luZG93IGZyb20KKyAgICAgKiBhbm90aGVyIHRocmVhZCwgdGhhdCBtZWFucyB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBjYWxsYmFjayBtdXN0CisgICAgICogcHJvcGVybHkgc3luY2hyb25pemUgd2l0aCB0aGUgb3RoZXIgdGhyZWFkIHRvIHN0b3AgaXRzIGRyYXdpbmcgYmVmb3JlCisgICAgICogcmV0dXJuaW5nIGZyb20gaGVyZS4KKyAgICAgKi8KKyAgICB2b2lkICgqb25OYXRpdmVXaW5kb3dEZXN0cm95ZWQpKEFOYXRpdmVBY3Rpdml0eSogYWN0aXZpdHksIEFOYXRpdmVXaW5kb3cqIHdpbmRvdyk7CisgICAgCisgICAgLyoqCisgICAgICogVGhlIGlucHV0IHF1ZXVlIGZvciB0aGlzIG5hdGl2ZSBhY3Rpdml0eSdzIHdpbmRvdyBoYXMgYmVlbiBjcmVhdGVkLgorICAgICAqIFlvdSBjYW4gdXNlIHRoZSBnaXZlbiBpbnB1dCBxdWV1ZSB0byBzdGFydCByZXRyaWV2aW5nIGlucHV0IGV2ZW50cy4KKyAgICAgKi8KKyAgICB2b2lkICgqb25JbnB1dFF1ZXVlQ3JlYXRlZCkoQU5hdGl2ZUFjdGl2aXR5KiBhY3Rpdml0eSwgQUlucHV0UXVldWUqIHF1ZXVlKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgaW5wdXQgcXVldWUgZm9yIHRoaXMgbmF0aXZlIGFjdGl2aXR5J3Mgd2luZG93IGlzIGJlaW5nIGRlc3Ryb3llZC4KKyAgICAgKiBZb3Ugc2hvdWxkIG5vIGxvbmdlciB0cnkgdG8gcmVmZXJlbmNlIHRoaXMgb2JqZWN0IHVwb24gcmV0dXJuaW5nIGZyb20gdGhpcworICAgICAqIGZ1bmN0aW9uLgorICAgICAqLworICAgIHZvaWQgKCpvbklucHV0UXVldWVEZXN0cm95ZWQpKEFOYXRpdmVBY3Rpdml0eSogYWN0aXZpdHksIEFJbnB1dFF1ZXVlKiBxdWV1ZSk7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcmVjdGFuZ2xlIGluIHRoZSB3aW5kb3cgaW4gd2hpY2ggY29udGVudCBzaG91bGQgYmUgcGxhY2VkIGhhcyBjaGFuZ2VkLgorICAgICAqLworICAgIHZvaWQgKCpvbkNvbnRlbnRSZWN0Q2hhbmdlZCkoQU5hdGl2ZUFjdGl2aXR5KiBhY3Rpdml0eSwgY29uc3QgQVJlY3QqIHJlY3QpOworCisgICAgLyoqCisgICAgICogVGhlIGN1cnJlbnQgZGV2aWNlIEFDb25maWd1cmF0aW9uIGhhcyBjaGFuZ2VkLiAgVGhlIG5ldyBjb25maWd1cmF0aW9uIGNhbgorICAgICAqIGJlIHJldHJpZXZlZCBmcm9tIGFzc2V0TWFuYWdlci4KKyAgICAgKi8KKyAgICB2b2lkICgqb25Db25maWd1cmF0aW9uQ2hhbmdlZCkoQU5hdGl2ZUFjdGl2aXR5KiBhY3Rpdml0eSk7CisKKyAgICAvKioKKyAgICAgKiBUaGUgc3lzdGVtIGlzIHJ1bm5pbmcgbG93IG9uIG1lbW9yeS4gIFVzZSB0aGlzIGNhbGxiYWNrIHRvIHJlbGVhc2UKKyAgICAgKiByZXNvdXJjZXMgeW91IGRvIG5vdCBuZWVkLCB0byBoZWxwIHRoZSBzeXN0ZW0gYXZvaWQga2lsbGluZyBtb3JlCisgICAgICogaW1wb3J0YW50IHByb2Nlc3Nlcy4KKyAgICAgKi8KKyAgICB2b2lkICgqb25Mb3dNZW1vcnkpKEFOYXRpdmVBY3Rpdml0eSogYWN0aXZpdHkpOworfSBBTmF0aXZlQWN0aXZpdHlDYWxsYmFja3M7CisKKy8qKgorICogVGhpcyBpcyB0aGUgZnVuY3Rpb24gdGhhdCBtdXN0IGJlIGluIHRoZSBuYXRpdmUgY29kZSB0byBpbnN0YW50aWF0ZSB0aGUKKyAqIGFwcGxpY2F0aW9uJ3MgbmF0aXZlIGFjdGl2aXR5LiAgSXQgaXMgY2FsbGVkIHdpdGggdGhlIGFjdGl2aXR5IGluc3RhbmNlIChzZWUKKyAqIGFib3ZlKTsgaWYgdGhlIGNvZGUgaXMgYmVpbmcgaW5zdGFudGlhdGVkIGZyb20gYSBwcmV2aW91c2x5IHNhdmVkIGluc3RhbmNlLAorICogdGhlIHNhdmVkU3RhdGUgd2lsbCBiZSBub24tTlVMTCBhbmQgcG9pbnQgdG8gdGhlIHNhdmVkIGRhdGEuICBZb3UgbXVzdCBtYWtlCisgKiBhbnkgY29weSBvZiB0aGlzIGRhdGEgeW91IG5lZWQgLS0gaXQgd2lsbCBiZSByZWxlYXNlZCBhZnRlciB5b3UgcmV0dXJuIGZyb20KKyAqIHRoaXMgZnVuY3Rpb24uCisgKi8KK3R5cGVkZWYgdm9pZCBBTmF0aXZlQWN0aXZpdHlfY3JlYXRlRnVuYyhBTmF0aXZlQWN0aXZpdHkqIGFjdGl2aXR5LAorICAgICAgICB2b2lkKiBzYXZlZFN0YXRlLCBzaXplX3Qgc2F2ZWRTdGF0ZVNpemUpOworCisvKioKKyAqIFRoZSBuYW1lIG9mIHRoZSBmdW5jdGlvbiB0aGF0IE5hdGl2ZUluc3RhbmNlIGxvb2tzIGZvciB3aGVuIGxhdW5jaGluZyBpdHMKKyAqIG5hdGl2ZSBjb2RlLiAgVGhpcyBpcyB0aGUgZGVmYXVsdCBmdW5jdGlvbiB0aGF0IGlzIHVzZWQsIHlvdSBjYW4gc3BlY2lmeQorICogImFuZHJvaWQuYXBwLmZ1bmNfbmFtZSIgc3RyaW5nIG1ldGEtZGF0YSBpbiB5b3VyIG1hbmlmZXN0IHRvIHVzZSBhIGRpZmZlcmVudAorICogZnVuY3Rpb24uCisgKi8KK2V4dGVybiBBTmF0aXZlQWN0aXZpdHlfY3JlYXRlRnVuYyBBTmF0aXZlQWN0aXZpdHlfb25DcmVhdGU7CisKKy8qKgorICogRmluaXNoIHRoZSBnaXZlbiBhY3Rpdml0eS4gIEl0cyBmaW5pc2goKSBtZXRob2Qgd2lsbCBiZSBjYWxsZWQsIGNhdXNpbmcgaXQKKyAqIHRvIGJlIHN0b3BwZWQgYW5kIGRlc3Ryb3llZC4gIE5vdGUgdGhhdCB0aGlzIG1ldGhvZCBjYW4gYmUgY2FsbGVkIGZyb20KKyAqICphbnkqIHRocmVhZDsgaXQgd2lsbCBzZW5kIGEgbWVzc2FnZSB0byB0aGUgbWFpbiB0aHJlYWQgb2YgdGhlIHByb2Nlc3MKKyAqIHdoZXJlIHRoZSBKYXZhIGZpbmlzaCBjYWxsIHdpbGwgdGFrZSBwbGFjZS4KKyAqLwordm9pZCBBTmF0aXZlQWN0aXZpdHlfZmluaXNoKEFOYXRpdmVBY3Rpdml0eSogYWN0aXZpdHkpOworCisvKioKKyAqIENoYW5nZSB0aGUgd2luZG93IGZvcm1hdCBvZiB0aGUgZ2l2ZW4gYWN0aXZpdHkuICBDYWxscyBnZXRXaW5kb3coKS5zZXRGb3JtYXQoKQorICogb2YgdGhlIGdpdmVuIGFjdGl2aXR5LiAgTm90ZSB0aGF0IHRoaXMgbWV0aG9kIGNhbiBiZSBjYWxsZWQgZnJvbQorICogKmFueSogdGhyZWFkOyBpdCB3aWxsIHNlbmQgYSBtZXNzYWdlIHRvIHRoZSBtYWluIHRocmVhZCBvZiB0aGUgcHJvY2VzcworICogd2hlcmUgdGhlIEphdmEgZmluaXNoIGNhbGwgd2lsbCB0YWtlIHBsYWNlLgorICovCit2b2lkIEFOYXRpdmVBY3Rpdml0eV9zZXRXaW5kb3dGb3JtYXQoQU5hdGl2ZUFjdGl2aXR5KiBhY3Rpdml0eSwgaW50MzJfdCBmb3JtYXQpOworCisvKioKKyAqIENoYW5nZSB0aGUgd2luZG93IGZsYWdzIG9mIHRoZSBnaXZlbiBhY3Rpdml0eS4gIENhbGxzIGdldFdpbmRvdygpLnNldEZsYWdzKCkKKyAqIG9mIHRoZSBnaXZlbiBhY3Rpdml0eS4gIE5vdGUgdGhhdCB0aGlzIG1ldGhvZCBjYW4gYmUgY2FsbGVkIGZyb20KKyAqICphbnkqIHRocmVhZDsgaXQgd2lsbCBzZW5kIGEgbWVzc2FnZSB0byB0aGUgbWFpbiB0aHJlYWQgb2YgdGhlIHByb2Nlc3MKKyAqIHdoZXJlIHRoZSBKYXZhIGZpbmlzaCBjYWxsIHdpbGwgdGFrZSBwbGFjZS4gIFNlZSB3aW5kb3cuaCBmb3IgZmxhZyBjb25zdGFudHMuCisgKi8KK3ZvaWQgQU5hdGl2ZUFjdGl2aXR5X3NldFdpbmRvd0ZsYWdzKEFOYXRpdmVBY3Rpdml0eSogYWN0aXZpdHksCisgICAgICAgIHVpbnQzMl90IGFkZEZsYWdzLCB1aW50MzJfdCByZW1vdmVGbGFncyk7CisKKy8qKgorICogRmxhZ3MgZm9yIEFOYXRpdmVBY3Rpdml0eV9zaG93U29mdElucHV0OyBzZWUgdGhlIEphdmEgSW5wdXRNZXRob2RNYW5hZ2VyCisgKiBBUEkgZm9yIGRvY3VtZW50YXRpb24uCisgKi8KK2VudW0geworICAgIEFOQVRJVkVBQ1RJVklUWV9TSE9XX1NPRlRfSU5QVVRfSU1QTElDSVQgPSAweDAwMDEsCisgICAgQU5BVElWRUFDVElWSVRZX1NIT1dfU09GVF9JTlBVVF9GT1JDRUQgPSAweDAwMDIsCit9OworCisvKioKKyAqIFNob3cgdGhlIElNRSB3aGlsZSBpbiB0aGUgZ2l2ZW4gYWN0aXZpdHkuICBDYWxscyBJbnB1dE1ldGhvZE1hbmFnZXIuc2hvd1NvZnRJbnB1dCgpCisgKiBmb3IgdGhlIGdpdmVuIGFjdGl2aXR5LiAgTm90ZSB0aGF0IHRoaXMgbWV0aG9kIGNhbiBiZSBjYWxsZWQgZnJvbQorICogKmFueSogdGhyZWFkOyBpdCB3aWxsIHNlbmQgYSBtZXNzYWdlIHRvIHRoZSBtYWluIHRocmVhZCBvZiB0aGUgcHJvY2VzcworICogd2hlcmUgdGhlIEphdmEgZmluaXNoIGNhbGwgd2lsbCB0YWtlIHBsYWNlLgorICovCit2b2lkIEFOYXRpdmVBY3Rpdml0eV9zaG93U29mdElucHV0KEFOYXRpdmVBY3Rpdml0eSogYWN0aXZpdHksIHVpbnQzMl90IGZsYWdzKTsKKworLyoqCisgKiBGbGFncyBmb3IgQU5hdGl2ZUFjdGl2aXR5X2hpZGVTb2Z0SW5wdXQ7IHNlZSB0aGUgSmF2YSBJbnB1dE1ldGhvZE1hbmFnZXIKKyAqIEFQSSBmb3IgZG9jdW1lbnRhdGlvbi4KKyAqLworZW51bSB7CisgICAgQU5BVElWRUFDVElWSVRZX0hJREVfU09GVF9JTlBVVF9JTVBMSUNJVF9PTkxZID0gMHgwMDAxLAorICAgIEFOQVRJVkVBQ1RJVklUWV9ISURFX1NPRlRfSU5QVVRfTk9UX0FMV0FZUyA9IDB4MDAwMiwKK307CisKKy8qKgorICogSGlkZSB0aGUgSU1FIHdoaWxlIGluIHRoZSBnaXZlbiBhY3Rpdml0eS4gIENhbGxzIElucHV0TWV0aG9kTWFuYWdlci5oaWRlU29mdElucHV0KCkKKyAqIGZvciB0aGUgZ2l2ZW4gYWN0aXZpdHkuICBOb3RlIHRoYXQgdGhpcyBtZXRob2QgY2FuIGJlIGNhbGxlZCBmcm9tCisgKiAqYW55KiB0aHJlYWQ7IGl0IHdpbGwgc2VuZCBhIG1lc3NhZ2UgdG8gdGhlIG1haW4gdGhyZWFkIG9mIHRoZSBwcm9jZXNzCisgKiB3aGVyZSB0aGUgSmF2YSBmaW5pc2ggY2FsbCB3aWxsIHRha2UgcGxhY2UuCisgKi8KK3ZvaWQgQU5hdGl2ZUFjdGl2aXR5X2hpZGVTb2Z0SW5wdXQoQU5hdGl2ZUFjdGl2aXR5KiBhY3Rpdml0eSwgdWludDMyX3QgZmxhZ3MpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK307CisjZW5kaWYKKworI2VuZGlmIC8vIEFORFJPSURfTkFUSVZFX0FDVElWSVRZX0gKKwpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTEzL2luY2x1ZGUvYW5kcm9pZC9uYXRpdmVfd2luZG93X2puaS5oIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTEzL2luY2x1ZGUvYW5kcm9pZC9uYXRpdmVfd2luZG93X2puaS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwOGMyNjMKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTMvaW5jbHVkZS9hbmRyb2lkL25hdGl2ZV93aW5kb3dfam5pLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9OQVRJVkVfV0lORE9XX0pOSV9ICisjZGVmaW5lIEFORFJPSURfTkFUSVZFX1dJTkRPV19KTklfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9uYXRpdmVfd2luZG93Lmg+CisKKyNpbmNsdWRlIDxqbmkuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKioKKyAqIFJldHVybiB0aGUgQU5hdGl2ZVdpbmRvdyBhc3NvY2lhdGVkIHdpdGggYSBKYXZhIFN1cmZhY2Ugb2JqZWN0LAorICogZm9yIGludGVyYWN0aW5nIHdpdGggaXQgdGhyb3VnaCBuYXRpdmUgY29kZS4gIFRoaXMgYWNxdWlyZXMgYSByZWZlcmVuY2UKKyAqIG9uIHRoZSBBTmF0aXZlV2luZG93IHRoYXQgaXMgcmV0dXJuZWQ7IGJlIHN1cmUgdG8gdXNlIEFOYXRpdmVXaW5kb3dfcmVsZWFzZSgpCisgKiB3aGVuIGRvbmUgd2l0aCBpdCBzbyB0aGF0IGl0IGRvZXNuJ3QgbGVhay4KKyAqLworQU5hdGl2ZVdpbmRvdyogQU5hdGl2ZVdpbmRvd19mcm9tU3VyZmFjZShKTklFbnYqIGVudiwgam9iamVjdCBzdXJmYWNlKTsKKworLyoqCisgKiBSZXR1cm4gdGhlIEFOYXRpdmVXaW5kb3cgYXNzb2NpYXRlZCB3aXRoIGEgSmF2YSBTdXJmYWNlVGV4dHVyZSBvYmplY3QsCisgKiBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBpdCB0aHJvdWdoIG5hdGl2ZSBjb2RlLiAgVGhpcyBhY3F1aXJlcyBhIHJlZmVyZW5jZQorICogb24gdGhlIEFOYXRpdmVXaW5kb3cgdGhhdCBpcyByZXR1cm5lZDsgYmUgc3VyZSB0byB1c2UgQU5hdGl2ZVdpbmRvd19yZWxlYXNlKCkKKyAqIHdoZW4gZG9uZSB3aXRoIGl0IHNvIHRoYXQgaXQgZG9lc24ndCBsZWFrLgorICovCitBTmF0aXZlV2luZG93KiBBTmF0aXZlV2luZG93X2Zyb21TdXJmYWNlVGV4dHVyZShKTklFbnYqIGVudiwgam9iamVjdCBzdXJmYWNlVGV4dHVyZSk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfTsKKyNlbmRpZgorCisjZW5kaWYgLy8gQU5EUk9JRF9OQVRJVkVfV0lORE9XX0gKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xMy9pbmNsdWRlL2FuZHJvaWQvdHRzLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTMvaW5jbHVkZS9hbmRyb2lkL3R0cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0NjQ5OGUKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTMvaW5jbHVkZS9hbmRyb2lkL3R0cy5oCkBAIC0wLDAgKzEsMzE1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuCisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjaWZuZGVmIEFORFJPSURfVFRTX0gKKyNkZWZpbmUgQU5EUk9JRF9UVFNfSCAKKworLy8gVGhpcyBoZWFkZXIgZGVmaW5lcyB0aGUgaW50ZXJmYWNlIHVzZWQgYnkgdGhlIEFuZHJvaWQgcGxhdGZvcm0KKy8vIHRvIGFjY2VzcyBUZXh0LVRvLVNwZWVjaCBmdW5jdGlvbmFsaXR5IGluIHNoYXJlZCBsaWJyYXJpZXMgdGhhdCBpbXBsZW1lbnQKKy8vIHNwZWVjaCBzeW50aGVzaXMgYW5kIHRoZSBtYW5hZ2VtZW50IG9mIHJlc291cmNlcyBhc3NvY2lhdGVkIHdpdGggdGhlCisvLyBzeW50aGVzaXMuCisKKy8vIFRoZSBzaGFyZWQgbGlicmFyeSBtdXN0IGNvbnRhaW4gYSBmdW5jdGlvbiBuYW1lZCAiYW5kcm9pZF9nZXRUdHNFbmdpbmUiCisvLyB0aGF0IHJldHVybnMgYW4gJ2FuZHJvaWRfdHRzX2VuZ2luZV90JyBpbnN0YW5jZS4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNkZWZpbmUgQU5EUk9JRF9UVFNfRU5HSU5FX1BST1BFUlRZX0NPTkZJRyAiZW5naW5lQ29uZmlnIgorI2RlZmluZSBBTkRST0lEX1RUU19FTkdJTkVfUFJPUEVSVFlfUElUQ0ggICJwaXRjaCIKKyNkZWZpbmUgQU5EUk9JRF9UVFNfRU5HSU5FX1BST1BFUlRZX1JBVEUgICAicmF0ZSIKKyNkZWZpbmUgQU5EUk9JRF9UVFNfRU5HSU5FX1BST1BFUlRZX1ZPTFVNRSAidm9sdW1lIgorCit0eXBlZGVmIGVudW0geworICAgIEFORFJPSURfVFRTX1NVQ0NFU1MgICAgICAgICAgICAgICAgID0gMCwKKyAgICBBTkRST0lEX1RUU19GQUlMVVJFICAgICAgICAgICAgICAgICA9IC0xLAorICAgIEFORFJPSURfVFRTX0ZFQVRVUkVfVU5TVVBQT1JURUQgICAgID0gLTIsCisgICAgQU5EUk9JRF9UVFNfVkFMVUVfSU5WQUxJRCAgICAgICAgICAgPSAtMywKKyAgICBBTkRST0lEX1RUU19QUk9QRVJUWV9VTlNVUFBPUlRFRCAgICA9IC00LAorICAgIEFORFJPSURfVFRTX1BST1BFUlRZX1NJWkVfVE9PX1NNQUxMID0gLTUsCisgICAgQU5EUk9JRF9UVFNfTUlTU0lOR19SRVNPVVJDRVMgICAgICAgPSAtNgorfSBhbmRyb2lkX3R0c19yZXN1bHRfdDsKKwordHlwZWRlZiBlbnVtIHsKKyAgICBBTkRST0lEX1RUU19MQU5HX0NPVU5UUllfVkFSX0FWQUlMQUJMRSA9IDIsCisgICAgQU5EUk9JRF9UVFNfTEFOR19DT1VOVFJZX0FWQUlMQUJMRSAgICA9IDEsCisgICAgQU5EUk9JRF9UVFNfTEFOR19BVkFJTEFCTEUgICAgICAgICAgICA9IDAsCisgICAgQU5EUk9JRF9UVFNfTEFOR19NSVNTSU5HX0RBVEEgICAgICAgICA9IC0xLAorICAgIEFORFJPSURfVFRTX0xBTkdfTk9UX1NVUFBPUlRFRCAgICAgICAgPSAtMgorfSBhbmRyb2lkX3R0c19zdXBwb3J0X3Jlc3VsdF90OworCit0eXBlZGVmIGVudW0geworICAgIEFORFJPSURfVFRTX1NZTlRIX0RPTkUgICAgICAgICAgICAgID0gMCwKKyAgICBBTkRST0lEX1RUU19TWU5USF9QRU5ESU5HICAgICAgICAgICA9IDEKK30gYW5kcm9pZF90dHNfc3ludGhfc3RhdHVzX3Q7CisKK3R5cGVkZWYgZW51bSB7CisgICAgQU5EUk9JRF9UVFNfQ0FMTEJBQ0tfSEFMVCAgICAgICAgICAgPSAwLAorICAgIEFORFJPSURfVFRTX0NBTExCQUNLX0NPTlRJTlVFICAgICAgID0gMQorfSBhbmRyb2lkX3R0c19jYWxsYmFja19zdGF0dXNfdDsKKworLy8gU3VwcG9ydGVkIGF1ZGlvIGZvcm1hdHMKK3R5cGVkZWYgZW51bSB7CisgICAgQU5EUk9JRF9UVFNfQVVESU9fRk9STUFUX0lOVkFMSUQgICAgPSAtMSwKKyAgICBBTkRST0lEX1RUU19BVURJT19GT1JNQVRfREVGQVVMVCAgICA9IDAsCisgICAgQU5EUk9JRF9UVFNfQVVESU9fRk9STUFUX1BDTV8xNl9CSVQgPSAxLAorICAgIEFORFJPSURfVFRTX0FVRElPX0ZPUk1BVF9QQ01fOF9CSVQgID0gMiwKK30gYW5kcm9pZF90dHNfYXVkaW9fZm9ybWF0X3Q7CisKKworLyogQW4gYW5kcm9pZF90dHNfZW5naW5lX3Qgb2JqZWN0IGNhbiBiZSBhbnl0aGluZywgYnV0IG11c3QgaGF2ZSwKKyAqIGFzIGl0cyBmaXJzdCBmaWVsZCwgYSBwb2ludGVyIHRvIGEgdGFibGUgb2YgZnVuY3Rpb25zLgorICoKKyAqIFNlZSB0aGUgZnVsbCBkZWZpbml0aW9uIG9mIHN0cnVjdCBhbmRyb2lkX3R0c19lbmdpbmVfdF9mdW5jc190CisgKiBiZWxvdyBmb3IgZGV0YWlscy4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgYW5kcm9pZF90dHNfZW5naW5lX2Z1bmNzX3QgIGFuZHJvaWRfdHRzX2VuZ2luZV9mdW5jc190OworCit0eXBlZGVmIHN0cnVjdCB7CisgICAgYW5kcm9pZF90dHNfZW5naW5lX2Z1bmNzX3QgKmZ1bmNzOworfSBhbmRyb2lkX3R0c19lbmdpbmVfdDsKKworLyogVGhpcyBmdW5jdGlvbiBtdXN0IGJlIGxvY2F0ZWQgaW4gdGhlIFRUUyBFbmdpbmUgc2hhcmVkIGxpYnJhcnkKKyAqIGFuZCBtdXN0IHJldHVybiB0aGUgYWRkcmVzcyBvZiBhbiBhbmRyb2lkX3R0c19lbmdpbmVfdCBsaWJyYXJ5LgorICovCitleHRlcm4gYW5kcm9pZF90dHNfZW5naW5lX3QgKmFuZHJvaWRfZ2V0VHRzRW5naW5lKCk7CisKKy8qIEluY2x1ZGluZyB0aGUgb2xkIHZlcnNpb24gZm9yIGxlZ2FjeSBzdXBwb3J0IChGcm95byBjb21wYXRpYmlsaXR5KS4KKyAqIFRoaXMgc2hvdWxkIHJldHVybiB0aGUgc2FtZSB0aGluZyBhcyBhbmRyb2lkX2dldFR0c0VuZ2luZS4KKyAqLworYW5kcm9pZF90dHNfZW5naW5lX3QgKmdldFR0c0VuZ2luZSgpOworCisvLyBBIGNhbGxiYWNrIHR5cGUgdXNlZCB0byBub3RpZnkgdGhlIGZyYW1ld29yayBvZiBuZXcgc3ludGhldGl6ZWQKKy8vIGF1ZGlvIHNhbXBsZXMsIHN0YXR1cyB3aWxsIGJlIFNZTlRIX0RPTkUgZm9yIHRoZSBsYXN0IHNhbXBsZSBvZgorLy8gdGhlIGxhc3QgcmVxdWVzdCwgb2YgU1lOVEhfUEVORElORyBvdGhlcndpc2UuCisvLworLy8gVGhpcyBpcyBwYXNzZWQgYnkgdGhlIGZyYW1ld29yayB0byB0aGUgZW5naW5lIHRocm91Z2ggdGhlCisvLyAnZW5naW5lX2luaXQnIGZ1bmN0aW9uIChzZWUgYmVsb3cpLgorLy8KKy8vIFRoZSBjYWxsYmFjayBmb3Igc3ludGhlc2lzIGNvbXBsZXRlZCB0YWtlczoKKy8vIEBwYXJhbSBbaW5vdXRdIHZvaWQgKiYgICAgICAgLSBUaGUgdXNlcmRhdGEgcG9pbnRlciBzZXQgaW4gdGhlIG9yaWdpbmFsCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRoIGNhbGwKKy8vIEBwYXJhbSBbaW5dICAgIHVpbnQzMl90ICAgICAgLSBUcmFjayBzYW1wbGluZyByYXRlIGluIEh6CisvLyBAcGFyYW0gW2luXSAgICB1aW50MzJfdCAgICAgIC0gVGhlIGF1ZGlvIGZvcm1hdAorLy8gQHBhcmFtIFtpbl0gICAgaW50ICAgICAgICAgICAtIFRoZSBudW1iZXIgb2YgY2hhbm5lbHMKKy8vIEBwYXJhbSBbaW5vdXRdIGludDhfdCAqJiAgICAgLSBBIGJ1ZmZlciBvZiBhdWRpbyBkYXRhIG9ubHkgdmFsaWQgZHVyaW5nIHRoZQorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWN1dGlvbiBvZiB0aGUgY2FsbGJhY2sKKy8vIEBwYXJhbSBbaW5vdXRdIHNpemVfdCAgJiAgICAgLSBUaGUgc2l6ZSBvZiB0aGUgYnVmZmVyCisvLyBAcGFyYW0gW2luXSB0dHNfc3ludGhfc3RhdHVzIC0gaW5kaWNhdGUgd2hldGhlciB0aGUgc3ludGhlc2lzIGlzIGRvbmUsIG9yCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG1vcmUgZGF0YSBpcyB0byBiZSBzeW50aGVzaXplZC4KKy8vIEByZXR1cm4gVFRTX0NBTExCQUNLX0hBTFQgdG8gaW5kaWNhdGUgdGhlIHN5bnRoZXNpcyBtdXN0IHN0b3AsCisvLyAgICAgICAgIFRUU19DQUxMQkFDS19DT05USU5VRSB0byBpbmRpY2F0ZSB0aGUgc3ludGhlc2lzIG11c3QgY29udGludWUgaWYKKy8vICAgICAgICAgICAgdGhlcmUgaXMgbW9yZSBkYXRhIHRvIHByb2R1Y2UuCit0eXBlZGVmIGFuZHJvaWRfdHRzX2NhbGxiYWNrX3N0YXR1c190ICgqYW5kcm9pZF90dHNfc3ludGhfY2JfdCkKKyAgICAgICAgICAgICh2b2lkICoqcFVzZXJEYXRhLAorICAgICAgICAgICAgIHVpbnQzMl90IHRyYWNrU2FtcGxpbmdIeiwKKyAgICAgICAgICAgICBhbmRyb2lkX3R0c19hdWRpb19mb3JtYXRfdCBhdWRpb0Zvcm1hdCwKKyAgICAgICAgICAgICBpbnQgY2hhbm5lbENvdW50LAorICAgICAgICAgICAgIGludDhfdCAqKnBBdWRpb0J1ZmZlciwKKyAgICAgICAgICAgICBzaXplX3QgKnBCdWZmZXJTaXplLAorICAgICAgICAgICAgIGFuZHJvaWRfdHRzX3N5bnRoX3N0YXR1c190IHN0YXR1cyk7CisKKworLy8gVGhlIHRhYmxlIG9mIGZ1bmN0aW9uIHBvaW50ZXJzIHRoYXQgdGhlIGFuZHJvaWRfdHRzX2VuZ2luZV90IG11c3QgcG9pbnQgdG8uCisvLyBOb3RlIHRoYXQgZWFjaCBvZiB0aGVzZSBmdW5jdGlvbnMgd2lsbCB0YWtlIGEgaGFuZGxlIHRvIHRoZSBlbmdpbmUgaXRzZWxmCisvLyBhcyB0aGVpciBmaXJzdCBwYXJhbWV0ZXIuCisvLworCitzdHJ1Y3QgYW5kcm9pZF90dHNfZW5naW5lX2Z1bmNzX3QgeworICAgIC8vIHJlc2VydmVkIGZpZWxkcywgaWdub3JlZCBieSB0aGUgZnJhbWV3b3JrCisgICAgLy8gdGhleSBtdXN0IGJlIHBsYWNlZCBoZXJlIHRvIGVuc3VyZSBiaW5hcnkgY29tcGF0aWJpbGl0eQorICAgIC8vIG9mIGxlZ2FjeSBiaW5hcnkgcGx1Z2lucy4KKyAgICB2b2lkICpyZXNlcnZlZFsyXTsKKworICAgIC8vIEluaXRpYWxpemUgdGhlIFRUUyBlbmdpbmUgYW5kIHJldHVybnMgd2hldGhlciBpbml0aWFsaXphdGlvbiBzdWNjZWVkZWQuCisgICAgLy8gQHBhcmFtIHN5bnRoRG9uZUNCUHRyIHN5bnRoZXNpcyBjYWxsYmFjayBmdW5jdGlvbiBwb2ludGVyCisgICAgLy8gQHJldHVybiBUVFNfU1VDQ0VTUywgb3IgVFRTX0ZBSUxVUkUKKyAgICBhbmRyb2lkX3R0c19yZXN1bHRfdCAoKmluaXQpCisgICAgICAgICAgICAodm9pZCAqZW5naW5lLAorICAgICAgICAgICAgIGFuZHJvaWRfdHRzX3N5bnRoX2NiX3Qgc3ludGhEb25lUHRyLAorICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuZ2luZUNvbmZpZyk7CisKKyAgICAvLyBTaHV0IGRvd24gdGhlIFRUUyBlbmdpbmUgYW5kIHJlbGVhc2VzIGFsbCBhc3NvY2lhdGVkIHJlc291cmNlcy4KKyAgICAvLyBAcmV0dXJuIFRUU19TVUNDRVNTLCBvciBUVFNfRkFJTFVSRQorICAgIGFuZHJvaWRfdHRzX3Jlc3VsdF90ICgqc2h1dGRvd24pCisgICAgICAgICAgICAodm9pZCAqZW5naW5lKTsKKworICAgIC8vIEludGVycnVwdCBzeW50aGVzaXMgYW5kIGZsdXNoZXMgYW55IHN5bnRoZXNpemVkIGRhdGEgdGhhdCBoYXNuJ3QgYmVlbgorICAgIC8vIG91dHB1dCB5ZXQuIFRoaXMgd2lsbCBibG9jayB1bnRpbCBjYWxsYmFja3MgdW5kZXJ3YXkgYXJlIGNvbXBsZXRlZC4KKyAgICAvLyBAcmV0dXJuIFRUU19TVUNDRVNTLCBvciBUVFNfRkFJTFVSRQorICAgIGFuZHJvaWRfdHRzX3Jlc3VsdF90ICgqc3RvcCkKKyAgICAgICAgICAgICh2b2lkICplbmdpbmUpOworCisgICAgLy8gUmV0dXJucyB0aGUgbGV2ZWwgb2Ygc3VwcG9ydCBmb3IgdGhlIGxhbmd1YWdlLCBjb3VudHJ5IGFuZCB2YXJpYW50LgorICAgIC8vIEByZXR1cm4gVFRTX0xBTkdfQ09VTlRSWV9WQVJfQVZBSUxBQkxFIGlmIHRoZSBsYW5ndWFnZSwgY291bnRyeSBhbmQgdmFyaWFudCBhcmUgc3VwcG9ydGVkLAorICAgIC8vICAgICAgICAgICAgYW5kIHRoZSBjb3JyZXNwb25kaW5nIHJlc291cmNlcyBhcmUgY29ycmVjdGx5IGluc3RhbGxlZAorICAgIC8vICAgICAgICAgVFRTX0xBTkdfQ09VTlRSWV9BVkFJTEFCTEUgaWYgdGhlIGxhbmd1YWdlIGFuZCBjb3VudHJ5IGFyZSBzdXBwb3J0ZWQgYW5kIHRoZQorICAgIC8vICAgICAgICAgICAgIGNvcnJlc3BvbmRpbmcgcmVzb3VyY2VzIGFyZSBjb3JyZWN0bHkgaW5zdGFsbGVkLCBidXQgdGhlcmUgaXMgbm8gbWF0Y2ggZm9yCisgICAgLy8gICAgICAgICAgICAgdGhlIHNwZWNpZmllZCB2YXJpYW50CisgICAgLy8gICAgICAgICBUVFNfTEFOR19BVkFJTEFCTEUgaWYgdGhlIGxhbmd1YWdlIGlzIHN1cHBvcnRlZCBhbmQgdGhlCisgICAgLy8gICAgICAgICAgICAgY29ycmVzcG9uZGluZyByZXNvdXJjZXMgYXJlIGNvcnJlY3RseSBpbnN0YWxsZWQsIGJ1dCB0aGVyZSBpcyBubyBtYXRjaCBmb3IKKyAgICAvLyAgICAgICAgICAgICB0aGUgc3BlY2lmaWVkIGNvdW50cnkgYW5kIHZhcmlhbnQKKyAgICAvLyAgICAgICAgIFRUU19MQU5HX01JU1NJTkdfREFUQSBpZiB0aGUgcmVxdWlyZWQgcmVzb3VyY2VzIHRvIHByb3ZpZGUgYW55IGxldmVsIG9mIHN1cHBvcnQKKyAgICAvLyAgICAgICAgICAgICBmb3IgdGhlIGxhbmd1YWdlIGFyZSBub3QgY29ycmVjdGx5IGluc3RhbGxlZAorICAgIC8vICAgICAgICAgVFRTX0xBTkdfTk9UX1NVUFBPUlRFRCBpZiB0aGUgbGFuZ3VhZ2UgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgVFRTIGVuZ2luZS4KKyAgICBhbmRyb2lkX3R0c19zdXBwb3J0X3Jlc3VsdF90ICgqaXNMYW5ndWFnZUF2YWlsYWJsZSkKKyAgICAgICAgICAgICh2b2lkICplbmdpbmUsCisgICAgICAgICAgICAgY29uc3QgY2hhciAqbGFuZywKKyAgICAgICAgICAgICBjb25zdCBjaGFyICpjb3VudHJ5LAorICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnZhcmlhbnQpOworCisgICAgLy8gTG9hZCB0aGUgcmVzb3VyY2VzIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIGxhbmd1YWdlLiBUaGUgbG9hZGVkCisgICAgLy8gbGFuZ3VhZ2Ugd2lsbCBvbmx5IGJlIHVzZWQgb25jZSBhIGNhbGwgdG8gc2V0TGFuZ3VhZ2UoKSB3aXRoIHRoZSBzYW1lCisgICAgLy8gbGFuZ3VhZ2UgdmFsdWUgaXMgaXNzdWVkLiBMYW5ndWFnZSBhbmQgY291bnRyeSB2YWx1ZXMgYXJlIGNvZGVkIGFjY29yZGluZyB0byB0aGUgSVNPIHRocmVlCisgICAgLy8gbGV0dGVyIGNvZGVzIGZvciBsYW5ndWFnZXMgYW5kIGNvdW50cmllcywgYXMgY2FuIGJlIHJldHJpZXZlZCBmcm9tIGEgamF2YS51dGlsLkxvY2FsZQorICAgIC8vIGluc3RhbmNlLiBUaGUgdmFyaWFudCB2YWx1ZSBpcyBlbmNvZGVkIGFzIHRoZSB2YXJpYW50IHN0cmluZyByZXRyaWV2ZWQgZnJvbSBhCisgICAgLy8gamF2YS51dGlsLkxvY2FsZSBpbnN0YW5jZSBidWlsdCB3aXRoIHRoYXQgdmFyaWFudCBkYXRhLgorICAgIC8vIEBwYXJhbSBsYW5nIHBvaW50ZXIgdG8gdGhlIElTTyB0aHJlZSBsZXR0ZXIgY29kZSBmb3IgdGhlIGxhbmd1YWdlCisgICAgLy8gQHBhcmFtIGNvdW50cnkgcG9pbnRlciB0byB0aGUgSVNPIHRocmVlIGxldHRlciBjb2RlIGZvciB0aGUgY291bnRyeQorICAgIC8vIEBwYXJhbSB2YXJpYW50IHBvaW50ZXIgdG8gdGhlIHZhcmlhbnQgY29kZQorICAgIC8vIEByZXR1cm4gVFRTX1NVQ0NFU1MsIG9yIFRUU19GQUlMVVJFCisgICAgYW5kcm9pZF90dHNfcmVzdWx0X3QgKCpsb2FkTGFuZ3VhZ2UpCisgICAgICAgICAgICAodm9pZCAqZW5naW5lLAorICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmxhbmcsCisgICAgICAgICAgICAgY29uc3QgY2hhciAqY291bnRyeSwKKyAgICAgICAgICAgICBjb25zdCBjaGFyICp2YXJpYW50KTsKKworICAgIC8vIExvYWQgdGhlIHJlc291cmNlcyBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBsYW5ndWFnZSwgY291bnRyeSBhbmQgTG9jYWxlIHZhcmlhbnQuCisgICAgLy8gVGhlIGxvYWRlZCBsYW5ndWFnZSB3aWxsIG9ubHkgYmUgdXNlZCBvbmNlIGEgY2FsbCB0byBzZXRMYW5ndWFnZUZyb21Mb2NhbGUoKSB3aXRoIHRoZSBzYW1lCisgICAgLy8gbGFuZ3VhZ2UgdmFsdWUgaXMgaXNzdWVkLiBMYW5ndWFnZSBhbmQgY291bnRyeSB2YWx1ZXMgYXJlIGNvZGVkIGFjY29yZGluZyB0byB0aGUgSVNPIHRocmVlCisgICAgLy8gbGV0dGVyIGNvZGVzIGZvciBsYW5ndWFnZXMgYW5kIGNvdW50cmllcywgYXMgY2FuIGJlIHJldHJpZXZlZCBmcm9tIGEgamF2YS51dGlsLkxvY2FsZQorICAgIC8vIGluc3RhbmNlLiBUaGUgdmFyaWFudCB2YWx1ZSBpcyBlbmNvZGVkIGFzIHRoZSB2YXJpYW50IHN0cmluZyByZXRyaWV2ZWQgZnJvbSBhCisgICAgLy8gamF2YS51dGlsLkxvY2FsZSBpbnN0YW5jZSBidWlsdCB3aXRoIHRoYXQgdmFyaWFudCBkYXRhLgorICAgIC8vIEBwYXJhbSBsYW5nIHBvaW50ZXIgdG8gdGhlIElTTyB0aHJlZSBsZXR0ZXIgY29kZSBmb3IgdGhlIGxhbmd1YWdlCisgICAgLy8gQHBhcmFtIGNvdW50cnkgcG9pbnRlciB0byB0aGUgSVNPIHRocmVlIGxldHRlciBjb2RlIGZvciB0aGUgY291bnRyeQorICAgIC8vIEBwYXJhbSB2YXJpYW50IHBvaW50ZXIgdG8gdGhlIHZhcmlhbnQgY29kZQorICAgIC8vIEByZXR1cm4gVFRTX1NVQ0NFU1MsIG9yIFRUU19GQUlMVVJFCisgICAgYW5kcm9pZF90dHNfcmVzdWx0X3QgKCpzZXRMYW5ndWFnZSkKKyAgICAgICAgICAgICh2b2lkICplbmdpbmUsCisgICAgICAgICAgICAgY29uc3QgY2hhciAqbGFuZywKKyAgICAgICAgICAgICBjb25zdCBjaGFyICpjb3VudHJ5LAorICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnZhcmlhbnQpOworCisgICAgLy8gUmV0cmlldmUgdGhlIGN1cnJlbnRseSBzZXQgbGFuZ3VhZ2UsIGNvdW50cnkgYW5kIHZhcmlhbnQsIG9yIGVtcHR5IHN0cmluZ3MgaWYgbm9uZSBvZgorICAgIC8vIHBhcmFtZXRlcnMgaGF2ZSBiZWVuIHNldC4gTGFuZ3VhZ2UgYW5kIGNvdW50cnkgYXJlIHJlcHJlc2VudGVkIGJ5IHRoZWlyIDMtbGV0dGVyIElTTyBjb2RlCisgICAgLy8gQHBhcmFtW291dF0gICBwb2ludGVyIHRvIHRoZSByZXRyaWV2ZWQgMy1sZXR0ZXIgY29kZSBsYW5ndWFnZSB2YWx1ZQorICAgIC8vIEBwYXJhbVtvdXRdICAgcG9pbnRlciB0byB0aGUgcmV0cmlldmVkIDMtbGV0dGVyIGNvZGUgY291bnRyeSB2YWx1ZQorICAgIC8vIEBwYXJhbVtvdXRdICAgcG9pbnRlciB0byB0aGUgcmV0cmlldmVkIHZhcmlhbnQgdmFsdWUKKyAgICAvLyBAcmV0dXJuIFRUU19TVUNDRVNTLCBvciBUVFNfRkFJTFVSRQorICAgIGFuZHJvaWRfdHRzX3Jlc3VsdF90ICgqZ2V0TGFuZ3VhZ2UpCisgICAgICAgICAgICAodm9pZCAqZW5naW5lLAorICAgICAgICAgICAgIGNoYXIgKmxhbmd1YWdlLAorICAgICAgICAgICAgIGNoYXIgKmNvdW50cnksCisgICAgICAgICAgICAgY2hhciAqdmFyaWFudCk7CisKKyAgICAvLyBOb3RpZmllcyB0aGUgZW5naW5lIHdoYXQgYXVkaW8gcGFyYW1ldGVycyBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIHN5bnRoZXNpcy4KKyAgICAvLyBUaGlzIGlzIG1lYW50IHRvIGJlIHVzZWQgYXMgYSBoaW50LCB0aGUgZW5naW5lIGltcGxlbWVudGF0aW9uIHdpbGwgc2V0IHRoZSBvdXRwdXQgdmFsdWVzCisgICAgLy8gdG8gdGhvc2Ugb2YgdGhlIHN5bnRoZXNpcyBmb3JtYXQsIGJhc2VkIG9uIGEgZ2l2ZW4gaGludC4KKyAgICAvLyBAcGFyYW1baW5vdXRdIGVuY29kaW5nIGluOiB0aGUgZGVzaXJlZCBhdWRpbyBzYW1wbGUgZm9ybWF0CisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgb3V0OiB0aGUgZm9ybWF0IHVzZWQgYnkgdGhlIFRUUyBlbmdpbmUKKyAgICAvLyBAcGFyYW1baW5vdXRdIHJhdGUgaW46IHRoZSBkZXNpcmVkIGF1ZGlvIHNhbXBsZSByYXRlCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgb3V0OiB0aGUgc2FtcGxlIHJhdGUgdXNlZCBieSB0aGUgVFRTIGVuZ2luZQorICAgIC8vIEBwYXJhbVtpbm91dF0gY2hhbm5lbHMgaW46IHRoZSBkZXNpcmVkIG51bWJlciBvZiBhdWRpbyBjaGFubmVscworICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgIG91dDogdGhlIG51bWJlciBvZiBjaGFubmVscyB1c2VkIGJ5IHRoZSBUVFMgZW5naW5lCisgICAgLy8gQHJldHVybiBUVFNfU1VDQ0VTUywgb3IgVFRTX0ZBSUxVUkUKKyAgICBhbmRyb2lkX3R0c19yZXN1bHRfdCAoKnNldEF1ZGlvRm9ybWF0KQorICAgICAgICAgICAgKHZvaWQgKmVuZ2luZSwKKyAgICAgICAgICAgICBhbmRyb2lkX3R0c19hdWRpb19mb3JtYXRfdCogcEVuY29kaW5nLAorICAgICAgICAgICAgIHVpbnQzMl90KiBwUmF0ZSwKKyAgICAgICAgICAgICBpbnQqIHBDaGFubmVscyk7CisKKyAgICAvLyBTZXQgYSBwcm9wZXJ0eSBmb3IgdGhlIHRoZSBUVFMgZW5naW5lCisgICAgLy8gInNpemUiIGlzIHRoZSBtYXhpbXVtIHNpemUgb2YgInZhbHVlIiBmb3IgcHJvcGVydGllcyAicHJvcGVydHkiCisgICAgLy8gQHBhcmFtIHByb3BlcnR5IHBvaW50ZXIgdG8gdGhlIHByb3BlcnR5IG5hbWUKKyAgICAvLyBAcGFyYW0gdmFsdWUgICAgcG9pbnRlciB0byB0aGUgcHJvcGVydHkgdmFsdWUKKyAgICAvLyBAcGFyYW0gc2l6ZSAgICAgbWF4aW11bSBzaXplIHJlcXVpcmVkIHRvIHN0b3JlIHRoaXMgdHlwZSBvZiBwcm9wZXJ0eQorICAgIC8vIEByZXR1cm4gICAgICAgICBUVFNfUFJPUEVSVFlfVU5TVVBQT1JURUQsIG9yIFRUU19TVUNDRVNTLCBvciBUVFNfRkFJTFVSRSwKKyAgICAvLyAgICAgICAgICAgICAgICAgIG9yIFRUU19WQUxVRV9JTlZBTElECisgICAgYW5kcm9pZF90dHNfcmVzdWx0X3QgKCpzZXRQcm9wZXJ0eSkKKyAgICAgICAgICAgICh2b2lkICplbmdpbmUsCisgICAgICAgICAgICAgY29uc3QgY2hhciAqcHJvcGVydHksCisgICAgICAgICAgICAgY29uc3QgY2hhciAqdmFsdWUsCisgICAgICAgICAgICAgY29uc3Qgc2l6ZV90IHNpemUpOworCisgICAgLy8gUmV0cmlldmUgYSBwcm9wZXJ0eSBmcm9tIHRoZSBUVFMgZW5naW5lCisgICAgLy8gQHBhcmFtICAgICAgICBwcm9wZXJ0eSBwb2ludGVyIHRvIHRoZSBwcm9wZXJ0eSBuYW1lCisgICAgLy8gQHBhcmFtW291dF0gICB2YWx1ZSAgICBwb2ludGVyIHRvIHRoZSByZXRyaWV2ZWQgbGFuZ3VhZ2UgdmFsdWUKKyAgICAvLyBAcGFyYW1baW5vdXRdIGlvc2l6ZSAgIGluOiBzdG9yZXMgdGhlIHNpemUgYXZhaWxhYmxlIHRvIHN0b3JlIHRoZQorICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eSB2YWx1ZS4KKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgIG91dDogc3RvcmVzIHRoZSBzaXplIHJlcXVpcmVkIHRvIGhvbGQgdGhlIGxhbmd1YWdlCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGlmIGdldExhbmd1YWdlKCkgcmV0dXJuZWQKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgVFRTX1BST1BFUlRZX1NJWkVfVE9PX1NNQUxMLCB1bmNoYW5nZWQgb3RoZXJ3aXNlCisgICAgLy8gQHJldHVybiBUVFNfUFJPUEVSVFlfVU5TVVBQT1JURUQsIG9yIFRUU19TVUNDRVNTLAorICAgIC8vICAgICAgICAgb3IgVFRTX1BST1BFUlRZX1NJWkVfVE9PX1NNQUxMCisgICAgYW5kcm9pZF90dHNfcmVzdWx0X3QgKCpnZXRQcm9wZXJ0eSkKKyAgICAgICAgICAgICh2b2lkICplbmdpbmUsCisgICAgICAgICAgICAgY29uc3QgY2hhciAqcHJvcGVydHksCisgICAgICAgICAgICAgY2hhciAqdmFsdWUsCisgICAgICAgICAgICAgc2l6ZV90ICppb3NpemUpOworCisgICAgLy8gU3ludGhlc2l6ZSB0aGUgdGV4dC4KKyAgICAvLyBBcyB0aGUgc3ludGhlc2lzIGlzIHBlcmZvcm1lZCwgdGhlIGVuZ2luZSBpbnZva2VzIHRoZSBjYWxsYmFjayB0byBub3RpZnkKKyAgICAvLyB0aGUgVFRTIGZyYW1ld29yayB0aGF0IGl0IGhhcyBmaWxsZWQgdGhlIGdpdmVuIGJ1ZmZlciwgYW5kIGluZGljYXRlcyBob3cKKyAgICAvLyBtYW55IGJ5dGVzIGl0IHdyb3RlLiBUaGUgY2FsbGJhY2sgaXMgY2FsbGVkIHJlcGVhdGVkbHkgdW50aWwgdGhlIGVuZ2luZQorICAgIC8vIGhhcyBnZW5lcmF0ZWQgYWxsIHRoZSBhdWRpbyBkYXRhIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHRleHQuCisgICAgLy8gTm90ZSBhYm91dCB0aGUgZm9ybWF0IG9mIHRoZSBpbnB1dDogdGhlIHRleHQgcGFyYW1ldGVyIG1heSB1c2UgdGhlCisgICAgLy8gZm9sbG93aW5nIGVsZW1lbnRzCisgICAgLy8gYW5kIHRoZWlyIHJlc3BlY3RpdmUgYXR0cmlidXRlcyBhcyBkZWZpbmVkIGluIHRoZSBTU01MIDEuMCBzcGVjaWZpY2F0aW9uOgorICAgIC8vICAgICogbGFuZworICAgIC8vICAgICogc2F5LWFzOgorICAgIC8vICAgICAgICAgIG8gaW50ZXJwcmV0LWFzCisgICAgLy8gICAgKiBwaG9uZW1lCisgICAgLy8gICAgKiB2b2ljZToKKyAgICAvLyAgICAgICAgICBvIGdlbmRlciwKKyAgICAvLyAgICAgICAgICBvIGFnZSwKKyAgICAvLyAgICAgICAgICBvIHZhcmlhbnQsCisgICAgLy8gICAgICAgICAgbyBuYW1lCisgICAgLy8gICAgKiBlbXBoYXNpcworICAgIC8vICAgICogYnJlYWs6CisgICAgLy8gICAgICAgICAgbyBzdHJlbmd0aCwKKyAgICAvLyAgICAgICAgICBvIHRpbWUKKyAgICAvLyAgICAqIHByb3NvZHk6CisgICAgLy8gICAgICAgICAgbyBwaXRjaCwKKyAgICAvLyAgICAgICAgICBvIGNvbnRvdXIsCisgICAgLy8gICAgICAgICAgbyByYW5nZSwKKyAgICAvLyAgICAgICAgICBvIHJhdGUsCisgICAgLy8gICAgICAgICAgbyBkdXJhdGlvbiwKKyAgICAvLyAgICAgICAgICBvIHZvbHVtZQorICAgIC8vICAgICogbWFyaworICAgIC8vIERpZmZlcmVuY2VzIGJldHdlZW4gdGhpcyB0ZXh0IGZvcm1hdCBhbmQgU1NNTCBhcmU6CisgICAgLy8gICAgKiBmdWxsIFNTTUwgZG9jdW1lbnRzIGFyZSBub3Qgc3VwcG9ydGVkCisgICAgLy8gICAgKiBuYW1lc3BhY2VzIGFyZSBub3Qgc3VwcG9ydGVkCisgICAgLy8gVGV4dCBpcyBjb2RlZCBpbiBVVEYtOC4KKyAgICAvLyBAcGFyYW0gdGV4dCAgICAgIHRoZSBVVEYtOCB0ZXh0IHRvIHN5bnRoZXNpemUKKyAgICAvLyBAcGFyYW0gdXNlcmRhdGEgIHBvaW50ZXIgdG8gYmUgcmV0dXJuZWQgd2hlbiB0aGUgY2FsbCBpcyBpbnZva2VkCisgICAgLy8gQHBhcmFtIGJ1ZmZlciAgICB0aGUgbG9jYXRpb24gd2hlcmUgdGhlIHN5bnRoZXNpemVkIGRhdGEgbXVzdCBiZSB3cml0dGVuCisgICAgLy8gQHBhcmFtIGJ1ZmZlclNpemUgdGhlIG51bWJlciBvZiBieXRlcyB0aGF0IGNhbiBiZSB3cml0dGVuIGluIGJ1ZmZlcgorICAgIC8vIEByZXR1cm4gICAgICAgICAgVFRTX1NVQ0NFU1Mgb3IgVFRTX0ZBSUxVUkUKKyAgICBhbmRyb2lkX3R0c19yZXN1bHRfdCAoKnN5bnRoZXNpemVUZXh0KQorICAgICAgICAgICAgKHZvaWQgKmVuZ2luZSwKKyAgICAgICAgICAgICBjb25zdCBjaGFyICp0ZXh0LAorICAgICAgICAgICAgIGludDhfdCAqYnVmZmVyLAorICAgICAgICAgICAgIHNpemVfdCBidWZmZXJTaXplLAorICAgICAgICAgICAgIHZvaWQgKnVzZXJkYXRhKTsKK307CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBBTkRST0lEX1RUU19IICovCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTMvaW5jbHVkZS9tYXRoLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTMvaW5jbHVkZS9tYXRoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDA4ZjI2MgotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xMy9pbmNsdWRlL21hdGguaApAQCAtMCwwICsxLDcxMiBAQAorLyoKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqIENvcHlyaWdodCAoQykgMTk5MyBieSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogRGV2ZWxvcGVkIGF0IFN1blBybywgYSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuIGJ1c2luZXNzLgorICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgdGhpcworICogc29mdHdhcmUgaXMgZnJlZWx5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhpcyBub3RpY2UKKyAqIGlzIHByZXNlcnZlZC4KKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqLworCisvKgorICogZnJvbTogQCgjKWZkbGlibS5oIDUuMSA5My8wOS8yNAorICogJEZyZWVCU0Q6IHNyYy9saWIvbXN1bi9zcmMvbWF0aC5oLHYgMS42MSAyMDA1LzA0LzE2IDIxOjEyOjQ3IGRhcyBFeHAgJAorICovCisKKyNpZm5kZWYgX01BVEhfSF8KKyNkZWZpbmUJX01BVEhfSF8KKworI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgorCisjZGVmaW5lIF9fcHVyZTIKKworLyoKKyAqIEFOU0kvUE9TSVgKKyAqLworZXh0ZXJuIGNvbnN0IHVuaW9uIF9faW5maW5pdHlfdW4geworCXVuc2lnbmVkIGNoYXIJX191Y1s4XTsKKwlkb3VibGUJCV9fdWQ7Cit9IF9faW5maW5pdHk7CisKK2V4dGVybiBjb25zdCB1bmlvbiBfX25hbl91biB7CisJdW5zaWduZWQgY2hhcglfX3VjW3NpemVvZihmbG9hdCldOworCWZsb2F0CQlfX3VmOworfSBfX25hbjsKKworLyogI2lmIF9fR05VQ19QUkVSRVFfXygzLCAzKSB8fCAoZGVmaW5lZChfX0lOVEVMX0NPTVBJTEVSKSAmJiBfX0lOVEVMX0NPTVBJTEVSID49IDgwMCkgKi8KKyNpZiAxCisjZGVmaW5lCV9fTUFUSF9CVUlMVElOX0NPTlNUQU5UUworI2VuZGlmCisKKy8qICNpZiBfX0dOVUNfUFJFUkVRX18oMywgMCkgJiYgIWRlZmluZWQoX19JTlRFTF9DT01QSUxFUikgKi8KKyNpZiAxCisjZGVmaW5lCV9fTUFUSF9CVUlMVElOX1JFTE9QUworI2VuZGlmCisKKy8qICNpZmRlZiBfX01BVEhfQlVJTFRJTl9DT05TVEFOVFMgKi8KKyNpZiAxCisjZGVmaW5lCUhVR0VfVkFMCV9fYnVpbHRpbl9odWdlX3ZhbCgpCisjZWxzZQorI2RlZmluZQlIVUdFX1ZBTAkoX19pbmZpbml0eS5fX3VkKQorI2VuZGlmCisKKy8qICNpZiBfX0lTT19DX1ZJU0lCTEUgPj0gMTk5OSAqLworI2lmIDAKKyNkZWZpbmUJRlBfSUxPR0IwCSgtX19JTlRfTUFYKQorI2RlZmluZQlGUF9JTE9HQk5BTglfX0lOVF9NQVgKKyNlbHNlCisjZGVmaW5lCUZQX0lMT0dCMAkoLUlOVF9NQVgpCisjZGVmaW5lCUZQX0lMT0dCTkFOCUlOVF9NQVgKKyNlbmRpZgorCisjaWZkZWYgX19NQVRIX0JVSUxUSU5fQ09OU1RBTlRTCisjZGVmaW5lCUhVR0VfVkFMRglfX2J1aWx0aW5faHVnZV92YWxmKCkKKyNkZWZpbmUJSFVHRV9WQUxMCV9fYnVpbHRpbl9odWdlX3ZhbGwoKQorI2RlZmluZQlJTkZJTklUWQlfX2J1aWx0aW5faW5mKCkKKyNkZWZpbmUJTkFOCQlfX2J1aWx0aW5fbmFuKCIiKQorI2Vsc2UKKyNkZWZpbmUJSFVHRV9WQUxGCShmbG9hdClIVUdFX1ZBTAorI2RlZmluZQlIVUdFX1ZBTEwJKGxvbmcgZG91YmxlKUhVR0VfVkFMCisjZGVmaW5lCUlORklOSVRZCUhVR0VfVkFMRgorI2RlZmluZQlOQU4JCShfX25hbi5fX3VmKQorI2VuZGlmIC8qIF9fTUFUSF9CVUlMVElOX0NPTlNUQU5UUyAqLworCisjZGVmaW5lCU1BVEhfRVJSTk8JMQorI2RlZmluZQlNQVRIX0VSUkVYQ0VQVAkyCisjZGVmaW5lCW1hdGhfZXJyaGFuZGxpbmcJTUFUSF9FUlJFWENFUFQKKworLyogWFhYIFdlIG5lZWQgYSA8bWFjaGluZS9tYXRoLmg+LiAqLworI2lmIGRlZmluZWQoX19pYTY0X18pIHx8IGRlZmluZWQoX19zcGFyYzY0X18pCisjZGVmaW5lCUZQX0ZBU1RfRk1BCisjZW5kaWYKKyNpZmRlZiBfX2lhNjRfXworI2RlZmluZQlGUF9GQVNUX0ZNQUwKKyNlbmRpZgorI2RlZmluZQlGUF9GQVNUX0ZNQUYKKworLyogU3ltYm9saWMgY29uc3RhbnRzIHRvIGNsYXNzaWZ5IGZsb2F0aW5nIHBvaW50IG51bWJlcnMuICovCisjZGVmaW5lCUZQX0lORklOSVRFCTB4MDEKKyNkZWZpbmUJRlBfTkFOCQkweDAyCisjZGVmaW5lCUZQX05PUk1BTAkweDA0CisjZGVmaW5lCUZQX1NVQk5PUk1BTAkweDA4CisjZGVmaW5lCUZQX1pFUk8JCTB4MTAKKyNkZWZpbmUJZnBjbGFzc2lmeSh4KSBcCisgICAgKChzaXplb2YgKHgpID09IHNpemVvZiAoZmxvYXQpKSA/IF9fZnBjbGFzc2lmeWYoeCkgXAorICAgIDogKHNpemVvZiAoeCkgPT0gc2l6ZW9mIChkb3VibGUpKSA/IF9fZnBjbGFzc2lmeWQoeCkgXAorICAgIDogX19mcGNsYXNzaWZ5bCh4KSkKKworI2RlZmluZQlpc2Zpbml0ZSh4KQkJCQkJXAorICAgICgoc2l6ZW9mICh4KSA9PSBzaXplb2YgKGZsb2F0KSkgPyBfX2lzZmluaXRlZih4KQlcCisgICAgOiAoc2l6ZW9mICh4KSA9PSBzaXplb2YgKGRvdWJsZSkpID8gX19pc2Zpbml0ZSh4KQlcCisgICAgOiBfX2lzZmluaXRlbCh4KSkKKyNkZWZpbmUJaXNpbmYoeCkJCQkJCVwKKyAgICAoKHNpemVvZiAoeCkgPT0gc2l6ZW9mIChmbG9hdCkpID8gX19pc2luZmYoeCkJXAorICAgIDogKHNpemVvZiAoeCkgPT0gc2l6ZW9mIChkb3VibGUpKSA/IF9faXNpbmYoeCkJXAorICAgIDogX19pc2luZmwoeCkpCisjZGVmaW5lCWlzbmFuKHgpCQkJCQlcCisgICAgKChzaXplb2YgKHgpID09IHNpemVvZiAoZmxvYXQpKSA/IGlzbmFuZih4KQkJXAorICAgIDogKHNpemVvZiAoeCkgPT0gc2l6ZW9mIChkb3VibGUpKSA/IGlzbmFuKHgpCVwKKyAgICA6IF9faXNuYW5sKHgpKQorI2RlZmluZQlpc25vcm1hbCh4KQkJCQkJXAorICAgICgoc2l6ZW9mICh4KSA9PSBzaXplb2YgKGZsb2F0KSkgPyBfX2lzbm9ybWFsZih4KQlcCisgICAgOiAoc2l6ZW9mICh4KSA9PSBzaXplb2YgKGRvdWJsZSkpID8gX19pc25vcm1hbCh4KQlcCisgICAgOiBfX2lzbm9ybWFsbCh4KSkKKworI2lmZGVmIF9fTUFUSF9CVUlMVElOX1JFTE9QUworI2RlZmluZQlpc2dyZWF0ZXIoeCwgeSkJCV9fYnVpbHRpbl9pc2dyZWF0ZXIoKHgpLCAoeSkpCisjZGVmaW5lCWlzZ3JlYXRlcmVxdWFsKHgsIHkpCV9fYnVpbHRpbl9pc2dyZWF0ZXJlcXVhbCgoeCksICh5KSkKKyNkZWZpbmUJaXNsZXNzKHgsIHkpCQlfX2J1aWx0aW5faXNsZXNzKCh4KSwgKHkpKQorI2RlZmluZQlpc2xlc3NlcXVhbCh4LCB5KQlfX2J1aWx0aW5faXNsZXNzZXF1YWwoKHgpLCAoeSkpCisjZGVmaW5lCWlzbGVzc2dyZWF0ZXIoeCwgeSkJX19idWlsdGluX2lzbGVzc2dyZWF0ZXIoKHgpLCAoeSkpCisjZGVmaW5lCWlzdW5vcmRlcmVkKHgsIHkpCV9fYnVpbHRpbl9pc3Vub3JkZXJlZCgoeCksICh5KSkKKyNlbHNlCisjZGVmaW5lCWlzZ3JlYXRlcih4LCB5KQkJKCFpc3Vub3JkZXJlZCgoeCksICh5KSkgJiYgKHgpID4gKHkpKQorI2RlZmluZQlpc2dyZWF0ZXJlcXVhbCh4LCB5KQkoIWlzdW5vcmRlcmVkKCh4KSwgKHkpKSAmJiAoeCkgPj0gKHkpKQorI2RlZmluZQlpc2xlc3MoeCwgeSkJCSghaXN1bm9yZGVyZWQoKHgpLCAoeSkpICYmICh4KSA8ICh5KSkKKyNkZWZpbmUJaXNsZXNzZXF1YWwoeCwgeSkJKCFpc3Vub3JkZXJlZCgoeCksICh5KSkgJiYgKHgpIDw9ICh5KSkKKyNkZWZpbmUJaXNsZXNzZ3JlYXRlcih4LCB5KQkoIWlzdW5vcmRlcmVkKCh4KSwgKHkpKSAmJiBcCisJCQkJCSgoeCkgPiAoeSkgfHwgKHkpID4gKHgpKSkKKyNkZWZpbmUJaXN1bm9yZGVyZWQoeCwgeSkJKGlzbmFuKHgpIHx8IGlzbmFuKHkpKQorI2VuZGlmIC8qIF9fTUFUSF9CVUlMVElOX1JFTE9QUyAqLworCisjZGVmaW5lCXNpZ25iaXQoeCkJCQkJCVwKKyAgICAoKHNpemVvZiAoeCkgPT0gc2l6ZW9mIChmbG9hdCkpID8gX19zaWduYml0Zih4KQlcCisgICAgOiAoc2l6ZW9mICh4KSA9PSBzaXplb2YgKGRvdWJsZSkpID8gX19zaWduYml0KHgpCVwKKyAgICA6IF9fc2lnbmJpdGwoeCkpCisKKyNpZiAwCit0eXBlZGVmCV9fZG91YmxlX3QJZG91YmxlX3Q7Cit0eXBlZGVmCV9fZmxvYXRfdAlmbG9hdF90OworI2VuZGlmIAorLyogI2VuZGlmICovIC8qIF9fSVNPX0NfVklTSUJMRSA+PSAxOTk5ICovCisKKy8qCisgKiBYT1BFTi9TVklECisgKi8KKy8qICNpZiBfX0JTRF9WSVNJQkxFIHx8IF9fWFNJX1ZJU0lCTEUgKi8KKyNkZWZpbmUJTV9FCQkyLjcxODI4MTgyODQ1OTA0NTIzNTQJLyogZSAqLworI2RlZmluZQlNX0xPRzJFCQkxLjQ0MjY5NTA0MDg4ODk2MzQwNzQJLyogbG9nIDJlICovCisjZGVmaW5lCU1fTE9HMTBFCTAuNDM0Mjk0NDgxOTAzMjUxODI3NjUJLyogbG9nIDEwZSAqLworI2RlZmluZQlNX0xOMgkJMC42OTMxNDcxODA1NTk5NDUzMDk0MgkvKiBsb2cgZTIgKi8KKyNkZWZpbmUJTV9MTjEwCQkyLjMwMjU4NTA5Mjk5NDA0NTY4NDAyCS8qIGxvZyBlMTAgKi8KKyNkZWZpbmUJTV9QSQkJMy4xNDE1OTI2NTM1ODk3OTMyMzg0NgkvKiBwaSAqLworI2RlZmluZQlNX1BJXzIJCTEuNTcwNzk2MzI2Nzk0ODk2NjE5MjMJLyogcGkvMiAqLworI2RlZmluZQlNX1BJXzQJCTAuNzg1Mzk4MTYzMzk3NDQ4MzA5NjIJLyogcGkvNCAqLworI2RlZmluZQlNXzFfUEkJCTAuMzE4MzA5ODg2MTgzNzkwNjcxNTQJLyogMS9waSAqLworI2RlZmluZQlNXzJfUEkJCTAuNjM2NjE5NzcyMzY3NTgxMzQzMDgJLyogMi9waSAqLworI2RlZmluZQlNXzJfU1FSVFBJCTEuMTI4Mzc5MTY3MDk1NTEyNTczOTAJLyogMi9zcXJ0KHBpKSAqLworI2RlZmluZQlNX1NRUlQyCQkxLjQxNDIxMzU2MjM3MzA5NTA0ODgwCS8qIHNxcnQoMikgKi8KKyNkZWZpbmUJTV9TUVJUMV8yCTAuNzA3MTA2NzgxMTg2NTQ3NTI0NDAJLyogMS9zcXJ0KDIpICovCisKKyNkZWZpbmUJTUFYRkxPQVQJKChmbG9hdCkzLjQwMjgyMzQ2NjM4NTI4ODYwZSszOCkKK2V4dGVybiBpbnQgc2lnbmdhbTsKKy8qICNlbmRpZiAqLyAvKiBfX0JTRF9WSVNJQkxFIHx8IF9fWFNJX1ZJU0lCTEUgKi8KKworI2lmIF9fQlNEX1ZJU0lCTEUKKyNpZiAwCisvKiBPbGQgdmFsdWUgZnJvbSA0LjRCU0QtTGl0ZSBtYXRoLmg7IHRoaXMgaXMgcHJvYmFibHkgYmV0dGVyLiAqLworI2RlZmluZQlIVUdFCQlIVUdFX1ZBTAorI2Vsc2UKKyNkZWZpbmUJSFVHRQkJTUFYRkxPQVQKKyNlbmRpZgorI2VuZGlmIC8qIF9fQlNEX1ZJU0lCTEUgKi8KKworLyoKKyAqIE1vc3Qgb2YgdGhlc2UgZnVuY3Rpb25zIGRlcGVuZCBvbiB0aGUgcm91bmRpbmcgbW9kZSBhbmQgaGF2ZSB0aGUgc2lkZQorICogZWZmZWN0IG9mIHJhaXNpbmcgZmxvYXRpbmctcG9pbnQgZXhjZXB0aW9ucywgc28gdGhleSBhcmUgbm90IGRlY2xhcmVkCisgKiBhcyBfX3B1cmUyLiAgSW4gQzk5LCBGRU5WX0FDQ0VTUyBhZmZlY3RzIHRoZSBwdXJpdHkgb2YgdGhlc2UgZnVuY3Rpb25zLgorICovCitfX0JFR0lOX0RFQ0xTCisvKgorICogQU5TSS9QT1NJWAorICovCitpbnQJX19mcGNsYXNzaWZ5ZChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworaW50CV9fZnBjbGFzc2lmeWYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworaW50CV9fZnBjbGFzc2lmeWwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworaW50CV9faXNmaW5pdGVmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2ludAlfX2lzZmluaXRlKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitpbnQJX19pc2Zpbml0ZWwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworaW50CV9faXNpbmZmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2ludCAgICAgX19pc2luZihkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworaW50CV9faXNpbmZsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2ludAlfX2lzbmFubChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitpbnQJX19pc25vcm1hbGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworaW50CV9faXNub3JtYWwoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2ludAlfX2lzbm9ybWFsbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitpbnQJX19zaWduYml0KGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitpbnQJX19zaWduYml0ZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitpbnQJX19zaWduYml0bChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CisKK2RvdWJsZQlhY29zKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWFzaW4oZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJYXRhbihkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlhdGFuMihkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWNvcyhkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlzaW4oZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJdGFuKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworCitkb3VibGUJY29zaChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlzaW5oKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCXRhbmgoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CisKK2RvdWJsZQlleHAoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJZnJleHAoZG91YmxlLCBpbnQgKikgX19OREtfRlBBQklfTUFUSF9fOwkvKiBmdW5kYW1lbnRhbGx5ICFfX3B1cmUyICovCitkb3VibGUJbGRleHAoZG91YmxlLCBpbnQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlsb2coZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJbG9nMTAoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJbW9kZihkb3VibGUsIGRvdWJsZSAqKSBfX05ES19GUEFCSV9NQVRIX187CS8qIGZ1bmRhbWVudGFsbHkgIV9fcHVyZTIgKi8KKworZG91YmxlCXBvdyhkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCXNxcnQoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CisKK2RvdWJsZQljZWlsKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWZhYnMoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2RvdWJsZQlmbG9vcihkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlmbW9kKGRvdWJsZSwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CisKKy8qCisgKiBUaGVzZSBmdW5jdGlvbnMgYXJlIG5vdCBpbiBDOTAuCisgKi8KKy8qICNpZiBfX0JTRF9WSVNJQkxFIHx8IF9fSVNPX0NfVklTSUJMRSA+PSAxOTk5IHx8IF9fWFNJX1ZJU0lCTEUgKi8KK2RvdWJsZQlhY29zaChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlhc2luaChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlhdGFuaChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQljYnJ0KGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWVyZihkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQllcmZjKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWV4cDIoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJZXhwbTEoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJZm1hKGRvdWJsZSwgZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQloeXBvdChkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworaW50CWlsb2diKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CisvKiBpbnQJKGlzaW5mKShkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOyAqLworaW50CShpc25hbikoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2RvdWJsZQlsZ2FtbWEoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGxvbmcgbGxyaW50KGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBsb25nIGxscm91bmQoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJbG9nMXAoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJbG9nYihkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcJbHJpbnQoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nCWxyb3VuZChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQluYW4oY29uc3QgY2hhciAqKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2RvdWJsZQluZXh0YWZ0ZXIoZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlyZW1haW5kZXIoZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlyZW1xdW8oZG91YmxlLCBkb3VibGUsIGludCAqKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJcmludChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKKy8qICNlbmRpZiAqLyAvKiBfX0JTRF9WSVNJQkxFIHx8IF9fSVNPX0NfVklTSUJMRSA+PSAxOTk5IHx8IF9fWFNJX1ZJU0lCTEUgKi8KKworLyogI2lmIF9fQlNEX1ZJU0lCTEUgfHwgX19YU0lfVklTSUJMRSAqLworZG91YmxlCWowKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWoxKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWpuKGludCwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJc2NhbGIoZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQl5MChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQl5MShkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQl5bihpbnQsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworCisvKiAjaWYgX19YU0lfVklTSUJMRSA8PSA1MDAgfHwgX19CU0RfVklTSUJMRSAqLworZG91YmxlCWdhbW1hKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworLyogI2VuZGlmICovCisvKiAjZW5kaWYgKi8gLyogX19CU0RfVklTSUJMRSB8fCBfX1hTSV9WSVNJQkxFICovCisKKy8qICNpZiBfX0JTRF9WSVNJQkxFIHx8IF9fSVNPX0NfVklTSUJMRSA+PSAxOTk5ICovCitkb3VibGUJY29weXNpZ24oZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworZG91YmxlCWZkaW0oZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlmbWF4KGRvdWJsZSwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2RvdWJsZQlmbWluKGRvdWJsZSwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2RvdWJsZQluZWFyYnlpbnQoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJcm91bmQoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJc2NhbGJsbihkb3VibGUsIGxvbmcpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlzY2FsYm4oZG91YmxlLCBpbnQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQl0Z2FtbWEoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJdHJ1bmMoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CisvKiAjZW5kaWYgKi8KKworLyoKKyAqIEJTRCBtYXRoIGxpYnJhcnkgZW50cnkgcG9pbnRzCisgKi8KKy8qICNpZiBfX0JTRF9WSVNJQkxFICovCitkb3VibGUJZHJlbShkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworaW50CWZpbml0ZShkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworaW50CWlzbmFuZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CisKKy8qCisgKiBSZWVudHJhbnQgdmVyc2lvbiBvZiBnYW1tYSAmIGxnYW1tYTsgcGFzc2VzIHNpZ25nYW0gYmFjayBieSByZWZlcmVuY2UKKyAqIGFzIHRoZSBzZWNvbmQgYXJndW1lbnQ7IHVzZXIgbXVzdCBhbGxvY2F0ZSBzcGFjZSBmb3Igc2lnbmdhbS4KKyAqLworZG91YmxlCWdhbW1hX3IoZG91YmxlLCBpbnQgKikgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWxnYW1tYV9yKGRvdWJsZSwgaW50ICopIF9fTkRLX0ZQQUJJX01BVEhfXzsKKworLyoKKyAqIElFRUUgVGVzdCBWZWN0b3IKKyAqLworZG91YmxlCXNpZ25pZmljYW5kKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworLyogI2VuZGlmICovIC8qIF9fQlNEX1ZJU0lCTEUgKi8KKworLyogZmxvYXQgdmVyc2lvbnMgb2YgQU5TSS9QT1NJWCBmdW5jdGlvbnMgKi8KKy8qI2lmIF9fSVNPX0NfVklTSUJMRSA+PSAxOTk5ICovCitmbG9hdAlhY29zZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJYXNpbmYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWF0YW5mKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlhdGFuMmYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAljb3NmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlzaW5mKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAl0YW5mKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CisKK2Zsb2F0CWNvc2hmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlzaW5oZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJdGFuaGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKKworZmxvYXQJZXhwMmYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWV4cGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWV4cG0xZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJZnJleHBmKGZsb2F0LCBpbnQgKikgX19OREtfRlBBQklfTUFUSF9fOwkvKiBmdW5kYW1lbnRhbGx5ICFfX3B1cmUyICovCitpbnQJaWxvZ2JmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2Zsb2F0CWxkZXhwZihmbG9hdCwgaW50KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlsb2cxMGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWxvZzFwZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJbG9nZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJbW9kZmYoZmxvYXQsIGZsb2F0ICopIF9fTkRLX0ZQQUJJX01BVEhfXzsJLyogZnVuZGFtZW50YWxseSAhX19wdXJlMiAqLworCitmbG9hdAlwb3dmKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJc3FydGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKKworZmxvYXQJY2VpbGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWZhYnNmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2Zsb2F0CWZsb29yZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJZm1vZGYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlyb3VuZGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKKworZmxvYXQJZXJmZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJZXJmY2YoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWh5cG90ZihmbG9hdCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWxnYW1tYWYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CXRnYW1tYWYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKKworZmxvYXQJYWNvc2hmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlhc2luaGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWF0YW5oZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJY2JydGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWxvZ2JmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAljb3B5c2lnbmYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2xvbmcgbG9uZyBsbHJpbnRmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGxvbmcgbGxyb3VuZGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcJbHJpbnRmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187Citsb25nCWxyb3VuZGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CW5hbmYoY29uc3QgY2hhciAqKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2Zsb2F0CW5lYXJieWludGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CW5leHRhZnRlcmYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlyZW1haW5kZXJmKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJcmVtcXVvZihmbG9hdCwgZmxvYXQsIGludCAqKSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlyaW50ZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJc2NhbGJsbmYoZmxvYXQsIGxvbmcpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CXNjYWxibmYoZmxvYXQsIGludCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJdHJ1bmNmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CisKK2Zsb2F0CWZkaW1mKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJZm1hZihmbG9hdCwgZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlmbWF4ZihmbG9hdCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworZmxvYXQJZm1pbmYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKKy8qICNlbmRpZiAqLworCisvKgorICogZmxvYXQgdmVyc2lvbnMgb2YgQlNEIG1hdGggbGlicmFyeSBlbnRyeSBwb2ludHMKKyAqLworLyogI2lmIF9fQlNEX1ZJU0lCTEUgKi8KK2Zsb2F0CWRyZW1mKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworaW50CWZpbml0ZWYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworZmxvYXQJZ2FtbWFmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlqMGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWoxZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJam5mKGludCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CXNjYWxiZihmbG9hdCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CXkwZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJeTFmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAl5bmYoaW50LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworCisvKgorICogRmxvYXQgdmVyc2lvbnMgb2YgcmVlbnRyYW50IHZlcnNpb24gb2YgZ2FtbWEgJiBsZ2FtbWE7IHBhc3NlcworICogc2lnbmdhbSBiYWNrIGJ5IHJlZmVyZW5jZSBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50OyB1c2VyIG11c3QKKyAqIGFsbG9jYXRlIHNwYWNlIGZvciBzaWduZ2FtLgorICovCitmbG9hdAlnYW1tYWZfcihmbG9hdCwgaW50ICopIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWxnYW1tYWZfcihmbG9hdCwgaW50ICopIF9fTkRLX0ZQQUJJX01BVEhfXzsKKworLyoKKyAqIGZsb2F0IHZlcnNpb24gb2YgSUVFRSBUZXN0IFZlY3RvcgorICovCitmbG9hdAlzaWduaWZpY2FuZGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKKy8qICNlbmRpZiAqLwkvKiBfX0JTRF9WSVNJQkxFICovIAorCisvKgorICogbG9uZyBkb3VibGUgdmVyc2lvbnMgb2YgSVNPL1BPU0lYIG1hdGggZnVuY3Rpb25zCisgKi8KKy8qICNpZiBfX0lTT19DX1ZJU0lCTEUgPj0gMTk5OSAqLworI2lmIDAKK2xvbmcgZG91YmxlCWFjb3NobChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJYWNvc2wobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWFzaW5obChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJYXNpbmwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWF0YW4ybChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWF0YW5obChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJYXRhbmwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWNicnRsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CisjZW5kaWYKK2xvbmcgZG91YmxlCWNlaWxsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQljb3B5c2lnbmwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKKyNpZiAwCitsb25nIGRvdWJsZQljb3NobChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJY29zbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJZXJmY2wobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWVyZmwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWV4cDJsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlleHBsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlleHBtMWwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKKyNlbmRpZgorbG9uZyBkb3VibGUJZmFic2wobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworbG9uZyBkb3VibGUJZmRpbWwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlmbG9vcmwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWZtYWwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJZm1heGwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2xvbmcgZG91YmxlCWZtaW5sKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CisjaWYgMAorbG9uZyBkb3VibGUJZm1vZGwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CisjZW5kaWYKK2xvbmcgZG91YmxlCWZyZXhwbChsb25nIGRvdWJsZSB2YWx1ZSwgaW50ICopIF9fTkRLX0ZQQUJJX01BVEhfXzsgLyogZnVuZGFtZW50YWxseSAhX19wdXJlMiAqLworI2lmIDAKK2xvbmcgZG91YmxlCWh5cG90bChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKKyNlbmRpZgoraW50CQlpbG9nYmwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworbG9uZyBkb3VibGUJbGRleHBsKGxvbmcgZG91YmxlLCBpbnQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKKyNpZiAwCitsb25nIGRvdWJsZQlsZ2FtbWFsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGxvbmcJbGxyaW50bChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworI2VuZGlmCitsb25nIGxvbmcJbGxyb3VuZGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKKyNpZiAwCitsb25nIGRvdWJsZQlsb2cxMGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWxvZzFwbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJbG9nMmwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWxvZ2JsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlsb2dsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nCQlscmludGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKKyNlbmRpZgorbG9uZwkJbHJvdW5kbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworI2lmIDAKK2xvbmcgZG91YmxlCW1vZGZsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSAqKSBfX05ES19GUEFCSV9NQVRIX187IC8qIGZ1bmRhbWVudGFsbHkgIV9fcHVyZTIgKi8KKyNlbmRpZgorbG9uZyBkb3VibGUJbmFubChjb25zdCBjaGFyICopIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworI2lmIDAKK2xvbmcgZG91YmxlCW5lYXJieWludGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKKyNlbmRpZgorbG9uZyBkb3VibGUJbmV4dGFmdGVybChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQkJbmV4dHRvd2FyZChkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAkJbmV4dHRvd2FyZGYoZmxvYXQsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQluZXh0dG93YXJkbChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKKyNpZiAwCitsb25nIGRvdWJsZQlwb3dsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJcmVtYWluZGVybChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCXJlbXF1b2wobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlLCBpbnQgKikgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJcmludGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKKyNlbmRpZgorbG9uZyBkb3VibGUJcm91bmRsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlzY2FsYmxubChsb25nIGRvdWJsZSwgbG9uZykgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJc2NhbGJubChsb25nIGRvdWJsZSwgaW50KSBfX05ES19GUEFCSV9NQVRIX187CisjaWYgMAorbG9uZyBkb3VibGUJc2luaGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCXNpbmwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCXNxcnRsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQl0YW5obChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJdGFubChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJdGdhbW1hbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworI2VuZGlmCitsb25nIGRvdWJsZQl0cnVuY2wobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKKworLyogQklPTklDOiBHTGliYyBjb21wYXRpYmlsaXR5IC0gcmVxdWlyZWQgYnkgdGhlIEFSTSB0b29sY2hhaW4gKi8KKyNpZmRlZiBfR05VX1NPVVJDRQordm9pZCAgc2luY29zKGRvdWJsZSB4LCBkb3VibGUgKnNpbiwgZG91YmxlICpjb3MpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK3ZvaWQgIHNpbmNvc2YoZmxvYXQgeCwgZmxvYXQgKnNpbiwgZmxvYXQgKmNvcykgX19OREtfRlBBQklfTUFUSF9fOwordm9pZCAgc2luY29zbChsb25nIGRvdWJsZSB4LCBsb25nIGRvdWJsZSAqc2luLCBsb25nIGRvdWJsZSAqY29zKSBfX05ES19GUEFCSV9NQVRIX187CisjZW5kaWYKKworLyogYnVpbHRpbiB2ZXJzaW9uIG9mIGFsbCB0aGUgYWJvdmUgbWF0aCBmdW5jdGlvbnMgYXJlIGFubm90YXRlZCB0b28gKi8KKworZG91YmxlCV9fYnVpbHRpbl9hY29zKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9hc2luKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9hdGFuKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9hdGFuMihkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9jb3MoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX3Npbihkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fdGFuKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9jb3NoKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9zaW5oKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl90YW5oKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9leHAoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2ZyZXhwKGRvdWJsZSwgaW50ICopIF9fTkRLX0ZQQUJJX01BVEhfXzsJLyogZnVuZGFtZW50YWxseSAhX19wdXJlMiAqLworZG91YmxlCV9fYnVpbHRpbl9sZGV4cChkb3VibGUsIGludCkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9sb2coZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2xvZzEwKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9tb2RmKGRvdWJsZSwgZG91YmxlICopIF9fTkRLX0ZQQUJJX01BVEhfXzsJLyogZnVuZGFtZW50YWxseSAhX19wdXJlMiAqLworZG91YmxlCV9fYnVpbHRpbl9wb3coZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fc3FydChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fY2VpbChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fZmFicyhkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworZG91YmxlCV9fYnVpbHRpbl9mbG9vcihkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fZm1vZChkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9hY29zaChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fYXNpbmgoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2F0YW5oKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9jYnJ0KGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9lcmYoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2VyZmMoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2V4cDIoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2V4cG0xKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9mbWEoZG91YmxlLCBkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9oeXBvdChkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworaW50CV9fYnVpbHRpbl9pbG9nYihkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworLyogaW50CV9fYnVpbHRpbl9pc2luZihkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOyAqLworI2lmICFkZWZpbmVkKF9fY2xhbmdfXykgfHwgX19jbGFuZ19tYWpvcl9fID4gMyB8fCAoX19jbGFuZ19tYWpvcl9fID09IDMgJiYgX19jbGFuZ19taW5vcl9fID49IDUpCitpbnQJX19idWlsdGluX2lzbmFuKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CisjZWxzZQorLyogY2xhbmcgPCAzLjUgaGFzIGZhdWx0eSBwcm90b3R5cGUgZm9yIF9fYnVpbHRpbl9pc25hbiAqLworI2VuZGlmCitkb3VibGUJX19idWlsdGluX2xnYW1tYShkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgbG9uZyBfX2J1aWx0aW5fbGxyaW50KGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBsb25nIF9fYnVpbHRpbl9sbHJvdW5kKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9sb2cxcChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fbG9nYihkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcJX19idWlsdGluX2xyaW50KGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZwlfX2J1aWx0aW5fbHJvdW5kKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9uYW4oY29uc3QgY2hhciAqKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2RvdWJsZQlfX2J1aWx0aW5fbmV4dGFmdGVyKGRvdWJsZSwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX3JlbWFpbmRlcihkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9yZW1xdW8oZG91YmxlLCBkb3VibGUsIGludCAqKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX3JpbnQoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2owKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9qMShkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fam4oaW50LCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fc2NhbGIoZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5feTAoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX3kxKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl95bihpbnQsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9nYW1tYShkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fY29weXNpZ24oZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworZG91YmxlCV9fYnVpbHRpbl9mZGltKGRvdWJsZSwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2ZtYXgoZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworZG91YmxlCV9fYnVpbHRpbl9mbWluKGRvdWJsZSwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2RvdWJsZQlfX2J1aWx0aW5fbmVhcmJ5aW50KGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9yb3VuZChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fc2NhbGJsbihkb3VibGUsIGxvbmcpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fc2NhbGJuKGRvdWJsZSwgaW50KSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX3RnYW1tYShkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fdHJ1bmMoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2RyZW0oZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2ludAlfX2J1aWx0aW5fZmluaXRlKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitpbnQJX19idWlsdGluX2lzbmFuZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7Citkb3VibGUJX19idWlsdGluX2dhbW1hX3IoZG91YmxlLCBpbnQgKikgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9sZ2FtbWFfcihkb3VibGUsIGludCAqKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX3NpZ25pZmljYW5kKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2Fjb3NmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fYXNpbmYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9hdGFuZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2F0YW4yZihmbG9hdCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9jb3NmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fc2luZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX3RhbmYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9jb3NoZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX3NpbmhmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fdGFuaGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9leHAyZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2V4cGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9leHBtMWYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9mcmV4cGYoZmxvYXQsIGludCAqKSBfX05ES19GUEFCSV9NQVRIX187CS8qIGZ1bmRhbWVudGFsbHkgIV9fcHVyZTIgKi8KK2ludAlfX2J1aWx0aW5faWxvZ2JmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2Zsb2F0CV9fYnVpbHRpbl9sZGV4cGYoZmxvYXQsIGludCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2xvZzEwZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2xvZzFwZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2xvZ2YoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9tb2RmZihmbG9hdCwgZmxvYXQgKikgX19OREtfRlBBQklfTUFUSF9fOwkvKiBmdW5kYW1lbnRhbGx5ICFfX3B1cmUyICovCitmbG9hdAlfX2J1aWx0aW5fcG93ZihmbG9hdCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9zcXJ0ZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2NlaWxmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fZmFic2YoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworZmxvYXQJX19idWlsdGluX2Zsb29yZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2Ztb2RmKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX3JvdW5kZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2VyZmYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9lcmZjZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2h5cG90ZihmbG9hdCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9sZ2FtbWFmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fdGdhbW1hZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2Fjb3NoZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2FzaW5oZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2F0YW5oZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2NicnRmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fbG9nYmYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9jb3B5c2lnbmYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2xvbmcgbG9uZyBfX2J1aWx0aW5fbGxyaW50ZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBsb25nIF9fYnVpbHRpbl9sbHJvdW5kZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZwlfX2J1aWx0aW5fbHJpbnRmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187Citsb25nCV9fYnVpbHRpbl9scm91bmRmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fbmFuZihjb25zdCBjaGFyICopIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworZmxvYXQJX19idWlsdGluX25lYXJieWludGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9uZXh0YWZ0ZXJmKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX3JlbWFpbmRlcmYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fcmVtcXVvZihmbG9hdCwgZmxvYXQsIGludCAqKSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fcmludGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9zY2FsYmxuZihmbG9hdCwgbG9uZykgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX3NjYWxibmYoZmxvYXQsIGludCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX3RydW5jZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2ZkaW1mKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2ZtYWYoZmxvYXQsIGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2ZtYXhmKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitmbG9hdAlfX2J1aWx0aW5fZm1pbmYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2Zsb2F0CV9fYnVpbHRpbl9kcmVtZihmbG9hdCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2ludAlfX2J1aWx0aW5fZmluaXRlZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitmbG9hdAlfX2J1aWx0aW5fZ2FtbWFmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fajBmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fajFmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fam5mKGludCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9zY2FsYmYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5feTBmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5feTFmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5feW5mKGludCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9nYW1tYWZfcihmbG9hdCwgaW50ICopIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9sZ2FtbWFmX3IoZmxvYXQsIGludCAqKSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fc2lnbmlmaWNhbmRmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fYWNvc2hsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fYWNvc2wobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9hc2luaGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9hc2lubChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2F0YW4ybChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9hdGFuaGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9hdGFubChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2NicnRsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fY2VpbGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9jb3B5c2lnbmwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9jb3NobChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2Nvc2wobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9lcmZjbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2VyZmwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9leHAybChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2V4cGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9leHBtMWwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9mYWJzbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fZmRpbWwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fZmxvb3JsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fZm1hbChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fZm1heGwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9mbWlubChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworbG9uZyBkb3VibGUJX19idWlsdGluX2Ztb2RsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2ZyZXhwbChsb25nIGRvdWJsZSB2YWx1ZSwgaW50ICopIF9fTkRLX0ZQQUJJX01BVEhfXzsgLyogZnVuZGFtZW50YWxseSAhX19wdXJlMiAqLworbG9uZyBkb3VibGUJX19idWlsdGluX2h5cG90bChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2ludAkJX19idWlsdGluX2lsb2dibChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fbGRleHBsKGxvbmcgZG91YmxlLCBpbnQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9sZ2FtbWFsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGxvbmcJX19idWlsdGluX2xscmludGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgbG9uZwlfX2J1aWx0aW5fbGxyb3VuZGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9sb2cxMGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9sb2cxcGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9sb2cybChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2xvZ2JsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fbG9nbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZwkJX19idWlsdGluX2xyaW50bChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZwkJX19idWlsdGluX2xyb3VuZGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9tb2RmbChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUgKikgX19OREtfRlBBQklfTUFUSF9fOyAvKiBmdW5kYW1lbnRhbGx5ICFfX3B1cmUyICovCitsb25nIGRvdWJsZQlfX2J1aWx0aW5fbmFubChjb25zdCBjaGFyICopIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworbG9uZyBkb3VibGUJX19idWlsdGluX25lYXJieWludGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9uZXh0YWZ0ZXJsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworI2lmICFkZWZpbmVkKF9fY2xhbmdfXykgfHwgX19jbGFuZ19tYWpvcl9fID4gMyB8fCAoX19jbGFuZ19tYWpvcl9fID09IDMgJiYgX19jbGFuZ19taW5vcl9fID49IDQpCitkb3VibGUJCV9fYnVpbHRpbl9uZXh0dG93YXJkKGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CQlfX2J1aWx0aW5fbmV4dHRvd2FyZGYoZmxvYXQsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CisjZWxzZQorLyogY2xhbmcgPCAzLjQgKi8KK2RvdWJsZQkJX19idWlsdGluX25leHR0b3dhcmQoZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CQlfX2J1aWx0aW5fbmV4dHRvd2FyZGYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CisjZW5kaWYKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9uZXh0dG93YXJkbChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9wb3dsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX3JlbWFpbmRlcmwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fcmVtcXVvbChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUsIGludCAqKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fcmludGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9yb3VuZGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9zY2FsYmxubChsb25nIGRvdWJsZSwgbG9uZykgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX3NjYWxibmwobG9uZyBkb3VibGUsIGludCkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX3NpbmhsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fc2lubChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX3NxcnRsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fdGFuaGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl90YW5sKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fdGdhbW1hbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX3RydW5jbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOwordm9pZCAgX19idWlsdGluX3NpbmNvcyhkb3VibGUgeCwgZG91YmxlICpzaW4sIGRvdWJsZSAqY29zKSBfX05ES19GUEFCSV9NQVRIX187Cit2b2lkICBfX2J1aWx0aW5fc2luY29zZihmbG9hdCB4LCBmbG9hdCAqc2luLCBmbG9hdCAqY29zKSBfX05ES19GUEFCSV9NQVRIX187Cit2b2lkICBfX2J1aWx0aW5fc2luY29zbChsb25nIGRvdWJsZSB4LCBsb25nIGRvdWJsZSAqc2luLCBsb25nIGRvdWJsZSAqY29zKSBfX05ES19GUEFCSV9NQVRIX187CisKKy8qICNlbmRpZiAqLyAvKiBfX0lTT19DX1ZJU0lCTEUgPj0gMTk5OSAqLworX19FTkRfREVDTFMKKworI2VuZGlmIC8qICFfTUFUSF9IXyAqLwpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE0L2FyY2gtYXJtL3N5bWJvbHMvbGliYW5kcm9pZC5zby5mdW5jdGlvbnMudHh0IGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE0L2FyY2gtYXJtL3N5bWJvbHMvbGliYW5kcm9pZC5zby5mdW5jdGlvbnMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5MGI2NTUKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTQvYXJjaC1hcm0vc3ltYm9scy9saWJhbmRyb2lkLnNvLmZ1bmN0aW9ucy50eHQKQEAgLTAsMCArMSwxNzIgQEAKK0FBc3NldF9jbG9zZQorQUFzc2V0RGlyX2Nsb3NlCitBQXNzZXREaXJfZ2V0TmV4dEZpbGVOYW1lCitBQXNzZXREaXJfcmV3aW5kCitBQXNzZXRfZ2V0QnVmZmVyCitBQXNzZXRfZ2V0TGVuZ3RoCitBQXNzZXRfZ2V0TGVuZ3RoNjQKK0FBc3NldF9nZXRSZW1haW5pbmdMZW5ndGgKK0FBc3NldF9nZXRSZW1haW5pbmdMZW5ndGg2NAorQUFzc2V0X2lzQWxsb2NhdGVkCitBQXNzZXRNYW5hZ2VyX2Zyb21KYXZhCitBQXNzZXRNYW5hZ2VyX29wZW4KK0FBc3NldE1hbmFnZXJfb3BlbkRpcgorQUFzc2V0X29wZW5GaWxlRGVzY3JpcHRvcgorQUFzc2V0X29wZW5GaWxlRGVzY3JpcHRvcjY0CitBQXNzZXRfcmVhZAorQUFzc2V0X3NlZWsKK0FBc3NldF9zZWVrNjQKK0FDb25maWd1cmF0aW9uX2NvcHkKK0FDb25maWd1cmF0aW9uX2RlbGV0ZQorQUNvbmZpZ3VyYXRpb25fZGlmZgorQUNvbmZpZ3VyYXRpb25fZnJvbUFzc2V0TWFuYWdlcgorQUNvbmZpZ3VyYXRpb25fZ2V0Q291bnRyeQorQUNvbmZpZ3VyYXRpb25fZ2V0RGVuc2l0eQorQUNvbmZpZ3VyYXRpb25fZ2V0S2V5Ym9hcmQKK0FDb25maWd1cmF0aW9uX2dldEtleXNIaWRkZW4KK0FDb25maWd1cmF0aW9uX2dldExhbmd1YWdlCitBQ29uZmlndXJhdGlvbl9nZXRNY2MKK0FDb25maWd1cmF0aW9uX2dldE1uYworQUNvbmZpZ3VyYXRpb25fZ2V0TmF2SGlkZGVuCitBQ29uZmlndXJhdGlvbl9nZXROYXZpZ2F0aW9uCitBQ29uZmlndXJhdGlvbl9nZXRPcmllbnRhdGlvbgorQUNvbmZpZ3VyYXRpb25fZ2V0U2NyZWVuSGVpZ2h0RHAKK0FDb25maWd1cmF0aW9uX2dldFNjcmVlbkxvbmcKK0FDb25maWd1cmF0aW9uX2dldFNjcmVlblNpemUKK0FDb25maWd1cmF0aW9uX2dldFNjcmVlbldpZHRoRHAKK0FDb25maWd1cmF0aW9uX2dldFNka1ZlcnNpb24KK0FDb25maWd1cmF0aW9uX2dldFNtYWxsZXN0U2NyZWVuV2lkdGhEcAorQUNvbmZpZ3VyYXRpb25fZ2V0VG91Y2hzY3JlZW4KK0FDb25maWd1cmF0aW9uX2dldFVpTW9kZU5pZ2h0CitBQ29uZmlndXJhdGlvbl9nZXRVaU1vZGVUeXBlCitBQ29uZmlndXJhdGlvbl9pc0JldHRlclRoYW4KK0FDb25maWd1cmF0aW9uX21hdGNoCitBQ29uZmlndXJhdGlvbl9uZXcKK0FDb25maWd1cmF0aW9uX3NldENvdW50cnkKK0FDb25maWd1cmF0aW9uX3NldERlbnNpdHkKK0FDb25maWd1cmF0aW9uX3NldEtleWJvYXJkCitBQ29uZmlndXJhdGlvbl9zZXRLZXlzSGlkZGVuCitBQ29uZmlndXJhdGlvbl9zZXRMYW5ndWFnZQorQUNvbmZpZ3VyYXRpb25fc2V0TWNjCitBQ29uZmlndXJhdGlvbl9zZXRNbmMKK0FDb25maWd1cmF0aW9uX3NldE5hdkhpZGRlbgorQUNvbmZpZ3VyYXRpb25fc2V0TmF2aWdhdGlvbgorQUNvbmZpZ3VyYXRpb25fc2V0T3JpZW50YXRpb24KK0FDb25maWd1cmF0aW9uX3NldFNjcmVlbkhlaWdodERwCitBQ29uZmlndXJhdGlvbl9zZXRTY3JlZW5Mb25nCitBQ29uZmlndXJhdGlvbl9zZXRTY3JlZW5TaXplCitBQ29uZmlndXJhdGlvbl9zZXRTY3JlZW5XaWR0aERwCitBQ29uZmlndXJhdGlvbl9zZXRTZGtWZXJzaW9uCitBQ29uZmlndXJhdGlvbl9zZXRTbWFsbGVzdFNjcmVlbldpZHRoRHAKK0FDb25maWd1cmF0aW9uX3NldFRvdWNoc2NyZWVuCitBQ29uZmlndXJhdGlvbl9zZXRVaU1vZGVOaWdodAorQUNvbmZpZ3VyYXRpb25fc2V0VWlNb2RlVHlwZQorQUlucHV0RXZlbnRfZ2V0RGV2aWNlSWQKK0FJbnB1dEV2ZW50X2dldFNvdXJjZQorQUlucHV0RXZlbnRfZ2V0VHlwZQorQUlucHV0UXVldWVfYXR0YWNoTG9vcGVyCitBSW5wdXRRdWV1ZV9kZXRhY2hMb29wZXIKK0FJbnB1dFF1ZXVlX2ZpbmlzaEV2ZW50CitBSW5wdXRRdWV1ZV9nZXRFdmVudAorQUlucHV0UXVldWVfaGFzRXZlbnRzCitBSW5wdXRRdWV1ZV9wcmVEaXNwYXRjaEV2ZW50CitBS2V5RXZlbnRfZ2V0QWN0aW9uCitBS2V5RXZlbnRfZ2V0RG93blRpbWUKK0FLZXlFdmVudF9nZXRFdmVudFRpbWUKK0FLZXlFdmVudF9nZXRGbGFncworQUtleUV2ZW50X2dldEtleUNvZGUKK0FLZXlFdmVudF9nZXRNZXRhU3RhdGUKK0FLZXlFdmVudF9nZXRSZXBlYXRDb3VudAorQUtleUV2ZW50X2dldFNjYW5Db2RlCitBTG9vcGVyX2FjcXVpcmUKK0FMb29wZXJfYWRkRmQKK0FMb29wZXJfZm9yVGhyZWFkCitBTG9vcGVyX3BvbGxBbGwKK0FMb29wZXJfcG9sbE9uY2UKK0FMb29wZXJfcHJlcGFyZQorQUxvb3Blcl9yZWxlYXNlCitBTG9vcGVyX3JlbW92ZUZkCitBTG9vcGVyX3dha2UKK0FNb3Rpb25FdmVudF9nZXRBY3Rpb24KK0FNb3Rpb25FdmVudF9nZXRBeGlzVmFsdWUKK0FNb3Rpb25FdmVudF9nZXRCdXR0b25TdGF0ZQorQU1vdGlvbkV2ZW50X2dldERvd25UaW1lCitBTW90aW9uRXZlbnRfZ2V0RWRnZUZsYWdzCitBTW90aW9uRXZlbnRfZ2V0RXZlbnRUaW1lCitBTW90aW9uRXZlbnRfZ2V0RmxhZ3MKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsQXhpc1ZhbHVlCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbEV2ZW50VGltZQorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxPcmllbnRhdGlvbgorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxQcmVzc3VyZQorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxSYXdYCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFJhd1kKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsU2l6ZQorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxUb29sTWFqb3IKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsVG9vbE1pbm9yCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFRvdWNoTWFqb3IKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsVG91Y2hNaW5vcgorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxYCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFkKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3J5U2l6ZQorQU1vdGlvbkV2ZW50X2dldE1ldGFTdGF0ZQorQU1vdGlvbkV2ZW50X2dldE9yaWVudGF0aW9uCitBTW90aW9uRXZlbnRfZ2V0UG9pbnRlckNvdW50CitBTW90aW9uRXZlbnRfZ2V0UG9pbnRlcklkCitBTW90aW9uRXZlbnRfZ2V0UHJlc3N1cmUKK0FNb3Rpb25FdmVudF9nZXRSYXdYCitBTW90aW9uRXZlbnRfZ2V0UmF3WQorQU1vdGlvbkV2ZW50X2dldFNpemUKK0FNb3Rpb25FdmVudF9nZXRUb29sTWFqb3IKK0FNb3Rpb25FdmVudF9nZXRUb29sTWlub3IKK0FNb3Rpb25FdmVudF9nZXRUb29sVHlwZQorQU1vdGlvbkV2ZW50X2dldFRvdWNoTWFqb3IKK0FNb3Rpb25FdmVudF9nZXRUb3VjaE1pbm9yCitBTW90aW9uRXZlbnRfZ2V0WAorQU1vdGlvbkV2ZW50X2dldFhPZmZzZXQKK0FNb3Rpb25FdmVudF9nZXRYUHJlY2lzaW9uCitBTW90aW9uRXZlbnRfZ2V0WQorQU1vdGlvbkV2ZW50X2dldFlPZmZzZXQKK0FNb3Rpb25FdmVudF9nZXRZUHJlY2lzaW9uCitBTmF0aXZlQWN0aXZpdHlfZmluaXNoCitBTmF0aXZlQWN0aXZpdHlfaGlkZVNvZnRJbnB1dAorQU5hdGl2ZUFjdGl2aXR5X3NldFdpbmRvd0ZsYWdzCitBTmF0aXZlQWN0aXZpdHlfc2V0V2luZG93Rm9ybWF0CitBTmF0aXZlQWN0aXZpdHlfc2hvd1NvZnRJbnB1dAorQU5hdGl2ZVdpbmRvd19hY3F1aXJlCitBTmF0aXZlV2luZG93X2Zyb21TdXJmYWNlCitBTmF0aXZlV2luZG93X2Zyb21TdXJmYWNlVGV4dHVyZQorQU5hdGl2ZVdpbmRvd19nZXRGb3JtYXQKK0FOYXRpdmVXaW5kb3dfZ2V0SGVpZ2h0CitBTmF0aXZlV2luZG93X2dldFdpZHRoCitBTmF0aXZlV2luZG93X2xvY2sKK0FOYXRpdmVXaW5kb3dfcmVsZWFzZQorQU5hdGl2ZVdpbmRvd19zZXRCdWZmZXJzR2VvbWV0cnkKK0FOYXRpdmVXaW5kb3dfdW5sb2NrQW5kUG9zdAorYW5kcm9pZF9nZXRUdHNFbmdpbmUKK0FPYmJJbmZvX2RlbGV0ZQorQU9iYkluZm9fZ2V0RmxhZ3MKK0FPYmJJbmZvX2dldFBhY2thZ2VOYW1lCitBT2JiSW5mb19nZXRWZXJzaW9uCitBT2JiU2Nhbm5lcl9nZXRPYmJJbmZvCitBU2Vuc29yRXZlbnRRdWV1ZV9kaXNhYmxlU2Vuc29yCitBU2Vuc29yRXZlbnRRdWV1ZV9lbmFibGVTZW5zb3IKK0FTZW5zb3JFdmVudFF1ZXVlX2dldEV2ZW50cworQVNlbnNvckV2ZW50UXVldWVfaGFzRXZlbnRzCitBU2Vuc29yRXZlbnRRdWV1ZV9zZXRFdmVudFJhdGUKK0FTZW5zb3JfZ2V0TWluRGVsYXkKK0FTZW5zb3JfZ2V0TmFtZQorQVNlbnNvcl9nZXRSZXNvbHV0aW9uCitBU2Vuc29yX2dldFR5cGUKK0FTZW5zb3JfZ2V0VmVuZG9yCitBU2Vuc29yTWFuYWdlcl9jcmVhdGVFdmVudFF1ZXVlCitBU2Vuc29yTWFuYWdlcl9kZXN0cm95RXZlbnRRdWV1ZQorQVNlbnNvck1hbmFnZXJfZ2V0RGVmYXVsdFNlbnNvcgorQVNlbnNvck1hbmFnZXJfZ2V0SW5zdGFuY2UKK0FTZW5zb3JNYW5hZ2VyX2dldFNlbnNvckxpc3QKK0FTdG9yYWdlTWFuYWdlcl9kZWxldGUKK0FTdG9yYWdlTWFuYWdlcl9nZXRNb3VudGVkT2JiUGF0aAorQVN0b3JhZ2VNYW5hZ2VyX2lzT2JiTW91bnRlZAorQVN0b3JhZ2VNYW5hZ2VyX21vdW50T2JiCitBU3RvcmFnZU1hbmFnZXJfbmV3CitBU3RvcmFnZU1hbmFnZXJfdW5tb3VudE9iYgorZ2V0VHRzRW5naW5lCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTQvYXJjaC1hcm0vc3ltYm9scy9saWJhbmRyb2lkLnNvLnZhcmlhYmxlcy50eHQgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTQvYXJjaC1hcm0vc3ltYm9scy9saWJhbmRyb2lkLnNvLnZhcmlhYmxlcy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGIxMzc4OQotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNC9hcmNoLWFybS9zeW1ib2xzL2xpYmFuZHJvaWQuc28udmFyaWFibGVzLnR4dApAQCAtMCwwICsxIEBACisKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNC9hcmNoLW1pcHMvc3ltYm9scy9saWJhbmRyb2lkLnNvLmZ1bmN0aW9ucy50eHQgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTQvYXJjaC1taXBzL3N5bWJvbHMvbGliYW5kcm9pZC5zby5mdW5jdGlvbnMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5MGI2NTUKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTQvYXJjaC1taXBzL3N5bWJvbHMvbGliYW5kcm9pZC5zby5mdW5jdGlvbnMudHh0CkBAIC0wLDAgKzEsMTcyIEBACitBQXNzZXRfY2xvc2UKK0FBc3NldERpcl9jbG9zZQorQUFzc2V0RGlyX2dldE5leHRGaWxlTmFtZQorQUFzc2V0RGlyX3Jld2luZAorQUFzc2V0X2dldEJ1ZmZlcgorQUFzc2V0X2dldExlbmd0aAorQUFzc2V0X2dldExlbmd0aDY0CitBQXNzZXRfZ2V0UmVtYWluaW5nTGVuZ3RoCitBQXNzZXRfZ2V0UmVtYWluaW5nTGVuZ3RoNjQKK0FBc3NldF9pc0FsbG9jYXRlZAorQUFzc2V0TWFuYWdlcl9mcm9tSmF2YQorQUFzc2V0TWFuYWdlcl9vcGVuCitBQXNzZXRNYW5hZ2VyX29wZW5EaXIKK0FBc3NldF9vcGVuRmlsZURlc2NyaXB0b3IKK0FBc3NldF9vcGVuRmlsZURlc2NyaXB0b3I2NAorQUFzc2V0X3JlYWQKK0FBc3NldF9zZWVrCitBQXNzZXRfc2VlazY0CitBQ29uZmlndXJhdGlvbl9jb3B5CitBQ29uZmlndXJhdGlvbl9kZWxldGUKK0FDb25maWd1cmF0aW9uX2RpZmYKK0FDb25maWd1cmF0aW9uX2Zyb21Bc3NldE1hbmFnZXIKK0FDb25maWd1cmF0aW9uX2dldENvdW50cnkKK0FDb25maWd1cmF0aW9uX2dldERlbnNpdHkKK0FDb25maWd1cmF0aW9uX2dldEtleWJvYXJkCitBQ29uZmlndXJhdGlvbl9nZXRLZXlzSGlkZGVuCitBQ29uZmlndXJhdGlvbl9nZXRMYW5ndWFnZQorQUNvbmZpZ3VyYXRpb25fZ2V0TWNjCitBQ29uZmlndXJhdGlvbl9nZXRNbmMKK0FDb25maWd1cmF0aW9uX2dldE5hdkhpZGRlbgorQUNvbmZpZ3VyYXRpb25fZ2V0TmF2aWdhdGlvbgorQUNvbmZpZ3VyYXRpb25fZ2V0T3JpZW50YXRpb24KK0FDb25maWd1cmF0aW9uX2dldFNjcmVlbkhlaWdodERwCitBQ29uZmlndXJhdGlvbl9nZXRTY3JlZW5Mb25nCitBQ29uZmlndXJhdGlvbl9nZXRTY3JlZW5TaXplCitBQ29uZmlndXJhdGlvbl9nZXRTY3JlZW5XaWR0aERwCitBQ29uZmlndXJhdGlvbl9nZXRTZGtWZXJzaW9uCitBQ29uZmlndXJhdGlvbl9nZXRTbWFsbGVzdFNjcmVlbldpZHRoRHAKK0FDb25maWd1cmF0aW9uX2dldFRvdWNoc2NyZWVuCitBQ29uZmlndXJhdGlvbl9nZXRVaU1vZGVOaWdodAorQUNvbmZpZ3VyYXRpb25fZ2V0VWlNb2RlVHlwZQorQUNvbmZpZ3VyYXRpb25faXNCZXR0ZXJUaGFuCitBQ29uZmlndXJhdGlvbl9tYXRjaAorQUNvbmZpZ3VyYXRpb25fbmV3CitBQ29uZmlndXJhdGlvbl9zZXRDb3VudHJ5CitBQ29uZmlndXJhdGlvbl9zZXREZW5zaXR5CitBQ29uZmlndXJhdGlvbl9zZXRLZXlib2FyZAorQUNvbmZpZ3VyYXRpb25fc2V0S2V5c0hpZGRlbgorQUNvbmZpZ3VyYXRpb25fc2V0TGFuZ3VhZ2UKK0FDb25maWd1cmF0aW9uX3NldE1jYworQUNvbmZpZ3VyYXRpb25fc2V0TW5jCitBQ29uZmlndXJhdGlvbl9zZXROYXZIaWRkZW4KK0FDb25maWd1cmF0aW9uX3NldE5hdmlnYXRpb24KK0FDb25maWd1cmF0aW9uX3NldE9yaWVudGF0aW9uCitBQ29uZmlndXJhdGlvbl9zZXRTY3JlZW5IZWlnaHREcAorQUNvbmZpZ3VyYXRpb25fc2V0U2NyZWVuTG9uZworQUNvbmZpZ3VyYXRpb25fc2V0U2NyZWVuU2l6ZQorQUNvbmZpZ3VyYXRpb25fc2V0U2NyZWVuV2lkdGhEcAorQUNvbmZpZ3VyYXRpb25fc2V0U2RrVmVyc2lvbgorQUNvbmZpZ3VyYXRpb25fc2V0U21hbGxlc3RTY3JlZW5XaWR0aERwCitBQ29uZmlndXJhdGlvbl9zZXRUb3VjaHNjcmVlbgorQUNvbmZpZ3VyYXRpb25fc2V0VWlNb2RlTmlnaHQKK0FDb25maWd1cmF0aW9uX3NldFVpTW9kZVR5cGUKK0FJbnB1dEV2ZW50X2dldERldmljZUlkCitBSW5wdXRFdmVudF9nZXRTb3VyY2UKK0FJbnB1dEV2ZW50X2dldFR5cGUKK0FJbnB1dFF1ZXVlX2F0dGFjaExvb3BlcgorQUlucHV0UXVldWVfZGV0YWNoTG9vcGVyCitBSW5wdXRRdWV1ZV9maW5pc2hFdmVudAorQUlucHV0UXVldWVfZ2V0RXZlbnQKK0FJbnB1dFF1ZXVlX2hhc0V2ZW50cworQUlucHV0UXVldWVfcHJlRGlzcGF0Y2hFdmVudAorQUtleUV2ZW50X2dldEFjdGlvbgorQUtleUV2ZW50X2dldERvd25UaW1lCitBS2V5RXZlbnRfZ2V0RXZlbnRUaW1lCitBS2V5RXZlbnRfZ2V0RmxhZ3MKK0FLZXlFdmVudF9nZXRLZXlDb2RlCitBS2V5RXZlbnRfZ2V0TWV0YVN0YXRlCitBS2V5RXZlbnRfZ2V0UmVwZWF0Q291bnQKK0FLZXlFdmVudF9nZXRTY2FuQ29kZQorQUxvb3Blcl9hY3F1aXJlCitBTG9vcGVyX2FkZEZkCitBTG9vcGVyX2ZvclRocmVhZAorQUxvb3Blcl9wb2xsQWxsCitBTG9vcGVyX3BvbGxPbmNlCitBTG9vcGVyX3ByZXBhcmUKK0FMb29wZXJfcmVsZWFzZQorQUxvb3Blcl9yZW1vdmVGZAorQUxvb3Blcl93YWtlCitBTW90aW9uRXZlbnRfZ2V0QWN0aW9uCitBTW90aW9uRXZlbnRfZ2V0QXhpc1ZhbHVlCitBTW90aW9uRXZlbnRfZ2V0QnV0dG9uU3RhdGUKK0FNb3Rpb25FdmVudF9nZXREb3duVGltZQorQU1vdGlvbkV2ZW50X2dldEVkZ2VGbGFncworQU1vdGlvbkV2ZW50X2dldEV2ZW50VGltZQorQU1vdGlvbkV2ZW50X2dldEZsYWdzCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbEF4aXNWYWx1ZQorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxFdmVudFRpbWUKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsT3JpZW50YXRpb24KK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsUHJlc3N1cmUKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsUmF3WAorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxSYXdZCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFNpemUKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsVG9vbE1ham9yCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFRvb2xNaW5vcgorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxUb3VjaE1ham9yCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFRvdWNoTWlub3IKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsWAorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxZCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yeVNpemUKK0FNb3Rpb25FdmVudF9nZXRNZXRhU3RhdGUKK0FNb3Rpb25FdmVudF9nZXRPcmllbnRhdGlvbgorQU1vdGlvbkV2ZW50X2dldFBvaW50ZXJDb3VudAorQU1vdGlvbkV2ZW50X2dldFBvaW50ZXJJZAorQU1vdGlvbkV2ZW50X2dldFByZXNzdXJlCitBTW90aW9uRXZlbnRfZ2V0UmF3WAorQU1vdGlvbkV2ZW50X2dldFJhd1kKK0FNb3Rpb25FdmVudF9nZXRTaXplCitBTW90aW9uRXZlbnRfZ2V0VG9vbE1ham9yCitBTW90aW9uRXZlbnRfZ2V0VG9vbE1pbm9yCitBTW90aW9uRXZlbnRfZ2V0VG9vbFR5cGUKK0FNb3Rpb25FdmVudF9nZXRUb3VjaE1ham9yCitBTW90aW9uRXZlbnRfZ2V0VG91Y2hNaW5vcgorQU1vdGlvbkV2ZW50X2dldFgKK0FNb3Rpb25FdmVudF9nZXRYT2Zmc2V0CitBTW90aW9uRXZlbnRfZ2V0WFByZWNpc2lvbgorQU1vdGlvbkV2ZW50X2dldFkKK0FNb3Rpb25FdmVudF9nZXRZT2Zmc2V0CitBTW90aW9uRXZlbnRfZ2V0WVByZWNpc2lvbgorQU5hdGl2ZUFjdGl2aXR5X2ZpbmlzaAorQU5hdGl2ZUFjdGl2aXR5X2hpZGVTb2Z0SW5wdXQKK0FOYXRpdmVBY3Rpdml0eV9zZXRXaW5kb3dGbGFncworQU5hdGl2ZUFjdGl2aXR5X3NldFdpbmRvd0Zvcm1hdAorQU5hdGl2ZUFjdGl2aXR5X3Nob3dTb2Z0SW5wdXQKK0FOYXRpdmVXaW5kb3dfYWNxdWlyZQorQU5hdGl2ZVdpbmRvd19mcm9tU3VyZmFjZQorQU5hdGl2ZVdpbmRvd19mcm9tU3VyZmFjZVRleHR1cmUKK0FOYXRpdmVXaW5kb3dfZ2V0Rm9ybWF0CitBTmF0aXZlV2luZG93X2dldEhlaWdodAorQU5hdGl2ZVdpbmRvd19nZXRXaWR0aAorQU5hdGl2ZVdpbmRvd19sb2NrCitBTmF0aXZlV2luZG93X3JlbGVhc2UKK0FOYXRpdmVXaW5kb3dfc2V0QnVmZmVyc0dlb21ldHJ5CitBTmF0aXZlV2luZG93X3VubG9ja0FuZFBvc3QKK2FuZHJvaWRfZ2V0VHRzRW5naW5lCitBT2JiSW5mb19kZWxldGUKK0FPYmJJbmZvX2dldEZsYWdzCitBT2JiSW5mb19nZXRQYWNrYWdlTmFtZQorQU9iYkluZm9fZ2V0VmVyc2lvbgorQU9iYlNjYW5uZXJfZ2V0T2JiSW5mbworQVNlbnNvckV2ZW50UXVldWVfZGlzYWJsZVNlbnNvcgorQVNlbnNvckV2ZW50UXVldWVfZW5hYmxlU2Vuc29yCitBU2Vuc29yRXZlbnRRdWV1ZV9nZXRFdmVudHMKK0FTZW5zb3JFdmVudFF1ZXVlX2hhc0V2ZW50cworQVNlbnNvckV2ZW50UXVldWVfc2V0RXZlbnRSYXRlCitBU2Vuc29yX2dldE1pbkRlbGF5CitBU2Vuc29yX2dldE5hbWUKK0FTZW5zb3JfZ2V0UmVzb2x1dGlvbgorQVNlbnNvcl9nZXRUeXBlCitBU2Vuc29yX2dldFZlbmRvcgorQVNlbnNvck1hbmFnZXJfY3JlYXRlRXZlbnRRdWV1ZQorQVNlbnNvck1hbmFnZXJfZGVzdHJveUV2ZW50UXVldWUKK0FTZW5zb3JNYW5hZ2VyX2dldERlZmF1bHRTZW5zb3IKK0FTZW5zb3JNYW5hZ2VyX2dldEluc3RhbmNlCitBU2Vuc29yTWFuYWdlcl9nZXRTZW5zb3JMaXN0CitBU3RvcmFnZU1hbmFnZXJfZGVsZXRlCitBU3RvcmFnZU1hbmFnZXJfZ2V0TW91bnRlZE9iYlBhdGgKK0FTdG9yYWdlTWFuYWdlcl9pc09iYk1vdW50ZWQKK0FTdG9yYWdlTWFuYWdlcl9tb3VudE9iYgorQVN0b3JhZ2VNYW5hZ2VyX25ldworQVN0b3JhZ2VNYW5hZ2VyX3VubW91bnRPYmIKK2dldFR0c0VuZ2luZQpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE0L2FyY2gtbWlwcy9zeW1ib2xzL2xpYmFuZHJvaWQuc28udmFyaWFibGVzLnR4dCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNC9hcmNoLW1pcHMvc3ltYm9scy9saWJhbmRyb2lkLnNvLnZhcmlhYmxlcy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGIxMzc4OQotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNC9hcmNoLW1pcHMvc3ltYm9scy9saWJhbmRyb2lkLnNvLnZhcmlhYmxlcy50eHQKQEAgLTAsMCArMSBAQAorCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTQvYXJjaC14ODYvc3ltYm9scy9saWJhbmRyb2lkLnNvLmZ1bmN0aW9ucy50eHQgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTQvYXJjaC14ODYvc3ltYm9scy9saWJhbmRyb2lkLnNvLmZ1bmN0aW9ucy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDkwYjY1NQotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNC9hcmNoLXg4Ni9zeW1ib2xzL2xpYmFuZHJvaWQuc28uZnVuY3Rpb25zLnR4dApAQCAtMCwwICsxLDE3MiBAQAorQUFzc2V0X2Nsb3NlCitBQXNzZXREaXJfY2xvc2UKK0FBc3NldERpcl9nZXROZXh0RmlsZU5hbWUKK0FBc3NldERpcl9yZXdpbmQKK0FBc3NldF9nZXRCdWZmZXIKK0FBc3NldF9nZXRMZW5ndGgKK0FBc3NldF9nZXRMZW5ndGg2NAorQUFzc2V0X2dldFJlbWFpbmluZ0xlbmd0aAorQUFzc2V0X2dldFJlbWFpbmluZ0xlbmd0aDY0CitBQXNzZXRfaXNBbGxvY2F0ZWQKK0FBc3NldE1hbmFnZXJfZnJvbUphdmEKK0FBc3NldE1hbmFnZXJfb3BlbgorQUFzc2V0TWFuYWdlcl9vcGVuRGlyCitBQXNzZXRfb3BlbkZpbGVEZXNjcmlwdG9yCitBQXNzZXRfb3BlbkZpbGVEZXNjcmlwdG9yNjQKK0FBc3NldF9yZWFkCitBQXNzZXRfc2VlaworQUFzc2V0X3NlZWs2NAorQUNvbmZpZ3VyYXRpb25fY29weQorQUNvbmZpZ3VyYXRpb25fZGVsZXRlCitBQ29uZmlndXJhdGlvbl9kaWZmCitBQ29uZmlndXJhdGlvbl9mcm9tQXNzZXRNYW5hZ2VyCitBQ29uZmlndXJhdGlvbl9nZXRDb3VudHJ5CitBQ29uZmlndXJhdGlvbl9nZXREZW5zaXR5CitBQ29uZmlndXJhdGlvbl9nZXRLZXlib2FyZAorQUNvbmZpZ3VyYXRpb25fZ2V0S2V5c0hpZGRlbgorQUNvbmZpZ3VyYXRpb25fZ2V0TGFuZ3VhZ2UKK0FDb25maWd1cmF0aW9uX2dldE1jYworQUNvbmZpZ3VyYXRpb25fZ2V0TW5jCitBQ29uZmlndXJhdGlvbl9nZXROYXZIaWRkZW4KK0FDb25maWd1cmF0aW9uX2dldE5hdmlnYXRpb24KK0FDb25maWd1cmF0aW9uX2dldE9yaWVudGF0aW9uCitBQ29uZmlndXJhdGlvbl9nZXRTY3JlZW5IZWlnaHREcAorQUNvbmZpZ3VyYXRpb25fZ2V0U2NyZWVuTG9uZworQUNvbmZpZ3VyYXRpb25fZ2V0U2NyZWVuU2l6ZQorQUNvbmZpZ3VyYXRpb25fZ2V0U2NyZWVuV2lkdGhEcAorQUNvbmZpZ3VyYXRpb25fZ2V0U2RrVmVyc2lvbgorQUNvbmZpZ3VyYXRpb25fZ2V0U21hbGxlc3RTY3JlZW5XaWR0aERwCitBQ29uZmlndXJhdGlvbl9nZXRUb3VjaHNjcmVlbgorQUNvbmZpZ3VyYXRpb25fZ2V0VWlNb2RlTmlnaHQKK0FDb25maWd1cmF0aW9uX2dldFVpTW9kZVR5cGUKK0FDb25maWd1cmF0aW9uX2lzQmV0dGVyVGhhbgorQUNvbmZpZ3VyYXRpb25fbWF0Y2gKK0FDb25maWd1cmF0aW9uX25ldworQUNvbmZpZ3VyYXRpb25fc2V0Q291bnRyeQorQUNvbmZpZ3VyYXRpb25fc2V0RGVuc2l0eQorQUNvbmZpZ3VyYXRpb25fc2V0S2V5Ym9hcmQKK0FDb25maWd1cmF0aW9uX3NldEtleXNIaWRkZW4KK0FDb25maWd1cmF0aW9uX3NldExhbmd1YWdlCitBQ29uZmlndXJhdGlvbl9zZXRNY2MKK0FDb25maWd1cmF0aW9uX3NldE1uYworQUNvbmZpZ3VyYXRpb25fc2V0TmF2SGlkZGVuCitBQ29uZmlndXJhdGlvbl9zZXROYXZpZ2F0aW9uCitBQ29uZmlndXJhdGlvbl9zZXRPcmllbnRhdGlvbgorQUNvbmZpZ3VyYXRpb25fc2V0U2NyZWVuSGVpZ2h0RHAKK0FDb25maWd1cmF0aW9uX3NldFNjcmVlbkxvbmcKK0FDb25maWd1cmF0aW9uX3NldFNjcmVlblNpemUKK0FDb25maWd1cmF0aW9uX3NldFNjcmVlbldpZHRoRHAKK0FDb25maWd1cmF0aW9uX3NldFNka1ZlcnNpb24KK0FDb25maWd1cmF0aW9uX3NldFNtYWxsZXN0U2NyZWVuV2lkdGhEcAorQUNvbmZpZ3VyYXRpb25fc2V0VG91Y2hzY3JlZW4KK0FDb25maWd1cmF0aW9uX3NldFVpTW9kZU5pZ2h0CitBQ29uZmlndXJhdGlvbl9zZXRVaU1vZGVUeXBlCitBSW5wdXRFdmVudF9nZXREZXZpY2VJZAorQUlucHV0RXZlbnRfZ2V0U291cmNlCitBSW5wdXRFdmVudF9nZXRUeXBlCitBSW5wdXRRdWV1ZV9hdHRhY2hMb29wZXIKK0FJbnB1dFF1ZXVlX2RldGFjaExvb3BlcgorQUlucHV0UXVldWVfZmluaXNoRXZlbnQKK0FJbnB1dFF1ZXVlX2dldEV2ZW50CitBSW5wdXRRdWV1ZV9oYXNFdmVudHMKK0FJbnB1dFF1ZXVlX3ByZURpc3BhdGNoRXZlbnQKK0FLZXlFdmVudF9nZXRBY3Rpb24KK0FLZXlFdmVudF9nZXREb3duVGltZQorQUtleUV2ZW50X2dldEV2ZW50VGltZQorQUtleUV2ZW50X2dldEZsYWdzCitBS2V5RXZlbnRfZ2V0S2V5Q29kZQorQUtleUV2ZW50X2dldE1ldGFTdGF0ZQorQUtleUV2ZW50X2dldFJlcGVhdENvdW50CitBS2V5RXZlbnRfZ2V0U2NhbkNvZGUKK0FMb29wZXJfYWNxdWlyZQorQUxvb3Blcl9hZGRGZAorQUxvb3Blcl9mb3JUaHJlYWQKK0FMb29wZXJfcG9sbEFsbAorQUxvb3Blcl9wb2xsT25jZQorQUxvb3Blcl9wcmVwYXJlCitBTG9vcGVyX3JlbGVhc2UKK0FMb29wZXJfcmVtb3ZlRmQKK0FMb29wZXJfd2FrZQorQU1vdGlvbkV2ZW50X2dldEFjdGlvbgorQU1vdGlvbkV2ZW50X2dldEF4aXNWYWx1ZQorQU1vdGlvbkV2ZW50X2dldEJ1dHRvblN0YXRlCitBTW90aW9uRXZlbnRfZ2V0RG93blRpbWUKK0FNb3Rpb25FdmVudF9nZXRFZGdlRmxhZ3MKK0FNb3Rpb25FdmVudF9nZXRFdmVudFRpbWUKK0FNb3Rpb25FdmVudF9nZXRGbGFncworQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxBeGlzVmFsdWUKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsRXZlbnRUaW1lCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbE9yaWVudGF0aW9uCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFByZXNzdXJlCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFJhd1gKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsUmF3WQorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxTaXplCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFRvb2xNYWpvcgorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxUb29sTWlub3IKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsVG91Y2hNYWpvcgorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxUb3VjaE1pbm9yCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFgKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsWQorQU1vdGlvbkV2ZW50X2dldEhpc3RvcnlTaXplCitBTW90aW9uRXZlbnRfZ2V0TWV0YVN0YXRlCitBTW90aW9uRXZlbnRfZ2V0T3JpZW50YXRpb24KK0FNb3Rpb25FdmVudF9nZXRQb2ludGVyQ291bnQKK0FNb3Rpb25FdmVudF9nZXRQb2ludGVySWQKK0FNb3Rpb25FdmVudF9nZXRQcmVzc3VyZQorQU1vdGlvbkV2ZW50X2dldFJhd1gKK0FNb3Rpb25FdmVudF9nZXRSYXdZCitBTW90aW9uRXZlbnRfZ2V0U2l6ZQorQU1vdGlvbkV2ZW50X2dldFRvb2xNYWpvcgorQU1vdGlvbkV2ZW50X2dldFRvb2xNaW5vcgorQU1vdGlvbkV2ZW50X2dldFRvb2xUeXBlCitBTW90aW9uRXZlbnRfZ2V0VG91Y2hNYWpvcgorQU1vdGlvbkV2ZW50X2dldFRvdWNoTWlub3IKK0FNb3Rpb25FdmVudF9nZXRYCitBTW90aW9uRXZlbnRfZ2V0WE9mZnNldAorQU1vdGlvbkV2ZW50X2dldFhQcmVjaXNpb24KK0FNb3Rpb25FdmVudF9nZXRZCitBTW90aW9uRXZlbnRfZ2V0WU9mZnNldAorQU1vdGlvbkV2ZW50X2dldFlQcmVjaXNpb24KK0FOYXRpdmVBY3Rpdml0eV9maW5pc2gKK0FOYXRpdmVBY3Rpdml0eV9oaWRlU29mdElucHV0CitBTmF0aXZlQWN0aXZpdHlfc2V0V2luZG93RmxhZ3MKK0FOYXRpdmVBY3Rpdml0eV9zZXRXaW5kb3dGb3JtYXQKK0FOYXRpdmVBY3Rpdml0eV9zaG93U29mdElucHV0CitBTmF0aXZlV2luZG93X2FjcXVpcmUKK0FOYXRpdmVXaW5kb3dfZnJvbVN1cmZhY2UKK0FOYXRpdmVXaW5kb3dfZnJvbVN1cmZhY2VUZXh0dXJlCitBTmF0aXZlV2luZG93X2dldEZvcm1hdAorQU5hdGl2ZVdpbmRvd19nZXRIZWlnaHQKK0FOYXRpdmVXaW5kb3dfZ2V0V2lkdGgKK0FOYXRpdmVXaW5kb3dfbG9jaworQU5hdGl2ZVdpbmRvd19yZWxlYXNlCitBTmF0aXZlV2luZG93X3NldEJ1ZmZlcnNHZW9tZXRyeQorQU5hdGl2ZVdpbmRvd191bmxvY2tBbmRQb3N0CithbmRyb2lkX2dldFR0c0VuZ2luZQorQU9iYkluZm9fZGVsZXRlCitBT2JiSW5mb19nZXRGbGFncworQU9iYkluZm9fZ2V0UGFja2FnZU5hbWUKK0FPYmJJbmZvX2dldFZlcnNpb24KK0FPYmJTY2FubmVyX2dldE9iYkluZm8KK0FTZW5zb3JFdmVudFF1ZXVlX2Rpc2FibGVTZW5zb3IKK0FTZW5zb3JFdmVudFF1ZXVlX2VuYWJsZVNlbnNvcgorQVNlbnNvckV2ZW50UXVldWVfZ2V0RXZlbnRzCitBU2Vuc29yRXZlbnRRdWV1ZV9oYXNFdmVudHMKK0FTZW5zb3JFdmVudFF1ZXVlX3NldEV2ZW50UmF0ZQorQVNlbnNvcl9nZXRNaW5EZWxheQorQVNlbnNvcl9nZXROYW1lCitBU2Vuc29yX2dldFJlc29sdXRpb24KK0FTZW5zb3JfZ2V0VHlwZQorQVNlbnNvcl9nZXRWZW5kb3IKK0FTZW5zb3JNYW5hZ2VyX2NyZWF0ZUV2ZW50UXVldWUKK0FTZW5zb3JNYW5hZ2VyX2Rlc3Ryb3lFdmVudFF1ZXVlCitBU2Vuc29yTWFuYWdlcl9nZXREZWZhdWx0U2Vuc29yCitBU2Vuc29yTWFuYWdlcl9nZXRJbnN0YW5jZQorQVNlbnNvck1hbmFnZXJfZ2V0U2Vuc29yTGlzdAorQVN0b3JhZ2VNYW5hZ2VyX2RlbGV0ZQorQVN0b3JhZ2VNYW5hZ2VyX2dldE1vdW50ZWRPYmJQYXRoCitBU3RvcmFnZU1hbmFnZXJfaXNPYmJNb3VudGVkCitBU3RvcmFnZU1hbmFnZXJfbW91bnRPYmIKK0FTdG9yYWdlTWFuYWdlcl9uZXcKK0FTdG9yYWdlTWFuYWdlcl91bm1vdW50T2JiCitnZXRUdHNFbmdpbmUKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNC9hcmNoLXg4Ni9zeW1ib2xzL2xpYmFuZHJvaWQuc28udmFyaWFibGVzLnR4dCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNC9hcmNoLXg4Ni9zeW1ib2xzL2xpYmFuZHJvaWQuc28udmFyaWFibGVzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YjEzNzg5Ci0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE0L2FyY2gteDg2L3N5bWJvbHMvbGliYW5kcm9pZC5zby52YXJpYWJsZXMudHh0CkBAIC0wLDAgKzEgQEAKKwpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE0L2luY2x1ZGUvT01YQUwvT3Blbk1BWEFMX0FuZHJvaWQuaCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNC9pbmNsdWRlL09NWEFML09wZW5NQVhBTF9BbmRyb2lkLmgKaW5kZXggMTBmMzZmNC4uN2M5YmJhNSAxMDA2NDQKLS0tIGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE0L2luY2x1ZGUvT01YQUwvT3Blbk1BWEFMX0FuZHJvaWQuaAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTQvaW5jbHVkZS9PTVhBTC9PcGVuTUFYQUxfQW5kcm9pZC5oCkBAIC0yMSw2ICsyMSw4IEBACiBleHRlcm4gIkMiIHsKICNlbmRpZgogCisjaW5jbHVkZSAiT3Blbk1BWEFMLmgiCisKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qIEFuZHJvaWQgY29tbW9uIHR5cGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNC9pbmNsdWRlL1NMRVMvT3BlblNMRVNfQW5kcm9pZC5oIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE0L2luY2x1ZGUvU0xFUy9PcGVuU0xFU19BbmRyb2lkLmgKaW5kZXggZjI5NTUxOC4uNGQ4ZjY1NiAxMDA2NDQKLS0tIGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE0L2luY2x1ZGUvU0xFUy9PcGVuU0xFU19BbmRyb2lkLmgKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE0L2luY2x1ZGUvU0xFUy9PcGVuU0xFU19BbmRyb2lkLmgKQEAgLTI0LDYgKzI0LDggQEAKIGV4dGVybiAiQyIgewogI2VuZGlmCiAKKyNpbmNsdWRlICJPcGVuU0xFUy5oIgorCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAvKiBBbmRyb2lkIGNvbW1vbiB0eXBlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTQvaW5jbHVkZS9hbmRyb2lkL2lucHV0LmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTQvaW5jbHVkZS9hbmRyb2lkL2lucHV0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWM3YmNjMAotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNC9pbmNsdWRlL2FuZHJvaWQvaW5wdXQuaApAQCAtMCwwICsxLDg0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgX0FORFJPSURfSU5QVVRfSAorI2RlZmluZSBfQU5EUk9JRF9JTlBVVF9ICisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBJTVBPUlRBTlQgTk9USUNFOgorICoKKyAqICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgQW5kcm9pZCdzIHNldCBvZiBzdGFibGUgc3lzdGVtIGhlYWRlcnMKKyAqICAgZXhwb3NlZCBieSB0aGUgQW5kcm9pZCBOREsgKE5hdGl2ZSBEZXZlbG9wbWVudCBLaXQpLgorICoKKyAqICAgVGhpcmQtcGFydHkgc291cmNlIEFORCBiaW5hcnkgY29kZSByZWxpZXMgb24gdGhlIGRlZmluaXRpb25zCisgKiAgIGhlcmUgdG8gYmUgRlJPWkVOIE9OIEFMTCBVUENPTUlORyBQTEFURk9STSBSRUxFQVNFUy4KKyAqCisgKiAgIC0gRE8gTk9UIE1PRElGWSBFTlVNUyAoRVhDRVBUIElGIFlPVSBBREQgTkVXIDMyLUJJVCBWQUxVRVMpCisgKiAgIC0gRE8gTk9UIE1PRElGWSBDT05TVEFOVFMgT1IgRlVOQ1RJT05BTCBNQUNST1MKKyAqICAgLSBETyBOT1QgQ0hBTkdFIFRIRSBTSUdOQVRVUkUgT0YgRlVOQ1RJT05TIElOIEFOWSBXQVkKKyAqICAgLSBETyBOT1QgQ0hBTkdFIFRIRSBMQVlPVVQgT1IgU0laRSBPRiBTVFJVQ1RVUkVTCisgKi8KKworLyoKKyAqIFN0cnVjdHVyZXMgYW5kIGZ1bmN0aW9ucyB0byByZWNlaXZlIGFuZCBwcm9jZXNzIGlucHV0IGV2ZW50cyBpbgorICogbmF0aXZlIGNvZGUuCisgKgorICogTk9URTogVGhlc2UgZnVuY3Rpb25zIE1VU1QgYmUgaW1wbGVtZW50ZWQgYnkgL3N5c3RlbS9saWIvbGlidWkuc28KKyAqLworCisjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9rZXljb2Rlcy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvbG9vcGVyLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLyoKKyAqIEtleSBzdGF0ZXMgKG1heSBiZSByZXR1cm5lZCBieSBxdWVyaWVzIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlIG9mIGEKKyAqIHBhcnRpY3VsYXIga2V5IGNvZGUsIHNjYW4gY29kZSBvciBzd2l0Y2gpLgorICovCitlbnVtIHsKKyAgICAvKiBUaGUga2V5IHN0YXRlIGlzIHVua25vd24gb3IgdGhlIHJlcXVlc3RlZCBrZXkgaXRzZWxmIGlzIG5vdCBzdXBwb3J0ZWQuICovCisgICAgQUtFWV9TVEFURV9VTktOT1dOID0gLTEsCisKKyAgICAvKiBUaGUga2V5IGlzIHVwLiAqLworICAgIEFLRVlfU1RBVEVfVVAgPSAwLAorCisgICAgLyogVGhlIGtleSBpcyBkb3duLiAqLworICAgIEFLRVlfU1RBVEVfRE9XTiA9IDEsCisKKyAgICAvKiBUaGUga2V5IGlzIGRvd24gYnV0IGlzIGEgdmlydHVhbCBrZXkgcHJlc3MgdGhhdCBpcyBiZWluZyBlbXVsYXRlZCBieSB0aGUgc3lzdGVtLiAqLworICAgIEFLRVlfU1RBVEVfVklSVFVBTCA9IDIKK307CisKKy8qCisgKiBNZXRhIGtleSAvIG1vZGlmZXIgc3RhdGUuCisgKi8KK2VudW0geworICAgIC8qIE5vIG1ldGEga2V5cyBhcmUgcHJlc3NlZC4gKi8KKyAgICBBTUVUQV9OT05FID0gMCwKKworICAgIC8qIFRoaXMgbWFzayBpcyB1c2VkIHRvIGNoZWNrIHdoZXRoZXIgb25lIG9mIHRoZSBBTFQgbWV0YSBrZXlzIGlzIHByZXNzZWQuICovCisgICAgQU1FVEFfQUxUX09OID0gMHgwMiwKKworICAgIC8qIFRoaXMgbWFzayBpcyB1c2VkIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGxlZnQgQUxUIG1ldGEga2V5IGlzIHByZXNzZWQuICovCisgICAgQU1FVEFfQUxUX0xFRlRfT04gPSAweDEwLAorCisgICAgLyogVGhpcyBtYXNrIGlzIHVzZWQgdG8gY2hlY2sgd2hldGhlciB0aGUgcmlnaHQgQUxUIG1ldGEga2V5IGlzIHByZXNzZWQuICovCisgICAgQU1FVEFfQUxUX1JJR0hUX09OID0gMHgyMCwKKworICAgIC8qIFRoaXMgbWFzayBpcyB1c2VkIHRvIGNoZWNrIHdoZXRoZXIgb25lIG9mIHRoZSBTSElGVCBtZXRhIGtleXMgaXMgcHJlc3NlZC4gKi8KKyAgICBBTUVUQV9TSElGVF9PTiA9IDB4MDEsCisKKyAgICAvKiBUaGlzIG1hc2sgaXMgdXNlZCB0byBjaGVjayB3aGV0aGVyIHRoZSBsZWZ0IFNISUZUIG1ldGEga2V5IGlzIHByZXNzZWQuICovCisgICAgQU1FVEFfU0hJRlRfTEVGVF9PTiA9IDB4NDAsCisKKyAgICAvKiBUaGlzIG1hc2sgaXMgdXNlZCB0byBjaGVjayB3aGV0aGVyIHRoZSByaWdodCBTSElGVCBtZXRhIGtleSBpcyBwcmVzc2VkLiAqLworICAgIEFNRVRBX1NISUZUX1JJR0hUX09OID0gMHg4MCwKKworICAgIC8qIFRoaXMgbWFzayBpcyB1c2VkIHRvIGNoZWNrIHdoZXRoZXIgdGhlIFNZTSBtZXRhIGtleSBpcyBwcmVzc2VkLiAqLworICAgIEFNRVRBX1NZTV9PTiA9IDB4MDQsCisKKyAgICAvKiBUaGlzIG1hc2sgaXMgdXNlZCB0byBjaGVjayB3aGV0aGVyIHRoZSBGVU5DVElPTiBtZXRhIGtleSBpcyBwcmVzc2VkLiAqLworICAgIEFNRVRBX0ZVTkNUSU9OX09OID0gMHgwOCwKKworICAgIC8qIFRoaXMgbWFzayBpcyB1c2VkIHRvIGNoZWNrIHdoZXRoZXIgb25lIG9mIHRoZSBDVFJMIG1ldGEga2V5cyBpcyBwcmVzc2VkLiAqLworICAgIEFNRVRBX0NUUkxfT04gPSAweDEwMDAsCisKKyAgICAvKiBUaGlzIG1hc2sgaXMgdXNlZCB0byBjaGVjayB3aGV0aGVyIHRoZSBsZWZ0IENUUkwgbWV0YSBrZXkgaXMgcHJlc3NlZC4gKi8KKyAgICBBTUVUQV9DVFJMX0xFRlRfT04gPSAweDIwMDAsCisKKyAgICAvKiBUaGlzIG1hc2sgaXMgdXNlZCB0byBjaGVjayB3aGV0aGVyIHRoZSByaWdodCBDVFJMIG1ldGEga2V5IGlzIHByZXNzZWQuICovCisgICAgQU1FVEFfQ1RSTF9SSUdIVF9PTiA9IDB4NDAwMCwKKworICAgIC8qIFRoaXMgbWFzayBpcyB1c2VkIHRvIGNoZWNrIHdoZXRoZXIgb25lIG9mIHRoZSBNRVRBIG1ldGEga2V5cyBpcyBwcmVzc2VkLiAqLworICAgIEFNRVRBX01FVEFfT04gPSAweDEwMDAwLAorCisgICAgLyogVGhpcyBtYXNrIGlzIHVzZWQgdG8gY2hlY2sgd2hldGhlciB0aGUgbGVmdCBNRVRBIG1ldGEga2V5IGlzIHByZXNzZWQuICovCisgICAgQU1FVEFfTUVUQV9MRUZUX09OID0gMHgyMDAwMCwKKworICAgIC8qIFRoaXMgbWFzayBpcyB1c2VkIHRvIGNoZWNrIHdoZXRoZXIgdGhlIHJpZ2h0IE1FVEEgbWV0YSBrZXkgaXMgcHJlc3NlZC4gKi8KKyAgICBBTUVUQV9NRVRBX1JJR0hUX09OID0gMHg0MDAwMCwKKworICAgIC8qIFRoaXMgbWFzayBpcyB1c2VkIHRvIGNoZWNrIHdoZXRoZXIgdGhlIENBUFMgTE9DSyBtZXRhIGtleSBpcyBvbi4gKi8KKyAgICBBTUVUQV9DQVBTX0xPQ0tfT04gPSAweDEwMDAwMCwKKworICAgIC8qIFRoaXMgbWFzayBpcyB1c2VkIHRvIGNoZWNrIHdoZXRoZXIgdGhlIE5VTSBMT0NLIG1ldGEga2V5IGlzIG9uLiAqLworICAgIEFNRVRBX05VTV9MT0NLX09OID0gMHgyMDAwMDAsCisKKyAgICAvKiBUaGlzIG1hc2sgaXMgdXNlZCB0byBjaGVjayB3aGV0aGVyIHRoZSBTQ1JPTEwgTE9DSyBtZXRhIGtleSBpcyBvbi4gKi8KKyAgICBBTUVUQV9TQ1JPTExfTE9DS19PTiA9IDB4NDAwMDAwLAorfTsKKworLyoKKyAqIElucHV0IGV2ZW50cy4KKyAqCisgKiBJbnB1dCBldmVudHMgYXJlIG9wYXF1ZSBzdHJ1Y3R1cmVzLiAgVXNlIHRoZSBwcm92aWRlZCBhY2Nlc3NvcnMgZnVuY3Rpb25zIHRvCisgKiByZWFkIHRoZWlyIHByb3BlcnRpZXMuCisgKi8KK3N0cnVjdCBBSW5wdXRFdmVudDsKK3R5cGVkZWYgc3RydWN0IEFJbnB1dEV2ZW50IEFJbnB1dEV2ZW50OworCisvKgorICogSW5wdXQgZXZlbnQgdHlwZXMuCisgKi8KK2VudW0geworICAgIC8qIEluZGljYXRlcyB0aGF0IHRoZSBpbnB1dCBldmVudCBpcyBhIGtleSBldmVudC4gKi8KKyAgICBBSU5QVVRfRVZFTlRfVFlQRV9LRVkgPSAxLAorCisgICAgLyogSW5kaWNhdGVzIHRoYXQgdGhlIGlucHV0IGV2ZW50IGlzIGEgbW90aW9uIGV2ZW50LiAqLworICAgIEFJTlBVVF9FVkVOVF9UWVBFX01PVElPTiA9IDIKK307CisKKy8qCisgKiBLZXkgZXZlbnQgYWN0aW9ucy4KKyAqLworZW51bSB7CisgICAgLyogVGhlIGtleSBoYXMgYmVlbiBwcmVzc2VkIGRvd24uICovCisgICAgQUtFWV9FVkVOVF9BQ1RJT05fRE9XTiA9IDAsCisKKyAgICAvKiBUaGUga2V5IGhhcyBiZWVuIHJlbGVhc2VkLiAqLworICAgIEFLRVlfRVZFTlRfQUNUSU9OX1VQID0gMSwKKworICAgIC8qIE11bHRpcGxlIGR1cGxpY2F0ZSBrZXkgZXZlbnRzIGhhdmUgb2NjdXJyZWQgaW4gYSByb3csIG9yIGEgY29tcGxleCBzdHJpbmcgaXMKKyAgICAgKiBiZWluZyBkZWxpdmVyZWQuICBUaGUgcmVwZWF0X2NvdW50IHByb3BlcnR5IG9mIHRoZSBrZXkgZXZlbnQgY29udGFpbnMgdGhlIG51bWJlcgorICAgICAqIG9mIHRpbWVzIHRoZSBnaXZlbiBrZXkgY29kZSBzaG91bGQgYmUgZXhlY3V0ZWQuCisgICAgICovCisgICAgQUtFWV9FVkVOVF9BQ1RJT05fTVVMVElQTEUgPSAyCit9OworCisvKgorICogS2V5IGV2ZW50IGZsYWdzLgorICovCitlbnVtIHsKKyAgICAvKiBUaGlzIG1hc2sgaXMgc2V0IGlmIHRoZSBkZXZpY2Ugd29rZSBiZWNhdXNlIG9mIHRoaXMga2V5IGV2ZW50LiAqLworICAgIEFLRVlfRVZFTlRfRkxBR19XT0tFX0hFUkUgPSAweDEsCisKKyAgICAvKiBUaGlzIG1hc2sgaXMgc2V0IGlmIHRoZSBrZXkgZXZlbnQgd2FzIGdlbmVyYXRlZCBieSBhIHNvZnR3YXJlIGtleWJvYXJkLiAqLworICAgIEFLRVlfRVZFTlRfRkxBR19TT0ZUX0tFWUJPQVJEID0gMHgyLAorCisgICAgLyogVGhpcyBtYXNrIGlzIHNldCBpZiB3ZSBkb24ndCB3YW50IHRoZSBrZXkgZXZlbnQgdG8gY2F1c2UgdXMgdG8gbGVhdmUgdG91Y2ggbW9kZS4gKi8KKyAgICBBS0VZX0VWRU5UX0ZMQUdfS0VFUF9UT1VDSF9NT0RFID0gMHg0LAorCisgICAgLyogVGhpcyBtYXNrIGlzIHNldCBpZiBhbiBldmVudCB3YXMga25vd24gdG8gY29tZSBmcm9tIGEgdHJ1c3RlZCBwYXJ0CisgICAgICogb2YgdGhlIHN5c3RlbS4gIFRoYXQgaXMsIHRoZSBldmVudCBpcyBrbm93biB0byBjb21lIGZyb20gdGhlIHVzZXIsCisgICAgICogYW5kIGNvdWxkIG5vdCBoYXZlIGJlZW4gc3Bvb2ZlZCBieSBhIHRoaXJkIHBhcnR5IGNvbXBvbmVudC4gKi8KKyAgICBBS0VZX0VWRU5UX0ZMQUdfRlJPTV9TWVNURU0gPSAweDgsCisKKyAgICAvKiBUaGlzIG1hc2sgaXMgdXNlZCBmb3IgY29tcGF0aWJpbGl0eSwgdG8gaWRlbnRpZnkgZW50ZXIga2V5cyB0aGF0IGFyZQorICAgICAqIGNvbWluZyBmcm9tIGFuIElNRSB3aG9zZSBlbnRlciBrZXkgaGFzIGJlZW4gYXV0by1sYWJlbGxlZCAibmV4dCIgb3IKKyAgICAgKiAiZG9uZSIuICBUaGlzIGFsbG93cyBUZXh0VmlldyB0byBkaXNwYXRjaCB0aGVzZSBhcyBub3JtYWwgZW50ZXIga2V5cworICAgICAqIGZvciBvbGQgYXBwbGljYXRpb25zLCBidXQgc3RpbGwgZG8gdGhlIGFwcHJvcHJpYXRlIGFjdGlvbiB3aGVuCisgICAgICogcmVjZWl2aW5nIHRoZW0uICovCisgICAgQUtFWV9FVkVOVF9GTEFHX0VESVRPUl9BQ1RJT04gPSAweDEwLAorCisgICAgLyogV2hlbiBhc3NvY2lhdGVkIHdpdGggdXAga2V5IGV2ZW50cywgdGhpcyBpbmRpY2F0ZXMgdGhhdCB0aGUga2V5IHByZXNzCisgICAgICogaGFzIGJlZW4gY2FuY2VsZWQuICBUeXBpY2FsbHkgdGhpcyBpcyB1c2VkIHdpdGggdmlydHVhbCB0b3VjaCBzY3JlZW4KKyAgICAgKiBrZXlzLCB3aGVyZSB0aGUgdXNlciBjYW4gc2xpZGUgZnJvbSB0aGUgdmlydHVhbCBrZXkgYXJlYSBvbiB0byB0aGUKKyAgICAgKiBkaXNwbGF5OiBpbiB0aGF0IGNhc2UsIHRoZSBhcHBsaWNhdGlvbiB3aWxsIHJlY2VpdmUgYSBjYW5jZWxlZCB1cAorICAgICAqIGV2ZW50IGFuZCBzaG91bGQgbm90IHBlcmZvcm0gdGhlIGFjdGlvbiBub3JtYWxseSBhc3NvY2lhdGVkIHdpdGggdGhlCisgICAgICoga2V5LiAgTm90ZSB0aGF0IGZvciB0aGlzIHRvIHdvcmssIHRoZSBhcHBsaWNhdGlvbiBjYW4gbm90IHBlcmZvcm0gYW4KKyAgICAgKiBhY3Rpb24gZm9yIGEga2V5IHVudGlsIGl0IHJlY2VpdmVzIGFuIHVwIG9yIHRoZSBsb25nIHByZXNzIHRpbWVvdXQgaGFzCisgICAgICogZXhwaXJlZC4gKi8KKyAgICBBS0VZX0VWRU5UX0ZMQUdfQ0FOQ0VMRUQgPSAweDIwLAorCisgICAgLyogVGhpcyBrZXkgZXZlbnQgd2FzIGdlbmVyYXRlZCBieSBhIHZpcnR1YWwgKG9uLXNjcmVlbikgaGFyZCBrZXkgYXJlYS4KKyAgICAgKiBUeXBpY2FsbHkgdGhpcyBpcyBhbiBhcmVhIG9mIHRoZSB0b3VjaHNjcmVlbiwgb3V0c2lkZSBvZiB0aGUgcmVndWxhcgorICAgICAqIGRpc3BsYXksIGRlZGljYXRlZCB0byAiaGFyZHdhcmUiIGJ1dHRvbnMuICovCisgICAgQUtFWV9FVkVOVF9GTEFHX1ZJUlRVQUxfSEFSRF9LRVkgPSAweDQwLAorCisgICAgLyogVGhpcyBmbGFnIGlzIHNldCBmb3IgdGhlIGZpcnN0IGtleSByZXBlYXQgdGhhdCBvY2N1cnMgYWZ0ZXIgdGhlCisgICAgICogbG9uZyBwcmVzcyB0aW1lb3V0LiAqLworICAgIEFLRVlfRVZFTlRfRkxBR19MT05HX1BSRVNTID0gMHg4MCwKKworICAgIC8qIFNldCB3aGVuIGEga2V5IGV2ZW50IGhhcyBBS0VZX0VWRU5UX0ZMQUdfQ0FOQ0VMRUQgc2V0IGJlY2F1c2UgYSBsb25nCisgICAgICogcHJlc3MgYWN0aW9uIHdhcyBleGVjdXRlZCB3aGlsZSBpdCB3YXMgZG93bi4gKi8KKyAgICBBS0VZX0VWRU5UX0ZMQUdfQ0FOQ0VMRURfTE9OR19QUkVTUyA9IDB4MTAwLAorCisgICAgLyogU2V0IGZvciBBS0VZX0VWRU5UX0FDVElPTl9VUCB3aGVuIHRoaXMgZXZlbnQncyBrZXkgY29kZSBpcyBzdGlsbCBiZWluZworICAgICAqIHRyYWNrZWQgZnJvbSBpdHMgaW5pdGlhbCBkb3duLiAgVGhhdCBpcywgc29tZWJvZHkgcmVxdWVzdGVkIHRoYXQgdHJhY2tpbmcKKyAgICAgKiBzdGFydGVkIG9uIHRoZSBrZXkgZG93biBhbmQgYSBsb25nIHByZXNzIGhhcyBub3QgY2F1c2VkCisgICAgICogdGhlIHRyYWNraW5nIHRvIGJlIGNhbmNlbGVkLiAqLworICAgIEFLRVlfRVZFTlRfRkxBR19UUkFDS0lORyA9IDB4MjAwLAorCisgICAgLyogU2V0IHdoZW4gYSBrZXkgZXZlbnQgaGFzIGJlZW4gc3ludGhlc2l6ZWQgdG8gaW1wbGVtZW50IGRlZmF1bHQgYmVoYXZpb3IKKyAgICAgKiBmb3IgYW4gZXZlbnQgdGhhdCB0aGUgYXBwbGljYXRpb24gZGlkIG5vdCBoYW5kbGUuCisgICAgICogRmFsbGJhY2sga2V5IGV2ZW50cyBhcmUgZ2VuZXJhdGVkIGJ5IHVuaGFuZGxlZCB0cmFja2JhbGwgbW90aW9ucworICAgICAqICh0byBlbXVsYXRlIGEgZGlyZWN0aW9uYWwga2V5cGFkKSBhbmQgYnkgY2VydGFpbiB1bmhhbmRsZWQga2V5IHByZXNzZXMKKyAgICAgKiB0aGF0IGFyZSBkZWNsYXJlZCBpbiB0aGUga2V5IG1hcCAoc3VjaCBhcyBzcGVjaWFsIGZ1bmN0aW9uIG51bWVyaWMga2V5cGFkCisgICAgICoga2V5cyB3aGVuIG51bWxvY2sgaXMgb2ZmKS4gKi8KKyAgICBBS0VZX0VWRU5UX0ZMQUdfRkFMTEJBQ0sgPSAweDQwMCwKK307CisKKy8qCisgKiBNb3Rpb24gZXZlbnQgYWN0aW9ucy4KKyAqLworCisvKiBCaXQgc2hpZnQgZm9yIHRoZSBhY3Rpb24gYml0cyBob2xkaW5nIHRoZSBwb2ludGVyIGluZGV4IGFzCisgKiBkZWZpbmVkIGJ5IEFNT1RJT05fRVZFTlRfQUNUSU9OX1BPSU5URVJfSU5ERVhfTUFTSy4KKyAqLworI2RlZmluZSBBTU9USU9OX0VWRU5UX0FDVElPTl9QT0lOVEVSX0lOREVYX1NISUZUIDgKKworZW51bSB7CisgICAgLyogQml0IG1hc2sgb2YgdGhlIHBhcnRzIG9mIHRoZSBhY3Rpb24gY29kZSB0aGF0IGFyZSB0aGUgYWN0aW9uIGl0c2VsZi4KKyAgICAgKi8KKyAgICBBTU9USU9OX0VWRU5UX0FDVElPTl9NQVNLID0gMHhmZiwKKworICAgIC8qIEJpdHMgaW4gdGhlIGFjdGlvbiBjb2RlIHRoYXQgcmVwcmVzZW50IGEgcG9pbnRlciBpbmRleCwgdXNlZCB3aXRoCisgICAgICogQU1PVElPTl9FVkVOVF9BQ1RJT05fUE9JTlRFUl9ET1dOIGFuZCBBTU9USU9OX0VWRU5UX0FDVElPTl9QT0lOVEVSX1VQLiAgU2hpZnRpbmcKKyAgICAgKiBkb3duIGJ5IEFNT1RJT05fRVZFTlRfQUNUSU9OX1BPSU5URVJfSU5ERVhfU0hJRlQgcHJvdmlkZXMgdGhlIGFjdHVhbCBwb2ludGVyCisgICAgICogaW5kZXggd2hlcmUgdGhlIGRhdGEgZm9yIHRoZSBwb2ludGVyIGdvaW5nIHVwIG9yIGRvd24gY2FuIGJlIGZvdW5kLgorICAgICAqLworICAgIEFNT1RJT05fRVZFTlRfQUNUSU9OX1BPSU5URVJfSU5ERVhfTUFTSyAgPSAweGZmMDAsCisKKyAgICAvKiBBIHByZXNzZWQgZ2VzdHVyZSBoYXMgc3RhcnRlZCwgdGhlIG1vdGlvbiBjb250YWlucyB0aGUgaW5pdGlhbCBzdGFydGluZyBsb2NhdGlvbi4KKyAgICAgKi8KKyAgICBBTU9USU9OX0VWRU5UX0FDVElPTl9ET1dOID0gMCwKKworICAgIC8qIEEgcHJlc3NlZCBnZXN0dXJlIGhhcyBmaW5pc2hlZCwgdGhlIG1vdGlvbiBjb250YWlucyB0aGUgZmluYWwgcmVsZWFzZSBsb2NhdGlvbgorICAgICAqIGFzIHdlbGwgYXMgYW55IGludGVybWVkaWF0ZSBwb2ludHMgc2luY2UgdGhlIGxhc3QgZG93biBvciBtb3ZlIGV2ZW50LgorICAgICAqLworICAgIEFNT1RJT05fRVZFTlRfQUNUSU9OX1VQID0gMSwKKworICAgIC8qIEEgY2hhbmdlIGhhcyBoYXBwZW5lZCBkdXJpbmcgYSBwcmVzcyBnZXN0dXJlIChiZXR3ZWVuIEFNT1RJT05fRVZFTlRfQUNUSU9OX0RPV04gYW5kCisgICAgICogQU1PVElPTl9FVkVOVF9BQ1RJT05fVVApLiAgVGhlIG1vdGlvbiBjb250YWlucyB0aGUgbW9zdCByZWNlbnQgcG9pbnQsIGFzIHdlbGwgYXMKKyAgICAgKiBhbnkgaW50ZXJtZWRpYXRlIHBvaW50cyBzaW5jZSB0aGUgbGFzdCBkb3duIG9yIG1vdmUgZXZlbnQuCisgICAgICovCisgICAgQU1PVElPTl9FVkVOVF9BQ1RJT05fTU9WRSA9IDIsCisKKyAgICAvKiBUaGUgY3VycmVudCBnZXN0dXJlIGhhcyBiZWVuIGFib3J0ZWQuCisgICAgICogWW91IHdpbGwgbm90IHJlY2VpdmUgYW55IG1vcmUgcG9pbnRzIGluIGl0LiAgWW91IHNob3VsZCB0cmVhdCB0aGlzIGFzCisgICAgICogYW4gdXAgZXZlbnQsIGJ1dCBub3QgcGVyZm9ybSBhbnkgYWN0aW9uIHRoYXQgeW91IG5vcm1hbGx5IHdvdWxkLgorICAgICAqLworICAgIEFNT1RJT05fRVZFTlRfQUNUSU9OX0NBTkNFTCA9IDMsCisKKyAgICAvKiBBIG1vdmVtZW50IGhhcyBoYXBwZW5lZCBvdXRzaWRlIG9mIHRoZSBub3JtYWwgYm91bmRzIG9mIHRoZSBVSSBlbGVtZW50LgorICAgICAqIFRoaXMgZG9lcyBub3QgcHJvdmlkZSBhIGZ1bGwgZ2VzdHVyZSwgYnV0IG9ubHkgdGhlIGluaXRpYWwgbG9jYXRpb24gb2YgdGhlIG1vdmVtZW50L3RvdWNoLgorICAgICAqLworICAgIEFNT1RJT05fRVZFTlRfQUNUSU9OX09VVFNJREUgPSA0LAorCisgICAgLyogQSBub24tcHJpbWFyeSBwb2ludGVyIGhhcyBnb25lIGRvd24uCisgICAgICogVGhlIGJpdHMgaW4gQU1PVElPTl9FVkVOVF9BQ1RJT05fUE9JTlRFUl9JTkRFWF9NQVNLIGluZGljYXRlIHdoaWNoIHBvaW50ZXIgY2hhbmdlZC4KKyAgICAgKi8KKyAgICBBTU9USU9OX0VWRU5UX0FDVElPTl9QT0lOVEVSX0RPV04gPSA1LAorCisgICAgLyogQSBub24tcHJpbWFyeSBwb2ludGVyIGhhcyBnb25lIHVwLgorICAgICAqIFRoZSBiaXRzIGluIEFNT1RJT05fRVZFTlRfQUNUSU9OX1BPSU5URVJfSU5ERVhfTUFTSyBpbmRpY2F0ZSB3aGljaCBwb2ludGVyIGNoYW5nZWQuCisgICAgICovCisgICAgQU1PVElPTl9FVkVOVF9BQ1RJT05fUE9JTlRFUl9VUCA9IDYsCisKKyAgICAvKiBBIGNoYW5nZSBoYXBwZW5lZCBidXQgdGhlIHBvaW50ZXIgaXMgbm90IGRvd24gKHVubGlrZSBBTU9USU9OX0VWRU5UX0FDVElPTl9NT1ZFKS4KKyAgICAgKiBUaGUgbW90aW9uIGNvbnRhaW5zIHRoZSBtb3N0IHJlY2VudCBwb2ludCwgYXMgd2VsbCBhcyBhbnkgaW50ZXJtZWRpYXRlIHBvaW50cyBzaW5jZQorICAgICAqIHRoZSBsYXN0IGhvdmVyIG1vdmUgZXZlbnQuCisgICAgICovCisgICAgQU1PVElPTl9FVkVOVF9BQ1RJT05fSE9WRVJfTU9WRSA9IDcsCisKKyAgICAvKiBUaGUgbW90aW9uIGV2ZW50IGNvbnRhaW5zIHJlbGF0aXZlIHZlcnRpY2FsIGFuZC9vciBob3Jpem9udGFsIHNjcm9sbCBvZmZzZXRzLgorICAgICAqIFVzZSBnZXRBeGlzVmFsdWUgdG8gcmV0cmlldmUgdGhlIGluZm9ybWF0aW9uIGZyb20gQU1PVElPTl9FVkVOVF9BWElTX1ZTQ1JPTEwKKyAgICAgKiBhbmQgQU1PVElPTl9FVkVOVF9BWElTX0hTQ1JPTEwuCisgICAgICogVGhlIHBvaW50ZXIgbWF5IG9yIG1heSBub3QgYmUgZG93biB3aGVuIHRoaXMgZXZlbnQgaXMgZGlzcGF0Y2hlZC4KKyAgICAgKiBUaGlzIGFjdGlvbiBpcyBhbHdheXMgZGVsaXZlcmVkIHRvIHRoZSB3aW5kZXIgdW5kZXIgdGhlIHBvaW50ZXIsIHdoaWNoCisgICAgICogbWF5IG5vdCBiZSB0aGUgd2luZG93IGN1cnJlbnRseSB0b3VjaGVkLgorICAgICAqLworICAgIEFNT1RJT05fRVZFTlRfQUNUSU9OX1NDUk9MTCA9IDgsCisKKyAgICAvKiBUaGUgcG9pbnRlciBpcyBub3QgZG93biBidXQgaGFzIGVudGVyZWQgdGhlIGJvdW5kYXJpZXMgb2YgYSB3aW5kb3cgb3Igdmlldy4KKyAgICAgKi8KKyAgICBBTU9USU9OX0VWRU5UX0FDVElPTl9IT1ZFUl9FTlRFUiA9IDksCisKKyAgICAvKiBUaGUgcG9pbnRlciBpcyBub3QgZG93biBidXQgaGFzIGV4aXRlZCB0aGUgYm91bmRhcmllcyBvZiBhIHdpbmRvdyBvciB2aWV3LgorICAgICAqLworICAgIEFNT1RJT05fRVZFTlRfQUNUSU9OX0hPVkVSX0VYSVQgPSAxMCwKK307CisKKy8qCisgKiBNb3Rpb24gZXZlbnQgZmxhZ3MuCisgKi8KK2VudW0geworICAgIC8qIFRoaXMgZmxhZyBpbmRpY2F0ZXMgdGhhdCB0aGUgd2luZG93IHRoYXQgcmVjZWl2ZWQgdGhpcyBtb3Rpb24gZXZlbnQgaXMgcGFydGx5CisgICAgICogb3Igd2hvbGx5IG9ic2N1cmVkIGJ5IGFub3RoZXIgdmlzaWJsZSB3aW5kb3cgYWJvdmUgaXQuICBUaGlzIGZsYWcgaXMgc2V0IHRvIHRydWUKKyAgICAgKiBldmVuIGlmIHRoZSBldmVudCBkaWQgbm90IGRpcmVjdGx5IHBhc3MgdGhyb3VnaCB0aGUgb2JzY3VyZWQgYXJlYS4KKyAgICAgKiBBIHNlY3VyaXR5IHNlbnNpdGl2ZSBhcHBsaWNhdGlvbiBjYW4gY2hlY2sgdGhpcyBmbGFnIHRvIGlkZW50aWZ5IHNpdHVhdGlvbnMgaW4gd2hpY2gKKyAgICAgKiBhIG1hbGljaW91cyBhcHBsaWNhdGlvbiBtYXkgaGF2ZSBjb3ZlcmVkIHVwIHBhcnQgb2YgaXRzIGNvbnRlbnQgZm9yIHRoZSBwdXJwb3NlCisgICAgICogb2YgbWlzbGVhZGluZyB0aGUgdXNlciBvciBoaWphY2tpbmcgdG91Y2hlcy4gIEFuIGFwcHJvcHJpYXRlIHJlc3BvbnNlIG1pZ2h0IGJlCisgICAgICogdG8gZHJvcCB0aGUgc3VzcGVjdCB0b3VjaGVzIG9yIHRvIHRha2UgYWRkaXRpb25hbCBwcmVjYXV0aW9ucyB0byBjb25maXJtIHRoZSB1c2VyJ3MKKyAgICAgKiBhY3R1YWwgaW50ZW50LgorICAgICAqLworICAgIEFNT1RJT05fRVZFTlRfRkxBR19XSU5ET1dfSVNfT0JTQ1VSRUQgPSAweDEsCit9OworCisvKgorICogTW90aW9uIGV2ZW50IGVkZ2UgdG91Y2ggZmxhZ3MuCisgKi8KK2VudW0geworICAgIC8qIE5vIGVkZ2VzIGludGVyc2VjdGVkICovCisgICAgQU1PVElPTl9FVkVOVF9FREdFX0ZMQUdfTk9ORSA9IDAsCisKKyAgICAvKiBGbGFnIGluZGljYXRpbmcgdGhlIG1vdGlvbiBldmVudCBpbnRlcnNlY3RlZCB0aGUgdG9wIGVkZ2Ugb2YgdGhlIHNjcmVlbi4gKi8KKyAgICBBTU9USU9OX0VWRU5UX0VER0VfRkxBR19UT1AgPSAweDAxLAorCisgICAgLyogRmxhZyBpbmRpY2F0aW5nIHRoZSBtb3Rpb24gZXZlbnQgaW50ZXJzZWN0ZWQgdGhlIGJvdHRvbSBlZGdlIG9mIHRoZSBzY3JlZW4uICovCisgICAgQU1PVElPTl9FVkVOVF9FREdFX0ZMQUdfQk9UVE9NID0gMHgwMiwKKworICAgIC8qIEZsYWcgaW5kaWNhdGluZyB0aGUgbW90aW9uIGV2ZW50IGludGVyc2VjdGVkIHRoZSBsZWZ0IGVkZ2Ugb2YgdGhlIHNjcmVlbi4gKi8KKyAgICBBTU9USU9OX0VWRU5UX0VER0VfRkxBR19MRUZUID0gMHgwNCwKKworICAgIC8qIEZsYWcgaW5kaWNhdGluZyB0aGUgbW90aW9uIGV2ZW50IGludGVyc2VjdGVkIHRoZSByaWdodCBlZGdlIG9mIHRoZSBzY3JlZW4uICovCisgICAgQU1PVElPTl9FVkVOVF9FREdFX0ZMQUdfUklHSFQgPSAweDA4Cit9OworCisvKgorICogQ29uc3RhbnRzIHRoYXQgaWRlbnRpZnkgZWFjaCBpbmRpdmlkdWFsIGF4aXMgb2YgYSBtb3Rpb24gZXZlbnQuCisgKiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBvbiB0aGUgTW90aW9uRXZlbnQgY2xhc3MgZm9yIGRlc2NyaXB0aW9ucyBvZiBlYWNoIGF4aXMuCisgKi8KK2VudW0geworICAgIEFNT1RJT05fRVZFTlRfQVhJU19YID0gMCwKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfWSA9IDEsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX1BSRVNTVVJFID0gMiwKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfU0laRSA9IDMsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX1RPVUNIX01BSk9SID0gNCwKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfVE9VQ0hfTUlOT1IgPSA1LAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19UT09MX01BSk9SID0gNiwKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfVE9PTF9NSU5PUiA9IDcsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX09SSUVOVEFUSU9OID0gOCwKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfVlNDUk9MTCA9IDksCisgICAgQU1PVElPTl9FVkVOVF9BWElTX0hTQ1JPTEwgPSAxMCwKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfWiA9IDExLAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19SWCA9IDEyLAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19SWSA9IDEzLAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19SWiA9IDE0LAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19IQVRfWCA9IDE1LAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19IQVRfWSA9IDE2LAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19MVFJJR0dFUiA9IDE3LAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19SVFJJR0dFUiA9IDE4LAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19USFJPVFRMRSA9IDE5LAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19SVURERVIgPSAyMCwKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfV0hFRUwgPSAyMSwKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfR0FTID0gMjIsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX0JSQUtFID0gMjMsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX0RJU1RBTkNFID0gMjQsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX1RJTFQgPSAyNSwKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfR0VORVJJQ18xID0gMzIsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX0dFTkVSSUNfMiA9IDMzLAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19HRU5FUklDXzMgPSAzNCwKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfR0VORVJJQ180ID0gMzUsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX0dFTkVSSUNfNSA9IDM2LAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19HRU5FUklDXzYgPSAzNywKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfR0VORVJJQ183ID0gMzgsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX0dFTkVSSUNfOCA9IDM5LAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19HRU5FUklDXzkgPSA0MCwKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfR0VORVJJQ18xMCA9IDQxLAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19HRU5FUklDXzExID0gNDIsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX0dFTkVSSUNfMTIgPSA0MywKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfR0VORVJJQ18xMyA9IDQ0LAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19HRU5FUklDXzE0ID0gNDUsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX0dFTkVSSUNfMTUgPSA0NiwKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfR0VORVJJQ18xNiA9IDQ3LAorCisgICAgLy8gTk9URTogSWYgeW91IGFkZCBhIG5ldyBheGlzIGhlcmUgeW91IG11c3QgYWxzbyBhZGQgaXQgdG8gc2V2ZXJhbCBvdGhlciBmaWxlcy4KKyAgICAvLyAgICAgICBSZWZlciB0byBmcmFtZXdvcmtzL2Jhc2UvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9Nb3Rpb25FdmVudC5qYXZhIGZvciB0aGUgZnVsbCBsaXN0LgorfTsKKworLyoKKyAqIENvbnN0YW50cyB0aGF0IGlkZW50aWZ5IGJ1dHRvbnMgdGhhdCBhcmUgYXNzb2NpYXRlZCB3aXRoIG1vdGlvbiBldmVudHMuCisgKiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBvbiB0aGUgTW90aW9uRXZlbnQgY2xhc3MgZm9yIGRlc2NyaXB0aW9ucyBvZiBlYWNoIGJ1dHRvbi4KKyAqLworZW51bSB7CisgICAgQU1PVElPTl9FVkVOVF9CVVRUT05fUFJJTUFSWSA9IDEgPDwgMCwKKyAgICBBTU9USU9OX0VWRU5UX0JVVFRPTl9TRUNPTkRBUlkgPSAxIDw8IDEsCisgICAgQU1PVElPTl9FVkVOVF9CVVRUT05fVEVSVElBUlkgPSAxIDw8IDIsCisgICAgQU1PVElPTl9FVkVOVF9CVVRUT05fQkFDSyA9IDEgPDwgMywKKyAgICBBTU9USU9OX0VWRU5UX0JVVFRPTl9GT1JXQVJEID0gMSA8PCA0LAorfTsKKworLyoKKyAqIENvbnN0YW50cyB0aGF0IGlkZW50aWZ5IHRvb2wgdHlwZXMuCisgKiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBvbiB0aGUgTW90aW9uRXZlbnQgY2xhc3MgZm9yIGRlc2NyaXB0aW9ucyBvZiBlYWNoIHRvb2wgdHlwZS4KKyAqLworZW51bSB7CisgICAgQU1PVElPTl9FVkVOVF9UT09MX1RZUEVfVU5LTk9XTiA9IDAsCisgICAgQU1PVElPTl9FVkVOVF9UT09MX1RZUEVfRklOR0VSID0gMSwKKyAgICBBTU9USU9OX0VWRU5UX1RPT0xfVFlQRV9TVFlMVVMgPSAyLAorICAgIEFNT1RJT05fRVZFTlRfVE9PTF9UWVBFX01PVVNFID0gMywKKyAgICBBTU9USU9OX0VWRU5UX1RPT0xfVFlQRV9FUkFTRVIgPSA0LAorfTsKKworLyoKKyAqIElucHV0IHNvdXJjZXMuCisgKgorICogUmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gb24gYW5kcm9pZC52aWV3LklucHV0RGV2aWNlIGZvciBtb3JlIGRldGFpbHMgYWJvdXQgaW5wdXQgc291cmNlcworICogYW5kIHRoZWlyIGNvcnJlY3QgaW50ZXJwcmV0YXRpb24uCisgKi8KK2VudW0geworICAgIEFJTlBVVF9TT1VSQ0VfQ0xBU1NfTUFTSyA9IDB4MDAwMDAwZmYsCisKKyAgICBBSU5QVVRfU09VUkNFX0NMQVNTX0JVVFRPTiA9IDB4MDAwMDAwMDEsCisgICAgQUlOUFVUX1NPVVJDRV9DTEFTU19QT0lOVEVSID0gMHgwMDAwMDAwMiwKKyAgICBBSU5QVVRfU09VUkNFX0NMQVNTX05BVklHQVRJT04gPSAweDAwMDAwMDA0LAorICAgIEFJTlBVVF9TT1VSQ0VfQ0xBU1NfUE9TSVRJT04gPSAweDAwMDAwMDA4LAorICAgIEFJTlBVVF9TT1VSQ0VfQ0xBU1NfSk9ZU1RJQ0sgPSAweDAwMDAwMDEwLAorfTsKKworZW51bSB7CisgICAgQUlOUFVUX1NPVVJDRV9VTktOT1dOID0gMHgwMDAwMDAwMCwKKworICAgIEFJTlBVVF9TT1VSQ0VfS0VZQk9BUkQgPSAweDAwMDAwMTAwIHwgQUlOUFVUX1NPVVJDRV9DTEFTU19CVVRUT04sCisgICAgQUlOUFVUX1NPVVJDRV9EUEFEID0gMHgwMDAwMDIwMCB8IEFJTlBVVF9TT1VSQ0VfQ0xBU1NfQlVUVE9OLAorICAgIEFJTlBVVF9TT1VSQ0VfR0FNRVBBRCA9IDB4MDAwMDA0MDAgfCBBSU5QVVRfU09VUkNFX0NMQVNTX0JVVFRPTiwKKyAgICBBSU5QVVRfU09VUkNFX1RPVUNIU0NSRUVOID0gMHgwMDAwMTAwMCB8IEFJTlBVVF9TT1VSQ0VfQ0xBU1NfUE9JTlRFUiwKKyAgICBBSU5QVVRfU09VUkNFX01PVVNFID0gMHgwMDAwMjAwMCB8IEFJTlBVVF9TT1VSQ0VfQ0xBU1NfUE9JTlRFUiwKKyAgICBBSU5QVVRfU09VUkNFX1NUWUxVUyA9IDB4MDAwMDQwMDAgfCBBSU5QVVRfU09VUkNFX0NMQVNTX1BPSU5URVIsCisgICAgQUlOUFVUX1NPVVJDRV9UUkFDS0JBTEwgPSAweDAwMDEwMDAwIHwgQUlOUFVUX1NPVVJDRV9DTEFTU19OQVZJR0FUSU9OLAorICAgIEFJTlBVVF9TT1VSQ0VfVE9VQ0hQQUQgPSAweDAwMTAwMDAwIHwgQUlOUFVUX1NPVVJDRV9DTEFTU19QT1NJVElPTiwKKyAgICBBSU5QVVRfU09VUkNFX0pPWVNUSUNLID0gMHgwMTAwMDAwMCB8IEFJTlBVVF9TT1VSQ0VfQ0xBU1NfSk9ZU1RJQ0ssCisKKyAgICBBSU5QVVRfU09VUkNFX0FOWSA9IDB4ZmZmZmZmMDAsCit9OworCisvKgorICogS2V5Ym9hcmQgdHlwZXMuCisgKgorICogUmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gb24gYW5kcm9pZC52aWV3LklucHV0RGV2aWNlIGZvciBtb3JlIGRldGFpbHMuCisgKi8KK2VudW0geworICAgIEFJTlBVVF9LRVlCT0FSRF9UWVBFX05PTkUgPSAwLAorICAgIEFJTlBVVF9LRVlCT0FSRF9UWVBFX05PTl9BTFBIQUJFVElDID0gMSwKKyAgICBBSU5QVVRfS0VZQk9BUkRfVFlQRV9BTFBIQUJFVElDID0gMiwKK307CisKKy8qCisgKiBDb25zdGFudHMgdXNlZCB0byByZXRyaWV2ZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcmFuZ2Ugb2YgbW90aW9uIGZvciBhIHBhcnRpY3VsYXIKKyAqIGNvb3JkaW5hdGUgb2YgYSBtb3Rpb24gZXZlbnQuCisgKgorICogUmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gb24gYW5kcm9pZC52aWV3LklucHV0RGV2aWNlIGZvciBtb3JlIGRldGFpbHMgYWJvdXQgaW5wdXQgc291cmNlcworICogYW5kIHRoZWlyIGNvcnJlY3QgaW50ZXJwcmV0YXRpb24uCisgKgorICogREVQUkVDQVRJT04gTk9USUNFOiBUaGVzZSBjb25zdGFudHMgYXJlIGRlcHJlY2F0ZWQuICBVc2UgQU1PVElPTl9FVkVOVF9BWElTXyogY29uc3RhbnRzIGluc3RlYWQuCisgKi8KK2VudW0geworICAgIEFJTlBVVF9NT1RJT05fUkFOR0VfWCA9IEFNT1RJT05fRVZFTlRfQVhJU19YLAorICAgIEFJTlBVVF9NT1RJT05fUkFOR0VfWSA9IEFNT1RJT05fRVZFTlRfQVhJU19ZLAorICAgIEFJTlBVVF9NT1RJT05fUkFOR0VfUFJFU1NVUkUgPSBBTU9USU9OX0VWRU5UX0FYSVNfUFJFU1NVUkUsCisgICAgQUlOUFVUX01PVElPTl9SQU5HRV9TSVpFID0gQU1PVElPTl9FVkVOVF9BWElTX1NJWkUsCisgICAgQUlOUFVUX01PVElPTl9SQU5HRV9UT1VDSF9NQUpPUiA9IEFNT1RJT05fRVZFTlRfQVhJU19UT1VDSF9NQUpPUiwKKyAgICBBSU5QVVRfTU9USU9OX1JBTkdFX1RPVUNIX01JTk9SID0gQU1PVElPTl9FVkVOVF9BWElTX1RPVUNIX01JTk9SLAorICAgIEFJTlBVVF9NT1RJT05fUkFOR0VfVE9PTF9NQUpPUiA9IEFNT1RJT05fRVZFTlRfQVhJU19UT09MX01BSk9SLAorICAgIEFJTlBVVF9NT1RJT05fUkFOR0VfVE9PTF9NSU5PUiA9IEFNT1RJT05fRVZFTlRfQVhJU19UT09MX01JTk9SLAorICAgIEFJTlBVVF9NT1RJT05fUkFOR0VfT1JJRU5UQVRJT04gPSBBTU9USU9OX0VWRU5UX0FYSVNfT1JJRU5UQVRJT04sCit9IF9fYXR0cmlidXRlX18gKChkZXByZWNhdGVkKSk7CisKKworLyoKKyAqIElucHV0IGV2ZW50IGFjY2Vzc29ycy4KKyAqCisgKiBOb3RlIHRoYXQgbW9zdCBmdW5jdGlvbnMgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnB1dCBldmVudHMgdGhhdCBhcmUgb2YgYSBnaXZlbiB0eXBlLgorICogQ2FsbGluZyB0aGVzZSBmdW5jdGlvbnMgb24gaW5wdXQgZXZlbnRzIG9mIG90aGVyIHR5cGVzIHdpbGwgeWllbGQgdW5kZWZpbmVkIGJlaGF2aW9yLgorICovCisKKy8qKiogQWNjZXNzb3JzIGZvciBhbGwgaW5wdXQgZXZlbnRzLiAqKiovCisKKy8qIEdldCB0aGUgaW5wdXQgZXZlbnQgdHlwZS4gKi8KK2ludDMyX3QgQUlucHV0RXZlbnRfZ2V0VHlwZShjb25zdCBBSW5wdXRFdmVudCogZXZlbnQpOworCisvKiBHZXQgdGhlIGlkIGZvciB0aGUgZGV2aWNlIHRoYXQgYW4gaW5wdXQgZXZlbnQgY2FtZSBmcm9tLgorICoKKyAqIElucHV0IGV2ZW50cyBjYW4gYmUgZ2VuZXJhdGVkIGJ5IG11bHRpcGxlIGRpZmZlcmVudCBpbnB1dCBkZXZpY2VzLgorICogVXNlIHRoZSBpbnB1dCBkZXZpY2UgaWQgdG8gb2J0YWluIGluZm9ybWF0aW9uIGFib3V0IHRoZSBpbnB1dAorICogZGV2aWNlIHRoYXQgd2FzIHJlc3BvbnNpYmxlIGZvciBnZW5lcmF0aW5nIGEgcGFydGljdWxhciBldmVudC4KKyAqCisgKiBBbiBpbnB1dCBkZXZpY2UgaWQgb2YgMCBpbmRpY2F0ZXMgdGhhdCB0aGUgZXZlbnQgZGlkbid0IGNvbWUgZnJvbSBhIHBoeXNpY2FsIGRldmljZTsKKyAqIG90aGVyIG51bWJlcnMgYXJlIGFyYml0cmFyeSBhbmQgeW91IHNob3VsZG4ndCBkZXBlbmQgb24gdGhlIHZhbHVlcy4KKyAqIFVzZSB0aGUgcHJvdmlkZWQgaW5wdXQgZGV2aWNlIHF1ZXJ5IEFQSSB0byBvYnRhaW4gaW5mb3JtYXRpb24gYWJvdXQgaW5wdXQgZGV2aWNlcy4KKyAqLworaW50MzJfdCBBSW5wdXRFdmVudF9nZXREZXZpY2VJZChjb25zdCBBSW5wdXRFdmVudCogZXZlbnQpOworCisvKiBHZXQgdGhlIGlucHV0IGV2ZW50IHNvdXJjZS4gKi8KK2ludDMyX3QgQUlucHV0RXZlbnRfZ2V0U291cmNlKGNvbnN0IEFJbnB1dEV2ZW50KiBldmVudCk7CisKKy8qKiogQWNjZXNzb3JzIGZvciBrZXkgZXZlbnRzIG9ubHkuICoqKi8KKworLyogR2V0IHRoZSBrZXkgZXZlbnQgYWN0aW9uLiAqLworaW50MzJfdCBBS2V5RXZlbnRfZ2V0QWN0aW9uKGNvbnN0IEFJbnB1dEV2ZW50KiBrZXlfZXZlbnQpOworCisvKiBHZXQgdGhlIGtleSBldmVudCBmbGFncy4gKi8KK2ludDMyX3QgQUtleUV2ZW50X2dldEZsYWdzKGNvbnN0IEFJbnB1dEV2ZW50KiBrZXlfZXZlbnQpOworCisvKiBHZXQgdGhlIGtleSBjb2RlIG9mIHRoZSBrZXkgZXZlbnQuCisgKiBUaGlzIGlzIHRoZSBwaHlzaWNhbCBrZXkgdGhhdCB3YXMgcHJlc3NlZCwgbm90IHRoZSBVbmljb2RlIGNoYXJhY3Rlci4gKi8KK2ludDMyX3QgQUtleUV2ZW50X2dldEtleUNvZGUoY29uc3QgQUlucHV0RXZlbnQqIGtleV9ldmVudCk7CisKKy8qIEdldCB0aGUgaGFyZHdhcmUga2V5IGlkIG9mIHRoaXMga2V5IGV2ZW50LgorICogVGhlc2UgdmFsdWVzIGFyZSBub3QgcmVsaWFibGUgYW5kIHZhcnkgZnJvbSBkZXZpY2UgdG8gZGV2aWNlLiAqLworaW50MzJfdCBBS2V5RXZlbnRfZ2V0U2NhbkNvZGUoY29uc3QgQUlucHV0RXZlbnQqIGtleV9ldmVudCk7CisKKy8qIEdldCB0aGUgbWV0YSBrZXkgc3RhdGUuICovCitpbnQzMl90IEFLZXlFdmVudF9nZXRNZXRhU3RhdGUoY29uc3QgQUlucHV0RXZlbnQqIGtleV9ldmVudCk7CisKKy8qIEdldCB0aGUgcmVwZWF0IGNvdW50IG9mIHRoZSBldmVudC4KKyAqIEZvciBib3RoIGtleSB1cCBhbiBrZXkgZG93biBldmVudHMsIHRoaXMgaXMgdGhlIG51bWJlciBvZiB0aW1lcyB0aGUga2V5IGhhcworICogcmVwZWF0ZWQgd2l0aCB0aGUgZmlyc3QgZG93biBzdGFydGluZyBhdCAwIGFuZCBjb3VudGluZyB1cCBmcm9tIHRoZXJlLiAgRm9yCisgKiBtdWx0aXBsZSBrZXkgZXZlbnRzLCB0aGlzIGlzIHRoZSBudW1iZXIgb2YgZG93bi91cCBwYWlycyB0aGF0IGhhdmUgb2NjdXJyZWQuICovCitpbnQzMl90IEFLZXlFdmVudF9nZXRSZXBlYXRDb3VudChjb25zdCBBSW5wdXRFdmVudCoga2V5X2V2ZW50KTsKKworLyogR2V0IHRoZSB0aW1lIG9mIHRoZSBtb3N0IHJlY2VudCBrZXkgZG93biBldmVudCwgaW4gdGhlCisgKiBqYXZhLmxhbmcuU3lzdGVtLm5hbm9UaW1lKCkgdGltZSBiYXNlLiAgSWYgdGhpcyBpcyBhIGRvd24gZXZlbnQsCisgKiB0aGlzIHdpbGwgYmUgdGhlIHNhbWUgYXMgZXZlbnRUaW1lLgorICogTm90ZSB0aGF0IHdoZW4gY2hvcmRpbmcga2V5cywgdGhpcyB2YWx1ZSBpcyB0aGUgZG93biB0aW1lIG9mIHRoZSBtb3N0IHJlY2VudGx5CisgKiBwcmVzc2VkIGtleSwgd2hpY2ggbWF5IG5vdCBiZSB0aGUgc2FtZSBwaHlzaWNhbCBrZXkgb2YgdGhpcyBldmVudC4gKi8KK2ludDY0X3QgQUtleUV2ZW50X2dldERvd25UaW1lKGNvbnN0IEFJbnB1dEV2ZW50KiBrZXlfZXZlbnQpOworCisvKiBHZXQgdGhlIHRpbWUgdGhpcyBldmVudCBvY2N1cnJlZCwgaW4gdGhlCisgKiBqYXZhLmxhbmcuU3lzdGVtLm5hbm9UaW1lKCkgdGltZSBiYXNlLiAqLworaW50NjRfdCBBS2V5RXZlbnRfZ2V0RXZlbnRUaW1lKGNvbnN0IEFJbnB1dEV2ZW50KiBrZXlfZXZlbnQpOworCisvKioqIEFjY2Vzc29ycyBmb3IgbW90aW9uIGV2ZW50cyBvbmx5LiAqKiovCisKKy8qIEdldCB0aGUgY29tYmluZWQgbW90aW9uIGV2ZW50IGFjdGlvbiBjb2RlIGFuZCBwb2ludGVyIGluZGV4LiAqLworaW50MzJfdCBBTW90aW9uRXZlbnRfZ2V0QWN0aW9uKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQpOworCisvKiBHZXQgdGhlIG1vdGlvbiBldmVudCBmbGFncy4gKi8KK2ludDMyX3QgQU1vdGlvbkV2ZW50X2dldEZsYWdzKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQpOworCisvKiBHZXQgdGhlIHN0YXRlIG9mIGFueSBtZXRhIC8gbW9kaWZpZXIga2V5cyB0aGF0IHdlcmUgaW4gZWZmZWN0IHdoZW4gdGhlCisgKiBldmVudCB3YXMgZ2VuZXJhdGVkLiAqLworaW50MzJfdCBBTW90aW9uRXZlbnRfZ2V0TWV0YVN0YXRlKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQpOworCisvKiBHZXQgdGhlIGJ1dHRvbiBzdGF0ZSBvZiBhbGwgYnV0dG9ucyB0aGF0IGFyZSBwcmVzc2VkLiAqLworaW50MzJfdCBBTW90aW9uRXZlbnRfZ2V0QnV0dG9uU3RhdGUoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCk7CisKKy8qIEdldCBhIGJpdGZpZWxkIGluZGljYXRpbmcgd2hpY2ggZWRnZXMsIGlmIGFueSwgd2VyZSB0b3VjaGVkIGJ5IHRoaXMgbW90aW9uIGV2ZW50LgorICogRm9yIHRvdWNoIGV2ZW50cywgY2xpZW50cyBjYW4gdXNlIHRoaXMgdG8gZGV0ZXJtaW5lIGlmIHRoZSB1c2VyJ3MgZmluZ2VyIHdhcworICogdG91Y2hpbmcgdGhlIGVkZ2Ugb2YgdGhlIGRpc3BsYXkuICovCitpbnQzMl90IEFNb3Rpb25FdmVudF9nZXRFZGdlRmxhZ3MoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCk7CisKKy8qIEdldCB0aGUgdGltZSB3aGVuIHRoZSB1c2VyIG9yaWdpbmFsbHkgcHJlc3NlZCBkb3duIHRvIHN0YXJ0IGEgc3RyZWFtIG9mCisgKiBwb3NpdGlvbiBldmVudHMsIGluIHRoZSBqYXZhLmxhbmcuU3lzdGVtLm5hbm9UaW1lKCkgdGltZSBiYXNlLiAqLworaW50NjRfdCBBTW90aW9uRXZlbnRfZ2V0RG93blRpbWUoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCk7CisKKy8qIEdldCB0aGUgdGltZSB3aGVuIHRoaXMgc3BlY2lmaWMgZXZlbnQgd2FzIGdlbmVyYXRlZCwKKyAqIGluIHRoZSBqYXZhLmxhbmcuU3lzdGVtLm5hbm9UaW1lKCkgdGltZSBiYXNlLiAqLworaW50NjRfdCBBTW90aW9uRXZlbnRfZ2V0RXZlbnRUaW1lKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQpOworCisvKiBHZXQgdGhlIFggY29vcmRpbmF0ZSBvZmZzZXQuCisgKiBGb3IgdG91Y2ggZXZlbnRzIG9uIHRoZSBzY3JlZW4sIHRoaXMgaXMgdGhlIGRlbHRhIHRoYXQgd2FzIGFkZGVkIHRvIHRoZSByYXcKKyAqIHNjcmVlbiBjb29yZGluYXRlcyB0byBhZGp1c3QgZm9yIHRoZSBhYnNvbHV0ZSBwb3NpdGlvbiBvZiB0aGUgY29udGFpbmluZyB3aW5kb3dzCisgKiBhbmQgdmlld3MuICovCitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0WE9mZnNldChjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50KSBfX05ES19GUEFCSV9fOworCisvKiBHZXQgdGhlIHByZWNpc2lvbiBvZiB0aGUgWSBjb29yZGluYXRlcyBiZWluZyByZXBvcnRlZC4KKyAqIEZvciB0b3VjaCBldmVudHMgb24gdGhlIHNjcmVlbiwgdGhpcyBpcyB0aGUgZGVsdGEgdGhhdCB3YXMgYWRkZWQgdG8gdGhlIHJhdworICogc2NyZWVuIGNvb3JkaW5hdGVzIHRvIGFkanVzdCBmb3IgdGhlIGFic29sdXRlIHBvc2l0aW9uIG9mIHRoZSBjb250YWluaW5nIHdpbmRvd3MKKyAqIGFuZCB2aWV3cy4gKi8KK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRZT2Zmc2V0KGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQpIF9fTkRLX0ZQQUJJX187CisKKy8qIEdldCB0aGUgcHJlY2lzaW9uIG9mIHRoZSBYIGNvb3JkaW5hdGVzIGJlaW5nIHJlcG9ydGVkLgorICogWW91IGNhbiBtdWx0aXBseSB0aGlzIG51bWJlciB3aXRoIGFuIFggY29vcmRpbmF0ZSBzYW1wbGUgdG8gZmluZCB0aGUKKyAqIGFjdHVhbCBoYXJkd2FyZSB2YWx1ZSBvZiB0aGUgWCBjb29yZGluYXRlLiAqLworZmxvYXQgQU1vdGlvbkV2ZW50X2dldFhQcmVjaXNpb24oY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCkgX19OREtfRlBBQklfXzsKKworLyogR2V0IHRoZSBwcmVjaXNpb24gb2YgdGhlIFkgY29vcmRpbmF0ZXMgYmVpbmcgcmVwb3J0ZWQuCisgKiBZb3UgY2FuIG11bHRpcGx5IHRoaXMgbnVtYmVyIHdpdGggYSBZIGNvb3JkaW5hdGUgc2FtcGxlIHRvIGZpbmQgdGhlCisgKiBhY3R1YWwgaGFyZHdhcmUgdmFsdWUgb2YgdGhlIFkgY29vcmRpbmF0ZS4gKi8KK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRZUHJlY2lzaW9uKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQpIF9fTkRLX0ZQQUJJX187CisKKy8qIEdldCB0aGUgbnVtYmVyIG9mIHBvaW50ZXJzIG9mIGRhdGEgY29udGFpbmVkIGluIHRoaXMgZXZlbnQuCisgKiBBbHdheXMgPj0gMS4gKi8KK3NpemVfdCBBTW90aW9uRXZlbnRfZ2V0UG9pbnRlckNvdW50KGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQpOworCisvKiBHZXQgdGhlIHBvaW50ZXIgaWRlbnRpZmllciBhc3NvY2lhdGVkIHdpdGggYSBwYXJ0aWN1bGFyIHBvaW50ZXIKKyAqIGRhdGEgaW5kZXggaW4gdGhpcyBldmVudC4gIFRoZSBpZGVudGlmaWVyIHRlbGxzIHlvdSB0aGUgYWN0dWFsIHBvaW50ZXIKKyAqIG51bWJlciBhc3NvY2lhdGVkIHdpdGggdGhlIGRhdGEsIGFjY291bnRpbmcgZm9yIGluZGl2aWR1YWwgcG9pbnRlcnMKKyAqIGdvaW5nIHVwIGFuZCBkb3duIHNpbmNlIHRoZSBzdGFydCBvZiB0aGUgY3VycmVudCBnZXN0dXJlLiAqLworaW50MzJfdCBBTW90aW9uRXZlbnRfZ2V0UG9pbnRlcklkKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4KTsKKworLyogR2V0IHRoZSB0b29sIHR5cGUgb2YgYSBwb2ludGVyIGZvciB0aGUgZ2l2ZW4gcG9pbnRlciBpbmRleC4KKyAqIFRoZSB0b29sIHR5cGUgaW5kaWNhdGVzIHRoZSB0eXBlIG9mIHRvb2wgdXNlZCB0byBtYWtlIGNvbnRhY3Qgc3VjaCBhcyBhCisgKiBmaW5nZXIgb3Igc3R5bHVzLCBpZiBrbm93bi4gKi8KK2ludDMyX3QgQU1vdGlvbkV2ZW50X2dldFRvb2xUeXBlKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4KTsKKworLyogR2V0IHRoZSBvcmlnaW5hbCByYXcgWCBjb29yZGluYXRlIG9mIHRoaXMgZXZlbnQuCisgKiBGb3IgdG91Y2ggZXZlbnRzIG9uIHRoZSBzY3JlZW4sIHRoaXMgaXMgdGhlIG9yaWdpbmFsIGxvY2F0aW9uIG9mIHRoZSBldmVudAorICogb24gdGhlIHNjcmVlbiwgYmVmb3JlIGl0IGhhZCBiZWVuIGFkanVzdGVkIGZvciB0aGUgY29udGFpbmluZyB3aW5kb3cKKyAqIGFuZCB2aWV3cy4gKi8KK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRSYXdYKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4KSBfX05ES19GUEFCSV9fOworCisvKiBHZXQgdGhlIG9yaWdpbmFsIHJhdyBYIGNvb3JkaW5hdGUgb2YgdGhpcyBldmVudC4KKyAqIEZvciB0b3VjaCBldmVudHMgb24gdGhlIHNjcmVlbiwgdGhpcyBpcyB0aGUgb3JpZ2luYWwgbG9jYXRpb24gb2YgdGhlIGV2ZW50CisgKiBvbiB0aGUgc2NyZWVuLCBiZWZvcmUgaXQgaGFkIGJlZW4gYWRqdXN0ZWQgZm9yIHRoZSBjb250YWluaW5nIHdpbmRvdworICogYW5kIHZpZXdzLiAqLworZmxvYXQgQU1vdGlvbkV2ZW50X2dldFJhd1koY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgpIF9fTkRLX0ZQQUJJX187CisKKy8qIEdldCB0aGUgY3VycmVudCBYIGNvb3JkaW5hdGUgb2YgdGhpcyBldmVudCBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXguCisgKiBXaG9sZSBudW1iZXJzIGFyZSBwaXhlbHM7IHRoZSB2YWx1ZSBtYXkgaGF2ZSBhIGZyYWN0aW9uIGZvciBpbnB1dCBkZXZpY2VzCisgKiB0aGF0IGFyZSBzdWItcGl4ZWwgcHJlY2lzZS4gKi8KK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRYKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4KSBfX05ES19GUEFCSV9fOworCisvKiBHZXQgdGhlIGN1cnJlbnQgWSBjb29yZGluYXRlIG9mIHRoaXMgZXZlbnQgZm9yIHRoZSBnaXZlbiBwb2ludGVyIGluZGV4LgorICogV2hvbGUgbnVtYmVycyBhcmUgcGl4ZWxzOyB0aGUgdmFsdWUgbWF5IGhhdmUgYSBmcmFjdGlvbiBmb3IgaW5wdXQgZGV2aWNlcworICogdGhhdCBhcmUgc3ViLXBpeGVsIHByZWNpc2UuICovCitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0WShjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LCBzaXplX3QgcG9pbnRlcl9pbmRleCkgX19OREtfRlBBQklfXzsKKworLyogR2V0IHRoZSBjdXJyZW50IHByZXNzdXJlIG9mIHRoaXMgZXZlbnQgZm9yIHRoZSBnaXZlbiBwb2ludGVyIGluZGV4LgorICogVGhlIHByZXNzdXJlIGdlbmVyYWxseSByYW5nZXMgZnJvbSAwIChubyBwcmVzc3VyZSBhdCBhbGwpIHRvIDEgKG5vcm1hbCBwcmVzc3VyZSksCisgKiBhbHRob3VnaCB2YWx1ZXMgaGlnaGVyIHRoYW4gMSBtYXkgYmUgZ2VuZXJhdGVkIGRlcGVuZGluZyBvbiB0aGUgY2FsaWJyYXRpb24gb2YKKyAqIHRoZSBpbnB1dCBkZXZpY2UuICovCitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0UHJlc3N1cmUoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgpIF9fTkRLX0ZQQUJJX187CisKKy8qIEdldCB0aGUgY3VycmVudCBzY2FsZWQgdmFsdWUgb2YgdGhlIGFwcHJveGltYXRlIHNpemUgZm9yIHRoZSBnaXZlbiBwb2ludGVyIGluZGV4LgorICogVGhpcyByZXByZXNlbnRzIHNvbWUgYXBwcm94aW1hdGlvbiBvZiB0aGUgYXJlYSBvZiB0aGUgc2NyZWVuIGJlaW5nCisgKiBwcmVzc2VkOyB0aGUgYWN0dWFsIHZhbHVlIGluIHBpeGVscyBjb3JyZXNwb25kaW5nIHRvIHRoZQorICogdG91Y2ggaXMgbm9ybWFsaXplZCB3aXRoIHRoZSBkZXZpY2Ugc3BlY2lmaWMgcmFuZ2Ugb2YgdmFsdWVzCisgKiBhbmQgc2NhbGVkIHRvIGEgdmFsdWUgYmV0d2VlbiAwIGFuZCAxLiAgVGhlIHZhbHVlIG9mIHNpemUgY2FuIGJlIHVzZWQgdG8KKyAqIGRldGVybWluZSBmYXQgdG91Y2ggZXZlbnRzLiAqLworZmxvYXQgQU1vdGlvbkV2ZW50X2dldFNpemUoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgpIF9fTkRLX0ZQQUJJX187CisKKy8qIEdldCB0aGUgY3VycmVudCBsZW5ndGggb2YgdGhlIG1ham9yIGF4aXMgb2YgYW4gZWxsaXBzZSB0aGF0IGRlc2NyaWJlcyB0aGUgdG91Y2ggYXJlYQorICogYXQgdGhlIHBvaW50IG9mIGNvbnRhY3QgZm9yIHRoZSBnaXZlbiBwb2ludGVyIGluZGV4LiAqLworZmxvYXQgQU1vdGlvbkV2ZW50X2dldFRvdWNoTWFqb3IoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgpIF9fTkRLX0ZQQUJJX187CisKKy8qIEdldCB0aGUgY3VycmVudCBsZW5ndGggb2YgdGhlIG1pbm9yIGF4aXMgb2YgYW4gZWxsaXBzZSB0aGF0IGRlc2NyaWJlcyB0aGUgdG91Y2ggYXJlYQorICogYXQgdGhlIHBvaW50IG9mIGNvbnRhY3QgZm9yIHRoZSBnaXZlbiBwb2ludGVyIGluZGV4LiAqLworZmxvYXQgQU1vdGlvbkV2ZW50X2dldFRvdWNoTWlub3IoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgpIF9fTkRLX0ZQQUJJX187CisKKy8qIEdldCB0aGUgY3VycmVudCBsZW5ndGggb2YgdGhlIG1ham9yIGF4aXMgb2YgYW4gZWxsaXBzZSB0aGF0IGRlc2NyaWJlcyB0aGUgc2l6ZQorICogb2YgdGhlIGFwcHJvYWNoaW5nIHRvb2wgZm9yIHRoZSBnaXZlbiBwb2ludGVyIGluZGV4LgorICogVGhlIHRvb2wgYXJlYSByZXByZXNlbnRzIHRoZSBlc3RpbWF0ZWQgc2l6ZSBvZiB0aGUgZmluZ2VyIG9yIHBlbiB0aGF0IGlzCisgKiB0b3VjaGluZyB0aGUgZGV2aWNlIGluZGVwZW5kZW50IG9mIGl0cyBhY3R1YWwgdG91Y2ggYXJlYSBhdCB0aGUgcG9pbnQgb2YgY29udGFjdC4gKi8KK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRUb29sTWFqb3IoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgpIF9fTkRLX0ZQQUJJX187CisKKy8qIEdldCB0aGUgY3VycmVudCBsZW5ndGggb2YgdGhlIG1pbm9yIGF4aXMgb2YgYW4gZWxsaXBzZSB0aGF0IGRlc2NyaWJlcyB0aGUgc2l6ZQorICogb2YgdGhlIGFwcHJvYWNoaW5nIHRvb2wgZm9yIHRoZSBnaXZlbiBwb2ludGVyIGluZGV4LgorICogVGhlIHRvb2wgYXJlYSByZXByZXNlbnRzIHRoZSBlc3RpbWF0ZWQgc2l6ZSBvZiB0aGUgZmluZ2VyIG9yIHBlbiB0aGF0IGlzCisgKiB0b3VjaGluZyB0aGUgZGV2aWNlIGluZGVwZW5kZW50IG9mIGl0cyBhY3R1YWwgdG91Y2ggYXJlYSBhdCB0aGUgcG9pbnQgb2YgY29udGFjdC4gKi8KK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRUb29sTWlub3IoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgpIF9fTkRLX0ZQQUJJX187CisKKy8qIEdldCB0aGUgY3VycmVudCBvcmllbnRhdGlvbiBvZiB0aGUgdG91Y2ggYXJlYSBhbmQgdG9vbCBhcmVhIGluIHJhZGlhbnMgY2xvY2t3aXNlIGZyb20KKyAqIHZlcnRpY2FsIGZvciB0aGUgZ2l2ZW4gcG9pbnRlciBpbmRleC4KKyAqIEFuIGFuZ2xlIG9mIDAgZGVncmVlcyBpbmRpY2F0ZXMgdGhhdCB0aGUgbWFqb3IgYXhpcyBvZiBjb250YWN0IGlzIG9yaWVudGVkCisgKiB1cHdhcmRzLCBpcyBwZXJmZWN0bHkgY2lyY3VsYXIgb3IgaXMgb2YgdW5rbm93biBvcmllbnRhdGlvbi4gIEEgcG9zaXRpdmUgYW5nbGUKKyAqIGluZGljYXRlcyB0aGF0IHRoZSBtYWpvciBheGlzIG9mIGNvbnRhY3QgaXMgb3JpZW50ZWQgdG8gdGhlIHJpZ2h0LiAgQSBuZWdhdGl2ZSBhbmdsZQorICogaW5kaWNhdGVzIHRoYXQgdGhlIG1ham9yIGF4aXMgb2YgY29udGFjdCBpcyBvcmllbnRlZCB0byB0aGUgbGVmdC4KKyAqIFRoZSBmdWxsIHJhbmdlIGlzIGZyb20gLVBJLzIgcmFkaWFucyAoZmluZ2VyIHBvaW50aW5nIGZ1bGx5IGxlZnQpIHRvIFBJLzIgcmFkaWFucworICogKGZpbmdlciBwb2ludGluZyBmdWxseSByaWdodCkuICovCitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0T3JpZW50YXRpb24oY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgpIF9fTkRLX0ZQQUJJX187CisKKy8qIEdldCB0aGUgdmFsdWUgb2YgdGhlIHJlcXVlc3QgYXhpcyBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXguICovCitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0QXhpc1ZhbHVlKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsCisgICAgICAgIGludDMyX3QgYXhpcywgc2l6ZV90IHBvaW50ZXJfaW5kZXgpIF9fTkRLX0ZQQUJJX187CisKKy8qIEdldCB0aGUgbnVtYmVyIG9mIGhpc3RvcmljYWwgcG9pbnRzIGluIHRoaXMgZXZlbnQuICBUaGVzZSBhcmUgbW92ZW1lbnRzIHRoYXQKKyAqIGhhdmUgb2NjdXJyZWQgYmV0d2VlbiB0aGlzIGV2ZW50IGFuZCB0aGUgcHJldmlvdXMgZXZlbnQuICBUaGlzIG9ubHkgYXBwbGllcworICogdG8gQU1PVElPTl9FVkVOVF9BQ1RJT05fTU9WRSBldmVudHMgLS0gYWxsIG90aGVyIGFjdGlvbnMgd2lsbCBoYXZlIGEgc2l6ZSBvZiAwLgorICogSGlzdG9yaWNhbCBzYW1wbGVzIGFyZSBpbmRleGVkIGZyb20gb2xkZXN0IHRvIG5ld2VzdC4gKi8KK3NpemVfdCBBTW90aW9uRXZlbnRfZ2V0SGlzdG9yeVNpemUoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCk7CisKKy8qIEdldCB0aGUgdGltZSB0aGF0IGEgaGlzdG9yaWNhbCBtb3ZlbWVudCBvY2N1cnJlZCBiZXR3ZWVuIHRoaXMgZXZlbnQgYW5kCisgKiB0aGUgcHJldmlvdXMgZXZlbnQsIGluIHRoZSBqYXZhLmxhbmcuU3lzdGVtLm5hbm9UaW1lKCkgdGltZSBiYXNlLiAqLworaW50NjRfdCBBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbEV2ZW50VGltZShjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LAorICAgICAgICBzaXplX3QgaGlzdG9yeV9pbmRleCk7CisKKy8qIEdldCB0aGUgaGlzdG9yaWNhbCByYXcgWCBjb29yZGluYXRlIG9mIHRoaXMgZXZlbnQgZm9yIHRoZSBnaXZlbiBwb2ludGVyIGluZGV4IHRoYXQKKyAqIG9jY3VycmVkIGJldHdlZW4gdGhpcyBldmVudCBhbmQgdGhlIHByZXZpb3VzIG1vdGlvbiBldmVudC4KKyAqIEZvciB0b3VjaCBldmVudHMgb24gdGhlIHNjcmVlbiwgdGhpcyBpcyB0aGUgb3JpZ2luYWwgbG9jYXRpb24gb2YgdGhlIGV2ZW50CisgKiBvbiB0aGUgc2NyZWVuLCBiZWZvcmUgaXQgaGFkIGJlZW4gYWRqdXN0ZWQgZm9yIHRoZSBjb250YWluaW5nIHdpbmRvdworICogYW5kIHZpZXdzLgorICogV2hvbGUgbnVtYmVycyBhcmUgcGl4ZWxzOyB0aGUgdmFsdWUgbWF5IGhhdmUgYSBmcmFjdGlvbiBmb3IgaW5wdXQgZGV2aWNlcworICogdGhhdCBhcmUgc3ViLXBpeGVsIHByZWNpc2UuICovCitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFJhd1goY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgsCisgICAgICAgIHNpemVfdCBoaXN0b3J5X2luZGV4KSBfX05ES19GUEFCSV9fOworCisvKiBHZXQgdGhlIGhpc3RvcmljYWwgcmF3IFkgY29vcmRpbmF0ZSBvZiB0aGlzIGV2ZW50IGZvciB0aGUgZ2l2ZW4gcG9pbnRlciBpbmRleCB0aGF0CisgKiBvY2N1cnJlZCBiZXR3ZWVuIHRoaXMgZXZlbnQgYW5kIHRoZSBwcmV2aW91cyBtb3Rpb24gZXZlbnQuCisgKiBGb3IgdG91Y2ggZXZlbnRzIG9uIHRoZSBzY3JlZW4sIHRoaXMgaXMgdGhlIG9yaWdpbmFsIGxvY2F0aW9uIG9mIHRoZSBldmVudAorICogb24gdGhlIHNjcmVlbiwgYmVmb3JlIGl0IGhhZCBiZWVuIGFkanVzdGVkIGZvciB0aGUgY29udGFpbmluZyB3aW5kb3cKKyAqIGFuZCB2aWV3cy4KKyAqIFdob2xlIG51bWJlcnMgYXJlIHBpeGVsczsgdGhlIHZhbHVlIG1heSBoYXZlIGEgZnJhY3Rpb24gZm9yIGlucHV0IGRldmljZXMKKyAqIHRoYXQgYXJlIHN1Yi1waXhlbCBwcmVjaXNlLiAqLworZmxvYXQgQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxSYXdZKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4LAorICAgICAgICBzaXplX3QgaGlzdG9yeV9pbmRleCkgX19OREtfRlBBQklfXzsKKworLyogR2V0IHRoZSBoaXN0b3JpY2FsIFggY29vcmRpbmF0ZSBvZiB0aGlzIGV2ZW50IGZvciB0aGUgZ2l2ZW4gcG9pbnRlciBpbmRleCB0aGF0CisgKiBvY2N1cnJlZCBiZXR3ZWVuIHRoaXMgZXZlbnQgYW5kIHRoZSBwcmV2aW91cyBtb3Rpb24gZXZlbnQuCisgKiBXaG9sZSBudW1iZXJzIGFyZSBwaXhlbHM7IHRoZSB2YWx1ZSBtYXkgaGF2ZSBhIGZyYWN0aW9uIGZvciBpbnB1dCBkZXZpY2VzCisgKiB0aGF0IGFyZSBzdWItcGl4ZWwgcHJlY2lzZS4gKi8KK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsWChjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LCBzaXplX3QgcG9pbnRlcl9pbmRleCwKKyAgICAgICAgc2l6ZV90IGhpc3RvcnlfaW5kZXgpIF9fTkRLX0ZQQUJJX187CisKKy8qIEdldCB0aGUgaGlzdG9yaWNhbCBZIGNvb3JkaW5hdGUgb2YgdGhpcyBldmVudCBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXggdGhhdAorICogb2NjdXJyZWQgYmV0d2VlbiB0aGlzIGV2ZW50IGFuZCB0aGUgcHJldmlvdXMgbW90aW9uIGV2ZW50LgorICogV2hvbGUgbnVtYmVycyBhcmUgcGl4ZWxzOyB0aGUgdmFsdWUgbWF5IGhhdmUgYSBmcmFjdGlvbiBmb3IgaW5wdXQgZGV2aWNlcworICogdGhhdCBhcmUgc3ViLXBpeGVsIHByZWNpc2UuICovCitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFkoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgsCisgICAgICAgIHNpemVfdCBoaXN0b3J5X2luZGV4KSBfX05ES19GUEFCSV9fOworCisvKiBHZXQgdGhlIGhpc3RvcmljYWwgcHJlc3N1cmUgb2YgdGhpcyBldmVudCBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXggdGhhdAorICogb2NjdXJyZWQgYmV0d2VlbiB0aGlzIGV2ZW50IGFuZCB0aGUgcHJldmlvdXMgbW90aW9uIGV2ZW50LgorICogVGhlIHByZXNzdXJlIGdlbmVyYWxseSByYW5nZXMgZnJvbSAwIChubyBwcmVzc3VyZSBhdCBhbGwpIHRvIDEgKG5vcm1hbCBwcmVzc3VyZSksCisgKiBhbHRob3VnaCB2YWx1ZXMgaGlnaGVyIHRoYW4gMSBtYXkgYmUgZ2VuZXJhdGVkIGRlcGVuZGluZyBvbiB0aGUgY2FsaWJyYXRpb24gb2YKKyAqIHRoZSBpbnB1dCBkZXZpY2UuICovCitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFByZXNzdXJlKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4LAorICAgICAgICBzaXplX3QgaGlzdG9yeV9pbmRleCkgX19OREtfRlBBQklfXzsKKworLyogR2V0IHRoZSBjdXJyZW50IHNjYWxlZCB2YWx1ZSBvZiB0aGUgYXBwcm94aW1hdGUgc2l6ZSBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXggdGhhdAorICogb2NjdXJyZWQgYmV0d2VlbiB0aGlzIGV2ZW50IGFuZCB0aGUgcHJldmlvdXMgbW90aW9uIGV2ZW50LgorICogVGhpcyByZXByZXNlbnRzIHNvbWUgYXBwcm94aW1hdGlvbiBvZiB0aGUgYXJlYSBvZiB0aGUgc2NyZWVuIGJlaW5nCisgKiBwcmVzc2VkOyB0aGUgYWN0dWFsIHZhbHVlIGluIHBpeGVscyBjb3JyZXNwb25kaW5nIHRvIHRoZQorICogdG91Y2ggaXMgbm9ybWFsaXplZCB3aXRoIHRoZSBkZXZpY2Ugc3BlY2lmaWMgcmFuZ2Ugb2YgdmFsdWVzCisgKiBhbmQgc2NhbGVkIHRvIGEgdmFsdWUgYmV0d2VlbiAwIGFuZCAxLiAgVGhlIHZhbHVlIG9mIHNpemUgY2FuIGJlIHVzZWQgdG8KKyAqIGRldGVybWluZSBmYXQgdG91Y2ggZXZlbnRzLiAqLworZmxvYXQgQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxTaXplKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4LAorICAgICAgICBzaXplX3QgaGlzdG9yeV9pbmRleCkgX19OREtfRlBBQklfXzsKKworLyogR2V0IHRoZSBoaXN0b3JpY2FsIGxlbmd0aCBvZiB0aGUgbWFqb3IgYXhpcyBvZiBhbiBlbGxpcHNlIHRoYXQgZGVzY3JpYmVzIHRoZSB0b3VjaCBhcmVhCisgKiBhdCB0aGUgcG9pbnQgb2YgY29udGFjdCBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXggdGhhdAorICogb2NjdXJyZWQgYmV0d2VlbiB0aGlzIGV2ZW50IGFuZCB0aGUgcHJldmlvdXMgbW90aW9uIGV2ZW50LiAqLworZmxvYXQgQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxUb3VjaE1ham9yKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4LAorICAgICAgICBzaXplX3QgaGlzdG9yeV9pbmRleCkgX19OREtfRlBBQklfXzsKKworLyogR2V0IHRoZSBoaXN0b3JpY2FsIGxlbmd0aCBvZiB0aGUgbWlub3IgYXhpcyBvZiBhbiBlbGxpcHNlIHRoYXQgZGVzY3JpYmVzIHRoZSB0b3VjaCBhcmVhCisgKiBhdCB0aGUgcG9pbnQgb2YgY29udGFjdCBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXggdGhhdAorICogb2NjdXJyZWQgYmV0d2VlbiB0aGlzIGV2ZW50IGFuZCB0aGUgcHJldmlvdXMgbW90aW9uIGV2ZW50LiAqLworZmxvYXQgQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxUb3VjaE1pbm9yKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4LAorICAgICAgICBzaXplX3QgaGlzdG9yeV9pbmRleCkgX19OREtfRlBBQklfXzsKKworLyogR2V0IHRoZSBoaXN0b3JpY2FsIGxlbmd0aCBvZiB0aGUgbWFqb3IgYXhpcyBvZiBhbiBlbGxpcHNlIHRoYXQgZGVzY3JpYmVzIHRoZSBzaXplCisgKiBvZiB0aGUgYXBwcm9hY2hpbmcgdG9vbCBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXggdGhhdAorICogb2NjdXJyZWQgYmV0d2VlbiB0aGlzIGV2ZW50IGFuZCB0aGUgcHJldmlvdXMgbW90aW9uIGV2ZW50LgorICogVGhlIHRvb2wgYXJlYSByZXByZXNlbnRzIHRoZSBlc3RpbWF0ZWQgc2l6ZSBvZiB0aGUgZmluZ2VyIG9yIHBlbiB0aGF0IGlzCisgKiB0b3VjaGluZyB0aGUgZGV2aWNlIGluZGVwZW5kZW50IG9mIGl0cyBhY3R1YWwgdG91Y2ggYXJlYSBhdCB0aGUgcG9pbnQgb2YgY29udGFjdC4gKi8KK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsVG9vbE1ham9yKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4LAorICAgICAgICBzaXplX3QgaGlzdG9yeV9pbmRleCkgX19OREtfRlBBQklfXzsKKworLyogR2V0IHRoZSBoaXN0b3JpY2FsIGxlbmd0aCBvZiB0aGUgbWlub3IgYXhpcyBvZiBhbiBlbGxpcHNlIHRoYXQgZGVzY3JpYmVzIHRoZSBzaXplCisgKiBvZiB0aGUgYXBwcm9hY2hpbmcgdG9vbCBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXggdGhhdAorICogb2NjdXJyZWQgYmV0d2VlbiB0aGlzIGV2ZW50IGFuZCB0aGUgcHJldmlvdXMgbW90aW9uIGV2ZW50LgorICogVGhlIHRvb2wgYXJlYSByZXByZXNlbnRzIHRoZSBlc3RpbWF0ZWQgc2l6ZSBvZiB0aGUgZmluZ2VyIG9yIHBlbiB0aGF0IGlzCisgKiB0b3VjaGluZyB0aGUgZGV2aWNlIGluZGVwZW5kZW50IG9mIGl0cyBhY3R1YWwgdG91Y2ggYXJlYSBhdCB0aGUgcG9pbnQgb2YgY29udGFjdC4gKi8KK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsVG9vbE1pbm9yKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4LAorICAgICAgICBzaXplX3QgaGlzdG9yeV9pbmRleCkgX19OREtfRlBBQklfXzsKKworLyogR2V0IHRoZSBoaXN0b3JpY2FsIG9yaWVudGF0aW9uIG9mIHRoZSB0b3VjaCBhcmVhIGFuZCB0b29sIGFyZWEgaW4gcmFkaWFucyBjbG9ja3dpc2UgZnJvbQorICogdmVydGljYWwgZm9yIHRoZSBnaXZlbiBwb2ludGVyIGluZGV4IHRoYXQKKyAqIG9jY3VycmVkIGJldHdlZW4gdGhpcyBldmVudCBhbmQgdGhlIHByZXZpb3VzIG1vdGlvbiBldmVudC4KKyAqIEFuIGFuZ2xlIG9mIDAgZGVncmVlcyBpbmRpY2F0ZXMgdGhhdCB0aGUgbWFqb3IgYXhpcyBvZiBjb250YWN0IGlzIG9yaWVudGVkCisgKiB1cHdhcmRzLCBpcyBwZXJmZWN0bHkgY2lyY3VsYXIgb3IgaXMgb2YgdW5rbm93biBvcmllbnRhdGlvbi4gIEEgcG9zaXRpdmUgYW5nbGUKKyAqIGluZGljYXRlcyB0aGF0IHRoZSBtYWpvciBheGlzIG9mIGNvbnRhY3QgaXMgb3JpZW50ZWQgdG8gdGhlIHJpZ2h0LiAgQSBuZWdhdGl2ZSBhbmdsZQorICogaW5kaWNhdGVzIHRoYXQgdGhlIG1ham9yIGF4aXMgb2YgY29udGFjdCBpcyBvcmllbnRlZCB0byB0aGUgbGVmdC4KKyAqIFRoZSBmdWxsIHJhbmdlIGlzIGZyb20gLVBJLzIgcmFkaWFucyAoZmluZ2VyIHBvaW50aW5nIGZ1bGx5IGxlZnQpIHRvIFBJLzIgcmFkaWFucworICogKGZpbmdlciBwb2ludGluZyBmdWxseSByaWdodCkuICovCitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbE9yaWVudGF0aW9uKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4LAorICAgICAgICBzaXplX3QgaGlzdG9yeV9pbmRleCkgX19OREtfRlBBQklfXzsKKworLyogR2V0IHRoZSBoaXN0b3JpY2FsIHZhbHVlIG9mIHRoZSByZXF1ZXN0IGF4aXMgZm9yIHRoZSBnaXZlbiBwb2ludGVyIGluZGV4CisgKiB0aGF0IG9jY3VycmVkIGJldHdlZW4gdGhpcyBldmVudCBhbmQgdGhlIHByZXZpb3VzIG1vdGlvbiBldmVudC4gKi8KK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsQXhpc1ZhbHVlKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsCisgICAgICAgIGludDMyX3QgYXhpcywgc2l6ZV90IHBvaW50ZXJfaW5kZXgsIHNpemVfdCBoaXN0b3J5X2luZGV4KSBfX05ES19GUEFCSV9fOworCisKKy8qCisgKiBJbnB1dCBxdWV1ZQorICoKKyAqIEFuIGlucHV0IHF1ZXVlIGlzIHRoZSBmYWNpbGl0eSB0aHJvdWdoIHdoaWNoIHlvdSByZXRyaWV2ZSBpbnB1dAorICogZXZlbnRzLgorICovCitzdHJ1Y3QgQUlucHV0UXVldWU7Cit0eXBlZGVmIHN0cnVjdCBBSW5wdXRRdWV1ZSBBSW5wdXRRdWV1ZTsKKworLyoKKyAqIEFkZCB0aGlzIGlucHV0IHF1ZXVlIHRvIGEgbG9vcGVyIGZvciBwcm9jZXNzaW5nLiAgU2VlCisgKiBBTG9vcGVyX2FkZEZkKCkgZm9yIGluZm9ybWF0aW9uIG9uIHRoZSBpZGVudCwgY2FsbGJhY2ssIGFuZCBkYXRhIHBhcmFtcy4KKyAqLwordm9pZCBBSW5wdXRRdWV1ZV9hdHRhY2hMb29wZXIoQUlucHV0UXVldWUqIHF1ZXVlLCBBTG9vcGVyKiBsb29wZXIsCisgICAgICAgIGludCBpZGVudCwgQUxvb3Blcl9jYWxsYmFja0Z1bmMgY2FsbGJhY2ssIHZvaWQqIGRhdGEpOworCisvKgorICogUmVtb3ZlIHRoZSBpbnB1dCBxdWV1ZSBmcm9tIHRoZSBsb29wZXIgaXQgaXMgY3VycmVudGx5IGF0dGFjaGVkIHRvLgorICovCit2b2lkIEFJbnB1dFF1ZXVlX2RldGFjaExvb3BlcihBSW5wdXRRdWV1ZSogcXVldWUpOworCisvKgorICogUmV0dXJucyB0cnVlIGlmIHRoZXJlIGFyZSBvbmUgb3IgbW9yZSBldmVudHMgYXZhaWxhYmxlIGluIHRoZQorICogaW5wdXQgcXVldWUuICBSZXR1cm5zIDEgaWYgdGhlIHF1ZXVlIGhhcyBldmVudHM7IDAgaWYKKyAqIGl0IGRvZXMgbm90IGhhdmUgZXZlbnRzOyBhbmQgYSBuZWdhdGl2ZSB2YWx1ZSBpZiB0aGVyZSBpcyBhbiBlcnJvci4KKyAqLworaW50MzJfdCBBSW5wdXRRdWV1ZV9oYXNFdmVudHMoQUlucHV0UXVldWUqIHF1ZXVlKTsKKworLyoKKyAqIFJldHVybnMgdGhlIG5leHQgYXZhaWxhYmxlIGV2ZW50IGZyb20gdGhlIHF1ZXVlLiAgUmV0dXJucyBhIG5lZ2F0aXZlCisgKiB2YWx1ZSBpZiBubyBldmVudHMgYXJlIGF2YWlsYWJsZSBvciBhbiBlcnJvciBoYXMgb2NjdXJyZWQuCisgKi8KK2ludDMyX3QgQUlucHV0UXVldWVfZ2V0RXZlbnQoQUlucHV0UXVldWUqIHF1ZXVlLCBBSW5wdXRFdmVudCoqIG91dEV2ZW50KTsKKworLyoKKyAqIFNlbmRzIHRoZSBrZXkgZm9yIHN0YW5kYXJkIHByZS1kaXNwYXRjaGluZyAtLSB0aGF0IGlzLCBwb3NzaWJseSBkZWxpdmVyCisgKiBpdCB0byB0aGUgY3VycmVudCBJTUUgdG8gYmUgY29uc3VtZWQgYmVmb3JlIHRoZSBhcHAuICBSZXR1cm5zIDAgaWYgaXQKKyAqIHdhcyBub3QgcHJlLWRpc3BhdGNoZWQsIG1lYW5pbmcgeW91IGNhbiBwcm9jZXNzIGl0IHJpZ2h0IG5vdy4gIElmIG5vbi16ZXJvCisgKiBpcyByZXR1cm5lZCwgeW91IG11c3QgYWJhbmRvbiB0aGUgY3VycmVudCBldmVudCBwcm9jZXNzaW5nIGFuZCBhbGxvdyB0aGUKKyAqIGV2ZW50IHRvIGFwcGVhciBhZ2FpbiBpbiB0aGUgZXZlbnQgcXVldWUgKGlmIGl0IGRvZXMgbm90IGdldCBjb25zdW1lZCBkdXJpbmcKKyAqIHByZS1kaXNwYXRjaGluZykuCisgKi8KK2ludDMyX3QgQUlucHV0UXVldWVfcHJlRGlzcGF0Y2hFdmVudChBSW5wdXRRdWV1ZSogcXVldWUsIEFJbnB1dEV2ZW50KiBldmVudCk7CisKKy8qCisgKiBSZXBvcnQgdGhhdCBkaXNwYXRjaGluZyBoYXMgZmluaXNoZWQgd2l0aCB0aGUgZ2l2ZW4gZXZlbnQuCisgKiBUaGlzIG11c3QgYmUgY2FsbGVkIGFmdGVyIHJlY2VpdmluZyBhbiBldmVudCB3aXRoIEFJbnB1dFF1ZXVlX2dldF9ldmVudCgpLgorICovCit2b2lkIEFJbnB1dFF1ZXVlX2ZpbmlzaEV2ZW50KEFJbnB1dFF1ZXVlKiBxdWV1ZSwgQUlucHV0RXZlbnQqIGV2ZW50LCBpbnQgaGFuZGxlZCk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvLyBfQU5EUk9JRF9JTlBVVF9ICmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTQvaW5jbHVkZS9hbmRyb2lkL2tleWNvZGVzLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTQvaW5jbHVkZS9hbmRyb2lkL2tleWNvZGVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWQ0OTc3NQotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNC9pbmNsdWRlL2FuZHJvaWQva2V5Y29kZXMuaApAQCAtMCwwICsxLDI2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgX0FORFJPSURfS0VZQ09ERVNfSAorI2RlZmluZSBfQU5EUk9JRF9LRVlDT0RFU19ICisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBJTVBPUlRBTlQgTk9USUNFOgorICoKKyAqICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgQW5kcm9pZCdzIHNldCBvZiBzdGFibGUgc3lzdGVtIGhlYWRlcnMKKyAqICAgZXhwb3NlZCBieSB0aGUgQW5kcm9pZCBOREsgKE5hdGl2ZSBEZXZlbG9wbWVudCBLaXQpLgorICoKKyAqICAgVGhpcmQtcGFydHkgc291cmNlIEFORCBiaW5hcnkgY29kZSByZWxpZXMgb24gdGhlIGRlZmluaXRpb25zCisgKiAgIGhlcmUgdG8gYmUgRlJPWkVOIE9OIEFMTCBVUENPTUlORyBQTEFURk9STSBSRUxFQVNFUy4KKyAqCisgKiAgIC0gRE8gTk9UIE1PRElGWSBFTlVNUyAoRVhDRVBUIElGIFlPVSBBREQgTkVXIDMyLUJJVCBWQUxVRVMpCisgKiAgIC0gRE8gTk9UIE1PRElGWSBDT05TVEFOVFMgT1IgRlVOQ1RJT05BTCBNQUNST1MKKyAqICAgLSBETyBOT1QgQ0hBTkdFIFRIRSBTSUdOQVRVUkUgT0YgRlVOQ1RJT05TIElOIEFOWSBXQVkKKyAqICAgLSBETyBOT1QgQ0hBTkdFIFRIRSBMQVlPVVQgT1IgU0laRSBPRiBTVFJVQ1RVUkVTCisgKi8KKworI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qCisgKiBLZXkgY29kZXMuCisgKi8KK2VudW0geworICAgIEFLRVlDT0RFX1VOS05PV04gICAgICAgICA9IDAsCisgICAgQUtFWUNPREVfU09GVF9MRUZUICAgICAgID0gMSwKKyAgICBBS0VZQ09ERV9TT0ZUX1JJR0hUICAgICAgPSAyLAorICAgIEFLRVlDT0RFX0hPTUUgICAgICAgICAgICA9IDMsCisgICAgQUtFWUNPREVfQkFDSyAgICAgICAgICAgID0gNCwKKyAgICBBS0VZQ09ERV9DQUxMICAgICAgICAgICAgPSA1LAorICAgIEFLRVlDT0RFX0VORENBTEwgICAgICAgICA9IDYsCisgICAgQUtFWUNPREVfMCAgICAgICAgICAgICAgID0gNywKKyAgICBBS0VZQ09ERV8xICAgICAgICAgICAgICAgPSA4LAorICAgIEFLRVlDT0RFXzIgICAgICAgICAgICAgICA9IDksCisgICAgQUtFWUNPREVfMyAgICAgICAgICAgICAgID0gMTAsCisgICAgQUtFWUNPREVfNCAgICAgICAgICAgICAgID0gMTEsCisgICAgQUtFWUNPREVfNSAgICAgICAgICAgICAgID0gMTIsCisgICAgQUtFWUNPREVfNiAgICAgICAgICAgICAgID0gMTMsCisgICAgQUtFWUNPREVfNyAgICAgICAgICAgICAgID0gMTQsCisgICAgQUtFWUNPREVfOCAgICAgICAgICAgICAgID0gMTUsCisgICAgQUtFWUNPREVfOSAgICAgICAgICAgICAgID0gMTYsCisgICAgQUtFWUNPREVfU1RBUiAgICAgICAgICAgID0gMTcsCisgICAgQUtFWUNPREVfUE9VTkQgICAgICAgICAgID0gMTgsCisgICAgQUtFWUNPREVfRFBBRF9VUCAgICAgICAgID0gMTksCisgICAgQUtFWUNPREVfRFBBRF9ET1dOICAgICAgID0gMjAsCisgICAgQUtFWUNPREVfRFBBRF9MRUZUICAgICAgID0gMjEsCisgICAgQUtFWUNPREVfRFBBRF9SSUdIVCAgICAgID0gMjIsCisgICAgQUtFWUNPREVfRFBBRF9DRU5URVIgICAgID0gMjMsCisgICAgQUtFWUNPREVfVk9MVU1FX1VQICAgICAgID0gMjQsCisgICAgQUtFWUNPREVfVk9MVU1FX0RPV04gICAgID0gMjUsCisgICAgQUtFWUNPREVfUE9XRVIgICAgICAgICAgID0gMjYsCisgICAgQUtFWUNPREVfQ0FNRVJBICAgICAgICAgID0gMjcsCisgICAgQUtFWUNPREVfQ0xFQVIgICAgICAgICAgID0gMjgsCisgICAgQUtFWUNPREVfQSAgICAgICAgICAgICAgID0gMjksCisgICAgQUtFWUNPREVfQiAgICAgICAgICAgICAgID0gMzAsCisgICAgQUtFWUNPREVfQyAgICAgICAgICAgICAgID0gMzEsCisgICAgQUtFWUNPREVfRCAgICAgICAgICAgICAgID0gMzIsCisgICAgQUtFWUNPREVfRSAgICAgICAgICAgICAgID0gMzMsCisgICAgQUtFWUNPREVfRiAgICAgICAgICAgICAgID0gMzQsCisgICAgQUtFWUNPREVfRyAgICAgICAgICAgICAgID0gMzUsCisgICAgQUtFWUNPREVfSCAgICAgICAgICAgICAgID0gMzYsCisgICAgQUtFWUNPREVfSSAgICAgICAgICAgICAgID0gMzcsCisgICAgQUtFWUNPREVfSiAgICAgICAgICAgICAgID0gMzgsCisgICAgQUtFWUNPREVfSyAgICAgICAgICAgICAgID0gMzksCisgICAgQUtFWUNPREVfTCAgICAgICAgICAgICAgID0gNDAsCisgICAgQUtFWUNPREVfTSAgICAgICAgICAgICAgID0gNDEsCisgICAgQUtFWUNPREVfTiAgICAgICAgICAgICAgID0gNDIsCisgICAgQUtFWUNPREVfTyAgICAgICAgICAgICAgID0gNDMsCisgICAgQUtFWUNPREVfUCAgICAgICAgICAgICAgID0gNDQsCisgICAgQUtFWUNPREVfUSAgICAgICAgICAgICAgID0gNDUsCisgICAgQUtFWUNPREVfUiAgICAgICAgICAgICAgID0gNDYsCisgICAgQUtFWUNPREVfUyAgICAgICAgICAgICAgID0gNDcsCisgICAgQUtFWUNPREVfVCAgICAgICAgICAgICAgID0gNDgsCisgICAgQUtFWUNPREVfVSAgICAgICAgICAgICAgID0gNDksCisgICAgQUtFWUNPREVfViAgICAgICAgICAgICAgID0gNTAsCisgICAgQUtFWUNPREVfVyAgICAgICAgICAgICAgID0gNTEsCisgICAgQUtFWUNPREVfWCAgICAgICAgICAgICAgID0gNTIsCisgICAgQUtFWUNPREVfWSAgICAgICAgICAgICAgID0gNTMsCisgICAgQUtFWUNPREVfWiAgICAgICAgICAgICAgID0gNTQsCisgICAgQUtFWUNPREVfQ09NTUEgICAgICAgICAgID0gNTUsCisgICAgQUtFWUNPREVfUEVSSU9EICAgICAgICAgID0gNTYsCisgICAgQUtFWUNPREVfQUxUX0xFRlQgICAgICAgID0gNTcsCisgICAgQUtFWUNPREVfQUxUX1JJR0hUICAgICAgID0gNTgsCisgICAgQUtFWUNPREVfU0hJRlRfTEVGVCAgICAgID0gNTksCisgICAgQUtFWUNPREVfU0hJRlRfUklHSFQgICAgID0gNjAsCisgICAgQUtFWUNPREVfVEFCICAgICAgICAgICAgID0gNjEsCisgICAgQUtFWUNPREVfU1BBQ0UgICAgICAgICAgID0gNjIsCisgICAgQUtFWUNPREVfU1lNICAgICAgICAgICAgID0gNjMsCisgICAgQUtFWUNPREVfRVhQTE9SRVIgICAgICAgID0gNjQsCisgICAgQUtFWUNPREVfRU5WRUxPUEUgICAgICAgID0gNjUsCisgICAgQUtFWUNPREVfRU5URVIgICAgICAgICAgID0gNjYsCisgICAgQUtFWUNPREVfREVMICAgICAgICAgICAgID0gNjcsCisgICAgQUtFWUNPREVfR1JBVkUgICAgICAgICAgID0gNjgsCisgICAgQUtFWUNPREVfTUlOVVMgICAgICAgICAgID0gNjksCisgICAgQUtFWUNPREVfRVFVQUxTICAgICAgICAgID0gNzAsCisgICAgQUtFWUNPREVfTEVGVF9CUkFDS0VUICAgID0gNzEsCisgICAgQUtFWUNPREVfUklHSFRfQlJBQ0tFVCAgID0gNzIsCisgICAgQUtFWUNPREVfQkFDS1NMQVNIICAgICAgID0gNzMsCisgICAgQUtFWUNPREVfU0VNSUNPTE9OICAgICAgID0gNzQsCisgICAgQUtFWUNPREVfQVBPU1RST1BIRSAgICAgID0gNzUsCisgICAgQUtFWUNPREVfU0xBU0ggICAgICAgICAgID0gNzYsCisgICAgQUtFWUNPREVfQVQgICAgICAgICAgICAgID0gNzcsCisgICAgQUtFWUNPREVfTlVNICAgICAgICAgICAgID0gNzgsCisgICAgQUtFWUNPREVfSEVBRFNFVEhPT0sgICAgID0gNzksCisgICAgQUtFWUNPREVfRk9DVVMgICAgICAgICAgID0gODAsICAgLy8gKkNhbWVyYSogZm9jdXMKKyAgICBBS0VZQ09ERV9QTFVTICAgICAgICAgICAgPSA4MSwKKyAgICBBS0VZQ09ERV9NRU5VICAgICAgICAgICAgPSA4MiwKKyAgICBBS0VZQ09ERV9OT1RJRklDQVRJT04gICAgPSA4MywKKyAgICBBS0VZQ09ERV9TRUFSQ0ggICAgICAgICAgPSA4NCwKKyAgICBBS0VZQ09ERV9NRURJQV9QTEFZX1BBVVNFPSA4NSwKKyAgICBBS0VZQ09ERV9NRURJQV9TVE9QICAgICAgPSA4NiwKKyAgICBBS0VZQ09ERV9NRURJQV9ORVhUICAgICAgPSA4NywKKyAgICBBS0VZQ09ERV9NRURJQV9QUkVWSU9VUyAgPSA4OCwKKyAgICBBS0VZQ09ERV9NRURJQV9SRVdJTkQgICAgPSA4OSwKKyAgICBBS0VZQ09ERV9NRURJQV9GQVNUX0ZPUldBUkQgPSA5MCwKKyAgICBBS0VZQ09ERV9NVVRFICAgICAgICAgICAgPSA5MSwKKyAgICBBS0VZQ09ERV9QQUdFX1VQICAgICAgICAgPSA5MiwKKyAgICBBS0VZQ09ERV9QQUdFX0RPV04gICAgICAgPSA5MywKKyAgICBBS0VZQ09ERV9QSUNUU1lNQk9MUyAgICAgPSA5NCwKKyAgICBBS0VZQ09ERV9TV0lUQ0hfQ0hBUlNFVCAgPSA5NSwKKyAgICBBS0VZQ09ERV9CVVRUT05fQSAgICAgICAgPSA5NiwKKyAgICBBS0VZQ09ERV9CVVRUT05fQiAgICAgICAgPSA5NywKKyAgICBBS0VZQ09ERV9CVVRUT05fQyAgICAgICAgPSA5OCwKKyAgICBBS0VZQ09ERV9CVVRUT05fWCAgICAgICAgPSA5OSwKKyAgICBBS0VZQ09ERV9CVVRUT05fWSAgICAgICAgPSAxMDAsCisgICAgQUtFWUNPREVfQlVUVE9OX1ogICAgICAgID0gMTAxLAorICAgIEFLRVlDT0RFX0JVVFRPTl9MMSAgICAgICA9IDEwMiwKKyAgICBBS0VZQ09ERV9CVVRUT05fUjEgICAgICAgPSAxMDMsCisgICAgQUtFWUNPREVfQlVUVE9OX0wyICAgICAgID0gMTA0LAorICAgIEFLRVlDT0RFX0JVVFRPTl9SMiAgICAgICA9IDEwNSwKKyAgICBBS0VZQ09ERV9CVVRUT05fVEhVTUJMICAgPSAxMDYsCisgICAgQUtFWUNPREVfQlVUVE9OX1RIVU1CUiAgID0gMTA3LAorICAgIEFLRVlDT0RFX0JVVFRPTl9TVEFSVCAgICA9IDEwOCwKKyAgICBBS0VZQ09ERV9CVVRUT05fU0VMRUNUICAgPSAxMDksCisgICAgQUtFWUNPREVfQlVUVE9OX01PREUgICAgID0gMTEwLAorICAgIEFLRVlDT0RFX0VTQ0FQRSAgICAgICAgICA9IDExMSwKKyAgICBBS0VZQ09ERV9GT1JXQVJEX0RFTCAgICAgPSAxMTIsCisgICAgQUtFWUNPREVfQ1RSTF9MRUZUICAgICAgID0gMTEzLAorICAgIEFLRVlDT0RFX0NUUkxfUklHSFQgICAgICA9IDExNCwKKyAgICBBS0VZQ09ERV9DQVBTX0xPQ0sgICAgICAgPSAxMTUsCisgICAgQUtFWUNPREVfU0NST0xMX0xPQ0sgICAgID0gMTE2LAorICAgIEFLRVlDT0RFX01FVEFfTEVGVCAgICAgICA9IDExNywKKyAgICBBS0VZQ09ERV9NRVRBX1JJR0hUICAgICAgPSAxMTgsCisgICAgQUtFWUNPREVfRlVOQ1RJT04gICAgICAgID0gMTE5LAorICAgIEFLRVlDT0RFX1NZU1JRICAgICAgICAgICA9IDEyMCwKKyAgICBBS0VZQ09ERV9CUkVBSyAgICAgICAgICAgPSAxMjEsCisgICAgQUtFWUNPREVfTU9WRV9IT01FICAgICAgID0gMTIyLAorICAgIEFLRVlDT0RFX01PVkVfRU5EICAgICAgICA9IDEyMywKKyAgICBBS0VZQ09ERV9JTlNFUlQgICAgICAgICAgPSAxMjQsCisgICAgQUtFWUNPREVfRk9SV0FSRCAgICAgICAgID0gMTI1LAorICAgIEFLRVlDT0RFX01FRElBX1BMQVkgICAgICA9IDEyNiwKKyAgICBBS0VZQ09ERV9NRURJQV9QQVVTRSAgICAgPSAxMjcsCisgICAgQUtFWUNPREVfTUVESUFfQ0xPU0UgICAgID0gMTI4LAorICAgIEFLRVlDT0RFX01FRElBX0VKRUNUICAgICA9IDEyOSwKKyAgICBBS0VZQ09ERV9NRURJQV9SRUNPUkQgICAgPSAxMzAsCisgICAgQUtFWUNPREVfRjEgICAgICAgICAgICAgID0gMTMxLAorICAgIEFLRVlDT0RFX0YyICAgICAgICAgICAgICA9IDEzMiwKKyAgICBBS0VZQ09ERV9GMyAgICAgICAgICAgICAgPSAxMzMsCisgICAgQUtFWUNPREVfRjQgICAgICAgICAgICAgID0gMTM0LAorICAgIEFLRVlDT0RFX0Y1ICAgICAgICAgICAgICA9IDEzNSwKKyAgICBBS0VZQ09ERV9GNiAgICAgICAgICAgICAgPSAxMzYsCisgICAgQUtFWUNPREVfRjcgICAgICAgICAgICAgID0gMTM3LAorICAgIEFLRVlDT0RFX0Y4ICAgICAgICAgICAgICA9IDEzOCwKKyAgICBBS0VZQ09ERV9GOSAgICAgICAgICAgICAgPSAxMzksCisgICAgQUtFWUNPREVfRjEwICAgICAgICAgICAgID0gMTQwLAorICAgIEFLRVlDT0RFX0YxMSAgICAgICAgICAgICA9IDE0MSwKKyAgICBBS0VZQ09ERV9GMTIgICAgICAgICAgICAgPSAxNDIsCisgICAgQUtFWUNPREVfTlVNX0xPQ0sgICAgICAgID0gMTQzLAorICAgIEFLRVlDT0RFX05VTVBBRF8wICAgICAgICA9IDE0NCwKKyAgICBBS0VZQ09ERV9OVU1QQURfMSAgICAgICAgPSAxNDUsCisgICAgQUtFWUNPREVfTlVNUEFEXzIgICAgICAgID0gMTQ2LAorICAgIEFLRVlDT0RFX05VTVBBRF8zICAgICAgICA9IDE0NywKKyAgICBBS0VZQ09ERV9OVU1QQURfNCAgICAgICAgPSAxNDgsCisgICAgQUtFWUNPREVfTlVNUEFEXzUgICAgICAgID0gMTQ5LAorICAgIEFLRVlDT0RFX05VTVBBRF82ICAgICAgICA9IDE1MCwKKyAgICBBS0VZQ09ERV9OVU1QQURfNyAgICAgICAgPSAxNTEsCisgICAgQUtFWUNPREVfTlVNUEFEXzggICAgICAgID0gMTUyLAorICAgIEFLRVlDT0RFX05VTVBBRF85ICAgICAgICA9IDE1MywKKyAgICBBS0VZQ09ERV9OVU1QQURfRElWSURFICAgPSAxNTQsCisgICAgQUtFWUNPREVfTlVNUEFEX01VTFRJUExZID0gMTU1LAorICAgIEFLRVlDT0RFX05VTVBBRF9TVUJUUkFDVCA9IDE1NiwKKyAgICBBS0VZQ09ERV9OVU1QQURfQUREICAgICAgPSAxNTcsCisgICAgQUtFWUNPREVfTlVNUEFEX0RPVCAgICAgID0gMTU4LAorICAgIEFLRVlDT0RFX05VTVBBRF9DT01NQSAgICA9IDE1OSwKKyAgICBBS0VZQ09ERV9OVU1QQURfRU5URVIgICAgPSAxNjAsCisgICAgQUtFWUNPREVfTlVNUEFEX0VRVUFMUyAgID0gMTYxLAorICAgIEFLRVlDT0RFX05VTVBBRF9MRUZUX1BBUkVOID0gMTYyLAorICAgIEFLRVlDT0RFX05VTVBBRF9SSUdIVF9QQVJFTiA9IDE2MywKKyAgICBBS0VZQ09ERV9WT0xVTUVfTVVURSAgICAgPSAxNjQsCisgICAgQUtFWUNPREVfSU5GTyAgICAgICAgICAgID0gMTY1LAorICAgIEFLRVlDT0RFX0NIQU5ORUxfVVAgICAgICA9IDE2NiwKKyAgICBBS0VZQ09ERV9DSEFOTkVMX0RPV04gICAgPSAxNjcsCisgICAgQUtFWUNPREVfWk9PTV9JTiAgICAgICAgID0gMTY4LAorICAgIEFLRVlDT0RFX1pPT01fT1VUICAgICAgICA9IDE2OSwKKyAgICBBS0VZQ09ERV9UViAgICAgICAgICAgICAgPSAxNzAsCisgICAgQUtFWUNPREVfV0lORE9XICAgICAgICAgID0gMTcxLAorICAgIEFLRVlDT0RFX0dVSURFICAgICAgICAgICA9IDE3MiwKKyAgICBBS0VZQ09ERV9EVlIgICAgICAgICAgICAgPSAxNzMsCisgICAgQUtFWUNPREVfQk9PS01BUksgICAgICAgID0gMTc0LAorICAgIEFLRVlDT0RFX0NBUFRJT05TICAgICAgICA9IDE3NSwKKyAgICBBS0VZQ09ERV9TRVRUSU5HUyAgICAgICAgPSAxNzYsCisgICAgQUtFWUNPREVfVFZfUE9XRVIgICAgICAgID0gMTc3LAorICAgIEFLRVlDT0RFX1RWX0lOUFVUICAgICAgICA9IDE3OCwKKyAgICBBS0VZQ09ERV9TVEJfUE9XRVIgICAgICAgPSAxNzksCisgICAgQUtFWUNPREVfU1RCX0lOUFVUICAgICAgID0gMTgwLAorICAgIEFLRVlDT0RFX0FWUl9QT1dFUiAgICAgICA9IDE4MSwKKyAgICBBS0VZQ09ERV9BVlJfSU5QVVQgICAgICAgPSAxODIsCisgICAgQUtFWUNPREVfUFJPR19SRUQgICAgICAgID0gMTgzLAorICAgIEFLRVlDT0RFX1BST0dfR1JFRU4gICAgICA9IDE4NCwKKyAgICBBS0VZQ09ERV9QUk9HX1lFTExPVyAgICAgPSAxODUsCisgICAgQUtFWUNPREVfUFJPR19CTFVFICAgICAgID0gMTg2LAorICAgIEFLRVlDT0RFX0FQUF9TV0lUQ0ggICAgICA9IDE4NywKKyAgICBBS0VZQ09ERV9CVVRUT05fMSAgICAgICAgPSAxODgsCisgICAgQUtFWUNPREVfQlVUVE9OXzIgICAgICAgID0gMTg5LAorICAgIEFLRVlDT0RFX0JVVFRPTl8zICAgICAgICA9IDE5MCwKKyAgICBBS0VZQ09ERV9CVVRUT05fNCAgICAgICAgPSAxOTEsCisgICAgQUtFWUNPREVfQlVUVE9OXzUgICAgICAgID0gMTkyLAorICAgIEFLRVlDT0RFX0JVVFRPTl82ICAgICAgICA9IDE5MywKKyAgICBBS0VZQ09ERV9CVVRUT05fNyAgICAgICAgPSAxOTQsCisgICAgQUtFWUNPREVfQlVUVE9OXzggICAgICAgID0gMTk1LAorICAgIEFLRVlDT0RFX0JVVFRPTl85ICAgICAgICA9IDE5NiwKKyAgICBBS0VZQ09ERV9CVVRUT05fMTAgICAgICAgPSAxOTcsCisgICAgQUtFWUNPREVfQlVUVE9OXzExICAgICAgID0gMTk4LAorICAgIEFLRVlDT0RFX0JVVFRPTl8xMiAgICAgICA9IDE5OSwKKyAgICBBS0VZQ09ERV9CVVRUT05fMTMgICAgICAgPSAyMDAsCisgICAgQUtFWUNPREVfQlVUVE9OXzE0ICAgICAgID0gMjAxLAorICAgIEFLRVlDT0RFX0JVVFRPTl8xNSAgICAgICA9IDIwMiwKKyAgICBBS0VZQ09ERV9CVVRUT05fMTYgICAgICAgPSAyMDMsCisgICAgQUtFWUNPREVfTEFOR1VBR0VfU1dJVENIID0gMjA0LAorICAgIEFLRVlDT0RFX01BTk5FUl9NT0RFICAgICA9IDIwNSwKKyAgICBBS0VZQ09ERV8zRF9NT0RFICAgICAgICAgPSAyMDYsCisKKyAgICAvLyBOT1RFOiBJZiB5b3UgYWRkIGEgbmV3IGtleWNvZGUgaGVyZSB5b3UgbXVzdCBhbHNvIGFkZCBpdCB0byBzZXZlcmFsIG90aGVyIGZpbGVzLgorICAgIC8vICAgICAgIFJlZmVyIHRvIGZyYW1ld29ya3MvYmFzZS9jb3JlL2phdmEvYW5kcm9pZC92aWV3L0tleUV2ZW50LmphdmEgZm9yIHRoZSBmdWxsIGxpc3QuCit9OworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gX0FORFJPSURfS0VZQ09ERVNfSApkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE0L2luY2x1ZGUvYW5kcm9pZC9uYXRpdmVfd2luZG93LmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTQvaW5jbHVkZS9hbmRyb2lkL25hdGl2ZV93aW5kb3cuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZjRmMmQzCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE0L2luY2x1ZGUvYW5kcm9pZC9uYXRpdmVfd2luZG93LmgKQEAgLTAsMCArMSwxMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfTkFUSVZFX1dJTkRPV19ICisjZGVmaW5lIEFORFJPSURfTkFUSVZFX1dJTkRPV19ICisKKyNpbmNsdWRlIDxhbmRyb2lkL3JlY3QuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKgorICogUGl4ZWwgZm9ybWF0cyB0aGF0IGEgd2luZG93IGNhbiB1c2UuCisgKi8KK2VudW0geworICAgIFdJTkRPV19GT1JNQVRfUkdCQV84ODg4ICAgICAgICAgID0gMSwKKyAgICBXSU5ET1dfRk9STUFUX1JHQlhfODg4OCAgICAgICAgICA9IDIsCisgICAgV0lORE9XX0ZPUk1BVF9SR0JfNTY1ICAgICAgICAgICAgPSA0LAorfTsKKworc3RydWN0IEFOYXRpdmVXaW5kb3c7Cit0eXBlZGVmIHN0cnVjdCBBTmF0aXZlV2luZG93IEFOYXRpdmVXaW5kb3c7CisKK3R5cGVkZWYgc3RydWN0IEFOYXRpdmVXaW5kb3dfQnVmZmVyIHsKKyAgICAvLyBUaGUgbnVtYmVyIG9mIHBpeGVscyB0aGF0IGFyZSBzaG93IGhvcml6b250YWxseS4KKyAgICBpbnQzMl90IHdpZHRoOworCisgICAgLy8gVGhlIG51bWJlciBvZiBwaXhlbHMgdGhhdCBhcmUgc2hvd24gdmVydGljYWxseS4KKyAgICBpbnQzMl90IGhlaWdodDsKKworICAgIC8vIFRoZSBudW1iZXIgb2YgKnBpeGVscyogdGhhdCBhIGxpbmUgaW4gdGhlIGJ1ZmZlciB0YWtlcyBpbgorICAgIC8vIG1lbW9yeS4gIFRoaXMgbWF5IGJlID49IHdpZHRoLgorICAgIGludDMyX3Qgc3RyaWRlOworCisgICAgLy8gVGhlIGZvcm1hdCBvZiB0aGUgYnVmZmVyLiAgT25lIG9mIFdJTkRPV19GT1JNQVRfKgorICAgIGludDMyX3QgZm9ybWF0OworCisgICAgLy8gVGhlIGFjdHVhbCBiaXRzLgorICAgIHZvaWQqIGJpdHM7CisgICAgCisgICAgLy8gRG8gbm90IHRvdWNoLgorICAgIHVpbnQzMl90IHJlc2VydmVkWzZdOworfSBBTmF0aXZlV2luZG93X0J1ZmZlcjsKKworLyoqCisgKiBBY3F1aXJlIGEgcmVmZXJlbmNlIG9uIHRoZSBnaXZlbiBBTmF0aXZlV2luZG93IG9iamVjdC4gIFRoaXMgcHJldmVudHMgdGhlIG9iamVjdAorICogZnJvbSBiZWluZyBkZWxldGVkIHVudGlsIHRoZSByZWZlcmVuY2UgaXMgcmVtb3ZlZC4KKyAqLwordm9pZCBBTmF0aXZlV2luZG93X2FjcXVpcmUoQU5hdGl2ZVdpbmRvdyogd2luZG93KTsKKworLyoqCisgKiBSZW1vdmUgYSByZWZlcmVuY2UgdGhhdCB3YXMgcHJldmlvdXNseSBhY3F1aXJlZCB3aXRoIEFOYXRpdmVXaW5kb3dfYWNxdWlyZSgpLgorICovCit2b2lkIEFOYXRpdmVXaW5kb3dfcmVsZWFzZShBTmF0aXZlV2luZG93KiB3aW5kb3cpOworCisvKgorICogUmV0dXJuIHRoZSBjdXJyZW50IHdpZHRoIGluIHBpeGVscyBvZiB0aGUgd2luZG93IHN1cmZhY2UuICBSZXR1cm5zIGEKKyAqIG5lZ2F0aXZlIHZhbHVlIG9uIGVycm9yLgorICovCitpbnQzMl90IEFOYXRpdmVXaW5kb3dfZ2V0V2lkdGgoQU5hdGl2ZVdpbmRvdyogd2luZG93KTsKKworLyoKKyAqIFJldHVybiB0aGUgY3VycmVudCBoZWlnaHQgaW4gcGl4ZWxzIG9mIHRoZSB3aW5kb3cgc3VyZmFjZS4gIFJldHVybnMgYQorICogbmVnYXRpdmUgdmFsdWUgb24gZXJyb3IuCisgKi8KK2ludDMyX3QgQU5hdGl2ZVdpbmRvd19nZXRIZWlnaHQoQU5hdGl2ZVdpbmRvdyogd2luZG93KTsKKworLyoKKyAqIFJldHVybiB0aGUgY3VycmVudCBwaXhlbCBmb3JtYXQgb2YgdGhlIHdpbmRvdyBzdXJmYWNlLiAgUmV0dXJucyBhCisgKiBuZWdhdGl2ZSB2YWx1ZSBvbiBlcnJvci4KKyAqLworaW50MzJfdCBBTmF0aXZlV2luZG93X2dldEZvcm1hdChBTmF0aXZlV2luZG93KiB3aW5kb3cpOworCisvKgorICogQ2hhbmdlIHRoZSBmb3JtYXQgYW5kIHNpemUgb2YgdGhlIHdpbmRvdyBidWZmZXJzLgorICoKKyAqIFRoZSB3aWR0aCBhbmQgaGVpZ2h0IGNvbnRyb2wgdGhlIG51bWJlciBvZiBwaXhlbHMgaW4gdGhlIGJ1ZmZlcnMsIG5vdCB0aGUKKyAqIGRpbWVuc2lvbnMgb2YgdGhlIHdpbmRvdyBvbiBzY3JlZW4uICBJZiB0aGVzZSBhcmUgZGlmZmVyZW50IHRoYW4gdGhlCisgKiB3aW5kb3cncyBwaHlzaWNhbCBzaXplLCB0aGVuIGl0IGJ1ZmZlciB3aWxsIGJlIHNjYWxlZCB0byBtYXRjaCB0aGF0IHNpemUKKyAqIHdoZW4gY29tcG9zaXRpbmcgaXQgdG8gdGhlIHNjcmVlbi4KKyAqCisgKiBGb3IgYWxsIG9mIHRoZXNlIHBhcmFtZXRlcnMsIGlmIDAgaXMgc3VwcGxpZWQgdGhlbiB0aGUgd2luZG93J3MgYmFzZQorICogdmFsdWUgd2lsbCBjb21lIGJhY2sgaW4gZm9yY2UuCisgKgorICogd2lkdGggYW5kIGhlaWdodCBtdXN0IGJlIGVpdGhlciBib3RoIHplcm8gb3IgYm90aCBub24temVyby4KKyAqCisgKi8KK2ludDMyX3QgQU5hdGl2ZVdpbmRvd19zZXRCdWZmZXJzR2VvbWV0cnkoQU5hdGl2ZVdpbmRvdyogd2luZG93LAorICAgICAgICBpbnQzMl90IHdpZHRoLCBpbnQzMl90IGhlaWdodCwgaW50MzJfdCBmb3JtYXQpOworCisvKioKKyAqIExvY2sgdGhlIHdpbmRvdydzIG5leHQgZHJhd2luZyBzdXJmYWNlIGZvciB3cml0aW5nLgorICogaW5PdXREaXJ0eUJvdW5kcyBpcyB1c2VkIGFzIGFuIGluL291dCBwYXJhbWV0ZXIsIHVwb24gZW50ZXJpbmcgdGhlCisgKiBmdW5jdGlvbiwgaXQgY29udGFpbnMgdGhlIGRpcnR5IHJlZ2lvbiwgdGhhdCBpcywgdGhlIHJlZ2lvbiB0aGUgY2FsbGVyCisgKiBpbnRlbmRzIHRvIHJlZHJhdy4gV2hlbiB0aGUgZnVuY3Rpb24gcmV0dXJucywgaW5PdXREaXJ0eUJvdW5kcyBpcyB1cGRhdGVkCisgKiB3aXRoIHRoZSBhY3R1YWwgYXJlYSB0aGUgY2FsbGVyIG5lZWRzIHRvIHJlZHJhdyAtLSB0aGlzIHJlZ2lvbiBpcyBvZnRlbgorICogZXh0ZW5kZWQgYnkgQU5hdGl2ZVdpbmRvd19sb2NrLgorICovCitpbnQzMl90IEFOYXRpdmVXaW5kb3dfbG9jayhBTmF0aXZlV2luZG93KiB3aW5kb3csIEFOYXRpdmVXaW5kb3dfQnVmZmVyKiBvdXRCdWZmZXIsCisgICAgICAgIEFSZWN0KiBpbk91dERpcnR5Qm91bmRzKTsKKworLyoqCisgKiBVbmxvY2sgdGhlIHdpbmRvdydzIGRyYXdpbmcgc3VyZmFjZSBhZnRlciBwcmV2aW91c2x5IGxvY2tpbmcgaXQsCisgKiBwb3N0aW5nIHRoZSBuZXcgYnVmZmVyIHRvIHRoZSBkaXNwbGF5LgorICovCitpbnQzMl90IEFOYXRpdmVXaW5kb3dfdW5sb2NrQW5kUG9zdChBTmF0aXZlV2luZG93KiB3aW5kb3cpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK307CisjZW5kaWYKKworI2VuZGlmIC8vIEFORFJPSURfTkFUSVZFX1dJTkRPV19ICmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTQvaW5jbHVkZS9hbmRyb2lkL3JlY3QuaCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNC9pbmNsdWRlL2FuZHJvaWQvcmVjdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjZDQyYTkKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTQvaW5jbHVkZS9hbmRyb2lkL3JlY3QuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworCisjaWZuZGVmIEFORFJPSURfUkVDVF9ICisjZGVmaW5lIEFORFJPSURfUkVDVF9ICisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCit0eXBlZGVmIHN0cnVjdCBBUmVjdCB7CisjaWZkZWYgX19jcGx1c3BsdXMKKyAgICB0eXBlZGVmIGludDMyX3QgdmFsdWVfdHlwZTsKKyNlbmRpZgorICAgIGludDMyX3QgbGVmdDsKKyAgICBpbnQzMl90IHRvcDsKKyAgICBpbnQzMl90IHJpZ2h0OworICAgIGludDMyX3QgYm90dG9tOworfSBBUmVjdDsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9OworI2VuZGlmCisKKyNlbmRpZiAvLyBBTkRST0lEX1JFQ1RfSApkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE1L2luY2x1ZGUvYW5kcm9pZC9rZXljb2Rlcy5oIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE1L2luY2x1ZGUvYW5kcm9pZC9rZXljb2Rlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0MTRmZjYKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTUvaW5jbHVkZS9hbmRyb2lkL2tleWNvZGVzLmgKQEAgLTAsMCArMSwyNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIF9BTkRST0lEX0tFWUNPREVTX0gKKyNkZWZpbmUgX0FORFJPSURfS0VZQ09ERVNfSAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogSU1QT1JUQU5UIE5PVElDRToKKyAqCisgKiAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEFuZHJvaWQncyBzZXQgb2Ygc3RhYmxlIHN5c3RlbSBoZWFkZXJzCisgKiAgIGV4cG9zZWQgYnkgdGhlIEFuZHJvaWQgTkRLIChOYXRpdmUgRGV2ZWxvcG1lbnQgS2l0KS4KKyAqCisgKiAgIFRoaXJkLXBhcnR5IHNvdXJjZSBBTkQgYmluYXJ5IGNvZGUgcmVsaWVzIG9uIHRoZSBkZWZpbml0aW9ucworICogICBoZXJlIHRvIGJlIEZST1pFTiBPTiBBTEwgVVBDT01JTkcgUExBVEZPUk0gUkVMRUFTRVMuCisgKgorICogICAtIERPIE5PVCBNT0RJRlkgRU5VTVMgKEVYQ0VQVCBJRiBZT1UgQUREIE5FVyAzMi1CSVQgVkFMVUVTKQorICogICAtIERPIE5PVCBNT0RJRlkgQ09OU1RBTlRTIE9SIEZVTkNUSU9OQUwgTUFDUk9TCisgKiAgIC0gRE8gTk9UIENIQU5HRSBUSEUgU0lHTkFUVVJFIE9GIEZVTkNUSU9OUyBJTiBBTlkgV0FZCisgKiAgIC0gRE8gTk9UIENIQU5HRSBUSEUgTEFZT1VUIE9SIFNJWkUgT0YgU1RSVUNUVVJFUworICovCisKKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKgorICogS2V5IGNvZGVzLgorICovCitlbnVtIHsKKyAgICBBS0VZQ09ERV9VTktOT1dOICAgICAgICAgPSAwLAorICAgIEFLRVlDT0RFX1NPRlRfTEVGVCAgICAgICA9IDEsCisgICAgQUtFWUNPREVfU09GVF9SSUdIVCAgICAgID0gMiwKKyAgICBBS0VZQ09ERV9IT01FICAgICAgICAgICAgPSAzLAorICAgIEFLRVlDT0RFX0JBQ0sgICAgICAgICAgICA9IDQsCisgICAgQUtFWUNPREVfQ0FMTCAgICAgICAgICAgID0gNSwKKyAgICBBS0VZQ09ERV9FTkRDQUxMICAgICAgICAgPSA2LAorICAgIEFLRVlDT0RFXzAgICAgICAgICAgICAgICA9IDcsCisgICAgQUtFWUNPREVfMSAgICAgICAgICAgICAgID0gOCwKKyAgICBBS0VZQ09ERV8yICAgICAgICAgICAgICAgPSA5LAorICAgIEFLRVlDT0RFXzMgICAgICAgICAgICAgICA9IDEwLAorICAgIEFLRVlDT0RFXzQgICAgICAgICAgICAgICA9IDExLAorICAgIEFLRVlDT0RFXzUgICAgICAgICAgICAgICA9IDEyLAorICAgIEFLRVlDT0RFXzYgICAgICAgICAgICAgICA9IDEzLAorICAgIEFLRVlDT0RFXzcgICAgICAgICAgICAgICA9IDE0LAorICAgIEFLRVlDT0RFXzggICAgICAgICAgICAgICA9IDE1LAorICAgIEFLRVlDT0RFXzkgICAgICAgICAgICAgICA9IDE2LAorICAgIEFLRVlDT0RFX1NUQVIgICAgICAgICAgICA9IDE3LAorICAgIEFLRVlDT0RFX1BPVU5EICAgICAgICAgICA9IDE4LAorICAgIEFLRVlDT0RFX0RQQURfVVAgICAgICAgICA9IDE5LAorICAgIEFLRVlDT0RFX0RQQURfRE9XTiAgICAgICA9IDIwLAorICAgIEFLRVlDT0RFX0RQQURfTEVGVCAgICAgICA9IDIxLAorICAgIEFLRVlDT0RFX0RQQURfUklHSFQgICAgICA9IDIyLAorICAgIEFLRVlDT0RFX0RQQURfQ0VOVEVSICAgICA9IDIzLAorICAgIEFLRVlDT0RFX1ZPTFVNRV9VUCAgICAgICA9IDI0LAorICAgIEFLRVlDT0RFX1ZPTFVNRV9ET1dOICAgICA9IDI1LAorICAgIEFLRVlDT0RFX1BPV0VSICAgICAgICAgICA9IDI2LAorICAgIEFLRVlDT0RFX0NBTUVSQSAgICAgICAgICA9IDI3LAorICAgIEFLRVlDT0RFX0NMRUFSICAgICAgICAgICA9IDI4LAorICAgIEFLRVlDT0RFX0EgICAgICAgICAgICAgICA9IDI5LAorICAgIEFLRVlDT0RFX0IgICAgICAgICAgICAgICA9IDMwLAorICAgIEFLRVlDT0RFX0MgICAgICAgICAgICAgICA9IDMxLAorICAgIEFLRVlDT0RFX0QgICAgICAgICAgICAgICA9IDMyLAorICAgIEFLRVlDT0RFX0UgICAgICAgICAgICAgICA9IDMzLAorICAgIEFLRVlDT0RFX0YgICAgICAgICAgICAgICA9IDM0LAorICAgIEFLRVlDT0RFX0cgICAgICAgICAgICAgICA9IDM1LAorICAgIEFLRVlDT0RFX0ggICAgICAgICAgICAgICA9IDM2LAorICAgIEFLRVlDT0RFX0kgICAgICAgICAgICAgICA9IDM3LAorICAgIEFLRVlDT0RFX0ogICAgICAgICAgICAgICA9IDM4LAorICAgIEFLRVlDT0RFX0sgICAgICAgICAgICAgICA9IDM5LAorICAgIEFLRVlDT0RFX0wgICAgICAgICAgICAgICA9IDQwLAorICAgIEFLRVlDT0RFX00gICAgICAgICAgICAgICA9IDQxLAorICAgIEFLRVlDT0RFX04gICAgICAgICAgICAgICA9IDQyLAorICAgIEFLRVlDT0RFX08gICAgICAgICAgICAgICA9IDQzLAorICAgIEFLRVlDT0RFX1AgICAgICAgICAgICAgICA9IDQ0LAorICAgIEFLRVlDT0RFX1EgICAgICAgICAgICAgICA9IDQ1LAorICAgIEFLRVlDT0RFX1IgICAgICAgICAgICAgICA9IDQ2LAorICAgIEFLRVlDT0RFX1MgICAgICAgICAgICAgICA9IDQ3LAorICAgIEFLRVlDT0RFX1QgICAgICAgICAgICAgICA9IDQ4LAorICAgIEFLRVlDT0RFX1UgICAgICAgICAgICAgICA9IDQ5LAorICAgIEFLRVlDT0RFX1YgICAgICAgICAgICAgICA9IDUwLAorICAgIEFLRVlDT0RFX1cgICAgICAgICAgICAgICA9IDUxLAorICAgIEFLRVlDT0RFX1ggICAgICAgICAgICAgICA9IDUyLAorICAgIEFLRVlDT0RFX1kgICAgICAgICAgICAgICA9IDUzLAorICAgIEFLRVlDT0RFX1ogICAgICAgICAgICAgICA9IDU0LAorICAgIEFLRVlDT0RFX0NPTU1BICAgICAgICAgICA9IDU1LAorICAgIEFLRVlDT0RFX1BFUklPRCAgICAgICAgICA9IDU2LAorICAgIEFLRVlDT0RFX0FMVF9MRUZUICAgICAgICA9IDU3LAorICAgIEFLRVlDT0RFX0FMVF9SSUdIVCAgICAgICA9IDU4LAorICAgIEFLRVlDT0RFX1NISUZUX0xFRlQgICAgICA9IDU5LAorICAgIEFLRVlDT0RFX1NISUZUX1JJR0hUICAgICA9IDYwLAorICAgIEFLRVlDT0RFX1RBQiAgICAgICAgICAgICA9IDYxLAorICAgIEFLRVlDT0RFX1NQQUNFICAgICAgICAgICA9IDYyLAorICAgIEFLRVlDT0RFX1NZTSAgICAgICAgICAgICA9IDYzLAorICAgIEFLRVlDT0RFX0VYUExPUkVSICAgICAgICA9IDY0LAorICAgIEFLRVlDT0RFX0VOVkVMT1BFICAgICAgICA9IDY1LAorICAgIEFLRVlDT0RFX0VOVEVSICAgICAgICAgICA9IDY2LAorICAgIEFLRVlDT0RFX0RFTCAgICAgICAgICAgICA9IDY3LAorICAgIEFLRVlDT0RFX0dSQVZFICAgICAgICAgICA9IDY4LAorICAgIEFLRVlDT0RFX01JTlVTICAgICAgICAgICA9IDY5LAorICAgIEFLRVlDT0RFX0VRVUFMUyAgICAgICAgICA9IDcwLAorICAgIEFLRVlDT0RFX0xFRlRfQlJBQ0tFVCAgICA9IDcxLAorICAgIEFLRVlDT0RFX1JJR0hUX0JSQUNLRVQgICA9IDcyLAorICAgIEFLRVlDT0RFX0JBQ0tTTEFTSCAgICAgICA9IDczLAorICAgIEFLRVlDT0RFX1NFTUlDT0xPTiAgICAgICA9IDc0LAorICAgIEFLRVlDT0RFX0FQT1NUUk9QSEUgICAgICA9IDc1LAorICAgIEFLRVlDT0RFX1NMQVNIICAgICAgICAgICA9IDc2LAorICAgIEFLRVlDT0RFX0FUICAgICAgICAgICAgICA9IDc3LAorICAgIEFLRVlDT0RFX05VTSAgICAgICAgICAgICA9IDc4LAorICAgIEFLRVlDT0RFX0hFQURTRVRIT09LICAgICA9IDc5LAorICAgIEFLRVlDT0RFX0ZPQ1VTICAgICAgICAgICA9IDgwLCAgIC8vICpDYW1lcmEqIGZvY3VzCisgICAgQUtFWUNPREVfUExVUyAgICAgICAgICAgID0gODEsCisgICAgQUtFWUNPREVfTUVOVSAgICAgICAgICAgID0gODIsCisgICAgQUtFWUNPREVfTk9USUZJQ0FUSU9OICAgID0gODMsCisgICAgQUtFWUNPREVfU0VBUkNIICAgICAgICAgID0gODQsCisgICAgQUtFWUNPREVfTUVESUFfUExBWV9QQVVTRT0gODUsCisgICAgQUtFWUNPREVfTUVESUFfU1RPUCAgICAgID0gODYsCisgICAgQUtFWUNPREVfTUVESUFfTkVYVCAgICAgID0gODcsCisgICAgQUtFWUNPREVfTUVESUFfUFJFVklPVVMgID0gODgsCisgICAgQUtFWUNPREVfTUVESUFfUkVXSU5EICAgID0gODksCisgICAgQUtFWUNPREVfTUVESUFfRkFTVF9GT1JXQVJEID0gOTAsCisgICAgQUtFWUNPREVfTVVURSAgICAgICAgICAgID0gOTEsCisgICAgQUtFWUNPREVfUEFHRV9VUCAgICAgICAgID0gOTIsCisgICAgQUtFWUNPREVfUEFHRV9ET1dOICAgICAgID0gOTMsCisgICAgQUtFWUNPREVfUElDVFNZTUJPTFMgICAgID0gOTQsCisgICAgQUtFWUNPREVfU1dJVENIX0NIQVJTRVQgID0gOTUsCisgICAgQUtFWUNPREVfQlVUVE9OX0EgICAgICAgID0gOTYsCisgICAgQUtFWUNPREVfQlVUVE9OX0IgICAgICAgID0gOTcsCisgICAgQUtFWUNPREVfQlVUVE9OX0MgICAgICAgID0gOTgsCisgICAgQUtFWUNPREVfQlVUVE9OX1ggICAgICAgID0gOTksCisgICAgQUtFWUNPREVfQlVUVE9OX1kgICAgICAgID0gMTAwLAorICAgIEFLRVlDT0RFX0JVVFRPTl9aICAgICAgICA9IDEwMSwKKyAgICBBS0VZQ09ERV9CVVRUT05fTDEgICAgICAgPSAxMDIsCisgICAgQUtFWUNPREVfQlVUVE9OX1IxICAgICAgID0gMTAzLAorICAgIEFLRVlDT0RFX0JVVFRPTl9MMiAgICAgICA9IDEwNCwKKyAgICBBS0VZQ09ERV9CVVRUT05fUjIgICAgICAgPSAxMDUsCisgICAgQUtFWUNPREVfQlVUVE9OX1RIVU1CTCAgID0gMTA2LAorICAgIEFLRVlDT0RFX0JVVFRPTl9USFVNQlIgICA9IDEwNywKKyAgICBBS0VZQ09ERV9CVVRUT05fU1RBUlQgICAgPSAxMDgsCisgICAgQUtFWUNPREVfQlVUVE9OX1NFTEVDVCAgID0gMTA5LAorICAgIEFLRVlDT0RFX0JVVFRPTl9NT0RFICAgICA9IDExMCwKKyAgICBBS0VZQ09ERV9FU0NBUEUgICAgICAgICAgPSAxMTEsCisgICAgQUtFWUNPREVfRk9SV0FSRF9ERUwgICAgID0gMTEyLAorICAgIEFLRVlDT0RFX0NUUkxfTEVGVCAgICAgICA9IDExMywKKyAgICBBS0VZQ09ERV9DVFJMX1JJR0hUICAgICAgPSAxMTQsCisgICAgQUtFWUNPREVfQ0FQU19MT0NLICAgICAgID0gMTE1LAorICAgIEFLRVlDT0RFX1NDUk9MTF9MT0NLICAgICA9IDExNiwKKyAgICBBS0VZQ09ERV9NRVRBX0xFRlQgICAgICAgPSAxMTcsCisgICAgQUtFWUNPREVfTUVUQV9SSUdIVCAgICAgID0gMTE4LAorICAgIEFLRVlDT0RFX0ZVTkNUSU9OICAgICAgICA9IDExOSwKKyAgICBBS0VZQ09ERV9TWVNSUSAgICAgICAgICAgPSAxMjAsCisgICAgQUtFWUNPREVfQlJFQUsgICAgICAgICAgID0gMTIxLAorICAgIEFLRVlDT0RFX01PVkVfSE9NRSAgICAgICA9IDEyMiwKKyAgICBBS0VZQ09ERV9NT1ZFX0VORCAgICAgICAgPSAxMjMsCisgICAgQUtFWUNPREVfSU5TRVJUICAgICAgICAgID0gMTI0LAorICAgIEFLRVlDT0RFX0ZPUldBUkQgICAgICAgICA9IDEyNSwKKyAgICBBS0VZQ09ERV9NRURJQV9QTEFZICAgICAgPSAxMjYsCisgICAgQUtFWUNPREVfTUVESUFfUEFVU0UgICAgID0gMTI3LAorICAgIEFLRVlDT0RFX01FRElBX0NMT1NFICAgICA9IDEyOCwKKyAgICBBS0VZQ09ERV9NRURJQV9FSkVDVCAgICAgPSAxMjksCisgICAgQUtFWUNPREVfTUVESUFfUkVDT1JEICAgID0gMTMwLAorICAgIEFLRVlDT0RFX0YxICAgICAgICAgICAgICA9IDEzMSwKKyAgICBBS0VZQ09ERV9GMiAgICAgICAgICAgICAgPSAxMzIsCisgICAgQUtFWUNPREVfRjMgICAgICAgICAgICAgID0gMTMzLAorICAgIEFLRVlDT0RFX0Y0ICAgICAgICAgICAgICA9IDEzNCwKKyAgICBBS0VZQ09ERV9GNSAgICAgICAgICAgICAgPSAxMzUsCisgICAgQUtFWUNPREVfRjYgICAgICAgICAgICAgID0gMTM2LAorICAgIEFLRVlDT0RFX0Y3ICAgICAgICAgICAgICA9IDEzNywKKyAgICBBS0VZQ09ERV9GOCAgICAgICAgICAgICAgPSAxMzgsCisgICAgQUtFWUNPREVfRjkgICAgICAgICAgICAgID0gMTM5LAorICAgIEFLRVlDT0RFX0YxMCAgICAgICAgICAgICA9IDE0MCwKKyAgICBBS0VZQ09ERV9GMTEgICAgICAgICAgICAgPSAxNDEsCisgICAgQUtFWUNPREVfRjEyICAgICAgICAgICAgID0gMTQyLAorICAgIEFLRVlDT0RFX05VTV9MT0NLICAgICAgICA9IDE0MywKKyAgICBBS0VZQ09ERV9OVU1QQURfMCAgICAgICAgPSAxNDQsCisgICAgQUtFWUNPREVfTlVNUEFEXzEgICAgICAgID0gMTQ1LAorICAgIEFLRVlDT0RFX05VTVBBRF8yICAgICAgICA9IDE0NiwKKyAgICBBS0VZQ09ERV9OVU1QQURfMyAgICAgICAgPSAxNDcsCisgICAgQUtFWUNPREVfTlVNUEFEXzQgICAgICAgID0gMTQ4LAorICAgIEFLRVlDT0RFX05VTVBBRF81ICAgICAgICA9IDE0OSwKKyAgICBBS0VZQ09ERV9OVU1QQURfNiAgICAgICAgPSAxNTAsCisgICAgQUtFWUNPREVfTlVNUEFEXzcgICAgICAgID0gMTUxLAorICAgIEFLRVlDT0RFX05VTVBBRF84ICAgICAgICA9IDE1MiwKKyAgICBBS0VZQ09ERV9OVU1QQURfOSAgICAgICAgPSAxNTMsCisgICAgQUtFWUNPREVfTlVNUEFEX0RJVklERSAgID0gMTU0LAorICAgIEFLRVlDT0RFX05VTVBBRF9NVUxUSVBMWSA9IDE1NSwKKyAgICBBS0VZQ09ERV9OVU1QQURfU1VCVFJBQ1QgPSAxNTYsCisgICAgQUtFWUNPREVfTlVNUEFEX0FERCAgICAgID0gMTU3LAorICAgIEFLRVlDT0RFX05VTVBBRF9ET1QgICAgICA9IDE1OCwKKyAgICBBS0VZQ09ERV9OVU1QQURfQ09NTUEgICAgPSAxNTksCisgICAgQUtFWUNPREVfTlVNUEFEX0VOVEVSICAgID0gMTYwLAorICAgIEFLRVlDT0RFX05VTVBBRF9FUVVBTFMgICA9IDE2MSwKKyAgICBBS0VZQ09ERV9OVU1QQURfTEVGVF9QQVJFTiA9IDE2MiwKKyAgICBBS0VZQ09ERV9OVU1QQURfUklHSFRfUEFSRU4gPSAxNjMsCisgICAgQUtFWUNPREVfVk9MVU1FX01VVEUgICAgID0gMTY0LAorICAgIEFLRVlDT0RFX0lORk8gICAgICAgICAgICA9IDE2NSwKKyAgICBBS0VZQ09ERV9DSEFOTkVMX1VQICAgICAgPSAxNjYsCisgICAgQUtFWUNPREVfQ0hBTk5FTF9ET1dOICAgID0gMTY3LAorICAgIEFLRVlDT0RFX1pPT01fSU4gICAgICAgICA9IDE2OCwKKyAgICBBS0VZQ09ERV9aT09NX09VVCAgICAgICAgPSAxNjksCisgICAgQUtFWUNPREVfVFYgICAgICAgICAgICAgID0gMTcwLAorICAgIEFLRVlDT0RFX1dJTkRPVyAgICAgICAgICA9IDE3MSwKKyAgICBBS0VZQ09ERV9HVUlERSAgICAgICAgICAgPSAxNzIsCisgICAgQUtFWUNPREVfRFZSICAgICAgICAgICAgID0gMTczLAorICAgIEFLRVlDT0RFX0JPT0tNQVJLICAgICAgICA9IDE3NCwKKyAgICBBS0VZQ09ERV9DQVBUSU9OUyAgICAgICAgPSAxNzUsCisgICAgQUtFWUNPREVfU0VUVElOR1MgICAgICAgID0gMTc2LAorICAgIEFLRVlDT0RFX1RWX1BPV0VSICAgICAgICA9IDE3NywKKyAgICBBS0VZQ09ERV9UVl9JTlBVVCAgICAgICAgPSAxNzgsCisgICAgQUtFWUNPREVfU1RCX1BPV0VSICAgICAgID0gMTc5LAorICAgIEFLRVlDT0RFX1NUQl9JTlBVVCAgICAgICA9IDE4MCwKKyAgICBBS0VZQ09ERV9BVlJfUE9XRVIgICAgICAgPSAxODEsCisgICAgQUtFWUNPREVfQVZSX0lOUFVUICAgICAgID0gMTgyLAorICAgIEFLRVlDT0RFX1BST0dfUkVEICAgICAgICA9IDE4MywKKyAgICBBS0VZQ09ERV9QUk9HX0dSRUVOICAgICAgPSAxODQsCisgICAgQUtFWUNPREVfUFJPR19ZRUxMT1cgICAgID0gMTg1LAorICAgIEFLRVlDT0RFX1BST0dfQkxVRSAgICAgICA9IDE4NiwKKyAgICBBS0VZQ09ERV9BUFBfU1dJVENIICAgICAgPSAxODcsCisgICAgQUtFWUNPREVfQlVUVE9OXzEgICAgICAgID0gMTg4LAorICAgIEFLRVlDT0RFX0JVVFRPTl8yICAgICAgICA9IDE4OSwKKyAgICBBS0VZQ09ERV9CVVRUT05fMyAgICAgICAgPSAxOTAsCisgICAgQUtFWUNPREVfQlVUVE9OXzQgICAgICAgID0gMTkxLAorICAgIEFLRVlDT0RFX0JVVFRPTl81ICAgICAgICA9IDE5MiwKKyAgICBBS0VZQ09ERV9CVVRUT05fNiAgICAgICAgPSAxOTMsCisgICAgQUtFWUNPREVfQlVUVE9OXzcgICAgICAgID0gMTk0LAorICAgIEFLRVlDT0RFX0JVVFRPTl84ICAgICAgICA9IDE5NSwKKyAgICBBS0VZQ09ERV9CVVRUT05fOSAgICAgICAgPSAxOTYsCisgICAgQUtFWUNPREVfQlVUVE9OXzEwICAgICAgID0gMTk3LAorICAgIEFLRVlDT0RFX0JVVFRPTl8xMSAgICAgICA9IDE5OCwKKyAgICBBS0VZQ09ERV9CVVRUT05fMTIgICAgICAgPSAxOTksCisgICAgQUtFWUNPREVfQlVUVE9OXzEzICAgICAgID0gMjAwLAorICAgIEFLRVlDT0RFX0JVVFRPTl8xNCAgICAgICA9IDIwMSwKKyAgICBBS0VZQ09ERV9CVVRUT05fMTUgICAgICAgPSAyMDIsCisgICAgQUtFWUNPREVfQlVUVE9OXzE2ICAgICAgID0gMjAzLAorICAgIEFLRVlDT0RFX0xBTkdVQUdFX1NXSVRDSCA9IDIwNCwKKyAgICBBS0VZQ09ERV9NQU5ORVJfTU9ERSAgICAgPSAyMDUsCisgICAgQUtFWUNPREVfM0RfTU9ERSAgICAgICAgID0gMjA2LAorICAgIEFLRVlDT0RFX0NPTlRBQ1RTICAgICAgICA9IDIwNywKKyAgICBBS0VZQ09ERV9DQUxFTkRBUiAgICAgICAgPSAyMDgsCisgICAgQUtFWUNPREVfTVVTSUMgICAgICAgICAgID0gMjA5LAorICAgIEFLRVlDT0RFX0NBTENVTEFUT1IgICAgICA9IDIxMCwKKworICAgIC8vIE5PVEU6IElmIHlvdSBhZGQgYSBuZXcga2V5Y29kZSBoZXJlIHlvdSBtdXN0IGFsc28gYWRkIGl0IHRvIHNldmVyYWwgb3RoZXIgZmlsZXMuCisgICAgLy8gICAgICAgUmVmZXIgdG8gZnJhbWV3b3Jrcy9iYXNlL2NvcmUvamF2YS9hbmRyb2lkL3ZpZXcvS2V5RXZlbnQuamF2YSBmb3IgdGhlIGZ1bGwgbGlzdC4KK307CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvLyBfQU5EUk9JRF9LRVlDT0RFU19ICmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTYvYXJjaC1hcm0vc3ltYm9scy9saWJhbmRyb2lkLnNvLmZ1bmN0aW9ucy50eHQgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTYvYXJjaC1hcm0vc3ltYm9scy9saWJhbmRyb2lkLnNvLmZ1bmN0aW9ucy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODQ1NTE1YQotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNi9hcmNoLWFybS9zeW1ib2xzL2xpYmFuZHJvaWQuc28uZnVuY3Rpb25zLnR4dApAQCAtMCwwICsxLDE3MSBAQAorQUFzc2V0X2Nsb3NlCitBQXNzZXREaXJfY2xvc2UKK0FBc3NldERpcl9nZXROZXh0RmlsZU5hbWUKK0FBc3NldERpcl9yZXdpbmQKK0FBc3NldF9nZXRCdWZmZXIKK0FBc3NldF9nZXRMZW5ndGgKK0FBc3NldF9nZXRMZW5ndGg2NAorQUFzc2V0X2dldFJlbWFpbmluZ0xlbmd0aAorQUFzc2V0X2dldFJlbWFpbmluZ0xlbmd0aDY0CitBQXNzZXRfaXNBbGxvY2F0ZWQKK0FBc3NldE1hbmFnZXJfZnJvbUphdmEKK0FBc3NldE1hbmFnZXJfb3BlbgorQUFzc2V0TWFuYWdlcl9vcGVuRGlyCitBQXNzZXRfb3BlbkZpbGVEZXNjcmlwdG9yCitBQXNzZXRfb3BlbkZpbGVEZXNjcmlwdG9yNjQKK0FBc3NldF9yZWFkCitBQXNzZXRfc2VlaworQUFzc2V0X3NlZWs2NAorQUNvbmZpZ3VyYXRpb25fY29weQorQUNvbmZpZ3VyYXRpb25fZGVsZXRlCitBQ29uZmlndXJhdGlvbl9kaWZmCitBQ29uZmlndXJhdGlvbl9mcm9tQXNzZXRNYW5hZ2VyCitBQ29uZmlndXJhdGlvbl9nZXRDb3VudHJ5CitBQ29uZmlndXJhdGlvbl9nZXREZW5zaXR5CitBQ29uZmlndXJhdGlvbl9nZXRLZXlib2FyZAorQUNvbmZpZ3VyYXRpb25fZ2V0S2V5c0hpZGRlbgorQUNvbmZpZ3VyYXRpb25fZ2V0TGFuZ3VhZ2UKK0FDb25maWd1cmF0aW9uX2dldE1jYworQUNvbmZpZ3VyYXRpb25fZ2V0TW5jCitBQ29uZmlndXJhdGlvbl9nZXROYXZIaWRkZW4KK0FDb25maWd1cmF0aW9uX2dldE5hdmlnYXRpb24KK0FDb25maWd1cmF0aW9uX2dldE9yaWVudGF0aW9uCitBQ29uZmlndXJhdGlvbl9nZXRTY3JlZW5IZWlnaHREcAorQUNvbmZpZ3VyYXRpb25fZ2V0U2NyZWVuTG9uZworQUNvbmZpZ3VyYXRpb25fZ2V0U2NyZWVuU2l6ZQorQUNvbmZpZ3VyYXRpb25fZ2V0U2NyZWVuV2lkdGhEcAorQUNvbmZpZ3VyYXRpb25fZ2V0U2RrVmVyc2lvbgorQUNvbmZpZ3VyYXRpb25fZ2V0U21hbGxlc3RTY3JlZW5XaWR0aERwCitBQ29uZmlndXJhdGlvbl9nZXRUb3VjaHNjcmVlbgorQUNvbmZpZ3VyYXRpb25fZ2V0VWlNb2RlTmlnaHQKK0FDb25maWd1cmF0aW9uX2dldFVpTW9kZVR5cGUKK0FDb25maWd1cmF0aW9uX2lzQmV0dGVyVGhhbgorQUNvbmZpZ3VyYXRpb25fbWF0Y2gKK0FDb25maWd1cmF0aW9uX25ldworQUNvbmZpZ3VyYXRpb25fc2V0Q291bnRyeQorQUNvbmZpZ3VyYXRpb25fc2V0RGVuc2l0eQorQUNvbmZpZ3VyYXRpb25fc2V0S2V5Ym9hcmQKK0FDb25maWd1cmF0aW9uX3NldEtleXNIaWRkZW4KK0FDb25maWd1cmF0aW9uX3NldExhbmd1YWdlCitBQ29uZmlndXJhdGlvbl9zZXRNY2MKK0FDb25maWd1cmF0aW9uX3NldE1uYworQUNvbmZpZ3VyYXRpb25fc2V0TmF2SGlkZGVuCitBQ29uZmlndXJhdGlvbl9zZXROYXZpZ2F0aW9uCitBQ29uZmlndXJhdGlvbl9zZXRPcmllbnRhdGlvbgorQUNvbmZpZ3VyYXRpb25fc2V0U2NyZWVuSGVpZ2h0RHAKK0FDb25maWd1cmF0aW9uX3NldFNjcmVlbkxvbmcKK0FDb25maWd1cmF0aW9uX3NldFNjcmVlblNpemUKK0FDb25maWd1cmF0aW9uX3NldFNjcmVlbldpZHRoRHAKK0FDb25maWd1cmF0aW9uX3NldFNka1ZlcnNpb24KK0FDb25maWd1cmF0aW9uX3NldFNtYWxsZXN0U2NyZWVuV2lkdGhEcAorQUNvbmZpZ3VyYXRpb25fc2V0VG91Y2hzY3JlZW4KK0FDb25maWd1cmF0aW9uX3NldFVpTW9kZU5pZ2h0CitBQ29uZmlndXJhdGlvbl9zZXRVaU1vZGVUeXBlCitBSW5wdXRFdmVudF9nZXREZXZpY2VJZAorQUlucHV0RXZlbnRfZ2V0U291cmNlCitBSW5wdXRFdmVudF9nZXRUeXBlCitBSW5wdXRRdWV1ZV9hdHRhY2hMb29wZXIKK0FJbnB1dFF1ZXVlX2RldGFjaExvb3BlcgorQUlucHV0UXVldWVfZmluaXNoRXZlbnQKK0FJbnB1dFF1ZXVlX2dldEV2ZW50CitBSW5wdXRRdWV1ZV9oYXNFdmVudHMKK0FJbnB1dFF1ZXVlX3ByZURpc3BhdGNoRXZlbnQKK0FLZXlFdmVudF9nZXRBY3Rpb24KK0FLZXlFdmVudF9nZXREb3duVGltZQorQUtleUV2ZW50X2dldEV2ZW50VGltZQorQUtleUV2ZW50X2dldEZsYWdzCitBS2V5RXZlbnRfZ2V0S2V5Q29kZQorQUtleUV2ZW50X2dldE1ldGFTdGF0ZQorQUtleUV2ZW50X2dldFJlcGVhdENvdW50CitBS2V5RXZlbnRfZ2V0U2NhbkNvZGUKK0FMb29wZXJfYWNxdWlyZQorQUxvb3Blcl9hZGRGZAorQUxvb3Blcl9mb3JUaHJlYWQKK0FMb29wZXJfcG9sbEFsbAorQUxvb3Blcl9wb2xsT25jZQorQUxvb3Blcl9wcmVwYXJlCitBTG9vcGVyX3JlbGVhc2UKK0FMb29wZXJfcmVtb3ZlRmQKK0FMb29wZXJfd2FrZQorQU1vdGlvbkV2ZW50X2dldEFjdGlvbgorQU1vdGlvbkV2ZW50X2dldEF4aXNWYWx1ZQorQU1vdGlvbkV2ZW50X2dldEJ1dHRvblN0YXRlCitBTW90aW9uRXZlbnRfZ2V0RG93blRpbWUKK0FNb3Rpb25FdmVudF9nZXRFZGdlRmxhZ3MKK0FNb3Rpb25FdmVudF9nZXRFdmVudFRpbWUKK0FNb3Rpb25FdmVudF9nZXRGbGFncworQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxBeGlzVmFsdWUKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsRXZlbnRUaW1lCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbE9yaWVudGF0aW9uCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFByZXNzdXJlCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFJhd1gKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsUmF3WQorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxTaXplCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFRvb2xNYWpvcgorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxUb29sTWlub3IKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsVG91Y2hNYWpvcgorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxUb3VjaE1pbm9yCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFgKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsWQorQU1vdGlvbkV2ZW50X2dldEhpc3RvcnlTaXplCitBTW90aW9uRXZlbnRfZ2V0TWV0YVN0YXRlCitBTW90aW9uRXZlbnRfZ2V0T3JpZW50YXRpb24KK0FNb3Rpb25FdmVudF9nZXRQb2ludGVyQ291bnQKK0FNb3Rpb25FdmVudF9nZXRQb2ludGVySWQKK0FNb3Rpb25FdmVudF9nZXRQcmVzc3VyZQorQU1vdGlvbkV2ZW50X2dldFJhd1gKK0FNb3Rpb25FdmVudF9nZXRSYXdZCitBTW90aW9uRXZlbnRfZ2V0U2l6ZQorQU1vdGlvbkV2ZW50X2dldFRvb2xNYWpvcgorQU1vdGlvbkV2ZW50X2dldFRvb2xNaW5vcgorQU1vdGlvbkV2ZW50X2dldFRvb2xUeXBlCitBTW90aW9uRXZlbnRfZ2V0VG91Y2hNYWpvcgorQU1vdGlvbkV2ZW50X2dldFRvdWNoTWlub3IKK0FNb3Rpb25FdmVudF9nZXRYCitBTW90aW9uRXZlbnRfZ2V0WE9mZnNldAorQU1vdGlvbkV2ZW50X2dldFhQcmVjaXNpb24KK0FNb3Rpb25FdmVudF9nZXRZCitBTW90aW9uRXZlbnRfZ2V0WU9mZnNldAorQU1vdGlvbkV2ZW50X2dldFlQcmVjaXNpb24KK0FOYXRpdmVBY3Rpdml0eV9maW5pc2gKK0FOYXRpdmVBY3Rpdml0eV9oaWRlU29mdElucHV0CitBTmF0aXZlQWN0aXZpdHlfc2V0V2luZG93RmxhZ3MKK0FOYXRpdmVBY3Rpdml0eV9zZXRXaW5kb3dGb3JtYXQKK0FOYXRpdmVBY3Rpdml0eV9zaG93U29mdElucHV0CitBTmF0aXZlV2luZG93X2FjcXVpcmUKK0FOYXRpdmVXaW5kb3dfZnJvbVN1cmZhY2UKK0FOYXRpdmVXaW5kb3dfZ2V0Rm9ybWF0CitBTmF0aXZlV2luZG93X2dldEhlaWdodAorQU5hdGl2ZVdpbmRvd19nZXRXaWR0aAorQU5hdGl2ZVdpbmRvd19sb2NrCitBTmF0aXZlV2luZG93X3JlbGVhc2UKK0FOYXRpdmVXaW5kb3dfc2V0QnVmZmVyc0dlb21ldHJ5CitBTmF0aXZlV2luZG93X3VubG9ja0FuZFBvc3QKK2FuZHJvaWRfZ2V0VHRzRW5naW5lCitBT2JiSW5mb19kZWxldGUKK0FPYmJJbmZvX2dldEZsYWdzCitBT2JiSW5mb19nZXRQYWNrYWdlTmFtZQorQU9iYkluZm9fZ2V0VmVyc2lvbgorQU9iYlNjYW5uZXJfZ2V0T2JiSW5mbworQVNlbnNvckV2ZW50UXVldWVfZGlzYWJsZVNlbnNvcgorQVNlbnNvckV2ZW50UXVldWVfZW5hYmxlU2Vuc29yCitBU2Vuc29yRXZlbnRRdWV1ZV9nZXRFdmVudHMKK0FTZW5zb3JFdmVudFF1ZXVlX2hhc0V2ZW50cworQVNlbnNvckV2ZW50UXVldWVfc2V0RXZlbnRSYXRlCitBU2Vuc29yX2dldE1pbkRlbGF5CitBU2Vuc29yX2dldE5hbWUKK0FTZW5zb3JfZ2V0UmVzb2x1dGlvbgorQVNlbnNvcl9nZXRUeXBlCitBU2Vuc29yX2dldFZlbmRvcgorQVNlbnNvck1hbmFnZXJfY3JlYXRlRXZlbnRRdWV1ZQorQVNlbnNvck1hbmFnZXJfZGVzdHJveUV2ZW50UXVldWUKK0FTZW5zb3JNYW5hZ2VyX2dldERlZmF1bHRTZW5zb3IKK0FTZW5zb3JNYW5hZ2VyX2dldEluc3RhbmNlCitBU2Vuc29yTWFuYWdlcl9nZXRTZW5zb3JMaXN0CitBU3RvcmFnZU1hbmFnZXJfZGVsZXRlCitBU3RvcmFnZU1hbmFnZXJfZ2V0TW91bnRlZE9iYlBhdGgKK0FTdG9yYWdlTWFuYWdlcl9pc09iYk1vdW50ZWQKK0FTdG9yYWdlTWFuYWdlcl9tb3VudE9iYgorQVN0b3JhZ2VNYW5hZ2VyX25ldworQVN0b3JhZ2VNYW5hZ2VyX3VubW91bnRPYmIKK2dldFR0c0VuZ2luZQpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE2L2FyY2gtYXJtL3N5bWJvbHMvbGliYW5kcm9pZC5zby52YXJpYWJsZXMudHh0IGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE2L2FyY2gtYXJtL3N5bWJvbHMvbGliYW5kcm9pZC5zby52YXJpYWJsZXMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiMTM3ODkKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTYvYXJjaC1hcm0vc3ltYm9scy9saWJhbmRyb2lkLnNvLnZhcmlhYmxlcy50eHQKQEAgLTAsMCArMSBAQAorCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTYvYXJjaC1taXBzL3N5bWJvbHMvbGliYW5kcm9pZC5zby5mdW5jdGlvbnMudHh0IGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE2L2FyY2gtbWlwcy9zeW1ib2xzL2xpYmFuZHJvaWQuc28uZnVuY3Rpb25zLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NDU1MTVhCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE2L2FyY2gtbWlwcy9zeW1ib2xzL2xpYmFuZHJvaWQuc28uZnVuY3Rpb25zLnR4dApAQCAtMCwwICsxLDE3MSBAQAorQUFzc2V0X2Nsb3NlCitBQXNzZXREaXJfY2xvc2UKK0FBc3NldERpcl9nZXROZXh0RmlsZU5hbWUKK0FBc3NldERpcl9yZXdpbmQKK0FBc3NldF9nZXRCdWZmZXIKK0FBc3NldF9nZXRMZW5ndGgKK0FBc3NldF9nZXRMZW5ndGg2NAorQUFzc2V0X2dldFJlbWFpbmluZ0xlbmd0aAorQUFzc2V0X2dldFJlbWFpbmluZ0xlbmd0aDY0CitBQXNzZXRfaXNBbGxvY2F0ZWQKK0FBc3NldE1hbmFnZXJfZnJvbUphdmEKK0FBc3NldE1hbmFnZXJfb3BlbgorQUFzc2V0TWFuYWdlcl9vcGVuRGlyCitBQXNzZXRfb3BlbkZpbGVEZXNjcmlwdG9yCitBQXNzZXRfb3BlbkZpbGVEZXNjcmlwdG9yNjQKK0FBc3NldF9yZWFkCitBQXNzZXRfc2VlaworQUFzc2V0X3NlZWs2NAorQUNvbmZpZ3VyYXRpb25fY29weQorQUNvbmZpZ3VyYXRpb25fZGVsZXRlCitBQ29uZmlndXJhdGlvbl9kaWZmCitBQ29uZmlndXJhdGlvbl9mcm9tQXNzZXRNYW5hZ2VyCitBQ29uZmlndXJhdGlvbl9nZXRDb3VudHJ5CitBQ29uZmlndXJhdGlvbl9nZXREZW5zaXR5CitBQ29uZmlndXJhdGlvbl9nZXRLZXlib2FyZAorQUNvbmZpZ3VyYXRpb25fZ2V0S2V5c0hpZGRlbgorQUNvbmZpZ3VyYXRpb25fZ2V0TGFuZ3VhZ2UKK0FDb25maWd1cmF0aW9uX2dldE1jYworQUNvbmZpZ3VyYXRpb25fZ2V0TW5jCitBQ29uZmlndXJhdGlvbl9nZXROYXZIaWRkZW4KK0FDb25maWd1cmF0aW9uX2dldE5hdmlnYXRpb24KK0FDb25maWd1cmF0aW9uX2dldE9yaWVudGF0aW9uCitBQ29uZmlndXJhdGlvbl9nZXRTY3JlZW5IZWlnaHREcAorQUNvbmZpZ3VyYXRpb25fZ2V0U2NyZWVuTG9uZworQUNvbmZpZ3VyYXRpb25fZ2V0U2NyZWVuU2l6ZQorQUNvbmZpZ3VyYXRpb25fZ2V0U2NyZWVuV2lkdGhEcAorQUNvbmZpZ3VyYXRpb25fZ2V0U2RrVmVyc2lvbgorQUNvbmZpZ3VyYXRpb25fZ2V0U21hbGxlc3RTY3JlZW5XaWR0aERwCitBQ29uZmlndXJhdGlvbl9nZXRUb3VjaHNjcmVlbgorQUNvbmZpZ3VyYXRpb25fZ2V0VWlNb2RlTmlnaHQKK0FDb25maWd1cmF0aW9uX2dldFVpTW9kZVR5cGUKK0FDb25maWd1cmF0aW9uX2lzQmV0dGVyVGhhbgorQUNvbmZpZ3VyYXRpb25fbWF0Y2gKK0FDb25maWd1cmF0aW9uX25ldworQUNvbmZpZ3VyYXRpb25fc2V0Q291bnRyeQorQUNvbmZpZ3VyYXRpb25fc2V0RGVuc2l0eQorQUNvbmZpZ3VyYXRpb25fc2V0S2V5Ym9hcmQKK0FDb25maWd1cmF0aW9uX3NldEtleXNIaWRkZW4KK0FDb25maWd1cmF0aW9uX3NldExhbmd1YWdlCitBQ29uZmlndXJhdGlvbl9zZXRNY2MKK0FDb25maWd1cmF0aW9uX3NldE1uYworQUNvbmZpZ3VyYXRpb25fc2V0TmF2SGlkZGVuCitBQ29uZmlndXJhdGlvbl9zZXROYXZpZ2F0aW9uCitBQ29uZmlndXJhdGlvbl9zZXRPcmllbnRhdGlvbgorQUNvbmZpZ3VyYXRpb25fc2V0U2NyZWVuSGVpZ2h0RHAKK0FDb25maWd1cmF0aW9uX3NldFNjcmVlbkxvbmcKK0FDb25maWd1cmF0aW9uX3NldFNjcmVlblNpemUKK0FDb25maWd1cmF0aW9uX3NldFNjcmVlbldpZHRoRHAKK0FDb25maWd1cmF0aW9uX3NldFNka1ZlcnNpb24KK0FDb25maWd1cmF0aW9uX3NldFNtYWxsZXN0U2NyZWVuV2lkdGhEcAorQUNvbmZpZ3VyYXRpb25fc2V0VG91Y2hzY3JlZW4KK0FDb25maWd1cmF0aW9uX3NldFVpTW9kZU5pZ2h0CitBQ29uZmlndXJhdGlvbl9zZXRVaU1vZGVUeXBlCitBSW5wdXRFdmVudF9nZXREZXZpY2VJZAorQUlucHV0RXZlbnRfZ2V0U291cmNlCitBSW5wdXRFdmVudF9nZXRUeXBlCitBSW5wdXRRdWV1ZV9hdHRhY2hMb29wZXIKK0FJbnB1dFF1ZXVlX2RldGFjaExvb3BlcgorQUlucHV0UXVldWVfZmluaXNoRXZlbnQKK0FJbnB1dFF1ZXVlX2dldEV2ZW50CitBSW5wdXRRdWV1ZV9oYXNFdmVudHMKK0FJbnB1dFF1ZXVlX3ByZURpc3BhdGNoRXZlbnQKK0FLZXlFdmVudF9nZXRBY3Rpb24KK0FLZXlFdmVudF9nZXREb3duVGltZQorQUtleUV2ZW50X2dldEV2ZW50VGltZQorQUtleUV2ZW50X2dldEZsYWdzCitBS2V5RXZlbnRfZ2V0S2V5Q29kZQorQUtleUV2ZW50X2dldE1ldGFTdGF0ZQorQUtleUV2ZW50X2dldFJlcGVhdENvdW50CitBS2V5RXZlbnRfZ2V0U2NhbkNvZGUKK0FMb29wZXJfYWNxdWlyZQorQUxvb3Blcl9hZGRGZAorQUxvb3Blcl9mb3JUaHJlYWQKK0FMb29wZXJfcG9sbEFsbAorQUxvb3Blcl9wb2xsT25jZQorQUxvb3Blcl9wcmVwYXJlCitBTG9vcGVyX3JlbGVhc2UKK0FMb29wZXJfcmVtb3ZlRmQKK0FMb29wZXJfd2FrZQorQU1vdGlvbkV2ZW50X2dldEFjdGlvbgorQU1vdGlvbkV2ZW50X2dldEF4aXNWYWx1ZQorQU1vdGlvbkV2ZW50X2dldEJ1dHRvblN0YXRlCitBTW90aW9uRXZlbnRfZ2V0RG93blRpbWUKK0FNb3Rpb25FdmVudF9nZXRFZGdlRmxhZ3MKK0FNb3Rpb25FdmVudF9nZXRFdmVudFRpbWUKK0FNb3Rpb25FdmVudF9nZXRGbGFncworQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxBeGlzVmFsdWUKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsRXZlbnRUaW1lCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbE9yaWVudGF0aW9uCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFByZXNzdXJlCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFJhd1gKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsUmF3WQorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxTaXplCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFRvb2xNYWpvcgorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxUb29sTWlub3IKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsVG91Y2hNYWpvcgorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxUb3VjaE1pbm9yCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFgKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsWQorQU1vdGlvbkV2ZW50X2dldEhpc3RvcnlTaXplCitBTW90aW9uRXZlbnRfZ2V0TWV0YVN0YXRlCitBTW90aW9uRXZlbnRfZ2V0T3JpZW50YXRpb24KK0FNb3Rpb25FdmVudF9nZXRQb2ludGVyQ291bnQKK0FNb3Rpb25FdmVudF9nZXRQb2ludGVySWQKK0FNb3Rpb25FdmVudF9nZXRQcmVzc3VyZQorQU1vdGlvbkV2ZW50X2dldFJhd1gKK0FNb3Rpb25FdmVudF9nZXRSYXdZCitBTW90aW9uRXZlbnRfZ2V0U2l6ZQorQU1vdGlvbkV2ZW50X2dldFRvb2xNYWpvcgorQU1vdGlvbkV2ZW50X2dldFRvb2xNaW5vcgorQU1vdGlvbkV2ZW50X2dldFRvb2xUeXBlCitBTW90aW9uRXZlbnRfZ2V0VG91Y2hNYWpvcgorQU1vdGlvbkV2ZW50X2dldFRvdWNoTWlub3IKK0FNb3Rpb25FdmVudF9nZXRYCitBTW90aW9uRXZlbnRfZ2V0WE9mZnNldAorQU1vdGlvbkV2ZW50X2dldFhQcmVjaXNpb24KK0FNb3Rpb25FdmVudF9nZXRZCitBTW90aW9uRXZlbnRfZ2V0WU9mZnNldAorQU1vdGlvbkV2ZW50X2dldFlQcmVjaXNpb24KK0FOYXRpdmVBY3Rpdml0eV9maW5pc2gKK0FOYXRpdmVBY3Rpdml0eV9oaWRlU29mdElucHV0CitBTmF0aXZlQWN0aXZpdHlfc2V0V2luZG93RmxhZ3MKK0FOYXRpdmVBY3Rpdml0eV9zZXRXaW5kb3dGb3JtYXQKK0FOYXRpdmVBY3Rpdml0eV9zaG93U29mdElucHV0CitBTmF0aXZlV2luZG93X2FjcXVpcmUKK0FOYXRpdmVXaW5kb3dfZnJvbVN1cmZhY2UKK0FOYXRpdmVXaW5kb3dfZ2V0Rm9ybWF0CitBTmF0aXZlV2luZG93X2dldEhlaWdodAorQU5hdGl2ZVdpbmRvd19nZXRXaWR0aAorQU5hdGl2ZVdpbmRvd19sb2NrCitBTmF0aXZlV2luZG93X3JlbGVhc2UKK0FOYXRpdmVXaW5kb3dfc2V0QnVmZmVyc0dlb21ldHJ5CitBTmF0aXZlV2luZG93X3VubG9ja0FuZFBvc3QKK2FuZHJvaWRfZ2V0VHRzRW5naW5lCitBT2JiSW5mb19kZWxldGUKK0FPYmJJbmZvX2dldEZsYWdzCitBT2JiSW5mb19nZXRQYWNrYWdlTmFtZQorQU9iYkluZm9fZ2V0VmVyc2lvbgorQU9iYlNjYW5uZXJfZ2V0T2JiSW5mbworQVNlbnNvckV2ZW50UXVldWVfZGlzYWJsZVNlbnNvcgorQVNlbnNvckV2ZW50UXVldWVfZW5hYmxlU2Vuc29yCitBU2Vuc29yRXZlbnRRdWV1ZV9nZXRFdmVudHMKK0FTZW5zb3JFdmVudFF1ZXVlX2hhc0V2ZW50cworQVNlbnNvckV2ZW50UXVldWVfc2V0RXZlbnRSYXRlCitBU2Vuc29yX2dldE1pbkRlbGF5CitBU2Vuc29yX2dldE5hbWUKK0FTZW5zb3JfZ2V0UmVzb2x1dGlvbgorQVNlbnNvcl9nZXRUeXBlCitBU2Vuc29yX2dldFZlbmRvcgorQVNlbnNvck1hbmFnZXJfY3JlYXRlRXZlbnRRdWV1ZQorQVNlbnNvck1hbmFnZXJfZGVzdHJveUV2ZW50UXVldWUKK0FTZW5zb3JNYW5hZ2VyX2dldERlZmF1bHRTZW5zb3IKK0FTZW5zb3JNYW5hZ2VyX2dldEluc3RhbmNlCitBU2Vuc29yTWFuYWdlcl9nZXRTZW5zb3JMaXN0CitBU3RvcmFnZU1hbmFnZXJfZGVsZXRlCitBU3RvcmFnZU1hbmFnZXJfZ2V0TW91bnRlZE9iYlBhdGgKK0FTdG9yYWdlTWFuYWdlcl9pc09iYk1vdW50ZWQKK0FTdG9yYWdlTWFuYWdlcl9tb3VudE9iYgorQVN0b3JhZ2VNYW5hZ2VyX25ldworQVN0b3JhZ2VNYW5hZ2VyX3VubW91bnRPYmIKK2dldFR0c0VuZ2luZQpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE2L2FyY2gtbWlwcy9zeW1ib2xzL2xpYmFuZHJvaWQuc28udmFyaWFibGVzLnR4dCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNi9hcmNoLW1pcHMvc3ltYm9scy9saWJhbmRyb2lkLnNvLnZhcmlhYmxlcy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGIxMzc4OQotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNi9hcmNoLW1pcHMvc3ltYm9scy9saWJhbmRyb2lkLnNvLnZhcmlhYmxlcy50eHQKQEAgLTAsMCArMSBAQAorCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTYvYXJjaC14ODYvc3ltYm9scy9saWJhbmRyb2lkLnNvLmZ1bmN0aW9ucy50eHQgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTYvYXJjaC14ODYvc3ltYm9scy9saWJhbmRyb2lkLnNvLmZ1bmN0aW9ucy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODQ1NTE1YQotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNi9hcmNoLXg4Ni9zeW1ib2xzL2xpYmFuZHJvaWQuc28uZnVuY3Rpb25zLnR4dApAQCAtMCwwICsxLDE3MSBAQAorQUFzc2V0X2Nsb3NlCitBQXNzZXREaXJfY2xvc2UKK0FBc3NldERpcl9nZXROZXh0RmlsZU5hbWUKK0FBc3NldERpcl9yZXdpbmQKK0FBc3NldF9nZXRCdWZmZXIKK0FBc3NldF9nZXRMZW5ndGgKK0FBc3NldF9nZXRMZW5ndGg2NAorQUFzc2V0X2dldFJlbWFpbmluZ0xlbmd0aAorQUFzc2V0X2dldFJlbWFpbmluZ0xlbmd0aDY0CitBQXNzZXRfaXNBbGxvY2F0ZWQKK0FBc3NldE1hbmFnZXJfZnJvbUphdmEKK0FBc3NldE1hbmFnZXJfb3BlbgorQUFzc2V0TWFuYWdlcl9vcGVuRGlyCitBQXNzZXRfb3BlbkZpbGVEZXNjcmlwdG9yCitBQXNzZXRfb3BlbkZpbGVEZXNjcmlwdG9yNjQKK0FBc3NldF9yZWFkCitBQXNzZXRfc2VlaworQUFzc2V0X3NlZWs2NAorQUNvbmZpZ3VyYXRpb25fY29weQorQUNvbmZpZ3VyYXRpb25fZGVsZXRlCitBQ29uZmlndXJhdGlvbl9kaWZmCitBQ29uZmlndXJhdGlvbl9mcm9tQXNzZXRNYW5hZ2VyCitBQ29uZmlndXJhdGlvbl9nZXRDb3VudHJ5CitBQ29uZmlndXJhdGlvbl9nZXREZW5zaXR5CitBQ29uZmlndXJhdGlvbl9nZXRLZXlib2FyZAorQUNvbmZpZ3VyYXRpb25fZ2V0S2V5c0hpZGRlbgorQUNvbmZpZ3VyYXRpb25fZ2V0TGFuZ3VhZ2UKK0FDb25maWd1cmF0aW9uX2dldE1jYworQUNvbmZpZ3VyYXRpb25fZ2V0TW5jCitBQ29uZmlndXJhdGlvbl9nZXROYXZIaWRkZW4KK0FDb25maWd1cmF0aW9uX2dldE5hdmlnYXRpb24KK0FDb25maWd1cmF0aW9uX2dldE9yaWVudGF0aW9uCitBQ29uZmlndXJhdGlvbl9nZXRTY3JlZW5IZWlnaHREcAorQUNvbmZpZ3VyYXRpb25fZ2V0U2NyZWVuTG9uZworQUNvbmZpZ3VyYXRpb25fZ2V0U2NyZWVuU2l6ZQorQUNvbmZpZ3VyYXRpb25fZ2V0U2NyZWVuV2lkdGhEcAorQUNvbmZpZ3VyYXRpb25fZ2V0U2RrVmVyc2lvbgorQUNvbmZpZ3VyYXRpb25fZ2V0U21hbGxlc3RTY3JlZW5XaWR0aERwCitBQ29uZmlndXJhdGlvbl9nZXRUb3VjaHNjcmVlbgorQUNvbmZpZ3VyYXRpb25fZ2V0VWlNb2RlTmlnaHQKK0FDb25maWd1cmF0aW9uX2dldFVpTW9kZVR5cGUKK0FDb25maWd1cmF0aW9uX2lzQmV0dGVyVGhhbgorQUNvbmZpZ3VyYXRpb25fbWF0Y2gKK0FDb25maWd1cmF0aW9uX25ldworQUNvbmZpZ3VyYXRpb25fc2V0Q291bnRyeQorQUNvbmZpZ3VyYXRpb25fc2V0RGVuc2l0eQorQUNvbmZpZ3VyYXRpb25fc2V0S2V5Ym9hcmQKK0FDb25maWd1cmF0aW9uX3NldEtleXNIaWRkZW4KK0FDb25maWd1cmF0aW9uX3NldExhbmd1YWdlCitBQ29uZmlndXJhdGlvbl9zZXRNY2MKK0FDb25maWd1cmF0aW9uX3NldE1uYworQUNvbmZpZ3VyYXRpb25fc2V0TmF2SGlkZGVuCitBQ29uZmlndXJhdGlvbl9zZXROYXZpZ2F0aW9uCitBQ29uZmlndXJhdGlvbl9zZXRPcmllbnRhdGlvbgorQUNvbmZpZ3VyYXRpb25fc2V0U2NyZWVuSGVpZ2h0RHAKK0FDb25maWd1cmF0aW9uX3NldFNjcmVlbkxvbmcKK0FDb25maWd1cmF0aW9uX3NldFNjcmVlblNpemUKK0FDb25maWd1cmF0aW9uX3NldFNjcmVlbldpZHRoRHAKK0FDb25maWd1cmF0aW9uX3NldFNka1ZlcnNpb24KK0FDb25maWd1cmF0aW9uX3NldFNtYWxsZXN0U2NyZWVuV2lkdGhEcAorQUNvbmZpZ3VyYXRpb25fc2V0VG91Y2hzY3JlZW4KK0FDb25maWd1cmF0aW9uX3NldFVpTW9kZU5pZ2h0CitBQ29uZmlndXJhdGlvbl9zZXRVaU1vZGVUeXBlCitBSW5wdXRFdmVudF9nZXREZXZpY2VJZAorQUlucHV0RXZlbnRfZ2V0U291cmNlCitBSW5wdXRFdmVudF9nZXRUeXBlCitBSW5wdXRRdWV1ZV9hdHRhY2hMb29wZXIKK0FJbnB1dFF1ZXVlX2RldGFjaExvb3BlcgorQUlucHV0UXVldWVfZmluaXNoRXZlbnQKK0FJbnB1dFF1ZXVlX2dldEV2ZW50CitBSW5wdXRRdWV1ZV9oYXNFdmVudHMKK0FJbnB1dFF1ZXVlX3ByZURpc3BhdGNoRXZlbnQKK0FLZXlFdmVudF9nZXRBY3Rpb24KK0FLZXlFdmVudF9nZXREb3duVGltZQorQUtleUV2ZW50X2dldEV2ZW50VGltZQorQUtleUV2ZW50X2dldEZsYWdzCitBS2V5RXZlbnRfZ2V0S2V5Q29kZQorQUtleUV2ZW50X2dldE1ldGFTdGF0ZQorQUtleUV2ZW50X2dldFJlcGVhdENvdW50CitBS2V5RXZlbnRfZ2V0U2NhbkNvZGUKK0FMb29wZXJfYWNxdWlyZQorQUxvb3Blcl9hZGRGZAorQUxvb3Blcl9mb3JUaHJlYWQKK0FMb29wZXJfcG9sbEFsbAorQUxvb3Blcl9wb2xsT25jZQorQUxvb3Blcl9wcmVwYXJlCitBTG9vcGVyX3JlbGVhc2UKK0FMb29wZXJfcmVtb3ZlRmQKK0FMb29wZXJfd2FrZQorQU1vdGlvbkV2ZW50X2dldEFjdGlvbgorQU1vdGlvbkV2ZW50X2dldEF4aXNWYWx1ZQorQU1vdGlvbkV2ZW50X2dldEJ1dHRvblN0YXRlCitBTW90aW9uRXZlbnRfZ2V0RG93blRpbWUKK0FNb3Rpb25FdmVudF9nZXRFZGdlRmxhZ3MKK0FNb3Rpb25FdmVudF9nZXRFdmVudFRpbWUKK0FNb3Rpb25FdmVudF9nZXRGbGFncworQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxBeGlzVmFsdWUKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsRXZlbnRUaW1lCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbE9yaWVudGF0aW9uCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFByZXNzdXJlCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFJhd1gKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsUmF3WQorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxTaXplCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFRvb2xNYWpvcgorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxUb29sTWlub3IKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsVG91Y2hNYWpvcgorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxUb3VjaE1pbm9yCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFgKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsWQorQU1vdGlvbkV2ZW50X2dldEhpc3RvcnlTaXplCitBTW90aW9uRXZlbnRfZ2V0TWV0YVN0YXRlCitBTW90aW9uRXZlbnRfZ2V0T3JpZW50YXRpb24KK0FNb3Rpb25FdmVudF9nZXRQb2ludGVyQ291bnQKK0FNb3Rpb25FdmVudF9nZXRQb2ludGVySWQKK0FNb3Rpb25FdmVudF9nZXRQcmVzc3VyZQorQU1vdGlvbkV2ZW50X2dldFJhd1gKK0FNb3Rpb25FdmVudF9nZXRSYXdZCitBTW90aW9uRXZlbnRfZ2V0U2l6ZQorQU1vdGlvbkV2ZW50X2dldFRvb2xNYWpvcgorQU1vdGlvbkV2ZW50X2dldFRvb2xNaW5vcgorQU1vdGlvbkV2ZW50X2dldFRvb2xUeXBlCitBTW90aW9uRXZlbnRfZ2V0VG91Y2hNYWpvcgorQU1vdGlvbkV2ZW50X2dldFRvdWNoTWlub3IKK0FNb3Rpb25FdmVudF9nZXRYCitBTW90aW9uRXZlbnRfZ2V0WE9mZnNldAorQU1vdGlvbkV2ZW50X2dldFhQcmVjaXNpb24KK0FNb3Rpb25FdmVudF9nZXRZCitBTW90aW9uRXZlbnRfZ2V0WU9mZnNldAorQU1vdGlvbkV2ZW50X2dldFlQcmVjaXNpb24KK0FOYXRpdmVBY3Rpdml0eV9maW5pc2gKK0FOYXRpdmVBY3Rpdml0eV9oaWRlU29mdElucHV0CitBTmF0aXZlQWN0aXZpdHlfc2V0V2luZG93RmxhZ3MKK0FOYXRpdmVBY3Rpdml0eV9zZXRXaW5kb3dGb3JtYXQKK0FOYXRpdmVBY3Rpdml0eV9zaG93U29mdElucHV0CitBTmF0aXZlV2luZG93X2FjcXVpcmUKK0FOYXRpdmVXaW5kb3dfZnJvbVN1cmZhY2UKK0FOYXRpdmVXaW5kb3dfZ2V0Rm9ybWF0CitBTmF0aXZlV2luZG93X2dldEhlaWdodAorQU5hdGl2ZVdpbmRvd19nZXRXaWR0aAorQU5hdGl2ZVdpbmRvd19sb2NrCitBTmF0aXZlV2luZG93X3JlbGVhc2UKK0FOYXRpdmVXaW5kb3dfc2V0QnVmZmVyc0dlb21ldHJ5CitBTmF0aXZlV2luZG93X3VubG9ja0FuZFBvc3QKK2FuZHJvaWRfZ2V0VHRzRW5naW5lCitBT2JiSW5mb19kZWxldGUKK0FPYmJJbmZvX2dldEZsYWdzCitBT2JiSW5mb19nZXRQYWNrYWdlTmFtZQorQU9iYkluZm9fZ2V0VmVyc2lvbgorQU9iYlNjYW5uZXJfZ2V0T2JiSW5mbworQVNlbnNvckV2ZW50UXVldWVfZGlzYWJsZVNlbnNvcgorQVNlbnNvckV2ZW50UXVldWVfZW5hYmxlU2Vuc29yCitBU2Vuc29yRXZlbnRRdWV1ZV9nZXRFdmVudHMKK0FTZW5zb3JFdmVudFF1ZXVlX2hhc0V2ZW50cworQVNlbnNvckV2ZW50UXVldWVfc2V0RXZlbnRSYXRlCitBU2Vuc29yX2dldE1pbkRlbGF5CitBU2Vuc29yX2dldE5hbWUKK0FTZW5zb3JfZ2V0UmVzb2x1dGlvbgorQVNlbnNvcl9nZXRUeXBlCitBU2Vuc29yX2dldFZlbmRvcgorQVNlbnNvck1hbmFnZXJfY3JlYXRlRXZlbnRRdWV1ZQorQVNlbnNvck1hbmFnZXJfZGVzdHJveUV2ZW50UXVldWUKK0FTZW5zb3JNYW5hZ2VyX2dldERlZmF1bHRTZW5zb3IKK0FTZW5zb3JNYW5hZ2VyX2dldEluc3RhbmNlCitBU2Vuc29yTWFuYWdlcl9nZXRTZW5zb3JMaXN0CitBU3RvcmFnZU1hbmFnZXJfZGVsZXRlCitBU3RvcmFnZU1hbmFnZXJfZ2V0TW91bnRlZE9iYlBhdGgKK0FTdG9yYWdlTWFuYWdlcl9pc09iYk1vdW50ZWQKK0FTdG9yYWdlTWFuYWdlcl9tb3VudE9iYgorQVN0b3JhZ2VNYW5hZ2VyX25ldworQVN0b3JhZ2VNYW5hZ2VyX3VubW91bnRPYmIKK2dldFR0c0VuZ2luZQpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE2L2FyY2gteDg2L3N5bWJvbHMvbGliYW5kcm9pZC5zby52YXJpYWJsZXMudHh0IGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE2L2FyY2gteDg2L3N5bWJvbHMvbGliYW5kcm9pZC5zby52YXJpYWJsZXMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiMTM3ODkKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTYvYXJjaC14ODYvc3ltYm9scy9saWJhbmRyb2lkLnNvLnZhcmlhYmxlcy50eHQKQEAgLTAsMCArMSBAQAorCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTYvaW5jbHVkZS9hbmRyb2lkL2NvbmZpZ3VyYXRpb24uaCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNi9pbmNsdWRlL2FuZHJvaWQvY29uZmlndXJhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2Y2QzZGEKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTYvaW5jbHVkZS9hbmRyb2lkL2NvbmZpZ3VyYXRpb24uaApAQCAtMCwwICsxLDM2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9DT05GSUdVUkFUSU9OX0gKKyNkZWZpbmUgQU5EUk9JRF9DT05GSUdVUkFUSU9OX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvYXNzZXRfbWFuYWdlci5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK3N0cnVjdCBBQ29uZmlndXJhdGlvbjsKK3R5cGVkZWYgc3RydWN0IEFDb25maWd1cmF0aW9uIEFDb25maWd1cmF0aW9uOworCitlbnVtIHsKKyAgICBBQ09ORklHVVJBVElPTl9PUklFTlRBVElPTl9BTlkgID0gMHgwMDAwLAorICAgIEFDT05GSUdVUkFUSU9OX09SSUVOVEFUSU9OX1BPUlQgPSAweDAwMDEsCisgICAgQUNPTkZJR1VSQVRJT05fT1JJRU5UQVRJT05fTEFORCA9IDB4MDAwMiwKKyAgICBBQ09ORklHVVJBVElPTl9PUklFTlRBVElPTl9TUVVBUkUgPSAweDAwMDMsCisKKyAgICBBQ09ORklHVVJBVElPTl9UT1VDSFNDUkVFTl9BTlkgID0gMHgwMDAwLAorICAgIEFDT05GSUdVUkFUSU9OX1RPVUNIU0NSRUVOX05PVE9VQ0ggID0gMHgwMDAxLAorICAgIEFDT05GSUdVUkFUSU9OX1RPVUNIU0NSRUVOX1NUWUxVUyAgPSAweDAwMDIsCisgICAgQUNPTkZJR1VSQVRJT05fVE9VQ0hTQ1JFRU5fRklOR0VSICA9IDB4MDAwMywKKworICAgIEFDT05GSUdVUkFUSU9OX0RFTlNJVFlfREVGQVVMVCA9IDAsCisgICAgQUNPTkZJR1VSQVRJT05fREVOU0lUWV9MT1cgPSAxMjAsCisgICAgQUNPTkZJR1VSQVRJT05fREVOU0lUWV9NRURJVU0gPSAxNjAsCisgICAgQUNPTkZJR1VSQVRJT05fREVOU0lUWV9UViA9IDIxMywKKyAgICBBQ09ORklHVVJBVElPTl9ERU5TSVRZX0hJR0ggPSAyNDAsCisgICAgQUNPTkZJR1VSQVRJT05fREVOU0lUWV9YSElHSCA9IDMyMCwKKyAgICBBQ09ORklHVVJBVElPTl9ERU5TSVRZX1hYSElHSCA9IDQ4MCwKKyAgICBBQ09ORklHVVJBVElPTl9ERU5TSVRZX05PTkUgPSAweGZmZmYsCisKKyAgICBBQ09ORklHVVJBVElPTl9LRVlCT0FSRF9BTlkgID0gMHgwMDAwLAorICAgIEFDT05GSUdVUkFUSU9OX0tFWUJPQVJEX05PS0VZUyAgPSAweDAwMDEsCisgICAgQUNPTkZJR1VSQVRJT05fS0VZQk9BUkRfUVdFUlRZICA9IDB4MDAwMiwKKyAgICBBQ09ORklHVVJBVElPTl9LRVlCT0FSRF8xMktFWSAgPSAweDAwMDMsCisKKyAgICBBQ09ORklHVVJBVElPTl9OQVZJR0FUSU9OX0FOWSAgPSAweDAwMDAsCisgICAgQUNPTkZJR1VSQVRJT05fTkFWSUdBVElPTl9OT05BViAgPSAweDAwMDEsCisgICAgQUNPTkZJR1VSQVRJT05fTkFWSUdBVElPTl9EUEFEICA9IDB4MDAwMiwKKyAgICBBQ09ORklHVVJBVElPTl9OQVZJR0FUSU9OX1RSQUNLQkFMTCAgPSAweDAwMDMsCisgICAgQUNPTkZJR1VSQVRJT05fTkFWSUdBVElPTl9XSEVFTCAgPSAweDAwMDQsCisKKyAgICBBQ09ORklHVVJBVElPTl9LRVlTSElEREVOX0FOWSA9IDB4MDAwMCwKKyAgICBBQ09ORklHVVJBVElPTl9LRVlTSElEREVOX05PID0gMHgwMDAxLAorICAgIEFDT05GSUdVUkFUSU9OX0tFWVNISURERU5fWUVTID0gMHgwMDAyLAorICAgIEFDT05GSUdVUkFUSU9OX0tFWVNISURERU5fU09GVCA9IDB4MDAwMywKKworICAgIEFDT05GSUdVUkFUSU9OX05BVkhJRERFTl9BTlkgPSAweDAwMDAsCisgICAgQUNPTkZJR1VSQVRJT05fTkFWSElEREVOX05PID0gMHgwMDAxLAorICAgIEFDT05GSUdVUkFUSU9OX05BVkhJRERFTl9ZRVMgPSAweDAwMDIsCisKKyAgICBBQ09ORklHVVJBVElPTl9TQ1JFRU5TSVpFX0FOWSAgPSAweDAwLAorICAgIEFDT05GSUdVUkFUSU9OX1NDUkVFTlNJWkVfU01BTEwgPSAweDAxLAorICAgIEFDT05GSUdVUkFUSU9OX1NDUkVFTlNJWkVfTk9STUFMID0gMHgwMiwKKyAgICBBQ09ORklHVVJBVElPTl9TQ1JFRU5TSVpFX0xBUkdFID0gMHgwMywKKyAgICBBQ09ORklHVVJBVElPTl9TQ1JFRU5TSVpFX1hMQVJHRSA9IDB4MDQsCisKKyAgICBBQ09ORklHVVJBVElPTl9TQ1JFRU5MT05HX0FOWSA9IDB4MDAsCisgICAgQUNPTkZJR1VSQVRJT05fU0NSRUVOTE9OR19OTyA9IDB4MSwKKyAgICBBQ09ORklHVVJBVElPTl9TQ1JFRU5MT05HX1lFUyA9IDB4MiwKKworICAgIEFDT05GSUdVUkFUSU9OX1VJX01PREVfVFlQRV9BTlkgPSAweDAwLAorICAgIEFDT05GSUdVUkFUSU9OX1VJX01PREVfVFlQRV9OT1JNQUwgPSAweDAxLAorICAgIEFDT05GSUdVUkFUSU9OX1VJX01PREVfVFlQRV9ERVNLID0gMHgwMiwKKyAgICBBQ09ORklHVVJBVElPTl9VSV9NT0RFX1RZUEVfQ0FSID0gMHgwMywKKyAgICBBQ09ORklHVVJBVElPTl9VSV9NT0RFX1RZUEVfVEVMRVZJU0lPTiA9IDB4MDQsCisgICAgQUNPTkZJR1VSQVRJT05fVUlfTU9ERV9UWVBFX0FQUExJQU5DRSA9IDB4MDUsCisKKyAgICBBQ09ORklHVVJBVElPTl9VSV9NT0RFX05JR0hUX0FOWSA9IDB4MDAsCisgICAgQUNPTkZJR1VSQVRJT05fVUlfTU9ERV9OSUdIVF9OTyA9IDB4MSwKKyAgICBBQ09ORklHVVJBVElPTl9VSV9NT0RFX05JR0hUX1lFUyA9IDB4MiwKKworICAgIEFDT05GSUdVUkFUSU9OX1NDUkVFTl9XSURUSF9EUF9BTlkgPSAweDAwMDAsCisKKyAgICBBQ09ORklHVVJBVElPTl9TQ1JFRU5fSEVJR0hUX0RQX0FOWSA9IDB4MDAwMCwKKworICAgIEFDT05GSUdVUkFUSU9OX1NNQUxMRVNUX1NDUkVFTl9XSURUSF9EUF9BTlkgPSAweDAwMDAsCisKKyAgICBBQ09ORklHVVJBVElPTl9NQ0MgPSAweDAwMDEsCisgICAgQUNPTkZJR1VSQVRJT05fTU5DID0gMHgwMDAyLAorICAgIEFDT05GSUdVUkFUSU9OX0xPQ0FMRSA9IDB4MDAwNCwKKyAgICBBQ09ORklHVVJBVElPTl9UT1VDSFNDUkVFTiA9IDB4MDAwOCwKKyAgICBBQ09ORklHVVJBVElPTl9LRVlCT0FSRCA9IDB4MDAxMCwKKyAgICBBQ09ORklHVVJBVElPTl9LRVlCT0FSRF9ISURERU4gPSAweDAwMjAsCisgICAgQUNPTkZJR1VSQVRJT05fTkFWSUdBVElPTiA9IDB4MDA0MCwKKyAgICBBQ09ORklHVVJBVElPTl9PUklFTlRBVElPTiA9IDB4MDA4MCwKKyAgICBBQ09ORklHVVJBVElPTl9ERU5TSVRZID0gMHgwMTAwLAorICAgIEFDT05GSUdVUkFUSU9OX1NDUkVFTl9TSVpFID0gMHgwMjAwLAorICAgIEFDT05GSUdVUkFUSU9OX1ZFUlNJT04gPSAweDA0MDAsCisgICAgQUNPTkZJR1VSQVRJT05fU0NSRUVOX0xBWU9VVCA9IDB4MDgwMCwKKyAgICBBQ09ORklHVVJBVElPTl9VSV9NT0RFID0gMHgxMDAwLAorICAgIEFDT05GSUdVUkFUSU9OX1NNQUxMRVNUX1NDUkVFTl9TSVpFID0gMHgyMDAwLAorfTsKKworLyoqCisgKiBDcmVhdGUgYSBuZXcgQUNvbmZpZ3VyYXRpb24sIGluaXRpYWxpemVkIHdpdGggbm8gdmFsdWVzIHNldC4KKyAqLworQUNvbmZpZ3VyYXRpb24qIEFDb25maWd1cmF0aW9uX25ldygpOworCisvKioKKyAqIEZyZWUgYW4gQUNvbmZpZ3VyYXRpb24gdGhhdCB3YXMgcHJldmlvdXNseSBjcmVhdGVkIHdpdGgKKyAqIEFDb25maWd1cmF0aW9uX25ldygpLgorICovCit2b2lkIEFDb25maWd1cmF0aW9uX2RlbGV0ZShBQ29uZmlndXJhdGlvbiogY29uZmlnKTsKKworLyoqCisgKiBDcmVhdGUgYW5kIHJldHVybiBhIG5ldyBBQ29uZmlndXJhdGlvbiBiYXNlZCBvbiB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uIGluCisgKiB1c2UgaW4gdGhlIGdpdmVuIEFzc2V0TWFuYWdlci4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9mcm9tQXNzZXRNYW5hZ2VyKEFDb25maWd1cmF0aW9uKiBvdXQsIEFBc3NldE1hbmFnZXIqIGFtKTsKKworLyoqCisgKiBDb3B5IHRoZSBjb250ZW50cyBvZiAnc3JjJyB0byAnZGVzdCcuCisgKi8KK3ZvaWQgQUNvbmZpZ3VyYXRpb25fY29weShBQ29uZmlndXJhdGlvbiogZGVzdCwgQUNvbmZpZ3VyYXRpb24qIHNyYyk7CisKKy8qKgorICogUmV0dXJuIHRoZSBjdXJyZW50IE1DQyBzZXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uICAwIGlmIG5vdCBzZXQuCisgKi8KK2ludDMyX3QgQUNvbmZpZ3VyYXRpb25fZ2V0TWNjKEFDb25maWd1cmF0aW9uKiBjb25maWcpOworCisvKioKKyAqIFNldCB0aGUgY3VycmVudCBNQ0MgaW4gdGhlIGNvbmZpZ3VyYXRpb24uICAwIHRvIGNsZWFyLgorICovCit2b2lkIEFDb25maWd1cmF0aW9uX3NldE1jYyhBQ29uZmlndXJhdGlvbiogY29uZmlnLCBpbnQzMl90IG1jYyk7CisKKy8qKgorICogUmV0dXJuIHRoZSBjdXJyZW50IE1OQyBzZXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uICAwIGlmIG5vdCBzZXQuCisgKi8KK2ludDMyX3QgQUNvbmZpZ3VyYXRpb25fZ2V0TW5jKEFDb25maWd1cmF0aW9uKiBjb25maWcpOworCisvKioKKyAqIFNldCB0aGUgY3VycmVudCBNTkMgaW4gdGhlIGNvbmZpZ3VyYXRpb24uICAwIHRvIGNsZWFyLgorICovCit2b2lkIEFDb25maWd1cmF0aW9uX3NldE1uYyhBQ29uZmlndXJhdGlvbiogY29uZmlnLCBpbnQzMl90IG1uYyk7CisKKy8qKgorICogUmV0dXJuIHRoZSBjdXJyZW50IGxhbmd1YWdlIGNvZGUgc2V0IGluIHRoZSBjb25maWd1cmF0aW9uLiAgVGhlIG91dHB1dCB3aWxsCisgKiBiZSBmaWxsZWQgd2l0aCBhbiBhcnJheSBvZiB0d28gY2hhcmFjdGVycy4gIFRoZXkgYXJlIG5vdCAwLXRlcm1pbmF0ZWQuICBJZgorICogYSBsYW5ndWFnZSBpcyBub3Qgc2V0LCB0aGV5IHdpbGwgYmUgMC4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9nZXRMYW5ndWFnZShBQ29uZmlndXJhdGlvbiogY29uZmlnLCBjaGFyKiBvdXRMYW5ndWFnZSk7CisKKy8qKgorICogU2V0IHRoZSBjdXJyZW50IGxhbmd1YWdlIGNvZGUgaW4gdGhlIGNvbmZpZ3VyYXRpb24sIGZyb20gdGhlIGZpcnN0IHR3bworICogY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nLgorICovCit2b2lkIEFDb25maWd1cmF0aW9uX3NldExhbmd1YWdlKEFDb25maWd1cmF0aW9uKiBjb25maWcsIGNvbnN0IGNoYXIqIGxhbmd1YWdlKTsKKworLyoqCisgKiBSZXR1cm4gdGhlIGN1cnJlbnQgY291bnRyeSBjb2RlIHNldCBpbiB0aGUgY29uZmlndXJhdGlvbi4gIFRoZSBvdXRwdXQgd2lsbAorICogYmUgZmlsbGVkIHdpdGggYW4gYXJyYXkgb2YgdHdvIGNoYXJhY3RlcnMuICBUaGV5IGFyZSBub3QgMC10ZXJtaW5hdGVkLiAgSWYKKyAqIGEgY291bnRyeSBpcyBub3Qgc2V0LCB0aGV5IHdpbGwgYmUgMC4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9nZXRDb3VudHJ5KEFDb25maWd1cmF0aW9uKiBjb25maWcsIGNoYXIqIG91dENvdW50cnkpOworCisvKioKKyAqIFNldCB0aGUgY3VycmVudCBjb3VudHJ5IGNvZGUgaW4gdGhlIGNvbmZpZ3VyYXRpb24sIGZyb20gdGhlIGZpcnN0IHR3bworICogY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nLgorICovCit2b2lkIEFDb25maWd1cmF0aW9uX3NldENvdW50cnkoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZywgY29uc3QgY2hhciogY291bnRyeSk7CisKKy8qKgorICogUmV0dXJuIHRoZSBjdXJyZW50IEFDT05GSUdVUkFUSU9OX09SSUVOVEFUSU9OXyogc2V0IGluIHRoZSBjb25maWd1cmF0aW9uLgorICovCitpbnQzMl90IEFDb25maWd1cmF0aW9uX2dldE9yaWVudGF0aW9uKEFDb25maWd1cmF0aW9uKiBjb25maWcpOworCisvKioKKyAqIFNldCB0aGUgY3VycmVudCBvcmllbnRhdGlvbiBpbiB0aGUgY29uZmlndXJhdGlvbi4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9zZXRPcmllbnRhdGlvbihBQ29uZmlndXJhdGlvbiogY29uZmlnLCBpbnQzMl90IG9yaWVudGF0aW9uKTsKKworLyoqCisgKiBSZXR1cm4gdGhlIGN1cnJlbnQgQUNPTkZJR1VSQVRJT05fVE9VQ0hTQ1JFRU5fKiBzZXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK2ludDMyX3QgQUNvbmZpZ3VyYXRpb25fZ2V0VG91Y2hzY3JlZW4oQUNvbmZpZ3VyYXRpb24qIGNvbmZpZyk7CisKKy8qKgorICogU2V0IHRoZSBjdXJyZW50IHRvdWNoc2NyZWVuIGluIHRoZSBjb25maWd1cmF0aW9uLgorICovCit2b2lkIEFDb25maWd1cmF0aW9uX3NldFRvdWNoc2NyZWVuKEFDb25maWd1cmF0aW9uKiBjb25maWcsIGludDMyX3QgdG91Y2hzY3JlZW4pOworCisvKioKKyAqIFJldHVybiB0aGUgY3VycmVudCBBQ09ORklHVVJBVElPTl9ERU5TSVRZXyogc2V0IGluIHRoZSBjb25maWd1cmF0aW9uLgorICovCitpbnQzMl90IEFDb25maWd1cmF0aW9uX2dldERlbnNpdHkoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZyk7CisKKy8qKgorICogU2V0IHRoZSBjdXJyZW50IGRlbnNpdHkgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK3ZvaWQgQUNvbmZpZ3VyYXRpb25fc2V0RGVuc2l0eShBQ29uZmlndXJhdGlvbiogY29uZmlnLCBpbnQzMl90IGRlbnNpdHkpOworCisvKioKKyAqIFJldHVybiB0aGUgY3VycmVudCBBQ09ORklHVVJBVElPTl9LRVlCT0FSRF8qIHNldCBpbiB0aGUgY29uZmlndXJhdGlvbi4KKyAqLworaW50MzJfdCBBQ29uZmlndXJhdGlvbl9nZXRLZXlib2FyZChBQ29uZmlndXJhdGlvbiogY29uZmlnKTsKKworLyoqCisgKiBTZXQgdGhlIGN1cnJlbnQga2V5Ym9hcmQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK3ZvaWQgQUNvbmZpZ3VyYXRpb25fc2V0S2V5Ym9hcmQoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZywgaW50MzJfdCBrZXlib2FyZCk7CisKKy8qKgorICogUmV0dXJuIHRoZSBjdXJyZW50IEFDT05GSUdVUkFUSU9OX05BVklHQVRJT05fKiBzZXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK2ludDMyX3QgQUNvbmZpZ3VyYXRpb25fZ2V0TmF2aWdhdGlvbihBQ29uZmlndXJhdGlvbiogY29uZmlnKTsKKworLyoqCisgKiBTZXQgdGhlIGN1cnJlbnQgbmF2aWdhdGlvbiBpbiB0aGUgY29uZmlndXJhdGlvbi4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9zZXROYXZpZ2F0aW9uKEFDb25maWd1cmF0aW9uKiBjb25maWcsIGludDMyX3QgbmF2aWdhdGlvbik7CisKKy8qKgorICogUmV0dXJuIHRoZSBjdXJyZW50IEFDT05GSUdVUkFUSU9OX0tFWVNISURERU5fKiBzZXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK2ludDMyX3QgQUNvbmZpZ3VyYXRpb25fZ2V0S2V5c0hpZGRlbihBQ29uZmlndXJhdGlvbiogY29uZmlnKTsKKworLyoqCisgKiBTZXQgdGhlIGN1cnJlbnQga2V5cyBoaWRkZW4gaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK3ZvaWQgQUNvbmZpZ3VyYXRpb25fc2V0S2V5c0hpZGRlbihBQ29uZmlndXJhdGlvbiogY29uZmlnLCBpbnQzMl90IGtleXNIaWRkZW4pOworCisvKioKKyAqIFJldHVybiB0aGUgY3VycmVudCBBQ09ORklHVVJBVElPTl9OQVZISURERU5fKiBzZXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK2ludDMyX3QgQUNvbmZpZ3VyYXRpb25fZ2V0TmF2SGlkZGVuKEFDb25maWd1cmF0aW9uKiBjb25maWcpOworCisvKioKKyAqIFNldCB0aGUgY3VycmVudCBuYXYgaGlkZGVuIGluIHRoZSBjb25maWd1cmF0aW9uLgorICovCit2b2lkIEFDb25maWd1cmF0aW9uX3NldE5hdkhpZGRlbihBQ29uZmlndXJhdGlvbiogY29uZmlnLCBpbnQzMl90IG5hdkhpZGRlbik7CisKKy8qKgorICogUmV0dXJuIHRoZSBjdXJyZW50IFNESyAoQVBJKSB2ZXJzaW9uIHNldCBpbiB0aGUgY29uZmlndXJhdGlvbi4KKyAqLworaW50MzJfdCBBQ29uZmlndXJhdGlvbl9nZXRTZGtWZXJzaW9uKEFDb25maWd1cmF0aW9uKiBjb25maWcpOworCisvKioKKyAqIFNldCB0aGUgY3VycmVudCBTREsgdmVyc2lvbiBpbiB0aGUgY29uZmlndXJhdGlvbi4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9zZXRTZGtWZXJzaW9uKEFDb25maWd1cmF0aW9uKiBjb25maWcsIGludDMyX3Qgc2RrVmVyc2lvbik7CisKKy8qKgorICogUmV0dXJuIHRoZSBjdXJyZW50IEFDT05GSUdVUkFUSU9OX1NDUkVFTlNJWkVfKiBzZXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK2ludDMyX3QgQUNvbmZpZ3VyYXRpb25fZ2V0U2NyZWVuU2l6ZShBQ29uZmlndXJhdGlvbiogY29uZmlnKTsKKworLyoqCisgKiBTZXQgdGhlIGN1cnJlbnQgc2NyZWVuIHNpemUgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK3ZvaWQgQUNvbmZpZ3VyYXRpb25fc2V0U2NyZWVuU2l6ZShBQ29uZmlndXJhdGlvbiogY29uZmlnLCBpbnQzMl90IHNjcmVlblNpemUpOworCisvKioKKyAqIFJldHVybiB0aGUgY3VycmVudCBBQ09ORklHVVJBVElPTl9TQ1JFRU5MT05HXyogc2V0IGluIHRoZSBjb25maWd1cmF0aW9uLgorICovCitpbnQzMl90IEFDb25maWd1cmF0aW9uX2dldFNjcmVlbkxvbmcoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZyk7CisKKy8qKgorICogU2V0IHRoZSBjdXJyZW50IHNjcmVlbiBsb25nIGluIHRoZSBjb25maWd1cmF0aW9uLgorICovCit2b2lkIEFDb25maWd1cmF0aW9uX3NldFNjcmVlbkxvbmcoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZywgaW50MzJfdCBzY3JlZW5Mb25nKTsKKworLyoqCisgKiBSZXR1cm4gdGhlIGN1cnJlbnQgQUNPTkZJR1VSQVRJT05fVUlfTU9ERV9UWVBFXyogc2V0IGluIHRoZSBjb25maWd1cmF0aW9uLgorICovCitpbnQzMl90IEFDb25maWd1cmF0aW9uX2dldFVpTW9kZVR5cGUoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZyk7CisKKy8qKgorICogU2V0IHRoZSBjdXJyZW50IFVJIG1vZGUgdHlwZSBpbiB0aGUgY29uZmlndXJhdGlvbi4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9zZXRVaU1vZGVUeXBlKEFDb25maWd1cmF0aW9uKiBjb25maWcsIGludDMyX3QgdWlNb2RlVHlwZSk7CisKKy8qKgorICogUmV0dXJuIHRoZSBjdXJyZW50IEFDT05GSUdVUkFUSU9OX1VJX01PREVfTklHSFRfKiBzZXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK2ludDMyX3QgQUNvbmZpZ3VyYXRpb25fZ2V0VWlNb2RlTmlnaHQoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZyk7CisKKy8qKgorICogU2V0IHRoZSBjdXJyZW50IFVJIG1vZGUgbmlnaHQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK3ZvaWQgQUNvbmZpZ3VyYXRpb25fc2V0VWlNb2RlTmlnaHQoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZywgaW50MzJfdCB1aU1vZGVOaWdodCk7CisKKy8qKgorICogUmV0dXJuIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24gc2NyZWVuIHdpZHRoIGluIGRwIHVuaXRzLCBvcgorICogQUNPTkZJR1VSQVRJT05fU0NSRUVOX1dJRFRIX0RQX0FOWSBpZiBub3Qgc2V0LgorICovCitpbnQzMl90IEFDb25maWd1cmF0aW9uX2dldFNjcmVlbldpZHRoRHAoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZyk7CisKKy8qKgorICogU2V0IHRoZSBjb25maWd1cmF0aW9uJ3MgY3VycmVudCBzY3JlZW4gd2lkdGggaW4gZHAgdW5pdHMuCisgKi8KK3ZvaWQgQUNvbmZpZ3VyYXRpb25fc2V0U2NyZWVuV2lkdGhEcChBQ29uZmlndXJhdGlvbiogY29uZmlnLCBpbnQzMl90IHZhbHVlKTsKKworLyoqCisgKiBSZXR1cm4gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBzY3JlZW4gaGVpZ2h0IGluIGRwIHVuaXRzLCBvcgorICogQUNPTkZJR1VSQVRJT05fU0NSRUVOX0hFSUdIVF9EUF9BTlkgaWYgbm90IHNldC4KKyAqLworaW50MzJfdCBBQ29uZmlndXJhdGlvbl9nZXRTY3JlZW5IZWlnaHREcChBQ29uZmlndXJhdGlvbiogY29uZmlnKTsKKworLyoqCisgKiBTZXQgdGhlIGNvbmZpZ3VyYXRpb24ncyBjdXJyZW50IHNjcmVlbiB3aWR0aCBpbiBkcCB1bml0cy4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9zZXRTY3JlZW5IZWlnaHREcChBQ29uZmlndXJhdGlvbiogY29uZmlnLCBpbnQzMl90IHZhbHVlKTsKKworLyoqCisgKiBSZXR1cm4gdGhlIGNvbmZpZ3VyYXRpb24ncyBzbWFsbGVzdCBzY3JlZW4gd2lkdGggaW4gZHAgdW5pdHMsIG9yCisgKiBBQ09ORklHVVJBVElPTl9TTUFMTEVTVF9TQ1JFRU5fV0lEVEhfRFBfQU5ZIGlmIG5vdCBzZXQuCisgKi8KK2ludDMyX3QgQUNvbmZpZ3VyYXRpb25fZ2V0U21hbGxlc3RTY3JlZW5XaWR0aERwKEFDb25maWd1cmF0aW9uKiBjb25maWcpOworCisvKioKKyAqIFNldCB0aGUgY29uZmlndXJhdGlvbidzIHNtYWxsZXN0IHNjcmVlbiB3aWR0aCBpbiBkcCB1bml0cy4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9zZXRTbWFsbGVzdFNjcmVlbldpZHRoRHAoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZywgaW50MzJfdCB2YWx1ZSk7CisKKy8qKgorICogUGVyZm9ybSBhIGRpZmYgYmV0d2VlbiB0d28gY29uZmlndXJhdGlvbnMuICBSZXR1cm5zIGEgYml0IG1hc2sgb2YKKyAqIEFDT05GSUdVUkFUSU9OXyogY29uc3RhbnRzLCBlYWNoIGJpdCBzZXQgbWVhbmluZyB0aGF0IGNvbmZpZ3VyYXRpb24gZWxlbWVudAorICogaXMgZGlmZmVyZW50IGJldHdlZW4gdGhlbS4KKyAqLworaW50MzJfdCBBQ29uZmlndXJhdGlvbl9kaWZmKEFDb25maWd1cmF0aW9uKiBjb25maWcxLCBBQ29uZmlndXJhdGlvbiogY29uZmlnMik7CisKKy8qKgorICogRGV0ZXJtaW5lIHdoZXRoZXIgJ2Jhc2UnIGlzIGEgdmFsaWQgY29uZmlndXJhdGlvbiBmb3IgdXNlIHdpdGhpbiB0aGUKKyAqIGVudmlyb25tZW50ICdyZXF1ZXN0ZWQnLiAgUmV0dXJucyAwIGlmIHRoZXJlIGFyZSBhbnkgdmFsdWVzIGluICdiYXNlJworICogdGhhdCBjb25mbGljdCB3aXRoICdyZXF1ZXN0ZWQnLiAgUmV0dXJucyAxIGlmIGl0IGRvZXMgbm90IGNvbmZsaWN0LgorICovCitpbnQzMl90IEFDb25maWd1cmF0aW9uX21hdGNoKEFDb25maWd1cmF0aW9uKiBiYXNlLCBBQ29uZmlndXJhdGlvbiogcmVxdWVzdGVkKTsKKworLyoqCisgKiBEZXRlcm1pbmUgd2hldGhlciB0aGUgY29uZmlndXJhdGlvbiBpbiAndGVzdCcgaXMgYmV0dGVyIHRoYW4gdGhlIGV4aXN0aW5nCisgKiBjb25maWd1cmF0aW9uIGluICdiYXNlJy4gIElmICdyZXF1ZXN0ZWQnIGlzIG5vbi1OVUxMLCB0aGlzIGRlY2lzaW9uIGlzIGJhc2VkCisgKiBvbiB0aGUgb3ZlcmFsbCBjb25maWd1cmF0aW9uIGdpdmVuIHRoZXJlLiAgSWYgaXQgaXMgTlVMTCwgdGhpcyBkZWNpc2lvbiBpcworICogc2ltcGx5IGJhc2VkIG9uIHdoaWNoIGNvbmZpZ3VyYXRpb24gaXMgbW9yZSBzcGVjaWZpYy4gIFJldHVybnMgbm9uLTAgaWYKKyAqICd0ZXN0JyBpcyBiZXR0ZXIgdGhhbiAnYmFzZScuCisgKgorICogVGhpcyBhc3N1bWVzIHlvdSBoYXZlIGFscmVhZHkgZmlsdGVyZWQgdGhlIGNvbmZpZ3VyYXRpb25zIHdpdGgKKyAqIEFDb25maWd1cmF0aW9uX21hdGNoKCkuCisgKi8KK2ludDMyX3QgQUNvbmZpZ3VyYXRpb25faXNCZXR0ZXJUaGFuKEFDb25maWd1cmF0aW9uKiBiYXNlLCBBQ29uZmlndXJhdGlvbiogdGVzdCwKKyAgICAgICAgQUNvbmZpZ3VyYXRpb24qIHJlcXVlc3RlZCk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfTsKKyNlbmRpZgorCisjZW5kaWYgLy8gQU5EUk9JRF9DT05GSUdVUkFUSU9OX0gKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNi9pbmNsdWRlL2FuZHJvaWQva2V5Y29kZXMuaCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNi9pbmNsdWRlL2FuZHJvaWQva2V5Y29kZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yODJlNzI5Ci0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE2L2luY2x1ZGUvYW5kcm9pZC9rZXljb2Rlcy5oCkBAIC0wLDAgKzEsMjc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBfQU5EUk9JRF9LRVlDT0RFU19ICisjZGVmaW5lIF9BTkRST0lEX0tFWUNPREVTX0gKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIElNUE9SVEFOVCBOT1RJQ0U6CisgKgorICogICBUaGlzIGZpbGUgaXMgcGFydCBvZiBBbmRyb2lkJ3Mgc2V0IG9mIHN0YWJsZSBzeXN0ZW0gaGVhZGVycworICogICBleHBvc2VkIGJ5IHRoZSBBbmRyb2lkIE5ESyAoTmF0aXZlIERldmVsb3BtZW50IEtpdCkuCisgKgorICogICBUaGlyZC1wYXJ0eSBzb3VyY2UgQU5EIGJpbmFyeSBjb2RlIHJlbGllcyBvbiB0aGUgZGVmaW5pdGlvbnMKKyAqICAgaGVyZSB0byBiZSBGUk9aRU4gT04gQUxMIFVQQ09NSU5HIFBMQVRGT1JNIFJFTEVBU0VTLgorICoKKyAqICAgLSBETyBOT1QgTU9ESUZZIEVOVU1TIChFWENFUFQgSUYgWU9VIEFERCBORVcgMzItQklUIFZBTFVFUykKKyAqICAgLSBETyBOT1QgTU9ESUZZIENPTlNUQU5UUyBPUiBGVU5DVElPTkFMIE1BQ1JPUworICogICAtIERPIE5PVCBDSEFOR0UgVEhFIFNJR05BVFVSRSBPRiBGVU5DVElPTlMgSU4gQU5ZIFdBWQorICogICAtIERPIE5PVCBDSEFOR0UgVEhFIExBWU9VVCBPUiBTSVpFIE9GIFNUUlVDVFVSRVMKKyAqLworCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLyoKKyAqIEtleSBjb2Rlcy4KKyAqLworZW51bSB7CisgICAgQUtFWUNPREVfVU5LTk9XTiAgICAgICAgID0gMCwKKyAgICBBS0VZQ09ERV9TT0ZUX0xFRlQgICAgICAgPSAxLAorICAgIEFLRVlDT0RFX1NPRlRfUklHSFQgICAgICA9IDIsCisgICAgQUtFWUNPREVfSE9NRSAgICAgICAgICAgID0gMywKKyAgICBBS0VZQ09ERV9CQUNLICAgICAgICAgICAgPSA0LAorICAgIEFLRVlDT0RFX0NBTEwgICAgICAgICAgICA9IDUsCisgICAgQUtFWUNPREVfRU5EQ0FMTCAgICAgICAgID0gNiwKKyAgICBBS0VZQ09ERV8wICAgICAgICAgICAgICAgPSA3LAorICAgIEFLRVlDT0RFXzEgICAgICAgICAgICAgICA9IDgsCisgICAgQUtFWUNPREVfMiAgICAgICAgICAgICAgID0gOSwKKyAgICBBS0VZQ09ERV8zICAgICAgICAgICAgICAgPSAxMCwKKyAgICBBS0VZQ09ERV80ICAgICAgICAgICAgICAgPSAxMSwKKyAgICBBS0VZQ09ERV81ICAgICAgICAgICAgICAgPSAxMiwKKyAgICBBS0VZQ09ERV82ICAgICAgICAgICAgICAgPSAxMywKKyAgICBBS0VZQ09ERV83ICAgICAgICAgICAgICAgPSAxNCwKKyAgICBBS0VZQ09ERV84ICAgICAgICAgICAgICAgPSAxNSwKKyAgICBBS0VZQ09ERV85ICAgICAgICAgICAgICAgPSAxNiwKKyAgICBBS0VZQ09ERV9TVEFSICAgICAgICAgICAgPSAxNywKKyAgICBBS0VZQ09ERV9QT1VORCAgICAgICAgICAgPSAxOCwKKyAgICBBS0VZQ09ERV9EUEFEX1VQICAgICAgICAgPSAxOSwKKyAgICBBS0VZQ09ERV9EUEFEX0RPV04gICAgICAgPSAyMCwKKyAgICBBS0VZQ09ERV9EUEFEX0xFRlQgICAgICAgPSAyMSwKKyAgICBBS0VZQ09ERV9EUEFEX1JJR0hUICAgICAgPSAyMiwKKyAgICBBS0VZQ09ERV9EUEFEX0NFTlRFUiAgICAgPSAyMywKKyAgICBBS0VZQ09ERV9WT0xVTUVfVVAgICAgICAgPSAyNCwKKyAgICBBS0VZQ09ERV9WT0xVTUVfRE9XTiAgICAgPSAyNSwKKyAgICBBS0VZQ09ERV9QT1dFUiAgICAgICAgICAgPSAyNiwKKyAgICBBS0VZQ09ERV9DQU1FUkEgICAgICAgICAgPSAyNywKKyAgICBBS0VZQ09ERV9DTEVBUiAgICAgICAgICAgPSAyOCwKKyAgICBBS0VZQ09ERV9BICAgICAgICAgICAgICAgPSAyOSwKKyAgICBBS0VZQ09ERV9CICAgICAgICAgICAgICAgPSAzMCwKKyAgICBBS0VZQ09ERV9DICAgICAgICAgICAgICAgPSAzMSwKKyAgICBBS0VZQ09ERV9EICAgICAgICAgICAgICAgPSAzMiwKKyAgICBBS0VZQ09ERV9FICAgICAgICAgICAgICAgPSAzMywKKyAgICBBS0VZQ09ERV9GICAgICAgICAgICAgICAgPSAzNCwKKyAgICBBS0VZQ09ERV9HICAgICAgICAgICAgICAgPSAzNSwKKyAgICBBS0VZQ09ERV9IICAgICAgICAgICAgICAgPSAzNiwKKyAgICBBS0VZQ09ERV9JICAgICAgICAgICAgICAgPSAzNywKKyAgICBBS0VZQ09ERV9KICAgICAgICAgICAgICAgPSAzOCwKKyAgICBBS0VZQ09ERV9LICAgICAgICAgICAgICAgPSAzOSwKKyAgICBBS0VZQ09ERV9MICAgICAgICAgICAgICAgPSA0MCwKKyAgICBBS0VZQ09ERV9NICAgICAgICAgICAgICAgPSA0MSwKKyAgICBBS0VZQ09ERV9OICAgICAgICAgICAgICAgPSA0MiwKKyAgICBBS0VZQ09ERV9PICAgICAgICAgICAgICAgPSA0MywKKyAgICBBS0VZQ09ERV9QICAgICAgICAgICAgICAgPSA0NCwKKyAgICBBS0VZQ09ERV9RICAgICAgICAgICAgICAgPSA0NSwKKyAgICBBS0VZQ09ERV9SICAgICAgICAgICAgICAgPSA0NiwKKyAgICBBS0VZQ09ERV9TICAgICAgICAgICAgICAgPSA0NywKKyAgICBBS0VZQ09ERV9UICAgICAgICAgICAgICAgPSA0OCwKKyAgICBBS0VZQ09ERV9VICAgICAgICAgICAgICAgPSA0OSwKKyAgICBBS0VZQ09ERV9WICAgICAgICAgICAgICAgPSA1MCwKKyAgICBBS0VZQ09ERV9XICAgICAgICAgICAgICAgPSA1MSwKKyAgICBBS0VZQ09ERV9YICAgICAgICAgICAgICAgPSA1MiwKKyAgICBBS0VZQ09ERV9ZICAgICAgICAgICAgICAgPSA1MywKKyAgICBBS0VZQ09ERV9aICAgICAgICAgICAgICAgPSA1NCwKKyAgICBBS0VZQ09ERV9DT01NQSAgICAgICAgICAgPSA1NSwKKyAgICBBS0VZQ09ERV9QRVJJT0QgICAgICAgICAgPSA1NiwKKyAgICBBS0VZQ09ERV9BTFRfTEVGVCAgICAgICAgPSA1NywKKyAgICBBS0VZQ09ERV9BTFRfUklHSFQgICAgICAgPSA1OCwKKyAgICBBS0VZQ09ERV9TSElGVF9MRUZUICAgICAgPSA1OSwKKyAgICBBS0VZQ09ERV9TSElGVF9SSUdIVCAgICAgPSA2MCwKKyAgICBBS0VZQ09ERV9UQUIgICAgICAgICAgICAgPSA2MSwKKyAgICBBS0VZQ09ERV9TUEFDRSAgICAgICAgICAgPSA2MiwKKyAgICBBS0VZQ09ERV9TWU0gICAgICAgICAgICAgPSA2MywKKyAgICBBS0VZQ09ERV9FWFBMT1JFUiAgICAgICAgPSA2NCwKKyAgICBBS0VZQ09ERV9FTlZFTE9QRSAgICAgICAgPSA2NSwKKyAgICBBS0VZQ09ERV9FTlRFUiAgICAgICAgICAgPSA2NiwKKyAgICBBS0VZQ09ERV9ERUwgICAgICAgICAgICAgPSA2NywKKyAgICBBS0VZQ09ERV9HUkFWRSAgICAgICAgICAgPSA2OCwKKyAgICBBS0VZQ09ERV9NSU5VUyAgICAgICAgICAgPSA2OSwKKyAgICBBS0VZQ09ERV9FUVVBTFMgICAgICAgICAgPSA3MCwKKyAgICBBS0VZQ09ERV9MRUZUX0JSQUNLRVQgICAgPSA3MSwKKyAgICBBS0VZQ09ERV9SSUdIVF9CUkFDS0VUICAgPSA3MiwKKyAgICBBS0VZQ09ERV9CQUNLU0xBU0ggICAgICAgPSA3MywKKyAgICBBS0VZQ09ERV9TRU1JQ09MT04gICAgICAgPSA3NCwKKyAgICBBS0VZQ09ERV9BUE9TVFJPUEhFICAgICAgPSA3NSwKKyAgICBBS0VZQ09ERV9TTEFTSCAgICAgICAgICAgPSA3NiwKKyAgICBBS0VZQ09ERV9BVCAgICAgICAgICAgICAgPSA3NywKKyAgICBBS0VZQ09ERV9OVU0gICAgICAgICAgICAgPSA3OCwKKyAgICBBS0VZQ09ERV9IRUFEU0VUSE9PSyAgICAgPSA3OSwKKyAgICBBS0VZQ09ERV9GT0NVUyAgICAgICAgICAgPSA4MCwgICAvLyAqQ2FtZXJhKiBmb2N1cworICAgIEFLRVlDT0RFX1BMVVMgICAgICAgICAgICA9IDgxLAorICAgIEFLRVlDT0RFX01FTlUgICAgICAgICAgICA9IDgyLAorICAgIEFLRVlDT0RFX05PVElGSUNBVElPTiAgICA9IDgzLAorICAgIEFLRVlDT0RFX1NFQVJDSCAgICAgICAgICA9IDg0LAorICAgIEFLRVlDT0RFX01FRElBX1BMQVlfUEFVU0U9IDg1LAorICAgIEFLRVlDT0RFX01FRElBX1NUT1AgICAgICA9IDg2LAorICAgIEFLRVlDT0RFX01FRElBX05FWFQgICAgICA9IDg3LAorICAgIEFLRVlDT0RFX01FRElBX1BSRVZJT1VTICA9IDg4LAorICAgIEFLRVlDT0RFX01FRElBX1JFV0lORCAgICA9IDg5LAorICAgIEFLRVlDT0RFX01FRElBX0ZBU1RfRk9SV0FSRCA9IDkwLAorICAgIEFLRVlDT0RFX01VVEUgICAgICAgICAgICA9IDkxLAorICAgIEFLRVlDT0RFX1BBR0VfVVAgICAgICAgICA9IDkyLAorICAgIEFLRVlDT0RFX1BBR0VfRE9XTiAgICAgICA9IDkzLAorICAgIEFLRVlDT0RFX1BJQ1RTWU1CT0xTICAgICA9IDk0LAorICAgIEFLRVlDT0RFX1NXSVRDSF9DSEFSU0VUICA9IDk1LAorICAgIEFLRVlDT0RFX0JVVFRPTl9BICAgICAgICA9IDk2LAorICAgIEFLRVlDT0RFX0JVVFRPTl9CICAgICAgICA9IDk3LAorICAgIEFLRVlDT0RFX0JVVFRPTl9DICAgICAgICA9IDk4LAorICAgIEFLRVlDT0RFX0JVVFRPTl9YICAgICAgICA9IDk5LAorICAgIEFLRVlDT0RFX0JVVFRPTl9ZICAgICAgICA9IDEwMCwKKyAgICBBS0VZQ09ERV9CVVRUT05fWiAgICAgICAgPSAxMDEsCisgICAgQUtFWUNPREVfQlVUVE9OX0wxICAgICAgID0gMTAyLAorICAgIEFLRVlDT0RFX0JVVFRPTl9SMSAgICAgICA9IDEwMywKKyAgICBBS0VZQ09ERV9CVVRUT05fTDIgICAgICAgPSAxMDQsCisgICAgQUtFWUNPREVfQlVUVE9OX1IyICAgICAgID0gMTA1LAorICAgIEFLRVlDT0RFX0JVVFRPTl9USFVNQkwgICA9IDEwNiwKKyAgICBBS0VZQ09ERV9CVVRUT05fVEhVTUJSICAgPSAxMDcsCisgICAgQUtFWUNPREVfQlVUVE9OX1NUQVJUICAgID0gMTA4LAorICAgIEFLRVlDT0RFX0JVVFRPTl9TRUxFQ1QgICA9IDEwOSwKKyAgICBBS0VZQ09ERV9CVVRUT05fTU9ERSAgICAgPSAxMTAsCisgICAgQUtFWUNPREVfRVNDQVBFICAgICAgICAgID0gMTExLAorICAgIEFLRVlDT0RFX0ZPUldBUkRfREVMICAgICA9IDExMiwKKyAgICBBS0VZQ09ERV9DVFJMX0xFRlQgICAgICAgPSAxMTMsCisgICAgQUtFWUNPREVfQ1RSTF9SSUdIVCAgICAgID0gMTE0LAorICAgIEFLRVlDT0RFX0NBUFNfTE9DSyAgICAgICA9IDExNSwKKyAgICBBS0VZQ09ERV9TQ1JPTExfTE9DSyAgICAgPSAxMTYsCisgICAgQUtFWUNPREVfTUVUQV9MRUZUICAgICAgID0gMTE3LAorICAgIEFLRVlDT0RFX01FVEFfUklHSFQgICAgICA9IDExOCwKKyAgICBBS0VZQ09ERV9GVU5DVElPTiAgICAgICAgPSAxMTksCisgICAgQUtFWUNPREVfU1lTUlEgICAgICAgICAgID0gMTIwLAorICAgIEFLRVlDT0RFX0JSRUFLICAgICAgICAgICA9IDEyMSwKKyAgICBBS0VZQ09ERV9NT1ZFX0hPTUUgICAgICAgPSAxMjIsCisgICAgQUtFWUNPREVfTU9WRV9FTkQgICAgICAgID0gMTIzLAorICAgIEFLRVlDT0RFX0lOU0VSVCAgICAgICAgICA9IDEyNCwKKyAgICBBS0VZQ09ERV9GT1JXQVJEICAgICAgICAgPSAxMjUsCisgICAgQUtFWUNPREVfTUVESUFfUExBWSAgICAgID0gMTI2LAorICAgIEFLRVlDT0RFX01FRElBX1BBVVNFICAgICA9IDEyNywKKyAgICBBS0VZQ09ERV9NRURJQV9DTE9TRSAgICAgPSAxMjgsCisgICAgQUtFWUNPREVfTUVESUFfRUpFQ1QgICAgID0gMTI5LAorICAgIEFLRVlDT0RFX01FRElBX1JFQ09SRCAgICA9IDEzMCwKKyAgICBBS0VZQ09ERV9GMSAgICAgICAgICAgICAgPSAxMzEsCisgICAgQUtFWUNPREVfRjIgICAgICAgICAgICAgID0gMTMyLAorICAgIEFLRVlDT0RFX0YzICAgICAgICAgICAgICA9IDEzMywKKyAgICBBS0VZQ09ERV9GNCAgICAgICAgICAgICAgPSAxMzQsCisgICAgQUtFWUNPREVfRjUgICAgICAgICAgICAgID0gMTM1LAorICAgIEFLRVlDT0RFX0Y2ICAgICAgICAgICAgICA9IDEzNiwKKyAgICBBS0VZQ09ERV9GNyAgICAgICAgICAgICAgPSAxMzcsCisgICAgQUtFWUNPREVfRjggICAgICAgICAgICAgID0gMTM4LAorICAgIEFLRVlDT0RFX0Y5ICAgICAgICAgICAgICA9IDEzOSwKKyAgICBBS0VZQ09ERV9GMTAgICAgICAgICAgICAgPSAxNDAsCisgICAgQUtFWUNPREVfRjExICAgICAgICAgICAgID0gMTQxLAorICAgIEFLRVlDT0RFX0YxMiAgICAgICAgICAgICA9IDE0MiwKKyAgICBBS0VZQ09ERV9OVU1fTE9DSyAgICAgICAgPSAxNDMsCisgICAgQUtFWUNPREVfTlVNUEFEXzAgICAgICAgID0gMTQ0LAorICAgIEFLRVlDT0RFX05VTVBBRF8xICAgICAgICA9IDE0NSwKKyAgICBBS0VZQ09ERV9OVU1QQURfMiAgICAgICAgPSAxNDYsCisgICAgQUtFWUNPREVfTlVNUEFEXzMgICAgICAgID0gMTQ3LAorICAgIEFLRVlDT0RFX05VTVBBRF80ICAgICAgICA9IDE0OCwKKyAgICBBS0VZQ09ERV9OVU1QQURfNSAgICAgICAgPSAxNDksCisgICAgQUtFWUNPREVfTlVNUEFEXzYgICAgICAgID0gMTUwLAorICAgIEFLRVlDT0RFX05VTVBBRF83ICAgICAgICA9IDE1MSwKKyAgICBBS0VZQ09ERV9OVU1QQURfOCAgICAgICAgPSAxNTIsCisgICAgQUtFWUNPREVfTlVNUEFEXzkgICAgICAgID0gMTUzLAorICAgIEFLRVlDT0RFX05VTVBBRF9ESVZJREUgICA9IDE1NCwKKyAgICBBS0VZQ09ERV9OVU1QQURfTVVMVElQTFkgPSAxNTUsCisgICAgQUtFWUNPREVfTlVNUEFEX1NVQlRSQUNUID0gMTU2LAorICAgIEFLRVlDT0RFX05VTVBBRF9BREQgICAgICA9IDE1NywKKyAgICBBS0VZQ09ERV9OVU1QQURfRE9UICAgICAgPSAxNTgsCisgICAgQUtFWUNPREVfTlVNUEFEX0NPTU1BICAgID0gMTU5LAorICAgIEFLRVlDT0RFX05VTVBBRF9FTlRFUiAgICA9IDE2MCwKKyAgICBBS0VZQ09ERV9OVU1QQURfRVFVQUxTICAgPSAxNjEsCisgICAgQUtFWUNPREVfTlVNUEFEX0xFRlRfUEFSRU4gPSAxNjIsCisgICAgQUtFWUNPREVfTlVNUEFEX1JJR0hUX1BBUkVOID0gMTYzLAorICAgIEFLRVlDT0RFX1ZPTFVNRV9NVVRFICAgICA9IDE2NCwKKyAgICBBS0VZQ09ERV9JTkZPICAgICAgICAgICAgPSAxNjUsCisgICAgQUtFWUNPREVfQ0hBTk5FTF9VUCAgICAgID0gMTY2LAorICAgIEFLRVlDT0RFX0NIQU5ORUxfRE9XTiAgICA9IDE2NywKKyAgICBBS0VZQ09ERV9aT09NX0lOICAgICAgICAgPSAxNjgsCisgICAgQUtFWUNPREVfWk9PTV9PVVQgICAgICAgID0gMTY5LAorICAgIEFLRVlDT0RFX1RWICAgICAgICAgICAgICA9IDE3MCwKKyAgICBBS0VZQ09ERV9XSU5ET1cgICAgICAgICAgPSAxNzEsCisgICAgQUtFWUNPREVfR1VJREUgICAgICAgICAgID0gMTcyLAorICAgIEFLRVlDT0RFX0RWUiAgICAgICAgICAgICA9IDE3MywKKyAgICBBS0VZQ09ERV9CT09LTUFSSyAgICAgICAgPSAxNzQsCisgICAgQUtFWUNPREVfQ0FQVElPTlMgICAgICAgID0gMTc1LAorICAgIEFLRVlDT0RFX1NFVFRJTkdTICAgICAgICA9IDE3NiwKKyAgICBBS0VZQ09ERV9UVl9QT1dFUiAgICAgICAgPSAxNzcsCisgICAgQUtFWUNPREVfVFZfSU5QVVQgICAgICAgID0gMTc4LAorICAgIEFLRVlDT0RFX1NUQl9QT1dFUiAgICAgICA9IDE3OSwKKyAgICBBS0VZQ09ERV9TVEJfSU5QVVQgICAgICAgPSAxODAsCisgICAgQUtFWUNPREVfQVZSX1BPV0VSICAgICAgID0gMTgxLAorICAgIEFLRVlDT0RFX0FWUl9JTlBVVCAgICAgICA9IDE4MiwKKyAgICBBS0VZQ09ERV9QUk9HX1JFRCAgICAgICAgPSAxODMsCisgICAgQUtFWUNPREVfUFJPR19HUkVFTiAgICAgID0gMTg0LAorICAgIEFLRVlDT0RFX1BST0dfWUVMTE9XICAgICA9IDE4NSwKKyAgICBBS0VZQ09ERV9QUk9HX0JMVUUgICAgICAgPSAxODYsCisgICAgQUtFWUNPREVfQVBQX1NXSVRDSCAgICAgID0gMTg3LAorICAgIEFLRVlDT0RFX0JVVFRPTl8xICAgICAgICA9IDE4OCwKKyAgICBBS0VZQ09ERV9CVVRUT05fMiAgICAgICAgPSAxODksCisgICAgQUtFWUNPREVfQlVUVE9OXzMgICAgICAgID0gMTkwLAorICAgIEFLRVlDT0RFX0JVVFRPTl80ICAgICAgICA9IDE5MSwKKyAgICBBS0VZQ09ERV9CVVRUT05fNSAgICAgICAgPSAxOTIsCisgICAgQUtFWUNPREVfQlVUVE9OXzYgICAgICAgID0gMTkzLAorICAgIEFLRVlDT0RFX0JVVFRPTl83ICAgICAgICA9IDE5NCwKKyAgICBBS0VZQ09ERV9CVVRUT05fOCAgICAgICAgPSAxOTUsCisgICAgQUtFWUNPREVfQlVUVE9OXzkgICAgICAgID0gMTk2LAorICAgIEFLRVlDT0RFX0JVVFRPTl8xMCAgICAgICA9IDE5NywKKyAgICBBS0VZQ09ERV9CVVRUT05fMTEgICAgICAgPSAxOTgsCisgICAgQUtFWUNPREVfQlVUVE9OXzEyICAgICAgID0gMTk5LAorICAgIEFLRVlDT0RFX0JVVFRPTl8xMyAgICAgICA9IDIwMCwKKyAgICBBS0VZQ09ERV9CVVRUT05fMTQgICAgICAgPSAyMDEsCisgICAgQUtFWUNPREVfQlVUVE9OXzE1ICAgICAgID0gMjAyLAorICAgIEFLRVlDT0RFX0JVVFRPTl8xNiAgICAgICA9IDIwMywKKyAgICBBS0VZQ09ERV9MQU5HVUFHRV9TV0lUQ0ggPSAyMDQsCisgICAgQUtFWUNPREVfTUFOTkVSX01PREUgICAgID0gMjA1LAorICAgIEFLRVlDT0RFXzNEX01PREUgICAgICAgICA9IDIwNiwKKyAgICBBS0VZQ09ERV9DT05UQUNUUyAgICAgICAgPSAyMDcsCisgICAgQUtFWUNPREVfQ0FMRU5EQVIgICAgICAgID0gMjA4LAorICAgIEFLRVlDT0RFX01VU0lDICAgICAgICAgICA9IDIwOSwKKyAgICBBS0VZQ09ERV9DQUxDVUxBVE9SICAgICAgPSAyMTAsCisgICAgQUtFWUNPREVfWkVOS0FLVV9IQU5LQUtVID0gMjExLAorICAgIEFLRVlDT0RFX0VJU1UgICAgICAgICAgICA9IDIxMiwKKyAgICBBS0VZQ09ERV9NVUhFTktBTiAgICAgICAgPSAyMTMsCisgICAgQUtFWUNPREVfSEVOS0FOICAgICAgICAgID0gMjE0LAorICAgIEFLRVlDT0RFX0tBVEFLQU5BX0hJUkFHQU5BID0gMjE1LAorICAgIEFLRVlDT0RFX1lFTiAgICAgICAgICAgICA9IDIxNiwKKyAgICBBS0VZQ09ERV9STyAgICAgICAgICAgICAgPSAyMTcsCisgICAgQUtFWUNPREVfS0FOQSAgICAgICAgICAgID0gMjE4LAorICAgIEFLRVlDT0RFX0FTU0lTVCAgICAgICAgICA9IDIxOSwKKworICAgIC8vIE5PVEU6IElmIHlvdSBhZGQgYSBuZXcga2V5Y29kZSBoZXJlIHlvdSBtdXN0IGFsc28gYWRkIGl0IHRvIHNldmVyYWwgb3RoZXIgZmlsZXMuCisgICAgLy8gICAgICAgUmVmZXIgdG8gZnJhbWV3b3Jrcy9iYXNlL2NvcmUvamF2YS9hbmRyb2lkL3ZpZXcvS2V5RXZlbnQuamF2YSBmb3IgdGhlIGZ1bGwgbGlzdC4KK307CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvLyBfQU5EUk9JRF9LRVlDT0RFU19ICmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTYvaW5jbHVkZS9hbmRyb2lkL25hdGl2ZV93aW5kb3dfam5pLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTYvaW5jbHVkZS9hbmRyb2lkL25hdGl2ZV93aW5kb3dfam5pLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjllNzJlZgotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNi9pbmNsdWRlL2FuZHJvaWQvbmF0aXZlX3dpbmRvd19qbmkuaApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX05BVElWRV9XSU5ET1dfSk5JX0gKKyNkZWZpbmUgQU5EUk9JRF9OQVRJVkVfV0lORE9XX0pOSV9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL25hdGl2ZV93aW5kb3cuaD4KKworI2luY2x1ZGUgPGpuaS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qKgorICogUmV0dXJuIHRoZSBBTmF0aXZlV2luZG93IGFzc29jaWF0ZWQgd2l0aCBhIEphdmEgU3VyZmFjZSBvYmplY3QsCisgKiBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBpdCB0aHJvdWdoIG5hdGl2ZSBjb2RlLiAgVGhpcyBhY3F1aXJlcyBhIHJlZmVyZW5jZQorICogb24gdGhlIEFOYXRpdmVXaW5kb3cgdGhhdCBpcyByZXR1cm5lZDsgYmUgc3VyZSB0byB1c2UgQU5hdGl2ZVdpbmRvd19yZWxlYXNlKCkKKyAqIHdoZW4gZG9uZSB3aXRoIGl0IHNvIHRoYXQgaXQgZG9lc24ndCBsZWFrLgorICovCitBTmF0aXZlV2luZG93KiBBTmF0aXZlV2luZG93X2Zyb21TdXJmYWNlKEpOSUVudiogZW52LCBqb2JqZWN0IHN1cmZhY2UpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK307CisjZW5kaWYKKworI2VuZGlmIC8vIEFORFJPSURfTkFUSVZFX1dJTkRPV19ICmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTYvaW5jbHVkZS9hbmRyb2lkL3JlY3QuaCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNi9pbmNsdWRlL2FuZHJvaWQvcmVjdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjZDQyYTkKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTYvaW5jbHVkZS9hbmRyb2lkL3JlY3QuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworCisjaWZuZGVmIEFORFJPSURfUkVDVF9ICisjZGVmaW5lIEFORFJPSURfUkVDVF9ICisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCit0eXBlZGVmIHN0cnVjdCBBUmVjdCB7CisjaWZkZWYgX19jcGx1c3BsdXMKKyAgICB0eXBlZGVmIGludDMyX3QgdmFsdWVfdHlwZTsKKyNlbmRpZgorICAgIGludDMyX3QgbGVmdDsKKyAgICBpbnQzMl90IHRvcDsKKyAgICBpbnQzMl90IHJpZ2h0OworICAgIGludDMyX3QgYm90dG9tOworfSBBUmVjdDsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9OworI2VuZGlmCisKKyNlbmRpZiAvLyBBTkRST0lEX1JFQ1RfSApkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE3L2FyY2gtYXJtL3N5bWJvbHMvbGliYW5kcm9pZC5zby5mdW5jdGlvbnMudHh0IGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE3L2FyY2gtYXJtL3N5bWJvbHMvbGliYW5kcm9pZC5zby5mdW5jdGlvbnMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzOWU3Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTcvYXJjaC1hcm0vc3ltYm9scy9saWJhbmRyb2lkLnNvLmZ1bmN0aW9ucy50eHQKQEAgLTAsMCArMSwxNzMgQEAKK0FBc3NldF9jbG9zZQorQUFzc2V0RGlyX2Nsb3NlCitBQXNzZXREaXJfZ2V0TmV4dEZpbGVOYW1lCitBQXNzZXREaXJfcmV3aW5kCitBQXNzZXRfZ2V0QnVmZmVyCitBQXNzZXRfZ2V0TGVuZ3RoCitBQXNzZXRfZ2V0TGVuZ3RoNjQKK0FBc3NldF9nZXRSZW1haW5pbmdMZW5ndGgKK0FBc3NldF9nZXRSZW1haW5pbmdMZW5ndGg2NAorQUFzc2V0X2lzQWxsb2NhdGVkCitBQXNzZXRNYW5hZ2VyX2Zyb21KYXZhCitBQXNzZXRNYW5hZ2VyX29wZW4KK0FBc3NldE1hbmFnZXJfb3BlbkRpcgorQUFzc2V0X29wZW5GaWxlRGVzY3JpcHRvcgorQUFzc2V0X29wZW5GaWxlRGVzY3JpcHRvcjY0CitBQXNzZXRfcmVhZAorQUFzc2V0X3NlZWsKK0FBc3NldF9zZWVrNjQKK0FDb25maWd1cmF0aW9uX2NvcHkKK0FDb25maWd1cmF0aW9uX2RlbGV0ZQorQUNvbmZpZ3VyYXRpb25fZGlmZgorQUNvbmZpZ3VyYXRpb25fZnJvbUFzc2V0TWFuYWdlcgorQUNvbmZpZ3VyYXRpb25fZ2V0Q291bnRyeQorQUNvbmZpZ3VyYXRpb25fZ2V0RGVuc2l0eQorQUNvbmZpZ3VyYXRpb25fZ2V0S2V5Ym9hcmQKK0FDb25maWd1cmF0aW9uX2dldEtleXNIaWRkZW4KK0FDb25maWd1cmF0aW9uX2dldExhbmd1YWdlCitBQ29uZmlndXJhdGlvbl9nZXRMYXlvdXREaXJlY3Rpb24KK0FDb25maWd1cmF0aW9uX2dldE1jYworQUNvbmZpZ3VyYXRpb25fZ2V0TW5jCitBQ29uZmlndXJhdGlvbl9nZXROYXZIaWRkZW4KK0FDb25maWd1cmF0aW9uX2dldE5hdmlnYXRpb24KK0FDb25maWd1cmF0aW9uX2dldE9yaWVudGF0aW9uCitBQ29uZmlndXJhdGlvbl9nZXRTY3JlZW5IZWlnaHREcAorQUNvbmZpZ3VyYXRpb25fZ2V0U2NyZWVuTG9uZworQUNvbmZpZ3VyYXRpb25fZ2V0U2NyZWVuU2l6ZQorQUNvbmZpZ3VyYXRpb25fZ2V0U2NyZWVuV2lkdGhEcAorQUNvbmZpZ3VyYXRpb25fZ2V0U2RrVmVyc2lvbgorQUNvbmZpZ3VyYXRpb25fZ2V0U21hbGxlc3RTY3JlZW5XaWR0aERwCitBQ29uZmlndXJhdGlvbl9nZXRUb3VjaHNjcmVlbgorQUNvbmZpZ3VyYXRpb25fZ2V0VWlNb2RlTmlnaHQKK0FDb25maWd1cmF0aW9uX2dldFVpTW9kZVR5cGUKK0FDb25maWd1cmF0aW9uX2lzQmV0dGVyVGhhbgorQUNvbmZpZ3VyYXRpb25fbWF0Y2gKK0FDb25maWd1cmF0aW9uX25ldworQUNvbmZpZ3VyYXRpb25fc2V0Q291bnRyeQorQUNvbmZpZ3VyYXRpb25fc2V0RGVuc2l0eQorQUNvbmZpZ3VyYXRpb25fc2V0S2V5Ym9hcmQKK0FDb25maWd1cmF0aW9uX3NldEtleXNIaWRkZW4KK0FDb25maWd1cmF0aW9uX3NldExhbmd1YWdlCitBQ29uZmlndXJhdGlvbl9zZXRMYXlvdXREaXJlY3Rpb24KK0FDb25maWd1cmF0aW9uX3NldE1jYworQUNvbmZpZ3VyYXRpb25fc2V0TW5jCitBQ29uZmlndXJhdGlvbl9zZXROYXZIaWRkZW4KK0FDb25maWd1cmF0aW9uX3NldE5hdmlnYXRpb24KK0FDb25maWd1cmF0aW9uX3NldE9yaWVudGF0aW9uCitBQ29uZmlndXJhdGlvbl9zZXRTY3JlZW5IZWlnaHREcAorQUNvbmZpZ3VyYXRpb25fc2V0U2NyZWVuTG9uZworQUNvbmZpZ3VyYXRpb25fc2V0U2NyZWVuU2l6ZQorQUNvbmZpZ3VyYXRpb25fc2V0U2NyZWVuV2lkdGhEcAorQUNvbmZpZ3VyYXRpb25fc2V0U2RrVmVyc2lvbgorQUNvbmZpZ3VyYXRpb25fc2V0U21hbGxlc3RTY3JlZW5XaWR0aERwCitBQ29uZmlndXJhdGlvbl9zZXRUb3VjaHNjcmVlbgorQUNvbmZpZ3VyYXRpb25fc2V0VWlNb2RlTmlnaHQKK0FDb25maWd1cmF0aW9uX3NldFVpTW9kZVR5cGUKK0FJbnB1dEV2ZW50X2dldERldmljZUlkCitBSW5wdXRFdmVudF9nZXRTb3VyY2UKK0FJbnB1dEV2ZW50X2dldFR5cGUKK0FJbnB1dFF1ZXVlX2F0dGFjaExvb3BlcgorQUlucHV0UXVldWVfZGV0YWNoTG9vcGVyCitBSW5wdXRRdWV1ZV9maW5pc2hFdmVudAorQUlucHV0UXVldWVfZ2V0RXZlbnQKK0FJbnB1dFF1ZXVlX2hhc0V2ZW50cworQUlucHV0UXVldWVfcHJlRGlzcGF0Y2hFdmVudAorQUtleUV2ZW50X2dldEFjdGlvbgorQUtleUV2ZW50X2dldERvd25UaW1lCitBS2V5RXZlbnRfZ2V0RXZlbnRUaW1lCitBS2V5RXZlbnRfZ2V0RmxhZ3MKK0FLZXlFdmVudF9nZXRLZXlDb2RlCitBS2V5RXZlbnRfZ2V0TWV0YVN0YXRlCitBS2V5RXZlbnRfZ2V0UmVwZWF0Q291bnQKK0FLZXlFdmVudF9nZXRTY2FuQ29kZQorQUxvb3Blcl9hY3F1aXJlCitBTG9vcGVyX2FkZEZkCitBTG9vcGVyX2ZvclRocmVhZAorQUxvb3Blcl9wb2xsQWxsCitBTG9vcGVyX3BvbGxPbmNlCitBTG9vcGVyX3ByZXBhcmUKK0FMb29wZXJfcmVsZWFzZQorQUxvb3Blcl9yZW1vdmVGZAorQUxvb3Blcl93YWtlCitBTW90aW9uRXZlbnRfZ2V0QWN0aW9uCitBTW90aW9uRXZlbnRfZ2V0QXhpc1ZhbHVlCitBTW90aW9uRXZlbnRfZ2V0QnV0dG9uU3RhdGUKK0FNb3Rpb25FdmVudF9nZXREb3duVGltZQorQU1vdGlvbkV2ZW50X2dldEVkZ2VGbGFncworQU1vdGlvbkV2ZW50X2dldEV2ZW50VGltZQorQU1vdGlvbkV2ZW50X2dldEZsYWdzCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbEF4aXNWYWx1ZQorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxFdmVudFRpbWUKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsT3JpZW50YXRpb24KK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsUHJlc3N1cmUKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsUmF3WAorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxSYXdZCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFNpemUKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsVG9vbE1ham9yCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFRvb2xNaW5vcgorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxUb3VjaE1ham9yCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFRvdWNoTWlub3IKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsWAorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxZCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yeVNpemUKK0FNb3Rpb25FdmVudF9nZXRNZXRhU3RhdGUKK0FNb3Rpb25FdmVudF9nZXRPcmllbnRhdGlvbgorQU1vdGlvbkV2ZW50X2dldFBvaW50ZXJDb3VudAorQU1vdGlvbkV2ZW50X2dldFBvaW50ZXJJZAorQU1vdGlvbkV2ZW50X2dldFByZXNzdXJlCitBTW90aW9uRXZlbnRfZ2V0UmF3WAorQU1vdGlvbkV2ZW50X2dldFJhd1kKK0FNb3Rpb25FdmVudF9nZXRTaXplCitBTW90aW9uRXZlbnRfZ2V0VG9vbE1ham9yCitBTW90aW9uRXZlbnRfZ2V0VG9vbE1pbm9yCitBTW90aW9uRXZlbnRfZ2V0VG9vbFR5cGUKK0FNb3Rpb25FdmVudF9nZXRUb3VjaE1ham9yCitBTW90aW9uRXZlbnRfZ2V0VG91Y2hNaW5vcgorQU1vdGlvbkV2ZW50X2dldFgKK0FNb3Rpb25FdmVudF9nZXRYT2Zmc2V0CitBTW90aW9uRXZlbnRfZ2V0WFByZWNpc2lvbgorQU1vdGlvbkV2ZW50X2dldFkKK0FNb3Rpb25FdmVudF9nZXRZT2Zmc2V0CitBTW90aW9uRXZlbnRfZ2V0WVByZWNpc2lvbgorQU5hdGl2ZUFjdGl2aXR5X2ZpbmlzaAorQU5hdGl2ZUFjdGl2aXR5X2hpZGVTb2Z0SW5wdXQKK0FOYXRpdmVBY3Rpdml0eV9zZXRXaW5kb3dGbGFncworQU5hdGl2ZUFjdGl2aXR5X3NldFdpbmRvd0Zvcm1hdAorQU5hdGl2ZUFjdGl2aXR5X3Nob3dTb2Z0SW5wdXQKK0FOYXRpdmVXaW5kb3dfYWNxdWlyZQorQU5hdGl2ZVdpbmRvd19mcm9tU3VyZmFjZQorQU5hdGl2ZVdpbmRvd19nZXRGb3JtYXQKK0FOYXRpdmVXaW5kb3dfZ2V0SGVpZ2h0CitBTmF0aXZlV2luZG93X2dldFdpZHRoCitBTmF0aXZlV2luZG93X2xvY2sKK0FOYXRpdmVXaW5kb3dfcmVsZWFzZQorQU5hdGl2ZVdpbmRvd19zZXRCdWZmZXJzR2VvbWV0cnkKK0FOYXRpdmVXaW5kb3dfdW5sb2NrQW5kUG9zdAorYW5kcm9pZF9nZXRUdHNFbmdpbmUKK0FPYmJJbmZvX2RlbGV0ZQorQU9iYkluZm9fZ2V0RmxhZ3MKK0FPYmJJbmZvX2dldFBhY2thZ2VOYW1lCitBT2JiSW5mb19nZXRWZXJzaW9uCitBT2JiU2Nhbm5lcl9nZXRPYmJJbmZvCitBU2Vuc29yRXZlbnRRdWV1ZV9kaXNhYmxlU2Vuc29yCitBU2Vuc29yRXZlbnRRdWV1ZV9lbmFibGVTZW5zb3IKK0FTZW5zb3JFdmVudFF1ZXVlX2dldEV2ZW50cworQVNlbnNvckV2ZW50UXVldWVfaGFzRXZlbnRzCitBU2Vuc29yRXZlbnRRdWV1ZV9zZXRFdmVudFJhdGUKK0FTZW5zb3JfZ2V0TWluRGVsYXkKK0FTZW5zb3JfZ2V0TmFtZQorQVNlbnNvcl9nZXRSZXNvbHV0aW9uCitBU2Vuc29yX2dldFR5cGUKK0FTZW5zb3JfZ2V0VmVuZG9yCitBU2Vuc29yTWFuYWdlcl9jcmVhdGVFdmVudFF1ZXVlCitBU2Vuc29yTWFuYWdlcl9kZXN0cm95RXZlbnRRdWV1ZQorQVNlbnNvck1hbmFnZXJfZ2V0RGVmYXVsdFNlbnNvcgorQVNlbnNvck1hbmFnZXJfZ2V0SW5zdGFuY2UKK0FTZW5zb3JNYW5hZ2VyX2dldFNlbnNvckxpc3QKK0FTdG9yYWdlTWFuYWdlcl9kZWxldGUKK0FTdG9yYWdlTWFuYWdlcl9nZXRNb3VudGVkT2JiUGF0aAorQVN0b3JhZ2VNYW5hZ2VyX2lzT2JiTW91bnRlZAorQVN0b3JhZ2VNYW5hZ2VyX21vdW50T2JiCitBU3RvcmFnZU1hbmFnZXJfbmV3CitBU3RvcmFnZU1hbmFnZXJfdW5tb3VudE9iYgorZ2V0VHRzRW5naW5lCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTcvYXJjaC1hcm0vc3ltYm9scy9saWJhbmRyb2lkLnNvLnZhcmlhYmxlcy50eHQgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTcvYXJjaC1hcm0vc3ltYm9scy9saWJhbmRyb2lkLnNvLnZhcmlhYmxlcy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGIxMzc4OQotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNy9hcmNoLWFybS9zeW1ib2xzL2xpYmFuZHJvaWQuc28udmFyaWFibGVzLnR4dApAQCAtMCwwICsxIEBACisKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNy9hcmNoLW1pcHMvc3ltYm9scy9saWJhbmRyb2lkLnNvLmZ1bmN0aW9ucy50eHQgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTcvYXJjaC1taXBzL3N5bWJvbHMvbGliYW5kcm9pZC5zby5mdW5jdGlvbnMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzOWU3Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTcvYXJjaC1taXBzL3N5bWJvbHMvbGliYW5kcm9pZC5zby5mdW5jdGlvbnMudHh0CkBAIC0wLDAgKzEsMTczIEBACitBQXNzZXRfY2xvc2UKK0FBc3NldERpcl9jbG9zZQorQUFzc2V0RGlyX2dldE5leHRGaWxlTmFtZQorQUFzc2V0RGlyX3Jld2luZAorQUFzc2V0X2dldEJ1ZmZlcgorQUFzc2V0X2dldExlbmd0aAorQUFzc2V0X2dldExlbmd0aDY0CitBQXNzZXRfZ2V0UmVtYWluaW5nTGVuZ3RoCitBQXNzZXRfZ2V0UmVtYWluaW5nTGVuZ3RoNjQKK0FBc3NldF9pc0FsbG9jYXRlZAorQUFzc2V0TWFuYWdlcl9mcm9tSmF2YQorQUFzc2V0TWFuYWdlcl9vcGVuCitBQXNzZXRNYW5hZ2VyX29wZW5EaXIKK0FBc3NldF9vcGVuRmlsZURlc2NyaXB0b3IKK0FBc3NldF9vcGVuRmlsZURlc2NyaXB0b3I2NAorQUFzc2V0X3JlYWQKK0FBc3NldF9zZWVrCitBQXNzZXRfc2VlazY0CitBQ29uZmlndXJhdGlvbl9jb3B5CitBQ29uZmlndXJhdGlvbl9kZWxldGUKK0FDb25maWd1cmF0aW9uX2RpZmYKK0FDb25maWd1cmF0aW9uX2Zyb21Bc3NldE1hbmFnZXIKK0FDb25maWd1cmF0aW9uX2dldENvdW50cnkKK0FDb25maWd1cmF0aW9uX2dldERlbnNpdHkKK0FDb25maWd1cmF0aW9uX2dldEtleWJvYXJkCitBQ29uZmlndXJhdGlvbl9nZXRLZXlzSGlkZGVuCitBQ29uZmlndXJhdGlvbl9nZXRMYW5ndWFnZQorQUNvbmZpZ3VyYXRpb25fZ2V0TGF5b3V0RGlyZWN0aW9uCitBQ29uZmlndXJhdGlvbl9nZXRNY2MKK0FDb25maWd1cmF0aW9uX2dldE1uYworQUNvbmZpZ3VyYXRpb25fZ2V0TmF2SGlkZGVuCitBQ29uZmlndXJhdGlvbl9nZXROYXZpZ2F0aW9uCitBQ29uZmlndXJhdGlvbl9nZXRPcmllbnRhdGlvbgorQUNvbmZpZ3VyYXRpb25fZ2V0U2NyZWVuSGVpZ2h0RHAKK0FDb25maWd1cmF0aW9uX2dldFNjcmVlbkxvbmcKK0FDb25maWd1cmF0aW9uX2dldFNjcmVlblNpemUKK0FDb25maWd1cmF0aW9uX2dldFNjcmVlbldpZHRoRHAKK0FDb25maWd1cmF0aW9uX2dldFNka1ZlcnNpb24KK0FDb25maWd1cmF0aW9uX2dldFNtYWxsZXN0U2NyZWVuV2lkdGhEcAorQUNvbmZpZ3VyYXRpb25fZ2V0VG91Y2hzY3JlZW4KK0FDb25maWd1cmF0aW9uX2dldFVpTW9kZU5pZ2h0CitBQ29uZmlndXJhdGlvbl9nZXRVaU1vZGVUeXBlCitBQ29uZmlndXJhdGlvbl9pc0JldHRlclRoYW4KK0FDb25maWd1cmF0aW9uX21hdGNoCitBQ29uZmlndXJhdGlvbl9uZXcKK0FDb25maWd1cmF0aW9uX3NldENvdW50cnkKK0FDb25maWd1cmF0aW9uX3NldERlbnNpdHkKK0FDb25maWd1cmF0aW9uX3NldEtleWJvYXJkCitBQ29uZmlndXJhdGlvbl9zZXRLZXlzSGlkZGVuCitBQ29uZmlndXJhdGlvbl9zZXRMYW5ndWFnZQorQUNvbmZpZ3VyYXRpb25fc2V0TGF5b3V0RGlyZWN0aW9uCitBQ29uZmlndXJhdGlvbl9zZXRNY2MKK0FDb25maWd1cmF0aW9uX3NldE1uYworQUNvbmZpZ3VyYXRpb25fc2V0TmF2SGlkZGVuCitBQ29uZmlndXJhdGlvbl9zZXROYXZpZ2F0aW9uCitBQ29uZmlndXJhdGlvbl9zZXRPcmllbnRhdGlvbgorQUNvbmZpZ3VyYXRpb25fc2V0U2NyZWVuSGVpZ2h0RHAKK0FDb25maWd1cmF0aW9uX3NldFNjcmVlbkxvbmcKK0FDb25maWd1cmF0aW9uX3NldFNjcmVlblNpemUKK0FDb25maWd1cmF0aW9uX3NldFNjcmVlbldpZHRoRHAKK0FDb25maWd1cmF0aW9uX3NldFNka1ZlcnNpb24KK0FDb25maWd1cmF0aW9uX3NldFNtYWxsZXN0U2NyZWVuV2lkdGhEcAorQUNvbmZpZ3VyYXRpb25fc2V0VG91Y2hzY3JlZW4KK0FDb25maWd1cmF0aW9uX3NldFVpTW9kZU5pZ2h0CitBQ29uZmlndXJhdGlvbl9zZXRVaU1vZGVUeXBlCitBSW5wdXRFdmVudF9nZXREZXZpY2VJZAorQUlucHV0RXZlbnRfZ2V0U291cmNlCitBSW5wdXRFdmVudF9nZXRUeXBlCitBSW5wdXRRdWV1ZV9hdHRhY2hMb29wZXIKK0FJbnB1dFF1ZXVlX2RldGFjaExvb3BlcgorQUlucHV0UXVldWVfZmluaXNoRXZlbnQKK0FJbnB1dFF1ZXVlX2dldEV2ZW50CitBSW5wdXRRdWV1ZV9oYXNFdmVudHMKK0FJbnB1dFF1ZXVlX3ByZURpc3BhdGNoRXZlbnQKK0FLZXlFdmVudF9nZXRBY3Rpb24KK0FLZXlFdmVudF9nZXREb3duVGltZQorQUtleUV2ZW50X2dldEV2ZW50VGltZQorQUtleUV2ZW50X2dldEZsYWdzCitBS2V5RXZlbnRfZ2V0S2V5Q29kZQorQUtleUV2ZW50X2dldE1ldGFTdGF0ZQorQUtleUV2ZW50X2dldFJlcGVhdENvdW50CitBS2V5RXZlbnRfZ2V0U2NhbkNvZGUKK0FMb29wZXJfYWNxdWlyZQorQUxvb3Blcl9hZGRGZAorQUxvb3Blcl9mb3JUaHJlYWQKK0FMb29wZXJfcG9sbEFsbAorQUxvb3Blcl9wb2xsT25jZQorQUxvb3Blcl9wcmVwYXJlCitBTG9vcGVyX3JlbGVhc2UKK0FMb29wZXJfcmVtb3ZlRmQKK0FMb29wZXJfd2FrZQorQU1vdGlvbkV2ZW50X2dldEFjdGlvbgorQU1vdGlvbkV2ZW50X2dldEF4aXNWYWx1ZQorQU1vdGlvbkV2ZW50X2dldEJ1dHRvblN0YXRlCitBTW90aW9uRXZlbnRfZ2V0RG93blRpbWUKK0FNb3Rpb25FdmVudF9nZXRFZGdlRmxhZ3MKK0FNb3Rpb25FdmVudF9nZXRFdmVudFRpbWUKK0FNb3Rpb25FdmVudF9nZXRGbGFncworQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxBeGlzVmFsdWUKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsRXZlbnRUaW1lCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbE9yaWVudGF0aW9uCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFByZXNzdXJlCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFJhd1gKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsUmF3WQorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxTaXplCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFRvb2xNYWpvcgorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxUb29sTWlub3IKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsVG91Y2hNYWpvcgorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxUb3VjaE1pbm9yCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFgKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsWQorQU1vdGlvbkV2ZW50X2dldEhpc3RvcnlTaXplCitBTW90aW9uRXZlbnRfZ2V0TWV0YVN0YXRlCitBTW90aW9uRXZlbnRfZ2V0T3JpZW50YXRpb24KK0FNb3Rpb25FdmVudF9nZXRQb2ludGVyQ291bnQKK0FNb3Rpb25FdmVudF9nZXRQb2ludGVySWQKK0FNb3Rpb25FdmVudF9nZXRQcmVzc3VyZQorQU1vdGlvbkV2ZW50X2dldFJhd1gKK0FNb3Rpb25FdmVudF9nZXRSYXdZCitBTW90aW9uRXZlbnRfZ2V0U2l6ZQorQU1vdGlvbkV2ZW50X2dldFRvb2xNYWpvcgorQU1vdGlvbkV2ZW50X2dldFRvb2xNaW5vcgorQU1vdGlvbkV2ZW50X2dldFRvb2xUeXBlCitBTW90aW9uRXZlbnRfZ2V0VG91Y2hNYWpvcgorQU1vdGlvbkV2ZW50X2dldFRvdWNoTWlub3IKK0FNb3Rpb25FdmVudF9nZXRYCitBTW90aW9uRXZlbnRfZ2V0WE9mZnNldAorQU1vdGlvbkV2ZW50X2dldFhQcmVjaXNpb24KK0FNb3Rpb25FdmVudF9nZXRZCitBTW90aW9uRXZlbnRfZ2V0WU9mZnNldAorQU1vdGlvbkV2ZW50X2dldFlQcmVjaXNpb24KK0FOYXRpdmVBY3Rpdml0eV9maW5pc2gKK0FOYXRpdmVBY3Rpdml0eV9oaWRlU29mdElucHV0CitBTmF0aXZlQWN0aXZpdHlfc2V0V2luZG93RmxhZ3MKK0FOYXRpdmVBY3Rpdml0eV9zZXRXaW5kb3dGb3JtYXQKK0FOYXRpdmVBY3Rpdml0eV9zaG93U29mdElucHV0CitBTmF0aXZlV2luZG93X2FjcXVpcmUKK0FOYXRpdmVXaW5kb3dfZnJvbVN1cmZhY2UKK0FOYXRpdmVXaW5kb3dfZ2V0Rm9ybWF0CitBTmF0aXZlV2luZG93X2dldEhlaWdodAorQU5hdGl2ZVdpbmRvd19nZXRXaWR0aAorQU5hdGl2ZVdpbmRvd19sb2NrCitBTmF0aXZlV2luZG93X3JlbGVhc2UKK0FOYXRpdmVXaW5kb3dfc2V0QnVmZmVyc0dlb21ldHJ5CitBTmF0aXZlV2luZG93X3VubG9ja0FuZFBvc3QKK2FuZHJvaWRfZ2V0VHRzRW5naW5lCitBT2JiSW5mb19kZWxldGUKK0FPYmJJbmZvX2dldEZsYWdzCitBT2JiSW5mb19nZXRQYWNrYWdlTmFtZQorQU9iYkluZm9fZ2V0VmVyc2lvbgorQU9iYlNjYW5uZXJfZ2V0T2JiSW5mbworQVNlbnNvckV2ZW50UXVldWVfZGlzYWJsZVNlbnNvcgorQVNlbnNvckV2ZW50UXVldWVfZW5hYmxlU2Vuc29yCitBU2Vuc29yRXZlbnRRdWV1ZV9nZXRFdmVudHMKK0FTZW5zb3JFdmVudFF1ZXVlX2hhc0V2ZW50cworQVNlbnNvckV2ZW50UXVldWVfc2V0RXZlbnRSYXRlCitBU2Vuc29yX2dldE1pbkRlbGF5CitBU2Vuc29yX2dldE5hbWUKK0FTZW5zb3JfZ2V0UmVzb2x1dGlvbgorQVNlbnNvcl9nZXRUeXBlCitBU2Vuc29yX2dldFZlbmRvcgorQVNlbnNvck1hbmFnZXJfY3JlYXRlRXZlbnRRdWV1ZQorQVNlbnNvck1hbmFnZXJfZGVzdHJveUV2ZW50UXVldWUKK0FTZW5zb3JNYW5hZ2VyX2dldERlZmF1bHRTZW5zb3IKK0FTZW5zb3JNYW5hZ2VyX2dldEluc3RhbmNlCitBU2Vuc29yTWFuYWdlcl9nZXRTZW5zb3JMaXN0CitBU3RvcmFnZU1hbmFnZXJfZGVsZXRlCitBU3RvcmFnZU1hbmFnZXJfZ2V0TW91bnRlZE9iYlBhdGgKK0FTdG9yYWdlTWFuYWdlcl9pc09iYk1vdW50ZWQKK0FTdG9yYWdlTWFuYWdlcl9tb3VudE9iYgorQVN0b3JhZ2VNYW5hZ2VyX25ldworQVN0b3JhZ2VNYW5hZ2VyX3VubW91bnRPYmIKK2dldFR0c0VuZ2luZQpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE3L2FyY2gtbWlwcy9zeW1ib2xzL2xpYmFuZHJvaWQuc28udmFyaWFibGVzLnR4dCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNy9hcmNoLW1pcHMvc3ltYm9scy9saWJhbmRyb2lkLnNvLnZhcmlhYmxlcy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGIxMzc4OQotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNy9hcmNoLW1pcHMvc3ltYm9scy9saWJhbmRyb2lkLnNvLnZhcmlhYmxlcy50eHQKQEAgLTAsMCArMSBAQAorCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTcvYXJjaC14ODYvc3ltYm9scy9saWJhbmRyb2lkLnNvLmZ1bmN0aW9ucy50eHQgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTcvYXJjaC14ODYvc3ltYm9scy9saWJhbmRyb2lkLnNvLmZ1bmN0aW9ucy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTM5ZTdjZgotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNy9hcmNoLXg4Ni9zeW1ib2xzL2xpYmFuZHJvaWQuc28uZnVuY3Rpb25zLnR4dApAQCAtMCwwICsxLDE3MyBAQAorQUFzc2V0X2Nsb3NlCitBQXNzZXREaXJfY2xvc2UKK0FBc3NldERpcl9nZXROZXh0RmlsZU5hbWUKK0FBc3NldERpcl9yZXdpbmQKK0FBc3NldF9nZXRCdWZmZXIKK0FBc3NldF9nZXRMZW5ndGgKK0FBc3NldF9nZXRMZW5ndGg2NAorQUFzc2V0X2dldFJlbWFpbmluZ0xlbmd0aAorQUFzc2V0X2dldFJlbWFpbmluZ0xlbmd0aDY0CitBQXNzZXRfaXNBbGxvY2F0ZWQKK0FBc3NldE1hbmFnZXJfZnJvbUphdmEKK0FBc3NldE1hbmFnZXJfb3BlbgorQUFzc2V0TWFuYWdlcl9vcGVuRGlyCitBQXNzZXRfb3BlbkZpbGVEZXNjcmlwdG9yCitBQXNzZXRfb3BlbkZpbGVEZXNjcmlwdG9yNjQKK0FBc3NldF9yZWFkCitBQXNzZXRfc2VlaworQUFzc2V0X3NlZWs2NAorQUNvbmZpZ3VyYXRpb25fY29weQorQUNvbmZpZ3VyYXRpb25fZGVsZXRlCitBQ29uZmlndXJhdGlvbl9kaWZmCitBQ29uZmlndXJhdGlvbl9mcm9tQXNzZXRNYW5hZ2VyCitBQ29uZmlndXJhdGlvbl9nZXRDb3VudHJ5CitBQ29uZmlndXJhdGlvbl9nZXREZW5zaXR5CitBQ29uZmlndXJhdGlvbl9nZXRLZXlib2FyZAorQUNvbmZpZ3VyYXRpb25fZ2V0S2V5c0hpZGRlbgorQUNvbmZpZ3VyYXRpb25fZ2V0TGFuZ3VhZ2UKK0FDb25maWd1cmF0aW9uX2dldExheW91dERpcmVjdGlvbgorQUNvbmZpZ3VyYXRpb25fZ2V0TWNjCitBQ29uZmlndXJhdGlvbl9nZXRNbmMKK0FDb25maWd1cmF0aW9uX2dldE5hdkhpZGRlbgorQUNvbmZpZ3VyYXRpb25fZ2V0TmF2aWdhdGlvbgorQUNvbmZpZ3VyYXRpb25fZ2V0T3JpZW50YXRpb24KK0FDb25maWd1cmF0aW9uX2dldFNjcmVlbkhlaWdodERwCitBQ29uZmlndXJhdGlvbl9nZXRTY3JlZW5Mb25nCitBQ29uZmlndXJhdGlvbl9nZXRTY3JlZW5TaXplCitBQ29uZmlndXJhdGlvbl9nZXRTY3JlZW5XaWR0aERwCitBQ29uZmlndXJhdGlvbl9nZXRTZGtWZXJzaW9uCitBQ29uZmlndXJhdGlvbl9nZXRTbWFsbGVzdFNjcmVlbldpZHRoRHAKK0FDb25maWd1cmF0aW9uX2dldFRvdWNoc2NyZWVuCitBQ29uZmlndXJhdGlvbl9nZXRVaU1vZGVOaWdodAorQUNvbmZpZ3VyYXRpb25fZ2V0VWlNb2RlVHlwZQorQUNvbmZpZ3VyYXRpb25faXNCZXR0ZXJUaGFuCitBQ29uZmlndXJhdGlvbl9tYXRjaAorQUNvbmZpZ3VyYXRpb25fbmV3CitBQ29uZmlndXJhdGlvbl9zZXRDb3VudHJ5CitBQ29uZmlndXJhdGlvbl9zZXREZW5zaXR5CitBQ29uZmlndXJhdGlvbl9zZXRLZXlib2FyZAorQUNvbmZpZ3VyYXRpb25fc2V0S2V5c0hpZGRlbgorQUNvbmZpZ3VyYXRpb25fc2V0TGFuZ3VhZ2UKK0FDb25maWd1cmF0aW9uX3NldExheW91dERpcmVjdGlvbgorQUNvbmZpZ3VyYXRpb25fc2V0TWNjCitBQ29uZmlndXJhdGlvbl9zZXRNbmMKK0FDb25maWd1cmF0aW9uX3NldE5hdkhpZGRlbgorQUNvbmZpZ3VyYXRpb25fc2V0TmF2aWdhdGlvbgorQUNvbmZpZ3VyYXRpb25fc2V0T3JpZW50YXRpb24KK0FDb25maWd1cmF0aW9uX3NldFNjcmVlbkhlaWdodERwCitBQ29uZmlndXJhdGlvbl9zZXRTY3JlZW5Mb25nCitBQ29uZmlndXJhdGlvbl9zZXRTY3JlZW5TaXplCitBQ29uZmlndXJhdGlvbl9zZXRTY3JlZW5XaWR0aERwCitBQ29uZmlndXJhdGlvbl9zZXRTZGtWZXJzaW9uCitBQ29uZmlndXJhdGlvbl9zZXRTbWFsbGVzdFNjcmVlbldpZHRoRHAKK0FDb25maWd1cmF0aW9uX3NldFRvdWNoc2NyZWVuCitBQ29uZmlndXJhdGlvbl9zZXRVaU1vZGVOaWdodAorQUNvbmZpZ3VyYXRpb25fc2V0VWlNb2RlVHlwZQorQUlucHV0RXZlbnRfZ2V0RGV2aWNlSWQKK0FJbnB1dEV2ZW50X2dldFNvdXJjZQorQUlucHV0RXZlbnRfZ2V0VHlwZQorQUlucHV0UXVldWVfYXR0YWNoTG9vcGVyCitBSW5wdXRRdWV1ZV9kZXRhY2hMb29wZXIKK0FJbnB1dFF1ZXVlX2ZpbmlzaEV2ZW50CitBSW5wdXRRdWV1ZV9nZXRFdmVudAorQUlucHV0UXVldWVfaGFzRXZlbnRzCitBSW5wdXRRdWV1ZV9wcmVEaXNwYXRjaEV2ZW50CitBS2V5RXZlbnRfZ2V0QWN0aW9uCitBS2V5RXZlbnRfZ2V0RG93blRpbWUKK0FLZXlFdmVudF9nZXRFdmVudFRpbWUKK0FLZXlFdmVudF9nZXRGbGFncworQUtleUV2ZW50X2dldEtleUNvZGUKK0FLZXlFdmVudF9nZXRNZXRhU3RhdGUKK0FLZXlFdmVudF9nZXRSZXBlYXRDb3VudAorQUtleUV2ZW50X2dldFNjYW5Db2RlCitBTG9vcGVyX2FjcXVpcmUKK0FMb29wZXJfYWRkRmQKK0FMb29wZXJfZm9yVGhyZWFkCitBTG9vcGVyX3BvbGxBbGwKK0FMb29wZXJfcG9sbE9uY2UKK0FMb29wZXJfcHJlcGFyZQorQUxvb3Blcl9yZWxlYXNlCitBTG9vcGVyX3JlbW92ZUZkCitBTG9vcGVyX3dha2UKK0FNb3Rpb25FdmVudF9nZXRBY3Rpb24KK0FNb3Rpb25FdmVudF9nZXRBeGlzVmFsdWUKK0FNb3Rpb25FdmVudF9nZXRCdXR0b25TdGF0ZQorQU1vdGlvbkV2ZW50X2dldERvd25UaW1lCitBTW90aW9uRXZlbnRfZ2V0RWRnZUZsYWdzCitBTW90aW9uRXZlbnRfZ2V0RXZlbnRUaW1lCitBTW90aW9uRXZlbnRfZ2V0RmxhZ3MKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsQXhpc1ZhbHVlCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbEV2ZW50VGltZQorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxPcmllbnRhdGlvbgorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxQcmVzc3VyZQorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxSYXdYCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFJhd1kKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsU2l6ZQorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxUb29sTWFqb3IKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsVG9vbE1pbm9yCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFRvdWNoTWFqb3IKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsVG91Y2hNaW5vcgorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxYCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFkKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3J5U2l6ZQorQU1vdGlvbkV2ZW50X2dldE1ldGFTdGF0ZQorQU1vdGlvbkV2ZW50X2dldE9yaWVudGF0aW9uCitBTW90aW9uRXZlbnRfZ2V0UG9pbnRlckNvdW50CitBTW90aW9uRXZlbnRfZ2V0UG9pbnRlcklkCitBTW90aW9uRXZlbnRfZ2V0UHJlc3N1cmUKK0FNb3Rpb25FdmVudF9nZXRSYXdYCitBTW90aW9uRXZlbnRfZ2V0UmF3WQorQU1vdGlvbkV2ZW50X2dldFNpemUKK0FNb3Rpb25FdmVudF9nZXRUb29sTWFqb3IKK0FNb3Rpb25FdmVudF9nZXRUb29sTWlub3IKK0FNb3Rpb25FdmVudF9nZXRUb29sVHlwZQorQU1vdGlvbkV2ZW50X2dldFRvdWNoTWFqb3IKK0FNb3Rpb25FdmVudF9nZXRUb3VjaE1pbm9yCitBTW90aW9uRXZlbnRfZ2V0WAorQU1vdGlvbkV2ZW50X2dldFhPZmZzZXQKK0FNb3Rpb25FdmVudF9nZXRYUHJlY2lzaW9uCitBTW90aW9uRXZlbnRfZ2V0WQorQU1vdGlvbkV2ZW50X2dldFlPZmZzZXQKK0FNb3Rpb25FdmVudF9nZXRZUHJlY2lzaW9uCitBTmF0aXZlQWN0aXZpdHlfZmluaXNoCitBTmF0aXZlQWN0aXZpdHlfaGlkZVNvZnRJbnB1dAorQU5hdGl2ZUFjdGl2aXR5X3NldFdpbmRvd0ZsYWdzCitBTmF0aXZlQWN0aXZpdHlfc2V0V2luZG93Rm9ybWF0CitBTmF0aXZlQWN0aXZpdHlfc2hvd1NvZnRJbnB1dAorQU5hdGl2ZVdpbmRvd19hY3F1aXJlCitBTmF0aXZlV2luZG93X2Zyb21TdXJmYWNlCitBTmF0aXZlV2luZG93X2dldEZvcm1hdAorQU5hdGl2ZVdpbmRvd19nZXRIZWlnaHQKK0FOYXRpdmVXaW5kb3dfZ2V0V2lkdGgKK0FOYXRpdmVXaW5kb3dfbG9jaworQU5hdGl2ZVdpbmRvd19yZWxlYXNlCitBTmF0aXZlV2luZG93X3NldEJ1ZmZlcnNHZW9tZXRyeQorQU5hdGl2ZVdpbmRvd191bmxvY2tBbmRQb3N0CithbmRyb2lkX2dldFR0c0VuZ2luZQorQU9iYkluZm9fZGVsZXRlCitBT2JiSW5mb19nZXRGbGFncworQU9iYkluZm9fZ2V0UGFja2FnZU5hbWUKK0FPYmJJbmZvX2dldFZlcnNpb24KK0FPYmJTY2FubmVyX2dldE9iYkluZm8KK0FTZW5zb3JFdmVudFF1ZXVlX2Rpc2FibGVTZW5zb3IKK0FTZW5zb3JFdmVudFF1ZXVlX2VuYWJsZVNlbnNvcgorQVNlbnNvckV2ZW50UXVldWVfZ2V0RXZlbnRzCitBU2Vuc29yRXZlbnRRdWV1ZV9oYXNFdmVudHMKK0FTZW5zb3JFdmVudFF1ZXVlX3NldEV2ZW50UmF0ZQorQVNlbnNvcl9nZXRNaW5EZWxheQorQVNlbnNvcl9nZXROYW1lCitBU2Vuc29yX2dldFJlc29sdXRpb24KK0FTZW5zb3JfZ2V0VHlwZQorQVNlbnNvcl9nZXRWZW5kb3IKK0FTZW5zb3JNYW5hZ2VyX2NyZWF0ZUV2ZW50UXVldWUKK0FTZW5zb3JNYW5hZ2VyX2Rlc3Ryb3lFdmVudFF1ZXVlCitBU2Vuc29yTWFuYWdlcl9nZXREZWZhdWx0U2Vuc29yCitBU2Vuc29yTWFuYWdlcl9nZXRJbnN0YW5jZQorQVNlbnNvck1hbmFnZXJfZ2V0U2Vuc29yTGlzdAorQVN0b3JhZ2VNYW5hZ2VyX2RlbGV0ZQorQVN0b3JhZ2VNYW5hZ2VyX2dldE1vdW50ZWRPYmJQYXRoCitBU3RvcmFnZU1hbmFnZXJfaXNPYmJNb3VudGVkCitBU3RvcmFnZU1hbmFnZXJfbW91bnRPYmIKK0FTdG9yYWdlTWFuYWdlcl9uZXcKK0FTdG9yYWdlTWFuYWdlcl91bm1vdW50T2JiCitnZXRUdHNFbmdpbmUKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNy9hcmNoLXg4Ni9zeW1ib2xzL2xpYmFuZHJvaWQuc28udmFyaWFibGVzLnR4dCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNy9hcmNoLXg4Ni9zeW1ib2xzL2xpYmFuZHJvaWQuc28udmFyaWFibGVzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YjEzNzg5Ci0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE3L2FyY2gteDg2L3N5bWJvbHMvbGliYW5kcm9pZC5zby52YXJpYWJsZXMudHh0CkBAIC0wLDAgKzEgQEAKKwpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE3L2luY2x1ZGUvYW5kcm9pZC9jb25maWd1cmF0aW9uLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTcvaW5jbHVkZS9hbmRyb2lkL2NvbmZpZ3VyYXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZjVjMTRhCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE3L2luY2x1ZGUvYW5kcm9pZC9jb25maWd1cmF0aW9uLmgKQEAgLTAsMCArMSwzODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfQ09ORklHVVJBVElPTl9ICisjZGVmaW5lIEFORFJPSURfQ09ORklHVVJBVElPTl9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2Fzc2V0X21hbmFnZXIuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitzdHJ1Y3QgQUNvbmZpZ3VyYXRpb247Cit0eXBlZGVmIHN0cnVjdCBBQ29uZmlndXJhdGlvbiBBQ29uZmlndXJhdGlvbjsKKworZW51bSB7CisgICAgQUNPTkZJR1VSQVRJT05fT1JJRU5UQVRJT05fQU5ZICA9IDB4MDAwMCwKKyAgICBBQ09ORklHVVJBVElPTl9PUklFTlRBVElPTl9QT1JUID0gMHgwMDAxLAorICAgIEFDT05GSUdVUkFUSU9OX09SSUVOVEFUSU9OX0xBTkQgPSAweDAwMDIsCisgICAgQUNPTkZJR1VSQVRJT05fT1JJRU5UQVRJT05fU1FVQVJFID0gMHgwMDAzLAorCisgICAgQUNPTkZJR1VSQVRJT05fVE9VQ0hTQ1JFRU5fQU5ZICA9IDB4MDAwMCwKKyAgICBBQ09ORklHVVJBVElPTl9UT1VDSFNDUkVFTl9OT1RPVUNIICA9IDB4MDAwMSwKKyAgICBBQ09ORklHVVJBVElPTl9UT1VDSFNDUkVFTl9TVFlMVVMgID0gMHgwMDAyLAorICAgIEFDT05GSUdVUkFUSU9OX1RPVUNIU0NSRUVOX0ZJTkdFUiAgPSAweDAwMDMsCisKKyAgICBBQ09ORklHVVJBVElPTl9ERU5TSVRZX0RFRkFVTFQgPSAwLAorICAgIEFDT05GSUdVUkFUSU9OX0RFTlNJVFlfTE9XID0gMTIwLAorICAgIEFDT05GSUdVUkFUSU9OX0RFTlNJVFlfTUVESVVNID0gMTYwLAorICAgIEFDT05GSUdVUkFUSU9OX0RFTlNJVFlfVFYgPSAyMTMsCisgICAgQUNPTkZJR1VSQVRJT05fREVOU0lUWV9ISUdIID0gMjQwLAorICAgIEFDT05GSUdVUkFUSU9OX0RFTlNJVFlfWEhJR0ggPSAzMjAsCisgICAgQUNPTkZJR1VSQVRJT05fREVOU0lUWV9YWEhJR0ggPSA0ODAsCisgICAgQUNPTkZJR1VSQVRJT05fREVOU0lUWV9OT05FID0gMHhmZmZmLAorCisgICAgQUNPTkZJR1VSQVRJT05fS0VZQk9BUkRfQU5ZICA9IDB4MDAwMCwKKyAgICBBQ09ORklHVVJBVElPTl9LRVlCT0FSRF9OT0tFWVMgID0gMHgwMDAxLAorICAgIEFDT05GSUdVUkFUSU9OX0tFWUJPQVJEX1FXRVJUWSAgPSAweDAwMDIsCisgICAgQUNPTkZJR1VSQVRJT05fS0VZQk9BUkRfMTJLRVkgID0gMHgwMDAzLAorCisgICAgQUNPTkZJR1VSQVRJT05fTkFWSUdBVElPTl9BTlkgID0gMHgwMDAwLAorICAgIEFDT05GSUdVUkFUSU9OX05BVklHQVRJT05fTk9OQVYgID0gMHgwMDAxLAorICAgIEFDT05GSUdVUkFUSU9OX05BVklHQVRJT05fRFBBRCAgPSAweDAwMDIsCisgICAgQUNPTkZJR1VSQVRJT05fTkFWSUdBVElPTl9UUkFDS0JBTEwgID0gMHgwMDAzLAorICAgIEFDT05GSUdVUkFUSU9OX05BVklHQVRJT05fV0hFRUwgID0gMHgwMDA0LAorCisgICAgQUNPTkZJR1VSQVRJT05fS0VZU0hJRERFTl9BTlkgPSAweDAwMDAsCisgICAgQUNPTkZJR1VSQVRJT05fS0VZU0hJRERFTl9OTyA9IDB4MDAwMSwKKyAgICBBQ09ORklHVVJBVElPTl9LRVlTSElEREVOX1lFUyA9IDB4MDAwMiwKKyAgICBBQ09ORklHVVJBVElPTl9LRVlTSElEREVOX1NPRlQgPSAweDAwMDMsCisKKyAgICBBQ09ORklHVVJBVElPTl9OQVZISURERU5fQU5ZID0gMHgwMDAwLAorICAgIEFDT05GSUdVUkFUSU9OX05BVkhJRERFTl9OTyA9IDB4MDAwMSwKKyAgICBBQ09ORklHVVJBVElPTl9OQVZISURERU5fWUVTID0gMHgwMDAyLAorCisgICAgQUNPTkZJR1VSQVRJT05fU0NSRUVOU0laRV9BTlkgID0gMHgwMCwKKyAgICBBQ09ORklHVVJBVElPTl9TQ1JFRU5TSVpFX1NNQUxMID0gMHgwMSwKKyAgICBBQ09ORklHVVJBVElPTl9TQ1JFRU5TSVpFX05PUk1BTCA9IDB4MDIsCisgICAgQUNPTkZJR1VSQVRJT05fU0NSRUVOU0laRV9MQVJHRSA9IDB4MDMsCisgICAgQUNPTkZJR1VSQVRJT05fU0NSRUVOU0laRV9YTEFSR0UgPSAweDA0LAorCisgICAgQUNPTkZJR1VSQVRJT05fU0NSRUVOTE9OR19BTlkgPSAweDAwLAorICAgIEFDT05GSUdVUkFUSU9OX1NDUkVFTkxPTkdfTk8gPSAweDEsCisgICAgQUNPTkZJR1VSQVRJT05fU0NSRUVOTE9OR19ZRVMgPSAweDIsCisKKyAgICBBQ09ORklHVVJBVElPTl9VSV9NT0RFX1RZUEVfQU5ZID0gMHgwMCwKKyAgICBBQ09ORklHVVJBVElPTl9VSV9NT0RFX1RZUEVfTk9STUFMID0gMHgwMSwKKyAgICBBQ09ORklHVVJBVElPTl9VSV9NT0RFX1RZUEVfREVTSyA9IDB4MDIsCisgICAgQUNPTkZJR1VSQVRJT05fVUlfTU9ERV9UWVBFX0NBUiA9IDB4MDMsCisgICAgQUNPTkZJR1VSQVRJT05fVUlfTU9ERV9UWVBFX1RFTEVWSVNJT04gPSAweDA0LAorICAgIEFDT05GSUdVUkFUSU9OX1VJX01PREVfVFlQRV9BUFBMSUFOQ0UgPSAweDA1LAorCisgICAgQUNPTkZJR1VSQVRJT05fVUlfTU9ERV9OSUdIVF9BTlkgPSAweDAwLAorICAgIEFDT05GSUdVUkFUSU9OX1VJX01PREVfTklHSFRfTk8gPSAweDEsCisgICAgQUNPTkZJR1VSQVRJT05fVUlfTU9ERV9OSUdIVF9ZRVMgPSAweDIsCisKKyAgICBBQ09ORklHVVJBVElPTl9TQ1JFRU5fV0lEVEhfRFBfQU5ZID0gMHgwMDAwLAorCisgICAgQUNPTkZJR1VSQVRJT05fU0NSRUVOX0hFSUdIVF9EUF9BTlkgPSAweDAwMDAsCisKKyAgICBBQ09ORklHVVJBVElPTl9TTUFMTEVTVF9TQ1JFRU5fV0lEVEhfRFBfQU5ZID0gMHgwMDAwLAorCisgICAgQUNPTkZJR1VSQVRJT05fTEFZT1VURElSX0FOWSAgPSAweDAwLAorICAgIEFDT05GSUdVUkFUSU9OX0xBWU9VVERJUl9MVFIgID0gMHgwMSwKKyAgICBBQ09ORklHVVJBVElPTl9MQVlPVVRESVJfUlRMICA9IDB4MDIsCisKKyAgICBBQ09ORklHVVJBVElPTl9NQ0MgPSAweDAwMDEsCisgICAgQUNPTkZJR1VSQVRJT05fTU5DID0gMHgwMDAyLAorICAgIEFDT05GSUdVUkFUSU9OX0xPQ0FMRSA9IDB4MDAwNCwKKyAgICBBQ09ORklHVVJBVElPTl9UT1VDSFNDUkVFTiA9IDB4MDAwOCwKKyAgICBBQ09ORklHVVJBVElPTl9LRVlCT0FSRCA9IDB4MDAxMCwKKyAgICBBQ09ORklHVVJBVElPTl9LRVlCT0FSRF9ISURERU4gPSAweDAwMjAsCisgICAgQUNPTkZJR1VSQVRJT05fTkFWSUdBVElPTiA9IDB4MDA0MCwKKyAgICBBQ09ORklHVVJBVElPTl9PUklFTlRBVElPTiA9IDB4MDA4MCwKKyAgICBBQ09ORklHVVJBVElPTl9ERU5TSVRZID0gMHgwMTAwLAorICAgIEFDT05GSUdVUkFUSU9OX1NDUkVFTl9TSVpFID0gMHgwMjAwLAorICAgIEFDT05GSUdVUkFUSU9OX1ZFUlNJT04gPSAweDA0MDAsCisgICAgQUNPTkZJR1VSQVRJT05fU0NSRUVOX0xBWU9VVCA9IDB4MDgwMCwKKyAgICBBQ09ORklHVVJBVElPTl9VSV9NT0RFID0gMHgxMDAwLAorICAgIEFDT05GSUdVUkFUSU9OX1NNQUxMRVNUX1NDUkVFTl9TSVpFID0gMHgyMDAwLAorICAgIEFDT05GSUdVUkFUSU9OX0xBWU9VVERJUiA9IDB4NDAwMCwKK307CisKKy8qKgorICogQ3JlYXRlIGEgbmV3IEFDb25maWd1cmF0aW9uLCBpbml0aWFsaXplZCB3aXRoIG5vIHZhbHVlcyBzZXQuCisgKi8KK0FDb25maWd1cmF0aW9uKiBBQ29uZmlndXJhdGlvbl9uZXcoKTsKKworLyoqCisgKiBGcmVlIGFuIEFDb25maWd1cmF0aW9uIHRoYXQgd2FzIHByZXZpb3VzbHkgY3JlYXRlZCB3aXRoCisgKiBBQ29uZmlndXJhdGlvbl9uZXcoKS4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9kZWxldGUoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZyk7CisKKy8qKgorICogQ3JlYXRlIGFuZCByZXR1cm4gYSBuZXcgQUNvbmZpZ3VyYXRpb24gYmFzZWQgb24gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBpbgorICogdXNlIGluIHRoZSBnaXZlbiBBc3NldE1hbmFnZXIuCisgKi8KK3ZvaWQgQUNvbmZpZ3VyYXRpb25fZnJvbUFzc2V0TWFuYWdlcihBQ29uZmlndXJhdGlvbiogb3V0LCBBQXNzZXRNYW5hZ2VyKiBhbSk7CisKKy8qKgorICogQ29weSB0aGUgY29udGVudHMgb2YgJ3NyYycgdG8gJ2Rlc3QnLgorICovCit2b2lkIEFDb25maWd1cmF0aW9uX2NvcHkoQUNvbmZpZ3VyYXRpb24qIGRlc3QsIEFDb25maWd1cmF0aW9uKiBzcmMpOworCisvKioKKyAqIFJldHVybiB0aGUgY3VycmVudCBNQ0Mgc2V0IGluIHRoZSBjb25maWd1cmF0aW9uLiAgMCBpZiBub3Qgc2V0LgorICovCitpbnQzMl90IEFDb25maWd1cmF0aW9uX2dldE1jYyhBQ29uZmlndXJhdGlvbiogY29uZmlnKTsKKworLyoqCisgKiBTZXQgdGhlIGN1cnJlbnQgTUNDIGluIHRoZSBjb25maWd1cmF0aW9uLiAgMCB0byBjbGVhci4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9zZXRNY2MoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZywgaW50MzJfdCBtY2MpOworCisvKioKKyAqIFJldHVybiB0aGUgY3VycmVudCBNTkMgc2V0IGluIHRoZSBjb25maWd1cmF0aW9uLiAgMCBpZiBub3Qgc2V0LgorICovCitpbnQzMl90IEFDb25maWd1cmF0aW9uX2dldE1uYyhBQ29uZmlndXJhdGlvbiogY29uZmlnKTsKKworLyoqCisgKiBTZXQgdGhlIGN1cnJlbnQgTU5DIGluIHRoZSBjb25maWd1cmF0aW9uLiAgMCB0byBjbGVhci4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9zZXRNbmMoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZywgaW50MzJfdCBtbmMpOworCisvKioKKyAqIFJldHVybiB0aGUgY3VycmVudCBsYW5ndWFnZSBjb2RlIHNldCBpbiB0aGUgY29uZmlndXJhdGlvbi4gIFRoZSBvdXRwdXQgd2lsbAorICogYmUgZmlsbGVkIHdpdGggYW4gYXJyYXkgb2YgdHdvIGNoYXJhY3RlcnMuICBUaGV5IGFyZSBub3QgMC10ZXJtaW5hdGVkLiAgSWYKKyAqIGEgbGFuZ3VhZ2UgaXMgbm90IHNldCwgdGhleSB3aWxsIGJlIDAuCisgKi8KK3ZvaWQgQUNvbmZpZ3VyYXRpb25fZ2V0TGFuZ3VhZ2UoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZywgY2hhciogb3V0TGFuZ3VhZ2UpOworCisvKioKKyAqIFNldCB0aGUgY3VycmVudCBsYW5ndWFnZSBjb2RlIGluIHRoZSBjb25maWd1cmF0aW9uLCBmcm9tIHRoZSBmaXJzdCB0d28KKyAqIGNoYXJhY3RlcnMgaW4gdGhlIHN0cmluZy4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9zZXRMYW5ndWFnZShBQ29uZmlndXJhdGlvbiogY29uZmlnLCBjb25zdCBjaGFyKiBsYW5ndWFnZSk7CisKKy8qKgorICogUmV0dXJuIHRoZSBjdXJyZW50IGNvdW50cnkgY29kZSBzZXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uICBUaGUgb3V0cHV0IHdpbGwKKyAqIGJlIGZpbGxlZCB3aXRoIGFuIGFycmF5IG9mIHR3byBjaGFyYWN0ZXJzLiAgVGhleSBhcmUgbm90IDAtdGVybWluYXRlZC4gIElmCisgKiBhIGNvdW50cnkgaXMgbm90IHNldCwgdGhleSB3aWxsIGJlIDAuCisgKi8KK3ZvaWQgQUNvbmZpZ3VyYXRpb25fZ2V0Q291bnRyeShBQ29uZmlndXJhdGlvbiogY29uZmlnLCBjaGFyKiBvdXRDb3VudHJ5KTsKKworLyoqCisgKiBTZXQgdGhlIGN1cnJlbnQgY291bnRyeSBjb2RlIGluIHRoZSBjb25maWd1cmF0aW9uLCBmcm9tIHRoZSBmaXJzdCB0d28KKyAqIGNoYXJhY3RlcnMgaW4gdGhlIHN0cmluZy4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9zZXRDb3VudHJ5KEFDb25maWd1cmF0aW9uKiBjb25maWcsIGNvbnN0IGNoYXIqIGNvdW50cnkpOworCisvKioKKyAqIFJldHVybiB0aGUgY3VycmVudCBBQ09ORklHVVJBVElPTl9PUklFTlRBVElPTl8qIHNldCBpbiB0aGUgY29uZmlndXJhdGlvbi4KKyAqLworaW50MzJfdCBBQ29uZmlndXJhdGlvbl9nZXRPcmllbnRhdGlvbihBQ29uZmlndXJhdGlvbiogY29uZmlnKTsKKworLyoqCisgKiBTZXQgdGhlIGN1cnJlbnQgb3JpZW50YXRpb24gaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK3ZvaWQgQUNvbmZpZ3VyYXRpb25fc2V0T3JpZW50YXRpb24oQUNvbmZpZ3VyYXRpb24qIGNvbmZpZywgaW50MzJfdCBvcmllbnRhdGlvbik7CisKKy8qKgorICogUmV0dXJuIHRoZSBjdXJyZW50IEFDT05GSUdVUkFUSU9OX1RPVUNIU0NSRUVOXyogc2V0IGluIHRoZSBjb25maWd1cmF0aW9uLgorICovCitpbnQzMl90IEFDb25maWd1cmF0aW9uX2dldFRvdWNoc2NyZWVuKEFDb25maWd1cmF0aW9uKiBjb25maWcpOworCisvKioKKyAqIFNldCB0aGUgY3VycmVudCB0b3VjaHNjcmVlbiBpbiB0aGUgY29uZmlndXJhdGlvbi4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9zZXRUb3VjaHNjcmVlbihBQ29uZmlndXJhdGlvbiogY29uZmlnLCBpbnQzMl90IHRvdWNoc2NyZWVuKTsKKworLyoqCisgKiBSZXR1cm4gdGhlIGN1cnJlbnQgQUNPTkZJR1VSQVRJT05fREVOU0lUWV8qIHNldCBpbiB0aGUgY29uZmlndXJhdGlvbi4KKyAqLworaW50MzJfdCBBQ29uZmlndXJhdGlvbl9nZXREZW5zaXR5KEFDb25maWd1cmF0aW9uKiBjb25maWcpOworCisvKioKKyAqIFNldCB0aGUgY3VycmVudCBkZW5zaXR5IGluIHRoZSBjb25maWd1cmF0aW9uLgorICovCit2b2lkIEFDb25maWd1cmF0aW9uX3NldERlbnNpdHkoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZywgaW50MzJfdCBkZW5zaXR5KTsKKworLyoqCisgKiBSZXR1cm4gdGhlIGN1cnJlbnQgQUNPTkZJR1VSQVRJT05fS0VZQk9BUkRfKiBzZXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK2ludDMyX3QgQUNvbmZpZ3VyYXRpb25fZ2V0S2V5Ym9hcmQoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZyk7CisKKy8qKgorICogU2V0IHRoZSBjdXJyZW50IGtleWJvYXJkIGluIHRoZSBjb25maWd1cmF0aW9uLgorICovCit2b2lkIEFDb25maWd1cmF0aW9uX3NldEtleWJvYXJkKEFDb25maWd1cmF0aW9uKiBjb25maWcsIGludDMyX3Qga2V5Ym9hcmQpOworCisvKioKKyAqIFJldHVybiB0aGUgY3VycmVudCBBQ09ORklHVVJBVElPTl9OQVZJR0FUSU9OXyogc2V0IGluIHRoZSBjb25maWd1cmF0aW9uLgorICovCitpbnQzMl90IEFDb25maWd1cmF0aW9uX2dldE5hdmlnYXRpb24oQUNvbmZpZ3VyYXRpb24qIGNvbmZpZyk7CisKKy8qKgorICogU2V0IHRoZSBjdXJyZW50IG5hdmlnYXRpb24gaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK3ZvaWQgQUNvbmZpZ3VyYXRpb25fc2V0TmF2aWdhdGlvbihBQ29uZmlndXJhdGlvbiogY29uZmlnLCBpbnQzMl90IG5hdmlnYXRpb24pOworCisvKioKKyAqIFJldHVybiB0aGUgY3VycmVudCBBQ09ORklHVVJBVElPTl9LRVlTSElEREVOXyogc2V0IGluIHRoZSBjb25maWd1cmF0aW9uLgorICovCitpbnQzMl90IEFDb25maWd1cmF0aW9uX2dldEtleXNIaWRkZW4oQUNvbmZpZ3VyYXRpb24qIGNvbmZpZyk7CisKKy8qKgorICogU2V0IHRoZSBjdXJyZW50IGtleXMgaGlkZGVuIGluIHRoZSBjb25maWd1cmF0aW9uLgorICovCit2b2lkIEFDb25maWd1cmF0aW9uX3NldEtleXNIaWRkZW4oQUNvbmZpZ3VyYXRpb24qIGNvbmZpZywgaW50MzJfdCBrZXlzSGlkZGVuKTsKKworLyoqCisgKiBSZXR1cm4gdGhlIGN1cnJlbnQgQUNPTkZJR1VSQVRJT05fTkFWSElEREVOXyogc2V0IGluIHRoZSBjb25maWd1cmF0aW9uLgorICovCitpbnQzMl90IEFDb25maWd1cmF0aW9uX2dldE5hdkhpZGRlbihBQ29uZmlndXJhdGlvbiogY29uZmlnKTsKKworLyoqCisgKiBTZXQgdGhlIGN1cnJlbnQgbmF2IGhpZGRlbiBpbiB0aGUgY29uZmlndXJhdGlvbi4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9zZXROYXZIaWRkZW4oQUNvbmZpZ3VyYXRpb24qIGNvbmZpZywgaW50MzJfdCBuYXZIaWRkZW4pOworCisvKioKKyAqIFJldHVybiB0aGUgY3VycmVudCBTREsgKEFQSSkgdmVyc2lvbiBzZXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK2ludDMyX3QgQUNvbmZpZ3VyYXRpb25fZ2V0U2RrVmVyc2lvbihBQ29uZmlndXJhdGlvbiogY29uZmlnKTsKKworLyoqCisgKiBTZXQgdGhlIGN1cnJlbnQgU0RLIHZlcnNpb24gaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK3ZvaWQgQUNvbmZpZ3VyYXRpb25fc2V0U2RrVmVyc2lvbihBQ29uZmlndXJhdGlvbiogY29uZmlnLCBpbnQzMl90IHNka1ZlcnNpb24pOworCisvKioKKyAqIFJldHVybiB0aGUgY3VycmVudCBBQ09ORklHVVJBVElPTl9TQ1JFRU5TSVpFXyogc2V0IGluIHRoZSBjb25maWd1cmF0aW9uLgorICovCitpbnQzMl90IEFDb25maWd1cmF0aW9uX2dldFNjcmVlblNpemUoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZyk7CisKKy8qKgorICogU2V0IHRoZSBjdXJyZW50IHNjcmVlbiBzaXplIGluIHRoZSBjb25maWd1cmF0aW9uLgorICovCit2b2lkIEFDb25maWd1cmF0aW9uX3NldFNjcmVlblNpemUoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZywgaW50MzJfdCBzY3JlZW5TaXplKTsKKworLyoqCisgKiBSZXR1cm4gdGhlIGN1cnJlbnQgQUNPTkZJR1VSQVRJT05fU0NSRUVOTE9OR18qIHNldCBpbiB0aGUgY29uZmlndXJhdGlvbi4KKyAqLworaW50MzJfdCBBQ29uZmlndXJhdGlvbl9nZXRTY3JlZW5Mb25nKEFDb25maWd1cmF0aW9uKiBjb25maWcpOworCisvKioKKyAqIFNldCB0aGUgY3VycmVudCBzY3JlZW4gbG9uZyBpbiB0aGUgY29uZmlndXJhdGlvbi4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9zZXRTY3JlZW5Mb25nKEFDb25maWd1cmF0aW9uKiBjb25maWcsIGludDMyX3Qgc2NyZWVuTG9uZyk7CisKKy8qKgorICogUmV0dXJuIHRoZSBjdXJyZW50IEFDT05GSUdVUkFUSU9OX1VJX01PREVfVFlQRV8qIHNldCBpbiB0aGUgY29uZmlndXJhdGlvbi4KKyAqLworaW50MzJfdCBBQ29uZmlndXJhdGlvbl9nZXRVaU1vZGVUeXBlKEFDb25maWd1cmF0aW9uKiBjb25maWcpOworCisvKioKKyAqIFNldCB0aGUgY3VycmVudCBVSSBtb2RlIHR5cGUgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK3ZvaWQgQUNvbmZpZ3VyYXRpb25fc2V0VWlNb2RlVHlwZShBQ29uZmlndXJhdGlvbiogY29uZmlnLCBpbnQzMl90IHVpTW9kZVR5cGUpOworCisvKioKKyAqIFJldHVybiB0aGUgY3VycmVudCBBQ09ORklHVVJBVElPTl9VSV9NT0RFX05JR0hUXyogc2V0IGluIHRoZSBjb25maWd1cmF0aW9uLgorICovCitpbnQzMl90IEFDb25maWd1cmF0aW9uX2dldFVpTW9kZU5pZ2h0KEFDb25maWd1cmF0aW9uKiBjb25maWcpOworCisvKioKKyAqIFNldCB0aGUgY3VycmVudCBVSSBtb2RlIG5pZ2h0IGluIHRoZSBjb25maWd1cmF0aW9uLgorICovCit2b2lkIEFDb25maWd1cmF0aW9uX3NldFVpTW9kZU5pZ2h0KEFDb25maWd1cmF0aW9uKiBjb25maWcsIGludDMyX3QgdWlNb2RlTmlnaHQpOworCisvKioKKyAqIFJldHVybiB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uIHNjcmVlbiB3aWR0aCBpbiBkcCB1bml0cywgb3IKKyAqIEFDT05GSUdVUkFUSU9OX1NDUkVFTl9XSURUSF9EUF9BTlkgaWYgbm90IHNldC4KKyAqLworaW50MzJfdCBBQ29uZmlndXJhdGlvbl9nZXRTY3JlZW5XaWR0aERwKEFDb25maWd1cmF0aW9uKiBjb25maWcpOworCisvKioKKyAqIFNldCB0aGUgY29uZmlndXJhdGlvbidzIGN1cnJlbnQgc2NyZWVuIHdpZHRoIGluIGRwIHVuaXRzLgorICovCit2b2lkIEFDb25maWd1cmF0aW9uX3NldFNjcmVlbldpZHRoRHAoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZywgaW50MzJfdCB2YWx1ZSk7CisKKy8qKgorICogUmV0dXJuIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24gc2NyZWVuIGhlaWdodCBpbiBkcCB1bml0cywgb3IKKyAqIEFDT05GSUdVUkFUSU9OX1NDUkVFTl9IRUlHSFRfRFBfQU5ZIGlmIG5vdCBzZXQuCisgKi8KK2ludDMyX3QgQUNvbmZpZ3VyYXRpb25fZ2V0U2NyZWVuSGVpZ2h0RHAoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZyk7CisKKy8qKgorICogU2V0IHRoZSBjb25maWd1cmF0aW9uJ3MgY3VycmVudCBzY3JlZW4gd2lkdGggaW4gZHAgdW5pdHMuCisgKi8KK3ZvaWQgQUNvbmZpZ3VyYXRpb25fc2V0U2NyZWVuSGVpZ2h0RHAoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZywgaW50MzJfdCB2YWx1ZSk7CisKKy8qKgorICogUmV0dXJuIHRoZSBjb25maWd1cmF0aW9uJ3Mgc21hbGxlc3Qgc2NyZWVuIHdpZHRoIGluIGRwIHVuaXRzLCBvcgorICogQUNPTkZJR1VSQVRJT05fU01BTExFU1RfU0NSRUVOX1dJRFRIX0RQX0FOWSBpZiBub3Qgc2V0LgorICovCitpbnQzMl90IEFDb25maWd1cmF0aW9uX2dldFNtYWxsZXN0U2NyZWVuV2lkdGhEcChBQ29uZmlndXJhdGlvbiogY29uZmlnKTsKKworLyoqCisgKiBTZXQgdGhlIGNvbmZpZ3VyYXRpb24ncyBzbWFsbGVzdCBzY3JlZW4gd2lkdGggaW4gZHAgdW5pdHMuCisgKi8KK3ZvaWQgQUNvbmZpZ3VyYXRpb25fc2V0U21hbGxlc3RTY3JlZW5XaWR0aERwKEFDb25maWd1cmF0aW9uKiBjb25maWcsIGludDMyX3QgdmFsdWUpOworCisvKioKKyAqIFJldHVybiB0aGUgY29uZmlndXJhdGlvbidzIGxheW91dCBkaXJlY3Rpb24sIG9yCisgKiBBQ09ORklHVVJBVElPTl9MQVlPVVRESVJfQU5ZIGlmIG5vdCBzZXQuCisgKi8KK2ludDMyX3QgQUNvbmZpZ3VyYXRpb25fZ2V0TGF5b3V0RGlyZWN0aW9uKEFDb25maWd1cmF0aW9uKiBjb25maWcpOworCisvKioKKyAqIFNldCB0aGUgY29uZmlndXJhdGlvbidzIGxheW91dCBkaXJlY3Rpb24uCisgKi8KK3ZvaWQgQUNvbmZpZ3VyYXRpb25fc2V0TGF5b3V0RGlyZWN0aW9uKEFDb25maWd1cmF0aW9uKiBjb25maWcsIGludDMyX3QgdmFsdWUpOworCisvKioKKyAqIFBlcmZvcm0gYSBkaWZmIGJldHdlZW4gdHdvIGNvbmZpZ3VyYXRpb25zLiAgUmV0dXJucyBhIGJpdCBtYXNrIG9mCisgKiBBQ09ORklHVVJBVElPTl8qIGNvbnN0YW50cywgZWFjaCBiaXQgc2V0IG1lYW5pbmcgdGhhdCBjb25maWd1cmF0aW9uIGVsZW1lbnQKKyAqIGlzIGRpZmZlcmVudCBiZXR3ZWVuIHRoZW0uCisgKi8KK2ludDMyX3QgQUNvbmZpZ3VyYXRpb25fZGlmZihBQ29uZmlndXJhdGlvbiogY29uZmlnMSwgQUNvbmZpZ3VyYXRpb24qIGNvbmZpZzIpOworCisvKioKKyAqIERldGVybWluZSB3aGV0aGVyICdiYXNlJyBpcyBhIHZhbGlkIGNvbmZpZ3VyYXRpb24gZm9yIHVzZSB3aXRoaW4gdGhlCisgKiBlbnZpcm9ubWVudCAncmVxdWVzdGVkJy4gIFJldHVybnMgMCBpZiB0aGVyZSBhcmUgYW55IHZhbHVlcyBpbiAnYmFzZScKKyAqIHRoYXQgY29uZmxpY3Qgd2l0aCAncmVxdWVzdGVkJy4gIFJldHVybnMgMSBpZiBpdCBkb2VzIG5vdCBjb25mbGljdC4KKyAqLworaW50MzJfdCBBQ29uZmlndXJhdGlvbl9tYXRjaChBQ29uZmlndXJhdGlvbiogYmFzZSwgQUNvbmZpZ3VyYXRpb24qIHJlcXVlc3RlZCk7CisKKy8qKgorICogRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGNvbmZpZ3VyYXRpb24gaW4gJ3Rlc3QnIGlzIGJldHRlciB0aGFuIHRoZSBleGlzdGluZworICogY29uZmlndXJhdGlvbiBpbiAnYmFzZScuICBJZiAncmVxdWVzdGVkJyBpcyBub24tTlVMTCwgdGhpcyBkZWNpc2lvbiBpcyBiYXNlZAorICogb24gdGhlIG92ZXJhbGwgY29uZmlndXJhdGlvbiBnaXZlbiB0aGVyZS4gIElmIGl0IGlzIE5VTEwsIHRoaXMgZGVjaXNpb24gaXMKKyAqIHNpbXBseSBiYXNlZCBvbiB3aGljaCBjb25maWd1cmF0aW9uIGlzIG1vcmUgc3BlY2lmaWMuICBSZXR1cm5zIG5vbi0wIGlmCisgKiAndGVzdCcgaXMgYmV0dGVyIHRoYW4gJ2Jhc2UnLgorICoKKyAqIFRoaXMgYXNzdW1lcyB5b3UgaGF2ZSBhbHJlYWR5IGZpbHRlcmVkIHRoZSBjb25maWd1cmF0aW9ucyB3aXRoCisgKiBBQ29uZmlndXJhdGlvbl9tYXRjaCgpLgorICovCitpbnQzMl90IEFDb25maWd1cmF0aW9uX2lzQmV0dGVyVGhhbihBQ29uZmlndXJhdGlvbiogYmFzZSwgQUNvbmZpZ3VyYXRpb24qIHRlc3QsCisgICAgICAgIEFDb25maWd1cmF0aW9uKiByZXF1ZXN0ZWQpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK307CisjZW5kaWYKKworI2VuZGlmIC8vIEFORFJPSURfQ09ORklHVVJBVElPTl9ICmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTcvc2FtcGxlcy9UZWFwb3QvQW5kcm9pZE1hbmlmZXN0LnhtbCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNy9zYW1wbGVzL1RlYXBvdC9BbmRyb2lkTWFuaWZlc3QueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmMWVmOTcKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTcvc2FtcGxlcy9UZWFwb3QvQW5kcm9pZE1hbmlmZXN0LnhtbApAQCAtMCwwICsxLDM0IEBACis8bWFuaWZlc3QgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHBhY2thZ2U9ImNvbS5zYW1wbGUudGVhcG90IgorICAgIGFuZHJvaWQ6dmVyc2lvbkNvZGU9IjEiCisgICAgYW5kcm9pZDp2ZXJzaW9uTmFtZT0iMS4wIiA+CisKKyAgICA8dXNlcy1zZGsKKyAgICAgICAgYW5kcm9pZDptaW5TZGtWZXJzaW9uPSIxMSIKKyAgICAgICAgYW5kcm9pZDp0YXJnZXRTZGtWZXJzaW9uPSIxOSIgLz4KKyAgICA8dXNlcy1mZWF0dXJlIGFuZHJvaWQ6Z2xFc1ZlcnNpb249IjB4MDAwMjAwMDAiPjwvdXNlcy1mZWF0dXJlPgorICAgIDx1c2VzLXBlcm1pc3Npb24gYW5kcm9pZDpuYW1lPSJhbmRyb2lkLnBlcm1pc3Npb24uV1JJVEVfRVhURVJOQUxfU1RPUkFHRSI+PC91c2VzLXBlcm1pc3Npb24+CisgICAgPGFwcGxpY2F0aW9uCisgICAgICAgIGFuZHJvaWQ6YWxsb3dCYWNrdXA9InRydWUiCisgICAgICAgIGFuZHJvaWQ6aWNvbj0iQGRyYXdhYmxlL2ljX2xhdW5jaGVyIgorICAgICAgICBhbmRyb2lkOmxhYmVsPSJAc3RyaW5nL2FwcF9uYW1lIgorICAgICAgICBhbmRyb2lkOnRoZW1lPSJAc3R5bGUvQXBwVGhlbWUiCisgICAgICAgIGFuZHJvaWQ6aGFzQ29kZT0idHJ1ZSIKKyAgICAgICAgYW5kcm9pZDpuYW1lPSJjb20uc2FtcGxlLnRlYXBvdC5UZWFwb3RBcHBsaWNhdGlvbiIKKyAgICAgICAgPgorCisgICAgICAgIDwhLS0gT3VyIGFjdGl2aXR5IGlzIHRoZSBidWlsdC1pbiBOYXRpdmVBY3Rpdml0eSBmcmFtZXdvcmsgY2xhc3MuCisgICAgICAgICAgICAgVGhpcyB3aWxsIHRha2UgY2FyZSBvZiBpbnRlZ3JhdGluZyB3aXRoIG91ciBOREsgY29kZS4gLS0+CisgICAgICAgIDxhY3Rpdml0eSBhbmRyb2lkOm5hbWU9ImNvbS5zYW1wbGUudGVhcG90LlRlYXBvdE5hdGl2ZUFjdGl2aXR5IgorICAgICAgICAgICAgICAgIGFuZHJvaWQ6bGFiZWw9IkBzdHJpbmcvYXBwX25hbWUiCisgICAgICAgICAgICAgICAgYW5kcm9pZDpjb25maWdDaGFuZ2VzPSJvcmllbnRhdGlvbnxrZXlib2FyZEhpZGRlbiI+CisgICAgICAgICAgICA8IS0tIFRlbGwgTmF0aXZlQWN0aXZpdHkgdGhlIG5hbWUgb2Ygb3IgLnNvIC0tPgorICAgICAgICAgICAgPG1ldGEtZGF0YSBhbmRyb2lkOm5hbWU9ImFuZHJvaWQuYXBwLmxpYl9uYW1lIgorICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOnZhbHVlPSJUZWFwb3ROYXRpdmVBY3Rpdml0eSIgLz4KKyAgICAgICAgICAgIDxpbnRlbnQtZmlsdGVyPgorICAgICAgICAgICAgICAgIDxhY3Rpb24gYW5kcm9pZDpuYW1lPSJhbmRyb2lkLmludGVudC5hY3Rpb24uTUFJTiIgLz4KKyAgICAgICAgICAgICAgICA8Y2F0ZWdvcnkgYW5kcm9pZDpuYW1lPSJhbmRyb2lkLmludGVudC5jYXRlZ29yeS5MQVVOQ0hFUiIgLz4KKyAgICAgICAgICAgIDwvaW50ZW50LWZpbHRlcj4KKyAgICAgICAgPC9hY3Rpdml0eT4KKyAgICA8L2FwcGxpY2F0aW9uPgorPC9tYW5pZmVzdD4KZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNy9zYW1wbGVzL1RlYXBvdC9hc3NldHMvU2hhZGVycy9TaGFkZXJQbGFpbi5mc2ggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTcvc2FtcGxlcy9UZWFwb3QvYXNzZXRzL1NoYWRlcnMvU2hhZGVyUGxhaW4uZnNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5M2U0ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTcvc2FtcGxlcy9UZWFwb3QvYXNzZXRzL1NoYWRlcnMvU2hhZGVyUGxhaW4uZnNoCkBAIC0wLDAgKzEsMzMgQEAKKy8vCisvLyAgU2hhZGVyUGxhaW4uZnNoCisvLworCisjZGVmaW5lIFVTRV9QSE9ORyAoMSkKKwordW5pZm9ybSBsb3dwIHZlYzMgICAgICAgdk1hdGVyaWFsQW1iaWVudDsKK3VuaWZvcm0gbWVkaXVtcCB2ZWM0ICAgICAgIHZNYXRlcmlhbFNwZWN1bGFyOworCit2YXJ5aW5nIGxvd3AgdmVjNCBjb2xvckRpZmZ1c2U7CisKKyNpZiBVU0VfUEhPTkcKK3VuaWZvcm0gaGlnaHAgdmVjMyAgICAgIHZMaWdodDA7Cit2YXJ5aW5nIG1lZGl1bXAgdmVjMyBwb3NpdGlvbjsKK3ZhcnlpbmcgbWVkaXVtcCB2ZWMzIG5vcm1hbDsKKyNlbHNlCit2YXJ5aW5nIGxvd3AgdmVjNCBjb2xvclNwZWN1bGFyOworI2VuZGlmCisKK3ZvaWQgbWFpbigpCit7CisjaWYgVVNFX1BIT05HCisgICAgbWVkaXVtcCB2ZWMzIGhhbGZWZWN0b3IgPSBub3JtYWxpemUoLXZMaWdodDAgKyBwb3NpdGlvbik7CisgICAgbWVkaXVtcCBmbG9hdCBOZG90SCA9IG1heChkb3Qobm9ybWFsaXplKG5vcm1hbCksIGhhbGZWZWN0b3IpLCAwLjApOworICAgIG1lZGl1bXAgZmxvYXQgZlBvd2VyID0gdk1hdGVyaWFsU3BlY3VsYXIudzsKKyAgICBtZWRpdW1wIGZsb2F0IHNwZWN1bGFyID0gcG93KE5kb3RILCBmUG93ZXIpOworCisgICAgbG93cCB2ZWM0IGNvbG9yU3BlY3VsYXIgPSB2ZWM0KCB2TWF0ZXJpYWxTcGVjdWxhci54eXogKiBzcGVjdWxhciwgMSApOworICAgIGdsX0ZyYWdDb2xvciA9IGNvbG9yRGlmZnVzZSArIGNvbG9yU3BlY3VsYXI7CisjZWxzZQorICAgIGdsX0ZyYWdDb2xvciA9IGNvbG9yRGlmZnVzZSArIGNvbG9yU3BlY3VsYXI7CisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNy9zYW1wbGVzL1RlYXBvdC9hc3NldHMvU2hhZGVycy9WU19TaGFkZXJQbGFpbi52c2ggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTcvc2FtcGxlcy9UZWFwb3QvYXNzZXRzL1NoYWRlcnMvVlNfU2hhZGVyUGxhaW4udnNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4N2EzYzAKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTcvc2FtcGxlcy9UZWFwb3QvYXNzZXRzL1NoYWRlcnMvVlNfU2hhZGVyUGxhaW4udnNoCkBAIC0wLDAgKzEsNTQgQEAKKy8vCisvLyAgU2hhZGVyUGxhaW4udnNoCisvLworCisjZGVmaW5lIFVTRV9QSE9ORyAoMSkKKworYXR0cmlidXRlIGhpZ2hwIHZlYzMgICAgbXlWZXJ0ZXg7CithdHRyaWJ1dGUgaGlnaHAgdmVjMyAgICBteU5vcm1hbDsKK2F0dHJpYnV0ZSBtZWRpdW1wIHZlYzIgIG15VVY7CithdHRyaWJ1dGUgbWVkaXVtcCB2ZWM0ICBteUJvbmU7CisKK3ZhcnlpbmcgbWVkaXVtcCB2ZWMyICAgIHRleENvb3JkOwordmFyeWluZyBsb3dwICAgIHZlYzQgICAgY29sb3JEaWZmdXNlOworCisjaWYgVVNFX1BIT05HCit2YXJ5aW5nIG1lZGl1bXAgdmVjMyBwb3NpdGlvbjsKK3ZhcnlpbmcgbWVkaXVtcCB2ZWMzIG5vcm1hbDsKKyNlbHNlCit2YXJ5aW5nIGxvd3AgICAgdmVjNCAgICBjb2xvclNwZWN1bGFyOworI2VuZGlmCisKK3VuaWZvcm0gaGlnaHAgbWF0NCAgICAgIHVNVk1hdHJpeDsKK3VuaWZvcm0gaGlnaHAgbWF0NCAgICAgIHVQTWF0cml4OworCit1bmlmb3JtIGhpZ2hwIHZlYzMgICAgICB2TGlnaHQwOworCit1bmlmb3JtIGxvd3AgdmVjNCAgICAgICB2TWF0ZXJpYWxEaWZmdXNlOwordW5pZm9ybSBsb3dwIHZlYzMgICAgICAgdk1hdGVyaWFsQW1iaWVudDsKK3VuaWZvcm0gbG93cCB2ZWM0ICAgICAgIHZNYXRlcmlhbFNwZWN1bGFyOworCit2b2lkIG1haW4odm9pZCkKK3sKKyAgICBoaWdocCB2ZWM0IHAgPSB2ZWM0KG15VmVydGV4LDEpOworICAgIGdsX1Bvc2l0aW9uID0gdVBNYXRyaXggKiBwOworCisgICAgdGV4Q29vcmQgPSBteVVWOworCisgICAgaGlnaHAgdmVjMyB3b3JsZE5vcm1hbCA9IHZlYzMobWF0Myh1TVZNYXRyaXhbMF0ueHl6LCB1TVZNYXRyaXhbMV0ueHl6LCB1TVZNYXRyaXhbMl0ueHl6KSAqIG15Tm9ybWFsKTsKKyAgICBoaWdocCB2ZWMzIGVjUG9zaXRpb24gPSBwLnh5ejsKKworICAgIGNvbG9yRGlmZnVzZSA9IGRvdCggd29ybGROb3JtYWwsIG5vcm1hbGl6ZSgtdkxpZ2h0MCtlY1Bvc2l0aW9uKSApICogdk1hdGVyaWFsRGlmZnVzZSAgKyB2ZWM0KCB2TWF0ZXJpYWxBbWJpZW50LCAxICk7CisKKyNpZiBVU0VfUEhPTkcKKyAgICBub3JtYWwgPSB3b3JsZE5vcm1hbDsKKyAgICBwb3NpdGlvbiA9IGVjUG9zaXRpb247CisjZWxzZQorICAgIGhpZ2hwIHZlYzMgaGFsZlZlY3RvciA9IG5vcm1hbGl6ZShlY1Bvc2l0aW9uIC0gdkxpZ2h0MCk7CisKKyAgICBoaWdocCBmbG9hdCBOZG90SCA9IG1heCgtZG90KHdvcmxkTm9ybWFsLCBoYWxmVmVjdG9yKSwgMC4wKTsKKyAgICBmbG9hdCBmUG93ZXIgPSB2TWF0ZXJpYWxTcGVjdWxhci53OworICAgIGhpZ2hwIGZsb2F0IHNwZWN1bGFyID0gbWluKCBwb3coTmRvdEgsIGZQb3dlciksIDEuMCk7CisgICAgY29sb3JTcGVjdWxhciA9IHZlYzQoIHZNYXRlcmlhbFNwZWN1bGFyLnh5eiAqIHNwZWN1bGFyLCAxICk7CisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNy9zYW1wbGVzL1RlYXBvdC9qbmkvQW5kcm9pZC5tayBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNy9zYW1wbGVzL1RlYXBvdC9qbmkvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMzVhYjM3Ci0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE3L3NhbXBsZXMvVGVhcG90L2puaS9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMjggQEAKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCisKK0xPQ0FMX01PRFVMRSAgICA6PSBUZWFwb3ROYXRpdmVBY3Rpdml0eQorTE9DQUxfU1JDX0ZJTEVTIDo9IFRlYXBvdE5hdGl2ZUFjdGl2aXR5LmNwcCBcCitUZWFwb3RSZW5kZXJlci5jcHAgXAorCitMT0NBTF9DX0lOQ0xVREVTIDo9CisKK0xPQ0FMX0NGTEFHUyA6PQorCitMT0NBTF9MRExJQlMgICAgOj0gLWxsb2cgLWxhbmRyb2lkIC1sRUdMIC1sR0xFU3YyCitMT0NBTF9TVEFUSUNfTElCUkFSSUVTIDo9IGNwdWZlYXR1cmVzIGFuZHJvaWRfbmF0aXZlX2FwcF9nbHVlIG5ka19oZWxwZXIKKworaWZuZXEgKCQoZmlsdGVyICVhcm1lYWJpLXY3YSwkKFRBUkdFVF9BUkNIX0FCSSkpLCkKK0xPQ0FMX0NGTEFHUyArPSAtbWhhcmQtZmxvYXQgLURfTkRLX01BVEhfTk9fU09GVEZQPTEKK0xPQ0FMX0xETElCUyArPSAtbG1faGFyZAoraWZlcSAoLCQoZmlsdGVyIC1mdXNlLWxkPW1jbGQsJChBUFBfTERGTEFHUykgJChMT0NBTF9MREZMQUdTKSkpCitMT0NBTF9MREZMQUdTICs9IC1XbCwtLW5vLXdhcm4tbWlzbWF0Y2gKK2VuZGlmCitlbmRpZgorCitpbmNsdWRlICQoQlVJTERfU0hBUkVEX0xJQlJBUlkpCisKKyQoY2FsbCBpbXBvcnQtbW9kdWxlLGFuZHJvaWQvbmRrX2hlbHBlcikKKyQoY2FsbCBpbXBvcnQtbW9kdWxlLGFuZHJvaWQvbmF0aXZlX2FwcF9nbHVlKQorJChjYWxsIGltcG9ydC1tb2R1bGUsYW5kcm9pZC9jcHVmZWF0dXJlcykKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNy9zYW1wbGVzL1RlYXBvdC9qbmkvQXBwbGljYXRpb24ubWsgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTcvc2FtcGxlcy9UZWFwb3Qvam5pL0FwcGxpY2F0aW9uLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzNjcxNTgKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTcvc2FtcGxlcy9UZWFwb3Qvam5pL0FwcGxpY2F0aW9uLm1rCkBAIC0wLDAgKzEsNCBAQAorQVBQX1BMQVRGT1JNIDo9IGFuZHJvaWQtOQorQVBQX0FCSSA6PSBhbGwKKworQVBQX1NUTCA6PSBzdGxwb3J0X3N0YXRpYwpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE3L3NhbXBsZXMvVGVhcG90L2puaS9UZWFwb3ROYXRpdmVBY3Rpdml0eS5jcHAgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTcvc2FtcGxlcy9UZWFwb3Qvam5pL1RlYXBvdE5hdGl2ZUFjdGl2aXR5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZWZmZjgxCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE3L3NhbXBsZXMvVGVhcG90L2puaS9UZWFwb3ROYXRpdmVBY3Rpdml0eS5jcHAKQEAgLTAsMCArMSw0ODggQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIEluY2x1ZGUgZmlsZXMKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyNpbmNsdWRlIDxqbmkuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9zZW5zb3IuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorI2luY2x1ZGUgPGFuZHJvaWRfbmF0aXZlX2FwcF9nbHVlLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9uYXRpdmVfd2luZG93X2puaS5oPgorI2luY2x1ZGUgPGNwdS1mZWF0dXJlcy5oPgorCisjaW5jbHVkZSAiVGVhcG90UmVuZGVyZXIuaCIKKyNpbmNsdWRlICJOREtIZWxwZXIuaCIKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvL1ByZXByb2Nlc3NvcgorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjZGVmaW5lIEhFTFBFUl9DTEFTU19OQU1FICJjb20vc2FtcGxlL2hlbHBlci9OREtIZWxwZXIiIC8vQ2xhc3MgbmFtZSBvZiBoZWxwZXIgZnVuY3Rpb24KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy9TaGFyZWQgc3RhdGUgZm9yIG91ciBhcHAuCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3N0cnVjdCBhbmRyb2lkX2FwcDsKK2NsYXNzIEVuZ2luZQoreworICAgIFRlYXBvdFJlbmRlcmVyIHJlbmRlcmVyXzsKKworICAgIG5ka19oZWxwZXI6OkdMQ29udGV4dCogZ2xfY29udGV4dF87CisKKyAgICBib29sIGluaXRpYWxpemVkX3Jlc291cmNlc187CisgICAgYm9vbCBoYXNfZm9jdXNfOworCisgICAgbmRrX2hlbHBlcjo6RG91YmxldGFwRGV0ZWN0b3IgZG91YmxldGFwX2RldGVjdG9yXzsKKyAgICBuZGtfaGVscGVyOjpQaW5jaERldGVjdG9yIHBpbmNoX2RldGVjdG9yXzsKKyAgICBuZGtfaGVscGVyOjpEcmFnRGV0ZWN0b3IgZHJhZ19kZXRlY3Rvcl87CisgICAgbmRrX2hlbHBlcjo6UGVyZk1vbml0b3IgbW9uaXRvcl87CisKKyAgICBuZGtfaGVscGVyOjpUYXBDYW1lcmEgdGFwX2NhbWVyYV87CisKKyAgICBhbmRyb2lkX2FwcCogYXBwXzsKKworICAgIEFTZW5zb3JNYW5hZ2VyKiBzZW5zb3JfbWFuYWdlcl87CisgICAgY29uc3QgQVNlbnNvciogYWNjZWxlcm9tZXRlcl9zZW5zb3JfOworICAgIEFTZW5zb3JFdmVudFF1ZXVlKiBzZW5zb3JfZXZlbnRfcXVldWVfOworCisgICAgdm9pZCBVcGRhdGVGUFMoIGZsb2F0IGZGUFMgKTsKKyAgICB2b2lkIFNob3dVSSgpOworICAgIHZvaWQgVHJhbnNmb3JtUG9zaXRpb24oIG5ka19oZWxwZXI6OlZlYzImIHZlYyApOworCitwdWJsaWM6CisgICAgc3RhdGljIHZvaWQgSGFuZGxlQ21kKCBzdHJ1Y3QgYW5kcm9pZF9hcHAqIGFwcCwKKyAgICAgICAgICAgIGludDMyX3QgY21kICk7CisgICAgc3RhdGljIGludDMyX3QgSGFuZGxlSW5wdXQoIGFuZHJvaWRfYXBwKiBhcHAsCisgICAgICAgICAgICBBSW5wdXRFdmVudCogZXZlbnQgKTsKKworICAgIEVuZ2luZSgpOworICAgIH5FbmdpbmUoKTsKKyAgICB2b2lkIFNldFN0YXRlKCBhbmRyb2lkX2FwcCogc3RhdGUgKTsKKyAgICBpbnQgSW5pdERpc3BsYXkoKTsKKyAgICB2b2lkIExvYWRSZXNvdXJjZXMoKTsKKyAgICB2b2lkIFVubG9hZFJlc291cmNlcygpOworICAgIHZvaWQgRHJhd0ZyYW1lKCk7CisgICAgdm9pZCBUZXJtRGlzcGxheSgpOworICAgIHZvaWQgVHJpbU1lbW9yeSgpOworICAgIGJvb2wgSXNSZWFkeSgpOworCisgICAgdm9pZCBVcGRhdGVQb3NpdGlvbiggQUlucHV0RXZlbnQqIGV2ZW50LAorICAgICAgICAgICAgaW50MzJfdCBpSW5kZXgsCisgICAgICAgICAgICBmbG9hdCYgZlgsCisgICAgICAgICAgICBmbG9hdCYgZlkgKTsKKworICAgIHZvaWQgSW5pdFNlbnNvcnMoKTsKKyAgICB2b2lkIFByb2Nlc3NTZW5zb3JzKCBpbnQzMl90IGlkICk7CisgICAgdm9pZCBTdXNwZW5kU2Vuc29ycygpOworICAgIHZvaWQgUmVzdW1lU2Vuc29ycygpOworfTsKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvL0N0b3IKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorRW5naW5lOjpFbmdpbmUoKSA6CisgICAgICAgICAgICAgICAgaW5pdGlhbGl6ZWRfcmVzb3VyY2VzXyggZmFsc2UgKSwKKyAgICAgICAgICAgICAgICBoYXNfZm9jdXNfKCBmYWxzZSApLAorICAgICAgICAgICAgICAgIGFwcF8oIE5VTEwgKSwKKyAgICAgICAgICAgICAgICBzZW5zb3JfbWFuYWdlcl8oIE5VTEwgKSwKKyAgICAgICAgICAgICAgICBhY2NlbGVyb21ldGVyX3NlbnNvcl8oIE5VTEwgKSwKKyAgICAgICAgICAgICAgICBzZW5zb3JfZXZlbnRfcXVldWVfKCBOVUxMICkKK3sKKyAgICBnbF9jb250ZXh0XyA9IG5ka19oZWxwZXI6OkdMQ29udGV4dDo6R2V0SW5zdGFuY2UoKTsKK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvL0R0b3IKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorRW5naW5lOjp+RW5naW5lKCkKK3sKK30KKworLyoqCisgKiBMb2FkIHJlc291cmNlcworICovCit2b2lkIEVuZ2luZTo6TG9hZFJlc291cmNlcygpCit7CisgICAgcmVuZGVyZXJfLkluaXQoKTsKKyAgICByZW5kZXJlcl8uQmluZCggJnRhcF9jYW1lcmFfICk7Cit9CisKKy8qKgorICogVW5sb2FkIHJlc291cmNlcworICovCit2b2lkIEVuZ2luZTo6VW5sb2FkUmVzb3VyY2VzKCkKK3sKKyAgICByZW5kZXJlcl8uVW5sb2FkKCk7Cit9CisKKy8qKgorICogSW5pdGlhbGl6ZSBhbiBFR0wgY29udGV4dCBmb3IgdGhlIGN1cnJlbnQgZGlzcGxheS4KKyAqLworaW50IEVuZ2luZTo6SW5pdERpc3BsYXkoKQoreworICAgIGlmKCAhaW5pdGlhbGl6ZWRfcmVzb3VyY2VzXyApCisgICAgeworICAgICAgICBnbF9jb250ZXh0Xy0+SW5pdCggYXBwXy0+d2luZG93ICk7CisgICAgICAgIExvYWRSZXNvdXJjZXMoKTsKKyAgICAgICAgaW5pdGlhbGl6ZWRfcmVzb3VyY2VzXyA9IHRydWU7CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIC8vIGluaXRpYWxpemUgT3BlbkdMIEVTIGFuZCBFR0wKKyAgICAgICAgaWYoIEVHTF9TVUNDRVNTICE9IGdsX2NvbnRleHRfLT5SZXN1bWUoIGFwcF8tPndpbmRvdyApICkKKyAgICAgICAgeworICAgICAgICAgICAgVW5sb2FkUmVzb3VyY2VzKCk7CisgICAgICAgICAgICBMb2FkUmVzb3VyY2VzKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBTaG93VUkoKTsKKworICAgIC8vIEluaXRpYWxpemUgR0wgc3RhdGUuCisgICAgZ2xFbmFibGUoIEdMX0NVTExfRkFDRSApOworICAgIGdsRW5hYmxlKCBHTF9ERVBUSF9URVNUICk7CisgICAgZ2xEZXB0aEZ1bmMoIEdMX0xFUVVBTCApOworCisgICAgLy9Ob3RlIHRoYXQgc2NyZWVuIHNpemUgbWlnaHQgaGF2ZSBiZWVuIGNoYW5nZWQKKyAgICBnbFZpZXdwb3J0KCAwLCAwLCBnbF9jb250ZXh0Xy0+R2V0U2NyZWVuV2lkdGgoKSwgZ2xfY29udGV4dF8tPkdldFNjcmVlbkhlaWdodCgpICk7CisgICAgcmVuZGVyZXJfLlVwZGF0ZVZpZXdwb3J0KCk7CisKKyAgICB0YXBfY2FtZXJhXy5TZXRGbGlwKCAxLmYsIC0xLmYsIC0xLmYgKTsKKyAgICB0YXBfY2FtZXJhXy5TZXRQaW5jaFRyYW5zZm9ybUZhY3RvciggMi5mLCAyLmYsIDguZiApOworCisgICAgcmV0dXJuIDA7Cit9CisKKy8qKgorICogSnVzdCB0aGUgY3VycmVudCBmcmFtZSBpbiB0aGUgZGlzcGxheS4KKyAqLwordm9pZCBFbmdpbmU6OkRyYXdGcmFtZSgpCit7CisgICAgZmxvYXQgZkZQUzsKKyAgICBpZiggbW9uaXRvcl8uVXBkYXRlKCBmRlBTICkgKQorICAgIHsKKyAgICAgICAgVXBkYXRlRlBTKCBmRlBTICk7CisgICAgfQorICAgIHJlbmRlcmVyXy5VcGRhdGUoIG1vbml0b3JfLkdldEN1cnJlbnRUaW1lKCkgKTsKKworICAgIC8vIEp1c3QgZmlsbCB0aGUgc2NyZWVuIHdpdGggYSBjb2xvci4KKyAgICBnbENsZWFyQ29sb3IoIDAuNWYsIDAuNWYsIDAuNWYsIDEuZiApOworICAgIGdsQ2xlYXIoIEdMX0NPTE9SX0JVRkZFUl9CSVQgfCBHTF9ERVBUSF9CVUZGRVJfQklUICk7CisgICAgcmVuZGVyZXJfLlJlbmRlcigpOworCisgICAgLy8gU3dhcAorICAgIGlmKCBFR0xfU1VDQ0VTUyAhPSBnbF9jb250ZXh0Xy0+U3dhcCgpICkKKyAgICB7CisgICAgICAgIFVubG9hZFJlc291cmNlcygpOworICAgICAgICBMb2FkUmVzb3VyY2VzKCk7CisgICAgfQorfQorCisvKioKKyAqIFRlYXIgZG93biB0aGUgRUdMIGNvbnRleHQgY3VycmVudGx5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZGlzcGxheS4KKyAqLwordm9pZCBFbmdpbmU6OlRlcm1EaXNwbGF5KCkKK3sKKyAgICBnbF9jb250ZXh0Xy0+U3VzcGVuZCgpOworCit9CisKK3ZvaWQgRW5naW5lOjpUcmltTWVtb3J5KCkKK3sKKyAgICBMT0dJKCAiVHJpbW1pbmcgbWVtb3J5IiApOworICAgIGdsX2NvbnRleHRfLT5JbnZhbGlkYXRlKCk7Cit9CisvKioKKyAqIFByb2Nlc3MgdGhlIG5leHQgaW5wdXQgZXZlbnQuCisgKi8KK2ludDMyX3QgRW5naW5lOjpIYW5kbGVJbnB1dCggYW5kcm9pZF9hcHAqIGFwcCwKKyAgICAgICAgQUlucHV0RXZlbnQqIGV2ZW50ICkKK3sKKyAgICBFbmdpbmUqIGVuZyA9IChFbmdpbmUqKSBhcHAtPnVzZXJEYXRhOworICAgIGlmKCBBSW5wdXRFdmVudF9nZXRUeXBlKCBldmVudCApID09IEFJTlBVVF9FVkVOVF9UWVBFX01PVElPTiApCisgICAgeworICAgICAgICBuZGtfaGVscGVyOjpHRVNUVVJFX1NUQVRFIGRvdWJsZVRhcFN0YXRlID0gZW5nLT5kb3VibGV0YXBfZGV0ZWN0b3JfLkRldGVjdCggZXZlbnQgKTsKKyAgICAgICAgbmRrX2hlbHBlcjo6R0VTVFVSRV9TVEFURSBkcmFnU3RhdGUgPSBlbmctPmRyYWdfZGV0ZWN0b3JfLkRldGVjdCggZXZlbnQgKTsKKyAgICAgICAgbmRrX2hlbHBlcjo6R0VTVFVSRV9TVEFURSBwaW5jaFN0YXRlID0gZW5nLT5waW5jaF9kZXRlY3Rvcl8uRGV0ZWN0KCBldmVudCApOworCisgICAgICAgIC8vRG91YmxlIHRhcCBkZXRlY3RvciBoYXMgYSBwcmlvcml0eSBvdmVyIG90aGVyIGRldGVjdG9ycworICAgICAgICBpZiggZG91YmxlVGFwU3RhdGUgPT0gbmRrX2hlbHBlcjo6R0VTVFVSRV9TVEFURV9BQ1RJT04gKQorICAgICAgICB7CisgICAgICAgICAgICAvL0RldGVjdCBkb3VibGUgdGFwCisgICAgICAgICAgICBlbmctPnRhcF9jYW1lcmFfLlJlc2V0KCB0cnVlICk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgICAvL0hhbmRsZSBkcmFnIHN0YXRlCisgICAgICAgICAgICBpZiggZHJhZ1N0YXRlICYgbmRrX2hlbHBlcjo6R0VTVFVSRV9TVEFURV9TVEFSVCApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy9PdGhlcndpc2UsIHN0YXJ0IGRyYWdnaW5nCisgICAgICAgICAgICAgICAgbmRrX2hlbHBlcjo6VmVjMiB2OworICAgICAgICAgICAgICAgIGVuZy0+ZHJhZ19kZXRlY3Rvcl8uR2V0UG9pbnRlciggdiApOworICAgICAgICAgICAgICAgIGVuZy0+VHJhbnNmb3JtUG9zaXRpb24oIHYgKTsKKyAgICAgICAgICAgICAgICBlbmctPnRhcF9jYW1lcmFfLkJlZ2luRHJhZyggdiApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiggZHJhZ1N0YXRlICYgbmRrX2hlbHBlcjo6R0VTVFVSRV9TVEFURV9NT1ZFICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBuZGtfaGVscGVyOjpWZWMyIHY7CisgICAgICAgICAgICAgICAgZW5nLT5kcmFnX2RldGVjdG9yXy5HZXRQb2ludGVyKCB2ICk7CisgICAgICAgICAgICAgICAgZW5nLT5UcmFuc2Zvcm1Qb3NpdGlvbiggdiApOworICAgICAgICAgICAgICAgIGVuZy0+dGFwX2NhbWVyYV8uRHJhZyggdiApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiggZHJhZ1N0YXRlICYgbmRrX2hlbHBlcjo6R0VTVFVSRV9TVEFURV9FTkQgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVuZy0+dGFwX2NhbWVyYV8uRW5kRHJhZygpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvL0hhbmRsZSBwaW5jaCBzdGF0ZQorICAgICAgICAgICAgaWYoIHBpbmNoU3RhdGUgJiBuZGtfaGVscGVyOjpHRVNUVVJFX1NUQVRFX1NUQVJUICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvL1N0YXJ0IG5ldyBwaW5jaAorICAgICAgICAgICAgICAgIG5ka19oZWxwZXI6OlZlYzIgdjE7CisgICAgICAgICAgICAgICAgbmRrX2hlbHBlcjo6VmVjMiB2MjsKKyAgICAgICAgICAgICAgICBlbmctPnBpbmNoX2RldGVjdG9yXy5HZXRQb2ludGVycyggdjEsIHYyICk7CisgICAgICAgICAgICAgICAgZW5nLT5UcmFuc2Zvcm1Qb3NpdGlvbiggdjEgKTsKKyAgICAgICAgICAgICAgICBlbmctPlRyYW5zZm9ybVBvc2l0aW9uKCB2MiApOworICAgICAgICAgICAgICAgIGVuZy0+dGFwX2NhbWVyYV8uQmVnaW5QaW5jaCggdjEsIHYyICk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmKCBwaW5jaFN0YXRlICYgbmRrX2hlbHBlcjo6R0VTVFVSRV9TVEFURV9NT1ZFICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvL011bHRpIHRvdWNoCisgICAgICAgICAgICAgICAgLy9TdGFydCBuZXcgcGluY2gKKyAgICAgICAgICAgICAgICBuZGtfaGVscGVyOjpWZWMyIHYxOworICAgICAgICAgICAgICAgIG5ka19oZWxwZXI6OlZlYzIgdjI7CisgICAgICAgICAgICAgICAgZW5nLT5waW5jaF9kZXRlY3Rvcl8uR2V0UG9pbnRlcnMoIHYxLCB2MiApOworICAgICAgICAgICAgICAgIGVuZy0+VHJhbnNmb3JtUG9zaXRpb24oIHYxICk7CisgICAgICAgICAgICAgICAgZW5nLT5UcmFuc2Zvcm1Qb3NpdGlvbiggdjIgKTsKKyAgICAgICAgICAgICAgICBlbmctPnRhcF9jYW1lcmFfLlBpbmNoKCB2MSwgdjIgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKKy8qKgorICogUHJvY2VzcyB0aGUgbmV4dCBtYWluIGNvbW1hbmQuCisgKi8KK3ZvaWQgRW5naW5lOjpIYW5kbGVDbWQoIHN0cnVjdCBhbmRyb2lkX2FwcCogYXBwLAorICAgICAgICBpbnQzMl90IGNtZCApCit7CisgICAgRW5naW5lKiBlbmcgPSAoRW5naW5lKikgYXBwLT51c2VyRGF0YTsKKyAgICBzd2l0Y2goIGNtZCApCisgICAgeworICAgIGNhc2UgQVBQX0NNRF9TQVZFX1NUQVRFOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFQUF9DTURfSU5JVF9XSU5ET1c6CisgICAgICAgIC8vIFRoZSB3aW5kb3cgaXMgYmVpbmcgc2hvd24sIGdldCBpdCByZWFkeS4KKyAgICAgICAgaWYoIGFwcC0+d2luZG93ICE9IE5VTEwgKQorICAgICAgICB7CisgICAgICAgICAgICBlbmctPkluaXREaXNwbGF5KCk7CisgICAgICAgICAgICBlbmctPkRyYXdGcmFtZSgpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVBQX0NNRF9URVJNX1dJTkRPVzoKKyAgICAgICAgLy8gVGhlIHdpbmRvdyBpcyBiZWluZyBoaWRkZW4gb3IgY2xvc2VkLCBjbGVhbiBpdCB1cC4KKyAgICAgICAgZW5nLT5UZXJtRGlzcGxheSgpOworICAgICAgICBlbmctPmhhc19mb2N1c18gPSBmYWxzZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBUFBfQ01EX1NUT1A6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVBQX0NNRF9HQUlORURfRk9DVVM6CisgICAgICAgIGVuZy0+UmVzdW1lU2Vuc29ycygpOworICAgICAgICAvL1N0YXJ0IGFuaW1hdGlvbgorICAgICAgICBlbmctPmhhc19mb2N1c18gPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFQUF9DTURfTE9TVF9GT0NVUzoKKyAgICAgICAgZW5nLT5TdXNwZW5kU2Vuc29ycygpOworICAgICAgICAvLyBBbHNvIHN0b3AgYW5pbWF0aW5nLgorICAgICAgICBlbmctPmhhc19mb2N1c18gPSBmYWxzZTsKKyAgICAgICAgZW5nLT5EcmF3RnJhbWUoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBUFBfQ01EX0xPV19NRU1PUlk6CisgICAgICAgIC8vRnJlZSB1cCBHTCByZXNvdXJjZXMKKyAgICAgICAgZW5nLT5UcmltTWVtb3J5KCk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvL1NlbnNvciBoYW5kbGVycworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit2b2lkIEVuZ2luZTo6SW5pdFNlbnNvcnMoKQoreworICAgIHNlbnNvcl9tYW5hZ2VyXyA9IEFTZW5zb3JNYW5hZ2VyX2dldEluc3RhbmNlKCk7CisgICAgYWNjZWxlcm9tZXRlcl9zZW5zb3JfID0gQVNlbnNvck1hbmFnZXJfZ2V0RGVmYXVsdFNlbnNvciggc2Vuc29yX21hbmFnZXJfLAorICAgICAgICAgICAgQVNFTlNPUl9UWVBFX0FDQ0VMRVJPTUVURVIgKTsKKyAgICBzZW5zb3JfZXZlbnRfcXVldWVfID0gQVNlbnNvck1hbmFnZXJfY3JlYXRlRXZlbnRRdWV1ZSggc2Vuc29yX21hbmFnZXJfLCBhcHBfLT5sb29wZXIsCisgICAgICAgICAgICBMT09QRVJfSURfVVNFUiwgTlVMTCwgTlVMTCApOworfQorCit2b2lkIEVuZ2luZTo6UHJvY2Vzc1NlbnNvcnMoIGludDMyX3QgaWQgKQoreworICAgIC8vIElmIGEgc2Vuc29yIGhhcyBkYXRhLCBwcm9jZXNzIGl0IG5vdy4KKyAgICBpZiggaWQgPT0gTE9PUEVSX0lEX1VTRVIgKQorICAgIHsKKyAgICAgICAgaWYoIGFjY2VsZXJvbWV0ZXJfc2Vuc29yXyAhPSBOVUxMICkKKyAgICAgICAgeworICAgICAgICAgICAgQVNlbnNvckV2ZW50IGV2ZW50OworICAgICAgICAgICAgd2hpbGUoIEFTZW5zb3JFdmVudFF1ZXVlX2dldEV2ZW50cyggc2Vuc29yX2V2ZW50X3F1ZXVlXywgJmV2ZW50LCAxICkgPiAwICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBFbmdpbmU6OlJlc3VtZVNlbnNvcnMoKQoreworICAgIC8vIFdoZW4gb3VyIGFwcCBnYWlucyBmb2N1cywgd2Ugc3RhcnQgbW9uaXRvcmluZyB0aGUgYWNjZWxlcm9tZXRlci4KKyAgICBpZiggYWNjZWxlcm9tZXRlcl9zZW5zb3JfICE9IE5VTEwgKQorICAgIHsKKyAgICAgICAgQVNlbnNvckV2ZW50UXVldWVfZW5hYmxlU2Vuc29yKCBzZW5zb3JfZXZlbnRfcXVldWVfLCBhY2NlbGVyb21ldGVyX3NlbnNvcl8gKTsKKyAgICAgICAgLy8gV2UnZCBsaWtlIHRvIGdldCA2MCBldmVudHMgcGVyIHNlY29uZCAoaW4gdXMpLgorICAgICAgICBBU2Vuc29yRXZlbnRRdWV1ZV9zZXRFdmVudFJhdGUoIHNlbnNvcl9ldmVudF9xdWV1ZV8sIGFjY2VsZXJvbWV0ZXJfc2Vuc29yXywKKyAgICAgICAgICAgICAgICAoMTAwMEwgLyA2MCkgKiAxMDAwICk7CisgICAgfQorfQorCit2b2lkIEVuZ2luZTo6U3VzcGVuZFNlbnNvcnMoKQoreworICAgIC8vIFdoZW4gb3VyIGFwcCBsb3NlcyBmb2N1cywgd2Ugc3RvcCBtb25pdG9yaW5nIHRoZSBhY2NlbGVyb21ldGVyLgorICAgIC8vIFRoaXMgaXMgdG8gYXZvaWQgY29uc3VtaW5nIGJhdHRlcnkgd2hpbGUgbm90IGJlaW5nIHVzZWQuCisgICAgaWYoIGFjY2VsZXJvbWV0ZXJfc2Vuc29yXyAhPSBOVUxMICkKKyAgICB7CisgICAgICAgIEFTZW5zb3JFdmVudFF1ZXVlX2Rpc2FibGVTZW5zb3IoIHNlbnNvcl9ldmVudF9xdWV1ZV8sIGFjY2VsZXJvbWV0ZXJfc2Vuc29yXyApOworICAgIH0KK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvL01pc2MKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQordm9pZCBFbmdpbmU6OlNldFN0YXRlKCBhbmRyb2lkX2FwcCogc3RhdGUgKQoreworICAgIGFwcF8gPSBzdGF0ZTsKKyAgICBkb3VibGV0YXBfZGV0ZWN0b3JfLlNldENvbmZpZ3VyYXRpb24oIGFwcF8tPmNvbmZpZyApOworICAgIGRyYWdfZGV0ZWN0b3JfLlNldENvbmZpZ3VyYXRpb24oIGFwcF8tPmNvbmZpZyApOworICAgIHBpbmNoX2RldGVjdG9yXy5TZXRDb25maWd1cmF0aW9uKCBhcHBfLT5jb25maWcgKTsKK30KKworYm9vbCBFbmdpbmU6OklzUmVhZHkoKQoreworICAgIGlmKCBoYXNfZm9jdXNfICkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgRW5naW5lOjpUcmFuc2Zvcm1Qb3NpdGlvbiggbmRrX2hlbHBlcjo6VmVjMiYgdmVjICkKK3sKKyAgICB2ZWMgPSBuZGtfaGVscGVyOjpWZWMyKCAyLjBmLCAyLjBmICkgKiB2ZWMKKyAgICAgICAgICAgIC8gbmRrX2hlbHBlcjo6VmVjMiggZ2xfY29udGV4dF8tPkdldFNjcmVlbldpZHRoKCksIGdsX2NvbnRleHRfLT5HZXRTY3JlZW5IZWlnaHQoKSApCisgICAgICAgICAgICAtIG5ka19oZWxwZXI6OlZlYzIoIDEuZiwgMS5mICk7Cit9CisKK3ZvaWQgRW5naW5lOjpTaG93VUkoKQoreworICAgIEpOSUVudiAqam5pOworICAgIGFwcF8tPmFjdGl2aXR5LT52bS0+QXR0YWNoQ3VycmVudFRocmVhZCggJmpuaSwgTlVMTCApOworCisgICAgLy9EZWZhdWx0IGNsYXNzIHJldHJpZXZhbAorICAgIGpjbGFzcyBjbGF6eiA9IGpuaS0+R2V0T2JqZWN0Q2xhc3MoIGFwcF8tPmFjdGl2aXR5LT5jbGF6eiApOworICAgIGptZXRob2RJRCBtZXRob2RJRCA9IGpuaS0+R2V0TWV0aG9kSUQoIGNsYXp6LCAic2hvd1VJIiwgIigpViIgKTsKKyAgICBqbmktPkNhbGxWb2lkTWV0aG9kKCBhcHBfLT5hY3Rpdml0eS0+Y2xhenosIG1ldGhvZElEICk7CisKKyAgICBhcHBfLT5hY3Rpdml0eS0+dm0tPkRldGFjaEN1cnJlbnRUaHJlYWQoKTsKKyAgICByZXR1cm47Cit9CisKK3ZvaWQgRW5naW5lOjpVcGRhdGVGUFMoIGZsb2F0IGZGUFMgKQoreworICAgIEpOSUVudiAqam5pOworICAgIGFwcF8tPmFjdGl2aXR5LT52bS0+QXR0YWNoQ3VycmVudFRocmVhZCggJmpuaSwgTlVMTCApOworCisgICAgLy9EZWZhdWx0IGNsYXNzIHJldHJpZXZhbAorICAgIGpjbGFzcyBjbGF6eiA9IGpuaS0+R2V0T2JqZWN0Q2xhc3MoIGFwcF8tPmFjdGl2aXR5LT5jbGF6eiApOworICAgIGptZXRob2RJRCBtZXRob2RJRCA9IGpuaS0+R2V0TWV0aG9kSUQoIGNsYXp6LCAidXBkYXRlRlBTIiwgIihGKVYiICk7CisgICAgam5pLT5DYWxsVm9pZE1ldGhvZCggYXBwXy0+YWN0aXZpdHktPmNsYXp6LCBtZXRob2RJRCwgZkZQUyApOworCisgICAgYXBwXy0+YWN0aXZpdHktPnZtLT5EZXRhY2hDdXJyZW50VGhyZWFkKCk7CisgICAgcmV0dXJuOworfQorCitFbmdpbmUgZ19lbmdpbmU7CisKKy8qKgorICogVGhpcyBpcyB0aGUgbWFpbiBlbnRyeSBwb2ludCBvZiBhIG5hdGl2ZSBhcHBsaWNhdGlvbiB0aGF0IGlzIHVzaW5nCisgKiBhbmRyb2lkX25hdGl2ZV9hcHBfZ2x1ZS4gIEl0IHJ1bnMgaW4gaXRzIG93biB0aHJlYWQsIHdpdGggaXRzIG93bgorICogZXZlbnQgbG9vcCBmb3IgcmVjZWl2aW5nIGlucHV0IGV2ZW50cyBhbmQgZG9pbmcgb3RoZXIgdGhpbmdzLgorICovCit2b2lkIGFuZHJvaWRfbWFpbiggYW5kcm9pZF9hcHAqIHN0YXRlICkKK3sKKyAgICBhcHBfZHVtbXkoKTsKKworICAgIGdfZW5naW5lLlNldFN0YXRlKCBzdGF0ZSApOworCisgICAgLy9Jbml0IGhlbHBlciBmdW5jdGlvbnMKKyAgICBuZGtfaGVscGVyOjpKTklIZWxwZXI6OkluaXQoIHN0YXRlLT5hY3Rpdml0eSwgSEVMUEVSX0NMQVNTX05BTUUgKTsKKworICAgIHN0YXRlLT51c2VyRGF0YSA9ICZnX2VuZ2luZTsKKyAgICBzdGF0ZS0+b25BcHBDbWQgPSBFbmdpbmU6OkhhbmRsZUNtZDsKKyAgICBzdGF0ZS0+b25JbnB1dEV2ZW50ID0gRW5naW5lOjpIYW5kbGVJbnB1dDsKKworI2lmZGVmIFVTRV9OREtfUFJPRklMRVIKKyAgICBtb25zdGFydHVwKCJsaWJUZWFwb3ROYXRpdmVBY3Rpdml0eS5zbyIpOworI2VuZGlmCisKKyAgICAvLyBQcmVwYXJlIHRvIG1vbml0b3IgYWNjZWxlcm9tZXRlcgorICAgIGdfZW5naW5lLkluaXRTZW5zb3JzKCk7CisKKyAgICAvLyBsb29wIHdhaXRpbmcgZm9yIHN0dWZmIHRvIGRvLgorICAgIHdoaWxlKCAxICkKKyAgICB7CisgICAgICAgIC8vIFJlYWQgYWxsIHBlbmRpbmcgZXZlbnRzLgorICAgICAgICBpbnQgaWQ7CisgICAgICAgIGludCBldmVudHM7CisgICAgICAgIGFuZHJvaWRfcG9sbF9zb3VyY2UqIHNvdXJjZTsKKworICAgICAgICAvLyBJZiBub3QgYW5pbWF0aW5nLCB3ZSB3aWxsIGJsb2NrIGZvcmV2ZXIgd2FpdGluZyBmb3IgZXZlbnRzLgorICAgICAgICAvLyBJZiBhbmltYXRpbmcsIHdlIGxvb3AgdW50aWwgYWxsIGV2ZW50cyBhcmUgcmVhZCwgdGhlbiBjb250aW51ZQorICAgICAgICAvLyB0byBkcmF3IHRoZSBuZXh0IGZyYW1lIG9mIGFuaW1hdGlvbi4KKyAgICAgICAgd2hpbGUoIChpZCA9IEFMb29wZXJfcG9sbEFsbCggZ19lbmdpbmUuSXNSZWFkeSgpID8gMCA6IC0xLCBOVUxMLCAmZXZlbnRzLCAodm9pZCoqKSAmc291cmNlICkpCisgICAgICAgICAgICAgICAgPj0gMCApCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIFByb2Nlc3MgdGhpcyBldmVudC4KKyAgICAgICAgICAgIGlmKCBzb3VyY2UgIT0gTlVMTCApCisgICAgICAgICAgICAgICAgc291cmNlLT5wcm9jZXNzKCBzdGF0ZSwgc291cmNlICk7CisKKyAgICAgICAgICAgIGdfZW5naW5lLlByb2Nlc3NTZW5zb3JzKCBpZCApOworCisgICAgICAgICAgICAvLyBDaGVjayBpZiB3ZSBhcmUgZXhpdGluZy4KKyAgICAgICAgICAgIGlmKCBzdGF0ZS0+ZGVzdHJveVJlcXVlc3RlZCAhPSAwICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBnX2VuZ2luZS5UZXJtRGlzcGxheSgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmKCBnX2VuZ2luZS5Jc1JlYWR5KCkgKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBEcmF3aW5nIGlzIHRocm90dGxlZCB0byB0aGUgc2NyZWVuIHVwZGF0ZSByYXRlLCBzbyB0aGVyZQorICAgICAgICAgICAgLy8gaXMgbm8gbmVlZCB0byBkbyB0aW1pbmcgaGVyZS4KKyAgICAgICAgICAgIGdfZW5naW5lLkRyYXdGcmFtZSgpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE3L3NhbXBsZXMvVGVhcG90L2puaS9UZWFwb3RSZW5kZXJlci5jcHAgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTcvc2FtcGxlcy9UZWFwb3Qvam5pL1RlYXBvdFJlbmRlcmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzIxM2RjCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE3L3NhbXBsZXMvVGVhcG90L2puaS9UZWFwb3RSZW5kZXJlci5jcHAKQEAgLTAsMCArMSwyODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFRlYXBvdFJlbmRlcmVyLmNwcAorLy8gUmVuZGVyIGEgdGVhcG90CisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBJbmNsdWRlIGZpbGVzCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjaW5jbHVkZSAiVGVhcG90UmVuZGVyZXIuaCIKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gVGVhcG90IG1vZGVsIGRhdGEKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyNpbmNsdWRlICJ0ZWFwb3QuaW5sIgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBDdG9yCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitUZWFwb3RSZW5kZXJlcjo6VGVhcG90UmVuZGVyZXIoKQoreworCit9CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIER0b3IKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1RlYXBvdFJlbmRlcmVyOjp+VGVhcG90UmVuZGVyZXIoKQoreworICAgIFVubG9hZCgpOworfQorCit2b2lkIFRlYXBvdFJlbmRlcmVyOjpJbml0KCkKK3sKKyAgICAvL1NldHRpbmdzCisgICAgZ2xGcm9udEZhY2UoIEdMX0NDVyApOworCisgICAgLy9Mb2FkIHNoYWRlcgorICAgIExvYWRTaGFkZXJzKCAmc2hhZGVyX3BhcmFtXywgIlNoYWRlcnMvVlNfU2hhZGVyUGxhaW4udnNoIiwKKyAgICAgICAgICAgICJTaGFkZXJzL1NoYWRlclBsYWluLmZzaCIgKTsKKworICAgIC8vQ3JlYXRlIEluZGV4IGJ1ZmZlcgorICAgIG51bV9pbmRpY2VzXyA9IHNpemVvZih0ZWFwb3RJbmRpY2VzKSAvIHNpemVvZih0ZWFwb3RJbmRpY2VzWzBdKTsKKyAgICBnbEdlbkJ1ZmZlcnMoIDEsICZpYm9fICk7CisgICAgZ2xCaW5kQnVmZmVyKCBHTF9FTEVNRU5UX0FSUkFZX0JVRkZFUiwgaWJvXyApOworICAgIGdsQnVmZmVyRGF0YSggR0xfRUxFTUVOVF9BUlJBWV9CVUZGRVIsIHNpemVvZih0ZWFwb3RJbmRpY2VzKSwgdGVhcG90SW5kaWNlcywKKyAgICAgICAgICAgIEdMX1NUQVRJQ19EUkFXICk7CisgICAgZ2xCaW5kQnVmZmVyKCBHTF9FTEVNRU5UX0FSUkFZX0JVRkZFUiwgMCApOworCisgICAgLy9DcmVhdGUgVkJPCisgICAgbnVtX3ZlcnRpY2VzXyA9IHNpemVvZih0ZWFwb3RQb3NpdGlvbnMpIC8gc2l6ZW9mKHRlYXBvdFBvc2l0aW9uc1swXSkgLyAzOworICAgIGludDMyX3QgaVN0cmlkZSA9IHNpemVvZihURUFQT1RfVkVSVEVYKTsKKyAgICBpbnQzMl90IGlJbmRleCA9IDA7CisgICAgVEVBUE9UX1ZFUlRFWCogcCA9IG5ldyBURUFQT1RfVkVSVEVYW251bV92ZXJ0aWNlc19dOworICAgIGZvciggaW50MzJfdCBpID0gMDsgaSA8IG51bV92ZXJ0aWNlc187ICsraSApCisgICAgeworICAgICAgICBwW2ldLnBvc1swXSA9IHRlYXBvdFBvc2l0aW9uc1tpSW5kZXhdOworICAgICAgICBwW2ldLnBvc1sxXSA9IHRlYXBvdFBvc2l0aW9uc1tpSW5kZXggKyAxXTsKKyAgICAgICAgcFtpXS5wb3NbMl0gPSB0ZWFwb3RQb3NpdGlvbnNbaUluZGV4ICsgMl07CisKKyAgICAgICAgcFtpXS5ub3JtYWxbMF0gPSB0ZWFwb3ROb3JtYWxzW2lJbmRleF07CisgICAgICAgIHBbaV0ubm9ybWFsWzFdID0gdGVhcG90Tm9ybWFsc1tpSW5kZXggKyAxXTsKKyAgICAgICAgcFtpXS5ub3JtYWxbMl0gPSB0ZWFwb3ROb3JtYWxzW2lJbmRleCArIDJdOworICAgICAgICBpSW5kZXggKz0gMzsKKyAgICB9CisgICAgZ2xHZW5CdWZmZXJzKCAxLCAmdmJvXyApOworICAgIGdsQmluZEJ1ZmZlciggR0xfQVJSQVlfQlVGRkVSLCB2Ym9fICk7CisgICAgZ2xCdWZmZXJEYXRhKCBHTF9BUlJBWV9CVUZGRVIsIGlTdHJpZGUgKiBudW1fdmVydGljZXNfLCBwLCBHTF9TVEFUSUNfRFJBVyApOworICAgIGdsQmluZEJ1ZmZlciggR0xfQVJSQVlfQlVGRkVSLCAwICk7CisKKyAgICBkZWxldGVbXSBwOworCisgICAgVXBkYXRlVmlld3BvcnQoKTsKKyAgICBtYXRfbW9kZWxfID0gbmRrX2hlbHBlcjo6TWF0NDo6VHJhbnNsYXRpb24oIDAsIDAsIC0xNS5mICk7CisKKyAgICBuZGtfaGVscGVyOjpNYXQ0IG1hdCA9IG5ka19oZWxwZXI6Ok1hdDQ6OlJvdGF0aW9uWCggTV9QSSAvIDMgKTsKKyAgICBtYXRfbW9kZWxfID0gbWF0ICogbWF0X21vZGVsXzsKK30KKwordm9pZCBUZWFwb3RSZW5kZXJlcjo6VXBkYXRlVmlld3BvcnQoKQoreworICAgIC8vSW5pdCBQcm9qZWN0aW9uIG1hdHJpY2VzCisgICAgaW50MzJfdCB2aWV3cG9ydFs0XTsKKyAgICBnbEdldEludGVnZXJ2KCBHTF9WSUVXUE9SVCwgdmlld3BvcnQgKTsKKyAgICBmbG9hdCBmQXNwZWN0ID0gKGZsb2F0KSB2aWV3cG9ydFsyXSAvIChmbG9hdCkgdmlld3BvcnRbM107CisKKyAgICBjb25zdCBmbG9hdCBDQU1fTkVBUiA9IDUuZjsKKyAgICBjb25zdCBmbG9hdCBDQU1fRkFSID0gMTAwMDAuZjsKKyAgICBib29sIGJSb3RhdGUgPSBmYWxzZTsKKyAgICBtYXRfcHJvamVjdGlvbl8gPSBuZGtfaGVscGVyOjpNYXQ0OjpQZXJzcGVjdGl2ZSggZkFzcGVjdCwgMS5mLCBDQU1fTkVBUiwgQ0FNX0ZBUiApOworfQorCit2b2lkIFRlYXBvdFJlbmRlcmVyOjpVbmxvYWQoKQoreworICAgIGlmKCB2Ym9fICkKKyAgICB7CisgICAgICAgIGdsRGVsZXRlQnVmZmVycyggMSwgJnZib18gKTsKKyAgICAgICAgdmJvXyA9IDA7CisgICAgfQorCisgICAgaWYoIGlib18gKQorICAgIHsKKyAgICAgICAgZ2xEZWxldGVCdWZmZXJzKCAxLCAmaWJvXyApOworICAgICAgICBpYm9fID0gMDsKKyAgICB9CisKKyAgICBpZiggc2hhZGVyX3BhcmFtXy5wcm9ncmFtXyApCisgICAgeworICAgICAgICBnbERlbGV0ZVByb2dyYW0oIHNoYWRlcl9wYXJhbV8ucHJvZ3JhbV8gKTsKKyAgICAgICAgc2hhZGVyX3BhcmFtXy5wcm9ncmFtXyA9IDA7CisgICAgfQorfQorCit2b2lkIFRlYXBvdFJlbmRlcmVyOjpVcGRhdGUoIGZsb2F0IGZUaW1lICkKK3sKKyAgICBjb25zdCBmbG9hdCBDQU1fWCA9IDAuZjsKKyAgICBjb25zdCBmbG9hdCBDQU1fWSA9IDAuZjsKKyAgICBjb25zdCBmbG9hdCBDQU1fWiA9IDcwMC5mOworCisgICAgbWF0X3ZpZXdfID0gbmRrX2hlbHBlcjo6TWF0NDo6TG9va0F0KCBuZGtfaGVscGVyOjpWZWMzKCBDQU1fWCwgQ0FNX1ksIENBTV9aICksCisgICAgICAgICAgICBuZGtfaGVscGVyOjpWZWMzKCAwLmYsIDAuZiwgMC5mICksIG5ka19oZWxwZXI6OlZlYzMoIDAuZiwgMS5mLCAwLmYgKSApOworCisgICAgaWYoIGNhbWVyYV8gKQorICAgIHsKKyAgICAgICAgY2FtZXJhXy0+VXBkYXRlKCk7CisgICAgICAgIG1hdF92aWV3XyA9IGNhbWVyYV8tPkdldFRyYW5zZm9ybU1hdHJpeCgpICogbWF0X3ZpZXdfCisgICAgICAgICAgICAgICAgKiBjYW1lcmFfLT5HZXRSb3RhdGlvbk1hdHJpeCgpICogbWF0X21vZGVsXzsKKyAgICB9CisgICAgZWxzZQorICAgIHsKKyAgICAgICAgbWF0X3ZpZXdfID0gbWF0X3ZpZXdfICogbWF0X21vZGVsXzsKKyAgICB9Cit9CisKK3ZvaWQgVGVhcG90UmVuZGVyZXI6OlJlbmRlcigpCit7CisgICAgLy8KKyAgICAvLyBGZWVkIFByb2plY3Rpb24gYW5kIE1vZGVsIFZpZXcgbWF0cmljZXMgdG8gdGhlIHNoYWRlcnMKKyAgICBuZGtfaGVscGVyOjpNYXQ0IG1hdF92cCA9IG1hdF9wcm9qZWN0aW9uXyAqIG1hdF92aWV3XzsKKworICAgIC8vIEJpbmQgdGhlIFZCTworICAgIGdsQmluZEJ1ZmZlciggR0xfQVJSQVlfQlVGRkVSLCB2Ym9fICk7CisKKyAgICBpbnQzMl90IGlTdHJpZGUgPSBzaXplb2YoVEVBUE9UX1ZFUlRFWCk7CisgICAgLy8gUGFzcyB0aGUgdmVydGV4IGRhdGEKKyAgICBnbFZlcnRleEF0dHJpYlBvaW50ZXIoIEFUVFJJQl9WRVJURVgsIDMsIEdMX0ZMT0FULCBHTF9GQUxTRSwgaVN0cmlkZSwKKyAgICAgICAgICAgIEJVRkZFUl9PRkZTRVQoIDAgKSApOworICAgIGdsRW5hYmxlVmVydGV4QXR0cmliQXJyYXkoIEFUVFJJQl9WRVJURVggKTsKKworICAgIGdsVmVydGV4QXR0cmliUG9pbnRlciggQVRUUklCX05PUk1BTCwgMywgR0xfRkxPQVQsIEdMX0ZBTFNFLCBpU3RyaWRlLAorICAgICAgICAgICAgQlVGRkVSX09GRlNFVCggMyAqIHNpemVvZihHTGZsb2F0KSApICk7CisgICAgZ2xFbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSggQVRUUklCX05PUk1BTCApOworCisgICAgLy8gQmluZCB0aGUgSUIKKyAgICBnbEJpbmRCdWZmZXIoIEdMX0VMRU1FTlRfQVJSQVlfQlVGRkVSLCBpYm9fICk7CisKKyAgICBnbFVzZVByb2dyYW0oIHNoYWRlcl9wYXJhbV8ucHJvZ3JhbV8gKTsKKworICAgIFRFQVBPVF9NQVRFUklBTFMgbWF0ZXJpYWwgPSB7IHsgMS4wZiwgMC41ZiwgMC41ZiB9LCB7IDEuMGYsIDEuMGYsIDEuMGYsIDEwLmYgfSwgeworICAgICAgICAgICAgMC4xZiwgMC4xZiwgMC4xZiB9LCB9OworCisgICAgLy9VcGRhdGUgdW5pZm9ybXMKKyAgICBnbFVuaWZvcm00Ziggc2hhZGVyX3BhcmFtXy5tYXRlcmlhbF9kaWZmdXNlXywgbWF0ZXJpYWwuZGlmZnVzZV9jb2xvclswXSwKKyAgICAgICAgICAgIG1hdGVyaWFsLmRpZmZ1c2VfY29sb3JbMV0sIG1hdGVyaWFsLmRpZmZ1c2VfY29sb3JbMl0sIDEuZiApOworCisgICAgZ2xVbmlmb3JtNGYoIHNoYWRlcl9wYXJhbV8ubWF0ZXJpYWxfc3BlY3VsYXJfLCBtYXRlcmlhbC5zcGVjdWxhcl9jb2xvclswXSwKKyAgICAgICAgICAgIG1hdGVyaWFsLnNwZWN1bGFyX2NvbG9yWzFdLCBtYXRlcmlhbC5zcGVjdWxhcl9jb2xvclsyXSwKKyAgICAgICAgICAgIG1hdGVyaWFsLnNwZWN1bGFyX2NvbG9yWzNdICk7CisgICAgLy8KKyAgICAvL3VzaW5nIGdsVW5pZm9ybTNmdiBoZXJlIHdhcyB0cm91Ymxlc29tZQorICAgIC8vCisgICAgZ2xVbmlmb3JtM2YoIHNoYWRlcl9wYXJhbV8ubWF0ZXJpYWxfYW1iaWVudF8sIG1hdGVyaWFsLmFtYmllbnRfY29sb3JbMF0sCisgICAgICAgICAgICBtYXRlcmlhbC5hbWJpZW50X2NvbG9yWzFdLCBtYXRlcmlhbC5hbWJpZW50X2NvbG9yWzJdICk7CisKKyAgICBnbFVuaWZvcm1NYXRyaXg0ZnYoIHNoYWRlcl9wYXJhbV8ubWF0cml4X3Byb2plY3Rpb25fLCAxLCBHTF9GQUxTRSwgbWF0X3ZwLlB0cigpICk7CisgICAgZ2xVbmlmb3JtTWF0cml4NGZ2KCBzaGFkZXJfcGFyYW1fLm1hdHJpeF92aWV3XywgMSwgR0xfRkFMU0UsIG1hdF92aWV3Xy5QdHIoKSApOworICAgIGdsVW5pZm9ybTNmKCBzaGFkZXJfcGFyYW1fLmxpZ2h0MF8sIDEwMC5mLCAtMjAwLmYsIC02MDAuZiApOworCisgICAgZ2xEcmF3RWxlbWVudHMoIEdMX1RSSUFOR0xFUywgbnVtX2luZGljZXNfLCBHTF9VTlNJR05FRF9TSE9SVCwgQlVGRkVSX09GRlNFVCgwKSApOworCisgICAgZ2xCaW5kQnVmZmVyKCBHTF9BUlJBWV9CVUZGRVIsIDAgKTsKKyAgICBnbEJpbmRCdWZmZXIoIEdMX0VMRU1FTlRfQVJSQVlfQlVGRkVSLCAwICk7Cit9CisKK2Jvb2wgVGVhcG90UmVuZGVyZXI6OkxvYWRTaGFkZXJzKCBTSEFERVJfUEFSQU1TKiBwYXJhbXMsCisgICAgICAgIGNvbnN0IGNoYXIqIHN0clZzaCwKKyAgICAgICAgY29uc3QgY2hhciogc3RyRnNoICkKK3sKKyAgICBHTHVpbnQgcHJvZ3JhbTsKKyAgICBHTHVpbnQgdmVydF9zaGFkZXIsIGZyYWdfc2hhZGVyOworICAgIGNoYXIgKnZlcnRfc2hhZGVyX3BhdGhuYW1lLCAqZnJhZ19zaGFkZXJfcGF0aG5hbWU7CisKKyAgICAvLyBDcmVhdGUgc2hhZGVyIHByb2dyYW0KKyAgICBwcm9ncmFtID0gZ2xDcmVhdGVQcm9ncmFtKCk7CisgICAgTE9HSSggIkNyZWF0ZWQgU2hhZGVyICVkIiwgcHJvZ3JhbSApOworCisgICAgLy8gQ3JlYXRlIGFuZCBjb21waWxlIHZlcnRleCBzaGFkZXIKKyAgICBpZiggIW5ka19oZWxwZXI6OnNoYWRlcjo6Q29tcGlsZVNoYWRlciggJnZlcnRfc2hhZGVyLCBHTF9WRVJURVhfU0hBREVSLCBzdHJWc2ggKSApCisgICAgeworICAgICAgICBMT0dJKCAiRmFpbGVkIHRvIGNvbXBpbGUgdmVydGV4IHNoYWRlciIgKTsKKyAgICAgICAgZ2xEZWxldGVQcm9ncmFtKCBwcm9ncmFtICk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvLyBDcmVhdGUgYW5kIGNvbXBpbGUgZnJhZ21lbnQgc2hhZGVyCisgICAgaWYoICFuZGtfaGVscGVyOjpzaGFkZXI6OkNvbXBpbGVTaGFkZXIoICZmcmFnX3NoYWRlciwgR0xfRlJBR01FTlRfU0hBREVSLCBzdHJGc2ggKSApCisgICAgeworICAgICAgICBMT0dJKCAiRmFpbGVkIHRvIGNvbXBpbGUgZnJhZ21lbnQgc2hhZGVyIiApOworICAgICAgICBnbERlbGV0ZVByb2dyYW0oIHByb2dyYW0gKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8vIEF0dGFjaCB2ZXJ0ZXggc2hhZGVyIHRvIHByb2dyYW0KKyAgICBnbEF0dGFjaFNoYWRlciggcHJvZ3JhbSwgdmVydF9zaGFkZXIgKTsKKworICAgIC8vIEF0dGFjaCBmcmFnbWVudCBzaGFkZXIgdG8gcHJvZ3JhbQorICAgIGdsQXR0YWNoU2hhZGVyKCBwcm9ncmFtLCBmcmFnX3NoYWRlciApOworCisgICAgLy8gQmluZCBhdHRyaWJ1dGUgbG9jYXRpb25zCisgICAgLy8gdGhpcyBuZWVkcyB0byBiZSBkb25lIHByaW9yIHRvIGxpbmtpbmcKKyAgICBnbEJpbmRBdHRyaWJMb2NhdGlvbiggcHJvZ3JhbSwgQVRUUklCX1ZFUlRFWCwgIm15VmVydGV4IiApOworICAgIGdsQmluZEF0dHJpYkxvY2F0aW9uKCBwcm9ncmFtLCBBVFRSSUJfTk9STUFMLCAibXlOb3JtYWwiICk7CisgICAgZ2xCaW5kQXR0cmliTG9jYXRpb24oIHByb2dyYW0sIEFUVFJJQl9VViwgIm15VVYiICk7CisKKyAgICAvLyBMaW5rIHByb2dyYW0KKyAgICBpZiggIW5ka19oZWxwZXI6OnNoYWRlcjo6TGlua1Byb2dyYW0oIHByb2dyYW0gKSApCisgICAgeworICAgICAgICBMT0dJKCAiRmFpbGVkIHRvIGxpbmsgcHJvZ3JhbTogJWQiLCBwcm9ncmFtICk7CisKKyAgICAgICAgaWYoIHZlcnRfc2hhZGVyICkKKyAgICAgICAgeworICAgICAgICAgICAgZ2xEZWxldGVTaGFkZXIoIHZlcnRfc2hhZGVyICk7CisgICAgICAgICAgICB2ZXJ0X3NoYWRlciA9IDA7CisgICAgICAgIH0KKyAgICAgICAgaWYoIGZyYWdfc2hhZGVyICkKKyAgICAgICAgeworICAgICAgICAgICAgZ2xEZWxldGVTaGFkZXIoIGZyYWdfc2hhZGVyICk7CisgICAgICAgICAgICBmcmFnX3NoYWRlciA9IDA7CisgICAgICAgIH0KKyAgICAgICAgaWYoIHByb2dyYW0gKQorICAgICAgICB7CisgICAgICAgICAgICBnbERlbGV0ZVByb2dyYW0oIHByb2dyYW0gKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvLyBHZXQgdW5pZm9ybSBsb2NhdGlvbnMKKyAgICBwYXJhbXMtPm1hdHJpeF9wcm9qZWN0aW9uXyA9IGdsR2V0VW5pZm9ybUxvY2F0aW9uKCBwcm9ncmFtLCAidVBNYXRyaXgiICk7CisgICAgcGFyYW1zLT5tYXRyaXhfdmlld18gPSBnbEdldFVuaWZvcm1Mb2NhdGlvbiggcHJvZ3JhbSwgInVNVk1hdHJpeCIgKTsKKworICAgIHBhcmFtcy0+bGlnaHQwXyA9IGdsR2V0VW5pZm9ybUxvY2F0aW9uKCBwcm9ncmFtLCAidkxpZ2h0MCIgKTsKKyAgICBwYXJhbXMtPm1hdGVyaWFsX2RpZmZ1c2VfID0gZ2xHZXRVbmlmb3JtTG9jYXRpb24oIHByb2dyYW0sICJ2TWF0ZXJpYWxEaWZmdXNlIiApOworICAgIHBhcmFtcy0+bWF0ZXJpYWxfYW1iaWVudF8gPSBnbEdldFVuaWZvcm1Mb2NhdGlvbiggcHJvZ3JhbSwgInZNYXRlcmlhbEFtYmllbnQiICk7CisgICAgcGFyYW1zLT5tYXRlcmlhbF9zcGVjdWxhcl8gPSBnbEdldFVuaWZvcm1Mb2NhdGlvbiggcHJvZ3JhbSwgInZNYXRlcmlhbFNwZWN1bGFyIiApOworCisgICAgLy8gUmVsZWFzZSB2ZXJ0ZXggYW5kIGZyYWdtZW50IHNoYWRlcnMKKyAgICBpZiggdmVydF9zaGFkZXIgKQorICAgICAgICBnbERlbGV0ZVNoYWRlciggdmVydF9zaGFkZXIgKTsKKyAgICBpZiggZnJhZ19zaGFkZXIgKQorICAgICAgICBnbERlbGV0ZVNoYWRlciggZnJhZ19zaGFkZXIgKTsKKworICAgIHBhcmFtcy0+cHJvZ3JhbV8gPSBwcm9ncmFtOworICAgIHJldHVybiB0cnVlOworfQorCitib29sIFRlYXBvdFJlbmRlcmVyOjpCaW5kKCBuZGtfaGVscGVyOjpUYXBDYW1lcmEqIGNhbWVyYSApCit7CisgICAgY2FtZXJhXyA9IGNhbWVyYTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE3L3NhbXBsZXMvVGVhcG90L2puaS9UZWFwb3RSZW5kZXJlci5oIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE3L3NhbXBsZXMvVGVhcG90L2puaS9UZWFwb3RSZW5kZXJlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwNGYyMTkKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTcvc2FtcGxlcy9UZWFwb3Qvam5pL1RlYXBvdFJlbmRlcmVyLmgKQEAgLTAsMCArMSwxMDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFRlYXBvdCBSZW5kZXJlci5oCisvLyBSZW5kZXJlciBmb3IgdGVhcG90cworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorI2lmbmRlZiBfVEVBUE9UUkVOREVSRVJfSAorI2RlZmluZSBfVEVBUE9UUkVOREVSRVJfSAorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBJbmNsdWRlIGZpbGVzCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjaW5jbHVkZSA8am5pLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKworI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgPEVHTC9lZ2wuaD4KKyNpbmNsdWRlIDxHTEVTL2dsLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL3NlbnNvci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisjaW5jbHVkZSA8YW5kcm9pZF9uYXRpdmVfYXBwX2dsdWUuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL25hdGl2ZV93aW5kb3dfam5pLmg+CisjaW5jbHVkZSA8Y3B1LWZlYXR1cmVzLmg+CisKKyNkZWZpbmUgQ0xBU1NfTkFNRSAiYW5kcm9pZC9hcHAvTmF0aXZlQWN0aXZpdHkiCisjZGVmaW5lIEFQUExJQ0FUSU9OX0NMQVNTX05BTUUgImNvbS9zYW1wbGUvdGVhcG90L1RlYXBvdEFwcGxpY2F0aW9uIgorCisjaW5jbHVkZSAiTkRLSGVscGVyLmgiCisKKyNkZWZpbmUgQlVGRkVSX09GRlNFVChpKSAoKGNoYXIgKilOVUxMICsgKGkpKQorCitzdHJ1Y3QgVEVBUE9UX1ZFUlRFWAoreworICAgIGZsb2F0IHBvc1szXTsKKyAgICBmbG9hdCBub3JtYWxbM107Cit9OworCitlbnVtIFNIQURFUl9BVFRSSUJVVEVTCit7CisgICAgQVRUUklCX1ZFUlRFWCwgQVRUUklCX05PUk1BTCwgQVRUUklCX1VWLAorfTsKKworc3RydWN0IFNIQURFUl9QQVJBTVMKK3sKKyAgICBHTHVpbnQgcHJvZ3JhbV87CisgICAgR0x1aW50IGxpZ2h0MF87CisgICAgR0x1aW50IG1hdGVyaWFsX2RpZmZ1c2VfOworICAgIEdMdWludCBtYXRlcmlhbF9hbWJpZW50XzsKKyAgICBHTHVpbnQgbWF0ZXJpYWxfc3BlY3VsYXJfOworCisgICAgR0x1aW50IG1hdHJpeF9wcm9qZWN0aW9uXzsKKyAgICBHTHVpbnQgbWF0cml4X3ZpZXdfOworfTsKKworc3RydWN0IFRFQVBPVF9NQVRFUklBTFMKK3sKKyAgICBmbG9hdCBkaWZmdXNlX2NvbG9yWzNdOworICAgIGZsb2F0IHNwZWN1bGFyX2NvbG9yWzRdOworICAgIGZsb2F0IGFtYmllbnRfY29sb3JbM107Cit9OworCitjbGFzcyBUZWFwb3RSZW5kZXJlcgoreworICAgIGludDMyX3QgbnVtX2luZGljZXNfOworICAgIGludDMyX3QgbnVtX3ZlcnRpY2VzXzsKKyAgICBHTHVpbnQgaWJvXzsKKyAgICBHTHVpbnQgdmJvXzsKKworICAgIFNIQURFUl9QQVJBTVMgc2hhZGVyX3BhcmFtXzsKKyAgICBib29sIExvYWRTaGFkZXJzKCBTSEFERVJfUEFSQU1TKiBwYXJhbXMsIGNvbnN0IGNoYXIqIHN0clZzaCwgY29uc3QgY2hhciogc3RyRnNoICk7CisKKyAgICBuZGtfaGVscGVyOjpNYXQ0IG1hdF9wcm9qZWN0aW9uXzsKKyAgICBuZGtfaGVscGVyOjpNYXQ0IG1hdF92aWV3XzsKKyAgICBuZGtfaGVscGVyOjpNYXQ0IG1hdF9tb2RlbF87CisKKyAgICBuZGtfaGVscGVyOjpUYXBDYW1lcmEqIGNhbWVyYV87CitwdWJsaWM6CisgICAgVGVhcG90UmVuZGVyZXIoKTsKKyAgICB2aXJ0dWFsIH5UZWFwb3RSZW5kZXJlcigpOworICAgIHZvaWQgSW5pdCgpOworICAgIHZvaWQgUmVuZGVyKCk7CisgICAgdm9pZCBVcGRhdGUoIGZsb2F0IGRUaW1lICk7CisgICAgYm9vbCBCaW5kKCBuZGtfaGVscGVyOjpUYXBDYW1lcmEqIGNhbWVyYSApOworICAgIHZvaWQgVW5sb2FkKCk7CisgICAgdm9pZCBVcGRhdGVWaWV3cG9ydCgpOworfTsKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNy9zYW1wbGVzL1RlYXBvdC9qbmkvdGVhcG90LmlubCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNy9zYW1wbGVzL1RlYXBvdC9qbmkvdGVhcG90LmlubApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZjQyYjg4Ci0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE3L3NhbXBsZXMvVGVhcG90L2puaS90ZWFwb3QuaW5sCkBAIC0wLDAgKzEsMjA1NyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworLy8KKy8vIFRlYXBvdC5pbmwKKy8vIERlcml2ZWQgZnJvbSBXZWJHTCBzYW1wbGUKKy8vIGh0dHBzOi8vZ2l0aHViLmNvbS9LaHJvbm9zR3JvdXAvV2ViR0wvYmxvYi9tYXN0ZXIvc2RrL2RlbW9zL2dvb2dsZS9zaGlueS10ZWFwb3QvdGVhcG90LXN0cmVhbXMuanMKKy8vCisKK2Zsb2F0IHRlYXBvdFBvc2l0aW9uc1tdID0geyAxNy44MzQ4OTk5MDIzNDM3NSwgMCwgMzAuNTczOTk5NDA0OTA3MjI3LCAxNi40NTI2OTk2NjEyNTQ4ODMsIC03LjAwMDE3OTc2NzYwODY0MywgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICAxNi4yMjMxMDA2NjIyMzE0NDUsIC02LjkwMjUyMDE3OTc0ODUzNSwgMzEuNTE0NjAwNzUzNzg0MTgsIDE3LjU4NjAwMDQ0MjUwNDg4MywgMCwgMzEuNTE0NjAwNzUzNzg0MTgsCisgICAgICAgIDE2LjQ4OTQwMDg2MzY0NzQ2LCAtNy4wMTU4MTAwMTI4MTczODMsIDMxLjgyODEwMDIwNDQ2Nzc3MywgMTcuODc0NzAwNTQ2MjY0NjUsIDAsIDMxLjgyODEwMDIwNDQ2Nzc3MywKKyAgICAgICAgMTcuMDMxMDk5MzE5NDU4MDA4LCAtNy4yNDYyODAxOTMzMjg4NTcsIDMxLjUxNDYwMDc1Mzc4NDE4LCAxOC40NjE5MDA3MTEwNTk1NywgMCwgMzEuNTE0NjAwNzUzNzg0MTgsCisgICAgICAgIDE3LjYyNzc5OTk4Nzc5Mjk3LCAtNy41MDAxOTk3OTQ3NjkyODcsIDMwLjU3Mzk5OTQwNDkwNzIyNywgMTkuMTA4ODAwODg4MDYxNTIzLCAwLCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIDEyLjY2MjY5OTY5OTQwMTg1NSwgLTEyLjY2MjY5OTY5OTQwMTg1NSwgMzAuNTczOTk5NDA0OTA3MjI3LCAxMi40ODYxMDAxOTY4MzgzNzksIC0xMi40ODYxMDAxOTY4MzgzNzksIDMxLjUxNDYwMDc1Mzc4NDE4LAorICAgICAgICAxMi42OTA5OTk5ODQ3NDEyMTEsIC0xMi42OTA5OTk5ODQ3NDEyMTEsIDMxLjgyODEwMDIwNDQ2Nzc3MywgMTMuMTA3ODk5NjY1ODMyNTIsIC0xMy4xMDc4OTk2NjU4MzI1MiwgMzEuNTE0NjAwNzUzNzg0MTgsCisgICAgICAgIDEzLjU2NzE5OTcwNzAzMTI1LCAtMTMuNTY3MTk5NzA3MDMxMjUsIDMwLjU3Mzk5OTQwNDkwNzIyNywgNy4wMDAxNzk3Njc2MDg2NDMsIC0xNi40NTI2OTk2NjEyNTQ4ODMsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgNi45MDI1MjAxNzk3NDg1MzUsIC0xNi4yMjMxMDA2NjIyMzE0NDUsIDMxLjUxNDYwMDc1Mzc4NDE4LCA3LjAxNTgxMDAxMjgxNzM4MywgLTE2LjQ4OTQwMDg2MzY0NzQ2LCAzMS44MjgxMDAyMDQ0Njc3NzMsCisgICAgICAgIDcuMjQ2MjgwMTkzMzI4ODU3LCAtMTcuMDMxMDk5MzE5NDU4MDA4LCAzMS41MTQ2MDA3NTM3ODQxOCwgNy41MDAxOTk3OTQ3NjkyODcsIC0xNy42Mjc3OTk5ODc3OTI5NywgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICAwLCAtMTcuODM0ODk5OTAyMzQzNzUsIDMwLjU3Mzk5OTQwNDkwNzIyNywgMCwgLTE3LjU4NjAwMDQ0MjUwNDg4MywgMzEuNTE0NjAwNzUzNzg0MTgsCisgICAgICAgIDAsIC0xNy44NzQ3MDA1NDYyNjQ2NSwgMzEuODI4MTAwMjA0NDY3NzczLCAwLCAtMTguNDYxOTAwNzExMDU5NTcsIDMxLjUxNDYwMDc1Mzc4NDE4LAorICAgICAgICAwLCAtMTkuMTA4ODAwODg4MDYxNTIzLCAzMC41NzM5OTk0MDQ5MDcyMjcsIDAsIC0xNy44MzQ4OTk5MDIzNDM3NSwgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICAtNy40ODM4NzAwMjk0NDk0NjMsIC0xNi40NTI2OTk2NjEyNTQ4ODMsIDMwLjU3Mzk5OTQwNDkwNzIyNywgLTcuMTA2NTc5NzgwNTc4NjEzLCAtMTYuMjIzMTAwNjYyMjMxNDQ1LCAzMS41MTQ2MDA3NTM3ODQxOCwKKyAgICAgICAgMCwgLTE3LjU4NjAwMDQ0MjUwNDg4MywgMzEuNTE0NjAwNzUzNzg0MTgsIC03LjA3NjI3MDEwMzQ1NDU5LCAtMTYuNDg5NDAwODYzNjQ3NDYsIDMxLjgyODEwMDIwNDQ2Nzc3MywKKyAgICAgICAgMCwgLTE3Ljg3NDcwMDU0NjI2NDY1LCAzMS44MjgxMDAyMDQ0Njc3NzMsIC03LjI1MzgzOTk2OTYzNTAxLCAtMTcuMDMxMDk5MzE5NDU4MDA4LCAzMS41MTQ2MDA3NTM3ODQxOCwKKyAgICAgICAgMCwgLTE4LjQ2MTkwMDcxMTA1OTU3LCAzMS41MTQ2MDA3NTM3ODQxOCwgLTcuNTAwMTk5Nzk0NzY5Mjg3LCAtMTcuNjI3Nzk5OTg3NzkyOTcsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgMCwgLTE5LjEwODgwMDg4ODA2MTUyMywgMzAuNTczOTk5NDA0OTA3MjI3LCAtMTMuMDkyNzAwMDA0NTc3NjM3LCAtMTIuNjYyNjk5Njk5NDAxODU1LCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIC0xMi42Njc0OTk1NDIyMzYzMjgsIC0xMi40ODYxMDAxOTY4MzgzNzksIDMxLjUxNDYwMDc1Mzc4NDE4LCAtMTIuNzQ0Nzk5NjEzOTUyNjM3LCAtMTIuNjkwOTk5OTg0NzQxMjExLCAzMS44MjgxMDAyMDQ0Njc3NzMsCisgICAgICAgIC0xMy4xMTQ2MDAxODE1Nzk1OSwgLTEzLjEwNzg5OTY2NTgzMjUyLCAzMS41MTQ2MDA3NTM3ODQxOCwgLTEzLjU2NzE5OTcwNzAzMTI1LCAtMTMuNTY3MTk5NzA3MDMxMjUsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgLTE2LjYxMzg5OTIzMDk1NzAzLCAtNy4wMDAxNzk3Njc2MDg2NDMsIDMwLjU3Mzk5OTQwNDkwNzIyNywgLTE2LjI5MTA5OTU0ODMzOTg0NCwgLTYuOTAyNTIwMTc5NzQ4NTM1LCAzMS41MTQ2MDA3NTM3ODQxOCwKKyAgICAgICAgLTE2LjUwOTUwMDUwMzU0MDA0LCAtNy4wMTU4MTAwMTI4MTczODMsIDMxLjgyODEwMDIwNDQ2Nzc3MywgLTE3LjAzMzU5OTg1MzUxNTYyNSwgLTcuMjQ2MjgwMTkzMzI4ODU3LCAzMS41MTQ2MDA3NTM3ODQxOCwKKyAgICAgICAgLTE3LjYyNzc5OTk4Nzc5Mjk3LCAtNy41MDAxOTk3OTQ3NjkyODcsIDMwLjU3Mzk5OTQwNDkwNzIyNywgLTE3LjgzNDg5OTkwMjM0Mzc1LCAwLCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIC0xNy41ODYwMDA0NDI1MDQ4ODMsIDAsIDMxLjUxNDYwMDc1Mzc4NDE4LCAtMTcuODc0NzAwNTQ2MjY0NjUsIDAsIDMxLjgyODEwMDIwNDQ2Nzc3MywKKyAgICAgICAgLTE4LjQ2MTkwMDcxMTA1OTU3LCAwLCAzMS41MTQ2MDA3NTM3ODQxOCwgLTE5LjEwODgwMDg4ODA2MTUyMywgMCwgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICAtMTcuODM0ODk5OTAyMzQzNzUsIDAsIDMwLjU3Mzk5OTQwNDkwNzIyNywgLTE2LjQ1MjY5OTY2MTI1NDg4MywgNy4wMDAxNzk3Njc2MDg2NDMsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgLTE2LjIyMzEwMDY2MjIzMTQ0NSwgNi45MDI1MjAxNzk3NDg1MzUsIDMxLjUxNDYwMDc1Mzc4NDE4LCAtMTcuNTg2MDAwNDQyNTA0ODgzLCAwLCAzMS41MTQ2MDA3NTM3ODQxOCwKKyAgICAgICAgLTE2LjQ4OTQwMDg2MzY0NzQ2LCA3LjAxNTgxMDAxMjgxNzM4MywgMzEuODI4MTAwMjA0NDY3NzczLCAtMTcuODc0NzAwNTQ2MjY0NjUsIDAsIDMxLjgyODEwMDIwNDQ2Nzc3MywKKyAgICAgICAgLTE3LjAzMTA5OTMxOTQ1ODAwOCwgNy4yNDYyODAxOTMzMjg4NTcsIDMxLjUxNDYwMDc1Mzc4NDE4LCAtMTguNDYxOTAwNzExMDU5NTcsIDAsIDMxLjUxNDYwMDc1Mzc4NDE4LAorICAgICAgICAtMTcuNjI3Nzk5OTg3NzkyOTcsIDcuNTAwMTk5Nzk0NzY5Mjg3LCAzMC41NzM5OTk0MDQ5MDcyMjcsIC0xOS4xMDg4MDA4ODgwNjE1MjMsIDAsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgLTEyLjY2MjY5OTY5OTQwMTg1NSwgMTIuNjYyNjk5Njk5NDAxODU1LCAzMC41NzM5OTk0MDQ5MDcyMjcsIC0xMi40ODYxMDAxOTY4MzgzNzksIDEyLjQ4NjEwMDE5NjgzODM3OSwgMzEuNTE0NjAwNzUzNzg0MTgsCisgICAgICAgIC0xMi42OTA5OTk5ODQ3NDEyMTEsIDEyLjY5MDk5OTk4NDc0MTIxMSwgMzEuODI4MTAwMjA0NDY3NzczLCAtMTMuMTA3ODk5NjY1ODMyNTIsIDEzLjEwNzg5OTY2NTgzMjUyLCAzMS41MTQ2MDA3NTM3ODQxOCwKKyAgICAgICAgLTEzLjU2NzE5OTcwNzAzMTI1LCAxMy41NjcxOTk3MDcwMzEyNSwgMzAuNTczOTk5NDA0OTA3MjI3LCAtNy4wMDAxNzk3Njc2MDg2NDMsIDE2LjQ1MjY5OTY2MTI1NDg4MywgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICAtNi45MDI1MjAxNzk3NDg1MzUsIDE2LjIyMzEwMDY2MjIzMTQ0NSwgMzEuNTE0NjAwNzUzNzg0MTgsIC03LjAxNTgxMDAxMjgxNzM4MywgMTYuNDg5NDAwODYzNjQ3NDYsIDMxLjgyODEwMDIwNDQ2Nzc3MywKKyAgICAgICAgLTcuMjQ2MjgwMTkzMzI4ODU3LCAxNy4wMzEwOTkzMTk0NTgwMDgsIDMxLjUxNDYwMDc1Mzc4NDE4LCAtNy41MDAxOTk3OTQ3NjkyODcsIDE3LjYyNzc5OTk4Nzc5Mjk3LCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIDAsIDE3LjgzNDg5OTkwMjM0Mzc1LCAzMC41NzM5OTk0MDQ5MDcyMjcsIDAsIDE3LjU4NjAwMDQ0MjUwNDg4MywgMzEuNTE0NjAwNzUzNzg0MTgsCisgICAgICAgIDAsIDE3Ljg3NDcwMDU0NjI2NDY1LCAzMS44MjgxMDAyMDQ0Njc3NzMsIDAsIDE4LjQ2MTkwMDcxMTA1OTU3LCAzMS41MTQ2MDA3NTM3ODQxOCwKKyAgICAgICAgMCwgMTkuMTA4ODAwODg4MDYxNTIzLCAzMC41NzM5OTk0MDQ5MDcyMjcsIDAsIDE3LjgzNDg5OTkwMjM0Mzc1LCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIDcuMDAwMTc5NzY3NjA4NjQzLCAxNi40NTI2OTk2NjEyNTQ4ODMsIDMwLjU3Mzk5OTQwNDkwNzIyNywgNi45MDI1MjAxNzk3NDg1MzUsIDE2LjIyMzEwMDY2MjIzMTQ0NSwgMzEuNTE0NjAwNzUzNzg0MTgsCisgICAgICAgIDAsIDE3LjU4NjAwMDQ0MjUwNDg4MywgMzEuNTE0NjAwNzUzNzg0MTgsIDcuMDE1ODEwMDEyODE3MzgzLCAxNi40ODk0MDA4NjM2NDc0NiwgMzEuODI4MTAwMjA0NDY3NzczLAorICAgICAgICAwLCAxNy44NzQ3MDA1NDYyNjQ2NSwgMzEuODI4MTAwMjA0NDY3NzczLCA3LjI0NjI4MDE5MzMyODg1NywgMTcuMDMxMDk5MzE5NDU4MDA4LCAzMS41MTQ2MDA3NTM3ODQxOCwKKyAgICAgICAgMCwgMTguNDYxOTAwNzExMDU5NTcsIDMxLjUxNDYwMDc1Mzc4NDE4LCA3LjUwMDE5OTc5NDc2OTI4NywgMTcuNjI3Nzk5OTg3NzkyOTcsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgMCwgMTkuMTA4ODAwODg4MDYxNTIzLCAzMC41NzM5OTk0MDQ5MDcyMjcsIDEyLjY2MjY5OTY5OTQwMTg1NSwgMTIuNjYyNjk5Njk5NDAxODU1LCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIDEyLjQ4NjEwMDE5NjgzODM3OSwgMTIuNDg2MTAwMTk2ODM4Mzc5LCAzMS41MTQ2MDA3NTM3ODQxOCwgMTIuNjkwOTk5OTg0NzQxMjExLCAxMi42OTA5OTk5ODQ3NDEyMTEsIDMxLjgyODEwMDIwNDQ2Nzc3MywKKyAgICAgICAgMTMuMTA3ODk5NjY1ODMyNTIsIDEzLjEwNzg5OTY2NTgzMjUyLCAzMS41MTQ2MDA3NTM3ODQxOCwgMTMuNTY3MTk5NzA3MDMxMjUsIDEzLjU2NzE5OTcwNzAzMTI1LCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIDE2LjQ1MjY5OTY2MTI1NDg4MywgNy4wMDAxNzk3Njc2MDg2NDMsIDMwLjU3Mzk5OTQwNDkwNzIyNywgMTYuMjIzMTAwNjYyMjMxNDQ1LCA2LjkwMjUyMDE3OTc0ODUzNSwgMzEuNTE0NjAwNzUzNzg0MTgsCisgICAgICAgIDE2LjQ4OTQwMDg2MzY0NzQ2LCA3LjAxNTgxMDAxMjgxNzM4MywgMzEuODI4MTAwMjA0NDY3NzczLCAxNy4wMzEwOTkzMTk0NTgwMDgsIDcuMjQ2MjgwMTkzMzI4ODU3LCAzMS41MTQ2MDA3NTM3ODQxOCwKKyAgICAgICAgMTcuNjI3Nzk5OTg3NzkyOTcsIDcuNTAwMTk5Nzk0NzY5Mjg3LCAzMC41NzM5OTk0MDQ5MDcyMjcsIDE3LjgzNDg5OTkwMjM0Mzc1LCAwLCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIDE3LjU4NjAwMDQ0MjUwNDg4MywgMCwgMzEuNTE0NjAwNzUzNzg0MTgsIDE3Ljg3NDcwMDU0NjI2NDY1LCAwLCAzMS44MjgxMDAyMDQ0Njc3NzMsCisgICAgICAgIDE4LjQ2MTkwMDcxMTA1OTU3LCAwLCAzMS41MTQ2MDA3NTM3ODQxOCwgMTkuMTA4ODAwODg4MDYxNTIzLCAwLCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIDE5LjEwODgwMDg4ODA2MTUyMywgMCwgMzAuNTczOTk5NDA0OTA3MjI3LCAxNy42Mjc3OTk5ODc3OTI5NywgLTcuNTAwMTk5Nzk0NzY5Mjg3LCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIDE5Ljc4NTQwMDM5MDYyNSwgLTguNDE4MTkwMDAyNDQxNDA2LCAyNS41NzI5MDA3NzIwOTQ3MjcsIDIxLjQ0NzU5OTQxMTAxMDc0MiwgMCwgMjUuNTcyOTAwNzcyMDk0NzI3LAorICAgICAgICAyMS42Njc2MDA2MzE3MTM4NjcsIC05LjIxODk5MDMyNTkyNzczNCwgMjAuNjYxMzk5ODQxMzA4NTk0LCAyMy40ODc4OTk3ODAyNzM0MzgsIDAsIDIwLjY2MTM5OTg0MTMwODU5NCwKKyAgICAgICAgMjIuOTk4ODAwMjc3NzA5OTYsIC05Ljc4NTQwOTkyNzM2ODE2NCwgMTUuOTI4OTk5OTAwODE3ODcxLCAyNC45MzA5OTk3NTU4NTkzNzUsIDAsIDE1LjkyODk5OTkwMDgxNzg3MSwKKyAgICAgICAgMjMuNTAzNzk5NDM4NDc2NTYyLCAtMTAuMDAwMzAwNDA3NDA5NjY4LCAxMS40NjUyOTk2MDYzMjMyNDIsIDI1LjQ3ODM5OTI3NjczMzQsIDAsIDExLjQ2NTI5OTYwNjMyMzI0MiwKKyAgICAgICAgMTMuNTY3MTk5NzA3MDMxMjUsIC0xMy41NjcxOTk3MDcwMzEyNSwgMzAuNTczOTk5NDA0OTA3MjI3LCAxNS4yMjc4MDAzNjkyNjI2OTUsIC0xNS4yMjc4MDAzNjkyNjI2OTUsIDI1LjU3MjkwMDc3MjA5NDcyNywKKyAgICAgICAgMTYuNjc2Mzk5MjMwOTU3MDMsIC0xNi42NzYzOTkyMzA5NTcwMywgMjAuNjYxMzk5ODQxMzA4NTk0LCAxNy43MDEwMDAyMTM2MjMwNDcsIC0xNy43MDEwMDAyMTM2MjMwNDcsIDE1LjkyODk5OTkwMDgxNzg3MSwKKyAgICAgICAgMTguMDg5NTk5NjA5Mzc1LCAtMTguMDg5NTk5NjA5Mzc1LCAxMS40NjUyOTk2MDYzMjMyNDIsIDcuNTAwMTk5Nzk0NzY5Mjg3LCAtMTcuNjI3Nzk5OTg3NzkyOTcsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgOC40MTgxOTAwMDI0NDE0MDYsIC0xOS43ODU0MDAzOTA2MjUsIDI1LjU3MjkwMDc3MjA5NDcyNywgOS4yMTg5OTAzMjU5Mjc3MzQsIC0yMS42Njc2MDA2MzE3MTM4NjcsIDIwLjY2MTM5OTg0MTMwODU5NCwKKyAgICAgICAgOS43ODU0MDk5MjczNjgxNjQsIC0yMi45OTg4MDAyNzc3MDk5NiwgMTUuOTI4OTk5OTAwODE3ODcxLCAxMC4wMDAzMDA0MDc0MDk2NjgsIC0yMy41MDM3OTk0Mzg0NzY1NjIsIDExLjQ2NTI5OTYwNjMyMzI0MiwKKyAgICAgICAgMCwgLTE5LjEwODgwMDg4ODA2MTUyMywgMzAuNTczOTk5NDA0OTA3MjI3LCAwLCAtMjEuNDQ3NTk5NDExMDEwNzQyLCAyNS41NzI5MDA3NzIwOTQ3MjcsCisgICAgICAgIDAsIC0yMy40ODc4OTk3ODAyNzM0MzgsIDIwLjY2MTM5OTg0MTMwODU5NCwgMCwgLTI0LjkzMDk5OTc1NTg1OTM3NSwgMTUuOTI4OTk5OTAwODE3ODcxLAorICAgICAgICAwLCAtMjUuNDc4Mzk5Mjc2NzMzNCwgMTEuNDY1Mjk5NjA2MzIzMjQyLCAwLCAtMTkuMTA4ODAwODg4MDYxNTIzLCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIC03LjUwMDE5OTc5NDc2OTI4NywgLTE3LjYyNzc5OTk4Nzc5Mjk3LCAzMC41NzM5OTk0MDQ5MDcyMjcsIC04LjQxODE5MDAwMjQ0MTQwNiwgLTE5Ljc4NTQwMDM5MDYyNSwgMjUuNTcyOTAwNzcyMDk0NzI3LAorICAgICAgICAwLCAtMjEuNDQ3NTk5NDExMDEwNzQyLCAyNS41NzI5MDA3NzIwOTQ3MjcsIC05LjIxODk5MDMyNTkyNzczNCwgLTIxLjY2NzYwMDYzMTcxMzg2NywgMjAuNjYxMzk5ODQxMzA4NTk0LAorICAgICAgICAwLCAtMjMuNDg3ODk5NzgwMjczNDM4LCAyMC42NjEzOTk4NDEzMDg1OTQsIC05Ljc4NTQwOTkyNzM2ODE2NCwgLTIyLjk5ODgwMDI3NzcwOTk2LCAxNS45Mjg5OTk5MDA4MTc4NzEsCisgICAgICAgIDAsIC0yNC45MzA5OTk3NTU4NTkzNzUsIDE1LjkyODk5OTkwMDgxNzg3MSwgLTEwLjAwMDMwMDQwNzQwOTY2OCwgLTIzLjUwMzc5OTQzODQ3NjU2MiwgMTEuNDY1Mjk5NjA2MzIzMjQyLAorICAgICAgICAwLCAtMjUuNDc4Mzk5Mjc2NzMzNCwgMTEuNDY1Mjk5NjA2MzIzMjQyLCAtMTMuNTY3MTk5NzA3MDMxMjUsIC0xMy41NjcxOTk3MDcwMzEyNSwgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICAtMTUuMjI3ODAwMzY5MjYyNjk1LCAtMTUuMjI3ODAwMzY5MjYyNjk1LCAyNS41NzI5MDA3NzIwOTQ3MjcsIC0xNi42NzYzOTkyMzA5NTcwMywgLTE2LjY3NjM5OTIzMDk1NzAzLCAyMC42NjEzOTk4NDEzMDg1OTQsCisgICAgICAgIC0xNy43MDEwMDAyMTM2MjMwNDcsIC0xNy43MDEwMDAyMTM2MjMwNDcsIDE1LjkyODk5OTkwMDgxNzg3MSwgLTE4LjA4OTU5OTYwOTM3NSwgLTE4LjA4OTU5OTYwOTM3NSwgMTEuNDY1Mjk5NjA2MzIzMjQyLAorICAgICAgICAtMTcuNjI3Nzk5OTg3NzkyOTcsIC03LjUwMDE5OTc5NDc2OTI4NywgMzAuNTczOTk5NDA0OTA3MjI3LCAtMTkuNzg1NDAwMzkwNjI1LCAtOC40MTgxOTAwMDI0NDE0MDYsIDI1LjU3MjkwMDc3MjA5NDcyNywKKyAgICAgICAgLTIxLjY2NzYwMDYzMTcxMzg2NywgLTkuMjE4OTkwMzI1OTI3NzM0LCAyMC42NjEzOTk4NDEzMDg1OTQsIC0yMi45OTg4MDAyNzc3MDk5NiwgLTkuNzg1NDA5OTI3MzY4MTY0LCAxNS45Mjg5OTk5MDA4MTc4NzEsCisgICAgICAgIC0yMy41MDM3OTk0Mzg0NzY1NjIsIC0xMC4wMDAzMDA0MDc0MDk2NjgsIDExLjQ2NTI5OTYwNjMyMzI0MiwgLTE5LjEwODgwMDg4ODA2MTUyMywgMCwgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICAtMjEuNDQ3NTk5NDExMDEwNzQyLCAwLCAyNS41NzI5MDA3NzIwOTQ3MjcsIC0yMy40ODc4OTk3ODAyNzM0MzgsIDAsIDIwLjY2MTM5OTg0MTMwODU5NCwKKyAgICAgICAgLTI0LjkzMDk5OTc1NTg1OTM3NSwgMCwgMTUuOTI4OTk5OTAwODE3ODcxLCAtMjUuNDc4Mzk5Mjc2NzMzNCwgMCwgMTEuNDY1Mjk5NjA2MzIzMjQyLAorICAgICAgICAtMTkuMTA4ODAwODg4MDYxNTIzLCAwLCAzMC41NzM5OTk0MDQ5MDcyMjcsIC0xNy42Mjc3OTk5ODc3OTI5NywgNy41MDAxOTk3OTQ3NjkyODcsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgLTE5Ljc4NTQwMDM5MDYyNSwgOC40MTgxOTAwMDI0NDE0MDYsIDI1LjU3MjkwMDc3MjA5NDcyNywgLTIxLjQ0NzU5OTQxMTAxMDc0MiwgMCwgMjUuNTcyOTAwNzcyMDk0NzI3LAorICAgICAgICAtMjEuNjY3NjAwNjMxNzEzODY3LCA5LjIxODk5MDMyNTkyNzczNCwgMjAuNjYxMzk5ODQxMzA4NTk0LCAtMjMuNDg3ODk5NzgwMjczNDM4LCAwLCAyMC42NjEzOTk4NDEzMDg1OTQsCisgICAgICAgIC0yMi45OTg4MDAyNzc3MDk5NiwgOS43ODU0MDk5MjczNjgxNjQsIDE1LjkyODk5OTkwMDgxNzg3MSwgLTI0LjkzMDk5OTc1NTg1OTM3NSwgMCwgMTUuOTI4OTk5OTAwODE3ODcxLAorICAgICAgICAtMjMuNTAzNzk5NDM4NDc2NTYyLCAxMC4wMDAzMDA0MDc0MDk2NjgsIDExLjQ2NTI5OTYwNjMyMzI0MiwgLTI1LjQ3ODM5OTI3NjczMzQsIDAsIDExLjQ2NTI5OTYwNjMyMzI0MiwKKyAgICAgICAgLTEzLjU2NzE5OTcwNzAzMTI1LCAxMy41NjcxOTk3MDcwMzEyNSwgMzAuNTczOTk5NDA0OTA3MjI3LCAtMTUuMjI3ODAwMzY5MjYyNjk1LCAxNS4yMjc4MDAzNjkyNjI2OTUsIDI1LjU3MjkwMDc3MjA5NDcyNywKKyAgICAgICAgLTE2LjY3NjM5OTIzMDk1NzAzLCAxNi42NzYzOTkyMzA5NTcwMywgMjAuNjYxMzk5ODQxMzA4NTk0LCAtMTcuNzAxMDAwMjEzNjIzMDQ3LCAxNy43MDEwMDAyMTM2MjMwNDcsIDE1LjkyODk5OTkwMDgxNzg3MSwKKyAgICAgICAgLTE4LjA4OTU5OTYwOTM3NSwgMTguMDg5NTk5NjA5Mzc1LCAxMS40NjUyOTk2MDYzMjMyNDIsIC03LjUwMDE5OTc5NDc2OTI4NywgMTcuNjI3Nzk5OTg3NzkyOTcsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgLTguNDE4MTkwMDAyNDQxNDA2LCAxOS43ODU0MDAzOTA2MjUsIDI1LjU3MjkwMDc3MjA5NDcyNywgLTkuMjE4OTkwMzI1OTI3NzM0LCAyMS42Njc2MDA2MzE3MTM4NjcsIDIwLjY2MTM5OTg0MTMwODU5NCwKKyAgICAgICAgLTkuNzg1NDA5OTI3MzY4MTY0LCAyMi45OTg4MDAyNzc3MDk5NiwgMTUuOTI4OTk5OTAwODE3ODcxLCAtMTAuMDAwMzAwNDA3NDA5NjY4LCAyMy41MDM3OTk0Mzg0NzY1NjIsIDExLjQ2NTI5OTYwNjMyMzI0MiwKKyAgICAgICAgMCwgMTkuMTA4ODAwODg4MDYxNTIzLCAzMC41NzM5OTk0MDQ5MDcyMjcsIDAsIDIxLjQ0NzU5OTQxMTAxMDc0MiwgMjUuNTcyOTAwNzcyMDk0NzI3LAorICAgICAgICAwLCAyMy40ODc4OTk3ODAyNzM0MzgsIDIwLjY2MTM5OTg0MTMwODU5NCwgMCwgMjQuOTMwOTk5NzU1ODU5Mzc1LCAxNS45Mjg5OTk5MDA4MTc4NzEsCisgICAgICAgIDAsIDI1LjQ3ODM5OTI3NjczMzQsIDExLjQ2NTI5OTYwNjMyMzI0MiwgMCwgMTkuMTA4ODAwODg4MDYxNTIzLCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIDcuNTAwMTk5Nzk0NzY5Mjg3LCAxNy42Mjc3OTk5ODc3OTI5NywgMzAuNTczOTk5NDA0OTA3MjI3LCA4LjQxODE5MDAwMjQ0MTQwNiwgMTkuNzg1NDAwMzkwNjI1LCAyNS41NzI5MDA3NzIwOTQ3MjcsCisgICAgICAgIDAsIDIxLjQ0NzU5OTQxMTAxMDc0MiwgMjUuNTcyOTAwNzcyMDk0NzI3LCA5LjIxODk5MDMyNTkyNzczNCwgMjEuNjY3NjAwNjMxNzEzODY3LCAyMC42NjEzOTk4NDEzMDg1OTQsCisgICAgICAgIDAsIDIzLjQ4Nzg5OTc4MDI3MzQzOCwgMjAuNjYxMzk5ODQxMzA4NTk0LCA5Ljc4NTQwOTkyNzM2ODE2NCwgMjIuOTk4ODAwMjc3NzA5OTYsIDE1LjkyODk5OTkwMDgxNzg3MSwKKyAgICAgICAgMCwgMjQuOTMwOTk5NzU1ODU5Mzc1LCAxNS45Mjg5OTk5MDA4MTc4NzEsIDEwLjAwMDMwMDQwNzQwOTY2OCwgMjMuNTAzNzk5NDM4NDc2NTYyLCAxMS40NjUyOTk2MDYzMjMyNDIsCisgICAgICAgIDAsIDI1LjQ3ODM5OTI3NjczMzQsIDExLjQ2NTI5OTYwNjMyMzI0MiwgMTMuNTY3MTk5NzA3MDMxMjUsIDEzLjU2NzE5OTcwNzAzMTI1LCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIDE1LjIyNzgwMDM2OTI2MjY5NSwgMTUuMjI3ODAwMzY5MjYyNjk1LCAyNS41NzI5MDA3NzIwOTQ3MjcsIDE2LjY3NjM5OTIzMDk1NzAzLCAxNi42NzYzOTkyMzA5NTcwMywgMjAuNjYxMzk5ODQxMzA4NTk0LAorICAgICAgICAxNy43MDEwMDAyMTM2MjMwNDcsIDE3LjcwMTAwMDIxMzYyMzA0NywgMTUuOTI4OTk5OTAwODE3ODcxLCAxOC4wODk1OTk2MDkzNzUsIDE4LjA4OTU5OTYwOTM3NSwgMTEuNDY1Mjk5NjA2MzIzMjQyLAorICAgICAgICAxNy42Mjc3OTk5ODc3OTI5NywgNy41MDAxOTk3OTQ3NjkyODcsIDMwLjU3Mzk5OTQwNDkwNzIyNywgMTkuNzg1NDAwMzkwNjI1LCA4LjQxODE5MDAwMjQ0MTQwNiwgMjUuNTcyOTAwNzcyMDk0NzI3LAorICAgICAgICAyMS42Njc2MDA2MzE3MTM4NjcsIDkuMjE4OTkwMzI1OTI3NzM0LCAyMC42NjEzOTk4NDEzMDg1OTQsIDIyLjk5ODgwMDI3NzcwOTk2LCA5Ljc4NTQwOTkyNzM2ODE2NCwgMTUuOTI4OTk5OTAwODE3ODcxLAorICAgICAgICAyMy41MDM3OTk0Mzg0NzY1NjIsIDEwLjAwMDMwMDQwNzQwOTY2OCwgMTEuNDY1Mjk5NjA2MzIzMjQyLCAxOS4xMDg4MDA4ODgwNjE1MjMsIDAsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgMjEuNDQ3NTk5NDExMDEwNzQyLCAwLCAyNS41NzI5MDA3NzIwOTQ3MjcsIDIzLjQ4Nzg5OTc4MDI3MzQzOCwgMCwgMjAuNjYxMzk5ODQxMzA4NTk0LAorICAgICAgICAyNC45MzA5OTk3NTU4NTkzNzUsIDAsIDE1LjkyODk5OTkwMDgxNzg3MSwgMjUuNDc4Mzk5Mjc2NzMzNCwgMCwgMTEuNDY1Mjk5NjA2MzIzMjQyLAorICAgICAgICAyNS40NzgzOTkyNzY3MzM0LCAwLCAxMS40NjUyOTk2MDYzMjMyNDIsIDIzLjUwMzc5OTQzODQ3NjU2MiwgLTEwLjAwMDMwMDQwNzQwOTY2OCwgMTEuNDY1Mjk5NjA2MzIzMjQyLAorICAgICAgICAyMi41ODU2OTkwODE0MjA5LCAtOS42MDk2MjAwOTQyOTkzMTYsIDcuNjg4MzAwMTMyNzUxNDY1LCAyNC40ODMxMDA4OTExMTMyOCwgMCwgNy42ODgzMDAxMzI3NTE0NjUsCisgICAgICAgIDIwLjU2NTc5OTcxMzEzNDc2NiwgLTguNzUwMjI5ODM1NTEwMjU0LCA0Ljg5NjYxOTc5Njc1MjkzLCAyMi4yOTM2MDAwODIzOTc0NiwgMCwgNC44OTY2MTk3OTY3NTI5MywKKyAgICAgICAgMTguNTQ1OTk5NTI2OTc3NTQsIC03Ljg5MDgzMDAzOTk3ODAyNywgMy4wMDA2Njk5NTYyMDcyNzU0LCAyMC4xMDQwMDAwOTE1NTI3MzQsIDAsIDMuMDAwNjY5OTU2MjA3Mjc1NCwKKyAgICAgICAgMTcuNjI3Nzk5OTg3NzkyOTcsIC03LjUwMDE5OTc5NDc2OTI4NywgMS45MTA4Nzk5Njk1OTY4NjI4LCAxOS4xMDg4MDA4ODgwNjE1MjMsIDAsIDEuOTEwODc5OTY5NTk2ODYyOCwKKyAgICAgICAgMTguMDg5NTk5NjA5Mzc1LCAtMTguMDg5NTk5NjA5Mzc1LCAxMS40NjUyOTk2MDYzMjMyNDIsIDE3LjM4Mjk5OTQyMDE2NjAxNiwgLTE3LjM4Mjk5OTQyMDE2NjAxNiwgNy42ODgzMDAxMzI3NTE0NjUsCisgICAgICAgIDE1LjgyODM5OTY1ODIwMzEyNSwgLTE1LjgyODM5OTY1ODIwMzEyNSwgNC44OTY2MTk3OTY3NTI5MywgMTQuMjczOTAwMDMyMDQzNDU3LCAtMTQuMjczOTAwMDMyMDQzNDU3LCAzLjAwMDY2OTk1NjIwNzI3NTQsCisgICAgICAgIDEzLjU2NzE5OTcwNzAzMTI1LCAtMTMuNTY3MTk5NzA3MDMxMjUsIDEuOTEwODc5OTY5NTk2ODYyOCwgMTAuMDAwMzAwNDA3NDA5NjY4LCAtMjMuNTAzNzk5NDM4NDc2NTYyLCAxMS40NjUyOTk2MDYzMjMyNDIsCisgICAgICAgIDkuNjA5NjIwMDk0Mjk5MzE2LCAtMjIuNTg1Njk5MDgxNDIwOSwgNy42ODgzMDAxMzI3NTE0NjUsIDguNzUwMjI5ODM1NTEwMjU0LCAtMjAuNTY1Nzk5NzEzMTM0NzY2LCA0Ljg5NjYxOTc5Njc1MjkzLAorICAgICAgICA3Ljg5MDgzMDAzOTk3ODAyNywgLTE4LjU0NTk5OTUyNjk3NzU0LCAzLjAwMDY2OTk1NjIwNzI3NTQsIDcuNTAwMTk5Nzk0NzY5Mjg3LCAtMTcuNjI3Nzk5OTg3NzkyOTcsIDEuOTEwODc5OTY5NTk2ODYyOCwKKyAgICAgICAgMCwgLTI1LjQ3ODM5OTI3NjczMzQsIDExLjQ2NTI5OTYwNjMyMzI0MiwgMCwgLTI0LjQ4MzEwMDg5MTExMzI4LCA3LjY4ODMwMDEzMjc1MTQ2NSwKKyAgICAgICAgMCwgLTIyLjI5MzYwMDA4MjM5NzQ2LCA0Ljg5NjYxOTc5Njc1MjkzLCAwLCAtMjAuMTA0MDAwMDkxNTUyNzM0LCAzLjAwMDY2OTk1NjIwNzI3NTQsCisgICAgICAgIDAsIC0xOS4xMDg4MDA4ODgwNjE1MjMsIDEuOTEwODc5OTY5NTk2ODYyOCwgMCwgLTI1LjQ3ODM5OTI3NjczMzQsIDExLjQ2NTI5OTYwNjMyMzI0MiwKKyAgICAgICAgLTEwLjAwMDMwMDQwNzQwOTY2OCwgLTIzLjUwMzc5OTQzODQ3NjU2MiwgMTEuNDY1Mjk5NjA2MzIzMjQyLCAtOS42MDk2MjAwOTQyOTkzMTYsIC0yMi41ODU2OTkwODE0MjA5LCA3LjY4ODMwMDEzMjc1MTQ2NSwKKyAgICAgICAgMCwgLTI0LjQ4MzEwMDg5MTExMzI4LCA3LjY4ODMwMDEzMjc1MTQ2NSwgLTguNzUwMjI5ODM1NTEwMjU0LCAtMjAuNTY1Nzk5NzEzMTM0NzY2LCA0Ljg5NjYxOTc5Njc1MjkzLAorICAgICAgICAwLCAtMjIuMjkzNjAwMDgyMzk3NDYsIDQuODk2NjE5Nzk2NzUyOTMsIC03Ljg5MDgzMDAzOTk3ODAyNywgLTE4LjU0NTk5OTUyNjk3NzU0LCAzLjAwMDY2OTk1NjIwNzI3NTQsCisgICAgICAgIDAsIC0yMC4xMDQwMDAwOTE1NTI3MzQsIDMuMDAwNjY5OTU2MjA3Mjc1NCwgLTcuNTAwMTk5Nzk0NzY5Mjg3LCAtMTcuNjI3Nzk5OTg3NzkyOTcsIDEuOTEwODc5OTY5NTk2ODYyOCwKKyAgICAgICAgMCwgLTE5LjEwODgwMDg4ODA2MTUyMywgMS45MTA4Nzk5Njk1OTY4NjI4LCAtMTguMDg5NTk5NjA5Mzc1LCAtMTguMDg5NTk5NjA5Mzc1LCAxMS40NjUyOTk2MDYzMjMyNDIsCisgICAgICAgIC0xNy4zODI5OTk0MjAxNjYwMTYsIC0xNy4zODI5OTk0MjAxNjYwMTYsIDcuNjg4MzAwMTMyNzUxNDY1LCAtMTUuODI4Mzk5NjU4MjAzMTI1LCAtMTUuODI4Mzk5NjU4MjAzMTI1LCA0Ljg5NjYxOTc5Njc1MjkzLAorICAgICAgICAtMTQuMjczOTAwMDMyMDQzNDU3LCAtMTQuMjczOTAwMDMyMDQzNDU3LCAzLjAwMDY2OTk1NjIwNzI3NTQsIC0xMy41NjcxOTk3MDcwMzEyNSwgLTEzLjU2NzE5OTcwNzAzMTI1LCAxLjkxMDg3OTk2OTU5Njg2MjgsCisgICAgICAgIC0yMy41MDM3OTk0Mzg0NzY1NjIsIC0xMC4wMDAzMDA0MDc0MDk2NjgsIDExLjQ2NTI5OTYwNjMyMzI0MiwgLTIyLjU4NTY5OTA4MTQyMDksIC05LjYwOTYyMDA5NDI5OTMxNiwgNy42ODgzMDAxMzI3NTE0NjUsCisgICAgICAgIC0yMC41NjU3OTk3MTMxMzQ3NjYsIC04Ljc1MDIyOTgzNTUxMDI1NCwgNC44OTY2MTk3OTY3NTI5MywgLTE4LjU0NTk5OTUyNjk3NzU0LCAtNy44OTA4MzAwMzk5NzgwMjcsIDMuMDAwNjY5OTU2MjA3Mjc1NCwKKyAgICAgICAgLTE3LjYyNzc5OTk4Nzc5Mjk3LCAtNy41MDAxOTk3OTQ3NjkyODcsIDEuOTEwODc5OTY5NTk2ODYyOCwgLTI1LjQ3ODM5OTI3NjczMzQsIDAsIDExLjQ2NTI5OTYwNjMyMzI0MiwKKyAgICAgICAgLTI0LjQ4MzEwMDg5MTExMzI4LCAwLCA3LjY4ODMwMDEzMjc1MTQ2NSwgLTIyLjI5MzYwMDA4MjM5NzQ2LCAwLCA0Ljg5NjYxOTc5Njc1MjkzLAorICAgICAgICAtMjAuMTA0MDAwMDkxNTUyNzM0LCAwLCAzLjAwMDY2OTk1NjIwNzI3NTQsIC0xOS4xMDg4MDA4ODgwNjE1MjMsIDAsIDEuOTEwODc5OTY5NTk2ODYyOCwKKyAgICAgICAgLTI1LjQ3ODM5OTI3NjczMzQsIDAsIDExLjQ2NTI5OTYwNjMyMzI0MiwgLTIzLjUwMzc5OTQzODQ3NjU2MiwgMTAuMDAwMzAwNDA3NDA5NjY4LCAxMS40NjUyOTk2MDYzMjMyNDIsCisgICAgICAgIC0yMi41ODU2OTkwODE0MjA5LCA5LjYwOTYyMDA5NDI5OTMxNiwgNy42ODgzMDAxMzI3NTE0NjUsIC0yNC40ODMxMDA4OTExMTMyOCwgMCwgNy42ODgzMDAxMzI3NTE0NjUsCisgICAgICAgIC0yMC41NjU3OTk3MTMxMzQ3NjYsIDguNzUwMjI5ODM1NTEwMjU0LCA0Ljg5NjYxOTc5Njc1MjkzLCAtMjIuMjkzNjAwMDgyMzk3NDYsIDAsIDQuODk2NjE5Nzk2NzUyOTMsCisgICAgICAgIC0xOC41NDU5OTk1MjY5Nzc1NCwgNy44OTA4MzAwMzk5NzgwMjcsIDMuMDAwNjY5OTU2MjA3Mjc1NCwgLTIwLjEwNDAwMDA5MTU1MjczNCwgMCwgMy4wMDA2Njk5NTYyMDcyNzU0LAorICAgICAgICAtMTcuNjI3Nzk5OTg3NzkyOTcsIDcuNTAwMTk5Nzk0NzY5Mjg3LCAxLjkxMDg3OTk2OTU5Njg2MjgsIC0xOS4xMDg4MDA4ODgwNjE1MjMsIDAsIDEuOTEwODc5OTY5NTk2ODYyOCwKKyAgICAgICAgLTE4LjA4OTU5OTYwOTM3NSwgMTguMDg5NTk5NjA5Mzc1LCAxMS40NjUyOTk2MDYzMjMyNDIsIC0xNy4zODI5OTk0MjAxNjYwMTYsIDE3LjM4Mjk5OTQyMDE2NjAxNiwgNy42ODgzMDAxMzI3NTE0NjUsCisgICAgICAgIC0xNS44MjgzOTk2NTgyMDMxMjUsIDE1LjgyODM5OTY1ODIwMzEyNSwgNC44OTY2MTk3OTY3NTI5MywgLTE0LjI3MzkwMDAzMjA0MzQ1NywgMTQuMjczOTAwMDMyMDQzNDU3LCAzLjAwMDY2OTk1NjIwNzI3NTQsCisgICAgICAgIC0xMy41NjcxOTk3MDcwMzEyNSwgMTMuNTY3MTk5NzA3MDMxMjUsIDEuOTEwODc5OTY5NTk2ODYyOCwgLTEwLjAwMDMwMDQwNzQwOTY2OCwgMjMuNTAzNzk5NDM4NDc2NTYyLCAxMS40NjUyOTk2MDYzMjMyNDIsCisgICAgICAgIC05LjYwOTYyMDA5NDI5OTMxNiwgMjIuNTg1Njk5MDgxNDIwOSwgNy42ODgzMDAxMzI3NTE0NjUsIC04Ljc1MDIyOTgzNTUxMDI1NCwgMjAuNTY1Nzk5NzEzMTM0NzY2LCA0Ljg5NjYxOTc5Njc1MjkzLAorICAgICAgICAtNy44OTA4MzAwMzk5NzgwMjcsIDE4LjU0NTk5OTUyNjk3NzU0LCAzLjAwMDY2OTk1NjIwNzI3NTQsIC03LjUwMDE5OTc5NDc2OTI4NywgMTcuNjI3Nzk5OTg3NzkyOTcsIDEuOTEwODc5OTY5NTk2ODYyOCwKKyAgICAgICAgMCwgMjUuNDc4Mzk5Mjc2NzMzNCwgMTEuNDY1Mjk5NjA2MzIzMjQyLCAwLCAyNC40ODMxMDA4OTExMTMyOCwgNy42ODgzMDAxMzI3NTE0NjUsCisgICAgICAgIDAsIDIyLjI5MzYwMDA4MjM5NzQ2LCA0Ljg5NjYxOTc5Njc1MjkzLCAwLCAyMC4xMDQwMDAwOTE1NTI3MzQsIDMuMDAwNjY5OTU2MjA3Mjc1NCwKKyAgICAgICAgMCwgMTkuMTA4ODAwODg4MDYxNTIzLCAxLjkxMDg3OTk2OTU5Njg2MjgsIDAsIDI1LjQ3ODM5OTI3NjczMzQsIDExLjQ2NTI5OTYwNjMyMzI0MiwKKyAgICAgICAgMTAuMDAwMzAwNDA3NDA5NjY4LCAyMy41MDM3OTk0Mzg0NzY1NjIsIDExLjQ2NTI5OTYwNjMyMzI0MiwgOS42MDk2MjAwOTQyOTkzMTYsIDIyLjU4NTY5OTA4MTQyMDksIDcuNjg4MzAwMTMyNzUxNDY1LAorICAgICAgICAwLCAyNC40ODMxMDA4OTExMTMyOCwgNy42ODgzMDAxMzI3NTE0NjUsIDguNzUwMjI5ODM1NTEwMjU0LCAyMC41NjU3OTk3MTMxMzQ3NjYsIDQuODk2NjE5Nzk2NzUyOTMsCisgICAgICAgIDAsIDIyLjI5MzYwMDA4MjM5NzQ2LCA0Ljg5NjYxOTc5Njc1MjkzLCA3Ljg5MDgzMDAzOTk3ODAyNywgMTguNTQ1OTk5NTI2OTc3NTQsIDMuMDAwNjY5OTU2MjA3Mjc1NCwKKyAgICAgICAgMCwgMjAuMTA0MDAwMDkxNTUyNzM0LCAzLjAwMDY2OTk1NjIwNzI3NTQsIDcuNTAwMTk5Nzk0NzY5Mjg3LCAxNy42Mjc3OTk5ODc3OTI5NywgMS45MTA4Nzk5Njk1OTY4NjI4LAorICAgICAgICAwLCAxOS4xMDg4MDA4ODgwNjE1MjMsIDEuOTEwODc5OTY5NTk2ODYyOCwgMTguMDg5NTk5NjA5Mzc1LCAxOC4wODk1OTk2MDkzNzUsIDExLjQ2NTI5OTYwNjMyMzI0MiwKKyAgICAgICAgMTcuMzgyOTk5NDIwMTY2MDE2LCAxNy4zODI5OTk0MjAxNjYwMTYsIDcuNjg4MzAwMTMyNzUxNDY1LCAxNS44MjgzOTk2NTgyMDMxMjUsIDE1LjgyODM5OTY1ODIwMzEyNSwgNC44OTY2MTk3OTY3NTI5MywKKyAgICAgICAgMTQuMjczOTAwMDMyMDQzNDU3LCAxNC4yNzM5MDAwMzIwNDM0NTcsIDMuMDAwNjY5OTU2MjA3Mjc1NCwgMTMuNTY3MTk5NzA3MDMxMjUsIDEzLjU2NzE5OTcwNzAzMTI1LCAxLjkxMDg3OTk2OTU5Njg2MjgsCisgICAgICAgIDIzLjUwMzc5OTQzODQ3NjU2MiwgMTAuMDAwMzAwNDA3NDA5NjY4LCAxMS40NjUyOTk2MDYzMjMyNDIsIDIyLjU4NTY5OTA4MTQyMDksIDkuNjA5NjIwMDk0Mjk5MzE2LCA3LjY4ODMwMDEzMjc1MTQ2NSwKKyAgICAgICAgMjAuNTY1Nzk5NzEzMTM0NzY2LCA4Ljc1MDIyOTgzNTUxMDI1NCwgNC44OTY2MTk3OTY3NTI5MywgMTguNTQ1OTk5NTI2OTc3NTQsIDcuODkwODMwMDM5OTc4MDI3LCAzLjAwMDY2OTk1NjIwNzI3NTQsCisgICAgICAgIDE3LjYyNzc5OTk4Nzc5Mjk3LCA3LjUwMDE5OTc5NDc2OTI4NywgMS45MTA4Nzk5Njk1OTY4NjI4LCAyNS40NzgzOTkyNzY3MzM0LCAwLCAxMS40NjUyOTk2MDYzMjMyNDIsCisgICAgICAgIDI0LjQ4MzEwMDg5MTExMzI4LCAwLCA3LjY4ODMwMDEzMjc1MTQ2NSwgMjIuMjkzNjAwMDgyMzk3NDYsIDAsIDQuODk2NjE5Nzk2NzUyOTMsCisgICAgICAgIDIwLjEwNDAwMDA5MTU1MjczNCwgMCwgMy4wMDA2Njk5NTYyMDcyNzU0LCAxOS4xMDg4MDA4ODgwNjE1MjMsIDAsIDEuOTEwODc5OTY5NTk2ODYyOCwKKyAgICAgICAgMTkuMTA4ODAwODg4MDYxNTIzLCAwLCAxLjkxMDg3OTk2OTU5Njg2MjgsIDE3LjYyNzc5OTk4Nzc5Mjk3LCAtNy41MDAxOTk3OTQ3NjkyODcsIDEuOTEwODc5OTY5NTk2ODYyOCwKKyAgICAgICAgMTcuMjI4NTAwMzY2MjEwOTM4LCAtNy4zMzAyNjk4MTM1Mzc1OTgsIDEuMjA5MjI5OTQ2MTM2NDc0NiwgMTguNjc1ODAwMzIzNDg2MzI4LCAwLCAxLjIwOTIyOTk0NjEzNjQ3NDYsCisgICAgICAgIDE1LjA5Mzc5OTU5MTA2NDQ1MywgLTYuNDIyMDM5OTg1NjU2NzM4LCAwLjU5NzE0OTAxNDQ3Mjk2MTQsIDE2LjM2MTkwMDMyOTU4OTg0NCwgMCwgMC41OTcxNDkwMTQ0NzI5NjE0LAorICAgICAgICA5LjgxOTI1OTY0MzU1NDY4OCwgLTQuMTc3ODQwMjMyODQ5MTIxLCAwLjE2NDIxNTk5Njg2MTQ1NzgyLCAxMC42NDQyMDAzMjUwMTIyMDcsIDAsIDAuMTY0MjE1OTk2ODYxNDU3ODIsCisgICAgICAgIDAsIDAsIDAsIDAsIDAsIDAsCisgICAgICAgIDEzLjU2NzE5OTcwNzAzMTI1LCAtMTMuNTY3MTk5NzA3MDMxMjUsIDEuOTEwODc5OTY5NTk2ODYyOCwgMTMuMjU5Nzk5OTU3Mjc1MzksIC0xMy4yNTk3OTk5NTcyNzUzOSwgMS4yMDkyMjk5NDYxMzY0NzQ2LAorICAgICAgICAxMS42MTY5MDA0NDQwMzA3NjIsIC0xMS42MTY5MDA0NDQwMzA3NjIsIDAuNTk3MTQ5MDE0NDcyOTYxNCwgNy41NTczNzAxODU4NTIwNTEsIC03LjU1NzM3MDE4NTg1MjA1MSwgMC4xNjQyMTU5OTY4NjE0NTc4MiwKKyAgICAgICAgMCwgMCwgMCwgNy41MDAxOTk3OTQ3NjkyODcsIC0xNy42Mjc3OTk5ODc3OTI5NywgMS45MTA4Nzk5Njk1OTY4NjI4LAorICAgICAgICA3LjMzMDI2OTgxMzUzNzU5OCwgLTE3LjIyODUwMDM2NjIxMDkzOCwgMS4yMDkyMjk5NDYxMzY0NzQ2LCA2LjQyMjAzOTk4NTY1NjczOCwgLTE1LjA5Mzc5OTU5MTA2NDQ1MywgMC41OTcxNDkwMTQ0NzI5NjE0LAorICAgICAgICA0LjE3Nzg0MDIzMjg0OTEyMSwgLTkuODE5MjU5NjQzNTU0Njg4LCAwLjE2NDIxNTk5Njg2MTQ1NzgyLCAwLCAwLCAwLAorICAgICAgICAwLCAtMTkuMTA4ODAwODg4MDYxNTIzLCAxLjkxMDg3OTk2OTU5Njg2MjgsIDAsIC0xOC42NzU4MDAzMjM0ODYzMjgsIDEuMjA5MjI5OTQ2MTM2NDc0NiwKKyAgICAgICAgMCwgLTE2LjM2MTkwMDMyOTU4OTg0NCwgMC41OTcxNDkwMTQ0NzI5NjE0LCAwLCAtMTAuNjQ0MjAwMzI1MDEyMjA3LCAwLjE2NDIxNTk5Njg2MTQ1NzgyLAorICAgICAgICAwLCAwLCAwLCAwLCAtMTkuMTA4ODAwODg4MDYxNTIzLCAxLjkxMDg3OTk2OTU5Njg2MjgsCisgICAgICAgIC03LjUwMDE5OTc5NDc2OTI4NywgLTE3LjYyNzc5OTk4Nzc5Mjk3LCAxLjkxMDg3OTk2OTU5Njg2MjgsIC03LjMzMDI2OTgxMzUzNzU5OCwgLTE3LjIyODUwMDM2NjIxMDkzOCwgMS4yMDkyMjk5NDYxMzY0NzQ2LAorICAgICAgICAwLCAtMTguNjc1ODAwMzIzNDg2MzI4LCAxLjIwOTIyOTk0NjEzNjQ3NDYsIC02LjQyMjAzOTk4NTY1NjczOCwgLTE1LjA5Mzc5OTU5MTA2NDQ1MywgMC41OTcxNDkwMTQ0NzI5NjE0LAorICAgICAgICAwLCAtMTYuMzYxOTAwMzI5NTg5ODQ0LCAwLjU5NzE0OTAxNDQ3Mjk2MTQsIC00LjE3Nzg0MDIzMjg0OTEyMSwgLTkuODE5MjU5NjQzNTU0Njg4LCAwLjE2NDIxNTk5Njg2MTQ1NzgyLAorICAgICAgICAwLCAtMTAuNjQ0MjAwMzI1MDEyMjA3LCAwLjE2NDIxNTk5Njg2MTQ1NzgyLCAwLCAwLCAwLAorICAgICAgICAwLCAwLCAwLCAtMTMuNTY3MTk5NzA3MDMxMjUsIC0xMy41NjcxOTk3MDcwMzEyNSwgMS45MTA4Nzk5Njk1OTY4NjI4LAorICAgICAgICAtMTMuMjU5Nzk5OTU3Mjc1MzksIC0xMy4yNTk3OTk5NTcyNzUzOSwgMS4yMDkyMjk5NDYxMzY0NzQ2LCAtMTEuNjE2OTAwNDQ0MDMwNzYyLCAtMTEuNjE2OTAwNDQ0MDMwNzYyLCAwLjU5NzE0OTAxNDQ3Mjk2MTQsCisgICAgICAgIC03LjU1NzM3MDE4NTg1MjA1MSwgLTcuNTU3MzcwMTg1ODUyMDUxLCAwLjE2NDIxNTk5Njg2MTQ1NzgyLCAwLCAwLCAwLAorICAgICAgICAtMTcuNjI3Nzk5OTg3NzkyOTcsIC03LjUwMDE5OTc5NDc2OTI4NywgMS45MTA4Nzk5Njk1OTY4NjI4LCAtMTcuMjI4NTAwMzY2MjEwOTM4LCAtNy4zMzAyNjk4MTM1Mzc1OTgsIDEuMjA5MjI5OTQ2MTM2NDc0NiwKKyAgICAgICAgLTE1LjA5Mzc5OTU5MTA2NDQ1MywgLTYuNDIyMDM5OTg1NjU2NzM4LCAwLjU5NzE0OTAxNDQ3Mjk2MTQsIC05LjgxOTI1OTY0MzU1NDY4OCwgLTQuMTc3ODQwMjMyODQ5MTIxLCAwLjE2NDIxNTk5Njg2MTQ1NzgyLAorICAgICAgICAwLCAwLCAwLCAtMTkuMTA4ODAwODg4MDYxNTIzLCAwLCAxLjkxMDg3OTk2OTU5Njg2MjgsCisgICAgICAgIC0xOC42NzU4MDAzMjM0ODYzMjgsIDAsIDEuMjA5MjI5OTQ2MTM2NDc0NiwgLTE2LjM2MTkwMDMyOTU4OTg0NCwgMCwgMC41OTcxNDkwMTQ0NzI5NjE0LAorICAgICAgICAtMTAuNjQ0MjAwMzI1MDEyMjA3LCAwLCAwLjE2NDIxNTk5Njg2MTQ1NzgyLCAwLCAwLCAwLAorICAgICAgICAtMTkuMTA4ODAwODg4MDYxNTIzLCAwLCAxLjkxMDg3OTk2OTU5Njg2MjgsIC0xNy42Mjc3OTk5ODc3OTI5NywgNy41MDAxOTk3OTQ3NjkyODcsIDEuOTEwODc5OTY5NTk2ODYyOCwKKyAgICAgICAgLTE3LjIyODUwMDM2NjIxMDkzOCwgNy4zMzAyNjk4MTM1Mzc1OTgsIDEuMjA5MjI5OTQ2MTM2NDc0NiwgLTE4LjY3NTgwMDMyMzQ4NjMyOCwgMCwgMS4yMDkyMjk5NDYxMzY0NzQ2LAorICAgICAgICAtMTUuMDkzNzk5NTkxMDY0NDUzLCA2LjQyMjAzOTk4NTY1NjczOCwgMC41OTcxNDkwMTQ0NzI5NjE0LCAtMTYuMzYxOTAwMzI5NTg5ODQ0LCAwLCAwLjU5NzE0OTAxNDQ3Mjk2MTQsCisgICAgICAgIC05LjgxOTI1OTY0MzU1NDY4OCwgNC4xNzc4NDAyMzI4NDkxMjEsIDAuMTY0MjE1OTk2ODYxNDU3ODIsIC0xMC42NDQyMDAzMjUwMTIyMDcsIDAsIDAuMTY0MjE1OTk2ODYxNDU3ODIsCisgICAgICAgIDAsIDAsIDAsIDAsIDAsIDAsCisgICAgICAgIC0xMy41NjcxOTk3MDcwMzEyNSwgMTMuNTY3MTk5NzA3MDMxMjUsIDEuOTEwODc5OTY5NTk2ODYyOCwgLTEzLjI1OTc5OTk1NzI3NTM5LCAxMy4yNTk3OTk5NTcyNzUzOSwgMS4yMDkyMjk5NDYxMzY0NzQ2LAorICAgICAgICAtMTEuNjE2OTAwNDQ0MDMwNzYyLCAxMS42MTY5MDA0NDQwMzA3NjIsIDAuNTk3MTQ5MDE0NDcyOTYxNCwgLTcuNTU3MzcwMTg1ODUyMDUxLCA3LjU1NzM3MDE4NTg1MjA1MSwgMC4xNjQyMTU5OTY4NjE0NTc4MiwKKyAgICAgICAgMCwgMCwgMCwgLTcuNTAwMTk5Nzk0NzY5Mjg3LCAxNy42Mjc3OTk5ODc3OTI5NywgMS45MTA4Nzk5Njk1OTY4NjI4LAorICAgICAgICAtNy4zMzAyNjk4MTM1Mzc1OTgsIDE3LjIyODUwMDM2NjIxMDkzOCwgMS4yMDkyMjk5NDYxMzY0NzQ2LCAtNi40MjIwMzk5ODU2NTY3MzgsIDE1LjA5Mzc5OTU5MTA2NDQ1MywgMC41OTcxNDkwMTQ0NzI5NjE0LAorICAgICAgICAtNC4xNzc4NDAyMzI4NDkxMjEsIDkuODE5MjU5NjQzNTU0Njg4LCAwLjE2NDIxNTk5Njg2MTQ1NzgyLCAwLCAwLCAwLAorICAgICAgICAwLCAxOS4xMDg4MDA4ODgwNjE1MjMsIDEuOTEwODc5OTY5NTk2ODYyOCwgMCwgMTguNjc1ODAwMzIzNDg2MzI4LCAxLjIwOTIyOTk0NjEzNjQ3NDYsCisgICAgICAgIDAsIDE2LjM2MTkwMDMyOTU4OTg0NCwgMC41OTcxNDkwMTQ0NzI5NjE0LCAwLCAxMC42NDQyMDAzMjUwMTIyMDcsIDAuMTY0MjE1OTk2ODYxNDU3ODIsCisgICAgICAgIDAsIDAsIDAsIDAsIDE5LjEwODgwMDg4ODA2MTUyMywgMS45MTA4Nzk5Njk1OTY4NjI4LAorICAgICAgICA3LjUwMDE5OTc5NDc2OTI4NywgMTcuNjI3Nzk5OTg3NzkyOTcsIDEuOTEwODc5OTY5NTk2ODYyOCwgNy4zMzAyNjk4MTM1Mzc1OTgsIDE3LjIyODUwMDM2NjIxMDkzOCwgMS4yMDkyMjk5NDYxMzY0NzQ2LAorICAgICAgICAwLCAxOC42NzU4MDAzMjM0ODYzMjgsIDEuMjA5MjI5OTQ2MTM2NDc0NiwgNi40MjIwMzk5ODU2NTY3MzgsIDE1LjA5Mzc5OTU5MTA2NDQ1MywgMC41OTcxNDkwMTQ0NzI5NjE0LAorICAgICAgICAwLCAxNi4zNjE5MDAzMjk1ODk4NDQsIDAuNTk3MTQ5MDE0NDcyOTYxNCwgNC4xNzc4NDAyMzI4NDkxMjEsIDkuODE5MjU5NjQzNTU0Njg4LCAwLjE2NDIxNTk5Njg2MTQ1NzgyLAorICAgICAgICAwLCAxMC42NDQyMDAzMjUwMTIyMDcsIDAuMTY0MjE1OTk2ODYxNDU3ODIsIDAsIDAsIDAsCisgICAgICAgIDAsIDAsIDAsIDEzLjU2NzE5OTcwNzAzMTI1LCAxMy41NjcxOTk3MDcwMzEyNSwgMS45MTA4Nzk5Njk1OTY4NjI4LAorICAgICAgICAxMy4yNTk3OTk5NTcyNzUzOSwgMTMuMjU5Nzk5OTU3Mjc1MzksIDEuMjA5MjI5OTQ2MTM2NDc0NiwgMTEuNjE2OTAwNDQ0MDMwNzYyLCAxMS42MTY5MDA0NDQwMzA3NjIsIDAuNTk3MTQ5MDE0NDcyOTYxNCwKKyAgICAgICAgNy41NTczNzAxODU4NTIwNTEsIDcuNTU3MzcwMTg1ODUyMDUxLCAwLjE2NDIxNTk5Njg2MTQ1NzgyLCAwLCAwLCAwLAorICAgICAgICAxNy42Mjc3OTk5ODc3OTI5NywgNy41MDAxOTk3OTQ3NjkyODcsIDEuOTEwODc5OTY5NTk2ODYyOCwgMTcuMjI4NTAwMzY2MjEwOTM4LCA3LjMzMDI2OTgxMzUzNzU5OCwgMS4yMDkyMjk5NDYxMzY0NzQ2LAorICAgICAgICAxNS4wOTM3OTk1OTEwNjQ0NTMsIDYuNDIyMDM5OTg1NjU2NzM4LCAwLjU5NzE0OTAxNDQ3Mjk2MTQsIDkuODE5MjU5NjQzNTU0Njg4LCA0LjE3Nzg0MDIzMjg0OTEyMSwgMC4xNjQyMTU5OTY4NjE0NTc4MiwKKyAgICAgICAgMCwgMCwgMCwgMTkuMTA4ODAwODg4MDYxNTIzLCAwLCAxLjkxMDg3OTk2OTU5Njg2MjgsCisgICAgICAgIDE4LjY3NTgwMDMyMzQ4NjMyOCwgMCwgMS4yMDkyMjk5NDYxMzY0NzQ2LCAxNi4zNjE5MDAzMjk1ODk4NDQsIDAsIDAuNTk3MTQ5MDE0NDcyOTYxNCwKKyAgICAgICAgMTAuNjQ0MjAwMzI1MDEyMjA3LCAwLCAwLjE2NDIxNTk5Njg2MTQ1NzgyLCAwLCAwLCAwLAorICAgICAgICAtMjAuMzgyNjk5OTY2NDMwNjY0LCAwLCAyNS43OTY4OTk3OTU1MzIyMjcsIC0yMC4xODM1OTk0NzIwNDU5LCAtMi4xNDk3Mzk5ODA2OTc2MzIsIDI2LjI0NDY5OTQ3ODE0OTQxNCwKKyAgICAgICAgLTI2LjUxMTYwMDQ5NDM4NDc2NiwgLTIuMTQ5NzM5OTgwNjk3NjMyLCAyNi4xOTI4OTk3MDM5Nzk0OTIsIC0yNi4zMzQyOTkwODc1MjQ0MTQsIDAsIDI1Ljc1MjA5OTk5MDg0NDcyNywKKyAgICAgICAgLTMxLjE1NjI5OTU5MTA2NDQ1MywgLTIuMTQ5NzM5OTgwNjk3NjMyLCAyNS44MzA0MDA0NjY5MTg5NDUsIC0zMC43MzMyOTkyNTUzNzEwOTQsIDAsIDI1LjQzODYwMDU0MDE2MTEzMywKKyAgICAgICAgLTM0LjAxNjk5ODI5MTAxNTYyNSwgLTIuMTQ5NzM5OTgwNjk3NjMyLCAyNC44NDY1MDAzOTY3Mjg1MTYsIC0zMy40NjAzMDA0NDU1NTY2NCwgMCwgMjQuNTg3NjAwNzA4MDA3ODEyLAorICAgICAgICAtMzQuOTkyOTAwODQ4Mzg4NjcsIC0yLjE0OTczOTk4MDY5NzYzMiwgMjIuOTMwNTAwMDMwNTE3NTc4LCAtMzQuMzk1ODAxNTQ0MTg5NDUsIDAsIDIyLjkzMDUwMDAzMDUxNzU3OCwKKyAgICAgICAgLTE5Ljc0NTcwMDgzNjE4MTY0LCAtMi44NjYzMTk4OTQ3OTA2NDk0LCAyNy4yMjk5OTk1NDIyMzYzMjgsIC0yNi45MDE1OTk4ODQwMzMyMDMsIC0yLjg2NjMxOTg5NDc5MDY0OTQsIDI3LjE2Mjc5OTgzNTIwNTA3OCwKKyAgICAgICAgLTMyLjA4Njc5OTYyMTU4MjAzLCAtMi44NjYzMTk4OTQ3OTA2NDk0LCAyNi42OTI2MDAyNTAyNDQxNCwgLTM1LjI0MTc5ODQwMDg3ODkwNiwgLTIuODY2MzE5ODk0NzkwNjQ5NCwgMjUuNDE2MjAwNjM3ODE3MzgzLAorICAgICAgICAtMzYuMzA2NzAxNjYwMTU2MjUsIC0yLjg2NjMxOTg5NDc5MDY0OTQsIDIyLjkzMDUwMDAzMDUxNzU3OCwgLTE5LjMwNzgwMDI5Mjk2ODc1LCAtMi4xNDk3Mzk5ODA2OTc2MzIsIDI4LjIxNTI5OTYwNjMyMzI0MiwKKyAgICAgICAgLTI3LjI5MTU5OTI3MzY4MTY0LCAtMi4xNDk3Mzk5ODA2OTc2MzIsIDI4LjEzMjY5OTk2NjQzMDY2NCwgLTMzLjAxNzM5ODgzNDIyODUxNiwgLTIuMTQ5NzM5OTgwNjk3NjMyLCAyNy41NTQ3MDA4NTE0NDA0MywKKyAgICAgICAgLTM2LjQ2NjQ5OTMyODYxMzI4LCAtMi4xNDk3Mzk5ODA2OTc2MzIsIDI1Ljk4NTc5OTc4OTQyODcxLCAtMzcuNjIwMzk5NDc1MDk3NjU2LCAtMi4xNDk3Mzk5ODA2OTc2MzIsIDIyLjkzMDUwMDAzMDUxNzU3OCwKKyAgICAgICAgLTE5LjEwODgwMDg4ODA2MTUyMywgMCwgMjguNjYzMjAwMzc4NDE3OTcsIC0yNy40Njg5MDA2ODA1NDE5OTIsIDAsIDI4LjU3MzYwMDc2OTA0Mjk3LAorICAgICAgICAtMzMuNDQwMzk5MTY5OTIxODc1LCAwLCAyNy45NDY1OTk5NjAzMjcxNSwgLTM3LjAyMzMwMDE3MDg5ODQ0LCAwLCAyNi4yNDQ2OTk0NzgxNDk0MTQsCisgICAgICAgIC0zOC4yMTc2MDE3NzYxMjMwNSwgMCwgMjIuOTMwNTAwMDMwNTE3NTc4LCAtMTkuMTA4ODAwODg4MDYxNTIzLCAwLCAyOC42NjMyMDAzNzg0MTc5NywKKyAgICAgICAgLTE5LjMwNzgwMDI5Mjk2ODc1LCAyLjE0OTczOTk4MDY5NzYzMiwgMjguMjE1Mjk5NjA2MzIzMjQyLCAtMjcuMjkxNTk5MjczNjgxNjQsIDIuMTQ5NzM5OTgwNjk3NjMyLCAyOC4xMzI2OTk5NjY0MzA2NjQsCisgICAgICAgIC0yNy40Njg5MDA2ODA1NDE5OTIsIDAsIDI4LjU3MzYwMDc2OTA0Mjk3LCAtMzMuMDE3Mzk4ODM0MjI4NTE2LCAyLjE0OTczOTk4MDY5NzYzMiwgMjcuNTU0NzAwODUxNDQwNDMsCisgICAgICAgIC0zMy40NDAzOTkxNjk5MjE4NzUsIDAsIDI3Ljk0NjU5OTk2MDMyNzE1LCAtMzYuNDY2NDk5MzI4NjEzMjgsIDIuMTQ5NzM5OTgwNjk3NjMyLCAyNS45ODU3OTk3ODk0Mjg3MSwKKyAgICAgICAgLTM3LjAyMzMwMDE3MDg5ODQ0LCAwLCAyNi4yNDQ2OTk0NzgxNDk0MTQsIC0zNy42MjAzOTk0NzUwOTc2NTYsIDIuMTQ5NzM5OTgwNjk3NjMyLCAyMi45MzA1MDAwMzA1MTc1NzgsCisgICAgICAgIC0zOC4yMTc2MDE3NzYxMjMwNSwgMCwgMjIuOTMwNTAwMDMwNTE3NTc4LCAtMTkuNzQ1NzAwODM2MTgxNjQsIDIuODY2MzE5ODk0NzkwNjQ5NCwgMjcuMjI5OTk5NTQyMjM2MzI4LAorICAgICAgICAtMjYuOTAxNTk5ODg0MDMzMjAzLCAyLjg2NjMxOTg5NDc5MDY0OTQsIDI3LjE2Mjc5OTgzNTIwNTA3OCwgLTMyLjA4Njc5OTYyMTU4MjAzLCAyLjg2NjMxOTg5NDc5MDY0OTQsIDI2LjY5MjYwMDI1MDI0NDE0LAorICAgICAgICAtMzUuMjQxNzk4NDAwODc4OTA2LCAyLjg2NjMxOTg5NDc5MDY0OTQsIDI1LjQxNjIwMDYzNzgxNzM4MywgLTM2LjMwNjcwMTY2MDE1NjI1LCAyLjg2NjMxOTg5NDc5MDY0OTQsIDIyLjkzMDUwMDAzMDUxNzU3OCwKKyAgICAgICAgLTIwLjE4MzU5OTQ3MjA0NTksIDIuMTQ5NzM5OTgwNjk3NjMyLCAyNi4yNDQ2OTk0NzgxNDk0MTQsIC0yNi41MTE2MDA0OTQzODQ3NjYsIDIuMTQ5NzM5OTgwNjk3NjMyLCAyNi4xOTI4OTk3MDM5Nzk0OTIsCisgICAgICAgIC0zMS4xNTYyOTk1OTEwNjQ0NTMsIDIuMTQ5NzM5OTgwNjk3NjMyLCAyNS44MzA0MDA0NjY5MTg5NDUsIC0zNC4wMTY5OTgyOTEwMTU2MjUsIDIuMTQ5NzM5OTgwNjk3NjMyLCAyNC44NDY1MDAzOTY3Mjg1MTYsCisgICAgICAgIC0zNC45OTI5MDA4NDgzODg2NywgMi4xNDk3Mzk5ODA2OTc2MzIsIDIyLjkzMDUwMDAzMDUxNzU3OCwgLTIwLjM4MjY5OTk2NjQzMDY2NCwgMCwgMjUuNzk2ODk5Nzk1NTMyMjI3LAorICAgICAgICAtMjYuMzM0Mjk5MDg3NTI0NDE0LCAwLCAyNS43NTIwOTk5OTA4NDQ3MjcsIC0zMC43MzMyOTkyNTUzNzEwOTQsIDAsIDI1LjQzODYwMDU0MDE2MTEzMywKKyAgICAgICAgLTMzLjQ2MDMwMDQ0NTU1NjY0LCAwLCAyNC41ODc2MDA3MDgwMDc4MTIsIC0zNC4zOTU4MDE1NDQxODk0NSwgMCwgMjIuOTMwNTAwMDMwNTE3NTc4LAorICAgICAgICAtMzQuMzk1ODAxNTQ0MTg5NDUsIDAsIDIyLjkzMDUwMDAzMDUxNzU3OCwgLTM0Ljk5MjkwMDg0ODM4ODY3LCAtMi4xNDk3Mzk5ODA2OTc2MzIsIDIyLjkzMDUwMDAzMDUxNzU3OCwKKyAgICAgICAgLTM0LjQ0MDg5ODg5NTI2MzY3LCAtMi4xNDk3Mzk5ODA2OTc2MzIsIDIwLjA4MjE5OTA5NjY3OTY4OCwgLTMzLjg5ODIwMDk4ODc2OTUzLCAwLCAyMC4zMzI4OTkwOTM2Mjc5MywKKyAgICAgICAgLTMyLjcxMTI5OTg5NjI0MDIzNCwgLTIuMTQ5NzM5OTgwNjk3NjMyLCAxNi44MTUyOTk5ODc3OTI5NywgLTMyLjMyNTY5ODg1MjUzOTA2LCAwLCAxNy4xOTc5MDA3NzIwOTQ3MjcsCisgICAgICAgIC0yOS42OTQyMDA1MTU3NDcwNywgLTIuMTQ5NzM5OTgwNjk3NjMyLCAxMy41OTA0OTk4Nzc5Mjk2ODgsIC0yOS41NTg5MDA4MzMxMjk4ODMsIDAsIDE0LjA2Mjg5OTU4OTUzODU3NCwKKyAgICAgICAgLTI1LjI3OTMwMDY4OTY5NzI2NiwgLTIuMTQ5NzM5OTgwNjk3NjMyLCAxMC44NjgxMDAxNjYzMjA4LCAtMjUuNDc4Mzk5Mjc2NzMzNCwgMCwgMTEuNDY1Mjk5NjA2MzIzMjQyLAorICAgICAgICAtMzYuMzA2NzAxNjYwMTU2MjUsIC0yLjg2NjMxOTg5NDc5MDY0OTQsIDIyLjkzMDUwMDAzMDUxNzU3OCwgLTM1LjYzNDg5OTEzOTQwNDMsIC0yLjg2NjMxOTg5NDc5MDY0OTQsIDE5LjUzMDUwMDQxMTk4NzMwNSwKKyAgICAgICAgLTMzLjU1OTc5OTE5NDMzNTk0LCAtMi44NjYzMTk4OTQ3OTA2NDk0LCAxNS45NzM2OTk1Njk3MDIxNDgsIC0yOS45OTE4MDAzMDgyMjc1NCwgLTIuODY2MzE5ODk0NzkwNjQ5NCwgMTIuNTUxMzAwMDQ4ODI4MTI1LAorICAgICAgICAtMjQuODQxNDAwMTQ2NDg0Mzc1LCAtMi44NjYzMTk4OTQ3OTA2NDk0LCA5LjU1NDM4OTk1MzYxMzI4MSwgLTM3LjYyMDM5OTQ3NTA5NzY1NiwgLTIuMTQ5NzM5OTgwNjk3NjMyLCAyMi45MzA1MDAwMzA1MTc1NzgsCisgICAgICAgIC0zNi44Mjg4OTkzODM1NDQ5MiwgLTIuMTQ5NzM5OTgwNjk3NjMyLCAxOC45Nzg3OTk4MTk5NDYyOSwgLTM0LjQwODE5OTMxMDMwMjczNCwgLTIuMTQ5NzM5OTgwNjk3NjMyLCAxNS4xMzIxMDAxMDUyODU2NDUsCisgICAgICAgIC0zMC4yODk0OTkyODI4MzY5MTQsIC0yLjE0OTczOTk4MDY5NzYzMiwgMTEuNTEyMjAwMzU1NTI5Nzg1LCAtMjQuNDAzNDk5NjAzMjcxNDg0LCAtMi4xNDk3Mzk5ODA2OTc2MzIsIDguMjQwNjU5NzEzNzQ1MTE3LAorICAgICAgICAtMzguMjE3NjAxNzc2MTIzMDUsIDAsIDIyLjkzMDUwMDAzMDUxNzU3OCwgLTM3LjM3MTYwMTEwNDczNjMzLCAwLCAxOC43MjgwOTk4MjI5OTgwNDcsCisgICAgICAgIC0zNC43OTM4OTk1MzYxMzI4MSwgMCwgMTQuNzQ5NjAwNDEwNDYxNDI2LCAtMzAuNDI0ODAwODcyODAyNzM0LCAwLCAxMS4wMzk3OTk2OTAyNDY1ODIsCisgICAgICAgIC0yNC4yMDQ1MDAxOTgzNjQyNTgsIDAsIDcuNjQzNTA5ODY0ODA3MTI5LCAtMzguMjE3NjAxNzc2MTIzMDUsIDAsIDIyLjkzMDUwMDAzMDUxNzU3OCwKKyAgICAgICAgLTM3LjYyMDM5OTQ3NTA5NzY1NiwgMi4xNDk3Mzk5ODA2OTc2MzIsIDIyLjkzMDUwMDAzMDUxNzU3OCwgLTM2LjgyODg5OTM4MzU0NDkyLCAyLjE0OTczOTk4MDY5NzYzMiwgMTguOTc4Nzk5ODE5OTQ2MjksCisgICAgICAgIC0zNy4zNzE2MDExMDQ3MzYzMywgMCwgMTguNzI4MDk5ODIyOTk4MDQ3LCAtMzQuNDA4MTk5MzEwMzAyNzM0LCAyLjE0OTczOTk4MDY5NzYzMiwgMTUuMTMyMTAwMTA1Mjg1NjQ1LAorICAgICAgICAtMzQuNzkzODk5NTM2MTMyODEsIDAsIDE0Ljc0OTYwMDQxMDQ2MTQyNiwgLTMwLjI4OTQ5OTI4MjgzNjkxNCwgMi4xNDk3Mzk5ODA2OTc2MzIsIDExLjUxMjIwMDM1NTUyOTc4NSwKKyAgICAgICAgLTMwLjQyNDgwMDg3MjgwMjczNCwgMCwgMTEuMDM5Nzk5NjkwMjQ2NTgyLCAtMjQuNDAzNDk5NjAzMjcxNDg0LCAyLjE0OTczOTk4MDY5NzYzMiwgOC4yNDA2NTk3MTM3NDUxMTcsCisgICAgICAgIC0yNC4yMDQ1MDAxOTgzNjQyNTgsIDAsIDcuNjQzNTA5ODY0ODA3MTI5LCAtMzYuMzA2NzAxNjYwMTU2MjUsIDIuODY2MzE5ODk0NzkwNjQ5NCwgMjIuOTMwNTAwMDMwNTE3NTc4LAorICAgICAgICAtMzUuNjM0ODk5MTM5NDA0MywgMi44NjYzMTk4OTQ3OTA2NDk0LCAxOS41MzA1MDA0MTE5ODczMDUsIC0zMy41NTk3OTkxOTQzMzU5NCwgMi44NjYzMTk4OTQ3OTA2NDk0LCAxNS45NzM2OTk1Njk3MDIxNDgsCisgICAgICAgIC0yOS45OTE4MDAzMDgyMjc1NCwgMi44NjYzMTk4OTQ3OTA2NDk0LCAxMi41NTEzMDAwNDg4MjgxMjUsIC0yNC44NDE0MDAxNDY0ODQzNzUsIDIuODY2MzE5ODk0NzkwNjQ5NCwgOS41NTQzODk5NTM2MTMyODEsCisgICAgICAgIC0zNC45OTI5MDA4NDgzODg2NywgMi4xNDk3Mzk5ODA2OTc2MzIsIDIyLjkzMDUwMDAzMDUxNzU3OCwgLTM0LjQ0MDg5ODg5NTI2MzY3LCAyLjE0OTczOTk4MDY5NzYzMiwgMjAuMDgyMTk5MDk2Njc5Njg4LAorICAgICAgICAtMzIuNzExMjk5ODk2MjQwMjM0LCAyLjE0OTczOTk4MDY5NzYzMiwgMTYuODE1Mjk5OTg3NzkyOTcsIC0yOS42OTQyMDA1MTU3NDcwNywgMi4xNDk3Mzk5ODA2OTc2MzIsIDEzLjU5MDQ5OTg3NzkyOTY4OCwKKyAgICAgICAgLTI1LjI3OTMwMDY4OTY5NzI2NiwgMi4xNDk3Mzk5ODA2OTc2MzIsIDEwLjg2ODEwMDE2NjMyMDgsIC0zNC4zOTU4MDE1NDQxODk0NSwgMCwgMjIuOTMwNTAwMDMwNTE3NTc4LAorICAgICAgICAtMzMuODk4MjAwOTg4NzY5NTMsIDAsIDIwLjMzMjg5OTA5MzYyNzkzLCAtMzIuMzI1Njk4ODUyNTM5MDYsIDAsIDE3LjE5NzkwMDc3MjA5NDcyNywKKyAgICAgICAgLTI5LjU1ODkwMDgzMzEyOTg4MywgMCwgMTQuMDYyODk5NTg5NTM4NTc0LCAtMjUuNDc4Mzk5Mjc2NzMzNCwgMCwgMTEuNDY1Mjk5NjA2MzIzMjQyLAorICAgICAgICAyMS42NTY2MDA5NTIxNDg0MzgsIDAsIDE4LjE1MzI5OTMzMTY2NTA0LCAyMS42NTY2MDA5NTIxNDg0MzgsIC00LjcyOTQyMDE4NTA4OTExMSwgMTYuNTExMTk5OTUxMTcxODc1LAorICAgICAgICAyOC4yMzM5OTkyNTIzMTkzMzYsIC00LjI3MDM1OTk5Mjk4MDk1NywgMTguMzM5MDAwNzAxOTA0Mjk3LCAyNy43Njc0MDA3NDE1NzcxNSwgMCwgMTkuNTU2NjAwNTcwNjc4NzEsCisgICAgICAgIDMxLjAxMTg5OTk0ODEyMDExNywgLTMuMjYwNDQwMTExMTYwMjc4MywgMjIuMjIxMzk5MzA3MjUwOTc3LCAzMC40MTQ4MDA2NDM5MjA5LCAwLCAyMi45MzA1MDAwMzA1MTc1NzgsCisgICAgICAgIDMyLjU5NTYwMDEyODE3MzgzLCAtMi4yNTA1MDk5NzczNDA2OTgyLCAyNi43NjQ0MDA0ODIxNzc3MzQsIDMxLjg2NzkwMDg0ODM4ODY3MiwgMCwgMjcuMDIwOTk5OTA4NDQ3MjY2LAorICAgICAgICAzNS41OTAwOTkzMzQ3MTY4LCAtMS43OTE0NTAwMjM2NTExMjMsIDMwLjU3Mzk5OTQwNDkwNzIyNywgMzQuMzk1ODAxNTQ0MTg5NDUsIDAsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgMjEuNjU2NjAwOTUyMTQ4NDM4LCAtNi4zMDU5MDAwOTY4OTMzMTA1LCAxMi44OTg0MDAzMDY3MDE2NiwgMjkuMjYwMjk5NjgyNjE3MTg4LCAtNS42OTM4MTk5OTk2OTQ4MjQsIDE1LjY2MDIwMDExOTAxODU1NSwKKyAgICAgICAgMzIuMzI1Njk4ODUyNTM5MDYsIC00LjM0NzI0OTk4NDc0MTIxMSwgMjAuNjYxMzk5ODQxMzA4NTk0LCAzNC4xOTY3MDEwNDk4MDQ2OSwgLTMuMDAwNjY5OTU2MjA3Mjc1NCwgMjYuMTk5ODk5NjczNDYxOTE0LAorICAgICAgICAzOC4yMTc2MDE3NzYxMjMwNSwgLTIuMzg4NjAwMTExMDA3NjkwNCwgMzAuNTczOTk5NDA0OTA3MjI3LCAyMS42NTY2MDA5NTIxNDg0MzgsIC00LjcyOTQyMDE4NTA4OTExMSwgOS4yODU2NzAyODA0NTY1NDMsCisgICAgICAgIDMwLjI4NjY5OTI5NTA0Mzk0NSwgLTQuMjcwMzU5OTkyOTgwOTU3LCAxMi45ODE0OTk2NzE5MzYwMzUsIDMzLjYzOTQwMDQ4MjE3NzczNCwgLTMuMjYwNDQwMTExMTYwMjc4MywgMTkuMTAxMjk5Mjg1ODg4NjcyLAorICAgICAgICAzNS43OTc5MDExNTM1NjQ0NSwgLTIuMjUwNTA5OTc3MzQwNjk4MiwgMjUuNjM1NDAwNzcyMDk0NzI3LCA0MC44NDUwMDEyMjA3MDMxMjUsIC0xLjc5MTQ1MDAyMzY1MTEyMywgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICAyMS42NTY2MDA5NTIxNDg0MzgsIDAsIDcuNjQzNTA5ODY0ODA3MTI5LCAzMC43NTMyMDA1MzEwMDU4NiwgMCwgMTEuNzYzNzk5NjY3MzU4Mzk4LAorICAgICAgICAzNC4yMzY1OTg5Njg1MDU4NiwgMCwgMTguMzkyMjAwNDY5OTcwNzAzLCAzNi41MjU2MDA0MzMzNDk2MSwgMCwgMjUuMzc4Nzk5NDM4NDc2NTYyLAorICAgICAgICA0Mi4wMzkyOTkwMTEyMzA0NywgMCwgMzAuNTczOTk5NDA0OTA3MjI3LCAyMS42NTY2MDA5NTIxNDg0MzgsIDAsIDcuNjQzNTA5ODY0ODA3MTI5LAorICAgICAgICAyMS42NTY2MDA5NTIxNDg0MzgsIDQuNzI5NDIwMTg1MDg5MTExLCA5LjI4NTY3MDI4MDQ1NjU0MywgMzAuMjg2Njk5Mjk1MDQzOTQ1LCA0LjI3MDM1OTk5Mjk4MDk1NywgMTIuOTgxNDk5NjcxOTM2MDM1LAorICAgICAgICAzMC43NTMyMDA1MzEwMDU4NiwgMCwgMTEuNzYzNzk5NjY3MzU4Mzk4LCAzMy42Mzk0MDA0ODIxNzc3MzQsIDMuMjYwNDQwMTExMTYwMjc4MywgMTkuMTAxMjk5Mjg1ODg4NjcyLAorICAgICAgICAzNC4yMzY1OTg5Njg1MDU4NiwgMCwgMTguMzkyMjAwNDY5OTcwNzAzLCAzNS43OTc5MDExNTM1NjQ0NSwgMi4yNTA1MDk5NzczNDA2OTgyLCAyNS42MzU0MDA3NzIwOTQ3MjcsCisgICAgICAgIDM2LjUyNTYwMDQzMzM0OTYxLCAwLCAyNS4zNzg3OTk0Mzg0NzY1NjIsIDQwLjg0NTAwMTIyMDcwMzEyNSwgMS43OTE0NTAwMjM2NTExMjMsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgNDIuMDM5Mjk5MDExMjMwNDcsIDAsIDMwLjU3Mzk5OTQwNDkwNzIyNywgMjEuNjU2NjAwOTUyMTQ4NDM4LCA2LjMwNTkwMDA5Njg5MzMxMDUsIDEyLjg5ODQwMDMwNjcwMTY2LAorICAgICAgICAyOS4yNjAyOTk2ODI2MTcxODgsIDUuNjkzODE5OTk5Njk0ODI0LCAxNS42NjAyMDAxMTkwMTg1NTUsIDMyLjMyNTY5ODg1MjUzOTA2LCA0LjM0NzI0OTk4NDc0MTIxMSwgMjAuNjYxMzk5ODQxMzA4NTk0LAorICAgICAgICAzNC4xOTY3MDEwNDk4MDQ2OSwgMy4wMDA2Njk5NTYyMDcyNzU0LCAyNi4xOTk4OTk2NzM0NjE5MTQsIDM4LjIxNzYwMTc3NjEyMzA1LCAyLjM4ODYwMDExMTAwNzY5MDQsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgMjEuNjU2NjAwOTUyMTQ4NDM4LCA0LjcyOTQyMDE4NTA4OTExMSwgMTYuNTExMTk5OTUxMTcxODc1LCAyOC4yMzM5OTkyNTIzMTkzMzYsIDQuMjcwMzU5OTkyOTgwOTU3LCAxOC4zMzkwMDA3MDE5MDQyOTcsCisgICAgICAgIDMxLjAxMTg5OTk0ODEyMDExNywgMy4yNjA0NDAxMTExNjAyNzgzLCAyMi4yMjEzOTkzMDcyNTA5NzcsIDMyLjU5NTYwMDEyODE3MzgzLCAyLjI1MDUwOTk3NzM0MDY5ODIsIDI2Ljc2NDQwMDQ4MjE3NzczNCwKKyAgICAgICAgMzUuNTkwMDk5MzM0NzE2OCwgMS43OTE0NTAwMjM2NTExMjMsIDMwLjU3Mzk5OTQwNDkwNzIyNywgMjEuNjU2NjAwOTUyMTQ4NDM4LCAwLCAxOC4xNTMyOTkzMzE2NjUwNCwKKyAgICAgICAgMjcuNzY3NDAwNzQxNTc3MTUsIDAsIDE5LjU1NjYwMDU3MDY3ODcxLCAzMC40MTQ4MDA2NDM5MjA5LCAwLCAyMi45MzA1MDAwMzA1MTc1NzgsCisgICAgICAgIDMxLjg2NzkwMDg0ODM4ODY3MiwgMCwgMjcuMDIwOTk5OTA4NDQ3MjY2LCAzNC4zOTU4MDE1NDQxODk0NSwgMCwgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICAzNC4zOTU4MDE1NDQxODk0NSwgMCwgMzAuNTczOTk5NDA0OTA3MjI3LCAzNS41OTAwOTkzMzQ3MTY4LCAtMS43OTE0NTAwMjM2NTExMjMsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgMzYuNTkwNDk5ODc3OTI5NjksIC0xLjY3OTQ3OTk1NjYyNjg5MiwgMzEuMTM3Njk5MTI3MTk3MjY2LCAzNS4zMTE0MDEzNjcxODc1LCAwLCAzMS4xMTE0OTk3ODYzNzY5NTMsCisgICAgICAgIDM3LjE4ODcwMTYyOTYzODY3LCAtMS40MzMxNTk5NDczOTUzMjQ3LCAzMS4zMzI1OTk2Mzk4OTI1NzgsIDM1Ljk4ODIwMTE0MTM1NzQyLCAwLCAzMS4yOTA1OTk4MjI5OTgwNDcsCisgICAgICAgIDM3LjIwNjYwMDE4OTIwODk4NCwgLTEuMTg2ODMwMDQzNzkyNzI0NiwgMzEuMTQ4MTk5MDgxNDIwOSwgMzYuMTg3MTk4NjM4OTE2MDE2LCAwLCAzMS4xMTE0OTk3ODYzNzY5NTMsCisgICAgICAgIDM2LjQ2NTkwMDQyMTE0MjU4LCAtMS4wNzQ4Njk5OTAzNDg4MTYsIDMwLjU3Mzk5OTQwNDkwNzIyNywgMzUuNjY5NzAwNjIyNTU4NTk0LCAwLCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIDM4LjIxNzYwMTc3NjEyMzA1LCAtMi4zODg2MDAxMTEwMDc2OTA0LCAzMC41NzM5OTk0MDQ5MDcyMjcsIDM5LjQwNDM5OTg3MTgyNjE3LCAtMi4yMzkzMTAwMjYxNjg4MjMyLCAzMS4xOTU0OTk0MjAxNjYwMTYsCisgICAgICAgIDM5LjgyOTg5ODgzNDIyODUxNiwgLTEuOTEwODc5OTY5NTk2ODYyOCwgMzEuNDI0OTk5MjM3MDYwNTQ3LCAzOS40NDkxOTk2NzY1MTM2NywgLTEuNTgyNDUwMDMyMjM0MTkyLCAzMS4yMjkwMDAwOTE1NTI3MzQsCisgICAgICAgIDM4LjIxNzYwMTc3NjEyMzA1LCAtMS40MzMxNTk5NDczOTUzMjQ3LCAzMC41NzM5OTk0MDQ5MDcyMjcsIDQwLjg0NTAwMTIyMDcwMzEyNSwgLTEuNzkxNDUwMDIzNjUxMTIzLCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIDQyLjIxODI5OTg2NTcyMjY1NiwgLTEuNjc5NDc5OTU2NjI2ODkyLCAzMS4yNTMyMDA1MzEwMDU4NiwgNDIuNDcxMDAwNjcxMzg2NzIsIC0xLjQzMzE1OTk0NzM5NTMyNDcsIDMxLjUxNzQwMDc0MTU3NzE1LAorICAgICAgICA0MS42OTE2OTk5ODE2ODk0NSwgLTEuMTg2ODMwMDQzNzkyNzI0NiwgMzEuMzA5OTAwMjgzODEzNDc3LCAzOS45NjkyMDAxMzQyNzczNDQsIC0xLjA3NDg2OTk5MDM0ODgxNiwgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICA0Mi4wMzkyOTkwMTEyMzA0NywgMCwgMzAuNTczOTk5NDA0OTA3MjI3LCA0My40OTcyOTkxOTQzMzU5NCwgMCwgMzEuMjc5Mzk5ODcxODI2MTcyLAorICAgICAgICA0My42NzE1MDExNTk2Njc5NywgMCwgMzEuNTU5Mjk5NDY4OTk0MTQsIDQyLjcxMTEwMTUzMTk4MjQyLCAwLCAzMS4zNDY1OTk1Nzg4NTc0MjIsCisgICAgICAgIDQwLjc2NTM5OTkzMjg2MTMzLCAwLCAzMC41NzM5OTk0MDQ5MDcyMjcsIDQyLjAzOTI5OTAxMTIzMDQ3LCAwLCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIDQwLjg0NTAwMTIyMDcwMzEyNSwgMS43OTE0NTAwMjM2NTExMjMsIDMwLjU3Mzk5OTQwNDkwNzIyNywgNDIuMjE4Mjk5ODY1NzIyNjU2LCAxLjY3OTQ3OTk1NjYyNjg5MiwgMzEuMjUzMjAwNTMxMDA1ODYsCisgICAgICAgIDQzLjQ5NzI5OTE5NDMzNTk0LCAwLCAzMS4yNzkzOTk4NzE4MjYxNzIsIDQyLjQ3MTAwMDY3MTM4NjcyLCAxLjQzMzE1OTk0NzM5NTMyNDcsIDMxLjUxNzQwMDc0MTU3NzE1LAorICAgICAgICA0My42NzE1MDExNTk2Njc5NywgMCwgMzEuNTU5Mjk5NDY4OTk0MTQsIDQxLjY5MTY5OTk4MTY4OTQ1LCAxLjE4NjgzMDA0Mzc5MjcyNDYsIDMxLjMwOTkwMDI4MzgxMzQ3NywKKyAgICAgICAgNDIuNzExMTAxNTMxOTgyNDIsIDAsIDMxLjM0NjU5OTU3ODg1NzQyMiwgMzkuOTY5MjAwMTM0Mjc3MzQ0LCAxLjA3NDg2OTk5MDM0ODgxNiwgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICA0MC43NjUzOTk5MzI4NjEzMywgMCwgMzAuNTczOTk5NDA0OTA3MjI3LCAzOC4yMTc2MDE3NzYxMjMwNSwgMi4zODg2MDAxMTEwMDc2OTA0LCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIDM5LjQwNDM5OTg3MTgyNjE3LCAyLjIzOTMxMDAyNjE2ODgyMzIsIDMxLjE5NTQ5OTQyMDE2NjAxNiwgMzkuODI5ODk4ODM0MjI4NTE2LCAxLjkxMDg3OTk2OTU5Njg2MjgsIDMxLjQyNDk5OTIzNzA2MDU0NywKKyAgICAgICAgMzkuNDQ5MTk5Njc2NTEzNjcsIDEuNTgyNDUwMDMyMjM0MTkyLCAzMS4yMjkwMDAwOTE1NTI3MzQsIDM4LjIxNzYwMTc3NjEyMzA1LCAxLjQzMzE1OTk0NzM5NTMyNDcsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgMzUuNTkwMDk5MzM0NzE2OCwgMS43OTE0NTAwMjM2NTExMjMsIDMwLjU3Mzk5OTQwNDkwNzIyNywgMzYuNTkwNDk5ODc3OTI5NjksIDEuNjc5NDc5OTU2NjI2ODkyLCAzMS4xMzc2OTkxMjcxOTcyNjYsCisgICAgICAgIDM3LjE4ODcwMTYyOTYzODY3LCAxLjQzMzE1OTk0NzM5NTMyNDcsIDMxLjMzMjU5OTYzOTg5MjU3OCwgMzcuMjA2NjAwMTg5MjA4OTg0LCAxLjE4NjgzMDA0Mzc5MjcyNDYsIDMxLjE0ODE5OTA4MTQyMDksCisgICAgICAgIDM2LjQ2NTkwMDQyMTE0MjU4LCAxLjA3NDg2OTk5MDM0ODgxNiwgMzAuNTczOTk5NDA0OTA3MjI3LCAzNC4zOTU4MDE1NDQxODk0NSwgMCwgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICAzNS4zMTE0MDEzNjcxODc1LCAwLCAzMS4xMTE0OTk3ODYzNzY5NTMsIDM1Ljk4ODIwMTE0MTM1NzQyLCAwLCAzMS4yOTA1OTk4MjI5OTgwNDcsCisgICAgICAgIDM2LjE4NzE5ODYzODkxNjAxNiwgMCwgMzEuMTExNDk5Nzg2Mzc2OTUzLCAzNS42Njk3MDA2MjI1NTg1OTQsIDAsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgMCwgMCwgNDAuMTI4Mzk4ODk1MjYzNjcsIDAsIDAsIDQwLjEyODM5ODg5NTI2MzY3LAorICAgICAgICA0LjAwNDQ5OTkxMjI2MTk2MywgLTEuNzA3NzAwMDE0MTE0Mzc5OSwgMzkuNTAxMzk5OTkzODk2NDg0LCA0LjMzOTI4MDEyODQ3OTAwNCwgMCwgMzkuNTAxMzk5OTkzODk2NDg0LAorICAgICAgICAzLjgyMDcwOTk0Mzc3MTM2MjMsIC0xLjYyOTA3MDA0MzU2Mzg0MjgsIDM3Ljk3ODY5ODczMDQ2ODc1LCA0LjE0MDIzMDE3ODgzMzAwOCwgMCwgMzcuOTc4Njk4NzMwNDY4NzUsCisgICAgICAgIDIuMzE0MTYwMTA4NTY2Mjg0LCAtMC45ODU5MTIwMjQ5NzQ4MjMsIDM2LjA5NzY5ODIxMTY2OTkyLCAyLjUwODAyOTkzNzc0NDE0MDYsIDAsIDM2LjA5NzY5ODIxMTY2OTkyLAorICAgICAgICAyLjM1MDM3OTk0Mzg0NzY1NjIsIC0xLjAwMDAzMDA0MDc0MDk2NjgsIDM0LjM5NTgwMTU0NDE4OTQ1LCAyLjU0Nzg0MDExODQwODIwMywgMCwgMzQuMzk1ODAxNTQ0MTg5NDUsCisgICAgICAgIDAsIDAsIDQwLjEyODM5ODg5NTI2MzY3LCAzLjA4NDkxOTkyOTUwNDM5NDUsIC0zLjA4NDkxOTkyOTUwNDM5NDUsIDM5LjUwMTM5OTk5Mzg5NjQ4NCwKKyAgICAgICAgMi45NDMxNTAwNDM0ODc1NDksIC0yLjk0MzE1MDA0MzQ4NzU0OSwgMzcuOTc4Njk4NzMwNDY4NzUsIDEuNzgyMDM5OTk5OTYxODUzLCAtMS43ODIwMzk5OTk5NjE4NTMsIDM2LjA5NzY5ODIxMTY2OTkyLAorICAgICAgICAxLjgwODk1OTk2MDkzNzUsIC0xLjgwODk1OTk2MDkzNzUsIDM0LjM5NTgwMTU0NDE4OTQ1LCAwLCAwLCA0MC4xMjgzOTg4OTUyNjM2NywKKyAgICAgICAgMS43MDc3MDAwMTQxMTQzNzk5LCAtNC4wMDQ0OTk5MTIyNjE5NjMsIDM5LjUwMTM5OTk5Mzg5NjQ4NCwgMS42MjkwNzAwNDM1NjM4NDI4LCAtMy44MjA3MDk5NDM3NzEzNjIzLCAzNy45Nzg2OTg3MzA0Njg3NSwKKyAgICAgICAgMC45ODU5MTIwMjQ5NzQ4MjMsIC0yLjMxNDE2MDEwODU2NjI4NCwgMzYuMDk3Njk4MjExNjY5OTIsIDEuMDAwMDMwMDQwNzQwOTY2OCwgLTIuMzUwMzc5OTQzODQ3NjU2MiwgMzQuMzk1ODAxNTQ0MTg5NDUsCisgICAgICAgIDAsIDAsIDQwLjEyODM5ODg5NTI2MzY3LCAwLCAtNC4zMzkyODAxMjg0NzkwMDQsIDM5LjUwMTM5OTk5Mzg5NjQ4NCwKKyAgICAgICAgMCwgLTQuMTQwMjMwMTc4ODMzMDA4LCAzNy45Nzg2OTg3MzA0Njg3NSwgMCwgLTIuNTA4MDI5OTM3NzQ0MTQwNiwgMzYuMDk3Njk4MjExNjY5OTIsCisgICAgICAgIDAsIC0yLjU0Nzg0MDExODQwODIwMywgMzQuMzk1ODAxNTQ0MTg5NDUsIDAsIDAsIDQwLjEyODM5ODg5NTI2MzY3LAorICAgICAgICAwLCAwLCA0MC4xMjgzOTg4OTUyNjM2NywgLTEuNzA3NzAwMDE0MTE0Mzc5OSwgLTQuMDA0NDk5OTEyMjYxOTYzLCAzOS41MDEzOTk5OTM4OTY0ODQsCisgICAgICAgIDAsIC00LjMzOTI4MDEyODQ3OTAwNCwgMzkuNTAxMzk5OTkzODk2NDg0LCAtMS42MjkwNzAwNDM1NjM4NDI4LCAtMy44MjA3MDk5NDM3NzEzNjIzLCAzNy45Nzg2OTg3MzA0Njg3NSwKKyAgICAgICAgMCwgLTQuMTQwMjMwMTc4ODMzMDA4LCAzNy45Nzg2OTg3MzA0Njg3NSwgLTAuOTg1OTEyMDI0OTc0ODIzLCAtMi4zMTQxNjAxMDg1NjYyODQsIDM2LjA5NzY5ODIxMTY2OTkyLAorICAgICAgICAwLCAtMi41MDgwMjk5Mzc3NDQxNDA2LCAzNi4wOTc2OTgyMTE2Njk5MiwgLTEuMDAwMDMwMDQwNzQwOTY2OCwgLTIuMzUwMzc5OTQzODQ3NjU2MiwgMzQuMzk1ODAxNTQ0MTg5NDUsCisgICAgICAgIDAsIC0yLjU0Nzg0MDExODQwODIwMywgMzQuMzk1ODAxNTQ0MTg5NDUsIDAsIDAsIDQwLjEyODM5ODg5NTI2MzY3LAorICAgICAgICAtMy4wODQ5MTk5Mjk1MDQzOTQ1LCAtMy4wODQ5MTk5Mjk1MDQzOTQ1LCAzOS41MDEzOTk5OTM4OTY0ODQsIC0yLjk0MzE1MDA0MzQ4NzU0OSwgLTIuOTQzMTUwMDQzNDg3NTQ5LCAzNy45Nzg2OTg3MzA0Njg3NSwKKyAgICAgICAgLTEuNzgyMDM5OTk5OTYxODUzLCAtMS43ODIwMzk5OTk5NjE4NTMsIDM2LjA5NzY5ODIxMTY2OTkyLCAtMS44MDg5NTk5NjA5Mzc1LCAtMS44MDg5NTk5NjA5Mzc1LCAzNC4zOTU4MDE1NDQxODk0NSwKKyAgICAgICAgMCwgMCwgNDAuMTI4Mzk4ODk1MjYzNjcsIC00LjAwNDQ5OTkxMjI2MTk2MywgLTEuNzA3NzAwMDE0MTE0Mzc5OSwgMzkuNTAxMzk5OTkzODk2NDg0LAorICAgICAgICAtMy44MjA3MDk5NDM3NzEzNjIzLCAtMS42MjkwNzAwNDM1NjM4NDI4LCAzNy45Nzg2OTg3MzA0Njg3NSwgLTIuMzE0MTYwMTA4NTY2Mjg0LCAtMC45ODU5MTIwMjQ5NzQ4MjMsIDM2LjA5NzY5ODIxMTY2OTkyLAorICAgICAgICAtMi4zNTAzNzk5NDM4NDc2NTYyLCAtMS4wMDAwMzAwNDA3NDA5NjY4LCAzNC4zOTU4MDE1NDQxODk0NSwgMCwgMCwgNDAuMTI4Mzk4ODk1MjYzNjcsCisgICAgICAgIC00LjMzOTI4MDEyODQ3OTAwNCwgMCwgMzkuNTAxMzk5OTkzODk2NDg0LCAtNC4xNDAyMzAxNzg4MzMwMDgsIDAsIDM3Ljk3ODY5ODczMDQ2ODc1LAorICAgICAgICAtMi41MDgwMjk5Mzc3NDQxNDA2LCAwLCAzNi4wOTc2OTgyMTE2Njk5MiwgLTIuNTQ3ODQwMTE4NDA4MjAzLCAwLCAzNC4zOTU4MDE1NDQxODk0NSwKKyAgICAgICAgMCwgMCwgNDAuMTI4Mzk4ODk1MjYzNjcsIDAsIDAsIDQwLjEyODM5ODg5NTI2MzY3LAorICAgICAgICAtNC4wMDQ0OTk5MTIyNjE5NjMsIDEuNzA3NzAwMDE0MTE0Mzc5OSwgMzkuNTAxMzk5OTkzODk2NDg0LCAtNC4zMzkyODAxMjg0NzkwMDQsIDAsIDM5LjUwMTM5OTk5Mzg5NjQ4NCwKKyAgICAgICAgLTMuODIwNzA5OTQzNzcxMzYyMywgMS42MjkwNzAwNDM1NjM4NDI4LCAzNy45Nzg2OTg3MzA0Njg3NSwgLTQuMTQwMjMwMTc4ODMzMDA4LCAwLCAzNy45Nzg2OTg3MzA0Njg3NSwKKyAgICAgICAgLTIuMzE0MTYwMTA4NTY2Mjg0LCAwLjk4NTkxMjAyNDk3NDgyMywgMzYuMDk3Njk4MjExNjY5OTIsIC0yLjUwODAyOTkzNzc0NDE0MDYsIDAsIDM2LjA5NzY5ODIxMTY2OTkyLAorICAgICAgICAtMi4zNTAzNzk5NDM4NDc2NTYyLCAxLjAwMDAzMDA0MDc0MDk2NjgsIDM0LjM5NTgwMTU0NDE4OTQ1LCAtMi41NDc4NDAxMTg0MDgyMDMsIDAsIDM0LjM5NTgwMTU0NDE4OTQ1LAorICAgICAgICAwLCAwLCA0MC4xMjgzOTg4OTUyNjM2NywgLTMuMDg0OTE5OTI5NTA0Mzk0NSwgMy4wODQ5MTk5Mjk1MDQzOTQ1LCAzOS41MDEzOTk5OTM4OTY0ODQsCisgICAgICAgIC0yLjk0MzE1MDA0MzQ4NzU0OSwgMi45NDMxNTAwNDM0ODc1NDksIDM3Ljk3ODY5ODczMDQ2ODc1LCAtMS43ODIwMzk5OTk5NjE4NTMsIDEuNzgyMDM5OTk5OTYxODUzLCAzNi4wOTc2OTgyMTE2Njk5MiwKKyAgICAgICAgLTEuODA4OTU5OTYwOTM3NSwgMS44MDg5NTk5NjA5Mzc1LCAzNC4zOTU4MDE1NDQxODk0NSwgMCwgMCwgNDAuMTI4Mzk4ODk1MjYzNjcsCisgICAgICAgIC0xLjcwNzcwMDAxNDExNDM3OTksIDQuMDA0NDk5OTEyMjYxOTYzLCAzOS41MDEzOTk5OTM4OTY0ODQsIC0xLjYyOTA3MDA0MzU2Mzg0MjgsIDMuODIwNzA5OTQzNzcxMzYyMywgMzcuOTc4Njk4NzMwNDY4NzUsCisgICAgICAgIC0wLjk4NTkxMjAyNDk3NDgyMywgMi4zMTQxNjAxMDg1NjYyODQsIDM2LjA5NzY5ODIxMTY2OTkyLCAtMS4wMDAwMzAwNDA3NDA5NjY4LCAyLjM1MDM3OTk0Mzg0NzY1NjIsIDM0LjM5NTgwMTU0NDE4OTQ1LAorICAgICAgICAwLCAwLCA0MC4xMjgzOTg4OTUyNjM2NywgMCwgNC4zMzkyODAxMjg0NzkwMDQsIDM5LjUwMTM5OTk5Mzg5NjQ4NCwKKyAgICAgICAgMCwgNC4xNDAyMzAxNzg4MzMwMDgsIDM3Ljk3ODY5ODczMDQ2ODc1LCAwLCAyLjUwODAyOTkzNzc0NDE0MDYsIDM2LjA5NzY5ODIxMTY2OTkyLAorICAgICAgICAwLCAyLjU0Nzg0MDExODQwODIwMywgMzQuMzk1ODAxNTQ0MTg5NDUsIDAsIDAsIDQwLjEyODM5ODg5NTI2MzY3LAorICAgICAgICAwLCAwLCA0MC4xMjgzOTg4OTUyNjM2NywgMS43MDc3MDAwMTQxMTQzNzk5LCA0LjAwNDQ5OTkxMjI2MTk2MywgMzkuNTAxMzk5OTkzODk2NDg0LAorICAgICAgICAwLCA0LjMzOTI4MDEyODQ3OTAwNCwgMzkuNTAxMzk5OTkzODk2NDg0LCAxLjYyOTA3MDA0MzU2Mzg0MjgsIDMuODIwNzA5OTQzNzcxMzYyMywgMzcuOTc4Njk4NzMwNDY4NzUsCisgICAgICAgIDAsIDQuMTQwMjMwMTc4ODMzMDA4LCAzNy45Nzg2OTg3MzA0Njg3NSwgMC45ODU5MTIwMjQ5NzQ4MjMsIDIuMzE0MTYwMTA4NTY2Mjg0LCAzNi4wOTc2OTgyMTE2Njk5MiwKKyAgICAgICAgMCwgMi41MDgwMjk5Mzc3NDQxNDA2LCAzNi4wOTc2OTgyMTE2Njk5MiwgMS4wMDAwMzAwNDA3NDA5NjY4LCAyLjM1MDM3OTk0Mzg0NzY1NjIsIDM0LjM5NTgwMTU0NDE4OTQ1LAorICAgICAgICAwLCAyLjU0Nzg0MDExODQwODIwMywgMzQuMzk1ODAxNTQ0MTg5NDUsIDAsIDAsIDQwLjEyODM5ODg5NTI2MzY3LAorICAgICAgICAzLjA4NDkxOTkyOTUwNDM5NDUsIDMuMDg0OTE5OTI5NTA0Mzk0NSwgMzkuNTAxMzk5OTkzODk2NDg0LCAyLjk0MzE1MDA0MzQ4NzU0OSwgMi45NDMxNTAwNDM0ODc1NDksIDM3Ljk3ODY5ODczMDQ2ODc1LAorICAgICAgICAxLjc4MjAzOTk5OTk2MTg1MywgMS43ODIwMzk5OTk5NjE4NTMsIDM2LjA5NzY5ODIxMTY2OTkyLCAxLjgwODk1OTk2MDkzNzUsIDEuODA4OTU5OTYwOTM3NSwgMzQuMzk1ODAxNTQ0MTg5NDUsCisgICAgICAgIDAsIDAsIDQwLjEyODM5ODg5NTI2MzY3LCA0LjAwNDQ5OTkxMjI2MTk2MywgMS43MDc3MDAwMTQxMTQzNzk5LCAzOS41MDEzOTk5OTM4OTY0ODQsCisgICAgICAgIDMuODIwNzA5OTQzNzcxMzYyMywgMS42MjkwNzAwNDM1NjM4NDI4LCAzNy45Nzg2OTg3MzA0Njg3NSwgMi4zMTQxNjAxMDg1NjYyODQsIDAuOTg1OTEyMDI0OTc0ODIzLCAzNi4wOTc2OTgyMTE2Njk5MiwKKyAgICAgICAgMi4zNTAzNzk5NDM4NDc2NTYyLCAxLjAwMDAzMDA0MDc0MDk2NjgsIDM0LjM5NTgwMTU0NDE4OTQ1LCAwLCAwLCA0MC4xMjgzOTg4OTUyNjM2NywKKyAgICAgICAgNC4zMzkyODAxMjg0NzkwMDQsIDAsIDM5LjUwMTM5OTk5Mzg5NjQ4NCwgNC4xNDAyMzAxNzg4MzMwMDgsIDAsIDM3Ljk3ODY5ODczMDQ2ODc1LAorICAgICAgICAyLjUwODAyOTkzNzc0NDE0MDYsIDAsIDM2LjA5NzY5ODIxMTY2OTkyLCAyLjU0Nzg0MDExODQwODIwMywgMCwgMzQuMzk1ODAxNTQ0MTg5NDUsCisgICAgICAgIDIuNTQ3ODQwMTE4NDA4MjAzLCAwLCAzNC4zOTU4MDE1NDQxODk0NSwgMi4zNTAzNzk5NDM4NDc2NTYyLCAtMS4wMDAwMzAwNDA3NDA5NjY4LCAzNC4zOTU4MDE1NDQxODk0NSwKKyAgICAgICAgNS4zNjE4MDAxOTM3ODY2MjEsIC0yLjI4MTMxMDA4MTQ4MTkzMzYsIDMzLjI2MTE5OTk1MTE3MTg3NSwgNS44MTIyNTAxMzczMjkxMDIsIDAsIDMzLjI2MTE5OTk1MTE3MTg3NSwKKyAgICAgICAgOS42OTUzMjAxMjkzOTQ1MzEsIC00LjEyNTExMDE0OTM4MzU0NSwgMzIuNDg0OTAxNDI4MjIyNjU2LCAxMC41MDk3OTk5NTcyNzUzOSwgMCwgMzIuNDg0OTAxNDI4MjIyNjU2LAorICAgICAgICAxMy41ODgxMDA0MzMzNDk2MSwgLTUuNzgxNDAwMjAzNzA0ODM0LCAzMS43MDg1OTkwOTA1NzYxNzIsIDE0LjcyOTcwMDA4ODUwMDk3NywgMCwgMzEuNzA4NTk5MDkwNTc2MTcyLAorICAgICAgICAxNS4yNzc1MDAxNTI1ODc4OSwgLTYuNTAwMTcwMjMwODY1NDc4NSwgMzAuNTczOTk5NDA0OTA3MjI3LCAxNi41NjA4OTk3MzQ0OTcwNywgMCwgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICAxLjgwODk1OTk2MDkzNzUsIC0xLjgwODk1OTk2MDkzNzUsIDM0LjM5NTgwMTU0NDE4OTQ1LCA0LjEyNjY5OTkyNDQ2ODk5NCwgLTQuMTI2Njk5OTI0NDY4OTk0LCAzMy4yNjExOTk5NTExNzE4NzUsCisgICAgICAgIDcuNDYxOTc5ODY2MDI3ODMyLCAtNy40NjE5Nzk4NjYwMjc4MzIsIDMyLjQ4NDkwMTQyODIyMjY1NiwgMTAuNDU4MTAwMzE4OTA4NjkxLCAtMTAuNDU4MTAwMzE4OTA4NjkxLCAzMS43MDg1OTkwOTA1NzYxNzIsCisgICAgICAgIDExLjc1ODI5OTgyNzU3NTY4NCwgLTExLjc1ODI5OTgyNzU3NTY4NCwgMzAuNTczOTk5NDA0OTA3MjI3LCAxLjAwMDAzMDA0MDc0MDk2NjgsIC0yLjM1MDM3OTk0Mzg0NzY1NjIsIDM0LjM5NTgwMTU0NDE4OTQ1LAorICAgICAgICAyLjI4MTMxMDA4MTQ4MTkzMzYsIC01LjM2MTgwMDE5Mzc4NjYyMSwgMzMuMjYxMTk5OTUxMTcxODc1LCA0LjEyNTExMDE0OTM4MzU0NSwgLTkuNjk1MzIwMTI5Mzk0NTMxLCAzMi40ODQ5MDE0MjgyMjI2NTYsCisgICAgICAgIDUuNzgxNDAwMjAzNzA0ODM0LCAtMTMuNTg4MTAwNDMzMzQ5NjEsIDMxLjcwODU5OTA5MDU3NjE3MiwgNi41MDAxNzAyMzA4NjU0Nzg1LCAtMTUuMjc3NTAwMTUyNTg3ODksIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgMCwgLTIuNTQ3ODQwMTE4NDA4MjAzLCAzNC4zOTU4MDE1NDQxODk0NSwgMCwgLTUuODEyMjUwMTM3MzI5MTAyLCAzMy4yNjExOTk5NTExNzE4NzUsCisgICAgICAgIDAsIC0xMC41MDk3OTk5NTcyNzUzOSwgMzIuNDg0OTAxNDI4MjIyNjU2LCAwLCAtMTQuNzI5NzAwMDg4NTAwOTc3LCAzMS43MDg1OTkwOTA1NzYxNzIsCisgICAgICAgIDAsIC0xNi41NjA4OTk3MzQ0OTcwNywgMzAuNTczOTk5NDA0OTA3MjI3LCAwLCAtMi41NDc4NDAxMTg0MDgyMDMsIDM0LjM5NTgwMTU0NDE4OTQ1LAorICAgICAgICAtMS4wMDAwMzAwNDA3NDA5NjY4LCAtMi4zNTAzNzk5NDM4NDc2NTYyLCAzNC4zOTU4MDE1NDQxODk0NSwgLTIuMjgxMzEwMDgxNDgxOTMzNiwgLTUuMzYxODAwMTkzNzg2NjIxLCAzMy4yNjExOTk5NTExNzE4NzUsCisgICAgICAgIDAsIC01LjgxMjI1MDEzNzMyOTEwMiwgMzMuMjYxMTk5OTUxMTcxODc1LCAtNC4xMjUxMTAxNDkzODM1NDUsIC05LjY5NTMyMDEyOTM5NDUzMSwgMzIuNDg0OTAxNDI4MjIyNjU2LAorICAgICAgICAwLCAtMTAuNTA5Nzk5OTU3Mjc1MzksIDMyLjQ4NDkwMTQyODIyMjY1NiwgLTUuNzgxNDAwMjAzNzA0ODM0LCAtMTMuNTg4MTAwNDMzMzQ5NjEsIDMxLjcwODU5OTA5MDU3NjE3MiwKKyAgICAgICAgMCwgLTE0LjcyOTcwMDA4ODUwMDk3NywgMzEuNzA4NTk5MDkwNTc2MTcyLCAtNi41MDAxNzAyMzA4NjU0Nzg1LCAtMTUuMjc3NTAwMTUyNTg3ODksIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgMCwgLTE2LjU2MDg5OTczNDQ5NzA3LCAzMC41NzM5OTk0MDQ5MDcyMjcsIC0xLjgwODk1OTk2MDkzNzUsIC0xLjgwODk1OTk2MDkzNzUsIDM0LjM5NTgwMTU0NDE4OTQ1LAorICAgICAgICAtNC4xMjY2OTk5MjQ0Njg5OTQsIC00LjEyNjY5OTkyNDQ2ODk5NCwgMzMuMjYxMTk5OTUxMTcxODc1LCAtNy40NjE5Nzk4NjYwMjc4MzIsIC03LjQ2MTk3OTg2NjAyNzgzMiwgMzIuNDg0OTAxNDI4MjIyNjU2LAorICAgICAgICAtMTAuNDU4MTAwMzE4OTA4NjkxLCAtMTAuNDU4MTAwMzE4OTA4NjkxLCAzMS43MDg1OTkwOTA1NzYxNzIsIC0xMS43NTgyOTk4Mjc1NzU2ODQsIC0xMS43NTgyOTk4Mjc1NzU2ODQsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgLTIuMzUwMzc5OTQzODQ3NjU2MiwgLTEuMDAwMDMwMDQwNzQwOTY2OCwgMzQuMzk1ODAxNTQ0MTg5NDUsIC01LjM2MTgwMDE5Mzc4NjYyMSwgLTIuMjgxMzEwMDgxNDgxOTMzNiwgMzMuMjYxMTk5OTUxMTcxODc1LAorICAgICAgICAtOS42OTUzMjAxMjkzOTQ1MzEsIC00LjEyNTExMDE0OTM4MzU0NSwgMzIuNDg0OTAxNDI4MjIyNjU2LCAtMTMuNTg4MTAwNDMzMzQ5NjEsIC01Ljc4MTQwMDIwMzcwNDgzNCwgMzEuNzA4NTk5MDkwNTc2MTcyLAorICAgICAgICAtMTUuMjc3NTAwMTUyNTg3ODksIC02LjUwMDE3MDIzMDg2NTQ3ODUsIDMwLjU3Mzk5OTQwNDkwNzIyNywgLTIuNTQ3ODQwMTE4NDA4MjAzLCAwLCAzNC4zOTU4MDE1NDQxODk0NSwKKyAgICAgICAgLTUuODEyMjUwMTM3MzI5MTAyLCAwLCAzMy4yNjExOTk5NTExNzE4NzUsIC0xMC41MDk3OTk5NTcyNzUzOSwgMCwgMzIuNDg0OTAxNDI4MjIyNjU2LAorICAgICAgICAtMTQuNzI5NzAwMDg4NTAwOTc3LCAwLCAzMS43MDg1OTkwOTA1NzYxNzIsIC0xNi41NjA4OTk3MzQ0OTcwNywgMCwgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICAtMi41NDc4NDAxMTg0MDgyMDMsIDAsIDM0LjM5NTgwMTU0NDE4OTQ1LCAtMi4zNTAzNzk5NDM4NDc2NTYyLCAxLjAwMDAzMDA0MDc0MDk2NjgsIDM0LjM5NTgwMTU0NDE4OTQ1LAorICAgICAgICAtNS4zNjE4MDAxOTM3ODY2MjEsIDIuMjgxMzEwMDgxNDgxOTMzNiwgMzMuMjYxMTk5OTUxMTcxODc1LCAtNS44MTIyNTAxMzczMjkxMDIsIDAsIDMzLjI2MTE5OTk1MTE3MTg3NSwKKyAgICAgICAgLTkuNjk1MzIwMTI5Mzk0NTMxLCA0LjEyNTExMDE0OTM4MzU0NSwgMzIuNDg0OTAxNDI4MjIyNjU2LCAtMTAuNTA5Nzk5OTU3Mjc1MzksIDAsIDMyLjQ4NDkwMTQyODIyMjY1NiwKKyAgICAgICAgLTEzLjU4ODEwMDQzMzM0OTYxLCA1Ljc4MTQwMDIwMzcwNDgzNCwgMzEuNzA4NTk5MDkwNTc2MTcyLCAtMTQuNzI5NzAwMDg4NTAwOTc3LCAwLCAzMS43MDg1OTkwOTA1NzYxNzIsCisgICAgICAgIC0xNS4yNzc1MDAxNTI1ODc4OSwgNi41MDAxNzAyMzA4NjU0Nzg1LCAzMC41NzM5OTk0MDQ5MDcyMjcsIC0xNi41NjA4OTk3MzQ0OTcwNywgMCwgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICAtMS44MDg5NTk5NjA5Mzc1LCAxLjgwODk1OTk2MDkzNzUsIDM0LjM5NTgwMTU0NDE4OTQ1LCAtNC4xMjY2OTk5MjQ0Njg5OTQsIDQuMTI2Njk5OTI0NDY4OTk0LCAzMy4yNjExOTk5NTExNzE4NzUsCisgICAgICAgIC03LjQ2MTk3OTg2NjAyNzgzMiwgNy40NjE5Nzk4NjYwMjc4MzIsIDMyLjQ4NDkwMTQyODIyMjY1NiwgLTEwLjQ1ODEwMDMxODkwODY5MSwgMTAuNDU4MTAwMzE4OTA4NjkxLCAzMS43MDg1OTkwOTA1NzYxNzIsCisgICAgICAgIC0xMS43NTgyOTk4Mjc1NzU2ODQsIDExLjc1ODI5OTgyNzU3NTY4NCwgMzAuNTczOTk5NDA0OTA3MjI3LCAtMS4wMDAwMzAwNDA3NDA5NjY4LCAyLjM1MDM3OTk0Mzg0NzY1NjIsIDM0LjM5NTgwMTU0NDE4OTQ1LAorICAgICAgICAtMi4yODEzMTAwODE0ODE5MzM2LCA1LjM2MTgwMDE5Mzc4NjYyMSwgMzMuMjYxMTk5OTUxMTcxODc1LCAtNC4xMjUxMTAxNDkzODM1NDUsIDkuNjk1MzIwMTI5Mzk0NTMxLCAzMi40ODQ5MDE0MjgyMjI2NTYsCisgICAgICAgIC01Ljc4MTQwMDIwMzcwNDgzNCwgMTMuNTg4MTAwNDMzMzQ5NjEsIDMxLjcwODU5OTA5MDU3NjE3MiwgLTYuNTAwMTcwMjMwODY1NDc4NSwgMTUuMjc3NTAwMTUyNTg3ODksIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgMCwgMi41NDc4NDAxMTg0MDgyMDMsIDM0LjM5NTgwMTU0NDE4OTQ1LCAwLCA1LjgxMjI1MDEzNzMyOTEwMiwgMzMuMjYxMTk5OTUxMTcxODc1LAorICAgICAgICAwLCAxMC41MDk3OTk5NTcyNzUzOSwgMzIuNDg0OTAxNDI4MjIyNjU2LCAwLCAxNC43Mjk3MDAwODg1MDA5NzcsIDMxLjcwODU5OTA5MDU3NjE3MiwKKyAgICAgICAgMCwgMTYuNTYwODk5NzM0NDk3MDcsIDMwLjU3Mzk5OTQwNDkwNzIyNywgMCwgMi41NDc4NDAxMTg0MDgyMDMsIDM0LjM5NTgwMTU0NDE4OTQ1LAorICAgICAgICAxLjAwMDAzMDA0MDc0MDk2NjgsIDIuMzUwMzc5OTQzODQ3NjU2MiwgMzQuMzk1ODAxNTQ0MTg5NDUsIDIuMjgxMzEwMDgxNDgxOTMzNiwgNS4zNjE4MDAxOTM3ODY2MjEsIDMzLjI2MTE5OTk1MTE3MTg3NSwKKyAgICAgICAgMCwgNS44MTIyNTAxMzczMjkxMDIsIDMzLjI2MTE5OTk1MTE3MTg3NSwgNC4xMjUxMTAxNDkzODM1NDUsIDkuNjk1MzIwMTI5Mzk0NTMxLCAzMi40ODQ5MDE0MjgyMjI2NTYsCisgICAgICAgIDAsIDEwLjUwOTc5OTk1NzI3NTM5LCAzMi40ODQ5MDE0MjgyMjI2NTYsIDUuNzgxNDAwMjAzNzA0ODM0LCAxMy41ODgxMDA0MzMzNDk2MSwgMzEuNzA4NTk5MDkwNTc2MTcyLAorICAgICAgICAwLCAxNC43Mjk3MDAwODg1MDA5NzcsIDMxLjcwODU5OTA5MDU3NjE3MiwgNi41MDAxNzAyMzA4NjU0Nzg1LCAxNS4yNzc1MDAxNTI1ODc4OSwgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICAwLCAxNi41NjA4OTk3MzQ0OTcwNywgMzAuNTczOTk5NDA0OTA3MjI3LCAxLjgwODk1OTk2MDkzNzUsIDEuODA4OTU5OTYwOTM3NSwgMzQuMzk1ODAxNTQ0MTg5NDUsCisgICAgICAgIDQuMTI2Njk5OTI0NDY4OTk0LCA0LjEyNjY5OTkyNDQ2ODk5NCwgMzMuMjYxMTk5OTUxMTcxODc1LCA3LjQ2MTk3OTg2NjAyNzgzMiwgNy40NjE5Nzk4NjYwMjc4MzIsIDMyLjQ4NDkwMTQyODIyMjY1NiwKKyAgICAgICAgMTAuNDU4MTAwMzE4OTA4NjkxLCAxMC40NTgxMDAzMTg5MDg2OTEsIDMxLjcwODU5OTA5MDU3NjE3MiwgMTEuNzU4Mjk5ODI3NTc1Njg0LCAxMS43NTgyOTk4Mjc1NzU2ODQsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgMi4zNTAzNzk5NDM4NDc2NTYyLCAxLjAwMDAzMDA0MDc0MDk2NjgsIDM0LjM5NTgwMTU0NDE4OTQ1LCA1LjM2MTgwMDE5Mzc4NjYyMSwgMi4yODEzMTAwODE0ODE5MzM2LCAzMy4yNjExOTk5NTExNzE4NzUsCisgICAgICAgIDkuNjk1MzIwMTI5Mzk0NTMxLCA0LjEyNTExMDE0OTM4MzU0NSwgMzIuNDg0OTAxNDI4MjIyNjU2LCAxMy41ODgxMDA0MzMzNDk2MSwgNS43ODE0MDAyMDM3MDQ4MzQsIDMxLjcwODU5OTA5MDU3NjE3MiwKKyAgICAgICAgMTUuMjc3NTAwMTUyNTg3ODksIDYuNTAwMTcwMjMwODY1NDc4NSwgMzAuNTczOTk5NDA0OTA3MjI3LCAyLjU0Nzg0MDExODQwODIwMywgMCwgMzQuMzk1ODAxNTQ0MTg5NDUsCisgICAgICAgIDUuODEyMjUwMTM3MzI5MTAyLCAwLCAzMy4yNjExOTk5NTExNzE4NzUsIDEwLjUwOTc5OTk1NzI3NTM5LCAwLCAzMi40ODQ5MDE0MjgyMjI2NTYsCisgICAgICAgIDE0LjcyOTcwMDA4ODUwMDk3NywgMCwgMzEuNzA4NTk5MDkwNTc2MTcyLCAxNi41NjA4OTk3MzQ0OTcwNywgMCwgMzAuNTczOTk5NDA0OTA3MjI3IH07CisKK2Zsb2F0IHRlYXBvdE5vcm1hbHNbXSA9IHsgLTAuOTY2NzQxOTc5MTIyMTYxOSwgMCwgLTAuMjU1NzUxOTk3MjMyNDM3MTMsIC0wLjg5MzAxNDAxMzc2NzI0MjQsIDAuMzY5ODgxOTg3NTcxNzE2MywgLTAuMjU2MzQ1MDAzODQzMzA3NSwKKyAgICAgICAgLTAuODkzNDM3MDI3OTMxMjEzNCwgMC4zNjkxMDIwMDExOTAxODU1NSwgMC4yNTU5OTcwMDIxMjQ3ODY0LCAtMC45NjY4MjM5OTUxMTMzNzI4LCAwLCAwLjI1NTQ0MzAwNjc1MzkyMTUsCisgICAgICAgIC0wLjA4Mzg3OTk5OTgxNjQxNzcsIDAuMDM1NTA3MDAwOTgyNzYxMzgsIDAuOTk1ODQyOTkzMjU5NDI5OSwgLTAuMDkyMDU0MDAxOTg2OTgwNDQsIDAsIDAuOTk1NzU0MDAzNTI0NzgwMywKKyAgICAgICAgMC42Mjk3MjE5OTkxNjgzOTYsIC0wLjI2MDQzNzk5NTE5NTM4ODgsIDAuNzMxODYyMDA4NTcxNjI0OCwgMC42ODIwNDg5NzY0MjEzNTYyLCAwLCAwLjczMTMwNzAyOTcyNDEyMTEsCisgICAgICAgIDAuODAzNzI1MDA0MTk2MTY3LCAtMC4zMzI1ODM5OTM2NzMzMjQ2LCAwLjQ5MzM2OTAxMzA3MTA2MDIsIDAuODcwMzAxMDA4MjI0NDg3MywgMCwgMC40OTI1MjAwMDQ1MTA4Nzk1LAorICAgICAgICAtMC42ODM0MDcwMDg2NDc5MTg3LCAwLjY4MzQwNzAwODY0NzkxODcsIC0wLjI1NjczMTAwMzUyMjg3MjksIC0wLjY4MzUzMDk4NjMwOTA1MTUsIDAuNjgzNTMwOTg2MzA5MDUxNSwgMC4yNTYwNjc5OTEyNTY3MTM4NywKKyAgICAgICAgLTAuMDY0OTI1OTk4NDQ5MzI1NTYsIDAuMDY0OTI1MDAwMDcxNTI1NTcsIDAuOTk1Nzc1OTk3NjM4NzAyNCwgMC40ODEzOTcwMDI5MzU0MDk1NSwgLTAuNDgxMzk3MDAyOTM1NDA5NTUsIDAuNzMyNDcwOTg5MjI3Mjk0OSwKKyAgICAgICAgMC42MTQ4MDQwMjk0NjQ3MjE3LCAtMC42MTQ4MDQwMjk0NjQ3MjE3LCAwLjQ5Mzk5NzAwNzYwODQxMzcsIC0wLjM2OTg4MTk4NzU3MTcxNjMsIDAuODkzMDE0MDEzNzY3MjQyNCwgLTAuMjU2MzQ1MDAzODQzMzA3NSwKKyAgICAgICAgLTAuMzY5MTAyMDAxMTkwMTg1NTUsIDAuODkzNDM3MDI3OTMxMjEzNCwgMC4yNTU5OTU5ODg4NDU4MjUyLCAtMC4wMzU1MDcwMDA5ODI3NjEzOCwgMC4wODM4NzkwMDE0Mzg2MTc3LCAwLjk5NTg0Mjk5MzI1OTQyOTksCisgICAgICAgIDAuMjYwNDM5MDA4NDc0MzUsIC0wLjYyOTcyMzAxMjQ0NzM1NzIsIDAuNzMxODYwOTk1MjkyNjYzNiwgMC4zMzI1ODM5OTM2NzMzMjQ2LCAtMC44MDM3MjUwMDQxOTYxNjcsIDAuNDkzMzY5MDEzMDcxMDYwMiwKKyAgICAgICAgLTAuMDAyODQ4MDAwMDMyODI3MjU4LCAwLjk2NjE3Njk4NjY5NDMzNTksIC0wLjI1Nzg2Mjk4NTEzNDEyNDc2LCAtMC4wMDE5MjE5OTk5NjY3MjU3MDcsIDAuOTY3MDA5MDA3OTMwNzU1NiwgMC4yNTQ3MzYwMDYyNTk5MTgyLAorICAgICAgICAtMC4wMDAyNjUwMDAwMDk2NzY0NDE1NSwgMC4wOTIyNzE5OTg1MjQ2NjU4MywgMC45OTU3MzM5NzYzNjQxMzU3LCAwLjAwMDAyMzAwMDAwMDUxMDM2NDc3LCAtMC42ODIwNjAwMDMyODA2Mzk2LCAwLjczMTI5NjAwMjg2NDgzNzYsCisgICAgICAgIDAsIC0wLjg3MDMwMTAwODIyNDQ4NzMsIDAuNDkyNTIwMDA0NTEwODc5NSwgLTAuMDAyODQ4MDAwMDMyODI3MjU4LCAwLjk2NjE3Njk4NjY5NDMzNTksIC0wLjI1Nzg2Mjk4NTEzNDEyNDc2LAorICAgICAgICAwLjM3OTA1ODAwMzQyNTU5ODE0LCAwLjg1Mjc3MDk4NDE3MjgyMSwgLTAuMzU5Mjk5OTg3NTU0NTUwMTcsIDAuMzc3MTEwMDA0NDI1MDQ4ODMsIDAuOTE0MDkwOTkxMDIwMjAyNiwgMC4xNDkwODUwMDAxNTczNTYyNiwKKyAgICAgICAgLTAuMDAxOTIxOTk5OTY2NzI1NzA3LCAwLjk2NzAwOTAwNzkzMDc1NTYsIDAuMjU0NzM2MDA2MjU5OTE4MiwgMC4wMjc1MDMwMDA1NzIzMjM4LCAwLjEyMjU1NTAwMjU3MDE1MjI4LCAwLjk5MjA4MDk4NjQ5OTc4NjQsCisgICAgICAgIC0wLjAwMDI2NTAwMDAwOTY3NjQ0MTU1LCAwLjA5MjI3MTk5ODUyNDY2NTgzLCAwLjk5NTczMzk3NjM2NDEzNTcsIC0wLjI2MTAwOTAwNzY5MjMzNzA0LCAtMC42MzUzNjUwMDkzMDc4NjEzLCAwLjcyNjc2MzAxMDAyNTAyNDQsCisgICAgICAgIDAuMDAwMDIzMDAwMDAwNTEwMzY0NzcsIC0wLjY4MjA2MDAwMzI4MDYzOTYsIDAuNzMxMjk2MDAyODY0ODM3NiwgLTAuMzMyNDg0OTkwMzU4MzUyNjYsIC0wLjgwNDI3MDk4Mjc0MjMwOTYsIDAuNDkyNTQ1OTkyMTM2MDAxNiwKKyAgICAgICAgMCwgLTAuODcwMzAxMDA4MjI0NDg3MywgMC40OTI1MjAwMDQ1MTA4Nzk1LCAwLjY2MzU0Njk3OTQyNzMzNzYsIDAuNjI1MjYzOTg4OTcxNzEwMiwgLTAuNDEwNzkxOTkzMTQxMTc0MywKKyAgICAgICAgMC43MTI2NjQwMDgxNDA1NjQsIDAuNjk3NjIwOTg3ODkyMTUwOSwgMC4wNzM3MjQwMDE2NDYwNDE4NywgMC4wOTk3MjY5OTczMTU4ODM2NCwgMC4xMjE5ODI5OTkxNDU5ODQ2NSwgMC45ODc1MDkwMTIyMjIyOSwKKyAgICAgICAgLTAuNDg3MzE4OTkyNjE0NzQ2MSwgLTAuNDg4NTY2OTk0NjY3MDUzMiwgMC43MjM3NTYwMTUzMDA3NTA3LCAtMC42MTUyNDIwMDQzOTQ1MzEyLCAtMC42MTU0ODM5OTkyNTIzMTkzLCAwLjQ5MjYwMTAwNzIyMzEyOTMsCisgICAgICAgIDAuODgwMDI4MDA5NDE0NjcyOSwgMC4zMzg3MDg5OTY3NzI3NjYxLCAtMC4zMzI5MDY5OTEyNDMzNjI0LCAwLjkxNzI3Njk3ODQ5MjczNjgsIDAuMzYxNDkyOTkxNDQ3NDQ4NzMsIDAuMTY3MTExOTkyODM1OTk4NTQsCisgICAgICAgIDAuMTEzNTg2OTk5NDc1OTU1OTYsIDAuMDQ4MDY5OTk4NjIxOTQwNjEsIDAuOTkyMzY1MDAyNjMyMTQxMSwgLTAuNjM0MTQ5MDE0OTQ5Nzk4NiwgLTAuMjYxODg3OTk3Mzg4ODM5NywgMC43Mjc1MDkwMjE3NTkwMzMyLAorICAgICAgICAtMC44MDQxMjYwMjQyNDYyMTU4LCAtMC4zMzI3MDQ5OTExMDIyMTg2MywgMC40OTI2MzM5OTgzOTQwMTI0NSwgMC45NjY2OTAwMDM4NzE5MTc3LCAtMC4wMTA0NTM5OTk5NzM4MzM1NjEsIC0wLjI1NTczNzk5MDE0MDkxNDksCisgICAgICAgIDAuOTY3NDQxOTc2MDcwNDA0LCAtMC4wMDgxMDMwMDAwMDAxMTkyMSwgMC4yNTI5NjE5OTMyMTc0NjgyNiwgMC4wOTM0Mzg5OTc4NjQ3MjMyLCAtMC4wMDEyNzk5OTk5Njc2NjQ0ODAyLCAwLjk5NTYyNDAwNTc5NDUyNTEsCisgICAgICAgIC0wLjY4MjE2NTk4MDMzOTA1MDMsIDAuMDAwMzQyOTk5OTkyNDI2NDg0OCwgMC43MzExOTY5OTk1NDk4NjU3LCAtMC44NzAzMjE5ODkwNTk0NDgyLCAwLjAwMDA1NDAwMDAwMDA5MTAzNjc4LCAwLjQ5MjQ4Mjk5MDAyNjQ3NCwKKyAgICAgICAgMC45NjY2OTAwMDM4NzE5MTc3LCAtMC4wMTA0NTM5OTk5NzM4MzM1NjEsIC0wLjI1NTczNzk5MDE0MDkxNDksIDAuODkzMDE0MDEzNzY3MjQyNCwgLTAuMzY5ODgxOTg3NTcxNzE2MywgLTAuMjU2MzQ1MDAzODQzMzA3NSwKKyAgICAgICAgMC44OTM0MzcwMjc5MzEyMTM0LCAtMC4zNjkxMDIwMDExOTAxODU1NSwgMC4yNTU5OTcwMDIxMjQ3ODY0LCAwLjk2NzQ0MTk3NjA3MDQwNCwgLTAuMDA4MTAzMDAwMDAwMTE5MjEsIDAuMjUyOTYxOTkzMjE3NDY4MjYsCisgICAgICAgIDAuMDgzODc5OTk5ODE2NDE3NywgLTAuMDM1NTA3MDAwOTgyNzYxMzgsIDAuOTk1ODQyOTkzMjU5NDI5OSwgMC4wOTM0Mzg5OTc4NjQ3MjMyLCAtMC4wMDEyNzk5OTk5Njc2NjQ0ODAyLCAwLjk5NTYyNDAwNTc5NDUyNTEsCisgICAgICAgIC0wLjYyOTcyMTk5OTE2ODM5NiwgMC4yNjA0Mzc5OTUxOTUzODg4LCAwLjczMTg2MjAwODU3MTYyNDgsIC0wLjY4MjE2NTk4MDMzOTA1MDMsIDAuMDAwMzQyOTk5OTkyNDI2NDg0OCwgMC43MzExOTY5OTk1NDk4NjU3LAorICAgICAgICAtMC44MDM3MjUwMDQxOTYxNjcsIDAuMzMyNTgzOTkzNjczMzI0NiwgMC40OTMzNjkwMTMwNzEwNjAyLCAtMC44NzAzMjE5ODkwNTk0NDgyLCAwLjAwMDA1NDAwMDAwMDA5MTAzNjc4LCAwLjQ5MjQ4Mjk5MDAyNjQ3NCwKKyAgICAgICAgMC42ODM0MDcwMDg2NDc5MTg3LCAtMC42ODM0MDcwMDg2NDc5MTg3LCAtMC4yNTY3MzEwMDM1MjI4NzI5LCAwLjY4MzUzMDk4NjMwOTA1MTUsIC0wLjY4MzUzMDk4NjMwOTA1MTUsIDAuMjU2MDY3OTkxMjU2NzEzODcsCisgICAgICAgIDAuMDY0OTI1OTk4NDQ5MzI1NTYsIC0wLjA2NDkyNTAwMDA3MTUyNTU3LCAwLjk5NTc3NTk5NzYzODcwMjQsIC0wLjQ4MTM5NzAwMjkzNTQwOTU1LCAwLjQ4MTM5NzAwMjkzNTQwOTU1LCAwLjczMjQ3MDk4OTIyNzI5NDksCisgICAgICAgIC0wLjYxNDgwNDAyOTQ2NDcyMTcsIDAuNjE0ODA0MDI5NDY0NzIxNywgMC40OTM5OTcwMDc2MDg0MTM3LCAwLjM2OTg4MTk4NzU3MTcxNjMsIC0wLjg5MzAxNDAxMzc2NzI0MjQsIC0wLjI1NjM0NTAwMzg0MzMwNzUsCisgICAgICAgIDAuMzY5MTAyMDAxMTkwMTg1NTUsIC0wLjg5MzQzNzAyNzkzMTIxMzQsIDAuMjU1OTk1OTg4ODQ1ODI1MiwgMC4wMzU1MDcwMDA5ODI3NjEzOCwgLTAuMDgzODc5MDAxNDM4NjE3NywgMC45OTU4NDI5OTMyNTk0Mjk5LAorICAgICAgICAtMC4yNjA0MzkwMDg0NzQzNSwgMC42Mjk3MjMwMTI0NDczNTcyLCAwLjczMTg2MDk5NTI5MjY2MzYsIC0wLjMzMjU4Mzk5MzY3MzMyNDYsIDAuODAzNzI1MDA0MTk2MTY3LCAwLjQ5MzM2OTAxMzA3MTA2MDIsCisgICAgICAgIDAsIC0wLjk2Njc0MTk3OTEyMjE2MTksIC0wLjI1NTc1MTk5NzIzMjQzNzEzLCAwLCAtMC45NjY4MjM5OTUxMTMzNzI4LCAwLjI1NTQ0MzAwNjc1MzkyMTUsCisgICAgICAgIDAsIC0wLjA5MjA1NDAwMTk4Njk4MDQ0LCAwLjk5NTc1NDAwMzUyNDc4MDMsIDAsIDAuNjgyMDQ4OTc2NDIxMzU2MiwgMC43MzEzMDcwMjk3MjQxMjExLAorICAgICAgICAwLCAwLjg3MDMwMTAwODIyNDQ4NzMsIDAuNDkyNTIwMDA0NTEwODc5NSwgMCwgLTAuOTY2NzQxOTc5MTIyMTYxOSwgLTAuMjU1NzUxOTk3MjMyNDM3MTMsCisgICAgICAgIC0wLjM2OTg4MTk4NzU3MTcxNjMsIC0wLjg5MzAxNDAxMzc2NzI0MjQsIC0wLjI1NjM0NTAwMzg0MzMwNzUsIC0wLjM2OTEwMjAwMTE5MDE4NTU1LCAtMC44OTM0MzcwMjc5MzEyMTM0LCAwLjI1NTk5NzAwMjEyNDc4NjQsCisgICAgICAgIDAsIC0wLjk2NjgyMzk5NTExMzM3MjgsIDAuMjU1NDQzMDA2NzUzOTIxNSwgLTAuMDM1NTA3MDAwOTgyNzYxMzgsIC0wLjA4Mzg3OTk5OTgxNjQxNzcsIDAuOTk1ODQyOTkzMjU5NDI5OSwKKyAgICAgICAgMCwgLTAuMDkyMDU0MDAxOTg2OTgwNDQsIDAuOTk1NzU0MDAzNTI0NzgwMywgMC4yNjA0Mzc5OTUxOTUzODg4LCAwLjYyOTcyMTk5OTE2ODM5NiwgMC43MzE4NjIwMDg1NzE2MjQ4LAorICAgICAgICAwLCAwLjY4MjA0ODk3NjQyMTM1NjIsIDAuNzMxMzA3MDI5NzI0MTIxMSwgMC4zMzI1ODM5OTM2NzMzMjQ2LCAwLjgwMzcyNTAwNDE5NjE2NywgMC40OTMzNjkwMTMwNzEwNjAyLAorICAgICAgICAwLCAwLjg3MDMwMTAwODIyNDQ4NzMsIDAuNDkyNTIwMDA0NTEwODc5NSwgLTAuNjgzNDA3MDA4NjQ3OTE4NywgLTAuNjgzNDA3MDA4NjQ3OTE4NywgLTAuMjU2NzMxMDAzNTIyODcyOSwKKyAgICAgICAgLTAuNjgzNTMwOTg2MzA5MDUxNSwgLTAuNjgzNTMwOTg2MzA5MDUxNSwgMC4yNTYwNjc5OTEyNTY3MTM4NywgLTAuMDY0OTI1MDAwMDcxNTI1NTcsIC0wLjA2NDkyNTk5ODQ0OTMyNTU2LCAwLjk5NTc3NTk5NzYzODcwMjQsCisgICAgICAgIDAuNDgxMzk3MDAyOTM1NDA5NTUsIDAuNDgxMzk3MDAyOTM1NDA5NTUsIDAuNzMyNDcwOTg5MjI3Mjk0OSwgMC42MTQ4MDQwMjk0NjQ3MjE3LCAwLjYxNDgwNDAyOTQ2NDcyMTcsIDAuNDkzOTk3MDA3NjA4NDEzNywKKyAgICAgICAgLTAuODkzMDE0MDEzNzY3MjQyNCwgLTAuMzY5ODgxOTg3NTcxNzE2MywgLTAuMjU2MzQ1MDAzODQzMzA3NSwgLTAuODkzNDM3MDI3OTMxMjEzNCwgLTAuMzY5MTAyMDAxMTkwMTg1NTUsIDAuMjU1OTk1OTg4ODQ1ODI1MiwKKyAgICAgICAgLTAuMDgzODc5MDAxNDM4NjE3NywgLTAuMDM1NTA3MDAwOTgyNzYxMzgsIDAuOTk1ODQyOTkzMjU5NDI5OSwgMC42Mjk3MjMwMTI0NDczNTcyLCAwLjI2MDQzOTAwODQ3NDM1LCAwLjczMTg2MDk5NTI5MjY2MzYsCisgICAgICAgIDAuODAzNzI1MDA0MTk2MTY3LCAwLjMzMjU4Mzk5MzY3MzMyNDYsIDAuNDkzMzY5MDEzMDcxMDYwMiwgLTAuOTY2NzQxOTc5MTIyMTYxOSwgMCwgLTAuMjU1NzUxOTk3MjMyNDM3MTMsCisgICAgICAgIC0wLjk2NjgyMzk5NTExMzM3MjgsIDAsIDAuMjU1NDQzMDA2NzUzOTIxNSwgLTAuMDkyMDU0MDAxOTg2OTgwNDQsIDAsIDAuOTk1NzU0MDAzNTI0NzgwMywKKyAgICAgICAgMC42ODIwNDg5NzY0MjEzNTYyLCAwLCAwLjczMTMwNzAyOTcyNDEyMTEsIDAuODcwMzAxMDA4MjI0NDg3MywgMCwgMC40OTI1MjAwMDQ1MTA4Nzk1LAorICAgICAgICAwLjg3MDMwMTAwODIyNDQ4NzMsIDAsIDAuNDkyNTIwMDA0NTEwODc5NSwgMC44MDM3MjUwMDQxOTYxNjcsIC0wLjMzMjU4Mzk5MzY3MzMyNDYsIDAuNDkzMzY5MDEzMDcxMDYwMiwKKyAgICAgICAgMC44NDU0MzkwMTY4MTkwMDAyLCAtMC4zNDk4MzUwMDgzODI3OTcyNCwgMC40MDM1NDQ5OTIyMDg0ODA4MywgMC45MTUzMjA5OTI0Njk3ODc2LCAwLCAwLjQwMjcyNTAxMTExMDMwNTgsCisgICAgICAgIDAuODY5OTk2MDExMjU3MTcxNiwgLTAuMzYwMDQ1OTk5Mjg4NTU4OTYsIDAuMzM2ODU4OTg3ODA4MjI3NTQsIDAuOTQxODA3OTg1MzA1Nzg2MSwgMCwgMC4zMzYxNTEwMDM4Mzc1ODU0NSwKKyAgICAgICAgMC45MDQxOTI5ODQxMDQxNTY1LCAtMC4zNzQyODAwMDU2OTM0MzU2NywgMC4yMDU3OTA5OTY1NTE1MTM2NywgMC45Nzg2OTAwMjgxOTA2MTI4LCAwLCAwLjIwNTM0MTk5NDc2MjQyMDY1LAorICAgICAgICAwLjkyMTg3ODk5MzUxMTIsIC0wLjM4MTc1MjAxNDE2MDE1NjI1LCAtMC4wNjYzNjg5OTcwOTcwMTUzOCwgMC45OTc4MDM5ODYwNzI1NDAzLCAwLCAtMC4wNjYyMzg5OTkzNjY3NjAyNSwKKyAgICAgICAgMC42MTQ4MDQwMjk0NjQ3MjE3LCAtMC42MTQ4MDQwMjk0NjQ3MjE3LCAwLjQ5Mzk5NzAwNzYwODQxMzcsIDAuNjQ2ODAyMDA4MTUyMDA4MSwgLTAuNjQ2ODAyMDA4MTUyMDA4MSwgMC40MDQwOTYwMDczNDcxMDY5MywKKyAgICAgICAgMC42NjU2NTUwMTY4OTkxMDg5LCAtMC42NjU2NTUwMTY4OTkxMDg5LCAwLjMzNzM1MjAwNzYyNzQ4NzIsIDAuNjkxOTIzMDIyMjcwMjAyNiwgLTAuNjkxOTIzMDIyMjcwMjAyNiwgMC4yMDYxMTk5OTkyODk1MTI2MywKKyAgICAgICAgMC43MDU1NDI5ODE2MjQ2MDMzLCAtMC43MDU1NDI5ODE2MjQ2MDMzLCAtMC4wNjY0Nzg5OTc0Njg5NDgzNiwgMC4zMzI1ODM5OTM2NzMzMjQ2LCAtMC44MDM3MjUwMDQxOTYxNjcsIDAuNDkzMzY5MDEzMDcxMDYwMiwKKyAgICAgICAgMC4zNDk4MzUwMDgzODI3OTcyNCwgLTAuODQ1NDM5MDE2ODE5MDAwMiwgMC40MDM1NDQ5OTIyMDg0ODA4MywgMC4zNjAwNDcwMTI1Njc1MjAxNCwgLTAuODY5OTk2MDExMjU3MTcxNiwgMC4zMzY4NTgwMDQzMzE1ODg3NSwKKyAgICAgICAgMC4zNzQyODAwMDU2OTM0MzU2NywgLTAuOTA0MTkyOTg0MTA0MTU2NSwgMC4yMDU3OTA5OTY1NTE1MTM2NywgMC4zODE3NTIwMTQxNjAxNTYyNSwgLTAuOTIxODc4OTkzNTExMiwgLTAuMDY2MzY4OTk3MDk3MDE1MzgsCisgICAgICAgIDAsIC0wLjg3MDMwMTAwODIyNDQ4NzMsIDAuNDkyNTIwMDA0NTEwODc5NSwgMCwgLTAuOTE1MzIwOTkyNDY5Nzg3NiwgMC40MDI3MjUwMTExMTAzMDU4LAorICAgICAgICAwLCAtMC45NDE4MDc5ODUzMDU3ODYxLCAwLjMzNjE1MTAwMzgzNzU4NTQ1LCAwLCAtMC45Nzg2OTAwMjgxOTA2MTI4LCAwLjIwNTM0MTk5NDc2MjQyMDY1LAorICAgICAgICAwLCAtMC45OTc4MDM5ODYwNzI1NDAzLCAtMC4wNjYyMzg5OTkzNjY3NjAyNSwgMCwgLTAuODcwMzAxMDA4MjI0NDg3MywgMC40OTI1MjAwMDQ1MTA4Nzk1LAorICAgICAgICAtMC4zMzI0ODQ5OTAzNTgzNTI2NiwgLTAuODA0MjcwOTgyNzQyMzA5NiwgMC40OTI1NDU5OTIxMzYwMDE2LCAtMC4zNDk4MzUwMDgzODI3OTcyNCwgLTAuODQ1NDM5MDE2ODE5MDAwMiwgMC40MDM1NDQ5OTIyMDg0ODA4MywKKyAgICAgICAgMCwgLTAuOTE1MzIwOTkyNDY5Nzg3NiwgMC40MDI3MjUwMTExMTAzMDU4LCAtMC4zNjAwNDU5OTkyODg1NTg5NiwgLTAuODY5OTk2MDExMjU3MTcxNiwgMC4zMzY4NTg5ODc4MDgyMjc1NCwKKyAgICAgICAgMCwgLTAuOTQxODA3OTg1MzA1Nzg2MSwgMC4zMzYxNTEwMDM4Mzc1ODU0NSwgLTAuMzc0MjgwMDA1NjkzNDM1NjcsIC0wLjkwNDE5Mjk4NDEwNDE1NjUsIDAuMjA1NzkwOTk2NTUxNTEzNjcsCisgICAgICAgIDAsIC0wLjk3ODY5MDAyODE5MDYxMjgsIDAuMjA1MzQxOTk0NzYyNDIwNjUsIC0wLjM4MTc1MjAxNDE2MDE1NjI1LCAtMC45MjE4Nzg5OTM1MTEyLCAtMC4wNjYzNjg5OTcwOTcwMTUzOCwKKyAgICAgICAgMCwgLTAuOTk3ODAzOTg2MDcyNTQwMywgLTAuMDY2MjM4OTk5MzY2NzYwMjUsIC0wLjYxNTI0MjAwNDM5NDUzMTIsIC0wLjYxNTQ4Mzk5OTI1MjMxOTMsIDAuNDkyNjAxMDA3MjIzMTI5MywKKyAgICAgICAgLTAuNjQ2ODAyMDA4MTUyMDA4MSwgLTAuNjQ2ODAyMDA4MTUyMDA4MSwgMC40MDQwOTYwMDczNDcxMDY5MywgLTAuNjY1NjU1MDE2ODk5MTA4OSwgLTAuNjY1NjU1MDE2ODk5MTA4OSwgMC4zMzczNTIwMDc2Mjc0ODcyLAorICAgICAgICAtMC42OTE5MjMwMjIyNzAyMDI2LCAtMC42OTE5MjMwMjIyNzAyMDI2LCAwLjIwNjExOTk5OTI4OTUxMjYzLCAtMC43MDU1NDI5ODE2MjQ2MDMzLCAtMC43MDU1NDI5ODE2MjQ2MDMzLCAtMC4wNjY0Nzg5OTc0Njg5NDgzNiwKKyAgICAgICAgLTAuODA0MTI2MDI0MjQ2MjE1OCwgLTAuMzMyNzA0OTkxMTAyMjE4NjMsIDAuNDkyNjMzOTk4Mzk0MDEyNDUsIC0wLjg0NTQzOTAxNjgxOTAwMDIsIC0wLjM0OTgzNTAwODM4Mjc5NzI0LCAwLjQwMzU0NDk5MjIwODQ4MDgzLAorICAgICAgICAtMC44Njk5OTYwMTEyNTcxNzE2LCAtMC4zNjAwNDcwMTI1Njc1MjAxNCwgMC4zMzY4NTgwMDQzMzE1ODg3NSwgLTAuOTA0MTkyOTg0MTA0MTU2NSwgLTAuMzc0MjgwMDA1NjkzNDM1NjcsIDAuMjA1NzkwOTk2NTUxNTEzNjcsCisgICAgICAgIC0wLjkyMTg3ODk5MzUxMTIsIC0wLjM4MTc1MjAxNDE2MDE1NjI1LCAtMC4wNjYzNjg5OTcwOTcwMTUzOCwgLTAuODcwMzIxOTg5MDU5NDQ4MiwgMC4wMDAwNTQwMDAwMDAwOTEwMzY3OCwgMC40OTI0ODI5OTAwMjY0NzQsCisgICAgICAgIC0wLjkxNTMyMDk5MjQ2OTc4NzYsIDAsIDAuNDAyNzI1MDExMTEwMzA1OCwgLTAuOTQxODA3OTg1MzA1Nzg2MSwgMCwgMC4zMzYxNTEwMDM4Mzc1ODU0NSwKKyAgICAgICAgLTAuOTc4NjkwMDI4MTkwNjEyOCwgMCwgMC4yMDUzNDE5OTQ3NjI0MjA2NSwgLTAuOTk3ODAzOTg2MDcyNTQwMywgMCwgLTAuMDY2MjM4OTk5MzY2NzYwMjUsCisgICAgICAgIC0wLjg3MDMyMTk4OTA1OTQ0ODIsIDAuMDAwMDU0MDAwMDAwMDkxMDM2NzgsIDAuNDkyNDgyOTkwMDI2NDc0LCAtMC44MDM3MjUwMDQxOTYxNjcsIDAuMzMyNTgzOTkzNjczMzI0NiwgMC40OTMzNjkwMTMwNzEwNjAyLAorICAgICAgICAtMC44NDU0MzkwMTY4MTkwMDAyLCAwLjM0OTgzNTAwODM4Mjc5NzI0LCAwLjQwMzU0NDk5MjIwODQ4MDgzLCAtMC45MTUzMjA5OTI0Njk3ODc2LCAwLCAwLjQwMjcyNTAxMTExMDMwNTgsCisgICAgICAgIC0wLjg2OTk5NjAxMTI1NzE3MTYsIDAuMzYwMDQ1OTk5Mjg4NTU4OTYsIDAuMzM2ODU4OTg3ODA4MjI3NTQsIC0wLjk0MTgwNzk4NTMwNTc4NjEsIDAsIDAuMzM2MTUxMDAzODM3NTg1NDUsCisgICAgICAgIC0wLjkwNDE5Mjk4NDEwNDE1NjUsIDAuMzc0MjgwMDA1NjkzNDM1NjcsIDAuMjA1NzkwOTk2NTUxNTEzNjcsIC0wLjk3ODY5MDAyODE5MDYxMjgsIDAsIDAuMjA1MzQxOTk0NzYyNDIwNjUsCisgICAgICAgIC0wLjkyMTg3ODk5MzUxMTIsIDAuMzgxNzUyMDE0MTYwMTU2MjUsIC0wLjA2NjM2ODk5NzA5NzAxNTM4LCAtMC45OTc4MDM5ODYwNzI1NDAzLCAwLCAtMC4wNjYyMzg5OTkzNjY3NjAyNSwKKyAgICAgICAgLTAuNjE0ODA0MDI5NDY0NzIxNywgMC42MTQ4MDQwMjk0NjQ3MjE3LCAwLjQ5Mzk5NzAwNzYwODQxMzcsIC0wLjY0NjgwMjAwODE1MjAwODEsIDAuNjQ2ODAyMDA4MTUyMDA4MSwgMC40MDQwOTYwMDczNDcxMDY5MywKKyAgICAgICAgLTAuNjY1NjU1MDE2ODk5MTA4OSwgMC42NjU2NTUwMTY4OTkxMDg5LCAwLjMzNzM1MjAwNzYyNzQ4NzIsIC0wLjY5MTkyMzAyMjI3MDIwMjYsIDAuNjkxOTIzMDIyMjcwMjAyNiwgMC4yMDYxMTk5OTkyODk1MTI2MywKKyAgICAgICAgLTAuNzA1NTQyOTgxNjI0NjAzMywgMC43MDU1NDI5ODE2MjQ2MDMzLCAtMC4wNjY0Nzg5OTc0Njg5NDgzNiwgLTAuMzMyNTgzOTkzNjczMzI0NiwgMC44MDM3MjUwMDQxOTYxNjcsIDAuNDkzMzY5MDEzMDcxMDYwMiwKKyAgICAgICAgLTAuMzQ5ODM1MDA4MzgyNzk3MjQsIDAuODQ1NDM5MDE2ODE5MDAwMiwgMC40MDM1NDQ5OTIyMDg0ODA4MywgLTAuMzYwMDQ3MDEyNTY3NTIwMTQsIDAuODY5OTk2MDExMjU3MTcxNiwgMC4zMzY4NTgwMDQzMzE1ODg3NSwKKyAgICAgICAgLTAuMzc0MjgwMDA1NjkzNDM1NjcsIDAuOTA0MTkyOTg0MTA0MTU2NSwgMC4yMDU3OTA5OTY1NTE1MTM2NywgLTAuMzgxNzUyMDE0MTYwMTU2MjUsIDAuOTIxODc4OTkzNTExMiwgLTAuMDY2MzY4OTk3MDk3MDE1MzgsCisgICAgICAgIDAsIDAuODcwMzAxMDA4MjI0NDg3MywgMC40OTI1MjAwMDQ1MTA4Nzk1LCAwLCAwLjkxNTMyMDk5MjQ2OTc4NzYsIDAuNDAyNzI1MDExMTEwMzA1OCwKKyAgICAgICAgMCwgMC45NDE4MDc5ODUzMDU3ODYxLCAwLjMzNjE1MTAwMzgzNzU4NTQ1LCAwLCAwLjk3ODY5MDAyODE5MDYxMjgsIDAuMjA1MzQxOTk0NzYyNDIwNjUsCisgICAgICAgIDAsIDAuOTk3ODAzOTg2MDcyNTQwMywgLTAuMDY2MjM4OTk5MzY2NzYwMjUsIDAsIDAuODcwMzAxMDA4MjI0NDg3MywgMC40OTI1MjAwMDQ1MTA4Nzk1LAorICAgICAgICAwLjMzMjU4Mzk5MzY3MzMyNDYsIDAuODAzNzI1MDA0MTk2MTY3LCAwLjQ5MzM2OTAxMzA3MTA2MDIsIDAuMzQ5ODM1MDA4MzgyNzk3MjQsIDAuODQ1NDM5MDE2ODE5MDAwMiwgMC40MDM1NDQ5OTIyMDg0ODA4MywKKyAgICAgICAgMCwgMC45MTUzMjA5OTI0Njk3ODc2LCAwLjQwMjcyNTAxMTExMDMwNTgsIDAuMzYwMDQ1OTk5Mjg4NTU4OTYsIDAuODY5OTk2MDExMjU3MTcxNiwgMC4zMzY4NTg5ODc4MDgyMjc1NCwKKyAgICAgICAgMCwgMC45NDE4MDc5ODUzMDU3ODYxLCAwLjMzNjE1MTAwMzgzNzU4NTQ1LCAwLjM3NDI4MDAwNTY5MzQzNTY3LCAwLjkwNDE5Mjk4NDEwNDE1NjUsIDAuMjA1NzkwOTk2NTUxNTEzNjcsCisgICAgICAgIDAsIDAuOTc4NjkwMDI4MTkwNjEyOCwgMC4yMDUzNDE5OTQ3NjI0MjA2NSwgMC4zODE3NTIwMTQxNjAxNTYyNSwgMC45MjE4Nzg5OTM1MTEyLCAtMC4wNjYzNjg5OTcwOTcwMTUzOCwKKyAgICAgICAgMCwgMC45OTc4MDM5ODYwNzI1NDAzLCAtMC4wNjYyMzg5OTkzNjY3NjAyNSwgMC42MTQ4MDQwMjk0NjQ3MjE3LCAwLjYxNDgwNDAyOTQ2NDcyMTcsIDAuNDkzOTk3MDA3NjA4NDEzNywKKyAgICAgICAgMC42NDY4MDIwMDgxNTIwMDgxLCAwLjY0NjgwMjAwODE1MjAwODEsIDAuNDA0MDk2MDA3MzQ3MTA2OTMsIDAuNjY1NjU1MDE2ODk5MTA4OSwgMC42NjU2NTUwMTY4OTkxMDg5LCAwLjMzNzM1MjAwNzYyNzQ4NzIsCisgICAgICAgIDAuNjkxOTIzMDIyMjcwMjAyNiwgMC42OTE5MjMwMjIyNzAyMDI2LCAwLjIwNjExOTk5OTI4OTUxMjYzLCAwLjcwNTU0Mjk4MTYyNDYwMzMsIDAuNzA1NTQyOTgxNjI0NjAzMywgLTAuMDY2NDc4OTk3NDY4OTQ4MzYsCisgICAgICAgIDAuODAzNzI1MDA0MTk2MTY3LCAwLjMzMjU4Mzk5MzY3MzMyNDYsIDAuNDkzMzY5MDEzMDcxMDYwMiwgMC44NDU0MzkwMTY4MTkwMDAyLCAwLjM0OTgzNTAwODM4Mjc5NzI0LCAwLjQwMzU0NDk5MjIwODQ4MDgzLAorICAgICAgICAwLjg2OTk5NjAxMTI1NzE3MTYsIDAuMzYwMDQ3MDEyNTY3NTIwMTQsIDAuMzM2ODU4MDA0MzMxNTg4NzUsIDAuOTA0MTkyOTg0MTA0MTU2NSwgMC4zNzQyODAwMDU2OTM0MzU2NywgMC4yMDU3OTA5OTY1NTE1MTM2NywKKyAgICAgICAgMC45MjE4Nzg5OTM1MTEyLCAwLjM4MTc1MjAxNDE2MDE1NjI1LCAtMC4wNjYzNjg5OTcwOTcwMTUzOCwgMC44NzAzMDEwMDgyMjQ0ODczLCAwLCAwLjQ5MjUyMDAwNDUxMDg3OTUsCisgICAgICAgIDAuOTE1MzIwOTkyNDY5Nzg3NiwgMCwgMC40MDI3MjUwMTExMTAzMDU4LCAwLjk0MTgwNzk4NTMwNTc4NjEsIDAsIDAuMzM2MTUxMDAzODM3NTg1NDUsCisgICAgICAgIDAuOTc4NjkwMDI4MTkwNjEyOCwgMCwgMC4yMDUzNDE5OTQ3NjI0MjA2NSwgMC45OTc4MDM5ODYwNzI1NDAzLCAwLCAtMC4wNjYyMzg5OTkzNjY3NjAyNSwKKyAgICAgICAgMC45OTc4MDM5ODYwNzI1NDAzLCAwLCAtMC4wNjYyMzg5OTkzNjY3NjAyNSwgMC45MjE4Nzg5OTM1MTEyLCAtMC4zODE3NTIwMTQxNjAxNTYyNSwgLTAuMDY2MzY4OTk3MDk3MDE1MzgsCisgICAgICAgIDAuODMxNDM2OTkxNjkxNTg5NCwgLTAuMzQ0MTc5MDA0NDMwNzcwOSwgLTAuNDM2MTc5OTk1NTM2ODA0MiwgMC45MDAxODIwMDg3NDMyODYxLCAwLCAtMC40MzU1MTI5ODk3NTk0NDUyLAorICAgICAgICAwLjY3MzUxMTk4MTk2NDExMTMsIC0wLjI3ODU5Mzk4NzIyNjQ4NjIsIC0wLjY4NDY2NTAyNDI4MDU0ODEsIDAuNzI5NjEwOTc5NTU3MDM3NCwgMCwgLTAuNjgzODYyOTg0MTgwNDUwNCwKKyAgICAgICAgMC42NDAzOTg5NzkxODcwMTE3LCAtMC4yNjQ4NzQwMTEyNzgxNTI0NywgLTAuNzIwOTI0MDE5ODEzNTM3NiwgMC42OTM5NTEwMTA3MDQwNDA1LCAwLCAtMC43MjAwMjIwMjI3MjQxNTE2LAorICAgICAgICAwLjczMjk0OTAxODQ3ODM5MzYsIC0wLjMwMzE2NjAwMjAzNTE0MSwgLTAuNjA4OTk1OTc0MDYzODczMywgMC43OTM5NTAwMjEyNjY5MzczLCAwLCAtMC42MDc5ODQwMDY0MDQ4NzY3LAorICAgICAgICAwLjcwNTU0Mjk4MTYyNDYwMzMsIC0wLjcwNTU0Mjk4MTYyNDYwMzMsIC0wLjA2NjQ3ODk5NzQ2ODk0ODM2LCAwLjYzNjA5MjAwNzE2MDE4NjgsIC0wLjYzNjA5MjAwNzE2MDE4NjgsIC0wLjQzNjc3ODAwODkzNzgzNTcsCisgICAgICAgIDAuNTE0OTY0OTk3NzY4NDAyMSwgLTAuNTE0OTY0OTk3NzY4NDAyMSwgLTAuNjg1Mjg5MDI1MzA2NzAxNywgMC40ODk2NTA5OTQ1MzkyNjA4NiwgLTAuNDg5NjUwOTk0NTM5MjYwODYsIC0wLjcyMTQ0NTk3NzY4NzgzNTcsCisgICAgICAgIDAuNTYwNTU0OTgxMjMxNjg5NSwgLTAuNTYwNTU0OTgxMjMxNjg5NSwgLTAuNjA5NTUzOTkyNzQ4MjYwNSwgMC4zODE3NTIwMTQxNjAxNTYyNSwgLTAuOTIxODc4OTkzNTExMiwgLTAuMDY2MzY4OTk3MDk3MDE1MzgsCisgICAgICAgIDAuMzQ0MTc5MDA0NDMwNzcwOSwgLTAuODMxNDM2OTkxNjkxNTg5NCwgLTAuNDM2MTc5OTk1NTM2ODA0MiwgMC4yNzg1OTM5ODcyMjY0ODYyLCAtMC42NzM1MTE5ODE5NjQxMTEzLCAtMC42ODQ2NjUwMjQyODA1NDgxLAorICAgICAgICAwLjI2NDg3NDAxMTI3ODE1MjQ3LCAtMC42NDAzOTg5NzkxODcwMTE3LCAtMC43MjA5MjQwMTk4MTM1Mzc2LCAwLjMwMzE2NjAwMjAzNTE0MSwgLTAuNzMyOTQ5MDE4NDc4MzkzNiwgLTAuNjA4OTk1OTc0MDYzODczMywKKyAgICAgICAgMCwgLTAuOTk3ODAzOTg2MDcyNTQwMywgLTAuMDY2MjM4OTk5MzY2NzYwMjUsIDAsIC0wLjkwMDE4MjAwODc0MzI4NjEsIC0wLjQzNTUxMjk4OTc1OTQ0NTIsCisgICAgICAgIDAsIC0wLjcyOTYxMDk3OTU1NzAzNzQsIC0wLjY4Mzg2Mjk4NDE4MDQ1MDQsIDAsIC0wLjY5Mzk1MTAxMDcwNDA0MDUsIC0wLjcyMDAyMjAyMjcyNDE1MTYsCisgICAgICAgIDAsIC0wLjc5Mzk1MDAyMTI2NjkzNzMsIC0wLjYwNzk4NDAwNjQwNDg3NjcsIDAsIC0wLjk5NzgwMzk4NjA3MjU0MDMsIC0wLjA2NjIzODk5OTM2Njc2MDI1LAorICAgICAgICAtMC4zODE3NTIwMTQxNjAxNTYyNSwgLTAuOTIxODc4OTkzNTExMiwgLTAuMDY2MzY4OTk3MDk3MDE1MzgsIC0wLjM0NDE3OTAwNDQzMDc3MDksIC0wLjgzMTQzNjk5MTY5MTU4OTQsIC0wLjQzNjE3OTk5NTUzNjgwNDIsCisgICAgICAgIDAsIC0wLjkwMDE4MjAwODc0MzI4NjEsIC0wLjQzNTUxMjk4OTc1OTQ0NTIsIC0wLjI3ODU5Mzk4NzIyNjQ4NjIsIC0wLjY3MzUxMTk4MTk2NDExMTMsIC0wLjY4NDY2NTAyNDI4MDU0ODEsCisgICAgICAgIDAsIC0wLjcyOTYxMDk3OTU1NzAzNzQsIC0wLjY4Mzg2Mjk4NDE4MDQ1MDQsIC0wLjI2NDg3NDAxMTI3ODE1MjQ3LCAtMC42NDAzOTg5NzkxODcwMTE3LCAtMC43MjA5MjQwMTk4MTM1Mzc2LAorICAgICAgICAwLCAtMC42OTM5NTEwMTA3MDQwNDA1LCAtMC43MjAwMjIwMjI3MjQxNTE2LCAtMC4zMDMxNjYwMDIwMzUxNDEsIC0wLjczMjk0OTAxODQ3ODM5MzYsIC0wLjYwODk5NTk3NDA2Mzg3MzMsCisgICAgICAgIDAsIC0wLjc5Mzk1MDAyMTI2NjkzNzMsIC0wLjYwNzk4NDAwNjQwNDg3NjcsIC0wLjcwNTU0Mjk4MTYyNDYwMzMsIC0wLjcwNTU0Mjk4MTYyNDYwMzMsIC0wLjA2NjQ3ODk5NzQ2ODk0ODM2LAorICAgICAgICAtMC42MzYwOTIwMDcxNjAxODY4LCAtMC42MzYwOTIwMDcxNjAxODY4LCAtMC40MzY3NzgwMDg5Mzc4MzU3LCAtMC41MTQ5NjQ5OTc3Njg0MDIxLCAtMC41MTQ5NjQ5OTc3Njg0MDIxLCAtMC42ODUyODkwMjUzMDY3MDE3LAorICAgICAgICAtMC40ODk2NTA5OTQ1MzkyNjA4NiwgLTAuNDg5NjUwOTk0NTM5MjYwODYsIC0wLjcyMTQ0NTk3NzY4NzgzNTcsIC0wLjU2MDU1NDk4MTIzMTY4OTUsIC0wLjU2MDU1NDk4MTIzMTY4OTUsIC0wLjYwOTU1Mzk5Mjc0ODI2MDUsCisgICAgICAgIC0wLjkyMTg3ODk5MzUxMTIsIC0wLjM4MTc1MjAxNDE2MDE1NjI1LCAtMC4wNjYzNjg5OTcwOTcwMTUzOCwgLTAuODMxNDM2OTkxNjkxNTg5NCwgLTAuMzQ0MTc5MDA0NDMwNzcwOSwgLTAuNDM2MTc5OTk1NTM2ODA0MiwKKyAgICAgICAgLTAuNjczNTExOTgxOTY0MTExMywgLTAuMjc4NTkzOTg3MjI2NDg2MiwgLTAuNjg0NjY1MDI0MjgwNTQ4MSwgLTAuNjQwMzk4OTc5MTg3MDExNywgLTAuMjY0ODc0MDExMjc4MTUyNDcsIC0wLjcyMDkyNDAxOTgxMzUzNzYsCisgICAgICAgIC0wLjczMjk0OTAxODQ3ODM5MzYsIC0wLjMwMzE2NjAwMjAzNTE0MSwgLTAuNjA4OTk1OTc0MDYzODczMywgLTAuOTk3ODAzOTg2MDcyNTQwMywgMCwgLTAuMDY2MjM4OTk5MzY2NzYwMjUsCisgICAgICAgIC0wLjkwMDE4MjAwODc0MzI4NjEsIDAsIC0wLjQzNTUxMjk4OTc1OTQ0NTIsIC0wLjcyOTYxMDk3OTU1NzAzNzQsIDAsIC0wLjY4Mzg2Mjk4NDE4MDQ1MDQsCisgICAgICAgIC0wLjY5Mzk1MTAxMDcwNDA0MDUsIDAsIC0wLjcyMDAyMjAyMjcyNDE1MTYsIC0wLjc5Mzk1MDAyMTI2NjkzNzMsIDAsIC0wLjYwNzk4NDAwNjQwNDg3NjcsCisgICAgICAgIC0wLjk5NzgwMzk4NjA3MjU0MDMsIDAsIC0wLjA2NjIzODk5OTM2Njc2MDI1LCAtMC45MjE4Nzg5OTM1MTEyLCAwLjM4MTc1MjAxNDE2MDE1NjI1LCAtMC4wNjYzNjg5OTcwOTcwMTUzOCwKKyAgICAgICAgLTAuODMxNDM2OTkxNjkxNTg5NCwgMC4zNDQxNzkwMDQ0MzA3NzA5LCAtMC40MzYxNzk5OTU1MzY4MDQyLCAtMC45MDAxODIwMDg3NDMyODYxLCAwLCAtMC40MzU1MTI5ODk3NTk0NDUyLAorICAgICAgICAtMC42NzM1MTE5ODE5NjQxMTEzLCAwLjI3ODU5Mzk4NzIyNjQ4NjIsIC0wLjY4NDY2NTAyNDI4MDU0ODEsIC0wLjcyOTYxMDk3OTU1NzAzNzQsIDAsIC0wLjY4Mzg2Mjk4NDE4MDQ1MDQsCisgICAgICAgIC0wLjY0MDM5ODk3OTE4NzAxMTcsIDAuMjY0ODc0MDExMjc4MTUyNDcsIC0wLjcyMDkyNDAxOTgxMzUzNzYsIC0wLjY5Mzk1MTAxMDcwNDA0MDUsIDAsIC0wLjcyMDAyMjAyMjcyNDE1MTYsCisgICAgICAgIC0wLjczMjk0OTAxODQ3ODM5MzYsIDAuMzAzMTY2MDAyMDM1MTQxLCAtMC42MDg5OTU5NzQwNjM4NzMzLCAtMC43OTM5NTAwMjEyNjY5MzczLCAwLCAtMC42MDc5ODQwMDY0MDQ4NzY3LAorICAgICAgICAtMC43MDU1NDI5ODE2MjQ2MDMzLCAwLjcwNTU0Mjk4MTYyNDYwMzMsIC0wLjA2NjQ3ODk5NzQ2ODk0ODM2LCAtMC42MzYwOTIwMDcxNjAxODY4LCAwLjYzNjA5MjAwNzE2MDE4NjgsIC0wLjQzNjc3ODAwODkzNzgzNTcsCisgICAgICAgIC0wLjUxNDk2NDk5Nzc2ODQwMjEsIDAuNTE0OTY0OTk3NzY4NDAyMSwgLTAuNjg1Mjg5MDI1MzA2NzAxNywgLTAuNDg5NjUwOTk0NTM5MjYwODYsIDAuNDg5NjUwOTk0NTM5MjYwODYsIC0wLjcyMTQ0NTk3NzY4NzgzNTcsCisgICAgICAgIC0wLjU2MDU1NDk4MTIzMTY4OTUsIDAuNTYwNTU0OTgxMjMxNjg5NSwgLTAuNjA5NTUzOTkyNzQ4MjYwNSwgLTAuMzgxNzUyMDE0MTYwMTU2MjUsIDAuOTIxODc4OTkzNTExMiwgLTAuMDY2MzY4OTk3MDk3MDE1MzgsCisgICAgICAgIC0wLjM0NDE3OTAwNDQzMDc3MDksIDAuODMxNDM2OTkxNjkxNTg5NCwgLTAuNDM2MTc5OTk1NTM2ODA0MiwgLTAuMjc4NTkzOTg3MjI2NDg2MiwgMC42NzM1MTE5ODE5NjQxMTEzLCAtMC42ODQ2NjUwMjQyODA1NDgxLAorICAgICAgICAtMC4yNjQ4NzQwMTEyNzgxNTI0NywgMC42NDAzOTg5NzkxODcwMTE3LCAtMC43MjA5MjQwMTk4MTM1Mzc2LCAtMC4zMDMxNjYwMDIwMzUxNDEsIDAuNzMyOTQ5MDE4NDc4MzkzNiwgLTAuNjA4OTk1OTc0MDYzODczMywKKyAgICAgICAgMCwgMC45OTc4MDM5ODYwNzI1NDAzLCAtMC4wNjYyMzg5OTkzNjY3NjAyNSwgMCwgMC45MDAxODIwMDg3NDMyODYxLCAtMC40MzU1MTI5ODk3NTk0NDUyLAorICAgICAgICAwLCAwLjcyOTYxMDk3OTU1NzAzNzQsIC0wLjY4Mzg2Mjk4NDE4MDQ1MDQsIDAsIDAuNjkzOTUxMDEwNzA0MDQwNSwgLTAuNzIwMDIyMDIyNzI0MTUxNiwKKyAgICAgICAgMCwgMC43OTM5NTAwMjEyNjY5MzczLCAtMC42MDc5ODQwMDY0MDQ4NzY3LCAwLCAwLjk5NzgwMzk4NjA3MjU0MDMsIC0wLjA2NjIzODk5OTM2Njc2MDI1LAorICAgICAgICAwLjM4MTc1MjAxNDE2MDE1NjI1LCAwLjkyMTg3ODk5MzUxMTIsIC0wLjA2NjM2ODk5NzA5NzAxNTM4LCAwLjM0NDE3OTAwNDQzMDc3MDksIDAuODMxNDM2OTkxNjkxNTg5NCwgLTAuNDM2MTc5OTk1NTM2ODA0MiwKKyAgICAgICAgMCwgMC45MDAxODIwMDg3NDMyODYxLCAtMC40MzU1MTI5ODk3NTk0NDUyLCAwLjI3ODU5Mzk4NzIyNjQ4NjIsIDAuNjczNTExOTgxOTY0MTExMywgLTAuNjg0NjY1MDI0MjgwNTQ4MSwKKyAgICAgICAgMCwgMC43Mjk2MTA5Nzk1NTcwMzc0LCAtMC42ODM4NjI5ODQxODA0NTA0LCAwLjI2NDg3NDAxMTI3ODE1MjQ3LCAwLjY0MDM5ODk3OTE4NzAxMTcsIC0wLjcyMDkyNDAxOTgxMzUzNzYsCisgICAgICAgIDAsIDAuNjkzOTUxMDEwNzA0MDQwNSwgLTAuNzIwMDIyMDIyNzI0MTUxNiwgMC4zMDMxNjYwMDIwMzUxNDEsIDAuNzMyOTQ5MDE4NDc4MzkzNiwgLTAuNjA4OTk1OTc0MDYzODczMywKKyAgICAgICAgMCwgMC43OTM5NTAwMjEyNjY5MzczLCAtMC42MDc5ODQwMDY0MDQ4NzY3LCAwLjcwNTU0Mjk4MTYyNDYwMzMsIDAuNzA1NTQyOTgxNjI0NjAzMywgLTAuMDY2NDc4OTk3NDY4OTQ4MzYsCisgICAgICAgIDAuNjM2MDkyMDA3MTYwMTg2OCwgMC42MzYwOTIwMDcxNjAxODY4LCAtMC40MzY3NzgwMDg5Mzc4MzU3LCAwLjUxNDk2NDk5Nzc2ODQwMjEsIDAuNTE0OTY0OTk3NzY4NDAyMSwgLTAuNjg1Mjg5MDI1MzA2NzAxNywKKyAgICAgICAgMC40ODk2NTA5OTQ1MzkyNjA4NiwgMC40ODk2NTA5OTQ1MzkyNjA4NiwgLTAuNzIxNDQ1OTc3Njg3ODM1NywgMC41NjA1NTQ5ODEyMzE2ODk1LCAwLjU2MDU1NDk4MTIzMTY4OTUsIC0wLjYwOTU1Mzk5Mjc0ODI2MDUsCisgICAgICAgIDAuOTIxODc4OTkzNTExMiwgMC4zODE3NTIwMTQxNjAxNTYyNSwgLTAuMDY2MzY4OTk3MDk3MDE1MzgsIDAuODMxNDM2OTkxNjkxNTg5NCwgMC4zNDQxNzkwMDQ0MzA3NzA5LCAtMC40MzYxNzk5OTU1MzY4MDQyLAorICAgICAgICAwLjY3MzUxMTk4MTk2NDExMTMsIDAuMjc4NTkzOTg3MjI2NDg2MiwgLTAuNjg0NjY1MDI0MjgwNTQ4MSwgMC42NDAzOTg5NzkxODcwMTE3LCAwLjI2NDg3NDAxMTI3ODE1MjQ3LCAtMC43MjA5MjQwMTk4MTM1Mzc2LAorICAgICAgICAwLjczMjk0OTAxODQ3ODM5MzYsIDAuMzAzMTY2MDAyMDM1MTQxLCAtMC42MDg5OTU5NzQwNjM4NzMzLCAwLjk5NzgwMzk4NjA3MjU0MDMsIDAsIC0wLjA2NjIzODk5OTM2Njc2MDI1LAorICAgICAgICAwLjkwMDE4MjAwODc0MzI4NjEsIDAsIC0wLjQzNTUxMjk4OTc1OTQ0NTIsIDAuNzI5NjEwOTc5NTU3MDM3NCwgMCwgLTAuNjgzODYyOTg0MTgwNDUwNCwKKyAgICAgICAgMC42OTM5NTEwMTA3MDQwNDA1LCAwLCAtMC43MjAwMjIwMjI3MjQxNTE2LCAwLjc5Mzk1MDAyMTI2NjkzNzMsIDAsIC0wLjYwNzk4NDAwNjQwNDg3NjcsCisgICAgICAgIDAuNzkzOTUwMDIxMjY2OTM3MywgMCwgLTAuNjA3OTg0MDA2NDA0ODc2NywgMC43MzI5NDkwMTg0NzgzOTM2LCAtMC4zMDMxNjYwMDIwMzUxNDEsIC0wLjYwODk5NTk3NDA2Mzg3MzMsCisgICAgICAgIDAuNTc2MjI5OTg5NTI4NjU2LCAtMC4yMzgyMTU5OTc4MTUxMzIxNCwgLTAuNzgxODAwOTg1MzM2MzAzNywgMC42MjM4NjAwMDE1NjQwMjU5LCAwLCAtMC43ODE1MzU5ODMwODU2MzIzLAorICAgICAgICAwLjE2MzYyODk5NTQxODU0ODU4LCAtMC4wNjc1MjcwMDM1ODYyOTIyNywgLTAuOTg0MjA3OTg3Nzg1MzM5NCwgMC4xNzcyOTEwMDU4NDk4MzgyNiwgMCwgLTAuOTg0MTU4OTkyNzY3MzM0LAorICAgICAgICAwLjA0NTQyMTAwMDU3MDA1ODgyLCAtMC4wMTg3MzUwMDA4NjM2NzEzMDMsIC0wLjk5ODc5MTk5MjY2NDMzNzIsIDAuMDQ5MjA2OTk4MTk5MjI0NDcsIDAsIC0wLjk5ODc4OTAxMjQzMjA5ODQsCisgICAgICAgIDAsIDAsIC0xLCAwLCAwLCAtMSwKKyAgICAgICAgMC41NjA1NTQ5ODEyMzE2ODk1LCAtMC41NjA1NTQ5ODEyMzE2ODk1LCAtMC42MDk1NTM5OTI3NDgyNjA1LCAwLjQ0MDQxNjAwODIzNDAyNDA1LCAtMC40NDA0MTYwMDgyMzQwMjQwNSwgLTAuNzgyMzQ3OTc3MTYxNDA3NSwKKyAgICAgICAgMC4xMjQ5MDIwMDI1MTM0MDg2NiwgLTAuMTI0OTAyMDAyNTEzNDA4NjYsIC0wLjk4NDI3NTk5NjY4NTAyODEsIDAuMDM0NjYyMDAwODM0OTQxODY0LCAtMC4wMzQ2NjIwMDA4MzQ5NDE4NjQsIC0wLjk5ODc5ODAxMjczMzQ1OTUsCisgICAgICAgIDAsIDAsIC0xLCAwLjMwMzE2NjAwMjAzNTE0MSwgLTAuNzMyOTQ5MDE4NDc4MzkzNiwgLTAuNjA4OTk1OTc0MDYzODczMywKKyAgICAgICAgMC4yMzgyMTU5OTc4MTUxMzIxNCwgLTAuNTc2MjI5OTg5NTI4NjU2LCAtMC43ODE4MDA5ODUzMzYzMDM3LCAwLjA2NzUyNzAwMzU4NjI5MjI3LCAtMC4xNjM2Mjg5OTU0MTg1NDg1OCwgLTAuOTg0MjA3OTg3Nzg1MzM5NCwKKyAgICAgICAgMC4wMTg3MzUwMDA4NjM2NzEzMDMsIC0wLjA0NTQyMTAwMDU3MDA1ODgyLCAtMC45OTg3OTE5OTI2NjQzMzcyLCAwLCAwLCAtMSwKKyAgICAgICAgMCwgLTAuNzkzOTUwMDIxMjY2OTM3MywgLTAuNjA3OTg0MDA2NDA0ODc2NywgMCwgLTAuNjIzODYwMDAxNTY0MDI1OSwgLTAuNzgxNTM1OTgzMDg1NjMyMywKKyAgICAgICAgMCwgLTAuMTc3MjkxMDA1ODQ5ODM4MjYsIC0wLjk4NDE1ODk5Mjc2NzMzNCwgMCwgLTAuMDQ5MjA2OTk4MTk5MjI0NDcsIC0wLjk5ODc4OTAxMjQzMjA5ODQsCisgICAgICAgIDAsIDAsIC0xLCAwLCAtMC43OTM5NTAwMjEyNjY5MzczLCAtMC42MDc5ODQwMDY0MDQ4NzY3LAorICAgICAgICAtMC4zMDMxNjYwMDIwMzUxNDEsIC0wLjczMjk0OTAxODQ3ODM5MzYsIC0wLjYwODk5NTk3NDA2Mzg3MzMsIC0wLjIzODIxNTk5NzgxNTEzMjE0LCAtMC41NzYyMjk5ODk1Mjg2NTYsIC0wLjc4MTgwMDk4NTMzNjMwMzcsCisgICAgICAgIDAsIC0wLjYyMzg2MDAwMTU2NDAyNTksIC0wLjc4MTUzNTk4MzA4NTYzMjMsIC0wLjA2NzUyNzAwMzU4NjI5MjI3LCAtMC4xNjM2Mjg5OTU0MTg1NDg1OCwgLTAuOTg0MjA3OTg3Nzg1MzM5NCwKKyAgICAgICAgMCwgLTAuMTc3MjkxMDA1ODQ5ODM4MjYsIC0wLjk4NDE1ODk5Mjc2NzMzNCwgLTAuMDE4NzM1MDAwODYzNjcxMzAzLCAtMC4wNDU0MjEwMDA1NzAwNTg4MiwgLTAuOTk4NzkxOTkyNjY0MzM3MiwKKyAgICAgICAgMCwgLTAuMDQ5MjA2OTk4MTk5MjI0NDcsIC0wLjk5ODc4OTAxMjQzMjA5ODQsIDAsIDAsIC0xLAorICAgICAgICAwLCAwLCAtMSwgLTAuNTYwNTU0OTgxMjMxNjg5NSwgLTAuNTYwNTU0OTgxMjMxNjg5NSwgLTAuNjA5NTUzOTkyNzQ4MjYwNSwKKyAgICAgICAgLTAuNDQwNDE2MDA4MjM0MDI0MDUsIC0wLjQ0MDQxNjAwODIzNDAyNDA1LCAtMC43ODIzNDc5NzcxNjE0MDc1LCAtMC4xMjQ5MDIwMDI1MTM0MDg2NiwgLTAuMTI0OTAyMDAyNTEzNDA4NjYsIC0wLjk4NDI3NTk5NjY4NTAyODEsCisgICAgICAgIC0wLjAzNDY2MjAwMDgzNDk0MTg2NCwgLTAuMDM0NjYyMDAwODM0OTQxODY0LCAtMC45OTg3OTgwMTI3MzM0NTk1LCAwLCAwLCAtMSwKKyAgICAgICAgLTAuNzMyOTQ5MDE4NDc4MzkzNiwgLTAuMzAzMTY2MDAyMDM1MTQxLCAtMC42MDg5OTU5NzQwNjM4NzMzLCAtMC41NzYyMjk5ODk1Mjg2NTYsIC0wLjIzODIxNTk5NzgxNTEzMjE0LCAtMC43ODE4MDA5ODUzMzYzMDM3LAorICAgICAgICAtMC4xNjM2Mjg5OTU0MTg1NDg1OCwgLTAuMDY3NTI3MDAzNTg2MjkyMjcsIC0wLjk4NDIwNzk4Nzc4NTMzOTQsIC0wLjA0NTQyMTAwMDU3MDA1ODgyLCAtMC4wMTg3MzUwMDA4NjM2NzEzMDMsIC0wLjk5ODc5MTk5MjY2NDMzNzIsCisgICAgICAgIDAsIDAsIC0xLCAtMC43OTM5NTAwMjEyNjY5MzczLCAwLCAtMC42MDc5ODQwMDY0MDQ4NzY3LAorICAgICAgICAtMC42MjM4NjAwMDE1NjQwMjU5LCAwLCAtMC43ODE1MzU5ODMwODU2MzIzLCAtMC4xNzcyOTEwMDU4NDk4MzgyNiwgMCwgLTAuOTg0MTU4OTkyNzY3MzM0LAorICAgICAgICAtMC4wNDkyMDY5OTgxOTkyMjQ0NywgMCwgLTAuOTk4Nzg5MDEyNDMyMDk4NCwgMCwgMCwgLTEsCisgICAgICAgIC0wLjc5Mzk1MDAyMTI2NjkzNzMsIDAsIC0wLjYwNzk4NDAwNjQwNDg3NjcsIC0wLjczMjk0OTAxODQ3ODM5MzYsIDAuMzAzMTY2MDAyMDM1MTQxLCAtMC42MDg5OTU5NzQwNjM4NzMzLAorICAgICAgICAtMC41NzYyMjk5ODk1Mjg2NTYsIDAuMjM4MjE1OTk3ODE1MTMyMTQsIC0wLjc4MTgwMDk4NTMzNjMwMzcsIC0wLjYyMzg2MDAwMTU2NDAyNTksIDAsIC0wLjc4MTUzNTk4MzA4NTYzMjMsCisgICAgICAgIC0wLjE2MzYyODk5NTQxODU0ODU4LCAwLjA2NzUyNzAwMzU4NjI5MjI3LCAtMC45ODQyMDc5ODc3ODUzMzk0LCAtMC4xNzcyOTEwMDU4NDk4MzgyNiwgMCwgLTAuOTg0MTU4OTkyNzY3MzM0LAorICAgICAgICAtMC4wNDU0MjEwMDA1NzAwNTg4MiwgMC4wMTg3MzUwMDA4NjM2NzEzMDMsIC0wLjk5ODc5MTk5MjY2NDMzNzIsIC0wLjA0OTIwNjk5ODE5OTIyNDQ3LCAwLCAtMC45OTg3ODkwMTI0MzIwOTg0LAorICAgICAgICAwLCAwLCAtMSwgMCwgMCwgLTEsCisgICAgICAgIC0wLjU2MDU1NDk4MTIzMTY4OTUsIDAuNTYwNTU0OTgxMjMxNjg5NSwgLTAuNjA5NTUzOTkyNzQ4MjYwNSwgLTAuNDQwNDE2MDA4MjM0MDI0MDUsIDAuNDQwNDE2MDA4MjM0MDI0MDUsIC0wLjc4MjM0Nzk3NzE2MTQwNzUsCisgICAgICAgIC0wLjEyNDkwMjAwMjUxMzQwODY2LCAwLjEyNDkwMjAwMjUxMzQwODY2LCAtMC45ODQyNzU5OTY2ODUwMjgxLCAtMC4wMzQ2NjIwMDA4MzQ5NDE4NjQsIDAuMDM0NjYyMDAwODM0OTQxODY0LCAtMC45OTg3OTgwMTI3MzM0NTk1LAorICAgICAgICAwLCAwLCAtMSwgLTAuMzAzMTY2MDAyMDM1MTQxLCAwLjczMjk0OTAxODQ3ODM5MzYsIC0wLjYwODk5NTk3NDA2Mzg3MzMsCisgICAgICAgIC0wLjIzODIxNTk5NzgxNTEzMjE0LCAwLjU3NjIyOTk4OTUyODY1NiwgLTAuNzgxODAwOTg1MzM2MzAzNywgLTAuMDY3NTI3MDAzNTg2MjkyMjcsIDAuMTYzNjI4OTk1NDE4NTQ4NTgsIC0wLjk4NDIwNzk4Nzc4NTMzOTQsCisgICAgICAgIC0wLjAxODczNTAwMDg2MzY3MTMwMywgMC4wNDU0MjEwMDA1NzAwNTg4MiwgLTAuOTk4NzkxOTkyNjY0MzM3MiwgMCwgMCwgLTEsCisgICAgICAgIDAsIDAuNzkzOTUwMDIxMjY2OTM3MywgLTAuNjA3OTg0MDA2NDA0ODc2NywgMCwgMC42MjM4NjAwMDE1NjQwMjU5LCAtMC43ODE1MzU5ODMwODU2MzIzLAorICAgICAgICAwLCAwLjE3NzI5MTAwNTg0OTgzODI2LCAtMC45ODQxNTg5OTI3NjczMzQsIDAsIDAuMDQ5MjA2OTk4MTk5MjI0NDcsIC0wLjk5ODc4OTAxMjQzMjA5ODQsCisgICAgICAgIDAsIDAsIC0xLCAwLCAwLjc5Mzk1MDAyMTI2NjkzNzMsIC0wLjYwNzk4NDAwNjQwNDg3NjcsCisgICAgICAgIDAuMzAzMTY2MDAyMDM1MTQxLCAwLjczMjk0OTAxODQ3ODM5MzYsIC0wLjYwODk5NTk3NDA2Mzg3MzMsIDAuMjM4MjE1OTk3ODE1MTMyMTQsIDAuNTc2MjI5OTg5NTI4NjU2LCAtMC43ODE4MDA5ODUzMzYzMDM3LAorICAgICAgICAwLCAwLjYyMzg2MDAwMTU2NDAyNTksIC0wLjc4MTUzNTk4MzA4NTYzMjMsIDAuMDY3NTI3MDAzNTg2MjkyMjcsIDAuMTYzNjI4OTk1NDE4NTQ4NTgsIC0wLjk4NDIwNzk4Nzc4NTMzOTQsCisgICAgICAgIDAsIDAuMTc3MjkxMDA1ODQ5ODM4MjYsIC0wLjk4NDE1ODk5Mjc2NzMzNCwgMC4wMTg3MzUwMDA4NjM2NzEzMDMsIDAuMDQ1NDIxMDAwNTcwMDU4ODIsIC0wLjk5ODc5MTk5MjY2NDMzNzIsCisgICAgICAgIDAsIDAuMDQ5MjA2OTk4MTk5MjI0NDcsIC0wLjk5ODc4OTAxMjQzMjA5ODQsIDAsIDAsIC0xLAorICAgICAgICAwLCAwLCAtMSwgMC41NjA1NTQ5ODEyMzE2ODk1LCAwLjU2MDU1NDk4MTIzMTY4OTUsIC0wLjYwOTU1Mzk5Mjc0ODI2MDUsCisgICAgICAgIDAuNDQwNDE2MDA4MjM0MDI0MDUsIDAuNDQwNDE2MDA4MjM0MDI0MDUsIC0wLjc4MjM0Nzk3NzE2MTQwNzUsIDAuMTI0OTAyMDAyNTEzNDA4NjYsIDAuMTI0OTAyMDAyNTEzNDA4NjYsIC0wLjk4NDI3NTk5NjY4NTAyODEsCisgICAgICAgIDAuMDM0NjYyMDAwODM0OTQxODY0LCAwLjAzNDY2MjAwMDgzNDk0MTg2NCwgLTAuOTk4Nzk4MDEyNzMzNDU5NSwgMCwgMCwgLTEsCisgICAgICAgIDAuNzMyOTQ5MDE4NDc4MzkzNiwgMC4zMDMxNjYwMDIwMzUxNDEsIC0wLjYwODk5NTk3NDA2Mzg3MzMsIDAuNTc2MjI5OTg5NTI4NjU2LCAwLjIzODIxNTk5NzgxNTEzMjE0LCAtMC43ODE4MDA5ODUzMzYzMDM3LAorICAgICAgICAwLjE2MzYyODk5NTQxODU0ODU4LCAwLjA2NzUyNzAwMzU4NjI5MjI3LCAtMC45ODQyMDc5ODc3ODUzMzk0LCAwLjA0NTQyMTAwMDU3MDA1ODgyLCAwLjAxODczNTAwMDg2MzY3MTMwMywgLTAuOTk4NzkxOTkyNjY0MzM3MiwKKyAgICAgICAgMCwgMCwgLTEsIDAuNzkzOTUwMDIxMjY2OTM3MywgMCwgLTAuNjA3OTg0MDA2NDA0ODc2NywKKyAgICAgICAgMC42MjM4NjAwMDE1NjQwMjU5LCAwLCAtMC43ODE1MzU5ODMwODU2MzIzLCAwLjE3NzI5MTAwNTg0OTgzODI2LCAwLCAtMC45ODQxNTg5OTI3NjczMzQsCisgICAgICAgIDAuMDQ5MjA2OTk4MTk5MjI0NDcsIDAsIC0wLjk5ODc4OTAxMjQzMjA5ODQsIDAsIDAsIC0xLAorICAgICAgICAwLjAwNzc4NDk5OTkwNzAxNjc1NCwgMC4wMDAyMTQ5OTk5OTI3NDk2NTM3NiwgLTAuOTk5OTcwMDE4ODYzNjc4LCAwLjAwNzAzODAwMDAzOTc1NjI5OCwgLTAuNTgyOTI1OTc1MzIyNzIzNCwgLTAuODEyNDk0OTkzMjA5ODM4OSwKKyAgICAgICAgMC4wMzYxMjcwMDEwNDcxMzQ0LCAtMC41NDU2MTQwMDQxMzUxMzE4LCAtMC44MzcyNTc5ODEzMDAzNTQsIDAuMDM5MTM4MDAwNDU4NDc4OTMsIDAuMDAwOTg3OTk5OTU2MTIzNTMwOSwgLTAuOTk5MjMzMDA3NDMxMDMwMywKKyAgICAgICAgMC4xNjE4NDU5OTY5NzU4OTg3NCwgLTAuNTYzMDQ5MDE4MzgzMDI2MSwgLTAuODEwNDIwOTg5OTkwMjM0NCwgMC4xNzk1MTE5OTQxMjM0NTg4NiwgMC4wMDQzNjgwMDAxOTgxNTU2NDE2LCAtMC45ODM3NDU5OTIxODM2ODUzLAorICAgICAgICAwLjQ4MjM2NTAxMjE2ODg4NDMsIC0wLjY0Mjc0NTk3MTY3OTY4NzUsIC0wLjU5NTE0ODAyNjk0MzIwNjgsIDAuNjEyMjk5OTc4NzMzMDYyNywgMC4wMTA0NTkwMDAyNDQ3MzY2NzEsIC0wLjc5MDU1NjAxMzU4NDEzNywKKyAgICAgICAgMC43Mzg3MTk5OTk3OTAxOTE3LCAtMC42NjQxOTg5OTQ2MzY1MzU2LCAtMC4xMTQ1OTI5OTkyMTk4OTQ0MSwgMC45ODYxNTE5OTMyNzQ2ODg3LCAwLjAwNjY2ODk5OTc5MTE0NTMyNSwgLTAuMTY1NzA3MDA3MDUwNTE0MjIsCisgICAgICAgIC0wLjAwMTkwNzk5OTk3NjUzODEyMTcsIC0wLjk4Njc2OTAyMDU1NzQwMzYsIDAuMTYyMTIwOTk3OTA1NzMxMiwgMC4wMDI3NjEwMDAwNjg4NTgyNjYsIC0wLjk5OTg0OTk3NTEwOTEwMDMsIDAuMDE3MTA1MDAwMDkzNTc5MjkyLAorICAgICAgICAwLjAxMDUzMjAwMDEwMjEwMjc1NywgLTAuOTk3MjQ2OTgwNjY3MTE0MywgMC4wNzMzOTgwMDE0OTIwMjM0NywgLTAuMDY2MDQwMDAxODA5NTk3MDIsIC0wLjk4OTMwMjk5MjgyMDczOTcsIDAuMTMwMDY5MDAyNTA5MTE3MTMsCisgICAgICAgIC0wLjA5NDQyNjk5NzAwNTkzOTQ4LCAtMC45OTUzOTI5NzgxOTEzNzU3LCAwLjAxNjU5NDAwMDE2MDY5NDEyMiwgLTAuMDA5MjAxOTk5NzUzNzEzNjA4LCAtMC40OTAyOTI5OTYxNjgxMzY2LCAwLjg3MTUwOTAxNTU2MDE1MDEsCisgICAgICAgIC0wLjA0ODYwNjAwMDg0MDY2MzkxLCAtMC41Mzk0NTc5NzY4MTgwODQ3LCAwLjg0MDYwOTAxNDAzNDI3MTIsIC0wLjIyMzI5Nzk5ODMwOTEzNTQ0LCAtMC41NTI3MzkwMjQxNjIyOTI1LCAwLjgwMjg4MTAwMjQyNjE0NzUsCisgICAgICAgIC0wLjU5NjM2NDk3NDk3NTU4NTksIC0wLjU3NTEzNDk5MjU5OTQ4NzMsIDAuNTU5OTcwOTc0OTIyMTgwMiwgLTAuODAzMzM2OTc3OTU4Njc5MiwgLTAuNTkxNjAyOTgxMDkwNTQ1NywgMC4wNjgyMzUwMDI0NTgwOTU1NSwKKyAgICAgICAgLTAuMDEwNTYwMDAwMzE1MzA4NTcsIC0wLjAwMDEwMjk5OTk5ODQ4OTM5NDc4LCAwLjk5OTk0Mzk3MTYzMzkxMTEsIC0wLjA1ODc5ODAwMDIxNjQ4NDA3LCAtMC4wMDA3MDg5OTk5ODUzNjMzMzQ0LCAwLjk5ODI2OTk3NTE4NTM5NDMsCisgICAgICAgIC0wLjI4MDcxMDAxMTcyMDY1NzM1LCAtMC4wMDMyNjc5OTk5NzEyODU0NjI0LCAwLjk1OTc4NzAxMTE0NjU0NTQsIC0wLjc0OTcyMzAxNzIxNTcyODgsIC0wLjAwNDI2NzAwMDEyNzU4Mzc0MiwgMC42NjE3Mzc5Nzg0NTg0MDQ1LAorICAgICAgICAtMC45OTczNTA5OTA3NzIyNDczLCAtMC4wMDIwNTgwMDAwNzA5NzQyMzA4LCAwLjA3MjcxNDAwMDk0MDMyMjg4LCAtMC4wMTA1NjAwMDAzMTUzMDg1NywgLTAuMDAwMTAyOTk5OTk4NDg5Mzk0NzgsIDAuOTk5OTQzOTcxNjMzOTExMSwKKyAgICAgICAgLTAuMDA4NzkxOTk5ODkxNDAwMzM3LCAwLjQ5MDMyODk5NzM3MzU4MDkzLCAwLjg3MTQ5Mjk4MTkxMDcwNTYsIC0wLjA0NjQ5MzAwMTI4MjIxNTEyLCAwLjUzODc1NjAxMjkxNjU2NDksIDAuODQxMTc3OTk5OTczMjk3MSwKKyAgICAgICAgLTAuMDU4Nzk4MDAwMjE2NDg0MDcsIC0wLjAwMDcwODk5OTk4NTM2MzMzNDQsIDAuOTk4MjY5OTc1MTg1Mzk0MywgLTAuMjE3OTA4OTkzMzYzMzgwNDMsIDAuNTQ5MTYxMDE2OTQxMDcwNiwgMC44MDY4MDY5ODE1NjM1NjgxLAorICAgICAgICAtMC4yODA3MTAwMTE3MjA2NTczNSwgLTAuMDAzMjY3OTk5OTcxMjg1NDYyNCwgMC45NTk3ODcwMTExNDY1NDU0LCAtMC41OTcyOTA5OTI3MzY4MTY0LCAwLjU3NDExOTk4NTEwMzYwNzIsIDAuNTYwMDI3MDAzMjg4MjY5LAorICAgICAgICAtMC43NDk3MjMwMTcyMTU3Mjg4LCAtMC4wMDQyNjcwMDAxMjc1ODM3NDIsIDAuNjYxNzM3OTc4NDU4NDA0NSwgLTAuODA0MDAwMDIwMDI3MTYwNiwgMC41OTEyOTEwMTAzNzk3OTEzLCAwLjA2MjkxMjAwMjIwNTg0ODcsCisgICAgICAgIC0wLjk5NzM1MDk5MDc3MjI0NzMsIC0wLjAwMjA1ODAwMDA3MDk3NDIzMDgsIDAuMDcyNzE0MDAwOTQwMzIyODgsIC0wLjAwMTgwNTAwMDAwNzE1MjU1NzQsIDAuOTg2ODQwMDA5Njg5MzMxLCAwLjE2MTY5MDk5NTA5NzE2MDM0LAorICAgICAgICAwLjAwMjAzMTAwMDA5ODIxMzU1MzQsIDAuOTk5ODkxOTk2MzgzNjY3LCAwLjAxNDU1MzAwMDIxOTE2NjI3OSwgMC4wMDkyMTUwMDAwODU1MzI2NjUsIDAuOTk4MTUyMDE3NTkzMzgzOCwgMC4wNjAwNjg5OTg0ODU4MDM2MDQsCisgICAgICAgIC0wLjA1OTMzNTAwMDgxMzAwNzM1NSwgMC45OTE3MjMwMDEwMDMyNjU0LCAwLjExMzg2NjAwMTM2NzU2ODk3LCAtMC4wODY5MDEwMDE2MzIyMTM1OSwgMC45OTYxNDEwMTY0ODMzMDY5LCAwLjAxMjI4OTk5OTk4NDIwNDc3LAorICAgICAgICAwLjAwNjQxNzAwMDIwMDU5OTQzMiwgMC41ODMwOTUwMTQwOTUzMDY0LCAtMC44MTIzNzkwMDI1NzExMDYsIDAuMDMzNzgyOTk5OTYyNTY4MjgsIDAuNTQ1MzczMDIyNTU2MzA0OSwgLTAuODM3NTEzMDI5NTc1MzQ3OSwKKyAgICAgICAgMC4xNTcxMTMwMDA3NTA1NDE3LCAwLjU2MjE4ODk4Mjk2MzU2MiwgLTAuODExOTQ2OTg4MTA1NzczOSwgMC40ODQ0MDU5OTQ0MTUyODMyLCAwLjY0NjUyOTAxODg3ODkzNjgsIC0wLjU4OTM2NTAwNTQ5MzE2NDEsCisgICAgICAgIDAuNzM4ODcwMDI0NjgxMDkxMywgMC42NjYxODgwMDE2MzI2OTA0LCAtMC4xMDEzMTk5OTg1MDI3MzEzMiwgMC4wMDc3ODQ5OTk5MDcwMTY3NTQsIDAuMDAwMjE0OTk5OTkyNzQ5NjUzNzYsIC0wLjk5OTk3MDAxODg2MzY3OCwKKyAgICAgICAgMC4wMzkxMzgwMDA0NTg0Nzg5MywgMC4wMDA5ODc5OTk5NTYxMjM1MzA5LCAtMC45OTkyMzMwMDc0MzEwMzAzLCAwLjE3OTUxMTk5NDEyMzQ1ODg2LCAwLjAwNDM2ODAwMDE5ODE1NTY0MTYsIC0wLjk4Mzc0NTk5MjE4MzY4NTMsCisgICAgICAgIDAuNjEyMjk5OTc4NzMzMDYyNywgMC4wMTA0NTkwMDAyNDQ3MzY2NzEsIC0wLjc5MDU1NjAxMzU4NDEzNywgMC45ODYxNTE5OTMyNzQ2ODg3LCAwLjAwNjY2ODk5OTc5MTE0NTMyNSwgLTAuMTY1NzA3MDA3MDUwNTE0MjIsCisgICAgICAgIDAuOTg2MTUxOTkzMjc0Njg4NywgMC4wMDY2Njg5OTk3OTExNDUzMjUsIC0wLjE2NTcwNzAwNzA1MDUxNDIyLCAwLjczODcxOTk5OTc5MDE5MTcsIC0wLjY2NDE5ODk5NDYzNjUzNTYsIC0wLjExNDU5Mjk5OTIxOTg5NDQxLAorICAgICAgICAwLjcyNTYwOTAwNDQ5NzUyODEsIC0wLjYzNzM2MDk5MDA0NzQ1NDgsIDAuMjU5MzUwOTg1Mjg4NjIsIDAuOTQ2NTExOTgzODcxNDYsIDAuMDAzMzU2OTk5OTUwNDgzNDQxNCwgMC4zMjI2NDk5ODU1NTE4MzQxLAorICAgICAgICAwLjY0NTk0NTAxMjU2OTQyNzUsIC0wLjYwNzcyMDAxNzQzMzE2NjUsIDAuNDYxOTg4MDAyMDYxODQzODcsIDAuODI1ODI5OTgyNzU3NTY4NCwgMC4wMDc0NTE5OTk5MzI1Mjc1NDIsIDAuNTYzODcwMDEyNzYwMTYyNCwKKyAgICAgICAgMC41MzE2MTUwMTg4NDQ2MDQ1LCAtMC41NTg2MTQwMTU1NzkyMjM2LCAwLjYzNjY1OTk3OTgyMDI1MTUsIDAuNjUwMDExMDAzMDE3NDI1NSwgMC4wMDY5MzYwMDAxOTQ0MDA1NDksIDAuNzU5ODkzMDAwMTI1ODg1LAorICAgICAgICAwLjQyNDk2NDAxMDcxNTQ4NDYsIC0wLjU5NTUzODk3MzgwODI4ODYsIDAuNjgxNzE3OTkxODI4OTE4NSwgMC41MzI0Mjg5Nzk4NzM2NTcyLCAwLjAwNTI0Mzk5OTg4MzUzMjUyNCwgMC44NDY0NTgwMTc4MjYwODAzLAorICAgICAgICAtMC4wOTQ0MjY5OTcwMDU5Mzk0OCwgLTAuOTk1MzkyOTc4MTkxMzc1NywgMC4wMTY1OTQwMDAxNjA2OTQxMjIsIC0wLjA0OTU2MTAwMTM2MDQxNjQxLCAtMC45OTg1NzU5ODU0MzE2NzExLCAtMC4wMTk3NTUwMDAyNDg1NTEzNywKKyAgICAgICAgLTAuMDM3ODE3MDAxMzQyNzczNDQsIC0wLjk5ODY0OTAwMTEyMTUyMSwgLTAuMDM1NjI0OTk5NTUyOTY1MTY0LCAtMC4wMzc5MTI5OTgzNDg0NzQ1LCAtMC45OTg2MTQwMTMxOTUwMzc4LCAtMC4wMzY1MTE5OTg2MjM2MDk1NCwKKyAgICAgICAgLTAuMTY4ODUzOTk4MTg0MjA0MSwgLTAuOTM5NTMwMDE0OTkxNzYwMywgLTAuMjk3OTQ2MDA2MDU5NjQ2NiwgLTAuODAzMzM2OTc3OTU4Njc5MiwgLTAuNTkxNjAyOTgxMDkwNTQ1NywgMC4wNjgyMzUwMDI0NTgwOTU1NSwKKyAgICAgICAgLTAuNzQyMzQwOTgxOTYwMjk2NiwgLTAuNTk5NTI0MDIxMTQ4NjgxNiwgLTAuMjk5MTY1OTkzOTI4OTA5MywgLTAuNjE5NjAyMDI0NTU1MjA2MywgLTAuNTc5NTAyOTk5NzgyNTYyMywgLTAuNTI5NDA2MDExMTA0NTgzNywKKyAgICAgICAgLTAuNDgzNzA3OTk0MjIyNjQxLCAtMC41NDM4MzcwMTA4NjA0NDMxLCAtMC42ODU3NjAwMjEyMDk3MTY4LCAtMC40NDUyOTE5OTYwMDIxOTcyNywgLTAuNDEzMTc3MDEzMzk3MjE2OCwgLTAuNzk0MzU0OTc1MjIzNTQxMywKKyAgICAgICAgLTAuOTk3MzUwOTkwNzcyMjQ3MywgLTAuMDAyMDU4MDAwMDcwOTc0MjMwOCwgMC4wNzI3MTQwMDA5NDAzMjI4OCwgLTAuOTI2NTEzMDE2MjIzOTA3NSwgLTAuMDAxOTk1MDAwMDU2OTIyNDM1OCwgLTAuMzc2MjU3MDAyMzUzNjY4MiwKKyAgICAgICAgLTAuNzUzOTIwMDE4NjcyOTQzMSwgLTAuMDA0MzE3MDAwMDQyNjQ3MTIzLCAtMC42NTY5NTIwMjM1MDYxNjQ2LCAtMC41NjYyMjM5Nzg5OTYyNzY5LCAtMC4wMDM0NjEwMDAwNDM4OTg4MjEsIC0wLjgyNDI0NDAyMjM2OTM4NDgsCisgICAgICAgIC0wLjQ4MTgwNDAxMzI1MjI1ODMsIC0wLjAwMTg1MDAwMDAwMDU1ODc5MzUsIC0wLjg3NjI3NzAyOTUxNDMxMjcsIC0wLjk5NzM1MDk5MDc3MjI0NzMsIC0wLjAwMjA1ODAwMDA3MDk3NDIzMDgsIDAuMDcyNzE0MDAwOTQwMzIyODgsCisgICAgICAgIC0wLjgwNDAwMDAyMDAyNzE2MDYsIDAuNTkxMjkxMDEwMzc5NzkxMywgMC4wNjI5MTIwMDIyMDU4NDg3LCAtMC43NDQ2NzQ5ODA2NDA0MTE0LCAwLjU5ODk3NzAyOTMyMzU3NzksIC0wLjI5NDQyMzk5NzQwMjE5MTE2LAorICAgICAgICAtMC45MjY1MTMwMTYyMjM5MDc1LCAtMC4wMDE5OTUwMDAwNTY5MjI0MzU4LCAtMC4zNzYyNTcwMDIzNTM2NjgyLCAtMC42MjE5NDkwMTcwNDc4ODIxLCAwLjU3ODE2NDk5NDcxNjY0NDMsIC0wLjUyODExNDAyMDgyNDQzMjQsCisgICAgICAgIC0wLjc1MzkyMDAxODY3Mjk0MzEsIC0wLjAwNDMxNzAwMDA0MjY0NzEyMywgLTAuNjU2OTUyMDIzNTA2MTY0NiwgLTAuNDgxMTcxMDExOTI0NzQzNjUsIDAuNTQyODI4MDIzNDMzNjg1MywgLTAuNjg4MzQwMDA4MjU4ODE5NiwKKyAgICAgICAgLTAuNTY2MjIzOTc4OTk2Mjc2OSwgLTAuMDAzNDYxMDAwMDQzODk4ODIxLCAtMC44MjQyNDQwMjIzNjkzODQ4LCAtMC40MzgwNTUwMDg2NDk4MjYwNSwgMC40MTU3NDQwMDY2MzM3NTg1NCwgLTAuNzk3MDM0OTc4ODY2NTc3MSwKKyAgICAgICAgLTAuNDgxODA0MDEzMjUyMjU4MywgLTAuMDAxODUwMDAwMDAwNTU4NzkzNSwgLTAuODc2Mjc3MDI5NTE0MzEyNywgLTAuMDg2OTAxMDAxNjMyMjEzNTksIDAuOTk2MTQxMDE2NDgzMzA2OSwgMC4wMTIyODk5OTk5ODQyMDQ3NywKKyAgICAgICAgLTAuMDQ0MzM3OTk5MDc1NjUxMTcsIDAuOTk4ODcxMDI4NDIzMzA5MywgLTAuMDE3MDU1OTk5NDg3NjM4NDc0LCAtMC4wMjYxNzcwMDAyNTQzOTI2MjQsIDAuOTk5MjYwMDA4MzM1MTEzNSwgLTAuMDI4MTY3MDAwMDQwNDExOTUsCisgICAgICAgIC0wLjAyNTI5MzAwMDA0MjQzODUwNywgMC45OTkyNzgwMDg5Mzc4MzU3LCAtMC4wMjgzMzIwMDA1OTgzMTE0MjQsIC0wLjE1NzQ4MTk5ODIwNTE4NDk0LCAwLjk0NDE2NzAxNzkzNjcwNjUsIC0wLjI4OTM5MzAwNzc1NTI3OTU0LAorICAgICAgICAwLjczODg3MDAyNDY4MTA5MTMsIDAuNjY2MTg4MDAxNjMyNjkwNCwgLTAuMTAxMzE5OTk4NTAyNzMxMzIsIDAuNzI4MjQ0MDA2NjMzNzU4NSwgMC42MzcxNDIwMDI1ODI1NSwgMC4yNTI0MDk5OTQ2MDIyMDMzNywKKyAgICAgICAgMC42NDcwNTQwMTY1OTAxMTg0LCAwLjYwODI1NTAyODcyNDY3MDQsIDAuNDU5NzI0OTkyNTEzNjU2NiwgMC41MjI5OTM5ODE4MzgyMjYzLCAwLjU2MjE3MDAyODY4NjUyMzQsIDAuNjQwNjU3MDA3Njk0MjQ0NCwKKyAgICAgICAgMC40MDk5NzgwMDIzMDk3OTkyLCAwLjYwNDY2ODk3NDg3NjQwMzgsIDAuNjgyODU2OTc2OTg1OTMxNCwgMC45ODYxNTE5OTMyNzQ2ODg3LCAwLjAwNjY2ODk5OTc5MTE0NTMyNSwgLTAuMTY1NzA3MDA3MDUwNTE0MjIsCisgICAgICAgIDAuOTQ2NTExOTgzODcxNDYsIDAuMDAzMzU2OTk5OTUwNDgzNDQxNCwgMC4zMjI2NDk5ODU1NTE4MzQxLCAwLjgyNTgyOTk4Mjc1NzU2ODQsIDAuMDA3NDUxOTk5OTMyNTI3NTQyLCAwLjU2Mzg3MDAxMjc2MDE2MjQsCisgICAgICAgIDAuNjUwMDExMDAzMDE3NDI1NSwgMC4wMDY5MzYwMDAxOTQ0MDA1NDksIDAuNzU5ODkzMDAwMTI1ODg1LCAwLjUzMjQyODk3OTg3MzY1NzIsIDAuMDA1MjQzOTk5ODgzNTMyNTI0LCAwLjg0NjQ1ODAxNzgyNjA4MDMsCisgICAgICAgIC0wLjIzMDc4Njk5NDA5OTYxNywgMC4wMDY1MjMwMDAwNzY0MTMxNTUsIDAuOTcyOTgxOTg5MzgzNjk3NSwgLTAuMTUyODc4MDAxMzMyMjgzMDIsIC0wLjcxMDE4OTk5ODE0OTg3MTgsIDAuNjg3MjEwOTc3MDc3NDg0MSwKKyAgICAgICAgLTAuMzE2NzIwOTkyMzI2NzM2NDUsIC0wLjcwMjExMjk3MjczNjM1ODYsIDAuNjM3NzUwMDI5NTYzOTAzOCwgLTAuNTQ4OTM2MDA5NDA3MDQzNSwgMC4wMDE1MTA5OTk5ODAzODI2MjEzLCAwLjgzNTg2Mjk5NDE5NDAzMDgsCisgICAgICAgIC0wLjYwMTA2NzAwNjU4Nzk4MjIsIC0wLjY0NTMzMDAxMTg0NDYzNSwgMC40NzE0NTE5OTc3NTY5NTgsIC0wLjg3NTY3MTAyOTA5MDg4MTMsIC0wLjAwOTg5MTk5OTg4NTQzOTg3MywgMC40ODI4MDcwMTA0MTIyMTYyLAorICAgICAgICAtMC42MzU4OTAwMDcwMTkwNDMsIC0wLjYyOTgwMDAyMTY0ODQwNywgMC40NDYwOTAwMTI3ODg3NzI2LCAtMC44Nzc1NTM5OTk0MjM5ODA3LCAtMC4wMTkwOTEwMDA3ODA0NjMyMiwgMC40NzkwOTcwMDg3MDUxMzkxNiwKKyAgICAgICAgLTAuNDM1NzQ1MDAwODM5MjMzNCwgLTAuNjcwMDA5OTcwNjY0OTc4LCAwLjYwMTAwOTAxMTI2ODYxNTcsIC0wLjY5NjE4ODk4NjMwMTQyMjEsIC0wLjAyNDQ5NjAwMDI2MDExNDY3LCAwLjcxNzQ0MDAwOTExNzEyNjUsCisgICAgICAgIDAuMTExMTEyOTk2OTM1ODQ0NDIsIC0wLjk5MDE1OTk4ODQwMzMyMDMsIC0wLjA4NTA2OTAwMDcyMDk3Nzc4LCAwLjIyMzMwOTk5Mzc0Mzg5NjQ4LCAtMC45NzQ3MjYwMjEyODk4MjU0LCAwLjAwNjUzOTk5OTk3MzAyODg5OCwKKyAgICAgICAgMC4xOTAwOTcwMDQxNzUxODYxNiwgLTAuOTY5NDU3OTgzOTcwNjQyMSwgMC4xNTQ5NjM5OTk5ODY2NDg1NiwgMC4wMDUyNzAwMDAwODE1MDkzNTIsIC0wLjk4MTg2OTk5NTU5NDAyNDcsIDAuMTg5NDgyMDAzNDUwMzkzNjgsCisgICAgICAgIC0wLjAxMTc1MDk5OTgzODExMzc4NSwgLTAuOTY5MDI0MDAyNTUyMDMyNSwgMC4yNDY2ODY5OTUwMjk0NDk0NiwgMC4zNDM5MDU5ODUzNTUzNzcyLCAtMC41OTk0MTIwMjQwMjExNDg3LCAtMC43MjI3OTUwMDk2MTMwMzcxLAorICAgICAgICAwLjU3MjQ4OTk3Njg4MjkzNDYsIC0wLjU5MTYyNzAwMTc2MjM5MDEsIC0wLjU2NzY1NTk4MDU4NzAwNTYsIDAuNzg3NDM2MDA4NDUzMzY5MSwgLTAuNTYwNTEwOTkzMDAzODQ1MiwgLTAuMjU2NDYwMDExMDA1NDAxNiwKKyAgICAgICAgMC42NDcwOTY5OTE1MzkwMDE1LCAtMC42OTgxNDA5Nzg4MTMxNzE0LCAtMC4zMDYzNzQwMTM0MjM5MTk3LCAwLjQyNzUyNzk5MzkxNzQ2NTIsIC0wLjc1MzU3NTAyNjk4ODk4MzIsIC0wLjQ5OTM0Mzk5MTI3OTYwMjA1LAorICAgICAgICAwLjQxMDkyNjAxNDE4NDk1MTgsIC0wLjAwMTI4Mzk5OTk5ODEyMjQ1MzcsIC0wLjkxMTY2ODAwMjYwNTQzODIsIDAuNjcxNTE5OTk0NzM1NzE3OCwgMC4wMDA4OTg5OTk5NzY5MjU1NTE5LCAtMC43NDA5ODU5ODk1NzA2MTc3LAorICAgICAgICAwLjkyMjAyNTk3ODU2NTIxNjEsIDAuMDA3MjUxOTk5ODA2NjEyNzMsIC0wLjM4NzA1OTk4NjU5MTMzOTEsIDAuODQ2OTA5OTk5ODQ3NDEyMSwgMC4wMTM4NTM5OTk3ODYwNzg5MywgLTAuNTMxNTU2MDEwMjQ2Mjc2OSwKKyAgICAgICAgMC41MzU5MjQwMTc0MjkzNTE4LCAwLjAxMDUwMzk5OTg4ODg5Njk0MiwgLTAuODQ0MjAxMDI4MzQ3MDE1NCwgMC40MTA5MjYwMTQxODQ5NTE4LCAtMC4wMDEyODM5OTk5OTgxMjI0NTM3LCAtMC45MTE2NjgwMDI2MDU0MzgyLAorICAgICAgICAwLjM0MTE4ODAxMzU1MzYxOTQsIDAuNjAwOTMwOTg4Nzg4NjA0NywgLTAuNzIyODIzMDIzNzk2MDgxNSwgMC41Nzg2NjQwMDQ4MDI3MDM5LCAwLjU5MTgzODAwMjIwNDg5NSwgLTAuNTYxMTM4OTg3NTQxMTk4NywKKyAgICAgICAgMC42NzE1MTk5OTQ3MzU3MTc4LCAwLjAwMDg5ODk5OTk3NjkyNTU1MTksIC0wLjc0MDk4NTk4OTU3MDYxNzcsIDAuNzg0ODY5MDE1MjE2ODI3NCwgMC41NjY1NDIwMjkzODA3OTgzLCAtMC4yNTEwMjAwMTQyODYwNDEyNiwKKyAgICAgICAgMC45MjIwMjU5Nzg1NjUyMTYxLCAwLjAwNzI1MTk5OTgwNjYxMjczLCAtMC4zODcwNTk5ODY1OTEzMzkxLCAwLjY0MjY4MTAwMjYxNjg4MjMsIDAuNzAzOTg5OTgyNjA0OTgwNSwgLTAuMzAyMjU3MDAxMzk5OTkzOSwKKyAgICAgICAgMC44NDY5MDk5OTk4NDc0MTIxLCAwLjAxMzg1Mzk5OTc4NjA3ODkzLCAtMC41MzE1NTYwMTAyNDYyNzY5LCAwLjQxODU4ODk5NTkzMzUzMjcsIDAuNzU4MTE3MDIwMTMwMTU3NSwgLTAuNTAwMDQyMDIxMjc0NTY2NywKKyAgICAgICAgMC41MzU5MjQwMTc0MjkzNTE4LCAwLjAxMDUwMzk5OTg4ODg5Njk0MiwgLTAuODQ0MjAxMDI4MzQ3MDE1NCwgMC4xMTU4MDU5OTg0NDQ1NTcxOSwgMC45OTAxMTM5NzM2MTc1NTM3LCAtMC4wNzkxMzkwMDE2Njc0OTk1NCwKKyAgICAgICAgMC4yMzI4MTEwMDM5MjM0MTYxNCwgMC45NzI0NDEwMTc2Mjc3MTYxLCAwLjAxMjU2NDk5OTk4MjcxNDY1MywgMC4yMDY2NjI5OTc2MDM0MTY0NCwgMC45NjYyNzk5ODM1MjA1MDc4LCAwLjE1MzYwMDAwNzI5NTYwODUyLAorICAgICAgICAwLjAyNDQ5ODk5OTExODgwNDkzLCAwLjk4NjU3Nzk4NzY3MDg5ODQsIDAuMTYxNDQyOTk1MDcxNDExMTMsIDAuMDAzMzgwOTk5OTAwNDAwNjM4NiwgMC45Nzc0NTUwMTk5NTA4NjY3LCAwLjIxMTExNTAwMjYzMjE0MTEsCisgICAgICAgIC0wLjEzNDkxMTk5OTEwNjQwNzE3LCAwLjcxMzU1MDk4NDg1OTQ2NjYsIDAuNjg3NDkwOTk5Njk4NjM4OSwgLTAuMzE5NTM5OTk0MDAxMzg4NTUsIDAuNzA1MDYxOTcyMTQxMjY1OSwgMC42MzMwNzI5NzIyOTc2Njg1LAorICAgICAgICAtMC42MDM5MDE5ODIzMDc0MzQxLCAwLjY0OTkwMjk5OTQwMTA5MjUsIDAuNDYxNDQxOTkzNzEzMzc4OSwgLTAuNjMxODE1MDE2MjY5NjgzOCwgMC42NDAwNzE5ODgxMDU3NzM5LCAwLjQzNzE2ODk4NTYwNTIzOTg3LAorICAgICAgICAtMC40MjQzMDQ5OTE5NjA1MjU1LCAwLjY2Njc1MDAxMzgyODI3NzYsIDAuNjEyNzA3MDE4ODUyMjMzOSwgLTAuMjMwNzg2OTk0MDk5NjE3LCAwLjAwNjUyMzAwMDA3NjQxMzE1NSwgMC45NzI5ODE5ODkzODM2OTc1LAorICAgICAgICAtMC41NDg5MzYwMDk0MDcwNDM1LCAwLjAwMTUxMDk5OTk4MDM4MjYyMTMsIDAuODM1ODYyOTk0MTk0MDMwOCwgLTAuODc1NjcxMDI5MDkwODgxMywgLTAuMDA5ODkxOTk5ODg1NDM5ODczLCAwLjQ4MjgwNzAxMDQxMjIxNjIsCisgICAgICAgIC0wLjg3NzU1Mzk5OTQyMzk4MDcsIC0wLjAxOTA5MTAwMDc4MDQ2MzIyLCAwLjQ3OTA5NzAwODcwNTEzOTE2LCAtMC42OTYxODg5ODYzMDE0MjIxLCAtMC4wMjQ0OTYwMDAyNjAxMTQ2NywgMC43MTc0NDAwMDkxMTcxMjY1LAorICAgICAgICAtMC42OTYxODg5ODYzMDE0MjIxLCAtMC4wMjQ0OTYwMDAyNjAxMTQ2NywgMC43MTc0NDAwMDkxMTcxMjY1LCAtMC40MzU3NDUwMDA4MzkyMzM0LCAtMC42NzAwMDk5NzA2NjQ5NzgsIDAuNjAxMDA5MDExMjY4NjE1NywKKyAgICAgICAgLTAuMjU5ODU4MDEyMTk5NDAxODYsIC0wLjU1MjU0Nzk5MTI3NTc4NzQsIDAuNzkxOTM4MDA2ODc3ODk5MiwgLTAuNDI1Nzk5MDEyMTg0MTQzMDcsIC0wLjAxMDgwNDk5OTYxOTcyMjM2NiwgMC45MDQ3NTMwMjkzNDY0NjYxLAorICAgICAgICAwLjAwOTUzNzAwMDIwOTA5MzA5NCwgMC4wMjE2NjkwMDAzODcxOTE3NzIsIDAuOTk5NzE5OTc3Mzc4ODQ1MiwgMC4wMjIwNDEwMDA0MjU4MTU1ODIsIC0wLjAwMTYyMzAwMDAxODI5ODYyNiwgMC45OTk3NTU5Nzg1ODQyODk2LAorICAgICAgICAwLjQxMDE1NDAxNDgyNTgyMDksIDAuODQ5MDgwOTc5ODI0MDY2MiwgMC4zMzI5MTc5ODgzMDAzMjM1LCAwLjk5OTU5ODAyNjI3NTYzNDgsIC0wLjAxMTU1NjAwMDQ0ODc2MzM3LCAwLjAyNTg3ODk5OTM4MjI1NzQ2LAorICAgICAgICAwLjU0MTUyMjAyNjA2MjAxMTcsIDAuNjM3MDAwOTc3OTkzMDExNSwgLTAuNTQ4NjE5OTg1NTgwNDQ0MywgMC43MDk1ODYwMjQyODQzNjI4LCAtMC4wMDk2NzA5OTk4MzI0NTEzNDQsIC0wLjcwNDU1MTk5NDgwMDU2NzYsCisgICAgICAgIC0wLjAxMTc1MDk5OTgzODExMzc4NSwgLTAuOTY5MDI0MDAyNTUyMDMyNSwgMC4yNDY2ODY5OTUwMjk0NDk0NiwgMC4wNDYzMTAwMDAxMjE1OTM0NzUsIC0wLjg4OTE3MjAxNzU3NDMxMDMsIDAuNDU1MjI0OTkwODQ0NzI2NTYsCisgICAgICAgIC0wLjAxMDY4ODAwMDM1ODY0MTE0OCwgLTAuMTQ4ODk5MDAzODYzMzM0NjYsIDAuOTg4Nzk0OTgyNDMzMzE5MSwgLTAuMDQ0Mzc0OTk4NjU4ODk1NDksIDAuNzI5MTIwMDE2MDk4MDIyNSwgMC42ODI5NDYwMjYzMjUyMjU4LAorICAgICAgICAwLjEyMjgyNDk5NjcwOTgyMzYxLCAwLjk5MjM4NTAyOTc5Mjc4NTYsIDAuMDA5MjMyMDAwNDQ3ODA5Njk2LCAwLjQyNzUyNzk5MzkxNzQ2NTIsIC0wLjc1MzU3NTAyNjk4ODk4MzIsIC0wLjQ5OTM0Mzk5MTI3OTYwMjA1LAorICAgICAgICAwLjQ4MTgzOTAwMTE3ODc0MTQ2LCAtMC44NTc0Nzk5ODk1Mjg2NTYsIC0wLjE4MDQ0MzAwMzc3MzY4OTI3LCAwLjQ1NTI3MTk4OTEwNzEzMTk2LCAtMC40OTk5MjQ5ODc1NTQ1NTAxNywgMC43MzY3NTEwMTk5NTQ2ODE0LAorICAgICAgICAtMC4yMjA1NDE5OTg3NDQwMTA5MywgMC4zNTgyNzgwMDYzMTUyMzEzLCAwLjkwNzE5MzAwNTA4NDk5MTUsIC0wLjIzNTkxODk5ODcxODI2MTcyLCAwLjcxNTc5NTk5MzgwNDkzMTYsIDAuNjU3MjQ5OTg3MTI1Mzk2NywKKyAgICAgICAgMC41MzU5MjQwMTc0MjkzNTE4LCAwLjAxMDUwMzk5OTg4ODg5Njk0MiwgLTAuODQ0MjAxMDI4MzQ3MDE1NCwgMC43MjgwOTEwMDE1MTA2MjAxLCAwLjAxNTU4NDk5OTY5NTQyMDI2NSwgLTAuNjg1MzAyOTcyNzkzNTc5MSwKKyAgICAgICAgMC44ODg3Mzg5ODk4MzAwMTcxLCAwLjAxNjY3OTAwMDEwOTQzNDEyOCwgMC40NTgxMDg5OTEzODQ1MDYyLCAtMC4yNjAwOTgwMTAzMDE1ODk5NywgLTAuMDAwNzk5OTk5OTc5NzkwMzAwMSwgMC45NjU1ODIwMTMxMzAxODgsCisgICAgICAgIC0wLjM3MTYxMDk5OTEwNzM2MDg0LCAwLjAwNDQxNjk5OTg3Mjc3Mzg4NiwgMC45MjgzNzc5ODU5NTQyODQ3LCAwLjUzNTkyNDAxNzQyOTM1MTgsIDAuMDEwNTAzOTk5ODg4ODk2OTQyLCAtMC44NDQyMDEwMjgzNDcwMTU0LAorICAgICAgICAwLjQxODU4ODk5NTkzMzUzMjcsIDAuNzU4MTE3MDIwMTMwMTU3NSwgLTAuNTAwMDQyMDIxMjc0NTY2NywgMC40ODAxNjUwMDQ3MzAyMjQ2LCAwLjg1ODg1Mjk4MjUyMTA1NzEsIC0wLjE3ODM2Mjk5NTM4NjEyMzY2LAorICAgICAgICAwLjcyODA5MTAwMTUxMDYyMDEsIDAuMDE1NTg0OTk5Njk1NDIwMjY1LCAtMC42ODUzMDI5NzI3OTM1NzkxLCAwLjQ4ODEwMzAwMjMwOTc5OTIsIDAuNDk3OTQ3MDA3NDE3Njc4ODMsIDAuNzE2ODAyMDAwOTk5NDUwNywKKyAgICAgICAgMC44ODg3Mzg5ODk4MzAwMTcxLCAwLjAxNjY3OTAwMDEwOTQzNDEyOCwgMC40NTgxMDg5OTEzODQ1MDYyLCAtMC4yMjIwMDQ5OTQ3NTAwMjI5LCAtMC4zNjE4OTQwMTE0OTc0OTc1NiwgMC45MDUzOTkwMjQ0ODY1NDE3LAorICAgICAgICAtMC4yNjAwOTgwMTAzMDE1ODk5NywgLTAuMDAwNzk5OTk5OTc5NzkwMzAwMSwgMC45NjU1ODIwMTMxMzAxODgsIC0wLjIzNTQwMzk5OTY4NjI0MTE1LCAtMC43MTA0NzY5OTQ1MTQ0NjUzLCAwLjY2MzE3OTk5MzYyOTQ1NTYsCisgICAgICAgIC0wLjM3MTYxMDk5OTEwNzM2MDg0LCAwLjAwNDQxNjk5OTg3Mjc3Mzg4NiwgMC45MjgzNzc5ODU5NTQyODQ3LCAwLjAwMzM4MDk5OTkwMDQwMDYzODYsIDAuOTc3NDU1MDE5OTUwODY2NywgMC4yMTExMTUwMDI2MzIxNDExLAorICAgICAgICAwLjA1ODcxOTAwMTcxMDQxNDg4NiwgMC44OTcxOTk5ODgzNjUxNzMzLCAwLjQzNzcwMzAxMzQyMDEwNSwgMC4wMDEzMjQ5OTk5NjEwNzA3MTY0LCAwLjE2NDAwMDAwNDUyOTk1MywgMC45ODY0NTkwMTY3OTk5MjY4LAorICAgICAgICAtMC4wNDQxODg5OTg2Mzk1ODM1OSwgLTAuNzMwMzE5MDIzMTMyMzI0MiwgMC42ODE2NzUwMTY4ODAwMzU0LCAwLjEzODgwMjAwNjg0MDcwNTg3LCAtMC45ODk3MzAwMDA0OTU5MTA2LCAtMC4wMzQxODkwMDA3MjU3NDYxNTUsCisgICAgICAgIC0wLjQyNDMwNDk5MTk2MDUyNTUsIDAuNjY2NzUwMDEzODI4Mjc3NiwgMC42MTI3MDcwMTg4NTIyMzM5LCAtMC4yNTg4ODg5ODk2ODY5NjU5NCwgMC41NDUzNzg5ODMwMjA3ODI1LCAwLjc5NzIwNTk4NDU5MjQzNzcsCisgICAgICAgIDAuMDEyMjY4MDAwMjgyMzQ3MjAyLCAtMC4wMTkyODUwMDA4NjA2OTEwNywgMC45OTk3Mzg5OTEyNjA1Mjg2LCAwLjM5ODYyOTk5MzIwMDMwMjEsIC0wLjg0NTY2MzAxMTA3NDA2NjIsIDAuMzU0ODkyOTk4OTMzNzkyMSwKKyAgICAgICAgMC41Mzc1NjM5Nzk2MjU3MDE5LCAtMC42MTA3MzcwMjU3Mzc3NjI1LCAtMC41ODEzOTkwMjM1MzI4Njc0LCAtMC42OTYxODg5ODYzMDE0MjIxLCAtMC4wMjQ0OTYwMDAyNjAxMTQ2NywgMC43MTc0NDAwMDkxMTcxMjY1LAorICAgICAgICAtMC40MjU3OTkwMTIxODQxNDMwNywgLTAuMDEwODA0OTk5NjE5NzIyMzY2LCAwLjkwNDc1MzAyOTM0NjQ2NjEsIDAuMDIyMDQxMDAwNDI1ODE1NTgyLCAtMC4wMDE2MjMwMDAwMTgyOTg2MjYsIDAuOTk5NzU1OTc4NTg0Mjg5NiwKKyAgICAgICAgMC45OTk1OTgwMjYyNzU2MzQ4LCAtMC4wMTE1NTYwMDA0NDg3NjMzNywgMC4wMjU4Nzg5OTkzODIyNTc0NiwgMC43MDk1ODYwMjQyODQzNjI4LCAtMC4wMDk2NzA5OTk4MzI0NTEzNDQsIC0wLjcwNDU1MTk5NDgwMDU2NzYsCisgICAgICAgIDAsIDAsIDEsIDAsIDAsIDEsCisgICAgICAgIDAuNzYyNjQxMDEyNjY4NjA5NiwgLTAuMzE0ODI0OTk4Mzc4NzUzNjYsIDAuNTY1MDMzOTcyMjYzMzM2MiwgMC44MjQ1NDAwMTkwMzUzMzk0LCAtMC4wMDAwMTcwMDAwMDAyOTgxMzk2NCwgMC41NjU4MDI5OTEzOTAyMjgzLAorICAgICAgICAwLjg0Nzk4MTk4OTM4MzY5NzUsIC0wLjM1MDAzMzk5ODQ4OTM3OTksIC0wLjM5Nzk5ODAwNTE1MTc0ODY2LCAwLjkxNzcwMTAwNTkzNTY2OSwgLTAuMDAwMDMzMDAwMDAwMjU3NzQzNTIsIC0wLjM5NzI3MTk5MDc3NjA2MiwKKyAgICAgICAgMC44NjQxNDA5ODczOTYyNDAyLCAtMC4zNTY0NDIwMDQ0NDIyMTQ5NywgLTAuMzU1MjYwMDE0NTMzOTk2NiwgMC45MzUyNjg5OTgxNDYwNTcxLCAtMC4wMDAxMTIwMDAwMDE1MzYyMTY1OSwgLTAuMzUzOTM4OTk2NzkxODM5NiwKKyAgICAgICAgMC43MjA5OTIwMjg3MTMyMjYzLCAtMC4yOTc5MzMwMTIyNDcwODU1NywgMC42MjU2MjUwMTQzMDUxMTQ3LCAwLjc4MDcxMjAwODQ3NjI1NzMsIC0wLjAwMDA3NTAwMDAwMzU2MjMwODg1LCAwLjYyNDg5MDk4MzEwNDcwNTgsCisgICAgICAgIDAsIDAsIDEsIDAuNTgzMzU2OTc2NTA5MDk0MiwgLTAuNTgzMzM4MDIyMjMyMDU1NywgMC41NjUxNjQ5ODMyNzI1NTI1LAorICAgICAgICAwLjY0ODQ4NTAwNDkwMTg4NiwgLTAuNjQ4NDQ3OTkwNDE3NDgwNSwgLTAuMzk4NzI1OTg2NDgwNzEyOSwgMC42NjA4NzE5ODI1NzQ0NjI5LCAtMC42NjA3NDgwMDQ5MTMzMzAxLCAtMC4zNTU4OTM5OTkzMzgxNSwKKyAgICAgICAgMC41NTE4NjMwMTQ2OTgwMjg2LCAtMC41NTE3Nzk5ODU0Mjc4NTY0LCAwLjYyNTI4ODAwOTY0MzU1NDcsIDAsIDAsIDEsCisgICAgICAgIDAuMzE0ODI0OTk4Mzc4NzUzNjYsIC0wLjc2MjYyODk3MjUzMDM2NSwgMC41NjUwNTEwMTkxOTE3NDE5LCAwLjM1MDA0NDk5NTU0NjM0MDk0LCAtMC44NDc5ODgwMDk0NTI4MTk4LCAtMC4zOTc5NzYwMTEwMzc4MjY1NCwKKyAgICAgICAgMC4zNTY0NzQwMTIxMzY0NTkzNSwgLTAuODY0MTUyMDE0MjU1NTIzNywgLTAuMzU1MTk5MDA5MTgwMDY4OTcsIDAuMjk3OTgyMDA3MjY1MDkwOTQsIC0wLjcyMTA2NzAxMTM1NjM1MzgsIDAuNjI1NTE0OTg0MTMwODU5NCwKKyAgICAgICAgMCwgMCwgMSwgLTAuMDAwMDE3MDAwMDAwMjk4MTM5NjQsIC0wLjgyNDU0MDAxOTAzNTMzOTQsIDAuNTY1ODAyOTkxMzkwMjI4MywKKyAgICAgICAgLTAuMDAwMDMzMDAwMDAwMjU3NzQzNTIsIC0wLjkxNzcwMTAwNTkzNTY2OSwgLTAuMzk3MjcxOTkwNzc2MDYyLCAtMC4wMDAxMTIwMDAwMDE1MzYyMTY1OSwgLTAuOTM1MjY4OTk4MTQ2MDU3MSwgLTAuMzUzOTM4OTk2NzkxODM5NiwKKyAgICAgICAgLTAuMDAwMDc1MDAwMDAzNTYyMzA4ODUsIC0wLjc4MDcxMjAwODQ3NjI1NzMsIDAuNjI0ODkwMDI5NDMwMzg5NCwgMCwgMCwgMSwKKyAgICAgICAgMCwgMCwgMSwgLTAuMzE0ODI0OTk4Mzc4NzUzNjYsIC0wLjc2MjY0MTAxMjY2ODYwOTYsIDAuNTY1MDMzOTcyMjYzMzM2MiwKKyAgICAgICAgLTAuMDAwMDE3MDAwMDAwMjk4MTM5NjQsIC0wLjgyNDU0MDAxOTAzNTMzOTQsIDAuNTY1ODAyOTkxMzkwMjI4MywgLTAuMzUwMDMzOTk4NDg5Mzc5OSwgLTAuODQ3OTgxOTg5MzgzNjk3NSwgLTAuMzk3OTk4MDA1MTUxNzQ4NjYsCisgICAgICAgIC0wLjAwMDAzMzAwMDAwMDI1Nzc0MzUyLCAtMC45MTc3MDEwMDU5MzU2NjksIC0wLjM5NzI3MTk5MDc3NjA2MiwgLTAuMzU2NDQyMDA0NDQyMjE0OTcsIC0wLjg2NDE0MDk4NzM5NjI0MDIsIC0wLjM1NTI2MDAxNDUzMzk5NjYsCisgICAgICAgIC0wLjAwMDExMjAwMDAwMTUzNjIxNjU5LCAtMC45MzUyNjg5OTgxNDYwNTcxLCAtMC4zNTM5Mzg5OTY3OTE4Mzk2LCAtMC4yOTc5MzMwMTIyNDcwODU1NywgLTAuNzIwOTkyMDI4NzEzMjI2MywgMC42MjU2MjUwMTQzMDUxMTQ3LAorICAgICAgICAtMC4wMDAwNzUwMDAwMDM1NjIzMDg4NSwgLTAuNzgwNzEyMDA4NDc2MjU3MywgMC42MjQ4OTAwMjk0MzAzODk0LCAwLCAwLCAxLAorICAgICAgICAtMC41ODMzMzgwMjIyMzIwNTU3LCAtMC41ODMzNTY5NzY1MDkwOTQyLCAwLjU2NTE2NDk4MzI3MjU1MjUsIC0wLjY0ODQ0Nzk5MDQxNzQ4MDUsIC0wLjY0ODQ4NTAwNDkwMTg4NiwgLTAuMzk4NzI1OTg2NDgwNzEyOSwKKyAgICAgICAgLTAuNjYwNzQ4MDA0OTEzMzMwMSwgLTAuNjYwODcxOTgyNTc0NDYyOSwgLTAuMzU1ODkzOTk5MzM4MTUsIC0wLjU1MTc3OTk4NTQyNzg1NjQsIC0wLjU1MTg2MzAxNDY5ODAyODYsIDAuNjI1Mjg4MDA5NjQzNTU0NywKKyAgICAgICAgMCwgMCwgMSwgLTAuNzYyNjI4OTcyNTMwMzY1LCAtMC4zMTQ4MjQ5OTgzNzg3NTM2NiwgMC41NjUwNTEwMTkxOTE3NDE5LAorICAgICAgICAtMC44NDc5ODgwMDk0NTI4MTk4LCAtMC4zNTAwNDQ5OTU1NDYzNDA5NCwgLTAuMzk3OTc2MDExMDM3ODI2NTQsIC0wLjg2NDE1MjAxNDI1NTUyMzcsIC0wLjM1NjQ3NDAxMjEzNjQ1OTM1LCAtMC4zNTUxOTkwMDkxODAwNjg5NywKKyAgICAgICAgLTAuNzIxMDY3MDExMzU2MzUzOCwgLTAuMjk3OTgyMDA3MjY1MDkwOTQsIDAuNjI1NTE0OTg0MTMwODU5NCwgMCwgMCwgMSwKKyAgICAgICAgLTAuODI0NTQwMDE5MDM1MzM5NCwgMC4wMDAwMTcwMDAwMDAyOTgxMzk2NCwgMC41NjU4MDI5OTEzOTAyMjgzLCAtMC45MTc3MDEwMDU5MzU2NjksIDAuMDAwMDMzMDAwMDAwMjU3NzQzNTIsIC0wLjM5NzI3MTk5MDc3NjA2MiwKKyAgICAgICAgLTAuOTM1MjY4OTk4MTQ2MDU3MSwgMC4wMDAxMTIwMDAwMDE1MzYyMTY1OSwgLTAuMzUzOTM4OTk2NzkxODM5NiwgLTAuNzgwNzEyMDA4NDc2MjU3MywgMC4wMDAwNzUwMDAwMDM1NjIzMDg4NSwgMC42MjQ4OTAwMjk0MzAzODk0LAorICAgICAgICAwLCAwLCAxLCAwLCAwLCAxLAorICAgICAgICAtMC43NjI2NDEwMTI2Njg2MDk2LCAwLjMxNDgyNDk5ODM3ODc1MzY2LCAwLjU2NTAzMzk3MjI2MzMzNjIsIC0wLjgyNDU0MDAxOTAzNTMzOTQsIDAuMDAwMDE3MDAwMDAwMjk4MTM5NjQsIDAuNTY1ODAyOTkxMzkwMjI4MywKKyAgICAgICAgLTAuODQ3OTgxOTg5MzgzNjk3NSwgMC4zNTAwMzM5OTg0ODkzNzk5LCAtMC4zOTc5OTgwMDUxNTE3NDg2NiwgLTAuOTE3NzAxMDA1OTM1NjY5LCAwLjAwMDAzMzAwMDAwMDI1Nzc0MzUyLCAtMC4zOTcyNzE5OTA3NzYwNjIsCisgICAgICAgIC0wLjg2NDE0MDk4NzM5NjI0MDIsIDAuMzU2NDQyMDA0NDQyMjE0OTcsIC0wLjM1NTI2MDAxNDUzMzk5NjYsIC0wLjkzNTI2ODk5ODE0NjA1NzEsIDAuMDAwMTEyMDAwMDAxNTM2MjE2NTksIC0wLjM1MzkzODk5Njc5MTgzOTYsCisgICAgICAgIC0wLjcyMDk5MjAyODcxMzIyNjMsIDAuMjk3OTMzMDEyMjQ3MDg1NTcsIDAuNjI1NjI1MDE0MzA1MTE0NywgLTAuNzgwNzEyMDA4NDc2MjU3MywgMC4wMDAwNzUwMDAwMDM1NjIzMDg4NSwgMC42MjQ4OTAwMjk0MzAzODk0LAorICAgICAgICAwLCAwLCAxLCAtMC41ODMzNTY5NzY1MDkwOTQyLCAwLjU4MzMzODAyMjIzMjA1NTcsIDAuNTY1MTY0OTgzMjcyNTUyNSwKKyAgICAgICAgLTAuNjQ4NDg1MDA0OTAxODg2LCAwLjY0ODQ0Nzk5MDQxNzQ4MDUsIC0wLjM5ODcyNTk4NjQ4MDcxMjksIC0wLjY2MDg3MTk4MjU3NDQ2MjksIDAuNjYwNzQ4MDA0OTEzMzMwMSwgLTAuMzU1ODkzOTk5MzM4MTUsCisgICAgICAgIC0wLjU1MTg2MzAxNDY5ODAyODYsIDAuNTUxNzc5OTg1NDI3ODU2NCwgMC42MjUyODgwMDk2NDM1NTQ3LCAwLCAwLCAxLAorICAgICAgICAtMC4zMTQ4MjQ5OTgzNzg3NTM2NiwgMC43NjI2Mjg5NzI1MzAzNjUsIDAuNTY1MDUxMDE5MTkxNzQxOSwgLTAuMzUwMDQ0OTk1NTQ2MzQwOTQsIDAuODQ3OTg4MDA5NDUyODE5OCwgLTAuMzk3OTc2MDExMDM3ODI2NTQsCisgICAgICAgIC0wLjM1NjQ3NDAxMjEzNjQ1OTM1LCAwLjg2NDE1MjAxNDI1NTUyMzcsIC0wLjM1NTE5OTAwOTE4MDA2ODk3LCAtMC4yOTc5ODIwMDcyNjUwOTA5NCwgMC43MjEwNjcwMTEzNTYzNTM4LCAwLjYyNTUxNDk4NDEzMDg1OTQsCisgICAgICAgIDAsIDAsIDEsIDAuMDAwMDE3MDAwMDAwMjk4MTM5NjQsIDAuODI0NTQwMDE5MDM1MzM5NCwgMC41NjU4MDI5OTEzOTAyMjgzLAorICAgICAgICAwLjAwMDAzMzAwMDAwMDI1Nzc0MzUyLCAwLjkxNzcwMTAwNTkzNTY2OSwgLTAuMzk3MjcxOTkwNzc2MDYyLCAwLjAwMDExMjAwMDAwMTUzNjIxNjU5LCAwLjkzNTI2ODk5ODE0NjA1NzEsIC0wLjM1MzkzODk5Njc5MTgzOTYsCisgICAgICAgIDAuMDAwMDc1MDAwMDAzNTYyMzA4ODUsIDAuNzgwNzEyMDA4NDc2MjU3MywgMC42MjQ4OTAwMjk0MzAzODk0LCAwLCAwLCAxLAorICAgICAgICAwLCAwLCAxLCAwLjMxNDgyNDk5ODM3ODc1MzY2LCAwLjc2MjY0MTAxMjY2ODYwOTYsIDAuNTY1MDMzOTcyMjYzMzM2MiwKKyAgICAgICAgMC4wMDAwMTcwMDAwMDAyOTgxMzk2NCwgMC44MjQ1NDAwMTkwMzUzMzk0LCAwLjU2NTgwMjk5MTM5MDIyODMsIDAuMzUwMDMzOTk4NDg5Mzc5OSwgMC44NDc5ODE5ODkzODM2OTc1LCAtMC4zOTc5OTgwMDUxNTE3NDg2NiwKKyAgICAgICAgMC4wMDAwMzMwMDAwMDAyNTc3NDM1MiwgMC45MTc3MDEwMDU5MzU2NjksIC0wLjM5NzI3MTk5MDc3NjA2MiwgMC4zNTY0NDIwMDQ0NDIyMTQ5NywgMC44NjQxNDA5ODczOTYyNDAyLCAtMC4zNTUyNjAwMTQ1MzM5OTY2LAorICAgICAgICAwLjAwMDExMjAwMDAwMTUzNjIxNjU5LCAwLjkzNTI2ODk5ODE0NjA1NzEsIC0wLjM1MzkzODk5Njc5MTgzOTYsIDAuMjk3OTMzMDEyMjQ3MDg1NTcsIDAuNzIwOTkyMDI4NzEzMjI2MywgMC42MjU2MjUwMTQzMDUxMTQ3LAorICAgICAgICAwLjAwMDA3NTAwMDAwMzU2MjMwODg1LCAwLjc4MDcxMjAwODQ3NjI1NzMsIDAuNjI0ODkwMDI5NDMwMzg5NCwgMCwgMCwgMSwKKyAgICAgICAgMC41ODMzMzgwMjIyMzIwNTU3LCAwLjU4MzM1Njk3NjUwOTA5NDIsIDAuNTY1MTY0OTgzMjcyNTUyNSwgMC42NDg0NDc5OTA0MTc0ODA1LCAwLjY0ODQ4NTAwNDkwMTg4NiwgLTAuMzk4NzI1OTg2NDgwNzEyOSwKKyAgICAgICAgMC42NjA3NDgwMDQ5MTMzMzAxLCAwLjY2MDg3MTk4MjU3NDQ2MjksIC0wLjM1NTg5Mzk5OTMzODE1LCAwLjU1MTc3OTk4NTQyNzg1NjQsIDAuNTUxODYzMDE0Njk4MDI4NiwgMC42MjUyODgwMDk2NDM1NTQ3LAorICAgICAgICAwLCAwLCAxLCAwLjc2MjYyODk3MjUzMDM2NSwgMC4zMTQ4MjQ5OTgzNzg3NTM2NiwgMC41NjUwNTEwMTkxOTE3NDE5LAorICAgICAgICAwLjg0Nzk4ODAwOTQ1MjgxOTgsIDAuMzUwMDQ0OTk1NTQ2MzQwOTQsIC0wLjM5Nzk3NjAxMTAzNzgyNjU0LCAwLjg2NDE1MjAxNDI1NTUyMzcsIDAuMzU2NDc0MDEyMTM2NDU5MzUsIC0wLjM1NTE5OTAwOTE4MDA2ODk3LAorICAgICAgICAwLjcyMTA2NzAxMTM1NjM1MzgsIDAuMjk3OTgyMDA3MjY1MDkwOTQsIDAuNjI1NTE0OTg0MTMwODU5NCwgMCwgMCwgMSwKKyAgICAgICAgMC44MjQ1NDAwMTkwMzUzMzk0LCAtMC4wMDAwMTcwMDAwMDAyOTgxMzk2NCwgMC41NjU4MDI5OTEzOTAyMjgzLCAwLjkxNzcwMTAwNTkzNTY2OSwgLTAuMDAwMDMzMDAwMDAwMjU3NzQzNTIsIC0wLjM5NzI3MTk5MDc3NjA2MiwKKyAgICAgICAgMC45MzUyNjg5OTgxNDYwNTcxLCAtMC4wMDAxMTIwMDAwMDE1MzYyMTY1OSwgLTAuMzUzOTM4OTk2NzkxODM5NiwgMC43ODA3MTIwMDg0NzYyNTczLCAtMC4wMDAwNzUwMDAwMDM1NjIzMDg4NSwgMC42MjQ4OTA5ODMxMDQ3MDU4LAorICAgICAgICAwLjc4MDcxMjAwODQ3NjI1NzMsIC0wLjAwMDA3NTAwMDAwMzU2MjMwODg1LCAwLjYyNDg5MDk4MzEwNDcwNTgsIDAuNzIwOTkyMDI4NzEzMjI2MywgLTAuMjk3OTMzMDEyMjQ3MDg1NTcsIDAuNjI1NjI1MDE0MzA1MTE0NywKKyAgICAgICAgMC4yMTc5NzgwMDA2NDA4NjkxNCwgLTAuMDkwMjE2MDAzMzU4MzY0MSwgMC45NzE3NzQ5OTUzMjY5OTU4LCAwLjIzNjU4Mjk5NDQ2MTA1OTU3LCAwLCAwLjk3MTYxMTAyMjk0OTIxODgsCisgICAgICAgIDAuMTU5NTg4OTkyNTk1NjcyNiwgLTAuMDY1OTYxMDAzMzAzNTI3ODMsIDAuOTg0OTc3MDA2OTEyMjMxNCwgMC4xNzMwODQwMDU3MTM0NjI4MywgMCwgMC45ODQ5MDY5NzE0NTQ2MjA0LAorICAgICAgICAwLjM1MDQ5Nzk5MDg0NjYzMzksIC0wLjE0NDc0MDAwMDM2NzE2NDYsIDAuOTI1MzExOTgyNjMxNjgzMywgMC4zNzk3MDI5ODUyODY3MTI2NSwgMCwgMC45MjUxMDgwMTU1MzcyNjIsCisgICAgICAgIDAuNDg1NTg4OTk3NjAyNDYyNzcsIC0wLjIwMTQ3Mzk5NjA0MzIwNTI2LCAwLjg1MDY1Mjk5MjcyNTM3MjMsIDAuNTI2NjcyMDA1NjUzMzgxMywgMCwgMC44NTAwNjc5NzMxMzY5MDE5LAorICAgICAgICAwLjU1MTg2MzAxNDY5ODAyODYsIC0wLjU1MTc3OTk4NTQyNzg1NjQsIDAuNjI1Mjg4MDA5NjQzNTU0NywgMC4xNjY2MzA5OTgyNTM4MjIzMywgLTAuMTY2NjMwOTk4MjUzODIyMzMsIDAuOTcxODM3OTk3NDM2NTIzNCwKKyAgICAgICAgMC4xMjE5MDgwMDE2MDE2OTYwMSwgLTAuMTIxOTA4MDAxNjAxNjk2MDEsIDAuOTg1MDI2MDAxOTMwMjM2OCwgMC4yNjc2NjgwMDg4MDQzMjEzLCAtMC4yNjc2NjgwMDg4MDQzMjEzLCAwLjkyNTU4NDk3MTkwNDc1NDYsCisgICAgICAgIDAuMzcxMzE1MDAyNDQxNDA2MjUsIC0wLjM3MTMxNTAwMjQ0MTQwNjI1LCAwLjg1MTAyODk3ODgyNDYxNTUsIDAuMjk3OTgyMDA3MjY1MDkwOTQsIC0wLjcyMTA2NzAxMTM1NjM1MzgsIDAuNjI1NTE0OTg0MTMwODU5NCwKKyAgICAgICAgMC4wOTAyMTYwMDMzNTgzNjQxLCAtMC4yMTc5NzgwMDA2NDA4NjkxNCwgMC45NzE3NzQ5OTUzMjY5OTU4LCAwLjA2NTk2MTAwMzMwMzUyNzgzLCAtMC4xNTk1ODg5OTI1OTU2NzI2LCAwLjk4NDk3NzAwNjkxMjIzMTQsCisgICAgICAgIDAuMTQ0NzQwMDAwMzY3MTY0NiwgLTAuMzUwNDk3OTkwODQ2NjMzOSwgMC45MjUzMTE5ODI2MzE2ODMzLCAwLjIwMTQ3Mzk5NjA0MzIwNTI2LCAtMC40ODU1ODg5OTc2MDI0NjI3NywgMC44NTA2NTI5OTI3MjUzNzIzLAorICAgICAgICAtMC4wMDAwNzUwMDAwMDM1NjIzMDg4NSwgLTAuNzgwNzEyMDA4NDc2MjU3MywgMC42MjQ4OTAwMjk0MzAzODk0LCAwLCAtMC4yMzY1ODI5OTQ0NjEwNTk1NywgMC45NzE2MTEwMjI5NDkyMTg4LAorICAgICAgICAwLCAtMC4xNzMwODQwMDU3MTM0NjI4MywgMC45ODQ5MDY5NzE0NTQ2MjA0LCAwLCAtMC4zNzk3MDI5ODUyODY3MTI2NSwgMC45MjUxMDgwMTU1MzcyNjIsCisgICAgICAgIDAsIC0wLjUyNjY3MjAwNTY1MzM4MTMsIDAuODUwMDY3OTczMTM2OTAxOSwgLTAuMDAwMDc1MDAwMDAzNTYyMzA4ODUsIC0wLjc4MDcxMjAwODQ3NjI1NzMsIDAuNjI0ODkwMDI5NDMwMzg5NCwKKyAgICAgICAgLTAuMjk3OTMzMDEyMjQ3MDg1NTcsIC0wLjcyMDk5MjAyODcxMzIyNjMsIDAuNjI1NjI1MDE0MzA1MTE0NywgLTAuMDkwMjE2MDAzMzU4MzY0MSwgLTAuMjE3OTc4MDAwNjQwODY5MTQsIDAuOTcxNzc0OTk1MzI2OTk1OCwKKyAgICAgICAgMCwgLTAuMjM2NTgyOTk0NDYxMDU5NTcsIDAuOTcxNjExMDIyOTQ5MjE4OCwgLTAuMDY1OTYxMDAzMzAzNTI3ODMsIC0wLjE1OTU4ODk5MjU5NTY3MjYsIDAuOTg0OTc3MDA2OTEyMjMxNCwKKyAgICAgICAgMCwgLTAuMTczMDg0MDA1NzEzNDYyODMsIDAuOTg0OTA2OTcxNDU0NjIwNCwgLTAuMTQ0NzQwMDAwMzY3MTY0NiwgLTAuMzUwNDk3OTkwODQ2NjMzOSwgMC45MjUzMTE5ODI2MzE2ODMzLAorICAgICAgICAwLCAtMC4zNzk3MDI5ODUyODY3MTI2NSwgMC45MjUxMDgwMTU1MzcyNjIsIC0wLjIwMTQ3Mzk5NjA0MzIwNTI2LCAtMC40ODU1ODg5OTc2MDI0NjI3NywgMC44NTA2NTI5OTI3MjUzNzIzLAorICAgICAgICAwLCAtMC41MjY2NzIwMDU2NTMzODEzLCAwLjg1MDA2Nzk3MzEzNjkwMTksIC0wLjU1MTc3OTk4NTQyNzg1NjQsIC0wLjU1MTg2MzAxNDY5ODAyODYsIDAuNjI1Mjg4MDA5NjQzNTU0NywKKyAgICAgICAgLTAuMTY2NjMwOTk4MjUzODIyMzMsIC0wLjE2NjYzMDk5ODI1MzgyMjMzLCAwLjk3MTgzNzk5NzQzNjUyMzQsIC0wLjEyMTkwODAwMTYwMTY5NjAxLCAtMC4xMjE5MDgwMDE2MDE2OTYwMSwgMC45ODUwMjYwMDE5MzAyMzY4LAorICAgICAgICAtMC4yNjc2NjgwMDg4MDQzMjEzLCAtMC4yNjc2NjgwMDg4MDQzMjEzLCAwLjkyNTU4NDk3MTkwNDc1NDYsIC0wLjM3MTMxNTAwMjQ0MTQwNjI1LCAtMC4zNzEzMTUwMDI0NDE0MDYyNSwgMC44NTEwMjg5Nzg4MjQ2MTU1LAorICAgICAgICAtMC43MjEwNjcwMTEzNTYzNTM4LCAtMC4yOTc5ODIwMDcyNjUwOTA5NCwgMC42MjU1MTQ5ODQxMzA4NTk0LCAtMC4yMTc5NzgwMDA2NDA4NjkxNCwgLTAuMDkwMjE2MDAzMzU4MzY0MSwgMC45NzE3NzQ5OTUzMjY5OTU4LAorICAgICAgICAtMC4xNTk1ODg5OTI1OTU2NzI2LCAtMC4wNjU5NjEwMDMzMDM1Mjc4MywgMC45ODQ5NzcwMDY5MTIyMzE0LCAtMC4zNTA0OTc5OTA4NDY2MzM5LCAtMC4xNDQ3NDAwMDAzNjcxNjQ2LCAwLjkyNTMxMTk4MjYzMTY4MzMsCisgICAgICAgIC0wLjQ4NTU4ODk5NzYwMjQ2Mjc3LCAtMC4yMDE0NzM5OTYwNDMyMDUyNiwgMC44NTA2NTI5OTI3MjUzNzIzLCAtMC43ODA3MTIwMDg0NzYyNTczLCAwLjAwMDA3NTAwMDAwMzU2MjMwODg1LCAwLjYyNDg5MDAyOTQzMDM4OTQsCisgICAgICAgIC0wLjIzNjU4Mjk5NDQ2MTA1OTU3LCAwLCAwLjk3MTYxMTAyMjk0OTIxODgsIC0wLjE3MzA4NDAwNTcxMzQ2MjgzLCAwLCAwLjk4NDkwNjk3MTQ1NDYyMDQsCisgICAgICAgIC0wLjM3OTcwMjk4NTI4NjcxMjY1LCAwLCAwLjkyNTEwODAxNTUzNzI2MiwgLTAuNTI2NjcyMDA1NjUzMzgxMywgMCwgMC44NTAwNjc5NzMxMzY5MDE5LAorICAgICAgICAtMC43ODA3MTIwMDg0NzYyNTczLCAwLjAwMDA3NTAwMDAwMzU2MjMwODg1LCAwLjYyNDg5MDAyOTQzMDM4OTQsIC0wLjcyMDk5MjAyODcxMzIyNjMsIDAuMjk3OTMzMDEyMjQ3MDg1NTcsIDAuNjI1NjI1MDE0MzA1MTE0NywKKyAgICAgICAgLTAuMjE3OTc4MDAwNjQwODY5MTQsIDAuMDkwMjE2MDAzMzU4MzY0MSwgMC45NzE3NzQ5OTUzMjY5OTU4LCAtMC4yMzY1ODI5OTQ0NjEwNTk1NywgMCwgMC45NzE2MTEwMjI5NDkyMTg4LAorICAgICAgICAtMC4xNTk1ODg5OTI1OTU2NzI2LCAwLjA2NTk2MTAwMzMwMzUyNzgzLCAwLjk4NDk3NzAwNjkxMjIzMTQsIC0wLjE3MzA4NDAwNTcxMzQ2MjgzLCAwLCAwLjk4NDkwNjk3MTQ1NDYyMDQsCisgICAgICAgIC0wLjM1MDQ5Nzk5MDg0NjYzMzksIDAuMTQ0NzQwMDAwMzY3MTY0NiwgMC45MjUzMTE5ODI2MzE2ODMzLCAtMC4zNzk3MDI5ODUyODY3MTI2NSwgMCwgMC45MjUxMDgwMTU1MzcyNjIsCisgICAgICAgIC0wLjQ4NTU4ODk5NzYwMjQ2Mjc3LCAwLjIwMTQ3Mzk5NjA0MzIwNTI2LCAwLjg1MDY1Mjk5MjcyNTM3MjMsIC0wLjUyNjY3MjAwNTY1MzM4MTMsIDAsIDAuODUwMDY3OTczMTM2OTAxOSwKKyAgICAgICAgLTAuNTUxODYzMDE0Njk4MDI4NiwgMC41NTE3Nzk5ODU0Mjc4NTY0LCAwLjYyNTI4ODAwOTY0MzU1NDcsIC0wLjE2NjYzMDk5ODI1MzgyMjMzLCAwLjE2NjYzMDk5ODI1MzgyMjMzLCAwLjk3MTgzNzk5NzQzNjUyMzQsCisgICAgICAgIC0wLjEyMTkwODAwMTYwMTY5NjAxLCAwLjEyMTkwODAwMTYwMTY5NjAxLCAwLjk4NTAyNjAwMTkzMDIzNjgsIC0wLjI2NzY2ODAwODgwNDMyMTMsIDAuMjY3NjY4MDA4ODA0MzIxMywgMC45MjU1ODQ5NzE5MDQ3NTQ2LAorICAgICAgICAtMC4zNzEzMTUwMDI0NDE0MDYyNSwgMC4zNzEzMTUwMDI0NDE0MDYyNSwgMC44NTEwMjg5Nzg4MjQ2MTU1LCAtMC4yOTc5ODIwMDcyNjUwOTA5NCwgMC43MjEwNjcwMTEzNTYzNTM4LCAwLjYyNTUxNDk4NDEzMDg1OTQsCisgICAgICAgIC0wLjA5MDIxNjAwMzM1ODM2NDEsIDAuMjE3OTc4MDAwNjQwODY5MTQsIDAuOTcxNzc0OTk1MzI2OTk1OCwgLTAuMDY1OTYxMDAzMzAzNTI3ODMsIDAuMTU5NTg4OTkyNTk1NjcyNiwgMC45ODQ5NzcwMDY5MTIyMzE0LAorICAgICAgICAtMC4xNDQ3NDAwMDAzNjcxNjQ2LCAwLjM1MDQ5Nzk5MDg0NjYzMzksIDAuOTI1MzExOTgyNjMxNjgzMywgLTAuMjAxNDczOTk2MDQzMjA1MjYsIDAuNDg1NTg4OTk3NjAyNDYyNzcsIDAuODUwNjUyOTkyNzI1MzcyMywKKyAgICAgICAgMC4wMDAwNzUwMDAwMDM1NjIzMDg4NSwgMC43ODA3MTIwMDg0NzYyNTczLCAwLjYyNDg5MDAyOTQzMDM4OTQsIDAsIDAuMjM2NTgyOTk0NDYxMDU5NTcsIDAuOTcxNjExMDIyOTQ5MjE4OCwKKyAgICAgICAgMCwgMC4xNzMwODQwMDU3MTM0NjI4MywgMC45ODQ5MDY5NzE0NTQ2MjA0LCAwLCAwLjM3OTcwMjk4NTI4NjcxMjY1LCAwLjkyNTEwODAxNTUzNzI2MiwKKyAgICAgICAgMCwgMC41MjY2NzIwMDU2NTMzODEzLCAwLjg1MDA2Nzk3MzEzNjkwMTksIDAuMDAwMDc1MDAwMDAzNTYyMzA4ODUsIDAuNzgwNzEyMDA4NDc2MjU3MywgMC42MjQ4OTAwMjk0MzAzODk0LAorICAgICAgICAwLjI5NzkzMzAxMjI0NzA4NTU3LCAwLjcyMDk5MjAyODcxMzIyNjMsIDAuNjI1NjI1MDE0MzA1MTE0NywgMC4wOTAyMTYwMDMzNTgzNjQxLCAwLjIxNzk3ODAwMDY0MDg2OTE0LCAwLjk3MTc3NDk5NTMyNjk5NTgsCisgICAgICAgIDAsIDAuMjM2NTgyOTk0NDYxMDU5NTcsIDAuOTcxNjExMDIyOTQ5MjE4OCwgMC4wNjU5NjEwMDMzMDM1Mjc4MywgMC4xNTk1ODg5OTI1OTU2NzI2LCAwLjk4NDk3NzAwNjkxMjIzMTQsCisgICAgICAgIDAsIDAuMTczMDg0MDA1NzEzNDYyODMsIDAuOTg0OTA2OTcxNDU0NjIwNCwgMC4xNDQ3NDAwMDAzNjcxNjQ2LCAwLjM1MDQ5Nzk5MDg0NjYzMzksIDAuOTI1MzExOTgyNjMxNjgzMywKKyAgICAgICAgMCwgMC4zNzk3MDI5ODUyODY3MTI2NSwgMC45MjUxMDgwMTU1MzcyNjIsIDAuMjAxNDczOTk2MDQzMjA1MjYsIDAuNDg1NTg4OTk3NjAyNDYyNzcsIDAuODUwNjUyOTkyNzI1MzcyMywKKyAgICAgICAgMCwgMC41MjY2NzIwMDU2NTMzODEzLCAwLjg1MDA2Nzk3MzEzNjkwMTksIDAuNTUxNzc5OTg1NDI3ODU2NCwgMC41NTE4NjMwMTQ2OTgwMjg2LCAwLjYyNTI4ODAwOTY0MzU1NDcsCisgICAgICAgIDAuMTY2NjMwOTk4MjUzODIyMzMsIDAuMTY2NjMwOTk4MjUzODIyMzMsIDAuOTcxODM3OTk3NDM2NTIzNCwgMC4xMjE5MDgwMDE2MDE2OTYwMSwgMC4xMjE5MDgwMDE2MDE2OTYwMSwgMC45ODUwMjYwMDE5MzAyMzY4LAorICAgICAgICAwLjI2NzY2ODAwODgwNDMyMTMsIDAuMjY3NjY4MDA4ODA0MzIxMywgMC45MjU1ODQ5NzE5MDQ3NTQ2LCAwLjM3MTMxNTAwMjQ0MTQwNjI1LCAwLjM3MTMxNTAwMjQ0MTQwNjI1LCAwLjg1MTAyODk3ODgyNDYxNTUsCisgICAgICAgIDAuNzIxMDY3MDExMzU2MzUzOCwgMC4yOTc5ODIwMDcyNjUwOTA5NCwgMC42MjU1MTQ5ODQxMzA4NTk0LCAwLjIxNzk3ODAwMDY0MDg2OTE0LCAwLjA5MDIxNjAwMzM1ODM2NDEsIDAuOTcxNzc0OTk1MzI2OTk1OCwKKyAgICAgICAgMC4xNTk1ODg5OTI1OTU2NzI2LCAwLjA2NTk2MTAwMzMwMzUyNzgzLCAwLjk4NDk3NzAwNjkxMjIzMTQsIDAuMzUwNDk3OTkwODQ2NjMzOSwgMC4xNDQ3NDAwMDAzNjcxNjQ2LCAwLjkyNTMxMTk4MjYzMTY4MzMsCisgICAgICAgIDAuNDg1NTg4OTk3NjAyNDYyNzcsIDAuMjAxNDczOTk2MDQzMjA1MjYsIDAuODUwNjUyOTkyNzI1MzcyMywgMC43ODA3MTIwMDg0NzYyNTczLCAtMC4wMDAwNzUwMDAwMDM1NjIzMDg4NSwgMC42MjQ4OTA5ODMxMDQ3MDU4LAorICAgICAgICAwLjIzNjU4Mjk5NDQ2MTA1OTU3LCAwLCAwLjk3MTYxMTAyMjk0OTIxODgsIDAuMTczMDg0MDA1NzEzNDYyODMsIDAsIDAuOTg0OTA2OTcxNDU0NjIwNCwKKyAgICAgICAgMC4zNzk3MDI5ODUyODY3MTI2NSwgMCwgMC45MjUxMDgwMTU1MzcyNjIsIDAuNTI2NjcyMDA1NjUzMzgxMywgMCwgMC44NTAwNjc5NzMxMzY5MDE5IH07CisKK2Zsb2F0IHRlYXBvdFRhbmdlbnRzW10gPSB7IDAuMDEyODk3OTk5OTU3MjAzODY1LCAwLjk5ODcyNzAyMzYwMTUzMiwgLTAuMDQ4NzU3MDAxNzU3NjIxNzY1LCAwLjM4NjE5MTAxMDQ3NTE1ODcsIDAuOTIxMDA3OTkwODM3MDk3MiwgLTAuMDE2NDIxOTk5NzgyMzIzODM3LAorICAgICAgICAwLjM4MTM2Mzk4NzkyMjY2ODQ2LCAwLjkyMzAwODk3ODM2Njg1MTgsIDAuMDAwMTU1OTk5OTk0NjAzOTE3LCAwLjAxMjg2Njk5OTk1Mzk4NTIxNCwgMC45OTg3MzAwMDM4MzM3NzA4LCAwLjA0ODcwMjAwMTU3MTY1NTI3LAorICAgICAgICAwLjM3NTA3OTAwNTk1NjY0OTgsIDAuOTA2MTcxMDIzODQ1NjcyNiwgLTAuMDAwNzE2OTk5OTg4MDcxNjIwNSwgMC4xOTIxMDEwMDE3Mzk1MDE5NSwgMC45ODEyMTM5ODY4NzM2MjY3LCAwLjAxNzc1OTAwMDg4MjUwNjM3LAorICAgICAgICAwLjM3ODI2MjAxMzE5Njk0NTIsIDAuOTE0Mjk0MDA0NDQwMzA3NiwgLTAuMDAwMTEzMDAwMDAxODc0NzUyMzQsIDAuMTA0NTE1MDAxMTc3Nzg3NzgsIDAuOTg5NzM1MDA3Mjg2MDcxOCwgLTAuMDk3NDc0OTk5NzI1ODE4NjMsCisgICAgICAgIDAuMzY1NTkzOTk5NjI0MjUyMywgMC45MjU3MTkwMjI3NTA4NTQ1LCAwLjAyODQ2MzAwMDQzMTY1NjgzNywgMC4wNDc2NzE5OTk3ODIzMjM4NCwgMC45OTUzMDUwMDE3MzU2ODczLCAtMC4wODQyMzgwMDAyMTQwOTk4OCwKKyAgICAgICAgMC43MDkyNjc5NzM4OTk4NDEzLCAwLjcwMzExOTk5MzIwOTgzODksIC0wLjAxNjM2NDAwMDczNzY2NzA4NCwgMC43MDYxOTg5OTAzNDUwMDEyLCAwLjcwNjE5ODk5MDM0NTAwMTIsIDAsCisgICAgICAgIDAuNjkzNzM2MDE2NzUwMzM1NywgMC42OTM3MzYwMTY3NTAzMzU3LCAwLCAwLjY5OTc3NzAwNzEwMjk2NjMsIDAuNjk5Nzc3MDA3MTAyOTY2MywgMCwKKyAgICAgICAgMC42OTI0MDMwMTg0NzQ1Nzg5LCAwLjcxNTA4NTk4MzI3NjM2NzIsIDAuMDI4MjI5MDAwMDQ2ODQ5MjUsIDAuOTI0MzU0MDE2NzgwODUzMywgMC4zNzgxMDQwMDEyODM2NDU2MywgLTAuMDE2NTc4MDAwMDM4ODYyMjMsCisgICAgICAgIDAuOTIzMDA4OTc4MzY2ODUxOCwgMC4zODEzNjM5ODc5MjI2Njg0NiwgLTAuMDAwMTU1OTk5OTk0NjAzOTE3LCAwLjkwNjE3MTAyMzg0NTY3MjYsIDAuMzc1MDc5MDA1OTU2NjQ5OCwgMC4wMDA3MTY5OTk5ODgwNzE2MjA1LAorICAgICAgICAwLjkxNDI5NDAwNDQ0MDMwNzYsIDAuMzc4MjYyMDEzMTk2OTQ1MiwgMC4wMDAxMTMwMDAwMDE4NzQ3NTIzNCwgMC45MTMzNjYwMTk3MjU3OTk2LCAwLjM5NTQ0NDAwNTcyNzc2Nzk0LCAwLjAyODQ5MDk5OTcxMzU0MDA3NywKKyAgICAgICAgMC45OTg3MDQwMTYyMDg2NDg3LCAwLjAxNTg1MzAwMDgwNDc4MTkxNCwgMC4wNDgzNjk5OTk5NzQ5NjYwNSwgMC45OTg3MzY5Nzc1NzcyMDk1LCAwLjAxNDY0OTAwMDAxODgzNTA2OCwgLTAuMDQ4MDY5OTk4NjIxOTQwNjEsCisgICAgICAgIDAuOTgxMjE1MDAwMTUyNTg3OSwgMC4xOTIxMTcwMDU1ODY2MjQxNSwgLTAuMDE3NTQwMDAwMzc5MDg1NTQsIDAuOTg5NzM1MDA3Mjg2MDcxOCwgMC4xMDQ1MjgwMDI0NDA5Mjk0MSwgMC4wOTc0NTc5OTc1MDA4OTY0NSwKKyAgICAgICAgMC45OTUzMDUwMDE3MzU2ODczLCAwLjA0NzY3MTk5OTc4MjMyMzg0LCAwLjA4NDIzODAwMDIxNDA5OTg4LCAwLjk5ODgxNzk4MDI4OTQ1OTIsIC0wLjAwOTc1ODk5OTU3MTIwNDE4NSwgLTAuMDQ3NjAwMDAxMDk2NzI1NDY0LAorICAgICAgICAwLjkwOTQ2Nzk5NTE2Njc3ODYsIC0wLjQwOTU4Mzk4NTgwNTUxMTUsIC0wLjAxMjYzNjk5OTU5OTYzNTYwMSwgMC45MjQwMDkwMjUwOTY4OTMzLCAtMC4zODExNTA5OTA3MjQ1NjM2LCAtMC4wMDAzMTUwMDAwMTIwNTEzMTQxLAorICAgICAgICAwLjk5ODc4OTAxMjQzMjA5ODQsIC0wLjAxMDY2Mjk5OTkzNTQ0ODE3LCAwLjA0ODAxODAwMTAxOTk1NDY4LCAwLjkwNzIyNjk3OTczMjUxMzQsIC0wLjM3MTQyMzAwNjA1NzczOTI2LCAwLjAyMDczMTAwMDIyOTcxNjMsCisgICAgICAgIDAuOTgxNDM1MDAwODk2NDUzOSwgLTAuMTkwOTUyMDAzMDAyMTY2NzUsIDAuMDE3OTU3MDAwMDYxODY5NjIsIDAuOTE0ODcwMDIzNzI3NDE3LCAtMC4zNzcxNDQwMDg4NzQ4OTMyLCAtMC4wMDExNDgwMDAwMTAyODkyNTE4LAorICAgICAgICAwLjk4OTc0OTAxNDM3NzU5NCwgLTAuMTA0NDI0OTk4MTY0MTc2OTQsIC0wLjA5NzQyNzAwMzA4NTYxMzI1LCAwLjkyNTgxNTk5OTUwNzkwNCwgLTAuMzY1Mzk1MDA5NTE3NjY5NywgMC4wMjgzMDgwMDA0MTU1NjM1ODMsCisgICAgICAgIDAuOTk1MzA1MDAxNzM1Njg3MywgLTAuMDQ3NjcxOTk5NzgyMzIzODQsIC0wLjA4NDIzODAwMDIxNDA5OTg4LCAwLjY3Njg5Mjk5NTgzNDM1MDYsIC0wLjczMTQwMjk5MzIwMjIwOTUsIC0wLjAxOTg4NzAwMDMyMjM0MTkyLAorICAgICAgICAwLjY5OTQ2MTk5NjU1NTMyODQsIC0wLjcxNDUxNDAxNzEwNTEwMjUsIC0wLjAwMDI5Nzk5OTk5OTAyMDI0ODY1LCAwLjY5NDA1OTAxNDMyMDM3MzUsIC0wLjY5MzM5Nzk5ODgwOTgxNDUsIDAuMDE1NTYwMDAwMjAzNTQ5ODYyLAorICAgICAgICAwLjcwMDI1ODAxNjU4NjMwMzcsIC0wLjY5OTYzMDAyMjA0ODk1MDIsIC0wLjAwMDc4Mzk5OTk3NDM3MzcyOCwgMC43MTUxNDIwMTE2NDI0NTYsIC0wLjY5MjM4Njk4NDgyNTEzNDMsIDAuMDI4MDc4OTk5MzcwMzM2NTMzLAorICAgICAgICAwLjM1MTkzNjAxMjUwNjQ4NSwgLTAuOTMzODk5OTk4NjY0ODU2LCAtMC4wMTk4NDM5OTkyOTY0MjY3NzMsIDAuMzY2NTQwMDE0NzQzODA0OTMsIC0wLjkyOTg0MTk5NTIzOTI1NzgsIC0wLjAwMDUyMTAwMDAwOTAzMDEwMzcsCisgICAgICAgIDAuMzcxMTY5MDAwODY0MDI4OTMsIC0wLjkwODQ4MzAyODQxMTg2NTIsIDAuMDAxNTIyOTk5OTU1MzQxMjIsIDAuMzc3NjQ3OTk1OTQ4NzkxNSwgLTAuOTE0NzY1MDAwMzQzMzIyOCwgLTAuMDAwMTEwMDAwMDAwODU5MTQ1MDgsCisgICAgICAgIDAuMzk1MzM2OTg1NTg4MDczNzMsIC0wLjkxMzQzNDk4MjI5OTgwNDcsIDAuMDI4NDEwOTk5MTA0MzgwNjA4LCAwLjAwMTMyMTAwMDA0NzAyODA2NDcsIC0wLjk5ODk0Nzk3ODAxOTcxNDQsIDAuMDQ1ODMwOTk4NTY5NzI2OTQ0LAorICAgICAgICAwLjAwMzg5NzAwMDEwNDE4ODkxOSwgLTAuOTk4ODkwOTk1OTc5MzA5MSwgLTAuMDQ2OTAyOTk5MjgxODgzMjQsIDAuMTg3MDU5OTk4NTEyMjY4MDcsIC0wLjk4MjE2MzAxMjAyNzc0MDUsIC0wLjAxODgxODAwMDMzMTUyMTAzNCwKKyAgICAgICAgMC4xMDM2Mzk5OTc1NDE5MDQ0NSwgLTAuOTg5ODU3OTcxNjY4MjQzNCwgMC4wOTcxNTQ5OTcyODkxODA3NiwgMC4wNDc1NzcwMDExNTQ0MjI3NiwgLTAuOTk1MzEyOTg4NzU4MDg3MiwgMC4wODQxODc5OTkzNjc3MTM5MywKKyAgICAgICAgLTAuMDIyOTY2OTk5NTYwNTk0NTYsIC0wLjk5ODY3ODAyODU4MzUyNjYsIC0wLjA0NTk5MTk5ODE2NTg0NTg3LCAtMC4zODYxOTEwMTA0NzUxNTg3LCAtMC45MjEwMDc5OTA4MzcwOTcyLCAtMC4wMTY0MjE5OTk3ODIzMjM4MzcsCisgICAgICAgIC0wLjM4MTM2Mzk4NzkyMjY2ODQ2LCAtMC45MjMwMDg5NzgzNjY4NTE4LCAwLjAwMDE1NTk5OTk5NDYwMzkxNywgLTAuMDIwNDMxMDAwNzM5MzM2MDE0LCAtMC45OTg3MjYwMTAzMjI1NzA4LCAwLjA0NjE0NDAwMTE4NTg5NDAxLAorICAgICAgICAtMC4zNzUwNzkwMDU5NTY2NDk4LCAtMC45MDYxNzEwMjM4NDU2NzI2LCAtMC4wMDA3MTY5OTk5ODgwNzE2MjA1LCAtMC4xOTIxNjYwMDA2MDQ2Mjk1MiwgLTAuOTgxMjE4OTkzNjYzNzg3OCwgMC4wMTY3NzIwMDAxMTkwOTAwOCwKKyAgICAgICAgLTAuMzc4MjYyMDEzMTk2OTQ1MiwgLTAuOTE0Mjk0MDA0NDQwMzA3NiwgLTAuMDAwMTEzMDAwMDAxODc0NzUyMzQsIC0wLjEwNDcxMjAwMTk3OTM1MTA0LCAtMC45ODk3MzkwMDA3OTcyNzE3LCAtMC4wOTcyMjUwMDI5NDQ0Njk0NSwKKyAgICAgICAgLTAuMzY1NTkzOTk5NjI0MjUyMywgLTAuOTI1NzE5MDIyNzUwODU0NSwgMC4wMjg0NjMwMDA0MzE2NTY4MzcsIC0wLjA0NzcxMDk5OTg0NjQ1ODQzNSwgLTAuOTk1MzA1MDAxNzM1Njg3MywgLTAuMDg0MjA2OTk4MzQ4MjM2MDgsCisgICAgICAgIC0wLjcwOTI2Nzk3Mzg5OTg0MTMsIC0wLjcwMzExOTk5MzIwOTgzODksIC0wLjAxNjM2NDAwMDczNzY2NzA4NCwgLTAuNzA2MTk4OTkwMzQ1MDAxMiwgLTAuNzA2MTk4OTkwMzQ1MDAxMiwgMCwKKyAgICAgICAgLTAuNjkzNzM2MDE2NzUwMzM1NywgLTAuNjkzNzM2MDE2NzUwMzM1NywgMCwgLTAuNjk5Nzc3MDA3MTAyOTY2MywgLTAuNjk5Nzc3MDA3MTAyOTY2MywgMCwKKyAgICAgICAgLTAuNjkyNDAzMDE4NDc0NTc4OSwgLTAuNzE1MDg1OTgzMjc2MzY3MiwgMC4wMjgyMjkwMDAwNDY4NDkyNSwgLTAuOTI0MzU0MDE2NzgwODUzMywgLTAuMzc4MTA0MDAxMjgzNjQ1NjMsIC0wLjAxNjU3ODAwMDAzODg2MjIzLAorICAgICAgICAtMC45MjMwMDg5NzgzNjY4NTE4LCAtMC4zODEzNjM5ODc5MjI2Njg0NiwgLTAuMDAwMTU1OTk5OTk0NjAzOTE3LCAtMC45MDYxNzEwMjM4NDU2NzI2LCAtMC4zNzUwNzkwMDU5NTY2NDk4LCAwLjAwMDcxNjk5OTk4ODA3MTYyMDUsCisgICAgICAgIC0wLjkxNDI5NDAwNDQ0MDMwNzYsIC0wLjM3ODI2MjAxMzE5Njk0NTIsIDAuMDAwMTEzMDAwMDAxODc0NzUyMzQsIC0wLjkxMzM2NjAxOTcyNTc5OTYsIC0wLjM5NTQ0NDAwNTcyNzc2Nzk0LCAwLjAyODQ5MDk5OTcxMzU0MDA3NywKKyAgICAgICAgLTAuOTk4NzI3MDIzNjAxNTMyLCAtMC4wMTI4OTc5OTk5NTcyMDM4NjUsIDAuMDQ4NzU3MDAxNzU3NjIxNzY1LCAtMC45OTg3MzAwMDM4MzM3NzA4LCAtMC4wMTI4NjY5OTk5NTM5ODUyMTQsIC0wLjA0ODcwMjAwMTU3MTY1NTI3LAorICAgICAgICAtMC45ODEyMTM5ODY4NzM2MjY3LCAtMC4xOTIxMDEwMDE3Mzk1MDE5NSwgLTAuMDE3NzU5MDAwODgyNTA2MzcsIC0wLjk4OTczNTAwNzI4NjA3MTgsIC0wLjEwNDUxNTAwMTE3Nzc4Nzc4LCAwLjA5NzQ3NDk5OTcyNTgxODYzLAorICAgICAgICAtMC45OTUzMDUwMDE3MzU2ODczLCAtMC4wNDc2NzE5OTk3ODIzMjM4NCwgMC4wODQyMzgwMDAyMTQwOTk4OCwgLTAuOTk4NzI3MDIzNjAxNTMyLCAwLjAxMjg5Nzk5OTk1NzIwMzg2NSwgLTAuMDQ4NzU3MDAxNzU3NjIxNzY1LAorICAgICAgICAtMC45MjEwMDc5OTA4MzcwOTcyLCAwLjM4NjE5MTAxMDQ3NTE1ODcsIC0wLjAxNjQyMTk5OTc4MjMyMzgzNywgLTAuOTIzMDA4OTc4MzY2ODUxOCwgMC4zODEzNjM5ODc5MjI2Njg0NiwgMC4wMDAxNTU5OTk5OTQ2MDM5MTcsCisgICAgICAgIC0wLjk5ODczMDAwMzgzMzc3MDgsIDAuMDEyODY2OTk5OTUzOTg1MjE0LCAwLjA0ODcwMjAwMTU3MTY1NTI3LCAtMC45MDYxNzEwMjM4NDU2NzI2LCAwLjM3NTA3OTAwNTk1NjY0OTgsIC0wLjAwMDcxNjk5OTk4ODA3MTYyMDUsCisgICAgICAgIC0wLjk4MTIxMzk4Njg3MzYyNjcsIDAuMTkyMTAxMDAxNzM5NTAxOTUsIDAuMDE3NzU5MDAwODgyNTA2MzcsIC0wLjkxNDI5NDAwNDQ0MDMwNzYsIDAuMzc4MjYyMDEzMTk2OTQ1MiwgLTAuMDAwMTEzMDAwMDAxODc0NzUyMzQsCisgICAgICAgIC0wLjk4OTczNTAwNzI4NjA3MTgsIDAuMTA0NTE1MDAxMTc3Nzg3NzgsIC0wLjA5NzQ3NDk5OTcyNTgxODYzLCAtMC45MjU3MTkwMjI3NTA4NTQ1LCAwLjM2NTU5Mzk5OTYyNDI1MjMsIDAuMDI4NDYzMDAwNDMxNjU2ODM3LAorICAgICAgICAtMC45OTUzMDUwMDE3MzU2ODczLCAwLjA0NzY3MTk5OTc4MjMyMzg0LCAtMC4wODQyMzgwMDAyMTQwOTk4OCwgLTAuNzAzMTE5OTkzMjA5ODM4OSwgMC43MDkyNjc5NzM4OTk4NDEzLCAtMC4wMTYzNjQwMDA3Mzc2NjcwODQsCisgICAgICAgIC0wLjcwNjE5ODk5MDM0NTAwMTIsIDAuNzA2MTk4OTkwMzQ1MDAxMiwgMCwgLTAuNjkzNzM2MDE2NzUwMzM1NywgMC42OTM3MzYwMTY3NTAzMzU3LCAwLAorICAgICAgICAtMC42OTk3NzcwMDcxMDI5NjYzLCAwLjY5OTc3NzAwNzEwMjk2NjMsIDAsIC0wLjcxNTA4NTk4MzI3NjM2NzIsIDAuNjkyNDAzMDE4NDc0NTc4OSwgMC4wMjgyMjkwMDAwNDY4NDkyNSwKKyAgICAgICAgLTAuMzc4MTA0MDAxMjgzNjQ1NjMsIDAuOTI0MzU0MDE2NzgwODUzMywgLTAuMDE2NTc4MDAwMDM4ODYyMjMsIC0wLjM4MTM2Mzk4NzkyMjY2ODQ2LCAwLjkyMzAwODk3ODM2Njg1MTgsIC0wLjAwMDE1NTk5OTk5NDYwMzkxNywKKyAgICAgICAgLTAuMzc1MDc5MDA1OTU2NjQ5OCwgMC45MDYxNzEwMjM4NDU2NzI2LCAwLjAwMDcxNjk5OTk4ODA3MTYyMDUsIC0wLjM3ODI2MjAxMzE5Njk0NTIsIDAuOTE0Mjk0MDA0NDQwMzA3NiwgMC4wMDAxMTMwMDAwMDE4NzQ3NTIzNCwKKyAgICAgICAgLTAuMzk1NDQ0MDA1NzI3NzY3OTQsIDAuOTEzMzY2MDE5NzI1Nzk5NiwgMC4wMjg0OTA5OTk3MTM1NDAwNzcsIC0wLjAxMjg5Nzk5OTk1NzIwMzg2NSwgMC45OTg3MjcwMjM2MDE1MzIsIDAuMDQ4NzU3MDAxNzU3NjIxNzY1LAorICAgICAgICAtMC4wMTI4NjY5OTk5NTM5ODUyMTQsIDAuOTk4NzMwMDAzODMzNzcwOCwgLTAuMDQ4NzAyMDAxNTcxNjU1MjcsIC0wLjE5MjEwMTAwMTczOTUwMTk1LCAwLjk4MTIxMzk4Njg3MzYyNjcsIC0wLjAxNzc1OTAwMDg4MjUwNjM3LAorICAgICAgICAtMC4xMDQ1MTUwMDExNzc3ODc3OCwgMC45ODk3MzUwMDcyODYwNzE4LCAwLjA5NzQ3NDk5OTcyNTgxODYzLCAtMC4wNDc2NzE5OTk3ODIzMjM4NCwgMC45OTUzMDUwMDE3MzU2ODczLCAwLjA4NDIzODAwMDIxNDA5OTg4LAorICAgICAgICAwLjA0NzY3MTk5OTc4MjMyMzg0LCAwLjk5NTMwNTAwMTczNTY4NzMsIC0wLjA4NDIzODAwMDIxNDA5OTg4LCAwLjM5NTQ0NDAwNTcyNzc2Nzk0LCAwLjkxMzM2NjAxOTcyNTc5OTYsIC0wLjAyODQ5MDk5OTcxMzU0MDA3NywKKyAgICAgICAgMC4zODExMTY5ODYyNzQ3MTkyNCwgMC45MjEwMTkwMTc2OTYzODA2LCAtMC4wMDAwMTU5OTk5OTk5NTk2MDM4ODMsIDAuMDMxOTIyOTk5NzY5NDQ5MjM0LCAwLjk5Njg1Mjk5Mzk2NTE0ODksIC0wLjA3MjU1NTk5NjQ3NzYwMzkxLAorICAgICAgICAwLjM4MTUyOTk4Njg1ODM2NzksIDAuOTIxOTA4MDIwOTczMjA1NiwgMC4wMDAwMDE5OTk5OTk5OTQ5NTA0ODU0LCAwLjAyMjI2MTk5OTU0NzQ4MTUzNywgMC45OTc4MDM5ODYwNzI1NDAzLCAtMC4wNjIzNzM5OTk1MDYyMzUxMiwKKyAgICAgICAgMC4zODIxMzg5OTczMTYzNjA1LCAwLjkyMzE4ODk4NDM5NDA3MzUsIDAuMDAwMDE3MDAwMDAwMjk4MTM5NjQsIDAuMDA4MzE3OTk5NTQxNzU5NDkxLCAwLjk5OTE3OTAwNTYyMjg2MzgsIC0wLjAzOTY0ODAwMDE1MDkxODk2LAorICAgICAgICAwLjM4MjI4ODk5MjQwNDkzNzc0LCAwLjkyMzk0Njk3NjY2MTY4MjEsIC0wLjAwNDQzMDAwMDIwNDU5Mjk0MywgMC4wMDA4NjYwMDAwMTY2ODU1NzUyLCAwLjk5OTkxMzk5MDQ5NzU4OTEsIDAuMDEzMDQ4OTk5OTQyODM5MTQ2LAorICAgICAgICAwLjcxNTA4NTk4MzI3NjM2NzIsIDAuNjkyNDAzMDE4NDc0NTc4OSwgLTAuMDI4MjI5MDAwMDQ2ODQ5MjUsIDAuNzA0ODUxOTg0OTc3NzIyMiwgMC43MDQ4NTE5ODQ5Nzc3MjIyLCAwLAorICAgICAgICAwLjcwNTUzMzAyNzY0ODkyNTgsIDAuNzA1NTMzMDI3NjQ4OTI1OCwgMCwgMC43MDY1MTc5OTQ0MDM4MzkxLCAwLjcwNjUxNzk5NDQwMzgzOTEsIDAsCisgICAgICAgIDAuNzA2ODM5MDI1MDIwNTk5NCwgMC43MDcyNTIwMjU2MDQyNDgsIC0wLjAwNDM3OTk5OTgyMzg2ODI3NSwgMC45MjU3MTkwMjI3NTA4NTQ1LCAwLjM2NTU5Mzk5OTYyNDI1MjMsIC0wLjAyODQ2MzAwMDQzMTY1NjgzNywKKyAgICAgICAgMC45MjEwMTgwMDQ0MTc0MTk0LCAwLjM4MTExNjk4NjI3NDcxOTI0LCAwLjAwMDAxNTk5OTk5OTk1OTYwMzg4MywgMC45MjE5MDgwMjA5NzMyMDU2LCAwLjM4MTUyOTk4Njg1ODM2NzksIC0wLjAwMDAwMTk5OTk5OTk5NDk1MDQ4NTQsCisgICAgICAgIDAuOTIzMTg4OTg0Mzk0MDczNSwgMC4zODIxMzg5OTczMTYzNjA1LCAtMC4wMDAwMTcwMDAwMDAyOTgxMzk2NCwgMC45MjM3MjI5ODI0MDY2MTYyLCAwLjM4MjgzMTk5MDcxODg0MTU1LCAtMC4wMDQzOTk5OTk5NzYxNTgxNDIsCisgICAgICAgIDAuOTk1MzA1MDAxNzM1Njg3MywgMC4wNDc2NzE5OTk3ODIzMjM4NCwgMC4wODQyMzgwMDAyMTQwOTk4OCwgMC45OTY4NTI5OTM5NjUxNDg5LCAwLjAzMTkyMjk5OTc2OTQ0OTIzNCwgMC4wNzI1NTU5OTY0Nzc2MDM5MSwKKyAgICAgICAgMC45OTc4MDM5ODYwNzI1NDAzLCAwLjAyMjI2MTk5OTU0NzQ4MTUzNywgMC4wNjIzNzM5OTk1MDYyMzUxMiwgMC45OTkxNzkwMDU2MjI4NjM4LCAwLjAwODMxNzk5OTU0MTc1OTQ5MSwgMC4wMzk2NDgwMDAxNTA5MTg5NiwKKyAgICAgICAgMC45OTk5MTM5OTA0OTc1ODkxLCAwLjAwMDg2NjAwMDAxNjY4NTU3NTIsIC0wLjAxMzA0ODk5OTk0MjgzOTE0NiwgMC45OTUzMDUwMDE3MzU2ODczLCAtMC4wNDc2NzE5OTk3ODIzMjM4NCwgLTAuMDg0MjM4MDAwMjE0MDk5ODgsCisgICAgICAgIDAuOTEzNTAwMDEwOTY3MjU0NiwgLTAuMzk1MTYxOTg2MzUxMDEzMiwgLTAuMDI4NjExMDAwNjI3Mjc5MjgsIDAuOTIxMDE5MDE3Njk2MzgwNiwgLTAuMzgxMTE2OTg2Mjc0NzE5MjQsIC0wLjAwMDAxNTk5OTk5OTk1OTYwMzg4MywKKyAgICAgICAgMC45OTY4NTI5OTM5NjUxNDg5LCAtMC4wMzE5MjI5OTk3Njk0NDkyMzQsIC0wLjA3MjU1NTk5NjQ3NzYwMzkxLCAwLjkyMTkwODAyMDk3MzIwNTYsIC0wLjM4MTUyOTk4Njg1ODM2NzksIDAuMDAwMDAxOTk5OTk5OTk0OTUwNDg1NCwKKyAgICAgICAgMC45OTc4MDM5ODYwNzI1NDAzLCAtMC4wMjIyNjE5OTk1NDc0ODE1MzcsIC0wLjA2MjM3Mzk5OTUwNjIzNTEyLCAwLjkyMzE4ODk4NDM5NDA3MzUsIC0wLjM4MjEzODk5NzMxNjM2MDUsIDAuMDAwMDE3MDAwMDAwMjk4MTM5NjQsCisgICAgICAgIDAuOTk5MTc5MDA1NjIyODYzOCwgLTAuMDA4MzE3OTk5NTQxNzU5NDkxLCAtMC4wMzk2NDgwMDAxNTA5MTg5NiwgMC45MjM5NDY5NzY2NjE2ODIxLCAtMC4zODIyODg5OTI0MDQ5Mzc3NCwgLTAuMDA0NDMwMDAwMjA0NTkyOTQzLAorICAgICAgICAwLjk5OTkxMzk5MDQ5NzU4OTEsIC0wLjAwMDg2NjAwMDAxNjY4NTU3NTIsIDAuMDEzMDQ4OTk5OTQyODM5MTQ2LCAwLjY5MjU4OTk5ODI0NTIzOTMsIC0wLjcxNDkzNjk3MTY2NDQyODcsIC0wLjAyODI2MjAwMDUzMDk1ODE3NiwKKyAgICAgICAgMC43MDQ4NTE5ODQ5Nzc3MjIyLCAtMC43MDQ4NTE5ODQ5Nzc3MjIyLCAwLCAwLjcwNTUzMzAyNzY0ODkyNTgsIC0wLjcwNTUzMzAyNzY0ODkyNTgsIDAsCisgICAgICAgIDAuNzA2NTE3OTk0NDAzODM5MSwgLTAuNzA2NTE3OTk0NDAzODM5MSwgMCwgMC43MDcyNTIwMjU2MDQyNDgsIC0wLjcwNjgzOTAyNTAyMDU5OTQsIC0wLjAwNDM3OTk5OTgyMzg2ODI3NSwKKyAgICAgICAgMC4zNjU2MTAwMDM0NzEzNzQ1LCAtMC45MjU3MjgwMjMwNTIyMTU2LCAtMC4wMjg0MTI5OTk1ODUyNzA4OCwgMC4zODExMTY5ODYyNzQ3MTkyNCwgLTAuOTIxMDE4MDA0NDE3NDE5NCwgMC4wMDAwMTU5OTk5OTk5NTk2MDM4ODMsCisgICAgICAgIDAuMzgxNTI5OTg2ODU4MzY3OSwgLTAuOTIxOTA4MDIwOTczMjA1NiwgLTAuMDAwMDAxOTk5OTk5OTk0OTUwNDg1NCwgMC4zODIxMzg5OTczMTYzNjA1LCAtMC45MjMxODg5ODQzOTQwNzM1LCAtMC4wMDAwMTcwMDAwMDAyOTgxMzk2NCwKKyAgICAgICAgMC4zODI4MzE5OTA3MTg4NDE1NSwgLTAuOTIzNzIyOTgyNDA2NjE2MiwgLTAuMDA0Mzk5OTk5OTc2MTU4MTQyLCAwLjA0NzU3NzAwMTE1NDQyMjc2LCAtMC45OTUzMTI5ODg3NTgwODcyLCAwLjA4NDE4Nzk5OTM2NzcxMzkzLAorICAgICAgICAwLjAzMTkyMjk5OTc2OTQ0OTIzNCwgLTAuOTk2ODUyOTkzOTY1MTQ4OSwgMC4wNzI1NTU5OTY0Nzc2MDM5MSwgMC4wMjIyNjE5OTk1NDc0ODE1MzcsIC0wLjk5NzgwMzk4NjA3MjU0MDMsIDAuMDYyMzczOTk5NTA2MjM1MTIsCisgICAgICAgIDAuMDA4MzE3OTk5NTQxNzU5NDkxLCAtMC45OTkxNzkwMDU2MjI4NjM4LCAwLjAzOTY0ODAwMDE1MDkxODk2LCAwLjAwMDg2NjAwMDAxNjY4NTU3NTIsIC0wLjk5OTkxMzk5MDQ5NzU4OTEsIC0wLjAxMzA0ODk5OTk0MjgzOTE0NiwKKyAgICAgICAgLTAuMDQ3NzEwOTk5ODQ2NDU4NDM1LCAtMC45OTUzMDUwMDE3MzU2ODczLCAtMC4wODQyMDY5OTgzNDgyMzYwOCwgLTAuMzk1NDQ0MDA1NzI3NzY3OTQsIC0wLjkxMzM2NjAxOTcyNTc5OTYsIC0wLjAyODQ5MDk5OTcxMzU0MDA3NywKKyAgICAgICAgLTAuMzgxMTE2OTg2Mjc0NzE5MjQsIC0wLjkyMTAxOTAxNzY5NjM4MDYsIC0wLjAwMDAxNTk5OTk5OTk1OTYwMzg4MywgLTAuMDMxOTIyOTk5NzY5NDQ5MjM0LCAtMC45OTY4NTI5OTM5NjUxNDg5LCAtMC4wNzI1NTU5OTY0Nzc2MDM5MSwKKyAgICAgICAgLTAuMzgxNTI5OTg2ODU4MzY3OSwgLTAuOTIxOTA4MDIwOTczMjA1NiwgMC4wMDAwMDE5OTk5OTk5OTQ5NTA0ODU0LCAtMC4wMjIyNjE5OTk1NDc0ODE1MzcsIC0wLjk5NzgwMzk4NjA3MjU0MDMsIC0wLjA2MjM3Mzk5OTUwNjIzNTEyLAorICAgICAgICAtMC4zODIxMzg5OTczMTYzNjA1LCAtMC45MjMxODg5ODQzOTQwNzM1LCAwLjAwMDAxNzAwMDAwMDI5ODEzOTY0LCAtMC4wMDgzMTc5OTk1NDE3NTk0OTEsIC0wLjk5OTE3OTAwNTYyMjg2MzgsIC0wLjAzOTY0ODAwMDE1MDkxODk2LAorICAgICAgICAtMC4zODIyODg5OTI0MDQ5Mzc3NCwgLTAuOTIzOTQ2OTc2NjYxNjgyMSwgLTAuMDA0NDMwMDAwMjA0NTkyOTQzLCAtMC4wMDA4NjYwMDAwMTY2ODU1NzUyLCAtMC45OTk5MTM5OTA0OTc1ODkxLCAwLjAxMzA0ODk5OTk0MjgzOTE0NiwKKyAgICAgICAgLTAuNzE1MDg1OTgzMjc2MzY3MiwgLTAuNjkyNDAzMDE4NDc0NTc4OSwgLTAuMDI4MjI5MDAwMDQ2ODQ5MjUsIC0wLjcwNDg1MTk4NDk3NzcyMjIsIC0wLjcwNDg1MTk4NDk3NzcyMjIsIDAsCisgICAgICAgIC0wLjcwNTUzMzAyNzY0ODkyNTgsIC0wLjcwNTUzMzAyNzY0ODkyNTgsIDAsIC0wLjcwNjUxNzk5NDQwMzgzOTEsIC0wLjcwNjUxNzk5NDQwMzgzOTEsIDAsCisgICAgICAgIC0wLjcwNjgzOTAyNTAyMDU5OTQsIC0wLjcwNzI1MjAyNTYwNDI0OCwgLTAuMDA0Mzc5OTk5ODIzODY4Mjc1LCAtMC45MjU3MTkwMjI3NTA4NTQ1LCAtMC4zNjU1OTM5OTk2MjQyNTIzLCAtMC4wMjg0NjMwMDA0MzE2NTY4MzcsCisgICAgICAgIC0wLjkyMTAxODAwNDQxNzQxOTQsIC0wLjM4MTExNjk4NjI3NDcxOTI0LCAwLjAwMDAxNTk5OTk5OTk1OTYwMzg4MywgLTAuOTIxOTA4MDIwOTczMjA1NiwgLTAuMzgxNTI5OTg2ODU4MzY3OSwgLTAuMDAwMDAxOTk5OTk5OTk0OTUwNDg1NCwKKyAgICAgICAgLTAuOTIzMTg4OTg0Mzk0MDczNSwgLTAuMzgyMTM4OTk3MzE2MzYwNSwgLTAuMDAwMDE3MDAwMDAwMjk4MTM5NjQsIC0wLjkyMzcyMjk4MjQwNjYxNjIsIC0wLjM4MjgzMTk5MDcxODg0MTU1LCAtMC4wMDQzOTk5OTk5NzYxNTgxNDIsCisgICAgICAgIC0wLjk5NTMwNTAwMTczNTY4NzMsIC0wLjA0NzY3MTk5OTc4MjMyMzg0LCAwLjA4NDIzODAwMDIxNDA5OTg4LCAtMC45OTY4NTI5OTM5NjUxNDg5LCAtMC4wMzE5MjI5OTk3Njk0NDkyMzQsIDAuMDcyNTU1OTk2NDc3NjAzOTEsCisgICAgICAgIC0wLjk5NzgwMzk4NjA3MjU0MDMsIC0wLjAyMjI2MTk5OTU0NzQ4MTUzNywgMC4wNjIzNzM5OTk1MDYyMzUxMiwgLTAuOTk5MTc5MDA1NjIyODYzOCwgLTAuMDA4MzE3OTk5NTQxNzU5NDkxLCAwLjAzOTY0ODAwMDE1MDkxODk2LAorICAgICAgICAtMC45OTk5MTM5OTA0OTc1ODkxLCAtMC4wMDA4NjYwMDAwMTY2ODU1NzUyLCAtMC4wMTMwNDg5OTk5NDI4MzkxNDYsIC0wLjk5NTMwNTAwMTczNTY4NzMsIDAuMDQ3NjcxOTk5NzgyMzIzODQsIC0wLjA4NDIzODAwMDIxNDA5OTg4LAorICAgICAgICAtMC45MTMzNjYwMTk3MjU3OTk2LCAwLjM5NTQ0NDAwNTcyNzc2Nzk0LCAtMC4wMjg0OTA5OTk3MTM1NDAwNzcsIC0wLjkyMTAxOTAxNzY5NjM4MDYsIDAuMzgxMTE2OTg2Mjc0NzE5MjQsIC0wLjAwMDAxNTk5OTk5OTk1OTYwMzg4MywKKyAgICAgICAgLTAuOTk2ODUyOTkzOTY1MTQ4OSwgMC4wMzE5MjI5OTk3Njk0NDkyMzQsIC0wLjA3MjU1NTk5NjQ3NzYwMzkxLCAtMC45MjE5MDgwMjA5NzMyMDU2LCAwLjM4MTUyOTk4Njg1ODM2NzksIDAuMDAwMDAxOTk5OTk5OTk0OTUwNDg1NCwKKyAgICAgICAgLTAuOTk3ODAzOTg2MDcyNTQwMywgMC4wMjIyNjE5OTk1NDc0ODE1MzcsIC0wLjA2MjM3Mzk5OTUwNjIzNTEyLCAtMC45MjMxODg5ODQzOTQwNzM1LCAwLjM4MjEzODk5NzMxNjM2MDUsIDAuMDAwMDE3MDAwMDAwMjk4MTM5NjQsCisgICAgICAgIC0wLjk5OTE3OTAwNTYyMjg2MzgsIDAuMDA4MzE3OTk5NTQxNzU5NDkxLCAtMC4wMzk2NDgwMDAxNTA5MTg5NiwgLTAuOTIzOTQ2OTc2NjYxNjgyMSwgMC4zODIyODg5OTI0MDQ5Mzc3NCwgLTAuMDA0NDMwMDAwMjA0NTkyOTQzLAorICAgICAgICAtMC45OTk5MTM5OTA0OTc1ODkxLCAwLjAwMDg2NjAwMDAxNjY4NTU3NTIsIDAuMDEzMDQ4OTk5OTQyODM5MTQ2LCAtMC42OTI0MDMwMTg0NzQ1Nzg5LCAwLjcxNTA4NTk4MzI3NjM2NzIsIC0wLjAyODIyOTAwMDA0Njg0OTI1LAorICAgICAgICAtMC43MDQ4NTE5ODQ5Nzc3MjIyLCAwLjcwNDg1MTk4NDk3NzcyMjIsIDAsIC0wLjcwNTUzMzAyNzY0ODkyNTgsIDAuNzA1NTMzMDI3NjQ4OTI1OCwgMCwKKyAgICAgICAgLTAuNzA2NTE3OTk0NDAzODM5MSwgMC43MDY1MTc5OTQ0MDM4MzkxLCAwLCAtMC43MDcyNTIwMjU2MDQyNDgsIDAuNzA2ODM5MDI1MDIwNTk5NCwgLTAuMDA0Mzc5OTk5ODIzODY4Mjc1LAorICAgICAgICAtMC4zNjU1OTM5OTk2MjQyNTIzLCAwLjkyNTcxOTAyMjc1MDg1NDUsIC0wLjAyODQ2MzAwMDQzMTY1NjgzNywgLTAuMzgxMTE2OTg2Mjc0NzE5MjQsIDAuOTIxMDE4MDA0NDE3NDE5NCwgMC4wMDAwMTU5OTk5OTk5NTk2MDM4ODMsCisgICAgICAgIC0wLjM4MTUyOTk4Njg1ODM2NzksIDAuOTIxOTA4MDIwOTczMjA1NiwgLTAuMDAwMDAxOTk5OTk5OTk0OTUwNDg1NCwgLTAuMzgyMTM4OTk3MzE2MzYwNSwgMC45MjMxODg5ODQzOTQwNzM1LCAtMC4wMDAwMTcwMDAwMDAyOTgxMzk2NCwKKyAgICAgICAgLTAuMzgyODMxOTkwNzE4ODQxNTUsIDAuOTIzNzIyOTgyNDA2NjE2MiwgLTAuMDA0Mzk5OTk5OTc2MTU4MTQyLCAtMC4wNDc2NzE5OTk3ODIzMjM4NCwgMC45OTUzMDUwMDE3MzU2ODczLCAwLjA4NDIzODAwMDIxNDA5OTg4LAorICAgICAgICAtMC4wMzE5MjI5OTk3Njk0NDkyMzQsIDAuOTk2ODUyOTkzOTY1MTQ4OSwgMC4wNzI1NTU5OTY0Nzc2MDM5MSwgLTAuMDIyMjYxOTk5NTQ3NDgxNTM3LCAwLjk5NzgwMzk4NjA3MjU0MDMsIDAuMDYyMzczOTk5NTA2MjM1MTIsCisgICAgICAgIC0wLjAwODMxNzk5OTU0MTc1OTQ5MSwgMC45OTkxNzkwMDU2MjI4NjM4LCAwLjAzOTY0ODAwMDE1MDkxODk2LCAtMC4wMDA4NjYwMDAwMTY2ODU1NzUyLCAwLjk5OTkxMzk5MDQ5NzU4OTEsIC0wLjAxMzA0ODk5OTk0MjgzOTE0NiwKKyAgICAgICAgMC4wMDA4NjYwMDAwMTY2ODU1NzUyLCAwLjk5OTkxMzk5MDQ5NzU4OTEsIDAuMDEzMDQ4OTk5OTQyODM5MTQ2LCAwLjM4MjgzMTk5MDcxODg0MTU1LCAwLjkyMzcyMjk4MjQwNjYxNjIsIDAuMDA0Mzk5OTk5OTc2MTU4MTQyLAorICAgICAgICAwLjM4MTAxNTAwMjcyNzUwODU0LCAwLjkyMDQ3Mzk5MjgyNDU1NDQsIC0wLjAwMDAzODk5OTk5ODY1MDk3OTI1LCAwLjAzNzMxMjk5OTM2NzcxMzkzLCAwLjk5NjMyMjk4OTQ2MzgwNjIsIDAuMDc3MTIzOTk5NTk1NjQyMDksCisgICAgICAgIDAuMzc4NzcxOTkwNTM3NjQzNDMsIDAuOTE1NDg4MDA0Njg0NDQ4MiwgMC4wMDAwODM5OTk5OTkzMzMxNzMwNCwgMC4wOTE1MTEwMDM2NzMwNzY2MywgMC45OTEwMDYwMTY3MzEyNjIyLCAwLjA5NzYzMjk5NjczNzk1NywKKyAgICAgICAgMC4zNzgzODc5ODc2MTM2NzgsIDAuOTE0NTc0OTgwNzM1Nzc4OCwgMC4wMDAwOTk5OTk5OTc0NzM3ODc1MiwgMC4xMDEzNDYwMDEwMjkwMTQ1OSwgMC45OTAwNDUwMTEwNDM1NDg2LCAwLjA5NzY3NjAwMTQ4OTE2MjQ1LAorICAgICAgICAwLjM1Njc5NTk5NjQyNzUzNiwgMC45MjY2NTEwMDA5NzY1NjI1LCAtMC4wMzE4ODE5OTkyMjQ0MjQzNiwgMC4wNzI0NjYwMDA5MTQ1NzM2NywgMC45OTI4NzA5ODY0NjE2Mzk0LCAwLjA5NDYzMTk5OTczMTA2Mzg0LAorICAgICAgICAwLjcwNzI1MjAyNTYwNDI0OCwgMC43MDY4MzkwMjUwMjA1OTk0LCAwLjAwNDM3OTk5OTgyMzg2ODI3NSwgMC43MDQ0NzM5NzIzMjA1NTY2LCAwLjcwNDQ3Mzk3MjMyMDU1NjYsIDAsCisgICAgICAgIDAuNzAwNjc5MDA0MTkyMzUyMywgMC43MDA2NzkwMDQxOTIzNTIzLCAwLCAwLjY5OTk5MzAxNDMzNTYzMjMsIDAuNjk5OTkzMDE0MzM1NjMyMywgMCwKKyAgICAgICAgMC42ODQ3ODIwMjgxOTgyNDIyLCAwLjcxOTIzMTAwOTQ4MzMzNzQsIC0wLjAzMTY3OTk5OTA4MzI4MDU2LCAwLjkyMzk0Njk3NjY2MTY4MjEsIDAuMzgyMjg4OTkyNDA0OTM3NzQsIDAuMDA0NDMwMDAwMjA0NTkyOTQzLAorICAgICAgICAwLjkyMDQ3Mzk5MjgyNDU1NDQsIDAuMzgxMDE1MDAyNzI3NTA4NTQsIDAuMDAwMDM4OTk5OTk4NjUwOTc5MjUsIDAuOTE1NDg4MDA0Njg0NDQ4MiwgMC4zNzg3NzE5OTA1Mzc2NDM0MywgLTAuMDAwMDgzOTk5OTk5MzMzMTczMDQsCisgICAgICAgIDAuOTE0NTc0OTgwNzM1Nzc4OCwgMC4zNzgzODc5ODc2MTM2NzgsIC0wLjAwMDA5OTk5OTk5NzQ3Mzc4NzUyLCAwLjkwNzg3NjAxNDcwOTQ3MjcsIDAuNDAyMTYxOTg1NjM1NzU3NDUsIC0wLjAzMjA2Mjk5OTkwNDE1NTczLAorICAgICAgICAwLjk5OTkxMzk5MDQ5NzU4OTEsIDAuMDAwODY2MDAwMDE2Njg1NTc1MiwgLTAuMDEzMDQ4OTk5OTQyODM5MTQ2LCAwLjk5NjMyMjk4OTQ2MzgwNjIsIDAuMDM3MzEyOTk5MzY3NzEzOTMsIC0wLjA3NzEyMzk5OTU5NTY0MjA5LAorICAgICAgICAwLjk5MTAwNjAxNjczMTI2MjIsIDAuMDkxNTExMDAzNjczMDc2NjMsIC0wLjA5NzYzMjk5NjczNzk1NywgMC45OTAwNDUwMTEwNDM1NDg2LCAwLjEwMTM0NjAwMTAyOTAxNDU5LCAtMC4wOTc2NzYwMDE0ODkxNjI0NSwKKyAgICAgICAgMC45OTI4NzA5ODY0NjE2Mzk0LCAwLjA3MjQ2NjAwMDkxNDU3MzY3LCAtMC4wOTQ2MzE5OTk3MzEwNjM4NCwgMC45OTk5MTM5OTA0OTc1ODkxLCAtMC4wMDA4NjYwMDAwMTY2ODU1NzUyLCAwLjAxMzA0ODk5OTk0MjgzOTE0NiwKKyAgICAgICAgMC45MjM3MjI5ODI0MDY2MTYyLCAtMC4zODI4MzE5OTA3MTg4NDE1NSwgMC4wMDQzOTk5OTk5NzYxNTgxNDIsIDAuOTIwNDczOTkyODI0NTU0NCwgLTAuMzgxMDE1MDAyNzI3NTA4NTQsIC0wLjAwMDAzODk5OTk5ODY1MDk3OTI1LAorICAgICAgICAwLjk5NjMyMjk4OTQ2MzgwNjIsIC0wLjAzNzMxMjk5OTM2NzcxMzkzLCAwLjA3NzEyMzk5OTU5NTY0MjA5LCAwLjkxNTQ4ODAwNDY4NDQ0ODIsIC0wLjM3ODc3MTk5MDUzNzY0MzQzLCAwLjAwMDA4Mzk5OTk5OTMzMzE3MzA0LAorICAgICAgICAwLjk5MTAwNjAxNjczMTI2MjIsIC0wLjA5MTUxMTAwMzY3MzA3NjYzLCAwLjA5NzYzMjk5NjczNzk1NywgMC45MTQ1NzQ5ODA3MzU3Nzg4LCAtMC4zNzgzODc5ODc2MTM2NzgsIDAuMDAwMDk5OTk5OTk3NDczNzg3NTIsCisgICAgICAgIDAuOTkwMDQ1MDExMDQzNTQ4NiwgLTAuMTAxMzQ2MDAxMDI5MDE0NTksIDAuMDk3Njc2MDAxNDg5MTYyNDUsIDAuOTI2NjUxMDAwOTc2NTYyNSwgLTAuMzU2Nzk1OTk2NDI3NTM2LCAtMC4wMzE4ODE5OTkyMjQ0MjQzNiwKKyAgICAgICAgMC45OTI4NzA5ODY0NjE2Mzk0LCAtMC4wNzI0NjYwMDA5MTQ1NzM2NywgMC4wOTQ2MzE5OTk3MzEwNjM4NCwgMC43MDY4MzkwMjUwMjA1OTk0LCAtMC43MDcyNTIwMjU2MDQyNDgsIDAuMDA0Mzc5OTk5ODIzODY4Mjc1LAorICAgICAgICAwLjcwNDQ3Mzk3MjMyMDU1NjYsIC0wLjcwNDQ3Mzk3MjMyMDU1NjYsIDAsIDAuNzAwNjc5MDA0MTkyMzUyMywgLTAuNzAwNjc5MDA0MTkyMzUyMywgMCwKKyAgICAgICAgMC42OTk5OTMwMTQzMzU2MzIzLCAtMC42OTk5OTMwMTQzMzU2MzIzLCAwLCAwLjcxOTIzMTAwOTQ4MzMzNzQsIC0wLjY4NDc4MjAyODE5ODI0MjIsIC0wLjAzMTY3OTk5OTA4MzI4MDU2LAorICAgICAgICAwLjM4MjI4ODk5MjQwNDkzNzc0LCAtMC45MjM5NDY5NzY2NjE2ODIxLCAwLjAwNDQzMDAwMDIwNDU5Mjk0MywgMC4zODEwMTUwMDI3Mjc1MDg1NCwgLTAuOTIwNDczOTkyODI0NTU0NCwgMC4wMDAwMzg5OTk5OTg2NTA5NzkyNSwKKyAgICAgICAgMC4zNzg3NzE5OTA1Mzc2NDM0MywgLTAuOTE1NDg4MDA0Njg0NDQ4MiwgLTAuMDAwMDgzOTk5OTk5MzMzMTczMDQsIDAuMzc4Mzg3OTg3NjEzNjc4LCAtMC45MTQ1NzQ5ODA3MzU3Nzg4LCAtMC4wMDAwOTk5OTk5OTc0NzM3ODc1MiwKKyAgICAgICAgMC40MDIxNjE5ODU2MzU3NTc0NSwgLTAuOTA3ODc2MDE0NzA5NDcyNywgLTAuMDMyMDYyOTk5OTA0MTU1NzMsIDAuMDAwODY2MDAwMDE2Njg1NTc1MiwgLTAuOTk5OTEzOTkwNDk3NTg5MSwgLTAuMDEzMDQ4OTk5OTQyODM5MTQ2LAorICAgICAgICAwLjAzNzMxMjk5OTM2NzcxMzkzLCAtMC45OTYzMjI5ODk0NjM4MDYyLCAtMC4wNzcxMjM5OTk1OTU2NDIwOSwgMC4wOTE1MTEwMDM2NzMwNzY2MywgLTAuOTkxMDA2MDE2NzMxMjYyMiwgLTAuMDk3NjMyOTk2NzM3OTU3LAorICAgICAgICAwLjEwMTM0NjAwMTAyOTAxNDU5LCAtMC45OTAwNDUwMTEwNDM1NDg2LCAtMC4wOTc2NzYwMDE0ODkxNjI0NSwgMC4wNzI0NjYwMDA5MTQ1NzM2NywgLTAuOTkyODcwOTg2NDYxNjM5NCwgLTAuMDk0NjMxOTk5NzMxMDYzODQsCisgICAgICAgIC0wLjAwMDg2NjAwMDAxNjY4NTU3NTIsIC0wLjk5OTkxMzk5MDQ5NzU4OTEsIDAuMDEzMDQ4OTk5OTQyODM5MTQ2LCAtMC4zODI4MzE5OTA3MTg4NDE1NSwgLTAuOTIzNzIyOTgyNDA2NjE2MiwgMC4wMDQzOTk5OTk5NzYxNTgxNDIsCisgICAgICAgIC0wLjM4MTAxNTAwMjcyNzUwODU0LCAtMC45MjA0NzM5OTI4MjQ1NTQ0LCAtMC4wMDAwMzg5OTk5OTg2NTA5NzkyNSwgLTAuMDM3MzEyOTk5MzY3NzEzOTMsIC0wLjk5NjMyMjk4OTQ2MzgwNjIsIDAuMDc3MTIzOTk5NTk1NjQyMDksCisgICAgICAgIC0wLjM3ODc3MTk5MDUzNzY0MzQzLCAtMC45MTU0ODgwMDQ2ODQ0NDgyLCAwLjAwMDA4Mzk5OTk5OTMzMzE3MzA0LCAtMC4wOTE1MTEwMDM2NzMwNzY2MywgLTAuOTkxMDA2MDE2NzMxMjYyMiwgMC4wOTc2MzI5OTY3Mzc5NTcsCisgICAgICAgIC0wLjM3ODM4Nzk4NzYxMzY3OCwgLTAuOTE0NTc0OTgwNzM1Nzc4OCwgMC4wMDAwOTk5OTk5OTc0NzM3ODc1MiwgLTAuMTAxMzQ2MDAxMDI5MDE0NTksIC0wLjk5MDA0NTAxMTA0MzU0ODYsIDAuMDk3Njc2MDAxNDg5MTYyNDUsCisgICAgICAgIC0wLjM1Njc5NTk5NjQyNzUzNiwgLTAuOTI2NjUxMDAwOTc2NTYyNSwgLTAuMDMxODgxOTk5MjI0NDI0MzYsIC0wLjA3MjQ2NjAwMDkxNDU3MzY3LCAtMC45OTI4NzA5ODY0NjE2Mzk0LCAwLjA5NDYzMTk5OTczMTA2Mzg0LAorICAgICAgICAtMC43MDcyNTIwMjU2MDQyNDgsIC0wLjcwNjgzOTAyNTAyMDU5OTQsIDAuMDA0Mzc5OTk5ODIzODY4Mjc1LCAtMC43MDQ0NzM5NzIzMjA1NTY2LCAtMC43MDQ0NzM5NzIzMjA1NTY2LCAwLAorICAgICAgICAtMC43MDA2NzkwMDQxOTIzNTIzLCAtMC43MDA2NzkwMDQxOTIzNTIzLCAwLCAtMC42OTk5OTMwMTQzMzU2MzIzLCAtMC42OTk5OTMwMTQzMzU2MzIzLCAwLAorICAgICAgICAtMC42ODQ3ODIwMjgxOTgyNDIyLCAtMC43MTkyMzEwMDk0ODMzMzc0LCAtMC4wMzE2Nzk5OTkwODMyODA1NiwgLTAuOTIzOTQ2OTc2NjYxNjgyMSwgLTAuMzgyMjg4OTkyNDA0OTM3NzQsIDAuMDA0NDMwMDAwMjA0NTkyOTQzLAorICAgICAgICAtMC45MjA0NzM5OTI4MjQ1NTQ0LCAtMC4zODEwMTUwMDI3Mjc1MDg1NCwgMC4wMDAwMzg5OTk5OTg2NTA5NzkyNSwgLTAuOTE1NDg4MDA0Njg0NDQ4MiwgLTAuMzc4NzcxOTkwNTM3NjQzNDMsIC0wLjAwMDA4Mzk5OTk5OTMzMzE3MzA0LAorICAgICAgICAtMC45MTQ1NzQ5ODA3MzU3Nzg4LCAtMC4zNzgzODc5ODc2MTM2NzgsIC0wLjAwMDA5OTk5OTk5NzQ3Mzc4NzUyLCAtMC45MDc4NzYwMTQ3MDk0NzI3LCAtMC40MDIxNjE5ODU2MzU3NTc0NSwgLTAuMDMyMDYyOTk5OTA0MTU1NzMsCisgICAgICAgIC0wLjk5OTkxMzk5MDQ5NzU4OTEsIC0wLjAwMDg2NjAwMDAxNjY4NTU3NTIsIC0wLjAxMzA0ODk5OTk0MjgzOTE0NiwgLTAuOTk2MzIyOTg5NDYzODA2MiwgLTAuMDM3MzEyOTk5MzY3NzEzOTMsIC0wLjA3NzEyMzk5OTU5NTY0MjA5LAorICAgICAgICAtMC45OTEwMDYwMTY3MzEyNjIyLCAtMC4wOTE1MTEwMDM2NzMwNzY2MywgLTAuMDk3NjMyOTk2NzM3OTU3LCAtMC45OTAwNDUwMTEwNDM1NDg2LCAtMC4xMDEzNDYwMDEwMjkwMTQ1OSwgLTAuMDk3Njc2MDAxNDg5MTYyNDUsCisgICAgICAgIC0wLjk5Mjg3MDk4NjQ2MTYzOTQsIC0wLjA3MjQ2NjAwMDkxNDU3MzY3LCAtMC4wOTQ2MzE5OTk3MzEwNjM4NCwgLTAuOTk5OTEzOTkwNDk3NTg5MSwgMC4wMDA4NjYwMDAwMTY2ODU1NzUyLCAwLjAxMzA0ODk5OTk0MjgzOTE0NiwKKyAgICAgICAgLTAuOTIzNzIyOTgyNDA2NjE2MiwgMC4zODI4MzE5OTA3MTg4NDE1NSwgMC4wMDQzOTk5OTk5NzYxNTgxNDIsIC0wLjkyMDQ3Mzk5MjgyNDU1NDQsIDAuMzgxMDE1MDAyNzI3NTA4NTQsIC0wLjAwMDAzODk5OTk5ODY1MDk3OTI1LAorICAgICAgICAtMC45OTYzMjI5ODk0NjM4MDYyLCAwLjAzNzMxMjk5OTM2NzcxMzkzLCAwLjA3NzEyMzk5OTU5NTY0MjA5LCAtMC45MTU0ODgwMDQ2ODQ0NDgyLCAwLjM3ODc3MTk5MDUzNzY0MzQzLCAwLjAwMDA4Mzk5OTk5OTMzMzE3MzA0LAorICAgICAgICAtMC45OTEwMDYwMTY3MzEyNjIyLCAwLjA5MTUxMTAwMzY3MzA3NjYzLCAwLjA5NzYzMjk5NjczNzk1NywgLTAuOTE0NTc0OTgwNzM1Nzc4OCwgMC4zNzgzODc5ODc2MTM2NzgsIDAuMDAwMDk5OTk5OTk3NDczNzg3NTIsCisgICAgICAgIC0wLjk5MDA0NTAxMTA0MzU0ODYsIDAuMTAxMzQ2MDAxMDI5MDE0NTksIDAuMDk3Njc2MDAxNDg5MTYyNDUsIC0wLjkyNjY1MTAwMDk3NjU2MjUsIDAuMzU2Nzk1OTk2NDI3NTM2LCAtMC4wMzE4ODE5OTkyMjQ0MjQzNiwKKyAgICAgICAgLTAuOTkyODcwOTg2NDYxNjM5NCwgMC4wNzI0NjYwMDA5MTQ1NzM2NywgMC4wOTQ2MzE5OTk3MzEwNjM4NCwgLTAuNzA2ODM5MDI1MDIwNTk5NCwgMC43MDcyNTIwMjU2MDQyNDgsIDAuMDA0Mzc5OTk5ODIzODY4Mjc1LAorICAgICAgICAtMC43MDQ0NzM5NzIzMjA1NTY2LCAwLjcwNDQ3Mzk3MjMyMDU1NjYsIDAsIC0wLjcwMDY3OTAwNDE5MjM1MjMsIDAuNzAwNjc5MDA0MTkyMzUyMywgMCwKKyAgICAgICAgLTAuNjk5OTkzMDE0MzM1NjMyMywgMC42OTk5OTMwMTQzMzU2MzIzLCAwLCAtMC43MTkyMzEwMDk0ODMzMzc0LCAwLjY4NDc4MjAyODE5ODI0MjIsIC0wLjAzMTY3OTk5OTA4MzI4MDU2LAorICAgICAgICAtMC4zODIyODg5OTI0MDQ5Mzc3NCwgMC45MjM5NDY5NzY2NjE2ODIxLCAwLjAwNDQzMDAwMDIwNDU5Mjk0MywgLTAuMzgxMDE1MDAyNzI3NTA4NTQsIDAuOTIwNDczOTkyODI0NTU0NCwgMC4wMDAwMzg5OTk5OTg2NTA5NzkyNSwKKyAgICAgICAgLTAuMzc4NzcxOTkwNTM3NjQzNDMsIDAuOTE1NDg4MDA0Njg0NDQ4MiwgLTAuMDAwMDgzOTk5OTk5MzMzMTczMDQsIC0wLjM3ODM4Nzk4NzYxMzY3OCwgMC45MTQ1NzQ5ODA3MzU3Nzg4LCAtMC4wMDAwOTk5OTk5OTc0NzM3ODc1MiwKKyAgICAgICAgLTAuNDAyMTYxOTg1NjM1NzU3NDUsIDAuOTA3ODc2MDE0NzA5NDcyNywgLTAuMDMyMDYyOTk5OTA0MTU1NzMsIC0wLjAwMDg2NjAwMDAxNjY4NTU3NTIsIDAuOTk5OTEzOTkwNDk3NTg5MSwgLTAuMDEzMDQ4OTk5OTQyODM5MTQ2LAorICAgICAgICAtMC4wMzczMTI5OTkzNjc3MTM5MywgMC45OTYzMjI5ODk0NjM4MDYyLCAtMC4wNzcxMjM5OTk1OTU2NDIwOSwgLTAuMDkxNTExMDAzNjczMDc2NjMsIDAuOTkxMDA2MDE2NzMxMjYyMiwgLTAuMDk3NjMyOTk2NzM3OTU3LAorICAgICAgICAtMC4xMDEzNDYwMDEwMjkwMTQ1OSwgMC45OTAwNDUwMTEwNDM1NDg2LCAtMC4wOTc2NzYwMDE0ODkxNjI0NSwgLTAuMDcyNDY2MDAwOTE0NTczNjcsIDAuOTkyODcwOTg2NDYxNjM5NCwgLTAuMDk0NjMxOTk5NzMxMDYzODQsCisgICAgICAgIDAuMDcyNDY2MDAwOTE0NTczNjcsIDAuOTkyODcwOTg2NDYxNjM5NCwgMC4wOTQ2MzE5OTk3MzEwNjM4NCwgMC40MDIxNjE5ODU2MzU3NTc0NSwgMC45MDc4NzYwMTQ3MDk0NzI3LCAwLjAzMjA2Mjk5OTkwNDE1NTczLAorICAgICAgICAwLjM3NzY2Nzk5MzMwNzExMzY1LCAwLjkxMjk1ODAyNTkzMjMxMiwgMC4wMDAxODA5OTk5OTU3OTEzNTMyOSwgMC4xMTkxOTMwMDI1ODE1OTYzNywgMC45ODgzMDE5OTI0MTYzODE4LCAwLjA5NTE0NTAwMjAwNzQ4NDQ0LAorICAgICAgICAwLjM3NTE2MDAwODY2ODg5OTU0LCAwLjkwNjYwNzk4NTQ5NjUyMSwgMC4wMDAxNjc5OTk5OTg2NjYzNDYwNywgMC4xODc3MzM5OTI5MzQyMjcsIDAuOTgxNjM4MDE0MzE2NTU4OCwgMC4wMzM4MTkwMDExNjgwMTI2MiwKKyAgICAgICAgMC4yODIzNDMwMDAxNzM1Njg3LCAwLjc2NzU0OTk5MTYwNzY2NiwgLTAuMTY4MjI1MDA1MjY5MDUwNiwgMC4xMjg4MzM5OTQyNjkzNzEwMywgMC42NTQwNjkwMDY0NDMwMjM3LCAtMC4zMjY5ODYwMTQ4NDI5ODcwNiwKKyAgICAgICAgMC4wNjQ1NzAwMDIyNTc4MjM5NCwgMC4zMjcwMTkwMDYwMTM4NzAyNCwgLTAuNjY2NjY2OTg0NTU4MTA1NSwgMCwgMCwgLTEsCisgICAgICAgIDAuNzE5MjMyMDIyNzYyMjk4NiwgMC42ODQ3ODIwMjgxOTgyNDIyLCAwLjAzMTY3OTk5OTA4MzI4MDU2LCAwLjY5ODc2MzAxMjg4NjA0NzQsIDAuNjk4NzYzMDEyODg2MDQ3NCwgMCwKKyAgICAgICAgMC42OTQwMzQ5OTM2NDg1MjksIDAuNjk0MDM0OTkzNjQ4NTI5LCAwLCAwLjU1NTE5OTAyNzA2MTQ2MjQsIDAuNjAwODk2MDAwODYyMTIxNiwgLTAuMTY4MjUzMDA0NTUwOTMzODQsCisgICAgICAgIDAuMTg1NDAzMDA0Mjg4NjczNCwgMC4yNzcwMTM5ODczMDI3ODAxNSwgLTAuNjY2NjY2OTg0NTU4MTA1NSwgMC45MjY2NDk5ODc2OTc2MDEzLCAwLjM1Njc5NTAxMjk1MDg5NzIsIDAuMDMxODgxOTk5MjI0NDI0MzYsCisgICAgICAgIDAuOTEyOTU4MDI1OTMyMzEyLCAwLjM3NzY2Nzk5MzMwNzExMzY1LCAtMC4wMDAxODA5OTk5OTU3OTEzNTMyOSwgMC45MDY2MDc5ODU0OTY1MjEsIDAuMzc1MTYwMDA4NjY4ODk5NTQsIC0wLjAwMDE2Nzk5OTk5ODY2NjM0NjA3LAorICAgICAgICAwLjc0MjYwNTk4NDIxMDk2OCwgMC4zNDI2MTU5OTE4MzA4MjU4LCAtMC4xNjgzMTgwMDM0MTYwNjE0LCAwLjI3NzAxMzk4NzMwMjc4MDE1LCAwLjE4NTQwMzAwNDI4ODY3MzQsIC0wLjY2NjY2Njk4NDU1ODEwNTUsCisgICAgICAgIDAuOTkyODcwOTg2NDYxNjM5NCwgMC4wNzI0NjYwMDA5MTQ1NzM2NywgLTAuMDk0NjMxOTk5NzMxMDYzODQsIDAuOTg4MzAxOTkyNDE2MzgxOCwgMC4xMTkxOTMwMDI1ODE1OTYzNywgLTAuMDk1MTQ1MDAyMDA3NDg0NDQsCisgICAgICAgIDAuOTgxNjM3MDAxMDM3NTk3NywgMC4xODc3MzM5OTI5MzQyMjcsIC0wLjAzMzgxOTAwMTE2ODAxMjYyLCAwLjk4MTEwMzAwMzAyNTA1NDksIDAuMTkzMjUxOTk3MjMyNDM3MTMsIC0wLjAwOTUxOTk5OTg0NjgxNjA2MywKKyAgICAgICAgMC40OTA1MjkwMDA3NTkxMjQ3NiwgMC4wOTY4NTU5OTgwMzkyNDU2LCAtMC41LCAwLjk5Mjg3MDk4NjQ2MTYzOTQsIC0wLjA3MjQ2NjAwMDkxNDU3MzY3LCAwLjA5NDYzMTk5OTczMTA2Mzg0LAorICAgICAgICAwLjkwNzg3NjAxNDcwOTQ3MjcsIC0wLjQwMjE2MTk4NTYzNTc1NzQ1LCAwLjAzMjA2Mjk5OTkwNDE1NTczLCAwLjkxMjk1ODAyNTkzMjMxMiwgLTAuMzc3NjY3OTkzMzA3MTEzNjUsIDAuMDAwMTgwOTk5OTk1NzkxMzUzMjksCisgICAgICAgIDAuOTg4MzAxOTkyNDE2MzgxOCwgLTAuMTE5MTkzMDAyNTgxNTk2MzcsIDAuMDk1MTQ1MDAyMDA3NDg0NDQsIDAuOTA2NjA3OTg1NDk2NTIxLCAtMC4zNzUxNjAwMDg2Njg4OTk1NCwgMC4wMDAxNjc5OTk5OTg2NjYzNDYwNywKKyAgICAgICAgMC45ODE2MzgwMTQzMTY1NTg4LCAtMC4xODc3MzM5OTI5MzQyMjcsIDAuMDMzODE5MDAxMTY4MDEyNjIsIDAuNzY3NTQ5OTkxNjA3NjY2LCAtMC4yODIzNDMwMDAxNzM1Njg3LCAtMC4xNjgyMjUwMDUyNjkwNTA2LAorICAgICAgICAwLjY1NDA2OTAwNjQ0MzAyMzcsIC0wLjEyODgzMzk5NDI2OTM3MTAzLCAtMC4zMjY5ODYwMTQ4NDI5ODcwNiwgMC4zMjcwMTkwMDYwMTM4NzAyNCwgLTAuMDY0NTcwMDAyMjU3ODIzOTQsIC0wLjY2NjY2Njk4NDU1ODEwNTUsCisgICAgICAgIDAsIDAsIC0xLCAwLjY4NDc4MjAyODE5ODI0MjIsIC0wLjcxOTIzMjAyMjc2MjI5ODYsIDAuMDMxNjc5OTk5MDgzMjgwNTYsCisgICAgICAgIDAuNjk4NzYzMDEyODg2MDQ3NCwgLTAuNjk4NzYzMDEyODg2MDQ3NCwgMCwgMC42OTQwMzQ5OTM2NDg1MjksIC0wLjY5NDAzNDk5MzY0ODUyOSwgMCwKKyAgICAgICAgMC42MDA4OTYwMDA4NjIxMjE2LCAtMC41NTUxOTkwMjcwNjE0NjI0LCAtMC4xNjgyNTMwMDQ1NTA5MzM4NCwgMC4yNzcwMTM5ODczMDI3ODAxNSwgLTAuMTg1NDAzMDA0Mjg4NjczNCwgLTAuNjY2NjY2OTg0NTU4MTA1NSwKKyAgICAgICAgMC4zNTY3OTUwMTI5NTA4OTcyLCAtMC45MjY2NDk5ODc2OTc2MDEzLCAwLjAzMTg4MTk5OTIyNDQyNDM2LCAwLjM3NzY2Nzk5MzMwNzExMzY1LCAtMC45MTI5NTgwMjU5MzIzMTIsIC0wLjAwMDE4MDk5OTk5NTc5MTM1MzI5LAorICAgICAgICAwLjM3NTE2MDAwODY2ODg5OTU0LCAtMC45MDY2MDc5ODU0OTY1MjEsIC0wLjAwMDE2Nzk5OTk5ODY2NjM0NjA3LCAwLjM0MjYxNTk5MTgzMDgyNTgsIC0wLjc0MjYwNTk4NDIxMDk2OCwgLTAuMTY4MzE4MDAzNDE2MDYxNCwKKyAgICAgICAgMC4xODU0MDMwMDQyODg2NzM0LCAtMC4yNzcwMTM5ODczMDI3ODAxNSwgLTAuNjY2NjY2OTg0NTU4MTA1NSwgMC4wNzI0NjYwMDA5MTQ1NzM2NywgLTAuOTkyODcwOTg2NDYxNjM5NCwgLTAuMDk0NjMxOTk5NzMxMDYzODQsCisgICAgICAgIDAuMTE5MTkzMDAyNTgxNTk2MzcsIC0wLjk4ODMwMTk5MjQxNjM4MTgsIC0wLjA5NTE0NTAwMjAwNzQ4NDQ0LCAwLjE4NzczMzk5MjkzNDIyNywgLTAuOTgxNjM3MDAxMDM3NTk3NywgLTAuMDMzODE5MDAxMTY4MDEyNjIsCisgICAgICAgIDAuMTkzMjUxOTk3MjMyNDM3MTMsIC0wLjk4MTEwMzAwMzAyNTA1NDksIC0wLjAwOTUxOTk5OTg0NjgxNjA2MywgMC4wOTY4NTU5OTgwMzkyNDU2LCAtMC40OTA1MjkwMDA3NTkxMjQ3NiwgLTAuNSwKKyAgICAgICAgLTAuMDcyNDY2MDAwOTE0NTczNjcsIC0wLjk5Mjg3MDk4NjQ2MTYzOTQsIDAuMDk0NjMxOTk5NzMxMDYzODQsIC0wLjQwMjE2MTk4NTYzNTc1NzQ1LCAtMC45MDc4NzYwMTQ3MDk0NzI3LCAwLjAzMjA2Mjk5OTkwNDE1NTczLAorICAgICAgICAtMC4zNzc2Njc5OTMzMDcxMTM2NSwgLTAuOTEyOTU4MDI1OTMyMzEyLCAwLjAwMDE4MDk5OTk5NTc5MTM1MzI5LCAtMC4xMTkxOTMwMDI1ODE1OTYzNywgLTAuOTg4MzAxOTkyNDE2MzgxOCwgMC4wOTUxNDUwMDIwMDc0ODQ0NCwKKyAgICAgICAgLTAuMzc1MTYwMDA4NjY4ODk5NTQsIC0wLjkwNjYwNzk4NTQ5NjUyMSwgMC4wMDAxNjc5OTk5OTg2NjYzNDYwNywgLTAuMTg3NzMzOTkyOTM0MjI3LCAtMC45ODE2MzgwMTQzMTY1NTg4LCAwLjAzMzgxOTAwMTE2ODAxMjYyLAorICAgICAgICAtMC4yODIzNDMwMDAxNzM1Njg3LCAtMC43Njc1NDk5OTE2MDc2NjYsIC0wLjE2ODIyNTAwNTI2OTA1MDYsIC0wLjEyODgzMzk5NDI2OTM3MTAzLCAtMC42NTQwNjkwMDY0NDMwMjM3LCAtMC4zMjY5ODYwMTQ4NDI5ODcwNiwKKyAgICAgICAgLTAuMDY0NTcwMDAyMjU3ODIzOTQsIC0wLjMyNzAxOTAwNjAxMzg3MDI0LCAtMC42NjY2NjY5ODQ1NTgxMDU1LCAwLCAwLCAtMSwKKyAgICAgICAgLTAuNzE5MjMyMDIyNzYyMjk4NiwgLTAuNjg0NzgyMDI4MTk4MjQyMiwgMC4wMzE2Nzk5OTkwODMyODA1NiwgLTAuNjk4NzYzMDEyODg2MDQ3NCwgLTAuNjk4NzYzMDEyODg2MDQ3NCwgMCwKKyAgICAgICAgLTAuNjk0MDM0OTkzNjQ4NTI5LCAtMC42OTQwMzQ5OTM2NDg1MjksIDAsIC0wLjU1NTE5OTAyNzA2MTQ2MjQsIC0wLjYwMDg5NjAwMDg2MjEyMTYsIC0wLjE2ODI1MzAwNDU1MDkzMzg0LAorICAgICAgICAtMC4xODU0MDMwMDQyODg2NzM0LCAtMC4yNzcwMTM5ODczMDI3ODAxNSwgLTAuNjY2NjY2OTg0NTU4MTA1NSwgLTAuOTI2NjQ5OTg3Njk3NjAxMywgLTAuMzU2Nzk1MDEyOTUwODk3MiwgMC4wMzE4ODE5OTkyMjQ0MjQzNiwKKyAgICAgICAgLTAuOTEyOTU4MDI1OTMyMzEyLCAtMC4zNzc2Njc5OTMzMDcxMTM2NSwgLTAuMDAwMTgwOTk5OTk1NzkxMzUzMjksIC0wLjkwNjYwNzk4NTQ5NjUyMSwgLTAuMzc1MTYwMDA4NjY4ODk5NTQsIC0wLjAwMDE2Nzk5OTk5ODY2NjM0NjA3LAorICAgICAgICAtMC43NDI2MDU5ODQyMTA5NjgsIC0wLjM0MjYxNTk5MTgzMDgyNTgsIC0wLjE2ODMxODAwMzQxNjA2MTQsIC0wLjI3NzAxMzk4NzMwMjc4MDE1LCAtMC4xODU0MDMwMDQyODg2NzM0LCAtMC42NjY2NjY5ODQ1NTgxMDU1LAorICAgICAgICAtMC45OTI4NzA5ODY0NjE2Mzk0LCAtMC4wNzI0NjYwMDA5MTQ1NzM2NywgLTAuMDk0NjMxOTk5NzMxMDYzODQsIC0wLjk4ODMwMTk5MjQxNjM4MTgsIC0wLjExOTE5MzAwMjU4MTU5NjM3LCAtMC4wOTUxNDUwMDIwMDc0ODQ0NCwKKyAgICAgICAgLTAuOTgxNjM3MDAxMDM3NTk3NywgLTAuMTg3NzMzOTkyOTM0MjI3LCAtMC4wMzM4MTkwMDExNjgwMTI2MiwgLTAuOTgxMTAzMDAzMDI1MDU0OSwgLTAuMTkzMjUxOTk3MjMyNDM3MTMsIC0wLjAwOTUxOTk5OTg0NjgxNjA2MywKKyAgICAgICAgLTAuNDkwNTI5MDAwNzU5MTI0NzYsIC0wLjA5Njg1NTk5ODAzOTI0NTYsIC0wLjUsIC0wLjk5Mjg3MDk4NjQ2MTYzOTQsIDAuMDcyNDY2MDAwOTE0NTczNjcsIDAuMDk0NjMxOTk5NzMxMDYzODQsCisgICAgICAgIC0wLjkwNzg3NjAxNDcwOTQ3MjcsIDAuNDAyMTYxOTg1NjM1NzU3NDUsIDAuMDMyMDYyOTk5OTA0MTU1NzMsIC0wLjkxMjk1ODAyNTkzMjMxMiwgMC4zNzc2Njc5OTMzMDcxMTM2NSwgMC4wMDAxODA5OTk5OTU3OTEzNTMyOSwKKyAgICAgICAgLTAuOTg4MzAxOTkyNDE2MzgxOCwgMC4xMTkxOTMwMDI1ODE1OTYzNywgMC4wOTUxNDUwMDIwMDc0ODQ0NCwgLTAuOTA2NjA3OTg1NDk2NTIxLCAwLjM3NTE2MDAwODY2ODg5OTU0LCAwLjAwMDE2Nzk5OTk5ODY2NjM0NjA3LAorICAgICAgICAtMC45ODE2MzgwMTQzMTY1NTg4LCAwLjE4NzczMzk5MjkzNDIyNywgMC4wMzM4MTkwMDExNjgwMTI2MiwgLTAuNzY3NTQ5OTkxNjA3NjY2LCAwLjI4MjM0MzAwMDE3MzU2ODcsIC0wLjE2ODIyNTAwNTI2OTA1MDYsCisgICAgICAgIC0wLjY1NDA2OTAwNjQ0MzAyMzcsIDAuMTI4ODMzOTk0MjY5MzcxMDMsIC0wLjMyNjk4NjAxNDg0Mjk4NzA2LCAtMC4zMjcwMTkwMDYwMTM4NzAyNCwgMC4wNjQ1NzAwMDIyNTc4MjM5NCwgLTAuNjY2NjY2OTg0NTU4MTA1NSwKKyAgICAgICAgMCwgMCwgLTEsIC0wLjY4NDc4MjAyODE5ODI0MjIsIDAuNzE5MjMyMDIyNzYyMjk4NiwgMC4wMzE2Nzk5OTkwODMyODA1NiwKKyAgICAgICAgLTAuNjk4NzYzMDEyODg2MDQ3NCwgMC42OTg3NjMwMTI4ODYwNDc0LCAwLCAtMC42OTQwMzQ5OTM2NDg1MjksIDAuNjk0MDM0OTkzNjQ4NTI5LCAwLAorICAgICAgICAtMC42MDA4OTYwMDA4NjIxMjE2LCAwLjU1NTE5OTAyNzA2MTQ2MjQsIC0wLjE2ODI1MzAwNDU1MDkzMzg0LCAtMC4yNzcwMTM5ODczMDI3ODAxNSwgMC4xODU0MDMwMDQyODg2NzM0LCAtMC42NjY2NjY5ODQ1NTgxMDU1LAorICAgICAgICAtMC4zNTY3OTUwMTI5NTA4OTcyLCAwLjkyNjY0OTk4NzY5NzYwMTMsIDAuMDMxODgxOTk5MjI0NDI0MzYsIC0wLjM3NzY2Nzk5MzMwNzExMzY1LCAwLjkxMjk1ODAyNTkzMjMxMiwgLTAuMDAwMTgwOTk5OTk1NzkxMzUzMjksCisgICAgICAgIC0wLjM3NTE2MDAwODY2ODg5OTU0LCAwLjkwNjYwNzk4NTQ5NjUyMSwgLTAuMDAwMTY3OTk5OTk4NjY2MzQ2MDcsIC0wLjM0MjYxNTk5MTgzMDgyNTgsIDAuNzQyNjA1OTg0MjEwOTY4LCAtMC4xNjgzMTgwMDM0MTYwNjE0LAorICAgICAgICAtMC4xODU0MDMwMDQyODg2NzM0LCAwLjI3NzAxMzk4NzMwMjc4MDE1LCAtMC42NjY2NjY5ODQ1NTgxMDU1LCAtMC4wNzI0NjYwMDA5MTQ1NzM2NywgMC45OTI4NzA5ODY0NjE2Mzk0LCAtMC4wOTQ2MzE5OTk3MzEwNjM4NCwKKyAgICAgICAgLTAuMTE5MTkzMDAyNTgxNTk2MzcsIDAuOTg4MzAxOTkyNDE2MzgxOCwgLTAuMDk1MTQ1MDAyMDA3NDg0NDQsIC0wLjE4NzczMzk5MjkzNDIyNywgMC45ODE2MzcwMDEwMzc1OTc3LCAtMC4wMzM4MTkwMDExNjgwMTI2MiwKKyAgICAgICAgLTAuMTkzMjUxOTk3MjMyNDM3MTMsIDAuOTgxMTAzMDAzMDI1MDU0OSwgLTAuMDA5NTE5OTk5ODQ2ODE2MDYzLCAtMC4wOTY4NTU5OTgwMzkyNDU2LCAwLjQ5MDUyOTAwMDc1OTEyNDc2LCAtMC41LAorICAgICAgICAtMC4wMDY1OTc5OTk5NDkwMDgyMjYsIDAuOTk2MTY4MDE3Mzg3MzkwMSwgMC4wMDAxNjMwMDAwMDQyNDk2MjQ5LCAtMC4wNDM5MDc5OTk5OTIzNzA2MDUsIDAuNzc5MTI1OTg4NDgzNDI5LCAtMC41NTkzNjU5ODc3Nzc3MSwKKyAgICAgICAgMC4yMzI4Nzg5OTc5MjE5NDM2NiwgMC43OTI3MTAwMDYyMzcwMywgLTAuNTA2NTM0OTkzNjQ4NTI5LCAwLjExMTM5OTAwMjM3MzIxODU0LCAwLjk5MjMzMjk5NDkzNzg5NjcsIDAuMDA1MzQ0OTk5OTU0MTA0NDIzNSwKKyAgICAgICAgMC40NTIxOTIwMDg0OTUzMzA4LCAwLjczNzA5ODk5MTg3MDg4MDEsIC0wLjQyMTgwMjAxNDExMjQ3MjUzLCAwLjE3Nzk3Nzk5NDA4NDM1ODIyLCAwLjk4Mjc5NzAyNjYzNDIxNjMsIDAuMDM2ODQxMDAxMzYxNjA4NTA1LAorICAgICAgICAwLjYwNzUzNzk4NDg0ODAyMjUsIDAuNzA2Njg2OTczNTcxNzc3MywgLTAuMjcwNzk3OTk3NzEzMDg5LCAwLjExODk0Njk5OTMxMTQ0NzE0LCAwLjk4NjQ4Mjk3Nzg2NzEyNjUsIDAuMTA1MTc3OTk4NTQyNzg1NjQsCisgICAgICAgIDAuNjU4MzcxOTg0OTU4NjQ4NywgMC43NDM4NDcwMTI1MTk4MzY0LCAtMC4wNjcyNzUwMDI1OTg3NjI1MSwgMC4wMDEwNjI5OTk5NDUxMzM5MjQ1LCAwLjk5ODkxNTk3MDMyNTQ3LCAwLjA0NjUzNDAwMTgyNzIzOTk5LAorICAgICAgICAtMC4xNjIyOTkwMDcxNzczNTI5LCAtMC4xNDg2OTUwMDY5NjY1OTA4OCwgLTAuOTA2OTU2OTcwNjkxNjgwOSwgMC4zMDIwMTU5OTAwMTg4NDQ2LCAtMC4wMTQzMDEwMDAxNjI5NTkwOTksIC0wLjg4NDcxMTk4MDgxOTcwMjEsCisgICAgICAgIDAuNzA0ODY0MDI1MTE1OTY2OCwgLTAuMDQyNTE0OTk4NDY1Nzc2NDQzLCAtMC42Nzg4MDIwMTMzOTcyMTY4LCAwLjg5NDg1MTk4MjU5MzUzNjQsIC0wLjExMDc4MDAwMDY4NjY0NTUxLCAtMC4zODgyNDU5OTk4MTMwNzk4MywKKyAgICAgICAgMC45NjIyOTIwMTU1NTI1MjA4LCAtMC4wOTM2NzkwMDM0MTc0OTE5MSwgLTAuMTQzNDk2MDA2NzI3MjE4NjMsIC0wLjEyNTExOTAwMDY3MzI5NDA3LCAtMC44NDc5MDQ5ODAxODI2NDc3LCAtMC40NzgzMzQ5OTMxMjQwMDgyLAorICAgICAgICAwLjExMzE1NDAwMTUzMzk4NTE0LCAtMC44MTUzNjY5ODM0MTM2OTYzLCAtMC41MTY3MTYwMDM0MTc5Njg4LCAwLjM5NTYzMTk5ODc3NzM4OTUsIC0wLjc5MTAwMTk3NTUzNjM0NjQsIC0wLjQzNDUyNzAwOTcyNTU3MDcsCisgICAgICAgIDAuNTI0NDYwOTcxMzU1NDM4MiwgLTAuODAxMjMyOTkzNjAyNzUyNywgLTAuMjY0MzgyOTg4MjE0NDkyOCwgMC41NzE0NjUwMTU0MTEzNzcsIC0wLjc5MDIxNjAyODY5MDMzODEsIC0wLjEyMzMyODAwMDMwNzA4MzEzLAorICAgICAgICAtMC4wOTQzNTYwMDA0MjM0MzE0LCAtMC45OTU1Mzc5OTYyOTIxMTQzLCAtMC4wMDEwOTg5OTk5ODY0MjUwNDIyLCAwLjAxMjA0MDk5OTcxODAxMDQyNiwgLTAuOTk2NTUwMDIzNTU1NzU1NiwgMCwKKyAgICAgICAgMC4wOTUwMTQ5OTY4MjY2NDg3MSwgLTAuOTkzNjk2OTg3NjI4OTM2OCwgMC4wMjQ0MDUwMDA3MzEzNDg5OSwgMC4wMzczNzQ5OTkzNzQxNTEyMywgLTAuOTk3ODA4OTkyODYyNzAxNCwgMC4wMzU5MDk5OTkxNjE5NTg2OTQsCisgICAgICAgIC0wLjAwMDg4MDAwMDAwNjg3MzE2MDYsIC0wLjk5NzM1MzAxNzMzMDE2OTcsIC0wLjA0MDMxMTk5OTYxOTAwNzExLCAwLjAwNzE2NDAwMDA2Nzg1OTg4OCwgLTAuOTk2MTY0OTc3NTUwNTA2NiwgLTAuMDAwMDI3MDAwMDAwMDQ1NTE4MzksCisgICAgICAgIDAuMDQzOTg4MDAwNjAxNTMwMDc1LCAtMC44MzMwMzA5OTg3MDY4MTc2LCAwLjQ2OTEzMjk4OTY0NTAwNDMsIC0wLjIzMzQyNzAwMzAyNjAwODYsIC0wLjc5ODMxODk4MjEyNDMyODYsIDAuNDk4NDAzOTk2MjI5MTcxNzUsCisgICAgICAgIC0wLjEwNzM3Mzk5NzU2OTA4NDE3LCAtMC45OTI3NTQ5OTU4MjI5MDY1LCAtMC4wMDcwMjk5OTk5Nzg4NDAzNTEsIC0wLjQ1MTQ3NDk5NDQyMTAwNTI1LCAtMC43NTc2Mjk5OTA1Nzc2OTc4LCAwLjM5Mzc1MDAxMTkyMDkyODk2LAorICAgICAgICAtMC4xNTM2NDM5OTU1MjM0NTI3NiwgLTAuOTg2MzE2MDI1MjU3MTEwNiwgLTAuMDQ4Mjk0OTk4NzA1Mzg3MTE1LCAtMC41NTc1NjAwMjY2NDU2NjA0LCAtMC43NzUzMjEwMDY3NzQ5MDIzLCAwLjIwMDE3NDAwMzgzOTQ5MjgsCisgICAgICAgIC0wLjA3MjQyOTk5OTcwOTEyOTMzLCAtMC45OTIzMDMwMTM4MDE1NzQ3LCAtMC4wODg0NTk5OTgzNjkyMTY5MiwgLTAuNTg3NzAxOTc2Mjk5Mjg1OSwgLTAuODA0MTkzMDE5ODY2OTQzNCwgMC4wNDc2ODU5OTk0MjMyNjU0NiwKKyAgICAgICAgMC4wMDA1ODMwMDAwMTU0Njc0MDUzLCAtMC45OTk3OTQwMDYzNDc2NTYyLCAtMC4wMjAzMDE5OTk1MjQyMzU3MjUsIDAuMTM2NjM3MDAyMjI5NjkwNTUsIC0wLjE0NjY1NzAwNDk1MjQzMDczLCAwLjg5NjYxNDAxNTEwMjM4NjUsCisgICAgICAgIC0wLjMwNDUzODk5NTAyNzU0MjEsIC0wLjAxMjIzNzk5OTU4ODI1MTExNCwgMC44ODMzMTgwMDY5OTIzNDAxLCAtMC43MDIwMjg5ODk3OTE4NzAxLCAtMC4wMzM5ODc5OTg5NjI0MDIzNDQsIDAuNjcyNDczMDEzNDAxMDMxNSwKKyAgICAgICAgLTAuODg5MDMzMDE5NTQyNjk0MSwgLTAuMDk2MzY3OTk5OTExMzA4MjksIDAuMzc2MDUzOTg4OTMzNTYzMjMsIC0wLjk2NjgwOTk4ODAyMTg1MDYsIC0wLjA4NjAxODAwMzUyMzM0OTc2LCAwLjEzNTg0MTk5NTQ3NzY3NjQsCisgICAgICAgIDAuMTIwMjI0OTk3NDAxMjM3NDksIDAuNzkxODU1OTkwODg2Njg4MiwgMC41NjkzMTQwMDI5OTA3MjI3LCAtMC4xMTMxMzUwMDI1NTM0NjI5OCwgMC44MTExNzgwMjg1ODM1MjY2LCAwLjUyMzY2MTAxNzQxNzkwNzcsCisgICAgICAgIC0wLjM5NzkwNjk4ODg1OTE3NjY0LCAwLjc3MzQ0MTk3MDM0ODM1ODIsIDAuNDU4NTMyOTg5MDI1MTE1OTcsIC0wLjU3OTMzOTAyNzQwNDc4NTIsIDAuNzM0NjQ5MDAyNTUyMDMyNSwgMC4zMjk3Mzc5OTEwOTQ1ODkyMywKKyAgICAgICAgLTAuNjQ0NzQ5OTk5MDQ2MzI1NywgMC43MzQwNDE5ODg4NDk2Mzk5LCAwLjEyNDU5Mjk5NzEzMzczMTg0LCAwLjA5Mzc4Nzk5Nzk2MTA0NDMxLCAwLjk5NTU5MTk5ODEwMDI4MDgsIDAuMDAwOTQ0MDAwMDI4NTM5NDQ5LAorICAgICAgICAtMC4wMTYwNzk5OTk1MDY0NzM1NCwgMC45OTY0ODc5NzUxMjA1NDQ0LCAwLjAwMDM1NjAwMDAwNDEwMzQwNzI2LCAtMC4xMTkzMzIwMDA2MTMyMTI1OSwgMC45OTEyMTk5OTc0MDYwMDU5LCAtMC4wMTczNzI5OTkzNDAyOTU3OSwKKyAgICAgICAgLTAuMDg2MTgyOTk2NjMwNjY4NjQsIDAuOTk0MDA4MDA0NjY1Mzc0OCwgLTAuMDUzNTk4OTk5OTc3MTExODE2LCAtMC4wMDQxMTA5OTk4NzEwNDUzNTEsIDAuOTk4MDIyOTczNTM3NDQ1MSwgMC4wMTU3MDMwMDAxMjgyNjkxOTYsCisgICAgICAgIDAuMDEwMTQyMDAwMzkyMDc5MzUzLCAwLjk5MzM4Nzk5NzE1MDQyMTEsIDAuMTAwMzQ0MDAyMjQ2ODU2NjksIDAuNjU5Nzg5MDI1NzgzNTM4OCwgMC43MTE0NDgwMTM3ODI1MDEyLCAwLjEyOTY0MDk5NjQ1NjE0NjI0LAorICAgICAgICAwLjU2MzQyMzk5MTIwMzMwODEsIDAuNzU5NDAwMDEwMTA4OTQ3OCwgMC4yODk5MDIwMDE2MTkzMzksIC0wLjAyMTIyNzAwMDI4MTIxNDcxNCwgMC45OTc2OTMwMDIyMjM5Njg1LCAwLjA1MTg5MDk5OTA3ODc1MDYxLAorICAgICAgICAwLjM5NzI1NTk4NjkyODkzOTgsIDAuNzcwOTY3MDA2NjgzMzQ5NiwgMC40NTg3MjcwMDIxNDM4NTk4NiwgLTAuMDUwNTQ2MDAxNjQyOTQyNDMsIDAuOTk1NzY2OTk3MzM3MzQxMywgMC4wNjA4NjkwMDA4NTIxMDgsCisgICAgICAgIDAuMTE4MDUxOTk4MzE3MjQxNjcsIDAuNzYxMTYxOTgzMDEzMTUzMSwgMC41NjkyODAwMjgzNDMyMDA3LCAtMC4xMTQxNDYwMDE2MzY5ODE5NiwgMC45ODY5MzU5NzMxNjc0MTk0LCAwLjA4ODYyOTk5ODI2NjY5NjkzLAorICAgICAgICAtMC4wMDEyODcwMDAwMjA5NjU5MzM4LCAwLjcxOTUzODk4NjY4Mjg5MTgsIDAuNjI5MzgyMDE0Mjc0NTk3MiwgLTAuMTg5NzEyMDAyODczNDIwNzIsIDAuOTc1MjgyMDEzNDE2MjkwMywgMC4xMTMyODcwMDE4NDgyMjA4MywKKyAgICAgICAgMC45Njg1OTY5OTQ4NzY4NjE2LCAtMC4wODk2NjIwMDA1MzY5MTg2NCwgMC4xMzMzMTEwMDM0NDY1Nzg5OCwgMC44OTAyMTQwMjU5NzQyNzM3LCAtMC4wNTE5NjE5OTkzODY1NDg5OTYsIDAuMzkzMjMxMDA0NDc2NTQ3MjQsCisgICAgICAgIDAuNjcyODI4MDE4NjY1MzEzNywgLTAuMDUwMzI0OTk4Nzk1OTg2MTc2LCAwLjY5NjUwNjk3NzA4MTI5ODgsIDAuMjUxMzMyMDE0Nzk5MTE4MDQsIC0wLjA0MzA2OTAwMTI4NzIyMTkxLCAwLjkxNjk3MTk4MTUyNTQyMTEsCisgICAgICAgIC0wLjE5ODEzNzAwMDIwMzEzMjYzLCAtMC4yNTEyODc5OTY3Njg5NTE0LCAwLjkwNDY5MDk4MDkxMTI1NDksIDAuNTkzNzcxOTk0MTEzOTIyMSwgLTAuODAyNDY2OTg4NTYzNTM3NiwgMC4wMzMwNzc5OTk5NDk0NTUyNiwKKyAgICAgICAgMC41NTcxMjQ5NzIzNDM0NDQ4LCAtMC43OTA3NDU5NzM1ODcwMzYxLCAwLjIwMjIwODk5NTgxOTA5MTgsIDAuNDMxMzUxMDA2MDMxMDM2NCwgLTAuODA4MzExOTk4ODQ0MTQ2NywgMC4zNzk5NjAwMDA1MTQ5ODQxMywKKyAgICAgICAgMC4xOTM5NTYwMDI1OTMwNDA0NywgLTAuODE5Nzc5OTkyMTAzNTc2NywgMC41MTMzMTE5ODIxNTQ4NDYyLCAtMC4xNTE3MjE5OTkwNDkxODY3LCAtMC44MDg0OTMwMTgxNTAzMjk2LCAwLjUwNTU4Mjk4ODI2MjE3NjUsCisgICAgICAgIDAuMDAzNTIwMDAwMDI3NDkyNjQyNCwgLTAuOTk5Nzk0MDA2MzQ3NjU2MiwgMC4wMTk5NzkwMDAwOTE1NTI3MzQsIDAuMDExNTk1OTk5ODIyMDIwNTMsIC0wLjk5ODEzNjk5NzIyMjkwMDQsIC0wLjAyMzI2MTk5OTcxMTM5NDMxLAorICAgICAgICAwLjAxMzEwOTk5OTcwODgzMTMxLCAtMC45OTg4OTcwMTYwNDg0MzE0LCAtMC4wMDg0ODA5OTk2MTg3Njg2OTIsIC0wLjAyNDg1NDAwMDY1Nzc5Njg2LCAtMC45OTc4ODA5OTUyNzM1OTAxLCAwLjAyMTI2Mzk5OTg2NDQ1OTAzOCwKKyAgICAgICAgLTAuMTEzMzUzOTk3NDY4OTQ4MzYsIC0wLjk4ODE5NzAyODYzNjkzMjQsIDAuMDY0NDExOTk3Nzk1MTA0OTgsIC0wLjAwMzU0NTk5OTk5MjYzODgyNjQsIC0wLjk5NTQxNjk5ODg2MzIyMDIsIC0wLjA3NjgyNTk5ODcyMzUwNjkzLAorICAgICAgICAtMC41ODE2ODY5NzM1NzE3NzczLCAtMC43NzYwOTAwMjU5MDE3OTQ0LCAtMC4xMzk1NzUwMDQ1Nzc2MzY3MiwgLTAuNTI2MDc2OTcyNDg0NTg4NiwgLTAuNzkwNzg5MDA4MTQwNTY0LCAtMC4yNzgxOTYwMDcwMTMzMjA5LAorICAgICAgICAwLjAxNzI4ODk5OTYzMjAwMDkyMywgLTAuOTk4MzY5OTkxNzc5MzI3NCwgLTAuMDM3MjgwMDAwNzQ2MjUwMTUsIC0wLjM2ODAwNzk4NzczNzY1NTY0LCAtMC43OTgyODkwMDA5ODgwMDY2LCAtMC40NDA1NDk5OTk0NzU0NzkxLAorICAgICAgICAwLjAzNzQzMTAwMTY2MzIwODAxLCAtMC45OTczNTIwMDQwNTEyMDg1LCAtMC4wMzY0MDA5OTk4NzM4NzY1NywgLTAuMDk2MzY4OTk4Mjg5MTA4MjgsIC0wLjc4MjkxMzk4Mjg2ODE5NDYsIC0wLjU1MDA0NTAxMzQyNzczNDQsCisgICAgICAgIDAuMTA0MjYzMDAwMTkwMjU4MDMsIC0wLjk4OTQ5NDk3OTM4MTU2MTMsIC0wLjA2NzQ2OTAwMDgxNjM0NTIxLCAwLjEwMDgzMzk5NzEzMDM5Mzk4LCAtMC44MTYxMzIwMDkwMjkzODg0LCAtMC40ODExMjQwMTM2NjIzMzgyNiwKKyAgICAgICAgMC4xODUxMDI5OTkyMTAzNTc2NywgLTAuOTc3NjQ3MDA2NTExNjg4MiwgLTAuMDk5NzExMDAwOTE5MzQyMDQsIC0wLjk2MTUwNDk5NTgyMjkwNjUsIC0wLjA4MjAzMzk5OTI2NDI0MDI2LCAtMC4xNDk1ODE5OTg1ODY2NTQ2NiwKKyAgICAgICAgLTAuODg3Njc4OTgwODI3MzMxNSwgLTAuMDQ2MjI1MDAwMTcyODUzNDcsIC0wLjM5OTU1ODk5MTE5Mzc3MTM2LCAtMC42Njc1NTgwMTQzOTI4NTI4LCAtMC4wMzcyMzk5OTg1NzkwMjUyNywgLTAuNzAwNzU2MDEzMzkzNDAyMSwKKyAgICAgICAgLTAuMjQ1NTExOTkzNzY1ODMxLCAtMC4wMzIxNjE5OTk0OTM4MzczNiwgLTAuOTE1MTkyMDA4MDE4NDkzNywgMC4xNTQ3NzE5OTg1MjQ2NjU4MywgLTAuMjQ5Mjk0OTk2MjYxNTk2NjgsIC0wLjg5NzU2OTAwMDcyMDk3NzgsCisgICAgICAgIC0wLjY3MDA3Mjk3Mjc3NDUwNTYsIDAuNzQwMjI1MDE3MDcwNzcwMywgLTAuMDE5NDI0OTk5MTMyNzUyNDIsIC0wLjU5MjM0NjAxMjU5MjMxNTcsIDAuNzYyNDgzMDAwNzU1MzEwMSwgLTAuMjE1NjY5MDA2MTA5MjM3NjcsCisgICAgICAgIC0wLjQ1NjExOTAwMDkxMTcxMjY1LCAwLjc4NjgzMTAyMTMwODg5ODksIC0wLjM5OTA2NDAwNDQyMTIzNDEzLCAtMC4yMTAwMTkwMDczMjUxNzI0MiwgMC44MDMxNDIwMTExNjU2MTg5LCAtMC41MzMzMDIwMDkxMDU2ODI0LAorICAgICAgICAwLjA1MTE5OTk5ODcwNjU3OTIxLCAwLjcwOTY5MDk4ODA2MzgxMjMsIC0wLjY1OTE2OTk3MTk0MjkwMTYsIC0wLjAxNDE3NTk5OTkwOTYzOTM1OSwgMC45OTg5MjQwMTY5NTI1MTQ2LCAtMC4wNDQxNjAwMDA5Nzk5MDAzNiwKKyAgICAgICAgLTAuMDA2NTQ0OTk5Nzc4MjcwNzIxNCwgMC45OTgzODY5NzkxMDMwODg0LCAwLjAwODgxMzk5OTU5MzI1NzkwNCwgMC4wMDIzOTYwMDAwODM1MzU5MDk3LCAwLjk5ODkyNTk4MzkwNTc5MjIsIC0wLjAxNjcxMTAwMDM1MzA5NzkxNiwKKyAgICAgICAgMC4wMzgxMzAwMDAyMzM2NTAyMSwgMC45OTY5MjQ5OTYzNzYwMzc2LCAtMC4wNDE3MTU5OTgyMDI1NjIzMywgMC4xMTc0NDkwMDA0Nzc3OTA4MywgMC45ODY2NzA5NzA5MTY3NDgsIC0wLjA3OTk4OTAwMTE1NDg5OTYsCisgICAgICAgIC0wLjAyMDcyNzk5OTUwODM4MDg5LCAtMC45OTc5NjMwMTEyNjQ4MDEsIDAuMDAxNzc0MDAwMDAzOTMzOTA2NiwgMC4xMDIzNjQwMDM2NTgyOTQ2OCwgLTAuNjk1Njg0MDE1NzUwODg1LCAtMC42OTYxNzQwMjU1MzU1ODM1LAorICAgICAgICAwLjI4MTc0OTk5MzU2MjY5ODM2LCAtMC43MDY1NDM5ODIwMjg5NjEyLCAtMC42Mzc5MjY5OTU3NTQyNDE5LCAtMC4wMjc3MTM5OTkxNTIxODM1MzMsIC0wLjk5ODM5NTk3OTQwNDQ0OTUsIC0wLjAxNjM5NTAwMDc0MDg4NTczNSwKKyAgICAgICAgMC40NjIxNDY5OTc0NTE3ODIyLCAtMC43NTAxNzg5OTI3NDgyNjA1LCAtMC40Mzc2NTE5OTE4NDQxNzcyNSwgLTAuMDE0OTQyOTk5OTI5MTg5NjgyLCAtMC45OTYwMDIwMTg0NTE2OTA3LCAtMC4wNDc1MTEwMDAxODYyMDQ5MSwKKyAgICAgICAgMC42MTIxNzk5OTQ1ODMxMjk5LCAtMC43MzU1ODU5ODc1Njc5MDE2LCAtMC4xNjU4NzE5OTI3MDcyNTI1LCAwLjA4MjAwNTk5OTk4MjM1NzAzLCAtMC45ODMzNDA5Nzg2MjI0MzY1LCAwLjExMTAyMzk5OTc1MDYxNDE3LAorICAgICAgICAwLjcyMzI0MTk4NDg0NDIwNzgsIC0wLjYwMTI5MTAwMDg0MzA0ODEsIC0wLjE0NTk1ODAwNjM4MTk4ODUzLCAwLjMyMjM4MDk4OTc4OTk2Mjc3LCAtMC45MDM2MzY5OTE5Nzc2OTE3LCAwLjI4MTk3Njk5Nzg1MjMyNTQ0LAorICAgICAgICAwLjExODg5NjAwMDA4NzI2MTIsIDAuMDk2NjExOTk4OTc1Mjc2OTUsIC0wLjk2OTIyNjAwMjY5MzE3NjMsIDAuMzIzMDI0MDA0Njk3Nzk5NywgMC4wNjc5MTkwMDA5ODMyMzgyMiwgLTAuOTA2OTI2OTg5NTU1MzU4OSwKKyAgICAgICAgMC42Mjg3ODEwMjA2NDEzMjY5LCAwLjAwOTYyODk5OTk3ODMwMzkxLCAtMC43MTEwOTcwMDIwMjk0MTksIDAuODk1MjQ2OTgyNTc0NDYyOSwgLTAuMDYwMTY5OTk4NTU2Mzc1NTA0LCAtMC4zMzY2OTc5OTU2NjI2ODkyLAorICAgICAgICAwLjk2ODkyMTAwNTcyNTg2MDYsIC0wLjA0NTA4ODAwMDU5NTU2OTYxLCAtMC4xMzA5NTgwMDU3ODU5NDIwOCwgMC4wNjUwMDIwMDE4MjE5OTQ3OCwgMC43NzA4NjgwMDMzNjgzNzc3LCAtMC42MDgzNTA5OTIyMDI3NTg4LAorICAgICAgICAwLjE4MTY1Mjk5Mjk2Mzc5MDksIDAuNzQ1NzA2OTc1NDYwMDUyNSwgLTAuNTkzOTk1OTg4MzY4OTg4LCAwLjM3NjAwNDAxMDQzODkxOTA3LCAwLjc0Njc5NDk5ODY0NTc4MjUsIC0wLjQ3NzY4NzAwMTIyODMzMjUsCisgICAgICAgIDAuNjI4ODg0OTcxMTQxODE1MiwgMC43MDIwOTY5OTg2OTE1NTg4LCAtMC4yNzE2MDcwMTE1NTY2MjUzNywgMC44MjMwMDEwMjcxMDcyMzg4LCAwLjUyOTUzNzAyMjExMzgsIC0wLjA5NDUwMzk5ODc1NjQwODY5LAorICAgICAgICAtMC4xMjgyMDA5OTI5NDE4NTYzOCwgMC45ODk5ODA5OTU2NTUwNTk4LCAtMC4wNTkxNzk5OTg5MzQyNjg5NSwgLTAuMTEwOTc2MDAzMTEwNDA4NzgsIDAuOTg3MjUwOTgzNzE1MDU3NCwgLTAuMDk5Mzc0MDAzNzA4MzYyNTgsCisgICAgICAgIC0wLjA2NzY3Mjk5NzcxMzA4ODk5LCAwLjk4NjU2ODk4NzM2OTUzNzQsIC0wLjE0MjcyMDk5NzMzMzUyNjYsIC0wLjAwMDMzNDk5OTk4OTcxODE5ODgsIDAuOTk2NzQyMDEwMTE2NTc3MSwgMC4wMjU0NDM5OTkwOTY3NTEyMTMsCisgICAgICAgIDAuMjkwMTkwOTk0NzM5NTMyNDcsIDAuOTI0MzUwOTc2OTQzOTY5NywgMC4xOTU3MjM5OTU1NjYzNjgxLCAwLjA3Mjk0OTk5ODA4MDczMDQ0LCAwLjk5NDkwNDk5NDk2NDU5OTYsIDAuMDMxNDc5MDAxMDQ1MjI3MDUsCisgICAgICAgIC0wLjA0OTQ4MzAwMTIzMjE0NzIyLCAwLjc2OTUwOTAxNzQ2NzQ5ODgsIDAuNjE2Mzg3MDA5NjIwNjY2NSwgLTAuMjQxOTM0MDAxNDQ1NzcwMjYsIDAuNzc1MDIxOTcwMjcyMDY0MiwgMC41Njc5MzMwMjI5NzU5MjE2LAorICAgICAgICAwLjA1NjIwMzk5ODYyNTI3ODQ3LCAwLjk5NTk0ODk3MDMxNzg0MDYsIDAuMDUyMTQzMDAwMDY2MjgwMzY1LCAtMC40Mjk0Mzk5OTE3MTI1NzAyLCAwLjc3OTMyMTAxNDg4MTEzNCwgMC40MTYxNTUwMTA0NjE4MDcyNSwKKyAgICAgICAgMC4wMjM4ODc5OTkzNTU3OTMsIDAuOTk0Mzk0MDA0MzQ0OTQwMiwgMC4wNzU1MzgwMDE5NTQ1NTU1MSwgLTAuNjY1NTkxMDAxNTEwNjIwMSwgMC42OTM5NTIwMjM5ODMwMDE3LCAwLjIwMTA2NDAwNTQ5NDExNzc0LAorICAgICAgICAtMC4wOTY3ODc5OTY1OTAxMzc0OCwgMC45NzkxNTg5OTc1MzU3MDU2LCAtMC4xMjg2OTAwMDQzNDg3NTQ4OCwgLTAuNzcxNjczMDIzNzAwNzE0MSwgMC41NDQzNzI5NzU4MjYyNjM0LCAwLjE3OTM1Mzk5NzExMTMyMDUsCisgICAgICAgIC0wLjQxNzgzNjk5MzkzMjcyNCwgMC44NzIxNzU5OTE1MzUxODY4LCAtMC4yNTQ0MDI5OTUxMDk1NTgxLCAtMC4wOTQ5OTQ5OTk0NjgzMjY1NywgMC4wODkzNDUwMDA2ODQyNjEzMiwgMC45Nzg3ODg5NzE5MDA5Mzk5LAorICAgICAgICAtMC4zMjk5ODgwMDI3NzcwOTk2LCAwLjA2NzAxOTAwMDY0OTQ1MjIxLCAwLjkyNzM1MjAxMTIwMzc2NTksIC0wLjY1MTEyNTAxMzgyODI3NzYsIDAuMDIzNTIzOTk5Mzc4MDg1MTM2LCAwLjcyODA3MTk4NzYyODkzNjgsCisgICAgICAgIC0wLjkxMTY3NTk4OTYyNzgzODEsIC0wLjAzMzI2Mzk5OTk2ODc2NzE2NiwgMC4zNDE2MjU5ODg0ODM0Mjg5NiwgLTAuOTg5NjMzMDIzNzM4ODYxMSwgLTAuMDEzNDk2MDAwMzE5NzE5MzE1LCAwLjA3ODM0MDk5OTc4MjA4NTQyLAorICAgICAgICAtMC4wNzA0NDEwMDAxNjM1NTUxNSwgLTAuNjk1NDc0MDI4NTg3MzQxMywgMC43MDgwMTQwMTEzODMwNTY2LCAtMC4yMTk2OTYwMDAyMTgzOTE0MiwgLTAuNjk1OTgwMDEyNDE2ODM5NiwgMC42NjQyMzIwMTU2MDk3NDEyLAorICAgICAgICAtMC40MDc1MDEwMTIwODY4NjgzLCAtMC43MzcwNTg5OTcxNTQyMzU4LCAwLjUwNDc3ODk4MTIwODgwMTMsIC0wLjU4NjYwMzk5OTEzNzg3ODQsIC0wLjc0NzMwMzAwOTAzMzIwMzEsIDAuMjQ2MzYyOTk5MDgxNjExNjMsCisgICAgICAgIC0wLjc5OTAzNjk3OTY3NTI5MywgLTAuNTYxNzM5MDI3NTAwMTUyNiwgMC4wNTc5NDYwMDAyNDgxOTM3NCwgMC4wNzYwNTM5OTkzNjQzNzYwNywgLTAuOTk2Nzk3MDI1MjAzNzA0OCwgMC4wMjQ3MjIwMDA1ODQwMDYzMSwKKyAgICAgICAgMC4wODc1NjMwMDA2MTk0MTE0NywgLTAuOTkyNjk4MDEzNzgyNTAxMiwgMC4wNTkyOTg5OTk2MDc1NjMwMiwgMC4wNzI1MDc5OTk4MzczOTg1MywgLTAuOTkwMTc5MDAyMjg1MDAzNywgMC4xMTEyMjAwMDIxNzQzNzc0NCwKKyAgICAgICAgMC4wMTU1NTYwMDAxNzMwOTE4ODgsIC0wLjk5NzAyNjAyNjI0ODkzMTksIC0wLjAxMTIzNTk5OTg3NDc3MDY0MSwgLTAuMTk0ODE0OTk0OTMxMjIxLCAtMC45NDM5NDA5OTcxMjM3MTgzLCAtMC4yMjEyNzUwMDE3NjQyOTc0OSwKKyAgICAgICAgMC4zNDE3MzEwMTE4Njc1MjMyLCAtMC44ODk2ODU5ODg0MjYyMDg1LCAwLjMwMTIzMDk5Njg0NzE1MjcsIDAuODM3NTAwOTg5NDM3MTAzMywgLTAuNDkzMTkxMDAzNzk5NDM4NSwgMC4wNTczOTI5OTk1Mjk4Mzg1NiwKKyAgICAgICAgMC44MjczMDI5OTIzNDM5MDI2LCAtMC40Njg0NjE5OTAzNTY0NDUzLCAtMC4wNTUzOTA5OTg3MjExMjI3NCwgMC41MzExMzAwMTU4NTAwNjcxLCAtMC44MTIxOTEwMDk1MjE0ODQ0LCAwLjI0MDI2MzAwMDEzMDY1MzM4LAorICAgICAgICAwLjgwNjk5NTk4Nzg5MjE1MDksIC0wLjQ3Njg5MzAwNzc1NTI3OTU0LCAwLjAwMjYzODAwMDA2MzU5ODE1NiwgMC42NDQ3NDMwMjUzMDI4ODcsIC0wLjc2NDIyMTAxMjU5MjMxNTcsIC0wLjAxNTQ1NTAwMDEwMjUxOTk4OSwKKyAgICAgICAgMC44ODU2ODAwMTk4NTU0OTkzLCAtMC40NDY0NTMwMDUwNzU0NTQ3LCAwLjA0NzQ4ODAwMDI0MzkwMjIwNiwgLTAuMDExNTM2MDAwMjk2NDczNTAzLCAtMC45OTk4NDUwMjc5MjM1ODQsIC0wLjAwMDg3MzAwMDAxMTc3OTM2NzksCisgICAgICAgIDAuNzU5NzgzMDI5NTU2Mjc0NCwgLTAuNjIyOTU5OTcxNDI3OTE3NSwgMC4wMjY2MzYwMDA3MjI2NDY3MTMsIDAuMzIxMjQ1MDE0NjY3NTExLCAtMC44ODU1MDAwMTM4MjgyNzc2LCAwLjMzNTY5NjAxMTc4MTY5MjUsCisgICAgICAgIDAuOTk4MDkxOTk1NzE2MDk1LCAtMC4wMDU2NzMwMDAxMjMzNTE4MTIsIDAuMDI1MjYyMDAwMDM5MjE5ODU2LCAwLjk5NDE1MzAyMjc2NjExMzMsIDAuMDQ2OTA0OTk5NzYyNzczNTE0LCAtMC4wMDk1MTU5OTk4MTYzNTgwOSwKKyAgICAgICAgMC45ODM4NTkwMDI1OTAxNzk0LCAtMC4wMDA0MTcwMDAwMDI5MjYyMTU1MywgMC4wMTA1NzIwMDA0MDY2ODI0OTEsIDAuOTkwNTU2MDAxNjYzMjA4LCAwLjAxODg2NTAwMDQ1NjU3MTU4LCAwLjA0NDIyMjAwMDk4NjMzNzY2LAorICAgICAgICAwLjk5MjE5OTAwMzY5NjQ0MTcsIC0wLjEyMjkwNTk5OTQyMjA3MzM2LCAwLjAxMTIwMjAwMDA4MTUzOTE1NCwgMC44MjgwMDAwMDkwNTk5MDYsIDAuNTI1ODE2OTc3MDI0MDc4NCwgLTAuMDg0NjEwMDAwMjUyNzIzNywKKyAgICAgICAgMC44NzA0ODM5OTQ0ODM5NDc4LCAwLjQ4NzgwNzk4OTEyMDQ4MzQsIDAuMDA2MzU1OTk5OTY4OTQ1OTgsIDAuNzc3MzkzOTk2NzE1NTQ1NywgMC41NjU5NjcwMjMzNzI2NTAxLCAtMC4wOTYzNDY5OTY3MjQ2MDU1NiwKKyAgICAgICAgMC44MTkwNTgwMDEwNDE0MTI0LCAwLjQ3NDAzODAwNDg3NTE4MzEsIDAuMDExOTA0MDAwMzA0NjM5MzQsIDAuOTAxNzU5MDI4NDM0NzUzNCwgMC4zNDg2NDMwMDQ4OTQyNTY2LCAtMC4wNTYwMTQwMDEzNjk0NzYzMiwKKyAgICAgICAgMC40MTAzODU5OTYxMDMyODY3NCwgMC44NzA2MDIwMTE2ODA2MDMsIDAuMjcxMzU4MDEzMTUzMDc2MTcsIDAuMzAxOTMyMDA3MDc0MzU2MSwgMC44ODk3NjgwMDQ0MTc0MTk0LCAwLjM0MTAxOTAwNDU4MzM1ODc2LAorICAgICAgICAwLjEzOTEyMjk5Mjc1Mzk4MjU0LCAwLjk0MjMzOTAwMzA4NjA5MDEsIC0wLjMwNDIxMjAwMzk0NjMwNDMsIDAuNjE2NzMwOTg4MDI1NjY1MywgMC43NjkyODQwMDk5MzM0NzE3LCAwLjE2Njc2NTAwNDM5NjQzODYsCisgICAgICAgIDAuNTU1ODM1MDA4NjIxMjE1OCwgMC44MDEwNzQ5ODE2ODk0NTMxLCAwLjIxODY3Nzk5NzU4OTExMTMzLCAtMC40NDEwMDI5OTQ3NzU3NzIxLCAwLjg1NTUzOTk3NzU1MDUwNjYsIC0wLjI2OTMxNTk4NzgyNTM5MzcsCisgICAgICAgIC0wLjg2Mzk2OTAyNzk5NjA2MzIsIDAuNDY0MzU2MDA1MTkxODAzLCAtMC4wMTkyMjIwMDA2MTM4MDg2MzIsIC0wLjg3MDU3MTAxNzI2NTMxOTgsIDAuNDg1NTQ3OTg5NjA2ODU3MywgLTAuMDA1NjIzOTk5OTgzMDcyMjgxLAorICAgICAgICAtMC4zMzk2OTMwMDk4NTMzNjMwNCwgMC44NzYyNzc5ODMxODg2MjkyLCAtMC4zNDA5NzI5ODk3OTc1OTIxNiwgLTAuNzYwODIwOTg0ODQwMzkzMSwgMC41ODQwMjY5OTIzMjEwMTQ0LCAwLjExMjM2NTk5ODMyNzczMjA5LAorICAgICAgICAtMC4xNjc2MzI5OTcwMzU5ODAyMiwgMC45NDE5NDI5ODk4MjYyMDI0LCAwLjI5MDkxNTk5NTgzNjI1NzkzLCAtMC44MjYwNjM5OTA1OTI5NTY1LCAwLjQ3MzA0OTk5ODI4MzM4NjIzLCAtMC4wMTM0Njk5OTk2NTYwODEyLAorICAgICAgICAtMC42MDA2MjgwMTgzNzkyMTE0LCAwLjc4MjI5NzAxNTE5MDEyNDUsIC0wLjE2MTE0MjAwNjUxNjQ1NjYsIC0wLjg0OTU4NzAyMzI1ODIwOTIsIDAuNDQ0MDc3OTk4Mzk5NzM0NSwgMC4xNzQxNzcwMDU4ODcwMzE1NiwKKyAgICAgICAgLTAuNTI1MTQ0OTk0MjU4ODgwNiwgMC44MjM2MzQwMjg0MzQ3NTM0LCAtMC4yMTQxMjM5OTQxMTIwMTQ3NywgLTAuOTk5MTQ4MDExMjA3NTgwNiwgMC4wMDE3NTE5OTk5NTI4MzAzNzQyLCAwLjAwNzg5MDAwMDAwODA0NjYyNywKKyAgICAgICAgLTAuOTk0NjU3OTkzMzE2NjUwNCwgMC4wNjEyOTQwMDA1OTU4MDgwMywgMC4wMDc3OTY5OTk5OTgzOTA2NzUsIC0wLjk4NDA5MTk5NzE0NjYwNjQsIDAuMDA4NzMyOTk5Njc0OTc1ODcyLCAtMC4wMDAxMjg5OTk5OTI3Mzk0MDkyLAorICAgICAgICAtMC45OTE2MDU5OTcwODU1NzEzLCAwLjAxNTIwNzAwMDA3Njc3MDc4MiwgLTAuMDQ3OTg2OTk5MTU0MDkwODgsIC0wLjk4OTk4OTk5NTk1NjQyMDksIC0wLjEzODE2Njk5Mzg1NjQzMDA1LCAtMC4wMTk0MzM5OTk0MzQxMTM1MDMsCisgICAgICAgIC0wLjc5Mjc4MjAwODY0NzkxODcsIC0wLjU2Njk1OTk3NzE0OTk2MzQsIDAuMDY3OTU3OTk3MzIyMDgyNTIsIC0wLjgzNjM0OTAxMDQ2NzUyOTMsIC0wLjQ2ODU3MTk5MDcyODM3ODMsIDAuMDQ4OTU1MDAwOTM2OTg1MDE2LAorICAgICAgICAtMC44MTM4ODMwMDY1NzI3MjM0LCAtMC40NzQzMDg5OTczOTI2NTQ0LCAwLjAwMDgzNzk5OTk3ODEwMjc0MzYsIC0wLjg4Njk4Njk3MDkwMTQ4OTMsIC0wLjQ0MTcxODAxMjA5NDQ5NzcsIC0wLjA1NjI1Mzk5OTQ3MTY2NDQzLAorICAgICAgICAtMC43ODk4NjQwMDM2NTgyOTQ3LCAtMC41NTIyNzUwMDIwMDI3MTYxLCAtMC4xNTAxNjgwMDE2NTE3NjM5MiwgLTAuMjk3MzQwOTg5MTEyODU0LCAtMC44OTk4MTI5OTYzODc0ODE3LCAtMC4zMTkyNTgwMDQ0MjY5NTYyLAorICAgICAgICAtMC40OTc1OTc5OTI0MjAxOTY1MywgLTAuODMxNzc5MDAzMTQzMzEwNSwgLTAuMjQ0MTE1OTkzMzgwNTQ2NTcsIC0wLjYyOTU2MjAyMDMwMTgxODgsIC0wLjc3NjU0MjAwNzkyMzEyNjIsIDAuMDEyNjE3OTk5Njg3NzkwODcsCisgICAgICAgIC0wLjAxMTMzODAwMDE4NTc4NzY3OCwgLTAuOTk5ODk5MDI5NzMxNzUwNSwgLTAuMDA4NTYxMDAwMjI3OTI4MTYyLCAtMC4zNTQ3MzIwMDY3ODgyNTM4LCAtMC44Njc5NTkwMjI1MjE5NzI3LCAtMC4zNDUzNTEwMTA1NjA5ODk0LAorICAgICAgICAwLjA5NjE4OTk5ODA5MDI2NzE4LCAwLjQ5MDY2MDAxMTc2ODM0MTA2LCAtMC41LCAwLjE4NTEwMDAwNDA3Njk1NzcsIDAuMjc3MjE3MDAwNzIyODg1MTMsIC0wLjY2NjY2Njk4NDU1ODEwNTUsCisgICAgICAgIDAuMzI1NjY2MDEwMzc5NzkxMjYsIDAuNzYxMzk4OTcxMDgwNzgsIC0wLjE4MTk5MDk5NjAwMzE1MDk0LCAwLjA2MjQwMTAwMDQxMDMxODM3NSwgMC45OTM5MDIwMjc2MDY5NjQxLCAtMC4wOTA5MDcwMDAwMDUyNDUyMSwKKyAgICAgICAgMC4zODAzMjA5OTYwNDYwNjYzLCAwLjkyMTQzNjAxMTc5MTIyOTIsIC0wLjAwMDA3MTAwMDAwMjIwODE2NTgyLCAwLjAzMDkxODAwMDI2NTk1NTkyNSwgMC45OTY5NzI5NzgxMTUwODE4LCAwLjA3MTMzNjAwMTE1Nzc2MDYyLAorICAgICAgICAwLjM4MDQxMDk5OTA1OTY3NzEsIDAuOTIyMDg4OTgwNjc0NzQzNywgMC4wMDAxNjMwMDAwMDQyNDk2MjQ5LCAwLjAyNDcxMjAwMDA0MjIwMDA5LCAwLjk5NzU3OTk5MTgxNzQ3NDQsIDAuMDY0OTgzMDAyODQxNDcyNjMsCisgICAgICAgIDAuMzU1MTA5MDA2MTY2NDU4MTMsIDAuOTI2ODkxMDI4ODgxMDczLCAwLjAzMjE2MTAwMTExNjAzNzM3LCAwLjA3NjU3ODk5NzA3NTU1NzcxLCAwLjk5MjQ3NDAxOTUyNzQzNTMsIC0wLjA5NTU1NTk5ODM4NDk1MjU1LAorICAgICAgICAwLjI3NzIxNzAwMDcyMjg4NTEzLCAwLjE4NTEwMDAwNDA3Njk1NzcsIC0wLjY2NjY2Njk4NDU1ODEwNTUsIDAuNTkyOTk4OTgxNDc1ODMwMSwgMC41NzgxMTA5OTI5MDg0Nzc4LCAtMC4xODIwNTI5OTk3MzQ4Nzg1NCwKKyAgICAgICAgMC43MDQ4NTE5ODQ5Nzc3MjIyLCAwLjcwNDg1MTk4NDk3NzcyMjIsIDAsIDAuNzA1MjcyMDE4OTA5NDU0MywgMC43MDU0MTc5OTA2ODQ1MDkzLCAtMC4wMDAwMjQ5OTk5OTkzNjg0NDY4OCwKKyAgICAgICAgMC42ODM1MjE5ODYwMDc2OTA0LCAwLjcxOTk0MTAyMDAxMTkwMTksIDAuMDMyMDQ2MDAxNDA0NTIzODUsIDAuMzI3MTA3MDEyMjcxODgxMSwgMC4wNjQxMjU5OTk4MDgzMTE0NiwgLTAuNjY2NjY2OTg0NTU4MTA1NSwKKyAgICAgICAgMC43Njk0Njk5NzY0MjUxNzA5LCAwLjMwNjEwMDAxMDg3MTg4NzIsIC0wLjE4MjI1MzAwMzEyMDQyMjM2LCAwLjkyMTQzNzk3ODc0NDUwNjgsIDAuMzgwMzMxOTkzMTAzMDI3MzQsIDAuMDAwMDY3MDAwMDAwODU0MDIyOCwKKyAgICAgICAgMC45MjIwODgwMjcwMDA0MjcyLCAwLjM4MDQ0MzAwNjc1MzkyMTUsIC0wLjAwMDE2Nzk5OTk5ODY2NjM0NjA3LCAwLjkwNzExMzAxNTY1MTcwMjksIDAuNDAzMDAzOTkwNjUwMTc3LCAwLjAzMjQzNzAwMDQyMzY2OTgxNSwKKyAgICAgICAgMCwgMCwgLTEsIDAuNjYyNjAzMDIwNjY4MDI5OCwgMC4wNDE1NzQ5OTk2OTAwNTU4NSwgLTAuMjcyNzI0OTg2MDc2MzU1LAorICAgICAgICAwLjk5Njk3ODk5ODE4NDIwNDEsIDAuMDMwODI2MDAwNDk2NzQ1MTEsIC0wLjA3MTI5Mjk5NjQwNjU1NTE4LCAwLjk5NzU5MTAxODY3Njc1NzgsIDAuMDI0NDQ3OTk5ODk0NjE4OTg4LCAtMC4wNjQ5MjE5OTc0ODc1NDUwMSwKKyAgICAgICAgMC45OTI1MDQwMDA2NjM3NTczLCAwLjA3NjMwOTAwMjkzNTg4NjM4LCAwLjA5NTQ1NzAwMjUyMDU2MTIyLCAwLjQ5MDY2MDAxMTc2ODM0MTA2LCAtMC4wOTYxODk5OTgwOTAyNjcxOCwgLTAuNSwKKyAgICAgICAgMC4yNzcyMTcwMDA3MjI4ODUxMywgLTAuMTg1MTAwMDA0MDc2OTU3NywgLTAuNjY2NjY2OTg0NTU4MTA1NSwgMC43NjEzOTg5NzEwODA3OCwgLTAuMzI1NjY2MDEwMzc5NzkxMjYsIC0wLjE4MTk5MDk5NjAwMzE1MDk0LAorICAgICAgICAwLjk5MzkwMjAyNzYwNjk2NDEsIC0wLjA2MjQwMTAwMDQxMDMxODM3NSwgLTAuMDkwOTA3MDAwMDA1MjQ1MjEsIDAuOTIxNDM2MDExNzkxMjI5MiwgLTAuMzgwMzIwOTk2MDQ2MDY2MywgLTAuMDAwMDcxMDAwMDAyMjA4MTY1ODIsCisgICAgICAgIDAuOTk2OTcyOTc4MTE1MDgxOCwgLTAuMDMwOTE4MDAwMjY1OTU1OTI1LCAwLjA3MTMzNjAwMTE1Nzc2MDYyLCAwLjkyMjA4ODk4MDY3NDc0MzcsIC0wLjM4MDQxMDk5OTA1OTY3NzEsIDAuMDAwMTYzMDAwMDA0MjQ5NjI0OSwKKyAgICAgICAgMC45OTc1Nzk5OTE4MTc0NzQ0LCAtMC4wMjQ3MTIwMDAwNDIyMDAwOSwgMC4wNjQ5ODMwMDI4NDE0NzI2MywgMC45MjY4OTEwMjg4ODEwNzMsIC0wLjM1NTEwOTAwNjE2NjQ1ODEzLCAwLjAzMjE2MTAwMTExNjAzNzM3LAorICAgICAgICAwLjk5MjQ3NDAxOTUyNzQzNTMsIC0wLjA3NjU3ODk5NzA3NTU1NzcxLCAtMC4wOTU1NTU5OTgzODQ5NTI1NSwgMC4xODUxMDAwMDQwNzY5NTc3LCAtMC4yNzcyMTcwMDA3MjI4ODUxMywgLTAuNjY2NjY2OTg0NTU4MTA1NSwKKyAgICAgICAgMC41NzgxMTA5OTI5MDg0Nzc4LCAtMC41OTI5OTg5ODE0NzU4MzAxLCAtMC4xODIwNTI5OTk3MzQ4Nzg1NCwgMC43MDQ4NTE5ODQ5Nzc3MjIyLCAtMC43MDQ4NTE5ODQ5Nzc3MjIyLCAwLAorICAgICAgICAwLjcwNTQxNzk5MDY4NDUwOTMsIC0wLjcwNTI3MjAxODkwOTQ1NDMsIC0wLjAwMDAyNDk5OTk5OTM2ODQ0Njg4LCAwLjcxOTk0MTAyMDAxMTkwMTksIC0wLjY4MzUyMTk4NjAwNzY5MDQsIDAuMDMyMDQ2MDAxNDA0NTIzODUsCisgICAgICAgIDAuMDY0MTI1OTk5ODA4MzExNDYsIC0wLjMyNzEwNzAxMjI3MTg4MTEsIC0wLjY2NjY2Njk4NDU1ODEwNTUsIDAuMzA2MTAwMDEwODcxODg3MiwgLTAuNzY5NDY5OTc2NDI1MTcwOSwgLTAuMTgyMjUzMDAzMTIwNDIyMzYsCisgICAgICAgIDAuMzgwMzMxOTkzMTAzMDI3MzQsIC0wLjkyMTQzNzk3ODc0NDUwNjgsIDAuMDAwMDY3MDAwMDAwODU0MDIyOCwgMC4zODA0NDMwMDY3NTM5MjE1LCAtMC45MjIwODgwMjcwMDA0MjcyLCAtMC4wMDAxNjc5OTk5OTg2NjYzNDYwNywKKyAgICAgICAgMC40MDMwMDM5OTA2NTAxNzcsIC0wLjkwNzExMzAxNTY1MTcwMjksIDAuMDMyNDM3MDAwNDIzNjY5ODE1LCAwLCAwLCAtMSwKKyAgICAgICAgMC4wNDE1NzQ5OTk2OTAwNTU4NSwgLTAuNjYyNjAzMDIwNjY4MDI5OCwgLTAuMjcyNzI0OTg2MDc2MzU1LCAwLjAzMDgyNjAwMDQ5Njc0NTExLCAtMC45OTY5Nzg5OTgxODQyMDQxLCAtMC4wNzEyOTI5OTY0MDY1NTUxOCwKKyAgICAgICAgMC4wMjQ0NDc5OTk4OTQ2MTg5ODgsIC0wLjk5NzU5MTAxODY3Njc1NzgsIC0wLjA2NDkyMTk5NzQ4NzU0NTAxLCAwLjA3NjMwOTAwMjkzNTg4NjM4LCAtMC45OTI1MDQwMDA2NjM3NTczLCAwLjA5NTQ1NzAwMjUyMDU2MTIyLAorICAgICAgICAtMC4wOTYxODk5OTgwOTAyNjcxOCwgLTAuNDkwNjYwMDExNzY4MzQxMDYsIC0wLjUsIC0wLjE4NTEwMDAwNDA3Njk1NzcsIC0wLjI3NzIxNzAwMDcyMjg4NTEzLCAtMC42NjY2NjY5ODQ1NTgxMDU1LAorICAgICAgICAtMC4zMjU2NjYwMTAzNzk3OTEyNiwgLTAuNzYxMzk4OTcxMDgwNzgsIC0wLjE4MTk5MDk5NjAwMzE1MDk0LCAtMC4wNjI0MDEwMDA0MTAzMTgzNzUsIC0wLjk5MzkwMjAyNzYwNjk2NDEsIC0wLjA5MDkwNzAwMDAwNTI0NTIxLAorICAgICAgICAtMC4zODAzMjA5OTYwNDYwNjYzLCAtMC45MjE0MzYwMTE3OTEyMjkyLCAtMC4wMDAwNzEwMDAwMDIyMDgxNjU4MiwgLTAuMDMwOTE4MDAwMjY1OTU1OTI1LCAtMC45OTY5NzI5NzgxMTUwODE4LCAwLjA3MTMzNjAwMTE1Nzc2MDYyLAorICAgICAgICAtMC4zODA0MTA5OTkwNTk2NzcxLCAtMC45MjIwODg5ODA2NzQ3NDM3LCAwLjAwMDE2MzAwMDAwNDI0OTYyNDksIC0wLjAyNDcxMjAwMDA0MjIwMDA5LCAtMC45OTc1Nzk5OTE4MTc0NzQ0LCAwLjA2NDk4MzAwMjg0MTQ3MjYzLAorICAgICAgICAtMC4zNTUxMDkwMDYxNjY0NTgxMywgLTAuOTI2ODkxMDI4ODgxMDczLCAwLjAzMjE2MTAwMTExNjAzNzM3LCAtMC4wNzY1Nzg5OTcwNzU1NTc3MSwgLTAuOTkyNDc0MDE5NTI3NDM1MywgLTAuMDk1NTU1OTk4Mzg0OTUyNTUsCisgICAgICAgIC0wLjI3NzIxNzAwMDcyMjg4NTEzLCAtMC4xODUxMDAwMDQwNzY5NTc3LCAtMC42NjY2NjY5ODQ1NTgxMDU1LCAtMC41OTI5OTg5ODE0NzU4MzAxLCAtMC41NzgxMTA5OTI5MDg0Nzc4LCAtMC4xODIwNTI5OTk3MzQ4Nzg1NCwKKyAgICAgICAgLTAuNzA0ODUxOTg0OTc3NzIyMiwgLTAuNzA0ODUxOTg0OTc3NzIyMiwgMCwgLTAuNzA1MjcyMDE4OTA5NDU0MywgLTAuNzA1NDE3OTkwNjg0NTA5MywgLTAuMDAwMDI0OTk5OTk5MzY4NDQ2ODgsCisgICAgICAgIC0wLjY4MzUyMTk4NjAwNzY5MDQsIC0wLjcxOTk0MTAyMDAxMTkwMTksIDAuMDMyMDQ2MDAxNDA0NTIzODUsIC0wLjMyNzEwNzAxMjI3MTg4MTEsIC0wLjA2NDEyNTk5OTgwODMxMTQ2LCAtMC42NjY2NjY5ODQ1NTgxMDU1LAorICAgICAgICAtMC43Njk0Njk5NzY0MjUxNzA5LCAtMC4zMDYxMDAwMTA4NzE4ODcyLCAtMC4xODIyNTMwMDMxMjA0MjIzNiwgLTAuOTIxNDM3OTc4NzQ0NTA2OCwgLTAuMzgwMzMxOTkzMTAzMDI3MzQsIDAuMDAwMDY3MDAwMDAwODU0MDIyOCwKKyAgICAgICAgLTAuOTIyMDg4MDI3MDAwNDI3MiwgLTAuMzgwNDQzMDA2NzUzOTIxNSwgLTAuMDAwMTY3OTk5OTk4NjY2MzQ2MDcsIC0wLjkwNzExMzAxNTY1MTcwMjksIC0wLjQwMzAwMzk5MDY1MDE3NywgMC4wMzI0MzcwMDA0MjM2Njk4MTUsCisgICAgICAgIDAsIDAsIC0xLCAtMC42NjI2MDMwMjA2NjgwMjk4LCAtMC4wNDE1NzQ5OTk2OTAwNTU4NSwgLTAuMjcyNzI0OTg2MDc2MzU1LAorICAgICAgICAtMC45OTY5Nzg5OTgxODQyMDQxLCAtMC4wMzA4MjYwMDA0OTY3NDUxMSwgLTAuMDcxMjkyOTk2NDA2NTU1MTgsIC0wLjk5NzU5MTAxODY3Njc1NzgsIC0wLjAyNDQ0Nzk5OTg5NDYxODk4OCwgLTAuMDY0OTIxOTk3NDg3NTQ1MDEsCisgICAgICAgIC0wLjk5MjUwNDAwMDY2Mzc1NzMsIC0wLjA3NjMwOTAwMjkzNTg4NjM4LCAwLjA5NTQ1NzAwMjUyMDU2MTIyLCAtMC40OTA2NjAwMTE3NjgzNDEwNiwgMC4wOTYxODk5OTgwOTAyNjcxOCwgLTAuNSwKKyAgICAgICAgLTAuMjc3MjE3MDAwNzIyODg1MTMsIDAuMTg1MTAwMDA0MDc2OTU3NywgLTAuNjY2NjY2OTg0NTU4MTA1NSwgLTAuNzYxMzk4OTcxMDgwNzgsIDAuMzI1NjY2MDEwMzc5NzkxMjYsIC0wLjE4MTk5MDk5NjAwMzE1MDk0LAorICAgICAgICAtMC45OTM5MDIwMjc2MDY5NjQxLCAwLjA2MjQwMTAwMDQxMDMxODM3NSwgLTAuMDkwOTA3MDAwMDA1MjQ1MjEsIC0wLjkyMTQzNjAxMTc5MTIyOTIsIDAuMzgwMzIwOTk2MDQ2MDY2MywgLTAuMDAwMDcxMDAwMDAyMjA4MTY1ODIsCisgICAgICAgIC0wLjk5Njk3Mjk3ODExNTA4MTgsIDAuMDMwOTE4MDAwMjY1OTU1OTI1LCAwLjA3MTMzNjAwMTE1Nzc2MDYyLCAtMC45MjIwODg5ODA2NzQ3NDM3LCAwLjM4MDQxMDk5OTA1OTY3NzEsIDAuMDAwMTYzMDAwMDA0MjQ5NjI0OSwKKyAgICAgICAgLTAuOTk3NTc5OTkxODE3NDc0NCwgMC4wMjQ3MTIwMDAwNDIyMDAwOSwgMC4wNjQ5ODMwMDI4NDE0NzI2MywgLTAuOTI2ODkxMDI4ODgxMDczLCAwLjM1NTEwOTAwNjE2NjQ1ODEzLCAwLjAzMjE2MTAwMTExNjAzNzM3LAorICAgICAgICAtMC45OTI0NzQwMTk1Mjc0MzUzLCAwLjA3NjU3ODk5NzA3NTU1NzcxLCAtMC4wOTU1NTU5OTgzODQ5NTI1NSwgLTAuMTg1MTAwMDA0MDc2OTU3NywgMC4yNzcyMTcwMDA3MjI4ODUxMywgLTAuNjY2NjY2OTg0NTU4MTA1NSwKKyAgICAgICAgLTAuNTc4MTEwOTkyOTA4NDc3OCwgMC41OTI5OTg5ODE0NzU4MzAxLCAtMC4xODIwNTI5OTk3MzQ4Nzg1NCwgLTAuNzA0ODUxOTg0OTc3NzIyMiwgMC43MDQ4NTE5ODQ5Nzc3MjIyLCAwLAorICAgICAgICAtMC43MDU0MTc5OTA2ODQ1MDkzLCAwLjcwNTI3MjAxODkwOTQ1NDMsIC0wLjAwMDAyNDk5OTk5OTM2ODQ0Njg4LCAtMC43MTk5NDEwMjAwMTE5MDE5LCAwLjY4MzUyMTk4NjAwNzY5MDQsIDAuMDMyMDQ2MDAxNDA0NTIzODUsCisgICAgICAgIC0wLjA2NDEyNTk5OTgwODMxMTQ2LCAwLjMyNzEwNzAxMjI3MTg4MTEsIC0wLjY2NjY2Njk4NDU1ODEwNTUsIC0wLjMwNjEwMDAxMDg3MTg4NzIsIDAuNzY5NDY5OTc2NDI1MTcwOSwgLTAuMTgyMjUzMDAzMTIwNDIyMzYsCisgICAgICAgIC0wLjM4MDMzMTk5MzEwMzAyNzM0LCAwLjkyMTQzNzk3ODc0NDUwNjgsIDAuMDAwMDY3MDAwMDAwODU0MDIyOCwgLTAuMzgwNDQzMDA2NzUzOTIxNSwgMC45MjIwODgwMjcwMDA0MjcyLCAtMC4wMDAxNjc5OTk5OTg2NjYzNDYwNywKKyAgICAgICAgLTAuNDAzMDAzOTkwNjUwMTc3LCAwLjkwNzExMzAxNTY1MTcwMjksIDAuMDMyNDM3MDAwNDIzNjY5ODE1LCAwLCAwLCAtMSwKKyAgICAgICAgLTAuMDQxNTc0OTk5NjkwMDU1ODUsIDAuNjYyNjAzMDIwNjY4MDI5OCwgLTAuMjcyNzI0OTg2MDc2MzU1LCAtMC4wMzA4MjYwMDA0OTY3NDUxMSwgMC45OTY5Nzg5OTgxODQyMDQxLCAtMC4wNzEyOTI5OTY0MDY1NTUxOCwKKyAgICAgICAgLTAuMDI0NDQ3OTk5ODk0NjE4OTg4LCAwLjk5NzU5MTAxODY3Njc1NzgsIC0wLjA2NDkyMTk5NzQ4NzU0NTAxLCAtMC4wNzYzMDkwMDI5MzU4ODYzOCwgMC45OTI1MDQwMDA2NjM3NTczLCAwLjA5NTQ1NzAwMjUyMDU2MTIyLAorICAgICAgICAwLjA3NjU3ODk5NzA3NTU1NzcxLCAwLjk5MjQ3NDAxOTUyNzQzNTMsIC0wLjA5NTU1NTk5ODM4NDk1MjU1LCAwLjQwMzA3MDk4NjI3MDkwNDU0LCAwLjkwNzA2NDk3NDMwODAxMzksIC0wLjAzMjU1Mjk5ODUxMjk4MzMyLAorICAgICAgICAwLjM3NTM2NDAwNTU2NTY0MzMsIDAuOTA3MDIwOTg2MDgwMTY5NywgMC4wMDAwMDcwMDAwMDAwOTYwMTM1MzcsIDAuMTgzMDYyMDAyMDYyNzk3NTUsIDAuOTgyMDg5OTk2MzM3ODkwNiwgLTAuMDQ0NTczOTk5OTQxMzQ5MDMsCisgICAgICAgIDAuMzc1MTY0OTg1NjU2NzM4MywgMC45MDY1NzUwMjQxMjc5NjAyLCAtMC4wMDAwNzQwMDAwMDMyMjM3NzMwOSwgMC4xODgwMTQ5OTkwMzIwMjA1NywgMC45ODE2MTAwMDAxMzM1MTQ0LCAtMC4wMzMwNDEwMDAzNjYyMTA5NCwKKyAgICAgICAgMC4zNzU5MDcwMDM4Nzk1NDcxLCAwLjkwODYwNzAwNjA3Mjk5OCwgLTAuMDAwMjYxOTk5OTg2ODMyOTYxNDQsIDAuMTY2MjM0MDAxNTE3Mjk1ODQsIDAuOTgzNzIyOTg0NzkwODAyLCAtMC4wNjgyMjg5OTcyOTAxMzQ0MywKKyAgICAgICAgMC4zMzMyNDA5ODU4NzAzNjEzMywgMC45MjkwMDMwMDAyNTkzOTk0LCAwLjAyOTgwMzAwMDM5MDUyOTYzMywgMC4xNDA3MTQwMDQ2MzU4MTA4NSwgMC45ODYyMDQwMjgxMjk1Nzc2LCAtMC4wODcxODEwMDE5MDE2MjY1OSwKKyAgICAgICAgMC43MTk4Mjk5NzY1NTg2ODUzLCAwLjY4MzY1NTk3NzI0OTE0NTUsIC0wLjAzMjAxNzAwMDAxOTU1MDMyMywgMC42OTQzNTM5OTc3MDczNjY5LCAwLjY5NDM1Mzk5NzcwNzM2NjksIDAsCisgICAgICAgIDAuNjk0MDM0OTkzNjQ4NTI5LCAwLjY5NDAzNDk5MzY0ODUyOSwgMCwgMC42OTU1MTAwMjk3OTI3ODU2LCAwLjY5NTUxMDAyOTc5Mjc4NTYsIDAsCisgICAgICAgIDAuNjYzOTE3MDA1MDYyMTAzMywgMC43MzA2MTUwMTk3OTgyNzg4LCAwLjAyOTEwMDk5OTIzNjEwNjg3MywgMC45MjY4NjQ5ODE2NTEzMDYyLCAwLjM1NTIzMzAxMzYyOTkxMzMzLCAtMC4wMzIwMzk5OTk5NjE4NTMwMywKKyAgICAgICAgMC45MDcwMjA5ODYwODAxNjk3LCAwLjM3NTM2NDk4OTA0MjI4MjEsIC0wLjAwMDAwNzAwMDAwMDA5NjAxMzUzNywgMC45MDY1NzUwMjQxMjc5NjAyLCAwLjM3NTE2NDk4NTY1NjczODMsIDAuMDAwMDczMDAwMDAyODg1MjM3MzQsCisgICAgICAgIDAuOTA4NjA3MDA2MDcyOTk4LCAwLjM3NTkwNzAwMzg3OTU0NzEsIDAuMDAwMjYxOTk5OTg2ODMyOTYxNDQsIDAuODkyNjI1OTg3NTI5NzU0NiwgMC40MjExNDYwMDUzOTIwNzQ2LCAwLjAyODk5MTk5OTEwNDYxOTAyNiwKKyAgICAgICAgMC45OTI0NzQwMTk1Mjc0MzUzLCAwLjA3NjQ2NTAwMzE5MjQyNDc3LCAwLjA5NTY1MTAwMDczODE0MzkyLCAwLjk4MjA4OTk5NjMzNzg5MDYsIDAuMTgzMDYyMDAyMDYyNzk3NTUsIDAuMDQ0NTczOTk5OTQxMzQ5MDMsCisgICAgICAgIDAuOTgxNjEwMDAwMTMzNTE0NCwgMC4xODgwMTQ5OTkwMzIwMjA1NywgMC4wMzMwNDEwMDAzNjYyMTA5NCwgMC45ODM3MjI5ODQ3OTA4MDIsIDAuMTY2MjM0MDAxNTE3Mjk1ODQsIDAuMDY4MjI4OTk3MjkwMTM0NDMsCisgICAgICAgIDAuOTg2MjA0MDI4MTI5NTc3NiwgMC4xNDA3MTQwMDQ2MzU4MTA4NSwgMC4wODcxODEwMDE5MDE2MjY1OSwgMC45OTI0NzQwMTk1Mjc0MzUzLCAtMC4wNzY1Nzg5OTcwNzU1NTc3MSwgLTAuMDk1NTU1OTk4Mzg0OTUyNTUsCisgICAgICAgIDAuOTA3MDY0OTc0MzA4MDEzOSwgLTAuNDAzMDcwOTg2MjcwOTA0NTQsIC0wLjAzMjU1Mjk5ODUxMjk4MzMyLCAwLjkwNzAyMDk4NjA4MDE2OTcsIC0wLjM3NTM2NDAwNTU2NTY0MzMsIDAuMDAwMDA3MDAwMDAwMDk2MDEzNTM3LAorICAgICAgICAwLjk4MjA4OTk5NjMzNzg5MDYsIC0wLjE4MzA2MjAwMjA2Mjc5NzU1LCAtMC4wNDQ1NzM5OTk5NDEzNDkwMywgMC45MDY1NzUwMjQxMjc5NjAyLCAtMC4zNzUxNjQ5ODU2NTY3MzgzLCAtMC4wMDAwNzQwMDAwMDMyMjM3NzMwOSwKKyAgICAgICAgMC45ODE2MTAwMDAxMzM1MTQ0LCAtMC4xODgwMTQ5OTkwMzIwMjA1NywgLTAuMDMzMDQxMDAwMzY2MjEwOTQsIDAuOTA4NjA3MDA2MDcyOTk4LCAtMC4zNzU5MDcwMDM4Nzk1NDcxLCAtMC4wMDAyNjE5OTk5ODY4MzI5NjE0NCwKKyAgICAgICAgMC45ODM3MjI5ODQ3OTA4MDIsIC0wLjE2NjIzNDAwMTUxNzI5NTg0LCAtMC4wNjgyMjg5OTcyOTAxMzQ0MywgMC45MjkwMDMwMDAyNTkzOTk0LCAtMC4zMzMyNDA5ODU4NzAzNjEzMywgMC4wMjk4MDMwMDAzOTA1Mjk2MzMsCisgICAgICAgIDAuOTg2MjA0MDI4MTI5NTc3NiwgLTAuMTQwNzE0MDA0NjM1ODEwODUsIC0wLjA4NzE4MTAwMTkwMTYyNjU5LCAwLjY4MzY1NTk3NzI0OTE0NTUsIC0wLjcxOTgyOTk3NjU1ODY4NTMsIC0wLjAzMjAxNzAwMDAxOTU1MDMyMywKKyAgICAgICAgMC42OTQzNTM5OTc3MDczNjY5LCAtMC42OTQzNTM5OTc3MDczNjY5LCAwLCAwLjY5NDAzNDk5MzY0ODUyOSwgLTAuNjk0MDM0OTkzNjQ4NTI5LCAwLAorICAgICAgICAwLjY5NTUxMDAyOTc5Mjc4NTYsIC0wLjY5NTUxMDAyOTc5Mjc4NTYsIDAsIDAuNzMwNjE1MDE5Nzk4Mjc4OCwgLTAuNjYzOTE3MDA1MDYyMTAzMywgMC4wMjkxMDA5OTkyMzYxMDY4NzMsCisgICAgICAgIDAuMzU1MjMzMDEzNjI5OTEzMzMsIC0wLjkyNjg2NDk4MTY1MTMwNjIsIC0wLjAzMjAzOTk5OTk2MTg1MzAzLCAwLjM3NTM2NDk4OTA0MjI4MjEsIC0wLjkwNzAyMDk4NjA4MDE2OTcsIC0wLjAwMDAwNzAwMDAwMDA5NjAxMzUzNywKKyAgICAgICAgMC4zNzUxNjQ5ODU2NTY3MzgzLCAtMC45MDY1NzUwMjQxMjc5NjAyLCAwLjAwMDA3MzAwMDAwMjg4NTIzNzM0LCAwLjM3NTkwNzAwMzg3OTU0NzEsIC0wLjkwODYwNzAwNjA3Mjk5OCwgMC4wMDAyNjE5OTk5ODY4MzI5NjE0NCwKKyAgICAgICAgMC40MjExNDYwMDUzOTIwNzQ2LCAtMC44OTI2MjU5ODc1Mjk3NTQ2LCAwLjAyODk5MTk5OTEwNDYxOTAyNiwgMC4wNzY0NjUwMDMxOTI0MjQ3NywgLTAuOTkyNDc0MDE5NTI3NDM1MywgMC4wOTU2NTEwMDA3MzgxNDM5MiwKKyAgICAgICAgMC4xODMwNjIwMDIwNjI3OTc1NSwgLTAuOTgyMDg5OTk2MzM3ODkwNiwgMC4wNDQ1NzM5OTk5NDEzNDkwMywgMC4xODgwMTQ5OTkwMzIwMjA1NywgLTAuOTgxNjEwMDAwMTMzNTE0NCwgMC4wMzMwNDEwMDAzNjYyMTA5NCwKKyAgICAgICAgMC4xNjYyMzQwMDE1MTcyOTU4NCwgLTAuOTgzNzIyOTg0NzkwODAyLCAwLjA2ODIyODk5NzI5MDEzNDQzLCAwLjE0MDcxNDAwNDYzNTgxMDg1LCAtMC45ODYyMDQwMjgxMjk1Nzc2LCAwLjA4NzE4MTAwMTkwMTYyNjU5LAorICAgICAgICAtMC4wNzY1Nzg5OTcwNzU1NTc3MSwgLTAuOTkyNDc0MDE5NTI3NDM1MywgLTAuMDk1NTU1OTk4Mzg0OTUyNTUsIC0wLjQwMzA3MDk4NjI3MDkwNDU0LCAtMC45MDcwNjQ5NzQzMDgwMTM5LCAtMC4wMzI1NTI5OTg1MTI5ODMzMiwKKyAgICAgICAgLTAuMzc1MzY0MDA1NTY1NjQzMywgLTAuOTA3MDIwOTg2MDgwMTY5NywgMC4wMDAwMDcwMDAwMDAwOTYwMTM1MzcsIC0wLjE4MzA2MjAwMjA2Mjc5NzU1LCAtMC45ODIwODk5OTYzMzc4OTA2LCAtMC4wNDQ1NzM5OTk5NDEzNDkwMywKKyAgICAgICAgLTAuMzc1MTY0OTg1NjU2NzM4MywgLTAuOTA2NTc1MDI0MTI3OTYwMiwgLTAuMDAwMDc0MDAwMDAzMjIzNzczMDksIC0wLjE4ODAxNDk5OTAzMjAyMDU3LCAtMC45ODE2MTAwMDAxMzM1MTQ0LCAtMC4wMzMwNDEwMDAzNjYyMTA5NCwKKyAgICAgICAgLTAuMzc1OTA3MDAzODc5NTQ3MSwgLTAuOTA4NjA3MDA2MDcyOTk4LCAtMC4wMDAyNjE5OTk5ODY4MzI5NjE0NCwgLTAuMTY2MjM0MDAxNTE3Mjk1ODQsIC0wLjk4MzcyMjk4NDc5MDgwMiwgLTAuMDY4MjI4OTk3MjkwMTM0NDMsCisgICAgICAgIC0wLjMzMzI0MDk4NTg3MDM2MTMzLCAtMC45MjkwMDMwMDAyNTkzOTk0LCAwLjAyOTgwMzAwMDM5MDUyOTYzMywgLTAuMTQwNzE0MDA0NjM1ODEwODUsIC0wLjk4NjIwNDAyODEyOTU3NzYsIC0wLjA4NzE4MTAwMTkwMTYyNjU5LAorICAgICAgICAtMC43MTk4Mjk5NzY1NTg2ODUzLCAtMC42ODM2NTU5NzcyNDkxNDU1LCAtMC4wMzIwMTcwMDAwMTk1NTAzMjMsIC0wLjY5NDM1Mzk5NzcwNzM2NjksIC0wLjY5NDM1Mzk5NzcwNzM2NjksIDAsCisgICAgICAgIC0wLjY5NDAzNDk5MzY0ODUyOSwgLTAuNjk0MDM0OTkzNjQ4NTI5LCAwLCAtMC42OTU1MTAwMjk3OTI3ODU2LCAtMC42OTU1MTAwMjk3OTI3ODU2LCAwLAorICAgICAgICAtMC42NjM5MTcwMDUwNjIxMDMzLCAtMC43MzA2MTUwMTk3OTgyNzg4LCAwLjAyOTEwMDk5OTIzNjEwNjg3MywgLTAuOTI2ODY0OTgxNjUxMzA2MiwgLTAuMzU1MjMzMDEzNjI5OTEzMzMsIC0wLjAzMjAzOTk5OTk2MTg1MzAzLAorICAgICAgICAtMC45MDcwMjA5ODYwODAxNjk3LCAtMC4zNzUzNjQ5ODkwNDIyODIxLCAtMC4wMDAwMDcwMDAwMDAwOTYwMTM1MzcsIC0wLjkwNjU3NTAyNDEyNzk2MDIsIC0wLjM3NTE2NDk4NTY1NjczODMsIDAuMDAwMDczMDAwMDAyODg1MjM3MzQsCisgICAgICAgIC0wLjkwODYwNzAwNjA3Mjk5OCwgLTAuMzc1OTA3MDAzODc5NTQ3MSwgMC4wMDAyNjE5OTk5ODY4MzI5NjE0NCwgLTAuODkyNjI1OTg3NTI5NzU0NiwgLTAuNDIxMTQ2MDA1MzkyMDc0NiwgMC4wMjg5OTE5OTkxMDQ2MTkwMjYsCisgICAgICAgIC0wLjk5MjQ3NDAxOTUyNzQzNTMsIC0wLjA3NjQ2NTAwMzE5MjQyNDc3LCAwLjA5NTY1MTAwMDczODE0MzkyLCAtMC45ODIwODk5OTYzMzc4OTA2LCAtMC4xODMwNjIwMDIwNjI3OTc1NSwgMC4wNDQ1NzM5OTk5NDEzNDkwMywKKyAgICAgICAgLTAuOTgxNjEwMDAwMTMzNTE0NCwgLTAuMTg4MDE0OTk5MDMyMDIwNTcsIDAuMDMzMDQxMDAwMzY2MjEwOTQsIC0wLjk4MzcyMjk4NDc5MDgwMiwgLTAuMTY2MjM0MDAxNTE3Mjk1ODQsIDAuMDY4MjI4OTk3MjkwMTM0NDMsCisgICAgICAgIC0wLjk4NjIwNDAyODEyOTU3NzYsIC0wLjE0MDcxNDAwNDYzNTgxMDg1LCAwLjA4NzE4MTAwMTkwMTYyNjU5LCAtMC45OTI0NzQwMTk1Mjc0MzUzLCAwLjA3NjU3ODk5NzA3NTU1NzcxLCAtMC4wOTU1NTU5OTgzODQ5NTI1NSwKKyAgICAgICAgLTAuOTA3MDY0OTc0MzA4MDEzOSwgMC40MDMwNzA5ODYyNzA5MDQ1NCwgLTAuMDMyNTUyOTk4NTEyOTgzMzIsIC0wLjkwNzAyMDk4NjA4MDE2OTcsIDAuMzc1MzY0MDA1NTY1NjQzMywgMC4wMDAwMDcwMDAwMDAwOTYwMTM1MzcsCisgICAgICAgIC0wLjk4MjA4OTk5NjMzNzg5MDYsIDAuMTgzMDYyMDAyMDYyNzk3NTUsIC0wLjA0NDU3Mzk5OTk0MTM0OTAzLCAtMC45MDY1NzUwMjQxMjc5NjAyLCAwLjM3NTE2NDk4NTY1NjczODMsIC0wLjAwMDA3NDAwMDAwMzIyMzc3MzA5LAorICAgICAgICAtMC45ODE2MTAwMDAxMzM1MTQ0LCAwLjE4ODAxNDk5OTAzMjAyMDU3LCAtMC4wMzMwNDEwMDAzNjYyMTA5NCwgLTAuOTA4NjA3MDA2MDcyOTk4LCAwLjM3NTkwNzAwMzg3OTU0NzEsIC0wLjAwMDI2MTk5OTk4NjgzMjk2MTQ0LAorICAgICAgICAtMC45ODM3MjI5ODQ3OTA4MDIsIDAuMTY2MjM0MDAxNTE3Mjk1ODQsIC0wLjA2ODIyODk5NzI5MDEzNDQzLCAtMC45MjkwMDMwMDAyNTkzOTk0LCAwLjMzMzI0MDk4NTg3MDM2MTMzLCAwLjAyOTgwMzAwMDM5MDUyOTYzMywKKyAgICAgICAgLTAuOTg2MjA0MDI4MTI5NTc3NiwgMC4xNDA3MTQwMDQ2MzU4MTA4NSwgLTAuMDg3MTgxMDAxOTAxNjI2NTksIC0wLjY4MzY1NTk3NzI0OTE0NTUsIDAuNzE5ODI5OTc2NTU4Njg1MywgLTAuMDMyMDE3MDAwMDE5NTUwMzIzLAorICAgICAgICAtMC42OTQzNTM5OTc3MDczNjY5LCAwLjY5NDM1Mzk5NzcwNzM2NjksIDAsIC0wLjY5NDAzNDk5MzY0ODUyOSwgMC42OTQwMzQ5OTM2NDg1MjksIDAsCisgICAgICAgIC0wLjY5NTUxMDAyOTc5Mjc4NTYsIDAuNjk1NTEwMDI5NzkyNzg1NiwgMCwgLTAuNzMwNjE1MDE5Nzk4Mjc4OCwgMC42NjM5MTcwMDUwNjIxMDMzLCAwLjAyOTEwMDk5OTIzNjEwNjg3MywKKyAgICAgICAgLTAuMzU1MjMzMDEzNjI5OTEzMzMsIDAuOTI2ODY0OTgxNjUxMzA2MiwgLTAuMDMyMDM5OTk5OTYxODUzMDMsIC0wLjM3NTM2NDk4OTA0MjI4MjEsIDAuOTA3MDIwOTg2MDgwMTY5NywgLTAuMDAwMDA3MDAwMDAwMDk2MDEzNTM3LAorICAgICAgICAtMC4zNzUxNjQ5ODU2NTY3MzgzLCAwLjkwNjU3NTAyNDEyNzk2MDIsIDAuMDAwMDczMDAwMDAyODg1MjM3MzQsIC0wLjM3NTkwNzAwMzg3OTU0NzEsIDAuOTA4NjA3MDA2MDcyOTk4LCAwLjAwMDI2MTk5OTk4NjgzMjk2MTQ0LAorICAgICAgICAtMC40MjExNDYwMDUzOTIwNzQ2LCAwLjg5MjYyNTk4NzUyOTc1NDYsIDAuMDI4OTkxOTk5MTA0NjE5MDI2LCAtMC4wNzY0NjUwMDMxOTI0MjQ3NywgMC45OTI0NzQwMTk1Mjc0MzUzLCAwLjA5NTY1MTAwMDczODE0MzkyLAorICAgICAgICAtMC4xODMwNjIwMDIwNjI3OTc1NSwgMC45ODIwODk5OTYzMzc4OTA2LCAwLjA0NDU3Mzk5OTk0MTM0OTAzLCAtMC4xODgwMTQ5OTkwMzIwMjA1NywgMC45ODE2MTAwMDAxMzM1MTQ0LCAwLjAzMzA0MTAwMDM2NjIxMDk0LAorICAgICAgICAtMC4xNjYyMzQwMDE1MTcyOTU4NCwgMC45ODM3MjI5ODQ3OTA4MDIsIDAuMDY4MjI4OTk3MjkwMTM0NDMsIC0wLjE0MDcxNDAwNDYzNTgxMDg1LCAwLjk4NjIwNDAyODEyOTU3NzYsIDAuMDg3MTgxMDAxOTAxNjI2NTkgfTsKKworCitmbG9hdCAgdGVhcG90Qmlub3JtYWxzW10gPSB7IDAuMjU1NDI3MDAyOTA2Nzk5MywgLTAuMDUwNDM0MDAwNzkwMTE5MTcsIC0wLjk2NTUxMTk3NzY3MjU3NjksIDAuMjMwMjg5OTk1NjcwMzE4NiwgLTAuMTEzNzk3MDAxNTQwNjYwODYsIC0wLjk2NjQ0NTk4MjQ1NjIwNzMsCisgICAgICAgIC0wLjIzNjUzOTAwNjIzMzIxNTMzLCAwLjA5Nzg5NDk5NjQwNDY0NzgzLCAtMC45NjY2NzgwMjMzMzgzMTc5LCAtMC4yNTUxMTgwMTI0MjgyODM3LCAwLjA1MDM3Mjk5OTE2MTQ4MTg2LCAtMC45NjU1OTY5NzM4OTYwMjY2LAorICAgICAgICAtMC45MjAxNjEwMDg4MzQ4Mzg5LCAwLjM4MDc5ODAxMjAxODIwMzc0LCAtMC4wOTEwODI5OTc2MjAxMDU3NCwgLTAuOTc3MDQ3OTc5ODMxNjk1NiwgMC4xOTI5MTk5OTkzNjEwMzgyLCAtMC4wOTAzMjM5OTk1MjQxMTY1MiwKKyAgICAgICAgLTAuNjc2MjQwMDI2OTUwODM2MiwgMC4yNzk4NTkwMDY0MDQ4NzY3LCAwLjY4MTQ1Mjk4OTU3ODI0NzEsIC0wLjcyMzgwMDAwMzUyODU5NSwgMC4xNDI5MTU5OTM5Mjg5MDkzLCAwLjY3NTA0Nzk5MzY1OTk3MzEsCisgICAgICAgIC0wLjQ2ODE5OTAxNDY2MzY5NjMsIDAuMTU4MTc2MDA0ODg2NjI3MiwgMC44NjkzNTAwMTYxMTcwOTYsIC0wLjQ5MDIwNzk5OTk0NDY4NjksIDAuMDk2NzkxOTk3NTUxOTE4MDMsIDAuODY2MjE0OTkwNjE1ODQ0NywKKyAgICAgICAgMC4xNjk1MjM5OTkwOTQ5NjMwNywgLTAuMTkzNDk2MDAzNzQ2OTg2NCwgLTAuOTY2MzQzOTk4OTA4OTk2NiwgLTAuMTgxMDY4MDAzMTc3NjQyODIsIDAuMTgxMDY4MDAzMTc3NjQyODIsIC0wLjk2NjY1OTAwOTQ1NjYzNDUsCisgICAgICAgIC0wLjcwNDExOTk4MDMzNTIzNTYsIDAuNzA0MTE5OTgwMzM1MjM1NiwgLTAuMDkxODE5MDAzMjI0MzcyODYsIC0wLjUxNzkzNDk3ODAwODI3MDMsIDAuNTE3OTM0OTc4MDA4MjcwMywgMC42ODA3OTkwMDc0MTU3NzE1LAorICAgICAgICAtMC4zNzIxNzc5ODgyOTA3ODY3NCwgMC4zMjYwNjcwMDA2Mjc1MTc3LCAwLjg2OTAwMTk4NDU5NjI1MjQsIDAuMDgyMjE2MDAyMDQ3MDYxOTIsIC0wLjI0MzM2ODk5ODE2OTg5OSwgLTAuOTY2NDQzMDAyMjIzOTY4NSwKKyAgICAgICAgLTAuMDk3ODk0OTk2NDA0NjQ3ODMsIDAuMjM2NTM5MDA2MjMzMjE1MzMsIC0wLjk2NjY3ODAyMzMzODMxNzksIC0wLjM4MDc5ODAxMjAxODIwMzc0LCAwLjkyMDE2MTAwODgzNDgzODksIC0wLjA5MTA4MTk5OTI0MjMwNTc2LAorICAgICAgICAtMC4yNzk4NTkwMDY0MDQ4NzY3LCAwLjY3NjI0MDAyNjk1MDgzNjIsIDAuNjgxNDU0MDAyODU3MjA4MywgLTAuMjE4OTQwMDA0NzA2MzgyNzUsIDAuNDQzMDU1MDAzODgxNDU0NDcsIDAuODY5MzQ5MDAyODM4MTM0OCwKKyAgICAgICAgMC4wNTA4MjIwMDA5NTA1NzQ4NzUsIC0wLjI1NzM5MTAwNTc1NDQ3MDgsIC0wLjk2NDk2OTk5MjYzNzYzNDMsIC0wLjA1MDIxNjAwMDUyNzE0MzQ4LCAwLjI1NDMyMTAwODkyMDY2OTU2LCAtMC45NjU4MTUwMDc2ODY2MTUsCisgICAgICAgIC0wLjE5MjkxNjAwNTg0OTgzODI2LCAwLjk3NzAyNDk3MjQzODgxMjMsIC0wLjA5MDU5MDAwMDE1MjU4Nzg5LCAtMC4xNDI5MTI5OTg3OTU1MDkzNCwgMC43MjM3ODcwMDk3MTYwMzM5LCAwLjY3NTA2MDk4NzQ3MjUzNDIsCisgICAgICAgIC0wLjA5Njc5MTk5NzU1MTkxODAzLCAwLjQ5MDIwNzk5OTk0NDY4NjksIDAuODY2MjE0OTkwNjE1ODQ0NywgLTAuMDQ4NTA3MDAxMjUwOTgyMjg1LCAtMC4yNTc2OTQwMDU5NjYxODY1LCAtMC45NjUwMDgwMjA0MDEwMDEsCisgICAgICAgIC0wLjE1ODMzMzAwMzUyMDk2NTU4LCAtMC4zMjI3ODA5OTY1NjEwNTA0LCAtMC45MzMxMzU5ODYzMjgxMjUsIDAuMDU2NTYxOTk5MDIyOTYwNjYsIDAuMTM3OTM5MDA2MDkwMTY0MTgsIC0wLjk4ODgyNDAwOTg5NTMyNDcsCisgICAgICAgIDAuMDQ5MTUwMDAxMjU3NjU4MDA1LCAwLjI1NDUxOTk5OTAyNzI1MjIsIC0wLjk2NTgxNzk4NzkxODg1MzgsIDAuMzc4Mzg3OTg3NjEzNjc4LCAwLjkxNzMyOTAxMzM0NzYyNTcsIC0wLjEyMzgxMDk5OTA5NTQzOTkxLAorICAgICAgICAwLjE5MTc5NTAwNjM5NDM4NjMsIDAuOTc3MjUzMDE5ODA5NzIyOSwgLTAuMDkwNTA3OTk5MDYyNTM4MTUsIDAuMjc3NzIzOTk3ODMxMzQ0NiwgMC42NzE2MDcwMTc1MTcwODk4LCAwLjY4Njg4NzAyNTgzMzEyOTksCisgICAgICAgIDAuMTQyODE3MDA1NTE1MDk4NTcsIDAuNzIzODAxOTcwNDgxODcyNiwgMC42NzUwNjU5OTQyNjI2OTUzLCAwLjE1Nzg4MjAwNDk3NjI3MjU4LCAwLjQ2NzQyMDk5NTIzNTQ0MzEsIDAuODY5ODIyMDI1Mjk5MDcyMywKKyAgICAgICAgMC4wOTY3OTE5OTc1NTE5MTgwMywgMC40OTAyMDc5OTk5NDQ2ODY5LCAwLjg2NjIxNDk5MDYxNTg0NDcsIC0wLjMxMzkwNjk5NzQ0MjI0NTUsIC0wLjI2NTcyNzAxMzM0OTUzMzEsIC0wLjkxMTUxMTAwMzk3MTA5OTksCisgICAgICAgIDAuMDUyNDc1MDAxNjYyOTY5NTksIDAuMDUxNzg2MDAxNzcxNjg4NDYsIC0wLjk5NzI3ODk4ODM2MTM1ODYsIDAuNjk5Nzg3OTc0MzU3NjA1LCAwLjY5NjkzNzk3ODI2NzY2OTcsIC0wLjE1Njc2MTAwNTUyMDgyMDYyLAorICAgICAgICAwLjUxMTkyOTk4ODg2MTA4NCwgMC41MTE2MTU5OTE1OTI0MDcyLCAwLjY5MDA1NTAxMjcwMjk0MTksIDAuMzI1MTU0MDA2NDgxMTcwNjUsIDAuMzcxMTEzOTg1Nzc2OTAxMjUsIDAuODY5Nzk4MDA0NjI3MjI3OCwKKyAgICAgICAgLTAuMzE4MTkyOTg4NjM0MTA5NSwgLTAuMDk5ODc2MDAxNDc3MjQxNTIsIC0wLjk0Mjc0OTk3NzExMTgxNjQsIDAuMTU1Mjc5OTk0MDEwOTI1MywgMC4wNjE3NjI5OTk3NDMyMjMxOSwgLTAuOTg1OTM4MDEyNTk5OTQ1MSwKKyAgICAgICAgMC45MTg3MjUwMTM3MzI5MTAyLCAwLjM3NTE0NjAwMTU3NzM3NzMsIC0wLjEyMzMyOTk5NzA2MjY4MzEsIDAuNjcyNDg3MDIwNDkyNTUzNywgMC4yNzc1NDM5OTE4MDQxMjI5LCAwLjY4NjA5Nzk3OTU0NTU5MzMsCisgICAgICAgIDAuNDQyNDI5OTg5NTc2MzM5NywgMC4yMTg1MzgwMDExNzk2OTUxMywgMC44Njk3Njg5NzcxNjUyMjIyLCAtMC4yNTU5NDgwMDcxMDY3ODEsIC0wLjA0NDY0MjAwMTM5MDQ1NzE1LCAtMC45NjU2NTkwMjIzMzEyMzc4LAorICAgICAgICAwLjI1MzA2MjAwOTgxMTQwMTM3LCAwLjA0NjM2MjAwMTQ0ODg2OTcwNSwgLTAuOTY2MzM4OTkyMTE4ODM1NCwgMC45Nzc4OTQwMDgxNTk2Mzc1LCAwLjE4ODAwMTAwNjg0MTY1OTU1LCAtMC4wOTE1MzI5OTc3ODY5OTg3NSwKKyAgICAgICAgMC43MjM4MTUwMjM4OTkwNzg0LCAwLjE0MjA1Nzk5OTk2ODUyODc1LCAwLjY3NTIxMjAyNTY0MjM5NSwgMC40OTAxNzkwMDIyODUwMDM2NiwgMC4wOTY3MDEwMDM2MTEwODc4LCAwLjg2NjI0MDk3ODI0MDk2NjgsCisgICAgICAgIC0wLjI1NDkxODk5MjUxOTM3ODY2LCAwLjA1MDMzMzk5OTA5NzM0NzI2LCAtMC45NjU2NTA5NzU3MDQxOTMxLCAtMC4yMzAyODk5OTU2NzAzMTg2LCAwLjExMzc5NzAwMTU0MDY2MDg2LCAtMC45NjY0NDU5ODI0NTYyMDczLAorICAgICAgICAwLjIzNjUzOTAwNjIzMzIxNTMzLCAtMC4wOTc4OTQ5OTY0MDQ2NDc4MywgLTAuOTY2Njc4MDIzMzM4MzE3OSwgMC4yNTIyNjU5ODk3ODA0MjYsIC0wLjA0OTgwOTk5OTc2Mzk2NTYxLCAtMC45NjYzNzQ5OTMzMjQyNzk4LAorICAgICAgICAwLjkyMDE2MTAwODgzNDgzODksIC0wLjM4MDc5ODAxMjAxODIwMzc0LCAtMC4wOTEwODI5OTc2MjAxMDU3NCwgMC45NzY5MDM5NzUwMDk5MTgyLCAtMC4xOTI4OTIwMDAwNzkxNTQ5NywgLTAuMDkxOTMwMDAxOTc0MTA1ODMsCisgICAgICAgIDAuNjc2MjQwMDI2OTUwODM2MiwgLTAuMjc5ODU5MDA2NDA0ODc2NywgMC42ODE0NTI5ODk1NzgyNDcxLCAwLjcyMzY2MTAwNTQ5Njk3ODgsIC0wLjE0Mjg4Nzk5NDY0NzAyNjA2LCAwLjY3NTIwMjAxMjA2MjA3MjgsCisgICAgICAgIDAuNDY4MTk5MDE0NjYzNjk2MywgLTAuMTU4MTc2MDA0ODg2NjI3MiwgMC44NjkzNTAwMTYxMTcwOTYsIDAuNDkwMTY2MDA4NDcyNDQyNiwgLTAuMDk2Nzg0MDAzMDc4OTM3NTMsIDAuODY2MjM5MDExMjg3Njg5MiwKKyAgICAgICAgLTAuMTY5NTIzOTk5MDk0OTYzMDcsIDAuMTkzNDk2MDAzNzQ2OTg2NCwgLTAuOTY2MzQzOTk4OTA4OTk2NiwgMC4xODEwNjgwMDMxNzc2NDI4MiwgLTAuMTgxMDY4MDAzMTc3NjQyODIsIC0wLjk2NjY1OTAwOTQ1NjYzNDUsCisgICAgICAgIDAuNzA0MTE5OTgwMzM1MjM1NiwgLTAuNzA0MTE5OTgwMzM1MjM1NiwgLTAuMDkxODE5MDAzMjI0MzcyODYsIDAuNTE3OTM0OTc4MDA4MjcwMywgLTAuNTE3OTM0OTc4MDA4MjcwMywgMC42ODA3OTkwMDc0MTU3NzE1LAorICAgICAgICAwLjM3MjE3Nzk4ODI5MDc4Njc0LCAtMC4zMjYwNjcwMDA2Mjc1MTc3LCAwLjg2OTAwMTk4NDU5NjI1MjQsIC0wLjA4MjIxNjAwMjA0NzA2MTkyLCAwLjI0MzM2ODk5ODE2OTg5OSwgLTAuOTY2NDQzMDAyMjIzOTY4NSwKKyAgICAgICAgMC4wOTc4OTQ5OTY0MDQ2NDc4MywgLTAuMjM2NTM5MDA2MjMzMjE1MzMsIC0wLjk2NjY3ODAyMzMzODMxNzksIDAuMzgwNzk4MDEyMDE4MjAzNzQsIC0wLjkyMDE2MTAwODgzNDgzODksIC0wLjA5MTA4MTk5OTI0MjMwNTc2LAorICAgICAgICAwLjI3OTg1OTAwNjQwNDg3NjcsIC0wLjY3NjI0MDAyNjk1MDgzNjIsIDAuNjgxNDU0MDAyODU3MjA4MywgMC4yMTg5NDAwMDQ3MDYzODI3NSwgLTAuNDQzMDU1MDAzODgxNDU0NDcsIDAuODY5MzQ5MDAyODM4MTM0OCwKKyAgICAgICAgLTAuMDUwNDM0MDAwNzkwMTE5MTcsIDAuMjU1NDI3MDAyOTA2Nzk5MywgLTAuOTY1NTExOTc3NjcyNTc2OSwgMC4wNTAzNzI5OTkxNjE0ODE4NiwgLTAuMjU1MTE4MDEyNDI4MjgzNywgLTAuOTY1NTk2OTczODk2MDI2NiwKKyAgICAgICAgMC4xOTI5MTk5OTkzNjEwMzgyLCAtMC45NzcwNDc5Nzk4MzE2OTU2LCAtMC4wOTAzMjM5OTk1MjQxMTY1MiwgMC4xNDI5MTU5OTM5Mjg5MDkzLCAtMC43MjM4MDAwMDM1Mjg1OTUsIDAuNjc1MDQ3OTkzNjU5OTczMSwKKyAgICAgICAgMC4wOTY3OTE5OTc1NTE5MTgwMywgLTAuNDkwMjA3OTk5OTQ0Njg2OSwgMC44NjYyMTQ5OTA2MTU4NDQ3LCAwLjA1MDQzNDAwMDc5MDExOTE3LCAwLjI1NTQyNzAwMjkwNjc5OTMsIC0wLjk2NTUxMTk3NzY3MjU3NjksCisgICAgICAgIDAuMTEzNzk3MDAxNTQwNjYwODYsIDAuMjMwMjg5OTk1NjcwMzE4NiwgLTAuOTY2NDQ1OTgyNDU2MjA3MywgLTAuMDk3ODk0OTk2NDA0NjQ3ODMsIC0wLjIzNjUzOTAwNjIzMzIxNTMzLCAtMC45NjY2NzgwMjMzMzgzMTc5LAorICAgICAgICAtMC4wNTAzNzI5OTkxNjE0ODE4NiwgLTAuMjU1MTE4MDEyNDI4MjgzNywgLTAuOTY1NTk2OTczODk2MDI2NiwgLTAuMzgwNzk4MDEyMDE4MjAzNzQsIC0wLjkyMDE2MTAwODgzNDgzODksIC0wLjA5MTA4Mjk5NzYyMDEwNTc0LAorICAgICAgICAtMC4xOTI5MTk5OTkzNjEwMzgyLCAtMC45NzcwNDc5Nzk4MzE2OTU2LCAtMC4wOTAzMjM5OTk1MjQxMTY1MiwgLTAuMjc5ODU5MDA2NDA0ODc2NywgLTAuNjc2MjQwMDI2OTUwODM2MiwgMC42ODE0NTI5ODk1NzgyNDcxLAorICAgICAgICAtMC4xNDI5MTU5OTM5Mjg5MDkzLCAtMC43MjM4MDAwMDM1Mjg1OTUsIDAuNjc1MDQ3OTkzNjU5OTczMSwgLTAuMTU4MTc2MDA0ODg2NjI3MiwgLTAuNDY4MTk5MDE0NjYzNjk2MywgMC44NjkzNTAwMTYxMTcwOTYsCisgICAgICAgIC0wLjA5Njc5MTk5NzU1MTkxODAzLCAtMC40OTAyMDc5OTk5NDQ2ODY5LCAwLjg2NjIxNDk5MDYxNTg0NDcsIDAuMTkzNDk2MDAzNzQ2OTg2NCwgMC4xNjk1MjM5OTkwOTQ5NjMwNywgLTAuOTY2MzQzOTk4OTA4OTk2NiwKKyAgICAgICAgLTAuMTgxMDY4MDAzMTc3NjQyODIsIC0wLjE4MTA2ODAwMzE3NzY0MjgyLCAtMC45NjY2NTkwMDk0NTY2MzQ1LCAtMC43MDQxMTk5ODAzMzUyMzU2LCAtMC43MDQxMTk5ODAzMzUyMzU2LCAtMC4wOTE4MTkwMDMyMjQzNzI4NiwKKyAgICAgICAgLTAuNTE3OTM0OTc4MDA4MjcwMywgLTAuNTE3OTM0OTc4MDA4MjcwMywgMC42ODA3OTkwMDc0MTU3NzE1LCAtMC4zMjYwNjcwMDA2Mjc1MTc3LCAtMC4zNzIxNzc5ODgyOTA3ODY3NCwgMC44NjkwMDE5ODQ1OTYyNTI0LAorICAgICAgICAwLjI0MzM2ODk5ODE2OTg5OSwgMC4wODIyMTYwMDIwNDcwNjE5MiwgLTAuOTY2NDQzMDAyMjIzOTY4NSwgLTAuMjM2NTM5MDA2MjMzMjE1MzMsIC0wLjA5Nzg5NDk5NjQwNDY0NzgzLCAtMC45NjY2NzgwMjMzMzgzMTc5LAorICAgICAgICAtMC45MjAxNjEwMDg4MzQ4Mzg5LCAtMC4zODA3OTgwMTIwMTgyMDM3NCwgLTAuMDkxMDgxOTk5MjQyMzA1NzYsIC0wLjY3NjI0MDAyNjk1MDgzNjIsIC0wLjI3OTg1OTAwNjQwNDg3NjcsIDAuNjgxNDU0MDAyODU3MjA4MywKKyAgICAgICAgLTAuNDQzMDU1MDAzODgxNDU0NDcsIC0wLjIxODk0MDAwNDcwNjM4Mjc1LCAwLjg2OTM0OTAwMjgzODEzNDgsIDAuMjU1NDI3MDAyOTA2Nzk5MywgMC4wNTA0MzQwMDA3OTAxMTkxNywgLTAuOTY1NTExOTc3NjcyNTc2OSwKKyAgICAgICAgLTAuMjU1MTE4MDEyNDI4MjgzNywgLTAuMDUwMzcyOTk5MTYxNDgxODYsIC0wLjk2NTU5Njk3Mzg5NjAyNjYsIC0wLjk3NzA0Nzk3OTgzMTY5NTYsIC0wLjE5MjkxOTk5OTM2MTAzODIsIC0wLjA5MDMyMzk5OTUyNDExNjUyLAorICAgICAgICAtMC43MjM4MDAwMDM1Mjg1OTUsIC0wLjE0MjkxNTk5MzkyODkwOTMsIDAuNjc1MDQ3OTkzNjU5OTczMSwgLTAuNDkwMjA3OTk5OTQ0Njg2OSwgLTAuMDk2NzkxOTk3NTUxOTE4MDMsIDAuODY2MjE0OTkwNjE1ODQ0NywKKyAgICAgICAgLTAuNDkwMjA3OTk5OTQ0Njg2OSwgMC4wOTY3OTE5OTc1NTE5MTgwMywgMC44NjYyMTQ5OTA2MTU4NDQ3LCAtMC40NDMwNTUwMDM4ODE0NTQ0NywgMC4yMTg5MzkwMDYzMjg1ODI3NiwgMC44NjkzNDkwMDI4MzgxMzQ4LAorICAgICAgICAtMC4zNzI4NzU5ODg0ODM0Mjg5NiwgMC4xNTQzMTE5OTk2Nzg2MTE3NiwgMC45MTQ5NjAwMjY3NDEwMjc4LCAtMC40MDE0NTc5OTUxNzYzMTUzLCAwLjA3OTI2ODAwMTAxOTk1NDY4LCAwLjkxMjQ0MTAxNTI0MzUzMDMsCisgICAgICAgIC0wLjMxMTI1Nzk4ODIxNDQ5MjgsIDAuMTI4ODExMDAxNzc3NjQ4OTMsIDAuOTQxNTU1MDIzMTkzMzU5NCwgLTAuMzM1NDEzMDA4OTI4Mjk4OTUsIDAuMDY2MjI4MDAyMzA5Nzk5MiwgMC45Mzk3NDAwMDIxNTUzMDQsCisgICAgICAgIC0wLjE5MDE1MjAwNDM2MTE1MjY1LCAwLjA3ODY5MDk5ODI1NjIwNjUxLCAwLjk3ODU5NTk3MjA2MTE1NzIsIC0wLjIwNTE3Mzk5OTA3MTEyMTIyLCAwLjA0MDUxMTk5OTI3OTI2MDYzNSwgMC45Nzc4ODY5NzQ4MTE1NTQsCisgICAgICAgIDAuMDYzMDE4MDAxNjE2MDAxMTMsIC0wLjAyMTI4OTAwMDI4NzY1MjAxNiwgMC45OTc3ODQ5NzIxOTA4NTY5LCAwLjA2NjIzNDAwMDAyNzE3OTcyLCAtMC4wMTMwNzgwMDAzOTY0OTAwOTcsIDAuOTk3NzE3OTc2NTcwMTI5NCwKKyAgICAgICAgLTAuMzI2MDY3MDAwNjI3NTE3NywgMC4zNzIxNzc5ODgyOTA3ODY3NCwgMC44NjkwMDE5ODQ1OTYyNTI0LCAtMC4yODU3MzkwMDQ2MTE5NjksIDAuMjg1NzM5MDA0NjExOTY5LCAwLjkxNDcxNzAxODYwNDI3ODYsCisgICAgICAgIC0wLjIzODU0NDAwMjE3NTMzMTEyLCAwLjIzODU0NDAwMjE3NTMzMTEyLCAwLjk0MTM3OTAxMDY3NzMzNzYsIC0wLjE0NTc0OTAwMjY5NTA4MzYyLCAwLjE0NTc0OTAwMjY5NTA4MzYyLCAwLjk3ODUyNzAwOTQ4NzE1MjEsCisgICAgICAgIDAuMDUwMTEyMDAxNTk3ODgxMzIsIC0wLjA0MzkwMzAwMDY1Mjc5MDA3LCAwLjk5Nzc3Nzk5ODQ0NzQxODIsIC0wLjE1ODE3NjAwNDg4NjYyNzIsIDAuNDY4MTk5OTk4MTQwMzM1MSwgMC44NjkzNTAwMTYxMTcwOTYsCisgICAgICAgIC0wLjE1NDMxMTk5OTY3ODYxMTc2LCAwLjM3Mjg3NTk4ODQ4MzQyODk2LCAwLjkxNDk2MDAyNjc0MTAyNzgsIC0wLjEyODgxMTAwMTc3NzY0ODkzLCAwLjMxMTI1Nzk4ODIxNDQ5MjgsIDAuOTQxNTU1MDIzMTkzMzU5NCwKKyAgICAgICAgLTAuMDc4NjkwOTk4MjU2MjA2NTEsIDAuMTkwMTUxMDA1OTgzMzUyNjYsIDAuOTc4NTk1OTcyMDYxMTU3MiwgMC4wMjk0NjY5OTk2OTQ3MDUwMSwgLTAuMDU5NjMxOTk5NTgyMDUyMjMsIDAuOTk3Nzg0OTcyMTkwODU2OSwKKyAgICAgICAgLTAuMDk2NzkxOTk3NTUxOTE4MDMsIDAuNDkwMjA3OTk5OTQ0Njg2OSwgMC44NjYyMTQ5OTA2MTU4NDQ3LCAtMC4wNzkyNjgwMDEwMTk5NTQ2OCwgMC40MDE0NTc5OTUxNzYzMTUzLCAwLjkxMjQ0MTAxNTI0MzUzMDMsCisgICAgICAgIC0wLjA2NjIyODAwMjMwOTc5OTIsIDAuMzM1NDEzMDA4OTI4Mjk4OTUsIDAuOTM5NzQwMDAyMTU1MzA0LCAtMC4wNDA1MTE5OTkyNzkyNjA2MzUsIDAuMjA1MTczOTk5MDcxMTIxMjIsIDAuOTc3ODg2OTc0ODExNTU0LAorICAgICAgICAwLjAxMzA3ODAwMDM5NjQ5MDA5NywgLTAuMDY2MjM0MDAwMDI3MTc5NzIsIDAuOTk3NzE3OTc2NTcwMTI5NCwgMC4wOTY3OTE5OTc1NTE5MTgwMywgMC40OTAyMDc5OTk5NDQ2ODY5LCAwLjg2NjIxNDk5MDYxNTg0NDcsCisgICAgICAgIDAuMjE4NTgyMDA0MzA4NzAwNTYsIDAuNDQyMzIxOTg1OTYwMDA2NywgMC44Njk4MTIwMTE3MTg3NSwgMC4xNTQzMTE5OTk2Nzg2MTE3NiwgMC4zNzI4NzU5ODg0ODM0Mjg5NiwgMC45MTQ5NjAwMjY3NDEwMjc4LAorICAgICAgICAwLjA3OTI2ODAwMTAxOTk1NDY4LCAwLjQwMTQ1Nzk5NTE3NjMxNTMsIDAuOTEyNDQxMDE1MjQzNTMwMywgMC4xMjg4MTEwMDE3Nzc2NDg5MywgMC4zMTEyNTc5ODgyMTQ0OTI4LCAwLjk0MTU1NTAyMzE5MzM1OTQsCisgICAgICAgIDAuMDY2MjI4MDAyMzA5Nzk5MiwgMC4zMzU0MTMwMDg5MjgyOTg5NSwgMC45Mzk3NDAwMDIxNTUzMDQsIDAuMDc4NjkwOTk4MjU2MjA2NTEsIDAuMTkwMTUyMDA0MzYxMTUyNjUsIDAuOTc4NTk1OTcyMDYxMTU3MiwKKyAgICAgICAgMC4wNDA1MTE5OTkyNzkyNjA2MzUsIDAuMjA1MTczOTk5MDcxMTIxMjIsIDAuOTc3ODg2OTc0ODExNTU0LCAtMC4wMjEyODkwMDAyODc2NTIwMTYsIC0wLjA2MzAxODAwMTYxNjAwMTEzLCAwLjk5Nzc4NDk3MjE5MDg1NjksCisgICAgICAgIC0wLjAxMzA3ODAwMDM5NjQ5MDA5NywgLTAuMDY2MjM0MDAwMDI3MTc5NzIsIDAuOTk3NzE3OTc2NTcwMTI5NCwgMC4zNzExMzI5OTk2NTg1ODQ2LCAwLjMyNTE0ODk5OTY5MTAwOTUsIDAuODY5NzkxOTg0NTU4MTA1NSwKKyAgICAgICAgMC4yODU3MzkwMDQ2MTE5NjksIDAuMjg1NzM5MDA0NjExOTY5LCAwLjkxNDcxNzAxODYwNDI3ODYsIDAuMjM4NTQ0MDAyMTc1MzMxMTIsIDAuMjM4NTQ0MDAyMTc1MzMxMTIsIDAuOTQxMzc5MDEwNjc3MzM3NiwKKyAgICAgICAgMC4xNDU3NDkwMDI2OTUwODM2MiwgMC4xNDU3NDkwMDI2OTUwODM2MiwgMC45Nzg1MjcwMDk0ODcxNTIxLCAtMC4wNDM5MDMwMDA2NTI3OTAwNywgLTAuMDUwMTEyMDAxNTk3ODgxMzIsIDAuOTk3Nzc3OTk4NDQ3NDE4MiwKKyAgICAgICAgMC40Njc1MDE5OTc5NDc2OTI4NywgMC4xNTc5NDA5OTg2NzM0MzkwMywgMC44Njk3NjgwMjM0OTA5MDU4LCAwLjM3Mjg3NTk4ODQ4MzQyODk2LCAwLjE1NDMxMTk5OTY3ODYxMTc2LCAwLjkxNDk2MDAyNjc0MTAyNzgsCisgICAgICAgIDAuMzExMjU3OTg4MjE0NDkyOCwgMC4xMjg4MTEwMDE3Nzc2NDg5MywgMC45NDE1NTUwMjMxOTMzNTk0LCAwLjE5MDE1MTAwNTk4MzM1MjY2LCAwLjA3ODY5MDk5ODI1NjIwNjUxLCAwLjk3ODU5NTk3MjA2MTE1NzIsCisgICAgICAgIC0wLjA1OTYzMTk5OTU4MjA1MjIzLCAtMC4wMjk0NjY5OTk2OTQ3MDUwMSwgMC45OTc3ODQ5NzIxOTA4NTY5LCAwLjQ5MDE3OTAwMjI4NTAwMzY2LCAwLjA5NjcwMTAwMzYxMTA4NzgsIDAuODY2MjQwOTc4MjQwOTY2OCwKKyAgICAgICAgMC40MDE0NTc5OTUxNzYzMTUzLCAwLjA3OTI2ODAwMTAxOTk1NDY4LCAwLjkxMjQ0MTAxNTI0MzUzMDMsIDAuMzM1NDEzMDA4OTI4Mjk4OTUsIDAuMDY2MjI4MDAyMzA5Nzk5MiwgMC45Mzk3NDAwMDIxNTUzMDQsCisgICAgICAgIDAuMjA1MTczOTk5MDcxMTIxMjIsIDAuMDQwNTExOTk5Mjc5MjYwNjM1LCAwLjk3Nzg4Njk3NDgxMTU1NCwgLTAuMDY2MjM0MDAwMDI3MTc5NzIsIC0wLjAxMzA3ODAwMDM5NjQ5MDA5NywgMC45OTc3MTc5NzY1NzAxMjk0LAorICAgICAgICAwLjQ5MDE2NjAwODQ3MjQ0MjYsIC0wLjA5Njc4NDAwMzA3ODkzNzUzLCAwLjg2NjIzOTAxMTI4NzY4OTIsIDAuNDQzMDU1MDAzODgxNDU0NDcsIC0wLjIxODkzOTAwNjMyODU4Mjc2LCAwLjg2OTM0OTAwMjgzODEzNDgsCisgICAgICAgIDAuMzcyODc1OTg4NDgzNDI4OTYsIC0wLjE1NDMxMTk5OTY3ODYxMTc2LCAwLjkxNDk2MDAyNjc0MTAyNzgsIDAuNDAxNDU3OTk1MTc2MzE1MywgLTAuMDc5MjY4MDAxMDE5OTU0NjgsIDAuOTEyNDQxMDE1MjQzNTMwMywKKyAgICAgICAgMC4zMTEyNTc5ODgyMTQ0OTI4LCAtMC4xMjg4MTEwMDE3Nzc2NDg5MywgMC45NDE1NTUwMjMxOTMzNTk0LCAwLjMzNTQxMzAwODkyODI5ODk1LCAtMC4wNjYyMjgwMDIzMDk3OTkyLCAwLjkzOTc0MDAwMjE1NTMwNCwKKyAgICAgICAgMC4xOTAxNTIwMDQzNjExNTI2NSwgLTAuMDc4NjkwOTk4MjU2MjA2NTEsIDAuOTc4NTk1OTcyMDYxMTU3MiwgMC4yMDUxNzM5OTkwNzExMjEyMiwgLTAuMDQwNTExOTk5Mjc5MjYwNjM1LCAwLjk3Nzg4Njk3NDgxMTU1NCwKKyAgICAgICAgLTAuMDYzMDE4MDAxNjE2MDAxMTMsIDAuMDIxMjg5MDAwMjg3NjUyMDE2LCAwLjk5Nzc4NDk3MjE5MDg1NjksIC0wLjA2NjIzNDAwMDAyNzE3OTcyLCAwLjAxMzA3ODAwMDM5NjQ5MDA5NywgMC45OTc3MTc5NzY1NzAxMjk0LAorICAgICAgICAwLjMyNjA2NzAwMDYyNzUxNzcsIC0wLjM3MjE3Nzk4ODI5MDc4Njc0LCAwLjg2OTAwMTk4NDU5NjI1MjQsIDAuMjg1NzM5MDA0NjExOTY5LCAtMC4yODU3MzkwMDQ2MTE5NjksIDAuOTE0NzE3MDE4NjA0Mjc4NiwKKyAgICAgICAgMC4yMzg1NDQwMDIxNzUzMzExMiwgLTAuMjM4NTQ0MDAyMTc1MzMxMTIsIDAuOTQxMzc5MDEwNjc3MzM3NiwgMC4xNDU3NDkwMDI2OTUwODM2MiwgLTAuMTQ1NzQ5MDAyNjk1MDgzNjIsIDAuOTc4NTI3MDA5NDg3MTUyMSwKKyAgICAgICAgLTAuMDUwMTEyMDAxNTk3ODgxMzIsIDAuMDQzOTAzMDAwNjUyNzkwMDcsIDAuOTk3Nzc3OTk4NDQ3NDE4MiwgMC4xNTgxNzYwMDQ4ODY2MjcyLCAtMC40NjgxOTk5OTgxNDAzMzUxLCAwLjg2OTM1MDAxNjExNzA5NiwKKyAgICAgICAgMC4xNTQzMTE5OTk2Nzg2MTE3NiwgLTAuMzcyODc1OTg4NDgzNDI4OTYsIDAuOTE0OTYwMDI2NzQxMDI3OCwgMC4xMjg4MTEwMDE3Nzc2NDg5MywgLTAuMzExMjU3OTg4MjE0NDkyOCwgMC45NDE1NTUwMjMxOTMzNTk0LAorICAgICAgICAwLjA3ODY5MDk5ODI1NjIwNjUxLCAtMC4xOTAxNTEwMDU5ODMzNTI2NiwgMC45Nzg1OTU5NzIwNjExNTcyLCAtMC4wMjk0NjY5OTk2OTQ3MDUwMSwgMC4wNTk2MzE5OTk1ODIwNTIyMywgMC45OTc3ODQ5NzIxOTA4NTY5LAorICAgICAgICAwLjA5Njc5MTk5NzU1MTkxODAzLCAtMC40OTAyMDc5OTk5NDQ2ODY5LCAwLjg2NjIxNDk5MDYxNTg0NDcsIDAuMDc5MjY4MDAxMDE5OTU0NjgsIC0wLjQwMTQ1Nzk5NTE3NjMxNTMsIDAuOTEyNDQxMDE1MjQzNTMwMywKKyAgICAgICAgMC4wNjYyMjgwMDIzMDk3OTkyLCAtMC4zMzU0MTMwMDg5MjgyOTg5NSwgMC45Mzk3NDAwMDIxNTUzMDQsIDAuMDQwNTExOTk5Mjc5MjYwNjM1LCAtMC4yMDUxNzM5OTkwNzExMjEyMiwgMC45Nzc4ODY5NzQ4MTE1NTQsCisgICAgICAgIC0wLjAxMzA3ODAwMDM5NjQ5MDA5NywgMC4wNjYyMzQwMDAwMjcxNzk3MiwgMC45OTc3MTc5NzY1NzAxMjk0LCAtMC4wOTY3OTE5OTc1NTE5MTgwMywgLTAuNDkwMjA3OTk5OTQ0Njg2OSwgMC44NjYyMTQ5OTA2MTU4NDQ3LAorICAgICAgICAtMC4yMTg5MzkwMDYzMjg1ODI3NiwgLTAuNDQzMDU1MDAzODgxNDU0NDcsIDAuODY5MzQ5MDAyODM4MTM0OCwgLTAuMTU0MzExOTk5Njc4NjExNzYsIC0wLjM3Mjg3NTk4ODQ4MzQyODk2LCAwLjkxNDk2MDAyNjc0MTAyNzgsCisgICAgICAgIC0wLjA3OTI2ODAwMTAxOTk1NDY4LCAtMC40MDE0NTc5OTUxNzYzMTUzLCAwLjkxMjQ0MTAxNTI0MzUzMDMsIC0wLjEyODgxMTAwMTc3NzY0ODkzLCAtMC4zMTEyNTc5ODgyMTQ0OTI4LCAwLjk0MTU1NTAyMzE5MzM1OTQsCisgICAgICAgIC0wLjA2NjIyODAwMjMwOTc5OTIsIC0wLjMzNTQxMzAwODkyODI5ODk1LCAwLjkzOTc0MDAwMjE1NTMwNCwgLTAuMDc4NjkwOTk4MjU2MjA2NTEsIC0wLjE5MDE1MjAwNDM2MTE1MjY1LCAwLjk3ODU5NTk3MjA2MTE1NzIsCisgICAgICAgIC0wLjA0MDUxMTk5OTI3OTI2MDYzNSwgLTAuMjA1MTczOTk5MDcxMTIxMjIsIDAuOTc3ODg2OTc0ODExNTU0LCAwLjAyMTI4OTAwMDI4NzY1MjAxNiwgMC4wNjMwMTgwMDE2MTYwMDExMywgMC45OTc3ODQ5NzIxOTA4NTY5LAorICAgICAgICAwLjAxMzA3ODAwMDM5NjQ5MDA5NywgMC4wNjYyMzQwMDAwMjcxNzk3MiwgMC45OTc3MTc5NzY1NzAxMjk0LCAtMC4zNzIxNzc5ODgyOTA3ODY3NCwgLTAuMzI2MDY3MDAwNjI3NTE3NywgMC44NjkwMDE5ODQ1OTYyNTI0LAorICAgICAgICAtMC4yODU3MzkwMDQ2MTE5NjksIC0wLjI4NTczOTAwNDYxMTk2OSwgMC45MTQ3MTcwMTg2MDQyNzg2LCAtMC4yMzg1NDQwMDIxNzUzMzExMiwgLTAuMjM4NTQ0MDAyMTc1MzMxMTIsIDAuOTQxMzc5MDEwNjc3MzM3NiwKKyAgICAgICAgLTAuMTQ1NzQ5MDAyNjk1MDgzNjIsIC0wLjE0NTc0OTAwMjY5NTA4MzYyLCAwLjk3ODUyNzAwOTQ4NzE1MjEsIDAuMDQzOTAzMDAwNjUyNzkwMDcsIDAuMDUwMTEyMDAxNTk3ODgxMzIsIDAuOTk3Nzc3OTk4NDQ3NDE4MiwKKyAgICAgICAgLTAuNDY4MTk5OTk4MTQwMzM1MSwgLTAuMTU4MTc2MDA0ODg2NjI3MiwgMC44NjkzNTAwMTYxMTcwOTYsIC0wLjM3Mjg3NTk4ODQ4MzQyODk2LCAtMC4xNTQzMTE5OTk2Nzg2MTE3NiwgMC45MTQ5NjAwMjY3NDEwMjc4LAorICAgICAgICAtMC4zMTEyNTc5ODgyMTQ0OTI4LCAtMC4xMjg4MTEwMDE3Nzc2NDg5MywgMC45NDE1NTUwMjMxOTMzNTk0LCAtMC4xOTAxNTEwMDU5ODMzNTI2NiwgLTAuMDc4NjkwOTk4MjU2MjA2NTEsIDAuOTc4NTk1OTcyMDYxMTU3MiwKKyAgICAgICAgMC4wNTk2MzE5OTk1ODIwNTIyMywgMC4wMjk0NjY5OTk2OTQ3MDUwMSwgMC45OTc3ODQ5NzIxOTA4NTY5LCAtMC40OTAyMDc5OTk5NDQ2ODY5LCAtMC4wOTY3OTE5OTc1NTE5MTgwMywgMC44NjYyMTQ5OTA2MTU4NDQ3LAorICAgICAgICAtMC40MDE0NTc5OTUxNzYzMTUzLCAtMC4wNzkyNjgwMDEwMTk5NTQ2OCwgMC45MTI0NDEwMTUyNDM1MzAzLCAtMC4zMzU0MTMwMDg5MjgyOTg5NSwgLTAuMDY2MjI4MDAyMzA5Nzk5MiwgMC45Mzk3NDAwMDIxNTUzMDQsCisgICAgICAgIC0wLjIwNTE3Mzk5OTA3MTEyMTIyLCAtMC4wNDA1MTE5OTkyNzkyNjA2MzUsIDAuOTc3ODg2OTc0ODExNTU0LCAwLjA2NjIzNDAwMDAyNzE3OTcyLCAwLjAxMzA3ODAwMDM5NjQ5MDA5NywgMC45OTc3MTc5NzY1NzAxMjk0LAorICAgICAgICAwLjA2NjIzNDAwMDAyNzE3OTcyLCAtMC4wMTMwNzgwMDAzOTY0OTAwOTcsIDAuOTk3NzE3OTc2NTcwMTI5NCwgMC4wNTk2MzE5OTk1ODIwNTIyMywgLTAuMDI5NDY2OTk5Njk0NzA1MDEsIDAuOTk3Nzg0OTcyMTkwODU2OSwKKyAgICAgICAgMC40MDMwMzIwMDQ4MzMyMjE0NCwgLTAuMTY2Nzg4OTk1MjY1OTYwNywgMC44OTk4NTkwMTExNzMyNDgzLCAwLjQzMzkxMjAwOTAwMDc3ODIsIC0wLjA4NTY3Njk5NzkwMDAwOTE2LCAwLjg5Njg3MTk4NDAwNDk3NDQsCisgICAgICAgIDAuNjMyNjMxMDAzODU2NjU4OSwgLTAuMjYxODEwOTg4MTg3Nzg5OSwgMC43Mjg4NTc5OTQwNzk1ODk4LCAwLjY3NzcxMjAyMzI1ODIwOTIsIC0wLjEzMzgxNjAwMzc5OTQzODQ4LCAwLjcyMzA0ODk4NTAwNDQyNSwKKyAgICAgICAgMC42NjYxMzM5OTk4MjQ1MjM5LCAtMC4yNzU2NzYwMTIwMzkxODQ1NywgMC42OTMwMTQwMjU2ODgxNzE0LCAwLjcxMjg1NDAyNzc0ODEwNzksIC0wLjE0MDc1NDk5NzczMDI1NTEzLCAwLjY4NzA0MzAxMTE4ODUwNzEsCisgICAgICAgIDAuNTc3NzU5OTgxMTU1Mzk1NSwgLTAuMTk1MTkwOTk1OTMxNjI1MzcsIDAuNzkyNTIzOTgwMTQwNjg2LCAwLjYwMzY0OTAyMDE5NTAwNzMsIC0wLjExOTE5MTk5Njc1MzIxNTc5LCAwLjc4ODI5MDAyMzgwMzcxMDksCisgICAgICAgIDAuMDQzOTAzMDAwNjUyNzkwMDcsIC0wLjA1MDExMjAwMTU5Nzg4MTMyLCAwLjk5Nzc3Nzk5ODQ0NzQxODIsIDAuMzA4ODQ3OTkzNjEyMjg5NDMsIC0wLjMwODg0Nzk5MzYxMjI4OTQzLCAwLjg5OTU2OTk4ODI1MDczMjQsCisgICAgICAgIDAuNDg0NTczMDA2NjI5OTQzODUsIC0wLjQ4NDU3MzAwNjYyOTk0Mzg1LCAwLjcyODI3MTAwNzUzNzg0MTgsIDAuNTEwMTM4OTg4NDk0ODczLCAtMC41MTAxMzg5ODg0OTQ4NzMsIDAuNjkyNDcxMDI3Mzc0MjY3NiwKKyAgICAgICAgMC40NTkxMTEwMDUwNjc4MjUzLCAtMC40MDIyMjk5OTQ1MzU0NDYxNywgMC43OTIxMDI5OTI1MzQ2Mzc1LCAwLjAyMTI4OTAwMDI4NzY1MjAxNiwgLTAuMDYzMDE4MDAxNjE2MDAxMTMsIDAuOTk3Nzg0OTcyMTkwODU2OSwKKyAgICAgICAgMC4xNjY3ODk5OTM2NDM3NjA2OCwgLTAuNDAzMDMyMDA0ODMzMjIxNDQsIDAuODk5ODU5MDExMTczMjQ4MywgMC4yNjE4MTA5ODgxODc3ODk5LCAtMC42MzI2MzEwMDM4NTY2NTg5LCAwLjcyODg1Nzk5NDA3OTU4OTgsCisgICAgICAgIDAuMjc1Njc2MDEyMDM5MTg0NTcsIC0wLjY2NjEzMzk5OTgyNDUyMzksIDAuNjkzMDE0MDI1Njg4MTcxNCwgMC4yNzAxNzcwMDY3MjE0OTY2LCAtMC41NDY3MzcwMTUyNDczNDUsIDAuNzkyNTE3MDA2Mzk3MjQ3MywKKyAgICAgICAgMC4wMTMwNzgwMDAzOTY0OTAwOTcsIC0wLjA2NjIzNDAwMDAyNzE3OTcyLCAwLjk5NzcxNzk3NjU3MDEyOTQsIDAuMDg1Njc1OTk5NTIyMjA5MTcsIC0wLjQzMzkxMjAwOTAwMDc3ODIsIDAuODk2ODcxOTg0MDA0OTc0NCwKKyAgICAgICAgMC4xMzM4MTYwMDM3OTk0Mzg0OCwgLTAuNjc3NzEyMDIzMjU4MjA5MiwgMC43MjMwNDg5ODUwMDQ0MjUsIDAuMTQwNzU0OTk3NzMwMjU1MTMsIC0wLjcxMjg1NDAyNzc0ODEwNzksIDAuNjg3MDQzMDExMTg4NTA3MSwKKyAgICAgICAgMC4xMTkxOTE5OTY3NTMyMTU3OSwgLTAuNjAzNjQ5MDIwMTk1MDA3MywgMC43ODgyOTAwMjM4MDM3MTA5LCAtMC4wMTMwNzgwMDAzOTY0OTAwOTcsIC0wLjA2NjIzNDAwMDAyNzE3OTcyLCAwLjk5NzcxNzk3NjU3MDEyOTQsCisgICAgICAgIC0wLjAyOTQ2Njk5OTY5NDcwNTAxLCAtMC4wNTk2MzE5OTk1ODIwNTIyMywgMC45OTc3ODQ5NzIxOTA4NTY5LCAtMC4xNjY3ODg5OTUyNjU5NjA3LCAtMC40MDMwMzIwMDQ4MzMyMjE0NCwgMC44OTk4NTkwMTExNzMyNDgzLAorICAgICAgICAtMC4wODU2NzY5OTc5MDAwMDkxNiwgLTAuNDMzOTEyMDA5MDAwNzc4MiwgMC44OTY4NzE5ODQwMDQ5NzQ0LCAtMC4yNjE4MTA5ODgxODc3ODk5LCAtMC42MzI2MzEwMDM4NTY2NTg5LCAwLjcyODg1Nzk5NDA3OTU4OTgsCisgICAgICAgIC0wLjEzMzgxNjAwMzc5OTQzODQ4LCAtMC42Nzc3MTIwMjMyNTgyMDkyLCAwLjcyMzA0ODk4NTAwNDQyNSwgLTAuMjc1Njc2MDEyMDM5MTg0NTcsIC0wLjY2NjEzMzk5OTgyNDUyMzksIDAuNjkzMDE0MDI1Njg4MTcxNCwKKyAgICAgICAgLTAuMTQwNzU0OTk3NzMwMjU1MTMsIC0wLjcxMjg1NDAyNzc0ODEwNzksIDAuNjg3MDQzMDExMTg4NTA3MSwgLTAuMTk1MTkwOTk1OTMxNjI1MzcsIC0wLjU3Nzc1OTk4MTE1NTM5NTUsIDAuNzkyNTIzOTgwMTQwNjg2LAorICAgICAgICAtMC4xMTkxOTE5OTY3NTMyMTU3OSwgLTAuNjAzNjQ5MDIwMTk1MDA3MywgMC43ODgyOTAwMjM4MDM3MTA5LCAtMC4wNTAxMTIwMDE1OTc4ODEzMiwgLTAuMDQzOTAzMDAwNjUyNzkwMDcsIDAuOTk3Nzc3OTk4NDQ3NDE4MiwKKyAgICAgICAgLTAuMzA4ODQ3OTkzNjEyMjg5NDMsIC0wLjMwODg0Nzk5MzYxMjI4OTQzLCAwLjg5OTU2OTk4ODI1MDczMjQsIC0wLjQ4NDU3MzAwNjYyOTk0Mzg1LCAtMC40ODQ1NzMwMDY2Mjk5NDM4NSwgMC43MjgyNzEwMDc1Mzc4NDE4LAorICAgICAgICAtMC41MTAxMzg5ODg0OTQ4NzMsIC0wLjUxMDEzODk4ODQ5NDg3MywgMC42OTI0NzEwMjczNzQyNjc2LCAtMC40MDIyMjk5OTQ1MzU0NDYxNywgLTAuNDU5MTExMDA1MDY3ODI1MywgMC43OTIxMDI5OTI1MzQ2Mzc1LAorICAgICAgICAtMC4wNjMwMTgwMDE2MTYwMDExMywgLTAuMDIxMjg5MDAwMjg3NjUyMDE2LCAwLjk5Nzc4NDk3MjE5MDg1NjksIC0wLjQwMzAzMjAwNDgzMzIyMTQ0LCAtMC4xNjY3ODk5OTM2NDM3NjA2OCwgMC44OTk4NTkwMTExNzMyNDgzLAorICAgICAgICAtMC42MzI2MzEwMDM4NTY2NTg5LCAtMC4yNjE4MTA5ODgxODc3ODk5LCAwLjcyODg1Nzk5NDA3OTU4OTgsIC0wLjY2NjEzMzk5OTgyNDUyMzksIC0wLjI3NTY3NjAxMjAzOTE4NDU3LCAwLjY5MzAxNDAyNTY4ODE3MTQsCisgICAgICAgIC0wLjU0NjczNzAxNTI0NzM0NSwgLTAuMjcwMTc3MDA2NzIxNDk2NiwgMC43OTI1MTcwMDYzOTcyNDczLCAtMC4wNjYyMzQwMDAwMjcxNzk3MiwgLTAuMDEzMDc4MDAwMzk2NDkwMDk3LCAwLjk5NzcxNzk3NjU3MDEyOTQsCisgICAgICAgIC0wLjQzMzkxMjAwOTAwMDc3ODIsIC0wLjA4NTY3NTk5OTUyMjIwOTE3LCAwLjg5Njg3MTk4NDAwNDk3NDQsIC0wLjY3NzcxMjAyMzI1ODIwOTIsIC0wLjEzMzgxNjAwMzc5OTQzODQ4LCAwLjcyMzA0ODk4NTAwNDQyNSwKKyAgICAgICAgLTAuNzEyODU0MDI3NzQ4MTA3OSwgLTAuMTQwNzU0OTk3NzMwMjU1MTMsIDAuNjg3MDQzMDExMTg4NTA3MSwgLTAuNjAzNjQ5MDIwMTk1MDA3MywgLTAuMTE5MTkxOTk2NzUzMjE1NzksIDAuNzg4MjkwMDIzODAzNzEwOSwKKyAgICAgICAgLTAuMDY2MjM0MDAwMDI3MTc5NzIsIDAuMDEzMDc4MDAwMzk2NDkwMDk3LCAwLjk5NzcxNzk3NjU3MDEyOTQsIC0wLjA1OTYzMTk5OTU4MjA1MjIzLCAwLjAyOTQ2Njk5OTY5NDcwNTAxLCAwLjk5Nzc4NDk3MjE5MDg1NjksCisgICAgICAgIC0wLjQwMzAzMjAwNDgzMzIyMTQ0LCAwLjE2Njc4ODk5NTI2NTk2MDcsIDAuODk5ODU5MDExMTczMjQ4MywgLTAuNDMzOTEyMDA5MDAwNzc4MiwgMC4wODU2NzY5OTc5MDAwMDkxNiwgMC44OTY4NzE5ODQwMDQ5NzQ0LAorICAgICAgICAtMC42MzI2MzEwMDM4NTY2NTg5LCAwLjI2MTgxMDk4ODE4Nzc4OTksIDAuNzI4ODU3OTk0MDc5NTg5OCwgLTAuNjc3NzEyMDIzMjU4MjA5MiwgMC4xMzM4MTYwMDM3OTk0Mzg0OCwgMC43MjMwNDg5ODUwMDQ0MjUsCisgICAgICAgIC0wLjY2NjEzMzk5OTgyNDUyMzksIDAuMjc1Njc2MDEyMDM5MTg0NTcsIDAuNjkzMDE0MDI1Njg4MTcxNCwgLTAuNzEyODU0MDI3NzQ4MTA3OSwgMC4xNDA3NTQ5OTc3MzAyNTUxMywgMC42ODcwNDMwMTExODg1MDcxLAorICAgICAgICAtMC41Nzc3NTk5ODExNTUzOTU1LCAwLjE5NTE5MDk5NTkzMTYyNTM3LCAwLjc5MjUyMzk4MDE0MDY4NiwgLTAuNjAzNjQ5MDIwMTk1MDA3MywgMC4xMTkxOTE5OTY3NTMyMTU3OSwgMC43ODgyOTAwMjM4MDM3MTA5LAorICAgICAgICAtMC4wNDM5MDMwMDA2NTI3OTAwNywgMC4wNTAxMTIwMDE1OTc4ODEzMiwgMC45OTc3Nzc5OTg0NDc0MTgyLCAtMC4zMDg4NDc5OTM2MTIyODk0MywgMC4zMDg4NDc5OTM2MTIyODk0MywgMC44OTk1Njk5ODgyNTA3MzI0LAorICAgICAgICAtMC40ODQ1NzMwMDY2Mjk5NDM4NSwgMC40ODQ1NzMwMDY2Mjk5NDM4NSwgMC43MjgyNzEwMDc1Mzc4NDE4LCAtMC41MTAxMzg5ODg0OTQ4NzMsIDAuNTEwMTM4OTg4NDk0ODczLCAwLjY5MjQ3MTAyNzM3NDI2NzYsCisgICAgICAgIC0wLjQ1OTExMTAwNTA2NzgyNTMsIDAuNDAyMjI5OTk0NTM1NDQ2MTcsIDAuNzkyMTAyOTkyNTM0NjM3NSwgLTAuMDIxMjg5MDAwMjg3NjUyMDE2LCAwLjA2MzAxODAwMTYxNjAwMTEzLCAwLjk5Nzc4NDk3MjE5MDg1NjksCisgICAgICAgIC0wLjE2Njc4OTk5MzY0Mzc2MDY4LCAwLjQwMzAzMjAwNDgzMzIyMTQ0LCAwLjg5OTg1OTAxMTE3MzI0ODMsIC0wLjI2MTgxMDk4ODE4Nzc4OTksIDAuNjMyNjMxMDAzODU2NjU4OSwgMC43Mjg4NTc5OTQwNzk1ODk4LAorICAgICAgICAtMC4yNzU2NzYwMTIwMzkxODQ1NywgMC42NjYxMzM5OTk4MjQ1MjM5LCAwLjY5MzAxNDAyNTY4ODE3MTQsIC0wLjI3MDE3NzAwNjcyMTQ5NjYsIDAuNTQ2NzM3MDE1MjQ3MzQ1LCAwLjc5MjUxNzAwNjM5NzI0NzMsCisgICAgICAgIC0wLjAxMzA3ODAwMDM5NjQ5MDA5NywgMC4wNjYyMzQwMDAwMjcxNzk3MiwgMC45OTc3MTc5NzY1NzAxMjk0LCAtMC4wODU2NzU5OTk1MjIyMDkxNywgMC40MzM5MTIwMDkwMDA3NzgyLCAwLjg5Njg3MTk4NDAwNDk3NDQsCisgICAgICAgIC0wLjEzMzgxNjAwMzc5OTQzODQ4LCAwLjY3NzcxMjAyMzI1ODIwOTIsIDAuNzIzMDQ4OTg1MDA0NDI1LCAtMC4xNDA3NTQ5OTc3MzAyNTUxMywgMC43MTI4NTQwMjc3NDgxMDc5LCAwLjY4NzA0MzAxMTE4ODUwNzEsCisgICAgICAgIC0wLjExOTE5MTk5Njc1MzIxNTc5LCAwLjYwMzY0OTAyMDE5NTAwNzMsIDAuNzg4MjkwMDIzODAzNzEwOSwgMC4wMTMwNzgwMDAzOTY0OTAwOTcsIDAuMDY2MjM0MDAwMDI3MTc5NzIsIDAuOTk3NzE3OTc2NTcwMTI5NCwKKyAgICAgICAgMC4wMjk0NjY5OTk2OTQ3MDUwMSwgMC4wNTk2MzE5OTk1ODIwNTIyMywgMC45OTc3ODQ5NzIxOTA4NTY5LCAwLjE2Njc4ODk5NTI2NTk2MDcsIDAuNDAzMDMyMDA0ODMzMjIxNDQsIDAuODk5ODU5MDExMTczMjQ4MywKKyAgICAgICAgMC4wODU2NzY5OTc5MDAwMDkxNiwgMC40MzM5MTIwMDkwMDA3NzgyLCAwLjg5Njg3MTk4NDAwNDk3NDQsIDAuMjYxODEwOTg4MTg3Nzg5OSwgMC42MzI2MzEwMDM4NTY2NTg5LCAwLjcyODg1Nzk5NDA3OTU4OTgsCisgICAgICAgIDAuMTMzODE2MDAzNzk5NDM4NDgsIDAuNjc3NzEyMDIzMjU4MjA5MiwgMC43MjMwNDg5ODUwMDQ0MjUsIDAuMjc1Njc2MDEyMDM5MTg0NTcsIDAuNjY2MTMzOTk5ODI0NTIzOSwgMC42OTMwMTQwMjU2ODgxNzE0LAorICAgICAgICAwLjE0MDc1NDk5NzczMDI1NTEzLCAwLjcxMjg1NDAyNzc0ODEwNzksIDAuNjg3MDQzMDExMTg4NTA3MSwgMC4xOTUxOTA5OTU5MzE2MjUzNywgMC41Nzc3NTk5ODExNTUzOTU1LCAwLjc5MjUyMzk4MDE0MDY4NiwKKyAgICAgICAgMC4xMTkxOTE5OTY3NTMyMTU3OSwgMC42MDM2NDkwMjAxOTUwMDczLCAwLjc4ODI5MDAyMzgwMzcxMDksIDAuMDUwMTEyMDAxNTk3ODgxMzIsIDAuMDQzOTAzMDAwNjUyNzkwMDcsIDAuOTk3Nzc3OTk4NDQ3NDE4MiwKKyAgICAgICAgMC4zMDg4NDc5OTM2MTIyODk0MywgMC4zMDg4NDc5OTM2MTIyODk0MywgMC44OTk1Njk5ODgyNTA3MzI0LCAwLjQ4NDU3MzAwNjYyOTk0Mzg1LCAwLjQ4NDU3MzAwNjYyOTk0Mzg1LCAwLjcyODI3MTAwNzUzNzg0MTgsCisgICAgICAgIDAuNTEwMTM4OTg4NDk0ODczLCAwLjUxMDEzODk4ODQ5NDg3MywgMC42OTI0NzEwMjczNzQyNjc2LCAwLjQwMjIyOTk5NDUzNTQ0NjE3LCAwLjQ1OTExMTAwNTA2NzgyNTMsIDAuNzkyMTAyOTkyNTM0NjM3NSwKKyAgICAgICAgMC4wNjMwMTgwMDE2MTYwMDExMywgMC4wMjEyODkwMDAyODc2NTIwMTYsIDAuOTk3Nzg0OTcyMTkwODU2OSwgMC40MDMwMzIwMDQ4MzMyMjE0NCwgMC4xNjY3ODk5OTM2NDM3NjA2OCwgMC44OTk4NTkwMTExNzMyNDgzLAorICAgICAgICAwLjYzMjYzMTAwMzg1NjY1ODksIDAuMjYxODEwOTg4MTg3Nzg5OSwgMC43Mjg4NTc5OTQwNzk1ODk4LCAwLjY2NjEzMzk5OTgyNDUyMzksIDAuMjc1Njc2MDEyMDM5MTg0NTcsIDAuNjkzMDE0MDI1Njg4MTcxNCwKKyAgICAgICAgMC41NDY3MzcwMTUyNDczNDUsIDAuMjcwMTc3MDA2NzIxNDk2NiwgMC43OTI1MTcwMDYzOTcyNDczLCAwLjA2NjIzNDAwMDAyNzE3OTcyLCAwLjAxMzA3ODAwMDM5NjQ5MDA5NywgMC45OTc3MTc5NzY1NzAxMjk0LAorICAgICAgICAwLjQzMzkxMjAwOTAwMDc3ODIsIDAuMDg1Njc1OTk5NTIyMjA5MTcsIDAuODk2ODcxOTg0MDA0OTc0NCwgMC42Nzc3MTIwMjMyNTgyMDkyLCAwLjEzMzgxNjAwMzc5OTQzODQ4LCAwLjcyMzA0ODk4NTAwNDQyNSwKKyAgICAgICAgMC43MTI4NTQwMjc3NDgxMDc5LCAwLjE0MDc1NDk5NzczMDI1NTEzLCAwLjY4NzA0MzAxMTE4ODUwNzEsIDAuNjAzNjQ5MDIwMTk1MDA3MywgMC4xMTkxOTE5OTY3NTMyMTU3OSwgMC43ODgyOTAwMjM4MDM3MTA5LAorICAgICAgICAwLjYwMzY0OTAyMDE5NTAwNzMsIC0wLjExOTE5MTk5Njc1MzIxNTc5LCAwLjc4ODI5MDAyMzgwMzcxMDksIDAuNTQ2NzM3MDE1MjQ3MzQ1LCAtMC4yNzAxNzcwMDY3MjE0OTY2LCAwLjc5MjUxNzAwNjM5NzI0NzMsCisgICAgICAgIDAuNzIyMzgzMDIyMzA4MzQ5NiwgLTAuMjk4OTU2OTkwMjQyMDA0NCwgMC42MjM1MjgwMDM2OTI2MjcsIDAuNzcyMzk0MDAxNDgzOTE3MiwgLTAuMTUyNTExMDAwNjMzMjM5NzUsIDAuNjE2NTYyMDA4ODU3NzI3LAorICAgICAgICAwLjkwOTQwODk4NjU2ODQ1MDksIC0wLjM3NjM1MjAxMjE1NzQ0MDIsIDAuMTc3MDE1MDA2NTQyMjA1OCwgMC45NjYwODY5ODM2ODA3MjUxLCAtMC4xOTA3NTU5OTMxMjc4MjI4OCwgMC4xNzQwMzQ5OTc4MjA4NTQyLAorICAgICAgICAwLjk0MDgyMzAxODU1MDg3MjgsIC0wLjMzNTMyNTk4NjE0NjkyNjksIDAuMDQ5MDc0OTk5OTg4MDc5MDcsIDAuOTg0MzExOTk3ODkwNDcyNCwgLTAuMTY5NjQwMDA0NjM0ODU3MTgsIDAuMDQ4NDkzMDAxNjEwMDQwNjY1LAorICAgICAgICAwLjk4MTA1ODAwMTUxODI0OTUsIC0wLjE5MzcxMTk5NjA3ODQ5MTIsIDAsIDAuNzA3MTA3MDA3NTAzNTA5NSwgLTAuNzA3MTA3MDA3NTAzNTA5NSwgMCwKKyAgICAgICAgMC40MDIyMjk5OTQ1MzU0NDYxNywgLTAuNDU5MTExMDA1MDY3ODI1MywgMC43OTIxMDI5OTI1MzQ2Mzc1LCAwLjU1MzIwMjk4NjcxNzIyNDEsIC0wLjU1MzIwMjk4NjcxNzIyNDEsIDAuNjIyODQyMDEzODM1OTA3LAorICAgICAgICAwLjY5NTk4Nzk5OTQzOTIzOTUsIC0wLjY5NTk4Nzk5OTQzOTIzOTUsIDAuMTc2NjM5MDA1NTQxODAxNDUsIDAuNzQwMzk3OTg5NzQ5OTA4NCwgLTAuNjcwMzgyOTc2NTMxOTgyNCwgMC4wNDg5NTg5OTgxNzM0NzUyNjYsCisgICAgICAgIDAuODMxMDQxOTkxNzEwNjYyOCwgLTAuNTU2MjA5MDI3NzY3MTgxNCwgMCwgMC4xOTUxOTA5OTU5MzE2MjUzNywgLTAuNTc3NzU5OTgxMTU1Mzk1NSwgMC43OTI1MjM5ODAxNDA2ODYsCisgICAgICAgIDAuMjk4OTU2MDA2NzY1MzY1NiwgLTAuNzIyMzgzMDIyMzA4MzQ5NiwgMC42MjM1MjgwMDM2OTI2MjcsIDAuMzc2MzUyMDEyMTU3NDQwMiwgLTAuOTA5NDA4OTg2NTY4NDUwOSwgMC4xNzcwMTUwMDY1NDIyMDU4LAorICAgICAgICAwLjQyNzU3NjAwNTQ1ODgzMTgsIC0wLjkwMjY0NjAwNTE1MzY1NiwgMC4wNDkwNjg5OTg1NDU0MDgyNSwgMC41NTYyMDkwMjc3NjcxODE0LCAtMC44MzEwNDE5OTE3MTA2NjI4LCAwLAorICAgICAgICAwLjExOTE5MTk5Njc1MzIxNTc5LCAtMC42MDM2NDkwMjAxOTUwMDczLCAwLjc4ODI5MDAyMzgwMzcxMDksIDAuMTUyNTExMDAwNjMzMjM5NzUsIC0wLjc3MjM5NDAwMTQ4MzkxNzIsIDAuNjE2NTYyMDA4ODU3NzI3LAorICAgICAgICAwLjE5MDc1NTk5MzEyNzgyMjg4LCAtMC45NjYwODY5ODM2ODA3MjUxLCAwLjE3NDAzNDk5NzgyMDg1NDIsIDAuMTkzNDg2MDA1MDY3ODI1MzIsIC0wLjk3OTkxNDAwOTU3MTA3NTQsIDAuMDQ4Mjc3MDAxODI3OTU1MjQ2LAorICAgICAgICAwLjE5MzcxMTk5NjA3ODQ5MTIsIC0wLjk4MTA1ODAwMTUxODI0OTUsIDAsIC0wLjExOTE5MTk5Njc1MzIxNTc5LCAtMC42MDM2NDkwMjAxOTUwMDczLCAwLjc4ODI5MDAyMzgwMzcxMDksCisgICAgICAgIC0wLjI3MDE3NzAwNjcyMTQ5NjYsIC0wLjU0NjczNzAxNTI0NzM0NSwgMC43OTI1MTcwMDYzOTcyNDczLCAtMC4yOTg5NTY5OTAyNDIwMDQ0LCAtMC43MjIzODMwMjIzMDgzNDk2LCAwLjYyMzUyODAwMzY5MjYyNywKKyAgICAgICAgLTAuMTUyNTExMDAwNjMzMjM5NzUsIC0wLjc3MjM5NDAwMTQ4MzkxNzIsIDAuNjE2NTYyMDA4ODU3NzI3LCAtMC4zNzYzNTIwMTIxNTc0NDAyLCAtMC45MDk0MDg5ODY1Njg0NTA5LCAwLjE3NzAxNTAwNjU0MjIwNTgsCisgICAgICAgIC0wLjE5MDc1NTk5MzEyNzgyMjg4LCAtMC45NjYwODY5ODM2ODA3MjUxLCAwLjE3NDAzNDk5NzgyMDg1NDIsIC0wLjMzNTMyNTk4NjE0NjkyNjksIC0wLjk0MDgyMzAxODU1MDg3MjgsIDAuMDQ5MDc0OTk5OTg4MDc5MDcsCisgICAgICAgIC0wLjE2OTY0MDAwNDYzNDg1NzE4LCAtMC45ODQzMTE5OTc4OTA0NzI0LCAwLjA0ODQ5Mzk5OTk4Nzg0MDY1LCAtMC4xOTM3MTE5OTYwNzg0OTEyLCAtMC45ODEwNTgwMDE1MTgyNDk1LCAwLAorICAgICAgICAwLjcwNzEwNzAwNzUwMzUwOTUsIC0wLjcwNzEwNzAwNzUwMzUwOTUsIDAsIC0wLjQ1OTExMTAwNTA2NzgyNTMsIC0wLjQwMjIyOTk5NDUzNTQ0NjE3LCAwLjc5MjEwMjk5MjUzNDYzNzUsCisgICAgICAgIC0wLjU1MzIwMjk4NjcxNzIyNDEsIC0wLjU1MzIwMjk4NjcxNzIyNDEsIDAuNjIyODQyMDEzODM1OTA3LCAtMC42OTU5ODc5OTk0MzkyMzk1LCAtMC42OTU5ODc5OTk0MzkyMzk1LCAwLjE3NjYzOTAwNTU0MTgwMTQ1LAorICAgICAgICAtMC42NzAzODI5NzY1MzE5ODI0LCAtMC43NDAzOTc5ODk3NDk5MDg0LCAwLjA0ODk1ODk5ODE3MzQ3NTI2NiwgLTAuNTU2MjA5MDI3NzY3MTgxNCwgLTAuODMxMDQxOTkxNzEwNjYyOCwgMCwKKyAgICAgICAgLTAuNTc3NzU5OTgxMTU1Mzk1NSwgLTAuMTk1MTkwOTk1OTMxNjI1MzcsIDAuNzkyNTIzOTgwMTQwNjg2LCAtMC43MjIzODMwMjIzMDgzNDk2LCAtMC4yOTg5NTYwMDY3NjUzNjU2LCAwLjYyMzUyODAwMzY5MjYyNywKKyAgICAgICAgLTAuOTA5NDA4OTg2NTY4NDUwOSwgLTAuMzc2MzUyMDEyMTU3NDQwMiwgMC4xNzcwMTUwMDY1NDIyMDU4LCAtMC45MDI2NDYwMDUxNTM2NTYsIC0wLjQyNzU3NjAwNTQ1ODgzMTgsIDAuMDQ5MDY4OTk4NTQ1NDA4MjUsCisgICAgICAgIC0wLjgzMTA0MTk5MTcxMDY2MjgsIC0wLjU1NjIwOTAyNzc2NzE4MTQsIDAsIC0wLjYwMzY0OTAyMDE5NTAwNzMsIC0wLjExOTE5MTk5Njc1MzIxNTc5LCAwLjc4ODI5MDAyMzgwMzcxMDksCisgICAgICAgIC0wLjc3MjM5NDAwMTQ4MzkxNzIsIC0wLjE1MjUxMTAwMDYzMzIzOTc1LCAwLjYxNjU2MjAwODg1NzcyNywgLTAuOTY2MDg2OTgzNjgwNzI1MSwgLTAuMTkwNzU1OTkzMTI3ODIyODgsIDAuMTc0MDM0OTk3ODIwODU0MiwKKyAgICAgICAgLTAuOTc5OTE0MDA5NTcxMDc1NCwgLTAuMTkzNDg2MDA1MDY3ODI1MzIsIDAuMDQ4Mjc3MDAxODI3OTU1MjQ2LCAtMC45ODEwNTgwMDE1MTgyNDk1LCAtMC4xOTM3MTE5OTYwNzg0OTEyLCAwLAorICAgICAgICAtMC42MDM2NDkwMjAxOTUwMDczLCAwLjExOTE5MTk5Njc1MzIxNTc5LCAwLjc4ODI5MDAyMzgwMzcxMDksIC0wLjU0NjczNzAxNTI0NzM0NSwgMC4yNzAxNzcwMDY3MjE0OTY2LCAwLjc5MjUxNzAwNjM5NzI0NzMsCisgICAgICAgIC0wLjcyMjM4MzAyMjMwODM0OTYsIDAuMjk4OTU2OTkwMjQyMDA0NCwgMC42MjM1MjgwMDM2OTI2MjcsIC0wLjc3MjM5NDAwMTQ4MzkxNzIsIDAuMTUyNTExMDAwNjMzMjM5NzUsIDAuNjE2NTYyMDA4ODU3NzI3LAorICAgICAgICAtMC45MDk0MDg5ODY1Njg0NTA5LCAwLjM3NjM1MjAxMjE1NzQ0MDIsIDAuMTc3MDE1MDA2NTQyMjA1OCwgLTAuOTY2MDg2OTgzNjgwNzI1MSwgMC4xOTA3NTU5OTMxMjc4MjI4OCwgMC4xNzQwMzQ5OTc4MjA4NTQyLAorICAgICAgICAtMC45NDA4MjMwMTg1NTA4NzI4LCAwLjMzNTMyNTk4NjE0NjkyNjksIDAuMDQ5MDc0OTk5OTg4MDc5MDcsIC0wLjk4NDMxMTk5Nzg5MDQ3MjQsIDAuMTY5NjQwMDA0NjM0ODU3MTgsIDAuMDQ4NDkzOTk5OTg3ODQwNjUsCisgICAgICAgIC0wLjk4MTA1ODAwMTUxODI0OTUsIDAuMTkzNzExOTk2MDc4NDkxMiwgMCwgMC43MDcxMDcwMDc1MDM1MDk1LCAtMC43MDcxMDcwMDc1MDM1MDk1LCAwLAorICAgICAgICAtMC40MDIyMjk5OTQ1MzU0NDYxNywgMC40NTkxMTEwMDUwNjc4MjUzLCAwLjc5MjEwMjk5MjUzNDYzNzUsIC0wLjU1MzIwMjk4NjcxNzIyNDEsIDAuNTUzMjAyOTg2NzE3MjI0MSwgMC42MjI4NDIwMTM4MzU5MDcsCisgICAgICAgIC0wLjY5NTk4Nzk5OTQzOTIzOTUsIDAuNjk1OTg3OTk5NDM5MjM5NSwgMC4xNzY2MzkwMDU1NDE4MDE0NSwgLTAuNzQwMzk3OTg5NzQ5OTA4NCwgMC42NzAzODI5NzY1MzE5ODI0LCAwLjA0ODk1ODk5ODE3MzQ3NTI2NiwKKyAgICAgICAgLTAuODMxMDQxOTkxNzEwNjYyOCwgMC41NTYyMDkwMjc3NjcxODE0LCAwLCAtMC4xOTUxOTA5OTU5MzE2MjUzNywgMC41Nzc3NTk5ODExNTUzOTU1LCAwLjc5MjUyMzk4MDE0MDY4NiwKKyAgICAgICAgLTAuMjk4OTU2MDA2NzY1MzY1NiwgMC43MjIzODMwMjIzMDgzNDk2LCAwLjYyMzUyODAwMzY5MjYyNywgLTAuMzc2MzUyMDEyMTU3NDQwMiwgMC45MDk0MDg5ODY1Njg0NTA5LCAwLjE3NzAxNTAwNjU0MjIwNTgsCisgICAgICAgIC0wLjQyNzU3NjAwNTQ1ODgzMTgsIDAuOTAyNjQ2MDA1MTUzNjU2LCAwLjA0OTA2ODk5ODU0NTQwODI1LCAtMC41NTYyMDkwMjc3NjcxODE0LCAwLjgzMTA0MTk5MTcxMDY2MjgsIDAsCisgICAgICAgIC0wLjExOTE5MTk5Njc1MzIxNTc5LCAwLjYwMzY0OTAyMDE5NTAwNzMsIDAuNzg4MjkwMDIzODAzNzEwOSwgLTAuMTUyNTExMDAwNjMzMjM5NzUsIDAuNzcyMzk0MDAxNDgzOTE3MiwgMC42MTY1NjIwMDg4NTc3MjcsCisgICAgICAgIC0wLjE5MDc1NTk5MzEyNzgyMjg4LCAwLjk2NjA4Njk4MzY4MDcyNTEsIDAuMTc0MDM0OTk3ODIwODU0MiwgLTAuMTkzNDg2MDA1MDY3ODI1MzIsIDAuOTc5OTE0MDA5NTcxMDc1NCwgMC4wNDgyNzcwMDE4Mjc5NTUyNDYsCisgICAgICAgIC0wLjE5MzcxMTk5NjA3ODQ5MTIsIDAuOTgxMDU4MDAxNTE4MjQ5NSwgMCwgMC4xMTkxOTE5OTY3NTMyMTU3OSwgMC42MDM2NDkwMjAxOTUwMDczLCAwLjc4ODI5MDAyMzgwMzcxMDksCisgICAgICAgIDAuMjcwMTc3MDA2NzIxNDk2NiwgMC41NDY3MzcwMTUyNDczNDUsIDAuNzkyNTE3MDA2Mzk3MjQ3MywgMC4yOTg5NTY5OTAyNDIwMDQ0LCAwLjcyMjM4MzAyMjMwODM0OTYsIDAuNjIzNTI4MDAzNjkyNjI3LAorICAgICAgICAwLjE1MjUxMTAwMDYzMzIzOTc1LCAwLjc3MjM5NDAwMTQ4MzkxNzIsIDAuNjE2NTYyMDA4ODU3NzI3LCAwLjM3NjM1MjAxMjE1NzQ0MDIsIDAuOTA5NDA4OTg2NTY4NDUwOSwgMC4xNzcwMTUwMDY1NDIyMDU4LAorICAgICAgICAwLjE5MDc1NTk5MzEyNzgyMjg4LCAwLjk2NjA4Njk4MzY4MDcyNTEsIDAuMTc0MDM0OTk3ODIwODU0MiwgMC4zMzUzMjU5ODYxNDY5MjY5LCAwLjk0MDgyMzAxODU1MDg3MjgsIDAuMDQ5MDc0OTk5OTg4MDc5MDcsCisgICAgICAgIDAuMTY5NjQwMDA0NjM0ODU3MTgsIDAuOTg0MzExOTk3ODkwNDcyNCwgMC4wNDg0OTM5OTk5ODc4NDA2NSwgMC4xOTM3MTE5OTYwNzg0OTEyLCAwLjk4MTA1ODAwMTUxODI0OTUsIDAsCisgICAgICAgIDAuNzA3MTA3MDA3NTAzNTA5NSwgLTAuNzA3MTA3MDA3NTAzNTA5NSwgMCwgMC40NTkxMTEwMDUwNjc4MjUzLCAwLjQwMjIyOTk5NDUzNTQ0NjE3LCAwLjc5MjEwMjk5MjUzNDYzNzUsCisgICAgICAgIDAuNTUzMjAyOTg2NzE3MjI0MSwgMC41NTMyMDI5ODY3MTcyMjQxLCAwLjYyMjg0MjAxMzgzNTkwNywgMC42OTU5ODc5OTk0MzkyMzk1LCAwLjY5NTk4Nzk5OTQzOTIzOTUsIDAuMTc2NjM5MDA1NTQxODAxNDUsCisgICAgICAgIDAuNjcwMzgyOTc2NTMxOTgyNCwgMC43NDAzOTc5ODk3NDk5MDg0LCAwLjA0ODk1ODk5ODE3MzQ3NTI2NiwgMC41NTYyMDkwMjc3NjcxODE0LCAwLjgzMTA0MTk5MTcxMDY2MjgsIDAsCisgICAgICAgIDAuNTc3NzU5OTgxMTU1Mzk1NSwgMC4xOTUxOTA5OTU5MzE2MjUzNywgMC43OTI1MjM5ODAxNDA2ODYsIDAuNzIyMzgzMDIyMzA4MzQ5NiwgMC4yOTg5NTYwMDY3NjUzNjU2LCAwLjYyMzUyODAwMzY5MjYyNywKKyAgICAgICAgMC45MDk0MDg5ODY1Njg0NTA5LCAwLjM3NjM1MjAxMjE1NzQ0MDIsIDAuMTc3MDE1MDA2NTQyMjA1OCwgMC45MDI2NDYwMDUxNTM2NTYsIDAuNDI3NTc2MDA1NDU4ODMxOCwgMC4wNDkwNjg5OTg1NDU0MDgyNSwKKyAgICAgICAgMC44MzEwNDE5OTE3MTA2NjI4LCAwLjU1NjIwOTAyNzc2NzE4MTQsIDAsIDAuNjAzNjQ5MDIwMTk1MDA3MywgMC4xMTkxOTE5OTY3NTMyMTU3OSwgMC43ODgyOTAwMjM4MDM3MTA5LAorICAgICAgICAwLjc3MjM5NDAwMTQ4MzkxNzIsIDAuMTUyNTExMDAwNjMzMjM5NzUsIDAuNjE2NTYyMDA4ODU3NzI3LCAwLjk2NjA4Njk4MzY4MDcyNTEsIDAuMTkwNzU1OTkzMTI3ODIyODgsIDAuMTc0MDM0OTk3ODIwODU0MiwKKyAgICAgICAgMC45Nzk5MTUwMjI4NTAwMzY2LCAwLjE5MzQ4NjAwNTA2NzgyNTMyLCAwLjA0ODI3NzAwMTgyNzk1NTI0NiwgMC45ODEwNTgwMDE1MTgyNDk1LCAwLjE5MzcxMTk5NjA3ODQ5MTIsIDAsCisgICAgICAgIDAuOTk5OTQ4MDI0NzQ5NzU1OSwgMC4wMDY2MjIwMDAxMzE3NTYwNjcsIDAuMDA3Nzg2OTk5OTIyMjQ1NzQxLCAwLjk5ODkyOTAyMzc0MjY3NTgsIDAuMDQxMjU3MDAxNDU5NTk4NTQsIC0wLjAyMDk0NTk5OTc3MTM1NjU4MywKKyAgICAgICAgMC45NzAwMjYwMTYyMzUzNTE2LCAtMC4xODIzMDkwMDE2ODQxODg4NCwgMC4xNjA2NjA5OTcwMzMxMTkyLCAwLjk5Mjk4Njk3NzEwMDM3MjMsIC0wLjExMTY4MDk5OTM5ODIzMTUsIDAuMDM4NzgyOTk4OTE5NDg3LAorICAgICAgICAwLjg2NzcwODk4MTAzNzEzOTksIC0wLjMwOTkzMzk5MDI0MDA5NzA1LCAwLjM4ODYxNTk5NTY0NTUyMzA3LCAwLjk2NzUwNDk3ODE3OTkzMTYsIC0wLjE4MTc5NTk5OTQwNzc2ODI1LCAwLjE3NTc0MTAwMTk2MzYxNTQyLAorICAgICAgICAwLjYxMjcyMjk5Mjg5NzAzMzcsIC0wLjIzNzk3NTAwMTMzNTE0NDA0LCAwLjc1MzYxNjk4ODY1ODkwNSwgMC43ODE2MTE5NzkwMDc3MjEsIC0wLjE1ODU2NDk5OTY5OTU5MjYsIDAuNjAzMjc1MDAxMDQ5MDQxNywKKyAgICAgICAgMC4xMzA0OTM5OTg1Mjc1MjY4NiwgLTAuMDI1ODU5MDAwMTYxMjkwMTcsIDAuOTkxMTExOTkzNzg5NjcyOSwgMC4xNjU4MzgwMDMxNTg1NjkzNCwgLTAuMDQ2MDY2MDAxMDU3NjI0ODIsIDAuOTg1MDc3MDIzNTA2MTY0NiwKKyAgICAgICAgMC45ODQ3NjA5OTk2Nzk1NjU0LCAtMC4wMzAwNDY5OTk0NTQ0OTgyOSwgLTAuMTcxMjk1MDAyMTAyODUxODcsIDAuOTQ2Mzg1MDI1OTc4MDg4NCwgMC4wMDgxMzgwMDAwMzM3OTU4MzQsIDAuMzIyOTM3OTk1MTk1Mzg4OCwKKyAgICAgICAgMC42OTQyODkwMjg2NDQ1NjE4LCAwLjA2MDExODAwMDk1NDM4OTU3LCAwLjcxNzE4MTAyNjkzNTU3NzQsIDAuNDA1OTIzOTkyMzk1NDAxLCAwLjA5MjQ0MTk5ODQyMjE0NTg0LCAwLjkwOTIxOTk4MDIzOTg2ODIsCisgICAgICAgIDAuMTQ3NzIzMDA0MjIxOTE2MiwgMC4wMDI0NzM5OTk5Nzg5NzQ0NjE2LCAwLjk4OTAyNjAxMDAzNjQ2ODUsIDAuOTkxNzk4OTk2OTI1MzU0LCAtMC4xMTU1NzkwMDE2MDU1MTA3MSwgLTAuMDU0NTQ5MDAxMTU3MjgzNzgsCisgICAgICAgIDAuOTkyMDA5OTk3MzY3ODU4OSwgMC4wNzIwMjUwMDEwNDkwNDE3NSwgMC4xMDM1ODMwMDA2MDAzMzc5OCwgMC44ODgyMjQwMDU2OTkxNTc3LCAwLjIyMzg4NDAwMTM3NDI0NDcsIDAuNDAxMTY1OTkyMDIxNTYwNjcsCisgICAgICAgIDAuNjA0Njg3OTg4NzU4MDg3MiwgMC4xMzY5MTEwMDQ3ODE3MjMwMiwgMC43ODQ2MDY5OTMxOTgzOTQ4LCAwLjEyOTA4MDk5NTkxNzMyMDI1LCAtMC4wNjExMTk5OTk3MzY1NDc0NywgMC45ODk3NDkwMTQzNzc1OTQsCisgICAgICAgIDAuOTk1NDgyMDI3NTMwNjcwMiwgLTAuMDk0MzYyOTk2NTE4NjExOTEsIDAuMDEwNTAyOTk5NjQ4NDUxODA1LCAwLjk5ODE5NzAxOTEwMDE4OTIsIDAuMDEyMDYwOTk5ODcwMzAwMjkzLCAwLjA1ODgwMjAwMTE3ODI2NDYyLAorICAgICAgICAwLjk1NTA2Mzk5ODY5OTE4ODIsIDAuMDk4MTkwMDAyMTQzMzgzMDMsIDAuMjc5NjYyOTk2NTMwNTMyODQsIDAuNjYwNjk0MDAzMTA1MTYzNiwgMC4wNTE2OTk5OTk3MTk4NTgxNywgMC43NDg4NzI5OTUzNzY1ODY5LAorICAgICAgICAwLjA3MjczNzk5OTI2MDQyNTU3LCAtMC4wNDAzNDMwMDE0ODQ4NzA5MSwgMC45OTY1MzUwMDMxODUyNzIyLCAwLjk5OTkxNzk4NDAwODc4OTEsIDAuMDA3MTkxMDAwMDQwNjIwNTY1LCAwLjAxMDU2MDk5OTYyNDQzMTEzMywKKyAgICAgICAgMC45OTg5MDUwMDMwNzA4MzEzLCAwLjA0NDM2NDk5OTk3OTczNDQyLCAtMC4wMTQ4ODM5OTk3MTI3NjUyMTcsIDAuOTY5NDc2OTk3ODUyMzI1NCwgLTAuMTc4NjAyOTkzNDg4MzExNzcsIDAuMTY3OTc2MDA2ODY1NTAxNCwKKyAgICAgICAgMC45OTI0NjE5NzkzODkxOTA3LCAtMC4xMDc3NTU5OTYyODY4NjkwNSwgMC4wNTgzNzg5OTgxOTAxNjQ1NjYsIDAuODU2NzQ4OTk4MTY1MTMwNiwgLTAuMjg4Mjk2MDE0MDcwNTEwODYsIDAuNDI3NjI4OTkzOTg4MDM3MSwKKyAgICAgICAgMC45NDczOTk5NzM4NjkzMjM3LCAtMC4xNjExMjE5OTQyNTY5NzMyNywgMC4yNzY1MzgwMTQ0MTE5MjYyNywgMC41NjI3Nzc5OTYwNjMyMzI0LCAtMC4xOTc0Nzc5OTYzNDkzMzQ3MiwgMC44MDI2NzI5ODIyMTU4ODEzLAorICAgICAgICAwLjY1Nzc2Njk5NzgxNDE3ODUsIC0wLjExNDM4MDAwMjAyMTc4OTU1LCAwLjc0NDQ4NTk3NDMxMTgyODYsIDAuMDc5MDExOTk5MDcwNjQ0MzgsIDAuMDAxMzY4OTk5OTQ2ODYyNDU5MiwgMC45OTY4NzMwMjExMjU3OTM1LAorICAgICAgICAwLjA3Mjc0MTAwMTg0NDQwNjEzLCAtMC4wMjAyMDYwMDA2NTU4ODk1MSwgMC45OTcxNDYwMTAzOTg4NjQ3LCAwLjk4ODg3ODAxMTcwMzQ5MTIsIDAuMDI1ODA4OTk5MzE0OTA0MjEzLCAtMC4xNDY0NzUwMDIxNjk2MDkwNywKKyAgICAgICAgMC45NDUzOTc5NzMwNjA2MDc5LCAtMC4wMDY2NjMwMDAyMTExMTk2NTIsIDAuMzI1ODUwMDA5OTE4MjEyOSwgMC42OTIxMzk5ODMxNzcxODUxLCAtMC4wNDk3MjI5OTkzMzQzMzUzMywgMC43MjAwNDgwMTAzNDkyNzM3LAorICAgICAgICAwLjM5NTc0OTk4NjE3MTcyMjQsIC0wLjA4MTM0OTAwMDMzNDczOTY5LCAwLjkxNDc0ODAxMzAxOTU2MTgsIDAuMTM5MTQ1MDAxNzY5MDY1ODYsIC0wLjAwMDA3ODk5OTk5NzY0MDQ5NDI2LCAwLjk5MDI3MTk4NTUzMDg1MzMsCisgICAgICAgIDAuOTkyNDY2OTg2MTc5MzUxOCwgLTAuMTAzMTEwMDAwNDkxMTQyMjcsIC0wLjA2NjE2ODAwMjc4NDI1MjE3LCAwLjk5MjYzMDAwNDg4MjgxMjUsIDAuMDc5MjY5OTk3Nzc1NTU0NjYsIDAuMDkxNjU5MDAyMDA2MDUzOTIsCisgICAgICAgIDAuOTAwODU4OTk4Mjk4NjQ1LCAwLjI1NTMxMzAwOTAyMzY2NjQsIDAuMzUxMDk0OTkwOTY4NzA0MiwgMC42NTEzNjk5ODg5MTgzMDQ0LCAwLjE4MzE4MDAwNDM1ODI5MTYzLCAwLjczNjMxNjAyNTI1NzExMDYsCisgICAgICAgIDAuMTU5Nzg2OTk5MjI1NjE2NDYsIC0wLjAyNzE0MDk5OTIxMjg2MTA2LCAwLjk4Njc3ODAyMDg1ODc2NDYsIDAuOTk1NTYyMDE2OTYzOTU4NywgLTAuMDkzNzkxOTk4OTIyODI0ODYsIDAuMDA3NzMwOTk5OTYxNDk1Mzk5NSwKKyAgICAgICAgMC45OTkxMDMwMDk3MDA3NzUxLCAwLjAxNjEwODAwMDY1MTAwMTkzLCAwLjAzOTE0OTAwMTI0MDczMDI4NiwgMC45NzY0Njk5OTM1OTEzMDg2LCAwLjEyMDY4ODk5NzIwOTA3MjExLCAwLjE3ODcxOTk5NzQwNjAwNTg2LAorICAgICAgICAwLjc4NTkwNjAxNjgyNjYyOTYsIDAuMTAxMDM0OTk4ODkzNzM3NzksIDAuNjEwMDM1MDAyMjMxNTk3OSwgMC4xNjU3OTAwMDY1MTgzNjM5NSwgLTAuMDE0ODMyMDAwMjQ4MTM0MTM2LCAwLjk4NjA1MDAwOTcyNzQ3OCwKKyAgICAgICAgMC4xNjU1Mjk5OTYxNTY2OTI1LCAtMC4xMDA3ODY5OTg4Njc5ODg1OSwgMC45ODEwNDEwMTQxOTQ0ODg1LCAtMC4wMDQ2NzkwMDAwMDUxMjU5OTk1LCAtMC4xNzUwNjU5OTQyNjI2OTUzLCAwLjk4NDU0NjAwNTcyNTg2MDYsCisgICAgICAgIC0wLjM4NTk1Nzk4NjExNjQwOTMsIC0wLjA2NDk0MjAwMjI5NjQ0Nzc1LCAwLjkyMDIyODAwNDQ1NTU2NjQsIC0wLjMyMTk2NzAwNTcyOTY3NTMsIC0wLjA1NjAwNTk5OTQ0NTkxNTIyLCAwLjk0NTA5Mjk3NjA5MzI5MjIsCisgICAgICAgIC0wLjY0NzE2MTAwNjkyNzQ5MDIsIC0wLjExNDk1Mjk5NjM3MzE3NjU3LCAwLjc1MzYzNzAxNTgxOTU0OTYsIC0wLjU2MTY0NDAxNzY5NjM4MDYsIC0wLjA3ODg1NTAwMDQzNjMwNiwgMC44MjM2MTE5NzQ3MTYxODY1LAorICAgICAgICAtMC44Mzc5NzAwMTgzODY4NDA4LCAtMC4yMzc0OTk5OTcwMTk3Njc3NiwgMC40OTEzMjQwMDc1MTExMzg5LCAtMC43NTEyNTkwMjg5MTE1OTA2LCAtMC4xNDQ3MTY5OTI5NzQyODEzLCAwLjY0Mzk0NzAwNTI3MTkxMTYsCisgICAgICAgIC0wLjkwNTIwOTAwNDg3ODk5NzgsIC0wLjI4MDcwNTAwNDkzMDQ5NjIsIDAuMzE5MDYzMDA3ODMxNTczNSwgLTAuODI0OTQxOTkyNzU5NzA0NiwgLTAuMjIwOTAwOTk3NTE5NDkzMSwgMC41MjAyNjMwMTYyMjM5MDc1LAorICAgICAgICAtMC4xMzM2MzY5OTYxNTAwMTY3OCwgMC4wMjkxOTIwMDA2Mjc1MTc3LCAwLjk5MDU5OTk4OTg5MTA1MjIsIC0wLjQwMzk2NDk5NjMzNzg5MDYsIDAuMDAxOTUxOTk5OTYyMzI5ODY0NSwgMC45MTQ3NzE5NzQwODY3NjE1LAorICAgICAgICAtMC43MTkxMzU5OTk2Nzk1NjU0LCAwLjAwMjQ0Mzk5OTk4MzM3MDMwNCwgMC42OTQ4NjQ5ODgzMjcwMjY0LCAtMC45NjM3NTc5OTE3OTA3NzE1LCAwLjAyNjg4NDk5OTEyNjE5NTkwOCwgMC4yNjU0MTkwMDYzNDc2NTYyNSwKKyAgICAgICAgLTAuOTYzNzcxOTk4ODgyMjkzNywgMC4yMjA3MDY5OTkzMDE5MTA0LCAtMC4xNDk3NzIwMDMyOTMwMzc0MSwgMC4wMzUyMjkwMDExOTQyMzg2NiwgMC4wNjcxNjkwMDMxODg2MTAwOCwgMC45OTcxMTkwMDk0OTQ3ODE1LAorICAgICAgICAtMC4zNjIwNjI5OTA2NjU0MzU4LCAtMC4wMTY3NjE5OTk1NzcyODM4NiwgMC45MzIwMDMwMjEyNDAyMzQ0LCAtMC42NTM0MjU5OTE1MzUxODY4LCAwLjAwNzEyMDk5OTk3MzI2NzMxNywgMC43NTY5NTY5OTQ1MzM1Mzg4LAorICAgICAgICAtMC44NTI4NTkwMjAyMzMxNTQzLCAwLjExNjg2NTk5OTk5NjY2MjE0LCAwLjUwODg5NDAyNjI3OTQ0OTUsIC0wLjg4MTQ4ODk3ODg2Mjc2MjUsIDAuMzU3OTg0MDA2NDA0ODc2NywgMC4zMDc5MzQ5OTk0NjU5NDI0LAorICAgICAgICAwLjA3MjY1ODAwMjM3NjU1NjQsIDAuMDIwMTgyMDAwNDczMTQxNjcsIDAuOTk3MTUyOTg0MTQyMzAzNSwgLTAuMzc2MDgyOTg2NTkzMjQ2NDYsIC0wLjAyNTk1NTAwMDg5MjI4MTUzMiwgMC45MjYyMjIwMjYzNDgxMTQsCisgICAgICAgIC0wLjY1NjgzNTAxOTU4ODQ3MDUsIC0wLjAxNTAyMTAwMDA1NzQ1ODg3OCwgMC43NTM4ODQwMTc0Njc0OTg4LCAtMC44MjM4NzYwMjMyOTI1NDE1LCAwLjAzMjU3NzAwMDU1ODM3NjMxLCAwLjU2NTgzMzk4NTgwNTUxMTUsCisgICAgICAgIC0wLjg2ODg2OTAwNjYzMzc1ODUsIDAuMTMwNzg3MDAwMDYwMDgxNDgsIDAuNDc3NDU0MDA2NjcxOTA1NSwgMC4wNzI2NTU5OTgxNzAzNzU4MiwgLTAuMDc3MDA0MDAwNTQ0NTQ4MDMsIDAuOTk0Mzc5OTk3MjUzNDE4LAorICAgICAgICAtMC4wMzQzOTUwMDE4Mjg2NzA1LCAtMC4xNTE4NzA5OTU3NTk5NjQsIDAuOTg3ODAyMDI4NjU2MDA1OSwgLTAuNDAzNjIwMDA0NjUzOTMwNjYsIC0wLjA1MjgyMDAwMDc5NzUxMDE1LCAwLjkxMzQwMTAwNzY1MjI4MjcsCisgICAgICAgIC0wLjM3NTg2NTAxMjQwNzMwMjg2LCAtMC4wNDEwNzgwMDEyNjA3NTc0NDYsIDAuOTI1NzY0MDI0MjU3NjU5OSwgLTAuNjg3ODE5MDA0MDU4ODM3OSwgLTAuMDgxMDA1OTk3OTU1Nzk5MSwgMC43MjEzNDc5ODc2NTE4MjUsCisgICAgICAgIC0wLjY1NTg5NzAyMTI5MzY0MDEsIC0wLjA1MjEwMTAwMTE0MzQ1NTUwNSwgMC43NTMwNTA5ODI5NTIxMTc5LCAtMC44NzA4ODAwMDc3NDM4MzU0LCAtMC4yMDYyMzgwMDE1ODUwMDY3LCAwLjQ0NjEzMjAwNDI2MTAxNjg1LAorICAgICAgICAtMC44MTc1OTM5OTE3NTY0MzkyLCAtMC4xMjQ0ODE5OTgzODM5OTg4NywgMC41NjIxNzgwMTU3MDg5MjMzLCAtMC44OTI2OTYwMjI5ODczNjU3LCAtMC4zMDU1NjY5OTYzMzU5ODMzLCAwLjMzMTI0MzAwODM3NTE2Nzg1LAorICAgICAgICAtMC44NTY1MDU5OTAwMjgzODEzLCAtMC4yMTAyNDMwMDE1ODAyMzgzNCwgMC40NzEzNzY5ODUzMTE1MDgyLCAtMC4xNTE1NTQwMDMzNTc4ODcyNywgLTAuMDI1NDEyMDAwNzE1NzMyNTc0LCAwLjk4ODEyMTk4NjM4OTE2MDIsCisgICAgICAgIC0wLjQxMDMzNzAwMTA4NTI4MTM3LCAtMC4wMDI2NDIwMDAwOTQwNTYxMjk1LCAwLjkxMTkzMDAyNDYyMzg3MDgsIC0wLjcyNDA2MjAyNTU0NzAyNzYsIDAuMDAwNDc0MDAwMDAwMzk0ODgwNzcsIDAuNjg5NzM0OTk1MzY1MTQyOCwKKyAgICAgICAgLTAuOTY1NTU5MDA1NzM3MzA0NywgLTAuMDE3MDc4OTk5NDI5OTQxMTc3LCAwLjI1OTYyMjk5MTA4NTA1MjUsIC0wLjk3MzgyNTk5MTE1MzcxNywgLTAuMTk3MTE3OTk5MTk2MDUyNTUsIC0wLjExMzE3MzAwMDUxNDUwNzMsCisgICAgICAgIDAuMDYyMTQxOTk5NjAyMzE3ODEsIDAuMDgyMzU1MDAwMDc4Njc4MTMsIDAuOTk0NjY0MDEzMzg1NzcyNywgLTAuMzMzNDI5MDA4NzIyMzA1MywgMC4wMDc2MjU5OTk4NjA0NjU1MjcsIDAuOTQyNzQ0MDE2NjQ3MzM4OSwKKyAgICAgICAgLTAuNjA4NjEwOTg3NjYzMjY5LCAwLjA0ODg1OTk5ODU4Mzc5MzY0LCAwLjc5MTk2Mjk4MTIyNDA2MDEsIC0wLjgyNTMzMDk3MjY3MTUwODgsIDAuMTQ2MzExOTk4MzY3MzA5NTcsIDAuNTQ1MzY0MDIyMjU0OTQzOCwKKyAgICAgICAgLTAuOTEwNTY2OTg1NjA3MTQ3MiwgMC4zMTQ2NjYwMDI5ODg4MTUzLCAwLjI2ODA1NjAwNTIzOTQ4NjcsIDAuMTY1MjMzOTk5NDkwNzM3OTIsIDAuMDQ1ODk4MDAxNjQxMDM1MDgsIDAuOTg1MTg1OTgwNzk2ODE0LAorICAgICAgICAtMC4zMjI2MDA5OTA1MzM4Mjg3NCwgLTAuMDEwNDcxMDAwMzM2MTEwNTkyLCAwLjk0NjQ3Njk5NTk0NDk3NjgsIC0wLjU2MzkxNDAwMDk4ODAwNjYsIDAuMDE1MTY2MDAwNDYzMDY4NDg1LCAwLjgyNTY5NDAyNDU2MjgzNTcsCisgICAgICAgIC0wLjc1ODk2NTAxNTQxMTM3NywgMC4wNTYxNzM5OTg4NjI1MDQ5NiwgMC42NDg3MDM5OTIzNjY3OTA4LCAtMC44MzgyMzUwMjA2Mzc1MTIyLCAwLjE0MjQ1Mjk5OTk0OTQ1NTI2LCAwLjUyNjM3Mzk4MjQyOTUwNDQsCisgICAgICAgIDAuOTcyNzgzMDI5MDc5NDM3MywgLTAuMDE5Nzk0MDAwMzEyNjg1OTY2LCAwLjIzMDg3MjAwNTIyNDIyNzksIDAuOTgyODE1OTgwOTExMjU0OSwgLTAuMDM2NDY1OTk4NzM5MDA0MTM1LCAwLjE4MDk1MTk5NzYzNzc0ODcyLAorICAgICAgICAwLjkwNTA2Mzk4Njc3ODI1OTMsIC0wLjAyMjUyMjAwMDU5NTkyNzI0LCAwLjQyNDY3OTAxMTEwNjQ5MTEsIDAuODM1NDAzOTc4ODI0NjE1NSwgLTAuMDMyMjAwMDAxMTgwMTcxOTcsIDAuNTQ4NjkzMDAxMjcwMjk0MiwKKyAgICAgICAgMC42NDY1NzAwMjY4NzQ1NDIyLCAtMC4wNDU5MjEwMDE1ODMzMzc3ODQsIDAuNzYxNDcwOTczNDkxNjY4NywgMC40ODI2NzQ5ODYxMjQwMzg3LCAtMC4wNDg5NTM5OTg4MzM4OTQ3MywgMC44NzQ0MzAwMDA3ODIwMTI5LAorICAgICAgICAwLjQ0NTM5OTk5OTYxODUzMDMsIDAuMTcyNTY5MDA2NjgxNDQyMjYsIDAuODc4NTQzMDE5Mjk0NzM4OCwgMC40NzIzMTIwMDMzNzQwOTk3MywgMC4xMzc2ODUwMDA4OTY0NTM4NiwgMC44NzA2MTIwMjUyNjA5MjUzLAorICAgICAgICAwLjQ4MjQyNTAwNDI0Mzg1MDcsIDAuMzg5ODYzOTk3Njk3ODMwMiwgMC43ODQzOTMwMTI1MjM2NTExLCAwLjY0MTM5ODAxMjYzODA5MiwgMC40Mjc1OTc5OTk1NzI3NTM5LCAwLjYzNzAwMDAyNDMxODY5NTEsCisgICAgICAgIDAuOTg2MzkzOTg4MTMyNDc2OCwgMC4wOTk0NDE5OTc3MDY4OTAxLCAwLjEzMDkxNDAwMjY1NjkzNjY1LCAwLjkxNTQ4NDAxMTE3MzI0ODMsIDAuMjEyMDMyMDA1MTkwODQ5MywgMC4zNDE5NTEwMTI2MTEzODkxNiwKKyAgICAgICAgMC43MjQ2NDY5ODU1MzA4NTMzLCAwLjI0NTA0NjAwNDY1Mjk3NywgMC42NDQwNzk5ODMyMzQ0MDU1LCAwLjM1Njg1NTAwNTAyNTg2MzY1LCAwLjE3ODg1NTAwMTkyNjQyMjEyLCAwLjkxNjg3Nzk4NTAwMDYxMDQsCisgICAgICAgIDAuMTQxMDE4MDAzMjI1MzI2NTQsIDAuMjQyNjMyMDAxNjM4NDEyNDgsIDAuOTU5ODE0MDEyMDUwNjI4NywgMC45MzY2Nzc5OTIzNDM5MDI2LCAwLjE2NDg0NDAwNjI5OTk3MjUzLCAwLjMwODk2Njk5NDI4NTU4MzUsCisgICAgICAgIDAuNzk4MjYyMDAwMDgzOTIzMywgMC4yNDQxMzcwMDQwMTc4Mjk5LCAwLjU1MDYxMjk4NjA4Nzc5OTEsIDAuNDc2OTQzOTk5NTI4ODg0OSwgMC4yOTA0ODIwMTQ0MTc2NDgzLCAwLjgyOTU0NTAyMTA1NzEyODksCisgICAgICAgIDAuNDEyNTk1OTg3MzE5OTQ2MywgLTAuMDE3MjQ2MDAwNDY4NzMwOTI3LCAwLjkxMDc1MDk4NTE0NTU2ODgsIDAuMzQxMzc0MDA5ODQ3NjQxLCAtMC4zNzY4OTA5ODcxNTc4MjE2NiwgMC44NjEwNTYwMjk3OTY2MDAzLAorICAgICAgICAwLjkwMjYxMDAwMzk0ODIxMTcsIDAuMTQxMTk1OTk3NTk1Nzg3MDUsIDAuNDA2NjQzOTg2NzAxOTY1MzMsIDAuNzMyNjAyMDAwMjM2NTExMiwgMC4xNDkxOTc5OTU2NjI2ODkyLCAwLjY2NDEwMzk4NDgzMjc2MzcsCisgICAgICAgIDAuMzgxMTU1OTk3NTE0NzI0NzMsIDAuMTU3OTIyOTk4MDcwNzE2ODYsIDAuOTEwOTIzMDA0MTUwMzkwNiwgMC41MzE3MzcwMjk1NTI0NTk3LCAtMC4wMjE0MzM5OTk3NjE5MzkwNSwgMC44NDY2MzgwMjM4NTMzMDIsCisgICAgICAgIDAuNzkxNTcyOTg4MDMzMjk0NywgLTAuMzUzOTc2OTk0NzUyODgzOSwgMC40OTgxMDk5OTYzMTg4MTcxNCwgMC45MDg3MzQwMjM1NzEwMTQ0LCAtMC4wNzk1OTU5OTc5Mjk1NzMwNiwgMC40MDk3MTYwMTAwOTM2ODg5NiwKKyAgICAgICAgMC45Mzg2NTY5ODU3NTk3MzUxLCAtMC4xNzY4MDI5OTI4MjA3Mzk3NSwgMC4yOTYwNzkwMDk3NzEzNDcwNSwgMC43NzgxNTY5OTU3NzMzMTU0LCAtMC4xOTQ2NzAwMDY2MzI4MDQ4NywgMC41OTcxNDAwMTQxNzE2MDAzLAorICAgICAgICAwLjczODg0NzAxNzI4ODIwOCwgLTAuMDc2NzQ3MDAwMjE3NDM3NzQsIDAuNjY5NDg5MDI2MDY5NjQxMSwgMC40MzkxNTk5ODkzNTY5OTQ2MywgLTAuMjIyNzY3OTkzODA3NzkyNjYsIDAuODcwMzUyMDI5ODAwNDE1LAorICAgICAgICAwLjM4NjM4NjAwNzA3MDU0MTQsIC0wLjA3OTA4ODAwMjQ0MzMxMzYsIDAuOTE4OTQwMDA3Njg2NjE1LCAwLjM1NzYxMjAxMzgxNjgzMzUsIDAuMDczMjUxOTk5OTE0NjQ2MTUsIDAuOTMwOTkzMDIwNTM0NTE1NCwKKyAgICAgICAgMC41MjI3MTQwMTg4MjE3MTYzLCAwLjE2MTY3OTk5ODA0MDE5OTI4LCAwLjgzNzAzNjAxMzYwMzIxMDQsIDAuNDI0NjM4MDAzMTEwODg1NiwgMC4zMjMzMjM5OTQ4NzQ5NTQyLCAwLjg0NTY2MTk5Nzc5NTEwNSwKKyAgICAgICAgMC43MzM2MTg5NzQ2ODU2NjksIDAuNDg5MDc4OTk4NTY1NjczODMsIDAuNDcxODA4OTk5Nzc2ODQwMiwgMC45ODg2MDE5ODI1OTM1MzY0LCAtMC4xMDcxNzgwMDI1OTU5MDE0OSwgMC4xMDU3MzIwMDEzNjQyMzExMSwKKyAgICAgICAgMC45MTMxOTYwMjcyNzg5MDAxLCAtMC4yMjMwMzM5OTQ0MzYyNjQwNCwgMC4zNDEwNjkwMTI4ODAzMjUzLCAwLjcxNjM1NTk3OTQ0MjU5NjQsIC0wLjI1NjM2NTAwMTIwMTYyOTY0LCAwLjY0ODkzMTAyNjQ1ODc0MDIsCisgICAgICAgIDAuMzUxNDk2OTk0NDk1MzkxODUsIC0wLjE1OTY4MTAwNzI2NjA0NDYyLCAwLjkyMjQ2OTk3MzU2NDE0OCwgMC4wNzk5OTgwMDE0NTYyNjA2OCwgLTAuMjEwNzAzOTk4ODA0MDkyNCwgMC45NzQyNzA5OTk0MzE2MTAxLAorICAgICAgICAwLjk4ODMyNDk5OTgwOTI2NTEsIDAuMDQ3MzI5OTk5NTA2NDczNTQsIDAuMTQ0ODIyMDAxNDU3MjE0MzYsIDAuOTIxMDUwMDEyMTExNjYzOCwgMC4wNzQxMzk5OTczNjMwOTA1MiwgMC4zODIzMjI5OTY4NTQ3ODIxLAorICAgICAgICAwLjY4MDQ4OTAwMzY1ODI5NDcsIDAuMTE4OTUyOTk3MDI4ODI3NjcsIDAuNzIzMDM4OTcxNDI0MTAyOCwgMC40OTM1MzkwMDU1MTc5NTk2LCAtMC4xMDI2OTI5OTg5NDU3MTMwNCwgMC44NjM2Mzg5OTcwNzc5NDE5LAorICAgICAgICAwLjM5MTI0Nzk4Nzc0NzE5MjQsIC0wLjQ3NTIyODk5NTA4NDc2MjYsIDAuNzg4MDg4MDIzNjYyNTY3MSwgMC45NzAwMjcwMjk1MTQzMTI3LCAwLjA3OTcwNDk5OTkyMzcwNjA1LCAwLjIyOTU1MjAwMDc2MTAzMjEsCisgICAgICAgIDAuODMxMjUwMDExOTIwOTI5LCAwLjEwNTkyMTAwMDI0MjIzMzI4LCAwLjU0NTcxNDk3NDQwMzM4MTMsIDAuNDc3NDIzMDEyMjU2NjIyMywgMC4xMzI1MjY5OTM3NTE1MjU4OCwgMC44Njg2MjIwMDQ5ODU4MDkzLAorICAgICAgICAwLjQ3OTIyMzk5NjQwMDgzMzEzLCAtMC4wMDI0MTI5OTk5ODAxNTE2NTMzLCAwLjg3NzY4OTAwMzk0NDM5NywgMC42OTAyOTgwMjA4Mzk2OTEyLCAtMC4yOTcxMTMwMDEzNDY1ODgxMywgMC42NTk3MDU5OTY1MTMzNjY3LAorICAgICAgICAwLjYzMTIxMzAwOTM1NzQ1MjQsIDAuNDU1MDk4OTg2NjI1NjcxNCwgMC42MjgwNTU5ODk3NDIyNzksIDAuMjY0OTQ2OTk3MTY1Njc5OTMsIDAuNTQyNjY4OTk4MjQxNDI0NiwgMC43OTcwNjUwMTk2MDc1NDQsCisgICAgICAgIDAuNDIxNjk2MDA3MjUxNzM5NSwgMC42NzI4NDUwMDU5ODkwNzQ3LCAwLjYwNzgyNTk5NDQ5MTU3NzEsIDAuNzMyNDI3MDAwOTk5NDUwNywgMC41ODI5OTcwMjQwNTkyOTU3LCAwLjM1MTY2MDk5NjY3NTQ5MTMzLAorICAgICAgICAwLjUwODY3MDk4NTY5ODcsIDAuODYwNjM5OTg5Mzc2MDY4MSwgLTAuMDIzNTA3MDAwODc4NDUzMjU1LCAwLjc2NDA3MjAwMDk4MDM3NzIsIDAuNjQ0OTM2OTc4ODE2OTg2MSwgLTAuMDE1Nzk4MDAwNjE4ODE1NDIyLAorICAgICAgICAwLjE5MDI5MTAwMjM5Mjc2ODg2LCAwLjI3NzMyODk5Nzg1MDQxODEsIC0wLjk0MTc0MjAwMjk2NDAxOTgsIDAuMDI1ODg2OTk5NDQzMTczNDEsIDAuMDAwNTc1MDAwMDEyNzU5MTE5MywgLTAuOTk5NjY1MDIxODk2MzYyMywKKyAgICAgICAgLTAuMzMwNDU3MDAxOTI0NTE0NzcsIC0wLjQzODc2Njk4NjEzMTY2ODEsIC0wLjgzNTYzMjk3OTg2OTg0MjUsIC0wLjYyNzEyNjk5MTc0ODgwOTgsIC0wLjQ2NDUzODk5MTQ1MTI2MzQsIC0wLjYyNTIzMTk4MTI3NzQ2NTgsCisgICAgICAgIC0wLjAyMzExNTk5OTk5NjY2MjE0LCAwLjI0NjkwMjAwMzg4NDMxNTUsIDAuOTY4NzY1MDIwMzcwNDgzNCwgLTAuMDEyOTUwOTk5NjYyMjgwMDgzLCAwLjQ1NTE0MTAwNzkwMDIzODA0LCAwLjg5MDMyNTAwOTgyMjg0NTUsCisgICAgICAgIC0wLjAwMTE4MDAwMDAyMTEyMjM5NiwgMC45ODg4NTIwMjQwNzgzNjkxLCAwLjE0ODg5Mzk5NzA3MzE3MzUyLCAwLjAxOTUyMDk5OTg2Mzc0Mzc4MiwgMC42ODQxMjEwMTI2ODc2ODMxLCAtMC43MjkxMDcwMjIyODU0NjE0LAorICAgICAgICAwLjAxMjI1MzAwMDQwMDk2MDQ0NSwgMC4wMDc3ODQ5OTk5MDcwMTY3NTQsIC0wLjk5OTg5NDk3NjYxNTkwNTgsIDAuMzMxNDYzOTkyNTk1NjcyNiwgLTAuMzgzMjI2MDA3MjIzMTI5MywgMC44NjIxMzA5OTk1NjUxMjQ1LAorICAgICAgICAwLjA4Mjc0Njk5NzQ3NTYyNDA4LCAtMC4xNjA0NzY5OTc0OTQ2OTc1NywgMC45ODM1NjQ5NzI4Nzc1MDI0LCAtMC4zODE2MzAwMDM0NTIzMDEsIDAuNjM4MDQzOTk5NjcxOTM2LCAwLjY2ODc3Mjk5NTQ3MTk1NDMsCisgICAgICAgIC0wLjQ0OTg4Mzk5NzQ0MDMzODEzLCAwLjc4Nzg4Mzk5Njk2MzUwMSwgLTAuNDIwNTI3OTk0NjMyNzIwOTUsIC0wLjI3ODAxNzAxNDI2NTA2MDQsIDAuNTk4MzU2MDA4NTI5NjYzMSwgLTAuNzUxNDUwMDAyMTkzNDUwOSwKKyAgICAgICAgMC43Mzc4MTQwMDkxODk2MDU3LCAtMC40OTE4NzQ5OTI4NDc0NDI2LCAwLjQ2MjI2NTk5ODEyNTA3NjMsIDAuNjE1MzM4OTgxMTUxNTgwOCwgLTAuNDU1NDAzMDAwMTE2MzQ4MjcsIDAuNjQzNDAxOTgwNDAwMDg1NCwKKyAgICAgICAgLTAuNDM2Nzg5MDA1OTk0Nzk2NzUsIDAuMzM0MTE0OTk4NTc5MDI1MjcsIDAuODM1MjE0MDE4ODIxNzE2MywgLTAuNzQyOTUzMDAyNDUyODUwMywgMC42Mzg4OTA5ODE2NzQxOTQzLCAtMC4xOTk1OTg5OTc4MzEzNDQ2LAorICAgICAgICAtMC43NDMyOTUwMTM5MDQ1NzE1LCAwLjU5NzczODAyNzU3MjYzMTgsIC0wLjMwMDM3MDAwNzc1MzM3MjIsIDAuNzE5NzkyMDA4Mzk5OTYzNCwgMC41MTY4OTYwMDk0NDUxOTA0LCAwLjQ2MzM3Njk5ODkwMTM2NzIsCisgICAgICAgIDAuMjIxODMwOTkzODkwNzYyMzMsIDAuNDQ4NTcyMDA5ODAxODY0NiwgMC44NjU3Nzg5ODI2MzkzMTI3LCAwLjA4MjAzMjAwMjUwODY0MDI5LCAwLjE1ODQ4MDAwMzQ3NjE0Mjg4LCAwLjk4Mzk0Nzk5MjMyNDgyOTEsCisgICAgICAgIDAuNTk1MzQ1OTczOTY4NTA1OSwgMC40ODExNjgwMDE4OTAxODI1LCAwLjY0MzQ1OTk3NTcxOTQ1MTksIC0wLjM3NTU2NDAwODk1MTE4NzEzLCAtMC42MjE1MjcwMTYxNjI4NzIzLCAwLjY4NzUsCisgICAgICAgIC0wLjQyNjY2MzAxMTMxMjQ4NDc0LCAtMC4zMzUzNDM5ODY3NDk2NDkwNSwgMC44Mzk5NDE5Nzg0NTQ1ODk4LCAtMC40NDQ3NjM5ODgyNTY0NTQ0NywgLTAuNzg4NzUyOTczMDc5NjgxNCwgLTAuNDI0MzI2MDAyNTk3ODA4ODQsCisgICAgICAgIC0wLjc1NTczMDk4NjU5NTE1MzgsIC0wLjYyMjI2OTk4ODA1OTk5NzYsIC0wLjIwNDA4NjAwNTY4NzcxMzYyLCAtMC40MjkyNjY5ODkyMzExMDk2LCAtMC41MzYxODUwMjYxNjg4MjMyLCAtMC43MjY3OTc5OTc5NTE1MDc2LAorICAgICAgICAtMC43NjU1OTAwMTIwNzM1MTY4LCAtMC41NjcxMDM5ODE5NzE3NDA3LCAtMC4zMDM3NTIwMDUxMDAyNTAyNCwgMC4wMDczNDgwMDAwNzE5NDI4MDYsIC0wLjIxMTEzNDk5OTk5MDQ2MzI2LCAwLjk3NzQyODk3MjcyMTA5OTksCisgICAgICAgIC0wLjAxOTkwMDk5OTk2MzI4MzU0LCAtMC40MzczMjEwMDcyNTE3Mzk1LCAwLjg5OTA4NDk4NTI1NjE5NTEsIC0wLjAwODc3NTAwMDQ2MDQ0NTg4MSwgLTAuOTg2NDE5OTc1NzU3NTk4OSwgMC4xNjQwMDQ5OTY0MTg5NTI5NCwKKyAgICAgICAgMC4wMjQ4NTU5OTkyNzYwNDE5ODUsIC0wLjY4MjkzMzk4NjE4Njk4MTIsIC0wLjczMDA1NzAwMTExMzg5MTYsIDAuMDE0NTE0MDAwMTU1MDMxNjgxLCAwLjAzNjU1MjAwMDc5MDgzNDQzLCAtMC45OTkyMjU5NzQwODI5NDY4LAorICAgICAgICAwLjQwMTkyODk5MTA3OTMzMDQ0LCAtMC40Njc2NTUwMDMwNzA4MzEzLCAwLjc4NzI0MzAwODYxMzU4NjQsIDAuNDE2OTYxMDE0MjcwNzgyNDcsIC0wLjY4MTM4MjAwMDQ0NjMxOTYsIDAuNjAxNTQ5MDI5MzUwMjgwOCwKKyAgICAgICAgMC41MDMzNjA5ODY3MDk1OTQ3LCAtMC44NjM3NzQwMDE1OTgzNTgyLCAtMC4wMjI4MzkwMDA0NDg1ODQ1NTcsIDAuMjA1ODgxOTk3OTQyOTI0NSwgLTAuMjk0NTc1MDA1NzY5NzI5NiwgLTAuOTMzMTg3MDA3OTA0MDUyNywKKyAgICAgICAgLTAuMjM1MTU4OTk0NzkzODkxOSwgMC41NTM1NTc5OTE5ODE1MDYzLCAtMC43OTg5MTk5NzU3NTc1OTg5LCAwLjY1MzM4MjAwMzMwNzM0MjUsIC0wLjQzNTU4ODAwMjIwNDg5NSwgMC42MTkxNTYwMDI5OTgzNTIsCisgICAgICAgIDAuNzU1NTUwMDI2ODkzNjE1NywgLTAuNTU0NDEwOTk0MDUyODg3LCAwLjM0ODk2MDAxMjE5NzQ5NDUsIDAuNzc2NTE2MDIwMjk4MDA0MiwgLTAuNjI5ODM2MDIyODUzODUxMywgLTAuMDE4MTQxOTk5ODQwNzM2MzksCisgICAgICAgIDAuMDI1OTc1MDAwMTEzMjQ4ODI1LCAwLjAwODI2NDk5OTgzNjY4MzI3MywgLTAuOTk5NjI4MDA3NDExOTU2OCwgLTAuNjA4NjUxOTk1NjU4ODc0NSwgMC40OTUzNjY5OTA1NjYyNTM2NiwgLTAuNjE5ODAxOTk4MTM4NDI3NywKKyAgICAgICAgLTAuOTgxMzIwMDIzNTM2NjgyMSwgMC4xOTIzODA5OTQ1NTgzMzQzNSwgMCwgLTAuODMxNjUwOTcyMzY2MzMzLCAwLjU1NTI5ODk4NDA1MDc1MDcsIDAsCisgICAgICAgIC0wLjQ0MjU2NDAxMDYyMDExNzIsIDAuMzgzMDg5OTg5NDIzNzUxODMsIDAuODEwNzg4OTg5MDY3MDc3NiwgLTAuNTYyMzUwOTg4Mzg4MDYxNSwgMC4xMTAyNjQwMDMyNzY4MjQ5NSwgMC44MTk1MTM5NzY1NzM5NDQxLAorICAgICAgICAwLjM2NzkxNzAwMTI0NzQwNiwgLTAuMTUxNzg1OTk5NTM2NTE0MjgsIDAuOTE3Mzg1OTk1Mzg4MDMxLCAwLjM5NjA2Njk5MzQ3NDk2MDMsIC0wLjA3Nzc0ODAwMDYyMTc5NTY1LCAwLjkxNDkyNDAyNTUzNTU4MzUsCisgICAgICAgIDAuMzI4MzUyMDA0Mjg5NjI3MSwgLTAuMTM1NjI3OTk5OTAxNzcxNTUsIDAuOTM0NzY3MDA3ODI3NzU4OCwgMC4zNTMwNzQ5OTc2NjM0OTc5LCAtMC4wNjk1MjI5OTkyMjcwNDY5NywgMC45MzMwMDgwMTUxNTU3OTIyLAorICAgICAgICAtMC41OTM1NTkwMjY3MTgxMzk2LCAwLjIwMDM1ODAwMzM3NzkxNDQzLCAwLjc3OTQ1MTAxMjYxMTM4OTIsIC0wLjYyMDE4MDAxMDc5NTU5MzMsIDAuMTIyNDU1OTk5MjU1MTgwMzYsIDAuNzc0ODQyOTc3NTIzODAzNywKKyAgICAgICAgLTAuNTU1Mjk4OTg0MDUwNzUwNywgMC44MzE2NTA5NzIzNjYzMzMsIDAsIC0wLjI2MTY5NjAxMDgyODAxODIsIDAuNTIzNzMwOTkzMjcwODc0LCAwLjgxMDY5MjAxMjMxMDAyODEsCisgICAgICAgIDAuMjgxOTY0MDA0MDM5NzY0NCwgLTAuMjgxOTE5OTg2MDA5NTk3OCwgMC45MTcwNjk5NzE1NjE0MzE5LCAwLjI1MTY5Nzk4NzMxODAzODk0LCAtMC4yNTE2MTIwMDc2MTc5NTA0NCwgMC45MzQ1MjY5Nzk5MjMyNDgzLAorICAgICAgICAtMC40NzEwMzMwMDY5MDY1MDk0LCAwLjQxMjQ5NzAxMzgwNzI5Njc1LCAwLjc3OTcyNjk4MjExNjY5OTIsIC0wLjE5MjM4MDk5NDU1ODMzNDM1LCAwLjk4MTMyMDAyMzUzNjY4MjEsIDAsCisgICAgICAgIC0wLjA0MDMxMTAwMTI0MTIwNzEyLCAwLjU4NDA0MjAxMjY5MTQ5NzgsIDAuODEwNzIxOTkzNDQ2MzUwMSwgMC4xNTE3ODUwMDExNTg3MTQzLCAtMC4zNjc4OTUwMDcxMzM0ODM5LCAwLjkxNzM5NjAwODk2ODM1MzMsCisgICAgICAgIDAuMTM1NjE5OTk3OTc4MjEwNDUsIC0wLjMyODI4OTk4NTY1NjczODMsIDAuOTM0NzkwMDE1MjIwNjQyMSwgLTAuMjc3Mzc3OTkyODY4NDIzNDYsIDAuNTYxNjAxOTk2NDIxODE0LCAwLjc3OTUyODAyMTgxMjQzOSwKKyAgICAgICAgLTEsIDAsIDAsIDAuMjkwNzQ5OTk2OTAwNTU4NDcsIDAuNTQxMzU2MDI3MTI2MzEyMywgMC43ODg5MjIwMTE4NTIyNjQ0LAorICAgICAgICAwLjA3NzY3MTk5NzI0OTEyNjQzLCAtMC4zOTYwNzM5OTcwMjA3MjE0NCwgMC45MTQ5MjcwMDU3Njc4MjIzLCAwLjA2OTM3Mjk5NjY4Nzg4OTEsIC0wLjM1MzA5NDAxMTU0NTE4MTMsIDAuOTMzMDEzMDIxOTQ1OTUzNCwKKyAgICAgICAgLTAuMTIyMjEwMDAzNDM1NjExNzIsIDAuNjIwMjEzOTg1NDQzMTE1MiwgMC43NzQ4NTUwMTc2NjIwNDgzLCAwLjE5MjM4MDk5NDU1ODMzNDM1LCAwLjk4MTMyMDAyMzUzNjY4MjEsIDAsCisgICAgICAgIDAuNTU1Mjk4OTg0MDUwNzUwNywgMC44MzE2NTA5NzIzNjYzMzMsIDAsIDAuMzgzMDg5OTg5NDIzNzUxODMsIDAuNDQyNTY0MDEwNjIwMTE3MiwgMC44MTA3ODg5ODkwNjcwNzc2LAorICAgICAgICAwLjExMDI2NDAwMzI3NjgyNDk1LCAwLjU2MjM1MDk4ODM4ODA2MTUsIDAuODE5NTEzOTc2NTczOTQ0MSwgLTAuMTUxNzg1OTk5NTM2NTE0MjgsIC0wLjM2NzkxNzAwMTI0NzQwNiwgMC45MTczODU5OTUzODgwMzEsCisgICAgICAgIC0wLjA3Nzc0ODAwMDYyMTc5NTY1LCAtMC4zOTYwNjY5OTM0NzQ5NjAzLCAwLjkxNDkyNDAyNTUzNTU4MzUsIC0wLjEzNTYyNzk5OTkwMTc3MTU1LCAtMC4zMjgzNTIwMDQyODk2MjcxLCAwLjkzNDc2NzAwNzgyNzc1ODgsCisgICAgICAgIC0wLjA2OTUyMjk5OTIyNzA0Njk3LCAtMC4zNTMwNzQ5OTc2NjM0OTc5LCAwLjkzMzAwODAxNTE1NTc5MjIsIDAuMjAwMzU4MDAzMzc3OTE0NDMsIDAuNTkzNTU5MDI2NzE4MTM5NiwgMC43Nzk0NTEwMTI2MTEzODkyLAorICAgICAgICAwLjEyMjQ1NTk5OTI1NTE4MDM2LCAwLjYyMDE4MDAxMDc5NTU5MzMsIDAuNzc0ODQyOTc3NTIzODAzNywgMC44MzE2NTA5NzIzNjYzMzMsIDAuNTU1Mjk4OTg0MDUwNzUwNywgMCwKKyAgICAgICAgMC41MjM3MzA5OTMyNzA4NzQsIDAuMjYxNjk2MDEwODI4MDE4MiwgMC44MTA2OTIwMTIzMTAwMjgxLCAtMC4yODE5MTk5ODYwMDk1OTc4LCAtMC4yODE5NjQwMDQwMzk3NjQ0LCAwLjkxNzA2OTk3MTU2MTQzMTksCisgICAgICAgIC0wLjI1MTYxMjAwNzYxNzk1MDQ0LCAtMC4yNTE2OTc5ODczMTgwMzg5NCwgMC45MzQ1MjY5Nzk5MjMyNDgzLCAwLjQxMjQ5NzAxMzgwNzI5Njc1LCAwLjQ3MTAzMzAwNjkwNjUwOTQsIDAuNzc5NzI2OTgyMTE2Njk5MiwKKyAgICAgICAgMC45ODEzMjAwMjM1MzY2ODIxLCAwLjE5MjM4MDk5NDU1ODMzNDM1LCAwLCAwLjU4NDA0MjAxMjY5MTQ5NzgsIDAuMDQwMzExMDAxMjQxMjA3MTIsIDAuODEwNzIxOTkzNDQ2MzUwMSwKKyAgICAgICAgLTAuMzY3ODk1MDA3MTMzNDgzOSwgLTAuMTUxNzg1MDAxMTU4NzE0MywgMC45MTczOTYwMDg5NjgzNTMzLCAtMC4zMjgyODk5ODU2NTY3MzgzLCAtMC4xMzU2MTk5OTc5NzgyMTA0NSwgMC45MzQ3OTAwMTUyMjA2NDIxLAorICAgICAgICAwLjU2MTYwMTk5NjQyMTgxNCwgMC4yNzczNzc5OTI4Njg0MjM0NiwgMC43Nzk1MjgwMjE4MTI0MzksIC0xLCAwLCAwLAorICAgICAgICAwLjU0MTM1NjAyNzEyNjMxMjMsIC0wLjI5MDc0OTk5NjkwMDU1ODQ3LCAwLjc4ODkyMjAxMTg1MjI2NDQsIC0wLjM5NjA3Mzk5NzAyMDcyMTQ0LCAtMC4wNzc2NzE5OTcyNDkxMjY0MywgMC45MTQ5MjcwMDU3Njc4MjIzLAorICAgICAgICAtMC4zNTMwOTQwMTE1NDUxODEzLCAtMC4wNjkzNzI5OTY2ODc4ODkxLCAwLjkzMzAxMzAyMTk0NTk1MzQsIDAuNjIwMjEzOTg1NDQzMTE1MiwgMC4xMjIyMTAwMDM0MzU2MTE3MiwgMC43NzQ4NTUwMTc2NjIwNDgzLAorICAgICAgICAwLjk4MTMyMDAyMzUzNjY4MjEsIC0wLjE5MjM4MDk5NDU1ODMzNDM1LCAwLCAwLjgzMTY1MDk3MjM2NjMzMywgLTAuNTU1Mjk4OTg0MDUwNzUwNywgMCwKKyAgICAgICAgMC40NDI1NjQwMTA2MjAxMTcyLCAtMC4zODMwODk5ODk0MjM3NTE4MywgMC44MTA3ODg5ODkwNjcwNzc2LCAwLjU2MjM1MDk4ODM4ODA2MTUsIC0wLjExMDI2NDAwMzI3NjgyNDk1LCAwLjgxOTUxMzk3NjU3Mzk0NDEsCisgICAgICAgIC0wLjM2NzkxNzAwMTI0NzQwNiwgMC4xNTE3ODU5OTk1MzY1MTQyOCwgMC45MTczODU5OTUzODgwMzEsIC0wLjM5NjA2Njk5MzQ3NDk2MDMsIDAuMDc3NzQ4MDAwNjIxNzk1NjUsIDAuOTE0OTI0MDI1NTM1NTgzNSwKKyAgICAgICAgLTAuMzI4MzUyMDA0Mjg5NjI3MSwgMC4xMzU2Mjc5OTk5MDE3NzE1NSwgMC45MzQ3NjcwMDc4Mjc3NTg4LCAtMC4zNTMwNzQ5OTc2NjM0OTc5LCAwLjA2OTUyMjk5OTIyNzA0Njk3LCAwLjkzMzAwODAxNTE1NTc5MjIsCisgICAgICAgIDAuNTkzNTU5MDI2NzE4MTM5NiwgLTAuMjAwMzU4MDAzMzc3OTE0NDMsIDAuNzc5NDUxMDEyNjExMzg5MiwgMC42MjAxODAwMTA3OTU1OTMzLCAtMC4xMjI0NTU5OTkyNTUxODAzNiwgMC43NzQ4NDI5Nzc1MjM4MDM3LAorICAgICAgICAwLjU1NTI5ODk4NDA1MDc1MDcsIC0wLjgzMTY1MDk3MjM2NjMzMywgMCwgMC4yNjE2OTYwMTA4MjgwMTgyLCAtMC41MjM3MzA5OTMyNzA4NzQsIDAuODEwNjkyMDEyMzEwMDI4MSwKKyAgICAgICAgLTAuMjgxOTY0MDA0MDM5NzY0NCwgMC4yODE5MTk5ODYwMDk1OTc4LCAwLjkxNzA2OTk3MTU2MTQzMTksIC0wLjI1MTY5Nzk4NzMxODAzODk0LCAwLjI1MTYxMjAwNzYxNzk1MDQ0LCAwLjkzNDUyNjk3OTkyMzI0ODMsCisgICAgICAgIDAuNDcxMDMzMDA2OTA2NTA5NCwgLTAuNDEyNDk3MDEzODA3Mjk2NzUsIDAuNzc5NzI2OTgyMTE2Njk5MiwgMC4xOTIzODA5OTQ1NTgzMzQzNSwgLTAuOTgxMzIwMDIzNTM2NjgyMSwgMCwKKyAgICAgICAgMC4wNDAzMTEwMDEyNDEyMDcxMiwgLTAuNTg0MDQyMDEyNjkxNDk3OCwgMC44MTA3MjE5OTM0NDYzNTAxLCAtMC4xNTE3ODUwMDExNTg3MTQzLCAwLjM2Nzg5NTAwNzEzMzQ4MzksIDAuOTE3Mzk2MDA4OTY4MzUzMywKKyAgICAgICAgLTAuMTM1NjE5OTk3OTc4MjEwNDUsIDAuMzI4Mjg5OTg1NjU2NzM4MywgMC45MzQ3OTAwMTUyMjA2NDIxLCAwLjI3NzM3Nzk5Mjg2ODQyMzQ2LCAtMC41NjE2MDE5OTY0MjE4MTQsIDAuNzc5NTI4MDIxODEyNDM5LAorICAgICAgICAtMSwgMCwgMCwgLTAuMjkwNzQ5OTk2OTAwNTU4NDcsIC0wLjU0MTM1NjAyNzEyNjMxMjMsIDAuNzg4OTIyMDExODUyMjY0NCwKKyAgICAgICAgLTAuMDc3NjcxOTk3MjQ5MTI2NDMsIDAuMzk2MDczOTk3MDIwNzIxNDQsIDAuOTE0OTI3MDA1NzY3ODIyMywgLTAuMDY5MzcyOTk2Njg3ODg5MSwgMC4zNTMwOTQwMTE1NDUxODEzLCAwLjkzMzAxMzAyMTk0NTk1MzQsCisgICAgICAgIDAuMTIyMjEwMDAzNDM1NjExNzIsIC0wLjYyMDIxMzk4NTQ0MzExNTIsIDAuNzc0ODU1MDE3NjYyMDQ4MywgLTAuMTkyMzgwOTk0NTU4MzM0MzUsIC0wLjk4MTMyMDAyMzUzNjY4MjEsIDAsCisgICAgICAgIC0wLjU1NTI5ODk4NDA1MDc1MDcsIC0wLjgzMTY1MDk3MjM2NjMzMywgMCwgLTAuMzgzMDg5OTg5NDIzNzUxODMsIC0wLjQ0MjU2NDAxMDYyMDExNzIsIDAuODEwNzg4OTg5MDY3MDc3NiwKKyAgICAgICAgLTAuMTEwMjY0MDAzMjc2ODI0OTUsIC0wLjU2MjM1MDk4ODM4ODA2MTUsIDAuODE5NTEzOTc2NTczOTQ0MSwgMC4xNTE3ODU5OTk1MzY1MTQyOCwgMC4zNjc5MTcwMDEyNDc0MDYsIDAuOTE3Mzg1OTk1Mzg4MDMxLAorICAgICAgICAwLjA3Nzc0ODAwMDYyMTc5NTY1LCAwLjM5NjA2Njk5MzQ3NDk2MDMsIDAuOTE0OTI0MDI1NTM1NTgzNSwgMC4xMzU2Mjc5OTk5MDE3NzE1NSwgMC4zMjgzNTIwMDQyODk2MjcxLCAwLjkzNDc2NzAwNzgyNzc1ODgsCisgICAgICAgIDAuMDY5NTIyOTk5MjI3MDQ2OTcsIDAuMzUzMDc0OTk3NjYzNDk3OSwgMC45MzMwMDgwMTUxNTU3OTIyLCAtMC4yMDAzNTgwMDMzNzc5MTQ0MywgLTAuNTkzNTU5MDI2NzE4MTM5NiwgMC43Nzk0NTEwMTI2MTEzODkyLAorICAgICAgICAtMC4xMjI0NTU5OTkyNTUxODAzNiwgLTAuNjIwMTgwMDEwNzk1NTkzMywgMC43NzQ4NDI5Nzc1MjM4MDM3LCAtMC44MzE2NTA5NzIzNjYzMzMsIC0wLjU1NTI5ODk4NDA1MDc1MDcsIDAsCisgICAgICAgIC0wLjUyMzczMDk5MzI3MDg3NCwgLTAuMjYxNjk2MDEwODI4MDE4MiwgMC44MTA2OTIwMTIzMTAwMjgxLCAwLjI4MTkxOTk4NjAwOTU5NzgsIDAuMjgxOTY0MDA0MDM5NzY0NCwgMC45MTcwNjk5NzE1NjE0MzE5LAorICAgICAgICAwLjI1MTYxMjAwNzYxNzk1MDQ0LCAwLjI1MTY5Nzk4NzMxODAzODk0LCAwLjkzNDUyNjk3OTkyMzI0ODMsIC0wLjQxMjQ5NzAxMzgwNzI5Njc1LCAtMC40NzEwMzMwMDY5MDY1MDk0LCAwLjc3OTcyNjk4MjExNjY5OTIsCisgICAgICAgIC0wLjk4MTMyMDAyMzUzNjY4MjEsIC0wLjE5MjM4MDk5NDU1ODMzNDM1LCAwLCAtMC41ODQwNDIwMTI2OTE0OTc4LCAtMC4wNDAzMTEwMDEyNDEyMDcxMiwgMC44MTA3MjE5OTM0NDYzNTAxLAorICAgICAgICAwLjM2Nzg5NTAwNzEzMzQ4MzksIDAuMTUxNzg1MDAxMTU4NzE0MywgMC45MTczOTYwMDg5NjgzNTMzLCAwLjMyODI4OTk4NTY1NjczODMsIDAuMTM1NjE5OTk3OTc4MjEwNDUsIDAuOTM0NzkwMDE1MjIwNjQyMSwKKyAgICAgICAgLTAuNTYxNjAxOTk2NDIxODE0LCAtMC4yNzczNzc5OTI4Njg0MjM0NiwgMC43Nzk1MjgwMjE4MTI0MzksIC0xLCAwLCAwLAorICAgICAgICAtMC41NDEzNTYwMjcxMjYzMTIzLCAwLjI5MDc0OTk5NjkwMDU1ODQ3LCAwLjc4ODkyMjAxMTg1MjI2NDQsIDAuMzk2MDczOTk3MDIwNzIxNDQsIDAuMDc3NjcxOTk3MjQ5MTI2NDMsIDAuOTE0OTI3MDA1NzY3ODIyMywKKyAgICAgICAgMC4zNTMwOTQwMTE1NDUxODEzLCAwLjA2OTM3Mjk5NjY4Nzg4OTEsIDAuOTMzMDEzMDIxOTQ1OTUzNCwgLTAuNjIwMjEzOTg1NDQzMTE1MiwgLTAuMTIyMjEwMDAzNDM1NjExNzIsIDAuNzc0ODU1MDE3NjYyMDQ4MywKKyAgICAgICAgLTAuNjIwMTgwMDEwNzk1NTkzMywgMC4xMjI0NTU5OTkyNTUxODAzNiwgMC43NzQ4NDI5Nzc1MjM4MDM3LCAtMC41NjE2NDY5OTc5Mjg2MTk0LCAwLjI3NzU1MDk5NTM0OTg4NDAzLCAwLjc3OTQzNDk3ODk2MTk0NDYsCisgICAgICAgIC0wLjg5NzkyMTAyNTc1MzAyMTIsIDAuMzcxNTk2MDA4NTM5MTk5ODMsIDAuMjM1OTA5OTk4NDE2OTAwNjMsIC0wLjk1NDIwOTk4MzM0ODg0NjQsIDAuMTg4NDEwOTk3MzkwNzQ3MDcsIDAuMjMyMzQ1OTk4Mjg3MjAwOTMsCisgICAgICAgIC0wLjkxMDEyMDAxMDM3NTk3NjYsIDAuMzc2NjQ0OTk4Nzg4ODMzNiwgMC4xNzI2ODM5OTg5NDIzNzUxOCwgLTAuOTY2Nzk1MDI3MjU2MDEyLCAwLjE5MDg5NjAwNDQzODQwMDI3LCAwLjE2OTkwMDk5ODQ3MzE2NzQyLAorICAgICAgICAtMC44NTQ5ODc5Nzg5MzUyNDE3LCAwLjM1MzgzMjk4OTkzMTEwNjU3LCAwLjM3OTIwNzk5ODUxNDE3NTQsIC0wLjkxMDA0OTk3NDkxODM2NTUsIDAuMTc5NjkxMDAxNzcyODgwNTUsIDAuMzczNTIyOTk2OTAyNDY1OCwKKyAgICAgICAgLTAuODA2NDE1MDIxNDE5NTI1MSwgMC4yNzI0Mjg5ODk0MTA0MDA0LCAwLjUyNDg2MDAyNDQ1MjIwOTUsIC0wLjgzODM0MDk5NzY5NTkyMjksIDAuMTY1NTMxOTkyOTEyMjkyNDgsIDAuNTE5NDA2OTc0MzE1NjQzMywKKyAgICAgICAgLTAuNDEyNTk1OTg3MzE5OTQ2MywgMC40NzA5NDUwMDA2NDg0OTg1NCwgMC43Nzk3Mjc5OTUzOTU2NjA0LCAtMC42ODcxOTI5NzY0NzQ3NjIsIDAuNjg3MTkyOTc2NDc0NzYyLCAwLjIzNTY1MTk5OTcxMTk5MDM2LAorICAgICAgICAtMC42OTY1MTkwMTcyMTk1NDM1LCAwLjY5NjUxOTAxNzIxOTU0MzUsIDAuMTcyNDA0MDA2MTIzNTQyNzksIC0wLjY1NDQ4ODAyNzA5NTc5NDcsIDAuNjU0NDg3MDEzODE2ODMzNSwgMC4zNzg1Mzg5OTU5ODEyMTY0MywKKyAgICAgICAgLTAuNjQwNDk3MDI4ODI3NjY3MiwgMC41NjExNDI5ODEwNTIzOTg3LCAwLjUyNDI5MDk3ODkwODUzODgsIC0wLjIwMDQ3OTAwMDgwNjgwODQ3LCAwLjU5MzM5NDk5NDczNTcxNzgsIDAuNzc5NTQ1MDA5MTM2MiwKKyAgICAgICAgLTAuMzcxNTk2OTkyMDE1ODM4NiwgMC44OTc5MjEwMjU3NTMwMjEyLCAwLjIzNTkwOTk5ODQxNjkwMDYzLCAtMC4zNzY2NDQ5OTg3ODg4MzM2LCAwLjkxMDEyMDAxMDM3NTk3NjYsIDAuMTcyNjgzOTk4OTQyMzc1MTgsCisgICAgICAgIC0wLjM1MzgzMjk4OTkzMTEwNjU3LCAwLjg1NDk4Nzk3ODkzNTI0MTcsIDAuMzc5MjA3OTk4NTE0MTc1NCwgLTAuMzc3MDcyOTg5OTQwNjQzMywgMC43NjMwNzg5ODc1OTg0MTkyLCAwLjUyNDkwNTk3OTYzMzMzMTMsCisgICAgICAgIC0wLjEyMjQ1OTAwMTgzOTE2MDkyLCAwLjYyMDE5NDAxNzg4NzExNTUsIDAuNzc0ODMwOTk2OTkwMjAzOSwgLTAuMTg4NDEwOTk3MzkwNzQ3MDcsIDAuOTU0MjA5OTgzMzQ4ODQ2NCwgMC4yMzIzNDU5OTgyODcyMDA5MywKKyAgICAgICAgLTAuMTkwODk2MDA0NDM4NDAwMjcsIDAuOTY2Nzk1MDI3MjU2MDEyLCAwLjE2OTkwMDk5ODQ3MzE2NzQyLCAtMC4xNzk2OTIwMDAxNTA2ODA1NCwgMC45MTAwNDk5NzQ5MTgzNjU1LCAwLjM3MzUyMjk5NjkwMjQ2NTgsCisgICAgICAgIC0wLjE2NTUzMTk5MjkxMjI5MjQ4LCAwLjgzODM0MDk5NzY5NTkyMjksIDAuNTE5NDA2OTc0MzE1NjQzMywgMC4xMjI0NTU5OTkyNTUxODAzNiwgMC42MjAxODAwMTA3OTU1OTMzLCAwLjc3NDg0Mjk3NzUyMzgwMzcsCisgICAgICAgIDAuMjc3NTUwOTk1MzQ5ODg0MDMsIDAuNTYxNjQ2OTk3OTI4NjE5NCwgMC43Nzk0MzQ5Nzg5NjE5NDQ2LCAwLjM3MTU5NjAwODUzOTE5OTgzLCAwLjg5NzkyMTAyNTc1MzAyMTIsIDAuMjM1OTA5OTk4NDE2OTAwNjMsCisgICAgICAgIDAuMTg4NDEwOTk3MzkwNzQ3MDcsIDAuOTU0MjA5OTgzMzQ4ODQ2NCwgMC4yMzIzNDU5OTgyODcyMDA5MywgMC4zNzY2NDQ5OTg3ODg4MzM2LCAwLjkxMDEyMDAxMDM3NTk3NjYsIDAuMTcyNjgzOTk4OTQyMzc1MTgsCisgICAgICAgIDAuMTkwODk2MDA0NDM4NDAwMjcsIDAuOTY2Nzk1MDI3MjU2MDEyLCAwLjE2OTkwMDk5ODQ3MzE2NzQyLCAwLjM1MzgzMjk4OTkzMTEwNjU3LCAwLjg1NDk4Nzk3ODkzNTI0MTcsIDAuMzc5MjA3OTk4NTE0MTc1NCwKKyAgICAgICAgMC4xNzk2OTEwMDE3NzI4ODA1NSwgMC45MTAwNDk5NzQ5MTgzNjU1LCAwLjM3MzUyMjk5NjkwMjQ2NTgsIDAuMjcyNDI4OTg5NDEwNDAwNCwgMC44MDY0MTUwMjE0MTk1MjUxLCAwLjUyNDg2MDAyNDQ1MjIwOTUsCisgICAgICAgIDAuMTY1NTMxOTkyOTEyMjkyNDgsIDAuODM4MzQwOTk3Njk1OTIyOSwgMC41MTk0MDY5NzQzMTU2NDMzLCAwLjQ3MDk0NTAwMDY0ODQ5ODU0LCAwLjQxMjU5NTk4NzMxOTk0NjMsIDAuNzc5NzI3OTk1Mzk1NjYwNCwKKyAgICAgICAgMC42ODcxOTI5NzY0NzQ3NjIsIDAuNjg3MTkyOTc2NDc0NzYyLCAwLjIzNTY1MTk5OTcxMTk5MDM2LCAwLjY5NjUxOTAxNzIxOTU0MzUsIDAuNjk2NTE5MDE3MjE5NTQzNSwgMC4xNzI0MDQwMDYxMjM1NDI3OSwKKyAgICAgICAgMC42NTQ0ODcwMTM4MTY4MzM1LCAwLjY1NDQ4ODAyNzA5NTc5NDcsIDAuMzc4NTM4OTk1OTgxMjE2NDMsIDAuNTYxMTQyOTgxMDUyMzk4NywgMC42NDA0OTcwMjg4Mjc2NjcyLCAwLjUyNDI5MDk3ODkwODUzODgsCisgICAgICAgIDAuNTkzMzk0OTk0NzM1NzE3OCwgMC4yMDA0NzkwMDA4MDY4MDg0NywgMC43Nzk1NDUwMDkxMzYyLCAwLjg5NzkyMTAyNTc1MzAyMTIsIDAuMzcxNTk2OTkyMDE1ODM4NiwgMC4yMzU5MDk5OTg0MTY5MDA2MywKKyAgICAgICAgMC45MTAxMjAwMTAzNzU5NzY2LCAwLjM3NjY0NDk5ODc4ODgzMzYsIDAuMTcyNjgzOTk4OTQyMzc1MTgsIDAuODU0OTg3OTc4OTM1MjQxNywgMC4zNTM4MzI5ODk5MzExMDY1NywgMC4zNzkyMDc5OTg1MTQxNzU0LAorICAgICAgICAwLjc2MzA3ODk4NzU5ODQxOTIsIDAuMzc3MDcyOTg5OTQwNjQzMywgMC41MjQ5MDU5Nzk2MzMzMzEzLCAwLjYyMDE5NDAxNzg4NzExNTUsIDAuMTIyNDU5MDAxODM5MTYwOTIsIDAuNzc0ODMwOTk2OTkwMjAzOSwKKyAgICAgICAgMC45NTQyMDk5ODMzNDg4NDY0LCAwLjE4ODQxMDk5NzM5MDc0NzA3LCAwLjIzMjM0NTk5ODI4NzIwMDkzLCAwLjk2Njc5NTAyNzI1NjAxMiwgMC4xOTA4OTYwMDQ0Mzg0MDAyNywgMC4xNjk5MDA5OTg0NzMxNjc0MiwKKyAgICAgICAgMC45MTAwNDk5NzQ5MTgzNjU1LCAwLjE3OTY5MjAwMDE1MDY4MDU0LCAwLjM3MzUyMjk5NjkwMjQ2NTgsIDAuODM4MzQwOTk3Njk1OTIyOSwgMC4xNjU1MzE5OTI5MTIyOTI0OCwgMC41MTk0MDY5NzQzMTU2NDMzLAorICAgICAgICAwLjYyMDE4MDAxMDc5NTU5MzMsIC0wLjEyMjQ1NTk5OTI1NTE4MDM2LCAwLjc3NDg0Mjk3NzUyMzgwMzcsIDAuNTYxNjQ2OTk3OTI4NjE5NCwgLTAuMjc3NTUwOTk1MzQ5ODg0MDMsIDAuNzc5NDM0OTc4OTYxOTQ0NiwKKyAgICAgICAgMC44OTc5MjEwMjU3NTMwMjEyLCAtMC4zNzE1OTYwMDg1MzkxOTk4MywgMC4yMzU5MDk5OTg0MTY5MDA2MywgMC45NTQyMDk5ODMzNDg4NDY0LCAtMC4xODg0MTA5OTczOTA3NDcwNywgMC4yMzIzNDU5OTgyODcyMDA5MywKKyAgICAgICAgMC45MTAxMjAwMTAzNzU5NzY2LCAtMC4zNzY2NDQ5OTg3ODg4MzM2LCAwLjE3MjY4Mzk5ODk0MjM3NTE4LCAwLjk2Njc5NTAyNzI1NjAxMiwgLTAuMTkwODk2MDA0NDM4NDAwMjcsIDAuMTY5OTAwOTk4NDczMTY3NDIsCisgICAgICAgIDAuODU0OTg3OTc4OTM1MjQxNywgLTAuMzUzODMyOTg5OTMxMTA2NTcsIDAuMzc5MjA3OTk4NTE0MTc1NCwgMC45MTAwNDk5NzQ5MTgzNjU1LCAtMC4xNzk2OTEwMDE3NzI4ODA1NSwgMC4zNzM1MjI5OTY5MDI0NjU4LAorICAgICAgICAwLjgwNjQxNTAyMTQxOTUyNTEsIC0wLjI3MjQyODk4OTQxMDQwMDQsIDAuNTI0ODYwMDI0NDUyMjA5NSwgMC44MzgzNDA5OTc2OTU5MjI5LCAtMC4xNjU1MzE5OTI5MTIyOTI0OCwgMC41MTk0MDY5NzQzMTU2NDMzLAorICAgICAgICAwLjQxMjU5NTk4NzMxOTk0NjMsIC0wLjQ3MDk0NTAwMDY0ODQ5ODU0LCAwLjc3OTcyNzk5NTM5NTY2MDQsIDAuNjg3MTkyOTc2NDc0NzYyLCAtMC42ODcxOTI5NzY0NzQ3NjIsIDAuMjM1NjUxOTk5NzExOTkwMzYsCisgICAgICAgIDAuNjk2NTE5MDE3MjE5NTQzNSwgLTAuNjk2NTE5MDE3MjE5NTQzNSwgMC4xNzI0MDQwMDYxMjM1NDI3OSwgMC42NTQ0ODgwMjcwOTU3OTQ3LCAtMC42NTQ0ODcwMTM4MTY4MzM1LCAwLjM3ODUzODk5NTk4MTIxNjQzLAorICAgICAgICAwLjY0MDQ5NzAyODgyNzY2NzIsIC0wLjU2MTE0Mjk4MTA1MjM5ODcsIDAuNTI0MjkwOTc4OTA4NTM4OCwgMC4yMDA0NzkwMDA4MDY4MDg0NywgLTAuNTkzMzk0OTk0NzM1NzE3OCwgMC43Nzk1NDUwMDkxMzYyLAorICAgICAgICAwLjM3MTU5Njk5MjAxNTgzODYsIC0wLjg5NzkyMTAyNTc1MzAyMTIsIDAuMjM1OTA5OTk4NDE2OTAwNjMsIDAuMzc2NjQ0OTk4Nzg4ODMzNiwgLTAuOTEwMTIwMDEwMzc1OTc2NiwgMC4xNzI2ODM5OTg5NDIzNzUxOCwKKyAgICAgICAgMC4zNTM4MzI5ODk5MzExMDY1NywgLTAuODU0OTg3OTc4OTM1MjQxNywgMC4zNzkyMDc5OTg1MTQxNzU0LCAwLjM3NzA3Mjk4OTk0MDY0MzMsIC0wLjc2MzA3ODk4NzU5ODQxOTIsIDAuNTI0OTA1OTc5NjMzMzMxMywKKyAgICAgICAgMC4xMjI0NTkwMDE4MzkxNjA5MiwgLTAuNjIwMTk0MDE3ODg3MTE1NSwgMC43NzQ4MzA5OTY5OTAyMDM5LCAwLjE4ODQxMDk5NzM5MDc0NzA3LCAtMC45NTQyMDk5ODMzNDg4NDY0LCAwLjIzMjM0NTk5ODI4NzIwMDkzLAorICAgICAgICAwLjE5MDg5NjAwNDQzODQwMDI3LCAtMC45NjY3OTUwMjcyNTYwMTIsIDAuMTY5OTAwOTk4NDczMTY3NDIsIDAuMTc5NjkyMDAwMTUwNjgwNTQsIC0wLjkxMDA0OTk3NDkxODM2NTUsIDAuMzczNTIyOTk2OTAyNDY1OCwKKyAgICAgICAgMC4xNjU1MzE5OTI5MTIyOTI0OCwgLTAuODM4MzQwOTk3Njk1OTIyOSwgMC41MTk0MDY5NzQzMTU2NDMzLCAtMC4xMjI0NTU5OTkyNTUxODAzNiwgLTAuNjIwMTgwMDEwNzk1NTkzMywgMC43NzQ4NDI5Nzc1MjM4MDM3LAorICAgICAgICAtMC4yNzc1NTA5OTUzNDk4ODQwMywgLTAuNTYxNjQ2OTk3OTI4NjE5NCwgMC43Nzk0MzQ5Nzg5NjE5NDQ2LCAtMC4zNzE1OTYwMDg1MzkxOTk4MywgLTAuODk3OTIxMDI1NzUzMDIxMiwgMC4yMzU5MDk5OTg0MTY5MDA2MywKKyAgICAgICAgLTAuMTg4NDEwOTk3MzkwNzQ3MDcsIC0wLjk1NDIwOTk4MzM0ODg0NjQsIDAuMjMyMzQ1OTk4Mjg3MjAwOTMsIC0wLjM3NjY0NDk5ODc4ODgzMzYsIC0wLjkxMDEyMDAxMDM3NTk3NjYsIDAuMTcyNjgzOTk4OTQyMzc1MTgsCisgICAgICAgIC0wLjE5MDg5NjAwNDQzODQwMDI3LCAtMC45NjY3OTUwMjcyNTYwMTIsIDAuMTY5OTAwOTk4NDczMTY3NDIsIC0wLjM1MzgzMjk4OTkzMTEwNjU3LCAtMC44NTQ5ODc5Nzg5MzUyNDE3LCAwLjM3OTIwNzk5ODUxNDE3NTQsCisgICAgICAgIC0wLjE3OTY5MTAwMTc3Mjg4MDU1LCAtMC45MTAwNDk5NzQ5MTgzNjU1LCAwLjM3MzUyMjk5NjkwMjQ2NTgsIC0wLjI3MjQyODk4OTQxMDQwMDQsIC0wLjgwNjQxNTAyMTQxOTUyNTEsIDAuNTI0ODYwMDI0NDUyMjA5NSwKKyAgICAgICAgLTAuMTY1NTMxOTkyOTEyMjkyNDgsIC0wLjgzODM0MDk5NzY5NTkyMjksIDAuNTE5NDA2OTc0MzE1NjQzMywgLTAuNDcwOTQ1MDAwNjQ4NDk4NTQsIC0wLjQxMjU5NTk4NzMxOTk0NjMsIDAuNzc5NzI3OTk1Mzk1NjYwNCwKKyAgICAgICAgLTAuNjg3MTkyOTc2NDc0NzYyLCAtMC42ODcxOTI5NzY0NzQ3NjIsIDAuMjM1NjUxOTk5NzExOTkwMzYsIC0wLjY5NjUxOTAxNzIxOTU0MzUsIC0wLjY5NjUxOTAxNzIxOTU0MzUsIDAuMTcyNDA0MDA2MTIzNTQyNzksCisgICAgICAgIC0wLjY1NDQ4NzAxMzgxNjgzMzUsIC0wLjY1NDQ4ODAyNzA5NTc5NDcsIDAuMzc4NTM4OTk1OTgxMjE2NDMsIC0wLjU2MTE0Mjk4MTA1MjM5ODcsIC0wLjY0MDQ5NzAyODgyNzY2NzIsIDAuNTI0MjkwOTc4OTA4NTM4OCwKKyAgICAgICAgLTAuNTkzMzk0OTk0NzM1NzE3OCwgLTAuMjAwNDc5MDAwODA2ODA4NDcsIDAuNzc5NTQ1MDA5MTM2MiwgLTAuODk3OTIxMDI1NzUzMDIxMiwgLTAuMzcxNTk2OTkyMDE1ODM4NiwgMC4yMzU5MDk5OTg0MTY5MDA2MywKKyAgICAgICAgLTAuOTEwMTIwMDEwMzc1OTc2NiwgLTAuMzc2NjQ0OTk4Nzg4ODMzNiwgMC4xNzI2ODM5OTg5NDIzNzUxOCwgLTAuODU0OTg3OTc4OTM1MjQxNywgLTAuMzUzODMyOTg5OTMxMTA2NTcsIDAuMzc5MjA3OTk4NTE0MTc1NCwKKyAgICAgICAgLTAuNzYzMDc4OTg3NTk4NDE5MiwgLTAuMzc3MDcyOTg5OTQwNjQzMywgMC41MjQ5MDU5Nzk2MzMzMzEzLCAtMC42MjAxOTQwMTc4ODcxMTU1LCAtMC4xMjI0NTkwMDE4MzkxNjA5MiwgMC43NzQ4MzA5OTY5OTAyMDM5LAorICAgICAgICAtMC45NTQyMDk5ODMzNDg4NDY0LCAtMC4xODg0MTA5OTczOTA3NDcwNywgMC4yMzIzNDU5OTgyODcyMDA5MywgLTAuOTY2Nzk1MDI3MjU2MDEyLCAtMC4xOTA4OTYwMDQ0Mzg0MDAyNywgMC4xNjk5MDA5OTg0NzMxNjc0MiwKKyAgICAgICAgLTAuOTEwMDQ5OTc0OTE4MzY1NSwgLTAuMTc5NjkyMDAwMTUwNjgwNTQsIDAuMzczNTIyOTk2OTAyNDY1OCwgLTAuODM4MzQwOTk3Njk1OTIyOSwgLTAuMTY1NTMxOTkyOTEyMjkyNDgsIDAuNTE5NDA2OTc0MzE1NjQzMyB9OworCisKK2Zsb2F0ICB0ZWFwb3RUZXhDb29yZHNbXSA9IHsgMiwgMiwgMCwgMS43NSwgMiwgMCwgMS43NSwgMS45NzUwMDAwMjM4NDE4NTgsCisgICAgICAgIDAsIDIsIDEuOTc1MDAwMDIzODQxODU4LCAwLCAxLjc1LCAxLjk1MDAwMDA0NzY4MzcxNTgsIDAsIDIsCisgICAgICAgIDEuOTUwMDAwMDQ3NjgzNzE1OCwgMCwgMS43NSwgMS45MjQ5OTk5NTIzMTYyODQyLCAwLCAyLCAxLjkyNDk5OTk1MjMxNjI4NDIsIDAsCisgICAgICAgIDEuNzUsIDEuODk5OTk5OTc2MTU4MTQyLCAwLCAyLCAxLjg5OTk5OTk3NjE1ODE0MiwgMCwgMS41LCAyLAorICAgICAgICAwLCAxLjUsIDEuOTc1MDAwMDIzODQxODU4LCAwLCAxLjUsIDEuOTUwMDAwMDQ3NjgzNzE1OCwgMCwgMS41LAorICAgICAgICAxLjkyNDk5OTk1MjMxNjI4NDIsIDAsIDEuNSwgMS44OTk5OTk5NzYxNTgxNDIsIDAsIDEuMjUsIDIsIDAsCisgICAgICAgIDEuMjUsIDEuOTc1MDAwMDIzODQxODU4LCAwLCAxLjI1LCAxLjk1MDAwMDA0NzY4MzcxNTgsIDAsIDEuMjUsIDEuOTI0OTk5OTUyMzE2Mjg0MiwKKyAgICAgICAgMCwgMS4yNSwgMS44OTk5OTk5NzYxNTgxNDIsIDAsIDEsIDIsIDAsIDEsCisgICAgICAgIDEuOTc1MDAwMDIzODQxODU4LCAwLCAxLCAxLjk1MDAwMDA0NzY4MzcxNTgsIDAsIDEsIDEuOTI0OTk5OTUyMzE2Mjg0MiwgMCwKKyAgICAgICAgMSwgMS44OTk5OTk5NzYxNTgxNDIsIDAsIDEsIDIsIDAsIDAuNzUsIDIsCisgICAgICAgIDAsIDAuNzUsIDEuOTc1MDAwMDIzODQxODU4LCAwLCAxLCAxLjk3NTAwMDAyMzg0MTg1OCwgMCwgMC43NSwKKyAgICAgICAgMS45NTAwMDAwNDc2ODM3MTU4LCAwLCAxLCAxLjk1MDAwMDA0NzY4MzcxNTgsIDAsIDAuNzUsIDEuOTI0OTk5OTUyMzE2Mjg0MiwgMCwKKyAgICAgICAgMSwgMS45MjQ5OTk5NTIzMTYyODQyLCAwLCAwLjc1LCAxLjg5OTk5OTk3NjE1ODE0MiwgMCwgMSwgMS44OTk5OTk5NzYxNTgxNDIsCisgICAgICAgIDAsIDAuNSwgMiwgMCwgMC41LCAxLjk3NTAwMDAyMzg0MTg1OCwgMCwgMC41LAorICAgICAgICAxLjk1MDAwMDA0NzY4MzcxNTgsIDAsIDAuNSwgMS45MjQ5OTk5NTIzMTYyODQyLCAwLCAwLjUsIDEuODk5OTk5OTc2MTU4MTQyLCAwLAorICAgICAgICAwLjI1LCAyLCAwLCAwLjI1LCAxLjk3NTAwMDAyMzg0MTg1OCwgMCwgMC4yNSwgMS45NTAwMDAwNDc2ODM3MTU4LAorICAgICAgICAwLCAwLjI1LCAxLjkyNDk5OTk1MjMxNjI4NDIsIDAsIDAuMjUsIDEuODk5OTk5OTc2MTU4MTQyLCAwLCAwLAorICAgICAgICAyLCAwLCAwLCAxLjk3NTAwMDAyMzg0MTg1OCwgMCwgMCwgMS45NTAwMDAwNDc2ODM3MTU4LCAwLAorICAgICAgICAwLCAxLjkyNDk5OTk1MjMxNjI4NDIsIDAsIDAsIDEuODk5OTk5OTc2MTU4MTQyLCAwLCAyLCAyLAorICAgICAgICAwLCAxLjc1LCAyLCAwLCAxLjc1LCAxLjk3NTAwMDAyMzg0MTg1OCwgMCwgMiwKKyAgICAgICAgMS45NzUwMDAwMjM4NDE4NTgsIDAsIDEuNzUsIDEuOTUwMDAwMDQ3NjgzNzE1OCwgMCwgMiwgMS45NTAwMDAwNDc2ODM3MTU4LCAwLAorICAgICAgICAxLjc1LCAxLjkyNDk5OTk1MjMxNjI4NDIsIDAsIDIsIDEuOTI0OTk5OTUyMzE2Mjg0MiwgMCwgMS43NSwgMS44OTk5OTk5NzYxNTgxNDIsCisgICAgICAgIDAsIDIsIDEuODk5OTk5OTc2MTU4MTQyLCAwLCAxLjUsIDIsIDAsIDEuNSwKKyAgICAgICAgMS45NzUwMDAwMjM4NDE4NTgsIDAsIDEuNSwgMS45NTAwMDAwNDc2ODM3MTU4LCAwLCAxLjUsIDEuOTI0OTk5OTUyMzE2Mjg0MiwgMCwKKyAgICAgICAgMS41LCAxLjg5OTk5OTk3NjE1ODE0MiwgMCwgMS4yNSwgMiwgMCwgMS4yNSwgMS45NzUwMDAwMjM4NDE4NTgsCisgICAgICAgIDAsIDEuMjUsIDEuOTUwMDAwMDQ3NjgzNzE1OCwgMCwgMS4yNSwgMS45MjQ5OTk5NTIzMTYyODQyLCAwLCAxLjI1LAorICAgICAgICAxLjg5OTk5OTk3NjE1ODE0MiwgMCwgMSwgMiwgMCwgMSwgMS45NzUwMDAwMjM4NDE4NTgsIDAsCisgICAgICAgIDEsIDEuOTUwMDAwMDQ3NjgzNzE1OCwgMCwgMSwgMS45MjQ5OTk5NTIzMTYyODQyLCAwLCAxLCAxLjg5OTk5OTk3NjE1ODE0MiwKKyAgICAgICAgMCwgMSwgMiwgMCwgMC43NSwgMiwgMCwgMC43NSwKKyAgICAgICAgMS45NzUwMDAwMjM4NDE4NTgsIDAsIDEsIDEuOTc1MDAwMDIzODQxODU4LCAwLCAwLjc1LCAxLjk1MDAwMDA0NzY4MzcxNTgsIDAsCisgICAgICAgIDEsIDEuOTUwMDAwMDQ3NjgzNzE1OCwgMCwgMC43NSwgMS45MjQ5OTk5NTIzMTYyODQyLCAwLCAxLCAxLjkyNDk5OTk1MjMxNjI4NDIsCisgICAgICAgIDAsIDAuNzUsIDEuODk5OTk5OTc2MTU4MTQyLCAwLCAxLCAxLjg5OTk5OTk3NjE1ODE0MiwgMCwgMC41LAorICAgICAgICAyLCAwLCAwLjUsIDEuOTc1MDAwMDIzODQxODU4LCAwLCAwLjUsIDEuOTUwMDAwMDQ3NjgzNzE1OCwgMCwKKyAgICAgICAgMC41LCAxLjkyNDk5OTk1MjMxNjI4NDIsIDAsIDAuNSwgMS44OTk5OTk5NzYxNTgxNDIsIDAsIDAuMjUsIDIsCisgICAgICAgIDAsIDAuMjUsIDEuOTc1MDAwMDIzODQxODU4LCAwLCAwLjI1LCAxLjk1MDAwMDA0NzY4MzcxNTgsIDAsIDAuMjUsCisgICAgICAgIDEuOTI0OTk5OTUyMzE2Mjg0MiwgMCwgMC4yNSwgMS44OTk5OTk5NzYxNTgxNDIsIDAsIDAsIDIsIDAsCisgICAgICAgIDAsIDEuOTc1MDAwMDIzODQxODU4LCAwLCAwLCAxLjk1MDAwMDA0NzY4MzcxNTgsIDAsIDAsIDEuOTI0OTk5OTUyMzE2Mjg0MiwKKyAgICAgICAgMCwgMCwgMS44OTk5OTk5NzYxNTgxNDIsIDAsIDIsIDEuODk5OTk5OTc2MTU4MTQyLCAwLCAxLjc1LAorICAgICAgICAxLjg5OTk5OTk3NjE1ODE0MiwgMCwgMS43NSwgMS42NzQ5OTk5NTIzMTYyODQyLCAwLCAyLCAxLjY3NDk5OTk1MjMxNjI4NDIsIDAsCisgICAgICAgIDEuNzUsIDEuNDUwMDAwMDQ3NjgzNzE1OCwgMCwgMiwgMS40NTAwMDAwNDc2ODM3MTU4LCAwLCAxLjc1LCAxLjIyNTAwMDAyMzg0MTg1OCwKKyAgICAgICAgMCwgMiwgMS4yMjUwMDAwMjM4NDE4NTgsIDAsIDEuNzUsIDEsIDAsIDIsCisgICAgICAgIDEsIDAsIDEuNSwgMS44OTk5OTk5NzYxNTgxNDIsIDAsIDEuNSwgMS42NzQ5OTk5NTIzMTYyODQyLCAwLAorICAgICAgICAxLjUsIDEuNDUwMDAwMDQ3NjgzNzE1OCwgMCwgMS41LCAxLjIyNTAwMDAyMzg0MTg1OCwgMCwgMS41LCAxLAorICAgICAgICAwLCAxLjI1LCAxLjg5OTk5OTk3NjE1ODE0MiwgMCwgMS4yNSwgMS42NzQ5OTk5NTIzMTYyODQyLCAwLCAxLjI1LAorICAgICAgICAxLjQ1MDAwMDA0NzY4MzcxNTgsIDAsIDEuMjUsIDEuMjI1MDAwMDIzODQxODU4LCAwLCAxLjI1LCAxLCAwLAorICAgICAgICAxLCAxLjg5OTk5OTk3NjE1ODE0MiwgMCwgMSwgMS42NzQ5OTk5NTIzMTYyODQyLCAwLCAxLCAxLjQ1MDAwMDA0NzY4MzcxNTgsCisgICAgICAgIDAsIDEsIDEuMjI1MDAwMDIzODQxODU4LCAwLCAxLCAxLCAwLCAxLAorICAgICAgICAxLjg5OTk5OTk3NjE1ODE0MiwgMCwgMC43NSwgMS44OTk5OTk5NzYxNTgxNDIsIDAsIDAuNzUsIDEuNjc0OTk5OTUyMzE2Mjg0MiwgMCwKKyAgICAgICAgMSwgMS42NzQ5OTk5NTIzMTYyODQyLCAwLCAwLjc1LCAxLjQ1MDAwMDA0NzY4MzcxNTgsIDAsIDEsIDEuNDUwMDAwMDQ3NjgzNzE1OCwKKyAgICAgICAgMCwgMC43NSwgMS4yMjUwMDAwMjM4NDE4NTgsIDAsIDEsIDEuMjI1MDAwMDIzODQxODU4LCAwLCAwLjc1LAorICAgICAgICAxLCAwLCAxLCAxLCAwLCAwLjUsIDEuODk5OTk5OTc2MTU4MTQyLCAwLAorICAgICAgICAwLjUsIDEuNjc0OTk5OTUyMzE2Mjg0MiwgMCwgMC41LCAxLjQ1MDAwMDA0NzY4MzcxNTgsIDAsIDAuNSwgMS4yMjUwMDAwMjM4NDE4NTgsCisgICAgICAgIDAsIDAuNSwgMSwgMCwgMC4yNSwgMS44OTk5OTk5NzYxNTgxNDIsIDAsIDAuMjUsCisgICAgICAgIDEuNjc0OTk5OTUyMzE2Mjg0MiwgMCwgMC4yNSwgMS40NTAwMDAwNDc2ODM3MTU4LCAwLCAwLjI1LCAxLjIyNTAwMDAyMzg0MTg1OCwgMCwKKyAgICAgICAgMC4yNSwgMSwgMCwgMCwgMS44OTk5OTk5NzYxNTgxNDIsIDAsIDAsIDEuNjc0OTk5OTUyMzE2Mjg0MiwKKyAgICAgICAgMCwgMCwgMS40NTAwMDAwNDc2ODM3MTU4LCAwLCAwLCAxLjIyNTAwMDAyMzg0MTg1OCwgMCwgMCwKKyAgICAgICAgMSwgMCwgMiwgMS44OTk5OTk5NzYxNTgxNDIsIDAsIDEuNzUsIDEuODk5OTk5OTc2MTU4MTQyLCAwLAorICAgICAgICAxLjc1LCAxLjY3NDk5OTk1MjMxNjI4NDIsIDAsIDIsIDEuNjc0OTk5OTUyMzE2Mjg0MiwgMCwgMS43NSwgMS40NTAwMDAwNDc2ODM3MTU4LAorICAgICAgICAwLCAyLCAxLjQ1MDAwMDA0NzY4MzcxNTgsIDAsIDEuNzUsIDEuMjI1MDAwMDIzODQxODU4LCAwLCAyLAorICAgICAgICAxLjIyNTAwMDAyMzg0MTg1OCwgMCwgMS43NSwgMSwgMCwgMiwgMSwgMCwKKyAgICAgICAgMS41LCAxLjg5OTk5OTk3NjE1ODE0MiwgMCwgMS41LCAxLjY3NDk5OTk1MjMxNjI4NDIsIDAsIDEuNSwgMS40NTAwMDAwNDc2ODM3MTU4LAorICAgICAgICAwLCAxLjUsIDEuMjI1MDAwMDIzODQxODU4LCAwLCAxLjUsIDEsIDAsIDEuMjUsCisgICAgICAgIDEuODk5OTk5OTc2MTU4MTQyLCAwLCAxLjI1LCAxLjY3NDk5OTk1MjMxNjI4NDIsIDAsIDEuMjUsIDEuNDUwMDAwMDQ3NjgzNzE1OCwgMCwKKyAgICAgICAgMS4yNSwgMS4yMjUwMDAwMjM4NDE4NTgsIDAsIDEuMjUsIDEsIDAsIDEsIDEuODk5OTk5OTc2MTU4MTQyLAorICAgICAgICAwLCAxLCAxLjY3NDk5OTk1MjMxNjI4NDIsIDAsIDEsIDEuNDUwMDAwMDQ3NjgzNzE1OCwgMCwgMSwKKyAgICAgICAgMS4yMjUwMDAwMjM4NDE4NTgsIDAsIDEsIDEsIDAsIDEsIDEuODk5OTk5OTc2MTU4MTQyLCAwLAorICAgICAgICAwLjc1LCAxLjg5OTk5OTk3NjE1ODE0MiwgMCwgMC43NSwgMS42NzQ5OTk5NTIzMTYyODQyLCAwLCAxLCAxLjY3NDk5OTk1MjMxNjI4NDIsCisgICAgICAgIDAsIDAuNzUsIDEuNDUwMDAwMDQ3NjgzNzE1OCwgMCwgMSwgMS40NTAwMDAwNDc2ODM3MTU4LCAwLCAwLjc1LAorICAgICAgICAxLjIyNTAwMDAyMzg0MTg1OCwgMCwgMSwgMS4yMjUwMDAwMjM4NDE4NTgsIDAsIDAuNzUsIDEsIDAsCisgICAgICAgIDEsIDEsIDAsIDAuNSwgMS44OTk5OTk5NzYxNTgxNDIsIDAsIDAuNSwgMS42NzQ5OTk5NTIzMTYyODQyLAorICAgICAgICAwLCAwLjUsIDEuNDUwMDAwMDQ3NjgzNzE1OCwgMCwgMC41LCAxLjIyNTAwMDAyMzg0MTg1OCwgMCwgMC41LAorICAgICAgICAxLCAwLCAwLjI1LCAxLjg5OTk5OTk3NjE1ODE0MiwgMCwgMC4yNSwgMS42NzQ5OTk5NTIzMTYyODQyLCAwLAorICAgICAgICAwLjI1LCAxLjQ1MDAwMDA0NzY4MzcxNTgsIDAsIDAuMjUsIDEuMjI1MDAwMDIzODQxODU4LCAwLCAwLjI1LCAxLAorICAgICAgICAwLCAwLCAxLjg5OTk5OTk3NjE1ODE0MiwgMCwgMCwgMS42NzQ5OTk5NTIzMTYyODQyLCAwLCAwLAorICAgICAgICAxLjQ1MDAwMDA0NzY4MzcxNTgsIDAsIDAsIDEuMjI1MDAwMDIzODQxODU4LCAwLCAwLCAxLCAwLAorICAgICAgICAyLCAxLCAwLCAxLjc1LCAxLCAwLCAxLjc1LCAwLjg1MDAwMDAyMzg0MTg1NzksCisgICAgICAgIDAsIDIsIDAuODUwMDAwMDIzODQxODU3OSwgMCwgMS43NSwgMC42OTk5OTk5ODgwNzkwNzEsIDAsIDIsCisgICAgICAgIDAuNjk5OTk5OTg4MDc5MDcxLCAwLCAxLjc1LCAwLjU1MDAwMDAxMTkyMDkyOSwgMCwgMiwgMC41NTAwMDAwMTE5MjA5MjksIDAsCisgICAgICAgIDEuNzUsIDAuNDAwMDAwMDA1OTYwNDY0NSwgMCwgMiwgMC40MDAwMDAwMDU5NjA0NjQ1LCAwLCAxLjUsIDEsCisgICAgICAgIDAsIDEuNSwgMC44NTAwMDAwMjM4NDE4NTc5LCAwLCAxLjUsIDAuNjk5OTk5OTg4MDc5MDcxLCAwLCAxLjUsCisgICAgICAgIDAuNTUwMDAwMDExOTIwOTI5LCAwLCAxLjUsIDAuNDAwMDAwMDA1OTYwNDY0NSwgMCwgMS4yNSwgMSwgMCwKKyAgICAgICAgMS4yNSwgMC44NTAwMDAwMjM4NDE4NTc5LCAwLCAxLjI1LCAwLjY5OTk5OTk4ODA3OTA3MSwgMCwgMS4yNSwgMC41NTAwMDAwMTE5MjA5MjksCisgICAgICAgIDAsIDEuMjUsIDAuNDAwMDAwMDA1OTYwNDY0NSwgMCwgMSwgMSwgMCwgMSwKKyAgICAgICAgMC44NTAwMDAwMjM4NDE4NTc5LCAwLCAxLCAwLjY5OTk5OTk4ODA3OTA3MSwgMCwgMSwgMC41NTAwMDAwMTE5MjA5MjksIDAsCisgICAgICAgIDEsIDAuNDAwMDAwMDA1OTYwNDY0NSwgMCwgMSwgMSwgMCwgMC43NSwgMSwKKyAgICAgICAgMCwgMC43NSwgMC44NTAwMDAwMjM4NDE4NTc5LCAwLCAxLCAwLjg1MDAwMDAyMzg0MTg1NzksIDAsIDAuNzUsCisgICAgICAgIDAuNjk5OTk5OTg4MDc5MDcxLCAwLCAxLCAwLjY5OTk5OTk4ODA3OTA3MSwgMCwgMC43NSwgMC41NTAwMDAwMTE5MjA5MjksIDAsCisgICAgICAgIDEsIDAuNTUwMDAwMDExOTIwOTI5LCAwLCAwLjc1LCAwLjQwMDAwMDAwNTk2MDQ2NDUsIDAsIDEsIDAuNDAwMDAwMDA1OTYwNDY0NSwKKyAgICAgICAgMCwgMC41LCAxLCAwLCAwLjUsIDAuODUwMDAwMDIzODQxODU3OSwgMCwgMC41LAorICAgICAgICAwLjY5OTk5OTk4ODA3OTA3MSwgMCwgMC41LCAwLjU1MDAwMDAxMTkyMDkyOSwgMCwgMC41LCAwLjQwMDAwMDAwNTk2MDQ2NDUsIDAsCisgICAgICAgIDAuMjUsIDEsIDAsIDAuMjUsIDAuODUwMDAwMDIzODQxODU3OSwgMCwgMC4yNSwgMC42OTk5OTk5ODgwNzkwNzEsCisgICAgICAgIDAsIDAuMjUsIDAuNTUwMDAwMDExOTIwOTI5LCAwLCAwLjI1LCAwLjQwMDAwMDAwNTk2MDQ2NDUsIDAsIDAsCisgICAgICAgIDEsIDAsIDAsIDAuODUwMDAwMDIzODQxODU3OSwgMCwgMCwgMC42OTk5OTk5ODgwNzkwNzEsIDAsCisgICAgICAgIDAsIDAuNTUwMDAwMDExOTIwOTI5LCAwLCAwLCAwLjQwMDAwMDAwNTk2MDQ2NDUsIDAsIDIsIDEsCisgICAgICAgIDAsIDEuNzUsIDEsIDAsIDEuNzUsIDAuODUwMDAwMDIzODQxODU3OSwgMCwgMiwKKyAgICAgICAgMC44NTAwMDAwMjM4NDE4NTc5LCAwLCAxLjc1LCAwLjY5OTk5OTk4ODA3OTA3MSwgMCwgMiwgMC42OTk5OTk5ODgwNzkwNzEsIDAsCisgICAgICAgIDEuNzUsIDAuNTUwMDAwMDExOTIwOTI5LCAwLCAyLCAwLjU1MDAwMDAxMTkyMDkyOSwgMCwgMS43NSwgMC40MDAwMDAwMDU5NjA0NjQ1LAorICAgICAgICAwLCAyLCAwLjQwMDAwMDAwNTk2MDQ2NDUsIDAsIDEuNSwgMSwgMCwgMS41LAorICAgICAgICAwLjg1MDAwMDAyMzg0MTg1NzksIDAsIDEuNSwgMC42OTk5OTk5ODgwNzkwNzEsIDAsIDEuNSwgMC41NTAwMDAwMTE5MjA5MjksIDAsCisgICAgICAgIDEuNSwgMC40MDAwMDAwMDU5NjA0NjQ1LCAwLCAxLjI1LCAxLCAwLCAxLjI1LCAwLjg1MDAwMDAyMzg0MTg1NzksCisgICAgICAgIDAsIDEuMjUsIDAuNjk5OTk5OTg4MDc5MDcxLCAwLCAxLjI1LCAwLjU1MDAwMDAxMTkyMDkyOSwgMCwgMS4yNSwKKyAgICAgICAgMC40MDAwMDAwMDU5NjA0NjQ1LCAwLCAxLCAxLCAwLCAxLCAwLjg1MDAwMDAyMzg0MTg1NzksIDAsCisgICAgICAgIDEsIDAuNjk5OTk5OTg4MDc5MDcxLCAwLCAxLCAwLjU1MDAwMDAxMTkyMDkyOSwgMCwgMSwgMC40MDAwMDAwMDU5NjA0NjQ1LAorICAgICAgICAwLCAxLCAxLCAwLCAwLjc1LCAxLCAwLCAwLjc1LAorICAgICAgICAwLjg1MDAwMDAyMzg0MTg1NzksIDAsIDEsIDAuODUwMDAwMDIzODQxODU3OSwgMCwgMC43NSwgMC42OTk5OTk5ODgwNzkwNzEsIDAsCisgICAgICAgIDEsIDAuNjk5OTk5OTg4MDc5MDcxLCAwLCAwLjc1LCAwLjU1MDAwMDAxMTkyMDkyOSwgMCwgMSwgMC41NTAwMDAwMTE5MjA5MjksCisgICAgICAgIDAsIDAuNzUsIDAuNDAwMDAwMDA1OTYwNDY0NSwgMCwgMSwgMC40MDAwMDAwMDU5NjA0NjQ1LCAwLCAwLjUsCisgICAgICAgIDEsIDAsIDAuNSwgMC44NTAwMDAwMjM4NDE4NTc5LCAwLCAwLjUsIDAuNjk5OTk5OTg4MDc5MDcxLCAwLAorICAgICAgICAwLjUsIDAuNTUwMDAwMDExOTIwOTI5LCAwLCAwLjUsIDAuNDAwMDAwMDA1OTYwNDY0NSwgMCwgMC4yNSwgMSwKKyAgICAgICAgMCwgMC4yNSwgMC44NTAwMDAwMjM4NDE4NTc5LCAwLCAwLjI1LCAwLjY5OTk5OTk4ODA3OTA3MSwgMCwgMC4yNSwKKyAgICAgICAgMC41NTAwMDAwMTE5MjA5MjksIDAsIDAuMjUsIDAuNDAwMDAwMDA1OTYwNDY0NSwgMCwgMCwgMSwgMCwKKyAgICAgICAgMCwgMC44NTAwMDAwMjM4NDE4NTc5LCAwLCAwLCAwLjY5OTk5OTk4ODA3OTA3MSwgMCwgMCwgMC41NTAwMDAwMTE5MjA5MjksCisgICAgICAgIDAsIDAsIDAuNDAwMDAwMDA1OTYwNDY0NSwgMCwgMiwgMC40MDAwMDAwMDU5NjA0NjQ1LCAwLCAxLjc1LAorICAgICAgICAwLjQwMDAwMDAwNTk2MDQ2NDUsIDAsIDEuNzUsIDAuMzAwMDAwMDExOTIwOTI4OTYsIDAsIDIsIDAuMzAwMDAwMDExOTIwOTI4OTYsIDAsCisgICAgICAgIDEuNzUsIDAuMjAwMDAwMDAyOTgwMjMyMjQsIDAsIDIsIDAuMjAwMDAwMDAyOTgwMjMyMjQsIDAsIDEuNzUsIDAuMTAwMDAwMDAxNDkwMTE2MTIsCisgICAgICAgIDAsIDIsIDAuMTAwMDAwMDAxNDkwMTE2MTIsIDAsIDEuNzUsIDAsIDAsIDIsCisgICAgICAgIDAsIDAsIDEuNSwgMC40MDAwMDAwMDU5NjA0NjQ1LCAwLCAxLjUsIDAuMzAwMDAwMDExOTIwOTI4OTYsIDAsCisgICAgICAgIDEuNSwgMC4yMDAwMDAwMDI5ODAyMzIyNCwgMCwgMS41LCAwLjEwMDAwMDAwMTQ5MDExNjEyLCAwLCAxLjUsIDAsCisgICAgICAgIDAsIDEuMjUsIDAuNDAwMDAwMDA1OTYwNDY0NSwgMCwgMS4yNSwgMC4zMDAwMDAwMTE5MjA5Mjg5NiwgMCwgMS4yNSwKKyAgICAgICAgMC4yMDAwMDAwMDI5ODAyMzIyNCwgMCwgMS4yNSwgMC4xMDAwMDAwMDE0OTAxMTYxMiwgMCwgMS4yNSwgMCwgMCwKKyAgICAgICAgMSwgMC40MDAwMDAwMDU5NjA0NjQ1LCAwLCAxLCAwLjMwMDAwMDAxMTkyMDkyODk2LCAwLCAxLCAwLjIwMDAwMDAwMjk4MDIzMjI0LAorICAgICAgICAwLCAxLCAwLjEwMDAwMDAwMTQ5MDExNjEyLCAwLCAxLCAwLCAwLCAxLAorICAgICAgICAwLjQwMDAwMDAwNTk2MDQ2NDUsIDAsIDAuNzUsIDAuNDAwMDAwMDA1OTYwNDY0NSwgMCwgMC43NSwgMC4zMDAwMDAwMTE5MjA5Mjg5NiwgMCwKKyAgICAgICAgMSwgMC4zMDAwMDAwMTE5MjA5Mjg5NiwgMCwgMC43NSwgMC4yMDAwMDAwMDI5ODAyMzIyNCwgMCwgMSwgMC4yMDAwMDAwMDI5ODAyMzIyNCwKKyAgICAgICAgMCwgMC43NSwgMC4xMDAwMDAwMDE0OTAxMTYxMiwgMCwgMSwgMC4xMDAwMDAwMDE0OTAxMTYxMiwgMCwgMC43NSwKKyAgICAgICAgMCwgMCwgMSwgMCwgMCwgMC41LCAwLjQwMDAwMDAwNTk2MDQ2NDUsIDAsCisgICAgICAgIDAuNSwgMC4zMDAwMDAwMTE5MjA5Mjg5NiwgMCwgMC41LCAwLjIwMDAwMDAwMjk4MDIzMjI0LCAwLCAwLjUsIDAuMTAwMDAwMDAxNDkwMTE2MTIsCisgICAgICAgIDAsIDAuNSwgMCwgMCwgMC4yNSwgMC40MDAwMDAwMDU5NjA0NjQ1LCAwLCAwLjI1LAorICAgICAgICAwLjMwMDAwMDAxMTkyMDkyODk2LCAwLCAwLjI1LCAwLjIwMDAwMDAwMjk4MDIzMjI0LCAwLCAwLjI1LCAwLjEwMDAwMDAwMTQ5MDExNjEyLCAwLAorICAgICAgICAwLjI1LCAwLCAwLCAwLCAwLjQwMDAwMDAwNTk2MDQ2NDUsIDAsIDAsIDAuMzAwMDAwMDExOTIwOTI4OTYsCisgICAgICAgIDAsIDAsIDAuMjAwMDAwMDAyOTgwMjMyMjQsIDAsIDAsIDAuMTAwMDAwMDAxNDkwMTE2MTIsIDAsIDAsCisgICAgICAgIDAsIDAsIDIsIDAuNDAwMDAwMDA1OTYwNDY0NSwgMCwgMS43NSwgMC40MDAwMDAwMDU5NjA0NjQ1LCAwLAorICAgICAgICAxLjc1LCAwLjMwMDAwMDAxMTkyMDkyODk2LCAwLCAyLCAwLjMwMDAwMDAxMTkyMDkyODk2LCAwLCAxLjc1LCAwLjIwMDAwMDAwMjk4MDIzMjI0LAorICAgICAgICAwLCAyLCAwLjIwMDAwMDAwMjk4MDIzMjI0LCAwLCAxLjc1LCAwLjEwMDAwMDAwMTQ5MDExNjEyLCAwLCAyLAorICAgICAgICAwLjEwMDAwMDAwMTQ5MDExNjEyLCAwLCAxLjc1LCAwLCAwLCAyLCAwLCAwLAorICAgICAgICAxLjUsIDAuNDAwMDAwMDA1OTYwNDY0NSwgMCwgMS41LCAwLjMwMDAwMDAxMTkyMDkyODk2LCAwLCAxLjUsIDAuMjAwMDAwMDAyOTgwMjMyMjQsCisgICAgICAgIDAsIDEuNSwgMC4xMDAwMDAwMDE0OTAxMTYxMiwgMCwgMS41LCAwLCAwLCAxLjI1LAorICAgICAgICAwLjQwMDAwMDAwNTk2MDQ2NDUsIDAsIDEuMjUsIDAuMzAwMDAwMDExOTIwOTI4OTYsIDAsIDEuMjUsIDAuMjAwMDAwMDAyOTgwMjMyMjQsIDAsCisgICAgICAgIDEuMjUsIDAuMTAwMDAwMDAxNDkwMTE2MTIsIDAsIDEuMjUsIDAsIDAsIDEsIDAuNDAwMDAwMDA1OTYwNDY0NSwKKyAgICAgICAgMCwgMSwgMC4zMDAwMDAwMTE5MjA5Mjg5NiwgMCwgMSwgMC4yMDAwMDAwMDI5ODAyMzIyNCwgMCwgMSwKKyAgICAgICAgMC4xMDAwMDAwMDE0OTAxMTYxMiwgMCwgMSwgMCwgMCwgMSwgMC40MDAwMDAwMDU5NjA0NjQ1LCAwLAorICAgICAgICAwLjc1LCAwLjQwMDAwMDAwNTk2MDQ2NDUsIDAsIDAuNzUsIDAuMzAwMDAwMDExOTIwOTI4OTYsIDAsIDEsIDAuMzAwMDAwMDExOTIwOTI4OTYsCisgICAgICAgIDAsIDAuNzUsIDAuMjAwMDAwMDAyOTgwMjMyMjQsIDAsIDEsIDAuMjAwMDAwMDAyOTgwMjMyMjQsIDAsIDAuNzUsCisgICAgICAgIDAuMTAwMDAwMDAxNDkwMTE2MTIsIDAsIDEsIDAuMTAwMDAwMDAxNDkwMTE2MTIsIDAsIDAuNzUsIDAsIDAsCisgICAgICAgIDEsIDAsIDAsIDAuNSwgMC40MDAwMDAwMDU5NjA0NjQ1LCAwLCAwLjUsIDAuMzAwMDAwMDExOTIwOTI4OTYsCisgICAgICAgIDAsIDAuNSwgMC4yMDAwMDAwMDI5ODAyMzIyNCwgMCwgMC41LCAwLjEwMDAwMDAwMTQ5MDExNjEyLCAwLCAwLjUsCisgICAgICAgIDAsIDAsIDAuMjUsIDAuNDAwMDAwMDA1OTYwNDY0NSwgMCwgMC4yNSwgMC4zMDAwMDAwMTE5MjA5Mjg5NiwgMCwKKyAgICAgICAgMC4yNSwgMC4yMDAwMDAwMDI5ODAyMzIyNCwgMCwgMC4yNSwgMC4xMDAwMDAwMDE0OTAxMTYxMiwgMCwgMC4yNSwgMCwKKyAgICAgICAgMCwgMCwgMC40MDAwMDAwMDU5NjA0NjQ1LCAwLCAwLCAwLjMwMDAwMDAxMTkyMDkyODk2LCAwLCAwLAorICAgICAgICAwLjIwMDAwMDAwMjk4MDIzMjI0LCAwLCAwLCAwLjEwMDAwMDAwMTQ5MDExNjEyLCAwLCAwLCAwLCAwLAorICAgICAgICAxLCAxLCAwLCAwLjg3NSwgMSwgMCwgMC44NzUsIDAuODc1LAorICAgICAgICAwLCAxLCAwLjg3NSwgMCwgMC44NzUsIDAuNzUsIDAsIDEsCisgICAgICAgIDAuNzUsIDAsIDAuODc1LCAwLjYyNSwgMCwgMSwgMC42MjUsIDAsCisgICAgICAgIDAuODc1LCAwLjUsIDAsIDEsIDAuNSwgMCwgMC43NSwgMSwKKyAgICAgICAgMCwgMC43NSwgMC44NzUsIDAsIDAuNzUsIDAuNzUsIDAsIDAuNzUsCisgICAgICAgIDAuNjI1LCAwLCAwLjc1LCAwLjUsIDAsIDAuNjI1LCAxLCAwLAorICAgICAgICAwLjYyNSwgMC44NzUsIDAsIDAuNjI1LCAwLjc1LCAwLCAwLjYyNSwgMC42MjUsCisgICAgICAgIDAsIDAuNjI1LCAwLjUsIDAsIDAuNSwgMSwgMCwgMC41LAorICAgICAgICAwLjg3NSwgMCwgMC41LCAwLjc1LCAwLCAwLjUsIDAuNjI1LCAwLAorICAgICAgICAwLjUsIDAuNSwgMCwgMC41LCAxLCAwLCAwLjM3NSwgMSwKKyAgICAgICAgMCwgMC4zNzUsIDAuODc1LCAwLCAwLjUsIDAuODc1LCAwLCAwLjM3NSwKKyAgICAgICAgMC43NSwgMCwgMC41LCAwLjc1LCAwLCAwLjM3NSwgMC42MjUsIDAsCisgICAgICAgIDAuNSwgMC42MjUsIDAsIDAuMzc1LCAwLjUsIDAsIDAuNSwgMC41LAorICAgICAgICAwLCAwLjI1LCAxLCAwLCAwLjI1LCAwLjg3NSwgMCwgMC4yNSwKKyAgICAgICAgMC43NSwgMCwgMC4yNSwgMC42MjUsIDAsIDAuMjUsIDAuNSwgMCwKKyAgICAgICAgMC4xMjUsIDEsIDAsIDAuMTI1LCAwLjg3NSwgMCwgMC4xMjUsIDAuNzUsCisgICAgICAgIDAsIDAuMTI1LCAwLjYyNSwgMCwgMC4xMjUsIDAuNSwgMCwgMCwKKyAgICAgICAgMSwgMCwgMCwgMC44NzUsIDAsIDAsIDAuNzUsIDAsCisgICAgICAgIDAsIDAuNjI1LCAwLCAwLCAwLjUsIDAsIDEsIDAuNSwKKyAgICAgICAgMCwgMC44NzUsIDAuNSwgMCwgMC44NzUsIDAuMzc1LCAwLCAxLAorICAgICAgICAwLjM3NSwgMCwgMC44NzUsIDAuMjUsIDAsIDEsIDAuMjUsIDAsCisgICAgICAgIDAuODc1LCAwLjEyNSwgMCwgMSwgMC4xMjUsIDAsIDAuODc1LCAwLAorICAgICAgICAwLCAxLCAwLCAwLCAwLjc1LCAwLjUsIDAsIDAuNzUsCisgICAgICAgIDAuMzc1LCAwLCAwLjc1LCAwLjI1LCAwLCAwLjc1LCAwLjEyNSwgMCwKKyAgICAgICAgMC43NSwgMCwgMCwgMC42MjUsIDAuNSwgMCwgMC42MjUsIDAuMzc1LAorICAgICAgICAwLCAwLjYyNSwgMC4yNSwgMCwgMC42MjUsIDAuMTI1LCAwLCAwLjYyNSwKKyAgICAgICAgMCwgMCwgMC41LCAwLjUsIDAsIDAuNSwgMC4zNzUsIDAsCisgICAgICAgIDAuNSwgMC4yNSwgMCwgMC41LCAwLjEyNSwgMCwgMC41LCAwLAorICAgICAgICAwLCAwLjUsIDAuNSwgMCwgMC4zNzUsIDAuNSwgMCwgMC4zNzUsCisgICAgICAgIDAuMzc1LCAwLCAwLjUsIDAuMzc1LCAwLCAwLjM3NSwgMC4yNSwgMCwKKyAgICAgICAgMC41LCAwLjI1LCAwLCAwLjM3NSwgMC4xMjUsIDAsIDAuNSwgMC4xMjUsCisgICAgICAgIDAsIDAuMzc1LCAwLCAwLCAwLjUsIDAsIDAsIDAuMjUsCisgICAgICAgIDAuNSwgMCwgMC4yNSwgMC4zNzUsIDAsIDAuMjUsIDAuMjUsIDAsCisgICAgICAgIDAuMjUsIDAuMTI1LCAwLCAwLjI1LCAwLCAwLCAwLjEyNSwgMC41LAorICAgICAgICAwLCAwLjEyNSwgMC4zNzUsIDAsIDAuMTI1LCAwLjI1LCAwLCAwLjEyNSwKKyAgICAgICAgMC4xMjUsIDAsIDAuMTI1LCAwLCAwLCAwLCAwLjUsIDAsCisgICAgICAgIDAsIDAuMzc1LCAwLCAwLCAwLjI1LCAwLCAwLCAwLjEyNSwKKyAgICAgICAgMCwgMCwgMCwgMCwgMC41LCAwLCAwLCAwLjYyNSwKKyAgICAgICAgMCwgMCwgMC42MjUsIDAuMjI0OTk5OTk0MDM5NTM1NTIsIDAsIDAuNSwgMC4yMjQ5OTk5OTQwMzk1MzU1MiwgMCwKKyAgICAgICAgMC42MjUsIDAuNDQ5OTk5OTg4MDc5MDcxMDQsIDAsIDAuNSwgMC40NDk5OTk5ODgwNzkwNzEwNCwgMCwgMC42MjUsIDAuNjc1MDAwMDExOTIwOTI5LAorICAgICAgICAwLCAwLjUsIDAuNjc1MDAwMDExOTIwOTI5LCAwLCAwLjYyNSwgMC44OTk5OTk5NzYxNTgxNDIxLCAwLCAwLjUsCisgICAgICAgIDAuODk5OTk5OTc2MTU4MTQyMSwgMCwgMC43NSwgMCwgMCwgMC43NSwgMC4yMjQ5OTk5OTQwMzk1MzU1MiwgMCwKKyAgICAgICAgMC43NSwgMC40NDk5OTk5ODgwNzkwNzEwNCwgMCwgMC43NSwgMC42NzUwMDAwMTE5MjA5MjksIDAsIDAuNzUsIDAuODk5OTk5OTc2MTU4MTQyMSwKKyAgICAgICAgMCwgMC44NzUsIDAsIDAsIDAuODc1LCAwLjIyNDk5OTk5NDAzOTUzNTUyLCAwLCAwLjg3NSwKKyAgICAgICAgMC40NDk5OTk5ODgwNzkwNzEwNCwgMCwgMC44NzUsIDAuNjc1MDAwMDExOTIwOTI5LCAwLCAwLjg3NSwgMC44OTk5OTk5NzYxNTgxNDIxLCAwLAorICAgICAgICAxLCAwLCAwLCAxLCAwLjIyNDk5OTk5NDAzOTUzNTUyLCAwLCAxLCAwLjQ0OTk5OTk4ODA3OTA3MTA0LAorICAgICAgICAwLCAxLCAwLjY3NTAwMDAxMTkyMDkyOSwgMCwgMSwgMC44OTk5OTk5NzYxNTgxNDIxLCAwLCAwLAorICAgICAgICAwLCAwLCAwLjEyNSwgMCwgMCwgMC4xMjUsIDAuMjI0OTk5OTk0MDM5NTM1NTIsIDAsCisgICAgICAgIDAsIDAuMjI0OTk5OTk0MDM5NTM1NTIsIDAsIDAuMTI1LCAwLjQ0OTk5OTk4ODA3OTA3MTA0LCAwLCAwLCAwLjQ0OTk5OTk4ODA3OTA3MTA0LAorICAgICAgICAwLCAwLjEyNSwgMC42NzUwMDAwMTE5MjA5MjksIDAsIDAsIDAuNjc1MDAwMDExOTIwOTI5LCAwLCAwLjEyNSwKKyAgICAgICAgMC44OTk5OTk5NzYxNTgxNDIxLCAwLCAwLCAwLjg5OTk5OTk3NjE1ODE0MjEsIDAsIDAuMjUsIDAsIDAsCisgICAgICAgIDAuMjUsIDAuMjI0OTk5OTk0MDM5NTM1NTIsIDAsIDAuMjUsIDAuNDQ5OTk5OTg4MDc5MDcxMDQsIDAsIDAuMjUsIDAuNjc1MDAwMDExOTIwOTI5LAorICAgICAgICAwLCAwLjI1LCAwLjg5OTk5OTk3NjE1ODE0MjEsIDAsIDAuMzc1LCAwLCAwLCAwLjM3NSwKKyAgICAgICAgMC4yMjQ5OTk5OTQwMzk1MzU1MiwgMCwgMC4zNzUsIDAuNDQ5OTk5OTg4MDc5MDcxMDQsIDAsIDAuMzc1LCAwLjY3NTAwMDAxMTkyMDkyOSwgMCwKKyAgICAgICAgMC4zNzUsIDAuODk5OTk5OTc2MTU4MTQyMSwgMCwgMC41LCAwLCAwLCAwLjUsIDAuMjI0OTk5OTk0MDM5NTM1NTIsCisgICAgICAgIDAsIDAuNSwgMC40NDk5OTk5ODgwNzkwNzEwNCwgMCwgMC41LCAwLjY3NTAwMDAxMTkyMDkyOSwgMCwgMC41LAorICAgICAgICAwLjg5OTk5OTk3NjE1ODE0MjEsIDAsIDAuNSwgMC44OTk5OTk5NzYxNTgxNDIxLCAwLCAwLjYyNSwgMC44OTk5OTk5NzYxNTgxNDIxLCAwLAorICAgICAgICAwLjYyNSwgMC45MjUwMDAwMTE5MjA5MjksIDAsIDAuNSwgMC45MjUwMDAwMTE5MjA5MjksIDAsIDAuNjI1LCAwLjk0OTk5OTk4ODA3OTA3MSwKKyAgICAgICAgMCwgMC41LCAwLjk0OTk5OTk4ODA3OTA3MSwgMCwgMC42MjUsIDAuOTc1MDAwMDIzODQxODU3OSwgMCwgMC41LAorICAgICAgICAwLjk3NTAwMDAyMzg0MTg1NzksIDAsIDAuNjI1LCAxLCAwLCAwLjUsIDEsIDAsCisgICAgICAgIDAuNzUsIDAuODk5OTk5OTc2MTU4MTQyMSwgMCwgMC43NSwgMC45MjUwMDAwMTE5MjA5MjksIDAsIDAuNzUsIDAuOTQ5OTk5OTg4MDc5MDcxLAorICAgICAgICAwLCAwLjc1LCAwLjk3NTAwMDAyMzg0MTg1NzksIDAsIDAuNzUsIDEsIDAsIDAuODc1LAorICAgICAgICAwLjg5OTk5OTk3NjE1ODE0MjEsIDAsIDAuODc1LCAwLjkyNTAwMDAxMTkyMDkyOSwgMCwgMC44NzUsIDAuOTQ5OTk5OTg4MDc5MDcxLCAwLAorICAgICAgICAwLjg3NSwgMC45NzUwMDAwMjM4NDE4NTc5LCAwLCAwLjg3NSwgMSwgMCwgMSwgMC44OTk5OTk5NzYxNTgxNDIxLAorICAgICAgICAwLCAxLCAwLjkyNTAwMDAxMTkyMDkyOSwgMCwgMSwgMC45NDk5OTk5ODgwNzkwNzEsIDAsIDEsCisgICAgICAgIDAuOTc1MDAwMDIzODQxODU3OSwgMCwgMSwgMSwgMCwgMCwgMC44OTk5OTk5NzYxNTgxNDIxLCAwLAorICAgICAgICAwLjEyNSwgMC44OTk5OTk5NzYxNTgxNDIxLCAwLCAwLjEyNSwgMC45MjUwMDAwMTE5MjA5MjksIDAsIDAsIDAuOTI1MDAwMDExOTIwOTI5LAorICAgICAgICAwLCAwLjEyNSwgMC45NDk5OTk5ODgwNzkwNzEsIDAsIDAsIDAuOTQ5OTk5OTg4MDc5MDcxLCAwLCAwLjEyNSwKKyAgICAgICAgMC45NzUwMDAwMjM4NDE4NTc5LCAwLCAwLCAwLjk3NTAwMDAyMzg0MTg1NzksIDAsIDAuMTI1LCAxLCAwLAorICAgICAgICAwLCAxLCAwLCAwLjI1LCAwLjg5OTk5OTk3NjE1ODE0MjEsIDAsIDAuMjUsIDAuOTI1MDAwMDExOTIwOTI5LAorICAgICAgICAwLCAwLjI1LCAwLjk0OTk5OTk4ODA3OTA3MSwgMCwgMC4yNSwgMC45NzUwMDAwMjM4NDE4NTc5LCAwLCAwLjI1LAorICAgICAgICAxLCAwLCAwLjM3NSwgMC44OTk5OTk5NzYxNTgxNDIxLCAwLCAwLjM3NSwgMC45MjUwMDAwMTE5MjA5MjksIDAsCisgICAgICAgIDAuMzc1LCAwLjk0OTk5OTk4ODA3OTA3MSwgMCwgMC4zNzUsIDAuOTc1MDAwMDIzODQxODU3OSwgMCwgMC4zNzUsIDEsCisgICAgICAgIDAsIDAuNSwgMC44OTk5OTk5NzYxNTgxNDIxLCAwLCAwLjUsIDAuOTI1MDAwMDExOTIwOTI5LCAwLCAwLjUsCisgICAgICAgIDAuOTQ5OTk5OTg4MDc5MDcxLCAwLCAwLjUsIDAuOTc1MDAwMDIzODQxODU3OSwgMCwgMC41LCAxLCAwLAorICAgICAgICAxLCAxLCAwLCAwLjg3NSwgMSwgMCwgMC44NzUsIDAuNzUsCisgICAgICAgIDAsIDEsIDAuNzUsIDAsIDAuODc1LCAwLjUsIDAsIDEsCisgICAgICAgIDAuNSwgMCwgMC44NzUsIDAuMjUsIDAsIDEsIDAuMjUsIDAsCisgICAgICAgIDAuODc1LCAwLCAwLCAxLCAwLCAwLCAwLjc1LCAxLAorICAgICAgICAwLCAwLjc1LCAwLjc1LCAwLCAwLjc1LCAwLjUsIDAsIDAuNzUsCisgICAgICAgIDAuMjUsIDAsIDAuNzUsIDAsIDAsIDAuNjI1LCAxLCAwLAorICAgICAgICAwLjYyNSwgMC43NSwgMCwgMC42MjUsIDAuNSwgMCwgMC42MjUsIDAuMjUsCisgICAgICAgIDAsIDAuNjI1LCAwLCAwLCAwLjUsIDEsIDAsIDAuNSwKKyAgICAgICAgMC43NSwgMCwgMC41LCAwLjUsIDAsIDAuNSwgMC4yNSwgMCwKKyAgICAgICAgMC41LCAwLCAwLCAwLjUsIDEsIDAsIDAuMzc1LCAxLAorICAgICAgICAwLCAwLjM3NSwgMC43NSwgMCwgMC41LCAwLjc1LCAwLCAwLjM3NSwKKyAgICAgICAgMC41LCAwLCAwLjUsIDAuNSwgMCwgMC4zNzUsIDAuMjUsIDAsCisgICAgICAgIDAuNSwgMC4yNSwgMCwgMC4zNzUsIDAsIDAsIDAuNSwgMCwKKyAgICAgICAgMCwgMC4yNSwgMSwgMCwgMC4yNSwgMC43NSwgMCwgMC4yNSwKKyAgICAgICAgMC41LCAwLCAwLjI1LCAwLjI1LCAwLCAwLjI1LCAwLCAwLAorICAgICAgICAwLjEyNSwgMSwgMCwgMC4xMjUsIDAuNzUsIDAsIDAuMTI1LCAwLjUsCisgICAgICAgIDAsIDAuMTI1LCAwLjI1LCAwLCAwLjEyNSwgMCwgMCwgMCwKKyAgICAgICAgMSwgMCwgMCwgMC43NSwgMCwgMCwgMC41LCAwLAorICAgICAgICAwLCAwLjI1LCAwLCAwLCAwLCAwLCAxLCAxLAorICAgICAgICAwLCAwLjg3NSwgMSwgMCwgMC44NzUsIDAuNzUsIDAsIDEsCisgICAgICAgIDAuNzUsIDAsIDAuODc1LCAwLjUsIDAsIDEsIDAuNSwgMCwKKyAgICAgICAgMC44NzUsIDAuMjUsIDAsIDEsIDAuMjUsIDAsIDAuODc1LCAwLAorICAgICAgICAwLCAxLCAwLCAwLCAwLjc1LCAxLCAwLCAwLjc1LAorICAgICAgICAwLjc1LCAwLCAwLjc1LCAwLjUsIDAsIDAuNzUsIDAuMjUsIDAsCisgICAgICAgIDAuNzUsIDAsIDAsIDAuNjI1LCAxLCAwLCAwLjYyNSwgMC43NSwKKyAgICAgICAgMCwgMC42MjUsIDAuNSwgMCwgMC42MjUsIDAuMjUsIDAsIDAuNjI1LAorICAgICAgICAwLCAwLCAwLjUsIDEsIDAsIDAuNSwgMC43NSwgMCwKKyAgICAgICAgMC41LCAwLjUsIDAsIDAuNSwgMC4yNSwgMCwgMC41LCAwLAorICAgICAgICAwLCAwLjUsIDEsIDAsIDAuMzc1LCAxLCAwLCAwLjM3NSwKKyAgICAgICAgMC43NSwgMCwgMC41LCAwLjc1LCAwLCAwLjM3NSwgMC41LCAwLAorICAgICAgICAwLjUsIDAuNSwgMCwgMC4zNzUsIDAuMjUsIDAsIDAuNSwgMC4yNSwKKyAgICAgICAgMCwgMC4zNzUsIDAsIDAsIDAuNSwgMCwgMCwgMC4yNSwKKyAgICAgICAgMSwgMCwgMC4yNSwgMC43NSwgMCwgMC4yNSwgMC41LCAwLAorICAgICAgICAwLjI1LCAwLjI1LCAwLCAwLjI1LCAwLCAwLCAwLjEyNSwgMSwKKyAgICAgICAgMCwgMC4xMjUsIDAuNzUsIDAsIDAuMTI1LCAwLjUsIDAsIDAuMTI1LAorICAgICAgICAwLjI1LCAwLCAwLjEyNSwgMCwgMCwgMCwgMSwgMCwKKyAgICAgICAgMCwgMC43NSwgMCwgMCwgMC41LCAwLCAwLCAwLjI1LAorICAgICAgICAwLCAwLCAwLCAwLCAxLCAxLCAwLCAwLjg3NSwKKyAgICAgICAgMSwgMCwgMC44NzUsIDAuNzUsIDAsIDEsIDAuNzUsIDAsCisgICAgICAgIDAuODc1LCAwLjUsIDAsIDEsIDAuNSwgMCwgMC44NzUsIDAuMjUsCisgICAgICAgIDAsIDEsIDAuMjUsIDAsIDAuODc1LCAwLCAwLCAxLAorICAgICAgICAwLCAwLCAwLjc1LCAxLCAwLCAwLjc1LCAwLjc1LCAwLAorICAgICAgICAwLjc1LCAwLjUsIDAsIDAuNzUsIDAuMjUsIDAsIDAuNzUsIDAsCisgICAgICAgIDAsIDAuNjI1LCAxLCAwLCAwLjYyNSwgMC43NSwgMCwgMC42MjUsCisgICAgICAgIDAuNSwgMCwgMC42MjUsIDAuMjUsIDAsIDAuNjI1LCAwLCAwLAorICAgICAgICAwLjUsIDEsIDAsIDAuNSwgMC43NSwgMCwgMC41LCAwLjUsCisgICAgICAgIDAsIDAuNSwgMC4yNSwgMCwgMC41LCAwLCAwLCAwLjUsCisgICAgICAgIDEsIDAsIDAuMzc1LCAxLCAwLCAwLjM3NSwgMC43NSwgMCwKKyAgICAgICAgMC41LCAwLjc1LCAwLCAwLjM3NSwgMC41LCAwLCAwLjUsIDAuNSwKKyAgICAgICAgMCwgMC4zNzUsIDAuMjUsIDAsIDAuNSwgMC4yNSwgMCwgMC4zNzUsCisgICAgICAgIDAsIDAsIDAuNSwgMCwgMCwgMC4yNSwgMSwgMCwKKyAgICAgICAgMC4yNSwgMC43NSwgMCwgMC4yNSwgMC41LCAwLCAwLjI1LCAwLjI1LAorICAgICAgICAwLCAwLjI1LCAwLCAwLCAwLjEyNSwgMSwgMCwgMC4xMjUsCisgICAgICAgIDAuNzUsIDAsIDAuMTI1LCAwLjUsIDAsIDAuMTI1LCAwLjI1LCAwLAorICAgICAgICAwLjEyNSwgMCwgMCwgMCwgMSwgMCwgMCwgMC43NSwKKyAgICAgICAgMCwgMCwgMC41LCAwLCAwLCAwLjI1LCAwLCAwLAorICAgICAgICAwLCAwLCAxLCAxLCAwLCAwLjg3NSwgMSwgMCwKKyAgICAgICAgMC44NzUsIDAuNzUsIDAsIDEsIDAuNzUsIDAsIDAuODc1LCAwLjUsCisgICAgICAgIDAsIDEsIDAuNSwgMCwgMC44NzUsIDAuMjUsIDAsIDEsCisgICAgICAgIDAuMjUsIDAsIDAuODc1LCAwLCAwLCAxLCAwLCAwLAorICAgICAgICAwLjc1LCAxLCAwLCAwLjc1LCAwLjc1LCAwLCAwLjc1LCAwLjUsCisgICAgICAgIDAsIDAuNzUsIDAuMjUsIDAsIDAuNzUsIDAsIDAsIDAuNjI1LAorICAgICAgICAxLCAwLCAwLjYyNSwgMC43NSwgMCwgMC42MjUsIDAuNSwgMCwKKyAgICAgICAgMC42MjUsIDAuMjUsIDAsIDAuNjI1LCAwLCAwLCAwLjUsIDEsCisgICAgICAgIDAsIDAuNSwgMC43NSwgMCwgMC41LCAwLjUsIDAsIDAuNSwKKyAgICAgICAgMC4yNSwgMCwgMC41LCAwLCAwLCAwLjUsIDEsIDAsCisgICAgICAgIDAuMzc1LCAxLCAwLCAwLjM3NSwgMC43NSwgMCwgMC41LCAwLjc1LAorICAgICAgICAwLCAwLjM3NSwgMC41LCAwLCAwLjUsIDAuNSwgMCwgMC4zNzUsCisgICAgICAgIDAuMjUsIDAsIDAuNSwgMC4yNSwgMCwgMC4zNzUsIDAsIDAsCisgICAgICAgIDAuNSwgMCwgMCwgMC4yNSwgMSwgMCwgMC4yNSwgMC43NSwKKyAgICAgICAgMCwgMC4yNSwgMC41LCAwLCAwLjI1LCAwLjI1LCAwLCAwLjI1LAorICAgICAgICAwLCAwLCAwLjEyNSwgMSwgMCwgMC4xMjUsIDAuNzUsIDAsCisgICAgICAgIDAuMTI1LCAwLjUsIDAsIDAuMTI1LCAwLjI1LCAwLCAwLjEyNSwgMCwKKyAgICAgICAgMCwgMCwgMSwgMCwgMCwgMC43NSwgMCwgMCwKKyAgICAgICAgMC41LCAwLCAwLCAwLjI1LCAwLCAwLCAwLCAwIH07CisKK3VpbnQxNl90ICB0ZWFwb3RJbmRpY2VzW10gPSB7IDAsIDEsIDIsIDIsIDMsIDAsIDMsIDIsIDQsIDQsIDUsIDMsIDUsIDQsIDYsIDYsIDcsIDUsIDcsIDYsIDgsIDgsIDksIDcsCisgICAgICAgIDEsIDEwLCAxMSwgMTEsIDIsIDEsIDIsIDExLCAxMiwgMTIsIDQsIDIsIDQsIDEyLCAxMywgMTMsIDYsIDQsIDYsIDEzLCAxNCwgMTQsIDgsIDYsCisgICAgICAgIDEwLCAxNSwgMTYsIDE2LCAxMSwgMTAsIDExLCAxNiwgMTcsIDE3LCAxMiwgMTEsIDEyLCAxNywgMTgsIDE4LCAxMywgMTIsIDEzLCAxOCwgMTksIDE5LCAxNCwgMTMsCisgICAgICAgIDE1LCAyMCwgMjEsIDIxLCAxNiwgMTUsIDE2LCAyMSwgMjIsIDIyLCAxNywgMTYsIDE3LCAyMiwgMjMsIDIzLCAxOCwgMTcsIDE4LCAyMywgMjQsIDI0LCAxOSwgMTgsCisgICAgICAgIDI1LCAyNiwgMjcsIDI3LCAyOCwgMjUsIDI4LCAyNywgMjksIDI5LCAzMCwgMjgsIDMwLCAyOSwgMzEsIDMxLCAzMiwgMzAsIDMyLCAzMSwgMzMsIDMzLCAzNCwgMzIsCisgICAgICAgIDI2LCAzNSwgMzYsIDM2LCAyNywgMjYsIDI3LCAzNiwgMzcsIDM3LCAyOSwgMjcsIDI5LCAzNywgMzgsIDM4LCAzMSwgMjksIDMxLCAzOCwgMzksIDM5LCAzMywgMzEsCisgICAgICAgIDM1LCA0MCwgNDEsIDQxLCAzNiwgMzUsIDM2LCA0MSwgNDIsIDQyLCAzNywgMzYsIDM3LCA0MiwgNDMsIDQzLCAzOCwgMzcsIDM4LCA0MywgNDQsIDQ0LCAzOSwgMzgsCisgICAgICAgIDQwLCA0NSwgNDYsIDQ2LCA0MSwgNDAsIDQxLCA0NiwgNDcsIDQ3LCA0MiwgNDEsIDQyLCA0NywgNDgsIDQ4LCA0MywgNDIsIDQzLCA0OCwgNDksIDQ5LCA0NCwgNDMsCisgICAgICAgIDUwLCA1MSwgNTIsIDUyLCA1MywgNTAsIDUzLCA1MiwgNTQsIDU0LCA1NSwgNTMsIDU1LCA1NCwgNTYsIDU2LCA1NywgNTUsIDU3LCA1NiwgNTgsIDU4LCA1OSwgNTcsCisgICAgICAgIDUxLCA2MCwgNjEsIDYxLCA1MiwgNTEsIDUyLCA2MSwgNjIsIDYyLCA1NCwgNTIsIDU0LCA2MiwgNjMsIDYzLCA1NiwgNTQsIDU2LCA2MywgNjQsIDY0LCA1OCwgNTYsCisgICAgICAgIDYwLCA2NSwgNjYsIDY2LCA2MSwgNjAsIDYxLCA2NiwgNjcsIDY3LCA2MiwgNjEsIDYyLCA2NywgNjgsIDY4LCA2MywgNjIsIDYzLCA2OCwgNjksIDY5LCA2NCwgNjMsCisgICAgICAgIDY1LCA3MCwgNzEsIDcxLCA2NiwgNjUsIDY2LCA3MSwgNzIsIDcyLCA2NywgNjYsIDY3LCA3MiwgNzMsIDczLCA2OCwgNjcsIDY4LCA3MywgNzQsIDc0LCA2OSwgNjgsCisgICAgICAgIDc1LCA3NiwgNzcsIDc3LCA3OCwgNzUsIDc4LCA3NywgNzksIDc5LCA4MCwgNzgsIDgwLCA3OSwgODEsIDgxLCA4MiwgODAsIDgyLCA4MSwgODMsIDgzLCA4NCwgODIsCisgICAgICAgIDc2LCA4NSwgODYsIDg2LCA3NywgNzYsIDc3LCA4NiwgODcsIDg3LCA3OSwgNzcsIDc5LCA4NywgODgsIDg4LCA4MSwgNzksIDgxLCA4OCwgODksIDg5LCA4MywgODEsCisgICAgICAgIDg1LCA5MCwgOTEsIDkxLCA4NiwgODUsIDg2LCA5MSwgOTIsIDkyLCA4NywgODYsIDg3LCA5MiwgOTMsIDkzLCA4OCwgODcsIDg4LCA5MywgOTQsIDk0LCA4OSwgODgsCisgICAgICAgIDkwLCA5NSwgOTYsIDk2LCA5MSwgOTAsIDkxLCA5NiwgOTcsIDk3LCA5MiwgOTEsIDkyLCA5NywgOTgsIDk4LCA5MywgOTIsIDkzLCA5OCwgOTksIDk5LCA5NCwgOTMsCisgICAgICAgIDEwMCwgMTAxLCAxMDIsIDEwMiwgMTAzLCAxMDAsIDEwMywgMTAyLCAxMDQsIDEwNCwgMTA1LCAxMDMsIDEwNSwgMTA0LCAxMDYsIDEwNiwgMTA3LCAxMDUsIDEwNywgMTA2LCAxMDgsIDEwOCwgMTA5LCAxMDcsCisgICAgICAgIDEwMSwgMTEwLCAxMTEsIDExMSwgMTAyLCAxMDEsIDEwMiwgMTExLCAxMTIsIDExMiwgMTA0LCAxMDIsIDEwNCwgMTEyLCAxMTMsIDExMywgMTA2LCAxMDQsIDEwNiwgMTEzLCAxMTQsIDExNCwgMTA4LCAxMDYsCisgICAgICAgIDExMCwgMTE1LCAxMTYsIDExNiwgMTExLCAxMTAsIDExMSwgMTE2LCAxMTcsIDExNywgMTEyLCAxMTEsIDExMiwgMTE3LCAxMTgsIDExOCwgMTEzLCAxMTIsIDExMywgMTE4LCAxMTksIDExOSwgMTE0LCAxMTMsCisgICAgICAgIDExNSwgMTIwLCAxMjEsIDEyMSwgMTE2LCAxMTUsIDExNiwgMTIxLCAxMjIsIDEyMiwgMTE3LCAxMTYsIDExNywgMTIyLCAxMjMsIDEyMywgMTE4LCAxMTcsIDExOCwgMTIzLCAxMjQsIDEyNCwgMTE5LCAxMTgsCisgICAgICAgIDEyNSwgMTI2LCAxMjcsIDEyNywgMTI4LCAxMjUsIDEyOCwgMTI3LCAxMjksIDEyOSwgMTMwLCAxMjgsIDEzMCwgMTI5LCAxMzEsIDEzMSwgMTMyLCAxMzAsIDEzMiwgMTMxLCAxMzMsIDEzMywgMTM0LCAxMzIsCisgICAgICAgIDEyNiwgMTM1LCAxMzYsIDEzNiwgMTI3LCAxMjYsIDEyNywgMTM2LCAxMzcsIDEzNywgMTI5LCAxMjcsIDEyOSwgMTM3LCAxMzgsIDEzOCwgMTMxLCAxMjksIDEzMSwgMTM4LCAxMzksIDEzOSwgMTMzLCAxMzEsCisgICAgICAgIDEzNSwgMTQwLCAxNDEsIDE0MSwgMTM2LCAxMzUsIDEzNiwgMTQxLCAxNDIsIDE0MiwgMTM3LCAxMzYsIDEzNywgMTQyLCAxNDMsIDE0MywgMTM4LCAxMzcsIDEzOCwgMTQzLCAxNDQsIDE0NCwgMTM5LCAxMzgsCisgICAgICAgIDE0MCwgMTQ1LCAxNDYsIDE0NiwgMTQxLCAxNDAsIDE0MSwgMTQ2LCAxNDcsIDE0NywgMTQyLCAxNDEsIDE0MiwgMTQ3LCAxNDgsIDE0OCwgMTQzLCAxNDIsIDE0MywgMTQ4LCAxNDksIDE0OSwgMTQ0LCAxNDMsCisgICAgICAgIDE1MCwgMTUxLCAxNTIsIDE1MiwgMTUzLCAxNTAsIDE1MywgMTUyLCAxNTQsIDE1NCwgMTU1LCAxNTMsIDE1NSwgMTU0LCAxNTYsIDE1NiwgMTU3LCAxNTUsIDE1NywgMTU2LCAxNTgsIDE1OCwgMTU5LCAxNTcsCisgICAgICAgIDE1MSwgMTYwLCAxNjEsIDE2MSwgMTUyLCAxNTEsIDE1MiwgMTYxLCAxNjIsIDE2MiwgMTU0LCAxNTIsIDE1NCwgMTYyLCAxNjMsIDE2MywgMTU2LCAxNTQsIDE1NiwgMTYzLCAxNjQsIDE2NCwgMTU4LCAxNTYsCisgICAgICAgIDE2MCwgMTY1LCAxNjYsIDE2NiwgMTYxLCAxNjAsIDE2MSwgMTY2LCAxNjcsIDE2NywgMTYyLCAxNjEsIDE2MiwgMTY3LCAxNjgsIDE2OCwgMTYzLCAxNjIsIDE2MywgMTY4LCAxNjksIDE2OSwgMTY0LCAxNjMsCisgICAgICAgIDE2NSwgMTcwLCAxNzEsIDE3MSwgMTY2LCAxNjUsIDE2NiwgMTcxLCAxNzIsIDE3MiwgMTY3LCAxNjYsIDE2NywgMTcyLCAxNzMsIDE3MywgMTY4LCAxNjcsIDE2OCwgMTczLCAxNzQsIDE3NCwgMTY5LCAxNjgsCisgICAgICAgIDE3NSwgMTc2LCAxNzcsIDE3NywgMTc4LCAxNzUsIDE3OCwgMTc3LCAxNzksIDE3OSwgMTgwLCAxNzgsIDE4MCwgMTc5LCAxODEsIDE4MSwgMTgyLCAxODAsIDE4MiwgMTgxLCAxODMsIDE4MywgMTg0LCAxODIsCisgICAgICAgIDE3NiwgMTg1LCAxODYsIDE4NiwgMTc3LCAxNzYsIDE3NywgMTg2LCAxODcsIDE4NywgMTc5LCAxNzcsIDE3OSwgMTg3LCAxODgsIDE4OCwgMTgxLCAxNzksIDE4MSwgMTg4LCAxODksIDE4OSwgMTgzLCAxODEsCisgICAgICAgIDE4NSwgMTkwLCAxOTEsIDE5MSwgMTg2LCAxODUsIDE4NiwgMTkxLCAxOTIsIDE5MiwgMTg3LCAxODYsIDE4NywgMTkyLCAxOTMsIDE5MywgMTg4LCAxODcsIDE4OCwgMTkzLCAxOTQsIDE5NCwgMTg5LCAxODgsCisgICAgICAgIDE5MCwgMTk1LCAxOTYsIDE5NiwgMTkxLCAxOTAsIDE5MSwgMTk2LCAxOTcsIDE5NywgMTkyLCAxOTEsIDE5MiwgMTk3LCAxOTgsIDE5OCwgMTkzLCAxOTIsIDE5MywgMTk4LCAxOTksIDE5OSwgMTk0LCAxOTMsCisgICAgICAgIDIwMCwgMjAxLCAyMDIsIDIwMiwgMjAzLCAyMDAsIDIwMywgMjAyLCAyMDQsIDIwNCwgMjA1LCAyMDMsIDIwNSwgMjA0LCAyMDYsIDIwNiwgMjA3LCAyMDUsIDIwNywgMjA2LCAyMDgsIDIwOCwgMjA5LCAyMDcsCisgICAgICAgIDIwMSwgMjEwLCAyMTEsIDIxMSwgMjAyLCAyMDEsIDIwMiwgMjExLCAyMTIsIDIxMiwgMjA0LCAyMDIsIDIwNCwgMjEyLCAyMTMsIDIxMywgMjA2LCAyMDQsIDIwNiwgMjEzLCAyMTQsIDIxNCwgMjA4LCAyMDYsCisgICAgICAgIDIxMCwgMjE1LCAyMTYsIDIxNiwgMjExLCAyMTAsIDIxMSwgMjE2LCAyMTcsIDIxNywgMjEyLCAyMTEsIDIxMiwgMjE3LCAyMTgsIDIxOCwgMjEzLCAyMTIsIDIxMywgMjE4LCAyMTksIDIxOSwgMjE0LCAyMTMsCisgICAgICAgIDIxNSwgMjIwLCAyMjEsIDIyMSwgMjE2LCAyMTUsIDIxNiwgMjIxLCAyMjIsIDIyMiwgMjE3LCAyMTYsIDIxNywgMjIyLCAyMjMsIDIyMywgMjE4LCAyMTcsIDIxOCwgMjIzLCAyMjQsIDIyNCwgMjE5LCAyMTgsCisgICAgICAgIDIyNSwgMjI2LCAyMjcsIDIyNywgMjI4LCAyMjUsIDIyOCwgMjI3LCAyMjksIDIyOSwgMjMwLCAyMjgsIDIzMCwgMjI5LCAyMzEsIDIzMSwgMjMyLCAyMzAsIDIzMiwgMjMxLCAyMzMsIDIzMywgMjM0LCAyMzIsCisgICAgICAgIDIyNiwgMjM1LCAyMzYsIDIzNiwgMjI3LCAyMjYsIDIyNywgMjM2LCAyMzcsIDIzNywgMjI5LCAyMjcsIDIyOSwgMjM3LCAyMzgsIDIzOCwgMjMxLCAyMjksIDIzMSwgMjM4LCAyMzksIDIzOSwgMjMzLCAyMzEsCisgICAgICAgIDIzNSwgMjQwLCAyNDEsIDI0MSwgMjM2LCAyMzUsIDIzNiwgMjQxLCAyNDIsIDI0MiwgMjM3LCAyMzYsIDIzNywgMjQyLCAyNDMsIDI0MywgMjM4LCAyMzcsIDIzOCwgMjQzLCAyNDQsIDI0NCwgMjM5LCAyMzgsCisgICAgICAgIDI0MCwgMjQ1LCAyNDYsIDI0NiwgMjQxLCAyNDAsIDI0MSwgMjQ2LCAyNDcsIDI0NywgMjQyLCAyNDEsIDI0MiwgMjQ3LCAyNDgsIDI0OCwgMjQzLCAyNDIsIDI0MywgMjQ4LCAyNDksIDI0OSwgMjQ0LCAyNDMsCisgICAgICAgIDI1MCwgMjUxLCAyNTIsIDI1MiwgMjUzLCAyNTAsIDI1MywgMjUyLCAyNTQsIDI1NCwgMjU1LCAyNTMsIDI1NSwgMjU0LCAyNTYsIDI1NiwgMjU3LCAyNTUsIDI1NywgMjU2LCAyNTgsIDI1OCwgMjU5LCAyNTcsCisgICAgICAgIDI1MSwgMjYwLCAyNjEsIDI2MSwgMjUyLCAyNTEsIDI1MiwgMjYxLCAyNjIsIDI2MiwgMjU0LCAyNTIsIDI1NCwgMjYyLCAyNjMsIDI2MywgMjU2LCAyNTQsIDI1NiwgMjYzLCAyNjQsIDI2NCwgMjU4LCAyNTYsCisgICAgICAgIDI2MCwgMjY1LCAyNjYsIDI2NiwgMjYxLCAyNjAsIDI2MSwgMjY2LCAyNjcsIDI2NywgMjYyLCAyNjEsIDI2MiwgMjY3LCAyNjgsIDI2OCwgMjYzLCAyNjIsIDI2MywgMjY4LCAyNjksIDI2OSwgMjY0LCAyNjMsCisgICAgICAgIDI2NSwgMjcwLCAyNzEsIDI3MSwgMjY2LCAyNjUsIDI2NiwgMjcxLCAyNzIsIDI3MiwgMjY3LCAyNjYsIDI2NywgMjcyLCAyNzMsIDI3MywgMjY4LCAyNjcsIDI2OCwgMjczLCAyNzQsIDI3NCwgMjY5LCAyNjgsCisgICAgICAgIDI3NSwgMjc2LCAyNzcsIDI3NywgMjc4LCAyNzUsIDI3OCwgMjc3LCAyNzksIDI3OSwgMjgwLCAyNzgsIDI4MCwgMjc5LCAyODEsIDI4MSwgMjgyLCAyODAsIDI4MiwgMjgxLCAyODMsIDI4MywgMjg0LCAyODIsCisgICAgICAgIDI3NiwgMjg1LCAyODYsIDI4NiwgMjc3LCAyNzYsIDI3NywgMjg2LCAyODcsIDI4NywgMjc5LCAyNzcsIDI3OSwgMjg3LCAyODgsIDI4OCwgMjgxLCAyNzksIDI4MSwgMjg4LCAyODksIDI4OSwgMjgzLCAyODEsCisgICAgICAgIDI4NSwgMjkwLCAyOTEsIDI5MSwgMjg2LCAyODUsIDI4NiwgMjkxLCAyOTIsIDI5MiwgMjg3LCAyODYsIDI4NywgMjkyLCAyOTMsIDI5MywgMjg4LCAyODcsIDI4OCwgMjkzLCAyOTQsIDI5NCwgMjg5LCAyODgsCisgICAgICAgIDI5MCwgMjk1LCAyOTYsIDI5NiwgMjkxLCAyOTAsIDI5MSwgMjk2LCAyOTcsIDI5NywgMjkyLCAyOTEsIDI5MiwgMjk3LCAyOTgsIDI5OCwgMjkzLCAyOTIsIDI5MywgMjk4LCAyOTksIDI5OSwgMjk0LCAyOTMsCisgICAgICAgIDMwMCwgMzAxLCAzMDIsIDMwMiwgMzAzLCAzMDAsIDMwMywgMzAyLCAzMDQsIDMwNCwgMzA1LCAzMDMsIDMwNSwgMzA0LCAzMDYsIDMwNiwgMzA3LCAzMDUsIDMwNywgMzA2LCAzMDgsIDMwOCwgMzA5LCAzMDcsCisgICAgICAgIDMwMSwgMzEwLCAzMTEsIDMxMSwgMzAyLCAzMDEsIDMwMiwgMzExLCAzMTIsIDMxMiwgMzA0LCAzMDIsIDMwNCwgMzEyLCAzMTMsIDMxMywgMzA2LCAzMDQsIDMwNiwgMzEzLCAzMTQsIDMxNCwgMzA4LCAzMDYsCisgICAgICAgIDMxMCwgMzE1LCAzMTYsIDMxNiwgMzExLCAzMTAsIDMxMSwgMzE2LCAzMTcsIDMxNywgMzEyLCAzMTEsIDMxMiwgMzE3LCAzMTgsIDMxOCwgMzEzLCAzMTIsIDMxMywgMzE4LCAzMTksIDMxOSwgMzE0LCAzMTMsCisgICAgICAgIDMxNSwgMzIwLCAzMjEsIDMyMSwgMzE2LCAzMTUsIDMxNiwgMzIxLCAzMjIsIDMyMiwgMzE3LCAzMTYsIDMxNywgMzIyLCAzMjMsIDMyMywgMzE4LCAzMTcsIDMxOCwgMzIzLCAzMjQsIDMyNCwgMzE5LCAzMTgsCisgICAgICAgIDMyNSwgMzI2LCAzMjcsIDMyNywgMzI4LCAzMjUsIDMyOCwgMzI3LCAzMjksIDMyOSwgMzMwLCAzMjgsIDMzMCwgMzI5LCAzMzEsIDMzMSwgMzMyLCAzMzAsIDMzMiwgMzMxLCAzMzMsIDMzMywgMzM0LCAzMzIsCisgICAgICAgIDMyNiwgMzM1LCAzMzYsIDMzNiwgMzI3LCAzMjYsIDMyNywgMzM2LCAzMzcsIDMzNywgMzI5LCAzMjcsIDMyOSwgMzM3LCAzMzgsIDMzOCwgMzMxLCAzMjksIDMzMSwgMzM4LCAzMzksIDMzOSwgMzMzLCAzMzEsCisgICAgICAgIDMzNSwgMzQwLCAzNDEsIDM0MSwgMzM2LCAzMzUsIDMzNiwgMzQxLCAzNDIsIDM0MiwgMzM3LCAzMzYsIDMzNywgMzQyLCAzNDMsIDM0MywgMzM4LCAzMzcsIDMzOCwgMzQzLCAzNDQsIDM0NCwgMzM5LCAzMzgsCisgICAgICAgIDM0MCwgMzQ1LCAzNDYsIDM0NiwgMzQxLCAzNDAsIDM0MSwgMzQ2LCAzNDcsIDM0NywgMzQyLCAzNDEsIDM0MiwgMzQ3LCAzNDgsIDM0OCwgMzQzLCAzNDIsIDM0MywgMzQ4LCAzNDksIDM0OSwgMzQ0LCAzNDMsCisgICAgICAgIDM1MCwgMzUxLCAzNTIsIDM1MiwgMzUzLCAzNTAsIDM1MywgMzUyLCAzNTQsIDM1NCwgMzU1LCAzNTMsIDM1NSwgMzU0LCAzNTYsIDM1NiwgMzU3LCAzNTUsIDM1NywgMzU2LCAzNTgsIDM1OCwgMzU5LCAzNTcsCisgICAgICAgIDM1MSwgMzYwLCAzNjEsIDM2MSwgMzUyLCAzNTEsIDM1MiwgMzYxLCAzNjIsIDM2MiwgMzU0LCAzNTIsIDM1NCwgMzYyLCAzNjMsIDM2MywgMzU2LCAzNTQsIDM1NiwgMzYzLCAzNjQsIDM2NCwgMzU4LCAzNTYsCisgICAgICAgIDM2MCwgMzY1LCAzNjYsIDM2NiwgMzYxLCAzNjAsIDM2MSwgMzY2LCAzNjcsIDM2NywgMzYyLCAzNjEsIDM2MiwgMzY3LCAzNjgsIDM2OCwgMzYzLCAzNjIsIDM2MywgMzY4LCAzNjksIDM2OSwgMzY0LCAzNjMsCisgICAgICAgIDM2NSwgMzcwLCAzNzEsIDM3MSwgMzY2LCAzNjUsIDM2NiwgMzcxLCAzNzIsIDM3MiwgMzY3LCAzNjYsIDM2NywgMzcyLCAzNzMsIDM3MywgMzY4LCAzNjcsIDM2OCwgMzczLCAzNzQsIDM3NCwgMzY5LCAzNjgsCisgICAgICAgIDM3NSwgMzc2LCAzNzcsIDM3NywgMzc4LCAzNzUsIDM3OCwgMzc3LCAzNzksIDM3OSwgMzgwLCAzNzgsIDM4MCwgMzc5LCAzODEsIDM4MSwgMzgyLCAzODAsIDM4MiwgMzgxLCAzODMsIDM4MywgMzg0LCAzODIsCisgICAgICAgIDM3NiwgMzg1LCAzODYsIDM4NiwgMzc3LCAzNzYsIDM3NywgMzg2LCAzODcsIDM4NywgMzc5LCAzNzcsIDM3OSwgMzg3LCAzODgsIDM4OCwgMzgxLCAzNzksIDM4MSwgMzg4LCAzODksIDM4OSwgMzgzLCAzODEsCisgICAgICAgIDM4NSwgMzkwLCAzOTEsIDM5MSwgMzg2LCAzODUsIDM4NiwgMzkxLCAzOTIsIDM5MiwgMzg3LCAzODYsIDM4NywgMzkyLCAzOTMsIDM5MywgMzg4LCAzODcsIDM4OCwgMzkzLCAzOTQsIDM5NCwgMzg5LCAzODgsCisgICAgICAgIDM5MCwgMzk1LCAzOTYsIDM5NiwgMzkxLCAzOTAsIDM5MSwgMzk2LCAzOTcsIDM5NywgMzkyLCAzOTEsIDM5MiwgMzk3LCAzOTgsIDM5OCwgMzkzLCAzOTIsIDM5MywgMzk4LCAzOTksIDM5OSwgMzk0LCAzOTMsCisgICAgICAgIDQwMCwgNDAxLCA0MDIsIDQwMiwgNDAzLCA0MDAsIDQwMywgNDAyLCA0MDQsIDQwNCwgNDA1LCA0MDMsIDQwNSwgNDA0LCA0MDYsIDQwNiwgNDA3LCA0MDUsIDQwNywgNDA2LCA0MDgsIDQwOCwgNDA5LCA0MDcsCisgICAgICAgIDQwMSwgNDEwLCA0MTEsIDQxMSwgNDAyLCA0MDEsIDQwMiwgNDExLCA0MTIsIDQxMiwgNDA0LCA0MDIsIDQwNCwgNDEyLCA0MTMsIDQxMywgNDA2LCA0MDQsIDQwNiwgNDEzLCA0MTQsIDQxNCwgNDA4LCA0MDYsCisgICAgICAgIDQxMCwgNDE1LCA0MTYsIDQxNiwgNDExLCA0MTAsIDQxMSwgNDE2LCA0MTcsIDQxNywgNDEyLCA0MTEsIDQxMiwgNDE3LCA0MTgsIDQxOCwgNDEzLCA0MTIsIDQxMywgNDE4LCA0MTksIDQxOSwgNDE0LCA0MTMsCisgICAgICAgIDQxNSwgNDIwLCA0MjEsIDQyMSwgNDE2LCA0MTUsIDQxNiwgNDIxLCA0MjIsIDQyMiwgNDE3LCA0MTYsIDQxNywgNDIyLCA0MjMsIDQyMywgNDE4LCA0MTcsIDQxOCwgNDIzLCA0MjQsIDQyNCwgNDE5LCA0MTgsCisgICAgICAgIDQyNSwgNDI2LCA0MjcsIDQyNywgNDI4LCA0MjUsIDQyOCwgNDI3LCA0MjksIDQyOSwgNDMwLCA0MjgsIDQzMCwgNDI5LCA0MzEsIDQzMSwgNDMyLCA0MzAsIDQzMiwgNDMxLCA0MzMsIDQzMywgNDM0LCA0MzIsCisgICAgICAgIDQyNiwgNDM1LCA0MzYsIDQzNiwgNDI3LCA0MjYsIDQyNywgNDM2LCA0MzcsIDQzNywgNDI5LCA0MjcsIDQyOSwgNDM3LCA0MzgsIDQzOCwgNDMxLCA0MjksIDQzMSwgNDM4LCA0MzksIDQzOSwgNDMzLCA0MzEsCisgICAgICAgIDQzNSwgNDQwLCA0NDEsIDQ0MSwgNDM2LCA0MzUsIDQzNiwgNDQxLCA0NDIsIDQ0MiwgNDM3LCA0MzYsIDQzNywgNDQyLCA0NDMsIDQ0MywgNDM4LCA0MzcsIDQzOCwgNDQzLCA0NDQsIDQ0NCwgNDM5LCA0MzgsCisgICAgICAgIDQ0MCwgNDQ1LCA0NDYsIDQ0NiwgNDQxLCA0NDAsIDQ0MSwgNDQ2LCA0NDcsIDQ0NywgNDQyLCA0NDEsIDQ0MiwgNDQ3LCA0NDgsIDQ0OCwgNDQzLCA0NDIsIDQ0MywgNDQ4LCA0NDksIDQ0OSwgNDQ0LCA0NDMsCisgICAgICAgIDQ1MCwgNDUxLCA0NTIsIDQ1MiwgNDUzLCA0NTAsIDQ1MywgNDUyLCA0NTQsIDQ1NCwgNDU1LCA0NTMsIDQ1NSwgNDU0LCA0NTYsIDQ1NiwgNDU3LCA0NTUsIDQ1NywgNDU2LCA0NTgsIDQ1OCwgNDU5LCA0NTcsCisgICAgICAgIDQ1MSwgNDYwLCA0NjEsIDQ2MSwgNDUyLCA0NTEsIDQ1MiwgNDYxLCA0NjIsIDQ2MiwgNDU0LCA0NTIsIDQ1NCwgNDYyLCA0NjMsIDQ2MywgNDU2LCA0NTQsIDQ1NiwgNDYzLCA0NjQsIDQ2NCwgNDU4LCA0NTYsCisgICAgICAgIDQ2MCwgNDY1LCA0NjYsIDQ2NiwgNDYxLCA0NjAsIDQ2MSwgNDY2LCA0NjcsIDQ2NywgNDYyLCA0NjEsIDQ2MiwgNDY3LCA0NjgsIDQ2OCwgNDYzLCA0NjIsIDQ2MywgNDY4LCA0NjksIDQ2OSwgNDY0LCA0NjMsCisgICAgICAgIDQ2NSwgNDcwLCA0NzEsIDQ3MSwgNDY2LCA0NjUsIDQ2NiwgNDcxLCA0NzIsIDQ3MiwgNDY3LCA0NjYsIDQ2NywgNDcyLCA0NzMsIDQ3MywgNDY4LCA0NjcsIDQ2OCwgNDczLCA0NzQsIDQ3NCwgNDY5LCA0NjgsCisgICAgICAgIDQ3NSwgNDc2LCA0NzcsIDQ3NywgNDc4LCA0NzUsIDQ3OCwgNDc3LCA0NzksIDQ3OSwgNDgwLCA0NzgsIDQ4MCwgNDc5LCA0ODEsIDQ4MSwgNDgyLCA0ODAsIDQ4MiwgNDgxLCA0ODMsIDQ4MywgNDg0LCA0ODIsCisgICAgICAgIDQ3NiwgNDg1LCA0ODYsIDQ4NiwgNDc3LCA0NzYsIDQ3NywgNDg2LCA0ODcsIDQ4NywgNDc5LCA0NzcsIDQ3OSwgNDg3LCA0ODgsIDQ4OCwgNDgxLCA0NzksIDQ4MSwgNDg4LCA0ODksIDQ4OSwgNDgzLCA0ODEsCisgICAgICAgIDQ4NSwgNDkwLCA0OTEsIDQ5MSwgNDg2LCA0ODUsIDQ4NiwgNDkxLCA0OTIsIDQ5MiwgNDg3LCA0ODYsIDQ4NywgNDkyLCA0OTMsIDQ5MywgNDg4LCA0ODcsIDQ4OCwgNDkzLCA0OTQsIDQ5NCwgNDg5LCA0ODgsCisgICAgICAgIDQ5MCwgNDk1LCA0OTYsIDQ5NiwgNDkxLCA0OTAsIDQ5MSwgNDk2LCA0OTcsIDQ5NywgNDkyLCA0OTEsIDQ5MiwgNDk3LCA0OTgsIDQ5OCwgNDkzLCA0OTIsIDQ5MywgNDk4LCA0OTksIDQ5OSwgNDk0LCA0OTMsCisgICAgICAgIDUwMCwgNTAxLCA1MDIsIDUwMiwgNTAzLCA1MDAsIDUwMywgNTAyLCA1MDQsIDUwNCwgNTA1LCA1MDMsIDUwNSwgNTA0LCA1MDYsIDUwNiwgNTA3LCA1MDUsIDUwNywgNTA2LCA1MDgsIDUwOCwgNTA5LCA1MDcsCisgICAgICAgIDUwMSwgNTEwLCA1MTEsIDUxMSwgNTAyLCA1MDEsIDUwMiwgNTExLCA1MTIsIDUxMiwgNTA0LCA1MDIsIDUwNCwgNTEyLCA1MTMsIDUxMywgNTA2LCA1MDQsIDUwNiwgNTEzLCA1MTQsIDUxNCwgNTA4LCA1MDYsCisgICAgICAgIDUxMCwgNTE1LCA1MTYsIDUxNiwgNTExLCA1MTAsIDUxMSwgNTE2LCA1MTcsIDUxNywgNTEyLCA1MTEsIDUxMiwgNTE3LCA1MTgsIDUxOCwgNTEzLCA1MTIsIDUxMywgNTE4LCA1MTksIDUxOSwgNTE0LCA1MTMsCisgICAgICAgIDUxNSwgNTIwLCA1MjEsIDUyMSwgNTE2LCA1MTUsIDUxNiwgNTIxLCA1MjIsIDUyMiwgNTE3LCA1MTYsIDUxNywgNTIyLCA1MjMsIDUyMywgNTE4LCA1MTcsIDUxOCwgNTIzLCA1MjQsIDUyNCwgNTE5LCA1MTgsCisgICAgICAgIDUyNSwgNTI2LCA1MjcsIDUyNywgNTI4LCA1MjUsIDUyOCwgNTI3LCA1MjksIDUyOSwgNTMwLCA1MjgsIDUzMCwgNTI5LCA1MzEsIDUzMSwgNTMyLCA1MzAsIDUzMiwgNTMxLCA1MzMsIDUzMywgNTM0LCA1MzIsCisgICAgICAgIDUyNiwgNTM1LCA1MzYsIDUzNiwgNTI3LCA1MjYsIDUyNywgNTM2LCA1MzcsIDUzNywgNTI5LCA1MjcsIDUyOSwgNTM3LCA1MzgsIDUzOCwgNTMxLCA1MjksIDUzMSwgNTM4LCA1MzksIDUzOSwgNTMzLCA1MzEsCisgICAgICAgIDUzNSwgNTQwLCA1NDEsIDU0MSwgNTM2LCA1MzUsIDUzNiwgNTQxLCA1NDIsIDU0MiwgNTM3LCA1MzYsIDUzNywgNTQyLCA1NDMsIDU0MywgNTM4LCA1MzcsIDUzOCwgNTQzLCA1NDQsIDU0NCwgNTM5LCA1MzgsCisgICAgICAgIDU0MCwgNTQ1LCA1NDYsIDU0NiwgNTQxLCA1NDAsIDU0MSwgNTQ2LCA1NDcsIDU0NywgNTQyLCA1NDEsIDU0MiwgNTQ3LCA1NDgsIDU0OCwgNTQzLCA1NDIsIDU0MywgNTQ4LCA1NDksIDU0OSwgNTQ0LCA1NDMsCisgICAgICAgIDU1MCwgNTUxLCA1NTIsIDU1MiwgNTUzLCA1NTAsIDU1MywgNTUyLCA1NTQsIDU1NCwgNTU1LCA1NTMsIDU1NSwgNTU0LCA1NTYsIDU1NiwgNTU3LCA1NTUsIDU1NywgNTU2LCA1NTgsIDU1OCwgNTU5LCA1NTcsCisgICAgICAgIDU1MSwgNTYwLCA1NjEsIDU2MSwgNTUyLCA1NTEsIDU1MiwgNTYxLCA1NjIsIDU2MiwgNTU0LCA1NTIsIDU1NCwgNTYyLCA1NjMsIDU2MywgNTU2LCA1NTQsIDU1NiwgNTYzLCA1NjQsIDU2NCwgNTU4LCA1NTYsCisgICAgICAgIDU2MCwgNTY1LCA1NjYsIDU2NiwgNTYxLCA1NjAsIDU2MSwgNTY2LCA1NjcsIDU2NywgNTYyLCA1NjEsIDU2MiwgNTY3LCA1NjgsIDU2OCwgNTYzLCA1NjIsIDU2MywgNTY4LCA1NjksIDU2OSwgNTY0LCA1NjMsCisgICAgICAgIDU2NSwgNTcwLCA1NzEsIDU3MSwgNTY2LCA1NjUsIDU2NiwgNTcxLCA1NzIsIDU3MiwgNTY3LCA1NjYsIDU2NywgNTcyLCA1NzMsIDU3MywgNTY4LCA1NjcsIDU2OCwgNTczLCA1NzQsIDU3NCwgNTY5LCA1NjgsCisgICAgICAgIDU3NSwgNTc2LCA1NzcsIDU3NywgNTc4LCA1NzUsIDU3OCwgNTc3LCA1NzksIDU3OSwgNTgwLCA1NzgsIDU4MCwgNTc5LCA1ODEsIDU4MSwgNTgyLCA1ODAsIDU4MiwgNTgxLCA1ODMsIDU4MywgNTg0LCA1ODIsCisgICAgICAgIDU3NiwgNTg1LCA1ODYsIDU4NiwgNTc3LCA1NzYsIDU3NywgNTg2LCA1ODcsIDU4NywgNTc5LCA1NzcsIDU3OSwgNTg3LCA1ODgsIDU4OCwgNTgxLCA1NzksIDU4MSwgNTg4LCA1ODksIDU4OSwgNTgzLCA1ODEsCisgICAgICAgIDU4NSwgNTkwLCA1OTEsIDU5MSwgNTg2LCA1ODUsIDU4NiwgNTkxLCA1OTIsIDU5MiwgNTg3LCA1ODYsIDU4NywgNTkyLCA1OTMsIDU5MywgNTg4LCA1ODcsIDU4OCwgNTkzLCA1OTQsIDU5NCwgNTg5LCA1ODgsCisgICAgICAgIDU5MCwgNTk1LCA1OTYsIDU5NiwgNTkxLCA1OTAsIDU5MSwgNTk2LCA1OTcsIDU5NywgNTkyLCA1OTEsIDU5MiwgNTk3LCA1OTgsIDU5OCwgNTkzLCA1OTIsIDU5MywgNTk4LCA1OTksIDU5OSwgNTk0LCA1OTMsCisgICAgICAgIDYwMCwgNjAxLCA2MDIsIDYwMiwgNjAzLCA2MDAsIDYwMywgNjAyLCA2MDQsIDYwNCwgNjA1LCA2MDMsIDYwNSwgNjA0LCA2MDYsIDYwNiwgNjA3LCA2MDUsIDYwNywgNjA2LCA2MDgsIDYwOCwgNjA5LCA2MDcsCisgICAgICAgIDYwMSwgNjEwLCA2MTEsIDYxMSwgNjAyLCA2MDEsIDYwMiwgNjExLCA2MTIsIDYxMiwgNjA0LCA2MDIsIDYwNCwgNjEyLCA2MTMsIDYxMywgNjA2LCA2MDQsIDYwNiwgNjEzLCA2MTQsIDYxNCwgNjA4LCA2MDYsCisgICAgICAgIDYxMCwgNjE1LCA2MTYsIDYxNiwgNjExLCA2MTAsIDYxMSwgNjE2LCA2MTcsIDYxNywgNjEyLCA2MTEsIDYxMiwgNjE3LCA2MTgsIDYxOCwgNjEzLCA2MTIsIDYxMywgNjE4LCA2MTksIDYxOSwgNjE0LCA2MTMsCisgICAgICAgIDYxNSwgNjIwLCA2MjEsIDYyMSwgNjE2LCA2MTUsIDYxNiwgNjIxLCA2MjIsIDYyMiwgNjE3LCA2MTYsIDYxNywgNjIyLCA2MjMsIDYyMywgNjE4LCA2MTcsIDYxOCwgNjIzLCA2MjQsIDYyNCwgNjE5LCA2MTgsCisgICAgICAgIDYyNSwgNjI2LCA2MjcsIDYyNywgNjI4LCA2MjUsIDYyOCwgNjI3LCA2MjksIDYyOSwgNjMwLCA2MjgsIDYzMCwgNjI5LCA2MzEsIDYzMSwgNjMyLCA2MzAsIDYzMiwgNjMxLCA2MzMsIDYzMywgNjM0LCA2MzIsCisgICAgICAgIDYyNiwgNjM1LCA2MzYsIDYzNiwgNjI3LCA2MjYsIDYyNywgNjM2LCA2MzcsIDYzNywgNjI5LCA2MjcsIDYyOSwgNjM3LCA2MzgsIDYzOCwgNjMxLCA2MjksIDYzMSwgNjM4LCA2MzksIDYzOSwgNjMzLCA2MzEsCisgICAgICAgIDYzNSwgNjQwLCA2NDEsIDY0MSwgNjM2LCA2MzUsIDYzNiwgNjQxLCA2NDIsIDY0MiwgNjM3LCA2MzYsIDYzNywgNjQyLCA2NDMsIDY0MywgNjM4LCA2MzcsIDYzOCwgNjQzLCA2NDQsIDY0NCwgNjM5LCA2MzgsCisgICAgICAgIDY0MCwgNjQ1LCA2NDYsIDY0NiwgNjQxLCA2NDAsIDY0MSwgNjQ2LCA2NDcsIDY0NywgNjQyLCA2NDEsIDY0MiwgNjQ3LCA2NDgsIDY0OCwgNjQzLCA2NDIsIDY0MywgNjQ4LCA2NDksIDY0OSwgNjQ0LCA2NDMsCisgICAgICAgIDY1MCwgNjUxLCA2NTIsIDY1MiwgNjUzLCA2NTAsIDY1MywgNjUyLCA2NTQsIDY1NCwgNjU1LCA2NTMsIDY1NSwgNjU0LCA2NTYsIDY1NiwgNjU3LCA2NTUsIDY1NywgNjU2LCA2NTgsIDY1OCwgNjU5LCA2NTcsCisgICAgICAgIDY1MSwgNjYwLCA2NjEsIDY2MSwgNjUyLCA2NTEsIDY1MiwgNjYxLCA2NjIsIDY2MiwgNjU0LCA2NTIsIDY1NCwgNjYyLCA2NjMsIDY2MywgNjU2LCA2NTQsIDY1NiwgNjYzLCA2NjQsIDY2NCwgNjU4LCA2NTYsCisgICAgICAgIDY2MCwgNjY1LCA2NjYsIDY2NiwgNjYxLCA2NjAsIDY2MSwgNjY2LCA2NjcsIDY2NywgNjYyLCA2NjEsIDY2MiwgNjY3LCA2NjgsIDY2OCwgNjYzLCA2NjIsIDY2MywgNjY4LCA2NjksIDY2OSwgNjY0LCA2NjMsCisgICAgICAgIDY2NSwgNjcwLCA2NzEsIDY3MSwgNjY2LCA2NjUsIDY2NiwgNjcxLCA2NzIsIDY3MiwgNjY3LCA2NjYsIDY2NywgNjcyLCA2NzMsIDY3MywgNjY4LCA2NjcsIDY2OCwgNjczLCA2NzQsIDY3NCwgNjY5LCA2NjgsCisgICAgICAgIDY3NSwgNjc2LCA2NzcsIDY3NywgNjc4LCA2NzUsIDY3OCwgNjc3LCA2NzksIDY3OSwgNjgwLCA2NzgsIDY4MCwgNjc5LCA2ODEsIDY4MSwgNjgyLCA2ODAsIDY4MiwgNjgxLCA2ODMsIDY4MywgNjg0LCA2ODIsCisgICAgICAgIDY3NiwgNjg1LCA2ODYsIDY4NiwgNjc3LCA2NzYsIDY3NywgNjg2LCA2ODcsIDY4NywgNjc5LCA2NzcsIDY3OSwgNjg3LCA2ODgsIDY4OCwgNjgxLCA2NzksIDY4MSwgNjg4LCA2ODksIDY4OSwgNjgzLCA2ODEsCisgICAgICAgIDY4NSwgNjkwLCA2OTEsIDY5MSwgNjg2LCA2ODUsIDY4NiwgNjkxLCA2OTIsIDY5MiwgNjg3LCA2ODYsIDY4NywgNjkyLCA2OTMsIDY5MywgNjg4LCA2ODcsIDY4OCwgNjkzLCA2OTQsIDY5NCwgNjg5LCA2ODgsCisgICAgICAgIDY5MCwgNjk1LCA2OTYsIDY5NiwgNjkxLCA2OTAsIDY5MSwgNjk2LCA2OTcsIDY5NywgNjkyLCA2OTEsIDY5MiwgNjk3LCA2OTgsIDY5OCwgNjkzLCA2OTIsIDY5MywgNjk4LCA2OTksIDY5OSwgNjk0LCA2OTMsCisgICAgICAgIDcwMCwgNzAxLCA3MDIsIDcwMiwgNzAzLCA3MDAsIDcwMywgNzAyLCA3MDQsIDcwNCwgNzA1LCA3MDMsIDcwNSwgNzA0LCA3MDYsIDcwNiwgNzA3LCA3MDUsIDcwNywgNzA2LCA3MDgsIDcwOCwgNzA5LCA3MDcsCisgICAgICAgIDcwMSwgNzEwLCA3MTEsIDcxMSwgNzAyLCA3MDEsIDcwMiwgNzExLCA3MTIsIDcxMiwgNzA0LCA3MDIsIDcwNCwgNzEyLCA3MTMsIDcxMywgNzA2LCA3MDQsIDcwNiwgNzEzLCA3MTQsIDcxNCwgNzA4LCA3MDYsCisgICAgICAgIDcxMCwgNzE1LCA3MTYsIDcxNiwgNzExLCA3MTAsIDcxMSwgNzE2LCA3MTcsIDcxNywgNzEyLCA3MTEsIDcxMiwgNzE3LCA3MTgsIDcxOCwgNzEzLCA3MTIsIDcxMywgNzE4LCA3MTksIDcxOSwgNzE0LCA3MTMsCisgICAgICAgIDcxNSwgNzIwLCA3MjEsIDcyMSwgNzE2LCA3MTUsIDcxNiwgNzIxLCA3MjIsIDcyMiwgNzE3LCA3MTYsIDcxNywgNzIyLCA3MjMsIDcyMywgNzE4LCA3MTcsIDcxOCwgNzIzLCA3MjQsIDcyNCwgNzE5LCA3MTgsCisgICAgICAgIDcyNSwgNzI2LCA3MjcsIDcyNywgNzI4LCA3MjUsIDcyOCwgNzI3LCA3MjksIDcyOSwgNzMwLCA3MjgsIDczMCwgNzI5LCA3MzEsIDczMSwgNzMyLCA3MzAsIDczMiwgNzMxLCA3MzMsIDczMywgNzM0LCA3MzIsCisgICAgICAgIDcyNiwgNzM1LCA3MzYsIDczNiwgNzI3LCA3MjYsIDcyNywgNzM2LCA3MzcsIDczNywgNzI5LCA3MjcsIDcyOSwgNzM3LCA3MzgsIDczOCwgNzMxLCA3MjksIDczMSwgNzM4LCA3MzksIDczOSwgNzMzLCA3MzEsCisgICAgICAgIDczNSwgNzQwLCA3NDEsIDc0MSwgNzM2LCA3MzUsIDczNiwgNzQxLCA3NDIsIDc0MiwgNzM3LCA3MzYsIDczNywgNzQyLCA3NDMsIDc0MywgNzM4LCA3MzcsIDczOCwgNzQzLCA3NDQsIDc0NCwgNzM5LCA3MzgsCisgICAgICAgIDc0MCwgNzQ1LCA3NDYsIDc0NiwgNzQxLCA3NDAsIDc0MSwgNzQ2LCA3NDcsIDc0NywgNzQyLCA3NDEsIDc0MiwgNzQ3LCA3NDgsIDc0OCwgNzQzLCA3NDIsIDc0MywgNzQ4LCA3NDksIDc0OSwgNzQ0LCA3NDMsCisgICAgICAgIDc1MCwgNzUxLCA3NTIsIDc1MiwgNzUzLCA3NTAsIDc1MywgNzUyLCA3NTQsIDc1NCwgNzU1LCA3NTMsIDc1NSwgNzU0LCA3NTYsIDc1NiwgNzU3LCA3NTUsIDc1NywgNzU2LCA3NTgsIDc1OCwgNzU5LCA3NTcsCisgICAgICAgIDc1MSwgNzYwLCA3NjEsIDc2MSwgNzUyLCA3NTEsIDc1MiwgNzYxLCA3NjIsIDc2MiwgNzU0LCA3NTIsIDc1NCwgNzYyLCA3NjMsIDc2MywgNzU2LCA3NTQsIDc1NiwgNzYzLCA3NjQsIDc2NCwgNzU4LCA3NTYsCisgICAgICAgIDc2MCwgNzY1LCA3NjYsIDc2NiwgNzYxLCA3NjAsIDc2MSwgNzY2LCA3NjcsIDc2NywgNzYyLCA3NjEsIDc2MiwgNzY3LCA3NjgsIDc2OCwgNzYzLCA3NjIsIDc2MywgNzY4LCA3NjksIDc2OSwgNzY0LCA3NjMsCisgICAgICAgIDc2NSwgNzcwLCA3NzEsIDc3MSwgNzY2LCA3NjUsIDc2NiwgNzcxLCA3NzIsIDc3MiwgNzY3LCA3NjYsIDc2NywgNzcyLCA3NzMsIDc3MywgNzY4LCA3NjcsIDc2OCwgNzczLCA3NzQsIDc3NCwgNzY5LCA3NjgsCisgICAgICAgIDc3NSwgNzc2LCA3NzcsIDc3NywgNzc4LCA3NzUsIDc3OCwgNzc3LCA3NzksIDc3OSwgNzgwLCA3NzgsIDc4MCwgNzc5LCA3ODEsIDc4MSwgNzgyLCA3ODAsIDc4MiwgNzgxLCA3ODMsIDc4MywgNzg0LCA3ODIsCisgICAgICAgIDc3NiwgNzg1LCA3ODYsIDc4NiwgNzc3LCA3NzYsIDc3NywgNzg2LCA3ODcsIDc4NywgNzc5LCA3NzcsIDc3OSwgNzg3LCA3ODgsIDc4OCwgNzgxLCA3NzksIDc4MSwgNzg4LCA3ODksIDc4OSwgNzgzLCA3ODEsCisgICAgICAgIDc4NSwgNzkwLCA3OTEsIDc5MSwgNzg2LCA3ODUsIDc4NiwgNzkxLCA3OTIsIDc5MiwgNzg3LCA3ODYsIDc4NywgNzkyLCA3OTMsIDc5MywgNzg4LCA3ODcsIDc4OCwgNzkzLCA3OTQsIDc5NCwgNzg5LCA3ODgsCisgICAgICAgIDc5MCwgNzk1LCA3OTYsIDc5NiwgNzkxLCA3OTAsIDc5MSwgNzk2LCA3OTcsIDc5NywgNzkyLCA3OTEsIDc5MiwgNzk3LCA3OTgsIDc5OCwgNzkzLCA3OTIsIDc5MywgNzk4LCA3OTksIDc5OSwgNzk0LCA3OTMgfTsKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNy9zYW1wbGVzL1RlYXBvdC9saW50LnhtbCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNy9zYW1wbGVzL1RlYXBvdC9saW50LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZTBlZWFkCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE3L3NhbXBsZXMvVGVhcG90L2xpbnQueG1sCkBAIC0wLDAgKzEsMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxsaW50PgorPC9saW50PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNy9zYW1wbGVzL1RlYXBvdC9wcm9qZWN0LnByb3BlcnRpZXMgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTcvc2FtcGxlcy9UZWFwb3QvcHJvamVjdC5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1YWQ5ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTcvc2FtcGxlcy9UZWFwb3QvcHJvamVjdC5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMTQgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IEFuZHJvaWQgVG9vbHMuCisjIERvIG5vdCBtb2RpZnkgdGhpcyBmaWxlIC0tIFlPVVIgQ0hBTkdFUyBXSUxMIEJFIEVSQVNFRCEKKyMKKyMgVGhpcyBmaWxlIG11c3QgYmUgY2hlY2tlZCBpbiBWZXJzaW9uIENvbnRyb2wgU3lzdGVtcy4KKyMKKyMgVG8gY3VzdG9taXplIHByb3BlcnRpZXMgdXNlZCBieSB0aGUgQW50IGJ1aWxkIHN5c3RlbSBlZGl0CisjICJhbnQucHJvcGVydGllcyIsIGFuZCBvdmVycmlkZSB2YWx1ZXMgdG8gYWRhcHQgdGhlIHNjcmlwdCB0byB5b3VyCisjIHByb2plY3Qgc3RydWN0dXJlLgorIworIyBUbyBlbmFibGUgUHJvR3VhcmQgdG8gc2hyaW5rIGFuZCBvYmZ1c2NhdGUgeW91ciBjb2RlLCB1bmNvbW1lbnQgdGhpcyAoYXZhaWxhYmxlIHByb3BlcnRpZXM6IHNkay5kaXIsIHVzZXIuaG9tZSk6CisjcHJvZ3VhcmQuY29uZmlnPSR7c2RrLmRpcn0vdG9vbHMvcHJvZ3VhcmQvcHJvZ3VhcmQtYW5kcm9pZC50eHQ6cHJvZ3VhcmQtcHJvamVjdC50eHQKKworIyBQcm9qZWN0IHRhcmdldC4KK3RhcmdldD1Hb29nbGUgSW5jLjpHb29nbGUgQVBJczoxOQpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE3L3NhbXBsZXMvVGVhcG90L3Jlcy9kcmF3YWJsZS1oZHBpL2ljX2xhdW5jaGVyLnBuZyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNy9zYW1wbGVzL1RlYXBvdC9yZXMvZHJhd2FibGUtaGRwaS9pY19sYXVuY2hlci5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWEwMWNiZgotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNy9zYW1wbGVzL1RlYXBvdC9yZXMvZHJhd2FibGUtaGRwaS9pY19sYXVuY2hlci5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE3L3NhbXBsZXMvVGVhcG90L3Jlcy9kcmF3YWJsZS1sZHBpL2ljX2xhdW5jaGVyLnBuZyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNy9zYW1wbGVzL1RlYXBvdC9yZXMvZHJhd2FibGUtbGRwaS9pY19sYXVuY2hlci5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTNkNmExOAotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNy9zYW1wbGVzL1RlYXBvdC9yZXMvZHJhd2FibGUtbGRwaS9pY19sYXVuY2hlci5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE3L3NhbXBsZXMvVGVhcG90L3Jlcy9kcmF3YWJsZS1tZHBpL2ljX2xhdW5jaGVyLnBuZyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNy9zYW1wbGVzL1RlYXBvdC9yZXMvZHJhd2FibGUtbWRwaS9pY19sYXVuY2hlci5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGY4MDg5NwotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNy9zYW1wbGVzL1RlYXBvdC9yZXMvZHJhd2FibGUtbWRwaS9pY19sYXVuY2hlci5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE3L3NhbXBsZXMvVGVhcG90L3Jlcy9kcmF3YWJsZS14aGRwaS9pY19sYXVuY2hlci5wbmcgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTcvc2FtcGxlcy9UZWFwb3QvcmVzL2RyYXdhYmxlLXhoZHBpL2ljX2xhdW5jaGVyLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzc5YTJiCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE3L3NhbXBsZXMvVGVhcG90L3Jlcy9kcmF3YWJsZS14aGRwaS9pY19sYXVuY2hlci5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE3L3NhbXBsZXMvVGVhcG90L3Jlcy9sYXlvdXQvd2lkZ2V0cy54bWwgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTcvc2FtcGxlcy9UZWFwb3QvcmVzL2xheW91dC93aWRnZXRzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNmI2NGYzCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE3L3NhbXBsZXMvVGVhcG90L3Jlcy9sYXlvdXQvd2lkZ2V0cy54bWwKQEAgLTAsMCArMSwxNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxMaW5lYXJMYXlvdXQgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIGFuZHJvaWQ6bGF5b3V0X3dpZHRoPSJtYXRjaF9wYXJlbnQiCisgICAgYW5kcm9pZDpsYXlvdXRfaGVpZ2h0PSJtYXRjaF9wYXJlbnQiCisgICAgYW5kcm9pZDpncmF2aXR5PSJ0b3AiCisgICAgYW5kcm9pZDpvcmllbnRhdGlvbj0idmVydGljYWwiID4KKworICAgIDxUZXh0VmlldworICAgICAgICBhbmRyb2lkOmlkPSJAK2lkL3RleHRWaWV3RlBTIgorICAgICAgICBhbmRyb2lkOmxheW91dF93aWR0aD0id3JhcF9jb250ZW50IgorICAgICAgICBhbmRyb2lkOmxheW91dF9oZWlnaHQ9IndyYXBfY29udGVudCIKKyAgICAgICAgYW5kcm9pZDpncmF2aXR5PSJyaWdodCIKKyAgICAgICAgYW5kcm9pZDp0ZXh0PSIwLjAgRlBTIgorICAgICAgICBhbmRyb2lkOnRleHRBcHBlYXJhbmNlPSI/YW5kcm9pZDphdHRyL3RleHRBcHBlYXJhbmNlTWVkaXVtIgorICAgICAgICBhbmRyb2lkOnRleHRDb2xvcj0iQGFuZHJvaWQ6Y29sb3Ivd2hpdGUiIC8+CisKKzwvTGluZWFyTGF5b3V0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNy9zYW1wbGVzL1RlYXBvdC9yZXMvdmFsdWVzLXYxMS9zdHlsZXMueG1sIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE3L3NhbXBsZXMvVGVhcG90L3Jlcy92YWx1ZXMtdjExL3N0eWxlcy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQxNzUyZgotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNy9zYW1wbGVzL1RlYXBvdC9yZXMvdmFsdWVzLXYxMS9zdHlsZXMueG1sCkBAIC0wLDAgKzEsMTEgQEAKKzxyZXNvdXJjZXM+CisKKyAgICA8IS0tCisgICAgICAgIEJhc2UgYXBwbGljYXRpb24gdGhlbWUgZm9yIEFQSSAxMSsuIFRoaXMgdGhlbWUgY29tcGxldGVseSByZXBsYWNlcworICAgICAgICBBcHBCYXNlVGhlbWUgZnJvbSByZXMvdmFsdWVzL3N0eWxlcy54bWwgb24gQVBJIDExKyBkZXZpY2VzLgorICAgIC0tPgorICAgIDxzdHlsZSBuYW1lPSJBcHBCYXNlVGhlbWUiIHBhcmVudD0iYW5kcm9pZDpUaGVtZS5Ib2xvLkxpZ2h0Ij4KKyAgICAgICAgPCEtLSBBUEkgMTEgdGhlbWUgY3VzdG9taXphdGlvbnMgY2FuIGdvIGhlcmUuIC0tPgorICAgIDwvc3R5bGU+CisKKzwvcmVzb3VyY2VzPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNy9zYW1wbGVzL1RlYXBvdC9yZXMvdmFsdWVzLXYxNC9zdHlsZXMueG1sIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE3L3NhbXBsZXMvVGVhcG90L3Jlcy92YWx1ZXMtdjE0L3N0eWxlcy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjIwZTAxNQotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNy9zYW1wbGVzL1RlYXBvdC9yZXMvdmFsdWVzLXYxNC9zdHlsZXMueG1sCkBAIC0wLDAgKzEsMTIgQEAKKzxyZXNvdXJjZXM+CisKKyAgICA8IS0tCisgICAgICAgIEJhc2UgYXBwbGljYXRpb24gdGhlbWUgZm9yIEFQSSAxNCsuIFRoaXMgdGhlbWUgY29tcGxldGVseSByZXBsYWNlcworICAgICAgICBBcHBCYXNlVGhlbWUgZnJvbSBCT1RIIHJlcy92YWx1ZXMvc3R5bGVzLnhtbCBhbmQKKyAgICAgICAgcmVzL3ZhbHVlcy12MTEvc3R5bGVzLnhtbCBvbiBBUEkgMTQrIGRldmljZXMuCisgICAgLS0+CisgICAgPHN0eWxlIG5hbWU9IkFwcEJhc2VUaGVtZSIgcGFyZW50PSJhbmRyb2lkOlRoZW1lLkhvbG8uTGlnaHQuRGFya0FjdGlvbkJhciI+CisgICAgICAgIDwhLS0gQVBJIDE0IHRoZW1lIGN1c3RvbWl6YXRpb25zIGNhbiBnbyBoZXJlLiAtLT4KKyAgICA8L3N0eWxlPgorCis8L3Jlc291cmNlcz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTcvc2FtcGxlcy9UZWFwb3QvcmVzL3ZhbHVlcy9zdHJpbmdzLnhtbCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNy9zYW1wbGVzL1RlYXBvdC9yZXMvdmFsdWVzL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExM2IxZjAKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTcvc2FtcGxlcy9UZWFwb3QvcmVzL3ZhbHVlcy9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDUgQEAKKzxyZXNvdXJjZXM+CisKKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9uYW1lIj5UZWFwb3Q8L3N0cmluZz4KKworPC9yZXNvdXJjZXM+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE3L3NhbXBsZXMvVGVhcG90L3Jlcy92YWx1ZXMvc3R5bGVzLnhtbCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNy9zYW1wbGVzL1RlYXBvdC9yZXMvdmFsdWVzL3N0eWxlcy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGExMGNhNAotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNy9zYW1wbGVzL1RlYXBvdC9yZXMvdmFsdWVzL3N0eWxlcy54bWwKQEAgLTAsMCArMSwyMCBAQAorPHJlc291cmNlcz4KKworICAgIDwhLS0KKyAgICAgICAgQmFzZSBhcHBsaWNhdGlvbiB0aGVtZSwgZGVwZW5kZW50IG9uIEFQSSBsZXZlbC4gVGhpcyB0aGVtZSBpcyByZXBsYWNlZAorICAgICAgICBieSBBcHBCYXNlVGhlbWUgZnJvbSByZXMvdmFsdWVzLXZYWC9zdHlsZXMueG1sIG9uIG5ld2VyIGRldmljZXMuCisgICAgLS0+CisgICAgPHN0eWxlIG5hbWU9IkFwcEJhc2VUaGVtZSIgcGFyZW50PSJhbmRyb2lkOlRoZW1lLkxpZ2h0Ij4KKyAgICAgICAgPCEtLQorICAgICAgICAgICAgVGhlbWUgY3VzdG9taXphdGlvbnMgYXZhaWxhYmxlIGluIG5ld2VyIEFQSSBsZXZlbHMgY2FuIGdvIGluCisgICAgICAgICAgICByZXMvdmFsdWVzLXZYWC9zdHlsZXMueG1sLCB3aGlsZSBjdXN0b21pemF0aW9ucyByZWxhdGVkIHRvCisgICAgICAgICAgICBiYWNrd2FyZC1jb21wYXRpYmlsaXR5IGNhbiBnbyBoZXJlLgorICAgICAgICAtLT4KKyAgICA8L3N0eWxlPgorCisgICAgPCEtLSBBcHBsaWNhdGlvbiB0aGVtZS4gLS0+CisgICAgPHN0eWxlIG5hbWU9IkFwcFRoZW1lIiBwYXJlbnQ9IkFwcEJhc2VUaGVtZSI+CisgICAgICAgIDwhLS0gQWxsIGN1c3RvbWl6YXRpb25zIHRoYXQgYXJlIE5PVCBzcGVjaWZpYyB0byBhIHBhcnRpY3VsYXIgQVBJLWxldmVsIGNhbiBnbyBoZXJlLiAtLT4KKyAgICA8L3N0eWxlPgorCis8L3Jlc291cmNlcz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTcvc2FtcGxlcy9UZWFwb3Qvc3JjL2NvbS9zYW1wbGUvaGVscGVyL05ES0hlbHBlci5qYXZhIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE3L3NhbXBsZXMvVGVhcG90L3NyYy9jb20vc2FtcGxlL2hlbHBlci9OREtIZWxwZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMzg1YTVkCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE3L3NhbXBsZXMvVGVhcG90L3NyYy9jb20vc2FtcGxlL2hlbHBlci9OREtIZWxwZXIuamF2YQpAQCAtMCwwICsxLDIwMyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBjb20uc2FtcGxlLmhlbHBlcjsKKworaW1wb3J0IGphdmEuaW8uRmlsZTsKK2ltcG9ydCBqYXZhLmlvLkZpbGVJbnB1dFN0cmVhbTsKKworaW1wb3J0IGphdmF4Lm1pY3JvZWRpdGlvbi5raHJvbm9zLm9wZW5nbGVzLkdMMTA7CisKK2ltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ29udGV4dDsKK2ltcG9ydCBhbmRyb2lkLmNvbnRlbnQucG0uQXBwbGljYXRpb25JbmZvOworaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuQml0bWFwOworaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuQml0bWFwRmFjdG9yeTsKK2ltcG9ydCBhbmRyb2lkLmdyYXBoaWNzLk1hdHJpeDsKK2ltcG9ydCBhbmRyb2lkLm1lZGlhLkF1ZGlvTWFuYWdlcjsKK2ltcG9ydCBhbmRyb2lkLm1lZGlhLkF1ZGlvVHJhY2s7CitpbXBvcnQgYW5kcm9pZC5vcGVuZ2wuR0xVdGlsczsKK2ltcG9ydCBhbmRyb2lkLnV0aWwuTG9nOworCitwdWJsaWMgY2xhc3MgTkRLSGVscGVyCit7CisgICAgcHJpdmF0ZSBzdGF0aWMgQ29udGV4dCBjb250ZXh0OworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHNldENvbnRleHQoQ29udGV4dCBjKQorICAgIHsKKyAgICAgICAgTG9nLmkoIk5ES0hlbHBlciIsICJzZXRDb250ZXh0OiIgKyBjKTsKKyAgICAgICAgY29udGV4dCA9IGM7CisgICAgfQorCisgICAgLy8KKyAgICAvLyBMb2FkIEJpdG1hcAorICAgIC8vIEphdmEgaGVscGVyIGlzIHVzZWZ1bCBkZWNvZGluZyBQTkcsIFRJRkYgZXRjIHJhdGhlciB0aGFuIGxpbmtpbmcgbGliUG5nCisgICAgLy8gZXRjIHNlcGFyYXRlbHkKKyAgICAvLworICAgIHByaXZhdGUgaW50IG5leHRQT1QoaW50IGkpCisgICAgeworICAgICAgICBpbnQgcG90ID0gMTsKKyAgICAgICAgd2hpbGUgKHBvdCA8IGkpCisgICAgICAgICAgICBwb3QgPDw9IDE7CisgICAgICAgIHJldHVybiBwb3Q7CisgICAgfQorCisgICAgcHJpdmF0ZSBCaXRtYXAgc2NhbGVCaXRtYXAoQml0bWFwIGJpdG1hcFRvU2NhbGUsIGZsb2F0IG5ld1dpZHRoLCBmbG9hdCBuZXdIZWlnaHQpCisgICAgeworICAgICAgICBpZiAoYml0bWFwVG9TY2FsZSA9PSBudWxsKQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIC8vIGdldCB0aGUgb3JpZ2luYWwgd2lkdGggYW5kIGhlaWdodAorICAgICAgICBpbnQgd2lkdGggPSBiaXRtYXBUb1NjYWxlLmdldFdpZHRoKCk7CisgICAgICAgIGludCBoZWlnaHQgPSBiaXRtYXBUb1NjYWxlLmdldEhlaWdodCgpOworICAgICAgICAvLyBjcmVhdGUgYSBtYXRyaXggZm9yIHRoZSBtYW5pcHVsYXRpb24KKyAgICAgICAgTWF0cml4IG1hdHJpeCA9IG5ldyBNYXRyaXgoKTsKKworICAgICAgICAvLyByZXNpemUgdGhlIGJpdCBtYXAKKyAgICAgICAgbWF0cml4LnBvc3RTY2FsZShuZXdXaWR0aCAvIHdpZHRoLCBuZXdIZWlnaHQgLyBoZWlnaHQpOworCisgICAgICAgIC8vIHJlY3JlYXRlIHRoZSBuZXcgQml0bWFwIGFuZCBzZXQgaXQgYmFjaworICAgICAgICByZXR1cm4gQml0bWFwLmNyZWF0ZUJpdG1hcChiaXRtYXBUb1NjYWxlLCAwLCAwLCBiaXRtYXBUb1NjYWxlLmdldFdpZHRoKCksCisgICAgICAgICAgICAgICAgYml0bWFwVG9TY2FsZS5nZXRIZWlnaHQoKSwgbWF0cml4LCB0cnVlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBsb2FkVGV4dHVyZShTdHJpbmcgcGF0aCkKKyAgICB7CisgICAgICAgIEJpdG1hcCBiaXRtYXAgPSBudWxsOworICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICAgICAgU3RyaW5nIHN0ciA9IHBhdGg7CisgICAgICAgICAgICBpZiAoIXBhdGguc3RhcnRzV2l0aCgiLyIpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN0ciA9ICIvIiArIHBhdGg7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEZpbGUgZmlsZSA9IG5ldyBGaWxlKGNvbnRleHQuZ2V0RXh0ZXJuYWxGaWxlc0RpcihudWxsKSwgc3RyKTsKKyAgICAgICAgICAgIGlmIChmaWxlLmNhblJlYWQoKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBiaXRtYXAgPSBCaXRtYXBGYWN0b3J5LmRlY29kZVN0cmVhbShuZXcgRmlsZUlucHV0U3RyZWFtKGZpbGUpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGJpdG1hcCA9IEJpdG1hcEZhY3RvcnkuZGVjb2RlU3RyZWFtKGNvbnRleHQuZ2V0UmVzb3VyY2VzKCkuZ2V0QXNzZXRzKCkKKyAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuKHBhdGgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIE1hdHJpeCBtYXRyaXggPSBuZXcgTWF0cml4KCk7CisgICAgICAgICAgICAvLyAvLyByZXNpemUgdGhlIGJpdCBtYXAKKyAgICAgICAgICAgIC8vIG1hdHJpeC5wb3N0U2NhbGUoLTFGLCAxRik7CisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gLy8gcmVjcmVhdGUgdGhlIG5ldyBCaXRtYXAgYW5kIHNldCBpdCBiYWNrCisgICAgICAgICAgICAvLyBiaXRtYXAgPSBCaXRtYXAuY3JlYXRlQml0bWFwKGJpdG1hcCwgMCwgMCwgYml0bWFwLmdldFdpZHRoKCksCisgICAgICAgICAgICAvLyBiaXRtYXAuZ2V0SGVpZ2h0KCksIG1hdHJpeCwgdHJ1ZSk7CisKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIExvZy53KCJOREtIZWxwZXIiLCAiQ291bmRuJ3QgbG9hZCBhIGZpbGU6IiArIHBhdGgpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGJpdG1hcCAhPSBudWxsKQorICAgICAgICB7CisgICAgICAgICAgICBHTFV0aWxzLnRleEltYWdlMkQoR0wxMC5HTF9URVhUVVJFXzJELCAwLCBiaXRtYXAsIDApOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgfQorCisgICAgcHVibGljIEJpdG1hcCBvcGVuQml0bWFwKFN0cmluZyBwYXRoLCBib29sZWFuIGlTY2FsZVBPVCkKKyAgICB7CisgICAgICAgIEJpdG1hcCBiaXRtYXAgPSBudWxsOworICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICAgICAgYml0bWFwID0gQml0bWFwRmFjdG9yeS5kZWNvZGVTdHJlYW0oY29udGV4dC5nZXRSZXNvdXJjZXMoKS5nZXRBc3NldHMoKQorICAgICAgICAgICAgICAgICAgICAub3BlbihwYXRoKSk7CisgICAgICAgICAgICBpZiAoaVNjYWxlUE9UKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGludCBvcmlnaW5hbFdpZHRoID0gZ2V0Qml0bWFwV2lkdGgoYml0bWFwKTsKKyAgICAgICAgICAgICAgICBpbnQgb3JpZ2luYWxIZWlnaHQgPSBnZXRCaXRtYXBIZWlnaHQoYml0bWFwKTsKKyAgICAgICAgICAgICAgICBpbnQgd2lkdGggPSBuZXh0UE9UKG9yaWdpbmFsV2lkdGgpOworICAgICAgICAgICAgICAgIGludCBoZWlnaHQgPSBuZXh0UE9UKG9yaWdpbmFsSGVpZ2h0KTsKKyAgICAgICAgICAgICAgICBpZiAob3JpZ2luYWxXaWR0aCAhPSB3aWR0aCB8fCBvcmlnaW5hbEhlaWdodCAhPSBoZWlnaHQpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAvLyBTY2FsZSBpdAorICAgICAgICAgICAgICAgICAgICBiaXRtYXAgPSBzY2FsZUJpdG1hcChiaXRtYXAsIHdpZHRoLCBoZWlnaHQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkKKyAgICAgICAgeworICAgICAgICAgICAgTG9nLncoIk5ES0hlbHBlciIsICJDb3VuZG4ndCBsb2FkIGEgZmlsZToiICsgcGF0aCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gYml0bWFwOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0Qml0bWFwV2lkdGgoQml0bWFwIGJtcCkKKyAgICB7CisgICAgICAgIHJldHVybiBibXAuZ2V0V2lkdGgoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldEJpdG1hcEhlaWdodChCaXRtYXAgYm1wKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGJtcC5nZXRIZWlnaHQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBnZXRCaXRtYXBQaXhlbHMoQml0bWFwIGJtcCwgaW50W10gcGl4ZWxzKQorICAgIHsKKyAgICAgICAgaW50IHcgPSBibXAuZ2V0V2lkdGgoKTsKKyAgICAgICAgaW50IGggPSBibXAuZ2V0SGVpZ2h0KCk7CisgICAgICAgIGJtcC5nZXRQaXhlbHMocGl4ZWxzLCAwLCB3LCAwLCAwLCB3LCBoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBjbG9zZUJpdG1hcChCaXRtYXAgYm1wKQorICAgIHsKKyAgICAgICAgYm1wLnJlY3ljbGUoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXROYXRpdmVMaWJyYXJ5RGlyZWN0b3J5KENvbnRleHQgYXBwQ29udGV4dCkKKyAgICB7CisgICAgICAgIEFwcGxpY2F0aW9uSW5mbyBhaSA9IGNvbnRleHQuZ2V0QXBwbGljYXRpb25JbmZvKCk7CisKKyAgICAgICAgTG9nLncoIk5ES0hlbHBlciIsICJhaS5uYXRpdmVMaWJyYXJ5RGlyOiIgKyBhaS5uYXRpdmVMaWJyYXJ5RGlyKTsKKworICAgICAgICBpZiAoKGFpLmZsYWdzICYgQXBwbGljYXRpb25JbmZvLkZMQUdfVVBEQVRFRF9TWVNURU1fQVBQKSAhPSAwCisgICAgICAgICAgICAgICAgfHwgKGFpLmZsYWdzICYgQXBwbGljYXRpb25JbmZvLkZMQUdfU1lTVEVNKSA9PSAwKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYWkubmF0aXZlTGlicmFyeURpcjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gIi9zeXN0ZW0vbGliLyI7CisgICAgfQorCisgICAgcHVibGljIGludCBnZXROYXRpdmVBdWRpb0J1ZmZlclNpemUoKQorICAgIHsKKyAgICAgICAgaW50IFNES19JTlQgPSBhbmRyb2lkLm9zLkJ1aWxkLlZFUlNJT04uU0RLX0lOVDsKKyAgICAgICAgaWYgKFNES19JTlQgPj0gMTcpCisgICAgICAgIHsKKyAgICAgICAgICAgIEF1ZGlvTWFuYWdlciBhbSA9IChBdWRpb01hbmFnZXIpIGNvbnRleHQKKyAgICAgICAgICAgICAgICAgICAgLmdldFN5c3RlbVNlcnZpY2UoQ29udGV4dC5BVURJT19TRVJWSUNFKTsKKyAgICAgICAgICAgIFN0cmluZyBmcmFtZXNQZXJCdWZmZXIgPSBhbQorICAgICAgICAgICAgICAgICAgICAuZ2V0UHJvcGVydHkoQXVkaW9NYW5hZ2VyLlBST1BFUlRZX09VVFBVVF9GUkFNRVNfUEVSX0JVRkZFUik7CisgICAgICAgICAgICByZXR1cm4gSW50ZWdlci5wYXJzZUludChmcmFtZXNQZXJCdWZmZXIpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldE5hdGl2ZUF1ZGlvU2FtcGxlUmF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gQXVkaW9UcmFjay5nZXROYXRpdmVPdXRwdXRTYW1wbGVSYXRlKEF1ZGlvTWFuYWdlci5TVFJFQU1fU1lTVEVNKTsKKworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE3L3NhbXBsZXMvVGVhcG90L3NyYy9jb20vc2FtcGxlL3RlYXBvdC9UZWFwb3RBcHBsaWNhdGlvbi5qYXZhIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE3L3NhbXBsZXMvVGVhcG90L3NyYy9jb20vc2FtcGxlL3RlYXBvdC9UZWFwb3RBcHBsaWNhdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiMjRiYzQKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTcvc2FtcGxlcy9UZWFwb3Qvc3JjL2NvbS9zYW1wbGUvdGVhcG90L1RlYXBvdEFwcGxpY2F0aW9uLmphdmEKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBjb20uc2FtcGxlLnRlYXBvdDsKKworaW1wb3J0IGphdmF4Lm1pY3JvZWRpdGlvbi5raHJvbm9zLm9wZW5nbGVzLkdMMTA7CisKK2ltcG9ydCBhbmRyb2lkLmFwcC5BcHBsaWNhdGlvbjsKK2ltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ29udGV4dDsKK2ltcG9ydCBhbmRyb2lkLmNvbnRlbnQucG0uQXBwbGljYXRpb25JbmZvOworaW1wb3J0IGFuZHJvaWQuY29udGVudC5wbS5QYWNrYWdlTWFuYWdlcjsKK2ltcG9ydCBhbmRyb2lkLmNvbnRlbnQucG0uUGFja2FnZU1hbmFnZXIuTmFtZU5vdEZvdW5kRXhjZXB0aW9uOworaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuQml0bWFwOworaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuQml0bWFwRmFjdG9yeTsKK2ltcG9ydCBhbmRyb2lkLmdyYXBoaWNzLk1hdHJpeDsKK2ltcG9ydCBhbmRyb2lkLm9wZW5nbC5HTFV0aWxzOworaW1wb3J0IGFuZHJvaWQudXRpbC5Mb2c7CitpbXBvcnQgYW5kcm9pZC53aWRnZXQuVG9hc3Q7CisKK3B1YmxpYyBjbGFzcyBUZWFwb3RBcHBsaWNhdGlvbiBleHRlbmRzIEFwcGxpY2F0aW9uIHsKKyAgICBwdWJsaWMgdm9pZCBvbkNyZWF0ZSgpeworICAgICAgICBMb2cudygibmF0aXZlLWFjdGl2aXR5IiwgIm9uQ3JlYXRlIik7CisKKyAgICAgICAgZmluYWwgUGFja2FnZU1hbmFnZXIgcG0gPSBnZXRBcHBsaWNhdGlvbkNvbnRleHQoKS5nZXRQYWNrYWdlTWFuYWdlcigpOworICAgICAgICBBcHBsaWNhdGlvbkluZm8gYWk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBhaSA9IHBtLmdldEFwcGxpY2F0aW9uSW5mbyggdGhpcy5nZXRQYWNrYWdlTmFtZSgpLCAwKTsKKyAgICAgICAgfSBjYXRjaCAoZmluYWwgTmFtZU5vdEZvdW5kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGFpID0gbnVsbDsKKyAgICAgICAgfQorICAgICAgICBmaW5hbCBTdHJpbmcgYXBwbGljYXRpb25OYW1lID0gKFN0cmluZykgKGFpICE9IG51bGwgPyBwbS5nZXRBcHBsaWNhdGlvbkxhYmVsKGFpKSA6ICIodW5rbm93bikiKTsKKyAgICAgICAgVG9hc3QubWFrZVRleHQodGhpcywgYXBwbGljYXRpb25OYW1lLCBUb2FzdC5MRU5HVEhfU0hPUlQpLnNob3coKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTcvc2FtcGxlcy9UZWFwb3Qvc3JjL2NvbS9zYW1wbGUvdGVhcG90L1RlYXBvdE5hdGl2ZUFjdGl2aXR5LmphdmEgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTcvc2FtcGxlcy9UZWFwb3Qvc3JjL2NvbS9zYW1wbGUvdGVhcG90L1RlYXBvdE5hdGl2ZUFjdGl2aXR5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWUyOTZlNAotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xNy9zYW1wbGVzL1RlYXBvdC9zcmMvY29tL3NhbXBsZS90ZWFwb3QvVGVhcG90TmF0aXZlQWN0aXZpdHkuamF2YQpAQCAtMCwwICsxLDE0NCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBjb20uc2FtcGxlLnRlYXBvdDsKKworaW1wb3J0IGFuZHJvaWQuYXBwLk5hdGl2ZUFjdGl2aXR5OworaW1wb3J0IGFuZHJvaWQub3MuQnVuZGxlOworaW1wb3J0IGFuZHJvaWQudmlldy5HcmF2aXR5OworaW1wb3J0IGFuZHJvaWQudmlldy5MYXlvdXRJbmZsYXRlcjsKK2ltcG9ydCBhbmRyb2lkLnZpZXcuVmlldzsKK2ltcG9ydCBhbmRyb2lkLnZpZXcuVmlld0dyb3VwLk1hcmdpbkxheW91dFBhcmFtczsKK2ltcG9ydCBhbmRyb2lkLnZpZXcuV2luZG93TWFuYWdlci5MYXlvdXRQYXJhbXM7CitpbXBvcnQgYW5kcm9pZC53aWRnZXQuTGluZWFyTGF5b3V0OworaW1wb3J0IGFuZHJvaWQud2lkZ2V0LlBvcHVwV2luZG93OworaW1wb3J0IGFuZHJvaWQud2lkZ2V0LlRleHRWaWV3OworCitwdWJsaWMgY2xhc3MgVGVhcG90TmF0aXZlQWN0aXZpdHkgZXh0ZW5kcyBOYXRpdmVBY3Rpdml0eSB7CisgICAgQE92ZXJyaWRlCisgICAgcHJvdGVjdGVkIHZvaWQgb25DcmVhdGUoQnVuZGxlIHNhdmVkSW5zdGFuY2VTdGF0ZSkgeworICAgICAgICBzdXBlci5vbkNyZWF0ZShzYXZlZEluc3RhbmNlU3RhdGUpOworICAgICAgICAvL0hpZGUgdG9vbGJhcgorICAgICAgICBpbnQgU0RLX0lOVCA9IGFuZHJvaWQub3MuQnVpbGQuVkVSU0lPTi5TREtfSU5UOworICAgICAgICBpZihTREtfSU5UID49IDE5KQorICAgICAgICB7CisgICAgICAgICAgICBzZXRJbW1lcnNpdmVTdGlja3koKTsKKworICAgICAgICAgICAgVmlldyBkZWNvclZpZXcgPSBnZXRXaW5kb3coKS5nZXREZWNvclZpZXcoKTsKKyAgICAgICAgICAgIGRlY29yVmlldy5zZXRPblN5c3RlbVVpVmlzaWJpbGl0eUNoYW5nZUxpc3RlbmVyCisgICAgICAgICAgICAgICAgICAgIChuZXcgVmlldy5PblN5c3RlbVVpVmlzaWJpbGl0eUNoYW5nZUxpc3RlbmVyKCkgeworICAgICAgICAgICAgICAgIEBPdmVycmlkZQorICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIG9uU3lzdGVtVWlWaXNpYmlsaXR5Q2hhbmdlKGludCB2aXNpYmlsaXR5KSB7CisgICAgICAgICAgICAgICAgICAgIHNldEltbWVyc2l2ZVN0aWNreSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBvblJlc3VtZSgpIHsKKyAgICAgICAgc3VwZXIub25SZXN1bWUoKTsKKworICAgICAgICAvL0hpZGUgdG9vbGJhcgorICAgICAgICBpbnQgU0RLX0lOVCA9IGFuZHJvaWQub3MuQnVpbGQuVkVSU0lPTi5TREtfSU5UOworICAgICAgICBpZihTREtfSU5UID49IDExICYmIFNES19JTlQgPCAxNCkKKyAgICAgICAgeworICAgICAgICAgICAgZ2V0V2luZG93KCkuZ2V0RGVjb3JWaWV3KCkuc2V0U3lzdGVtVWlWaXNpYmlsaXR5KFZpZXcuU1RBVFVTX0JBUl9ISURERU4pOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYoU0RLX0lOVCA+PSAxNCAmJiBTREtfSU5UIDwgMTkpCisgICAgICAgIHsKKyAgICAgICAgICAgIGdldFdpbmRvdygpLmdldERlY29yVmlldygpLnNldFN5c3RlbVVpVmlzaWJpbGl0eShWaWV3LlNZU1RFTV9VSV9GTEFHX0ZVTExTQ1JFRU4gfCBWaWV3LlNZU1RFTV9VSV9GTEFHX0xPV19QUk9GSUxFKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmKFNES19JTlQgPj0gMTkpCisgICAgICAgIHsKKyAgICAgICAgICAgIHNldEltbWVyc2l2ZVN0aWNreSgpOworICAgICAgICB9CisKKyAgICB9CisgICAgLy8gT3VyIHBvcHVwIHdpbmRvdywgeW91IHdpbGwgY2FsbCBpdCBmcm9tIHlvdXIgQy9DKysgY29kZSBsYXRlcgorCisgICAgdm9pZCBzZXRJbW1lcnNpdmVTdGlja3koKSB7CisgICAgICAgIFZpZXcgZGVjb3JWaWV3ID0gZ2V0V2luZG93KCkuZ2V0RGVjb3JWaWV3KCk7CisgICAgICAgIGRlY29yVmlldy5zZXRTeXN0ZW1VaVZpc2liaWxpdHkoVmlldy5TWVNURU1fVUlfRkxBR19GVUxMU0NSRUVOCisgICAgICAgICAgICAgICAgfCBWaWV3LlNZU1RFTV9VSV9GTEFHX0hJREVfTkFWSUdBVElPTgorICAgICAgICAgICAgICAgIHwgVmlldy5TWVNURU1fVUlfRkxBR19JTU1FUlNJVkVfU1RJQ0tZCisgICAgICAgICAgICAgICAgfCBWaWV3LlNZU1RFTV9VSV9GTEFHX0xBWU9VVF9GVUxMU0NSRUVOCisgICAgICAgICAgICAgICAgfCBWaWV3LlNZU1RFTV9VSV9GTEFHX0xBWU9VVF9ISURFX05BVklHQVRJT04KKyAgICAgICAgICAgICAgICB8IFZpZXcuU1lTVEVNX1VJX0ZMQUdfTEFZT1VUX1NUQUJMRSk7CisgICAgfQorCisgICAgVGVhcG90TmF0aXZlQWN0aXZpdHkgX2FjdGl2aXR5OworICAgIFBvcHVwV2luZG93IF9wb3B1cFdpbmRvdzsKKyAgICBUZXh0VmlldyBfbGFiZWw7CisKKyAgICBwdWJsaWMgdm9pZCBzaG93VUkoKQorICAgIHsKKyAgICAgICAgaWYoIF9wb3B1cFdpbmRvdyAhPSBudWxsICkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBfYWN0aXZpdHkgPSB0aGlzOworCisgICAgICAgIHRoaXMucnVuT25VaVRocmVhZChuZXcgUnVubmFibGUoKSAgeworICAgICAgICAgICAgQE92ZXJyaWRlCisgICAgICAgICAgICBwdWJsaWMgdm9pZCBydW4oKSAgeworICAgICAgICAgICAgICAgIExheW91dEluZmxhdGVyIGxheW91dEluZmxhdGVyCisgICAgICAgICAgICAgICAgPSAoTGF5b3V0SW5mbGF0ZXIpZ2V0QmFzZUNvbnRleHQoKQorICAgICAgICAgICAgICAgIC5nZXRTeXN0ZW1TZXJ2aWNlKExBWU9VVF9JTkZMQVRFUl9TRVJWSUNFKTsKKyAgICAgICAgICAgICAgICBWaWV3IHBvcHVwVmlldyA9IGxheW91dEluZmxhdGVyLmluZmxhdGUoUi5sYXlvdXQud2lkZ2V0cywgbnVsbCk7CisgICAgICAgICAgICAgICAgX3BvcHVwV2luZG93ID0gbmV3IFBvcHVwV2luZG93KAorICAgICAgICAgICAgICAgICAgICAgICAgcG9wdXBWaWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgTGF5b3V0UGFyYW1zLldSQVBfQ09OVEVOVCwKKyAgICAgICAgICAgICAgICAgICAgICAgIExheW91dFBhcmFtcy5XUkFQX0NPTlRFTlQpOworCisgICAgICAgICAgICAgICAgTGluZWFyTGF5b3V0IG1haW5MYXlvdXQgPSBuZXcgTGluZWFyTGF5b3V0KF9hY3Rpdml0eSk7CisgICAgICAgICAgICAgICAgTWFyZ2luTGF5b3V0UGFyYW1zIHBhcmFtcyA9IG5ldyBNYXJnaW5MYXlvdXRQYXJhbXMoTGF5b3V0UGFyYW1zLldSQVBfQ09OVEVOVCwgTGF5b3V0UGFyYW1zLldSQVBfQ09OVEVOVCk7CisgICAgICAgICAgICAgICAgcGFyYW1zLnNldE1hcmdpbnMoMCwgMCwgMCwgMCk7CisgICAgICAgICAgICAgICAgX2FjdGl2aXR5LnNldENvbnRlbnRWaWV3KG1haW5MYXlvdXQsIHBhcmFtcyk7CisKKyAgICAgICAgICAgICAgICAvLyBTaG93IG91ciBVSSBvdmVyIE5hdGl2ZUFjdGl2aXR5IHdpbmRvdworICAgICAgICAgICAgICAgIF9wb3B1cFdpbmRvdy5zaG93QXRMb2NhdGlvbihtYWluTGF5b3V0LCBHcmF2aXR5LlRPUCB8IEdyYXZpdHkuTEVGVCwgMTAsIDEwKTsKKyAgICAgICAgICAgICAgICBfcG9wdXBXaW5kb3cudXBkYXRlKCk7CisKKyAgICAgICAgICAgICAgICBfbGFiZWwgPSAoVGV4dFZpZXcpcG9wdXBWaWV3LmZpbmRWaWV3QnlJZChSLmlkLnRleHRWaWV3RlBTKTsKKworICAgICAgICAgICAgfX0pOworICAgIH0KKworICAgIHByb3RlY3RlZCB2b2lkIG9uUGF1c2UoKQorICAgIHsKKyAgICAgICAgc3VwZXIub25QYXVzZSgpOworICAgICAgICBpZiAoX3BvcHVwV2luZG93ICE9IG51bGwpIHsKKyAgICAgICAgICAgIF9wb3B1cFdpbmRvdy5kaXNtaXNzKCk7CisgICAgICAgICAgICBfcG9wdXBXaW5kb3cgPSBudWxsOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdXBkYXRlRlBTKGZpbmFsIGZsb2F0IGZGUFMpCisgICAgeworICAgICAgICBpZiggX2xhYmVsID09IG51bGwgKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIF9hY3Rpdml0eSA9IHRoaXM7CisgICAgICAgIHRoaXMucnVuT25VaVRocmVhZChuZXcgUnVubmFibGUoKSAgeworICAgICAgICAgICAgQE92ZXJyaWRlCisgICAgICAgICAgICBwdWJsaWMgdm9pZCBydW4oKSAgeworICAgICAgICAgICAgICAgIF9sYWJlbC5zZXRUZXh0KFN0cmluZy5mb3JtYXQoIiUyLjJmIEZQUyIsIGZGUFMpKTsKKworICAgICAgICAgICAgfX0pOworICAgIH0KK30KKworCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvYXJjaC1hcm0vc3ltYm9scy9saWJtLnNvLmZ1bmN0aW9ucy50eHQgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvYXJjaC1hcm0vc3ltYm9scy9saWJtLnNvLmZ1bmN0aW9ucy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzcwMTkxNwotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOC9hcmNoLWFybS9zeW1ib2xzL2xpYm0uc28uZnVuY3Rpb25zLnR4dApAQCAtMCwwICsxLDIzOSBAQAorX19hZGRzZjMKK19fYWVhYmlfY2ZjbXBlcQorX19hZWFiaV9jZmNtcGxlCitfX2FlYWJpX2NmcmNtcGxlCitfX2FlYWJpX2QybHoKK19fYWVhYmlfZDJ1aXoKK19fYWVhYmlfZDJ1bHoKK19fYWVhYmlfZGNtcHVuCitfX2FlYWJpX2YyaXoKK19fYWVhYmlfZjJsegorX19hZWFiaV9mMnVsegorX19hZWFiaV9mYWRkCitfX2FlYWJpX2ZjbXBlcQorX19hZWFiaV9mY21wZ2UKK19fYWVhYmlfZmNtcGd0CitfX2FlYWJpX2ZjbXBsZQorX19hZWFiaV9mY21wbHQKK19fYWVhYmlfZmNtcHVuCitfX2FlYWJpX2ZkaXYKK19fYWVhYmlfZm11bAorX19hZWFiaV9mcnN1YgorX19hZWFiaV9mc3ViCitfX2FlYWJpX2kyZgorX19hZWFiaV9sMmYKK19fYWVhYmlfdWkyZgorX19hZWFiaV91bDJmCitfX2NtcHNmMgorX19kaXZzZjMKK19fZXFzZjIKK19fZXhwX19ECitfX2ZpeGRmZGkKK19fZml4c2ZkaQorX19maXhzZnNpCitfX2ZpeHVuc2RmZGkKK19fZml4dW5zZGZzaQorX19maXh1bnNzZmRpCitfX2Zsb2F0ZGlzZgorX19mbG9hdHNpc2YKK19fZmxvYXR1bmRpc2YKK19fZmxvYXR1bnNpc2YKK19fZnBjbGFzc2lmeWQKK19fZnBjbGFzc2lmeWYKK19fZnBjbGFzc2lmeWwKK19fZ2VzZjIKK19fZ3RzZjIKK19faWVlZTc1NF9yZW1fcGlvMgorX19pZWVlNzU0X3JlbV9waW8yZgorX19pc2Zpbml0ZQorX19pc2Zpbml0ZWYKK19faXNmaW5pdGVsCitfX2lzaW5mCitfX2lzaW5mZgorX19pc2luZmwKK19faXNuYW5sCitfX2lzbm9ybWFsCitfX2lzbm9ybWFsZgorX19pc25vcm1hbGwKK19fa2VybmVsX2NvcworX19rZXJuZWxfY29zZGYKK19fa2VybmVsX3JlbV9waW8yCitfX2tlcm5lbF9zaW4KK19fa2VybmVsX3NpbmRmCitfX2tlcm5lbF90YW4KK19fa2VybmVsX3RhbmRmCitfX2xlc2YyCitfX2xvZ19fRAorX19sdHNmMgorX19tdWxzZjMKK19fbmVzZjIKK19fc2lnbmJpdAorX19zaWduYml0ZgorX19zaWduYml0bAorX19zdWJzZjMKK19fdW5vcmRkZjIKK19fdW5vcmRzZjIKK2Fjb3MKK2Fjb3NmCithY29zaAorYWNvc2hmCithc2luCithc2luZgorYXNpbmgKK2FzaW5oZgorYXRhbgorYXRhbjIKK2F0YW4yZgorYXRhbmYKK2F0YW5oCithdGFuaGYKK2NicnQKK2NicnRmCitjZWlsCitjZWlsZgorY2VpbGwKK2NvcHlzaWduCitjb3B5c2lnbmYKK2NvcHlzaWdubAorY29zCitjb3NmCitjb3NoCitjb3NoZgorZHJlbQorZHJlbWYKK2VyZgorZXJmYworZXJmY2YKK2VyZmYKK2V4cAorZXhwMgorZXhwMmYKK2V4cGYKK2V4cG0xCitleHBtMWYKK2ZhYnMKK2ZhYnNmCitmYWJzbAorZmRpbQorZmRpbWYKK2ZkaW1sCitmaW5pdGUKK2Zpbml0ZWYKK2Zsb29yCitmbG9vcmYKK2Zsb29ybAorZm1hCitmbWFmCitmbWF4CitmbWF4ZgorZm1heGwKK2ZtaW4KK2ZtaW5mCitmbWlubAorZm1vZAorZm1vZGYKK2ZyZXhwCitmcmV4cGYKK2dhbW1hCitnYW1tYV9yCitnYW1tYWYKK2dhbW1hZl9yCitoeXBvdAoraHlwb3RmCitpbG9nYgoraWxvZ2JmCitpbG9nYmwKK2lzbmFuCitpc25hbmYKK2owCitqMGYKK2oxCitqMWYKK2puCitqbmYKK2xkZXhwCitsZGV4cGYKK2xkZXhwbAorbGdhbW1hCitsZ2FtbWFfcgorbGdhbW1hZgorbGdhbW1hZl9yCitsbHJpbnQKK2xscmludGYKK2xscm91bmQKK2xscm91bmRmCitsbHJvdW5kbAorbG9nCitsb2cxMAorbG9nMTBmCitsb2cxcAorbG9nMXBmCitsb2cyCitsb2cyZgorbG9nMmwKK2xvZ2IKK2xvZ2JmCitsb2dibAorbG9nZgorbHJpbnQKK2xyaW50ZgorbHJvdW5kCitscm91bmRmCitscm91bmRsCittb2RmCittb2RmZgorbmFuCituYW5mCituYW5sCituZWFyYnlpbnQKK25lYXJieWludGYKK25leHRhZnRlcgorbmV4dGFmdGVyZgorbmV4dHRvd2FyZAorbmV4dHRvd2FyZGYKK25leHR0b3dhcmRsCitwb3cKK3Bvd2YKK3JlbWFpbmRlcgorcmVtYWluZGVyZgorcmVtcXVvCityZW1xdW9mCityaW50CityaW50Zgorcm91bmQKK3JvdW5kZgorcm91bmRsCitzY2FsYgorc2NhbGJmCitzY2FsYmxuCitzY2FsYmxuZgorc2NhbGJsbmwKK3NjYWxibgorc2NhbGJuZgorc2NhbGJubAorc2lnbmlmaWNhbmQKK3NpZ25pZmljYW5kZgorc2luCitzaW5jb3MKK3NpbmNvc2YKK3NpbmNvc2wKK3NpbmYKK3NpbmgKK3NpbmhmCitzcXJ0CitzcXJ0ZgordGFuCit0YW5mCit0YW5oCit0YW5oZgordGdhbW1hCit0Z2FtbWFmCit0cnVuYwordHJ1bmNmCit0cnVuY2wKK3kwCit5MGYKK3kxCit5MWYKK3luCit5bmYKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOC9hcmNoLWFybS9zeW1ib2xzL2xpYm0uc28udmFyaWFibGVzLnR4dCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOC9hcmNoLWFybS9zeW1ib2xzL2xpYm0uc28udmFyaWFibGVzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMWI2M2ZjCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L2FyY2gtYXJtL3N5bWJvbHMvbGlibS5zby52YXJpYWJsZXMudHh0CkBAIC0wLDAgKzEsMiBAQAorX19mZV9kZmxfZW52CitzaWduZ2FtCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvYXJjaC1taXBzL3N5bWJvbHMvbGlibS5zby5mdW5jdGlvbnMudHh0IGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L2FyY2gtbWlwcy9zeW1ib2xzL2xpYm0uc28uZnVuY3Rpb25zLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzM2MGJhCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L2FyY2gtbWlwcy9zeW1ib2xzL2xpYm0uc28uZnVuY3Rpb25zLnR4dApAQCAtMCwwICsxLDE5MSBAQAorX19leHBfX0QKK19fZnBjbGFzc2lmeWQKK19fZnBjbGFzc2lmeWYKK19fZnBjbGFzc2lmeWwKK19faWVlZTc1NF9yZW1fcGlvMgorX19pZWVlNzU0X3JlbV9waW8yZgorX19pc2Zpbml0ZQorX19pc2Zpbml0ZWYKK19faXNmaW5pdGVsCitfX2lzaW5mCitfX2lzaW5mZgorX19pc2luZmwKK19faXNuYW5sCitfX2lzbm9ybWFsCitfX2lzbm9ybWFsZgorX19pc25vcm1hbGwKK19fa2VybmVsX2NvcworX19rZXJuZWxfY29zZGYKK19fa2VybmVsX3JlbV9waW8yCitfX2tlcm5lbF9zaW4KK19fa2VybmVsX3NpbmRmCitfX2tlcm5lbF90YW4KK19fa2VybmVsX3RhbmRmCitfX2xvZ19fRAorX19zaWduYml0CitfX3NpZ25iaXRmCitfX3NpZ25iaXRsCithY29zCithY29zZgorYWNvc2gKK2Fjb3NoZgorYXNpbgorYXNpbmYKK2FzaW5oCithc2luaGYKK2F0YW4KK2F0YW4yCithdGFuMmYKK2F0YW5mCithdGFuaAorYXRhbmhmCitjYnJ0CitjYnJ0ZgorY2VpbAorY2VpbGYKK2NlaWxsCitjb3B5c2lnbgorY29weXNpZ25mCitjb3B5c2lnbmwKK2NvcworY29zZgorY29zaAorY29zaGYKK2RyZW0KK2RyZW1mCitlcmYKK2VyZmMKK2VyZmNmCitlcmZmCitleHAKK2V4cDIKK2V4cDJmCitleHBmCitleHBtMQorZXhwbTFmCitmYWJzCitmYWJzZgorZmFic2wKK2ZkaW0KK2ZkaW1mCitmZGltbAorZmluaXRlCitmaW5pdGVmCitmbG9vcgorZmxvb3JmCitmbG9vcmwKK2ZtYQorZm1hZgorZm1heAorZm1heGYKK2ZtYXhsCitmbWluCitmbWluZgorZm1pbmwKK2Ztb2QKK2Ztb2RmCitmcmV4cAorZnJleHBmCitnYW1tYQorZ2FtbWFfcgorZ2FtbWFmCitnYW1tYWZfcgoraHlwb3QKK2h5cG90ZgoraWxvZ2IKK2lsb2diZgoraWxvZ2JsCitpc25hbgoraXNuYW5mCitqMAorajBmCitqMQorajFmCitqbgoram5mCitsZGV4cAorbGRleHBmCitsZGV4cGwKK2xnYW1tYQorbGdhbW1hX3IKK2xnYW1tYWYKK2xnYW1tYWZfcgorbGxyaW50CitsbHJpbnRmCitsbHJvdW5kCitsbHJvdW5kZgorbGxyb3VuZGwKK2xvZworbG9nMTAKK2xvZzEwZgorbG9nMXAKK2xvZzFwZgorbG9nMgorbG9nMmYKK2xvZzJsCitsb2diCitsb2diZgorbG9nYmwKK2xvZ2YKK2xyaW50CitscmludGYKK2xyb3VuZAorbHJvdW5kZgorbHJvdW5kbAorbW9kZgorbW9kZmYKK25hbgorbmFuZgorbmFubAorbmVhcmJ5aW50CituZWFyYnlpbnRmCituZXh0YWZ0ZXIKK25leHRhZnRlcmYKK25leHR0b3dhcmQKK25leHR0b3dhcmRmCituZXh0dG93YXJkbAorcG93Citwb3dmCityZW1haW5kZXIKK3JlbWFpbmRlcmYKK3JlbXF1bworcmVtcXVvZgorcmludAorcmludGYKK3JvdW5kCityb3VuZGYKK3JvdW5kbAorc2NhbGIKK3NjYWxiZgorc2NhbGJsbgorc2NhbGJsbmYKK3NjYWxibG5sCitzY2FsYm4KK3NjYWxibmYKK3NjYWxibmwKK3NpZ25pZmljYW5kCitzaWduaWZpY2FuZGYKK3Npbgorc2luY29zCitzaW5jb3NmCitzaW5jb3NsCitzaW5mCitzaW5oCitzaW5oZgorc3FydAorc3FydGYKK3RhbgordGFuZgordGFuaAordGFuaGYKK3RnYW1tYQordGdhbW1hZgordHJ1bmMKK3RydW5jZgordHJ1bmNsCit5MAoreTBmCit5MQoreTFmCit5bgoreW5mCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvYXJjaC1taXBzL3N5bWJvbHMvbGlibS5zby52YXJpYWJsZXMudHh0IGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L2FyY2gtbWlwcy9zeW1ib2xzL2xpYm0uc28udmFyaWFibGVzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMWI2M2ZjCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L2FyY2gtbWlwcy9zeW1ib2xzL2xpYm0uc28udmFyaWFibGVzLnR4dApAQCAtMCwwICsxLDIgQEAKK19fZmVfZGZsX2Vudgorc2lnbmdhbQpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L2FyY2gteDg2L3N5bWJvbHMvbGlibS5zby5mdW5jdGlvbnMudHh0IGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L2FyY2gteDg2L3N5bWJvbHMvbGlibS5zby5mdW5jdGlvbnMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3OGYwZTMKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvYXJjaC14ODYvc3ltYm9scy9saWJtLnNvLmZ1bmN0aW9ucy50eHQKQEAgLTAsMCArMSwyMDIgQEAKK19fZXhwX19ECitfX2ZwY2xhc3NpZnlkCitfX2ZwY2xhc3NpZnlmCitfX2ZwY2xhc3NpZnlsCitfX2llZWU3NTRfcmVtX3BpbzIKK19faWVlZTc1NF9yZW1fcGlvMmYKK19faXNmaW5pdGUKK19faXNmaW5pdGVmCitfX2lzZmluaXRlbAorX19pc2luZgorX19pc2luZmYKK19faXNpbmZsCitfX2lzbmFubAorX19pc25vcm1hbAorX19pc25vcm1hbGYKK19faXNub3JtYWxsCitfX2tlcm5lbF9jb3MKK19fa2VybmVsX2Nvc2RmCitfX2tlcm5lbF9yZW1fcGlvMgorX19rZXJuZWxfc2luCitfX2tlcm5lbF9zaW5kZgorX19rZXJuZWxfdGFuCitfX2tlcm5lbF90YW5kZgorX19sb2dfX0QKK19fc2lnbmJpdAorX19zaWduYml0ZgorX19zaWduYml0bAorX3NjYW5fbmFuCithY29zCithY29zZgorYWNvc2gKK2Fjb3NoZgorYXNpbgorYXNpbmYKK2FzaW5oCithc2luaGYKK2F0YW4KK2F0YW4yCithdGFuMmYKK2F0YW5mCithdGFuaAorYXRhbmhmCitjYnJ0CitjYnJ0ZgorY2VpbAorY2VpbGYKK2NlaWxsCitjb3B5c2lnbgorY29weXNpZ25mCitjb3B5c2lnbmwKK2NvcworY29zZgorY29zaAorY29zaGYKK2RyZW0KK2RyZW1mCitlcmYKK2VyZmMKK2VyZmNmCitlcmZmCitleHAKK2V4cDIKK2V4cDJmCitleHBmCitleHBtMQorZXhwbTFmCitmYWJzCitmYWJzZgorZmFic2wKK2ZkaW0KK2ZkaW1mCitmZGltbAorZmVjbGVhcmV4Y2VwdAorZmVkaXNhYmxlZXhjZXB0CitmZWVuYWJsZWV4Y2VwdAorZmVnZXRlbnYKK2ZlZ2V0ZXhjZXB0CitmZWdldGV4Y2VwdGZsYWcKK2ZlZ2V0cm91bmQKK2ZlaG9sZGV4Y2VwdAorZmVyYWlzZWV4Y2VwdAorZmVzZXRlbnYKK2Zlc2V0ZXhjZXB0ZmxhZworZmVzZXRyb3VuZAorZmV0ZXN0ZXhjZXB0CitmZXVwZGF0ZWVudgorZmluaXRlCitmaW5pdGVmCitmbG9vcgorZmxvb3JmCitmbG9vcmwKK2ZtYQorZm1hZgorZm1heAorZm1heGYKK2ZtYXhsCitmbWluCitmbWluZgorZm1pbmwKK2Ztb2QKK2Ztb2RmCitmcmV4cAorZnJleHBmCitnYW1tYQorZ2FtbWFfcgorZ2FtbWFmCitnYW1tYWZfcgoraHlwb3QKK2h5cG90ZgoraWxvZ2IKK2lsb2diZgoraWxvZ2JsCitpc25hbgoraXNuYW5mCitqMAorajBmCitqMQorajFmCitqbgoram5mCitsZGV4cGYKK2xkZXhwbAorbGdhbW1hCitsZ2FtbWFfcgorbGdhbW1hZgorbGdhbW1hZl9yCitsbHJpbnQKK2xscmludGYKK2xscm91bmQKK2xscm91bmRmCitsbHJvdW5kbAorbG9nCitsb2cxMAorbG9nMTBmCitsb2cxcAorbG9nMXBmCitsb2cyCitsb2cyZgorbG9nMmwKK2xvZ2IKK2xvZ2JmCitsb2dibAorbG9nZgorbHJpbnQKK2xyaW50ZgorbHJvdW5kCitscm91bmRmCitscm91bmRsCittb2RmCittb2RmZgorbmFuCituYW5mCituYW5sCituZWFyYnlpbnQKK25lYXJieWludGYKK25leHRhZnRlcgorbmV4dGFmdGVyZgorbmV4dHRvd2FyZAorbmV4dHRvd2FyZGYKK25leHR0b3dhcmRsCitwb3cKK3Bvd2YKK3JlbWFpbmRlcgorcmVtYWluZGVyZgorcmVtcXVvCityZW1xdW9mCityaW50CityaW50Zgorcm91bmQKK3JvdW5kZgorcm91bmRsCitzY2FsYgorc2NhbGJmCitzY2FsYm4KK3NjYWxibmYKK3NjYWxibmwKK3NpZ25pZmljYW5kCitzaWduaWZpY2FuZGYKK3Npbgorc2luY29zCitzaW5jb3NmCitzaW5jb3NsCitzaW5mCitzaW5oCitzaW5oZgorc3FydAorc3FydGYKK3RhbgordGFuZgordGFuaAordGFuaGYKK3RnYW1tYQordGdhbW1hZgordHJ1bmMKK3RydW5jZgordHJ1bmNsCit5MAoreTBmCit5MQoreTFmCit5bgoreW5mCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvYXJjaC14ODYvc3ltYm9scy9saWJtLnNvLnZhcmlhYmxlcy50eHQgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvYXJjaC14ODYvc3ltYm9scy9saWJtLnNvLnZhcmlhYmxlcy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmU1Y2RlZQotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOC9hcmNoLXg4Ni9zeW1ib2xzL2xpYm0uc28udmFyaWFibGVzLnR4dApAQCAtMCwwICsxLDMgQEAKK19fZmVfZGZsX2VudgorX19oYXNfc3NlCitzaWduZ2FtCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvaW5jbHVkZS9hbmRyb2lkL2JpdG1hcC5oIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L2luY2x1ZGUvYW5kcm9pZC9iaXRtYXAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZTE4NzYzCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L2luY2x1ZGUvYW5kcm9pZC9iaXRtYXAuaApAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0JJVE1BUF9ICisjZGVmaW5lIEFORFJPSURfQklUTUFQX0gKKworI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPGpuaS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKyNkZWZpbmUgQU5EUk9JRF9CSVRNQVBfUkVTVUxUX1NVQ0NFU1MgICAgICAgICAgICAwCisjZGVmaW5lIEFORFJPSURfQklUTUFQX1JFU1VMVF9CQURfUEFSQU1FVEVSICAgICAtMQorI2RlZmluZSBBTkRST0lEX0JJVE1BUF9SRVNVTFRfSk5JX0VYQ0VQVElPTiAgICAgLTIKKyNkZWZpbmUgQU5EUk9JRF9CSVRNQVBfUkVTVUxUX0FMTE9DQVRJT05fRkFJTEVEIC0zCisKKy8qIEJhY2t3YXJkIGNvbXBhdGliaWxpdHk6IHRoaXMgbWFjcm8gdXNlZCB0byBiZSBtaXNzcGVsbGVkLiAqLworI2RlZmluZSBBTkRST0lEX0JJVE1BUF9SRVNVVF9TVUNDRVNTIEFORFJPSURfQklUTUFQX1JFU1VMVF9TVUNDRVNTCisKK2VudW0gQW5kcm9pZEJpdG1hcEZvcm1hdCB7CisgICAgQU5EUk9JRF9CSVRNQVBfRk9STUFUX05PTkUgICAgICA9IDAsCisgICAgQU5EUk9JRF9CSVRNQVBfRk9STUFUX1JHQkFfODg4OCA9IDEsCisgICAgQU5EUk9JRF9CSVRNQVBfRk9STUFUX1JHQl81NjUgICA9IDQsCisgICAgQU5EUk9JRF9CSVRNQVBfRk9STUFUX1JHQkFfNDQ0NCA9IDcsCisgICAgQU5EUk9JRF9CSVRNQVBfRk9STUFUX0FfOCAgICAgICA9IDgsCit9OworCit0eXBlZGVmIHN0cnVjdCB7CisgICAgdWludDMyX3QgICAgd2lkdGg7CisgICAgdWludDMyX3QgICAgaGVpZ2h0OworICAgIHVpbnQzMl90ICAgIHN0cmlkZTsKKyAgICBpbnQzMl90ICAgICBmb3JtYXQ7CisgICAgdWludDMyX3QgICAgZmxhZ3M7ICAgICAgLy8gMCBmb3Igbm93Cit9IEFuZHJvaWRCaXRtYXBJbmZvOworCisvKioKKyAqIEdpdmVuIGEgamF2YSBiaXRtYXAgb2JqZWN0LCBmaWxsIG91dCB0aGUgQW5kcm9pZEJpdG1hcCBzdHJ1Y3QgZm9yIGl0LgorICogSWYgdGhlIGNhbGwgZmFpbHMsIHRoZSBpbmZvIHBhcmFtZXRlciB3aWxsIGJlIGlnbm9yZWQKKyAqLworaW50IEFuZHJvaWRCaXRtYXBfZ2V0SW5mbyhKTklFbnYqIGVudiwgam9iamVjdCBqYml0bWFwLAorICAgICAgICAgICAgICAgICAgICAgICAgICBBbmRyb2lkQml0bWFwSW5mbyogaW5mbyk7CisKKy8qKgorICogR2l2ZW4gYSBqYXZhIGJpdG1hcCBvYmplY3QsIGF0dGVtcHQgdG8gbG9jayB0aGUgcGl4ZWwgYWRkcmVzcy4KKyAqIExvY2tpbmcgd2lsbCBlbnN1cmUgdGhhdCB0aGUgbWVtb3J5IGZvciB0aGUgcGl4ZWxzIHdpbGwgbm90IG1vdmUKKyAqIHVudGlsIHRoZSB1bmxvY2tQaXhlbHMgY2FsbCwgYW5kIGVuc3VyZSB0aGF0LCBpZiB0aGUgcGl4ZWxzIGhhZCBiZWVuCisgKiBwcmV2aW91c2x5IHB1cmdlZCwgdGhleSB3aWxsIGhhdmUgYmVlbiByZXN0b3JlZC4KKyAqCisgKiBJZiB0aGlzIGNhbGwgc3VjY2VlZHMsIGl0IG11c3QgYmUgYmFsYW5jZWQgYnkgYSBjYWxsIHRvCisgKiBBbmRyb2lkQml0bWFwX3VubG9ja1BpeGVscywgYWZ0ZXIgd2hpY2ggdGltZSB0aGUgYWRkcmVzcyBvZiB0aGUgcGl4ZWxzIHNob3VsZAorICogbm8gbG9uZ2VyIGJlIHVzZWQuCisgKgorICogSWYgdGhpcyBzdWNjZWVkcywgKmFkZHJQdHIgd2lsbCBiZSBzZXQgdG8gdGhlIHBpeGVsIGFkZHJlc3MuIElmIHRoZSBjYWxsCisgKiBmYWlscywgYWRkclB0ciB3aWxsIGJlIGlnbm9yZWQuCisgKi8KK2ludCBBbmRyb2lkQml0bWFwX2xvY2tQaXhlbHMoSk5JRW52KiBlbnYsIGpvYmplY3QgamJpdG1hcCwgdm9pZCoqIGFkZHJQdHIpOworCisvKioKKyAqIENhbGwgdGhpcyB0byBiYWxhbmFjZSBhIHN1Y2Nlc3NmdWwgY2FsbCB0byBBbmRyb2lkQml0bWFwX2xvY2tQaXhlbHMKKyAqLworaW50IEFuZHJvaWRCaXRtYXBfdW5sb2NrUGl4ZWxzKEpOSUVudiogZW52LCBqb2JqZWN0IGpiaXRtYXApOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOC9pbmNsdWRlL2FuZHJvaWQvY29uZmlndXJhdGlvbi5oIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L2luY2x1ZGUvYW5kcm9pZC9jb25maWd1cmF0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDVjZGRiMwotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOC9pbmNsdWRlL2FuZHJvaWQvY29uZmlndXJhdGlvbi5oCkBAIC0wLDAgKzEsMzgxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0NPTkZJR1VSQVRJT05fSAorI2RlZmluZSBBTkRST0lEX0NPTkZJR1VSQVRJT05fSAorCisjaW5jbHVkZSA8YW5kcm9pZC9hc3NldF9tYW5hZ2VyLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworc3RydWN0IEFDb25maWd1cmF0aW9uOwordHlwZWRlZiBzdHJ1Y3QgQUNvbmZpZ3VyYXRpb24gQUNvbmZpZ3VyYXRpb247CisKK2VudW0geworICAgIEFDT05GSUdVUkFUSU9OX09SSUVOVEFUSU9OX0FOWSAgPSAweDAwMDAsCisgICAgQUNPTkZJR1VSQVRJT05fT1JJRU5UQVRJT05fUE9SVCA9IDB4MDAwMSwKKyAgICBBQ09ORklHVVJBVElPTl9PUklFTlRBVElPTl9MQU5EID0gMHgwMDAyLAorICAgIEFDT05GSUdVUkFUSU9OX09SSUVOVEFUSU9OX1NRVUFSRSA9IDB4MDAwMywKKworICAgIEFDT05GSUdVUkFUSU9OX1RPVUNIU0NSRUVOX0FOWSAgPSAweDAwMDAsCisgICAgQUNPTkZJR1VSQVRJT05fVE9VQ0hTQ1JFRU5fTk9UT1VDSCAgPSAweDAwMDEsCisgICAgQUNPTkZJR1VSQVRJT05fVE9VQ0hTQ1JFRU5fU1RZTFVTICA9IDB4MDAwMiwKKyAgICBBQ09ORklHVVJBVElPTl9UT1VDSFNDUkVFTl9GSU5HRVIgID0gMHgwMDAzLAorCisgICAgQUNPTkZJR1VSQVRJT05fREVOU0lUWV9ERUZBVUxUID0gMCwKKyAgICBBQ09ORklHVVJBVElPTl9ERU5TSVRZX0xPVyA9IDEyMCwKKyAgICBBQ09ORklHVVJBVElPTl9ERU5TSVRZX01FRElVTSA9IDE2MCwKKyAgICBBQ09ORklHVVJBVElPTl9ERU5TSVRZX1RWID0gMjEzLAorICAgIEFDT05GSUdVUkFUSU9OX0RFTlNJVFlfSElHSCA9IDI0MCwKKyAgICBBQ09ORklHVVJBVElPTl9ERU5TSVRZX1hISUdIID0gMzIwLAorICAgIEFDT05GSUdVUkFUSU9OX0RFTlNJVFlfWFhISUdIID0gNDgwLAorICAgIEFDT05GSUdVUkFUSU9OX0RFTlNJVFlfWFhYSElHSCA9IDY0MCwKKyAgICBBQ09ORklHVVJBVElPTl9ERU5TSVRZX05PTkUgPSAweGZmZmYsCisKKyAgICBBQ09ORklHVVJBVElPTl9LRVlCT0FSRF9BTlkgID0gMHgwMDAwLAorICAgIEFDT05GSUdVUkFUSU9OX0tFWUJPQVJEX05PS0VZUyAgPSAweDAwMDEsCisgICAgQUNPTkZJR1VSQVRJT05fS0VZQk9BUkRfUVdFUlRZICA9IDB4MDAwMiwKKyAgICBBQ09ORklHVVJBVElPTl9LRVlCT0FSRF8xMktFWSAgPSAweDAwMDMsCisKKyAgICBBQ09ORklHVVJBVElPTl9OQVZJR0FUSU9OX0FOWSAgPSAweDAwMDAsCisgICAgQUNPTkZJR1VSQVRJT05fTkFWSUdBVElPTl9OT05BViAgPSAweDAwMDEsCisgICAgQUNPTkZJR1VSQVRJT05fTkFWSUdBVElPTl9EUEFEICA9IDB4MDAwMiwKKyAgICBBQ09ORklHVVJBVElPTl9OQVZJR0FUSU9OX1RSQUNLQkFMTCAgPSAweDAwMDMsCisgICAgQUNPTkZJR1VSQVRJT05fTkFWSUdBVElPTl9XSEVFTCAgPSAweDAwMDQsCisKKyAgICBBQ09ORklHVVJBVElPTl9LRVlTSElEREVOX0FOWSA9IDB4MDAwMCwKKyAgICBBQ09ORklHVVJBVElPTl9LRVlTSElEREVOX05PID0gMHgwMDAxLAorICAgIEFDT05GSUdVUkFUSU9OX0tFWVNISURERU5fWUVTID0gMHgwMDAyLAorICAgIEFDT05GSUdVUkFUSU9OX0tFWVNISURERU5fU09GVCA9IDB4MDAwMywKKworICAgIEFDT05GSUdVUkFUSU9OX05BVkhJRERFTl9BTlkgPSAweDAwMDAsCisgICAgQUNPTkZJR1VSQVRJT05fTkFWSElEREVOX05PID0gMHgwMDAxLAorICAgIEFDT05GSUdVUkFUSU9OX05BVkhJRERFTl9ZRVMgPSAweDAwMDIsCisKKyAgICBBQ09ORklHVVJBVElPTl9TQ1JFRU5TSVpFX0FOWSAgPSAweDAwLAorICAgIEFDT05GSUdVUkFUSU9OX1NDUkVFTlNJWkVfU01BTEwgPSAweDAxLAorICAgIEFDT05GSUdVUkFUSU9OX1NDUkVFTlNJWkVfTk9STUFMID0gMHgwMiwKKyAgICBBQ09ORklHVVJBVElPTl9TQ1JFRU5TSVpFX0xBUkdFID0gMHgwMywKKyAgICBBQ09ORklHVVJBVElPTl9TQ1JFRU5TSVpFX1hMQVJHRSA9IDB4MDQsCisKKyAgICBBQ09ORklHVVJBVElPTl9TQ1JFRU5MT05HX0FOWSA9IDB4MDAsCisgICAgQUNPTkZJR1VSQVRJT05fU0NSRUVOTE9OR19OTyA9IDB4MSwKKyAgICBBQ09ORklHVVJBVElPTl9TQ1JFRU5MT05HX1lFUyA9IDB4MiwKKworICAgIEFDT05GSUdVUkFUSU9OX1VJX01PREVfVFlQRV9BTlkgPSAweDAwLAorICAgIEFDT05GSUdVUkFUSU9OX1VJX01PREVfVFlQRV9OT1JNQUwgPSAweDAxLAorICAgIEFDT05GSUdVUkFUSU9OX1VJX01PREVfVFlQRV9ERVNLID0gMHgwMiwKKyAgICBBQ09ORklHVVJBVElPTl9VSV9NT0RFX1RZUEVfQ0FSID0gMHgwMywKKyAgICBBQ09ORklHVVJBVElPTl9VSV9NT0RFX1RZUEVfVEVMRVZJU0lPTiA9IDB4MDQsCisgICAgQUNPTkZJR1VSQVRJT05fVUlfTU9ERV9UWVBFX0FQUExJQU5DRSA9IDB4MDUsCisKKyAgICBBQ09ORklHVVJBVElPTl9VSV9NT0RFX05JR0hUX0FOWSA9IDB4MDAsCisgICAgQUNPTkZJR1VSQVRJT05fVUlfTU9ERV9OSUdIVF9OTyA9IDB4MSwKKyAgICBBQ09ORklHVVJBVElPTl9VSV9NT0RFX05JR0hUX1lFUyA9IDB4MiwKKworICAgIEFDT05GSUdVUkFUSU9OX1NDUkVFTl9XSURUSF9EUF9BTlkgPSAweDAwMDAsCisKKyAgICBBQ09ORklHVVJBVElPTl9TQ1JFRU5fSEVJR0hUX0RQX0FOWSA9IDB4MDAwMCwKKworICAgIEFDT05GSUdVUkFUSU9OX1NNQUxMRVNUX1NDUkVFTl9XSURUSF9EUF9BTlkgPSAweDAwMDAsCisKKyAgICBBQ09ORklHVVJBVElPTl9MQVlPVVRESVJfQU5ZICA9IDB4MDAsCisgICAgQUNPTkZJR1VSQVRJT05fTEFZT1VURElSX0xUUiAgPSAweDAxLAorICAgIEFDT05GSUdVUkFUSU9OX0xBWU9VVERJUl9SVEwgID0gMHgwMiwKKworICAgIEFDT05GSUdVUkFUSU9OX01DQyA9IDB4MDAwMSwKKyAgICBBQ09ORklHVVJBVElPTl9NTkMgPSAweDAwMDIsCisgICAgQUNPTkZJR1VSQVRJT05fTE9DQUxFID0gMHgwMDA0LAorICAgIEFDT05GSUdVUkFUSU9OX1RPVUNIU0NSRUVOID0gMHgwMDA4LAorICAgIEFDT05GSUdVUkFUSU9OX0tFWUJPQVJEID0gMHgwMDEwLAorICAgIEFDT05GSUdVUkFUSU9OX0tFWUJPQVJEX0hJRERFTiA9IDB4MDAyMCwKKyAgICBBQ09ORklHVVJBVElPTl9OQVZJR0FUSU9OID0gMHgwMDQwLAorICAgIEFDT05GSUdVUkFUSU9OX09SSUVOVEFUSU9OID0gMHgwMDgwLAorICAgIEFDT05GSUdVUkFUSU9OX0RFTlNJVFkgPSAweDAxMDAsCisgICAgQUNPTkZJR1VSQVRJT05fU0NSRUVOX1NJWkUgPSAweDAyMDAsCisgICAgQUNPTkZJR1VSQVRJT05fVkVSU0lPTiA9IDB4MDQwMCwKKyAgICBBQ09ORklHVVJBVElPTl9TQ1JFRU5fTEFZT1VUID0gMHgwODAwLAorICAgIEFDT05GSUdVUkFUSU9OX1VJX01PREUgPSAweDEwMDAsCisgICAgQUNPTkZJR1VSQVRJT05fU01BTExFU1RfU0NSRUVOX1NJWkUgPSAweDIwMDAsCisgICAgQUNPTkZJR1VSQVRJT05fTEFZT1VURElSID0gMHg0MDAwLAorfTsKKworLyoqCisgKiBDcmVhdGUgYSBuZXcgQUNvbmZpZ3VyYXRpb24sIGluaXRpYWxpemVkIHdpdGggbm8gdmFsdWVzIHNldC4KKyAqLworQUNvbmZpZ3VyYXRpb24qIEFDb25maWd1cmF0aW9uX25ldygpOworCisvKioKKyAqIEZyZWUgYW4gQUNvbmZpZ3VyYXRpb24gdGhhdCB3YXMgcHJldmlvdXNseSBjcmVhdGVkIHdpdGgKKyAqIEFDb25maWd1cmF0aW9uX25ldygpLgorICovCit2b2lkIEFDb25maWd1cmF0aW9uX2RlbGV0ZShBQ29uZmlndXJhdGlvbiogY29uZmlnKTsKKworLyoqCisgKiBDcmVhdGUgYW5kIHJldHVybiBhIG5ldyBBQ29uZmlndXJhdGlvbiBiYXNlZCBvbiB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uIGluCisgKiB1c2UgaW4gdGhlIGdpdmVuIEFzc2V0TWFuYWdlci4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9mcm9tQXNzZXRNYW5hZ2VyKEFDb25maWd1cmF0aW9uKiBvdXQsIEFBc3NldE1hbmFnZXIqIGFtKTsKKworLyoqCisgKiBDb3B5IHRoZSBjb250ZW50cyBvZiAnc3JjJyB0byAnZGVzdCcuCisgKi8KK3ZvaWQgQUNvbmZpZ3VyYXRpb25fY29weShBQ29uZmlndXJhdGlvbiogZGVzdCwgQUNvbmZpZ3VyYXRpb24qIHNyYyk7CisKKy8qKgorICogUmV0dXJuIHRoZSBjdXJyZW50IE1DQyBzZXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uICAwIGlmIG5vdCBzZXQuCisgKi8KK2ludDMyX3QgQUNvbmZpZ3VyYXRpb25fZ2V0TWNjKEFDb25maWd1cmF0aW9uKiBjb25maWcpOworCisvKioKKyAqIFNldCB0aGUgY3VycmVudCBNQ0MgaW4gdGhlIGNvbmZpZ3VyYXRpb24uICAwIHRvIGNsZWFyLgorICovCit2b2lkIEFDb25maWd1cmF0aW9uX3NldE1jYyhBQ29uZmlndXJhdGlvbiogY29uZmlnLCBpbnQzMl90IG1jYyk7CisKKy8qKgorICogUmV0dXJuIHRoZSBjdXJyZW50IE1OQyBzZXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uICAwIGlmIG5vdCBzZXQuCisgKi8KK2ludDMyX3QgQUNvbmZpZ3VyYXRpb25fZ2V0TW5jKEFDb25maWd1cmF0aW9uKiBjb25maWcpOworCisvKioKKyAqIFNldCB0aGUgY3VycmVudCBNTkMgaW4gdGhlIGNvbmZpZ3VyYXRpb24uICAwIHRvIGNsZWFyLgorICovCit2b2lkIEFDb25maWd1cmF0aW9uX3NldE1uYyhBQ29uZmlndXJhdGlvbiogY29uZmlnLCBpbnQzMl90IG1uYyk7CisKKy8qKgorICogUmV0dXJuIHRoZSBjdXJyZW50IGxhbmd1YWdlIGNvZGUgc2V0IGluIHRoZSBjb25maWd1cmF0aW9uLiAgVGhlIG91dHB1dCB3aWxsCisgKiBiZSBmaWxsZWQgd2l0aCBhbiBhcnJheSBvZiB0d28gY2hhcmFjdGVycy4gIFRoZXkgYXJlIG5vdCAwLXRlcm1pbmF0ZWQuICBJZgorICogYSBsYW5ndWFnZSBpcyBub3Qgc2V0LCB0aGV5IHdpbGwgYmUgMC4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9nZXRMYW5ndWFnZShBQ29uZmlndXJhdGlvbiogY29uZmlnLCBjaGFyKiBvdXRMYW5ndWFnZSk7CisKKy8qKgorICogU2V0IHRoZSBjdXJyZW50IGxhbmd1YWdlIGNvZGUgaW4gdGhlIGNvbmZpZ3VyYXRpb24sIGZyb20gdGhlIGZpcnN0IHR3bworICogY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nLgorICovCit2b2lkIEFDb25maWd1cmF0aW9uX3NldExhbmd1YWdlKEFDb25maWd1cmF0aW9uKiBjb25maWcsIGNvbnN0IGNoYXIqIGxhbmd1YWdlKTsKKworLyoqCisgKiBSZXR1cm4gdGhlIGN1cnJlbnQgY291bnRyeSBjb2RlIHNldCBpbiB0aGUgY29uZmlndXJhdGlvbi4gIFRoZSBvdXRwdXQgd2lsbAorICogYmUgZmlsbGVkIHdpdGggYW4gYXJyYXkgb2YgdHdvIGNoYXJhY3RlcnMuICBUaGV5IGFyZSBub3QgMC10ZXJtaW5hdGVkLiAgSWYKKyAqIGEgY291bnRyeSBpcyBub3Qgc2V0LCB0aGV5IHdpbGwgYmUgMC4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9nZXRDb3VudHJ5KEFDb25maWd1cmF0aW9uKiBjb25maWcsIGNoYXIqIG91dENvdW50cnkpOworCisvKioKKyAqIFNldCB0aGUgY3VycmVudCBjb3VudHJ5IGNvZGUgaW4gdGhlIGNvbmZpZ3VyYXRpb24sIGZyb20gdGhlIGZpcnN0IHR3bworICogY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nLgorICovCit2b2lkIEFDb25maWd1cmF0aW9uX3NldENvdW50cnkoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZywgY29uc3QgY2hhciogY291bnRyeSk7CisKKy8qKgorICogUmV0dXJuIHRoZSBjdXJyZW50IEFDT05GSUdVUkFUSU9OX09SSUVOVEFUSU9OXyogc2V0IGluIHRoZSBjb25maWd1cmF0aW9uLgorICovCitpbnQzMl90IEFDb25maWd1cmF0aW9uX2dldE9yaWVudGF0aW9uKEFDb25maWd1cmF0aW9uKiBjb25maWcpOworCisvKioKKyAqIFNldCB0aGUgY3VycmVudCBvcmllbnRhdGlvbiBpbiB0aGUgY29uZmlndXJhdGlvbi4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9zZXRPcmllbnRhdGlvbihBQ29uZmlndXJhdGlvbiogY29uZmlnLCBpbnQzMl90IG9yaWVudGF0aW9uKTsKKworLyoqCisgKiBSZXR1cm4gdGhlIGN1cnJlbnQgQUNPTkZJR1VSQVRJT05fVE9VQ0hTQ1JFRU5fKiBzZXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK2ludDMyX3QgQUNvbmZpZ3VyYXRpb25fZ2V0VG91Y2hzY3JlZW4oQUNvbmZpZ3VyYXRpb24qIGNvbmZpZyk7CisKKy8qKgorICogU2V0IHRoZSBjdXJyZW50IHRvdWNoc2NyZWVuIGluIHRoZSBjb25maWd1cmF0aW9uLgorICovCit2b2lkIEFDb25maWd1cmF0aW9uX3NldFRvdWNoc2NyZWVuKEFDb25maWd1cmF0aW9uKiBjb25maWcsIGludDMyX3QgdG91Y2hzY3JlZW4pOworCisvKioKKyAqIFJldHVybiB0aGUgY3VycmVudCBBQ09ORklHVVJBVElPTl9ERU5TSVRZXyogc2V0IGluIHRoZSBjb25maWd1cmF0aW9uLgorICovCitpbnQzMl90IEFDb25maWd1cmF0aW9uX2dldERlbnNpdHkoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZyk7CisKKy8qKgorICogU2V0IHRoZSBjdXJyZW50IGRlbnNpdHkgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK3ZvaWQgQUNvbmZpZ3VyYXRpb25fc2V0RGVuc2l0eShBQ29uZmlndXJhdGlvbiogY29uZmlnLCBpbnQzMl90IGRlbnNpdHkpOworCisvKioKKyAqIFJldHVybiB0aGUgY3VycmVudCBBQ09ORklHVVJBVElPTl9LRVlCT0FSRF8qIHNldCBpbiB0aGUgY29uZmlndXJhdGlvbi4KKyAqLworaW50MzJfdCBBQ29uZmlndXJhdGlvbl9nZXRLZXlib2FyZChBQ29uZmlndXJhdGlvbiogY29uZmlnKTsKKworLyoqCisgKiBTZXQgdGhlIGN1cnJlbnQga2V5Ym9hcmQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK3ZvaWQgQUNvbmZpZ3VyYXRpb25fc2V0S2V5Ym9hcmQoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZywgaW50MzJfdCBrZXlib2FyZCk7CisKKy8qKgorICogUmV0dXJuIHRoZSBjdXJyZW50IEFDT05GSUdVUkFUSU9OX05BVklHQVRJT05fKiBzZXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK2ludDMyX3QgQUNvbmZpZ3VyYXRpb25fZ2V0TmF2aWdhdGlvbihBQ29uZmlndXJhdGlvbiogY29uZmlnKTsKKworLyoqCisgKiBTZXQgdGhlIGN1cnJlbnQgbmF2aWdhdGlvbiBpbiB0aGUgY29uZmlndXJhdGlvbi4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9zZXROYXZpZ2F0aW9uKEFDb25maWd1cmF0aW9uKiBjb25maWcsIGludDMyX3QgbmF2aWdhdGlvbik7CisKKy8qKgorICogUmV0dXJuIHRoZSBjdXJyZW50IEFDT05GSUdVUkFUSU9OX0tFWVNISURERU5fKiBzZXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK2ludDMyX3QgQUNvbmZpZ3VyYXRpb25fZ2V0S2V5c0hpZGRlbihBQ29uZmlndXJhdGlvbiogY29uZmlnKTsKKworLyoqCisgKiBTZXQgdGhlIGN1cnJlbnQga2V5cyBoaWRkZW4gaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK3ZvaWQgQUNvbmZpZ3VyYXRpb25fc2V0S2V5c0hpZGRlbihBQ29uZmlndXJhdGlvbiogY29uZmlnLCBpbnQzMl90IGtleXNIaWRkZW4pOworCisvKioKKyAqIFJldHVybiB0aGUgY3VycmVudCBBQ09ORklHVVJBVElPTl9OQVZISURERU5fKiBzZXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK2ludDMyX3QgQUNvbmZpZ3VyYXRpb25fZ2V0TmF2SGlkZGVuKEFDb25maWd1cmF0aW9uKiBjb25maWcpOworCisvKioKKyAqIFNldCB0aGUgY3VycmVudCBuYXYgaGlkZGVuIGluIHRoZSBjb25maWd1cmF0aW9uLgorICovCit2b2lkIEFDb25maWd1cmF0aW9uX3NldE5hdkhpZGRlbihBQ29uZmlndXJhdGlvbiogY29uZmlnLCBpbnQzMl90IG5hdkhpZGRlbik7CisKKy8qKgorICogUmV0dXJuIHRoZSBjdXJyZW50IFNESyAoQVBJKSB2ZXJzaW9uIHNldCBpbiB0aGUgY29uZmlndXJhdGlvbi4KKyAqLworaW50MzJfdCBBQ29uZmlndXJhdGlvbl9nZXRTZGtWZXJzaW9uKEFDb25maWd1cmF0aW9uKiBjb25maWcpOworCisvKioKKyAqIFNldCB0aGUgY3VycmVudCBTREsgdmVyc2lvbiBpbiB0aGUgY29uZmlndXJhdGlvbi4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9zZXRTZGtWZXJzaW9uKEFDb25maWd1cmF0aW9uKiBjb25maWcsIGludDMyX3Qgc2RrVmVyc2lvbik7CisKKy8qKgorICogUmV0dXJuIHRoZSBjdXJyZW50IEFDT05GSUdVUkFUSU9OX1NDUkVFTlNJWkVfKiBzZXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK2ludDMyX3QgQUNvbmZpZ3VyYXRpb25fZ2V0U2NyZWVuU2l6ZShBQ29uZmlndXJhdGlvbiogY29uZmlnKTsKKworLyoqCisgKiBTZXQgdGhlIGN1cnJlbnQgc2NyZWVuIHNpemUgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK3ZvaWQgQUNvbmZpZ3VyYXRpb25fc2V0U2NyZWVuU2l6ZShBQ29uZmlndXJhdGlvbiogY29uZmlnLCBpbnQzMl90IHNjcmVlblNpemUpOworCisvKioKKyAqIFJldHVybiB0aGUgY3VycmVudCBBQ09ORklHVVJBVElPTl9TQ1JFRU5MT05HXyogc2V0IGluIHRoZSBjb25maWd1cmF0aW9uLgorICovCitpbnQzMl90IEFDb25maWd1cmF0aW9uX2dldFNjcmVlbkxvbmcoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZyk7CisKKy8qKgorICogU2V0IHRoZSBjdXJyZW50IHNjcmVlbiBsb25nIGluIHRoZSBjb25maWd1cmF0aW9uLgorICovCit2b2lkIEFDb25maWd1cmF0aW9uX3NldFNjcmVlbkxvbmcoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZywgaW50MzJfdCBzY3JlZW5Mb25nKTsKKworLyoqCisgKiBSZXR1cm4gdGhlIGN1cnJlbnQgQUNPTkZJR1VSQVRJT05fVUlfTU9ERV9UWVBFXyogc2V0IGluIHRoZSBjb25maWd1cmF0aW9uLgorICovCitpbnQzMl90IEFDb25maWd1cmF0aW9uX2dldFVpTW9kZVR5cGUoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZyk7CisKKy8qKgorICogU2V0IHRoZSBjdXJyZW50IFVJIG1vZGUgdHlwZSBpbiB0aGUgY29uZmlndXJhdGlvbi4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9zZXRVaU1vZGVUeXBlKEFDb25maWd1cmF0aW9uKiBjb25maWcsIGludDMyX3QgdWlNb2RlVHlwZSk7CisKKy8qKgorICogUmV0dXJuIHRoZSBjdXJyZW50IEFDT05GSUdVUkFUSU9OX1VJX01PREVfTklHSFRfKiBzZXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK2ludDMyX3QgQUNvbmZpZ3VyYXRpb25fZ2V0VWlNb2RlTmlnaHQoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZyk7CisKKy8qKgorICogU2V0IHRoZSBjdXJyZW50IFVJIG1vZGUgbmlnaHQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK3ZvaWQgQUNvbmZpZ3VyYXRpb25fc2V0VWlNb2RlTmlnaHQoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZywgaW50MzJfdCB1aU1vZGVOaWdodCk7CisKKy8qKgorICogUmV0dXJuIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24gc2NyZWVuIHdpZHRoIGluIGRwIHVuaXRzLCBvcgorICogQUNPTkZJR1VSQVRJT05fU0NSRUVOX1dJRFRIX0RQX0FOWSBpZiBub3Qgc2V0LgorICovCitpbnQzMl90IEFDb25maWd1cmF0aW9uX2dldFNjcmVlbldpZHRoRHAoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZyk7CisKKy8qKgorICogU2V0IHRoZSBjb25maWd1cmF0aW9uJ3MgY3VycmVudCBzY3JlZW4gd2lkdGggaW4gZHAgdW5pdHMuCisgKi8KK3ZvaWQgQUNvbmZpZ3VyYXRpb25fc2V0U2NyZWVuV2lkdGhEcChBQ29uZmlndXJhdGlvbiogY29uZmlnLCBpbnQzMl90IHZhbHVlKTsKKworLyoqCisgKiBSZXR1cm4gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBzY3JlZW4gaGVpZ2h0IGluIGRwIHVuaXRzLCBvcgorICogQUNPTkZJR1VSQVRJT05fU0NSRUVOX0hFSUdIVF9EUF9BTlkgaWYgbm90IHNldC4KKyAqLworaW50MzJfdCBBQ29uZmlndXJhdGlvbl9nZXRTY3JlZW5IZWlnaHREcChBQ29uZmlndXJhdGlvbiogY29uZmlnKTsKKworLyoqCisgKiBTZXQgdGhlIGNvbmZpZ3VyYXRpb24ncyBjdXJyZW50IHNjcmVlbiB3aWR0aCBpbiBkcCB1bml0cy4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9zZXRTY3JlZW5IZWlnaHREcChBQ29uZmlndXJhdGlvbiogY29uZmlnLCBpbnQzMl90IHZhbHVlKTsKKworLyoqCisgKiBSZXR1cm4gdGhlIGNvbmZpZ3VyYXRpb24ncyBzbWFsbGVzdCBzY3JlZW4gd2lkdGggaW4gZHAgdW5pdHMsIG9yCisgKiBBQ09ORklHVVJBVElPTl9TTUFMTEVTVF9TQ1JFRU5fV0lEVEhfRFBfQU5ZIGlmIG5vdCBzZXQuCisgKi8KK2ludDMyX3QgQUNvbmZpZ3VyYXRpb25fZ2V0U21hbGxlc3RTY3JlZW5XaWR0aERwKEFDb25maWd1cmF0aW9uKiBjb25maWcpOworCisvKioKKyAqIFNldCB0aGUgY29uZmlndXJhdGlvbidzIHNtYWxsZXN0IHNjcmVlbiB3aWR0aCBpbiBkcCB1bml0cy4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9zZXRTbWFsbGVzdFNjcmVlbldpZHRoRHAoQUNvbmZpZ3VyYXRpb24qIGNvbmZpZywgaW50MzJfdCB2YWx1ZSk7CisKKy8qKgorICogUmV0dXJuIHRoZSBjb25maWd1cmF0aW9uJ3MgbGF5b3V0IGRpcmVjdGlvbiwgb3IKKyAqIEFDT05GSUdVUkFUSU9OX0xBWU9VVERJUl9BTlkgaWYgbm90IHNldC4KKyAqLworaW50MzJfdCBBQ29uZmlndXJhdGlvbl9nZXRMYXlvdXREaXJlY3Rpb24oQUNvbmZpZ3VyYXRpb24qIGNvbmZpZyk7CisKKy8qKgorICogU2V0IHRoZSBjb25maWd1cmF0aW9uJ3MgbGF5b3V0IGRpcmVjdGlvbi4KKyAqLwordm9pZCBBQ29uZmlndXJhdGlvbl9zZXRMYXlvdXREaXJlY3Rpb24oQUNvbmZpZ3VyYXRpb24qIGNvbmZpZywgaW50MzJfdCB2YWx1ZSk7CisKKy8qKgorICogUGVyZm9ybSBhIGRpZmYgYmV0d2VlbiB0d28gY29uZmlndXJhdGlvbnMuICBSZXR1cm5zIGEgYml0IG1hc2sgb2YKKyAqIEFDT05GSUdVUkFUSU9OXyogY29uc3RhbnRzLCBlYWNoIGJpdCBzZXQgbWVhbmluZyB0aGF0IGNvbmZpZ3VyYXRpb24gZWxlbWVudAorICogaXMgZGlmZmVyZW50IGJldHdlZW4gdGhlbS4KKyAqLworaW50MzJfdCBBQ29uZmlndXJhdGlvbl9kaWZmKEFDb25maWd1cmF0aW9uKiBjb25maWcxLCBBQ29uZmlndXJhdGlvbiogY29uZmlnMik7CisKKy8qKgorICogRGV0ZXJtaW5lIHdoZXRoZXIgJ2Jhc2UnIGlzIGEgdmFsaWQgY29uZmlndXJhdGlvbiBmb3IgdXNlIHdpdGhpbiB0aGUKKyAqIGVudmlyb25tZW50ICdyZXF1ZXN0ZWQnLiAgUmV0dXJucyAwIGlmIHRoZXJlIGFyZSBhbnkgdmFsdWVzIGluICdiYXNlJworICogdGhhdCBjb25mbGljdCB3aXRoICdyZXF1ZXN0ZWQnLiAgUmV0dXJucyAxIGlmIGl0IGRvZXMgbm90IGNvbmZsaWN0LgorICovCitpbnQzMl90IEFDb25maWd1cmF0aW9uX21hdGNoKEFDb25maWd1cmF0aW9uKiBiYXNlLCBBQ29uZmlndXJhdGlvbiogcmVxdWVzdGVkKTsKKworLyoqCisgKiBEZXRlcm1pbmUgd2hldGhlciB0aGUgY29uZmlndXJhdGlvbiBpbiAndGVzdCcgaXMgYmV0dGVyIHRoYW4gdGhlIGV4aXN0aW5nCisgKiBjb25maWd1cmF0aW9uIGluICdiYXNlJy4gIElmICdyZXF1ZXN0ZWQnIGlzIG5vbi1OVUxMLCB0aGlzIGRlY2lzaW9uIGlzIGJhc2VkCisgKiBvbiB0aGUgb3ZlcmFsbCBjb25maWd1cmF0aW9uIGdpdmVuIHRoZXJlLiAgSWYgaXQgaXMgTlVMTCwgdGhpcyBkZWNpc2lvbiBpcworICogc2ltcGx5IGJhc2VkIG9uIHdoaWNoIGNvbmZpZ3VyYXRpb24gaXMgbW9yZSBzcGVjaWZpYy4gIFJldHVybnMgbm9uLTAgaWYKKyAqICd0ZXN0JyBpcyBiZXR0ZXIgdGhhbiAnYmFzZScuCisgKgorICogVGhpcyBhc3N1bWVzIHlvdSBoYXZlIGFscmVhZHkgZmlsdGVyZWQgdGhlIGNvbmZpZ3VyYXRpb25zIHdpdGgKKyAqIEFDb25maWd1cmF0aW9uX21hdGNoKCkuCisgKi8KK2ludDMyX3QgQUNvbmZpZ3VyYXRpb25faXNCZXR0ZXJUaGFuKEFDb25maWd1cmF0aW9uKiBiYXNlLCBBQ29uZmlndXJhdGlvbiogdGVzdCwKKyAgICAgICAgQUNvbmZpZ3VyYXRpb24qIHJlcXVlc3RlZCk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfTsKKyNlbmRpZgorCisjZW5kaWYgLy8gQU5EUk9JRF9DT05GSUdVUkFUSU9OX0gKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOC9pbmNsdWRlL2FuZHJvaWQvaW5wdXQuaCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOC9pbmNsdWRlL2FuZHJvaWQvaW5wdXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZWFkNzY5Ci0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L2luY2x1ZGUvYW5kcm9pZC9pbnB1dC5oCkBAIC0wLDAgKzEsODUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBfQU5EUk9JRF9JTlBVVF9ICisjZGVmaW5lIF9BTkRST0lEX0lOUFVUX0gKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIElNUE9SVEFOVCBOT1RJQ0U6CisgKgorICogICBUaGlzIGZpbGUgaXMgcGFydCBvZiBBbmRyb2lkJ3Mgc2V0IG9mIHN0YWJsZSBzeXN0ZW0gaGVhZGVycworICogICBleHBvc2VkIGJ5IHRoZSBBbmRyb2lkIE5ESyAoTmF0aXZlIERldmVsb3BtZW50IEtpdCkuCisgKgorICogICBUaGlyZC1wYXJ0eSBzb3VyY2UgQU5EIGJpbmFyeSBjb2RlIHJlbGllcyBvbiB0aGUgZGVmaW5pdGlvbnMKKyAqICAgaGVyZSB0byBiZSBGUk9aRU4gT04gQUxMIFVQQ09NSU5HIFBMQVRGT1JNIFJFTEVBU0VTLgorICoKKyAqICAgLSBETyBOT1QgTU9ESUZZIEVOVU1TIChFWENFUFQgSUYgWU9VIEFERCBORVcgMzItQklUIFZBTFVFUykKKyAqICAgLSBETyBOT1QgTU9ESUZZIENPTlNUQU5UUyBPUiBGVU5DVElPTkFMIE1BQ1JPUworICogICAtIERPIE5PVCBDSEFOR0UgVEhFIFNJR05BVFVSRSBPRiBGVU5DVElPTlMgSU4gQU5ZIFdBWQorICogICAtIERPIE5PVCBDSEFOR0UgVEhFIExBWU9VVCBPUiBTSVpFIE9GIFNUUlVDVFVSRVMKKyAqLworCisvKgorICogU3RydWN0dXJlcyBhbmQgZnVuY3Rpb25zIHRvIHJlY2VpdmUgYW5kIHByb2Nlc3MgaW5wdXQgZXZlbnRzIGluCisgKiBuYXRpdmUgY29kZS4KKyAqCisgKiBOT1RFOiBUaGVzZSBmdW5jdGlvbnMgTVVTVCBiZSBpbXBsZW1lbnRlZCBieSAvc3lzdGVtL2xpYi9saWJ1aS5zbworICovCisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2tleWNvZGVzLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9sb29wZXIuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKgorICogS2V5IHN0YXRlcyAobWF5IGJlIHJldHVybmVkIGJ5IHF1ZXJpZXMgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUgb2YgYQorICogcGFydGljdWxhciBrZXkgY29kZSwgc2NhbiBjb2RlIG9yIHN3aXRjaCkuCisgKi8KK2VudW0geworICAgIC8qIFRoZSBrZXkgc3RhdGUgaXMgdW5rbm93biBvciB0aGUgcmVxdWVzdGVkIGtleSBpdHNlbGYgaXMgbm90IHN1cHBvcnRlZC4gKi8KKyAgICBBS0VZX1NUQVRFX1VOS05PV04gPSAtMSwKKworICAgIC8qIFRoZSBrZXkgaXMgdXAuICovCisgICAgQUtFWV9TVEFURV9VUCA9IDAsCisKKyAgICAvKiBUaGUga2V5IGlzIGRvd24uICovCisgICAgQUtFWV9TVEFURV9ET1dOID0gMSwKKworICAgIC8qIFRoZSBrZXkgaXMgZG93biBidXQgaXMgYSB2aXJ0dWFsIGtleSBwcmVzcyB0aGF0IGlzIGJlaW5nIGVtdWxhdGVkIGJ5IHRoZSBzeXN0ZW0uICovCisgICAgQUtFWV9TVEFURV9WSVJUVUFMID0gMgorfTsKKworLyoKKyAqIE1ldGEga2V5IC8gbW9kaWZlciBzdGF0ZS4KKyAqLworZW51bSB7CisgICAgLyogTm8gbWV0YSBrZXlzIGFyZSBwcmVzc2VkLiAqLworICAgIEFNRVRBX05PTkUgPSAwLAorCisgICAgLyogVGhpcyBtYXNrIGlzIHVzZWQgdG8gY2hlY2sgd2hldGhlciBvbmUgb2YgdGhlIEFMVCBtZXRhIGtleXMgaXMgcHJlc3NlZC4gKi8KKyAgICBBTUVUQV9BTFRfT04gPSAweDAyLAorCisgICAgLyogVGhpcyBtYXNrIGlzIHVzZWQgdG8gY2hlY2sgd2hldGhlciB0aGUgbGVmdCBBTFQgbWV0YSBrZXkgaXMgcHJlc3NlZC4gKi8KKyAgICBBTUVUQV9BTFRfTEVGVF9PTiA9IDB4MTAsCisKKyAgICAvKiBUaGlzIG1hc2sgaXMgdXNlZCB0byBjaGVjayB3aGV0aGVyIHRoZSByaWdodCBBTFQgbWV0YSBrZXkgaXMgcHJlc3NlZC4gKi8KKyAgICBBTUVUQV9BTFRfUklHSFRfT04gPSAweDIwLAorCisgICAgLyogVGhpcyBtYXNrIGlzIHVzZWQgdG8gY2hlY2sgd2hldGhlciBvbmUgb2YgdGhlIFNISUZUIG1ldGEga2V5cyBpcyBwcmVzc2VkLiAqLworICAgIEFNRVRBX1NISUZUX09OID0gMHgwMSwKKworICAgIC8qIFRoaXMgbWFzayBpcyB1c2VkIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGxlZnQgU0hJRlQgbWV0YSBrZXkgaXMgcHJlc3NlZC4gKi8KKyAgICBBTUVUQV9TSElGVF9MRUZUX09OID0gMHg0MCwKKworICAgIC8qIFRoaXMgbWFzayBpcyB1c2VkIHRvIGNoZWNrIHdoZXRoZXIgdGhlIHJpZ2h0IFNISUZUIG1ldGEga2V5IGlzIHByZXNzZWQuICovCisgICAgQU1FVEFfU0hJRlRfUklHSFRfT04gPSAweDgwLAorCisgICAgLyogVGhpcyBtYXNrIGlzIHVzZWQgdG8gY2hlY2sgd2hldGhlciB0aGUgU1lNIG1ldGEga2V5IGlzIHByZXNzZWQuICovCisgICAgQU1FVEFfU1lNX09OID0gMHgwNCwKKworICAgIC8qIFRoaXMgbWFzayBpcyB1c2VkIHRvIGNoZWNrIHdoZXRoZXIgdGhlIEZVTkNUSU9OIG1ldGEga2V5IGlzIHByZXNzZWQuICovCisgICAgQU1FVEFfRlVOQ1RJT05fT04gPSAweDA4LAorCisgICAgLyogVGhpcyBtYXNrIGlzIHVzZWQgdG8gY2hlY2sgd2hldGhlciBvbmUgb2YgdGhlIENUUkwgbWV0YSBrZXlzIGlzIHByZXNzZWQuICovCisgICAgQU1FVEFfQ1RSTF9PTiA9IDB4MTAwMCwKKworICAgIC8qIFRoaXMgbWFzayBpcyB1c2VkIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGxlZnQgQ1RSTCBtZXRhIGtleSBpcyBwcmVzc2VkLiAqLworICAgIEFNRVRBX0NUUkxfTEVGVF9PTiA9IDB4MjAwMCwKKworICAgIC8qIFRoaXMgbWFzayBpcyB1c2VkIHRvIGNoZWNrIHdoZXRoZXIgdGhlIHJpZ2h0IENUUkwgbWV0YSBrZXkgaXMgcHJlc3NlZC4gKi8KKyAgICBBTUVUQV9DVFJMX1JJR0hUX09OID0gMHg0MDAwLAorCisgICAgLyogVGhpcyBtYXNrIGlzIHVzZWQgdG8gY2hlY2sgd2hldGhlciBvbmUgb2YgdGhlIE1FVEEgbWV0YSBrZXlzIGlzIHByZXNzZWQuICovCisgICAgQU1FVEFfTUVUQV9PTiA9IDB4MTAwMDAsCisKKyAgICAvKiBUaGlzIG1hc2sgaXMgdXNlZCB0byBjaGVjayB3aGV0aGVyIHRoZSBsZWZ0IE1FVEEgbWV0YSBrZXkgaXMgcHJlc3NlZC4gKi8KKyAgICBBTUVUQV9NRVRBX0xFRlRfT04gPSAweDIwMDAwLAorCisgICAgLyogVGhpcyBtYXNrIGlzIHVzZWQgdG8gY2hlY2sgd2hldGhlciB0aGUgcmlnaHQgTUVUQSBtZXRhIGtleSBpcyBwcmVzc2VkLiAqLworICAgIEFNRVRBX01FVEFfUklHSFRfT04gPSAweDQwMDAwLAorCisgICAgLyogVGhpcyBtYXNrIGlzIHVzZWQgdG8gY2hlY2sgd2hldGhlciB0aGUgQ0FQUyBMT0NLIG1ldGEga2V5IGlzIG9uLiAqLworICAgIEFNRVRBX0NBUFNfTE9DS19PTiA9IDB4MTAwMDAwLAorCisgICAgLyogVGhpcyBtYXNrIGlzIHVzZWQgdG8gY2hlY2sgd2hldGhlciB0aGUgTlVNIExPQ0sgbWV0YSBrZXkgaXMgb24uICovCisgICAgQU1FVEFfTlVNX0xPQ0tfT04gPSAweDIwMDAwMCwKKworICAgIC8qIFRoaXMgbWFzayBpcyB1c2VkIHRvIGNoZWNrIHdoZXRoZXIgdGhlIFNDUk9MTCBMT0NLIG1ldGEga2V5IGlzIG9uLiAqLworICAgIEFNRVRBX1NDUk9MTF9MT0NLX09OID0gMHg0MDAwMDAsCit9OworCisvKgorICogSW5wdXQgZXZlbnRzLgorICoKKyAqIElucHV0IGV2ZW50cyBhcmUgb3BhcXVlIHN0cnVjdHVyZXMuICBVc2UgdGhlIHByb3ZpZGVkIGFjY2Vzc29ycyBmdW5jdGlvbnMgdG8KKyAqIHJlYWQgdGhlaXIgcHJvcGVydGllcy4KKyAqLworc3RydWN0IEFJbnB1dEV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgQUlucHV0RXZlbnQgQUlucHV0RXZlbnQ7CisKKy8qCisgKiBJbnB1dCBldmVudCB0eXBlcy4KKyAqLworZW51bSB7CisgICAgLyogSW5kaWNhdGVzIHRoYXQgdGhlIGlucHV0IGV2ZW50IGlzIGEga2V5IGV2ZW50LiAqLworICAgIEFJTlBVVF9FVkVOVF9UWVBFX0tFWSA9IDEsCisKKyAgICAvKiBJbmRpY2F0ZXMgdGhhdCB0aGUgaW5wdXQgZXZlbnQgaXMgYSBtb3Rpb24gZXZlbnQuICovCisgICAgQUlOUFVUX0VWRU5UX1RZUEVfTU9USU9OID0gMgorfTsKKworLyoKKyAqIEtleSBldmVudCBhY3Rpb25zLgorICovCitlbnVtIHsKKyAgICAvKiBUaGUga2V5IGhhcyBiZWVuIHByZXNzZWQgZG93bi4gKi8KKyAgICBBS0VZX0VWRU5UX0FDVElPTl9ET1dOID0gMCwKKworICAgIC8qIFRoZSBrZXkgaGFzIGJlZW4gcmVsZWFzZWQuICovCisgICAgQUtFWV9FVkVOVF9BQ1RJT05fVVAgPSAxLAorCisgICAgLyogTXVsdGlwbGUgZHVwbGljYXRlIGtleSBldmVudHMgaGF2ZSBvY2N1cnJlZCBpbiBhIHJvdywgb3IgYSBjb21wbGV4IHN0cmluZyBpcworICAgICAqIGJlaW5nIGRlbGl2ZXJlZC4gIFRoZSByZXBlYXRfY291bnQgcHJvcGVydHkgb2YgdGhlIGtleSBldmVudCBjb250YWlucyB0aGUgbnVtYmVyCisgICAgICogb2YgdGltZXMgdGhlIGdpdmVuIGtleSBjb2RlIHNob3VsZCBiZSBleGVjdXRlZC4KKyAgICAgKi8KKyAgICBBS0VZX0VWRU5UX0FDVElPTl9NVUxUSVBMRSA9IDIKK307CisKKy8qCisgKiBLZXkgZXZlbnQgZmxhZ3MuCisgKi8KK2VudW0geworICAgIC8qIFRoaXMgbWFzayBpcyBzZXQgaWYgdGhlIGRldmljZSB3b2tlIGJlY2F1c2Ugb2YgdGhpcyBrZXkgZXZlbnQuICovCisgICAgQUtFWV9FVkVOVF9GTEFHX1dPS0VfSEVSRSA9IDB4MSwKKworICAgIC8qIFRoaXMgbWFzayBpcyBzZXQgaWYgdGhlIGtleSBldmVudCB3YXMgZ2VuZXJhdGVkIGJ5IGEgc29mdHdhcmUga2V5Ym9hcmQuICovCisgICAgQUtFWV9FVkVOVF9GTEFHX1NPRlRfS0VZQk9BUkQgPSAweDIsCisKKyAgICAvKiBUaGlzIG1hc2sgaXMgc2V0IGlmIHdlIGRvbid0IHdhbnQgdGhlIGtleSBldmVudCB0byBjYXVzZSB1cyB0byBsZWF2ZSB0b3VjaCBtb2RlLiAqLworICAgIEFLRVlfRVZFTlRfRkxBR19LRUVQX1RPVUNIX01PREUgPSAweDQsCisKKyAgICAvKiBUaGlzIG1hc2sgaXMgc2V0IGlmIGFuIGV2ZW50IHdhcyBrbm93biB0byBjb21lIGZyb20gYSB0cnVzdGVkIHBhcnQKKyAgICAgKiBvZiB0aGUgc3lzdGVtLiAgVGhhdCBpcywgdGhlIGV2ZW50IGlzIGtub3duIHRvIGNvbWUgZnJvbSB0aGUgdXNlciwKKyAgICAgKiBhbmQgY291bGQgbm90IGhhdmUgYmVlbiBzcG9vZmVkIGJ5IGEgdGhpcmQgcGFydHkgY29tcG9uZW50LiAqLworICAgIEFLRVlfRVZFTlRfRkxBR19GUk9NX1NZU1RFTSA9IDB4OCwKKworICAgIC8qIFRoaXMgbWFzayBpcyB1c2VkIGZvciBjb21wYXRpYmlsaXR5LCB0byBpZGVudGlmeSBlbnRlciBrZXlzIHRoYXQgYXJlCisgICAgICogY29taW5nIGZyb20gYW4gSU1FIHdob3NlIGVudGVyIGtleSBoYXMgYmVlbiBhdXRvLWxhYmVsbGVkICJuZXh0IiBvcgorICAgICAqICJkb25lIi4gIFRoaXMgYWxsb3dzIFRleHRWaWV3IHRvIGRpc3BhdGNoIHRoZXNlIGFzIG5vcm1hbCBlbnRlciBrZXlzCisgICAgICogZm9yIG9sZCBhcHBsaWNhdGlvbnMsIGJ1dCBzdGlsbCBkbyB0aGUgYXBwcm9wcmlhdGUgYWN0aW9uIHdoZW4KKyAgICAgKiByZWNlaXZpbmcgdGhlbS4gKi8KKyAgICBBS0VZX0VWRU5UX0ZMQUdfRURJVE9SX0FDVElPTiA9IDB4MTAsCisKKyAgICAvKiBXaGVuIGFzc29jaWF0ZWQgd2l0aCB1cCBrZXkgZXZlbnRzLCB0aGlzIGluZGljYXRlcyB0aGF0IHRoZSBrZXkgcHJlc3MKKyAgICAgKiBoYXMgYmVlbiBjYW5jZWxlZC4gIFR5cGljYWxseSB0aGlzIGlzIHVzZWQgd2l0aCB2aXJ0dWFsIHRvdWNoIHNjcmVlbgorICAgICAqIGtleXMsIHdoZXJlIHRoZSB1c2VyIGNhbiBzbGlkZSBmcm9tIHRoZSB2aXJ0dWFsIGtleSBhcmVhIG9uIHRvIHRoZQorICAgICAqIGRpc3BsYXk6IGluIHRoYXQgY2FzZSwgdGhlIGFwcGxpY2F0aW9uIHdpbGwgcmVjZWl2ZSBhIGNhbmNlbGVkIHVwCisgICAgICogZXZlbnQgYW5kIHNob3VsZCBub3QgcGVyZm9ybSB0aGUgYWN0aW9uIG5vcm1hbGx5IGFzc29jaWF0ZWQgd2l0aCB0aGUKKyAgICAgKiBrZXkuICBOb3RlIHRoYXQgZm9yIHRoaXMgdG8gd29yaywgdGhlIGFwcGxpY2F0aW9uIGNhbiBub3QgcGVyZm9ybSBhbgorICAgICAqIGFjdGlvbiBmb3IgYSBrZXkgdW50aWwgaXQgcmVjZWl2ZXMgYW4gdXAgb3IgdGhlIGxvbmcgcHJlc3MgdGltZW91dCBoYXMKKyAgICAgKiBleHBpcmVkLiAqLworICAgIEFLRVlfRVZFTlRfRkxBR19DQU5DRUxFRCA9IDB4MjAsCisKKyAgICAvKiBUaGlzIGtleSBldmVudCB3YXMgZ2VuZXJhdGVkIGJ5IGEgdmlydHVhbCAob24tc2NyZWVuKSBoYXJkIGtleSBhcmVhLgorICAgICAqIFR5cGljYWxseSB0aGlzIGlzIGFuIGFyZWEgb2YgdGhlIHRvdWNoc2NyZWVuLCBvdXRzaWRlIG9mIHRoZSByZWd1bGFyCisgICAgICogZGlzcGxheSwgZGVkaWNhdGVkIHRvICJoYXJkd2FyZSIgYnV0dG9ucy4gKi8KKyAgICBBS0VZX0VWRU5UX0ZMQUdfVklSVFVBTF9IQVJEX0tFWSA9IDB4NDAsCisKKyAgICAvKiBUaGlzIGZsYWcgaXMgc2V0IGZvciB0aGUgZmlyc3Qga2V5IHJlcGVhdCB0aGF0IG9jY3VycyBhZnRlciB0aGUKKyAgICAgKiBsb25nIHByZXNzIHRpbWVvdXQuICovCisgICAgQUtFWV9FVkVOVF9GTEFHX0xPTkdfUFJFU1MgPSAweDgwLAorCisgICAgLyogU2V0IHdoZW4gYSBrZXkgZXZlbnQgaGFzIEFLRVlfRVZFTlRfRkxBR19DQU5DRUxFRCBzZXQgYmVjYXVzZSBhIGxvbmcKKyAgICAgKiBwcmVzcyBhY3Rpb24gd2FzIGV4ZWN1dGVkIHdoaWxlIGl0IHdhcyBkb3duLiAqLworICAgIEFLRVlfRVZFTlRfRkxBR19DQU5DRUxFRF9MT05HX1BSRVNTID0gMHgxMDAsCisKKyAgICAvKiBTZXQgZm9yIEFLRVlfRVZFTlRfQUNUSU9OX1VQIHdoZW4gdGhpcyBldmVudCdzIGtleSBjb2RlIGlzIHN0aWxsIGJlaW5nCisgICAgICogdHJhY2tlZCBmcm9tIGl0cyBpbml0aWFsIGRvd24uICBUaGF0IGlzLCBzb21lYm9keSByZXF1ZXN0ZWQgdGhhdCB0cmFja2luZworICAgICAqIHN0YXJ0ZWQgb24gdGhlIGtleSBkb3duIGFuZCBhIGxvbmcgcHJlc3MgaGFzIG5vdCBjYXVzZWQKKyAgICAgKiB0aGUgdHJhY2tpbmcgdG8gYmUgY2FuY2VsZWQuICovCisgICAgQUtFWV9FVkVOVF9GTEFHX1RSQUNLSU5HID0gMHgyMDAsCisKKyAgICAvKiBTZXQgd2hlbiBhIGtleSBldmVudCBoYXMgYmVlbiBzeW50aGVzaXplZCB0byBpbXBsZW1lbnQgZGVmYXVsdCBiZWhhdmlvcgorICAgICAqIGZvciBhbiBldmVudCB0aGF0IHRoZSBhcHBsaWNhdGlvbiBkaWQgbm90IGhhbmRsZS4KKyAgICAgKiBGYWxsYmFjayBrZXkgZXZlbnRzIGFyZSBnZW5lcmF0ZWQgYnkgdW5oYW5kbGVkIHRyYWNrYmFsbCBtb3Rpb25zCisgICAgICogKHRvIGVtdWxhdGUgYSBkaXJlY3Rpb25hbCBrZXlwYWQpIGFuZCBieSBjZXJ0YWluIHVuaGFuZGxlZCBrZXkgcHJlc3NlcworICAgICAqIHRoYXQgYXJlIGRlY2xhcmVkIGluIHRoZSBrZXkgbWFwIChzdWNoIGFzIHNwZWNpYWwgZnVuY3Rpb24gbnVtZXJpYyBrZXlwYWQKKyAgICAgKiBrZXlzIHdoZW4gbnVtbG9jayBpcyBvZmYpLiAqLworICAgIEFLRVlfRVZFTlRfRkxBR19GQUxMQkFDSyA9IDB4NDAwLAorfTsKKworLyoKKyAqIE1vdGlvbiBldmVudCBhY3Rpb25zLgorICovCisKKy8qIEJpdCBzaGlmdCBmb3IgdGhlIGFjdGlvbiBiaXRzIGhvbGRpbmcgdGhlIHBvaW50ZXIgaW5kZXggYXMKKyAqIGRlZmluZWQgYnkgQU1PVElPTl9FVkVOVF9BQ1RJT05fUE9JTlRFUl9JTkRFWF9NQVNLLgorICovCisjZGVmaW5lIEFNT1RJT05fRVZFTlRfQUNUSU9OX1BPSU5URVJfSU5ERVhfU0hJRlQgOAorCitlbnVtIHsKKyAgICAvKiBCaXQgbWFzayBvZiB0aGUgcGFydHMgb2YgdGhlIGFjdGlvbiBjb2RlIHRoYXQgYXJlIHRoZSBhY3Rpb24gaXRzZWxmLgorICAgICAqLworICAgIEFNT1RJT05fRVZFTlRfQUNUSU9OX01BU0sgPSAweGZmLAorCisgICAgLyogQml0cyBpbiB0aGUgYWN0aW9uIGNvZGUgdGhhdCByZXByZXNlbnQgYSBwb2ludGVyIGluZGV4LCB1c2VkIHdpdGgKKyAgICAgKiBBTU9USU9OX0VWRU5UX0FDVElPTl9QT0lOVEVSX0RPV04gYW5kIEFNT1RJT05fRVZFTlRfQUNUSU9OX1BPSU5URVJfVVAuICBTaGlmdGluZworICAgICAqIGRvd24gYnkgQU1PVElPTl9FVkVOVF9BQ1RJT05fUE9JTlRFUl9JTkRFWF9TSElGVCBwcm92aWRlcyB0aGUgYWN0dWFsIHBvaW50ZXIKKyAgICAgKiBpbmRleCB3aGVyZSB0aGUgZGF0YSBmb3IgdGhlIHBvaW50ZXIgZ29pbmcgdXAgb3IgZG93biBjYW4gYmUgZm91bmQuCisgICAgICovCisgICAgQU1PVElPTl9FVkVOVF9BQ1RJT05fUE9JTlRFUl9JTkRFWF9NQVNLICA9IDB4ZmYwMCwKKworICAgIC8qIEEgcHJlc3NlZCBnZXN0dXJlIGhhcyBzdGFydGVkLCB0aGUgbW90aW9uIGNvbnRhaW5zIHRoZSBpbml0aWFsIHN0YXJ0aW5nIGxvY2F0aW9uLgorICAgICAqLworICAgIEFNT1RJT05fRVZFTlRfQUNUSU9OX0RPV04gPSAwLAorCisgICAgLyogQSBwcmVzc2VkIGdlc3R1cmUgaGFzIGZpbmlzaGVkLCB0aGUgbW90aW9uIGNvbnRhaW5zIHRoZSBmaW5hbCByZWxlYXNlIGxvY2F0aW9uCisgICAgICogYXMgd2VsbCBhcyBhbnkgaW50ZXJtZWRpYXRlIHBvaW50cyBzaW5jZSB0aGUgbGFzdCBkb3duIG9yIG1vdmUgZXZlbnQuCisgICAgICovCisgICAgQU1PVElPTl9FVkVOVF9BQ1RJT05fVVAgPSAxLAorCisgICAgLyogQSBjaGFuZ2UgaGFzIGhhcHBlbmVkIGR1cmluZyBhIHByZXNzIGdlc3R1cmUgKGJldHdlZW4gQU1PVElPTl9FVkVOVF9BQ1RJT05fRE9XTiBhbmQKKyAgICAgKiBBTU9USU9OX0VWRU5UX0FDVElPTl9VUCkuICBUaGUgbW90aW9uIGNvbnRhaW5zIHRoZSBtb3N0IHJlY2VudCBwb2ludCwgYXMgd2VsbCBhcworICAgICAqIGFueSBpbnRlcm1lZGlhdGUgcG9pbnRzIHNpbmNlIHRoZSBsYXN0IGRvd24gb3IgbW92ZSBldmVudC4KKyAgICAgKi8KKyAgICBBTU9USU9OX0VWRU5UX0FDVElPTl9NT1ZFID0gMiwKKworICAgIC8qIFRoZSBjdXJyZW50IGdlc3R1cmUgaGFzIGJlZW4gYWJvcnRlZC4KKyAgICAgKiBZb3Ugd2lsbCBub3QgcmVjZWl2ZSBhbnkgbW9yZSBwb2ludHMgaW4gaXQuICBZb3Ugc2hvdWxkIHRyZWF0IHRoaXMgYXMKKyAgICAgKiBhbiB1cCBldmVudCwgYnV0IG5vdCBwZXJmb3JtIGFueSBhY3Rpb24gdGhhdCB5b3Ugbm9ybWFsbHkgd291bGQuCisgICAgICovCisgICAgQU1PVElPTl9FVkVOVF9BQ1RJT05fQ0FOQ0VMID0gMywKKworICAgIC8qIEEgbW92ZW1lbnQgaGFzIGhhcHBlbmVkIG91dHNpZGUgb2YgdGhlIG5vcm1hbCBib3VuZHMgb2YgdGhlIFVJIGVsZW1lbnQuCisgICAgICogVGhpcyBkb2VzIG5vdCBwcm92aWRlIGEgZnVsbCBnZXN0dXJlLCBidXQgb25seSB0aGUgaW5pdGlhbCBsb2NhdGlvbiBvZiB0aGUgbW92ZW1lbnQvdG91Y2guCisgICAgICovCisgICAgQU1PVElPTl9FVkVOVF9BQ1RJT05fT1VUU0lERSA9IDQsCisKKyAgICAvKiBBIG5vbi1wcmltYXJ5IHBvaW50ZXIgaGFzIGdvbmUgZG93bi4KKyAgICAgKiBUaGUgYml0cyBpbiBBTU9USU9OX0VWRU5UX0FDVElPTl9QT0lOVEVSX0lOREVYX01BU0sgaW5kaWNhdGUgd2hpY2ggcG9pbnRlciBjaGFuZ2VkLgorICAgICAqLworICAgIEFNT1RJT05fRVZFTlRfQUNUSU9OX1BPSU5URVJfRE9XTiA9IDUsCisKKyAgICAvKiBBIG5vbi1wcmltYXJ5IHBvaW50ZXIgaGFzIGdvbmUgdXAuCisgICAgICogVGhlIGJpdHMgaW4gQU1PVElPTl9FVkVOVF9BQ1RJT05fUE9JTlRFUl9JTkRFWF9NQVNLIGluZGljYXRlIHdoaWNoIHBvaW50ZXIgY2hhbmdlZC4KKyAgICAgKi8KKyAgICBBTU9USU9OX0VWRU5UX0FDVElPTl9QT0lOVEVSX1VQID0gNiwKKworICAgIC8qIEEgY2hhbmdlIGhhcHBlbmVkIGJ1dCB0aGUgcG9pbnRlciBpcyBub3QgZG93biAodW5saWtlIEFNT1RJT05fRVZFTlRfQUNUSU9OX01PVkUpLgorICAgICAqIFRoZSBtb3Rpb24gY29udGFpbnMgdGhlIG1vc3QgcmVjZW50IHBvaW50LCBhcyB3ZWxsIGFzIGFueSBpbnRlcm1lZGlhdGUgcG9pbnRzIHNpbmNlCisgICAgICogdGhlIGxhc3QgaG92ZXIgbW92ZSBldmVudC4KKyAgICAgKi8KKyAgICBBTU9USU9OX0VWRU5UX0FDVElPTl9IT1ZFUl9NT1ZFID0gNywKKworICAgIC8qIFRoZSBtb3Rpb24gZXZlbnQgY29udGFpbnMgcmVsYXRpdmUgdmVydGljYWwgYW5kL29yIGhvcml6b250YWwgc2Nyb2xsIG9mZnNldHMuCisgICAgICogVXNlIGdldEF4aXNWYWx1ZSB0byByZXRyaWV2ZSB0aGUgaW5mb3JtYXRpb24gZnJvbSBBTU9USU9OX0VWRU5UX0FYSVNfVlNDUk9MTAorICAgICAqIGFuZCBBTU9USU9OX0VWRU5UX0FYSVNfSFNDUk9MTC4KKyAgICAgKiBUaGUgcG9pbnRlciBtYXkgb3IgbWF5IG5vdCBiZSBkb3duIHdoZW4gdGhpcyBldmVudCBpcyBkaXNwYXRjaGVkLgorICAgICAqIFRoaXMgYWN0aW9uIGlzIGFsd2F5cyBkZWxpdmVyZWQgdG8gdGhlIHdpbmRlciB1bmRlciB0aGUgcG9pbnRlciwgd2hpY2gKKyAgICAgKiBtYXkgbm90IGJlIHRoZSB3aW5kb3cgY3VycmVudGx5IHRvdWNoZWQuCisgICAgICovCisgICAgQU1PVElPTl9FVkVOVF9BQ1RJT05fU0NST0xMID0gOCwKKworICAgIC8qIFRoZSBwb2ludGVyIGlzIG5vdCBkb3duIGJ1dCBoYXMgZW50ZXJlZCB0aGUgYm91bmRhcmllcyBvZiBhIHdpbmRvdyBvciB2aWV3LgorICAgICAqLworICAgIEFNT1RJT05fRVZFTlRfQUNUSU9OX0hPVkVSX0VOVEVSID0gOSwKKworICAgIC8qIFRoZSBwb2ludGVyIGlzIG5vdCBkb3duIGJ1dCBoYXMgZXhpdGVkIHRoZSBib3VuZGFyaWVzIG9mIGEgd2luZG93IG9yIHZpZXcuCisgICAgICovCisgICAgQU1PVElPTl9FVkVOVF9BQ1RJT05fSE9WRVJfRVhJVCA9IDEwLAorfTsKKworLyoKKyAqIE1vdGlvbiBldmVudCBmbGFncy4KKyAqLworZW51bSB7CisgICAgLyogVGhpcyBmbGFnIGluZGljYXRlcyB0aGF0IHRoZSB3aW5kb3cgdGhhdCByZWNlaXZlZCB0aGlzIG1vdGlvbiBldmVudCBpcyBwYXJ0bHkKKyAgICAgKiBvciB3aG9sbHkgb2JzY3VyZWQgYnkgYW5vdGhlciB2aXNpYmxlIHdpbmRvdyBhYm92ZSBpdC4gIFRoaXMgZmxhZyBpcyBzZXQgdG8gdHJ1ZQorICAgICAqIGV2ZW4gaWYgdGhlIGV2ZW50IGRpZCBub3QgZGlyZWN0bHkgcGFzcyB0aHJvdWdoIHRoZSBvYnNjdXJlZCBhcmVhLgorICAgICAqIEEgc2VjdXJpdHkgc2Vuc2l0aXZlIGFwcGxpY2F0aW9uIGNhbiBjaGVjayB0aGlzIGZsYWcgdG8gaWRlbnRpZnkgc2l0dWF0aW9ucyBpbiB3aGljaAorICAgICAqIGEgbWFsaWNpb3VzIGFwcGxpY2F0aW9uIG1heSBoYXZlIGNvdmVyZWQgdXAgcGFydCBvZiBpdHMgY29udGVudCBmb3IgdGhlIHB1cnBvc2UKKyAgICAgKiBvZiBtaXNsZWFkaW5nIHRoZSB1c2VyIG9yIGhpamFja2luZyB0b3VjaGVzLiAgQW4gYXBwcm9wcmlhdGUgcmVzcG9uc2UgbWlnaHQgYmUKKyAgICAgKiB0byBkcm9wIHRoZSBzdXNwZWN0IHRvdWNoZXMgb3IgdG8gdGFrZSBhZGRpdGlvbmFsIHByZWNhdXRpb25zIHRvIGNvbmZpcm0gdGhlIHVzZXIncworICAgICAqIGFjdHVhbCBpbnRlbnQuCisgICAgICovCisgICAgQU1PVElPTl9FVkVOVF9GTEFHX1dJTkRPV19JU19PQlNDVVJFRCA9IDB4MSwKK307CisKKy8qCisgKiBNb3Rpb24gZXZlbnQgZWRnZSB0b3VjaCBmbGFncy4KKyAqLworZW51bSB7CisgICAgLyogTm8gZWRnZXMgaW50ZXJzZWN0ZWQgKi8KKyAgICBBTU9USU9OX0VWRU5UX0VER0VfRkxBR19OT05FID0gMCwKKworICAgIC8qIEZsYWcgaW5kaWNhdGluZyB0aGUgbW90aW9uIGV2ZW50IGludGVyc2VjdGVkIHRoZSB0b3AgZWRnZSBvZiB0aGUgc2NyZWVuLiAqLworICAgIEFNT1RJT05fRVZFTlRfRURHRV9GTEFHX1RPUCA9IDB4MDEsCisKKyAgICAvKiBGbGFnIGluZGljYXRpbmcgdGhlIG1vdGlvbiBldmVudCBpbnRlcnNlY3RlZCB0aGUgYm90dG9tIGVkZ2Ugb2YgdGhlIHNjcmVlbi4gKi8KKyAgICBBTU9USU9OX0VWRU5UX0VER0VfRkxBR19CT1RUT00gPSAweDAyLAorCisgICAgLyogRmxhZyBpbmRpY2F0aW5nIHRoZSBtb3Rpb24gZXZlbnQgaW50ZXJzZWN0ZWQgdGhlIGxlZnQgZWRnZSBvZiB0aGUgc2NyZWVuLiAqLworICAgIEFNT1RJT05fRVZFTlRfRURHRV9GTEFHX0xFRlQgPSAweDA0LAorCisgICAgLyogRmxhZyBpbmRpY2F0aW5nIHRoZSBtb3Rpb24gZXZlbnQgaW50ZXJzZWN0ZWQgdGhlIHJpZ2h0IGVkZ2Ugb2YgdGhlIHNjcmVlbi4gKi8KKyAgICBBTU9USU9OX0VWRU5UX0VER0VfRkxBR19SSUdIVCA9IDB4MDgKK307CisKKy8qCisgKiBDb25zdGFudHMgdGhhdCBpZGVudGlmeSBlYWNoIGluZGl2aWR1YWwgYXhpcyBvZiBhIG1vdGlvbiBldmVudC4KKyAqIFJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIG9uIHRoZSBNb3Rpb25FdmVudCBjbGFzcyBmb3IgZGVzY3JpcHRpb25zIG9mIGVhY2ggYXhpcy4KKyAqLworZW51bSB7CisgICAgQU1PVElPTl9FVkVOVF9BWElTX1ggPSAwLAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19ZID0gMSwKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfUFJFU1NVUkUgPSAyLAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19TSVpFID0gMywKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfVE9VQ0hfTUFKT1IgPSA0LAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19UT1VDSF9NSU5PUiA9IDUsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX1RPT0xfTUFKT1IgPSA2LAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19UT09MX01JTk9SID0gNywKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfT1JJRU5UQVRJT04gPSA4LAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19WU0NST0xMID0gOSwKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfSFNDUk9MTCA9IDEwLAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19aID0gMTEsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX1JYID0gMTIsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX1JZID0gMTMsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX1JaID0gMTQsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX0hBVF9YID0gMTUsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX0hBVF9ZID0gMTYsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX0xUUklHR0VSID0gMTcsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX1JUUklHR0VSID0gMTgsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX1RIUk9UVExFID0gMTksCisgICAgQU1PVElPTl9FVkVOVF9BWElTX1JVRERFUiA9IDIwLAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19XSEVFTCA9IDIxLAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19HQVMgPSAyMiwKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfQlJBS0UgPSAyMywKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfRElTVEFOQ0UgPSAyNCwKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfVElMVCA9IDI1LAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19HRU5FUklDXzEgPSAzMiwKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfR0VORVJJQ18yID0gMzMsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX0dFTkVSSUNfMyA9IDM0LAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19HRU5FUklDXzQgPSAzNSwKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfR0VORVJJQ181ID0gMzYsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX0dFTkVSSUNfNiA9IDM3LAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19HRU5FUklDXzcgPSAzOCwKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfR0VORVJJQ184ID0gMzksCisgICAgQU1PVElPTl9FVkVOVF9BWElTX0dFTkVSSUNfOSA9IDQwLAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19HRU5FUklDXzEwID0gNDEsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX0dFTkVSSUNfMTEgPSA0MiwKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfR0VORVJJQ18xMiA9IDQzLAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19HRU5FUklDXzEzID0gNDQsCisgICAgQU1PVElPTl9FVkVOVF9BWElTX0dFTkVSSUNfMTQgPSA0NSwKKyAgICBBTU9USU9OX0VWRU5UX0FYSVNfR0VORVJJQ18xNSA9IDQ2LAorICAgIEFNT1RJT05fRVZFTlRfQVhJU19HRU5FUklDXzE2ID0gNDcsCisKKyAgICAvLyBOT1RFOiBJZiB5b3UgYWRkIGEgbmV3IGF4aXMgaGVyZSB5b3UgbXVzdCBhbHNvIGFkZCBpdCB0byBzZXZlcmFsIG90aGVyIGZpbGVzLgorICAgIC8vICAgICAgIFJlZmVyIHRvIGZyYW1ld29ya3MvYmFzZS9jb3JlL2phdmEvYW5kcm9pZC92aWV3L01vdGlvbkV2ZW50LmphdmEgZm9yIHRoZSBmdWxsIGxpc3QuCit9OworCisvKgorICogQ29uc3RhbnRzIHRoYXQgaWRlbnRpZnkgYnV0dG9ucyB0aGF0IGFyZSBhc3NvY2lhdGVkIHdpdGggbW90aW9uIGV2ZW50cy4KKyAqIFJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIG9uIHRoZSBNb3Rpb25FdmVudCBjbGFzcyBmb3IgZGVzY3JpcHRpb25zIG9mIGVhY2ggYnV0dG9uLgorICovCitlbnVtIHsKKyAgICBBTU9USU9OX0VWRU5UX0JVVFRPTl9QUklNQVJZID0gMSA8PCAwLAorICAgIEFNT1RJT05fRVZFTlRfQlVUVE9OX1NFQ09OREFSWSA9IDEgPDwgMSwKKyAgICBBTU9USU9OX0VWRU5UX0JVVFRPTl9URVJUSUFSWSA9IDEgPDwgMiwKKyAgICBBTU9USU9OX0VWRU5UX0JVVFRPTl9CQUNLID0gMSA8PCAzLAorICAgIEFNT1RJT05fRVZFTlRfQlVUVE9OX0ZPUldBUkQgPSAxIDw8IDQsCit9OworCisvKgorICogQ29uc3RhbnRzIHRoYXQgaWRlbnRpZnkgdG9vbCB0eXBlcy4KKyAqIFJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIG9uIHRoZSBNb3Rpb25FdmVudCBjbGFzcyBmb3IgZGVzY3JpcHRpb25zIG9mIGVhY2ggdG9vbCB0eXBlLgorICovCitlbnVtIHsKKyAgICBBTU9USU9OX0VWRU5UX1RPT0xfVFlQRV9VTktOT1dOID0gMCwKKyAgICBBTU9USU9OX0VWRU5UX1RPT0xfVFlQRV9GSU5HRVIgPSAxLAorICAgIEFNT1RJT05fRVZFTlRfVE9PTF9UWVBFX1NUWUxVUyA9IDIsCisgICAgQU1PVElPTl9FVkVOVF9UT09MX1RZUEVfTU9VU0UgPSAzLAorICAgIEFNT1RJT05fRVZFTlRfVE9PTF9UWVBFX0VSQVNFUiA9IDQsCit9OworCisvKgorICogSW5wdXQgc291cmNlcy4KKyAqCisgKiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBvbiBhbmRyb2lkLnZpZXcuSW5wdXREZXZpY2UgZm9yIG1vcmUgZGV0YWlscyBhYm91dCBpbnB1dCBzb3VyY2VzCisgKiBhbmQgdGhlaXIgY29ycmVjdCBpbnRlcnByZXRhdGlvbi4KKyAqLworZW51bSB7CisgICAgQUlOUFVUX1NPVVJDRV9DTEFTU19NQVNLID0gMHgwMDAwMDBmZiwKKworICAgIEFJTlBVVF9TT1VSQ0VfQ0xBU1NfTk9ORSA9IDB4MDAwMDAwMDAsCisgICAgQUlOUFVUX1NPVVJDRV9DTEFTU19CVVRUT04gPSAweDAwMDAwMDAxLAorICAgIEFJTlBVVF9TT1VSQ0VfQ0xBU1NfUE9JTlRFUiA9IDB4MDAwMDAwMDIsCisgICAgQUlOUFVUX1NPVVJDRV9DTEFTU19OQVZJR0FUSU9OID0gMHgwMDAwMDAwNCwKKyAgICBBSU5QVVRfU09VUkNFX0NMQVNTX1BPU0lUSU9OID0gMHgwMDAwMDAwOCwKKyAgICBBSU5QVVRfU09VUkNFX0NMQVNTX0pPWVNUSUNLID0gMHgwMDAwMDAxMCwKK307CisKK2VudW0geworICAgIEFJTlBVVF9TT1VSQ0VfVU5LTk9XTiA9IDB4MDAwMDAwMDAsCisKKyAgICBBSU5QVVRfU09VUkNFX0tFWUJPQVJEID0gMHgwMDAwMDEwMCB8IEFJTlBVVF9TT1VSQ0VfQ0xBU1NfQlVUVE9OLAorICAgIEFJTlBVVF9TT1VSQ0VfRFBBRCA9IDB4MDAwMDAyMDAgfCBBSU5QVVRfU09VUkNFX0NMQVNTX0JVVFRPTiwKKyAgICBBSU5QVVRfU09VUkNFX0dBTUVQQUQgPSAweDAwMDAwNDAwIHwgQUlOUFVUX1NPVVJDRV9DTEFTU19CVVRUT04sCisgICAgQUlOUFVUX1NPVVJDRV9UT1VDSFNDUkVFTiA9IDB4MDAwMDEwMDAgfCBBSU5QVVRfU09VUkNFX0NMQVNTX1BPSU5URVIsCisgICAgQUlOUFVUX1NPVVJDRV9NT1VTRSA9IDB4MDAwMDIwMDAgfCBBSU5QVVRfU09VUkNFX0NMQVNTX1BPSU5URVIsCisgICAgQUlOUFVUX1NPVVJDRV9TVFlMVVMgPSAweDAwMDA0MDAwIHwgQUlOUFVUX1NPVVJDRV9DTEFTU19QT0lOVEVSLAorICAgIEFJTlBVVF9TT1VSQ0VfVFJBQ0tCQUxMID0gMHgwMDAxMDAwMCB8IEFJTlBVVF9TT1VSQ0VfQ0xBU1NfTkFWSUdBVElPTiwKKyAgICBBSU5QVVRfU09VUkNFX1RPVUNIUEFEID0gMHgwMDEwMDAwMCB8IEFJTlBVVF9TT1VSQ0VfQ0xBU1NfUE9TSVRJT04sCisgICAgQUlOUFVUX1NPVVJDRV9UT1VDSF9OQVZJR0FUSU9OID0gMHgwMDIwMDAwMCB8IEFJTlBVVF9TT1VSQ0VfQ0xBU1NfTk9ORSwKKyAgICBBSU5QVVRfU09VUkNFX0pPWVNUSUNLID0gMHgwMTAwMDAwMCB8IEFJTlBVVF9TT1VSQ0VfQ0xBU1NfSk9ZU1RJQ0ssCisKKyAgICBBSU5QVVRfU09VUkNFX0FOWSA9IDB4ZmZmZmZmMDAsCit9OworCisvKgorICogS2V5Ym9hcmQgdHlwZXMuCisgKgorICogUmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gb24gYW5kcm9pZC52aWV3LklucHV0RGV2aWNlIGZvciBtb3JlIGRldGFpbHMuCisgKi8KK2VudW0geworICAgIEFJTlBVVF9LRVlCT0FSRF9UWVBFX05PTkUgPSAwLAorICAgIEFJTlBVVF9LRVlCT0FSRF9UWVBFX05PTl9BTFBIQUJFVElDID0gMSwKKyAgICBBSU5QVVRfS0VZQk9BUkRfVFlQRV9BTFBIQUJFVElDID0gMiwKK307CisKKy8qCisgKiBDb25zdGFudHMgdXNlZCB0byByZXRyaWV2ZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcmFuZ2Ugb2YgbW90aW9uIGZvciBhIHBhcnRpY3VsYXIKKyAqIGNvb3JkaW5hdGUgb2YgYSBtb3Rpb24gZXZlbnQuCisgKgorICogUmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gb24gYW5kcm9pZC52aWV3LklucHV0RGV2aWNlIGZvciBtb3JlIGRldGFpbHMgYWJvdXQgaW5wdXQgc291cmNlcworICogYW5kIHRoZWlyIGNvcnJlY3QgaW50ZXJwcmV0YXRpb24uCisgKgorICogREVQUkVDQVRJT04gTk9USUNFOiBUaGVzZSBjb25zdGFudHMgYXJlIGRlcHJlY2F0ZWQuICBVc2UgQU1PVElPTl9FVkVOVF9BWElTXyogY29uc3RhbnRzIGluc3RlYWQuCisgKi8KK2VudW0geworICAgIEFJTlBVVF9NT1RJT05fUkFOR0VfWCA9IEFNT1RJT05fRVZFTlRfQVhJU19YLAorICAgIEFJTlBVVF9NT1RJT05fUkFOR0VfWSA9IEFNT1RJT05fRVZFTlRfQVhJU19ZLAorICAgIEFJTlBVVF9NT1RJT05fUkFOR0VfUFJFU1NVUkUgPSBBTU9USU9OX0VWRU5UX0FYSVNfUFJFU1NVUkUsCisgICAgQUlOUFVUX01PVElPTl9SQU5HRV9TSVpFID0gQU1PVElPTl9FVkVOVF9BWElTX1NJWkUsCisgICAgQUlOUFVUX01PVElPTl9SQU5HRV9UT1VDSF9NQUpPUiA9IEFNT1RJT05fRVZFTlRfQVhJU19UT1VDSF9NQUpPUiwKKyAgICBBSU5QVVRfTU9USU9OX1JBTkdFX1RPVUNIX01JTk9SID0gQU1PVElPTl9FVkVOVF9BWElTX1RPVUNIX01JTk9SLAorICAgIEFJTlBVVF9NT1RJT05fUkFOR0VfVE9PTF9NQUpPUiA9IEFNT1RJT05fRVZFTlRfQVhJU19UT09MX01BSk9SLAorICAgIEFJTlBVVF9NT1RJT05fUkFOR0VfVE9PTF9NSU5PUiA9IEFNT1RJT05fRVZFTlRfQVhJU19UT09MX01JTk9SLAorICAgIEFJTlBVVF9NT1RJT05fUkFOR0VfT1JJRU5UQVRJT04gPSBBTU9USU9OX0VWRU5UX0FYSVNfT1JJRU5UQVRJT04sCit9IF9fYXR0cmlidXRlX18gKChkZXByZWNhdGVkKSk7CisKKworLyoKKyAqIElucHV0IGV2ZW50IGFjY2Vzc29ycy4KKyAqCisgKiBOb3RlIHRoYXQgbW9zdCBmdW5jdGlvbnMgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnB1dCBldmVudHMgdGhhdCBhcmUgb2YgYSBnaXZlbiB0eXBlLgorICogQ2FsbGluZyB0aGVzZSBmdW5jdGlvbnMgb24gaW5wdXQgZXZlbnRzIG9mIG90aGVyIHR5cGVzIHdpbGwgeWllbGQgdW5kZWZpbmVkIGJlaGF2aW9yLgorICovCisKKy8qKiogQWNjZXNzb3JzIGZvciBhbGwgaW5wdXQgZXZlbnRzLiAqKiovCisKKy8qIEdldCB0aGUgaW5wdXQgZXZlbnQgdHlwZS4gKi8KK2ludDMyX3QgQUlucHV0RXZlbnRfZ2V0VHlwZShjb25zdCBBSW5wdXRFdmVudCogZXZlbnQpOworCisvKiBHZXQgdGhlIGlkIGZvciB0aGUgZGV2aWNlIHRoYXQgYW4gaW5wdXQgZXZlbnQgY2FtZSBmcm9tLgorICoKKyAqIElucHV0IGV2ZW50cyBjYW4gYmUgZ2VuZXJhdGVkIGJ5IG11bHRpcGxlIGRpZmZlcmVudCBpbnB1dCBkZXZpY2VzLgorICogVXNlIHRoZSBpbnB1dCBkZXZpY2UgaWQgdG8gb2J0YWluIGluZm9ybWF0aW9uIGFib3V0IHRoZSBpbnB1dAorICogZGV2aWNlIHRoYXQgd2FzIHJlc3BvbnNpYmxlIGZvciBnZW5lcmF0aW5nIGEgcGFydGljdWxhciBldmVudC4KKyAqCisgKiBBbiBpbnB1dCBkZXZpY2UgaWQgb2YgMCBpbmRpY2F0ZXMgdGhhdCB0aGUgZXZlbnQgZGlkbid0IGNvbWUgZnJvbSBhIHBoeXNpY2FsIGRldmljZTsKKyAqIG90aGVyIG51bWJlcnMgYXJlIGFyYml0cmFyeSBhbmQgeW91IHNob3VsZG4ndCBkZXBlbmQgb24gdGhlIHZhbHVlcy4KKyAqIFVzZSB0aGUgcHJvdmlkZWQgaW5wdXQgZGV2aWNlIHF1ZXJ5IEFQSSB0byBvYnRhaW4gaW5mb3JtYXRpb24gYWJvdXQgaW5wdXQgZGV2aWNlcy4KKyAqLworaW50MzJfdCBBSW5wdXRFdmVudF9nZXREZXZpY2VJZChjb25zdCBBSW5wdXRFdmVudCogZXZlbnQpOworCisvKiBHZXQgdGhlIGlucHV0IGV2ZW50IHNvdXJjZS4gKi8KK2ludDMyX3QgQUlucHV0RXZlbnRfZ2V0U291cmNlKGNvbnN0IEFJbnB1dEV2ZW50KiBldmVudCk7CisKKy8qKiogQWNjZXNzb3JzIGZvciBrZXkgZXZlbnRzIG9ubHkuICoqKi8KKworLyogR2V0IHRoZSBrZXkgZXZlbnQgYWN0aW9uLiAqLworaW50MzJfdCBBS2V5RXZlbnRfZ2V0QWN0aW9uKGNvbnN0IEFJbnB1dEV2ZW50KiBrZXlfZXZlbnQpOworCisvKiBHZXQgdGhlIGtleSBldmVudCBmbGFncy4gKi8KK2ludDMyX3QgQUtleUV2ZW50X2dldEZsYWdzKGNvbnN0IEFJbnB1dEV2ZW50KiBrZXlfZXZlbnQpOworCisvKiBHZXQgdGhlIGtleSBjb2RlIG9mIHRoZSBrZXkgZXZlbnQuCisgKiBUaGlzIGlzIHRoZSBwaHlzaWNhbCBrZXkgdGhhdCB3YXMgcHJlc3NlZCwgbm90IHRoZSBVbmljb2RlIGNoYXJhY3Rlci4gKi8KK2ludDMyX3QgQUtleUV2ZW50X2dldEtleUNvZGUoY29uc3QgQUlucHV0RXZlbnQqIGtleV9ldmVudCk7CisKKy8qIEdldCB0aGUgaGFyZHdhcmUga2V5IGlkIG9mIHRoaXMga2V5IGV2ZW50LgorICogVGhlc2UgdmFsdWVzIGFyZSBub3QgcmVsaWFibGUgYW5kIHZhcnkgZnJvbSBkZXZpY2UgdG8gZGV2aWNlLiAqLworaW50MzJfdCBBS2V5RXZlbnRfZ2V0U2NhbkNvZGUoY29uc3QgQUlucHV0RXZlbnQqIGtleV9ldmVudCk7CisKKy8qIEdldCB0aGUgbWV0YSBrZXkgc3RhdGUuICovCitpbnQzMl90IEFLZXlFdmVudF9nZXRNZXRhU3RhdGUoY29uc3QgQUlucHV0RXZlbnQqIGtleV9ldmVudCk7CisKKy8qIEdldCB0aGUgcmVwZWF0IGNvdW50IG9mIHRoZSBldmVudC4KKyAqIEZvciBib3RoIGtleSB1cCBhbiBrZXkgZG93biBldmVudHMsIHRoaXMgaXMgdGhlIG51bWJlciBvZiB0aW1lcyB0aGUga2V5IGhhcworICogcmVwZWF0ZWQgd2l0aCB0aGUgZmlyc3QgZG93biBzdGFydGluZyBhdCAwIGFuZCBjb3VudGluZyB1cCBmcm9tIHRoZXJlLiAgRm9yCisgKiBtdWx0aXBsZSBrZXkgZXZlbnRzLCB0aGlzIGlzIHRoZSBudW1iZXIgb2YgZG93bi91cCBwYWlycyB0aGF0IGhhdmUgb2NjdXJyZWQuICovCitpbnQzMl90IEFLZXlFdmVudF9nZXRSZXBlYXRDb3VudChjb25zdCBBSW5wdXRFdmVudCoga2V5X2V2ZW50KTsKKworLyogR2V0IHRoZSB0aW1lIG9mIHRoZSBtb3N0IHJlY2VudCBrZXkgZG93biBldmVudCwgaW4gdGhlCisgKiBqYXZhLmxhbmcuU3lzdGVtLm5hbm9UaW1lKCkgdGltZSBiYXNlLiAgSWYgdGhpcyBpcyBhIGRvd24gZXZlbnQsCisgKiB0aGlzIHdpbGwgYmUgdGhlIHNhbWUgYXMgZXZlbnRUaW1lLgorICogTm90ZSB0aGF0IHdoZW4gY2hvcmRpbmcga2V5cywgdGhpcyB2YWx1ZSBpcyB0aGUgZG93biB0aW1lIG9mIHRoZSBtb3N0IHJlY2VudGx5CisgKiBwcmVzc2VkIGtleSwgd2hpY2ggbWF5IG5vdCBiZSB0aGUgc2FtZSBwaHlzaWNhbCBrZXkgb2YgdGhpcyBldmVudC4gKi8KK2ludDY0X3QgQUtleUV2ZW50X2dldERvd25UaW1lKGNvbnN0IEFJbnB1dEV2ZW50KiBrZXlfZXZlbnQpOworCisvKiBHZXQgdGhlIHRpbWUgdGhpcyBldmVudCBvY2N1cnJlZCwgaW4gdGhlCisgKiBqYXZhLmxhbmcuU3lzdGVtLm5hbm9UaW1lKCkgdGltZSBiYXNlLiAqLworaW50NjRfdCBBS2V5RXZlbnRfZ2V0RXZlbnRUaW1lKGNvbnN0IEFJbnB1dEV2ZW50KiBrZXlfZXZlbnQpOworCisvKioqIEFjY2Vzc29ycyBmb3IgbW90aW9uIGV2ZW50cyBvbmx5LiAqKiovCisKKy8qIEdldCB0aGUgY29tYmluZWQgbW90aW9uIGV2ZW50IGFjdGlvbiBjb2RlIGFuZCBwb2ludGVyIGluZGV4LiAqLworaW50MzJfdCBBTW90aW9uRXZlbnRfZ2V0QWN0aW9uKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQpOworCisvKiBHZXQgdGhlIG1vdGlvbiBldmVudCBmbGFncy4gKi8KK2ludDMyX3QgQU1vdGlvbkV2ZW50X2dldEZsYWdzKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQpOworCisvKiBHZXQgdGhlIHN0YXRlIG9mIGFueSBtZXRhIC8gbW9kaWZpZXIga2V5cyB0aGF0IHdlcmUgaW4gZWZmZWN0IHdoZW4gdGhlCisgKiBldmVudCB3YXMgZ2VuZXJhdGVkLiAqLworaW50MzJfdCBBTW90aW9uRXZlbnRfZ2V0TWV0YVN0YXRlKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQpOworCisvKiBHZXQgdGhlIGJ1dHRvbiBzdGF0ZSBvZiBhbGwgYnV0dG9ucyB0aGF0IGFyZSBwcmVzc2VkLiAqLworaW50MzJfdCBBTW90aW9uRXZlbnRfZ2V0QnV0dG9uU3RhdGUoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCk7CisKKy8qIEdldCBhIGJpdGZpZWxkIGluZGljYXRpbmcgd2hpY2ggZWRnZXMsIGlmIGFueSwgd2VyZSB0b3VjaGVkIGJ5IHRoaXMgbW90aW9uIGV2ZW50LgorICogRm9yIHRvdWNoIGV2ZW50cywgY2xpZW50cyBjYW4gdXNlIHRoaXMgdG8gZGV0ZXJtaW5lIGlmIHRoZSB1c2VyJ3MgZmluZ2VyIHdhcworICogdG91Y2hpbmcgdGhlIGVkZ2Ugb2YgdGhlIGRpc3BsYXkuICovCitpbnQzMl90IEFNb3Rpb25FdmVudF9nZXRFZGdlRmxhZ3MoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCk7CisKKy8qIEdldCB0aGUgdGltZSB3aGVuIHRoZSB1c2VyIG9yaWdpbmFsbHkgcHJlc3NlZCBkb3duIHRvIHN0YXJ0IGEgc3RyZWFtIG9mCisgKiBwb3NpdGlvbiBldmVudHMsIGluIHRoZSBqYXZhLmxhbmcuU3lzdGVtLm5hbm9UaW1lKCkgdGltZSBiYXNlLiAqLworaW50NjRfdCBBTW90aW9uRXZlbnRfZ2V0RG93blRpbWUoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCk7CisKKy8qIEdldCB0aGUgdGltZSB3aGVuIHRoaXMgc3BlY2lmaWMgZXZlbnQgd2FzIGdlbmVyYXRlZCwKKyAqIGluIHRoZSBqYXZhLmxhbmcuU3lzdGVtLm5hbm9UaW1lKCkgdGltZSBiYXNlLiAqLworaW50NjRfdCBBTW90aW9uRXZlbnRfZ2V0RXZlbnRUaW1lKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQpOworCisvKiBHZXQgdGhlIFggY29vcmRpbmF0ZSBvZmZzZXQuCisgKiBGb3IgdG91Y2ggZXZlbnRzIG9uIHRoZSBzY3JlZW4sIHRoaXMgaXMgdGhlIGRlbHRhIHRoYXQgd2FzIGFkZGVkIHRvIHRoZSByYXcKKyAqIHNjcmVlbiBjb29yZGluYXRlcyB0byBhZGp1c3QgZm9yIHRoZSBhYnNvbHV0ZSBwb3NpdGlvbiBvZiB0aGUgY29udGFpbmluZyB3aW5kb3dzCisgKiBhbmQgdmlld3MuICovCitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0WE9mZnNldChjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50KTsKKworLyogR2V0IHRoZSBwcmVjaXNpb24gb2YgdGhlIFkgY29vcmRpbmF0ZXMgYmVpbmcgcmVwb3J0ZWQuCisgKiBGb3IgdG91Y2ggZXZlbnRzIG9uIHRoZSBzY3JlZW4sIHRoaXMgaXMgdGhlIGRlbHRhIHRoYXQgd2FzIGFkZGVkIHRvIHRoZSByYXcKKyAqIHNjcmVlbiBjb29yZGluYXRlcyB0byBhZGp1c3QgZm9yIHRoZSBhYnNvbHV0ZSBwb3NpdGlvbiBvZiB0aGUgY29udGFpbmluZyB3aW5kb3dzCisgKiBhbmQgdmlld3MuICovCitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0WU9mZnNldChjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50KTsKKworLyogR2V0IHRoZSBwcmVjaXNpb24gb2YgdGhlIFggY29vcmRpbmF0ZXMgYmVpbmcgcmVwb3J0ZWQuCisgKiBZb3UgY2FuIG11bHRpcGx5IHRoaXMgbnVtYmVyIHdpdGggYW4gWCBjb29yZGluYXRlIHNhbXBsZSB0byBmaW5kIHRoZQorICogYWN0dWFsIGhhcmR3YXJlIHZhbHVlIG9mIHRoZSBYIGNvb3JkaW5hdGUuICovCitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0WFByZWNpc2lvbihjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50KTsKKworLyogR2V0IHRoZSBwcmVjaXNpb24gb2YgdGhlIFkgY29vcmRpbmF0ZXMgYmVpbmcgcmVwb3J0ZWQuCisgKiBZb3UgY2FuIG11bHRpcGx5IHRoaXMgbnVtYmVyIHdpdGggYSBZIGNvb3JkaW5hdGUgc2FtcGxlIHRvIGZpbmQgdGhlCisgKiBhY3R1YWwgaGFyZHdhcmUgdmFsdWUgb2YgdGhlIFkgY29vcmRpbmF0ZS4gKi8KK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRZUHJlY2lzaW9uKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQpOworCisvKiBHZXQgdGhlIG51bWJlciBvZiBwb2ludGVycyBvZiBkYXRhIGNvbnRhaW5lZCBpbiB0aGlzIGV2ZW50LgorICogQWx3YXlzID49IDEuICovCitzaXplX3QgQU1vdGlvbkV2ZW50X2dldFBvaW50ZXJDb3VudChjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50KTsKKworLyogR2V0IHRoZSBwb2ludGVyIGlkZW50aWZpZXIgYXNzb2NpYXRlZCB3aXRoIGEgcGFydGljdWxhciBwb2ludGVyCisgKiBkYXRhIGluZGV4IGluIHRoaXMgZXZlbnQuICBUaGUgaWRlbnRpZmllciB0ZWxscyB5b3UgdGhlIGFjdHVhbCBwb2ludGVyCisgKiBudW1iZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBkYXRhLCBhY2NvdW50aW5nIGZvciBpbmRpdmlkdWFsIHBvaW50ZXJzCisgKiBnb2luZyB1cCBhbmQgZG93biBzaW5jZSB0aGUgc3RhcnQgb2YgdGhlIGN1cnJlbnQgZ2VzdHVyZS4gKi8KK2ludDMyX3QgQU1vdGlvbkV2ZW50X2dldFBvaW50ZXJJZChjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LCBzaXplX3QgcG9pbnRlcl9pbmRleCk7CisKKy8qIEdldCB0aGUgdG9vbCB0eXBlIG9mIGEgcG9pbnRlciBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXguCisgKiBUaGUgdG9vbCB0eXBlIGluZGljYXRlcyB0aGUgdHlwZSBvZiB0b29sIHVzZWQgdG8gbWFrZSBjb250YWN0IHN1Y2ggYXMgYQorICogZmluZ2VyIG9yIHN0eWx1cywgaWYga25vd24uICovCitpbnQzMl90IEFNb3Rpb25FdmVudF9nZXRUb29sVHlwZShjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LCBzaXplX3QgcG9pbnRlcl9pbmRleCk7CisKKy8qIEdldCB0aGUgb3JpZ2luYWwgcmF3IFggY29vcmRpbmF0ZSBvZiB0aGlzIGV2ZW50LgorICogRm9yIHRvdWNoIGV2ZW50cyBvbiB0aGUgc2NyZWVuLCB0aGlzIGlzIHRoZSBvcmlnaW5hbCBsb2NhdGlvbiBvZiB0aGUgZXZlbnQKKyAqIG9uIHRoZSBzY3JlZW4sIGJlZm9yZSBpdCBoYWQgYmVlbiBhZGp1c3RlZCBmb3IgdGhlIGNvbnRhaW5pbmcgd2luZG93CisgKiBhbmQgdmlld3MuICovCitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0UmF3WChjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LCBzaXplX3QgcG9pbnRlcl9pbmRleCk7CisKKy8qIEdldCB0aGUgb3JpZ2luYWwgcmF3IFggY29vcmRpbmF0ZSBvZiB0aGlzIGV2ZW50LgorICogRm9yIHRvdWNoIGV2ZW50cyBvbiB0aGUgc2NyZWVuLCB0aGlzIGlzIHRoZSBvcmlnaW5hbCBsb2NhdGlvbiBvZiB0aGUgZXZlbnQKKyAqIG9uIHRoZSBzY3JlZW4sIGJlZm9yZSBpdCBoYWQgYmVlbiBhZGp1c3RlZCBmb3IgdGhlIGNvbnRhaW5pbmcgd2luZG93CisgKiBhbmQgdmlld3MuICovCitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0UmF3WShjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LCBzaXplX3QgcG9pbnRlcl9pbmRleCk7CisKKy8qIEdldCB0aGUgY3VycmVudCBYIGNvb3JkaW5hdGUgb2YgdGhpcyBldmVudCBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXguCisgKiBXaG9sZSBudW1iZXJzIGFyZSBwaXhlbHM7IHRoZSB2YWx1ZSBtYXkgaGF2ZSBhIGZyYWN0aW9uIGZvciBpbnB1dCBkZXZpY2VzCisgKiB0aGF0IGFyZSBzdWItcGl4ZWwgcHJlY2lzZS4gKi8KK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRYKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4KTsKKworLyogR2V0IHRoZSBjdXJyZW50IFkgY29vcmRpbmF0ZSBvZiB0aGlzIGV2ZW50IGZvciB0aGUgZ2l2ZW4gcG9pbnRlciBpbmRleC4KKyAqIFdob2xlIG51bWJlcnMgYXJlIHBpeGVsczsgdGhlIHZhbHVlIG1heSBoYXZlIGEgZnJhY3Rpb24gZm9yIGlucHV0IGRldmljZXMKKyAqIHRoYXQgYXJlIHN1Yi1waXhlbCBwcmVjaXNlLiAqLworZmxvYXQgQU1vdGlvbkV2ZW50X2dldFkoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgpOworCisvKiBHZXQgdGhlIGN1cnJlbnQgcHJlc3N1cmUgb2YgdGhpcyBldmVudCBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXguCisgKiBUaGUgcHJlc3N1cmUgZ2VuZXJhbGx5IHJhbmdlcyBmcm9tIDAgKG5vIHByZXNzdXJlIGF0IGFsbCkgdG8gMSAobm9ybWFsIHByZXNzdXJlKSwKKyAqIGFsdGhvdWdoIHZhbHVlcyBoaWdoZXIgdGhhbiAxIG1heSBiZSBnZW5lcmF0ZWQgZGVwZW5kaW5nIG9uIHRoZSBjYWxpYnJhdGlvbiBvZgorICogdGhlIGlucHV0IGRldmljZS4gKi8KK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRQcmVzc3VyZShjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LCBzaXplX3QgcG9pbnRlcl9pbmRleCk7CisKKy8qIEdldCB0aGUgY3VycmVudCBzY2FsZWQgdmFsdWUgb2YgdGhlIGFwcHJveGltYXRlIHNpemUgZm9yIHRoZSBnaXZlbiBwb2ludGVyIGluZGV4LgorICogVGhpcyByZXByZXNlbnRzIHNvbWUgYXBwcm94aW1hdGlvbiBvZiB0aGUgYXJlYSBvZiB0aGUgc2NyZWVuIGJlaW5nCisgKiBwcmVzc2VkOyB0aGUgYWN0dWFsIHZhbHVlIGluIHBpeGVscyBjb3JyZXNwb25kaW5nIHRvIHRoZQorICogdG91Y2ggaXMgbm9ybWFsaXplZCB3aXRoIHRoZSBkZXZpY2Ugc3BlY2lmaWMgcmFuZ2Ugb2YgdmFsdWVzCisgKiBhbmQgc2NhbGVkIHRvIGEgdmFsdWUgYmV0d2VlbiAwIGFuZCAxLiAgVGhlIHZhbHVlIG9mIHNpemUgY2FuIGJlIHVzZWQgdG8KKyAqIGRldGVybWluZSBmYXQgdG91Y2ggZXZlbnRzLiAqLworZmxvYXQgQU1vdGlvbkV2ZW50X2dldFNpemUoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgpOworCisvKiBHZXQgdGhlIGN1cnJlbnQgbGVuZ3RoIG9mIHRoZSBtYWpvciBheGlzIG9mIGFuIGVsbGlwc2UgdGhhdCBkZXNjcmliZXMgdGhlIHRvdWNoIGFyZWEKKyAqIGF0IHRoZSBwb2ludCBvZiBjb250YWN0IGZvciB0aGUgZ2l2ZW4gcG9pbnRlciBpbmRleC4gKi8KK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRUb3VjaE1ham9yKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4KTsKKworLyogR2V0IHRoZSBjdXJyZW50IGxlbmd0aCBvZiB0aGUgbWlub3IgYXhpcyBvZiBhbiBlbGxpcHNlIHRoYXQgZGVzY3JpYmVzIHRoZSB0b3VjaCBhcmVhCisgKiBhdCB0aGUgcG9pbnQgb2YgY29udGFjdCBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXguICovCitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0VG91Y2hNaW5vcihjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LCBzaXplX3QgcG9pbnRlcl9pbmRleCk7CisKKy8qIEdldCB0aGUgY3VycmVudCBsZW5ndGggb2YgdGhlIG1ham9yIGF4aXMgb2YgYW4gZWxsaXBzZSB0aGF0IGRlc2NyaWJlcyB0aGUgc2l6ZQorICogb2YgdGhlIGFwcHJvYWNoaW5nIHRvb2wgZm9yIHRoZSBnaXZlbiBwb2ludGVyIGluZGV4LgorICogVGhlIHRvb2wgYXJlYSByZXByZXNlbnRzIHRoZSBlc3RpbWF0ZWQgc2l6ZSBvZiB0aGUgZmluZ2VyIG9yIHBlbiB0aGF0IGlzCisgKiB0b3VjaGluZyB0aGUgZGV2aWNlIGluZGVwZW5kZW50IG9mIGl0cyBhY3R1YWwgdG91Y2ggYXJlYSBhdCB0aGUgcG9pbnQgb2YgY29udGFjdC4gKi8KK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRUb29sTWFqb3IoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgpOworCisvKiBHZXQgdGhlIGN1cnJlbnQgbGVuZ3RoIG9mIHRoZSBtaW5vciBheGlzIG9mIGFuIGVsbGlwc2UgdGhhdCBkZXNjcmliZXMgdGhlIHNpemUKKyAqIG9mIHRoZSBhcHByb2FjaGluZyB0b29sIGZvciB0aGUgZ2l2ZW4gcG9pbnRlciBpbmRleC4KKyAqIFRoZSB0b29sIGFyZWEgcmVwcmVzZW50cyB0aGUgZXN0aW1hdGVkIHNpemUgb2YgdGhlIGZpbmdlciBvciBwZW4gdGhhdCBpcworICogdG91Y2hpbmcgdGhlIGRldmljZSBpbmRlcGVuZGVudCBvZiBpdHMgYWN0dWFsIHRvdWNoIGFyZWEgYXQgdGhlIHBvaW50IG9mIGNvbnRhY3QuICovCitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0VG9vbE1pbm9yKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4KTsKKworLyogR2V0IHRoZSBjdXJyZW50IG9yaWVudGF0aW9uIG9mIHRoZSB0b3VjaCBhcmVhIGFuZCB0b29sIGFyZWEgaW4gcmFkaWFucyBjbG9ja3dpc2UgZnJvbQorICogdmVydGljYWwgZm9yIHRoZSBnaXZlbiBwb2ludGVyIGluZGV4LgorICogQW4gYW5nbGUgb2YgMCBkZWdyZWVzIGluZGljYXRlcyB0aGF0IHRoZSBtYWpvciBheGlzIG9mIGNvbnRhY3QgaXMgb3JpZW50ZWQKKyAqIHVwd2FyZHMsIGlzIHBlcmZlY3RseSBjaXJjdWxhciBvciBpcyBvZiB1bmtub3duIG9yaWVudGF0aW9uLiAgQSBwb3NpdGl2ZSBhbmdsZQorICogaW5kaWNhdGVzIHRoYXQgdGhlIG1ham9yIGF4aXMgb2YgY29udGFjdCBpcyBvcmllbnRlZCB0byB0aGUgcmlnaHQuICBBIG5lZ2F0aXZlIGFuZ2xlCisgKiBpbmRpY2F0ZXMgdGhhdCB0aGUgbWFqb3IgYXhpcyBvZiBjb250YWN0IGlzIG9yaWVudGVkIHRvIHRoZSBsZWZ0LgorICogVGhlIGZ1bGwgcmFuZ2UgaXMgZnJvbSAtUEkvMiByYWRpYW5zIChmaW5nZXIgcG9pbnRpbmcgZnVsbHkgbGVmdCkgdG8gUEkvMiByYWRpYW5zCisgKiAoZmluZ2VyIHBvaW50aW5nIGZ1bGx5IHJpZ2h0KS4gKi8KK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRPcmllbnRhdGlvbihjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LCBzaXplX3QgcG9pbnRlcl9pbmRleCk7CisKKy8qIEdldCB0aGUgdmFsdWUgb2YgdGhlIHJlcXVlc3QgYXhpcyBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXguICovCitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0QXhpc1ZhbHVlKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsCisgICAgICAgIGludDMyX3QgYXhpcywgc2l6ZV90IHBvaW50ZXJfaW5kZXgpOworCisvKiBHZXQgdGhlIG51bWJlciBvZiBoaXN0b3JpY2FsIHBvaW50cyBpbiB0aGlzIGV2ZW50LiAgVGhlc2UgYXJlIG1vdmVtZW50cyB0aGF0CisgKiBoYXZlIG9jY3VycmVkIGJldHdlZW4gdGhpcyBldmVudCBhbmQgdGhlIHByZXZpb3VzIGV2ZW50LiAgVGhpcyBvbmx5IGFwcGxpZXMKKyAqIHRvIEFNT1RJT05fRVZFTlRfQUNUSU9OX01PVkUgZXZlbnRzIC0tIGFsbCBvdGhlciBhY3Rpb25zIHdpbGwgaGF2ZSBhIHNpemUgb2YgMC4KKyAqIEhpc3RvcmljYWwgc2FtcGxlcyBhcmUgaW5kZXhlZCBmcm9tIG9sZGVzdCB0byBuZXdlc3QuICovCitzaXplX3QgQU1vdGlvbkV2ZW50X2dldEhpc3RvcnlTaXplKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQpOworCisvKiBHZXQgdGhlIHRpbWUgdGhhdCBhIGhpc3RvcmljYWwgbW92ZW1lbnQgb2NjdXJyZWQgYmV0d2VlbiB0aGlzIGV2ZW50IGFuZAorICogdGhlIHByZXZpb3VzIGV2ZW50LCBpbiB0aGUgamF2YS5sYW5nLlN5c3RlbS5uYW5vVGltZSgpIHRpbWUgYmFzZS4gKi8KK2ludDY0X3QgQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxFdmVudFRpbWUoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwKKyAgICAgICAgc2l6ZV90IGhpc3RvcnlfaW5kZXgpOworCisvKiBHZXQgdGhlIGhpc3RvcmljYWwgcmF3IFggY29vcmRpbmF0ZSBvZiB0aGlzIGV2ZW50IGZvciB0aGUgZ2l2ZW4gcG9pbnRlciBpbmRleCB0aGF0CisgKiBvY2N1cnJlZCBiZXR3ZWVuIHRoaXMgZXZlbnQgYW5kIHRoZSBwcmV2aW91cyBtb3Rpb24gZXZlbnQuCisgKiBGb3IgdG91Y2ggZXZlbnRzIG9uIHRoZSBzY3JlZW4sIHRoaXMgaXMgdGhlIG9yaWdpbmFsIGxvY2F0aW9uIG9mIHRoZSBldmVudAorICogb24gdGhlIHNjcmVlbiwgYmVmb3JlIGl0IGhhZCBiZWVuIGFkanVzdGVkIGZvciB0aGUgY29udGFpbmluZyB3aW5kb3cKKyAqIGFuZCB2aWV3cy4KKyAqIFdob2xlIG51bWJlcnMgYXJlIHBpeGVsczsgdGhlIHZhbHVlIG1heSBoYXZlIGEgZnJhY3Rpb24gZm9yIGlucHV0IGRldmljZXMKKyAqIHRoYXQgYXJlIHN1Yi1waXhlbCBwcmVjaXNlLiAqLworZmxvYXQgQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxSYXdYKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4LAorICAgICAgICBzaXplX3QgaGlzdG9yeV9pbmRleCk7CisKKy8qIEdldCB0aGUgaGlzdG9yaWNhbCByYXcgWSBjb29yZGluYXRlIG9mIHRoaXMgZXZlbnQgZm9yIHRoZSBnaXZlbiBwb2ludGVyIGluZGV4IHRoYXQKKyAqIG9jY3VycmVkIGJldHdlZW4gdGhpcyBldmVudCBhbmQgdGhlIHByZXZpb3VzIG1vdGlvbiBldmVudC4KKyAqIEZvciB0b3VjaCBldmVudHMgb24gdGhlIHNjcmVlbiwgdGhpcyBpcyB0aGUgb3JpZ2luYWwgbG9jYXRpb24gb2YgdGhlIGV2ZW50CisgKiBvbiB0aGUgc2NyZWVuLCBiZWZvcmUgaXQgaGFkIGJlZW4gYWRqdXN0ZWQgZm9yIHRoZSBjb250YWluaW5nIHdpbmRvdworICogYW5kIHZpZXdzLgorICogV2hvbGUgbnVtYmVycyBhcmUgcGl4ZWxzOyB0aGUgdmFsdWUgbWF5IGhhdmUgYSBmcmFjdGlvbiBmb3IgaW5wdXQgZGV2aWNlcworICogdGhhdCBhcmUgc3ViLXBpeGVsIHByZWNpc2UuICovCitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFJhd1koY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgsCisgICAgICAgIHNpemVfdCBoaXN0b3J5X2luZGV4KTsKKworLyogR2V0IHRoZSBoaXN0b3JpY2FsIFggY29vcmRpbmF0ZSBvZiB0aGlzIGV2ZW50IGZvciB0aGUgZ2l2ZW4gcG9pbnRlciBpbmRleCB0aGF0CisgKiBvY2N1cnJlZCBiZXR3ZWVuIHRoaXMgZXZlbnQgYW5kIHRoZSBwcmV2aW91cyBtb3Rpb24gZXZlbnQuCisgKiBXaG9sZSBudW1iZXJzIGFyZSBwaXhlbHM7IHRoZSB2YWx1ZSBtYXkgaGF2ZSBhIGZyYWN0aW9uIGZvciBpbnB1dCBkZXZpY2VzCisgKiB0aGF0IGFyZSBzdWItcGl4ZWwgcHJlY2lzZS4gKi8KK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsWChjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LCBzaXplX3QgcG9pbnRlcl9pbmRleCwKKyAgICAgICAgc2l6ZV90IGhpc3RvcnlfaW5kZXgpOworCisvKiBHZXQgdGhlIGhpc3RvcmljYWwgWSBjb29yZGluYXRlIG9mIHRoaXMgZXZlbnQgZm9yIHRoZSBnaXZlbiBwb2ludGVyIGluZGV4IHRoYXQKKyAqIG9jY3VycmVkIGJldHdlZW4gdGhpcyBldmVudCBhbmQgdGhlIHByZXZpb3VzIG1vdGlvbiBldmVudC4KKyAqIFdob2xlIG51bWJlcnMgYXJlIHBpeGVsczsgdGhlIHZhbHVlIG1heSBoYXZlIGEgZnJhY3Rpb24gZm9yIGlucHV0IGRldmljZXMKKyAqIHRoYXQgYXJlIHN1Yi1waXhlbCBwcmVjaXNlLiAqLworZmxvYXQgQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxZKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4LAorICAgICAgICBzaXplX3QgaGlzdG9yeV9pbmRleCk7CisKKy8qIEdldCB0aGUgaGlzdG9yaWNhbCBwcmVzc3VyZSBvZiB0aGlzIGV2ZW50IGZvciB0aGUgZ2l2ZW4gcG9pbnRlciBpbmRleCB0aGF0CisgKiBvY2N1cnJlZCBiZXR3ZWVuIHRoaXMgZXZlbnQgYW5kIHRoZSBwcmV2aW91cyBtb3Rpb24gZXZlbnQuCisgKiBUaGUgcHJlc3N1cmUgZ2VuZXJhbGx5IHJhbmdlcyBmcm9tIDAgKG5vIHByZXNzdXJlIGF0IGFsbCkgdG8gMSAobm9ybWFsIHByZXNzdXJlKSwKKyAqIGFsdGhvdWdoIHZhbHVlcyBoaWdoZXIgdGhhbiAxIG1heSBiZSBnZW5lcmF0ZWQgZGVwZW5kaW5nIG9uIHRoZSBjYWxpYnJhdGlvbiBvZgorICogdGhlIGlucHV0IGRldmljZS4gKi8KK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsUHJlc3N1cmUoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgsCisgICAgICAgIHNpemVfdCBoaXN0b3J5X2luZGV4KTsKKworLyogR2V0IHRoZSBjdXJyZW50IHNjYWxlZCB2YWx1ZSBvZiB0aGUgYXBwcm94aW1hdGUgc2l6ZSBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXggdGhhdAorICogb2NjdXJyZWQgYmV0d2VlbiB0aGlzIGV2ZW50IGFuZCB0aGUgcHJldmlvdXMgbW90aW9uIGV2ZW50LgorICogVGhpcyByZXByZXNlbnRzIHNvbWUgYXBwcm94aW1hdGlvbiBvZiB0aGUgYXJlYSBvZiB0aGUgc2NyZWVuIGJlaW5nCisgKiBwcmVzc2VkOyB0aGUgYWN0dWFsIHZhbHVlIGluIHBpeGVscyBjb3JyZXNwb25kaW5nIHRvIHRoZQorICogdG91Y2ggaXMgbm9ybWFsaXplZCB3aXRoIHRoZSBkZXZpY2Ugc3BlY2lmaWMgcmFuZ2Ugb2YgdmFsdWVzCisgKiBhbmQgc2NhbGVkIHRvIGEgdmFsdWUgYmV0d2VlbiAwIGFuZCAxLiAgVGhlIHZhbHVlIG9mIHNpemUgY2FuIGJlIHVzZWQgdG8KKyAqIGRldGVybWluZSBmYXQgdG91Y2ggZXZlbnRzLiAqLworZmxvYXQgQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxTaXplKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4LAorICAgICAgICBzaXplX3QgaGlzdG9yeV9pbmRleCk7CisKKy8qIEdldCB0aGUgaGlzdG9yaWNhbCBsZW5ndGggb2YgdGhlIG1ham9yIGF4aXMgb2YgYW4gZWxsaXBzZSB0aGF0IGRlc2NyaWJlcyB0aGUgdG91Y2ggYXJlYQorICogYXQgdGhlIHBvaW50IG9mIGNvbnRhY3QgZm9yIHRoZSBnaXZlbiBwb2ludGVyIGluZGV4IHRoYXQKKyAqIG9jY3VycmVkIGJldHdlZW4gdGhpcyBldmVudCBhbmQgdGhlIHByZXZpb3VzIG1vdGlvbiBldmVudC4gKi8KK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsVG91Y2hNYWpvcihjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LCBzaXplX3QgcG9pbnRlcl9pbmRleCwKKyAgICAgICAgc2l6ZV90IGhpc3RvcnlfaW5kZXgpOworCisvKiBHZXQgdGhlIGhpc3RvcmljYWwgbGVuZ3RoIG9mIHRoZSBtaW5vciBheGlzIG9mIGFuIGVsbGlwc2UgdGhhdCBkZXNjcmliZXMgdGhlIHRvdWNoIGFyZWEKKyAqIGF0IHRoZSBwb2ludCBvZiBjb250YWN0IGZvciB0aGUgZ2l2ZW4gcG9pbnRlciBpbmRleCB0aGF0CisgKiBvY2N1cnJlZCBiZXR3ZWVuIHRoaXMgZXZlbnQgYW5kIHRoZSBwcmV2aW91cyBtb3Rpb24gZXZlbnQuICovCitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFRvdWNoTWlub3IoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgsCisgICAgICAgIHNpemVfdCBoaXN0b3J5X2luZGV4KTsKKworLyogR2V0IHRoZSBoaXN0b3JpY2FsIGxlbmd0aCBvZiB0aGUgbWFqb3IgYXhpcyBvZiBhbiBlbGxpcHNlIHRoYXQgZGVzY3JpYmVzIHRoZSBzaXplCisgKiBvZiB0aGUgYXBwcm9hY2hpbmcgdG9vbCBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXggdGhhdAorICogb2NjdXJyZWQgYmV0d2VlbiB0aGlzIGV2ZW50IGFuZCB0aGUgcHJldmlvdXMgbW90aW9uIGV2ZW50LgorICogVGhlIHRvb2wgYXJlYSByZXByZXNlbnRzIHRoZSBlc3RpbWF0ZWQgc2l6ZSBvZiB0aGUgZmluZ2VyIG9yIHBlbiB0aGF0IGlzCisgKiB0b3VjaGluZyB0aGUgZGV2aWNlIGluZGVwZW5kZW50IG9mIGl0cyBhY3R1YWwgdG91Y2ggYXJlYSBhdCB0aGUgcG9pbnQgb2YgY29udGFjdC4gKi8KK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsVG9vbE1ham9yKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4LAorICAgICAgICBzaXplX3QgaGlzdG9yeV9pbmRleCk7CisKKy8qIEdldCB0aGUgaGlzdG9yaWNhbCBsZW5ndGggb2YgdGhlIG1pbm9yIGF4aXMgb2YgYW4gZWxsaXBzZSB0aGF0IGRlc2NyaWJlcyB0aGUgc2l6ZQorICogb2YgdGhlIGFwcHJvYWNoaW5nIHRvb2wgZm9yIHRoZSBnaXZlbiBwb2ludGVyIGluZGV4IHRoYXQKKyAqIG9jY3VycmVkIGJldHdlZW4gdGhpcyBldmVudCBhbmQgdGhlIHByZXZpb3VzIG1vdGlvbiBldmVudC4KKyAqIFRoZSB0b29sIGFyZWEgcmVwcmVzZW50cyB0aGUgZXN0aW1hdGVkIHNpemUgb2YgdGhlIGZpbmdlciBvciBwZW4gdGhhdCBpcworICogdG91Y2hpbmcgdGhlIGRldmljZSBpbmRlcGVuZGVudCBvZiBpdHMgYWN0dWFsIHRvdWNoIGFyZWEgYXQgdGhlIHBvaW50IG9mIGNvbnRhY3QuICovCitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFRvb2xNaW5vcihjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LCBzaXplX3QgcG9pbnRlcl9pbmRleCwKKyAgICAgICAgc2l6ZV90IGhpc3RvcnlfaW5kZXgpOworCisvKiBHZXQgdGhlIGhpc3RvcmljYWwgb3JpZW50YXRpb24gb2YgdGhlIHRvdWNoIGFyZWEgYW5kIHRvb2wgYXJlYSBpbiByYWRpYW5zIGNsb2Nrd2lzZSBmcm9tCisgKiB2ZXJ0aWNhbCBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXggdGhhdAorICogb2NjdXJyZWQgYmV0d2VlbiB0aGlzIGV2ZW50IGFuZCB0aGUgcHJldmlvdXMgbW90aW9uIGV2ZW50LgorICogQW4gYW5nbGUgb2YgMCBkZWdyZWVzIGluZGljYXRlcyB0aGF0IHRoZSBtYWpvciBheGlzIG9mIGNvbnRhY3QgaXMgb3JpZW50ZWQKKyAqIHVwd2FyZHMsIGlzIHBlcmZlY3RseSBjaXJjdWxhciBvciBpcyBvZiB1bmtub3duIG9yaWVudGF0aW9uLiAgQSBwb3NpdGl2ZSBhbmdsZQorICogaW5kaWNhdGVzIHRoYXQgdGhlIG1ham9yIGF4aXMgb2YgY29udGFjdCBpcyBvcmllbnRlZCB0byB0aGUgcmlnaHQuICBBIG5lZ2F0aXZlIGFuZ2xlCisgKiBpbmRpY2F0ZXMgdGhhdCB0aGUgbWFqb3IgYXhpcyBvZiBjb250YWN0IGlzIG9yaWVudGVkIHRvIHRoZSBsZWZ0LgorICogVGhlIGZ1bGwgcmFuZ2UgaXMgZnJvbSAtUEkvMiByYWRpYW5zIChmaW5nZXIgcG9pbnRpbmcgZnVsbHkgbGVmdCkgdG8gUEkvMiByYWRpYW5zCisgKiAoZmluZ2VyIHBvaW50aW5nIGZ1bGx5IHJpZ2h0KS4gKi8KK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsT3JpZW50YXRpb24oY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgsCisgICAgICAgIHNpemVfdCBoaXN0b3J5X2luZGV4KTsKKworLyogR2V0IHRoZSBoaXN0b3JpY2FsIHZhbHVlIG9mIHRoZSByZXF1ZXN0IGF4aXMgZm9yIHRoZSBnaXZlbiBwb2ludGVyIGluZGV4CisgKiB0aGF0IG9jY3VycmVkIGJldHdlZW4gdGhpcyBldmVudCBhbmQgdGhlIHByZXZpb3VzIG1vdGlvbiBldmVudC4gKi8KK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsQXhpc1ZhbHVlKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsCisgICAgICAgIGludDMyX3QgYXhpcywgc2l6ZV90IHBvaW50ZXJfaW5kZXgsIHNpemVfdCBoaXN0b3J5X2luZGV4KTsKKworCisvKgorICogSW5wdXQgcXVldWUKKyAqCisgKiBBbiBpbnB1dCBxdWV1ZSBpcyB0aGUgZmFjaWxpdHkgdGhyb3VnaCB3aGljaCB5b3UgcmV0cmlldmUgaW5wdXQKKyAqIGV2ZW50cy4KKyAqLworc3RydWN0IEFJbnB1dFF1ZXVlOwordHlwZWRlZiBzdHJ1Y3QgQUlucHV0UXVldWUgQUlucHV0UXVldWU7CisKKy8qCisgKiBBZGQgdGhpcyBpbnB1dCBxdWV1ZSB0byBhIGxvb3BlciBmb3IgcHJvY2Vzc2luZy4gIFNlZQorICogQUxvb3Blcl9hZGRGZCgpIGZvciBpbmZvcm1hdGlvbiBvbiB0aGUgaWRlbnQsIGNhbGxiYWNrLCBhbmQgZGF0YSBwYXJhbXMuCisgKi8KK3ZvaWQgQUlucHV0UXVldWVfYXR0YWNoTG9vcGVyKEFJbnB1dFF1ZXVlKiBxdWV1ZSwgQUxvb3BlciogbG9vcGVyLAorICAgICAgICBpbnQgaWRlbnQsIEFMb29wZXJfY2FsbGJhY2tGdW5jIGNhbGxiYWNrLCB2b2lkKiBkYXRhKTsKKworLyoKKyAqIFJlbW92ZSB0aGUgaW5wdXQgcXVldWUgZnJvbSB0aGUgbG9vcGVyIGl0IGlzIGN1cnJlbnRseSBhdHRhY2hlZCB0by4KKyAqLwordm9pZCBBSW5wdXRRdWV1ZV9kZXRhY2hMb29wZXIoQUlucHV0UXVldWUqIHF1ZXVlKTsKKworLyoKKyAqIFJldHVybnMgdHJ1ZSBpZiB0aGVyZSBhcmUgb25lIG9yIG1vcmUgZXZlbnRzIGF2YWlsYWJsZSBpbiB0aGUKKyAqIGlucHV0IHF1ZXVlLiAgUmV0dXJucyAxIGlmIHRoZSBxdWV1ZSBoYXMgZXZlbnRzOyAwIGlmCisgKiBpdCBkb2VzIG5vdCBoYXZlIGV2ZW50czsgYW5kIGEgbmVnYXRpdmUgdmFsdWUgaWYgdGhlcmUgaXMgYW4gZXJyb3IuCisgKi8KK2ludDMyX3QgQUlucHV0UXVldWVfaGFzRXZlbnRzKEFJbnB1dFF1ZXVlKiBxdWV1ZSk7CisKKy8qCisgKiBSZXR1cm5zIHRoZSBuZXh0IGF2YWlsYWJsZSBldmVudCBmcm9tIHRoZSBxdWV1ZS4gIFJldHVybnMgYSBuZWdhdGl2ZQorICogdmFsdWUgaWYgbm8gZXZlbnRzIGFyZSBhdmFpbGFibGUgb3IgYW4gZXJyb3IgaGFzIG9jY3VycmVkLgorICovCitpbnQzMl90IEFJbnB1dFF1ZXVlX2dldEV2ZW50KEFJbnB1dFF1ZXVlKiBxdWV1ZSwgQUlucHV0RXZlbnQqKiBvdXRFdmVudCk7CisKKy8qCisgKiBTZW5kcyB0aGUga2V5IGZvciBzdGFuZGFyZCBwcmUtZGlzcGF0Y2hpbmcgLS0gdGhhdCBpcywgcG9zc2libHkgZGVsaXZlcgorICogaXQgdG8gdGhlIGN1cnJlbnQgSU1FIHRvIGJlIGNvbnN1bWVkIGJlZm9yZSB0aGUgYXBwLiAgUmV0dXJucyAwIGlmIGl0CisgKiB3YXMgbm90IHByZS1kaXNwYXRjaGVkLCBtZWFuaW5nIHlvdSBjYW4gcHJvY2VzcyBpdCByaWdodCBub3cuICBJZiBub24temVybworICogaXMgcmV0dXJuZWQsIHlvdSBtdXN0IGFiYW5kb24gdGhlIGN1cnJlbnQgZXZlbnQgcHJvY2Vzc2luZyBhbmQgYWxsb3cgdGhlCisgKiBldmVudCB0byBhcHBlYXIgYWdhaW4gaW4gdGhlIGV2ZW50IHF1ZXVlIChpZiBpdCBkb2VzIG5vdCBnZXQgY29uc3VtZWQgZHVyaW5nCisgKiBwcmUtZGlzcGF0Y2hpbmcpLgorICovCitpbnQzMl90IEFJbnB1dFF1ZXVlX3ByZURpc3BhdGNoRXZlbnQoQUlucHV0UXVldWUqIHF1ZXVlLCBBSW5wdXRFdmVudCogZXZlbnQpOworCisvKgorICogUmVwb3J0IHRoYXQgZGlzcGF0Y2hpbmcgaGFzIGZpbmlzaGVkIHdpdGggdGhlIGdpdmVuIGV2ZW50LgorICogVGhpcyBtdXN0IGJlIGNhbGxlZCBhZnRlciByZWNlaXZpbmcgYW4gZXZlbnQgd2l0aCBBSW5wdXRRdWV1ZV9nZXRfZXZlbnQoKS4KKyAqLwordm9pZCBBSW5wdXRRdWV1ZV9maW5pc2hFdmVudChBSW5wdXRRdWV1ZSogcXVldWUsIEFJbnB1dEV2ZW50KiBldmVudCwgaW50IGhhbmRsZWQpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gX0FORFJPSURfSU5QVVRfSApkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L2luY2x1ZGUvYW5kcm9pZC9rZXljb2Rlcy5oIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L2luY2x1ZGUvYW5kcm9pZC9rZXljb2Rlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmMzhkMWEKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvaW5jbHVkZS9hbmRyb2lkL2tleWNvZGVzLmgKQEAgLTAsMCArMSwyNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIF9BTkRST0lEX0tFWUNPREVTX0gKKyNkZWZpbmUgX0FORFJPSURfS0VZQ09ERVNfSAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogSU1QT1JUQU5UIE5PVElDRToKKyAqCisgKiAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEFuZHJvaWQncyBzZXQgb2Ygc3RhYmxlIHN5c3RlbSBoZWFkZXJzCisgKiAgIGV4cG9zZWQgYnkgdGhlIEFuZHJvaWQgTkRLIChOYXRpdmUgRGV2ZWxvcG1lbnQgS2l0KS4KKyAqCisgKiAgIFRoaXJkLXBhcnR5IHNvdXJjZSBBTkQgYmluYXJ5IGNvZGUgcmVsaWVzIG9uIHRoZSBkZWZpbml0aW9ucworICogICBoZXJlIHRvIGJlIEZST1pFTiBPTiBBTEwgVVBDT01JTkcgUExBVEZPUk0gUkVMRUFTRVMuCisgKgorICogICAtIERPIE5PVCBNT0RJRlkgRU5VTVMgKEVYQ0VQVCBJRiBZT1UgQUREIE5FVyAzMi1CSVQgVkFMVUVTKQorICogICAtIERPIE5PVCBNT0RJRlkgQ09OU1RBTlRTIE9SIEZVTkNUSU9OQUwgTUFDUk9TCisgKiAgIC0gRE8gTk9UIENIQU5HRSBUSEUgU0lHTkFUVVJFIE9GIEZVTkNUSU9OUyBJTiBBTlkgV0FZCisgKiAgIC0gRE8gTk9UIENIQU5HRSBUSEUgTEFZT1VUIE9SIFNJWkUgT0YgU1RSVUNUVVJFUworICovCisKKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKgorICogS2V5IGNvZGVzLgorICovCitlbnVtIHsKKyAgICBBS0VZQ09ERV9VTktOT1dOICAgICAgICAgPSAwLAorICAgIEFLRVlDT0RFX1NPRlRfTEVGVCAgICAgICA9IDEsCisgICAgQUtFWUNPREVfU09GVF9SSUdIVCAgICAgID0gMiwKKyAgICBBS0VZQ09ERV9IT01FICAgICAgICAgICAgPSAzLAorICAgIEFLRVlDT0RFX0JBQ0sgICAgICAgICAgICA9IDQsCisgICAgQUtFWUNPREVfQ0FMTCAgICAgICAgICAgID0gNSwKKyAgICBBS0VZQ09ERV9FTkRDQUxMICAgICAgICAgPSA2LAorICAgIEFLRVlDT0RFXzAgICAgICAgICAgICAgICA9IDcsCisgICAgQUtFWUNPREVfMSAgICAgICAgICAgICAgID0gOCwKKyAgICBBS0VZQ09ERV8yICAgICAgICAgICAgICAgPSA5LAorICAgIEFLRVlDT0RFXzMgICAgICAgICAgICAgICA9IDEwLAorICAgIEFLRVlDT0RFXzQgICAgICAgICAgICAgICA9IDExLAorICAgIEFLRVlDT0RFXzUgICAgICAgICAgICAgICA9IDEyLAorICAgIEFLRVlDT0RFXzYgICAgICAgICAgICAgICA9IDEzLAorICAgIEFLRVlDT0RFXzcgICAgICAgICAgICAgICA9IDE0LAorICAgIEFLRVlDT0RFXzggICAgICAgICAgICAgICA9IDE1LAorICAgIEFLRVlDT0RFXzkgICAgICAgICAgICAgICA9IDE2LAorICAgIEFLRVlDT0RFX1NUQVIgICAgICAgICAgICA9IDE3LAorICAgIEFLRVlDT0RFX1BPVU5EICAgICAgICAgICA9IDE4LAorICAgIEFLRVlDT0RFX0RQQURfVVAgICAgICAgICA9IDE5LAorICAgIEFLRVlDT0RFX0RQQURfRE9XTiAgICAgICA9IDIwLAorICAgIEFLRVlDT0RFX0RQQURfTEVGVCAgICAgICA9IDIxLAorICAgIEFLRVlDT0RFX0RQQURfUklHSFQgICAgICA9IDIyLAorICAgIEFLRVlDT0RFX0RQQURfQ0VOVEVSICAgICA9IDIzLAorICAgIEFLRVlDT0RFX1ZPTFVNRV9VUCAgICAgICA9IDI0LAorICAgIEFLRVlDT0RFX1ZPTFVNRV9ET1dOICAgICA9IDI1LAorICAgIEFLRVlDT0RFX1BPV0VSICAgICAgICAgICA9IDI2LAorICAgIEFLRVlDT0RFX0NBTUVSQSAgICAgICAgICA9IDI3LAorICAgIEFLRVlDT0RFX0NMRUFSICAgICAgICAgICA9IDI4LAorICAgIEFLRVlDT0RFX0EgICAgICAgICAgICAgICA9IDI5LAorICAgIEFLRVlDT0RFX0IgICAgICAgICAgICAgICA9IDMwLAorICAgIEFLRVlDT0RFX0MgICAgICAgICAgICAgICA9IDMxLAorICAgIEFLRVlDT0RFX0QgICAgICAgICAgICAgICA9IDMyLAorICAgIEFLRVlDT0RFX0UgICAgICAgICAgICAgICA9IDMzLAorICAgIEFLRVlDT0RFX0YgICAgICAgICAgICAgICA9IDM0LAorICAgIEFLRVlDT0RFX0cgICAgICAgICAgICAgICA9IDM1LAorICAgIEFLRVlDT0RFX0ggICAgICAgICAgICAgICA9IDM2LAorICAgIEFLRVlDT0RFX0kgICAgICAgICAgICAgICA9IDM3LAorICAgIEFLRVlDT0RFX0ogICAgICAgICAgICAgICA9IDM4LAorICAgIEFLRVlDT0RFX0sgICAgICAgICAgICAgICA9IDM5LAorICAgIEFLRVlDT0RFX0wgICAgICAgICAgICAgICA9IDQwLAorICAgIEFLRVlDT0RFX00gICAgICAgICAgICAgICA9IDQxLAorICAgIEFLRVlDT0RFX04gICAgICAgICAgICAgICA9IDQyLAorICAgIEFLRVlDT0RFX08gICAgICAgICAgICAgICA9IDQzLAorICAgIEFLRVlDT0RFX1AgICAgICAgICAgICAgICA9IDQ0LAorICAgIEFLRVlDT0RFX1EgICAgICAgICAgICAgICA9IDQ1LAorICAgIEFLRVlDT0RFX1IgICAgICAgICAgICAgICA9IDQ2LAorICAgIEFLRVlDT0RFX1MgICAgICAgICAgICAgICA9IDQ3LAorICAgIEFLRVlDT0RFX1QgICAgICAgICAgICAgICA9IDQ4LAorICAgIEFLRVlDT0RFX1UgICAgICAgICAgICAgICA9IDQ5LAorICAgIEFLRVlDT0RFX1YgICAgICAgICAgICAgICA9IDUwLAorICAgIEFLRVlDT0RFX1cgICAgICAgICAgICAgICA9IDUxLAorICAgIEFLRVlDT0RFX1ggICAgICAgICAgICAgICA9IDUyLAorICAgIEFLRVlDT0RFX1kgICAgICAgICAgICAgICA9IDUzLAorICAgIEFLRVlDT0RFX1ogICAgICAgICAgICAgICA9IDU0LAorICAgIEFLRVlDT0RFX0NPTU1BICAgICAgICAgICA9IDU1LAorICAgIEFLRVlDT0RFX1BFUklPRCAgICAgICAgICA9IDU2LAorICAgIEFLRVlDT0RFX0FMVF9MRUZUICAgICAgICA9IDU3LAorICAgIEFLRVlDT0RFX0FMVF9SSUdIVCAgICAgICA9IDU4LAorICAgIEFLRVlDT0RFX1NISUZUX0xFRlQgICAgICA9IDU5LAorICAgIEFLRVlDT0RFX1NISUZUX1JJR0hUICAgICA9IDYwLAorICAgIEFLRVlDT0RFX1RBQiAgICAgICAgICAgICA9IDYxLAorICAgIEFLRVlDT0RFX1NQQUNFICAgICAgICAgICA9IDYyLAorICAgIEFLRVlDT0RFX1NZTSAgICAgICAgICAgICA9IDYzLAorICAgIEFLRVlDT0RFX0VYUExPUkVSICAgICAgICA9IDY0LAorICAgIEFLRVlDT0RFX0VOVkVMT1BFICAgICAgICA9IDY1LAorICAgIEFLRVlDT0RFX0VOVEVSICAgICAgICAgICA9IDY2LAorICAgIEFLRVlDT0RFX0RFTCAgICAgICAgICAgICA9IDY3LAorICAgIEFLRVlDT0RFX0dSQVZFICAgICAgICAgICA9IDY4LAorICAgIEFLRVlDT0RFX01JTlVTICAgICAgICAgICA9IDY5LAorICAgIEFLRVlDT0RFX0VRVUFMUyAgICAgICAgICA9IDcwLAorICAgIEFLRVlDT0RFX0xFRlRfQlJBQ0tFVCAgICA9IDcxLAorICAgIEFLRVlDT0RFX1JJR0hUX0JSQUNLRVQgICA9IDcyLAorICAgIEFLRVlDT0RFX0JBQ0tTTEFTSCAgICAgICA9IDczLAorICAgIEFLRVlDT0RFX1NFTUlDT0xPTiAgICAgICA9IDc0LAorICAgIEFLRVlDT0RFX0FQT1NUUk9QSEUgICAgICA9IDc1LAorICAgIEFLRVlDT0RFX1NMQVNIICAgICAgICAgICA9IDc2LAorICAgIEFLRVlDT0RFX0FUICAgICAgICAgICAgICA9IDc3LAorICAgIEFLRVlDT0RFX05VTSAgICAgICAgICAgICA9IDc4LAorICAgIEFLRVlDT0RFX0hFQURTRVRIT09LICAgICA9IDc5LAorICAgIEFLRVlDT0RFX0ZPQ1VTICAgICAgICAgICA9IDgwLCAgIC8vICpDYW1lcmEqIGZvY3VzCisgICAgQUtFWUNPREVfUExVUyAgICAgICAgICAgID0gODEsCisgICAgQUtFWUNPREVfTUVOVSAgICAgICAgICAgID0gODIsCisgICAgQUtFWUNPREVfTk9USUZJQ0FUSU9OICAgID0gODMsCisgICAgQUtFWUNPREVfU0VBUkNIICAgICAgICAgID0gODQsCisgICAgQUtFWUNPREVfTUVESUFfUExBWV9QQVVTRT0gODUsCisgICAgQUtFWUNPREVfTUVESUFfU1RPUCAgICAgID0gODYsCisgICAgQUtFWUNPREVfTUVESUFfTkVYVCAgICAgID0gODcsCisgICAgQUtFWUNPREVfTUVESUFfUFJFVklPVVMgID0gODgsCisgICAgQUtFWUNPREVfTUVESUFfUkVXSU5EICAgID0gODksCisgICAgQUtFWUNPREVfTUVESUFfRkFTVF9GT1JXQVJEID0gOTAsCisgICAgQUtFWUNPREVfTVVURSAgICAgICAgICAgID0gOTEsCisgICAgQUtFWUNPREVfUEFHRV9VUCAgICAgICAgID0gOTIsCisgICAgQUtFWUNPREVfUEFHRV9ET1dOICAgICAgID0gOTMsCisgICAgQUtFWUNPREVfUElDVFNZTUJPTFMgICAgID0gOTQsCisgICAgQUtFWUNPREVfU1dJVENIX0NIQVJTRVQgID0gOTUsCisgICAgQUtFWUNPREVfQlVUVE9OX0EgICAgICAgID0gOTYsCisgICAgQUtFWUNPREVfQlVUVE9OX0IgICAgICAgID0gOTcsCisgICAgQUtFWUNPREVfQlVUVE9OX0MgICAgICAgID0gOTgsCisgICAgQUtFWUNPREVfQlVUVE9OX1ggICAgICAgID0gOTksCisgICAgQUtFWUNPREVfQlVUVE9OX1kgICAgICAgID0gMTAwLAorICAgIEFLRVlDT0RFX0JVVFRPTl9aICAgICAgICA9IDEwMSwKKyAgICBBS0VZQ09ERV9CVVRUT05fTDEgICAgICAgPSAxMDIsCisgICAgQUtFWUNPREVfQlVUVE9OX1IxICAgICAgID0gMTAzLAorICAgIEFLRVlDT0RFX0JVVFRPTl9MMiAgICAgICA9IDEwNCwKKyAgICBBS0VZQ09ERV9CVVRUT05fUjIgICAgICAgPSAxMDUsCisgICAgQUtFWUNPREVfQlVUVE9OX1RIVU1CTCAgID0gMTA2LAorICAgIEFLRVlDT0RFX0JVVFRPTl9USFVNQlIgICA9IDEwNywKKyAgICBBS0VZQ09ERV9CVVRUT05fU1RBUlQgICAgPSAxMDgsCisgICAgQUtFWUNPREVfQlVUVE9OX1NFTEVDVCAgID0gMTA5LAorICAgIEFLRVlDT0RFX0JVVFRPTl9NT0RFICAgICA9IDExMCwKKyAgICBBS0VZQ09ERV9FU0NBUEUgICAgICAgICAgPSAxMTEsCisgICAgQUtFWUNPREVfRk9SV0FSRF9ERUwgICAgID0gMTEyLAorICAgIEFLRVlDT0RFX0NUUkxfTEVGVCAgICAgICA9IDExMywKKyAgICBBS0VZQ09ERV9DVFJMX1JJR0hUICAgICAgPSAxMTQsCisgICAgQUtFWUNPREVfQ0FQU19MT0NLICAgICAgID0gMTE1LAorICAgIEFLRVlDT0RFX1NDUk9MTF9MT0NLICAgICA9IDExNiwKKyAgICBBS0VZQ09ERV9NRVRBX0xFRlQgICAgICAgPSAxMTcsCisgICAgQUtFWUNPREVfTUVUQV9SSUdIVCAgICAgID0gMTE4LAorICAgIEFLRVlDT0RFX0ZVTkNUSU9OICAgICAgICA9IDExOSwKKyAgICBBS0VZQ09ERV9TWVNSUSAgICAgICAgICAgPSAxMjAsCisgICAgQUtFWUNPREVfQlJFQUsgICAgICAgICAgID0gMTIxLAorICAgIEFLRVlDT0RFX01PVkVfSE9NRSAgICAgICA9IDEyMiwKKyAgICBBS0VZQ09ERV9NT1ZFX0VORCAgICAgICAgPSAxMjMsCisgICAgQUtFWUNPREVfSU5TRVJUICAgICAgICAgID0gMTI0LAorICAgIEFLRVlDT0RFX0ZPUldBUkQgICAgICAgICA9IDEyNSwKKyAgICBBS0VZQ09ERV9NRURJQV9QTEFZICAgICAgPSAxMjYsCisgICAgQUtFWUNPREVfTUVESUFfUEFVU0UgICAgID0gMTI3LAorICAgIEFLRVlDT0RFX01FRElBX0NMT1NFICAgICA9IDEyOCwKKyAgICBBS0VZQ09ERV9NRURJQV9FSkVDVCAgICAgPSAxMjksCisgICAgQUtFWUNPREVfTUVESUFfUkVDT1JEICAgID0gMTMwLAorICAgIEFLRVlDT0RFX0YxICAgICAgICAgICAgICA9IDEzMSwKKyAgICBBS0VZQ09ERV9GMiAgICAgICAgICAgICAgPSAxMzIsCisgICAgQUtFWUNPREVfRjMgICAgICAgICAgICAgID0gMTMzLAorICAgIEFLRVlDT0RFX0Y0ICAgICAgICAgICAgICA9IDEzNCwKKyAgICBBS0VZQ09ERV9GNSAgICAgICAgICAgICAgPSAxMzUsCisgICAgQUtFWUNPREVfRjYgICAgICAgICAgICAgID0gMTM2LAorICAgIEFLRVlDT0RFX0Y3ICAgICAgICAgICAgICA9IDEzNywKKyAgICBBS0VZQ09ERV9GOCAgICAgICAgICAgICAgPSAxMzgsCisgICAgQUtFWUNPREVfRjkgICAgICAgICAgICAgID0gMTM5LAorICAgIEFLRVlDT0RFX0YxMCAgICAgICAgICAgICA9IDE0MCwKKyAgICBBS0VZQ09ERV9GMTEgICAgICAgICAgICAgPSAxNDEsCisgICAgQUtFWUNPREVfRjEyICAgICAgICAgICAgID0gMTQyLAorICAgIEFLRVlDT0RFX05VTV9MT0NLICAgICAgICA9IDE0MywKKyAgICBBS0VZQ09ERV9OVU1QQURfMCAgICAgICAgPSAxNDQsCisgICAgQUtFWUNPREVfTlVNUEFEXzEgICAgICAgID0gMTQ1LAorICAgIEFLRVlDT0RFX05VTVBBRF8yICAgICAgICA9IDE0NiwKKyAgICBBS0VZQ09ERV9OVU1QQURfMyAgICAgICAgPSAxNDcsCisgICAgQUtFWUNPREVfTlVNUEFEXzQgICAgICAgID0gMTQ4LAorICAgIEFLRVlDT0RFX05VTVBBRF81ICAgICAgICA9IDE0OSwKKyAgICBBS0VZQ09ERV9OVU1QQURfNiAgICAgICAgPSAxNTAsCisgICAgQUtFWUNPREVfTlVNUEFEXzcgICAgICAgID0gMTUxLAorICAgIEFLRVlDT0RFX05VTVBBRF84ICAgICAgICA9IDE1MiwKKyAgICBBS0VZQ09ERV9OVU1QQURfOSAgICAgICAgPSAxNTMsCisgICAgQUtFWUNPREVfTlVNUEFEX0RJVklERSAgID0gMTU0LAorICAgIEFLRVlDT0RFX05VTVBBRF9NVUxUSVBMWSA9IDE1NSwKKyAgICBBS0VZQ09ERV9OVU1QQURfU1VCVFJBQ1QgPSAxNTYsCisgICAgQUtFWUNPREVfTlVNUEFEX0FERCAgICAgID0gMTU3LAorICAgIEFLRVlDT0RFX05VTVBBRF9ET1QgICAgICA9IDE1OCwKKyAgICBBS0VZQ09ERV9OVU1QQURfQ09NTUEgICAgPSAxNTksCisgICAgQUtFWUNPREVfTlVNUEFEX0VOVEVSICAgID0gMTYwLAorICAgIEFLRVlDT0RFX05VTVBBRF9FUVVBTFMgICA9IDE2MSwKKyAgICBBS0VZQ09ERV9OVU1QQURfTEVGVF9QQVJFTiA9IDE2MiwKKyAgICBBS0VZQ09ERV9OVU1QQURfUklHSFRfUEFSRU4gPSAxNjMsCisgICAgQUtFWUNPREVfVk9MVU1FX01VVEUgICAgID0gMTY0LAorICAgIEFLRVlDT0RFX0lORk8gICAgICAgICAgICA9IDE2NSwKKyAgICBBS0VZQ09ERV9DSEFOTkVMX1VQICAgICAgPSAxNjYsCisgICAgQUtFWUNPREVfQ0hBTk5FTF9ET1dOICAgID0gMTY3LAorICAgIEFLRVlDT0RFX1pPT01fSU4gICAgICAgICA9IDE2OCwKKyAgICBBS0VZQ09ERV9aT09NX09VVCAgICAgICAgPSAxNjksCisgICAgQUtFWUNPREVfVFYgICAgICAgICAgICAgID0gMTcwLAorICAgIEFLRVlDT0RFX1dJTkRPVyAgICAgICAgICA9IDE3MSwKKyAgICBBS0VZQ09ERV9HVUlERSAgICAgICAgICAgPSAxNzIsCisgICAgQUtFWUNPREVfRFZSICAgICAgICAgICAgID0gMTczLAorICAgIEFLRVlDT0RFX0JPT0tNQVJLICAgICAgICA9IDE3NCwKKyAgICBBS0VZQ09ERV9DQVBUSU9OUyAgICAgICAgPSAxNzUsCisgICAgQUtFWUNPREVfU0VUVElOR1MgICAgICAgID0gMTc2LAorICAgIEFLRVlDT0RFX1RWX1BPV0VSICAgICAgICA9IDE3NywKKyAgICBBS0VZQ09ERV9UVl9JTlBVVCAgICAgICAgPSAxNzgsCisgICAgQUtFWUNPREVfU1RCX1BPV0VSICAgICAgID0gMTc5LAorICAgIEFLRVlDT0RFX1NUQl9JTlBVVCAgICAgICA9IDE4MCwKKyAgICBBS0VZQ09ERV9BVlJfUE9XRVIgICAgICAgPSAxODEsCisgICAgQUtFWUNPREVfQVZSX0lOUFVUICAgICAgID0gMTgyLAorICAgIEFLRVlDT0RFX1BST0dfUkVEICAgICAgICA9IDE4MywKKyAgICBBS0VZQ09ERV9QUk9HX0dSRUVOICAgICAgPSAxODQsCisgICAgQUtFWUNPREVfUFJPR19ZRUxMT1cgICAgID0gMTg1LAorICAgIEFLRVlDT0RFX1BST0dfQkxVRSAgICAgICA9IDE4NiwKKyAgICBBS0VZQ09ERV9BUFBfU1dJVENIICAgICAgPSAxODcsCisgICAgQUtFWUNPREVfQlVUVE9OXzEgICAgICAgID0gMTg4LAorICAgIEFLRVlDT0RFX0JVVFRPTl8yICAgICAgICA9IDE4OSwKKyAgICBBS0VZQ09ERV9CVVRUT05fMyAgICAgICAgPSAxOTAsCisgICAgQUtFWUNPREVfQlVUVE9OXzQgICAgICAgID0gMTkxLAorICAgIEFLRVlDT0RFX0JVVFRPTl81ICAgICAgICA9IDE5MiwKKyAgICBBS0VZQ09ERV9CVVRUT05fNiAgICAgICAgPSAxOTMsCisgICAgQUtFWUNPREVfQlVUVE9OXzcgICAgICAgID0gMTk0LAorICAgIEFLRVlDT0RFX0JVVFRPTl84ICAgICAgICA9IDE5NSwKKyAgICBBS0VZQ09ERV9CVVRUT05fOSAgICAgICAgPSAxOTYsCisgICAgQUtFWUNPREVfQlVUVE9OXzEwICAgICAgID0gMTk3LAorICAgIEFLRVlDT0RFX0JVVFRPTl8xMSAgICAgICA9IDE5OCwKKyAgICBBS0VZQ09ERV9CVVRUT05fMTIgICAgICAgPSAxOTksCisgICAgQUtFWUNPREVfQlVUVE9OXzEzICAgICAgID0gMjAwLAorICAgIEFLRVlDT0RFX0JVVFRPTl8xNCAgICAgICA9IDIwMSwKKyAgICBBS0VZQ09ERV9CVVRUT05fMTUgICAgICAgPSAyMDIsCisgICAgQUtFWUNPREVfQlVUVE9OXzE2ICAgICAgID0gMjAzLAorICAgIEFLRVlDT0RFX0xBTkdVQUdFX1NXSVRDSCA9IDIwNCwKKyAgICBBS0VZQ09ERV9NQU5ORVJfTU9ERSAgICAgPSAyMDUsCisgICAgQUtFWUNPREVfM0RfTU9ERSAgICAgICAgID0gMjA2LAorICAgIEFLRVlDT0RFX0NPTlRBQ1RTICAgICAgICA9IDIwNywKKyAgICBBS0VZQ09ERV9DQUxFTkRBUiAgICAgICAgPSAyMDgsCisgICAgQUtFWUNPREVfTVVTSUMgICAgICAgICAgID0gMjA5LAorICAgIEFLRVlDT0RFX0NBTENVTEFUT1IgICAgICA9IDIxMCwKKyAgICBBS0VZQ09ERV9aRU5LQUtVX0hBTktBS1UgPSAyMTEsCisgICAgQUtFWUNPREVfRUlTVSAgICAgICAgICAgID0gMjEyLAorICAgIEFLRVlDT0RFX01VSEVOS0FOICAgICAgICA9IDIxMywKKyAgICBBS0VZQ09ERV9IRU5LQU4gICAgICAgICAgPSAyMTQsCisgICAgQUtFWUNPREVfS0FUQUtBTkFfSElSQUdBTkEgPSAyMTUsCisgICAgQUtFWUNPREVfWUVOICAgICAgICAgICAgID0gMjE2LAorICAgIEFLRVlDT0RFX1JPICAgICAgICAgICAgICA9IDIxNywKKyAgICBBS0VZQ09ERV9LQU5BICAgICAgICAgICAgPSAyMTgsCisgICAgQUtFWUNPREVfQVNTSVNUICAgICAgICAgID0gMjE5LAorICAgIEFLRVlDT0RFX0JSSUdIVE5FU1NfRE9XTiA9IDIyMCwKKyAgICBBS0VZQ09ERV9CUklHSFRORVNTX1VQICAgPSAyMjEsCisKKyAgICAvLyBOT1RFOiBJZiB5b3UgYWRkIGEgbmV3IGtleWNvZGUgaGVyZSB5b3UgbXVzdCBhbHNvIGFkZCBpdCB0byBzZXZlcmFsIG90aGVyIGZpbGVzLgorICAgIC8vICAgICAgIFJlZmVyIHRvIGZyYW1ld29ya3MvYmFzZS9jb3JlL2phdmEvYW5kcm9pZC92aWV3L0tleUV2ZW50LmphdmEgZm9yIHRoZSBmdWxsIGxpc3QuCit9OworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gX0FORFJPSURfS0VZQ09ERVNfSApkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L2luY2x1ZGUvbWF0aC5oIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L2luY2x1ZGUvbWF0aC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyNGMwMDEKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvaW5jbHVkZS9tYXRoLmgKQEAgLTAsMCArMSw3MjAgQEAKKy8qCisgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiBDb3B5cmlnaHQgKEMpIDE5OTMgYnkgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIERldmVsb3BlZCBhdCBTdW5Qcm8sIGEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLiBidXNpbmVzcy4KKyAqIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZCBkaXN0cmlidXRlIHRoaXMKKyAqIHNvZnR3YXJlIGlzIGZyZWVseSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoaXMgbm90aWNlCisgKiBpcyBwcmVzZXJ2ZWQuCisgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKi8KKworLyoKKyAqIGZyb206IEAoIylmZGxpYm0uaCA1LjEgOTMvMDkvMjQKKyAqICRGcmVlQlNEOiBzcmMvbGliL21zdW4vc3JjL21hdGguaCx2IDEuNjEgMjAwNS8wNC8xNiAyMToxMjo0NyBkYXMgRXhwICQKKyAqLworCisjaWZuZGVmIF9NQVRIX0hfCisjZGVmaW5lCV9NQVRIX0hfCisKKyNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW1pdHMuaD4KKworI2RlZmluZSBfX3B1cmUyCisKKy8qCisgKiBBTlNJL1BPU0lYCisgKi8KK2V4dGVybiBjb25zdCB1bmlvbiBfX2luZmluaXR5X3VuIHsKKwl1bnNpZ25lZCBjaGFyCV9fdWNbOF07CisJZG91YmxlCQlfX3VkOworfSBfX2luZmluaXR5OworCitleHRlcm4gY29uc3QgdW5pb24gX19uYW5fdW4geworCXVuc2lnbmVkIGNoYXIJX191Y1tzaXplb2YoZmxvYXQpXTsKKwlmbG9hdAkJX191ZjsKK30gX19uYW47CisKKy8qICNpZiBfX0dOVUNfUFJFUkVRX18oMywgMykgfHwgKGRlZmluZWQoX19JTlRFTF9DT01QSUxFUikgJiYgX19JTlRFTF9DT01QSUxFUiA+PSA4MDApICovCisjaWYgMQorI2RlZmluZQlfX01BVEhfQlVJTFRJTl9DT05TVEFOVFMKKyNlbmRpZgorCisvKiAjaWYgX19HTlVDX1BSRVJFUV9fKDMsIDApICYmICFkZWZpbmVkKF9fSU5URUxfQ09NUElMRVIpICovCisjaWYgMQorI2RlZmluZQlfX01BVEhfQlVJTFRJTl9SRUxPUFMKKyNlbmRpZgorCisvKiAjaWZkZWYgX19NQVRIX0JVSUxUSU5fQ09OU1RBTlRTICovCisjaWYgMQorI2RlZmluZQlIVUdFX1ZBTAlfX2J1aWx0aW5faHVnZV92YWwoKQorI2Vsc2UKKyNkZWZpbmUJSFVHRV9WQUwJKF9faW5maW5pdHkuX191ZCkKKyNlbmRpZgorCisvKiAjaWYgX19JU09fQ19WSVNJQkxFID49IDE5OTkgKi8KKyNpZiAwCisjZGVmaW5lCUZQX0lMT0dCMAkoLV9fSU5UX01BWCkKKyNkZWZpbmUJRlBfSUxPR0JOQU4JX19JTlRfTUFYCisjZWxzZQorI2RlZmluZQlGUF9JTE9HQjAJKC1JTlRfTUFYKQorI2RlZmluZQlGUF9JTE9HQk5BTglJTlRfTUFYCisjZW5kaWYKKworI2lmZGVmIF9fTUFUSF9CVUlMVElOX0NPTlNUQU5UUworI2RlZmluZQlIVUdFX1ZBTEYJX19idWlsdGluX2h1Z2VfdmFsZigpCisjZGVmaW5lCUhVR0VfVkFMTAlfX2J1aWx0aW5faHVnZV92YWxsKCkKKyNkZWZpbmUJSU5GSU5JVFkJX19idWlsdGluX2luZigpCisjZGVmaW5lCU5BTgkJX19idWlsdGluX25hbigiIikKKyNlbHNlCisjZGVmaW5lCUhVR0VfVkFMRgkoZmxvYXQpSFVHRV9WQUwKKyNkZWZpbmUJSFVHRV9WQUxMCShsb25nIGRvdWJsZSlIVUdFX1ZBTAorI2RlZmluZQlJTkZJTklUWQlIVUdFX1ZBTEYKKyNkZWZpbmUJTkFOCQkoX19uYW4uX191ZikKKyNlbmRpZiAvKiBfX01BVEhfQlVJTFRJTl9DT05TVEFOVFMgKi8KKworI2RlZmluZQlNQVRIX0VSUk5PCTEKKyNkZWZpbmUJTUFUSF9FUlJFWENFUFQJMgorI2RlZmluZQltYXRoX2VycmhhbmRsaW5nCU1BVEhfRVJSRVhDRVBUCisKKy8qIFhYWCBXZSBuZWVkIGEgPG1hY2hpbmUvbWF0aC5oPi4gKi8KKyNpZiBkZWZpbmVkKF9faWE2NF9fKSB8fCBkZWZpbmVkKF9fc3BhcmM2NF9fKQorI2RlZmluZQlGUF9GQVNUX0ZNQQorI2VuZGlmCisjaWZkZWYgX19pYTY0X18KKyNkZWZpbmUJRlBfRkFTVF9GTUFMCisjZW5kaWYKKyNkZWZpbmUJRlBfRkFTVF9GTUFGCisKKy8qIFN5bWJvbGljIGNvbnN0YW50cyB0byBjbGFzc2lmeSBmbG9hdGluZyBwb2ludCBudW1iZXJzLiAqLworI2RlZmluZQlGUF9JTkZJTklURQkweDAxCisjZGVmaW5lCUZQX05BTgkJMHgwMgorI2RlZmluZQlGUF9OT1JNQUwJMHgwNAorI2RlZmluZQlGUF9TVUJOT1JNQUwJMHgwOAorI2RlZmluZQlGUF9aRVJPCQkweDEwCisjZGVmaW5lCWZwY2xhc3NpZnkoeCkgXAorICAgICgoc2l6ZW9mICh4KSA9PSBzaXplb2YgKGZsb2F0KSkgPyBfX2ZwY2xhc3NpZnlmKHgpIFwKKyAgICA6IChzaXplb2YgKHgpID09IHNpemVvZiAoZG91YmxlKSkgPyBfX2ZwY2xhc3NpZnlkKHgpIFwKKyAgICA6IF9fZnBjbGFzc2lmeWwoeCkpCisKKyNkZWZpbmUJaXNmaW5pdGUoeCkJCQkJCVwKKyAgICAoKHNpemVvZiAoeCkgPT0gc2l6ZW9mIChmbG9hdCkpID8gX19pc2Zpbml0ZWYoeCkJXAorICAgIDogKHNpemVvZiAoeCkgPT0gc2l6ZW9mIChkb3VibGUpKSA/IF9faXNmaW5pdGUoeCkJXAorICAgIDogX19pc2Zpbml0ZWwoeCkpCisjZGVmaW5lCWlzaW5mKHgpCQkJCQlcCisgICAgKChzaXplb2YgKHgpID09IHNpemVvZiAoZmxvYXQpKSA/IF9faXNpbmZmKHgpCVwKKyAgICA6IChzaXplb2YgKHgpID09IHNpemVvZiAoZG91YmxlKSkgPyBfX2lzaW5mKHgpCVwKKyAgICA6IF9faXNpbmZsKHgpKQorI2RlZmluZQlpc25hbih4KQkJCQkJXAorICAgICgoc2l6ZW9mICh4KSA9PSBzaXplb2YgKGZsb2F0KSkgPyBpc25hbmYoeCkJCVwKKyAgICA6IChzaXplb2YgKHgpID09IHNpemVvZiAoZG91YmxlKSkgPyBpc25hbih4KQlcCisgICAgOiBfX2lzbmFubCh4KSkKKyNkZWZpbmUJaXNub3JtYWwoeCkJCQkJCVwKKyAgICAoKHNpemVvZiAoeCkgPT0gc2l6ZW9mIChmbG9hdCkpID8gX19pc25vcm1hbGYoeCkJXAorICAgIDogKHNpemVvZiAoeCkgPT0gc2l6ZW9mIChkb3VibGUpKSA/IF9faXNub3JtYWwoeCkJXAorICAgIDogX19pc25vcm1hbGwoeCkpCisKKyNpZmRlZiBfX01BVEhfQlVJTFRJTl9SRUxPUFMKKyNkZWZpbmUJaXNncmVhdGVyKHgsIHkpCQlfX2J1aWx0aW5faXNncmVhdGVyKCh4KSwgKHkpKQorI2RlZmluZQlpc2dyZWF0ZXJlcXVhbCh4LCB5KQlfX2J1aWx0aW5faXNncmVhdGVyZXF1YWwoKHgpLCAoeSkpCisjZGVmaW5lCWlzbGVzcyh4LCB5KQkJX19idWlsdGluX2lzbGVzcygoeCksICh5KSkKKyNkZWZpbmUJaXNsZXNzZXF1YWwoeCwgeSkJX19idWlsdGluX2lzbGVzc2VxdWFsKCh4KSwgKHkpKQorI2RlZmluZQlpc2xlc3NncmVhdGVyKHgsIHkpCV9fYnVpbHRpbl9pc2xlc3NncmVhdGVyKCh4KSwgKHkpKQorI2RlZmluZQlpc3Vub3JkZXJlZCh4LCB5KQlfX2J1aWx0aW5faXN1bm9yZGVyZWQoKHgpLCAoeSkpCisjZWxzZQorI2RlZmluZQlpc2dyZWF0ZXIoeCwgeSkJCSghaXN1bm9yZGVyZWQoKHgpLCAoeSkpICYmICh4KSA+ICh5KSkKKyNkZWZpbmUJaXNncmVhdGVyZXF1YWwoeCwgeSkJKCFpc3Vub3JkZXJlZCgoeCksICh5KSkgJiYgKHgpID49ICh5KSkKKyNkZWZpbmUJaXNsZXNzKHgsIHkpCQkoIWlzdW5vcmRlcmVkKCh4KSwgKHkpKSAmJiAoeCkgPCAoeSkpCisjZGVmaW5lCWlzbGVzc2VxdWFsKHgsIHkpCSghaXN1bm9yZGVyZWQoKHgpLCAoeSkpICYmICh4KSA8PSAoeSkpCisjZGVmaW5lCWlzbGVzc2dyZWF0ZXIoeCwgeSkJKCFpc3Vub3JkZXJlZCgoeCksICh5KSkgJiYgXAorCQkJCQkoKHgpID4gKHkpIHx8ICh5KSA+ICh4KSkpCisjZGVmaW5lCWlzdW5vcmRlcmVkKHgsIHkpCShpc25hbih4KSB8fCBpc25hbih5KSkKKyNlbmRpZiAvKiBfX01BVEhfQlVJTFRJTl9SRUxPUFMgKi8KKworI2RlZmluZQlzaWduYml0KHgpCQkJCQlcCisgICAgKChzaXplb2YgKHgpID09IHNpemVvZiAoZmxvYXQpKSA/IF9fc2lnbmJpdGYoeCkJXAorICAgIDogKHNpemVvZiAoeCkgPT0gc2l6ZW9mIChkb3VibGUpKSA/IF9fc2lnbmJpdCh4KQlcCisgICAgOiBfX3NpZ25iaXRsKHgpKQorCisjaWYgMAordHlwZWRlZglfX2RvdWJsZV90CWRvdWJsZV90OwordHlwZWRlZglfX2Zsb2F0X3QJZmxvYXRfdDsKKyNlbmRpZiAKKy8qICNlbmRpZiAqLyAvKiBfX0lTT19DX1ZJU0lCTEUgPj0gMTk5OSAqLworCisvKgorICogWE9QRU4vU1ZJRAorICovCisvKiAjaWYgX19CU0RfVklTSUJMRSB8fCBfX1hTSV9WSVNJQkxFICovCisjZGVmaW5lCU1fRQkJMi43MTgyODE4Mjg0NTkwNDUyMzU0CS8qIGUgKi8KKyNkZWZpbmUJTV9MT0cyRQkJMS40NDI2OTUwNDA4ODg5NjM0MDc0CS8qIGxvZyAyZSAqLworI2RlZmluZQlNX0xPRzEwRQkwLjQzNDI5NDQ4MTkwMzI1MTgyNzY1CS8qIGxvZyAxMGUgKi8KKyNkZWZpbmUJTV9MTjIJCTAuNjkzMTQ3MTgwNTU5OTQ1MzA5NDIJLyogbG9nIGUyICovCisjZGVmaW5lCU1fTE4xMAkJMi4zMDI1ODUwOTI5OTQwNDU2ODQwMgkvKiBsb2cgZTEwICovCisjZGVmaW5lCU1fUEkJCTMuMTQxNTkyNjUzNTg5NzkzMjM4NDYJLyogcGkgKi8KKyNkZWZpbmUJTV9QSV8yCQkxLjU3MDc5NjMyNjc5NDg5NjYxOTIzCS8qIHBpLzIgKi8KKyNkZWZpbmUJTV9QSV80CQkwLjc4NTM5ODE2MzM5NzQ0ODMwOTYyCS8qIHBpLzQgKi8KKyNkZWZpbmUJTV8xX1BJCQkwLjMxODMwOTg4NjE4Mzc5MDY3MTU0CS8qIDEvcGkgKi8KKyNkZWZpbmUJTV8yX1BJCQkwLjYzNjYxOTc3MjM2NzU4MTM0MzA4CS8qIDIvcGkgKi8KKyNkZWZpbmUJTV8yX1NRUlRQSQkxLjEyODM3OTE2NzA5NTUxMjU3MzkwCS8qIDIvc3FydChwaSkgKi8KKyNkZWZpbmUJTV9TUVJUMgkJMS40MTQyMTM1NjIzNzMwOTUwNDg4MAkvKiBzcXJ0KDIpICovCisjZGVmaW5lCU1fU1FSVDFfMgkwLjcwNzEwNjc4MTE4NjU0NzUyNDQwCS8qIDEvc3FydCgyKSAqLworCisjZGVmaW5lCU1BWEZMT0FUCSgoZmxvYXQpMy40MDI4MjM0NjYzODUyODg2MGUrMzgpCitleHRlcm4gaW50IHNpZ25nYW07CisvKiAjZW5kaWYgKi8gLyogX19CU0RfVklTSUJMRSB8fCBfX1hTSV9WSVNJQkxFICovCisKKyNpZiBfX0JTRF9WSVNJQkxFCisjaWYgMAorLyogT2xkIHZhbHVlIGZyb20gNC40QlNELUxpdGUgbWF0aC5oOyB0aGlzIGlzIHByb2JhYmx5IGJldHRlci4gKi8KKyNkZWZpbmUJSFVHRQkJSFVHRV9WQUwKKyNlbHNlCisjZGVmaW5lCUhVR0UJCU1BWEZMT0FUCisjZW5kaWYKKyNlbmRpZiAvKiBfX0JTRF9WSVNJQkxFICovCisKKy8qCisgKiBNb3N0IG9mIHRoZXNlIGZ1bmN0aW9ucyBkZXBlbmQgb24gdGhlIHJvdW5kaW5nIG1vZGUgYW5kIGhhdmUgdGhlIHNpZGUKKyAqIGVmZmVjdCBvZiByYWlzaW5nIGZsb2F0aW5nLXBvaW50IGV4Y2VwdGlvbnMsIHNvIHRoZXkgYXJlIG5vdCBkZWNsYXJlZAorICogYXMgX19wdXJlMi4gIEluIEM5OSwgRkVOVl9BQ0NFU1MgYWZmZWN0cyB0aGUgcHVyaXR5IG9mIHRoZXNlIGZ1bmN0aW9ucy4KKyAqLworX19CRUdJTl9ERUNMUworLyoKKyAqIEFOU0kvUE9TSVgKKyAqLworaW50CV9fZnBjbGFzc2lmeWQoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2ludAlfX2ZwY2xhc3NpZnlmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2ludAlfX2ZwY2xhc3NpZnlsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2ludAlfX2lzZmluaXRlZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitpbnQJX19pc2Zpbml0ZShkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworaW50CV9faXNmaW5pdGVsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2ludAlfX2lzaW5mZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitpbnQgICAgIF9faXNpbmYoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2ludAlfX2lzaW5mbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitpbnQJX19pc25hbmwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworaW50CV9faXNub3JtYWxmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2ludAlfX2lzbm9ybWFsKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitpbnQJX19pc25vcm1hbGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworaW50CV9fc2lnbmJpdChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworaW50CV9fc2lnbmJpdGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworaW50CV9fc2lnbmJpdGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworCitkb3VibGUJYWNvcyhkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlhc2luKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWF0YW4oZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJYXRhbjIoZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQljb3MoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJc2luKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCXRhbihkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKKworZG91YmxlCWNvc2goZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJc2luaChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQl0YW5oKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworCitkb3VibGUJZXhwKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWZyZXhwKGRvdWJsZSwgaW50ICopIF9fTkRLX0ZQQUJJX01BVEhfXzsJLyogZnVuZGFtZW50YWxseSAhX19wdXJlMiAqLworZG91YmxlCWxkZXhwKGRvdWJsZSwgaW50KSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJbG9nKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWxvZzEwKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCW1vZGYoZG91YmxlLCBkb3VibGUgKikgX19OREtfRlBBQklfTUFUSF9fOwkvKiBmdW5kYW1lbnRhbGx5ICFfX3B1cmUyICovCisKK2RvdWJsZQlwb3coZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlzcXJ0KGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworCitkb3VibGUJY2VpbChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlmYWJzKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7Citkb3VibGUJZmxvb3IoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJZm1vZChkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworCisvKgorICogVGhlc2UgZnVuY3Rpb25zIGFyZSBub3QgaW4gQzkwLgorICovCisvKiAjaWYgX19CU0RfVklTSUJMRSB8fCBfX0lTT19DX1ZJU0lCTEUgPj0gMTk5OSB8fCBfX1hTSV9WSVNJQkxFICovCitkb3VibGUJYWNvc2goZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJYXNpbmgoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJYXRhbmgoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJY2JydChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQllcmYoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJZXJmYyhkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlleHAyKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWV4cG0xKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWZtYShkb3VibGUsIGRvdWJsZSwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJaHlwb3QoZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2ludAlpbG9nYihkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworLyogaW50CShpc2luZikoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsgKi8KK2ludAkoaXNuYW4pKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7Citkb3VibGUJbGdhbW1hKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBsb25nIGxscmludChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgbG9uZyBsbHJvdW5kKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWxvZzFwKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWxvZzIoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJbG9nYihkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcJbHJpbnQoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nCWxyb3VuZChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQluYW4oY29uc3QgY2hhciAqKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2RvdWJsZQluZXh0YWZ0ZXIoZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlyZW1haW5kZXIoZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlyZW1xdW8oZG91YmxlLCBkb3VibGUsIGludCAqKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJcmludChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKKy8qICNlbmRpZiAqLyAvKiBfX0JTRF9WSVNJQkxFIHx8IF9fSVNPX0NfVklTSUJMRSA+PSAxOTk5IHx8IF9fWFNJX1ZJU0lCTEUgKi8KKworLyogI2lmIF9fQlNEX1ZJU0lCTEUgfHwgX19YU0lfVklTSUJMRSAqLworZG91YmxlCWowKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWoxKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWpuKGludCwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJc2NhbGIoZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQl5MChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQl5MShkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQl5bihpbnQsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworCisvKiAjaWYgX19YU0lfVklTSUJMRSA8PSA1MDAgfHwgX19CU0RfVklTSUJMRSAqLworZG91YmxlCWdhbW1hKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworLyogI2VuZGlmICovCisvKiAjZW5kaWYgKi8gLyogX19CU0RfVklTSUJMRSB8fCBfX1hTSV9WSVNJQkxFICovCisKKy8qICNpZiBfX0JTRF9WSVNJQkxFIHx8IF9fSVNPX0NfVklTSUJMRSA+PSAxOTk5ICovCitkb3VibGUJY29weXNpZ24oZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworZG91YmxlCWZkaW0oZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlmbWF4KGRvdWJsZSwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2RvdWJsZQlmbWluKGRvdWJsZSwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2RvdWJsZQluZWFyYnlpbnQoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJcm91bmQoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJc2NhbGJsbihkb3VibGUsIGxvbmcpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlzY2FsYm4oZG91YmxlLCBpbnQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQl0Z2FtbWEoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJdHJ1bmMoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CisvKiAjZW5kaWYgKi8KKworLyoKKyAqIEJTRCBtYXRoIGxpYnJhcnkgZW50cnkgcG9pbnRzCisgKi8KKy8qICNpZiBfX0JTRF9WSVNJQkxFICovCitkb3VibGUJZHJlbShkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworaW50CWZpbml0ZShkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworaW50CWlzbmFuZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CisKKy8qCisgKiBSZWVudHJhbnQgdmVyc2lvbiBvZiBnYW1tYSAmIGxnYW1tYTsgcGFzc2VzIHNpZ25nYW0gYmFjayBieSByZWZlcmVuY2UKKyAqIGFzIHRoZSBzZWNvbmQgYXJndW1lbnQ7IHVzZXIgbXVzdCBhbGxvY2F0ZSBzcGFjZSBmb3Igc2lnbmdhbS4KKyAqLworZG91YmxlCWdhbW1hX3IoZG91YmxlLCBpbnQgKikgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWxnYW1tYV9yKGRvdWJsZSwgaW50ICopIF9fTkRLX0ZQQUJJX01BVEhfXzsKKworLyoKKyAqIElFRUUgVGVzdCBWZWN0b3IKKyAqLworZG91YmxlCXNpZ25pZmljYW5kKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworLyogI2VuZGlmICovIC8qIF9fQlNEX1ZJU0lCTEUgKi8KKworLyogZmxvYXQgdmVyc2lvbnMgb2YgQU5TSS9QT1NJWCBmdW5jdGlvbnMgKi8KKy8qI2lmIF9fSVNPX0NfVklTSUJMRSA+PSAxOTk5ICovCitmbG9hdAlhY29zZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJYXNpbmYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWF0YW5mKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlhdGFuMmYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAljb3NmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlzaW5mKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAl0YW5mKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CisKK2Zsb2F0CWNvc2hmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlzaW5oZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJdGFuaGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKKworZmxvYXQJZXhwMmYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWV4cGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWV4cG0xZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJZnJleHBmKGZsb2F0LCBpbnQgKikgX19OREtfRlBBQklfTUFUSF9fOwkvKiBmdW5kYW1lbnRhbGx5ICFfX3B1cmUyICovCitpbnQJaWxvZ2JmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2Zsb2F0CWxkZXhwZihmbG9hdCwgaW50KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlsb2cxMGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWxvZzFwZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJbG9nMmYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWxvZ2YoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CW1vZGZmKGZsb2F0LCBmbG9hdCAqKSBfX05ES19GUEFCSV9NQVRIX187CS8qIGZ1bmRhbWVudGFsbHkgIV9fcHVyZTIgKi8KKworZmxvYXQJcG93ZihmbG9hdCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CXNxcnRmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CisKK2Zsb2F0CWNlaWxmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlmYWJzZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitmbG9hdAlmbG9vcmYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWZtb2RmKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJcm91bmRmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CisKK2Zsb2F0CWVyZmYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWVyZmNmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAloeXBvdGYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlsZ2FtbWFmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAl0Z2FtbWFmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CisKK2Zsb2F0CWFjb3NoZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJYXNpbmhmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlhdGFuaGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWNicnRmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlsb2diZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJY29weXNpZ25mKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7Citsb25nIGxvbmcgbGxyaW50ZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBsb25nIGxscm91bmRmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187Citsb25nCWxyaW50ZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZwlscm91bmRmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAluYW5mKGNvbnN0IGNoYXIgKikgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitmbG9hdAluZWFyYnlpbnRmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAluZXh0YWZ0ZXJmKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJcmVtYWluZGVyZihmbG9hdCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CXJlbXF1b2YoZmxvYXQsIGZsb2F0LCBpbnQgKikgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJcmludGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CXNjYWxibG5mKGZsb2F0LCBsb25nKSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlzY2FsYm5mKGZsb2F0LCBpbnQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CXRydW5jZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworCitmbG9hdAlmZGltZihmbG9hdCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWZtYWYoZmxvYXQsIGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJZm1heGYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2Zsb2F0CWZtaW5mKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CisvKiAjZW5kaWYgKi8KKworLyoKKyAqIGZsb2F0IHZlcnNpb25zIG9mIEJTRCBtYXRoIGxpYnJhcnkgZW50cnkgcG9pbnRzCisgKi8KKy8qICNpZiBfX0JTRF9WSVNJQkxFICovCitmbG9hdAlkcmVtZihmbG9hdCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2ludAlmaW5pdGVmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2Zsb2F0CWdhbW1hZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJajBmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlqMWYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWpuZihpbnQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlzY2FsYmYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAl5MGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CXkxZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJeW5mKGludCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKKworLyoKKyAqIEZsb2F0IHZlcnNpb25zIG9mIHJlZW50cmFudCB2ZXJzaW9uIG9mIGdhbW1hICYgbGdhbW1hOyBwYXNzZXMKKyAqIHNpZ25nYW0gYmFjayBieSByZWZlcmVuY2UgYXMgdGhlIHNlY29uZCBhcmd1bWVudDsgdXNlciBtdXN0CisgKiBhbGxvY2F0ZSBzcGFjZSBmb3Igc2lnbmdhbS4KKyAqLworZmxvYXQJZ2FtbWFmX3IoZmxvYXQsIGludCAqKSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlsZ2FtbWFmX3IoZmxvYXQsIGludCAqKSBfX05ES19GUEFCSV9NQVRIX187CisKKy8qCisgKiBmbG9hdCB2ZXJzaW9uIG9mIElFRUUgVGVzdCBWZWN0b3IKKyAqLworZmxvYXQJc2lnbmlmaWNhbmRmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CisvKiAjZW5kaWYgKi8JLyogX19CU0RfVklTSUJMRSAqLyAKKworLyoKKyAqIGxvbmcgZG91YmxlIHZlcnNpb25zIG9mIElTTy9QT1NJWCBtYXRoIGZ1bmN0aW9ucworICovCisvKiAjaWYgX19JU09fQ19WSVNJQkxFID49IDE5OTkgKi8KKyNpZiAwCitsb25nIGRvdWJsZQlhY29zaGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWFjb3NsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlhc2luaGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWFzaW5sKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlhdGFuMmwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlhdGFuaGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWF0YW5sKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQljYnJ0bChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworI2VuZGlmCitsb25nIGRvdWJsZQljZWlsbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJY29weXNpZ25sKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CisjaWYgMAorbG9uZyBkb3VibGUJY29zaGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWNvc2wobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWVyZmNsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQllcmZsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlleHAybChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJZXhwbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJZXhwbTFsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CisjZW5kaWYKK2xvbmcgZG91YmxlCWZhYnNsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2xvbmcgZG91YmxlCWZkaW1sKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJZmxvb3JsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlmbWFsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWZtYXhsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7Citsb25nIGRvdWJsZQlmbWlubChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworI2lmIDAKK2xvbmcgZG91YmxlCWZtb2RsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworI2VuZGlmCitsb25nIGRvdWJsZQlmcmV4cGwobG9uZyBkb3VibGUgdmFsdWUsIGludCAqKSBfX05ES19GUEFCSV9NQVRIX187IC8qIGZ1bmRhbWVudGFsbHkgIV9fcHVyZTIgKi8KKyNpZiAwCitsb25nIGRvdWJsZQloeXBvdGwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CisjZW5kaWYKK2ludAkJaWxvZ2JsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2xvbmcgZG91YmxlCWxkZXhwbChsb25nIGRvdWJsZSwgaW50KSBfX05ES19GUEFCSV9NQVRIX187CisjaWYgMAorbG9uZyBkb3VibGUJbGdhbW1hbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBsb25nCWxscmludGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKKyNlbmRpZgorbG9uZyBsb25nCWxscm91bmRsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CisjaWYgMAorbG9uZyBkb3VibGUJbG9nMTBsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlsb2cxcGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWxvZzJsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CisjZW5kaWYKK2xvbmcgZG91YmxlCWxvZ2JsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CisjaWYgMAorbG9uZwkJbHJpbnRsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CisjZW5kaWYKK2xvbmcJCWxyb3VuZGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKKyNpZiAwCitsb25nIGRvdWJsZQltb2RmbChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUgKikgX19OREtfRlBBQklfTUFUSF9fOyAvKiBmdW5kYW1lbnRhbGx5ICFfX3B1cmUyICovCisjZW5kaWYKK2xvbmcgZG91YmxlCW5hbmwoY29uc3QgY2hhciAqKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKKyNpZiAwCitsb25nIGRvdWJsZQluZWFyYnlpbnRsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CisjZW5kaWYKK2xvbmcgZG91YmxlCW5leHRhZnRlcmwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJCW5leHR0b3dhcmQoZG91YmxlLCBsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJCW5leHR0b3dhcmRmKGZsb2F0LCBsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJbmV4dHRvd2FyZGwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CisjaWYgMAorbG9uZyBkb3VibGUJcG93bChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCXJlbWFpbmRlcmwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlyZW1xdW9sKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSwgaW50ICopIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCXJpbnRsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CisjZW5kaWYKK2xvbmcgZG91YmxlCXJvdW5kbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJc2NhbGJsbmwobG9uZyBkb3VibGUsIGxvbmcpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCXNjYWxibmwobG9uZyBkb3VibGUsIGludCkgX19OREtfRlBBQklfTUFUSF9fOworI2lmIDAKK2xvbmcgZG91YmxlCXNpbmhsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlzaW5sKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlzcXJ0bChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJdGFuaGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCXRhbmwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCXRnYW1tYWwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKKyNlbmRpZgorbG9uZyBkb3VibGUJdHJ1bmNsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CisKKy8qIEJJT05JQzogR0xpYmMgY29tcGF0aWJpbGl0eSAtIHJlcXVpcmVkIGJ5IHRoZSBBUk0gdG9vbGNoYWluICovCisjaWZkZWYgX0dOVV9TT1VSQ0UKK3ZvaWQgIHNpbmNvcyhkb3VibGUgeCwgZG91YmxlICpzaW4sIGRvdWJsZSAqY29zKSBfX05ES19GUEFCSV9NQVRIX187Cit2b2lkICBzaW5jb3NmKGZsb2F0IHgsIGZsb2F0ICpzaW4sIGZsb2F0ICpjb3MpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK3ZvaWQgIHNpbmNvc2wobG9uZyBkb3VibGUgeCwgbG9uZyBkb3VibGUgKnNpbiwgbG9uZyBkb3VibGUgKmNvcykgX19OREtfRlBBQklfTUFUSF9fOworI2VuZGlmCisKK2xvbmcgZG91YmxlCWxvZzJsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CisKKy8qIGJ1aWx0aW4gdmVyc2lvbiBvZiBhbGwgdGhlIGFib3ZlIG1hdGggZnVuY3Rpb25zIGFyZSBhbm5vdGF0ZWQgdG9vICovCisKK2RvdWJsZQlfX2J1aWx0aW5fYWNvcyhkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fYXNpbihkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fYXRhbihkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fYXRhbjIoZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fY29zKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9zaW4oZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX3Rhbihkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fY29zaChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fc2luaChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fdGFuaChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fZXhwKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9mcmV4cChkb3VibGUsIGludCAqKSBfX05ES19GUEFCSV9NQVRIX187CS8qIGZ1bmRhbWVudGFsbHkgIV9fcHVyZTIgKi8KK2RvdWJsZQlfX2J1aWx0aW5fbGRleHAoZG91YmxlLCBpbnQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fbG9nKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9sb2cxMChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fbW9kZihkb3VibGUsIGRvdWJsZSAqKSBfX05ES19GUEFCSV9NQVRIX187CS8qIGZ1bmRhbWVudGFsbHkgIV9fcHVyZTIgKi8KK2RvdWJsZQlfX2J1aWx0aW5fcG93KGRvdWJsZSwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX3NxcnQoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2NlaWwoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2ZhYnMoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2RvdWJsZQlfX2J1aWx0aW5fZmxvb3IoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2Ztb2QoZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fYWNvc2goZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2FzaW5oKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9hdGFuaChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fY2JydChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fZXJmKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9lcmZjKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9leHAyKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9leHBtMShkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fZm1hKGRvdWJsZSwgZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5faHlwb3QoZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2ludAlfX2J1aWx0aW5faWxvZ2IoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKKy8qIGludAlfX2J1aWx0aW5faXNpbmYoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsgKi8KKyNpZiAhZGVmaW5lZChfX2NsYW5nX18pIHx8IF9fY2xhbmdfbWFqb3JfXyA+IDMgfHwgKF9fY2xhbmdfbWFqb3JfXyA9PSAzICYmIF9fY2xhbmdfbWlub3JfXyA+PSA1KQoraW50CV9fYnVpbHRpbl9pc25hbihkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworI2Vsc2UKKy8qIGNsYW5nIDwgMy41IGhhcyBmYXVsdHkgcHJvdG90eXBlIGZvciBfX2J1aWx0aW5faXNuYW4gKi8KKyNlbmRpZgorZG91YmxlCV9fYnVpbHRpbl9sZ2FtbWEoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGxvbmcgX19idWlsdGluX2xscmludChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgbG9uZyBfX2J1aWx0aW5fbGxyb3VuZChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fbG9nMXAoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2xvZzIoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2xvZ2IoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nCV9fYnVpbHRpbl9scmludChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcJX19idWlsdGluX2xyb3VuZChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fbmFuKGNvbnN0IGNoYXIgKikgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7Citkb3VibGUJX19idWlsdGluX25leHRhZnRlcihkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9yZW1haW5kZXIoZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fcmVtcXVvKGRvdWJsZSwgZG91YmxlLCBpbnQgKikgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9yaW50KGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9qMChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fajEoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2puKGludCwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX3NjYWxiKGRvdWJsZSwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX3kwKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl95MShkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5feW4oaW50LCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fZ2FtbWEoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2NvcHlzaWduKGRvdWJsZSwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2RvdWJsZQlfX2J1aWx0aW5fZmRpbShkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9mbWF4KGRvdWJsZSwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2RvdWJsZQlfX2J1aWx0aW5fZm1pbihkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7Citkb3VibGUJX19idWlsdGluX25lYXJieWludChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fcm91bmQoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX3NjYWxibG4oZG91YmxlLCBsb25nKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX3NjYWxibihkb3VibGUsIGludCkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl90Z2FtbWEoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX3RydW5jKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9kcmVtKGRvdWJsZSwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CitpbnQJX19idWlsdGluX2Zpbml0ZShkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworaW50CV9fYnVpbHRpbl9pc25hbmYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworZG91YmxlCV9fYnVpbHRpbl9nYW1tYV9yKGRvdWJsZSwgaW50ICopIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fbGdhbW1hX3IoZG91YmxlLCBpbnQgKikgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9zaWduaWZpY2FuZChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9hY29zZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2FzaW5mKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fYXRhbmYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9hdGFuMmYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fY29zZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX3NpbmYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl90YW5mKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fY29zaGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9zaW5oZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX3RhbmhmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fZXhwMmYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9leHBmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fZXhwbTFmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fZnJleHBmKGZsb2F0LCBpbnQgKikgX19OREtfRlBBQklfTUFUSF9fOwkvKiBmdW5kYW1lbnRhbGx5ICFfX3B1cmUyICovCitpbnQJX19idWlsdGluX2lsb2diZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitmbG9hdAlfX2J1aWx0aW5fbGRleHBmKGZsb2F0LCBpbnQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9sb2cxMGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9sb2cxcGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9sb2cyZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2xvZ2YoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9tb2RmZihmbG9hdCwgZmxvYXQgKikgX19OREtfRlBBQklfTUFUSF9fOwkvKiBmdW5kYW1lbnRhbGx5ICFfX3B1cmUyICovCitmbG9hdAlfX2J1aWx0aW5fcG93ZihmbG9hdCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9zcXJ0ZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2NlaWxmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fZmFic2YoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworZmxvYXQJX19idWlsdGluX2Zsb29yZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2Ztb2RmKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX3JvdW5kZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2VyZmYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9lcmZjZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2h5cG90ZihmbG9hdCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9sZ2FtbWFmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fdGdhbW1hZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2Fjb3NoZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2FzaW5oZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2F0YW5oZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2NicnRmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fbG9nYmYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9jb3B5c2lnbmYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2xvbmcgbG9uZyBfX2J1aWx0aW5fbGxyaW50ZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBsb25nIF9fYnVpbHRpbl9sbHJvdW5kZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZwlfX2J1aWx0aW5fbHJpbnRmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187Citsb25nCV9fYnVpbHRpbl9scm91bmRmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fbmFuZihjb25zdCBjaGFyICopIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworZmxvYXQJX19idWlsdGluX25lYXJieWludGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9uZXh0YWZ0ZXJmKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX3JlbWFpbmRlcmYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fcmVtcXVvZihmbG9hdCwgZmxvYXQsIGludCAqKSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fcmludGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9zY2FsYmxuZihmbG9hdCwgbG9uZykgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX3NjYWxibmYoZmxvYXQsIGludCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX3RydW5jZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2ZkaW1mKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2ZtYWYoZmxvYXQsIGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2ZtYXhmKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitmbG9hdAlfX2J1aWx0aW5fZm1pbmYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2Zsb2F0CV9fYnVpbHRpbl9kcmVtZihmbG9hdCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2ludAlfX2J1aWx0aW5fZmluaXRlZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitmbG9hdAlfX2J1aWx0aW5fZ2FtbWFmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fajBmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fajFmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fam5mKGludCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9zY2FsYmYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5feTBmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5feTFmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5feW5mKGludCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9nYW1tYWZfcihmbG9hdCwgaW50ICopIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9sZ2FtbWFmX3IoZmxvYXQsIGludCAqKSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fc2lnbmlmaWNhbmRmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fYWNvc2hsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fYWNvc2wobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9hc2luaGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9hc2lubChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2F0YW4ybChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9hdGFuaGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9hdGFubChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2NicnRsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fY2VpbGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9jb3B5c2lnbmwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9jb3NobChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2Nvc2wobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9lcmZjbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2VyZmwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9leHAybChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2V4cGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9leHBtMWwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9mYWJzbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fZmRpbWwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fZmxvb3JsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fZm1hbChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fZm1heGwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9mbWlubChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworbG9uZyBkb3VibGUJX19idWlsdGluX2Ztb2RsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2ZyZXhwbChsb25nIGRvdWJsZSB2YWx1ZSwgaW50ICopIF9fTkRLX0ZQQUJJX01BVEhfXzsgLyogZnVuZGFtZW50YWxseSAhX19wdXJlMiAqLworbG9uZyBkb3VibGUJX19idWlsdGluX2h5cG90bChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2ludAkJX19idWlsdGluX2lsb2dibChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fbGRleHBsKGxvbmcgZG91YmxlLCBpbnQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9sZ2FtbWFsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGxvbmcJX19idWlsdGluX2xscmludGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgbG9uZwlfX2J1aWx0aW5fbGxyb3VuZGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9sb2cxMGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9sb2cxcGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9sb2cybChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2xvZ2JsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fbG9nbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZwkJX19idWlsdGluX2xyaW50bChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZwkJX19idWlsdGluX2xyb3VuZGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9tb2RmbChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUgKikgX19OREtfRlBBQklfTUFUSF9fOyAvKiBmdW5kYW1lbnRhbGx5ICFfX3B1cmUyICovCitsb25nIGRvdWJsZQlfX2J1aWx0aW5fbmFubChjb25zdCBjaGFyICopIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworbG9uZyBkb3VibGUJX19idWlsdGluX25lYXJieWludGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9uZXh0YWZ0ZXJsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworI2lmICFkZWZpbmVkKF9fY2xhbmdfXykgfHwgX19jbGFuZ19tYWpvcl9fID4gMyB8fCAoX19jbGFuZ19tYWpvcl9fID09IDMgJiYgX19jbGFuZ19taW5vcl9fID49IDQpCitkb3VibGUJCV9fYnVpbHRpbl9uZXh0dG93YXJkKGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CQlfX2J1aWx0aW5fbmV4dHRvd2FyZGYoZmxvYXQsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CisjZWxzZQorLyogY2xhbmcgPCAzLjQgKi8KK2RvdWJsZQkJX19idWlsdGluX25leHR0b3dhcmQoZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CQlfX2J1aWx0aW5fbmV4dHRvd2FyZGYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CisjZW5kaWYKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9uZXh0dG93YXJkbChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9wb3dsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX3JlbWFpbmRlcmwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fcmVtcXVvbChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUsIGludCAqKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fcmludGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9yb3VuZGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9zY2FsYmxubChsb25nIGRvdWJsZSwgbG9uZykgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX3NjYWxibmwobG9uZyBkb3VibGUsIGludCkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX3NpbmhsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fc2lubChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX3NxcnRsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fdGFuaGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl90YW5sKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fdGdhbW1hbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX3RydW5jbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOwordm9pZCAgX19idWlsdGluX3NpbmNvcyhkb3VibGUgeCwgZG91YmxlICpzaW4sIGRvdWJsZSAqY29zKSBfX05ES19GUEFCSV9NQVRIX187Cit2b2lkICBfX2J1aWx0aW5fc2luY29zZihmbG9hdCB4LCBmbG9hdCAqc2luLCBmbG9hdCAqY29zKSBfX05ES19GUEFCSV9NQVRIX187Cit2b2lkICBfX2J1aWx0aW5fc2luY29zbChsb25nIGRvdWJsZSB4LCBsb25nIGRvdWJsZSAqc2luLCBsb25nIGRvdWJsZSAqY29zKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fbG9nMmwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKKworLyogI2VuZGlmICovIC8qIF9fSVNPX0NfVklTSUJMRSA+PSAxOTk5ICovCitfX0VORF9ERUNMUworCisjZW5kaWYgLyogIV9NQVRIX0hfICovCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvc2FtcGxlcy9Nb3JlVGVhcG90cy9BbmRyb2lkTWFuaWZlc3QueG1sIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L3NhbXBsZXMvTW9yZVRlYXBvdHMvQW5kcm9pZE1hbmlmZXN0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YmVmMzU2Ci0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L3NhbXBsZXMvTW9yZVRlYXBvdHMvQW5kcm9pZE1hbmlmZXN0LnhtbApAQCAtMCwwICsxLDM0IEBACis8bWFuaWZlc3QgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHBhY2thZ2U9ImNvbS5zYW1wbGUubW9yZXRlYXBvdHMiCisgICAgYW5kcm9pZDp2ZXJzaW9uQ29kZT0iMSIKKyAgICBhbmRyb2lkOnZlcnNpb25OYW1lPSIxLjAiID4KKworICAgIDx1c2VzLXNkaworICAgICAgICBhbmRyb2lkOm1pblNka1ZlcnNpb249IjExIgorICAgICAgICBhbmRyb2lkOnRhcmdldFNka1ZlcnNpb249IjE5IiAvPgorICAgIDx1c2VzLWZlYXR1cmUgYW5kcm9pZDpnbEVzVmVyc2lvbj0iMHgwMDAyMDAwMCI+PC91c2VzLWZlYXR1cmU+CisgICAgPHVzZXMtcGVybWlzc2lvbiBhbmRyb2lkOm5hbWU9ImFuZHJvaWQucGVybWlzc2lvbi5XUklURV9FWFRFUk5BTF9TVE9SQUdFIj48L3VzZXMtcGVybWlzc2lvbj4KKyAgICA8YXBwbGljYXRpb24KKyAgICAgICAgYW5kcm9pZDphbGxvd0JhY2t1cD0idHJ1ZSIKKyAgICAgICAgYW5kcm9pZDppY29uPSJAZHJhd2FibGUvaWNfbGF1bmNoZXIiCisgICAgICAgIGFuZHJvaWQ6bGFiZWw9IkBzdHJpbmcvYXBwX25hbWUiCisgICAgICAgIGFuZHJvaWQ6dGhlbWU9IkBzdHlsZS9BcHBUaGVtZSIKKyAgICAgICAgYW5kcm9pZDpoYXNDb2RlPSJ0cnVlIgorICAgICAgICBhbmRyb2lkOm5hbWU9ImNvbS5zYW1wbGUubW9yZXRlYXBvdHMuTW9yZVRlYXBvdHNBcHBsaWNhdGlvbiIKKyAgICAgICAgPgorCisgICAgICAgIDwhLS0gT3VyIGFjdGl2aXR5IGlzIHRoZSBidWlsdC1pbiBOYXRpdmVBY3Rpdml0eSBmcmFtZXdvcmsgY2xhc3MuCisgICAgICAgICAgICAgVGhpcyB3aWxsIHRha2UgY2FyZSBvZiBpbnRlZ3JhdGluZyB3aXRoIG91ciBOREsgY29kZS4gLS0+CisgICAgICAgIDxhY3Rpdml0eSBhbmRyb2lkOm5hbWU9ImNvbS5zYW1wbGUubW9yZXRlYXBvdHMuTW9yZVRlYXBvdHNOYXRpdmVBY3Rpdml0eSIKKyAgICAgICAgICAgICAgICBhbmRyb2lkOmxhYmVsPSJAc3RyaW5nL2FwcF9uYW1lIgorICAgICAgICAgICAgICAgIGFuZHJvaWQ6Y29uZmlnQ2hhbmdlcz0ib3JpZW50YXRpb258a2V5Ym9hcmRIaWRkZW4iPgorICAgICAgICAgICAgPCEtLSBUZWxsIE5hdGl2ZUFjdGl2aXR5IHRoZSBuYW1lIG9mIG9yIC5zbyAtLT4KKyAgICAgICAgICAgIDxtZXRhLWRhdGEgYW5kcm9pZDpuYW1lPSJhbmRyb2lkLmFwcC5saWJfbmFtZSIKKyAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDp2YWx1ZT0iTW9yZVRlYXBvdHNOYXRpdmVBY3Rpdml0eSIgLz4KKyAgICAgICAgICAgIDxpbnRlbnQtZmlsdGVyPgorICAgICAgICAgICAgICAgIDxhY3Rpb24gYW5kcm9pZDpuYW1lPSJhbmRyb2lkLmludGVudC5hY3Rpb24uTUFJTiIgLz4KKyAgICAgICAgICAgICAgICA8Y2F0ZWdvcnkgYW5kcm9pZDpuYW1lPSJhbmRyb2lkLmludGVudC5jYXRlZ29yeS5MQVVOQ0hFUiIgLz4KKyAgICAgICAgICAgIDwvaW50ZW50LWZpbHRlcj4KKyAgICAgICAgPC9hY3Rpdml0eT4KKyAgICA8L2FwcGxpY2F0aW9uPgorPC9tYW5pZmVzdD4KZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOC9zYW1wbGVzL01vcmVUZWFwb3RzL2Fzc2V0cy9TaGFkZXJzL1NoYWRlclBsYWluLmZzaCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOC9zYW1wbGVzL01vcmVUZWFwb3RzL2Fzc2V0cy9TaGFkZXJzL1NoYWRlclBsYWluLmZzaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45Zjk3YmU4Ci0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L3NhbXBsZXMvTW9yZVRlYXBvdHMvYXNzZXRzL1NoYWRlcnMvU2hhZGVyUGxhaW4uZnNoCkBAIC0wLDAgKzEsMjMgQEAKKy8vCisvLyAgU2hhZGVyUGxhaW4uZnNoCisvLworCit1bmlmb3JtIGxvd3AgdmVjMyAgICAgICB2TWF0ZXJpYWxBbWJpZW50OwordW5pZm9ybSBtZWRpdW1wIHZlYzQgICAgICAgdk1hdGVyaWFsU3BlY3VsYXI7CisKK3ZhcnlpbmcgbG93cCB2ZWM0IGNvbG9yRGlmZnVzZTsKKwordW5pZm9ybSBoaWdocCB2ZWMzICAgICAgdkxpZ2h0MDsKK3ZhcnlpbmcgbWVkaXVtcCB2ZWMzIHBvc2l0aW9uOwordmFyeWluZyBtZWRpdW1wIHZlYzMgbm9ybWFsOworCit2b2lkIG1haW4oKQoreworICAgIG1lZGl1bXAgdmVjMyBoYWxmVmVjdG9yID0gbm9ybWFsaXplKC12TGlnaHQwICsgcG9zaXRpb24pOworICAgIG1lZGl1bXAgZmxvYXQgTmRvdEggPSBtYXgoZG90KG5vcm1hbGl6ZShub3JtYWwpLCBoYWxmVmVjdG9yKSwgMC4wKTsKKyAgICBtZWRpdW1wIGZsb2F0IGZQb3dlciA9IHZNYXRlcmlhbFNwZWN1bGFyLnc7CisgICAgbWVkaXVtcCBmbG9hdCBzcGVjdWxhciA9IHBvdyhOZG90SCwgZlBvd2VyKTsKKworICAgIGxvd3AgdmVjNCBjb2xvclNwZWN1bGFyID0gdmVjNCggdk1hdGVyaWFsU3BlY3VsYXIueHl6ICogc3BlY3VsYXIsIDEgKTsKKyAgICBnbF9GcmFnQ29sb3IgPSBjb2xvckRpZmZ1c2UgKyBjb2xvclNwZWN1bGFyOworfQpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L3NhbXBsZXMvTW9yZVRlYXBvdHMvYXNzZXRzL1NoYWRlcnMvU2hhZGVyUGxhaW5FUzMuZnNoIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L3NhbXBsZXMvTW9yZVRlYXBvdHMvYXNzZXRzL1NoYWRlcnMvU2hhZGVyUGxhaW5FUzMuZnNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0MGM5MGQKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvc2FtcGxlcy9Nb3JlVGVhcG90cy9hc3NldHMvU2hhZGVycy9TaGFkZXJQbGFpbkVTMy5mc2gKQEAgLTAsMCArMSwyMSBAQAorI3ZlcnNpb24gMzAwIGVzCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKwordW5pZm9ybSBtZWRpdW1wIHZlYzQgIHZNYXRlcmlhbFNwZWN1bGFyOwordW5pZm9ybSBoaWdocCB2ZWMzIHZMaWdodDA7CisKK2luIGxvd3AgdmVjNCBjb2xvckRpZmZ1c2U7CitpbiB2ZWMzIHBvc2l0aW9uOworaW4gdmVjMyBub3JtYWw7CitvdXQgdmVjNCBvdXRDb2xvcjsKKwordm9pZCBtYWluKCkKK3sKKyAgICBtZWRpdW1wIHZlYzMgaGFsZlZlY3RvciA9IG5vcm1hbGl6ZSgtdkxpZ2h0MCArIHBvc2l0aW9uKTsKKyAgICBtZWRpdW1wIGZsb2F0IE5kb3RIID0gbWF4KGRvdChub3JtYWxpemUobm9ybWFsKSwgaGFsZlZlY3RvciksIDAuMCk7CisgICAgbWVkaXVtcCBmbG9hdCBmUG93ZXIgPSB2TWF0ZXJpYWxTcGVjdWxhci53OworICAgIG1lZGl1bXAgZmxvYXQgc3BlY3VsYXIgPSBwb3coTmRvdEgsIGZQb3dlcik7CisKKyAgICBsb3dwIHZlYzQgY29sb3JTcGVjdWxhciA9IHZlYzQoIHZNYXRlcmlhbFNwZWN1bGFyLnh5eiAqIHNwZWN1bGFyLCAxICk7CisgICAgb3V0Q29sb3IgPSBjb2xvckRpZmZ1c2UgKyBjb2xvclNwZWN1bGFyOworfQpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L3NhbXBsZXMvTW9yZVRlYXBvdHMvYXNzZXRzL1NoYWRlcnMvVlNfU2hhZGVyUGxhaW4udnNoIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L3NhbXBsZXMvTW9yZVRlYXBvdHMvYXNzZXRzL1NoYWRlcnMvVlNfU2hhZGVyUGxhaW4udnNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyNWI0NGYKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvc2FtcGxlcy9Nb3JlVGVhcG90cy9hc3NldHMvU2hhZGVycy9WU19TaGFkZXJQbGFpbi52c2gKQEAgLTAsMCArMSwzNCBAQAorLy8KKy8vICBTaGFkZXJQbGFpbi52c2gKKy8vCisKK2F0dHJpYnV0ZSBoaWdocCB2ZWMzICAgIG15VmVydGV4OworYXR0cmlidXRlIGhpZ2hwIHZlYzMgICAgbXlOb3JtYWw7CisKK3ZhcnlpbmcgbG93cCAgICB2ZWM0ICAgIGNvbG9yRGlmZnVzZTsKKwordmFyeWluZyBtZWRpdW1wIHZlYzMgcG9zaXRpb247Cit2YXJ5aW5nIG1lZGl1bXAgdmVjMyBub3JtYWw7CisKK3VuaWZvcm0gaGlnaHAgbWF0NCAgICAgIHVNVk1hdHJpeDsKK3VuaWZvcm0gaGlnaHAgbWF0NCAgICAgIHVQTWF0cml4OworCit1bmlmb3JtIGhpZ2hwIHZlYzMgICAgICB2TGlnaHQwOworCit1bmlmb3JtIGxvd3AgdmVjNCAgICAgICB2TWF0ZXJpYWxEaWZmdXNlOwordW5pZm9ybSBsb3dwIHZlYzMgICAgICAgdk1hdGVyaWFsQW1iaWVudDsKK3VuaWZvcm0gbG93cCB2ZWM0ICAgICAgIHZNYXRlcmlhbFNwZWN1bGFyOworCit2b2lkIG1haW4odm9pZCkKK3sKKyAgICBoaWdocCB2ZWM0IHAgPSB2ZWM0KG15VmVydGV4LDEpOworICAgIGdsX1Bvc2l0aW9uID0gdVBNYXRyaXggKiBwOworCisgICAgaGlnaHAgdmVjMyB3b3JsZE5vcm1hbCA9IHZlYzMobWF0Myh1TVZNYXRyaXhbMF0ueHl6LCB1TVZNYXRyaXhbMV0ueHl6LCB1TVZNYXRyaXhbMl0ueHl6KSAqIG15Tm9ybWFsKTsKKyAgICBoaWdocCB2ZWMzIGVjUG9zaXRpb24gPSBwLnh5ejsKKworICAgIGNvbG9yRGlmZnVzZSA9IGRvdCggd29ybGROb3JtYWwsIG5vcm1hbGl6ZSgtdkxpZ2h0MCtlY1Bvc2l0aW9uKSApICogdk1hdGVyaWFsRGlmZnVzZSAgKyB2ZWM0KCB2TWF0ZXJpYWxBbWJpZW50LCAxICk7CisKKyAgICBub3JtYWwgPSB3b3JsZE5vcm1hbDsKKyAgICBwb3NpdGlvbiA9IGVjUG9zaXRpb247Cit9CmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvc2FtcGxlcy9Nb3JlVGVhcG90cy9hc3NldHMvU2hhZGVycy9WU19TaGFkZXJQbGFpbkVTMy52c2ggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvc2FtcGxlcy9Nb3JlVGVhcG90cy9hc3NldHMvU2hhZGVycy9WU19TaGFkZXJQbGFpbkVTMy52c2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDYxOTdjNwotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOC9zYW1wbGVzL01vcmVUZWFwb3RzL2Fzc2V0cy9TaGFkZXJzL1ZTX1NoYWRlclBsYWluRVMzLnZzaApAQCAtMCwwICsxLDQyIEBACisjdmVyc2lvbiAzMDAgZXMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworCisvLworLy9TaGFkZXIgd2l0aCBwaG9uZXNoYWRpbmcgKyBnZW9tZXRyeSBpbnN0YW5jaW5nIHN1cHBvcnQKKy8vUGFyYW1ldGVycyB3aXRoICVQQVJBTV9OQU1FJSB3aWxsIGJlIHJlcGxhY2VkIHRvIGFjdHVhbCBwYXJhbWV0ZXIgYXQgY29tcGlsZSB0aW1lCisvLworCitjb25zdCBpbnQgTlVNX09CSkVDVFMgPSAlTlVNX1RFQVBPVCU7CitsYXlvdXQobG9jYXRpb249JUxPQ0FUSU9OX1ZFUlRFWCUpIGluIGhpZ2hwIHZlYzMgICAgbXlWZXJ0ZXg7CitsYXlvdXQobG9jYXRpb249JUxPQ0FUSU9OX05PUk1BTCUpIGluIGhpZ2hwIHZlYzMgICAgbXlOb3JtYWw7CisKK2xheW91dChzdGQxNDApIHVuaWZvcm0gUGFyYW1CbG9jayB7CisgICAgbWF0NCAgICAgIHVQTWF0cml4W05VTV9PQkpFQ1RTXTsKKyAgICBtYXQ0ICAgICAgdU1WTWF0cml4W05VTV9PQkpFQ1RTXTsKKyAgICB2ZWMzICAgICAgdk1hdGVyaWFsRGlmZnVzZVtOVU1fT0JKRUNUU107Cit9OworCit1bmlmb3JtIGhpZ2hwIHZlYzMgICAgICB2TGlnaHQwOwordW5pZm9ybSBsb3dwIHZlYzMgICAgICAgdk1hdGVyaWFsQW1iaWVudDsKK3VuaWZvcm0gbG93cCB2ZWM0ICAgICAgIHZNYXRlcmlhbFNwZWN1bGFyOworCitvdXQgbG93cCAgICB2ZWM0ICAgIGNvbG9yRGlmZnVzZTsKKworb3V0IG1lZGl1bXAgdmVjMyBwb3NpdGlvbjsKK291dCBtZWRpdW1wIHZlYzMgbm9ybWFsOworCit2b2lkIG1haW4odm9pZCkKK3sKKyAgICBoaWdocCB2ZWM0IHAgPSB2ZWM0KG15VmVydGV4LDEpOworICAgIGdsX1Bvc2l0aW9uID0gdVBNYXRyaXhbZ2xfSW5zdGFuY2VJRCVBUkIlXSAqIHA7CisKKyAgICBoaWdocCB2ZWMzIHdvcmxkTm9ybWFsID0gdmVjMyhtYXQzKHVNVk1hdHJpeFtnbF9JbnN0YW5jZUlEJUFSQiVdWzBdLnh5eiwKKyAgICAgICAgICAgIHVNVk1hdHJpeFtnbF9JbnN0YW5jZUlEJUFSQiVdWzFdLnh5eiwKKyAgICAgICAgICAgIHVNVk1hdHJpeFtnbF9JbnN0YW5jZUlEJUFSQiVdWzJdLnh5eikgKiBteU5vcm1hbCk7CisgICAgaGlnaHAgdmVjMyBlY1Bvc2l0aW9uID0gcC54eXo7CisKKyAgICBjb2xvckRpZmZ1c2UgPSBkb3QoIHdvcmxkTm9ybWFsLCBub3JtYWxpemUoLXZMaWdodDArZWNQb3NpdGlvbikgKSAqIHZlYzQodk1hdGVyaWFsRGlmZnVzZVtnbF9JbnN0YW5jZUlEJUFSQiVdLCAxLmYpICArIHZlYzQoIHZNYXRlcmlhbEFtYmllbnQsIDEgKTsKKworICAgIG5vcm1hbCA9IHdvcmxkTm9ybWFsOworICAgIHBvc2l0aW9uID0gZWNQb3NpdGlvbjsKK30KZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOC9zYW1wbGVzL01vcmVUZWFwb3RzL2puaS9BbmRyb2lkLm1rIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L3NhbXBsZXMvTW9yZVRlYXBvdHMvam5pL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjQ0NTdiOQotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOC9zYW1wbGVzL01vcmVUZWFwb3RzL2puaS9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMjcgQEAKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCisKK0xPQ0FMX01PRFVMRSAgICA6PSBNb3JlVGVhcG90c05hdGl2ZUFjdGl2aXR5CitMT0NBTF9TUkNfRklMRVMgOj0gTW9yZVRlYXBvdHNOYXRpdmVBY3Rpdml0eS5jcHAgXAorTW9yZVRlYXBvdHNSZW5kZXJlci5jcHAgXAorCitMT0NBTF9DX0lOQ0xVREVTIDo9IAorTE9DQUxfQ0ZMQUdTIDo9CisKK0xPQ0FMX0xETElCUyAgICA6PSAtbGxvZyAtbGFuZHJvaWQgLWxFR0wgLWxHTEVTdjIKK0xPQ0FMX1NUQVRJQ19MSUJSQVJJRVMgOj0gY3B1ZmVhdHVyZXMgYW5kcm9pZF9uYXRpdmVfYXBwX2dsdWUgbmRrX2hlbHBlcgorCitpZm5lcSAoJChmaWx0ZXIgJWFybWVhYmktdjdhLCQoVEFSR0VUX0FSQ0hfQUJJKSksKQorTE9DQUxfQ0ZMQUdTICs9IC1taGFyZC1mbG9hdCAtRF9OREtfTUFUSF9OT19TT0ZURlA9MQorTE9DQUxfTERMSUJTICs9IC1sbV9oYXJkCitpZmVxICgsJChmaWx0ZXIgLWZ1c2UtbGQ9bWNsZCwkKEFQUF9MREZMQUdTKSAkKExPQ0FMX0xERkxBR1MpKSkKK0xPQ0FMX0xERkxBR1MgKz0gLVdsLC0tbm8td2Fybi1taXNtYXRjaAorZW5kaWYKK2VuZGlmCisKK2luY2x1ZGUgJChCVUlMRF9TSEFSRURfTElCUkFSWSkKKworJChjYWxsIGltcG9ydC1tb2R1bGUsYW5kcm9pZC9uZGtfaGVscGVyKQorJChjYWxsIGltcG9ydC1tb2R1bGUsYW5kcm9pZC9uYXRpdmVfYXBwX2dsdWUpCiskKGNhbGwgaW1wb3J0LW1vZHVsZSxhbmRyb2lkL2NwdWZlYXR1cmVzKQpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L3NhbXBsZXMvTW9yZVRlYXBvdHMvam5pL0FwcGxpY2F0aW9uLm1rIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L3NhbXBsZXMvTW9yZVRlYXBvdHMvam5pL0FwcGxpY2F0aW9uLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzNjcxNTgKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvc2FtcGxlcy9Nb3JlVGVhcG90cy9qbmkvQXBwbGljYXRpb24ubWsKQEAgLTAsMCArMSw0IEBACitBUFBfUExBVEZPUk0gOj0gYW5kcm9pZC05CitBUFBfQUJJIDo9IGFsbAorCitBUFBfU1RMIDo9IHN0bHBvcnRfc3RhdGljCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvc2FtcGxlcy9Nb3JlVGVhcG90cy9qbmkvTW9yZVRlYXBvdHNOYXRpdmVBY3Rpdml0eS5jcHAgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvc2FtcGxlcy9Nb3JlVGVhcG90cy9qbmkvTW9yZVRlYXBvdHNOYXRpdmVBY3Rpdml0eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDNiNzM2MQotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOC9zYW1wbGVzL01vcmVUZWFwb3RzL2puaS9Nb3JlVGVhcG90c05hdGl2ZUFjdGl2aXR5LmNwcApAQCAtMCwwICsxLDUwMCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gSW5jbHVkZSBmaWxlcworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorI2luY2x1ZGUgPGpuaS5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisKKyNpbmNsdWRlIDx2ZWN0b3I+CisjaW5jbHVkZSA8RUdML2VnbC5oPgorI2luY2x1ZGUgPEdMRVMvZ2wuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvc2Vuc29yLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKyNpbmNsdWRlIDxhbmRyb2lkX25hdGl2ZV9hcHBfZ2x1ZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvbmF0aXZlX3dpbmRvd19qbmkuaD4KKyNpbmNsdWRlIDxjcHUtZmVhdHVyZXMuaD4KKworI2luY2x1ZGUgIk1vcmVUZWFwb3RzUmVuZGVyZXIuaCIKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvL1ByZXByb2Nlc3NvcgorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjZGVmaW5lIEhFTFBFUl9DTEFTU19OQU1FICJjb20vc2FtcGxlL2hlbHBlci9OREtIZWxwZXIiIC8vQ2xhc3MgbmFtZSBvZiBoZWxwZXIgZnVuY3Rpb24KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy9Db25zdGFudHMKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorY29uc3QgaW50MzJfdCBOVU1fVEVBUE9UU19YID0gODsKK2NvbnN0IGludDMyX3QgTlVNX1RFQVBPVFNfWSA9IDg7Citjb25zdCBpbnQzMl90IE5VTV9URUFQT1RTX1ogPSA4OworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vU2hhcmVkIHN0YXRlIGZvciBvdXIgYXBwLgorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzdHJ1Y3QgYW5kcm9pZF9hcHA7CitjbGFzcyBFbmdpbmUKK3sKKyAgICBNb3JlVGVhcG90c1JlbmRlcmVyIHJlbmRlcmVyXzsKKworICAgIG5ka19oZWxwZXI6OkdMQ29udGV4dCogZ2xfY29udGV4dF87CisKKyAgICBib29sIGluaXRpYWxpemVkX3Jlc291cmNlc187CisgICAgYm9vbCBoYXNfZm9jdXNfOworCisgICAgbmRrX2hlbHBlcjo6RG91YmxldGFwRGV0ZWN0b3IgZG91YmxldGFwX2RldGVjdG9yXzsKKyAgICBuZGtfaGVscGVyOjpQaW5jaERldGVjdG9yIHBpbmNoX2RldGVjdG9yXzsKKyAgICBuZGtfaGVscGVyOjpEcmFnRGV0ZWN0b3IgZHJhZ19kZXRlY3Rvcl87CisgICAgbmRrX2hlbHBlcjo6UGVyZk1vbml0b3IgbW9uaXRvcl87CisKKyAgICBuZGtfaGVscGVyOjpUYXBDYW1lcmEgdGFwX2NhbWVyYV87CisKKyAgICBhbmRyb2lkX2FwcCogYXBwXzsKKworICAgIEFTZW5zb3JNYW5hZ2VyKiBzZW5zb3JfbWFuYWdlcl87CisgICAgY29uc3QgQVNlbnNvciogYWNjZWxlcm9tZXRlcl9zZW5zb3JfOworICAgIEFTZW5zb3JFdmVudFF1ZXVlKiBzZW5zb3JfZXZlbnRfcXVldWVfOworCisgICAgdm9pZCBVcGRhdGVGUFMoIGZsb2F0IGZwcyApOworICAgIHZvaWQgU2hvd1VJKCk7CisgICAgdm9pZCBUcmFuc2Zvcm1Qb3NpdGlvbiggbmRrX2hlbHBlcjo6VmVjMiYgdmVjICk7CisKK3B1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCBIYW5kbGVDbWQoIHN0cnVjdCBhbmRyb2lkX2FwcCogYXBwLAorICAgICAgICAgICAgaW50MzJfdCBjbWQgKTsKKyAgICBzdGF0aWMgaW50MzJfdCBIYW5kbGVJbnB1dCggYW5kcm9pZF9hcHAqIGFwcCwKKyAgICAgICAgICAgIEFJbnB1dEV2ZW50KiBldmVudCApOworCisgICAgRW5naW5lKCk7CisgICAgfkVuZ2luZSgpOworICAgIHZvaWQgU2V0U3RhdGUoIGFuZHJvaWRfYXBwKiBzdGF0ZSApOworICAgIGludCBJbml0RGlzcGxheSgpOworICAgIHZvaWQgTG9hZFJlc291cmNlcygpOworICAgIHZvaWQgVW5sb2FkUmVzb3VyY2VzKCk7CisgICAgdm9pZCBEcmF3RnJhbWUoKTsKKyAgICB2b2lkIFRlcm1EaXNwbGF5KCk7CisgICAgdm9pZCBUcmltTWVtb3J5KCk7CisgICAgYm9vbCBJc1JlYWR5KCk7CisKKyAgICB2b2lkIFVwZGF0ZVBvc2l0aW9uKCBBSW5wdXRFdmVudCogZXZlbnQsCisgICAgICAgICAgICBpbnQzMl90IGluZGV4LAorICAgICAgICAgICAgZmxvYXQmIHgsCisgICAgICAgICAgICBmbG9hdCYgeSApOworCisgICAgdm9pZCBJbml0U2Vuc29ycygpOworICAgIHZvaWQgUHJvY2Vzc1NlbnNvcnMoIGludDMyX3QgaWQgKTsKKyAgICB2b2lkIFN1c3BlbmRTZW5zb3JzKCk7CisgICAgdm9pZCBSZXN1bWVTZW5zb3JzKCk7Cit9OworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vQ3RvcgorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitFbmdpbmU6OkVuZ2luZSgpIDoKKyAgICAgICAgICAgICAgICBpbml0aWFsaXplZF9yZXNvdXJjZXNfKCBmYWxzZSApLAorICAgICAgICAgICAgICAgIGhhc19mb2N1c18oIGZhbHNlICksCisgICAgICAgICAgICAgICAgYXBwXyggTlVMTCApLAorICAgICAgICAgICAgICAgIHNlbnNvcl9tYW5hZ2VyXyggTlVMTCApLAorICAgICAgICAgICAgICAgIGFjY2VsZXJvbWV0ZXJfc2Vuc29yXyggTlVMTCApLAorICAgICAgICAgICAgICAgIHNlbnNvcl9ldmVudF9xdWV1ZV8oIE5VTEwgKQoreworICAgIGdsX2NvbnRleHRfID0gbmRrX2hlbHBlcjo6R0xDb250ZXh0OjpHZXRJbnN0YW5jZSgpOworfQorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vRHRvcgorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitFbmdpbmU6On5FbmdpbmUoKQoreworfQorCisvKioKKyAqIExvYWQgcmVzb3VyY2VzCisgKi8KK3ZvaWQgRW5naW5lOjpMb2FkUmVzb3VyY2VzKCkKK3sKKyAgICByZW5kZXJlcl8uSW5pdCggTlVNX1RFQVBPVFNfWCwgTlVNX1RFQVBPVFNfWSwgTlVNX1RFQVBPVFNfWiApOworICAgIHJlbmRlcmVyXy5CaW5kKCAmdGFwX2NhbWVyYV8gKTsKK30KKworLyoqCisgKiBVbmxvYWQgcmVzb3VyY2VzCisgKi8KK3ZvaWQgRW5naW5lOjpVbmxvYWRSZXNvdXJjZXMoKQoreworICAgIHJlbmRlcmVyXy5VbmxvYWQoKTsKK30KKworLyoqCisgKiBJbml0aWFsaXplIGFuIEVHTCBjb250ZXh0IGZvciB0aGUgY3VycmVudCBkaXNwbGF5LgorICovCitpbnQgRW5naW5lOjpJbml0RGlzcGxheSgpCit7CisgICAgaWYoICFpbml0aWFsaXplZF9yZXNvdXJjZXNfICkKKyAgICB7CisgICAgICAgIGdsX2NvbnRleHRfLT5Jbml0KCBhcHBfLT53aW5kb3cgKTsKKyAgICAgICAgTG9hZFJlc291cmNlcygpOworICAgICAgICBpbml0aWFsaXplZF9yZXNvdXJjZXNfID0gdHJ1ZTsKKyAgICB9CisgICAgZWxzZQorICAgIHsKKyAgICAgICAgLy8gaW5pdGlhbGl6ZSBPcGVuR0wgRVMgYW5kIEVHTAorICAgICAgICBpZiggRUdMX1NVQ0NFU1MgIT0gZ2xfY29udGV4dF8tPlJlc3VtZSggYXBwXy0+d2luZG93ICkgKQorICAgICAgICB7CisgICAgICAgICAgICBVbmxvYWRSZXNvdXJjZXMoKTsKKyAgICAgICAgICAgIExvYWRSZXNvdXJjZXMoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIFNob3dVSSgpOworCisgICAgLy8gSW5pdGlhbGl6ZSBHTCBzdGF0ZS4KKyAgICBnbEVuYWJsZSggR0xfQ1VMTF9GQUNFICk7CisgICAgZ2xFbmFibGUoIEdMX0RFUFRIX1RFU1QgKTsKKyAgICBnbERlcHRoRnVuYyggR0xfTEVRVUFMICk7CisKKyAgICAvL05vdGUgdGhhdCBzY3JlZW4gc2l6ZSBtaWdodCBoYXZlIGJlZW4gY2hhbmdlZAorICAgIGdsVmlld3BvcnQoIDAsIDAsIGdsX2NvbnRleHRfLT5HZXRTY3JlZW5XaWR0aCgpLCBnbF9jb250ZXh0Xy0+R2V0U2NyZWVuSGVpZ2h0KCkgKTsKKyAgICByZW5kZXJlcl8uVXBkYXRlVmlld3BvcnQoKTsKKworICAgIHRhcF9jYW1lcmFfLlNldEZsaXAoIDEuZiwgLTEuZiwgLTEuZiApOworICAgIHRhcF9jYW1lcmFfLlNldFBpbmNoVHJhbnNmb3JtRmFjdG9yKCAxMC5mLCAxMC5mLCA4LmYgKTsKKworICAgIHJldHVybiAwOworfQorCisvKioKKyAqIEp1c3QgdGhlIGN1cnJlbnQgZnJhbWUgaW4gdGhlIGRpc3BsYXkuCisgKi8KK3ZvaWQgRW5naW5lOjpEcmF3RnJhbWUoKQoreworICAgIGZsb2F0IGZwczsKKyAgICBpZiggbW9uaXRvcl8uVXBkYXRlKCBmcHMgKSApCisgICAgeworICAgICAgICBVcGRhdGVGUFMoIGZwcyApOworICAgIH0KKyAgICBkb3VibGUgZFRpbWUgPSBtb25pdG9yXy5HZXRDdXJyZW50VGltZSgpOworICAgIHJlbmRlcmVyXy5VcGRhdGUoIGRUaW1lICk7CisKKyAgICAvLyBKdXN0IGZpbGwgdGhlIHNjcmVlbiB3aXRoIGEgY29sb3IuCisgICAgZ2xDbGVhckNvbG9yKCAwLjVmLCAwLjVmLCAwLjVmLCAxLmYgKTsKKyAgICBnbENsZWFyKCBHTF9DT0xPUl9CVUZGRVJfQklUIHwgR0xfREVQVEhfQlVGRkVSX0JJVCApOworICAgIHJlbmRlcmVyXy5SZW5kZXIoKTsKKworICAgIC8vIFN3YXAKKyAgICBpZiggRUdMX1NVQ0NFU1MgIT0gZ2xfY29udGV4dF8tPlN3YXAoKSApCisgICAgeworICAgICAgICBVbmxvYWRSZXNvdXJjZXMoKTsKKyAgICAgICAgTG9hZFJlc291cmNlcygpOworICAgIH0KK30KKworLyoqCisgKiBUZWFyIGRvd24gdGhlIEVHTCBjb250ZXh0IGN1cnJlbnRseSBhc3NvY2lhdGVkIHdpdGggdGhlIGRpc3BsYXkuCisgKi8KK3ZvaWQgRW5naW5lOjpUZXJtRGlzcGxheSgpCit7CisgICAgZ2xfY29udGV4dF8tPlN1c3BlbmQoKTsKKworfQorCit2b2lkIEVuZ2luZTo6VHJpbU1lbW9yeSgpCit7CisgICAgTE9HSSggIlRyaW1taW5nIG1lbW9yeSIgKTsKKyAgICBnbF9jb250ZXh0Xy0+SW52YWxpZGF0ZSgpOworfQorLyoqCisgKiBQcm9jZXNzIHRoZSBuZXh0IGlucHV0IGV2ZW50LgorICovCitpbnQzMl90IEVuZ2luZTo6SGFuZGxlSW5wdXQoIGFuZHJvaWRfYXBwKiBhcHAsCisgICAgICAgIEFJbnB1dEV2ZW50KiBldmVudCApCit7CisgICAgRW5naW5lKiBlbmcgPSAoRW5naW5lKikgYXBwLT51c2VyRGF0YTsKKyAgICBpZiggQUlucHV0RXZlbnRfZ2V0VHlwZSggZXZlbnQgKSA9PSBBSU5QVVRfRVZFTlRfVFlQRV9NT1RJT04gKQorICAgIHsKKyAgICAgICAgbmRrX2hlbHBlcjo6R0VTVFVSRV9TVEFURSBkb3VibGVUYXBTdGF0ZSA9IGVuZy0+ZG91YmxldGFwX2RldGVjdG9yXy5EZXRlY3QoIGV2ZW50ICk7CisgICAgICAgIG5ka19oZWxwZXI6OkdFU1RVUkVfU1RBVEUgZHJhZ1N0YXRlID0gZW5nLT5kcmFnX2RldGVjdG9yXy5EZXRlY3QoIGV2ZW50ICk7CisgICAgICAgIG5ka19oZWxwZXI6OkdFU1RVUkVfU1RBVEUgcGluY2hTdGF0ZSA9IGVuZy0+cGluY2hfZGV0ZWN0b3JfLkRldGVjdCggZXZlbnQgKTsKKworICAgICAgICAvL0RvdWJsZSB0YXAgZGV0ZWN0b3IgaGFzIGEgcHJpb3JpdHkgb3ZlciBvdGhlciBkZXRlY3RvcnMKKyAgICAgICAgaWYoIGRvdWJsZVRhcFN0YXRlID09IG5ka19oZWxwZXI6OkdFU1RVUkVfU1RBVEVfQUNUSU9OICkKKyAgICAgICAgeworICAgICAgICAgICAgLy9EZXRlY3QgZG91YmxlIHRhcAorICAgICAgICAgICAgZW5nLT50YXBfY2FtZXJhXy5SZXNldCggdHJ1ZSApOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgLy9IYW5kbGUgZHJhZyBzdGF0ZQorICAgICAgICAgICAgaWYoIGRyYWdTdGF0ZSAmIG5ka19oZWxwZXI6OkdFU1RVUkVfU1RBVEVfU1RBUlQgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vT3RoZXJ3aXNlLCBzdGFydCBkcmFnZ2luZworICAgICAgICAgICAgICAgIG5ka19oZWxwZXI6OlZlYzIgdjsKKyAgICAgICAgICAgICAgICBlbmctPmRyYWdfZGV0ZWN0b3JfLkdldFBvaW50ZXIoIHYgKTsKKyAgICAgICAgICAgICAgICBlbmctPlRyYW5zZm9ybVBvc2l0aW9uKCB2ICk7CisgICAgICAgICAgICAgICAgZW5nLT50YXBfY2FtZXJhXy5CZWdpbkRyYWcoIHYgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYoIGRyYWdTdGF0ZSAmIG5ka19oZWxwZXI6OkdFU1RVUkVfU1RBVEVfTU9WRSApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbmRrX2hlbHBlcjo6VmVjMiB2OworICAgICAgICAgICAgICAgIGVuZy0+ZHJhZ19kZXRlY3Rvcl8uR2V0UG9pbnRlciggdiApOworICAgICAgICAgICAgICAgIGVuZy0+VHJhbnNmb3JtUG9zaXRpb24oIHYgKTsKKyAgICAgICAgICAgICAgICBlbmctPnRhcF9jYW1lcmFfLkRyYWcoIHYgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYoIGRyYWdTdGF0ZSAmIG5ka19oZWxwZXI6OkdFU1RVUkVfU1RBVEVfRU5EICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlbmctPnRhcF9jYW1lcmFfLkVuZERyYWcoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy9IYW5kbGUgcGluY2ggc3RhdGUKKyAgICAgICAgICAgIGlmKCBwaW5jaFN0YXRlICYgbmRrX2hlbHBlcjo6R0VTVFVSRV9TVEFURV9TVEFSVCApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy9TdGFydCBuZXcgcGluY2gKKyAgICAgICAgICAgICAgICBuZGtfaGVscGVyOjpWZWMyIHYxOworICAgICAgICAgICAgICAgIG5ka19oZWxwZXI6OlZlYzIgdjI7CisgICAgICAgICAgICAgICAgZW5nLT5waW5jaF9kZXRlY3Rvcl8uR2V0UG9pbnRlcnMoIHYxLCB2MiApOworICAgICAgICAgICAgICAgIGVuZy0+VHJhbnNmb3JtUG9zaXRpb24oIHYxICk7CisgICAgICAgICAgICAgICAgZW5nLT5UcmFuc2Zvcm1Qb3NpdGlvbiggdjIgKTsKKyAgICAgICAgICAgICAgICBlbmctPnRhcF9jYW1lcmFfLkJlZ2luUGluY2goIHYxLCB2MiApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiggcGluY2hTdGF0ZSAmIG5ka19oZWxwZXI6OkdFU1RVUkVfU1RBVEVfTU9WRSApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy9NdWx0aSB0b3VjaAorICAgICAgICAgICAgICAgIC8vU3RhcnQgbmV3IHBpbmNoCisgICAgICAgICAgICAgICAgbmRrX2hlbHBlcjo6VmVjMiB2MTsKKyAgICAgICAgICAgICAgICBuZGtfaGVscGVyOjpWZWMyIHYyOworICAgICAgICAgICAgICAgIGVuZy0+cGluY2hfZGV0ZWN0b3JfLkdldFBvaW50ZXJzKCB2MSwgdjIgKTsKKyAgICAgICAgICAgICAgICBlbmctPlRyYW5zZm9ybVBvc2l0aW9uKCB2MSApOworICAgICAgICAgICAgICAgIGVuZy0+VHJhbnNmb3JtUG9zaXRpb24oIHYyICk7CisgICAgICAgICAgICAgICAgZW5nLT50YXBfY2FtZXJhXy5QaW5jaCggdjEsIHYyICk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorICAgIHJldHVybiAwOworfQorCisvKioKKyAqIFByb2Nlc3MgdGhlIG5leHQgbWFpbiBjb21tYW5kLgorICovCit2b2lkIEVuZ2luZTo6SGFuZGxlQ21kKCBzdHJ1Y3QgYW5kcm9pZF9hcHAqIGFwcCwKKyAgICAgICAgaW50MzJfdCBjbWQgKQoreworICAgIEVuZ2luZSogZW5nID0gKEVuZ2luZSopIGFwcC0+dXNlckRhdGE7CisgICAgc3dpdGNoKCBjbWQgKQorICAgIHsKKyAgICBjYXNlIEFQUF9DTURfU0FWRV9TVEFURToKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBUFBfQ01EX0lOSVRfV0lORE9XOgorICAgICAgICAvLyBUaGUgd2luZG93IGlzIGJlaW5nIHNob3duLCBnZXQgaXQgcmVhZHkuCisgICAgICAgIGlmKCBhcHAtPndpbmRvdyAhPSBOVUxMICkKKyAgICAgICAgeworICAgICAgICAgICAgZW5nLT5Jbml0RGlzcGxheSgpOworICAgICAgICAgICAgZW5nLT5EcmF3RnJhbWUoKTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFQUF9DTURfVEVSTV9XSU5ET1c6CisgICAgICAgIC8vIFRoZSB3aW5kb3cgaXMgYmVpbmcgaGlkZGVuIG9yIGNsb3NlZCwgY2xlYW4gaXQgdXAuCisgICAgICAgIGVuZy0+VGVybURpc3BsYXkoKTsKKyAgICAgICAgZW5nLT5oYXNfZm9jdXNfID0gZmFsc2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVBQX0NNRF9TVE9QOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFQUF9DTURfR0FJTkVEX0ZPQ1VTOgorICAgICAgICBlbmctPlJlc3VtZVNlbnNvcnMoKTsKKyAgICAgICAgLy9TdGFydCBhbmltYXRpb24KKyAgICAgICAgZW5nLT5oYXNfZm9jdXNfID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBUFBfQ01EX0xPU1RfRk9DVVM6CisgICAgICAgIGVuZy0+U3VzcGVuZFNlbnNvcnMoKTsKKyAgICAgICAgLy8gQWxzbyBzdG9wIGFuaW1hdGluZy4KKyAgICAgICAgZW5nLT5oYXNfZm9jdXNfID0gZmFsc2U7CisgICAgICAgIGVuZy0+RHJhd0ZyYW1lKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVBQX0NNRF9MT1dfTUVNT1JZOgorICAgICAgICAvL0ZyZWUgdXAgR0wgcmVzb3VyY2VzCisgICAgICAgIGVuZy0+VHJpbU1lbW9yeSgpOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy9TZW5zb3IgaGFuZGxlcnMKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQordm9pZCBFbmdpbmU6OkluaXRTZW5zb3JzKCkKK3sKKyAgICBzZW5zb3JfbWFuYWdlcl8gPSBBU2Vuc29yTWFuYWdlcl9nZXRJbnN0YW5jZSgpOworICAgIGFjY2VsZXJvbWV0ZXJfc2Vuc29yXyA9IEFTZW5zb3JNYW5hZ2VyX2dldERlZmF1bHRTZW5zb3IoIHNlbnNvcl9tYW5hZ2VyXywKKyAgICAgICAgICAgIEFTRU5TT1JfVFlQRV9BQ0NFTEVST01FVEVSICk7CisgICAgc2Vuc29yX2V2ZW50X3F1ZXVlXyA9IEFTZW5zb3JNYW5hZ2VyX2NyZWF0ZUV2ZW50UXVldWUoIHNlbnNvcl9tYW5hZ2VyXywgYXBwXy0+bG9vcGVyLAorICAgICAgICAgICAgTE9PUEVSX0lEX1VTRVIsIE5VTEwsIE5VTEwgKTsKK30KKwordm9pZCBFbmdpbmU6OlByb2Nlc3NTZW5zb3JzKCBpbnQzMl90IGlkICkKK3sKKyAgICAvLyBJZiBhIHNlbnNvciBoYXMgZGF0YSwgcHJvY2VzcyBpdCBub3cuCisgICAgaWYoIGlkID09IExPT1BFUl9JRF9VU0VSICkKKyAgICB7CisgICAgICAgIGlmKCBhY2NlbGVyb21ldGVyX3NlbnNvcl8gIT0gTlVMTCApCisgICAgICAgIHsKKyAgICAgICAgICAgIEFTZW5zb3JFdmVudCBldmVudDsKKyAgICAgICAgICAgIHdoaWxlKCBBU2Vuc29yRXZlbnRRdWV1ZV9nZXRFdmVudHMoIHNlbnNvcl9ldmVudF9xdWV1ZV8sICZldmVudCwgMSApID4gMCApCisgICAgICAgICAgICB7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgRW5naW5lOjpSZXN1bWVTZW5zb3JzKCkKK3sKKyAgICAvLyBXaGVuIG91ciBhcHAgZ2FpbnMgZm9jdXMsIHdlIHN0YXJ0IG1vbml0b3JpbmcgdGhlIGFjY2VsZXJvbWV0ZXIuCisgICAgaWYoIGFjY2VsZXJvbWV0ZXJfc2Vuc29yXyAhPSBOVUxMICkKKyAgICB7CisgICAgICAgIEFTZW5zb3JFdmVudFF1ZXVlX2VuYWJsZVNlbnNvciggc2Vuc29yX2V2ZW50X3F1ZXVlXywgYWNjZWxlcm9tZXRlcl9zZW5zb3JfICk7CisgICAgICAgIC8vIFdlJ2QgbGlrZSB0byBnZXQgNjAgZXZlbnRzIHBlciBzZWNvbmQgKGluIHVzKS4KKyAgICAgICAgQVNlbnNvckV2ZW50UXVldWVfc2V0RXZlbnRSYXRlKCBzZW5zb3JfZXZlbnRfcXVldWVfLCBhY2NlbGVyb21ldGVyX3NlbnNvcl8sCisgICAgICAgICAgICAgICAgKDEwMDBMIC8gNjApICogMTAwMCApOworICAgIH0KK30KKwordm9pZCBFbmdpbmU6OlN1c3BlbmRTZW5zb3JzKCkKK3sKKyAgICAvLyBXaGVuIG91ciBhcHAgbG9zZXMgZm9jdXMsIHdlIHN0b3AgbW9uaXRvcmluZyB0aGUgYWNjZWxlcm9tZXRlci4KKyAgICAvLyBUaGlzIGlzIHRvIGF2b2lkIGNvbnN1bWluZyBiYXR0ZXJ5IHdoaWxlIG5vdCBiZWluZyB1c2VkLgorICAgIGlmKCBhY2NlbGVyb21ldGVyX3NlbnNvcl8gIT0gTlVMTCApCisgICAgeworICAgICAgICBBU2Vuc29yRXZlbnRRdWV1ZV9kaXNhYmxlU2Vuc29yKCBzZW5zb3JfZXZlbnRfcXVldWVfLCBhY2NlbGVyb21ldGVyX3NlbnNvcl8gKTsKKyAgICB9Cit9CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy9NaXNjCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3ZvaWQgRW5naW5lOjpTZXRTdGF0ZSggYW5kcm9pZF9hcHAqIHN0YXRlICkKK3sKKyAgICBhcHBfID0gc3RhdGU7CisgICAgZG91YmxldGFwX2RldGVjdG9yXy5TZXRDb25maWd1cmF0aW9uKCBhcHBfLT5jb25maWcgKTsKKyAgICBkcmFnX2RldGVjdG9yXy5TZXRDb25maWd1cmF0aW9uKCBhcHBfLT5jb25maWcgKTsKKyAgICBwaW5jaF9kZXRlY3Rvcl8uU2V0Q29uZmlndXJhdGlvbiggYXBwXy0+Y29uZmlnICk7Cit9CisKK2Jvb2wgRW5naW5lOjpJc1JlYWR5KCkKK3sKKyAgICBpZiggaGFzX2ZvY3VzXyApCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEVuZ2luZTo6VHJhbnNmb3JtUG9zaXRpb24oIG5ka19oZWxwZXI6OlZlYzImIHZlYyApCit7CisgICAgdmVjID0gbmRrX2hlbHBlcjo6VmVjMiggMi4wZiwgMi4wZiApICogdmVjCisgICAgICAgICAgICAvIG5ka19oZWxwZXI6OlZlYzIoIGdsX2NvbnRleHRfLT5HZXRTY3JlZW5XaWR0aCgpLCBnbF9jb250ZXh0Xy0+R2V0U2NyZWVuSGVpZ2h0KCkgKQorICAgICAgICAgICAgLSBuZGtfaGVscGVyOjpWZWMyKCAxLmYsIDEuZiApOworfQorCit2b2lkIEVuZ2luZTo6U2hvd1VJKCkKK3sKKyAgICBKTklFbnYgKmpuaTsKKyAgICBhcHBfLT5hY3Rpdml0eS0+dm0tPkF0dGFjaEN1cnJlbnRUaHJlYWQoICZqbmksIE5VTEwgKTsKKworICAgIC8vRGVmYXVsdCBjbGFzcyByZXRyaWV2YWwKKyAgICBqY2xhc3MgY2xhenogPSBqbmktPkdldE9iamVjdENsYXNzKCBhcHBfLT5hY3Rpdml0eS0+Y2xhenogKTsKKyAgICBqbWV0aG9kSUQgbWV0aG9kSUQgPSBqbmktPkdldE1ldGhvZElEKCBjbGF6eiwgInNob3dVSSIsICIoKVYiICk7CisgICAgam5pLT5DYWxsVm9pZE1ldGhvZCggYXBwXy0+YWN0aXZpdHktPmNsYXp6LCBtZXRob2RJRCApOworCisgICAgYXBwXy0+YWN0aXZpdHktPnZtLT5EZXRhY2hDdXJyZW50VGhyZWFkKCk7CisgICAgcmV0dXJuOworfQorCit2b2lkIEVuZ2luZTo6VXBkYXRlRlBTKCBmbG9hdCBmcHMgKQoreworICAgIEpOSUVudiAqam5pOworICAgIGFwcF8tPmFjdGl2aXR5LT52bS0+QXR0YWNoQ3VycmVudFRocmVhZCggJmpuaSwgTlVMTCApOworCisgICAgLy9EZWZhdWx0IGNsYXNzIHJldHJpZXZhbAorICAgIGpjbGFzcyBjbGF6eiA9IGpuaS0+R2V0T2JqZWN0Q2xhc3MoIGFwcF8tPmFjdGl2aXR5LT5jbGF6eiApOworICAgIGptZXRob2RJRCBtZXRob2RJRCA9IGpuaS0+R2V0TWV0aG9kSUQoIGNsYXp6LCAidXBkYXRlRlBTIiwgIihGKVYiICk7CisgICAgam5pLT5DYWxsVm9pZE1ldGhvZCggYXBwXy0+YWN0aXZpdHktPmNsYXp6LCBtZXRob2RJRCwgZnBzICk7CisKKyAgICBhcHBfLT5hY3Rpdml0eS0+dm0tPkRldGFjaEN1cnJlbnRUaHJlYWQoKTsKKyAgICByZXR1cm47Cit9CisKK0VuZ2luZSBnX2VuZ2luZTsKKworLyoqCisgKiBUaGlzIGlzIHRoZSBtYWluIGVudHJ5IHBvaW50IG9mIGEgbmF0aXZlIGFwcGxpY2F0aW9uIHRoYXQgaXMgdXNpbmcKKyAqIGFuZHJvaWRfbmF0aXZlX2FwcF9nbHVlLiAgSXQgcnVucyBpbiBpdHMgb3duIHRocmVhZCwgd2l0aCBpdHMgb3duCisgKiBldmVudCBsb29wIGZvciByZWNlaXZpbmcgaW5wdXQgZXZlbnRzIGFuZCBkb2luZyBvdGhlciB0aGluZ3MuCisgKi8KK3ZvaWQgYW5kcm9pZF9tYWluKCBhbmRyb2lkX2FwcCogc3RhdGUgKQoreworICAgIGFwcF9kdW1teSgpOworCisgICAgZ19lbmdpbmUuU2V0U3RhdGUoIHN0YXRlICk7CisKKyAgICAvL0luaXQgaGVscGVyIGZ1bmN0aW9ucworICAgIG5ka19oZWxwZXI6OkpOSUhlbHBlcjo6R2V0SW5zdGFuY2UoKS0+SW5pdCggc3RhdGUtPmFjdGl2aXR5LCBIRUxQRVJfQ0xBU1NfTkFNRSApOworCisgICAgc3RhdGUtPnVzZXJEYXRhID0gJmdfZW5naW5lOworICAgIHN0YXRlLT5vbkFwcENtZCA9IEVuZ2luZTo6SGFuZGxlQ21kOworICAgIHN0YXRlLT5vbklucHV0RXZlbnQgPSBFbmdpbmU6OkhhbmRsZUlucHV0OworCisjaWZkZWYgVVNFX05ES19QUk9GSUxFUgorICAgIG1vbnN0YXJ0dXAoImxpYk1vcmVUZWFwb3RzTmF0aXZlQWN0aXZpdHkuc28iKTsKKyNlbmRpZgorCisgICAgLy8gUHJlcGFyZSB0byBtb25pdG9yIGFjY2VsZXJvbWV0ZXIKKyAgICBnX2VuZ2luZS5Jbml0U2Vuc29ycygpOworCisgICAgLy8gbG9vcCB3YWl0aW5nIGZvciBzdHVmZiB0byBkby4KKyAgICB3aGlsZSggMSApCisgICAgeworICAgICAgICAvLyBSZWFkIGFsbCBwZW5kaW5nIGV2ZW50cy4KKyAgICAgICAgaW50IGlkOworICAgICAgICBpbnQgZXZlbnRzOworICAgICAgICBhbmRyb2lkX3BvbGxfc291cmNlKiBzb3VyY2U7CisKKyAgICAgICAgLy8gSWYgbm90IGFuaW1hdGluZywgd2Ugd2lsbCBibG9jayBmb3JldmVyIHdhaXRpbmcgZm9yIGV2ZW50cy4KKyAgICAgICAgLy8gSWYgYW5pbWF0aW5nLCB3ZSBsb29wIHVudGlsIGFsbCBldmVudHMgYXJlIHJlYWQsIHRoZW4gY29udGludWUKKyAgICAgICAgLy8gdG8gZHJhdyB0aGUgbmV4dCBmcmFtZSBvZiBhbmltYXRpb24uCisgICAgICAgIHdoaWxlKCAoaWQgPSBBTG9vcGVyX3BvbGxBbGwoIGdfZW5naW5lLklzUmVhZHkoKSA/IDAgOiAtMSwgTlVMTCwgJmV2ZW50cywgKHZvaWQqKikgJnNvdXJjZSApKQorICAgICAgICAgICAgICAgID49IDAgKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBQcm9jZXNzIHRoaXMgZXZlbnQuCisgICAgICAgICAgICBpZiggc291cmNlICE9IE5VTEwgKQorICAgICAgICAgICAgICAgIHNvdXJjZS0+cHJvY2Vzcyggc3RhdGUsIHNvdXJjZSApOworCisgICAgICAgICAgICBnX2VuZ2luZS5Qcm9jZXNzU2Vuc29ycyggaWQgKTsKKworICAgICAgICAgICAgLy8gQ2hlY2sgaWYgd2UgYXJlIGV4aXRpbmcuCisgICAgICAgICAgICBpZiggc3RhdGUtPmRlc3Ryb3lSZXF1ZXN0ZWQgIT0gMCApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZ19lbmdpbmUuVGVybURpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiggZ19lbmdpbmUuSXNSZWFkeSgpICkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gRHJhd2luZyBpcyB0aHJvdHRsZWQgdG8gdGhlIHNjcmVlbiB1cGRhdGUgcmF0ZSwgc28gdGhlcmUKKyAgICAgICAgICAgIC8vIGlzIG5vIG5lZWQgdG8gZG8gdGltaW5nIGhlcmUuCisgICAgICAgICAgICBnX2VuZ2luZS5EcmF3RnJhbWUoKTsKKyAgICAgICAgfQorICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L3NhbXBsZXMvTW9yZVRlYXBvdHMvam5pL01vcmVUZWFwb3RzUmVuZGVyZXIuY3BwIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L3NhbXBsZXMvTW9yZVRlYXBvdHMvam5pL01vcmVUZWFwb3RzUmVuZGVyZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhZGY0ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvc2FtcGxlcy9Nb3JlVGVhcG90cy9qbmkvTW9yZVRlYXBvdHNSZW5kZXJlci5jcHAKQEAgLTAsMCArMSw1NTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIE1vcmVUZWFwb3RzUmVuZGVyZXIuY3BwCisvLyBSZW5kZXIgdGVhcG90cworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gSW5jbHVkZSBmaWxlcworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorI2luY2x1ZGUgIk1vcmVUZWFwb3RzUmVuZGVyZXIuaCIKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gVGVhcG90IG1vZGVsIGRhdGEKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyNpbmNsdWRlICJ0ZWFwb3QuaW5sIgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBDdG9yCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitNb3JlVGVhcG90c1JlbmRlcmVyOjpNb3JlVGVhcG90c1JlbmRlcmVyKCkgOgorICAgICAgICAgICAgICAgIGdlb21ldHJ5X2luc3RhbmNpbmdfc3VwcG9ydF8oIGZhbHNlICkKK3sKKworfQorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBEdG9yCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitNb3JlVGVhcG90c1JlbmRlcmVyOjp+TW9yZVRlYXBvdHNSZW5kZXJlcigpCit7CisgICAgVW5sb2FkKCk7Cit9CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIEluaXQKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3ZvaWQgTW9yZVRlYXBvdHNSZW5kZXJlcjo6SW5pdCggY29uc3QgaW50MzJfdCBudW1YLAorICAgICAgICBjb25zdCBpbnQzMl90IG51bVksCisgICAgICAgIGNvbnN0IGludDMyX3QgbnVtWiApCit7CisgICAgaWYoIG5ka19oZWxwZXI6OkdMQ29udGV4dDo6R2V0SW5zdGFuY2UoKS0+R2V0R0xWZXJzaW9uKCkgPj0gMy4wICkKKyAgICB7CisgICAgICAgIGdlb21ldHJ5X2luc3RhbmNpbmdfc3VwcG9ydF8gPSB0cnVlOworICAgIH0KKyAgICBlbHNlIGlmKCBuZGtfaGVscGVyOjpHTENvbnRleHQ6OkdldEluc3RhbmNlKCktPkNoZWNrRXh0ZW5zaW9uKCAiR0xfTlZfZHJhd19pbnN0YW5jZWQiICkKKyAgICAgICAgICAgICYmIG5ka19oZWxwZXI6OkdMQ29udGV4dDo6R2V0SW5zdGFuY2UoKS0+Q2hlY2tFeHRlbnNpb24oCisgICAgICAgICAgICAgICAgICAgICJHTF9OVl91bmlmb3JtX2J1ZmZlcl9vYmplY3QiICkgKQorICAgIHsKKyAgICAgICAgTE9HSSggIlN1cHBvcnRlZCB2aWEgZXh0ZW5zaW9uISIgKTsKKyAgICAgICAgLy9fYkdlb21ldHJ5SW5zdGFuY2luZ1N1cHBvcnQgPSB0cnVlOworICAgICAgICAvL19iQVJCU3VwcG9ydCA9IHRydWU7IC8vTmVlZCB0byBwYXRjaCBzaGFkZXJzCisgICAgICAgIC8vQ3VycmVudGx5IHRoaXMgaGFzIGJlZW4gZGlzYWJsZWQKKyAgICB9CisKKyAgICAvL1NldHRpbmdzCisgICAgZ2xGcm9udEZhY2UoIEdMX0NDVyApOworCisgICAgLy9DcmVhdGUgSW5kZXggYnVmZmVyCisgICAgbnVtX2luZGljZXNfID0gc2l6ZW9mKHRlYXBvdEluZGljZXMpIC8gc2l6ZW9mKHRlYXBvdEluZGljZXNbMF0pOworICAgIGdsR2VuQnVmZmVycyggMSwgJmlib18gKTsKKyAgICBnbEJpbmRCdWZmZXIoIEdMX0VMRU1FTlRfQVJSQVlfQlVGRkVSLCBpYm9fICk7CisgICAgZ2xCdWZmZXJEYXRhKCBHTF9FTEVNRU5UX0FSUkFZX0JVRkZFUiwgc2l6ZW9mKHRlYXBvdEluZGljZXMpLCB0ZWFwb3RJbmRpY2VzLCBHTF9TVEFUSUNfRFJBVyApOworICAgIGdsQmluZEJ1ZmZlciggR0xfRUxFTUVOVF9BUlJBWV9CVUZGRVIsIDAgKTsKKworICAgIC8vQ3JlYXRlIFZCTworICAgIG51bV92ZXJ0aWNlc18gPSBzaXplb2YodGVhcG90UG9zaXRpb25zKSAvIHNpemVvZih0ZWFwb3RQb3NpdGlvbnNbMF0pIC8gMzsKKyAgICBpbnQzMl90IGlTdHJpZGUgPSBzaXplb2YoVEVBUE9UX1ZFUlRFWCk7CisgICAgaW50MzJfdCBpSW5kZXggPSAwOworICAgIFRFQVBPVF9WRVJURVgqIHAgPSBuZXcgVEVBUE9UX1ZFUlRFWFtudW1fdmVydGljZXNfXTsKKyAgICBmb3IoIGludDMyX3QgaSA9IDA7IGkgPCBudW1fdmVydGljZXNfOyArK2kgKQorICAgIHsKKyAgICAgICAgcFtpXS5wb3NbMF0gPSB0ZWFwb3RQb3NpdGlvbnNbaUluZGV4XTsKKyAgICAgICAgcFtpXS5wb3NbMV0gPSB0ZWFwb3RQb3NpdGlvbnNbaUluZGV4ICsgMV07CisgICAgICAgIHBbaV0ucG9zWzJdID0gdGVhcG90UG9zaXRpb25zW2lJbmRleCArIDJdOworCisgICAgICAgIHBbaV0ubm9ybWFsWzBdID0gdGVhcG90Tm9ybWFsc1tpSW5kZXhdOworICAgICAgICBwW2ldLm5vcm1hbFsxXSA9IHRlYXBvdE5vcm1hbHNbaUluZGV4ICsgMV07CisgICAgICAgIHBbaV0ubm9ybWFsWzJdID0gdGVhcG90Tm9ybWFsc1tpSW5kZXggKyAyXTsKKyAgICAgICAgaUluZGV4ICs9IDM7CisgICAgfQorICAgIGdsR2VuQnVmZmVycyggMSwgJnZib18gKTsKKyAgICBnbEJpbmRCdWZmZXIoIEdMX0FSUkFZX0JVRkZFUiwgdmJvXyApOworICAgIGdsQnVmZmVyRGF0YSggR0xfQVJSQVlfQlVGRkVSLCBpU3RyaWRlICogbnVtX3ZlcnRpY2VzXywgcCwgR0xfU1RBVElDX0RSQVcgKTsKKyAgICBnbEJpbmRCdWZmZXIoIEdMX0FSUkFZX0JVRkZFUiwgMCApOworICAgIGRlbGV0ZVtdIHA7CisKKyAgICAvL0luaXQgUHJvamVjdGlvbiBtYXRyaWNlcworICAgIHRlYXBvdF94XyA9IG51bVg7CisgICAgdGVhcG90X3lfID0gbnVtWTsKKyAgICB0ZWFwb3Rfel8gPSBudW1aOworICAgIHZlY19tYXRfbW9kZWxzXy5yZXNlcnZlKCB0ZWFwb3RfeF8gKiB0ZWFwb3RfeV8gKiB0ZWFwb3Rfel8gKTsKKworICAgIFVwZGF0ZVZpZXdwb3J0KCk7CisKKyAgICBjb25zdCBmbG9hdCB0b3RhbF93aWR0aCA9IDUwMC5mOworICAgIGZsb2F0IGdhcF94ID0gdG90YWxfd2lkdGggLyAodGVhcG90X3hfIC0gMSk7CisgICAgZmxvYXQgZ2FwX3kgPSB0b3RhbF93aWR0aCAvICh0ZWFwb3RfeV8gLSAxKTsKKyAgICBmbG9hdCBnYXBfeiA9IHRvdGFsX3dpZHRoIC8gKHRlYXBvdF96XyAtIDEpOworICAgIGZsb2F0IG9mZnNldF94ID0gLXRvdGFsX3dpZHRoIC8gMi5mOworICAgIGZsb2F0IG9mZnNldF95ID0gLXRvdGFsX3dpZHRoIC8gMi5mOworICAgIGZsb2F0IG9mZnNldF96ID0gLXRvdGFsX3dpZHRoIC8gMi5mOworCisgICAgZm9yKCBpbnQzMl90IGlYID0gMDsgaVggPCB0ZWFwb3RfeF87ICsraVggKQorICAgICAgICBmb3IoIGludDMyX3QgaVkgPSAwOyBpWSA8IHRlYXBvdF95XzsgKytpWSApCisgICAgICAgICAgICBmb3IoIGludDMyX3QgaVogPSAwOyBpWiA8IHRlYXBvdF96XzsgKytpWiApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdmVjX21hdF9tb2RlbHNfLnB1c2hfYmFjaygKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ka19oZWxwZXI6Ok1hdDQ6OlRyYW5zbGF0aW9uKCBpWCAqIGdhcF94ICsgb2Zmc2V0X3gsIGlZICogZ2FwX3kgKyBvZmZzZXRfeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaVogKiBnYXBfeiArIG9mZnNldF96ICkgKTsKKyAgICAgICAgICAgICAgICB2ZWNfY29sb3JzXy5wdXNoX2JhY2soCisgICAgICAgICAgICAgICAgICAgICAgICBuZGtfaGVscGVyOjpWZWMzKCByYW5kb20oKSAvIGZsb2F0KCBSQU5EX01BWCAqIDEuMSApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5kb20oKSAvIGZsb2F0KCBSQU5EX01BWCAqIDEuMSApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5kb20oKSAvIGZsb2F0KCBSQU5EX01BWCAqIDEuMSApICkgKTsKKworICAgICAgICAgICAgICAgIGZsb2F0IGZYID0gcmFuZG9tKCkgLyBmbG9hdCggUkFORF9NQVggKSAtIDAuNWY7CisgICAgICAgICAgICAgICAgZmxvYXQgZlkgPSByYW5kb20oKSAvIGZsb2F0KCBSQU5EX01BWCApIC0gMC41ZjsKKyAgICAgICAgICAgICAgICB2ZWNfcm90YXRpb25zXy5wdXNoX2JhY2soIG5ka19oZWxwZXI6OlZlYzIoIGZYICogMC4wNWYsIGZZICogMC4wNWYgKSApOworICAgICAgICAgICAgICAgIHZlY19jdXJyZW50X3JvdGF0aW9uc18ucHVzaF9iYWNrKCBuZGtfaGVscGVyOjpWZWMyKCBmWCAqIE1fUEksIGZZICogTV9QSSApICk7CisgICAgICAgICAgICB9CisKKyAgICBpZiggZ2VvbWV0cnlfaW5zdGFuY2luZ19zdXBwb3J0XyApCisgICAgeworICAgICAgICAvLworICAgICAgICAvL0NyZWF0ZSBwYXJhbWV0ZXIgZGljdGlvbmFyeSBmb3Igc2hhZGVyIHBhdGNoCisgICAgICAgIHN0ZDo6bWFwPHN0ZDo6c3RyaW5nLCBzdGQ6OnN0cmluZz4gcGFyYW07CisgICAgICAgIHBhcmFtW3N0ZDo6c3RyaW5nKCAiJU5VTV9URUFQT1QlIiApXSA9IFRvU3RyaW5nKCB0ZWFwb3RfeF8gKiB0ZWFwb3RfeV8gKiB0ZWFwb3Rfel8gKTsKKyAgICAgICAgcGFyYW1bc3RkOjpzdHJpbmcoICIlTE9DQVRJT05fVkVSVEVYJSIgKV0gPSBUb1N0cmluZyggQVRUUklCX1ZFUlRFWCApOworICAgICAgICBwYXJhbVtzdGQ6OnN0cmluZyggIiVMT0NBVElPTl9OT1JNQUwlIiApXSA9IFRvU3RyaW5nKCBBVFRSSUJfTk9STUFMICk7CisgICAgICAgIGlmKCBhcmJfc3VwcG9ydF8gKQorICAgICAgICAgICAgcGFyYW1bc3RkOjpzdHJpbmcoICIlQVJCJSIgKV0gPSBzdGQ6OnN0cmluZyggIkFSQiIgKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcGFyYW1bc3RkOjpzdHJpbmcoICIlQVJCJSIgKV0gPSBzdGQ6OnN0cmluZyggIiIgKTsKKworICAgICAgICAvL0xvYWQgc2hhZGVyCisgICAgICAgIGJvb2wgYiA9IExvYWRTaGFkZXJzRVMzKCAmc2hhZGVyX3BhcmFtXywgIlNoYWRlcnMvVlNfU2hhZGVyUGxhaW5FUzMudnNoIiwKKyAgICAgICAgICAgICAgICAiU2hhZGVycy9TaGFkZXJQbGFpbkVTMy5mc2giLCBwYXJhbSApOworICAgICAgICBpZiggYiApCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvL0NyZWF0ZSB1bmlmb3JtIGJ1ZmZlcgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIEdMdWludCBiaW5kaW5nUG9pbnQgPSAxOworICAgICAgICAgICAgR0x1aW50IGJsb2NrSW5kZXg7CisgICAgICAgICAgICBibG9ja0luZGV4ID0gZ2xHZXRVbmlmb3JtQmxvY2tJbmRleCggc2hhZGVyX3BhcmFtXy5wcm9ncmFtXywgIlBhcmFtQmxvY2siICk7CisgICAgICAgICAgICBnbFVuaWZvcm1CbG9ja0JpbmRpbmcoIHNoYWRlcl9wYXJhbV8ucHJvZ3JhbV8sIGJsb2NrSW5kZXgsIGJpbmRpbmdQb2ludCApOworCisgICAgICAgICAgICAvL1JldHJpZXZlIGFycmF5IHN0cmlkZSB2YWx1ZQorICAgICAgICAgICAgaW50MzJfdCBpTnVtSW5kaWNlczsKKyAgICAgICAgICAgIGdsR2V0QWN0aXZlVW5pZm9ybUJsb2NraXYoIHNoYWRlcl9wYXJhbV8ucHJvZ3JhbV8sIGJsb2NrSW5kZXgsCisgICAgICAgICAgICAgICAgICAgIEdMX1VOSUZPUk1fQkxPQ0tfQUNUSVZFX1VOSUZPUk1TLCAmaU51bUluZGljZXMgKTsKKyAgICAgICAgICAgIEdMaW50IGlbaU51bUluZGljZXNdOworICAgICAgICAgICAgR0xpbnQgc3RyaWRlW2lOdW1JbmRpY2VzXTsKKyAgICAgICAgICAgIGdsR2V0QWN0aXZlVW5pZm9ybUJsb2NraXYoIHNoYWRlcl9wYXJhbV8ucHJvZ3JhbV8sIGJsb2NrSW5kZXgsCisgICAgICAgICAgICAgICAgICAgIEdMX1VOSUZPUk1fQkxPQ0tfQUNUSVZFX1VOSUZPUk1fSU5ESUNFUywgaSApOworICAgICAgICAgICAgZ2xHZXRBY3RpdmVVbmlmb3Jtc2l2KCBzaGFkZXJfcGFyYW1fLnByb2dyYW1fLCBpTnVtSW5kaWNlcywgKEdMdWludCopIGksCisgICAgICAgICAgICAgICAgICAgIEdMX1VOSUZPUk1fQVJSQVlfU1RSSURFLCBzdHJpZGUgKTsKKworICAgICAgICAgICAgdWJvX21hdHJpeF9zdHJpZGVfID0gc3RyaWRlWzBdIC8gc2l6ZW9mKGZsb2F0KTsKKyAgICAgICAgICAgIHVib192ZWN0b3Jfc3RyaWRlXyA9IHN0cmlkZVsyXSAvIHNpemVvZihmbG9hdCk7CisKKyAgICAgICAgICAgIGdsR2VuQnVmZmVycyggMSwgJnVib18gKTsKKyAgICAgICAgICAgIGdsQmluZEJ1ZmZlciggR0xfVU5JRk9STV9CVUZGRVIsIHVib18gKTsKKyAgICAgICAgICAgIGdsQmluZEJ1ZmZlckJhc2UoIEdMX1VOSUZPUk1fQlVGRkVSLCBiaW5kaW5nUG9pbnQsIHVib18gKTsKKworICAgICAgICAgICAgLy9TdG9yZSBjb2xvciB2YWx1ZSB3aGljaCB3b3VsZG4ndCBiZSB1cGRhdGVkIGV2ZXJ5IGZyYW1lCisgICAgICAgICAgICBpbnQzMl90IGlTaXplID0gdGVhcG90X3hfICogdGVhcG90X3lfICogdGVhcG90X3pfCisgICAgICAgICAgICAgICAgICAgICogKHVib19tYXRyaXhfc3RyaWRlXyArIHVib19tYXRyaXhfc3RyaWRlXyArIHVib192ZWN0b3Jfc3RyaWRlXyk7IC8vTWF0NCArIE1hdDQgKyBWZWMzICsgMSBzdHJpZGUKKyAgICAgICAgICAgIGZsb2F0KiBwQnVmZmVyID0gbmV3IGZsb2F0W2lTaXplXTsKKyAgICAgICAgICAgIGZsb2F0KiBwQ29sb3IgPSBwQnVmZmVyICsgdGVhcG90X3hfICogdGVhcG90X3lfICogdGVhcG90X3pfICogdWJvX21hdHJpeF9zdHJpZGVfICogMjsKKyAgICAgICAgICAgIGZvciggaW50MzJfdCBpID0gMDsgaSA8IHRlYXBvdF94XyAqIHRlYXBvdF95XyAqIHRlYXBvdF96XzsgKytpICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBtZW1jcHkoIHBDb2xvciwgJnZlY19jb2xvcnNfW2ldLCAzICogc2l6ZW9mKGZsb2F0KSApOworICAgICAgICAgICAgICAgIHBDb2xvciArPSB1Ym9fdmVjdG9yX3N0cmlkZV87IC8vQXNzdW1pbmcgc3RkMTQwIGxheW91dCB3aGljaCBpcyA0IERXT1JEIHN0cmlkZSBmb3IgdmVjdG9ycworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBnbEJ1ZmZlckRhdGEoIEdMX1VOSUZPUk1fQlVGRkVSLCBpU2l6ZSAqIHNpemVvZihmbG9hdCksIHBCdWZmZXIsIEdMX0RZTkFNSUNfRFJBVyApOworICAgICAgICAgICAgZGVsZXRlW10gcEJ1ZmZlcjsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgIExPR0koICJTaGFkZXIgY29tcGlsYXRpb24gZmFpbGVkISEgRmFsbHMgYmFjayB0byBFUzIuMCBwYXNzIiApOworICAgICAgICAgICAgLy9UaGlzIGhhcHBlbnMgc29tZSBkZXZpY2VzLgorICAgICAgICAgICAgZ2VvbWV0cnlfaW5zdGFuY2luZ19zdXBwb3J0XyA9IGZhbHNlOworICAgICAgICAgICAgLy9Mb2FkIHNoYWRlciBmb3IgR0xFUzIuMAorICAgICAgICAgICAgTG9hZFNoYWRlcnMoICZzaGFkZXJfcGFyYW1fLCAiU2hhZGVycy9WU19TaGFkZXJQbGFpbi52c2giLCAiU2hhZGVycy9TaGFkZXJQbGFpbi5mc2giICk7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZQorICAgIHsKKyAgICAgICAgLy9Mb2FkIHNoYWRlciBmb3IgR0xFUzIuMAorICAgICAgICBMb2FkU2hhZGVycyggJnNoYWRlcl9wYXJhbV8sICJTaGFkZXJzL1ZTX1NoYWRlclBsYWluLnZzaCIsICJTaGFkZXJzL1NoYWRlclBsYWluLmZzaCIgKTsKKyAgICB9Cit9CisKK3ZvaWQgTW9yZVRlYXBvdHNSZW5kZXJlcjo6VXBkYXRlVmlld3BvcnQoKQoreworICAgIGludDMyX3Qgdmlld3BvcnRbNF07CisgICAgZ2xHZXRJbnRlZ2VydiggR0xfVklFV1BPUlQsIHZpZXdwb3J0ICk7CisgICAgZmxvYXQgZkFzcGVjdCA9IChmbG9hdCkgdmlld3BvcnRbMl0gLyAoZmxvYXQpIHZpZXdwb3J0WzNdOworCisgICAgY29uc3QgZmxvYXQgQ0FNX05FQVIgPSA1LmY7CisgICAgY29uc3QgZmxvYXQgQ0FNX0ZBUiA9IDEwMDAwLmY7CisgICAgYm9vbCBiUm90YXRlID0gZmFsc2U7CisgICAgbWF0X3Byb2plY3Rpb25fID0gbmRrX2hlbHBlcjo6TWF0NDo6UGVyc3BlY3RpdmUoIGZBc3BlY3QsIDEuZiwgQ0FNX05FQVIsIENBTV9GQVIgKTsKK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gVW5sb2FkCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit2b2lkIE1vcmVUZWFwb3RzUmVuZGVyZXI6OlVubG9hZCgpCit7CisgICAgaWYoIHZib18gKQorICAgIHsKKyAgICAgICAgZ2xEZWxldGVCdWZmZXJzKCAxLCAmdmJvXyApOworICAgICAgICB2Ym9fID0gMDsKKyAgICB9CisgICAgaWYoIHVib18gKQorICAgIHsKKyAgICAgICAgZ2xEZWxldGVCdWZmZXJzKCAxLCAmdWJvXyApOworICAgICAgICB1Ym9fID0gMDsKKyAgICB9CisgICAgaWYoIGlib18gKQorICAgIHsKKyAgICAgICAgZ2xEZWxldGVCdWZmZXJzKCAxLCAmaWJvXyApOworICAgICAgICBpYm9fID0gMDsKKyAgICB9CisgICAgaWYoIHNoYWRlcl9wYXJhbV8ucHJvZ3JhbV8gKQorICAgIHsKKyAgICAgICAgZ2xEZWxldGVQcm9ncmFtKCBzaGFkZXJfcGFyYW1fLnByb2dyYW1fICk7CisgICAgICAgIHNoYWRlcl9wYXJhbV8ucHJvZ3JhbV8gPSAwOworICAgIH0KK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gVXBkYXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit2b2lkIE1vcmVUZWFwb3RzUmVuZGVyZXI6OlVwZGF0ZSggZmxvYXQgZlRpbWUgKQoreworICAgIGNvbnN0IGZsb2F0IENBTV9YID0gMC5mOworICAgIGNvbnN0IGZsb2F0IENBTV9ZID0gMC5mOworICAgIGNvbnN0IGZsb2F0IENBTV9aID0gMjAwMC5mOworCisgICAgbWF0X3ZpZXdfID0gbmRrX2hlbHBlcjo6TWF0NDo6TG9va0F0KCBuZGtfaGVscGVyOjpWZWMzKCBDQU1fWCwgQ0FNX1ksIENBTV9aICksCisgICAgICAgICAgICBuZGtfaGVscGVyOjpWZWMzKCAwLmYsIDAuZiwgMC5mICksIG5ka19oZWxwZXI6OlZlYzMoIDAuZiwgMS5mLCAwLmYgKSApOworCisgICAgaWYoIGNhbWVyYV8gKQorICAgIHsKKyAgICAgICAgY2FtZXJhXy0+VXBkYXRlKCk7CisgICAgICAgIG1hdF92aWV3XyA9IGNhbWVyYV8tPkdldFRyYW5zZm9ybU1hdHJpeCgpICogbWF0X3ZpZXdfICogY2FtZXJhXy0+R2V0Um90YXRpb25NYXRyaXgoKTsKKyAgICB9Cit9CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFJlbmRlcgorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQordm9pZCBNb3JlVGVhcG90c1JlbmRlcmVyOjpSZW5kZXIoKQoreworICAgIC8vIEJpbmQgdGhlIFZCTworICAgIGdsQmluZEJ1ZmZlciggR0xfQVJSQVlfQlVGRkVSLCB2Ym9fICk7CisKKyAgICBpbnQzMl90IGlTdHJpZGUgPSBzaXplb2YoVEVBUE9UX1ZFUlRFWCk7CisgICAgLy8gUGFzcyB0aGUgdmVydGV4IGRhdGEKKyAgICBnbFZlcnRleEF0dHJpYlBvaW50ZXIoIEFUVFJJQl9WRVJURVgsIDMsIEdMX0ZMT0FULCBHTF9GQUxTRSwgaVN0cmlkZSwgQlVGRkVSX09GRlNFVCggMCApICk7CisgICAgZ2xFbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSggQVRUUklCX1ZFUlRFWCApOworCisgICAgZ2xWZXJ0ZXhBdHRyaWJQb2ludGVyKCBBVFRSSUJfTk9STUFMLCAzLCBHTF9GTE9BVCwgR0xfRkFMU0UsIGlTdHJpZGUsCisgICAgICAgICAgICBCVUZGRVJfT0ZGU0VUKCAzICogc2l6ZW9mKEdMZmxvYXQpICkgKTsKKyAgICBnbEVuYWJsZVZlcnRleEF0dHJpYkFycmF5KCBBVFRSSUJfTk9STUFMICk7CisKKyAgICAvLyBCaW5kIHRoZSBJQgorICAgIGdsQmluZEJ1ZmZlciggR0xfRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGlib18gKTsKKworICAgIGdsVXNlUHJvZ3JhbSggc2hhZGVyX3BhcmFtXy5wcm9ncmFtXyApOworCisgICAgVEVBUE9UX01BVEVSSUFMUyBtYXRlcmlhbCA9IHsgeyAxLjBmLCAxLjBmLCAxLjBmLCAxMC5mIH0sIHsgMC4xZiwgMC4xZiwgMC4xZiB9LCB9OworCisgICAgLy9VcGRhdGUgdW5pZm9ybXMKKyAgICAvLworICAgIC8vdXNpbmcgZ2xVbmlmb3JtM2Z2IGhlcmUgd2FzIHRyb3VibGVzb21lLi4KKyAgICAvLworICAgIGdsVW5pZm9ybTRmKCBzaGFkZXJfcGFyYW1fLm1hdGVyaWFsX3NwZWN1bGFyXywgbWF0ZXJpYWwuc3BlY3VsYXJfY29sb3JbMF0sCisgICAgICAgICAgICBtYXRlcmlhbC5zcGVjdWxhcl9jb2xvclsxXSwgbWF0ZXJpYWwuc3BlY3VsYXJfY29sb3JbMl0sIG1hdGVyaWFsLnNwZWN1bGFyX2NvbG9yWzNdICk7CisgICAgZ2xVbmlmb3JtM2YoIHNoYWRlcl9wYXJhbV8ubWF0ZXJpYWxfYW1iaWVudF8sIG1hdGVyaWFsLmFtYmllbnRfY29sb3JbMF0sCisgICAgICAgICAgICBtYXRlcmlhbC5hbWJpZW50X2NvbG9yWzFdLCBtYXRlcmlhbC5hbWJpZW50X2NvbG9yWzJdICk7CisKKyAgICBnbFVuaWZvcm0zZiggc2hhZGVyX3BhcmFtXy5saWdodDBfLCAxMDAuZiwgLTIwMC5mLCAtNjAwLmYgKTsKKworICAgIGlmKCBnZW9tZXRyeV9pbnN0YW5jaW5nX3N1cHBvcnRfICkKKyAgICB7CisgICAgICAgIC8vCisgICAgICAgIC8vR2VvbWV0cnkgaW5zdGFuY2luZywgbmV3IGZlYXR1cmUgaW4gR0xFUzMuMAorICAgICAgICAvLworCisgICAgICAgIC8vVXBkYXRlIFVCTworICAgICAgICBnbEJpbmRCdWZmZXIoIEdMX1VOSUZPUk1fQlVGRkVSLCB1Ym9fICk7CisgICAgICAgIGZsb2F0KiBwID0gKGZsb2F0KikgZ2xNYXBCdWZmZXJSYW5nZSggR0xfVU5JRk9STV9CVUZGRVIsIDAsCisgICAgICAgICAgICAgICAgdGVhcG90X3hfICogdGVhcG90X3lfICogdGVhcG90X3pfICogKHVib19tYXRyaXhfc3RyaWRlXyAqIDIpICogc2l6ZW9mKGZsb2F0KSwKKyAgICAgICAgICAgICAgICBHTF9NQVBfV1JJVEVfQklUIHwgR0xfTUFQX0lOVkFMSURBVEVfUkFOR0VfQklUICk7CisgICAgICAgIGZsb2F0KiBwTVZQTWF0ID0gcDsKKyAgICAgICAgZmxvYXQqIHBNVk1hdCA9IHAgKyB0ZWFwb3RfeF8gKiB0ZWFwb3RfeV8gKiB0ZWFwb3Rfel8gKiB1Ym9fbWF0cml4X3N0cmlkZV87CisgICAgICAgIGZvciggaW50MzJfdCBpID0gMDsgaSA8IHRlYXBvdF94XyAqIHRlYXBvdF95XyAqIHRlYXBvdF96XzsgKytpICkKKyAgICAgICAgeworICAgICAgICAgICAgLy9Sb3RhdGlvbgorICAgICAgICAgICAgZmxvYXQgZlgsIGZZOworICAgICAgICAgICAgdmVjX2N1cnJlbnRfcm90YXRpb25zX1tpXSArPSB2ZWNfcm90YXRpb25zX1tpXTsKKyAgICAgICAgICAgIHZlY19jdXJyZW50X3JvdGF0aW9uc19baV0uVmFsdWUoIGZYLCBmWSApOworICAgICAgICAgICAgbmRrX2hlbHBlcjo6TWF0NCBtYXRfcm90YXRpb24gPSBuZGtfaGVscGVyOjpNYXQ0OjpSb3RhdGlvblgoIGZYICkKKyAgICAgICAgICAgICAgICAgICAgKiBuZGtfaGVscGVyOjpNYXQ0OjpSb3RhdGlvblkoIGZZICk7CisKKyAgICAgICAgICAgIC8vIEZlZWQgUHJvamVjdGlvbiBhbmQgTW9kZWwgVmlldyBtYXRyaWNlcyB0byB0aGUgc2hhZGVycworICAgICAgICAgICAgbmRrX2hlbHBlcjo6TWF0NCBtYXRfdiA9IG1hdF92aWV3XyAqIHZlY19tYXRfbW9kZWxzX1tpXSAqIG1hdF9yb3RhdGlvbjsKKyAgICAgICAgICAgIG5ka19oZWxwZXI6Ok1hdDQgbWF0X3ZwID0gbWF0X3Byb2plY3Rpb25fICogbWF0X3Y7CisKKyAgICAgICAgICAgIG1lbWNweSggcE1WUE1hdCwgbWF0X3ZwLlB0cigpLCBzaXplb2YobWF0X3YpICk7CisgICAgICAgICAgICBwTVZQTWF0ICs9IHVib19tYXRyaXhfc3RyaWRlXzsKKworICAgICAgICAgICAgbWVtY3B5KCBwTVZNYXQsIG1hdF92LlB0cigpLCBzaXplb2YobWF0X3YpICk7CisgICAgICAgICAgICBwTVZNYXQgKz0gdWJvX21hdHJpeF9zdHJpZGVfOworICAgICAgICB9CisgICAgICAgIGdsVW5tYXBCdWZmZXIoIEdMX1VOSUZPUk1fQlVGRkVSICk7CisKKyAgICAgICAgLy9JbnN0YW5jZWQgcmVuZGVyaW5nCisgICAgICAgIGdsRHJhd0VsZW1lbnRzSW5zdGFuY2VkKCBHTF9UUklBTkdMRVMsIG51bV9pbmRpY2VzXywgR0xfVU5TSUdORURfU0hPUlQsIEJVRkZFUl9PRkZTRVQoMCksCisgICAgICAgICAgICAgICAgdGVhcG90X3hfICogdGVhcG90X3lfICogdGVhcG90X3pfICk7CisKKyAgICB9CisgICAgZWxzZQorICAgIHsKKyAgICAgICAgLy9SZWd1bGFyIHJlbmRlcmluZyBwYXNzCisgICAgICAgIGZvciggaW50MzJfdCBpID0gMDsgaSA8IHRlYXBvdF94XyAqIHRlYXBvdF95XyAqIHRlYXBvdF96XzsgKytpICkKKyAgICAgICAgeworICAgICAgICAgICAgLy9TZXQgZGlmZnVzZQorICAgICAgICAgICAgZmxvYXQgeCwgeSwgejsKKyAgICAgICAgICAgIHZlY19jb2xvcnNfW2ldLlZhbHVlKCB4LCB5LCB6ICk7CisgICAgICAgICAgICBnbFVuaWZvcm00Ziggc2hhZGVyX3BhcmFtXy5tYXRlcmlhbF9kaWZmdXNlXywgeCwgeSwgeiwgMS5mICk7CisKKyAgICAgICAgICAgIC8vUm90YXRpb24KKyAgICAgICAgICAgIHZlY19jdXJyZW50X3JvdGF0aW9uc19baV0gKz0gdmVjX3JvdGF0aW9uc19baV07CisgICAgICAgICAgICB2ZWNfY3VycmVudF9yb3RhdGlvbnNfW2ldLlZhbHVlKCB4LCB5ICk7CisgICAgICAgICAgICBuZGtfaGVscGVyOjpNYXQ0IG1hdF9yb3RhdGlvbiA9IG5ka19oZWxwZXI6Ok1hdDQ6OlJvdGF0aW9uWCggeCApCisgICAgICAgICAgICAgICAgICAgICogbmRrX2hlbHBlcjo6TWF0NDo6Um90YXRpb25ZKCB5ICk7CisKKyAgICAgICAgICAgIC8vIEZlZWQgUHJvamVjdGlvbiBhbmQgTW9kZWwgVmlldyBtYXRyaWNlcyB0byB0aGUgc2hhZGVycworICAgICAgICAgICAgbmRrX2hlbHBlcjo6TWF0NCBtYXRfdiA9IG1hdF92aWV3XyAqIHZlY19tYXRfbW9kZWxzX1tpXSAqIG1hdF9yb3RhdGlvbjsKKyAgICAgICAgICAgIG5ka19oZWxwZXI6Ok1hdDQgbWF0X3ZwID0gbWF0X3Byb2plY3Rpb25fICogbWF0X3Y7CisgICAgICAgICAgICBnbFVuaWZvcm1NYXRyaXg0ZnYoIHNoYWRlcl9wYXJhbV8ubWF0cml4X3Byb2plY3Rpb25fLCAxLCBHTF9GQUxTRSwgbWF0X3ZwLlB0cigpICk7CisgICAgICAgICAgICBnbFVuaWZvcm1NYXRyaXg0ZnYoIHNoYWRlcl9wYXJhbV8ubWF0cml4X3ZpZXdfLCAxLCBHTF9GQUxTRSwgbWF0X3YuUHRyKCkgKTsKKworICAgICAgICAgICAgZ2xEcmF3RWxlbWVudHMoIEdMX1RSSUFOR0xFUywgbnVtX2luZGljZXNfLCBHTF9VTlNJR05FRF9TSE9SVCwgQlVGRkVSX09GRlNFVCgwKSApOworCisgICAgICAgIH0KKyAgICB9CisKKyAgICBnbEJpbmRCdWZmZXIoIEdMX0FSUkFZX0JVRkZFUiwgMCApOworICAgIGdsQmluZEJ1ZmZlciggR0xfRUxFTUVOVF9BUlJBWV9CVUZGRVIsIDAgKTsKK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gTG9hZFNoYWRlcnMKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2Jvb2wgTW9yZVRlYXBvdHNSZW5kZXJlcjo6TG9hZFNoYWRlcnMoIFNIQURFUl9QQVJBTVMqIHBhcmFtcywKKyAgICAgICAgY29uc3QgY2hhciogc3RyVnNoLAorICAgICAgICBjb25zdCBjaGFyKiBzdHJGc2ggKQoreworICAgIC8vCisgICAgLy9TaGFkZXIgbG9hZCBmb3IgR0xFUzIKKyAgICAvL0luIEdMRVMyLjAsIHNoYWRlciBhdHRyaWJ1dGUgbG9jYXRpb25zIG5lZWQgdG8gYmUgZXhwbGljaXRseSBzcGVjaWZpZWQgYmVmb3JlIGxpbmtpbmcKKyAgICAvLworICAgIEdMdWludCBwcm9ncmFtOworICAgIEdMdWludCB2ZXJ0U2hhZGVyLCBmcmFnU2hhZGVyOworICAgIGNoYXIgKnZlcnRTaGFkZXJQYXRobmFtZSwgKmZyYWdTaGFkZXJQYXRobmFtZTsKKworICAgIC8vIENyZWF0ZSBzaGFkZXIgcHJvZ3JhbQorICAgIHByb2dyYW0gPSBnbENyZWF0ZVByb2dyYW0oKTsKKyAgICBMT0dJKCAiQ3JlYXRlZCBTaGFkZXIgJWQiLCBwcm9ncmFtICk7CisKKyAgICAvLyBDcmVhdGUgYW5kIGNvbXBpbGUgdmVydGV4IHNoYWRlcgorICAgIGlmKCAhbmRrX2hlbHBlcjo6c2hhZGVyOjpDb21waWxlU2hhZGVyKCAmdmVydFNoYWRlciwgR0xfVkVSVEVYX1NIQURFUiwgc3RyVnNoICkgKQorICAgIHsKKyAgICAgICAgTE9HSSggIkZhaWxlZCB0byBjb21waWxlIHZlcnRleCBzaGFkZXIiICk7CisgICAgICAgIGdsRGVsZXRlUHJvZ3JhbSggcHJvZ3JhbSApOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLy8gQ3JlYXRlIGFuZCBjb21waWxlIGZyYWdtZW50IHNoYWRlcgorICAgIGlmKCAhbmRrX2hlbHBlcjo6c2hhZGVyOjpDb21waWxlU2hhZGVyKCAmZnJhZ1NoYWRlciwgR0xfRlJBR01FTlRfU0hBREVSLCBzdHJGc2ggKSApCisgICAgeworICAgICAgICBMT0dJKCAiRmFpbGVkIHRvIGNvbXBpbGUgZnJhZ21lbnQgc2hhZGVyIiApOworICAgICAgICBnbERlbGV0ZVByb2dyYW0oIHByb2dyYW0gKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8vIEF0dGFjaCB2ZXJ0ZXggc2hhZGVyIHRvIHByb2dyYW0KKyAgICBnbEF0dGFjaFNoYWRlciggcHJvZ3JhbSwgdmVydFNoYWRlciApOworCisgICAgLy8gQXR0YWNoIGZyYWdtZW50IHNoYWRlciB0byBwcm9ncmFtCisgICAgZ2xBdHRhY2hTaGFkZXIoIHByb2dyYW0sIGZyYWdTaGFkZXIgKTsKKworICAgIC8vIEJpbmQgYXR0cmlidXRlIGxvY2F0aW9ucworICAgIC8vIHRoaXMgbmVlZHMgdG8gYmUgZG9uZSBwcmlvciB0byBsaW5raW5nCisgICAgZ2xCaW5kQXR0cmliTG9jYXRpb24oIHByb2dyYW0sIEFUVFJJQl9WRVJURVgsICJteVZlcnRleCIgKTsKKyAgICBnbEJpbmRBdHRyaWJMb2NhdGlvbiggcHJvZ3JhbSwgQVRUUklCX05PUk1BTCwgIm15Tm9ybWFsIiApOworCisgICAgLy8gTGluayBwcm9ncmFtCisgICAgaWYoICFuZGtfaGVscGVyOjpzaGFkZXI6OkxpbmtQcm9ncmFtKCBwcm9ncmFtICkgKQorICAgIHsKKyAgICAgICAgTE9HSSggIkZhaWxlZCB0byBsaW5rIHByb2dyYW06ICVkIiwgcHJvZ3JhbSApOworCisgICAgICAgIGlmKCB2ZXJ0U2hhZGVyICkKKyAgICAgICAgeworICAgICAgICAgICAgZ2xEZWxldGVTaGFkZXIoIHZlcnRTaGFkZXIgKTsKKyAgICAgICAgICAgIHZlcnRTaGFkZXIgPSAwOworICAgICAgICB9CisgICAgICAgIGlmKCBmcmFnU2hhZGVyICkKKyAgICAgICAgeworICAgICAgICAgICAgZ2xEZWxldGVTaGFkZXIoIGZyYWdTaGFkZXIgKTsKKyAgICAgICAgICAgIGZyYWdTaGFkZXIgPSAwOworICAgICAgICB9CisgICAgICAgIGlmKCBwcm9ncmFtICkKKyAgICAgICAgeworICAgICAgICAgICAgZ2xEZWxldGVQcm9ncmFtKCBwcm9ncmFtICk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8vIEdldCB1bmlmb3JtIGxvY2F0aW9ucworICAgIHBhcmFtcy0+bWF0cml4X3Byb2plY3Rpb25fID0gZ2xHZXRVbmlmb3JtTG9jYXRpb24oIHByb2dyYW0sICJ1UE1hdHJpeCIgKTsKKyAgICBwYXJhbXMtPm1hdHJpeF92aWV3XyA9IGdsR2V0VW5pZm9ybUxvY2F0aW9uKCBwcm9ncmFtLCAidU1WTWF0cml4IiApOworCisgICAgcGFyYW1zLT5saWdodDBfID0gZ2xHZXRVbmlmb3JtTG9jYXRpb24oIHByb2dyYW0sICJ2TGlnaHQwIiApOworICAgIHBhcmFtcy0+bWF0ZXJpYWxfZGlmZnVzZV8gPSBnbEdldFVuaWZvcm1Mb2NhdGlvbiggcHJvZ3JhbSwgInZNYXRlcmlhbERpZmZ1c2UiICk7CisgICAgcGFyYW1zLT5tYXRlcmlhbF9hbWJpZW50XyA9IGdsR2V0VW5pZm9ybUxvY2F0aW9uKCBwcm9ncmFtLCAidk1hdGVyaWFsQW1iaWVudCIgKTsKKyAgICBwYXJhbXMtPm1hdGVyaWFsX3NwZWN1bGFyXyA9IGdsR2V0VW5pZm9ybUxvY2F0aW9uKCBwcm9ncmFtLCAidk1hdGVyaWFsU3BlY3VsYXIiICk7CisKKyAgICAvLyBSZWxlYXNlIHZlcnRleCBhbmQgZnJhZ21lbnQgc2hhZGVycworICAgIGlmKCB2ZXJ0U2hhZGVyICkKKyAgICAgICAgZ2xEZWxldGVTaGFkZXIoIHZlcnRTaGFkZXIgKTsKKyAgICBpZiggZnJhZ1NoYWRlciApCisgICAgICAgIGdsRGVsZXRlU2hhZGVyKCBmcmFnU2hhZGVyICk7CisKKyAgICBwYXJhbXMtPnByb2dyYW1fID0gcHJvZ3JhbTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBNb3JlVGVhcG90c1JlbmRlcmVyOjpMb2FkU2hhZGVyc0VTMyggU0hBREVSX1BBUkFNUyogcGFyYW1zLAorICAgICAgICBjb25zdCBjaGFyKiBzdHJWc2gsCisgICAgICAgIGNvbnN0IGNoYXIqIHN0ckZzaCwKKyAgICAgICAgc3RkOjptYXA8c3RkOjpzdHJpbmcsIHN0ZDo6c3RyaW5nPiZzaGFkZXJQYXJhbXMgKQoreworICAgIC8vCisgICAgLy9TaGFkZXIgbG9hZCBmb3IgR0xFUzMKKyAgICAvL0luIEdMRVMzLjAsIHNoYWRlciBhdHRyaWJ1dGUgaW5kZXggY2FuIGJlIGRlc2NyaWJlZCBpbiBhIHNoYWRlciBjb2RlIGRpcmVjdGx5IHdpdGggbGF5b3V0KCkgYXR0cmlidXRlCisgICAgLy8KKyAgICBHTHVpbnQgcHJvZ3JhbTsKKyAgICBHTHVpbnQgdmVydFNoYWRlciwgZnJhZ1NoYWRlcjsKKyAgICBjaGFyICp2ZXJ0U2hhZGVyUGF0aG5hbWUsICpmcmFnU2hhZGVyUGF0aG5hbWU7CisKKyAgICAvLyBDcmVhdGUgc2hhZGVyIHByb2dyYW0KKyAgICBwcm9ncmFtID0gZ2xDcmVhdGVQcm9ncmFtKCk7CisgICAgTE9HSSggIkNyZWF0ZWQgU2hhZGVyICVkIiwgcHJvZ3JhbSApOworCisgICAgLy8gQ3JlYXRlIGFuZCBjb21waWxlIHZlcnRleCBzaGFkZXIKKyAgICBpZiggIW5ka19oZWxwZXI6OnNoYWRlcjo6Q29tcGlsZVNoYWRlciggJnZlcnRTaGFkZXIsIEdMX1ZFUlRFWF9TSEFERVIsIHN0clZzaCwgc2hhZGVyUGFyYW1zICkgKQorICAgIHsKKyAgICAgICAgTE9HSSggIkZhaWxlZCB0byBjb21waWxlIHZlcnRleCBzaGFkZXIiICk7CisgICAgICAgIGdsRGVsZXRlUHJvZ3JhbSggcHJvZ3JhbSApOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLy8gQ3JlYXRlIGFuZCBjb21waWxlIGZyYWdtZW50IHNoYWRlcgorICAgIGlmKCAhbmRrX2hlbHBlcjo6c2hhZGVyOjpDb21waWxlU2hhZGVyKCAmZnJhZ1NoYWRlciwgR0xfRlJBR01FTlRfU0hBREVSLCBzdHJGc2gsCisgICAgICAgICAgICBzaGFkZXJQYXJhbXMgKSApCisgICAgeworICAgICAgICBMT0dJKCAiRmFpbGVkIHRvIGNvbXBpbGUgZnJhZ21lbnQgc2hhZGVyIiApOworICAgICAgICBnbERlbGV0ZVByb2dyYW0oIHByb2dyYW0gKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8vIEF0dGFjaCB2ZXJ0ZXggc2hhZGVyIHRvIHByb2dyYW0KKyAgICBnbEF0dGFjaFNoYWRlciggcHJvZ3JhbSwgdmVydFNoYWRlciApOworCisgICAgLy8gQXR0YWNoIGZyYWdtZW50IHNoYWRlciB0byBwcm9ncmFtCisgICAgZ2xBdHRhY2hTaGFkZXIoIHByb2dyYW0sIGZyYWdTaGFkZXIgKTsKKworICAgIC8vIExpbmsgcHJvZ3JhbQorICAgIGlmKCAhbmRrX2hlbHBlcjo6c2hhZGVyOjpMaW5rUHJvZ3JhbSggcHJvZ3JhbSApICkKKyAgICB7CisgICAgICAgIExPR0koICJGYWlsZWQgdG8gbGluayBwcm9ncmFtOiAlZCIsIHByb2dyYW0gKTsKKworICAgICAgICBpZiggdmVydFNoYWRlciApCisgICAgICAgIHsKKyAgICAgICAgICAgIGdsRGVsZXRlU2hhZGVyKCB2ZXJ0U2hhZGVyICk7CisgICAgICAgICAgICB2ZXJ0U2hhZGVyID0gMDsKKyAgICAgICAgfQorICAgICAgICBpZiggZnJhZ1NoYWRlciApCisgICAgICAgIHsKKyAgICAgICAgICAgIGdsRGVsZXRlU2hhZGVyKCBmcmFnU2hhZGVyICk7CisgICAgICAgICAgICBmcmFnU2hhZGVyID0gMDsKKyAgICAgICAgfQorICAgICAgICBpZiggcHJvZ3JhbSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGdsRGVsZXRlUHJvZ3JhbSggcHJvZ3JhbSApOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8vIEdldCB1bmlmb3JtIGxvY2F0aW9ucworICAgIHBhcmFtcy0+bGlnaHQwXyA9IGdsR2V0VW5pZm9ybUxvY2F0aW9uKCBwcm9ncmFtLCAidkxpZ2h0MCIgKTsKKyAgICBwYXJhbXMtPm1hdGVyaWFsX2FtYmllbnRfID0gZ2xHZXRVbmlmb3JtTG9jYXRpb24oIHByb2dyYW0sICJ2TWF0ZXJpYWxBbWJpZW50IiApOworICAgIHBhcmFtcy0+bWF0ZXJpYWxfc3BlY3VsYXJfID0gZ2xHZXRVbmlmb3JtTG9jYXRpb24oIHByb2dyYW0sICJ2TWF0ZXJpYWxTcGVjdWxhciIgKTsKKworICAgIC8vIFJlbGVhc2UgdmVydGV4IGFuZCBmcmFnbWVudCBzaGFkZXJzCisgICAgaWYoIHZlcnRTaGFkZXIgKQorICAgICAgICBnbERlbGV0ZVNoYWRlciggdmVydFNoYWRlciApOworICAgIGlmKCBmcmFnU2hhZGVyICkKKyAgICAgICAgZ2xEZWxldGVTaGFkZXIoIGZyYWdTaGFkZXIgKTsKKworICAgIHBhcmFtcy0+cHJvZ3JhbV8gPSBwcm9ncmFtOworICAgIHJldHVybiB0cnVlOworfQorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBCaW5kCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitib29sIE1vcmVUZWFwb3RzUmVuZGVyZXI6OkJpbmQoIG5ka19oZWxwZXI6OlRhcENhbWVyYSogY2FtZXJhICkKK3sKKyAgICBjYW1lcmFfID0gY2FtZXJhOworICAgIHJldHVybiB0cnVlOworfQorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBIZWxwZXIgZnVuY3Rpb25zCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzdGQ6OnN0cmluZyBNb3JlVGVhcG90c1JlbmRlcmVyOjpUb1N0cmluZyggY29uc3QgaW50MzJfdCBpICkKK3sKKyAgICBjaGFyIHN0cls2NF07CisgICAgc25wcmludGYoIHN0ciwgc2l6ZW9mKHN0ciksICIlZCIsIGkgKTsKKyAgICByZXR1cm4gc3RkOjpzdHJpbmcoIHN0ciApOworfQorCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvc2FtcGxlcy9Nb3JlVGVhcG90cy9qbmkvTW9yZVRlYXBvdHNSZW5kZXJlci5oIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L3NhbXBsZXMvTW9yZVRlYXBvdHMvam5pL01vcmVUZWFwb3RzUmVuZGVyZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDZkODczCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L3NhbXBsZXMvTW9yZVRlYXBvdHMvam5pL01vcmVUZWFwb3RzUmVuZGVyZXIuaApAQCAtMCwwICsxLDEyNiBAQAorLyoKKyAqIENvcHlyaWdodCAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gTW9yZVRlYXBvdHNSZW5kZXJlci5oCisvLyBSZW5kZXJlciBmb3IgdGVhcG90cworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorI2lmbmRlZiBfTW9yZVRlYXBvdHNSZW5kZXJlcl9ICisjZGVmaW5lIF9Nb3JlVGVhcG90c1JlbmRlcmVyX0gKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gSW5jbHVkZSBmaWxlcworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorI2luY2x1ZGUgPGpuaS5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisKKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRlIDxFR0wvZWdsLmg+CisjaW5jbHVkZSA8R0xFUy9nbC5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9zZW5zb3IuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorI2luY2x1ZGUgPGFuZHJvaWRfbmF0aXZlX2FwcF9nbHVlLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9uYXRpdmVfd2luZG93X2puaS5oPgorI2luY2x1ZGUgPGNwdS1mZWF0dXJlcy5oPgorCisjZGVmaW5lIENMQVNTX05BTUUgImFuZHJvaWQvYXBwL05hdGl2ZUFjdGl2aXR5IgorI2RlZmluZSBBUFBMSUNBVElPTl9DTEFTU19OQU1FICJjb20vc2FtcGxlL21vcmV0ZWFwb3Rzcy9Nb3JlVGVhcG90c0FwcGxpY2F0aW9uIgorCisjaW5jbHVkZSAiTkRLSGVscGVyLmgiCisKKyNkZWZpbmUgQlVGRkVSX09GRlNFVChpKSAoKGNoYXIgKilOVUxMICsgKGkpKQorCitzdHJ1Y3QgVEVBUE9UX1ZFUlRFWAoreworICAgIGZsb2F0IHBvc1szXTsKKyAgICBmbG9hdCBub3JtYWxbM107Cit9OworCitlbnVtIFNIQURFUl9BVFRSSUJVVEVTCit7CisgICAgQVRUUklCX1ZFUlRFWCwgQVRUUklCX05PUk1BTCwgQVRUUklCX0NPTE9SLCBBVFRSSUJfVVYKK307CisKK3N0cnVjdCBTSEFERVJfUEFSQU1TCit7CisgICAgR0x1aW50IHByb2dyYW1fOworICAgIEdMdWludCBsaWdodDBfOworICAgIEdMdWludCBtYXRlcmlhbF9kaWZmdXNlXzsKKyAgICBHTHVpbnQgbWF0ZXJpYWxfYW1iaWVudF87CisgICAgR0x1aW50IG1hdGVyaWFsX3NwZWN1bGFyXzsKKworICAgIEdMdWludCBtYXRyaXhfcHJvamVjdGlvbl87CisgICAgR0x1aW50IG1hdHJpeF92aWV3XzsKK307CisKK3N0cnVjdCBURUFQT1RfTUFURVJJQUxTCit7CisgICAgZmxvYXQgc3BlY3VsYXJfY29sb3JbNF07CisgICAgZmxvYXQgYW1iaWVudF9jb2xvclszXTsKK307CisKK2NsYXNzIE1vcmVUZWFwb3RzUmVuZGVyZXIKK3sKKyAgICBpbnQzMl90IG51bV9pbmRpY2VzXzsKKyAgICBpbnQzMl90IG51bV92ZXJ0aWNlc187CisgICAgR0x1aW50IGlib187CisgICAgR0x1aW50IHZib187CisgICAgR0x1aW50IHVib187CisKKyAgICBTSEFERVJfUEFSQU1TIHNoYWRlcl9wYXJhbV87CisgICAgYm9vbCBMb2FkU2hhZGVycyggU0hBREVSX1BBUkFNUyogcGFyYW1zLAorICAgICAgICAgICAgY29uc3QgY2hhciogc3RyVnNoLAorICAgICAgICAgICAgY29uc3QgY2hhciogc3RyRnNoICk7CisgICAgYm9vbCBMb2FkU2hhZGVyc0VTMyggU0hBREVSX1BBUkFNUyogcGFyYW1zLAorICAgICAgICAgICAgY29uc3QgY2hhciogc3RyVnNoLAorICAgICAgICAgICAgY29uc3QgY2hhciogc3RyRnNoLAorICAgICAgICAgICAgc3RkOjptYXA8c3RkOjpzdHJpbmcsIHN0ZDo6c3RyaW5nPiZzaGFkZXJQYXJhbWV0ZXJzICk7CisKKyAgICBuZGtfaGVscGVyOjpNYXQ0IG1hdF9wcm9qZWN0aW9uXzsKKyAgICBuZGtfaGVscGVyOjpNYXQ0IG1hdF92aWV3XzsKKyAgICBzdGQ6OnZlY3RvcjxuZGtfaGVscGVyOjpNYXQ0PiB2ZWNfbWF0X21vZGVsc187CisgICAgc3RkOjp2ZWN0b3I8bmRrX2hlbHBlcjo6VmVjMz4gdmVjX2NvbG9yc187CisgICAgc3RkOjp2ZWN0b3I8bmRrX2hlbHBlcjo6VmVjMj4gdmVjX3JvdGF0aW9uc187CisgICAgc3RkOjp2ZWN0b3I8bmRrX2hlbHBlcjo6VmVjMj4gdmVjX2N1cnJlbnRfcm90YXRpb25zXzsKKworICAgIG5ka19oZWxwZXI6OlRhcENhbWVyYSogY2FtZXJhXzsKKworICAgIGludDMyX3QgdGVhcG90X3hfOworICAgIGludDMyX3QgdGVhcG90X3lfOworICAgIGludDMyX3QgdGVhcG90X3pfOworICAgIGludDMyX3QgdWJvX21hdHJpeF9zdHJpZGVfOworICAgIGludDMyX3QgdWJvX3ZlY3Rvcl9zdHJpZGVfOworICAgIGJvb2wgZ2VvbWV0cnlfaW5zdGFuY2luZ19zdXBwb3J0XzsKKyAgICBib29sIGFyYl9zdXBwb3J0XzsKKworICAgIHN0ZDo6c3RyaW5nIFRvU3RyaW5nKCBjb25zdCBpbnQzMl90IGkgKTsKK3B1YmxpYzoKKyAgICBNb3JlVGVhcG90c1JlbmRlcmVyKCk7CisgICAgdmlydHVhbCB+TW9yZVRlYXBvdHNSZW5kZXJlcigpOworICAgIHZvaWQgSW5pdCggY29uc3QgaW50MzJfdCBudW1YLAorICAgICAgICAgICAgY29uc3QgaW50MzJfdCBudW1ZLAorICAgICAgICAgICAgY29uc3QgaW50MzJfdCBudW1aICk7CisgICAgdm9pZCBSZW5kZXIoKTsKKyAgICB2b2lkIFVwZGF0ZSggZmxvYXQgZFRpbWUgKTsKKyAgICBib29sIEJpbmQoIG5ka19oZWxwZXI6OlRhcENhbWVyYSogY2FtZXJhICk7CisgICAgdm9pZCBVbmxvYWQoKTsKKyAgICB2b2lkIFVwZGF0ZVZpZXdwb3J0KCk7Cit9OworCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L3NhbXBsZXMvTW9yZVRlYXBvdHMvam5pL3RlYXBvdC5pbmwgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvc2FtcGxlcy9Nb3JlVGVhcG90cy9qbmkvdGVhcG90LmlubApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZjQyYjg4Ci0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L3NhbXBsZXMvTW9yZVRlYXBvdHMvam5pL3RlYXBvdC5pbmwKQEAgLTAsMCArMSwyMDU3IEBACisvKgorICogQ29weXJpZ2h0IDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisvLworLy8gVGVhcG90LmlubAorLy8gRGVyaXZlZCBmcm9tIFdlYkdMIHNhbXBsZQorLy8gaHR0cHM6Ly9naXRodWIuY29tL0tocm9ub3NHcm91cC9XZWJHTC9ibG9iL21hc3Rlci9zZGsvZGVtb3MvZ29vZ2xlL3NoaW55LXRlYXBvdC90ZWFwb3Qtc3RyZWFtcy5qcworLy8KKworZmxvYXQgdGVhcG90UG9zaXRpb25zW10gPSB7IDE3LjgzNDg5OTkwMjM0Mzc1LCAwLCAzMC41NzM5OTk0MDQ5MDcyMjcsIDE2LjQ1MjY5OTY2MTI1NDg4MywgLTcuMDAwMTc5NzY3NjA4NjQzLCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIDE2LjIyMzEwMDY2MjIzMTQ0NSwgLTYuOTAyNTIwMTc5NzQ4NTM1LCAzMS41MTQ2MDA3NTM3ODQxOCwgMTcuNTg2MDAwNDQyNTA0ODgzLCAwLCAzMS41MTQ2MDA3NTM3ODQxOCwKKyAgICAgICAgMTYuNDg5NDAwODYzNjQ3NDYsIC03LjAxNTgxMDAxMjgxNzM4MywgMzEuODI4MTAwMjA0NDY3NzczLCAxNy44NzQ3MDA1NDYyNjQ2NSwgMCwgMzEuODI4MTAwMjA0NDY3NzczLAorICAgICAgICAxNy4wMzEwOTkzMTk0NTgwMDgsIC03LjI0NjI4MDE5MzMyODg1NywgMzEuNTE0NjAwNzUzNzg0MTgsIDE4LjQ2MTkwMDcxMTA1OTU3LCAwLCAzMS41MTQ2MDA3NTM3ODQxOCwKKyAgICAgICAgMTcuNjI3Nzk5OTg3NzkyOTcsIC03LjUwMDE5OTc5NDc2OTI4NywgMzAuNTczOTk5NDA0OTA3MjI3LCAxOS4xMDg4MDA4ODgwNjE1MjMsIDAsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgMTIuNjYyNjk5Njk5NDAxODU1LCAtMTIuNjYyNjk5Njk5NDAxODU1LCAzMC41NzM5OTk0MDQ5MDcyMjcsIDEyLjQ4NjEwMDE5NjgzODM3OSwgLTEyLjQ4NjEwMDE5NjgzODM3OSwgMzEuNTE0NjAwNzUzNzg0MTgsCisgICAgICAgIDEyLjY5MDk5OTk4NDc0MTIxMSwgLTEyLjY5MDk5OTk4NDc0MTIxMSwgMzEuODI4MTAwMjA0NDY3NzczLCAxMy4xMDc4OTk2NjU4MzI1MiwgLTEzLjEwNzg5OTY2NTgzMjUyLCAzMS41MTQ2MDA3NTM3ODQxOCwKKyAgICAgICAgMTMuNTY3MTk5NzA3MDMxMjUsIC0xMy41NjcxOTk3MDcwMzEyNSwgMzAuNTczOTk5NDA0OTA3MjI3LCA3LjAwMDE3OTc2NzYwODY0MywgLTE2LjQ1MjY5OTY2MTI1NDg4MywgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICA2LjkwMjUyMDE3OTc0ODUzNSwgLTE2LjIyMzEwMDY2MjIzMTQ0NSwgMzEuNTE0NjAwNzUzNzg0MTgsIDcuMDE1ODEwMDEyODE3MzgzLCAtMTYuNDg5NDAwODYzNjQ3NDYsIDMxLjgyODEwMDIwNDQ2Nzc3MywKKyAgICAgICAgNy4yNDYyODAxOTMzMjg4NTcsIC0xNy4wMzEwOTkzMTk0NTgwMDgsIDMxLjUxNDYwMDc1Mzc4NDE4LCA3LjUwMDE5OTc5NDc2OTI4NywgLTE3LjYyNzc5OTk4Nzc5Mjk3LCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIDAsIC0xNy44MzQ4OTk5MDIzNDM3NSwgMzAuNTczOTk5NDA0OTA3MjI3LCAwLCAtMTcuNTg2MDAwNDQyNTA0ODgzLCAzMS41MTQ2MDA3NTM3ODQxOCwKKyAgICAgICAgMCwgLTE3Ljg3NDcwMDU0NjI2NDY1LCAzMS44MjgxMDAyMDQ0Njc3NzMsIDAsIC0xOC40NjE5MDA3MTEwNTk1NywgMzEuNTE0NjAwNzUzNzg0MTgsCisgICAgICAgIDAsIC0xOS4xMDg4MDA4ODgwNjE1MjMsIDMwLjU3Mzk5OTQwNDkwNzIyNywgMCwgLTE3LjgzNDg5OTkwMjM0Mzc1LCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIC03LjQ4Mzg3MDAyOTQ0OTQ2MywgLTE2LjQ1MjY5OTY2MTI1NDg4MywgMzAuNTczOTk5NDA0OTA3MjI3LCAtNy4xMDY1Nzk3ODA1Nzg2MTMsIC0xNi4yMjMxMDA2NjIyMzE0NDUsIDMxLjUxNDYwMDc1Mzc4NDE4LAorICAgICAgICAwLCAtMTcuNTg2MDAwNDQyNTA0ODgzLCAzMS41MTQ2MDA3NTM3ODQxOCwgLTcuMDc2MjcwMTAzNDU0NTksIC0xNi40ODk0MDA4NjM2NDc0NiwgMzEuODI4MTAwMjA0NDY3NzczLAorICAgICAgICAwLCAtMTcuODc0NzAwNTQ2MjY0NjUsIDMxLjgyODEwMDIwNDQ2Nzc3MywgLTcuMjUzODM5OTY5NjM1MDEsIC0xNy4wMzEwOTkzMTk0NTgwMDgsIDMxLjUxNDYwMDc1Mzc4NDE4LAorICAgICAgICAwLCAtMTguNDYxOTAwNzExMDU5NTcsIDMxLjUxNDYwMDc1Mzc4NDE4LCAtNy41MDAxOTk3OTQ3NjkyODcsIC0xNy42Mjc3OTk5ODc3OTI5NywgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICAwLCAtMTkuMTA4ODAwODg4MDYxNTIzLCAzMC41NzM5OTk0MDQ5MDcyMjcsIC0xMy4wOTI3MDAwMDQ1Nzc2MzcsIC0xMi42NjI2OTk2OTk0MDE4NTUsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgLTEyLjY2NzQ5OTU0MjIzNjMyOCwgLTEyLjQ4NjEwMDE5NjgzODM3OSwgMzEuNTE0NjAwNzUzNzg0MTgsIC0xMi43NDQ3OTk2MTM5NTI2MzcsIC0xMi42OTA5OTk5ODQ3NDEyMTEsIDMxLjgyODEwMDIwNDQ2Nzc3MywKKyAgICAgICAgLTEzLjExNDYwMDE4MTU3OTU5LCAtMTMuMTA3ODk5NjY1ODMyNTIsIDMxLjUxNDYwMDc1Mzc4NDE4LCAtMTMuNTY3MTk5NzA3MDMxMjUsIC0xMy41NjcxOTk3MDcwMzEyNSwgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICAtMTYuNjEzODk5MjMwOTU3MDMsIC03LjAwMDE3OTc2NzYwODY0MywgMzAuNTczOTk5NDA0OTA3MjI3LCAtMTYuMjkxMDk5NTQ4MzM5ODQ0LCAtNi45MDI1MjAxNzk3NDg1MzUsIDMxLjUxNDYwMDc1Mzc4NDE4LAorICAgICAgICAtMTYuNTA5NTAwNTAzNTQwMDQsIC03LjAxNTgxMDAxMjgxNzM4MywgMzEuODI4MTAwMjA0NDY3NzczLCAtMTcuMDMzNTk5ODUzNTE1NjI1LCAtNy4yNDYyODAxOTMzMjg4NTcsIDMxLjUxNDYwMDc1Mzc4NDE4LAorICAgICAgICAtMTcuNjI3Nzk5OTg3NzkyOTcsIC03LjUwMDE5OTc5NDc2OTI4NywgMzAuNTczOTk5NDA0OTA3MjI3LCAtMTcuODM0ODk5OTAyMzQzNzUsIDAsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgLTE3LjU4NjAwMDQ0MjUwNDg4MywgMCwgMzEuNTE0NjAwNzUzNzg0MTgsIC0xNy44NzQ3MDA1NDYyNjQ2NSwgMCwgMzEuODI4MTAwMjA0NDY3NzczLAorICAgICAgICAtMTguNDYxOTAwNzExMDU5NTcsIDAsIDMxLjUxNDYwMDc1Mzc4NDE4LCAtMTkuMTA4ODAwODg4MDYxNTIzLCAwLCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIC0xNy44MzQ4OTk5MDIzNDM3NSwgMCwgMzAuNTczOTk5NDA0OTA3MjI3LCAtMTYuNDUyNjk5NjYxMjU0ODgzLCA3LjAwMDE3OTc2NzYwODY0MywgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICAtMTYuMjIzMTAwNjYyMjMxNDQ1LCA2LjkwMjUyMDE3OTc0ODUzNSwgMzEuNTE0NjAwNzUzNzg0MTgsIC0xNy41ODYwMDA0NDI1MDQ4ODMsIDAsIDMxLjUxNDYwMDc1Mzc4NDE4LAorICAgICAgICAtMTYuNDg5NDAwODYzNjQ3NDYsIDcuMDE1ODEwMDEyODE3MzgzLCAzMS44MjgxMDAyMDQ0Njc3NzMsIC0xNy44NzQ3MDA1NDYyNjQ2NSwgMCwgMzEuODI4MTAwMjA0NDY3NzczLAorICAgICAgICAtMTcuMDMxMDk5MzE5NDU4MDA4LCA3LjI0NjI4MDE5MzMyODg1NywgMzEuNTE0NjAwNzUzNzg0MTgsIC0xOC40NjE5MDA3MTEwNTk1NywgMCwgMzEuNTE0NjAwNzUzNzg0MTgsCisgICAgICAgIC0xNy42Mjc3OTk5ODc3OTI5NywgNy41MDAxOTk3OTQ3NjkyODcsIDMwLjU3Mzk5OTQwNDkwNzIyNywgLTE5LjEwODgwMDg4ODA2MTUyMywgMCwgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICAtMTIuNjYyNjk5Njk5NDAxODU1LCAxMi42NjI2OTk2OTk0MDE4NTUsIDMwLjU3Mzk5OTQwNDkwNzIyNywgLTEyLjQ4NjEwMDE5NjgzODM3OSwgMTIuNDg2MTAwMTk2ODM4Mzc5LCAzMS41MTQ2MDA3NTM3ODQxOCwKKyAgICAgICAgLTEyLjY5MDk5OTk4NDc0MTIxMSwgMTIuNjkwOTk5OTg0NzQxMjExLCAzMS44MjgxMDAyMDQ0Njc3NzMsIC0xMy4xMDc4OTk2NjU4MzI1MiwgMTMuMTA3ODk5NjY1ODMyNTIsIDMxLjUxNDYwMDc1Mzc4NDE4LAorICAgICAgICAtMTMuNTY3MTk5NzA3MDMxMjUsIDEzLjU2NzE5OTcwNzAzMTI1LCAzMC41NzM5OTk0MDQ5MDcyMjcsIC03LjAwMDE3OTc2NzYwODY0MywgMTYuNDUyNjk5NjYxMjU0ODgzLCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIC02LjkwMjUyMDE3OTc0ODUzNSwgMTYuMjIzMTAwNjYyMjMxNDQ1LCAzMS41MTQ2MDA3NTM3ODQxOCwgLTcuMDE1ODEwMDEyODE3MzgzLCAxNi40ODk0MDA4NjM2NDc0NiwgMzEuODI4MTAwMjA0NDY3NzczLAorICAgICAgICAtNy4yNDYyODAxOTMzMjg4NTcsIDE3LjAzMTA5OTMxOTQ1ODAwOCwgMzEuNTE0NjAwNzUzNzg0MTgsIC03LjUwMDE5OTc5NDc2OTI4NywgMTcuNjI3Nzk5OTg3NzkyOTcsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgMCwgMTcuODM0ODk5OTAyMzQzNzUsIDMwLjU3Mzk5OTQwNDkwNzIyNywgMCwgMTcuNTg2MDAwNDQyNTA0ODgzLCAzMS41MTQ2MDA3NTM3ODQxOCwKKyAgICAgICAgMCwgMTcuODc0NzAwNTQ2MjY0NjUsIDMxLjgyODEwMDIwNDQ2Nzc3MywgMCwgMTguNDYxOTAwNzExMDU5NTcsIDMxLjUxNDYwMDc1Mzc4NDE4LAorICAgICAgICAwLCAxOS4xMDg4MDA4ODgwNjE1MjMsIDMwLjU3Mzk5OTQwNDkwNzIyNywgMCwgMTcuODM0ODk5OTAyMzQzNzUsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgNy4wMDAxNzk3Njc2MDg2NDMsIDE2LjQ1MjY5OTY2MTI1NDg4MywgMzAuNTczOTk5NDA0OTA3MjI3LCA2LjkwMjUyMDE3OTc0ODUzNSwgMTYuMjIzMTAwNjYyMjMxNDQ1LCAzMS41MTQ2MDA3NTM3ODQxOCwKKyAgICAgICAgMCwgMTcuNTg2MDAwNDQyNTA0ODgzLCAzMS41MTQ2MDA3NTM3ODQxOCwgNy4wMTU4MTAwMTI4MTczODMsIDE2LjQ4OTQwMDg2MzY0NzQ2LCAzMS44MjgxMDAyMDQ0Njc3NzMsCisgICAgICAgIDAsIDE3Ljg3NDcwMDU0NjI2NDY1LCAzMS44MjgxMDAyMDQ0Njc3NzMsIDcuMjQ2MjgwMTkzMzI4ODU3LCAxNy4wMzEwOTkzMTk0NTgwMDgsIDMxLjUxNDYwMDc1Mzc4NDE4LAorICAgICAgICAwLCAxOC40NjE5MDA3MTEwNTk1NywgMzEuNTE0NjAwNzUzNzg0MTgsIDcuNTAwMTk5Nzk0NzY5Mjg3LCAxNy42Mjc3OTk5ODc3OTI5NywgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICAwLCAxOS4xMDg4MDA4ODgwNjE1MjMsIDMwLjU3Mzk5OTQwNDkwNzIyNywgMTIuNjYyNjk5Njk5NDAxODU1LCAxMi42NjI2OTk2OTk0MDE4NTUsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgMTIuNDg2MTAwMTk2ODM4Mzc5LCAxMi40ODYxMDAxOTY4MzgzNzksIDMxLjUxNDYwMDc1Mzc4NDE4LCAxMi42OTA5OTk5ODQ3NDEyMTEsIDEyLjY5MDk5OTk4NDc0MTIxMSwgMzEuODI4MTAwMjA0NDY3NzczLAorICAgICAgICAxMy4xMDc4OTk2NjU4MzI1MiwgMTMuMTA3ODk5NjY1ODMyNTIsIDMxLjUxNDYwMDc1Mzc4NDE4LCAxMy41NjcxOTk3MDcwMzEyNSwgMTMuNTY3MTk5NzA3MDMxMjUsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgMTYuNDUyNjk5NjYxMjU0ODgzLCA3LjAwMDE3OTc2NzYwODY0MywgMzAuNTczOTk5NDA0OTA3MjI3LCAxNi4yMjMxMDA2NjIyMzE0NDUsIDYuOTAyNTIwMTc5NzQ4NTM1LCAzMS41MTQ2MDA3NTM3ODQxOCwKKyAgICAgICAgMTYuNDg5NDAwODYzNjQ3NDYsIDcuMDE1ODEwMDEyODE3MzgzLCAzMS44MjgxMDAyMDQ0Njc3NzMsIDE3LjAzMTA5OTMxOTQ1ODAwOCwgNy4yNDYyODAxOTMzMjg4NTcsIDMxLjUxNDYwMDc1Mzc4NDE4LAorICAgICAgICAxNy42Mjc3OTk5ODc3OTI5NywgNy41MDAxOTk3OTQ3NjkyODcsIDMwLjU3Mzk5OTQwNDkwNzIyNywgMTcuODM0ODk5OTAyMzQzNzUsIDAsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgMTcuNTg2MDAwNDQyNTA0ODgzLCAwLCAzMS41MTQ2MDA3NTM3ODQxOCwgMTcuODc0NzAwNTQ2MjY0NjUsIDAsIDMxLjgyODEwMDIwNDQ2Nzc3MywKKyAgICAgICAgMTguNDYxOTAwNzExMDU5NTcsIDAsIDMxLjUxNDYwMDc1Mzc4NDE4LCAxOS4xMDg4MDA4ODgwNjE1MjMsIDAsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgMTkuMTA4ODAwODg4MDYxNTIzLCAwLCAzMC41NzM5OTk0MDQ5MDcyMjcsIDE3LjYyNzc5OTk4Nzc5Mjk3LCAtNy41MDAxOTk3OTQ3NjkyODcsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgMTkuNzg1NDAwMzkwNjI1LCAtOC40MTgxOTAwMDI0NDE0MDYsIDI1LjU3MjkwMDc3MjA5NDcyNywgMjEuNDQ3NTk5NDExMDEwNzQyLCAwLCAyNS41NzI5MDA3NzIwOTQ3MjcsCisgICAgICAgIDIxLjY2NzYwMDYzMTcxMzg2NywgLTkuMjE4OTkwMzI1OTI3NzM0LCAyMC42NjEzOTk4NDEzMDg1OTQsIDIzLjQ4Nzg5OTc4MDI3MzQzOCwgMCwgMjAuNjYxMzk5ODQxMzA4NTk0LAorICAgICAgICAyMi45OTg4MDAyNzc3MDk5NiwgLTkuNzg1NDA5OTI3MzY4MTY0LCAxNS45Mjg5OTk5MDA4MTc4NzEsIDI0LjkzMDk5OTc1NTg1OTM3NSwgMCwgMTUuOTI4OTk5OTAwODE3ODcxLAorICAgICAgICAyMy41MDM3OTk0Mzg0NzY1NjIsIC0xMC4wMDAzMDA0MDc0MDk2NjgsIDExLjQ2NTI5OTYwNjMyMzI0MiwgMjUuNDc4Mzk5Mjc2NzMzNCwgMCwgMTEuNDY1Mjk5NjA2MzIzMjQyLAorICAgICAgICAxMy41NjcxOTk3MDcwMzEyNSwgLTEzLjU2NzE5OTcwNzAzMTI1LCAzMC41NzM5OTk0MDQ5MDcyMjcsIDE1LjIyNzgwMDM2OTI2MjY5NSwgLTE1LjIyNzgwMDM2OTI2MjY5NSwgMjUuNTcyOTAwNzcyMDk0NzI3LAorICAgICAgICAxNi42NzYzOTkyMzA5NTcwMywgLTE2LjY3NjM5OTIzMDk1NzAzLCAyMC42NjEzOTk4NDEzMDg1OTQsIDE3LjcwMTAwMDIxMzYyMzA0NywgLTE3LjcwMTAwMDIxMzYyMzA0NywgMTUuOTI4OTk5OTAwODE3ODcxLAorICAgICAgICAxOC4wODk1OTk2MDkzNzUsIC0xOC4wODk1OTk2MDkzNzUsIDExLjQ2NTI5OTYwNjMyMzI0MiwgNy41MDAxOTk3OTQ3NjkyODcsIC0xNy42Mjc3OTk5ODc3OTI5NywgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICA4LjQxODE5MDAwMjQ0MTQwNiwgLTE5Ljc4NTQwMDM5MDYyNSwgMjUuNTcyOTAwNzcyMDk0NzI3LCA5LjIxODk5MDMyNTkyNzczNCwgLTIxLjY2NzYwMDYzMTcxMzg2NywgMjAuNjYxMzk5ODQxMzA4NTk0LAorICAgICAgICA5Ljc4NTQwOTkyNzM2ODE2NCwgLTIyLjk5ODgwMDI3NzcwOTk2LCAxNS45Mjg5OTk5MDA4MTc4NzEsIDEwLjAwMDMwMDQwNzQwOTY2OCwgLTIzLjUwMzc5OTQzODQ3NjU2MiwgMTEuNDY1Mjk5NjA2MzIzMjQyLAorICAgICAgICAwLCAtMTkuMTA4ODAwODg4MDYxNTIzLCAzMC41NzM5OTk0MDQ5MDcyMjcsIDAsIC0yMS40NDc1OTk0MTEwMTA3NDIsIDI1LjU3MjkwMDc3MjA5NDcyNywKKyAgICAgICAgMCwgLTIzLjQ4Nzg5OTc4MDI3MzQzOCwgMjAuNjYxMzk5ODQxMzA4NTk0LCAwLCAtMjQuOTMwOTk5NzU1ODU5Mzc1LCAxNS45Mjg5OTk5MDA4MTc4NzEsCisgICAgICAgIDAsIC0yNS40NzgzOTkyNzY3MzM0LCAxMS40NjUyOTk2MDYzMjMyNDIsIDAsIC0xOS4xMDg4MDA4ODgwNjE1MjMsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgLTcuNTAwMTk5Nzk0NzY5Mjg3LCAtMTcuNjI3Nzk5OTg3NzkyOTcsIDMwLjU3Mzk5OTQwNDkwNzIyNywgLTguNDE4MTkwMDAyNDQxNDA2LCAtMTkuNzg1NDAwMzkwNjI1LCAyNS41NzI5MDA3NzIwOTQ3MjcsCisgICAgICAgIDAsIC0yMS40NDc1OTk0MTEwMTA3NDIsIDI1LjU3MjkwMDc3MjA5NDcyNywgLTkuMjE4OTkwMzI1OTI3NzM0LCAtMjEuNjY3NjAwNjMxNzEzODY3LCAyMC42NjEzOTk4NDEzMDg1OTQsCisgICAgICAgIDAsIC0yMy40ODc4OTk3ODAyNzM0MzgsIDIwLjY2MTM5OTg0MTMwODU5NCwgLTkuNzg1NDA5OTI3MzY4MTY0LCAtMjIuOTk4ODAwMjc3NzA5OTYsIDE1LjkyODk5OTkwMDgxNzg3MSwKKyAgICAgICAgMCwgLTI0LjkzMDk5OTc1NTg1OTM3NSwgMTUuOTI4OTk5OTAwODE3ODcxLCAtMTAuMDAwMzAwNDA3NDA5NjY4LCAtMjMuNTAzNzk5NDM4NDc2NTYyLCAxMS40NjUyOTk2MDYzMjMyNDIsCisgICAgICAgIDAsIC0yNS40NzgzOTkyNzY3MzM0LCAxMS40NjUyOTk2MDYzMjMyNDIsIC0xMy41NjcxOTk3MDcwMzEyNSwgLTEzLjU2NzE5OTcwNzAzMTI1LCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIC0xNS4yMjc4MDAzNjkyNjI2OTUsIC0xNS4yMjc4MDAzNjkyNjI2OTUsIDI1LjU3MjkwMDc3MjA5NDcyNywgLTE2LjY3NjM5OTIzMDk1NzAzLCAtMTYuNjc2Mzk5MjMwOTU3MDMsIDIwLjY2MTM5OTg0MTMwODU5NCwKKyAgICAgICAgLTE3LjcwMTAwMDIxMzYyMzA0NywgLTE3LjcwMTAwMDIxMzYyMzA0NywgMTUuOTI4OTk5OTAwODE3ODcxLCAtMTguMDg5NTk5NjA5Mzc1LCAtMTguMDg5NTk5NjA5Mzc1LCAxMS40NjUyOTk2MDYzMjMyNDIsCisgICAgICAgIC0xNy42Mjc3OTk5ODc3OTI5NywgLTcuNTAwMTk5Nzk0NzY5Mjg3LCAzMC41NzM5OTk0MDQ5MDcyMjcsIC0xOS43ODU0MDAzOTA2MjUsIC04LjQxODE5MDAwMjQ0MTQwNiwgMjUuNTcyOTAwNzcyMDk0NzI3LAorICAgICAgICAtMjEuNjY3NjAwNjMxNzEzODY3LCAtOS4yMTg5OTAzMjU5Mjc3MzQsIDIwLjY2MTM5OTg0MTMwODU5NCwgLTIyLjk5ODgwMDI3NzcwOTk2LCAtOS43ODU0MDk5MjczNjgxNjQsIDE1LjkyODk5OTkwMDgxNzg3MSwKKyAgICAgICAgLTIzLjUwMzc5OTQzODQ3NjU2MiwgLTEwLjAwMDMwMDQwNzQwOTY2OCwgMTEuNDY1Mjk5NjA2MzIzMjQyLCAtMTkuMTA4ODAwODg4MDYxNTIzLCAwLCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIC0yMS40NDc1OTk0MTEwMTA3NDIsIDAsIDI1LjU3MjkwMDc3MjA5NDcyNywgLTIzLjQ4Nzg5OTc4MDI3MzQzOCwgMCwgMjAuNjYxMzk5ODQxMzA4NTk0LAorICAgICAgICAtMjQuOTMwOTk5NzU1ODU5Mzc1LCAwLCAxNS45Mjg5OTk5MDA4MTc4NzEsIC0yNS40NzgzOTkyNzY3MzM0LCAwLCAxMS40NjUyOTk2MDYzMjMyNDIsCisgICAgICAgIC0xOS4xMDg4MDA4ODgwNjE1MjMsIDAsIDMwLjU3Mzk5OTQwNDkwNzIyNywgLTE3LjYyNzc5OTk4Nzc5Mjk3LCA3LjUwMDE5OTc5NDc2OTI4NywgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICAtMTkuNzg1NDAwMzkwNjI1LCA4LjQxODE5MDAwMjQ0MTQwNiwgMjUuNTcyOTAwNzcyMDk0NzI3LCAtMjEuNDQ3NTk5NDExMDEwNzQyLCAwLCAyNS41NzI5MDA3NzIwOTQ3MjcsCisgICAgICAgIC0yMS42Njc2MDA2MzE3MTM4NjcsIDkuMjE4OTkwMzI1OTI3NzM0LCAyMC42NjEzOTk4NDEzMDg1OTQsIC0yMy40ODc4OTk3ODAyNzM0MzgsIDAsIDIwLjY2MTM5OTg0MTMwODU5NCwKKyAgICAgICAgLTIyLjk5ODgwMDI3NzcwOTk2LCA5Ljc4NTQwOTkyNzM2ODE2NCwgMTUuOTI4OTk5OTAwODE3ODcxLCAtMjQuOTMwOTk5NzU1ODU5Mzc1LCAwLCAxNS45Mjg5OTk5MDA4MTc4NzEsCisgICAgICAgIC0yMy41MDM3OTk0Mzg0NzY1NjIsIDEwLjAwMDMwMDQwNzQwOTY2OCwgMTEuNDY1Mjk5NjA2MzIzMjQyLCAtMjUuNDc4Mzk5Mjc2NzMzNCwgMCwgMTEuNDY1Mjk5NjA2MzIzMjQyLAorICAgICAgICAtMTMuNTY3MTk5NzA3MDMxMjUsIDEzLjU2NzE5OTcwNzAzMTI1LCAzMC41NzM5OTk0MDQ5MDcyMjcsIC0xNS4yMjc4MDAzNjkyNjI2OTUsIDE1LjIyNzgwMDM2OTI2MjY5NSwgMjUuNTcyOTAwNzcyMDk0NzI3LAorICAgICAgICAtMTYuNjc2Mzk5MjMwOTU3MDMsIDE2LjY3NjM5OTIzMDk1NzAzLCAyMC42NjEzOTk4NDEzMDg1OTQsIC0xNy43MDEwMDAyMTM2MjMwNDcsIDE3LjcwMTAwMDIxMzYyMzA0NywgMTUuOTI4OTk5OTAwODE3ODcxLAorICAgICAgICAtMTguMDg5NTk5NjA5Mzc1LCAxOC4wODk1OTk2MDkzNzUsIDExLjQ2NTI5OTYwNjMyMzI0MiwgLTcuNTAwMTk5Nzk0NzY5Mjg3LCAxNy42Mjc3OTk5ODc3OTI5NywgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICAtOC40MTgxOTAwMDI0NDE0MDYsIDE5Ljc4NTQwMDM5MDYyNSwgMjUuNTcyOTAwNzcyMDk0NzI3LCAtOS4yMTg5OTAzMjU5Mjc3MzQsIDIxLjY2NzYwMDYzMTcxMzg2NywgMjAuNjYxMzk5ODQxMzA4NTk0LAorICAgICAgICAtOS43ODU0MDk5MjczNjgxNjQsIDIyLjk5ODgwMDI3NzcwOTk2LCAxNS45Mjg5OTk5MDA4MTc4NzEsIC0xMC4wMDAzMDA0MDc0MDk2NjgsIDIzLjUwMzc5OTQzODQ3NjU2MiwgMTEuNDY1Mjk5NjA2MzIzMjQyLAorICAgICAgICAwLCAxOS4xMDg4MDA4ODgwNjE1MjMsIDMwLjU3Mzk5OTQwNDkwNzIyNywgMCwgMjEuNDQ3NTk5NDExMDEwNzQyLCAyNS41NzI5MDA3NzIwOTQ3MjcsCisgICAgICAgIDAsIDIzLjQ4Nzg5OTc4MDI3MzQzOCwgMjAuNjYxMzk5ODQxMzA4NTk0LCAwLCAyNC45MzA5OTk3NTU4NTkzNzUsIDE1LjkyODk5OTkwMDgxNzg3MSwKKyAgICAgICAgMCwgMjUuNDc4Mzk5Mjc2NzMzNCwgMTEuNDY1Mjk5NjA2MzIzMjQyLCAwLCAxOS4xMDg4MDA4ODgwNjE1MjMsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgNy41MDAxOTk3OTQ3NjkyODcsIDE3LjYyNzc5OTk4Nzc5Mjk3LCAzMC41NzM5OTk0MDQ5MDcyMjcsIDguNDE4MTkwMDAyNDQxNDA2LCAxOS43ODU0MDAzOTA2MjUsIDI1LjU3MjkwMDc3MjA5NDcyNywKKyAgICAgICAgMCwgMjEuNDQ3NTk5NDExMDEwNzQyLCAyNS41NzI5MDA3NzIwOTQ3MjcsIDkuMjE4OTkwMzI1OTI3NzM0LCAyMS42Njc2MDA2MzE3MTM4NjcsIDIwLjY2MTM5OTg0MTMwODU5NCwKKyAgICAgICAgMCwgMjMuNDg3ODk5NzgwMjczNDM4LCAyMC42NjEzOTk4NDEzMDg1OTQsIDkuNzg1NDA5OTI3MzY4MTY0LCAyMi45OTg4MDAyNzc3MDk5NiwgMTUuOTI4OTk5OTAwODE3ODcxLAorICAgICAgICAwLCAyNC45MzA5OTk3NTU4NTkzNzUsIDE1LjkyODk5OTkwMDgxNzg3MSwgMTAuMDAwMzAwNDA3NDA5NjY4LCAyMy41MDM3OTk0Mzg0NzY1NjIsIDExLjQ2NTI5OTYwNjMyMzI0MiwKKyAgICAgICAgMCwgMjUuNDc4Mzk5Mjc2NzMzNCwgMTEuNDY1Mjk5NjA2MzIzMjQyLCAxMy41NjcxOTk3MDcwMzEyNSwgMTMuNTY3MTk5NzA3MDMxMjUsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgMTUuMjI3ODAwMzY5MjYyNjk1LCAxNS4yMjc4MDAzNjkyNjI2OTUsIDI1LjU3MjkwMDc3MjA5NDcyNywgMTYuNjc2Mzk5MjMwOTU3MDMsIDE2LjY3NjM5OTIzMDk1NzAzLCAyMC42NjEzOTk4NDEzMDg1OTQsCisgICAgICAgIDE3LjcwMTAwMDIxMzYyMzA0NywgMTcuNzAxMDAwMjEzNjIzMDQ3LCAxNS45Mjg5OTk5MDA4MTc4NzEsIDE4LjA4OTU5OTYwOTM3NSwgMTguMDg5NTk5NjA5Mzc1LCAxMS40NjUyOTk2MDYzMjMyNDIsCisgICAgICAgIDE3LjYyNzc5OTk4Nzc5Mjk3LCA3LjUwMDE5OTc5NDc2OTI4NywgMzAuNTczOTk5NDA0OTA3MjI3LCAxOS43ODU0MDAzOTA2MjUsIDguNDE4MTkwMDAyNDQxNDA2LCAyNS41NzI5MDA3NzIwOTQ3MjcsCisgICAgICAgIDIxLjY2NzYwMDYzMTcxMzg2NywgOS4yMTg5OTAzMjU5Mjc3MzQsIDIwLjY2MTM5OTg0MTMwODU5NCwgMjIuOTk4ODAwMjc3NzA5OTYsIDkuNzg1NDA5OTI3MzY4MTY0LCAxNS45Mjg5OTk5MDA4MTc4NzEsCisgICAgICAgIDIzLjUwMzc5OTQzODQ3NjU2MiwgMTAuMDAwMzAwNDA3NDA5NjY4LCAxMS40NjUyOTk2MDYzMjMyNDIsIDE5LjEwODgwMDg4ODA2MTUyMywgMCwgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICAyMS40NDc1OTk0MTEwMTA3NDIsIDAsIDI1LjU3MjkwMDc3MjA5NDcyNywgMjMuNDg3ODk5NzgwMjczNDM4LCAwLCAyMC42NjEzOTk4NDEzMDg1OTQsCisgICAgICAgIDI0LjkzMDk5OTc1NTg1OTM3NSwgMCwgMTUuOTI4OTk5OTAwODE3ODcxLCAyNS40NzgzOTkyNzY3MzM0LCAwLCAxMS40NjUyOTk2MDYzMjMyNDIsCisgICAgICAgIDI1LjQ3ODM5OTI3NjczMzQsIDAsIDExLjQ2NTI5OTYwNjMyMzI0MiwgMjMuNTAzNzk5NDM4NDc2NTYyLCAtMTAuMDAwMzAwNDA3NDA5NjY4LCAxMS40NjUyOTk2MDYzMjMyNDIsCisgICAgICAgIDIyLjU4NTY5OTA4MTQyMDksIC05LjYwOTYyMDA5NDI5OTMxNiwgNy42ODgzMDAxMzI3NTE0NjUsIDI0LjQ4MzEwMDg5MTExMzI4LCAwLCA3LjY4ODMwMDEzMjc1MTQ2NSwKKyAgICAgICAgMjAuNTY1Nzk5NzEzMTM0NzY2LCAtOC43NTAyMjk4MzU1MTAyNTQsIDQuODk2NjE5Nzk2NzUyOTMsIDIyLjI5MzYwMDA4MjM5NzQ2LCAwLCA0Ljg5NjYxOTc5Njc1MjkzLAorICAgICAgICAxOC41NDU5OTk1MjY5Nzc1NCwgLTcuODkwODMwMDM5OTc4MDI3LCAzLjAwMDY2OTk1NjIwNzI3NTQsIDIwLjEwNDAwMDA5MTU1MjczNCwgMCwgMy4wMDA2Njk5NTYyMDcyNzU0LAorICAgICAgICAxNy42Mjc3OTk5ODc3OTI5NywgLTcuNTAwMTk5Nzk0NzY5Mjg3LCAxLjkxMDg3OTk2OTU5Njg2MjgsIDE5LjEwODgwMDg4ODA2MTUyMywgMCwgMS45MTA4Nzk5Njk1OTY4NjI4LAorICAgICAgICAxOC4wODk1OTk2MDkzNzUsIC0xOC4wODk1OTk2MDkzNzUsIDExLjQ2NTI5OTYwNjMyMzI0MiwgMTcuMzgyOTk5NDIwMTY2MDE2LCAtMTcuMzgyOTk5NDIwMTY2MDE2LCA3LjY4ODMwMDEzMjc1MTQ2NSwKKyAgICAgICAgMTUuODI4Mzk5NjU4MjAzMTI1LCAtMTUuODI4Mzk5NjU4MjAzMTI1LCA0Ljg5NjYxOTc5Njc1MjkzLCAxNC4yNzM5MDAwMzIwNDM0NTcsIC0xNC4yNzM5MDAwMzIwNDM0NTcsIDMuMDAwNjY5OTU2MjA3Mjc1NCwKKyAgICAgICAgMTMuNTY3MTk5NzA3MDMxMjUsIC0xMy41NjcxOTk3MDcwMzEyNSwgMS45MTA4Nzk5Njk1OTY4NjI4LCAxMC4wMDAzMDA0MDc0MDk2NjgsIC0yMy41MDM3OTk0Mzg0NzY1NjIsIDExLjQ2NTI5OTYwNjMyMzI0MiwKKyAgICAgICAgOS42MDk2MjAwOTQyOTkzMTYsIC0yMi41ODU2OTkwODE0MjA5LCA3LjY4ODMwMDEzMjc1MTQ2NSwgOC43NTAyMjk4MzU1MTAyNTQsIC0yMC41NjU3OTk3MTMxMzQ3NjYsIDQuODk2NjE5Nzk2NzUyOTMsCisgICAgICAgIDcuODkwODMwMDM5OTc4MDI3LCAtMTguNTQ1OTk5NTI2OTc3NTQsIDMuMDAwNjY5OTU2MjA3Mjc1NCwgNy41MDAxOTk3OTQ3NjkyODcsIC0xNy42Mjc3OTk5ODc3OTI5NywgMS45MTA4Nzk5Njk1OTY4NjI4LAorICAgICAgICAwLCAtMjUuNDc4Mzk5Mjc2NzMzNCwgMTEuNDY1Mjk5NjA2MzIzMjQyLCAwLCAtMjQuNDgzMTAwODkxMTEzMjgsIDcuNjg4MzAwMTMyNzUxNDY1LAorICAgICAgICAwLCAtMjIuMjkzNjAwMDgyMzk3NDYsIDQuODk2NjE5Nzk2NzUyOTMsIDAsIC0yMC4xMDQwMDAwOTE1NTI3MzQsIDMuMDAwNjY5OTU2MjA3Mjc1NCwKKyAgICAgICAgMCwgLTE5LjEwODgwMDg4ODA2MTUyMywgMS45MTA4Nzk5Njk1OTY4NjI4LCAwLCAtMjUuNDc4Mzk5Mjc2NzMzNCwgMTEuNDY1Mjk5NjA2MzIzMjQyLAorICAgICAgICAtMTAuMDAwMzAwNDA3NDA5NjY4LCAtMjMuNTAzNzk5NDM4NDc2NTYyLCAxMS40NjUyOTk2MDYzMjMyNDIsIC05LjYwOTYyMDA5NDI5OTMxNiwgLTIyLjU4NTY5OTA4MTQyMDksIDcuNjg4MzAwMTMyNzUxNDY1LAorICAgICAgICAwLCAtMjQuNDgzMTAwODkxMTEzMjgsIDcuNjg4MzAwMTMyNzUxNDY1LCAtOC43NTAyMjk4MzU1MTAyNTQsIC0yMC41NjU3OTk3MTMxMzQ3NjYsIDQuODk2NjE5Nzk2NzUyOTMsCisgICAgICAgIDAsIC0yMi4yOTM2MDAwODIzOTc0NiwgNC44OTY2MTk3OTY3NTI5MywgLTcuODkwODMwMDM5OTc4MDI3LCAtMTguNTQ1OTk5NTI2OTc3NTQsIDMuMDAwNjY5OTU2MjA3Mjc1NCwKKyAgICAgICAgMCwgLTIwLjEwNDAwMDA5MTU1MjczNCwgMy4wMDA2Njk5NTYyMDcyNzU0LCAtNy41MDAxOTk3OTQ3NjkyODcsIC0xNy42Mjc3OTk5ODc3OTI5NywgMS45MTA4Nzk5Njk1OTY4NjI4LAorICAgICAgICAwLCAtMTkuMTA4ODAwODg4MDYxNTIzLCAxLjkxMDg3OTk2OTU5Njg2MjgsIC0xOC4wODk1OTk2MDkzNzUsIC0xOC4wODk1OTk2MDkzNzUsIDExLjQ2NTI5OTYwNjMyMzI0MiwKKyAgICAgICAgLTE3LjM4Mjk5OTQyMDE2NjAxNiwgLTE3LjM4Mjk5OTQyMDE2NjAxNiwgNy42ODgzMDAxMzI3NTE0NjUsIC0xNS44MjgzOTk2NTgyMDMxMjUsIC0xNS44MjgzOTk2NTgyMDMxMjUsIDQuODk2NjE5Nzk2NzUyOTMsCisgICAgICAgIC0xNC4yNzM5MDAwMzIwNDM0NTcsIC0xNC4yNzM5MDAwMzIwNDM0NTcsIDMuMDAwNjY5OTU2MjA3Mjc1NCwgLTEzLjU2NzE5OTcwNzAzMTI1LCAtMTMuNTY3MTk5NzA3MDMxMjUsIDEuOTEwODc5OTY5NTk2ODYyOCwKKyAgICAgICAgLTIzLjUwMzc5OTQzODQ3NjU2MiwgLTEwLjAwMDMwMDQwNzQwOTY2OCwgMTEuNDY1Mjk5NjA2MzIzMjQyLCAtMjIuNTg1Njk5MDgxNDIwOSwgLTkuNjA5NjIwMDk0Mjk5MzE2LCA3LjY4ODMwMDEzMjc1MTQ2NSwKKyAgICAgICAgLTIwLjU2NTc5OTcxMzEzNDc2NiwgLTguNzUwMjI5ODM1NTEwMjU0LCA0Ljg5NjYxOTc5Njc1MjkzLCAtMTguNTQ1OTk5NTI2OTc3NTQsIC03Ljg5MDgzMDAzOTk3ODAyNywgMy4wMDA2Njk5NTYyMDcyNzU0LAorICAgICAgICAtMTcuNjI3Nzk5OTg3NzkyOTcsIC03LjUwMDE5OTc5NDc2OTI4NywgMS45MTA4Nzk5Njk1OTY4NjI4LCAtMjUuNDc4Mzk5Mjc2NzMzNCwgMCwgMTEuNDY1Mjk5NjA2MzIzMjQyLAorICAgICAgICAtMjQuNDgzMTAwODkxMTEzMjgsIDAsIDcuNjg4MzAwMTMyNzUxNDY1LCAtMjIuMjkzNjAwMDgyMzk3NDYsIDAsIDQuODk2NjE5Nzk2NzUyOTMsCisgICAgICAgIC0yMC4xMDQwMDAwOTE1NTI3MzQsIDAsIDMuMDAwNjY5OTU2MjA3Mjc1NCwgLTE5LjEwODgwMDg4ODA2MTUyMywgMCwgMS45MTA4Nzk5Njk1OTY4NjI4LAorICAgICAgICAtMjUuNDc4Mzk5Mjc2NzMzNCwgMCwgMTEuNDY1Mjk5NjA2MzIzMjQyLCAtMjMuNTAzNzk5NDM4NDc2NTYyLCAxMC4wMDAzMDA0MDc0MDk2NjgsIDExLjQ2NTI5OTYwNjMyMzI0MiwKKyAgICAgICAgLTIyLjU4NTY5OTA4MTQyMDksIDkuNjA5NjIwMDk0Mjk5MzE2LCA3LjY4ODMwMDEzMjc1MTQ2NSwgLTI0LjQ4MzEwMDg5MTExMzI4LCAwLCA3LjY4ODMwMDEzMjc1MTQ2NSwKKyAgICAgICAgLTIwLjU2NTc5OTcxMzEzNDc2NiwgOC43NTAyMjk4MzU1MTAyNTQsIDQuODk2NjE5Nzk2NzUyOTMsIC0yMi4yOTM2MDAwODIzOTc0NiwgMCwgNC44OTY2MTk3OTY3NTI5MywKKyAgICAgICAgLTE4LjU0NTk5OTUyNjk3NzU0LCA3Ljg5MDgzMDAzOTk3ODAyNywgMy4wMDA2Njk5NTYyMDcyNzU0LCAtMjAuMTA0MDAwMDkxNTUyNzM0LCAwLCAzLjAwMDY2OTk1NjIwNzI3NTQsCisgICAgICAgIC0xNy42Mjc3OTk5ODc3OTI5NywgNy41MDAxOTk3OTQ3NjkyODcsIDEuOTEwODc5OTY5NTk2ODYyOCwgLTE5LjEwODgwMDg4ODA2MTUyMywgMCwgMS45MTA4Nzk5Njk1OTY4NjI4LAorICAgICAgICAtMTguMDg5NTk5NjA5Mzc1LCAxOC4wODk1OTk2MDkzNzUsIDExLjQ2NTI5OTYwNjMyMzI0MiwgLTE3LjM4Mjk5OTQyMDE2NjAxNiwgMTcuMzgyOTk5NDIwMTY2MDE2LCA3LjY4ODMwMDEzMjc1MTQ2NSwKKyAgICAgICAgLTE1LjgyODM5OTY1ODIwMzEyNSwgMTUuODI4Mzk5NjU4MjAzMTI1LCA0Ljg5NjYxOTc5Njc1MjkzLCAtMTQuMjczOTAwMDMyMDQzNDU3LCAxNC4yNzM5MDAwMzIwNDM0NTcsIDMuMDAwNjY5OTU2MjA3Mjc1NCwKKyAgICAgICAgLTEzLjU2NzE5OTcwNzAzMTI1LCAxMy41NjcxOTk3MDcwMzEyNSwgMS45MTA4Nzk5Njk1OTY4NjI4LCAtMTAuMDAwMzAwNDA3NDA5NjY4LCAyMy41MDM3OTk0Mzg0NzY1NjIsIDExLjQ2NTI5OTYwNjMyMzI0MiwKKyAgICAgICAgLTkuNjA5NjIwMDk0Mjk5MzE2LCAyMi41ODU2OTkwODE0MjA5LCA3LjY4ODMwMDEzMjc1MTQ2NSwgLTguNzUwMjI5ODM1NTEwMjU0LCAyMC41NjU3OTk3MTMxMzQ3NjYsIDQuODk2NjE5Nzk2NzUyOTMsCisgICAgICAgIC03Ljg5MDgzMDAzOTk3ODAyNywgMTguNTQ1OTk5NTI2OTc3NTQsIDMuMDAwNjY5OTU2MjA3Mjc1NCwgLTcuNTAwMTk5Nzk0NzY5Mjg3LCAxNy42Mjc3OTk5ODc3OTI5NywgMS45MTA4Nzk5Njk1OTY4NjI4LAorICAgICAgICAwLCAyNS40NzgzOTkyNzY3MzM0LCAxMS40NjUyOTk2MDYzMjMyNDIsIDAsIDI0LjQ4MzEwMDg5MTExMzI4LCA3LjY4ODMwMDEzMjc1MTQ2NSwKKyAgICAgICAgMCwgMjIuMjkzNjAwMDgyMzk3NDYsIDQuODk2NjE5Nzk2NzUyOTMsIDAsIDIwLjEwNDAwMDA5MTU1MjczNCwgMy4wMDA2Njk5NTYyMDcyNzU0LAorICAgICAgICAwLCAxOS4xMDg4MDA4ODgwNjE1MjMsIDEuOTEwODc5OTY5NTk2ODYyOCwgMCwgMjUuNDc4Mzk5Mjc2NzMzNCwgMTEuNDY1Mjk5NjA2MzIzMjQyLAorICAgICAgICAxMC4wMDAzMDA0MDc0MDk2NjgsIDIzLjUwMzc5OTQzODQ3NjU2MiwgMTEuNDY1Mjk5NjA2MzIzMjQyLCA5LjYwOTYyMDA5NDI5OTMxNiwgMjIuNTg1Njk5MDgxNDIwOSwgNy42ODgzMDAxMzI3NTE0NjUsCisgICAgICAgIDAsIDI0LjQ4MzEwMDg5MTExMzI4LCA3LjY4ODMwMDEzMjc1MTQ2NSwgOC43NTAyMjk4MzU1MTAyNTQsIDIwLjU2NTc5OTcxMzEzNDc2NiwgNC44OTY2MTk3OTY3NTI5MywKKyAgICAgICAgMCwgMjIuMjkzNjAwMDgyMzk3NDYsIDQuODk2NjE5Nzk2NzUyOTMsIDcuODkwODMwMDM5OTc4MDI3LCAxOC41NDU5OTk1MjY5Nzc1NCwgMy4wMDA2Njk5NTYyMDcyNzU0LAorICAgICAgICAwLCAyMC4xMDQwMDAwOTE1NTI3MzQsIDMuMDAwNjY5OTU2MjA3Mjc1NCwgNy41MDAxOTk3OTQ3NjkyODcsIDE3LjYyNzc5OTk4Nzc5Mjk3LCAxLjkxMDg3OTk2OTU5Njg2MjgsCisgICAgICAgIDAsIDE5LjEwODgwMDg4ODA2MTUyMywgMS45MTA4Nzk5Njk1OTY4NjI4LCAxOC4wODk1OTk2MDkzNzUsIDE4LjA4OTU5OTYwOTM3NSwgMTEuNDY1Mjk5NjA2MzIzMjQyLAorICAgICAgICAxNy4zODI5OTk0MjAxNjYwMTYsIDE3LjM4Mjk5OTQyMDE2NjAxNiwgNy42ODgzMDAxMzI3NTE0NjUsIDE1LjgyODM5OTY1ODIwMzEyNSwgMTUuODI4Mzk5NjU4MjAzMTI1LCA0Ljg5NjYxOTc5Njc1MjkzLAorICAgICAgICAxNC4yNzM5MDAwMzIwNDM0NTcsIDE0LjI3MzkwMDAzMjA0MzQ1NywgMy4wMDA2Njk5NTYyMDcyNzU0LCAxMy41NjcxOTk3MDcwMzEyNSwgMTMuNTY3MTk5NzA3MDMxMjUsIDEuOTEwODc5OTY5NTk2ODYyOCwKKyAgICAgICAgMjMuNTAzNzk5NDM4NDc2NTYyLCAxMC4wMDAzMDA0MDc0MDk2NjgsIDExLjQ2NTI5OTYwNjMyMzI0MiwgMjIuNTg1Njk5MDgxNDIwOSwgOS42MDk2MjAwOTQyOTkzMTYsIDcuNjg4MzAwMTMyNzUxNDY1LAorICAgICAgICAyMC41NjU3OTk3MTMxMzQ3NjYsIDguNzUwMjI5ODM1NTEwMjU0LCA0Ljg5NjYxOTc5Njc1MjkzLCAxOC41NDU5OTk1MjY5Nzc1NCwgNy44OTA4MzAwMzk5NzgwMjcsIDMuMDAwNjY5OTU2MjA3Mjc1NCwKKyAgICAgICAgMTcuNjI3Nzk5OTg3NzkyOTcsIDcuNTAwMTk5Nzk0NzY5Mjg3LCAxLjkxMDg3OTk2OTU5Njg2MjgsIDI1LjQ3ODM5OTI3NjczMzQsIDAsIDExLjQ2NTI5OTYwNjMyMzI0MiwKKyAgICAgICAgMjQuNDgzMTAwODkxMTEzMjgsIDAsIDcuNjg4MzAwMTMyNzUxNDY1LCAyMi4yOTM2MDAwODIzOTc0NiwgMCwgNC44OTY2MTk3OTY3NTI5MywKKyAgICAgICAgMjAuMTA0MDAwMDkxNTUyNzM0LCAwLCAzLjAwMDY2OTk1NjIwNzI3NTQsIDE5LjEwODgwMDg4ODA2MTUyMywgMCwgMS45MTA4Nzk5Njk1OTY4NjI4LAorICAgICAgICAxOS4xMDg4MDA4ODgwNjE1MjMsIDAsIDEuOTEwODc5OTY5NTk2ODYyOCwgMTcuNjI3Nzk5OTg3NzkyOTcsIC03LjUwMDE5OTc5NDc2OTI4NywgMS45MTA4Nzk5Njk1OTY4NjI4LAorICAgICAgICAxNy4yMjg1MDAzNjYyMTA5MzgsIC03LjMzMDI2OTgxMzUzNzU5OCwgMS4yMDkyMjk5NDYxMzY0NzQ2LCAxOC42NzU4MDAzMjM0ODYzMjgsIDAsIDEuMjA5MjI5OTQ2MTM2NDc0NiwKKyAgICAgICAgMTUuMDkzNzk5NTkxMDY0NDUzLCAtNi40MjIwMzk5ODU2NTY3MzgsIDAuNTk3MTQ5MDE0NDcyOTYxNCwgMTYuMzYxOTAwMzI5NTg5ODQ0LCAwLCAwLjU5NzE0OTAxNDQ3Mjk2MTQsCisgICAgICAgIDkuODE5MjU5NjQzNTU0Njg4LCAtNC4xNzc4NDAyMzI4NDkxMjEsIDAuMTY0MjE1OTk2ODYxNDU3ODIsIDEwLjY0NDIwMDMyNTAxMjIwNywgMCwgMC4xNjQyMTU5OTY4NjE0NTc4MiwKKyAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwKKyAgICAgICAgMTMuNTY3MTk5NzA3MDMxMjUsIC0xMy41NjcxOTk3MDcwMzEyNSwgMS45MTA4Nzk5Njk1OTY4NjI4LCAxMy4yNTk3OTk5NTcyNzUzOSwgLTEzLjI1OTc5OTk1NzI3NTM5LCAxLjIwOTIyOTk0NjEzNjQ3NDYsCisgICAgICAgIDExLjYxNjkwMDQ0NDAzMDc2MiwgLTExLjYxNjkwMDQ0NDAzMDc2MiwgMC41OTcxNDkwMTQ0NzI5NjE0LCA3LjU1NzM3MDE4NTg1MjA1MSwgLTcuNTU3MzcwMTg1ODUyMDUxLCAwLjE2NDIxNTk5Njg2MTQ1NzgyLAorICAgICAgICAwLCAwLCAwLCA3LjUwMDE5OTc5NDc2OTI4NywgLTE3LjYyNzc5OTk4Nzc5Mjk3LCAxLjkxMDg3OTk2OTU5Njg2MjgsCisgICAgICAgIDcuMzMwMjY5ODEzNTM3NTk4LCAtMTcuMjI4NTAwMzY2MjEwOTM4LCAxLjIwOTIyOTk0NjEzNjQ3NDYsIDYuNDIyMDM5OTg1NjU2NzM4LCAtMTUuMDkzNzk5NTkxMDY0NDUzLCAwLjU5NzE0OTAxNDQ3Mjk2MTQsCisgICAgICAgIDQuMTc3ODQwMjMyODQ5MTIxLCAtOS44MTkyNTk2NDM1NTQ2ODgsIDAuMTY0MjE1OTk2ODYxNDU3ODIsIDAsIDAsIDAsCisgICAgICAgIDAsIC0xOS4xMDg4MDA4ODgwNjE1MjMsIDEuOTEwODc5OTY5NTk2ODYyOCwgMCwgLTE4LjY3NTgwMDMyMzQ4NjMyOCwgMS4yMDkyMjk5NDYxMzY0NzQ2LAorICAgICAgICAwLCAtMTYuMzYxOTAwMzI5NTg5ODQ0LCAwLjU5NzE0OTAxNDQ3Mjk2MTQsIDAsIC0xMC42NDQyMDAzMjUwMTIyMDcsIDAuMTY0MjE1OTk2ODYxNDU3ODIsCisgICAgICAgIDAsIDAsIDAsIDAsIC0xOS4xMDg4MDA4ODgwNjE1MjMsIDEuOTEwODc5OTY5NTk2ODYyOCwKKyAgICAgICAgLTcuNTAwMTk5Nzk0NzY5Mjg3LCAtMTcuNjI3Nzk5OTg3NzkyOTcsIDEuOTEwODc5OTY5NTk2ODYyOCwgLTcuMzMwMjY5ODEzNTM3NTk4LCAtMTcuMjI4NTAwMzY2MjEwOTM4LCAxLjIwOTIyOTk0NjEzNjQ3NDYsCisgICAgICAgIDAsIC0xOC42NzU4MDAzMjM0ODYzMjgsIDEuMjA5MjI5OTQ2MTM2NDc0NiwgLTYuNDIyMDM5OTg1NjU2NzM4LCAtMTUuMDkzNzk5NTkxMDY0NDUzLCAwLjU5NzE0OTAxNDQ3Mjk2MTQsCisgICAgICAgIDAsIC0xNi4zNjE5MDAzMjk1ODk4NDQsIDAuNTk3MTQ5MDE0NDcyOTYxNCwgLTQuMTc3ODQwMjMyODQ5MTIxLCAtOS44MTkyNTk2NDM1NTQ2ODgsIDAuMTY0MjE1OTk2ODYxNDU3ODIsCisgICAgICAgIDAsIC0xMC42NDQyMDAzMjUwMTIyMDcsIDAuMTY0MjE1OTk2ODYxNDU3ODIsIDAsIDAsIDAsCisgICAgICAgIDAsIDAsIDAsIC0xMy41NjcxOTk3MDcwMzEyNSwgLTEzLjU2NzE5OTcwNzAzMTI1LCAxLjkxMDg3OTk2OTU5Njg2MjgsCisgICAgICAgIC0xMy4yNTk3OTk5NTcyNzUzOSwgLTEzLjI1OTc5OTk1NzI3NTM5LCAxLjIwOTIyOTk0NjEzNjQ3NDYsIC0xMS42MTY5MDA0NDQwMzA3NjIsIC0xMS42MTY5MDA0NDQwMzA3NjIsIDAuNTk3MTQ5MDE0NDcyOTYxNCwKKyAgICAgICAgLTcuNTU3MzcwMTg1ODUyMDUxLCAtNy41NTczNzAxODU4NTIwNTEsIDAuMTY0MjE1OTk2ODYxNDU3ODIsIDAsIDAsIDAsCisgICAgICAgIC0xNy42Mjc3OTk5ODc3OTI5NywgLTcuNTAwMTk5Nzk0NzY5Mjg3LCAxLjkxMDg3OTk2OTU5Njg2MjgsIC0xNy4yMjg1MDAzNjYyMTA5MzgsIC03LjMzMDI2OTgxMzUzNzU5OCwgMS4yMDkyMjk5NDYxMzY0NzQ2LAorICAgICAgICAtMTUuMDkzNzk5NTkxMDY0NDUzLCAtNi40MjIwMzk5ODU2NTY3MzgsIDAuNTk3MTQ5MDE0NDcyOTYxNCwgLTkuODE5MjU5NjQzNTU0Njg4LCAtNC4xNzc4NDAyMzI4NDkxMjEsIDAuMTY0MjE1OTk2ODYxNDU3ODIsCisgICAgICAgIDAsIDAsIDAsIC0xOS4xMDg4MDA4ODgwNjE1MjMsIDAsIDEuOTEwODc5OTY5NTk2ODYyOCwKKyAgICAgICAgLTE4LjY3NTgwMDMyMzQ4NjMyOCwgMCwgMS4yMDkyMjk5NDYxMzY0NzQ2LCAtMTYuMzYxOTAwMzI5NTg5ODQ0LCAwLCAwLjU5NzE0OTAxNDQ3Mjk2MTQsCisgICAgICAgIC0xMC42NDQyMDAzMjUwMTIyMDcsIDAsIDAuMTY0MjE1OTk2ODYxNDU3ODIsIDAsIDAsIDAsCisgICAgICAgIC0xOS4xMDg4MDA4ODgwNjE1MjMsIDAsIDEuOTEwODc5OTY5NTk2ODYyOCwgLTE3LjYyNzc5OTk4Nzc5Mjk3LCA3LjUwMDE5OTc5NDc2OTI4NywgMS45MTA4Nzk5Njk1OTY4NjI4LAorICAgICAgICAtMTcuMjI4NTAwMzY2MjEwOTM4LCA3LjMzMDI2OTgxMzUzNzU5OCwgMS4yMDkyMjk5NDYxMzY0NzQ2LCAtMTguNjc1ODAwMzIzNDg2MzI4LCAwLCAxLjIwOTIyOTk0NjEzNjQ3NDYsCisgICAgICAgIC0xNS4wOTM3OTk1OTEwNjQ0NTMsIDYuNDIyMDM5OTg1NjU2NzM4LCAwLjU5NzE0OTAxNDQ3Mjk2MTQsIC0xNi4zNjE5MDAzMjk1ODk4NDQsIDAsIDAuNTk3MTQ5MDE0NDcyOTYxNCwKKyAgICAgICAgLTkuODE5MjU5NjQzNTU0Njg4LCA0LjE3Nzg0MDIzMjg0OTEyMSwgMC4xNjQyMTU5OTY4NjE0NTc4MiwgLTEwLjY0NDIwMDMyNTAxMjIwNywgMCwgMC4xNjQyMTU5OTY4NjE0NTc4MiwKKyAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwKKyAgICAgICAgLTEzLjU2NzE5OTcwNzAzMTI1LCAxMy41NjcxOTk3MDcwMzEyNSwgMS45MTA4Nzk5Njk1OTY4NjI4LCAtMTMuMjU5Nzk5OTU3Mjc1MzksIDEzLjI1OTc5OTk1NzI3NTM5LCAxLjIwOTIyOTk0NjEzNjQ3NDYsCisgICAgICAgIC0xMS42MTY5MDA0NDQwMzA3NjIsIDExLjYxNjkwMDQ0NDAzMDc2MiwgMC41OTcxNDkwMTQ0NzI5NjE0LCAtNy41NTczNzAxODU4NTIwNTEsIDcuNTU3MzcwMTg1ODUyMDUxLCAwLjE2NDIxNTk5Njg2MTQ1NzgyLAorICAgICAgICAwLCAwLCAwLCAtNy41MDAxOTk3OTQ3NjkyODcsIDE3LjYyNzc5OTk4Nzc5Mjk3LCAxLjkxMDg3OTk2OTU5Njg2MjgsCisgICAgICAgIC03LjMzMDI2OTgxMzUzNzU5OCwgMTcuMjI4NTAwMzY2MjEwOTM4LCAxLjIwOTIyOTk0NjEzNjQ3NDYsIC02LjQyMjAzOTk4NTY1NjczOCwgMTUuMDkzNzk5NTkxMDY0NDUzLCAwLjU5NzE0OTAxNDQ3Mjk2MTQsCisgICAgICAgIC00LjE3Nzg0MDIzMjg0OTEyMSwgOS44MTkyNTk2NDM1NTQ2ODgsIDAuMTY0MjE1OTk2ODYxNDU3ODIsIDAsIDAsIDAsCisgICAgICAgIDAsIDE5LjEwODgwMDg4ODA2MTUyMywgMS45MTA4Nzk5Njk1OTY4NjI4LCAwLCAxOC42NzU4MDAzMjM0ODYzMjgsIDEuMjA5MjI5OTQ2MTM2NDc0NiwKKyAgICAgICAgMCwgMTYuMzYxOTAwMzI5NTg5ODQ0LCAwLjU5NzE0OTAxNDQ3Mjk2MTQsIDAsIDEwLjY0NDIwMDMyNTAxMjIwNywgMC4xNjQyMTU5OTY4NjE0NTc4MiwKKyAgICAgICAgMCwgMCwgMCwgMCwgMTkuMTA4ODAwODg4MDYxNTIzLCAxLjkxMDg3OTk2OTU5Njg2MjgsCisgICAgICAgIDcuNTAwMTk5Nzk0NzY5Mjg3LCAxNy42Mjc3OTk5ODc3OTI5NywgMS45MTA4Nzk5Njk1OTY4NjI4LCA3LjMzMDI2OTgxMzUzNzU5OCwgMTcuMjI4NTAwMzY2MjEwOTM4LCAxLjIwOTIyOTk0NjEzNjQ3NDYsCisgICAgICAgIDAsIDE4LjY3NTgwMDMyMzQ4NjMyOCwgMS4yMDkyMjk5NDYxMzY0NzQ2LCA2LjQyMjAzOTk4NTY1NjczOCwgMTUuMDkzNzk5NTkxMDY0NDUzLCAwLjU5NzE0OTAxNDQ3Mjk2MTQsCisgICAgICAgIDAsIDE2LjM2MTkwMDMyOTU4OTg0NCwgMC41OTcxNDkwMTQ0NzI5NjE0LCA0LjE3Nzg0MDIzMjg0OTEyMSwgOS44MTkyNTk2NDM1NTQ2ODgsIDAuMTY0MjE1OTk2ODYxNDU3ODIsCisgICAgICAgIDAsIDEwLjY0NDIwMDMyNTAxMjIwNywgMC4xNjQyMTU5OTY4NjE0NTc4MiwgMCwgMCwgMCwKKyAgICAgICAgMCwgMCwgMCwgMTMuNTY3MTk5NzA3MDMxMjUsIDEzLjU2NzE5OTcwNzAzMTI1LCAxLjkxMDg3OTk2OTU5Njg2MjgsCisgICAgICAgIDEzLjI1OTc5OTk1NzI3NTM5LCAxMy4yNTk3OTk5NTcyNzUzOSwgMS4yMDkyMjk5NDYxMzY0NzQ2LCAxMS42MTY5MDA0NDQwMzA3NjIsIDExLjYxNjkwMDQ0NDAzMDc2MiwgMC41OTcxNDkwMTQ0NzI5NjE0LAorICAgICAgICA3LjU1NzM3MDE4NTg1MjA1MSwgNy41NTczNzAxODU4NTIwNTEsIDAuMTY0MjE1OTk2ODYxNDU3ODIsIDAsIDAsIDAsCisgICAgICAgIDE3LjYyNzc5OTk4Nzc5Mjk3LCA3LjUwMDE5OTc5NDc2OTI4NywgMS45MTA4Nzk5Njk1OTY4NjI4LCAxNy4yMjg1MDAzNjYyMTA5MzgsIDcuMzMwMjY5ODEzNTM3NTk4LCAxLjIwOTIyOTk0NjEzNjQ3NDYsCisgICAgICAgIDE1LjA5Mzc5OTU5MTA2NDQ1MywgNi40MjIwMzk5ODU2NTY3MzgsIDAuNTk3MTQ5MDE0NDcyOTYxNCwgOS44MTkyNTk2NDM1NTQ2ODgsIDQuMTc3ODQwMjMyODQ5MTIxLCAwLjE2NDIxNTk5Njg2MTQ1NzgyLAorICAgICAgICAwLCAwLCAwLCAxOS4xMDg4MDA4ODgwNjE1MjMsIDAsIDEuOTEwODc5OTY5NTk2ODYyOCwKKyAgICAgICAgMTguNjc1ODAwMzIzNDg2MzI4LCAwLCAxLjIwOTIyOTk0NjEzNjQ3NDYsIDE2LjM2MTkwMDMyOTU4OTg0NCwgMCwgMC41OTcxNDkwMTQ0NzI5NjE0LAorICAgICAgICAxMC42NDQyMDAzMjUwMTIyMDcsIDAsIDAuMTY0MjE1OTk2ODYxNDU3ODIsIDAsIDAsIDAsCisgICAgICAgIC0yMC4zODI2OTk5NjY0MzA2NjQsIDAsIDI1Ljc5Njg5OTc5NTUzMjIyNywgLTIwLjE4MzU5OTQ3MjA0NTksIC0yLjE0OTczOTk4MDY5NzYzMiwgMjYuMjQ0Njk5NDc4MTQ5NDE0LAorICAgICAgICAtMjYuNTExNjAwNDk0Mzg0NzY2LCAtMi4xNDk3Mzk5ODA2OTc2MzIsIDI2LjE5Mjg5OTcwMzk3OTQ5MiwgLTI2LjMzNDI5OTA4NzUyNDQxNCwgMCwgMjUuNzUyMDk5OTkwODQ0NzI3LAorICAgICAgICAtMzEuMTU2Mjk5NTkxMDY0NDUzLCAtMi4xNDk3Mzk5ODA2OTc2MzIsIDI1LjgzMDQwMDQ2NjkxODk0NSwgLTMwLjczMzI5OTI1NTM3MTA5NCwgMCwgMjUuNDM4NjAwNTQwMTYxMTMzLAorICAgICAgICAtMzQuMDE2OTk4MjkxMDE1NjI1LCAtMi4xNDk3Mzk5ODA2OTc2MzIsIDI0Ljg0NjUwMDM5NjcyODUxNiwgLTMzLjQ2MDMwMDQ0NTU1NjY0LCAwLCAyNC41ODc2MDA3MDgwMDc4MTIsCisgICAgICAgIC0zNC45OTI5MDA4NDgzODg2NywgLTIuMTQ5NzM5OTgwNjk3NjMyLCAyMi45MzA1MDAwMzA1MTc1NzgsIC0zNC4zOTU4MDE1NDQxODk0NSwgMCwgMjIuOTMwNTAwMDMwNTE3NTc4LAorICAgICAgICAtMTkuNzQ1NzAwODM2MTgxNjQsIC0yLjg2NjMxOTg5NDc5MDY0OTQsIDI3LjIyOTk5OTU0MjIzNjMyOCwgLTI2LjkwMTU5OTg4NDAzMzIwMywgLTIuODY2MzE5ODk0NzkwNjQ5NCwgMjcuMTYyNzk5ODM1MjA1MDc4LAorICAgICAgICAtMzIuMDg2Nzk5NjIxNTgyMDMsIC0yLjg2NjMxOTg5NDc5MDY0OTQsIDI2LjY5MjYwMDI1MDI0NDE0LCAtMzUuMjQxNzk4NDAwODc4OTA2LCAtMi44NjYzMTk4OTQ3OTA2NDk0LCAyNS40MTYyMDA2Mzc4MTczODMsCisgICAgICAgIC0zNi4zMDY3MDE2NjAxNTYyNSwgLTIuODY2MzE5ODk0NzkwNjQ5NCwgMjIuOTMwNTAwMDMwNTE3NTc4LCAtMTkuMzA3ODAwMjkyOTY4NzUsIC0yLjE0OTczOTk4MDY5NzYzMiwgMjguMjE1Mjk5NjA2MzIzMjQyLAorICAgICAgICAtMjcuMjkxNTk5MjczNjgxNjQsIC0yLjE0OTczOTk4MDY5NzYzMiwgMjguMTMyNjk5OTY2NDMwNjY0LCAtMzMuMDE3Mzk4ODM0MjI4NTE2LCAtMi4xNDk3Mzk5ODA2OTc2MzIsIDI3LjU1NDcwMDg1MTQ0MDQzLAorICAgICAgICAtMzYuNDY2NDk5MzI4NjEzMjgsIC0yLjE0OTczOTk4MDY5NzYzMiwgMjUuOTg1Nzk5Nzg5NDI4NzEsIC0zNy42MjAzOTk0NzUwOTc2NTYsIC0yLjE0OTczOTk4MDY5NzYzMiwgMjIuOTMwNTAwMDMwNTE3NTc4LAorICAgICAgICAtMTkuMTA4ODAwODg4MDYxNTIzLCAwLCAyOC42NjMyMDAzNzg0MTc5NywgLTI3LjQ2ODkwMDY4MDU0MTk5MiwgMCwgMjguNTczNjAwNzY5MDQyOTcsCisgICAgICAgIC0zMy40NDAzOTkxNjk5MjE4NzUsIDAsIDI3Ljk0NjU5OTk2MDMyNzE1LCAtMzcuMDIzMzAwMTcwODk4NDQsIDAsIDI2LjI0NDY5OTQ3ODE0OTQxNCwKKyAgICAgICAgLTM4LjIxNzYwMTc3NjEyMzA1LCAwLCAyMi45MzA1MDAwMzA1MTc1NzgsIC0xOS4xMDg4MDA4ODgwNjE1MjMsIDAsIDI4LjY2MzIwMDM3ODQxNzk3LAorICAgICAgICAtMTkuMzA3ODAwMjkyOTY4NzUsIDIuMTQ5NzM5OTgwNjk3NjMyLCAyOC4yMTUyOTk2MDYzMjMyNDIsIC0yNy4yOTE1OTkyNzM2ODE2NCwgMi4xNDk3Mzk5ODA2OTc2MzIsIDI4LjEzMjY5OTk2NjQzMDY2NCwKKyAgICAgICAgLTI3LjQ2ODkwMDY4MDU0MTk5MiwgMCwgMjguNTczNjAwNzY5MDQyOTcsIC0zMy4wMTczOTg4MzQyMjg1MTYsIDIuMTQ5NzM5OTgwNjk3NjMyLCAyNy41NTQ3MDA4NTE0NDA0MywKKyAgICAgICAgLTMzLjQ0MDM5OTE2OTkyMTg3NSwgMCwgMjcuOTQ2NTk5OTYwMzI3MTUsIC0zNi40NjY0OTkzMjg2MTMyOCwgMi4xNDk3Mzk5ODA2OTc2MzIsIDI1Ljk4NTc5OTc4OTQyODcxLAorICAgICAgICAtMzcuMDIzMzAwMTcwODk4NDQsIDAsIDI2LjI0NDY5OTQ3ODE0OTQxNCwgLTM3LjYyMDM5OTQ3NTA5NzY1NiwgMi4xNDk3Mzk5ODA2OTc2MzIsIDIyLjkzMDUwMDAzMDUxNzU3OCwKKyAgICAgICAgLTM4LjIxNzYwMTc3NjEyMzA1LCAwLCAyMi45MzA1MDAwMzA1MTc1NzgsIC0xOS43NDU3MDA4MzYxODE2NCwgMi44NjYzMTk4OTQ3OTA2NDk0LCAyNy4yMjk5OTk1NDIyMzYzMjgsCisgICAgICAgIC0yNi45MDE1OTk4ODQwMzMyMDMsIDIuODY2MzE5ODk0NzkwNjQ5NCwgMjcuMTYyNzk5ODM1MjA1MDc4LCAtMzIuMDg2Nzk5NjIxNTgyMDMsIDIuODY2MzE5ODk0NzkwNjQ5NCwgMjYuNjkyNjAwMjUwMjQ0MTQsCisgICAgICAgIC0zNS4yNDE3OTg0MDA4Nzg5MDYsIDIuODY2MzE5ODk0NzkwNjQ5NCwgMjUuNDE2MjAwNjM3ODE3MzgzLCAtMzYuMzA2NzAxNjYwMTU2MjUsIDIuODY2MzE5ODk0NzkwNjQ5NCwgMjIuOTMwNTAwMDMwNTE3NTc4LAorICAgICAgICAtMjAuMTgzNTk5NDcyMDQ1OSwgMi4xNDk3Mzk5ODA2OTc2MzIsIDI2LjI0NDY5OTQ3ODE0OTQxNCwgLTI2LjUxMTYwMDQ5NDM4NDc2NiwgMi4xNDk3Mzk5ODA2OTc2MzIsIDI2LjE5Mjg5OTcwMzk3OTQ5MiwKKyAgICAgICAgLTMxLjE1NjI5OTU5MTA2NDQ1MywgMi4xNDk3Mzk5ODA2OTc2MzIsIDI1LjgzMDQwMDQ2NjkxODk0NSwgLTM0LjAxNjk5ODI5MTAxNTYyNSwgMi4xNDk3Mzk5ODA2OTc2MzIsIDI0Ljg0NjUwMDM5NjcyODUxNiwKKyAgICAgICAgLTM0Ljk5MjkwMDg0ODM4ODY3LCAyLjE0OTczOTk4MDY5NzYzMiwgMjIuOTMwNTAwMDMwNTE3NTc4LCAtMjAuMzgyNjk5OTY2NDMwNjY0LCAwLCAyNS43OTY4OTk3OTU1MzIyMjcsCisgICAgICAgIC0yNi4zMzQyOTkwODc1MjQ0MTQsIDAsIDI1Ljc1MjA5OTk5MDg0NDcyNywgLTMwLjczMzI5OTI1NTM3MTA5NCwgMCwgMjUuNDM4NjAwNTQwMTYxMTMzLAorICAgICAgICAtMzMuNDYwMzAwNDQ1NTU2NjQsIDAsIDI0LjU4NzYwMDcwODAwNzgxMiwgLTM0LjM5NTgwMTU0NDE4OTQ1LCAwLCAyMi45MzA1MDAwMzA1MTc1NzgsCisgICAgICAgIC0zNC4zOTU4MDE1NDQxODk0NSwgMCwgMjIuOTMwNTAwMDMwNTE3NTc4LCAtMzQuOTkyOTAwODQ4Mzg4NjcsIC0yLjE0OTczOTk4MDY5NzYzMiwgMjIuOTMwNTAwMDMwNTE3NTc4LAorICAgICAgICAtMzQuNDQwODk4ODk1MjYzNjcsIC0yLjE0OTczOTk4MDY5NzYzMiwgMjAuMDgyMTk5MDk2Njc5Njg4LCAtMzMuODk4MjAwOTg4NzY5NTMsIDAsIDIwLjMzMjg5OTA5MzYyNzkzLAorICAgICAgICAtMzIuNzExMjk5ODk2MjQwMjM0LCAtMi4xNDk3Mzk5ODA2OTc2MzIsIDE2LjgxNTI5OTk4Nzc5Mjk3LCAtMzIuMzI1Njk4ODUyNTM5MDYsIDAsIDE3LjE5NzkwMDc3MjA5NDcyNywKKyAgICAgICAgLTI5LjY5NDIwMDUxNTc0NzA3LCAtMi4xNDk3Mzk5ODA2OTc2MzIsIDEzLjU5MDQ5OTg3NzkyOTY4OCwgLTI5LjU1ODkwMDgzMzEyOTg4MywgMCwgMTQuMDYyODk5NTg5NTM4NTc0LAorICAgICAgICAtMjUuMjc5MzAwNjg5Njk3MjY2LCAtMi4xNDk3Mzk5ODA2OTc2MzIsIDEwLjg2ODEwMDE2NjMyMDgsIC0yNS40NzgzOTkyNzY3MzM0LCAwLCAxMS40NjUyOTk2MDYzMjMyNDIsCisgICAgICAgIC0zNi4zMDY3MDE2NjAxNTYyNSwgLTIuODY2MzE5ODk0NzkwNjQ5NCwgMjIuOTMwNTAwMDMwNTE3NTc4LCAtMzUuNjM0ODk5MTM5NDA0MywgLTIuODY2MzE5ODk0NzkwNjQ5NCwgMTkuNTMwNTAwNDExOTg3MzA1LAorICAgICAgICAtMzMuNTU5Nzk5MTk0MzM1OTQsIC0yLjg2NjMxOTg5NDc5MDY0OTQsIDE1Ljk3MzY5OTU2OTcwMjE0OCwgLTI5Ljk5MTgwMDMwODIyNzU0LCAtMi44NjYzMTk4OTQ3OTA2NDk0LCAxMi41NTEzMDAwNDg4MjgxMjUsCisgICAgICAgIC0yNC44NDE0MDAxNDY0ODQzNzUsIC0yLjg2NjMxOTg5NDc5MDY0OTQsIDkuNTU0Mzg5OTUzNjEzMjgxLCAtMzcuNjIwMzk5NDc1MDk3NjU2LCAtMi4xNDk3Mzk5ODA2OTc2MzIsIDIyLjkzMDUwMDAzMDUxNzU3OCwKKyAgICAgICAgLTM2LjgyODg5OTM4MzU0NDkyLCAtMi4xNDk3Mzk5ODA2OTc2MzIsIDE4Ljk3ODc5OTgxOTk0NjI5LCAtMzQuNDA4MTk5MzEwMzAyNzM0LCAtMi4xNDk3Mzk5ODA2OTc2MzIsIDE1LjEzMjEwMDEwNTI4NTY0NSwKKyAgICAgICAgLTMwLjI4OTQ5OTI4MjgzNjkxNCwgLTIuMTQ5NzM5OTgwNjk3NjMyLCAxMS41MTIyMDAzNTU1Mjk3ODUsIC0yNC40MDM0OTk2MDMyNzE0ODQsIC0yLjE0OTczOTk4MDY5NzYzMiwgOC4yNDA2NTk3MTM3NDUxMTcsCisgICAgICAgIC0zOC4yMTc2MDE3NzYxMjMwNSwgMCwgMjIuOTMwNTAwMDMwNTE3NTc4LCAtMzcuMzcxNjAxMTA0NzM2MzMsIDAsIDE4LjcyODA5OTgyMjk5ODA0NywKKyAgICAgICAgLTM0Ljc5Mzg5OTUzNjEzMjgxLCAwLCAxNC43NDk2MDA0MTA0NjE0MjYsIC0zMC40MjQ4MDA4NzI4MDI3MzQsIDAsIDExLjAzOTc5OTY5MDI0NjU4MiwKKyAgICAgICAgLTI0LjIwNDUwMDE5ODM2NDI1OCwgMCwgNy42NDM1MDk4NjQ4MDcxMjksIC0zOC4yMTc2MDE3NzYxMjMwNSwgMCwgMjIuOTMwNTAwMDMwNTE3NTc4LAorICAgICAgICAtMzcuNjIwMzk5NDc1MDk3NjU2LCAyLjE0OTczOTk4MDY5NzYzMiwgMjIuOTMwNTAwMDMwNTE3NTc4LCAtMzYuODI4ODk5MzgzNTQ0OTIsIDIuMTQ5NzM5OTgwNjk3NjMyLCAxOC45Nzg3OTk4MTk5NDYyOSwKKyAgICAgICAgLTM3LjM3MTYwMTEwNDczNjMzLCAwLCAxOC43MjgwOTk4MjI5OTgwNDcsIC0zNC40MDgxOTkzMTAzMDI3MzQsIDIuMTQ5NzM5OTgwNjk3NjMyLCAxNS4xMzIxMDAxMDUyODU2NDUsCisgICAgICAgIC0zNC43OTM4OTk1MzYxMzI4MSwgMCwgMTQuNzQ5NjAwNDEwNDYxNDI2LCAtMzAuMjg5NDk5MjgyODM2OTE0LCAyLjE0OTczOTk4MDY5NzYzMiwgMTEuNTEyMjAwMzU1NTI5Nzg1LAorICAgICAgICAtMzAuNDI0ODAwODcyODAyNzM0LCAwLCAxMS4wMzk3OTk2OTAyNDY1ODIsIC0yNC40MDM0OTk2MDMyNzE0ODQsIDIuMTQ5NzM5OTgwNjk3NjMyLCA4LjI0MDY1OTcxMzc0NTExNywKKyAgICAgICAgLTI0LjIwNDUwMDE5ODM2NDI1OCwgMCwgNy42NDM1MDk4NjQ4MDcxMjksIC0zNi4zMDY3MDE2NjAxNTYyNSwgMi44NjYzMTk4OTQ3OTA2NDk0LCAyMi45MzA1MDAwMzA1MTc1NzgsCisgICAgICAgIC0zNS42MzQ4OTkxMzk0MDQzLCAyLjg2NjMxOTg5NDc5MDY0OTQsIDE5LjUzMDUwMDQxMTk4NzMwNSwgLTMzLjU1OTc5OTE5NDMzNTk0LCAyLjg2NjMxOTg5NDc5MDY0OTQsIDE1Ljk3MzY5OTU2OTcwMjE0OCwKKyAgICAgICAgLTI5Ljk5MTgwMDMwODIyNzU0LCAyLjg2NjMxOTg5NDc5MDY0OTQsIDEyLjU1MTMwMDA0ODgyODEyNSwgLTI0Ljg0MTQwMDE0NjQ4NDM3NSwgMi44NjYzMTk4OTQ3OTA2NDk0LCA5LjU1NDM4OTk1MzYxMzI4MSwKKyAgICAgICAgLTM0Ljk5MjkwMDg0ODM4ODY3LCAyLjE0OTczOTk4MDY5NzYzMiwgMjIuOTMwNTAwMDMwNTE3NTc4LCAtMzQuNDQwODk4ODk1MjYzNjcsIDIuMTQ5NzM5OTgwNjk3NjMyLCAyMC4wODIxOTkwOTY2Nzk2ODgsCisgICAgICAgIC0zMi43MTEyOTk4OTYyNDAyMzQsIDIuMTQ5NzM5OTgwNjk3NjMyLCAxNi44MTUyOTk5ODc3OTI5NywgLTI5LjY5NDIwMDUxNTc0NzA3LCAyLjE0OTczOTk4MDY5NzYzMiwgMTMuNTkwNDk5ODc3OTI5Njg4LAorICAgICAgICAtMjUuMjc5MzAwNjg5Njk3MjY2LCAyLjE0OTczOTk4MDY5NzYzMiwgMTAuODY4MTAwMTY2MzIwOCwgLTM0LjM5NTgwMTU0NDE4OTQ1LCAwLCAyMi45MzA1MDAwMzA1MTc1NzgsCisgICAgICAgIC0zMy44OTgyMDA5ODg3Njk1MywgMCwgMjAuMzMyODk5MDkzNjI3OTMsIC0zMi4zMjU2OTg4NTI1MzkwNiwgMCwgMTcuMTk3OTAwNzcyMDk0NzI3LAorICAgICAgICAtMjkuNTU4OTAwODMzMTI5ODgzLCAwLCAxNC4wNjI4OTk1ODk1Mzg1NzQsIC0yNS40NzgzOTkyNzY3MzM0LCAwLCAxMS40NjUyOTk2MDYzMjMyNDIsCisgICAgICAgIDIxLjY1NjYwMDk1MjE0ODQzOCwgMCwgMTguMTUzMjk5MzMxNjY1MDQsIDIxLjY1NjYwMDk1MjE0ODQzOCwgLTQuNzI5NDIwMTg1MDg5MTExLCAxNi41MTExOTk5NTExNzE4NzUsCisgICAgICAgIDI4LjIzMzk5OTI1MjMxOTMzNiwgLTQuMjcwMzU5OTkyOTgwOTU3LCAxOC4zMzkwMDA3MDE5MDQyOTcsIDI3Ljc2NzQwMDc0MTU3NzE1LCAwLCAxOS41NTY2MDA1NzA2Nzg3MSwKKyAgICAgICAgMzEuMDExODk5OTQ4MTIwMTE3LCAtMy4yNjA0NDAxMTExNjAyNzgzLCAyMi4yMjEzOTkzMDcyNTA5NzcsIDMwLjQxNDgwMDY0MzkyMDksIDAsIDIyLjkzMDUwMDAzMDUxNzU3OCwKKyAgICAgICAgMzIuNTk1NjAwMTI4MTczODMsIC0yLjI1MDUwOTk3NzM0MDY5ODIsIDI2Ljc2NDQwMDQ4MjE3NzczNCwgMzEuODY3OTAwODQ4Mzg4NjcyLCAwLCAyNy4wMjA5OTk5MDg0NDcyNjYsCisgICAgICAgIDM1LjU5MDA5OTMzNDcxNjgsIC0xLjc5MTQ1MDAyMzY1MTEyMywgMzAuNTczOTk5NDA0OTA3MjI3LCAzNC4zOTU4MDE1NDQxODk0NSwgMCwgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICAyMS42NTY2MDA5NTIxNDg0MzgsIC02LjMwNTkwMDA5Njg5MzMxMDUsIDEyLjg5ODQwMDMwNjcwMTY2LCAyOS4yNjAyOTk2ODI2MTcxODgsIC01LjY5MzgxOTk5OTY5NDgyNCwgMTUuNjYwMjAwMTE5MDE4NTU1LAorICAgICAgICAzMi4zMjU2OTg4NTI1MzkwNiwgLTQuMzQ3MjQ5OTg0NzQxMjExLCAyMC42NjEzOTk4NDEzMDg1OTQsIDM0LjE5NjcwMTA0OTgwNDY5LCAtMy4wMDA2Njk5NTYyMDcyNzU0LCAyNi4xOTk4OTk2NzM0NjE5MTQsCisgICAgICAgIDM4LjIxNzYwMTc3NjEyMzA1LCAtMi4zODg2MDAxMTEwMDc2OTA0LCAzMC41NzM5OTk0MDQ5MDcyMjcsIDIxLjY1NjYwMDk1MjE0ODQzOCwgLTQuNzI5NDIwMTg1MDg5MTExLCA5LjI4NTY3MDI4MDQ1NjU0MywKKyAgICAgICAgMzAuMjg2Njk5Mjk1MDQzOTQ1LCAtNC4yNzAzNTk5OTI5ODA5NTcsIDEyLjk4MTQ5OTY3MTkzNjAzNSwgMzMuNjM5NDAwNDgyMTc3NzM0LCAtMy4yNjA0NDAxMTExNjAyNzgzLCAxOS4xMDEyOTkyODU4ODg2NzIsCisgICAgICAgIDM1Ljc5NzkwMTE1MzU2NDQ1LCAtMi4yNTA1MDk5NzczNDA2OTgyLCAyNS42MzU0MDA3NzIwOTQ3MjcsIDQwLjg0NTAwMTIyMDcwMzEyNSwgLTEuNzkxNDUwMDIzNjUxMTIzLCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIDIxLjY1NjYwMDk1MjE0ODQzOCwgMCwgNy42NDM1MDk4NjQ4MDcxMjksIDMwLjc1MzIwMDUzMTAwNTg2LCAwLCAxMS43NjM3OTk2NjczNTgzOTgsCisgICAgICAgIDM0LjIzNjU5ODk2ODUwNTg2LCAwLCAxOC4zOTIyMDA0Njk5NzA3MDMsIDM2LjUyNTYwMDQzMzM0OTYxLCAwLCAyNS4zNzg3OTk0Mzg0NzY1NjIsCisgICAgICAgIDQyLjAzOTI5OTAxMTIzMDQ3LCAwLCAzMC41NzM5OTk0MDQ5MDcyMjcsIDIxLjY1NjYwMDk1MjE0ODQzOCwgMCwgNy42NDM1MDk4NjQ4MDcxMjksCisgICAgICAgIDIxLjY1NjYwMDk1MjE0ODQzOCwgNC43Mjk0MjAxODUwODkxMTEsIDkuMjg1NjcwMjgwNDU2NTQzLCAzMC4yODY2OTkyOTUwNDM5NDUsIDQuMjcwMzU5OTkyOTgwOTU3LCAxMi45ODE0OTk2NzE5MzYwMzUsCisgICAgICAgIDMwLjc1MzIwMDUzMTAwNTg2LCAwLCAxMS43NjM3OTk2NjczNTgzOTgsIDMzLjYzOTQwMDQ4MjE3NzczNCwgMy4yNjA0NDAxMTExNjAyNzgzLCAxOS4xMDEyOTkyODU4ODg2NzIsCisgICAgICAgIDM0LjIzNjU5ODk2ODUwNTg2LCAwLCAxOC4zOTIyMDA0Njk5NzA3MDMsIDM1Ljc5NzkwMTE1MzU2NDQ1LCAyLjI1MDUwOTk3NzM0MDY5ODIsIDI1LjYzNTQwMDc3MjA5NDcyNywKKyAgICAgICAgMzYuNTI1NjAwNDMzMzQ5NjEsIDAsIDI1LjM3ODc5OTQzODQ3NjU2MiwgNDAuODQ1MDAxMjIwNzAzMTI1LCAxLjc5MTQ1MDAyMzY1MTEyMywgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICA0Mi4wMzkyOTkwMTEyMzA0NywgMCwgMzAuNTczOTk5NDA0OTA3MjI3LCAyMS42NTY2MDA5NTIxNDg0MzgsIDYuMzA1OTAwMDk2ODkzMzEwNSwgMTIuODk4NDAwMzA2NzAxNjYsCisgICAgICAgIDI5LjI2MDI5OTY4MjYxNzE4OCwgNS42OTM4MTk5OTk2OTQ4MjQsIDE1LjY2MDIwMDExOTAxODU1NSwgMzIuMzI1Njk4ODUyNTM5MDYsIDQuMzQ3MjQ5OTg0NzQxMjExLCAyMC42NjEzOTk4NDEzMDg1OTQsCisgICAgICAgIDM0LjE5NjcwMTA0OTgwNDY5LCAzLjAwMDY2OTk1NjIwNzI3NTQsIDI2LjE5OTg5OTY3MzQ2MTkxNCwgMzguMjE3NjAxNzc2MTIzMDUsIDIuMzg4NjAwMTExMDA3NjkwNCwgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICAyMS42NTY2MDA5NTIxNDg0MzgsIDQuNzI5NDIwMTg1MDg5MTExLCAxNi41MTExOTk5NTExNzE4NzUsIDI4LjIzMzk5OTI1MjMxOTMzNiwgNC4yNzAzNTk5OTI5ODA5NTcsIDE4LjMzOTAwMDcwMTkwNDI5NywKKyAgICAgICAgMzEuMDExODk5OTQ4MTIwMTE3LCAzLjI2MDQ0MDExMTE2MDI3ODMsIDIyLjIyMTM5OTMwNzI1MDk3NywgMzIuNTk1NjAwMTI4MTczODMsIDIuMjUwNTA5OTc3MzQwNjk4MiwgMjYuNzY0NDAwNDgyMTc3NzM0LAorICAgICAgICAzNS41OTAwOTkzMzQ3MTY4LCAxLjc5MTQ1MDAyMzY1MTEyMywgMzAuNTczOTk5NDA0OTA3MjI3LCAyMS42NTY2MDA5NTIxNDg0MzgsIDAsIDE4LjE1MzI5OTMzMTY2NTA0LAorICAgICAgICAyNy43Njc0MDA3NDE1NzcxNSwgMCwgMTkuNTU2NjAwNTcwNjc4NzEsIDMwLjQxNDgwMDY0MzkyMDksIDAsIDIyLjkzMDUwMDAzMDUxNzU3OCwKKyAgICAgICAgMzEuODY3OTAwODQ4Mzg4NjcyLCAwLCAyNy4wMjA5OTk5MDg0NDcyNjYsIDM0LjM5NTgwMTU0NDE4OTQ1LCAwLCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIDM0LjM5NTgwMTU0NDE4OTQ1LCAwLCAzMC41NzM5OTk0MDQ5MDcyMjcsIDM1LjU5MDA5OTMzNDcxNjgsIC0xLjc5MTQ1MDAyMzY1MTEyMywgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICAzNi41OTA0OTk4Nzc5Mjk2OSwgLTEuNjc5NDc5OTU2NjI2ODkyLCAzMS4xMzc2OTkxMjcxOTcyNjYsIDM1LjMxMTQwMTM2NzE4NzUsIDAsIDMxLjExMTQ5OTc4NjM3Njk1MywKKyAgICAgICAgMzcuMTg4NzAxNjI5NjM4NjcsIC0xLjQzMzE1OTk0NzM5NTMyNDcsIDMxLjMzMjU5OTYzOTg5MjU3OCwgMzUuOTg4MjAxMTQxMzU3NDIsIDAsIDMxLjI5MDU5OTgyMjk5ODA0NywKKyAgICAgICAgMzcuMjA2NjAwMTg5MjA4OTg0LCAtMS4xODY4MzAwNDM3OTI3MjQ2LCAzMS4xNDgxOTkwODE0MjA5LCAzNi4xODcxOTg2Mzg5MTYwMTYsIDAsIDMxLjExMTQ5OTc4NjM3Njk1MywKKyAgICAgICAgMzYuNDY1OTAwNDIxMTQyNTgsIC0xLjA3NDg2OTk5MDM0ODgxNiwgMzAuNTczOTk5NDA0OTA3MjI3LCAzNS42Njk3MDA2MjI1NTg1OTQsIDAsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgMzguMjE3NjAxNzc2MTIzMDUsIC0yLjM4ODYwMDExMTAwNzY5MDQsIDMwLjU3Mzk5OTQwNDkwNzIyNywgMzkuNDA0Mzk5ODcxODI2MTcsIC0yLjIzOTMxMDAyNjE2ODgyMzIsIDMxLjE5NTQ5OTQyMDE2NjAxNiwKKyAgICAgICAgMzkuODI5ODk4ODM0MjI4NTE2LCAtMS45MTA4Nzk5Njk1OTY4NjI4LCAzMS40MjQ5OTkyMzcwNjA1NDcsIDM5LjQ0OTE5OTY3NjUxMzY3LCAtMS41ODI0NTAwMzIyMzQxOTIsIDMxLjIyOTAwMDA5MTU1MjczNCwKKyAgICAgICAgMzguMjE3NjAxNzc2MTIzMDUsIC0xLjQzMzE1OTk0NzM5NTMyNDcsIDMwLjU3Mzk5OTQwNDkwNzIyNywgNDAuODQ1MDAxMjIwNzAzMTI1LCAtMS43OTE0NTAwMjM2NTExMjMsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgNDIuMjE4Mjk5ODY1NzIyNjU2LCAtMS42Nzk0Nzk5NTY2MjY4OTIsIDMxLjI1MzIwMDUzMTAwNTg2LCA0Mi40NzEwMDA2NzEzODY3MiwgLTEuNDMzMTU5OTQ3Mzk1MzI0NywgMzEuNTE3NDAwNzQxNTc3MTUsCisgICAgICAgIDQxLjY5MTY5OTk4MTY4OTQ1LCAtMS4xODY4MzAwNDM3OTI3MjQ2LCAzMS4zMDk5MDAyODM4MTM0NzcsIDM5Ljk2OTIwMDEzNDI3NzM0NCwgLTEuMDc0ODY5OTkwMzQ4ODE2LCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIDQyLjAzOTI5OTAxMTIzMDQ3LCAwLCAzMC41NzM5OTk0MDQ5MDcyMjcsIDQzLjQ5NzI5OTE5NDMzNTk0LCAwLCAzMS4yNzkzOTk4NzE4MjYxNzIsCisgICAgICAgIDQzLjY3MTUwMTE1OTY2Nzk3LCAwLCAzMS41NTkyOTk0Njg5OTQxNCwgNDIuNzExMTAxNTMxOTgyNDIsIDAsIDMxLjM0NjU5OTU3ODg1NzQyMiwKKyAgICAgICAgNDAuNzY1Mzk5OTMyODYxMzMsIDAsIDMwLjU3Mzk5OTQwNDkwNzIyNywgNDIuMDM5Mjk5MDExMjMwNDcsIDAsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgNDAuODQ1MDAxMjIwNzAzMTI1LCAxLjc5MTQ1MDAyMzY1MTEyMywgMzAuNTczOTk5NDA0OTA3MjI3LCA0Mi4yMTgyOTk4NjU3MjI2NTYsIDEuNjc5NDc5OTU2NjI2ODkyLCAzMS4yNTMyMDA1MzEwMDU4NiwKKyAgICAgICAgNDMuNDk3Mjk5MTk0MzM1OTQsIDAsIDMxLjI3OTM5OTg3MTgyNjE3MiwgNDIuNDcxMDAwNjcxMzg2NzIsIDEuNDMzMTU5OTQ3Mzk1MzI0NywgMzEuNTE3NDAwNzQxNTc3MTUsCisgICAgICAgIDQzLjY3MTUwMTE1OTY2Nzk3LCAwLCAzMS41NTkyOTk0Njg5OTQxNCwgNDEuNjkxNjk5OTgxNjg5NDUsIDEuMTg2ODMwMDQzNzkyNzI0NiwgMzEuMzA5OTAwMjgzODEzNDc3LAorICAgICAgICA0Mi43MTExMDE1MzE5ODI0MiwgMCwgMzEuMzQ2NTk5NTc4ODU3NDIyLCAzOS45NjkyMDAxMzQyNzczNDQsIDEuMDc0ODY5OTkwMzQ4ODE2LCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIDQwLjc2NTM5OTkzMjg2MTMzLCAwLCAzMC41NzM5OTk0MDQ5MDcyMjcsIDM4LjIxNzYwMTc3NjEyMzA1LCAyLjM4ODYwMDExMTAwNzY5MDQsIDMwLjU3Mzk5OTQwNDkwNzIyNywKKyAgICAgICAgMzkuNDA0Mzk5ODcxODI2MTcsIDIuMjM5MzEwMDI2MTY4ODIzMiwgMzEuMTk1NDk5NDIwMTY2MDE2LCAzOS44Mjk4OTg4MzQyMjg1MTYsIDEuOTEwODc5OTY5NTk2ODYyOCwgMzEuNDI0OTk5MjM3MDYwNTQ3LAorICAgICAgICAzOS40NDkxOTk2NzY1MTM2NywgMS41ODI0NTAwMzIyMzQxOTIsIDMxLjIyOTAwMDA5MTU1MjczNCwgMzguMjE3NjAxNzc2MTIzMDUsIDEuNDMzMTU5OTQ3Mzk1MzI0NywgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICAzNS41OTAwOTkzMzQ3MTY4LCAxLjc5MTQ1MDAyMzY1MTEyMywgMzAuNTczOTk5NDA0OTA3MjI3LCAzNi41OTA0OTk4Nzc5Mjk2OSwgMS42Nzk0Nzk5NTY2MjY4OTIsIDMxLjEzNzY5OTEyNzE5NzI2NiwKKyAgICAgICAgMzcuMTg4NzAxNjI5NjM4NjcsIDEuNDMzMTU5OTQ3Mzk1MzI0NywgMzEuMzMyNTk5NjM5ODkyNTc4LCAzNy4yMDY2MDAxODkyMDg5ODQsIDEuMTg2ODMwMDQzNzkyNzI0NiwgMzEuMTQ4MTk5MDgxNDIwOSwKKyAgICAgICAgMzYuNDY1OTAwNDIxMTQyNTgsIDEuMDc0ODY5OTkwMzQ4ODE2LCAzMC41NzM5OTk0MDQ5MDcyMjcsIDM0LjM5NTgwMTU0NDE4OTQ1LCAwLCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIDM1LjMxMTQwMTM2NzE4NzUsIDAsIDMxLjExMTQ5OTc4NjM3Njk1MywgMzUuOTg4MjAxMTQxMzU3NDIsIDAsIDMxLjI5MDU5OTgyMjk5ODA0NywKKyAgICAgICAgMzYuMTg3MTk4NjM4OTE2MDE2LCAwLCAzMS4xMTE0OTk3ODYzNzY5NTMsIDM1LjY2OTcwMDYyMjU1ODU5NCwgMCwgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICAwLCAwLCA0MC4xMjgzOTg4OTUyNjM2NywgMCwgMCwgNDAuMTI4Mzk4ODk1MjYzNjcsCisgICAgICAgIDQuMDA0NDk5OTEyMjYxOTYzLCAtMS43MDc3MDAwMTQxMTQzNzk5LCAzOS41MDEzOTk5OTM4OTY0ODQsIDQuMzM5MjgwMTI4NDc5MDA0LCAwLCAzOS41MDEzOTk5OTM4OTY0ODQsCisgICAgICAgIDMuODIwNzA5OTQzNzcxMzYyMywgLTEuNjI5MDcwMDQzNTYzODQyOCwgMzcuOTc4Njk4NzMwNDY4NzUsIDQuMTQwMjMwMTc4ODMzMDA4LCAwLCAzNy45Nzg2OTg3MzA0Njg3NSwKKyAgICAgICAgMi4zMTQxNjAxMDg1NjYyODQsIC0wLjk4NTkxMjAyNDk3NDgyMywgMzYuMDk3Njk4MjExNjY5OTIsIDIuNTA4MDI5OTM3NzQ0MTQwNiwgMCwgMzYuMDk3Njk4MjExNjY5OTIsCisgICAgICAgIDIuMzUwMzc5OTQzODQ3NjU2MiwgLTEuMDAwMDMwMDQwNzQwOTY2OCwgMzQuMzk1ODAxNTQ0MTg5NDUsIDIuNTQ3ODQwMTE4NDA4MjAzLCAwLCAzNC4zOTU4MDE1NDQxODk0NSwKKyAgICAgICAgMCwgMCwgNDAuMTI4Mzk4ODk1MjYzNjcsIDMuMDg0OTE5OTI5NTA0Mzk0NSwgLTMuMDg0OTE5OTI5NTA0Mzk0NSwgMzkuNTAxMzk5OTkzODk2NDg0LAorICAgICAgICAyLjk0MzE1MDA0MzQ4NzU0OSwgLTIuOTQzMTUwMDQzNDg3NTQ5LCAzNy45Nzg2OTg3MzA0Njg3NSwgMS43ODIwMzk5OTk5NjE4NTMsIC0xLjc4MjAzOTk5OTk2MTg1MywgMzYuMDk3Njk4MjExNjY5OTIsCisgICAgICAgIDEuODA4OTU5OTYwOTM3NSwgLTEuODA4OTU5OTYwOTM3NSwgMzQuMzk1ODAxNTQ0MTg5NDUsIDAsIDAsIDQwLjEyODM5ODg5NTI2MzY3LAorICAgICAgICAxLjcwNzcwMDAxNDExNDM3OTksIC00LjAwNDQ5OTkxMjI2MTk2MywgMzkuNTAxMzk5OTkzODk2NDg0LCAxLjYyOTA3MDA0MzU2Mzg0MjgsIC0zLjgyMDcwOTk0Mzc3MTM2MjMsIDM3Ljk3ODY5ODczMDQ2ODc1LAorICAgICAgICAwLjk4NTkxMjAyNDk3NDgyMywgLTIuMzE0MTYwMTA4NTY2Mjg0LCAzNi4wOTc2OTgyMTE2Njk5MiwgMS4wMDAwMzAwNDA3NDA5NjY4LCAtMi4zNTAzNzk5NDM4NDc2NTYyLCAzNC4zOTU4MDE1NDQxODk0NSwKKyAgICAgICAgMCwgMCwgNDAuMTI4Mzk4ODk1MjYzNjcsIDAsIC00LjMzOTI4MDEyODQ3OTAwNCwgMzkuNTAxMzk5OTkzODk2NDg0LAorICAgICAgICAwLCAtNC4xNDAyMzAxNzg4MzMwMDgsIDM3Ljk3ODY5ODczMDQ2ODc1LCAwLCAtMi41MDgwMjk5Mzc3NDQxNDA2LCAzNi4wOTc2OTgyMTE2Njk5MiwKKyAgICAgICAgMCwgLTIuNTQ3ODQwMTE4NDA4MjAzLCAzNC4zOTU4MDE1NDQxODk0NSwgMCwgMCwgNDAuMTI4Mzk4ODk1MjYzNjcsCisgICAgICAgIDAsIDAsIDQwLjEyODM5ODg5NTI2MzY3LCAtMS43MDc3MDAwMTQxMTQzNzk5LCAtNC4wMDQ0OTk5MTIyNjE5NjMsIDM5LjUwMTM5OTk5Mzg5NjQ4NCwKKyAgICAgICAgMCwgLTQuMzM5MjgwMTI4NDc5MDA0LCAzOS41MDEzOTk5OTM4OTY0ODQsIC0xLjYyOTA3MDA0MzU2Mzg0MjgsIC0zLjgyMDcwOTk0Mzc3MTM2MjMsIDM3Ljk3ODY5ODczMDQ2ODc1LAorICAgICAgICAwLCAtNC4xNDAyMzAxNzg4MzMwMDgsIDM3Ljk3ODY5ODczMDQ2ODc1LCAtMC45ODU5MTIwMjQ5NzQ4MjMsIC0yLjMxNDE2MDEwODU2NjI4NCwgMzYuMDk3Njk4MjExNjY5OTIsCisgICAgICAgIDAsIC0yLjUwODAyOTkzNzc0NDE0MDYsIDM2LjA5NzY5ODIxMTY2OTkyLCAtMS4wMDAwMzAwNDA3NDA5NjY4LCAtMi4zNTAzNzk5NDM4NDc2NTYyLCAzNC4zOTU4MDE1NDQxODk0NSwKKyAgICAgICAgMCwgLTIuNTQ3ODQwMTE4NDA4MjAzLCAzNC4zOTU4MDE1NDQxODk0NSwgMCwgMCwgNDAuMTI4Mzk4ODk1MjYzNjcsCisgICAgICAgIC0zLjA4NDkxOTkyOTUwNDM5NDUsIC0zLjA4NDkxOTkyOTUwNDM5NDUsIDM5LjUwMTM5OTk5Mzg5NjQ4NCwgLTIuOTQzMTUwMDQzNDg3NTQ5LCAtMi45NDMxNTAwNDM0ODc1NDksIDM3Ljk3ODY5ODczMDQ2ODc1LAorICAgICAgICAtMS43ODIwMzk5OTk5NjE4NTMsIC0xLjc4MjAzOTk5OTk2MTg1MywgMzYuMDk3Njk4MjExNjY5OTIsIC0xLjgwODk1OTk2MDkzNzUsIC0xLjgwODk1OTk2MDkzNzUsIDM0LjM5NTgwMTU0NDE4OTQ1LAorICAgICAgICAwLCAwLCA0MC4xMjgzOTg4OTUyNjM2NywgLTQuMDA0NDk5OTEyMjYxOTYzLCAtMS43MDc3MDAwMTQxMTQzNzk5LCAzOS41MDEzOTk5OTM4OTY0ODQsCisgICAgICAgIC0zLjgyMDcwOTk0Mzc3MTM2MjMsIC0xLjYyOTA3MDA0MzU2Mzg0MjgsIDM3Ljk3ODY5ODczMDQ2ODc1LCAtMi4zMTQxNjAxMDg1NjYyODQsIC0wLjk4NTkxMjAyNDk3NDgyMywgMzYuMDk3Njk4MjExNjY5OTIsCisgICAgICAgIC0yLjM1MDM3OTk0Mzg0NzY1NjIsIC0xLjAwMDAzMDA0MDc0MDk2NjgsIDM0LjM5NTgwMTU0NDE4OTQ1LCAwLCAwLCA0MC4xMjgzOTg4OTUyNjM2NywKKyAgICAgICAgLTQuMzM5MjgwMTI4NDc5MDA0LCAwLCAzOS41MDEzOTk5OTM4OTY0ODQsIC00LjE0MDIzMDE3ODgzMzAwOCwgMCwgMzcuOTc4Njk4NzMwNDY4NzUsCisgICAgICAgIC0yLjUwODAyOTkzNzc0NDE0MDYsIDAsIDM2LjA5NzY5ODIxMTY2OTkyLCAtMi41NDc4NDAxMTg0MDgyMDMsIDAsIDM0LjM5NTgwMTU0NDE4OTQ1LAorICAgICAgICAwLCAwLCA0MC4xMjgzOTg4OTUyNjM2NywgMCwgMCwgNDAuMTI4Mzk4ODk1MjYzNjcsCisgICAgICAgIC00LjAwNDQ5OTkxMjI2MTk2MywgMS43MDc3MDAwMTQxMTQzNzk5LCAzOS41MDEzOTk5OTM4OTY0ODQsIC00LjMzOTI4MDEyODQ3OTAwNCwgMCwgMzkuNTAxMzk5OTkzODk2NDg0LAorICAgICAgICAtMy44MjA3MDk5NDM3NzEzNjIzLCAxLjYyOTA3MDA0MzU2Mzg0MjgsIDM3Ljk3ODY5ODczMDQ2ODc1LCAtNC4xNDAyMzAxNzg4MzMwMDgsIDAsIDM3Ljk3ODY5ODczMDQ2ODc1LAorICAgICAgICAtMi4zMTQxNjAxMDg1NjYyODQsIDAuOTg1OTEyMDI0OTc0ODIzLCAzNi4wOTc2OTgyMTE2Njk5MiwgLTIuNTA4MDI5OTM3NzQ0MTQwNiwgMCwgMzYuMDk3Njk4MjExNjY5OTIsCisgICAgICAgIC0yLjM1MDM3OTk0Mzg0NzY1NjIsIDEuMDAwMDMwMDQwNzQwOTY2OCwgMzQuMzk1ODAxNTQ0MTg5NDUsIC0yLjU0Nzg0MDExODQwODIwMywgMCwgMzQuMzk1ODAxNTQ0MTg5NDUsCisgICAgICAgIDAsIDAsIDQwLjEyODM5ODg5NTI2MzY3LCAtMy4wODQ5MTk5Mjk1MDQzOTQ1LCAzLjA4NDkxOTkyOTUwNDM5NDUsIDM5LjUwMTM5OTk5Mzg5NjQ4NCwKKyAgICAgICAgLTIuOTQzMTUwMDQzNDg3NTQ5LCAyLjk0MzE1MDA0MzQ4NzU0OSwgMzcuOTc4Njk4NzMwNDY4NzUsIC0xLjc4MjAzOTk5OTk2MTg1MywgMS43ODIwMzk5OTk5NjE4NTMsIDM2LjA5NzY5ODIxMTY2OTkyLAorICAgICAgICAtMS44MDg5NTk5NjA5Mzc1LCAxLjgwODk1OTk2MDkzNzUsIDM0LjM5NTgwMTU0NDE4OTQ1LCAwLCAwLCA0MC4xMjgzOTg4OTUyNjM2NywKKyAgICAgICAgLTEuNzA3NzAwMDE0MTE0Mzc5OSwgNC4wMDQ0OTk5MTIyNjE5NjMsIDM5LjUwMTM5OTk5Mzg5NjQ4NCwgLTEuNjI5MDcwMDQzNTYzODQyOCwgMy44MjA3MDk5NDM3NzEzNjIzLCAzNy45Nzg2OTg3MzA0Njg3NSwKKyAgICAgICAgLTAuOTg1OTEyMDI0OTc0ODIzLCAyLjMxNDE2MDEwODU2NjI4NCwgMzYuMDk3Njk4MjExNjY5OTIsIC0xLjAwMDAzMDA0MDc0MDk2NjgsIDIuMzUwMzc5OTQzODQ3NjU2MiwgMzQuMzk1ODAxNTQ0MTg5NDUsCisgICAgICAgIDAsIDAsIDQwLjEyODM5ODg5NTI2MzY3LCAwLCA0LjMzOTI4MDEyODQ3OTAwNCwgMzkuNTAxMzk5OTkzODk2NDg0LAorICAgICAgICAwLCA0LjE0MDIzMDE3ODgzMzAwOCwgMzcuOTc4Njk4NzMwNDY4NzUsIDAsIDIuNTA4MDI5OTM3NzQ0MTQwNiwgMzYuMDk3Njk4MjExNjY5OTIsCisgICAgICAgIDAsIDIuNTQ3ODQwMTE4NDA4MjAzLCAzNC4zOTU4MDE1NDQxODk0NSwgMCwgMCwgNDAuMTI4Mzk4ODk1MjYzNjcsCisgICAgICAgIDAsIDAsIDQwLjEyODM5ODg5NTI2MzY3LCAxLjcwNzcwMDAxNDExNDM3OTksIDQuMDA0NDk5OTEyMjYxOTYzLCAzOS41MDEzOTk5OTM4OTY0ODQsCisgICAgICAgIDAsIDQuMzM5MjgwMTI4NDc5MDA0LCAzOS41MDEzOTk5OTM4OTY0ODQsIDEuNjI5MDcwMDQzNTYzODQyOCwgMy44MjA3MDk5NDM3NzEzNjIzLCAzNy45Nzg2OTg3MzA0Njg3NSwKKyAgICAgICAgMCwgNC4xNDAyMzAxNzg4MzMwMDgsIDM3Ljk3ODY5ODczMDQ2ODc1LCAwLjk4NTkxMjAyNDk3NDgyMywgMi4zMTQxNjAxMDg1NjYyODQsIDM2LjA5NzY5ODIxMTY2OTkyLAorICAgICAgICAwLCAyLjUwODAyOTkzNzc0NDE0MDYsIDM2LjA5NzY5ODIxMTY2OTkyLCAxLjAwMDAzMDA0MDc0MDk2NjgsIDIuMzUwMzc5OTQzODQ3NjU2MiwgMzQuMzk1ODAxNTQ0MTg5NDUsCisgICAgICAgIDAsIDIuNTQ3ODQwMTE4NDA4MjAzLCAzNC4zOTU4MDE1NDQxODk0NSwgMCwgMCwgNDAuMTI4Mzk4ODk1MjYzNjcsCisgICAgICAgIDMuMDg0OTE5OTI5NTA0Mzk0NSwgMy4wODQ5MTk5Mjk1MDQzOTQ1LCAzOS41MDEzOTk5OTM4OTY0ODQsIDIuOTQzMTUwMDQzNDg3NTQ5LCAyLjk0MzE1MDA0MzQ4NzU0OSwgMzcuOTc4Njk4NzMwNDY4NzUsCisgICAgICAgIDEuNzgyMDM5OTk5OTYxODUzLCAxLjc4MjAzOTk5OTk2MTg1MywgMzYuMDk3Njk4MjExNjY5OTIsIDEuODA4OTU5OTYwOTM3NSwgMS44MDg5NTk5NjA5Mzc1LCAzNC4zOTU4MDE1NDQxODk0NSwKKyAgICAgICAgMCwgMCwgNDAuMTI4Mzk4ODk1MjYzNjcsIDQuMDA0NDk5OTEyMjYxOTYzLCAxLjcwNzcwMDAxNDExNDM3OTksIDM5LjUwMTM5OTk5Mzg5NjQ4NCwKKyAgICAgICAgMy44MjA3MDk5NDM3NzEzNjIzLCAxLjYyOTA3MDA0MzU2Mzg0MjgsIDM3Ljk3ODY5ODczMDQ2ODc1LCAyLjMxNDE2MDEwODU2NjI4NCwgMC45ODU5MTIwMjQ5NzQ4MjMsIDM2LjA5NzY5ODIxMTY2OTkyLAorICAgICAgICAyLjM1MDM3OTk0Mzg0NzY1NjIsIDEuMDAwMDMwMDQwNzQwOTY2OCwgMzQuMzk1ODAxNTQ0MTg5NDUsIDAsIDAsIDQwLjEyODM5ODg5NTI2MzY3LAorICAgICAgICA0LjMzOTI4MDEyODQ3OTAwNCwgMCwgMzkuNTAxMzk5OTkzODk2NDg0LCA0LjE0MDIzMDE3ODgzMzAwOCwgMCwgMzcuOTc4Njk4NzMwNDY4NzUsCisgICAgICAgIDIuNTA4MDI5OTM3NzQ0MTQwNiwgMCwgMzYuMDk3Njk4MjExNjY5OTIsIDIuNTQ3ODQwMTE4NDA4MjAzLCAwLCAzNC4zOTU4MDE1NDQxODk0NSwKKyAgICAgICAgMi41NDc4NDAxMTg0MDgyMDMsIDAsIDM0LjM5NTgwMTU0NDE4OTQ1LCAyLjM1MDM3OTk0Mzg0NzY1NjIsIC0xLjAwMDAzMDA0MDc0MDk2NjgsIDM0LjM5NTgwMTU0NDE4OTQ1LAorICAgICAgICA1LjM2MTgwMDE5Mzc4NjYyMSwgLTIuMjgxMzEwMDgxNDgxOTMzNiwgMzMuMjYxMTk5OTUxMTcxODc1LCA1LjgxMjI1MDEzNzMyOTEwMiwgMCwgMzMuMjYxMTk5OTUxMTcxODc1LAorICAgICAgICA5LjY5NTMyMDEyOTM5NDUzMSwgLTQuMTI1MTEwMTQ5MzgzNTQ1LCAzMi40ODQ5MDE0MjgyMjI2NTYsIDEwLjUwOTc5OTk1NzI3NTM5LCAwLCAzMi40ODQ5MDE0MjgyMjI2NTYsCisgICAgICAgIDEzLjU4ODEwMDQzMzM0OTYxLCAtNS43ODE0MDAyMDM3MDQ4MzQsIDMxLjcwODU5OTA5MDU3NjE3MiwgMTQuNzI5NzAwMDg4NTAwOTc3LCAwLCAzMS43MDg1OTkwOTA1NzYxNzIsCisgICAgICAgIDE1LjI3NzUwMDE1MjU4Nzg5LCAtNi41MDAxNzAyMzA4NjU0Nzg1LCAzMC41NzM5OTk0MDQ5MDcyMjcsIDE2LjU2MDg5OTczNDQ5NzA3LCAwLCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIDEuODA4OTU5OTYwOTM3NSwgLTEuODA4OTU5OTYwOTM3NSwgMzQuMzk1ODAxNTQ0MTg5NDUsIDQuMTI2Njk5OTI0NDY4OTk0LCAtNC4xMjY2OTk5MjQ0Njg5OTQsIDMzLjI2MTE5OTk1MTE3MTg3NSwKKyAgICAgICAgNy40NjE5Nzk4NjYwMjc4MzIsIC03LjQ2MTk3OTg2NjAyNzgzMiwgMzIuNDg0OTAxNDI4MjIyNjU2LCAxMC40NTgxMDAzMTg5MDg2OTEsIC0xMC40NTgxMDAzMTg5MDg2OTEsIDMxLjcwODU5OTA5MDU3NjE3MiwKKyAgICAgICAgMTEuNzU4Mjk5ODI3NTc1Njg0LCAtMTEuNzU4Mjk5ODI3NTc1Njg0LCAzMC41NzM5OTk0MDQ5MDcyMjcsIDEuMDAwMDMwMDQwNzQwOTY2OCwgLTIuMzUwMzc5OTQzODQ3NjU2MiwgMzQuMzk1ODAxNTQ0MTg5NDUsCisgICAgICAgIDIuMjgxMzEwMDgxNDgxOTMzNiwgLTUuMzYxODAwMTkzNzg2NjIxLCAzMy4yNjExOTk5NTExNzE4NzUsIDQuMTI1MTEwMTQ5MzgzNTQ1LCAtOS42OTUzMjAxMjkzOTQ1MzEsIDMyLjQ4NDkwMTQyODIyMjY1NiwKKyAgICAgICAgNS43ODE0MDAyMDM3MDQ4MzQsIC0xMy41ODgxMDA0MzMzNDk2MSwgMzEuNzA4NTk5MDkwNTc2MTcyLCA2LjUwMDE3MDIzMDg2NTQ3ODUsIC0xNS4yNzc1MDAxNTI1ODc4OSwgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICAwLCAtMi41NDc4NDAxMTg0MDgyMDMsIDM0LjM5NTgwMTU0NDE4OTQ1LCAwLCAtNS44MTIyNTAxMzczMjkxMDIsIDMzLjI2MTE5OTk1MTE3MTg3NSwKKyAgICAgICAgMCwgLTEwLjUwOTc5OTk1NzI3NTM5LCAzMi40ODQ5MDE0MjgyMjI2NTYsIDAsIC0xNC43Mjk3MDAwODg1MDA5NzcsIDMxLjcwODU5OTA5MDU3NjE3MiwKKyAgICAgICAgMCwgLTE2LjU2MDg5OTczNDQ5NzA3LCAzMC41NzM5OTk0MDQ5MDcyMjcsIDAsIC0yLjU0Nzg0MDExODQwODIwMywgMzQuMzk1ODAxNTQ0MTg5NDUsCisgICAgICAgIC0xLjAwMDAzMDA0MDc0MDk2NjgsIC0yLjM1MDM3OTk0Mzg0NzY1NjIsIDM0LjM5NTgwMTU0NDE4OTQ1LCAtMi4yODEzMTAwODE0ODE5MzM2LCAtNS4zNjE4MDAxOTM3ODY2MjEsIDMzLjI2MTE5OTk1MTE3MTg3NSwKKyAgICAgICAgMCwgLTUuODEyMjUwMTM3MzI5MTAyLCAzMy4yNjExOTk5NTExNzE4NzUsIC00LjEyNTExMDE0OTM4MzU0NSwgLTkuNjk1MzIwMTI5Mzk0NTMxLCAzMi40ODQ5MDE0MjgyMjI2NTYsCisgICAgICAgIDAsIC0xMC41MDk3OTk5NTcyNzUzOSwgMzIuNDg0OTAxNDI4MjIyNjU2LCAtNS43ODE0MDAyMDM3MDQ4MzQsIC0xMy41ODgxMDA0MzMzNDk2MSwgMzEuNzA4NTk5MDkwNTc2MTcyLAorICAgICAgICAwLCAtMTQuNzI5NzAwMDg4NTAwOTc3LCAzMS43MDg1OTkwOTA1NzYxNzIsIC02LjUwMDE3MDIzMDg2NTQ3ODUsIC0xNS4yNzc1MDAxNTI1ODc4OSwgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICAwLCAtMTYuNTYwODk5NzM0NDk3MDcsIDMwLjU3Mzk5OTQwNDkwNzIyNywgLTEuODA4OTU5OTYwOTM3NSwgLTEuODA4OTU5OTYwOTM3NSwgMzQuMzk1ODAxNTQ0MTg5NDUsCisgICAgICAgIC00LjEyNjY5OTkyNDQ2ODk5NCwgLTQuMTI2Njk5OTI0NDY4OTk0LCAzMy4yNjExOTk5NTExNzE4NzUsIC03LjQ2MTk3OTg2NjAyNzgzMiwgLTcuNDYxOTc5ODY2MDI3ODMyLCAzMi40ODQ5MDE0MjgyMjI2NTYsCisgICAgICAgIC0xMC40NTgxMDAzMTg5MDg2OTEsIC0xMC40NTgxMDAzMTg5MDg2OTEsIDMxLjcwODU5OTA5MDU3NjE3MiwgLTExLjc1ODI5OTgyNzU3NTY4NCwgLTExLjc1ODI5OTgyNzU3NTY4NCwgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICAtMi4zNTAzNzk5NDM4NDc2NTYyLCAtMS4wMDAwMzAwNDA3NDA5NjY4LCAzNC4zOTU4MDE1NDQxODk0NSwgLTUuMzYxODAwMTkzNzg2NjIxLCAtMi4yODEzMTAwODE0ODE5MzM2LCAzMy4yNjExOTk5NTExNzE4NzUsCisgICAgICAgIC05LjY5NTMyMDEyOTM5NDUzMSwgLTQuMTI1MTEwMTQ5MzgzNTQ1LCAzMi40ODQ5MDE0MjgyMjI2NTYsIC0xMy41ODgxMDA0MzMzNDk2MSwgLTUuNzgxNDAwMjAzNzA0ODM0LCAzMS43MDg1OTkwOTA1NzYxNzIsCisgICAgICAgIC0xNS4yNzc1MDAxNTI1ODc4OSwgLTYuNTAwMTcwMjMwODY1NDc4NSwgMzAuNTczOTk5NDA0OTA3MjI3LCAtMi41NDc4NDAxMTg0MDgyMDMsIDAsIDM0LjM5NTgwMTU0NDE4OTQ1LAorICAgICAgICAtNS44MTIyNTAxMzczMjkxMDIsIDAsIDMzLjI2MTE5OTk1MTE3MTg3NSwgLTEwLjUwOTc5OTk1NzI3NTM5LCAwLCAzMi40ODQ5MDE0MjgyMjI2NTYsCisgICAgICAgIC0xNC43Mjk3MDAwODg1MDA5NzcsIDAsIDMxLjcwODU5OTA5MDU3NjE3MiwgLTE2LjU2MDg5OTczNDQ5NzA3LCAwLCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIC0yLjU0Nzg0MDExODQwODIwMywgMCwgMzQuMzk1ODAxNTQ0MTg5NDUsIC0yLjM1MDM3OTk0Mzg0NzY1NjIsIDEuMDAwMDMwMDQwNzQwOTY2OCwgMzQuMzk1ODAxNTQ0MTg5NDUsCisgICAgICAgIC01LjM2MTgwMDE5Mzc4NjYyMSwgMi4yODEzMTAwODE0ODE5MzM2LCAzMy4yNjExOTk5NTExNzE4NzUsIC01LjgxMjI1MDEzNzMyOTEwMiwgMCwgMzMuMjYxMTk5OTUxMTcxODc1LAorICAgICAgICAtOS42OTUzMjAxMjkzOTQ1MzEsIDQuMTI1MTEwMTQ5MzgzNTQ1LCAzMi40ODQ5MDE0MjgyMjI2NTYsIC0xMC41MDk3OTk5NTcyNzUzOSwgMCwgMzIuNDg0OTAxNDI4MjIyNjU2LAorICAgICAgICAtMTMuNTg4MTAwNDMzMzQ5NjEsIDUuNzgxNDAwMjAzNzA0ODM0LCAzMS43MDg1OTkwOTA1NzYxNzIsIC0xNC43Mjk3MDAwODg1MDA5NzcsIDAsIDMxLjcwODU5OTA5MDU3NjE3MiwKKyAgICAgICAgLTE1LjI3NzUwMDE1MjU4Nzg5LCA2LjUwMDE3MDIzMDg2NTQ3ODUsIDMwLjU3Mzk5OTQwNDkwNzIyNywgLTE2LjU2MDg5OTczNDQ5NzA3LCAwLCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIC0xLjgwODk1OTk2MDkzNzUsIDEuODA4OTU5OTYwOTM3NSwgMzQuMzk1ODAxNTQ0MTg5NDUsIC00LjEyNjY5OTkyNDQ2ODk5NCwgNC4xMjY2OTk5MjQ0Njg5OTQsIDMzLjI2MTE5OTk1MTE3MTg3NSwKKyAgICAgICAgLTcuNDYxOTc5ODY2MDI3ODMyLCA3LjQ2MTk3OTg2NjAyNzgzMiwgMzIuNDg0OTAxNDI4MjIyNjU2LCAtMTAuNDU4MTAwMzE4OTA4NjkxLCAxMC40NTgxMDAzMTg5MDg2OTEsIDMxLjcwODU5OTA5MDU3NjE3MiwKKyAgICAgICAgLTExLjc1ODI5OTgyNzU3NTY4NCwgMTEuNzU4Mjk5ODI3NTc1Njg0LCAzMC41NzM5OTk0MDQ5MDcyMjcsIC0xLjAwMDAzMDA0MDc0MDk2NjgsIDIuMzUwMzc5OTQzODQ3NjU2MiwgMzQuMzk1ODAxNTQ0MTg5NDUsCisgICAgICAgIC0yLjI4MTMxMDA4MTQ4MTkzMzYsIDUuMzYxODAwMTkzNzg2NjIxLCAzMy4yNjExOTk5NTExNzE4NzUsIC00LjEyNTExMDE0OTM4MzU0NSwgOS42OTUzMjAxMjkzOTQ1MzEsIDMyLjQ4NDkwMTQyODIyMjY1NiwKKyAgICAgICAgLTUuNzgxNDAwMjAzNzA0ODM0LCAxMy41ODgxMDA0MzMzNDk2MSwgMzEuNzA4NTk5MDkwNTc2MTcyLCAtNi41MDAxNzAyMzA4NjU0Nzg1LCAxNS4yNzc1MDAxNTI1ODc4OSwgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICAwLCAyLjU0Nzg0MDExODQwODIwMywgMzQuMzk1ODAxNTQ0MTg5NDUsIDAsIDUuODEyMjUwMTM3MzI5MTAyLCAzMy4yNjExOTk5NTExNzE4NzUsCisgICAgICAgIDAsIDEwLjUwOTc5OTk1NzI3NTM5LCAzMi40ODQ5MDE0MjgyMjI2NTYsIDAsIDE0LjcyOTcwMDA4ODUwMDk3NywgMzEuNzA4NTk5MDkwNTc2MTcyLAorICAgICAgICAwLCAxNi41NjA4OTk3MzQ0OTcwNywgMzAuNTczOTk5NDA0OTA3MjI3LCAwLCAyLjU0Nzg0MDExODQwODIwMywgMzQuMzk1ODAxNTQ0MTg5NDUsCisgICAgICAgIDEuMDAwMDMwMDQwNzQwOTY2OCwgMi4zNTAzNzk5NDM4NDc2NTYyLCAzNC4zOTU4MDE1NDQxODk0NSwgMi4yODEzMTAwODE0ODE5MzM2LCA1LjM2MTgwMDE5Mzc4NjYyMSwgMzMuMjYxMTk5OTUxMTcxODc1LAorICAgICAgICAwLCA1LjgxMjI1MDEzNzMyOTEwMiwgMzMuMjYxMTk5OTUxMTcxODc1LCA0LjEyNTExMDE0OTM4MzU0NSwgOS42OTUzMjAxMjkzOTQ1MzEsIDMyLjQ4NDkwMTQyODIyMjY1NiwKKyAgICAgICAgMCwgMTAuNTA5Nzk5OTU3Mjc1MzksIDMyLjQ4NDkwMTQyODIyMjY1NiwgNS43ODE0MDAyMDM3MDQ4MzQsIDEzLjU4ODEwMDQzMzM0OTYxLCAzMS43MDg1OTkwOTA1NzYxNzIsCisgICAgICAgIDAsIDE0LjcyOTcwMDA4ODUwMDk3NywgMzEuNzA4NTk5MDkwNTc2MTcyLCA2LjUwMDE3MDIzMDg2NTQ3ODUsIDE1LjI3NzUwMDE1MjU4Nzg5LCAzMC41NzM5OTk0MDQ5MDcyMjcsCisgICAgICAgIDAsIDE2LjU2MDg5OTczNDQ5NzA3LCAzMC41NzM5OTk0MDQ5MDcyMjcsIDEuODA4OTU5OTYwOTM3NSwgMS44MDg5NTk5NjA5Mzc1LCAzNC4zOTU4MDE1NDQxODk0NSwKKyAgICAgICAgNC4xMjY2OTk5MjQ0Njg5OTQsIDQuMTI2Njk5OTI0NDY4OTk0LCAzMy4yNjExOTk5NTExNzE4NzUsIDcuNDYxOTc5ODY2MDI3ODMyLCA3LjQ2MTk3OTg2NjAyNzgzMiwgMzIuNDg0OTAxNDI4MjIyNjU2LAorICAgICAgICAxMC40NTgxMDAzMTg5MDg2OTEsIDEwLjQ1ODEwMDMxODkwODY5MSwgMzEuNzA4NTk5MDkwNTc2MTcyLCAxMS43NTgyOTk4Mjc1NzU2ODQsIDExLjc1ODI5OTgyNzU3NTY4NCwgMzAuNTczOTk5NDA0OTA3MjI3LAorICAgICAgICAyLjM1MDM3OTk0Mzg0NzY1NjIsIDEuMDAwMDMwMDQwNzQwOTY2OCwgMzQuMzk1ODAxNTQ0MTg5NDUsIDUuMzYxODAwMTkzNzg2NjIxLCAyLjI4MTMxMDA4MTQ4MTkzMzYsIDMzLjI2MTE5OTk1MTE3MTg3NSwKKyAgICAgICAgOS42OTUzMjAxMjkzOTQ1MzEsIDQuMTI1MTEwMTQ5MzgzNTQ1LCAzMi40ODQ5MDE0MjgyMjI2NTYsIDEzLjU4ODEwMDQzMzM0OTYxLCA1Ljc4MTQwMDIwMzcwNDgzNCwgMzEuNzA4NTk5MDkwNTc2MTcyLAorICAgICAgICAxNS4yNzc1MDAxNTI1ODc4OSwgNi41MDAxNzAyMzA4NjU0Nzg1LCAzMC41NzM5OTk0MDQ5MDcyMjcsIDIuNTQ3ODQwMTE4NDA4MjAzLCAwLCAzNC4zOTU4MDE1NDQxODk0NSwKKyAgICAgICAgNS44MTIyNTAxMzczMjkxMDIsIDAsIDMzLjI2MTE5OTk1MTE3MTg3NSwgMTAuNTA5Nzk5OTU3Mjc1MzksIDAsIDMyLjQ4NDkwMTQyODIyMjY1NiwKKyAgICAgICAgMTQuNzI5NzAwMDg4NTAwOTc3LCAwLCAzMS43MDg1OTkwOTA1NzYxNzIsIDE2LjU2MDg5OTczNDQ5NzA3LCAwLCAzMC41NzM5OTk0MDQ5MDcyMjcgfTsKKworZmxvYXQgdGVhcG90Tm9ybWFsc1tdID0geyAtMC45NjY3NDE5NzkxMjIxNjE5LCAwLCAtMC4yNTU3NTE5OTcyMzI0MzcxMywgLTAuODkzMDE0MDEzNzY3MjQyNCwgMC4zNjk4ODE5ODc1NzE3MTYzLCAtMC4yNTYzNDUwMDM4NDMzMDc1LAorICAgICAgICAtMC44OTM0MzcwMjc5MzEyMTM0LCAwLjM2OTEwMjAwMTE5MDE4NTU1LCAwLjI1NTk5NzAwMjEyNDc4NjQsIC0wLjk2NjgyMzk5NTExMzM3MjgsIDAsIDAuMjU1NDQzMDA2NzUzOTIxNSwKKyAgICAgICAgLTAuMDgzODc5OTk5ODE2NDE3NywgMC4wMzU1MDcwMDA5ODI3NjEzOCwgMC45OTU4NDI5OTMyNTk0Mjk5LCAtMC4wOTIwNTQwMDE5ODY5ODA0NCwgMCwgMC45OTU3NTQwMDM1MjQ3ODAzLAorICAgICAgICAwLjYyOTcyMTk5OTE2ODM5NiwgLTAuMjYwNDM3OTk1MTk1Mzg4OCwgMC43MzE4NjIwMDg1NzE2MjQ4LCAwLjY4MjA0ODk3NjQyMTM1NjIsIDAsIDAuNzMxMzA3MDI5NzI0MTIxMSwKKyAgICAgICAgMC44MDM3MjUwMDQxOTYxNjcsIC0wLjMzMjU4Mzk5MzY3MzMyNDYsIDAuNDkzMzY5MDEzMDcxMDYwMiwgMC44NzAzMDEwMDgyMjQ0ODczLCAwLCAwLjQ5MjUyMDAwNDUxMDg3OTUsCisgICAgICAgIC0wLjY4MzQwNzAwODY0NzkxODcsIDAuNjgzNDA3MDA4NjQ3OTE4NywgLTAuMjU2NzMxMDAzNTIyODcyOSwgLTAuNjgzNTMwOTg2MzA5MDUxNSwgMC42ODM1MzA5ODYzMDkwNTE1LCAwLjI1NjA2Nzk5MTI1NjcxMzg3LAorICAgICAgICAtMC4wNjQ5MjU5OTg0NDkzMjU1NiwgMC4wNjQ5MjUwMDAwNzE1MjU1NywgMC45OTU3NzU5OTc2Mzg3MDI0LCAwLjQ4MTM5NzAwMjkzNTQwOTU1LCAtMC40ODEzOTcwMDI5MzU0MDk1NSwgMC43MzI0NzA5ODkyMjcyOTQ5LAorICAgICAgICAwLjYxNDgwNDAyOTQ2NDcyMTcsIC0wLjYxNDgwNDAyOTQ2NDcyMTcsIDAuNDkzOTk3MDA3NjA4NDEzNywgLTAuMzY5ODgxOTg3NTcxNzE2MywgMC44OTMwMTQwMTM3NjcyNDI0LCAtMC4yNTYzNDUwMDM4NDMzMDc1LAorICAgICAgICAtMC4zNjkxMDIwMDExOTAxODU1NSwgMC44OTM0MzcwMjc5MzEyMTM0LCAwLjI1NTk5NTk4ODg0NTgyNTIsIC0wLjAzNTUwNzAwMDk4Mjc2MTM4LCAwLjA4Mzg3OTAwMTQzODYxNzcsIDAuOTk1ODQyOTkzMjU5NDI5OSwKKyAgICAgICAgMC4yNjA0MzkwMDg0NzQzNSwgLTAuNjI5NzIzMDEyNDQ3MzU3MiwgMC43MzE4NjA5OTUyOTI2NjM2LCAwLjMzMjU4Mzk5MzY3MzMyNDYsIC0wLjgwMzcyNTAwNDE5NjE2NywgMC40OTMzNjkwMTMwNzEwNjAyLAorICAgICAgICAtMC4wMDI4NDgwMDAwMzI4MjcyNTgsIDAuOTY2MTc2OTg2Njk0MzM1OSwgLTAuMjU3ODYyOTg1MTM0MTI0NzYsIC0wLjAwMTkyMTk5OTk2NjcyNTcwNywgMC45NjcwMDkwMDc5MzA3NTU2LCAwLjI1NDczNjAwNjI1OTkxODIsCisgICAgICAgIC0wLjAwMDI2NTAwMDAwOTY3NjQ0MTU1LCAwLjA5MjI3MTk5ODUyNDY2NTgzLCAwLjk5NTczMzk3NjM2NDEzNTcsIDAuMDAwMDIzMDAwMDAwNTEwMzY0NzcsIC0wLjY4MjA2MDAwMzI4MDYzOTYsIDAuNzMxMjk2MDAyODY0ODM3NiwKKyAgICAgICAgMCwgLTAuODcwMzAxMDA4MjI0NDg3MywgMC40OTI1MjAwMDQ1MTA4Nzk1LCAtMC4wMDI4NDgwMDAwMzI4MjcyNTgsIDAuOTY2MTc2OTg2Njk0MzM1OSwgLTAuMjU3ODYyOTg1MTM0MTI0NzYsCisgICAgICAgIDAuMzc5MDU4MDAzNDI1NTk4MTQsIDAuODUyNzcwOTg0MTcyODIxLCAtMC4zNTkyOTk5ODc1NTQ1NTAxNywgMC4zNzcxMTAwMDQ0MjUwNDg4MywgMC45MTQwOTA5OTEwMjAyMDI2LCAwLjE0OTA4NTAwMDE1NzM1NjI2LAorICAgICAgICAtMC4wMDE5MjE5OTk5NjY3MjU3MDcsIDAuOTY3MDA5MDA3OTMwNzU1NiwgMC4yNTQ3MzYwMDYyNTk5MTgyLCAwLjAyNzUwMzAwMDU3MjMyMzgsIDAuMTIyNTU1MDAyNTcwMTUyMjgsIDAuOTkyMDgwOTg2NDk5Nzg2NCwKKyAgICAgICAgLTAuMDAwMjY1MDAwMDA5Njc2NDQxNTUsIDAuMDkyMjcxOTk4NTI0NjY1ODMsIDAuOTk1NzMzOTc2MzY0MTM1NywgLTAuMjYxMDA5MDA3NjkyMzM3MDQsIC0wLjYzNTM2NTAwOTMwNzg2MTMsIDAuNzI2NzYzMDEwMDI1MDI0NCwKKyAgICAgICAgMC4wMDAwMjMwMDAwMDA1MTAzNjQ3NywgLTAuNjgyMDYwMDAzMjgwNjM5NiwgMC43MzEyOTYwMDI4NjQ4Mzc2LCAtMC4zMzI0ODQ5OTAzNTgzNTI2NiwgLTAuODA0MjcwOTgyNzQyMzA5NiwgMC40OTI1NDU5OTIxMzYwMDE2LAorICAgICAgICAwLCAtMC44NzAzMDEwMDgyMjQ0ODczLCAwLjQ5MjUyMDAwNDUxMDg3OTUsIDAuNjYzNTQ2OTc5NDI3MzM3NiwgMC42MjUyNjM5ODg5NzE3MTAyLCAtMC40MTA3OTE5OTMxNDExNzQzLAorICAgICAgICAwLjcxMjY2NDAwODE0MDU2NCwgMC42OTc2MjA5ODc4OTIxNTA5LCAwLjA3MzcyNDAwMTY0NjA0MTg3LCAwLjA5OTcyNjk5NzMxNTg4MzY0LCAwLjEyMTk4Mjk5OTE0NTk4NDY1LCAwLjk4NzUwOTAxMjIyMjI5LAorICAgICAgICAtMC40ODczMTg5OTI2MTQ3NDYxLCAtMC40ODg1NjY5OTQ2NjcwNTMyLCAwLjcyMzc1NjAxNTMwMDc1MDcsIC0wLjYxNTI0MjAwNDM5NDUzMTIsIC0wLjYxNTQ4Mzk5OTI1MjMxOTMsIDAuNDkyNjAxMDA3MjIzMTI5MywKKyAgICAgICAgMC44ODAwMjgwMDk0MTQ2NzI5LCAwLjMzODcwODk5Njc3Mjc2NjEsIC0wLjMzMjkwNjk5MTI0MzM2MjQsIDAuOTE3Mjc2OTc4NDkyNzM2OCwgMC4zNjE0OTI5OTE0NDc0NDg3MywgMC4xNjcxMTE5OTI4MzU5OTg1NCwKKyAgICAgICAgMC4xMTM1ODY5OTk0NzU5NTU5NiwgMC4wNDgwNjk5OTg2MjE5NDA2MSwgMC45OTIzNjUwMDI2MzIxNDExLCAtMC42MzQxNDkwMTQ5NDk3OTg2LCAtMC4yNjE4ODc5OTczODg4Mzk3LCAwLjcyNzUwOTAyMTc1OTAzMzIsCisgICAgICAgIC0wLjgwNDEyNjAyNDI0NjIxNTgsIC0wLjMzMjcwNDk5MTEwMjIxODYzLCAwLjQ5MjYzMzk5ODM5NDAxMjQ1LCAwLjk2NjY5MDAwMzg3MTkxNzcsIC0wLjAxMDQ1Mzk5OTk3MzgzMzU2MSwgLTAuMjU1NzM3OTkwMTQwOTE0OSwKKyAgICAgICAgMC45Njc0NDE5NzYwNzA0MDQsIC0wLjAwODEwMzAwMDAwMDExOTIxLCAwLjI1Mjk2MTk5MzIxNzQ2ODI2LCAwLjA5MzQzODk5Nzg2NDcyMzIsIC0wLjAwMTI3OTk5OTk2NzY2NDQ4MDIsIDAuOTk1NjI0MDA1Nzk0NTI1MSwKKyAgICAgICAgLTAuNjgyMTY1OTgwMzM5MDUwMywgMC4wMDAzNDI5OTk5OTI0MjY0ODQ4LCAwLjczMTE5Njk5OTU0OTg2NTcsIC0wLjg3MDMyMTk4OTA1OTQ0ODIsIDAuMDAwMDU0MDAwMDAwMDkxMDM2NzgsIDAuNDkyNDgyOTkwMDI2NDc0LAorICAgICAgICAwLjk2NjY5MDAwMzg3MTkxNzcsIC0wLjAxMDQ1Mzk5OTk3MzgzMzU2MSwgLTAuMjU1NzM3OTkwMTQwOTE0OSwgMC44OTMwMTQwMTM3NjcyNDI0LCAtMC4zNjk4ODE5ODc1NzE3MTYzLCAtMC4yNTYzNDUwMDM4NDMzMDc1LAorICAgICAgICAwLjg5MzQzNzAyNzkzMTIxMzQsIC0wLjM2OTEwMjAwMTE5MDE4NTU1LCAwLjI1NTk5NzAwMjEyNDc4NjQsIDAuOTY3NDQxOTc2MDcwNDA0LCAtMC4wMDgxMDMwMDAwMDAxMTkyMSwgMC4yNTI5NjE5OTMyMTc0NjgyNiwKKyAgICAgICAgMC4wODM4Nzk5OTk4MTY0MTc3LCAtMC4wMzU1MDcwMDA5ODI3NjEzOCwgMC45OTU4NDI5OTMyNTk0Mjk5LCAwLjA5MzQzODk5Nzg2NDcyMzIsIC0wLjAwMTI3OTk5OTk2NzY2NDQ4MDIsIDAuOTk1NjI0MDA1Nzk0NTI1MSwKKyAgICAgICAgLTAuNjI5NzIxOTk5MTY4Mzk2LCAwLjI2MDQzNzk5NTE5NTM4ODgsIDAuNzMxODYyMDA4NTcxNjI0OCwgLTAuNjgyMTY1OTgwMzM5MDUwMywgMC4wMDAzNDI5OTk5OTI0MjY0ODQ4LCAwLjczMTE5Njk5OTU0OTg2NTcsCisgICAgICAgIC0wLjgwMzcyNTAwNDE5NjE2NywgMC4zMzI1ODM5OTM2NzMzMjQ2LCAwLjQ5MzM2OTAxMzA3MTA2MDIsIC0wLjg3MDMyMTk4OTA1OTQ0ODIsIDAuMDAwMDU0MDAwMDAwMDkxMDM2NzgsIDAuNDkyNDgyOTkwMDI2NDc0LAorICAgICAgICAwLjY4MzQwNzAwODY0NzkxODcsIC0wLjY4MzQwNzAwODY0NzkxODcsIC0wLjI1NjczMTAwMzUyMjg3MjksIDAuNjgzNTMwOTg2MzA5MDUxNSwgLTAuNjgzNTMwOTg2MzA5MDUxNSwgMC4yNTYwNjc5OTEyNTY3MTM4NywKKyAgICAgICAgMC4wNjQ5MjU5OTg0NDkzMjU1NiwgLTAuMDY0OTI1MDAwMDcxNTI1NTcsIDAuOTk1Nzc1OTk3NjM4NzAyNCwgLTAuNDgxMzk3MDAyOTM1NDA5NTUsIDAuNDgxMzk3MDAyOTM1NDA5NTUsIDAuNzMyNDcwOTg5MjI3Mjk0OSwKKyAgICAgICAgLTAuNjE0ODA0MDI5NDY0NzIxNywgMC42MTQ4MDQwMjk0NjQ3MjE3LCAwLjQ5Mzk5NzAwNzYwODQxMzcsIDAuMzY5ODgxOTg3NTcxNzE2MywgLTAuODkzMDE0MDEzNzY3MjQyNCwgLTAuMjU2MzQ1MDAzODQzMzA3NSwKKyAgICAgICAgMC4zNjkxMDIwMDExOTAxODU1NSwgLTAuODkzNDM3MDI3OTMxMjEzNCwgMC4yNTU5OTU5ODg4NDU4MjUyLCAwLjAzNTUwNzAwMDk4Mjc2MTM4LCAtMC4wODM4NzkwMDE0Mzg2MTc3LCAwLjk5NTg0Mjk5MzI1OTQyOTksCisgICAgICAgIC0wLjI2MDQzOTAwODQ3NDM1LCAwLjYyOTcyMzAxMjQ0NzM1NzIsIDAuNzMxODYwOTk1MjkyNjYzNiwgLTAuMzMyNTgzOTkzNjczMzI0NiwgMC44MDM3MjUwMDQxOTYxNjcsIDAuNDkzMzY5MDEzMDcxMDYwMiwKKyAgICAgICAgMCwgLTAuOTY2NzQxOTc5MTIyMTYxOSwgLTAuMjU1NzUxOTk3MjMyNDM3MTMsIDAsIC0wLjk2NjgyMzk5NTExMzM3MjgsIDAuMjU1NDQzMDA2NzUzOTIxNSwKKyAgICAgICAgMCwgLTAuMDkyMDU0MDAxOTg2OTgwNDQsIDAuOTk1NzU0MDAzNTI0NzgwMywgMCwgMC42ODIwNDg5NzY0MjEzNTYyLCAwLjczMTMwNzAyOTcyNDEyMTEsCisgICAgICAgIDAsIDAuODcwMzAxMDA4MjI0NDg3MywgMC40OTI1MjAwMDQ1MTA4Nzk1LCAwLCAtMC45NjY3NDE5NzkxMjIxNjE5LCAtMC4yNTU3NTE5OTcyMzI0MzcxMywKKyAgICAgICAgLTAuMzY5ODgxOTg3NTcxNzE2MywgLTAuODkzMDE0MDEzNzY3MjQyNCwgLTAuMjU2MzQ1MDAzODQzMzA3NSwgLTAuMzY5MTAyMDAxMTkwMTg1NTUsIC0wLjg5MzQzNzAyNzkzMTIxMzQsIDAuMjU1OTk3MDAyMTI0Nzg2NCwKKyAgICAgICAgMCwgLTAuOTY2ODIzOTk1MTEzMzcyOCwgMC4yNTU0NDMwMDY3NTM5MjE1LCAtMC4wMzU1MDcwMDA5ODI3NjEzOCwgLTAuMDgzODc5OTk5ODE2NDE3NywgMC45OTU4NDI5OTMyNTk0Mjk5LAorICAgICAgICAwLCAtMC4wOTIwNTQwMDE5ODY5ODA0NCwgMC45OTU3NTQwMDM1MjQ3ODAzLCAwLjI2MDQzNzk5NTE5NTM4ODgsIDAuNjI5NzIxOTk5MTY4Mzk2LCAwLjczMTg2MjAwODU3MTYyNDgsCisgICAgICAgIDAsIDAuNjgyMDQ4OTc2NDIxMzU2MiwgMC43MzEzMDcwMjk3MjQxMjExLCAwLjMzMjU4Mzk5MzY3MzMyNDYsIDAuODAzNzI1MDA0MTk2MTY3LCAwLjQ5MzM2OTAxMzA3MTA2MDIsCisgICAgICAgIDAsIDAuODcwMzAxMDA4MjI0NDg3MywgMC40OTI1MjAwMDQ1MTA4Nzk1LCAtMC42ODM0MDcwMDg2NDc5MTg3LCAtMC42ODM0MDcwMDg2NDc5MTg3LCAtMC4yNTY3MzEwMDM1MjI4NzI5LAorICAgICAgICAtMC42ODM1MzA5ODYzMDkwNTE1LCAtMC42ODM1MzA5ODYzMDkwNTE1LCAwLjI1NjA2Nzk5MTI1NjcxMzg3LCAtMC4wNjQ5MjUwMDAwNzE1MjU1NywgLTAuMDY0OTI1OTk4NDQ5MzI1NTYsIDAuOTk1Nzc1OTk3NjM4NzAyNCwKKyAgICAgICAgMC40ODEzOTcwMDI5MzU0MDk1NSwgMC40ODEzOTcwMDI5MzU0MDk1NSwgMC43MzI0NzA5ODkyMjcyOTQ5LCAwLjYxNDgwNDAyOTQ2NDcyMTcsIDAuNjE0ODA0MDI5NDY0NzIxNywgMC40OTM5OTcwMDc2MDg0MTM3LAorICAgICAgICAtMC44OTMwMTQwMTM3NjcyNDI0LCAtMC4zNjk4ODE5ODc1NzE3MTYzLCAtMC4yNTYzNDUwMDM4NDMzMDc1LCAtMC44OTM0MzcwMjc5MzEyMTM0LCAtMC4zNjkxMDIwMDExOTAxODU1NSwgMC4yNTU5OTU5ODg4NDU4MjUyLAorICAgICAgICAtMC4wODM4NzkwMDE0Mzg2MTc3LCAtMC4wMzU1MDcwMDA5ODI3NjEzOCwgMC45OTU4NDI5OTMyNTk0Mjk5LCAwLjYyOTcyMzAxMjQ0NzM1NzIsIDAuMjYwNDM5MDA4NDc0MzUsIDAuNzMxODYwOTk1MjkyNjYzNiwKKyAgICAgICAgMC44MDM3MjUwMDQxOTYxNjcsIDAuMzMyNTgzOTkzNjczMzI0NiwgMC40OTMzNjkwMTMwNzEwNjAyLCAtMC45NjY3NDE5NzkxMjIxNjE5LCAwLCAtMC4yNTU3NTE5OTcyMzI0MzcxMywKKyAgICAgICAgLTAuOTY2ODIzOTk1MTEzMzcyOCwgMCwgMC4yNTU0NDMwMDY3NTM5MjE1LCAtMC4wOTIwNTQwMDE5ODY5ODA0NCwgMCwgMC45OTU3NTQwMDM1MjQ3ODAzLAorICAgICAgICAwLjY4MjA0ODk3NjQyMTM1NjIsIDAsIDAuNzMxMzA3MDI5NzI0MTIxMSwgMC44NzAzMDEwMDgyMjQ0ODczLCAwLCAwLjQ5MjUyMDAwNDUxMDg3OTUsCisgICAgICAgIDAuODcwMzAxMDA4MjI0NDg3MywgMCwgMC40OTI1MjAwMDQ1MTA4Nzk1LCAwLjgwMzcyNTAwNDE5NjE2NywgLTAuMzMyNTgzOTkzNjczMzI0NiwgMC40OTMzNjkwMTMwNzEwNjAyLAorICAgICAgICAwLjg0NTQzOTAxNjgxOTAwMDIsIC0wLjM0OTgzNTAwODM4Mjc5NzI0LCAwLjQwMzU0NDk5MjIwODQ4MDgzLCAwLjkxNTMyMDk5MjQ2OTc4NzYsIDAsIDAuNDAyNzI1MDExMTEwMzA1OCwKKyAgICAgICAgMC44Njk5OTYwMTEyNTcxNzE2LCAtMC4zNjAwNDU5OTkyODg1NTg5NiwgMC4zMzY4NTg5ODc4MDgyMjc1NCwgMC45NDE4MDc5ODUzMDU3ODYxLCAwLCAwLjMzNjE1MTAwMzgzNzU4NTQ1LAorICAgICAgICAwLjkwNDE5Mjk4NDEwNDE1NjUsIC0wLjM3NDI4MDAwNTY5MzQzNTY3LCAwLjIwNTc5MDk5NjU1MTUxMzY3LCAwLjk3ODY5MDAyODE5MDYxMjgsIDAsIDAuMjA1MzQxOTk0NzYyNDIwNjUsCisgICAgICAgIDAuOTIxODc4OTkzNTExMiwgLTAuMzgxNzUyMDE0MTYwMTU2MjUsIC0wLjA2NjM2ODk5NzA5NzAxNTM4LCAwLjk5NzgwMzk4NjA3MjU0MDMsIDAsIC0wLjA2NjIzODk5OTM2Njc2MDI1LAorICAgICAgICAwLjYxNDgwNDAyOTQ2NDcyMTcsIC0wLjYxNDgwNDAyOTQ2NDcyMTcsIDAuNDkzOTk3MDA3NjA4NDEzNywgMC42NDY4MDIwMDgxNTIwMDgxLCAtMC42NDY4MDIwMDgxNTIwMDgxLCAwLjQwNDA5NjAwNzM0NzEwNjkzLAorICAgICAgICAwLjY2NTY1NTAxNjg5OTEwODksIC0wLjY2NTY1NTAxNjg5OTEwODksIDAuMzM3MzUyMDA3NjI3NDg3MiwgMC42OTE5MjMwMjIyNzAyMDI2LCAtMC42OTE5MjMwMjIyNzAyMDI2LCAwLjIwNjExOTk5OTI4OTUxMjYzLAorICAgICAgICAwLjcwNTU0Mjk4MTYyNDYwMzMsIC0wLjcwNTU0Mjk4MTYyNDYwMzMsIC0wLjA2NjQ3ODk5NzQ2ODk0ODM2LCAwLjMzMjU4Mzk5MzY3MzMyNDYsIC0wLjgwMzcyNTAwNDE5NjE2NywgMC40OTMzNjkwMTMwNzEwNjAyLAorICAgICAgICAwLjM0OTgzNTAwODM4Mjc5NzI0LCAtMC44NDU0MzkwMTY4MTkwMDAyLCAwLjQwMzU0NDk5MjIwODQ4MDgzLCAwLjM2MDA0NzAxMjU2NzUyMDE0LCAtMC44Njk5OTYwMTEyNTcxNzE2LCAwLjMzNjg1ODAwNDMzMTU4ODc1LAorICAgICAgICAwLjM3NDI4MDAwNTY5MzQzNTY3LCAtMC45MDQxOTI5ODQxMDQxNTY1LCAwLjIwNTc5MDk5NjU1MTUxMzY3LCAwLjM4MTc1MjAxNDE2MDE1NjI1LCAtMC45MjE4Nzg5OTM1MTEyLCAtMC4wNjYzNjg5OTcwOTcwMTUzOCwKKyAgICAgICAgMCwgLTAuODcwMzAxMDA4MjI0NDg3MywgMC40OTI1MjAwMDQ1MTA4Nzk1LCAwLCAtMC45MTUzMjA5OTI0Njk3ODc2LCAwLjQwMjcyNTAxMTExMDMwNTgsCisgICAgICAgIDAsIC0wLjk0MTgwNzk4NTMwNTc4NjEsIDAuMzM2MTUxMDAzODM3NTg1NDUsIDAsIC0wLjk3ODY5MDAyODE5MDYxMjgsIDAuMjA1MzQxOTk0NzYyNDIwNjUsCisgICAgICAgIDAsIC0wLjk5NzgwMzk4NjA3MjU0MDMsIC0wLjA2NjIzODk5OTM2Njc2MDI1LCAwLCAtMC44NzAzMDEwMDgyMjQ0ODczLCAwLjQ5MjUyMDAwNDUxMDg3OTUsCisgICAgICAgIC0wLjMzMjQ4NDk5MDM1ODM1MjY2LCAtMC44MDQyNzA5ODI3NDIzMDk2LCAwLjQ5MjU0NTk5MjEzNjAwMTYsIC0wLjM0OTgzNTAwODM4Mjc5NzI0LCAtMC44NDU0MzkwMTY4MTkwMDAyLCAwLjQwMzU0NDk5MjIwODQ4MDgzLAorICAgICAgICAwLCAtMC45MTUzMjA5OTI0Njk3ODc2LCAwLjQwMjcyNTAxMTExMDMwNTgsIC0wLjM2MDA0NTk5OTI4ODU1ODk2LCAtMC44Njk5OTYwMTEyNTcxNzE2LCAwLjMzNjg1ODk4NzgwODIyNzU0LAorICAgICAgICAwLCAtMC45NDE4MDc5ODUzMDU3ODYxLCAwLjMzNjE1MTAwMzgzNzU4NTQ1LCAtMC4zNzQyODAwMDU2OTM0MzU2NywgLTAuOTA0MTkyOTg0MTA0MTU2NSwgMC4yMDU3OTA5OTY1NTE1MTM2NywKKyAgICAgICAgMCwgLTAuOTc4NjkwMDI4MTkwNjEyOCwgMC4yMDUzNDE5OTQ3NjI0MjA2NSwgLTAuMzgxNzUyMDE0MTYwMTU2MjUsIC0wLjkyMTg3ODk5MzUxMTIsIC0wLjA2NjM2ODk5NzA5NzAxNTM4LAorICAgICAgICAwLCAtMC45OTc4MDM5ODYwNzI1NDAzLCAtMC4wNjYyMzg5OTkzNjY3NjAyNSwgLTAuNjE1MjQyMDA0Mzk0NTMxMiwgLTAuNjE1NDgzOTk5MjUyMzE5MywgMC40OTI2MDEwMDcyMjMxMjkzLAorICAgICAgICAtMC42NDY4MDIwMDgxNTIwMDgxLCAtMC42NDY4MDIwMDgxNTIwMDgxLCAwLjQwNDA5NjAwNzM0NzEwNjkzLCAtMC42NjU2NTUwMTY4OTkxMDg5LCAtMC42NjU2NTUwMTY4OTkxMDg5LCAwLjMzNzM1MjAwNzYyNzQ4NzIsCisgICAgICAgIC0wLjY5MTkyMzAyMjI3MDIwMjYsIC0wLjY5MTkyMzAyMjI3MDIwMjYsIDAuMjA2MTE5OTk5Mjg5NTEyNjMsIC0wLjcwNTU0Mjk4MTYyNDYwMzMsIC0wLjcwNTU0Mjk4MTYyNDYwMzMsIC0wLjA2NjQ3ODk5NzQ2ODk0ODM2LAorICAgICAgICAtMC44MDQxMjYwMjQyNDYyMTU4LCAtMC4zMzI3MDQ5OTExMDIyMTg2MywgMC40OTI2MzM5OTgzOTQwMTI0NSwgLTAuODQ1NDM5MDE2ODE5MDAwMiwgLTAuMzQ5ODM1MDA4MzgyNzk3MjQsIDAuNDAzNTQ0OTkyMjA4NDgwODMsCisgICAgICAgIC0wLjg2OTk5NjAxMTI1NzE3MTYsIC0wLjM2MDA0NzAxMjU2NzUyMDE0LCAwLjMzNjg1ODAwNDMzMTU4ODc1LCAtMC45MDQxOTI5ODQxMDQxNTY1LCAtMC4zNzQyODAwMDU2OTM0MzU2NywgMC4yMDU3OTA5OTY1NTE1MTM2NywKKyAgICAgICAgLTAuOTIxODc4OTkzNTExMiwgLTAuMzgxNzUyMDE0MTYwMTU2MjUsIC0wLjA2NjM2ODk5NzA5NzAxNTM4LCAtMC44NzAzMjE5ODkwNTk0NDgyLCAwLjAwMDA1NDAwMDAwMDA5MTAzNjc4LCAwLjQ5MjQ4Mjk5MDAyNjQ3NCwKKyAgICAgICAgLTAuOTE1MzIwOTkyNDY5Nzg3NiwgMCwgMC40MDI3MjUwMTExMTAzMDU4LCAtMC45NDE4MDc5ODUzMDU3ODYxLCAwLCAwLjMzNjE1MTAwMzgzNzU4NTQ1LAorICAgICAgICAtMC45Nzg2OTAwMjgxOTA2MTI4LCAwLCAwLjIwNTM0MTk5NDc2MjQyMDY1LCAtMC45OTc4MDM5ODYwNzI1NDAzLCAwLCAtMC4wNjYyMzg5OTkzNjY3NjAyNSwKKyAgICAgICAgLTAuODcwMzIxOTg5MDU5NDQ4MiwgMC4wMDAwNTQwMDAwMDAwOTEwMzY3OCwgMC40OTI0ODI5OTAwMjY0NzQsIC0wLjgwMzcyNTAwNDE5NjE2NywgMC4zMzI1ODM5OTM2NzMzMjQ2LCAwLjQ5MzM2OTAxMzA3MTA2MDIsCisgICAgICAgIC0wLjg0NTQzOTAxNjgxOTAwMDIsIDAuMzQ5ODM1MDA4MzgyNzk3MjQsIDAuNDAzNTQ0OTkyMjA4NDgwODMsIC0wLjkxNTMyMDk5MjQ2OTc4NzYsIDAsIDAuNDAyNzI1MDExMTEwMzA1OCwKKyAgICAgICAgLTAuODY5OTk2MDExMjU3MTcxNiwgMC4zNjAwNDU5OTkyODg1NTg5NiwgMC4zMzY4NTg5ODc4MDgyMjc1NCwgLTAuOTQxODA3OTg1MzA1Nzg2MSwgMCwgMC4zMzYxNTEwMDM4Mzc1ODU0NSwKKyAgICAgICAgLTAuOTA0MTkyOTg0MTA0MTU2NSwgMC4zNzQyODAwMDU2OTM0MzU2NywgMC4yMDU3OTA5OTY1NTE1MTM2NywgLTAuOTc4NjkwMDI4MTkwNjEyOCwgMCwgMC4yMDUzNDE5OTQ3NjI0MjA2NSwKKyAgICAgICAgLTAuOTIxODc4OTkzNTExMiwgMC4zODE3NTIwMTQxNjAxNTYyNSwgLTAuMDY2MzY4OTk3MDk3MDE1MzgsIC0wLjk5NzgwMzk4NjA3MjU0MDMsIDAsIC0wLjA2NjIzODk5OTM2Njc2MDI1LAorICAgICAgICAtMC42MTQ4MDQwMjk0NjQ3MjE3LCAwLjYxNDgwNDAyOTQ2NDcyMTcsIDAuNDkzOTk3MDA3NjA4NDEzNywgLTAuNjQ2ODAyMDA4MTUyMDA4MSwgMC42NDY4MDIwMDgxNTIwMDgxLCAwLjQwNDA5NjAwNzM0NzEwNjkzLAorICAgICAgICAtMC42NjU2NTUwMTY4OTkxMDg5LCAwLjY2NTY1NTAxNjg5OTEwODksIDAuMzM3MzUyMDA3NjI3NDg3MiwgLTAuNjkxOTIzMDIyMjcwMjAyNiwgMC42OTE5MjMwMjIyNzAyMDI2LCAwLjIwNjExOTk5OTI4OTUxMjYzLAorICAgICAgICAtMC43MDU1NDI5ODE2MjQ2MDMzLCAwLjcwNTU0Mjk4MTYyNDYwMzMsIC0wLjA2NjQ3ODk5NzQ2ODk0ODM2LCAtMC4zMzI1ODM5OTM2NzMzMjQ2LCAwLjgwMzcyNTAwNDE5NjE2NywgMC40OTMzNjkwMTMwNzEwNjAyLAorICAgICAgICAtMC4zNDk4MzUwMDgzODI3OTcyNCwgMC44NDU0MzkwMTY4MTkwMDAyLCAwLjQwMzU0NDk5MjIwODQ4MDgzLCAtMC4zNjAwNDcwMTI1Njc1MjAxNCwgMC44Njk5OTYwMTEyNTcxNzE2LCAwLjMzNjg1ODAwNDMzMTU4ODc1LAorICAgICAgICAtMC4zNzQyODAwMDU2OTM0MzU2NywgMC45MDQxOTI5ODQxMDQxNTY1LCAwLjIwNTc5MDk5NjU1MTUxMzY3LCAtMC4zODE3NTIwMTQxNjAxNTYyNSwgMC45MjE4Nzg5OTM1MTEyLCAtMC4wNjYzNjg5OTcwOTcwMTUzOCwKKyAgICAgICAgMCwgMC44NzAzMDEwMDgyMjQ0ODczLCAwLjQ5MjUyMDAwNDUxMDg3OTUsIDAsIDAuOTE1MzIwOTkyNDY5Nzg3NiwgMC40MDI3MjUwMTExMTAzMDU4LAorICAgICAgICAwLCAwLjk0MTgwNzk4NTMwNTc4NjEsIDAuMzM2MTUxMDAzODM3NTg1NDUsIDAsIDAuOTc4NjkwMDI4MTkwNjEyOCwgMC4yMDUzNDE5OTQ3NjI0MjA2NSwKKyAgICAgICAgMCwgMC45OTc4MDM5ODYwNzI1NDAzLCAtMC4wNjYyMzg5OTkzNjY3NjAyNSwgMCwgMC44NzAzMDEwMDgyMjQ0ODczLCAwLjQ5MjUyMDAwNDUxMDg3OTUsCisgICAgICAgIDAuMzMyNTgzOTkzNjczMzI0NiwgMC44MDM3MjUwMDQxOTYxNjcsIDAuNDkzMzY5MDEzMDcxMDYwMiwgMC4zNDk4MzUwMDgzODI3OTcyNCwgMC44NDU0MzkwMTY4MTkwMDAyLCAwLjQwMzU0NDk5MjIwODQ4MDgzLAorICAgICAgICAwLCAwLjkxNTMyMDk5MjQ2OTc4NzYsIDAuNDAyNzI1MDExMTEwMzA1OCwgMC4zNjAwNDU5OTkyODg1NTg5NiwgMC44Njk5OTYwMTEyNTcxNzE2LCAwLjMzNjg1ODk4NzgwODIyNzU0LAorICAgICAgICAwLCAwLjk0MTgwNzk4NTMwNTc4NjEsIDAuMzM2MTUxMDAzODM3NTg1NDUsIDAuMzc0MjgwMDA1NjkzNDM1NjcsIDAuOTA0MTkyOTg0MTA0MTU2NSwgMC4yMDU3OTA5OTY1NTE1MTM2NywKKyAgICAgICAgMCwgMC45Nzg2OTAwMjgxOTA2MTI4LCAwLjIwNTM0MTk5NDc2MjQyMDY1LCAwLjM4MTc1MjAxNDE2MDE1NjI1LCAwLjkyMTg3ODk5MzUxMTIsIC0wLjA2NjM2ODk5NzA5NzAxNTM4LAorICAgICAgICAwLCAwLjk5NzgwMzk4NjA3MjU0MDMsIC0wLjA2NjIzODk5OTM2Njc2MDI1LCAwLjYxNDgwNDAyOTQ2NDcyMTcsIDAuNjE0ODA0MDI5NDY0NzIxNywgMC40OTM5OTcwMDc2MDg0MTM3LAorICAgICAgICAwLjY0NjgwMjAwODE1MjAwODEsIDAuNjQ2ODAyMDA4MTUyMDA4MSwgMC40MDQwOTYwMDczNDcxMDY5MywgMC42NjU2NTUwMTY4OTkxMDg5LCAwLjY2NTY1NTAxNjg5OTEwODksIDAuMzM3MzUyMDA3NjI3NDg3MiwKKyAgICAgICAgMC42OTE5MjMwMjIyNzAyMDI2LCAwLjY5MTkyMzAyMjI3MDIwMjYsIDAuMjA2MTE5OTk5Mjg5NTEyNjMsIDAuNzA1NTQyOTgxNjI0NjAzMywgMC43MDU1NDI5ODE2MjQ2MDMzLCAtMC4wNjY0Nzg5OTc0Njg5NDgzNiwKKyAgICAgICAgMC44MDM3MjUwMDQxOTYxNjcsIDAuMzMyNTgzOTkzNjczMzI0NiwgMC40OTMzNjkwMTMwNzEwNjAyLCAwLjg0NTQzOTAxNjgxOTAwMDIsIDAuMzQ5ODM1MDA4MzgyNzk3MjQsIDAuNDAzNTQ0OTkyMjA4NDgwODMsCisgICAgICAgIDAuODY5OTk2MDExMjU3MTcxNiwgMC4zNjAwNDcwMTI1Njc1MjAxNCwgMC4zMzY4NTgwMDQzMzE1ODg3NSwgMC45MDQxOTI5ODQxMDQxNTY1LCAwLjM3NDI4MDAwNTY5MzQzNTY3LCAwLjIwNTc5MDk5NjU1MTUxMzY3LAorICAgICAgICAwLjkyMTg3ODk5MzUxMTIsIDAuMzgxNzUyMDE0MTYwMTU2MjUsIC0wLjA2NjM2ODk5NzA5NzAxNTM4LCAwLjg3MDMwMTAwODIyNDQ4NzMsIDAsIDAuNDkyNTIwMDA0NTEwODc5NSwKKyAgICAgICAgMC45MTUzMjA5OTI0Njk3ODc2LCAwLCAwLjQwMjcyNTAxMTExMDMwNTgsIDAuOTQxODA3OTg1MzA1Nzg2MSwgMCwgMC4zMzYxNTEwMDM4Mzc1ODU0NSwKKyAgICAgICAgMC45Nzg2OTAwMjgxOTA2MTI4LCAwLCAwLjIwNTM0MTk5NDc2MjQyMDY1LCAwLjk5NzgwMzk4NjA3MjU0MDMsIDAsIC0wLjA2NjIzODk5OTM2Njc2MDI1LAorICAgICAgICAwLjk5NzgwMzk4NjA3MjU0MDMsIDAsIC0wLjA2NjIzODk5OTM2Njc2MDI1LCAwLjkyMTg3ODk5MzUxMTIsIC0wLjM4MTc1MjAxNDE2MDE1NjI1LCAtMC4wNjYzNjg5OTcwOTcwMTUzOCwKKyAgICAgICAgMC44MzE0MzY5OTE2OTE1ODk0LCAtMC4zNDQxNzkwMDQ0MzA3NzA5LCAtMC40MzYxNzk5OTU1MzY4MDQyLCAwLjkwMDE4MjAwODc0MzI4NjEsIDAsIC0wLjQzNTUxMjk4OTc1OTQ0NTIsCisgICAgICAgIDAuNjczNTExOTgxOTY0MTExMywgLTAuMjc4NTkzOTg3MjI2NDg2MiwgLTAuNjg0NjY1MDI0MjgwNTQ4MSwgMC43Mjk2MTA5Nzk1NTcwMzc0LCAwLCAtMC42ODM4NjI5ODQxODA0NTA0LAorICAgICAgICAwLjY0MDM5ODk3OTE4NzAxMTcsIC0wLjI2NDg3NDAxMTI3ODE1MjQ3LCAtMC43MjA5MjQwMTk4MTM1Mzc2LCAwLjY5Mzk1MTAxMDcwNDA0MDUsIDAsIC0wLjcyMDAyMjAyMjcyNDE1MTYsCisgICAgICAgIDAuNzMyOTQ5MDE4NDc4MzkzNiwgLTAuMzAzMTY2MDAyMDM1MTQxLCAtMC42MDg5OTU5NzQwNjM4NzMzLCAwLjc5Mzk1MDAyMTI2NjkzNzMsIDAsIC0wLjYwNzk4NDAwNjQwNDg3NjcsCisgICAgICAgIDAuNzA1NTQyOTgxNjI0NjAzMywgLTAuNzA1NTQyOTgxNjI0NjAzMywgLTAuMDY2NDc4OTk3NDY4OTQ4MzYsIDAuNjM2MDkyMDA3MTYwMTg2OCwgLTAuNjM2MDkyMDA3MTYwMTg2OCwgLTAuNDM2Nzc4MDA4OTM3ODM1NywKKyAgICAgICAgMC41MTQ5NjQ5OTc3Njg0MDIxLCAtMC41MTQ5NjQ5OTc3Njg0MDIxLCAtMC42ODUyODkwMjUzMDY3MDE3LCAwLjQ4OTY1MDk5NDUzOTI2MDg2LCAtMC40ODk2NTA5OTQ1MzkyNjA4NiwgLTAuNzIxNDQ1OTc3Njg3ODM1NywKKyAgICAgICAgMC41NjA1NTQ5ODEyMzE2ODk1LCAtMC41NjA1NTQ5ODEyMzE2ODk1LCAtMC42MDk1NTM5OTI3NDgyNjA1LCAwLjM4MTc1MjAxNDE2MDE1NjI1LCAtMC45MjE4Nzg5OTM1MTEyLCAtMC4wNjYzNjg5OTcwOTcwMTUzOCwKKyAgICAgICAgMC4zNDQxNzkwMDQ0MzA3NzA5LCAtMC44MzE0MzY5OTE2OTE1ODk0LCAtMC40MzYxNzk5OTU1MzY4MDQyLCAwLjI3ODU5Mzk4NzIyNjQ4NjIsIC0wLjY3MzUxMTk4MTk2NDExMTMsIC0wLjY4NDY2NTAyNDI4MDU0ODEsCisgICAgICAgIDAuMjY0ODc0MDExMjc4MTUyNDcsIC0wLjY0MDM5ODk3OTE4NzAxMTcsIC0wLjcyMDkyNDAxOTgxMzUzNzYsIDAuMzAzMTY2MDAyMDM1MTQxLCAtMC43MzI5NDkwMTg0NzgzOTM2LCAtMC42MDg5OTU5NzQwNjM4NzMzLAorICAgICAgICAwLCAtMC45OTc4MDM5ODYwNzI1NDAzLCAtMC4wNjYyMzg5OTkzNjY3NjAyNSwgMCwgLTAuOTAwMTgyMDA4NzQzMjg2MSwgLTAuNDM1NTEyOTg5NzU5NDQ1MiwKKyAgICAgICAgMCwgLTAuNzI5NjEwOTc5NTU3MDM3NCwgLTAuNjgzODYyOTg0MTgwNDUwNCwgMCwgLTAuNjkzOTUxMDEwNzA0MDQwNSwgLTAuNzIwMDIyMDIyNzI0MTUxNiwKKyAgICAgICAgMCwgLTAuNzkzOTUwMDIxMjY2OTM3MywgLTAuNjA3OTg0MDA2NDA0ODc2NywgMCwgLTAuOTk3ODAzOTg2MDcyNTQwMywgLTAuMDY2MjM4OTk5MzY2NzYwMjUsCisgICAgICAgIC0wLjM4MTc1MjAxNDE2MDE1NjI1LCAtMC45MjE4Nzg5OTM1MTEyLCAtMC4wNjYzNjg5OTcwOTcwMTUzOCwgLTAuMzQ0MTc5MDA0NDMwNzcwOSwgLTAuODMxNDM2OTkxNjkxNTg5NCwgLTAuNDM2MTc5OTk1NTM2ODA0MiwKKyAgICAgICAgMCwgLTAuOTAwMTgyMDA4NzQzMjg2MSwgLTAuNDM1NTEyOTg5NzU5NDQ1MiwgLTAuMjc4NTkzOTg3MjI2NDg2MiwgLTAuNjczNTExOTgxOTY0MTExMywgLTAuNjg0NjY1MDI0MjgwNTQ4MSwKKyAgICAgICAgMCwgLTAuNzI5NjEwOTc5NTU3MDM3NCwgLTAuNjgzODYyOTg0MTgwNDUwNCwgLTAuMjY0ODc0MDExMjc4MTUyNDcsIC0wLjY0MDM5ODk3OTE4NzAxMTcsIC0wLjcyMDkyNDAxOTgxMzUzNzYsCisgICAgICAgIDAsIC0wLjY5Mzk1MTAxMDcwNDA0MDUsIC0wLjcyMDAyMjAyMjcyNDE1MTYsIC0wLjMwMzE2NjAwMjAzNTE0MSwgLTAuNzMyOTQ5MDE4NDc4MzkzNiwgLTAuNjA4OTk1OTc0MDYzODczMywKKyAgICAgICAgMCwgLTAuNzkzOTUwMDIxMjY2OTM3MywgLTAuNjA3OTg0MDA2NDA0ODc2NywgLTAuNzA1NTQyOTgxNjI0NjAzMywgLTAuNzA1NTQyOTgxNjI0NjAzMywgLTAuMDY2NDc4OTk3NDY4OTQ4MzYsCisgICAgICAgIC0wLjYzNjA5MjAwNzE2MDE4NjgsIC0wLjYzNjA5MjAwNzE2MDE4NjgsIC0wLjQzNjc3ODAwODkzNzgzNTcsIC0wLjUxNDk2NDk5Nzc2ODQwMjEsIC0wLjUxNDk2NDk5Nzc2ODQwMjEsIC0wLjY4NTI4OTAyNTMwNjcwMTcsCisgICAgICAgIC0wLjQ4OTY1MDk5NDUzOTI2MDg2LCAtMC40ODk2NTA5OTQ1MzkyNjA4NiwgLTAuNzIxNDQ1OTc3Njg3ODM1NywgLTAuNTYwNTU0OTgxMjMxNjg5NSwgLTAuNTYwNTU0OTgxMjMxNjg5NSwgLTAuNjA5NTUzOTkyNzQ4MjYwNSwKKyAgICAgICAgLTAuOTIxODc4OTkzNTExMiwgLTAuMzgxNzUyMDE0MTYwMTU2MjUsIC0wLjA2NjM2ODk5NzA5NzAxNTM4LCAtMC44MzE0MzY5OTE2OTE1ODk0LCAtMC4zNDQxNzkwMDQ0MzA3NzA5LCAtMC40MzYxNzk5OTU1MzY4MDQyLAorICAgICAgICAtMC42NzM1MTE5ODE5NjQxMTEzLCAtMC4yNzg1OTM5ODcyMjY0ODYyLCAtMC42ODQ2NjUwMjQyODA1NDgxLCAtMC42NDAzOTg5NzkxODcwMTE3LCAtMC4yNjQ4NzQwMTEyNzgxNTI0NywgLTAuNzIwOTI0MDE5ODEzNTM3NiwKKyAgICAgICAgLTAuNzMyOTQ5MDE4NDc4MzkzNiwgLTAuMzAzMTY2MDAyMDM1MTQxLCAtMC42MDg5OTU5NzQwNjM4NzMzLCAtMC45OTc4MDM5ODYwNzI1NDAzLCAwLCAtMC4wNjYyMzg5OTkzNjY3NjAyNSwKKyAgICAgICAgLTAuOTAwMTgyMDA4NzQzMjg2MSwgMCwgLTAuNDM1NTEyOTg5NzU5NDQ1MiwgLTAuNzI5NjEwOTc5NTU3MDM3NCwgMCwgLTAuNjgzODYyOTg0MTgwNDUwNCwKKyAgICAgICAgLTAuNjkzOTUxMDEwNzA0MDQwNSwgMCwgLTAuNzIwMDIyMDIyNzI0MTUxNiwgLTAuNzkzOTUwMDIxMjY2OTM3MywgMCwgLTAuNjA3OTg0MDA2NDA0ODc2NywKKyAgICAgICAgLTAuOTk3ODAzOTg2MDcyNTQwMywgMCwgLTAuMDY2MjM4OTk5MzY2NzYwMjUsIC0wLjkyMTg3ODk5MzUxMTIsIDAuMzgxNzUyMDE0MTYwMTU2MjUsIC0wLjA2NjM2ODk5NzA5NzAxNTM4LAorICAgICAgICAtMC44MzE0MzY5OTE2OTE1ODk0LCAwLjM0NDE3OTAwNDQzMDc3MDksIC0wLjQzNjE3OTk5NTUzNjgwNDIsIC0wLjkwMDE4MjAwODc0MzI4NjEsIDAsIC0wLjQzNTUxMjk4OTc1OTQ0NTIsCisgICAgICAgIC0wLjY3MzUxMTk4MTk2NDExMTMsIDAuMjc4NTkzOTg3MjI2NDg2MiwgLTAuNjg0NjY1MDI0MjgwNTQ4MSwgLTAuNzI5NjEwOTc5NTU3MDM3NCwgMCwgLTAuNjgzODYyOTg0MTgwNDUwNCwKKyAgICAgICAgLTAuNjQwMzk4OTc5MTg3MDExNywgMC4yNjQ4NzQwMTEyNzgxNTI0NywgLTAuNzIwOTI0MDE5ODEzNTM3NiwgLTAuNjkzOTUxMDEwNzA0MDQwNSwgMCwgLTAuNzIwMDIyMDIyNzI0MTUxNiwKKyAgICAgICAgLTAuNzMyOTQ5MDE4NDc4MzkzNiwgMC4zMDMxNjYwMDIwMzUxNDEsIC0wLjYwODk5NTk3NDA2Mzg3MzMsIC0wLjc5Mzk1MDAyMTI2NjkzNzMsIDAsIC0wLjYwNzk4NDAwNjQwNDg3NjcsCisgICAgICAgIC0wLjcwNTU0Mjk4MTYyNDYwMzMsIDAuNzA1NTQyOTgxNjI0NjAzMywgLTAuMDY2NDc4OTk3NDY4OTQ4MzYsIC0wLjYzNjA5MjAwNzE2MDE4NjgsIDAuNjM2MDkyMDA3MTYwMTg2OCwgLTAuNDM2Nzc4MDA4OTM3ODM1NywKKyAgICAgICAgLTAuNTE0OTY0OTk3NzY4NDAyMSwgMC41MTQ5NjQ5OTc3Njg0MDIxLCAtMC42ODUyODkwMjUzMDY3MDE3LCAtMC40ODk2NTA5OTQ1MzkyNjA4NiwgMC40ODk2NTA5OTQ1MzkyNjA4NiwgLTAuNzIxNDQ1OTc3Njg3ODM1NywKKyAgICAgICAgLTAuNTYwNTU0OTgxMjMxNjg5NSwgMC41NjA1NTQ5ODEyMzE2ODk1LCAtMC42MDk1NTM5OTI3NDgyNjA1LCAtMC4zODE3NTIwMTQxNjAxNTYyNSwgMC45MjE4Nzg5OTM1MTEyLCAtMC4wNjYzNjg5OTcwOTcwMTUzOCwKKyAgICAgICAgLTAuMzQ0MTc5MDA0NDMwNzcwOSwgMC44MzE0MzY5OTE2OTE1ODk0LCAtMC40MzYxNzk5OTU1MzY4MDQyLCAtMC4yNzg1OTM5ODcyMjY0ODYyLCAwLjY3MzUxMTk4MTk2NDExMTMsIC0wLjY4NDY2NTAyNDI4MDU0ODEsCisgICAgICAgIC0wLjI2NDg3NDAxMTI3ODE1MjQ3LCAwLjY0MDM5ODk3OTE4NzAxMTcsIC0wLjcyMDkyNDAxOTgxMzUzNzYsIC0wLjMwMzE2NjAwMjAzNTE0MSwgMC43MzI5NDkwMTg0NzgzOTM2LCAtMC42MDg5OTU5NzQwNjM4NzMzLAorICAgICAgICAwLCAwLjk5NzgwMzk4NjA3MjU0MDMsIC0wLjA2NjIzODk5OTM2Njc2MDI1LCAwLCAwLjkwMDE4MjAwODc0MzI4NjEsIC0wLjQzNTUxMjk4OTc1OTQ0NTIsCisgICAgICAgIDAsIDAuNzI5NjEwOTc5NTU3MDM3NCwgLTAuNjgzODYyOTg0MTgwNDUwNCwgMCwgMC42OTM5NTEwMTA3MDQwNDA1LCAtMC43MjAwMjIwMjI3MjQxNTE2LAorICAgICAgICAwLCAwLjc5Mzk1MDAyMTI2NjkzNzMsIC0wLjYwNzk4NDAwNjQwNDg3NjcsIDAsIDAuOTk3ODAzOTg2MDcyNTQwMywgLTAuMDY2MjM4OTk5MzY2NzYwMjUsCisgICAgICAgIDAuMzgxNzUyMDE0MTYwMTU2MjUsIDAuOTIxODc4OTkzNTExMiwgLTAuMDY2MzY4OTk3MDk3MDE1MzgsIDAuMzQ0MTc5MDA0NDMwNzcwOSwgMC44MzE0MzY5OTE2OTE1ODk0LCAtMC40MzYxNzk5OTU1MzY4MDQyLAorICAgICAgICAwLCAwLjkwMDE4MjAwODc0MzI4NjEsIC0wLjQzNTUxMjk4OTc1OTQ0NTIsIDAuMjc4NTkzOTg3MjI2NDg2MiwgMC42NzM1MTE5ODE5NjQxMTEzLCAtMC42ODQ2NjUwMjQyODA1NDgxLAorICAgICAgICAwLCAwLjcyOTYxMDk3OTU1NzAzNzQsIC0wLjY4Mzg2Mjk4NDE4MDQ1MDQsIDAuMjY0ODc0MDExMjc4MTUyNDcsIDAuNjQwMzk4OTc5MTg3MDExNywgLTAuNzIwOTI0MDE5ODEzNTM3NiwKKyAgICAgICAgMCwgMC42OTM5NTEwMTA3MDQwNDA1LCAtMC43MjAwMjIwMjI3MjQxNTE2LCAwLjMwMzE2NjAwMjAzNTE0MSwgMC43MzI5NDkwMTg0NzgzOTM2LCAtMC42MDg5OTU5NzQwNjM4NzMzLAorICAgICAgICAwLCAwLjc5Mzk1MDAyMTI2NjkzNzMsIC0wLjYwNzk4NDAwNjQwNDg3NjcsIDAuNzA1NTQyOTgxNjI0NjAzMywgMC43MDU1NDI5ODE2MjQ2MDMzLCAtMC4wNjY0Nzg5OTc0Njg5NDgzNiwKKyAgICAgICAgMC42MzYwOTIwMDcxNjAxODY4LCAwLjYzNjA5MjAwNzE2MDE4NjgsIC0wLjQzNjc3ODAwODkzNzgzNTcsIDAuNTE0OTY0OTk3NzY4NDAyMSwgMC41MTQ5NjQ5OTc3Njg0MDIxLCAtMC42ODUyODkwMjUzMDY3MDE3LAorICAgICAgICAwLjQ4OTY1MDk5NDUzOTI2MDg2LCAwLjQ4OTY1MDk5NDUzOTI2MDg2LCAtMC43MjE0NDU5Nzc2ODc4MzU3LCAwLjU2MDU1NDk4MTIzMTY4OTUsIDAuNTYwNTU0OTgxMjMxNjg5NSwgLTAuNjA5NTUzOTkyNzQ4MjYwNSwKKyAgICAgICAgMC45MjE4Nzg5OTM1MTEyLCAwLjM4MTc1MjAxNDE2MDE1NjI1LCAtMC4wNjYzNjg5OTcwOTcwMTUzOCwgMC44MzE0MzY5OTE2OTE1ODk0LCAwLjM0NDE3OTAwNDQzMDc3MDksIC0wLjQzNjE3OTk5NTUzNjgwNDIsCisgICAgICAgIDAuNjczNTExOTgxOTY0MTExMywgMC4yNzg1OTM5ODcyMjY0ODYyLCAtMC42ODQ2NjUwMjQyODA1NDgxLCAwLjY0MDM5ODk3OTE4NzAxMTcsIDAuMjY0ODc0MDExMjc4MTUyNDcsIC0wLjcyMDkyNDAxOTgxMzUzNzYsCisgICAgICAgIDAuNzMyOTQ5MDE4NDc4MzkzNiwgMC4zMDMxNjYwMDIwMzUxNDEsIC0wLjYwODk5NTk3NDA2Mzg3MzMsIDAuOTk3ODAzOTg2MDcyNTQwMywgMCwgLTAuMDY2MjM4OTk5MzY2NzYwMjUsCisgICAgICAgIDAuOTAwMTgyMDA4NzQzMjg2MSwgMCwgLTAuNDM1NTEyOTg5NzU5NDQ1MiwgMC43Mjk2MTA5Nzk1NTcwMzc0LCAwLCAtMC42ODM4NjI5ODQxODA0NTA0LAorICAgICAgICAwLjY5Mzk1MTAxMDcwNDA0MDUsIDAsIC0wLjcyMDAyMjAyMjcyNDE1MTYsIDAuNzkzOTUwMDIxMjY2OTM3MywgMCwgLTAuNjA3OTg0MDA2NDA0ODc2NywKKyAgICAgICAgMC43OTM5NTAwMjEyNjY5MzczLCAwLCAtMC42MDc5ODQwMDY0MDQ4NzY3LCAwLjczMjk0OTAxODQ3ODM5MzYsIC0wLjMwMzE2NjAwMjAzNTE0MSwgLTAuNjA4OTk1OTc0MDYzODczMywKKyAgICAgICAgMC41NzYyMjk5ODk1Mjg2NTYsIC0wLjIzODIxNTk5NzgxNTEzMjE0LCAtMC43ODE4MDA5ODUzMzYzMDM3LCAwLjYyMzg2MDAwMTU2NDAyNTksIDAsIC0wLjc4MTUzNTk4MzA4NTYzMjMsCisgICAgICAgIDAuMTYzNjI4OTk1NDE4NTQ4NTgsIC0wLjA2NzUyNzAwMzU4NjI5MjI3LCAtMC45ODQyMDc5ODc3ODUzMzk0LCAwLjE3NzI5MTAwNTg0OTgzODI2LCAwLCAtMC45ODQxNTg5OTI3NjczMzQsCisgICAgICAgIDAuMDQ1NDIxMDAwNTcwMDU4ODIsIC0wLjAxODczNTAwMDg2MzY3MTMwMywgLTAuOTk4NzkxOTkyNjY0MzM3MiwgMC4wNDkyMDY5OTgxOTkyMjQ0NywgMCwgLTAuOTk4Nzg5MDEyNDMyMDk4NCwKKyAgICAgICAgMCwgMCwgLTEsIDAsIDAsIC0xLAorICAgICAgICAwLjU2MDU1NDk4MTIzMTY4OTUsIC0wLjU2MDU1NDk4MTIzMTY4OTUsIC0wLjYwOTU1Mzk5Mjc0ODI2MDUsIDAuNDQwNDE2MDA4MjM0MDI0MDUsIC0wLjQ0MDQxNjAwODIzNDAyNDA1LCAtMC43ODIzNDc5NzcxNjE0MDc1LAorICAgICAgICAwLjEyNDkwMjAwMjUxMzQwODY2LCAtMC4xMjQ5MDIwMDI1MTM0MDg2NiwgLTAuOTg0Mjc1OTk2Njg1MDI4MSwgMC4wMzQ2NjIwMDA4MzQ5NDE4NjQsIC0wLjAzNDY2MjAwMDgzNDk0MTg2NCwgLTAuOTk4Nzk4MDEyNzMzNDU5NSwKKyAgICAgICAgMCwgMCwgLTEsIDAuMzAzMTY2MDAyMDM1MTQxLCAtMC43MzI5NDkwMTg0NzgzOTM2LCAtMC42MDg5OTU5NzQwNjM4NzMzLAorICAgICAgICAwLjIzODIxNTk5NzgxNTEzMjE0LCAtMC41NzYyMjk5ODk1Mjg2NTYsIC0wLjc4MTgwMDk4NTMzNjMwMzcsIDAuMDY3NTI3MDAzNTg2MjkyMjcsIC0wLjE2MzYyODk5NTQxODU0ODU4LCAtMC45ODQyMDc5ODc3ODUzMzk0LAorICAgICAgICAwLjAxODczNTAwMDg2MzY3MTMwMywgLTAuMDQ1NDIxMDAwNTcwMDU4ODIsIC0wLjk5ODc5MTk5MjY2NDMzNzIsIDAsIDAsIC0xLAorICAgICAgICAwLCAtMC43OTM5NTAwMjEyNjY5MzczLCAtMC42MDc5ODQwMDY0MDQ4NzY3LCAwLCAtMC42MjM4NjAwMDE1NjQwMjU5LCAtMC43ODE1MzU5ODMwODU2MzIzLAorICAgICAgICAwLCAtMC4xNzcyOTEwMDU4NDk4MzgyNiwgLTAuOTg0MTU4OTkyNzY3MzM0LCAwLCAtMC4wNDkyMDY5OTgxOTkyMjQ0NywgLTAuOTk4Nzg5MDEyNDMyMDk4NCwKKyAgICAgICAgMCwgMCwgLTEsIDAsIC0wLjc5Mzk1MDAyMTI2NjkzNzMsIC0wLjYwNzk4NDAwNjQwNDg3NjcsCisgICAgICAgIC0wLjMwMzE2NjAwMjAzNTE0MSwgLTAuNzMyOTQ5MDE4NDc4MzkzNiwgLTAuNjA4OTk1OTc0MDYzODczMywgLTAuMjM4MjE1OTk3ODE1MTMyMTQsIC0wLjU3NjIyOTk4OTUyODY1NiwgLTAuNzgxODAwOTg1MzM2MzAzNywKKyAgICAgICAgMCwgLTAuNjIzODYwMDAxNTY0MDI1OSwgLTAuNzgxNTM1OTgzMDg1NjMyMywgLTAuMDY3NTI3MDAzNTg2MjkyMjcsIC0wLjE2MzYyODk5NTQxODU0ODU4LCAtMC45ODQyMDc5ODc3ODUzMzk0LAorICAgICAgICAwLCAtMC4xNzcyOTEwMDU4NDk4MzgyNiwgLTAuOTg0MTU4OTkyNzY3MzM0LCAtMC4wMTg3MzUwMDA4NjM2NzEzMDMsIC0wLjA0NTQyMTAwMDU3MDA1ODgyLCAtMC45OTg3OTE5OTI2NjQzMzcyLAorICAgICAgICAwLCAtMC4wNDkyMDY5OTgxOTkyMjQ0NywgLTAuOTk4Nzg5MDEyNDMyMDk4NCwgMCwgMCwgLTEsCisgICAgICAgIDAsIDAsIC0xLCAtMC41NjA1NTQ5ODEyMzE2ODk1LCAtMC41NjA1NTQ5ODEyMzE2ODk1LCAtMC42MDk1NTM5OTI3NDgyNjA1LAorICAgICAgICAtMC40NDA0MTYwMDgyMzQwMjQwNSwgLTAuNDQwNDE2MDA4MjM0MDI0MDUsIC0wLjc4MjM0Nzk3NzE2MTQwNzUsIC0wLjEyNDkwMjAwMjUxMzQwODY2LCAtMC4xMjQ5MDIwMDI1MTM0MDg2NiwgLTAuOTg0Mjc1OTk2Njg1MDI4MSwKKyAgICAgICAgLTAuMDM0NjYyMDAwODM0OTQxODY0LCAtMC4wMzQ2NjIwMDA4MzQ5NDE4NjQsIC0wLjk5ODc5ODAxMjczMzQ1OTUsIDAsIDAsIC0xLAorICAgICAgICAtMC43MzI5NDkwMTg0NzgzOTM2LCAtMC4zMDMxNjYwMDIwMzUxNDEsIC0wLjYwODk5NTk3NDA2Mzg3MzMsIC0wLjU3NjIyOTk4OTUyODY1NiwgLTAuMjM4MjE1OTk3ODE1MTMyMTQsIC0wLjc4MTgwMDk4NTMzNjMwMzcsCisgICAgICAgIC0wLjE2MzYyODk5NTQxODU0ODU4LCAtMC4wNjc1MjcwMDM1ODYyOTIyNywgLTAuOTg0MjA3OTg3Nzg1MzM5NCwgLTAuMDQ1NDIxMDAwNTcwMDU4ODIsIC0wLjAxODczNTAwMDg2MzY3MTMwMywgLTAuOTk4NzkxOTkyNjY0MzM3MiwKKyAgICAgICAgMCwgMCwgLTEsIC0wLjc5Mzk1MDAyMTI2NjkzNzMsIDAsIC0wLjYwNzk4NDAwNjQwNDg3NjcsCisgICAgICAgIC0wLjYyMzg2MDAwMTU2NDAyNTksIDAsIC0wLjc4MTUzNTk4MzA4NTYzMjMsIC0wLjE3NzI5MTAwNTg0OTgzODI2LCAwLCAtMC45ODQxNTg5OTI3NjczMzQsCisgICAgICAgIC0wLjA0OTIwNjk5ODE5OTIyNDQ3LCAwLCAtMC45OTg3ODkwMTI0MzIwOTg0LCAwLCAwLCAtMSwKKyAgICAgICAgLTAuNzkzOTUwMDIxMjY2OTM3MywgMCwgLTAuNjA3OTg0MDA2NDA0ODc2NywgLTAuNzMyOTQ5MDE4NDc4MzkzNiwgMC4zMDMxNjYwMDIwMzUxNDEsIC0wLjYwODk5NTk3NDA2Mzg3MzMsCisgICAgICAgIC0wLjU3NjIyOTk4OTUyODY1NiwgMC4yMzgyMTU5OTc4MTUxMzIxNCwgLTAuNzgxODAwOTg1MzM2MzAzNywgLTAuNjIzODYwMDAxNTY0MDI1OSwgMCwgLTAuNzgxNTM1OTgzMDg1NjMyMywKKyAgICAgICAgLTAuMTYzNjI4OTk1NDE4NTQ4NTgsIDAuMDY3NTI3MDAzNTg2MjkyMjcsIC0wLjk4NDIwNzk4Nzc4NTMzOTQsIC0wLjE3NzI5MTAwNTg0OTgzODI2LCAwLCAtMC45ODQxNTg5OTI3NjczMzQsCisgICAgICAgIC0wLjA0NTQyMTAwMDU3MDA1ODgyLCAwLjAxODczNTAwMDg2MzY3MTMwMywgLTAuOTk4NzkxOTkyNjY0MzM3MiwgLTAuMDQ5MjA2OTk4MTk5MjI0NDcsIDAsIC0wLjk5ODc4OTAxMjQzMjA5ODQsCisgICAgICAgIDAsIDAsIC0xLCAwLCAwLCAtMSwKKyAgICAgICAgLTAuNTYwNTU0OTgxMjMxNjg5NSwgMC41NjA1NTQ5ODEyMzE2ODk1LCAtMC42MDk1NTM5OTI3NDgyNjA1LCAtMC40NDA0MTYwMDgyMzQwMjQwNSwgMC40NDA0MTYwMDgyMzQwMjQwNSwgLTAuNzgyMzQ3OTc3MTYxNDA3NSwKKyAgICAgICAgLTAuMTI0OTAyMDAyNTEzNDA4NjYsIDAuMTI0OTAyMDAyNTEzNDA4NjYsIC0wLjk4NDI3NTk5NjY4NTAyODEsIC0wLjAzNDY2MjAwMDgzNDk0MTg2NCwgMC4wMzQ2NjIwMDA4MzQ5NDE4NjQsIC0wLjk5ODc5ODAxMjczMzQ1OTUsCisgICAgICAgIDAsIDAsIC0xLCAtMC4zMDMxNjYwMDIwMzUxNDEsIDAuNzMyOTQ5MDE4NDc4MzkzNiwgLTAuNjA4OTk1OTc0MDYzODczMywKKyAgICAgICAgLTAuMjM4MjE1OTk3ODE1MTMyMTQsIDAuNTc2MjI5OTg5NTI4NjU2LCAtMC43ODE4MDA5ODUzMzYzMDM3LCAtMC4wNjc1MjcwMDM1ODYyOTIyNywgMC4xNjM2Mjg5OTU0MTg1NDg1OCwgLTAuOTg0MjA3OTg3Nzg1MzM5NCwKKyAgICAgICAgLTAuMDE4NzM1MDAwODYzNjcxMzAzLCAwLjA0NTQyMTAwMDU3MDA1ODgyLCAtMC45OTg3OTE5OTI2NjQzMzcyLCAwLCAwLCAtMSwKKyAgICAgICAgMCwgMC43OTM5NTAwMjEyNjY5MzczLCAtMC42MDc5ODQwMDY0MDQ4NzY3LCAwLCAwLjYyMzg2MDAwMTU2NDAyNTksIC0wLjc4MTUzNTk4MzA4NTYzMjMsCisgICAgICAgIDAsIDAuMTc3MjkxMDA1ODQ5ODM4MjYsIC0wLjk4NDE1ODk5Mjc2NzMzNCwgMCwgMC4wNDkyMDY5OTgxOTkyMjQ0NywgLTAuOTk4Nzg5MDEyNDMyMDk4NCwKKyAgICAgICAgMCwgMCwgLTEsIDAsIDAuNzkzOTUwMDIxMjY2OTM3MywgLTAuNjA3OTg0MDA2NDA0ODc2NywKKyAgICAgICAgMC4zMDMxNjYwMDIwMzUxNDEsIDAuNzMyOTQ5MDE4NDc4MzkzNiwgLTAuNjA4OTk1OTc0MDYzODczMywgMC4yMzgyMTU5OTc4MTUxMzIxNCwgMC41NzYyMjk5ODk1Mjg2NTYsIC0wLjc4MTgwMDk4NTMzNjMwMzcsCisgICAgICAgIDAsIDAuNjIzODYwMDAxNTY0MDI1OSwgLTAuNzgxNTM1OTgzMDg1NjMyMywgMC4wNjc1MjcwMDM1ODYyOTIyNywgMC4xNjM2Mjg5OTU0MTg1NDg1OCwgLTAuOTg0MjA3OTg3Nzg1MzM5NCwKKyAgICAgICAgMCwgMC4xNzcyOTEwMDU4NDk4MzgyNiwgLTAuOTg0MTU4OTkyNzY3MzM0LCAwLjAxODczNTAwMDg2MzY3MTMwMywgMC4wNDU0MjEwMDA1NzAwNTg4MiwgLTAuOTk4NzkxOTkyNjY0MzM3MiwKKyAgICAgICAgMCwgMC4wNDkyMDY5OTgxOTkyMjQ0NywgLTAuOTk4Nzg5MDEyNDMyMDk4NCwgMCwgMCwgLTEsCisgICAgICAgIDAsIDAsIC0xLCAwLjU2MDU1NDk4MTIzMTY4OTUsIDAuNTYwNTU0OTgxMjMxNjg5NSwgLTAuNjA5NTUzOTkyNzQ4MjYwNSwKKyAgICAgICAgMC40NDA0MTYwMDgyMzQwMjQwNSwgMC40NDA0MTYwMDgyMzQwMjQwNSwgLTAuNzgyMzQ3OTc3MTYxNDA3NSwgMC4xMjQ5MDIwMDI1MTM0MDg2NiwgMC4xMjQ5MDIwMDI1MTM0MDg2NiwgLTAuOTg0Mjc1OTk2Njg1MDI4MSwKKyAgICAgICAgMC4wMzQ2NjIwMDA4MzQ5NDE4NjQsIDAuMDM0NjYyMDAwODM0OTQxODY0LCAtMC45OTg3OTgwMTI3MzM0NTk1LCAwLCAwLCAtMSwKKyAgICAgICAgMC43MzI5NDkwMTg0NzgzOTM2LCAwLjMwMzE2NjAwMjAzNTE0MSwgLTAuNjA4OTk1OTc0MDYzODczMywgMC41NzYyMjk5ODk1Mjg2NTYsIDAuMjM4MjE1OTk3ODE1MTMyMTQsIC0wLjc4MTgwMDk4NTMzNjMwMzcsCisgICAgICAgIDAuMTYzNjI4OTk1NDE4NTQ4NTgsIDAuMDY3NTI3MDAzNTg2MjkyMjcsIC0wLjk4NDIwNzk4Nzc4NTMzOTQsIDAuMDQ1NDIxMDAwNTcwMDU4ODIsIDAuMDE4NzM1MDAwODYzNjcxMzAzLCAtMC45OTg3OTE5OTI2NjQzMzcyLAorICAgICAgICAwLCAwLCAtMSwgMC43OTM5NTAwMjEyNjY5MzczLCAwLCAtMC42MDc5ODQwMDY0MDQ4NzY3LAorICAgICAgICAwLjYyMzg2MDAwMTU2NDAyNTksIDAsIC0wLjc4MTUzNTk4MzA4NTYzMjMsIDAuMTc3MjkxMDA1ODQ5ODM4MjYsIDAsIC0wLjk4NDE1ODk5Mjc2NzMzNCwKKyAgICAgICAgMC4wNDkyMDY5OTgxOTkyMjQ0NywgMCwgLTAuOTk4Nzg5MDEyNDMyMDk4NCwgMCwgMCwgLTEsCisgICAgICAgIDAuMDA3Nzg0OTk5OTA3MDE2NzU0LCAwLjAwMDIxNDk5OTk5Mjc0OTY1Mzc2LCAtMC45OTk5NzAwMTg4NjM2NzgsIDAuMDA3MDM4MDAwMDM5NzU2Mjk4LCAtMC41ODI5MjU5NzUzMjI3MjM0LCAtMC44MTI0OTQ5OTMyMDk4Mzg5LAorICAgICAgICAwLjAzNjEyNzAwMTA0NzEzNDQsIC0wLjU0NTYxNDAwNDEzNTEzMTgsIC0wLjgzNzI1Nzk4MTMwMDM1NCwgMC4wMzkxMzgwMDA0NTg0Nzg5MywgMC4wMDA5ODc5OTk5NTYxMjM1MzA5LCAtMC45OTkyMzMwMDc0MzEwMzAzLAorICAgICAgICAwLjE2MTg0NTk5Njk3NTg5ODc0LCAtMC41NjMwNDkwMTgzODMwMjYxLCAtMC44MTA0MjA5ODk5OTAyMzQ0LCAwLjE3OTUxMTk5NDEyMzQ1ODg2LCAwLjAwNDM2ODAwMDE5ODE1NTY0MTYsIC0wLjk4Mzc0NTk5MjE4MzY4NTMsCisgICAgICAgIDAuNDgyMzY1MDEyMTY4ODg0MywgLTAuNjQyNzQ1OTcxNjc5Njg3NSwgLTAuNTk1MTQ4MDI2OTQzMjA2OCwgMC42MTIyOTk5Nzg3MzMwNjI3LCAwLjAxMDQ1OTAwMDI0NDczNjY3MSwgLTAuNzkwNTU2MDEzNTg0MTM3LAorICAgICAgICAwLjczODcxOTk5OTc5MDE5MTcsIC0wLjY2NDE5ODk5NDYzNjUzNTYsIC0wLjExNDU5Mjk5OTIxOTg5NDQxLCAwLjk4NjE1MTk5MzI3NDY4ODcsIDAuMDA2NjY4OTk5NzkxMTQ1MzI1LCAtMC4xNjU3MDcwMDcwNTA1MTQyMiwKKyAgICAgICAgLTAuMDAxOTA3OTk5OTc2NTM4MTIxNywgLTAuOTg2NzY5MDIwNTU3NDAzNiwgMC4xNjIxMjA5OTc5MDU3MzEyLCAwLjAwMjc2MTAwMDA2ODg1ODI2NiwgLTAuOTk5ODQ5OTc1MTA5MTAwMywgMC4wMTcxMDUwMDAwOTM1NzkyOTIsCisgICAgICAgIDAuMDEwNTMyMDAwMTAyMTAyNzU3LCAtMC45OTcyNDY5ODA2NjcxMTQzLCAwLjA3MzM5ODAwMTQ5MjAyMzQ3LCAtMC4wNjYwNDAwMDE4MDk1OTcwMiwgLTAuOTg5MzAyOTkyODIwNzM5NywgMC4xMzAwNjkwMDI1MDkxMTcxMywKKyAgICAgICAgLTAuMDk0NDI2OTk3MDA1OTM5NDgsIC0wLjk5NTM5Mjk3ODE5MTM3NTcsIDAuMDE2NTk0MDAwMTYwNjk0MTIyLCAtMC4wMDkyMDE5OTk3NTM3MTM2MDgsIC0wLjQ5MDI5Mjk5NjE2ODEzNjYsIDAuODcxNTA5MDE1NTYwMTUwMSwKKyAgICAgICAgLTAuMDQ4NjA2MDAwODQwNjYzOTEsIC0wLjUzOTQ1Nzk3NjgxODA4NDcsIDAuODQwNjA5MDE0MDM0MjcxMiwgLTAuMjIzMjk3OTk4MzA5MTM1NDQsIC0wLjU1MjczOTAyNDE2MjI5MjUsIDAuODAyODgxMDAyNDI2MTQ3NSwKKyAgICAgICAgLTAuNTk2MzY0OTc0OTc1NTg1OSwgLTAuNTc1MTM0OTkyNTk5NDg3MywgMC41NTk5NzA5NzQ5MjIxODAyLCAtMC44MDMzMzY5Nzc5NTg2NzkyLCAtMC41OTE2MDI5ODEwOTA1NDU3LCAwLjA2ODIzNTAwMjQ1ODA5NTU1LAorICAgICAgICAtMC4wMTA1NjAwMDAzMTUzMDg1NywgLTAuMDAwMTAyOTk5OTk4NDg5Mzk0NzgsIDAuOTk5OTQzOTcxNjMzOTExMSwgLTAuMDU4Nzk4MDAwMjE2NDg0MDcsIC0wLjAwMDcwODk5OTk4NTM2MzMzNDQsIDAuOTk4MjY5OTc1MTg1Mzk0MywKKyAgICAgICAgLTAuMjgwNzEwMDExNzIwNjU3MzUsIC0wLjAwMzI2Nzk5OTk3MTI4NTQ2MjQsIDAuOTU5Nzg3MDExMTQ2NTQ1NCwgLTAuNzQ5NzIzMDE3MjE1NzI4OCwgLTAuMDA0MjY3MDAwMTI3NTgzNzQyLCAwLjY2MTczNzk3ODQ1ODQwNDUsCisgICAgICAgIC0wLjk5NzM1MDk5MDc3MjI0NzMsIC0wLjAwMjA1ODAwMDA3MDk3NDIzMDgsIDAuMDcyNzE0MDAwOTQwMzIyODgsIC0wLjAxMDU2MDAwMDMxNTMwODU3LCAtMC4wMDAxMDI5OTk5OTg0ODkzOTQ3OCwgMC45OTk5NDM5NzE2MzM5MTExLAorICAgICAgICAtMC4wMDg3OTE5OTk4OTE0MDAzMzcsIDAuNDkwMzI4OTk3MzczNTgwOTMsIDAuODcxNDkyOTgxOTEwNzA1NiwgLTAuMDQ2NDkzMDAxMjgyMjE1MTIsIDAuNTM4NzU2MDEyOTE2NTY0OSwgMC44NDExNzc5OTk5NzMyOTcxLAorICAgICAgICAtMC4wNTg3OTgwMDAyMTY0ODQwNywgLTAuMDAwNzA4OTk5OTg1MzYzMzM0NCwgMC45OTgyNjk5NzUxODUzOTQzLCAtMC4yMTc5MDg5OTMzNjMzODA0MywgMC41NDkxNjEwMTY5NDEwNzA2LCAwLjgwNjgwNjk4MTU2MzU2ODEsCisgICAgICAgIC0wLjI4MDcxMDAxMTcyMDY1NzM1LCAtMC4wMDMyNjc5OTk5NzEyODU0NjI0LCAwLjk1OTc4NzAxMTE0NjU0NTQsIC0wLjU5NzI5MDk5MjczNjgxNjQsIDAuNTc0MTE5OTg1MTAzNjA3MiwgMC41NjAwMjcwMDMyODgyNjksCisgICAgICAgIC0wLjc0OTcyMzAxNzIxNTcyODgsIC0wLjAwNDI2NzAwMDEyNzU4Mzc0MiwgMC42NjE3Mzc5Nzg0NTg0MDQ1LCAtMC44MDQwMDAwMjAwMjcxNjA2LCAwLjU5MTI5MTAxMDM3OTc5MTMsIDAuMDYyOTEyMDAyMjA1ODQ4NywKKyAgICAgICAgLTAuOTk3MzUwOTkwNzcyMjQ3MywgLTAuMDAyMDU4MDAwMDcwOTc0MjMwOCwgMC4wNzI3MTQwMDA5NDAzMjI4OCwgLTAuMDAxODA1MDAwMDA3MTUyNTU3NCwgMC45ODY4NDAwMDk2ODkzMzEsIDAuMTYxNjkwOTk1MDk3MTYwMzQsCisgICAgICAgIDAuMDAyMDMxMDAwMDk4MjEzNTUzNCwgMC45OTk4OTE5OTYzODM2NjcsIDAuMDE0NTUzMDAwMjE5MTY2Mjc5LCAwLjAwOTIxNTAwMDA4NTUzMjY2NSwgMC45OTgxNTIwMTc1OTMzODM4LCAwLjA2MDA2ODk5ODQ4NTgwMzYwNCwKKyAgICAgICAgLTAuMDU5MzM1MDAwODEzMDA3MzU1LCAwLjk5MTcyMzAwMTAwMzI2NTQsIDAuMTEzODY2MDAxMzY3NTY4OTcsIC0wLjA4NjkwMTAwMTYzMjIxMzU5LCAwLjk5NjE0MTAxNjQ4MzMwNjksIDAuMDEyMjg5OTk5OTg0MjA0NzcsCisgICAgICAgIDAuMDA2NDE3MDAwMjAwNTk5NDMyLCAwLjU4MzA5NTAxNDA5NTMwNjQsIC0wLjgxMjM3OTAwMjU3MTEwNiwgMC4wMzM3ODI5OTk5NjI1NjgyOCwgMC41NDUzNzMwMjI1NTYzMDQ5LCAtMC44Mzc1MTMwMjk1NzUzNDc5LAorICAgICAgICAwLjE1NzExMzAwMDc1MDU0MTcsIDAuNTYyMTg4OTgyOTYzNTYyLCAtMC44MTE5NDY5ODgxMDU3NzM5LCAwLjQ4NDQwNTk5NDQxNTI4MzIsIDAuNjQ2NTI5MDE4ODc4OTM2OCwgLTAuNTg5MzY1MDA1NDkzMTY0MSwKKyAgICAgICAgMC43Mzg4NzAwMjQ2ODEwOTEzLCAwLjY2NjE4ODAwMTYzMjY5MDQsIC0wLjEwMTMxOTk5ODUwMjczMTMyLCAwLjAwNzc4NDk5OTkwNzAxNjc1NCwgMC4wMDAyMTQ5OTk5OTI3NDk2NTM3NiwgLTAuOTk5OTcwMDE4ODYzNjc4LAorICAgICAgICAwLjAzOTEzODAwMDQ1ODQ3ODkzLCAwLjAwMDk4Nzk5OTk1NjEyMzUzMDksIC0wLjk5OTIzMzAwNzQzMTAzMDMsIDAuMTc5NTExOTk0MTIzNDU4ODYsIDAuMDA0MzY4MDAwMTk4MTU1NjQxNiwgLTAuOTgzNzQ1OTkyMTgzNjg1MywKKyAgICAgICAgMC42MTIyOTk5Nzg3MzMwNjI3LCAwLjAxMDQ1OTAwMDI0NDczNjY3MSwgLTAuNzkwNTU2MDEzNTg0MTM3LCAwLjk4NjE1MTk5MzI3NDY4ODcsIDAuMDA2NjY4OTk5NzkxMTQ1MzI1LCAtMC4xNjU3MDcwMDcwNTA1MTQyMiwKKyAgICAgICAgMC45ODYxNTE5OTMyNzQ2ODg3LCAwLjAwNjY2ODk5OTc5MTE0NTMyNSwgLTAuMTY1NzA3MDA3MDUwNTE0MjIsIDAuNzM4NzE5OTk5NzkwMTkxNywgLTAuNjY0MTk4OTk0NjM2NTM1NiwgLTAuMTE0NTkyOTk5MjE5ODk0NDEsCisgICAgICAgIDAuNzI1NjA5MDA0NDk3NTI4MSwgLTAuNjM3MzYwOTkwMDQ3NDU0OCwgMC4yNTkzNTA5ODUyODg2MiwgMC45NDY1MTE5ODM4NzE0NiwgMC4wMDMzNTY5OTk5NTA0ODM0NDE0LCAwLjMyMjY0OTk4NTU1MTgzNDEsCisgICAgICAgIDAuNjQ1OTQ1MDEyNTY5NDI3NSwgLTAuNjA3NzIwMDE3NDMzMTY2NSwgMC40NjE5ODgwMDIwNjE4NDM4NywgMC44MjU4Mjk5ODI3NTc1Njg0LCAwLjAwNzQ1MTk5OTkzMjUyNzU0MiwgMC41NjM4NzAwMTI3NjAxNjI0LAorICAgICAgICAwLjUzMTYxNTAxODg0NDYwNDUsIC0wLjU1ODYxNDAxNTU3OTIyMzYsIDAuNjM2NjU5OTc5ODIwMjUxNSwgMC42NTAwMTEwMDMwMTc0MjU1LCAwLjAwNjkzNjAwMDE5NDQwMDU0OSwgMC43NTk4OTMwMDAxMjU4ODUsCisgICAgICAgIDAuNDI0OTY0MDEwNzE1NDg0NiwgLTAuNTk1NTM4OTczODA4Mjg4NiwgMC42ODE3MTc5OTE4Mjg5MTg1LCAwLjUzMjQyODk3OTg3MzY1NzIsIDAuMDA1MjQzOTk5ODgzNTMyNTI0LCAwLjg0NjQ1ODAxNzgyNjA4MDMsCisgICAgICAgIC0wLjA5NDQyNjk5NzAwNTkzOTQ4LCAtMC45OTUzOTI5NzgxOTEzNzU3LCAwLjAxNjU5NDAwMDE2MDY5NDEyMiwgLTAuMDQ5NTYxMDAxMzYwNDE2NDEsIC0wLjk5ODU3NTk4NTQzMTY3MTEsIC0wLjAxOTc1NTAwMDI0ODU1MTM3LAorICAgICAgICAtMC4wMzc4MTcwMDEzNDI3NzM0NCwgLTAuOTk4NjQ5MDAxMTIxNTIxLCAtMC4wMzU2MjQ5OTk1NTI5NjUxNjQsIC0wLjAzNzkxMjk5ODM0ODQ3NDUsIC0wLjk5ODYxNDAxMzE5NTAzNzgsIC0wLjAzNjUxMTk5ODYyMzYwOTU0LAorICAgICAgICAtMC4xNjg4NTM5OTgxODQyMDQxLCAtMC45Mzk1MzAwMTQ5OTE3NjAzLCAtMC4yOTc5NDYwMDYwNTk2NDY2LCAtMC44MDMzMzY5Nzc5NTg2NzkyLCAtMC41OTE2MDI5ODEwOTA1NDU3LCAwLjA2ODIzNTAwMjQ1ODA5NTU1LAorICAgICAgICAtMC43NDIzNDA5ODE5NjAyOTY2LCAtMC41OTk1MjQwMjExNDg2ODE2LCAtMC4yOTkxNjU5OTM5Mjg5MDkzLCAtMC42MTk2MDIwMjQ1NTUyMDYzLCAtMC41Nzk1MDI5OTk3ODI1NjIzLCAtMC41Mjk0MDYwMTExMDQ1ODM3LAorICAgICAgICAtMC40ODM3MDc5OTQyMjI2NDEsIC0wLjU0MzgzNzAxMDg2MDQ0MzEsIC0wLjY4NTc2MDAyMTIwOTcxNjgsIC0wLjQ0NTI5MTk5NjAwMjE5NzI3LCAtMC40MTMxNzcwMTMzOTcyMTY4LCAtMC43OTQzNTQ5NzUyMjM1NDEzLAorICAgICAgICAtMC45OTczNTA5OTA3NzIyNDczLCAtMC4wMDIwNTgwMDAwNzA5NzQyMzA4LCAwLjA3MjcxNDAwMDk0MDMyMjg4LCAtMC45MjY1MTMwMTYyMjM5MDc1LCAtMC4wMDE5OTUwMDAwNTY5MjI0MzU4LCAtMC4zNzYyNTcwMDIzNTM2NjgyLAorICAgICAgICAtMC43NTM5MjAwMTg2NzI5NDMxLCAtMC4wMDQzMTcwMDAwNDI2NDcxMjMsIC0wLjY1Njk1MjAyMzUwNjE2NDYsIC0wLjU2NjIyMzk3ODk5NjI3NjksIC0wLjAwMzQ2MTAwMDA0Mzg5ODgyMSwgLTAuODI0MjQ0MDIyMzY5Mzg0OCwKKyAgICAgICAgLTAuNDgxODA0MDEzMjUyMjU4MywgLTAuMDAxODUwMDAwMDAwNTU4NzkzNSwgLTAuODc2Mjc3MDI5NTE0MzEyNywgLTAuOTk3MzUwOTkwNzcyMjQ3MywgLTAuMDAyMDU4MDAwMDcwOTc0MjMwOCwgMC4wNzI3MTQwMDA5NDAzMjI4OCwKKyAgICAgICAgLTAuODA0MDAwMDIwMDI3MTYwNiwgMC41OTEyOTEwMTAzNzk3OTEzLCAwLjA2MjkxMjAwMjIwNTg0ODcsIC0wLjc0NDY3NDk4MDY0MDQxMTQsIDAuNTk4OTc3MDI5MzIzNTc3OSwgLTAuMjk0NDIzOTk3NDAyMTkxMTYsCisgICAgICAgIC0wLjkyNjUxMzAxNjIyMzkwNzUsIC0wLjAwMTk5NTAwMDA1NjkyMjQzNTgsIC0wLjM3NjI1NzAwMjM1MzY2ODIsIC0wLjYyMTk0OTAxNzA0Nzg4MjEsIDAuNTc4MTY0OTk0NzE2NjQ0MywgLTAuNTI4MTE0MDIwODI0NDMyNCwKKyAgICAgICAgLTAuNzUzOTIwMDE4NjcyOTQzMSwgLTAuMDA0MzE3MDAwMDQyNjQ3MTIzLCAtMC42NTY5NTIwMjM1MDYxNjQ2LCAtMC40ODExNzEwMTE5MjQ3NDM2NSwgMC41NDI4MjgwMjM0MzM2ODUzLCAtMC42ODgzNDAwMDgyNTg4MTk2LAorICAgICAgICAtMC41NjYyMjM5Nzg5OTYyNzY5LCAtMC4wMDM0NjEwMDAwNDM4OTg4MjEsIC0wLjgyNDI0NDAyMjM2OTM4NDgsIC0wLjQzODA1NTAwODY0OTgyNjA1LCAwLjQxNTc0NDAwNjYzMzc1ODU0LCAtMC43OTcwMzQ5Nzg4NjY1NzcxLAorICAgICAgICAtMC40ODE4MDQwMTMyNTIyNTgzLCAtMC4wMDE4NTAwMDAwMDA1NTg3OTM1LCAtMC44NzYyNzcwMjk1MTQzMTI3LCAtMC4wODY5MDEwMDE2MzIyMTM1OSwgMC45OTYxNDEwMTY0ODMzMDY5LCAwLjAxMjI4OTk5OTk4NDIwNDc3LAorICAgICAgICAtMC4wNDQzMzc5OTkwNzU2NTExNywgMC45OTg4NzEwMjg0MjMzMDkzLCAtMC4wMTcwNTU5OTk0ODc2Mzg0NzQsIC0wLjAyNjE3NzAwMDI1NDM5MjYyNCwgMC45OTkyNjAwMDgzMzUxMTM1LCAtMC4wMjgxNjcwMDAwNDA0MTE5NSwKKyAgICAgICAgLTAuMDI1MjkzMDAwMDQyNDM4NTA3LCAwLjk5OTI3ODAwODkzNzgzNTcsIC0wLjAyODMzMjAwMDU5ODMxMTQyNCwgLTAuMTU3NDgxOTk4MjA1MTg0OTQsIDAuOTQ0MTY3MDE3OTM2NzA2NSwgLTAuMjg5MzkzMDA3NzU1Mjc5NTQsCisgICAgICAgIDAuNzM4ODcwMDI0NjgxMDkxMywgMC42NjYxODgwMDE2MzI2OTA0LCAtMC4xMDEzMTk5OTg1MDI3MzEzMiwgMC43MjgyNDQwMDY2MzM3NTg1LCAwLjYzNzE0MjAwMjU4MjU1LCAwLjI1MjQwOTk5NDYwMjIwMzM3LAorICAgICAgICAwLjY0NzA1NDAxNjU5MDExODQsIDAuNjA4MjU1MDI4NzI0NjcwNCwgMC40NTk3MjQ5OTI1MTM2NTY2LCAwLjUyMjk5Mzk4MTgzODIyNjMsIDAuNTYyMTcwMDI4Njg2NTIzNCwgMC42NDA2NTcwMDc2OTQyNDQ0LAorICAgICAgICAwLjQwOTk3ODAwMjMwOTc5OTIsIDAuNjA0NjY4OTc0ODc2NDAzOCwgMC42ODI4NTY5NzY5ODU5MzE0LCAwLjk4NjE1MTk5MzI3NDY4ODcsIDAuMDA2NjY4OTk5NzkxMTQ1MzI1LCAtMC4xNjU3MDcwMDcwNTA1MTQyMiwKKyAgICAgICAgMC45NDY1MTE5ODM4NzE0NiwgMC4wMDMzNTY5OTk5NTA0ODM0NDE0LCAwLjMyMjY0OTk4NTU1MTgzNDEsIDAuODI1ODI5OTgyNzU3NTY4NCwgMC4wMDc0NTE5OTk5MzI1Mjc1NDIsIDAuNTYzODcwMDEyNzYwMTYyNCwKKyAgICAgICAgMC42NTAwMTEwMDMwMTc0MjU1LCAwLjAwNjkzNjAwMDE5NDQwMDU0OSwgMC43NTk4OTMwMDAxMjU4ODUsIDAuNTMyNDI4OTc5ODczNjU3MiwgMC4wMDUyNDM5OTk4ODM1MzI1MjQsIDAuODQ2NDU4MDE3ODI2MDgwMywKKyAgICAgICAgLTAuMjMwNzg2OTk0MDk5NjE3LCAwLjAwNjUyMzAwMDA3NjQxMzE1NSwgMC45NzI5ODE5ODkzODM2OTc1LCAtMC4xNTI4NzgwMDEzMzIyODMwMiwgLTAuNzEwMTg5OTk4MTQ5ODcxOCwgMC42ODcyMTA5NzcwNzc0ODQxLAorICAgICAgICAtMC4zMTY3MjA5OTIzMjY3MzY0NSwgLTAuNzAyMTEyOTcyNzM2MzU4NiwgMC42Mzc3NTAwMjk1NjM5MDM4LCAtMC41NDg5MzYwMDk0MDcwNDM1LCAwLjAwMTUxMDk5OTk4MDM4MjYyMTMsIDAuODM1ODYyOTk0MTk0MDMwOCwKKyAgICAgICAgLTAuNjAxMDY3MDA2NTg3OTgyMiwgLTAuNjQ1MzMwMDExODQ0NjM1LCAwLjQ3MTQ1MTk5Nzc1Njk1OCwgLTAuODc1NjcxMDI5MDkwODgxMywgLTAuMDA5ODkxOTk5ODg1NDM5ODczLCAwLjQ4MjgwNzAxMDQxMjIxNjIsCisgICAgICAgIC0wLjYzNTg5MDAwNzAxOTA0MywgLTAuNjI5ODAwMDIxNjQ4NDA3LCAwLjQ0NjA5MDAxMjc4ODc3MjYsIC0wLjg3NzU1Mzk5OTQyMzk4MDcsIC0wLjAxOTA5MTAwMDc4MDQ2MzIyLCAwLjQ3OTA5NzAwODcwNTEzOTE2LAorICAgICAgICAtMC40MzU3NDUwMDA4MzkyMzM0LCAtMC42NzAwMDk5NzA2NjQ5NzgsIDAuNjAxMDA5MDExMjY4NjE1NywgLTAuNjk2MTg4OTg2MzAxNDIyMSwgLTAuMDI0NDk2MDAwMjYwMTE0NjcsIDAuNzE3NDQwMDA5MTE3MTI2NSwKKyAgICAgICAgMC4xMTExMTI5OTY5MzU4NDQ0MiwgLTAuOTkwMTU5OTg4NDAzMzIwMywgLTAuMDg1MDY5MDAwNzIwOTc3NzgsIDAuMjIzMzA5OTkzNzQzODk2NDgsIC0wLjk3NDcyNjAyMTI4OTgyNTQsIDAuMDA2NTM5OTk5OTczMDI4ODk4LAorICAgICAgICAwLjE5MDA5NzAwNDE3NTE4NjE2LCAtMC45Njk0NTc5ODM5NzA2NDIxLCAwLjE1NDk2Mzk5OTk4NjY0ODU2LCAwLjAwNTI3MDAwMDA4MTUwOTM1MiwgLTAuOTgxODY5OTk1NTk0MDI0NywgMC4xODk0ODIwMDM0NTAzOTM2OCwKKyAgICAgICAgLTAuMDExNzUwOTk5ODM4MTEzNzg1LCAtMC45NjkwMjQwMDI1NTIwMzI1LCAwLjI0NjY4Njk5NTAyOTQ0OTQ2LCAwLjM0MzkwNTk4NTM1NTM3NzIsIC0wLjU5OTQxMjAyNDAyMTE0ODcsIC0wLjcyMjc5NTAwOTYxMzAzNzEsCisgICAgICAgIDAuNTcyNDg5OTc2ODgyOTM0NiwgLTAuNTkxNjI3MDAxNzYyMzkwMSwgLTAuNTY3NjU1OTgwNTg3MDA1NiwgMC43ODc0MzYwMDg0NTMzNjkxLCAtMC41NjA1MTA5OTMwMDM4NDUyLCAtMC4yNTY0NjAwMTEwMDU0MDE2LAorICAgICAgICAwLjY0NzA5Njk5MTUzOTAwMTUsIC0wLjY5ODE0MDk3ODgxMzE3MTQsIC0wLjMwNjM3NDAxMzQyMzkxOTcsIDAuNDI3NTI3OTkzOTE3NDY1MiwgLTAuNzUzNTc1MDI2OTg4OTgzMiwgLTAuNDk5MzQzOTkxMjc5NjAyMDUsCisgICAgICAgIDAuNDEwOTI2MDE0MTg0OTUxOCwgLTAuMDAxMjgzOTk5OTk4MTIyNDUzNywgLTAuOTExNjY4MDAyNjA1NDM4MiwgMC42NzE1MTk5OTQ3MzU3MTc4LCAwLjAwMDg5ODk5OTk3NjkyNTU1MTksIC0wLjc0MDk4NTk4OTU3MDYxNzcsCisgICAgICAgIDAuOTIyMDI1OTc4NTY1MjE2MSwgMC4wMDcyNTE5OTk4MDY2MTI3MywgLTAuMzg3MDU5OTg2NTkxMzM5MSwgMC44NDY5MDk5OTk4NDc0MTIxLCAwLjAxMzg1Mzk5OTc4NjA3ODkzLCAtMC41MzE1NTYwMTAyNDYyNzY5LAorICAgICAgICAwLjUzNTkyNDAxNzQyOTM1MTgsIDAuMDEwNTAzOTk5ODg4ODk2OTQyLCAtMC44NDQyMDEwMjgzNDcwMTU0LCAwLjQxMDkyNjAxNDE4NDk1MTgsIC0wLjAwMTI4Mzk5OTk5ODEyMjQ1MzcsIC0wLjkxMTY2ODAwMjYwNTQzODIsCisgICAgICAgIDAuMzQxMTg4MDEzNTUzNjE5NCwgMC42MDA5MzA5ODg3ODg2MDQ3LCAtMC43MjI4MjMwMjM3OTYwODE1LCAwLjU3ODY2NDAwNDgwMjcwMzksIDAuNTkxODM4MDAyMjA0ODk1LCAtMC41NjExMzg5ODc1NDExOTg3LAorICAgICAgICAwLjY3MTUxOTk5NDczNTcxNzgsIDAuMDAwODk4OTk5OTc2OTI1NTUxOSwgLTAuNzQwOTg1OTg5NTcwNjE3NywgMC43ODQ4NjkwMTUyMTY4Mjc0LCAwLjU2NjU0MjAyOTM4MDc5ODMsIC0wLjI1MTAyMDAxNDI4NjA0MTI2LAorICAgICAgICAwLjkyMjAyNTk3ODU2NTIxNjEsIDAuMDA3MjUxOTk5ODA2NjEyNzMsIC0wLjM4NzA1OTk4NjU5MTMzOTEsIDAuNjQyNjgxMDAyNjE2ODgyMywgMC43MDM5ODk5ODI2MDQ5ODA1LCAtMC4zMDIyNTcwMDEzOTk5OTM5LAorICAgICAgICAwLjg0NjkwOTk5OTg0NzQxMjEsIDAuMDEzODUzOTk5Nzg2MDc4OTMsIC0wLjUzMTU1NjAxMDI0NjI3NjksIDAuNDE4NTg4OTk1OTMzNTMyNywgMC43NTgxMTcwMjAxMzAxNTc1LCAtMC41MDAwNDIwMjEyNzQ1NjY3LAorICAgICAgICAwLjUzNTkyNDAxNzQyOTM1MTgsIDAuMDEwNTAzOTk5ODg4ODk2OTQyLCAtMC44NDQyMDEwMjgzNDcwMTU0LCAwLjExNTgwNTk5ODQ0NDU1NzE5LCAwLjk5MDExMzk3MzYxNzU1MzcsIC0wLjA3OTEzOTAwMTY2NzQ5OTU0LAorICAgICAgICAwLjIzMjgxMTAwMzkyMzQxNjE0LCAwLjk3MjQ0MTAxNzYyNzcxNjEsIDAuMDEyNTY0OTk5OTgyNzE0NjUzLCAwLjIwNjY2Mjk5NzYwMzQxNjQ0LCAwLjk2NjI3OTk4MzUyMDUwNzgsIDAuMTUzNjAwMDA3Mjk1NjA4NTIsCisgICAgICAgIDAuMDI0NDk4OTk5MTE4ODA0OTMsIDAuOTg2NTc3OTg3NjcwODk4NCwgMC4xNjE0NDI5OTUwNzE0MTExMywgMC4wMDMzODA5OTk5MDA0MDA2Mzg2LCAwLjk3NzQ1NTAxOTk1MDg2NjcsIDAuMjExMTE1MDAyNjMyMTQxMSwKKyAgICAgICAgLTAuMTM0OTExOTk5MTA2NDA3MTcsIDAuNzEzNTUwOTg0ODU5NDY2NiwgMC42ODc0OTA5OTk2OTg2Mzg5LCAtMC4zMTk1Mzk5OTQwMDEzODg1NSwgMC43MDUwNjE5NzIxNDEyNjU5LCAwLjYzMzA3Mjk3MjI5NzY2ODUsCisgICAgICAgIC0wLjYwMzkwMTk4MjMwNzQzNDEsIDAuNjQ5OTAyOTk5NDAxMDkyNSwgMC40NjE0NDE5OTM3MTMzNzg5LCAtMC42MzE4MTUwMTYyNjk2ODM4LCAwLjY0MDA3MTk4ODEwNTc3MzksIDAuNDM3MTY4OTg1NjA1MjM5ODcsCisgICAgICAgIC0wLjQyNDMwNDk5MTk2MDUyNTUsIDAuNjY2NzUwMDEzODI4Mjc3NiwgMC42MTI3MDcwMTg4NTIyMzM5LCAtMC4yMzA3ODY5OTQwOTk2MTcsIDAuMDA2NTIzMDAwMDc2NDEzMTU1LCAwLjk3Mjk4MTk4OTM4MzY5NzUsCisgICAgICAgIC0wLjU0ODkzNjAwOTQwNzA0MzUsIDAuMDAxNTEwOTk5OTgwMzgyNjIxMywgMC44MzU4NjI5OTQxOTQwMzA4LCAtMC44NzU2NzEwMjkwOTA4ODEzLCAtMC4wMDk4OTE5OTk4ODU0Mzk4NzMsIDAuNDgyODA3MDEwNDEyMjE2MiwKKyAgICAgICAgLTAuODc3NTUzOTk5NDIzOTgwNywgLTAuMDE5MDkxMDAwNzgwNDYzMjIsIDAuNDc5MDk3MDA4NzA1MTM5MTYsIC0wLjY5NjE4ODk4NjMwMTQyMjEsIC0wLjAyNDQ5NjAwMDI2MDExNDY3LCAwLjcxNzQ0MDAwOTExNzEyNjUsCisgICAgICAgIC0wLjY5NjE4ODk4NjMwMTQyMjEsIC0wLjAyNDQ5NjAwMDI2MDExNDY3LCAwLjcxNzQ0MDAwOTExNzEyNjUsIC0wLjQzNTc0NTAwMDgzOTIzMzQsIC0wLjY3MDAwOTk3MDY2NDk3OCwgMC42MDEwMDkwMTEyNjg2MTU3LAorICAgICAgICAtMC4yNTk4NTgwMTIxOTk0MDE4NiwgLTAuNTUyNTQ3OTkxMjc1Nzg3NCwgMC43OTE5MzgwMDY4Nzc4OTkyLCAtMC40MjU3OTkwMTIxODQxNDMwNywgLTAuMDEwODA0OTk5NjE5NzIyMzY2LCAwLjkwNDc1MzAyOTM0NjQ2NjEsCisgICAgICAgIDAuMDA5NTM3MDAwMjA5MDkzMDk0LCAwLjAyMTY2OTAwMDM4NzE5MTc3MiwgMC45OTk3MTk5NzczNzg4NDUyLCAwLjAyMjA0MTAwMDQyNTgxNTU4MiwgLTAuMDAxNjIzMDAwMDE4Mjk4NjI2LCAwLjk5OTc1NTk3ODU4NDI4OTYsCisgICAgICAgIDAuNDEwMTU0MDE0ODI1ODIwOSwgMC44NDkwODA5Nzk4MjQwNjYyLCAwLjMzMjkxNzk4ODMwMDMyMzUsIDAuOTk5NTk4MDI2Mjc1NjM0OCwgLTAuMDExNTU2MDAwNDQ4NzYzMzcsIDAuMDI1ODc4OTk5MzgyMjU3NDYsCisgICAgICAgIDAuNTQxNTIyMDI2MDYyMDExNywgMC42MzcwMDA5Nzc5OTMwMTE1LCAtMC41NDg2MTk5ODU1ODA0NDQzLCAwLjcwOTU4NjAyNDI4NDM2MjgsIC0wLjAwOTY3MDk5OTgzMjQ1MTM0NCwgLTAuNzA0NTUxOTk0ODAwNTY3NiwKKyAgICAgICAgLTAuMDExNzUwOTk5ODM4MTEzNzg1LCAtMC45NjkwMjQwMDI1NTIwMzI1LCAwLjI0NjY4Njk5NTAyOTQ0OTQ2LCAwLjA0NjMxMDAwMDEyMTU5MzQ3NSwgLTAuODg5MTcyMDE3NTc0MzEwMywgMC40NTUyMjQ5OTA4NDQ3MjY1NiwKKyAgICAgICAgLTAuMDEwNjg4MDAwMzU4NjQxMTQ4LCAtMC4xNDg4OTkwMDM4NjMzMzQ2NiwgMC45ODg3OTQ5ODI0MzMzMTkxLCAtMC4wNDQzNzQ5OTg2NTg4OTU0OSwgMC43MjkxMjAwMTYwOTgwMjI1LCAwLjY4Mjk0NjAyNjMyNTIyNTgsCisgICAgICAgIDAuMTIyODI0OTk2NzA5ODIzNjEsIDAuOTkyMzg1MDI5NzkyNzg1NiwgMC4wMDkyMzIwMDA0NDc4MDk2OTYsIDAuNDI3NTI3OTkzOTE3NDY1MiwgLTAuNzUzNTc1MDI2OTg4OTgzMiwgLTAuNDk5MzQzOTkxMjc5NjAyMDUsCisgICAgICAgIDAuNDgxODM5MDAxMTc4NzQxNDYsIC0wLjg1NzQ3OTk4OTUyODY1NiwgLTAuMTgwNDQzMDAzNzczNjg5MjcsIDAuNDU1MjcxOTg5MTA3MTMxOTYsIC0wLjQ5OTkyNDk4NzU1NDU1MDE3LCAwLjczNjc1MTAxOTk1NDY4MTQsCisgICAgICAgIC0wLjIyMDU0MTk5ODc0NDAxMDkzLCAwLjM1ODI3ODAwNjMxNTIzMTMsIDAuOTA3MTkzMDA1MDg0OTkxNSwgLTAuMjM1OTE4OTk4NzE4MjYxNzIsIDAuNzE1Nzk1OTkzODA0OTMxNiwgMC42NTcyNDk5ODcxMjUzOTY3LAorICAgICAgICAwLjUzNTkyNDAxNzQyOTM1MTgsIDAuMDEwNTAzOTk5ODg4ODk2OTQyLCAtMC44NDQyMDEwMjgzNDcwMTU0LCAwLjcyODA5MTAwMTUxMDYyMDEsIDAuMDE1NTg0OTk5Njk1NDIwMjY1LCAtMC42ODUzMDI5NzI3OTM1NzkxLAorICAgICAgICAwLjg4ODczODk4OTgzMDAxNzEsIDAuMDE2Njc5MDAwMTA5NDM0MTI4LCAwLjQ1ODEwODk5MTM4NDUwNjIsIC0wLjI2MDA5ODAxMDMwMTU4OTk3LCAtMC4wMDA3OTk5OTk5Nzk3OTAzMDAxLCAwLjk2NTU4MjAxMzEzMDE4OCwKKyAgICAgICAgLTAuMzcxNjEwOTk5MTA3MzYwODQsIDAuMDA0NDE2OTk5ODcyNzczODg2LCAwLjkyODM3Nzk4NTk1NDI4NDcsIDAuNTM1OTI0MDE3NDI5MzUxOCwgMC4wMTA1MDM5OTk4ODg4OTY5NDIsIC0wLjg0NDIwMTAyODM0NzAxNTQsCisgICAgICAgIDAuNDE4NTg4OTk1OTMzNTMyNywgMC43NTgxMTcwMjAxMzAxNTc1LCAtMC41MDAwNDIwMjEyNzQ1NjY3LCAwLjQ4MDE2NTAwNDczMDIyNDYsIDAuODU4ODUyOTgyNTIxMDU3MSwgLTAuMTc4MzYyOTk1Mzg2MTIzNjYsCisgICAgICAgIDAuNzI4MDkxMDAxNTEwNjIwMSwgMC4wMTU1ODQ5OTk2OTU0MjAyNjUsIC0wLjY4NTMwMjk3Mjc5MzU3OTEsIDAuNDg4MTAzMDAyMzA5Nzk5MiwgMC40OTc5NDcwMDc0MTc2Nzg4MywgMC43MTY4MDIwMDA5OTk0NTA3LAorICAgICAgICAwLjg4ODczODk4OTgzMDAxNzEsIDAuMDE2Njc5MDAwMTA5NDM0MTI4LCAwLjQ1ODEwODk5MTM4NDUwNjIsIC0wLjIyMjAwNDk5NDc1MDAyMjksIC0wLjM2MTg5NDAxMTQ5NzQ5NzU2LCAwLjkwNTM5OTAyNDQ4NjU0MTcsCisgICAgICAgIC0wLjI2MDA5ODAxMDMwMTU4OTk3LCAtMC4wMDA3OTk5OTk5Nzk3OTAzMDAxLCAwLjk2NTU4MjAxMzEzMDE4OCwgLTAuMjM1NDAzOTk5Njg2MjQxMTUsIC0wLjcxMDQ3Njk5NDUxNDQ2NTMsIDAuNjYzMTc5OTkzNjI5NDU1NiwKKyAgICAgICAgLTAuMzcxNjEwOTk5MTA3MzYwODQsIDAuMDA0NDE2OTk5ODcyNzczODg2LCAwLjkyODM3Nzk4NTk1NDI4NDcsIDAuMDAzMzgwOTk5OTAwNDAwNjM4NiwgMC45Nzc0NTUwMTk5NTA4NjY3LCAwLjIxMTExNTAwMjYzMjE0MTEsCisgICAgICAgIDAuMDU4NzE5MDAxNzEwNDE0ODg2LCAwLjg5NzE5OTk4ODM2NTE3MzMsIDAuNDM3NzAzMDEzNDIwMTA1LCAwLjAwMTMyNDk5OTk2MTA3MDcxNjQsIDAuMTY0MDAwMDA0NTI5OTUzLCAwLjk4NjQ1OTAxNjc5OTkyNjgsCisgICAgICAgIC0wLjA0NDE4ODk5ODYzOTU4MzU5LCAtMC43MzAzMTkwMjMxMzIzMjQyLCAwLjY4MTY3NTAxNjg4MDAzNTQsIDAuMTM4ODAyMDA2ODQwNzA1ODcsIC0wLjk4OTczMDAwMDQ5NTkxMDYsIC0wLjAzNDE4OTAwMDcyNTc0NjE1NSwKKyAgICAgICAgLTAuNDI0MzA0OTkxOTYwNTI1NSwgMC42NjY3NTAwMTM4MjgyNzc2LCAwLjYxMjcwNzAxODg1MjIzMzksIC0wLjI1ODg4ODk4OTY4Njk2NTk0LCAwLjU0NTM3ODk4MzAyMDc4MjUsIDAuNzk3MjA1OTg0NTkyNDM3NywKKyAgICAgICAgMC4wMTIyNjgwMDAyODIzNDcyMDIsIC0wLjAxOTI4NTAwMDg2MDY5MTA3LCAwLjk5OTczODk5MTI2MDUyODYsIDAuMzk4NjI5OTkzMjAwMzAyMSwgLTAuODQ1NjYzMDExMDc0MDY2MiwgMC4zNTQ4OTI5OTg5MzM3OTIxLAorICAgICAgICAwLjUzNzU2Mzk3OTYyNTcwMTksIC0wLjYxMDczNzAyNTczNzc2MjUsIC0wLjU4MTM5OTAyMzUzMjg2NzQsIC0wLjY5NjE4ODk4NjMwMTQyMjEsIC0wLjAyNDQ5NjAwMDI2MDExNDY3LCAwLjcxNzQ0MDAwOTExNzEyNjUsCisgICAgICAgIC0wLjQyNTc5OTAxMjE4NDE0MzA3LCAtMC4wMTA4MDQ5OTk2MTk3MjIzNjYsIDAuOTA0NzUzMDI5MzQ2NDY2MSwgMC4wMjIwNDEwMDA0MjU4MTU1ODIsIC0wLjAwMTYyMzAwMDAxODI5ODYyNiwgMC45OTk3NTU5Nzg1ODQyODk2LAorICAgICAgICAwLjk5OTU5ODAyNjI3NTYzNDgsIC0wLjAxMTU1NjAwMDQ0ODc2MzM3LCAwLjAyNTg3ODk5OTM4MjI1NzQ2LCAwLjcwOTU4NjAyNDI4NDM2MjgsIC0wLjAwOTY3MDk5OTgzMjQ1MTM0NCwgLTAuNzA0NTUxOTk0ODAwNTY3NiwKKyAgICAgICAgMCwgMCwgMSwgMCwgMCwgMSwKKyAgICAgICAgMC43NjI2NDEwMTI2Njg2MDk2LCAtMC4zMTQ4MjQ5OTgzNzg3NTM2NiwgMC41NjUwMzM5NzIyNjMzMzYyLCAwLjgyNDU0MDAxOTAzNTMzOTQsIC0wLjAwMDAxNzAwMDAwMDI5ODEzOTY0LCAwLjU2NTgwMjk5MTM5MDIyODMsCisgICAgICAgIDAuODQ3OTgxOTg5MzgzNjk3NSwgLTAuMzUwMDMzOTk4NDg5Mzc5OSwgLTAuMzk3OTk4MDA1MTUxNzQ4NjYsIDAuOTE3NzAxMDA1OTM1NjY5LCAtMC4wMDAwMzMwMDAwMDAyNTc3NDM1MiwgLTAuMzk3MjcxOTkwNzc2MDYyLAorICAgICAgICAwLjg2NDE0MDk4NzM5NjI0MDIsIC0wLjM1NjQ0MjAwNDQ0MjIxNDk3LCAtMC4zNTUyNjAwMTQ1MzM5OTY2LCAwLjkzNTI2ODk5ODE0NjA1NzEsIC0wLjAwMDExMjAwMDAwMTUzNjIxNjU5LCAtMC4zNTM5Mzg5OTY3OTE4Mzk2LAorICAgICAgICAwLjcyMDk5MjAyODcxMzIyNjMsIC0wLjI5NzkzMzAxMjI0NzA4NTU3LCAwLjYyNTYyNTAxNDMwNTExNDcsIDAuNzgwNzEyMDA4NDc2MjU3MywgLTAuMDAwMDc1MDAwMDAzNTYyMzA4ODUsIDAuNjI0ODkwOTgzMTA0NzA1OCwKKyAgICAgICAgMCwgMCwgMSwgMC41ODMzNTY5NzY1MDkwOTQyLCAtMC41ODMzMzgwMjIyMzIwNTU3LCAwLjU2NTE2NDk4MzI3MjU1MjUsCisgICAgICAgIDAuNjQ4NDg1MDA0OTAxODg2LCAtMC42NDg0NDc5OTA0MTc0ODA1LCAtMC4zOTg3MjU5ODY0ODA3MTI5LCAwLjY2MDg3MTk4MjU3NDQ2MjksIC0wLjY2MDc0ODAwNDkxMzMzMDEsIC0wLjM1NTg5Mzk5OTMzODE1LAorICAgICAgICAwLjU1MTg2MzAxNDY5ODAyODYsIC0wLjU1MTc3OTk4NTQyNzg1NjQsIDAuNjI1Mjg4MDA5NjQzNTU0NywgMCwgMCwgMSwKKyAgICAgICAgMC4zMTQ4MjQ5OTgzNzg3NTM2NiwgLTAuNzYyNjI4OTcyNTMwMzY1LCAwLjU2NTA1MTAxOTE5MTc0MTksIDAuMzUwMDQ0OTk1NTQ2MzQwOTQsIC0wLjg0Nzk4ODAwOTQ1MjgxOTgsIC0wLjM5Nzk3NjAxMTAzNzgyNjU0LAorICAgICAgICAwLjM1NjQ3NDAxMjEzNjQ1OTM1LCAtMC44NjQxNTIwMTQyNTU1MjM3LCAtMC4zNTUxOTkwMDkxODAwNjg5NywgMC4yOTc5ODIwMDcyNjUwOTA5NCwgLTAuNzIxMDY3MDExMzU2MzUzOCwgMC42MjU1MTQ5ODQxMzA4NTk0LAorICAgICAgICAwLCAwLCAxLCAtMC4wMDAwMTcwMDAwMDAyOTgxMzk2NCwgLTAuODI0NTQwMDE5MDM1MzM5NCwgMC41NjU4MDI5OTEzOTAyMjgzLAorICAgICAgICAtMC4wMDAwMzMwMDAwMDAyNTc3NDM1MiwgLTAuOTE3NzAxMDA1OTM1NjY5LCAtMC4zOTcyNzE5OTA3NzYwNjIsIC0wLjAwMDExMjAwMDAwMTUzNjIxNjU5LCAtMC45MzUyNjg5OTgxNDYwNTcxLCAtMC4zNTM5Mzg5OTY3OTE4Mzk2LAorICAgICAgICAtMC4wMDAwNzUwMDAwMDM1NjIzMDg4NSwgLTAuNzgwNzEyMDA4NDc2MjU3MywgMC42MjQ4OTAwMjk0MzAzODk0LCAwLCAwLCAxLAorICAgICAgICAwLCAwLCAxLCAtMC4zMTQ4MjQ5OTgzNzg3NTM2NiwgLTAuNzYyNjQxMDEyNjY4NjA5NiwgMC41NjUwMzM5NzIyNjMzMzYyLAorICAgICAgICAtMC4wMDAwMTcwMDAwMDAyOTgxMzk2NCwgLTAuODI0NTQwMDE5MDM1MzM5NCwgMC41NjU4MDI5OTEzOTAyMjgzLCAtMC4zNTAwMzM5OTg0ODkzNzk5LCAtMC44NDc5ODE5ODkzODM2OTc1LCAtMC4zOTc5OTgwMDUxNTE3NDg2NiwKKyAgICAgICAgLTAuMDAwMDMzMDAwMDAwMjU3NzQzNTIsIC0wLjkxNzcwMTAwNTkzNTY2OSwgLTAuMzk3MjcxOTkwNzc2MDYyLCAtMC4zNTY0NDIwMDQ0NDIyMTQ5NywgLTAuODY0MTQwOTg3Mzk2MjQwMiwgLTAuMzU1MjYwMDE0NTMzOTk2NiwKKyAgICAgICAgLTAuMDAwMTEyMDAwMDAxNTM2MjE2NTksIC0wLjkzNTI2ODk5ODE0NjA1NzEsIC0wLjM1MzkzODk5Njc5MTgzOTYsIC0wLjI5NzkzMzAxMjI0NzA4NTU3LCAtMC43MjA5OTIwMjg3MTMyMjYzLCAwLjYyNTYyNTAxNDMwNTExNDcsCisgICAgICAgIC0wLjAwMDA3NTAwMDAwMzU2MjMwODg1LCAtMC43ODA3MTIwMDg0NzYyNTczLCAwLjYyNDg5MDAyOTQzMDM4OTQsIDAsIDAsIDEsCisgICAgICAgIC0wLjU4MzMzODAyMjIzMjA1NTcsIC0wLjU4MzM1Njk3NjUwOTA5NDIsIDAuNTY1MTY0OTgzMjcyNTUyNSwgLTAuNjQ4NDQ3OTkwNDE3NDgwNSwgLTAuNjQ4NDg1MDA0OTAxODg2LCAtMC4zOTg3MjU5ODY0ODA3MTI5LAorICAgICAgICAtMC42NjA3NDgwMDQ5MTMzMzAxLCAtMC42NjA4NzE5ODI1NzQ0NjI5LCAtMC4zNTU4OTM5OTkzMzgxNSwgLTAuNTUxNzc5OTg1NDI3ODU2NCwgLTAuNTUxODYzMDE0Njk4MDI4NiwgMC42MjUyODgwMDk2NDM1NTQ3LAorICAgICAgICAwLCAwLCAxLCAtMC43NjI2Mjg5NzI1MzAzNjUsIC0wLjMxNDgyNDk5ODM3ODc1MzY2LCAwLjU2NTA1MTAxOTE5MTc0MTksCisgICAgICAgIC0wLjg0Nzk4ODAwOTQ1MjgxOTgsIC0wLjM1MDA0NDk5NTU0NjM0MDk0LCAtMC4zOTc5NzYwMTEwMzc4MjY1NCwgLTAuODY0MTUyMDE0MjU1NTIzNywgLTAuMzU2NDc0MDEyMTM2NDU5MzUsIC0wLjM1NTE5OTAwOTE4MDA2ODk3LAorICAgICAgICAtMC43MjEwNjcwMTEzNTYzNTM4LCAtMC4yOTc5ODIwMDcyNjUwOTA5NCwgMC42MjU1MTQ5ODQxMzA4NTk0LCAwLCAwLCAxLAorICAgICAgICAtMC44MjQ1NDAwMTkwMzUzMzk0LCAwLjAwMDAxNzAwMDAwMDI5ODEzOTY0LCAwLjU2NTgwMjk5MTM5MDIyODMsIC0wLjkxNzcwMTAwNTkzNTY2OSwgMC4wMDAwMzMwMDAwMDAyNTc3NDM1MiwgLTAuMzk3MjcxOTkwNzc2MDYyLAorICAgICAgICAtMC45MzUyNjg5OTgxNDYwNTcxLCAwLjAwMDExMjAwMDAwMTUzNjIxNjU5LCAtMC4zNTM5Mzg5OTY3OTE4Mzk2LCAtMC43ODA3MTIwMDg0NzYyNTczLCAwLjAwMDA3NTAwMDAwMzU2MjMwODg1LCAwLjYyNDg5MDAyOTQzMDM4OTQsCisgICAgICAgIDAsIDAsIDEsIDAsIDAsIDEsCisgICAgICAgIC0wLjc2MjY0MTAxMjY2ODYwOTYsIDAuMzE0ODI0OTk4Mzc4NzUzNjYsIDAuNTY1MDMzOTcyMjYzMzM2MiwgLTAuODI0NTQwMDE5MDM1MzM5NCwgMC4wMDAwMTcwMDAwMDAyOTgxMzk2NCwgMC41NjU4MDI5OTEzOTAyMjgzLAorICAgICAgICAtMC44NDc5ODE5ODkzODM2OTc1LCAwLjM1MDAzMzk5ODQ4OTM3OTksIC0wLjM5Nzk5ODAwNTE1MTc0ODY2LCAtMC45MTc3MDEwMDU5MzU2NjksIDAuMDAwMDMzMDAwMDAwMjU3NzQzNTIsIC0wLjM5NzI3MTk5MDc3NjA2MiwKKyAgICAgICAgLTAuODY0MTQwOTg3Mzk2MjQwMiwgMC4zNTY0NDIwMDQ0NDIyMTQ5NywgLTAuMzU1MjYwMDE0NTMzOTk2NiwgLTAuOTM1MjY4OTk4MTQ2MDU3MSwgMC4wMDAxMTIwMDAwMDE1MzYyMTY1OSwgLTAuMzUzOTM4OTk2NzkxODM5NiwKKyAgICAgICAgLTAuNzIwOTkyMDI4NzEzMjI2MywgMC4yOTc5MzMwMTIyNDcwODU1NywgMC42MjU2MjUwMTQzMDUxMTQ3LCAtMC43ODA3MTIwMDg0NzYyNTczLCAwLjAwMDA3NTAwMDAwMzU2MjMwODg1LCAwLjYyNDg5MDAyOTQzMDM4OTQsCisgICAgICAgIDAsIDAsIDEsIC0wLjU4MzM1Njk3NjUwOTA5NDIsIDAuNTgzMzM4MDIyMjMyMDU1NywgMC41NjUxNjQ5ODMyNzI1NTI1LAorICAgICAgICAtMC42NDg0ODUwMDQ5MDE4ODYsIDAuNjQ4NDQ3OTkwNDE3NDgwNSwgLTAuMzk4NzI1OTg2NDgwNzEyOSwgLTAuNjYwODcxOTgyNTc0NDYyOSwgMC42NjA3NDgwMDQ5MTMzMzAxLCAtMC4zNTU4OTM5OTkzMzgxNSwKKyAgICAgICAgLTAuNTUxODYzMDE0Njk4MDI4NiwgMC41NTE3Nzk5ODU0Mjc4NTY0LCAwLjYyNTI4ODAwOTY0MzU1NDcsIDAsIDAsIDEsCisgICAgICAgIC0wLjMxNDgyNDk5ODM3ODc1MzY2LCAwLjc2MjYyODk3MjUzMDM2NSwgMC41NjUwNTEwMTkxOTE3NDE5LCAtMC4zNTAwNDQ5OTU1NDYzNDA5NCwgMC44NDc5ODgwMDk0NTI4MTk4LCAtMC4zOTc5NzYwMTEwMzc4MjY1NCwKKyAgICAgICAgLTAuMzU2NDc0MDEyMTM2NDU5MzUsIDAuODY0MTUyMDE0MjU1NTIzNywgLTAuMzU1MTk5MDA5MTgwMDY4OTcsIC0wLjI5Nzk4MjAwNzI2NTA5MDk0LCAwLjcyMTA2NzAxMTM1NjM1MzgsIDAuNjI1NTE0OTg0MTMwODU5NCwKKyAgICAgICAgMCwgMCwgMSwgMC4wMDAwMTcwMDAwMDAyOTgxMzk2NCwgMC44MjQ1NDAwMTkwMzUzMzk0LCAwLjU2NTgwMjk5MTM5MDIyODMsCisgICAgICAgIDAuMDAwMDMzMDAwMDAwMjU3NzQzNTIsIDAuOTE3NzAxMDA1OTM1NjY5LCAtMC4zOTcyNzE5OTA3NzYwNjIsIDAuMDAwMTEyMDAwMDAxNTM2MjE2NTksIDAuOTM1MjY4OTk4MTQ2MDU3MSwgLTAuMzUzOTM4OTk2NzkxODM5NiwKKyAgICAgICAgMC4wMDAwNzUwMDAwMDM1NjIzMDg4NSwgMC43ODA3MTIwMDg0NzYyNTczLCAwLjYyNDg5MDAyOTQzMDM4OTQsIDAsIDAsIDEsCisgICAgICAgIDAsIDAsIDEsIDAuMzE0ODI0OTk4Mzc4NzUzNjYsIDAuNzYyNjQxMDEyNjY4NjA5NiwgMC41NjUwMzM5NzIyNjMzMzYyLAorICAgICAgICAwLjAwMDAxNzAwMDAwMDI5ODEzOTY0LCAwLjgyNDU0MDAxOTAzNTMzOTQsIDAuNTY1ODAyOTkxMzkwMjI4MywgMC4zNTAwMzM5OTg0ODkzNzk5LCAwLjg0Nzk4MTk4OTM4MzY5NzUsIC0wLjM5Nzk5ODAwNTE1MTc0ODY2LAorICAgICAgICAwLjAwMDAzMzAwMDAwMDI1Nzc0MzUyLCAwLjkxNzcwMTAwNTkzNTY2OSwgLTAuMzk3MjcxOTkwNzc2MDYyLCAwLjM1NjQ0MjAwNDQ0MjIxNDk3LCAwLjg2NDE0MDk4NzM5NjI0MDIsIC0wLjM1NTI2MDAxNDUzMzk5NjYsCisgICAgICAgIDAuMDAwMTEyMDAwMDAxNTM2MjE2NTksIDAuOTM1MjY4OTk4MTQ2MDU3MSwgLTAuMzUzOTM4OTk2NzkxODM5NiwgMC4yOTc5MzMwMTIyNDcwODU1NywgMC43MjA5OTIwMjg3MTMyMjYzLCAwLjYyNTYyNTAxNDMwNTExNDcsCisgICAgICAgIDAuMDAwMDc1MDAwMDAzNTYyMzA4ODUsIDAuNzgwNzEyMDA4NDc2MjU3MywgMC42MjQ4OTAwMjk0MzAzODk0LCAwLCAwLCAxLAorICAgICAgICAwLjU4MzMzODAyMjIzMjA1NTcsIDAuNTgzMzU2OTc2NTA5MDk0MiwgMC41NjUxNjQ5ODMyNzI1NTI1LCAwLjY0ODQ0Nzk5MDQxNzQ4MDUsIDAuNjQ4NDg1MDA0OTAxODg2LCAtMC4zOTg3MjU5ODY0ODA3MTI5LAorICAgICAgICAwLjY2MDc0ODAwNDkxMzMzMDEsIDAuNjYwODcxOTgyNTc0NDYyOSwgLTAuMzU1ODkzOTk5MzM4MTUsIDAuNTUxNzc5OTg1NDI3ODU2NCwgMC41NTE4NjMwMTQ2OTgwMjg2LCAwLjYyNTI4ODAwOTY0MzU1NDcsCisgICAgICAgIDAsIDAsIDEsIDAuNzYyNjI4OTcyNTMwMzY1LCAwLjMxNDgyNDk5ODM3ODc1MzY2LCAwLjU2NTA1MTAxOTE5MTc0MTksCisgICAgICAgIDAuODQ3OTg4MDA5NDUyODE5OCwgMC4zNTAwNDQ5OTU1NDYzNDA5NCwgLTAuMzk3OTc2MDExMDM3ODI2NTQsIDAuODY0MTUyMDE0MjU1NTIzNywgMC4zNTY0NzQwMTIxMzY0NTkzNSwgLTAuMzU1MTk5MDA5MTgwMDY4OTcsCisgICAgICAgIDAuNzIxMDY3MDExMzU2MzUzOCwgMC4yOTc5ODIwMDcyNjUwOTA5NCwgMC42MjU1MTQ5ODQxMzA4NTk0LCAwLCAwLCAxLAorICAgICAgICAwLjgyNDU0MDAxOTAzNTMzOTQsIC0wLjAwMDAxNzAwMDAwMDI5ODEzOTY0LCAwLjU2NTgwMjk5MTM5MDIyODMsIDAuOTE3NzAxMDA1OTM1NjY5LCAtMC4wMDAwMzMwMDAwMDAyNTc3NDM1MiwgLTAuMzk3MjcxOTkwNzc2MDYyLAorICAgICAgICAwLjkzNTI2ODk5ODE0NjA1NzEsIC0wLjAwMDExMjAwMDAwMTUzNjIxNjU5LCAtMC4zNTM5Mzg5OTY3OTE4Mzk2LCAwLjc4MDcxMjAwODQ3NjI1NzMsIC0wLjAwMDA3NTAwMDAwMzU2MjMwODg1LCAwLjYyNDg5MDk4MzEwNDcwNTgsCisgICAgICAgIDAuNzgwNzEyMDA4NDc2MjU3MywgLTAuMDAwMDc1MDAwMDAzNTYyMzA4ODUsIDAuNjI0ODkwOTgzMTA0NzA1OCwgMC43MjA5OTIwMjg3MTMyMjYzLCAtMC4yOTc5MzMwMTIyNDcwODU1NywgMC42MjU2MjUwMTQzMDUxMTQ3LAorICAgICAgICAwLjIxNzk3ODAwMDY0MDg2OTE0LCAtMC4wOTAyMTYwMDMzNTgzNjQxLCAwLjk3MTc3NDk5NTMyNjk5NTgsIDAuMjM2NTgyOTk0NDYxMDU5NTcsIDAsIDAuOTcxNjExMDIyOTQ5MjE4OCwKKyAgICAgICAgMC4xNTk1ODg5OTI1OTU2NzI2LCAtMC4wNjU5NjEwMDMzMDM1Mjc4MywgMC45ODQ5NzcwMDY5MTIyMzE0LCAwLjE3MzA4NDAwNTcxMzQ2MjgzLCAwLCAwLjk4NDkwNjk3MTQ1NDYyMDQsCisgICAgICAgIDAuMzUwNDk3OTkwODQ2NjMzOSwgLTAuMTQ0NzQwMDAwMzY3MTY0NiwgMC45MjUzMTE5ODI2MzE2ODMzLCAwLjM3OTcwMjk4NTI4NjcxMjY1LCAwLCAwLjkyNTEwODAxNTUzNzI2MiwKKyAgICAgICAgMC40ODU1ODg5OTc2MDI0NjI3NywgLTAuMjAxNDczOTk2MDQzMjA1MjYsIDAuODUwNjUyOTkyNzI1MzcyMywgMC41MjY2NzIwMDU2NTMzODEzLCAwLCAwLjg1MDA2Nzk3MzEzNjkwMTksCisgICAgICAgIDAuNTUxODYzMDE0Njk4MDI4NiwgLTAuNTUxNzc5OTg1NDI3ODU2NCwgMC42MjUyODgwMDk2NDM1NTQ3LCAwLjE2NjYzMDk5ODI1MzgyMjMzLCAtMC4xNjY2MzA5OTgyNTM4MjIzMywgMC45NzE4Mzc5OTc0MzY1MjM0LAorICAgICAgICAwLjEyMTkwODAwMTYwMTY5NjAxLCAtMC4xMjE5MDgwMDE2MDE2OTYwMSwgMC45ODUwMjYwMDE5MzAyMzY4LCAwLjI2NzY2ODAwODgwNDMyMTMsIC0wLjI2NzY2ODAwODgwNDMyMTMsIDAuOTI1NTg0OTcxOTA0NzU0NiwKKyAgICAgICAgMC4zNzEzMTUwMDI0NDE0MDYyNSwgLTAuMzcxMzE1MDAyNDQxNDA2MjUsIDAuODUxMDI4OTc4ODI0NjE1NSwgMC4yOTc5ODIwMDcyNjUwOTA5NCwgLTAuNzIxMDY3MDExMzU2MzUzOCwgMC42MjU1MTQ5ODQxMzA4NTk0LAorICAgICAgICAwLjA5MDIxNjAwMzM1ODM2NDEsIC0wLjIxNzk3ODAwMDY0MDg2OTE0LCAwLjk3MTc3NDk5NTMyNjk5NTgsIDAuMDY1OTYxMDAzMzAzNTI3ODMsIC0wLjE1OTU4ODk5MjU5NTY3MjYsIDAuOTg0OTc3MDA2OTEyMjMxNCwKKyAgICAgICAgMC4xNDQ3NDAwMDAzNjcxNjQ2LCAtMC4zNTA0OTc5OTA4NDY2MzM5LCAwLjkyNTMxMTk4MjYzMTY4MzMsIDAuMjAxNDczOTk2MDQzMjA1MjYsIC0wLjQ4NTU4ODk5NzYwMjQ2Mjc3LCAwLjg1MDY1Mjk5MjcyNTM3MjMsCisgICAgICAgIC0wLjAwMDA3NTAwMDAwMzU2MjMwODg1LCAtMC43ODA3MTIwMDg0NzYyNTczLCAwLjYyNDg5MDAyOTQzMDM4OTQsIDAsIC0wLjIzNjU4Mjk5NDQ2MTA1OTU3LCAwLjk3MTYxMTAyMjk0OTIxODgsCisgICAgICAgIDAsIC0wLjE3MzA4NDAwNTcxMzQ2MjgzLCAwLjk4NDkwNjk3MTQ1NDYyMDQsIDAsIC0wLjM3OTcwMjk4NTI4NjcxMjY1LCAwLjkyNTEwODAxNTUzNzI2MiwKKyAgICAgICAgMCwgLTAuNTI2NjcyMDA1NjUzMzgxMywgMC44NTAwNjc5NzMxMzY5MDE5LCAtMC4wMDAwNzUwMDAwMDM1NjIzMDg4NSwgLTAuNzgwNzEyMDA4NDc2MjU3MywgMC42MjQ4OTAwMjk0MzAzODk0LAorICAgICAgICAtMC4yOTc5MzMwMTIyNDcwODU1NywgLTAuNzIwOTkyMDI4NzEzMjI2MywgMC42MjU2MjUwMTQzMDUxMTQ3LCAtMC4wOTAyMTYwMDMzNTgzNjQxLCAtMC4yMTc5NzgwMDA2NDA4NjkxNCwgMC45NzE3NzQ5OTUzMjY5OTU4LAorICAgICAgICAwLCAtMC4yMzY1ODI5OTQ0NjEwNTk1NywgMC45NzE2MTEwMjI5NDkyMTg4LCAtMC4wNjU5NjEwMDMzMDM1Mjc4MywgLTAuMTU5NTg4OTkyNTk1NjcyNiwgMC45ODQ5NzcwMDY5MTIyMzE0LAorICAgICAgICAwLCAtMC4xNzMwODQwMDU3MTM0NjI4MywgMC45ODQ5MDY5NzE0NTQ2MjA0LCAtMC4xNDQ3NDAwMDAzNjcxNjQ2LCAtMC4zNTA0OTc5OTA4NDY2MzM5LCAwLjkyNTMxMTk4MjYzMTY4MzMsCisgICAgICAgIDAsIC0wLjM3OTcwMjk4NTI4NjcxMjY1LCAwLjkyNTEwODAxNTUzNzI2MiwgLTAuMjAxNDczOTk2MDQzMjA1MjYsIC0wLjQ4NTU4ODk5NzYwMjQ2Mjc3LCAwLjg1MDY1Mjk5MjcyNTM3MjMsCisgICAgICAgIDAsIC0wLjUyNjY3MjAwNTY1MzM4MTMsIDAuODUwMDY3OTczMTM2OTAxOSwgLTAuNTUxNzc5OTg1NDI3ODU2NCwgLTAuNTUxODYzMDE0Njk4MDI4NiwgMC42MjUyODgwMDk2NDM1NTQ3LAorICAgICAgICAtMC4xNjY2MzA5OTgyNTM4MjIzMywgLTAuMTY2NjMwOTk4MjUzODIyMzMsIDAuOTcxODM3OTk3NDM2NTIzNCwgLTAuMTIxOTA4MDAxNjAxNjk2MDEsIC0wLjEyMTkwODAwMTYwMTY5NjAxLCAwLjk4NTAyNjAwMTkzMDIzNjgsCisgICAgICAgIC0wLjI2NzY2ODAwODgwNDMyMTMsIC0wLjI2NzY2ODAwODgwNDMyMTMsIDAuOTI1NTg0OTcxOTA0NzU0NiwgLTAuMzcxMzE1MDAyNDQxNDA2MjUsIC0wLjM3MTMxNTAwMjQ0MTQwNjI1LCAwLjg1MTAyODk3ODgyNDYxNTUsCisgICAgICAgIC0wLjcyMTA2NzAxMTM1NjM1MzgsIC0wLjI5Nzk4MjAwNzI2NTA5MDk0LCAwLjYyNTUxNDk4NDEzMDg1OTQsIC0wLjIxNzk3ODAwMDY0MDg2OTE0LCAtMC4wOTAyMTYwMDMzNTgzNjQxLCAwLjk3MTc3NDk5NTMyNjk5NTgsCisgICAgICAgIC0wLjE1OTU4ODk5MjU5NTY3MjYsIC0wLjA2NTk2MTAwMzMwMzUyNzgzLCAwLjk4NDk3NzAwNjkxMjIzMTQsIC0wLjM1MDQ5Nzk5MDg0NjYzMzksIC0wLjE0NDc0MDAwMDM2NzE2NDYsIDAuOTI1MzExOTgyNjMxNjgzMywKKyAgICAgICAgLTAuNDg1NTg4OTk3NjAyNDYyNzcsIC0wLjIwMTQ3Mzk5NjA0MzIwNTI2LCAwLjg1MDY1Mjk5MjcyNTM3MjMsIC0wLjc4MDcxMjAwODQ3NjI1NzMsIDAuMDAwMDc1MDAwMDAzNTYyMzA4ODUsIDAuNjI0ODkwMDI5NDMwMzg5NCwKKyAgICAgICAgLTAuMjM2NTgyOTk0NDYxMDU5NTcsIDAsIDAuOTcxNjExMDIyOTQ5MjE4OCwgLTAuMTczMDg0MDA1NzEzNDYyODMsIDAsIDAuOTg0OTA2OTcxNDU0NjIwNCwKKyAgICAgICAgLTAuMzc5NzAyOTg1Mjg2NzEyNjUsIDAsIDAuOTI1MTA4MDE1NTM3MjYyLCAtMC41MjY2NzIwMDU2NTMzODEzLCAwLCAwLjg1MDA2Nzk3MzEzNjkwMTksCisgICAgICAgIC0wLjc4MDcxMjAwODQ3NjI1NzMsIDAuMDAwMDc1MDAwMDAzNTYyMzA4ODUsIDAuNjI0ODkwMDI5NDMwMzg5NCwgLTAuNzIwOTkyMDI4NzEzMjI2MywgMC4yOTc5MzMwMTIyNDcwODU1NywgMC42MjU2MjUwMTQzMDUxMTQ3LAorICAgICAgICAtMC4yMTc5NzgwMDA2NDA4NjkxNCwgMC4wOTAyMTYwMDMzNTgzNjQxLCAwLjk3MTc3NDk5NTMyNjk5NTgsIC0wLjIzNjU4Mjk5NDQ2MTA1OTU3LCAwLCAwLjk3MTYxMTAyMjk0OTIxODgsCisgICAgICAgIC0wLjE1OTU4ODk5MjU5NTY3MjYsIDAuMDY1OTYxMDAzMzAzNTI3ODMsIDAuOTg0OTc3MDA2OTEyMjMxNCwgLTAuMTczMDg0MDA1NzEzNDYyODMsIDAsIDAuOTg0OTA2OTcxNDU0NjIwNCwKKyAgICAgICAgLTAuMzUwNDk3OTkwODQ2NjMzOSwgMC4xNDQ3NDAwMDAzNjcxNjQ2LCAwLjkyNTMxMTk4MjYzMTY4MzMsIC0wLjM3OTcwMjk4NTI4NjcxMjY1LCAwLCAwLjkyNTEwODAxNTUzNzI2MiwKKyAgICAgICAgLTAuNDg1NTg4OTk3NjAyNDYyNzcsIDAuMjAxNDczOTk2MDQzMjA1MjYsIDAuODUwNjUyOTkyNzI1MzcyMywgLTAuNTI2NjcyMDA1NjUzMzgxMywgMCwgMC44NTAwNjc5NzMxMzY5MDE5LAorICAgICAgICAtMC41NTE4NjMwMTQ2OTgwMjg2LCAwLjU1MTc3OTk4NTQyNzg1NjQsIDAuNjI1Mjg4MDA5NjQzNTU0NywgLTAuMTY2NjMwOTk4MjUzODIyMzMsIDAuMTY2NjMwOTk4MjUzODIyMzMsIDAuOTcxODM3OTk3NDM2NTIzNCwKKyAgICAgICAgLTAuMTIxOTA4MDAxNjAxNjk2MDEsIDAuMTIxOTA4MDAxNjAxNjk2MDEsIDAuOTg1MDI2MDAxOTMwMjM2OCwgLTAuMjY3NjY4MDA4ODA0MzIxMywgMC4yNjc2NjgwMDg4MDQzMjEzLCAwLjkyNTU4NDk3MTkwNDc1NDYsCisgICAgICAgIC0wLjM3MTMxNTAwMjQ0MTQwNjI1LCAwLjM3MTMxNTAwMjQ0MTQwNjI1LCAwLjg1MTAyODk3ODgyNDYxNTUsIC0wLjI5Nzk4MjAwNzI2NTA5MDk0LCAwLjcyMTA2NzAxMTM1NjM1MzgsIDAuNjI1NTE0OTg0MTMwODU5NCwKKyAgICAgICAgLTAuMDkwMjE2MDAzMzU4MzY0MSwgMC4yMTc5NzgwMDA2NDA4NjkxNCwgMC45NzE3NzQ5OTUzMjY5OTU4LCAtMC4wNjU5NjEwMDMzMDM1Mjc4MywgMC4xNTk1ODg5OTI1OTU2NzI2LCAwLjk4NDk3NzAwNjkxMjIzMTQsCisgICAgICAgIC0wLjE0NDc0MDAwMDM2NzE2NDYsIDAuMzUwNDk3OTkwODQ2NjMzOSwgMC45MjUzMTE5ODI2MzE2ODMzLCAtMC4yMDE0NzM5OTYwNDMyMDUyNiwgMC40ODU1ODg5OTc2MDI0NjI3NywgMC44NTA2NTI5OTI3MjUzNzIzLAorICAgICAgICAwLjAwMDA3NTAwMDAwMzU2MjMwODg1LCAwLjc4MDcxMjAwODQ3NjI1NzMsIDAuNjI0ODkwMDI5NDMwMzg5NCwgMCwgMC4yMzY1ODI5OTQ0NjEwNTk1NywgMC45NzE2MTEwMjI5NDkyMTg4LAorICAgICAgICAwLCAwLjE3MzA4NDAwNTcxMzQ2MjgzLCAwLjk4NDkwNjk3MTQ1NDYyMDQsIDAsIDAuMzc5NzAyOTg1Mjg2NzEyNjUsIDAuOTI1MTA4MDE1NTM3MjYyLAorICAgICAgICAwLCAwLjUyNjY3MjAwNTY1MzM4MTMsIDAuODUwMDY3OTczMTM2OTAxOSwgMC4wMDAwNzUwMDAwMDM1NjIzMDg4NSwgMC43ODA3MTIwMDg0NzYyNTczLCAwLjYyNDg5MDAyOTQzMDM4OTQsCisgICAgICAgIDAuMjk3OTMzMDEyMjQ3MDg1NTcsIDAuNzIwOTkyMDI4NzEzMjI2MywgMC42MjU2MjUwMTQzMDUxMTQ3LCAwLjA5MDIxNjAwMzM1ODM2NDEsIDAuMjE3OTc4MDAwNjQwODY5MTQsIDAuOTcxNzc0OTk1MzI2OTk1OCwKKyAgICAgICAgMCwgMC4yMzY1ODI5OTQ0NjEwNTk1NywgMC45NzE2MTEwMjI5NDkyMTg4LCAwLjA2NTk2MTAwMzMwMzUyNzgzLCAwLjE1OTU4ODk5MjU5NTY3MjYsIDAuOTg0OTc3MDA2OTEyMjMxNCwKKyAgICAgICAgMCwgMC4xNzMwODQwMDU3MTM0NjI4MywgMC45ODQ5MDY5NzE0NTQ2MjA0LCAwLjE0NDc0MDAwMDM2NzE2NDYsIDAuMzUwNDk3OTkwODQ2NjMzOSwgMC45MjUzMTE5ODI2MzE2ODMzLAorICAgICAgICAwLCAwLjM3OTcwMjk4NTI4NjcxMjY1LCAwLjkyNTEwODAxNTUzNzI2MiwgMC4yMDE0NzM5OTYwNDMyMDUyNiwgMC40ODU1ODg5OTc2MDI0NjI3NywgMC44NTA2NTI5OTI3MjUzNzIzLAorICAgICAgICAwLCAwLjUyNjY3MjAwNTY1MzM4MTMsIDAuODUwMDY3OTczMTM2OTAxOSwgMC41NTE3Nzk5ODU0Mjc4NTY0LCAwLjU1MTg2MzAxNDY5ODAyODYsIDAuNjI1Mjg4MDA5NjQzNTU0NywKKyAgICAgICAgMC4xNjY2MzA5OTgyNTM4MjIzMywgMC4xNjY2MzA5OTgyNTM4MjIzMywgMC45NzE4Mzc5OTc0MzY1MjM0LCAwLjEyMTkwODAwMTYwMTY5NjAxLCAwLjEyMTkwODAwMTYwMTY5NjAxLCAwLjk4NTAyNjAwMTkzMDIzNjgsCisgICAgICAgIDAuMjY3NjY4MDA4ODA0MzIxMywgMC4yNjc2NjgwMDg4MDQzMjEzLCAwLjkyNTU4NDk3MTkwNDc1NDYsIDAuMzcxMzE1MDAyNDQxNDA2MjUsIDAuMzcxMzE1MDAyNDQxNDA2MjUsIDAuODUxMDI4OTc4ODI0NjE1NSwKKyAgICAgICAgMC43MjEwNjcwMTEzNTYzNTM4LCAwLjI5Nzk4MjAwNzI2NTA5MDk0LCAwLjYyNTUxNDk4NDEzMDg1OTQsIDAuMjE3OTc4MDAwNjQwODY5MTQsIDAuMDkwMjE2MDAzMzU4MzY0MSwgMC45NzE3NzQ5OTUzMjY5OTU4LAorICAgICAgICAwLjE1OTU4ODk5MjU5NTY3MjYsIDAuMDY1OTYxMDAzMzAzNTI3ODMsIDAuOTg0OTc3MDA2OTEyMjMxNCwgMC4zNTA0OTc5OTA4NDY2MzM5LCAwLjE0NDc0MDAwMDM2NzE2NDYsIDAuOTI1MzExOTgyNjMxNjgzMywKKyAgICAgICAgMC40ODU1ODg5OTc2MDI0NjI3NywgMC4yMDE0NzM5OTYwNDMyMDUyNiwgMC44NTA2NTI5OTI3MjUzNzIzLCAwLjc4MDcxMjAwODQ3NjI1NzMsIC0wLjAwMDA3NTAwMDAwMzU2MjMwODg1LCAwLjYyNDg5MDk4MzEwNDcwNTgsCisgICAgICAgIDAuMjM2NTgyOTk0NDYxMDU5NTcsIDAsIDAuOTcxNjExMDIyOTQ5MjE4OCwgMC4xNzMwODQwMDU3MTM0NjI4MywgMCwgMC45ODQ5MDY5NzE0NTQ2MjA0LAorICAgICAgICAwLjM3OTcwMjk4NTI4NjcxMjY1LCAwLCAwLjkyNTEwODAxNTUzNzI2MiwgMC41MjY2NzIwMDU2NTMzODEzLCAwLCAwLjg1MDA2Nzk3MzEzNjkwMTkgfTsKKworZmxvYXQgdGVhcG90VGFuZ2VudHNbXSA9IHsgMC4wMTI4OTc5OTk5NTcyMDM4NjUsIDAuOTk4NzI3MDIzNjAxNTMyLCAtMC4wNDg3NTcwMDE3NTc2MjE3NjUsIDAuMzg2MTkxMDEwNDc1MTU4NywgMC45MjEwMDc5OTA4MzcwOTcyLCAtMC4wMTY0MjE5OTk3ODIzMjM4MzcsCisgICAgICAgIDAuMzgxMzYzOTg3OTIyNjY4NDYsIDAuOTIzMDA4OTc4MzY2ODUxOCwgMC4wMDAxNTU5OTk5OTQ2MDM5MTcsIDAuMDEyODY2OTk5OTUzOTg1MjE0LCAwLjk5ODczMDAwMzgzMzc3MDgsIDAuMDQ4NzAyMDAxNTcxNjU1MjcsCisgICAgICAgIDAuMzc1MDc5MDA1OTU2NjQ5OCwgMC45MDYxNzEwMjM4NDU2NzI2LCAtMC4wMDA3MTY5OTk5ODgwNzE2MjA1LCAwLjE5MjEwMTAwMTczOTUwMTk1LCAwLjk4MTIxMzk4Njg3MzYyNjcsIDAuMDE3NzU5MDAwODgyNTA2MzcsCisgICAgICAgIDAuMzc4MjYyMDEzMTk2OTQ1MiwgMC45MTQyOTQwMDQ0NDAzMDc2LCAtMC4wMDAxMTMwMDAwMDE4NzQ3NTIzNCwgMC4xMDQ1MTUwMDExNzc3ODc3OCwgMC45ODk3MzUwMDcyODYwNzE4LCAtMC4wOTc0NzQ5OTk3MjU4MTg2MywKKyAgICAgICAgMC4zNjU1OTM5OTk2MjQyNTIzLCAwLjkyNTcxOTAyMjc1MDg1NDUsIDAuMDI4NDYzMDAwNDMxNjU2ODM3LCAwLjA0NzY3MTk5OTc4MjMyMzg0LCAwLjk5NTMwNTAwMTczNTY4NzMsIC0wLjA4NDIzODAwMDIxNDA5OTg4LAorICAgICAgICAwLjcwOTI2Nzk3Mzg5OTg0MTMsIDAuNzAzMTE5OTkzMjA5ODM4OSwgLTAuMDE2MzY0MDAwNzM3NjY3MDg0LCAwLjcwNjE5ODk5MDM0NTAwMTIsIDAuNzA2MTk4OTkwMzQ1MDAxMiwgMCwKKyAgICAgICAgMC42OTM3MzYwMTY3NTAzMzU3LCAwLjY5MzczNjAxNjc1MDMzNTcsIDAsIDAuNjk5Nzc3MDA3MTAyOTY2MywgMC42OTk3NzcwMDcxMDI5NjYzLCAwLAorICAgICAgICAwLjY5MjQwMzAxODQ3NDU3ODksIDAuNzE1MDg1OTgzMjc2MzY3MiwgMC4wMjgyMjkwMDAwNDY4NDkyNSwgMC45MjQzNTQwMTY3ODA4NTMzLCAwLjM3ODEwNDAwMTI4MzY0NTYzLCAtMC4wMTY1NzgwMDAwMzg4NjIyMywKKyAgICAgICAgMC45MjMwMDg5NzgzNjY4NTE4LCAwLjM4MTM2Mzk4NzkyMjY2ODQ2LCAtMC4wMDAxNTU5OTk5OTQ2MDM5MTcsIDAuOTA2MTcxMDIzODQ1NjcyNiwgMC4zNzUwNzkwMDU5NTY2NDk4LCAwLjAwMDcxNjk5OTk4ODA3MTYyMDUsCisgICAgICAgIDAuOTE0Mjk0MDA0NDQwMzA3NiwgMC4zNzgyNjIwMTMxOTY5NDUyLCAwLjAwMDExMzAwMDAwMTg3NDc1MjM0LCAwLjkxMzM2NjAxOTcyNTc5OTYsIDAuMzk1NDQ0MDA1NzI3NzY3OTQsIDAuMDI4NDkwOTk5NzEzNTQwMDc3LAorICAgICAgICAwLjk5ODcwNDAxNjIwODY0ODcsIDAuMDE1ODUzMDAwODA0NzgxOTE0LCAwLjA0ODM2OTk5OTk3NDk2NjA1LCAwLjk5ODczNjk3NzU3NzIwOTUsIDAuMDE0NjQ5MDAwMDE4ODM1MDY4LCAtMC4wNDgwNjk5OTg2MjE5NDA2MSwKKyAgICAgICAgMC45ODEyMTUwMDAxNTI1ODc5LCAwLjE5MjExNzAwNTU4NjYyNDE1LCAtMC4wMTc1NDAwMDAzNzkwODU1NCwgMC45ODk3MzUwMDcyODYwNzE4LCAwLjEwNDUyODAwMjQ0MDkyOTQxLCAwLjA5NzQ1Nzk5NzUwMDg5NjQ1LAorICAgICAgICAwLjk5NTMwNTAwMTczNTY4NzMsIDAuMDQ3NjcxOTk5NzgyMzIzODQsIDAuMDg0MjM4MDAwMjE0MDk5ODgsIDAuOTk4ODE3OTgwMjg5NDU5MiwgLTAuMDA5NzU4OTk5NTcxMjA0MTg1LCAtMC4wNDc2MDAwMDEwOTY3MjU0NjQsCisgICAgICAgIDAuOTA5NDY3OTk1MTY2Nzc4NiwgLTAuNDA5NTgzOTg1ODA1NTExNSwgLTAuMDEyNjM2OTk5NTk5NjM1NjAxLCAwLjkyNDAwOTAyNTA5Njg5MzMsIC0wLjM4MTE1MDk5MDcyNDU2MzYsIC0wLjAwMDMxNTAwMDAxMjA1MTMxNDEsCisgICAgICAgIDAuOTk4Nzg5MDEyNDMyMDk4NCwgLTAuMDEwNjYyOTk5OTM1NDQ4MTcsIDAuMDQ4MDE4MDAxMDE5OTU0NjgsIDAuOTA3MjI2OTc5NzMyNTEzNCwgLTAuMzcxNDIzMDA2MDU3NzM5MjYsIDAuMDIwNzMxMDAwMjI5NzE2MywKKyAgICAgICAgMC45ODE0MzUwMDA4OTY0NTM5LCAtMC4xOTA5NTIwMDMwMDIxNjY3NSwgMC4wMTc5NTcwMDAwNjE4Njk2MiwgMC45MTQ4NzAwMjM3Mjc0MTcsIC0wLjM3NzE0NDAwODg3NDg5MzIsIC0wLjAwMTE0ODAwMDAxMDI4OTI1MTgsCisgICAgICAgIDAuOTg5NzQ5MDE0Mzc3NTk0LCAtMC4xMDQ0MjQ5OTgxNjQxNzY5NCwgLTAuMDk3NDI3MDAzMDg1NjEzMjUsIDAuOTI1ODE1OTk5NTA3OTA0LCAtMC4zNjUzOTUwMDk1MTc2Njk3LCAwLjAyODMwODAwMDQxNTU2MzU4MywKKyAgICAgICAgMC45OTUzMDUwMDE3MzU2ODczLCAtMC4wNDc2NzE5OTk3ODIzMjM4NCwgLTAuMDg0MjM4MDAwMjE0MDk5ODgsIDAuNjc2ODkyOTk1ODM0MzUwNiwgLTAuNzMxNDAyOTkzMjAyMjA5NSwgLTAuMDE5ODg3MDAwMzIyMzQxOTIsCisgICAgICAgIDAuNjk5NDYxOTk2NTU1MzI4NCwgLTAuNzE0NTE0MDE3MTA1MTAyNSwgLTAuMDAwMjk3OTk5OTk5MDIwMjQ4NjUsIDAuNjk0MDU5MDE0MzIwMzczNSwgLTAuNjkzMzk3OTk4ODA5ODE0NSwgMC4wMTU1NjAwMDAyMDM1NDk4NjIsCisgICAgICAgIDAuNzAwMjU4MDE2NTg2MzAzNywgLTAuNjk5NjMwMDIyMDQ4OTUwMiwgLTAuMDAwNzgzOTk5OTc0MzczNzI4LCAwLjcxNTE0MjAxMTY0MjQ1NiwgLTAuNjkyMzg2OTg0ODI1MTM0MywgMC4wMjgwNzg5OTkzNzAzMzY1MzMsCisgICAgICAgIDAuMzUxOTM2MDEyNTA2NDg1LCAtMC45MzM4OTk5OTg2NjQ4NTYsIC0wLjAxOTg0Mzk5OTI5NjQyNjc3MywgMC4zNjY1NDAwMTQ3NDM4MDQ5MywgLTAuOTI5ODQxOTk1MjM5MjU3OCwgLTAuMDAwNTIxMDAwMDA5MDMwMTAzNywKKyAgICAgICAgMC4zNzExNjkwMDA4NjQwMjg5MywgLTAuOTA4NDgzMDI4NDExODY1MiwgMC4wMDE1MjI5OTk5NTUzNDEyMiwgMC4zNzc2NDc5OTU5NDg3OTE1LCAtMC45MTQ3NjUwMDAzNDMzMjI4LCAtMC4wMDAxMTAwMDAwMDA4NTkxNDUwOCwKKyAgICAgICAgMC4zOTUzMzY5ODU1ODgwNzM3MywgLTAuOTEzNDM0OTgyMjk5ODA0NywgMC4wMjg0MTA5OTkxMDQzODA2MDgsIDAuMDAxMzIxMDAwMDQ3MDI4MDY0NywgLTAuOTk4OTQ3OTc4MDE5NzE0NCwgMC4wNDU4MzA5OTg1Njk3MjY5NDQsCisgICAgICAgIDAuMDAzODk3MDAwMTA0MTg4OTE5LCAtMC45OTg4OTA5OTU5NzkzMDkxLCAtMC4wNDY5MDI5OTkyODE4ODMyNCwgMC4xODcwNTk5OTg1MTIyNjgwNywgLTAuOTgyMTYzMDEyMDI3NzQwNSwgLTAuMDE4ODE4MDAwMzMxNTIxMDM0LAorICAgICAgICAwLjEwMzYzOTk5NzU0MTkwNDQ1LCAtMC45ODk4NTc5NzE2NjgyNDM0LCAwLjA5NzE1NDk5NzI4OTE4MDc2LCAwLjA0NzU3NzAwMTE1NDQyMjc2LCAtMC45OTUzMTI5ODg3NTgwODcyLCAwLjA4NDE4Nzk5OTM2NzcxMzkzLAorICAgICAgICAtMC4wMjI5NjY5OTk1NjA1OTQ1NiwgLTAuOTk4Njc4MDI4NTgzNTI2NiwgLTAuMDQ1OTkxOTk4MTY1ODQ1ODcsIC0wLjM4NjE5MTAxMDQ3NTE1ODcsIC0wLjkyMTAwNzk5MDgzNzA5NzIsIC0wLjAxNjQyMTk5OTc4MjMyMzgzNywKKyAgICAgICAgLTAuMzgxMzYzOTg3OTIyNjY4NDYsIC0wLjkyMzAwODk3ODM2Njg1MTgsIDAuMDAwMTU1OTk5OTk0NjAzOTE3LCAtMC4wMjA0MzEwMDA3MzkzMzYwMTQsIC0wLjk5ODcyNjAxMDMyMjU3MDgsIDAuMDQ2MTQ0MDAxMTg1ODk0MDEsCisgICAgICAgIC0wLjM3NTA3OTAwNTk1NjY0OTgsIC0wLjkwNjE3MTAyMzg0NTY3MjYsIC0wLjAwMDcxNjk5OTk4ODA3MTYyMDUsIC0wLjE5MjE2NjAwMDYwNDYyOTUyLCAtMC45ODEyMTg5OTM2NjM3ODc4LCAwLjAxNjc3MjAwMDExOTA5MDA4LAorICAgICAgICAtMC4zNzgyNjIwMTMxOTY5NDUyLCAtMC45MTQyOTQwMDQ0NDAzMDc2LCAtMC4wMDAxMTMwMDAwMDE4NzQ3NTIzNCwgLTAuMTA0NzEyMDAxOTc5MzUxMDQsIC0wLjk4OTczOTAwMDc5NzI3MTcsIC0wLjA5NzIyNTAwMjk0NDQ2OTQ1LAorICAgICAgICAtMC4zNjU1OTM5OTk2MjQyNTIzLCAtMC45MjU3MTkwMjI3NTA4NTQ1LCAwLjAyODQ2MzAwMDQzMTY1NjgzNywgLTAuMDQ3NzEwOTk5ODQ2NDU4NDM1LCAtMC45OTUzMDUwMDE3MzU2ODczLCAtMC4wODQyMDY5OTgzNDgyMzYwOCwKKyAgICAgICAgLTAuNzA5MjY3OTczODk5ODQxMywgLTAuNzAzMTE5OTkzMjA5ODM4OSwgLTAuMDE2MzY0MDAwNzM3NjY3MDg0LCAtMC43MDYxOTg5OTAzNDUwMDEyLCAtMC43MDYxOTg5OTAzNDUwMDEyLCAwLAorICAgICAgICAtMC42OTM3MzYwMTY3NTAzMzU3LCAtMC42OTM3MzYwMTY3NTAzMzU3LCAwLCAtMC42OTk3NzcwMDcxMDI5NjYzLCAtMC42OTk3NzcwMDcxMDI5NjYzLCAwLAorICAgICAgICAtMC42OTI0MDMwMTg0NzQ1Nzg5LCAtMC43MTUwODU5ODMyNzYzNjcyLCAwLjAyODIyOTAwMDA0Njg0OTI1LCAtMC45MjQzNTQwMTY3ODA4NTMzLCAtMC4zNzgxMDQwMDEyODM2NDU2MywgLTAuMDE2NTc4MDAwMDM4ODYyMjMsCisgICAgICAgIC0wLjkyMzAwODk3ODM2Njg1MTgsIC0wLjM4MTM2Mzk4NzkyMjY2ODQ2LCAtMC4wMDAxNTU5OTk5OTQ2MDM5MTcsIC0wLjkwNjE3MTAyMzg0NTY3MjYsIC0wLjM3NTA3OTAwNTk1NjY0OTgsIDAuMDAwNzE2OTk5OTg4MDcxNjIwNSwKKyAgICAgICAgLTAuOTE0Mjk0MDA0NDQwMzA3NiwgLTAuMzc4MjYyMDEzMTk2OTQ1MiwgMC4wMDAxMTMwMDAwMDE4NzQ3NTIzNCwgLTAuOTEzMzY2MDE5NzI1Nzk5NiwgLTAuMzk1NDQ0MDA1NzI3NzY3OTQsIDAuMDI4NDkwOTk5NzEzNTQwMDc3LAorICAgICAgICAtMC45OTg3MjcwMjM2MDE1MzIsIC0wLjAxMjg5Nzk5OTk1NzIwMzg2NSwgMC4wNDg3NTcwMDE3NTc2MjE3NjUsIC0wLjk5ODczMDAwMzgzMzc3MDgsIC0wLjAxMjg2Njk5OTk1Mzk4NTIxNCwgLTAuMDQ4NzAyMDAxNTcxNjU1MjcsCisgICAgICAgIC0wLjk4MTIxMzk4Njg3MzYyNjcsIC0wLjE5MjEwMTAwMTczOTUwMTk1LCAtMC4wMTc3NTkwMDA4ODI1MDYzNywgLTAuOTg5NzM1MDA3Mjg2MDcxOCwgLTAuMTA0NTE1MDAxMTc3Nzg3NzgsIDAuMDk3NDc0OTk5NzI1ODE4NjMsCisgICAgICAgIC0wLjk5NTMwNTAwMTczNTY4NzMsIC0wLjA0NzY3MTk5OTc4MjMyMzg0LCAwLjA4NDIzODAwMDIxNDA5OTg4LCAtMC45OTg3MjcwMjM2MDE1MzIsIDAuMDEyODk3OTk5OTU3MjAzODY1LCAtMC4wNDg3NTcwMDE3NTc2MjE3NjUsCisgICAgICAgIC0wLjkyMTAwNzk5MDgzNzA5NzIsIDAuMzg2MTkxMDEwNDc1MTU4NywgLTAuMDE2NDIxOTk5NzgyMzIzODM3LCAtMC45MjMwMDg5NzgzNjY4NTE4LCAwLjM4MTM2Mzk4NzkyMjY2ODQ2LCAwLjAwMDE1NTk5OTk5NDYwMzkxNywKKyAgICAgICAgLTAuOTk4NzMwMDAzODMzNzcwOCwgMC4wMTI4NjY5OTk5NTM5ODUyMTQsIDAuMDQ4NzAyMDAxNTcxNjU1MjcsIC0wLjkwNjE3MTAyMzg0NTY3MjYsIDAuMzc1MDc5MDA1OTU2NjQ5OCwgLTAuMDAwNzE2OTk5OTg4MDcxNjIwNSwKKyAgICAgICAgLTAuOTgxMjEzOTg2ODczNjI2NywgMC4xOTIxMDEwMDE3Mzk1MDE5NSwgMC4wMTc3NTkwMDA4ODI1MDYzNywgLTAuOTE0Mjk0MDA0NDQwMzA3NiwgMC4zNzgyNjIwMTMxOTY5NDUyLCAtMC4wMDAxMTMwMDAwMDE4NzQ3NTIzNCwKKyAgICAgICAgLTAuOTg5NzM1MDA3Mjg2MDcxOCwgMC4xMDQ1MTUwMDExNzc3ODc3OCwgLTAuMDk3NDc0OTk5NzI1ODE4NjMsIC0wLjkyNTcxOTAyMjc1MDg1NDUsIDAuMzY1NTkzOTk5NjI0MjUyMywgMC4wMjg0NjMwMDA0MzE2NTY4MzcsCisgICAgICAgIC0wLjk5NTMwNTAwMTczNTY4NzMsIDAuMDQ3NjcxOTk5NzgyMzIzODQsIC0wLjA4NDIzODAwMDIxNDA5OTg4LCAtMC43MDMxMTk5OTMyMDk4Mzg5LCAwLjcwOTI2Nzk3Mzg5OTg0MTMsIC0wLjAxNjM2NDAwMDczNzY2NzA4NCwKKyAgICAgICAgLTAuNzA2MTk4OTkwMzQ1MDAxMiwgMC43MDYxOTg5OTAzNDUwMDEyLCAwLCAtMC42OTM3MzYwMTY3NTAzMzU3LCAwLjY5MzczNjAxNjc1MDMzNTcsIDAsCisgICAgICAgIC0wLjY5OTc3NzAwNzEwMjk2NjMsIDAuNjk5Nzc3MDA3MTAyOTY2MywgMCwgLTAuNzE1MDg1OTgzMjc2MzY3MiwgMC42OTI0MDMwMTg0NzQ1Nzg5LCAwLjAyODIyOTAwMDA0Njg0OTI1LAorICAgICAgICAtMC4zNzgxMDQwMDEyODM2NDU2MywgMC45MjQzNTQwMTY3ODA4NTMzLCAtMC4wMTY1NzgwMDAwMzg4NjIyMywgLTAuMzgxMzYzOTg3OTIyNjY4NDYsIDAuOTIzMDA4OTc4MzY2ODUxOCwgLTAuMDAwMTU1OTk5OTk0NjAzOTE3LAorICAgICAgICAtMC4zNzUwNzkwMDU5NTY2NDk4LCAwLjkwNjE3MTAyMzg0NTY3MjYsIDAuMDAwNzE2OTk5OTg4MDcxNjIwNSwgLTAuMzc4MjYyMDEzMTk2OTQ1MiwgMC45MTQyOTQwMDQ0NDAzMDc2LCAwLjAwMDExMzAwMDAwMTg3NDc1MjM0LAorICAgICAgICAtMC4zOTU0NDQwMDU3Mjc3Njc5NCwgMC45MTMzNjYwMTk3MjU3OTk2LCAwLjAyODQ5MDk5OTcxMzU0MDA3NywgLTAuMDEyODk3OTk5OTU3MjAzODY1LCAwLjk5ODcyNzAyMzYwMTUzMiwgMC4wNDg3NTcwMDE3NTc2MjE3NjUsCisgICAgICAgIC0wLjAxMjg2Njk5OTk1Mzk4NTIxNCwgMC45OTg3MzAwMDM4MzM3NzA4LCAtMC4wNDg3MDIwMDE1NzE2NTUyNywgLTAuMTkyMTAxMDAxNzM5NTAxOTUsIDAuOTgxMjEzOTg2ODczNjI2NywgLTAuMDE3NzU5MDAwODgyNTA2MzcsCisgICAgICAgIC0wLjEwNDUxNTAwMTE3Nzc4Nzc4LCAwLjk4OTczNTAwNzI4NjA3MTgsIDAuMDk3NDc0OTk5NzI1ODE4NjMsIC0wLjA0NzY3MTk5OTc4MjMyMzg0LCAwLjk5NTMwNTAwMTczNTY4NzMsIDAuMDg0MjM4MDAwMjE0MDk5ODgsCisgICAgICAgIDAuMDQ3NjcxOTk5NzgyMzIzODQsIDAuOTk1MzA1MDAxNzM1Njg3MywgLTAuMDg0MjM4MDAwMjE0MDk5ODgsIDAuMzk1NDQ0MDA1NzI3NzY3OTQsIDAuOTEzMzY2MDE5NzI1Nzk5NiwgLTAuMDI4NDkwOTk5NzEzNTQwMDc3LAorICAgICAgICAwLjM4MTExNjk4NjI3NDcxOTI0LCAwLjkyMTAxOTAxNzY5NjM4MDYsIC0wLjAwMDAxNTk5OTk5OTk1OTYwMzg4MywgMC4wMzE5MjI5OTk3Njk0NDkyMzQsIDAuOTk2ODUyOTkzOTY1MTQ4OSwgLTAuMDcyNTU1OTk2NDc3NjAzOTEsCisgICAgICAgIDAuMzgxNTI5OTg2ODU4MzY3OSwgMC45MjE5MDgwMjA5NzMyMDU2LCAwLjAwMDAwMTk5OTk5OTk5NDk1MDQ4NTQsIDAuMDIyMjYxOTk5NTQ3NDgxNTM3LCAwLjk5NzgwMzk4NjA3MjU0MDMsIC0wLjA2MjM3Mzk5OTUwNjIzNTEyLAorICAgICAgICAwLjM4MjEzODk5NzMxNjM2MDUsIDAuOTIzMTg4OTg0Mzk0MDczNSwgMC4wMDAwMTcwMDAwMDAyOTgxMzk2NCwgMC4wMDgzMTc5OTk1NDE3NTk0OTEsIDAuOTk5MTc5MDA1NjIyODYzOCwgLTAuMDM5NjQ4MDAwMTUwOTE4OTYsCisgICAgICAgIDAuMzgyMjg4OTkyNDA0OTM3NzQsIDAuOTIzOTQ2OTc2NjYxNjgyMSwgLTAuMDA0NDMwMDAwMjA0NTkyOTQzLCAwLjAwMDg2NjAwMDAxNjY4NTU3NTIsIDAuOTk5OTEzOTkwNDk3NTg5MSwgMC4wMTMwNDg5OTk5NDI4MzkxNDYsCisgICAgICAgIDAuNzE1MDg1OTgzMjc2MzY3MiwgMC42OTI0MDMwMTg0NzQ1Nzg5LCAtMC4wMjgyMjkwMDAwNDY4NDkyNSwgMC43MDQ4NTE5ODQ5Nzc3MjIyLCAwLjcwNDg1MTk4NDk3NzcyMjIsIDAsCisgICAgICAgIDAuNzA1NTMzMDI3NjQ4OTI1OCwgMC43MDU1MzMwMjc2NDg5MjU4LCAwLCAwLjcwNjUxNzk5NDQwMzgzOTEsIDAuNzA2NTE3OTk0NDAzODM5MSwgMCwKKyAgICAgICAgMC43MDY4MzkwMjUwMjA1OTk0LCAwLjcwNzI1MjAyNTYwNDI0OCwgLTAuMDA0Mzc5OTk5ODIzODY4Mjc1LCAwLjkyNTcxOTAyMjc1MDg1NDUsIDAuMzY1NTkzOTk5NjI0MjUyMywgLTAuMDI4NDYzMDAwNDMxNjU2ODM3LAorICAgICAgICAwLjkyMTAxODAwNDQxNzQxOTQsIDAuMzgxMTE2OTg2Mjc0NzE5MjQsIDAuMDAwMDE1OTk5OTk5OTU5NjAzODgzLCAwLjkyMTkwODAyMDk3MzIwNTYsIDAuMzgxNTI5OTg2ODU4MzY3OSwgLTAuMDAwMDAxOTk5OTk5OTk0OTUwNDg1NCwKKyAgICAgICAgMC45MjMxODg5ODQzOTQwNzM1LCAwLjM4MjEzODk5NzMxNjM2MDUsIC0wLjAwMDAxNzAwMDAwMDI5ODEzOTY0LCAwLjkyMzcyMjk4MjQwNjYxNjIsIDAuMzgyODMxOTkwNzE4ODQxNTUsIC0wLjAwNDM5OTk5OTk3NjE1ODE0MiwKKyAgICAgICAgMC45OTUzMDUwMDE3MzU2ODczLCAwLjA0NzY3MTk5OTc4MjMyMzg0LCAwLjA4NDIzODAwMDIxNDA5OTg4LCAwLjk5Njg1Mjk5Mzk2NTE0ODksIDAuMDMxOTIyOTk5NzY5NDQ5MjM0LCAwLjA3MjU1NTk5NjQ3NzYwMzkxLAorICAgICAgICAwLjk5NzgwMzk4NjA3MjU0MDMsIDAuMDIyMjYxOTk5NTQ3NDgxNTM3LCAwLjA2MjM3Mzk5OTUwNjIzNTEyLCAwLjk5OTE3OTAwNTYyMjg2MzgsIDAuMDA4MzE3OTk5NTQxNzU5NDkxLCAwLjAzOTY0ODAwMDE1MDkxODk2LAorICAgICAgICAwLjk5OTkxMzk5MDQ5NzU4OTEsIDAuMDAwODY2MDAwMDE2Njg1NTc1MiwgLTAuMDEzMDQ4OTk5OTQyODM5MTQ2LCAwLjk5NTMwNTAwMTczNTY4NzMsIC0wLjA0NzY3MTk5OTc4MjMyMzg0LCAtMC4wODQyMzgwMDAyMTQwOTk4OCwKKyAgICAgICAgMC45MTM1MDAwMTA5NjcyNTQ2LCAtMC4zOTUxNjE5ODYzNTEwMTMyLCAtMC4wMjg2MTEwMDA2MjcyNzkyOCwgMC45MjEwMTkwMTc2OTYzODA2LCAtMC4zODExMTY5ODYyNzQ3MTkyNCwgLTAuMDAwMDE1OTk5OTk5OTU5NjAzODgzLAorICAgICAgICAwLjk5Njg1Mjk5Mzk2NTE0ODksIC0wLjAzMTkyMjk5OTc2OTQ0OTIzNCwgLTAuMDcyNTU1OTk2NDc3NjAzOTEsIDAuOTIxOTA4MDIwOTczMjA1NiwgLTAuMzgxNTI5OTg2ODU4MzY3OSwgMC4wMDAwMDE5OTk5OTk5OTQ5NTA0ODU0LAorICAgICAgICAwLjk5NzgwMzk4NjA3MjU0MDMsIC0wLjAyMjI2MTk5OTU0NzQ4MTUzNywgLTAuMDYyMzczOTk5NTA2MjM1MTIsIDAuOTIzMTg4OTg0Mzk0MDczNSwgLTAuMzgyMTM4OTk3MzE2MzYwNSwgMC4wMDAwMTcwMDAwMDAyOTgxMzk2NCwKKyAgICAgICAgMC45OTkxNzkwMDU2MjI4NjM4LCAtMC4wMDgzMTc5OTk1NDE3NTk0OTEsIC0wLjAzOTY0ODAwMDE1MDkxODk2LCAwLjkyMzk0Njk3NjY2MTY4MjEsIC0wLjM4MjI4ODk5MjQwNDkzNzc0LCAtMC4wMDQ0MzAwMDAyMDQ1OTI5NDMsCisgICAgICAgIDAuOTk5OTEzOTkwNDk3NTg5MSwgLTAuMDAwODY2MDAwMDE2Njg1NTc1MiwgMC4wMTMwNDg5OTk5NDI4MzkxNDYsIDAuNjkyNTg5OTk4MjQ1MjM5MywgLTAuNzE0OTM2OTcxNjY0NDI4NywgLTAuMDI4MjYyMDAwNTMwOTU4MTc2LAorICAgICAgICAwLjcwNDg1MTk4NDk3NzcyMjIsIC0wLjcwNDg1MTk4NDk3NzcyMjIsIDAsIDAuNzA1NTMzMDI3NjQ4OTI1OCwgLTAuNzA1NTMzMDI3NjQ4OTI1OCwgMCwKKyAgICAgICAgMC43MDY1MTc5OTQ0MDM4MzkxLCAtMC43MDY1MTc5OTQ0MDM4MzkxLCAwLCAwLjcwNzI1MjAyNTYwNDI0OCwgLTAuNzA2ODM5MDI1MDIwNTk5NCwgLTAuMDA0Mzc5OTk5ODIzODY4Mjc1LAorICAgICAgICAwLjM2NTYxMDAwMzQ3MTM3NDUsIC0wLjkyNTcyODAyMzA1MjIxNTYsIC0wLjAyODQxMjk5OTU4NTI3MDg4LCAwLjM4MTExNjk4NjI3NDcxOTI0LCAtMC45MjEwMTgwMDQ0MTc0MTk0LCAwLjAwMDAxNTk5OTk5OTk1OTYwMzg4MywKKyAgICAgICAgMC4zODE1Mjk5ODY4NTgzNjc5LCAtMC45MjE5MDgwMjA5NzMyMDU2LCAtMC4wMDAwMDE5OTk5OTk5OTQ5NTA0ODU0LCAwLjM4MjEzODk5NzMxNjM2MDUsIC0wLjkyMzE4ODk4NDM5NDA3MzUsIC0wLjAwMDAxNzAwMDAwMDI5ODEzOTY0LAorICAgICAgICAwLjM4MjgzMTk5MDcxODg0MTU1LCAtMC45MjM3MjI5ODI0MDY2MTYyLCAtMC4wMDQzOTk5OTk5NzYxNTgxNDIsIDAuMDQ3NTc3MDAxMTU0NDIyNzYsIC0wLjk5NTMxMjk4ODc1ODA4NzIsIDAuMDg0MTg3OTk5MzY3NzEzOTMsCisgICAgICAgIDAuMDMxOTIyOTk5NzY5NDQ5MjM0LCAtMC45OTY4NTI5OTM5NjUxNDg5LCAwLjA3MjU1NTk5NjQ3NzYwMzkxLCAwLjAyMjI2MTk5OTU0NzQ4MTUzNywgLTAuOTk3ODAzOTg2MDcyNTQwMywgMC4wNjIzNzM5OTk1MDYyMzUxMiwKKyAgICAgICAgMC4wMDgzMTc5OTk1NDE3NTk0OTEsIC0wLjk5OTE3OTAwNTYyMjg2MzgsIDAuMDM5NjQ4MDAwMTUwOTE4OTYsIDAuMDAwODY2MDAwMDE2Njg1NTc1MiwgLTAuOTk5OTEzOTkwNDk3NTg5MSwgLTAuMDEzMDQ4OTk5OTQyODM5MTQ2LAorICAgICAgICAtMC4wNDc3MTA5OTk4NDY0NTg0MzUsIC0wLjk5NTMwNTAwMTczNTY4NzMsIC0wLjA4NDIwNjk5ODM0ODIzNjA4LCAtMC4zOTU0NDQwMDU3Mjc3Njc5NCwgLTAuOTEzMzY2MDE5NzI1Nzk5NiwgLTAuMDI4NDkwOTk5NzEzNTQwMDc3LAorICAgICAgICAtMC4zODExMTY5ODYyNzQ3MTkyNCwgLTAuOTIxMDE5MDE3Njk2MzgwNiwgLTAuMDAwMDE1OTk5OTk5OTU5NjAzODgzLCAtMC4wMzE5MjI5OTk3Njk0NDkyMzQsIC0wLjk5Njg1Mjk5Mzk2NTE0ODksIC0wLjA3MjU1NTk5NjQ3NzYwMzkxLAorICAgICAgICAtMC4zODE1Mjk5ODY4NTgzNjc5LCAtMC45MjE5MDgwMjA5NzMyMDU2LCAwLjAwMDAwMTk5OTk5OTk5NDk1MDQ4NTQsIC0wLjAyMjI2MTk5OTU0NzQ4MTUzNywgLTAuOTk3ODAzOTg2MDcyNTQwMywgLTAuMDYyMzczOTk5NTA2MjM1MTIsCisgICAgICAgIC0wLjM4MjEzODk5NzMxNjM2MDUsIC0wLjkyMzE4ODk4NDM5NDA3MzUsIDAuMDAwMDE3MDAwMDAwMjk4MTM5NjQsIC0wLjAwODMxNzk5OTU0MTc1OTQ5MSwgLTAuOTk5MTc5MDA1NjIyODYzOCwgLTAuMDM5NjQ4MDAwMTUwOTE4OTYsCisgICAgICAgIC0wLjM4MjI4ODk5MjQwNDkzNzc0LCAtMC45MjM5NDY5NzY2NjE2ODIxLCAtMC4wMDQ0MzAwMDAyMDQ1OTI5NDMsIC0wLjAwMDg2NjAwMDAxNjY4NTU3NTIsIC0wLjk5OTkxMzk5MDQ5NzU4OTEsIDAuMDEzMDQ4OTk5OTQyODM5MTQ2LAorICAgICAgICAtMC43MTUwODU5ODMyNzYzNjcyLCAtMC42OTI0MDMwMTg0NzQ1Nzg5LCAtMC4wMjgyMjkwMDAwNDY4NDkyNSwgLTAuNzA0ODUxOTg0OTc3NzIyMiwgLTAuNzA0ODUxOTg0OTc3NzIyMiwgMCwKKyAgICAgICAgLTAuNzA1NTMzMDI3NjQ4OTI1OCwgLTAuNzA1NTMzMDI3NjQ4OTI1OCwgMCwgLTAuNzA2NTE3OTk0NDAzODM5MSwgLTAuNzA2NTE3OTk0NDAzODM5MSwgMCwKKyAgICAgICAgLTAuNzA2ODM5MDI1MDIwNTk5NCwgLTAuNzA3MjUyMDI1NjA0MjQ4LCAtMC4wMDQzNzk5OTk4MjM4NjgyNzUsIC0wLjkyNTcxOTAyMjc1MDg1NDUsIC0wLjM2NTU5Mzk5OTYyNDI1MjMsIC0wLjAyODQ2MzAwMDQzMTY1NjgzNywKKyAgICAgICAgLTAuOTIxMDE4MDA0NDE3NDE5NCwgLTAuMzgxMTE2OTg2Mjc0NzE5MjQsIDAuMDAwMDE1OTk5OTk5OTU5NjAzODgzLCAtMC45MjE5MDgwMjA5NzMyMDU2LCAtMC4zODE1Mjk5ODY4NTgzNjc5LCAtMC4wMDAwMDE5OTk5OTk5OTQ5NTA0ODU0LAorICAgICAgICAtMC45MjMxODg5ODQzOTQwNzM1LCAtMC4zODIxMzg5OTczMTYzNjA1LCAtMC4wMDAwMTcwMDAwMDAyOTgxMzk2NCwgLTAuOTIzNzIyOTgyNDA2NjE2MiwgLTAuMzgyODMxOTkwNzE4ODQxNTUsIC0wLjAwNDM5OTk5OTk3NjE1ODE0MiwKKyAgICAgICAgLTAuOTk1MzA1MDAxNzM1Njg3MywgLTAuMDQ3NjcxOTk5NzgyMzIzODQsIDAuMDg0MjM4MDAwMjE0MDk5ODgsIC0wLjk5Njg1Mjk5Mzk2NTE0ODksIC0wLjAzMTkyMjk5OTc2OTQ0OTIzNCwgMC4wNzI1NTU5OTY0Nzc2MDM5MSwKKyAgICAgICAgLTAuOTk3ODAzOTg2MDcyNTQwMywgLTAuMDIyMjYxOTk5NTQ3NDgxNTM3LCAwLjA2MjM3Mzk5OTUwNjIzNTEyLCAtMC45OTkxNzkwMDU2MjI4NjM4LCAtMC4wMDgzMTc5OTk1NDE3NTk0OTEsIDAuMDM5NjQ4MDAwMTUwOTE4OTYsCisgICAgICAgIC0wLjk5OTkxMzk5MDQ5NzU4OTEsIC0wLjAwMDg2NjAwMDAxNjY4NTU3NTIsIC0wLjAxMzA0ODk5OTk0MjgzOTE0NiwgLTAuOTk1MzA1MDAxNzM1Njg3MywgMC4wNDc2NzE5OTk3ODIzMjM4NCwgLTAuMDg0MjM4MDAwMjE0MDk5ODgsCisgICAgICAgIC0wLjkxMzM2NjAxOTcyNTc5OTYsIDAuMzk1NDQ0MDA1NzI3NzY3OTQsIC0wLjAyODQ5MDk5OTcxMzU0MDA3NywgLTAuOTIxMDE5MDE3Njk2MzgwNiwgMC4zODExMTY5ODYyNzQ3MTkyNCwgLTAuMDAwMDE1OTk5OTk5OTU5NjAzODgzLAorICAgICAgICAtMC45OTY4NTI5OTM5NjUxNDg5LCAwLjAzMTkyMjk5OTc2OTQ0OTIzNCwgLTAuMDcyNTU1OTk2NDc3NjAzOTEsIC0wLjkyMTkwODAyMDk3MzIwNTYsIDAuMzgxNTI5OTg2ODU4MzY3OSwgMC4wMDAwMDE5OTk5OTk5OTQ5NTA0ODU0LAorICAgICAgICAtMC45OTc4MDM5ODYwNzI1NDAzLCAwLjAyMjI2MTk5OTU0NzQ4MTUzNywgLTAuMDYyMzczOTk5NTA2MjM1MTIsIC0wLjkyMzE4ODk4NDM5NDA3MzUsIDAuMzgyMTM4OTk3MzE2MzYwNSwgMC4wMDAwMTcwMDAwMDAyOTgxMzk2NCwKKyAgICAgICAgLTAuOTk5MTc5MDA1NjIyODYzOCwgMC4wMDgzMTc5OTk1NDE3NTk0OTEsIC0wLjAzOTY0ODAwMDE1MDkxODk2LCAtMC45MjM5NDY5NzY2NjE2ODIxLCAwLjM4MjI4ODk5MjQwNDkzNzc0LCAtMC4wMDQ0MzAwMDAyMDQ1OTI5NDMsCisgICAgICAgIC0wLjk5OTkxMzk5MDQ5NzU4OTEsIDAuMDAwODY2MDAwMDE2Njg1NTc1MiwgMC4wMTMwNDg5OTk5NDI4MzkxNDYsIC0wLjY5MjQwMzAxODQ3NDU3ODksIDAuNzE1MDg1OTgzMjc2MzY3MiwgLTAuMDI4MjI5MDAwMDQ2ODQ5MjUsCisgICAgICAgIC0wLjcwNDg1MTk4NDk3NzcyMjIsIDAuNzA0ODUxOTg0OTc3NzIyMiwgMCwgLTAuNzA1NTMzMDI3NjQ4OTI1OCwgMC43MDU1MzMwMjc2NDg5MjU4LCAwLAorICAgICAgICAtMC43MDY1MTc5OTQ0MDM4MzkxLCAwLjcwNjUxNzk5NDQwMzgzOTEsIDAsIC0wLjcwNzI1MjAyNTYwNDI0OCwgMC43MDY4MzkwMjUwMjA1OTk0LCAtMC4wMDQzNzk5OTk4MjM4NjgyNzUsCisgICAgICAgIC0wLjM2NTU5Mzk5OTYyNDI1MjMsIDAuOTI1NzE5MDIyNzUwODU0NSwgLTAuMDI4NDYzMDAwNDMxNjU2ODM3LCAtMC4zODExMTY5ODYyNzQ3MTkyNCwgMC45MjEwMTgwMDQ0MTc0MTk0LCAwLjAwMDAxNTk5OTk5OTk1OTYwMzg4MywKKyAgICAgICAgLTAuMzgxNTI5OTg2ODU4MzY3OSwgMC45MjE5MDgwMjA5NzMyMDU2LCAtMC4wMDAwMDE5OTk5OTk5OTQ5NTA0ODU0LCAtMC4zODIxMzg5OTczMTYzNjA1LCAwLjkyMzE4ODk4NDM5NDA3MzUsIC0wLjAwMDAxNzAwMDAwMDI5ODEzOTY0LAorICAgICAgICAtMC4zODI4MzE5OTA3MTg4NDE1NSwgMC45MjM3MjI5ODI0MDY2MTYyLCAtMC4wMDQzOTk5OTk5NzYxNTgxNDIsIC0wLjA0NzY3MTk5OTc4MjMyMzg0LCAwLjk5NTMwNTAwMTczNTY4NzMsIDAuMDg0MjM4MDAwMjE0MDk5ODgsCisgICAgICAgIC0wLjAzMTkyMjk5OTc2OTQ0OTIzNCwgMC45OTY4NTI5OTM5NjUxNDg5LCAwLjA3MjU1NTk5NjQ3NzYwMzkxLCAtMC4wMjIyNjE5OTk1NDc0ODE1MzcsIDAuOTk3ODAzOTg2MDcyNTQwMywgMC4wNjIzNzM5OTk1MDYyMzUxMiwKKyAgICAgICAgLTAuMDA4MzE3OTk5NTQxNzU5NDkxLCAwLjk5OTE3OTAwNTYyMjg2MzgsIDAuMDM5NjQ4MDAwMTUwOTE4OTYsIC0wLjAwMDg2NjAwMDAxNjY4NTU3NTIsIDAuOTk5OTEzOTkwNDk3NTg5MSwgLTAuMDEzMDQ4OTk5OTQyODM5MTQ2LAorICAgICAgICAwLjAwMDg2NjAwMDAxNjY4NTU3NTIsIDAuOTk5OTEzOTkwNDk3NTg5MSwgMC4wMTMwNDg5OTk5NDI4MzkxNDYsIDAuMzgyODMxOTkwNzE4ODQxNTUsIDAuOTIzNzIyOTgyNDA2NjE2MiwgMC4wMDQzOTk5OTk5NzYxNTgxNDIsCisgICAgICAgIDAuMzgxMDE1MDAyNzI3NTA4NTQsIDAuOTIwNDczOTkyODI0NTU0NCwgLTAuMDAwMDM4OTk5OTk4NjUwOTc5MjUsIDAuMDM3MzEyOTk5MzY3NzEzOTMsIDAuOTk2MzIyOTg5NDYzODA2MiwgMC4wNzcxMjM5OTk1OTU2NDIwOSwKKyAgICAgICAgMC4zNzg3NzE5OTA1Mzc2NDM0MywgMC45MTU0ODgwMDQ2ODQ0NDgyLCAwLjAwMDA4Mzk5OTk5OTMzMzE3MzA0LCAwLjA5MTUxMTAwMzY3MzA3NjYzLCAwLjk5MTAwNjAxNjczMTI2MjIsIDAuMDk3NjMyOTk2NzM3OTU3LAorICAgICAgICAwLjM3ODM4Nzk4NzYxMzY3OCwgMC45MTQ1NzQ5ODA3MzU3Nzg4LCAwLjAwMDA5OTk5OTk5NzQ3Mzc4NzUyLCAwLjEwMTM0NjAwMTAyOTAxNDU5LCAwLjk5MDA0NTAxMTA0MzU0ODYsIDAuMDk3Njc2MDAxNDg5MTYyNDUsCisgICAgICAgIDAuMzU2Nzk1OTk2NDI3NTM2LCAwLjkyNjY1MTAwMDk3NjU2MjUsIC0wLjAzMTg4MTk5OTIyNDQyNDM2LCAwLjA3MjQ2NjAwMDkxNDU3MzY3LCAwLjk5Mjg3MDk4NjQ2MTYzOTQsIDAuMDk0NjMxOTk5NzMxMDYzODQsCisgICAgICAgIDAuNzA3MjUyMDI1NjA0MjQ4LCAwLjcwNjgzOTAyNTAyMDU5OTQsIDAuMDA0Mzc5OTk5ODIzODY4Mjc1LCAwLjcwNDQ3Mzk3MjMyMDU1NjYsIDAuNzA0NDczOTcyMzIwNTU2NiwgMCwKKyAgICAgICAgMC43MDA2NzkwMDQxOTIzNTIzLCAwLjcwMDY3OTAwNDE5MjM1MjMsIDAsIDAuNjk5OTkzMDE0MzM1NjMyMywgMC42OTk5OTMwMTQzMzU2MzIzLCAwLAorICAgICAgICAwLjY4NDc4MjAyODE5ODI0MjIsIDAuNzE5MjMxMDA5NDgzMzM3NCwgLTAuMDMxNjc5OTk5MDgzMjgwNTYsIDAuOTIzOTQ2OTc2NjYxNjgyMSwgMC4zODIyODg5OTI0MDQ5Mzc3NCwgMC4wMDQ0MzAwMDAyMDQ1OTI5NDMsCisgICAgICAgIDAuOTIwNDczOTkyODI0NTU0NCwgMC4zODEwMTUwMDI3Mjc1MDg1NCwgMC4wMDAwMzg5OTk5OTg2NTA5NzkyNSwgMC45MTU0ODgwMDQ2ODQ0NDgyLCAwLjM3ODc3MTk5MDUzNzY0MzQzLCAtMC4wMDAwODM5OTk5OTkzMzMxNzMwNCwKKyAgICAgICAgMC45MTQ1NzQ5ODA3MzU3Nzg4LCAwLjM3ODM4Nzk4NzYxMzY3OCwgLTAuMDAwMDk5OTk5OTk3NDczNzg3NTIsIDAuOTA3ODc2MDE0NzA5NDcyNywgMC40MDIxNjE5ODU2MzU3NTc0NSwgLTAuMDMyMDYyOTk5OTA0MTU1NzMsCisgICAgICAgIDAuOTk5OTEzOTkwNDk3NTg5MSwgMC4wMDA4NjYwMDAwMTY2ODU1NzUyLCAtMC4wMTMwNDg5OTk5NDI4MzkxNDYsIDAuOTk2MzIyOTg5NDYzODA2MiwgMC4wMzczMTI5OTkzNjc3MTM5MywgLTAuMDc3MTIzOTk5NTk1NjQyMDksCisgICAgICAgIDAuOTkxMDA2MDE2NzMxMjYyMiwgMC4wOTE1MTEwMDM2NzMwNzY2MywgLTAuMDk3NjMyOTk2NzM3OTU3LCAwLjk5MDA0NTAxMTA0MzU0ODYsIDAuMTAxMzQ2MDAxMDI5MDE0NTksIC0wLjA5NzY3NjAwMTQ4OTE2MjQ1LAorICAgICAgICAwLjk5Mjg3MDk4NjQ2MTYzOTQsIDAuMDcyNDY2MDAwOTE0NTczNjcsIC0wLjA5NDYzMTk5OTczMTA2Mzg0LCAwLjk5OTkxMzk5MDQ5NzU4OTEsIC0wLjAwMDg2NjAwMDAxNjY4NTU3NTIsIDAuMDEzMDQ4OTk5OTQyODM5MTQ2LAorICAgICAgICAwLjkyMzcyMjk4MjQwNjYxNjIsIC0wLjM4MjgzMTk5MDcxODg0MTU1LCAwLjAwNDM5OTk5OTk3NjE1ODE0MiwgMC45MjA0NzM5OTI4MjQ1NTQ0LCAtMC4zODEwMTUwMDI3Mjc1MDg1NCwgLTAuMDAwMDM4OTk5OTk4NjUwOTc5MjUsCisgICAgICAgIDAuOTk2MzIyOTg5NDYzODA2MiwgLTAuMDM3MzEyOTk5MzY3NzEzOTMsIDAuMDc3MTIzOTk5NTk1NjQyMDksIDAuOTE1NDg4MDA0Njg0NDQ4MiwgLTAuMzc4NzcxOTkwNTM3NjQzNDMsIDAuMDAwMDgzOTk5OTk5MzMzMTczMDQsCisgICAgICAgIDAuOTkxMDA2MDE2NzMxMjYyMiwgLTAuMDkxNTExMDAzNjczMDc2NjMsIDAuMDk3NjMyOTk2NzM3OTU3LCAwLjkxNDU3NDk4MDczNTc3ODgsIC0wLjM3ODM4Nzk4NzYxMzY3OCwgMC4wMDAwOTk5OTk5OTc0NzM3ODc1MiwKKyAgICAgICAgMC45OTAwNDUwMTEwNDM1NDg2LCAtMC4xMDEzNDYwMDEwMjkwMTQ1OSwgMC4wOTc2NzYwMDE0ODkxNjI0NSwgMC45MjY2NTEwMDA5NzY1NjI1LCAtMC4zNTY3OTU5OTY0Mjc1MzYsIC0wLjAzMTg4MTk5OTIyNDQyNDM2LAorICAgICAgICAwLjk5Mjg3MDk4NjQ2MTYzOTQsIC0wLjA3MjQ2NjAwMDkxNDU3MzY3LCAwLjA5NDYzMTk5OTczMTA2Mzg0LCAwLjcwNjgzOTAyNTAyMDU5OTQsIC0wLjcwNzI1MjAyNTYwNDI0OCwgMC4wMDQzNzk5OTk4MjM4NjgyNzUsCisgICAgICAgIDAuNzA0NDczOTcyMzIwNTU2NiwgLTAuNzA0NDczOTcyMzIwNTU2NiwgMCwgMC43MDA2NzkwMDQxOTIzNTIzLCAtMC43MDA2NzkwMDQxOTIzNTIzLCAwLAorICAgICAgICAwLjY5OTk5MzAxNDMzNTYzMjMsIC0wLjY5OTk5MzAxNDMzNTYzMjMsIDAsIDAuNzE5MjMxMDA5NDgzMzM3NCwgLTAuNjg0NzgyMDI4MTk4MjQyMiwgLTAuMDMxNjc5OTk5MDgzMjgwNTYsCisgICAgICAgIDAuMzgyMjg4OTkyNDA0OTM3NzQsIC0wLjkyMzk0Njk3NjY2MTY4MjEsIDAuMDA0NDMwMDAwMjA0NTkyOTQzLCAwLjM4MTAxNTAwMjcyNzUwODU0LCAtMC45MjA0NzM5OTI4MjQ1NTQ0LCAwLjAwMDAzODk5OTk5ODY1MDk3OTI1LAorICAgICAgICAwLjM3ODc3MTk5MDUzNzY0MzQzLCAtMC45MTU0ODgwMDQ2ODQ0NDgyLCAtMC4wMDAwODM5OTk5OTkzMzMxNzMwNCwgMC4zNzgzODc5ODc2MTM2NzgsIC0wLjkxNDU3NDk4MDczNTc3ODgsIC0wLjAwMDA5OTk5OTk5NzQ3Mzc4NzUyLAorICAgICAgICAwLjQwMjE2MTk4NTYzNTc1NzQ1LCAtMC45MDc4NzYwMTQ3MDk0NzI3LCAtMC4wMzIwNjI5OTk5MDQxNTU3MywgMC4wMDA4NjYwMDAwMTY2ODU1NzUyLCAtMC45OTk5MTM5OTA0OTc1ODkxLCAtMC4wMTMwNDg5OTk5NDI4MzkxNDYsCisgICAgICAgIDAuMDM3MzEyOTk5MzY3NzEzOTMsIC0wLjk5NjMyMjk4OTQ2MzgwNjIsIC0wLjA3NzEyMzk5OTU5NTY0MjA5LCAwLjA5MTUxMTAwMzY3MzA3NjYzLCAtMC45OTEwMDYwMTY3MzEyNjIyLCAtMC4wOTc2MzI5OTY3Mzc5NTcsCisgICAgICAgIDAuMTAxMzQ2MDAxMDI5MDE0NTksIC0wLjk5MDA0NTAxMTA0MzU0ODYsIC0wLjA5NzY3NjAwMTQ4OTE2MjQ1LCAwLjA3MjQ2NjAwMDkxNDU3MzY3LCAtMC45OTI4NzA5ODY0NjE2Mzk0LCAtMC4wOTQ2MzE5OTk3MzEwNjM4NCwKKyAgICAgICAgLTAuMDAwODY2MDAwMDE2Njg1NTc1MiwgLTAuOTk5OTEzOTkwNDk3NTg5MSwgMC4wMTMwNDg5OTk5NDI4MzkxNDYsIC0wLjM4MjgzMTk5MDcxODg0MTU1LCAtMC45MjM3MjI5ODI0MDY2MTYyLCAwLjAwNDM5OTk5OTk3NjE1ODE0MiwKKyAgICAgICAgLTAuMzgxMDE1MDAyNzI3NTA4NTQsIC0wLjkyMDQ3Mzk5MjgyNDU1NDQsIC0wLjAwMDAzODk5OTk5ODY1MDk3OTI1LCAtMC4wMzczMTI5OTkzNjc3MTM5MywgLTAuOTk2MzIyOTg5NDYzODA2MiwgMC4wNzcxMjM5OTk1OTU2NDIwOSwKKyAgICAgICAgLTAuMzc4NzcxOTkwNTM3NjQzNDMsIC0wLjkxNTQ4ODAwNDY4NDQ0ODIsIDAuMDAwMDgzOTk5OTk5MzMzMTczMDQsIC0wLjA5MTUxMTAwMzY3MzA3NjYzLCAtMC45OTEwMDYwMTY3MzEyNjIyLCAwLjA5NzYzMjk5NjczNzk1NywKKyAgICAgICAgLTAuMzc4Mzg3OTg3NjEzNjc4LCAtMC45MTQ1NzQ5ODA3MzU3Nzg4LCAwLjAwMDA5OTk5OTk5NzQ3Mzc4NzUyLCAtMC4xMDEzNDYwMDEwMjkwMTQ1OSwgLTAuOTkwMDQ1MDExMDQzNTQ4NiwgMC4wOTc2NzYwMDE0ODkxNjI0NSwKKyAgICAgICAgLTAuMzU2Nzk1OTk2NDI3NTM2LCAtMC45MjY2NTEwMDA5NzY1NjI1LCAtMC4wMzE4ODE5OTkyMjQ0MjQzNiwgLTAuMDcyNDY2MDAwOTE0NTczNjcsIC0wLjk5Mjg3MDk4NjQ2MTYzOTQsIDAuMDk0NjMxOTk5NzMxMDYzODQsCisgICAgICAgIC0wLjcwNzI1MjAyNTYwNDI0OCwgLTAuNzA2ODM5MDI1MDIwNTk5NCwgMC4wMDQzNzk5OTk4MjM4NjgyNzUsIC0wLjcwNDQ3Mzk3MjMyMDU1NjYsIC0wLjcwNDQ3Mzk3MjMyMDU1NjYsIDAsCisgICAgICAgIC0wLjcwMDY3OTAwNDE5MjM1MjMsIC0wLjcwMDY3OTAwNDE5MjM1MjMsIDAsIC0wLjY5OTk5MzAxNDMzNTYzMjMsIC0wLjY5OTk5MzAxNDMzNTYzMjMsIDAsCisgICAgICAgIC0wLjY4NDc4MjAyODE5ODI0MjIsIC0wLjcxOTIzMTAwOTQ4MzMzNzQsIC0wLjAzMTY3OTk5OTA4MzI4MDU2LCAtMC45MjM5NDY5NzY2NjE2ODIxLCAtMC4zODIyODg5OTI0MDQ5Mzc3NCwgMC4wMDQ0MzAwMDAyMDQ1OTI5NDMsCisgICAgICAgIC0wLjkyMDQ3Mzk5MjgyNDU1NDQsIC0wLjM4MTAxNTAwMjcyNzUwODU0LCAwLjAwMDAzODk5OTk5ODY1MDk3OTI1LCAtMC45MTU0ODgwMDQ2ODQ0NDgyLCAtMC4zNzg3NzE5OTA1Mzc2NDM0MywgLTAuMDAwMDgzOTk5OTk5MzMzMTczMDQsCisgICAgICAgIC0wLjkxNDU3NDk4MDczNTc3ODgsIC0wLjM3ODM4Nzk4NzYxMzY3OCwgLTAuMDAwMDk5OTk5OTk3NDczNzg3NTIsIC0wLjkwNzg3NjAxNDcwOTQ3MjcsIC0wLjQwMjE2MTk4NTYzNTc1NzQ1LCAtMC4wMzIwNjI5OTk5MDQxNTU3MywKKyAgICAgICAgLTAuOTk5OTEzOTkwNDk3NTg5MSwgLTAuMDAwODY2MDAwMDE2Njg1NTc1MiwgLTAuMDEzMDQ4OTk5OTQyODM5MTQ2LCAtMC45OTYzMjI5ODk0NjM4MDYyLCAtMC4wMzczMTI5OTkzNjc3MTM5MywgLTAuMDc3MTIzOTk5NTk1NjQyMDksCisgICAgICAgIC0wLjk5MTAwNjAxNjczMTI2MjIsIC0wLjA5MTUxMTAwMzY3MzA3NjYzLCAtMC4wOTc2MzI5OTY3Mzc5NTcsIC0wLjk5MDA0NTAxMTA0MzU0ODYsIC0wLjEwMTM0NjAwMTAyOTAxNDU5LCAtMC4wOTc2NzYwMDE0ODkxNjI0NSwKKyAgICAgICAgLTAuOTkyODcwOTg2NDYxNjM5NCwgLTAuMDcyNDY2MDAwOTE0NTczNjcsIC0wLjA5NDYzMTk5OTczMTA2Mzg0LCAtMC45OTk5MTM5OTA0OTc1ODkxLCAwLjAwMDg2NjAwMDAxNjY4NTU3NTIsIDAuMDEzMDQ4OTk5OTQyODM5MTQ2LAorICAgICAgICAtMC45MjM3MjI5ODI0MDY2MTYyLCAwLjM4MjgzMTk5MDcxODg0MTU1LCAwLjAwNDM5OTk5OTk3NjE1ODE0MiwgLTAuOTIwNDczOTkyODI0NTU0NCwgMC4zODEwMTUwMDI3Mjc1MDg1NCwgLTAuMDAwMDM4OTk5OTk4NjUwOTc5MjUsCisgICAgICAgIC0wLjk5NjMyMjk4OTQ2MzgwNjIsIDAuMDM3MzEyOTk5MzY3NzEzOTMsIDAuMDc3MTIzOTk5NTk1NjQyMDksIC0wLjkxNTQ4ODAwNDY4NDQ0ODIsIDAuMzc4NzcxOTkwNTM3NjQzNDMsIDAuMDAwMDgzOTk5OTk5MzMzMTczMDQsCisgICAgICAgIC0wLjk5MTAwNjAxNjczMTI2MjIsIDAuMDkxNTExMDAzNjczMDc2NjMsIDAuMDk3NjMyOTk2NzM3OTU3LCAtMC45MTQ1NzQ5ODA3MzU3Nzg4LCAwLjM3ODM4Nzk4NzYxMzY3OCwgMC4wMDAwOTk5OTk5OTc0NzM3ODc1MiwKKyAgICAgICAgLTAuOTkwMDQ1MDExMDQzNTQ4NiwgMC4xMDEzNDYwMDEwMjkwMTQ1OSwgMC4wOTc2NzYwMDE0ODkxNjI0NSwgLTAuOTI2NjUxMDAwOTc2NTYyNSwgMC4zNTY3OTU5OTY0Mjc1MzYsIC0wLjAzMTg4MTk5OTIyNDQyNDM2LAorICAgICAgICAtMC45OTI4NzA5ODY0NjE2Mzk0LCAwLjA3MjQ2NjAwMDkxNDU3MzY3LCAwLjA5NDYzMTk5OTczMTA2Mzg0LCAtMC43MDY4MzkwMjUwMjA1OTk0LCAwLjcwNzI1MjAyNTYwNDI0OCwgMC4wMDQzNzk5OTk4MjM4NjgyNzUsCisgICAgICAgIC0wLjcwNDQ3Mzk3MjMyMDU1NjYsIDAuNzA0NDczOTcyMzIwNTU2NiwgMCwgLTAuNzAwNjc5MDA0MTkyMzUyMywgMC43MDA2NzkwMDQxOTIzNTIzLCAwLAorICAgICAgICAtMC42OTk5OTMwMTQzMzU2MzIzLCAwLjY5OTk5MzAxNDMzNTYzMjMsIDAsIC0wLjcxOTIzMTAwOTQ4MzMzNzQsIDAuNjg0NzgyMDI4MTk4MjQyMiwgLTAuMDMxNjc5OTk5MDgzMjgwNTYsCisgICAgICAgIC0wLjM4MjI4ODk5MjQwNDkzNzc0LCAwLjkyMzk0Njk3NjY2MTY4MjEsIDAuMDA0NDMwMDAwMjA0NTkyOTQzLCAtMC4zODEwMTUwMDI3Mjc1MDg1NCwgMC45MjA0NzM5OTI4MjQ1NTQ0LCAwLjAwMDAzODk5OTk5ODY1MDk3OTI1LAorICAgICAgICAtMC4zNzg3NzE5OTA1Mzc2NDM0MywgMC45MTU0ODgwMDQ2ODQ0NDgyLCAtMC4wMDAwODM5OTk5OTkzMzMxNzMwNCwgLTAuMzc4Mzg3OTg3NjEzNjc4LCAwLjkxNDU3NDk4MDczNTc3ODgsIC0wLjAwMDA5OTk5OTk5NzQ3Mzc4NzUyLAorICAgICAgICAtMC40MDIxNjE5ODU2MzU3NTc0NSwgMC45MDc4NzYwMTQ3MDk0NzI3LCAtMC4wMzIwNjI5OTk5MDQxNTU3MywgLTAuMDAwODY2MDAwMDE2Njg1NTc1MiwgMC45OTk5MTM5OTA0OTc1ODkxLCAtMC4wMTMwNDg5OTk5NDI4MzkxNDYsCisgICAgICAgIC0wLjAzNzMxMjk5OTM2NzcxMzkzLCAwLjk5NjMyMjk4OTQ2MzgwNjIsIC0wLjA3NzEyMzk5OTU5NTY0MjA5LCAtMC4wOTE1MTEwMDM2NzMwNzY2MywgMC45OTEwMDYwMTY3MzEyNjIyLCAtMC4wOTc2MzI5OTY3Mzc5NTcsCisgICAgICAgIC0wLjEwMTM0NjAwMTAyOTAxNDU5LCAwLjk5MDA0NTAxMTA0MzU0ODYsIC0wLjA5NzY3NjAwMTQ4OTE2MjQ1LCAtMC4wNzI0NjYwMDA5MTQ1NzM2NywgMC45OTI4NzA5ODY0NjE2Mzk0LCAtMC4wOTQ2MzE5OTk3MzEwNjM4NCwKKyAgICAgICAgMC4wNzI0NjYwMDA5MTQ1NzM2NywgMC45OTI4NzA5ODY0NjE2Mzk0LCAwLjA5NDYzMTk5OTczMTA2Mzg0LCAwLjQwMjE2MTk4NTYzNTc1NzQ1LCAwLjkwNzg3NjAxNDcwOTQ3MjcsIDAuMDMyMDYyOTk5OTA0MTU1NzMsCisgICAgICAgIDAuMzc3NjY3OTkzMzA3MTEzNjUsIDAuOTEyOTU4MDI1OTMyMzEyLCAwLjAwMDE4MDk5OTk5NTc5MTM1MzI5LCAwLjExOTE5MzAwMjU4MTU5NjM3LCAwLjk4ODMwMTk5MjQxNjM4MTgsIDAuMDk1MTQ1MDAyMDA3NDg0NDQsCisgICAgICAgIDAuMzc1MTYwMDA4NjY4ODk5NTQsIDAuOTA2NjA3OTg1NDk2NTIxLCAwLjAwMDE2Nzk5OTk5ODY2NjM0NjA3LCAwLjE4NzczMzk5MjkzNDIyNywgMC45ODE2MzgwMTQzMTY1NTg4LCAwLjAzMzgxOTAwMTE2ODAxMjYyLAorICAgICAgICAwLjI4MjM0MzAwMDE3MzU2ODcsIDAuNzY3NTQ5OTkxNjA3NjY2LCAtMC4xNjgyMjUwMDUyNjkwNTA2LCAwLjEyODgzMzk5NDI2OTM3MTAzLCAwLjY1NDA2OTAwNjQ0MzAyMzcsIC0wLjMyNjk4NjAxNDg0Mjk4NzA2LAorICAgICAgICAwLjA2NDU3MDAwMjI1NzgyMzk0LCAwLjMyNzAxOTAwNjAxMzg3MDI0LCAtMC42NjY2NjY5ODQ1NTgxMDU1LCAwLCAwLCAtMSwKKyAgICAgICAgMC43MTkyMzIwMjI3NjIyOTg2LCAwLjY4NDc4MjAyODE5ODI0MjIsIDAuMDMxNjc5OTk5MDgzMjgwNTYsIDAuNjk4NzYzMDEyODg2MDQ3NCwgMC42OTg3NjMwMTI4ODYwNDc0LCAwLAorICAgICAgICAwLjY5NDAzNDk5MzY0ODUyOSwgMC42OTQwMzQ5OTM2NDg1MjksIDAsIDAuNTU1MTk5MDI3MDYxNDYyNCwgMC42MDA4OTYwMDA4NjIxMjE2LCAtMC4xNjgyNTMwMDQ1NTA5MzM4NCwKKyAgICAgICAgMC4xODU0MDMwMDQyODg2NzM0LCAwLjI3NzAxMzk4NzMwMjc4MDE1LCAtMC42NjY2NjY5ODQ1NTgxMDU1LCAwLjkyNjY0OTk4NzY5NzYwMTMsIDAuMzU2Nzk1MDEyOTUwODk3MiwgMC4wMzE4ODE5OTkyMjQ0MjQzNiwKKyAgICAgICAgMC45MTI5NTgwMjU5MzIzMTIsIDAuMzc3NjY3OTkzMzA3MTEzNjUsIC0wLjAwMDE4MDk5OTk5NTc5MTM1MzI5LCAwLjkwNjYwNzk4NTQ5NjUyMSwgMC4zNzUxNjAwMDg2Njg4OTk1NCwgLTAuMDAwMTY3OTk5OTk4NjY2MzQ2MDcsCisgICAgICAgIDAuNzQyNjA1OTg0MjEwOTY4LCAwLjM0MjYxNTk5MTgzMDgyNTgsIC0wLjE2ODMxODAwMzQxNjA2MTQsIDAuMjc3MDEzOTg3MzAyNzgwMTUsIDAuMTg1NDAzMDA0Mjg4NjczNCwgLTAuNjY2NjY2OTg0NTU4MTA1NSwKKyAgICAgICAgMC45OTI4NzA5ODY0NjE2Mzk0LCAwLjA3MjQ2NjAwMDkxNDU3MzY3LCAtMC4wOTQ2MzE5OTk3MzEwNjM4NCwgMC45ODgzMDE5OTI0MTYzODE4LCAwLjExOTE5MzAwMjU4MTU5NjM3LCAtMC4wOTUxNDUwMDIwMDc0ODQ0NCwKKyAgICAgICAgMC45ODE2MzcwMDEwMzc1OTc3LCAwLjE4NzczMzk5MjkzNDIyNywgLTAuMDMzODE5MDAxMTY4MDEyNjIsIDAuOTgxMTAzMDAzMDI1MDU0OSwgMC4xOTMyNTE5OTcyMzI0MzcxMywgLTAuMDA5NTE5OTk5ODQ2ODE2MDYzLAorICAgICAgICAwLjQ5MDUyOTAwMDc1OTEyNDc2LCAwLjA5Njg1NTk5ODAzOTI0NTYsIC0wLjUsIDAuOTkyODcwOTg2NDYxNjM5NCwgLTAuMDcyNDY2MDAwOTE0NTczNjcsIDAuMDk0NjMxOTk5NzMxMDYzODQsCisgICAgICAgIDAuOTA3ODc2MDE0NzA5NDcyNywgLTAuNDAyMTYxOTg1NjM1NzU3NDUsIDAuMDMyMDYyOTk5OTA0MTU1NzMsIDAuOTEyOTU4MDI1OTMyMzEyLCAtMC4zNzc2Njc5OTMzMDcxMTM2NSwgMC4wMDAxODA5OTk5OTU3OTEzNTMyOSwKKyAgICAgICAgMC45ODgzMDE5OTI0MTYzODE4LCAtMC4xMTkxOTMwMDI1ODE1OTYzNywgMC4wOTUxNDUwMDIwMDc0ODQ0NCwgMC45MDY2MDc5ODU0OTY1MjEsIC0wLjM3NTE2MDAwODY2ODg5OTU0LCAwLjAwMDE2Nzk5OTk5ODY2NjM0NjA3LAorICAgICAgICAwLjk4MTYzODAxNDMxNjU1ODgsIC0wLjE4NzczMzk5MjkzNDIyNywgMC4wMzM4MTkwMDExNjgwMTI2MiwgMC43Njc1NDk5OTE2MDc2NjYsIC0wLjI4MjM0MzAwMDE3MzU2ODcsIC0wLjE2ODIyNTAwNTI2OTA1MDYsCisgICAgICAgIDAuNjU0MDY5MDA2NDQzMDIzNywgLTAuMTI4ODMzOTk0MjY5MzcxMDMsIC0wLjMyNjk4NjAxNDg0Mjk4NzA2LCAwLjMyNzAxOTAwNjAxMzg3MDI0LCAtMC4wNjQ1NzAwMDIyNTc4MjM5NCwgLTAuNjY2NjY2OTg0NTU4MTA1NSwKKyAgICAgICAgMCwgMCwgLTEsIDAuNjg0NzgyMDI4MTk4MjQyMiwgLTAuNzE5MjMyMDIyNzYyMjk4NiwgMC4wMzE2Nzk5OTkwODMyODA1NiwKKyAgICAgICAgMC42OTg3NjMwMTI4ODYwNDc0LCAtMC42OTg3NjMwMTI4ODYwNDc0LCAwLCAwLjY5NDAzNDk5MzY0ODUyOSwgLTAuNjk0MDM0OTkzNjQ4NTI5LCAwLAorICAgICAgICAwLjYwMDg5NjAwMDg2MjEyMTYsIC0wLjU1NTE5OTAyNzA2MTQ2MjQsIC0wLjE2ODI1MzAwNDU1MDkzMzg0LCAwLjI3NzAxMzk4NzMwMjc4MDE1LCAtMC4xODU0MDMwMDQyODg2NzM0LCAtMC42NjY2NjY5ODQ1NTgxMDU1LAorICAgICAgICAwLjM1Njc5NTAxMjk1MDg5NzIsIC0wLjkyNjY0OTk4NzY5NzYwMTMsIDAuMDMxODgxOTk5MjI0NDI0MzYsIDAuMzc3NjY3OTkzMzA3MTEzNjUsIC0wLjkxMjk1ODAyNTkzMjMxMiwgLTAuMDAwMTgwOTk5OTk1NzkxMzUzMjksCisgICAgICAgIDAuMzc1MTYwMDA4NjY4ODk5NTQsIC0wLjkwNjYwNzk4NTQ5NjUyMSwgLTAuMDAwMTY3OTk5OTk4NjY2MzQ2MDcsIDAuMzQyNjE1OTkxODMwODI1OCwgLTAuNzQyNjA1OTg0MjEwOTY4LCAtMC4xNjgzMTgwMDM0MTYwNjE0LAorICAgICAgICAwLjE4NTQwMzAwNDI4ODY3MzQsIC0wLjI3NzAxMzk4NzMwMjc4MDE1LCAtMC42NjY2NjY5ODQ1NTgxMDU1LCAwLjA3MjQ2NjAwMDkxNDU3MzY3LCAtMC45OTI4NzA5ODY0NjE2Mzk0LCAtMC4wOTQ2MzE5OTk3MzEwNjM4NCwKKyAgICAgICAgMC4xMTkxOTMwMDI1ODE1OTYzNywgLTAuOTg4MzAxOTkyNDE2MzgxOCwgLTAuMDk1MTQ1MDAyMDA3NDg0NDQsIDAuMTg3NzMzOTkyOTM0MjI3LCAtMC45ODE2MzcwMDEwMzc1OTc3LCAtMC4wMzM4MTkwMDExNjgwMTI2MiwKKyAgICAgICAgMC4xOTMyNTE5OTcyMzI0MzcxMywgLTAuOTgxMTAzMDAzMDI1MDU0OSwgLTAuMDA5NTE5OTk5ODQ2ODE2MDYzLCAwLjA5Njg1NTk5ODAzOTI0NTYsIC0wLjQ5MDUyOTAwMDc1OTEyNDc2LCAtMC41LAorICAgICAgICAtMC4wNzI0NjYwMDA5MTQ1NzM2NywgLTAuOTkyODcwOTg2NDYxNjM5NCwgMC4wOTQ2MzE5OTk3MzEwNjM4NCwgLTAuNDAyMTYxOTg1NjM1NzU3NDUsIC0wLjkwNzg3NjAxNDcwOTQ3MjcsIDAuMDMyMDYyOTk5OTA0MTU1NzMsCisgICAgICAgIC0wLjM3NzY2Nzk5MzMwNzExMzY1LCAtMC45MTI5NTgwMjU5MzIzMTIsIDAuMDAwMTgwOTk5OTk1NzkxMzUzMjksIC0wLjExOTE5MzAwMjU4MTU5NjM3LCAtMC45ODgzMDE5OTI0MTYzODE4LCAwLjA5NTE0NTAwMjAwNzQ4NDQ0LAorICAgICAgICAtMC4zNzUxNjAwMDg2Njg4OTk1NCwgLTAuOTA2NjA3OTg1NDk2NTIxLCAwLjAwMDE2Nzk5OTk5ODY2NjM0NjA3LCAtMC4xODc3MzM5OTI5MzQyMjcsIC0wLjk4MTYzODAxNDMxNjU1ODgsIDAuMDMzODE5MDAxMTY4MDEyNjIsCisgICAgICAgIC0wLjI4MjM0MzAwMDE3MzU2ODcsIC0wLjc2NzU0OTk5MTYwNzY2NiwgLTAuMTY4MjI1MDA1MjY5MDUwNiwgLTAuMTI4ODMzOTk0MjY5MzcxMDMsIC0wLjY1NDA2OTAwNjQ0MzAyMzcsIC0wLjMyNjk4NjAxNDg0Mjk4NzA2LAorICAgICAgICAtMC4wNjQ1NzAwMDIyNTc4MjM5NCwgLTAuMzI3MDE5MDA2MDEzODcwMjQsIC0wLjY2NjY2Njk4NDU1ODEwNTUsIDAsIDAsIC0xLAorICAgICAgICAtMC43MTkyMzIwMjI3NjIyOTg2LCAtMC42ODQ3ODIwMjgxOTgyNDIyLCAwLjAzMTY3OTk5OTA4MzI4MDU2LCAtMC42OTg3NjMwMTI4ODYwNDc0LCAtMC42OTg3NjMwMTI4ODYwNDc0LCAwLAorICAgICAgICAtMC42OTQwMzQ5OTM2NDg1MjksIC0wLjY5NDAzNDk5MzY0ODUyOSwgMCwgLTAuNTU1MTk5MDI3MDYxNDYyNCwgLTAuNjAwODk2MDAwODYyMTIxNiwgLTAuMTY4MjUzMDA0NTUwOTMzODQsCisgICAgICAgIC0wLjE4NTQwMzAwNDI4ODY3MzQsIC0wLjI3NzAxMzk4NzMwMjc4MDE1LCAtMC42NjY2NjY5ODQ1NTgxMDU1LCAtMC45MjY2NDk5ODc2OTc2MDEzLCAtMC4zNTY3OTUwMTI5NTA4OTcyLCAwLjAzMTg4MTk5OTIyNDQyNDM2LAorICAgICAgICAtMC45MTI5NTgwMjU5MzIzMTIsIC0wLjM3NzY2Nzk5MzMwNzExMzY1LCAtMC4wMDAxODA5OTk5OTU3OTEzNTMyOSwgLTAuOTA2NjA3OTg1NDk2NTIxLCAtMC4zNzUxNjAwMDg2Njg4OTk1NCwgLTAuMDAwMTY3OTk5OTk4NjY2MzQ2MDcsCisgICAgICAgIC0wLjc0MjYwNTk4NDIxMDk2OCwgLTAuMzQyNjE1OTkxODMwODI1OCwgLTAuMTY4MzE4MDAzNDE2MDYxNCwgLTAuMjc3MDEzOTg3MzAyNzgwMTUsIC0wLjE4NTQwMzAwNDI4ODY3MzQsIC0wLjY2NjY2Njk4NDU1ODEwNTUsCisgICAgICAgIC0wLjk5Mjg3MDk4NjQ2MTYzOTQsIC0wLjA3MjQ2NjAwMDkxNDU3MzY3LCAtMC4wOTQ2MzE5OTk3MzEwNjM4NCwgLTAuOTg4MzAxOTkyNDE2MzgxOCwgLTAuMTE5MTkzMDAyNTgxNTk2MzcsIC0wLjA5NTE0NTAwMjAwNzQ4NDQ0LAorICAgICAgICAtMC45ODE2MzcwMDEwMzc1OTc3LCAtMC4xODc3MzM5OTI5MzQyMjcsIC0wLjAzMzgxOTAwMTE2ODAxMjYyLCAtMC45ODExMDMwMDMwMjUwNTQ5LCAtMC4xOTMyNTE5OTcyMzI0MzcxMywgLTAuMDA5NTE5OTk5ODQ2ODE2MDYzLAorICAgICAgICAtMC40OTA1MjkwMDA3NTkxMjQ3NiwgLTAuMDk2ODU1OTk4MDM5MjQ1NiwgLTAuNSwgLTAuOTkyODcwOTg2NDYxNjM5NCwgMC4wNzI0NjYwMDA5MTQ1NzM2NywgMC4wOTQ2MzE5OTk3MzEwNjM4NCwKKyAgICAgICAgLTAuOTA3ODc2MDE0NzA5NDcyNywgMC40MDIxNjE5ODU2MzU3NTc0NSwgMC4wMzIwNjI5OTk5MDQxNTU3MywgLTAuOTEyOTU4MDI1OTMyMzEyLCAwLjM3NzY2Nzk5MzMwNzExMzY1LCAwLjAwMDE4MDk5OTk5NTc5MTM1MzI5LAorICAgICAgICAtMC45ODgzMDE5OTI0MTYzODE4LCAwLjExOTE5MzAwMjU4MTU5NjM3LCAwLjA5NTE0NTAwMjAwNzQ4NDQ0LCAtMC45MDY2MDc5ODU0OTY1MjEsIDAuMzc1MTYwMDA4NjY4ODk5NTQsIDAuMDAwMTY3OTk5OTk4NjY2MzQ2MDcsCisgICAgICAgIC0wLjk4MTYzODAxNDMxNjU1ODgsIDAuMTg3NzMzOTkyOTM0MjI3LCAwLjAzMzgxOTAwMTE2ODAxMjYyLCAtMC43Njc1NDk5OTE2MDc2NjYsIDAuMjgyMzQzMDAwMTczNTY4NywgLTAuMTY4MjI1MDA1MjY5MDUwNiwKKyAgICAgICAgLTAuNjU0MDY5MDA2NDQzMDIzNywgMC4xMjg4MzM5OTQyNjkzNzEwMywgLTAuMzI2OTg2MDE0ODQyOTg3MDYsIC0wLjMyNzAxOTAwNjAxMzg3MDI0LCAwLjA2NDU3MDAwMjI1NzgyMzk0LCAtMC42NjY2NjY5ODQ1NTgxMDU1LAorICAgICAgICAwLCAwLCAtMSwgLTAuNjg0NzgyMDI4MTk4MjQyMiwgMC43MTkyMzIwMjI3NjIyOTg2LCAwLjAzMTY3OTk5OTA4MzI4MDU2LAorICAgICAgICAtMC42OTg3NjMwMTI4ODYwNDc0LCAwLjY5ODc2MzAxMjg4NjA0NzQsIDAsIC0wLjY5NDAzNDk5MzY0ODUyOSwgMC42OTQwMzQ5OTM2NDg1MjksIDAsCisgICAgICAgIC0wLjYwMDg5NjAwMDg2MjEyMTYsIDAuNTU1MTk5MDI3MDYxNDYyNCwgLTAuMTY4MjUzMDA0NTUwOTMzODQsIC0wLjI3NzAxMzk4NzMwMjc4MDE1LCAwLjE4NTQwMzAwNDI4ODY3MzQsIC0wLjY2NjY2Njk4NDU1ODEwNTUsCisgICAgICAgIC0wLjM1Njc5NTAxMjk1MDg5NzIsIDAuOTI2NjQ5OTg3Njk3NjAxMywgMC4wMzE4ODE5OTkyMjQ0MjQzNiwgLTAuMzc3NjY3OTkzMzA3MTEzNjUsIDAuOTEyOTU4MDI1OTMyMzEyLCAtMC4wMDAxODA5OTk5OTU3OTEzNTMyOSwKKyAgICAgICAgLTAuMzc1MTYwMDA4NjY4ODk5NTQsIDAuOTA2NjA3OTg1NDk2NTIxLCAtMC4wMDAxNjc5OTk5OTg2NjYzNDYwNywgLTAuMzQyNjE1OTkxODMwODI1OCwgMC43NDI2MDU5ODQyMTA5NjgsIC0wLjE2ODMxODAwMzQxNjA2MTQsCisgICAgICAgIC0wLjE4NTQwMzAwNDI4ODY3MzQsIDAuMjc3MDEzOTg3MzAyNzgwMTUsIC0wLjY2NjY2Njk4NDU1ODEwNTUsIC0wLjA3MjQ2NjAwMDkxNDU3MzY3LCAwLjk5Mjg3MDk4NjQ2MTYzOTQsIC0wLjA5NDYzMTk5OTczMTA2Mzg0LAorICAgICAgICAtMC4xMTkxOTMwMDI1ODE1OTYzNywgMC45ODgzMDE5OTI0MTYzODE4LCAtMC4wOTUxNDUwMDIwMDc0ODQ0NCwgLTAuMTg3NzMzOTkyOTM0MjI3LCAwLjk4MTYzNzAwMTAzNzU5NzcsIC0wLjAzMzgxOTAwMTE2ODAxMjYyLAorICAgICAgICAtMC4xOTMyNTE5OTcyMzI0MzcxMywgMC45ODExMDMwMDMwMjUwNTQ5LCAtMC4wMDk1MTk5OTk4NDY4MTYwNjMsIC0wLjA5Njg1NTk5ODAzOTI0NTYsIDAuNDkwNTI5MDAwNzU5MTI0NzYsIC0wLjUsCisgICAgICAgIC0wLjAwNjU5Nzk5OTk0OTAwODIyNiwgMC45OTYxNjgwMTczODczOTAxLCAwLjAwMDE2MzAwMDAwNDI0OTYyNDksIC0wLjA0MzkwNzk5OTk5MjM3MDYwNSwgMC43NzkxMjU5ODg0ODM0MjksIC0wLjU1OTM2NTk4Nzc3NzcxLAorICAgICAgICAwLjIzMjg3ODk5NzkyMTk0MzY2LCAwLjc5MjcxMDAwNjIzNzAzLCAtMC41MDY1MzQ5OTM2NDg1MjksIDAuMTExMzk5MDAyMzczMjE4NTQsIDAuOTkyMzMyOTk0OTM3ODk2NywgMC4wMDUzNDQ5OTk5NTQxMDQ0MjM1LAorICAgICAgICAwLjQ1MjE5MjAwODQ5NTMzMDgsIDAuNzM3MDk4OTkxODcwODgwMSwgLTAuNDIxODAyMDE0MTEyNDcyNTMsIDAuMTc3OTc3OTk0MDg0MzU4MjIsIDAuOTgyNzk3MDI2NjM0MjE2MywgMC4wMzY4NDEwMDEzNjE2MDg1MDUsCisgICAgICAgIDAuNjA3NTM3OTg0ODQ4MDIyNSwgMC43MDY2ODY5NzM1NzE3NzczLCAtMC4yNzA3OTc5OTc3MTMwODksIDAuMTE4OTQ2OTk5MzExNDQ3MTQsIDAuOTg2NDgyOTc3ODY3MTI2NSwgMC4xMDUxNzc5OTg1NDI3ODU2NCwKKyAgICAgICAgMC42NTgzNzE5ODQ5NTg2NDg3LCAwLjc0Mzg0NzAxMjUxOTgzNjQsIC0wLjA2NzI3NTAwMjU5ODc2MjUxLCAwLjAwMTA2Mjk5OTk0NTEzMzkyNDUsIDAuOTk4OTE1OTcwMzI1NDcsIDAuMDQ2NTM0MDAxODI3MjM5OTksCisgICAgICAgIC0wLjE2MjI5OTAwNzE3NzM1MjksIC0wLjE0ODY5NTAwNjk2NjU5MDg4LCAtMC45MDY5NTY5NzA2OTE2ODA5LCAwLjMwMjAxNTk5MDAxODg0NDYsIC0wLjAxNDMwMTAwMDE2Mjk1OTA5OSwgLTAuODg0NzExOTgwODE5NzAyMSwKKyAgICAgICAgMC43MDQ4NjQwMjUxMTU5NjY4LCAtMC4wNDI1MTQ5OTg0NjU3NzY0NDMsIC0wLjY3ODgwMjAxMzM5NzIxNjgsIDAuODk0ODUxOTgyNTkzNTM2NCwgLTAuMTEwNzgwMDAwNjg2NjQ1NTEsIC0wLjM4ODI0NTk5OTgxMzA3OTgzLAorICAgICAgICAwLjk2MjI5MjAxNTU1MjUyMDgsIC0wLjA5MzY3OTAwMzQxNzQ5MTkxLCAtMC4xNDM0OTYwMDY3MjcyMTg2MywgLTAuMTI1MTE5MDAwNjczMjk0MDcsIC0wLjg0NzkwNDk4MDE4MjY0NzcsIC0wLjQ3ODMzNDk5MzEyNDAwODIsCisgICAgICAgIDAuMTEzMTU0MDAxNTMzOTg1MTQsIC0wLjgxNTM2Njk4MzQxMzY5NjMsIC0wLjUxNjcxNjAwMzQxNzk2ODgsIDAuMzk1NjMxOTk4Nzc3Mzg5NSwgLTAuNzkxMDAxOTc1NTM2MzQ2NCwgLTAuNDM0NTI3MDA5NzI1NTcwNywKKyAgICAgICAgMC41MjQ0NjA5NzEzNTU0MzgyLCAtMC44MDEyMzI5OTM2MDI3NTI3LCAtMC4yNjQzODI5ODgyMTQ0OTI4LCAwLjU3MTQ2NTAxNTQxMTM3NywgLTAuNzkwMjE2MDI4NjkwMzM4MSwgLTAuMTIzMzI4MDAwMzA3MDgzMTMsCisgICAgICAgIC0wLjA5NDM1NjAwMDQyMzQzMTQsIC0wLjk5NTUzNzk5NjI5MjExNDMsIC0wLjAwMTA5ODk5OTk4NjQyNTA0MjIsIDAuMDEyMDQwOTk5NzE4MDEwNDI2LCAtMC45OTY1NTAwMjM1NTU3NTU2LCAwLAorICAgICAgICAwLjA5NTAxNDk5NjgyNjY0ODcxLCAtMC45OTM2OTY5ODc2Mjg5MzY4LCAwLjAyNDQwNTAwMDczMTM0ODk5LCAwLjAzNzM3NDk5OTM3NDE1MTIzLCAtMC45OTc4MDg5OTI4NjI3MDE0LCAwLjAzNTkwOTk5OTE2MTk1ODY5NCwKKyAgICAgICAgLTAuMDAwODgwMDAwMDA2ODczMTYwNiwgLTAuOTk3MzUzMDE3MzMwMTY5NywgLTAuMDQwMzExOTk5NjE5MDA3MTEsIDAuMDA3MTY0MDAwMDY3ODU5ODg4LCAtMC45OTYxNjQ5Nzc1NTA1MDY2LCAtMC4wMDAwMjcwMDAwMDAwNDU1MTgzOSwKKyAgICAgICAgMC4wNDM5ODgwMDA2MDE1MzAwNzUsIC0wLjgzMzAzMDk5ODcwNjgxNzYsIDAuNDY5MTMyOTg5NjQ1MDA0MywgLTAuMjMzNDI3MDAzMDI2MDA4NiwgLTAuNzk4MzE4OTgyMTI0MzI4NiwgMC40OTg0MDM5OTYyMjkxNzE3NSwKKyAgICAgICAgLTAuMTA3MzczOTk3NTY5MDg0MTcsIC0wLjk5Mjc1NDk5NTgyMjkwNjUsIC0wLjAwNzAyOTk5OTk3ODg0MDM1MSwgLTAuNDUxNDc0OTk0NDIxMDA1MjUsIC0wLjc1NzYyOTk5MDU3NzY5NzgsIDAuMzkzNzUwMDExOTIwOTI4OTYsCisgICAgICAgIC0wLjE1MzY0Mzk5NTUyMzQ1Mjc2LCAtMC45ODYzMTYwMjUyNTcxMTA2LCAtMC4wNDgyOTQ5OTg3MDUzODcxMTUsIC0wLjU1NzU2MDAyNjY0NTY2MDQsIC0wLjc3NTMyMTAwNjc3NDkwMjMsIDAuMjAwMTc0MDAzODM5NDkyOCwKKyAgICAgICAgLTAuMDcyNDI5OTk5NzA5MTI5MzMsIC0wLjk5MjMwMzAxMzgwMTU3NDcsIC0wLjA4ODQ1OTk5ODM2OTIxNjkyLCAtMC41ODc3MDE5NzYyOTkyODU5LCAtMC44MDQxOTMwMTk4NjY5NDM0LCAwLjA0NzY4NTk5OTQyMzI2NTQ2LAorICAgICAgICAwLjAwMDU4MzAwMDAxNTQ2NzQwNTMsIC0wLjk5OTc5NDAwNjM0NzY1NjIsIC0wLjAyMDMwMTk5OTUyNDIzNTcyNSwgMC4xMzY2MzcwMDIyMjk2OTA1NSwgLTAuMTQ2NjU3MDA0OTUyNDMwNzMsIDAuODk2NjE0MDE1MTAyMzg2NSwKKyAgICAgICAgLTAuMzA0NTM4OTk1MDI3NTQyMSwgLTAuMDEyMjM3OTk5NTg4MjUxMTE0LCAwLjg4MzMxODAwNjk5MjM0MDEsIC0wLjcwMjAyODk4OTc5MTg3MDEsIC0wLjAzMzk4Nzk5ODk2MjQwMjM0NCwgMC42NzI0NzMwMTM0MDEwMzE1LAorICAgICAgICAtMC44ODkwMzMwMTk1NDI2OTQxLCAtMC4wOTYzNjc5OTk5MTEzMDgyOSwgMC4zNzYwNTM5ODg5MzM1NjMyMywgLTAuOTY2ODA5OTg4MDIxODUwNiwgLTAuMDg2MDE4MDAzNTIzMzQ5NzYsIDAuMTM1ODQxOTk1NDc3Njc2NCwKKyAgICAgICAgMC4xMjAyMjQ5OTc0MDEyMzc0OSwgMC43OTE4NTU5OTA4ODY2ODgyLCAwLjU2OTMxNDAwMjk5MDcyMjcsIC0wLjExMzEzNTAwMjU1MzQ2Mjk4LCAwLjgxMTE3ODAyODU4MzUyNjYsIDAuNTIzNjYxMDE3NDE3OTA3NywKKyAgICAgICAgLTAuMzk3OTA2OTg4ODU5MTc2NjQsIDAuNzczNDQxOTcwMzQ4MzU4MiwgMC40NTg1MzI5ODkwMjUxMTU5NywgLTAuNTc5MzM5MDI3NDA0Nzg1MiwgMC43MzQ2NDkwMDI1NTIwMzI1LCAwLjMyOTczNzk5MTA5NDU4OTIzLAorICAgICAgICAtMC42NDQ3NDk5OTkwNDYzMjU3LCAwLjczNDA0MTk4ODg0OTYzOTksIDAuMTI0NTkyOTk3MTMzNzMxODQsIDAuMDkzNzg3OTk3OTYxMDQ0MzEsIDAuOTk1NTkxOTk4MTAwMjgwOCwgMC4wMDA5NDQwMDAwMjg1Mzk0NDksCisgICAgICAgIC0wLjAxNjA3OTk5OTUwNjQ3MzU0LCAwLjk5NjQ4Nzk3NTEyMDU0NDQsIDAuMDAwMzU2MDAwMDA0MTAzNDA3MjYsIC0wLjExOTMzMjAwMDYxMzIxMjU5LCAwLjk5MTIxOTk5NzQwNjAwNTksIC0wLjAxNzM3Mjk5OTM0MDI5NTc5LAorICAgICAgICAtMC4wODYxODI5OTY2MzA2Njg2NCwgMC45OTQwMDgwMDQ2NjUzNzQ4LCAtMC4wNTM1OTg5OTk5NzcxMTE4MTYsIC0wLjAwNDExMDk5OTg3MTA0NTM1MSwgMC45OTgwMjI5NzM1Mzc0NDUxLCAwLjAxNTcwMzAwMDEyODI2OTE5NiwKKyAgICAgICAgMC4wMTAxNDIwMDAzOTIwNzkzNTMsIDAuOTkzMzg3OTk3MTUwNDIxMSwgMC4xMDAzNDQwMDIyNDY4NTY2OSwgMC42NTk3ODkwMjU3ODM1Mzg4LCAwLjcxMTQ0ODAxMzc4MjUwMTIsIDAuMTI5NjQwOTk2NDU2MTQ2MjQsCisgICAgICAgIDAuNTYzNDIzOTkxMjAzMzA4MSwgMC43NTk0MDAwMTAxMDg5NDc4LCAwLjI4OTkwMjAwMTYxOTMzOSwgLTAuMDIxMjI3MDAwMjgxMjE0NzE0LCAwLjk5NzY5MzAwMjIyMzk2ODUsIDAuMDUxODkwOTk5MDc4NzUwNjEsCisgICAgICAgIDAuMzk3MjU1OTg2OTI4OTM5OCwgMC43NzA5NjcwMDY2ODMzNDk2LCAwLjQ1ODcyNzAwMjE0Mzg1OTg2LCAtMC4wNTA1NDYwMDE2NDI5NDI0MywgMC45OTU3NjY5OTczMzczNDEzLCAwLjA2MDg2OTAwMDg1MjEwOCwKKyAgICAgICAgMC4xMTgwNTE5OTgzMTcyNDE2NywgMC43NjExNjE5ODMwMTMxNTMxLCAwLjU2OTI4MDAyODM0MzIwMDcsIC0wLjExNDE0NjAwMTYzNjk4MTk2LCAwLjk4NjkzNTk3MzE2NzQxOTQsIDAuMDg4NjI5OTk4MjY2Njk2OTMsCisgICAgICAgIC0wLjAwMTI4NzAwMDAyMDk2NTkzMzgsIDAuNzE5NTM4OTg2NjgyODkxOCwgMC42MjkzODIwMTQyNzQ1OTcyLCAtMC4xODk3MTIwMDI4NzM0MjA3MiwgMC45NzUyODIwMTM0MTYyOTAzLCAwLjExMzI4NzAwMTg0ODIyMDgzLAorICAgICAgICAwLjk2ODU5Njk5NDg3Njg2MTYsIC0wLjA4OTY2MjAwMDUzNjkxODY0LCAwLjEzMzMxMTAwMzQ0NjU3ODk4LCAwLjg5MDIxNDAyNTk3NDI3MzcsIC0wLjA1MTk2MTk5OTM4NjU0ODk5NiwgMC4zOTMyMzEwMDQ0NzY1NDcyNCwKKyAgICAgICAgMC42NzI4MjgwMTg2NjUzMTM3LCAtMC4wNTAzMjQ5OTg3OTU5ODYxNzYsIDAuNjk2NTA2OTc3MDgxMjk4OCwgMC4yNTEzMzIwMTQ3OTkxMTgwNCwgLTAuMDQzMDY5MDAxMjg3MjIxOTEsIDAuOTE2OTcxOTgxNTI1NDIxMSwKKyAgICAgICAgLTAuMTk4MTM3MDAwMjAzMTMyNjMsIC0wLjI1MTI4Nzk5Njc2ODk1MTQsIDAuOTA0NjkwOTgwOTExMjU0OSwgMC41OTM3NzE5OTQxMTM5MjIxLCAtMC44MDI0NjY5ODg1NjM1Mzc2LCAwLjAzMzA3Nzk5OTk0OTQ1NTI2LAorICAgICAgICAwLjU1NzEyNDk3MjM0MzQ0NDgsIC0wLjc5MDc0NTk3MzU4NzAzNjEsIDAuMjAyMjA4OTk1ODE5MDkxOCwgMC40MzEzNTEwMDYwMzEwMzY0LCAtMC44MDgzMTE5OTg4NDQxNDY3LCAwLjM3OTk2MDAwMDUxNDk4NDEzLAorICAgICAgICAwLjE5Mzk1NjAwMjU5MzA0MDQ3LCAtMC44MTk3Nzk5OTIxMDM1NzY3LCAwLjUxMzMxMTk4MjE1NDg0NjIsIC0wLjE1MTcyMTk5OTA0OTE4NjcsIC0wLjgwODQ5MzAxODE1MDMyOTYsIDAuNTA1NTgyOTg4MjYyMTc2NSwKKyAgICAgICAgMC4wMDM1MjAwMDAwMjc0OTI2NDI0LCAtMC45OTk3OTQwMDYzNDc2NTYyLCAwLjAxOTk3OTAwMDA5MTU1MjczNCwgMC4wMTE1OTU5OTk4MjIwMjA1MywgLTAuOTk4MTM2OTk3MjIyOTAwNCwgLTAuMDIzMjYxOTk5NzExMzk0MzEsCisgICAgICAgIDAuMDEzMTA5OTk5NzA4ODMxMzEsIC0wLjk5ODg5NzAxNjA0ODQzMTQsIC0wLjAwODQ4MDk5OTYxODc2ODY5MiwgLTAuMDI0ODU0MDAwNjU3Nzk2ODYsIC0wLjk5Nzg4MDk5NTI3MzU5MDEsIDAuMDIxMjYzOTk5ODY0NDU5MDM4LAorICAgICAgICAtMC4xMTMzNTM5OTc0Njg5NDgzNiwgLTAuOTg4MTk3MDI4NjM2OTMyNCwgMC4wNjQ0MTE5OTc3OTUxMDQ5OCwgLTAuMDAzNTQ1OTk5OTkyNjM4ODI2NCwgLTAuOTk1NDE2OTk4ODYzMjIwMiwgLTAuMDc2ODI1OTk4NzIzNTA2OTMsCisgICAgICAgIC0wLjU4MTY4Njk3MzU3MTc3NzMsIC0wLjc3NjA5MDAyNTkwMTc5NDQsIC0wLjEzOTU3NTAwNDU3NzYzNjcyLCAtMC41MjYwNzY5NzI0ODQ1ODg2LCAtMC43OTA3ODkwMDgxNDA1NjQsIC0wLjI3ODE5NjAwNzAxMzMyMDksCisgICAgICAgIDAuMDE3Mjg4OTk5NjMyMDAwOTIzLCAtMC45OTgzNjk5OTE3NzkzMjc0LCAtMC4wMzcyODAwMDA3NDYyNTAxNSwgLTAuMzY4MDA3OTg3NzM3NjU1NjQsIC0wLjc5ODI4OTAwMDk4ODAwNjYsIC0wLjQ0MDU0OTk5OTQ3NTQ3OTEsCisgICAgICAgIDAuMDM3NDMxMDAxNjYzMjA4MDEsIC0wLjk5NzM1MjAwNDA1MTIwODUsIC0wLjAzNjQwMDk5OTg3Mzg3NjU3LCAtMC4wOTYzNjg5OTgyODkxMDgyOCwgLTAuNzgyOTEzOTgyODY4MTk0NiwgLTAuNTUwMDQ1MDEzNDI3NzM0NCwKKyAgICAgICAgMC4xMDQyNjMwMDAxOTAyNTgwMywgLTAuOTg5NDk0OTc5MzgxNTYxMywgLTAuMDY3NDY5MDAwODE2MzQ1MjEsIDAuMTAwODMzOTk3MTMwMzkzOTgsIC0wLjgxNjEzMjAwOTAyOTM4ODQsIC0wLjQ4MTEyNDAxMzY2MjMzODI2LAorICAgICAgICAwLjE4NTEwMjk5OTIxMDM1NzY3LCAtMC45Nzc2NDcwMDY1MTE2ODgyLCAtMC4wOTk3MTEwMDA5MTkzNDIwNCwgLTAuOTYxNTA0OTk1ODIyOTA2NSwgLTAuMDgyMDMzOTk5MjY0MjQwMjYsIC0wLjE0OTU4MTk5ODU4NjY1NDY2LAorICAgICAgICAtMC44ODc2Nzg5ODA4MjczMzE1LCAtMC4wNDYyMjUwMDAxNzI4NTM0NywgLTAuMzk5NTU4OTkxMTkzNzcxMzYsIC0wLjY2NzU1ODAxNDM5Mjg1MjgsIC0wLjAzNzIzOTk5ODU3OTAyNTI3LCAtMC43MDA3NTYwMTMzOTM0MDIxLAorICAgICAgICAtMC4yNDU1MTE5OTM3NjU4MzEsIC0wLjAzMjE2MTk5OTQ5MzgzNzM2LCAtMC45MTUxOTIwMDgwMTg0OTM3LCAwLjE1NDc3MTk5ODUyNDY2NTgzLCAtMC4yNDkyOTQ5OTYyNjE1OTY2OCwgLTAuODk3NTY5MDAwNzIwOTc3OCwKKyAgICAgICAgLTAuNjcwMDcyOTcyNzc0NTA1NiwgMC43NDAyMjUwMTcwNzA3NzAzLCAtMC4wMTk0MjQ5OTkxMzI3NTI0MiwgLTAuNTkyMzQ2MDEyNTkyMzE1NywgMC43NjI0ODMwMDA3NTUzMTAxLCAtMC4yMTU2NjkwMDYxMDkyMzc2NywKKyAgICAgICAgLTAuNDU2MTE5MDAwOTExNzEyNjUsIDAuNzg2ODMxMDIxMzA4ODk4OSwgLTAuMzk5MDY0MDA0NDIxMjM0MTMsIC0wLjIxMDAxOTAwNzMyNTE3MjQyLCAwLjgwMzE0MjAxMTE2NTYxODksIC0wLjUzMzMwMjAwOTEwNTY4MjQsCisgICAgICAgIDAuMDUxMTk5OTk4NzA2NTc5MjEsIDAuNzA5NjkwOTg4MDYzODEyMywgLTAuNjU5MTY5OTcxOTQyOTAxNiwgLTAuMDE0MTc1OTk5OTA5NjM5MzU5LCAwLjk5ODkyNDAxNjk1MjUxNDYsIC0wLjA0NDE2MDAwMDk3OTkwMDM2LAorICAgICAgICAtMC4wMDY1NDQ5OTk3NzgyNzA3MjE0LCAwLjk5ODM4Njk3OTEwMzA4ODQsIDAuMDA4ODEzOTk5NTkzMjU3OTA0LCAwLjAwMjM5NjAwMDA4MzUzNTkwOTcsIDAuOTk4OTI1OTgzOTA1NzkyMiwgLTAuMDE2NzExMDAwMzUzMDk3OTE2LAorICAgICAgICAwLjAzODEzMDAwMDIzMzY1MDIxLCAwLjk5NjkyNDk5NjM3NjAzNzYsIC0wLjA0MTcxNTk5ODIwMjU2MjMzLCAwLjExNzQ0OTAwMDQ3Nzc5MDgzLCAwLjk4NjY3MDk3MDkxNjc0OCwgLTAuMDc5OTg5MDAxMTU0ODk5NiwKKyAgICAgICAgLTAuMDIwNzI3OTk5NTA4MzgwODksIC0wLjk5Nzk2MzAxMTI2NDgwMSwgMC4wMDE3NzQwMDAwMDM5MzM5MDY2LCAwLjEwMjM2NDAwMzY1ODI5NDY4LCAtMC42OTU2ODQwMTU3NTA4ODUsIC0wLjY5NjE3NDAyNTUzNTU4MzUsCisgICAgICAgIDAuMjgxNzQ5OTkzNTYyNjk4MzYsIC0wLjcwNjU0Mzk4MjAyODk2MTIsIC0wLjYzNzkyNjk5NTc1NDI0MTksIC0wLjAyNzcxMzk5OTE1MjE4MzUzMywgLTAuOTk4Mzk1OTc5NDA0NDQ5NSwgLTAuMDE2Mzk1MDAwNzQwODg1NzM1LAorICAgICAgICAwLjQ2MjE0Njk5NzQ1MTc4MjIsIC0wLjc1MDE3ODk5Mjc0ODI2MDUsIC0wLjQzNzY1MTk5MTg0NDE3NzI1LCAtMC4wMTQ5NDI5OTk5MjkxODk2ODIsIC0wLjk5NjAwMjAxODQ1MTY5MDcsIC0wLjA0NzUxMTAwMDE4NjIwNDkxLAorICAgICAgICAwLjYxMjE3OTk5NDU4MzEyOTksIC0wLjczNTU4NTk4NzU2NzkwMTYsIC0wLjE2NTg3MTk5MjcwNzI1MjUsIDAuMDgyMDA1OTk5OTgyMzU3MDMsIC0wLjk4MzM0MDk3ODYyMjQzNjUsIDAuMTExMDIzOTk5NzUwNjE0MTcsCisgICAgICAgIDAuNzIzMjQxOTg0ODQ0MjA3OCwgLTAuNjAxMjkxMDAwODQzMDQ4MSwgLTAuMTQ1OTU4MDA2MzgxOTg4NTMsIDAuMzIyMzgwOTg5Nzg5OTYyNzcsIC0wLjkwMzYzNjk5MTk3NzY5MTcsIDAuMjgxOTc2OTk3ODUyMzI1NDQsCisgICAgICAgIDAuMTE4ODk2MDAwMDg3MjYxMiwgMC4wOTY2MTE5OTg5NzUyNzY5NSwgLTAuOTY5MjI2MDAyNjkzMTc2MywgMC4zMjMwMjQwMDQ2OTc3OTk3LCAwLjA2NzkxOTAwMDk4MzIzODIyLCAtMC45MDY5MjY5ODk1NTUzNTg5LAorICAgICAgICAwLjYyODc4MTAyMDY0MTMyNjksIDAuMDA5NjI4OTk5OTc4MzAzOTEsIC0wLjcxMTA5NzAwMjAyOTQxOSwgMC44OTUyNDY5ODI1NzQ0NjI5LCAtMC4wNjAxNjk5OTg1NTYzNzU1MDQsIC0wLjMzNjY5Nzk5NTY2MjY4OTIsCisgICAgICAgIDAuOTY4OTIxMDA1NzI1ODYwNiwgLTAuMDQ1MDg4MDAwNTk1NTY5NjEsIC0wLjEzMDk1ODAwNTc4NTk0MjA4LCAwLjA2NTAwMjAwMTgyMTk5NDc4LCAwLjc3MDg2ODAwMzM2ODM3NzcsIC0wLjYwODM1MDk5MjIwMjc1ODgsCisgICAgICAgIDAuMTgxNjUyOTkyOTYzNzkwOSwgMC43NDU3MDY5NzU0NjAwNTI1LCAtMC41OTM5OTU5ODgzNjg5ODgsIDAuMzc2MDA0MDEwNDM4OTE5MDcsIDAuNzQ2Nzk0OTk4NjQ1NzgyNSwgLTAuNDc3Njg3MDAxMjI4MzMyNSwKKyAgICAgICAgMC42Mjg4ODQ5NzExNDE4MTUyLCAwLjcwMjA5Njk5ODY5MTU1ODgsIC0wLjI3MTYwNzAxMTU1NjYyNTM3LCAwLjgyMzAwMTAyNzEwNzIzODgsIDAuNTI5NTM3MDIyMTEzOCwgLTAuMDk0NTAzOTk4NzU2NDA4NjksCisgICAgICAgIC0wLjEyODIwMDk5Mjk0MTg1NjM4LCAwLjk4OTk4MDk5NTY1NTA1OTgsIC0wLjA1OTE3OTk5ODkzNDI2ODk1LCAtMC4xMTA5NzYwMDMxMTA0MDg3OCwgMC45ODcyNTA5ODM3MTUwNTc0LCAtMC4wOTkzNzQwMDM3MDgzNjI1OCwKKyAgICAgICAgLTAuMDY3NjcyOTk3NzEzMDg4OTksIDAuOTg2NTY4OTg3MzY5NTM3NCwgLTAuMTQyNzIwOTk3MzMzNTI2NiwgLTAuMDAwMzM0OTk5OTg5NzE4MTk4OCwgMC45OTY3NDIwMTAxMTY1NzcxLCAwLjAyNTQ0Mzk5OTA5Njc1MTIxMywKKyAgICAgICAgMC4yOTAxOTA5OTQ3Mzk1MzI0NywgMC45MjQzNTA5NzY5NDM5Njk3LCAwLjE5NTcyMzk5NTU2NjM2ODEsIDAuMDcyOTQ5OTk4MDgwNzMwNDQsIDAuOTk0OTA0OTk0OTY0NTk5NiwgMC4wMzE0NzkwMDEwNDUyMjcwNSwKKyAgICAgICAgLTAuMDQ5NDgzMDAxMjMyMTQ3MjIsIDAuNzY5NTA5MDE3NDY3NDk4OCwgMC42MTYzODcwMDk2MjA2NjY1LCAtMC4yNDE5MzQwMDE0NDU3NzAyNiwgMC43NzUwMjE5NzAyNzIwNjQyLCAwLjU2NzkzMzAyMjk3NTkyMTYsCisgICAgICAgIDAuMDU2MjAzOTk4NjI1Mjc4NDcsIDAuOTk1OTQ4OTcwMzE3ODQwNiwgMC4wNTIxNDMwMDAwNjYyODAzNjUsIC0wLjQyOTQzOTk5MTcxMjU3MDIsIDAuNzc5MzIxMDE0ODgxMTM0LCAwLjQxNjE1NTAxMDQ2MTgwNzI1LAorICAgICAgICAwLjAyMzg4Nzk5OTM1NTc5MywgMC45OTQzOTQwMDQzNDQ5NDAyLCAwLjA3NTUzODAwMTk1NDU1NTUxLCAtMC42NjU1OTEwMDE1MTA2MjAxLCAwLjY5Mzk1MjAyMzk4MzAwMTcsIDAuMjAxMDY0MDA1NDk0MTE3NzQsCisgICAgICAgIC0wLjA5Njc4Nzk5NjU5MDEzNzQ4LCAwLjk3OTE1ODk5NzUzNTcwNTYsIC0wLjEyODY5MDAwNDM0ODc1NDg4LCAtMC43NzE2NzMwMjM3MDA3MTQxLCAwLjU0NDM3Mjk3NTgyNjI2MzQsIDAuMTc5MzUzOTk3MTExMzIwNSwKKyAgICAgICAgLTAuNDE3ODM2OTkzOTMyNzI0LCAwLjg3MjE3NTk5MTUzNTE4NjgsIC0wLjI1NDQwMjk5NTEwOTU1ODEsIC0wLjA5NDk5NDk5OTQ2ODMyNjU3LCAwLjA4OTM0NTAwMDY4NDI2MTMyLCAwLjk3ODc4ODk3MTkwMDkzOTksCisgICAgICAgIC0wLjMyOTk4ODAwMjc3NzA5OTYsIDAuMDY3MDE5MDAwNjQ5NDUyMjEsIDAuOTI3MzUyMDExMjAzNzY1OSwgLTAuNjUxMTI1MDEzODI4Mjc3NiwgMC4wMjM1MjM5OTkzNzgwODUxMzYsIDAuNzI4MDcxOTg3NjI4OTM2OCwKKyAgICAgICAgLTAuOTExNjc1OTg5NjI3ODM4MSwgLTAuMDMzMjYzOTk5OTY4NzY3MTY2LCAwLjM0MTYyNTk4ODQ4MzQyODk2LCAtMC45ODk2MzMwMjM3Mzg4NjExLCAtMC4wMTM0OTYwMDAzMTk3MTkzMTUsIDAuMDc4MzQwOTk5NzgyMDg1NDIsCisgICAgICAgIC0wLjA3MDQ0MTAwMDE2MzU1NTE1LCAtMC42OTU0NzQwMjg1ODczNDEzLCAwLjcwODAxNDAxMTM4MzA1NjYsIC0wLjIxOTY5NjAwMDIxODM5MTQyLCAtMC42OTU5ODAwMTI0MTY4Mzk2LCAwLjY2NDIzMjAxNTYwOTc0MTIsCisgICAgICAgIC0wLjQwNzUwMTAxMjA4Njg2ODMsIC0wLjczNzA1ODk5NzE1NDIzNTgsIDAuNTA0Nzc4OTgxMjA4ODAxMywgLTAuNTg2NjAzOTk5MTM3ODc4NCwgLTAuNzQ3MzAzMDA5MDMzMjAzMSwgMC4yNDYzNjI5OTkwODE2MTE2MywKKyAgICAgICAgLTAuNzk5MDM2OTc5Njc1MjkzLCAtMC41NjE3MzkwMjc1MDAxNTI2LCAwLjA1Nzk0NjAwMDI0ODE5Mzc0LCAwLjA3NjA1Mzk5OTM2NDM3NjA3LCAtMC45OTY3OTcwMjUyMDM3MDQ4LCAwLjAyNDcyMjAwMDU4NDAwNjMxLAorICAgICAgICAwLjA4NzU2MzAwMDYxOTQxMTQ3LCAtMC45OTI2OTgwMTM3ODI1MDEyLCAwLjA1OTI5ODk5OTYwNzU2MzAyLCAwLjA3MjUwNzk5OTgzNzM5ODUzLCAtMC45OTAxNzkwMDIyODUwMDM3LCAwLjExMTIyMDAwMjE3NDM3NzQ0LAorICAgICAgICAwLjAxNTU1NjAwMDE3MzA5MTg4OCwgLTAuOTk3MDI2MDI2MjQ4OTMxOSwgLTAuMDExMjM1OTk5ODc0NzcwNjQxLCAtMC4xOTQ4MTQ5OTQ5MzEyMjEsIC0wLjk0Mzk0MDk5NzEyMzcxODMsIC0wLjIyMTI3NTAwMTc2NDI5NzQ5LAorICAgICAgICAwLjM0MTczMTAxMTg2NzUyMzIsIC0wLjg4OTY4NTk4ODQyNjIwODUsIDAuMzAxMjMwOTk2ODQ3MTUyNywgMC44Mzc1MDA5ODk0MzcxMDMzLCAtMC40OTMxOTEwMDM3OTk0Mzg1LCAwLjA1NzM5Mjk5OTUyOTgzODU2LAorICAgICAgICAwLjgyNzMwMjk5MjM0MzkwMjYsIC0wLjQ2ODQ2MTk5MDM1NjQ0NTMsIC0wLjA1NTM5MDk5ODcyMTEyMjc0LCAwLjUzMTEzMDAxNTg1MDA2NzEsIC0wLjgxMjE5MTAwOTUyMTQ4NDQsIDAuMjQwMjYzMDAwMTMwNjUzMzgsCisgICAgICAgIDAuODA2OTk1OTg3ODkyMTUwOSwgLTAuNDc2ODkzMDA3NzU1Mjc5NTQsIDAuMDAyNjM4MDAwMDYzNTk4MTU2LCAwLjY0NDc0MzAyNTMwMjg4NywgLTAuNzY0MjIxMDEyNTkyMzE1NywgLTAuMDE1NDU1MDAwMTAyNTE5OTg5LAorICAgICAgICAwLjg4NTY4MDAxOTg1NTQ5OTMsIC0wLjQ0NjQ1MzAwNTA3NTQ1NDcsIDAuMDQ3NDg4MDAwMjQzOTAyMjA2LCAtMC4wMTE1MzYwMDAyOTY0NzM1MDMsIC0wLjk5OTg0NTAyNzkyMzU4NCwgLTAuMDAwODczMDAwMDExNzc5MzY3OSwKKyAgICAgICAgMC43NTk3ODMwMjk1NTYyNzQ0LCAtMC42MjI5NTk5NzE0Mjc5MTc1LCAwLjAyNjYzNjAwMDcyMjY0NjcxMywgMC4zMjEyNDUwMTQ2Njc1MTEsIC0wLjg4NTUwMDAxMzgyODI3NzYsIDAuMzM1Njk2MDExNzgxNjkyNSwKKyAgICAgICAgMC45OTgwOTE5OTU3MTYwOTUsIC0wLjAwNTY3MzAwMDEyMzM1MTgxMiwgMC4wMjUyNjIwMDAwMzkyMTk4NTYsIDAuOTk0MTUzMDIyNzY2MTEzMywgMC4wNDY5MDQ5OTk3NjI3NzM1MTQsIC0wLjAwOTUxNTk5OTgxNjM1ODA5LAorICAgICAgICAwLjk4Mzg1OTAwMjU5MDE3OTQsIC0wLjAwMDQxNzAwMDAwMjkyNjIxNTUzLCAwLjAxMDU3MjAwMDQwNjY4MjQ5MSwgMC45OTA1NTYwMDE2NjMyMDgsIDAuMDE4ODY1MDAwNDU2NTcxNTgsIDAuMDQ0MjIyMDAwOTg2MzM3NjYsCisgICAgICAgIDAuOTkyMTk5MDAzNjk2NDQxNywgLTAuMTIyOTA1OTk5NDIyMDczMzYsIDAuMDExMjAyMDAwMDgxNTM5MTU0LCAwLjgyODAwMDAwOTA1OTkwNiwgMC41MjU4MTY5NzcwMjQwNzg0LCAtMC4wODQ2MTAwMDAyNTI3MjM3LAorICAgICAgICAwLjg3MDQ4Mzk5NDQ4Mzk0NzgsIDAuNDg3ODA3OTg5MTIwNDgzNCwgMC4wMDYzNTU5OTk5Njg5NDU5OCwgMC43NzczOTM5OTY3MTU1NDU3LCAwLjU2NTk2NzAyMzM3MjY1MDEsIC0wLjA5NjM0Njk5NjcyNDYwNTU2LAorICAgICAgICAwLjgxOTA1ODAwMTA0MTQxMjQsIDAuNDc0MDM4MDA0ODc1MTgzMSwgMC4wMTE5MDQwMDAzMDQ2MzkzNCwgMC45MDE3NTkwMjg0MzQ3NTM0LCAwLjM0ODY0MzAwNDg5NDI1NjYsIC0wLjA1NjAxNDAwMTM2OTQ3NjMyLAorICAgICAgICAwLjQxMDM4NTk5NjEwMzI4Njc0LCAwLjg3MDYwMjAxMTY4MDYwMywgMC4yNzEzNTgwMTMxNTMwNzYxNywgMC4zMDE5MzIwMDcwNzQzNTYxLCAwLjg4OTc2ODAwNDQxNzQxOTQsIDAuMzQxMDE5MDA0NTgzMzU4NzYsCisgICAgICAgIDAuMTM5MTIyOTkyNzUzOTgyNTQsIDAuOTQyMzM5MDAzMDg2MDkwMSwgLTAuMzA0MjEyMDAzOTQ2MzA0MywgMC42MTY3MzA5ODgwMjU2NjUzLCAwLjc2OTI4NDAwOTkzMzQ3MTcsIDAuMTY2NzY1MDA0Mzk2NDM4NiwKKyAgICAgICAgMC41NTU4MzUwMDg2MjEyMTU4LCAwLjgwMTA3NDk4MTY4OTQ1MzEsIDAuMjE4Njc3OTk3NTg5MTExMzMsIC0wLjQ0MTAwMjk5NDc3NTc3MjEsIDAuODU1NTM5OTc3NTUwNTA2NiwgLTAuMjY5MzE1OTg3ODI1MzkzNywKKyAgICAgICAgLTAuODYzOTY5MDI3OTk2MDYzMiwgMC40NjQzNTYwMDUxOTE4MDMsIC0wLjAxOTIyMjAwMDYxMzgwODYzMiwgLTAuODcwNTcxMDE3MjY1MzE5OCwgMC40ODU1NDc5ODk2MDY4NTczLCAtMC4wMDU2MjM5OTk5ODMwNzIyODEsCisgICAgICAgIC0wLjMzOTY5MzAwOTg1MzM2MzA0LCAwLjg3NjI3Nzk4MzE4ODYyOTIsIC0wLjM0MDk3Mjk4OTc5NzU5MjE2LCAtMC43NjA4MjA5ODQ4NDAzOTMxLCAwLjU4NDAyNjk5MjMyMTAxNDQsIDAuMTEyMzY1OTk4MzI3NzMyMDksCisgICAgICAgIC0wLjE2NzYzMjk5NzAzNTk4MDIyLCAwLjk0MTk0Mjk4OTgyNjIwMjQsIDAuMjkwOTE1OTk1ODM2MjU3OTMsIC0wLjgyNjA2Mzk5MDU5Mjk1NjUsIDAuNDczMDQ5OTk4MjgzMzg2MjMsIC0wLjAxMzQ2OTk5OTY1NjA4MTIsCisgICAgICAgIC0wLjYwMDYyODAxODM3OTIxMTQsIDAuNzgyMjk3MDE1MTkwMTI0NSwgLTAuMTYxMTQyMDA2NTE2NDU2NiwgLTAuODQ5NTg3MDIzMjU4MjA5MiwgMC40NDQwNzc5OTgzOTk3MzQ1LCAwLjE3NDE3NzAwNTg4NzAzMTU2LAorICAgICAgICAtMC41MjUxNDQ5OTQyNTg4ODA2LCAwLjgyMzYzNDAyODQzNDc1MzQsIC0wLjIxNDEyMzk5NDExMjAxNDc3LCAtMC45OTkxNDgwMTEyMDc1ODA2LCAwLjAwMTc1MTk5OTk1MjgzMDM3NDIsIDAuMDA3ODkwMDAwMDA4MDQ2NjI3LAorICAgICAgICAtMC45OTQ2NTc5OTMzMTY2NTA0LCAwLjA2MTI5NDAwMDU5NTgwODAzLCAwLjAwNzc5Njk5OTk5ODM5MDY3NSwgLTAuOTg0MDkxOTk3MTQ2NjA2NCwgMC4wMDg3MzI5OTk2NzQ5NzU4NzIsIC0wLjAwMDEyODk5OTk5MjczOTQwOTIsCisgICAgICAgIC0wLjk5MTYwNTk5NzA4NTU3MTMsIDAuMDE1MjA3MDAwMDc2NzcwNzgyLCAtMC4wNDc5ODY5OTkxNTQwOTA4OCwgLTAuOTg5OTg5OTk1OTU2NDIwOSwgLTAuMTM4MTY2OTkzODU2NDMwMDUsIC0wLjAxOTQzMzk5OTQzNDExMzUwMywKKyAgICAgICAgLTAuNzkyNzgyMDA4NjQ3OTE4NywgLTAuNTY2OTU5OTc3MTQ5OTYzNCwgMC4wNjc5NTc5OTczMjIwODI1MiwgLTAuODM2MzQ5MDEwNDY3NTI5MywgLTAuNDY4NTcxOTkwNzI4Mzc4MywgMC4wNDg5NTUwMDA5MzY5ODUwMTYsCisgICAgICAgIC0wLjgxMzg4MzAwNjU3MjcyMzQsIC0wLjQ3NDMwODk5NzM5MjY1NDQsIDAuMDAwODM3OTk5OTc4MTAyNzQzNiwgLTAuODg2OTg2OTcwOTAxNDg5MywgLTAuNDQxNzE4MDEyMDk0NDk3NywgLTAuMDU2MjUzOTk5NDcxNjY0NDMsCisgICAgICAgIC0wLjc4OTg2NDAwMzY1ODI5NDcsIC0wLjU1MjI3NTAwMjAwMjcxNjEsIC0wLjE1MDE2ODAwMTY1MTc2MzkyLCAtMC4yOTczNDA5ODkxMTI4NTQsIC0wLjg5OTgxMjk5NjM4NzQ4MTcsIC0wLjMxOTI1ODAwNDQyNjk1NjIsCisgICAgICAgIC0wLjQ5NzU5Nzk5MjQyMDE5NjUzLCAtMC44MzE3NzkwMDMxNDMzMTA1LCAtMC4yNDQxMTU5OTMzODA1NDY1NywgLTAuNjI5NTYyMDIwMzAxODE4OCwgLTAuNzc2NTQyMDA3OTIzMTI2MiwgMC4wMTI2MTc5OTk2ODc3OTA4NywKKyAgICAgICAgLTAuMDExMzM4MDAwMTg1Nzg3Njc4LCAtMC45OTk4OTkwMjk3MzE3NTA1LCAtMC4wMDg1NjEwMDAyMjc5MjgxNjIsIC0wLjM1NDczMjAwNjc4ODI1MzgsIC0wLjg2Nzk1OTAyMjUyMTk3MjcsIC0wLjM0NTM1MTAxMDU2MDk4OTQsCisgICAgICAgIDAuMDk2MTg5OTk4MDkwMjY3MTgsIDAuNDkwNjYwMDExNzY4MzQxMDYsIC0wLjUsIDAuMTg1MTAwMDA0MDc2OTU3NywgMC4yNzcyMTcwMDA3MjI4ODUxMywgLTAuNjY2NjY2OTg0NTU4MTA1NSwKKyAgICAgICAgMC4zMjU2NjYwMTAzNzk3OTEyNiwgMC43NjEzOTg5NzEwODA3OCwgLTAuMTgxOTkwOTk2MDAzMTUwOTQsIDAuMDYyNDAxMDAwNDEwMzE4Mzc1LCAwLjk5MzkwMjAyNzYwNjk2NDEsIC0wLjA5MDkwNzAwMDAwNTI0NTIxLAorICAgICAgICAwLjM4MDMyMDk5NjA0NjA2NjMsIDAuOTIxNDM2MDExNzkxMjI5MiwgLTAuMDAwMDcxMDAwMDAyMjA4MTY1ODIsIDAuMDMwOTE4MDAwMjY1OTU1OTI1LCAwLjk5Njk3Mjk3ODExNTA4MTgsIDAuMDcxMzM2MDAxMTU3NzYwNjIsCisgICAgICAgIDAuMzgwNDEwOTk5MDU5Njc3MSwgMC45MjIwODg5ODA2NzQ3NDM3LCAwLjAwMDE2MzAwMDAwNDI0OTYyNDksIDAuMDI0NzEyMDAwMDQyMjAwMDksIDAuOTk3NTc5OTkxODE3NDc0NCwgMC4wNjQ5ODMwMDI4NDE0NzI2MywKKyAgICAgICAgMC4zNTUxMDkwMDYxNjY0NTgxMywgMC45MjY4OTEwMjg4ODEwNzMsIDAuMDMyMTYxMDAxMTE2MDM3MzcsIDAuMDc2NTc4OTk3MDc1NTU3NzEsIDAuOTkyNDc0MDE5NTI3NDM1MywgLTAuMDk1NTU1OTk4Mzg0OTUyNTUsCisgICAgICAgIDAuMjc3MjE3MDAwNzIyODg1MTMsIDAuMTg1MTAwMDA0MDc2OTU3NywgLTAuNjY2NjY2OTg0NTU4MTA1NSwgMC41OTI5OTg5ODE0NzU4MzAxLCAwLjU3ODExMDk5MjkwODQ3NzgsIC0wLjE4MjA1Mjk5OTczNDg3ODU0LAorICAgICAgICAwLjcwNDg1MTk4NDk3NzcyMjIsIDAuNzA0ODUxOTg0OTc3NzIyMiwgMCwgMC43MDUyNzIwMTg5MDk0NTQzLCAwLjcwNTQxNzk5MDY4NDUwOTMsIC0wLjAwMDAyNDk5OTk5OTM2ODQ0Njg4LAorICAgICAgICAwLjY4MzUyMTk4NjAwNzY5MDQsIDAuNzE5OTQxMDIwMDExOTAxOSwgMC4wMzIwNDYwMDE0MDQ1MjM4NSwgMC4zMjcxMDcwMTIyNzE4ODExLCAwLjA2NDEyNTk5OTgwODMxMTQ2LCAtMC42NjY2NjY5ODQ1NTgxMDU1LAorICAgICAgICAwLjc2OTQ2OTk3NjQyNTE3MDksIDAuMzA2MTAwMDEwODcxODg3MiwgLTAuMTgyMjUzMDAzMTIwNDIyMzYsIDAuOTIxNDM3OTc4NzQ0NTA2OCwgMC4zODAzMzE5OTMxMDMwMjczNCwgMC4wMDAwNjcwMDAwMDA4NTQwMjI4LAorICAgICAgICAwLjkyMjA4ODAyNzAwMDQyNzIsIDAuMzgwNDQzMDA2NzUzOTIxNSwgLTAuMDAwMTY3OTk5OTk4NjY2MzQ2MDcsIDAuOTA3MTEzMDE1NjUxNzAyOSwgMC40MDMwMDM5OTA2NTAxNzcsIDAuMDMyNDM3MDAwNDIzNjY5ODE1LAorICAgICAgICAwLCAwLCAtMSwgMC42NjI2MDMwMjA2NjgwMjk4LCAwLjA0MTU3NDk5OTY5MDA1NTg1LCAtMC4yNzI3MjQ5ODYwNzYzNTUsCisgICAgICAgIDAuOTk2OTc4OTk4MTg0MjA0MSwgMC4wMzA4MjYwMDA0OTY3NDUxMSwgLTAuMDcxMjkyOTk2NDA2NTU1MTgsIDAuOTk3NTkxMDE4Njc2NzU3OCwgMC4wMjQ0NDc5OTk4OTQ2MTg5ODgsIC0wLjA2NDkyMTk5NzQ4NzU0NTAxLAorICAgICAgICAwLjk5MjUwNDAwMDY2Mzc1NzMsIDAuMDc2MzA5MDAyOTM1ODg2MzgsIDAuMDk1NDU3MDAyNTIwNTYxMjIsIDAuNDkwNjYwMDExNzY4MzQxMDYsIC0wLjA5NjE4OTk5ODA5MDI2NzE4LCAtMC41LAorICAgICAgICAwLjI3NzIxNzAwMDcyMjg4NTEzLCAtMC4xODUxMDAwMDQwNzY5NTc3LCAtMC42NjY2NjY5ODQ1NTgxMDU1LCAwLjc2MTM5ODk3MTA4MDc4LCAtMC4zMjU2NjYwMTAzNzk3OTEyNiwgLTAuMTgxOTkwOTk2MDAzMTUwOTQsCisgICAgICAgIDAuOTkzOTAyMDI3NjA2OTY0MSwgLTAuMDYyNDAxMDAwNDEwMzE4Mzc1LCAtMC4wOTA5MDcwMDAwMDUyNDUyMSwgMC45MjE0MzYwMTE3OTEyMjkyLCAtMC4zODAzMjA5OTYwNDYwNjYzLCAtMC4wMDAwNzEwMDAwMDIyMDgxNjU4MiwKKyAgICAgICAgMC45OTY5NzI5NzgxMTUwODE4LCAtMC4wMzA5MTgwMDAyNjU5NTU5MjUsIDAuMDcxMzM2MDAxMTU3NzYwNjIsIDAuOTIyMDg4OTgwNjc0NzQzNywgLTAuMzgwNDEwOTk5MDU5Njc3MSwgMC4wMDAxNjMwMDAwMDQyNDk2MjQ5LAorICAgICAgICAwLjk5NzU3OTk5MTgxNzQ3NDQsIC0wLjAyNDcxMjAwMDA0MjIwMDA5LCAwLjA2NDk4MzAwMjg0MTQ3MjYzLCAwLjkyNjg5MTAyODg4MTA3MywgLTAuMzU1MTA5MDA2MTY2NDU4MTMsIDAuMDMyMTYxMDAxMTE2MDM3MzcsCisgICAgICAgIDAuOTkyNDc0MDE5NTI3NDM1MywgLTAuMDc2NTc4OTk3MDc1NTU3NzEsIC0wLjA5NTU1NTk5ODM4NDk1MjU1LCAwLjE4NTEwMDAwNDA3Njk1NzcsIC0wLjI3NzIxNzAwMDcyMjg4NTEzLCAtMC42NjY2NjY5ODQ1NTgxMDU1LAorICAgICAgICAwLjU3ODExMDk5MjkwODQ3NzgsIC0wLjU5Mjk5ODk4MTQ3NTgzMDEsIC0wLjE4MjA1Mjk5OTczNDg3ODU0LCAwLjcwNDg1MTk4NDk3NzcyMjIsIC0wLjcwNDg1MTk4NDk3NzcyMjIsIDAsCisgICAgICAgIDAuNzA1NDE3OTkwNjg0NTA5MywgLTAuNzA1MjcyMDE4OTA5NDU0MywgLTAuMDAwMDI0OTk5OTk5MzY4NDQ2ODgsIDAuNzE5OTQxMDIwMDExOTAxOSwgLTAuNjgzNTIxOTg2MDA3NjkwNCwgMC4wMzIwNDYwMDE0MDQ1MjM4NSwKKyAgICAgICAgMC4wNjQxMjU5OTk4MDgzMTE0NiwgLTAuMzI3MTA3MDEyMjcxODgxMSwgLTAuNjY2NjY2OTg0NTU4MTA1NSwgMC4zMDYxMDAwMTA4NzE4ODcyLCAtMC43Njk0Njk5NzY0MjUxNzA5LCAtMC4xODIyNTMwMDMxMjA0MjIzNiwKKyAgICAgICAgMC4zODAzMzE5OTMxMDMwMjczNCwgLTAuOTIxNDM3OTc4NzQ0NTA2OCwgMC4wMDAwNjcwMDAwMDA4NTQwMjI4LCAwLjM4MDQ0MzAwNjc1MzkyMTUsIC0wLjkyMjA4ODAyNzAwMDQyNzIsIC0wLjAwMDE2Nzk5OTk5ODY2NjM0NjA3LAorICAgICAgICAwLjQwMzAwMzk5MDY1MDE3NywgLTAuOTA3MTEzMDE1NjUxNzAyOSwgMC4wMzI0MzcwMDA0MjM2Njk4MTUsIDAsIDAsIC0xLAorICAgICAgICAwLjA0MTU3NDk5OTY5MDA1NTg1LCAtMC42NjI2MDMwMjA2NjgwMjk4LCAtMC4yNzI3MjQ5ODYwNzYzNTUsIDAuMDMwODI2MDAwNDk2NzQ1MTEsIC0wLjk5Njk3ODk5ODE4NDIwNDEsIC0wLjA3MTI5Mjk5NjQwNjU1NTE4LAorICAgICAgICAwLjAyNDQ0Nzk5OTg5NDYxODk4OCwgLTAuOTk3NTkxMDE4Njc2NzU3OCwgLTAuMDY0OTIxOTk3NDg3NTQ1MDEsIDAuMDc2MzA5MDAyOTM1ODg2MzgsIC0wLjk5MjUwNDAwMDY2Mzc1NzMsIDAuMDk1NDU3MDAyNTIwNTYxMjIsCisgICAgICAgIC0wLjA5NjE4OTk5ODA5MDI2NzE4LCAtMC40OTA2NjAwMTE3NjgzNDEwNiwgLTAuNSwgLTAuMTg1MTAwMDA0MDc2OTU3NywgLTAuMjc3MjE3MDAwNzIyODg1MTMsIC0wLjY2NjY2Njk4NDU1ODEwNTUsCisgICAgICAgIC0wLjMyNTY2NjAxMDM3OTc5MTI2LCAtMC43NjEzOTg5NzEwODA3OCwgLTAuMTgxOTkwOTk2MDAzMTUwOTQsIC0wLjA2MjQwMTAwMDQxMDMxODM3NSwgLTAuOTkzOTAyMDI3NjA2OTY0MSwgLTAuMDkwOTA3MDAwMDA1MjQ1MjEsCisgICAgICAgIC0wLjM4MDMyMDk5NjA0NjA2NjMsIC0wLjkyMTQzNjAxMTc5MTIyOTIsIC0wLjAwMDA3MTAwMDAwMjIwODE2NTgyLCAtMC4wMzA5MTgwMDAyNjU5NTU5MjUsIC0wLjk5Njk3Mjk3ODExNTA4MTgsIDAuMDcxMzM2MDAxMTU3NzYwNjIsCisgICAgICAgIC0wLjM4MDQxMDk5OTA1OTY3NzEsIC0wLjkyMjA4ODk4MDY3NDc0MzcsIDAuMDAwMTYzMDAwMDA0MjQ5NjI0OSwgLTAuMDI0NzEyMDAwMDQyMjAwMDksIC0wLjk5NzU3OTk5MTgxNzQ3NDQsIDAuMDY0OTgzMDAyODQxNDcyNjMsCisgICAgICAgIC0wLjM1NTEwOTAwNjE2NjQ1ODEzLCAtMC45MjY4OTEwMjg4ODEwNzMsIDAuMDMyMTYxMDAxMTE2MDM3MzcsIC0wLjA3NjU3ODk5NzA3NTU1NzcxLCAtMC45OTI0NzQwMTk1Mjc0MzUzLCAtMC4wOTU1NTU5OTgzODQ5NTI1NSwKKyAgICAgICAgLTAuMjc3MjE3MDAwNzIyODg1MTMsIC0wLjE4NTEwMDAwNDA3Njk1NzcsIC0wLjY2NjY2Njk4NDU1ODEwNTUsIC0wLjU5Mjk5ODk4MTQ3NTgzMDEsIC0wLjU3ODExMDk5MjkwODQ3NzgsIC0wLjE4MjA1Mjk5OTczNDg3ODU0LAorICAgICAgICAtMC43MDQ4NTE5ODQ5Nzc3MjIyLCAtMC43MDQ4NTE5ODQ5Nzc3MjIyLCAwLCAtMC43MDUyNzIwMTg5MDk0NTQzLCAtMC43MDU0MTc5OTA2ODQ1MDkzLCAtMC4wMDAwMjQ5OTk5OTkzNjg0NDY4OCwKKyAgICAgICAgLTAuNjgzNTIxOTg2MDA3NjkwNCwgLTAuNzE5OTQxMDIwMDExOTAxOSwgMC4wMzIwNDYwMDE0MDQ1MjM4NSwgLTAuMzI3MTA3MDEyMjcxODgxMSwgLTAuMDY0MTI1OTk5ODA4MzExNDYsIC0wLjY2NjY2Njk4NDU1ODEwNTUsCisgICAgICAgIC0wLjc2OTQ2OTk3NjQyNTE3MDksIC0wLjMwNjEwMDAxMDg3MTg4NzIsIC0wLjE4MjI1MzAwMzEyMDQyMjM2LCAtMC45MjE0Mzc5Nzg3NDQ1MDY4LCAtMC4zODAzMzE5OTMxMDMwMjczNCwgMC4wMDAwNjcwMDAwMDA4NTQwMjI4LAorICAgICAgICAtMC45MjIwODgwMjcwMDA0MjcyLCAtMC4zODA0NDMwMDY3NTM5MjE1LCAtMC4wMDAxNjc5OTk5OTg2NjYzNDYwNywgLTAuOTA3MTEzMDE1NjUxNzAyOSwgLTAuNDAzMDAzOTkwNjUwMTc3LCAwLjAzMjQzNzAwMDQyMzY2OTgxNSwKKyAgICAgICAgMCwgMCwgLTEsIC0wLjY2MjYwMzAyMDY2ODAyOTgsIC0wLjA0MTU3NDk5OTY5MDA1NTg1LCAtMC4yNzI3MjQ5ODYwNzYzNTUsCisgICAgICAgIC0wLjk5Njk3ODk5ODE4NDIwNDEsIC0wLjAzMDgyNjAwMDQ5Njc0NTExLCAtMC4wNzEyOTI5OTY0MDY1NTUxOCwgLTAuOTk3NTkxMDE4Njc2NzU3OCwgLTAuMDI0NDQ3OTk5ODk0NjE4OTg4LCAtMC4wNjQ5MjE5OTc0ODc1NDUwMSwKKyAgICAgICAgLTAuOTkyNTA0MDAwNjYzNzU3MywgLTAuMDc2MzA5MDAyOTM1ODg2MzgsIDAuMDk1NDU3MDAyNTIwNTYxMjIsIC0wLjQ5MDY2MDAxMTc2ODM0MTA2LCAwLjA5NjE4OTk5ODA5MDI2NzE4LCAtMC41LAorICAgICAgICAtMC4yNzcyMTcwMDA3MjI4ODUxMywgMC4xODUxMDAwMDQwNzY5NTc3LCAtMC42NjY2NjY5ODQ1NTgxMDU1LCAtMC43NjEzOTg5NzEwODA3OCwgMC4zMjU2NjYwMTAzNzk3OTEyNiwgLTAuMTgxOTkwOTk2MDAzMTUwOTQsCisgICAgICAgIC0wLjk5MzkwMjAyNzYwNjk2NDEsIDAuMDYyNDAxMDAwNDEwMzE4Mzc1LCAtMC4wOTA5MDcwMDAwMDUyNDUyMSwgLTAuOTIxNDM2MDExNzkxMjI5MiwgMC4zODAzMjA5OTYwNDYwNjYzLCAtMC4wMDAwNzEwMDAwMDIyMDgxNjU4MiwKKyAgICAgICAgLTAuOTk2OTcyOTc4MTE1MDgxOCwgMC4wMzA5MTgwMDAyNjU5NTU5MjUsIDAuMDcxMzM2MDAxMTU3NzYwNjIsIC0wLjkyMjA4ODk4MDY3NDc0MzcsIDAuMzgwNDEwOTk5MDU5Njc3MSwgMC4wMDAxNjMwMDAwMDQyNDk2MjQ5LAorICAgICAgICAtMC45OTc1Nzk5OTE4MTc0NzQ0LCAwLjAyNDcxMjAwMDA0MjIwMDA5LCAwLjA2NDk4MzAwMjg0MTQ3MjYzLCAtMC45MjY4OTEwMjg4ODEwNzMsIDAuMzU1MTA5MDA2MTY2NDU4MTMsIDAuMDMyMTYxMDAxMTE2MDM3MzcsCisgICAgICAgIC0wLjk5MjQ3NDAxOTUyNzQzNTMsIDAuMDc2NTc4OTk3MDc1NTU3NzEsIC0wLjA5NTU1NTk5ODM4NDk1MjU1LCAtMC4xODUxMDAwMDQwNzY5NTc3LCAwLjI3NzIxNzAwMDcyMjg4NTEzLCAtMC42NjY2NjY5ODQ1NTgxMDU1LAorICAgICAgICAtMC41NzgxMTA5OTI5MDg0Nzc4LCAwLjU5Mjk5ODk4MTQ3NTgzMDEsIC0wLjE4MjA1Mjk5OTczNDg3ODU0LCAtMC43MDQ4NTE5ODQ5Nzc3MjIyLCAwLjcwNDg1MTk4NDk3NzcyMjIsIDAsCisgICAgICAgIC0wLjcwNTQxNzk5MDY4NDUwOTMsIDAuNzA1MjcyMDE4OTA5NDU0MywgLTAuMDAwMDI0OTk5OTk5MzY4NDQ2ODgsIC0wLjcxOTk0MTAyMDAxMTkwMTksIDAuNjgzNTIxOTg2MDA3NjkwNCwgMC4wMzIwNDYwMDE0MDQ1MjM4NSwKKyAgICAgICAgLTAuMDY0MTI1OTk5ODA4MzExNDYsIDAuMzI3MTA3MDEyMjcxODgxMSwgLTAuNjY2NjY2OTg0NTU4MTA1NSwgLTAuMzA2MTAwMDEwODcxODg3MiwgMC43Njk0Njk5NzY0MjUxNzA5LCAtMC4xODIyNTMwMDMxMjA0MjIzNiwKKyAgICAgICAgLTAuMzgwMzMxOTkzMTAzMDI3MzQsIDAuOTIxNDM3OTc4NzQ0NTA2OCwgMC4wMDAwNjcwMDAwMDA4NTQwMjI4LCAtMC4zODA0NDMwMDY3NTM5MjE1LCAwLjkyMjA4ODAyNzAwMDQyNzIsIC0wLjAwMDE2Nzk5OTk5ODY2NjM0NjA3LAorICAgICAgICAtMC40MDMwMDM5OTA2NTAxNzcsIDAuOTA3MTEzMDE1NjUxNzAyOSwgMC4wMzI0MzcwMDA0MjM2Njk4MTUsIDAsIDAsIC0xLAorICAgICAgICAtMC4wNDE1NzQ5OTk2OTAwNTU4NSwgMC42NjI2MDMwMjA2NjgwMjk4LCAtMC4yNzI3MjQ5ODYwNzYzNTUsIC0wLjAzMDgyNjAwMDQ5Njc0NTExLCAwLjk5Njk3ODk5ODE4NDIwNDEsIC0wLjA3MTI5Mjk5NjQwNjU1NTE4LAorICAgICAgICAtMC4wMjQ0NDc5OTk4OTQ2MTg5ODgsIDAuOTk3NTkxMDE4Njc2NzU3OCwgLTAuMDY0OTIxOTk3NDg3NTQ1MDEsIC0wLjA3NjMwOTAwMjkzNTg4NjM4LCAwLjk5MjUwNDAwMDY2Mzc1NzMsIDAuMDk1NDU3MDAyNTIwNTYxMjIsCisgICAgICAgIDAuMDc2NTc4OTk3MDc1NTU3NzEsIDAuOTkyNDc0MDE5NTI3NDM1MywgLTAuMDk1NTU1OTk4Mzg0OTUyNTUsIDAuNDAzMDcwOTg2MjcwOTA0NTQsIDAuOTA3MDY0OTc0MzA4MDEzOSwgLTAuMDMyNTUyOTk4NTEyOTgzMzIsCisgICAgICAgIDAuMzc1MzY0MDA1NTY1NjQzMywgMC45MDcwMjA5ODYwODAxNjk3LCAwLjAwMDAwNzAwMDAwMDA5NjAxMzUzNywgMC4xODMwNjIwMDIwNjI3OTc1NSwgMC45ODIwODk5OTYzMzc4OTA2LCAtMC4wNDQ1NzM5OTk5NDEzNDkwMywKKyAgICAgICAgMC4zNzUxNjQ5ODU2NTY3MzgzLCAwLjkwNjU3NTAyNDEyNzk2MDIsIC0wLjAwMDA3NDAwMDAwMzIyMzc3MzA5LCAwLjE4ODAxNDk5OTAzMjAyMDU3LCAwLjk4MTYxMDAwMDEzMzUxNDQsIC0wLjAzMzA0MTAwMDM2NjIxMDk0LAorICAgICAgICAwLjM3NTkwNzAwMzg3OTU0NzEsIDAuOTA4NjA3MDA2MDcyOTk4LCAtMC4wMDAyNjE5OTk5ODY4MzI5NjE0NCwgMC4xNjYyMzQwMDE1MTcyOTU4NCwgMC45ODM3MjI5ODQ3OTA4MDIsIC0wLjA2ODIyODk5NzI5MDEzNDQzLAorICAgICAgICAwLjMzMzI0MDk4NTg3MDM2MTMzLCAwLjkyOTAwMzAwMDI1OTM5OTQsIDAuMDI5ODAzMDAwMzkwNTI5NjMzLCAwLjE0MDcxNDAwNDYzNTgxMDg1LCAwLjk4NjIwNDAyODEyOTU3NzYsIC0wLjA4NzE4MTAwMTkwMTYyNjU5LAorICAgICAgICAwLjcxOTgyOTk3NjU1ODY4NTMsIDAuNjgzNjU1OTc3MjQ5MTQ1NSwgLTAuMDMyMDE3MDAwMDE5NTUwMzIzLCAwLjY5NDM1Mzk5NzcwNzM2NjksIDAuNjk0MzUzOTk3NzA3MzY2OSwgMCwKKyAgICAgICAgMC42OTQwMzQ5OTM2NDg1MjksIDAuNjk0MDM0OTkzNjQ4NTI5LCAwLCAwLjY5NTUxMDAyOTc5Mjc4NTYsIDAuNjk1NTEwMDI5NzkyNzg1NiwgMCwKKyAgICAgICAgMC42NjM5MTcwMDUwNjIxMDMzLCAwLjczMDYxNTAxOTc5ODI3ODgsIDAuMDI5MTAwOTk5MjM2MTA2ODczLCAwLjkyNjg2NDk4MTY1MTMwNjIsIDAuMzU1MjMzMDEzNjI5OTEzMzMsIC0wLjAzMjAzOTk5OTk2MTg1MzAzLAorICAgICAgICAwLjkwNzAyMDk4NjA4MDE2OTcsIDAuMzc1MzY0OTg5MDQyMjgyMSwgLTAuMDAwMDA3MDAwMDAwMDk2MDEzNTM3LCAwLjkwNjU3NTAyNDEyNzk2MDIsIDAuMzc1MTY0OTg1NjU2NzM4MywgMC4wMDAwNzMwMDAwMDI4ODUyMzczNCwKKyAgICAgICAgMC45MDg2MDcwMDYwNzI5OTgsIDAuMzc1OTA3MDAzODc5NTQ3MSwgMC4wMDAyNjE5OTk5ODY4MzI5NjE0NCwgMC44OTI2MjU5ODc1Mjk3NTQ2LCAwLjQyMTE0NjAwNTM5MjA3NDYsIDAuMDI4OTkxOTk5MTA0NjE5MDI2LAorICAgICAgICAwLjk5MjQ3NDAxOTUyNzQzNTMsIDAuMDc2NDY1MDAzMTkyNDI0NzcsIDAuMDk1NjUxMDAwNzM4MTQzOTIsIDAuOTgyMDg5OTk2MzM3ODkwNiwgMC4xODMwNjIwMDIwNjI3OTc1NSwgMC4wNDQ1NzM5OTk5NDEzNDkwMywKKyAgICAgICAgMC45ODE2MTAwMDAxMzM1MTQ0LCAwLjE4ODAxNDk5OTAzMjAyMDU3LCAwLjAzMzA0MTAwMDM2NjIxMDk0LCAwLjk4MzcyMjk4NDc5MDgwMiwgMC4xNjYyMzQwMDE1MTcyOTU4NCwgMC4wNjgyMjg5OTcyOTAxMzQ0MywKKyAgICAgICAgMC45ODYyMDQwMjgxMjk1Nzc2LCAwLjE0MDcxNDAwNDYzNTgxMDg1LCAwLjA4NzE4MTAwMTkwMTYyNjU5LCAwLjk5MjQ3NDAxOTUyNzQzNTMsIC0wLjA3NjU3ODk5NzA3NTU1NzcxLCAtMC4wOTU1NTU5OTgzODQ5NTI1NSwKKyAgICAgICAgMC45MDcwNjQ5NzQzMDgwMTM5LCAtMC40MDMwNzA5ODYyNzA5MDQ1NCwgLTAuMDMyNTUyOTk4NTEyOTgzMzIsIDAuOTA3MDIwOTg2MDgwMTY5NywgLTAuMzc1MzY0MDA1NTY1NjQzMywgMC4wMDAwMDcwMDAwMDAwOTYwMTM1MzcsCisgICAgICAgIDAuOTgyMDg5OTk2MzM3ODkwNiwgLTAuMTgzMDYyMDAyMDYyNzk3NTUsIC0wLjA0NDU3Mzk5OTk0MTM0OTAzLCAwLjkwNjU3NTAyNDEyNzk2MDIsIC0wLjM3NTE2NDk4NTY1NjczODMsIC0wLjAwMDA3NDAwMDAwMzIyMzc3MzA5LAorICAgICAgICAwLjk4MTYxMDAwMDEzMzUxNDQsIC0wLjE4ODAxNDk5OTAzMjAyMDU3LCAtMC4wMzMwNDEwMDAzNjYyMTA5NCwgMC45MDg2MDcwMDYwNzI5OTgsIC0wLjM3NTkwNzAwMzg3OTU0NzEsIC0wLjAwMDI2MTk5OTk4NjgzMjk2MTQ0LAorICAgICAgICAwLjk4MzcyMjk4NDc5MDgwMiwgLTAuMTY2MjM0MDAxNTE3Mjk1ODQsIC0wLjA2ODIyODk5NzI5MDEzNDQzLCAwLjkyOTAwMzAwMDI1OTM5OTQsIC0wLjMzMzI0MDk4NTg3MDM2MTMzLCAwLjAyOTgwMzAwMDM5MDUyOTYzMywKKyAgICAgICAgMC45ODYyMDQwMjgxMjk1Nzc2LCAtMC4xNDA3MTQwMDQ2MzU4MTA4NSwgLTAuMDg3MTgxMDAxOTAxNjI2NTksIDAuNjgzNjU1OTc3MjQ5MTQ1NSwgLTAuNzE5ODI5OTc2NTU4Njg1MywgLTAuMDMyMDE3MDAwMDE5NTUwMzIzLAorICAgICAgICAwLjY5NDM1Mzk5NzcwNzM2NjksIC0wLjY5NDM1Mzk5NzcwNzM2NjksIDAsIDAuNjk0MDM0OTkzNjQ4NTI5LCAtMC42OTQwMzQ5OTM2NDg1MjksIDAsCisgICAgICAgIDAuNjk1NTEwMDI5NzkyNzg1NiwgLTAuNjk1NTEwMDI5NzkyNzg1NiwgMCwgMC43MzA2MTUwMTk3OTgyNzg4LCAtMC42NjM5MTcwMDUwNjIxMDMzLCAwLjAyOTEwMDk5OTIzNjEwNjg3MywKKyAgICAgICAgMC4zNTUyMzMwMTM2Mjk5MTMzMywgLTAuOTI2ODY0OTgxNjUxMzA2MiwgLTAuMDMyMDM5OTk5OTYxODUzMDMsIDAuMzc1MzY0OTg5MDQyMjgyMSwgLTAuOTA3MDIwOTg2MDgwMTY5NywgLTAuMDAwMDA3MDAwMDAwMDk2MDEzNTM3LAorICAgICAgICAwLjM3NTE2NDk4NTY1NjczODMsIC0wLjkwNjU3NTAyNDEyNzk2MDIsIDAuMDAwMDczMDAwMDAyODg1MjM3MzQsIDAuMzc1OTA3MDAzODc5NTQ3MSwgLTAuOTA4NjA3MDA2MDcyOTk4LCAwLjAwMDI2MTk5OTk4NjgzMjk2MTQ0LAorICAgICAgICAwLjQyMTE0NjAwNTM5MjA3NDYsIC0wLjg5MjYyNTk4NzUyOTc1NDYsIDAuMDI4OTkxOTk5MTA0NjE5MDI2LCAwLjA3NjQ2NTAwMzE5MjQyNDc3LCAtMC45OTI0NzQwMTk1Mjc0MzUzLCAwLjA5NTY1MTAwMDczODE0MzkyLAorICAgICAgICAwLjE4MzA2MjAwMjA2Mjc5NzU1LCAtMC45ODIwODk5OTYzMzc4OTA2LCAwLjA0NDU3Mzk5OTk0MTM0OTAzLCAwLjE4ODAxNDk5OTAzMjAyMDU3LCAtMC45ODE2MTAwMDAxMzM1MTQ0LCAwLjAzMzA0MTAwMDM2NjIxMDk0LAorICAgICAgICAwLjE2NjIzNDAwMTUxNzI5NTg0LCAtMC45ODM3MjI5ODQ3OTA4MDIsIDAuMDY4MjI4OTk3MjkwMTM0NDMsIDAuMTQwNzE0MDA0NjM1ODEwODUsIC0wLjk4NjIwNDAyODEyOTU3NzYsIDAuMDg3MTgxMDAxOTAxNjI2NTksCisgICAgICAgIC0wLjA3NjU3ODk5NzA3NTU1NzcxLCAtMC45OTI0NzQwMTk1Mjc0MzUzLCAtMC4wOTU1NTU5OTgzODQ5NTI1NSwgLTAuNDAzMDcwOTg2MjcwOTA0NTQsIC0wLjkwNzA2NDk3NDMwODAxMzksIC0wLjAzMjU1Mjk5ODUxMjk4MzMyLAorICAgICAgICAtMC4zNzUzNjQwMDU1NjU2NDMzLCAtMC45MDcwMjA5ODYwODAxNjk3LCAwLjAwMDAwNzAwMDAwMDA5NjAxMzUzNywgLTAuMTgzMDYyMDAyMDYyNzk3NTUsIC0wLjk4MjA4OTk5NjMzNzg5MDYsIC0wLjA0NDU3Mzk5OTk0MTM0OTAzLAorICAgICAgICAtMC4zNzUxNjQ5ODU2NTY3MzgzLCAtMC45MDY1NzUwMjQxMjc5NjAyLCAtMC4wMDAwNzQwMDAwMDMyMjM3NzMwOSwgLTAuMTg4MDE0OTk5MDMyMDIwNTcsIC0wLjk4MTYxMDAwMDEzMzUxNDQsIC0wLjAzMzA0MTAwMDM2NjIxMDk0LAorICAgICAgICAtMC4zNzU5MDcwMDM4Nzk1NDcxLCAtMC45MDg2MDcwMDYwNzI5OTgsIC0wLjAwMDI2MTk5OTk4NjgzMjk2MTQ0LCAtMC4xNjYyMzQwMDE1MTcyOTU4NCwgLTAuOTgzNzIyOTg0NzkwODAyLCAtMC4wNjgyMjg5OTcyOTAxMzQ0MywKKyAgICAgICAgLTAuMzMzMjQwOTg1ODcwMzYxMzMsIC0wLjkyOTAwMzAwMDI1OTM5OTQsIDAuMDI5ODAzMDAwMzkwNTI5NjMzLCAtMC4xNDA3MTQwMDQ2MzU4MTA4NSwgLTAuOTg2MjA0MDI4MTI5NTc3NiwgLTAuMDg3MTgxMDAxOTAxNjI2NTksCisgICAgICAgIC0wLjcxOTgyOTk3NjU1ODY4NTMsIC0wLjY4MzY1NTk3NzI0OTE0NTUsIC0wLjAzMjAxNzAwMDAxOTU1MDMyMywgLTAuNjk0MzUzOTk3NzA3MzY2OSwgLTAuNjk0MzUzOTk3NzA3MzY2OSwgMCwKKyAgICAgICAgLTAuNjk0MDM0OTkzNjQ4NTI5LCAtMC42OTQwMzQ5OTM2NDg1MjksIDAsIC0wLjY5NTUxMDAyOTc5Mjc4NTYsIC0wLjY5NTUxMDAyOTc5Mjc4NTYsIDAsCisgICAgICAgIC0wLjY2MzkxNzAwNTA2MjEwMzMsIC0wLjczMDYxNTAxOTc5ODI3ODgsIDAuMDI5MTAwOTk5MjM2MTA2ODczLCAtMC45MjY4NjQ5ODE2NTEzMDYyLCAtMC4zNTUyMzMwMTM2Mjk5MTMzMywgLTAuMDMyMDM5OTk5OTYxODUzMDMsCisgICAgICAgIC0wLjkwNzAyMDk4NjA4MDE2OTcsIC0wLjM3NTM2NDk4OTA0MjI4MjEsIC0wLjAwMDAwNzAwMDAwMDA5NjAxMzUzNywgLTAuOTA2NTc1MDI0MTI3OTYwMiwgLTAuMzc1MTY0OTg1NjU2NzM4MywgMC4wMDAwNzMwMDAwMDI4ODUyMzczNCwKKyAgICAgICAgLTAuOTA4NjA3MDA2MDcyOTk4LCAtMC4zNzU5MDcwMDM4Nzk1NDcxLCAwLjAwMDI2MTk5OTk4NjgzMjk2MTQ0LCAtMC44OTI2MjU5ODc1Mjk3NTQ2LCAtMC40MjExNDYwMDUzOTIwNzQ2LCAwLjAyODk5MTk5OTEwNDYxOTAyNiwKKyAgICAgICAgLTAuOTkyNDc0MDE5NTI3NDM1MywgLTAuMDc2NDY1MDAzMTkyNDI0NzcsIDAuMDk1NjUxMDAwNzM4MTQzOTIsIC0wLjk4MjA4OTk5NjMzNzg5MDYsIC0wLjE4MzA2MjAwMjA2Mjc5NzU1LCAwLjA0NDU3Mzk5OTk0MTM0OTAzLAorICAgICAgICAtMC45ODE2MTAwMDAxMzM1MTQ0LCAtMC4xODgwMTQ5OTkwMzIwMjA1NywgMC4wMzMwNDEwMDAzNjYyMTA5NCwgLTAuOTgzNzIyOTg0NzkwODAyLCAtMC4xNjYyMzQwMDE1MTcyOTU4NCwgMC4wNjgyMjg5OTcyOTAxMzQ0MywKKyAgICAgICAgLTAuOTg2MjA0MDI4MTI5NTc3NiwgLTAuMTQwNzE0MDA0NjM1ODEwODUsIDAuMDg3MTgxMDAxOTAxNjI2NTksIC0wLjk5MjQ3NDAxOTUyNzQzNTMsIDAuMDc2NTc4OTk3MDc1NTU3NzEsIC0wLjA5NTU1NTk5ODM4NDk1MjU1LAorICAgICAgICAtMC45MDcwNjQ5NzQzMDgwMTM5LCAwLjQwMzA3MDk4NjI3MDkwNDU0LCAtMC4wMzI1NTI5OTg1MTI5ODMzMiwgLTAuOTA3MDIwOTg2MDgwMTY5NywgMC4zNzUzNjQwMDU1NjU2NDMzLCAwLjAwMDAwNzAwMDAwMDA5NjAxMzUzNywKKyAgICAgICAgLTAuOTgyMDg5OTk2MzM3ODkwNiwgMC4xODMwNjIwMDIwNjI3OTc1NSwgLTAuMDQ0NTczOTk5OTQxMzQ5MDMsIC0wLjkwNjU3NTAyNDEyNzk2MDIsIDAuMzc1MTY0OTg1NjU2NzM4MywgLTAuMDAwMDc0MDAwMDAzMjIzNzczMDksCisgICAgICAgIC0wLjk4MTYxMDAwMDEzMzUxNDQsIDAuMTg4MDE0OTk5MDMyMDIwNTcsIC0wLjAzMzA0MTAwMDM2NjIxMDk0LCAtMC45MDg2MDcwMDYwNzI5OTgsIDAuMzc1OTA3MDAzODc5NTQ3MSwgLTAuMDAwMjYxOTk5OTg2ODMyOTYxNDQsCisgICAgICAgIC0wLjk4MzcyMjk4NDc5MDgwMiwgMC4xNjYyMzQwMDE1MTcyOTU4NCwgLTAuMDY4MjI4OTk3MjkwMTM0NDMsIC0wLjkyOTAwMzAwMDI1OTM5OTQsIDAuMzMzMjQwOTg1ODcwMzYxMzMsIDAuMDI5ODAzMDAwMzkwNTI5NjMzLAorICAgICAgICAtMC45ODYyMDQwMjgxMjk1Nzc2LCAwLjE0MDcxNDAwNDYzNTgxMDg1LCAtMC4wODcxODEwMDE5MDE2MjY1OSwgLTAuNjgzNjU1OTc3MjQ5MTQ1NSwgMC43MTk4Mjk5NzY1NTg2ODUzLCAtMC4wMzIwMTcwMDAwMTk1NTAzMjMsCisgICAgICAgIC0wLjY5NDM1Mzk5NzcwNzM2NjksIDAuNjk0MzUzOTk3NzA3MzY2OSwgMCwgLTAuNjk0MDM0OTkzNjQ4NTI5LCAwLjY5NDAzNDk5MzY0ODUyOSwgMCwKKyAgICAgICAgLTAuNjk1NTEwMDI5NzkyNzg1NiwgMC42OTU1MTAwMjk3OTI3ODU2LCAwLCAtMC43MzA2MTUwMTk3OTgyNzg4LCAwLjY2MzkxNzAwNTA2MjEwMzMsIDAuMDI5MTAwOTk5MjM2MTA2ODczLAorICAgICAgICAtMC4zNTUyMzMwMTM2Mjk5MTMzMywgMC45MjY4NjQ5ODE2NTEzMDYyLCAtMC4wMzIwMzk5OTk5NjE4NTMwMywgLTAuMzc1MzY0OTg5MDQyMjgyMSwgMC45MDcwMjA5ODYwODAxNjk3LCAtMC4wMDAwMDcwMDAwMDAwOTYwMTM1MzcsCisgICAgICAgIC0wLjM3NTE2NDk4NTY1NjczODMsIDAuOTA2NTc1MDI0MTI3OTYwMiwgMC4wMDAwNzMwMDAwMDI4ODUyMzczNCwgLTAuMzc1OTA3MDAzODc5NTQ3MSwgMC45MDg2MDcwMDYwNzI5OTgsIDAuMDAwMjYxOTk5OTg2ODMyOTYxNDQsCisgICAgICAgIC0wLjQyMTE0NjAwNTM5MjA3NDYsIDAuODkyNjI1OTg3NTI5NzU0NiwgMC4wMjg5OTE5OTkxMDQ2MTkwMjYsIC0wLjA3NjQ2NTAwMzE5MjQyNDc3LCAwLjk5MjQ3NDAxOTUyNzQzNTMsIDAuMDk1NjUxMDAwNzM4MTQzOTIsCisgICAgICAgIC0wLjE4MzA2MjAwMjA2Mjc5NzU1LCAwLjk4MjA4OTk5NjMzNzg5MDYsIDAuMDQ0NTczOTk5OTQxMzQ5MDMsIC0wLjE4ODAxNDk5OTAzMjAyMDU3LCAwLjk4MTYxMDAwMDEzMzUxNDQsIDAuMDMzMDQxMDAwMzY2MjEwOTQsCisgICAgICAgIC0wLjE2NjIzNDAwMTUxNzI5NTg0LCAwLjk4MzcyMjk4NDc5MDgwMiwgMC4wNjgyMjg5OTcyOTAxMzQ0MywgLTAuMTQwNzE0MDA0NjM1ODEwODUsIDAuOTg2MjA0MDI4MTI5NTc3NiwgMC4wODcxODEwMDE5MDE2MjY1OSB9OworCisKK2Zsb2F0ICB0ZWFwb3RCaW5vcm1hbHNbXSA9IHsgMC4yNTU0MjcwMDI5MDY3OTkzLCAtMC4wNTA0MzQwMDA3OTAxMTkxNywgLTAuOTY1NTExOTc3NjcyNTc2OSwgMC4yMzAyODk5OTU2NzAzMTg2LCAtMC4xMTM3OTcwMDE1NDA2NjA4NiwgLTAuOTY2NDQ1OTgyNDU2MjA3MywKKyAgICAgICAgLTAuMjM2NTM5MDA2MjMzMjE1MzMsIDAuMDk3ODk0OTk2NDA0NjQ3ODMsIC0wLjk2NjY3ODAyMzMzODMxNzksIC0wLjI1NTExODAxMjQyODI4MzcsIDAuMDUwMzcyOTk5MTYxNDgxODYsIC0wLjk2NTU5Njk3Mzg5NjAyNjYsCisgICAgICAgIC0wLjkyMDE2MTAwODgzNDgzODksIDAuMzgwNzk4MDEyMDE4MjAzNzQsIC0wLjA5MTA4Mjk5NzYyMDEwNTc0LCAtMC45NzcwNDc5Nzk4MzE2OTU2LCAwLjE5MjkxOTk5OTM2MTAzODIsIC0wLjA5MDMyMzk5OTUyNDExNjUyLAorICAgICAgICAtMC42NzYyNDAwMjY5NTA4MzYyLCAwLjI3OTg1OTAwNjQwNDg3NjcsIDAuNjgxNDUyOTg5NTc4MjQ3MSwgLTAuNzIzODAwMDAzNTI4NTk1LCAwLjE0MjkxNTk5MzkyODkwOTMsIDAuNjc1MDQ3OTkzNjU5OTczMSwKKyAgICAgICAgLTAuNDY4MTk5MDE0NjYzNjk2MywgMC4xNTgxNzYwMDQ4ODY2MjcyLCAwLjg2OTM1MDAxNjExNzA5NiwgLTAuNDkwMjA3OTk5OTQ0Njg2OSwgMC4wOTY3OTE5OTc1NTE5MTgwMywgMC44NjYyMTQ5OTA2MTU4NDQ3LAorICAgICAgICAwLjE2OTUyMzk5OTA5NDk2MzA3LCAtMC4xOTM0OTYwMDM3NDY5ODY0LCAtMC45NjYzNDM5OTg5MDg5OTY2LCAtMC4xODEwNjgwMDMxNzc2NDI4MiwgMC4xODEwNjgwMDMxNzc2NDI4MiwgLTAuOTY2NjU5MDA5NDU2NjM0NSwKKyAgICAgICAgLTAuNzA0MTE5OTgwMzM1MjM1NiwgMC43MDQxMTk5ODAzMzUyMzU2LCAtMC4wOTE4MTkwMDMyMjQzNzI4NiwgLTAuNTE3OTM0OTc4MDA4MjcwMywgMC41MTc5MzQ5NzgwMDgyNzAzLCAwLjY4MDc5OTAwNzQxNTc3MTUsCisgICAgICAgIC0wLjM3MjE3Nzk4ODI5MDc4Njc0LCAwLjMyNjA2NzAwMDYyNzUxNzcsIDAuODY5MDAxOTg0NTk2MjUyNCwgMC4wODIyMTYwMDIwNDcwNjE5MiwgLTAuMjQzMzY4OTk4MTY5ODk5LCAtMC45NjY0NDMwMDIyMjM5Njg1LAorICAgICAgICAtMC4wOTc4OTQ5OTY0MDQ2NDc4MywgMC4yMzY1MzkwMDYyMzMyMTUzMywgLTAuOTY2Njc4MDIzMzM4MzE3OSwgLTAuMzgwNzk4MDEyMDE4MjAzNzQsIDAuOTIwMTYxMDA4ODM0ODM4OSwgLTAuMDkxMDgxOTk5MjQyMzA1NzYsCisgICAgICAgIC0wLjI3OTg1OTAwNjQwNDg3NjcsIDAuNjc2MjQwMDI2OTUwODM2MiwgMC42ODE0NTQwMDI4NTcyMDgzLCAtMC4yMTg5NDAwMDQ3MDYzODI3NSwgMC40NDMwNTUwMDM4ODE0NTQ0NywgMC44NjkzNDkwMDI4MzgxMzQ4LAorICAgICAgICAwLjA1MDgyMjAwMDk1MDU3NDg3NSwgLTAuMjU3MzkxMDA1NzU0NDcwOCwgLTAuOTY0OTY5OTkyNjM3NjM0MywgLTAuMDUwMjE2MDAwNTI3MTQzNDgsIDAuMjU0MzIxMDA4OTIwNjY5NTYsIC0wLjk2NTgxNTAwNzY4NjYxNSwKKyAgICAgICAgLTAuMTkyOTE2MDA1ODQ5ODM4MjYsIDAuOTc3MDI0OTcyNDM4ODEyMywgLTAuMDkwNTkwMDAwMTUyNTg3ODksIC0wLjE0MjkxMjk5ODc5NTUwOTM0LCAwLjcyMzc4NzAwOTcxNjAzMzksIDAuNjc1MDYwOTg3NDcyNTM0MiwKKyAgICAgICAgLTAuMDk2NzkxOTk3NTUxOTE4MDMsIDAuNDkwMjA3OTk5OTQ0Njg2OSwgMC44NjYyMTQ5OTA2MTU4NDQ3LCAtMC4wNDg1MDcwMDEyNTA5ODIyODUsIC0wLjI1NzY5NDAwNTk2NjE4NjUsIC0wLjk2NTAwODAyMDQwMTAwMSwKKyAgICAgICAgLTAuMTU4MzMzMDAzNTIwOTY1NTgsIC0wLjMyMjc4MDk5NjU2MTA1MDQsIC0wLjkzMzEzNTk4NjMyODEyNSwgMC4wNTY1NjE5OTkwMjI5NjA2NiwgMC4xMzc5MzkwMDYwOTAxNjQxOCwgLTAuOTg4ODI0MDA5ODk1MzI0NywKKyAgICAgICAgMC4wNDkxNTAwMDEyNTc2NTgwMDUsIDAuMjU0NTE5OTk5MDI3MjUyMiwgLTAuOTY1ODE3OTg3OTE4ODUzOCwgMC4zNzgzODc5ODc2MTM2NzgsIDAuOTE3MzI5MDEzMzQ3NjI1NywgLTAuMTIzODEwOTk5MDk1NDM5OTEsCisgICAgICAgIDAuMTkxNzk1MDA2Mzk0Mzg2MywgMC45NzcyNTMwMTk4MDk3MjI5LCAtMC4wOTA1MDc5OTkwNjI1MzgxNSwgMC4yNzc3MjM5OTc4MzEzNDQ2LCAwLjY3MTYwNzAxNzUxNzA4OTgsIDAuNjg2ODg3MDI1ODMzMTI5OSwKKyAgICAgICAgMC4xNDI4MTcwMDU1MTUwOTg1NywgMC43MjM4MDE5NzA0ODE4NzI2LCAwLjY3NTA2NTk5NDI2MjY5NTMsIDAuMTU3ODgyMDA0OTc2MjcyNTgsIDAuNDY3NDIwOTk1MjM1NDQzMSwgMC44Njk4MjIwMjUyOTkwNzIzLAorICAgICAgICAwLjA5Njc5MTk5NzU1MTkxODAzLCAwLjQ5MDIwNzk5OTk0NDY4NjksIDAuODY2MjE0OTkwNjE1ODQ0NywgLTAuMzEzOTA2OTk3NDQyMjQ1NSwgLTAuMjY1NzI3MDEzMzQ5NTMzMSwgLTAuOTExNTExMDAzOTcxMDk5OSwKKyAgICAgICAgMC4wNTI0NzUwMDE2NjI5Njk1OSwgMC4wNTE3ODYwMDE3NzE2ODg0NiwgLTAuOTk3Mjc4OTg4MzYxMzU4NiwgMC42OTk3ODc5NzQzNTc2MDUsIDAuNjk2OTM3OTc4MjY3NjY5NywgLTAuMTU2NzYxMDA1NTIwODIwNjIsCisgICAgICAgIDAuNTExOTI5OTg4ODYxMDg0LCAwLjUxMTYxNTk5MTU5MjQwNzIsIDAuNjkwMDU1MDEyNzAyOTQxOSwgMC4zMjUxNTQwMDY0ODExNzA2NSwgMC4zNzExMTM5ODU3NzY5MDEyNSwgMC44Njk3OTgwMDQ2MjcyMjc4LAorICAgICAgICAtMC4zMTgxOTI5ODg2MzQxMDk1LCAtMC4wOTk4NzYwMDE0NzcyNDE1MiwgLTAuOTQyNzQ5OTc3MTExODE2NCwgMC4xNTUyNzk5OTQwMTA5MjUzLCAwLjA2MTc2Mjk5OTc0MzIyMzE5LCAtMC45ODU5MzgwMTI1OTk5NDUxLAorICAgICAgICAwLjkxODcyNTAxMzczMjkxMDIsIDAuMzc1MTQ2MDAxNTc3Mzc3MywgLTAuMTIzMzI5OTk3MDYyNjgzMSwgMC42NzI0ODcwMjA0OTI1NTM3LCAwLjI3NzU0Mzk5MTgwNDEyMjksIDAuNjg2MDk3OTc5NTQ1NTkzMywKKyAgICAgICAgMC40NDI0Mjk5ODk1NzYzMzk3LCAwLjIxODUzODAwMTE3OTY5NTEzLCAwLjg2OTc2ODk3NzE2NTIyMjIsIC0wLjI1NTk0ODAwNzEwNjc4MSwgLTAuMDQ0NjQyMDAxMzkwNDU3MTUsIC0wLjk2NTY1OTAyMjMzMTIzNzgsCisgICAgICAgIDAuMjUzMDYyMDA5ODExNDAxMzcsIDAuMDQ2MzYyMDAxNDQ4ODY5NzA1LCAtMC45NjYzMzg5OTIxMTg4MzU0LCAwLjk3Nzg5NDAwODE1OTYzNzUsIDAuMTg4MDAxMDA2ODQxNjU5NTUsIC0wLjA5MTUzMjk5Nzc4Njk5ODc1LAorICAgICAgICAwLjcyMzgxNTAyMzg5OTA3ODQsIDAuMTQyMDU3OTk5OTY4NTI4NzUsIDAuNjc1MjEyMDI1NjQyMzk1LCAwLjQ5MDE3OTAwMjI4NTAwMzY2LCAwLjA5NjcwMTAwMzYxMTA4NzgsIDAuODY2MjQwOTc4MjQwOTY2OCwKKyAgICAgICAgLTAuMjU0OTE4OTkyNTE5Mzc4NjYsIDAuMDUwMzMzOTk5MDk3MzQ3MjYsIC0wLjk2NTY1MDk3NTcwNDE5MzEsIC0wLjIzMDI4OTk5NTY3MDMxODYsIDAuMTEzNzk3MDAxNTQwNjYwODYsIC0wLjk2NjQ0NTk4MjQ1NjIwNzMsCisgICAgICAgIDAuMjM2NTM5MDA2MjMzMjE1MzMsIC0wLjA5Nzg5NDk5NjQwNDY0NzgzLCAtMC45NjY2NzgwMjMzMzgzMTc5LCAwLjI1MjI2NTk4OTc4MDQyNiwgLTAuMDQ5ODA5OTk5NzYzOTY1NjEsIC0wLjk2NjM3NDk5MzMyNDI3OTgsCisgICAgICAgIDAuOTIwMTYxMDA4ODM0ODM4OSwgLTAuMzgwNzk4MDEyMDE4MjAzNzQsIC0wLjA5MTA4Mjk5NzYyMDEwNTc0LCAwLjk3NjkwMzk3NTAwOTkxODIsIC0wLjE5Mjg5MjAwMDA3OTE1NDk3LCAtMC4wOTE5MzAwMDE5NzQxMDU4MywKKyAgICAgICAgMC42NzYyNDAwMjY5NTA4MzYyLCAtMC4yNzk4NTkwMDY0MDQ4NzY3LCAwLjY4MTQ1Mjk4OTU3ODI0NzEsIDAuNzIzNjYxMDA1NDk2OTc4OCwgLTAuMTQyODg3OTk0NjQ3MDI2MDYsIDAuNjc1MjAyMDEyMDYyMDcyOCwKKyAgICAgICAgMC40NjgxOTkwMTQ2NjM2OTYzLCAtMC4xNTgxNzYwMDQ4ODY2MjcyLCAwLjg2OTM1MDAxNjExNzA5NiwgMC40OTAxNjYwMDg0NzI0NDI2LCAtMC4wOTY3ODQwMDMwNzg5Mzc1MywgMC44NjYyMzkwMTEyODc2ODkyLAorICAgICAgICAtMC4xNjk1MjM5OTkwOTQ5NjMwNywgMC4xOTM0OTYwMDM3NDY5ODY0LCAtMC45NjYzNDM5OTg5MDg5OTY2LCAwLjE4MTA2ODAwMzE3NzY0MjgyLCAtMC4xODEwNjgwMDMxNzc2NDI4MiwgLTAuOTY2NjU5MDA5NDU2NjM0NSwKKyAgICAgICAgMC43MDQxMTk5ODAzMzUyMzU2LCAtMC43MDQxMTk5ODAzMzUyMzU2LCAtMC4wOTE4MTkwMDMyMjQzNzI4NiwgMC41MTc5MzQ5NzgwMDgyNzAzLCAtMC41MTc5MzQ5NzgwMDgyNzAzLCAwLjY4MDc5OTAwNzQxNTc3MTUsCisgICAgICAgIDAuMzcyMTc3OTg4MjkwNzg2NzQsIC0wLjMyNjA2NzAwMDYyNzUxNzcsIDAuODY5MDAxOTg0NTk2MjUyNCwgLTAuMDgyMjE2MDAyMDQ3MDYxOTIsIDAuMjQzMzY4OTk4MTY5ODk5LCAtMC45NjY0NDMwMDIyMjM5Njg1LAorICAgICAgICAwLjA5Nzg5NDk5NjQwNDY0NzgzLCAtMC4yMzY1MzkwMDYyMzMyMTUzMywgLTAuOTY2Njc4MDIzMzM4MzE3OSwgMC4zODA3OTgwMTIwMTgyMDM3NCwgLTAuOTIwMTYxMDA4ODM0ODM4OSwgLTAuMDkxMDgxOTk5MjQyMzA1NzYsCisgICAgICAgIDAuMjc5ODU5MDA2NDA0ODc2NywgLTAuNjc2MjQwMDI2OTUwODM2MiwgMC42ODE0NTQwMDI4NTcyMDgzLCAwLjIxODk0MDAwNDcwNjM4Mjc1LCAtMC40NDMwNTUwMDM4ODE0NTQ0NywgMC44NjkzNDkwMDI4MzgxMzQ4LAorICAgICAgICAtMC4wNTA0MzQwMDA3OTAxMTkxNywgMC4yNTU0MjcwMDI5MDY3OTkzLCAtMC45NjU1MTE5Nzc2NzI1NzY5LCAwLjA1MDM3Mjk5OTE2MTQ4MTg2LCAtMC4yNTUxMTgwMTI0MjgyODM3LCAtMC45NjU1OTY5NzM4OTYwMjY2LAorICAgICAgICAwLjE5MjkxOTk5OTM2MTAzODIsIC0wLjk3NzA0Nzk3OTgzMTY5NTYsIC0wLjA5MDMyMzk5OTUyNDExNjUyLCAwLjE0MjkxNTk5MzkyODkwOTMsIC0wLjcyMzgwMDAwMzUyODU5NSwgMC42NzUwNDc5OTM2NTk5NzMxLAorICAgICAgICAwLjA5Njc5MTk5NzU1MTkxODAzLCAtMC40OTAyMDc5OTk5NDQ2ODY5LCAwLjg2NjIxNDk5MDYxNTg0NDcsIDAuMDUwNDM0MDAwNzkwMTE5MTcsIDAuMjU1NDI3MDAyOTA2Nzk5MywgLTAuOTY1NTExOTc3NjcyNTc2OSwKKyAgICAgICAgMC4xMTM3OTcwMDE1NDA2NjA4NiwgMC4yMzAyODk5OTU2NzAzMTg2LCAtMC45NjY0NDU5ODI0NTYyMDczLCAtMC4wOTc4OTQ5OTY0MDQ2NDc4MywgLTAuMjM2NTM5MDA2MjMzMjE1MzMsIC0wLjk2NjY3ODAyMzMzODMxNzksCisgICAgICAgIC0wLjA1MDM3Mjk5OTE2MTQ4MTg2LCAtMC4yNTUxMTgwMTI0MjgyODM3LCAtMC45NjU1OTY5NzM4OTYwMjY2LCAtMC4zODA3OTgwMTIwMTgyMDM3NCwgLTAuOTIwMTYxMDA4ODM0ODM4OSwgLTAuMDkxMDgyOTk3NjIwMTA1NzQsCisgICAgICAgIC0wLjE5MjkxOTk5OTM2MTAzODIsIC0wLjk3NzA0Nzk3OTgzMTY5NTYsIC0wLjA5MDMyMzk5OTUyNDExNjUyLCAtMC4yNzk4NTkwMDY0MDQ4NzY3LCAtMC42NzYyNDAwMjY5NTA4MzYyLCAwLjY4MTQ1Mjk4OTU3ODI0NzEsCisgICAgICAgIC0wLjE0MjkxNTk5MzkyODkwOTMsIC0wLjcyMzgwMDAwMzUyODU5NSwgMC42NzUwNDc5OTM2NTk5NzMxLCAtMC4xNTgxNzYwMDQ4ODY2MjcyLCAtMC40NjgxOTkwMTQ2NjM2OTYzLCAwLjg2OTM1MDAxNjExNzA5NiwKKyAgICAgICAgLTAuMDk2NzkxOTk3NTUxOTE4MDMsIC0wLjQ5MDIwNzk5OTk0NDY4NjksIDAuODY2MjE0OTkwNjE1ODQ0NywgMC4xOTM0OTYwMDM3NDY5ODY0LCAwLjE2OTUyMzk5OTA5NDk2MzA3LCAtMC45NjYzNDM5OTg5MDg5OTY2LAorICAgICAgICAtMC4xODEwNjgwMDMxNzc2NDI4MiwgLTAuMTgxMDY4MDAzMTc3NjQyODIsIC0wLjk2NjY1OTAwOTQ1NjYzNDUsIC0wLjcwNDExOTk4MDMzNTIzNTYsIC0wLjcwNDExOTk4MDMzNTIzNTYsIC0wLjA5MTgxOTAwMzIyNDM3Mjg2LAorICAgICAgICAtMC41MTc5MzQ5NzgwMDgyNzAzLCAtMC41MTc5MzQ5NzgwMDgyNzAzLCAwLjY4MDc5OTAwNzQxNTc3MTUsIC0wLjMyNjA2NzAwMDYyNzUxNzcsIC0wLjM3MjE3Nzk4ODI5MDc4Njc0LCAwLjg2OTAwMTk4NDU5NjI1MjQsCisgICAgICAgIDAuMjQzMzY4OTk4MTY5ODk5LCAwLjA4MjIxNjAwMjA0NzA2MTkyLCAtMC45NjY0NDMwMDIyMjM5Njg1LCAtMC4yMzY1MzkwMDYyMzMyMTUzMywgLTAuMDk3ODk0OTk2NDA0NjQ3ODMsIC0wLjk2NjY3ODAyMzMzODMxNzksCisgICAgICAgIC0wLjkyMDE2MTAwODgzNDgzODksIC0wLjM4MDc5ODAxMjAxODIwMzc0LCAtMC4wOTEwODE5OTkyNDIzMDU3NiwgLTAuNjc2MjQwMDI2OTUwODM2MiwgLTAuMjc5ODU5MDA2NDA0ODc2NywgMC42ODE0NTQwMDI4NTcyMDgzLAorICAgICAgICAtMC40NDMwNTUwMDM4ODE0NTQ0NywgLTAuMjE4OTQwMDA0NzA2MzgyNzUsIDAuODY5MzQ5MDAyODM4MTM0OCwgMC4yNTU0MjcwMDI5MDY3OTkzLCAwLjA1MDQzNDAwMDc5MDExOTE3LCAtMC45NjU1MTE5Nzc2NzI1NzY5LAorICAgICAgICAtMC4yNTUxMTgwMTI0MjgyODM3LCAtMC4wNTAzNzI5OTkxNjE0ODE4NiwgLTAuOTY1NTk2OTczODk2MDI2NiwgLTAuOTc3MDQ3OTc5ODMxNjk1NiwgLTAuMTkyOTE5OTk5MzYxMDM4MiwgLTAuMDkwMzIzOTk5NTI0MTE2NTIsCisgICAgICAgIC0wLjcyMzgwMDAwMzUyODU5NSwgLTAuMTQyOTE1OTkzOTI4OTA5MywgMC42NzUwNDc5OTM2NTk5NzMxLCAtMC40OTAyMDc5OTk5NDQ2ODY5LCAtMC4wOTY3OTE5OTc1NTE5MTgwMywgMC44NjYyMTQ5OTA2MTU4NDQ3LAorICAgICAgICAtMC40OTAyMDc5OTk5NDQ2ODY5LCAwLjA5Njc5MTk5NzU1MTkxODAzLCAwLjg2NjIxNDk5MDYxNTg0NDcsIC0wLjQ0MzA1NTAwMzg4MTQ1NDQ3LCAwLjIxODkzOTAwNjMyODU4Mjc2LCAwLjg2OTM0OTAwMjgzODEzNDgsCisgICAgICAgIC0wLjM3Mjg3NTk4ODQ4MzQyODk2LCAwLjE1NDMxMTk5OTY3ODYxMTc2LCAwLjkxNDk2MDAyNjc0MTAyNzgsIC0wLjQwMTQ1Nzk5NTE3NjMxNTMsIDAuMDc5MjY4MDAxMDE5OTU0NjgsIDAuOTEyNDQxMDE1MjQzNTMwMywKKyAgICAgICAgLTAuMzExMjU3OTg4MjE0NDkyOCwgMC4xMjg4MTEwMDE3Nzc2NDg5MywgMC45NDE1NTUwMjMxOTMzNTk0LCAtMC4zMzU0MTMwMDg5MjgyOTg5NSwgMC4wNjYyMjgwMDIzMDk3OTkyLCAwLjkzOTc0MDAwMjE1NTMwNCwKKyAgICAgICAgLTAuMTkwMTUyMDA0MzYxMTUyNjUsIDAuMDc4NjkwOTk4MjU2MjA2NTEsIDAuOTc4NTk1OTcyMDYxMTU3MiwgLTAuMjA1MTczOTk5MDcxMTIxMjIsIDAuMDQwNTExOTk5Mjc5MjYwNjM1LCAwLjk3Nzg4Njk3NDgxMTU1NCwKKyAgICAgICAgMC4wNjMwMTgwMDE2MTYwMDExMywgLTAuMDIxMjg5MDAwMjg3NjUyMDE2LCAwLjk5Nzc4NDk3MjE5MDg1NjksIDAuMDY2MjM0MDAwMDI3MTc5NzIsIC0wLjAxMzA3ODAwMDM5NjQ5MDA5NywgMC45OTc3MTc5NzY1NzAxMjk0LAorICAgICAgICAtMC4zMjYwNjcwMDA2Mjc1MTc3LCAwLjM3MjE3Nzk4ODI5MDc4Njc0LCAwLjg2OTAwMTk4NDU5NjI1MjQsIC0wLjI4NTczOTAwNDYxMTk2OSwgMC4yODU3MzkwMDQ2MTE5NjksIDAuOTE0NzE3MDE4NjA0Mjc4NiwKKyAgICAgICAgLTAuMjM4NTQ0MDAyMTc1MzMxMTIsIDAuMjM4NTQ0MDAyMTc1MzMxMTIsIDAuOTQxMzc5MDEwNjc3MzM3NiwgLTAuMTQ1NzQ5MDAyNjk1MDgzNjIsIDAuMTQ1NzQ5MDAyNjk1MDgzNjIsIDAuOTc4NTI3MDA5NDg3MTUyMSwKKyAgICAgICAgMC4wNTAxMTIwMDE1OTc4ODEzMiwgLTAuMDQzOTAzMDAwNjUyNzkwMDcsIDAuOTk3Nzc3OTk4NDQ3NDE4MiwgLTAuMTU4MTc2MDA0ODg2NjI3MiwgMC40NjgxOTk5OTgxNDAzMzUxLCAwLjg2OTM1MDAxNjExNzA5NiwKKyAgICAgICAgLTAuMTU0MzExOTk5Njc4NjExNzYsIDAuMzcyODc1OTg4NDgzNDI4OTYsIDAuOTE0OTYwMDI2NzQxMDI3OCwgLTAuMTI4ODExMDAxNzc3NjQ4OTMsIDAuMzExMjU3OTg4MjE0NDkyOCwgMC45NDE1NTUwMjMxOTMzNTk0LAorICAgICAgICAtMC4wNzg2OTA5OTgyNTYyMDY1MSwgMC4xOTAxNTEwMDU5ODMzNTI2NiwgMC45Nzg1OTU5NzIwNjExNTcyLCAwLjAyOTQ2Njk5OTY5NDcwNTAxLCAtMC4wNTk2MzE5OTk1ODIwNTIyMywgMC45OTc3ODQ5NzIxOTA4NTY5LAorICAgICAgICAtMC4wOTY3OTE5OTc1NTE5MTgwMywgMC40OTAyMDc5OTk5NDQ2ODY5LCAwLjg2NjIxNDk5MDYxNTg0NDcsIC0wLjA3OTI2ODAwMTAxOTk1NDY4LCAwLjQwMTQ1Nzk5NTE3NjMxNTMsIDAuOTEyNDQxMDE1MjQzNTMwMywKKyAgICAgICAgLTAuMDY2MjI4MDAyMzA5Nzk5MiwgMC4zMzU0MTMwMDg5MjgyOTg5NSwgMC45Mzk3NDAwMDIxNTUzMDQsIC0wLjA0MDUxMTk5OTI3OTI2MDYzNSwgMC4yMDUxNzM5OTkwNzExMjEyMiwgMC45Nzc4ODY5NzQ4MTE1NTQsCisgICAgICAgIDAuMDEzMDc4MDAwMzk2NDkwMDk3LCAtMC4wNjYyMzQwMDAwMjcxNzk3MiwgMC45OTc3MTc5NzY1NzAxMjk0LCAwLjA5Njc5MTk5NzU1MTkxODAzLCAwLjQ5MDIwNzk5OTk0NDY4NjksIDAuODY2MjE0OTkwNjE1ODQ0NywKKyAgICAgICAgMC4yMTg1ODIwMDQzMDg3MDA1NiwgMC40NDIzMjE5ODU5NjAwMDY3LCAwLjg2OTgxMjAxMTcxODc1LCAwLjE1NDMxMTk5OTY3ODYxMTc2LCAwLjM3Mjg3NTk4ODQ4MzQyODk2LCAwLjkxNDk2MDAyNjc0MTAyNzgsCisgICAgICAgIDAuMDc5MjY4MDAxMDE5OTU0NjgsIDAuNDAxNDU3OTk1MTc2MzE1MywgMC45MTI0NDEwMTUyNDM1MzAzLCAwLjEyODgxMTAwMTc3NzY0ODkzLCAwLjMxMTI1Nzk4ODIxNDQ5MjgsIDAuOTQxNTU1MDIzMTkzMzU5NCwKKyAgICAgICAgMC4wNjYyMjgwMDIzMDk3OTkyLCAwLjMzNTQxMzAwODkyODI5ODk1LCAwLjkzOTc0MDAwMjE1NTMwNCwgMC4wNzg2OTA5OTgyNTYyMDY1MSwgMC4xOTAxNTIwMDQzNjExNTI2NSwgMC45Nzg1OTU5NzIwNjExNTcyLAorICAgICAgICAwLjA0MDUxMTk5OTI3OTI2MDYzNSwgMC4yMDUxNzM5OTkwNzExMjEyMiwgMC45Nzc4ODY5NzQ4MTE1NTQsIC0wLjAyMTI4OTAwMDI4NzY1MjAxNiwgLTAuMDYzMDE4MDAxNjE2MDAxMTMsIDAuOTk3Nzg0OTcyMTkwODU2OSwKKyAgICAgICAgLTAuMDEzMDc4MDAwMzk2NDkwMDk3LCAtMC4wNjYyMzQwMDAwMjcxNzk3MiwgMC45OTc3MTc5NzY1NzAxMjk0LCAwLjM3MTEzMjk5OTY1ODU4NDYsIDAuMzI1MTQ4OTk5NjkxMDA5NSwgMC44Njk3OTE5ODQ1NTgxMDU1LAorICAgICAgICAwLjI4NTczOTAwNDYxMTk2OSwgMC4yODU3MzkwMDQ2MTE5NjksIDAuOTE0NzE3MDE4NjA0Mjc4NiwgMC4yMzg1NDQwMDIxNzUzMzExMiwgMC4yMzg1NDQwMDIxNzUzMzExMiwgMC45NDEzNzkwMTA2NzczMzc2LAorICAgICAgICAwLjE0NTc0OTAwMjY5NTA4MzYyLCAwLjE0NTc0OTAwMjY5NTA4MzYyLCAwLjk3ODUyNzAwOTQ4NzE1MjEsIC0wLjA0MzkwMzAwMDY1Mjc5MDA3LCAtMC4wNTAxMTIwMDE1OTc4ODEzMiwgMC45OTc3Nzc5OTg0NDc0MTgyLAorICAgICAgICAwLjQ2NzUwMTk5Nzk0NzY5Mjg3LCAwLjE1Nzk0MDk5ODY3MzQzOTAzLCAwLjg2OTc2ODAyMzQ5MDkwNTgsIDAuMzcyODc1OTg4NDgzNDI4OTYsIDAuMTU0MzExOTk5Njc4NjExNzYsIDAuOTE0OTYwMDI2NzQxMDI3OCwKKyAgICAgICAgMC4zMTEyNTc5ODgyMTQ0OTI4LCAwLjEyODgxMTAwMTc3NzY0ODkzLCAwLjk0MTU1NTAyMzE5MzM1OTQsIDAuMTkwMTUxMDA1OTgzMzUyNjYsIDAuMDc4NjkwOTk4MjU2MjA2NTEsIDAuOTc4NTk1OTcyMDYxMTU3MiwKKyAgICAgICAgLTAuMDU5NjMxOTk5NTgyMDUyMjMsIC0wLjAyOTQ2Njk5OTY5NDcwNTAxLCAwLjk5Nzc4NDk3MjE5MDg1NjksIDAuNDkwMTc5MDAyMjg1MDAzNjYsIDAuMDk2NzAxMDAzNjExMDg3OCwgMC44NjYyNDA5NzgyNDA5NjY4LAorICAgICAgICAwLjQwMTQ1Nzk5NTE3NjMxNTMsIDAuMDc5MjY4MDAxMDE5OTU0NjgsIDAuOTEyNDQxMDE1MjQzNTMwMywgMC4zMzU0MTMwMDg5MjgyOTg5NSwgMC4wNjYyMjgwMDIzMDk3OTkyLCAwLjkzOTc0MDAwMjE1NTMwNCwKKyAgICAgICAgMC4yMDUxNzM5OTkwNzExMjEyMiwgMC4wNDA1MTE5OTkyNzkyNjA2MzUsIDAuOTc3ODg2OTc0ODExNTU0LCAtMC4wNjYyMzQwMDAwMjcxNzk3MiwgLTAuMDEzMDc4MDAwMzk2NDkwMDk3LCAwLjk5NzcxNzk3NjU3MDEyOTQsCisgICAgICAgIDAuNDkwMTY2MDA4NDcyNDQyNiwgLTAuMDk2Nzg0MDAzMDc4OTM3NTMsIDAuODY2MjM5MDExMjg3Njg5MiwgMC40NDMwNTUwMDM4ODE0NTQ0NywgLTAuMjE4OTM5MDA2MzI4NTgyNzYsIDAuODY5MzQ5MDAyODM4MTM0OCwKKyAgICAgICAgMC4zNzI4NzU5ODg0ODM0Mjg5NiwgLTAuMTU0MzExOTk5Njc4NjExNzYsIDAuOTE0OTYwMDI2NzQxMDI3OCwgMC40MDE0NTc5OTUxNzYzMTUzLCAtMC4wNzkyNjgwMDEwMTk5NTQ2OCwgMC45MTI0NDEwMTUyNDM1MzAzLAorICAgICAgICAwLjMxMTI1Nzk4ODIxNDQ5MjgsIC0wLjEyODgxMTAwMTc3NzY0ODkzLCAwLjk0MTU1NTAyMzE5MzM1OTQsIDAuMzM1NDEzMDA4OTI4Mjk4OTUsIC0wLjA2NjIyODAwMjMwOTc5OTIsIDAuOTM5NzQwMDAyMTU1MzA0LAorICAgICAgICAwLjE5MDE1MjAwNDM2MTE1MjY1LCAtMC4wNzg2OTA5OTgyNTYyMDY1MSwgMC45Nzg1OTU5NzIwNjExNTcyLCAwLjIwNTE3Mzk5OTA3MTEyMTIyLCAtMC4wNDA1MTE5OTkyNzkyNjA2MzUsIDAuOTc3ODg2OTc0ODExNTU0LAorICAgICAgICAtMC4wNjMwMTgwMDE2MTYwMDExMywgMC4wMjEyODkwMDAyODc2NTIwMTYsIDAuOTk3Nzg0OTcyMTkwODU2OSwgLTAuMDY2MjM0MDAwMDI3MTc5NzIsIDAuMDEzMDc4MDAwMzk2NDkwMDk3LCAwLjk5NzcxNzk3NjU3MDEyOTQsCisgICAgICAgIDAuMzI2MDY3MDAwNjI3NTE3NywgLTAuMzcyMTc3OTg4MjkwNzg2NzQsIDAuODY5MDAxOTg0NTk2MjUyNCwgMC4yODU3MzkwMDQ2MTE5NjksIC0wLjI4NTczOTAwNDYxMTk2OSwgMC45MTQ3MTcwMTg2MDQyNzg2LAorICAgICAgICAwLjIzODU0NDAwMjE3NTMzMTEyLCAtMC4yMzg1NDQwMDIxNzUzMzExMiwgMC45NDEzNzkwMTA2NzczMzc2LCAwLjE0NTc0OTAwMjY5NTA4MzYyLCAtMC4xNDU3NDkwMDI2OTUwODM2MiwgMC45Nzg1MjcwMDk0ODcxNTIxLAorICAgICAgICAtMC4wNTAxMTIwMDE1OTc4ODEzMiwgMC4wNDM5MDMwMDA2NTI3OTAwNywgMC45OTc3Nzc5OTg0NDc0MTgyLCAwLjE1ODE3NjAwNDg4NjYyNzIsIC0wLjQ2ODE5OTk5ODE0MDMzNTEsIDAuODY5MzUwMDE2MTE3MDk2LAorICAgICAgICAwLjE1NDMxMTk5OTY3ODYxMTc2LCAtMC4zNzI4NzU5ODg0ODM0Mjg5NiwgMC45MTQ5NjAwMjY3NDEwMjc4LCAwLjEyODgxMTAwMTc3NzY0ODkzLCAtMC4zMTEyNTc5ODgyMTQ0OTI4LCAwLjk0MTU1NTAyMzE5MzM1OTQsCisgICAgICAgIDAuMDc4NjkwOTk4MjU2MjA2NTEsIC0wLjE5MDE1MTAwNTk4MzM1MjY2LCAwLjk3ODU5NTk3MjA2MTE1NzIsIC0wLjAyOTQ2Njk5OTY5NDcwNTAxLCAwLjA1OTYzMTk5OTU4MjA1MjIzLCAwLjk5Nzc4NDk3MjE5MDg1NjksCisgICAgICAgIDAuMDk2NzkxOTk3NTUxOTE4MDMsIC0wLjQ5MDIwNzk5OTk0NDY4NjksIDAuODY2MjE0OTkwNjE1ODQ0NywgMC4wNzkyNjgwMDEwMTk5NTQ2OCwgLTAuNDAxNDU3OTk1MTc2MzE1MywgMC45MTI0NDEwMTUyNDM1MzAzLAorICAgICAgICAwLjA2NjIyODAwMjMwOTc5OTIsIC0wLjMzNTQxMzAwODkyODI5ODk1LCAwLjkzOTc0MDAwMjE1NTMwNCwgMC4wNDA1MTE5OTkyNzkyNjA2MzUsIC0wLjIwNTE3Mzk5OTA3MTEyMTIyLCAwLjk3Nzg4Njk3NDgxMTU1NCwKKyAgICAgICAgLTAuMDEzMDc4MDAwMzk2NDkwMDk3LCAwLjA2NjIzNDAwMDAyNzE3OTcyLCAwLjk5NzcxNzk3NjU3MDEyOTQsIC0wLjA5Njc5MTk5NzU1MTkxODAzLCAtMC40OTAyMDc5OTk5NDQ2ODY5LCAwLjg2NjIxNDk5MDYxNTg0NDcsCisgICAgICAgIC0wLjIxODkzOTAwNjMyODU4Mjc2LCAtMC40NDMwNTUwMDM4ODE0NTQ0NywgMC44NjkzNDkwMDI4MzgxMzQ4LCAtMC4xNTQzMTE5OTk2Nzg2MTE3NiwgLTAuMzcyODc1OTg4NDgzNDI4OTYsIDAuOTE0OTYwMDI2NzQxMDI3OCwKKyAgICAgICAgLTAuMDc5MjY4MDAxMDE5OTU0NjgsIC0wLjQwMTQ1Nzk5NTE3NjMxNTMsIDAuOTEyNDQxMDE1MjQzNTMwMywgLTAuMTI4ODExMDAxNzc3NjQ4OTMsIC0wLjMxMTI1Nzk4ODIxNDQ5MjgsIDAuOTQxNTU1MDIzMTkzMzU5NCwKKyAgICAgICAgLTAuMDY2MjI4MDAyMzA5Nzk5MiwgLTAuMzM1NDEzMDA4OTI4Mjk4OTUsIDAuOTM5NzQwMDAyMTU1MzA0LCAtMC4wNzg2OTA5OTgyNTYyMDY1MSwgLTAuMTkwMTUyMDA0MzYxMTUyNjUsIDAuOTc4NTk1OTcyMDYxMTU3MiwKKyAgICAgICAgLTAuMDQwNTExOTk5Mjc5MjYwNjM1LCAtMC4yMDUxNzM5OTkwNzExMjEyMiwgMC45Nzc4ODY5NzQ4MTE1NTQsIDAuMDIxMjg5MDAwMjg3NjUyMDE2LCAwLjA2MzAxODAwMTYxNjAwMTEzLCAwLjk5Nzc4NDk3MjE5MDg1NjksCisgICAgICAgIDAuMDEzMDc4MDAwMzk2NDkwMDk3LCAwLjA2NjIzNDAwMDAyNzE3OTcyLCAwLjk5NzcxNzk3NjU3MDEyOTQsIC0wLjM3MjE3Nzk4ODI5MDc4Njc0LCAtMC4zMjYwNjcwMDA2Mjc1MTc3LCAwLjg2OTAwMTk4NDU5NjI1MjQsCisgICAgICAgIC0wLjI4NTczOTAwNDYxMTk2OSwgLTAuMjg1NzM5MDA0NjExOTY5LCAwLjkxNDcxNzAxODYwNDI3ODYsIC0wLjIzODU0NDAwMjE3NTMzMTEyLCAtMC4yMzg1NDQwMDIxNzUzMzExMiwgMC45NDEzNzkwMTA2NzczMzc2LAorICAgICAgICAtMC4xNDU3NDkwMDI2OTUwODM2MiwgLTAuMTQ1NzQ5MDAyNjk1MDgzNjIsIDAuOTc4NTI3MDA5NDg3MTUyMSwgMC4wNDM5MDMwMDA2NTI3OTAwNywgMC4wNTAxMTIwMDE1OTc4ODEzMiwgMC45OTc3Nzc5OTg0NDc0MTgyLAorICAgICAgICAtMC40NjgxOTk5OTgxNDAzMzUxLCAtMC4xNTgxNzYwMDQ4ODY2MjcyLCAwLjg2OTM1MDAxNjExNzA5NiwgLTAuMzcyODc1OTg4NDgzNDI4OTYsIC0wLjE1NDMxMTk5OTY3ODYxMTc2LCAwLjkxNDk2MDAyNjc0MTAyNzgsCisgICAgICAgIC0wLjMxMTI1Nzk4ODIxNDQ5MjgsIC0wLjEyODgxMTAwMTc3NzY0ODkzLCAwLjk0MTU1NTAyMzE5MzM1OTQsIC0wLjE5MDE1MTAwNTk4MzM1MjY2LCAtMC4wNzg2OTA5OTgyNTYyMDY1MSwgMC45Nzg1OTU5NzIwNjExNTcyLAorICAgICAgICAwLjA1OTYzMTk5OTU4MjA1MjIzLCAwLjAyOTQ2Njk5OTY5NDcwNTAxLCAwLjk5Nzc4NDk3MjE5MDg1NjksIC0wLjQ5MDIwNzk5OTk0NDY4NjksIC0wLjA5Njc5MTk5NzU1MTkxODAzLCAwLjg2NjIxNDk5MDYxNTg0NDcsCisgICAgICAgIC0wLjQwMTQ1Nzk5NTE3NjMxNTMsIC0wLjA3OTI2ODAwMTAxOTk1NDY4LCAwLjkxMjQ0MTAxNTI0MzUzMDMsIC0wLjMzNTQxMzAwODkyODI5ODk1LCAtMC4wNjYyMjgwMDIzMDk3OTkyLCAwLjkzOTc0MDAwMjE1NTMwNCwKKyAgICAgICAgLTAuMjA1MTczOTk5MDcxMTIxMjIsIC0wLjA0MDUxMTk5OTI3OTI2MDYzNSwgMC45Nzc4ODY5NzQ4MTE1NTQsIDAuMDY2MjM0MDAwMDI3MTc5NzIsIDAuMDEzMDc4MDAwMzk2NDkwMDk3LCAwLjk5NzcxNzk3NjU3MDEyOTQsCisgICAgICAgIDAuMDY2MjM0MDAwMDI3MTc5NzIsIC0wLjAxMzA3ODAwMDM5NjQ5MDA5NywgMC45OTc3MTc5NzY1NzAxMjk0LCAwLjA1OTYzMTk5OTU4MjA1MjIzLCAtMC4wMjk0NjY5OTk2OTQ3MDUwMSwgMC45OTc3ODQ5NzIxOTA4NTY5LAorICAgICAgICAwLjQwMzAzMjAwNDgzMzIyMTQ0LCAtMC4xNjY3ODg5OTUyNjU5NjA3LCAwLjg5OTg1OTAxMTE3MzI0ODMsIDAuNDMzOTEyMDA5MDAwNzc4MiwgLTAuMDg1Njc2OTk3OTAwMDA5MTYsIDAuODk2ODcxOTg0MDA0OTc0NCwKKyAgICAgICAgMC42MzI2MzEwMDM4NTY2NTg5LCAtMC4yNjE4MTA5ODgxODc3ODk5LCAwLjcyODg1Nzk5NDA3OTU4OTgsIDAuNjc3NzEyMDIzMjU4MjA5MiwgLTAuMTMzODE2MDAzNzk5NDM4NDgsIDAuNzIzMDQ4OTg1MDA0NDI1LAorICAgICAgICAwLjY2NjEzMzk5OTgyNDUyMzksIC0wLjI3NTY3NjAxMjAzOTE4NDU3LCAwLjY5MzAxNDAyNTY4ODE3MTQsIDAuNzEyODU0MDI3NzQ4MTA3OSwgLTAuMTQwNzU0OTk3NzMwMjU1MTMsIDAuNjg3MDQzMDExMTg4NTA3MSwKKyAgICAgICAgMC41Nzc3NTk5ODExNTUzOTU1LCAtMC4xOTUxOTA5OTU5MzE2MjUzNywgMC43OTI1MjM5ODAxNDA2ODYsIDAuNjAzNjQ5MDIwMTk1MDA3MywgLTAuMTE5MTkxOTk2NzUzMjE1NzksIDAuNzg4MjkwMDIzODAzNzEwOSwKKyAgICAgICAgMC4wNDM5MDMwMDA2NTI3OTAwNywgLTAuMDUwMTEyMDAxNTk3ODgxMzIsIDAuOTk3Nzc3OTk4NDQ3NDE4MiwgMC4zMDg4NDc5OTM2MTIyODk0MywgLTAuMzA4ODQ3OTkzNjEyMjg5NDMsIDAuODk5NTY5OTg4MjUwNzMyNCwKKyAgICAgICAgMC40ODQ1NzMwMDY2Mjk5NDM4NSwgLTAuNDg0NTczMDA2NjI5OTQzODUsIDAuNzI4MjcxMDA3NTM3ODQxOCwgMC41MTAxMzg5ODg0OTQ4NzMsIC0wLjUxMDEzODk4ODQ5NDg3MywgMC42OTI0NzEwMjczNzQyNjc2LAorICAgICAgICAwLjQ1OTExMTAwNTA2NzgyNTMsIC0wLjQwMjIyOTk5NDUzNTQ0NjE3LCAwLjc5MjEwMjk5MjUzNDYzNzUsIDAuMDIxMjg5MDAwMjg3NjUyMDE2LCAtMC4wNjMwMTgwMDE2MTYwMDExMywgMC45OTc3ODQ5NzIxOTA4NTY5LAorICAgICAgICAwLjE2Njc4OTk5MzY0Mzc2MDY4LCAtMC40MDMwMzIwMDQ4MzMyMjE0NCwgMC44OTk4NTkwMTExNzMyNDgzLCAwLjI2MTgxMDk4ODE4Nzc4OTksIC0wLjYzMjYzMTAwMzg1NjY1ODksIDAuNzI4ODU3OTk0MDc5NTg5OCwKKyAgICAgICAgMC4yNzU2NzYwMTIwMzkxODQ1NywgLTAuNjY2MTMzOTk5ODI0NTIzOSwgMC42OTMwMTQwMjU2ODgxNzE0LCAwLjI3MDE3NzAwNjcyMTQ5NjYsIC0wLjU0NjczNzAxNTI0NzM0NSwgMC43OTI1MTcwMDYzOTcyNDczLAorICAgICAgICAwLjAxMzA3ODAwMDM5NjQ5MDA5NywgLTAuMDY2MjM0MDAwMDI3MTc5NzIsIDAuOTk3NzE3OTc2NTcwMTI5NCwgMC4wODU2NzU5OTk1MjIyMDkxNywgLTAuNDMzOTEyMDA5MDAwNzc4MiwgMC44OTY4NzE5ODQwMDQ5NzQ0LAorICAgICAgICAwLjEzMzgxNjAwMzc5OTQzODQ4LCAtMC42Nzc3MTIwMjMyNTgyMDkyLCAwLjcyMzA0ODk4NTAwNDQyNSwgMC4xNDA3NTQ5OTc3MzAyNTUxMywgLTAuNzEyODU0MDI3NzQ4MTA3OSwgMC42ODcwNDMwMTExODg1MDcxLAorICAgICAgICAwLjExOTE5MTk5Njc1MzIxNTc5LCAtMC42MDM2NDkwMjAxOTUwMDczLCAwLjc4ODI5MDAyMzgwMzcxMDksIC0wLjAxMzA3ODAwMDM5NjQ5MDA5NywgLTAuMDY2MjM0MDAwMDI3MTc5NzIsIDAuOTk3NzE3OTc2NTcwMTI5NCwKKyAgICAgICAgLTAuMDI5NDY2OTk5Njk0NzA1MDEsIC0wLjA1OTYzMTk5OTU4MjA1MjIzLCAwLjk5Nzc4NDk3MjE5MDg1NjksIC0wLjE2Njc4ODk5NTI2NTk2MDcsIC0wLjQwMzAzMjAwNDgzMzIyMTQ0LCAwLjg5OTg1OTAxMTE3MzI0ODMsCisgICAgICAgIC0wLjA4NTY3Njk5NzkwMDAwOTE2LCAtMC40MzM5MTIwMDkwMDA3NzgyLCAwLjg5Njg3MTk4NDAwNDk3NDQsIC0wLjI2MTgxMDk4ODE4Nzc4OTksIC0wLjYzMjYzMTAwMzg1NjY1ODksIDAuNzI4ODU3OTk0MDc5NTg5OCwKKyAgICAgICAgLTAuMTMzODE2MDAzNzk5NDM4NDgsIC0wLjY3NzcxMjAyMzI1ODIwOTIsIDAuNzIzMDQ4OTg1MDA0NDI1LCAtMC4yNzU2NzYwMTIwMzkxODQ1NywgLTAuNjY2MTMzOTk5ODI0NTIzOSwgMC42OTMwMTQwMjU2ODgxNzE0LAorICAgICAgICAtMC4xNDA3NTQ5OTc3MzAyNTUxMywgLTAuNzEyODU0MDI3NzQ4MTA3OSwgMC42ODcwNDMwMTExODg1MDcxLCAtMC4xOTUxOTA5OTU5MzE2MjUzNywgLTAuNTc3NzU5OTgxMTU1Mzk1NSwgMC43OTI1MjM5ODAxNDA2ODYsCisgICAgICAgIC0wLjExOTE5MTk5Njc1MzIxNTc5LCAtMC42MDM2NDkwMjAxOTUwMDczLCAwLjc4ODI5MDAyMzgwMzcxMDksIC0wLjA1MDExMjAwMTU5Nzg4MTMyLCAtMC4wNDM5MDMwMDA2NTI3OTAwNywgMC45OTc3Nzc5OTg0NDc0MTgyLAorICAgICAgICAtMC4zMDg4NDc5OTM2MTIyODk0MywgLTAuMzA4ODQ3OTkzNjEyMjg5NDMsIDAuODk5NTY5OTg4MjUwNzMyNCwgLTAuNDg0NTczMDA2NjI5OTQzODUsIC0wLjQ4NDU3MzAwNjYyOTk0Mzg1LCAwLjcyODI3MTAwNzUzNzg0MTgsCisgICAgICAgIC0wLjUxMDEzODk4ODQ5NDg3MywgLTAuNTEwMTM4OTg4NDk0ODczLCAwLjY5MjQ3MTAyNzM3NDI2NzYsIC0wLjQwMjIyOTk5NDUzNTQ0NjE3LCAtMC40NTkxMTEwMDUwNjc4MjUzLCAwLjc5MjEwMjk5MjUzNDYzNzUsCisgICAgICAgIC0wLjA2MzAxODAwMTYxNjAwMTEzLCAtMC4wMjEyODkwMDAyODc2NTIwMTYsIDAuOTk3Nzg0OTcyMTkwODU2OSwgLTAuNDAzMDMyMDA0ODMzMjIxNDQsIC0wLjE2Njc4OTk5MzY0Mzc2MDY4LCAwLjg5OTg1OTAxMTE3MzI0ODMsCisgICAgICAgIC0wLjYzMjYzMTAwMzg1NjY1ODksIC0wLjI2MTgxMDk4ODE4Nzc4OTksIDAuNzI4ODU3OTk0MDc5NTg5OCwgLTAuNjY2MTMzOTk5ODI0NTIzOSwgLTAuMjc1Njc2MDEyMDM5MTg0NTcsIDAuNjkzMDE0MDI1Njg4MTcxNCwKKyAgICAgICAgLTAuNTQ2NzM3MDE1MjQ3MzQ1LCAtMC4yNzAxNzcwMDY3MjE0OTY2LCAwLjc5MjUxNzAwNjM5NzI0NzMsIC0wLjA2NjIzNDAwMDAyNzE3OTcyLCAtMC4wMTMwNzgwMDAzOTY0OTAwOTcsIDAuOTk3NzE3OTc2NTcwMTI5NCwKKyAgICAgICAgLTAuNDMzOTEyMDA5MDAwNzc4MiwgLTAuMDg1Njc1OTk5NTIyMjA5MTcsIDAuODk2ODcxOTg0MDA0OTc0NCwgLTAuNjc3NzEyMDIzMjU4MjA5MiwgLTAuMTMzODE2MDAzNzk5NDM4NDgsIDAuNzIzMDQ4OTg1MDA0NDI1LAorICAgICAgICAtMC43MTI4NTQwMjc3NDgxMDc5LCAtMC4xNDA3NTQ5OTc3MzAyNTUxMywgMC42ODcwNDMwMTExODg1MDcxLCAtMC42MDM2NDkwMjAxOTUwMDczLCAtMC4xMTkxOTE5OTY3NTMyMTU3OSwgMC43ODgyOTAwMjM4MDM3MTA5LAorICAgICAgICAtMC4wNjYyMzQwMDAwMjcxNzk3MiwgMC4wMTMwNzgwMDAzOTY0OTAwOTcsIDAuOTk3NzE3OTc2NTcwMTI5NCwgLTAuMDU5NjMxOTk5NTgyMDUyMjMsIDAuMDI5NDY2OTk5Njk0NzA1MDEsIDAuOTk3Nzg0OTcyMTkwODU2OSwKKyAgICAgICAgLTAuNDAzMDMyMDA0ODMzMjIxNDQsIDAuMTY2Nzg4OTk1MjY1OTYwNywgMC44OTk4NTkwMTExNzMyNDgzLCAtMC40MzM5MTIwMDkwMDA3NzgyLCAwLjA4NTY3Njk5NzkwMDAwOTE2LCAwLjg5Njg3MTk4NDAwNDk3NDQsCisgICAgICAgIC0wLjYzMjYzMTAwMzg1NjY1ODksIDAuMjYxODEwOTg4MTg3Nzg5OSwgMC43Mjg4NTc5OTQwNzk1ODk4LCAtMC42Nzc3MTIwMjMyNTgyMDkyLCAwLjEzMzgxNjAwMzc5OTQzODQ4LCAwLjcyMzA0ODk4NTAwNDQyNSwKKyAgICAgICAgLTAuNjY2MTMzOTk5ODI0NTIzOSwgMC4yNzU2NzYwMTIwMzkxODQ1NywgMC42OTMwMTQwMjU2ODgxNzE0LCAtMC43MTI4NTQwMjc3NDgxMDc5LCAwLjE0MDc1NDk5NzczMDI1NTEzLCAwLjY4NzA0MzAxMTE4ODUwNzEsCisgICAgICAgIC0wLjU3Nzc1OTk4MTE1NTM5NTUsIDAuMTk1MTkwOTk1OTMxNjI1MzcsIDAuNzkyNTIzOTgwMTQwNjg2LCAtMC42MDM2NDkwMjAxOTUwMDczLCAwLjExOTE5MTk5Njc1MzIxNTc5LCAwLjc4ODI5MDAyMzgwMzcxMDksCisgICAgICAgIC0wLjA0MzkwMzAwMDY1Mjc5MDA3LCAwLjA1MDExMjAwMTU5Nzg4MTMyLCAwLjk5Nzc3Nzk5ODQ0NzQxODIsIC0wLjMwODg0Nzk5MzYxMjI4OTQzLCAwLjMwODg0Nzk5MzYxMjI4OTQzLCAwLjg5OTU2OTk4ODI1MDczMjQsCisgICAgICAgIC0wLjQ4NDU3MzAwNjYyOTk0Mzg1LCAwLjQ4NDU3MzAwNjYyOTk0Mzg1LCAwLjcyODI3MTAwNzUzNzg0MTgsIC0wLjUxMDEzODk4ODQ5NDg3MywgMC41MTAxMzg5ODg0OTQ4NzMsIDAuNjkyNDcxMDI3Mzc0MjY3NiwKKyAgICAgICAgLTAuNDU5MTExMDA1MDY3ODI1MywgMC40MDIyMjk5OTQ1MzU0NDYxNywgMC43OTIxMDI5OTI1MzQ2Mzc1LCAtMC4wMjEyODkwMDAyODc2NTIwMTYsIDAuMDYzMDE4MDAxNjE2MDAxMTMsIDAuOTk3Nzg0OTcyMTkwODU2OSwKKyAgICAgICAgLTAuMTY2Nzg5OTkzNjQzNzYwNjgsIDAuNDAzMDMyMDA0ODMzMjIxNDQsIDAuODk5ODU5MDExMTczMjQ4MywgLTAuMjYxODEwOTg4MTg3Nzg5OSwgMC42MzI2MzEwMDM4NTY2NTg5LCAwLjcyODg1Nzk5NDA3OTU4OTgsCisgICAgICAgIC0wLjI3NTY3NjAxMjAzOTE4NDU3LCAwLjY2NjEzMzk5OTgyNDUyMzksIDAuNjkzMDE0MDI1Njg4MTcxNCwgLTAuMjcwMTc3MDA2NzIxNDk2NiwgMC41NDY3MzcwMTUyNDczNDUsIDAuNzkyNTE3MDA2Mzk3MjQ3MywKKyAgICAgICAgLTAuMDEzMDc4MDAwMzk2NDkwMDk3LCAwLjA2NjIzNDAwMDAyNzE3OTcyLCAwLjk5NzcxNzk3NjU3MDEyOTQsIC0wLjA4NTY3NTk5OTUyMjIwOTE3LCAwLjQzMzkxMjAwOTAwMDc3ODIsIDAuODk2ODcxOTg0MDA0OTc0NCwKKyAgICAgICAgLTAuMTMzODE2MDAzNzk5NDM4NDgsIDAuNjc3NzEyMDIzMjU4MjA5MiwgMC43MjMwNDg5ODUwMDQ0MjUsIC0wLjE0MDc1NDk5NzczMDI1NTEzLCAwLjcxMjg1NDAyNzc0ODEwNzksIDAuNjg3MDQzMDExMTg4NTA3MSwKKyAgICAgICAgLTAuMTE5MTkxOTk2NzUzMjE1NzksIDAuNjAzNjQ5MDIwMTk1MDA3MywgMC43ODgyOTAwMjM4MDM3MTA5LCAwLjAxMzA3ODAwMDM5NjQ5MDA5NywgMC4wNjYyMzQwMDAwMjcxNzk3MiwgMC45OTc3MTc5NzY1NzAxMjk0LAorICAgICAgICAwLjAyOTQ2Njk5OTY5NDcwNTAxLCAwLjA1OTYzMTk5OTU4MjA1MjIzLCAwLjk5Nzc4NDk3MjE5MDg1NjksIDAuMTY2Nzg4OTk1MjY1OTYwNywgMC40MDMwMzIwMDQ4MzMyMjE0NCwgMC44OTk4NTkwMTExNzMyNDgzLAorICAgICAgICAwLjA4NTY3Njk5NzkwMDAwOTE2LCAwLjQzMzkxMjAwOTAwMDc3ODIsIDAuODk2ODcxOTg0MDA0OTc0NCwgMC4yNjE4MTA5ODgxODc3ODk5LCAwLjYzMjYzMTAwMzg1NjY1ODksIDAuNzI4ODU3OTk0MDc5NTg5OCwKKyAgICAgICAgMC4xMzM4MTYwMDM3OTk0Mzg0OCwgMC42Nzc3MTIwMjMyNTgyMDkyLCAwLjcyMzA0ODk4NTAwNDQyNSwgMC4yNzU2NzYwMTIwMzkxODQ1NywgMC42NjYxMzM5OTk4MjQ1MjM5LCAwLjY5MzAxNDAyNTY4ODE3MTQsCisgICAgICAgIDAuMTQwNzU0OTk3NzMwMjU1MTMsIDAuNzEyODU0MDI3NzQ4MTA3OSwgMC42ODcwNDMwMTExODg1MDcxLCAwLjE5NTE5MDk5NTkzMTYyNTM3LCAwLjU3Nzc1OTk4MTE1NTM5NTUsIDAuNzkyNTIzOTgwMTQwNjg2LAorICAgICAgICAwLjExOTE5MTk5Njc1MzIxNTc5LCAwLjYwMzY0OTAyMDE5NTAwNzMsIDAuNzg4MjkwMDIzODAzNzEwOSwgMC4wNTAxMTIwMDE1OTc4ODEzMiwgMC4wNDM5MDMwMDA2NTI3OTAwNywgMC45OTc3Nzc5OTg0NDc0MTgyLAorICAgICAgICAwLjMwODg0Nzk5MzYxMjI4OTQzLCAwLjMwODg0Nzk5MzYxMjI4OTQzLCAwLjg5OTU2OTk4ODI1MDczMjQsIDAuNDg0NTczMDA2NjI5OTQzODUsIDAuNDg0NTczMDA2NjI5OTQzODUsIDAuNzI4MjcxMDA3NTM3ODQxOCwKKyAgICAgICAgMC41MTAxMzg5ODg0OTQ4NzMsIDAuNTEwMTM4OTg4NDk0ODczLCAwLjY5MjQ3MTAyNzM3NDI2NzYsIDAuNDAyMjI5OTk0NTM1NDQ2MTcsIDAuNDU5MTExMDA1MDY3ODI1MywgMC43OTIxMDI5OTI1MzQ2Mzc1LAorICAgICAgICAwLjA2MzAxODAwMTYxNjAwMTEzLCAwLjAyMTI4OTAwMDI4NzY1MjAxNiwgMC45OTc3ODQ5NzIxOTA4NTY5LCAwLjQwMzAzMjAwNDgzMzIyMTQ0LCAwLjE2Njc4OTk5MzY0Mzc2MDY4LCAwLjg5OTg1OTAxMTE3MzI0ODMsCisgICAgICAgIDAuNjMyNjMxMDAzODU2NjU4OSwgMC4yNjE4MTA5ODgxODc3ODk5LCAwLjcyODg1Nzk5NDA3OTU4OTgsIDAuNjY2MTMzOTk5ODI0NTIzOSwgMC4yNzU2NzYwMTIwMzkxODQ1NywgMC42OTMwMTQwMjU2ODgxNzE0LAorICAgICAgICAwLjU0NjczNzAxNTI0NzM0NSwgMC4yNzAxNzcwMDY3MjE0OTY2LCAwLjc5MjUxNzAwNjM5NzI0NzMsIDAuMDY2MjM0MDAwMDI3MTc5NzIsIDAuMDEzMDc4MDAwMzk2NDkwMDk3LCAwLjk5NzcxNzk3NjU3MDEyOTQsCisgICAgICAgIDAuNDMzOTEyMDA5MDAwNzc4MiwgMC4wODU2NzU5OTk1MjIyMDkxNywgMC44OTY4NzE5ODQwMDQ5NzQ0LCAwLjY3NzcxMjAyMzI1ODIwOTIsIDAuMTMzODE2MDAzNzk5NDM4NDgsIDAuNzIzMDQ4OTg1MDA0NDI1LAorICAgICAgICAwLjcxMjg1NDAyNzc0ODEwNzksIDAuMTQwNzU0OTk3NzMwMjU1MTMsIDAuNjg3MDQzMDExMTg4NTA3MSwgMC42MDM2NDkwMjAxOTUwMDczLCAwLjExOTE5MTk5Njc1MzIxNTc5LCAwLjc4ODI5MDAyMzgwMzcxMDksCisgICAgICAgIDAuNjAzNjQ5MDIwMTk1MDA3MywgLTAuMTE5MTkxOTk2NzUzMjE1NzksIDAuNzg4MjkwMDIzODAzNzEwOSwgMC41NDY3MzcwMTUyNDczNDUsIC0wLjI3MDE3NzAwNjcyMTQ5NjYsIDAuNzkyNTE3MDA2Mzk3MjQ3MywKKyAgICAgICAgMC43MjIzODMwMjIzMDgzNDk2LCAtMC4yOTg5NTY5OTAyNDIwMDQ0LCAwLjYyMzUyODAwMzY5MjYyNywgMC43NzIzOTQwMDE0ODM5MTcyLCAtMC4xNTI1MTEwMDA2MzMyMzk3NSwgMC42MTY1NjIwMDg4NTc3MjcsCisgICAgICAgIDAuOTA5NDA4OTg2NTY4NDUwOSwgLTAuMzc2MzUyMDEyMTU3NDQwMiwgMC4xNzcwMTUwMDY1NDIyMDU4LCAwLjk2NjA4Njk4MzY4MDcyNTEsIC0wLjE5MDc1NTk5MzEyNzgyMjg4LCAwLjE3NDAzNDk5NzgyMDg1NDIsCisgICAgICAgIDAuOTQwODIzMDE4NTUwODcyOCwgLTAuMzM1MzI1OTg2MTQ2OTI2OSwgMC4wNDkwNzQ5OTk5ODgwNzkwNywgMC45ODQzMTE5OTc4OTA0NzI0LCAtMC4xNjk2NDAwMDQ2MzQ4NTcxOCwgMC4wNDg0OTMwMDE2MTAwNDA2NjUsCisgICAgICAgIDAuOTgxMDU4MDAxNTE4MjQ5NSwgLTAuMTkzNzExOTk2MDc4NDkxMiwgMCwgMC43MDcxMDcwMDc1MDM1MDk1LCAtMC43MDcxMDcwMDc1MDM1MDk1LCAwLAorICAgICAgICAwLjQwMjIyOTk5NDUzNTQ0NjE3LCAtMC40NTkxMTEwMDUwNjc4MjUzLCAwLjc5MjEwMjk5MjUzNDYzNzUsIDAuNTUzMjAyOTg2NzE3MjI0MSwgLTAuNTUzMjAyOTg2NzE3MjI0MSwgMC42MjI4NDIwMTM4MzU5MDcsCisgICAgICAgIDAuNjk1OTg3OTk5NDM5MjM5NSwgLTAuNjk1OTg3OTk5NDM5MjM5NSwgMC4xNzY2MzkwMDU1NDE4MDE0NSwgMC43NDAzOTc5ODk3NDk5MDg0LCAtMC42NzAzODI5NzY1MzE5ODI0LCAwLjA0ODk1ODk5ODE3MzQ3NTI2NiwKKyAgICAgICAgMC44MzEwNDE5OTE3MTA2NjI4LCAtMC41NTYyMDkwMjc3NjcxODE0LCAwLCAwLjE5NTE5MDk5NTkzMTYyNTM3LCAtMC41Nzc3NTk5ODExNTUzOTU1LCAwLjc5MjUyMzk4MDE0MDY4NiwKKyAgICAgICAgMC4yOTg5NTYwMDY3NjUzNjU2LCAtMC43MjIzODMwMjIzMDgzNDk2LCAwLjYyMzUyODAwMzY5MjYyNywgMC4zNzYzNTIwMTIxNTc0NDAyLCAtMC45MDk0MDg5ODY1Njg0NTA5LCAwLjE3NzAxNTAwNjU0MjIwNTgsCisgICAgICAgIDAuNDI3NTc2MDA1NDU4ODMxOCwgLTAuOTAyNjQ2MDA1MTUzNjU2LCAwLjA0OTA2ODk5ODU0NTQwODI1LCAwLjU1NjIwOTAyNzc2NzE4MTQsIC0wLjgzMTA0MTk5MTcxMDY2MjgsIDAsCisgICAgICAgIDAuMTE5MTkxOTk2NzUzMjE1NzksIC0wLjYwMzY0OTAyMDE5NTAwNzMsIDAuNzg4MjkwMDIzODAzNzEwOSwgMC4xNTI1MTEwMDA2MzMyMzk3NSwgLTAuNzcyMzk0MDAxNDgzOTE3MiwgMC42MTY1NjIwMDg4NTc3MjcsCisgICAgICAgIDAuMTkwNzU1OTkzMTI3ODIyODgsIC0wLjk2NjA4Njk4MzY4MDcyNTEsIDAuMTc0MDM0OTk3ODIwODU0MiwgMC4xOTM0ODYwMDUwNjc4MjUzMiwgLTAuOTc5OTE0MDA5NTcxMDc1NCwgMC4wNDgyNzcwMDE4Mjc5NTUyNDYsCisgICAgICAgIDAuMTkzNzExOTk2MDc4NDkxMiwgLTAuOTgxMDU4MDAxNTE4MjQ5NSwgMCwgLTAuMTE5MTkxOTk2NzUzMjE1NzksIC0wLjYwMzY0OTAyMDE5NTAwNzMsIDAuNzg4MjkwMDIzODAzNzEwOSwKKyAgICAgICAgLTAuMjcwMTc3MDA2NzIxNDk2NiwgLTAuNTQ2NzM3MDE1MjQ3MzQ1LCAwLjc5MjUxNzAwNjM5NzI0NzMsIC0wLjI5ODk1Njk5MDI0MjAwNDQsIC0wLjcyMjM4MzAyMjMwODM0OTYsIDAuNjIzNTI4MDAzNjkyNjI3LAorICAgICAgICAtMC4xNTI1MTEwMDA2MzMyMzk3NSwgLTAuNzcyMzk0MDAxNDgzOTE3MiwgMC42MTY1NjIwMDg4NTc3MjcsIC0wLjM3NjM1MjAxMjE1NzQ0MDIsIC0wLjkwOTQwODk4NjU2ODQ1MDksIDAuMTc3MDE1MDA2NTQyMjA1OCwKKyAgICAgICAgLTAuMTkwNzU1OTkzMTI3ODIyODgsIC0wLjk2NjA4Njk4MzY4MDcyNTEsIDAuMTc0MDM0OTk3ODIwODU0MiwgLTAuMzM1MzI1OTg2MTQ2OTI2OSwgLTAuOTQwODIzMDE4NTUwODcyOCwgMC4wNDkwNzQ5OTk5ODgwNzkwNywKKyAgICAgICAgLTAuMTY5NjQwMDA0NjM0ODU3MTgsIC0wLjk4NDMxMTk5Nzg5MDQ3MjQsIDAuMDQ4NDkzOTk5OTg3ODQwNjUsIC0wLjE5MzcxMTk5NjA3ODQ5MTIsIC0wLjk4MTA1ODAwMTUxODI0OTUsIDAsCisgICAgICAgIDAuNzA3MTA3MDA3NTAzNTA5NSwgLTAuNzA3MTA3MDA3NTAzNTA5NSwgMCwgLTAuNDU5MTExMDA1MDY3ODI1MywgLTAuNDAyMjI5OTk0NTM1NDQ2MTcsIDAuNzkyMTAyOTkyNTM0NjM3NSwKKyAgICAgICAgLTAuNTUzMjAyOTg2NzE3MjI0MSwgLTAuNTUzMjAyOTg2NzE3MjI0MSwgMC42MjI4NDIwMTM4MzU5MDcsIC0wLjY5NTk4Nzk5OTQzOTIzOTUsIC0wLjY5NTk4Nzk5OTQzOTIzOTUsIDAuMTc2NjM5MDA1NTQxODAxNDUsCisgICAgICAgIC0wLjY3MDM4Mjk3NjUzMTk4MjQsIC0wLjc0MDM5Nzk4OTc0OTkwODQsIDAuMDQ4OTU4OTk4MTczNDc1MjY2LCAtMC41NTYyMDkwMjc3NjcxODE0LCAtMC44MzEwNDE5OTE3MTA2NjI4LCAwLAorICAgICAgICAtMC41Nzc3NTk5ODExNTUzOTU1LCAtMC4xOTUxOTA5OTU5MzE2MjUzNywgMC43OTI1MjM5ODAxNDA2ODYsIC0wLjcyMjM4MzAyMjMwODM0OTYsIC0wLjI5ODk1NjAwNjc2NTM2NTYsIDAuNjIzNTI4MDAzNjkyNjI3LAorICAgICAgICAtMC45MDk0MDg5ODY1Njg0NTA5LCAtMC4zNzYzNTIwMTIxNTc0NDAyLCAwLjE3NzAxNTAwNjU0MjIwNTgsIC0wLjkwMjY0NjAwNTE1MzY1NiwgLTAuNDI3NTc2MDA1NDU4ODMxOCwgMC4wNDkwNjg5OTg1NDU0MDgyNSwKKyAgICAgICAgLTAuODMxMDQxOTkxNzEwNjYyOCwgLTAuNTU2MjA5MDI3NzY3MTgxNCwgMCwgLTAuNjAzNjQ5MDIwMTk1MDA3MywgLTAuMTE5MTkxOTk2NzUzMjE1NzksIDAuNzg4MjkwMDIzODAzNzEwOSwKKyAgICAgICAgLTAuNzcyMzk0MDAxNDgzOTE3MiwgLTAuMTUyNTExMDAwNjMzMjM5NzUsIDAuNjE2NTYyMDA4ODU3NzI3LCAtMC45NjYwODY5ODM2ODA3MjUxLCAtMC4xOTA3NTU5OTMxMjc4MjI4OCwgMC4xNzQwMzQ5OTc4MjA4NTQyLAorICAgICAgICAtMC45Nzk5MTQwMDk1NzEwNzU0LCAtMC4xOTM0ODYwMDUwNjc4MjUzMiwgMC4wNDgyNzcwMDE4Mjc5NTUyNDYsIC0wLjk4MTA1ODAwMTUxODI0OTUsIC0wLjE5MzcxMTk5NjA3ODQ5MTIsIDAsCisgICAgICAgIC0wLjYwMzY0OTAyMDE5NTAwNzMsIDAuMTE5MTkxOTk2NzUzMjE1NzksIDAuNzg4MjkwMDIzODAzNzEwOSwgLTAuNTQ2NzM3MDE1MjQ3MzQ1LCAwLjI3MDE3NzAwNjcyMTQ5NjYsIDAuNzkyNTE3MDA2Mzk3MjQ3MywKKyAgICAgICAgLTAuNzIyMzgzMDIyMzA4MzQ5NiwgMC4yOTg5NTY5OTAyNDIwMDQ0LCAwLjYyMzUyODAwMzY5MjYyNywgLTAuNzcyMzk0MDAxNDgzOTE3MiwgMC4xNTI1MTEwMDA2MzMyMzk3NSwgMC42MTY1NjIwMDg4NTc3MjcsCisgICAgICAgIC0wLjkwOTQwODk4NjU2ODQ1MDksIDAuMzc2MzUyMDEyMTU3NDQwMiwgMC4xNzcwMTUwMDY1NDIyMDU4LCAtMC45NjYwODY5ODM2ODA3MjUxLCAwLjE5MDc1NTk5MzEyNzgyMjg4LCAwLjE3NDAzNDk5NzgyMDg1NDIsCisgICAgICAgIC0wLjk0MDgyMzAxODU1MDg3MjgsIDAuMzM1MzI1OTg2MTQ2OTI2OSwgMC4wNDkwNzQ5OTk5ODgwNzkwNywgLTAuOTg0MzExOTk3ODkwNDcyNCwgMC4xNjk2NDAwMDQ2MzQ4NTcxOCwgMC4wNDg0OTM5OTk5ODc4NDA2NSwKKyAgICAgICAgLTAuOTgxMDU4MDAxNTE4MjQ5NSwgMC4xOTM3MTE5OTYwNzg0OTEyLCAwLCAwLjcwNzEwNzAwNzUwMzUwOTUsIC0wLjcwNzEwNzAwNzUwMzUwOTUsIDAsCisgICAgICAgIC0wLjQwMjIyOTk5NDUzNTQ0NjE3LCAwLjQ1OTExMTAwNTA2NzgyNTMsIDAuNzkyMTAyOTkyNTM0NjM3NSwgLTAuNTUzMjAyOTg2NzE3MjI0MSwgMC41NTMyMDI5ODY3MTcyMjQxLCAwLjYyMjg0MjAxMzgzNTkwNywKKyAgICAgICAgLTAuNjk1OTg3OTk5NDM5MjM5NSwgMC42OTU5ODc5OTk0MzkyMzk1LCAwLjE3NjYzOTAwNTU0MTgwMTQ1LCAtMC43NDAzOTc5ODk3NDk5MDg0LCAwLjY3MDM4Mjk3NjUzMTk4MjQsIDAuMDQ4OTU4OTk4MTczNDc1MjY2LAorICAgICAgICAtMC44MzEwNDE5OTE3MTA2NjI4LCAwLjU1NjIwOTAyNzc2NzE4MTQsIDAsIC0wLjE5NTE5MDk5NTkzMTYyNTM3LCAwLjU3Nzc1OTk4MTE1NTM5NTUsIDAuNzkyNTIzOTgwMTQwNjg2LAorICAgICAgICAtMC4yOTg5NTYwMDY3NjUzNjU2LCAwLjcyMjM4MzAyMjMwODM0OTYsIDAuNjIzNTI4MDAzNjkyNjI3LCAtMC4zNzYzNTIwMTIxNTc0NDAyLCAwLjkwOTQwODk4NjU2ODQ1MDksIDAuMTc3MDE1MDA2NTQyMjA1OCwKKyAgICAgICAgLTAuNDI3NTc2MDA1NDU4ODMxOCwgMC45MDI2NDYwMDUxNTM2NTYsIDAuMDQ5MDY4OTk4NTQ1NDA4MjUsIC0wLjU1NjIwOTAyNzc2NzE4MTQsIDAuODMxMDQxOTkxNzEwNjYyOCwgMCwKKyAgICAgICAgLTAuMTE5MTkxOTk2NzUzMjE1NzksIDAuNjAzNjQ5MDIwMTk1MDA3MywgMC43ODgyOTAwMjM4MDM3MTA5LCAtMC4xNTI1MTEwMDA2MzMyMzk3NSwgMC43NzIzOTQwMDE0ODM5MTcyLCAwLjYxNjU2MjAwODg1NzcyNywKKyAgICAgICAgLTAuMTkwNzU1OTkzMTI3ODIyODgsIDAuOTY2MDg2OTgzNjgwNzI1MSwgMC4xNzQwMzQ5OTc4MjA4NTQyLCAtMC4xOTM0ODYwMDUwNjc4MjUzMiwgMC45Nzk5MTQwMDk1NzEwNzU0LCAwLjA0ODI3NzAwMTgyNzk1NTI0NiwKKyAgICAgICAgLTAuMTkzNzExOTk2MDc4NDkxMiwgMC45ODEwNTgwMDE1MTgyNDk1LCAwLCAwLjExOTE5MTk5Njc1MzIxNTc5LCAwLjYwMzY0OTAyMDE5NTAwNzMsIDAuNzg4MjkwMDIzODAzNzEwOSwKKyAgICAgICAgMC4yNzAxNzcwMDY3MjE0OTY2LCAwLjU0NjczNzAxNTI0NzM0NSwgMC43OTI1MTcwMDYzOTcyNDczLCAwLjI5ODk1Njk5MDI0MjAwNDQsIDAuNzIyMzgzMDIyMzA4MzQ5NiwgMC42MjM1MjgwMDM2OTI2MjcsCisgICAgICAgIDAuMTUyNTExMDAwNjMzMjM5NzUsIDAuNzcyMzk0MDAxNDgzOTE3MiwgMC42MTY1NjIwMDg4NTc3MjcsIDAuMzc2MzUyMDEyMTU3NDQwMiwgMC45MDk0MDg5ODY1Njg0NTA5LCAwLjE3NzAxNTAwNjU0MjIwNTgsCisgICAgICAgIDAuMTkwNzU1OTkzMTI3ODIyODgsIDAuOTY2MDg2OTgzNjgwNzI1MSwgMC4xNzQwMzQ5OTc4MjA4NTQyLCAwLjMzNTMyNTk4NjE0NjkyNjksIDAuOTQwODIzMDE4NTUwODcyOCwgMC4wNDkwNzQ5OTk5ODgwNzkwNywKKyAgICAgICAgMC4xNjk2NDAwMDQ2MzQ4NTcxOCwgMC45ODQzMTE5OTc4OTA0NzI0LCAwLjA0ODQ5Mzk5OTk4Nzg0MDY1LCAwLjE5MzcxMTk5NjA3ODQ5MTIsIDAuOTgxMDU4MDAxNTE4MjQ5NSwgMCwKKyAgICAgICAgMC43MDcxMDcwMDc1MDM1MDk1LCAtMC43MDcxMDcwMDc1MDM1MDk1LCAwLCAwLjQ1OTExMTAwNTA2NzgyNTMsIDAuNDAyMjI5OTk0NTM1NDQ2MTcsIDAuNzkyMTAyOTkyNTM0NjM3NSwKKyAgICAgICAgMC41NTMyMDI5ODY3MTcyMjQxLCAwLjU1MzIwMjk4NjcxNzIyNDEsIDAuNjIyODQyMDEzODM1OTA3LCAwLjY5NTk4Nzk5OTQzOTIzOTUsIDAuNjk1OTg3OTk5NDM5MjM5NSwgMC4xNzY2MzkwMDU1NDE4MDE0NSwKKyAgICAgICAgMC42NzAzODI5NzY1MzE5ODI0LCAwLjc0MDM5Nzk4OTc0OTkwODQsIDAuMDQ4OTU4OTk4MTczNDc1MjY2LCAwLjU1NjIwOTAyNzc2NzE4MTQsIDAuODMxMDQxOTkxNzEwNjYyOCwgMCwKKyAgICAgICAgMC41Nzc3NTk5ODExNTUzOTU1LCAwLjE5NTE5MDk5NTkzMTYyNTM3LCAwLjc5MjUyMzk4MDE0MDY4NiwgMC43MjIzODMwMjIzMDgzNDk2LCAwLjI5ODk1NjAwNjc2NTM2NTYsIDAuNjIzNTI4MDAzNjkyNjI3LAorICAgICAgICAwLjkwOTQwODk4NjU2ODQ1MDksIDAuMzc2MzUyMDEyMTU3NDQwMiwgMC4xNzcwMTUwMDY1NDIyMDU4LCAwLjkwMjY0NjAwNTE1MzY1NiwgMC40Mjc1NzYwMDU0NTg4MzE4LCAwLjA0OTA2ODk5ODU0NTQwODI1LAorICAgICAgICAwLjgzMTA0MTk5MTcxMDY2MjgsIDAuNTU2MjA5MDI3NzY3MTgxNCwgMCwgMC42MDM2NDkwMjAxOTUwMDczLCAwLjExOTE5MTk5Njc1MzIxNTc5LCAwLjc4ODI5MDAyMzgwMzcxMDksCisgICAgICAgIDAuNzcyMzk0MDAxNDgzOTE3MiwgMC4xNTI1MTEwMDA2MzMyMzk3NSwgMC42MTY1NjIwMDg4NTc3MjcsIDAuOTY2MDg2OTgzNjgwNzI1MSwgMC4xOTA3NTU5OTMxMjc4MjI4OCwgMC4xNzQwMzQ5OTc4MjA4NTQyLAorICAgICAgICAwLjk3OTkxNTAyMjg1MDAzNjYsIDAuMTkzNDg2MDA1MDY3ODI1MzIsIDAuMDQ4Mjc3MDAxODI3OTU1MjQ2LCAwLjk4MTA1ODAwMTUxODI0OTUsIDAuMTkzNzExOTk2MDc4NDkxMiwgMCwKKyAgICAgICAgMC45OTk5NDgwMjQ3NDk3NTU5LCAwLjAwNjYyMjAwMDEzMTc1NjA2NywgMC4wMDc3ODY5OTk5MjIyNDU3NDEsIDAuOTk4OTI5MDIzNzQyNjc1OCwgMC4wNDEyNTcwMDE0NTk1OTg1NCwgLTAuMDIwOTQ1OTk5NzcxMzU2NTgzLAorICAgICAgICAwLjk3MDAyNjAxNjIzNTM1MTYsIC0wLjE4MjMwOTAwMTY4NDE4ODg0LCAwLjE2MDY2MDk5NzAzMzExOTIsIDAuOTkyOTg2OTc3MTAwMzcyMywgLTAuMTExNjgwOTk5Mzk4MjMxNSwgMC4wMzg3ODI5OTg5MTk0ODcsCisgICAgICAgIDAuODY3NzA4OTgxMDM3MTM5OSwgLTAuMzA5OTMzOTkwMjQwMDk3MDUsIDAuMzg4NjE1OTk1NjQ1NTIzMDcsIDAuOTY3NTA0OTc4MTc5OTMxNiwgLTAuMTgxNzk1OTk5NDA3NzY4MjUsIDAuMTc1NzQxMDAxOTYzNjE1NDIsCisgICAgICAgIDAuNjEyNzIyOTkyODk3MDMzNywgLTAuMjM3OTc1MDAxMzM1MTQ0MDQsIDAuNzUzNjE2OTg4NjU4OTA1LCAwLjc4MTYxMTk3OTAwNzcyMSwgLTAuMTU4NTY0OTk5Njk5NTkyNiwgMC42MDMyNzUwMDEwNDkwNDE3LAorICAgICAgICAwLjEzMDQ5Mzk5ODUyNzUyNjg2LCAtMC4wMjU4NTkwMDAxNjEyOTAxNywgMC45OTExMTE5OTM3ODk2NzI5LCAwLjE2NTgzODAwMzE1ODU2OTM0LCAtMC4wNDYwNjYwMDEwNTc2MjQ4MiwgMC45ODUwNzcwMjM1MDYxNjQ2LAorICAgICAgICAwLjk4NDc2MDk5OTY3OTU2NTQsIC0wLjAzMDA0Njk5OTQ1NDQ5ODI5LCAtMC4xNzEyOTUwMDIxMDI4NTE4NywgMC45NDYzODUwMjU5NzgwODg0LCAwLjAwODEzODAwMDAzMzc5NTgzNCwgMC4zMjI5Mzc5OTUxOTUzODg4LAorICAgICAgICAwLjY5NDI4OTAyODY0NDU2MTgsIDAuMDYwMTE4MDAwOTU0Mzg5NTcsIDAuNzE3MTgxMDI2OTM1NTc3NCwgMC40MDU5MjM5OTIzOTU0MDEsIDAuMDkyNDQxOTk4NDIyMTQ1ODQsIDAuOTA5MjE5OTgwMjM5ODY4MiwKKyAgICAgICAgMC4xNDc3MjMwMDQyMjE5MTYyLCAwLjAwMjQ3Mzk5OTk3ODk3NDQ2MTYsIDAuOTg5MDI2MDEwMDM2NDY4NSwgMC45OTE3OTg5OTY5MjUzNTQsIC0wLjExNTU3OTAwMTYwNTUxMDcxLCAtMC4wNTQ1NDkwMDExNTcyODM3OCwKKyAgICAgICAgMC45OTIwMDk5OTczNjc4NTg5LCAwLjA3MjAyNTAwMTA0OTA0MTc1LCAwLjEwMzU4MzAwMDYwMDMzNzk4LCAwLjg4ODIyNDAwNTY5OTE1NzcsIDAuMjIzODg0MDAxMzc0MjQ0NywgMC40MDExNjU5OTIwMjE1NjA2NywKKyAgICAgICAgMC42MDQ2ODc5ODg3NTgwODcyLCAwLjEzNjkxMTAwNDc4MTcyMzAyLCAwLjc4NDYwNjk5MzE5ODM5NDgsIDAuMTI5MDgwOTk1OTE3MzIwMjUsIC0wLjA2MTExOTk5OTczNjU0NzQ3LCAwLjk4OTc0OTAxNDM3NzU5NCwKKyAgICAgICAgMC45OTU0ODIwMjc1MzA2NzAyLCAtMC4wOTQzNjI5OTY1MTg2MTE5MSwgMC4wMTA1MDI5OTk2NDg0NTE4MDUsIDAuOTk4MTk3MDE5MTAwMTg5MiwgMC4wMTIwNjA5OTk4NzAzMDAyOTMsIDAuMDU4ODAyMDAxMTc4MjY0NjIsCisgICAgICAgIDAuOTU1MDYzOTk4Njk5MTg4MiwgMC4wOTgxOTAwMDIxNDMzODMwMywgMC4yNzk2NjI5OTY1MzA1MzI4NCwgMC42NjA2OTQwMDMxMDUxNjM2LCAwLjA1MTY5OTk5OTcxOTg1ODE3LCAwLjc0ODg3Mjk5NTM3NjU4NjksCisgICAgICAgIDAuMDcyNzM3OTk5MjYwNDI1NTcsIC0wLjA0MDM0MzAwMTQ4NDg3MDkxLCAwLjk5NjUzNTAwMzE4NTI3MjIsIDAuOTk5OTE3OTg0MDA4Nzg5MSwgMC4wMDcxOTEwMDAwNDA2MjA1NjUsIDAuMDEwNTYwOTk5NjI0NDMxMTMzLAorICAgICAgICAwLjk5ODkwNTAwMzA3MDgzMTMsIDAuMDQ0MzY0OTk5OTc5NzM0NDIsIC0wLjAxNDg4Mzk5OTcxMjc2NTIxNywgMC45Njk0NzY5OTc4NTIzMjU0LCAtMC4xNzg2MDI5OTM0ODgzMTE3NywgMC4xNjc5NzYwMDY4NjU1MDE0LAorICAgICAgICAwLjk5MjQ2MTk3OTM4OTE5MDcsIC0wLjEwNzc1NTk5NjI4Njg2OTA1LCAwLjA1ODM3ODk5ODE5MDE2NDU2NiwgMC44NTY3NDg5OTgxNjUxMzA2LCAtMC4yODgyOTYwMTQwNzA1MTA4NiwgMC40Mjc2Mjg5OTM5ODgwMzcxLAorICAgICAgICAwLjk0NzM5OTk3Mzg2OTMyMzcsIC0wLjE2MTEyMTk5NDI1Njk3MzI3LCAwLjI3NjUzODAxNDQxMTkyNjI3LCAwLjU2Mjc3Nzk5NjA2MzIzMjQsIC0wLjE5NzQ3Nzk5NjM0OTMzNDcyLCAwLjgwMjY3Mjk4MjIxNTg4MTMsCisgICAgICAgIDAuNjU3NzY2OTk3ODE0MTc4NSwgLTAuMTE0MzgwMDAyMDIxNzg5NTUsIDAuNzQ0NDg1OTc0MzExODI4NiwgMC4wNzkwMTE5OTkwNzA2NDQzOCwgMC4wMDEzNjg5OTk5NDY4NjI0NTkyLCAwLjk5Njg3MzAyMTEyNTc5MzUsCisgICAgICAgIDAuMDcyNzQxMDAxODQ0NDA2MTMsIC0wLjAyMDIwNjAwMDY1NTg4OTUxLCAwLjk5NzE0NjAxMDM5ODg2NDcsIDAuOTg4ODc4MDExNzAzNDkxMiwgMC4wMjU4MDg5OTkzMTQ5MDQyMTMsIC0wLjE0NjQ3NTAwMjE2OTYwOTA3LAorICAgICAgICAwLjk0NTM5Nzk3MzA2MDYwNzksIC0wLjAwNjY2MzAwMDIxMTExOTY1MiwgMC4zMjU4NTAwMDk5MTgyMTI5LCAwLjY5MjEzOTk4MzE3NzE4NTEsIC0wLjA0OTcyMjk5OTMzNDMzNTMzLCAwLjcyMDA0ODAxMDM0OTI3MzcsCisgICAgICAgIDAuMzk1NzQ5OTg2MTcxNzIyNCwgLTAuMDgxMzQ5MDAwMzM0NzM5NjksIDAuOTE0NzQ4MDEzMDE5NTYxOCwgMC4xMzkxNDUwMDE3NjkwNjU4NiwgLTAuMDAwMDc4OTk5OTk3NjQwNDk0MjYsIDAuOTkwMjcxOTg1NTMwODUzMywKKyAgICAgICAgMC45OTI0NjY5ODYxNzkzNTE4LCAtMC4xMDMxMTAwMDA0OTExNDIyNywgLTAuMDY2MTY4MDAyNzg0MjUyMTcsIDAuOTkyNjMwMDA0ODgyODEyNSwgMC4wNzkyNjk5OTc3NzU1NTQ2NiwgMC4wOTE2NTkwMDIwMDYwNTM5MiwKKyAgICAgICAgMC45MDA4NTg5OTgyOTg2NDUsIDAuMjU1MzEzMDA5MDIzNjY2NCwgMC4zNTEwOTQ5OTA5Njg3MDQyLCAwLjY1MTM2OTk4ODkxODMwNDQsIDAuMTgzMTgwMDA0MzU4MjkxNjMsIDAuNzM2MzE2MDI1MjU3MTEwNiwKKyAgICAgICAgMC4xNTk3ODY5OTkyMjU2MTY0NiwgLTAuMDI3MTQwOTk5MjEyODYxMDYsIDAuOTg2Nzc4MDIwODU4NzY0NiwgMC45OTU1NjIwMTY5NjM5NTg3LCAtMC4wOTM3OTE5OTg5MjI4MjQ4NiwgMC4wMDc3MzA5OTk5NjE0OTUzOTk1LAorICAgICAgICAwLjk5OTEwMzAwOTcwMDc3NTEsIDAuMDE2MTA4MDAwNjUxMDAxOTMsIDAuMDM5MTQ5MDAxMjQwNzMwMjg2LCAwLjk3NjQ2OTk5MzU5MTMwODYsIDAuMTIwNjg4OTk3MjA5MDcyMTEsIDAuMTc4NzE5OTk3NDA2MDA1ODYsCisgICAgICAgIDAuNzg1OTA2MDE2ODI2NjI5NiwgMC4xMDEwMzQ5OTg4OTM3Mzc3OSwgMC42MTAwMzUwMDIyMzE1OTc5LCAwLjE2NTc5MDAwNjUxODM2Mzk1LCAtMC4wMTQ4MzIwMDAyNDgxMzQxMzYsIDAuOTg2MDUwMDA5NzI3NDc4LAorICAgICAgICAwLjE2NTUyOTk5NjE1NjY5MjUsIC0wLjEwMDc4Njk5ODg2Nzk4ODU5LCAwLjk4MTA0MTAxNDE5NDQ4ODUsIC0wLjAwNDY3OTAwMDAwNTEyNTk5OTUsIC0wLjE3NTA2NTk5NDI2MjY5NTMsIDAuOTg0NTQ2MDA1NzI1ODYwNiwKKyAgICAgICAgLTAuMzg1OTU3OTg2MTE2NDA5MywgLTAuMDY0OTQyMDAyMjk2NDQ3NzUsIDAuOTIwMjI4MDA0NDU1NTY2NCwgLTAuMzIxOTY3MDA1NzI5Njc1MywgLTAuMDU2MDA1OTk5NDQ1OTE1MjIsIDAuOTQ1MDkyOTc2MDkzMjkyMiwKKyAgICAgICAgLTAuNjQ3MTYxMDA2OTI3NDkwMiwgLTAuMTE0OTUyOTk2MzczMTc2NTcsIDAuNzUzNjM3MDE1ODE5NTQ5NiwgLTAuNTYxNjQ0MDE3Njk2MzgwNiwgLTAuMDc4ODU1MDAwNDM2MzA2LCAwLjgyMzYxMTk3NDcxNjE4NjUsCisgICAgICAgIC0wLjgzNzk3MDAxODM4Njg0MDgsIC0wLjIzNzQ5OTk5NzAxOTc2Nzc2LCAwLjQ5MTMyNDAwNzUxMTEzODksIC0wLjc1MTI1OTAyODkxMTU5MDYsIC0wLjE0NDcxNjk5Mjk3NDI4MTMsIDAuNjQzOTQ3MDA1MjcxOTExNiwKKyAgICAgICAgLTAuOTA1MjA5MDA0ODc4OTk3OCwgLTAuMjgwNzA1MDA0OTMwNDk2MiwgMC4zMTkwNjMwMDc4MzE1NzM1LCAtMC44MjQ5NDE5OTI3NTk3MDQ2LCAtMC4yMjA5MDA5OTc1MTk0OTMxLCAwLjUyMDI2MzAxNjIyMzkwNzUsCisgICAgICAgIC0wLjEzMzYzNjk5NjE1MDAxNjc4LCAwLjAyOTE5MjAwMDYyNzUxNzcsIDAuOTkwNTk5OTg5ODkxMDUyMiwgLTAuNDAzOTY0OTk2MzM3ODkwNiwgMC4wMDE5NTE5OTk5NjIzMjk4NjQ1LCAwLjkxNDc3MTk3NDA4Njc2MTUsCisgICAgICAgIC0wLjcxOTEzNTk5OTY3OTU2NTQsIDAuMDAyNDQzOTk5OTgzMzcwMzA0LCAwLjY5NDg2NDk4ODMyNzAyNjQsIC0wLjk2Mzc1Nzk5MTc5MDc3MTUsIDAuMDI2ODg0OTk5MTI2MTk1OTA4LCAwLjI2NTQxOTAwNjM0NzY1NjI1LAorICAgICAgICAtMC45NjM3NzE5OTg4ODIyOTM3LCAwLjIyMDcwNjk5OTMwMTkxMDQsIC0wLjE0OTc3MjAwMzI5MzAzNzQxLCAwLjAzNTIyOTAwMTE5NDIzODY2LCAwLjA2NzE2OTAwMzE4ODYxMDA4LCAwLjk5NzExOTAwOTQ5NDc4MTUsCisgICAgICAgIC0wLjM2MjA2Mjk5MDY2NTQzNTgsIC0wLjAxNjc2MTk5OTU3NzI4Mzg2LCAwLjkzMjAwMzAyMTI0MDIzNDQsIC0wLjY1MzQyNTk5MTUzNTE4NjgsIDAuMDA3MTIwOTk5OTczMjY3MzE3LCAwLjc1Njk1Njk5NDUzMzUzODgsCisgICAgICAgIC0wLjg1Mjg1OTAyMDIzMzE1NDMsIDAuMTE2ODY1OTk5OTk2NjYyMTQsIDAuNTA4ODk0MDI2Mjc5NDQ5NSwgLTAuODgxNDg4OTc4ODYyNzYyNSwgMC4zNTc5ODQwMDY0MDQ4NzY3LCAwLjMwNzkzNDk5OTQ2NTk0MjQsCisgICAgICAgIDAuMDcyNjU4MDAyMzc2NTU2NCwgMC4wMjAxODIwMDA0NzMxNDE2NywgMC45OTcxNTI5ODQxNDIzMDM1LCAtMC4zNzYwODI5ODY1OTMyNDY0NiwgLTAuMDI1OTU1MDAwODkyMjgxNTMyLCAwLjkyNjIyMjAyNjM0ODExNCwKKyAgICAgICAgLTAuNjU2ODM1MDE5NTg4NDcwNSwgLTAuMDE1MDIxMDAwMDU3NDU4ODc4LCAwLjc1Mzg4NDAxNzQ2NzQ5ODgsIC0wLjgyMzg3NjAyMzI5MjU0MTUsIDAuMDMyNTc3MDAwNTU4Mzc2MzEsIDAuNTY1ODMzOTg1ODA1NTExNSwKKyAgICAgICAgLTAuODY4ODY5MDA2NjMzNzU4NSwgMC4xMzA3ODcwMDAwNjAwODE0OCwgMC40Nzc0NTQwMDY2NzE5MDU1LCAwLjA3MjY1NTk5ODE3MDM3NTgyLCAtMC4wNzcwMDQwMDA1NDQ1NDgwMywgMC45OTQzNzk5OTcyNTM0MTgsCisgICAgICAgIC0wLjAzNDM5NTAwMTgyODY3MDUsIC0wLjE1MTg3MDk5NTc1OTk2NCwgMC45ODc4MDIwMjg2NTYwMDU5LCAtMC40MDM2MjAwMDQ2NTM5MzA2NiwgLTAuMDUyODIwMDAwNzk3NTEwMTUsIDAuOTEzNDAxMDA3NjUyMjgyNywKKyAgICAgICAgLTAuMzc1ODY1MDEyNDA3MzAyODYsIC0wLjA0MTA3ODAwMTI2MDc1NzQ0NiwgMC45MjU3NjQwMjQyNTc2NTk5LCAtMC42ODc4MTkwMDQwNTg4Mzc5LCAtMC4wODEwMDU5OTc5NTU3OTkxLCAwLjcyMTM0Nzk4NzY1MTgyNSwKKyAgICAgICAgLTAuNjU1ODk3MDIxMjkzNjQwMSwgLTAuMDUyMTAxMDAxMTQzNDU1NTA1LCAwLjc1MzA1MDk4Mjk1MjExNzksIC0wLjg3MDg4MDAwNzc0MzgzNTQsIC0wLjIwNjIzODAwMTU4NTAwNjcsIDAuNDQ2MTMyMDA0MjYxMDE2ODUsCisgICAgICAgIC0wLjgxNzU5Mzk5MTc1NjQzOTIsIC0wLjEyNDQ4MTk5ODM4Mzk5ODg3LCAwLjU2MjE3ODAxNTcwODkyMzMsIC0wLjg5MjY5NjAyMjk4NzM2NTcsIC0wLjMwNTU2Njk5NjMzNTk4MzMsIDAuMzMxMjQzMDA4Mzc1MTY3ODUsCisgICAgICAgIC0wLjg1NjUwNTk5MDAyODM4MTMsIC0wLjIxMDI0MzAwMTU4MDIzODM0LCAwLjQ3MTM3Njk4NTMxMTUwODIsIC0wLjE1MTU1NDAwMzM1Nzg4NzI3LCAtMC4wMjU0MTIwMDA3MTU3MzI1NzQsIDAuOTg4MTIxOTg2Mzg5MTYwMiwKKyAgICAgICAgLTAuNDEwMzM3MDAxMDg1MjgxMzcsIC0wLjAwMjY0MjAwMDA5NDA1NjEyOTUsIDAuOTExOTMwMDI0NjIzODcwOCwgLTAuNzI0MDYyMDI1NTQ3MDI3NiwgMC4wMDA0NzQwMDAwMDAzOTQ4ODA3NywgMC42ODk3MzQ5OTUzNjUxNDI4LAorICAgICAgICAtMC45NjU1NTkwMDU3MzczMDQ3LCAtMC4wMTcwNzg5OTk0Mjk5NDExNzcsIDAuMjU5NjIyOTkxMDg1MDUyNSwgLTAuOTczODI1OTkxMTUzNzE3LCAtMC4xOTcxMTc5OTkxOTYwNTI1NSwgLTAuMTEzMTczMDAwNTE0NTA3MywKKyAgICAgICAgMC4wNjIxNDE5OTk2MDIzMTc4MSwgMC4wODIzNTUwMDAwNzg2NzgxMywgMC45OTQ2NjQwMTMzODU3NzI3LCAtMC4zMzM0MjkwMDg3MjIzMDUzLCAwLjAwNzYyNTk5OTg2MDQ2NTUyNywgMC45NDI3NDQwMTY2NDczMzg5LAorICAgICAgICAtMC42MDg2MTA5ODc2NjMyNjksIDAuMDQ4ODU5OTk4NTgzNzkzNjQsIDAuNzkxOTYyOTgxMjI0MDYwMSwgLTAuODI1MzMwOTcyNjcxNTA4OCwgMC4xNDYzMTE5OTgzNjczMDk1NywgMC41NDUzNjQwMjIyNTQ5NDM4LAorICAgICAgICAtMC45MTA1NjY5ODU2MDcxNDcyLCAwLjMxNDY2NjAwMjk4ODgxNTMsIDAuMjY4MDU2MDA1MjM5NDg2NywgMC4xNjUyMzM5OTk0OTA3Mzc5MiwgMC4wNDU4OTgwMDE2NDEwMzUwOCwgMC45ODUxODU5ODA3OTY4MTQsCisgICAgICAgIC0wLjMyMjYwMDk5MDUzMzgyODc0LCAtMC4wMTA0NzEwMDAzMzYxMTA1OTIsIDAuOTQ2NDc2OTk1OTQ0OTc2OCwgLTAuNTYzOTE0MDAwOTg4MDA2NiwgMC4wMTUxNjYwMDA0NjMwNjg0ODUsIDAuODI1Njk0MDI0NTYyODM1NywKKyAgICAgICAgLTAuNzU4OTY1MDE1NDExMzc3LCAwLjA1NjE3Mzk5ODg2MjUwNDk2LCAwLjY0ODcwMzk5MjM2Njc5MDgsIC0wLjgzODIzNTAyMDYzNzUxMjIsIDAuMTQyNDUyOTk5OTQ5NDU1MjYsIDAuNTI2MzczOTgyNDI5NTA0NCwKKyAgICAgICAgMC45NzI3ODMwMjkwNzk0MzczLCAtMC4wMTk3OTQwMDAzMTI2ODU5NjYsIDAuMjMwODcyMDA1MjI0MjI3OSwgMC45ODI4MTU5ODA5MTEyNTQ5LCAtMC4wMzY0NjU5OTg3MzkwMDQxMzUsIDAuMTgwOTUxOTk3NjM3NzQ4NzIsCisgICAgICAgIDAuOTA1MDYzOTg2Nzc4MjU5MywgLTAuMDIyNTIyMDAwNTk1OTI3MjQsIDAuNDI0Njc5MDExMTA2NDkxMSwgMC44MzU0MDM5Nzg4MjQ2MTU1LCAtMC4wMzIyMDAwMDExODAxNzE5NywgMC41NDg2OTMwMDEyNzAyOTQyLAorICAgICAgICAwLjY0NjU3MDAyNjg3NDU0MjIsIC0wLjA0NTkyMTAwMTU4MzMzNzc4NCwgMC43NjE0NzA5NzM0OTE2Njg3LCAwLjQ4MjY3NDk4NjEyNDAzODcsIC0wLjA0ODk1Mzk5ODgzMzg5NDczLCAwLjg3NDQzMDAwMDc4MjAxMjksCisgICAgICAgIDAuNDQ1Mzk5OTk5NjE4NTMwMywgMC4xNzI1NjkwMDY2ODE0NDIyNiwgMC44Nzg1NDMwMTkyOTQ3Mzg4LCAwLjQ3MjMxMjAwMzM3NDA5OTczLCAwLjEzNzY4NTAwMDg5NjQ1Mzg2LCAwLjg3MDYxMjAyNTI2MDkyNTMsCisgICAgICAgIDAuNDgyNDI1MDA0MjQzODUwNywgMC4zODk4NjM5OTc2OTc4MzAyLCAwLjc4NDM5MzAxMjUyMzY1MTEsIDAuNjQxMzk4MDEyNjM4MDkyLCAwLjQyNzU5Nzk5OTU3Mjc1MzksIDAuNjM3MDAwMDI0MzE4Njk1MSwKKyAgICAgICAgMC45ODYzOTM5ODgxMzI0NzY4LCAwLjA5OTQ0MTk5NzcwNjg5MDEsIDAuMTMwOTE0MDAyNjU2OTM2NjUsIDAuOTE1NDg0MDExMTczMjQ4MywgMC4yMTIwMzIwMDUxOTA4NDkzLCAwLjM0MTk1MTAxMjYxMTM4OTE2LAorICAgICAgICAwLjcyNDY0Njk4NTUzMDg1MzMsIDAuMjQ1MDQ2MDA0NjUyOTc3LCAwLjY0NDA3OTk4MzIzNDQwNTUsIDAuMzU2ODU1MDA1MDI1ODYzNjUsIDAuMTc4ODU1MDAxOTI2NDIyMTIsIDAuOTE2ODc3OTg1MDAwNjEwNCwKKyAgICAgICAgMC4xNDEwMTgwMDMyMjUzMjY1NCwgMC4yNDI2MzIwMDE2Mzg0MTI0OCwgMC45NTk4MTQwMTIwNTA2Mjg3LCAwLjkzNjY3Nzk5MjM0MzkwMjYsIDAuMTY0ODQ0MDA2Mjk5OTcyNTMsIDAuMzA4OTY2OTk0Mjg1NTgzNSwKKyAgICAgICAgMC43OTgyNjIwMDAwODM5MjMzLCAwLjI0NDEzNzAwNDAxNzgyOTksIDAuNTUwNjEyOTg2MDg3Nzk5MSwgMC40NzY5NDM5OTk1Mjg4ODQ5LCAwLjI5MDQ4MjAxNDQxNzY0ODMsIDAuODI5NTQ1MDIxMDU3MTI4OSwKKyAgICAgICAgMC40MTI1OTU5ODczMTk5NDYzLCAtMC4wMTcyNDYwMDA0Njg3MzA5MjcsIDAuOTEwNzUwOTg1MTQ1NTY4OCwgMC4zNDEzNzQwMDk4NDc2NDEsIC0wLjM3Njg5MDk4NzE1NzgyMTY2LCAwLjg2MTA1NjAyOTc5NjYwMDMsCisgICAgICAgIDAuOTAyNjEwMDAzOTQ4MjExNywgMC4xNDExOTU5OTc1OTU3ODcwNSwgMC40MDY2NDM5ODY3MDE5NjUzMywgMC43MzI2MDIwMDAyMzY1MTEyLCAwLjE0OTE5Nzk5NTY2MjY4OTIsIDAuNjY0MTAzOTg0ODMyNzYzNywKKyAgICAgICAgMC4zODExNTU5OTc1MTQ3MjQ3MywgMC4xNTc5MjI5OTgwNzA3MTY4NiwgMC45MTA5MjMwMDQxNTAzOTA2LCAwLjUzMTczNzAyOTU1MjQ1OTcsIC0wLjAyMTQzMzk5OTc2MTkzOTA1LCAwLjg0NjYzODAyMzg1MzMwMiwKKyAgICAgICAgMC43OTE1NzI5ODgwMzMyOTQ3LCAtMC4zNTM5NzY5OTQ3NTI4ODM5LCAwLjQ5ODEwOTk5NjMxODgxNzE0LCAwLjkwODczNDAyMzU3MTAxNDQsIC0wLjA3OTU5NTk5NzkyOTU3MzA2LCAwLjQwOTcxNjAxMDA5MzY4ODk2LAorICAgICAgICAwLjkzODY1Njk4NTc1OTczNTEsIC0wLjE3NjgwMjk5MjgyMDczOTc1LCAwLjI5NjA3OTAwOTc3MTM0NzA1LCAwLjc3ODE1Njk5NTc3MzMxNTQsIC0wLjE5NDY3MDAwNjYzMjgwNDg3LCAwLjU5NzE0MDAxNDE3MTYwMDMsCisgICAgICAgIDAuNzM4ODQ3MDE3Mjg4MjA4LCAtMC4wNzY3NDcwMDAyMTc0Mzc3NCwgMC42Njk0ODkwMjYwNjk2NDExLCAwLjQzOTE1OTk4OTM1Njk5NDYzLCAtMC4yMjI3Njc5OTM4MDc3OTI2NiwgMC44NzAzNTIwMjk4MDA0MTUsCisgICAgICAgIDAuMzg2Mzg2MDA3MDcwNTQxNCwgLTAuMDc5MDg4MDAyNDQzMzEzNiwgMC45MTg5NDAwMDc2ODY2MTUsIDAuMzU3NjEyMDEzODE2ODMzNSwgMC4wNzMyNTE5OTk5MTQ2NDYxNSwgMC45MzA5OTMwMjA1MzQ1MTU0LAorICAgICAgICAwLjUyMjcxNDAxODgyMTcxNjMsIDAuMTYxNjc5OTk4MDQwMTk5MjgsIDAuODM3MDM2MDEzNjAzMjEwNCwgMC40MjQ2MzgwMDMxMTA4ODU2LCAwLjMyMzMyMzk5NDg3NDk1NDIsIDAuODQ1NjYxOTk3Nzk1MTA1LAorICAgICAgICAwLjczMzYxODk3NDY4NTY2OSwgMC40ODkwNzg5OTg1NjU2NzM4MywgMC40NzE4MDg5OTk3NzY4NDAyLCAwLjk4ODYwMTk4MjU5MzUzNjQsIC0wLjEwNzE3ODAwMjU5NTkwMTQ5LCAwLjEwNTczMjAwMTM2NDIzMTExLAorICAgICAgICAwLjkxMzE5NjAyNzI3ODkwMDEsIC0wLjIyMzAzMzk5NDQzNjI2NDA0LCAwLjM0MTA2OTAxMjg4MDMyNTMsIDAuNzE2MzU1OTc5NDQyNTk2NCwgLTAuMjU2MzY1MDAxMjAxNjI5NjQsIDAuNjQ4OTMxMDI2NDU4NzQwMiwKKyAgICAgICAgMC4zNTE0OTY5OTQ0OTUzOTE4NSwgLTAuMTU5NjgxMDA3MjY2MDQ0NjIsIDAuOTIyNDY5OTczNTY0MTQ4LCAwLjA3OTk5ODAwMTQ1NjI2MDY4LCAtMC4yMTA3MDM5OTg4MDQwOTI0LCAwLjk3NDI3MDk5OTQzMTYxMDEsCisgICAgICAgIDAuOTg4MzI0OTk5ODA5MjY1MSwgMC4wNDczMjk5OTk1MDY0NzM1NCwgMC4xNDQ4MjIwMDE0NTcyMTQzNiwgMC45MjEwNTAwMTIxMTE2NjM4LCAwLjA3NDEzOTk5NzM2MzA5MDUyLCAwLjM4MjMyMjk5Njg1NDc4MjEsCisgICAgICAgIDAuNjgwNDg5MDAzNjU4Mjk0NywgMC4xMTg5NTI5OTcwMjg4Mjc2NywgMC43MjMwMzg5NzE0MjQxMDI4LCAwLjQ5MzUzOTAwNTUxNzk1OTYsIC0wLjEwMjY5Mjk5ODk0NTcxMzA0LCAwLjg2MzYzODk5NzA3Nzk0MTksCisgICAgICAgIDAuMzkxMjQ3OTg3NzQ3MTkyNCwgLTAuNDc1MjI4OTk1MDg0NzYyNiwgMC43ODgwODgwMjM2NjI1NjcxLCAwLjk3MDAyNzAyOTUxNDMxMjcsIDAuMDc5NzA0OTk5OTIzNzA2MDUsIDAuMjI5NTUyMDAwNzYxMDMyMSwKKyAgICAgICAgMC44MzEyNTAwMTE5MjA5MjksIDAuMTA1OTIxMDAwMjQyMjMzMjgsIDAuNTQ1NzE0OTc0NDAzMzgxMywgMC40Nzc0MjMwMTIyNTY2MjIzLCAwLjEzMjUyNjk5Mzc1MTUyNTg4LCAwLjg2ODYyMjAwNDk4NTgwOTMsCisgICAgICAgIDAuNDc5MjIzOTk2NDAwODMzMTMsIC0wLjAwMjQxMjk5OTk4MDE1MTY1MzMsIDAuODc3Njg5MDAzOTQ0Mzk3LCAwLjY5MDI5ODAyMDgzOTY5MTIsIC0wLjI5NzExMzAwMTM0NjU4ODEzLCAwLjY1OTcwNTk5NjUxMzM2NjcsCisgICAgICAgIDAuNjMxMjEzMDA5MzU3NDUyNCwgMC40NTUwOTg5ODY2MjU2NzE0LCAwLjYyODA1NTk4OTc0MjI3OSwgMC4yNjQ5NDY5OTcxNjU2Nzk5MywgMC41NDI2Njg5OTgyNDE0MjQ2LCAwLjc5NzA2NTAxOTYwNzU0NCwKKyAgICAgICAgMC40MjE2OTYwMDcyNTE3Mzk1LCAwLjY3Mjg0NTAwNTk4OTA3NDcsIDAuNjA3ODI1OTk0NDkxNTc3MSwgMC43MzI0MjcwMDA5OTk0NTA3LCAwLjU4Mjk5NzAyNDA1OTI5NTcsIDAuMzUxNjYwOTk2Njc1NDkxMzMsCisgICAgICAgIDAuNTA4NjcwOTg1Njk4NywgMC44NjA2Mzk5ODkzNzYwNjgxLCAtMC4wMjM1MDcwMDA4Nzg0NTMyNTUsIDAuNzY0MDcyMDAwOTgwMzc3MiwgMC42NDQ5MzY5Nzg4MTY5ODYxLCAtMC4wMTU3OTgwMDA2MTg4MTU0MjIsCisgICAgICAgIDAuMTkwMjkxMDAyMzkyNzY4ODYsIDAuMjc3MzI4OTk3ODUwNDE4MSwgLTAuOTQxNzQyMDAyOTY0MDE5OCwgMC4wMjU4ODY5OTk0NDMxNzM0MSwgMC4wMDA1NzUwMDAwMTI3NTkxMTkzLCAtMC45OTk2NjUwMjE4OTYzNjIzLAorICAgICAgICAtMC4zMzA0NTcwMDE5MjQ1MTQ3NywgLTAuNDM4NzY2OTg2MTMxNjY4MSwgLTAuODM1NjMyOTc5ODY5ODQyNSwgLTAuNjI3MTI2OTkxNzQ4ODA5OCwgLTAuNDY0NTM4OTkxNDUxMjYzNCwgLTAuNjI1MjMxOTgxMjc3NDY1OCwKKyAgICAgICAgLTAuMDIzMTE1OTk5OTk2NjYyMTQsIDAuMjQ2OTAyMDAzODg0MzE1NSwgMC45Njg3NjUwMjAzNzA0ODM0LCAtMC4wMTI5NTA5OTk2NjIyODAwODMsIDAuNDU1MTQxMDA3OTAwMjM4MDQsIDAuODkwMzI1MDA5ODIyODQ1NSwKKyAgICAgICAgLTAuMDAxMTgwMDAwMDIxMTIyMzk2LCAwLjk4ODg1MjAyNDA3ODM2OTEsIDAuMTQ4ODkzOTk3MDczMTczNTIsIDAuMDE5NTIwOTk5ODYzNzQzNzgyLCAwLjY4NDEyMTAxMjY4NzY4MzEsIC0wLjcyOTEwNzAyMjI4NTQ2MTQsCisgICAgICAgIDAuMDEyMjUzMDAwNDAwOTYwNDQ1LCAwLjAwNzc4NDk5OTkwNzAxNjc1NCwgLTAuOTk5ODk0OTc2NjE1OTA1OCwgMC4zMzE0NjM5OTI1OTU2NzI2LCAtMC4zODMyMjYwMDcyMjMxMjkzLCAwLjg2MjEzMDk5OTU2NTEyNDUsCisgICAgICAgIDAuMDgyNzQ2OTk3NDc1NjI0MDgsIC0wLjE2MDQ3Njk5NzQ5NDY5NzU3LCAwLjk4MzU2NDk3Mjg3NzUwMjQsIC0wLjM4MTYzMDAwMzQ1MjMwMSwgMC42MzgwNDM5OTk2NzE5MzYsIDAuNjY4NzcyOTk1NDcxOTU0MywKKyAgICAgICAgLTAuNDQ5ODgzOTk3NDQwMzM4MTMsIDAuNzg3ODgzOTk2OTYzNTAxLCAtMC40MjA1Mjc5OTQ2MzI3MjA5NSwgLTAuMjc4MDE3MDE0MjY1MDYwNCwgMC41OTgzNTYwMDg1Mjk2NjMxLCAtMC43NTE0NTAwMDIxOTM0NTA5LAorICAgICAgICAwLjczNzgxNDAwOTE4OTYwNTcsIC0wLjQ5MTg3NDk5Mjg0NzQ0MjYsIDAuNDYyMjY1OTk4MTI1MDc2MywgMC42MTUzMzg5ODExNTE1ODA4LCAtMC40NTU0MDMwMDAxMTYzNDgyNywgMC42NDM0MDE5ODA0MDAwODU0LAorICAgICAgICAtMC40MzY3ODkwMDU5OTQ3OTY3NSwgMC4zMzQxMTQ5OTg1NzkwMjUyNywgMC44MzUyMTQwMTg4MjE3MTYzLCAtMC43NDI5NTMwMDI0NTI4NTAzLCAwLjYzODg5MDk4MTY3NDE5NDMsIC0wLjE5OTU5ODk5NzgzMTM0NDYsCisgICAgICAgIC0wLjc0MzI5NTAxMzkwNDU3MTUsIDAuNTk3NzM4MDI3NTcyNjMxOCwgLTAuMzAwMzcwMDA3NzUzMzcyMiwgMC43MTk3OTIwMDgzOTk5NjM0LCAwLjUxNjg5NjAwOTQ0NTE5MDQsIDAuNDYzMzc2OTk4OTAxMzY3MiwKKyAgICAgICAgMC4yMjE4MzA5OTM4OTA3NjIzMywgMC40NDg1NzIwMDk4MDE4NjQ2LCAwLjg2NTc3ODk4MjYzOTMxMjcsIDAuMDgyMDMyMDAyNTA4NjQwMjksIDAuMTU4NDgwMDAzNDc2MTQyODgsIDAuOTgzOTQ3OTkyMzI0ODI5MSwKKyAgICAgICAgMC41OTUzNDU5NzM5Njg1MDU5LCAwLjQ4MTE2ODAwMTg5MDE4MjUsIDAuNjQzNDU5OTc1NzE5NDUxOSwgLTAuMzc1NTY0MDA4OTUxMTg3MTMsIC0wLjYyMTUyNzAxNjE2Mjg3MjMsIDAuNjg3NSwKKyAgICAgICAgLTAuNDI2NjYzMDExMzEyNDg0NzQsIC0wLjMzNTM0Mzk4Njc0OTY0OTA1LCAwLjgzOTk0MTk3ODQ1NDU4OTgsIC0wLjQ0NDc2Mzk4ODI1NjQ1NDQ3LCAtMC43ODg3NTI5NzMwNzk2ODE0LCAtMC40MjQzMjYwMDI1OTc4MDg4NCwKKyAgICAgICAgLTAuNzU1NzMwOTg2NTk1MTUzOCwgLTAuNjIyMjY5OTg4MDU5OTk3NiwgLTAuMjA0MDg2MDA1Njg3NzEzNjIsIC0wLjQyOTI2Njk4OTIzMTEwOTYsIC0wLjUzNjE4NTAyNjE2ODgyMzIsIC0wLjcyNjc5Nzk5Nzk1MTUwNzYsCisgICAgICAgIC0wLjc2NTU5MDAxMjA3MzUxNjgsIC0wLjU2NzEwMzk4MTk3MTc0MDcsIC0wLjMwMzc1MjAwNTEwMDI1MDI0LCAwLjAwNzM0ODAwMDA3MTk0MjgwNiwgLTAuMjExMTM0OTk5OTkwNDYzMjYsIDAuOTc3NDI4OTcyNzIxMDk5OSwKKyAgICAgICAgLTAuMDE5OTAwOTk5OTYzMjgzNTQsIC0wLjQzNzMyMTAwNzI1MTczOTUsIDAuODk5MDg0OTg1MjU2MTk1MSwgLTAuMDA4Nzc1MDAwNDYwNDQ1ODgxLCAtMC45ODY0MTk5NzU3NTc1OTg5LCAwLjE2NDAwNDk5NjQxODk1Mjk0LAorICAgICAgICAwLjAyNDg1NTk5OTI3NjA0MTk4NSwgLTAuNjgyOTMzOTg2MTg2OTgxMiwgLTAuNzMwMDU3MDAxMTEzODkxNiwgMC4wMTQ1MTQwMDAxNTUwMzE2ODEsIDAuMDM2NTUyMDAwNzkwODM0NDMsIC0wLjk5OTIyNTk3NDA4Mjk0NjgsCisgICAgICAgIDAuNDAxOTI4OTkxMDc5MzMwNDQsIC0wLjQ2NzY1NTAwMzA3MDgzMTMsIDAuNzg3MjQzMDA4NjEzNTg2NCwgMC40MTY5NjEwMTQyNzA3ODI0NywgLTAuNjgxMzgyMDAwNDQ2MzE5NiwgMC42MDE1NDkwMjkzNTAyODA4LAorICAgICAgICAwLjUwMzM2MDk4NjcwOTU5NDcsIC0wLjg2Mzc3NDAwMTU5ODM1ODIsIC0wLjAyMjgzOTAwMDQ0ODU4NDU1NywgMC4yMDU4ODE5OTc5NDI5MjQ1LCAtMC4yOTQ1NzUwMDU3Njk3Mjk2LCAtMC45MzMxODcwMDc5MDQwNTI3LAorICAgICAgICAtMC4yMzUxNTg5OTQ3OTM4OTE5LCAwLjU1MzU1Nzk5MTk4MTUwNjMsIC0wLjc5ODkxOTk3NTc1NzU5ODksIDAuNjUzMzgyMDAzMzA3MzQyNSwgLTAuNDM1NTg4MDAyMjA0ODk1LCAwLjYxOTE1NjAwMjk5ODM1MiwKKyAgICAgICAgMC43NTU1NTAwMjY4OTM2MTU3LCAtMC41NTQ0MTA5OTQwNTI4ODcsIDAuMzQ4OTYwMDEyMTk3NDk0NSwgMC43NzY1MTYwMjAyOTgwMDQyLCAtMC42Mjk4MzYwMjI4NTM4NTEzLCAtMC4wMTgxNDE5OTk4NDA3MzYzOSwKKyAgICAgICAgMC4wMjU5NzUwMDAxMTMyNDg4MjUsIDAuMDA4MjY0OTk5ODM2NjgzMjczLCAtMC45OTk2MjgwMDc0MTE5NTY4LCAtMC42MDg2NTE5OTU2NTg4NzQ1LCAwLjQ5NTM2Njk5MDU2NjI1MzY2LCAtMC42MTk4MDE5OTgxMzg0Mjc3LAorICAgICAgICAtMC45ODEzMjAwMjM1MzY2ODIxLCAwLjE5MjM4MDk5NDU1ODMzNDM1LCAwLCAtMC44MzE2NTA5NzIzNjYzMzMsIDAuNTU1Mjk4OTg0MDUwNzUwNywgMCwKKyAgICAgICAgLTAuNDQyNTY0MDEwNjIwMTE3MiwgMC4zODMwODk5ODk0MjM3NTE4MywgMC44MTA3ODg5ODkwNjcwNzc2LCAtMC41NjIzNTA5ODgzODgwNjE1LCAwLjExMDI2NDAwMzI3NjgyNDk1LCAwLjgxOTUxMzk3NjU3Mzk0NDEsCisgICAgICAgIDAuMzY3OTE3MDAxMjQ3NDA2LCAtMC4xNTE3ODU5OTk1MzY1MTQyOCwgMC45MTczODU5OTUzODgwMzEsIDAuMzk2MDY2OTkzNDc0OTYwMywgLTAuMDc3NzQ4MDAwNjIxNzk1NjUsIDAuOTE0OTI0MDI1NTM1NTgzNSwKKyAgICAgICAgMC4zMjgzNTIwMDQyODk2MjcxLCAtMC4xMzU2Mjc5OTk5MDE3NzE1NSwgMC45MzQ3NjcwMDc4Mjc3NTg4LCAwLjM1MzA3NDk5NzY2MzQ5NzksIC0wLjA2OTUyMjk5OTIyNzA0Njk3LCAwLjkzMzAwODAxNTE1NTc5MjIsCisgICAgICAgIC0wLjU5MzU1OTAyNjcxODEzOTYsIDAuMjAwMzU4MDAzMzc3OTE0NDMsIDAuNzc5NDUxMDEyNjExMzg5MiwgLTAuNjIwMTgwMDEwNzk1NTkzMywgMC4xMjI0NTU5OTkyNTUxODAzNiwgMC43NzQ4NDI5Nzc1MjM4MDM3LAorICAgICAgICAtMC41NTUyOTg5ODQwNTA3NTA3LCAwLjgzMTY1MDk3MjM2NjMzMywgMCwgLTAuMjYxNjk2MDEwODI4MDE4MiwgMC41MjM3MzA5OTMyNzA4NzQsIDAuODEwNjkyMDEyMzEwMDI4MSwKKyAgICAgICAgMC4yODE5NjQwMDQwMzk3NjQ0LCAtMC4yODE5MTk5ODYwMDk1OTc4LCAwLjkxNzA2OTk3MTU2MTQzMTksIDAuMjUxNjk3OTg3MzE4MDM4OTQsIC0wLjI1MTYxMjAwNzYxNzk1MDQ0LCAwLjkzNDUyNjk3OTkyMzI0ODMsCisgICAgICAgIC0wLjQ3MTAzMzAwNjkwNjUwOTQsIDAuNDEyNDk3MDEzODA3Mjk2NzUsIDAuNzc5NzI2OTgyMTE2Njk5MiwgLTAuMTkyMzgwOTk0NTU4MzM0MzUsIDAuOTgxMzIwMDIzNTM2NjgyMSwgMCwKKyAgICAgICAgLTAuMDQwMzExMDAxMjQxMjA3MTIsIDAuNTg0MDQyMDEyNjkxNDk3OCwgMC44MTA3MjE5OTM0NDYzNTAxLCAwLjE1MTc4NTAwMTE1ODcxNDMsIC0wLjM2Nzg5NTAwNzEzMzQ4MzksIDAuOTE3Mzk2MDA4OTY4MzUzMywKKyAgICAgICAgMC4xMzU2MTk5OTc5NzgyMTA0NSwgLTAuMzI4Mjg5OTg1NjU2NzM4MywgMC45MzQ3OTAwMTUyMjA2NDIxLCAtMC4yNzczNzc5OTI4Njg0MjM0NiwgMC41NjE2MDE5OTY0MjE4MTQsIDAuNzc5NTI4MDIxODEyNDM5LAorICAgICAgICAtMSwgMCwgMCwgMC4yOTA3NDk5OTY5MDA1NTg0NywgMC41NDEzNTYwMjcxMjYzMTIzLCAwLjc4ODkyMjAxMTg1MjI2NDQsCisgICAgICAgIDAuMDc3NjcxOTk3MjQ5MTI2NDMsIC0wLjM5NjA3Mzk5NzAyMDcyMTQ0LCAwLjkxNDkyNzAwNTc2NzgyMjMsIDAuMDY5MzcyOTk2Njg3ODg5MSwgLTAuMzUzMDk0MDExNTQ1MTgxMywgMC45MzMwMTMwMjE5NDU5NTM0LAorICAgICAgICAtMC4xMjIyMTAwMDM0MzU2MTE3MiwgMC42MjAyMTM5ODU0NDMxMTUyLCAwLjc3NDg1NTAxNzY2MjA0ODMsIDAuMTkyMzgwOTk0NTU4MzM0MzUsIDAuOTgxMzIwMDIzNTM2NjgyMSwgMCwKKyAgICAgICAgMC41NTUyOTg5ODQwNTA3NTA3LCAwLjgzMTY1MDk3MjM2NjMzMywgMCwgMC4zODMwODk5ODk0MjM3NTE4MywgMC40NDI1NjQwMTA2MjAxMTcyLCAwLjgxMDc4ODk4OTA2NzA3NzYsCisgICAgICAgIDAuMTEwMjY0MDAzMjc2ODI0OTUsIDAuNTYyMzUwOTg4Mzg4MDYxNSwgMC44MTk1MTM5NzY1NzM5NDQxLCAtMC4xNTE3ODU5OTk1MzY1MTQyOCwgLTAuMzY3OTE3MDAxMjQ3NDA2LCAwLjkxNzM4NTk5NTM4ODAzMSwKKyAgICAgICAgLTAuMDc3NzQ4MDAwNjIxNzk1NjUsIC0wLjM5NjA2Njk5MzQ3NDk2MDMsIDAuOTE0OTI0MDI1NTM1NTgzNSwgLTAuMTM1NjI3OTk5OTAxNzcxNTUsIC0wLjMyODM1MjAwNDI4OTYyNzEsIDAuOTM0NzY3MDA3ODI3NzU4OCwKKyAgICAgICAgLTAuMDY5NTIyOTk5MjI3MDQ2OTcsIC0wLjM1MzA3NDk5NzY2MzQ5NzksIDAuOTMzMDA4MDE1MTU1NzkyMiwgMC4yMDAzNTgwMDMzNzc5MTQ0MywgMC41OTM1NTkwMjY3MTgxMzk2LCAwLjc3OTQ1MTAxMjYxMTM4OTIsCisgICAgICAgIDAuMTIyNDU1OTk5MjU1MTgwMzYsIDAuNjIwMTgwMDEwNzk1NTkzMywgMC43NzQ4NDI5Nzc1MjM4MDM3LCAwLjgzMTY1MDk3MjM2NjMzMywgMC41NTUyOTg5ODQwNTA3NTA3LCAwLAorICAgICAgICAwLjUyMzczMDk5MzI3MDg3NCwgMC4yNjE2OTYwMTA4MjgwMTgyLCAwLjgxMDY5MjAxMjMxMDAyODEsIC0wLjI4MTkxOTk4NjAwOTU5NzgsIC0wLjI4MTk2NDAwNDAzOTc2NDQsIDAuOTE3MDY5OTcxNTYxNDMxOSwKKyAgICAgICAgLTAuMjUxNjEyMDA3NjE3OTUwNDQsIC0wLjI1MTY5Nzk4NzMxODAzODk0LCAwLjkzNDUyNjk3OTkyMzI0ODMsIDAuNDEyNDk3MDEzODA3Mjk2NzUsIDAuNDcxMDMzMDA2OTA2NTA5NCwgMC43Nzk3MjY5ODIxMTY2OTkyLAorICAgICAgICAwLjk4MTMyMDAyMzUzNjY4MjEsIDAuMTkyMzgwOTk0NTU4MzM0MzUsIDAsIDAuNTg0MDQyMDEyNjkxNDk3OCwgMC4wNDAzMTEwMDEyNDEyMDcxMiwgMC44MTA3MjE5OTM0NDYzNTAxLAorICAgICAgICAtMC4zNjc4OTUwMDcxMzM0ODM5LCAtMC4xNTE3ODUwMDExNTg3MTQzLCAwLjkxNzM5NjAwODk2ODM1MzMsIC0wLjMyODI4OTk4NTY1NjczODMsIC0wLjEzNTYxOTk5Nzk3ODIxMDQ1LCAwLjkzNDc5MDAxNTIyMDY0MjEsCisgICAgICAgIDAuNTYxNjAxOTk2NDIxODE0LCAwLjI3NzM3Nzk5Mjg2ODQyMzQ2LCAwLjc3OTUyODAyMTgxMjQzOSwgLTEsIDAsIDAsCisgICAgICAgIDAuNTQxMzU2MDI3MTI2MzEyMywgLTAuMjkwNzQ5OTk2OTAwNTU4NDcsIDAuNzg4OTIyMDExODUyMjY0NCwgLTAuMzk2MDczOTk3MDIwNzIxNDQsIC0wLjA3NzY3MTk5NzI0OTEyNjQzLCAwLjkxNDkyNzAwNTc2NzgyMjMsCisgICAgICAgIC0wLjM1MzA5NDAxMTU0NTE4MTMsIC0wLjA2OTM3Mjk5NjY4Nzg4OTEsIDAuOTMzMDEzMDIxOTQ1OTUzNCwgMC42MjAyMTM5ODU0NDMxMTUyLCAwLjEyMjIxMDAwMzQzNTYxMTcyLCAwLjc3NDg1NTAxNzY2MjA0ODMsCisgICAgICAgIDAuOTgxMzIwMDIzNTM2NjgyMSwgLTAuMTkyMzgwOTk0NTU4MzM0MzUsIDAsIDAuODMxNjUwOTcyMzY2MzMzLCAtMC41NTUyOTg5ODQwNTA3NTA3LCAwLAorICAgICAgICAwLjQ0MjU2NDAxMDYyMDExNzIsIC0wLjM4MzA4OTk4OTQyMzc1MTgzLCAwLjgxMDc4ODk4OTA2NzA3NzYsIDAuNTYyMzUwOTg4Mzg4MDYxNSwgLTAuMTEwMjY0MDAzMjc2ODI0OTUsIDAuODE5NTEzOTc2NTczOTQ0MSwKKyAgICAgICAgLTAuMzY3OTE3MDAxMjQ3NDA2LCAwLjE1MTc4NTk5OTUzNjUxNDI4LCAwLjkxNzM4NTk5NTM4ODAzMSwgLTAuMzk2MDY2OTkzNDc0OTYwMywgMC4wNzc3NDgwMDA2MjE3OTU2NSwgMC45MTQ5MjQwMjU1MzU1ODM1LAorICAgICAgICAtMC4zMjgzNTIwMDQyODk2MjcxLCAwLjEzNTYyNzk5OTkwMTc3MTU1LCAwLjkzNDc2NzAwNzgyNzc1ODgsIC0wLjM1MzA3NDk5NzY2MzQ5NzksIDAuMDY5NTIyOTk5MjI3MDQ2OTcsIDAuOTMzMDA4MDE1MTU1NzkyMiwKKyAgICAgICAgMC41OTM1NTkwMjY3MTgxMzk2LCAtMC4yMDAzNTgwMDMzNzc5MTQ0MywgMC43Nzk0NTEwMTI2MTEzODkyLCAwLjYyMDE4MDAxMDc5NTU5MzMsIC0wLjEyMjQ1NTk5OTI1NTE4MDM2LCAwLjc3NDg0Mjk3NzUyMzgwMzcsCisgICAgICAgIDAuNTU1Mjk4OTg0MDUwNzUwNywgLTAuODMxNjUwOTcyMzY2MzMzLCAwLCAwLjI2MTY5NjAxMDgyODAxODIsIC0wLjUyMzczMDk5MzI3MDg3NCwgMC44MTA2OTIwMTIzMTAwMjgxLAorICAgICAgICAtMC4yODE5NjQwMDQwMzk3NjQ0LCAwLjI4MTkxOTk4NjAwOTU5NzgsIDAuOTE3MDY5OTcxNTYxNDMxOSwgLTAuMjUxNjk3OTg3MzE4MDM4OTQsIDAuMjUxNjEyMDA3NjE3OTUwNDQsIDAuOTM0NTI2OTc5OTIzMjQ4MywKKyAgICAgICAgMC40NzEwMzMwMDY5MDY1MDk0LCAtMC40MTI0OTcwMTM4MDcyOTY3NSwgMC43Nzk3MjY5ODIxMTY2OTkyLCAwLjE5MjM4MDk5NDU1ODMzNDM1LCAtMC45ODEzMjAwMjM1MzY2ODIxLCAwLAorICAgICAgICAwLjA0MDMxMTAwMTI0MTIwNzEyLCAtMC41ODQwNDIwMTI2OTE0OTc4LCAwLjgxMDcyMTk5MzQ0NjM1MDEsIC0wLjE1MTc4NTAwMTE1ODcxNDMsIDAuMzY3ODk1MDA3MTMzNDgzOSwgMC45MTczOTYwMDg5NjgzNTMzLAorICAgICAgICAtMC4xMzU2MTk5OTc5NzgyMTA0NSwgMC4zMjgyODk5ODU2NTY3MzgzLCAwLjkzNDc5MDAxNTIyMDY0MjEsIDAuMjc3Mzc3OTkyODY4NDIzNDYsIC0wLjU2MTYwMTk5NjQyMTgxNCwgMC43Nzk1MjgwMjE4MTI0MzksCisgICAgICAgIC0xLCAwLCAwLCAtMC4yOTA3NDk5OTY5MDA1NTg0NywgLTAuNTQxMzU2MDI3MTI2MzEyMywgMC43ODg5MjIwMTE4NTIyNjQ0LAorICAgICAgICAtMC4wNzc2NzE5OTcyNDkxMjY0MywgMC4zOTYwNzM5OTcwMjA3MjE0NCwgMC45MTQ5MjcwMDU3Njc4MjIzLCAtMC4wNjkzNzI5OTY2ODc4ODkxLCAwLjM1MzA5NDAxMTU0NTE4MTMsIDAuOTMzMDEzMDIxOTQ1OTUzNCwKKyAgICAgICAgMC4xMjIyMTAwMDM0MzU2MTE3MiwgLTAuNjIwMjEzOTg1NDQzMTE1MiwgMC43NzQ4NTUwMTc2NjIwNDgzLCAtMC4xOTIzODA5OTQ1NTgzMzQzNSwgLTAuOTgxMzIwMDIzNTM2NjgyMSwgMCwKKyAgICAgICAgLTAuNTU1Mjk4OTg0MDUwNzUwNywgLTAuODMxNjUwOTcyMzY2MzMzLCAwLCAtMC4zODMwODk5ODk0MjM3NTE4MywgLTAuNDQyNTY0MDEwNjIwMTE3MiwgMC44MTA3ODg5ODkwNjcwNzc2LAorICAgICAgICAtMC4xMTAyNjQwMDMyNzY4MjQ5NSwgLTAuNTYyMzUwOTg4Mzg4MDYxNSwgMC44MTk1MTM5NzY1NzM5NDQxLCAwLjE1MTc4NTk5OTUzNjUxNDI4LCAwLjM2NzkxNzAwMTI0NzQwNiwgMC45MTczODU5OTUzODgwMzEsCisgICAgICAgIDAuMDc3NzQ4MDAwNjIxNzk1NjUsIDAuMzk2MDY2OTkzNDc0OTYwMywgMC45MTQ5MjQwMjU1MzU1ODM1LCAwLjEzNTYyNzk5OTkwMTc3MTU1LCAwLjMyODM1MjAwNDI4OTYyNzEsIDAuOTM0NzY3MDA3ODI3NzU4OCwKKyAgICAgICAgMC4wNjk1MjI5OTkyMjcwNDY5NywgMC4zNTMwNzQ5OTc2NjM0OTc5LCAwLjkzMzAwODAxNTE1NTc5MjIsIC0wLjIwMDM1ODAwMzM3NzkxNDQzLCAtMC41OTM1NTkwMjY3MTgxMzk2LCAwLjc3OTQ1MTAxMjYxMTM4OTIsCisgICAgICAgIC0wLjEyMjQ1NTk5OTI1NTE4MDM2LCAtMC42MjAxODAwMTA3OTU1OTMzLCAwLjc3NDg0Mjk3NzUyMzgwMzcsIC0wLjgzMTY1MDk3MjM2NjMzMywgLTAuNTU1Mjk4OTg0MDUwNzUwNywgMCwKKyAgICAgICAgLTAuNTIzNzMwOTkzMjcwODc0LCAtMC4yNjE2OTYwMTA4MjgwMTgyLCAwLjgxMDY5MjAxMjMxMDAyODEsIDAuMjgxOTE5OTg2MDA5NTk3OCwgMC4yODE5NjQwMDQwMzk3NjQ0LCAwLjkxNzA2OTk3MTU2MTQzMTksCisgICAgICAgIDAuMjUxNjEyMDA3NjE3OTUwNDQsIDAuMjUxNjk3OTg3MzE4MDM4OTQsIDAuOTM0NTI2OTc5OTIzMjQ4MywgLTAuNDEyNDk3MDEzODA3Mjk2NzUsIC0wLjQ3MTAzMzAwNjkwNjUwOTQsIDAuNzc5NzI2OTgyMTE2Njk5MiwKKyAgICAgICAgLTAuOTgxMzIwMDIzNTM2NjgyMSwgLTAuMTkyMzgwOTk0NTU4MzM0MzUsIDAsIC0wLjU4NDA0MjAxMjY5MTQ5NzgsIC0wLjA0MDMxMTAwMTI0MTIwNzEyLCAwLjgxMDcyMTk5MzQ0NjM1MDEsCisgICAgICAgIDAuMzY3ODk1MDA3MTMzNDgzOSwgMC4xNTE3ODUwMDExNTg3MTQzLCAwLjkxNzM5NjAwODk2ODM1MzMsIDAuMzI4Mjg5OTg1NjU2NzM4MywgMC4xMzU2MTk5OTc5NzgyMTA0NSwgMC45MzQ3OTAwMTUyMjA2NDIxLAorICAgICAgICAtMC41NjE2MDE5OTY0MjE4MTQsIC0wLjI3NzM3Nzk5Mjg2ODQyMzQ2LCAwLjc3OTUyODAyMTgxMjQzOSwgLTEsIDAsIDAsCisgICAgICAgIC0wLjU0MTM1NjAyNzEyNjMxMjMsIDAuMjkwNzQ5OTk2OTAwNTU4NDcsIDAuNzg4OTIyMDExODUyMjY0NCwgMC4zOTYwNzM5OTcwMjA3MjE0NCwgMC4wNzc2NzE5OTcyNDkxMjY0MywgMC45MTQ5MjcwMDU3Njc4MjIzLAorICAgICAgICAwLjM1MzA5NDAxMTU0NTE4MTMsIDAuMDY5MzcyOTk2Njg3ODg5MSwgMC45MzMwMTMwMjE5NDU5NTM0LCAtMC42MjAyMTM5ODU0NDMxMTUyLCAtMC4xMjIyMTAwMDM0MzU2MTE3MiwgMC43NzQ4NTUwMTc2NjIwNDgzLAorICAgICAgICAtMC42MjAxODAwMTA3OTU1OTMzLCAwLjEyMjQ1NTk5OTI1NTE4MDM2LCAwLjc3NDg0Mjk3NzUyMzgwMzcsIC0wLjU2MTY0Njk5NzkyODYxOTQsIDAuMjc3NTUwOTk1MzQ5ODg0MDMsIDAuNzc5NDM0OTc4OTYxOTQ0NiwKKyAgICAgICAgLTAuODk3OTIxMDI1NzUzMDIxMiwgMC4zNzE1OTYwMDg1MzkxOTk4MywgMC4yMzU5MDk5OTg0MTY5MDA2MywgLTAuOTU0MjA5OTgzMzQ4ODQ2NCwgMC4xODg0MTA5OTczOTA3NDcwNywgMC4yMzIzNDU5OTgyODcyMDA5MywKKyAgICAgICAgLTAuOTEwMTIwMDEwMzc1OTc2NiwgMC4zNzY2NDQ5OTg3ODg4MzM2LCAwLjE3MjY4Mzk5ODk0MjM3NTE4LCAtMC45NjY3OTUwMjcyNTYwMTIsIDAuMTkwODk2MDA0NDM4NDAwMjcsIDAuMTY5OTAwOTk4NDczMTY3NDIsCisgICAgICAgIC0wLjg1NDk4Nzk3ODkzNTI0MTcsIDAuMzUzODMyOTg5OTMxMTA2NTcsIDAuMzc5MjA3OTk4NTE0MTc1NCwgLTAuOTEwMDQ5OTc0OTE4MzY1NSwgMC4xNzk2OTEwMDE3NzI4ODA1NSwgMC4zNzM1MjI5OTY5MDI0NjU4LAorICAgICAgICAtMC44MDY0MTUwMjE0MTk1MjUxLCAwLjI3MjQyODk4OTQxMDQwMDQsIDAuNTI0ODYwMDI0NDUyMjA5NSwgLTAuODM4MzQwOTk3Njk1OTIyOSwgMC4xNjU1MzE5OTI5MTIyOTI0OCwgMC41MTk0MDY5NzQzMTU2NDMzLAorICAgICAgICAtMC40MTI1OTU5ODczMTk5NDYzLCAwLjQ3MDk0NTAwMDY0ODQ5ODU0LCAwLjc3OTcyNzk5NTM5NTY2MDQsIC0wLjY4NzE5Mjk3NjQ3NDc2MiwgMC42ODcxOTI5NzY0NzQ3NjIsIDAuMjM1NjUxOTk5NzExOTkwMzYsCisgICAgICAgIC0wLjY5NjUxOTAxNzIxOTU0MzUsIDAuNjk2NTE5MDE3MjE5NTQzNSwgMC4xNzI0MDQwMDYxMjM1NDI3OSwgLTAuNjU0NDg4MDI3MDk1Nzk0NywgMC42NTQ0ODcwMTM4MTY4MzM1LCAwLjM3ODUzODk5NTk4MTIxNjQzLAorICAgICAgICAtMC42NDA0OTcwMjg4Mjc2NjcyLCAwLjU2MTE0Mjk4MTA1MjM5ODcsIDAuNTI0MjkwOTc4OTA4NTM4OCwgLTAuMjAwNDc5MDAwODA2ODA4NDcsIDAuNTkzMzk0OTk0NzM1NzE3OCwgMC43Nzk1NDUwMDkxMzYyLAorICAgICAgICAtMC4zNzE1OTY5OTIwMTU4Mzg2LCAwLjg5NzkyMTAyNTc1MzAyMTIsIDAuMjM1OTA5OTk4NDE2OTAwNjMsIC0wLjM3NjY0NDk5ODc4ODgzMzYsIDAuOTEwMTIwMDEwMzc1OTc2NiwgMC4xNzI2ODM5OTg5NDIzNzUxOCwKKyAgICAgICAgLTAuMzUzODMyOTg5OTMxMTA2NTcsIDAuODU0OTg3OTc4OTM1MjQxNywgMC4zNzkyMDc5OTg1MTQxNzU0LCAtMC4zNzcwNzI5ODk5NDA2NDMzLCAwLjc2MzA3ODk4NzU5ODQxOTIsIDAuNTI0OTA1OTc5NjMzMzMxMywKKyAgICAgICAgLTAuMTIyNDU5MDAxODM5MTYwOTIsIDAuNjIwMTk0MDE3ODg3MTE1NSwgMC43NzQ4MzA5OTY5OTAyMDM5LCAtMC4xODg0MTA5OTczOTA3NDcwNywgMC45NTQyMDk5ODMzNDg4NDY0LCAwLjIzMjM0NTk5ODI4NzIwMDkzLAorICAgICAgICAtMC4xOTA4OTYwMDQ0Mzg0MDAyNywgMC45NjY3OTUwMjcyNTYwMTIsIDAuMTY5OTAwOTk4NDczMTY3NDIsIC0wLjE3OTY5MjAwMDE1MDY4MDU0LCAwLjkxMDA0OTk3NDkxODM2NTUsIDAuMzczNTIyOTk2OTAyNDY1OCwKKyAgICAgICAgLTAuMTY1NTMxOTkyOTEyMjkyNDgsIDAuODM4MzQwOTk3Njk1OTIyOSwgMC41MTk0MDY5NzQzMTU2NDMzLCAwLjEyMjQ1NTk5OTI1NTE4MDM2LCAwLjYyMDE4MDAxMDc5NTU5MzMsIDAuNzc0ODQyOTc3NTIzODAzNywKKyAgICAgICAgMC4yNzc1NTA5OTUzNDk4ODQwMywgMC41NjE2NDY5OTc5Mjg2MTk0LCAwLjc3OTQzNDk3ODk2MTk0NDYsIDAuMzcxNTk2MDA4NTM5MTk5ODMsIDAuODk3OTIxMDI1NzUzMDIxMiwgMC4yMzU5MDk5OTg0MTY5MDA2MywKKyAgICAgICAgMC4xODg0MTA5OTczOTA3NDcwNywgMC45NTQyMDk5ODMzNDg4NDY0LCAwLjIzMjM0NTk5ODI4NzIwMDkzLCAwLjM3NjY0NDk5ODc4ODgzMzYsIDAuOTEwMTIwMDEwMzc1OTc2NiwgMC4xNzI2ODM5OTg5NDIzNzUxOCwKKyAgICAgICAgMC4xOTA4OTYwMDQ0Mzg0MDAyNywgMC45NjY3OTUwMjcyNTYwMTIsIDAuMTY5OTAwOTk4NDczMTY3NDIsIDAuMzUzODMyOTg5OTMxMTA2NTcsIDAuODU0OTg3OTc4OTM1MjQxNywgMC4zNzkyMDc5OTg1MTQxNzU0LAorICAgICAgICAwLjE3OTY5MTAwMTc3Mjg4MDU1LCAwLjkxMDA0OTk3NDkxODM2NTUsIDAuMzczNTIyOTk2OTAyNDY1OCwgMC4yNzI0Mjg5ODk0MTA0MDA0LCAwLjgwNjQxNTAyMTQxOTUyNTEsIDAuNTI0ODYwMDI0NDUyMjA5NSwKKyAgICAgICAgMC4xNjU1MzE5OTI5MTIyOTI0OCwgMC44MzgzNDA5OTc2OTU5MjI5LCAwLjUxOTQwNjk3NDMxNTY0MzMsIDAuNDcwOTQ1MDAwNjQ4NDk4NTQsIDAuNDEyNTk1OTg3MzE5OTQ2MywgMC43Nzk3Mjc5OTUzOTU2NjA0LAorICAgICAgICAwLjY4NzE5Mjk3NjQ3NDc2MiwgMC42ODcxOTI5NzY0NzQ3NjIsIDAuMjM1NjUxOTk5NzExOTkwMzYsIDAuNjk2NTE5MDE3MjE5NTQzNSwgMC42OTY1MTkwMTcyMTk1NDM1LCAwLjE3MjQwNDAwNjEyMzU0Mjc5LAorICAgICAgICAwLjY1NDQ4NzAxMzgxNjgzMzUsIDAuNjU0NDg4MDI3MDk1Nzk0NywgMC4zNzg1Mzg5OTU5ODEyMTY0MywgMC41NjExNDI5ODEwNTIzOTg3LCAwLjY0MDQ5NzAyODgyNzY2NzIsIDAuNTI0MjkwOTc4OTA4NTM4OCwKKyAgICAgICAgMC41OTMzOTQ5OTQ3MzU3MTc4LCAwLjIwMDQ3OTAwMDgwNjgwODQ3LCAwLjc3OTU0NTAwOTEzNjIsIDAuODk3OTIxMDI1NzUzMDIxMiwgMC4zNzE1OTY5OTIwMTU4Mzg2LCAwLjIzNTkwOTk5ODQxNjkwMDYzLAorICAgICAgICAwLjkxMDEyMDAxMDM3NTk3NjYsIDAuMzc2NjQ0OTk4Nzg4ODMzNiwgMC4xNzI2ODM5OTg5NDIzNzUxOCwgMC44NTQ5ODc5Nzg5MzUyNDE3LCAwLjM1MzgzMjk4OTkzMTEwNjU3LCAwLjM3OTIwNzk5ODUxNDE3NTQsCisgICAgICAgIDAuNzYzMDc4OTg3NTk4NDE5MiwgMC4zNzcwNzI5ODk5NDA2NDMzLCAwLjUyNDkwNTk3OTYzMzMzMTMsIDAuNjIwMTk0MDE3ODg3MTE1NSwgMC4xMjI0NTkwMDE4MzkxNjA5MiwgMC43NzQ4MzA5OTY5OTAyMDM5LAorICAgICAgICAwLjk1NDIwOTk4MzM0ODg0NjQsIDAuMTg4NDEwOTk3MzkwNzQ3MDcsIDAuMjMyMzQ1OTk4Mjg3MjAwOTMsIDAuOTY2Nzk1MDI3MjU2MDEyLCAwLjE5MDg5NjAwNDQzODQwMDI3LCAwLjE2OTkwMDk5ODQ3MzE2NzQyLAorICAgICAgICAwLjkxMDA0OTk3NDkxODM2NTUsIDAuMTc5NjkyMDAwMTUwNjgwNTQsIDAuMzczNTIyOTk2OTAyNDY1OCwgMC44MzgzNDA5OTc2OTU5MjI5LCAwLjE2NTUzMTk5MjkxMjI5MjQ4LCAwLjUxOTQwNjk3NDMxNTY0MzMsCisgICAgICAgIDAuNjIwMTgwMDEwNzk1NTkzMywgLTAuMTIyNDU1OTk5MjU1MTgwMzYsIDAuNzc0ODQyOTc3NTIzODAzNywgMC41NjE2NDY5OTc5Mjg2MTk0LCAtMC4yNzc1NTA5OTUzNDk4ODQwMywgMC43Nzk0MzQ5Nzg5NjE5NDQ2LAorICAgICAgICAwLjg5NzkyMTAyNTc1MzAyMTIsIC0wLjM3MTU5NjAwODUzOTE5OTgzLCAwLjIzNTkwOTk5ODQxNjkwMDYzLCAwLjk1NDIwOTk4MzM0ODg0NjQsIC0wLjE4ODQxMDk5NzM5MDc0NzA3LCAwLjIzMjM0NTk5ODI4NzIwMDkzLAorICAgICAgICAwLjkxMDEyMDAxMDM3NTk3NjYsIC0wLjM3NjY0NDk5ODc4ODgzMzYsIDAuMTcyNjgzOTk4OTQyMzc1MTgsIDAuOTY2Nzk1MDI3MjU2MDEyLCAtMC4xOTA4OTYwMDQ0Mzg0MDAyNywgMC4xNjk5MDA5OTg0NzMxNjc0MiwKKyAgICAgICAgMC44NTQ5ODc5Nzg5MzUyNDE3LCAtMC4zNTM4MzI5ODk5MzExMDY1NywgMC4zNzkyMDc5OTg1MTQxNzU0LCAwLjkxMDA0OTk3NDkxODM2NTUsIC0wLjE3OTY5MTAwMTc3Mjg4MDU1LCAwLjM3MzUyMjk5NjkwMjQ2NTgsCisgICAgICAgIDAuODA2NDE1MDIxNDE5NTI1MSwgLTAuMjcyNDI4OTg5NDEwNDAwNCwgMC41MjQ4NjAwMjQ0NTIyMDk1LCAwLjgzODM0MDk5NzY5NTkyMjksIC0wLjE2NTUzMTk5MjkxMjI5MjQ4LCAwLjUxOTQwNjk3NDMxNTY0MzMsCisgICAgICAgIDAuNDEyNTk1OTg3MzE5OTQ2MywgLTAuNDcwOTQ1MDAwNjQ4NDk4NTQsIDAuNzc5NzI3OTk1Mzk1NjYwNCwgMC42ODcxOTI5NzY0NzQ3NjIsIC0wLjY4NzE5Mjk3NjQ3NDc2MiwgMC4yMzU2NTE5OTk3MTE5OTAzNiwKKyAgICAgICAgMC42OTY1MTkwMTcyMTk1NDM1LCAtMC42OTY1MTkwMTcyMTk1NDM1LCAwLjE3MjQwNDAwNjEyMzU0Mjc5LCAwLjY1NDQ4ODAyNzA5NTc5NDcsIC0wLjY1NDQ4NzAxMzgxNjgzMzUsIDAuMzc4NTM4OTk1OTgxMjE2NDMsCisgICAgICAgIDAuNjQwNDk3MDI4ODI3NjY3MiwgLTAuNTYxMTQyOTgxMDUyMzk4NywgMC41MjQyOTA5Nzg5MDg1Mzg4LCAwLjIwMDQ3OTAwMDgwNjgwODQ3LCAtMC41OTMzOTQ5OTQ3MzU3MTc4LCAwLjc3OTU0NTAwOTEzNjIsCisgICAgICAgIDAuMzcxNTk2OTkyMDE1ODM4NiwgLTAuODk3OTIxMDI1NzUzMDIxMiwgMC4yMzU5MDk5OTg0MTY5MDA2MywgMC4zNzY2NDQ5OTg3ODg4MzM2LCAtMC45MTAxMjAwMTAzNzU5NzY2LCAwLjE3MjY4Mzk5ODk0MjM3NTE4LAorICAgICAgICAwLjM1MzgzMjk4OTkzMTEwNjU3LCAtMC44NTQ5ODc5Nzg5MzUyNDE3LCAwLjM3OTIwNzk5ODUxNDE3NTQsIDAuMzc3MDcyOTg5OTQwNjQzMywgLTAuNzYzMDc4OTg3NTk4NDE5MiwgMC41MjQ5MDU5Nzk2MzMzMzEzLAorICAgICAgICAwLjEyMjQ1OTAwMTgzOTE2MDkyLCAtMC42MjAxOTQwMTc4ODcxMTU1LCAwLjc3NDgzMDk5Njk5MDIwMzksIDAuMTg4NDEwOTk3MzkwNzQ3MDcsIC0wLjk1NDIwOTk4MzM0ODg0NjQsIDAuMjMyMzQ1OTk4Mjg3MjAwOTMsCisgICAgICAgIDAuMTkwODk2MDA0NDM4NDAwMjcsIC0wLjk2Njc5NTAyNzI1NjAxMiwgMC4xNjk5MDA5OTg0NzMxNjc0MiwgMC4xNzk2OTIwMDAxNTA2ODA1NCwgLTAuOTEwMDQ5OTc0OTE4MzY1NSwgMC4zNzM1MjI5OTY5MDI0NjU4LAorICAgICAgICAwLjE2NTUzMTk5MjkxMjI5MjQ4LCAtMC44MzgzNDA5OTc2OTU5MjI5LCAwLjUxOTQwNjk3NDMxNTY0MzMsIC0wLjEyMjQ1NTk5OTI1NTE4MDM2LCAtMC42MjAxODAwMTA3OTU1OTMzLCAwLjc3NDg0Mjk3NzUyMzgwMzcsCisgICAgICAgIC0wLjI3NzU1MDk5NTM0OTg4NDAzLCAtMC41NjE2NDY5OTc5Mjg2MTk0LCAwLjc3OTQzNDk3ODk2MTk0NDYsIC0wLjM3MTU5NjAwODUzOTE5OTgzLCAtMC44OTc5MjEwMjU3NTMwMjEyLCAwLjIzNTkwOTk5ODQxNjkwMDYzLAorICAgICAgICAtMC4xODg0MTA5OTczOTA3NDcwNywgLTAuOTU0MjA5OTgzMzQ4ODQ2NCwgMC4yMzIzNDU5OTgyODcyMDA5MywgLTAuMzc2NjQ0OTk4Nzg4ODMzNiwgLTAuOTEwMTIwMDEwMzc1OTc2NiwgMC4xNzI2ODM5OTg5NDIzNzUxOCwKKyAgICAgICAgLTAuMTkwODk2MDA0NDM4NDAwMjcsIC0wLjk2Njc5NTAyNzI1NjAxMiwgMC4xNjk5MDA5OTg0NzMxNjc0MiwgLTAuMzUzODMyOTg5OTMxMTA2NTcsIC0wLjg1NDk4Nzk3ODkzNTI0MTcsIDAuMzc5MjA3OTk4NTE0MTc1NCwKKyAgICAgICAgLTAuMTc5NjkxMDAxNzcyODgwNTUsIC0wLjkxMDA0OTk3NDkxODM2NTUsIDAuMzczNTIyOTk2OTAyNDY1OCwgLTAuMjcyNDI4OTg5NDEwNDAwNCwgLTAuODA2NDE1MDIxNDE5NTI1MSwgMC41MjQ4NjAwMjQ0NTIyMDk1LAorICAgICAgICAtMC4xNjU1MzE5OTI5MTIyOTI0OCwgLTAuODM4MzQwOTk3Njk1OTIyOSwgMC41MTk0MDY5NzQzMTU2NDMzLCAtMC40NzA5NDUwMDA2NDg0OTg1NCwgLTAuNDEyNTk1OTg3MzE5OTQ2MywgMC43Nzk3Mjc5OTUzOTU2NjA0LAorICAgICAgICAtMC42ODcxOTI5NzY0NzQ3NjIsIC0wLjY4NzE5Mjk3NjQ3NDc2MiwgMC4yMzU2NTE5OTk3MTE5OTAzNiwgLTAuNjk2NTE5MDE3MjE5NTQzNSwgLTAuNjk2NTE5MDE3MjE5NTQzNSwgMC4xNzI0MDQwMDYxMjM1NDI3OSwKKyAgICAgICAgLTAuNjU0NDg3MDEzODE2ODMzNSwgLTAuNjU0NDg4MDI3MDk1Nzk0NywgMC4zNzg1Mzg5OTU5ODEyMTY0MywgLTAuNTYxMTQyOTgxMDUyMzk4NywgLTAuNjQwNDk3MDI4ODI3NjY3MiwgMC41MjQyOTA5Nzg5MDg1Mzg4LAorICAgICAgICAtMC41OTMzOTQ5OTQ3MzU3MTc4LCAtMC4yMDA0NzkwMDA4MDY4MDg0NywgMC43Nzk1NDUwMDkxMzYyLCAtMC44OTc5MjEwMjU3NTMwMjEyLCAtMC4zNzE1OTY5OTIwMTU4Mzg2LCAwLjIzNTkwOTk5ODQxNjkwMDYzLAorICAgICAgICAtMC45MTAxMjAwMTAzNzU5NzY2LCAtMC4zNzY2NDQ5OTg3ODg4MzM2LCAwLjE3MjY4Mzk5ODk0MjM3NTE4LCAtMC44NTQ5ODc5Nzg5MzUyNDE3LCAtMC4zNTM4MzI5ODk5MzExMDY1NywgMC4zNzkyMDc5OTg1MTQxNzU0LAorICAgICAgICAtMC43NjMwNzg5ODc1OTg0MTkyLCAtMC4zNzcwNzI5ODk5NDA2NDMzLCAwLjUyNDkwNTk3OTYzMzMzMTMsIC0wLjYyMDE5NDAxNzg4NzExNTUsIC0wLjEyMjQ1OTAwMTgzOTE2MDkyLCAwLjc3NDgzMDk5Njk5MDIwMzksCisgICAgICAgIC0wLjk1NDIwOTk4MzM0ODg0NjQsIC0wLjE4ODQxMDk5NzM5MDc0NzA3LCAwLjIzMjM0NTk5ODI4NzIwMDkzLCAtMC45NjY3OTUwMjcyNTYwMTIsIC0wLjE5MDg5NjAwNDQzODQwMDI3LCAwLjE2OTkwMDk5ODQ3MzE2NzQyLAorICAgICAgICAtMC45MTAwNDk5NzQ5MTgzNjU1LCAtMC4xNzk2OTIwMDAxNTA2ODA1NCwgMC4zNzM1MjI5OTY5MDI0NjU4LCAtMC44MzgzNDA5OTc2OTU5MjI5LCAtMC4xNjU1MzE5OTI5MTIyOTI0OCwgMC41MTk0MDY5NzQzMTU2NDMzIH07CisKKworZmxvYXQgIHRlYXBvdFRleENvb3Jkc1tdID0geyAyLCAyLCAwLCAxLjc1LCAyLCAwLCAxLjc1LCAxLjk3NTAwMDAyMzg0MTg1OCwKKyAgICAgICAgMCwgMiwgMS45NzUwMDAwMjM4NDE4NTgsIDAsIDEuNzUsIDEuOTUwMDAwMDQ3NjgzNzE1OCwgMCwgMiwKKyAgICAgICAgMS45NTAwMDAwNDc2ODM3MTU4LCAwLCAxLjc1LCAxLjkyNDk5OTk1MjMxNjI4NDIsIDAsIDIsIDEuOTI0OTk5OTUyMzE2Mjg0MiwgMCwKKyAgICAgICAgMS43NSwgMS44OTk5OTk5NzYxNTgxNDIsIDAsIDIsIDEuODk5OTk5OTc2MTU4MTQyLCAwLCAxLjUsIDIsCisgICAgICAgIDAsIDEuNSwgMS45NzUwMDAwMjM4NDE4NTgsIDAsIDEuNSwgMS45NTAwMDAwNDc2ODM3MTU4LCAwLCAxLjUsCisgICAgICAgIDEuOTI0OTk5OTUyMzE2Mjg0MiwgMCwgMS41LCAxLjg5OTk5OTk3NjE1ODE0MiwgMCwgMS4yNSwgMiwgMCwKKyAgICAgICAgMS4yNSwgMS45NzUwMDAwMjM4NDE4NTgsIDAsIDEuMjUsIDEuOTUwMDAwMDQ3NjgzNzE1OCwgMCwgMS4yNSwgMS45MjQ5OTk5NTIzMTYyODQyLAorICAgICAgICAwLCAxLjI1LCAxLjg5OTk5OTk3NjE1ODE0MiwgMCwgMSwgMiwgMCwgMSwKKyAgICAgICAgMS45NzUwMDAwMjM4NDE4NTgsIDAsIDEsIDEuOTUwMDAwMDQ3NjgzNzE1OCwgMCwgMSwgMS45MjQ5OTk5NTIzMTYyODQyLCAwLAorICAgICAgICAxLCAxLjg5OTk5OTk3NjE1ODE0MiwgMCwgMSwgMiwgMCwgMC43NSwgMiwKKyAgICAgICAgMCwgMC43NSwgMS45NzUwMDAwMjM4NDE4NTgsIDAsIDEsIDEuOTc1MDAwMDIzODQxODU4LCAwLCAwLjc1LAorICAgICAgICAxLjk1MDAwMDA0NzY4MzcxNTgsIDAsIDEsIDEuOTUwMDAwMDQ3NjgzNzE1OCwgMCwgMC43NSwgMS45MjQ5OTk5NTIzMTYyODQyLCAwLAorICAgICAgICAxLCAxLjkyNDk5OTk1MjMxNjI4NDIsIDAsIDAuNzUsIDEuODk5OTk5OTc2MTU4MTQyLCAwLCAxLCAxLjg5OTk5OTk3NjE1ODE0MiwKKyAgICAgICAgMCwgMC41LCAyLCAwLCAwLjUsIDEuOTc1MDAwMDIzODQxODU4LCAwLCAwLjUsCisgICAgICAgIDEuOTUwMDAwMDQ3NjgzNzE1OCwgMCwgMC41LCAxLjkyNDk5OTk1MjMxNjI4NDIsIDAsIDAuNSwgMS44OTk5OTk5NzYxNTgxNDIsIDAsCisgICAgICAgIDAuMjUsIDIsIDAsIDAuMjUsIDEuOTc1MDAwMDIzODQxODU4LCAwLCAwLjI1LCAxLjk1MDAwMDA0NzY4MzcxNTgsCisgICAgICAgIDAsIDAuMjUsIDEuOTI0OTk5OTUyMzE2Mjg0MiwgMCwgMC4yNSwgMS44OTk5OTk5NzYxNTgxNDIsIDAsIDAsCisgICAgICAgIDIsIDAsIDAsIDEuOTc1MDAwMDIzODQxODU4LCAwLCAwLCAxLjk1MDAwMDA0NzY4MzcxNTgsIDAsCisgICAgICAgIDAsIDEuOTI0OTk5OTUyMzE2Mjg0MiwgMCwgMCwgMS44OTk5OTk5NzYxNTgxNDIsIDAsIDIsIDIsCisgICAgICAgIDAsIDEuNzUsIDIsIDAsIDEuNzUsIDEuOTc1MDAwMDIzODQxODU4LCAwLCAyLAorICAgICAgICAxLjk3NTAwMDAyMzg0MTg1OCwgMCwgMS43NSwgMS45NTAwMDAwNDc2ODM3MTU4LCAwLCAyLCAxLjk1MDAwMDA0NzY4MzcxNTgsIDAsCisgICAgICAgIDEuNzUsIDEuOTI0OTk5OTUyMzE2Mjg0MiwgMCwgMiwgMS45MjQ5OTk5NTIzMTYyODQyLCAwLCAxLjc1LCAxLjg5OTk5OTk3NjE1ODE0MiwKKyAgICAgICAgMCwgMiwgMS44OTk5OTk5NzYxNTgxNDIsIDAsIDEuNSwgMiwgMCwgMS41LAorICAgICAgICAxLjk3NTAwMDAyMzg0MTg1OCwgMCwgMS41LCAxLjk1MDAwMDA0NzY4MzcxNTgsIDAsIDEuNSwgMS45MjQ5OTk5NTIzMTYyODQyLCAwLAorICAgICAgICAxLjUsIDEuODk5OTk5OTc2MTU4MTQyLCAwLCAxLjI1LCAyLCAwLCAxLjI1LCAxLjk3NTAwMDAyMzg0MTg1OCwKKyAgICAgICAgMCwgMS4yNSwgMS45NTAwMDAwNDc2ODM3MTU4LCAwLCAxLjI1LCAxLjkyNDk5OTk1MjMxNjI4NDIsIDAsIDEuMjUsCisgICAgICAgIDEuODk5OTk5OTc2MTU4MTQyLCAwLCAxLCAyLCAwLCAxLCAxLjk3NTAwMDAyMzg0MTg1OCwgMCwKKyAgICAgICAgMSwgMS45NTAwMDAwNDc2ODM3MTU4LCAwLCAxLCAxLjkyNDk5OTk1MjMxNjI4NDIsIDAsIDEsIDEuODk5OTk5OTc2MTU4MTQyLAorICAgICAgICAwLCAxLCAyLCAwLCAwLjc1LCAyLCAwLCAwLjc1LAorICAgICAgICAxLjk3NTAwMDAyMzg0MTg1OCwgMCwgMSwgMS45NzUwMDAwMjM4NDE4NTgsIDAsIDAuNzUsIDEuOTUwMDAwMDQ3NjgzNzE1OCwgMCwKKyAgICAgICAgMSwgMS45NTAwMDAwNDc2ODM3MTU4LCAwLCAwLjc1LCAxLjkyNDk5OTk1MjMxNjI4NDIsIDAsIDEsIDEuOTI0OTk5OTUyMzE2Mjg0MiwKKyAgICAgICAgMCwgMC43NSwgMS44OTk5OTk5NzYxNTgxNDIsIDAsIDEsIDEuODk5OTk5OTc2MTU4MTQyLCAwLCAwLjUsCisgICAgICAgIDIsIDAsIDAuNSwgMS45NzUwMDAwMjM4NDE4NTgsIDAsIDAuNSwgMS45NTAwMDAwNDc2ODM3MTU4LCAwLAorICAgICAgICAwLjUsIDEuOTI0OTk5OTUyMzE2Mjg0MiwgMCwgMC41LCAxLjg5OTk5OTk3NjE1ODE0MiwgMCwgMC4yNSwgMiwKKyAgICAgICAgMCwgMC4yNSwgMS45NzUwMDAwMjM4NDE4NTgsIDAsIDAuMjUsIDEuOTUwMDAwMDQ3NjgzNzE1OCwgMCwgMC4yNSwKKyAgICAgICAgMS45MjQ5OTk5NTIzMTYyODQyLCAwLCAwLjI1LCAxLjg5OTk5OTk3NjE1ODE0MiwgMCwgMCwgMiwgMCwKKyAgICAgICAgMCwgMS45NzUwMDAwMjM4NDE4NTgsIDAsIDAsIDEuOTUwMDAwMDQ3NjgzNzE1OCwgMCwgMCwgMS45MjQ5OTk5NTIzMTYyODQyLAorICAgICAgICAwLCAwLCAxLjg5OTk5OTk3NjE1ODE0MiwgMCwgMiwgMS44OTk5OTk5NzYxNTgxNDIsIDAsIDEuNzUsCisgICAgICAgIDEuODk5OTk5OTc2MTU4MTQyLCAwLCAxLjc1LCAxLjY3NDk5OTk1MjMxNjI4NDIsIDAsIDIsIDEuNjc0OTk5OTUyMzE2Mjg0MiwgMCwKKyAgICAgICAgMS43NSwgMS40NTAwMDAwNDc2ODM3MTU4LCAwLCAyLCAxLjQ1MDAwMDA0NzY4MzcxNTgsIDAsIDEuNzUsIDEuMjI1MDAwMDIzODQxODU4LAorICAgICAgICAwLCAyLCAxLjIyNTAwMDAyMzg0MTg1OCwgMCwgMS43NSwgMSwgMCwgMiwKKyAgICAgICAgMSwgMCwgMS41LCAxLjg5OTk5OTk3NjE1ODE0MiwgMCwgMS41LCAxLjY3NDk5OTk1MjMxNjI4NDIsIDAsCisgICAgICAgIDEuNSwgMS40NTAwMDAwNDc2ODM3MTU4LCAwLCAxLjUsIDEuMjI1MDAwMDIzODQxODU4LCAwLCAxLjUsIDEsCisgICAgICAgIDAsIDEuMjUsIDEuODk5OTk5OTc2MTU4MTQyLCAwLCAxLjI1LCAxLjY3NDk5OTk1MjMxNjI4NDIsIDAsIDEuMjUsCisgICAgICAgIDEuNDUwMDAwMDQ3NjgzNzE1OCwgMCwgMS4yNSwgMS4yMjUwMDAwMjM4NDE4NTgsIDAsIDEuMjUsIDEsIDAsCisgICAgICAgIDEsIDEuODk5OTk5OTc2MTU4MTQyLCAwLCAxLCAxLjY3NDk5OTk1MjMxNjI4NDIsIDAsIDEsIDEuNDUwMDAwMDQ3NjgzNzE1OCwKKyAgICAgICAgMCwgMSwgMS4yMjUwMDAwMjM4NDE4NTgsIDAsIDEsIDEsIDAsIDEsCisgICAgICAgIDEuODk5OTk5OTc2MTU4MTQyLCAwLCAwLjc1LCAxLjg5OTk5OTk3NjE1ODE0MiwgMCwgMC43NSwgMS42NzQ5OTk5NTIzMTYyODQyLCAwLAorICAgICAgICAxLCAxLjY3NDk5OTk1MjMxNjI4NDIsIDAsIDAuNzUsIDEuNDUwMDAwMDQ3NjgzNzE1OCwgMCwgMSwgMS40NTAwMDAwNDc2ODM3MTU4LAorICAgICAgICAwLCAwLjc1LCAxLjIyNTAwMDAyMzg0MTg1OCwgMCwgMSwgMS4yMjUwMDAwMjM4NDE4NTgsIDAsIDAuNzUsCisgICAgICAgIDEsIDAsIDEsIDEsIDAsIDAuNSwgMS44OTk5OTk5NzYxNTgxNDIsIDAsCisgICAgICAgIDAuNSwgMS42NzQ5OTk5NTIzMTYyODQyLCAwLCAwLjUsIDEuNDUwMDAwMDQ3NjgzNzE1OCwgMCwgMC41LCAxLjIyNTAwMDAyMzg0MTg1OCwKKyAgICAgICAgMCwgMC41LCAxLCAwLCAwLjI1LCAxLjg5OTk5OTk3NjE1ODE0MiwgMCwgMC4yNSwKKyAgICAgICAgMS42NzQ5OTk5NTIzMTYyODQyLCAwLCAwLjI1LCAxLjQ1MDAwMDA0NzY4MzcxNTgsIDAsIDAuMjUsIDEuMjI1MDAwMDIzODQxODU4LCAwLAorICAgICAgICAwLjI1LCAxLCAwLCAwLCAxLjg5OTk5OTk3NjE1ODE0MiwgMCwgMCwgMS42NzQ5OTk5NTIzMTYyODQyLAorICAgICAgICAwLCAwLCAxLjQ1MDAwMDA0NzY4MzcxNTgsIDAsIDAsIDEuMjI1MDAwMDIzODQxODU4LCAwLCAwLAorICAgICAgICAxLCAwLCAyLCAxLjg5OTk5OTk3NjE1ODE0MiwgMCwgMS43NSwgMS44OTk5OTk5NzYxNTgxNDIsIDAsCisgICAgICAgIDEuNzUsIDEuNjc0OTk5OTUyMzE2Mjg0MiwgMCwgMiwgMS42NzQ5OTk5NTIzMTYyODQyLCAwLCAxLjc1LCAxLjQ1MDAwMDA0NzY4MzcxNTgsCisgICAgICAgIDAsIDIsIDEuNDUwMDAwMDQ3NjgzNzE1OCwgMCwgMS43NSwgMS4yMjUwMDAwMjM4NDE4NTgsIDAsIDIsCisgICAgICAgIDEuMjI1MDAwMDIzODQxODU4LCAwLCAxLjc1LCAxLCAwLCAyLCAxLCAwLAorICAgICAgICAxLjUsIDEuODk5OTk5OTc2MTU4MTQyLCAwLCAxLjUsIDEuNjc0OTk5OTUyMzE2Mjg0MiwgMCwgMS41LCAxLjQ1MDAwMDA0NzY4MzcxNTgsCisgICAgICAgIDAsIDEuNSwgMS4yMjUwMDAwMjM4NDE4NTgsIDAsIDEuNSwgMSwgMCwgMS4yNSwKKyAgICAgICAgMS44OTk5OTk5NzYxNTgxNDIsIDAsIDEuMjUsIDEuNjc0OTk5OTUyMzE2Mjg0MiwgMCwgMS4yNSwgMS40NTAwMDAwNDc2ODM3MTU4LCAwLAorICAgICAgICAxLjI1LCAxLjIyNTAwMDAyMzg0MTg1OCwgMCwgMS4yNSwgMSwgMCwgMSwgMS44OTk5OTk5NzYxNTgxNDIsCisgICAgICAgIDAsIDEsIDEuNjc0OTk5OTUyMzE2Mjg0MiwgMCwgMSwgMS40NTAwMDAwNDc2ODM3MTU4LCAwLCAxLAorICAgICAgICAxLjIyNTAwMDAyMzg0MTg1OCwgMCwgMSwgMSwgMCwgMSwgMS44OTk5OTk5NzYxNTgxNDIsIDAsCisgICAgICAgIDAuNzUsIDEuODk5OTk5OTc2MTU4MTQyLCAwLCAwLjc1LCAxLjY3NDk5OTk1MjMxNjI4NDIsIDAsIDEsIDEuNjc0OTk5OTUyMzE2Mjg0MiwKKyAgICAgICAgMCwgMC43NSwgMS40NTAwMDAwNDc2ODM3MTU4LCAwLCAxLCAxLjQ1MDAwMDA0NzY4MzcxNTgsIDAsIDAuNzUsCisgICAgICAgIDEuMjI1MDAwMDIzODQxODU4LCAwLCAxLCAxLjIyNTAwMDAyMzg0MTg1OCwgMCwgMC43NSwgMSwgMCwKKyAgICAgICAgMSwgMSwgMCwgMC41LCAxLjg5OTk5OTk3NjE1ODE0MiwgMCwgMC41LCAxLjY3NDk5OTk1MjMxNjI4NDIsCisgICAgICAgIDAsIDAuNSwgMS40NTAwMDAwNDc2ODM3MTU4LCAwLCAwLjUsIDEuMjI1MDAwMDIzODQxODU4LCAwLCAwLjUsCisgICAgICAgIDEsIDAsIDAuMjUsIDEuODk5OTk5OTc2MTU4MTQyLCAwLCAwLjI1LCAxLjY3NDk5OTk1MjMxNjI4NDIsIDAsCisgICAgICAgIDAuMjUsIDEuNDUwMDAwMDQ3NjgzNzE1OCwgMCwgMC4yNSwgMS4yMjUwMDAwMjM4NDE4NTgsIDAsIDAuMjUsIDEsCisgICAgICAgIDAsIDAsIDEuODk5OTk5OTc2MTU4MTQyLCAwLCAwLCAxLjY3NDk5OTk1MjMxNjI4NDIsIDAsIDAsCisgICAgICAgIDEuNDUwMDAwMDQ3NjgzNzE1OCwgMCwgMCwgMS4yMjUwMDAwMjM4NDE4NTgsIDAsIDAsIDEsIDAsCisgICAgICAgIDIsIDEsIDAsIDEuNzUsIDEsIDAsIDEuNzUsIDAuODUwMDAwMDIzODQxODU3OSwKKyAgICAgICAgMCwgMiwgMC44NTAwMDAwMjM4NDE4NTc5LCAwLCAxLjc1LCAwLjY5OTk5OTk4ODA3OTA3MSwgMCwgMiwKKyAgICAgICAgMC42OTk5OTk5ODgwNzkwNzEsIDAsIDEuNzUsIDAuNTUwMDAwMDExOTIwOTI5LCAwLCAyLCAwLjU1MDAwMDAxMTkyMDkyOSwgMCwKKyAgICAgICAgMS43NSwgMC40MDAwMDAwMDU5NjA0NjQ1LCAwLCAyLCAwLjQwMDAwMDAwNTk2MDQ2NDUsIDAsIDEuNSwgMSwKKyAgICAgICAgMCwgMS41LCAwLjg1MDAwMDAyMzg0MTg1NzksIDAsIDEuNSwgMC42OTk5OTk5ODgwNzkwNzEsIDAsIDEuNSwKKyAgICAgICAgMC41NTAwMDAwMTE5MjA5MjksIDAsIDEuNSwgMC40MDAwMDAwMDU5NjA0NjQ1LCAwLCAxLjI1LCAxLCAwLAorICAgICAgICAxLjI1LCAwLjg1MDAwMDAyMzg0MTg1NzksIDAsIDEuMjUsIDAuNjk5OTk5OTg4MDc5MDcxLCAwLCAxLjI1LCAwLjU1MDAwMDAxMTkyMDkyOSwKKyAgICAgICAgMCwgMS4yNSwgMC40MDAwMDAwMDU5NjA0NjQ1LCAwLCAxLCAxLCAwLCAxLAorICAgICAgICAwLjg1MDAwMDAyMzg0MTg1NzksIDAsIDEsIDAuNjk5OTk5OTg4MDc5MDcxLCAwLCAxLCAwLjU1MDAwMDAxMTkyMDkyOSwgMCwKKyAgICAgICAgMSwgMC40MDAwMDAwMDU5NjA0NjQ1LCAwLCAxLCAxLCAwLCAwLjc1LCAxLAorICAgICAgICAwLCAwLjc1LCAwLjg1MDAwMDAyMzg0MTg1NzksIDAsIDEsIDAuODUwMDAwMDIzODQxODU3OSwgMCwgMC43NSwKKyAgICAgICAgMC42OTk5OTk5ODgwNzkwNzEsIDAsIDEsIDAuNjk5OTk5OTg4MDc5MDcxLCAwLCAwLjc1LCAwLjU1MDAwMDAxMTkyMDkyOSwgMCwKKyAgICAgICAgMSwgMC41NTAwMDAwMTE5MjA5MjksIDAsIDAuNzUsIDAuNDAwMDAwMDA1OTYwNDY0NSwgMCwgMSwgMC40MDAwMDAwMDU5NjA0NjQ1LAorICAgICAgICAwLCAwLjUsIDEsIDAsIDAuNSwgMC44NTAwMDAwMjM4NDE4NTc5LCAwLCAwLjUsCisgICAgICAgIDAuNjk5OTk5OTg4MDc5MDcxLCAwLCAwLjUsIDAuNTUwMDAwMDExOTIwOTI5LCAwLCAwLjUsIDAuNDAwMDAwMDA1OTYwNDY0NSwgMCwKKyAgICAgICAgMC4yNSwgMSwgMCwgMC4yNSwgMC44NTAwMDAwMjM4NDE4NTc5LCAwLCAwLjI1LCAwLjY5OTk5OTk4ODA3OTA3MSwKKyAgICAgICAgMCwgMC4yNSwgMC41NTAwMDAwMTE5MjA5MjksIDAsIDAuMjUsIDAuNDAwMDAwMDA1OTYwNDY0NSwgMCwgMCwKKyAgICAgICAgMSwgMCwgMCwgMC44NTAwMDAwMjM4NDE4NTc5LCAwLCAwLCAwLjY5OTk5OTk4ODA3OTA3MSwgMCwKKyAgICAgICAgMCwgMC41NTAwMDAwMTE5MjA5MjksIDAsIDAsIDAuNDAwMDAwMDA1OTYwNDY0NSwgMCwgMiwgMSwKKyAgICAgICAgMCwgMS43NSwgMSwgMCwgMS43NSwgMC44NTAwMDAwMjM4NDE4NTc5LCAwLCAyLAorICAgICAgICAwLjg1MDAwMDAyMzg0MTg1NzksIDAsIDEuNzUsIDAuNjk5OTk5OTg4MDc5MDcxLCAwLCAyLCAwLjY5OTk5OTk4ODA3OTA3MSwgMCwKKyAgICAgICAgMS43NSwgMC41NTAwMDAwMTE5MjA5MjksIDAsIDIsIDAuNTUwMDAwMDExOTIwOTI5LCAwLCAxLjc1LCAwLjQwMDAwMDAwNTk2MDQ2NDUsCisgICAgICAgIDAsIDIsIDAuNDAwMDAwMDA1OTYwNDY0NSwgMCwgMS41LCAxLCAwLCAxLjUsCisgICAgICAgIDAuODUwMDAwMDIzODQxODU3OSwgMCwgMS41LCAwLjY5OTk5OTk4ODA3OTA3MSwgMCwgMS41LCAwLjU1MDAwMDAxMTkyMDkyOSwgMCwKKyAgICAgICAgMS41LCAwLjQwMDAwMDAwNTk2MDQ2NDUsIDAsIDEuMjUsIDEsIDAsIDEuMjUsIDAuODUwMDAwMDIzODQxODU3OSwKKyAgICAgICAgMCwgMS4yNSwgMC42OTk5OTk5ODgwNzkwNzEsIDAsIDEuMjUsIDAuNTUwMDAwMDExOTIwOTI5LCAwLCAxLjI1LAorICAgICAgICAwLjQwMDAwMDAwNTk2MDQ2NDUsIDAsIDEsIDEsIDAsIDEsIDAuODUwMDAwMDIzODQxODU3OSwgMCwKKyAgICAgICAgMSwgMC42OTk5OTk5ODgwNzkwNzEsIDAsIDEsIDAuNTUwMDAwMDExOTIwOTI5LCAwLCAxLCAwLjQwMDAwMDAwNTk2MDQ2NDUsCisgICAgICAgIDAsIDEsIDEsIDAsIDAuNzUsIDEsIDAsIDAuNzUsCisgICAgICAgIDAuODUwMDAwMDIzODQxODU3OSwgMCwgMSwgMC44NTAwMDAwMjM4NDE4NTc5LCAwLCAwLjc1LCAwLjY5OTk5OTk4ODA3OTA3MSwgMCwKKyAgICAgICAgMSwgMC42OTk5OTk5ODgwNzkwNzEsIDAsIDAuNzUsIDAuNTUwMDAwMDExOTIwOTI5LCAwLCAxLCAwLjU1MDAwMDAxMTkyMDkyOSwKKyAgICAgICAgMCwgMC43NSwgMC40MDAwMDAwMDU5NjA0NjQ1LCAwLCAxLCAwLjQwMDAwMDAwNTk2MDQ2NDUsIDAsIDAuNSwKKyAgICAgICAgMSwgMCwgMC41LCAwLjg1MDAwMDAyMzg0MTg1NzksIDAsIDAuNSwgMC42OTk5OTk5ODgwNzkwNzEsIDAsCisgICAgICAgIDAuNSwgMC41NTAwMDAwMTE5MjA5MjksIDAsIDAuNSwgMC40MDAwMDAwMDU5NjA0NjQ1LCAwLCAwLjI1LCAxLAorICAgICAgICAwLCAwLjI1LCAwLjg1MDAwMDAyMzg0MTg1NzksIDAsIDAuMjUsIDAuNjk5OTk5OTg4MDc5MDcxLCAwLCAwLjI1LAorICAgICAgICAwLjU1MDAwMDAxMTkyMDkyOSwgMCwgMC4yNSwgMC40MDAwMDAwMDU5NjA0NjQ1LCAwLCAwLCAxLCAwLAorICAgICAgICAwLCAwLjg1MDAwMDAyMzg0MTg1NzksIDAsIDAsIDAuNjk5OTk5OTg4MDc5MDcxLCAwLCAwLCAwLjU1MDAwMDAxMTkyMDkyOSwKKyAgICAgICAgMCwgMCwgMC40MDAwMDAwMDU5NjA0NjQ1LCAwLCAyLCAwLjQwMDAwMDAwNTk2MDQ2NDUsIDAsIDEuNzUsCisgICAgICAgIDAuNDAwMDAwMDA1OTYwNDY0NSwgMCwgMS43NSwgMC4zMDAwMDAwMTE5MjA5Mjg5NiwgMCwgMiwgMC4zMDAwMDAwMTE5MjA5Mjg5NiwgMCwKKyAgICAgICAgMS43NSwgMC4yMDAwMDAwMDI5ODAyMzIyNCwgMCwgMiwgMC4yMDAwMDAwMDI5ODAyMzIyNCwgMCwgMS43NSwgMC4xMDAwMDAwMDE0OTAxMTYxMiwKKyAgICAgICAgMCwgMiwgMC4xMDAwMDAwMDE0OTAxMTYxMiwgMCwgMS43NSwgMCwgMCwgMiwKKyAgICAgICAgMCwgMCwgMS41LCAwLjQwMDAwMDAwNTk2MDQ2NDUsIDAsIDEuNSwgMC4zMDAwMDAwMTE5MjA5Mjg5NiwgMCwKKyAgICAgICAgMS41LCAwLjIwMDAwMDAwMjk4MDIzMjI0LCAwLCAxLjUsIDAuMTAwMDAwMDAxNDkwMTE2MTIsIDAsIDEuNSwgMCwKKyAgICAgICAgMCwgMS4yNSwgMC40MDAwMDAwMDU5NjA0NjQ1LCAwLCAxLjI1LCAwLjMwMDAwMDAxMTkyMDkyODk2LCAwLCAxLjI1LAorICAgICAgICAwLjIwMDAwMDAwMjk4MDIzMjI0LCAwLCAxLjI1LCAwLjEwMDAwMDAwMTQ5MDExNjEyLCAwLCAxLjI1LCAwLCAwLAorICAgICAgICAxLCAwLjQwMDAwMDAwNTk2MDQ2NDUsIDAsIDEsIDAuMzAwMDAwMDExOTIwOTI4OTYsIDAsIDEsIDAuMjAwMDAwMDAyOTgwMjMyMjQsCisgICAgICAgIDAsIDEsIDAuMTAwMDAwMDAxNDkwMTE2MTIsIDAsIDEsIDAsIDAsIDEsCisgICAgICAgIDAuNDAwMDAwMDA1OTYwNDY0NSwgMCwgMC43NSwgMC40MDAwMDAwMDU5NjA0NjQ1LCAwLCAwLjc1LCAwLjMwMDAwMDAxMTkyMDkyODk2LCAwLAorICAgICAgICAxLCAwLjMwMDAwMDAxMTkyMDkyODk2LCAwLCAwLjc1LCAwLjIwMDAwMDAwMjk4MDIzMjI0LCAwLCAxLCAwLjIwMDAwMDAwMjk4MDIzMjI0LAorICAgICAgICAwLCAwLjc1LCAwLjEwMDAwMDAwMTQ5MDExNjEyLCAwLCAxLCAwLjEwMDAwMDAwMTQ5MDExNjEyLCAwLCAwLjc1LAorICAgICAgICAwLCAwLCAxLCAwLCAwLCAwLjUsIDAuNDAwMDAwMDA1OTYwNDY0NSwgMCwKKyAgICAgICAgMC41LCAwLjMwMDAwMDAxMTkyMDkyODk2LCAwLCAwLjUsIDAuMjAwMDAwMDAyOTgwMjMyMjQsIDAsIDAuNSwgMC4xMDAwMDAwMDE0OTAxMTYxMiwKKyAgICAgICAgMCwgMC41LCAwLCAwLCAwLjI1LCAwLjQwMDAwMDAwNTk2MDQ2NDUsIDAsIDAuMjUsCisgICAgICAgIDAuMzAwMDAwMDExOTIwOTI4OTYsIDAsIDAuMjUsIDAuMjAwMDAwMDAyOTgwMjMyMjQsIDAsIDAuMjUsIDAuMTAwMDAwMDAxNDkwMTE2MTIsIDAsCisgICAgICAgIDAuMjUsIDAsIDAsIDAsIDAuNDAwMDAwMDA1OTYwNDY0NSwgMCwgMCwgMC4zMDAwMDAwMTE5MjA5Mjg5NiwKKyAgICAgICAgMCwgMCwgMC4yMDAwMDAwMDI5ODAyMzIyNCwgMCwgMCwgMC4xMDAwMDAwMDE0OTAxMTYxMiwgMCwgMCwKKyAgICAgICAgMCwgMCwgMiwgMC40MDAwMDAwMDU5NjA0NjQ1LCAwLCAxLjc1LCAwLjQwMDAwMDAwNTk2MDQ2NDUsIDAsCisgICAgICAgIDEuNzUsIDAuMzAwMDAwMDExOTIwOTI4OTYsIDAsIDIsIDAuMzAwMDAwMDExOTIwOTI4OTYsIDAsIDEuNzUsIDAuMjAwMDAwMDAyOTgwMjMyMjQsCisgICAgICAgIDAsIDIsIDAuMjAwMDAwMDAyOTgwMjMyMjQsIDAsIDEuNzUsIDAuMTAwMDAwMDAxNDkwMTE2MTIsIDAsIDIsCisgICAgICAgIDAuMTAwMDAwMDAxNDkwMTE2MTIsIDAsIDEuNzUsIDAsIDAsIDIsIDAsIDAsCisgICAgICAgIDEuNSwgMC40MDAwMDAwMDU5NjA0NjQ1LCAwLCAxLjUsIDAuMzAwMDAwMDExOTIwOTI4OTYsIDAsIDEuNSwgMC4yMDAwMDAwMDI5ODAyMzIyNCwKKyAgICAgICAgMCwgMS41LCAwLjEwMDAwMDAwMTQ5MDExNjEyLCAwLCAxLjUsIDAsIDAsIDEuMjUsCisgICAgICAgIDAuNDAwMDAwMDA1OTYwNDY0NSwgMCwgMS4yNSwgMC4zMDAwMDAwMTE5MjA5Mjg5NiwgMCwgMS4yNSwgMC4yMDAwMDAwMDI5ODAyMzIyNCwgMCwKKyAgICAgICAgMS4yNSwgMC4xMDAwMDAwMDE0OTAxMTYxMiwgMCwgMS4yNSwgMCwgMCwgMSwgMC40MDAwMDAwMDU5NjA0NjQ1LAorICAgICAgICAwLCAxLCAwLjMwMDAwMDAxMTkyMDkyODk2LCAwLCAxLCAwLjIwMDAwMDAwMjk4MDIzMjI0LCAwLCAxLAorICAgICAgICAwLjEwMDAwMDAwMTQ5MDExNjEyLCAwLCAxLCAwLCAwLCAxLCAwLjQwMDAwMDAwNTk2MDQ2NDUsIDAsCisgICAgICAgIDAuNzUsIDAuNDAwMDAwMDA1OTYwNDY0NSwgMCwgMC43NSwgMC4zMDAwMDAwMTE5MjA5Mjg5NiwgMCwgMSwgMC4zMDAwMDAwMTE5MjA5Mjg5NiwKKyAgICAgICAgMCwgMC43NSwgMC4yMDAwMDAwMDI5ODAyMzIyNCwgMCwgMSwgMC4yMDAwMDAwMDI5ODAyMzIyNCwgMCwgMC43NSwKKyAgICAgICAgMC4xMDAwMDAwMDE0OTAxMTYxMiwgMCwgMSwgMC4xMDAwMDAwMDE0OTAxMTYxMiwgMCwgMC43NSwgMCwgMCwKKyAgICAgICAgMSwgMCwgMCwgMC41LCAwLjQwMDAwMDAwNTk2MDQ2NDUsIDAsIDAuNSwgMC4zMDAwMDAwMTE5MjA5Mjg5NiwKKyAgICAgICAgMCwgMC41LCAwLjIwMDAwMDAwMjk4MDIzMjI0LCAwLCAwLjUsIDAuMTAwMDAwMDAxNDkwMTE2MTIsIDAsIDAuNSwKKyAgICAgICAgMCwgMCwgMC4yNSwgMC40MDAwMDAwMDU5NjA0NjQ1LCAwLCAwLjI1LCAwLjMwMDAwMDAxMTkyMDkyODk2LCAwLAorICAgICAgICAwLjI1LCAwLjIwMDAwMDAwMjk4MDIzMjI0LCAwLCAwLjI1LCAwLjEwMDAwMDAwMTQ5MDExNjEyLCAwLCAwLjI1LCAwLAorICAgICAgICAwLCAwLCAwLjQwMDAwMDAwNTk2MDQ2NDUsIDAsIDAsIDAuMzAwMDAwMDExOTIwOTI4OTYsIDAsIDAsCisgICAgICAgIDAuMjAwMDAwMDAyOTgwMjMyMjQsIDAsIDAsIDAuMTAwMDAwMDAxNDkwMTE2MTIsIDAsIDAsIDAsIDAsCisgICAgICAgIDEsIDEsIDAsIDAuODc1LCAxLCAwLCAwLjg3NSwgMC44NzUsCisgICAgICAgIDAsIDEsIDAuODc1LCAwLCAwLjg3NSwgMC43NSwgMCwgMSwKKyAgICAgICAgMC43NSwgMCwgMC44NzUsIDAuNjI1LCAwLCAxLCAwLjYyNSwgMCwKKyAgICAgICAgMC44NzUsIDAuNSwgMCwgMSwgMC41LCAwLCAwLjc1LCAxLAorICAgICAgICAwLCAwLjc1LCAwLjg3NSwgMCwgMC43NSwgMC43NSwgMCwgMC43NSwKKyAgICAgICAgMC42MjUsIDAsIDAuNzUsIDAuNSwgMCwgMC42MjUsIDEsIDAsCisgICAgICAgIDAuNjI1LCAwLjg3NSwgMCwgMC42MjUsIDAuNzUsIDAsIDAuNjI1LCAwLjYyNSwKKyAgICAgICAgMCwgMC42MjUsIDAuNSwgMCwgMC41LCAxLCAwLCAwLjUsCisgICAgICAgIDAuODc1LCAwLCAwLjUsIDAuNzUsIDAsIDAuNSwgMC42MjUsIDAsCisgICAgICAgIDAuNSwgMC41LCAwLCAwLjUsIDEsIDAsIDAuMzc1LCAxLAorICAgICAgICAwLCAwLjM3NSwgMC44NzUsIDAsIDAuNSwgMC44NzUsIDAsIDAuMzc1LAorICAgICAgICAwLjc1LCAwLCAwLjUsIDAuNzUsIDAsIDAuMzc1LCAwLjYyNSwgMCwKKyAgICAgICAgMC41LCAwLjYyNSwgMCwgMC4zNzUsIDAuNSwgMCwgMC41LCAwLjUsCisgICAgICAgIDAsIDAuMjUsIDEsIDAsIDAuMjUsIDAuODc1LCAwLCAwLjI1LAorICAgICAgICAwLjc1LCAwLCAwLjI1LCAwLjYyNSwgMCwgMC4yNSwgMC41LCAwLAorICAgICAgICAwLjEyNSwgMSwgMCwgMC4xMjUsIDAuODc1LCAwLCAwLjEyNSwgMC43NSwKKyAgICAgICAgMCwgMC4xMjUsIDAuNjI1LCAwLCAwLjEyNSwgMC41LCAwLCAwLAorICAgICAgICAxLCAwLCAwLCAwLjg3NSwgMCwgMCwgMC43NSwgMCwKKyAgICAgICAgMCwgMC42MjUsIDAsIDAsIDAuNSwgMCwgMSwgMC41LAorICAgICAgICAwLCAwLjg3NSwgMC41LCAwLCAwLjg3NSwgMC4zNzUsIDAsIDEsCisgICAgICAgIDAuMzc1LCAwLCAwLjg3NSwgMC4yNSwgMCwgMSwgMC4yNSwgMCwKKyAgICAgICAgMC44NzUsIDAuMTI1LCAwLCAxLCAwLjEyNSwgMCwgMC44NzUsIDAsCisgICAgICAgIDAsIDEsIDAsIDAsIDAuNzUsIDAuNSwgMCwgMC43NSwKKyAgICAgICAgMC4zNzUsIDAsIDAuNzUsIDAuMjUsIDAsIDAuNzUsIDAuMTI1LCAwLAorICAgICAgICAwLjc1LCAwLCAwLCAwLjYyNSwgMC41LCAwLCAwLjYyNSwgMC4zNzUsCisgICAgICAgIDAsIDAuNjI1LCAwLjI1LCAwLCAwLjYyNSwgMC4xMjUsIDAsIDAuNjI1LAorICAgICAgICAwLCAwLCAwLjUsIDAuNSwgMCwgMC41LCAwLjM3NSwgMCwKKyAgICAgICAgMC41LCAwLjI1LCAwLCAwLjUsIDAuMTI1LCAwLCAwLjUsIDAsCisgICAgICAgIDAsIDAuNSwgMC41LCAwLCAwLjM3NSwgMC41LCAwLCAwLjM3NSwKKyAgICAgICAgMC4zNzUsIDAsIDAuNSwgMC4zNzUsIDAsIDAuMzc1LCAwLjI1LCAwLAorICAgICAgICAwLjUsIDAuMjUsIDAsIDAuMzc1LCAwLjEyNSwgMCwgMC41LCAwLjEyNSwKKyAgICAgICAgMCwgMC4zNzUsIDAsIDAsIDAuNSwgMCwgMCwgMC4yNSwKKyAgICAgICAgMC41LCAwLCAwLjI1LCAwLjM3NSwgMCwgMC4yNSwgMC4yNSwgMCwKKyAgICAgICAgMC4yNSwgMC4xMjUsIDAsIDAuMjUsIDAsIDAsIDAuMTI1LCAwLjUsCisgICAgICAgIDAsIDAuMTI1LCAwLjM3NSwgMCwgMC4xMjUsIDAuMjUsIDAsIDAuMTI1LAorICAgICAgICAwLjEyNSwgMCwgMC4xMjUsIDAsIDAsIDAsIDAuNSwgMCwKKyAgICAgICAgMCwgMC4zNzUsIDAsIDAsIDAuMjUsIDAsIDAsIDAuMTI1LAorICAgICAgICAwLCAwLCAwLCAwLCAwLjUsIDAsIDAsIDAuNjI1LAorICAgICAgICAwLCAwLCAwLjYyNSwgMC4yMjQ5OTk5OTQwMzk1MzU1MiwgMCwgMC41LCAwLjIyNDk5OTk5NDAzOTUzNTUyLCAwLAorICAgICAgICAwLjYyNSwgMC40NDk5OTk5ODgwNzkwNzEwNCwgMCwgMC41LCAwLjQ0OTk5OTk4ODA3OTA3MTA0LCAwLCAwLjYyNSwgMC42NzUwMDAwMTE5MjA5MjksCisgICAgICAgIDAsIDAuNSwgMC42NzUwMDAwMTE5MjA5MjksIDAsIDAuNjI1LCAwLjg5OTk5OTk3NjE1ODE0MjEsIDAsIDAuNSwKKyAgICAgICAgMC44OTk5OTk5NzYxNTgxNDIxLCAwLCAwLjc1LCAwLCAwLCAwLjc1LCAwLjIyNDk5OTk5NDAzOTUzNTUyLCAwLAorICAgICAgICAwLjc1LCAwLjQ0OTk5OTk4ODA3OTA3MTA0LCAwLCAwLjc1LCAwLjY3NTAwMDAxMTkyMDkyOSwgMCwgMC43NSwgMC44OTk5OTk5NzYxNTgxNDIxLAorICAgICAgICAwLCAwLjg3NSwgMCwgMCwgMC44NzUsIDAuMjI0OTk5OTk0MDM5NTM1NTIsIDAsIDAuODc1LAorICAgICAgICAwLjQ0OTk5OTk4ODA3OTA3MTA0LCAwLCAwLjg3NSwgMC42NzUwMDAwMTE5MjA5MjksIDAsIDAuODc1LCAwLjg5OTk5OTk3NjE1ODE0MjEsIDAsCisgICAgICAgIDEsIDAsIDAsIDEsIDAuMjI0OTk5OTk0MDM5NTM1NTIsIDAsIDEsIDAuNDQ5OTk5OTg4MDc5MDcxMDQsCisgICAgICAgIDAsIDEsIDAuNjc1MDAwMDExOTIwOTI5LCAwLCAxLCAwLjg5OTk5OTk3NjE1ODE0MjEsIDAsIDAsCisgICAgICAgIDAsIDAsIDAuMTI1LCAwLCAwLCAwLjEyNSwgMC4yMjQ5OTk5OTQwMzk1MzU1MiwgMCwKKyAgICAgICAgMCwgMC4yMjQ5OTk5OTQwMzk1MzU1MiwgMCwgMC4xMjUsIDAuNDQ5OTk5OTg4MDc5MDcxMDQsIDAsIDAsIDAuNDQ5OTk5OTg4MDc5MDcxMDQsCisgICAgICAgIDAsIDAuMTI1LCAwLjY3NTAwMDAxMTkyMDkyOSwgMCwgMCwgMC42NzUwMDAwMTE5MjA5MjksIDAsIDAuMTI1LAorICAgICAgICAwLjg5OTk5OTk3NjE1ODE0MjEsIDAsIDAsIDAuODk5OTk5OTc2MTU4MTQyMSwgMCwgMC4yNSwgMCwgMCwKKyAgICAgICAgMC4yNSwgMC4yMjQ5OTk5OTQwMzk1MzU1MiwgMCwgMC4yNSwgMC40NDk5OTk5ODgwNzkwNzEwNCwgMCwgMC4yNSwgMC42NzUwMDAwMTE5MjA5MjksCisgICAgICAgIDAsIDAuMjUsIDAuODk5OTk5OTc2MTU4MTQyMSwgMCwgMC4zNzUsIDAsIDAsIDAuMzc1LAorICAgICAgICAwLjIyNDk5OTk5NDAzOTUzNTUyLCAwLCAwLjM3NSwgMC40NDk5OTk5ODgwNzkwNzEwNCwgMCwgMC4zNzUsIDAuNjc1MDAwMDExOTIwOTI5LCAwLAorICAgICAgICAwLjM3NSwgMC44OTk5OTk5NzYxNTgxNDIxLCAwLCAwLjUsIDAsIDAsIDAuNSwgMC4yMjQ5OTk5OTQwMzk1MzU1MiwKKyAgICAgICAgMCwgMC41LCAwLjQ0OTk5OTk4ODA3OTA3MTA0LCAwLCAwLjUsIDAuNjc1MDAwMDExOTIwOTI5LCAwLCAwLjUsCisgICAgICAgIDAuODk5OTk5OTc2MTU4MTQyMSwgMCwgMC41LCAwLjg5OTk5OTk3NjE1ODE0MjEsIDAsIDAuNjI1LCAwLjg5OTk5OTk3NjE1ODE0MjEsIDAsCisgICAgICAgIDAuNjI1LCAwLjkyNTAwMDAxMTkyMDkyOSwgMCwgMC41LCAwLjkyNTAwMDAxMTkyMDkyOSwgMCwgMC42MjUsIDAuOTQ5OTk5OTg4MDc5MDcxLAorICAgICAgICAwLCAwLjUsIDAuOTQ5OTk5OTg4MDc5MDcxLCAwLCAwLjYyNSwgMC45NzUwMDAwMjM4NDE4NTc5LCAwLCAwLjUsCisgICAgICAgIDAuOTc1MDAwMDIzODQxODU3OSwgMCwgMC42MjUsIDEsIDAsIDAuNSwgMSwgMCwKKyAgICAgICAgMC43NSwgMC44OTk5OTk5NzYxNTgxNDIxLCAwLCAwLjc1LCAwLjkyNTAwMDAxMTkyMDkyOSwgMCwgMC43NSwgMC45NDk5OTk5ODgwNzkwNzEsCisgICAgICAgIDAsIDAuNzUsIDAuOTc1MDAwMDIzODQxODU3OSwgMCwgMC43NSwgMSwgMCwgMC44NzUsCisgICAgICAgIDAuODk5OTk5OTc2MTU4MTQyMSwgMCwgMC44NzUsIDAuOTI1MDAwMDExOTIwOTI5LCAwLCAwLjg3NSwgMC45NDk5OTk5ODgwNzkwNzEsIDAsCisgICAgICAgIDAuODc1LCAwLjk3NTAwMDAyMzg0MTg1NzksIDAsIDAuODc1LCAxLCAwLCAxLCAwLjg5OTk5OTk3NjE1ODE0MjEsCisgICAgICAgIDAsIDEsIDAuOTI1MDAwMDExOTIwOTI5LCAwLCAxLCAwLjk0OTk5OTk4ODA3OTA3MSwgMCwgMSwKKyAgICAgICAgMC45NzUwMDAwMjM4NDE4NTc5LCAwLCAxLCAxLCAwLCAwLCAwLjg5OTk5OTk3NjE1ODE0MjEsIDAsCisgICAgICAgIDAuMTI1LCAwLjg5OTk5OTk3NjE1ODE0MjEsIDAsIDAuMTI1LCAwLjkyNTAwMDAxMTkyMDkyOSwgMCwgMCwgMC45MjUwMDAwMTE5MjA5MjksCisgICAgICAgIDAsIDAuMTI1LCAwLjk0OTk5OTk4ODA3OTA3MSwgMCwgMCwgMC45NDk5OTk5ODgwNzkwNzEsIDAsIDAuMTI1LAorICAgICAgICAwLjk3NTAwMDAyMzg0MTg1NzksIDAsIDAsIDAuOTc1MDAwMDIzODQxODU3OSwgMCwgMC4xMjUsIDEsIDAsCisgICAgICAgIDAsIDEsIDAsIDAuMjUsIDAuODk5OTk5OTc2MTU4MTQyMSwgMCwgMC4yNSwgMC45MjUwMDAwMTE5MjA5MjksCisgICAgICAgIDAsIDAuMjUsIDAuOTQ5OTk5OTg4MDc5MDcxLCAwLCAwLjI1LCAwLjk3NTAwMDAyMzg0MTg1NzksIDAsIDAuMjUsCisgICAgICAgIDEsIDAsIDAuMzc1LCAwLjg5OTk5OTk3NjE1ODE0MjEsIDAsIDAuMzc1LCAwLjkyNTAwMDAxMTkyMDkyOSwgMCwKKyAgICAgICAgMC4zNzUsIDAuOTQ5OTk5OTg4MDc5MDcxLCAwLCAwLjM3NSwgMC45NzUwMDAwMjM4NDE4NTc5LCAwLCAwLjM3NSwgMSwKKyAgICAgICAgMCwgMC41LCAwLjg5OTk5OTk3NjE1ODE0MjEsIDAsIDAuNSwgMC45MjUwMDAwMTE5MjA5MjksIDAsIDAuNSwKKyAgICAgICAgMC45NDk5OTk5ODgwNzkwNzEsIDAsIDAuNSwgMC45NzUwMDAwMjM4NDE4NTc5LCAwLCAwLjUsIDEsIDAsCisgICAgICAgIDEsIDEsIDAsIDAuODc1LCAxLCAwLCAwLjg3NSwgMC43NSwKKyAgICAgICAgMCwgMSwgMC43NSwgMCwgMC44NzUsIDAuNSwgMCwgMSwKKyAgICAgICAgMC41LCAwLCAwLjg3NSwgMC4yNSwgMCwgMSwgMC4yNSwgMCwKKyAgICAgICAgMC44NzUsIDAsIDAsIDEsIDAsIDAsIDAuNzUsIDEsCisgICAgICAgIDAsIDAuNzUsIDAuNzUsIDAsIDAuNzUsIDAuNSwgMCwgMC43NSwKKyAgICAgICAgMC4yNSwgMCwgMC43NSwgMCwgMCwgMC42MjUsIDEsIDAsCisgICAgICAgIDAuNjI1LCAwLjc1LCAwLCAwLjYyNSwgMC41LCAwLCAwLjYyNSwgMC4yNSwKKyAgICAgICAgMCwgMC42MjUsIDAsIDAsIDAuNSwgMSwgMCwgMC41LAorICAgICAgICAwLjc1LCAwLCAwLjUsIDAuNSwgMCwgMC41LCAwLjI1LCAwLAorICAgICAgICAwLjUsIDAsIDAsIDAuNSwgMSwgMCwgMC4zNzUsIDEsCisgICAgICAgIDAsIDAuMzc1LCAwLjc1LCAwLCAwLjUsIDAuNzUsIDAsIDAuMzc1LAorICAgICAgICAwLjUsIDAsIDAuNSwgMC41LCAwLCAwLjM3NSwgMC4yNSwgMCwKKyAgICAgICAgMC41LCAwLjI1LCAwLCAwLjM3NSwgMCwgMCwgMC41LCAwLAorICAgICAgICAwLCAwLjI1LCAxLCAwLCAwLjI1LCAwLjc1LCAwLCAwLjI1LAorICAgICAgICAwLjUsIDAsIDAuMjUsIDAuMjUsIDAsIDAuMjUsIDAsIDAsCisgICAgICAgIDAuMTI1LCAxLCAwLCAwLjEyNSwgMC43NSwgMCwgMC4xMjUsIDAuNSwKKyAgICAgICAgMCwgMC4xMjUsIDAuMjUsIDAsIDAuMTI1LCAwLCAwLCAwLAorICAgICAgICAxLCAwLCAwLCAwLjc1LCAwLCAwLCAwLjUsIDAsCisgICAgICAgIDAsIDAuMjUsIDAsIDAsIDAsIDAsIDEsIDEsCisgICAgICAgIDAsIDAuODc1LCAxLCAwLCAwLjg3NSwgMC43NSwgMCwgMSwKKyAgICAgICAgMC43NSwgMCwgMC44NzUsIDAuNSwgMCwgMSwgMC41LCAwLAorICAgICAgICAwLjg3NSwgMC4yNSwgMCwgMSwgMC4yNSwgMCwgMC44NzUsIDAsCisgICAgICAgIDAsIDEsIDAsIDAsIDAuNzUsIDEsIDAsIDAuNzUsCisgICAgICAgIDAuNzUsIDAsIDAuNzUsIDAuNSwgMCwgMC43NSwgMC4yNSwgMCwKKyAgICAgICAgMC43NSwgMCwgMCwgMC42MjUsIDEsIDAsIDAuNjI1LCAwLjc1LAorICAgICAgICAwLCAwLjYyNSwgMC41LCAwLCAwLjYyNSwgMC4yNSwgMCwgMC42MjUsCisgICAgICAgIDAsIDAsIDAuNSwgMSwgMCwgMC41LCAwLjc1LCAwLAorICAgICAgICAwLjUsIDAuNSwgMCwgMC41LCAwLjI1LCAwLCAwLjUsIDAsCisgICAgICAgIDAsIDAuNSwgMSwgMCwgMC4zNzUsIDEsIDAsIDAuMzc1LAorICAgICAgICAwLjc1LCAwLCAwLjUsIDAuNzUsIDAsIDAuMzc1LCAwLjUsIDAsCisgICAgICAgIDAuNSwgMC41LCAwLCAwLjM3NSwgMC4yNSwgMCwgMC41LCAwLjI1LAorICAgICAgICAwLCAwLjM3NSwgMCwgMCwgMC41LCAwLCAwLCAwLjI1LAorICAgICAgICAxLCAwLCAwLjI1LCAwLjc1LCAwLCAwLjI1LCAwLjUsIDAsCisgICAgICAgIDAuMjUsIDAuMjUsIDAsIDAuMjUsIDAsIDAsIDAuMTI1LCAxLAorICAgICAgICAwLCAwLjEyNSwgMC43NSwgMCwgMC4xMjUsIDAuNSwgMCwgMC4xMjUsCisgICAgICAgIDAuMjUsIDAsIDAuMTI1LCAwLCAwLCAwLCAxLCAwLAorICAgICAgICAwLCAwLjc1LCAwLCAwLCAwLjUsIDAsIDAsIDAuMjUsCisgICAgICAgIDAsIDAsIDAsIDAsIDEsIDEsIDAsIDAuODc1LAorICAgICAgICAxLCAwLCAwLjg3NSwgMC43NSwgMCwgMSwgMC43NSwgMCwKKyAgICAgICAgMC44NzUsIDAuNSwgMCwgMSwgMC41LCAwLCAwLjg3NSwgMC4yNSwKKyAgICAgICAgMCwgMSwgMC4yNSwgMCwgMC44NzUsIDAsIDAsIDEsCisgICAgICAgIDAsIDAsIDAuNzUsIDEsIDAsIDAuNzUsIDAuNzUsIDAsCisgICAgICAgIDAuNzUsIDAuNSwgMCwgMC43NSwgMC4yNSwgMCwgMC43NSwgMCwKKyAgICAgICAgMCwgMC42MjUsIDEsIDAsIDAuNjI1LCAwLjc1LCAwLCAwLjYyNSwKKyAgICAgICAgMC41LCAwLCAwLjYyNSwgMC4yNSwgMCwgMC42MjUsIDAsIDAsCisgICAgICAgIDAuNSwgMSwgMCwgMC41LCAwLjc1LCAwLCAwLjUsIDAuNSwKKyAgICAgICAgMCwgMC41LCAwLjI1LCAwLCAwLjUsIDAsIDAsIDAuNSwKKyAgICAgICAgMSwgMCwgMC4zNzUsIDEsIDAsIDAuMzc1LCAwLjc1LCAwLAorICAgICAgICAwLjUsIDAuNzUsIDAsIDAuMzc1LCAwLjUsIDAsIDAuNSwgMC41LAorICAgICAgICAwLCAwLjM3NSwgMC4yNSwgMCwgMC41LCAwLjI1LCAwLCAwLjM3NSwKKyAgICAgICAgMCwgMCwgMC41LCAwLCAwLCAwLjI1LCAxLCAwLAorICAgICAgICAwLjI1LCAwLjc1LCAwLCAwLjI1LCAwLjUsIDAsIDAuMjUsIDAuMjUsCisgICAgICAgIDAsIDAuMjUsIDAsIDAsIDAuMTI1LCAxLCAwLCAwLjEyNSwKKyAgICAgICAgMC43NSwgMCwgMC4xMjUsIDAuNSwgMCwgMC4xMjUsIDAuMjUsIDAsCisgICAgICAgIDAuMTI1LCAwLCAwLCAwLCAxLCAwLCAwLCAwLjc1LAorICAgICAgICAwLCAwLCAwLjUsIDAsIDAsIDAuMjUsIDAsIDAsCisgICAgICAgIDAsIDAsIDEsIDEsIDAsIDAuODc1LCAxLCAwLAorICAgICAgICAwLjg3NSwgMC43NSwgMCwgMSwgMC43NSwgMCwgMC44NzUsIDAuNSwKKyAgICAgICAgMCwgMSwgMC41LCAwLCAwLjg3NSwgMC4yNSwgMCwgMSwKKyAgICAgICAgMC4yNSwgMCwgMC44NzUsIDAsIDAsIDEsIDAsIDAsCisgICAgICAgIDAuNzUsIDEsIDAsIDAuNzUsIDAuNzUsIDAsIDAuNzUsIDAuNSwKKyAgICAgICAgMCwgMC43NSwgMC4yNSwgMCwgMC43NSwgMCwgMCwgMC42MjUsCisgICAgICAgIDEsIDAsIDAuNjI1LCAwLjc1LCAwLCAwLjYyNSwgMC41LCAwLAorICAgICAgICAwLjYyNSwgMC4yNSwgMCwgMC42MjUsIDAsIDAsIDAuNSwgMSwKKyAgICAgICAgMCwgMC41LCAwLjc1LCAwLCAwLjUsIDAuNSwgMCwgMC41LAorICAgICAgICAwLjI1LCAwLCAwLjUsIDAsIDAsIDAuNSwgMSwgMCwKKyAgICAgICAgMC4zNzUsIDEsIDAsIDAuMzc1LCAwLjc1LCAwLCAwLjUsIDAuNzUsCisgICAgICAgIDAsIDAuMzc1LCAwLjUsIDAsIDAuNSwgMC41LCAwLCAwLjM3NSwKKyAgICAgICAgMC4yNSwgMCwgMC41LCAwLjI1LCAwLCAwLjM3NSwgMCwgMCwKKyAgICAgICAgMC41LCAwLCAwLCAwLjI1LCAxLCAwLCAwLjI1LCAwLjc1LAorICAgICAgICAwLCAwLjI1LCAwLjUsIDAsIDAuMjUsIDAuMjUsIDAsIDAuMjUsCisgICAgICAgIDAsIDAsIDAuMTI1LCAxLCAwLCAwLjEyNSwgMC43NSwgMCwKKyAgICAgICAgMC4xMjUsIDAuNSwgMCwgMC4xMjUsIDAuMjUsIDAsIDAuMTI1LCAwLAorICAgICAgICAwLCAwLCAxLCAwLCAwLCAwLjc1LCAwLCAwLAorICAgICAgICAwLjUsIDAsIDAsIDAuMjUsIDAsIDAsIDAsIDAgfTsKKwordWludDE2X3QgIHRlYXBvdEluZGljZXNbXSA9IHsgMCwgMSwgMiwgMiwgMywgMCwgMywgMiwgNCwgNCwgNSwgMywgNSwgNCwgNiwgNiwgNywgNSwgNywgNiwgOCwgOCwgOSwgNywKKyAgICAgICAgMSwgMTAsIDExLCAxMSwgMiwgMSwgMiwgMTEsIDEyLCAxMiwgNCwgMiwgNCwgMTIsIDEzLCAxMywgNiwgNCwgNiwgMTMsIDE0LCAxNCwgOCwgNiwKKyAgICAgICAgMTAsIDE1LCAxNiwgMTYsIDExLCAxMCwgMTEsIDE2LCAxNywgMTcsIDEyLCAxMSwgMTIsIDE3LCAxOCwgMTgsIDEzLCAxMiwgMTMsIDE4LCAxOSwgMTksIDE0LCAxMywKKyAgICAgICAgMTUsIDIwLCAyMSwgMjEsIDE2LCAxNSwgMTYsIDIxLCAyMiwgMjIsIDE3LCAxNiwgMTcsIDIyLCAyMywgMjMsIDE4LCAxNywgMTgsIDIzLCAyNCwgMjQsIDE5LCAxOCwKKyAgICAgICAgMjUsIDI2LCAyNywgMjcsIDI4LCAyNSwgMjgsIDI3LCAyOSwgMjksIDMwLCAyOCwgMzAsIDI5LCAzMSwgMzEsIDMyLCAzMCwgMzIsIDMxLCAzMywgMzMsIDM0LCAzMiwKKyAgICAgICAgMjYsIDM1LCAzNiwgMzYsIDI3LCAyNiwgMjcsIDM2LCAzNywgMzcsIDI5LCAyNywgMjksIDM3LCAzOCwgMzgsIDMxLCAyOSwgMzEsIDM4LCAzOSwgMzksIDMzLCAzMSwKKyAgICAgICAgMzUsIDQwLCA0MSwgNDEsIDM2LCAzNSwgMzYsIDQxLCA0MiwgNDIsIDM3LCAzNiwgMzcsIDQyLCA0MywgNDMsIDM4LCAzNywgMzgsIDQzLCA0NCwgNDQsIDM5LCAzOCwKKyAgICAgICAgNDAsIDQ1LCA0NiwgNDYsIDQxLCA0MCwgNDEsIDQ2LCA0NywgNDcsIDQyLCA0MSwgNDIsIDQ3LCA0OCwgNDgsIDQzLCA0MiwgNDMsIDQ4LCA0OSwgNDksIDQ0LCA0MywKKyAgICAgICAgNTAsIDUxLCA1MiwgNTIsIDUzLCA1MCwgNTMsIDUyLCA1NCwgNTQsIDU1LCA1MywgNTUsIDU0LCA1NiwgNTYsIDU3LCA1NSwgNTcsIDU2LCA1OCwgNTgsIDU5LCA1NywKKyAgICAgICAgNTEsIDYwLCA2MSwgNjEsIDUyLCA1MSwgNTIsIDYxLCA2MiwgNjIsIDU0LCA1MiwgNTQsIDYyLCA2MywgNjMsIDU2LCA1NCwgNTYsIDYzLCA2NCwgNjQsIDU4LCA1NiwKKyAgICAgICAgNjAsIDY1LCA2NiwgNjYsIDYxLCA2MCwgNjEsIDY2LCA2NywgNjcsIDYyLCA2MSwgNjIsIDY3LCA2OCwgNjgsIDYzLCA2MiwgNjMsIDY4LCA2OSwgNjksIDY0LCA2MywKKyAgICAgICAgNjUsIDcwLCA3MSwgNzEsIDY2LCA2NSwgNjYsIDcxLCA3MiwgNzIsIDY3LCA2NiwgNjcsIDcyLCA3MywgNzMsIDY4LCA2NywgNjgsIDczLCA3NCwgNzQsIDY5LCA2OCwKKyAgICAgICAgNzUsIDc2LCA3NywgNzcsIDc4LCA3NSwgNzgsIDc3LCA3OSwgNzksIDgwLCA3OCwgODAsIDc5LCA4MSwgODEsIDgyLCA4MCwgODIsIDgxLCA4MywgODMsIDg0LCA4MiwKKyAgICAgICAgNzYsIDg1LCA4NiwgODYsIDc3LCA3NiwgNzcsIDg2LCA4NywgODcsIDc5LCA3NywgNzksIDg3LCA4OCwgODgsIDgxLCA3OSwgODEsIDg4LCA4OSwgODksIDgzLCA4MSwKKyAgICAgICAgODUsIDkwLCA5MSwgOTEsIDg2LCA4NSwgODYsIDkxLCA5MiwgOTIsIDg3LCA4NiwgODcsIDkyLCA5MywgOTMsIDg4LCA4NywgODgsIDkzLCA5NCwgOTQsIDg5LCA4OCwKKyAgICAgICAgOTAsIDk1LCA5NiwgOTYsIDkxLCA5MCwgOTEsIDk2LCA5NywgOTcsIDkyLCA5MSwgOTIsIDk3LCA5OCwgOTgsIDkzLCA5MiwgOTMsIDk4LCA5OSwgOTksIDk0LCA5MywKKyAgICAgICAgMTAwLCAxMDEsIDEwMiwgMTAyLCAxMDMsIDEwMCwgMTAzLCAxMDIsIDEwNCwgMTA0LCAxMDUsIDEwMywgMTA1LCAxMDQsIDEwNiwgMTA2LCAxMDcsIDEwNSwgMTA3LCAxMDYsIDEwOCwgMTA4LCAxMDksIDEwNywKKyAgICAgICAgMTAxLCAxMTAsIDExMSwgMTExLCAxMDIsIDEwMSwgMTAyLCAxMTEsIDExMiwgMTEyLCAxMDQsIDEwMiwgMTA0LCAxMTIsIDExMywgMTEzLCAxMDYsIDEwNCwgMTA2LCAxMTMsIDExNCwgMTE0LCAxMDgsIDEwNiwKKyAgICAgICAgMTEwLCAxMTUsIDExNiwgMTE2LCAxMTEsIDExMCwgMTExLCAxMTYsIDExNywgMTE3LCAxMTIsIDExMSwgMTEyLCAxMTcsIDExOCwgMTE4LCAxMTMsIDExMiwgMTEzLCAxMTgsIDExOSwgMTE5LCAxMTQsIDExMywKKyAgICAgICAgMTE1LCAxMjAsIDEyMSwgMTIxLCAxMTYsIDExNSwgMTE2LCAxMjEsIDEyMiwgMTIyLCAxMTcsIDExNiwgMTE3LCAxMjIsIDEyMywgMTIzLCAxMTgsIDExNywgMTE4LCAxMjMsIDEyNCwgMTI0LCAxMTksIDExOCwKKyAgICAgICAgMTI1LCAxMjYsIDEyNywgMTI3LCAxMjgsIDEyNSwgMTI4LCAxMjcsIDEyOSwgMTI5LCAxMzAsIDEyOCwgMTMwLCAxMjksIDEzMSwgMTMxLCAxMzIsIDEzMCwgMTMyLCAxMzEsIDEzMywgMTMzLCAxMzQsIDEzMiwKKyAgICAgICAgMTI2LCAxMzUsIDEzNiwgMTM2LCAxMjcsIDEyNiwgMTI3LCAxMzYsIDEzNywgMTM3LCAxMjksIDEyNywgMTI5LCAxMzcsIDEzOCwgMTM4LCAxMzEsIDEyOSwgMTMxLCAxMzgsIDEzOSwgMTM5LCAxMzMsIDEzMSwKKyAgICAgICAgMTM1LCAxNDAsIDE0MSwgMTQxLCAxMzYsIDEzNSwgMTM2LCAxNDEsIDE0MiwgMTQyLCAxMzcsIDEzNiwgMTM3LCAxNDIsIDE0MywgMTQzLCAxMzgsIDEzNywgMTM4LCAxNDMsIDE0NCwgMTQ0LCAxMzksIDEzOCwKKyAgICAgICAgMTQwLCAxNDUsIDE0NiwgMTQ2LCAxNDEsIDE0MCwgMTQxLCAxNDYsIDE0NywgMTQ3LCAxNDIsIDE0MSwgMTQyLCAxNDcsIDE0OCwgMTQ4LCAxNDMsIDE0MiwgMTQzLCAxNDgsIDE0OSwgMTQ5LCAxNDQsIDE0MywKKyAgICAgICAgMTUwLCAxNTEsIDE1MiwgMTUyLCAxNTMsIDE1MCwgMTUzLCAxNTIsIDE1NCwgMTU0LCAxNTUsIDE1MywgMTU1LCAxNTQsIDE1NiwgMTU2LCAxNTcsIDE1NSwgMTU3LCAxNTYsIDE1OCwgMTU4LCAxNTksIDE1NywKKyAgICAgICAgMTUxLCAxNjAsIDE2MSwgMTYxLCAxNTIsIDE1MSwgMTUyLCAxNjEsIDE2MiwgMTYyLCAxNTQsIDE1MiwgMTU0LCAxNjIsIDE2MywgMTYzLCAxNTYsIDE1NCwgMTU2LCAxNjMsIDE2NCwgMTY0LCAxNTgsIDE1NiwKKyAgICAgICAgMTYwLCAxNjUsIDE2NiwgMTY2LCAxNjEsIDE2MCwgMTYxLCAxNjYsIDE2NywgMTY3LCAxNjIsIDE2MSwgMTYyLCAxNjcsIDE2OCwgMTY4LCAxNjMsIDE2MiwgMTYzLCAxNjgsIDE2OSwgMTY5LCAxNjQsIDE2MywKKyAgICAgICAgMTY1LCAxNzAsIDE3MSwgMTcxLCAxNjYsIDE2NSwgMTY2LCAxNzEsIDE3MiwgMTcyLCAxNjcsIDE2NiwgMTY3LCAxNzIsIDE3MywgMTczLCAxNjgsIDE2NywgMTY4LCAxNzMsIDE3NCwgMTc0LCAxNjksIDE2OCwKKyAgICAgICAgMTc1LCAxNzYsIDE3NywgMTc3LCAxNzgsIDE3NSwgMTc4LCAxNzcsIDE3OSwgMTc5LCAxODAsIDE3OCwgMTgwLCAxNzksIDE4MSwgMTgxLCAxODIsIDE4MCwgMTgyLCAxODEsIDE4MywgMTgzLCAxODQsIDE4MiwKKyAgICAgICAgMTc2LCAxODUsIDE4NiwgMTg2LCAxNzcsIDE3NiwgMTc3LCAxODYsIDE4NywgMTg3LCAxNzksIDE3NywgMTc5LCAxODcsIDE4OCwgMTg4LCAxODEsIDE3OSwgMTgxLCAxODgsIDE4OSwgMTg5LCAxODMsIDE4MSwKKyAgICAgICAgMTg1LCAxOTAsIDE5MSwgMTkxLCAxODYsIDE4NSwgMTg2LCAxOTEsIDE5MiwgMTkyLCAxODcsIDE4NiwgMTg3LCAxOTIsIDE5MywgMTkzLCAxODgsIDE4NywgMTg4LCAxOTMsIDE5NCwgMTk0LCAxODksIDE4OCwKKyAgICAgICAgMTkwLCAxOTUsIDE5NiwgMTk2LCAxOTEsIDE5MCwgMTkxLCAxOTYsIDE5NywgMTk3LCAxOTIsIDE5MSwgMTkyLCAxOTcsIDE5OCwgMTk4LCAxOTMsIDE5MiwgMTkzLCAxOTgsIDE5OSwgMTk5LCAxOTQsIDE5MywKKyAgICAgICAgMjAwLCAyMDEsIDIwMiwgMjAyLCAyMDMsIDIwMCwgMjAzLCAyMDIsIDIwNCwgMjA0LCAyMDUsIDIwMywgMjA1LCAyMDQsIDIwNiwgMjA2LCAyMDcsIDIwNSwgMjA3LCAyMDYsIDIwOCwgMjA4LCAyMDksIDIwNywKKyAgICAgICAgMjAxLCAyMTAsIDIxMSwgMjExLCAyMDIsIDIwMSwgMjAyLCAyMTEsIDIxMiwgMjEyLCAyMDQsIDIwMiwgMjA0LCAyMTIsIDIxMywgMjEzLCAyMDYsIDIwNCwgMjA2LCAyMTMsIDIxNCwgMjE0LCAyMDgsIDIwNiwKKyAgICAgICAgMjEwLCAyMTUsIDIxNiwgMjE2LCAyMTEsIDIxMCwgMjExLCAyMTYsIDIxNywgMjE3LCAyMTIsIDIxMSwgMjEyLCAyMTcsIDIxOCwgMjE4LCAyMTMsIDIxMiwgMjEzLCAyMTgsIDIxOSwgMjE5LCAyMTQsIDIxMywKKyAgICAgICAgMjE1LCAyMjAsIDIyMSwgMjIxLCAyMTYsIDIxNSwgMjE2LCAyMjEsIDIyMiwgMjIyLCAyMTcsIDIxNiwgMjE3LCAyMjIsIDIyMywgMjIzLCAyMTgsIDIxNywgMjE4LCAyMjMsIDIyNCwgMjI0LCAyMTksIDIxOCwKKyAgICAgICAgMjI1LCAyMjYsIDIyNywgMjI3LCAyMjgsIDIyNSwgMjI4LCAyMjcsIDIyOSwgMjI5LCAyMzAsIDIyOCwgMjMwLCAyMjksIDIzMSwgMjMxLCAyMzIsIDIzMCwgMjMyLCAyMzEsIDIzMywgMjMzLCAyMzQsIDIzMiwKKyAgICAgICAgMjI2LCAyMzUsIDIzNiwgMjM2LCAyMjcsIDIyNiwgMjI3LCAyMzYsIDIzNywgMjM3LCAyMjksIDIyNywgMjI5LCAyMzcsIDIzOCwgMjM4LCAyMzEsIDIyOSwgMjMxLCAyMzgsIDIzOSwgMjM5LCAyMzMsIDIzMSwKKyAgICAgICAgMjM1LCAyNDAsIDI0MSwgMjQxLCAyMzYsIDIzNSwgMjM2LCAyNDEsIDI0MiwgMjQyLCAyMzcsIDIzNiwgMjM3LCAyNDIsIDI0MywgMjQzLCAyMzgsIDIzNywgMjM4LCAyNDMsIDI0NCwgMjQ0LCAyMzksIDIzOCwKKyAgICAgICAgMjQwLCAyNDUsIDI0NiwgMjQ2LCAyNDEsIDI0MCwgMjQxLCAyNDYsIDI0NywgMjQ3LCAyNDIsIDI0MSwgMjQyLCAyNDcsIDI0OCwgMjQ4LCAyNDMsIDI0MiwgMjQzLCAyNDgsIDI0OSwgMjQ5LCAyNDQsIDI0MywKKyAgICAgICAgMjUwLCAyNTEsIDI1MiwgMjUyLCAyNTMsIDI1MCwgMjUzLCAyNTIsIDI1NCwgMjU0LCAyNTUsIDI1MywgMjU1LCAyNTQsIDI1NiwgMjU2LCAyNTcsIDI1NSwgMjU3LCAyNTYsIDI1OCwgMjU4LCAyNTksIDI1NywKKyAgICAgICAgMjUxLCAyNjAsIDI2MSwgMjYxLCAyNTIsIDI1MSwgMjUyLCAyNjEsIDI2MiwgMjYyLCAyNTQsIDI1MiwgMjU0LCAyNjIsIDI2MywgMjYzLCAyNTYsIDI1NCwgMjU2LCAyNjMsIDI2NCwgMjY0LCAyNTgsIDI1NiwKKyAgICAgICAgMjYwLCAyNjUsIDI2NiwgMjY2LCAyNjEsIDI2MCwgMjYxLCAyNjYsIDI2NywgMjY3LCAyNjIsIDI2MSwgMjYyLCAyNjcsIDI2OCwgMjY4LCAyNjMsIDI2MiwgMjYzLCAyNjgsIDI2OSwgMjY5LCAyNjQsIDI2MywKKyAgICAgICAgMjY1LCAyNzAsIDI3MSwgMjcxLCAyNjYsIDI2NSwgMjY2LCAyNzEsIDI3MiwgMjcyLCAyNjcsIDI2NiwgMjY3LCAyNzIsIDI3MywgMjczLCAyNjgsIDI2NywgMjY4LCAyNzMsIDI3NCwgMjc0LCAyNjksIDI2OCwKKyAgICAgICAgMjc1LCAyNzYsIDI3NywgMjc3LCAyNzgsIDI3NSwgMjc4LCAyNzcsIDI3OSwgMjc5LCAyODAsIDI3OCwgMjgwLCAyNzksIDI4MSwgMjgxLCAyODIsIDI4MCwgMjgyLCAyODEsIDI4MywgMjgzLCAyODQsIDI4MiwKKyAgICAgICAgMjc2LCAyODUsIDI4NiwgMjg2LCAyNzcsIDI3NiwgMjc3LCAyODYsIDI4NywgMjg3LCAyNzksIDI3NywgMjc5LCAyODcsIDI4OCwgMjg4LCAyODEsIDI3OSwgMjgxLCAyODgsIDI4OSwgMjg5LCAyODMsIDI4MSwKKyAgICAgICAgMjg1LCAyOTAsIDI5MSwgMjkxLCAyODYsIDI4NSwgMjg2LCAyOTEsIDI5MiwgMjkyLCAyODcsIDI4NiwgMjg3LCAyOTIsIDI5MywgMjkzLCAyODgsIDI4NywgMjg4LCAyOTMsIDI5NCwgMjk0LCAyODksIDI4OCwKKyAgICAgICAgMjkwLCAyOTUsIDI5NiwgMjk2LCAyOTEsIDI5MCwgMjkxLCAyOTYsIDI5NywgMjk3LCAyOTIsIDI5MSwgMjkyLCAyOTcsIDI5OCwgMjk4LCAyOTMsIDI5MiwgMjkzLCAyOTgsIDI5OSwgMjk5LCAyOTQsIDI5MywKKyAgICAgICAgMzAwLCAzMDEsIDMwMiwgMzAyLCAzMDMsIDMwMCwgMzAzLCAzMDIsIDMwNCwgMzA0LCAzMDUsIDMwMywgMzA1LCAzMDQsIDMwNiwgMzA2LCAzMDcsIDMwNSwgMzA3LCAzMDYsIDMwOCwgMzA4LCAzMDksIDMwNywKKyAgICAgICAgMzAxLCAzMTAsIDMxMSwgMzExLCAzMDIsIDMwMSwgMzAyLCAzMTEsIDMxMiwgMzEyLCAzMDQsIDMwMiwgMzA0LCAzMTIsIDMxMywgMzEzLCAzMDYsIDMwNCwgMzA2LCAzMTMsIDMxNCwgMzE0LCAzMDgsIDMwNiwKKyAgICAgICAgMzEwLCAzMTUsIDMxNiwgMzE2LCAzMTEsIDMxMCwgMzExLCAzMTYsIDMxNywgMzE3LCAzMTIsIDMxMSwgMzEyLCAzMTcsIDMxOCwgMzE4LCAzMTMsIDMxMiwgMzEzLCAzMTgsIDMxOSwgMzE5LCAzMTQsIDMxMywKKyAgICAgICAgMzE1LCAzMjAsIDMyMSwgMzIxLCAzMTYsIDMxNSwgMzE2LCAzMjEsIDMyMiwgMzIyLCAzMTcsIDMxNiwgMzE3LCAzMjIsIDMyMywgMzIzLCAzMTgsIDMxNywgMzE4LCAzMjMsIDMyNCwgMzI0LCAzMTksIDMxOCwKKyAgICAgICAgMzI1LCAzMjYsIDMyNywgMzI3LCAzMjgsIDMyNSwgMzI4LCAzMjcsIDMyOSwgMzI5LCAzMzAsIDMyOCwgMzMwLCAzMjksIDMzMSwgMzMxLCAzMzIsIDMzMCwgMzMyLCAzMzEsIDMzMywgMzMzLCAzMzQsIDMzMiwKKyAgICAgICAgMzI2LCAzMzUsIDMzNiwgMzM2LCAzMjcsIDMyNiwgMzI3LCAzMzYsIDMzNywgMzM3LCAzMjksIDMyNywgMzI5LCAzMzcsIDMzOCwgMzM4LCAzMzEsIDMyOSwgMzMxLCAzMzgsIDMzOSwgMzM5LCAzMzMsIDMzMSwKKyAgICAgICAgMzM1LCAzNDAsIDM0MSwgMzQxLCAzMzYsIDMzNSwgMzM2LCAzNDEsIDM0MiwgMzQyLCAzMzcsIDMzNiwgMzM3LCAzNDIsIDM0MywgMzQzLCAzMzgsIDMzNywgMzM4LCAzNDMsIDM0NCwgMzQ0LCAzMzksIDMzOCwKKyAgICAgICAgMzQwLCAzNDUsIDM0NiwgMzQ2LCAzNDEsIDM0MCwgMzQxLCAzNDYsIDM0NywgMzQ3LCAzNDIsIDM0MSwgMzQyLCAzNDcsIDM0OCwgMzQ4LCAzNDMsIDM0MiwgMzQzLCAzNDgsIDM0OSwgMzQ5LCAzNDQsIDM0MywKKyAgICAgICAgMzUwLCAzNTEsIDM1MiwgMzUyLCAzNTMsIDM1MCwgMzUzLCAzNTIsIDM1NCwgMzU0LCAzNTUsIDM1MywgMzU1LCAzNTQsIDM1NiwgMzU2LCAzNTcsIDM1NSwgMzU3LCAzNTYsIDM1OCwgMzU4LCAzNTksIDM1NywKKyAgICAgICAgMzUxLCAzNjAsIDM2MSwgMzYxLCAzNTIsIDM1MSwgMzUyLCAzNjEsIDM2MiwgMzYyLCAzNTQsIDM1MiwgMzU0LCAzNjIsIDM2MywgMzYzLCAzNTYsIDM1NCwgMzU2LCAzNjMsIDM2NCwgMzY0LCAzNTgsIDM1NiwKKyAgICAgICAgMzYwLCAzNjUsIDM2NiwgMzY2LCAzNjEsIDM2MCwgMzYxLCAzNjYsIDM2NywgMzY3LCAzNjIsIDM2MSwgMzYyLCAzNjcsIDM2OCwgMzY4LCAzNjMsIDM2MiwgMzYzLCAzNjgsIDM2OSwgMzY5LCAzNjQsIDM2MywKKyAgICAgICAgMzY1LCAzNzAsIDM3MSwgMzcxLCAzNjYsIDM2NSwgMzY2LCAzNzEsIDM3MiwgMzcyLCAzNjcsIDM2NiwgMzY3LCAzNzIsIDM3MywgMzczLCAzNjgsIDM2NywgMzY4LCAzNzMsIDM3NCwgMzc0LCAzNjksIDM2OCwKKyAgICAgICAgMzc1LCAzNzYsIDM3NywgMzc3LCAzNzgsIDM3NSwgMzc4LCAzNzcsIDM3OSwgMzc5LCAzODAsIDM3OCwgMzgwLCAzNzksIDM4MSwgMzgxLCAzODIsIDM4MCwgMzgyLCAzODEsIDM4MywgMzgzLCAzODQsIDM4MiwKKyAgICAgICAgMzc2LCAzODUsIDM4NiwgMzg2LCAzNzcsIDM3NiwgMzc3LCAzODYsIDM4NywgMzg3LCAzNzksIDM3NywgMzc5LCAzODcsIDM4OCwgMzg4LCAzODEsIDM3OSwgMzgxLCAzODgsIDM4OSwgMzg5LCAzODMsIDM4MSwKKyAgICAgICAgMzg1LCAzOTAsIDM5MSwgMzkxLCAzODYsIDM4NSwgMzg2LCAzOTEsIDM5MiwgMzkyLCAzODcsIDM4NiwgMzg3LCAzOTIsIDM5MywgMzkzLCAzODgsIDM4NywgMzg4LCAzOTMsIDM5NCwgMzk0LCAzODksIDM4OCwKKyAgICAgICAgMzkwLCAzOTUsIDM5NiwgMzk2LCAzOTEsIDM5MCwgMzkxLCAzOTYsIDM5NywgMzk3LCAzOTIsIDM5MSwgMzkyLCAzOTcsIDM5OCwgMzk4LCAzOTMsIDM5MiwgMzkzLCAzOTgsIDM5OSwgMzk5LCAzOTQsIDM5MywKKyAgICAgICAgNDAwLCA0MDEsIDQwMiwgNDAyLCA0MDMsIDQwMCwgNDAzLCA0MDIsIDQwNCwgNDA0LCA0MDUsIDQwMywgNDA1LCA0MDQsIDQwNiwgNDA2LCA0MDcsIDQwNSwgNDA3LCA0MDYsIDQwOCwgNDA4LCA0MDksIDQwNywKKyAgICAgICAgNDAxLCA0MTAsIDQxMSwgNDExLCA0MDIsIDQwMSwgNDAyLCA0MTEsIDQxMiwgNDEyLCA0MDQsIDQwMiwgNDA0LCA0MTIsIDQxMywgNDEzLCA0MDYsIDQwNCwgNDA2LCA0MTMsIDQxNCwgNDE0LCA0MDgsIDQwNiwKKyAgICAgICAgNDEwLCA0MTUsIDQxNiwgNDE2LCA0MTEsIDQxMCwgNDExLCA0MTYsIDQxNywgNDE3LCA0MTIsIDQxMSwgNDEyLCA0MTcsIDQxOCwgNDE4LCA0MTMsIDQxMiwgNDEzLCA0MTgsIDQxOSwgNDE5LCA0MTQsIDQxMywKKyAgICAgICAgNDE1LCA0MjAsIDQyMSwgNDIxLCA0MTYsIDQxNSwgNDE2LCA0MjEsIDQyMiwgNDIyLCA0MTcsIDQxNiwgNDE3LCA0MjIsIDQyMywgNDIzLCA0MTgsIDQxNywgNDE4LCA0MjMsIDQyNCwgNDI0LCA0MTksIDQxOCwKKyAgICAgICAgNDI1LCA0MjYsIDQyNywgNDI3LCA0MjgsIDQyNSwgNDI4LCA0MjcsIDQyOSwgNDI5LCA0MzAsIDQyOCwgNDMwLCA0MjksIDQzMSwgNDMxLCA0MzIsIDQzMCwgNDMyLCA0MzEsIDQzMywgNDMzLCA0MzQsIDQzMiwKKyAgICAgICAgNDI2LCA0MzUsIDQzNiwgNDM2LCA0MjcsIDQyNiwgNDI3LCA0MzYsIDQzNywgNDM3LCA0MjksIDQyNywgNDI5LCA0MzcsIDQzOCwgNDM4LCA0MzEsIDQyOSwgNDMxLCA0MzgsIDQzOSwgNDM5LCA0MzMsIDQzMSwKKyAgICAgICAgNDM1LCA0NDAsIDQ0MSwgNDQxLCA0MzYsIDQzNSwgNDM2LCA0NDEsIDQ0MiwgNDQyLCA0MzcsIDQzNiwgNDM3LCA0NDIsIDQ0MywgNDQzLCA0MzgsIDQzNywgNDM4LCA0NDMsIDQ0NCwgNDQ0LCA0MzksIDQzOCwKKyAgICAgICAgNDQwLCA0NDUsIDQ0NiwgNDQ2LCA0NDEsIDQ0MCwgNDQxLCA0NDYsIDQ0NywgNDQ3LCA0NDIsIDQ0MSwgNDQyLCA0NDcsIDQ0OCwgNDQ4LCA0NDMsIDQ0MiwgNDQzLCA0NDgsIDQ0OSwgNDQ5LCA0NDQsIDQ0MywKKyAgICAgICAgNDUwLCA0NTEsIDQ1MiwgNDUyLCA0NTMsIDQ1MCwgNDUzLCA0NTIsIDQ1NCwgNDU0LCA0NTUsIDQ1MywgNDU1LCA0NTQsIDQ1NiwgNDU2LCA0NTcsIDQ1NSwgNDU3LCA0NTYsIDQ1OCwgNDU4LCA0NTksIDQ1NywKKyAgICAgICAgNDUxLCA0NjAsIDQ2MSwgNDYxLCA0NTIsIDQ1MSwgNDUyLCA0NjEsIDQ2MiwgNDYyLCA0NTQsIDQ1MiwgNDU0LCA0NjIsIDQ2MywgNDYzLCA0NTYsIDQ1NCwgNDU2LCA0NjMsIDQ2NCwgNDY0LCA0NTgsIDQ1NiwKKyAgICAgICAgNDYwLCA0NjUsIDQ2NiwgNDY2LCA0NjEsIDQ2MCwgNDYxLCA0NjYsIDQ2NywgNDY3LCA0NjIsIDQ2MSwgNDYyLCA0NjcsIDQ2OCwgNDY4LCA0NjMsIDQ2MiwgNDYzLCA0NjgsIDQ2OSwgNDY5LCA0NjQsIDQ2MywKKyAgICAgICAgNDY1LCA0NzAsIDQ3MSwgNDcxLCA0NjYsIDQ2NSwgNDY2LCA0NzEsIDQ3MiwgNDcyLCA0NjcsIDQ2NiwgNDY3LCA0NzIsIDQ3MywgNDczLCA0NjgsIDQ2NywgNDY4LCA0NzMsIDQ3NCwgNDc0LCA0NjksIDQ2OCwKKyAgICAgICAgNDc1LCA0NzYsIDQ3NywgNDc3LCA0NzgsIDQ3NSwgNDc4LCA0NzcsIDQ3OSwgNDc5LCA0ODAsIDQ3OCwgNDgwLCA0NzksIDQ4MSwgNDgxLCA0ODIsIDQ4MCwgNDgyLCA0ODEsIDQ4MywgNDgzLCA0ODQsIDQ4MiwKKyAgICAgICAgNDc2LCA0ODUsIDQ4NiwgNDg2LCA0NzcsIDQ3NiwgNDc3LCA0ODYsIDQ4NywgNDg3LCA0NzksIDQ3NywgNDc5LCA0ODcsIDQ4OCwgNDg4LCA0ODEsIDQ3OSwgNDgxLCA0ODgsIDQ4OSwgNDg5LCA0ODMsIDQ4MSwKKyAgICAgICAgNDg1LCA0OTAsIDQ5MSwgNDkxLCA0ODYsIDQ4NSwgNDg2LCA0OTEsIDQ5MiwgNDkyLCA0ODcsIDQ4NiwgNDg3LCA0OTIsIDQ5MywgNDkzLCA0ODgsIDQ4NywgNDg4LCA0OTMsIDQ5NCwgNDk0LCA0ODksIDQ4OCwKKyAgICAgICAgNDkwLCA0OTUsIDQ5NiwgNDk2LCA0OTEsIDQ5MCwgNDkxLCA0OTYsIDQ5NywgNDk3LCA0OTIsIDQ5MSwgNDkyLCA0OTcsIDQ5OCwgNDk4LCA0OTMsIDQ5MiwgNDkzLCA0OTgsIDQ5OSwgNDk5LCA0OTQsIDQ5MywKKyAgICAgICAgNTAwLCA1MDEsIDUwMiwgNTAyLCA1MDMsIDUwMCwgNTAzLCA1MDIsIDUwNCwgNTA0LCA1MDUsIDUwMywgNTA1LCA1MDQsIDUwNiwgNTA2LCA1MDcsIDUwNSwgNTA3LCA1MDYsIDUwOCwgNTA4LCA1MDksIDUwNywKKyAgICAgICAgNTAxLCA1MTAsIDUxMSwgNTExLCA1MDIsIDUwMSwgNTAyLCA1MTEsIDUxMiwgNTEyLCA1MDQsIDUwMiwgNTA0LCA1MTIsIDUxMywgNTEzLCA1MDYsIDUwNCwgNTA2LCA1MTMsIDUxNCwgNTE0LCA1MDgsIDUwNiwKKyAgICAgICAgNTEwLCA1MTUsIDUxNiwgNTE2LCA1MTEsIDUxMCwgNTExLCA1MTYsIDUxNywgNTE3LCA1MTIsIDUxMSwgNTEyLCA1MTcsIDUxOCwgNTE4LCA1MTMsIDUxMiwgNTEzLCA1MTgsIDUxOSwgNTE5LCA1MTQsIDUxMywKKyAgICAgICAgNTE1LCA1MjAsIDUyMSwgNTIxLCA1MTYsIDUxNSwgNTE2LCA1MjEsIDUyMiwgNTIyLCA1MTcsIDUxNiwgNTE3LCA1MjIsIDUyMywgNTIzLCA1MTgsIDUxNywgNTE4LCA1MjMsIDUyNCwgNTI0LCA1MTksIDUxOCwKKyAgICAgICAgNTI1LCA1MjYsIDUyNywgNTI3LCA1MjgsIDUyNSwgNTI4LCA1MjcsIDUyOSwgNTI5LCA1MzAsIDUyOCwgNTMwLCA1MjksIDUzMSwgNTMxLCA1MzIsIDUzMCwgNTMyLCA1MzEsIDUzMywgNTMzLCA1MzQsIDUzMiwKKyAgICAgICAgNTI2LCA1MzUsIDUzNiwgNTM2LCA1MjcsIDUyNiwgNTI3LCA1MzYsIDUzNywgNTM3LCA1MjksIDUyNywgNTI5LCA1MzcsIDUzOCwgNTM4LCA1MzEsIDUyOSwgNTMxLCA1MzgsIDUzOSwgNTM5LCA1MzMsIDUzMSwKKyAgICAgICAgNTM1LCA1NDAsIDU0MSwgNTQxLCA1MzYsIDUzNSwgNTM2LCA1NDEsIDU0MiwgNTQyLCA1MzcsIDUzNiwgNTM3LCA1NDIsIDU0MywgNTQzLCA1MzgsIDUzNywgNTM4LCA1NDMsIDU0NCwgNTQ0LCA1MzksIDUzOCwKKyAgICAgICAgNTQwLCA1NDUsIDU0NiwgNTQ2LCA1NDEsIDU0MCwgNTQxLCA1NDYsIDU0NywgNTQ3LCA1NDIsIDU0MSwgNTQyLCA1NDcsIDU0OCwgNTQ4LCA1NDMsIDU0MiwgNTQzLCA1NDgsIDU0OSwgNTQ5LCA1NDQsIDU0MywKKyAgICAgICAgNTUwLCA1NTEsIDU1MiwgNTUyLCA1NTMsIDU1MCwgNTUzLCA1NTIsIDU1NCwgNTU0LCA1NTUsIDU1MywgNTU1LCA1NTQsIDU1NiwgNTU2LCA1NTcsIDU1NSwgNTU3LCA1NTYsIDU1OCwgNTU4LCA1NTksIDU1NywKKyAgICAgICAgNTUxLCA1NjAsIDU2MSwgNTYxLCA1NTIsIDU1MSwgNTUyLCA1NjEsIDU2MiwgNTYyLCA1NTQsIDU1MiwgNTU0LCA1NjIsIDU2MywgNTYzLCA1NTYsIDU1NCwgNTU2LCA1NjMsIDU2NCwgNTY0LCA1NTgsIDU1NiwKKyAgICAgICAgNTYwLCA1NjUsIDU2NiwgNTY2LCA1NjEsIDU2MCwgNTYxLCA1NjYsIDU2NywgNTY3LCA1NjIsIDU2MSwgNTYyLCA1NjcsIDU2OCwgNTY4LCA1NjMsIDU2MiwgNTYzLCA1NjgsIDU2OSwgNTY5LCA1NjQsIDU2MywKKyAgICAgICAgNTY1LCA1NzAsIDU3MSwgNTcxLCA1NjYsIDU2NSwgNTY2LCA1NzEsIDU3MiwgNTcyLCA1NjcsIDU2NiwgNTY3LCA1NzIsIDU3MywgNTczLCA1NjgsIDU2NywgNTY4LCA1NzMsIDU3NCwgNTc0LCA1NjksIDU2OCwKKyAgICAgICAgNTc1LCA1NzYsIDU3NywgNTc3LCA1NzgsIDU3NSwgNTc4LCA1NzcsIDU3OSwgNTc5LCA1ODAsIDU3OCwgNTgwLCA1NzksIDU4MSwgNTgxLCA1ODIsIDU4MCwgNTgyLCA1ODEsIDU4MywgNTgzLCA1ODQsIDU4MiwKKyAgICAgICAgNTc2LCA1ODUsIDU4NiwgNTg2LCA1NzcsIDU3NiwgNTc3LCA1ODYsIDU4NywgNTg3LCA1NzksIDU3NywgNTc5LCA1ODcsIDU4OCwgNTg4LCA1ODEsIDU3OSwgNTgxLCA1ODgsIDU4OSwgNTg5LCA1ODMsIDU4MSwKKyAgICAgICAgNTg1LCA1OTAsIDU5MSwgNTkxLCA1ODYsIDU4NSwgNTg2LCA1OTEsIDU5MiwgNTkyLCA1ODcsIDU4NiwgNTg3LCA1OTIsIDU5MywgNTkzLCA1ODgsIDU4NywgNTg4LCA1OTMsIDU5NCwgNTk0LCA1ODksIDU4OCwKKyAgICAgICAgNTkwLCA1OTUsIDU5NiwgNTk2LCA1OTEsIDU5MCwgNTkxLCA1OTYsIDU5NywgNTk3LCA1OTIsIDU5MSwgNTkyLCA1OTcsIDU5OCwgNTk4LCA1OTMsIDU5MiwgNTkzLCA1OTgsIDU5OSwgNTk5LCA1OTQsIDU5MywKKyAgICAgICAgNjAwLCA2MDEsIDYwMiwgNjAyLCA2MDMsIDYwMCwgNjAzLCA2MDIsIDYwNCwgNjA0LCA2MDUsIDYwMywgNjA1LCA2MDQsIDYwNiwgNjA2LCA2MDcsIDYwNSwgNjA3LCA2MDYsIDYwOCwgNjA4LCA2MDksIDYwNywKKyAgICAgICAgNjAxLCA2MTAsIDYxMSwgNjExLCA2MDIsIDYwMSwgNjAyLCA2MTEsIDYxMiwgNjEyLCA2MDQsIDYwMiwgNjA0LCA2MTIsIDYxMywgNjEzLCA2MDYsIDYwNCwgNjA2LCA2MTMsIDYxNCwgNjE0LCA2MDgsIDYwNiwKKyAgICAgICAgNjEwLCA2MTUsIDYxNiwgNjE2LCA2MTEsIDYxMCwgNjExLCA2MTYsIDYxNywgNjE3LCA2MTIsIDYxMSwgNjEyLCA2MTcsIDYxOCwgNjE4LCA2MTMsIDYxMiwgNjEzLCA2MTgsIDYxOSwgNjE5LCA2MTQsIDYxMywKKyAgICAgICAgNjE1LCA2MjAsIDYyMSwgNjIxLCA2MTYsIDYxNSwgNjE2LCA2MjEsIDYyMiwgNjIyLCA2MTcsIDYxNiwgNjE3LCA2MjIsIDYyMywgNjIzLCA2MTgsIDYxNywgNjE4LCA2MjMsIDYyNCwgNjI0LCA2MTksIDYxOCwKKyAgICAgICAgNjI1LCA2MjYsIDYyNywgNjI3LCA2MjgsIDYyNSwgNjI4LCA2MjcsIDYyOSwgNjI5LCA2MzAsIDYyOCwgNjMwLCA2MjksIDYzMSwgNjMxLCA2MzIsIDYzMCwgNjMyLCA2MzEsIDYzMywgNjMzLCA2MzQsIDYzMiwKKyAgICAgICAgNjI2LCA2MzUsIDYzNiwgNjM2LCA2MjcsIDYyNiwgNjI3LCA2MzYsIDYzNywgNjM3LCA2MjksIDYyNywgNjI5LCA2MzcsIDYzOCwgNjM4LCA2MzEsIDYyOSwgNjMxLCA2MzgsIDYzOSwgNjM5LCA2MzMsIDYzMSwKKyAgICAgICAgNjM1LCA2NDAsIDY0MSwgNjQxLCA2MzYsIDYzNSwgNjM2LCA2NDEsIDY0MiwgNjQyLCA2MzcsIDYzNiwgNjM3LCA2NDIsIDY0MywgNjQzLCA2MzgsIDYzNywgNjM4LCA2NDMsIDY0NCwgNjQ0LCA2MzksIDYzOCwKKyAgICAgICAgNjQwLCA2NDUsIDY0NiwgNjQ2LCA2NDEsIDY0MCwgNjQxLCA2NDYsIDY0NywgNjQ3LCA2NDIsIDY0MSwgNjQyLCA2NDcsIDY0OCwgNjQ4LCA2NDMsIDY0MiwgNjQzLCA2NDgsIDY0OSwgNjQ5LCA2NDQsIDY0MywKKyAgICAgICAgNjUwLCA2NTEsIDY1MiwgNjUyLCA2NTMsIDY1MCwgNjUzLCA2NTIsIDY1NCwgNjU0LCA2NTUsIDY1MywgNjU1LCA2NTQsIDY1NiwgNjU2LCA2NTcsIDY1NSwgNjU3LCA2NTYsIDY1OCwgNjU4LCA2NTksIDY1NywKKyAgICAgICAgNjUxLCA2NjAsIDY2MSwgNjYxLCA2NTIsIDY1MSwgNjUyLCA2NjEsIDY2MiwgNjYyLCA2NTQsIDY1MiwgNjU0LCA2NjIsIDY2MywgNjYzLCA2NTYsIDY1NCwgNjU2LCA2NjMsIDY2NCwgNjY0LCA2NTgsIDY1NiwKKyAgICAgICAgNjYwLCA2NjUsIDY2NiwgNjY2LCA2NjEsIDY2MCwgNjYxLCA2NjYsIDY2NywgNjY3LCA2NjIsIDY2MSwgNjYyLCA2NjcsIDY2OCwgNjY4LCA2NjMsIDY2MiwgNjYzLCA2NjgsIDY2OSwgNjY5LCA2NjQsIDY2MywKKyAgICAgICAgNjY1LCA2NzAsIDY3MSwgNjcxLCA2NjYsIDY2NSwgNjY2LCA2NzEsIDY3MiwgNjcyLCA2NjcsIDY2NiwgNjY3LCA2NzIsIDY3MywgNjczLCA2NjgsIDY2NywgNjY4LCA2NzMsIDY3NCwgNjc0LCA2NjksIDY2OCwKKyAgICAgICAgNjc1LCA2NzYsIDY3NywgNjc3LCA2NzgsIDY3NSwgNjc4LCA2NzcsIDY3OSwgNjc5LCA2ODAsIDY3OCwgNjgwLCA2NzksIDY4MSwgNjgxLCA2ODIsIDY4MCwgNjgyLCA2ODEsIDY4MywgNjgzLCA2ODQsIDY4MiwKKyAgICAgICAgNjc2LCA2ODUsIDY4NiwgNjg2LCA2NzcsIDY3NiwgNjc3LCA2ODYsIDY4NywgNjg3LCA2NzksIDY3NywgNjc5LCA2ODcsIDY4OCwgNjg4LCA2ODEsIDY3OSwgNjgxLCA2ODgsIDY4OSwgNjg5LCA2ODMsIDY4MSwKKyAgICAgICAgNjg1LCA2OTAsIDY5MSwgNjkxLCA2ODYsIDY4NSwgNjg2LCA2OTEsIDY5MiwgNjkyLCA2ODcsIDY4NiwgNjg3LCA2OTIsIDY5MywgNjkzLCA2ODgsIDY4NywgNjg4LCA2OTMsIDY5NCwgNjk0LCA2ODksIDY4OCwKKyAgICAgICAgNjkwLCA2OTUsIDY5NiwgNjk2LCA2OTEsIDY5MCwgNjkxLCA2OTYsIDY5NywgNjk3LCA2OTIsIDY5MSwgNjkyLCA2OTcsIDY5OCwgNjk4LCA2OTMsIDY5MiwgNjkzLCA2OTgsIDY5OSwgNjk5LCA2OTQsIDY5MywKKyAgICAgICAgNzAwLCA3MDEsIDcwMiwgNzAyLCA3MDMsIDcwMCwgNzAzLCA3MDIsIDcwNCwgNzA0LCA3MDUsIDcwMywgNzA1LCA3MDQsIDcwNiwgNzA2LCA3MDcsIDcwNSwgNzA3LCA3MDYsIDcwOCwgNzA4LCA3MDksIDcwNywKKyAgICAgICAgNzAxLCA3MTAsIDcxMSwgNzExLCA3MDIsIDcwMSwgNzAyLCA3MTEsIDcxMiwgNzEyLCA3MDQsIDcwMiwgNzA0LCA3MTIsIDcxMywgNzEzLCA3MDYsIDcwNCwgNzA2LCA3MTMsIDcxNCwgNzE0LCA3MDgsIDcwNiwKKyAgICAgICAgNzEwLCA3MTUsIDcxNiwgNzE2LCA3MTEsIDcxMCwgNzExLCA3MTYsIDcxNywgNzE3LCA3MTIsIDcxMSwgNzEyLCA3MTcsIDcxOCwgNzE4LCA3MTMsIDcxMiwgNzEzLCA3MTgsIDcxOSwgNzE5LCA3MTQsIDcxMywKKyAgICAgICAgNzE1LCA3MjAsIDcyMSwgNzIxLCA3MTYsIDcxNSwgNzE2LCA3MjEsIDcyMiwgNzIyLCA3MTcsIDcxNiwgNzE3LCA3MjIsIDcyMywgNzIzLCA3MTgsIDcxNywgNzE4LCA3MjMsIDcyNCwgNzI0LCA3MTksIDcxOCwKKyAgICAgICAgNzI1LCA3MjYsIDcyNywgNzI3LCA3MjgsIDcyNSwgNzI4LCA3MjcsIDcyOSwgNzI5LCA3MzAsIDcyOCwgNzMwLCA3MjksIDczMSwgNzMxLCA3MzIsIDczMCwgNzMyLCA3MzEsIDczMywgNzMzLCA3MzQsIDczMiwKKyAgICAgICAgNzI2LCA3MzUsIDczNiwgNzM2LCA3MjcsIDcyNiwgNzI3LCA3MzYsIDczNywgNzM3LCA3MjksIDcyNywgNzI5LCA3MzcsIDczOCwgNzM4LCA3MzEsIDcyOSwgNzMxLCA3MzgsIDczOSwgNzM5LCA3MzMsIDczMSwKKyAgICAgICAgNzM1LCA3NDAsIDc0MSwgNzQxLCA3MzYsIDczNSwgNzM2LCA3NDEsIDc0MiwgNzQyLCA3MzcsIDczNiwgNzM3LCA3NDIsIDc0MywgNzQzLCA3MzgsIDczNywgNzM4LCA3NDMsIDc0NCwgNzQ0LCA3MzksIDczOCwKKyAgICAgICAgNzQwLCA3NDUsIDc0NiwgNzQ2LCA3NDEsIDc0MCwgNzQxLCA3NDYsIDc0NywgNzQ3LCA3NDIsIDc0MSwgNzQyLCA3NDcsIDc0OCwgNzQ4LCA3NDMsIDc0MiwgNzQzLCA3NDgsIDc0OSwgNzQ5LCA3NDQsIDc0MywKKyAgICAgICAgNzUwLCA3NTEsIDc1MiwgNzUyLCA3NTMsIDc1MCwgNzUzLCA3NTIsIDc1NCwgNzU0LCA3NTUsIDc1MywgNzU1LCA3NTQsIDc1NiwgNzU2LCA3NTcsIDc1NSwgNzU3LCA3NTYsIDc1OCwgNzU4LCA3NTksIDc1NywKKyAgICAgICAgNzUxLCA3NjAsIDc2MSwgNzYxLCA3NTIsIDc1MSwgNzUyLCA3NjEsIDc2MiwgNzYyLCA3NTQsIDc1MiwgNzU0LCA3NjIsIDc2MywgNzYzLCA3NTYsIDc1NCwgNzU2LCA3NjMsIDc2NCwgNzY0LCA3NTgsIDc1NiwKKyAgICAgICAgNzYwLCA3NjUsIDc2NiwgNzY2LCA3NjEsIDc2MCwgNzYxLCA3NjYsIDc2NywgNzY3LCA3NjIsIDc2MSwgNzYyLCA3NjcsIDc2OCwgNzY4LCA3NjMsIDc2MiwgNzYzLCA3NjgsIDc2OSwgNzY5LCA3NjQsIDc2MywKKyAgICAgICAgNzY1LCA3NzAsIDc3MSwgNzcxLCA3NjYsIDc2NSwgNzY2LCA3NzEsIDc3MiwgNzcyLCA3NjcsIDc2NiwgNzY3LCA3NzIsIDc3MywgNzczLCA3NjgsIDc2NywgNzY4LCA3NzMsIDc3NCwgNzc0LCA3NjksIDc2OCwKKyAgICAgICAgNzc1LCA3NzYsIDc3NywgNzc3LCA3NzgsIDc3NSwgNzc4LCA3NzcsIDc3OSwgNzc5LCA3ODAsIDc3OCwgNzgwLCA3NzksIDc4MSwgNzgxLCA3ODIsIDc4MCwgNzgyLCA3ODEsIDc4MywgNzgzLCA3ODQsIDc4MiwKKyAgICAgICAgNzc2LCA3ODUsIDc4NiwgNzg2LCA3NzcsIDc3NiwgNzc3LCA3ODYsIDc4NywgNzg3LCA3NzksIDc3NywgNzc5LCA3ODcsIDc4OCwgNzg4LCA3ODEsIDc3OSwgNzgxLCA3ODgsIDc4OSwgNzg5LCA3ODMsIDc4MSwKKyAgICAgICAgNzg1LCA3OTAsIDc5MSwgNzkxLCA3ODYsIDc4NSwgNzg2LCA3OTEsIDc5MiwgNzkyLCA3ODcsIDc4NiwgNzg3LCA3OTIsIDc5MywgNzkzLCA3ODgsIDc4NywgNzg4LCA3OTMsIDc5NCwgNzk0LCA3ODksIDc4OCwKKyAgICAgICAgNzkwLCA3OTUsIDc5NiwgNzk2LCA3OTEsIDc5MCwgNzkxLCA3OTYsIDc5NywgNzk3LCA3OTIsIDc5MSwgNzkyLCA3OTcsIDc5OCwgNzk4LCA3OTMsIDc5MiwgNzkzLCA3OTgsIDc5OSwgNzk5LCA3OTQsIDc5MyB9OwpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L3NhbXBsZXMvTW9yZVRlYXBvdHMvbGludC54bWwgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvc2FtcGxlcy9Nb3JlVGVhcG90cy9saW50LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZTBlZWFkCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L3NhbXBsZXMvTW9yZVRlYXBvdHMvbGludC54bWwKQEAgLTAsMCArMSwzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGxpbnQ+Cis8L2xpbnQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L3NhbXBsZXMvTW9yZVRlYXBvdHMvcHJvamVjdC5wcm9wZXJ0aWVzIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L3NhbXBsZXMvTW9yZVRlYXBvdHMvcHJvamVjdC5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1YWQ5ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvc2FtcGxlcy9Nb3JlVGVhcG90cy9wcm9qZWN0LnByb3BlcnRpZXMKQEAgLTAsMCArMSwxNCBAQAorIyBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgQW5kcm9pZCBUb29scy4KKyMgRG8gbm90IG1vZGlmeSB0aGlzIGZpbGUgLS0gWU9VUiBDSEFOR0VTIFdJTEwgQkUgRVJBU0VEIQorIworIyBUaGlzIGZpbGUgbXVzdCBiZSBjaGVja2VkIGluIFZlcnNpb24gQ29udHJvbCBTeXN0ZW1zLgorIworIyBUbyBjdXN0b21pemUgcHJvcGVydGllcyB1c2VkIGJ5IHRoZSBBbnQgYnVpbGQgc3lzdGVtIGVkaXQKKyMgImFudC5wcm9wZXJ0aWVzIiwgYW5kIG92ZXJyaWRlIHZhbHVlcyB0byBhZGFwdCB0aGUgc2NyaXB0IHRvIHlvdXIKKyMgcHJvamVjdCBzdHJ1Y3R1cmUuCisjCisjIFRvIGVuYWJsZSBQcm9HdWFyZCB0byBzaHJpbmsgYW5kIG9iZnVzY2F0ZSB5b3VyIGNvZGUsIHVuY29tbWVudCB0aGlzIChhdmFpbGFibGUgcHJvcGVydGllczogc2RrLmRpciwgdXNlci5ob21lKToKKyNwcm9ndWFyZC5jb25maWc9JHtzZGsuZGlyfS90b29scy9wcm9ndWFyZC9wcm9ndWFyZC1hbmRyb2lkLnR4dDpwcm9ndWFyZC1wcm9qZWN0LnR4dAorCisjIFByb2plY3QgdGFyZ2V0LgordGFyZ2V0PUdvb2dsZSBJbmMuOkdvb2dsZSBBUElzOjE5CmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvc2FtcGxlcy9Nb3JlVGVhcG90cy9yZXMvZHJhd2FibGUtaGRwaS9pY19sYXVuY2hlci5wbmcgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvc2FtcGxlcy9Nb3JlVGVhcG90cy9yZXMvZHJhd2FibGUtaGRwaS9pY19sYXVuY2hlci5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWEwMWNiZgotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOC9zYW1wbGVzL01vcmVUZWFwb3RzL3Jlcy9kcmF3YWJsZS1oZHBpL2ljX2xhdW5jaGVyLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvc2FtcGxlcy9Nb3JlVGVhcG90cy9yZXMvZHJhd2FibGUtbGRwaS9pY19sYXVuY2hlci5wbmcgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvc2FtcGxlcy9Nb3JlVGVhcG90cy9yZXMvZHJhd2FibGUtbGRwaS9pY19sYXVuY2hlci5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTNkNmExOAotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOC9zYW1wbGVzL01vcmVUZWFwb3RzL3Jlcy9kcmF3YWJsZS1sZHBpL2ljX2xhdW5jaGVyLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvc2FtcGxlcy9Nb3JlVGVhcG90cy9yZXMvZHJhd2FibGUtbWRwaS9pY19sYXVuY2hlci5wbmcgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvc2FtcGxlcy9Nb3JlVGVhcG90cy9yZXMvZHJhd2FibGUtbWRwaS9pY19sYXVuY2hlci5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGY4MDg5NwotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOC9zYW1wbGVzL01vcmVUZWFwb3RzL3Jlcy9kcmF3YWJsZS1tZHBpL2ljX2xhdW5jaGVyLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvc2FtcGxlcy9Nb3JlVGVhcG90cy9yZXMvZHJhd2FibGUteGhkcGkvaWNfbGF1bmNoZXIucG5nIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L3NhbXBsZXMvTW9yZVRlYXBvdHMvcmVzL2RyYXdhYmxlLXhoZHBpL2ljX2xhdW5jaGVyLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzc5YTJiCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L3NhbXBsZXMvTW9yZVRlYXBvdHMvcmVzL2RyYXdhYmxlLXhoZHBpL2ljX2xhdW5jaGVyLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvc2FtcGxlcy9Nb3JlVGVhcG90cy9yZXMvbGF5b3V0L3dpZGdldHMueG1sIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L3NhbXBsZXMvTW9yZVRlYXBvdHMvcmVzL2xheW91dC93aWRnZXRzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNmI2NGYzCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L3NhbXBsZXMvTW9yZVRlYXBvdHMvcmVzL2xheW91dC93aWRnZXRzLnhtbApAQCAtMCwwICsxLDE3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPExpbmVhckxheW91dCB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgYW5kcm9pZDpsYXlvdXRfd2lkdGg9Im1hdGNoX3BhcmVudCIKKyAgICBhbmRyb2lkOmxheW91dF9oZWlnaHQ9Im1hdGNoX3BhcmVudCIKKyAgICBhbmRyb2lkOmdyYXZpdHk9InRvcCIKKyAgICBhbmRyb2lkOm9yaWVudGF0aW9uPSJ2ZXJ0aWNhbCIgPgorCisgICAgPFRleHRWaWV3CisgICAgICAgIGFuZHJvaWQ6aWQ9IkAraWQvdGV4dFZpZXdGUFMiCisgICAgICAgIGFuZHJvaWQ6bGF5b3V0X3dpZHRoPSJ3cmFwX2NvbnRlbnQiCisgICAgICAgIGFuZHJvaWQ6bGF5b3V0X2hlaWdodD0id3JhcF9jb250ZW50IgorICAgICAgICBhbmRyb2lkOmdyYXZpdHk9InJpZ2h0IgorICAgICAgICBhbmRyb2lkOnRleHQ9IjAuMCBGUFMiCisgICAgICAgIGFuZHJvaWQ6dGV4dEFwcGVhcmFuY2U9Ij9hbmRyb2lkOmF0dHIvdGV4dEFwcGVhcmFuY2VNZWRpdW0iCisgICAgICAgIGFuZHJvaWQ6dGV4dENvbG9yPSJAYW5kcm9pZDpjb2xvci93aGl0ZSIgLz4KKworPC9MaW5lYXJMYXlvdXQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L3NhbXBsZXMvTW9yZVRlYXBvdHMvcmVzL3ZhbHVlcy12MTEvc3R5bGVzLnhtbCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOC9zYW1wbGVzL01vcmVUZWFwb3RzL3Jlcy92YWx1ZXMtdjExL3N0eWxlcy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQxNzUyZgotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOC9zYW1wbGVzL01vcmVUZWFwb3RzL3Jlcy92YWx1ZXMtdjExL3N0eWxlcy54bWwKQEAgLTAsMCArMSwxMSBAQAorPHJlc291cmNlcz4KKworICAgIDwhLS0KKyAgICAgICAgQmFzZSBhcHBsaWNhdGlvbiB0aGVtZSBmb3IgQVBJIDExKy4gVGhpcyB0aGVtZSBjb21wbGV0ZWx5IHJlcGxhY2VzCisgICAgICAgIEFwcEJhc2VUaGVtZSBmcm9tIHJlcy92YWx1ZXMvc3R5bGVzLnhtbCBvbiBBUEkgMTErIGRldmljZXMuCisgICAgLS0+CisgICAgPHN0eWxlIG5hbWU9IkFwcEJhc2VUaGVtZSIgcGFyZW50PSJhbmRyb2lkOlRoZW1lLkhvbG8uTGlnaHQiPgorICAgICAgICA8IS0tIEFQSSAxMSB0aGVtZSBjdXN0b21pemF0aW9ucyBjYW4gZ28gaGVyZS4gLS0+CisgICAgPC9zdHlsZT4KKworPC9yZXNvdXJjZXM+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L3NhbXBsZXMvTW9yZVRlYXBvdHMvcmVzL3ZhbHVlcy12MTQvc3R5bGVzLnhtbCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOC9zYW1wbGVzL01vcmVUZWFwb3RzL3Jlcy92YWx1ZXMtdjE0L3N0eWxlcy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjIwZTAxNQotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOC9zYW1wbGVzL01vcmVUZWFwb3RzL3Jlcy92YWx1ZXMtdjE0L3N0eWxlcy54bWwKQEAgLTAsMCArMSwxMiBAQAorPHJlc291cmNlcz4KKworICAgIDwhLS0KKyAgICAgICAgQmFzZSBhcHBsaWNhdGlvbiB0aGVtZSBmb3IgQVBJIDE0Ky4gVGhpcyB0aGVtZSBjb21wbGV0ZWx5IHJlcGxhY2VzCisgICAgICAgIEFwcEJhc2VUaGVtZSBmcm9tIEJPVEggcmVzL3ZhbHVlcy9zdHlsZXMueG1sIGFuZAorICAgICAgICByZXMvdmFsdWVzLXYxMS9zdHlsZXMueG1sIG9uIEFQSSAxNCsgZGV2aWNlcy4KKyAgICAtLT4KKyAgICA8c3R5bGUgbmFtZT0iQXBwQmFzZVRoZW1lIiBwYXJlbnQ9ImFuZHJvaWQ6VGhlbWUuSG9sby5MaWdodC5EYXJrQWN0aW9uQmFyIj4KKyAgICAgICAgPCEtLSBBUEkgMTQgdGhlbWUgY3VzdG9taXphdGlvbnMgY2FuIGdvIGhlcmUuIC0tPgorICAgIDwvc3R5bGU+CisKKzwvcmVzb3VyY2VzPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOC9zYW1wbGVzL01vcmVUZWFwb3RzL3Jlcy92YWx1ZXMvc3RyaW5ncy54bWwgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvc2FtcGxlcy9Nb3JlVGVhcG90cy9yZXMvdmFsdWVzL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2NjIwYTkKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvc2FtcGxlcy9Nb3JlVGVhcG90cy9yZXMvdmFsdWVzL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNSBAQAorPHJlc291cmNlcz4KKworICAgIDxzdHJpbmcgbmFtZT0iYXBwX25hbWUiPk1vcmUgVGVhcG90czwvc3RyaW5nPgorCis8L3Jlc291cmNlcz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvc2FtcGxlcy9Nb3JlVGVhcG90cy9yZXMvdmFsdWVzL3N0eWxlcy54bWwgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvc2FtcGxlcy9Nb3JlVGVhcG90cy9yZXMvdmFsdWVzL3N0eWxlcy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGExMGNhNAotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOC9zYW1wbGVzL01vcmVUZWFwb3RzL3Jlcy92YWx1ZXMvc3R5bGVzLnhtbApAQCAtMCwwICsxLDIwIEBACis8cmVzb3VyY2VzPgorCisgICAgPCEtLQorICAgICAgICBCYXNlIGFwcGxpY2F0aW9uIHRoZW1lLCBkZXBlbmRlbnQgb24gQVBJIGxldmVsLiBUaGlzIHRoZW1lIGlzIHJlcGxhY2VkCisgICAgICAgIGJ5IEFwcEJhc2VUaGVtZSBmcm9tIHJlcy92YWx1ZXMtdlhYL3N0eWxlcy54bWwgb24gbmV3ZXIgZGV2aWNlcy4KKyAgICAtLT4KKyAgICA8c3R5bGUgbmFtZT0iQXBwQmFzZVRoZW1lIiBwYXJlbnQ9ImFuZHJvaWQ6VGhlbWUuTGlnaHQiPgorICAgICAgICA8IS0tCisgICAgICAgICAgICBUaGVtZSBjdXN0b21pemF0aW9ucyBhdmFpbGFibGUgaW4gbmV3ZXIgQVBJIGxldmVscyBjYW4gZ28gaW4KKyAgICAgICAgICAgIHJlcy92YWx1ZXMtdlhYL3N0eWxlcy54bWwsIHdoaWxlIGN1c3RvbWl6YXRpb25zIHJlbGF0ZWQgdG8KKyAgICAgICAgICAgIGJhY2t3YXJkLWNvbXBhdGliaWxpdHkgY2FuIGdvIGhlcmUuCisgICAgICAgIC0tPgorICAgIDwvc3R5bGU+CisKKyAgICA8IS0tIEFwcGxpY2F0aW9uIHRoZW1lLiAtLT4KKyAgICA8c3R5bGUgbmFtZT0iQXBwVGhlbWUiIHBhcmVudD0iQXBwQmFzZVRoZW1lIj4KKyAgICAgICAgPCEtLSBBbGwgY3VzdG9taXphdGlvbnMgdGhhdCBhcmUgTk9UIHNwZWNpZmljIHRvIGEgcGFydGljdWxhciBBUEktbGV2ZWwgY2FuIGdvIGhlcmUuIC0tPgorICAgIDwvc3R5bGU+CisKKzwvcmVzb3VyY2VzPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOC9zYW1wbGVzL01vcmVUZWFwb3RzL3NyYy9jb20vc2FtcGxlL2hlbHBlci9OREtIZWxwZXIuamF2YSBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOC9zYW1wbGVzL01vcmVUZWFwb3RzL3NyYy9jb20vc2FtcGxlL2hlbHBlci9OREtIZWxwZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODY0ZTcyCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L3NhbXBsZXMvTW9yZVRlYXBvdHMvc3JjL2NvbS9zYW1wbGUvaGVscGVyL05ES0hlbHBlci5qYXZhCkBAIC0wLDAgKzEsMjAyIEBACisvKgorICogQ29weXJpZ2h0IDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGNvbS5zYW1wbGUuaGVscGVyOworCitpbXBvcnQgamF2YS5pby5GaWxlOworaW1wb3J0IGphdmEuaW8uRmlsZUlucHV0U3RyZWFtOworCitpbXBvcnQgamF2YXgubWljcm9lZGl0aW9uLmtocm9ub3Mub3BlbmdsZXMuR0wxMDsKKworaW1wb3J0IGFuZHJvaWQuY29udGVudC5Db250ZXh0OworaW1wb3J0IGFuZHJvaWQuY29udGVudC5wbS5BcHBsaWNhdGlvbkluZm87CitpbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5CaXRtYXA7CitpbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5CaXRtYXBGYWN0b3J5OworaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuTWF0cml4OworaW1wb3J0IGFuZHJvaWQubWVkaWEuQXVkaW9NYW5hZ2VyOworaW1wb3J0IGFuZHJvaWQubWVkaWEuQXVkaW9UcmFjazsKK2ltcG9ydCBhbmRyb2lkLm9wZW5nbC5HTFV0aWxzOworaW1wb3J0IGFuZHJvaWQudXRpbC5Mb2c7CisKK3B1YmxpYyBjbGFzcyBOREtIZWxwZXIKK3sKKyAgICBwcml2YXRlIHN0YXRpYyBDb250ZXh0IGNvbnRleHQ7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgc2V0Q29udGV4dChDb250ZXh0IGMpCisgICAgeworICAgICAgICBMb2cuaSgiTkRLSGVscGVyIiwgInNldENvbnRleHQ6IiArIGMpOworICAgICAgICBjb250ZXh0ID0gYzsKKyAgICB9CisKKyAgICAvLworICAgIC8vIExvYWQgQml0bWFwCisgICAgLy8gSmF2YSBoZWxwZXIgaXMgdXNlZnVsIGRlY29kaW5nIFBORywgVElGRiBldGMgcmF0aGVyIHRoYW4gbGlua2luZyBsaWJQbmcKKyAgICAvLyBldGMgc2VwYXJhdGVseQorICAgIC8vCisgICAgcHJpdmF0ZSBpbnQgbmV4dFBPVChpbnQgaSkKKyAgICB7CisgICAgICAgIGludCBwb3QgPSAxOworICAgICAgICB3aGlsZSAocG90IDwgaSkKKyAgICAgICAgICAgIHBvdCA8PD0gMTsKKyAgICAgICAgcmV0dXJuIHBvdDsKKyAgICB9CisKKyAgICBwcml2YXRlIEJpdG1hcCBzY2FsZUJpdG1hcChCaXRtYXAgYml0bWFwVG9TY2FsZSwgZmxvYXQgbmV3V2lkdGgsIGZsb2F0IG5ld0hlaWdodCkKKyAgICB7CisgICAgICAgIGlmIChiaXRtYXBUb1NjYWxlID09IG51bGwpCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgLy8gZ2V0IHRoZSBvcmlnaW5hbCB3aWR0aCBhbmQgaGVpZ2h0CisgICAgICAgIGludCB3aWR0aCA9IGJpdG1hcFRvU2NhbGUuZ2V0V2lkdGgoKTsKKyAgICAgICAgaW50IGhlaWdodCA9IGJpdG1hcFRvU2NhbGUuZ2V0SGVpZ2h0KCk7CisgICAgICAgIC8vIGNyZWF0ZSBhIG1hdHJpeCBmb3IgdGhlIG1hbmlwdWxhdGlvbgorICAgICAgICBNYXRyaXggbWF0cml4ID0gbmV3IE1hdHJpeCgpOworCisgICAgICAgIC8vIHJlc2l6ZSB0aGUgYml0IG1hcAorICAgICAgICBtYXRyaXgucG9zdFNjYWxlKG5ld1dpZHRoIC8gd2lkdGgsIG5ld0hlaWdodCAvIGhlaWdodCk7CisKKyAgICAgICAgLy8gcmVjcmVhdGUgdGhlIG5ldyBCaXRtYXAgYW5kIHNldCBpdCBiYWNrCisgICAgICAgIHJldHVybiBCaXRtYXAuY3JlYXRlQml0bWFwKGJpdG1hcFRvU2NhbGUsIDAsIDAsIGJpdG1hcFRvU2NhbGUuZ2V0V2lkdGgoKSwKKyAgICAgICAgICAgICAgICBiaXRtYXBUb1NjYWxlLmdldEhlaWdodCgpLCBtYXRyaXgsIHRydWUpOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGxvYWRUZXh0dXJlKFN0cmluZyBwYXRoKQorICAgIHsKKyAgICAgICAgQml0bWFwIGJpdG1hcCA9IG51bGw7CisgICAgICAgIHRyeQorICAgICAgICB7CisgICAgICAgICAgICBTdHJpbmcgc3RyID0gcGF0aDsKKyAgICAgICAgICAgIGlmICghcGF0aC5zdGFydHNXaXRoKCIvIikpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc3RyID0gIi8iICsgcGF0aDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgRmlsZSBmaWxlID0gbmV3IEZpbGUoY29udGV4dC5nZXRFeHRlcm5hbEZpbGVzRGlyKG51bGwpLCBzdHIpOworICAgICAgICAgICAgaWYgKGZpbGUuY2FuUmVhZCgpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGJpdG1hcCA9IEJpdG1hcEZhY3RvcnkuZGVjb2RlU3RyZWFtKG5ldyBGaWxlSW5wdXRTdHJlYW0oZmlsZSkpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgYml0bWFwID0gQml0bWFwRmFjdG9yeS5kZWNvZGVTdHJlYW0oY29udGV4dC5nZXRSZXNvdXJjZXMoKS5nZXRBc3NldHMoKQorICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW4ocGF0aCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gTWF0cml4IG1hdHJpeCA9IG5ldyBNYXRyaXgoKTsKKyAgICAgICAgICAgIC8vIC8vIHJlc2l6ZSB0aGUgYml0IG1hcAorICAgICAgICAgICAgLy8gbWF0cml4LnBvc3RTY2FsZSgtMUYsIDFGKTsKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyAvLyByZWNyZWF0ZSB0aGUgbmV3IEJpdG1hcCBhbmQgc2V0IGl0IGJhY2sKKyAgICAgICAgICAgIC8vIGJpdG1hcCA9IEJpdG1hcC5jcmVhdGVCaXRtYXAoYml0bWFwLCAwLCAwLCBiaXRtYXAuZ2V0V2lkdGgoKSwKKyAgICAgICAgICAgIC8vIGJpdG1hcC5nZXRIZWlnaHQoKSwgbWF0cml4LCB0cnVlKTsKKworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkKKyAgICAgICAgeworICAgICAgICAgICAgTG9nLncoIk5ES0hlbHBlciIsICJDb3VuZG4ndCBsb2FkIGEgZmlsZToiICsgcGF0aCk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBpZiAoYml0bWFwICE9IG51bGwpCisgICAgICAgIHsKKyAgICAgICAgICAgIEdMVXRpbHMudGV4SW1hZ2UyRChHTDEwLkdMX1RFWFRVUkVfMkQsIDAsIGJpdG1hcCwgMCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICB9CisKKyAgICBwdWJsaWMgQml0bWFwIG9wZW5CaXRtYXAoU3RyaW5nIHBhdGgsIGJvb2xlYW4gaVNjYWxlUE9UKQorICAgIHsKKyAgICAgICAgQml0bWFwIGJpdG1hcCA9IG51bGw7CisgICAgICAgIHRyeQorICAgICAgICB7CisgICAgICAgICAgICBiaXRtYXAgPSBCaXRtYXBGYWN0b3J5LmRlY29kZVN0cmVhbShjb250ZXh0LmdldFJlc291cmNlcygpLmdldEFzc2V0cygpCisgICAgICAgICAgICAgICAgICAgIC5vcGVuKHBhdGgpKTsKKyAgICAgICAgICAgIGlmIChpU2NhbGVQT1QpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50IG9yaWdpbmFsV2lkdGggPSBnZXRCaXRtYXBXaWR0aChiaXRtYXApOworICAgICAgICAgICAgICAgIGludCBvcmlnaW5hbEhlaWdodCA9IGdldEJpdG1hcEhlaWdodChiaXRtYXApOworICAgICAgICAgICAgICAgIGludCB3aWR0aCA9IG5leHRQT1Qob3JpZ2luYWxXaWR0aCk7CisgICAgICAgICAgICAgICAgaW50IGhlaWdodCA9IG5leHRQT1Qob3JpZ2luYWxIZWlnaHQpOworICAgICAgICAgICAgICAgIGlmIChvcmlnaW5hbFdpZHRoICE9IHdpZHRoIHx8IG9yaWdpbmFsSGVpZ2h0ICE9IGhlaWdodCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIC8vIFNjYWxlIGl0CisgICAgICAgICAgICAgICAgICAgIGJpdG1hcCA9IHNjYWxlQml0bWFwKGJpdG1hcCwgd2lkdGgsIGhlaWdodCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKQorICAgICAgICB7CisgICAgICAgICAgICBMb2cudygiTkRLSGVscGVyIiwgIkNvdW5kbid0IGxvYWQgYSBmaWxlOiIgKyBwYXRoKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBiaXRtYXA7CisgICAgfQorCisgICAgcHVibGljIGludCBnZXRCaXRtYXBXaWR0aChCaXRtYXAgYm1wKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGJtcC5nZXRXaWR0aCgpOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0Qml0bWFwSGVpZ2h0KEJpdG1hcCBibXApCisgICAgeworICAgICAgICByZXR1cm4gYm1wLmdldEhlaWdodCgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGdldEJpdG1hcFBpeGVscyhCaXRtYXAgYm1wLCBpbnRbXSBwaXhlbHMpCisgICAgeworICAgICAgICBpbnQgdyA9IGJtcC5nZXRXaWR0aCgpOworICAgICAgICBpbnQgaCA9IGJtcC5nZXRIZWlnaHQoKTsKKyAgICAgICAgYm1wLmdldFBpeGVscyhwaXhlbHMsIDAsIHcsIDAsIDAsIHcsIGgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGNsb3NlQml0bWFwKEJpdG1hcCBibXApCisgICAgeworICAgICAgICBibXAucmVjeWNsZSgpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldE5hdGl2ZUxpYnJhcnlEaXJlY3RvcnkoQ29udGV4dCBhcHBDb250ZXh0KQorICAgIHsKKyAgICAgICAgQXBwbGljYXRpb25JbmZvIGFpID0gY29udGV4dC5nZXRBcHBsaWNhdGlvbkluZm8oKTsKKworICAgICAgICBMb2cudygiTkRLSGVscGVyIiwgImFpLm5hdGl2ZUxpYnJhcnlEaXI6IiArIGFpLm5hdGl2ZUxpYnJhcnlEaXIpOworCisgICAgICAgIGlmICgoYWkuZmxhZ3MgJiBBcHBsaWNhdGlvbkluZm8uRkxBR19VUERBVEVEX1NZU1RFTV9BUFApICE9IDAKKyAgICAgICAgICAgICAgICB8fCAoYWkuZmxhZ3MgJiBBcHBsaWNhdGlvbkluZm8uRkxBR19TWVNURU0pID09IDApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBhaS5uYXRpdmVMaWJyYXJ5RGlyOworICAgICAgICB9CisgICAgICAgIHJldHVybiAiL3N5c3RlbS9saWIvIjsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldE5hdGl2ZUF1ZGlvQnVmZmVyU2l6ZSgpCisgICAgeworICAgICAgICBpbnQgU0RLX0lOVCA9IGFuZHJvaWQub3MuQnVpbGQuVkVSU0lPTi5TREtfSU5UOworICAgICAgICBpZiAoU0RLX0lOVCA+PSAxNykKKyAgICAgICAgeworICAgICAgICAgICAgQXVkaW9NYW5hZ2VyIGFtID0gKEF1ZGlvTWFuYWdlcikgY29udGV4dAorICAgICAgICAgICAgICAgICAgICAuZ2V0U3lzdGVtU2VydmljZShDb250ZXh0LkFVRElPX1NFUlZJQ0UpOworICAgICAgICAgICAgU3RyaW5nIGZyYW1lc1BlckJ1ZmZlciA9IGFtCisgICAgICAgICAgICAgICAgICAgIC5nZXRQcm9wZXJ0eShBdWRpb01hbmFnZXIuUFJPUEVSVFlfT1VUUFVUX0ZSQU1FU19QRVJfQlVGRkVSKTsKKyAgICAgICAgICAgIHJldHVybiBJbnRlZ2VyLnBhcnNlSW50KGZyYW1lc1BlckJ1ZmZlcik7CisgICAgICAgIH0gZWxzZQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0TmF0aXZlQXVkaW9TYW1wbGVSYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBBdWRpb1RyYWNrLmdldE5hdGl2ZU91dHB1dFNhbXBsZVJhdGUoQXVkaW9NYW5hZ2VyLlNUUkVBTV9TWVNURU0pOworCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L3NhbXBsZXMvTW9yZVRlYXBvdHMvc3JjL2NvbS9zYW1wbGUvbW9yZXRlYXBvdHMvTW9yZVRlYXBvdHNBcHBsaWNhdGlvbi5qYXZhIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L3NhbXBsZXMvTW9yZVRlYXBvdHMvc3JjL2NvbS9zYW1wbGUvbW9yZXRlYXBvdHMvTW9yZVRlYXBvdHNBcHBsaWNhdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzN2Q3NWEKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTgvc2FtcGxlcy9Nb3JlVGVhcG90cy9zcmMvY29tL3NhbXBsZS9tb3JldGVhcG90cy9Nb3JlVGVhcG90c0FwcGxpY2F0aW9uLmphdmEKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBjb20uc2FtcGxlLm1vcmV0ZWFwb3RzOworCitpbXBvcnQgamF2YXgubWljcm9lZGl0aW9uLmtocm9ub3Mub3BlbmdsZXMuR0wxMDsKKworaW1wb3J0IGNvbS5zYW1wbGUuaGVscGVyLk5ES0hlbHBlcjsKKworaW1wb3J0IGFuZHJvaWQuYXBwLkFwcGxpY2F0aW9uOworaW1wb3J0IGFuZHJvaWQuY29udGVudC5Db250ZXh0OworaW1wb3J0IGFuZHJvaWQuY29udGVudC5wbS5BcHBsaWNhdGlvbkluZm87CitpbXBvcnQgYW5kcm9pZC5jb250ZW50LnBtLlBhY2thZ2VNYW5hZ2VyOworaW1wb3J0IGFuZHJvaWQuY29udGVudC5wbS5QYWNrYWdlTWFuYWdlci5OYW1lTm90Rm91bmRFeGNlcHRpb247CitpbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5CaXRtYXA7CitpbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5CaXRtYXBGYWN0b3J5OworaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuTWF0cml4OworaW1wb3J0IGFuZHJvaWQub3BlbmdsLkdMVXRpbHM7CitpbXBvcnQgYW5kcm9pZC51dGlsLkxvZzsKK2ltcG9ydCBhbmRyb2lkLndpZGdldC5Ub2FzdDsKKworcHVibGljIGNsYXNzIE1vcmVUZWFwb3RzQXBwbGljYXRpb24gZXh0ZW5kcyBBcHBsaWNhdGlvbiB7CisgICAgcHJpdmF0ZSBzdGF0aWMgQ29udGV4dCBjb250ZXh0OworICAgIHB1YmxpYyB2b2lkIG9uQ3JlYXRlKCl7CisgICAgICAgIGNvbnRleHQ9Z2V0QXBwbGljYXRpb25Db250ZXh0KCk7CisgICAgICAgIE5ES0hlbHBlci5zZXRDb250ZXh0KGNvbnRleHQpOworICAgICAgICBMb2cudygibmF0aXZlLWFjdGl2aXR5IiwgIm9uQ3JlYXRlIik7CisKKyAgICAgICAgZmluYWwgUGFja2FnZU1hbmFnZXIgcG0gPSBnZXRBcHBsaWNhdGlvbkNvbnRleHQoKS5nZXRQYWNrYWdlTWFuYWdlcigpOworICAgICAgICBBcHBsaWNhdGlvbkluZm8gYWk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBhaSA9IHBtLmdldEFwcGxpY2F0aW9uSW5mbyggdGhpcy5nZXRQYWNrYWdlTmFtZSgpLCAwKTsKKyAgICAgICAgfSBjYXRjaCAoZmluYWwgTmFtZU5vdEZvdW5kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGFpID0gbnVsbDsKKyAgICAgICAgfQorICAgICAgICBmaW5hbCBTdHJpbmcgYXBwbGljYXRpb25OYW1lID0gKFN0cmluZykgKGFpICE9IG51bGwgPyBwbS5nZXRBcHBsaWNhdGlvbkxhYmVsKGFpKSA6ICIodW5rbm93bikiKTsKKyAgICAgICAgVG9hc3QubWFrZVRleHQodGhpcywgYXBwbGljYXRpb25OYW1lLCBUb2FzdC5MRU5HVEhfU0hPUlQpLnNob3coKTsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOC9zYW1wbGVzL01vcmVUZWFwb3RzL3NyYy9jb20vc2FtcGxlL21vcmV0ZWFwb3RzL01vcmVUZWFwb3RzTmF0aXZlQWN0aXZpdHkuamF2YSBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOC9zYW1wbGVzL01vcmVUZWFwb3RzL3NyYy9jb20vc2FtcGxlL21vcmV0ZWFwb3RzL01vcmVUZWFwb3RzTmF0aXZlQWN0aXZpdHkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNGZlMWJhCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE4L3NhbXBsZXMvTW9yZVRlYXBvdHMvc3JjL2NvbS9zYW1wbGUvbW9yZXRlYXBvdHMvTW9yZVRlYXBvdHNOYXRpdmVBY3Rpdml0eS5qYXZhCkBAIC0wLDAgKzEsMTQ1IEBACisvKgorICogQ29weXJpZ2h0IDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGNvbS5zYW1wbGUubW9yZXRlYXBvdHM7CisKK2ltcG9ydCBhbmRyb2lkLmFwcC5OYXRpdmVBY3Rpdml0eTsKK2ltcG9ydCBhbmRyb2lkLmNvbnRlbnQucmVzLkNvbmZpZ3VyYXRpb247CitpbXBvcnQgYW5kcm9pZC5vcy5CdW5kbGU7CitpbXBvcnQgYW5kcm9pZC51dGlsLkxvZzsKK2ltcG9ydCBhbmRyb2lkLnZpZXcuR3Jhdml0eTsKK2ltcG9ydCBhbmRyb2lkLnZpZXcuTGF5b3V0SW5mbGF0ZXI7CitpbXBvcnQgYW5kcm9pZC52aWV3LlZpZXc7CitpbXBvcnQgYW5kcm9pZC52aWV3LlZpZXdHcm91cC5NYXJnaW5MYXlvdXRQYXJhbXM7CitpbXBvcnQgYW5kcm9pZC52aWV3LldpbmRvd01hbmFnZXIuTGF5b3V0UGFyYW1zOworaW1wb3J0IGFuZHJvaWQud2lkZ2V0LkxpbmVhckxheW91dDsKK2ltcG9ydCBhbmRyb2lkLndpZGdldC5Qb3B1cFdpbmRvdzsKK2ltcG9ydCBhbmRyb2lkLndpZGdldC5UZXh0VmlldzsKKworcHVibGljIGNsYXNzIE1vcmVUZWFwb3RzTmF0aXZlQWN0aXZpdHkgZXh0ZW5kcyBOYXRpdmVBY3Rpdml0eSB7CisgICAgQE92ZXJyaWRlCisgICAgcHJvdGVjdGVkIHZvaWQgb25DcmVhdGUoQnVuZGxlIHNhdmVkSW5zdGFuY2VTdGF0ZSkgeworICAgICAgICBzdXBlci5vbkNyZWF0ZShzYXZlZEluc3RhbmNlU3RhdGUpOworICAgICAgICAvL0hpZGUgdG9vbGJhcgorICAgICAgICBpbnQgU0RLX0lOVCA9IGFuZHJvaWQub3MuQnVpbGQuVkVSU0lPTi5TREtfSU5UOworICAgICAgICBMb2cuaSgiT25DcmVhdGUiLCAiT25DcmVhdGUhISEiKTsKKyAgICAgICAgaWYoU0RLX0lOVCA+PSAxOSkKKyAgICAgICAgeworICAgICAgICAgICAgc2V0SW1tZXJzaXZlU3RpY2t5KCk7CisgICAgICAgICAgICBWaWV3IGRlY29yVmlldyA9IGdldFdpbmRvdygpLmdldERlY29yVmlldygpOworICAgICAgICAgICAgZGVjb3JWaWV3LnNldE9uU3lzdGVtVWlWaXNpYmlsaXR5Q2hhbmdlTGlzdGVuZXIKKyAgICAgICAgICAgICAgICAgICAgKG5ldyBWaWV3Lk9uU3lzdGVtVWlWaXNpYmlsaXR5Q2hhbmdlTGlzdGVuZXIoKSB7CisgICAgICAgICAgICAgICAgQE92ZXJyaWRlCisgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgb25TeXN0ZW1VaVZpc2liaWxpdHlDaGFuZ2UoaW50IHZpc2liaWxpdHkpIHsKKyAgICAgICAgICAgICAgICAgICAgc2V0SW1tZXJzaXZlU3RpY2t5KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgIH0KKworICAgIHByb3RlY3RlZCB2b2lkIG9uUmVzdW1lKCkgeworICAgICAgICBzdXBlci5vblJlc3VtZSgpOworCisgICAgICAgIC8vSGlkZSB0b29sYmFyCisgICAgICAgIGludCBTREtfSU5UID0gYW5kcm9pZC5vcy5CdWlsZC5WRVJTSU9OLlNES19JTlQ7CisgICAgICAgIGlmKFNES19JTlQgPj0gMTEgJiYgU0RLX0lOVCA8IDE0KQorICAgICAgICB7CisgICAgICAgICAgICBnZXRXaW5kb3coKS5nZXREZWNvclZpZXcoKS5zZXRTeXN0ZW1VaVZpc2liaWxpdHkoVmlldy5TVEFUVVNfQkFSX0hJRERFTik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZihTREtfSU5UID49IDE0ICYmIFNES19JTlQgPCAxOSkKKyAgICAgICAgeworICAgICAgICAgICAgZ2V0V2luZG93KCkuZ2V0RGVjb3JWaWV3KCkuc2V0U3lzdGVtVWlWaXNpYmlsaXR5KFZpZXcuU1lTVEVNX1VJX0ZMQUdfRlVMTFNDUkVFTiB8IFZpZXcuU1lTVEVNX1VJX0ZMQUdfTE9XX1BST0ZJTEUpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYoU0RLX0lOVCA+PSAxOSkKKyAgICAgICAgeworICAgICAgICAgICAgc2V0SW1tZXJzaXZlU3RpY2t5KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBvblBhdXNlKCkKKyAgICB7CisgICAgICAgIHN1cGVyLm9uUGF1c2UoKTsKKyAgICAgICAgaWYgKF9wb3B1cFdpbmRvdyAhPSBudWxsKSB7CisKKyAgICAgICAgICAgIF9wb3B1cFdpbmRvdy5kaXNtaXNzKCk7CisgICAgICAgICAgICBfcG9wdXBXaW5kb3cgPSBudWxsOworICAgICAgICB9CisgICAgfQorICAgIC8vIE91ciBwb3B1cCB3aW5kb3csIHlvdSB3aWxsIGNhbGwgaXQgZnJvbSB5b3VyIEMvQysrIGNvZGUgbGF0ZXIKKworICAgIHZvaWQgc2V0SW1tZXJzaXZlU3RpY2t5KCkgeworICAgICAgICBWaWV3IGRlY29yVmlldyA9IGdldFdpbmRvdygpLmdldERlY29yVmlldygpOworICAgICAgICBkZWNvclZpZXcuc2V0U3lzdGVtVWlWaXNpYmlsaXR5KFZpZXcuU1lTVEVNX1VJX0ZMQUdfRlVMTFNDUkVFTgorICAgICAgICAgICAgICAgIHwgVmlldy5TWVNURU1fVUlfRkxBR19ISURFX05BVklHQVRJT04KKyAgICAgICAgICAgICAgICB8IFZpZXcuU1lTVEVNX1VJX0ZMQUdfSU1NRVJTSVZFX1NUSUNLWQorICAgICAgICAgICAgICAgIHwgVmlldy5TWVNURU1fVUlfRkxBR19MQVlPVVRfRlVMTFNDUkVFTgorICAgICAgICAgICAgICAgIHwgVmlldy5TWVNURU1fVUlfRkxBR19MQVlPVVRfSElERV9OQVZJR0FUSU9OCisgICAgICAgICAgICAgICAgfCBWaWV3LlNZU1RFTV9VSV9GTEFHX0xBWU9VVF9TVEFCTEUpOworICAgIH0KKworICAgIE1vcmVUZWFwb3RzTmF0aXZlQWN0aXZpdHkgX2FjdGl2aXR5OworICAgIFBvcHVwV2luZG93IF9wb3B1cFdpbmRvdzsKKyAgICBUZXh0VmlldyBfbGFiZWw7CisKKyAgICBwdWJsaWMgdm9pZCBzaG93VUkoKQorICAgIHsKKyAgICAgICAgaWYoIF9wb3B1cFdpbmRvdyAhPSBudWxsICkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBfYWN0aXZpdHkgPSB0aGlzOworCisgICAgICAgIHRoaXMucnVuT25VaVRocmVhZChuZXcgUnVubmFibGUoKSAgeworICAgICAgICAgICAgQE92ZXJyaWRlCisgICAgICAgICAgICBwdWJsaWMgdm9pZCBydW4oKSAgeworICAgICAgICAgICAgICAgIExheW91dEluZmxhdGVyIGxheW91dEluZmxhdGVyCisgICAgICAgICAgICAgICAgPSAoTGF5b3V0SW5mbGF0ZXIpZ2V0QmFzZUNvbnRleHQoKQorICAgICAgICAgICAgICAgIC5nZXRTeXN0ZW1TZXJ2aWNlKExBWU9VVF9JTkZMQVRFUl9TRVJWSUNFKTsKKyAgICAgICAgICAgICAgICBWaWV3IHBvcHVwVmlldyA9IGxheW91dEluZmxhdGVyLmluZmxhdGUoUi5sYXlvdXQud2lkZ2V0cywgbnVsbCk7CisgICAgICAgICAgICAgICAgX3BvcHVwV2luZG93ID0gbmV3IFBvcHVwV2luZG93KAorICAgICAgICAgICAgICAgICAgICAgICAgcG9wdXBWaWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgTGF5b3V0UGFyYW1zLldSQVBfQ09OVEVOVCwKKyAgICAgICAgICAgICAgICAgICAgICAgIExheW91dFBhcmFtcy5XUkFQX0NPTlRFTlQpOworCisgICAgICAgICAgICAgICAgTGluZWFyTGF5b3V0IG1haW5MYXlvdXQgPSBuZXcgTGluZWFyTGF5b3V0KF9hY3Rpdml0eSk7CisgICAgICAgICAgICAgICAgTWFyZ2luTGF5b3V0UGFyYW1zIHBhcmFtcyA9IG5ldyBNYXJnaW5MYXlvdXRQYXJhbXMoTGF5b3V0UGFyYW1zLldSQVBfQ09OVEVOVCwgTGF5b3V0UGFyYW1zLldSQVBfQ09OVEVOVCk7CisgICAgICAgICAgICAgICAgcGFyYW1zLnNldE1hcmdpbnMoMCwgMCwgMCwgMCk7CisgICAgICAgICAgICAgICAgX2FjdGl2aXR5LnNldENvbnRlbnRWaWV3KG1haW5MYXlvdXQsIHBhcmFtcyk7CisKKyAgICAgICAgICAgICAgICAvLyBTaG93IG91ciBVSSBvdmVyIE5hdGl2ZUFjdGl2aXR5IHdpbmRvdworICAgICAgICAgICAgICAgIF9wb3B1cFdpbmRvdy5zaG93QXRMb2NhdGlvbihtYWluTGF5b3V0LCBHcmF2aXR5LlRPUCB8IEdyYXZpdHkuTEVGVCwgMTAsIDEwKTsKKyAgICAgICAgICAgICAgICBfcG9wdXBXaW5kb3cudXBkYXRlKCk7CisKKyAgICAgICAgICAgICAgICBfbGFiZWwgPSAoVGV4dFZpZXcpcG9wdXBWaWV3LmZpbmRWaWV3QnlJZChSLmlkLnRleHRWaWV3RlBTKTsKKworICAgICAgICAgICAgfX0pOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHVwZGF0ZUZQUyhmaW5hbCBmbG9hdCBmRlBTKQorICAgIHsKKyAgICAgICAgaWYoIF9sYWJlbCA9PSBudWxsICkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBfYWN0aXZpdHkgPSB0aGlzOworICAgICAgICB0aGlzLnJ1bk9uVWlUaHJlYWQobmV3IFJ1bm5hYmxlKCkgIHsKKyAgICAgICAgICAgIEBPdmVycmlkZQorICAgICAgICAgICAgcHVibGljIHZvaWQgcnVuKCkgIHsKKyAgICAgICAgICAgICAgICBfbGFiZWwuc2V0VGV4dChTdHJpbmcuZm9ybWF0KCIlMi4yZiBGUFMiLCBmRlBTKSk7CisgICAgICAgICAgICB9fSk7CisgICAgfQorfQorCisKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOS9hcmNoLWFybS9zeW1ib2xzL2xpYmMuc28uZnVuY3Rpb25zLnR4dCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOS9hcmNoLWFybS9zeW1ib2xzL2xpYmMuc28uZnVuY3Rpb25zLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjMxMDM4Ci0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE5L2FyY2gtYXJtL3N5bWJvbHMvbGliYy5zby5mdW5jdGlvbnMudHh0CkBAIC0wLDAgKzEsMTA4NiBAQAorTUQ1X0ZpbmFsCitNRDVfSW5pdAorTUQ1X1VwZGF0ZQorU0hBMUZpbmFsCitTSEExSW5pdAorU0hBMVRyYW5zZm9ybQorU0hBMVVwZGF0ZQorX1Vud2luZF9CYWNrdHJhY2UKK19VbndpbmRfQ29tcGxldGUKK19VbndpbmRfRGVsZXRlRXhjZXB0aW9uCitfVW53aW5kX0ZvcmNlZFVud2luZAorX1Vud2luZF9HZXRDRkEKK19VbndpbmRfR2V0RGF0YVJlbEJhc2UKK19VbndpbmRfR2V0TGFuZ3VhZ2VTcGVjaWZpY0RhdGEKK19VbndpbmRfR2V0UmVnaW9uU3RhcnQKK19VbndpbmRfR2V0VGV4dFJlbEJhc2UKK19VbndpbmRfUmFpc2VFeGNlcHRpb24KK19VbndpbmRfUmVzdW1lCitfVW53aW5kX1Jlc3VtZV9vcl9SZXRocm93CitfVW53aW5kX1ZSU19HZXQKK19VbndpbmRfVlJTX1BvcAorX1Vud2luZF9WUlNfU2V0CitfX19VbndpbmRfQmFja3RyYWNlCitfX19VbndpbmRfRm9yY2VkVW53aW5kCitfX19VbndpbmRfUmFpc2VFeGNlcHRpb24KK19fX1Vud2luZF9SZXN1bWUKK19fX1Vud2luZF9SZXN1bWVfb3JfUmV0aHJvdworX19hZGRkZjMKK19fYWRkc2YzCitfX2FlYWJpX2F0ZXhpdAorX19hZWFiaV9jZGNtcGVxCitfX2FlYWJpX2NkY21wbGUKK19fYWVhYmlfY2RyY21wbGUKK19fYWVhYmlfZDJmCitfX2FlYWJpX2QyaXoKK19fYWVhYmlfZGFkZAorX19hZWFiaV9kY21wZXEKK19fYWVhYmlfZGNtcGdlCitfX2FlYWJpX2RjbXBndAorX19hZWFiaV9kY21wbGUKK19fYWVhYmlfZGNtcGx0CitfX2FlYWJpX2RjbXB1bgorX19hZWFiaV9kZGl2CitfX2FlYWJpX2RtdWwKK19fYWVhYmlfZHJzdWIKK19fYWVhYmlfZHN1YgorX19hZWFiaV9mMmQKK19fYWVhYmlfZjJpegorX19hZWFiaV9mYWRkCitfX2FlYWJpX2ZjbXB1bgorX19hZWFiaV9mZGl2CitfX2FlYWJpX2ZtdWwKK19fYWVhYmlfZnJzdWIKK19fYWVhYmlfZnN1YgorX19hZWFiaV9pMmQKK19fYWVhYmlfaTJmCitfX2FlYWJpX2lkaXYKK19fYWVhYmlfaWRpdjAKK19fYWVhYmlfaWRpdm1vZAorX19hZWFiaV9sMmQKK19fYWVhYmlfbDJmCitfX2FlYWJpX2xkaXYwCitfX2FlYWJpX2xkaXZtb2QKK19fYWVhYmlfbG11bAorX19hZWFiaV9tZW1jbHIKK19fYWVhYmlfbWVtY2xyNAorX19hZWFiaV9tZW1jbHI4CitfX2FlYWJpX21lbWNweQorX19hZWFiaV9tZW1jcHk0CitfX2FlYWJpX21lbWNweTgKK19fYWVhYmlfbWVtbW92ZQorX19hZWFiaV9tZW1tb3ZlNAorX19hZWFiaV9tZW1tb3ZlOAorX19hZWFiaV9tZW1zZXQKK19fYWVhYmlfbWVtc2V0NAorX19hZWFiaV9tZW1zZXQ4CitfX2FlYWJpX3VpMmQKK19fYWVhYmlfdWkyZgorX19hZWFiaV91aWRpdgorX19hZWFiaV91aWRpdm1vZAorX19hZWFiaV91bDJkCitfX2FlYWJpX3VsMmYKK19fYWVhYmlfdWxkaXZtb2QKK19fYWVhYmlfdW53aW5kX2NwcF9wcjAKK19fYWVhYmlfdW53aW5kX2NwcF9wcjEKK19fYWVhYmlfdW53aW5kX2NwcF9wcjIKK19fYXJjNF9nZXRieXRlCitfX2Fzc2VydAorX19hc3NlcnQyCitfX2F0ZXhpdF9yZWdpc3Rlcl9jbGVhbnVwCitfX2F0b21pY19jbXB4Y2hnCitfX2F0b21pY19kZWMKK19fYXRvbWljX2luYworX19hdG9taWNfc3dhcAorX19iNjRfbnRvcAorX19iNjRfcHRvbgorX19iaW9uaWNfY2xvbmUKK19fYmlvbmljX2Nsb25lX2VudHJ5CitfX2Jpb25pY19saWJnY2NfY29tcGF0X2hvb2tzCitfX2JyaworX19jbXBkZjIKK19fY3hhX2F0ZXhpdAorX19jeGFfZmluYWxpemUKK19fZGl2MAorX19kaXZkZjMKK19fZGl2ZGkzCitfX2RpdnNmMworX19kaXZzaTMKK19fZG5fY29tcAorX19kbl9jb3VudF9sYWJlbHMKK19fZG5fc2tpcG5hbWUKK19fZG9yYW5kNDgKK19fZHRvYQorX19lcWRmMgorX19lcnJubworX19ldkFkZFRpbWUKK19fZXZDbXBUaW1lCitfX2V2Q29uc0lvdmVjCitfX2V2Q29uc1RpbWUKK19fZXZOb3dUaW1lCitfX2V2U3ViVGltZQorX19ldlRpbWVTcGVjCitfX2V2VGltZVZhbAorX19ldlVUQ1RpbWUKK19fZXh0ZW5kc2ZkZjIKK19fZmNudGwKK19fZmNudGw2NAorX19maW5kZW52CitfX2ZpeGRmc2kKK19fZml4c2ZzaQorX19mbG9hdGRpZGYKK19fZmxvYXRkaXNmCitfX2Zsb2F0c2lkZgorX19mbG9hdHNpc2YKK19fZmxvYXR1bmRpZGYKK19fZmxvYXR1bmRpc2YKK19fZmxvYXR1bnNpZGYKK19fZmxvYXR1bnNpc2YKK19fZm9yaworX19mcF9ucXVlcnkKK19fZnBfcXVlcnkKK19fZnJlbW92ZWxvY2sKK19fZnN0YXRmczY0CitfX2Z1dGV4X3N5c2NhbGwzCitfX2Z1dGV4X3N5c2NhbGw0CitfX2Z1dGV4X3dhaXQKK19fZnV0ZXhfd2FpdF9leAorX19mdXRleF93YWtlCitfX2Z1dGV4X3dha2VfZXgKK19fZ2VkZjIKK19fZ2V0X2hfZXJybm8KK19fZ2V0X3BjCitfX2dldF9yZXNfY2FjaGUKK19fZ2V0X3NwCitfX2dldF9zdGFja19iYXNlCitfX2dldF90aHJlYWQKK19fZ2V0Y3dkCitfX2dldHByaW9yaXR5CitfX2dudV9VbndpbmRfQmFja3RyYWNlCitfX2dudV9VbndpbmRfRmluZF9leGlkeAorX19nbnVfVW53aW5kX0ZvcmNlZFVud2luZAorX19nbnVfVW53aW5kX1JhaXNlRXhjZXB0aW9uCitfX2dudV9VbndpbmRfUmVzdG9yZV9WRlAKK19fZ251X1Vud2luZF9SZXN0b3JlX1ZGUF9ECitfX2dudV9VbndpbmRfUmVzdG9yZV9WRlBfRF8xNl90b18zMQorX19nbnVfVW53aW5kX1Jlc3RvcmVfV01NWEMKK19fZ251X1Vud2luZF9SZXN0b3JlX1dNTVhECitfX2dudV9VbndpbmRfUmVzdW1lCitfX2dudV9VbndpbmRfUmVzdW1lX29yX1JldGhyb3cKK19fZ251X1Vud2luZF9TYXZlX1ZGUAorX19nbnVfVW53aW5kX1NhdmVfVkZQX0QKK19fZ251X1Vud2luZF9TYXZlX1ZGUF9EXzE2X3RvXzMxCitfX2dudV9VbndpbmRfU2F2ZV9XTU1YQworX19nbnVfVW53aW5kX1NhdmVfV01NWEQKK19fZ251X2xkaXZtb2RfaGVscGVyCitfX2dudV91bGRpdm1vZF9oZWxwZXIKK19fZ251X3Vud2luZF9leGVjdXRlCitfX2dudV91bndpbmRfZnJhbWUKK19fZ3RkZjIKK19faG9zdGFsaWFzCitfX2luaXRfdGxzCitfX2lvY3RsCitfX2xlZGYyCitfX2xpYmNfYW5kcm9pZF9hYm9ydAorX19saWJjX2FuZHJvaWRfbG9nX2Fzc2VydAorX19saWJjX2FuZHJvaWRfbG9nX3ByaW50CitfX2xpYmNfYW5kcm9pZF9sb2dfdnByaW50CitfX2xpYmNfZmluaQorX19saWJjX2luaXQKK19fbGliY19pbml0X2NvbW1vbgorX19saWJjX3ByZWluaXQKK19fbGxzZWVrCitfX2xvY19hdG9uCitfX2xvY19udG9hCitfX2x0ZGYyCitfX21lbWNtcDE2CitfX21tYXAyCitfX211bGRmMworX19tdWxkaTMKK19fbXVsc2YzCitfX25lZGYyCitfX25zX2Zvcm1hdF90dGwKK19fbnNfZ2V0MTYKK19fbnNfZ2V0MzIKK19fbnNfaW5pdHBhcnNlCitfX25zX21ha2VjYW5vbgorX19uc19tc2dfZ2V0ZmxhZworX19uc19uYW1lX2NvbXByZXNzCitfX25zX25hbWVfbnRvbAorX19uc19uYW1lX250b3AKK19fbnNfbmFtZV9wYWNrCitfX25zX25hbWVfcHRvbgorX19uc19uYW1lX3JvbGxiYWNrCitfX25zX25hbWVfc2tpcAorX19uc19uYW1lX3VuY29tcHJlc3MKK19fbnNfbmFtZV91bnBhY2sKK19fbnNfcGFyc2VycgorX19uc19wdXQxNgorX19uc19wdXQzMgorX19uc19zYW1lbmFtZQorX19uc19za2lwcnIKK19fbnNfc3ByaW50cnIKK19fbnNfc3ByaW50cnJmCitfX29wZW4KK19fb3BlbmF0CitfX3BfY2RuYW1lCitfX3BfY2RubmFtZQorX19wX2NsYXNzCitfX3BfZnFuYW1lCitfX3BfZnFubmFtZQorX19wX29wdGlvbgorX19wX3F1ZXJ5CitfX3BfcmNvZGUKK19fcF9zZWNzdG9kYXRlCitfX3Bfc2VjdGlvbgorX19wX3NvY2t1bgorX19wX3RpbWUKK19fcF90eXBlCitfX3ByZWFkNjQKK19fcHRocmVhZF9jbGVhbnVwX3BvcAorX19wdGhyZWFkX2NsZWFudXBfcHVzaAorX19wdGhyZWFkX2Nsb25lCitfX3B0aHJlYWRfY29uZF90aW1lZHdhaXQKK19fcHRocmVhZF9jb25kX3RpbWVkd2FpdF9yZWxhdGl2ZQorX19wdHJhY2UKK19fcHV0bG9uZworX19wdXRzaG9ydAorX19wd3JpdGU2NAorX19yZWJvb3QKK19fcmVzX2Nsb3NlCitfX3Jlc19kbm9rCitfX3Jlc19nZXRfbmliYmxlc3VmZml4CitfX3Jlc19nZXRfbmliYmxlc3VmZml4MgorX19yZXNfZ2V0X3N0YXRlCitfX3Jlc19nZXRfc3RhdGljCitfX3Jlc19nZXRzZXJ2ZXJzCitfX3Jlc19obm9rCitfX3Jlc19ob3N0YWxpYXMKK19fcmVzX2lzb3Vyc2VydmVyCitfX3Jlc19tYWlsb2sKK19fcmVzX25hbWVpbnF1ZXJ5CitfX3Jlc19uYW1ldG9jbGFzcworX19yZXNfbmFtZXRvdHlwZQorX19yZXNfbmNsb3NlCitfX3Jlc19uZGVzdHJveQorX19yZXNfbmluaXQKK19fcmVzX25ta3F1ZXJ5CitfX3Jlc19ub3B0CitfX3Jlc19ucXVlcnkKK19fcmVzX25xdWVyeWRvbWFpbgorX19yZXNfbnNlYXJjaAorX19yZXNfbnNlbmQKK19fcmVzX29wdAorX19yZXNfb3Vyc2VydmVyX3AKK19fcmVzX293bm9rCitfX3Jlc19wcXVlcnkKK19fcmVzX3B1dF9zdGF0ZQorX19yZXNfcXVlcmllc21hdGNoCitfX3Jlc19xdWVyeWRvbWFpbgorX19yZXNfcmFuZG9taWQKK19fcmVzX3NlbmQKK19fcmVzX3NlbmRfc2V0cWhvb2sKK19fcmVzX3NlbmRfc2V0cmhvb2sKK19fcmVzX3NldHNlcnZlcnMKK19fcmVzX3Zpbml0CitfX3Jlc3RvcmVfY29yZV9yZWdzCitfX3J0X3NpZ2FjdGlvbgorX19ydF9zaWdwcm9jbWFzaworX19ydF9zaWd0aW1lZHdhaXQKK19fc2Nsb3NlCitfX3NldF9zeXNjYWxsX2Vycm5vCitfX3NldF90bHMKK19fc2V0cmVzdWlkCitfX3NldHJldWlkCitfX3NldHVpZAorX19zZmxhZ3MKK19fc2ZsdXNoCitfX3NmcAorX19zZnZ3cml0ZQorX19zaWdzdXNwZW5kCitfX3Npbml0CitfX3NsYmV4cGFuZAorX19zbWFrZWJ1ZgorX19zcmVhZAorX19zcmVmaWxsCitfX3NyZ2V0CitfX3NzZWVrCitfX3N0YWNrX2Noa19mYWlsCitfX3N0YXRmczY0CitfX3N1YmRmMworX19zdWJzZjMKK19fc3didWYKK19fc3doYXRidWYKK19fc3dyaXRlCitfX3N3c2V0dXAKK19fc3ltX250b3AKK19fc3ltX250b3MKK19fc3ltX3N0b24KK19fc3lzX2Nsb25lCitfX3N5c2xvZworX19zeXN0ZW1fcHJvcGVydGllc19pbml0CitfX3N5c3RlbV9wcm9wZXJ0eV9maW5kCitfX3N5c3RlbV9wcm9wZXJ0eV9maW5kX250aAorX19zeXN0ZW1fcHJvcGVydHlfZ2V0CitfX3N5c3RlbV9wcm9wZXJ0eV9yZWFkCitfX3N5c3RlbV9wcm9wZXJ0eV93YWl0CitfX3RocmVhZF9lbnRyeQorX190aW1lcl9jcmVhdGUKK19fdGltZXJfZGVsZXRlCitfX3RpbWVyX2dldG92ZXJydW4KK19fdGltZXJfZ2V0dGltZQorX190aW1lcl9zZXR0aW1lCitfX3RpbWVyX3RhYmxlX3N0YXJ0X3N0b3AKK19fdHJ1bmNkZnNmMgorX191ZGl2ZGkzCitfX3VkaXZzaTMKK19fdW5vcmRkZjIKK19fdW5vcmRzZjIKK19fd2FpdDQKK19fd2FpdGlkCitfY2xlYW51cAorX2RvcmFuZDQ4CitfZW5kaHRlbnQKK19leGl0CitfZXhpdF90aHJlYWQKK19leGl0X3dpdGhfc3RhY2tfdGVhcmRvd24KK19md2FsaworX2dldGh0YnlhZGRyCitfZ2V0aHRieW5hbWUKK19nZXRodGJ5bmFtZTIKK19nZXRodGVudAorX2dldGxvbmcKK19nZXRzaG9ydAorX2luaXRfdGhyZWFkCitfbG9uZ2ptcAorX21rdGVtcAorX3NldGh0ZW50Citfc2V0am1wCitfdGhyZWFkX2NyZWF0ZWRfaG9vaworYWJvcnQKK2FjY2VwdAorYWNjZXNzCithY2N0CithbGFybQorYWxwaGFzb3J0CithcmM0cmFuZG9tCithcmM0cmFuZG9tX2FkZHJhbmRvbQorYXJjNHJhbmRvbV9idWYKK2FyYzRyYW5kb21fc3RpcgorYXJjNHJhbmRvbV91bmlmb3JtCithc2N0aW1lCithc2N0aW1lNjQKK2FzY3RpbWU2NF9yCithc2N0aW1lX3IKK2FzcHJpbnRmCithdGV4aXQKK2F0b2kKK2F0b2wKK2F0b2xsCitiYXNlbmFtZQorYmFzZW5hbWVfcgorYmNvcHkKK2JpbmQKK2JpbmRyZXN2cG9ydAorYnJrCitic2Rfc2lnbmFsCitic2VhcmNoCitidG93YworYnplcm8KK2NhY2hlZmx1c2gKK2NhbGxvYworY2FwZ2V0CitjYXBzZXQKK2NoZGlyCitjaG1vZAorY2hvd24KK2Nocm9vdAorY2xlYXJlbnYKK2NsZWFyZXJyCitjbG9jaworY2xvY2tfZ2V0cmVzCitjbG9ja19nZXR0aW1lCitjbG9ja19uYW5vc2xlZXAKK2Nsb2NrX3NldHRpbWUKK2Nsb25lCitjbG9zZQorY2xvc2VkaXIKK2Nsb3NlbG9nCitjbG9zZWxvZ19yCitjb25uZWN0Citjb3B5X1RNX3RvX3RtCitjb3B5X3RtX3RvX1RNCitjcHVhY2N0X2FkZAorY3JlYXQKK2N0aW1lCitjdGltZTY0CitjdGltZTY0X3IKK2N0aW1lX3IKK2RhZW1vbgorZGVsZXRlX21vZHVsZQorZGlmZnRpbWUKK2RpcmZkCitkaXJuYW1lCitkaXJuYW1lX3IKK2RpdgorZGxjYWxsb2MKK2RsZnJlZQorZGxpbmRlcGVuZGVudF9jYWxsb2MKK2RsaW5kZXBlbmRlbnRfY29tYWxsb2MKK2RsbWFsbGluZm8KK2RsbWFsbG9jCitkbG1hbGxvY19mb290cHJpbnQKK2RsbWFsbG9jX21heF9mb290cHJpbnQKK2RsbWFsbG9jX3N0YXRzCitkbG1hbGxvY190cmltCitkbG1hbGxvY191c2FibGVfc2l6ZQorZGxtYWxsb2Nfd2Fsa19mcmVlX3BhZ2VzCitkbG1hbGxvY193YWxrX2hlYXAKK2RsbWFsbG9wdAorZGxtZW1hbGlnbgorZGxwdmFsbG9jCitkbHJlYWxsb2MKK2RsdmFsbG9jCitkbl9leHBhbmQKK2RyYW5kNDgKK2R1cAorZHVwMgorZW5kcHdlbnQKK2VuZHNlcnZlbnQKK2VuZHVzZXJzaGVsbAorZW5kdXRlbnQKK2Vwb2xsX2NyZWF0ZQorZXBvbGxfY3RsCitlcG9sbF93YWl0CitlcmFuZDQ4CitlcnIKK2VycngKK2V2ZW50ZmQKK2V2ZW50ZmRfcmVhZAorZXZlbnRmZF93cml0ZQorZXhlY2wKK2V4ZWNsZQorZXhlY2xwCitleGVjdgorZXhlY3ZlCitleGVjdnAKK2V4aXQKK2ZjaGRpcgorZmNobW9kCitmY2htb2RhdAorZmNob3duCitmY2hvd25hdAorZmNsb3NlCitmY250bAorZmRhdGFzeW5jCitmZG9wZW4KK2Zkb3BlbmRpcgorZmRwcmludGYKK2Zlb2YKK2ZlcnJvcgorZmZsdXNoCitmZnMKK2ZnZXRjCitmZ2V0bG4KK2ZnZXRwb3MKK2ZnZXRzCitmZ2V0d2MKK2ZnZXR3cworZmlsZW5vCitmbG9jaworZmxvY2tmaWxlCitmbm1hdGNoCitmb3BlbgorZm9yaworZnBhdGhjb25mCitmcHJpbnRmCitmcHVyZ2UKK2ZwdXRjCitmcHV0cworZnB1dHdjCitmcHV0d3MKK2ZyZWFkCitmcmVlCitmcmVlYWRkcmluZm8KK2ZyZWVkdG9hCitmcmVvcGVuCitmc2NhbmYKK2ZzZWVrCitmc2Vla28KK2ZzZXRwb3MKK2ZzdGF0Citmc3RhdGF0Citmc3RhdGZzCitmc3luYworZnRlbGwKK2Z0ZWxsbworZnRpbWUKK2Z0b2sKK2Z0cnVuY2F0ZQorZnRyeWxvY2tmaWxlCitmdHNfY2hpbGRyZW4KK2Z0c19jbG9zZQorZnRzX29wZW4KK2Z0c19yZWFkCitmdHNfc2V0CitmdW5sb2NrZmlsZQorZnVub3BlbgorZnV0ZXgKK2Z1dGltZW5zCitmd2lkZQorZndwcmludGYKK2Z3cml0ZQorZndzY2FuZgorZ2FpX3N0cmVycm9yCitnZXRfbWFsbG9jX2xlYWtfaW5mbworZ2V0YWRkcmluZm8KK2dldGMKK2dldGNfdW5sb2NrZWQKK2dldGNoYXIKK2dldGNoYXJfdW5sb2NrZWQKK2dldGN3ZAorZ2V0ZGVudHMKK2dldGR0YWJsZXNpemUKK2dldGVnaWQKK2dldGVudgorZ2V0ZXVpZAorZ2V0Z2lkCitnZXRncmdpZAorZ2V0Z3JuYW0KK2dldGdyb3VwbGlzdAorZ2V0Z3JvdXBzCitnZXRob3N0YnlhZGRyCitnZXRob3N0YnluYW1lCitnZXRob3N0YnluYW1lMgorZ2V0aG9zdGJ5bmFtZV9yCitnZXRob3N0ZW50CitnZXRob3N0bmFtZQorZ2V0aXRpbWVyCitnZXRsb2dpbgorZ2V0bW50ZW50CitnZXRuYW1laW5mbworZ2V0bmV0YnlhZGRyCitnZXRuZXRieW5hbWUKK2dldG9wdAorZ2V0b3B0X2xvbmcKK2dldG9wdF9sb25nX29ubHkKK2dldHBlZXJuYW1lCitnZXRwZ2lkCitnZXRwZ3JwCitnZXRwaWQKK2dldHBwaWQKK2dldHByaW9yaXR5CitnZXRwcm90b2J5bmFtZQorZ2V0cHJvdG9ieW51bWJlcgorZ2V0cHQKK2dldHB3bmFtCitnZXRwd3VpZAorZ2V0cmVzZ2lkCitnZXRyZXN1aWQKK2dldHJsaW1pdAorZ2V0cnVzYWdlCitnZXRzCitnZXRzZXJ2YnluYW1lCitnZXRzZXJ2Ynlwb3J0CitnZXRzZXJ2ZW50CitnZXRzZXJ2ZW50X3IKK2dldHNvY2tuYW1lCitnZXRzb2Nrb3B0CitnZXR0aWQKK2dldHRpbWVvZmRheQorZ2V0dWlkCitnZXR1c2Vyc2hlbGwKK2dldHV0ZW50CitnZXR3YworZ2V0d2NoYXIKK2dtdGltZQorZ210aW1lNjQKK2dtdGltZTY0X3IKK2dtdGltZV9yCitoZXJyb3IKK2hzdHJlcnJvcgoraWZfaW5kZXh0b25hbWUKK2lmX25hbWV0b2luZGV4CitpbmRleAoraW5ldF9hZGRyCitpbmV0X2F0b24KK2luZXRfbnNhcF9hZGRyCitpbmV0X25zYXBfbnRvYQoraW5ldF9udG9hCitpbmV0X250b3AKK2luZXRfcHRvbgoraW5pdF9tb2R1bGUKK2luaXRncm91cHMKK2lub3RpZnlfYWRkX3dhdGNoCitpbm90aWZ5X2luaXQKK2lub3RpZnlfcm1fd2F0Y2gKK2lvY3RsCitpb3ByaW9fZ2V0Citpb3ByaW9fc2V0Citpc2FsbnVtCitpc2FscGhhCitpc2FzY2lpCitpc2F0dHkKK2lzYmxhbmsKK2lzY250cmwKK2lzZGlnaXQKK2lzZ3JhcGgKK2lzbG93ZXIKK2lzcHJpbnQKK2lzcHVuY3QKK2lzc2V0dWdpZAoraXNzcGFjZQoraXN1cHBlcgoraXN3YWxudW0KK2lzd2FscGhhCitpc3djbnRybAoraXN3Y3R5cGUKK2lzd2RpZ2l0Citpc3dncmFwaAoraXN3bG93ZXIKK2lzd3ByaW50Citpc3dwdW5jdAoraXN3c3BhY2UKK2lzd3VwcGVyCitpc3d4ZGlnaXQKK2lzeGRpZ2l0CitqcmFuZDQ4CitraWxsCitraWxscGcKK2tsb2djdGwKK2xjaG93bgorbGRleHAKK2xkaXYKK2xpbmsKK2xpc3RlbgorbGxkaXYKK2xvY2FsdGltZQorbG9jYWx0aW1lNjQKK2xvY2FsdGltZTY0X3IKK2xvY2FsdGltZV9yCitsb25nam1wCitsb25nam1wZXJyb3IKK2xyYW5kNDgKK2xzZWVrCitsc2VlazY0Citsc3RhdAorbWFkdmlzZQorbWFsbGluZm8KK21hbGxvYworbWFsbG9jX2RlYnVnX2luaXQKK21icmxlbgorbWJydG93YworbWJzaW5pdAorbWJzcnRvd2NzCittYnN0b3djcworbWVtYWxpZ24KK21lbWNjcHkKK21lbWNocgorbWVtY21wCittZW1jcHkKK21lbW1lbQorbWVtbW92ZQorbWVtcmNocgorbWVtc2V0CittZW1zd2FwCittaW5jb3JlCitta2RpcgorbWtkaXJhdAorbWtkdGVtcAorbWtub2QKK21rc3RlbXAKK21rc3RlbXBzCitta3RlbXAKK21rdGltZQorbWt0aW1lNjQKK21sb2NrCittbWFwCittb3VudAorbXByb3RlY3QKK21yYW5kNDgKK21yZW1hcAorbXN5bmMKK211bmxvY2sKK211bm1hcAorbmFub3NsZWVwCituaWNlCitucmFuZDQ4Cituc2Rpc3BhdGNoCitvcGVuCitvcGVuYXQKK29wZW5kaXIKK29wZW5sb2cKK29wZW5sb2dfcgorcGF0aGNvbmYKK3BhdXNlCitwY2xvc2UKK3BlcnJvcgorcGlwZQorcGlwZTIKK3BvbGwKK3BvcGVuCitwcmN0bAorcHJlYWQKK3ByaW50ZgorcHNlbGVjdAorcHRocmVhZF9hdHRyX2Rlc3Ryb3kKK3B0aHJlYWRfYXR0cl9nZXRkZXRhY2hzdGF0ZQorcHRocmVhZF9hdHRyX2dldGd1YXJkc2l6ZQorcHRocmVhZF9hdHRyX2dldHNjaGVkcGFyYW0KK3B0aHJlYWRfYXR0cl9nZXRzY2hlZHBvbGljeQorcHRocmVhZF9hdHRyX2dldHNjb3BlCitwdGhyZWFkX2F0dHJfZ2V0c3RhY2sKK3B0aHJlYWRfYXR0cl9nZXRzdGFja2FkZHIKK3B0aHJlYWRfYXR0cl9nZXRzdGFja3NpemUKK3B0aHJlYWRfYXR0cl9pbml0CitwdGhyZWFkX2F0dHJfc2V0ZGV0YWNoc3RhdGUKK3B0aHJlYWRfYXR0cl9zZXRndWFyZHNpemUKK3B0aHJlYWRfYXR0cl9zZXRzY2hlZHBhcmFtCitwdGhyZWFkX2F0dHJfc2V0c2NoZWRwb2xpY3kKK3B0aHJlYWRfYXR0cl9zZXRzY29wZQorcHRocmVhZF9hdHRyX3NldHN0YWNrCitwdGhyZWFkX2F0dHJfc2V0c3RhY2thZGRyCitwdGhyZWFkX2F0dHJfc2V0c3RhY2tzaXplCitwdGhyZWFkX2NvbmRfYnJvYWRjYXN0CitwdGhyZWFkX2NvbmRfZGVzdHJveQorcHRocmVhZF9jb25kX2luaXQKK3B0aHJlYWRfY29uZF9zaWduYWwKK3B0aHJlYWRfY29uZF90aW1lZHdhaXQKK3B0aHJlYWRfY29uZF90aW1lZHdhaXRfbW9ub3RvbmljCitwdGhyZWFkX2NvbmRfdGltZWR3YWl0X21vbm90b25pY19ucAorcHRocmVhZF9jb25kX3RpbWVkd2FpdF9yZWxhdGl2ZV9ucAorcHRocmVhZF9jb25kX3RpbWVvdXRfbnAKK3B0aHJlYWRfY29uZF93YWl0CitwdGhyZWFkX2NvbmRhdHRyX2Rlc3Ryb3kKK3B0aHJlYWRfY29uZGF0dHJfZ2V0cHNoYXJlZAorcHRocmVhZF9jb25kYXR0cl9pbml0CitwdGhyZWFkX2NvbmRhdHRyX3NldHBzaGFyZWQKK3B0aHJlYWRfY3JlYXRlCitwdGhyZWFkX2RldGFjaAorcHRocmVhZF9lcXVhbAorcHRocmVhZF9leGl0CitwdGhyZWFkX2dldGF0dHJfbnAKK3B0aHJlYWRfZ2V0Y3B1Y2xvY2tpZAorcHRocmVhZF9nZXRzY2hlZHBhcmFtCitwdGhyZWFkX2dldHNwZWNpZmljCitwdGhyZWFkX2pvaW4KK3B0aHJlYWRfa2V5X2NyZWF0ZQorcHRocmVhZF9rZXlfZGVsZXRlCitwdGhyZWFkX2tpbGwKK3B0aHJlYWRfbXV0ZXhfZGVzdHJveQorcHRocmVhZF9tdXRleF9pbml0CitwdGhyZWFkX211dGV4X2xvY2sKK3B0aHJlYWRfbXV0ZXhfbG9ja190aW1lb3V0X25wCitwdGhyZWFkX211dGV4X3RyeWxvY2sKK3B0aHJlYWRfbXV0ZXhfdW5sb2NrCitwdGhyZWFkX211dGV4YXR0cl9kZXN0cm95CitwdGhyZWFkX211dGV4YXR0cl9nZXRwc2hhcmVkCitwdGhyZWFkX211dGV4YXR0cl9nZXR0eXBlCitwdGhyZWFkX211dGV4YXR0cl9pbml0CitwdGhyZWFkX211dGV4YXR0cl9zZXRwc2hhcmVkCitwdGhyZWFkX211dGV4YXR0cl9zZXR0eXBlCitwdGhyZWFkX29uY2UKK3B0aHJlYWRfcndsb2NrX2Rlc3Ryb3kKK3B0aHJlYWRfcndsb2NrX2luaXQKK3B0aHJlYWRfcndsb2NrX3JkbG9jaworcHRocmVhZF9yd2xvY2tfdGltZWRyZGxvY2sKK3B0aHJlYWRfcndsb2NrX3RpbWVkd3Jsb2NrCitwdGhyZWFkX3J3bG9ja190cnlyZGxvY2sKK3B0aHJlYWRfcndsb2NrX3RyeXdybG9jaworcHRocmVhZF9yd2xvY2tfdW5sb2NrCitwdGhyZWFkX3J3bG9ja193cmxvY2sKK3B0aHJlYWRfcndsb2NrYXR0cl9kZXN0cm95CitwdGhyZWFkX3J3bG9ja2F0dHJfZ2V0cHNoYXJlZAorcHRocmVhZF9yd2xvY2thdHRyX2luaXQKK3B0aHJlYWRfcndsb2NrYXR0cl9zZXRwc2hhcmVkCitwdGhyZWFkX3NlbGYKK3B0aHJlYWRfc2V0bmFtZV9ucAorcHRocmVhZF9zZXRzY2hlZHBhcmFtCitwdGhyZWFkX3NldHNwZWNpZmljCitwdGhyZWFkX3NpZ21hc2sKK3B0cmFjZQorcHRzbmFtZQorcHRzbmFtZV9yCitwdXRjCitwdXRjX3VubG9ja2VkCitwdXRjaGFyCitwdXRjaGFyX3VubG9ja2VkCitwdXRlbnYKK3B1dHMKK3B1dHV0bGluZQorcHV0dworcHV0d2MKK3B1dHdjaGFyCitwd3JpdGUKK3Fzb3J0CityYWlzZQorcmVhZAorcmVhZGRpcgorcmVhZGRpcl9yCityZWFkbGluaworcmVhZHYKK3JlYWxsb2MKK3JlYWxwYXRoCityZWJvb3QKK3JlY3YKK3JlY3Zmcm9tCityZWN2bXNnCityZWdjb21wCityZWdlcnJvcgorcmVnZXhlYworcmVnZnJlZQorcmVtb3ZlCityZW5hbWUKK3JlbmFtZWF0CityZXNfaW5pdAorcmVzX21rcXVlcnkKK3Jlc19uZWVkX2luaXQKK3Jlc19xdWVyeQorcmVzX3NlYXJjaAorcmVzdG9yZV9jb3JlX3JlZ3MKK3Jld2luZAorcmV3aW5kZGlyCitybWRpcgorc2Jyaworc2NhbmRpcgorc2NhbmYKK3NjaGVkX2dldF9wcmlvcml0eV9tYXgKK3NjaGVkX2dldF9wcmlvcml0eV9taW4KK3NjaGVkX2dldHBhcmFtCitzY2hlZF9nZXRzY2hlZHVsZXIKK3NjaGVkX3JyX2dldF9pbnRlcnZhbAorc2NoZWRfc2V0cGFyYW0KK3NjaGVkX3NldHNjaGVkdWxlcgorc2NoZWRfeWllbGQKK3NlZWQ0OAorc2VsZWN0CitzZW1fY2xvc2UKK3NlbV9kZXN0cm95CitzZW1fZ2V0dmFsdWUKK3NlbV9pbml0CitzZW1fb3Blbgorc2VtX3Bvc3QKK3NlbV90aW1lZHdhaXQKK3NlbV90cnl3YWl0CitzZW1fdW5saW5rCitzZW1fd2FpdAorc2VuZAorc2VuZGZpbGUKK3NlbmRtc2cKK3NlbmR0bworc2V0YnVmCitzZXRidWZmZXIKK3NldGVnaWQKK3NldGVudgorc2V0ZXVpZAorc2V0Z2lkCitzZXRncm91cHMKK3NldGl0aW1lcgorc2V0am1wCitzZXRsaW5lYnVmCitzZXRsb2NhbGUKK3NldGxvZ21hc2sKK3NldGxvZ21hc2tfcgorc2V0cGdpZAorc2V0cGdycAorc2V0cHJpb3JpdHkKK3NldHJlZ2lkCitzZXRyZXNnaWQKK3NldHJlc3VpZAorc2V0cmV1aWQKK3NldHJsaW1pdAorc2V0c2VydmVudAorc2V0c2lkCitzZXRzb2Nrb3B0CitzZXR0aW1lb2ZkYXkKK3NldHVpZAorc2V0dXNlcnNoZWxsCitzZXR1dGVudAorc2V0dmJ1Zgorc2h1dGRvd24KK3NpZ2FjdGlvbgorc2lnYWx0c3RhY2sKK3NpZ2Jsb2NrCitzaWdpbnRlcnJ1cHQKK3NpZ2xvbmdqbXAKK3NpZ3BlbmRpbmcKK3NpZ3Byb2NtYXNrCitzaWdzZXRqbXAKK3NpZ3NldG1hc2sKK3NpZ3N1c3BlbmQKK3NpZ3dhaXQKK3NsZWVwCitzbnByaW50Zgorc29ja2V0Citzb2NrZXRwYWlyCitzcHJpbnRmCitzcmFuZDQ4Citzc2NhbmYKK3N0YXQKK3N0YXRmcworc3RyY2FzZWNtcAorc3RyY2FzZXN0cgorc3RyY2F0CitzdHJjaHIKK3N0cmNtcAorc3RyY29sbAorc3RyY3B5CitzdHJjc3BuCitzdHJkdXAKK3N0cmVycm9yCitzdHJlcnJvcl9yCitzdHJmdGltZQorc3RyZnRpbWVfdHoKK3N0cmxjYXQKK3N0cmxjcHkKK3N0cmxlbgorc3RybmNhc2VjbXAKK3N0cm5jYXQKK3N0cm5jbXAKK3N0cm5jcHkKK3N0cm5kdXAKK3N0cm5sZW4KK3N0cm50b2ltYXgKK3N0cm50b3VtYXgKK3N0cnBicmsKK3N0cnB0aW1lCitzdHJyY2hyCitzdHJzZXAKK3N0cnNpZ25hbAorc3Ryc3BuCitzdHJzdHIKK3N0cnRvZAorc3RydG9pbWF4CitzdHJ0b2sKK3N0cnRva19yCitzdHJ0b2wKK3N0cnRvbGwKK3N0cnRvdGltZXZhbAorc3RydG91bAorc3RydG91bGwKK3N0cnRvdW1heAorc3RyeGZybQorc3dwcmludGYKK3N3c2NhbmYKK3N5bWxpbmsKK3N5bmMKK3N5c2NhbGwKK3N5c2NvbmYKK3N5c2luZm8KK3N5c2xvZworc3lzbG9nX3IKK3N5c3RlbQorc3lzdl9zaWduYWwKK3RjZ2V0cGdycAordGNzZXRwZ3JwCit0ZW1wbmFtCit0aW1lCit0aW1lZ202NAordGltZWxvY2FsNjQKK3RpbWVyX2NyZWF0ZQordGltZXJfZGVsZXRlCit0aW1lcl9nZXRvdmVycnVuCit0aW1lcl9nZXR0aW1lCit0aW1lcl9zZXR0aW1lCit0aW1lcwordGtpbGwKK3RtcGZpbGUKK3RtcG5hbQordG9hc2NpaQordG9sb3dlcgordG91cHBlcgordG93bG93ZXIKK3Rvd3VwcGVyCit0cnVuY2F0ZQordHR5bmFtZQordHR5bmFtZV9yCit0enNldAordW1hc2sKK3Vtb3VudAordW1vdW50MgordW5hbWUKK3VuZ2V0YwordW5nZXR3YwordW5saW5rCit1bmxpbmthdAordW5sb2NrcHQKK3Vuc2V0ZW52Cit1c2xlZXAKK3V0aW1lCit1dGltZW5zYXQKK3V0aW1lcwordXRtcG5hbWUKK3ZhbGlkX3RtX21vbgordmFsaWRfdG1fd2RheQordmFsbG9jCit2YXNwcmludGYKK3ZlcnIKK3ZlcnJ4Cit2ZmRwcmludGYKK3Zmb3JrCit2ZnByaW50ZgordmZzY2FuZgordmZ3cHJpbnRmCit2cHJpbnRmCit2c2NhbmYKK3ZzbnByaW50ZgordnNwcmludGYKK3Zzc2NhbmYKK3Zzd3ByaW50ZgordnN5c2xvZwordnN5c2xvZ19yCit2d2Fybgordndhcm54Cit2d3ByaW50Zgord2FpdAord2FpdDMKK3dhaXQ0Cit3YWl0aWQKK3dhaXRwaWQKK3dhcm4KK3dhcm54Cit3Y3BjcHkKK3djcG5jcHkKK3djcnRvbWIKK3djc2Nhc2VjbXAKK3djc2NhdAord2NzY2hyCit3Y3NjbXAKK3djc2NvbGwKK3djc2NweQord2NzY3Nwbgord2NzZHVwCit3Y3NmdGltZQord2NzbGNhdAord2NzbGNweQord2NzbGVuCit3Y3NuY2FzZWNtcAord2NzbmNhdAord2NzbmNtcAord2NzbmNweQord2Nzbmxlbgord2NzcGJyaword2NzcmNocgord2NzcnRvbWJzCit3Y3NzcG4KK3djc3N0cgord2NzdG9kCit3Y3N0b2sKK3djc3RvbAord2NzdG9tYnMKK3djc3RvdWwKK3djc3djcword2Nzd2lkdGgKK3djc3hmcm0KK3djdG9iCit3Y3R5cGUKK3djd2lkdGgKK3dtZW1jaHIKK3dtZW1jbXAKK3dtZW1jcHkKK3dtZW1tb3ZlCit3bWVtc2V0Cit3cHJpbnRmCit3cml0ZQord3JpdGV2Cit3c2NhbmYKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOS9hcmNoLWFybS9zeW1ib2xzL2xpYmMuc28udmFyaWFibGVzLnR4dCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOS9hcmNoLWFybS9zeW1ib2xzL2xpYmMuc28udmFyaWFibGVzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZTVlZjYzCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE5L2FyY2gtYXJtL3N5bWJvbHMvbGliYy5zby52YXJpYWJsZXMudHh0CkBAIC0wLDAgKzEsNTEgQEAKK19DX2N0eXBlXworX0NfdG9sb3dlcl8KK19DX3RvdXBwZXJfCitfX2F0ZXhpdAorX19hdGV4aXRfaW52YWxpZAorX19iaW9uaWNfYnJrCitfX2V2T3B0TW9ub1RpbWUKK19faXN0aHJlYWRlZAorX19saWJjX21hbGxvY19kZWZhdWx0X2Rpc3BhdGNoCitfX2xpYmNfbWFsbG9jX2Rpc3BhdGNoCitfX3BfY2VydF9zeW1zCitfX3BfY2xhc3Nfc3ltcworX19wX2RlZmF1bHRfc2VjdGlvbl9zeW1zCitfX3Bfa2V5X3N5bXMKK19fcF9yY29kZV9zeW1zCitfX3BfdHlwZV9zeW1zCitfX3BfdXBkYXRlX3NlY3Rpb25fc3ltcworX19wYWdlX3NoaWZ0CitfX3BhZ2Vfc2l6ZQorX19wcm9nbmFtZQorX19yYW5kNDhfYWRkCitfX3JhbmQ0OF9tdWx0CitfX3JhbmQ0OF9zZWVkCitfX3NGCitfX3NGZXh0CitfX3NkaWRpbml0CitfX3NnbHVlCitfX3N0YWNrX2Noa19ndWFyZAorX19zeXN0ZW1fcHJvcGVydHlfYXJlYV9fCitfY3R5cGVfCitfbnJlcworX25zX2ZsYWdkYXRhCitfcmFuZDQ4X2FkZAorX3JhbmQ0OF9tdWx0CitfcmFuZDQ4X3NlZWQKK19yZXNfb3Bjb2RlcworX3RvbG93ZXJfdGFiXworX3RvdXBwZXJfdGFiXworZGF5bGlnaHQKK2Vudmlyb24KK2hfZXJybGlzdAoraF9uZXJyCitvcHRhcmcKK29wdGVycgorb3B0aW5kCitvcHRvcHQKK29wdHJlc2V0CitzeXNfc2lnbGlzdAorc3lzX3NpZ25hbWUKK3RpbWV6b25lCit0em5hbWUKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOS9hcmNoLW1pcHMvc3ltYm9scy9saWJjLnNvLmZ1bmN0aW9ucy50eHQgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTkvYXJjaC1taXBzL3N5bWJvbHMvbGliYy5zby5mdW5jdGlvbnMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0NTE1NDcKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTkvYXJjaC1taXBzL3N5bWJvbHMvbGliYy5zby5mdW5jdGlvbnMudHh0CkBAIC0wLDAgKzEsOTUyIEBACitNRDVfRmluYWwKK01ENV9Jbml0CitNRDVfVXBkYXRlCitTSEExRmluYWwKK1NIQTFJbml0CitTSEExVHJhbnNmb3JtCitTSEExVXBkYXRlCitfX2FyYzRfZ2V0Ynl0ZQorX19hc3NlcnQKK19fYXNzZXJ0MgorX19hdGV4aXRfcmVnaXN0ZXJfY2xlYW51cAorX19hdG9taWNfY21weGNoZworX19hdG9taWNfZGVjCitfX2F0b21pY19pbmMKK19fYXRvbWljX3N3YXAKK19fYjY0X250b3AKK19fYjY0X3B0b24KK19fYnJrCitfX2Nsb25lX3RocmVhZF9zdGFydAorX19jeGFfYXRleGl0CitfX2N4YV9maW5hbGl6ZQorX19kbl9jb21wCitfX2RuX2NvdW50X2xhYmVscworX19kbl9za2lwbmFtZQorX19kb3JhbmQ0OAorX19kdG9hCitfX2Vycm5vCitfX2V2QWRkVGltZQorX19ldkNtcFRpbWUKK19fZXZDb25zSW92ZWMKK19fZXZDb25zVGltZQorX19ldk5vd1RpbWUKK19fZXZTdWJUaW1lCitfX2V2VGltZVNwZWMKK19fZXZUaW1lVmFsCitfX2V2VVRDVGltZQorX19mY250bAorX19mY250bDY0CitfX2ZpbmRlbnYKK19fZm9yaworX19mcF9ucXVlcnkKK19fZnBfcXVlcnkKK19fZnJlbW92ZWxvY2sKK19fZnN0YXRmczY0CitfX2Z1dGV4X3N5c2NhbGwzCitfX2Z1dGV4X3N5c2NhbGw0CitfX2Z1dGV4X3dhaXQKK19fZnV0ZXhfd2FpdF9leAorX19mdXRleF93YWtlCitfX2Z1dGV4X3dha2VfZXgKK19fZ2V0X2hfZXJybm8KK19fZ2V0X3Jlc19jYWNoZQorX19nZXRfc3AKK19fZ2V0X3N0YWNrX2Jhc2UKK19fZ2V0X3RocmVhZAorX19nZXRfdGxzCitfX2dldGN3ZAorX19nZXRwcmlvcml0eQorX19ob3N0YWxpYXMKK19faW5pdF90bHMKK19faW9jdGwKK19fbGliY19hbmRyb2lkX2xvZ19hc3NlcnQKK19fbGliY19hbmRyb2lkX2xvZ19wcmludAorX19saWJjX2FuZHJvaWRfbG9nX3ZwcmludAorX19saWJjX2ZpbmkKK19fbGliY19pbml0CitfX2xpYmNfaW5pdF9jb21tb24KK19fbGliY19wcmVpbml0CitfX2xsc2VlaworX19sb2NfYXRvbgorX19sb2NfbnRvYQorX19tZW1jbXAxNgorX19tbWFwMgorX19uc19mb3JtYXRfdHRsCitfX25zX2dldDE2CitfX25zX2dldDMyCitfX25zX2luaXRwYXJzZQorX19uc19tYWtlY2Fub24KK19fbnNfbXNnX2dldGZsYWcKK19fbnNfbmFtZV9jb21wcmVzcworX19uc19uYW1lX250b2wKK19fbnNfbmFtZV9udG9wCitfX25zX25hbWVfcGFjaworX19uc19uYW1lX3B0b24KK19fbnNfbmFtZV9yb2xsYmFjaworX19uc19uYW1lX3NraXAKK19fbnNfbmFtZV91bmNvbXByZXNzCitfX25zX25hbWVfdW5wYWNrCitfX25zX3BhcnNlcnIKK19fbnNfcHV0MTYKK19fbnNfcHV0MzIKK19fbnNfc2FtZW5hbWUKK19fbnNfc2tpcHJyCitfX25zX3NwcmludHJyCitfX25zX3NwcmludHJyZgorX19vcGVuCitfX29wZW5hdAorX19wX2NkbmFtZQorX19wX2Nkbm5hbWUKK19fcF9jbGFzcworX19wX2ZxbmFtZQorX19wX2Zxbm5hbWUKK19fcF9vcHRpb24KK19fcF9xdWVyeQorX19wX3Jjb2RlCitfX3Bfc2Vjc3RvZGF0ZQorX19wX3NlY3Rpb24KK19fcF9zb2NrdW4KK19fcF90aW1lCitfX3BfdHlwZQorX19wcmVhZDY0CitfX3B0aHJlYWRfY2xlYW51cF9wb3AKK19fcHRocmVhZF9jbGVhbnVwX3B1c2gKK19fcHRocmVhZF9jbG9uZQorX19wdGhyZWFkX2NvbmRfdGltZWR3YWl0CitfX3B0aHJlYWRfY29uZF90aW1lZHdhaXRfcmVsYXRpdmUKK19fcHRyYWNlCitfX3B1dGxvbmcKK19fcHV0c2hvcnQKK19fcHdyaXRlNjQKK19fcmVib290CitfX3Jlc19jbG9zZQorX19yZXNfZG5vaworX19yZXNfZ2V0X25pYmJsZXN1ZmZpeAorX19yZXNfZ2V0X25pYmJsZXN1ZmZpeDIKK19fcmVzX2dldF9zdGF0ZQorX19yZXNfZ2V0X3N0YXRpYworX19yZXNfZ2V0c2VydmVycworX19yZXNfaG5vaworX19yZXNfaG9zdGFsaWFzCitfX3Jlc19pc291cnNlcnZlcgorX19yZXNfbWFpbG9rCitfX3Jlc19uYW1laW5xdWVyeQorX19yZXNfbmFtZXRvY2xhc3MKK19fcmVzX25hbWV0b3R5cGUKK19fcmVzX25jbG9zZQorX19yZXNfbmRlc3Ryb3kKK19fcmVzX25pbml0CitfX3Jlc19ubWtxdWVyeQorX19yZXNfbm9wdAorX19yZXNfbnF1ZXJ5CitfX3Jlc19ucXVlcnlkb21haW4KK19fcmVzX25zZWFyY2gKK19fcmVzX25zZW5kCitfX3Jlc19vcHQKK19fcmVzX291cnNlcnZlcl9wCitfX3Jlc19vd25vaworX19yZXNfcHF1ZXJ5CitfX3Jlc19wdXRfc3RhdGUKK19fcmVzX3F1ZXJpZXNtYXRjaAorX19yZXNfcXVlcnlkb21haW4KK19fcmVzX3JhbmRvbWlkCitfX3Jlc19zZW5kCitfX3Jlc19zZW5kX3NldHFob29rCitfX3Jlc19zZW5kX3NldHJob29rCitfX3Jlc19zZXRzZXJ2ZXJzCitfX3Jlc192aW5pdAorX19ydF9zaWdhY3Rpb24KK19fcnRfc2lncHJvY21hc2sKK19fcnRfc2lndGltZWR3YWl0CitfX3NjbG9zZQorX19zZXRfc3lzY2FsbF9lcnJubworX19zZXRfdGhyZWFkX2FyZWEKK19fc2V0X3RscworX19zZXRyZXN1aWQKK19fc2V0cmV1aWQKK19fc2V0dWlkCitfX3NmbGFncworX19zZmx1c2gKK19fc2ZwCitfX3NmdndyaXRlCitfX3NpZ3N1c3BlbmQKK19fc2luaXQKK19fc2xiZXhwYW5kCitfX3NtYWtlYnVmCitfX3NyZWFkCitfX3NyZWZpbGwKK19fc3JnZXQKK19fc3NlZWsKK19fc3RhY2tfY2hrX2ZhaWwKK19fc3RhdGZzNjQKK19fc3didWYKK19fc3doYXRidWYKK19fc3dyaXRlCitfX3N3c2V0dXAKK19fc3ltX250b3AKK19fc3ltX250b3MKK19fc3ltX3N0b24KK19fc3lzX2Nsb25lCitfX3N5c2xvZworX19zeXN0ZW1fcHJvcGVydGllc19pbml0CitfX3N5c3RlbV9wcm9wZXJ0eV9maW5kCitfX3N5c3RlbV9wcm9wZXJ0eV9maW5kX250aAorX19zeXN0ZW1fcHJvcGVydHlfZ2V0CitfX3N5c3RlbV9wcm9wZXJ0eV9yZWFkCitfX3N5c3RlbV9wcm9wZXJ0eV93YWl0CitfX3RocmVhZF9lbnRyeQorX190aW1lcl9jcmVhdGUKK19fdGltZXJfZGVsZXRlCitfX3RpbWVyX2dldG92ZXJydW4KK19fdGltZXJfZ2V0dGltZQorX190aW1lcl9zZXR0aW1lCitfX3RpbWVyX3RhYmxlX3N0YXJ0X3N0b3AKK19fd2FpdDQKK19fd2FpdGlkCitfY2xlYW51cAorX2RvcmFuZDQ4CitfZW5kaHRlbnQKK19leGl0CitfZXhpdF90aHJlYWQKK19leGl0X3dpdGhfc3RhY2tfdGVhcmRvd24KK19mbHVzaF9jYWNoZQorX2Z3YWxrCitfZ2V0aHRieWFkZHIKK19nZXRodGJ5bmFtZQorX2dldGh0YnluYW1lMgorX2dldGh0ZW50CitfZ2V0bG9uZworX2dldHNob3J0CitfaW5pdF90aHJlYWQKK19sb25nam1wCitfbWt0ZW1wCitfc2V0aHRlbnQKK19zZXRqbXAKK190aHJlYWRfY3JlYXRlZF9ob29rCitfd2FpdHBpZAorYWJvcnQKK2FjY2VwdAorYWNjZXNzCithY2N0CithbGFybQorYWxwaGFzb3J0CithcmM0cmFuZG9tCithcmM0cmFuZG9tX2FkZHJhbmRvbQorYXJjNHJhbmRvbV9idWYKK2FyYzRyYW5kb21fc3RpcgorYXJjNHJhbmRvbV91bmlmb3JtCithc2N0aW1lCithc2N0aW1lNjQKK2FzY3RpbWU2NF9yCithc2N0aW1lX3IKK2FzcHJpbnRmCithdGV4aXQKK2F0b2kKK2F0b2wKK2F0b2xsCitiYXNlbmFtZQorYmFzZW5hbWVfcgorYmNvcHkKK2JpbmQKK2JpbmRyZXN2cG9ydAorYnJrCitic2Rfc2lnbmFsCitic2VhcmNoCitidG93YworYnplcm8KK2NhY2hlZmx1c2gKK2NhbGxvYworY2FwZ2V0CitjYXBzZXQKK2NoZGlyCitjaG1vZAorY2hvd24KK2Nocm9vdAorY2xlYXJlbnYKK2NsZWFyZXJyCitjbG9jaworY2xvY2tfZ2V0cmVzCitjbG9ja19nZXR0aW1lCitjbG9ja19uYW5vc2xlZXAKK2Nsb2NrX3NldHRpbWUKK2Nsb25lCitjbG9zZQorY2xvc2VkaXIKK2Nsb3NlbG9nCitjbG9zZWxvZ19yCitjb25uZWN0Citjb3B5X1RNX3RvX3RtCitjb3B5X3RtX3RvX1RNCitjcHVhY2N0X2FkZAorY3JlYXQKK2N0aW1lCitjdGltZTY0CitjdGltZTY0X3IKK2N0aW1lX3IKK2RhZW1vbgorZGVsZXRlX21vZHVsZQorZGlmZnRpbWUKK2RpcmZkCitkaXJuYW1lCitkaXJuYW1lX3IKK2RpdgorZGxjYWxsb2MKK2RsZnJlZQorZGxpbmRlcGVuZGVudF9jYWxsb2MKK2RsaW5kZXBlbmRlbnRfY29tYWxsb2MKK2RsbWFsbGluZm8KK2RsbWFsbG9jCitkbG1hbGxvY19mb290cHJpbnQKK2RsbWFsbG9jX21heF9mb290cHJpbnQKK2RsbWFsbG9jX3N0YXRzCitkbG1hbGxvY190cmltCitkbG1hbGxvY191c2FibGVfc2l6ZQorZGxtYWxsb2Nfd2Fsa19mcmVlX3BhZ2VzCitkbG1hbGxvY193YWxrX2hlYXAKK2RsbWFsbG9wdAorZGxtZW1hbGlnbgorZGxwdmFsbG9jCitkbHJlYWxsb2MKK2RsdmFsbG9jCitkbl9leHBhbmQKK2RyYW5kNDgKK2R1cAorZHVwMgorZW5kcHdlbnQKK2VuZHNlcnZlbnQKK2VuZHVzZXJzaGVsbAorZW5kdXRlbnQKK2Vwb2xsX2NyZWF0ZQorZXBvbGxfY3RsCitlcG9sbF93YWl0CitlcmFuZDQ4CitlcnIKK2VycngKK2V2ZW50ZmQKK2V2ZW50ZmRfcmVhZAorZXZlbnRmZF93cml0ZQorZXhlY2wKK2V4ZWNsZQorZXhlY2xwCitleGVjdgorZXhlY3ZlCitleGVjdnAKK2V4aXQKK2ZjaGRpcgorZmNobW9kCitmY2htb2RhdAorZmNob3duCitmY2hvd25hdAorZmNsb3NlCitmY250bAorZmRhdGFzeW5jCitmZG9wZW4KK2Zkb3BlbmRpcgorZmRwcmludGYKK2Zlb2YKK2ZlcnJvcgorZmZsdXNoCitmZnMKK2ZnZXRjCitmZ2V0bG4KK2ZnZXRwb3MKK2ZnZXRzCitmZ2V0d2MKK2ZnZXR3cworZmlsZW5vCitmbG9jaworZmxvY2tmaWxlCitmbm1hdGNoCitmb3BlbgorZm9yaworZnBhdGhjb25mCitmcHJpbnRmCitmcHVyZ2UKK2ZwdXRjCitmcHV0cworZnB1dHdjCitmcHV0d3MKK2ZyZWFkCitmcmVlCitmcmVlYWRkcmluZm8KK2ZyZWVkdG9hCitmcmVvcGVuCitmc2NhbmYKK2ZzZWVrCitmc2Vla28KK2ZzZXRwb3MKK2ZzdGF0Citmc3RhdGF0Citmc3RhdGZzCitmc3luYworZnRlbGwKK2Z0ZWxsbworZnRpbWUKK2Z0b2sKK2Z0cnVuY2F0ZQorZnRyeWxvY2tmaWxlCitmdHNfY2hpbGRyZW4KK2Z0c19jbG9zZQorZnRzX29wZW4KK2Z0c19yZWFkCitmdHNfc2V0CitmdW5sb2NrZmlsZQorZnVub3BlbgorZnV0ZXgKK2Z1dGltZW5zCitmd2lkZQorZndwcmludGYKK2Z3cml0ZQorZndzY2FuZgorZ2FpX3N0cmVycm9yCitnZXRfbWFsbG9jX2xlYWtfaW5mbworZ2V0YWRkcmluZm8KK2dldGMKK2dldGNfdW5sb2NrZWQKK2dldGNoYXIKK2dldGNoYXJfdW5sb2NrZWQKK2dldGN3ZAorZ2V0ZGVudHMKK2dldGR0YWJsZXNpemUKK2dldGVnaWQKK2dldGVudgorZ2V0ZXVpZAorZ2V0Z2lkCitnZXRncmdpZAorZ2V0Z3JuYW0KK2dldGdyb3VwbGlzdAorZ2V0Z3JvdXBzCitnZXRob3N0YnlhZGRyCitnZXRob3N0YnluYW1lCitnZXRob3N0YnluYW1lMgorZ2V0aG9zdGJ5bmFtZV9yCitnZXRob3N0ZW50CitnZXRob3N0bmFtZQorZ2V0aXRpbWVyCitnZXRsb2dpbgorZ2V0bW50ZW50CitnZXRuYW1laW5mbworZ2V0bmV0YnlhZGRyCitnZXRuZXRieW5hbWUKK2dldG9wdAorZ2V0b3B0X2xvbmcKK2dldG9wdF9sb25nX29ubHkKK2dldHBlZXJuYW1lCitnZXRwZ2lkCitnZXRwZ3JwCitnZXRwaWQKK2dldHBwaWQKK2dldHByaW9yaXR5CitnZXRwcm90b2J5bmFtZQorZ2V0cHJvdG9ieW51bWJlcgorZ2V0cHQKK2dldHB3bmFtCitnZXRwd3VpZAorZ2V0cmVzZ2lkCitnZXRyZXN1aWQKK2dldHJsaW1pdAorZ2V0cnVzYWdlCitnZXRzCitnZXRzZXJ2YnluYW1lCitnZXRzZXJ2Ynlwb3J0CitnZXRzZXJ2ZW50CitnZXRzZXJ2ZW50X3IKK2dldHNvY2tuYW1lCitnZXRzb2Nrb3B0CitnZXR0aWQKK2dldHRpbWVvZmRheQorZ2V0dWlkCitnZXR1c2Vyc2hlbGwKK2dldHV0ZW50CitnZXR3YworZ2V0d2NoYXIKK2dtdGltZQorZ210aW1lNjQKK2dtdGltZTY0X3IKK2dtdGltZV9yCitoZXJyb3IKK2hzdHJlcnJvcgoraWZfaW5kZXh0b25hbWUKK2lmX25hbWV0b2luZGV4CitpbmRleAoraW5ldF9hZGRyCitpbmV0X2F0b24KK2luZXRfbnNhcF9hZGRyCitpbmV0X25zYXBfbnRvYQoraW5ldF9udG9hCitpbmV0X250b3AKK2luZXRfcHRvbgoraW5pdF9tb2R1bGUKK2luaXRncm91cHMKK2lub3RpZnlfYWRkX3dhdGNoCitpbm90aWZ5X2luaXQKK2lub3RpZnlfcm1fd2F0Y2gKK2lvY3RsCitpb3ByaW9fZ2V0Citpb3ByaW9fc2V0Citpc2FsbnVtCitpc2FscGhhCitpc2FzY2lpCitpc2F0dHkKK2lzYmxhbmsKK2lzY250cmwKK2lzZGlnaXQKK2lzZ3JhcGgKK2lzbG93ZXIKK2lzcHJpbnQKK2lzcHVuY3QKK2lzc2V0dWdpZAoraXNzcGFjZQoraXN1cHBlcgoraXN3YWxudW0KK2lzd2FscGhhCitpc3djbnRybAoraXN3Y3R5cGUKK2lzd2RpZ2l0Citpc3dncmFwaAoraXN3bG93ZXIKK2lzd3ByaW50Citpc3dwdW5jdAoraXN3c3BhY2UKK2lzd3VwcGVyCitpc3d4ZGlnaXQKK2lzeGRpZ2l0CitqcmFuZDQ4CitraWxsCitraWxscGcKK2tsb2djdGwKK2xjaG93bgorbGRleHAKK2xkaXYKK2xpbmsKK2xpc3RlbgorbGxkaXYKK2xvY2FsdGltZQorbG9jYWx0aW1lNjQKK2xvY2FsdGltZTY0X3IKK2xvY2FsdGltZV9yCitsb25nam1wCitsb25nam1wZXJyb3IKK2xyYW5kNDgKK2xzZWVrCitsc2VlazY0Citsc3RhdAorbWFkdmlzZQorbWFsbGluZm8KK21hbGxvYworbWFsbG9jX2RlYnVnX2luaXQKK21icmxlbgorbWJydG93YworbWJzaW5pdAorbWJzcnRvd2NzCittYnN0b3djcworbWVtYWxpZ24KK21lbWNjcHkKK21lbWNocgorbWVtY21wCittZW1jcHkKK21lbW1lbQorbWVtbW92ZQorbWVtcmNocgorbWVtc2V0CittZW1zd2FwCittaW5jb3JlCitta2RpcgorbWtkaXJhdAorbWtkdGVtcAorbWtub2QKK21rc3RlbXAKK21rc3RlbXBzCitta3RlbXAKK21rdGltZQorbWt0aW1lNjQKK21sb2NrCittbWFwCittb3VudAorbXByb3RlY3QKK21yYW5kNDgKK21yZW1hcAorbXN5bmMKK211bmxvY2sKK211bm1hcAorbmFub3NsZWVwCituaWNlCitucmFuZDQ4Cituc2Rpc3BhdGNoCitvcGVuCitvcGVuYXQKK29wZW5kaXIKK29wZW5sb2cKK29wZW5sb2dfcgorcGF0aGNvbmYKK3BhdXNlCitwY2xvc2UKK3BlcnJvcgorcGlwZQorcGlwZTIKK3BvbGwKK3BvcGVuCitwcmN0bAorcHJlYWQKK3ByaW50ZgorcHNlbGVjdAorcHRocmVhZF9hdHRyX2Rlc3Ryb3kKK3B0aHJlYWRfYXR0cl9nZXRkZXRhY2hzdGF0ZQorcHRocmVhZF9hdHRyX2dldGd1YXJkc2l6ZQorcHRocmVhZF9hdHRyX2dldHNjaGVkcGFyYW0KK3B0aHJlYWRfYXR0cl9nZXRzY2hlZHBvbGljeQorcHRocmVhZF9hdHRyX2dldHNjb3BlCitwdGhyZWFkX2F0dHJfZ2V0c3RhY2sKK3B0aHJlYWRfYXR0cl9nZXRzdGFja2FkZHIKK3B0aHJlYWRfYXR0cl9nZXRzdGFja3NpemUKK3B0aHJlYWRfYXR0cl9pbml0CitwdGhyZWFkX2F0dHJfc2V0ZGV0YWNoc3RhdGUKK3B0aHJlYWRfYXR0cl9zZXRndWFyZHNpemUKK3B0aHJlYWRfYXR0cl9zZXRzY2hlZHBhcmFtCitwdGhyZWFkX2F0dHJfc2V0c2NoZWRwb2xpY3kKK3B0aHJlYWRfYXR0cl9zZXRzY29wZQorcHRocmVhZF9hdHRyX3NldHN0YWNrCitwdGhyZWFkX2F0dHJfc2V0c3RhY2thZGRyCitwdGhyZWFkX2F0dHJfc2V0c3RhY2tzaXplCitwdGhyZWFkX2NvbmRfYnJvYWRjYXN0CitwdGhyZWFkX2NvbmRfZGVzdHJveQorcHRocmVhZF9jb25kX2luaXQKK3B0aHJlYWRfY29uZF9zaWduYWwKK3B0aHJlYWRfY29uZF90aW1lZHdhaXQKK3B0aHJlYWRfY29uZF90aW1lZHdhaXRfbW9ub3RvbmljCitwdGhyZWFkX2NvbmRfdGltZWR3YWl0X21vbm90b25pY19ucAorcHRocmVhZF9jb25kX3RpbWVkd2FpdF9yZWxhdGl2ZV9ucAorcHRocmVhZF9jb25kX3RpbWVvdXRfbnAKK3B0aHJlYWRfY29uZF93YWl0CitwdGhyZWFkX2NvbmRhdHRyX2Rlc3Ryb3kKK3B0aHJlYWRfY29uZGF0dHJfZ2V0cHNoYXJlZAorcHRocmVhZF9jb25kYXR0cl9pbml0CitwdGhyZWFkX2NvbmRhdHRyX3NldHBzaGFyZWQKK3B0aHJlYWRfY3JlYXRlCitwdGhyZWFkX2RldGFjaAorcHRocmVhZF9lcXVhbAorcHRocmVhZF9leGl0CitwdGhyZWFkX2dldGF0dHJfbnAKK3B0aHJlYWRfZ2V0Y3B1Y2xvY2tpZAorcHRocmVhZF9nZXRzY2hlZHBhcmFtCitwdGhyZWFkX2dldHNwZWNpZmljCitwdGhyZWFkX2pvaW4KK3B0aHJlYWRfa2V5X2NyZWF0ZQorcHRocmVhZF9rZXlfZGVsZXRlCitwdGhyZWFkX2tpbGwKK3B0aHJlYWRfbXV0ZXhfZGVzdHJveQorcHRocmVhZF9tdXRleF9pbml0CitwdGhyZWFkX211dGV4X2xvY2sKK3B0aHJlYWRfbXV0ZXhfbG9ja190aW1lb3V0X25wCitwdGhyZWFkX211dGV4X3RyeWxvY2sKK3B0aHJlYWRfbXV0ZXhfdW5sb2NrCitwdGhyZWFkX211dGV4YXR0cl9kZXN0cm95CitwdGhyZWFkX211dGV4YXR0cl9nZXRwc2hhcmVkCitwdGhyZWFkX211dGV4YXR0cl9nZXR0eXBlCitwdGhyZWFkX211dGV4YXR0cl9pbml0CitwdGhyZWFkX211dGV4YXR0cl9zZXRwc2hhcmVkCitwdGhyZWFkX211dGV4YXR0cl9zZXR0eXBlCitwdGhyZWFkX29uY2UKK3B0aHJlYWRfcndsb2NrX2Rlc3Ryb3kKK3B0aHJlYWRfcndsb2NrX2luaXQKK3B0aHJlYWRfcndsb2NrX3JkbG9jaworcHRocmVhZF9yd2xvY2tfdGltZWRyZGxvY2sKK3B0aHJlYWRfcndsb2NrX3RpbWVkd3Jsb2NrCitwdGhyZWFkX3J3bG9ja190cnlyZGxvY2sKK3B0aHJlYWRfcndsb2NrX3RyeXdybG9jaworcHRocmVhZF9yd2xvY2tfdW5sb2NrCitwdGhyZWFkX3J3bG9ja193cmxvY2sKK3B0aHJlYWRfcndsb2NrYXR0cl9kZXN0cm95CitwdGhyZWFkX3J3bG9ja2F0dHJfZ2V0cHNoYXJlZAorcHRocmVhZF9yd2xvY2thdHRyX2luaXQKK3B0aHJlYWRfcndsb2NrYXR0cl9zZXRwc2hhcmVkCitwdGhyZWFkX3NlbGYKK3B0aHJlYWRfc2V0bmFtZV9ucAorcHRocmVhZF9zZXRzY2hlZHBhcmFtCitwdGhyZWFkX3NldHNwZWNpZmljCitwdGhyZWFkX3NpZ21hc2sKK3B0cmFjZQorcHRzbmFtZQorcHRzbmFtZV9yCitwdXRjCitwdXRjX3VubG9ja2VkCitwdXRjaGFyCitwdXRjaGFyX3VubG9ja2VkCitwdXRlbnYKK3B1dHMKK3B1dHV0bGluZQorcHV0dworcHV0d2MKK3B1dHdjaGFyCitwd3JpdGUKK3Fzb3J0CityYWlzZQorcmVhZAorcmVhZGRpcgorcmVhZGRpcl9yCityZWFkbGluaworcmVhZHYKK3JlYWxsb2MKK3JlYWxwYXRoCityZWJvb3QKK3JlY3YKK3JlY3Zmcm9tCityZWN2bXNnCityZWdjb21wCityZWdlcnJvcgorcmVnZXhlYworcmVnZnJlZQorcmVtb3ZlCityZW5hbWUKK3JlbmFtZWF0CityZXNfaW5pdAorcmVzX21rcXVlcnkKK3Jlc19uZWVkX2luaXQKK3Jlc19xdWVyeQorcmVzX3NlYXJjaAorcmV3aW5kCityZXdpbmRkaXIKK3JtZGlyCitzYnJrCitzY2FuZGlyCitzY2FuZgorc2NoZWRfZ2V0X3ByaW9yaXR5X21heAorc2NoZWRfZ2V0X3ByaW9yaXR5X21pbgorc2NoZWRfZ2V0cGFyYW0KK3NjaGVkX2dldHNjaGVkdWxlcgorc2NoZWRfcnJfZ2V0X2ludGVydmFsCitzY2hlZF9zZXRwYXJhbQorc2NoZWRfc2V0c2NoZWR1bGVyCitzY2hlZF95aWVsZAorc2VlZDQ4CitzZWxlY3QKK3NlbV9jbG9zZQorc2VtX2Rlc3Ryb3kKK3NlbV9nZXR2YWx1ZQorc2VtX2luaXQKK3NlbV9vcGVuCitzZW1fcG9zdAorc2VtX3RpbWVkd2FpdAorc2VtX3RyeXdhaXQKK3NlbV91bmxpbmsKK3NlbV93YWl0CitzZW5kCitzZW5kZmlsZQorc2VuZG1zZworc2VuZHRvCitzZXRidWYKK3NldGJ1ZmZlcgorc2V0ZWdpZAorc2V0ZW52CitzZXRldWlkCitzZXRnaWQKK3NldGdyb3Vwcworc2V0aXRpbWVyCitzZXRqbXAKK3NldGxpbmVidWYKK3NldGxvY2FsZQorc2V0bG9nbWFzaworc2V0bG9nbWFza19yCitzZXRwZ2lkCitzZXRwZ3JwCitzZXRwcmlvcml0eQorc2V0cmVnaWQKK3NldHJlc2dpZAorc2V0cmVzdWlkCitzZXRyZXVpZAorc2V0cmxpbWl0CitzZXRzZXJ2ZW50CitzZXRzaWQKK3NldHNvY2tvcHQKK3NldHRpbWVvZmRheQorc2V0dWlkCitzZXR1c2Vyc2hlbGwKK3NldHV0ZW50CitzZXR2YnVmCitzaHV0ZG93bgorc2lnYWN0aW9uCitzaWdhbHRzdGFjaworc2lnYmxvY2sKK3NpZ2ludGVycnVwdAorc2lnbG9uZ2ptcAorc2lncGVuZGluZworc2lncHJvY21hc2sKK3NpZ3NldGptcAorc2lnc2V0bWFzaworc2lnc3VzcGVuZAorc2lnd2FpdAorc2xlZXAKK3NucHJpbnRmCitzb2NrZXQKK3NvY2tldHBhaXIKK3NwcmludGYKK3NyYW5kNDgKK3NzY2FuZgorc3RhdAorc3RhdGZzCitzdHJjYXNlY21wCitzdHJjYXNlc3RyCitzdHJjYXQKK3N0cmNocgorc3RyY21wCitzdHJjb2xsCitzdHJjcHkKK3N0cmNzcG4KK3N0cmR1cAorc3RyZXJyb3IKK3N0cmVycm9yX3IKK3N0cmZ0aW1lCitzdHJmdGltZV90egorc3RybGNhdAorc3RybGNweQorc3RybGVuCitzdHJuY2FzZWNtcAorc3RybmNhdAorc3RybmNtcAorc3RybmNweQorc3RybmR1cAorc3Rybmxlbgorc3RybnRvaW1heAorc3RybnRvdW1heAorc3RycGJyaworc3RycHRpbWUKK3N0cnJjaHIKK3N0cnNlcAorc3Ryc2lnbmFsCitzdHJzcG4KK3N0cnN0cgorc3RydG9kCitzdHJ0b2ltYXgKK3N0cnRvaworc3RydG9rX3IKK3N0cnRvbAorc3RydG9sbAorc3RydG90aW1ldmFsCitzdHJ0b3VsCitzdHJ0b3VsbAorc3RydG91bWF4CitzdHJ4ZnJtCitzd3ByaW50Zgorc3dzY2FuZgorc3ltbGluaworc3luYworc3lzY2FsbAorc3lzY29uZgorc3lzaW5mbworc3lzbG9nCitzeXNsb2dfcgorc3lzdGVtCitzeXN2X3NpZ25hbAordGNnZXRwZ3JwCit0Y3NldHBncnAKK3RlbXBuYW0KK3RpbWUKK3RpbWVnbTY0Cit0aW1lbG9jYWw2NAordGltZXJfY3JlYXRlCit0aW1lcl9kZWxldGUKK3RpbWVyX2dldG92ZXJydW4KK3RpbWVyX2dldHRpbWUKK3RpbWVyX3NldHRpbWUKK3RpbWVzCit0a2lsbAordG1wZmlsZQordG1wbmFtCit0b2FzY2lpCit0b2xvd2VyCit0b3VwcGVyCit0b3dsb3dlcgordG93dXBwZXIKK3RydW5jYXRlCit0dHluYW1lCit0dHluYW1lX3IKK3R6c2V0Cit1bWFzawordW1vdW50Cit1bW91bnQyCit1bmFtZQordW5nZXRjCit1bmdldHdjCit1bmxpbmsKK3VubGlua2F0Cit1bmxvY2twdAordW5zZXRlbnYKK3VzbGVlcAordXRpbWUKK3V0aW1lcwordXRpbWVuc2F0Cit1dG1wbmFtZQordmFsaWRfdG1fbW9uCit2YWxpZF90bV93ZGF5Cit2YWxsb2MKK3Zhc3ByaW50ZgordmVycgordmVycngKK3ZmZHByaW50ZgordmZvcmsKK3ZmcHJpbnRmCit2ZnNjYW5mCit2ZndwcmludGYKK3ZwcmludGYKK3ZzY2FuZgordnNucHJpbnRmCit2c3ByaW50ZgordnNzY2FuZgordnN3cHJpbnRmCit2c3lzbG9nCit2c3lzbG9nX3IKK3Z3YXJuCit2d2FybngKK3Z3cHJpbnRmCit3YWl0Cit3YWl0Mword2FpdDQKK3dhaXRpZAord2FpdHBpZAord2Fybgord2FybngKK3djcGNweQord2NwbmNweQord2NydG9tYgord2NzY2FzZWNtcAord2NzY2F0Cit3Y3NjaHIKK3djc2NtcAord2NzY29sbAord2NzY3B5Cit3Y3Njc3BuCit3Y3NkdXAKK3djc2Z0aW1lCit3Y3NsY2F0Cit3Y3NsY3B5Cit3Y3NsZW4KK3djc25jYXNlY21wCit3Y3NuY2F0Cit3Y3NuY21wCit3Y3NuY3B5Cit3Y3NubGVuCit3Y3NwYnJrCit3Y3NyY2hyCit3Y3NydG9tYnMKK3djc3Nwbgord2Nzc3RyCit3Y3N0b2QKK3djc3Rvaword2NzdG9sCit3Y3N0b21icword2NzdG91bAord2Nzd2NzCit3Y3N3aWR0aAord2NzeGZybQord2N0b2IKK3djdHlwZQord2N3aWR0aAord21lbWNocgord21lbWNtcAord21lbWNweQord21lbW1vdmUKK3dtZW1zZXQKK3dwcmludGYKK3dyaXRlCit3cml0ZXYKK3dzY2FuZgpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE5L2FyY2gtbWlwcy9zeW1ib2xzL2xpYmMuc28udmFyaWFibGVzLnR4dCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOS9hcmNoLW1pcHMvc3ltYm9scy9saWJjLnNvLnZhcmlhYmxlcy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2U1ZWY2MwotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOS9hcmNoLW1pcHMvc3ltYm9scy9saWJjLnNvLnZhcmlhYmxlcy50eHQKQEAgLTAsMCArMSw1MSBAQAorX0NfY3R5cGVfCitfQ190b2xvd2VyXworX0NfdG91cHBlcl8KK19fYXRleGl0CitfX2F0ZXhpdF9pbnZhbGlkCitfX2Jpb25pY19icmsKK19fZXZPcHRNb25vVGltZQorX19pc3RocmVhZGVkCitfX2xpYmNfbWFsbG9jX2RlZmF1bHRfZGlzcGF0Y2gKK19fbGliY19tYWxsb2NfZGlzcGF0Y2gKK19fcF9jZXJ0X3N5bXMKK19fcF9jbGFzc19zeW1zCitfX3BfZGVmYXVsdF9zZWN0aW9uX3N5bXMKK19fcF9rZXlfc3ltcworX19wX3Jjb2RlX3N5bXMKK19fcF90eXBlX3N5bXMKK19fcF91cGRhdGVfc2VjdGlvbl9zeW1zCitfX3BhZ2Vfc2hpZnQKK19fcGFnZV9zaXplCitfX3Byb2duYW1lCitfX3JhbmQ0OF9hZGQKK19fcmFuZDQ4X211bHQKK19fcmFuZDQ4X3NlZWQKK19fc0YKK19fc0ZleHQKK19fc2RpZGluaXQKK19fc2dsdWUKK19fc3RhY2tfY2hrX2d1YXJkCitfX3N5c3RlbV9wcm9wZXJ0eV9hcmVhX18KK19jdHlwZV8KK19ucmVzCitfbnNfZmxhZ2RhdGEKK19yYW5kNDhfYWRkCitfcmFuZDQ4X211bHQKK19yYW5kNDhfc2VlZAorX3Jlc19vcGNvZGVzCitfdG9sb3dlcl90YWJfCitfdG91cHBlcl90YWJfCitkYXlsaWdodAorZW52aXJvbgoraF9lcnJsaXN0CitoX25lcnIKK29wdGFyZworb3B0ZXJyCitvcHRpbmQKK29wdG9wdAorb3B0cmVzZXQKK3N5c19zaWdsaXN0CitzeXNfc2lnbmFtZQordGltZXpvbmUKK3R6bmFtZQpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE5L2FyY2gteDg2L3N5bWJvbHMvbGliYy5zby5mdW5jdGlvbnMudHh0IGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE5L2FyY2gteDg2L3N5bWJvbHMvbGliYy5zby5mdW5jdGlvbnMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmZWZhNWYKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTkvYXJjaC14ODYvc3ltYm9scy9saWJjLnNvLmZ1bmN0aW9ucy50eHQKQEAgLTAsMCArMSw5NDYgQEAKK01ENV9GaW5hbAorTUQ1X0luaXQKK01ENV9VcGRhdGUKK1NIQTFGaW5hbAorU0hBMUluaXQKK1NIQTFUcmFuc2Zvcm0KK1NIQTFVcGRhdGUKK19fYXJjNF9nZXRieXRlCitfX2Fzc2VydAorX19hc3NlcnQyCitfX2F0ZXhpdF9yZWdpc3Rlcl9jbGVhbnVwCitfX2I2NF9udG9wCitfX2I2NF9wdG9uCitfX2JyaworX19jeGFfYXRleGl0CitfX2N4YV9maW5hbGl6ZQorX19kaXZkaTMKK19fZG5fY29tcAorX19kbl9jb3VudF9sYWJlbHMKK19fZG5fc2tpcG5hbWUKK19fZG9yYW5kNDgKK19fZHRvYQorX19lcnJubworX19ldkFkZFRpbWUKK19fZXZDbXBUaW1lCitfX2V2Q29uc0lvdmVjCitfX2V2Q29uc1RpbWUKK19fZXZOb3dUaW1lCitfX2V2U3ViVGltZQorX19ldlRpbWVTcGVjCitfX2V2VGltZVZhbAorX19ldlVUQ1RpbWUKK19fZmNudGwKK19fZmNudGw2NAorX19maW5kZW52CitfX2ZvcmsKK19fZnBfbnF1ZXJ5CitfX2ZwX3F1ZXJ5CitfX2ZyZW1vdmVsb2NrCitfX2ZzdGF0ZnM2NAorX19mdXRleF9zeXNjYWxsMworX19mdXRleF9zeXNjYWxsNAorX19mdXRleF93YWl0CitfX2Z1dGV4X3dhaXRfZXgKK19fZnV0ZXhfd2FrZQorX19mdXRleF93YWtlX2V4CitfX2dldF9oX2Vycm5vCitfX2dldF9yZXNfY2FjaGUKK19fZ2V0X3NwCitfX2dldF9zdGFja19iYXNlCitfX2dldF90aHJlYWQKK19fZ2V0X3RscworX19nZXRjd2QKK19fZ2V0cHJpb3JpdHkKK19faG9zdGFsaWFzCitfX2luaXRfdGxzCitfX2lvY3RsCitfX2xpYmNfYW5kcm9pZF9sb2dfYXNzZXJ0CitfX2xpYmNfYW5kcm9pZF9sb2dfcHJpbnQKK19fbGliY19hbmRyb2lkX2xvZ192cHJpbnQKK19fbGliY19maW5pCitfX2xpYmNfaW5pdAorX19saWJjX2luaXRfY29tbW9uCitfX2xpYmNfcHJlaW5pdAorX19sbHNlZWsKK19fbG9jX2F0b24KK19fbG9jX250b2EKK19fbW1hcDIKK19fbW9kZGkzCitfX25zX2Zvcm1hdF90dGwKK19fbnNfZ2V0MTYKK19fbnNfZ2V0MzIKK19fbnNfaW5pdHBhcnNlCitfX25zX21ha2VjYW5vbgorX19uc19tc2dfZ2V0ZmxhZworX19uc19uYW1lX2NvbXByZXNzCitfX25zX25hbWVfbnRvbAorX19uc19uYW1lX250b3AKK19fbnNfbmFtZV9wYWNrCitfX25zX25hbWVfcHRvbgorX19uc19uYW1lX3JvbGxiYWNrCitfX25zX25hbWVfc2tpcAorX19uc19uYW1lX3VuY29tcHJlc3MKK19fbnNfbmFtZV91bnBhY2sKK19fbnNfcGFyc2VycgorX19uc19wdXQxNgorX19uc19wdXQzMgorX19uc19zYW1lbmFtZQorX19uc19za2lwcnIKK19fbnNfc3ByaW50cnIKK19fbnNfc3ByaW50cnJmCitfX29wZW4KK19fb3BlbmF0CitfX3BfY2RuYW1lCitfX3BfY2RubmFtZQorX19wX2NsYXNzCitfX3BfZnFuYW1lCitfX3BfZnFubmFtZQorX19wX29wdGlvbgorX19wX3F1ZXJ5CitfX3BfcmNvZGUKK19fcF9zZWNzdG9kYXRlCitfX3Bfc2VjdGlvbgorX19wX3NvY2t1bgorX19wX3RpbWUKK19fcF90eXBlCitfX3ByZWFkNjQKK19fcHRocmVhZF9jbGVhbnVwX3BvcAorX19wdGhyZWFkX2NsZWFudXBfcHVzaAorX19wdGhyZWFkX2Nsb25lCitfX3B0aHJlYWRfY29uZF90aW1lZHdhaXQKK19fcHRocmVhZF9jb25kX3RpbWVkd2FpdF9yZWxhdGl2ZQorX19wdHJhY2UKK19fcHV0bG9uZworX19wdXRzaG9ydAorX19wd3JpdGU2NAorX19yZWJvb3QKK19fcmVzX2Nsb3NlCitfX3Jlc19kbm9rCitfX3Jlc19nZXRfbmliYmxlc3VmZml4CitfX3Jlc19nZXRfbmliYmxlc3VmZml4MgorX19yZXNfZ2V0X3N0YXRlCitfX3Jlc19nZXRfc3RhdGljCitfX3Jlc19nZXRzZXJ2ZXJzCitfX3Jlc19obm9rCitfX3Jlc19ob3N0YWxpYXMKK19fcmVzX2lzb3Vyc2VydmVyCitfX3Jlc19tYWlsb2sKK19fcmVzX25hbWVpbnF1ZXJ5CitfX3Jlc19uYW1ldG9jbGFzcworX19yZXNfbmFtZXRvdHlwZQorX19yZXNfbmNsb3NlCitfX3Jlc19uZGVzdHJveQorX19yZXNfbmluaXQKK19fcmVzX25ta3F1ZXJ5CitfX3Jlc19ub3B0CitfX3Jlc19ucXVlcnkKK19fcmVzX25xdWVyeWRvbWFpbgorX19yZXNfbnNlYXJjaAorX19yZXNfbnNlbmQKK19fcmVzX29wdAorX19yZXNfb3Vyc2VydmVyX3AKK19fcmVzX293bm9rCitfX3Jlc19wcXVlcnkKK19fcmVzX3B1dF9zdGF0ZQorX19yZXNfcXVlcmllc21hdGNoCitfX3Jlc19xdWVyeWRvbWFpbgorX19yZXNfcmFuZG9taWQKK19fcmVzX3NlbmQKK19fcmVzX3NlbmRfc2V0cWhvb2sKK19fcmVzX3NlbmRfc2V0cmhvb2sKK19fcmVzX3NldHNlcnZlcnMKK19fcmVzX3Zpbml0CitfX3J0X3NpZ2FjdGlvbgorX19ydF9zaWdwcm9jbWFzaworX19ydF9zaWd0aW1lZHdhaXQKK19fc2Nsb3NlCitfX3NldF9zeXNjYWxsX2Vycm5vCitfX3NldF90aHJlYWRfYXJlYQorX19zZXRfdGxzCitfX3NldHJlc3VpZAorX19zZXRyZXVpZAorX19zZXR1aWQKK19fc2ZsYWdzCitfX3NmbHVzaAorX19zZnAKK19fc2Z2d3JpdGUKK19fc2lnc3VzcGVuZAorX19zaW5pdAorX19zbGJleHBhbmQKK19fc21ha2VidWYKK19fc3JlYWQKK19fc3JlZmlsbAorX19zcmdldAorX19zc2VlaworX19zdGFja19jaGtfZmFpbAorX19zdGF0ZnM2NAorX19zd2J1ZgorX19zd2hhdGJ1ZgorX19zd3JpdGUKK19fc3dzZXR1cAorX19zeW1fbnRvcAorX19zeW1fbnRvcworX19zeW1fc3RvbgorX19zeXNfY2xvbmUKK19fc3lzbG9nCitfX3N5c3RlbV9wcm9wZXJ0aWVzX2luaXQKK19fc3lzdGVtX3Byb3BlcnR5X2ZpbmQKK19fc3lzdGVtX3Byb3BlcnR5X2ZpbmRfbnRoCitfX3N5c3RlbV9wcm9wZXJ0eV9nZXQKK19fc3lzdGVtX3Byb3BlcnR5X3JlYWQKK19fc3lzdGVtX3Byb3BlcnR5X3dhaXQKK19fdGhyZWFkX2VudHJ5CitfX3RpbWVyX2NyZWF0ZQorX190aW1lcl9kZWxldGUKK19fdGltZXJfZ2V0b3ZlcnJ1bgorX190aW1lcl9nZXR0aW1lCitfX3RpbWVyX3NldHRpbWUKK19fdGltZXJfdGFibGVfc3RhcnRfc3RvcAorX191ZGl2ZGkzCitfX3Vtb2RkaTMKK19fd2FpdDQKK19fd2FpdGlkCitfY2xlYW51cAorX2RvcmFuZDQ4CitfZW5kaHRlbnQKK19leGl0CitfZXhpdF90aHJlYWQKK19leGl0X3dpdGhfc3RhY2tfdGVhcmRvd24KK19md2FsaworX2dldGh0YnlhZGRyCitfZ2V0aHRieW5hbWUKK19nZXRodGJ5bmFtZTIKK19nZXRodGVudAorX2dldGxvbmcKK19nZXRzaG9ydAorX2luaXRfdGhyZWFkCitfbG9uZ2ptcAorX21rdGVtcAorX3NldGh0ZW50Citfc2V0am1wCitfdGhyZWFkX2NyZWF0ZWRfaG9vaworX3dhaXRwaWQKK2Fib3J0CithY2NlcHQKK2FjY2VzcworYWNjdAorYWxhcm0KK2FscGhhc29ydAorYXJjNHJhbmRvbQorYXJjNHJhbmRvbV9hZGRyYW5kb20KK2FyYzRyYW5kb21fYnVmCithcmM0cmFuZG9tX3N0aXIKK2FyYzRyYW5kb21fdW5pZm9ybQorYXNjdGltZQorYXNjdGltZTY0Cithc2N0aW1lNjRfcgorYXNjdGltZV9yCithc3ByaW50ZgorYXRvaQorYXRvbAorYXRvbGwKK2Jhc2VuYW1lCitiYXNlbmFtZV9yCitiY29weQorYmluZAorYmluZHJlc3Zwb3J0CiticmsKK2JzZF9zaWduYWwKK2JzZWFyY2gKK2J0b3djCitiemVybworY2FsbG9jCitjYXBnZXQKK2NhcHNldAorY2hkaXIKK2NobW9kCitjaG93bgorY2hyb290CitjbGVhcmVudgorY2xlYXJlcnIKK2Nsb2NrCitjbG9ja19nZXRyZXMKK2Nsb2NrX2dldHRpbWUKK2Nsb2NrX25hbm9zbGVlcAorY2xvY2tfc2V0dGltZQorY2xvbmUKK2Nsb3NlCitjbG9zZWRpcgorY2xvc2Vsb2cKK2Nsb3NlbG9nX3IKK2Nvbm5lY3QKK2NvcHlfVE1fdG9fdG0KK2NvcHlfdG1fdG9fVE0KK2NwdWFjY3RfYWRkCitjcmVhdAorY3RpbWUKK2N0aW1lNjQKK2N0aW1lNjRfcgorY3RpbWVfcgorZGFlbW9uCitkZWxldGVfbW9kdWxlCitkaWZmdGltZQorZGlyZmQKK2Rpcm5hbWUKK2Rpcm5hbWVfcgorZGl2CitkbGNhbGxvYworZGxmcmVlCitkbGluZGVwZW5kZW50X2NhbGxvYworZGxpbmRlcGVuZGVudF9jb21hbGxvYworZGxtYWxsaW5mbworZGxtYWxsb2MKK2RsbWFsbG9jX2Zvb3RwcmludAorZGxtYWxsb2NfbWF4X2Zvb3RwcmludAorZGxtYWxsb2Nfc3RhdHMKK2RsbWFsbG9jX3RyaW0KK2RsbWFsbG9jX3VzYWJsZV9zaXplCitkbG1hbGxvY193YWxrX2ZyZWVfcGFnZXMKK2RsbWFsbG9jX3dhbGtfaGVhcAorZGxtYWxsb3B0CitkbG1lbWFsaWduCitkbHB2YWxsb2MKK2RscmVhbGxvYworZGx2YWxsb2MKK2RuX2V4cGFuZAorZHJhbmQ0OAorZHVwCitkdXAyCitlbmRwd2VudAorZW5kc2VydmVudAorZW5kdXNlcnNoZWxsCitlbmR1dGVudAorZXBvbGxfY3JlYXRlCitlcG9sbF9jdGwKK2Vwb2xsX3dhaXQKK2VyYW5kNDgKK2VycgorZXJyeAorZXZlbnRmZAorZXZlbnRmZF9yZWFkCitldmVudGZkX3dyaXRlCitleGVjbAorZXhlY2xlCitleGVjbHAKK2V4ZWN2CitleGVjdmUKK2V4ZWN2cAorZXhpdAorZmNoZGlyCitmY2htb2QKK2ZjaG1vZGF0CitmY2hvd24KK2ZjaG93bmF0CitmY2xvc2UKK2ZjbnRsCitmZGF0YXN5bmMKK2Zkb3BlbgorZmRvcGVuZGlyCitmZHByaW50ZgorZmVvZgorZmVycm9yCitmZmx1c2gKK2ZnZXRjCitmZ2V0bG4KK2ZnZXRwb3MKK2ZnZXRzCitmZ2V0d2MKK2ZnZXR3cworZmlsZW5vCitmbG9jaworZmxvY2tmaWxlCitmbm1hdGNoCitmb3BlbgorZm9yaworZnBhdGhjb25mCitmcHJpbnRmCitmcHVyZ2UKK2ZwdXRjCitmcHV0cworZnB1dHdjCitmcHV0d3MKK2ZyZWFkCitmcmVlCitmcmVlYWRkcmluZm8KK2ZyZWVkdG9hCitmcmVvcGVuCitmc2NhbmYKK2ZzZWVrCitmc2Vla28KK2ZzZXRwb3MKK2ZzdGF0Citmc3RhdGF0Citmc3RhdGZzCitmc3luYworZnRlbGwKK2Z0ZWxsbworZnRpbWUKK2Z0b2sKK2Z0cnVuY2F0ZQorZnRyeWxvY2tmaWxlCitmdHNfY2hpbGRyZW4KK2Z0c19jbG9zZQorZnRzX29wZW4KK2Z0c19yZWFkCitmdHNfc2V0CitmdW5sb2NrZmlsZQorZnVub3BlbgorZnV0ZXgKK2Z1dGltZW5zCitmd2lkZQorZndwcmludGYKK2Z3cml0ZQorZndzY2FuZgorZ2FpX3N0cmVycm9yCitnZXRfbWFsbG9jX2xlYWtfaW5mbworZ2V0YWRkcmluZm8KK2dldGMKK2dldGNfdW5sb2NrZWQKK2dldGNoYXIKK2dldGNoYXJfdW5sb2NrZWQKK2dldGN3ZAorZ2V0ZGVudHMKK2dldGR0YWJsZXNpemUKK2dldGVnaWQKK2dldGVudgorZ2V0ZXVpZAorZ2V0Z2lkCitnZXRncmdpZAorZ2V0Z3JuYW0KK2dldGdyb3VwbGlzdAorZ2V0Z3JvdXBzCitnZXRob3N0YnlhZGRyCitnZXRob3N0YnluYW1lCitnZXRob3N0YnluYW1lMgorZ2V0aG9zdGJ5bmFtZV9yCitnZXRob3N0ZW50CitnZXRob3N0bmFtZQorZ2V0aXRpbWVyCitnZXRsb2dpbgorZ2V0bW50ZW50CitnZXRuYW1laW5mbworZ2V0bmV0YnlhZGRyCitnZXRuZXRieW5hbWUKK2dldG9wdAorZ2V0b3B0X2xvbmcKK2dldG9wdF9sb25nX29ubHkKK2dldHBlZXJuYW1lCitnZXRwZ2lkCitnZXRwZ3JwCitnZXRwaWQKK2dldHBwaWQKK2dldHByaW9yaXR5CitnZXRwcm90b2J5bmFtZQorZ2V0cHJvdG9ieW51bWJlcgorZ2V0cHQKK2dldHB3bmFtCitnZXRwd3VpZAorZ2V0cmVzZ2lkCitnZXRyZXN1aWQKK2dldHJsaW1pdAorZ2V0cnVzYWdlCitnZXRzCitnZXRzZXJ2YnluYW1lCitnZXRzZXJ2Ynlwb3J0CitnZXRzZXJ2ZW50CitnZXRzZXJ2ZW50X3IKK2dldHNvY2tuYW1lCitnZXRzb2Nrb3B0CitnZXR0aWQKK2dldHRpbWVvZmRheQorZ2V0dWlkCitnZXR1c2Vyc2hlbGwKK2dldHV0ZW50CitnZXR3YworZ2V0d2NoYXIKK2dtdGltZQorZ210aW1lNjQKK2dtdGltZTY0X3IKK2dtdGltZV9yCitoZXJyb3IKK2hzdHJlcnJvcgoraWZfaW5kZXh0b25hbWUKK2lmX25hbWV0b2luZGV4CitpbmRleAoraW5ldF9hZGRyCitpbmV0X2F0b24KK2luZXRfbnNhcF9hZGRyCitpbmV0X25zYXBfbnRvYQoraW5ldF9udG9hCitpbmV0X250b3AKK2luZXRfcHRvbgoraW5pdF9tb2R1bGUKK2luaXRncm91cHMKK2lub3RpZnlfYWRkX3dhdGNoCitpbm90aWZ5X2luaXQKK2lub3RpZnlfcm1fd2F0Y2gKK2lvY3RsCitpb3ByaW9fZ2V0Citpb3ByaW9fc2V0Citpc2FsbnVtCitpc2FscGhhCitpc2FzY2lpCitpc2F0dHkKK2lzYmxhbmsKK2lzY250cmwKK2lzZGlnaXQKK2lzZ3JhcGgKK2lzbG93ZXIKK2lzcHJpbnQKK2lzcHVuY3QKK2lzc2V0dWdpZAoraXNzcGFjZQoraXN1cHBlcgoraXN3YWxudW0KK2lzd2FscGhhCitpc3djbnRybAoraXN3Y3R5cGUKK2lzd2RpZ2l0Citpc3dncmFwaAoraXN3bG93ZXIKK2lzd3ByaW50Citpc3dwdW5jdAoraXN3c3BhY2UKK2lzd3VwcGVyCitpc3d4ZGlnaXQKK2lzeGRpZ2l0CitqcmFuZDQ4CitraWxsCitraWxscGcKK2tsb2djdGwKK2xjaG93bgorbGRleHAKK2xkaXYKK2xpbmsKK2xpc3RlbgorbGxkaXYKK2xvY2FsdGltZQorbG9jYWx0aW1lNjQKK2xvY2FsdGltZTY0X3IKK2xvY2FsdGltZV9yCitsb25nam1wCitsb25nam1wZXJyb3IKK2xyYW5kNDgKK2xzZWVrCitsc2VlazY0Citsc3RhdAorbWFkdmlzZQorbWFsbGluZm8KK21hbGxvYworbWFsbG9jX2RlYnVnX2luaXQKK21icmxlbgorbWJydG93YworbWJzaW5pdAorbWJzcnRvd2NzCittYnN0b3djcworbWVtYWxpZ24KK21lbWNjcHkKK21lbWNocgorbWVtY21wCittZW1jcHkKK21lbW1lbQorbWVtbW92ZQorbWVtcmNocgorbWVtc2V0CittZW1zd2FwCittaW5jb3JlCitta2RpcgorbWtkaXJhdAorbWtkdGVtcAorbWtub2QKK21rc3RlbXAKK21rc3RlbXBzCitta3RlbXAKK21rdGltZQorbWt0aW1lNjQKK21sb2NrCittbWFwCittb3VudAorbXByb3RlY3QKK21yYW5kNDgKK21yZW1hcAorbXN5bmMKK211bmxvY2sKK211bm1hcAorbmFub3NsZWVwCituaWNlCitucmFuZDQ4Cituc2Rpc3BhdGNoCitvcGVuCitvcGVuYXQKK29wZW5kaXIKK29wZW5sb2cKK29wZW5sb2dfcgorcGF0aGNvbmYKK3BhdXNlCitwY2xvc2UKK3BlcnJvcgorcGlwZQorcGlwZTIKK3BvbGwKK3BvcGVuCitwcmN0bAorcHJlYWQKK3ByaW50ZgorcHNlbGVjdAorcHRocmVhZF9hdHRyX2Rlc3Ryb3kKK3B0aHJlYWRfYXR0cl9nZXRkZXRhY2hzdGF0ZQorcHRocmVhZF9hdHRyX2dldGd1YXJkc2l6ZQorcHRocmVhZF9hdHRyX2dldHNjaGVkcGFyYW0KK3B0aHJlYWRfYXR0cl9nZXRzY2hlZHBvbGljeQorcHRocmVhZF9hdHRyX2dldHNjb3BlCitwdGhyZWFkX2F0dHJfZ2V0c3RhY2sKK3B0aHJlYWRfYXR0cl9nZXRzdGFja2FkZHIKK3B0aHJlYWRfYXR0cl9nZXRzdGFja3NpemUKK3B0aHJlYWRfYXR0cl9pbml0CitwdGhyZWFkX2F0dHJfc2V0ZGV0YWNoc3RhdGUKK3B0aHJlYWRfYXR0cl9zZXRndWFyZHNpemUKK3B0aHJlYWRfYXR0cl9zZXRzY2hlZHBhcmFtCitwdGhyZWFkX2F0dHJfc2V0c2NoZWRwb2xpY3kKK3B0aHJlYWRfYXR0cl9zZXRzY29wZQorcHRocmVhZF9hdHRyX3NldHN0YWNrCitwdGhyZWFkX2F0dHJfc2V0c3RhY2thZGRyCitwdGhyZWFkX2F0dHJfc2V0c3RhY2tzaXplCitwdGhyZWFkX2NvbmRfYnJvYWRjYXN0CitwdGhyZWFkX2NvbmRfZGVzdHJveQorcHRocmVhZF9jb25kX2luaXQKK3B0aHJlYWRfY29uZF9zaWduYWwKK3B0aHJlYWRfY29uZF90aW1lZHdhaXQKK3B0aHJlYWRfY29uZF90aW1lZHdhaXRfbW9ub3RvbmljCitwdGhyZWFkX2NvbmRfdGltZWR3YWl0X21vbm90b25pY19ucAorcHRocmVhZF9jb25kX3RpbWVkd2FpdF9yZWxhdGl2ZV9ucAorcHRocmVhZF9jb25kX3RpbWVvdXRfbnAKK3B0aHJlYWRfY29uZF93YWl0CitwdGhyZWFkX2NvbmRhdHRyX2Rlc3Ryb3kKK3B0aHJlYWRfY29uZGF0dHJfZ2V0cHNoYXJlZAorcHRocmVhZF9jb25kYXR0cl9pbml0CitwdGhyZWFkX2NvbmRhdHRyX3NldHBzaGFyZWQKK3B0aHJlYWRfY3JlYXRlCitwdGhyZWFkX2RldGFjaAorcHRocmVhZF9lcXVhbAorcHRocmVhZF9leGl0CitwdGhyZWFkX2dldGF0dHJfbnAKK3B0aHJlYWRfZ2V0Y3B1Y2xvY2tpZAorcHRocmVhZF9nZXRzY2hlZHBhcmFtCitwdGhyZWFkX2dldHNwZWNpZmljCitwdGhyZWFkX2pvaW4KK3B0aHJlYWRfa2V5X2NyZWF0ZQorcHRocmVhZF9rZXlfZGVsZXRlCitwdGhyZWFkX2tpbGwKK3B0aHJlYWRfbXV0ZXhfZGVzdHJveQorcHRocmVhZF9tdXRleF9pbml0CitwdGhyZWFkX211dGV4X2xvY2sKK3B0aHJlYWRfbXV0ZXhfbG9ja190aW1lb3V0X25wCitwdGhyZWFkX211dGV4X3RyeWxvY2sKK3B0aHJlYWRfbXV0ZXhfdW5sb2NrCitwdGhyZWFkX211dGV4YXR0cl9kZXN0cm95CitwdGhyZWFkX211dGV4YXR0cl9nZXRwc2hhcmVkCitwdGhyZWFkX211dGV4YXR0cl9nZXR0eXBlCitwdGhyZWFkX211dGV4YXR0cl9pbml0CitwdGhyZWFkX211dGV4YXR0cl9zZXRwc2hhcmVkCitwdGhyZWFkX211dGV4YXR0cl9zZXR0eXBlCitwdGhyZWFkX29uY2UKK3B0aHJlYWRfcndsb2NrX2Rlc3Ryb3kKK3B0aHJlYWRfcndsb2NrX2luaXQKK3B0aHJlYWRfcndsb2NrX3JkbG9jaworcHRocmVhZF9yd2xvY2tfdGltZWRyZGxvY2sKK3B0aHJlYWRfcndsb2NrX3RpbWVkd3Jsb2NrCitwdGhyZWFkX3J3bG9ja190cnlyZGxvY2sKK3B0aHJlYWRfcndsb2NrX3RyeXdybG9jaworcHRocmVhZF9yd2xvY2tfdW5sb2NrCitwdGhyZWFkX3J3bG9ja193cmxvY2sKK3B0aHJlYWRfcndsb2NrYXR0cl9kZXN0cm95CitwdGhyZWFkX3J3bG9ja2F0dHJfZ2V0cHNoYXJlZAorcHRocmVhZF9yd2xvY2thdHRyX2luaXQKK3B0aHJlYWRfcndsb2NrYXR0cl9zZXRwc2hhcmVkCitwdGhyZWFkX3NlbGYKK3B0aHJlYWRfc2V0bmFtZV9ucAorcHRocmVhZF9zZXRzY2hlZHBhcmFtCitwdGhyZWFkX3NldHNwZWNpZmljCitwdGhyZWFkX3NpZ21hc2sKK3B0cmFjZQorcHRzbmFtZQorcHRzbmFtZV9yCitwdXRjCitwdXRjX3VubG9ja2VkCitwdXRjaGFyCitwdXRjaGFyX3VubG9ja2VkCitwdXRlbnYKK3B1dHMKK3B1dHV0bGluZQorcHV0dworcHV0d2MKK3B1dHdjaGFyCitwd3JpdGUKK3Fzb3J0CityYWlzZQorcmVhZAorcmVhZGRpcgorcmVhZGRpcl9yCityZWFkbGluaworcmVhZHYKK3JlYWxsb2MKK3JlYWxwYXRoCityZWJvb3QKK3JlY3YKK3JlY3Zmcm9tCityZWN2bXNnCityZWdjb21wCityZWdlcnJvcgorcmVnZXhlYworcmVnZnJlZQorcmVtb3ZlCityZW5hbWUKK3JlbmFtZWF0CityZXNfaW5pdAorcmVzX21rcXVlcnkKK3Jlc19uZWVkX2luaXQKK3Jlc19xdWVyeQorcmVzX3NlYXJjaAorcmV3aW5kCityZXdpbmRkaXIKK3JtZGlyCitzYnJrCitzY2FuZGlyCitzY2FuZgorc2NoZWRfZ2V0X3ByaW9yaXR5X21heAorc2NoZWRfZ2V0X3ByaW9yaXR5X21pbgorc2NoZWRfZ2V0cGFyYW0KK3NjaGVkX2dldHNjaGVkdWxlcgorc2NoZWRfcnJfZ2V0X2ludGVydmFsCitzY2hlZF9zZXRwYXJhbQorc2NoZWRfc2V0c2NoZWR1bGVyCitzY2hlZF95aWVsZAorc2VlZDQ4CitzZWxlY3QKK3NlbV9jbG9zZQorc2VtX2Rlc3Ryb3kKK3NlbV9nZXR2YWx1ZQorc2VtX2luaXQKK3NlbV9vcGVuCitzZW1fcG9zdAorc2VtX3RpbWVkd2FpdAorc2VtX3RyeXdhaXQKK3NlbV91bmxpbmsKK3NlbV93YWl0CitzZW5kCitzZW5kZmlsZQorc2VuZG1zZworc2VuZHRvCitzZXRidWYKK3NldGJ1ZmZlcgorc2V0ZWdpZAorc2V0ZW52CitzZXRldWlkCitzZXRnaWQKK3NldGdyb3Vwcworc2V0aXRpbWVyCitzZXRqbXAKK3NldGxpbmVidWYKK3NldGxvY2FsZQorc2V0bG9nbWFzaworc2V0bG9nbWFza19yCitzZXRwZ2lkCitzZXRwZ3JwCitzZXRwcmlvcml0eQorc2V0cmVnaWQKK3NldHJlc2dpZAorc2V0cmVzdWlkCitzZXRyZXVpZAorc2V0cmxpbWl0CitzZXRzZXJ2ZW50CitzZXRzaWQKK3NldHNvY2tvcHQKK3NldHRpbWVvZmRheQorc2V0dWlkCitzZXR1c2Vyc2hlbGwKK3NldHV0ZW50CitzZXR2YnVmCitzaHV0ZG93bgorc2lnYWN0aW9uCitzaWdhbHRzdGFjaworc2lnYmxvY2sKK3NpZ2ludGVycnVwdAorc2lnbG9uZ2ptcAorc2lncGVuZGluZworc2lncHJvY21hc2sKK3NpZ3NldGptcAorc2lnc2V0bWFzaworc2lnc3VzcGVuZAorc2lnd2FpdAorc2xlZXAKK3NucHJpbnRmCitzb2NrZXQKK3NvY2tldHBhaXIKK3NwcmludGYKK3NyYW5kNDgKK3NzY2FuZgorc3RhdAorc3RhdGZzCitzdHJjYXNlY21wCitzdHJjYXNlc3RyCitzdHJjYXQKK3N0cmNocgorc3RyY21wCitzdHJjb2xsCitzdHJjcHkKK3N0cmNzcG4KK3N0cmR1cAorc3RyZXJyb3IKK3N0cmVycm9yX3IKK3N0cmZ0aW1lCitzdHJmdGltZV90egorc3RybGNhdAorc3RybGNweQorc3RybGVuCitzdHJuY2FzZWNtcAorc3RybmNhdAorc3RybmNtcAorc3RybmNweQorc3RybmR1cAorc3Rybmxlbgorc3RybnRvaW1heAorc3RybnRvdW1heAorc3RycGJyaworc3RycHRpbWUKK3N0cnJjaHIKK3N0cnNlcAorc3Ryc2lnbmFsCitzdHJzcG4KK3N0cnN0cgorc3RydG9kCitzdHJ0b2ltYXgKK3N0cnRvaworc3RydG9rX3IKK3N0cnRvbAorc3RydG9sbAorc3RydG90aW1ldmFsCitzdHJ0b3VsCitzdHJ0b3VsbAorc3RydG91bWF4CitzdHJ4ZnJtCitzd3ByaW50Zgorc3dzY2FuZgorc3ltbGluaworc3luYworc3lzY2FsbAorc3lzY29uZgorc3lzaW5mbworc3lzbG9nCitzeXNsb2dfcgorc3lzdGVtCitzeXN2X3NpZ25hbAordGNnZXRwZ3JwCit0Y3NldHBncnAKK3RlbXBuYW0KK3RpbWUKK3RpbWVnbTY0Cit0aW1lbG9jYWw2NAordGltZXJfY3JlYXRlCit0aW1lcl9kZWxldGUKK3RpbWVyX2dldG92ZXJydW4KK3RpbWVyX2dldHRpbWUKK3RpbWVyX3NldHRpbWUKK3RpbWVzCit0a2lsbAordG1wZmlsZQordG1wbmFtCit0b2FzY2lpCit0b2xvd2VyCit0b3VwcGVyCit0b3dsb3dlcgordG93dXBwZXIKK3RydW5jYXRlCit0dHluYW1lCit0dHluYW1lX3IKK3R6c2V0Cit1bWFzawordW1vdW50Cit1bW91bnQyCit1bmFtZQordW5nZXRjCit1bmdldHdjCit1bmxpbmsKK3VubGlua2F0Cit1bmxvY2twdAordW5zZXRlbnYKK3VzbGVlcAordXRpbWUKK3V0aW1lbnNhdAordXRpbWVzCit1dG1wbmFtZQordmFsaWRfdG1fbW9uCit2YWxpZF90bV93ZGF5Cit2YWxsb2MKK3Zhc3ByaW50ZgordmVycgordmVycngKK3ZmZHByaW50ZgordmZvcmsKK3ZmcHJpbnRmCit2ZnNjYW5mCit2ZndwcmludGYKK3ZwcmludGYKK3ZzY2FuZgordnNucHJpbnRmCit2c3ByaW50ZgordnNzY2FuZgordnN3cHJpbnRmCit2c3lzbG9nCit2c3lzbG9nX3IKK3Z3YXJuCit2d2FybngKK3Z3cHJpbnRmCit3YWl0Cit3YWl0Mword2FpdDQKK3dhaXRpZAord2FpdHBpZAord2Fybgord2FybngKK3djcGNweQord2NwbmNweQord2NydG9tYgord2NzY2FzZWNtcAord2NzY2F0Cit3Y3NjaHIKK3djc2NtcAord2NzY29sbAord2NzY3B5Cit3Y3Njc3BuCit3Y3NkdXAKK3djc2Z0aW1lCit3Y3NsY2F0Cit3Y3NsY3B5Cit3Y3NsZW4KK3djc25jYXNlY21wCit3Y3NuY2F0Cit3Y3NuY21wCit3Y3NuY3B5Cit3Y3NubGVuCit3Y3NwYnJrCit3Y3NyY2hyCit3Y3NydG9tYnMKK3djc3Nwbgord2Nzc3RyCit3Y3N0b2QKK3djc3Rvaword2NzdG9sCit3Y3N0b21icword2NzdG91bAord2Nzd2NzCit3Y3N3aWR0aAord2NzeGZybQord2N0b2IKK3djdHlwZQord2N3aWR0aAord21lbWNocgord21lbWNtcAord21lbWNweQord21lbW1vdmUKK3dtZW1zZXQKK3dwcmludGYKK3dyaXRlCit3cml0ZXYKK3dzY2FuZgpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE5L2FyY2gteDg2L3N5bWJvbHMvbGliYy5zby52YXJpYWJsZXMudHh0IGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE5L2FyY2gteDg2L3N5bWJvbHMvbGliYy5zby52YXJpYWJsZXMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlNWVmNjMKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTkvYXJjaC14ODYvc3ltYm9scy9saWJjLnNvLnZhcmlhYmxlcy50eHQKQEAgLTAsMCArMSw1MSBAQAorX0NfY3R5cGVfCitfQ190b2xvd2VyXworX0NfdG91cHBlcl8KK19fYXRleGl0CitfX2F0ZXhpdF9pbnZhbGlkCitfX2Jpb25pY19icmsKK19fZXZPcHRNb25vVGltZQorX19pc3RocmVhZGVkCitfX2xpYmNfbWFsbG9jX2RlZmF1bHRfZGlzcGF0Y2gKK19fbGliY19tYWxsb2NfZGlzcGF0Y2gKK19fcF9jZXJ0X3N5bXMKK19fcF9jbGFzc19zeW1zCitfX3BfZGVmYXVsdF9zZWN0aW9uX3N5bXMKK19fcF9rZXlfc3ltcworX19wX3Jjb2RlX3N5bXMKK19fcF90eXBlX3N5bXMKK19fcF91cGRhdGVfc2VjdGlvbl9zeW1zCitfX3BhZ2Vfc2hpZnQKK19fcGFnZV9zaXplCitfX3Byb2duYW1lCitfX3JhbmQ0OF9hZGQKK19fcmFuZDQ4X211bHQKK19fcmFuZDQ4X3NlZWQKK19fc0YKK19fc0ZleHQKK19fc2RpZGluaXQKK19fc2dsdWUKK19fc3RhY2tfY2hrX2d1YXJkCitfX3N5c3RlbV9wcm9wZXJ0eV9hcmVhX18KK19jdHlwZV8KK19ucmVzCitfbnNfZmxhZ2RhdGEKK19yYW5kNDhfYWRkCitfcmFuZDQ4X211bHQKK19yYW5kNDhfc2VlZAorX3Jlc19vcGNvZGVzCitfdG9sb3dlcl90YWJfCitfdG91cHBlcl90YWJfCitkYXlsaWdodAorZW52aXJvbgoraF9lcnJsaXN0CitoX25lcnIKK29wdGFyZworb3B0ZXJyCitvcHRpbmQKK29wdG9wdAorb3B0cmVzZXQKK3N5c19zaWdsaXN0CitzeXNfc2lnbmFtZQordGltZXpvbmUKK3R6bmFtZQpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE5L2luY2x1ZGUvYW5kcm9pZC9rZXljb2Rlcy5oIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE5L2luY2x1ZGUvYW5kcm9pZC9rZXljb2Rlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjYTEzMzIKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMTkvaW5jbHVkZS9hbmRyb2lkL2tleWNvZGVzLmgKQEAgLTAsMCArMSwyNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIF9BTkRST0lEX0tFWUNPREVTX0gKKyNkZWZpbmUgX0FORFJPSURfS0VZQ09ERVNfSAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogSU1QT1JUQU5UIE5PVElDRToKKyAqCisgKiAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEFuZHJvaWQncyBzZXQgb2Ygc3RhYmxlIHN5c3RlbSBoZWFkZXJzCisgKiAgIGV4cG9zZWQgYnkgdGhlIEFuZHJvaWQgTkRLIChOYXRpdmUgRGV2ZWxvcG1lbnQgS2l0KS4KKyAqCisgKiAgIFRoaXJkLXBhcnR5IHNvdXJjZSBBTkQgYmluYXJ5IGNvZGUgcmVsaWVzIG9uIHRoZSBkZWZpbml0aW9ucworICogICBoZXJlIHRvIGJlIEZST1pFTiBPTiBBTEwgVVBDT01JTkcgUExBVEZPUk0gUkVMRUFTRVMuCisgKgorICogICAtIERPIE5PVCBNT0RJRlkgRU5VTVMgKEVYQ0VQVCBJRiBZT1UgQUREIE5FVyAzMi1CSVQgVkFMVUVTKQorICogICAtIERPIE5PVCBNT0RJRlkgQ09OU1RBTlRTIE9SIEZVTkNUSU9OQUwgTUFDUk9TCisgKiAgIC0gRE8gTk9UIENIQU5HRSBUSEUgU0lHTkFUVVJFIE9GIEZVTkNUSU9OUyBJTiBBTlkgV0FZCisgKiAgIC0gRE8gTk9UIENIQU5HRSBUSEUgTEFZT1VUIE9SIFNJWkUgT0YgU1RSVUNUVVJFUworICovCisKKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKgorICogS2V5IGNvZGVzLgorICovCitlbnVtIHsKKyAgICBBS0VZQ09ERV9VTktOT1dOICAgICAgICAgPSAwLAorICAgIEFLRVlDT0RFX1NPRlRfTEVGVCAgICAgICA9IDEsCisgICAgQUtFWUNPREVfU09GVF9SSUdIVCAgICAgID0gMiwKKyAgICBBS0VZQ09ERV9IT01FICAgICAgICAgICAgPSAzLAorICAgIEFLRVlDT0RFX0JBQ0sgICAgICAgICAgICA9IDQsCisgICAgQUtFWUNPREVfQ0FMTCAgICAgICAgICAgID0gNSwKKyAgICBBS0VZQ09ERV9FTkRDQUxMICAgICAgICAgPSA2LAorICAgIEFLRVlDT0RFXzAgICAgICAgICAgICAgICA9IDcsCisgICAgQUtFWUNPREVfMSAgICAgICAgICAgICAgID0gOCwKKyAgICBBS0VZQ09ERV8yICAgICAgICAgICAgICAgPSA5LAorICAgIEFLRVlDT0RFXzMgICAgICAgICAgICAgICA9IDEwLAorICAgIEFLRVlDT0RFXzQgICAgICAgICAgICAgICA9IDExLAorICAgIEFLRVlDT0RFXzUgICAgICAgICAgICAgICA9IDEyLAorICAgIEFLRVlDT0RFXzYgICAgICAgICAgICAgICA9IDEzLAorICAgIEFLRVlDT0RFXzcgICAgICAgICAgICAgICA9IDE0LAorICAgIEFLRVlDT0RFXzggICAgICAgICAgICAgICA9IDE1LAorICAgIEFLRVlDT0RFXzkgICAgICAgICAgICAgICA9IDE2LAorICAgIEFLRVlDT0RFX1NUQVIgICAgICAgICAgICA9IDE3LAorICAgIEFLRVlDT0RFX1BPVU5EICAgICAgICAgICA9IDE4LAorICAgIEFLRVlDT0RFX0RQQURfVVAgICAgICAgICA9IDE5LAorICAgIEFLRVlDT0RFX0RQQURfRE9XTiAgICAgICA9IDIwLAorICAgIEFLRVlDT0RFX0RQQURfTEVGVCAgICAgICA9IDIxLAorICAgIEFLRVlDT0RFX0RQQURfUklHSFQgICAgICA9IDIyLAorICAgIEFLRVlDT0RFX0RQQURfQ0VOVEVSICAgICA9IDIzLAorICAgIEFLRVlDT0RFX1ZPTFVNRV9VUCAgICAgICA9IDI0LAorICAgIEFLRVlDT0RFX1ZPTFVNRV9ET1dOICAgICA9IDI1LAorICAgIEFLRVlDT0RFX1BPV0VSICAgICAgICAgICA9IDI2LAorICAgIEFLRVlDT0RFX0NBTUVSQSAgICAgICAgICA9IDI3LAorICAgIEFLRVlDT0RFX0NMRUFSICAgICAgICAgICA9IDI4LAorICAgIEFLRVlDT0RFX0EgICAgICAgICAgICAgICA9IDI5LAorICAgIEFLRVlDT0RFX0IgICAgICAgICAgICAgICA9IDMwLAorICAgIEFLRVlDT0RFX0MgICAgICAgICAgICAgICA9IDMxLAorICAgIEFLRVlDT0RFX0QgICAgICAgICAgICAgICA9IDMyLAorICAgIEFLRVlDT0RFX0UgICAgICAgICAgICAgICA9IDMzLAorICAgIEFLRVlDT0RFX0YgICAgICAgICAgICAgICA9IDM0LAorICAgIEFLRVlDT0RFX0cgICAgICAgICAgICAgICA9IDM1LAorICAgIEFLRVlDT0RFX0ggICAgICAgICAgICAgICA9IDM2LAorICAgIEFLRVlDT0RFX0kgICAgICAgICAgICAgICA9IDM3LAorICAgIEFLRVlDT0RFX0ogICAgICAgICAgICAgICA9IDM4LAorICAgIEFLRVlDT0RFX0sgICAgICAgICAgICAgICA9IDM5LAorICAgIEFLRVlDT0RFX0wgICAgICAgICAgICAgICA9IDQwLAorICAgIEFLRVlDT0RFX00gICAgICAgICAgICAgICA9IDQxLAorICAgIEFLRVlDT0RFX04gICAgICAgICAgICAgICA9IDQyLAorICAgIEFLRVlDT0RFX08gICAgICAgICAgICAgICA9IDQzLAorICAgIEFLRVlDT0RFX1AgICAgICAgICAgICAgICA9IDQ0LAorICAgIEFLRVlDT0RFX1EgICAgICAgICAgICAgICA9IDQ1LAorICAgIEFLRVlDT0RFX1IgICAgICAgICAgICAgICA9IDQ2LAorICAgIEFLRVlDT0RFX1MgICAgICAgICAgICAgICA9IDQ3LAorICAgIEFLRVlDT0RFX1QgICAgICAgICAgICAgICA9IDQ4LAorICAgIEFLRVlDT0RFX1UgICAgICAgICAgICAgICA9IDQ5LAorICAgIEFLRVlDT0RFX1YgICAgICAgICAgICAgICA9IDUwLAorICAgIEFLRVlDT0RFX1cgICAgICAgICAgICAgICA9IDUxLAorICAgIEFLRVlDT0RFX1ggICAgICAgICAgICAgICA9IDUyLAorICAgIEFLRVlDT0RFX1kgICAgICAgICAgICAgICA9IDUzLAorICAgIEFLRVlDT0RFX1ogICAgICAgICAgICAgICA9IDU0LAorICAgIEFLRVlDT0RFX0NPTU1BICAgICAgICAgICA9IDU1LAorICAgIEFLRVlDT0RFX1BFUklPRCAgICAgICAgICA9IDU2LAorICAgIEFLRVlDT0RFX0FMVF9MRUZUICAgICAgICA9IDU3LAorICAgIEFLRVlDT0RFX0FMVF9SSUdIVCAgICAgICA9IDU4LAorICAgIEFLRVlDT0RFX1NISUZUX0xFRlQgICAgICA9IDU5LAorICAgIEFLRVlDT0RFX1NISUZUX1JJR0hUICAgICA9IDYwLAorICAgIEFLRVlDT0RFX1RBQiAgICAgICAgICAgICA9IDYxLAorICAgIEFLRVlDT0RFX1NQQUNFICAgICAgICAgICA9IDYyLAorICAgIEFLRVlDT0RFX1NZTSAgICAgICAgICAgICA9IDYzLAorICAgIEFLRVlDT0RFX0VYUExPUkVSICAgICAgICA9IDY0LAorICAgIEFLRVlDT0RFX0VOVkVMT1BFICAgICAgICA9IDY1LAorICAgIEFLRVlDT0RFX0VOVEVSICAgICAgICAgICA9IDY2LAorICAgIEFLRVlDT0RFX0RFTCAgICAgICAgICAgICA9IDY3LAorICAgIEFLRVlDT0RFX0dSQVZFICAgICAgICAgICA9IDY4LAorICAgIEFLRVlDT0RFX01JTlVTICAgICAgICAgICA9IDY5LAorICAgIEFLRVlDT0RFX0VRVUFMUyAgICAgICAgICA9IDcwLAorICAgIEFLRVlDT0RFX0xFRlRfQlJBQ0tFVCAgICA9IDcxLAorICAgIEFLRVlDT0RFX1JJR0hUX0JSQUNLRVQgICA9IDcyLAorICAgIEFLRVlDT0RFX0JBQ0tTTEFTSCAgICAgICA9IDczLAorICAgIEFLRVlDT0RFX1NFTUlDT0xPTiAgICAgICA9IDc0LAorICAgIEFLRVlDT0RFX0FQT1NUUk9QSEUgICAgICA9IDc1LAorICAgIEFLRVlDT0RFX1NMQVNIICAgICAgICAgICA9IDc2LAorICAgIEFLRVlDT0RFX0FUICAgICAgICAgICAgICA9IDc3LAorICAgIEFLRVlDT0RFX05VTSAgICAgICAgICAgICA9IDc4LAorICAgIEFLRVlDT0RFX0hFQURTRVRIT09LICAgICA9IDc5LAorICAgIEFLRVlDT0RFX0ZPQ1VTICAgICAgICAgICA9IDgwLCAgIC8vICpDYW1lcmEqIGZvY3VzCisgICAgQUtFWUNPREVfUExVUyAgICAgICAgICAgID0gODEsCisgICAgQUtFWUNPREVfTUVOVSAgICAgICAgICAgID0gODIsCisgICAgQUtFWUNPREVfTk9USUZJQ0FUSU9OICAgID0gODMsCisgICAgQUtFWUNPREVfU0VBUkNIICAgICAgICAgID0gODQsCisgICAgQUtFWUNPREVfTUVESUFfUExBWV9QQVVTRT0gODUsCisgICAgQUtFWUNPREVfTUVESUFfU1RPUCAgICAgID0gODYsCisgICAgQUtFWUNPREVfTUVESUFfTkVYVCAgICAgID0gODcsCisgICAgQUtFWUNPREVfTUVESUFfUFJFVklPVVMgID0gODgsCisgICAgQUtFWUNPREVfTUVESUFfUkVXSU5EICAgID0gODksCisgICAgQUtFWUNPREVfTUVESUFfRkFTVF9GT1JXQVJEID0gOTAsCisgICAgQUtFWUNPREVfTVVURSAgICAgICAgICAgID0gOTEsCisgICAgQUtFWUNPREVfUEFHRV9VUCAgICAgICAgID0gOTIsCisgICAgQUtFWUNPREVfUEFHRV9ET1dOICAgICAgID0gOTMsCisgICAgQUtFWUNPREVfUElDVFNZTUJPTFMgICAgID0gOTQsCisgICAgQUtFWUNPREVfU1dJVENIX0NIQVJTRVQgID0gOTUsCisgICAgQUtFWUNPREVfQlVUVE9OX0EgICAgICAgID0gOTYsCisgICAgQUtFWUNPREVfQlVUVE9OX0IgICAgICAgID0gOTcsCisgICAgQUtFWUNPREVfQlVUVE9OX0MgICAgICAgID0gOTgsCisgICAgQUtFWUNPREVfQlVUVE9OX1ggICAgICAgID0gOTksCisgICAgQUtFWUNPREVfQlVUVE9OX1kgICAgICAgID0gMTAwLAorICAgIEFLRVlDT0RFX0JVVFRPTl9aICAgICAgICA9IDEwMSwKKyAgICBBS0VZQ09ERV9CVVRUT05fTDEgICAgICAgPSAxMDIsCisgICAgQUtFWUNPREVfQlVUVE9OX1IxICAgICAgID0gMTAzLAorICAgIEFLRVlDT0RFX0JVVFRPTl9MMiAgICAgICA9IDEwNCwKKyAgICBBS0VZQ09ERV9CVVRUT05fUjIgICAgICAgPSAxMDUsCisgICAgQUtFWUNPREVfQlVUVE9OX1RIVU1CTCAgID0gMTA2LAorICAgIEFLRVlDT0RFX0JVVFRPTl9USFVNQlIgICA9IDEwNywKKyAgICBBS0VZQ09ERV9CVVRUT05fU1RBUlQgICAgPSAxMDgsCisgICAgQUtFWUNPREVfQlVUVE9OX1NFTEVDVCAgID0gMTA5LAorICAgIEFLRVlDT0RFX0JVVFRPTl9NT0RFICAgICA9IDExMCwKKyAgICBBS0VZQ09ERV9FU0NBUEUgICAgICAgICAgPSAxMTEsCisgICAgQUtFWUNPREVfRk9SV0FSRF9ERUwgICAgID0gMTEyLAorICAgIEFLRVlDT0RFX0NUUkxfTEVGVCAgICAgICA9IDExMywKKyAgICBBS0VZQ09ERV9DVFJMX1JJR0hUICAgICAgPSAxMTQsCisgICAgQUtFWUNPREVfQ0FQU19MT0NLICAgICAgID0gMTE1LAorICAgIEFLRVlDT0RFX1NDUk9MTF9MT0NLICAgICA9IDExNiwKKyAgICBBS0VZQ09ERV9NRVRBX0xFRlQgICAgICAgPSAxMTcsCisgICAgQUtFWUNPREVfTUVUQV9SSUdIVCAgICAgID0gMTE4LAorICAgIEFLRVlDT0RFX0ZVTkNUSU9OICAgICAgICA9IDExOSwKKyAgICBBS0VZQ09ERV9TWVNSUSAgICAgICAgICAgPSAxMjAsCisgICAgQUtFWUNPREVfQlJFQUsgICAgICAgICAgID0gMTIxLAorICAgIEFLRVlDT0RFX01PVkVfSE9NRSAgICAgICA9IDEyMiwKKyAgICBBS0VZQ09ERV9NT1ZFX0VORCAgICAgICAgPSAxMjMsCisgICAgQUtFWUNPREVfSU5TRVJUICAgICAgICAgID0gMTI0LAorICAgIEFLRVlDT0RFX0ZPUldBUkQgICAgICAgICA9IDEyNSwKKyAgICBBS0VZQ09ERV9NRURJQV9QTEFZICAgICAgPSAxMjYsCisgICAgQUtFWUNPREVfTUVESUFfUEFVU0UgICAgID0gMTI3LAorICAgIEFLRVlDT0RFX01FRElBX0NMT1NFICAgICA9IDEyOCwKKyAgICBBS0VZQ09ERV9NRURJQV9FSkVDVCAgICAgPSAxMjksCisgICAgQUtFWUNPREVfTUVESUFfUkVDT1JEICAgID0gMTMwLAorICAgIEFLRVlDT0RFX0YxICAgICAgICAgICAgICA9IDEzMSwKKyAgICBBS0VZQ09ERV9GMiAgICAgICAgICAgICAgPSAxMzIsCisgICAgQUtFWUNPREVfRjMgICAgICAgICAgICAgID0gMTMzLAorICAgIEFLRVlDT0RFX0Y0ICAgICAgICAgICAgICA9IDEzNCwKKyAgICBBS0VZQ09ERV9GNSAgICAgICAgICAgICAgPSAxMzUsCisgICAgQUtFWUNPREVfRjYgICAgICAgICAgICAgID0gMTM2LAorICAgIEFLRVlDT0RFX0Y3ICAgICAgICAgICAgICA9IDEzNywKKyAgICBBS0VZQ09ERV9GOCAgICAgICAgICAgICAgPSAxMzgsCisgICAgQUtFWUNPREVfRjkgICAgICAgICAgICAgID0gMTM5LAorICAgIEFLRVlDT0RFX0YxMCAgICAgICAgICAgICA9IDE0MCwKKyAgICBBS0VZQ09ERV9GMTEgICAgICAgICAgICAgPSAxNDEsCisgICAgQUtFWUNPREVfRjEyICAgICAgICAgICAgID0gMTQyLAorICAgIEFLRVlDT0RFX05VTV9MT0NLICAgICAgICA9IDE0MywKKyAgICBBS0VZQ09ERV9OVU1QQURfMCAgICAgICAgPSAxNDQsCisgICAgQUtFWUNPREVfTlVNUEFEXzEgICAgICAgID0gMTQ1LAorICAgIEFLRVlDT0RFX05VTVBBRF8yICAgICAgICA9IDE0NiwKKyAgICBBS0VZQ09ERV9OVU1QQURfMyAgICAgICAgPSAxNDcsCisgICAgQUtFWUNPREVfTlVNUEFEXzQgICAgICAgID0gMTQ4LAorICAgIEFLRVlDT0RFX05VTVBBRF81ICAgICAgICA9IDE0OSwKKyAgICBBS0VZQ09ERV9OVU1QQURfNiAgICAgICAgPSAxNTAsCisgICAgQUtFWUNPREVfTlVNUEFEXzcgICAgICAgID0gMTUxLAorICAgIEFLRVlDT0RFX05VTVBBRF84ICAgICAgICA9IDE1MiwKKyAgICBBS0VZQ09ERV9OVU1QQURfOSAgICAgICAgPSAxNTMsCisgICAgQUtFWUNPREVfTlVNUEFEX0RJVklERSAgID0gMTU0LAorICAgIEFLRVlDT0RFX05VTVBBRF9NVUxUSVBMWSA9IDE1NSwKKyAgICBBS0VZQ09ERV9OVU1QQURfU1VCVFJBQ1QgPSAxNTYsCisgICAgQUtFWUNPREVfTlVNUEFEX0FERCAgICAgID0gMTU3LAorICAgIEFLRVlDT0RFX05VTVBBRF9ET1QgICAgICA9IDE1OCwKKyAgICBBS0VZQ09ERV9OVU1QQURfQ09NTUEgICAgPSAxNTksCisgICAgQUtFWUNPREVfTlVNUEFEX0VOVEVSICAgID0gMTYwLAorICAgIEFLRVlDT0RFX05VTVBBRF9FUVVBTFMgICA9IDE2MSwKKyAgICBBS0VZQ09ERV9OVU1QQURfTEVGVF9QQVJFTiA9IDE2MiwKKyAgICBBS0VZQ09ERV9OVU1QQURfUklHSFRfUEFSRU4gPSAxNjMsCisgICAgQUtFWUNPREVfVk9MVU1FX01VVEUgICAgID0gMTY0LAorICAgIEFLRVlDT0RFX0lORk8gICAgICAgICAgICA9IDE2NSwKKyAgICBBS0VZQ09ERV9DSEFOTkVMX1VQICAgICAgPSAxNjYsCisgICAgQUtFWUNPREVfQ0hBTk5FTF9ET1dOICAgID0gMTY3LAorICAgIEFLRVlDT0RFX1pPT01fSU4gICAgICAgICA9IDE2OCwKKyAgICBBS0VZQ09ERV9aT09NX09VVCAgICAgICAgPSAxNjksCisgICAgQUtFWUNPREVfVFYgICAgICAgICAgICAgID0gMTcwLAorICAgIEFLRVlDT0RFX1dJTkRPVyAgICAgICAgICA9IDE3MSwKKyAgICBBS0VZQ09ERV9HVUlERSAgICAgICAgICAgPSAxNzIsCisgICAgQUtFWUNPREVfRFZSICAgICAgICAgICAgID0gMTczLAorICAgIEFLRVlDT0RFX0JPT0tNQVJLICAgICAgICA9IDE3NCwKKyAgICBBS0VZQ09ERV9DQVBUSU9OUyAgICAgICAgPSAxNzUsCisgICAgQUtFWUNPREVfU0VUVElOR1MgICAgICAgID0gMTc2LAorICAgIEFLRVlDT0RFX1RWX1BPV0VSICAgICAgICA9IDE3NywKKyAgICBBS0VZQ09ERV9UVl9JTlBVVCAgICAgICAgPSAxNzgsCisgICAgQUtFWUNPREVfU1RCX1BPV0VSICAgICAgID0gMTc5LAorICAgIEFLRVlDT0RFX1NUQl9JTlBVVCAgICAgICA9IDE4MCwKKyAgICBBS0VZQ09ERV9BVlJfUE9XRVIgICAgICAgPSAxODEsCisgICAgQUtFWUNPREVfQVZSX0lOUFVUICAgICAgID0gMTgyLAorICAgIEFLRVlDT0RFX1BST0dfUkVEICAgICAgICA9IDE4MywKKyAgICBBS0VZQ09ERV9QUk9HX0dSRUVOICAgICAgPSAxODQsCisgICAgQUtFWUNPREVfUFJPR19ZRUxMT1cgICAgID0gMTg1LAorICAgIEFLRVlDT0RFX1BST0dfQkxVRSAgICAgICA9IDE4NiwKKyAgICBBS0VZQ09ERV9BUFBfU1dJVENIICAgICAgPSAxODcsCisgICAgQUtFWUNPREVfQlVUVE9OXzEgICAgICAgID0gMTg4LAorICAgIEFLRVlDT0RFX0JVVFRPTl8yICAgICAgICA9IDE4OSwKKyAgICBBS0VZQ09ERV9CVVRUT05fMyAgICAgICAgPSAxOTAsCisgICAgQUtFWUNPREVfQlVUVE9OXzQgICAgICAgID0gMTkxLAorICAgIEFLRVlDT0RFX0JVVFRPTl81ICAgICAgICA9IDE5MiwKKyAgICBBS0VZQ09ERV9CVVRUT05fNiAgICAgICAgPSAxOTMsCisgICAgQUtFWUNPREVfQlVUVE9OXzcgICAgICAgID0gMTk0LAorICAgIEFLRVlDT0RFX0JVVFRPTl84ICAgICAgICA9IDE5NSwKKyAgICBBS0VZQ09ERV9CVVRUT05fOSAgICAgICAgPSAxOTYsCisgICAgQUtFWUNPREVfQlVUVE9OXzEwICAgICAgID0gMTk3LAorICAgIEFLRVlDT0RFX0JVVFRPTl8xMSAgICAgICA9IDE5OCwKKyAgICBBS0VZQ09ERV9CVVRUT05fMTIgICAgICAgPSAxOTksCisgICAgQUtFWUNPREVfQlVUVE9OXzEzICAgICAgID0gMjAwLAorICAgIEFLRVlDT0RFX0JVVFRPTl8xNCAgICAgICA9IDIwMSwKKyAgICBBS0VZQ09ERV9CVVRUT05fMTUgICAgICAgPSAyMDIsCisgICAgQUtFWUNPREVfQlVUVE9OXzE2ICAgICAgID0gMjAzLAorICAgIEFLRVlDT0RFX0xBTkdVQUdFX1NXSVRDSCA9IDIwNCwKKyAgICBBS0VZQ09ERV9NQU5ORVJfTU9ERSAgICAgPSAyMDUsCisgICAgQUtFWUNPREVfM0RfTU9ERSAgICAgICAgID0gMjA2LAorICAgIEFLRVlDT0RFX0NPTlRBQ1RTICAgICAgICA9IDIwNywKKyAgICBBS0VZQ09ERV9DQUxFTkRBUiAgICAgICAgPSAyMDgsCisgICAgQUtFWUNPREVfTVVTSUMgICAgICAgICAgID0gMjA5LAorICAgIEFLRVlDT0RFX0NBTENVTEFUT1IgICAgICA9IDIxMCwKKyAgICBBS0VZQ09ERV9aRU5LQUtVX0hBTktBS1UgPSAyMTEsCisgICAgQUtFWUNPREVfRUlTVSAgICAgICAgICAgID0gMjEyLAorICAgIEFLRVlDT0RFX01VSEVOS0FOICAgICAgICA9IDIxMywKKyAgICBBS0VZQ09ERV9IRU5LQU4gICAgICAgICAgPSAyMTQsCisgICAgQUtFWUNPREVfS0FUQUtBTkFfSElSQUdBTkEgPSAyMTUsCisgICAgQUtFWUNPREVfWUVOICAgICAgICAgICAgID0gMjE2LAorICAgIEFLRVlDT0RFX1JPICAgICAgICAgICAgICA9IDIxNywKKyAgICBBS0VZQ09ERV9LQU5BICAgICAgICAgICAgPSAyMTgsCisgICAgQUtFWUNPREVfQVNTSVNUICAgICAgICAgID0gMjE5LAorICAgIEFLRVlDT0RFX0JSSUdIVE5FU1NfRE9XTiA9IDIyMCwKKyAgICBBS0VZQ09ERV9CUklHSFRORVNTX1VQICAgPSAyMjEsCisgICAgQUtFWUNPREVfTUVESUFfQVVESU9fVFJBQ0sgPSAyMjIsCisKKyAgICAvLyBOT1RFOiBJZiB5b3UgYWRkIGEgbmV3IGtleWNvZGUgaGVyZSB5b3UgbXVzdCBhbHNvIGFkZCBpdCB0byBzZXZlcmFsIG90aGVyIGZpbGVzLgorICAgIC8vICAgICAgIFJlZmVyIHRvIGZyYW1ld29ya3MvYmFzZS9jb3JlL2phdmEvYW5kcm9pZC92aWV3L0tleUV2ZW50LmphdmEgZm9yIHRoZSBmdWxsIGxpc3QuCit9OworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gX0FORFJPSURfS0VZQ09ERVNfSApkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE5L2luY2x1ZGUvYW5kcm9pZC9zZW5zb3IuaCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOS9pbmNsdWRlL2FuZHJvaWQvc2Vuc29yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTg5MDU4ZAotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOS9pbmNsdWRlL2FuZHJvaWQvc2Vuc29yLmgKQEAgLTAsMCArMSwyODkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisKKyNpZm5kZWYgQU5EUk9JRF9TRU5TT1JfSAorI2RlZmluZSBBTkRST0lEX1NFTlNPUl9ICisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBJTVBPUlRBTlQgTk9USUNFOgorICoKKyAqICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgQW5kcm9pZCdzIHNldCBvZiBzdGFibGUgc3lzdGVtIGhlYWRlcnMKKyAqICAgZXhwb3NlZCBieSB0aGUgQW5kcm9pZCBOREsgKE5hdGl2ZSBEZXZlbG9wbWVudCBLaXQpLgorICoKKyAqICAgVGhpcmQtcGFydHkgc291cmNlIEFORCBiaW5hcnkgY29kZSByZWxpZXMgb24gdGhlIGRlZmluaXRpb25zCisgKiAgIGhlcmUgdG8gYmUgRlJPWkVOIE9OIEFMTCBVUENPTUlORyBQTEFURk9STSBSRUxFQVNFUy4KKyAqCisgKiAgIC0gRE8gTk9UIE1PRElGWSBFTlVNUyAoRVhDRVBUIElGIFlPVSBBREQgTkVXIDMyLUJJVCBWQUxVRVMpCisgKiAgIC0gRE8gTk9UIE1PRElGWSBDT05TVEFOVFMgT1IgRlVOQ1RJT05BTCBNQUNST1MKKyAqICAgLSBETyBOT1QgQ0hBTkdFIFRIRSBTSUdOQVRVUkUgT0YgRlVOQ1RJT05TIElOIEFOWSBXQVkKKyAqICAgLSBETyBOT1QgQ0hBTkdFIFRIRSBMQVlPVVQgT1IgU0laRSBPRiBTVFJVQ1RVUkVTCisgKi8KKworLyoKKyAqIFN0cnVjdHVyZXMgYW5kIGZ1bmN0aW9ucyB0byByZWNlaXZlIGFuZCBwcm9jZXNzIHNlbnNvciBldmVudHMgaW4KKyAqIG5hdGl2ZSBjb2RlLgorICoKKyAqLworCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2xvb3Blci5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKworLyoKKyAqIFNlbnNvciB0eXBlcworICogKGtlZXAgaW4gc3luYyB3aXRoIGhhcmR3YXJlL3NlbnNvci5oKQorICovCisKK2VudW0geworICAgIEFTRU5TT1JfVFlQRV9BQ0NFTEVST01FVEVSICAgICAgPSAxLAorICAgIEFTRU5TT1JfVFlQRV9NQUdORVRJQ19GSUVMRCAgICAgPSAyLAorICAgIEFTRU5TT1JfVFlQRV9HWVJPU0NPUEUgICAgICAgICAgPSA0LAorICAgIEFTRU5TT1JfVFlQRV9MSUdIVCAgICAgICAgICAgICAgPSA1LAorICAgIEFTRU5TT1JfVFlQRV9QUk9YSU1JVFkgICAgICAgICAgPSA4Cit9OworCisvKgorICogU2Vuc29yIGFjY3VyYWN5IG1lYXN1cmUKKyAqLworZW51bSB7CisgICAgQVNFTlNPUl9TVEFUVVNfVU5SRUxJQUJMRSAgICAgICA9IDAsCisgICAgQVNFTlNPUl9TVEFUVVNfQUNDVVJBQ1lfTE9XICAgICA9IDEsCisgICAgQVNFTlNPUl9TVEFUVVNfQUNDVVJBQ1lfTUVESVVNICA9IDIsCisgICAgQVNFTlNPUl9TVEFUVVNfQUNDVVJBQ1lfSElHSCAgICA9IDMKK307CisKKy8qCisgKiBBIGZldyB1c2VmdWwgY29uc3RhbnRzCisgKi8KKworLyogRWFydGgncyBncmF2aXR5IGluIG0vc14yICovCisjZGVmaW5lIEFTRU5TT1JfU1RBTkRBUkRfR1JBVklUWSAgICAgICAgICAgICg5LjgwNjY1ZikKKy8qIE1heGltdW0gbWFnbmV0aWMgZmllbGQgb24gRWFydGgncyBzdXJmYWNlIGluIHVUICovCisjZGVmaW5lIEFTRU5TT1JfTUFHTkVUSUNfRklFTERfRUFSVEhfTUFYICAgICg2MC4wZikKKy8qIE1pbmltdW0gbWFnbmV0aWMgZmllbGQgb24gRWFydGgncyBzdXJmYWNlIGluIHVUKi8KKyNkZWZpbmUgQVNFTlNPUl9NQUdORVRJQ19GSUVMRF9FQVJUSF9NSU4gICAgKDMwLjBmKQorCisvKgorICogQSBzZW5zb3IgZXZlbnQuCisgKi8KKworLyogTk9URTogTXVzdCBtYXRjaCBoYXJkd2FyZS9zZW5zb3JzLmggKi8KK3R5cGVkZWYgc3RydWN0IEFTZW5zb3JWZWN0b3IgeworICAgIHVuaW9uIHsKKyAgICAgICAgZmxvYXQgdlszXTsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgIGZsb2F0IHg7CisgICAgICAgICAgICBmbG9hdCB5OworICAgICAgICAgICAgZmxvYXQgejsKKyAgICAgICAgfTsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgIGZsb2F0IGF6aW11dGg7CisgICAgICAgICAgICBmbG9hdCBwaXRjaDsKKyAgICAgICAgICAgIGZsb2F0IHJvbGw7CisgICAgICAgIH07CisgICAgfTsKKyAgICBpbnQ4X3Qgc3RhdHVzOworICAgIHVpbnQ4X3QgcmVzZXJ2ZWRbM107Cit9IEFTZW5zb3JWZWN0b3I7CisKK3R5cGVkZWYgc3RydWN0IEFNZXRhRGF0YUV2ZW50IHsKKyAgICBpbnQzMl90IHdoYXQ7CisgICAgaW50MzJfdCBzZW5zb3I7Cit9IEFNZXRhRGF0YUV2ZW50OworCit0eXBlZGVmIHN0cnVjdCBBVW5jYWxpYnJhdGVkRXZlbnQgeworICB1bmlvbiB7CisgICAgZmxvYXQgdW5jYWxpYlszXTsKKyAgICBzdHJ1Y3QgeworICAgICAgZmxvYXQgeF91bmNhbGliOworICAgICAgZmxvYXQgeV91bmNhbGliOworICAgICAgZmxvYXQgel91bmNhbGliOworICAgIH07CisgIH07CisgIHVuaW9uIHsKKyAgICBmbG9hdCBiaWFzWzNdOworICAgIHN0cnVjdCB7CisgICAgICBmbG9hdCB4X2JpYXM7CisgICAgICBmbG9hdCB5X2JpYXM7CisgICAgICBmbG9hdCB6X2JpYXM7CisgICAgfTsKKyAgfTsKK30gQVVuY2FsaWJyYXRlZEV2ZW50OworCisvKiBOT1RFOiBNdXN0IG1hdGNoIGhhcmR3YXJlL3NlbnNvcnMuaCAqLwordHlwZWRlZiBzdHJ1Y3QgQVNlbnNvckV2ZW50IHsKKyAgICBpbnQzMl90IHZlcnNpb247IC8qIHNpemVvZihzdHJ1Y3QgQVNlbnNvckV2ZW50KSAqLworICAgIGludDMyX3Qgc2Vuc29yOworICAgIGludDMyX3QgdHlwZTsKKyAgICBpbnQzMl90IHJlc2VydmVkMDsKKyAgICBpbnQ2NF90IHRpbWVzdGFtcDsKKyAgICB1bmlvbiB7CisgICAgICAgIHVuaW9uIHsKKyAgICAgICAgICAgIGZsb2F0ICAgICAgICAgICBkYXRhWzE2XTsKKyAgICAgICAgICAgIEFTZW5zb3JWZWN0b3IgICB2ZWN0b3I7CisgICAgICAgICAgICBBU2Vuc29yVmVjdG9yICAgYWNjZWxlcmF0aW9uOworICAgICAgICAgICAgQVNlbnNvclZlY3RvciAgIG1hZ25ldGljOworICAgICAgICAgICAgZmxvYXQgICAgICAgICAgIHRlbXBlcmF0dXJlOworICAgICAgICAgICAgZmxvYXQgICAgICAgICAgIGRpc3RhbmNlOworICAgICAgICAgICAgZmxvYXQgICAgICAgICAgIGxpZ2h0OworICAgICAgICAgICAgZmxvYXQgICAgICAgICAgIHByZXNzdXJlOworICAgICAgICAgICAgZmxvYXQgICAgICAgICAgIHJlbGF0aXZlX2h1bWlkaXR5OworICAgICAgICAgICAgQVVuY2FsaWJyYXRlZEV2ZW50IHVuY2FsaWJyYXRlZF9neXJvOworICAgICAgICAgICAgQVVuY2FsaWJyYXRlZEV2ZW50IHVuY2FsaWJyYXRlZF9tYWduZXRpYzsKKyAgICAgICAgICAgIEFNZXRhRGF0YUV2ZW50IG1ldGFfZGF0YTsKKyAgICAgICAgfTsKKyAgICAgICAgdW5pb24geworICAgICAgICAgICAgdWludDY0X3QgICAgICAgIGRhdGFbOF07CisgICAgICAgICAgICB1aW50NjRfdCAgICAgICAgc3RlcF9jb3VudGVyOworICAgICAgICB9IHU2NDsKKyAgICB9OworICAgIGludDMyX3QgcmVzZXJ2ZWQxWzRdOworfSBBU2Vuc29yRXZlbnQ7CisKK3N0cnVjdCBBU2Vuc29yTWFuYWdlcjsKK3R5cGVkZWYgc3RydWN0IEFTZW5zb3JNYW5hZ2VyIEFTZW5zb3JNYW5hZ2VyOworCitzdHJ1Y3QgQVNlbnNvckV2ZW50UXVldWU7Cit0eXBlZGVmIHN0cnVjdCBBU2Vuc29yRXZlbnRRdWV1ZSBBU2Vuc29yRXZlbnRRdWV1ZTsKKworc3RydWN0IEFTZW5zb3I7Cit0eXBlZGVmIHN0cnVjdCBBU2Vuc29yIEFTZW5zb3I7Cit0eXBlZGVmIEFTZW5zb3IgY29uc3QqIEFTZW5zb3JSZWY7Cit0eXBlZGVmIEFTZW5zb3JSZWYgY29uc3QqIEFTZW5zb3JMaXN0OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qCisgKiBHZXQgYSByZWZlcmVuY2UgdG8gdGhlIHNlbnNvciBtYW5hZ2VyLiBBU2Vuc29yTWFuYWdlciBpcyBhIHNpbmdsZXRvbi4KKyAqCisgKiBFeGFtcGxlOgorICoKKyAqICAgICBBU2Vuc29yTWFuYWdlciogc2Vuc29yTWFuYWdlciA9IEFTZW5zb3JNYW5hZ2VyX2dldEluc3RhbmNlKCk7CisgKgorICovCitBU2Vuc29yTWFuYWdlciogQVNlbnNvck1hbmFnZXJfZ2V0SW5zdGFuY2UoKTsKKworCisvKgorICogUmV0dXJucyB0aGUgbGlzdCBvZiBhdmFpbGFibGUgc2Vuc29ycy4KKyAqLworaW50IEFTZW5zb3JNYW5hZ2VyX2dldFNlbnNvckxpc3QoQVNlbnNvck1hbmFnZXIqIG1hbmFnZXIsIEFTZW5zb3JMaXN0KiBsaXN0KTsKKworLyoKKyAqIFJldHVybnMgdGhlIGRlZmF1bHQgc2Vuc29yIGZvciB0aGUgZ2l2ZW4gdHlwZSwgb3IgTlVMTCBpZiBubyBzZW5zb3IKKyAqIG9mIHRoYXQgdHlwZSBleGlzdC4KKyAqLworQVNlbnNvciBjb25zdCogQVNlbnNvck1hbmFnZXJfZ2V0RGVmYXVsdFNlbnNvcihBU2Vuc29yTWFuYWdlciogbWFuYWdlciwgaW50IHR5cGUpOworCisvKgorICogQ3JlYXRlcyBhIG5ldyBzZW5zb3IgZXZlbnQgcXVldWUgYW5kIGFzc29jaWF0ZSBpdCB3aXRoIGEgbG9vcGVyLgorICovCitBU2Vuc29yRXZlbnRRdWV1ZSogQVNlbnNvck1hbmFnZXJfY3JlYXRlRXZlbnRRdWV1ZShBU2Vuc29yTWFuYWdlciogbWFuYWdlciwKKyAgICAgICAgQUxvb3BlciogbG9vcGVyLCBpbnQgaWRlbnQsIEFMb29wZXJfY2FsbGJhY2tGdW5jIGNhbGxiYWNrLCB2b2lkKiBkYXRhKTsKKworLyoKKyAqIERlc3Ryb3lzIHRoZSBldmVudCBxdWV1ZSBhbmQgZnJlZSBhbGwgcmVzb3VyY2VzIGFzc29jaWF0ZWQgdG8gaXQuCisgKi8KK2ludCBBU2Vuc29yTWFuYWdlcl9kZXN0cm95RXZlbnRRdWV1ZShBU2Vuc29yTWFuYWdlciogbWFuYWdlciwgQVNlbnNvckV2ZW50UXVldWUqIHF1ZXVlKTsKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qCisgKiBFbmFibGUgdGhlIHNlbGVjdGVkIHNlbnNvci4gUmV0dXJucyBhIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IEFTZW5zb3JFdmVudFF1ZXVlX2VuYWJsZVNlbnNvcihBU2Vuc29yRXZlbnRRdWV1ZSogcXVldWUsIEFTZW5zb3IgY29uc3QqIHNlbnNvcik7CisKKy8qCisgKiBEaXNhYmxlIHRoZSBzZWxlY3RlZCBzZW5zb3IuIFJldHVybnMgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBBU2Vuc29yRXZlbnRRdWV1ZV9kaXNhYmxlU2Vuc29yKEFTZW5zb3JFdmVudFF1ZXVlKiBxdWV1ZSwgQVNlbnNvciBjb25zdCogc2Vuc29yKTsKKworLyoKKyAqIFNldHMgdGhlIGRlbGl2ZXJ5IHJhdGUgb2YgZXZlbnRzIGluIG1pY3Jvc2Vjb25kcyBmb3IgdGhlIGdpdmVuIHNlbnNvci4KKyAqIE5vdGUgdGhhdCB0aGlzIGlzIGEgaGludCBvbmx5LCBnZW5lcmFsbHkgZXZlbnQgd2lsbCBhcnJpdmUgYXQgYSBoaWdoZXIKKyAqIHJhdGUuIEl0IGlzIGFuIGVycm9yIHRvIHNldCBhIHJhdGUgaW5mZXJpb3IgdG8gdGhlIHZhbHVlIHJldHVybmVkIGJ5CisgKiBBU2Vuc29yX2dldE1pbkRlbGF5KCkuCisgKiBSZXR1cm5zIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgQVNlbnNvckV2ZW50UXVldWVfc2V0RXZlbnRSYXRlKEFTZW5zb3JFdmVudFF1ZXVlKiBxdWV1ZSwgQVNlbnNvciBjb25zdCogc2Vuc29yLCBpbnQzMl90IHVzZWMpOworCisvKgorICogUmV0dXJucyB0cnVlIGlmIHRoZXJlIGFyZSBvbmUgb3IgbW9yZSBldmVudHMgYXZhaWxhYmxlIGluIHRoZQorICogc2Vuc29yIHF1ZXVlLiAgUmV0dXJucyAxIGlmIHRoZSBxdWV1ZSBoYXMgZXZlbnRzOyAwIGlmCisgKiBpdCBkb2VzIG5vdCBoYXZlIGV2ZW50czsgYW5kIGEgbmVnYXRpdmUgdmFsdWUgaWYgdGhlcmUgaXMgYW4gZXJyb3IuCisgKi8KK2ludCBBU2Vuc29yRXZlbnRRdWV1ZV9oYXNFdmVudHMoQVNlbnNvckV2ZW50UXVldWUqIHF1ZXVlKTsKKworLyoKKyAqIFJldHVybnMgdGhlIG5leHQgYXZhaWxhYmxlIGV2ZW50cyBmcm9tIHRoZSBxdWV1ZS4gIFJldHVybnMgYSBuZWdhdGl2ZQorICogdmFsdWUgaWYgbm8gZXZlbnRzIGFyZSBhdmFpbGFibGUgb3IgYW4gZXJyb3IgaGFzIG9jY3VycmVkLCBvdGhlcndpc2UKKyAqIHRoZSBudW1iZXIgb2YgZXZlbnRzIHJldHVybmVkLgorICoKKyAqIEV4YW1wbGVzOgorICogICBBU2Vuc29yRXZlbnQgZXZlbnQ7CisgKiAgIHNzaXplX3QgbnVtRXZlbnQgPSBBU2Vuc29yRXZlbnRRdWV1ZV9nZXRFdmVudHMocXVldWUsICZldmVudCwgMSk7CisgKgorICogICBBU2Vuc29yRXZlbnQgZXZlbnRCdWZmZXJbOF07CisgKiAgIHNzaXplX3QgbnVtRXZlbnQgPSBBU2Vuc29yRXZlbnRRdWV1ZV9nZXRFdmVudHMocXVldWUsIGV2ZW50QnVmZmVyLCA4KTsKKyAqCisgKi8KK3NzaXplX3QgQVNlbnNvckV2ZW50UXVldWVfZ2V0RXZlbnRzKEFTZW5zb3JFdmVudFF1ZXVlKiBxdWV1ZSwKKyAgICAgICAgICAgICAgICBBU2Vuc29yRXZlbnQqIGV2ZW50cywgc2l6ZV90IGNvdW50KTsKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qCisgKiBSZXR1cm5zIHRoaXMgc2Vuc29yJ3MgbmFtZSAobm9uIGxvY2FsaXplZCkKKyAqLworY29uc3QgY2hhciogQVNlbnNvcl9nZXROYW1lKEFTZW5zb3IgY29uc3QqIHNlbnNvcik7CisKKy8qCisgKiBSZXR1cm5zIHRoaXMgc2Vuc29yJ3MgdmVuZG9yJ3MgbmFtZSAobm9uIGxvY2FsaXplZCkKKyAqLworY29uc3QgY2hhciogQVNlbnNvcl9nZXRWZW5kb3IoQVNlbnNvciBjb25zdCogc2Vuc29yKTsKKworLyoKKyAqIFJldHVybiB0aGlzIHNlbnNvcidzIHR5cGUKKyAqLworaW50IEFTZW5zb3JfZ2V0VHlwZShBU2Vuc29yIGNvbnN0KiBzZW5zb3IpOworCisvKgorICogUmV0dXJucyB0aGlzIHNlbnNvcnMncyByZXNvbHV0aW9uCisgKi8KK2Zsb2F0IEFTZW5zb3JfZ2V0UmVzb2x1dGlvbihBU2Vuc29yIGNvbnN0KiBzZW5zb3IpIF9fTkRLX0ZQQUJJX187CisKKy8qCisgKiBSZXR1cm5zIHRoZSBtaW5pbXVtIGRlbGF5IGFsbG93ZWQgYmV0d2VlbiBldmVudHMgaW4gbWljcm9zZWNvbmRzLgorICogQSB2YWx1ZSBvZiB6ZXJvIG1lYW5zIHRoYXQgdGhpcyBzZW5zb3IgZG9lc24ndCByZXBvcnQgZXZlbnRzIGF0IGEKKyAqIGNvbnN0YW50IHJhdGUsIGJ1dCByYXRoZXIgb25seSB3aGVuIGEgbmV3IGRhdGEgaXMgYXZhaWxhYmxlLgorICovCitpbnQgQVNlbnNvcl9nZXRNaW5EZWxheShBU2Vuc29yIGNvbnN0KiBzZW5zb3IpOworCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfTsKKyNlbmRpZgorCisjZW5kaWYgLy8gQU5EUk9JRF9TRU5TT1JfSApkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE5L2luY2x1ZGUvc3lzL3N0YXQuaCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOS9pbmNsdWRlL3N5cy9zdGF0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzE1NmY0MwotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOS9pbmNsdWRlL3N5cy9zdGF0LmgKQEAgLTAsMCArMSwxMTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluCisgKiAgICB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiAgICBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTCisgKiBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICogQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAorICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywKKyAqIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUworICogT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VECisgKiBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQKKyAqIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKyNpZm5kZWYgX1NZU19TVEFUX0hfCisjZGVmaW5lIF9TWVNfU1RBVF9IXworCisjaW5jbHVkZSA8c3lzL2NkZWZzLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3RpbWUuaD4KKyNpbmNsdWRlIDxsaW51eC9zdGF0Lmg+CisKKyNpbmNsdWRlIDxlbmRpYW4uaD4KKworX19CRUdJTl9ERUNMUworCisvKiByZWFsbHkgbWF0Y2hlcyBzdGF0NjQgaW4gdGhlIGtlcm5lbCwgaGVuY2UgdGhlIHBhZGRpbmcKKyAqIE5vdGU6IFRoZSBrZXJuZWwgemVybydzIHRoZSBwYWRkZWQgcmVnaW9uIGJlY2F1c2UgZ2xpYmMgbWlnaHQgcmVhZCB0aGVtCisgKiBpbiB0aGUgaG9wZSB0aGF0IHRoZSBrZXJuZWwgaGFzIHN0cmV0Y2hlZCB0byB1c2luZyBsYXJnZXIgc2l6ZXMuCisgKi8KK3N0cnVjdCBzdGF0IHsKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgIHN0X2RldjsKKyAgICB1bnNpZ25lZCBjaGFyICAgICAgIF9fcGFkMFs0XTsKKworICAgIHVuc2lnbmVkIGxvbmcgICAgICAgX19zdF9pbm87CisgICAgdW5zaWduZWQgaW50ICAgICAgICBzdF9tb2RlOworICAgIHVuc2lnbmVkIGludCAgICAgICAgc3Rfbmxpbms7CisKKyAgICB1bnNpZ25lZCBsb25nICAgICAgIHN0X3VpZDsKKyAgICB1bnNpZ25lZCBsb25nICAgICAgIHN0X2dpZDsKKworICAgIHVuc2lnbmVkIGxvbmcgbG9uZyAgc3RfcmRldjsKKyAgICB1bnNpZ25lZCBjaGFyICAgICAgIF9fcGFkM1s0XTsKKworICAgIGxvbmcgbG9uZyAgICAgICAgICAgc3Rfc2l6ZTsKKyAgICB1bnNpZ25lZCBsb25nCXN0X2Jsa3NpemU7CisgICAgdW5zaWduZWQgbG9uZyBsb25nICBzdF9ibG9ja3M7CisKKyAgICB1bnNpZ25lZCBsb25nICAgICAgIHN0X2F0aW1lOworICAgIHVuc2lnbmVkIGxvbmcgICAgICAgc3RfYXRpbWVfbnNlYzsKKworICAgIHVuc2lnbmVkIGxvbmcgICAgICAgc3RfbXRpbWU7CisgICAgdW5zaWduZWQgbG9uZyAgICAgICBzdF9tdGltZV9uc2VjOworCisgICAgdW5zaWduZWQgbG9uZyAgICAgICBzdF9jdGltZTsKKyAgICB1bnNpZ25lZCBsb25nICAgICAgIHN0X2N0aW1lX25zZWM7CisKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgIHN0X2lubzsKK307CisKKy8qIEZvciBjb21wYXRpYmlsaXR5IHdpdGggR0xpYmMsIHdlIHByb3ZpZGUgbWFjcm8gYWxpYXNlcworICogZm9yIHRoZSBub24tUG9zaXggbmFuby1zZWNvbmRzIGFjY2Vzc29ycy4KKyAqLworI2RlZmluZSAgc3RfYXRpbWVuc2VjICBzdF9hdGltZV9uc2VjCisjZGVmaW5lICBzdF9tdGltZW5zZWMgIHN0X210aW1lX25zZWMKKyNkZWZpbmUgIHN0X2N0aW1lbnNlYyAgc3RfY3RpbWVfbnNlYworCitleHRlcm4gaW50ICAgIGNobW9kKGNvbnN0IGNoYXIgKiwgbW9kZV90KTsKK2V4dGVybiBpbnQgICAgZmNobW9kKGludCwgbW9kZV90KTsKK2V4dGVybiBpbnQgICAgbWtkaXIoY29uc3QgY2hhciAqLCBtb2RlX3QpOworCitleHRlcm4gaW50ICAgIHN0YXQoY29uc3QgY2hhciAqLCBzdHJ1Y3Qgc3RhdCAqKTsKK2V4dGVybiBpbnQgICAgZnN0YXQoaW50LCBzdHJ1Y3Qgc3RhdCAqKTsKK2V4dGVybiBpbnQgICAgbHN0YXQoY29uc3QgY2hhciAqLCBzdHJ1Y3Qgc3RhdCAqKTsKK2V4dGVybiBpbnQgICAgbWtub2QoY29uc3QgY2hhciAqLCBtb2RlX3QsIGRldl90KTsKK2V4dGVybiBtb2RlX3QgdW1hc2sobW9kZV90KTsKKworI2RlZmluZSAgc3RhdDY0ICAgIHN0YXQKKyNkZWZpbmUgIGZzdGF0NjQgICBmc3RhdAorI2RlZmluZSAgbHN0YXQ2NCAgIGxzdGF0CisKK3N0YXRpYyBfX2lubGluZV9fIGludCBta2ZpZm8oY29uc3QgY2hhciAqX19wLCBtb2RlX3QgX19tKQoreworICByZXR1cm4gbWtub2QoX19wLCAoX19tICYgflNfSUZNVCkgfCBTX0lGSUZPLCAoZGV2X3QpMCk7Cit9CisKK2V4dGVybiBpbnQgIGZzdGF0YXQoaW50IGRpcmZkLCBjb25zdCBjaGFyICpwYXRoLCBzdHJ1Y3Qgc3RhdCAqYnVmLCBpbnQgZmxhZ3MpOworZXh0ZXJuIGludCAgbWtkaXJhdChpbnQgZGlyZmQsIGNvbnN0IGNoYXIgKnBhdGhuYW1lLCBtb2RlX3QgbW9kZSk7CitleHRlcm4gaW50IGZjaG93bmF0KGludCBkaXJmZCwgY29uc3QgY2hhciAqcGF0aCwgdWlkX3Qgb3duZXIsIGdpZF90IGdyb3VwLCBpbnQgZmxhZ3MpOworZXh0ZXJuIGludCBmY2htb2RhdChpbnQgZGlyZmQsIGNvbnN0IGNoYXIgKnBhdGgsIG1vZGVfdCBtb2RlLCBpbnQgZmxhZ3MpOworZXh0ZXJuIGludCByZW5hbWVhdChpbnQgb2xkZGlyZmQsIGNvbnN0IGNoYXIgKm9sZHBhdGgsIGludCBuZXdkaXJmZCwgY29uc3QgY2hhciAqbmV3cGF0aCk7CisKKyMgZGVmaW5lIFVUSU1FX05PVyAgICAgICgoMWwgPDwgMzApIC0gMWwpCisjIGRlZmluZSBVVElNRV9PTUlUICAgICAoKDFsIDw8IDMwKSAtIDJsKQorZXh0ZXJuIGludCB1dGltZW5zYXQoaW50IGZkLCBjb25zdCBjaGFyICpwYXRoLCBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgdGltZXNbMl0sIGludCBmbGFncyk7CitleHRlcm4gaW50IGZ1dGltZW5zKGludCBmZCwgY29uc3Qgc3RydWN0IHRpbWVzcGVjIHRpbWVzWzJdKTsKKworX19FTkRfREVDTFMKKworI2VuZGlmIC8qIF9TWVNfU1RBVF9IXyAqLwpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTE5L2luY2x1ZGUvc3lzL3dhaXQuaCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOS9pbmNsdWRlL3N5cy93YWl0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjMwYjdlYwotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0xOS9pbmNsdWRlL3N5cy93YWl0LmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4KKyAqICAgIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqICAgIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MKKyAqIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCisgKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLAorICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTCisgKiBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQKKyAqIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVAorICogT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworI2lmbmRlZiBfU1lTX1dBSVRfSF8KKyNkZWZpbmUgX1NZU19XQUlUX0hfCisKKyNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KKyNpbmNsdWRlIDxsaW51eC93YWl0Lmg+CisjaW5jbHVkZSA8c2lnbmFsLmg+CisKK19fQkVHSU5fREVDTFMKKworI2RlZmluZSBXRVhJVFNUQVRVUyhzKSAgKCgocykgJiAweGZmMDApID4+IDgpCisjZGVmaW5lIFdDT1JFRFVNUChzKSAgICAoKHMpICYgMHg4MCkKKyNkZWZpbmUgV1RFUk1TSUcocykgICAgICgocykgJiAweDdmKQorI2RlZmluZSBXU1RPUFNJRyhzKSAgICAgV0VYSVRTVEFUVVMocykKKworI2RlZmluZSBXSUZFWElURUQocykgICAgKFdURVJNU0lHKHMpID09IDApCisjZGVmaW5lIFdJRlNUT1BQRUQocykgICAoV1RFUk1TSUcocykgPT0gMHg3ZikKKyNkZWZpbmUgV0lGU0lHTkFMRUQocykgIChXVEVSTVNJRygocykrMSkgPj0gMikKKworZXh0ZXJuIHBpZF90ICB3YWl0KGludCAqKTsKK2V4dGVybiBwaWRfdCAgd2FpdHBpZChwaWRfdCwgaW50ICosIGludCk7CitleHRlcm4gcGlkX3QgIHdhaXQzKGludCAqLCBpbnQsIHN0cnVjdCBydXNhZ2UgKik7CitleHRlcm4gcGlkX3QgIHdhaXQ0KHBpZF90LCBpbnQgKiwgaW50LCBzdHJ1Y3QgcnVzYWdlICopOworCisvKiBQb3NpeCBzdGF0ZXMgdGhhdCBpZHR5cGVfdCBzaG91bGQgYmUgYW4gZW51bWVyYXRpb24gdHlwZSwgYnV0CisgKiB0aGUga2VybmVsIGhlYWRlcnMgZGVmaW5lIFBfQUxMLCBQX1BJRCBhbmQgUF9QR0lEIGFzIGNvbnN0YW50IG1hY3JvcworICogaW5zdGVhZC4KKyAqLwordHlwZWRlZiBpbnQgaWR0eXBlX3Q7CisKK2V4dGVybiBpbnQgIHdhaXRpZChpZHR5cGVfdCB3aGljaCwgaWRfdCBpZCwgc2lnaW5mb190ICppbmZvLCBpbnQgb3B0aW9ucyk7CisKK19fRU5EX0RFQ0xTCisKKyNlbmRpZiAvKiBfU1lTX1dBSVRfSF8gKi8KZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2FyY2gtYXJtL2xpYi9saWJjLmEgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9hcmNoLWFybS9saWIvbGliYy5hCmluZGV4IDE4NzcwNTMuLjY3ZmY4MTggMTAwNjQ0Ci0tLSBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2FyY2gtYXJtL2xpYi9saWJjLmEKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvYXJjaC1hcm0vbGliL2xpYmMuYQpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9hcmNoLWFybS9saWIvbGlibV9oYXJkLmEgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9hcmNoLWFybS9saWIvbGlibV9oYXJkLmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmZmNmUxZAotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2FyY2gtYXJtL2xpYi9saWJtX2hhcmQuYQpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9oZWFkZXItcGF0Y2hlcy9oZWFkZXJzLnBhdGNoIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaGVhZGVyLXBhdGNoZXMvaGVhZGVycy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NmI0NGE0Ci0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaGVhZGVyLXBhdGNoZXMvaGVhZGVycy5wYXRjaApAQCAtMCwwICsxLDEzOCBAQAorZGlmZiAtTmF1ciBhL2luY2x1ZGUvYXNtL2Eub3V0LmggYi9pbmNsdWRlL2FzbS9hLm91dC5oCistLS0gYS9pbmNsdWRlL2FzbS9hLm91dC5oCTIwMTMtMDYtMTAgMDg6MTY6MTMuNDk2MzEwMDAwICswODAwCisrKysgYi9pbmNsdWRlL2FzbS9hLm91dC5oCTIwMTMtMDktMDYgMTQ6MTM6MjguMzY2Mjc1MDAwICswODAwCitAQCAtMzMsNyArMzMsNyBAQAorICNkZWZpbmUgTl9EUlNJWkUoYSkgKChhKS5hX2Ryc2l6ZSkKKyAjZGVmaW5lIE5fU1lNU0laRShhKSAoKGEpLmFfc3ltcykKKworLSNkZWZpbmUgTV9NQUNISU5FIDEwMworKyNkZWZpbmUgTV9BUk0gMTAzCisKKyAjaWZuZGVmIExJQlJBUllfU1RBUlRfVEVYVAorICNkZWZpbmUgTElCUkFSWV9TVEFSVF9URVhUICgweDAwYzAwMDAwKQorZGlmZiAtTmF1ciBhL2luY2x1ZGUvYXNtL2J5dGVvcmRlci5oIGIvaW5jbHVkZS9hc20vYnl0ZW9yZGVyLmgKKy0tLSBhL2luY2x1ZGUvYXNtL2J5dGVvcmRlci5oCTIwMTMtMDktMDMgMTI6MzM6MzcuMzUzNDE5MDAwICswODAwCisrKysgYi9pbmNsdWRlL2FzbS9ieXRlb3JkZXIuaAkyMDEzLTA4LTMwIDE3OjQxOjA5LjIzNDI2NTAwMCArMDgwMAorQEAgLTE5LDEyICsxOSw2IEBACisgeworICBfX3UzMiB0OworIAorLSNpZm5kZWYgX190aHVtYl9fCistIGlmICghX19idWlsdGluX2NvbnN0YW50X3AoeCkpIHsKKy0KKy0gX19hc21fXyAoImVvclx0JTAsICUxLCAlMSwgcm9yICMxNiIgOiAiPXIiICh0KSA6ICJyIiAoeCkpOworLSB9IGVsc2UKKy0jZW5kaWYKKyAgdCA9IHggXiAoKHggPDwgMTYpIHwgKHggPj4gMTYpKTsKKyAKKyAgeCA9ICh4IDw8IDI0KSB8ICh4ID4+IDgpOworZGlmZiAtTmF1ciBhL2luY2x1ZGUvYXNtL3N0YXQuaCBiL2luY2x1ZGUvYXNtL3N0YXQuaAorLS0tIGEvaW5jbHVkZS9hc20vc3RhdC5oCTIwMTMtMDktMDMgMTI6MzM6MzcuMzY3NDE4MDAwICswODAwCisrKysgYi9pbmNsdWRlL2FzbS9zdGF0LmgJMjAxMy0wOC0zMCAxNzo0MTowOS40MzEzMDIwMDAgKzA4MDAKK0BAIC0yOSwyMyArMjksMTMgQEAKKyAjZGVmaW5lIFNUQVRfSEFWRV9OU0VDIAorIAorIHN0cnVjdCBzdGF0IHsKKy0jaWZkZWYgX19BUk1FQl9fCistIHVuc2lnbmVkIHNob3J0IHN0X2RldjsKKy0gdW5zaWduZWQgc2hvcnQgX19wYWQxOworLSNlbHNlCisgIHVuc2lnbmVkIGxvbmcgc3RfZGV2OworLSNlbmRpZgorICB1bnNpZ25lZCBsb25nIHN0X2lubzsKKyAgdW5zaWduZWQgc2hvcnQgc3RfbW9kZTsKKyAgdW5zaWduZWQgc2hvcnQgc3Rfbmxpbms7CisgIHVuc2lnbmVkIHNob3J0IHN0X3VpZDsKKyAgdW5zaWduZWQgc2hvcnQgc3RfZ2lkOworLSNpZmRlZiBfX0FSTUVCX18KKy0gdW5zaWduZWQgc2hvcnQgc3RfcmRldjsKKy0gdW5zaWduZWQgc2hvcnQgX19wYWQyOworLSNlbHNlCisgIHVuc2lnbmVkIGxvbmcgc3RfcmRldjsKKy0jZW5kaWYKKyAgdW5zaWduZWQgbG9uZyBzdF9zaXplOworICB1bnNpZ25lZCBsb25nIHN0X2Jsa3NpemU7CisgIHVuc2lnbmVkIGxvbmcgc3RfYmxvY2tzOworZGlmZiAtTmF1ciBhL2luY2x1ZGUvYXNtL3R5cGVzLmggYi9pbmNsdWRlL2FzbS90eXBlcy5oCistLS0gYS9pbmNsdWRlL2FzbS90eXBlcy5oCTIwMTMtMDktMDMgMTI6MzM6MzcuMzEzNDI4MDAwICswODAwCisrKysgYi9pbmNsdWRlL2FzbS90eXBlcy5oCTIwMTMtMDgtMzAgMTc6NDE6MDkuNDY3Mjc0MDAwICswODAwCitAQCAtMjUsNyArMjUsNyBAQAorIHR5cGVkZWYgX19zaWduZWRfXyBpbnQgX19zMzI7CisgdHlwZWRlZiB1bnNpZ25lZCBpbnQgX191MzI7CisgCistI2lmZGVmIF9fR05VQ19fCisrI2lmIGRlZmluZWQoX19HTlVDX18pICYmICFkZWZpbmVkKF9fU1RSSUNUX0FOU0lfXykKKyB0eXBlZGVmIF9fc2lnbmVkX18gbG9uZyBsb25nIF9fczY0OworIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIF9fdTY0OworICNlbmRpZgorZGlmZiAtTmF1ciBhL2luY2x1ZGUvYXNtL3VuYWxpZ25lZC5oIGIvaW5jbHVkZS9hc20vdW5hbGlnbmVkLmgKKy0tLSBhL2luY2x1ZGUvYXNtL3VuYWxpZ25lZC5oCTIwMTMtMDktMDMgMTI6MzM6MzcuMzc2NDIyMDAwICswODAwCisrKysgYi9pbmNsdWRlL2FzbS91bmFsaWduZWQuaAkyMDEzLTA4LTMwIDE3OjQxOjA5LjUwMDMxNjAwMCArMDgwMAorQEAgLTI4LDExICsyOCw2IEBACisgCisgI2RlZmluZSBfX3B1dF91bmFsaWduZWRfbGUodmFsLHB0cikgICAoeyAgIHN3aXRjaCAoc2l6ZW9mKCoocHRyKSkpIHsgICBjYXNlIDE6ICAgKihwdHIpID0gKHZhbCk7ICAgYnJlYWs7ICAgY2FzZSAyOiBfX3B1dF91bmFsaWduZWRfMl9sZSgodmFsKSwoX191OCAqKShwdHIpKTsgICBicmVhazsgICBjYXNlIDQ6IF9fcHV0X3VuYWxpZ25lZF80X2xlKCh2YWwpLChfX3U4ICopKHB0cikpOyAgIGJyZWFrOyAgIGNhc2UgODogX19wdXRfdW5hbGlnbmVkXzhfbGUoKHZhbCksKF9fdTggKikocHRyKSk7ICAgYnJlYWs7ICAgZGVmYXVsdDogX19idWdfdW5hbGlnbmVkX3gocHRyKTsgICBicmVhazsgICB9ICAgKHZvaWQpIDA7ICAgfSkKKyAjZGVmaW5lIF9fcHV0X3VuYWxpZ25lZF9iZSh2YWwscHRyKSAgICh7ICAgc3dpdGNoIChzaXplb2YoKihwdHIpKSkgeyAgIGNhc2UgMTogICAqKHB0cikgPSAodmFsKTsgICBicmVhazsgICBjYXNlIDI6IF9fcHV0X3VuYWxpZ25lZF8yX2JlKCh2YWwpLChfX3U4ICopKHB0cikpOyAgIGJyZWFrOyAgIGNhc2UgNDogX19wdXRfdW5hbGlnbmVkXzRfYmUoKHZhbCksKF9fdTggKikocHRyKSk7ICAgYnJlYWs7ICAgY2FzZSA4OiBfX3B1dF91bmFsaWduZWRfOF9iZSgodmFsKSwoX191OCAqKShwdHIpKTsgICBicmVhazsgICBkZWZhdWx0OiBfX2J1Z191bmFsaWduZWRfeChwdHIpOyAgIGJyZWFrOyAgIH0gICAodm9pZCkgMDsgICB9KQorLSNpZm5kZWYgX19BUk1FQl9fCisgI2RlZmluZSBnZXRfdW5hbGlnbmVkIF9fZ2V0X3VuYWxpZ25lZF9sZQorICNkZWZpbmUgcHV0X3VuYWxpZ25lZCBfX3B1dF91bmFsaWduZWRfbGUKKy0jZWxzZQorLSNkZWZpbmUgZ2V0X3VuYWxpZ25lZCBfX2dldF91bmFsaWduZWRfYmUKKy0jZGVmaW5lIHB1dF91bmFsaWduZWQgX19wdXRfdW5hbGlnbmVkX2JlCistI2VuZGlmCisgI2VuZGlmCitkaWZmIC1OYXVyIGEvaW5jbHVkZS9hc20vdW5pc3RkLmggYi9pbmNsdWRlL2FzbS91bmlzdGQuaAorLS0tIGEvaW5jbHVkZS9hc20vdW5pc3RkLmgJMjAxMy0wOS0wMyAxMjozMzozNy4zMjI0MjcwMDAgKzA4MDAKKysrKyBiL2luY2x1ZGUvYXNtL3VuaXN0ZC5oCTIwMTMtMDgtMzAgMTc6NDE6MDkuNTA2Mjc2MDAwICswODAwCitAQCAtMTksMTIgKzE5LDcgQEAKKyAjaWZuZGVmIF9fQVNNX01BQ0hJTkVfVU5JU1REX0gKKyAjZGVmaW5lIF9fQVNNX01BQ0hJTkVfVU5JU1REX0gKKyAjZGVmaW5lIF9fTlJfT0FCSV9TWVNDQUxMX0JBU0UgMHg5MDAwMDAKKy0jaWYgZGVmaW5lZChfX3RodW1iX18pIHx8IGRlZmluZWQoX19BUk1fRUFCSV9fKQorLS8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCisgI2RlZmluZSBfX05SX1NZU0NBTExfQkFTRSAwCistI2Vsc2UKKy0jZGVmaW5lIF9fTlJfU1lTQ0FMTF9CQVNFIF9fTlJfT0FCSV9TWVNDQUxMX0JBU0UKKy0jZW5kaWYKKyAvKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLworICNkZWZpbmUgX19OUl9yZXN0YXJ0X3N5c2NhbGwgKF9fTlJfU1lTQ0FMTF9CQVNFKyAwKQorICNkZWZpbmUgX19OUl9leGl0IChfX05SX1NZU0NBTExfQkFTRSsgMSkKK2RpZmYgLU5hdXIgYS9pbmNsdWRlL2FzbS91c2VyLmggYi9pbmNsdWRlL2FzbS91c2VyLmgKKy0tLSBhL2luY2x1ZGUvYXNtL3VzZXIuaAkyMDEzLTA5LTAzIDEyOjMzOjM3LjExODQyMTAwMCArMDgwMAorKysrIGIvaW5jbHVkZS9hc20vdXNlci5oCTIwMTMtMDgtMzAgMTc6NDE6MDkuNTE5MzAxMDAwICswODAwCitAQCAtNTgsMTUgKzU4LDQgQEAKKyAjZGVmaW5lIEhPU1RfVEVYVF9TVEFSVF9BRERSICh1LnN0YXJ0X2NvZGUpCisgI2RlZmluZSBIT1NUX1NUQUNLX0VORF9BRERSICh1LnN0YXJ0X3N0YWNrICsgdS51X3NzaXplICogTkJQRykKKyAKKy1zdHJ1Y3QgdXNlcl92ZnAgeworLSB1bnNpZ25lZCBsb25nIGxvbmcgZnByZWdzWzMyXTsKKy0gdW5zaWduZWQgbG9uZyBmcHNjcjsKKy19OworLQorLXN0cnVjdCB1c2VyX3ZmcF9leGMgeworLSB1bnNpZ25lZCBsb25nIGZwZXhjOworLSB1bnNpZ25lZCBsb25nIGZwaW5zdDsKKy0gdW5zaWduZWQgbG9uZyBmcGluc3QyOworLX07CistCisgI2VuZGlmCitkaWZmIC1OYXVyIGEvaW5jbHVkZS9tYWNoaW5lL2FzbS5oIGIvaW5jbHVkZS9tYWNoaW5lL2FzbS5oCistLS0gYS9pbmNsdWRlL21hY2hpbmUvYXNtLmgJMjAxMy0wOS0wMyAxMjozMzozNy4xMzU0MTkwMDAgKzA4MDAKKysrKyBiL2luY2x1ZGUvbWFjaGluZS9hc20uaAkyMDEzLTA4LTMwIDE3OjQxOjA5LjUzMzI5NDAwMCArMDgwMAorQEAgLTc4LDE3ICs3OCw3IEBACisgCS5mbmVuZDsgXAorIAlfQVNNX1NJWkUoeCkKKyAKKy0jaWZkZWYgR1BST0YKKy0jIGlmZGVmIF9fRUxGX18KKy0jICBkZWZpbmUgX1BST0ZfUFJPTE9HVUUJXAorLQltb3YgaXAsIGxyOyBibCBfX21jb3VudAorLSMgZWxzZQorLSMgIGRlZmluZSBfUFJPRl9QUk9MT0dVRQlcCistCW1vdiBpcCxscjsgYmwgbWNvdW50CistIyBlbmRpZgorLSNlbHNlCisgIyBkZWZpbmUgX1BST0ZfUFJPTE9HVUUKKy0jZW5kaWYKKyAKKyAjZGVmaW5lCUVOVFJZKHkpCV9FTlRSWShfQ19MQUJFTCh5KSk7IF9QUk9GX1BST0xPR1VFCisgI2RlZmluZQlFTlRSWV9OUCh5KQlfRU5UUlkoX0NfTEFCRUwoeSkpCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9oZWFkZXItcGF0Y2hlcy9pbmNsdWRlL2FzbS1nZW5lcmljL2ZjbnRsLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9oZWFkZXItcGF0Y2hlcy9pbmNsdWRlL2FzbS1nZW5lcmljL2ZjbnRsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODNjNThlNgotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2hlYWRlci1wYXRjaGVzL2luY2x1ZGUvYXNtLWdlbmVyaWMvZmNudGwuaApAQCAtMCwwICsxLDEzOCBAQAorI2lmbmRlZiBfQVNNX0dFTkVSSUNfRkNOVExfSAorI2RlZmluZSBfQVNNX0dFTkVSSUNfRkNOVExfSAorCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKworI2RlZmluZSBPX0FDQ01PREUgMDAwMDAwMDMKKyNkZWZpbmUgT19SRE9OTFkgMDAwMDAwMDAKKyNkZWZpbmUgT19XUk9OTFkgMDAwMDAwMDEKKyNkZWZpbmUgT19SRFdSIDAwMDAwMDAyCisjaWZuZGVmIE9fQ1JFQVQKKyNkZWZpbmUgT19DUkVBVCAwMDAwMDEwMAorI2VuZGlmCisjaWZuZGVmIE9fRVhDTAorI2RlZmluZSBPX0VYQ0wgMDAwMDAyMDAKKyNlbmRpZgorI2lmbmRlZiBPX05PQ1RUWQorI2RlZmluZSBPX05PQ1RUWSAwMDAwMDQwMAorI2VuZGlmCisjaWZuZGVmIE9fVFJVTkMKKyNkZWZpbmUgT19UUlVOQyAwMDAwMTAwMAorI2VuZGlmCisjaWZuZGVmIE9fQVBQRU5ECisjZGVmaW5lIE9fQVBQRU5EIDAwMDAyMDAwCisjZW5kaWYKKyNpZm5kZWYgT19OT05CTE9DSworI2RlZmluZSBPX05PTkJMT0NLIDAwMDA0MDAwCisjZW5kaWYKKyNpZm5kZWYgT19TWU5DCisjZGVmaW5lIE9fU1lOQyAwMDAxMDAwMAorI2VuZGlmCisjaWZuZGVmIEZBU1lOQworI2RlZmluZSBGQVNZTkMgMDAwMjAwMDAKKyNlbmRpZgorI2lmbmRlZiBPX0RJUkVDVAorI2RlZmluZSBPX0RJUkVDVCAwMDA0MDAwMAorI2VuZGlmCisjaWZuZGVmIE9fTEFSR0VGSUxFCisjZGVmaW5lIE9fTEFSR0VGSUxFIDAwMTAwMDAwCisjZW5kaWYKKyNpZm5kZWYgT19ESVJFQ1RPUlkKKyNkZWZpbmUgT19ESVJFQ1RPUlkgMDAyMDAwMDAKKyNlbmRpZgorI2lmbmRlZiBPX05PRk9MTE9XCisjZGVmaW5lIE9fTk9GT0xMT1cgMDA0MDAwMDAKKyNlbmRpZgorI2lmbmRlZiBPX05PQVRJTUUKKyNkZWZpbmUgT19OT0FUSU1FIDAxMDAwMDAwCisjZW5kaWYKKyNpZm5kZWYgT19OREVMQVkKKyNkZWZpbmUgT19OREVMQVkgT19OT05CTE9DSworI2VuZGlmCisKKyNkZWZpbmUgRl9EVVBGRCAwCisjZGVmaW5lIEZfR0VURkQgMQorI2RlZmluZSBGX1NFVEZEIDIKKyNkZWZpbmUgRl9HRVRGTCAzCisjZGVmaW5lIEZfU0VURkwgNAorI2lmbmRlZiBGX0dFVExLCisjZGVmaW5lIEZfR0VUTEsgNQorI2RlZmluZSBGX1NFVExLIDYKKyNkZWZpbmUgRl9TRVRMS1cgNworI2VuZGlmCisjaWZuZGVmIEZfU0VUT1dOCisjZGVmaW5lIEZfU0VUT1dOIDgKKyNkZWZpbmUgRl9HRVRPV04gOQorI2VuZGlmCisjaWZuZGVmIEZfU0VUU0lHCisjZGVmaW5lIEZfU0VUU0lHIDEwCisjZGVmaW5lIEZfR0VUU0lHIDExCisjZW5kaWYKKworI2RlZmluZSBGRF9DTE9FWEVDIDEKKworI2lmbmRlZiBGX1JETENLCisjZGVmaW5lIEZfUkRMQ0sgMAorI2RlZmluZSBGX1dSTENLIDEKKyNkZWZpbmUgRl9VTkxDSyAyCisjZW5kaWYKKworI2lmbmRlZiBGX0VYTENLCisjZGVmaW5lIEZfRVhMQ0sgNAorI2RlZmluZSBGX1NITENLIDgKKyNlbmRpZgorCisjaWZuZGVmIEZfSU5QUk9HUkVTUworI2RlZmluZSBGX0lOUFJPR1JFU1MgMTYKKyNlbmRpZgorCisjZGVmaW5lIExPQ0tfU0ggMQorI2RlZmluZSBMT0NLX0VYIDIKKyNkZWZpbmUgTE9DS19OQiA0CisjZGVmaW5lIExPQ0tfVU4gOAorCisjZGVmaW5lIExPQ0tfTUFORCAzMgorI2RlZmluZSBMT0NLX1JFQUQgNjQKKyNkZWZpbmUgTE9DS19XUklURSAxMjgKKyNkZWZpbmUgTE9DS19SVyAxOTIKKworI2RlZmluZSBGX0xJTlVYX1NQRUNJRklDX0JBU0UgMTAyNAorCisjaWZuZGVmIEhBVkVfQVJDSF9TVFJVQ1RfRkxPQ0sKKyNpZm5kZWYgX19BUkNIX0ZMT0NLX1BBRAorI2RlZmluZSBfX0FSQ0hfRkxPQ0tfUEFECisjZW5kaWYKKworc3RydWN0IGZsb2NrIHsKKyBzaG9ydCBsX3R5cGU7Cisgc2hvcnQgbF93aGVuY2U7Cisgb2ZmX3QgbF9zdGFydDsKKyBvZmZfdCBsX2xlbjsKKyBwaWRfdCBsX3BpZDsKKyBfX0FSQ0hfRkxPQ0tfUEFECit9OworI2VuZGlmCisKKyNpZm5kZWYgRl9HRVRMSzY0CisjZGVmaW5lIEZfR0VUTEs2NCAxMgorI2RlZmluZSBGX1NFVExLNjQgMTMKKyNkZWZpbmUgRl9TRVRMS1c2NCAxNAorI2VuZGlmCisKKyNpZm5kZWYgSEFWRV9BUkNIX1NUUlVDVF9GTE9DSzY0CisjaWZuZGVmIF9fQVJDSF9GTE9DSzY0X1BBRAorI2RlZmluZSBfX0FSQ0hfRkxPQ0s2NF9QQUQKKyNlbmRpZgorCitzdHJ1Y3QgZmxvY2s2NCB7Cisgc2hvcnQgbF90eXBlOworIHNob3J0IGxfd2hlbmNlOworIHVuc2lnbmVkIGNoYXIgX19wYWRkaW5nWzRdOworIGxvZmZfdCBsX3N0YXJ0OworIGxvZmZfdCBsX2xlbjsKKyBwaWRfdCBsX3BpZDsKKyBfX0FSQ0hfRkxPQ0s2NF9QQUQKK307CisKKyNlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9oZWFkZXItcGF0Y2hlcy9pbmNsdWRlL2FzbS9kaXY2NC5oIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaGVhZGVyLXBhdGNoZXMvaW5jbHVkZS9hc20vZGl2NjQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZGU3Mjc0Ci0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaGVhZGVyLXBhdGNoZXMvaW5jbHVkZS9hc20vZGl2NjQuaApAQCAtMCwwICsxLDYgQEAKKyNpZm5kZWYgX19BU01fRElWNjRfSAorI2RlZmluZSBfX0FTTV9ESVY2NF9ICisKKyNpbmNsdWRlIDxhc20vc3lzdGVtLmg+CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaGVhZGVyLXBhdGNoZXMvaW5jbHVkZS9hc20vZWxmLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9oZWFkZXItcGF0Y2hlcy9pbmNsdWRlL2FzbS9lbGYuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZWM5MzM4Ci0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaGVhZGVyLXBhdGNoZXMvaW5jbHVkZS9hc20vZWxmLmgKQEAgLTAsMCArMSwzMSBAQAorI2lmbmRlZiBfX0FTTV9FTEZfSAorI2RlZmluZSBfX0FTTV9FTEZfSAorCisjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorI2luY2x1ZGUgPGFzbS91c2VyLmg+CisKK3R5cGVkZWYgdW5zaWduZWQgbG9uZyBlbGZfZ3JlZ190OwordHlwZWRlZiB1bnNpZ25lZCBsb25nIGVsZl9mcmVnX3RbM107CisKKworI2RlZmluZSBFTEZfTkdSRUcgKHNpemVvZiAoc3RydWN0IHB0X3JlZ3MpIC8gc2l6ZW9mKGVsZl9ncmVnX3QpKQordHlwZWRlZiBlbGZfZ3JlZ190IGVsZl9ncmVnc2V0X3RbRUxGX05HUkVHXTsKKwordHlwZWRlZiBzdHJ1Y3QgdXNlcl9mcCBlbGZfZnByZWdzZXRfdDsKKworI2RlZmluZSBFTEZfQ0xBU1MgRUxGQ0xBU1MzMgorI2RlZmluZSBFTEZfREFUQSBFTEZEQVRBMkxTQgorCisjZGVmaW5lIFVTRV9FTEZfQ09SRV9EVU1QCisjZGVmaW5lIEVMRl9FWEVDX1BBR0VTSVpFIDQwOTYKKworI2RlZmluZSBFTEZfRVRfRFlOX0JBU0UgKDIgKiBUQVNLX1NJWkUgLyAzKQorCisKKyNkZWZpbmUgRUxGX0hXQ0FQIChlbGZfaHdjYXApCisKKyNkZWZpbmUgRUxGX1BMQVRGT1JNX1NJWkUgOAorCisjZGVmaW5lIEVMRl9QTEFURk9STSAoZWxmX3BsYXRmb3JtKQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2hlYWRlci1wYXRjaGVzL2luY2x1ZGUvYXNtL2xvY2tzLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9oZWFkZXItcGF0Y2hlcy9pbmNsdWRlL2FzbS9sb2Nrcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0NjM2MDMKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9oZWFkZXItcGF0Y2hlcy9pbmNsdWRlL2FzbS9sb2Nrcy5oCkBAIC0wLDAgKzEsNyBAQAorI2lmbmRlZiBfX0FTTV9QUk9DX0xPQ0tTX0gKKyNkZWZpbmUgX19BU01fUFJPQ19MT0NLU19ICisKKyNkZWZpbmUgUldfTE9DS19CSUFTIDB4MDEwMDAwMDAKKyNkZWZpbmUgUldfTE9DS19CSUFTX1NUUiAiMHgwMTAwMDAwMCIKKworI2VuZGlmCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9oZWFkZXItcGF0Y2hlcy9pbmNsdWRlL2FzbS9wdHJhY2UuaCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2hlYWRlci1wYXRjaGVzL2luY2x1ZGUvYXNtL3B0cmFjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwODc3Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9oZWFkZXItcGF0Y2hlcy9pbmNsdWRlL2FzbS9wdHJhY2UuaApAQCAtMCwwICsxLDEwNSBAQAorI2lmbmRlZiBfX0FTTV9QVFJBQ0VfSAorI2RlZmluZSBfX0FTTV9QVFJBQ0VfSAorCisjZGVmaW5lIFBUUkFDRV9HRVRSRUdTIDEyCisjZGVmaW5lIFBUUkFDRV9TRVRSRUdTIDEzCisjZGVmaW5lIFBUUkFDRV9HRVRGUFJFR1MgMTQKKyNkZWZpbmUgUFRSQUNFX1NFVEZQUkVHUyAxNQorCisjZGVmaW5lIFBUUkFDRV9HRVRXTU1YUkVHUyAxOAorI2RlZmluZSBQVFJBQ0VfU0VUV01NWFJFR1MgMTkKKworI2RlZmluZSBQVFJBQ0VfT0xEU0VUT1BUSU9OUyAyMQorCisjZGVmaW5lIFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEgMjIKKworI2RlZmluZSBQVFJBQ0VfU0VUX1NZU0NBTEwgMjMKKworI2RlZmluZSBQVFJBQ0VfR0VUQ1JVTkNIUkVHUyAyNQorI2RlZmluZSBQVFJBQ0VfU0VUQ1JVTkNIUkVHUyAyNgorCisjZGVmaW5lIFVTUjI2X01PREUgMHgwMDAwMDAwMAorI2RlZmluZSBGSVEyNl9NT0RFIDB4MDAwMDAwMDEKKyNkZWZpbmUgSVJRMjZfTU9ERSAweDAwMDAwMDAyCisjZGVmaW5lIFNWQzI2X01PREUgMHgwMDAwMDAwMworI2RlZmluZSBVU1JfTU9ERSAweDAwMDAwMDEwCisjZGVmaW5lIEZJUV9NT0RFIDB4MDAwMDAwMTEKKyNkZWZpbmUgSVJRX01PREUgMHgwMDAwMDAxMgorI2RlZmluZSBTVkNfTU9ERSAweDAwMDAwMDEzCisjZGVmaW5lIEFCVF9NT0RFIDB4MDAwMDAwMTcKKyNkZWZpbmUgVU5EX01PREUgMHgwMDAwMDAxYgorI2RlZmluZSBTWVNURU1fTU9ERSAweDAwMDAwMDFmCisjZGVmaW5lIE1PREUzMl9CSVQgMHgwMDAwMDAxMAorI2RlZmluZSBNT0RFX01BU0sgMHgwMDAwMDAxZgorI2RlZmluZSBQU1JfVF9CSVQgMHgwMDAwMDAyMAorI2RlZmluZSBQU1JfRl9CSVQgMHgwMDAwMDA0MAorI2RlZmluZSBQU1JfSV9CSVQgMHgwMDAwMDA4MAorI2RlZmluZSBQU1JfSl9CSVQgMHgwMTAwMDAwMAorI2RlZmluZSBQU1JfUV9CSVQgMHgwODAwMDAwMAorI2RlZmluZSBQU1JfVl9CSVQgMHgxMDAwMDAwMAorI2RlZmluZSBQU1JfQ19CSVQgMHgyMDAwMDAwMAorI2RlZmluZSBQU1JfWl9CSVQgMHg0MDAwMDAwMAorI2RlZmluZSBQU1JfTl9CSVQgMHg4MDAwMDAwMAorI2RlZmluZSBQQ01BU0sgMAorCisjZGVmaW5lIFBTUl9mIDB4ZmYwMDAwMDAKKyNkZWZpbmUgUFNSX3MgMHgwMGZmMDAwMAorI2RlZmluZSBQU1JfeCAweDAwMDBmZjAwCisjZGVmaW5lIFBTUl9jIDB4MDAwMDAwZmYKKworI2lmbmRlZiBfX0FTU0VNQkxZX18KKworc3RydWN0IHB0X3JlZ3MgeworIGxvbmcgdXJlZ3NbNDRdOyAgIC8vIEluY3JlYXNlIGFycmF5IHNpemUgZm9yIEFSTS94ODYvTUlQUyBjb21wYXRpYmlsaXR5Cit9OworCisjZGVmaW5lIEFSTV9jcHNyIHVyZWdzWzE2XQorI2RlZmluZSBBUk1fcGMgdXJlZ3NbMTVdCisjZGVmaW5lIEFSTV9sciB1cmVnc1sxNF0KKyNkZWZpbmUgQVJNX3NwIHVyZWdzWzEzXQorI2RlZmluZSBBUk1faXAgdXJlZ3NbMTJdCisjZGVmaW5lIEFSTV9mcCB1cmVnc1sxMV0KKyNkZWZpbmUgQVJNX3IxMCB1cmVnc1sxMF0KKyNkZWZpbmUgQVJNX3I5IHVyZWdzWzldCisjZGVmaW5lIEFSTV9yOCB1cmVnc1s4XQorI2RlZmluZSBBUk1fcjcgdXJlZ3NbN10KKyNkZWZpbmUgQVJNX3I2IHVyZWdzWzZdCisjZGVmaW5lIEFSTV9yNSB1cmVnc1s1XQorI2RlZmluZSBBUk1fcjQgdXJlZ3NbNF0KKyNkZWZpbmUgQVJNX3IzIHVyZWdzWzNdCisjZGVmaW5lIEFSTV9yMiB1cmVnc1syXQorI2RlZmluZSBBUk1fcjEgdXJlZ3NbMV0KKyNkZWZpbmUgQVJNX3IwIHVyZWdzWzBdCisjZGVmaW5lIEFSTV9PUklHX3IwIHVyZWdzWzE3XQorCisjZGVmaW5lIHg4Nl9yMTUgdXJlZ3NbMF0KKyNkZWZpbmUgeDg2X3IxNCB1cmVnc1sxXQorI2RlZmluZSB4ODZfcjEzIHVyZWdzWzJdCisjZGVmaW5lIHg4Nl9yMTIgdXJlZ3NbM10KKyNkZWZpbmUgeDg2X3JicCB1cmVnc1s0XQorI2RlZmluZSB4ODZfcmJ4IHVyZWdzWzVdCisjZGVmaW5lIHg4Nl9yMTEgdXJlZ3NbNl0KKyNkZWZpbmUgeDg2X3IxMCB1cmVnc1s3XQorI2RlZmluZSB4ODZfcjkgdXJlZ3NbOF0KKyNkZWZpbmUgeDg2X3I4IHVyZWdzWzldCisjZGVmaW5lIHg4Nl9yYXggdXJlZ3NbMTBdCisjZGVmaW5lIHg4Nl9yY3ggdXJlZ3NbMTFdCisjZGVmaW5lIHg4Nl9yZHggdXJlZ3NbMTJdCisjZGVmaW5lIHg4Nl9yc2kgdXJlZ3NbMTNdCisjZGVmaW5lIHg4Nl9yZGkgdXJlZ3NbMTRdCisjZGVmaW5lIHg4Nl9vcmlnX3JheCB1cmVnc1sxNV0KKyNkZWZpbmUgeDg2X3JpcCB1cmVnc1sxNl0KKyNkZWZpbmUgeDg2X2NzIHVyZWdzWzE3XQorI2RlZmluZSB4ODZfZWZsYWdzIHVyZWdzWzE4XQorI2RlZmluZSB4ODZfcnNwIHVyZWdzWzE5XQorI2RlZmluZSB4ODZfc3MgdXJlZ3NbMjBdCisKKyNkZWZpbmUgcGNfcG9pbnRlcih2KSAgICgodikgJiB+UENNQVNLKQorCisjZGVmaW5lIGluc3RydWN0aW9uX3BvaW50ZXIocmVncykgICAocGNfcG9pbnRlcigocmVncyktPkFSTV9wYykpCisKKyNkZWZpbmUgcHJvZmlsZV9wYyhyZWdzKSBpbnN0cnVjdGlvbl9wb2ludGVyKHJlZ3MpCisKKyNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2hlYWRlci1wYXRjaGVzL2luY2x1ZGUvYXNtL3NpZ2NvbnRleHQuaCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2hlYWRlci1wYXRjaGVzL2luY2x1ZGUvYXNtL3NpZ2NvbnRleHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYmJjYWZhCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaGVhZGVyLXBhdGNoZXMvaW5jbHVkZS9hc20vc2lnY29udGV4dC5oCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBfQVNNX1NJR0NPTlRFWFRfSAorI2RlZmluZSBfQVNNX1NJR0NPTlRFWFRfSAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2hlYWRlci1wYXRjaGVzL2luY2x1ZGUvYXNtL3VhY2Nlc3MuaCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2hlYWRlci1wYXRjaGVzL2luY2x1ZGUvYXNtL3VhY2Nlc3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hY2U5MzVlCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaGVhZGVyLXBhdGNoZXMvaW5jbHVkZS9hc20vdWFjY2Vzcy5oCkBAIC0wLDAgKzEsMzcgQEAKKyNpZm5kZWYgX0FTTV9VQUNDRVNTX0gKKyNkZWZpbmUgX0FTTV9VQUNDRVNTX0gKKworI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8YXNtL2Vycm5vLmg+CisjaW5jbHVkZSA8YXNtL21lbW9yeS5oPgorI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KKworI2RlZmluZSBWRVJJRllfUkVBRCAwCisjZGVmaW5lIFZFUklGWV9XUklURSAxCisKK3N0cnVjdCBleGNlcHRpb25fdGFibGVfZW50cnkKK3sKKyB1bnNpZ25lZCBsb25nIGluc24sIGZpeHVwOworfTsKKworI2RlZmluZSBLRVJORUxfRFMgMHgwMDAwMDAwMAorI2RlZmluZSBnZXRfZHMoKSAoS0VSTkVMX0RTKQorCisjZGVmaW5lIFVTRVJfRFMgS0VSTkVMX0RTCisKKyNkZWZpbmUgc2VnbWVudF9lcShhLGIpICgxKQorI2RlZmluZSBfX2FkZHJfb2soYWRkcikgKDEpCisjZGVmaW5lIF9fcmFuZ2Vfb2soYWRkcixzaXplKSAoMCkKKyNkZWZpbmUgZ2V0X2ZzKCkgKEtFUk5FTF9EUykKKworI2RlZmluZSBnZXRfdXNlcih4LHApCisjZGVmaW5lIHB1dF91c2VyKHgscCkKKyNkZWZpbmUgYWNjZXNzX29rKHR5cGUsYWRkcixzaXplKSAoX19yYW5nZV9vayhhZGRyLHNpemUpID09IDApCisjZGVmaW5lIF9fY29weV9mcm9tX3VzZXIodG8sZnJvbSxuKSAobWVtY3B5KHRvLCAodm9pZCBfX2ZvcmNlICopZnJvbSwgbiksIDApCisjZGVmaW5lIF9fY29weV90b191c2VyKHRvLGZyb20sbikgKG1lbWNweSgodm9pZCBfX2ZvcmNlICopdG8sIGZyb20sIG4pLCAwKQorI2RlZmluZSBfX2NsZWFyX3VzZXIoYWRkcixuKSAobWVtc2V0KCh2b2lkIF9fZm9yY2UgKilhZGRyLCAwLCBuKSwgMCkKKworI2RlZmluZSBfX2NvcHlfdG9fdXNlcl9pbmF0b21pYyBfX2NvcHlfdG9fdXNlcgorI2RlZmluZSBfX2NvcHlfZnJvbV91c2VyX2luYXRvbWljIF9fY29weV9mcm9tX3VzZXIKKyNkZWZpbmUgc3RybGVuX3VzZXIocykgc3Rybmxlbl91c2VyKHMsIH4wVUwgPj4gMSkKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaGVhZGVyLXBhdGNoZXMvaW5jbHVkZS9mZW52LmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9oZWFkZXItcGF0Y2hlcy9pbmNsdWRlL2ZlbnYuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZWU1MzBkCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaGVhZGVyLXBhdGNoZXMvaW5jbHVkZS9mZW52LmgKQEAgLTAsMCArMSwxMDEgQEAKKy8qLQorICogQ29weXJpZ2h0IChjKSAyMDA0LTIwMDUgRGF2aWQgU2NodWx0eiA8ZGFzQEZyZWVCU0QuT1JHPgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqCisgKiAkRnJlZUJTRDogc3JjL2xpYi9tc3VuL2FybS9mZW52LmgsdiAxLjUgMjAwNS8wMy8xNiAxOTowMzo0NSBkYXMgRXhwICQKKyAqLworCisvKgorICogUmV3cml0dGVuIGZvciBBbmRyb2lkLgorICoKKyAqIFRoZSBBUk0gRlBTQ1IgaXMgZGVzY3JpYmVkIGhlcmU6CisgKiBodHRwOi8vaW5mb2NlbnRlci5hcm0uY29tL2hlbHAvaW5kZXguanNwP3RvcGljPS9jb20uYXJtLmRvYy5kZGkwMzQ0Yi9DaGRmYWZpYS5odG1sCisgKi8KKworI2lmbmRlZiBfRkVOVl9IXworI2RlZmluZSBfRkVOVl9IXworCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisKK19fQkVHSU5fREVDTFMKKworLyogCisgKiBhcm0vbWlwcyBkZWZpbml0aW9uCisgKi8KK3R5cGVkZWYgX191aW50MzJfdCBmZW52X3Q7Cit0eXBlZGVmIF9fdWludDMyX3QgZmV4Y2VwdF90OworCisvKgorICogeDg2IGRlZmluaXRpb24KKyAqLworLyoKK3R5cGVkZWYgc3RydWN0IHsKKyAgICAgICAgX191aW50MTZfdCAgICAgIF9fY29udHJvbDsKKyAgICAgICAgX191aW50MTZfdCAgICAgIF9fbXhjc3JfaGk7CisgICAgICAgIF9fdWludDE2X3QgICAgICBfX3N0YXR1czsKKyAgICAgICAgX191aW50MTZfdCAgICAgIF9fbXhjc3JfbG87CisgICAgICAgIF9fdWludDMyX3QgICAgICBfX3RhZzsKKyAgICAgICAgY2hhciAgICAgICAgICAgIF9fb3RoZXJbMTZdOworfSBmZW52X3Q7CisqLworCisKKy8qIEV4Y2VwdGlvbiBmbGFncy4gKi8KKyNkZWZpbmUgRkVfSU5WQUxJRCAgICAweDAxCisjZGVmaW5lIEZFX0RJVkJZWkVSTyAgMHgwMgorI2RlZmluZSBGRV9PVkVSRkxPVyAgIDB4MDQKKyNkZWZpbmUgRkVfVU5ERVJGTE9XICAweDA4CisjZGVmaW5lIEZFX0lORVhBQ1QgICAgMHgxMAorI2RlZmluZSBGRV9BTExfRVhDRVBUIChGRV9ESVZCWVpFUk8gfCBGRV9JTkVYQUNUIHwgRkVfSU5WQUxJRCB8IEZFX09WRVJGTE9XIHwgRkVfVU5ERVJGTE9XKQorCisvKiBSb3VuZGluZyBtb2Rlcy4gKi8KKyNkZWZpbmUgRkVfVE9ORUFSRVNUICAweDAKKyNkZWZpbmUgRkVfVVBXQVJEICAgICAweDEKKyNkZWZpbmUgRkVfRE9XTldBUkQgICAweDIKKyNkZWZpbmUgRkVfVE9XQVJEWkVSTyAweDMKKworLyogRGVmYXVsdCBmbG9hdGluZy1wb2ludCBlbnZpcm9ubWVudC4gKi8KK2V4dGVybiBjb25zdCBmZW52X3QgX19mZV9kZmxfZW52OworI2RlZmluZSBGRV9ERkxfRU5WICgmX19mZV9kZmxfZW52KQorCisvKgorICogTmVlZCBpbXBsZW1lbnRhdGlvbnMgaW4gbGlicG9ydGFibGUgdG8gZW5hYmxlIGZvbGxvd2luZyBmdW5jdGlvbnMKKyAqCisgKiBpbnQgZmVnZXRlbnYoZmVudl90KiBfX2VudnApOworICogaW50IGZlc2V0ZW52KGNvbnN0IGZlbnZfdCogX19lbnZwKTsKKyAqIGludCBmZWhvbGRleGNlcHQoZmVudl90KiBfX2VudnApOworICogaW50IGZldXBkYXRlZW52KGNvbnN0IGZlbnZfdCogX19lbnZwKTsKKyAqLworCitpbnQgZmVjbGVhcmV4Y2VwdChpbnQgX19leGNlcHRzKTsKK2ludCBmZWdldGV4Y2VwdGZsYWcoZmV4Y2VwdF90KiBfX2ZsYWdwLCBpbnQgX19leGNlcHRzKTsKK2ludCBmZXNldGV4Y2VwdGZsYWcoY29uc3QgZmV4Y2VwdF90KiBfX2ZsYWdwLCBpbnQgX19leGNlcHRzKTsKK2ludCBmZXJhaXNlZXhjZXB0KGludCBfX2V4Y2VwdHMpOworaW50IGZldGVzdGV4Y2VwdChpbnQgX19leGNlcHRzKTsKK2ludCBmZWdldHJvdW5kKHZvaWQpOworaW50IGZlc2V0cm91bmQoaW50IF9fcm91bmQpOworCitfX0VORF9ERUNMUworCisjZW5kaWYgLyogIV9GRU5WX0hfICovCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLXg4Ni9zcmMvX19kc29faGFuZGxlLlMgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9oZWFkZXItcGF0Y2hlcy9pbmNsdWRlL21hY2hpbmUvZW5kaWFuLmgKc2ltaWxhcml0eSBpbmRleCA2NiUKY29weSBmcm9tIG5kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2FyY2gteDg2L3NyYy9fX2Rzb19oYW5kbGUuUwpjb3B5IHRvIG5kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2hlYWRlci1wYXRjaGVzL2luY2x1ZGUvbWFjaGluZS9lbmRpYW4uaAppbmRleCAzZTgwMTI4Li41ZjY5MzU3IDEwMDY0NAotLS0gYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLXg4Ni9zcmMvX19kc29faGFuZGxlLlMKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaGVhZGVyLXBhdGNoZXMvaW5jbHVkZS9tYWNoaW5lL2VuZGlhbi5oCkBAIC0xLDUgKzEsNyBAQAorLyoJJE9wZW5CU0Q6IGVuZGlhbi5oLHYgMS4zIDIwMDUvMTIvMTMgMDA6MzU6MjMgbWlsbGVydCBFeHAgJAkqLworCiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMjYsMTcgKzI4LDI4IEBACiAgKiBTVUNIIERBTUFHRS4KICAqLwogCi0jIFRoZSBfX2Rzb19oYW5kbGUgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgYnkgc3RhdGljCi0jIEMrKyBjb25zdHJ1Y3RvcnMgYW5kIGRlc3RydWN0b3JzIGluIHRoZSBiaW5hcnkuCi0jIFNlZSBodHRwOi8vd3d3LmNvZGVzb3VyY2VyeS5jb20vcHVibGljL2N4eC1hYmkvYWJpLmh0bWwjZHNvLWR0b3IKLSMKLSAgICAgICAgLnNlY3Rpb24gLmJzcwotICAgICAgICAuYWxpZ24gNAorI2lmbmRlZiBfTUFDSElORV9FTkRJQU5fSF8KKyNkZWZpbmUgX01BQ0hJTkVfRU5ESUFOX0hfCiAKLSNpZm5kZWYgQ1JUX0xFR0FDWV9XT1JLQVJPVU5ECi0JLmhpZGRlbiBfX2Rzb19oYW5kbGUKLSNlbmRpZgorI2lmZGVmIF9fR05VQ19fCiAKLSAgICAgICAgLmdsb2JsIF9fZHNvX2hhbmRsZQotX19kc29faGFuZGxlOgotICAgICAgICAubG9uZyAwCisvKgorICogSW1wbGVtZW50IGJlbG93IHN3YXB7MTYsMzIsNjR9bWQgZnVuY3Rpb25zIGluIGxpYnBvcnRhYmxlCisgKiB0aGF0IGFyZSBvcHRpbWl6ZWQgZm9yIHlvdXIgYXJjaGl0ZWN0dXJlLgorICoKKyAqIHVpbnQxNl90IF9fc3dhcDE2bWQodWludDE2X3QgeCk7CisgKiB1aW50MzJfdCBfX3N3YXAzMm1kKHVpbnQzMl90IHgpOworICogdWludDY0X3QgX19zd2FwNjRtZCh1aW50NjRfdCB4KTsKKyAqLworCisvKiBUZWxsIHN5cy9lbmRpYW4uaCB3ZSBoYXZlIE1EIHZhcmlhbnRzIG9mIHRoZSBzd2FwIG1hY3Jvcy4KKyAqICNkZWZpbmUgTURfU1dBUAorICovCisjZW5kaWYgIC8qIF9fR05VQ19fICovCisKKyNkZWZpbmUgX0JZVEVfT1JERVIgX0xJVFRMRV9FTkRJQU4KKyNkZWZpbmUgX19TVFJJQ1RfQUxJR05NRU5UCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL2VuZGlhbi5oPgorCisjZW5kaWYgIC8qICFfTUFDSElORV9FTkRJQU5fSF8gKi8KZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2hlYWRlci1wYXRjaGVzL2luY2x1ZGUvbWFjaGluZS9pZWVlLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9oZWFkZXItcGF0Y2hlcy9pbmNsdWRlL21hY2hpbmUvaWVlZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyM2Y1ZWYKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9oZWFkZXItcGF0Y2hlcy9pbmNsdWRlL21hY2hpbmUvaWVlZS5oCkBAIC0wLDAgKzEsMTUxIEBACisvKgkkT3BlbkJTRDogaWVlZS5oLHYgMS4xIDIwMDQvMDIvMDEgMDU6MDk6NDkgZHJhaG4gRXhwICQJKi8KKy8qCSROZXRCU0Q6IGllZWUuaCx2IDEuMiAyMDAxLzAyLzIxIDE3OjQzOjUwIGJqaDIxIEV4cCAkCSovCisKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDE5OTIsIDE5OTMKKyAqCVRoZSBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgc29mdHdhcmUgd2FzIGRldmVsb3BlZCBieSB0aGUgQ29tcHV0ZXIgU3lzdGVtcyBFbmdpbmVlcmluZyBncm91cAorICogYXQgTGF3cmVuY2UgQmVya2VsZXkgTGFib3JhdG9yeSB1bmRlciBEQVJQQSBjb250cmFjdCBCRyA5MS02NiBhbmQKKyAqIGNvbnRyaWJ1dGVkIHRvIEJlcmtlbGV5LgorICoKKyAqIEFsbCBhZHZlcnRpc2luZyBtYXRlcmlhbHMgbWVudGlvbmluZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhpcyBzb2Z0d2FyZQorICogbXVzdCBkaXNwbGF5IHRoZSBmb2xsb3dpbmcgYWNrbm93bGVkZ2VtZW50OgorICoJVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieSB0aGUgVW5pdmVyc2l0eSBvZgorICoJQ2FsaWZvcm5pYSwgTGF3cmVuY2UgQmVya2VsZXkgTGFib3JhdG9yeS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIEFsbCBhZHZlcnRpc2luZyBtYXRlcmlhbHMgbWVudGlvbmluZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhpcyBzb2Z0d2FyZQorICogICAgbXVzdCBkaXNwbGF5IHRoZSBmb2xsb3dpbmcgYWNrbm93bGVkZ2VtZW50OgorICoJVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieSB0aGUgVW5pdmVyc2l0eSBvZgorICoJQ2FsaWZvcm5pYSwgQmVya2VsZXkgYW5kIGl0cyBjb250cmlidXRvcnMuCisgKiA0LiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCisgKiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBSRUdFTlRTIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgUkVHRU5UUyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICoKKyAqCUAoIylpZWVlLmgJOC4xIChCZXJrZWxleSkgNi8xMS85MworICovCisKKy8qCisgKiBpZWVlLmggZGVmaW5lcyB0aGUgbWFjaGluZS1kZXBlbmRlbnQgbGF5b3V0IG9mIHRoZSBtYWNoaW5lJ3MgSUVFRQorICogZmxvYXRpbmcgcG9pbnQuCisgKi8KKworLyoKKyAqIERlZmluZSB0aGUgbnVtYmVyIG9mIGJpdHMgaW4gZWFjaCBmcmFjdGlvbiBhbmQgZXhwb25lbnQuCisgKgorICoJCSAgICAgawkgICAgICAgICBrKzEKKyAqIE5vdGUgdGhhdCAgMS4wIHggMiAgPT0gMC4xIHggMiAgICAgIGFuZCB0aGF0IGRlbm9ybXMgYXJlIHJlcHJlc2VudGVkCisgKgorICoJCQkJCSAgKC1leHBfYmlhcysxKQorICogYXMgZnJhY3Rpb25zIHRoYXQgbG9vayBsaWtlIDAuZmZmZmYgeCAyICAgICAgICAgICAgIC4gIFRoaXMgbWVhbnMgdGhhdAorICoKKyAqCQkJIC0xMjYKKyAqIHRoZSBudW1iZXIgMC4xMDAwMCB4IDIgICAgLCBmb3IgaW5zdGFuY2UsIGlzIHRoZSBzYW1lIGFzIHRoZSBub3JtYWxpemVkCisgKgorICoJCS0xMjcJCQkgICAtMTI4CisgKiBmbG9hdCAxLjAgeCAyICAgIC4gIFRodXMsIHRvIHJlcHJlc2VudCAyICAgICwgd2UgbmVlZCBvbmUgbGVhZGluZyB6ZXJvCisgKgorICoJCQkJICAtMTI5CisgKiBpbiB0aGUgZnJhY3Rpb247IHRvIHJlcHJlc2VudCAyICAgICwgd2UgbmVlZCB0d28sIGFuZCBzbyBvbi4gIFRoaXMKKyAqCisgKgkJCQkJCSAgICAgKC1leHBfYmlhcy1mcmFjYml0cysxKQorICogaW1wbGllcyB0aGF0IHRoZSBzbWFsbGVzdCBkZW5vcm1hbGl6ZWQgbnVtYmVyIGlzIDIKKyAqCisgKiBmb3Igd2hpY2hldmVyIGZvcm1hdCB3ZSBhcmUgdGFsa2luZyBhYm91dDogZm9yIHNpbmdsZSBwcmVjaXNpb24sIGZvcgorICoKKyAqCQkJCQkJLTEyNgkJLTE0OQorICogaW5zdGFuY2UsIHdlIGdldCAuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEgeCAyICAgICwgb3IgMS4wIHggMiAgICAsIGFuZAorICoKKyAqIC0xNDkgPT0gLTEyNyAtIDIzICsgMS4KKyAqLworCisvKgorICogVGhlIEFSTSBoYXMgdHdvIHNldHMgb2YgRlAgZGF0YSBmb3JtYXRzLiAgVGhlIEZQQSBzdXBwb3J0cyAzMi1iaXQsIDY0LWJpdAorICogYW5kIDk2LWJpdCBJRUVFIGZvcm1hdHMsIHdpdGggdGhlIHdvcmRzIGluIGJpZy1lbmRpYW4gb3JkZXIuICBWRlAgc3VwcG9ydHMKKyAqIDMyLWJpbiBhbmQgNjQtYml0IElFRUUgZm9ybWF0cyB3aXRoIHRoZSB3b3JkcyBpbiB0aGUgQ1BVJ3MgbmF0aXZlIGJ5dGUKKyAqIG9yZGVyLgorICoKKyAqIFRoZSBGUEEgYWxzbyBoYXMgdHdvIHBhY2tlZCBkZWNpbWFsIGZvcm1hdHMsIGJ1dCB3ZSBpZ25vcmUgdGhlbSBoZXJlLgorICovCisKKyNkZWZpbmUJU05HX0VYUEJJVFMJOAorI2RlZmluZQlTTkdfRlJBQ0JJVFMJMjMKKworI2RlZmluZQlEQkxfRVhQQklUUwkxMQorI2RlZmluZQlEQkxfRlJBQ0JJVFMJNTIKKworI2RlZmluZQlFWFRfRVhQQklUUwkxNQorI2RlZmluZQlFWFRfRlJBQ0JJVFMJMTEyCisKK3N0cnVjdCBpZWVlX3NpbmdsZSB7CisJdV9pbnQJc25nX2ZyYWM6MjM7CisJdV9pbnQJc25nX2V4cDo4OworCXVfaW50CXNuZ19zaWduOjE7Cit9OworCitzdHJ1Y3QgaWVlZV9kb3VibGUgeworCXVfaW50CWRibF9mcmFjbDsKKwl1X2ludAlkYmxfZnJhY2g6MjA7CisJdV9pbnQJZGJsX2V4cDoxMTsKKwl1X2ludAlkYmxfc2lnbjoxOworfTsKKwordW5pb24gaWVlZV9kb3VibGVfdSB7CisJZG91YmxlICAgICAgICAgICAgICAgICAgZGJsdV9kOworCXN0cnVjdCBpZWVlX2RvdWJsZSAgICAgIGRibHVfZGJsOworfTsKKworc3RydWN0IGllZWVfZXh0IHsKKwl1X2ludAlleHRfZnJhY2g6MTY7CisJdV9pbnQJZXh0X2V4cDoxNTsKKwl1X2ludAlleHRfc2lnbjoxOworCXVfaW50CWV4dF9mcmFjaG07CisJdV9pbnQJZXh0X2ZyYWNsbTsKKwl1X2ludAlleHRfZnJhY2w7Cit9OworCisvKgorICogRmxvYXRzIHdob3NlIGV4cG9uZW50IGlzIGluIFsxLi5JTkZOQU4pIChvZiB3aGF0ZXZlciB0eXBlKSBhcmUKKyAqIGBub3JtYWwnLiAgRmxvYXRzIHdob3NlIGV4cG9uZW50IGlzIElORk5BTiBhcmUgZWl0aGVyIEluZiBvciBOYU4uCisgKiBGbG9hdHMgd2hvc2UgZXhwb25lbnQgaXMgemVybyBhcmUgZWl0aGVyIHplcm8gKGlmZiBhbGwgZnJhY3Rpb24KKyAqIGJpdHMgYXJlIHplcm8pIG9yIHN1Ym5vcm1hbCB2YWx1ZXMuCisgKgorICogQSBOYU4gaXMgYSBgc2lnbmFsbGluZyBOYU4nIGlmIGl0cyBRVUlFVE5BTiBiaXQgaXMgY2xlYXIgaW4gaXRzCisgKiBoaWdoIGZyYWN0aW9uOyBpZiB0aGUgYml0IGlzIHNldCwgaXQgaXMgYSBgcXVpZXQgTmFOJy4KKyAqLworI2RlZmluZQlTTkdfRVhQX0lORk5BTgkyNTUKKyNkZWZpbmUJREJMX0VYUF9JTkZOQU4JMjA0NworI2RlZmluZQlFWFRfRVhQX0lORk5BTgkzMjc2NworCisjaWYgMAorI2RlZmluZQlTTkdfUVVJRVROQU4JKDEgPDwgMjIpCisjZGVmaW5lCURCTF9RVUlFVE5BTgkoMSA8PCAxOSkKKyNkZWZpbmUJRVhUX1FVSUVUTkFOCSgxIDw8IDE1KQorI2VuZGlmCisKKy8qCisgKiBFeHBvbmVudCBiaWFzZXMuCisgKi8KKyNkZWZpbmUJU05HX0VYUF9CSUFTCTEyNworI2RlZmluZQlEQkxfRVhQX0JJQVMJMTAyMworI2RlZmluZQlFWFRfRVhQX0JJQVMJMTYzODMKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2FyY2gteDg2L3NyYy9fX2Rzb19oYW5kbGUuUyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2hlYWRlci1wYXRjaGVzL2luY2x1ZGUvbWFjaGluZS9zZXRqbXAuaApzaW1pbGFyaXR5IGluZGV4IDc3JQpyZW5hbWUgZnJvbSBuZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLXg4Ni9zcmMvX19kc29faGFuZGxlLlMKcmVuYW1lIHRvIG5kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2hlYWRlci1wYXRjaGVzL2luY2x1ZGUvbWFjaGluZS9zZXRqbXAuaAppbmRleCAzZTgwMTI4Li5kN2I3OTJlIDEwMDY0NAotLS0gYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLXg4Ni9zcmMvX19kc29faGFuZGxlLlMKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaGVhZGVyLXBhdGNoZXMvaW5jbHVkZS9tYWNoaW5lL3NldGptcC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTI2LDE3ICsyNiwxNCBAQAogICogU1VDSCBEQU1BR0UuCiAgKi8KIAotIyBUaGUgX19kc29faGFuZGxlIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGJ5IHN0YXRpYwotIyBDKysgY29uc3RydWN0b3JzIGFuZCBkZXN0cnVjdG9ycyBpbiB0aGUgYmluYXJ5LgotIyBTZWUgaHR0cDovL3d3dy5jb2Rlc291cmNlcnkuY29tL3B1YmxpYy9jeHgtYWJpL2FiaS5odG1sI2Rzby1kdG9yCi0jCi0gICAgICAgIC5zZWN0aW9uIC5ic3MKLSAgICAgICAgLmFsaWduIDQKKy8qCisgKiBtYWNoaW5lL3NldGptcC5oOiBtYWNoaW5lIGRlcGVuZGVudCBzZXRqbXAtcmVsYXRlZCBpbmZvcm1hdGlvbi4KKyAqLwogCi0jaWZuZGVmIENSVF9MRUdBQ1lfV09SS0FST1VORAotCS5oaWRkZW4gX19kc29faGFuZGxlCi0jZW5kaWYKLQotICAgICAgICAuZ2xvYmwgX19kc29faGFuZGxlCi1fX2Rzb19oYW5kbGU6Ci0gICAgICAgIC5sb25nIDAKKy8qIF9KQkxFTiBpcyB0aGUgc2l6ZSBvZiBhIGptcF9idWYgaW4gbG9uZ3MuCisgKiBEbyBub3QgbW9kaWZ5IHRoaXMgdmFsdWUgb3IgeW91IHdpbGwgYnJlYWsgdGhlIEFCSSAhCisgKgorICogVGhpcyB2YWx1ZSBjb21lcyBmcm9tIHRoZSBtaXBzIG1hY2hpbmUvc2V0am1wLmggaGVhZGVyCisgKiBiZWNhdXNlIGl0IGhhcyB0aGUgYmlnZ2VzdCBqdW1wIGJ1ZmZlciBsZW5ndGguCisgKi8KKyNkZWZpbmUgX0pCTEVOICAxNTcKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2hlYWRlci1wYXRjaGVzL2luY2x1ZGUvc3lzL2Vwb2xsLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9oZWFkZXItcGF0Y2hlcy9pbmNsdWRlL3N5cy9lcG9sbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2YjA4ODIKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9oZWFkZXItcGF0Y2hlcy9pbmNsdWRlL3N5cy9lcG9sbC5oCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluCisgKiAgICB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiAgICBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTCisgKiBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICogQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAorICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywKKyAqIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUworICogT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VECisgKiBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQKKyAqIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKyNpZm5kZWYgX1NZU19FUE9MTF9IXworI2RlZmluZSBfU1lTX0VQT0xMX0hfCisKKyNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KKworX19CRUdJTl9ERUNMUworCisjZGVmaW5lIEVQT0xMSU4gICAgICAgICAgMHgwMDAwMDAwMQorI2RlZmluZSBFUE9MTFBSSSAgICAgICAgIDB4MDAwMDAwMDIKKyNkZWZpbmUgRVBPTExPVVQgICAgICAgICAweDAwMDAwMDA0CisjZGVmaW5lIEVQT0xMRVJSICAgICAgICAgMHgwMDAwMDAwOAorI2RlZmluZSBFUE9MTEhVUCAgICAgICAgIDB4MDAwMDAwMTAKKyNkZWZpbmUgRVBPTExSRE5PUk0gICAgICAweDAwMDAwMDQwCisjZGVmaW5lIEVQT0xMUkRCQU5EICAgICAgMHgwMDAwMDA4MAorI2RlZmluZSBFUE9MTFdSTk9STSAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgRVBPTExXUkJBTkQgICAgICAweDAwMDAwMjAwCisjZGVmaW5lIEVQT0xMTVNHICAgICAgICAgMHgwMDAwMDQwMAorI2RlZmluZSBFUE9MTEVUICAgICAgICAgIDB4ODAwMDAwMDAKKworI2RlZmluZSBFUE9MTF9DVExfQUREICAgIDEKKyNkZWZpbmUgRVBPTExfQ1RMX0RFTCAgICAyCisjZGVmaW5lIEVQT0xMX0NUTF9NT0QgICAgMworCit0eXBlZGVmIHVuaW9uIGVwb2xsX2RhdGEgCit7CisgICAgdm9pZCAqcHRyOworICAgIGludCBmZDsKKyAgICB1bnNpZ25lZCBpbnQgdTMyOworICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB1NjQ7Cit9IGVwb2xsX2RhdGFfdDsKKworc3RydWN0IGVwb2xsX2V2ZW50Cit7CisgICAgdW5zaWduZWQgaW50IGV2ZW50czsKKyAgICB1bnNpZ25lZCBjaGFyIF9fcGFkZGluZ1s0XTsKKyAgICBlcG9sbF9kYXRhX3QgZGF0YTsKK307CisKK2ludCBlcG9sbF9jcmVhdGUoaW50IHNpemUpOworaW50IGVwb2xsX2N0bChpbnQgZXBmZCwgaW50IG9wLCBpbnQgZmQsIHN0cnVjdCBlcG9sbF9ldmVudCAqZXZlbnQpOworaW50IGVwb2xsX3dhaXQoaW50IGVwZmQsIHN0cnVjdCBlcG9sbF9ldmVudCAqZXZlbnRzLCBpbnQgbWF4LCBpbnQgdGltZW91dCk7CisKK19fRU5EX0RFQ0xTCisKKyNlbmRpZiAgLyogX1NZU19FUE9MTF9IXyAqLwpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaGVhZGVyLXBhdGNoZXMvaW5jbHVkZS9zeXMvc3RhdC5oIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaGVhZGVyLXBhdGNoZXMvaW5jbHVkZS9zeXMvc3RhdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhOWFmNWIKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9oZWFkZXItcGF0Y2hlcy9pbmNsdWRlL3N5cy9zdGF0LmgKQEAgLTAsMCArMSwxMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluCisgKiAgICB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiAgICBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTCisgKiBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICogQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAorICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywKKyAqIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUworICogT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VECisgKiBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQKKyAqIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKyNpZm5kZWYgX1NZU19TVEFUX0hfCisjZGVmaW5lIF9TWVNfU1RBVF9IXworCisjaW5jbHVkZSA8c3lzL2NkZWZzLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3RpbWUuaD4KKyNpbmNsdWRlIDxsaW51eC9zdGF0Lmg+CisKKyNpbmNsdWRlIDxlbmRpYW4uaD4KKworX19CRUdJTl9ERUNMUworCisvKiByZWFsbHkgbWF0Y2hlcyBzdGF0NjQgaW4gdGhlIGtlcm5lbCwgaGVuY2UgdGhlIHBhZGRpbmcKKyAqIE5vdGU6IFRoZSBrZXJuZWwgemVybydzIHRoZSBwYWRkZWQgcmVnaW9uIGJlY2F1c2UgZ2xpYmMgbWlnaHQgcmVhZCB0aGVtCisgKiBpbiB0aGUgaG9wZSB0aGF0IHRoZSBrZXJuZWwgaGFzIHN0cmV0Y2hlZCB0byB1c2luZyBsYXJnZXIgc2l6ZXMuCisgKi8KK3N0cnVjdCBzdGF0IHsKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgIHN0X2RldjsKKyAgICB1bnNpZ25lZCBjaGFyICAgICAgIF9fcGFkMFs0XTsKKworICAgIHVuc2lnbmVkIGxvbmcgICAgICAgX19zdF9pbm87CisgICAgdW5zaWduZWQgaW50ICAgICAgICBzdF9tb2RlOworICAgIHVuc2lnbmVkIGludCAgICAgICAgc3Rfbmxpbms7CisKKyAgICB1bnNpZ25lZCBsb25nICAgICAgIHN0X3VpZDsKKyAgICB1bnNpZ25lZCBsb25nICAgICAgIHN0X2dpZDsKKworICAgIHVuc2lnbmVkIGxvbmcgbG9uZyAgc3RfcmRldjsKKyAgICB1bnNpZ25lZCBjaGFyICAgICAgIF9fcGFkM1s0XTsKKworICAgIHVuc2lnbmVkIGNoYXIgICAgICAgX19wYWQ0WzRdOworICAgIGxvbmcgbG9uZyAgICAgICAgICAgc3Rfc2l6ZTsKKyAgICB1bnNpZ25lZCBsb25nICAgICAgIHN0X2Jsa3NpemU7CisgICAgdW5zaWduZWQgY2hhciAgICAgICBfX3BhZDVbNF07CisgICAgdW5zaWduZWQgbG9uZyBsb25nICBzdF9ibG9ja3M7CisKKyAgICB1bnNpZ25lZCBsb25nICAgICAgIHN0X2F0aW1lOworICAgIHVuc2lnbmVkIGxvbmcgICAgICAgc3RfYXRpbWVfbnNlYzsKKworICAgIHVuc2lnbmVkIGxvbmcgICAgICAgc3RfbXRpbWU7CisgICAgdW5zaWduZWQgbG9uZyAgICAgICBzdF9tdGltZV9uc2VjOworCisgICAgdW5zaWduZWQgbG9uZyAgICAgICBzdF9jdGltZTsKKyAgICB1bnNpZ25lZCBsb25nICAgICAgIHN0X2N0aW1lX25zZWM7CisKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgIHN0X2lubzsKK307CisKKy8qIEZvciBjb21wYXRpYmlsaXR5IHdpdGggR0xpYmMsIHdlIHByb3ZpZGUgbWFjcm8gYWxpYXNlcworICogZm9yIHRoZSBub24tUG9zaXggbmFuby1zZWNvbmRzIGFjY2Vzc29ycy4KKyAqLworI2RlZmluZSAgc3RfYXRpbWVuc2VjICBzdF9hdGltZV9uc2VjCisjZGVmaW5lICBzdF9tdGltZW5zZWMgIHN0X210aW1lX25zZWMKKyNkZWZpbmUgIHN0X2N0aW1lbnNlYyAgc3RfY3RpbWVfbnNlYworCitleHRlcm4gaW50ICAgIGNobW9kKGNvbnN0IGNoYXIgKiwgbW9kZV90KTsKK2V4dGVybiBpbnQgICAgZmNobW9kKGludCwgbW9kZV90KTsKK2V4dGVybiBpbnQgICAgbWtkaXIoY29uc3QgY2hhciAqLCBtb2RlX3QpOworCitleHRlcm4gaW50ICAgIHN0YXQoY29uc3QgY2hhciAqLCBzdHJ1Y3Qgc3RhdCAqKTsKK2V4dGVybiBpbnQgICAgZnN0YXQoaW50LCBzdHJ1Y3Qgc3RhdCAqKTsKK2V4dGVybiBpbnQgICAgbHN0YXQoY29uc3QgY2hhciAqLCBzdHJ1Y3Qgc3RhdCAqKTsKK2V4dGVybiBpbnQgICAgbWtub2QoY29uc3QgY2hhciAqLCBtb2RlX3QsIGRldl90KTsKK2V4dGVybiBtb2RlX3QgdW1hc2sobW9kZV90KTsKKworI2RlZmluZSAgc3RhdDY0ICAgIHN0YXQKKyNkZWZpbmUgIGZzdGF0NjQgICBmc3RhdAorI2RlZmluZSAgbHN0YXQ2NCAgIGxzdGF0CisKK3N0YXRpYyBfX2lubGluZV9fIGludCBta2ZpZm8oY29uc3QgY2hhciAqX19wLCBtb2RlX3QgX19tKQoreworICByZXR1cm4gbWtub2QoX19wLCAoX19tICYgflNfSUZNVCkgfCBTX0lGSUZPLCAoZGV2X3QpMCk7Cit9CisKK2V4dGVybiBpbnQgIGZzdGF0YXQoaW50IGRpcmZkLCBjb25zdCBjaGFyICpwYXRoLCBzdHJ1Y3Qgc3RhdCAqYnVmLCBpbnQgZmxhZ3MpOworZXh0ZXJuIGludCAgbWtkaXJhdChpbnQgZGlyZmQsIGNvbnN0IGNoYXIgKnBhdGhuYW1lLCBtb2RlX3QgbW9kZSk7CitleHRlcm4gaW50IGZjaG93bmF0KGludCBkaXJmZCwgY29uc3QgY2hhciAqcGF0aCwgdWlkX3Qgb3duZXIsIGdpZF90IGdyb3VwLCBpbnQgZmxhZ3MpOworZXh0ZXJuIGludCBmY2htb2RhdChpbnQgZGlyZmQsIGNvbnN0IGNoYXIgKnBhdGgsIG1vZGVfdCBtb2RlLCBpbnQgZmxhZ3MpOworZXh0ZXJuIGludCByZW5hbWVhdChpbnQgb2xkZGlyZmQsIGNvbnN0IGNoYXIgKm9sZHBhdGgsIGludCBuZXdkaXJmZCwgY29uc3QgY2hhciAqbmV3cGF0aCk7CisKK19fRU5EX0RFQ0xTCisKKyNlbmRpZiAvKiBfU1lTX1NUQVRfSF8gKi8KZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2luY2x1ZGUvaW50dHlwZXMuaCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2luY2x1ZGUvaW50dHlwZXMuaAppbmRleCA3M2IyMmRiLi42MmUxMmM2IDEwMDY0NAotLS0gYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9pbmNsdWRlL2ludHR5cGVzLmgKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaW5jbHVkZS9pbnR0eXBlcy5oCkBAIC0yNDksOCArMjQ5LDYgQEAKIH0gaW1heGRpdl90OwogCiBfX0JFR0lOX0RFQ0xTCi1pbnRtYXhfdAlpbWF4YWJzKGludG1heF90KTsKLWltYXhkaXZfdAlpbWF4ZGl2KGludG1heF90LCBpbnRtYXhfdCk7CiBpbnRtYXhfdAlzdHJ0b2ltYXgoY29uc3QgY2hhciAqLCBjaGFyICoqLCBpbnQpOwogdWludG1heF90CXN0cnRvdW1heChjb25zdCBjaGFyICosIGNoYXIgKiosIGludCk7CiAKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2luY2x1ZGUvam5pLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9pbmNsdWRlL2puaS5oCmluZGV4IDQ5NTkwMmMuLmYzNjM5OGYgMTAwNjQ0Ci0tLSBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2luY2x1ZGUvam5pLmgKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaW5jbHVkZS9qbmkuaApAQCAtMjQsNiArMjQsNyBAQAogI2lmbmRlZiBKTklfSF8KICNkZWZpbmUgSk5JX0hfCiAKKyNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KICNpbmNsdWRlIDxzdGRhcmcuaD4KIAogLyoKQEAgLTIzMSwxMiArMjMyLDEyIEBACiAgICAgamxvbmcgICAgICAgKCpDYWxsTG9uZ01ldGhvZCkoSk5JRW52Kiwgam9iamVjdCwgam1ldGhvZElELCAuLi4pOwogICAgIGpsb25nICAgICAgICgqQ2FsbExvbmdNZXRob2RWKShKTklFbnYqLCBqb2JqZWN0LCBqbWV0aG9kSUQsIHZhX2xpc3QpOwogICAgIGpsb25nICAgICAgICgqQ2FsbExvbmdNZXRob2RBKShKTklFbnYqLCBqb2JqZWN0LCBqbWV0aG9kSUQsIGp2YWx1ZSopOwotICAgIGpmbG9hdCAgICAgICgqQ2FsbEZsb2F0TWV0aG9kKShKTklFbnYqLCBqb2JqZWN0LCBqbWV0aG9kSUQsIC4uLik7Ci0gICAgamZsb2F0ICAgICAgKCpDYWxsRmxvYXRNZXRob2RWKShKTklFbnYqLCBqb2JqZWN0LCBqbWV0aG9kSUQsIHZhX2xpc3QpOwotICAgIGpmbG9hdCAgICAgICgqQ2FsbEZsb2F0TWV0aG9kQSkoSk5JRW52Kiwgam9iamVjdCwgam1ldGhvZElELCBqdmFsdWUqKTsKLSAgICBqZG91YmxlICAgICAoKkNhbGxEb3VibGVNZXRob2QpKEpOSUVudiosIGpvYmplY3QsIGptZXRob2RJRCwgLi4uKTsKLSAgICBqZG91YmxlICAgICAoKkNhbGxEb3VibGVNZXRob2RWKShKTklFbnYqLCBqb2JqZWN0LCBqbWV0aG9kSUQsIHZhX2xpc3QpOwotICAgIGpkb3VibGUgICAgICgqQ2FsbERvdWJsZU1ldGhvZEEpKEpOSUVudiosIGpvYmplY3QsIGptZXRob2RJRCwganZhbHVlKik7CisgICAgamZsb2F0ICAgICAgKCpDYWxsRmxvYXRNZXRob2QpKEpOSUVudiosIGpvYmplY3QsIGptZXRob2RJRCwgLi4uKSBfX05ES19GUEFCSV9fOworICAgIGpmbG9hdCAgICAgICgqQ2FsbEZsb2F0TWV0aG9kVikoSk5JRW52Kiwgam9iamVjdCwgam1ldGhvZElELCB2YV9saXN0KSBfX05ES19GUEFCSV9fOworICAgIGpmbG9hdCAgICAgICgqQ2FsbEZsb2F0TWV0aG9kQSkoSk5JRW52Kiwgam9iamVjdCwgam1ldGhvZElELCBqdmFsdWUqKSBfX05ES19GUEFCSV9fOworICAgIGpkb3VibGUgICAgICgqQ2FsbERvdWJsZU1ldGhvZCkoSk5JRW52Kiwgam9iamVjdCwgam1ldGhvZElELCAuLi4pIF9fTkRLX0ZQQUJJX187CisgICAgamRvdWJsZSAgICAgKCpDYWxsRG91YmxlTWV0aG9kVikoSk5JRW52Kiwgam9iamVjdCwgam1ldGhvZElELCB2YV9saXN0KSBfX05ES19GUEFCSV9fOworICAgIGpkb3VibGUgICAgICgqQ2FsbERvdWJsZU1ldGhvZEEpKEpOSUVudiosIGpvYmplY3QsIGptZXRob2RJRCwganZhbHVlKikgX19OREtfRlBBQklfXzsKICAgICB2b2lkICAgICAgICAoKkNhbGxWb2lkTWV0aG9kKShKTklFbnYqLCBqb2JqZWN0LCBqbWV0aG9kSUQsIC4uLik7CiAgICAgdm9pZCAgICAgICAgKCpDYWxsVm9pZE1ldGhvZFYpKEpOSUVudiosIGpvYmplY3QsIGptZXRob2RJRCwgdmFfbGlzdCk7CiAgICAgdm9pZCAgICAgICAgKCpDYWxsVm9pZE1ldGhvZEEpKEpOSUVudiosIGpvYmplY3QsIGptZXRob2RJRCwganZhbHVlKik7CkBAIC0yODQsMTcgKzI4NSwxNyBAQAogICAgIGpsb25nICAgICAgICgqQ2FsbE5vbnZpcnR1YWxMb25nTWV0aG9kQSkoSk5JRW52Kiwgam9iamVjdCwgamNsYXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgam1ldGhvZElELCBqdmFsdWUqKTsKICAgICBqZmxvYXQgICAgICAoKkNhbGxOb252aXJ0dWFsRmxvYXRNZXRob2QpKEpOSUVudiosIGpvYmplY3QsIGpjbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgIGptZXRob2RJRCwgLi4uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGptZXRob2RJRCwgLi4uKSBfX05ES19GUEFCSV9fOwogICAgIGpmbG9hdCAgICAgICgqQ2FsbE5vbnZpcnR1YWxGbG9hdE1ldGhvZFYpKEpOSUVudiosIGpvYmplY3QsIGpjbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgIGptZXRob2RJRCwgdmFfbGlzdCk7CisgICAgICAgICAgICAgICAgICAgICAgICBqbWV0aG9kSUQsIHZhX2xpc3QpIF9fTkRLX0ZQQUJJX187CiAgICAgamZsb2F0ICAgICAgKCpDYWxsTm9udmlydHVhbEZsb2F0TWV0aG9kQSkoSk5JRW52Kiwgam9iamVjdCwgamNsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgam1ldGhvZElELCBqdmFsdWUqKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGptZXRob2RJRCwganZhbHVlKikgX19OREtfRlBBQklfXzsKICAgICBqZG91YmxlICAgICAoKkNhbGxOb252aXJ0dWFsRG91YmxlTWV0aG9kKShKTklFbnYqLCBqb2JqZWN0LCBqY2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICBqbWV0aG9kSUQsIC4uLik7CisgICAgICAgICAgICAgICAgICAgICAgICBqbWV0aG9kSUQsIC4uLikgX19OREtfRlBBQklfXzsKICAgICBqZG91YmxlICAgICAoKkNhbGxOb252aXJ0dWFsRG91YmxlTWV0aG9kVikoSk5JRW52Kiwgam9iamVjdCwgamNsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgam1ldGhvZElELCB2YV9saXN0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGptZXRob2RJRCwgdmFfbGlzdCkgX19OREtfRlBBQklfXzsKICAgICBqZG91YmxlICAgICAoKkNhbGxOb252aXJ0dWFsRG91YmxlTWV0aG9kQSkoSk5JRW52Kiwgam9iamVjdCwgamNsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgam1ldGhvZElELCBqdmFsdWUqKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGptZXRob2RJRCwganZhbHVlKikgX19OREtfRlBBQklfXzsKICAgICB2b2lkICAgICAgICAoKkNhbGxOb252aXJ0dWFsVm9pZE1ldGhvZCkoSk5JRW52Kiwgam9iamVjdCwgamNsYXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgam1ldGhvZElELCAuLi4pOwogICAgIHZvaWQgICAgICAgICgqQ2FsbE5vbnZpcnR1YWxWb2lkTWV0aG9kVikoSk5JRW52Kiwgam9iamVjdCwgamNsYXNzLApAQCAtMzExLDggKzMxMiw4IEBACiAgICAganNob3J0ICAgICAgKCpHZXRTaG9ydEZpZWxkKShKTklFbnYqLCBqb2JqZWN0LCBqZmllbGRJRCk7CiAgICAgamludCAgICAgICAgKCpHZXRJbnRGaWVsZCkoSk5JRW52Kiwgam9iamVjdCwgamZpZWxkSUQpOwogICAgIGpsb25nICAgICAgICgqR2V0TG9uZ0ZpZWxkKShKTklFbnYqLCBqb2JqZWN0LCBqZmllbGRJRCk7Ci0gICAgamZsb2F0ICAgICAgKCpHZXRGbG9hdEZpZWxkKShKTklFbnYqLCBqb2JqZWN0LCBqZmllbGRJRCk7Ci0gICAgamRvdWJsZSAgICAgKCpHZXREb3VibGVGaWVsZCkoSk5JRW52Kiwgam9iamVjdCwgamZpZWxkSUQpOworICAgIGpmbG9hdCAgICAgICgqR2V0RmxvYXRGaWVsZCkoSk5JRW52Kiwgam9iamVjdCwgamZpZWxkSUQpIF9fTkRLX0ZQQUJJX187CisgICAgamRvdWJsZSAgICAgKCpHZXREb3VibGVGaWVsZCkoSk5JRW52Kiwgam9iamVjdCwgamZpZWxkSUQpIF9fTkRLX0ZQQUJJX187CiAKICAgICB2b2lkICAgICAgICAoKlNldE9iamVjdEZpZWxkKShKTklFbnYqLCBqb2JqZWN0LCBqZmllbGRJRCwgam9iamVjdCk7CiAgICAgdm9pZCAgICAgICAgKCpTZXRCb29sZWFuRmllbGQpKEpOSUVudiosIGpvYmplY3QsIGpmaWVsZElELCBqYm9vbGVhbik7CkBAIC0zMjEsOCArMzIyLDggQEAKICAgICB2b2lkICAgICAgICAoKlNldFNob3J0RmllbGQpKEpOSUVudiosIGpvYmplY3QsIGpmaWVsZElELCBqc2hvcnQpOwogICAgIHZvaWQgICAgICAgICgqU2V0SW50RmllbGQpKEpOSUVudiosIGpvYmplY3QsIGpmaWVsZElELCBqaW50KTsKICAgICB2b2lkICAgICAgICAoKlNldExvbmdGaWVsZCkoSk5JRW52Kiwgam9iamVjdCwgamZpZWxkSUQsIGpsb25nKTsKLSAgICB2b2lkICAgICAgICAoKlNldEZsb2F0RmllbGQpKEpOSUVudiosIGpvYmplY3QsIGpmaWVsZElELCBqZmxvYXQpOwotICAgIHZvaWQgICAgICAgICgqU2V0RG91YmxlRmllbGQpKEpOSUVudiosIGpvYmplY3QsIGpmaWVsZElELCBqZG91YmxlKTsKKyAgICB2b2lkICAgICAgICAoKlNldEZsb2F0RmllbGQpKEpOSUVudiosIGpvYmplY3QsIGpmaWVsZElELCBqZmxvYXQpIF9fTkRLX0ZQQUJJX187CisgICAgdm9pZCAgICAgICAgKCpTZXREb3VibGVGaWVsZCkoSk5JRW52Kiwgam9iamVjdCwgamZpZWxkSUQsIGpkb3VibGUpIF9fTkRLX0ZQQUJJX187CiAKICAgICBqbWV0aG9kSUQgICAoKkdldFN0YXRpY01ldGhvZElEKShKTklFbnYqLCBqY2xhc3MsIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKik7CiAKQEAgLTM0OSwxMiArMzUwLDEyIEBACiAgICAgamxvbmcgICAgICAgKCpDYWxsU3RhdGljTG9uZ01ldGhvZCkoSk5JRW52KiwgamNsYXNzLCBqbWV0aG9kSUQsIC4uLik7CiAgICAgamxvbmcgICAgICAgKCpDYWxsU3RhdGljTG9uZ01ldGhvZFYpKEpOSUVudiosIGpjbGFzcywgam1ldGhvZElELCB2YV9saXN0KTsKICAgICBqbG9uZyAgICAgICAoKkNhbGxTdGF0aWNMb25nTWV0aG9kQSkoSk5JRW52KiwgamNsYXNzLCBqbWV0aG9kSUQsIGp2YWx1ZSopOwotICAgIGpmbG9hdCAgICAgICgqQ2FsbFN0YXRpY0Zsb2F0TWV0aG9kKShKTklFbnYqLCBqY2xhc3MsIGptZXRob2RJRCwgLi4uKTsKLSAgICBqZmxvYXQgICAgICAoKkNhbGxTdGF0aWNGbG9hdE1ldGhvZFYpKEpOSUVudiosIGpjbGFzcywgam1ldGhvZElELCB2YV9saXN0KTsKLSAgICBqZmxvYXQgICAgICAoKkNhbGxTdGF0aWNGbG9hdE1ldGhvZEEpKEpOSUVudiosIGpjbGFzcywgam1ldGhvZElELCBqdmFsdWUqKTsKLSAgICBqZG91YmxlICAgICAoKkNhbGxTdGF0aWNEb3VibGVNZXRob2QpKEpOSUVudiosIGpjbGFzcywgam1ldGhvZElELCAuLi4pOwotICAgIGpkb3VibGUgICAgICgqQ2FsbFN0YXRpY0RvdWJsZU1ldGhvZFYpKEpOSUVudiosIGpjbGFzcywgam1ldGhvZElELCB2YV9saXN0KTsKLSAgICBqZG91YmxlICAgICAoKkNhbGxTdGF0aWNEb3VibGVNZXRob2RBKShKTklFbnYqLCBqY2xhc3MsIGptZXRob2RJRCwganZhbHVlKik7CisgICAgamZsb2F0ICAgICAgKCpDYWxsU3RhdGljRmxvYXRNZXRob2QpKEpOSUVudiosIGpjbGFzcywgam1ldGhvZElELCAuLi4pIF9fTkRLX0ZQQUJJX187CisgICAgamZsb2F0ICAgICAgKCpDYWxsU3RhdGljRmxvYXRNZXRob2RWKShKTklFbnYqLCBqY2xhc3MsIGptZXRob2RJRCwgdmFfbGlzdCkgX19OREtfRlBBQklfXzsKKyAgICBqZmxvYXQgICAgICAoKkNhbGxTdGF0aWNGbG9hdE1ldGhvZEEpKEpOSUVudiosIGpjbGFzcywgam1ldGhvZElELCBqdmFsdWUqKSBfX05ES19GUEFCSV9fOworICAgIGpkb3VibGUgICAgICgqQ2FsbFN0YXRpY0RvdWJsZU1ldGhvZCkoSk5JRW52KiwgamNsYXNzLCBqbWV0aG9kSUQsIC4uLikgX19OREtfRlBBQklfXzsKKyAgICBqZG91YmxlICAgICAoKkNhbGxTdGF0aWNEb3VibGVNZXRob2RWKShKTklFbnYqLCBqY2xhc3MsIGptZXRob2RJRCwgdmFfbGlzdCkgX19OREtfRlBBQklfXzsKKyAgICBqZG91YmxlICAgICAoKkNhbGxTdGF0aWNEb3VibGVNZXRob2RBKShKTklFbnYqLCBqY2xhc3MsIGptZXRob2RJRCwganZhbHVlKikgX19OREtfRlBBQklfXzsKICAgICB2b2lkICAgICAgICAoKkNhbGxTdGF0aWNWb2lkTWV0aG9kKShKTklFbnYqLCBqY2xhc3MsIGptZXRob2RJRCwgLi4uKTsKICAgICB2b2lkICAgICAgICAoKkNhbGxTdGF0aWNWb2lkTWV0aG9kVikoSk5JRW52KiwgamNsYXNzLCBqbWV0aG9kSUQsIHZhX2xpc3QpOwogICAgIHZvaWQgICAgICAgICgqQ2FsbFN0YXRpY1ZvaWRNZXRob2RBKShKTklFbnYqLCBqY2xhc3MsIGptZXRob2RJRCwganZhbHVlKik7CkBAIC0zNjksOCArMzcwLDggQEAKICAgICBqc2hvcnQgICAgICAoKkdldFN0YXRpY1Nob3J0RmllbGQpKEpOSUVudiosIGpjbGFzcywgamZpZWxkSUQpOwogICAgIGppbnQgICAgICAgICgqR2V0U3RhdGljSW50RmllbGQpKEpOSUVudiosIGpjbGFzcywgamZpZWxkSUQpOwogICAgIGpsb25nICAgICAgICgqR2V0U3RhdGljTG9uZ0ZpZWxkKShKTklFbnYqLCBqY2xhc3MsIGpmaWVsZElEKTsKLSAgICBqZmxvYXQgICAgICAoKkdldFN0YXRpY0Zsb2F0RmllbGQpKEpOSUVudiosIGpjbGFzcywgamZpZWxkSUQpOwotICAgIGpkb3VibGUgICAgICgqR2V0U3RhdGljRG91YmxlRmllbGQpKEpOSUVudiosIGpjbGFzcywgamZpZWxkSUQpOworICAgIGpmbG9hdCAgICAgICgqR2V0U3RhdGljRmxvYXRGaWVsZCkoSk5JRW52KiwgamNsYXNzLCBqZmllbGRJRCkgX19OREtfRlBBQklfXzsKKyAgICBqZG91YmxlICAgICAoKkdldFN0YXRpY0RvdWJsZUZpZWxkKShKTklFbnYqLCBqY2xhc3MsIGpmaWVsZElEKSBfX05ES19GUEFCSV9fOwogCiAgICAgdm9pZCAgICAgICAgKCpTZXRTdGF0aWNPYmplY3RGaWVsZCkoSk5JRW52KiwgamNsYXNzLCBqZmllbGRJRCwgam9iamVjdCk7CiAgICAgdm9pZCAgICAgICAgKCpTZXRTdGF0aWNCb29sZWFuRmllbGQpKEpOSUVudiosIGpjbGFzcywgamZpZWxkSUQsIGpib29sZWFuKTsKQEAgLTM3OSw4ICszODAsOCBAQAogICAgIHZvaWQgICAgICAgICgqU2V0U3RhdGljU2hvcnRGaWVsZCkoSk5JRW52KiwgamNsYXNzLCBqZmllbGRJRCwganNob3J0KTsKICAgICB2b2lkICAgICAgICAoKlNldFN0YXRpY0ludEZpZWxkKShKTklFbnYqLCBqY2xhc3MsIGpmaWVsZElELCBqaW50KTsKICAgICB2b2lkICAgICAgICAoKlNldFN0YXRpY0xvbmdGaWVsZCkoSk5JRW52KiwgamNsYXNzLCBqZmllbGRJRCwgamxvbmcpOwotICAgIHZvaWQgICAgICAgICgqU2V0U3RhdGljRmxvYXRGaWVsZCkoSk5JRW52KiwgamNsYXNzLCBqZmllbGRJRCwgamZsb2F0KTsKLSAgICB2b2lkICAgICAgICAoKlNldFN0YXRpY0RvdWJsZUZpZWxkKShKTklFbnYqLCBqY2xhc3MsIGpmaWVsZElELCBqZG91YmxlKTsKKyAgICB2b2lkICAgICAgICAoKlNldFN0YXRpY0Zsb2F0RmllbGQpKEpOSUVudiosIGpjbGFzcywgamZpZWxkSUQsIGpmbG9hdCkgX19OREtfRlBBQklfXzsKKyAgICB2b2lkICAgICAgICAoKlNldFN0YXRpY0RvdWJsZUZpZWxkKShKTklFbnYqLCBqY2xhc3MsIGpmaWVsZElELCBqZG91YmxlKSBfX05ES19GUEFCSV9fOwogCiAgICAganN0cmluZyAgICAgKCpOZXdTdHJpbmcpKEpOSUVudiosIGNvbnN0IGpjaGFyKiwganNpemUpOwogICAgIGpzaXplICAgICAgICgqR2V0U3RyaW5nTGVuZ3RoKShKTklFbnYqLCBqc3RyaW5nKTsKQEAgLTYwNSw2ICs2MDYsNyBAQAogICAgIHsgcmV0dXJuIGZ1bmN0aW9ucy0+R2V0TWV0aG9kSUQodGhpcywgY2xhenosIG5hbWUsIHNpZyk7IH0KIAogI2RlZmluZSBDQUxMX1RZUEVfTUVUSE9EKF9qdHlwZSwgX2puYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBfX05ES19GUEFCSV9fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgX2p0eXBlIENhbGwjI19qbmFtZSMjTWV0aG9kKGpvYmplY3Qgb2JqLCBqbWV0aG9kSUQgbWV0aG9kSUQsIC4uLikgICAgICAgXAogICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgX2p0eXBlIHJlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC02MTYsMTAgKzYxOCwxMiBAQAogICAgICAgICByZXR1cm4gcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICB9CiAjZGVmaW5lIENBTExfVFlQRV9NRVRIT0RWKF9qdHlwZSwgX2puYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIF9fTkRLX0ZQQUJJX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBfanR5cGUgQ2FsbCMjX2puYW1lIyNNZXRob2RWKGpvYmplY3Qgb2JqLCBqbWV0aG9kSUQgbWV0aG9kSUQsICAgICAgICAgICBcCiAgICAgICAgIHZhX2xpc3QgYXJncykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIHsgcmV0dXJuIGZ1bmN0aW9ucy0+Q2FsbCMjX2puYW1lIyNNZXRob2RWKHRoaXMsIG9iaiwgbWV0aG9kSUQsIGFyZ3MpOyB9CiAjZGVmaW5lIENBTExfVFlQRV9NRVRIT0RBKF9qdHlwZSwgX2puYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIF9fTkRLX0ZQQUJJX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBfanR5cGUgQ2FsbCMjX2puYW1lIyNNZXRob2RBKGpvYmplY3Qgb2JqLCBqbWV0aG9kSUQgbWV0aG9kSUQsICAgICAgICAgICBcCiAgICAgICAgIGp2YWx1ZSogYXJncykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIHsgcmV0dXJuIGZ1bmN0aW9ucy0+Q2FsbCMjX2puYW1lIyNNZXRob2RBKHRoaXMsIG9iaiwgbWV0aG9kSUQsIGFyZ3MpOyB9CkBAIC02NTIsNiArNjU2LDcgQEAKICAgICB7IGZ1bmN0aW9ucy0+Q2FsbFZvaWRNZXRob2RBKHRoaXMsIG9iaiwgbWV0aG9kSUQsIGFyZ3MpOyB9CiAKICNkZWZpbmUgQ0FMTF9OT05WSVJUX1RZUEVfTUVUSE9EKF9qdHlwZSwgX2puYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgX19OREtfRlBBQklfXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIF9qdHlwZSBDYWxsTm9udmlydHVhbCMjX2puYW1lIyNNZXRob2Qoam9iamVjdCBvYmosIGpjbGFzcyBjbGF6eiwgICAgICAgIFwKICAgICAgICAgam1ldGhvZElEIG1ldGhvZElELCAuLi4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtNjY0LDExICs2NjksMTMgQEAKICAgICAgICAgcmV0dXJuIHJlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgfQogI2RlZmluZSBDQUxMX05PTlZJUlRfVFlQRV9NRVRIT0RWKF9qdHlwZSwgX2puYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBfX05ES19GUEFCSV9fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgX2p0eXBlIENhbGxOb252aXJ0dWFsIyNfam5hbWUjI01ldGhvZFYoam9iamVjdCBvYmosIGpjbGFzcyBjbGF6eiwgICAgICAgXAogICAgICAgICBqbWV0aG9kSUQgbWV0aG9kSUQsIHZhX2xpc3QgYXJncykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICB7IHJldHVybiBmdW5jdGlvbnMtPkNhbGxOb252aXJ0dWFsIyNfam5hbWUjI01ldGhvZFYodGhpcywgb2JqLCBjbGF6eiwgICBcCiAgICAgICAgIG1ldGhvZElELCBhcmdzKTsgfQogI2RlZmluZSBDQUxMX05PTlZJUlRfVFlQRV9NRVRIT0RBKF9qdHlwZSwgX2puYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBfX05ES19GUEFCSV9fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgX2p0eXBlIENhbGxOb252aXJ0dWFsIyNfam5hbWUjI01ldGhvZEEoam9iamVjdCBvYmosIGpjbGFzcyBjbGF6eiwgICAgICAgXAogICAgICAgICBqbWV0aG9kSUQgbWV0aG9kSUQsIGp2YWx1ZSogYXJncykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICB7IHJldHVybiBmdW5jdGlvbnMtPkNhbGxOb252aXJ0dWFsIyNfam5hbWUjI01ldGhvZEEodGhpcywgb2JqLCBjbGF6eiwgICBcCkBAIC03MjEsOCArNzI4LDEwIEBACiAgICAgeyByZXR1cm4gZnVuY3Rpb25zLT5HZXRJbnRGaWVsZCh0aGlzLCBvYmosIGZpZWxkSUQpOyB9CiAgICAgamxvbmcgR2V0TG9uZ0ZpZWxkKGpvYmplY3Qgb2JqLCBqZmllbGRJRCBmaWVsZElEKQogICAgIHsgcmV0dXJuIGZ1bmN0aW9ucy0+R2V0TG9uZ0ZpZWxkKHRoaXMsIG9iaiwgZmllbGRJRCk7IH0KKyAgICBfX05ES19GUEFCSV9fCiAgICAgamZsb2F0IEdldEZsb2F0RmllbGQoam9iamVjdCBvYmosIGpmaWVsZElEIGZpZWxkSUQpCiAgICAgeyByZXR1cm4gZnVuY3Rpb25zLT5HZXRGbG9hdEZpZWxkKHRoaXMsIG9iaiwgZmllbGRJRCk7IH0KKyAgICBfX05ES19GUEFCSV9fCiAgICAgamRvdWJsZSBHZXREb3VibGVGaWVsZChqb2JqZWN0IG9iaiwgamZpZWxkSUQgZmllbGRJRCkKICAgICB7IHJldHVybiBmdW5jdGlvbnMtPkdldERvdWJsZUZpZWxkKHRoaXMsIG9iaiwgZmllbGRJRCk7IH0KIApAQCAtNzQwLDggKzc0OSwxMCBAQAogICAgIHsgZnVuY3Rpb25zLT5TZXRJbnRGaWVsZCh0aGlzLCBvYmosIGZpZWxkSUQsIHZhbHVlKTsgfQogICAgIHZvaWQgU2V0TG9uZ0ZpZWxkKGpvYmplY3Qgb2JqLCBqZmllbGRJRCBmaWVsZElELCBqbG9uZyB2YWx1ZSkKICAgICB7IGZ1bmN0aW9ucy0+U2V0TG9uZ0ZpZWxkKHRoaXMsIG9iaiwgZmllbGRJRCwgdmFsdWUpOyB9CisgICAgX19OREtfRlBBQklfXwogICAgIHZvaWQgU2V0RmxvYXRGaWVsZChqb2JqZWN0IG9iaiwgamZpZWxkSUQgZmllbGRJRCwgamZsb2F0IHZhbHVlKQogICAgIHsgZnVuY3Rpb25zLT5TZXRGbG9hdEZpZWxkKHRoaXMsIG9iaiwgZmllbGRJRCwgdmFsdWUpOyB9CisgICAgX19OREtfRlBBQklfXwogICAgIHZvaWQgU2V0RG91YmxlRmllbGQoam9iamVjdCBvYmosIGpmaWVsZElEIGZpZWxkSUQsIGpkb3VibGUgdmFsdWUpCiAgICAgeyBmdW5jdGlvbnMtPlNldERvdWJsZUZpZWxkKHRoaXMsIG9iaiwgZmllbGRJRCwgdmFsdWUpOyB9CiAKQEAgLTc0OSw2ICs3NjAsNyBAQAogICAgIHsgcmV0dXJuIGZ1bmN0aW9ucy0+R2V0U3RhdGljTWV0aG9kSUQodGhpcywgY2xhenosIG5hbWUsIHNpZyk7IH0KIAogI2RlZmluZSBDQUxMX1NUQVRJQ19UWVBFX01FVEhPRChfanR5cGUsIF9qbmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBfX05ES19GUEFCSV9fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgX2p0eXBlIENhbGxTdGF0aWMjI19qbmFtZSMjTWV0aG9kKGpjbGFzcyBjbGF6eiwgam1ldGhvZElEIG1ldGhvZElELCAgICAgXAogICAgICAgICAuLi4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC03NjEsMTEgKzc3MywxMyBAQAogICAgICAgICByZXR1cm4gcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICB9CiAjZGVmaW5lIENBTExfU1RBVElDX1RZUEVfTUVUSE9EVihfanR5cGUsIF9qbmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIF9fTkRLX0ZQQUJJX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBfanR5cGUgQ2FsbFN0YXRpYyMjX2puYW1lIyNNZXRob2RWKGpjbGFzcyBjbGF6eiwgam1ldGhvZElEIG1ldGhvZElELCAgICBcCiAgICAgICAgIHZhX2xpc3QgYXJncykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIHsgcmV0dXJuIGZ1bmN0aW9ucy0+Q2FsbFN0YXRpYyMjX2puYW1lIyNNZXRob2RWKHRoaXMsIGNsYXp6LCBtZXRob2RJRCwgIFwKICAgICAgICAgYXJncyk7IH0KICNkZWZpbmUgQ0FMTF9TVEFUSUNfVFlQRV9NRVRIT0RBKF9qdHlwZSwgX2puYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgX19OREtfRlBBQklfXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIF9qdHlwZSBDYWxsU3RhdGljIyNfam5hbWUjI01ldGhvZEEoamNsYXNzIGNsYXp6LCBqbWV0aG9kSUQgbWV0aG9kSUQsICAgIFwKICAgICAgICAganZhbHVlKiBhcmdzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgeyByZXR1cm4gZnVuY3Rpb25zLT5DYWxsU3RhdGljIyNfam5hbWUjI01ldGhvZEEodGhpcywgY2xhenosIG1ldGhvZElELCAgXApAQCAtODE1LDggKzgyOSwxMCBAQAogICAgIHsgcmV0dXJuIGZ1bmN0aW9ucy0+R2V0U3RhdGljSW50RmllbGQodGhpcywgY2xhenosIGZpZWxkSUQpOyB9CiAgICAgamxvbmcgR2V0U3RhdGljTG9uZ0ZpZWxkKGpjbGFzcyBjbGF6eiwgamZpZWxkSUQgZmllbGRJRCkKICAgICB7IHJldHVybiBmdW5jdGlvbnMtPkdldFN0YXRpY0xvbmdGaWVsZCh0aGlzLCBjbGF6eiwgZmllbGRJRCk7IH0KKyAgICBfX05ES19GUEFCSV9fCiAgICAgamZsb2F0IEdldFN0YXRpY0Zsb2F0RmllbGQoamNsYXNzIGNsYXp6LCBqZmllbGRJRCBmaWVsZElEKQogICAgIHsgcmV0dXJuIGZ1bmN0aW9ucy0+R2V0U3RhdGljRmxvYXRGaWVsZCh0aGlzLCBjbGF6eiwgZmllbGRJRCk7IH0KKyAgICBfX05ES19GUEFCSV9fCiAgICAgamRvdWJsZSBHZXRTdGF0aWNEb3VibGVGaWVsZChqY2xhc3MgY2xhenosIGpmaWVsZElEIGZpZWxkSUQpCiAgICAgeyByZXR1cm4gZnVuY3Rpb25zLT5HZXRTdGF0aWNEb3VibGVGaWVsZCh0aGlzLCBjbGF6eiwgZmllbGRJRCk7IH0KIApAQCAtODM0LDggKzg1MCwxMCBAQAogICAgIHsgZnVuY3Rpb25zLT5TZXRTdGF0aWNJbnRGaWVsZCh0aGlzLCBjbGF6eiwgZmllbGRJRCwgdmFsdWUpOyB9CiAgICAgdm9pZCBTZXRTdGF0aWNMb25nRmllbGQoamNsYXNzIGNsYXp6LCBqZmllbGRJRCBmaWVsZElELCBqbG9uZyB2YWx1ZSkKICAgICB7IGZ1bmN0aW9ucy0+U2V0U3RhdGljTG9uZ0ZpZWxkKHRoaXMsIGNsYXp6LCBmaWVsZElELCB2YWx1ZSk7IH0KKyAgICBfX05ES19GUEFCSV9fCiAgICAgdm9pZCBTZXRTdGF0aWNGbG9hdEZpZWxkKGpjbGFzcyBjbGF6eiwgamZpZWxkSUQgZmllbGRJRCwgamZsb2F0IHZhbHVlKQogICAgIHsgZnVuY3Rpb25zLT5TZXRTdGF0aWNGbG9hdEZpZWxkKHRoaXMsIGNsYXp6LCBmaWVsZElELCB2YWx1ZSk7IH0KKyAgICBfX05ES19GUEFCSV9fCiAgICAgdm9pZCBTZXRTdGF0aWNEb3VibGVGaWVsZChqY2xhc3MgY2xhenosIGpmaWVsZElEIGZpZWxkSUQsIGpkb3VibGUgdmFsdWUpCiAgICAgeyBmdW5jdGlvbnMtPlNldFN0YXRpY0RvdWJsZUZpZWxkKHRoaXMsIGNsYXp6LCBmaWVsZElELCB2YWx1ZSk7IH0KIApAQCAtMTEyMCwxNCArMTEzOCwxNCBAQAogCiAjZGVmaW5lIEpOSUlNUE9SVAogI2RlZmluZSBKTklFWFBPUlQgIF9fYXR0cmlidXRlX18gKCh2aXNpYmlsaXR5ICgiZGVmYXVsdCIpKSkKLSNkZWZpbmUgSk5JQ0FMTAorI2RlZmluZSBKTklDQUxMIF9fTkRLX0ZQQUJJX18KIAogLyoKICAqIFByb3RvdHlwZXMgZm9yIGZ1bmN0aW9ucyBleHBvcnRlZCBieSBsb2FkYWJsZSBzaGFyZWQgbGlicy4gIFRoZXNlIGFyZQogICogY2FsbGVkIGJ5IEpOSSwgbm90IHByb3ZpZGVkIGJ5IEpOSS4KICAqLwotSk5JRVhQT1JUIGppbnQgSk5JX09uTG9hZChKYXZhVk0qIHZtLCB2b2lkKiByZXNlcnZlZCk7Ci1KTklFWFBPUlQgdm9pZCBKTklfT25VbmxvYWQoSmF2YVZNKiB2bSwgdm9pZCogcmVzZXJ2ZWQpOworSk5JRVhQT1JUIGppbnQgSk5JQ0FMTCBKTklfT25Mb2FkKEphdmFWTSogdm0sIHZvaWQqIHJlc2VydmVkKTsKK0pOSUVYUE9SVCB2b2lkIEpOSUNBTEwgSk5JX09uVW5sb2FkKEphdmFWTSogdm0sIHZvaWQqIHJlc2VydmVkKTsKIAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9pbmNsdWRlL21hdGguaCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2luY2x1ZGUvbWF0aC5oCmluZGV4IGVmNmE5ZTYuLmI1NzIyOTggMTAwNjQ0Ci0tLSBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2luY2x1ZGUvbWF0aC5oCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2luY2x1ZGUvbWF0aC5oCkBAIC0xODMsMjE5ICsxODMsMjE5IEBACiAvKgogICogQU5TSS9QT1NJWAogICovCi1pbnQJX19mcGNsYXNzaWZ5ZChkb3VibGUpIF9fcHVyZTI7Ci1pbnQJX19mcGNsYXNzaWZ5ZihmbG9hdCkgX19wdXJlMjsKLWludAlfX2ZwY2xhc3NpZnlsKGxvbmcgZG91YmxlKSBfX3B1cmUyOwotaW50CV9faXNmaW5pdGVmKGZsb2F0KSBfX3B1cmUyOwotaW50CV9faXNmaW5pdGUoZG91YmxlKSBfX3B1cmUyOwotaW50CV9faXNmaW5pdGVsKGxvbmcgZG91YmxlKSBfX3B1cmUyOwotaW50CV9faXNpbmZmKGZsb2F0KSBfX3B1cmUyOwotaW50ICAgICBfX2lzaW5mKGRvdWJsZSkgX19wdXJlMjsKLWludAlfX2lzaW5mbChsb25nIGRvdWJsZSkgX19wdXJlMjsKLWludAlfX2lzbmFubChsb25nIGRvdWJsZSkgX19wdXJlMjsKLWludAlfX2lzbm9ybWFsZihmbG9hdCkgX19wdXJlMjsKLWludAlfX2lzbm9ybWFsKGRvdWJsZSkgX19wdXJlMjsKLWludAlfX2lzbm9ybWFsbChsb25nIGRvdWJsZSkgX19wdXJlMjsKLWludAlfX3NpZ25iaXQoZG91YmxlKSBfX3B1cmUyOwotaW50CV9fc2lnbmJpdGYoZmxvYXQpIF9fcHVyZTI7Ci1pbnQJX19zaWduYml0bChsb25nIGRvdWJsZSkgX19wdXJlMjsKK2ludAlfX2ZwY2xhc3NpZnlkKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitpbnQJX19mcGNsYXNzaWZ5ZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitpbnQJX19mcGNsYXNzaWZ5bChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitpbnQJX19pc2Zpbml0ZWYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworaW50CV9faXNmaW5pdGUoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2ludAlfX2lzZmluaXRlbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitpbnQJX19pc2luZmYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworaW50ICAgICBfX2lzaW5mKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitpbnQJX19pc2luZmwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworaW50CV9faXNuYW5sKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2ludAlfX2lzbm9ybWFsZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitpbnQJX19pc25vcm1hbChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworaW50CV9faXNub3JtYWxsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2ludAlfX3NpZ25iaXQoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2ludAlfX3NpZ25iaXRmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2ludAlfX3NpZ25iaXRsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKIAotZG91YmxlCWFjb3MoZG91YmxlKTsKLWRvdWJsZQlhc2luKGRvdWJsZSk7Ci1kb3VibGUJYXRhbihkb3VibGUpOwotZG91YmxlCWF0YW4yKGRvdWJsZSwgZG91YmxlKTsKLWRvdWJsZQljb3MoZG91YmxlKTsKLWRvdWJsZQlzaW4oZG91YmxlKTsKLWRvdWJsZQl0YW4oZG91YmxlKTsKK2RvdWJsZQlhY29zKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWFzaW4oZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJYXRhbihkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlhdGFuMihkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWNvcyhkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlzaW4oZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJdGFuKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOwogCi1kb3VibGUJY29zaChkb3VibGUpOwotZG91YmxlCXNpbmgoZG91YmxlKTsKLWRvdWJsZQl0YW5oKGRvdWJsZSk7Citkb3VibGUJY29zaChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlzaW5oKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCXRhbmgoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CiAKLWRvdWJsZQlleHAoZG91YmxlKTsKLWRvdWJsZQlmcmV4cChkb3VibGUsIGludCAqKTsJLyogZnVuZGFtZW50YWxseSAhX19wdXJlMiAqLwotZG91YmxlCWxkZXhwKGRvdWJsZSwgaW50KTsKLWRvdWJsZQlsb2coZG91YmxlKTsKLWRvdWJsZQlsb2cxMChkb3VibGUpOwotZG91YmxlCW1vZGYoZG91YmxlLCBkb3VibGUgKik7CS8qIGZ1bmRhbWVudGFsbHkgIV9fcHVyZTIgKi8KK2RvdWJsZQlleHAoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJZnJleHAoZG91YmxlLCBpbnQgKikgX19OREtfRlBBQklfTUFUSF9fOwkvKiBmdW5kYW1lbnRhbGx5ICFfX3B1cmUyICovCitkb3VibGUJbGRleHAoZG91YmxlLCBpbnQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlsb2coZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJbG9nMTAoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJbW9kZihkb3VibGUsIGRvdWJsZSAqKSBfX05ES19GUEFCSV9NQVRIX187CS8qIGZ1bmRhbWVudGFsbHkgIV9fcHVyZTIgKi8KIAotZG91YmxlCXBvdyhkb3VibGUsIGRvdWJsZSk7Ci1kb3VibGUJc3FydChkb3VibGUpOworZG91YmxlCXBvdyhkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCXNxcnQoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CiAKLWRvdWJsZQljZWlsKGRvdWJsZSk7Ci1kb3VibGUJZmFicyhkb3VibGUpIF9fcHVyZTI7Ci1kb3VibGUJZmxvb3IoZG91YmxlKTsKLWRvdWJsZQlmbW9kKGRvdWJsZSwgZG91YmxlKTsKK2RvdWJsZQljZWlsKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWZhYnMoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2RvdWJsZQlmbG9vcihkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlmbW9kKGRvdWJsZSwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CiAKIC8qCiAgKiBUaGVzZSBmdW5jdGlvbnMgYXJlIG5vdCBpbiBDOTAuCiAgKi8KIC8qICNpZiBfX0JTRF9WSVNJQkxFIHx8IF9fSVNPX0NfVklTSUJMRSA+PSAxOTk5IHx8IF9fWFNJX1ZJU0lCTEUgKi8KLWRvdWJsZQlhY29zaChkb3VibGUpOwotZG91YmxlCWFzaW5oKGRvdWJsZSk7Ci1kb3VibGUJYXRhbmgoZG91YmxlKTsKLWRvdWJsZQljYnJ0KGRvdWJsZSk7Ci1kb3VibGUJZXJmKGRvdWJsZSk7Ci1kb3VibGUJZXJmYyhkb3VibGUpOwotZG91YmxlCWV4cDIoZG91YmxlKTsKLWRvdWJsZQlleHBtMShkb3VibGUpOwotZG91YmxlCWZtYShkb3VibGUsIGRvdWJsZSwgZG91YmxlKTsKLWRvdWJsZQloeXBvdChkb3VibGUsIGRvdWJsZSk7Ci1pbnQJaWxvZ2IoZG91YmxlKSBfX3B1cmUyOwotLyogaW50CShpc2luZikoZG91YmxlKSBfX3B1cmUyOyAqLwotaW50CShpc25hbikoZG91YmxlKSBfX3B1cmUyOwotZG91YmxlCWxnYW1tYShkb3VibGUpOwotbG9uZyBsb25nIGxscmludChkb3VibGUpOwotbG9uZyBsb25nIGxscm91bmQoZG91YmxlKTsKLWRvdWJsZQlsb2cxcChkb3VibGUpOwotZG91YmxlCWxvZ2IoZG91YmxlKTsKLWxvbmcJbHJpbnQoZG91YmxlKTsKLWxvbmcJbHJvdW5kKGRvdWJsZSk7Ci1kb3VibGUJbmV4dGFmdGVyKGRvdWJsZSwgZG91YmxlKTsKLWRvdWJsZQlyZW1haW5kZXIoZG91YmxlLCBkb3VibGUpOwotZG91YmxlCXJlbXF1byhkb3VibGUsIGRvdWJsZSwgaW50ICopOwotZG91YmxlCXJpbnQoZG91YmxlKTsKK2RvdWJsZQlhY29zaChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlhc2luaChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlhdGFuaChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQljYnJ0KGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWVyZihkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQllcmZjKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWV4cDIoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJZXhwbTEoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJZm1hKGRvdWJsZSwgZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQloeXBvdChkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworaW50CWlsb2diKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CisvKiBpbnQJKGlzaW5mKShkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOyAqLworaW50CShpc25hbikoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2RvdWJsZQlsZ2FtbWEoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGxvbmcgbGxyaW50KGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBsb25nIGxscm91bmQoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJbG9nMXAoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJbG9nYihkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcJbHJpbnQoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nCWxyb3VuZChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQluZXh0YWZ0ZXIoZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlyZW1haW5kZXIoZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlyZW1xdW8oZG91YmxlLCBkb3VibGUsIGludCAqKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJcmludChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKIC8qICNlbmRpZiAqLyAvKiBfX0JTRF9WSVNJQkxFIHx8IF9fSVNPX0NfVklTSUJMRSA+PSAxOTk5IHx8IF9fWFNJX1ZJU0lCTEUgKi8KIAogLyogI2lmIF9fQlNEX1ZJU0lCTEUgfHwgX19YU0lfVklTSUJMRSAqLwotZG91YmxlCWowKGRvdWJsZSk7Ci1kb3VibGUJajEoZG91YmxlKTsKLWRvdWJsZQlqbihpbnQsIGRvdWJsZSk7Ci1kb3VibGUJc2NhbGIoZG91YmxlLCBkb3VibGUpOwotZG91YmxlCXkwKGRvdWJsZSk7Ci1kb3VibGUJeTEoZG91YmxlKTsKLWRvdWJsZQl5bihpbnQsIGRvdWJsZSk7Citkb3VibGUJajAoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJajEoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJam4oaW50LCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlzY2FsYihkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCXkwKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCXkxKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCXluKGludCwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CiAKIC8qICNpZiBfX1hTSV9WSVNJQkxFIDw9IDUwMCB8fCBfX0JTRF9WSVNJQkxFICovCi1kb3VibGUJZ2FtbWEoZG91YmxlKTsKK2RvdWJsZQlnYW1tYShkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKIC8qICNlbmRpZiAqLwogLyogI2VuZGlmICovIC8qIF9fQlNEX1ZJU0lCTEUgfHwgX19YU0lfVklTSUJMRSAqLwogCiAvKiAjaWYgX19CU0RfVklTSUJMRSB8fCBfX0lTT19DX1ZJU0lCTEUgPj0gMTk5OSAqLwotZG91YmxlCWNvcHlzaWduKGRvdWJsZSwgZG91YmxlKSBfX3B1cmUyOwotZG91YmxlCWZkaW0oZG91YmxlLCBkb3VibGUpOwotZG91YmxlCWZtYXgoZG91YmxlLCBkb3VibGUpIF9fcHVyZTI7Ci1kb3VibGUJZm1pbihkb3VibGUsIGRvdWJsZSkgX19wdXJlMjsKLWRvdWJsZQluZWFyYnlpbnQoZG91YmxlKTsKLWRvdWJsZQlyb3VuZChkb3VibGUpOwotZG91YmxlCXNjYWxibG4oZG91YmxlLCBsb25nKTsKLWRvdWJsZQlzY2FsYm4oZG91YmxlLCBpbnQpOwotZG91YmxlCXRnYW1tYShkb3VibGUpOwotZG91YmxlCXRydW5jKGRvdWJsZSk7Citkb3VibGUJY29weXNpZ24oZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworZG91YmxlCWZkaW0oZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlmbWF4KGRvdWJsZSwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2RvdWJsZQlmbWluKGRvdWJsZSwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2RvdWJsZQluZWFyYnlpbnQoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJcm91bmQoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJc2NhbGJsbihkb3VibGUsIGxvbmcpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlzY2FsYm4oZG91YmxlLCBpbnQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQl0Z2FtbWEoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJdHJ1bmMoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CiAvKiAjZW5kaWYgKi8KIAogLyoKICAqIEJTRCBtYXRoIGxpYnJhcnkgZW50cnkgcG9pbnRzCiAgKi8KIC8qICNpZiBfX0JTRF9WSVNJQkxFICovCi1kb3VibGUJZHJlbShkb3VibGUsIGRvdWJsZSk7Ci1pbnQJZmluaXRlKGRvdWJsZSkgX19wdXJlMjsKLWludAlpc25hbmYoZmxvYXQpIF9fcHVyZTI7Citkb3VibGUJZHJlbShkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworaW50CWZpbml0ZShkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworaW50CWlzbmFuZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CiAKIC8qCiAgKiBSZWVudHJhbnQgdmVyc2lvbiBvZiBnYW1tYSAmIGxnYW1tYTsgcGFzc2VzIHNpZ25nYW0gYmFjayBieSByZWZlcmVuY2UKICAqIGFzIHRoZSBzZWNvbmQgYXJndW1lbnQ7IHVzZXIgbXVzdCBhbGxvY2F0ZSBzcGFjZSBmb3Igc2lnbmdhbS4KICAqLwotZG91YmxlCWdhbW1hX3IoZG91YmxlLCBpbnQgKik7Ci1kb3VibGUJbGdhbW1hX3IoZG91YmxlLCBpbnQgKik7Citkb3VibGUJZ2FtbWFfcihkb3VibGUsIGludCAqKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJbGdhbW1hX3IoZG91YmxlLCBpbnQgKikgX19OREtfRlBBQklfTUFUSF9fOwogCiAvKgogICogSUVFRSBUZXN0IFZlY3RvcgogICovCi1kb3VibGUJc2lnbmlmaWNhbmQoZG91YmxlKTsKK2RvdWJsZQlzaWduaWZpY2FuZChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKIC8qICNlbmRpZiAqLyAvKiBfX0JTRF9WSVNJQkxFICovCiAKIC8qIGZsb2F0IHZlcnNpb25zIG9mIEFOU0kvUE9TSVggZnVuY3Rpb25zICovCiAvKiNpZiBfX0lTT19DX1ZJU0lCTEUgPj0gMTk5OSAqLwotZmxvYXQJYWNvc2YoZmxvYXQpOwotZmxvYXQJYXNpbmYoZmxvYXQpOwotZmxvYXQJYXRhbmYoZmxvYXQpOwotZmxvYXQJYXRhbjJmKGZsb2F0LCBmbG9hdCk7Ci1mbG9hdAljb3NmKGZsb2F0KTsKLWZsb2F0CXNpbmYoZmxvYXQpOwotZmxvYXQJdGFuZihmbG9hdCk7CitmbG9hdAlhY29zZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJYXNpbmYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWF0YW5mKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlhdGFuMmYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAljb3NmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlzaW5mKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAl0YW5mKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CiAKLWZsb2F0CWNvc2hmKGZsb2F0KTsKLWZsb2F0CXNpbmhmKGZsb2F0KTsKLWZsb2F0CXRhbmhmKGZsb2F0KTsKK2Zsb2F0CWNvc2hmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlzaW5oZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJdGFuaGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKIAotZmxvYXQJZXhwMmYoZmxvYXQpOwotZmxvYXQJZXhwZihmbG9hdCk7Ci1mbG9hdAlleHBtMWYoZmxvYXQpOwotZmxvYXQJZnJleHBmKGZsb2F0LCBpbnQgKik7CS8qIGZ1bmRhbWVudGFsbHkgIV9fcHVyZTIgKi8KLWludAlpbG9nYmYoZmxvYXQpIF9fcHVyZTI7Ci1mbG9hdAlsZGV4cGYoZmxvYXQsIGludCk7Ci1mbG9hdAlsb2cxMGYoZmxvYXQpOwotZmxvYXQJbG9nMXBmKGZsb2F0KTsKLWZsb2F0CWxvZ2YoZmxvYXQpOwotZmxvYXQJbW9kZmYoZmxvYXQsIGZsb2F0ICopOwkvKiBmdW5kYW1lbnRhbGx5ICFfX3B1cmUyICovCitmbG9hdAlleHAyZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJZXhwZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJZXhwbTFmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlmcmV4cGYoZmxvYXQsIGludCAqKSBfX05ES19GUEFCSV9NQVRIX187CS8qIGZ1bmRhbWVudGFsbHkgIV9fcHVyZTIgKi8KK2ludAlpbG9nYmYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworZmxvYXQJbGRleHBmKGZsb2F0LCBpbnQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWxvZzEwZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJbG9nMXBmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlsb2dmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAltb2RmZihmbG9hdCwgZmxvYXQgKikgX19OREtfRlBBQklfTUFUSF9fOwkvKiBmdW5kYW1lbnRhbGx5ICFfX3B1cmUyICovCiAKLWZsb2F0CXBvd2YoZmxvYXQsIGZsb2F0KTsKLWZsb2F0CXNxcnRmKGZsb2F0KTsKK2Zsb2F0CXBvd2YoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlzcXJ0ZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOwogCi1mbG9hdAljZWlsZihmbG9hdCk7Ci1mbG9hdAlmYWJzZihmbG9hdCkgX19wdXJlMjsKLWZsb2F0CWZsb29yZihmbG9hdCk7Ci1mbG9hdAlmbW9kZihmbG9hdCwgZmxvYXQpOwotZmxvYXQJcm91bmRmKGZsb2F0KTsKK2Zsb2F0CWNlaWxmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlmYWJzZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitmbG9hdAlmbG9vcmYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWZtb2RmKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJcm91bmRmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CiAKLWZsb2F0CWVyZmYoZmxvYXQpOwotZmxvYXQJZXJmY2YoZmxvYXQpOwotZmxvYXQJaHlwb3RmKGZsb2F0LCBmbG9hdCk7Ci1mbG9hdAlsZ2FtbWFmKGZsb2F0KTsKK2Zsb2F0CWVyZmYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWVyZmNmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAloeXBvdGYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlsZ2FtbWFmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CiAKLWZsb2F0CWFjb3NoZihmbG9hdCk7Ci1mbG9hdAlhc2luaGYoZmxvYXQpOwotZmxvYXQJYXRhbmhmKGZsb2F0KTsKLWZsb2F0CWNicnRmKGZsb2F0KTsKLWZsb2F0CWxvZ2JmKGZsb2F0KTsKLWZsb2F0CWNvcHlzaWduZihmbG9hdCwgZmxvYXQpIF9fcHVyZTI7Ci1sb25nIGxvbmcgbGxyaW50ZihmbG9hdCk7Ci1sb25nIGxvbmcgbGxyb3VuZGYoZmxvYXQpOwotbG9uZwlscmludGYoZmxvYXQpOwotbG9uZwlscm91bmRmKGZsb2F0KTsKLWZsb2F0CW5lYXJieWludGYoZmxvYXQpOwotZmxvYXQJbmV4dGFmdGVyZihmbG9hdCwgZmxvYXQpOwotZmxvYXQJcmVtYWluZGVyZihmbG9hdCwgZmxvYXQpOwotZmxvYXQJcmVtcXVvZihmbG9hdCwgZmxvYXQsIGludCAqKTsKLWZsb2F0CXJpbnRmKGZsb2F0KTsKLWZsb2F0CXNjYWxibG5mKGZsb2F0LCBsb25nKTsKLWZsb2F0CXNjYWxibmYoZmxvYXQsIGludCk7Ci1mbG9hdAl0cnVuY2YoZmxvYXQpOworZmxvYXQJYWNvc2hmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlhc2luaGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWF0YW5oZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJY2JydGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWxvZ2JmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAljb3B5c2lnbmYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2xvbmcgbG9uZyBsbHJpbnRmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGxvbmcgbGxyb3VuZGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcJbHJpbnRmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187Citsb25nCWxyb3VuZGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CW5lYXJieWludGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CW5leHRhZnRlcmYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlyZW1haW5kZXJmKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJcmVtcXVvZihmbG9hdCwgZmxvYXQsIGludCAqKSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlyaW50ZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJc2NhbGJsbmYoZmxvYXQsIGxvbmcpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CXNjYWxibmYoZmxvYXQsIGludCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJdHJ1bmNmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CiAKLWZsb2F0CWZkaW1mKGZsb2F0LCBmbG9hdCk7Ci1mbG9hdAlmbWFmKGZsb2F0LCBmbG9hdCwgZmxvYXQpOwotZmxvYXQJZm1heGYoZmxvYXQsIGZsb2F0KSBfX3B1cmUyOwotZmxvYXQJZm1pbmYoZmxvYXQsIGZsb2F0KSBfX3B1cmUyOworZmxvYXQJZmRpbWYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlmbWFmKGZsb2F0LCBmbG9hdCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWZtYXhmKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitmbG9hdAlmbWluZihmbG9hdCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOwogLyogI2VuZGlmICovCiAKIC8qCiAgKiBmbG9hdCB2ZXJzaW9ucyBvZiBCU0QgbWF0aCBsaWJyYXJ5IGVudHJ5IHBvaW50cwogICovCiAvKiAjaWYgX19CU0RfVklTSUJMRSAqLwotZmxvYXQJZHJlbWYoZmxvYXQsIGZsb2F0KTsKLWludAlmaW5pdGVmKGZsb2F0KSBfX3B1cmUyOwotZmxvYXQJZ2FtbWFmKGZsb2F0KTsKLWZsb2F0CWowZihmbG9hdCk7Ci1mbG9hdAlqMWYoZmxvYXQpOwotZmxvYXQJam5mKGludCwgZmxvYXQpOwotZmxvYXQJc2NhbGJmKGZsb2F0LCBmbG9hdCk7Ci1mbG9hdAl5MGYoZmxvYXQpOwotZmxvYXQJeTFmKGZsb2F0KTsKLWZsb2F0CXluZihpbnQsIGZsb2F0KTsKK2Zsb2F0CWRyZW1mKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworaW50CWZpbml0ZWYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworZmxvYXQJZ2FtbWFmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlqMGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWoxZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJam5mKGludCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CXNjYWxiZihmbG9hdCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CXkwZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJeTFmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAl5bmYoaW50LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOwogCiAvKgogICogRmxvYXQgdmVyc2lvbnMgb2YgcmVlbnRyYW50IHZlcnNpb24gb2YgZ2FtbWEgJiBsZ2FtbWE7IHBhc3NlcwogICogc2lnbmdhbSBiYWNrIGJ5IHJlZmVyZW5jZSBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50OyB1c2VyIG11c3QKICAqIGFsbG9jYXRlIHNwYWNlIGZvciBzaWduZ2FtLgogICovCi1mbG9hdAlnYW1tYWZfcihmbG9hdCwgaW50ICopOwotZmxvYXQJbGdhbW1hZl9yKGZsb2F0LCBpbnQgKik7CitmbG9hdAlnYW1tYWZfcihmbG9hdCwgaW50ICopIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWxnYW1tYWZfcihmbG9hdCwgaW50ICopIF9fTkRLX0ZQQUJJX01BVEhfXzsKIAogLyoKICAqIGZsb2F0IHZlcnNpb24gb2YgSUVFRSBUZXN0IFZlY3RvcgogICovCi1mbG9hdAlzaWduaWZpY2FuZGYoZmxvYXQpOworZmxvYXQJc2lnbmlmaWNhbmRmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CiAvKiAjZW5kaWYgKi8JLyogX19CU0RfVklTSUJMRSAqLyAKIAogLyoKQEAgLTQwMyw4NCArNDAzLDI5OCBAQAogICovCiAvKiAjaWYgX19JU09fQ19WSVNJQkxFID49IDE5OTkgKi8KICNpZiAwCi1sb25nIGRvdWJsZQlhY29zaGwobG9uZyBkb3VibGUpOwotbG9uZyBkb3VibGUJYWNvc2wobG9uZyBkb3VibGUpOwotbG9uZyBkb3VibGUJYXNpbmhsKGxvbmcgZG91YmxlKTsKLWxvbmcgZG91YmxlCWFzaW5sKGxvbmcgZG91YmxlKTsKLWxvbmcgZG91YmxlCWF0YW4ybChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpOwotbG9uZyBkb3VibGUJYXRhbmhsKGxvbmcgZG91YmxlKTsKLWxvbmcgZG91YmxlCWF0YW5sKGxvbmcgZG91YmxlKTsKLWxvbmcgZG91YmxlCWNicnRsKGxvbmcgZG91YmxlKTsKK2xvbmcgZG91YmxlCWFjb3NobChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJYWNvc2wobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWFzaW5obChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJYXNpbmwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWF0YW4ybChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWF0YW5obChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJYXRhbmwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWNicnRsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CiAjZW5kaWYKLWxvbmcgZG91YmxlCWNlaWxsKGxvbmcgZG91YmxlKTsKLWxvbmcgZG91YmxlCWNvcHlzaWdubChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fcHVyZTI7Citsb25nIGRvdWJsZQljZWlsbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJY29weXNpZ25sKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CiAjaWYgMAotbG9uZyBkb3VibGUJY29zaGwobG9uZyBkb3VibGUpOwotbG9uZyBkb3VibGUJY29zbChsb25nIGRvdWJsZSk7Ci1sb25nIGRvdWJsZQllcmZjbChsb25nIGRvdWJsZSk7Ci1sb25nIGRvdWJsZQllcmZsKGxvbmcgZG91YmxlKTsKLWxvbmcgZG91YmxlCWV4cDJsKGxvbmcgZG91YmxlKTsKLWxvbmcgZG91YmxlCWV4cGwobG9uZyBkb3VibGUpOwotbG9uZyBkb3VibGUJZXhwbTFsKGxvbmcgZG91YmxlKTsKK2xvbmcgZG91YmxlCWNvc2hsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQljb3NsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQllcmZjbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJZXJmbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJZXhwMmwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWV4cGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWV4cG0xbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOwogI2VuZGlmCi1sb25nIGRvdWJsZQlmYWJzbChsb25nIGRvdWJsZSkgX19wdXJlMjsKLWxvbmcgZG91YmxlCWZkaW1sKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSk7Ci1sb25nIGRvdWJsZQlmbG9vcmwobG9uZyBkb3VibGUpOwotbG9uZyBkb3VibGUJZm1hbChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKTsKLWxvbmcgZG91YmxlCWZtYXhsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSkgX19wdXJlMjsKLWxvbmcgZG91YmxlCWZtaW5sKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSkgX19wdXJlMjsKK2xvbmcgZG91YmxlCWZhYnNsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2xvbmcgZG91YmxlCWZkaW1sKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJZmxvb3JsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlmbWFsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWZtYXhsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7Citsb25nIGRvdWJsZQlmbWlubChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOwogI2lmIDAKLWxvbmcgZG91YmxlCWZtb2RsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSk7Citsb25nIGRvdWJsZQlmbW9kbChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKICNlbmRpZgotbG9uZyBkb3VibGUJZnJleHBsKGxvbmcgZG91YmxlIHZhbHVlLCBpbnQgKik7IC8qIGZ1bmRhbWVudGFsbHkgIV9fcHVyZTIgKi8KK2xvbmcgZG91YmxlCWZyZXhwbChsb25nIGRvdWJsZSB2YWx1ZSwgaW50ICopIF9fTkRLX0ZQQUJJX01BVEhfXzsgLyogZnVuZGFtZW50YWxseSAhX19wdXJlMiAqLwogI2lmIDAKLWxvbmcgZG91YmxlCWh5cG90bChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpOworbG9uZyBkb3VibGUJaHlwb3RsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOwogI2VuZGlmCi1pbnQJCWlsb2dibChsb25nIGRvdWJsZSkgX19wdXJlMjsKLWxvbmcgZG91YmxlCWxkZXhwbChsb25nIGRvdWJsZSwgaW50KTsKK2ludAkJaWxvZ2JsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2xvbmcgZG91YmxlCWxkZXhwbChsb25nIGRvdWJsZSwgaW50KSBfX05ES19GUEFCSV9NQVRIX187CiAjaWYgMAotbG9uZyBkb3VibGUJbGdhbW1hbChsb25nIGRvdWJsZSk7Ci1sb25nIGxvbmcJbGxyaW50bChsb25nIGRvdWJsZSk7Citsb25nIGRvdWJsZQlsZ2FtbWFsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGxvbmcJbGxyaW50bChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOwogI2VuZGlmCi1sb25nIGxvbmcJbGxyb3VuZGwobG9uZyBkb3VibGUpOworbG9uZyBsb25nCWxscm91bmRsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CiAjaWYgMAotbG9uZyBkb3VibGUJbG9nMTBsKGxvbmcgZG91YmxlKTsKLWxvbmcgZG91YmxlCWxvZzFwbChsb25nIGRvdWJsZSk7Ci1sb25nIGRvdWJsZQlsb2cybChsb25nIGRvdWJsZSk7Ci1sb25nIGRvdWJsZQlsb2dibChsb25nIGRvdWJsZSk7Ci1sb25nIGRvdWJsZQlsb2dsKGxvbmcgZG91YmxlKTsKLWxvbmcJCWxyaW50bChsb25nIGRvdWJsZSk7Citsb25nIGRvdWJsZQlsb2cxMGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWxvZzFwbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJbG9nMmwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWxvZ2JsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlsb2dsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nCQlscmludGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKICNlbmRpZgotbG9uZwkJbHJvdW5kbChsb25nIGRvdWJsZSk7Citsb25nCQlscm91bmRsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CiAjaWYgMAotbG9uZyBkb3VibGUJbW9kZmwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlICopOyAvKiBmdW5kYW1lbnRhbGx5ICFfX3B1cmUyICovCi1sb25nIGRvdWJsZQluYW5sKGNvbnN0IGNoYXIgKikgX19wdXJlMjsKLWxvbmcgZG91YmxlCW5lYXJieWludGwobG9uZyBkb3VibGUpOworbG9uZyBkb3VibGUJbW9kZmwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlICopIF9fTkRLX0ZQQUJJX01BVEhfXzsgLyogZnVuZGFtZW50YWxseSAhX19wdXJlMiAqLworbG9uZyBkb3VibGUJbmFubChjb25zdCBjaGFyICopIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworbG9uZyBkb3VibGUJbmVhcmJ5aW50bChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOwogI2VuZGlmCi1sb25nIGRvdWJsZQluZXh0YWZ0ZXJsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSk7Ci1kb3VibGUJCW5leHR0b3dhcmQoZG91YmxlLCBsb25nIGRvdWJsZSk7Ci1mbG9hdAkJbmV4dHRvd2FyZGYoZmxvYXQsIGxvbmcgZG91YmxlKTsKLWxvbmcgZG91YmxlCW5leHR0b3dhcmRsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSk7Citsb25nIGRvdWJsZQluZXh0YWZ0ZXJsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCQluZXh0dG93YXJkKGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CQluZXh0dG93YXJkZihmbG9hdCwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCW5leHR0b3dhcmRsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOwogI2lmIDAKLWxvbmcgZG91YmxlCXBvd2wobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKTsKLWxvbmcgZG91YmxlCXJlbWFpbmRlcmwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKTsKLWxvbmcgZG91YmxlCXJlbXF1b2wobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlLCBpbnQgKik7Ci1sb25nIGRvdWJsZQlyaW50bChsb25nIGRvdWJsZSk7Citsb25nIGRvdWJsZQlwb3dsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJcmVtYWluZGVybChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCXJlbXF1b2wobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlLCBpbnQgKikgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJcmludGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKICNlbmRpZgotbG9uZyBkb3VibGUJcm91bmRsKGxvbmcgZG91YmxlKTsKLWxvbmcgZG91YmxlCXNjYWxibG5sKGxvbmcgZG91YmxlLCBsb25nKTsKLWxvbmcgZG91YmxlCXNjYWxibmwobG9uZyBkb3VibGUsIGludCk7Citsb25nIGRvdWJsZQlyb3VuZGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCXNjYWxibG5sKGxvbmcgZG91YmxlLCBsb25nKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlzY2FsYm5sKGxvbmcgZG91YmxlLCBpbnQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKICNpZiAwCi1sb25nIGRvdWJsZQlzaW5obChsb25nIGRvdWJsZSk7Ci1sb25nIGRvdWJsZQlzaW5sKGxvbmcgZG91YmxlKTsKLWxvbmcgZG91YmxlCXNxcnRsKGxvbmcgZG91YmxlKTsKLWxvbmcgZG91YmxlCXRhbmhsKGxvbmcgZG91YmxlKTsKLWxvbmcgZG91YmxlCXRhbmwobG9uZyBkb3VibGUpOwotbG9uZyBkb3VibGUJdGdhbW1hbChsb25nIGRvdWJsZSk7Citsb25nIGRvdWJsZQlzaW5obChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJc2lubChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJc3FydGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCXRhbmhsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQl0YW5sKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQl0Z2FtbWFsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CiAjZW5kaWYKLWxvbmcgZG91YmxlCXRydW5jbChsb25nIGRvdWJsZSk7Citsb25nIGRvdWJsZQl0cnVuY2wobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKIAotLyogI2VuZGlmICovIC8qIF9fSVNPX0NfVklTSUJMRSA+PSAxOTk5ICovCisvKiBCSU9OSUM6IEdMaWJjIGNvbXBhdGliaWxpdHkgLSByZXF1aXJlZCBieSB0aGUgQVJNIHRvb2xjaGFpbiAqLworI2lmZGVmIF9HTlVfU09VUkNFCit2b2lkICBzaW5jb3MoZG91YmxlIHgsIGRvdWJsZSAqc2luLCBkb3VibGUgKmNvcykgX19OREtfRlBBQklfTUFUSF9fOwordm9pZCAgc2luY29zZihmbG9hdCB4LCBmbG9hdCAqc2luLCBmbG9hdCAqY29zKSBfX05ES19GUEFCSV9NQVRIX187Cit2b2lkICBzaW5jb3NsKGxvbmcgZG91YmxlIHgsIGxvbmcgZG91YmxlICpzaW4sIGxvbmcgZG91YmxlICpjb3MpIF9fTkRLX0ZQQUJJX01BVEhfXzsKKyNlbmRpZgorCisvKiBidWlsdGluIHZlcnNpb24gb2YgYWxsIHRoZSBhYm92ZSBtYXRoIGZ1bmN0aW9ucyBhcmUgYW5ub3RhdGVkIHRvbyAqLworCitkb3VibGUJX19idWlsdGluX2Fjb3MoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2FzaW4oZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2F0YW4oZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2F0YW4yKGRvdWJsZSwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2Nvcyhkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fc2luKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl90YW4oZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2Nvc2goZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX3NpbmgoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX3RhbmgoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2V4cChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fZnJleHAoZG91YmxlLCBpbnQgKikgX19OREtfRlBBQklfTUFUSF9fOwkvKiBmdW5kYW1lbnRhbGx5ICFfX3B1cmUyICovCitkb3VibGUJX19idWlsdGluX2xkZXhwKGRvdWJsZSwgaW50KSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2xvZyhkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fbG9nMTAoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX21vZGYoZG91YmxlLCBkb3VibGUgKikgX19OREtfRlBBQklfTUFUSF9fOwkvKiBmdW5kYW1lbnRhbGx5ICFfX3B1cmUyICovCitkb3VibGUJX19idWlsdGluX3Bvdyhkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9zcXJ0KGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9jZWlsKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9mYWJzKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7Citkb3VibGUJX19idWlsdGluX2Zsb29yKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9mbW9kKGRvdWJsZSwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2Fjb3NoKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9hc2luaChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fYXRhbmgoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2NicnQoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2VyZihkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fZXJmYyhkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fZXhwMihkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fZXhwbTEoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2ZtYShkb3VibGUsIGRvdWJsZSwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2h5cG90KGRvdWJsZSwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CitpbnQJX19idWlsdGluX2lsb2diKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CisvKiBpbnQJX19idWlsdGluX2lzaW5mKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7ICovCisjaWYgIWRlZmluZWQoX19jbGFuZ19fKSB8fCBfX2NsYW5nX21ham9yX18gPiAzIHx8IChfX2NsYW5nX21ham9yX18gPT0gMyAmJiBfX2NsYW5nX21pbm9yX18gPj0gNSkKK2ludAlfX2J1aWx0aW5faXNuYW4oZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKKyNlbHNlCisvKiBjbGFuZyA8IDMuNSBoYXMgZmF1bHR5IHByb3RvdHlwZSBmb3IgX19idWlsdGluX2lzbmFuICovCisjZW5kaWYKK2RvdWJsZQlfX2J1aWx0aW5fbGdhbW1hKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBsb25nIF9fYnVpbHRpbl9sbHJpbnQoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGxvbmcgX19idWlsdGluX2xscm91bmQoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2xvZzFwKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9sb2diKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZwlfX2J1aWx0aW5fbHJpbnQoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nCV9fYnVpbHRpbl9scm91bmQoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX25leHRhZnRlcihkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9yZW1haW5kZXIoZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fcmVtcXVvKGRvdWJsZSwgZG91YmxlLCBpbnQgKikgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9yaW50KGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9qMChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fajEoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2puKGludCwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX3NjYWxiKGRvdWJsZSwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX3kwKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl95MShkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5feW4oaW50LCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fZ2FtbWEoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2NvcHlzaWduKGRvdWJsZSwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2RvdWJsZQlfX2J1aWx0aW5fZmRpbShkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9mbWF4KGRvdWJsZSwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2RvdWJsZQlfX2J1aWx0aW5fZm1pbihkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7Citkb3VibGUJX19idWlsdGluX25lYXJieWludChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fcm91bmQoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX3NjYWxibG4oZG91YmxlLCBsb25nKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX3NjYWxibihkb3VibGUsIGludCkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl90Z2FtbWEoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX3RydW5jKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9kcmVtKGRvdWJsZSwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CitpbnQJX19idWlsdGluX2Zpbml0ZShkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworaW50CV9fYnVpbHRpbl9pc25hbmYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworZG91YmxlCV9fYnVpbHRpbl9nYW1tYV9yKGRvdWJsZSwgaW50ICopIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fbGdhbW1hX3IoZG91YmxlLCBpbnQgKikgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9zaWduaWZpY2FuZChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9hY29zZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2FzaW5mKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fYXRhbmYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9hdGFuMmYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fY29zZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX3NpbmYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl90YW5mKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fY29zaGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9zaW5oZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX3RhbmhmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fZXhwMmYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9leHBmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fZXhwbTFmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fZnJleHBmKGZsb2F0LCBpbnQgKikgX19OREtfRlBBQklfTUFUSF9fOwkvKiBmdW5kYW1lbnRhbGx5ICFfX3B1cmUyICovCitpbnQJX19idWlsdGluX2lsb2diZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitmbG9hdAlfX2J1aWx0aW5fbGRleHBmKGZsb2F0LCBpbnQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9sb2cxMGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9sb2cxcGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9sb2dmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fbW9kZmYoZmxvYXQsIGZsb2F0ICopIF9fTkRLX0ZQQUJJX01BVEhfXzsJLyogZnVuZGFtZW50YWxseSAhX19wdXJlMiAqLworZmxvYXQJX19idWlsdGluX3Bvd2YoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fc3FydGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9jZWlsZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2ZhYnNmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2Zsb2F0CV9fYnVpbHRpbl9mbG9vcmYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9mbW9kZihmbG9hdCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9yb3VuZGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9lcmZmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fZXJmY2YoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9oeXBvdGYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fbGdhbW1hZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2Fjb3NoZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2FzaW5oZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2F0YW5oZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2NicnRmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fbG9nYmYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9jb3B5c2lnbmYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2xvbmcgbG9uZyBfX2J1aWx0aW5fbGxyaW50ZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBsb25nIF9fYnVpbHRpbl9sbHJvdW5kZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZwlfX2J1aWx0aW5fbHJpbnRmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187Citsb25nCV9fYnVpbHRpbl9scm91bmRmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fbmVhcmJ5aW50ZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX25leHRhZnRlcmYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fcmVtYWluZGVyZihmbG9hdCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9yZW1xdW9mKGZsb2F0LCBmbG9hdCwgaW50ICopIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9yaW50ZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX3NjYWxibG5mKGZsb2F0LCBsb25nKSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fc2NhbGJuZihmbG9hdCwgaW50KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fdHJ1bmNmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fZmRpbWYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fZm1hZihmbG9hdCwgZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fZm1heGYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2Zsb2F0CV9fYnVpbHRpbl9mbWluZihmbG9hdCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworZmxvYXQJX19idWlsdGluX2RyZW1mKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworaW50CV9fYnVpbHRpbl9maW5pdGVmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2Zsb2F0CV9fYnVpbHRpbl9nYW1tYWYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9qMGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9qMWYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9qbmYoaW50LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX3NjYWxiZihmbG9hdCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl95MGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl95MWYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl95bmYoaW50LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2dhbW1hZl9yKGZsb2F0LCBpbnQgKikgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2xnYW1tYWZfcihmbG9hdCwgaW50ICopIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9zaWduaWZpY2FuZGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9hY29zaGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9hY29zbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2FzaW5obChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2FzaW5sKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fYXRhbjJsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2F0YW5obChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2F0YW5sKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fY2JydGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9jZWlsbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2NvcHlzaWdubChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworbG9uZyBkb3VibGUJX19idWlsdGluX2Nvc2hsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fY29zbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2VyZmNsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fZXJmbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2V4cDJsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fZXhwbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2V4cG0xbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2ZhYnNsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9mZGltbChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9mbG9vcmwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9mbWFsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9mbWF4bChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworbG9uZyBkb3VibGUJX19idWlsdGluX2ZtaW5sKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fZm1vZGwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fZnJleHBsKGxvbmcgZG91YmxlIHZhbHVlLCBpbnQgKikgX19OREtfRlBBQklfTUFUSF9fOyAvKiBmdW5kYW1lbnRhbGx5ICFfX3B1cmUyICovCitsb25nIGRvdWJsZQlfX2J1aWx0aW5faHlwb3RsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworaW50CQlfX2J1aWx0aW5faWxvZ2JsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9sZGV4cGwobG9uZyBkb3VibGUsIGludCkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2xnYW1tYWwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgbG9uZwlfX2J1aWx0aW5fbGxyaW50bChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBsb25nCV9fYnVpbHRpbl9sbHJvdW5kbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2xvZzEwbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2xvZzFwbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2xvZzJsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fbG9nYmwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9sb2dsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nCQlfX2J1aWx0aW5fbHJpbnRsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nCQlfX2J1aWx0aW5fbHJvdW5kbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX21vZGZsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSAqKSBfX05ES19GUEFCSV9NQVRIX187IC8qIGZ1bmRhbWVudGFsbHkgIV9fcHVyZTIgKi8KK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9uYW5sKGNvbnN0IGNoYXIgKikgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fbmVhcmJ5aW50bChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX25leHRhZnRlcmwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CisjaWYgIWRlZmluZWQoX19jbGFuZ19fKSB8fCBfX2NsYW5nX21ham9yX18gPiAzIHx8IChfX2NsYW5nX21ham9yX18gPT0gMyAmJiBfX2NsYW5nX21pbm9yX18gPj0gNCkKK2RvdWJsZQkJX19idWlsdGluX25leHR0b3dhcmQoZG91YmxlLCBsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJCV9fYnVpbHRpbl9uZXh0dG93YXJkZihmbG9hdCwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKKyNlbHNlCisvKiBjbGFuZyA8IDMuNCAqLworZG91YmxlCQlfX2J1aWx0aW5fbmV4dHRvd2FyZChkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJCV9fYnVpbHRpbl9uZXh0dG93YXJkZihmbG9hdCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKKyNlbmRpZgorbG9uZyBkb3VibGUJX19idWlsdGluX25leHR0b3dhcmRsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX3Bvd2wobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fcmVtYWluZGVybChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9yZW1xdW9sKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSwgaW50ICopIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9yaW50bChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX3JvdW5kbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX3NjYWxibG5sKGxvbmcgZG91YmxlLCBsb25nKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fc2NhbGJubChsb25nIGRvdWJsZSwgaW50KSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fc2luaGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9zaW5sKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fc3FydGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl90YW5obChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX3RhbmwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl90Z2FtbWFsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fdHJ1bmNsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CisKIF9fRU5EX0RFQ0xTCiAKICNlbmRpZiAvKiAhX01BVEhfSF8gKi8KZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2luY2x1ZGUvcG9sbC5oIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaW5jbHVkZS9wb2xsLmgKaW5kZXggNTYwYmU4OS4uOTEwNjhlNCAxMDA2NDQKLS0tIGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaW5jbHVkZS9wb2xsLmgKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaW5jbHVkZS9wb2xsLmgKQEAgLTM1LDggKzM1LDcgQEAKIAogdHlwZWRlZiB1bnNpZ25lZCBpbnQgIG5mZHNfdDsKIAotLyogUE9TSVggc3BlY2lmaWVzICJpbnQiIGZvciB0aGUgdGltZW91dCwgTGludXggc2VlbXMgdG8gdXNlIGxvbmcuLi4gKi8KLWV4dGVybiBpbnQgcG9sbChzdHJ1Y3QgcG9sbGZkICosIG5mZHNfdCwgbG9uZyk7CitleHRlcm4gaW50IHBvbGwoc3RydWN0IHBvbGxmZCAqLCBuZmRzX3QsIGludCk7CiAKIF9fRU5EX0RFQ0xTCiAKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2luY2x1ZGUvcHRocmVhZC5oIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaW5jbHVkZS9wdGhyZWFkLmgKaW5kZXggYWU1NTc4Mi4uNjNkZGI3NiAxMDA2NDQKLS0tIGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaW5jbHVkZS9wdGhyZWFkLmgKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaW5jbHVkZS9wdGhyZWFkLmgKQEAgLTEzOCw3ICsxMzgsOSBAQAogCiBpbnQgcHRocmVhZF9jcmVhdGUocHRocmVhZF90ICp0aHJlYWQsIHB0aHJlYWRfYXR0cl90IGNvbnN0ICogYXR0ciwKICAgICAgICAgICAgICAgICAgICB2b2lkICooKnN0YXJ0X3JvdXRpbmUpKHZvaWQgKiksIHZvaWQgKiBhcmcpOwotdm9pZCBwdGhyZWFkX2V4aXQodm9pZCAqIHJldHZhbCk7CisKK19fbm9yZXR1cm4gdm9pZCBwdGhyZWFkX2V4aXQodm9pZCAqIHJldHZhbCk7CisKIGludCBwdGhyZWFkX2pvaW4ocHRocmVhZF90IHRoaWQsIHZvaWQgKiogcmV0X3ZhbCk7CiBpbnQgcHRocmVhZF9kZXRhY2gocHRocmVhZF90ICB0aGlkKTsKIApkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaW5jbHVkZS9zdGRsaWIuaCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2luY2x1ZGUvc3RkbGliLmgKaW5kZXggNDI0YWRiNC4uYmI1YjNiOCAxMDA2NDQKLS0tIGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaW5jbHVkZS9zdGRsaWIuaAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9pbmNsdWRlL3N0ZGxpYi5oCkBAIC01Niw2ICs1Niw3IEBACiBleHRlcm4gaW50IHNldGVudihjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgaW50KTsKIGV4dGVybiBpbnQgdW5zZXRlbnYoY29uc3QgY2hhciAqKTsKIAorZXh0ZXJuIGNoYXIgKm1rZHRlbXAoY2hhciAqKTsKIGV4dGVybiBjaGFyICpta3RlbXAgKGNoYXIgKik7CiBleHRlcm4gaW50IG1rc3RlbXAgKGNoYXIgKik7CiAKQEAgLTYzLDggKzY0LDkgQEAKIGV4dGVybiBsb25nIGxvbmcgc3RydG9sbChjb25zdCBjaGFyICosIGNoYXIgKiosIGludCk7CiBleHRlcm4gdW5zaWduZWQgbG9uZyBzdHJ0b3VsKGNvbnN0IGNoYXIgKiwgY2hhciAqKiwgaW50KTsKIGV4dGVybiB1bnNpZ25lZCBsb25nIGxvbmcgc3RydG91bGwoY29uc3QgY2hhciAqLCBjaGFyICoqLCBpbnQpOwotZXh0ZXJuIGRvdWJsZSBzdHJ0b2QoY29uc3QgY2hhciAqbnB0ciwgY2hhciAqKmVuZHB0cik7CitleHRlcm4gZG91YmxlIHN0cnRvZChjb25zdCBjaGFyICpucHRyLCBjaGFyICoqZW5kcHRyKSBfX05ES19GUEFCSV9fOwogCitfX05ES19GUEFCSV9fCiBzdGF0aWMgX19pbmxpbmVfXyBmbG9hdCBzdHJ0b2YoY29uc3QgY2hhciAqbnB0ciwgY2hhciAqKmVuZHB0cikKIHsKICAgICByZXR1cm4gKGZsb2F0KXN0cnRvZChucHRyLCBlbmRwdHIpOwpAQCAtNzQsNiArNzYsNyBAQAogZXh0ZXJuIGxvbmcgYXRvbChjb25zdCBjaGFyICopOwogZXh0ZXJuIGxvbmcgbG9uZyBhdG9sbChjb25zdCBjaGFyICopOwogCisgX19OREtfRlBBQklfXwogc3RhdGljIF9faW5saW5lX18gZG91YmxlIGF0b2YoY29uc3QgY2hhciAqbnB0cikKIHsKICAgICByZXR1cm4gKHN0cnRvZChucHRyLCBOVUxMKSk7CkBAIC0xMDUsOCArMTA4LDggQEAKIGV4dGVybiBsb25nIG5yYW5kNDgodW5zaWduZWQgc2hvcnQgKik7CiBleHRlcm4gbG9uZyBscmFuZDQ4KHZvaWQpOwogZXh0ZXJuIHVuc2lnbmVkIHNob3J0ICpzZWVkNDgodW5zaWduZWQgc2hvcnQqKTsKLWV4dGVybiBkb3VibGUgZXJhbmQ0OCh1bnNpZ25lZCBzaG9ydCB4c3ViaVszXSk7Ci1leHRlcm4gZG91YmxlIGRyYW5kNDgodm9pZCk7CitleHRlcm4gZG91YmxlIGVyYW5kNDgodW5zaWduZWQgc2hvcnQgeHN1YmlbM10pIF9fTkRLX0ZQQUJJX187CitleHRlcm4gZG91YmxlIGRyYW5kNDgodm9pZCkgX19OREtfRlBBQklfXzsKIGV4dGVybiB2b2lkIHNyYW5kNDgobG9uZyk7CiBleHRlcm4gdW5zaWduZWQgaW50IGFyYzRyYW5kb20odm9pZCk7CiBleHRlcm4gdm9pZCBhcmM0cmFuZG9tX3N0aXIodm9pZCk7CmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9pbmNsdWRlL3N5cy9jZGVmcy5oIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaW5jbHVkZS9zeXMvY2RlZnMuaAppbmRleCA4OGNlNzIwLi5lODQwMDY0IDEwMDY0NAotLS0gYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9pbmNsdWRlL3N5cy9jZGVmcy5oCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2luY2x1ZGUvc3lzL2NkZWZzLmgKQEAgLTUzMCw0ICs1MzAsMzEgQEAKICNkZWZpbmUgIF9fQklPTklDX18gICAxCiAjaW5jbHVkZSA8YW5kcm9pZC9hcGktbGV2ZWwuaD4KIAorLyogX19OREtfRlBBQklfXyBvciBfX05ES19GUEFCSV9NQVRIX18gYXJlIGFwcGxpZWQgdG8gQVBJcyB0YWtpbmcgb3IgcmV0dXJuaW5nIGZsb2F0IG9yCisgICBbbG9uZ10gZG91YmxlLCB0byBlbnN1cmUgZXZlbiBhdCB0aGUgcHJlc2VuY2Ugb2YgLW1oYXJkLWZsb2F0ICh3aGljaCBpbXBsaWVzCisgICAtbWZsb2F0LWFiaT1oYXJkKSwgY2FsbGluZyB0byAzMi1iaXQgQW5kcm9pZCBuYXRpdmUgQVBJcyBzdGlsbCBmb2xsb3cgLW1mbG9hdC1hYmk9c29mdGZwLgorCisgICBfX05ES19GUEFCSV9NQVRIX18gaXMgYXBwbGllZCB0byBBUElzIGluIG1hdGguaC4gIEl0IG5vcm1hbGx5IGVxdWFscyB0byBfX05ES19GUEFCSV9fLAorICAgYnV0IGFsbG93cyB1c2Ugb2YgY3VzdG9taXplZCBsaWJtLmEgY29tcGlsZWQgd2l0aCAtbWhhcmQtZmxvYXQgYnkgLURfTkRLX01BVEhfTk9fU09GVEZQPTEKKworICAgTk9URTogRGlzYWJsZSBmb3IgY2xhbmcgZm9yIG5vdyB1bmxlc3MgX05ES19NQVRIX05PX1NPRlRGUD0xLCBiZWNhdXNlIGNsYW5nIGJlZm9yZSAzLjQgZG9lc24ndAorICAgICAgICAgYWxsb3cgY2hhbmdlIG9mIGNhbGxpbmcgY29udmVuc2lvbiBmb3IgYnVpbHRpbiBhbmQgcHJvZHVjZXMgZXJyb3IgbWVzc2FnZSByZWFkczoKKworICAgICAgICAgICBhLmk6NTY0OjY6IGVycm9yOiBmdW5jdGlvbiBkZWNsYXJlZCAnYWFwY3MnIGhlcmUgd2FzIHByZXZpb3VzbHkgZGVjbGFyZWQgd2l0aG91dCBjYWxsaW5nIGNvbnZlbnRpb24KKyAgICAgICAgICAgaW50ICBzaW4oZG91YmxlIGQpIF9fYXR0cmlidXRlX18oKHBjcygiYWFwY3MiKSkpOworICAgICAgICAgICAgICAgIF4KKyAgICAgICAgICAgYS5pOjU2NDo2OiBub3RlOiBwcmV2aW91cyBkZWNsYXJhdGlvbiBpcyBoZXJlCisgKi8KKyNpZiBkZWZpbmVkKF9fQU5EUk9JRF9fKSAmJiAhX19MUDY0X18gJiYgZGVmaW5lZCggX19hcm1fXykKKyNkZWZpbmUgX19OREtfRlBBQklfXyBfX2F0dHJpYnV0ZV9fKChwY3MoImFhcGNzIikpKQorI2Vsc2UKKyNkZWZpbmUgX19OREtfRlBBQklfXworI2VuZGlmCisKKyNpZiAoIWRlZmluZWQoX05ES19NQVRIX05PX1NPRlRGUCkgfHwgX05ES19NQVRIX05PX1NPRlRGUCAhPSAxKSAmJiAhZGVmaW5lZChfX2NsYW5nX18pCisjZGVmaW5lIF9fTkRLX0ZQQUJJX01BVEhfXyBfX05ES19GUEFCSV9fCisjZWxzZQorI2RlZmluZSBfX05ES19GUEFCSV9NQVRIX18gIC8qIG5vdGhpbmcgKi8KKyNlbmRpZgorCiAjZW5kaWYgLyogIV9TWVNfQ0RFRlNfSF8gKi8KZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2luY2x1ZGUvc3lzL2NkZWZzX2VsZi5oIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaW5jbHVkZS9zeXMvY2RlZnNfZWxmLmgKaW5kZXggMWU1NzQ3MC4uNWQyZTBmMyAxMDA2NDQKLS0tIGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaW5jbHVkZS9zeXMvY2RlZnNfZWxmLmgKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaW5jbHVkZS9zeXMvY2RlZnNfZWxmLmgKQEAgLTMyLDcgKzMyLDcgQEAKIAogI2lmZGVmIF9fTEVBRElOR19VTkRFUlNDT1JFCiAjZGVmaW5lCV9DX0xBQkVMKHgpCV9fQ09OQ0FUKF8seCkKLSNkZWZpbmUgX0NfTEFCRUxfU1RSSU5HKHgpCSJfIngKKyNkZWZpbmUgX0NfTEFCRUxfU1RSSU5HKHgpCSJfIiB4CiAjZWxzZQogI2RlZmluZQlfQ19MQUJFTCh4KQl4CiAjZGVmaW5lIF9DX0xBQkVMX1NUUklORyh4KQl4CmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9pbmNsdWRlL3N5cy9wcmN0bC5oIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaW5jbHVkZS9zeXMvcHJjdGwuaAppbmRleCAzNTlkNjg0Li4wMGU1ODM3IDEwMDY0NAotLS0gYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9pbmNsdWRlL3N5cy9wcmN0bC5oCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2luY2x1ZGUvc3lzL3ByY3RsLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNkZWZpbmUgX1NZU19QUkNUTF9ICiAKICNpbmNsdWRlIDxsaW51eC9wcmN0bC5oPgorI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgogCiBfX0JFR0lOX0RFQ0xTCiAKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2luY2x1ZGUvc3lzL3V0aW1lLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9pbmNsdWRlL3N5cy91dGltZS5oCmluZGV4IDlmODgxMGUuLjkxOGQxNTMgMTAwNjQ0Ci0tLSBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2luY2x1ZGUvc3lzL3V0aW1lLmgKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaW5jbHVkZS9zeXMvdXRpbWUuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmbmRlZiBfU1lTX1VUSU1FX0hfCiAjZGVmaW5lIF9TWVNfVVRJTUVfSF8KIAorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L3V0aW1lLmg+CiAKICNlbmRpZiAvKiBfU1lTX1VUSU1FX0hfICovCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9pbmNsdWRlL3N5cy92ZnMuaCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2luY2x1ZGUvc3lzL3Zmcy5oCmluZGV4IDRhZGFmNWYuLjRlYzBlMGQgMTAwNjQ0Ci0tLSBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2luY2x1ZGUvc3lzL3Zmcy5oCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2luY2x1ZGUvc3lzL3Zmcy5oCkBAIC0zNCwyMCArMzQsNDIgQEAKIAogX19CRUdJTl9ERUNMUwogCi0vKiBub3RlOiB0aGlzIGNvcnJlc3BvbmRzIHRvIHRoZSBrZXJuZWwncyBzdGF0ZnM2NCB0eXBlICovCisvKiBUaGUga2VybmVsJ3MgX19rZXJuZWxfZnNpZF90IGhhcyBhICd2YWwnIG1lbWJlciBidXQgZ2xpYmMgdXNlcyAnX192YWwnLiAqLwordHlwZWRlZiBzdHJ1Y3QgeyBpbnQgX192YWxbMl07IH0gX19mc2lkX3Q7CisKKy8qIE91ciBzdHJ1Y3Qgc3RhdGZzIGNvcnJlc3BvbmRzIHRvIHRoZSBrZXJuZWwncyBzdGF0ZnM2NCB0eXBlLiAqLworI2lmZGVmIF9fbWlwc19fCiBzdHJ1Y3Qgc3RhdGZzIHsKLSAgICB1aW50MzJfdCAgICAgICAgZl90eXBlOwotICAgIHVpbnQzMl90ICAgICAgICBmX2JzaXplOwotICAgIHVpbnQ2NF90ICAgICAgICBmX2Jsb2NrczsKLSAgICB1aW50NjRfdCAgICAgICAgZl9iZnJlZTsKLSAgICB1aW50NjRfdCAgICAgICAgZl9iYXZhaWw7Ci0gICAgdWludDY0X3QgICAgICAgIGZfZmlsZXM7Ci0gICAgdWludDY0X3QgICAgICAgIGZfZmZyZWU7Ci0gICAgX19rZXJuZWxfZnNpZF90IGZfZnNpZDsKLSAgICB1aW50MzJfdCAgICAgICAgZl9uYW1lbGVuOwotICAgIHVpbnQzMl90ICAgICAgICBmX2Zyc2l6ZTsKLSAgICB1aW50MzJfdCAgICAgICAgZl9zcGFyZVs1XTsKKyAgICB1aW50MzJfdCBmX3R5cGU7CisgICAgdWludDMyX3QgZl9ic2l6ZTsKKyAgICB1aW50MzJfdCBmX2Zyc2l6ZTsKKyAgICB1aW50MzJfdCBfX3BhZDsKKyAgICB1aW50NjRfdCBmX2Jsb2NrczsKKyAgICB1aW50NjRfdCBmX2JmcmVlOworICAgIHVpbnQ2NF90IGZfZmlsZXM7CisgICAgdWludDY0X3QgZl9mZnJlZTsKKyAgICB1aW50NjRfdCBmX2JhdmFpbDsKKyAgICBfX2ZzaWRfdCBmX2ZzaWQ7CisgICAgdWludDMyX3QgZl9uYW1lbGVuOworICAgIHVpbnQzMl90IGZfZmxhZ3M7CisgICAgdWludDMyX3QgZl9zcGFyZVs1XTsKIH07CisjZWxzZQorc3RydWN0IHN0YXRmcyB7CisgICAgdWludDMyX3QgZl90eXBlOworICAgIHVpbnQzMl90IGZfYnNpemU7CisgICAgdWludDY0X3QgZl9ibG9ja3M7CisgICAgdWludDY0X3QgZl9iZnJlZTsKKyAgICB1aW50NjRfdCBmX2JhdmFpbDsKKyAgICB1aW50NjRfdCBmX2ZpbGVzOworICAgIHVpbnQ2NF90IGZfZmZyZWU7CisgICAgX19mc2lkX3QgZl9mc2lkOworICAgIHVpbnQzMl90IGZfbmFtZWxlbjsKKyAgICB1aW50MzJfdCBmX2Zyc2l6ZTsKKyAgICB1aW50MzJfdCBmX2ZsYWdzOworICAgIHVpbnQzMl90IGZfc3BhcmVbNF07Cit9OworI2VuZGlmCiAKICNkZWZpbmUgIEFERlNfU1VQRVJfTUFHSUMgICAgICAweGFkZjUKICNkZWZpbmUgIEFGRlNfU1VQRVJfTUFHSUMgICAgICAweEFERkYKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2luY2x1ZGUvc3lzL3dhaXQuaCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2luY2x1ZGUvc3lzL3dhaXQuaAppbmRleCA4YmExODM3Li5lNzIwYzJjIDEwMDY0NAotLS0gYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9pbmNsdWRlL3N5cy93YWl0LmgKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaW5jbHVkZS9zeXMvd2FpdC5oCkBAIC0zMiw2ICszMiw5IEBACiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAjaW5jbHVkZSA8c3lzL3Jlc291cmNlLmg+CiAjaW5jbHVkZSA8bGludXgvd2FpdC5oPgorI2luY2x1ZGUgPGFzbS91bmlzdGQuaD4KKyNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgorCiAKIF9fQkVHSU5fREVDTFMKIApAQCAtNDcsNyArNTAsMTAgQEAKIGV4dGVybiBwaWRfdCAgd2FpdChpbnQgKik7CiBleHRlcm4gcGlkX3QgIHdhaXRwaWQocGlkX3QsIGludCAqLCBpbnQpOwogZXh0ZXJuIHBpZF90ICB3YWl0MyhpbnQgKiwgaW50LCBzdHJ1Y3QgcnVzYWdlICopOwotZXh0ZXJuIHBpZF90ICB3YWl0NChwaWRfdCwgaW50ICosIGludCwgc3RydWN0IHJ1c2FnZSAqKTsKK3N0YXRpYyBfX2lubGluZV9fIHBpZF90IHdhaXQ0KHBpZF90IHBpZCwgaW50ICpzdGF0dXMsIGludCBvcHRpb25zLCBzdHJ1Y3QgcnVzYWdlICpydXNhZ2UpCit7CisgIHJldHVybiAocGlkX3Qpc3lzY2FsbChfX05SX3dhaXQ0LCBwaWQsIHN0YXR1cywgb3B0aW9ucywgcnVzYWdlKTsKK30KIAogX19FTkRfREVDTFMKIApkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaW5jbHVkZS90aW1lLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9pbmNsdWRlL3RpbWUuaAppbmRleCBjYWY2YWE3Li44N2Y1MzE0IDEwMDY0NAotLS0gYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9pbmNsdWRlL3RpbWUuaAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9pbmNsdWRlL3RpbWUuaApAQCAtNjcsNyArNjcsNyBAQAogZXh0ZXJuIGNoYXIqIGFzY3RpbWVfcihjb25zdCBzdHJ1Y3QgdG0qIGEsIGNoYXIqIGJ1Zik7CiAKIC8qIFJldHVybiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIFRJTUUxIGFuZCBUSU1FMC4gICovCi1leHRlcm4gZG91YmxlIGRpZmZ0aW1lICh0aW1lX3QgX190aW1lMSwgdGltZV90IF9fdGltZTApOworZXh0ZXJuIGRvdWJsZSBkaWZmdGltZSAodGltZV90IF9fdGltZTEsIHRpbWVfdCBfX3RpbWUwKSBfX05ES19GUEFCSV9fOwogZXh0ZXJuIHRpbWVfdCBta3RpbWUgKHN0cnVjdCB0bSAqYSk7CiAKIGV4dGVybiBzdHJ1Y3QgdG0qICBsb2NhbHRpbWUoY29uc3QgdGltZV90ICp0KTsKQEAgLTEwNSw4ICsxMDUsMTIgQEAKICNkZWZpbmUgQ0xPQ0tfTU9OT1RPTklDICAgICAgICAgICAgMQogI2RlZmluZSBDTE9DS19QUk9DRVNTX0NQVVRJTUVfSUQgICAyCiAjZGVmaW5lIENMT0NLX1RIUkVBRF9DUFVUSU1FX0lEICAgIDMKLSNkZWZpbmUgQ0xPQ0tfUkVBTFRJTUVfSFIgICAgICAgICAgNAotI2RlZmluZSBDTE9DS19NT05PVE9OSUNfSFIgICAgICAgICA1CisjZGVmaW5lIENMT0NLX01PTk9UT05JQ19SQVcgICAgICAgIDQKKyNkZWZpbmUgQ0xPQ0tfUkVBTFRJTUVfQ09BUlNFICAgICAgNQorI2RlZmluZSBDTE9DS19NT05PVE9OSUNfQ09BUlNFICAgICA2CisjZGVmaW5lIENMT0NLX0JPT1RUSU1FICAgICAgICAgICAgIDcKKyNkZWZpbmUgQ0xPQ0tfUkVBTFRJTUVfQUxBUk0gICAgICAgOAorI2RlZmluZSBDTE9DS19CT09UVElNRV9BTEFSTSAgICAgICA5CiAKIGV4dGVybiBpbnQgIHRpbWVyX2NyZWF0ZShpbnQsIHN0cnVjdCBzaWdldmVudCosIHRpbWVyX3QqKTsKIGV4dGVybiBpbnQgIHRpbWVyX2RlbGV0ZSh0aW1lcl90KTsKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2luY2x1ZGUvd2NoYXIuaCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC0zL2luY2x1ZGUvd2NoYXIuaAppbmRleCA1NzVkYTRkLi4wZTYxODU5IDEwMDY0NAotLS0gYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtMy9pbmNsdWRlL3djaGFyLmgKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTMvaW5jbHVkZS93Y2hhci5oCkBAIC0xMzQsNyArMTM0LDcgQEAKIGV4dGVybiBzaXplX3QgICAgICAgICAgICB3Y3NydG9tYnMoY2hhciAqLCBjb25zdCB3Y2hhcl90ICoqLCBzaXplX3QsIG1ic3RhdGVfdCAqKTsKIGV4dGVybiBzaXplX3QgICAgICAgICAgICB3Y3NzcG4oY29uc3Qgd2NoYXJfdCAqLCBjb25zdCB3Y2hhcl90ICopOwogZXh0ZXJuIHdjaGFyX3QgICAgICAgICAgKndjc3N0cihjb25zdCB3Y2hhcl90ICosIGNvbnN0IHdjaGFyX3QgKik7Ci1leHRlcm4gZG91YmxlICAgICAgICAgICAgd2NzdG9kKGNvbnN0IHdjaGFyX3QgKiwgd2NoYXJfdCAqKik7CitleHRlcm4gZG91YmxlICAgICAgICAgICAgd2NzdG9kKGNvbnN0IHdjaGFyX3QgKiwgd2NoYXJfdCAqKikgX19OREtfRlBBQklfXzsKIGV4dGVybiB3Y2hhcl90ICAgICAgICAgICp3Y3N0b2sod2NoYXJfdCAqLCBjb25zdCB3Y2hhcl90ICosIHdjaGFyX3QgKiopOwogZXh0ZXJuIGxvbmcgaW50ICAgICAgICAgIHdjc3RvbChjb25zdCB3Y2hhcl90ICosIHdjaGFyX3QgKiosIGludCk7CiBleHRlcm4gdW5zaWduZWQgbG9uZyBpbnQgd2NzdG91bChjb25zdCB3Y2hhcl90ICosIHdjaGFyX3QgKiosIGludCk7CmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtNC9pbmNsdWRlL0dMRVMvZ2xleHQuaCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC00L2luY2x1ZGUvR0xFUy9nbGV4dC5oCmluZGV4IDY1YWI1ZTQuLjAxNTE2NWYgMTAwNjQ0Ci0tLSBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC00L2luY2x1ZGUvR0xFUy9nbGV4dC5oCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC00L2luY2x1ZGUvR0xFUy9nbGV4dC5oCkBAIC0zLDYgKzMsOCBAQAogCiAvKiAkUmV2aXNpb246IDEwOTY1ICQgb24gJERhdGU6OiAyMDEwLTA0LTA5IDAyOjExOjI5IC0wNzAwICMkICovCiAKKyNpbmNsdWRlIDxHTEVTL2dsLmg+CisKICNpZmRlZiBfX2NwbHVzcGx1cwogZXh0ZXJuICJDIiB7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC00L2luY2x1ZGUvS0hSL2tocnBsYXRmb3JtLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtNC9pbmNsdWRlL0tIUi9raHJwbGF0Zm9ybS5oCmluZGV4IDc1YmM1NTEuLjJiY2E0NDYgMTAwNjQ0Ci0tLSBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC00L2luY2x1ZGUvS0hSL2tocnBsYXRmb3JtLmgKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTQvaW5jbHVkZS9LSFIva2hycGxhdGZvcm0uaApAQCAtOTIsNyArOTIsOCBAQAogI2VsaWYgZGVmaW5lZCAoX19TWU1CSUFOMzJfXykKICMgICBkZWZpbmUgS0hST05PU19BUElDQUxMIElNUE9SVF9DCiAjZWxpZiBkZWZpbmVkKF9fQU5EUk9JRF9fKQotIyAgIGRlZmluZSBLSFJPTk9TX0FQSUNBTEwgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKKyMgICBpbmNsdWRlIDxzeXMvY2RlZnMuaD4KKyMgICBkZWZpbmUgS0hST05PU19BUElDQUxMIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpIF9fTkRLX0ZQQUJJX18KICNlbHNlCiAjICAgZGVmaW5lIEtIUk9OT1NfQVBJQ0FMTAogI2VuZGlmCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtNS9pbmNsdWRlL0dMRVMyL2dsMmV4dC5oIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTUvaW5jbHVkZS9HTEVTMi9nbDJleHQuaAppbmRleCA5ZGI0ZTI1Li43OTNlMGMyIDEwMDY0NAotLS0gYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtNS9pbmNsdWRlL0dMRVMyL2dsMmV4dC5oCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC01L2luY2x1ZGUvR0xFUzIvZ2wyZXh0LmgKQEAgLTMsNiArMyw4IEBACiAKIC8qICRSZXZpc2lvbjogMTA5NjkgJCBvbiAkRGF0ZTo6IDIwMTAtMDQtMDkgMDI6Mjc6MTUgLTA3MDAgIyQgKi8KIAorI2luY2x1ZGUgPEdMRVMyL2dsMi5oPgorCiAjaWZkZWYgX19jcGx1c3BsdXMKIGV4dGVybiAiQyIgewogI2VuZGlmCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtNS9pbmNsdWRlL3B0aHJlYWQuaCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC01L2luY2x1ZGUvcHRocmVhZC5oCmluZGV4IGJhNDBmYTEuLmIzZTBmOWYgMTAwNjQ0Ci0tLSBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC01L2luY2x1ZGUvcHRocmVhZC5oCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC01L2luY2x1ZGUvcHRocmVhZC5oCkBAIC0xMzgsNyArMTM4LDkgQEAKIAogaW50IHB0aHJlYWRfY3JlYXRlKHB0aHJlYWRfdCAqdGhyZWFkLCBwdGhyZWFkX2F0dHJfdCBjb25zdCAqIGF0dHIsCiAgICAgICAgICAgICAgICAgICAgdm9pZCAqKCpzdGFydF9yb3V0aW5lKSh2b2lkICopLCB2b2lkICogYXJnKTsKLXZvaWQgcHRocmVhZF9leGl0KHZvaWQgKiByZXR2YWwpOworCitfX25vcmV0dXJuIHZvaWQgcHRocmVhZF9leGl0KHZvaWQgKiByZXR2YWwpOworCiBpbnQgcHRocmVhZF9qb2luKHB0aHJlYWRfdCB0aGlkLCB2b2lkICoqIHJldF92YWwpOwogaW50IHB0aHJlYWRfZGV0YWNoKHB0aHJlYWRfdCAgdGhpZCk7CiAKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC04L2luY2x1ZGUvZnRzLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOC9pbmNsdWRlL2Z0cy5oCmluZGV4IGRhMjZhODguLmQxOGZjMmMgMTAwNjQ0Ci0tLSBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC04L2luY2x1ZGUvZnRzLmgKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTgvaW5jbHVkZS9mdHMuaApAQCAtMzUsNiArMzUsOCBAQAogI2lmbmRlZglfRlRTX0hfCiAjZGVmaW5lCV9GVFNfSF8KIAorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorCiB0eXBlZGVmIHN0cnVjdCB7CiAJc3RydWN0IF9mdHNlbnQgKmZ0c19jdXI7CS8qIGN1cnJlbnQgbm9kZSAqLwogCXN0cnVjdCBfZnRzZW50ICpmdHNfY2hpbGQ7CS8qIGxpbmtlZCBsaXN0IG9mIGNoaWxkcmVuICovCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOC9pbmNsdWRlL3B0aHJlYWQuaCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC04L2luY2x1ZGUvcHRocmVhZC5oCmluZGV4IDc3NDFmY2YuLjdkZTM2MzQgMTAwNjQ0Ci0tLSBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC04L2luY2x1ZGUvcHRocmVhZC5oCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC04L2luY2x1ZGUvcHRocmVhZC5oCkBAIC0xMzgsNyArMTM4LDkgQEAKIAogaW50IHB0aHJlYWRfY3JlYXRlKHB0aHJlYWRfdCAqdGhyZWFkLCBwdGhyZWFkX2F0dHJfdCBjb25zdCAqIGF0dHIsCiAgICAgICAgICAgICAgICAgICAgdm9pZCAqKCpzdGFydF9yb3V0aW5lKSh2b2lkICopLCB2b2lkICogYXJnKTsKLXZvaWQgcHRocmVhZF9leGl0KHZvaWQgKiByZXR2YWwpOworCitfX25vcmV0dXJuIHZvaWQgcHRocmVhZF9leGl0KHZvaWQgKiByZXR2YWwpOworCiBpbnQgcHRocmVhZF9qb2luKHB0aHJlYWRfdCB0aGlkLCB2b2lkICoqIHJldF92YWwpOwogaW50IHB0aHJlYWRfZGV0YWNoKHB0aHJlYWRfdCAgdGhpZCk7CiAKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC04L2luY2x1ZGUvc3RkbGliLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOC9pbmNsdWRlL3N0ZGxpYi5oCmluZGV4IGRkYWYzMmMuLmU4OWRiNTYgMTAwNjQ0Ci0tLSBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC04L2luY2x1ZGUvc3RkbGliLmgKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTgvaW5jbHVkZS9zdGRsaWIuaApAQCAtNTcsNiArNTcsNyBAQAogZXh0ZXJuIGludCB1bnNldGVudihjb25zdCBjaGFyICopOwogZXh0ZXJuIGludCBjbGVhcmVudih2b2lkKTsKIAorZXh0ZXJuIGNoYXIgKm1rZHRlbXAoY2hhciAqKTsKIGV4dGVybiBjaGFyICpta3RlbXAgKGNoYXIgKik7CiBleHRlcm4gaW50IG1rc3RlbXAgKGNoYXIgKik7CiAKQEAgLTY0LDggKzY1LDkgQEAKIGV4dGVybiBsb25nIGxvbmcgc3RydG9sbChjb25zdCBjaGFyICosIGNoYXIgKiosIGludCk7CiBleHRlcm4gdW5zaWduZWQgbG9uZyBzdHJ0b3VsKGNvbnN0IGNoYXIgKiwgY2hhciAqKiwgaW50KTsKIGV4dGVybiB1bnNpZ25lZCBsb25nIGxvbmcgc3RydG91bGwoY29uc3QgY2hhciAqLCBjaGFyICoqLCBpbnQpOwotZXh0ZXJuIGRvdWJsZSBzdHJ0b2QoY29uc3QgY2hhciAqbnB0ciwgY2hhciAqKmVuZHB0cik7CitleHRlcm4gZG91YmxlIHN0cnRvZChjb25zdCBjaGFyICpucHRyLCBjaGFyICoqZW5kcHRyKSBfX05ES19GUEFCSV9fOwogCitfX05ES19GUEFCSV9fCiBzdGF0aWMgX19pbmxpbmVfXyBmbG9hdCBzdHJ0b2YoY29uc3QgY2hhciAqbnB0ciwgY2hhciAqKmVuZHB0cikKIHsKICAgICByZXR1cm4gKGZsb2F0KXN0cnRvZChucHRyLCBlbmRwdHIpOwpAQCAtNzUsNiArNzcsNyBAQAogZXh0ZXJuIGxvbmcgYXRvbChjb25zdCBjaGFyICopOwogZXh0ZXJuIGxvbmcgbG9uZyBhdG9sbChjb25zdCBjaGFyICopOwogCisgX19OREtfRlBBQklfXwogc3RhdGljIF9faW5saW5lX18gZG91YmxlIGF0b2YoY29uc3QgY2hhciAqbnB0cikKIHsKICAgICByZXR1cm4gKHN0cnRvZChucHRyLCBOVUxMKSk7CkBAIC0xMDYsOCArMTA5LDggQEAKIGV4dGVybiBsb25nIG5yYW5kNDgodW5zaWduZWQgc2hvcnQgKik7CiBleHRlcm4gbG9uZyBscmFuZDQ4KHZvaWQpOwogZXh0ZXJuIHVuc2lnbmVkIHNob3J0ICpzZWVkNDgodW5zaWduZWQgc2hvcnQqKTsKLWV4dGVybiBkb3VibGUgZXJhbmQ0OCh1bnNpZ25lZCBzaG9ydCB4c3ViaVszXSk7Ci1leHRlcm4gZG91YmxlIGRyYW5kNDgodm9pZCk7CitleHRlcm4gZG91YmxlIGVyYW5kNDgodW5zaWduZWQgc2hvcnQgeHN1YmlbM10pIF9fTkRLX0ZQQUJJX187CitleHRlcm4gZG91YmxlIGRyYW5kNDgodm9pZCkgX19OREtfRlBBQklfXzsKIGV4dGVybiB2b2lkIHNyYW5kNDgobG9uZyk7CiBleHRlcm4gdW5zaWduZWQgaW50IGFyYzRyYW5kb20odm9pZCk7CiBleHRlcm4gdm9pZCBhcmM0cmFuZG9tX3N0aXIodm9pZCk7CmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOC9pbmNsdWRlL3RpbWUuaCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC04L2luY2x1ZGUvdGltZS5oCmluZGV4IDYxNjNjNmQuLjM4ZTg5ZmQgMTAwNjQ0Ci0tLSBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC04L2luY2x1ZGUvdGltZS5oCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC04L2luY2x1ZGUvdGltZS5oCkBAIC02Nyw3ICs2Nyw3IEBACiBleHRlcm4gY2hhciogYXNjdGltZV9yKGNvbnN0IHN0cnVjdCB0bSogYSwgY2hhciogYnVmKTsKIAogLyogUmV0dXJuIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gVElNRTEgYW5kIFRJTUUwLiAgKi8KLWV4dGVybiBkb3VibGUgZGlmZnRpbWUgKHRpbWVfdCBfX3RpbWUxLCB0aW1lX3QgX190aW1lMCk7CitleHRlcm4gZG91YmxlIGRpZmZ0aW1lICh0aW1lX3QgX190aW1lMSwgdGltZV90IF9fdGltZTApIF9fTkRLX0ZQQUJJX187CiBleHRlcm4gdGltZV90IG1rdGltZSAoc3RydWN0IHRtICphKTsKIAogZXh0ZXJuIHN0cnVjdCB0bSogIGxvY2FsdGltZShjb25zdCB0aW1lX3QgKnQpOwpAQCAtOTQsMTUgKzk0LDIxIEBACiBleHRlcm4gY2xvY2tfdCAgIGNsb2NrKHZvaWQpOwogCiAvKiBCSU9OSUM6IGV4dHJhIGxpbnV4IGNsb2NrIGdvb2RpZXMgKi8KLWV4dGVybiBpbnQgY2xvY2tfZ2V0cmVzKGludCwgc3RydWN0IHRpbWVzcGVjICopOwotZXh0ZXJuIGludCBjbG9ja19nZXR0aW1lKGludCwgc3RydWN0IHRpbWVzcGVjICopOworZXh0ZXJuIGludCBjbG9ja19nZXRyZXMoY2xvY2tpZF90LCBzdHJ1Y3QgdGltZXNwZWMgKik7CitleHRlcm4gaW50IGNsb2NrX2dldHRpbWUoY2xvY2tpZF90LCBzdHJ1Y3QgdGltZXNwZWMgKik7CitleHRlcm4gaW50IGNsb2NrX3NldHRpbWUoY2xvY2tpZF90LCBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKik7CitleHRlcm4gaW50IGNsb2NrX25hbm9zbGVlcChjbG9ja2lkX3QsIGludCwgY29uc3Qgc3RydWN0IHRpbWVzcGVjICosIHN0cnVjdCB0aW1lc3BlYyAqKTsKIAogI2RlZmluZSBDTE9DS19SRUFMVElNRSAgICAgICAgICAgICAwCiAjZGVmaW5lIENMT0NLX01PTk9UT05JQyAgICAgICAgICAgIDEKICNkZWZpbmUgQ0xPQ0tfUFJPQ0VTU19DUFVUSU1FX0lEICAgMgogI2RlZmluZSBDTE9DS19USFJFQURfQ1BVVElNRV9JRCAgICAzCi0jZGVmaW5lIENMT0NLX1JFQUxUSU1FX0hSICAgICAgICAgIDQKLSNkZWZpbmUgQ0xPQ0tfTU9OT1RPTklDX0hSICAgICAgICAgNQorI2RlZmluZSBDTE9DS19NT05PVE9OSUNfUkFXICAgICAgICA0CisjZGVmaW5lIENMT0NLX1JFQUxUSU1FX0NPQVJTRSAgICAgIDUKKyNkZWZpbmUgQ0xPQ0tfTU9OT1RPTklDX0NPQVJTRSAgICAgNgorI2RlZmluZSBDTE9DS19CT09UVElNRSAgICAgICAgICAgICA3CisjZGVmaW5lIENMT0NLX1JFQUxUSU1FX0FMQVJNICAgICAgIDgKKyNkZWZpbmUgQ0xPQ0tfQk9PVFRJTUVfQUxBUk0gICAgICAgOQogCiBleHRlcm4gaW50ICB0aW1lcl9jcmVhdGUoaW50LCBzdHJ1Y3Qgc2lnZXZlbnQqLCB0aW1lcl90Kik7CiBleHRlcm4gaW50ICB0aW1lcl9kZWxldGUodGltZXJfdCk7CmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOC9pbmNsdWRlL3djaGFyLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOC9pbmNsdWRlL3djaGFyLmgKaW5kZXggNDUzYjZkNS4uYjlkZmE2NiAxMDA2NDQKLS0tIGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTgvaW5jbHVkZS93Y2hhci5oCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC04L2luY2x1ZGUvd2NoYXIuaApAQCAtMTQwLDcgKzE0MCw3IEBACiBleHRlcm4gc2l6ZV90ICAgICAgICAgICAgd2NzcnRvbWJzKGNoYXIgKiwgY29uc3Qgd2NoYXJfdCAqKiwgc2l6ZV90LCBtYnN0YXRlX3QgKik7CiBleHRlcm4gc2l6ZV90ICAgICAgICAgICAgd2Nzc3BuKGNvbnN0IHdjaGFyX3QgKiwgY29uc3Qgd2NoYXJfdCAqKTsKIGV4dGVybiB3Y2hhcl90ICAgICAgICAgICp3Y3NzdHIoY29uc3Qgd2NoYXJfdCAqLCBjb25zdCB3Y2hhcl90ICopOwotZXh0ZXJuIGRvdWJsZSAgICAgICAgICAgIHdjc3RvZChjb25zdCB3Y2hhcl90ICosIHdjaGFyX3QgKiopOworZXh0ZXJuIGRvdWJsZSAgICAgICAgICAgIHdjc3RvZChjb25zdCB3Y2hhcl90ICosIHdjaGFyX3QgKiopIF9fTkRLX0ZQQUJJX187CiBleHRlcm4gd2NoYXJfdCAgICAgICAgICAqd2NzdG9rKHdjaGFyX3QgKiwgY29uc3Qgd2NoYXJfdCAqLCB3Y2hhcl90ICoqKTsKIGV4dGVybiBsb25nIGludCAgICAgICAgICB3Y3N0b2woY29uc3Qgd2NoYXJfdCAqLCB3Y2hhcl90ICoqLCBpbnQpOwogZXh0ZXJuIHNpemVfdCAgICAgICAgICAgIHdjc3RvbWJzKGNoYXIgKiwgY29uc3Qgd2NoYXJfdCAqLCBzaXplX3QpOwpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTgvc2FtcGxlcy9iaXRtYXAtcGxhc21hL3NyYy9jb20vZXhhbXBsZS9wbGFzbWEvUGxhc21hLmphdmEgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOC9zYW1wbGVzL2JpdG1hcC1wbGFzbWEvc3JjL2NvbS9leGFtcGxlL3BsYXNtYS9QbGFzbWEuamF2YQppbmRleCBmMDkzOGQxLi4yODFkM2VmIDEwMDY0NAotLS0gYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOC9zYW1wbGVzL2JpdG1hcC1wbGFzbWEvc3JjL2NvbS9leGFtcGxlL3BsYXNtYS9QbGFzbWEuamF2YQorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOC9zYW1wbGVzL2JpdG1hcC1wbGFzbWEvc3JjL2NvbS9leGFtcGxlL3BsYXNtYS9QbGFzbWEuamF2YQpAQCAtMjEsNiArMjEsOCBAQAogaW1wb3J0IGFuZHJvaWQudmlldy5WaWV3OwogaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuQml0bWFwOwogaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuQ2FudmFzOworaW1wb3J0IGFuZHJvaWQudmlldy5EaXNwbGF5OworaW1wb3J0IGFuZHJvaWQudmlldy5XaW5kb3dNYW5hZ2VyOwogCiBwdWJsaWMgY2xhc3MgUGxhc21hIGV4dGVuZHMgQWN0aXZpdHkKIHsKQEAgLTI5LDcgKzMxLDggQEAKICAgICBwdWJsaWMgdm9pZCBvbkNyZWF0ZShCdW5kbGUgc2F2ZWRJbnN0YW5jZVN0YXRlKQogICAgIHsKICAgICAgICAgc3VwZXIub25DcmVhdGUoc2F2ZWRJbnN0YW5jZVN0YXRlKTsKLSAgICAgICAgc2V0Q29udGVudFZpZXcobmV3IFBsYXNtYVZpZXcodGhpcykpOworICAgICAgICBEaXNwbGF5IGRpc3BsYXkgPSBnZXRXaW5kb3dNYW5hZ2VyKCkuZ2V0RGVmYXVsdERpc3BsYXkoKTsKKyAgICAgICAgc2V0Q29udGVudFZpZXcobmV3IFBsYXNtYVZpZXcodGhpcywgZGlzcGxheS5nZXRXaWR0aCgpLCBkaXNwbGF5LmdldEhlaWdodCgpKSk7CiAgICAgfQogCiAgICAgLyogbG9hZCBvdXIgbmF0aXZlIGxpYnJhcnkgKi8KQEAgLTQ1LDEzICs0OCw5IEBACiAgICAgLyogaW1wbGVtZW50ZW5kIGJ5IGxpYnBsYXNtYS5zbyAqLwogICAgIHByaXZhdGUgc3RhdGljIG5hdGl2ZSB2b2lkIHJlbmRlclBsYXNtYShCaXRtYXAgIGJpdG1hcCwgbG9uZyB0aW1lX21zKTsKIAotICAgIHB1YmxpYyBQbGFzbWFWaWV3KENvbnRleHQgY29udGV4dCkgeworICAgIHB1YmxpYyBQbGFzbWFWaWV3KENvbnRleHQgY29udGV4dCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KSB7CiAgICAgICAgIHN1cGVyKGNvbnRleHQpOwotCi0gICAgICAgIGZpbmFsIGludCBXID0gMjAwOwotICAgICAgICBmaW5hbCBpbnQgSCA9IDIwMDsKLQotICAgICAgICBtQml0bWFwID0gQml0bWFwLmNyZWF0ZUJpdG1hcChXLCBILCBCaXRtYXAuQ29uZmlnLlJHQl81NjUpOworICAgICAgICBtQml0bWFwID0gQml0bWFwLmNyZWF0ZUJpdG1hcCh3aWR0aCwgaGVpZ2h0LCBCaXRtYXAuQ29uZmlnLlJHQl81NjUpOwogICAgICAgICBtU3RhcnRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLWFhcmNoNjQvaW5jbHVkZS9hc20tZ2VuZXJpYy9iaXRzcGVybG9uZy5oIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1hYXJjaDY0L2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0c3BlcmxvbmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZjBhMGZjCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1hYXJjaDY0L2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0c3BlcmxvbmcuaApAQCAtMCwwICsxLDI1IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqKioKKyAqKiogICBUaGlzIGhlYWRlciB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBhIExpbnV4IGtlcm5lbCBoZWFkZXIKKyAqKiogICBvZiB0aGUgc2FtZSBuYW1lLCB0byBtYWtlIGluZm9ybWF0aW9uIG5lY2Vzc2FyeSBmb3IgdXNlcnNwYWNlIHRvCisgKioqICAgY2FsbCBpbnRvIHRoZSBrZXJuZWwgYXZhaWxhYmxlIHRvIGxpYmMuICBJdCBjb250YWlucyBvbmx5IGNvbnN0YW50cywKKyAqKiogICBzdHJ1Y3R1cmVzLCBhbmQgbWFjcm9zIGdlbmVyYXRlZCBmcm9tIHRoZSBvcmlnaW5hbCBoZWFkZXIsIGFuZCB0aHVzLAorICoqKiAgIGNvbnRhaW5zIG5vIGNvcHlyaWdodGFibGUgaW5mb3JtYXRpb24uCisgKioqCisgKioqICAgVG8gZWRpdCB0aGUgY29udGVudCBvZiB0aGlzIGhlYWRlciwgbW9kaWZ5IHRoZSBjb3JyZXNwb25kaW5nCisgKioqICAgc291cmNlIGZpbGUgKGUuZy4gdW5kZXIgZXh0ZXJuYWwva2VybmVsLWhlYWRlcnMvb3JpZ2luYWwvKSB0aGVuCisgKioqICAgcnVuIGJpb25pYy9saWJjL2tlcm5lbC90b29scy91cGRhdGVfYWxsLnB5CisgKioqCisgKioqICAgQW55IG1hbnVhbCBjaGFuZ2UgaGVyZSB3aWxsIGJlIGxvc3QgdGhlIG5leHQgdGltZSB0aGlzIHNjcmlwdCB3aWxsCisgKioqICAgYmUgcnVuLiBZb3UndmUgYmVlbiB3YXJuZWQhCisgKioqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaWZuZGVmIF9VQVBJX19BU01fR0VORVJJQ19CSVRTX1BFUl9MT05HCisjZGVmaW5lIF9VQVBJX19BU01fR0VORVJJQ19CSVRTX1BFUl9MT05HCisjaWZuZGVmIF9fQklUU19QRVJfTE9ORworI2RlZmluZSBfX0JJVFNfUEVSX0xPTkcgMzIKKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCisjZW5kaWYKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1hYXJjaDY0L2luY2x1ZGUvYXNtLWdlbmVyaWMvaW50LWxsNjQuaCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2FyY2gtYWFyY2g2NC9pbmNsdWRlL2FzbS1nZW5lcmljL2ludC1sbDY0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzYyMmM0OQotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2FyY2gtYWFyY2g2NC9pbmNsdWRlL2FzbS1nZW5lcmljL2ludC1sbDY0LmgKQEAgLTAsMCArMSw0MSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKioqCisgKioqICAgVGhpcyBoZWFkZXIgd2FzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gYSBMaW51eCBrZXJuZWwgaGVhZGVyCisgKioqICAgb2YgdGhlIHNhbWUgbmFtZSwgdG8gbWFrZSBpbmZvcm1hdGlvbiBuZWNlc3NhcnkgZm9yIHVzZXJzcGFjZSB0bworICoqKiAgIGNhbGwgaW50byB0aGUga2VybmVsIGF2YWlsYWJsZSB0byBsaWJjLiAgSXQgY29udGFpbnMgb25seSBjb25zdGFudHMsCisgKioqICAgc3RydWN0dXJlcywgYW5kIG1hY3JvcyBnZW5lcmF0ZWQgZnJvbSB0aGUgb3JpZ2luYWwgaGVhZGVyLCBhbmQgdGh1cywKKyAqKiogICBjb250YWlucyBubyBjb3B5cmlnaHRhYmxlIGluZm9ybWF0aW9uLgorICoqKgorICoqKiAgIFRvIGVkaXQgdGhlIGNvbnRlbnQgb2YgdGhpcyBoZWFkZXIsIG1vZGlmeSB0aGUgY29ycmVzcG9uZGluZworICoqKiAgIHNvdXJjZSBmaWxlIChlLmcuIHVuZGVyIGV4dGVybmFsL2tlcm5lbC1oZWFkZXJzL29yaWdpbmFsLykgdGhlbgorICoqKiAgIHJ1biBiaW9uaWMvbGliYy9rZXJuZWwvdG9vbHMvdXBkYXRlX2FsbC5weQorICoqKgorICoqKiAgIEFueSBtYW51YWwgY2hhbmdlIGhlcmUgd2lsbCBiZSBsb3N0IHRoZSBuZXh0IHRpbWUgdGhpcyBzY3JpcHQgd2lsbAorICoqKiAgIGJlIHJ1bi4gWW91J3ZlIGJlZW4gd2FybmVkIQorICoqKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2lmbmRlZiBfVUFQSV9BU01fR0VORVJJQ19JTlRfTEw2NF9ICisjZGVmaW5lIF9VQVBJX0FTTV9HRU5FUklDX0lOVF9MTDY0X0gKKyNpbmNsdWRlIDxhc20vYml0c3BlcmxvbmcuaD4KKyNpZm5kZWYgX19BU1NFTUJMWV9fCisvKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLwordHlwZWRlZiBfX3NpZ25lZF9fIGNoYXIgX19zODsKK3R5cGVkZWYgdW5zaWduZWQgY2hhciBfX3U4OwordHlwZWRlZiBfX3NpZ25lZF9fIHNob3J0IF9fczE2OwordHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBfX3UxNjsKKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCit0eXBlZGVmIF9fc2lnbmVkX18gaW50IF9fczMyOwordHlwZWRlZiB1bnNpZ25lZCBpbnQgX191MzI7CisjaWZkZWYgX19HTlVDX18KK19fZXh0ZW5zaW9uX18gdHlwZWRlZiBfX3NpZ25lZF9fIGxvbmcgbG9uZyBfX3M2NDsKKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCitfX2V4dGVuc2lvbl9fIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIF9fdTY0OworI2Vsc2UKK3R5cGVkZWYgX19zaWduZWRfXyBsb25nIGxvbmcgX19zNjQ7Cit0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3U2NDsKKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLWFhcmNoNjQvaW5jbHVkZS9hc20tZ2VuZXJpYy9wb3NpeF90eXBlcy5oIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1hYXJjaDY0L2luY2x1ZGUvYXNtLWdlbmVyaWMvcG9zaXhfdHlwZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNTE5YWZmCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1hYXJjaDY0L2luY2x1ZGUvYXNtLWdlbmVyaWMvcG9zaXhfdHlwZXMuaApAQCAtMCwwICsxLDEwMCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKioqCisgKioqICAgVGhpcyBoZWFkZXIgd2FzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gYSBMaW51eCBrZXJuZWwgaGVhZGVyCisgKioqICAgb2YgdGhlIHNhbWUgbmFtZSwgdG8gbWFrZSBpbmZvcm1hdGlvbiBuZWNlc3NhcnkgZm9yIHVzZXJzcGFjZSB0bworICoqKiAgIGNhbGwgaW50byB0aGUga2VybmVsIGF2YWlsYWJsZSB0byBsaWJjLiAgSXQgY29udGFpbnMgb25seSBjb25zdGFudHMsCisgKioqICAgc3RydWN0dXJlcywgYW5kIG1hY3JvcyBnZW5lcmF0ZWQgZnJvbSB0aGUgb3JpZ2luYWwgaGVhZGVyLCBhbmQgdGh1cywKKyAqKiogICBjb250YWlucyBubyBjb3B5cmlnaHRhYmxlIGluZm9ybWF0aW9uLgorICoqKgorICoqKiAgIFRvIGVkaXQgdGhlIGNvbnRlbnQgb2YgdGhpcyBoZWFkZXIsIG1vZGlmeSB0aGUgY29ycmVzcG9uZGluZworICoqKiAgIHNvdXJjZSBmaWxlIChlLmcuIHVuZGVyIGV4dGVybmFsL2tlcm5lbC1oZWFkZXJzL29yaWdpbmFsLykgdGhlbgorICoqKiAgIHJ1biBiaW9uaWMvbGliYy9rZXJuZWwvdG9vbHMvdXBkYXRlX2FsbC5weQorICoqKgorICoqKiAgIEFueSBtYW51YWwgY2hhbmdlIGhlcmUgd2lsbCBiZSBsb3N0IHRoZSBuZXh0IHRpbWUgdGhpcyBzY3JpcHQgd2lsbAorICoqKiAgIGJlIHJ1bi4gWW91J3ZlIGJlZW4gd2FybmVkIQorICoqKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2lmbmRlZiBfX0FTTV9HRU5FUklDX1BPU0lYX1RZUEVTX0gKKyNkZWZpbmUgX19BU01fR0VORVJJQ19QT1NJWF9UWVBFU19ICisjaW5jbHVkZSA8YXNtL2JpdHNwZXJsb25nLmg+CisjaWZuZGVmIF9fa2VybmVsX2xvbmdfdAorLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KK3R5cGVkZWYgbG9uZyBfX2tlcm5lbF9sb25nX3Q7Cit0eXBlZGVmIHVuc2lnbmVkIGxvbmcgX19rZXJuZWxfdWxvbmdfdDsKKyNlbmRpZgorI2lmbmRlZiBfX2tlcm5lbF9pbm9fdAorLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KK3R5cGVkZWYgX19rZXJuZWxfdWxvbmdfdCBfX2tlcm5lbF9pbm9fdDsKKyNlbmRpZgorI2lmbmRlZiBfX2tlcm5lbF9tb2RlX3QKK3R5cGVkZWYgdW5zaWduZWQgaW50IF9fa2VybmVsX21vZGVfdDsKKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCisjZW5kaWYKKyNpZm5kZWYgX19rZXJuZWxfcGlkX3QKK3R5cGVkZWYgaW50IF9fa2VybmVsX3BpZF90OworI2VuZGlmCisvKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLworI2lmbmRlZiBfX2tlcm5lbF9pcGNfcGlkX3QKK3R5cGVkZWYgaW50IF9fa2VybmVsX2lwY19waWRfdDsKKyNlbmRpZgorI2lmbmRlZiBfX2tlcm5lbF91aWRfdAorLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KK3R5cGVkZWYgdW5zaWduZWQgaW50IF9fa2VybmVsX3VpZF90OwordHlwZWRlZiB1bnNpZ25lZCBpbnQgX19rZXJuZWxfZ2lkX3Q7CisjZW5kaWYKKyNpZm5kZWYgX19rZXJuZWxfc3VzZWNvbmRzX3QKKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCit0eXBlZGVmIF9fa2VybmVsX2xvbmdfdCBfX2tlcm5lbF9zdXNlY29uZHNfdDsKKyNlbmRpZgorI2lmbmRlZiBfX2tlcm5lbF9kYWRkcl90Cit0eXBlZGVmIGludCBfX2tlcm5lbF9kYWRkcl90OworLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KKyNlbmRpZgorI2lmbmRlZiBfX2tlcm5lbF91aWQzMl90Cit0eXBlZGVmIHVuc2lnbmVkIGludCBfX2tlcm5lbF91aWQzMl90OwordHlwZWRlZiB1bnNpZ25lZCBpbnQgX19rZXJuZWxfZ2lkMzJfdDsKKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCisjZW5kaWYKKyNpZm5kZWYgX19rZXJuZWxfb2xkX3VpZF90Cit0eXBlZGVmIF9fa2VybmVsX3VpZF90IF9fa2VybmVsX29sZF91aWRfdDsKK3R5cGVkZWYgX19rZXJuZWxfZ2lkX3QgX19rZXJuZWxfb2xkX2dpZF90OworLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KKyNlbmRpZgorI2lmbmRlZiBfX2tlcm5lbF9vbGRfZGV2X3QKK3R5cGVkZWYgdW5zaWduZWQgaW50IF9fa2VybmVsX29sZF9kZXZfdDsKKyNlbmRpZgorLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KKyNpZm5kZWYgX19rZXJuZWxfc2l6ZV90CisjaWYgX19CSVRTX1BFUl9MT05HICE9IDY0Cit0eXBlZGVmIHVuc2lnbmVkIGludCBfX2tlcm5lbF9zaXplX3Q7Cit0eXBlZGVmIGludCBfX2tlcm5lbF9zc2l6ZV90OworLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KK3R5cGVkZWYgaW50IF9fa2VybmVsX3B0cmRpZmZfdDsKKyNlbHNlCit0eXBlZGVmIF9fa2VybmVsX3Vsb25nX3QgX19rZXJuZWxfc2l6ZV90OwordHlwZWRlZiBfX2tlcm5lbF9sb25nX3QgX19rZXJuZWxfc3NpemVfdDsKKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCit0eXBlZGVmIF9fa2VybmVsX2xvbmdfdCBfX2tlcm5lbF9wdHJkaWZmX3Q7CisjZW5kaWYKKyNlbmRpZgorI2lmbmRlZiBfX2tlcm5lbF9mc2lkX3QKKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCit0eXBlZGVmIHN0cnVjdCB7CisgaW50IHZhbFsyXTsKK30gX19rZXJuZWxfZnNpZF90OworI2VuZGlmCisvKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLwordHlwZWRlZiBfX2tlcm5lbF9sb25nX3QgX19rZXJuZWxfb2ZmX3Q7Cit0eXBlZGVmIGxvbmcgbG9uZyBfX2tlcm5lbF9sb2ZmX3Q7Cit0eXBlZGVmIF9fa2VybmVsX2xvbmdfdCBfX2tlcm5lbF90aW1lX3Q7Cit0eXBlZGVmIF9fa2VybmVsX2xvbmdfdCBfX2tlcm5lbF9jbG9ja190OworLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KK3R5cGVkZWYgaW50IF9fa2VybmVsX3RpbWVyX3Q7Cit0eXBlZGVmIGludCBfX2tlcm5lbF9jbG9ja2lkX3Q7Cit0eXBlZGVmIGNoYXIgKiBfX2tlcm5lbF9jYWRkcl90OwordHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBfX2tlcm5lbF91aWQxNl90OworLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KK3R5cGVkZWYgdW5zaWduZWQgc2hvcnQgX19rZXJuZWxfZ2lkMTZfdDsKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1hYXJjaDY0L2luY2x1ZGUvYXNtLWdlbmVyaWMvc2lnbmFsLWRlZnMuaCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2FyY2gtYWFyY2g2NC9pbmNsdWRlL2FzbS1nZW5lcmljL3NpZ25hbC1kZWZzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQ3Y2JlNwotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2FyY2gtYWFyY2g2NC9pbmNsdWRlL2FzbS1nZW5lcmljL3NpZ25hbC1kZWZzLmgKQEAgLTAsMCArMSw0NSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKioqCisgKioqICAgVGhpcyBoZWFkZXIgd2FzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gYSBMaW51eCBrZXJuZWwgaGVhZGVyCisgKioqICAgb2YgdGhlIHNhbWUgbmFtZSwgdG8gbWFrZSBpbmZvcm1hdGlvbiBuZWNlc3NhcnkgZm9yIHVzZXJzcGFjZSB0bworICoqKiAgIGNhbGwgaW50byB0aGUga2VybmVsIGF2YWlsYWJsZSB0byBsaWJjLiAgSXQgY29udGFpbnMgb25seSBjb25zdGFudHMsCisgKioqICAgc3RydWN0dXJlcywgYW5kIG1hY3JvcyBnZW5lcmF0ZWQgZnJvbSB0aGUgb3JpZ2luYWwgaGVhZGVyLCBhbmQgdGh1cywKKyAqKiogICBjb250YWlucyBubyBjb3B5cmlnaHRhYmxlIGluZm9ybWF0aW9uLgorICoqKgorICoqKiAgIFRvIGVkaXQgdGhlIGNvbnRlbnQgb2YgdGhpcyBoZWFkZXIsIG1vZGlmeSB0aGUgY29ycmVzcG9uZGluZworICoqKiAgIHNvdXJjZSBmaWxlIChlLmcuIHVuZGVyIGV4dGVybmFsL2tlcm5lbC1oZWFkZXJzL29yaWdpbmFsLykgdGhlbgorICoqKiAgIHJ1biBiaW9uaWMvbGliYy9rZXJuZWwvdG9vbHMvdXBkYXRlX2FsbC5weQorICoqKgorICoqKiAgIEFueSBtYW51YWwgY2hhbmdlIGhlcmUgd2lsbCBiZSBsb3N0IHRoZSBuZXh0IHRpbWUgdGhpcyBzY3JpcHQgd2lsbAorICoqKiAgIGJlIHJ1bi4gWW91J3ZlIGJlZW4gd2FybmVkIQorICoqKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2lmbmRlZiBfX0FTTV9HRU5FUklDX1NJR05BTF9ERUZTX0gKKyNkZWZpbmUgX19BU01fR0VORVJJQ19TSUdOQUxfREVGU19ICisjaW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4KKyNpZm5kZWYgU0lHX0JMT0NLCisvKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLworI2RlZmluZSBTSUdfQkxPQ0sgMAorI2VuZGlmCisjaWZuZGVmIFNJR19VTkJMT0NLCisjZGVmaW5lIFNJR19VTkJMT0NLIDEKKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCisjZW5kaWYKKyNpZm5kZWYgU0lHX1NFVE1BU0sKKyNkZWZpbmUgU0lHX1NFVE1BU0sgMgorI2VuZGlmCisvKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLworI2lmbmRlZiBfX0FTU0VNQkxZX18KK3R5cGVkZWYgdm9pZCBfX3NpZ25hbGZuX3QoaW50KTsKK3R5cGVkZWYgX19zaWduYWxmbl90IF9fdXNlciAqX19zaWdoYW5kbGVyX3Q7Cit0eXBlZGVmIHZvaWQgX19yZXN0b3JlZm5fdCh2b2lkKTsKKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCit0eXBlZGVmIF9fcmVzdG9yZWZuX3QgX191c2VyICpfX3NpZ3Jlc3RvcmVfdDsKKyNkZWZpbmUgU0lHX0RGTCAoKF9fZm9yY2UgX19zaWdoYW5kbGVyX3QpMCkKKyNkZWZpbmUgU0lHX0lHTiAoKF9fZm9yY2UgX19zaWdoYW5kbGVyX3QpMSkKKyNkZWZpbmUgU0lHX0VSUiAoKF9fZm9yY2UgX19zaWdoYW5kbGVyX3QpLTEpCisvKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLworI2VuZGlmCisjZW5kaWYKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2FyY2gtYWFyY2g2NC9pbmNsdWRlL2FzbS1nZW5lcmljL3NpZ25hbC5oIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1hYXJjaDY0L2luY2x1ZGUvYXNtLWdlbmVyaWMvc2lnbmFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzRjN2UwMAotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2FyY2gtYWFyY2g2NC9pbmNsdWRlL2FzbS1nZW5lcmljL3NpZ25hbC5oCkBAIC0wLDAgKzEsMTE2IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqKioKKyAqKiogICBUaGlzIGhlYWRlciB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBhIExpbnV4IGtlcm5lbCBoZWFkZXIKKyAqKiogICBvZiB0aGUgc2FtZSBuYW1lLCB0byBtYWtlIGluZm9ybWF0aW9uIG5lY2Vzc2FyeSBmb3IgdXNlcnNwYWNlIHRvCisgKioqICAgY2FsbCBpbnRvIHRoZSBrZXJuZWwgYXZhaWxhYmxlIHRvIGxpYmMuICBJdCBjb250YWlucyBvbmx5IGNvbnN0YW50cywKKyAqKiogICBzdHJ1Y3R1cmVzLCBhbmQgbWFjcm9zIGdlbmVyYXRlZCBmcm9tIHRoZSBvcmlnaW5hbCBoZWFkZXIsIGFuZCB0aHVzLAorICoqKiAgIGNvbnRhaW5zIG5vIGNvcHlyaWdodGFibGUgaW5mb3JtYXRpb24uCisgKioqCisgKioqICAgVG8gZWRpdCB0aGUgY29udGVudCBvZiB0aGlzIGhlYWRlciwgbW9kaWZ5IHRoZSBjb3JyZXNwb25kaW5nCisgKioqICAgc291cmNlIGZpbGUgKGUuZy4gdW5kZXIgZXh0ZXJuYWwva2VybmVsLWhlYWRlcnMvb3JpZ2luYWwvKSB0aGVuCisgKioqICAgcnVuIGJpb25pYy9saWJjL2tlcm5lbC90b29scy91cGRhdGVfYWxsLnB5CisgKioqCisgKioqICAgQW55IG1hbnVhbCBjaGFuZ2UgaGVyZSB3aWxsIGJlIGxvc3QgdGhlIG5leHQgdGltZSB0aGlzIHNjcmlwdCB3aWxsCisgKioqICAgYmUgcnVuLiBZb3UndmUgYmVlbiB3YXJuZWQhCisgKioqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaWZuZGVmIF9VQVBJX19BU01fR0VORVJJQ19TSUdOQUxfSAorI2RlZmluZSBfVUFQSV9fQVNNX0dFTkVSSUNfU0lHTkFMX0gKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2RlZmluZSBfTlNJRyA2NAorLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KKyNkZWZpbmUgX05TSUdfQlBXIF9fQklUU19QRVJfTE9ORworI2RlZmluZSBfTlNJR19XT1JEUyAoX05TSUcgLyBfTlNJR19CUFcpCisjZGVmaW5lIFNJR0hVUCAxCisjZGVmaW5lIFNJR0lOVCAyCisvKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLworI2RlZmluZSBTSUdRVUlUIDMKKyNkZWZpbmUgU0lHSUxMIDQKKyNkZWZpbmUgU0lHVFJBUCA1CisjZGVmaW5lIFNJR0FCUlQgNgorLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KKyNkZWZpbmUgU0lHSU9UIDYKKyNkZWZpbmUgU0lHQlVTIDcKKyNkZWZpbmUgU0lHRlBFIDgKKyNkZWZpbmUgU0lHS0lMTCA5CisvKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLworI2RlZmluZSBTSUdVU1IxIDEwCisjZGVmaW5lIFNJR1NFR1YgMTEKKyNkZWZpbmUgU0lHVVNSMiAxMgorI2RlZmluZSBTSUdQSVBFIDEzCisvKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLworI2RlZmluZSBTSUdBTFJNIDE0CisjZGVmaW5lIFNJR1RFUk0gMTUKKyNkZWZpbmUgU0lHU1RLRkxUIDE2CisjZGVmaW5lIFNJR0NITEQgMTcKKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCisjZGVmaW5lIFNJR0NPTlQgMTgKKyNkZWZpbmUgU0lHU1RPUCAxOQorI2RlZmluZSBTSUdUU1RQIDIwCisjZGVmaW5lIFNJR1RUSU4gMjEKKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCisjZGVmaW5lIFNJR1RUT1UgMjIKKyNkZWZpbmUgU0lHVVJHIDIzCisjZGVmaW5lIFNJR1hDUFUgMjQKKyNkZWZpbmUgU0lHWEZTWiAyNQorLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KKyNkZWZpbmUgU0lHVlRBTFJNIDI2CisjZGVmaW5lIFNJR1BST0YgMjcKKyNkZWZpbmUgU0lHV0lOQ0ggMjgKKyNkZWZpbmUgU0lHSU8gMjkKKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCisjZGVmaW5lIFNJR1BPTEwgU0lHSU8KKyNkZWZpbmUgU0lHUFdSIDMwCisjZGVmaW5lIFNJR1NZUyAzMQorI2RlZmluZSBTSUdVTlVTRUQgMzEKKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCisjZGVmaW5lIFNJR1JUTUlOIDMyCisjaWZuZGVmIFNJR1JUTUFYCisjZGVmaW5lIFNJR1JUTUFYIF9OU0lHCisjZW5kaWYKKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCisjZGVmaW5lIFNBX05PQ0xEU1RPUCAweDAwMDAwMDAxCisjZGVmaW5lIFNBX05PQ0xEV0FJVCAweDAwMDAwMDAyCisjZGVmaW5lIFNBX1NJR0lORk8gMHgwMDAwMDAwNAorI2RlZmluZSBTQV9PTlNUQUNLIDB4MDgwMDAwMDAKKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCisjZGVmaW5lIFNBX1JFU1RBUlQgMHgxMDAwMDAwMAorI2RlZmluZSBTQV9OT0RFRkVSIDB4NDAwMDAwMDAKKyNkZWZpbmUgU0FfUkVTRVRIQU5EIDB4ODAwMDAwMDAKKyNkZWZpbmUgU0FfTk9NQVNLIFNBX05PREVGRVIKKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCisjZGVmaW5lIFNBX09ORVNIT1QgU0FfUkVTRVRIQU5ECisjZGVmaW5lIE1JTlNJR1NUS1NaIDIwNDgKKyNkZWZpbmUgU0lHU1RLU1ogODE5MgorI2lmbmRlZiBfX0FTU0VNQkxZX18KKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCit0eXBlZGVmIHN0cnVjdCB7CisgdW5zaWduZWQgbG9uZyBzaWdbX05TSUdfV09SRFNdOworfSBzaWdzZXRfdDsKK3R5cGVkZWYgdW5zaWduZWQgbG9uZyBvbGRfc2lnc2V0X3Q7CisvKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLworI2luY2x1ZGUgPGFzbS1nZW5lcmljL3NpZ25hbC1kZWZzLmg+CisjaWZkZWYgU0FfUkVTVE9SRVIKKyNkZWZpbmUgX19BUkNIX0hBU19TQV9SRVNUT1JFUgorI2VuZGlmCisvKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLworc3RydWN0IHNpZ2FjdGlvbiB7CisgX19zaWdoYW5kbGVyX3Qgc2FfaGFuZGxlcjsKKyB1bnNpZ25lZCBsb25nIHNhX2ZsYWdzOworI2lmZGVmIFNBX1JFU1RPUkVSCisvKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLworIF9fc2lncmVzdG9yZV90IHNhX3Jlc3RvcmVyOworI2VuZGlmCisgc2lnc2V0X3Qgc2FfbWFzazsKK307CisvKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLwordHlwZWRlZiBzdHJ1Y3Qgc2lnYWx0c3RhY2sgeworIHZvaWQgX191c2VyICpzc19zcDsKKyBpbnQgc3NfZmxhZ3M7Cisgc2l6ZV90IHNzX3NpemU7CisvKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLworfSBzdGFja190OworI2VuZGlmCisjZW5kaWYKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2FyY2gtYWFyY2g2NC9pbmNsdWRlL2FzbS1nZW5lcmljL3R5cGVzLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLWFhcmNoNjQvaW5jbHVkZS9hc20tZ2VuZXJpYy90eXBlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMwZDRiZWEKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLWFhcmNoNjQvaW5jbHVkZS9hc20tZ2VuZXJpYy90eXBlcy5oCkBAIC0wLDAgKzEsMjMgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoqKgorICoqKiAgIFRoaXMgaGVhZGVyIHdhcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIGEgTGludXgga2VybmVsIGhlYWRlcgorICoqKiAgIG9mIHRoZSBzYW1lIG5hbWUsIHRvIG1ha2UgaW5mb3JtYXRpb24gbmVjZXNzYXJ5IGZvciB1c2Vyc3BhY2UgdG8KKyAqKiogICBjYWxsIGludG8gdGhlIGtlcm5lbCBhdmFpbGFibGUgdG8gbGliYy4gIEl0IGNvbnRhaW5zIG9ubHkgY29uc3RhbnRzLAorICoqKiAgIHN0cnVjdHVyZXMsIGFuZCBtYWNyb3MgZ2VuZXJhdGVkIGZyb20gdGhlIG9yaWdpbmFsIGhlYWRlciwgYW5kIHRodXMsCisgKioqICAgY29udGFpbnMgbm8gY29weXJpZ2h0YWJsZSBpbmZvcm1hdGlvbi4KKyAqKioKKyAqKiogICBUbyBlZGl0IHRoZSBjb250ZW50IG9mIHRoaXMgaGVhZGVyLCBtb2RpZnkgdGhlIGNvcnJlc3BvbmRpbmcKKyAqKiogICBzb3VyY2UgZmlsZSAoZS5nLiB1bmRlciBleHRlcm5hbC9rZXJuZWwtaGVhZGVycy9vcmlnaW5hbC8pIHRoZW4KKyAqKiogICBydW4gYmlvbmljL2xpYmMva2VybmVsL3Rvb2xzL3VwZGF0ZV9hbGwucHkKKyAqKioKKyAqKiogICBBbnkgbWFudWFsIGNoYW5nZSBoZXJlIHdpbGwgYmUgbG9zdCB0aGUgbmV4dCB0aW1lIHRoaXMgc2NyaXB0IHdpbGwKKyAqKiogICBiZSBydW4uIFlvdSd2ZSBiZWVuIHdhcm5lZCEKKyAqKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpZm5kZWYgX0FTTV9HRU5FUklDX1RZUEVTX0gKKyNkZWZpbmUgX0FTTV9HRU5FUklDX1RZUEVTX0gKKyNpbmNsdWRlIDxhc20tZ2VuZXJpYy9pbnQtbGw2NC5oPgorI2VuZGlmCisvKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLwpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1hYXJjaDY0L2luY2x1ZGUvYXNtL2JpdHNwZXJsb25nLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLWFhcmNoNjQvaW5jbHVkZS9hc20vYml0c3BlcmxvbmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNTNmZjY1Ci0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1hYXJjaDY0L2luY2x1ZGUvYXNtL2JpdHNwZXJsb25nLmgKQEAgLTAsMCArMSwyNCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKioqCisgKioqICAgVGhpcyBoZWFkZXIgd2FzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gYSBMaW51eCBrZXJuZWwgaGVhZGVyCisgKioqICAgb2YgdGhlIHNhbWUgbmFtZSwgdG8gbWFrZSBpbmZvcm1hdGlvbiBuZWNlc3NhcnkgZm9yIHVzZXJzcGFjZSB0bworICoqKiAgIGNhbGwgaW50byB0aGUga2VybmVsIGF2YWlsYWJsZSB0byBsaWJjLiAgSXQgY29udGFpbnMgb25seSBjb25zdGFudHMsCisgKioqICAgc3RydWN0dXJlcywgYW5kIG1hY3JvcyBnZW5lcmF0ZWQgZnJvbSB0aGUgb3JpZ2luYWwgaGVhZGVyLCBhbmQgdGh1cywKKyAqKiogICBjb250YWlucyBubyBjb3B5cmlnaHRhYmxlIGluZm9ybWF0aW9uLgorICoqKgorICoqKiAgIFRvIGVkaXQgdGhlIGNvbnRlbnQgb2YgdGhpcyBoZWFkZXIsIG1vZGlmeSB0aGUgY29ycmVzcG9uZGluZworICoqKiAgIHNvdXJjZSBmaWxlIChlLmcuIHVuZGVyIGV4dGVybmFsL2tlcm5lbC1oZWFkZXJzL29yaWdpbmFsLykgdGhlbgorICoqKiAgIHJ1biBiaW9uaWMvbGliYy9rZXJuZWwvdG9vbHMvdXBkYXRlX2FsbC5weQorICoqKgorICoqKiAgIEFueSBtYW51YWwgY2hhbmdlIGhlcmUgd2lsbCBiZSBsb3N0IHRoZSBuZXh0IHRpbWUgdGhpcyBzY3JpcHQgd2lsbAorICoqKiAgIGJlIHJ1bi4gWW91J3ZlIGJlZW4gd2FybmVkIQorICoqKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2lmbmRlZiBfX0FTTV9CSVRTUEVSTE9OR19ICisjZGVmaW5lIF9fQVNNX0JJVFNQRVJMT05HX0gKKyNkZWZpbmUgX19CSVRTX1BFUl9MT05HIDY0CisjaW5jbHVkZSA8YXNtLWdlbmVyaWMvYml0c3BlcmxvbmcuaD4KKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCisjZW5kaWYKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2FyY2gtYWFyY2g2NC9pbmNsdWRlL2FzbS9lcnJuby5oIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1hYXJjaDY0L2luY2x1ZGUvYXNtL2Vycm5vLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzkyY2Q5NAotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2FyY2gtYWFyY2g2NC9pbmNsdWRlL2FzbS9lcnJuby5oCkBAIC0wLDAgKzEsMTkgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoqKgorICoqKiAgIFRoaXMgaGVhZGVyIHdhcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIGEgTGludXgga2VybmVsIGhlYWRlcgorICoqKiAgIG9mIHRoZSBzYW1lIG5hbWUsIHRvIG1ha2UgaW5mb3JtYXRpb24gbmVjZXNzYXJ5IGZvciB1c2Vyc3BhY2UgdG8KKyAqKiogICBjYWxsIGludG8gdGhlIGtlcm5lbCBhdmFpbGFibGUgdG8gbGliYy4gIEl0IGNvbnRhaW5zIG9ubHkgY29uc3RhbnRzLAorICoqKiAgIHN0cnVjdHVyZXMsIGFuZCBtYWNyb3MgZ2VuZXJhdGVkIGZyb20gdGhlIG9yaWdpbmFsIGhlYWRlciwgYW5kIHRodXMsCisgKioqICAgY29udGFpbnMgbm8gY29weXJpZ2h0YWJsZSBpbmZvcm1hdGlvbi4KKyAqKioKKyAqKiogICBUbyBlZGl0IHRoZSBjb250ZW50IG9mIHRoaXMgaGVhZGVyLCBtb2RpZnkgdGhlIGNvcnJlc3BvbmRpbmcKKyAqKiogICBzb3VyY2UgZmlsZSAoZS5nLiB1bmRlciBleHRlcm5hbC9rZXJuZWwtaGVhZGVycy9vcmlnaW5hbC8pIHRoZW4KKyAqKiogICBydW4gYmlvbmljL2xpYmMva2VybmVsL3Rvb2xzL3VwZGF0ZV9hbGwucHkKKyAqKioKKyAqKiogICBBbnkgbWFudWFsIGNoYW5nZSBoZXJlIHdpbGwgYmUgbG9zdCB0aGUgbmV4dCB0aW1lIHRoaXMgc2NyaXB0IHdpbGwKKyAqKiogICBiZSBydW4uIFlvdSd2ZSBiZWVuIHdhcm5lZCEKKyAqKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpbmNsdWRlIDxhc20tZ2VuZXJpYy9lcnJuby5oPgpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1hYXJjaDY0L2luY2x1ZGUvYXNtL2ZjbnRsLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLWFhcmNoNjQvaW5jbHVkZS9hc20vZmNudGwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNjJmMjYwCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1hYXJjaDY0L2luY2x1ZGUvYXNtL2ZjbnRsLmgKQEAgLTAsMCArMSwyOCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKioqCisgKioqICAgVGhpcyBoZWFkZXIgd2FzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gYSBMaW51eCBrZXJuZWwgaGVhZGVyCisgKioqICAgb2YgdGhlIHNhbWUgbmFtZSwgdG8gbWFrZSBpbmZvcm1hdGlvbiBuZWNlc3NhcnkgZm9yIHVzZXJzcGFjZSB0bworICoqKiAgIGNhbGwgaW50byB0aGUga2VybmVsIGF2YWlsYWJsZSB0byBsaWJjLiAgSXQgY29udGFpbnMgb25seSBjb25zdGFudHMsCisgKioqICAgc3RydWN0dXJlcywgYW5kIG1hY3JvcyBnZW5lcmF0ZWQgZnJvbSB0aGUgb3JpZ2luYWwgaGVhZGVyLCBhbmQgdGh1cywKKyAqKiogICBjb250YWlucyBubyBjb3B5cmlnaHRhYmxlIGluZm9ybWF0aW9uLgorICoqKgorICoqKiAgIFRvIGVkaXQgdGhlIGNvbnRlbnQgb2YgdGhpcyBoZWFkZXIsIG1vZGlmeSB0aGUgY29ycmVzcG9uZGluZworICoqKiAgIHNvdXJjZSBmaWxlIChlLmcuIHVuZGVyIGV4dGVybmFsL2tlcm5lbC1oZWFkZXJzL29yaWdpbmFsLykgdGhlbgorICoqKiAgIHJ1biBiaW9uaWMvbGliYy9rZXJuZWwvdG9vbHMvdXBkYXRlX2FsbC5weQorICoqKgorICoqKiAgIEFueSBtYW51YWwgY2hhbmdlIGhlcmUgd2lsbCBiZSBsb3N0IHRoZSBuZXh0IHRpbWUgdGhpcyBzY3JpcHQgd2lsbAorICoqKiAgIGJlIHJ1bi4gWW91J3ZlIGJlZW4gd2FybmVkIQorICoqKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2lmbmRlZiBfX0FTTV9GQ05UTF9ICisjZGVmaW5lIF9fQVNNX0ZDTlRMX0gKKyNkZWZpbmUgT19ESVJFQ1RPUlkgMDQwMDAwCisjZGVmaW5lIE9fTk9GT0xMT1cgMDEwMDAwMAorLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KKyNkZWZpbmUgT19ESVJFQ1QgMDIwMDAwMAorI2RlZmluZSBPX0xBUkdFRklMRSAwNDAwMDAwCisjaW5jbHVkZSA8YXNtLWdlbmVyaWMvZmNudGwuaD4KKyNlbmRpZgorLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2FyY2gtYWFyY2g2NC9pbmNsdWRlL2FzbS9wYWdlLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLWFhcmNoNjQvaW5jbHVkZS9hc20vcGFnZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5ODAzNDMKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLWFhcmNoNjQvaW5jbHVkZS9hc20vcGFnZS5oCkBAIC0wLDAgKzEsMTkgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoqKgorICoqKiAgIFRoaXMgaGVhZGVyIHdhcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIGEgTGludXgga2VybmVsIGhlYWRlcgorICoqKiAgIG9mIHRoZSBzYW1lIG5hbWUsIHRvIG1ha2UgaW5mb3JtYXRpb24gbmVjZXNzYXJ5IGZvciB1c2Vyc3BhY2UgdG8KKyAqKiogICBjYWxsIGludG8gdGhlIGtlcm5lbCBhdmFpbGFibGUgdG8gbGliYy4gIEl0IGNvbnRhaW5zIG9ubHkgY29uc3RhbnRzLAorICoqKiAgIHN0cnVjdHVyZXMsIGFuZCBtYWNyb3MgZ2VuZXJhdGVkIGZyb20gdGhlIG9yaWdpbmFsIGhlYWRlciwgYW5kIHRodXMsCisgKioqICAgY29udGFpbnMgbm8gY29weXJpZ2h0YWJsZSBpbmZvcm1hdGlvbi4KKyAqKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpZm5kZWYgX0FTTUFSTV9QQUdFX0gKKyNkZWZpbmUgX0FTTUFSTV9QQUdFX0gKKworI2RlZmluZSBQQUdFX1NISUZUIDEyCisjZGVmaW5lIFBBR0VfU0laRSAoMVVMIDw8IFBBR0VfU0hJRlQpCisjZGVmaW5lIFBBR0VfTUFTSyAofihQQUdFX1NJWkUtMSkpCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1hYXJjaDY0L2luY2x1ZGUvYXNtL3Bvc2l4X3R5cGVzLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLWFhcmNoNjQvaW5jbHVkZS9hc20vcG9zaXhfdHlwZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjg5MjUzCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1hYXJjaDY0L2luY2x1ZGUvYXNtL3Bvc2l4X3R5cGVzLmgKQEAgLTAsMCArMSwxOSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKioqCisgKioqICAgVGhpcyBoZWFkZXIgd2FzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gYSBMaW51eCBrZXJuZWwgaGVhZGVyCisgKioqICAgb2YgdGhlIHNhbWUgbmFtZSwgdG8gbWFrZSBpbmZvcm1hdGlvbiBuZWNlc3NhcnkgZm9yIHVzZXJzcGFjZSB0bworICoqKiAgIGNhbGwgaW50byB0aGUga2VybmVsIGF2YWlsYWJsZSB0byBsaWJjLiAgSXQgY29udGFpbnMgb25seSBjb25zdGFudHMsCisgKioqICAgc3RydWN0dXJlcywgYW5kIG1hY3JvcyBnZW5lcmF0ZWQgZnJvbSB0aGUgb3JpZ2luYWwgaGVhZGVyLCBhbmQgdGh1cywKKyAqKiogICBjb250YWlucyBubyBjb3B5cmlnaHRhYmxlIGluZm9ybWF0aW9uLgorICoqKgorICoqKiAgIFRvIGVkaXQgdGhlIGNvbnRlbnQgb2YgdGhpcyBoZWFkZXIsIG1vZGlmeSB0aGUgY29ycmVzcG9uZGluZworICoqKiAgIHNvdXJjZSBmaWxlIChlLmcuIHVuZGVyIGV4dGVybmFsL2tlcm5lbC1oZWFkZXJzL29yaWdpbmFsLykgdGhlbgorICoqKiAgIHJ1biBiaW9uaWMvbGliYy9rZXJuZWwvdG9vbHMvdXBkYXRlX2FsbC5weQorICoqKgorICoqKiAgIEFueSBtYW51YWwgY2hhbmdlIGhlcmUgd2lsbCBiZSBsb3N0IHRoZSBuZXh0IHRpbWUgdGhpcyBzY3JpcHQgd2lsbAorICoqKiAgIGJlIHJ1bi4gWW91J3ZlIGJlZW4gd2FybmVkIQorICoqKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgPGFzbS1nZW5lcmljL3Bvc2l4X3R5cGVzLmg+CmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLWFhcmNoNjQvaW5jbHVkZS9hc20vc2lnY29udGV4dC5oIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1hYXJjaDY0L2luY2x1ZGUvYXNtL3NpZ2NvbnRleHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNTlmOWMwCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1hYXJjaDY0L2luY2x1ZGUvYXNtL3NpZ2NvbnRleHQuaApAQCAtMCwwICsxLDQ2IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqKioKKyAqKiogICBUaGlzIGhlYWRlciB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBhIExpbnV4IGtlcm5lbCBoZWFkZXIKKyAqKiogICBvZiB0aGUgc2FtZSBuYW1lLCB0byBtYWtlIGluZm9ybWF0aW9uIG5lY2Vzc2FyeSBmb3IgdXNlcnNwYWNlIHRvCisgKioqICAgY2FsbCBpbnRvIHRoZSBrZXJuZWwgYXZhaWxhYmxlIHRvIGxpYmMuICBJdCBjb250YWlucyBvbmx5IGNvbnN0YW50cywKKyAqKiogICBzdHJ1Y3R1cmVzLCBhbmQgbWFjcm9zIGdlbmVyYXRlZCBmcm9tIHRoZSBvcmlnaW5hbCBoZWFkZXIsIGFuZCB0aHVzLAorICoqKiAgIGNvbnRhaW5zIG5vIGNvcHlyaWdodGFibGUgaW5mb3JtYXRpb24uCisgKioqCisgKioqICAgVG8gZWRpdCB0aGUgY29udGVudCBvZiB0aGlzIGhlYWRlciwgbW9kaWZ5IHRoZSBjb3JyZXNwb25kaW5nCisgKioqICAgc291cmNlIGZpbGUgKGUuZy4gdW5kZXIgZXh0ZXJuYWwva2VybmVsLWhlYWRlcnMvb3JpZ2luYWwvKSB0aGVuCisgKioqICAgcnVuIGJpb25pYy9saWJjL2tlcm5lbC90b29scy91cGRhdGVfYWxsLnB5CisgKioqCisgKioqICAgQW55IG1hbnVhbCBjaGFuZ2UgaGVyZSB3aWxsIGJlIGxvc3QgdGhlIG5leHQgdGltZSB0aGlzIHNjcmlwdCB3aWxsCisgKioqICAgYmUgcnVuLiBZb3UndmUgYmVlbiB3YXJuZWQhCisgKioqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaWZuZGVmIF9VQVBJX19BU01fU0lHQ09OVEVYVF9ICisjZGVmaW5lIF9VQVBJX19BU01fU0lHQ09OVEVYVF9ICisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KK3N0cnVjdCBzaWdjb250ZXh0IHsKKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCisgX191NjQgZmF1bHRfYWRkcmVzczsKKyBfX3U2NCByZWdzWzMxXTsKKyBfX3U2NCBzcDsKKyBfX3U2NCBwYzsKKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCisgX191NjQgcHN0YXRlOworIF9fdTggX19yZXNlcnZlZFs0MDk2XSBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygxNikpKTsKK307CitzdHJ1Y3QgX2FhcmNoNjRfY3R4IHsKKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCisgX191MzIgbWFnaWM7CisgX191MzIgc2l6ZTsKK307CisjZGVmaW5lIEZQU0lNRF9NQUdJQyAweDQ2NTA4MDAxCisvKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLworc3RydWN0IGZwc2ltZF9jb250ZXh0IHsKKyBzdHJ1Y3QgX2FhcmNoNjRfY3R4IGhlYWQ7CisgX191MzIgZnBzcjsKKyBfX3UzMiBmcGNyOworLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KKyBfX3VpbnQxMjhfdCB2cmVnc1szMl07Cit9OworI2VuZGlmCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLWFhcmNoNjQvaW5jbHVkZS9hc20vc2lnaW5mby5oIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1hYXJjaDY0L2luY2x1ZGUvYXNtL3NpZ2luZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MmZlMGEyCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1hYXJjaDY0L2luY2x1ZGUvYXNtL3NpZ2luZm8uaApAQCAtMCwwICsxLDI0IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqKioKKyAqKiogICBUaGlzIGhlYWRlciB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBhIExpbnV4IGtlcm5lbCBoZWFkZXIKKyAqKiogICBvZiB0aGUgc2FtZSBuYW1lLCB0byBtYWtlIGluZm9ybWF0aW9uIG5lY2Vzc2FyeSBmb3IgdXNlcnNwYWNlIHRvCisgKioqICAgY2FsbCBpbnRvIHRoZSBrZXJuZWwgYXZhaWxhYmxlIHRvIGxpYmMuICBJdCBjb250YWlucyBvbmx5IGNvbnN0YW50cywKKyAqKiogICBzdHJ1Y3R1cmVzLCBhbmQgbWFjcm9zIGdlbmVyYXRlZCBmcm9tIHRoZSBvcmlnaW5hbCBoZWFkZXIsIGFuZCB0aHVzLAorICoqKiAgIGNvbnRhaW5zIG5vIGNvcHlyaWdodGFibGUgaW5mb3JtYXRpb24uCisgKioqCisgKioqICAgVG8gZWRpdCB0aGUgY29udGVudCBvZiB0aGlzIGhlYWRlciwgbW9kaWZ5IHRoZSBjb3JyZXNwb25kaW5nCisgKioqICAgc291cmNlIGZpbGUgKGUuZy4gdW5kZXIgZXh0ZXJuYWwva2VybmVsLWhlYWRlcnMvb3JpZ2luYWwvKSB0aGVuCisgKioqICAgcnVuIGJpb25pYy9saWJjL2tlcm5lbC90b29scy91cGRhdGVfYWxsLnB5CisgKioqCisgKioqICAgQW55IG1hbnVhbCBjaGFuZ2UgaGVyZSB3aWxsIGJlIGxvc3QgdGhlIG5leHQgdGltZSB0aGlzIHNjcmlwdCB3aWxsCisgKioqICAgYmUgcnVuLiBZb3UndmUgYmVlbiB3YXJuZWQhCisgKioqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaWZuZGVmIF9fQVNNX1NJR0lORk9fSAorI2RlZmluZSBfX0FTTV9TSUdJTkZPX0gKKyNkZWZpbmUgX19BUkNIX1NJX1BSRUFNQkxFX1NJWkUgKDQgKiBzaXplb2YoaW50KSkKKyNpbmNsdWRlIDxhc20tZ2VuZXJpYy9zaWdpbmZvLmg+CisvKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLworI2VuZGlmCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLWFhcmNoNjQvaW5jbHVkZS9hc20vc2lnbmFsLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLWFhcmNoNjQvaW5jbHVkZS9hc20vc2lnbmFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzlmOGM0OAotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2FyY2gtYWFyY2g2NC9pbmNsdWRlL2FzbS9zaWduYWwuaApAQCAtMCwwICsxLDI0IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqKioKKyAqKiogICBUaGlzIGhlYWRlciB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBhIExpbnV4IGtlcm5lbCBoZWFkZXIKKyAqKiogICBvZiB0aGUgc2FtZSBuYW1lLCB0byBtYWtlIGluZm9ybWF0aW9uIG5lY2Vzc2FyeSBmb3IgdXNlcnNwYWNlIHRvCisgKioqICAgY2FsbCBpbnRvIHRoZSBrZXJuZWwgYXZhaWxhYmxlIHRvIGxpYmMuICBJdCBjb250YWlucyBvbmx5IGNvbnN0YW50cywKKyAqKiogICBzdHJ1Y3R1cmVzLCBhbmQgbWFjcm9zIGdlbmVyYXRlZCBmcm9tIHRoZSBvcmlnaW5hbCBoZWFkZXIsIGFuZCB0aHVzLAorICoqKiAgIGNvbnRhaW5zIG5vIGNvcHlyaWdodGFibGUgaW5mb3JtYXRpb24uCisgKioqCisgKioqICAgVG8gZWRpdCB0aGUgY29udGVudCBvZiB0aGlzIGhlYWRlciwgbW9kaWZ5IHRoZSBjb3JyZXNwb25kaW5nCisgKioqICAgc291cmNlIGZpbGUgKGUuZy4gdW5kZXIgZXh0ZXJuYWwva2VybmVsLWhlYWRlcnMvb3JpZ2luYWwvKSB0aGVuCisgKioqICAgcnVuIGJpb25pYy9saWJjL2tlcm5lbC90b29scy91cGRhdGVfYWxsLnB5CisgKioqCisgKioqICAgQW55IG1hbnVhbCBjaGFuZ2UgaGVyZSB3aWxsIGJlIGxvc3QgdGhlIG5leHQgdGltZSB0aGlzIHNjcmlwdCB3aWxsCisgKioqICAgYmUgcnVuLiBZb3UndmUgYmVlbiB3YXJuZWQhCisgKioqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaWZuZGVmIF9fQVNNX1NJR05BTF9ICisjZGVmaW5lIF9fQVNNX1NJR05BTF9ICisjZGVmaW5lIFNBX1JFU1RPUkVSIDB4MDQwMDAwMDAKKyNpbmNsdWRlIDxhc20tZ2VuZXJpYy9zaWduYWwuaD4KKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCisjZW5kaWYKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2FyY2gtYWFyY2g2NC9pbmNsdWRlL2FzbS90eXBlcy5oIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1hYXJjaDY0L2luY2x1ZGUvYXNtL3R5cGVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODI1MGY0MwotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2FyY2gtYWFyY2g2NC9pbmNsdWRlL2FzbS90eXBlcy5oCkBAIC0wLDAgKzEsMTkgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoqKgorICoqKiAgIFRoaXMgaGVhZGVyIHdhcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIGEgTGludXgga2VybmVsIGhlYWRlcgorICoqKiAgIG9mIHRoZSBzYW1lIG5hbWUsIHRvIG1ha2UgaW5mb3JtYXRpb24gbmVjZXNzYXJ5IGZvciB1c2Vyc3BhY2UgdG8KKyAqKiogICBjYWxsIGludG8gdGhlIGtlcm5lbCBhdmFpbGFibGUgdG8gbGliYy4gIEl0IGNvbnRhaW5zIG9ubHkgY29uc3RhbnRzLAorICoqKiAgIHN0cnVjdHVyZXMsIGFuZCBtYWNyb3MgZ2VuZXJhdGVkIGZyb20gdGhlIG9yaWdpbmFsIGhlYWRlciwgYW5kIHRodXMsCisgKioqICAgY29udGFpbnMgbm8gY29weXJpZ2h0YWJsZSBpbmZvcm1hdGlvbi4KKyAqKioKKyAqKiogICBUbyBlZGl0IHRoZSBjb250ZW50IG9mIHRoaXMgaGVhZGVyLCBtb2RpZnkgdGhlIGNvcnJlc3BvbmRpbmcKKyAqKiogICBzb3VyY2UgZmlsZSAoZS5nLiB1bmRlciBleHRlcm5hbC9rZXJuZWwtaGVhZGVycy9vcmlnaW5hbC8pIHRoZW4KKyAqKiogICBydW4gYmlvbmljL2xpYmMva2VybmVsL3Rvb2xzL3VwZGF0ZV9hbGwucHkKKyAqKioKKyAqKiogICBBbnkgbWFudWFsIGNoYW5nZSBoZXJlIHdpbGwgYmUgbG9zdCB0aGUgbmV4dCB0aW1lIHRoaXMgc2NyaXB0IHdpbGwKKyAqKiogICBiZSBydW4uIFlvdSd2ZSBiZWVuIHdhcm5lZCEKKyAqKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpbmNsdWRlIDxhc20tZ2VuZXJpYy90eXBlcy5oPgpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1hYXJjaDY0L2luY2x1ZGUvbWFjaGluZS9fdHlwZXMuaCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2FyY2gtYWFyY2g2NC9pbmNsdWRlL21hY2hpbmUvX3R5cGVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGJhYjlkNQotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2FyY2gtYWFyY2g2NC9pbmNsdWRlL21hY2hpbmUvX3R5cGVzLmgKQEAgLTAsMCArMSwxMzkgQEAKKy8qCSRPcGVuQlNEOiBfdHlwZXMuaCx2IDEuMTMgMjAxMy8wNy8wNSAxOTo0NjoyNyBndWVudGhlciBFeHAgJAkqLworCisvKgorICogQ29weXJpZ2h0IChjKSAxOTkwLCAxOTkzCisgKglUaGUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKKyAqICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIFJFR0VOVFMgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBSRUdFTlRTIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKgorICoJQCgjKXR5cGVzLmgJOC4zIChCZXJrZWxleSkgMS81Lzk0CisgKglAKCMpYW5zaS5oCTguMiAoQmVya2VsZXkpIDEvNC85NAorICovCisKKyNpZm5kZWYgX01BQ0hJTkVfX1RZUEVTX0hfCisjZGVmaW5lIF9NQUNISU5FX19UWVBFU19IXworCisvKgorICogX0FMSUdOKHApIHJvdW5kcyBwIChwb2ludGVyIG9yIGJ5dGUgaW5kZXgpIHVwIHRvIGEgY29ycmVjdGx5LWFsaWduZWQKKyAqIHZhbHVlIGZvciBhbGwgZGF0YSB0eXBlcyAoaW50LCBsb25nLCAuLi4pLiAgIFRoZSByZXN1bHQgaXMgYW4KKyAqIHVuc2lnbmVkIGxvbmcgYW5kIG11c3QgYmUgY2FzdCB0byBhbnkgZGVzaXJlZCBwb2ludGVyIHR5cGUuCisgKgorICogX0FMSUdORURfUE9JTlRFUiBpcyBhIGJvb2xlYW4gbWFjcm8gdGhhdCBjaGVja3Mgd2hldGhlciBhbiBhZGRyZXNzCisgKiBpcyB2YWxpZCB0byBmZXRjaCBkYXRhIGVsZW1lbnRzIG9mIHR5cGUgdCBmcm9tIG9uIHRoaXMgYXJjaGl0ZWN0dXJlLgorICogVGhpcyBkb2VzIG5vdCByZWZsZWN0IHRoZSBvcHRpbWFsIGFsaWdubWVudCwganVzdCB0aGUgcG9zc2liaWxpdHkKKyAqICh3aXRoaW4gcmVhc29uYWJsZSBsaW1pdHMpLgorICovCisjZGVmaW5lCV9BTElHTkJZVEVTCShzaXplb2YobG9uZykgLSAxKQorI2RlZmluZQlfQUxJR04ocCkJKCgodW5zaWduZWQgbG9uZykocCkgKyBfQUxJR05CWVRFUykgJn5fQUxJR05CWVRFUykKKyNkZWZpbmUJX0FMSUdORURfUE9JTlRFUihwLHQpCTEKKworI2lmIGRlZmluZWQoX0tFUk5FTCkKK3R5cGVkZWYgc3RydWN0IGxhYmVsX3QgeworCWxvbmcgdmFsWzhdOworfSBsYWJlbF90OworI2VuZGlmCisKKy8qIDcuMTguMS4xIEV4YWN0LXdpZHRoIGludGVnZXIgdHlwZXMgKi8KK3R5cGVkZWYJX19zaWduZWQgY2hhcgkJX19pbnQ4X3Q7Cit0eXBlZGVmCXVuc2lnbmVkIGNoYXIJCV9fdWludDhfdDsKK3R5cGVkZWYJc2hvcnQJCQlfX2ludDE2X3Q7Cit0eXBlZGVmCXVuc2lnbmVkIHNob3J0CQlfX3VpbnQxNl90OwordHlwZWRlZglpbnQJCQlfX2ludDMyX3Q7Cit0eXBlZGVmCXVuc2lnbmVkIGludAkJX191aW50MzJfdDsKKy8qIExPTkdMT05HICovCit0eXBlZGVmCWxvbmcgbG9uZwkJX19pbnQ2NF90OworLyogTE9OR0xPTkcgKi8KK3R5cGVkZWYJdW5zaWduZWQgbG9uZyBsb25nCV9fdWludDY0X3Q7CisKKy8qIDcuMTguMS4yIE1pbmltdW0td2lkdGggaW50ZWdlciB0eXBlcyAqLwordHlwZWRlZglfX2ludDhfdAkJX19pbnRfbGVhc3Q4X3Q7Cit0eXBlZGVmCV9fdWludDhfdAkJX191aW50X2xlYXN0OF90OwordHlwZWRlZglfX2ludDE2X3QJCV9faW50X2xlYXN0MTZfdDsKK3R5cGVkZWYJX191aW50MTZfdAkJX191aW50X2xlYXN0MTZfdDsKK3R5cGVkZWYJX19pbnQzMl90CQlfX2ludF9sZWFzdDMyX3Q7Cit0eXBlZGVmCV9fdWludDMyX3QJCV9fdWludF9sZWFzdDMyX3Q7Cit0eXBlZGVmCV9faW50NjRfdAkJX19pbnRfbGVhc3Q2NF90OwordHlwZWRlZglfX3VpbnQ2NF90CQlfX3VpbnRfbGVhc3Q2NF90OworCisvKiA3LjE4LjEuMyBGYXN0ZXN0IG1pbmltdW0td2lkdGggaW50ZWdlciB0eXBlcyAqLwordHlwZWRlZglfX2ludDMyX3QJCV9faW50X2Zhc3Q4X3Q7Cit0eXBlZGVmCV9fdWludDMyX3QJCV9fdWludF9mYXN0OF90OwordHlwZWRlZglfX2ludDMyX3QJCV9faW50X2Zhc3QxNl90OwordHlwZWRlZglfX3VpbnQzMl90CQlfX3VpbnRfZmFzdDE2X3Q7Cit0eXBlZGVmCV9faW50MzJfdAkJX19pbnRfZmFzdDMyX3Q7Cit0eXBlZGVmCV9fdWludDMyX3QJCV9fdWludF9mYXN0MzJfdDsKK3R5cGVkZWYJX19pbnQ2NF90CQlfX2ludF9mYXN0NjRfdDsKK3R5cGVkZWYJX191aW50NjRfdAkJX191aW50X2Zhc3Q2NF90OworI2RlZmluZQlfX0lOVF9GQVNUOF9NSU4JCUlOVDMyX01JTgorI2RlZmluZQlfX0lOVF9GQVNUMTZfTUlOCUlOVDMyX01JTgorI2RlZmluZQlfX0lOVF9GQVNUMzJfTUlOCUlOVDMyX01JTgorI2RlZmluZQlfX0lOVF9GQVNUNjRfTUlOCUlOVDY0X01JTgorI2RlZmluZQlfX0lOVF9GQVNUOF9NQVgJCUlOVDMyX01BWAorI2RlZmluZQlfX0lOVF9GQVNUMTZfTUFYCUlOVDMyX01BWAorI2RlZmluZQlfX0lOVF9GQVNUMzJfTUFYCUlOVDMyX01BWAorI2RlZmluZQlfX0lOVF9GQVNUNjRfTUFYCUlOVDY0X01BWAorI2RlZmluZQlfX1VJTlRfRkFTVDhfTUFYCVVJTlQzMl9NQVgKKyNkZWZpbmUJX19VSU5UX0ZBU1QxNl9NQVgJVUlOVDMyX01BWAorI2RlZmluZQlfX1VJTlRfRkFTVDMyX01BWAlVSU5UMzJfTUFYCisjZGVmaW5lCV9fVUlOVF9GQVNUNjRfTUFYCVVJTlQ2NF9NQVgKKworLyogNy4xOC4xLjQgSW50ZWdlciB0eXBlcyBjYXBhYmxlIG9mIGhvbGRpbmcgb2JqZWN0IHBvaW50ZXJzICovCit0eXBlZGVmCWxvbmcJCQlfX2ludHB0cl90OwordHlwZWRlZgl1bnNpZ25lZCBsb25nCQlfX3VpbnRwdHJfdDsKKworLyogNy4xOC4xLjUgR3JlYXRlc3Qtd2lkdGggaW50ZWdlciB0eXBlcyAqLwordHlwZWRlZglfX2ludDY0X3QJCV9faW50bWF4X3Q7Cit0eXBlZGVmCV9fdWludDY0X3QJCV9fdWludG1heF90OworCisvKiBSZWdpc3RlciBzaXplICovCit0eXBlZGVmIGxvbmcJCQlfX3JlZ2lzdGVyX3Q7CisKKy8qIFZNIHN5c3RlbSB0eXBlcyAqLwordHlwZWRlZiB1bnNpZ25lZCBsb25nCQlfX3ZhZGRyX3Q7Cit0eXBlZGVmIHVuc2lnbmVkIGxvbmcJCV9fcGFkZHJfdDsKK3R5cGVkZWYgdW5zaWduZWQgbG9uZwkJX192c2l6ZV90OwordHlwZWRlZiB1bnNpZ25lZCBsb25nCQlfX3BzaXplX3Q7CisKKy8qIFN0YW5kYXJkIHN5c3RlbSB0eXBlcyAqLwordHlwZWRlZglkb3VibGUJCQlfX2RvdWJsZV90OwordHlwZWRlZglmbG9hdAkJCV9fZmxvYXRfdDsKK3R5cGVkZWYgbG9uZwkJCV9fcHRyZGlmZl90OwordHlwZWRlZglsb25nCQkJX19zc2l6ZV90OworI2lmIGRlZmluZWQoX19HTlVDX18pICYmIF9fR05VQ19fID49IDMKK3R5cGVkZWYJX19idWlsdGluX3ZhX2xpc3QJX192YV9saXN0OworI2Vsc2UKK3R5cGVkZWYgY2hhciAqCQkJX192YV9saXN0OworI2VuZGlmCisKKy8qIFdpZGUgY2hhcmFjdGVyIHN1cHBvcnQgdHlwZXMgKi8KKyNpZm5kZWYgX19jcGx1c3BsdXMKK3R5cGVkZWYJaW50CQkJX193Y2hhcl90OworI2VuZGlmCit0eXBlZGVmIGludAkJCV9fd2ludF90OwordHlwZWRlZglpbnQJCQlfX3J1bmVfdDsKK3R5cGVkZWYJdm9pZCAqCQkJX193Y3RyYW5zX3Q7Cit0eXBlZGVmCXZvaWQgKgkJCV9fd2N0eXBlX3Q7CisKKyNlbmRpZgkvKiBfTUFDSElORV9fVFlQRVNfSF8gKi8KZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2FyY2gteDg2L3NyYy9fX2Rzb19oYW5kbGVfc28uUyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2FyY2gtYWFyY2g2NC9pbmNsdWRlL21hY2hpbmUvZW5kaWFuLmgKc2ltaWxhcml0eSBpbmRleCA3OSUKcmVuYW1lIGZyb20gbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC14ODYvc3JjL19fZHNvX2hhbmRsZV9zby5TCnJlbmFtZSB0byBuZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLWFhcmNoNjQvaW5jbHVkZS9tYWNoaW5lL2VuZGlhbi5oCmluZGV4IDc3YTVkN2YuLjNhNjJlOWMgMTAwNjQ0Ci0tLSBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2FyY2gteDg2L3NyYy9fX2Rzb19oYW5kbGVfc28uUworKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLWFhcmNoNjQvaW5jbHVkZS9tYWNoaW5lL2VuZGlhbi5oCkBAIC0xLDUgKzEsNyBAQAorLyogICAgICAkT3BlbkJTRDogZW5kaWFuLmgsdiAxLjYgMjAxMS8xMS8wOCAxNzowNjo1MSBkZXJhYWR0IEV4cCAkICAgICAgKi8KKwogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTI2LDEzICsyOCwxMiBAQAogICogU1VDSCBEQU1BR0UuCiAgKi8KIAotIyBUaGUgX19kc29faGFuZGxlIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGJ5IHN0YXRpYwotIyBDKysgY29uc3RydWN0b3JzIGFuZCBkZXN0cnVjdG9ycyBpbiB0aGUgYmluYXJ5LgotIyBTZWUgaHR0cDovL3d3dy5jb2Rlc291cmNlcnkuY29tL3B1YmxpYy9jeHgtYWJpL2FiaS5odG1sI2Rzby1kdG9yCi0jCi0JLmRhdGEKLSAgICAgICAgLmFsaWduIDQKLQkuaGlkZGVuIF9fZHNvX2hhbmRsZQotICAgICAgICAuZ2xvYmwgX19kc29faGFuZGxlCi1fX2Rzb19oYW5kbGU6Ci0gICAgICAgIC5sb25nIF9fZHNvX2hhbmRsZQorI2lmbmRlZiBfX0FBUkNINjRfRU5ESUFOX0hfCisjZGVmaW5lIF9fQUFSQ0g2NF9FTkRJQU5fSF8KKworLyogRklYTUUgLSB3b3JrIGluIHByb2dyZXNzICovCisjZGVmaW5lIF9CWVRFX09SREVSIF9MSVRUTEVfRU5ESUFOCisjZGVmaW5lIF9fU1RSSUNUX0FMSUdOTUVOVAorI2luY2x1ZGUgPHN5cy9lbmRpYW4uaD4KKworI2VuZGlmIC8qIF9fQUFSQ0g2NF9FTkRJQU5fSF8gKi8KZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2FyY2gteDg2L3NyYy9fX2Rzb19oYW5kbGUuUyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2FyY2gtYWFyY2g2NC9pbmNsdWRlL21hY2hpbmUvZXhlYy5oCnNpbWlsYXJpdHkgaW5kZXggNzUlCmNvcHkgZnJvbSBuZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLXg4Ni9zcmMvX19kc29faGFuZGxlLlMKY29weSB0byBuZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLWFhcmNoNjQvaW5jbHVkZS9tYWNoaW5lL2V4ZWMuaAppbmRleCAzZTgwMTI4Li5hOGUxNjQxIDEwMDY0NAotLS0gYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLXg4Ni9zcmMvX19kc29faGFuZGxlLlMKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1hYXJjaDY0L2luY2x1ZGUvbWFjaGluZS9leGVjLmgKQEAgLTEsNSArMSwxMCBAQAorLyoJJE9wZW5CU0Q6IGV4ZWMuaCx2IDEuNCAyMDEyLzA5LzExIDE1OjQ0OjE3IGRlcmFhZHQgRXhwICQJKi8KIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICogV3JpdHRlbiBieSBBcnR1ciBHcmFib3dza2kgPGFydEBvcGVuYnNkLm9yZz4gUHVibGljIERvbWFpbgorICovCisKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTI2LDE3ICszMSwxOCBAQAogICogU1VDSCBEQU1BR0UuCiAgKi8KIAotIyBUaGUgX19kc29faGFuZGxlIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGJ5IHN0YXRpYwotIyBDKysgY29uc3RydWN0b3JzIGFuZCBkZXN0cnVjdG9ycyBpbiB0aGUgYmluYXJ5LgotIyBTZWUgaHR0cDovL3d3dy5jb2Rlc291cmNlcnkuY29tL3B1YmxpYy9jeHgtYWJpL2FiaS5odG1sI2Rzby1kdG9yCi0jCi0gICAgICAgIC5zZWN0aW9uIC5ic3MKLSAgICAgICAgLmFsaWduIDQKKyNpZm5kZWYgX01BQ0hJTkVfRVhFQ19IXworI2RlZmluZSBfTUFDSElORV9FWEVDX0hfCiAKLSNpZm5kZWYgQ1JUX0xFR0FDWV9XT1JLQVJPVU5ECi0JLmhpZGRlbiBfX2Rzb19oYW5kbGUKKyNkZWZpbmUgX19MRFBHU1ogNDA5NgorCisjZGVmaW5lIEFSQ0hfRUxGU0laRSA2NAorCisjZGVmaW5lIEVMRl9UQVJHX0NMQVNTCQlFTEZDTEFTUzY0CisjZGVmaW5lIEVMRl9UQVJHX0RBVEEJCUVMRkRBVEEyTFNCCisjZGVmaW5lIEVMRl9UQVJHX01BQ0gJCUVNX0FBUkNINjQKKworI2RlZmluZSBfTkxJU1RfRE9fRUxGCisjZGVmaW5lIF9LRVJOX0RPX0VMRjY0CisKICNlbmRpZgotCi0gICAgICAgIC5nbG9ibCBfX2Rzb19oYW5kbGUKLV9fZHNvX2hhbmRsZToKLSAgICAgICAgLmxvbmcgMApkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC14ODYvc3JjL19fZHNvX2hhbmRsZS5TIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1hYXJjaDY0L2luY2x1ZGUvbWFjaGluZS9rZXJuZWwuaApzaW1pbGFyaXR5IGluZGV4IDY5JQpjb3B5IGZyb20gbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC14ODYvc3JjL19fZHNvX2hhbmRsZS5TCmNvcHkgdG8gbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1hYXJjaDY0L2luY2x1ZGUvbWFjaGluZS9rZXJuZWwuaAppbmRleCAzZTgwMTI4Li5jNmYwYzhjIDEwMDY0NAotLS0gYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLXg4Ni9zcmMvX19kc29faGFuZGxlLlMKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1hYXJjaDY0L2luY2x1ZGUvbWFjaGluZS9rZXJuZWwuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICogQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0yNiwxNyArMjYsMTggQEAKICAqIFNVQ0ggREFNQUdFLgogICovCiAKLSMgVGhlIF9fZHNvX2hhbmRsZSBnbG9iYWwgdmFyaWFibGUgaXMgdXNlZCBieSBzdGF0aWMKLSMgQysrIGNvbnN0cnVjdG9ycyBhbmQgZGVzdHJ1Y3RvcnMgaW4gdGhlIGJpbmFyeS4KLSMgU2VlIGh0dHA6Ly93d3cuY29kZXNvdXJjZXJ5LmNvbS9wdWJsaWMvY3h4LWFiaS9hYmkuaHRtbCNkc28tZHRvcgotIwotICAgICAgICAuc2VjdGlvbiAuYnNzCi0gICAgICAgIC5hbGlnbiA0CisjaWZuZGVmIF9BUkNIX0FBUkNINjRfS0VSTkVMX0gKKyNkZWZpbmUgX0FSQ0hfQUFSQ0g2NF9LRVJORUxfSAogCi0jaWZuZGVmIENSVF9MRUdBQ1lfV09SS0FST1VORAotCS5oaWRkZW4gX19kc29faGFuZGxlCi0jZW5kaWYKKy8qIHRoaXMgZmlsZSBjb250YWlucyBrZXJuZWwtc3BlY2lmaWMgZGVmaW5pdGlvbnMgdGhhdCB3ZXJlIG9wdGltaXplZCBvdXQgb2YKKyAgIG91ciBwcm9jZXNzZWQga2VybmVsIGhlYWRlcnMsIGJ1dCBzdGlsbCB1c2VmdWwgbm9uZXRoZWxlc3MuLi4gKi8KIAotICAgICAgICAuZ2xvYmwgX19kc29faGFuZGxlCi1fX2Rzb19oYW5kbGU6Ci0gICAgICAgIC5sb25nIDAKK3R5cGVkZWYgX19rZXJuZWxfdWxvbmdfdCBfX2tlcm5lbF9ibGtjbnRfdDsKK3R5cGVkZWYgX19rZXJuZWxfdWxvbmdfdCBfX2tlcm5lbF9ibGtzaXplX3Q7CisKKy8qIHRoZXNlIGFyZW4ndCByZWFsbHkgZGVmaW5lZCBieSB0aGUga2VybmVsIGhlYWRlcnMgdGhvdWdoLi4uICovCit0eXBlZGVmIF9fa2VybmVsX3Vsb25nX3QgX19rZXJuZWxfZnNibGtjbnRfdDsKK3R5cGVkZWYgX19rZXJuZWxfdWxvbmdfdCBfX2tlcm5lbF9mc2ZpbGNudF90OwordHlwZWRlZiB1bnNpZ25lZCBpbnQgX19rZXJuZWxfaWRfdDsKKworI2VuZGlmIC8qIF9BUkNIX0FBUkNINjRfS0VSTkVMX0ggKi8KZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2FyY2gtYWFyY2g2NC9pbmNsdWRlL21hY2hpbmUvbGltaXRzLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLWFhcmNoNjQvaW5jbHVkZS9tYWNoaW5lL2xpbWl0cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE4YzRhODgKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLWFhcmNoNjQvaW5jbHVkZS9tYWNoaW5lL2xpbWl0cy5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCSRPcGVuQlNEOiBsaW1pdHMuaCx2IDEuNSAyMDA5LzExLzI3IDE5OjU0OjM1IGd1ZW50aGVyIEV4cCAkCSovCisKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDE5ODggVGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCisgKiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBSRUdFTlRTIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgUkVHRU5UUyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICoKKyAqCUAoIylsaW1pdHMuaAk3LjIgKEJlcmtlbGV5KSA2LzI4LzkwCisgKi8KKworI2lmbmRlZglfTUFDSElORV9MSU1JVFNfSF8KKyNkZWZpbmUJX01BQ0hJTkVfTElNSVRTX0hfCisKKyNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KKworI2lmIF9fUE9TSVhfVklTSUJMRSB8fCBfX1hQR19WSVNJQkxFCisjaWZuZGVmCVNJWkVfTUFYCisjZGVmaW5lIFNJWkVfTUFYCVVMT05HX01BWAkvKiBtYXggdmFsdWUgZm9yIGEgc2l6ZV90ICovCisjZW5kaWYKKyNkZWZpbmUgU1NJWkVfTUFYCUxPTkdfTUFYCS8qIG1heCB2YWx1ZSBmb3IgYSBzc2l6ZV90ICovCisjZW5kaWYKKworI2lmIF9fQlNEX1ZJU0lCTEUKKyNkZWZpbmUJU0laRV9UX01BWAlVTE9OR19NQVgJLyogbWF4IHZhbHVlIGZvciBhIHNpemVfdCAoaGlzdG9yaWMpICovCisKKyNkZWZpbmUJVVFVQURfTUFYCTB4ZmZmZmZmZmZmZmZmZmZmZlVMTAkJLyogbWF4IHVuc2lnbmVkIHF1YWQgKi8KKyNkZWZpbmUJUVVBRF9NQVgJMHg3ZmZmZmZmZmZmZmZmZmZmTEwJCS8qIG1heCBzaWduZWQgcXVhZCAqLworI2RlZmluZQlRVUFEX01JTgkoLTB4N2ZmZmZmZmZmZmZmZmZmZkxMLTEpCS8qIG1pbiBzaWduZWQgcXVhZCAqLworCisjZW5kaWYgLyogX19CU0RfVklTSUJMRSAqLworCisjZW5kaWYgLyogX01BQ0hJTkVfTElNSVRTX0hfICovCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLWFhcmNoNjQvaW5jbHVkZS9zeXMvbGltaXRzLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLWFhcmNoNjQvaW5jbHVkZS9zeXMvbGltaXRzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzZmNzNiMgotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2FyY2gtYWFyY2g2NC9pbmNsdWRlL3N5cy9saW1pdHMuaApAQCAtMCwwICsxLDE3NCBAQAorLyogJE9wZW5CU0Q6IGxpbWl0cy5oLHYgMS42IDIwMDUvMTIvMTMgMDA6MzU6MjMgbWlsbGVydCBFeHAgJCAqLworLyoKKyAqIENvcHlyaWdodCAoYykgMjAwMiBNYXJjIEVzcGllLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIE9QRU5CU0QgUFJPSkVDVCBBTkQgQ09OVFJJQlVUT1JTCisgKiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIE9QRU5CU0QKKyAqIFBST0pFQ1QgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisjaWZuZGVmIF9TWVNfTElNSVRTX0hfCisjZGVmaW5lIF9TWVNfTElNSVRTX0hfCisKKyNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KKyNpbmNsdWRlIDxsaW51eC9saW1pdHMuaD4KKworLyogQ29tbW9uIGRlZmluaXRpb25zIGZvciBsaW1pdHMuaC4gKi8KKworLyogTGVnYWN5ICovCisjaW5jbHVkZSA8bWFjaGluZS9saW1pdHMuaD4KKworI2RlZmluZQlDSEFSX0JJVAk4CQkvKiBudW1iZXIgb2YgYml0cyBpbiBhIGNoYXIgKi8KKworI2RlZmluZQlTQ0hBUl9NQVgJMHg3ZgkJLyogbWF4IHZhbHVlIGZvciBhIHNpZ25lZCBjaGFyICovCisjZGVmaW5lIFNDSEFSX01JTgkoLTB4N2YtMSkJLyogbWluIHZhbHVlIGZvciBhIHNpZ25lZCBjaGFyICovCisKKyNkZWZpbmUJVUNIQVJfTUFYCTB4ZmZVCQkvKiBtYXggdmFsdWUgZm9yIGFuIHVuc2lnbmVkIGNoYXIgKi8KKyNpZmRlZiBfX0NIQVJfVU5TSUdORURfXworIyBkZWZpbmUgQ0hBUl9NSU4JMAkJLyogbWluIHZhbHVlIGZvciBhIGNoYXIgKi8KKyMgZGVmaW5lIENIQVJfTUFYCTB4ZmYJCS8qIG1heCB2YWx1ZSBmb3IgYSBjaGFyICovCisjZWxzZQorIyBkZWZpbmUgQ0hBUl9NQVgJMHg3ZgorIyBkZWZpbmUgQ0hBUl9NSU4JKC0weDdmLTEpCisjZW5kaWYKKworI2RlZmluZQlVU0hSVF9NQVgJMHhmZmZmVQkJLyogbWF4IHZhbHVlIGZvciBhbiB1bnNpZ25lZCBzaG9ydCAqLworI2RlZmluZQlTSFJUX01BWAkweDdmZmYJCS8qIG1heCB2YWx1ZSBmb3IgYSBzaG9ydCAqLworI2RlZmluZSBTSFJUX01JTiAgICAgICAgKC0weDdmZmYtMSkgICAgIC8qIG1pbiB2YWx1ZSBmb3IgYSBzaG9ydCAqLworCisjZGVmaW5lCVVJTlRfTUFYCTB4ZmZmZmZmZmZVCS8qIG1heCB2YWx1ZSBmb3IgYW4gdW5zaWduZWQgaW50ICovCisjZGVmaW5lCUlOVF9NQVgJCTB4N2ZmZmZmZmYJLyogbWF4IHZhbHVlIGZvciBhbiBpbnQgKi8KKyNkZWZpbmUJSU5UX01JTgkJKC0weDdmZmZmZmZmLTEpCS8qIG1pbiB2YWx1ZSBmb3IgYW4gaW50ICovCisKKyNpZmRlZiBfX0xQNjRfXworIyBkZWZpbmUgVUxPTkdfTUFYCTB4ZmZmZmZmZmZmZmZmZmZmZlVMCisJCQkJCS8qIG1heCB2YWx1ZSBmb3IgdW5zaWduZWQgbG9uZyAqLworIyBkZWZpbmUgTE9OR19NQVgJMHg3ZmZmZmZmZmZmZmZmZmZmTAorCQkJCQkvKiBtYXggdmFsdWUgZm9yIGEgc2lnbmVkIGxvbmcgKi8KKyMgZGVmaW5lIExPTkdfTUlOCSgtMHg3ZmZmZmZmZmZmZmZmZmZmTC0xKQorCQkJCQkvKiBtaW4gdmFsdWUgZm9yIGEgc2lnbmVkIGxvbmcgKi8KKyNlbHNlCisjIGRlZmluZSBVTE9OR19NQVgJMHhmZmZmZmZmZlVMCS8qIG1heCB2YWx1ZSBmb3IgYW4gdW5zaWduZWQgbG9uZyAqLworIyBkZWZpbmUgTE9OR19NQVgJMHg3ZmZmZmZmZkwJLyogbWF4IHZhbHVlIGZvciBhIGxvbmcgKi8KKyMgZGVmaW5lIExPTkdfTUlOCSgtMHg3ZmZmZmZmZkwtMSkvKiBtaW4gdmFsdWUgZm9yIGEgbG9uZyAqLworI2VuZGlmCisKKyNpZiBfX0JTRF9WSVNJQkxFIHx8IF9fSVNPX0NfVklTSUJMRSA+PSAxOTk5CisjIGRlZmluZSBVTExPTkdfTUFYCTB4ZmZmZmZmZmZmZmZmZmZmZlVMTAorCQkJCQkvKiBtYXggdmFsdWUgZm9yIHVuc2lnbmVkIGxvbmcgbG9uZyAqLworIyBkZWZpbmUgTExPTkdfTUFYCTB4N2ZmZmZmZmZmZmZmZmZmZkxMCisJCQkJCS8qIG1heCB2YWx1ZSBmb3IgYSBzaWduZWQgbG9uZyBsb25nICovCisjIGRlZmluZSBMTE9OR19NSU4JKC0weDdmZmZmZmZmZmZmZmZmZmZMTC0xKQorCQkJCQkvKiBtaW4gdmFsdWUgZm9yIGEgc2lnbmVkIGxvbmcgbG9uZyAqLworI2VuZGlmCisKKyNpZiBfX0JTRF9WSVNJQkxFCisjIGRlZmluZSBVSURfTUFYCVVJTlRfTUFYCS8qIG1heCB2YWx1ZSBmb3IgYSB1aWRfdCAqLworIyBkZWZpbmUgR0lEX01BWAlVSU5UX01BWAkvKiBtYXggdmFsdWUgZm9yIGEgZ2lkX3QgKi8KKyNlbmRpZgorCisKKyNpZmRlZiBfX0xQNjRfXworIyBkZWZpbmUgTE9OR19CSVQJNjQKKyNlbHNlCisjIGRlZmluZSBMT05HX0JJVAkzMgorI2VuZGlmCisKKy8qIGZsb2F0LmggZGVmaW5lcyB0aGVzZSBhcyB3ZWxsICovCisjIGlmICFkZWZpbmVkKERCTF9ESUcpCisjICBpZiBkZWZpbmVkKF9fREJMX0RJRykKKyMgICBkZWZpbmUgREJMX0RJRwlfX0RCTF9ESUcKKyMgICBkZWZpbmUgREJMX01BWAlfX0RCTF9NQVgKKyMgICBkZWZpbmUgREJMX01JTglfX0RCTF9NSU4KKworIyAgIGRlZmluZSBGTFRfRElHCV9fRkxUX0RJRworIyAgIGRlZmluZSBGTFRfTUFYCV9fRkxUX01BWAorIyAgIGRlZmluZSBGTFRfTUlOCV9fRkxUX01JTgorIyAgZWxzZQorIyAgIGRlZmluZSBEQkxfRElHCTE1CisjICAgZGVmaW5lIERCTF9NQVgJMS43OTc2OTMxMzQ4NjIzMTU3RSszMDgKKyMgICBkZWZpbmUgREJMX01JTgkyLjIyNTA3Mzg1ODUwNzIwMTRFLTMwOAorCisjICAgZGVmaW5lIEZMVF9ESUcJNgorIyAgIGRlZmluZSBGTFRfTUFYCTMuNDAyODIzNDdFKzM4RgorIyAgIGRlZmluZSBGTFRfTUlOCTEuMTc1NDk0MzVFLTM4RgorIyAgZW5kaWYKKyMgZW5kaWYKKworLyogQmlvbmljOiB0aGUgZm9sbG93aW5nIGhhcyBiZWVuIG9wdGltaXplZCBvdXQgZnJvbSBvdXIgcHJvY2Vzc2VkIGtlcm5lbCBoZWFkZXJzICovCisKKyNkZWZpbmUgIENISUxEX01BWCAgIDk5OQorI2RlZmluZSAgT1BFTl9NQVggICAgMjU2CisKKy8qIEJpb25pYy1zcGVjaWZpYyBkZWZpbml0aW9ucyAqLworCisjZGVmaW5lICBfUE9TSVhfVkVSU0lPTiAgICAgICAgICAgICAyMDAxMTJMICAgLyogUG9zaXggQyBsYW5ndWFnZSBiaW5kaW5ncyB2ZXJzaW9uICovCisjZGVmaW5lICBfUE9TSVgyX1ZFUlNJT04gICAgICAgICAgICAtMSAgICAgICAgLyogd2UgZG9uJ3Qgc3VwcG9ydCBQb3NpeCBjb21tYW5kLWxpbmUgdG9vbHMgKi8KKyNkZWZpbmUgIF9QT1NJWDJfQ19WRVJTSU9OICAgICAgICAgIF9QT1NJWF9WRVJTSU9OCisjZGVmaW5lICBfWE9QRU5fVkVSU0lPTiAgICAgICAgICAgICA1MDAgICAgICAgLyogYnkgUG9zaXggZGVmaW5pdGlvbiAqLworI2RlZmluZSAgX1hPUEVOX1hDVV9WRVJTSU9OICAgICAgICAgLTEgICAgICAgIC8qIHdlIGRvbid0IHN1cHBvcnQgY29tbWFuZC1saW5lIHV0aWxpdGllcyAqLworCisvKiB0ZWxsIHdoYXQgd2UgaW1wbGVtZW50IGxlZ2FjeSBzdHVmZiB3aGVuIGFwcHJvcHJpYXRlICovCisjaWYgX1BPU0lYX1ZFUlNJT04gPiAwCisjZGVmaW5lICBfWE9QRU5fWFBHMiAgICAgICAgICAgICAgICAxCisjZGVmaW5lICBfWE9QRU5fWFBHMyAgICAgICAgICAgICAgICAxCisjZGVmaW5lICBfWE9QRU5fWFBHNCAgICAgICAgICAgICAgICAxCisjZGVmaW5lICBfWE9QRU5fVU5JWCAgICAgICAgICAgICAgICAxCisjZW5kaWYKKworI2RlZmluZSAgX1hPUEVOX0VOSF9JMThOICAgICAgICAgIC0xICAvKiB3ZSBkb24ndCBzdXBwb3J0IGludGVybmF0aW9uYWxpemF0aW9uIGluIHRoZSBDIGxpYnJhcnkgKi8KKyNkZWZpbmUgIF9YT1BFTl9DUllQVCAgICAgICAgICAgICAtMSAgLyogZG9uJ3Qgc3VwcG9ydCBYL09wZW4gRW5jcnlwdGlvbiAqLworI2RlZmluZSAgX1hPUEVOX0xFR0FDWSAgICAgICAgICAgIC0xICAvKiBkb24ndCBjbGFpbSB3ZSBzdXBwb3J0IHRoZXNlLCB3ZSBoYXZlIHNvbWUgb2YgdGhlbSBidXQgbm90IGFsbCAqLworI2RlZmluZSAgX1hPUEVOX1JFQUxUSU1FICAgICAgICAgIC0xIC8qIHdlIGRvbid0IHN1cHBvcnQgYWxsIHRoZXNlIGZ1bmN0aW9ucyAqLworI2RlZmluZSAgX1hPUEVOX1JFQUxUSU1FX1RIUkVBRFMgIC0xICAvKiBzYW1lIGhlcmUgKi8KKworI2RlZmluZSAgX1BPU0lYX1JFQUxUSU1FX1NJR05BTFMgICAgLTEgIC8qIGZvciBub3csIHRoaXMgaXMgbm90IHN1cHBvcnRlZCAqLworI2RlZmluZSAgX1BPU0lYX1BSSU9SSVRZX1NDSEVEVUxJTkcgIDEgIC8qIHByaW9yaXR5IHNjaGVkdWxpbmcgaXMgYSBMaW51eCBmZWF0dXJlICovCisjZGVmaW5lICBfUE9TSVhfVElNRVJTICAgICAgICAgICAgICAgMSAgLyogUG9zaXggdGltZXJzIGFyZSBzdXBwb3J0ZWQgKi8KKyN1bmRlZiAgIF9QT1NJWF9BU1lOQ0hST05PVVNfSU8gICAgICAgICAvKiBhaW9fIGZ1bmN0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCAqLworI2RlZmluZSAgX1BPU0lYX1NZTkNIUk9OSVpFRF9JTyAgICAgIDEgIC8qIHN5bmNocm9uaXplZCBpL28gc3VwcG9ydGVkICovCisjZGVmaW5lICBfUE9TSVhfRlNZTkMgICAgICAgICAgICAgICAgMSAgLyogZmRhdGFzeW5jKCkgc3VwcG9ydGVkICovCisjZGVmaW5lICBfUE9TSVhfTUFQUEVEX0ZJTEVTICAgICAgICAgMSAgLyogbW1hcC1lZCBmaWxlcyBzdXBwb3J0ZWQgKi8KKworLyogWFhYOiBUT0RPOiBjb21wbGV0ZSBhbmQgY2hlY2sgbGlzdCBoZXJlICovCisKKworI2RlZmluZSAgX1BPU0lYX1RIUkVBRFMgICAgICAgICAgICAgMSAgICAvKiB3ZSBzdXBwb3J0IHRocmVhZHMgKi8KKyNkZWZpbmUgIF9QT1NJWF9USFJFQURfU1RBQ0tBRERSICAgIDEgICAgLyogd2Ugc3VwcG9ydCB0aHJlYWQgc3RhY2sgYWRkcmVzcyAqLworI2RlZmluZSAgX1BPU0lYX1RIUkVBRF9TVEFDS1NJWkUgICAgMSAgICAvKiB3ZSBzdXBwb3J0IHRocmVhZCBzdGFjayBzaXplICovCisjZGVmaW5lICBfUE9TSVhfVEhSRUFEX1BSSU9fSU5IRVJJVCAyMDAxMTJMICAgLyogbGludXggZmVhdHVyZSAqLworI2RlZmluZSAgX1BPU0lYX1RIUkVBRF9QUklPX1BST1RFQ1QgMjAwMTEyTCAgIC8qIGxpbnV4IGZlYXR1cmUgKi8KKworI3VuZGVmICAgX1BPU0lYX1BST0NFU1NfU0hBUkVEICAgICAgICAgICAvKiB3ZSBkb24ndCBzdXBwb3J0IHByb2Nlc3Mtc2hhcmVkIHN5bmNocm9uaXphdGlvbiAqLworI3VuZGVmICAgX1BPU0lYX1RIUkVBRF9TQUZFX0ZVTkNUSU9OUyAgICAvKiBtb3N0IGZ1bmN0aW9ucyBhcmUsIGJ1dCBub3QgZXZlcnl0aGluZyB5ZXQgKi8KKyNkZWZpbmUgIF9QT1NJWF9DSE9XTl9SRVNUUklDVEVEICAgIDEgICAgLyogeWVzLCBjaG93biByZXF1aXJlcyBhcHByb3ByaWF0ZSBwcml2aWxlZ2VzICovCisjZGVmaW5lICBfUE9TSVhfTU9OT1RPTklDX0NMT0NLICAgICAwICAgIC8qIHRoZSBtb25vdG9uaWMgY2xvY2sgbWF5IGJlIGF2YWlsYWJsZTsgYXNrIHN5c2NvbmYgKi8KKyNkZWZpbmUgIF9QT1NJWF9OT19UUlVOQyAgICAgICAgICAgIDEgICAgLyogdmVyeSBsb25nIHBhdGhuYW1lcyBnZW5lcmF0ZSBhbiBlcnJvciAqLworI2RlZmluZSAgX1BPU0lYX1NBVkVEX0lEUyAgICAgICAgICAgMSAgICAvKiBzYXZlZCB1c2VyIGlkcyBpcyBhIExpbnV4IGZlYXR1cmUgKi8KKyNkZWZpbmUgIF9QT1NJWF9KT0JfQ09OVFJPTCAgICAgICAgIDEgICAgLyogam9iIGNvbnRyb2wgaXMgYSBMaW51eCBmZWF0dXJlICovCisKKyNkZWZpbmUgX1BPU0lYX1RIUkVBRF9ERVNUUlVDVE9SX0lURVJBVElPTlMgNCAvKiB0aGUgbWluaW11bSBtYW5kYXRlZCBieSBQT1NJWCAqLworI2RlZmluZSBQVEhSRUFEX0RFU1RSVUNUT1JfSVRFUkFUSU9OUyBfUE9TSVhfVEhSRUFEX0RFU1RSVUNUT1JfSVRFUkFUSU9OUworI2RlZmluZSBfUE9TSVhfVEhSRUFEX0tFWVNfTUFYIDEyOCAgICAgICAgICAgIC8qIHRoZSBtaW5pbXVtIG1hbmRhdGVkIGJ5IFBPU0lYICovCisjZGVmaW5lIFBUSFJFQURfS0VZU19NQVggX1BPU0lYX1RIUkVBRF9LRVlTX01BWAorI2RlZmluZSBfUE9TSVhfVEhSRUFEX1RIUkVBRFNfTUFYIDY0ICAgICAgICAgIC8qIHRoZSBtaW5pbXVtIG1hbmRhdGVkIGJ5IFBPU0lYICovCisjZGVmaW5lIFBUSFJFQURfVEhSRUFEU19NQVggICAgICAgICAgICAgICAgICAgLyogYmlvbmljIGhhcyBubyBzcGVjaWZpYyBsaW1pdCAqLworCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1hYXJjaDY0L2luY2x1ZGUvc3lzL3R5cGVzLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLWFhcmNoNjQvaW5jbHVkZS9zeXMvdHlwZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzU2OTJkCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1hYXJjaDY0L2luY2x1ZGUvc3lzL3R5cGVzLmgKQEAgLTAsMCArMSwxMjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluCisgKiAgICB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiAgICBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTCisgKiBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICogQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAorICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywKKyAqIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUworICogT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VECisgKiBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQKKyAqIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKyNpZm5kZWYgX1NZU19UWVBFU19IXworI2RlZmluZSBfU1lTX1RZUEVTX0hfCisKKyNkZWZpbmUgX19uZWVkX3NpemVfdAorI2RlZmluZSBfX25lZWRfcHRyZGlmZl90CisjaW5jbHVkZSA8c3RkZGVmLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8c3lzL2NkZWZzLmg+CisKKyNpbmNsdWRlIDxsaW51eC9wb3NpeF90eXBlcy5oPgorI2luY2x1ZGUgPGFzbS90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8bWFjaGluZS9rZXJuZWwuaD4KKwordHlwZWRlZiBfX3UzMiAgICBfX2tlcm5lbF9kZXZfdDsKKworLyogYmUgY2FyZWZ1bCB3aXRoIF9fa2VybmVsX2dpZF90IGFuZCBfX2tlcm5lbF91aWRfdAorICogdGhlc2UgYXJlIGRlZmluZWQgYXMgMTYtYml0IGZvciBsZWdhY3kgcmVhc29uLCBidXQKKyAqIHRoZSBrZXJuZWwgdXNlcyAzMi1iaXRzIGluc3RlYWQuCisgKgorICogMzItYml0IHZhbHVlYSBhcmUgcmVxdWlyZWQgZm9yIEFuZHJvaWQsIHNvIHVzZQorICogX19rZXJuZWxfdWlkMzJfdCBhbmQgX19rZXJuZWxfZ2lkMzJfdAorICovCisKK3R5cGVkZWYgX19rZXJuZWxfYmxrY250X3QgICAgYmxrY250X3Q7Cit0eXBlZGVmIF9fa2VybmVsX2Jsa3NpemVfdCAgIGJsa3NpemVfdDsKK3R5cGVkZWYgX19rZXJuZWxfY2xvY2tfdCAgICAgY2xvY2tfdDsKK3R5cGVkZWYgX19rZXJuZWxfY2xvY2tpZF90ICAgY2xvY2tpZF90OwordHlwZWRlZiBfX2tlcm5lbF9kZXZfdCAgICAgICBkZXZfdDsKK3R5cGVkZWYgX19rZXJuZWxfZnNibGtjbnRfdCAgZnNibGtjbnRfdDsKK3R5cGVkZWYgX19rZXJuZWxfZnNmaWxjbnRfdCAgZnNmaWxjbnRfdDsKK3R5cGVkZWYgX19rZXJuZWxfZ2lkMzJfdCAgICAgZ2lkX3Q7Cit0eXBlZGVmIF9fa2VybmVsX2lkX3QgICAgICAgIGlkX3Q7Cit0eXBlZGVmIF9fa2VybmVsX2lub190ICAgICAgIGlub190OwordHlwZWRlZiBfX2tlcm5lbF9rZXlfdCAgICAgICBrZXlfdDsKK3R5cGVkZWYgX19rZXJuZWxfbW9kZV90ICAgICAgbW9kZV90OworI2lmbmRlZiBfT0ZGX1RfREVGSU5FRF8KKyNkZWZpbmUgX09GRl9UX0RFRklORURfCit0eXBlZGVmIF9fa2VybmVsX29mZl90ICAgICAgIG9mZl90OworI2VuZGlmCit0eXBlZGVmIF9fa2VybmVsX2xvZmZfdCAgICAgIGxvZmZfdDsKK3R5cGVkZWYgbG9mZl90ICAgICAgICAgICAgICAgb2ZmNjRfdDsgIC8qIEdMaWJjLXNwZWNpZmljICovCisKK3R5cGVkZWYgX19rZXJuZWxfcGlkX3QJCSBwaWRfdDsKKworLyogd2hpbGUgUE9TSVggd2FudHMgdGhlc2UgaW4gPHN5cy90eXBlcy5oPiwgd2UKKyAqIGRlY2xhcmUgdGhlbiBpbiA8cHRocmVhZC5oPiBpbnN0ZWFkICovCisjaWYgMAordHlwZWRlZiAgLi4uLiBwdGhyZWFkX2F0dHJfdDsKK3R5cGVkZWYgIC4uLi4gcHRocmVhZF9jb25kX3Q7Cit0eXBlZGVmICAuLi4uIHB0aHJlYWRfY29uZGF0dHJfdDsKK3R5cGVkZWYgIC4uLi4gcHRocmVhZF9rZXlfdDsKK3R5cGVkZWYgIC4uLi4gcHRocmVhZF9tdXRleF90OwordHlwZWRlZiAgLi4uLiBwdGhyZWFkX29uY2VfdDsKK3R5cGVkZWYgIC4uLi4gcHRocmVhZF9yd2xvY2tfdDsKK3R5cGVkZWYgIC4uLi4gcHRocmVhZF9yd2xvY2tfYXR0cl90OwordHlwZWRlZiAgLi4uLiBwdGhyZWFkX3Q7CisjZW5kaWYKKworI2lmbmRlZiBfU1NJWkVfVF9ERUZJTkVEXworI2RlZmluZSBfU1NJWkVfVF9ERUZJTkVEXwordHlwZWRlZiBsb25nIGludCAgc3NpemVfdDsKKyNlbmRpZgorCit0eXBlZGVmIF9fa2VybmVsX3N1c2Vjb25kc190ICBzdXNlY29uZHNfdDsKK3R5cGVkZWYgX19rZXJuZWxfdGltZV90ICAgICAgIHRpbWVfdDsKK3R5cGVkZWYgX19rZXJuZWxfdWlkMzJfdCAgICAgICAgdWlkX3Q7Cit0eXBlZGVmIHNpZ25lZCBsb25nICAgICAgICAgICB1c2Vjb25kc190OworCit0eXBlZGVmIF9fa2VybmVsX2RhZGRyX3QJZGFkZHJfdDsKK3R5cGVkZWYgX19rZXJuZWxfdGltZXJfdAl0aW1lcl90OwordHlwZWRlZiBfX2tlcm5lbF9tcWRfdAkJbXFkX3Q7CisKK3R5cGVkZWYgX19rZXJuZWxfY2FkZHJfdCAgICBjYWRkcl90OwordHlwZWRlZiB1bnNpZ25lZCBpbnQgICAgICAgIHVpbnRfdDsKK3R5cGVkZWYgdW5zaWduZWQgaW50ICAgICAgICB1aW50OworCisvKiBmb3Igc29tZSBhcHBsaWNhdGlvbnMgKi8KKyNpbmNsdWRlIDxzeXMvc3lzbWFjcm9zLmg+CisKKyNpZmRlZiBfX0JTRF9WSVNJQkxFCit0eXBlZGVmCXVuc2lnbmVkIGNoYXIJdV9jaGFyOwordHlwZWRlZgl1bnNpZ25lZCBzaG9ydAl1X3Nob3J0OwordHlwZWRlZgl1bnNpZ25lZCBpbnQJdV9pbnQ7Cit0eXBlZGVmCXVuc2lnbmVkIGxvbmcJdV9sb25nOworCit0eXBlZGVmIHVpbnQzMl90ICAgICAgIHVfaW50MzJfdDsKK3R5cGVkZWYgdWludDE2X3QgICAgICAgdV9pbnQxNl90OwordHlwZWRlZiB1aW50OF90ICAgICAgICB1X2ludDhfdDsKK3R5cGVkZWYgdWludDY0X3QgICAgICAgdV9pbnQ2NF90OworI2VuZGlmCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1hcm0vc3ltYm9scy9saWJhbmRyb2lkLnNvLmZ1bmN0aW9ucy50eHQgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLWFybS9zeW1ib2xzL2xpYmFuZHJvaWQuc28uZnVuY3Rpb25zLnR4dAppbmRleCA0NDM4YzVlLi5mNzFkOGY4IDEwMDY0NAotLS0gYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLWFybS9zeW1ib2xzL2xpYmFuZHJvaWQuc28uZnVuY3Rpb25zLnR4dAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLWFybS9zeW1ib2xzL2xpYmFuZHJvaWQuc28uZnVuY3Rpb25zLnR4dApAQCAtMSwxNCArMSwxNCBAQAorQUFzc2V0X2Nsb3NlCiBBQXNzZXREaXJfY2xvc2UKIEFBc3NldERpcl9nZXROZXh0RmlsZU5hbWUKIEFBc3NldERpcl9yZXdpbmQKLUFBc3NldE1hbmFnZXJfZnJvbUphdmEKLUFBc3NldE1hbmFnZXJfb3BlbgotQUFzc2V0TWFuYWdlcl9vcGVuRGlyCi1BQXNzZXRfY2xvc2UKIEFBc3NldF9nZXRCdWZmZXIKIEFBc3NldF9nZXRMZW5ndGgKIEFBc3NldF9nZXRSZW1haW5pbmdMZW5ndGgKIEFBc3NldF9pc0FsbG9jYXRlZAorQUFzc2V0TWFuYWdlcl9mcm9tSmF2YQorQUFzc2V0TWFuYWdlcl9vcGVuCitBQXNzZXRNYW5hZ2VyX29wZW5EaXIKIEFBc3NldF9vcGVuRmlsZURlc2NyaXB0b3IKIEFBc3NldF9yZWFkCiBBQXNzZXRfc2VlawpAQCAtODMsOCArODMsMTUgQEAKIEFNb3Rpb25FdmVudF9nZXRFdmVudFRpbWUKIEFNb3Rpb25FdmVudF9nZXRGbGFncwogQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxFdmVudFRpbWUKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsT3JpZW50YXRpb24KIEFNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsUHJlc3N1cmUKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsUmF3WAorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxSYXdZCiBBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFNpemUKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsVG9vbE1ham9yCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFRvb2xNaW5vcgorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxUb3VjaE1ham9yCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFRvdWNoTWlub3IKIEFNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsWAogQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxZCiBBTW90aW9uRXZlbnRfZ2V0SGlzdG9yeVNpemUKQEAgLTEzMCwxNiArMTM3LDE2IEBACiBBU2Vuc29yRXZlbnRRdWV1ZV9nZXRFdmVudHMKIEFTZW5zb3JFdmVudFF1ZXVlX2hhc0V2ZW50cwogQVNlbnNvckV2ZW50UXVldWVfc2V0RXZlbnRSYXRlCi1BU2Vuc29yTWFuYWdlcl9jcmVhdGVFdmVudFF1ZXVlCi1BU2Vuc29yTWFuYWdlcl9kZXN0cm95RXZlbnRRdWV1ZQotQVNlbnNvck1hbmFnZXJfZ2V0RGVmYXVsdFNlbnNvcgotQVNlbnNvck1hbmFnZXJfZ2V0SW5zdGFuY2UKLUFTZW5zb3JNYW5hZ2VyX2dldFNlbnNvckxpc3QKIEFTZW5zb3JfZ2V0TWluRGVsYXkKIEFTZW5zb3JfZ2V0TmFtZQogQVNlbnNvcl9nZXRSZXNvbHV0aW9uCiBBU2Vuc29yX2dldFR5cGUKIEFTZW5zb3JfZ2V0VmVuZG9yCitBU2Vuc29yTWFuYWdlcl9jcmVhdGVFdmVudFF1ZXVlCitBU2Vuc29yTWFuYWdlcl9kZXN0cm95RXZlbnRRdWV1ZQorQVNlbnNvck1hbmFnZXJfZ2V0RGVmYXVsdFNlbnNvcgorQVNlbnNvck1hbmFnZXJfZ2V0SW5zdGFuY2UKK0FTZW5zb3JNYW5hZ2VyX2dldFNlbnNvckxpc3QKIEFTdG9yYWdlTWFuYWdlcl9kZWxldGUKIEFTdG9yYWdlTWFuYWdlcl9nZXRNb3VudGVkT2JiUGF0aAogQVN0b3JhZ2VNYW5hZ2VyX2lzT2JiTW91bnRlZApkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1hcm0vc3ltYm9scy9saWJtLnNvLmZ1bmN0aW9ucy50eHQgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLWFybS9zeW1ib2xzL2xpYm0uc28uZnVuY3Rpb25zLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOWIyZDdhCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1hcm0vc3ltYm9scy9saWJtLnNvLmZ1bmN0aW9ucy50eHQKQEAgLTAsMCArMSwyMjkgQEAKK19fYWRkc2YzCitfX2FlYWJpX2NmY21wZXEKK19fYWVhYmlfY2ZjbXBsZQorX19hZWFiaV9jZnJjbXBsZQorX19hZWFiaV9kMmx6CitfX2FlYWJpX2QydWl6CitfX2FlYWJpX2QydWx6CitfX2FlYWJpX2RjbXB1bgorX19hZWFiaV9mMml6CitfX2FlYWJpX2YybHoKK19fYWVhYmlfZjJ1bHoKK19fYWVhYmlfZmFkZAorX19hZWFiaV9mY21wZXEKK19fYWVhYmlfZmNtcGdlCitfX2FlYWJpX2ZjbXBndAorX19hZWFiaV9mY21wbGUKK19fYWVhYmlfZmNtcGx0CitfX2FlYWJpX2ZjbXB1bgorX19hZWFiaV9mZGl2CitfX2FlYWJpX2ZtdWwKK19fYWVhYmlfZnJzdWIKK19fYWVhYmlfZnN1YgorX19hZWFiaV9pMmYKK19fYWVhYmlfbDJmCitfX2FlYWJpX3VpMmYKK19fYWVhYmlfdWwyZgorX19jbXBzZjIKK19fZGl2c2YzCitfX2Vxc2YyCitfX2V4cF9fRAorX19maXhkZmRpCitfX2ZpeHNmZGkKK19fZml4c2ZzaQorX19maXh1bnNkZmRpCitfX2ZpeHVuc2Rmc2kKK19fZml4dW5zc2ZkaQorX19mbG9hdGRpc2YKK19fZmxvYXRzaXNmCitfX2Zsb2F0dW5kaXNmCitfX2Zsb2F0dW5zaXNmCitfX2ZwY2xhc3NpZnlkCitfX2ZwY2xhc3NpZnlmCitfX2ZwY2xhc3NpZnlsCitfX2dlc2YyCitfX2d0c2YyCitfX2llZWU3NTRfcmVtX3BpbzIKK19faWVlZTc1NF9yZW1fcGlvMmYKK19faXNmaW5pdGUKK19faXNmaW5pdGVmCitfX2lzZmluaXRlbAorX19pc2luZgorX19pc2luZmYKK19faXNpbmZsCitfX2lzbmFubAorX19pc25vcm1hbAorX19pc25vcm1hbGYKK19faXNub3JtYWxsCitfX2tlcm5lbF9jb3MKK19fa2VybmVsX2Nvc2RmCitfX2tlcm5lbF9yZW1fcGlvMgorX19rZXJuZWxfc2luCitfX2tlcm5lbF9zaW5kZgorX19rZXJuZWxfdGFuCitfX2tlcm5lbF90YW5kZgorX19sZXNmMgorX19sb2dfX0QKK19fbHRzZjIKK19fbXVsc2YzCitfX25lc2YyCitfX3NpZ25iaXQKK19fc2lnbmJpdGYKK19fc2lnbmJpdGwKK19fc3Vic2YzCitfX3Vub3JkZGYyCitfX3Vub3Jkc2YyCithY29zCithY29zZgorYWNvc2gKK2Fjb3NoZgorYXNpbgorYXNpbmYKK2FzaW5oCithc2luaGYKK2F0YW4KK2F0YW4yCithdGFuMmYKK2F0YW5mCithdGFuaAorYXRhbmhmCitjYnJ0CitjYnJ0ZgorY2VpbAorY2VpbGYKK2NlaWxsCitjb3B5c2lnbgorY29weXNpZ25mCitjb3B5c2lnbmwKK2NvcworY29zZgorY29zaAorY29zaGYKK2RyZW0KK2RyZW1mCitlcmYKK2VyZmMKK2VyZmNmCitlcmZmCitleHAKK2V4cDIKK2V4cDJmCitleHBmCitleHBtMQorZXhwbTFmCitmYWJzCitmYWJzZgorZmFic2wKK2ZkaW0KK2ZkaW1mCitmZGltbAorZmluaXRlCitmaW5pdGVmCitmbG9vcgorZmxvb3JmCitmbG9vcmwKK2ZtYQorZm1hZgorZm1heAorZm1heGYKK2ZtYXhsCitmbWluCitmbWluZgorZm1pbmwKK2Ztb2QKK2Ztb2RmCitmcmV4cAorZnJleHBmCitnYW1tYQorZ2FtbWFfcgorZ2FtbWFmCitnYW1tYWZfcgoraHlwb3QKK2h5cG90ZgoraWxvZ2IKK2lsb2diZgoraWxvZ2JsCitpc25hbgoraXNuYW5mCitqMAorajBmCitqMQorajFmCitqbgoram5mCitsZGV4cAorbGRleHBmCitsZGV4cGwKK2xnYW1tYQorbGdhbW1hX3IKK2xnYW1tYWYKK2xnYW1tYWZfcgorbGxyaW50CitsbHJpbnRmCitsbHJvdW5kCitsbHJvdW5kZgorbGxyb3VuZGwKK2xvZworbG9nMTAKK2xvZzEwZgorbG9nMXAKK2xvZzFwZgorbG9nYgorbG9nYmYKK2xvZ2YKK2xyaW50CitscmludGYKK2xyb3VuZAorbHJvdW5kZgorbHJvdW5kbAorbW9kZgorbW9kZmYKK25lYXJieWludAorbmVhcmJ5aW50ZgorbmV4dGFmdGVyCituZXh0YWZ0ZXJmCituZXh0dG93YXJkZgorcG93Citwb3dmCityZW1haW5kZXIKK3JlbWFpbmRlcmYKK3JlbXF1bworcmVtcXVvZgorcmludAorcmludGYKK3JvdW5kCityb3VuZGYKK3JvdW5kbAorc2NhbGIKK3NjYWxiZgorc2NhbGJsbgorc2NhbGJsbmYKK3NjYWxibG5sCitzY2FsYm4KK3NjYWxibmYKK3NjYWxibmwKK3NpZ25pZmljYW5kCitzaWduaWZpY2FuZGYKK3Npbgorc2luY29zCitzaW5jb3NmCitzaW5jb3NsCitzaW5mCitzaW5oCitzaW5oZgorc3FydAorc3FydGYKK3RhbgordGFuZgordGFuaAordGFuaGYKK3RnYW1tYQordHJ1bmMKK3RydW5jZgordHJ1bmNsCit5MAoreTBmCit5MQoreTFmCit5bgoreW5mCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLWFybS9zeW1ib2xzL2xpYm0uc28udmFyaWFibGVzLnR4dCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2FyY2gtYXJtL3N5bWJvbHMvbGlibS5zby52YXJpYWJsZXMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExYjYzZmMKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLWFybS9zeW1ib2xzL2xpYm0uc28udmFyaWFibGVzLnR4dApAQCAtMCwwICsxLDIgQEAKK19fZmVfZGZsX2Vudgorc2lnbmdhbQpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1taXBzL2luY2x1ZGUvc3lzL3Zmcy5oIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1taXBzL2luY2x1ZGUvc3lzL3Zmcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMTQ5NDRkLi4wMDAwMDAwCi0tLSBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2FyY2gtbWlwcy9pbmNsdWRlL3N5cy92ZnMuaAorKysgL2Rldi9udWxsCkBAIC0xLDExOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbgotICogICAgdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogICAgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUwotICogRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKLSAqIENPUFlSSUdIVCBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsCi0gKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MKLSAqIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRAotICogQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUCi0gKiBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKLSAqIFNVQ0ggREFNQUdFLgotICovCi0jaWZuZGVmIF9TWVNfVkZTX0hfCi0jZGVmaW5lIF9TWVNfVkZTX0hfCi0KLSNpbmNsdWRlIDxzdGRpbnQuaD4KLSNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLQotX19CRUdJTl9ERUNMUwotCi0vKiBub3RlOiB0aGlzIGNvcnJlc3BvbmRzIHRvIHRoZSBrZXJuZWwncyBzdGF0ZnM2NCB0eXBlICovCi0jaWZkZWYgX19taXBzX18KLXN0cnVjdCBzdGF0ZnMgewotICAgIHVpbnQzMl90ICAgICAgICBmX3R5cGU7Ci0gICAgdWludDMyX3QgICAgICAgIGZfYnNpemU7Ci0gICAgdWludDMyX3QgICAgICAgIGZfZnJzaXplOwotICAgIHVpbnQzMl90ICAgICAgICBfX3BhZDsKLSAgICB1aW50NjRfdCAgICAgICAgZl9ibG9ja3M7Ci0gICAgdWludDY0X3QgICAgICAgIGZfYmZyZWU7Ci0gICAgdWludDY0X3QgICAgICAgIGZfZmlsZXM7Ci0gICAgdWludDY0X3QgICAgICAgIGZfZmZyZWU7Ci0gICAgdWludDY0X3QgICAgICAgIGZfYmF2YWlsOwotICAgIF9fa2VybmVsX2ZzaWRfdCBmX2ZzaWQ7Ci0gICAgdWludDMyX3QgICAgICAgIGZfbmFtZWxlbjsKLSAgICB1aW50MzJfdCAgICAgICAgZl9zcGFyZVs2XTsKLX07Ci0jZWxzZQotc3RydWN0IHN0YXRmcyB7Ci0gICAgdWludDMyX3QgICAgICAgIGZfdHlwZTsKLSAgICB1aW50MzJfdCAgICAgICAgZl9ic2l6ZTsKLSAgICB1aW50NjRfdCAgICAgICAgZl9ibG9ja3M7Ci0gICAgdWludDY0X3QgICAgICAgIGZfYmZyZWU7Ci0gICAgdWludDY0X3QgICAgICAgIGZfYmF2YWlsOwotICAgIHVpbnQ2NF90ICAgICAgICBmX2ZpbGVzOwotICAgIHVpbnQ2NF90ICAgICAgICBmX2ZmcmVlOwotICAgIF9fa2VybmVsX2ZzaWRfdCBmX2ZzaWQ7Ci0gICAgdWludDMyX3QgICAgICAgIGZfbmFtZWxlbjsKLSAgICB1aW50MzJfdCAgICAgICAgZl9mcnNpemU7Ci0gICAgdWludDMyX3QgICAgICAgIGZfc3BhcmVbNV07Ci19OwotI2VuZGlmCi0KLSNkZWZpbmUgIEFERlNfU1VQRVJfTUFHSUMgICAgICAweGFkZjUKLSNkZWZpbmUgIEFGRlNfU1VQRVJfTUFHSUMgICAgICAweEFERkYKLSNkZWZpbmUgIEJFRlNfU1VQRVJfTUFHSUMgICAgICAweDQyNDY1MzMxCi0jZGVmaW5lICBCRlNfTUFHSUMgICAgICAgICAgICAgMHgxQkFERkFDRQotI2RlZmluZSAgQ0lGU19NQUdJQ19OVU1CRVIgICAgIDB4RkY1MzRENDIKLSNkZWZpbmUgIENPREFfU1VQRVJfTUFHSUMgICAgICAweDczNzU3MjQ1Ci0jZGVmaW5lICBDT0hfU1VQRVJfTUFHSUMgICAgICAgMHgwMTJGRjdCNwotI2RlZmluZSAgQ1JBTUZTX01BR0lDICAgICAgICAgIDB4MjhjZDNkNDUKLSNkZWZpbmUgIERFVkZTX1NVUEVSX01BR0lDICAgICAweDEzNzMKLSNkZWZpbmUgIEVGU19TVVBFUl9NQUdJQyAgICAgICAweDAwNDE0QTUzCi0jZGVmaW5lICBFWFRfU1VQRVJfTUFHSUMgICAgICAgMHgxMzdECi0jZGVmaW5lICBFWFQyX09MRF9TVVBFUl9NQUdJQyAgMHhFRjUxCi0jZGVmaW5lICBFWFQyX1NVUEVSX01BR0lDICAgICAgMHhFRjUzCi0jZGVmaW5lICBFWFQzX1NVUEVSX01BR0lDICAgICAgMHhFRjUzCi0jZGVmaW5lICBIRlNfU1VQRVJfTUFHSUMgICAgICAgMHg0MjQ0Ci0jZGVmaW5lICBIUEZTX1NVUEVSX01BR0lDICAgICAgMHhGOTk1RTg0OQotI2RlZmluZSAgSFVHRVRMQkZTX01BR0lDICAgICAgIDB4OTU4NDU4ZjYKLSNkZWZpbmUgIElTT0ZTX1NVUEVSX01BR0lDICAgICAweDk2NjAKLSNkZWZpbmUgIEpGRlMyX1NVUEVSX01BR0lDICAgICAweDcyYjYKLSNkZWZpbmUgIEpGU19TVVBFUl9NQUdJQyAgICAgICAweDMxNTM0NjRhCi0jZGVmaW5lICBNSU5JWF9TVVBFUl9NQUdJQyAgICAgMHgxMzdGIC8qIG9yaWcuIG1pbml4ICovCi0jZGVmaW5lICBNSU5JWF9TVVBFUl9NQUdJQzIgICAgMHgxMzhGIC8qIDMwIGNoYXIgbWluaXggKi8KLSNkZWZpbmUgIE1JTklYMl9TVVBFUl9NQUdJQyAgICAweDI0NjggLyogbWluaXggVjIgKi8KLSNkZWZpbmUgIE1JTklYMl9TVVBFUl9NQUdJQzIgICAweDI0NzggLyogbWluaXggVjIsIDMwIGNoYXIgbmFtZXMgKi8KLSNkZWZpbmUgIE1TRE9TX1NVUEVSX01BR0lDICAgICAweDRkNDQKLSNkZWZpbmUgIE5DUF9TVVBFUl9NQUdJQyAgICAgICAweDU2NGMKLSNkZWZpbmUgIE5GU19TVVBFUl9NQUdJQyAgICAgICAweDY5NjkKLSNkZWZpbmUgIE5URlNfU0JfTUFHSUMgICAgICAgICAweDUzNDY1NDRlCi0jZGVmaW5lICBPUEVOUFJPTV9TVVBFUl9NQUdJQyAgMHg5ZmExCi0jZGVmaW5lICBQUk9DX1NVUEVSX01BR0lDICAgICAgMHg5ZmEwCi0jZGVmaW5lICBRTlg0X1NVUEVSX01BR0lDICAgICAgMHgwMDJmCi0jZGVmaW5lICBSRUlTRVJGU19TVVBFUl9NQUdJQyAgMHg1MjY1NDk3MwotI2RlZmluZSAgUk9NRlNfTUFHSUMgICAgICAgICAgIDB4NzI3NQotI2RlZmluZSAgU01CX1NVUEVSX01BR0lDICAgICAgIDB4NTE3QgotI2RlZmluZSAgU1lTVjJfU1VQRVJfTUFHSUMgICAgIDB4MDEyRkY3QjYKLSNkZWZpbmUgIFNZU1Y0X1NVUEVSX01BR0lDICAgICAweDAxMkZGN0I1Ci0jZGVmaW5lICBUTVBGU19NQUdJQyAgICAgICAgICAgMHgwMTAyMTk5NAotI2RlZmluZSAgVURGX1NVUEVSX01BR0lDICAgICAgIDB4MTUwMTMzNDYKLSNkZWZpbmUgIFVGU19NQUdJQyAgICAgICAgICAgICAweDAwMDExOTU0Ci0jZGVmaW5lICBVU0JERVZJQ0VfU1VQRVJfTUFHSUMgMHg5ZmEyCi0jZGVmaW5lICBWWEZTX1NVUEVSX01BR0lDICAgICAgMHhhNTAxRkNGNQotI2RlZmluZSAgWEVOSVhfU1VQRVJfTUFHSUMgICAgIDB4MDEyRkY3QjQKLSNkZWZpbmUgIFhGU19TVVBFUl9NQUdJQyAgICAgICAweDU4NDY1MzQyCi0jZGVmaW5lICBfWElBRlNfU1VQRVJfTUFHSUMgICAgMHgwMTJGRDE2RAotCi1leHRlcm4gaW50IHN0YXRmcyhjb25zdCBjaGFyICosIHN0cnVjdCBzdGF0ZnMgKik7Ci1leHRlcm4gaW50IGZzdGF0ZnMoaW50LCBzdHJ1Y3Qgc3RhdGZzICopOwotCi1fX0VORF9ERUNMUwotCi0jZW5kaWYgLyogX1NZU19WRlNfSF8gKi8KZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2FyY2gtbWlwcy9saWIvbGliYy5hIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1taXBzL2xpYi9saWJjLmEKaW5kZXggZDg0ZDZiMy4uNmE4NWE2ZCAxMDA2NDQKLS0tIGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1taXBzL2xpYi9saWJjLmEKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1taXBzL2xpYi9saWJjLmEKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1taXBzL3N5bWJvbHMvbGliYW5kcm9pZC5zby5mdW5jdGlvbnMudHh0IGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1taXBzL3N5bWJvbHMvbGliYW5kcm9pZC5zby5mdW5jdGlvbnMudHh0CmluZGV4IDQ0MzhjNWUuLmY3MWQ4ZjggMTAwNjQ0Ci0tLSBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2FyY2gtbWlwcy9zeW1ib2xzL2xpYmFuZHJvaWQuc28uZnVuY3Rpb25zLnR4dAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLW1pcHMvc3ltYm9scy9saWJhbmRyb2lkLnNvLmZ1bmN0aW9ucy50eHQKQEAgLTEsMTQgKzEsMTQgQEAKK0FBc3NldF9jbG9zZQogQUFzc2V0RGlyX2Nsb3NlCiBBQXNzZXREaXJfZ2V0TmV4dEZpbGVOYW1lCiBBQXNzZXREaXJfcmV3aW5kCi1BQXNzZXRNYW5hZ2VyX2Zyb21KYXZhCi1BQXNzZXRNYW5hZ2VyX29wZW4KLUFBc3NldE1hbmFnZXJfb3BlbkRpcgotQUFzc2V0X2Nsb3NlCiBBQXNzZXRfZ2V0QnVmZmVyCiBBQXNzZXRfZ2V0TGVuZ3RoCiBBQXNzZXRfZ2V0UmVtYWluaW5nTGVuZ3RoCiBBQXNzZXRfaXNBbGxvY2F0ZWQKK0FBc3NldE1hbmFnZXJfZnJvbUphdmEKK0FBc3NldE1hbmFnZXJfb3BlbgorQUFzc2V0TWFuYWdlcl9vcGVuRGlyCiBBQXNzZXRfb3BlbkZpbGVEZXNjcmlwdG9yCiBBQXNzZXRfcmVhZAogQUFzc2V0X3NlZWsKQEAgLTgzLDggKzgzLDE1IEBACiBBTW90aW9uRXZlbnRfZ2V0RXZlbnRUaW1lCiBBTW90aW9uRXZlbnRfZ2V0RmxhZ3MKIEFNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsRXZlbnRUaW1lCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbE9yaWVudGF0aW9uCiBBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFByZXNzdXJlCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFJhd1gKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsUmF3WQogQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxTaXplCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFRvb2xNYWpvcgorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxUb29sTWlub3IKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsVG91Y2hNYWpvcgorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxUb3VjaE1pbm9yCiBBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFgKIEFNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsWQogQU1vdGlvbkV2ZW50X2dldEhpc3RvcnlTaXplCkBAIC0xMzAsMTYgKzEzNywxNiBAQAogQVNlbnNvckV2ZW50UXVldWVfZ2V0RXZlbnRzCiBBU2Vuc29yRXZlbnRRdWV1ZV9oYXNFdmVudHMKIEFTZW5zb3JFdmVudFF1ZXVlX3NldEV2ZW50UmF0ZQotQVNlbnNvck1hbmFnZXJfY3JlYXRlRXZlbnRRdWV1ZQotQVNlbnNvck1hbmFnZXJfZGVzdHJveUV2ZW50UXVldWUKLUFTZW5zb3JNYW5hZ2VyX2dldERlZmF1bHRTZW5zb3IKLUFTZW5zb3JNYW5hZ2VyX2dldEluc3RhbmNlCi1BU2Vuc29yTWFuYWdlcl9nZXRTZW5zb3JMaXN0CiBBU2Vuc29yX2dldE1pbkRlbGF5CiBBU2Vuc29yX2dldE5hbWUKIEFTZW5zb3JfZ2V0UmVzb2x1dGlvbgogQVNlbnNvcl9nZXRUeXBlCiBBU2Vuc29yX2dldFZlbmRvcgorQVNlbnNvck1hbmFnZXJfY3JlYXRlRXZlbnRRdWV1ZQorQVNlbnNvck1hbmFnZXJfZGVzdHJveUV2ZW50UXVldWUKK0FTZW5zb3JNYW5hZ2VyX2dldERlZmF1bHRTZW5zb3IKK0FTZW5zb3JNYW5hZ2VyX2dldEluc3RhbmNlCitBU2Vuc29yTWFuYWdlcl9nZXRTZW5zb3JMaXN0CiBBU3RvcmFnZU1hbmFnZXJfZGVsZXRlCiBBU3RvcmFnZU1hbmFnZXJfZ2V0TW91bnRlZE9iYlBhdGgKIEFTdG9yYWdlTWFuYWdlcl9pc09iYk1vdW50ZWQKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2FyY2gtbWlwczY0IGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC1taXBzNjQKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMC4uOGYzZTk1ZgotLS0gL2Rldi9udWxsCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2FyY2gtbWlwczY0CkBAIC0wLDAgKzEgQEAKK2FyY2gtbWlwcwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2FyY2gteDg2L3N5bWJvbHMvbGliYW5kcm9pZC5zby5mdW5jdGlvbnMudHh0IGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC14ODYvc3ltYm9scy9saWJhbmRyb2lkLnNvLmZ1bmN0aW9ucy50eHQKaW5kZXggNDQzOGM1ZS4uZjcxZDhmOCAxMDA2NDQKLS0tIGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC14ODYvc3ltYm9scy9saWJhbmRyb2lkLnNvLmZ1bmN0aW9ucy50eHQKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC14ODYvc3ltYm9scy9saWJhbmRyb2lkLnNvLmZ1bmN0aW9ucy50eHQKQEAgLTEsMTQgKzEsMTQgQEAKK0FBc3NldF9jbG9zZQogQUFzc2V0RGlyX2Nsb3NlCiBBQXNzZXREaXJfZ2V0TmV4dEZpbGVOYW1lCiBBQXNzZXREaXJfcmV3aW5kCi1BQXNzZXRNYW5hZ2VyX2Zyb21KYXZhCi1BQXNzZXRNYW5hZ2VyX29wZW4KLUFBc3NldE1hbmFnZXJfb3BlbkRpcgotQUFzc2V0X2Nsb3NlCiBBQXNzZXRfZ2V0QnVmZmVyCiBBQXNzZXRfZ2V0TGVuZ3RoCiBBQXNzZXRfZ2V0UmVtYWluaW5nTGVuZ3RoCiBBQXNzZXRfaXNBbGxvY2F0ZWQKK0FBc3NldE1hbmFnZXJfZnJvbUphdmEKK0FBc3NldE1hbmFnZXJfb3BlbgorQUFzc2V0TWFuYWdlcl9vcGVuRGlyCiBBQXNzZXRfb3BlbkZpbGVEZXNjcmlwdG9yCiBBQXNzZXRfcmVhZAogQUFzc2V0X3NlZWsKQEAgLTgzLDggKzgzLDE1IEBACiBBTW90aW9uRXZlbnRfZ2V0RXZlbnRUaW1lCiBBTW90aW9uRXZlbnRfZ2V0RmxhZ3MKIEFNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsRXZlbnRUaW1lCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbE9yaWVudGF0aW9uCiBBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFByZXNzdXJlCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFJhd1gKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsUmF3WQogQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxTaXplCitBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFRvb2xNYWpvcgorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxUb29sTWlub3IKK0FNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsVG91Y2hNYWpvcgorQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxUb3VjaE1pbm9yCiBBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFgKIEFNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsWQogQU1vdGlvbkV2ZW50X2dldEhpc3RvcnlTaXplCkBAIC0xMzAsMTYgKzEzNywxNiBAQAogQVNlbnNvckV2ZW50UXVldWVfZ2V0RXZlbnRzCiBBU2Vuc29yRXZlbnRRdWV1ZV9oYXNFdmVudHMKIEFTZW5zb3JFdmVudFF1ZXVlX3NldEV2ZW50UmF0ZQotQVNlbnNvck1hbmFnZXJfY3JlYXRlRXZlbnRRdWV1ZQotQVNlbnNvck1hbmFnZXJfZGVzdHJveUV2ZW50UXVldWUKLUFTZW5zb3JNYW5hZ2VyX2dldERlZmF1bHRTZW5zb3IKLUFTZW5zb3JNYW5hZ2VyX2dldEluc3RhbmNlCi1BU2Vuc29yTWFuYWdlcl9nZXRTZW5zb3JMaXN0CiBBU2Vuc29yX2dldE1pbkRlbGF5CiBBU2Vuc29yX2dldE5hbWUKIEFTZW5zb3JfZ2V0UmVzb2x1dGlvbgogQVNlbnNvcl9nZXRUeXBlCiBBU2Vuc29yX2dldFZlbmRvcgorQVNlbnNvck1hbmFnZXJfY3JlYXRlRXZlbnRRdWV1ZQorQVNlbnNvck1hbmFnZXJfZGVzdHJveUV2ZW50UXVldWUKK0FTZW5zb3JNYW5hZ2VyX2dldERlZmF1bHRTZW5zb3IKK0FTZW5zb3JNYW5hZ2VyX2dldEluc3RhbmNlCitBU2Vuc29yTWFuYWdlcl9nZXRTZW5zb3JMaXN0CiBBU3RvcmFnZU1hbmFnZXJfZGVsZXRlCiBBU3RvcmFnZU1hbmFnZXJfZ2V0TW91bnRlZE9iYlBhdGgKIEFTdG9yYWdlTWFuYWdlcl9pc09iYk1vdW50ZWQKZGlmZiAtLWdpdCBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2luY2x1ZGUvRUdML2VnbGV4dC5oIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvaW5jbHVkZS9FR0wvZWdsZXh0LmgKaW5kZXggYTA4OTMyYS4uN2I2ZWQxYiAxMDA2NDQKLS0tIGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvaW5jbHVkZS9FR0wvZWdsZXh0LmgKKysrIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvaW5jbHVkZS9FR0wvZWdsZXh0LmgKQEAgLTI4LDcgKzI4LDcgQEAKICoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCiAqLwogCi0jaW5jbHVkZSA8RUdML2VnbHBsYXRmb3JtLmg+CisjaW5jbHVkZSA8RUdML2VnbC5oPgogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvaW5jbHVkZS9TTEVTL09wZW5TTEVTX0FuZHJvaWQuaCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2luY2x1ZGUvU0xFUy9PcGVuU0xFU19BbmRyb2lkLmgKaW5kZXggODI5ZGY2OC4uMDE1NjhkMiAxMDA2NDQKLS0tIGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvaW5jbHVkZS9TTEVTL09wZW5TTEVTX0FuZHJvaWQuaAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9pbmNsdWRlL1NMRVMvT3BlblNMRVNfQW5kcm9pZC5oCkBAIC0yMSw2ICsyMSw4IEBACiBleHRlcm4gIkMiIHsKICNlbmRpZgogCisjaW5jbHVkZSAiT3BlblNMRVMuaCIKKwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyogQW5kcm9pZCBjb21tb24gdHlwZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvaW5jbHVkZS9hbmRyb2lkL2lucHV0LmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9pbmNsdWRlL2FuZHJvaWQvaW5wdXQuaAppbmRleCBiOWRmZmFkLi4wYWFjMDJmIDEwMDY0NAotLS0gYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9pbmNsdWRlL2FuZHJvaWQvaW5wdXQuaAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9pbmNsdWRlL2FuZHJvaWQvaW5wdXQuaApAQCAtNDMzLDIzICs0MzMsMjMgQEAKICAqIEZvciB0b3VjaCBldmVudHMgb24gdGhlIHNjcmVlbiwgdGhpcyBpcyB0aGUgZGVsdGEgdGhhdCB3YXMgYWRkZWQgdG8gdGhlIHJhdwogICogc2NyZWVuIGNvb3JkaW5hdGVzIHRvIGFkanVzdCBmb3IgdGhlIGFic29sdXRlIHBvc2l0aW9uIG9mIHRoZSBjb250YWluaW5nIHdpbmRvd3MKICAqIGFuZCB2aWV3cy4gKi8KLWZsb2F0IEFNb3Rpb25FdmVudF9nZXRYT2Zmc2V0KGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQpOworZmxvYXQgQU1vdGlvbkV2ZW50X2dldFhPZmZzZXQoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCkgX19OREtfRlBBQklfXzsKIAogLyogR2V0IHRoZSBwcmVjaXNpb24gb2YgdGhlIFkgY29vcmRpbmF0ZXMgYmVpbmcgcmVwb3J0ZWQuCiAgKiBGb3IgdG91Y2ggZXZlbnRzIG9uIHRoZSBzY3JlZW4sIHRoaXMgaXMgdGhlIGRlbHRhIHRoYXQgd2FzIGFkZGVkIHRvIHRoZSByYXcKICAqIHNjcmVlbiBjb29yZGluYXRlcyB0byBhZGp1c3QgZm9yIHRoZSBhYnNvbHV0ZSBwb3NpdGlvbiBvZiB0aGUgY29udGFpbmluZyB3aW5kb3dzCiAgKiBhbmQgdmlld3MuICovCi1mbG9hdCBBTW90aW9uRXZlbnRfZ2V0WU9mZnNldChjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50KTsKK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRZT2Zmc2V0KGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQpIF9fTkRLX0ZQQUJJX187CiAKIC8qIEdldCB0aGUgcHJlY2lzaW9uIG9mIHRoZSBYIGNvb3JkaW5hdGVzIGJlaW5nIHJlcG9ydGVkLgogICogWW91IGNhbiBtdWx0aXBseSB0aGlzIG51bWJlciB3aXRoIGFuIFggY29vcmRpbmF0ZSBzYW1wbGUgdG8gZmluZCB0aGUKICAqIGFjdHVhbCBoYXJkd2FyZSB2YWx1ZSBvZiB0aGUgWCBjb29yZGluYXRlLiAqLwotZmxvYXQgQU1vdGlvbkV2ZW50X2dldFhQcmVjaXNpb24oY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCk7CitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0WFByZWNpc2lvbihjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50KSBfX05ES19GUEFCSV9fOwogCiAvKiBHZXQgdGhlIHByZWNpc2lvbiBvZiB0aGUgWSBjb29yZGluYXRlcyBiZWluZyByZXBvcnRlZC4KICAqIFlvdSBjYW4gbXVsdGlwbHkgdGhpcyBudW1iZXIgd2l0aCBhIFkgY29vcmRpbmF0ZSBzYW1wbGUgdG8gZmluZCB0aGUKICAqIGFjdHVhbCBoYXJkd2FyZSB2YWx1ZSBvZiB0aGUgWSBjb29yZGluYXRlLiAqLwotZmxvYXQgQU1vdGlvbkV2ZW50X2dldFlQcmVjaXNpb24oY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCk7CitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0WVByZWNpc2lvbihjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50KSBfX05ES19GUEFCSV9fOwogCiAvKiBHZXQgdGhlIG51bWJlciBvZiBwb2ludGVycyBvZiBkYXRhIGNvbnRhaW5lZCBpbiB0aGlzIGV2ZW50LgogICogQWx3YXlzID49IDEuICovCkBAIC00NjUsMjkgKzQ2NSwyOSBAQAogICogRm9yIHRvdWNoIGV2ZW50cyBvbiB0aGUgc2NyZWVuLCB0aGlzIGlzIHRoZSBvcmlnaW5hbCBsb2NhdGlvbiBvZiB0aGUgZXZlbnQKICAqIG9uIHRoZSBzY3JlZW4sIGJlZm9yZSBpdCBoYWQgYmVlbiBhZGp1c3RlZCBmb3IgdGhlIGNvbnRhaW5pbmcgd2luZG93CiAgKiBhbmQgdmlld3MuICovCi1mbG9hdCBBTW90aW9uRXZlbnRfZ2V0UmF3WChjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LCBzaXplX3QgcG9pbnRlcl9pbmRleCk7CitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0UmF3WChjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LCBzaXplX3QgcG9pbnRlcl9pbmRleCkgX19OREtfRlBBQklfXzsKIAogLyogR2V0IHRoZSBvcmlnaW5hbCByYXcgWCBjb29yZGluYXRlIG9mIHRoaXMgZXZlbnQuCiAgKiBGb3IgdG91Y2ggZXZlbnRzIG9uIHRoZSBzY3JlZW4sIHRoaXMgaXMgdGhlIG9yaWdpbmFsIGxvY2F0aW9uIG9mIHRoZSBldmVudAogICogb24gdGhlIHNjcmVlbiwgYmVmb3JlIGl0IGhhZCBiZWVuIGFkanVzdGVkIGZvciB0aGUgY29udGFpbmluZyB3aW5kb3cKICAqIGFuZCB2aWV3cy4gKi8KLWZsb2F0IEFNb3Rpb25FdmVudF9nZXRSYXdZKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4KTsKK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRSYXdZKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4KSBfX05ES19GUEFCSV9fOwogCiAvKiBHZXQgdGhlIGN1cnJlbnQgWCBjb29yZGluYXRlIG9mIHRoaXMgZXZlbnQgZm9yIHRoZSBnaXZlbiBwb2ludGVyIGluZGV4LgogICogV2hvbGUgbnVtYmVycyBhcmUgcGl4ZWxzOyB0aGUgdmFsdWUgbWF5IGhhdmUgYSBmcmFjdGlvbiBmb3IgaW5wdXQgZGV2aWNlcwogICogdGhhdCBhcmUgc3ViLXBpeGVsIHByZWNpc2UuICovCi1mbG9hdCBBTW90aW9uRXZlbnRfZ2V0WChjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LCBzaXplX3QgcG9pbnRlcl9pbmRleCk7CitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0WChjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LCBzaXplX3QgcG9pbnRlcl9pbmRleCkgX19OREtfRlBBQklfXzsKIAogLyogR2V0IHRoZSBjdXJyZW50IFkgY29vcmRpbmF0ZSBvZiB0aGlzIGV2ZW50IGZvciB0aGUgZ2l2ZW4gcG9pbnRlciBpbmRleC4KICAqIFdob2xlIG51bWJlcnMgYXJlIHBpeGVsczsgdGhlIHZhbHVlIG1heSBoYXZlIGEgZnJhY3Rpb24gZm9yIGlucHV0IGRldmljZXMKICAqIHRoYXQgYXJlIHN1Yi1waXhlbCBwcmVjaXNlLiAqLwotZmxvYXQgQU1vdGlvbkV2ZW50X2dldFkoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgpOworZmxvYXQgQU1vdGlvbkV2ZW50X2dldFkoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgpIF9fTkRLX0ZQQUJJX187CiAKIC8qIEdldCB0aGUgY3VycmVudCBwcmVzc3VyZSBvZiB0aGlzIGV2ZW50IGZvciB0aGUgZ2l2ZW4gcG9pbnRlciBpbmRleC4KICAqIFRoZSBwcmVzc3VyZSBnZW5lcmFsbHkgcmFuZ2VzIGZyb20gMCAobm8gcHJlc3N1cmUgYXQgYWxsKSB0byAxIChub3JtYWwgcHJlc3N1cmUpLAogICogYWx0aG91Z2ggdmFsdWVzIGhpZ2hlciB0aGFuIDEgbWF5IGJlIGdlbmVyYXRlZCBkZXBlbmRpbmcgb24gdGhlIGNhbGlicmF0aW9uIG9mCiAgKiB0aGUgaW5wdXQgZGV2aWNlLiAqLwotZmxvYXQgQU1vdGlvbkV2ZW50X2dldFByZXNzdXJlKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4KTsKK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRQcmVzc3VyZShjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LCBzaXplX3QgcG9pbnRlcl9pbmRleCkgX19OREtfRlBBQklfXzsKIAogLyogR2V0IHRoZSBjdXJyZW50IHNjYWxlZCB2YWx1ZSBvZiB0aGUgYXBwcm94aW1hdGUgc2l6ZSBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXguCiAgKiBUaGlzIHJlcHJlc2VudHMgc29tZSBhcHByb3hpbWF0aW9uIG9mIHRoZSBhcmVhIG9mIHRoZSBzY3JlZW4gYmVpbmcKQEAgLTQ5NSwyNyArNDk1LDI3IEBACiAgKiB0b3VjaCBpcyBub3JtYWxpemVkIHdpdGggdGhlIGRldmljZSBzcGVjaWZpYyByYW5nZSBvZiB2YWx1ZXMKICAqIGFuZCBzY2FsZWQgdG8gYSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEuICBUaGUgdmFsdWUgb2Ygc2l6ZSBjYW4gYmUgdXNlZCB0bwogICogZGV0ZXJtaW5lIGZhdCB0b3VjaCBldmVudHMuICovCi1mbG9hdCBBTW90aW9uRXZlbnRfZ2V0U2l6ZShjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LCBzaXplX3QgcG9pbnRlcl9pbmRleCk7CitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0U2l6ZShjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LCBzaXplX3QgcG9pbnRlcl9pbmRleCkgX19OREtfRlBBQklfXzsKIAogLyogR2V0IHRoZSBjdXJyZW50IGxlbmd0aCBvZiB0aGUgbWFqb3IgYXhpcyBvZiBhbiBlbGxpcHNlIHRoYXQgZGVzY3JpYmVzIHRoZSB0b3VjaCBhcmVhCiAgKiBhdCB0aGUgcG9pbnQgb2YgY29udGFjdCBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXguICovCi1mbG9hdCBBTW90aW9uRXZlbnRfZ2V0VG91Y2hNYWpvcihjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LCBzaXplX3QgcG9pbnRlcl9pbmRleCk7CitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0VG91Y2hNYWpvcihjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LCBzaXplX3QgcG9pbnRlcl9pbmRleCkgX19OREtfRlBBQklfXzsKIAogLyogR2V0IHRoZSBjdXJyZW50IGxlbmd0aCBvZiB0aGUgbWlub3IgYXhpcyBvZiBhbiBlbGxpcHNlIHRoYXQgZGVzY3JpYmVzIHRoZSB0b3VjaCBhcmVhCiAgKiBhdCB0aGUgcG9pbnQgb2YgY29udGFjdCBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXguICovCi1mbG9hdCBBTW90aW9uRXZlbnRfZ2V0VG91Y2hNaW5vcihjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LCBzaXplX3QgcG9pbnRlcl9pbmRleCk7CitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0VG91Y2hNaW5vcihjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LCBzaXplX3QgcG9pbnRlcl9pbmRleCkgX19OREtfRlBBQklfXzsKIAogLyogR2V0IHRoZSBjdXJyZW50IGxlbmd0aCBvZiB0aGUgbWFqb3IgYXhpcyBvZiBhbiBlbGxpcHNlIHRoYXQgZGVzY3JpYmVzIHRoZSBzaXplCiAgKiBvZiB0aGUgYXBwcm9hY2hpbmcgdG9vbCBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXguCiAgKiBUaGUgdG9vbCBhcmVhIHJlcHJlc2VudHMgdGhlIGVzdGltYXRlZCBzaXplIG9mIHRoZSBmaW5nZXIgb3IgcGVuIHRoYXQgaXMKICAqIHRvdWNoaW5nIHRoZSBkZXZpY2UgaW5kZXBlbmRlbnQgb2YgaXRzIGFjdHVhbCB0b3VjaCBhcmVhIGF0IHRoZSBwb2ludCBvZiBjb250YWN0LiAqLwotZmxvYXQgQU1vdGlvbkV2ZW50X2dldFRvb2xNYWpvcihjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LCBzaXplX3QgcG9pbnRlcl9pbmRleCk7CitmbG9hdCBBTW90aW9uRXZlbnRfZ2V0VG9vbE1ham9yKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4KSBfX05ES19GUEFCSV9fOwogCiAvKiBHZXQgdGhlIGN1cnJlbnQgbGVuZ3RoIG9mIHRoZSBtaW5vciBheGlzIG9mIGFuIGVsbGlwc2UgdGhhdCBkZXNjcmliZXMgdGhlIHNpemUKICAqIG9mIHRoZSBhcHByb2FjaGluZyB0b29sIGZvciB0aGUgZ2l2ZW4gcG9pbnRlciBpbmRleC4KICAqIFRoZSB0b29sIGFyZWEgcmVwcmVzZW50cyB0aGUgZXN0aW1hdGVkIHNpemUgb2YgdGhlIGZpbmdlciBvciBwZW4gdGhhdCBpcwogICogdG91Y2hpbmcgdGhlIGRldmljZSBpbmRlcGVuZGVudCBvZiBpdHMgYWN0dWFsIHRvdWNoIGFyZWEgYXQgdGhlIHBvaW50IG9mIGNvbnRhY3QuICovCi1mbG9hdCBBTW90aW9uRXZlbnRfZ2V0VG9vbE1pbm9yKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4KTsKK2Zsb2F0IEFNb3Rpb25FdmVudF9nZXRUb29sTWlub3IoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgpIF9fTkRLX0ZQQUJJX187CiAKIC8qIEdldCB0aGUgY3VycmVudCBvcmllbnRhdGlvbiBvZiB0aGUgdG91Y2ggYXJlYSBhbmQgdG9vbCBhcmVhIGluIHJhZGlhbnMgY2xvY2t3aXNlIGZyb20KICAqIHZlcnRpY2FsIGZvciB0aGUgZ2l2ZW4gcG9pbnRlciBpbmRleC4KQEAgLTUyNSw3ICs1MjUsNyBAQAogICogaW5kaWNhdGVzIHRoYXQgdGhlIG1ham9yIGF4aXMgb2YgY29udGFjdCBpcyBvcmllbnRlZCB0byB0aGUgbGVmdC4KICAqIFRoZSBmdWxsIHJhbmdlIGlzIGZyb20gLVBJLzIgcmFkaWFucyAoZmluZ2VyIHBvaW50aW5nIGZ1bGx5IGxlZnQpIHRvIFBJLzIgcmFkaWFucwogICogKGZpbmdlciBwb2ludGluZyBmdWxseSByaWdodCkuICovCi1mbG9hdCBBTW90aW9uRXZlbnRfZ2V0T3JpZW50YXRpb24oY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgpOworZmxvYXQgQU1vdGlvbkV2ZW50X2dldE9yaWVudGF0aW9uKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4KSBfX05ES19GUEFCSV9fOwogCiAvKiBHZXQgdGhlIG51bWJlciBvZiBoaXN0b3JpY2FsIHBvaW50cyBpbiB0aGlzIGV2ZW50LiAgVGhlc2UgYXJlIG1vdmVtZW50cyB0aGF0CiAgKiBoYXZlIG9jY3VycmVkIGJldHdlZW4gdGhpcyBldmVudCBhbmQgdGhlIHByZXZpb3VzIGV2ZW50LiAgVGhpcyBvbmx5IGFwcGxpZXMKQEAgLTU0Niw3ICs1NDYsNyBAQAogICogV2hvbGUgbnVtYmVycyBhcmUgcGl4ZWxzOyB0aGUgdmFsdWUgbWF5IGhhdmUgYSBmcmFjdGlvbiBmb3IgaW5wdXQgZGV2aWNlcwogICogdGhhdCBhcmUgc3ViLXBpeGVsIHByZWNpc2UuICovCiBmbG9hdCBBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFJhd1goY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgsCi0gICAgICAgIHNpemVfdCBoaXN0b3J5X2luZGV4KTsKKyAgICAgICAgc2l6ZV90IGhpc3RvcnlfaW5kZXgpIF9fTkRLX0ZQQUJJX187CiAKIC8qIEdldCB0aGUgaGlzdG9yaWNhbCByYXcgWSBjb29yZGluYXRlIG9mIHRoaXMgZXZlbnQgZm9yIHRoZSBnaXZlbiBwb2ludGVyIGluZGV4IHRoYXQKICAqIG9jY3VycmVkIGJldHdlZW4gdGhpcyBldmVudCBhbmQgdGhlIHByZXZpb3VzIG1vdGlvbiBldmVudC4KQEAgLTU1NiwyMSArNTU2LDIxIEBACiAgKiBXaG9sZSBudW1iZXJzIGFyZSBwaXhlbHM7IHRoZSB2YWx1ZSBtYXkgaGF2ZSBhIGZyYWN0aW9uIGZvciBpbnB1dCBkZXZpY2VzCiAgKiB0aGF0IGFyZSBzdWItcGl4ZWwgcHJlY2lzZS4gKi8KIGZsb2F0IEFNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsUmF3WShjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LCBzaXplX3QgcG9pbnRlcl9pbmRleCwKLSAgICAgICAgc2l6ZV90IGhpc3RvcnlfaW5kZXgpOworICAgICAgICBzaXplX3QgaGlzdG9yeV9pbmRleCkgX19OREtfRlBBQklfXzsKIAogLyogR2V0IHRoZSBoaXN0b3JpY2FsIFggY29vcmRpbmF0ZSBvZiB0aGlzIGV2ZW50IGZvciB0aGUgZ2l2ZW4gcG9pbnRlciBpbmRleCB0aGF0CiAgKiBvY2N1cnJlZCBiZXR3ZWVuIHRoaXMgZXZlbnQgYW5kIHRoZSBwcmV2aW91cyBtb3Rpb24gZXZlbnQuCiAgKiBXaG9sZSBudW1iZXJzIGFyZSBwaXhlbHM7IHRoZSB2YWx1ZSBtYXkgaGF2ZSBhIGZyYWN0aW9uIGZvciBpbnB1dCBkZXZpY2VzCiAgKiB0aGF0IGFyZSBzdWItcGl4ZWwgcHJlY2lzZS4gKi8KIGZsb2F0IEFNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsWChjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LCBzaXplX3QgcG9pbnRlcl9pbmRleCwKLSAgICAgICAgc2l6ZV90IGhpc3RvcnlfaW5kZXgpOworICAgICAgICBzaXplX3QgaGlzdG9yeV9pbmRleCkgX19OREtfRlBBQklfXzsKIAogLyogR2V0IHRoZSBoaXN0b3JpY2FsIFkgY29vcmRpbmF0ZSBvZiB0aGlzIGV2ZW50IGZvciB0aGUgZ2l2ZW4gcG9pbnRlciBpbmRleCB0aGF0CiAgKiBvY2N1cnJlZCBiZXR3ZWVuIHRoaXMgZXZlbnQgYW5kIHRoZSBwcmV2aW91cyBtb3Rpb24gZXZlbnQuCiAgKiBXaG9sZSBudW1iZXJzIGFyZSBwaXhlbHM7IHRoZSB2YWx1ZSBtYXkgaGF2ZSBhIGZyYWN0aW9uIGZvciBpbnB1dCBkZXZpY2VzCiAgKiB0aGF0IGFyZSBzdWItcGl4ZWwgcHJlY2lzZS4gKi8KIGZsb2F0IEFNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsWShjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LCBzaXplX3QgcG9pbnRlcl9pbmRleCwKLSAgICAgICAgc2l6ZV90IGhpc3RvcnlfaW5kZXgpOworICAgICAgICBzaXplX3QgaGlzdG9yeV9pbmRleCkgX19OREtfRlBBQklfXzsKIAogLyogR2V0IHRoZSBoaXN0b3JpY2FsIHByZXNzdXJlIG9mIHRoaXMgZXZlbnQgZm9yIHRoZSBnaXZlbiBwb2ludGVyIGluZGV4IHRoYXQKICAqIG9jY3VycmVkIGJldHdlZW4gdGhpcyBldmVudCBhbmQgdGhlIHByZXZpb3VzIG1vdGlvbiBldmVudC4KQEAgLTU3OCw3ICs1NzgsNyBAQAogICogYWx0aG91Z2ggdmFsdWVzIGhpZ2hlciB0aGFuIDEgbWF5IGJlIGdlbmVyYXRlZCBkZXBlbmRpbmcgb24gdGhlIGNhbGlicmF0aW9uIG9mCiAgKiB0aGUgaW5wdXQgZGV2aWNlLiAqLwogZmxvYXQgQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxQcmVzc3VyZShjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LCBzaXplX3QgcG9pbnRlcl9pbmRleCwKLSAgICAgICAgc2l6ZV90IGhpc3RvcnlfaW5kZXgpOworICAgICAgICBzaXplX3QgaGlzdG9yeV9pbmRleCkgX19OREtfRlBBQklfXzsKIAogLyogR2V0IHRoZSBjdXJyZW50IHNjYWxlZCB2YWx1ZSBvZiB0aGUgYXBwcm94aW1hdGUgc2l6ZSBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXggdGhhdAogICogb2NjdXJyZWQgYmV0d2VlbiB0aGlzIGV2ZW50IGFuZCB0aGUgcHJldmlvdXMgbW90aW9uIGV2ZW50LgpAQCAtNTg4LDE5ICs1ODgsMTkgQEAKICAqIGFuZCBzY2FsZWQgdG8gYSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEuICBUaGUgdmFsdWUgb2Ygc2l6ZSBjYW4gYmUgdXNlZCB0bwogICogZGV0ZXJtaW5lIGZhdCB0b3VjaCBldmVudHMuICovCiBmbG9hdCBBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFNpemUoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgsCi0gICAgICAgIHNpemVfdCBoaXN0b3J5X2luZGV4KTsKKyAgICAgICAgc2l6ZV90IGhpc3RvcnlfaW5kZXgpIF9fTkRLX0ZQQUJJX187CiAKIC8qIEdldCB0aGUgaGlzdG9yaWNhbCBsZW5ndGggb2YgdGhlIG1ham9yIGF4aXMgb2YgYW4gZWxsaXBzZSB0aGF0IGRlc2NyaWJlcyB0aGUgdG91Y2ggYXJlYQogICogYXQgdGhlIHBvaW50IG9mIGNvbnRhY3QgZm9yIHRoZSBnaXZlbiBwb2ludGVyIGluZGV4IHRoYXQKICAqIG9jY3VycmVkIGJldHdlZW4gdGhpcyBldmVudCBhbmQgdGhlIHByZXZpb3VzIG1vdGlvbiBldmVudC4gKi8KIGZsb2F0IEFNb3Rpb25FdmVudF9nZXRIaXN0b3JpY2FsVG91Y2hNYWpvcihjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LCBzaXplX3QgcG9pbnRlcl9pbmRleCwKLSAgICAgICAgc2l6ZV90IGhpc3RvcnlfaW5kZXgpOworICAgICAgICBzaXplX3QgaGlzdG9yeV9pbmRleCkgX19OREtfRlBBQklfXzsKIAogLyogR2V0IHRoZSBoaXN0b3JpY2FsIGxlbmd0aCBvZiB0aGUgbWlub3IgYXhpcyBvZiBhbiBlbGxpcHNlIHRoYXQgZGVzY3JpYmVzIHRoZSB0b3VjaCBhcmVhCiAgKiBhdCB0aGUgcG9pbnQgb2YgY29udGFjdCBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXggdGhhdAogICogb2NjdXJyZWQgYmV0d2VlbiB0aGlzIGV2ZW50IGFuZCB0aGUgcHJldmlvdXMgbW90aW9uIGV2ZW50LiAqLwogZmxvYXQgQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxUb3VjaE1pbm9yKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4LAotICAgICAgICBzaXplX3QgaGlzdG9yeV9pbmRleCk7CisgICAgICAgIHNpemVfdCBoaXN0b3J5X2luZGV4KSBfX05ES19GUEFCSV9fOwogCiAvKiBHZXQgdGhlIGhpc3RvcmljYWwgbGVuZ3RoIG9mIHRoZSBtYWpvciBheGlzIG9mIGFuIGVsbGlwc2UgdGhhdCBkZXNjcmliZXMgdGhlIHNpemUKICAqIG9mIHRoZSBhcHByb2FjaGluZyB0b29sIGZvciB0aGUgZ2l2ZW4gcG9pbnRlciBpbmRleCB0aGF0CkBAIC02MDgsNyArNjA4LDcgQEAKICAqIFRoZSB0b29sIGFyZWEgcmVwcmVzZW50cyB0aGUgZXN0aW1hdGVkIHNpemUgb2YgdGhlIGZpbmdlciBvciBwZW4gdGhhdCBpcwogICogdG91Y2hpbmcgdGhlIGRldmljZSBpbmRlcGVuZGVudCBvZiBpdHMgYWN0dWFsIHRvdWNoIGFyZWEgYXQgdGhlIHBvaW50IG9mIGNvbnRhY3QuICovCiBmbG9hdCBBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbFRvb2xNYWpvcihjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50LCBzaXplX3QgcG9pbnRlcl9pbmRleCwKLSAgICAgICAgc2l6ZV90IGhpc3RvcnlfaW5kZXgpOworICAgICAgICBzaXplX3QgaGlzdG9yeV9pbmRleCkgX19OREtfRlBBQklfXzsKIAogLyogR2V0IHRoZSBoaXN0b3JpY2FsIGxlbmd0aCBvZiB0aGUgbWlub3IgYXhpcyBvZiBhbiBlbGxpcHNlIHRoYXQgZGVzY3JpYmVzIHRoZSBzaXplCiAgKiBvZiB0aGUgYXBwcm9hY2hpbmcgdG9vbCBmb3IgdGhlIGdpdmVuIHBvaW50ZXIgaW5kZXggdGhhdApAQCAtNjE2LDcgKzYxNiw3IEBACiAgKiBUaGUgdG9vbCBhcmVhIHJlcHJlc2VudHMgdGhlIGVzdGltYXRlZCBzaXplIG9mIHRoZSBmaW5nZXIgb3IgcGVuIHRoYXQgaXMKICAqIHRvdWNoaW5nIHRoZSBkZXZpY2UgaW5kZXBlbmRlbnQgb2YgaXRzIGFjdHVhbCB0b3VjaCBhcmVhIGF0IHRoZSBwb2ludCBvZiBjb250YWN0LiAqLwogZmxvYXQgQU1vdGlvbkV2ZW50X2dldEhpc3RvcmljYWxUb29sTWlub3IoY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCwgc2l6ZV90IHBvaW50ZXJfaW5kZXgsCi0gICAgICAgIHNpemVfdCBoaXN0b3J5X2luZGV4KTsKKyAgICAgICAgc2l6ZV90IGhpc3RvcnlfaW5kZXgpIF9fTkRLX0ZQQUJJX187CiAKIC8qIEdldCB0aGUgaGlzdG9yaWNhbCBvcmllbnRhdGlvbiBvZiB0aGUgdG91Y2ggYXJlYSBhbmQgdG9vbCBhcmVhIGluIHJhZGlhbnMgY2xvY2t3aXNlIGZyb20KICAqIHZlcnRpY2FsIGZvciB0aGUgZ2l2ZW4gcG9pbnRlciBpbmRleCB0aGF0CkBAIC02MjgsNyArNjI4LDcgQEAKICAqIFRoZSBmdWxsIHJhbmdlIGlzIGZyb20gLVBJLzIgcmFkaWFucyAoZmluZ2VyIHBvaW50aW5nIGZ1bGx5IGxlZnQpIHRvIFBJLzIgcmFkaWFucwogICogKGZpbmdlciBwb2ludGluZyBmdWxseSByaWdodCkuICovCiBmbG9hdCBBTW90aW9uRXZlbnRfZ2V0SGlzdG9yaWNhbE9yaWVudGF0aW9uKGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQsIHNpemVfdCBwb2ludGVyX2luZGV4LAotICAgICAgICBzaXplX3QgaGlzdG9yeV9pbmRleCk7CisgICAgICAgIHNpemVfdCBoaXN0b3J5X2luZGV4KSBfX05ES19GUEFCSV9fOwogCiAKIC8qCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9pbmNsdWRlL2FuZHJvaWQvbG9vcGVyLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9pbmNsdWRlL2FuZHJvaWQvbG9vcGVyLmgKaW5kZXggYTlkODQyNi4uNzRjMDM4MyAxMDA2NDQKLS0tIGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvaW5jbHVkZS9hbmRyb2lkL2xvb3Blci5oCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2luY2x1ZGUvYW5kcm9pZC9sb29wZXIuaApAQCAtMTQ4LDcgKzE0OCw4IEBACiAKIC8qKgogICogRm9yIGNhbGxiYWNrLWJhc2VkIGV2ZW50IGxvb3BzLCB0aGlzIGlzIHRoZSBwcm90b3R5cGUgb2YgdGhlIGZ1bmN0aW9uCi0gKiB0aGF0IGlzIGNhbGxlZC4gIEl0IGlzIGdpdmVuIHRoZSBmaWxlIGRlc2NyaXB0b3IgaXQgaXMgYXNzb2NpYXRlZCB3aXRoLAorICogdGhhdCBpcyBjYWxsZWQgd2hlbiBhIGZpbGUgZGVzY3JpcHRvciBldmVudCBvY2N1cnMuCisgKiBJdCBpcyBnaXZlbiB0aGUgZmlsZSBkZXNjcmlwdG9yIGl0IGlzIGFzc29jaWF0ZWQgd2l0aCwKICAqIGEgYml0bWFzayBvZiB0aGUgcG9sbCBldmVudHMgdGhhdCB3ZXJlIHRyaWdnZXJlZCAodHlwaWNhbGx5IEFMT09QRVJfRVZFTlRfSU5QVVQpLAogICogYW5kIHRoZSBkYXRhIHBvaW50ZXIgdGhhdCB3YXMgb3JpZ2luYWxseSBzdXBwbGllZC4KICAqCkBAIC0yNTIsNCArMjUzLDQgQEAKIH07CiAjZW5kaWYKIAotI2VuZGlmIC8vIEFORFJPSURfTkFUSVZFX1dJTkRPV19ICisjZW5kaWYgLy8gQU5EUk9JRF9MT09QRVJfSApkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvaW5jbHVkZS9hbmRyb2lkL3NlbnNvci5oIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvaW5jbHVkZS9hbmRyb2lkL3NlbnNvci5oCmluZGV4IGYxNjNmMTguLmU2YTYzYzIgMTAwNjQ0Ci0tLSBhL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2luY2x1ZGUvYW5kcm9pZC9zZW5zb3IuaAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9pbmNsdWRlL2FuZHJvaWQvc2Vuc29yLmgKQEAgLTIzOSw3ICsyMzksNyBAQAogLyoKICAqIFJldHVybnMgdGhpcyBzZW5zb3JzJ3MgcmVzb2x1dGlvbgogICovCi1mbG9hdCBBU2Vuc29yX2dldFJlc29sdXRpb24oQVNlbnNvciBjb25zdCogc2Vuc29yKTsKK2Zsb2F0IEFTZW5zb3JfZ2V0UmVzb2x1dGlvbihBU2Vuc29yIGNvbnN0KiBzZW5zb3IpIF9fTkRLX0ZQQUJJX187CiAKIC8qCiAgKiBSZXR1cm5zIHRoZSBtaW5pbXVtIGRlbGF5IGFsbG93ZWQgYmV0d2VlbiBldmVudHMgaW4gbWljcm9zZWNvbmRzLgpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvaW5jbHVkZS9tYXRoLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9pbmNsdWRlL21hdGguaAppbmRleCAzYjU2NjBmLi45N2M3NmQzIDEwMDY0NAotLS0gYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9pbmNsdWRlL21hdGguaAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9pbmNsdWRlL21hdGguaApAQCAtMTgzLDIxOSArMTgzLDIxOSBAQAogLyoKICAqIEFOU0kvUE9TSVgKICAqLwotaW50CV9fZnBjbGFzc2lmeWQoZG91YmxlKSBfX3B1cmUyOwotaW50CV9fZnBjbGFzc2lmeWYoZmxvYXQpIF9fcHVyZTI7Ci1pbnQJX19mcGNsYXNzaWZ5bChsb25nIGRvdWJsZSkgX19wdXJlMjsKLWludAlfX2lzZmluaXRlZihmbG9hdCkgX19wdXJlMjsKLWludAlfX2lzZmluaXRlKGRvdWJsZSkgX19wdXJlMjsKLWludAlfX2lzZmluaXRlbChsb25nIGRvdWJsZSkgX19wdXJlMjsKLWludAlfX2lzaW5mZihmbG9hdCkgX19wdXJlMjsKLWludCAgICAgX19pc2luZihkb3VibGUpIF9fcHVyZTI7Ci1pbnQJX19pc2luZmwobG9uZyBkb3VibGUpIF9fcHVyZTI7Ci1pbnQJX19pc25hbmwobG9uZyBkb3VibGUpIF9fcHVyZTI7Ci1pbnQJX19pc25vcm1hbGYoZmxvYXQpIF9fcHVyZTI7Ci1pbnQJX19pc25vcm1hbChkb3VibGUpIF9fcHVyZTI7Ci1pbnQJX19pc25vcm1hbGwobG9uZyBkb3VibGUpIF9fcHVyZTI7Ci1pbnQJX19zaWduYml0KGRvdWJsZSkgX19wdXJlMjsKLWludAlfX3NpZ25iaXRmKGZsb2F0KSBfX3B1cmUyOwotaW50CV9fc2lnbmJpdGwobG9uZyBkb3VibGUpIF9fcHVyZTI7CitpbnQJX19mcGNsYXNzaWZ5ZChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworaW50CV9fZnBjbGFzc2lmeWYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworaW50CV9fZnBjbGFzc2lmeWwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworaW50CV9faXNmaW5pdGVmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2ludAlfX2lzZmluaXRlKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitpbnQJX19pc2Zpbml0ZWwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworaW50CV9faXNpbmZmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2ludCAgICAgX19pc2luZihkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworaW50CV9faXNpbmZsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2ludAlfX2lzbmFubChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitpbnQJX19pc25vcm1hbGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworaW50CV9faXNub3JtYWwoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2ludAlfX2lzbm9ybWFsbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitpbnQJX19zaWduYml0KGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitpbnQJX19zaWduYml0ZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitpbnQJX19zaWduYml0bChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CiAKLWRvdWJsZQlhY29zKGRvdWJsZSk7Ci1kb3VibGUJYXNpbihkb3VibGUpOwotZG91YmxlCWF0YW4oZG91YmxlKTsKLWRvdWJsZQlhdGFuMihkb3VibGUsIGRvdWJsZSk7Ci1kb3VibGUJY29zKGRvdWJsZSk7Ci1kb3VibGUJc2luKGRvdWJsZSk7Ci1kb3VibGUJdGFuKGRvdWJsZSk7Citkb3VibGUJYWNvcyhkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlhc2luKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWF0YW4oZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJYXRhbjIoZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQljb3MoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJc2luKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCXRhbihkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKIAotZG91YmxlCWNvc2goZG91YmxlKTsKLWRvdWJsZQlzaW5oKGRvdWJsZSk7Ci1kb3VibGUJdGFuaChkb3VibGUpOworZG91YmxlCWNvc2goZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJc2luaChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQl0YW5oKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOwogCi1kb3VibGUJZXhwKGRvdWJsZSk7Ci1kb3VibGUJZnJleHAoZG91YmxlLCBpbnQgKik7CS8qIGZ1bmRhbWVudGFsbHkgIV9fcHVyZTIgKi8KLWRvdWJsZQlsZGV4cChkb3VibGUsIGludCk7Ci1kb3VibGUJbG9nKGRvdWJsZSk7Ci1kb3VibGUJbG9nMTAoZG91YmxlKTsKLWRvdWJsZQltb2RmKGRvdWJsZSwgZG91YmxlICopOwkvKiBmdW5kYW1lbnRhbGx5ICFfX3B1cmUyICovCitkb3VibGUJZXhwKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWZyZXhwKGRvdWJsZSwgaW50ICopIF9fTkRLX0ZQQUJJX01BVEhfXzsJLyogZnVuZGFtZW50YWxseSAhX19wdXJlMiAqLworZG91YmxlCWxkZXhwKGRvdWJsZSwgaW50KSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJbG9nKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWxvZzEwKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCW1vZGYoZG91YmxlLCBkb3VibGUgKikgX19OREtfRlBBQklfTUFUSF9fOwkvKiBmdW5kYW1lbnRhbGx5ICFfX3B1cmUyICovCiAKLWRvdWJsZQlwb3coZG91YmxlLCBkb3VibGUpOwotZG91YmxlCXNxcnQoZG91YmxlKTsKK2RvdWJsZQlwb3coZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlzcXJ0KGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOwogCi1kb3VibGUJY2VpbChkb3VibGUpOwotZG91YmxlCWZhYnMoZG91YmxlKSBfX3B1cmUyOwotZG91YmxlCWZsb29yKGRvdWJsZSk7Ci1kb3VibGUJZm1vZChkb3VibGUsIGRvdWJsZSk7Citkb3VibGUJY2VpbChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlmYWJzKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7Citkb3VibGUJZmxvb3IoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJZm1vZChkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOwogCiAvKgogICogVGhlc2UgZnVuY3Rpb25zIGFyZSBub3QgaW4gQzkwLgogICovCiAvKiAjaWYgX19CU0RfVklTSUJMRSB8fCBfX0lTT19DX1ZJU0lCTEUgPj0gMTk5OSB8fCBfX1hTSV9WSVNJQkxFICovCi1kb3VibGUJYWNvc2goZG91YmxlKTsKLWRvdWJsZQlhc2luaChkb3VibGUpOwotZG91YmxlCWF0YW5oKGRvdWJsZSk7Ci1kb3VibGUJY2JydChkb3VibGUpOwotZG91YmxlCWVyZihkb3VibGUpOwotZG91YmxlCWVyZmMoZG91YmxlKTsKLWRvdWJsZQlleHAyKGRvdWJsZSk7Ci1kb3VibGUJZXhwbTEoZG91YmxlKTsKLWRvdWJsZQlmbWEoZG91YmxlLCBkb3VibGUsIGRvdWJsZSk7Ci1kb3VibGUJaHlwb3QoZG91YmxlLCBkb3VibGUpOwotaW50CWlsb2diKGRvdWJsZSkgX19wdXJlMjsKLS8qIGludAkoaXNpbmYpKGRvdWJsZSkgX19wdXJlMjsgKi8KLWludAkoaXNuYW4pKGRvdWJsZSkgX19wdXJlMjsKLWRvdWJsZQlsZ2FtbWEoZG91YmxlKTsKLWxvbmcgbG9uZyBsbHJpbnQoZG91YmxlKTsKLWxvbmcgbG9uZyBsbHJvdW5kKGRvdWJsZSk7Ci1kb3VibGUJbG9nMXAoZG91YmxlKTsKLWRvdWJsZQlsb2diKGRvdWJsZSk7Ci1sb25nCWxyaW50KGRvdWJsZSk7Ci1sb25nCWxyb3VuZChkb3VibGUpOwotZG91YmxlCW5leHRhZnRlcihkb3VibGUsIGRvdWJsZSk7Ci1kb3VibGUJcmVtYWluZGVyKGRvdWJsZSwgZG91YmxlKTsKLWRvdWJsZQlyZW1xdW8oZG91YmxlLCBkb3VibGUsIGludCAqKTsKLWRvdWJsZQlyaW50KGRvdWJsZSk7Citkb3VibGUJYWNvc2goZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJYXNpbmgoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJYXRhbmgoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJY2JydChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQllcmYoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJZXJmYyhkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlleHAyKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWV4cG0xKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWZtYShkb3VibGUsIGRvdWJsZSwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJaHlwb3QoZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2ludAlpbG9nYihkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworLyogaW50CShpc2luZikoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsgKi8KK2ludAkoaXNuYW4pKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7Citkb3VibGUJbGdhbW1hKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBsb25nIGxscmludChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgbG9uZyBsbHJvdW5kKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWxvZzFwKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWxvZ2IoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nCWxyaW50KGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZwlscm91bmQoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJbmV4dGFmdGVyKGRvdWJsZSwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJcmVtYWluZGVyKGRvdWJsZSwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJcmVtcXVvKGRvdWJsZSwgZG91YmxlLCBpbnQgKikgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCXJpbnQoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CiAvKiAjZW5kaWYgKi8gLyogX19CU0RfVklTSUJMRSB8fCBfX0lTT19DX1ZJU0lCTEUgPj0gMTk5OSB8fCBfX1hTSV9WSVNJQkxFICovCiAKIC8qICNpZiBfX0JTRF9WSVNJQkxFIHx8IF9fWFNJX1ZJU0lCTEUgKi8KLWRvdWJsZQlqMChkb3VibGUpOwotZG91YmxlCWoxKGRvdWJsZSk7Ci1kb3VibGUJam4oaW50LCBkb3VibGUpOwotZG91YmxlCXNjYWxiKGRvdWJsZSwgZG91YmxlKTsKLWRvdWJsZQl5MChkb3VibGUpOwotZG91YmxlCXkxKGRvdWJsZSk7Ci1kb3VibGUJeW4oaW50LCBkb3VibGUpOworZG91YmxlCWowKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWoxKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWpuKGludCwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJc2NhbGIoZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQl5MChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQl5MShkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQl5bihpbnQsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOwogCiAvKiAjaWYgX19YU0lfVklTSUJMRSA8PSA1MDAgfHwgX19CU0RfVklTSUJMRSAqLwotZG91YmxlCWdhbW1hKGRvdWJsZSk7Citkb3VibGUJZ2FtbWEoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CiAvKiAjZW5kaWYgKi8KIC8qICNlbmRpZiAqLyAvKiBfX0JTRF9WSVNJQkxFIHx8IF9fWFNJX1ZJU0lCTEUgKi8KIAogLyogI2lmIF9fQlNEX1ZJU0lCTEUgfHwgX19JU09fQ19WSVNJQkxFID49IDE5OTkgKi8KLWRvdWJsZQljb3B5c2lnbihkb3VibGUsIGRvdWJsZSkgX19wdXJlMjsKLWRvdWJsZQlmZGltKGRvdWJsZSwgZG91YmxlKTsKLWRvdWJsZQlmbWF4KGRvdWJsZSwgZG91YmxlKSBfX3B1cmUyOwotZG91YmxlCWZtaW4oZG91YmxlLCBkb3VibGUpIF9fcHVyZTI7Ci1kb3VibGUJbmVhcmJ5aW50KGRvdWJsZSk7Ci1kb3VibGUJcm91bmQoZG91YmxlKTsKLWRvdWJsZQlzY2FsYmxuKGRvdWJsZSwgbG9uZyk7Ci1kb3VibGUJc2NhbGJuKGRvdWJsZSwgaW50KTsKLWRvdWJsZQl0Z2FtbWEoZG91YmxlKTsKLWRvdWJsZQl0cnVuYyhkb3VibGUpOworZG91YmxlCWNvcHlzaWduKGRvdWJsZSwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2RvdWJsZQlmZGltKGRvdWJsZSwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJZm1heChkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7Citkb3VibGUJZm1pbihkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7Citkb3VibGUJbmVhcmJ5aW50KGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCXJvdW5kKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCXNjYWxibG4oZG91YmxlLCBsb25nKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJc2NhbGJuKGRvdWJsZSwgaW50KSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJdGdhbW1hKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCXRydW5jKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOwogLyogI2VuZGlmICovCiAKIC8qCiAgKiBCU0QgbWF0aCBsaWJyYXJ5IGVudHJ5IHBvaW50cwogICovCiAvKiAjaWYgX19CU0RfVklTSUJMRSAqLwotZG91YmxlCWRyZW0oZG91YmxlLCBkb3VibGUpOwotaW50CWZpbml0ZShkb3VibGUpIF9fcHVyZTI7Ci1pbnQJaXNuYW5mKGZsb2F0KSBfX3B1cmUyOworZG91YmxlCWRyZW0oZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2ludAlmaW5pdGUoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2ludAlpc25hbmYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOwogCiAvKgogICogUmVlbnRyYW50IHZlcnNpb24gb2YgZ2FtbWEgJiBsZ2FtbWE7IHBhc3NlcyBzaWduZ2FtIGJhY2sgYnkgcmVmZXJlbmNlCiAgKiBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50OyB1c2VyIG11c3QgYWxsb2NhdGUgc3BhY2UgZm9yIHNpZ25nYW0uCiAgKi8KLWRvdWJsZQlnYW1tYV9yKGRvdWJsZSwgaW50ICopOwotZG91YmxlCWxnYW1tYV9yKGRvdWJsZSwgaW50ICopOworZG91YmxlCWdhbW1hX3IoZG91YmxlLCBpbnQgKikgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCWxnYW1tYV9yKGRvdWJsZSwgaW50ICopIF9fTkRLX0ZQQUJJX01BVEhfXzsKIAogLyoKICAqIElFRUUgVGVzdCBWZWN0b3IKICAqLwotZG91YmxlCXNpZ25pZmljYW5kKGRvdWJsZSk7Citkb3VibGUJc2lnbmlmaWNhbmQoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CiAvKiAjZW5kaWYgKi8gLyogX19CU0RfVklTSUJMRSAqLwogCiAvKiBmbG9hdCB2ZXJzaW9ucyBvZiBBTlNJL1BPU0lYIGZ1bmN0aW9ucyAqLwogLyojaWYgX19JU09fQ19WSVNJQkxFID49IDE5OTkgKi8KLWZsb2F0CWFjb3NmKGZsb2F0KTsKLWZsb2F0CWFzaW5mKGZsb2F0KTsKLWZsb2F0CWF0YW5mKGZsb2F0KTsKLWZsb2F0CWF0YW4yZihmbG9hdCwgZmxvYXQpOwotZmxvYXQJY29zZihmbG9hdCk7Ci1mbG9hdAlzaW5mKGZsb2F0KTsKLWZsb2F0CXRhbmYoZmxvYXQpOworZmxvYXQJYWNvc2YoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWFzaW5mKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlhdGFuZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJYXRhbjJmKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJY29zZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJc2luZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJdGFuZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOwogCi1mbG9hdAljb3NoZihmbG9hdCk7Ci1mbG9hdAlzaW5oZihmbG9hdCk7Ci1mbG9hdAl0YW5oZihmbG9hdCk7CitmbG9hdAljb3NoZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJc2luaGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CXRhbmhmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CiAKLWZsb2F0CWV4cDJmKGZsb2F0KTsKLWZsb2F0CWV4cGYoZmxvYXQpOwotZmxvYXQJZXhwbTFmKGZsb2F0KTsKLWZsb2F0CWZyZXhwZihmbG9hdCwgaW50ICopOwkvKiBmdW5kYW1lbnRhbGx5ICFfX3B1cmUyICovCi1pbnQJaWxvZ2JmKGZsb2F0KSBfX3B1cmUyOwotZmxvYXQJbGRleHBmKGZsb2F0LCBpbnQpOwotZmxvYXQJbG9nMTBmKGZsb2F0KTsKLWZsb2F0CWxvZzFwZihmbG9hdCk7Ci1mbG9hdAlsb2dmKGZsb2F0KTsKLWZsb2F0CW1vZGZmKGZsb2F0LCBmbG9hdCAqKTsJLyogZnVuZGFtZW50YWxseSAhX19wdXJlMiAqLworZmxvYXQJZXhwMmYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWV4cGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWV4cG0xZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJZnJleHBmKGZsb2F0LCBpbnQgKikgX19OREtfRlBBQklfTUFUSF9fOwkvKiBmdW5kYW1lbnRhbGx5ICFfX3B1cmUyICovCitpbnQJaWxvZ2JmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2Zsb2F0CWxkZXhwZihmbG9hdCwgaW50KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlsb2cxMGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWxvZzFwZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJbG9nZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJbW9kZmYoZmxvYXQsIGZsb2F0ICopIF9fTkRLX0ZQQUJJX01BVEhfXzsJLyogZnVuZGFtZW50YWxseSAhX19wdXJlMiAqLwogCi1mbG9hdAlwb3dmKGZsb2F0LCBmbG9hdCk7Ci1mbG9hdAlzcXJ0ZihmbG9hdCk7CitmbG9hdAlwb3dmKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJc3FydGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKIAotZmxvYXQJY2VpbGYoZmxvYXQpOwotZmxvYXQJZmFic2YoZmxvYXQpIF9fcHVyZTI7Ci1mbG9hdAlmbG9vcmYoZmxvYXQpOwotZmxvYXQJZm1vZGYoZmxvYXQsIGZsb2F0KTsKLWZsb2F0CXJvdW5kZihmbG9hdCk7CitmbG9hdAljZWlsZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJZmFic2YoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworZmxvYXQJZmxvb3JmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlmbW9kZihmbG9hdCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CXJvdW5kZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOwogCi1mbG9hdAllcmZmKGZsb2F0KTsKLWZsb2F0CWVyZmNmKGZsb2F0KTsKLWZsb2F0CWh5cG90ZihmbG9hdCwgZmxvYXQpOwotZmxvYXQJbGdhbW1hZihmbG9hdCk7CitmbG9hdAllcmZmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAllcmZjZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJaHlwb3RmKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJbGdhbW1hZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOwogCi1mbG9hdAlhY29zaGYoZmxvYXQpOwotZmxvYXQJYXNpbmhmKGZsb2F0KTsKLWZsb2F0CWF0YW5oZihmbG9hdCk7Ci1mbG9hdAljYnJ0ZihmbG9hdCk7Ci1mbG9hdAlsb2diZihmbG9hdCk7Ci1mbG9hdAljb3B5c2lnbmYoZmxvYXQsIGZsb2F0KSBfX3B1cmUyOwotbG9uZyBsb25nIGxscmludGYoZmxvYXQpOwotbG9uZyBsb25nIGxscm91bmRmKGZsb2F0KTsKLWxvbmcJbHJpbnRmKGZsb2F0KTsKLWxvbmcJbHJvdW5kZihmbG9hdCk7Ci1mbG9hdAluZWFyYnlpbnRmKGZsb2F0KTsKLWZsb2F0CW5leHRhZnRlcmYoZmxvYXQsIGZsb2F0KTsKLWZsb2F0CXJlbWFpbmRlcmYoZmxvYXQsIGZsb2F0KTsKLWZsb2F0CXJlbXF1b2YoZmxvYXQsIGZsb2F0LCBpbnQgKik7Ci1mbG9hdAlyaW50ZihmbG9hdCk7Ci1mbG9hdAlzY2FsYmxuZihmbG9hdCwgbG9uZyk7Ci1mbG9hdAlzY2FsYm5mKGZsb2F0LCBpbnQpOwotZmxvYXQJdHJ1bmNmKGZsb2F0KTsKK2Zsb2F0CWFjb3NoZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJYXNpbmhmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlhdGFuaGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWNicnRmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlsb2diZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJY29weXNpZ25mKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7Citsb25nIGxvbmcgbGxyaW50ZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBsb25nIGxscm91bmRmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187Citsb25nCWxyaW50ZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZwlscm91bmRmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAluZWFyYnlpbnRmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAluZXh0YWZ0ZXJmKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJcmVtYWluZGVyZihmbG9hdCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CXJlbXF1b2YoZmxvYXQsIGZsb2F0LCBpbnQgKikgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJcmludGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CXNjYWxibG5mKGZsb2F0LCBsb25nKSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlzY2FsYm5mKGZsb2F0LCBpbnQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CXRydW5jZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOwogCi1mbG9hdAlmZGltZihmbG9hdCwgZmxvYXQpOwotZmxvYXQJZm1hZihmbG9hdCwgZmxvYXQsIGZsb2F0KTsKLWZsb2F0CWZtYXhmKGZsb2F0LCBmbG9hdCkgX19wdXJlMjsKLWZsb2F0CWZtaW5mKGZsb2F0LCBmbG9hdCkgX19wdXJlMjsKK2Zsb2F0CWZkaW1mKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJZm1hZihmbG9hdCwgZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlmbWF4ZihmbG9hdCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworZmxvYXQJZm1pbmYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKIC8qICNlbmRpZiAqLwogCiAvKgogICogZmxvYXQgdmVyc2lvbnMgb2YgQlNEIG1hdGggbGlicmFyeSBlbnRyeSBwb2ludHMKICAqLwogLyogI2lmIF9fQlNEX1ZJU0lCTEUgKi8KLWZsb2F0CWRyZW1mKGZsb2F0LCBmbG9hdCk7Ci1pbnQJZmluaXRlZihmbG9hdCkgX19wdXJlMjsKLWZsb2F0CWdhbW1hZihmbG9hdCk7Ci1mbG9hdAlqMGYoZmxvYXQpOwotZmxvYXQJajFmKGZsb2F0KTsKLWZsb2F0CWpuZihpbnQsIGZsb2F0KTsKLWZsb2F0CXNjYWxiZihmbG9hdCwgZmxvYXQpOwotZmxvYXQJeTBmKGZsb2F0KTsKLWZsb2F0CXkxZihmbG9hdCk7Ci1mbG9hdAl5bmYoaW50LCBmbG9hdCk7CitmbG9hdAlkcmVtZihmbG9hdCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2ludAlmaW5pdGVmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2Zsb2F0CWdhbW1hZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJajBmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlqMWYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CWpuZihpbnQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlzY2FsYmYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAl5MGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CXkxZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJeW5mKGludCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKIAogLyoKICAqIEZsb2F0IHZlcnNpb25zIG9mIHJlZW50cmFudCB2ZXJzaW9uIG9mIGdhbW1hICYgbGdhbW1hOyBwYXNzZXMKICAqIHNpZ25nYW0gYmFjayBieSByZWZlcmVuY2UgYXMgdGhlIHNlY29uZCBhcmd1bWVudDsgdXNlciBtdXN0CiAgKiBhbGxvY2F0ZSBzcGFjZSBmb3Igc2lnbmdhbS4KICAqLwotZmxvYXQJZ2FtbWFmX3IoZmxvYXQsIGludCAqKTsKLWZsb2F0CWxnYW1tYWZfcihmbG9hdCwgaW50ICopOworZmxvYXQJZ2FtbWFmX3IoZmxvYXQsIGludCAqKSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlsZ2FtbWFmX3IoZmxvYXQsIGludCAqKSBfX05ES19GUEFCSV9NQVRIX187CiAKIC8qCiAgKiBmbG9hdCB2ZXJzaW9uIG9mIElFRUUgVGVzdCBWZWN0b3IKICAqLwotZmxvYXQJc2lnbmlmaWNhbmRmKGZsb2F0KTsKK2Zsb2F0CXNpZ25pZmljYW5kZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOwogLyogI2VuZGlmICovCS8qIF9fQlNEX1ZJU0lCTEUgKi8gCiAKIC8qCkBAIC00MDMsOTAgKzQwMywzMDEgQEAKICAqLwogLyogI2lmIF9fSVNPX0NfVklTSUJMRSA+PSAxOTk5ICovCiAjaWYgMAotbG9uZyBkb3VibGUJYWNvc2hsKGxvbmcgZG91YmxlKTsKLWxvbmcgZG91YmxlCWFjb3NsKGxvbmcgZG91YmxlKTsKLWxvbmcgZG91YmxlCWFzaW5obChsb25nIGRvdWJsZSk7Ci1sb25nIGRvdWJsZQlhc2lubChsb25nIGRvdWJsZSk7Ci1sb25nIGRvdWJsZQlhdGFuMmwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKTsKLWxvbmcgZG91YmxlCWF0YW5obChsb25nIGRvdWJsZSk7Ci1sb25nIGRvdWJsZQlhdGFubChsb25nIGRvdWJsZSk7Ci1sb25nIGRvdWJsZQljYnJ0bChsb25nIGRvdWJsZSk7Citsb25nIGRvdWJsZQlhY29zaGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWFjb3NsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlhc2luaGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWFzaW5sKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlhdGFuMmwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlhdGFuaGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWF0YW5sKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQljYnJ0bChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOwogI2VuZGlmCi1sb25nIGRvdWJsZQljZWlsbChsb25nIGRvdWJsZSk7Ci1sb25nIGRvdWJsZQljb3B5c2lnbmwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX3B1cmUyOworbG9uZyBkb3VibGUJY2VpbGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWNvcHlzaWdubChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOwogI2lmIDAKLWxvbmcgZG91YmxlCWNvc2hsKGxvbmcgZG91YmxlKTsKLWxvbmcgZG91YmxlCWNvc2wobG9uZyBkb3VibGUpOwotbG9uZyBkb3VibGUJZXJmY2wobG9uZyBkb3VibGUpOwotbG9uZyBkb3VibGUJZXJmbChsb25nIGRvdWJsZSk7Ci1sb25nIGRvdWJsZQlleHAybChsb25nIGRvdWJsZSk7Ci1sb25nIGRvdWJsZQlleHBsKGxvbmcgZG91YmxlKTsKLWxvbmcgZG91YmxlCWV4cG0xbChsb25nIGRvdWJsZSk7Citsb25nIGRvdWJsZQljb3NobChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJY29zbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJZXJmY2wobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWVyZmwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWV4cDJsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlleHBsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlleHBtMWwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKICNlbmRpZgotbG9uZyBkb3VibGUJZmFic2wobG9uZyBkb3VibGUpIF9fcHVyZTI7Ci1sb25nIGRvdWJsZQlmZGltbChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpOwotbG9uZyBkb3VibGUJZmxvb3JsKGxvbmcgZG91YmxlKTsKLWxvbmcgZG91YmxlCWZtYWwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSk7Ci1sb25nIGRvdWJsZQlmbWF4bChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fcHVyZTI7Ci1sb25nIGRvdWJsZQlmbWlubChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fcHVyZTI7Citsb25nIGRvdWJsZQlmYWJzbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7Citsb25nIGRvdWJsZQlmZGltbChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWZsb29ybChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJZm1hbChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlmbWF4bChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworbG9uZyBkb3VibGUJZm1pbmwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKICNpZiAwCi1sb25nIGRvdWJsZQlmbW9kbChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpOworbG9uZyBkb3VibGUJZm1vZGwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CiAjZW5kaWYKLWxvbmcgZG91YmxlCWZyZXhwbChsb25nIGRvdWJsZSB2YWx1ZSwgaW50ICopOyAvKiBmdW5kYW1lbnRhbGx5ICFfX3B1cmUyICovCitsb25nIGRvdWJsZQlmcmV4cGwobG9uZyBkb3VibGUgdmFsdWUsIGludCAqKSBfX05ES19GUEFCSV9NQVRIX187IC8qIGZ1bmRhbWVudGFsbHkgIV9fcHVyZTIgKi8KICNpZiAwCi1sb25nIGRvdWJsZQloeXBvdGwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKTsKK2xvbmcgZG91YmxlCWh5cG90bChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKICNlbmRpZgotaW50CQlpbG9nYmwobG9uZyBkb3VibGUpIF9fcHVyZTI7Ci1sb25nIGRvdWJsZQlsZGV4cGwobG9uZyBkb3VibGUsIGludCk7CitpbnQJCWlsb2dibChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7Citsb25nIGRvdWJsZQlsZGV4cGwobG9uZyBkb3VibGUsIGludCkgX19OREtfRlBBQklfTUFUSF9fOwogI2lmIDAKLWxvbmcgZG91YmxlCWxnYW1tYWwobG9uZyBkb3VibGUpOwotbG9uZyBsb25nCWxscmludGwobG9uZyBkb3VibGUpOworbG9uZyBkb3VibGUJbGdhbW1hbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBsb25nCWxscmludGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKICNlbmRpZgotbG9uZyBsb25nCWxscm91bmRsKGxvbmcgZG91YmxlKTsKK2xvbmcgbG9uZwlsbHJvdW5kbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOwogI2lmIDAKLWxvbmcgZG91YmxlCWxvZzEwbChsb25nIGRvdWJsZSk7Ci1sb25nIGRvdWJsZQlsb2cxcGwobG9uZyBkb3VibGUpOwotbG9uZyBkb3VibGUJbG9nMmwobG9uZyBkb3VibGUpOwotbG9uZyBkb3VibGUJbG9nYmwobG9uZyBkb3VibGUpOwotbG9uZyBkb3VibGUJbG9nbChsb25nIGRvdWJsZSk7Ci1sb25nCQlscmludGwobG9uZyBkb3VibGUpOworbG9uZyBkb3VibGUJbG9nMTBsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlsb2cxcGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCWxvZzJsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlsb2dibChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJbG9nbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZwkJbHJpbnRsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CiAjZW5kaWYKLWxvbmcJCWxyb3VuZGwobG9uZyBkb3VibGUpOworbG9uZwkJbHJvdW5kbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOwogI2lmIDAKLWxvbmcgZG91YmxlCW1vZGZsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSAqKTsgLyogZnVuZGFtZW50YWxseSAhX19wdXJlMiAqLwotbG9uZyBkb3VibGUJbmFubChjb25zdCBjaGFyICopIF9fcHVyZTI7Ci1sb25nIGRvdWJsZQluZWFyYnlpbnRsKGxvbmcgZG91YmxlKTsKK2xvbmcgZG91YmxlCW1vZGZsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSAqKSBfX05ES19GUEFCSV9NQVRIX187IC8qIGZ1bmRhbWVudGFsbHkgIV9fcHVyZTIgKi8KK2xvbmcgZG91YmxlCW5hbmwoY29uc3QgY2hhciAqKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2xvbmcgZG91YmxlCW5lYXJieWludGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKICNlbmRpZgotbG9uZyBkb3VibGUJbmV4dGFmdGVybChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpOwotZG91YmxlCQluZXh0dG93YXJkKGRvdWJsZSwgbG9uZyBkb3VibGUpOwotZmxvYXQJCW5leHR0b3dhcmRmKGZsb2F0LCBsb25nIGRvdWJsZSk7Ci1sb25nIGRvdWJsZQluZXh0dG93YXJkbChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpOworbG9uZyBkb3VibGUJbmV4dGFmdGVybChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQkJbmV4dHRvd2FyZChkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAkJbmV4dHRvd2FyZGYoZmxvYXQsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQluZXh0dG93YXJkbChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKICNpZiAwCi1sb25nIGRvdWJsZQlwb3dsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSk7Ci1sb25nIGRvdWJsZQlyZW1haW5kZXJsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSk7Ci1sb25nIGRvdWJsZQlyZW1xdW9sKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSwgaW50ICopOwotbG9uZyBkb3VibGUJcmludGwobG9uZyBkb3VibGUpOworbG9uZyBkb3VibGUJcG93bChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCXJlbWFpbmRlcmwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlyZW1xdW9sKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSwgaW50ICopIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCXJpbnRsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CiAjZW5kaWYKLWxvbmcgZG91YmxlCXJvdW5kbChsb25nIGRvdWJsZSk7Ci1sb25nIGRvdWJsZQlzY2FsYmxubChsb25nIGRvdWJsZSwgbG9uZyk7Ci1sb25nIGRvdWJsZQlzY2FsYm5sKGxvbmcgZG91YmxlLCBpbnQpOworbG9uZyBkb3VibGUJcm91bmRsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlzY2FsYmxubChsb25nIGRvdWJsZSwgbG9uZykgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJc2NhbGJubChsb25nIGRvdWJsZSwgaW50KSBfX05ES19GUEFCSV9NQVRIX187CiAjaWYgMAotbG9uZyBkb3VibGUJc2luaGwobG9uZyBkb3VibGUpOwotbG9uZyBkb3VibGUJc2lubChsb25nIGRvdWJsZSk7Ci1sb25nIGRvdWJsZQlzcXJ0bChsb25nIGRvdWJsZSk7Ci1sb25nIGRvdWJsZQl0YW5obChsb25nIGRvdWJsZSk7Ci1sb25nIGRvdWJsZQl0YW5sKGxvbmcgZG91YmxlKTsKLWxvbmcgZG91YmxlCXRnYW1tYWwobG9uZyBkb3VibGUpOworbG9uZyBkb3VibGUJc2luaGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCXNpbmwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCXNxcnRsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQl0YW5obChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJdGFubChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJdGdhbW1hbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOwogI2VuZGlmCi1sb25nIGRvdWJsZQl0cnVuY2wobG9uZyBkb3VibGUpOworbG9uZyBkb3VibGUJdHJ1bmNsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CiAKIC8qIEJJT05JQzogR0xpYmMgY29tcGF0aWJpbGl0eSAtIHJlcXVpcmVkIGJ5IHRoZSBBUk0gdG9vbGNoYWluICovCiAjaWZkZWYgX0dOVV9TT1VSQ0UKLXZvaWQgIHNpbmNvcyhkb3VibGUgeCwgZG91YmxlICpzaW4sIGRvdWJsZSAqY29zKTsKLXZvaWQgIHNpbmNvc2YoZmxvYXQgeCwgZmxvYXQgKnNpbiwgZmxvYXQgKmNvcyk7Ci12b2lkICBzaW5jb3NsKGxvbmcgZG91YmxlIHgsIGxvbmcgZG91YmxlICpzaW4sIGxvbmcgZG91YmxlICpjb3MpOwordm9pZCAgc2luY29zKGRvdWJsZSB4LCBkb3VibGUgKnNpbiwgZG91YmxlICpjb3MpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK3ZvaWQgIHNpbmNvc2YoZmxvYXQgeCwgZmxvYXQgKnNpbiwgZmxvYXQgKmNvcykgX19OREtfRlBBQklfTUFUSF9fOwordm9pZCAgc2luY29zbChsb25nIGRvdWJsZSB4LCBsb25nIGRvdWJsZSAqc2luLCBsb25nIGRvdWJsZSAqY29zKSBfX05ES19GUEFCSV9NQVRIX187CiAjZW5kaWYKIAorLyogYnVpbHRpbiB2ZXJzaW9uIG9mIGFsbCB0aGUgYWJvdmUgbWF0aCBmdW5jdGlvbnMgYXJlIGFubm90YXRlZCB0b28gKi8KKworZG91YmxlCV9fYnVpbHRpbl9hY29zKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9hc2luKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9hdGFuKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9hdGFuMihkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9jb3MoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX3Npbihkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fdGFuKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9jb3NoKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9zaW5oKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl90YW5oKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9leHAoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2ZyZXhwKGRvdWJsZSwgaW50ICopIF9fTkRLX0ZQQUJJX01BVEhfXzsJLyogZnVuZGFtZW50YWxseSAhX19wdXJlMiAqLworZG91YmxlCV9fYnVpbHRpbl9sZGV4cChkb3VibGUsIGludCkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9sb2coZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2xvZzEwKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9tb2RmKGRvdWJsZSwgZG91YmxlICopIF9fTkRLX0ZQQUJJX01BVEhfXzsJLyogZnVuZGFtZW50YWxseSAhX19wdXJlMiAqLworZG91YmxlCV9fYnVpbHRpbl9wb3coZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fc3FydChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fY2VpbChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fZmFicyhkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworZG91YmxlCV9fYnVpbHRpbl9mbG9vcihkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fZm1vZChkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9hY29zaChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fYXNpbmgoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2F0YW5oKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9jYnJ0KGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9lcmYoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2VyZmMoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2V4cDIoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2V4cG0xKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9mbWEoZG91YmxlLCBkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9oeXBvdChkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworaW50CV9fYnVpbHRpbl9pbG9nYihkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworLyogaW50CV9fYnVpbHRpbl9pc2luZihkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOyAqLworI2lmICFkZWZpbmVkKF9fY2xhbmdfXykgfHwgX19jbGFuZ19tYWpvcl9fID4gMyB8fCAoX19jbGFuZ19tYWpvcl9fID09IDMgJiYgX19jbGFuZ19taW5vcl9fID49IDUpCitpbnQJX19idWlsdGluX2lzbmFuKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CisjZWxzZQorLyogY2xhbmcgPCAzLjUgaGFzIGZhdWx0eSBwcm90b3R5cGUgZm9yIF9fYnVpbHRpbl9pc25hbiAqLworI2VuZGlmCitkb3VibGUJX19idWlsdGluX2xnYW1tYShkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgbG9uZyBfX2J1aWx0aW5fbGxyaW50KGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBsb25nIF9fYnVpbHRpbl9sbHJvdW5kKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9sb2cxcChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fbG9nYihkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcJX19idWlsdGluX2xyaW50KGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZwlfX2J1aWx0aW5fbHJvdW5kKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9uZXh0YWZ0ZXIoZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fcmVtYWluZGVyKGRvdWJsZSwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX3JlbXF1byhkb3VibGUsIGRvdWJsZSwgaW50ICopIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fcmludChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fajAoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2oxKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9qbihpbnQsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9zY2FsYihkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl95MChkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5feTEoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX3luKGludCwgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2dhbW1hKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9jb3B5c2lnbihkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7Citkb3VibGUJX19idWlsdGluX2ZkaW0oZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fZm1heChkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7Citkb3VibGUJX19idWlsdGluX2ZtaW4oZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworZG91YmxlCV9fYnVpbHRpbl9uZWFyYnlpbnQoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX3JvdW5kKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9zY2FsYmxuKGRvdWJsZSwgbG9uZykgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl9zY2FsYm4oZG91YmxlLCBpbnQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fdGdhbW1hKGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworZG91YmxlCV9fYnVpbHRpbl90cnVuYyhkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fZHJlbShkb3VibGUsIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworaW50CV9fYnVpbHRpbl9maW5pdGUoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2ludAlfX2J1aWx0aW5faXNuYW5mKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2RvdWJsZQlfX2J1aWx0aW5fZ2FtbWFfcihkb3VibGUsIGludCAqKSBfX05ES19GUEFCSV9NQVRIX187Citkb3VibGUJX19idWlsdGluX2xnYW1tYV9yKGRvdWJsZSwgaW50ICopIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2RvdWJsZQlfX2J1aWx0aW5fc2lnbmlmaWNhbmQoZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fYWNvc2YoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9hc2luZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2F0YW5mKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fYXRhbjJmKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2Nvc2YoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9zaW5mKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fdGFuZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2Nvc2hmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fc2luaGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl90YW5oZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2V4cDJmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fZXhwZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2V4cG0xZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2ZyZXhwZihmbG9hdCwgaW50ICopIF9fTkRLX0ZQQUJJX01BVEhfXzsJLyogZnVuZGFtZW50YWxseSAhX19wdXJlMiAqLworaW50CV9fYnVpbHRpbl9pbG9nYmYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworZmxvYXQJX19idWlsdGluX2xkZXhwZihmbG9hdCwgaW50KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fbG9nMTBmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fbG9nMXBmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fbG9nZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX21vZGZmKGZsb2F0LCBmbG9hdCAqKSBfX05ES19GUEFCSV9NQVRIX187CS8qIGZ1bmRhbWVudGFsbHkgIV9fcHVyZTIgKi8KK2Zsb2F0CV9fYnVpbHRpbl9wb3dmKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX3NxcnRmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fY2VpbGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9mYWJzZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitmbG9hdAlfX2J1aWx0aW5fZmxvb3JmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fZm1vZGYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fcm91bmRmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fZXJmZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2VyZmNmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5faHlwb3RmKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2xnYW1tYWYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9hY29zaGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9hc2luaGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9hdGFuaGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9jYnJ0ZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2xvZ2JmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fY29weXNpZ25mKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7Citsb25nIGxvbmcgX19idWlsdGluX2xscmludGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgbG9uZyBfX2J1aWx0aW5fbGxyb3VuZGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcJX19idWlsdGluX2xyaW50ZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZwlfX2J1aWx0aW5fbHJvdW5kZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX25lYXJieWludGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9uZXh0YWZ0ZXJmKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX3JlbWFpbmRlcmYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fcmVtcXVvZihmbG9hdCwgZmxvYXQsIGludCAqKSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fcmludGYoZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9zY2FsYmxuZihmbG9hdCwgbG9uZykgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX3NjYWxibmYoZmxvYXQsIGludCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX3RydW5jZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2ZkaW1mKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2ZtYWYoZmxvYXQsIGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fOworZmxvYXQJX19idWlsdGluX2ZtYXhmKGZsb2F0LCBmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitmbG9hdAlfX2J1aWx0aW5fZm1pbmYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2Zsb2F0CV9fYnVpbHRpbl9kcmVtZihmbG9hdCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2ludAlfX2J1aWx0aW5fZmluaXRlZihmbG9hdCkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7CitmbG9hdAlfX2J1aWx0aW5fZ2FtbWFmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fajBmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fajFmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fam5mKGludCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9zY2FsYmYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5feTBmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5feTFmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5feW5mKGludCwgZmxvYXQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9nYW1tYWZfcihmbG9hdCwgaW50ICopIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CV9fYnVpbHRpbl9sZ2FtbWFmX3IoZmxvYXQsIGludCAqKSBfX05ES19GUEFCSV9NQVRIX187CitmbG9hdAlfX2J1aWx0aW5fc2lnbmlmaWNhbmRmKGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fYWNvc2hsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fYWNvc2wobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9hc2luaGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9hc2lubChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2F0YW4ybChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9hdGFuaGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9hdGFubChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2NicnRsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fY2VpbGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9jb3B5c2lnbmwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9jb3NobChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2Nvc2wobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9lcmZjbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2VyZmwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9leHAybChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2V4cGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9leHBtMWwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9mYWJzbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fZmRpbWwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fZmxvb3JsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fZm1hbChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fZm1heGwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX18gX19wdXJlMjsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9mbWlubChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworbG9uZyBkb3VibGUJX19idWlsdGluX2Ztb2RsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2ZyZXhwbChsb25nIGRvdWJsZSB2YWx1ZSwgaW50ICopIF9fTkRLX0ZQQUJJX01BVEhfXzsgLyogZnVuZGFtZW50YWxseSAhX19wdXJlMiAqLworbG9uZyBkb3VibGUJX19idWlsdGluX2h5cG90bChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2ludAkJX19idWlsdGluX2lsb2dibChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fIF9fcHVyZTI7Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fbGRleHBsKGxvbmcgZG91YmxlLCBpbnQpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9sZ2FtbWFsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGxvbmcJX19idWlsdGluX2xscmludGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgbG9uZwlfX2J1aWx0aW5fbGxyb3VuZGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9sb2cxMGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9sb2cxcGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9sb2cybChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX2xvZ2JsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fbG9nbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZwkJX19idWlsdGluX2xyaW50bChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZwkJX19idWlsdGluX2xyb3VuZGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9tb2RmbChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUgKikgX19OREtfRlBBQklfTUFUSF9fOyAvKiBmdW5kYW1lbnRhbGx5ICFfX3B1cmUyICovCitsb25nIGRvdWJsZQlfX2J1aWx0aW5fbmFubChjb25zdCBjaGFyICopIF9fTkRLX0ZQQUJJX01BVEhfXyBfX3B1cmUyOworbG9uZyBkb3VibGUJX19idWlsdGluX25lYXJieWludGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9uZXh0YWZ0ZXJsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworI2lmICFkZWZpbmVkKF9fY2xhbmdfXykgfHwgX19jbGFuZ19tYWpvcl9fID4gMyB8fCAoX19jbGFuZ19tYWpvcl9fID09IDMgJiYgX19jbGFuZ19taW5vcl9fID49IDQpCitkb3VibGUJCV9fYnVpbHRpbl9uZXh0dG93YXJkKGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CQlfX2J1aWx0aW5fbmV4dHRvd2FyZGYoZmxvYXQsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187CisjZWxzZQorLyogY2xhbmcgPCAzLjQgKi8KK2RvdWJsZQkJX19idWlsdGluX25leHR0b3dhcmQoZG91YmxlLCBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2Zsb2F0CQlfX2J1aWx0aW5fbmV4dHRvd2FyZGYoZmxvYXQsIGZsb2F0KSBfX05ES19GUEFCSV9NQVRIX187CisjZW5kaWYKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9uZXh0dG93YXJkbChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9wb3dsKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX3JlbWFpbmRlcmwobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fcmVtcXVvbChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUsIGludCAqKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fcmludGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9yb3VuZGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl9zY2FsYmxubChsb25nIGRvdWJsZSwgbG9uZykgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX3NjYWxibmwobG9uZyBkb3VibGUsIGludCkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX3NpbmhsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fc2lubChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX3NxcnRsKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fdGFuaGwobG9uZyBkb3VibGUpIF9fTkRLX0ZQQUJJX01BVEhfXzsKK2xvbmcgZG91YmxlCV9fYnVpbHRpbl90YW5sKGxvbmcgZG91YmxlKSBfX05ES19GUEFCSV9NQVRIX187Citsb25nIGRvdWJsZQlfX2J1aWx0aW5fdGdhbW1hbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOworbG9uZyBkb3VibGUJX19idWlsdGluX3RydW5jbChsb25nIGRvdWJsZSkgX19OREtfRlBBQklfTUFUSF9fOwordm9pZCAgX19idWlsdGluX3NpbmNvcyhkb3VibGUgeCwgZG91YmxlICpzaW4sIGRvdWJsZSAqY29zKSBfX05ES19GUEFCSV9NQVRIX187Cit2b2lkICBfX2J1aWx0aW5fc2luY29zZihmbG9hdCB4LCBmbG9hdCAqc2luLCBmbG9hdCAqY29zKSBfX05ES19GUEFCSV9NQVRIX187Cit2b2lkICBfX2J1aWx0aW5fc2luY29zbChsb25nIGRvdWJsZSB4LCBsb25nIGRvdWJsZSAqc2luLCBsb25nIGRvdWJsZSAqY29zKSBfX05ES19GUEFCSV9NQVRIX187CisKIC8qICNlbmRpZiAqLyAvKiBfX0lTT19DX1ZJU0lCTEUgPj0gMTk5OSAqLwogX19FTkRfREVDTFMKIApkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvaW5jbHVkZS9wdGhyZWFkLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9pbmNsdWRlL3B0aHJlYWQuaAppbmRleCBjM2YwNTVlLi4wMTc2YWJkIDEwMDY0NAotLS0gYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9pbmNsdWRlL3B0aHJlYWQuaAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9pbmNsdWRlL3B0aHJlYWQuaApAQCAtMTQyLDcgKzE0Miw5IEBACiAKIGludCBwdGhyZWFkX2NyZWF0ZShwdGhyZWFkX3QgKnRocmVhZCwgcHRocmVhZF9hdHRyX3QgY29uc3QgKiBhdHRyLAogICAgICAgICAgICAgICAgICAgIHZvaWQgKigqc3RhcnRfcm91dGluZSkodm9pZCAqKSwgdm9pZCAqIGFyZyk7Ci12b2lkIHB0aHJlYWRfZXhpdCh2b2lkICogcmV0dmFsKTsKKworX19ub3JldHVybiB2b2lkIHB0aHJlYWRfZXhpdCh2b2lkICogcmV0dmFsKTsKKwogaW50IHB0aHJlYWRfam9pbihwdGhyZWFkX3QgdGhpZCwgdm9pZCAqKiByZXRfdmFsKTsKIGludCBwdGhyZWFkX2RldGFjaChwdGhyZWFkX3QgIHRoaWQpOwogCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9pbmNsdWRlL3N0ZGxpYi5oIGIvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvaW5jbHVkZS9zdGRsaWIuaAppbmRleCA5N2Q4ZTQ2Li42MDExNzg3IDEwMDY0NAotLS0gYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9pbmNsdWRlL3N0ZGxpYi5oCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2luY2x1ZGUvc3RkbGliLmgKQEAgLTU3LDYgKzU3LDcgQEAKIGV4dGVybiBpbnQgdW5zZXRlbnYoY29uc3QgY2hhciAqKTsKIGV4dGVybiBpbnQgY2xlYXJlbnYodm9pZCk7CiAKK2V4dGVybiBjaGFyICpta2R0ZW1wKGNoYXIgKik7CiBleHRlcm4gY2hhciAqbWt0ZW1wIChjaGFyICopOwogZXh0ZXJuIGludCBta3N0ZW1wIChjaGFyICopOwogCkBAIC02NCw4ICs2NSw5IEBACiBleHRlcm4gbG9uZyBsb25nIHN0cnRvbGwoY29uc3QgY2hhciAqLCBjaGFyICoqLCBpbnQpOwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgc3RydG91bChjb25zdCBjaGFyICosIGNoYXIgKiosIGludCk7CiBleHRlcm4gdW5zaWduZWQgbG9uZyBsb25nIHN0cnRvdWxsKGNvbnN0IGNoYXIgKiwgY2hhciAqKiwgaW50KTsKLWV4dGVybiBkb3VibGUgc3RydG9kKGNvbnN0IGNoYXIgKm5wdHIsIGNoYXIgKiplbmRwdHIpOworZXh0ZXJuIGRvdWJsZSBzdHJ0b2QoY29uc3QgY2hhciAqbnB0ciwgY2hhciAqKmVuZHB0cikgX19OREtfRlBBQklfXzsKIAorX19OREtfRlBBQklfXwogc3RhdGljIF9faW5saW5lX18gZmxvYXQgc3RydG9mKGNvbnN0IGNoYXIgKm5wdHIsIGNoYXIgKiplbmRwdHIpCiB7CiAgICAgcmV0dXJuIChmbG9hdClzdHJ0b2QobnB0ciwgZW5kcHRyKTsKQEAgLTc1LDYgKzc3LDcgQEAKIGV4dGVybiBsb25nIGF0b2woY29uc3QgY2hhciAqKTsKIGV4dGVybiBsb25nIGxvbmcgYXRvbGwoY29uc3QgY2hhciAqKTsKIAorIF9fTkRLX0ZQQUJJX18KIHN0YXRpYyBfX2lubGluZV9fIGRvdWJsZSBhdG9mKGNvbnN0IGNoYXIgKm5wdHIpCiB7CiAgICAgcmV0dXJuIChzdHJ0b2QobnB0ciwgTlVMTCkpOwpAQCAtMTA2LDggKzEwOSw4IEBACiBleHRlcm4gbG9uZyBucmFuZDQ4KHVuc2lnbmVkIHNob3J0ICopOwogZXh0ZXJuIGxvbmcgbHJhbmQ0OCh2b2lkKTsKIGV4dGVybiB1bnNpZ25lZCBzaG9ydCAqc2VlZDQ4KHVuc2lnbmVkIHNob3J0Kik7Ci1leHRlcm4gZG91YmxlIGVyYW5kNDgodW5zaWduZWQgc2hvcnQgeHN1YmlbM10pOwotZXh0ZXJuIGRvdWJsZSBkcmFuZDQ4KHZvaWQpOworZXh0ZXJuIGRvdWJsZSBlcmFuZDQ4KHVuc2lnbmVkIHNob3J0IHhzdWJpWzNdKSBfX05ES19GUEFCSV9fOworZXh0ZXJuIGRvdWJsZSBkcmFuZDQ4KHZvaWQpIF9fTkRLX0ZQQUJJX187CiBleHRlcm4gdm9pZCBzcmFuZDQ4KGxvbmcpOwogZXh0ZXJuIHVuc2lnbmVkIGludCBhcmM0cmFuZG9tKHZvaWQpOwogZXh0ZXJuIHZvaWQgYXJjNHJhbmRvbV9zdGlyKHZvaWQpOwpkaWZmIC0tZ2l0IGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvaW5jbHVkZS9zeXMvY2RlZnMuaCBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2luY2x1ZGUvc3lzL2NkZWZzLmgKaW5kZXggOTIwMzVkNC4uYmViMzVjNCAxMDA2NDQKLS0tIGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvaW5jbHVkZS9zeXMvY2RlZnMuaAorKysgYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9pbmNsdWRlL3N5cy9jZGVmcy5oCkBAIC00OTksNCArNDk5LDMxIEBACiAjZGVmaW5lICBfX0JJT05JQ19fICAgMQogI2luY2x1ZGUgPGFuZHJvaWQvYXBpLWxldmVsLmg+CiAKKy8qIF9fTkRLX0ZQQUJJX18gb3IgX19OREtfRlBBQklfTUFUSF9fIGFyZSBhcHBsaWVkIHRvIEFQSXMgdGFraW5nIG9yIHJldHVybmluZyBmbG9hdCBvcgorICAgW2xvbmddIGRvdWJsZSwgdG8gZW5zdXJlIGV2ZW4gYXQgdGhlIHByZXNlbmNlIG9mIC1taGFyZC1mbG9hdCAod2hpY2ggaW1wbGllcworICAgLW1mbG9hdC1hYmk9aGFyZCksIGNhbGxpbmcgdG8gMzItYml0IEFuZHJvaWQgbmF0aXZlIEFQSXMgc3RpbGwgZm9sbG93IC1tZmxvYXQtYWJpPXNvZnRmcC4KKworICAgX19OREtfRlBBQklfTUFUSF9fIGlzIGFwcGxpZWQgdG8gQVBJcyBpbiBtYXRoLmguICBJdCBub3JtYWxseSBlcXVhbHMgdG8gX19OREtfRlBBQklfXywKKyAgIGJ1dCBhbGxvd3MgdXNlIG9mIGN1c3RvbWl6ZWQgbGlibS5hIGNvbXBpbGVkIHdpdGggLW1oYXJkLWZsb2F0IGJ5IC1EX05ES19NQVRIX05PX1NPRlRGUD0xCisKKyAgIE5PVEU6IERpc2FibGUgZm9yIGNsYW5nIGZvciBub3cgdW5sZXNzIF9OREtfTUFUSF9OT19TT0ZURlA9MSwgYmVjYXVzZSBjbGFuZyBiZWZvcmUgMy40IGRvZXNuJ3QKKyAgICAgICAgIGFsbG93IGNoYW5nZSBvZiBjYWxsaW5nIGNvbnZlbnNpb24gZm9yIGJ1aWx0aW4gYW5kIHByb2R1Y2VzIGVycm9yIG1lc3NhZ2UgcmVhZHM6CisKKyAgICAgICAgICAgYS5pOjU2NDo2OiBlcnJvcjogZnVuY3Rpb24gZGVjbGFyZWQgJ2FhcGNzJyBoZXJlIHdhcyBwcmV2aW91c2x5IGRlY2xhcmVkIHdpdGhvdXQgY2FsbGluZyBjb252ZW50aW9uCisgICAgICAgICAgIGludCAgc2luKGRvdWJsZSBkKSBfX2F0dHJpYnV0ZV9fKChwY3MoImFhcGNzIikpKTsKKyAgICAgICAgICAgICAgICBeCisgICAgICAgICAgIGEuaTo1NjQ6Njogbm90ZTogcHJldmlvdXMgZGVjbGFyYXRpb24gaXMgaGVyZQorICovCisjaWYgZGVmaW5lZChfX0FORFJPSURfXykgJiYgIV9fTFA2NF9fICYmIGRlZmluZWQoIF9fYXJtX18pCisjZGVmaW5lIF9fTkRLX0ZQQUJJX18gX19hdHRyaWJ1dGVfXygocGNzKCJhYXBjcyIpKSkKKyNlbHNlCisjZGVmaW5lIF9fTkRLX0ZQQUJJX18KKyNlbmRpZgorCisjaWYgKCFkZWZpbmVkKF9OREtfTUFUSF9OT19TT0ZURlApIHx8IF9OREtfTUFUSF9OT19TT0ZURlAgIT0gMSkgJiYgIWRlZmluZWQoX19jbGFuZ19fKQorI2RlZmluZSBfX05ES19GUEFCSV9NQVRIX18gX19OREtfRlBBQklfXworI2Vsc2UKKyNkZWZpbmUgX19OREtfRlBBQklfTUFUSF9fICAvKiBub3RoaW5nICovCisjZW5kaWYKKwogI2VuZGlmIC8qICFfU1lTX0NERUZTX0hfICovCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9pbmNsdWRlL3N5cy93YWl0LmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9pbmNsdWRlL3N5cy93YWl0LmgKaW5kZXggYjMwYjdlYy4uNTFlMDcwYiAxMDA2NDQKLS0tIGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvaW5jbHVkZS9zeXMvd2FpdC5oCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2luY2x1ZGUvc3lzL3dhaXQuaApAQCAtMzMsNiArMzMsOSBAQAogI2luY2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgogI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KICNpbmNsdWRlIDxzaWduYWwuaD4KKyNpbmNsdWRlIDxhc20vdW5pc3RkLmg+CisjaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KKwogCiBfX0JFR0lOX0RFQ0xTCiAKQEAgLTQ4LDcgKzUxLDEwIEBACiBleHRlcm4gcGlkX3QgIHdhaXQoaW50ICopOwogZXh0ZXJuIHBpZF90ICB3YWl0cGlkKHBpZF90LCBpbnQgKiwgaW50KTsKIGV4dGVybiBwaWRfdCAgd2FpdDMoaW50ICosIGludCwgc3RydWN0IHJ1c2FnZSAqKTsKLWV4dGVybiBwaWRfdCAgd2FpdDQocGlkX3QsIGludCAqLCBpbnQsIHN0cnVjdCBydXNhZ2UgKik7CitzdGF0aWMgX19pbmxpbmVfXyBwaWRfdCB3YWl0NChwaWRfdCBwaWQsIGludCAqc3RhdHVzLCBpbnQgb3B0aW9ucywgc3RydWN0IHJ1c2FnZSAqcnVzYWdlKQoreworICByZXR1cm4gKHBpZF90KXN5c2NhbGwoX19OUl93YWl0NCwgcGlkLCBzdGF0dXMsIG9wdGlvbnMsIHJ1c2FnZSk7Cit9CiAKIC8qIFBvc2l4IHN0YXRlcyB0aGF0IGlkdHlwZV90IHNob3VsZCBiZSBhbiBlbnVtZXJhdGlvbiB0eXBlLCBidXQKICAqIHRoZSBrZXJuZWwgaGVhZGVycyBkZWZpbmUgUF9BTEwsIFBfUElEIGFuZCBQX1BHSUQgYXMgY29uc3RhbnQgbWFjcm9zCmRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9pbmNsdWRlL3djaGFyLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9pbmNsdWRlL3djaGFyLmgKaW5kZXggODA2ZTNkMS4uYjEwZjQ3MCAxMDA2NDQKLS0tIGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvaW5jbHVkZS93Y2hhci5oCisrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2luY2x1ZGUvd2NoYXIuaApAQCAtMTIxLDcgKzEyMSw3IEBACiBleHRlcm4gc2l6ZV90ICAgICAgICAgICAgd2NzcnRvbWJzKGNoYXIgKiwgY29uc3Qgd2NoYXJfdCAqKiwgc2l6ZV90LCBtYnN0YXRlX3QgKik7CiBleHRlcm4gc2l6ZV90ICAgICAgICAgICAgd2Nzc3BuKGNvbnN0IHdjaGFyX3QgKiwgY29uc3Qgd2NoYXJfdCAqKTsKIGV4dGVybiB3Y2hhcl90ICAgICAgICAgICp3Y3NzdHIoY29uc3Qgd2NoYXJfdCAqLCBjb25zdCB3Y2hhcl90ICopOwotZXh0ZXJuIGRvdWJsZSAgICAgICAgICAgIHdjc3RvZChjb25zdCB3Y2hhcl90ICosIHdjaGFyX3QgKiopOworZXh0ZXJuIGRvdWJsZSAgICAgICAgICAgIHdjc3RvZChjb25zdCB3Y2hhcl90ICosIHdjaGFyX3QgKiopIF9fTkRLX0ZQQUJJX187CiBleHRlcm4gd2NoYXJfdCAgICAgICAgICAqd2NzdG9rKHdjaGFyX3QgKiwgY29uc3Qgd2NoYXJfdCAqLCB3Y2hhcl90ICoqKTsKIGV4dGVybiBsb25nIGludCAgICAgICAgICB3Y3N0b2woY29uc3Qgd2NoYXJfdCAqLCB3Y2hhcl90ICoqLCBpbnQpOwogZXh0ZXJuIHNpemVfdCAgICAgICAgICAgIHdjc3RvbWJzKGNoYXIgKiwgY29uc3Qgd2NoYXJfdCAqLCBzaXplX3QpOwpkaWZmIC0tZ2l0IGEvbmRrL3NhbXBsZXMvaGVsbG8tam5pL2puaS9BcHBsaWNhdGlvbi5tayBiL25kay9zYW1wbGVzL2hlbGxvLWpuaS9qbmkvQXBwbGljYXRpb24ubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTYxOWQ5MgotLS0gL2Rldi9udWxsCisrKyBiL25kay9zYW1wbGVzL2hlbGxvLWpuaS9qbmkvQXBwbGljYXRpb24ubWsKQEAgLTAsMCArMSBAQAorQVBQX0FCSSA6PSBhbGwKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9uZGsvc2FtcGxlcy9oZWxsby1qbmkvam5pL2hlbGxvLWpuaS5jIGIvbmRrL3NhbXBsZXMvaGVsbG8tam5pL2puaS9oZWxsby1qbmkuYwppbmRleCBiZTFlNmE3Li4xOWZjYzZhIDEwMDY0NAotLS0gYS9uZGsvc2FtcGxlcy9oZWxsby1qbmkvam5pL2hlbGxvLWpuaS5jCisrKyBiL25kay9zYW1wbGVzL2hlbGxvLWpuaS9qbmkvaGVsbG8tam5pLmMKQEAgLTI3LDUgKzI3LDIzIEBACiBKYXZhX2NvbV9leGFtcGxlX2hlbGxvam5pX0hlbGxvSm5pX3N0cmluZ0Zyb21KTkkoIEpOSUVudiogZW52LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqb2JqZWN0IHRoaXogKQogewotICAgIHJldHVybiAoKmVudiktPk5ld1N0cmluZ1VURihlbnYsICJIZWxsbyBmcm9tIEpOSSAhIik7CisjaWYgZGVmaW5lZChfX2FybV9fKQorICAjaWYgZGVmaW5lZChfX0FSTV9BUkNIXzdBX18pCisgICAgI2lmIGRlZmluZWQoX19BUk1fTkVPTl9fKQorICAgICAgI2RlZmluZSBBQkkgImFybWVhYmktdjdhL05FT04iCisgICAgI2Vsc2UKKyAgICAgICNkZWZpbmUgQUJJICJhcm1lYWJpLXY3YSIKKyAgICAjZW5kaWYKKyAgI2Vsc2UKKyAgICNkZWZpbmUgQUJJICJhcm1lYWJpIgorICAjZW5kaWYKKyNlbGlmIGRlZmluZWQoX19pMzg2X18pCisgICAjZGVmaW5lIEFCSSAieDg2IgorI2VsaWYgZGVmaW5lZChfX21pcHNfXykKKyAgICNkZWZpbmUgQUJJICJtaXBzIgorI2Vsc2UKKyAgICNkZWZpbmUgQUJJICJ1bmtub3duIgorI2VuZGlmCisKKyAgICByZXR1cm4gKCplbnYpLT5OZXdTdHJpbmdVVEYoZW52LCAiSGVsbG8gZnJvbSBKTkkgISAgQ29tcGlsZWQgd2l0aCBBQkkgIiBBQkkgIi4iKTsKIH0KZGlmZiAtLWdpdCBhL25kay9zb3VyY2VzL2FuZHJvaWQvbGlicG9ydGFibGUvYXJjaC1taXBzL3BvbGwuYyBiL25kay9zb3VyY2VzL2FuZHJvaWQvbGlicG9ydGFibGUvYXJjaC1taXBzL3BvbGwuYwppbmRleCAzZjk3MTc2Li41NDA1OWRkIDEwMDY0NAotLS0gYS9uZGsvc291cmNlcy9hbmRyb2lkL2xpYnBvcnRhYmxlL2FyY2gtbWlwcy9wb2xsLmMKKysrIGIvbmRrL3NvdXJjZXMvYW5kcm9pZC9saWJwb3J0YWJsZS9hcmNoLW1pcHMvcG9sbC5jCkBAIC0xMDQsOSArMTA0LDkgQEAKICAgICByZXR1cm4gbWlwc19ldmVudHM7CiB9CiAKLWV4dGVybiBpbnQgcG9sbChzdHJ1Y3QgcG9sbGZkICosIG5mZHNfdCwgbG9uZyk7CitleHRlcm4gaW50IHBvbGwoc3RydWN0IHBvbGxmZCAqLCBuZmRzX3QsIGludCk7CiAKLWludCBXUkFQKHBvbGwpKHN0cnVjdCBwb2xsZmQgKmZkcywgbmZkc190IG5mZHMsIGxvbmcgdGltZW91dCkKK2ludCBXUkFQKHBvbGwpKHN0cnVjdCBwb2xsZmQgKmZkcywgbmZkc190IG5mZHMsIGludCB0aW1lb3V0KQogewogICBuZmRzX3QgaTsKICAgaW50IHJldDsKZGlmZiAtLWdpdCBhL25kay9zb3VyY2VzL2FuZHJvaWQvbGlicG9ydGFibGUvYXJjaC1taXBzL3B0aHJlYWQuYyBiL25kay9zb3VyY2VzL2FuZHJvaWQvbGlicG9ydGFibGUvYXJjaC1taXBzL3B0aHJlYWQuYwppbmRleCA1Yjc1NjIzLi5mNmMzMDM3IDEwMDY0NAotLS0gYS9uZGsvc291cmNlcy9hbmRyb2lkL2xpYnBvcnRhYmxlL2FyY2gtbWlwcy9wdGhyZWFkLmMKKysrIGIvbmRrL3NvdXJjZXMvYW5kcm9pZC9saWJwb3J0YWJsZS9hcmNoLW1pcHMvcHRocmVhZC5jCkBAIC0xMTQsNyArMTE0LDcgQEAKIFBUSFJFQURfV1JBUFBFUihwdGhyZWFkX2F0dHJfc2V0c2NvcGUsIChwdGhyZWFkX2F0dHJfdCAqYXR0ciwgaW50IHNjb3BlKSwgKGF0dHIsIHNjb3BlKSwKICAgICAgICAgICAgICAgICAiKGF0dHI6JXAsIHNjb3BlOiVkKSIpOwogCi1QVEhSRUFEX1dSQVBQRVIocHRocmVhZF9hdHRyX2dldHNjb3BlLCAocHRocmVhZF9hdHRyX3QgY29uc3QgKmF0dHIpLCAoYXR0ciksICIoYXR0cjolcCkiKTsKK1BUSFJFQURfV1JBUFBFUihwdGhyZWFkX2F0dHJfZ2V0c2NvcGUsIChwdGhyZWFkX2F0dHJfdCBjb25zdCAqYXR0ciwgaW50KiBzY29wZSksIChhdHRyLCBzY29wZSksICIoYXR0cjolcCwgc2NvcGU6JXApIik7CiAKIFBUSFJFQURfV1JBUFBFUihwdGhyZWFkX2dldGF0dHJfbnAsIChwdGhyZWFkX3QgdGhpZCwgcHRocmVhZF9hdHRyX3QgKmF0dHIpLCAodGhpZCwgYXR0ciksCiAgICAgICAgICAgICAgICAgIih0aGlkOiVseCwgYXR0cjolcCkiKTsKZGlmZiAtLWdpdCBhL25kay9zb3VyY2VzL2FuZHJvaWQvbGlicG9ydGFibGUvYXJjaC1taXBzL3NpZ25hbC5jIGIvbmRrL3NvdXJjZXMvYW5kcm9pZC9saWJwb3J0YWJsZS9hcmNoLW1pcHMvc2lnbmFsLmMKaW5kZXggYTA2ZWZmNy4uMGMzOGQxNCAxMDA2NDQKLS0tIGEvbmRrL3NvdXJjZXMvYW5kcm9pZC9saWJwb3J0YWJsZS9hcmNoLW1pcHMvc2lnbmFsLmMKKysrIGIvbmRrL3NvdXJjZXMvYW5kcm9pZC9saWJwb3J0YWJsZS9hcmNoLW1pcHMvc2lnbmFsLmMKQEAgLTEwMjcsNyArMTAyNyw3IEBACiAgICAgICAgIEFMT0dWKCIlczogU0FfVEhJUlRZVFdPX1BPUlRBQkxFIGlzbid0IFNVUFBPUlRFRC4iLCBfX2Z1bmNfXyk7CiAgICAgfQogICAgIGlmIChwb3J0YWJsZV9mbGFncyAmIFNBX1JFU1RPUkVSX1BPUlRBQkxFKSB7Ci0gICAgICAgIG1pcHNfZmxhZ3MgfD0gU0FfUkVTVE9SRVI7CisgICAgICAgIEFMT0dWKCIlczogU0FfUkVTVE9SRVIgaXNuJ3QgU1VQUE9SVEVELiIsIF9fZnVuY19fKTsKICAgICB9CiAgICAgaWYgKHBvcnRhYmxlX2ZsYWdzICYgU0FfT05TVEFDS19QT1JUQUJMRSkgewogICAgICAgICBtaXBzX2ZsYWdzIHw9IFNBX09OU1RBQ0s7CkBAIC0xMDU5LDcgKzEwNTksNiBAQAogI2lmZGVmIFNBX1RISVJUWVRXTwogICAgIGlmIChtaXBzX2ZsYWdzICYgU0FfVEhJUlRZVFdPKSAgICAgIHBvcnRhYmxlX2ZsYWdzIHw9IFNBX1RISVJUWVRXT19QT1JUQUJMRTsKICNlbmRpZgotICAgIGlmIChtaXBzX2ZsYWdzICYgU0FfUkVTVE9SRVIpICAgICAgIHBvcnRhYmxlX2ZsYWdzIHw9IFNBX1JFU1RPUkVSX1BPUlRBQkxFOwogICAgIGlmIChtaXBzX2ZsYWdzICYgU0FfT05TVEFDSykgICAgICAgIHBvcnRhYmxlX2ZsYWdzIHw9IFNBX09OU1RBQ0tfUE9SVEFCTEU7CiAgICAgaWYgKG1pcHNfZmxhZ3MgJiBTQV9SRVNUQVJUKSAgICAgICAgcG9ydGFibGVfZmxhZ3MgfD0gU0FfUkVTVEFSVF9QT1JUQUJMRTsKICAgICBpZiAobWlwc19mbGFncyAmIFNBX05PREVGRVIpICAgICAgICBwb3J0YWJsZV9mbGFncyB8PSBTQV9OT0RFRkVSX1BPUlRBQkxFOwpkaWZmIC0tZ2l0IGEvbmRrL3NvdXJjZXMvYW5kcm9pZC9saWJwb3J0YWJsZS9hcmNoLW1pcHMvc3RhdGZzLmMgYi9uZGsvc291cmNlcy9hbmRyb2lkL2xpYnBvcnRhYmxlL2FyY2gtbWlwcy9zdGF0ZnMuYwppbmRleCA0NWRmZDA5Li4wMTNjZGU5IDEwMDY0NAotLS0gYS9uZGsvc291cmNlcy9hbmRyb2lkL2xpYnBvcnRhYmxlL2FyY2gtbWlwcy9zdGF0ZnMuYworKysgYi9uZGsvc291cmNlcy9hbmRyb2lkL2xpYnBvcnRhYmxlL2FyY2gtbWlwcy9zdGF0ZnMuYwpAQCAtMzMsNiArMzMsNyBAQAogICAgIHBfc3RhdGZzLT5mX2ZzaWQgPSBuX3N0YXRmcy0+Zl9mc2lkOwogICAgIHBfc3RhdGZzLT5mX25hbWVsZW4gPSBuX3N0YXRmcy0+Zl9uYW1lbGVuOwogICAgIHBfc3RhdGZzLT5mX2Zyc2l6ZSA9IG5fc3RhdGZzLT5mX2Zyc2l6ZTsKKyAgICBwX3N0YXRmcy0+Zl9mbGFncyA9IG5fc3RhdGZzLT5mX2ZsYWdzOwogfQogCiBpbnQgV1JBUChzdGF0ZnMpKGNvbnN0IGNoYXIqICBwYXRoLCBzdHJ1Y3Qgc3RhdGZzX3BvcnRhYmxlKiAgc3RhdCkKZGlmZiAtLWdpdCBhL25kay9zb3VyY2VzL2FuZHJvaWQvbGlicG9ydGFibGUvY29tbW9uL2luY2x1ZGUvYXNtLWdlbmVyaWMvcG9ydGFiaWxpdHkuaCBiL25kay9zb3VyY2VzL2FuZHJvaWQvbGlicG9ydGFibGUvY29tbW9uL2luY2x1ZGUvYXNtLWdlbmVyaWMvcG9ydGFiaWxpdHkuaAppbmRleCA4ZDkxODU0Li5hNTc1Yjk1IDEwMDY0NAotLS0gYS9uZGsvc291cmNlcy9hbmRyb2lkL2xpYnBvcnRhYmxlL2NvbW1vbi9pbmNsdWRlL2FzbS1nZW5lcmljL3BvcnRhYmlsaXR5LmgKKysrIGIvbmRrL3NvdXJjZXMvYW5kcm9pZC9saWJwb3J0YWJsZS9jb21tb24vaW5jbHVkZS9hc20tZ2VuZXJpYy9wb3J0YWJpbGl0eS5oCkBAIC0yMSw4ICsyMSw4IEBACiAjZGVmaW5lIFdSQVAoZikgICAgIGYgIyMgX3BvcnRhYmxlCiAjZGVmaW5lIFJFQUwoZikgICAgIGYKICNlbHNlCi0vKiBPbiBob3N0IGFwcCBsaW5rIHdpdGggbGlicHBvcnRhYmxlLmEgd2l0aCAtV2wsLS13cmFwPXN5bWJvbCwgd2hpY2ggcmVzb2x2ZSBzeW1ib2wgc3ltYm9sIHRvIF9fd3JhcF9zeW1ib2wsCi0gKiBhbmQgX19yZWFsX3N5bWJvbCByZWZlciB0byB0aGUgb3JpZ2luYWwgc3ltYm9sCisvKiBPbiBob3N0IGFwcCBsaW5rIHdpdGggbGlicHBvcnRhYmxlLmEgd2l0aCAtV2wsLS13cmFwPXN5bWJvbCwgd2hpY2ggcmVzb2x2ZXMgdW5kZWZpbmVkIHN5bWJvbCB0byBfX3dyYXBfc3ltYm9sLAorICogYW5kIHVuZGVmaW5lZCBfX3JlYWxfc3ltYm9sIHRvIHRoZSBvcmlnaW5hbCBzeW1ib2wKICAqLwogI2RlZmluZSBXUkFQKGYpICAgICBfX3dyYXBfICMjIGYKICNkZWZpbmUgUkVBTChmKSAgICAgX19yZWFsXyAjIyBmCmRpZmYgLS1naXQgYS9uZGsvc291cmNlcy9hbmRyb2lkL2xpYnBvcnRhYmxlL2NvbW1vbi9pbmNsdWRlL3N0YXRmc19wb3J0YWJsZS5oIGIvbmRrL3NvdXJjZXMvYW5kcm9pZC9saWJwb3J0YWJsZS9jb21tb24vaW5jbHVkZS9zdGF0ZnNfcG9ydGFibGUuaAppbmRleCAyMzQ1MWVhLi42Nzc0Njk2IDEwMDY0NAotLS0gYS9uZGsvc291cmNlcy9hbmRyb2lkL2xpYnBvcnRhYmxlL2NvbW1vbi9pbmNsdWRlL3N0YXRmc19wb3J0YWJsZS5oCisrKyBiL25kay9zb3VyY2VzL2FuZHJvaWQvbGlicG9ydGFibGUvY29tbW9uL2luY2x1ZGUvc3RhdGZzX3BvcnRhYmxlLmgKQEAgLTI4LDEwICsyOCwxMSBAQAogICAgIHVpbnQ2NF90ICAgICAgICBmX2JhdmFpbDsKICAgICB1aW50NjRfdCAgICAgICAgZl9maWxlczsKICAgICB1aW50NjRfdCAgICAgICAgZl9mZnJlZTsKLSAgICBfX2tlcm5lbF9mc2lkX3QgZl9mc2lkOworICAgIF9fZnNpZF90ICAgICAgICBmX2ZzaWQ7CiAgICAgdWludDMyX3QgICAgICAgIGZfbmFtZWxlbjsKICAgICB1aW50MzJfdCAgICAgICAgZl9mcnNpemU7Ci0gICAgdWludDMyX3QgICAgICAgIGZfc3BhcmVbNV07CisgICAgdWludDMyX3QgICAgICAgIGZfZmxhZ3M7CisgICAgdWludDMyX3QgICAgICAgIGZfc3BhcmVbNF07CiB9OwogCiAvKgpAQCAtNDYsOSArNDcsMTAgQEAKICAgICB1aW50NjRfdCAgICAgICAgZl9maWxlczsKICAgICB1aW50NjRfdCAgICAgICAgZl9mZnJlZTsKICAgICB1aW50NjRfdCAgICAgICAgZl9iYXZhaWw7Ci0gICAgX19rZXJuZWxfZnNpZF90IGZfZnNpZDsKKyAgICBfX2ZzaWRfdCAgICAgICAgZl9mc2lkOwogICAgIHVpbnQzMl90ICAgICAgICBmX25hbWVsZW47Ci0gICAgdWludDMyX3QgICAgICAgIGZfc3BhcmVbNl07CisgICAgdWludDMyX3QgICAgICAgIGZfZmxhZ3M7CisgICAgdWludDMyX3QgICAgICAgIGZfc3BhcmVbNV07CiB9OwogKi8KICNlbmRpZiAvKiBfU1RBVEZTX1BPUlRBQkxFX0hfICovCmRpZmYgLS1naXQgYS9uZGsvc291cmNlcy9hbmRyb2lkL25ka19oZWxwZXIvQW5kcm9pZC5tayBiL25kay9zb3VyY2VzL2FuZHJvaWQvbmRrX2hlbHBlci9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4ZGMxYmUKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvc291cmNlcy9hbmRyb2lkL25ka19oZWxwZXIvQW5kcm9pZC5tawpAQCAtMCwwICsxLDI2IEBACitMT0NBTF9QQVRIOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCisKK0xPQ0FMX01PRFVMRTo9IG5ka19oZWxwZXIKK0xPQ0FMX1NSQ19GSUxFUzo9IEpOSUhlbHBlci5jcHAgaW50ZXJwb2xhdG9yLmNwcCB0YXBDYW1lcmEuY3BwIGdlc3R1cmVEZXRlY3Rvci5jcHAgcGVyZk1vbml0b3IuY3BwIHZlY21hdGguY3BwIEdMQ29udGV4dC5jcHAgc2hhZGVyLmNwcCBnbDNzdHViLmMKKworTE9DQUxfRVhQT1JUX0NfSU5DTFVERVMgOj0gJChMT0NBTF9QQVRIKQorTE9DQUxfRVhQT1JUX0xETElCUyAgICA6PSAtbGxvZyAtbGFuZHJvaWQgLWxFR0wgLWxHTEVTdjIKKworTE9DQUxfU1RBVElDX0xJQlJBUklFUyA6PSBjcHVmZWF0dXJlcyBhbmRyb2lkX25hdGl2ZV9hcHBfZ2x1ZQorCisKK2lmbmVxICgkKGZpbHRlciAlYXJtZWFiaS12N2EsJChUQVJHRVRfQVJDSF9BQkkpKSwpCitMT0NBTF9DRkxBR1MgKz0gLW1oYXJkLWZsb2F0IC1EX05ES19NQVRIX05PX1NPRlRGUD0xCitMT0NBTF9FWFBPUlRfQ0ZMQUdTICs9IC1taGFyZC1mbG9hdCAtRF9OREtfTUFUSF9OT19TT0ZURlA9MQorTE9DQUxfRVhQT1JUX0xETElCUyArPSAtbG1faGFyZAoraWZlcSAoLCQoZmlsdGVyIC1mdXNlLWxkPW1jbGQsJChBUFBfTERGTEFHUykgJChMT0NBTF9MREZMQUdTKSkpCitMT0NBTF9FWFBPUlRfTERGTEFHUyArPSAtV2wsLS1uby13YXJuLW1pc21hdGNoCitlbmRpZgorZW5kaWYKKworaW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19MSUJSQVJZKQorCisjJChjYWxsIGltcG9ydC1tb2R1bGUsYW5kcm9pZC9uYXRpdmVfYXBwX2dsdWUpCisjJChjYWxsIGltcG9ydC1tb2R1bGUsYW5kcm9pZC9jcHVmZWF0dXJlcykKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9uZGsvc291cmNlcy9hbmRyb2lkL25ka19oZWxwZXIvR0xDb250ZXh0LmNwcCBiL25kay9zb3VyY2VzL2FuZHJvaWQvbmRrX2hlbHBlci9HTENvbnRleHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkZmRkNmMKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvc291cmNlcy9hbmRyb2lkL25ka19oZWxwZXIvR0xDb250ZXh0LmNwcApAQCAtMCwwICsxLDI5NCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gR0xDb250ZXh0LmNwcAorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gaW5jbHVkZXMKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlICJHTENvbnRleHQuaCIKKyNpbmNsdWRlICJnbDNzdHViLmgiCisKK25hbWVzcGFjZSBuZGtfaGVscGVyCit7CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIGVHTENvbnRleHQKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gQ3RvcgorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorR0xDb250ZXh0OjpHTENvbnRleHQoKSA6CisgICAgICAgICAgICAgICAgZGlzcGxheV8oIEVHTF9OT19ESVNQTEFZICksCisgICAgICAgICAgICAgICAgc3VyZmFjZV8oIEVHTF9OT19TVVJGQUNFICksCisgICAgICAgICAgICAgICAgY29udGV4dF8oIEVHTF9OT19DT05URVhUICksCisgICAgICAgICAgICAgICAgc2NyZWVuX3dpZHRoXyggMCApLAorICAgICAgICAgICAgICAgIHNjcmVlbl9oZWlnaHRfKCAwICksCisgICAgICAgICAgICAgICAgZXMzX3N1cHBvcnRlZF8oIGZhbHNlICksCisgICAgICAgICAgICAgICAgZWdsX2NvbnRleHRfaW5pdGlhbGl6ZWRfKCBmYWxzZSApLAorICAgICAgICAgICAgICAgIGdsZXNfaW5pdGlhbGl6ZWRfKCBmYWxzZSApCit7Cit9CisKK3ZvaWQgR0xDb250ZXh0OjpJbml0R0xFUygpCit7CisgICAgaWYoIGdsZXNfaW5pdGlhbGl6ZWRfICkKKyAgICAgICAgcmV0dXJuOworICAgIC8vCisgICAgLy9Jbml0aWFsaXplIE9wZW5HTCBFUyAzIGlmIGF2YWlsYWJsZQorICAgIC8vCisgICAgY29uc3QgY2hhciogdmVyc2lvblN0ciA9IChjb25zdCBjaGFyKikgZ2xHZXRTdHJpbmcoIEdMX1ZFUlNJT04gKTsKKyAgICBpZiggc3Ryc3RyKCB2ZXJzaW9uU3RyLCAiT3BlbkdMIEVTIDMuIiApICYmIGdsM3N0dWJJbml0KCkgKQorICAgIHsKKyAgICAgICAgZXMzX3N1cHBvcnRlZF8gPSB0cnVlOworICAgICAgICBnbF92ZXJzaW9uXyA9IDMuMGY7CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIGdsX3ZlcnNpb25fID0gMi4wZjsKKyAgICB9CisKKyAgICBnbGVzX2luaXRpYWxpemVkXyA9IHRydWU7Cit9CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIER0b3IKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0dMQ29udGV4dDo6fkdMQ29udGV4dCgpCit7CisgICAgVGVybWluYXRlKCk7Cit9CisKK2Jvb2wgR0xDb250ZXh0OjpJbml0KCBBTmF0aXZlV2luZG93KiB3aW5kb3cgKQoreworICAgIGlmKCBlZ2xfY29udGV4dF9pbml0aWFsaXplZF8gKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIC8vCisgICAgLy9Jbml0aWFsaXplIEVHTAorICAgIC8vCisgICAgd2luZG93XyA9IHdpbmRvdzsKKyAgICBJbml0RUdMU3VyZmFjZSgpOworICAgIEluaXRFR0xDb250ZXh0KCk7CisgICAgSW5pdEdMRVMoKTsKKworICAgIGVnbF9jb250ZXh0X2luaXRpYWxpemVkXyA9IHRydWU7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBHTENvbnRleHQ6OkluaXRFR0xTdXJmYWNlKCkKK3sKKyAgICBkaXNwbGF5XyA9IGVnbEdldERpc3BsYXkoIEVHTF9ERUZBVUxUX0RJU1BMQVkgKTsKKyAgICBlZ2xJbml0aWFsaXplKCBkaXNwbGF5XywgMCwgMCApOworCisgICAgLyoKKyAgICAgKiBIZXJlIHNwZWNpZnkgdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIGRlc2lyZWQgY29uZmlndXJhdGlvbi4KKyAgICAgKiBCZWxvdywgd2Ugc2VsZWN0IGFuIEVHTENvbmZpZyB3aXRoIGF0IGxlYXN0IDggYml0cyBwZXIgY29sb3IKKyAgICAgKiBjb21wb25lbnQgY29tcGF0aWJsZSB3aXRoIG9uLXNjcmVlbiB3aW5kb3dzCisgICAgICovCisgICAgY29uc3QgRUdMaW50IGF0dHJpYnNbXSA9IHsgRUdMX1JFTkRFUkFCTEVfVFlQRSwKKyAgICAgICAgICAgIEVHTF9PUEVOR0xfRVMyX0JJVCwgLy9SZXF1ZXN0IG9wZW5nbCBFUzIuMAorICAgICAgICAgICAgRUdMX1NVUkZBQ0VfVFlQRSwgRUdMX1dJTkRPV19CSVQsIEVHTF9CTFVFX1NJWkUsIDgsIEVHTF9HUkVFTl9TSVpFLCA4LAorICAgICAgICAgICAgRUdMX1JFRF9TSVpFLCA4LCBFR0xfREVQVEhfU0laRSwgMjQsIEVHTF9OT05FIH07CisgICAgY29sb3Jfc2l6ZV8gPSA4OworICAgIGRlcHRoX3NpemVfID0gMjQ7CisKKyAgICBFR0xpbnQgbnVtX2NvbmZpZ3M7CisgICAgZWdsQ2hvb3NlQ29uZmlnKCBkaXNwbGF5XywgYXR0cmlicywgJmNvbmZpZ18sIDEsICZudW1fY29uZmlncyApOworCisgICAgaWYoICFudW1fY29uZmlncyApCisgICAgeworICAgICAgICAvL0ZhbGwgYmFjayB0byAxNmJpdCBkZXB0aCBidWZmZXIKKyAgICAgICAgY29uc3QgRUdMaW50IGF0dHJpYnNbXSA9IHsgRUdMX1JFTkRFUkFCTEVfVFlQRSwKKyAgICAgICAgICAgICAgICBFR0xfT1BFTkdMX0VTMl9CSVQsIC8vUmVxdWVzdCBvcGVuZ2wgRVMyLjAKKyAgICAgICAgICAgICAgICBFR0xfU1VSRkFDRV9UWVBFLCBFR0xfV0lORE9XX0JJVCwgRUdMX0JMVUVfU0laRSwgOCwgRUdMX0dSRUVOX1NJWkUsIDgsCisgICAgICAgICAgICAgICAgRUdMX1JFRF9TSVpFLCA4LCBFR0xfREVQVEhfU0laRSwgMTYsIEVHTF9OT05FIH07CisgICAgICAgIGVnbENob29zZUNvbmZpZyggZGlzcGxheV8sIGF0dHJpYnMsICZjb25maWdfLCAxLCAmbnVtX2NvbmZpZ3MgKTsKKyAgICAgICAgZGVwdGhfc2l6ZV8gPSAxNjsKKyAgICB9CisKKyAgICBpZiggIW51bV9jb25maWdzICkKKyAgICB7CisgICAgICAgIExPR1coICJVbmFibGUgdG8gcmV0cmlldmUgRUdMIGNvbmZpZyIgKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHN1cmZhY2VfID0gZWdsQ3JlYXRlV2luZG93U3VyZmFjZSggZGlzcGxheV8sIGNvbmZpZ18sIHdpbmRvd18sIE5VTEwgKTsKKyAgICBlZ2xRdWVyeVN1cmZhY2UoIGRpc3BsYXlfLCBzdXJmYWNlXywgRUdMX1dJRFRILCAmc2NyZWVuX3dpZHRoXyApOworICAgIGVnbFF1ZXJ5U3VyZmFjZSggZGlzcGxheV8sIHN1cmZhY2VfLCBFR0xfSEVJR0hULCAmc2NyZWVuX2hlaWdodF8gKTsKKworICAgIC8qIEVHTF9OQVRJVkVfVklTVUFMX0lEIGlzIGFuIGF0dHJpYnV0ZSBvZiB0aGUgRUdMQ29uZmlnIHRoYXQgaXMKKyAgICAgKiBndWFyYW50ZWVkIHRvIGJlIGFjY2VwdGVkIGJ5IEFOYXRpdmVXaW5kb3dfc2V0QnVmZmVyc0dlb21ldHJ5KCkuCisgICAgICogQXMgc29vbiBhcyB3ZSBwaWNrZWQgYSBFR0xDb25maWcsIHdlIGNhbiBzYWZlbHkgcmVjb25maWd1cmUgdGhlCisgICAgICogQU5hdGl2ZVdpbmRvdyBidWZmZXJzIHRvIG1hdGNoLCB1c2luZyBFR0xfTkFUSVZFX1ZJU1VBTF9JRC4gKi8KKyAgICBFR0xpbnQgZm9ybWF0OworICAgIGVnbEdldENvbmZpZ0F0dHJpYiggZGlzcGxheV8sIGNvbmZpZ18sIEVHTF9OQVRJVkVfVklTVUFMX0lELCAmZm9ybWF0ICk7CisgICAgQU5hdGl2ZVdpbmRvd19zZXRCdWZmZXJzR2VvbWV0cnkoIHdpbmRvd18sIDAsIDAsIGZvcm1hdCApOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgR0xDb250ZXh0OjpJbml0RUdMQ29udGV4dCgpCit7CisgICAgY29uc3QgRUdMaW50IGNvbnRleHRfYXR0cmlic1tdID0geyBFR0xfQ09OVEVYVF9DTElFTlRfVkVSU0lPTiwgMiwgLy9SZXF1ZXN0IG9wZW5nbCBFUzIuMAorICAgICAgICAgICAgRUdMX05PTkUgfTsKKyAgICBjb250ZXh0XyA9IGVnbENyZWF0ZUNvbnRleHQoIGRpc3BsYXlfLCBjb25maWdfLCBOVUxMLCBjb250ZXh0X2F0dHJpYnMgKTsKKworICAgIGlmKCBlZ2xNYWtlQ3VycmVudCggZGlzcGxheV8sIHN1cmZhY2VfLCBzdXJmYWNlXywgY29udGV4dF8gKSA9PSBFR0xfRkFMU0UgKQorICAgIHsKKyAgICAgICAgTE9HVyggIlVuYWJsZSB0byBlZ2xNYWtlQ3VycmVudCIgKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGNvbnRleHRfdmFsaWRfID0gdHJ1ZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworRUdMaW50IEdMQ29udGV4dDo6U3dhcCgpCit7CisgICAgYm9vbCBiID0gZWdsU3dhcEJ1ZmZlcnMoIGRpc3BsYXlfLCBzdXJmYWNlXyApOworICAgIGlmKCAhYiApCisgICAgeworICAgICAgICBFR0xpbnQgZXJyID0gZWdsR2V0RXJyb3IoKTsKKyAgICAgICAgaWYoIGVyciA9PSBFR0xfQkFEX1NVUkZBQ0UgKQorICAgICAgICB7CisgICAgICAgICAgICAvL1JlY3JlYXRlIHN1cmZhY2UKKyAgICAgICAgICAgIEluaXRFR0xTdXJmYWNlKCk7CisgICAgICAgICAgICByZXR1cm4gRUdMX1NVQ0NFU1M7IC8vU3RpbGwgY29uc2lkZXIgZ2xDb250ZXh0IGlzIHZhbGlkCisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiggZXJyID09IEVHTF9DT05URVhUX0xPU1QgfHwgZXJyID09IEVHTF9CQURfQ09OVEVYVCApCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vQ29udGV4dCBoYXMgYmVlbiBsb3N0ISEKKyAgICAgICAgICAgIGNvbnRleHRfdmFsaWRfID0gZmFsc2U7CisgICAgICAgICAgICBUZXJtaW5hdGUoKTsKKyAgICAgICAgICAgIEluaXRFR0xDb250ZXh0KCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGVycjsKKyAgICB9CisgICAgcmV0dXJuIEVHTF9TVUNDRVNTOworfQorCit2b2lkIEdMQ29udGV4dDo6VGVybWluYXRlKCkKK3sKKyAgICBpZiggZGlzcGxheV8gIT0gRUdMX05PX0RJU1BMQVkgKQorICAgIHsKKyAgICAgICAgZWdsTWFrZUN1cnJlbnQoIGRpc3BsYXlfLCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19DT05URVhUICk7CisgICAgICAgIGlmKCBjb250ZXh0XyAhPSBFR0xfTk9fQ09OVEVYVCApCisgICAgICAgIHsKKyAgICAgICAgICAgIGVnbERlc3Ryb3lDb250ZXh0KCBkaXNwbGF5XywgY29udGV4dF8gKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmKCBzdXJmYWNlXyAhPSBFR0xfTk9fU1VSRkFDRSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGVnbERlc3Ryb3lTdXJmYWNlKCBkaXNwbGF5Xywgc3VyZmFjZV8gKTsKKyAgICAgICAgfQorICAgICAgICBlZ2xUZXJtaW5hdGUoIGRpc3BsYXlfICk7CisgICAgfQorCisgICAgZGlzcGxheV8gPSBFR0xfTk9fRElTUExBWTsKKyAgICBjb250ZXh0XyA9IEVHTF9OT19DT05URVhUOworICAgIHN1cmZhY2VfID0gRUdMX05PX1NVUkZBQ0U7CisgICAgY29udGV4dF92YWxpZF8gPSBmYWxzZTsKKworfQorCitFR0xpbnQgR0xDb250ZXh0OjpSZXN1bWUoIEFOYXRpdmVXaW5kb3cqIHdpbmRvdyApCit7CisgICAgaWYoIGVnbF9jb250ZXh0X2luaXRpYWxpemVkXyA9PSBmYWxzZSApCisgICAgeworICAgICAgICBJbml0KCB3aW5kb3cgKTsKKyAgICAgICAgcmV0dXJuIEVHTF9TVUNDRVNTOworICAgIH0KKworICAgIGludDMyX3Qgb3JpZ2luYWxfd2lkaHRoID0gc2NyZWVuX3dpZHRoXzsKKyAgICBpbnQzMl90IG9yaWdpbmFsX2hlaWdodCA9IHNjcmVlbl9oZWlnaHRfOworCisgICAgLy9DcmVhdGUgc3VyZmFjZQorICAgIHdpbmRvd18gPSB3aW5kb3c7CisgICAgc3VyZmFjZV8gPSBlZ2xDcmVhdGVXaW5kb3dTdXJmYWNlKCBkaXNwbGF5XywgY29uZmlnXywgd2luZG93XywgTlVMTCApOworICAgIGVnbFF1ZXJ5U3VyZmFjZSggZGlzcGxheV8sIHN1cmZhY2VfLCBFR0xfV0lEVEgsICZzY3JlZW5fd2lkdGhfICk7CisgICAgZWdsUXVlcnlTdXJmYWNlKCBkaXNwbGF5Xywgc3VyZmFjZV8sIEVHTF9IRUlHSFQsICZzY3JlZW5faGVpZ2h0XyApOworCisgICAgaWYoIHNjcmVlbl93aWR0aF8gIT0gb3JpZ2luYWxfd2lkaHRoIHx8IHNjcmVlbl9oZWlnaHRfICE9IG9yaWdpbmFsX2hlaWdodCApCisgICAgeworICAgICAgICAvL1NjcmVlbiByZXNpemVkCisgICAgICAgIExPR0koICJTY3JlZW4gcmVzaXplZCIgKTsKKyAgICB9CisKKyAgICBpZiggZWdsTWFrZUN1cnJlbnQoIGRpc3BsYXlfLCBzdXJmYWNlXywgc3VyZmFjZV8sIGNvbnRleHRfICkgPT0gRUdMX1RSVUUgKQorICAgICAgICByZXR1cm4gRUdMX1NVQ0NFU1M7CisKKyAgICBFR0xpbnQgZXJyID0gZWdsR2V0RXJyb3IoKTsKKyAgICBMT0dXKCAiVW5hYmxlIHRvIGVnbE1ha2VDdXJyZW50ICVkIiwgZXJyICk7CisKKyAgICBpZiggZXJyID09IEVHTF9DT05URVhUX0xPU1QgKQorICAgIHsKKyAgICAgICAgLy9SZWNyZWF0ZSBjb250ZXh0CisgICAgICAgIExPR0koICJSZS1jcmVhdGluZyBlZ2wgY29udGV4dCIgKTsKKyAgICAgICAgSW5pdEVHTENvbnRleHQoKTsKKyAgICB9CisgICAgZWxzZQorICAgIHsKKyAgICAgICAgLy9SZWNyZWF0ZSBzdXJmYWNlCisgICAgICAgIFRlcm1pbmF0ZSgpOworICAgICAgICBJbml0RUdMU3VyZmFjZSgpOworICAgICAgICBJbml0RUdMQ29udGV4dCgpOworICAgIH0KKworICAgIHJldHVybiBlcnI7CisKK30KKwordm9pZCBHTENvbnRleHQ6OlN1c3BlbmQoKQoreworICAgIGlmKCBzdXJmYWNlXyAhPSBFR0xfTk9fU1VSRkFDRSApCisgICAgeworICAgICAgICBlZ2xEZXN0cm95U3VyZmFjZSggZGlzcGxheV8sIHN1cmZhY2VfICk7CisgICAgICAgIHN1cmZhY2VfID0gRUdMX05PX1NVUkZBQ0U7CisgICAgfQorfQorCitib29sIEdMQ29udGV4dDo6SW52YWxpZGF0ZSgpCit7CisgICAgVGVybWluYXRlKCk7CisKKyAgICBlZ2xfY29udGV4dF9pbml0aWFsaXplZF8gPSBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBHTENvbnRleHQ6OkNoZWNrRXh0ZW5zaW9uKCBjb25zdCBjaGFyKiBleHRlbnNpb24gKQoreworICAgIGlmKCBleHRlbnNpb24gPT0gTlVMTCApCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHN0ZDo6c3RyaW5nIGV4dGVuc2lvbnMgPSBzdGQ6OnN0cmluZyggKGNoYXIqKSBnbEdldFN0cmluZyggR0xfRVhURU5TSU9OUyApICk7CisgICAgc3RkOjpzdHJpbmcgc3RyID0gc3RkOjpzdHJpbmcoIGV4dGVuc2lvbiApOworICAgIHN0ci5hcHBlbmQoICIgIiApOworCisgICAgc2l6ZV90IHBvcyA9IDA7CisgICAgaWYoIGV4dGVuc2lvbnMuZmluZCggZXh0ZW5zaW9uLCBwb3MgKSAhPSBzdGQ6OnN0cmluZzo6bnBvcyApCisgICAgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gICAvL25hbWVzcGFjZSBuZGtIZWxwZXIKZGlmZiAtLWdpdCBhL25kay9zb3VyY2VzL2FuZHJvaWQvbmRrX2hlbHBlci9HTENvbnRleHQuaCBiL25kay9zb3VyY2VzL2FuZHJvaWQvbmRrX2hlbHBlci9HTENvbnRleHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYzBkYjQ2Ci0tLSAvZGV2L251bGwKKysrIGIvbmRrL3NvdXJjZXMvYW5kcm9pZC9uZGtfaGVscGVyL0dMQ29udGV4dC5oCkBAIC0wLDAgKzEsMTI1IEBACisvKgorICogQ29weXJpZ2h0IDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBHTENvbnRleHQuaAorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorI2lmbmRlZiBHTENPTlRFWFRfSF8KKyNkZWZpbmUgR0xDT05URVhUX0hfCisKKyNpbmNsdWRlIDxFR0wvZWdsLmg+CisjaW5jbHVkZSA8R0xFUzIvZ2wyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKworI2luY2x1ZGUgIkpOSUhlbHBlci5oIgorCituYW1lc3BhY2UgbmRrX2hlbHBlcgoreworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBDb25zdGFudHMKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gQ2xhc3MKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogT3BlbkdMIGNvbnRleHQgaGFuZGxlcgorICogVGhlIGNsYXNzIGhhbmRsZXMgT3BlbkdMIGFuZCBFR0wgY29udGV4dCBiYXNlZCBvbiBBbmRyb2lkIGFjdGl2aXR5IGxpZmUgY3ljbGUKKyAqIFRoZSBjYWxsZXIgbmVlZHMgdG8gY2FsbCBjb3JyZXNwb25kaW5nIG1ldGhvZHMgZm9yIGVhY2ggYWN0aXZpdHkgbGlmZSBjeWNsZSBldmVudHMgYXMgaXQncyBkb25lIGluIHNhbXBsZSBjb2Rlcy4KKyAqCisgKiBBbHNvIHRoZSBjbGFzcyBpbml0aWFsaXplcyBPcGVuR0wgRVMzIHdoZW4gdGhlIGNvbXBhdGlibGUgZHJpdmVyIGlzIGluc3RhbGxlZCBpbiB0aGUgZGV2aWNlLgorICogZ2V0R0xWZXJzaW9uKCkgcmV0dXJucyAzLjB+IHdoZW4gdGhlIGRldmljZSBzdXBwb3J0cyBPcGVuR0xFUzMuMAorICoKKyAqIFRocmVhZCBzYWZldHk6IE9wZW5HTCBjb250ZXh0IGlzIGV4cGVjdGluZyB1c2VkIHdpdGhpbiBkZWRpY2F0ZWQgc2luZ2xlIHRocmVhZCwKKyAqIHRodXMgR0xDb250ZXh0IGNsYXNzIGlzIG5vdCBkZXNpZ25lZCBhcyBhIHRocmVhZC1zYWZlCisgKi8KK2NsYXNzIEdMQ29udGV4dAoreworcHJpdmF0ZToKKyAgICAvL0VHTCBjb25maWd1cmF0aW9ucworICAgIEFOYXRpdmVXaW5kb3cqIHdpbmRvd187CisgICAgRUdMRGlzcGxheSBkaXNwbGF5XzsKKyAgICBFR0xTdXJmYWNlIHN1cmZhY2VfOworICAgIEVHTENvbnRleHQgY29udGV4dF87CisgICAgRUdMQ29uZmlnIGNvbmZpZ187CisKKyAgICAvL1NjcmVlbiBwYXJhbWV0ZXJzCisgICAgaW50MzJfdCBzY3JlZW5fd2lkdGhfOworICAgIGludDMyX3Qgc2NyZWVuX2hlaWdodF87CisgICAgaW50MzJfdCBjb2xvcl9zaXplXzsKKyAgICBpbnQzMl90IGRlcHRoX3NpemVfOworCisgICAgLy9GbGFncworICAgIGJvb2wgZ2xlc19pbml0aWFsaXplZF87CisgICAgYm9vbCBlZ2xfY29udGV4dF9pbml0aWFsaXplZF87CisgICAgYm9vbCBlczNfc3VwcG9ydGVkXzsKKyAgICBmbG9hdCBnbF92ZXJzaW9uXzsKKyAgICBib29sIGNvbnRleHRfdmFsaWRfOworCisgICAgdm9pZCBJbml0R0xFUygpOworICAgIHZvaWQgVGVybWluYXRlKCk7CisgICAgYm9vbCBJbml0RUdMU3VyZmFjZSgpOworICAgIGJvb2wgSW5pdEVHTENvbnRleHQoKTsKKworICAgIEdMQ29udGV4dCggR0xDb250ZXh0IGNvbnN0JiApOworICAgIHZvaWQgb3BlcmF0b3I9KCBHTENvbnRleHQgY29uc3QmICk7CisgICAgR0xDb250ZXh0KCk7CisgICAgdmlydHVhbCB+R0xDb250ZXh0KCk7CitwdWJsaWM6CisgICAgc3RhdGljIEdMQ29udGV4dCogR2V0SW5zdGFuY2UoKQorICAgIHsKKyAgICAgICAgLy9TaW5nbGV0b24KKyAgICAgICAgc3RhdGljIEdMQ29udGV4dCBpbnN0YW5jZTsKKworICAgICAgICByZXR1cm4gJmluc3RhbmNlOworICAgIH0KKworICAgIGJvb2wgSW5pdCggQU5hdGl2ZVdpbmRvdyogd2luZG93ICk7CisgICAgRUdMaW50IFN3YXAoKTsKKyAgICBib29sIEludmFsaWRhdGUoKTsKKworICAgIHZvaWQgU3VzcGVuZCgpOworICAgIEVHTGludCBSZXN1bWUoIEFOYXRpdmVXaW5kb3cqIHdpbmRvdyApOworCisgICAgaW50MzJfdCBHZXRTY3JlZW5XaWR0aCgpCisgICAgeworICAgICAgICByZXR1cm4gc2NyZWVuX3dpZHRoXzsKKyAgICB9CisgICAgaW50MzJfdCBHZXRTY3JlZW5IZWlnaHQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHNjcmVlbl9oZWlnaHRfOworICAgIH0KKworICAgIGludDMyX3QgR2V0QnVmZmVyQ29sb3JTaXplKCkKKyAgICB7CisgICAgICAgIHJldHVybiBjb2xvcl9zaXplXzsKKyAgICB9CisgICAgaW50MzJfdCBHZXRCdWZmZXJEZXB0aFNpemUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGRlcHRoX3NpemVfOworICAgIH0KKyAgICBmbG9hdCBHZXRHTFZlcnNpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdsX3ZlcnNpb25fOworICAgIH0KKyAgICBib29sIENoZWNrRXh0ZW5zaW9uKCBjb25zdCBjaGFyKiBleHRlbnNpb24gKTsKK307CisKK30gICAvL25hbWVzcGFjZSBuZGtIZWxwZXIKKworI2VuZGlmIC8qIEdMQ09OVEVYVF9IXyAqLwpkaWZmIC0tZ2l0IGEvbmRrL3NvdXJjZXMvYW5kcm9pZC9uZGtfaGVscGVyL0pOSUhlbHBlci5jcHAgYi9uZGsvc291cmNlcy9hbmRyb2lkL25ka19oZWxwZXIvSk5JSGVscGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMWU3ZjAwCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3NvdXJjZXMvYW5kcm9pZC9uZGtfaGVscGVyL0pOSUhlbHBlci5jcHAKQEAgLTAsMCArMSwzNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjaW5jbHVkZSA8RUdML2VnbC5oPgorI2luY2x1ZGUgPEdMRVMyL2dsMi5oPgorI2luY2x1ZGUgPGZzdHJlYW0+CisjaW5jbHVkZSA8aW9zdHJlYW0+CisKKyNpbmNsdWRlICJKTklIZWxwZXIuaCIKKworbmFtZXNwYWNlIG5ka19oZWxwZXIKK3sKKworI2RlZmluZSBDTEFTU19OQU1FICJhbmRyb2lkL2FwcC9OYXRpdmVBY3Rpdml0eSIKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vSk5JIEhlbHBlciBmdW5jdGlvbnMKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvL1NpbmdsZXRvbgorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0pOSUhlbHBlciogSk5JSGVscGVyOjpHZXRJbnN0YW5jZSgpCit7CisgICAgc3RhdGljIEpOSUhlbHBlciBoZWxwZXI7CisgICAgcmV0dXJuICZoZWxwZXI7Cit9CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvL0N0b3IKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitKTklIZWxwZXI6OkpOSUhlbHBlcigpCit7CisgICAgcHRocmVhZF9tdXRleF9pbml0KCAmbXV0ZXhfLCBOVUxMICk7Cit9CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvL0R0b3IKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitKTklIZWxwZXI6On5KTklIZWxwZXIoKQoreworICAgIHB0aHJlYWRfbXV0ZXhfbG9jayggJm11dGV4XyApOworCisgICAgSk5JRW52ICplbnY7CisgICAgYWN0aXZpdHlfLT52bS0+QXR0YWNoQ3VycmVudFRocmVhZCggJmVudiwgTlVMTCApOworCisgICAgZW52LT5EZWxldGVHbG9iYWxSZWYoIGpuaV9oZWxwZXJfamF2YV9yZWZfICk7CisgICAgZW52LT5EZWxldGVHbG9iYWxSZWYoIGpuaV9oZWxwZXJfamF2YV9jbGFzc18gKTsKKworICAgIGFjdGl2aXR5Xy0+dm0tPkRldGFjaEN1cnJlbnRUaHJlYWQoKTsKKworICAgIHB0aHJlYWRfbXV0ZXhfZGVzdHJveSggJm11dGV4XyApOworfQorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy9Jbml0CisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQordm9pZCBKTklIZWxwZXI6OkluaXQoIEFOYXRpdmVBY3Rpdml0eSogYWN0aXZpdHksCisgICAgICAgIGNvbnN0IGNoYXIqIGhlbHBlcl9jbGFzc19uYW1lICkKK3sKKyAgICBKTklIZWxwZXImIGhlbHBlciA9ICpHZXRJbnN0YW5jZSgpOworICAgIHB0aHJlYWRfbXV0ZXhfbG9jayggJmhlbHBlci5tdXRleF8gKTsKKworICAgIGhlbHBlci5hY3Rpdml0eV8gPSBhY3Rpdml0eTsKKworICAgIEpOSUVudiAqZW52OworICAgIGhlbHBlci5hY3Rpdml0eV8tPnZtLT5BdHRhY2hDdXJyZW50VGhyZWFkKCAmZW52LCBOVUxMICk7CisKKyAgICAvL1JldHJpZXZlIGFwcCBuYW1lCisgICAgamNsYXNzIGFuZHJvaWRfY29udGVudF9Db250ZXh0ID0gZW52LT5HZXRPYmplY3RDbGFzcyggaGVscGVyLmFjdGl2aXR5Xy0+Y2xhenogKTsKKyAgICBqbWV0aG9kSUQgbWlkR2V0UGFja2FnZU5hbWUgPSBlbnYtPkdldE1ldGhvZElEKCBhbmRyb2lkX2NvbnRlbnRfQ29udGV4dCwgImdldFBhY2thZ2VOYW1lIiwKKyAgICAgICAgICAgICIoKUxqYXZhL2xhbmcvU3RyaW5nOyIgKTsKKworICAgIGpzdHJpbmcgcGFja2FnZU5hbWUgPSAoanN0cmluZykgZW52LT5DYWxsT2JqZWN0TWV0aG9kKCBoZWxwZXIuYWN0aXZpdHlfLT5jbGF6eiwKKyAgICAgICAgICAgIG1pZEdldFBhY2thZ2VOYW1lICk7CisgICAgY29uc3QgY2hhciogYXBwbmFtZSA9IGVudi0+R2V0U3RyaW5nVVRGQ2hhcnMoIHBhY2thZ2VOYW1lLCBOVUxMICk7CisgICAgaGVscGVyLmFwcF9uYW1lXyA9IHN0ZDo6c3RyaW5nKCBhcHBuYW1lICk7CisKKyAgICBqY2xhc3MgY2xzID0gaGVscGVyLlJldHJpZXZlQ2xhc3MoIGVudiwgaGVscGVyX2NsYXNzX25hbWUgKTsKKyAgICBoZWxwZXIuam5pX2hlbHBlcl9qYXZhX2NsYXNzXyA9IChqY2xhc3MpIGVudi0+TmV3R2xvYmFsUmVmKCBjbHMgKTsKKworICAgIGptZXRob2RJRCBjb25zdHJ1Y3RvciA9IGVudi0+R2V0TWV0aG9kSUQoIGhlbHBlci5qbmlfaGVscGVyX2phdmFfY2xhc3NfLCAiPGluaXQ+IiwgIigpViIgKTsKKyAgICBoZWxwZXIuam5pX2hlbHBlcl9qYXZhX3JlZl8gPSBlbnYtPk5ld09iamVjdCggaGVscGVyLmpuaV9oZWxwZXJfamF2YV9jbGFzc18sIGNvbnN0cnVjdG9yICk7CisgICAgaGVscGVyLmpuaV9oZWxwZXJfamF2YV9yZWZfID0gZW52LT5OZXdHbG9iYWxSZWYoIGhlbHBlci5qbmlfaGVscGVyX2phdmFfcmVmXyApOworCisgICAgZW52LT5SZWxlYXNlU3RyaW5nVVRGQ2hhcnMoIHBhY2thZ2VOYW1lLCBhcHBuYW1lICk7CisgICAgaGVscGVyLmFjdGl2aXR5Xy0+dm0tPkRldGFjaEN1cnJlbnRUaHJlYWQoKTsKKworICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCAmaGVscGVyLm11dGV4XyApOworfQorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy9yZWFkRmlsZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2Jvb2wgSk5JSGVscGVyOjpSZWFkRmlsZSggY29uc3QgY2hhciogZmlsZU5hbWUsCisgICAgICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+KiBidWZmZXJfcmVmICkKK3sKKyAgICBpZiggYWN0aXZpdHlfID09IE5VTEwgKQorICAgIHsKKyAgICAgICAgTE9HSSggIkpOSUhlbHBlciBoYXMgbm90IGJlZW4gaW5pdGlhbGl6ZWQuQ2FsbCBpbml0KCkgdG8gaW5pdGlhbGl6ZSB0aGUgaGVscGVyIiApOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLy9GaXJzdCwgdHJ5IHJlYWRpbmcgZnJvbSBleHRlcm5hbEZpbGVEaXI7CisgICAgSk5JRW52ICplbnY7CisgICAgam1ldGhvZElEIG1pZDsKKworICAgIHB0aHJlYWRfbXV0ZXhfbG9jayggJm11dGV4XyApOworICAgIGFjdGl2aXR5Xy0+dm0tPkF0dGFjaEN1cnJlbnRUaHJlYWQoICZlbnYsIE5VTEwgKTsKKworICAgIGpzdHJpbmcgc3RyX3BhdGggPSBHZXRFeHRlcm5hbEZpbGVzRGlySlN0cmluZyggZW52ICk7CisgICAgY29uc3QgY2hhciogcGF0aCA9IGVudi0+R2V0U3RyaW5nVVRGQ2hhcnMoIHN0cl9wYXRoLCBOVUxMICk7CisgICAgc3RkOjpzdHJpbmcgcyggcGF0aCApOworCisgICAgaWYoIGZpbGVOYW1lWzBdICE9ICcvJyApCisgICAgeworICAgICAgICBzLmFwcGVuZCggIi8iICk7CisgICAgfQorICAgIHMuYXBwZW5kKCBmaWxlTmFtZSApOworICAgIHN0ZDo6aWZzdHJlYW0gZiggcy5jX3N0cigpLCBzdGQ6Omlvczo6YmluYXJ5ICk7CisKKyAgICBlbnYtPlJlbGVhc2VTdHJpbmdVVEZDaGFycyggc3RyX3BhdGgsIHBhdGggKTsKKyAgICBlbnYtPkRlbGV0ZUxvY2FsUmVmKCBzdHJfcGF0aCApOworICAgIGFjdGl2aXR5Xy0+dm0tPkRldGFjaEN1cnJlbnRUaHJlYWQoKTsKKworICAgIGlmKCBmICkKKyAgICB7CisgICAgICAgIExPR0koICJyZWFkaW5nOiVzIiwgcy5jX3N0cigpICk7CisgICAgICAgIGYuc2Vla2coIDAsIHN0ZDo6aWZzdHJlYW06OmVuZCApOworICAgICAgICBpbnQzMl90IGZpbGVTaXplID0gZi50ZWxsZygpOworICAgICAgICBmLnNlZWtnKCAwLCBzdGQ6Omlmc3RyZWFtOjpiZWcgKTsKKyAgICAgICAgYnVmZmVyX3JlZi0+cmVzZXJ2ZSggZmlsZVNpemUgKTsKKyAgICAgICAgYnVmZmVyX3JlZi0+YXNzaWduKCBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcj4oIGYgKSwgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXI+KCkgKTsKKyAgICAgICAgZi5jbG9zZSgpOworICAgICAgICBwdGhyZWFkX211dGV4X3VubG9jayggJm11dGV4XyApOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgZWxzZQorICAgIHsKKyAgICAgICAgLy9GYWxsYmFjayB0byBhc3NldE1hbmFnZXIKKyAgICAgICAgQUFzc2V0TWFuYWdlciogYXNzZXRNYW5hZ2VyID0gYWN0aXZpdHlfLT5hc3NldE1hbmFnZXI7CisgICAgICAgIEFBc3NldCogYXNzZXRGaWxlID0gQUFzc2V0TWFuYWdlcl9vcGVuKCBhc3NldE1hbmFnZXIsIGZpbGVOYW1lLCBBQVNTRVRfTU9ERV9CVUZGRVIgKTsKKyAgICAgICAgaWYoICFhc3NldEZpbGUgKQorICAgICAgICB7CisgICAgICAgICAgICBwdGhyZWFkX211dGV4X3VubG9jayggJm11dGV4XyApOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHVpbnQ4X3QqIGRhdGEgPSAodWludDhfdCopIEFBc3NldF9nZXRCdWZmZXIoIGFzc2V0RmlsZSApOworICAgICAgICBpbnQzMl90IHNpemUgPSBBQXNzZXRfZ2V0TGVuZ3RoKCBhc3NldEZpbGUgKTsKKyAgICAgICAgaWYoIGRhdGEgPT0gTlVMTCApCisgICAgICAgIHsKKyAgICAgICAgICAgIEFBc3NldF9jbG9zZSggYXNzZXRGaWxlICk7CisKKyAgICAgICAgICAgIExPR0koICJGYWlsZWQgdG8gbG9hZDolcyIsIGZpbGVOYW1lICk7CisgICAgICAgICAgICBwdGhyZWFkX211dGV4X3VubG9jayggJm11dGV4XyApOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgYnVmZmVyX3JlZi0+cmVzZXJ2ZSggc2l6ZSApOworICAgICAgICBidWZmZXJfcmVmLT5hc3NpZ24oIGRhdGEsIGRhdGEgKyBzaXplICk7CisKKyAgICAgICAgQUFzc2V0X2Nsb3NlKCBhc3NldEZpbGUgKTsKKyAgICAgICAgcHRocmVhZF9tdXRleF91bmxvY2soICZtdXRleF8gKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfQorCitzdGQ6OnN0cmluZyBKTklIZWxwZXI6OkdldEV4dGVybmFsRmlsZXNEaXIoKQoreworICAgIGlmKCBhY3Rpdml0eV8gPT0gTlVMTCApCisgICAgeworICAgICAgICBMT0dJKCAiSk5JSGVscGVyIGhhcyBub3QgYmVlbiBpbml0aWFsaXplZC4gQ2FsbCBpbml0KCkgdG8gaW5pdGlhbGl6ZSB0aGUgaGVscGVyIiApOworICAgICAgICByZXR1cm4gc3RkOjpzdHJpbmcoICIiICk7CisgICAgfQorCisgICAgcHRocmVhZF9tdXRleF9sb2NrKCAmbXV0ZXhfICk7CisKKyAgICAvL0ZpcnN0LCB0cnkgcmVhZGluZyBmcm9tIGV4dGVybmFsRmlsZURpcjsKKyAgICBKTklFbnYgKmVudjsKKyAgICBqbWV0aG9kSUQgbWlkOworCisgICAgYWN0aXZpdHlfLT52bS0+QXR0YWNoQ3VycmVudFRocmVhZCggJmVudiwgTlVMTCApOworCisgICAganN0cmluZyBzdHJQYXRoID0gR2V0RXh0ZXJuYWxGaWxlc0RpckpTdHJpbmcoIGVudiApOworICAgIGNvbnN0IGNoYXIqIHBhdGggPSBlbnYtPkdldFN0cmluZ1VURkNoYXJzKCBzdHJQYXRoLCBOVUxMICk7CisgICAgc3RkOjpzdHJpbmcgcyggcGF0aCApOworCisgICAgZW52LT5SZWxlYXNlU3RyaW5nVVRGQ2hhcnMoIHN0clBhdGgsIHBhdGggKTsKKyAgICBlbnYtPkRlbGV0ZUxvY2FsUmVmKCBzdHJQYXRoICk7CisgICAgYWN0aXZpdHlfLT52bS0+RGV0YWNoQ3VycmVudFRocmVhZCgpOworCisgICAgcHRocmVhZF9tdXRleF91bmxvY2soICZtdXRleF8gKTsKKyAgICByZXR1cm4gczsKK30KKwordWludDMyX3QgSk5JSGVscGVyOjpMb2FkVGV4dHVyZSggY29uc3QgY2hhciogZmlsZV9uYW1lICkKK3sKKyAgICBpZiggYWN0aXZpdHlfID09IE5VTEwgKQorICAgIHsKKyAgICAgICAgTE9HSSggIkpOSUhlbHBlciBoYXMgbm90IGJlZW4gaW5pdGlhbGl6ZWQuIENhbGwgaW5pdCgpIHRvIGluaXRpYWxpemUgdGhlIGhlbHBlciIgKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgSk5JRW52ICplbnY7CisgICAgam1ldGhvZElEIG1pZDsKKworICAgIHB0aHJlYWRfbXV0ZXhfbG9jayggJm11dGV4XyApOworICAgIGFjdGl2aXR5Xy0+dm0tPkF0dGFjaEN1cnJlbnRUaHJlYWQoICZlbnYsIE5VTEwgKTsKKworICAgIGpzdHJpbmcgbmFtZSA9IGVudi0+TmV3U3RyaW5nVVRGKCBmaWxlX25hbWUgKTsKKworICAgIEdMdWludCB0ZXg7CisgICAgZ2xHZW5UZXh0dXJlcyggMSwgJnRleCApOworICAgIGdsQmluZFRleHR1cmUoIEdMX1RFWFRVUkVfMkQsIHRleCApOworCisgICAgZ2xUZXhQYXJhbWV0ZXJmKCBHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX01JTl9GSUxURVIsIEdMX0xJTkVBUl9NSVBNQVBfTkVBUkVTVCApOworICAgIGdsVGV4UGFyYW1ldGVyZiggR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIgKTsKKworICAgIG1pZCA9IGVudi0+R2V0TWV0aG9kSUQoIGpuaV9oZWxwZXJfamF2YV9jbGFzc18sICJsb2FkVGV4dHVyZSIsICIoTGphdmEvbGFuZy9TdHJpbmc7KVoiICk7CisgICAgamJvb2xlYW4gcmV0ID0gZW52LT5DYWxsQm9vbGVhbk1ldGhvZCggam5pX2hlbHBlcl9qYXZhX3JlZl8sIG1pZCwgbmFtZSApOworICAgIGlmKCAhcmV0ICkKKyAgICB7CisgICAgICAgIGdsRGVsZXRlVGV4dHVyZXMoIDEsICZ0ZXggKTsKKyAgICAgICAgdGV4ID0gLTE7CisgICAgICAgIExPR0koICJUZXh0dXJlIGxvYWQgZmFpbGVkICVzIiwgZmlsZV9uYW1lICk7CisgICAgfQorCisgICAgLy9HZW5lcmF0ZSBtaXBtYXAKKyAgICBnbEdlbmVyYXRlTWlwbWFwKCBHTF9URVhUVVJFXzJEICk7CisKKyAgICBlbnYtPkRlbGV0ZUxvY2FsUmVmKCBuYW1lICk7CisgICAgYWN0aXZpdHlfLT52bS0+RGV0YWNoQ3VycmVudFRocmVhZCgpOworICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCAmbXV0ZXhfICk7CisKKyAgICByZXR1cm4gdGV4OworCit9CisKK3N0ZDo6c3RyaW5nIEpOSUhlbHBlcjo6Q29udmVydFN0cmluZyggY29uc3QgY2hhciogc3RyLAorICAgICAgICBjb25zdCBjaGFyKiBlbmNvZGUgKQoreworICAgIGlmKCBhY3Rpdml0eV8gPT0gTlVMTCApCisgICAgeworICAgICAgICBMT0dJKCAiSk5JSGVscGVyIGhhcyBub3QgYmVlbiBpbml0aWFsaXplZC4gQ2FsbCBpbml0KCkgdG8gaW5pdGlhbGl6ZSB0aGUgaGVscGVyIiApOworICAgICAgICByZXR1cm4gc3RkOjpzdHJpbmcoICIiICk7CisgICAgfQorCisgICAgSk5JRW52ICplbnY7CisKKyAgICBwdGhyZWFkX211dGV4X2xvY2soICZtdXRleF8gKTsKKyAgICBhY3Rpdml0eV8tPnZtLT5BdHRhY2hDdXJyZW50VGhyZWFkKCAmZW52LCBOVUxMICk7CisKKyAgICBpbnQzMl90IGlMZW5ndGggPSBzdHJsZW4oIChjb25zdCBjaGFyKikgc3RyICk7CisKKyAgICBqYnl0ZUFycmF5IGFycmF5ID0gZW52LT5OZXdCeXRlQXJyYXkoIGlMZW5ndGggKTsKKyAgICBlbnYtPlNldEJ5dGVBcnJheVJlZ2lvbiggYXJyYXksIDAsIGlMZW5ndGgsIChjb25zdCBzaWduZWQgY2hhciopIHN0ciApOworCisgICAganN0cmluZyBzdHJFbmNvZGUgPSBlbnYtPk5ld1N0cmluZ1VURiggZW5jb2RlICk7CisKKyAgICBqY2xhc3MgY2xzID0gZW52LT5GaW5kQ2xhc3MoICJqYXZhL2xhbmcvU3RyaW5nIiApOworICAgIGptZXRob2RJRCBjdG9yID0gZW52LT5HZXRNZXRob2RJRCggY2xzLCAiPGluaXQ+IiwgIihbQkxqYXZhL2xhbmcvU3RyaW5nOylWIiApOworICAgIGpzdHJpbmcgb2JqZWN0ID0gKGpzdHJpbmcpIGVudi0+TmV3T2JqZWN0KCBjbHMsIGN0b3IsIGFycmF5LCBzdHJFbmNvZGUgKTsKKworICAgIGNvbnN0IGNoYXIgKmNwYXJhbSA9IGVudi0+R2V0U3RyaW5nVVRGQ2hhcnMoIG9iamVjdCwgTlVMTCApOworCisgICAgc3RkOjpzdHJpbmcgcyA9IHN0ZDo6c3RyaW5nKCBjcGFyYW0gKTsKKworICAgIGVudi0+UmVsZWFzZVN0cmluZ1VURkNoYXJzKCBvYmplY3QsIGNwYXJhbSApOworICAgIGVudi0+RGVsZXRlTG9jYWxSZWYoIHN0ckVuY29kZSApOworICAgIGVudi0+RGVsZXRlTG9jYWxSZWYoIG9iamVjdCApOworICAgIGFjdGl2aXR5Xy0+dm0tPkRldGFjaEN1cnJlbnRUaHJlYWQoKTsKKyAgICBwdGhyZWFkX211dGV4X3VubG9jayggJm11dGV4XyApOworCisgICAgcmV0dXJuIHM7Cit9CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvL0F1ZGlvIGhlbHBlcnMKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitpbnQzMl90IEpOSUhlbHBlcjo6R2V0TmF0aXZlQXVkaW9CdWZmZXJTaXplKCkKK3sKKyAgICBpZiggYWN0aXZpdHlfID09IE5VTEwgKQorICAgIHsKKyAgICAgICAgTE9HSSggIkpOSUhlbHBlciBoYXMgbm90IGJlZW4gaW5pdGlhbGl6ZWQuIENhbGwgaW5pdCgpIHRvIGluaXRpYWxpemUgdGhlIGhlbHBlciIgKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgSk5JRW52ICplbnY7CisgICAgam1ldGhvZElEIG1pZDsKKworICAgIHB0aHJlYWRfbXV0ZXhfbG9jayggJm11dGV4XyApOworICAgIGFjdGl2aXR5Xy0+dm0tPkF0dGFjaEN1cnJlbnRUaHJlYWQoICZlbnYsIE5VTEwgKTsKKworICAgIG1pZCA9IGVudi0+R2V0TWV0aG9kSUQoIGpuaV9oZWxwZXJfamF2YV9jbGFzc18sICJnZXROYXRpdmVBdWRpb0J1ZmZlclNpemUiLCAiKClJIiApOworICAgIGludDMyX3QgaSA9IGVudi0+Q2FsbEludE1ldGhvZCggam5pX2hlbHBlcl9qYXZhX3JlZl8sIG1pZCApOworICAgIGFjdGl2aXR5Xy0+dm0tPkRldGFjaEN1cnJlbnRUaHJlYWQoKTsKKyAgICBwdGhyZWFkX211dGV4X3VubG9jayggJm11dGV4XyApOworCisgICAgcmV0dXJuIGk7Cit9CisKK2ludDMyX3QgSk5JSGVscGVyOjpHZXROYXRpdmVBdWRpb1NhbXBsZVJhdGUoKQoreworICAgIGlmKCBhY3Rpdml0eV8gPT0gTlVMTCApCisgICAgeworICAgICAgICBMT0dJKCAiSk5JSGVscGVyIGhhcyBub3QgYmVlbiBpbml0aWFsaXplZC4gQ2FsbCBpbml0KCkgdG8gaW5pdGlhbGl6ZSB0aGUgaGVscGVyIiApOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBKTklFbnYgKmVudjsKKyAgICBqbWV0aG9kSUQgbWlkOworCisgICAgcHRocmVhZF9tdXRleF9sb2NrKCAmbXV0ZXhfICk7CisgICAgYWN0aXZpdHlfLT52bS0+QXR0YWNoQ3VycmVudFRocmVhZCggJmVudiwgTlVMTCApOworCisgICAgbWlkID0gZW52LT5HZXRNZXRob2RJRCggam5pX2hlbHBlcl9qYXZhX2NsYXNzXywgImdldE5hdGl2ZUF1ZGlvU2FtcGxlUmF0ZSIsICIoKUkiICk7CisgICAgaW50MzJfdCBpID0gZW52LT5DYWxsSW50TWV0aG9kKCBqbmlfaGVscGVyX2phdmFfcmVmXywgbWlkICk7CisgICAgYWN0aXZpdHlfLT52bS0+RGV0YWNoQ3VycmVudFRocmVhZCgpOworICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCAmbXV0ZXhfICk7CisKKyAgICByZXR1cm4gaTsKK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vTWlzYyBpbXBsZW1lbnRhdGlvbnMKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitqY2xhc3MgSk5JSGVscGVyOjpSZXRyaWV2ZUNsYXNzKCBKTklFbnYgKmpuaSwKKyAgICAgICAgY29uc3QgY2hhciogY2xhc3NfbmFtZSApCit7CisgICAgamNsYXNzIGFjdGl2aXR5X2NsYXNzID0gam5pLT5GaW5kQ2xhc3MoIENMQVNTX05BTUUgKTsKKyAgICBqbWV0aG9kSUQgZ2V0X2NsYXNzX2xvYWRlciA9IGpuaS0+R2V0TWV0aG9kSUQoIGFjdGl2aXR5X2NsYXNzLCAiZ2V0Q2xhc3NMb2FkZXIiLAorICAgICAgICAgICAgIigpTGphdmEvbGFuZy9DbGFzc0xvYWRlcjsiICk7CisgICAgam9iamVjdCBjbHMgPSBqbmktPkNhbGxPYmplY3RNZXRob2QoIGFjdGl2aXR5Xy0+Y2xhenosIGdldF9jbGFzc19sb2FkZXIgKTsKKyAgICBqY2xhc3MgY2xhc3NfbG9hZGVyID0gam5pLT5GaW5kQ2xhc3MoICJqYXZhL2xhbmcvQ2xhc3NMb2FkZXIiICk7CisgICAgam1ldGhvZElEIGZpbmRfY2xhc3MgPSBqbmktPkdldE1ldGhvZElEKCBjbGFzc19sb2FkZXIsICJsb2FkQ2xhc3MiLAorICAgICAgICAgICAgIihMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9DbGFzczsiICk7CisKKyAgICBqc3RyaW5nIHN0cl9jbGFzc19uYW1lID0gam5pLT5OZXdTdHJpbmdVVEYoIGNsYXNzX25hbWUgKTsKKyAgICBqY2xhc3MgY2xhc3NfcmV0cmlldmVkID0gKGpjbGFzcykgam5pLT5DYWxsT2JqZWN0TWV0aG9kKCBjbHMsIGZpbmRfY2xhc3MsIHN0cl9jbGFzc19uYW1lICk7CisgICAgam5pLT5EZWxldGVMb2NhbFJlZiggc3RyX2NsYXNzX25hbWUgKTsKKyAgICByZXR1cm4gY2xhc3NfcmV0cmlldmVkOworfQorCitqc3RyaW5nIEpOSUhlbHBlcjo6R2V0RXh0ZXJuYWxGaWxlc0RpckpTdHJpbmcoIEpOSUVudiAqZW52ICkKK3sKKyAgICBpZiggYWN0aXZpdHlfID09IE5VTEwgKQorICAgIHsKKyAgICAgICAgTE9HSSggIkpOSUhlbHBlciBoYXMgbm90IGJlZW4gaW5pdGlhbGl6ZWQuIENhbGwgaW5pdCgpIHRvIGluaXRpYWxpemUgdGhlIGhlbHBlciIgKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgLy8gSW52b2tpbmcgZ2V0RXh0ZXJuYWxGaWxlc0RpcigpIGphdmEgQVBJCisgICAgamNsYXNzIGNsc19FbnYgPSBlbnYtPkZpbmRDbGFzcyggQ0xBU1NfTkFNRSApOworICAgIGptZXRob2RJRCBtaWQgPSBlbnYtPkdldE1ldGhvZElEKCBjbHNfRW52LCAiZ2V0RXh0ZXJuYWxGaWxlc0RpciIsCisgICAgICAgICAgICAiKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9pby9GaWxlOyIgKTsKKyAgICBqb2JqZWN0IG9ial9GaWxlID0gZW52LT5DYWxsT2JqZWN0TWV0aG9kKCBhY3Rpdml0eV8tPmNsYXp6LCBtaWQsIE5VTEwgKTsKKyAgICBqY2xhc3MgY2xzX0ZpbGUgPSBlbnYtPkZpbmRDbGFzcyggImphdmEvaW8vRmlsZSIgKTsKKyAgICBqbWV0aG9kSUQgbWlkX2dldFBhdGggPSBlbnYtPkdldE1ldGhvZElEKCBjbHNfRmlsZSwgImdldFBhdGgiLCAiKClMamF2YS9sYW5nL1N0cmluZzsiICk7CisgICAganN0cmluZyBvYmpfUGF0aCA9IChqc3RyaW5nKSBlbnYtPkNhbGxPYmplY3RNZXRob2QoIG9ial9GaWxlLCBtaWRfZ2V0UGF0aCApOworCisgICAgcmV0dXJuIG9ial9QYXRoOworfQorCit9IC8vbmFtZXNwYWNlIG5ka0hlbHBlcgpkaWZmIC0tZ2l0IGEvbmRrL3NvdXJjZXMvYW5kcm9pZC9uZGtfaGVscGVyL0pOSUhlbHBlci5oIGIvbmRrL3NvdXJjZXMvYW5kcm9pZC9uZGtfaGVscGVyL0pOSUhlbHBlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdhNzdkNzYKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvc291cmNlcy9hbmRyb2lkL25ka19oZWxwZXIvSk5JSGVscGVyLmgKQEAgLTAsMCArMSwxNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8am5pLmg+CisjaW5jbHVkZSA8dmVjdG9yPgorI2luY2x1ZGUgPHN0cmluZz4KKworI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisjaW5jbHVkZSA8YW5kcm9pZF9uYXRpdmVfYXBwX2dsdWUuaD4KKworI2RlZmluZSBMT0dJKC4uLikgKCh2b2lkKV9fYW5kcm9pZF9sb2dfcHJpbnQoQU5EUk9JRF9MT0dfSU5GTywgbmRrX2hlbHBlcjo6Sk5JSGVscGVyOjpHZXRJbnN0YW5jZSgpLT5HZXRBcHBOYW1lKCksIF9fVkFfQVJHU19fKSkKKyNkZWZpbmUgTE9HVyguLi4pICgodm9pZClfX2FuZHJvaWRfbG9nX3ByaW50KEFORFJPSURfTE9HX1dBUk4sIG5ka19oZWxwZXI6OkpOSUhlbHBlcjo6R2V0SW5zdGFuY2UoKS0+R2V0QXBwTmFtZSgpLCBfX1ZBX0FSR1NfXykpCisjZGVmaW5lIExPR0UoLi4uKSAoKHZvaWQpX19hbmRyb2lkX2xvZ19wcmludChBTkRST0lEX0xPR19FUlJPUiwgbmRrX2hlbHBlcjo6Sk5JSGVscGVyOjpHZXRJbnN0YW5jZSgpLT5HZXRBcHBOYW1lKCksIF9fVkFfQVJHU19fKSkKKworbmFtZXNwYWNlIG5ka19oZWxwZXIKK3sKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogSGVscGVyIGZ1bmN0aW9ucyBmb3IgSk5JIGNhbGxzCisgKiBUaGlzIGNsYXNzIHdyYXBzIEpOSSBjYWxscyBhbmQgcHJvdmlkZXMgaGFuZHkgaW50ZXJmYWNlIGNhbGxpbmcgY29tbW9ubHkgdXNlZCBmZWF0dXJlcworICogaW4gSmF2YSBTREsuCisgKiBTdWNoIGFzCisgKiAtIGxvYWRpbmcgZ3JhcGhpY3MgZmlsZXMgKGUuZy4gUE5HLCBKUEcpCisgKiAtIGNoYXJhY3RlciBjb2RlIGNvbnZlcnNpb24KKyAqIC0gcmV0cmlldmluZyBzeXN0ZW0gcHJvcGVydGllcyB3aGljaCBvbmx5IHN1cHBvcnRlZCBpbiBKYXZhIFNESworICoKKyAqIE5PVEU6IFRvIHVzZSB0aGlzIGNsYXNzLCBhZGQgTkRLSGVscGVyLmphdmEgYXMgYSBjb3JyZXNwb25kaW5nIGhlbHBlcnMgaW4gSmF2YSBjb2RlCisgKi8KK2NsYXNzIEpOSUhlbHBlcgoreworcHJpdmF0ZToKKyAgICBzdGQ6OnN0cmluZyBhcHBfbmFtZV87CisKKyAgICBBTmF0aXZlQWN0aXZpdHkqIGFjdGl2aXR5XzsKKyAgICBqb2JqZWN0IGpuaV9oZWxwZXJfamF2YV9yZWZfOworICAgIGpjbGFzcyBqbmlfaGVscGVyX2phdmFfY2xhc3NfOworCisgICAgLy9tdXRleCBmb3Igc3luY2hyb25pemF0aW9uCisgICAgLy9UaGlzIGNsYXNzIHVzZXMgc2luZ2xldG9uIHBhdHRlcm4gYW5kIGNhbiBiZSBpbnZva2VkIGZyb20gbXVsdGlwbGUgdGhyZWFkcywKKyAgICAvL2VhY2ggbWV0aG9kcyBsb2NrcyB0aGUgbXV0ZXggZm9yIGEgdGhyZWFkIHNhZmV0eQorICAgIG11dGFibGUgcHRocmVhZF9tdXRleF90IG11dGV4XzsKKworICAgIGpzdHJpbmcgR2V0RXh0ZXJuYWxGaWxlc0RpckpTdHJpbmcoIEpOSUVudiAqZW52ICk7CisgICAgamNsYXNzIFJldHJpZXZlQ2xhc3MoIEpOSUVudiAqam5pLAorICAgICAgICAgICAgY29uc3QgY2hhciogY2xhc3NfbmFtZSApOworCisgICAgSk5JSGVscGVyKCk7CisgICAgfkpOSUhlbHBlcigpOworICAgIEpOSUhlbHBlciggY29uc3QgSk5JSGVscGVyJiByaHMgKTsKKyAgICBKTklIZWxwZXImIG9wZXJhdG9yPSggY29uc3QgSk5JSGVscGVyJiByaHMgKTsKKworcHVibGljOgorICAgIC8qCisgICAgICogVG8gbG9hZCB5b3VyIG93biBKYXZhIGNsYXNzZXMsIEpOSUhlbHBlciByZXF1aXJlcyB0byBiZSBpbml0aWFsaXplZCB3aXRoIGEgQU5hdGl2ZUFjdGl2aXR5IGhhbmRsZS4KKyAgICAgKiBUaGlzIG1ldGhvZHMgbmVlZCB0byBiZSBjYWxsZWQgYmVmb3JlIGFueSBjYWxsIHRvIHRoZSBoZWxwZXIgY2xhc3MuCisgICAgICogU3RhdGljIG1lbWJlciBvZiB0aGUgY2xhc3MKKyAgICAgKgorICAgICAqIGFyZ3VtZW50czoKKyAgICAgKiBpbjogYWN0aXZpdHksIHBvaW50ZXIgdG8gQU5hdGl2ZUFjdGl2aXR5LiBVc2VkIGludGVybmFsbHkgdG8gc2V0IHVwIEpOSSBlbnZpcm9ubWVudAorICAgICAqIGluOiBoZWxwZXJfY2xhc3NfbmFtZSwgcG9pbnRlciB0byBKYXZhIHNpZGUgaGVscGVyIGNsYXNzIG5hbWUuIChlLmcuICJjb20vc2FtcGxlL2hlbHBlci9OREtIZWxwZXIiIGluIHNhbXBsZXMgKQorICAgICAqLworICAgIHN0YXRpYyB2b2lkIEluaXQoIEFOYXRpdmVBY3Rpdml0eSogYWN0aXZpdHksCisgICAgICAgICAgICBjb25zdCBjaGFyKiBoZWxwZXJfY2xhc3NfbmFtZSApOworCisgICAgLyoKKyAgICAgKiBSZXRyaWV2ZSB0aGUgc2luZ2xldG9uIG9iamVjdCBvZiB0aGUgaGVscGVyLgorICAgICAqIFN0YXRpYyBtZW1iZXIgb2YgdGhlIGNsYXNzCisKKyAgICAgKiBNZXRob2RzIGluIHRoZSBjbGFzcyBhcmUgZGVzaWduZWQgYXMgdGhyZWFkIHNhZmUuCisgICAgICovCisgICAgc3RhdGljIEpOSUhlbHBlciogR2V0SW5zdGFuY2UoKTsKKworICAgIC8qCisgICAgICogUmVhZCBhIGZpbGUgZnJvbSBhIHN0cm9yYWdlLgorICAgICAqIEZpcnN0LCB0aGUgbWV0aG9kIHRyaWVzIHRvIHJlYWQgdGhlIGZpbGUgZnJvbSBhbiBleHRlcm5hbCBzdG9yYWdlLgorICAgICAqIElmIGl0IGZhaWxzIHRvIHJlYWQsIGl0IGZhbGxzIGJhY2sgdG8gdXNlIGFzc3NldCBtYW5hZ2VyIGFuZCB0cnkgdG8gcmVhZCB0aGUgZmlsZSBmcm9tIEFQSyBhc3NldC4KKyAgICAgKgorICAgICAqIGFyZ3VtZW50czoKKyAgICAgKiBpbjogZmlsZV9uYW1lLCBmaWxlIG5hbWUgdG8gcmVhZAorICAgICAqIG91dDogYnVmZmVyX3JlZiwgcG9pbnRlciB0byBhIHZlY3RvciBidWZmZXIgdG8gcmVhZCBhIGZpbGUuCisgICAgICogICAgICB3aGVuIHRoZSBjYWxsIHN1Y2NlZWRlZCwgdGhlIGJ1ZmZlciBpbmNsdWRlcyBjb250ZW50cyBvZiBzcGVjaWZpZWQgZmlsZQorICAgICAqICAgICAgd2hlbiB0aGUgY2FsbCBmYWlsZWQsIGNvbnRlbnRzIG9mIHRoZSBidWZmZXIgcmVtYWlucyBzYW1lCisgICAgICogcmV0dXJuOgorICAgICAqIHRydWUgd2hlbiBmaWxlIHJlYWQgc3VjY2VlZGVkCisgICAgICogZmFsc2Ugd2hlbiBpdCBmYWlsZWQgdG8gcmVhZCB0aGUgZmlsZQorICAgICAqLworICAgIGJvb2wgUmVhZEZpbGUoIGNvbnN0IGNoYXIqIGZpbGVfbmFtZSwKKyAgICAgICAgICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+KiBidWZmZXJfcmVmICk7CisKKyAgICAvKgorICAgICAqIExvYWQgYW5kIGNyZWF0ZSBPcGVuR0wgdGV4dHVyZSBmcm9tIGdpdmVuIGZpbGUgbmFtZS4KKyAgICAgKiBUaGUgbWV0aG9kIGludm9rZXMgQml0bWFwRmFjdG9yeSBpbiBKYXZhIHNvIGl0IGNhbiByZWFkIGpwZWcvcG5nIGZvcm1hdHRlZCBmaWxlcworICAgICAqCisgICAgICogVGhlIG1ldGhvZHMgY3JlYXRlcyBtaXAtbWFwIGFuZCBzZXQgdGV4dHVyZSBwYXJhbWV0ZXJzIGxpa2UgdGhpcywKKyAgICAgKiBnbFRleFBhcmFtZXRlcmYoIEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElORUFSX01JUE1BUF9ORUFSRVNUICk7CisgICAgICogZ2xUZXhQYXJhbWV0ZXJmKCBHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVBUiApOworICAgICAqIGdsR2VuZXJhdGVNaXBtYXAoIEdMX1RFWFRVUkVfMkQgKTsKKyAgICAgKgorICAgICAqIGFyZ3VtZW50czoKKyAgICAgKiBpbjogZmlsZV9uYW1lLCBmaWxlIG5hbWUgdG8gcmVhZCwgUE5HJkpQRyBpcyBzdXBwb3J0ZWQKKyAgICAgKiByZXR1cm46CisgICAgICogT3BlbkdMIHRleHR1cmUgbmFtZSB3aGVuIHRoZSBjYWxsIHN1Y2NlZWRlZAorICAgICAqIFdoZW4gaXQgZmFpbGVkIHRvIGxvYWQgdGhlIHRleHR1cmUsIGl0IHJldHVybnMgLTEKKyAgICAgKi8KKyAgICB1aW50MzJfdCBMb2FkVGV4dHVyZSggY29uc3QgY2hhciogZmlsZV9uYW1lICk7CisKKyAgICAvKgorICAgICAqIENvbnZlcnQgc3RyaW5nIGZyb20gY2hhcmFjdGVyIGNvZGUgb3RoZXIgdGhhbiBVVEYtOAorICAgICAqCisgICAgICogYXJndW1lbnRzOgorICAgICAqICBpbjogc3RyLCBwb2ludGVyIHRvIGEgc3RyaW5nIHdoaWNoIGlzIGVuY29kZWQgb3RoZXIgdGhhbiBVVEYtOAorICAgICAqICBpbjogZW5jb2RpbmcsIHBvaW50ZXIgdG8gYSBjaGFyYWN0ZXIgZW5jb2Rpbmcgc3RyaW5nLgorICAgICAqICBUaGUgZW5jb2Rpbmcgc3RyaW5nIGNhbiBiZSBhbnkgdmFsaWQgamF2YS5uaW8uY2hhcnNldC5DaGFyc2V0IG5hbWUKKyAgICAgKiAgZS5nLiAiVVRGLTE2IiwgIlNoaWZ0X0pJUyIKKyAgICAgKiByZXR1cm46IGNvbnZlcnRlZCBpbnB1dCBzdHJpbmcgYXMgYW4gVVRGLTggc3RkOjpzdHJpbmcKKyAgICAgKi8KKyAgICBzdGQ6OnN0cmluZyBDb252ZXJ0U3RyaW5nKCBjb25zdCBjaGFyKiBzdHIsCisgICAgICAgICAgICBjb25zdCBjaGFyKiBlbmNvZGUgKTsKKyAgICAvKgorICAgICAqIFJldHJpZXZlIGV4dGVybmFsIGZpbGUgZGlyZWN0b3J5IHRocm91Z2ggSk5JIGNhbGwKKyAgICAgKgorICAgICAqIHJldHVybjogc3RkOjpzdHJpbmcgY29udGFpbmluZyBleHRlcm5hbCBmaWxlIGRpcmV0b3J5CisgICAgICovCisgICAgc3RkOjpzdHJpbmcgR2V0RXh0ZXJuYWxGaWxlc0RpcigpOworCisgICAgLyoKKyAgICAgKiBBdWRpbyBoZWxwZXIKKyAgICAgKiBSZXRyaWV2ZXMgbmF0aXZlIGF1ZGlvIGJ1ZmZlciBzaXplIHdoaWNoIGlzIHJlcXVpcmVkIHRvIGFjaGlldmUgbG93IGxhdGVuY3kgYXVkaW8KKyAgICAgKgorICAgICAqIHJldHVybjogTmF0aXZlIGF1ZGlvIGJ1ZmZlciBzaXplIHdoaWNoIGlzIGEgaGludCB0byBhY2hpZXZlIGxvdyBsYXRlbmN5IGF1ZGlvCisgICAgICogSWYgdGhlIEFQSSBpcyBub3Qgc3VwcG9ydGVkIChBUEkgbGV2ZWwgPCAxNyksIGl0IHJldHVybnMgMAorICAgICAqLworICAgIGludDMyX3QgR2V0TmF0aXZlQXVkaW9CdWZmZXJTaXplKCk7CisKKyAgICAvKgorICAgICAqIEF1ZGlvIGhlbHBlcgorICAgICAqIFJldHJpZXZlcyBuYXRpdmUgYXVkaW8gc2FtcGxlIHJhdGUgd2hpY2ggaXMgcmVxdWlyZWQgdG8gYWNoaWV2ZSBsb3cgbGF0ZW5jeSBhdWRpbworICAgICAqCisgICAgICogcmV0dXJuOiBOYXRpdmUgYXVkaW8gc2FtcGxlIHJhdGUgd2hpY2ggaXMgYSBoaW50IHRvIGFjaGlldmUgbG93IGxhdGVuY3kgYXVkaW8KKyAgICAgKi8KKyAgICBpbnQzMl90IEdldE5hdGl2ZUF1ZGlvU2FtcGxlUmF0ZSgpOworCisgICAgLyoKKyAgICAgKiBSZXRyaWV2ZXMgYXBwbGljYXRpb24gYnVuZGxlIG5hbWUKKyAgICAgKgorICAgICAqIHJldHVybjogcG9pbnRlciB0byBhbiBhcHAgbmFtZSBzdHJpbmcKKyAgICAgKgorICAgICAqLworICAgIGNvbnN0IGNoYXIqIEdldEFwcE5hbWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFwcF9uYW1lXy5jX3N0cigpOworICAgIH0KKworfTsKKworfSAvL25hbWVzcGFjZSBuZGtIZWxwZXIKZGlmZiAtLWdpdCBhL25kay9zb3VyY2VzL2FuZHJvaWQvbmRrX2hlbHBlci9OREtIZWxwZXIuaCBiL25kay9zb3VyY2VzL2FuZHJvaWQvbmRrX2hlbHBlci9OREtIZWxwZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZTJhMTBlCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3NvdXJjZXMvYW5kcm9pZC9uZGtfaGVscGVyL05ES0hlbHBlci5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgX05ES1NVUFBPUlRfSAorI2RlZmluZSBfTkRLU1VQUE9SVF9ICisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIE5ESyBzdXBwb3J0IGhlbHBlcnMKKyAqIFV0aWxpdHkgbW9kdWxlIHRvIHByb3ZpZGUgbWlzYyBmdW5jdGlvbmFsaXRpZXMgdGhhdCBpcyB1c2VkIHdpZGVseSBpbiBuYXRpdmUgYXBwbGljYXRpb25zLAorICogc3VjaCBhcyBnZXN0dXJlIGRldGVjdGlvbiwgam5pIGJyaWRnZSwgb3BlbkdMIGNvbnRleHQgZXRjLgorICoKKyAqIFRoZSBwdXJwb3NlIG9mIHRoaXMgbW9kdWxlIGlzLAorICogLSBQcm92aWRlIGJlc3QgcHJhY3RpY2VzIHVzaW5nIE5ESworICogLSBQcm92aWRlIGhhbmR5IHV0aWxpdHkgZnVuY3Rpb25zIGZvciBOREsgZGV2ZWxvcG1lbnQKKyAqIC0gTWFrZSBOREsgc2FtcGxlcyBtb3JlIHNpbXBsZXIgYW5kIHJlYWRhYmxlCisgKi8KKyNpbmNsdWRlICJnbDNzdHViLmgiICAgICAgICAgICAgLy9HTEVTMyBzdHVicworI2luY2x1ZGUgIkdMQ29udGV4dC5oIiAgICAgICAgICAvL0VHTCAmIE9wZW5HTCBtYW5hZ2VyCisjaW5jbHVkZSAic2hhZGVyLmgiICAgICAgICAgICAgIC8vU2hhZGVyIGNvbXBpbGVyIHN1cHBvcnQKKyNpbmNsdWRlICJ2ZWNtYXRoLmgiICAgICAgICAgICAgLy9WZWN0b3IgbWF0aCBzdXBwb3J0LCBDKysgaW1wbGVtZW50YXRpb24gbiBjdXJyZW50IHZlcnNpb24KKyNpbmNsdWRlICJ0YXBDYW1lcmEuaCIgICAgICAgICAgLy9UYXAvUGluY2ggY2FtZXJhIGNvbnRyb2wKKyNpbmNsdWRlICJKTklIZWxwZXIuaCIgICAgICAgICAgLy9KTkkgc3VwcG9ydAorI2luY2x1ZGUgImdlc3R1cmVEZXRlY3Rvci5oIiAgICAvL1RhcC9Eb3VibGV0YXAvUGluY2ggZGV0ZWN0b3IKKyNpbmNsdWRlICJwZXJmTW9uaXRvci5oIiAgICAgICAgLy9GUFMgY291bnRlcgorI2luY2x1ZGUgImludGVycG9sYXRvci5oIiAgICAgICAvL0ludGVycG9sYXRvcgorI2VuZGlmCmRpZmYgLS1naXQgYS9uZGsvc291cmNlcy9hbmRyb2lkL25ka19oZWxwZXIvZ2VzdHVyZURldGVjdG9yLmNwcCBiL25kay9zb3VyY2VzL2FuZHJvaWQvbmRrX2hlbHBlci9nZXN0dXJlRGV0ZWN0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5ZDgyMTIKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvc291cmNlcy9hbmRyb2lkL25ka19oZWxwZXIvZ2VzdHVyZURldGVjdG9yLmNwcApAQCAtMCwwICsxLDM1MCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgImdlc3R1cmVEZXRlY3Rvci5oIgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBnZXN0dXJlRGV0ZWN0b3IuY3BwCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCituYW1lc3BhY2UgbmRrX2hlbHBlcgoreworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBpbmNsdWRlcworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBHZXN0dXJlRGV0ZWN0b3IKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0dlc3R1cmVEZXRlY3Rvcjo6R2VzdHVyZURldGVjdG9yKCkKK3sKKyAgICBkcF9mYWN0b3JfID0gMS5mOworfQorCit2b2lkIEdlc3R1cmVEZXRlY3Rvcjo6U2V0Q29uZmlndXJhdGlvbiggQUNvbmZpZ3VyYXRpb24qIGNvbmZpZyApCit7CisgICAgZHBfZmFjdG9yXyA9IDE2MC5mIC8gQUNvbmZpZ3VyYXRpb25fZ2V0RGVuc2l0eSggY29uZmlnICk7Cit9CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFRhcERldGVjdG9yCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitHRVNUVVJFX1NUQVRFIFRhcERldGVjdG9yOjpEZXRlY3QoIGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQgKQoreworICAgIGlmKCBBTW90aW9uRXZlbnRfZ2V0UG9pbnRlckNvdW50KCBtb3Rpb25fZXZlbnQgKSA+IDEgKQorICAgIHsKKyAgICAgICAgLy9Pbmx5IHN1cHBvcnQgc2luZ2xlIHRvdWNoCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpbnQzMl90IGFjdGlvbiA9IEFNb3Rpb25FdmVudF9nZXRBY3Rpb24oIG1vdGlvbl9ldmVudCApOworICAgIHVuc2lnbmVkIGludCBmbGFncyA9IGFjdGlvbiAmIEFNT1RJT05fRVZFTlRfQUNUSU9OX01BU0s7CisgICAgc3dpdGNoKCBmbGFncyApCisgICAgeworICAgIGNhc2UgQU1PVElPTl9FVkVOVF9BQ1RJT05fRE9XTjoKKyAgICAgICAgZG93bl9wb2ludGVyX2lkXyA9IEFNb3Rpb25FdmVudF9nZXRQb2ludGVySWQoIG1vdGlvbl9ldmVudCwgMCApOworICAgICAgICBkb3duX3hfID0gQU1vdGlvbkV2ZW50X2dldFgoIG1vdGlvbl9ldmVudCwgMCApOworICAgICAgICBkb3duX3lfID0gQU1vdGlvbkV2ZW50X2dldFkoIG1vdGlvbl9ldmVudCwgMCApOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFNT1RJT05fRVZFTlRfQUNUSU9OX1VQOgorICAgIHsKKyAgICAgICAgaW50NjRfdCBldmVudFRpbWUgPSBBTW90aW9uRXZlbnRfZ2V0RXZlbnRUaW1lKCBtb3Rpb25fZXZlbnQgKTsKKyAgICAgICAgaW50NjRfdCBkb3duVGltZSA9IEFNb3Rpb25FdmVudF9nZXREb3duVGltZSggbW90aW9uX2V2ZW50ICk7CisgICAgICAgIGlmKCBldmVudFRpbWUgLSBkb3duVGltZSA8PSBUQVBfVElNRU9VVCApCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmKCBkb3duX3BvaW50ZXJfaWRfID09IEFNb3Rpb25FdmVudF9nZXRQb2ludGVySWQoIG1vdGlvbl9ldmVudCwgMCApICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBmbG9hdCB4ID0gQU1vdGlvbkV2ZW50X2dldFgoIG1vdGlvbl9ldmVudCwgMCApIC0gZG93bl94XzsKKyAgICAgICAgICAgICAgICBmbG9hdCB5ID0gQU1vdGlvbkV2ZW50X2dldFkoIG1vdGlvbl9ldmVudCwgMCApIC0gZG93bl95XzsKKyAgICAgICAgICAgICAgICBpZiggeCAqIHggKyB5ICogeSA8IFRPVUNIX1NMT1AgKiBUT1VDSF9TTE9QICogZHBfZmFjdG9yXyApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBMT0dJKCAiVGFwRGV0ZWN0b3I6IFRhcCBkZXRlY3RlZCIgKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEdFU1RVUkVfU1RBVEVfQUNUSU9OOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9CisgICAgfQorICAgIHJldHVybiBHRVNUVVJFX1NUQVRFX05PTkU7Cit9CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIERvdWJsZXRhcERldGVjdG9yCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitHRVNUVVJFX1NUQVRFIERvdWJsZXRhcERldGVjdG9yOjpEZXRlY3QoIGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQgKQoreworICAgIGlmKCBBTW90aW9uRXZlbnRfZ2V0UG9pbnRlckNvdW50KCBtb3Rpb25fZXZlbnQgKSA+IDEgKQorICAgIHsKKyAgICAgICAgLy9Pbmx5IHN1cHBvcnQgc2luZ2xlIGRvdWJsZSB0YXAKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGJvb2wgdGFwX2RldGVjdGVkID0gdGFwX2RldGVjdG9yXy5EZXRlY3QoIG1vdGlvbl9ldmVudCApOworCisgICAgaW50MzJfdCBhY3Rpb24gPSBBTW90aW9uRXZlbnRfZ2V0QWN0aW9uKCBtb3Rpb25fZXZlbnQgKTsKKyAgICB1bnNpZ25lZCBpbnQgZmxhZ3MgPSBhY3Rpb24gJiBBTU9USU9OX0VWRU5UX0FDVElPTl9NQVNLOworICAgIHN3aXRjaCggZmxhZ3MgKQorICAgIHsKKyAgICBjYXNlIEFNT1RJT05fRVZFTlRfQUNUSU9OX0RPV046CisgICAgeworICAgICAgICBpbnQ2NF90IGV2ZW50VGltZSA9IEFNb3Rpb25FdmVudF9nZXRFdmVudFRpbWUoIG1vdGlvbl9ldmVudCApOworICAgICAgICBpZiggZXZlbnRUaW1lIC0gbGFzdF90YXBfdGltZV8gPD0gRE9VQkxFX1RBUF9USU1FT1VUICkKKyAgICAgICAgeworICAgICAgICAgICAgZmxvYXQgeCA9IEFNb3Rpb25FdmVudF9nZXRYKCBtb3Rpb25fZXZlbnQsIDAgKSAtIGxhc3RfdGFwX3hfOworICAgICAgICAgICAgZmxvYXQgeSA9IEFNb3Rpb25FdmVudF9nZXRZKCBtb3Rpb25fZXZlbnQsIDAgKSAtIGxhc3RfdGFwX3lfOworICAgICAgICAgICAgaWYoIHggKiB4ICsgeSAqIHkgPCBET1VCTEVfVEFQX1NMT1AgKiBET1VCTEVfVEFQX1NMT1AgKiBkcF9mYWN0b3JfICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBMT0dJKCAiRG91YmxldGFwRGV0ZWN0b3I6IERvdWJsZXRhcCBkZXRlY3RlZCIgKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gR0VTVFVSRV9TVEFURV9BQ1RJT047CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgQU1PVElPTl9FVkVOVF9BQ1RJT05fVVA6CisgICAgICAgIGlmKCB0YXBfZGV0ZWN0ZWQgKQorICAgICAgICB7CisgICAgICAgICAgICBsYXN0X3RhcF90aW1lXyA9IEFNb3Rpb25FdmVudF9nZXRFdmVudFRpbWUoIG1vdGlvbl9ldmVudCApOworICAgICAgICAgICAgbGFzdF90YXBfeF8gPSBBTW90aW9uRXZlbnRfZ2V0WCggbW90aW9uX2V2ZW50LCAwICk7CisgICAgICAgICAgICBsYXN0X3RhcF95XyA9IEFNb3Rpb25FdmVudF9nZXRZKCBtb3Rpb25fZXZlbnQsIDAgKTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIEdFU1RVUkVfU1RBVEVfTk9ORTsKK30KKwordm9pZCBEb3VibGV0YXBEZXRlY3Rvcjo6U2V0Q29uZmlndXJhdGlvbiggQUNvbmZpZ3VyYXRpb24qIGNvbmZpZyApCit7CisgICAgZHBfZmFjdG9yXyA9IDE2MC5mIC8gQUNvbmZpZ3VyYXRpb25fZ2V0RGVuc2l0eSggY29uZmlnICk7CisgICAgdGFwX2RldGVjdG9yXy5TZXRDb25maWd1cmF0aW9uKCBjb25maWcgKTsKK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUGluY2hEZXRlY3RvcgorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitpbnQzMl90IFBpbmNoRGV0ZWN0b3I6OkZpbmRJbmRleCggY29uc3QgQUlucHV0RXZlbnQqIGV2ZW50LCBpbnQzMl90IGlkICkKK3sKKyAgICBpbnQzMl90IGNvdW50ID0gQU1vdGlvbkV2ZW50X2dldFBvaW50ZXJDb3VudCggZXZlbnQgKTsKKyAgICBmb3IoIHVpbnQzMl90IGkgPSAwOyBpIDwgY291bnQ7ICsraSApCisgICAgeworICAgICAgICBpZiggaWQgPT0gQU1vdGlvbkV2ZW50X2dldFBvaW50ZXJJZCggZXZlbnQsIGkgKSApCisgICAgICAgICAgICByZXR1cm4gaTsKKyAgICB9CisgICAgcmV0dXJuIC0xOworfQorCitHRVNUVVJFX1NUQVRFIFBpbmNoRGV0ZWN0b3I6OkRldGVjdCggY29uc3QgQUlucHV0RXZlbnQqIGV2ZW50ICkKK3sKKyAgICBHRVNUVVJFX1NUQVRFIHJldCA9IEdFU1RVUkVfU1RBVEVfTk9ORTsKKyAgICBpbnQzMl90IGFjdGlvbiA9IEFNb3Rpb25FdmVudF9nZXRBY3Rpb24oIGV2ZW50ICk7CisgICAgdWludDMyX3QgZmxhZ3MgPSBhY3Rpb24gJiBBTU9USU9OX0VWRU5UX0FDVElPTl9NQVNLOworICAgIGV2ZW50XyA9IGV2ZW50OworCisgICAgaW50MzJfdCBjb3VudCA9IEFNb3Rpb25FdmVudF9nZXRQb2ludGVyQ291bnQoIGV2ZW50ICk7CisgICAgc3dpdGNoKCBmbGFncyApCisgICAgeworICAgIGNhc2UgQU1PVElPTl9FVkVOVF9BQ1RJT05fRE9XTjoKKyAgICAgICAgdmVjX3BvaW50ZXJzXy5wdXNoX2JhY2soIEFNb3Rpb25FdmVudF9nZXRQb2ludGVySWQoIGV2ZW50LCAwICkgKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBTU9USU9OX0VWRU5UX0FDVElPTl9QT0lOVEVSX0RPV046CisgICAgeworICAgICAgICBpbnQzMl90IGlJbmRleCA9IChhY3Rpb24gJiBBTU9USU9OX0VWRU5UX0FDVElPTl9QT0lOVEVSX0lOREVYX01BU0spCisgICAgICAgICAgICAgICAgPj4gQU1PVElPTl9FVkVOVF9BQ1RJT05fUE9JTlRFUl9JTkRFWF9TSElGVDsKKyAgICAgICAgdmVjX3BvaW50ZXJzXy5wdXNoX2JhY2soIEFNb3Rpb25FdmVudF9nZXRQb2ludGVySWQoIGV2ZW50LCBpSW5kZXggKSApOworICAgICAgICBpZiggY291bnQgPT0gMiApCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vU3RhcnQgbmV3IHBpbmNoCisgICAgICAgICAgICByZXQgPSBHRVNUVVJFX1NUQVRFX1NUQVJUOworICAgICAgICB9CisgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFNT1RJT05fRVZFTlRfQUNUSU9OX1VQOgorICAgICAgICB2ZWNfcG9pbnRlcnNfLnBvcF9iYWNrKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQU1PVElPTl9FVkVOVF9BQ1RJT05fUE9JTlRFUl9VUDoKKyAgICB7CisgICAgICAgIGludDMyX3QgaW5kZXggPSAoYWN0aW9uICYgQU1PVElPTl9FVkVOVF9BQ1RJT05fUE9JTlRFUl9JTkRFWF9NQVNLKQorICAgICAgICAgICAgICAgID4+IEFNT1RJT05fRVZFTlRfQUNUSU9OX1BPSU5URVJfSU5ERVhfU0hJRlQ7CisgICAgICAgIGludDMyX3QgcmVsZWFzZWRfcG9pbnRlcl9pZCA9IEFNb3Rpb25FdmVudF9nZXRQb2ludGVySWQoIGV2ZW50LCBpbmRleCApOworCisgICAgICAgIHN0ZDo6dmVjdG9yPGludDMyX3Q+OjppdGVyYXRvciBpdCA9IHZlY19wb2ludGVyc18uYmVnaW4oKTsKKyAgICAgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD46Oml0ZXJhdG9yIGl0X2VuZCA9IHZlY19wb2ludGVyc18uZW5kKCk7CisgICAgICAgIGludDMyX3QgaSA9IDA7CisgICAgICAgIGZvciggOyBpdCAhPSBpdF9lbmQ7ICsraXQsICsraSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmKCAqaXQgPT0gcmVsZWFzZWRfcG9pbnRlcl9pZCApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdmVjX3BvaW50ZXJzXy5lcmFzZSggaXQgKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmKCBpIDw9IDEgKQorICAgICAgICB7CisgICAgICAgICAgICAvL1Jlc2V0IHBpbmNoIG9yIGRyYWcKKyAgICAgICAgICAgIGlmKCBjb3VudCAhPSAyICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvL1N0YXJ0IG5ldyBwaW5jaAorICAgICAgICAgICAgICAgIHJldCA9IEdFU1RVUkVfU1RBVEVfU1RBUlQgfCBHRVNUVVJFX1NUQVRFX0VORDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBTU9USU9OX0VWRU5UX0FDVElPTl9NT1ZFOgorICAgICAgICBzd2l0Y2goIGNvdW50ICkKKyAgICAgICAgeworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIC8vTXVsdGkgdG91Y2gKKyAgICAgICAgICAgIHJldCA9IEdFU1RVUkVfU1RBVEVfTU9WRTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQU1PVElPTl9FVkVOVF9BQ1RJT05fQ0FOQ0VMOgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gcmV0OworfQorCitib29sIFBpbmNoRGV0ZWN0b3I6OkdldFBvaW50ZXJzKCBWZWMyJiB2MSwgVmVjMiYgdjIgKQoreworICAgIGlmKCB2ZWNfcG9pbnRlcnNfLnNpemUoKSA8IDIgKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpbnQzMl90IGluZGV4ID0gRmluZEluZGV4KCBldmVudF8sIHZlY19wb2ludGVyc19bMF0gKTsKKyAgICBpZiggaW5kZXggPT0gLTEgKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBmbG9hdCB4ID0gQU1vdGlvbkV2ZW50X2dldFgoIGV2ZW50XywgaW5kZXggKTsKKyAgICBmbG9hdCB5ID0gQU1vdGlvbkV2ZW50X2dldFkoIGV2ZW50XywgaW5kZXggKTsKKworICAgIGluZGV4ID0gRmluZEluZGV4KCBldmVudF8sIHZlY19wb2ludGVyc19bMV0gKTsKKyAgICBpZiggaW5kZXggPT0gLTEgKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBmbG9hdCB4MiA9IEFNb3Rpb25FdmVudF9nZXRYKCBldmVudF8sIGluZGV4ICk7CisgICAgZmxvYXQgeTIgPSBBTW90aW9uRXZlbnRfZ2V0WSggZXZlbnRfLCBpbmRleCApOworCisgICAgdjEgPSBWZWMyKCB4LCB5ICk7CisgICAgdjIgPSBWZWMyKCB4MiwgeTIgKTsKKworICAgIHJldHVybiB0cnVlOworfQorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBEcmFnRGV0ZWN0b3IKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworaW50MzJfdCBEcmFnRGV0ZWN0b3I6OkZpbmRJbmRleCggY29uc3QgQUlucHV0RXZlbnQqIGV2ZW50LCBpbnQzMl90IGlkICkKK3sKKyAgICBpbnQzMl90IGNvdW50ID0gQU1vdGlvbkV2ZW50X2dldFBvaW50ZXJDb3VudCggZXZlbnQgKTsKKyAgICBmb3IoIHVpbnQzMl90IGkgPSAwOyBpIDwgY291bnQ7ICsraSApCisgICAgeworICAgICAgICBpZiggaWQgPT0gQU1vdGlvbkV2ZW50X2dldFBvaW50ZXJJZCggZXZlbnQsIGkgKSApCisgICAgICAgICAgICByZXR1cm4gaTsKKyAgICB9CisgICAgcmV0dXJuIC0xOworfQorCitHRVNUVVJFX1NUQVRFIERyYWdEZXRlY3Rvcjo6RGV0ZWN0KCBjb25zdCBBSW5wdXRFdmVudCogZXZlbnQgKQoreworICAgIEdFU1RVUkVfU1RBVEUgcmV0ID0gR0VTVFVSRV9TVEFURV9OT05FOworICAgIGludDMyX3QgYWN0aW9uID0gQU1vdGlvbkV2ZW50X2dldEFjdGlvbiggZXZlbnQgKTsKKyAgICBpbnQzMl90IGluZGV4ID0gKGFjdGlvbiAmIEFNT1RJT05fRVZFTlRfQUNUSU9OX1BPSU5URVJfSU5ERVhfTUFTSykKKyAgICAgICAgICAgID4+IEFNT1RJT05fRVZFTlRfQUNUSU9OX1BPSU5URVJfSU5ERVhfU0hJRlQ7CisgICAgdWludDMyX3QgZmxhZ3MgPSBhY3Rpb24gJiBBTU9USU9OX0VWRU5UX0FDVElPTl9NQVNLOworICAgIGV2ZW50XyA9IGV2ZW50OworCisgICAgaW50MzJfdCBjb3VudCA9IEFNb3Rpb25FdmVudF9nZXRQb2ludGVyQ291bnQoIGV2ZW50ICk7CisgICAgc3dpdGNoKCBmbGFncyApCisgICAgeworICAgIGNhc2UgQU1PVElPTl9FVkVOVF9BQ1RJT05fRE9XTjoKKyAgICAgICAgdmVjX3BvaW50ZXJzXy5wdXNoX2JhY2soIEFNb3Rpb25FdmVudF9nZXRQb2ludGVySWQoIGV2ZW50LCAwICkgKTsKKyAgICAgICAgcmV0ID0gR0VTVFVSRV9TVEFURV9TVEFSVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBTU9USU9OX0VWRU5UX0FDVElPTl9QT0lOVEVSX0RPV046CisgICAgICAgIHZlY19wb2ludGVyc18ucHVzaF9iYWNrKCBBTW90aW9uRXZlbnRfZ2V0UG9pbnRlcklkKCBldmVudCwgaW5kZXggKSApOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFNT1RJT05fRVZFTlRfQUNUSU9OX1VQOgorICAgICAgICB2ZWNfcG9pbnRlcnNfLnBvcF9iYWNrKCk7CisgICAgICAgIHJldCA9IEdFU1RVUkVfU1RBVEVfRU5EOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFNT1RJT05fRVZFTlRfQUNUSU9OX1BPSU5URVJfVVA6CisgICAgeworICAgICAgICBpbnQzMl90IHJlbGVhc2VkX3BvaW50ZXJfaWQgPSBBTW90aW9uRXZlbnRfZ2V0UG9pbnRlcklkKCBldmVudCwgaW5kZXggKTsKKworICAgICAgICBzdGQ6OnZlY3RvcjxpbnQzMl90Pjo6aXRlcmF0b3IgaXQgPSB2ZWNfcG9pbnRlcnNfLmJlZ2luKCk7CisgICAgICAgIHN0ZDo6dmVjdG9yPGludDMyX3Q+OjppdGVyYXRvciBpdF9lbmQgPSB2ZWNfcG9pbnRlcnNfLmVuZCgpOworICAgICAgICBpbnQzMl90IGkgPSAwOworICAgICAgICBmb3IoIDsgaXQgIT0gaXRfZW5kOyArK2l0LCArK2kgKQorICAgICAgICB7CisgICAgICAgICAgICBpZiggKml0ID09IHJlbGVhc2VkX3BvaW50ZXJfaWQgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHZlY19wb2ludGVyc18uZXJhc2UoIGl0ICk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiggaSA8PSAxICkKKyAgICAgICAgeworICAgICAgICAgICAgLy9SZXNldCBwaW5jaCBvciBkcmFnCisgICAgICAgICAgICBpZiggY291bnQgPT0gMiApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0ID0gR0VTVFVSRV9TVEFURV9TVEFSVDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBBTU9USU9OX0VWRU5UX0FDVElPTl9NT1ZFOgorICAgICAgICBzd2l0Y2goIGNvdW50ICkKKyAgICAgICAgeworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAvL0RyYWcKKyAgICAgICAgICAgIHJldCA9IEdFU1RVUkVfU1RBVEVfTU9WRTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBTU9USU9OX0VWRU5UX0FDVElPTl9DQU5DRUw6CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJldHVybiByZXQ7Cit9CisKK2Jvb2wgRHJhZ0RldGVjdG9yOjpHZXRQb2ludGVyKCBWZWMyJiB2ICkKK3sKKyAgICBpZiggdmVjX3BvaW50ZXJzXy5zaXplKCkgPCAxICkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaW50MzJfdCBpSW5kZXggPSBGaW5kSW5kZXgoIGV2ZW50XywgdmVjX3BvaW50ZXJzX1swXSApOworICAgIGlmKCBpSW5kZXggPT0gLTEgKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBmbG9hdCB4ID0gQU1vdGlvbkV2ZW50X2dldFgoIGV2ZW50XywgaUluZGV4ICk7CisgICAgZmxvYXQgeSA9IEFNb3Rpb25FdmVudF9nZXRZKCBldmVudF8sIGlJbmRleCApOworCisgICAgdiA9IFZlYzIoIHgsIHkgKTsKKworICAgIHJldHVybiB0cnVlOworfQorCit9ICAgLy9uYW1lc3BhY2UgbmRrSGVscGVyCisKZGlmZiAtLWdpdCBhL25kay9zb3VyY2VzL2FuZHJvaWQvbmRrX2hlbHBlci9nZXN0dXJlRGV0ZWN0b3IuaCBiL25kay9zb3VyY2VzL2FuZHJvaWQvbmRrX2hlbHBlci9nZXN0dXJlRGV0ZWN0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YWU1ZDgwCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3NvdXJjZXMvYW5kcm9pZC9uZGtfaGVscGVyL2dlc3R1cmVEZXRlY3Rvci5oCkBAIC0wLDAgKzEsMTY2IEBACisvKgorICogQ29weXJpZ2h0IDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBnZXN0dXJlRGV0ZWN0b3IuaAorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorI2lmbmRlZiBHRVNUVVJFREVURUNUT1JfSF8KKyNkZWZpbmUgR0VTVFVSRURFVEVDVE9SX0hfCisKKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRlIDxhbmRyb2lkL3NlbnNvci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisjaW5jbHVkZSA8YW5kcm9pZF9uYXRpdmVfYXBwX2dsdWUuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL25hdGl2ZV93aW5kb3dfam5pLmg+CisjaW5jbHVkZSAiSk5JSGVscGVyLmgiCisjaW5jbHVkZSAidmVjbWF0aC5oIgorCituYW1lc3BhY2UgbmRrX2hlbHBlcgoreworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gQ29uc3RhbnRzCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitjb25zdCBpbnQzMl90IERPVUJMRV9UQVBfVElNRU9VVCA9IDMwMCAqIDEwMDAwMDA7Citjb25zdCBpbnQzMl90IFRBUF9USU1FT1VUID0gMTgwICogMTAwMDAwMDsKK2NvbnN0IGludDMyX3QgRE9VQkxFX1RBUF9TTE9QID0gMTAwOworY29uc3QgaW50MzJfdCBUT1VDSF9TTE9QID0gODsKKworZW51bQoreworICAgIEdFU1RVUkVfU1RBVEVfTk9ORSA9IDAsCisgICAgR0VTVFVSRV9TVEFURV9TVEFSVCA9IDEsCisgICAgR0VTVFVSRV9TVEFURV9NT1ZFID0gMiwKKyAgICBHRVNUVVJFX1NUQVRFX0VORCA9IDQsCisgICAgR0VTVFVSRV9TVEFURV9BQ1RJT04gPSAoR0VTVFVSRV9TVEFURV9TVEFSVCB8IEdFU1RVUkVfU1RBVEVfRU5EKSwKK307Cit0eXBlZGVmIGludDMyX3QgR0VTVFVSRV9TVEFURTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQmFzZSBjbGFzcyBvZiBHZXN0dXJlIERldGVjdG9ycworICogR2VzdHVyZURldGVjdG9ycyBoYW5kbGVzIGlucHV0IGV2ZW50cyBhbmQgZGV0ZWN0IGdlc3R1cmVzCisgKiBOb3RlIHRoYXQgZGlmZmVyZW50IGRldGVjdG9ycyBtYXkgZGV0ZWN0IGdlc3R1cmVzIHdpdGggYW4gZXZlbnQgYXQKKyAqIHNhbWUgdGltZS4gVGhlIGNhbGxlciBuZWVkcyB0byBtYW5hZ2UgZ2VzdHVyZSBwcmlvcml0eSBhY2NvcmRpbmdseQorICoKKyAqLworY2xhc3MgR2VzdHVyZURldGVjdG9yCit7Citwcm90ZWN0ZWQ6CisgICAgZmxvYXQgZHBfZmFjdG9yXzsKK3B1YmxpYzoKKyAgICBHZXN0dXJlRGV0ZWN0b3IoKTsKKyAgICB2aXJ0dWFsIH5HZXN0dXJlRGV0ZWN0b3IoKQorICAgIHsKKyAgICB9CisgICAgdmlydHVhbCB2b2lkIFNldENvbmZpZ3VyYXRpb24oIEFDb25maWd1cmF0aW9uKiBjb25maWcgKTsKKworICAgIHZpcnR1YWwgR0VTVFVSRV9TVEFURSBEZXRlY3QoIGNvbnN0IEFJbnB1dEV2ZW50KiBtb3Rpb25fZXZlbnQgKSA9IDA7Cit9OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBUYXAgZ2VzdHVyZSBkZXRlY3RvcgorICogUmV0dXJucyBHRVNUVVJFX1NUQVRFX0FDVElPTiB3aGVuIGEgdGFwIGdlc3R1cmUgaXMgZGV0ZWN0ZWQKKyAqCisgKi8KK2NsYXNzIFRhcERldGVjdG9yOiBwdWJsaWMgR2VzdHVyZURldGVjdG9yCit7Citwcml2YXRlOgorICAgIGludDMyX3QgZG93bl9wb2ludGVyX2lkXzsKKyAgICBmbG9hdCBkb3duX3hfOworICAgIGZsb2F0IGRvd25feV87CitwdWJsaWM6CisgICAgVGFwRGV0ZWN0b3IoKQorICAgIHsKKyAgICB9CisgICAgdmlydHVhbCB+VGFwRGV0ZWN0b3IoKQorICAgIHsKKyAgICB9CisgICAgdmlydHVhbCBHRVNUVVJFX1NUQVRFIERldGVjdCggY29uc3QgQUlucHV0RXZlbnQqIG1vdGlvbl9ldmVudCApOworfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogUGluY2ggZ2VzdHVyZSBkZXRlY3RvcgorICogUmV0dXJucyBHRVNUVVJFX1NUQVRFX0FDVElPTiB3aGVuIGEgZG91YmxlLXRhcCBnZXN0dXJlIGlzIGRldGVjdGVkCisgKgorICovCitjbGFzcyBEb3VibGV0YXBEZXRlY3RvcjogcHVibGljIEdlc3R1cmVEZXRlY3RvcgoreworcHJpdmF0ZToKKyAgICBUYXBEZXRlY3RvciB0YXBfZGV0ZWN0b3JfOworICAgIGludDY0X3QgbGFzdF90YXBfdGltZV87CisgICAgZmxvYXQgbGFzdF90YXBfeF87CisgICAgZmxvYXQgbGFzdF90YXBfeV87CisKK3B1YmxpYzoKKyAgICBEb3VibGV0YXBEZXRlY3RvcigpCisgICAgeworICAgIH0KKyAgICB2aXJ0dWFsIH5Eb3VibGV0YXBEZXRlY3RvcigpCisgICAgeworICAgIH0KKyAgICB2aXJ0dWFsIEdFU1RVUkVfU1RBVEUgRGV0ZWN0KCBjb25zdCBBSW5wdXRFdmVudCogbW90aW9uX2V2ZW50ICk7CisgICAgdmlydHVhbCB2b2lkIFNldENvbmZpZ3VyYXRpb24oIEFDb25maWd1cmF0aW9uKiBjb25maWcgKTsKK307CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIERvdWJsZSBnZXN0dXJlIGRldGVjdG9yCisgKiBSZXR1cm5zIHBpbmNoIGdlc3R1cmUgc3RhdGUgd2hlbiBhIHBpbmNoIGdlc3R1cmUgaXMgZGV0ZWN0ZWQKKyAqIFRoZSBjbGFzcyBoYW5kbGVzIG11bHRpcGxlIHRvdWNoZXMgbW9yZSB0aGFuIDIKKyAqIFdoZW4gdGhlIGZpbmdlciAxLDIsMyBhcmUgdGFwcGVkIGFuZCB0aGVuIGZpbmdlciAxIGlzIHJlbGVhc2VkLAorICogdGhlIGRldGVjdG9yIHN0YXJ0IG5ldyBwaW5jaCBnZXN0dXJlIHdpdGggZmluZ2VyIDIgJiAzLgorICovCitjbGFzcyBQaW5jaERldGVjdG9yOiBwdWJsaWMgR2VzdHVyZURldGVjdG9yCit7Citwcml2YXRlOgorICAgIGludDMyX3QgRmluZEluZGV4KCBjb25zdCBBSW5wdXRFdmVudCogZXZlbnQsIGludDMyX3QgaWQgKTsKKyAgICBjb25zdCBBSW5wdXRFdmVudCogZXZlbnRfOworICAgIHN0ZDo6dmVjdG9yPGludDMyX3Q+IHZlY19wb2ludGVyc187CisKK3B1YmxpYzoKKyAgICBQaW5jaERldGVjdG9yKCkKKyAgICB7CisgICAgfQorICAgIHZpcnR1YWwgflBpbmNoRGV0ZWN0b3IoKQorICAgIHsKKyAgICB9CisgICAgdmlydHVhbCBHRVNUVVJFX1NUQVRFIERldGVjdCggY29uc3QgQUlucHV0RXZlbnQqIGV2ZW50ICk7CisgICAgYm9vbCBHZXRQb2ludGVycyggVmVjMiYgdjEsIFZlYzImIHYyICk7Cit9OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBEcmFnIGdlc3R1cmUgZGV0ZWN0b3IKKyAqIFJldHVybnMgZHJhZyBnZXN0dXJlIHN0YXRlIHdoZW4gYSBkcmFnLXRhcCBnZXN0dXJlIGlzIGRldGVjdGVkCisgKgorICovCitjbGFzcyBEcmFnRGV0ZWN0b3I6IHB1YmxpYyBHZXN0dXJlRGV0ZWN0b3IKK3sKK3ByaXZhdGU6CisgICAgaW50MzJfdCBGaW5kSW5kZXgoIGNvbnN0IEFJbnB1dEV2ZW50KiBldmVudCwgaW50MzJfdCBpZCApOworICAgIGNvbnN0IEFJbnB1dEV2ZW50KiBldmVudF87CisgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4gdmVjX3BvaW50ZXJzXzsKK3B1YmxpYzoKKyAgICBEcmFnRGV0ZWN0b3IoKQorICAgIHsKKyAgICB9CisgICAgdmlydHVhbCB+RHJhZ0RldGVjdG9yKCkKKyAgICB7CisgICAgfQorICAgIHZpcnR1YWwgR0VTVFVSRV9TVEFURSBEZXRlY3QoIGNvbnN0IEFJbnB1dEV2ZW50KiBldmVudCApOworICAgIGJvb2wgR2V0UG9pbnRlciggVmVjMiYgdiApOworfTsKKworfSAgIC8vbmFtZXNwYWNlIG5ka0hlbHBlcgorI2VuZGlmIC8qIEdFU1RVUkVERVRFQ1RPUl9IXyAqLwpkaWZmIC0tZ2l0IGEvbmRrL3NvdXJjZXMvYW5kcm9pZC9uZGtfaGVscGVyL2dsM3N0dWIuYyBiL25kay9zb3VyY2VzL2FuZHJvaWQvbmRrX2hlbHBlci9nbDNzdHViLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzM0ZDc5MQotLS0gL2Rldi9udWxsCisrKyBiL25kay9zb3VyY2VzL2FuZHJvaWQvbmRrX2hlbHBlci9nbDNzdHViLmMKQEAgLTAsMCArMSw1MTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDxFR0wvZWdsLmg+CisjaW5jbHVkZSAiZ2wzc3R1Yi5oIgorCitHTGJvb2xlYW4gZ2wzc3R1YkluaXQoKQoreworI2RlZmluZSBGSU5EX1BST0MocykgcyA9ICh2b2lkKillZ2xHZXRQcm9jQWRkcmVzcygjcyk7CisgICAgRklORF9QUk9DKCBnbFJlYWRCdWZmZXIgKTsKKyAgICBGSU5EX1BST0MoIGdsRHJhd1JhbmdlRWxlbWVudHMgKTsKKyAgICBGSU5EX1BST0MoIGdsVGV4SW1hZ2UzRCApOworICAgIEZJTkRfUFJPQyggZ2xUZXhTdWJJbWFnZTNEICk7CisgICAgRklORF9QUk9DKCBnbENvcHlUZXhTdWJJbWFnZTNEICk7CisgICAgRklORF9QUk9DKCBnbENvbXByZXNzZWRUZXhJbWFnZTNEICk7CisgICAgRklORF9QUk9DKCBnbENvbXByZXNzZWRUZXhTdWJJbWFnZTNEICk7CisgICAgRklORF9QUk9DKCBnbEdlblF1ZXJpZXMgKTsKKyAgICBGSU5EX1BST0MoIGdsRGVsZXRlUXVlcmllcyApOworICAgIEZJTkRfUFJPQyggZ2xJc1F1ZXJ5ICk7CisgICAgRklORF9QUk9DKCBnbEJlZ2luUXVlcnkgKTsKKyAgICBGSU5EX1BST0MoIGdsRW5kUXVlcnkgKTsKKyAgICBGSU5EX1BST0MoIGdsR2V0UXVlcnlpdiApOworICAgIEZJTkRfUFJPQyggZ2xHZXRRdWVyeU9iamVjdHVpdiApOworICAgIEZJTkRfUFJPQyggZ2xVbm1hcEJ1ZmZlciApOworICAgIEZJTkRfUFJPQyggZ2xHZXRCdWZmZXJQb2ludGVydiApOworICAgIEZJTkRfUFJPQyggZ2xEcmF3QnVmZmVycyApOworICAgIEZJTkRfUFJPQyggZ2xVbmlmb3JtTWF0cml4MngzZnYgKTsKKyAgICBGSU5EX1BST0MoIGdsVW5pZm9ybU1hdHJpeDN4MmZ2ICk7CisgICAgRklORF9QUk9DKCBnbFVuaWZvcm1NYXRyaXgyeDRmdiApOworICAgIEZJTkRfUFJPQyggZ2xVbmlmb3JtTWF0cml4NHgyZnYgKTsKKyAgICBGSU5EX1BST0MoIGdsVW5pZm9ybU1hdHJpeDN4NGZ2ICk7CisgICAgRklORF9QUk9DKCBnbFVuaWZvcm1NYXRyaXg0eDNmdiApOworICAgIEZJTkRfUFJPQyggZ2xCbGl0RnJhbWVidWZmZXIgKTsKKyAgICBGSU5EX1BST0MoIGdsUmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlICk7CisgICAgRklORF9QUk9DKCBnbEZyYW1lYnVmZmVyVGV4dHVyZUxheWVyICk7CisgICAgRklORF9QUk9DKCBnbE1hcEJ1ZmZlclJhbmdlICk7CisgICAgRklORF9QUk9DKCBnbEZsdXNoTWFwcGVkQnVmZmVyUmFuZ2UgKTsKKyAgICBGSU5EX1BST0MoIGdsQmluZFZlcnRleEFycmF5ICk7CisgICAgRklORF9QUk9DKCBnbERlbGV0ZVZlcnRleEFycmF5cyApOworICAgIEZJTkRfUFJPQyggZ2xHZW5WZXJ0ZXhBcnJheXMgKTsKKyAgICBGSU5EX1BST0MoIGdsSXNWZXJ0ZXhBcnJheSApOworICAgIEZJTkRfUFJPQyggZ2xHZXRJbnRlZ2VyaV92ICk7CisgICAgRklORF9QUk9DKCBnbEJlZ2luVHJhbnNmb3JtRmVlZGJhY2sgKTsKKyAgICBGSU5EX1BST0MoIGdsRW5kVHJhbnNmb3JtRmVlZGJhY2sgKTsKKyAgICBGSU5EX1BST0MoIGdsQmluZEJ1ZmZlclJhbmdlICk7CisgICAgRklORF9QUk9DKCBnbEJpbmRCdWZmZXJCYXNlICk7CisgICAgRklORF9QUk9DKCBnbFRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZ3MgKTsKKyAgICBGSU5EX1BST0MoIGdsR2V0VHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5nICk7CisgICAgRklORF9QUk9DKCBnbFZlcnRleEF0dHJpYklQb2ludGVyICk7CisgICAgRklORF9QUk9DKCBnbEdldFZlcnRleEF0dHJpYklpdiApOworICAgIEZJTkRfUFJPQyggZ2xHZXRWZXJ0ZXhBdHRyaWJJdWl2ICk7CisgICAgRklORF9QUk9DKCBnbFZlcnRleEF0dHJpYkk0aSApOworICAgIEZJTkRfUFJPQyggZ2xWZXJ0ZXhBdHRyaWJJNHVpICk7CisgICAgRklORF9QUk9DKCBnbFZlcnRleEF0dHJpYkk0aXYgKTsKKyAgICBGSU5EX1BST0MoIGdsVmVydGV4QXR0cmliSTR1aXYgKTsKKyAgICBGSU5EX1BST0MoIGdsR2V0VW5pZm9ybXVpdiApOworICAgIEZJTkRfUFJPQyggZ2xHZXRGcmFnRGF0YUxvY2F0aW9uICk7CisgICAgRklORF9QUk9DKCBnbFVuaWZvcm0xdWkgKTsKKyAgICBGSU5EX1BST0MoIGdsVW5pZm9ybTJ1aSApOworICAgIEZJTkRfUFJPQyggZ2xVbmlmb3JtM3VpICk7CisgICAgRklORF9QUk9DKCBnbFVuaWZvcm00dWkgKTsKKyAgICBGSU5EX1BST0MoIGdsVW5pZm9ybTF1aXYgKTsKKyAgICBGSU5EX1BST0MoIGdsVW5pZm9ybTJ1aXYgKTsKKyAgICBGSU5EX1BST0MoIGdsVW5pZm9ybTN1aXYgKTsKKyAgICBGSU5EX1BST0MoIGdsVW5pZm9ybTR1aXYgKTsKKyAgICBGSU5EX1BST0MoIGdsQ2xlYXJCdWZmZXJpdiApOworICAgIEZJTkRfUFJPQyggZ2xDbGVhckJ1ZmZlcnVpdiApOworICAgIEZJTkRfUFJPQyggZ2xDbGVhckJ1ZmZlcmZ2ICk7CisgICAgRklORF9QUk9DKCBnbENsZWFyQnVmZmVyZmkgKTsKKyAgICBGSU5EX1BST0MoIGdsR2V0U3RyaW5naSApOworICAgIEZJTkRfUFJPQyggZ2xDb3B5QnVmZmVyU3ViRGF0YSApOworICAgIEZJTkRfUFJPQyggZ2xHZXRVbmlmb3JtSW5kaWNlcyApOworICAgIEZJTkRfUFJPQyggZ2xHZXRBY3RpdmVVbmlmb3Jtc2l2ICk7CisgICAgRklORF9QUk9DKCBnbEdldFVuaWZvcm1CbG9ja0luZGV4ICk7CisgICAgRklORF9QUk9DKCBnbEdldEFjdGl2ZVVuaWZvcm1CbG9ja2l2ICk7CisgICAgRklORF9QUk9DKCBnbEdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUgKTsKKyAgICBGSU5EX1BST0MoIGdsVW5pZm9ybUJsb2NrQmluZGluZyApOworICAgIEZJTkRfUFJPQyggZ2xEcmF3QXJyYXlzSW5zdGFuY2VkICk7CisgICAgRklORF9QUk9DKCBnbERyYXdFbGVtZW50c0luc3RhbmNlZCApOworICAgIEZJTkRfUFJPQyggZ2xGZW5jZVN5bmMgKTsKKyAgICBGSU5EX1BST0MoIGdsSXNTeW5jICk7CisgICAgRklORF9QUk9DKCBnbERlbGV0ZVN5bmMgKTsKKyAgICBGSU5EX1BST0MoIGdsQ2xpZW50V2FpdFN5bmMgKTsKKyAgICBGSU5EX1BST0MoIGdsV2FpdFN5bmMgKTsKKyAgICBGSU5EX1BST0MoIGdsR2V0SW50ZWdlcjY0diApOworICAgIEZJTkRfUFJPQyggZ2xHZXRTeW5jaXYgKTsKKyAgICBGSU5EX1BST0MoIGdsR2V0SW50ZWdlcjY0aV92ICk7CisgICAgRklORF9QUk9DKCBnbEdldEJ1ZmZlclBhcmFtZXRlcmk2NHYgKTsKKyAgICBGSU5EX1BST0MoIGdsR2VuU2FtcGxlcnMgKTsKKyAgICBGSU5EX1BST0MoIGdsRGVsZXRlU2FtcGxlcnMgKTsKKyAgICBGSU5EX1BST0MoIGdsSXNTYW1wbGVyICk7CisgICAgRklORF9QUk9DKCBnbEJpbmRTYW1wbGVyICk7CisgICAgRklORF9QUk9DKCBnbFNhbXBsZXJQYXJhbWV0ZXJpICk7CisgICAgRklORF9QUk9DKCBnbFNhbXBsZXJQYXJhbWV0ZXJpdiApOworICAgIEZJTkRfUFJPQyggZ2xTYW1wbGVyUGFyYW1ldGVyZiApOworICAgIEZJTkRfUFJPQyggZ2xTYW1wbGVyUGFyYW1ldGVyZnYgKTsKKyAgICBGSU5EX1BST0MoIGdsR2V0U2FtcGxlclBhcmFtZXRlcml2ICk7CisgICAgRklORF9QUk9DKCBnbEdldFNhbXBsZXJQYXJhbWV0ZXJmdiApOworICAgIEZJTkRfUFJPQyggZ2xWZXJ0ZXhBdHRyaWJEaXZpc29yICk7CisgICAgRklORF9QUk9DKCBnbEJpbmRUcmFuc2Zvcm1GZWVkYmFjayApOworICAgIEZJTkRfUFJPQyggZ2xEZWxldGVUcmFuc2Zvcm1GZWVkYmFja3MgKTsKKyAgICBGSU5EX1BST0MoIGdsR2VuVHJhbnNmb3JtRmVlZGJhY2tzICk7CisgICAgRklORF9QUk9DKCBnbElzVHJhbnNmb3JtRmVlZGJhY2sgKTsKKyAgICBGSU5EX1BST0MoIGdsUGF1c2VUcmFuc2Zvcm1GZWVkYmFjayApOworICAgIEZJTkRfUFJPQyggZ2xSZXN1bWVUcmFuc2Zvcm1GZWVkYmFjayApOworICAgIEZJTkRfUFJPQyggZ2xHZXRQcm9ncmFtQmluYXJ5ICk7CisgICAgRklORF9QUk9DKCBnbFByb2dyYW1CaW5hcnkgKTsKKyAgICBGSU5EX1BST0MoIGdsUHJvZ3JhbVBhcmFtZXRlcmkgKTsKKyAgICBGSU5EX1BST0MoIGdsSW52YWxpZGF0ZUZyYW1lYnVmZmVyICk7CisgICAgRklORF9QUk9DKCBnbEludmFsaWRhdGVTdWJGcmFtZWJ1ZmZlciApOworICAgIEZJTkRfUFJPQyggZ2xUZXhTdG9yYWdlMkQgKTsKKyAgICBGSU5EX1BST0MoIGdsVGV4U3RvcmFnZTNEICk7CisgICAgRklORF9QUk9DKCBnbEdldEludGVybmFsZm9ybWF0aXYgKTsKKyN1bmRlZiBGSU5EX1BST0MKKworICAgIGlmKCAhZ2xSZWFkQnVmZmVyIHx8ICFnbERyYXdSYW5nZUVsZW1lbnRzIHx8ICFnbFRleEltYWdlM0QgfHwgIWdsVGV4U3ViSW1hZ2UzRAorICAgICAgICAgICAgfHwgIWdsQ29weVRleFN1YkltYWdlM0QgfHwgIWdsQ29tcHJlc3NlZFRleEltYWdlM0QKKyAgICAgICAgICAgIHx8ICFnbENvbXByZXNzZWRUZXhTdWJJbWFnZTNEIHx8ICFnbEdlblF1ZXJpZXMgfHwgIWdsRGVsZXRlUXVlcmllcworICAgICAgICAgICAgfHwgIWdsSXNRdWVyeSB8fCAhZ2xCZWdpblF1ZXJ5IHx8ICFnbEVuZFF1ZXJ5IHx8ICFnbEdldFF1ZXJ5aXYKKyAgICAgICAgICAgIHx8ICFnbEdldFF1ZXJ5T2JqZWN0dWl2IHx8ICFnbFVubWFwQnVmZmVyIHx8ICFnbEdldEJ1ZmZlclBvaW50ZXJ2CisgICAgICAgICAgICB8fCAhZ2xEcmF3QnVmZmVycyB8fCAhZ2xVbmlmb3JtTWF0cml4MngzZnYgfHwgIWdsVW5pZm9ybU1hdHJpeDN4MmZ2CisgICAgICAgICAgICB8fCAhZ2xVbmlmb3JtTWF0cml4Mng0ZnYgfHwgIWdsVW5pZm9ybU1hdHJpeDR4MmZ2IHx8ICFnbFVuaWZvcm1NYXRyaXgzeDRmdgorICAgICAgICAgICAgfHwgIWdsVW5pZm9ybU1hdHJpeDR4M2Z2IHx8ICFnbEJsaXRGcmFtZWJ1ZmZlcgorICAgICAgICAgICAgfHwgIWdsUmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlIHx8ICFnbEZyYW1lYnVmZmVyVGV4dHVyZUxheWVyCisgICAgICAgICAgICB8fCAhZ2xNYXBCdWZmZXJSYW5nZSB8fCAhZ2xGbHVzaE1hcHBlZEJ1ZmZlclJhbmdlIHx8ICFnbEJpbmRWZXJ0ZXhBcnJheQorICAgICAgICAgICAgfHwgIWdsRGVsZXRlVmVydGV4QXJyYXlzIHx8ICFnbEdlblZlcnRleEFycmF5cyB8fCAhZ2xJc1ZlcnRleEFycmF5CisgICAgICAgICAgICB8fCAhZ2xHZXRJbnRlZ2VyaV92IHx8ICFnbEJlZ2luVHJhbnNmb3JtRmVlZGJhY2sgfHwgIWdsRW5kVHJhbnNmb3JtRmVlZGJhY2sKKyAgICAgICAgICAgIHx8ICFnbEJpbmRCdWZmZXJSYW5nZSB8fCAhZ2xCaW5kQnVmZmVyQmFzZSB8fCAhZ2xUcmFuc2Zvcm1GZWVkYmFja1ZhcnlpbmdzCisgICAgICAgICAgICB8fCAhZ2xHZXRUcmFuc2Zvcm1GZWVkYmFja1ZhcnlpbmcgfHwgIWdsVmVydGV4QXR0cmliSVBvaW50ZXIKKyAgICAgICAgICAgIHx8ICFnbEdldFZlcnRleEF0dHJpYklpdiB8fCAhZ2xHZXRWZXJ0ZXhBdHRyaWJJdWl2IHx8ICFnbFZlcnRleEF0dHJpYkk0aQorICAgICAgICAgICAgfHwgIWdsVmVydGV4QXR0cmliSTR1aSB8fCAhZ2xWZXJ0ZXhBdHRyaWJJNGl2IHx8ICFnbFZlcnRleEF0dHJpYkk0dWl2CisgICAgICAgICAgICB8fCAhZ2xHZXRVbmlmb3JtdWl2IHx8ICFnbEdldEZyYWdEYXRhTG9jYXRpb24gfHwgIWdsVW5pZm9ybTF1aQorICAgICAgICAgICAgfHwgIWdsVW5pZm9ybTJ1aSB8fCAhZ2xVbmlmb3JtM3VpIHx8ICFnbFVuaWZvcm00dWkgfHwgIWdsVW5pZm9ybTF1aXYKKyAgICAgICAgICAgIHx8ICFnbFVuaWZvcm0ydWl2IHx8ICFnbFVuaWZvcm0zdWl2IHx8ICFnbFVuaWZvcm00dWl2IHx8ICFnbENsZWFyQnVmZmVyaXYKKyAgICAgICAgICAgIHx8ICFnbENsZWFyQnVmZmVydWl2IHx8ICFnbENsZWFyQnVmZmVyZnYgfHwgIWdsQ2xlYXJCdWZmZXJmaSB8fCAhZ2xHZXRTdHJpbmdpCisgICAgICAgICAgICB8fCAhZ2xDb3B5QnVmZmVyU3ViRGF0YSB8fCAhZ2xHZXRVbmlmb3JtSW5kaWNlcyB8fCAhZ2xHZXRBY3RpdmVVbmlmb3Jtc2l2CisgICAgICAgICAgICB8fCAhZ2xHZXRVbmlmb3JtQmxvY2tJbmRleCB8fCAhZ2xHZXRBY3RpdmVVbmlmb3JtQmxvY2tpdgorICAgICAgICAgICAgfHwgIWdsR2V0QWN0aXZlVW5pZm9ybUJsb2NrTmFtZSB8fCAhZ2xVbmlmb3JtQmxvY2tCaW5kaW5nCisgICAgICAgICAgICB8fCAhZ2xEcmF3QXJyYXlzSW5zdGFuY2VkIHx8ICFnbERyYXdFbGVtZW50c0luc3RhbmNlZCB8fCAhZ2xGZW5jZVN5bmMKKyAgICAgICAgICAgIHx8ICFnbElzU3luYyB8fCAhZ2xEZWxldGVTeW5jIHx8ICFnbENsaWVudFdhaXRTeW5jIHx8ICFnbFdhaXRTeW5jCisgICAgICAgICAgICB8fCAhZ2xHZXRJbnRlZ2VyNjR2IHx8ICFnbEdldFN5bmNpdiB8fCAhZ2xHZXRJbnRlZ2VyNjRpX3YKKyAgICAgICAgICAgIHx8ICFnbEdldEJ1ZmZlclBhcmFtZXRlcmk2NHYgfHwgIWdsR2VuU2FtcGxlcnMgfHwgIWdsRGVsZXRlU2FtcGxlcnMKKyAgICAgICAgICAgIHx8ICFnbElzU2FtcGxlciB8fCAhZ2xCaW5kU2FtcGxlciB8fCAhZ2xTYW1wbGVyUGFyYW1ldGVyaQorICAgICAgICAgICAgfHwgIWdsU2FtcGxlclBhcmFtZXRlcml2IHx8ICFnbFNhbXBsZXJQYXJhbWV0ZXJmIHx8ICFnbFNhbXBsZXJQYXJhbWV0ZXJmdgorICAgICAgICAgICAgfHwgIWdsR2V0U2FtcGxlclBhcmFtZXRlcml2IHx8ICFnbEdldFNhbXBsZXJQYXJhbWV0ZXJmdgorICAgICAgICAgICAgfHwgIWdsVmVydGV4QXR0cmliRGl2aXNvciB8fCAhZ2xCaW5kVHJhbnNmb3JtRmVlZGJhY2sKKyAgICAgICAgICAgIHx8ICFnbERlbGV0ZVRyYW5zZm9ybUZlZWRiYWNrcyB8fCAhZ2xHZW5UcmFuc2Zvcm1GZWVkYmFja3MKKyAgICAgICAgICAgIHx8ICFnbElzVHJhbnNmb3JtRmVlZGJhY2sgfHwgIWdsUGF1c2VUcmFuc2Zvcm1GZWVkYmFjaworICAgICAgICAgICAgfHwgIWdsUmVzdW1lVHJhbnNmb3JtRmVlZGJhY2sgfHwgIWdsR2V0UHJvZ3JhbUJpbmFyeSB8fCAhZ2xQcm9ncmFtQmluYXJ5CisgICAgICAgICAgICB8fCAhZ2xQcm9ncmFtUGFyYW1ldGVyaSB8fCAhZ2xJbnZhbGlkYXRlRnJhbWVidWZmZXIKKyAgICAgICAgICAgIHx8ICFnbEludmFsaWRhdGVTdWJGcmFtZWJ1ZmZlciB8fCAhZ2xUZXhTdG9yYWdlMkQgfHwgIWdsVGV4U3RvcmFnZTNECisgICAgICAgICAgICB8fCAhZ2xHZXRJbnRlcm5hbGZvcm1hdGl2ICkKKyAgICB7CisgICAgICAgIHJldHVybiBHTF9GQUxTRTsKKyAgICB9CisKKyAgICByZXR1cm4gR0xfVFJVRTsKK30KKworLyogRnVuY3Rpb24gcG9pbnRlciBkZWZpbml0aW9ucyAqL0dMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbFJlYWRCdWZmZXIpKCBHTGVudW0gbW9kZSApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsRHJhd1JhbmdlRWxlbWVudHMpKCBHTGVudW0gbW9kZSwKKyAgICAgICAgR0x1aW50IHN0YXJ0LAorICAgICAgICBHTHVpbnQgZW5kLAorICAgICAgICBHTHNpemVpIGNvdW50LAorICAgICAgICBHTGVudW0gdHlwZSwKKyAgICAgICAgY29uc3QgR0x2b2lkKiBpbmRpY2VzICk7CitHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xUZXhJbWFnZTNEKSggR0xlbnVtIHRhcmdldCwKKyAgICAgICAgR0xpbnQgbGV2ZWwsCisgICAgICAgIEdMaW50IGludGVybmFsZm9ybWF0LAorICAgICAgICBHTHNpemVpIHdpZHRoLAorICAgICAgICBHTHNpemVpIGhlaWdodCwKKyAgICAgICAgR0xzaXplaSBkZXB0aCwKKyAgICAgICAgR0xpbnQgYm9yZGVyLAorICAgICAgICBHTGVudW0gZm9ybWF0LAorICAgICAgICBHTGVudW0gdHlwZSwKKyAgICAgICAgY29uc3QgR0x2b2lkKiBwaXhlbHMgKTsKK0dMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbFRleFN1YkltYWdlM0QpKCBHTGVudW0gdGFyZ2V0LAorICAgICAgICBHTGludCBsZXZlbCwKKyAgICAgICAgR0xpbnQgeG9mZnNldCwKKyAgICAgICAgR0xpbnQgeW9mZnNldCwKKyAgICAgICAgR0xpbnQgem9mZnNldCwKKyAgICAgICAgR0xzaXplaSB3aWR0aCwKKyAgICAgICAgR0xzaXplaSBoZWlnaHQsCisgICAgICAgIEdMc2l6ZWkgZGVwdGgsCisgICAgICAgIEdMZW51bSBmb3JtYXQsCisgICAgICAgIEdMZW51bSB0eXBlLAorICAgICAgICBjb25zdCBHTHZvaWQqIHBpeGVscyApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsQ29weVRleFN1YkltYWdlM0QpKCBHTGVudW0gdGFyZ2V0LAorICAgICAgICBHTGludCBsZXZlbCwKKyAgICAgICAgR0xpbnQgeG9mZnNldCwKKyAgICAgICAgR0xpbnQgeW9mZnNldCwKKyAgICAgICAgR0xpbnQgem9mZnNldCwKKyAgICAgICAgR0xpbnQgeCwKKyAgICAgICAgR0xpbnQgeSwKKyAgICAgICAgR0xzaXplaSB3aWR0aCwKKyAgICAgICAgR0xzaXplaSBoZWlnaHQgKTsKK0dMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbENvbXByZXNzZWRUZXhJbWFnZTNEKSggR0xlbnVtIHRhcmdldCwKKyAgICAgICAgR0xpbnQgbGV2ZWwsCisgICAgICAgIEdMZW51bSBpbnRlcm5hbGZvcm1hdCwKKyAgICAgICAgR0xzaXplaSB3aWR0aCwKKyAgICAgICAgR0xzaXplaSBoZWlnaHQsCisgICAgICAgIEdMc2l6ZWkgZGVwdGgsCisgICAgICAgIEdMaW50IGJvcmRlciwKKyAgICAgICAgR0xzaXplaSBpbWFnZVNpemUsCisgICAgICAgIGNvbnN0IEdMdm9pZCogZGF0YSApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsQ29tcHJlc3NlZFRleFN1YkltYWdlM0QpKCBHTGVudW0gdGFyZ2V0LAorICAgICAgICBHTGludCBsZXZlbCwKKyAgICAgICAgR0xpbnQgeG9mZnNldCwKKyAgICAgICAgR0xpbnQgeW9mZnNldCwKKyAgICAgICAgR0xpbnQgem9mZnNldCwKKyAgICAgICAgR0xzaXplaSB3aWR0aCwKKyAgICAgICAgR0xzaXplaSBoZWlnaHQsCisgICAgICAgIEdMc2l6ZWkgZGVwdGgsCisgICAgICAgIEdMZW51bSBmb3JtYXQsCisgICAgICAgIEdMc2l6ZWkgaW1hZ2VTaXplLAorICAgICAgICBjb25zdCBHTHZvaWQqIGRhdGEgKTsKK0dMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbEdlblF1ZXJpZXMpKCBHTHNpemVpIG4sIEdMdWludCogaWRzICk7CitHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xEZWxldGVRdWVyaWVzKSggR0xzaXplaSBuLCBjb25zdCBHTHVpbnQqIGlkcyApOworR0xfQVBJQ0FMTCBHTGJvb2xlYW4gKCogR0xfQVBJRU5UUlkgZ2xJc1F1ZXJ5KSggR0x1aW50IGlkICk7CitHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xCZWdpblF1ZXJ5KSggR0xlbnVtIHRhcmdldCwgR0x1aW50IGlkICk7CitHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xFbmRRdWVyeSkoIEdMZW51bSB0YXJnZXQgKTsKK0dMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbEdldFF1ZXJ5aXYpKCBHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsIEdMaW50KiBwYXJhbXMgKTsKK0dMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbEdldFF1ZXJ5T2JqZWN0dWl2KSggR0x1aW50IGlkLAorICAgICAgICBHTGVudW0gcG5hbWUsCisgICAgICAgIEdMdWludCogcGFyYW1zICk7CitHTF9BUElDQUxMIEdMYm9vbGVhbiAoKiBHTF9BUElFTlRSWSBnbFVubWFwQnVmZmVyKSggR0xlbnVtIHRhcmdldCApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsR2V0QnVmZmVyUG9pbnRlcnYpKCBHTGVudW0gdGFyZ2V0LAorICAgICAgICBHTGVudW0gcG5hbWUsCisgICAgICAgIEdMdm9pZCoqIHBhcmFtcyApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsRHJhd0J1ZmZlcnMpKCBHTHNpemVpIG4sIGNvbnN0IEdMZW51bSogYnVmcyApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsVW5pZm9ybU1hdHJpeDJ4M2Z2KSggR0xpbnQgbG9jYXRpb24sCisgICAgICAgIEdMc2l6ZWkgY291bnQsCisgICAgICAgIEdMYm9vbGVhbiB0cmFuc3Bvc2UsCisgICAgICAgIGNvbnN0IEdMZmxvYXQqIHZhbHVlICk7CitHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xVbmlmb3JtTWF0cml4M3gyZnYpKCBHTGludCBsb2NhdGlvbiwKKyAgICAgICAgR0xzaXplaSBjb3VudCwKKyAgICAgICAgR0xib29sZWFuIHRyYW5zcG9zZSwKKyAgICAgICAgY29uc3QgR0xmbG9hdCogdmFsdWUgKTsKK0dMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbFVuaWZvcm1NYXRyaXgyeDRmdikoIEdMaW50IGxvY2F0aW9uLAorICAgICAgICBHTHNpemVpIGNvdW50LAorICAgICAgICBHTGJvb2xlYW4gdHJhbnNwb3NlLAorICAgICAgICBjb25zdCBHTGZsb2F0KiB2YWx1ZSApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsVW5pZm9ybU1hdHJpeDR4MmZ2KSggR0xpbnQgbG9jYXRpb24sCisgICAgICAgIEdMc2l6ZWkgY291bnQsCisgICAgICAgIEdMYm9vbGVhbiB0cmFuc3Bvc2UsCisgICAgICAgIGNvbnN0IEdMZmxvYXQqIHZhbHVlICk7CitHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xVbmlmb3JtTWF0cml4M3g0ZnYpKCBHTGludCBsb2NhdGlvbiwKKyAgICAgICAgR0xzaXplaSBjb3VudCwKKyAgICAgICAgR0xib29sZWFuIHRyYW5zcG9zZSwKKyAgICAgICAgY29uc3QgR0xmbG9hdCogdmFsdWUgKTsKK0dMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbFVuaWZvcm1NYXRyaXg0eDNmdikoIEdMaW50IGxvY2F0aW9uLAorICAgICAgICBHTHNpemVpIGNvdW50LAorICAgICAgICBHTGJvb2xlYW4gdHJhbnNwb3NlLAorICAgICAgICBjb25zdCBHTGZsb2F0KiB2YWx1ZSApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsQmxpdEZyYW1lYnVmZmVyKSggR0xpbnQgc3JjWDAsCisgICAgICAgIEdMaW50IHNyY1kwLAorICAgICAgICBHTGludCBzcmNYMSwKKyAgICAgICAgR0xpbnQgc3JjWTEsCisgICAgICAgIEdMaW50IGRzdFgwLAorICAgICAgICBHTGludCBkc3RZMCwKKyAgICAgICAgR0xpbnQgZHN0WDEsCisgICAgICAgIEdMaW50IGRzdFkxLAorICAgICAgICBHTGJpdGZpZWxkIG1hc2ssCisgICAgICAgIEdMZW51bSBmaWx0ZXIgKTsKK0dMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbFJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZSkoIEdMZW51bSB0YXJnZXQsCisgICAgICAgIEdMc2l6ZWkgc2FtcGxlcywKKyAgICAgICAgR0xlbnVtIGludGVybmFsZm9ybWF0LAorICAgICAgICBHTHNpemVpIHdpZHRoLAorICAgICAgICBHTHNpemVpIGhlaWdodCApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsRnJhbWVidWZmZXJUZXh0dXJlTGF5ZXIpKCBHTGVudW0gdGFyZ2V0LAorICAgICAgICBHTGVudW0gYXR0YWNobWVudCwKKyAgICAgICAgR0x1aW50IHRleHR1cmUsCisgICAgICAgIEdMaW50IGxldmVsLAorICAgICAgICBHTGludCBsYXllciApOworR0xfQVBJQ0FMTCBHTHZvaWQqICgqIEdMX0FQSUVOVFJZIGdsTWFwQnVmZmVyUmFuZ2UpKCBHTGVudW0gdGFyZ2V0LAorICAgICAgICBHTGludHB0ciBvZmZzZXQsCisgICAgICAgIEdMc2l6ZWlwdHIgbGVuZ3RoLAorICAgICAgICBHTGJpdGZpZWxkIGFjY2VzcyApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsRmx1c2hNYXBwZWRCdWZmZXJSYW5nZSkoIEdMZW51bSB0YXJnZXQsCisgICAgICAgIEdMaW50cHRyIG9mZnNldCwKKyAgICAgICAgR0xzaXplaXB0ciBsZW5ndGggKTsKK0dMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbEJpbmRWZXJ0ZXhBcnJheSkoIEdMdWludCBhcnJheSApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsRGVsZXRlVmVydGV4QXJyYXlzKSggR0xzaXplaSBuLCBjb25zdCBHTHVpbnQqIGFycmF5cyApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsR2VuVmVydGV4QXJyYXlzKSggR0xzaXplaSBuLCBHTHVpbnQqIGFycmF5cyApOworR0xfQVBJQ0FMTCBHTGJvb2xlYW4gKCogR0xfQVBJRU5UUlkgZ2xJc1ZlcnRleEFycmF5KSggR0x1aW50IGFycmF5ICk7CitHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xHZXRJbnRlZ2VyaV92KSggR0xlbnVtIHRhcmdldCwKKyAgICAgICAgR0x1aW50IGluZGV4LAorICAgICAgICBHTGludCogZGF0YSApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsQmVnaW5UcmFuc2Zvcm1GZWVkYmFjaykoIEdMZW51bSBwcmltaXRpdmVNb2RlICk7CitHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xFbmRUcmFuc2Zvcm1GZWVkYmFjaykoIHZvaWQgKTsKK0dMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbEJpbmRCdWZmZXJSYW5nZSkoIEdMZW51bSB0YXJnZXQsCisgICAgICAgIEdMdWludCBpbmRleCwKKyAgICAgICAgR0x1aW50IGJ1ZmZlciwKKyAgICAgICAgR0xpbnRwdHIgb2Zmc2V0LAorICAgICAgICBHTHNpemVpcHRyIHNpemUgKTsKK0dMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbEJpbmRCdWZmZXJCYXNlKSggR0xlbnVtIHRhcmdldCwKKyAgICAgICAgR0x1aW50IGluZGV4LAorICAgICAgICBHTHVpbnQgYnVmZmVyICk7CitHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xUcmFuc2Zvcm1GZWVkYmFja1ZhcnlpbmdzKSggR0x1aW50IHByb2dyYW0sCisgICAgICAgIEdMc2l6ZWkgY291bnQsCisgICAgICAgIGNvbnN0IEdMY2hhciogY29uc3QgKiB2YXJ5aW5ncywKKyAgICAgICAgR0xlbnVtIGJ1ZmZlck1vZGUgKTsKK0dMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbEdldFRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZykoIEdMdWludCBwcm9ncmFtLAorICAgICAgICBHTHVpbnQgaW5kZXgsCisgICAgICAgIEdMc2l6ZWkgYnVmU2l6ZSwKKyAgICAgICAgR0xzaXplaSogbGVuZ3RoLAorICAgICAgICBHTHNpemVpKiBzaXplLAorICAgICAgICBHTGVudW0qIHR5cGUsCisgICAgICAgIEdMY2hhciogbmFtZSApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsVmVydGV4QXR0cmliSVBvaW50ZXIpKCBHTHVpbnQgaW5kZXgsCisgICAgICAgIEdMaW50IHNpemUsCisgICAgICAgIEdMZW51bSB0eXBlLAorICAgICAgICBHTHNpemVpIHN0cmlkZSwKKyAgICAgICAgY29uc3QgR0x2b2lkKiBwb2ludGVyICk7CitHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xHZXRWZXJ0ZXhBdHRyaWJJaXYpKCBHTHVpbnQgaW5kZXgsCisgICAgICAgIEdMZW51bSBwbmFtZSwKKyAgICAgICAgR0xpbnQqIHBhcmFtcyApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsR2V0VmVydGV4QXR0cmliSXVpdikoIEdMdWludCBpbmRleCwKKyAgICAgICAgR0xlbnVtIHBuYW1lLAorICAgICAgICBHTHVpbnQqIHBhcmFtcyApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsVmVydGV4QXR0cmliSTRpKSggR0x1aW50IGluZGV4LAorICAgICAgICBHTGludCB4LAorICAgICAgICBHTGludCB5LAorICAgICAgICBHTGludCB6LAorICAgICAgICBHTGludCB3ICk7CitHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xWZXJ0ZXhBdHRyaWJJNHVpKSggR0x1aW50IGluZGV4LAorICAgICAgICBHTHVpbnQgeCwKKyAgICAgICAgR0x1aW50IHksCisgICAgICAgIEdMdWludCB6LAorICAgICAgICBHTHVpbnQgdyApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsVmVydGV4QXR0cmliSTRpdikoIEdMdWludCBpbmRleCwgY29uc3QgR0xpbnQqIHYgKTsKK0dMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbFZlcnRleEF0dHJpYkk0dWl2KSggR0x1aW50IGluZGV4LCBjb25zdCBHTHVpbnQqIHYgKTsKK0dMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbEdldFVuaWZvcm11aXYpKCBHTHVpbnQgcHJvZ3JhbSwKKyAgICAgICAgR0xpbnQgbG9jYXRpb24sCisgICAgICAgIEdMdWludCogcGFyYW1zICk7CitHTF9BUElDQUxMIEdMaW50ICgqIEdMX0FQSUVOVFJZIGdsR2V0RnJhZ0RhdGFMb2NhdGlvbikoIEdMdWludCBwcm9ncmFtLAorICAgICAgICBjb25zdCBHTGNoYXIgKm5hbWUgKTsKK0dMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbFVuaWZvcm0xdWkpKCBHTGludCBsb2NhdGlvbiwgR0x1aW50IHYwICk7CitHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xVbmlmb3JtMnVpKSggR0xpbnQgbG9jYXRpb24sIEdMdWludCB2MCwgR0x1aW50IHYxICk7CitHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xVbmlmb3JtM3VpKSggR0xpbnQgbG9jYXRpb24sCisgICAgICAgIEdMdWludCB2MCwKKyAgICAgICAgR0x1aW50IHYxLAorICAgICAgICBHTHVpbnQgdjIgKTsKK0dMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbFVuaWZvcm00dWkpKCBHTGludCBsb2NhdGlvbiwKKyAgICAgICAgR0x1aW50IHYwLAorICAgICAgICBHTHVpbnQgdjEsCisgICAgICAgIEdMdWludCB2MiwKKyAgICAgICAgR0x1aW50IHYzICk7CitHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xVbmlmb3JtMXVpdikoIEdMaW50IGxvY2F0aW9uLAorICAgICAgICBHTHNpemVpIGNvdW50LAorICAgICAgICBjb25zdCBHTHVpbnQqIHZhbHVlICk7CitHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xVbmlmb3JtMnVpdikoIEdMaW50IGxvY2F0aW9uLAorICAgICAgICBHTHNpemVpIGNvdW50LAorICAgICAgICBjb25zdCBHTHVpbnQqIHZhbHVlICk7CitHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xVbmlmb3JtM3VpdikoIEdMaW50IGxvY2F0aW9uLAorICAgICAgICBHTHNpemVpIGNvdW50LAorICAgICAgICBjb25zdCBHTHVpbnQqIHZhbHVlICk7CitHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xVbmlmb3JtNHVpdikoIEdMaW50IGxvY2F0aW9uLAorICAgICAgICBHTHNpemVpIGNvdW50LAorICAgICAgICBjb25zdCBHTHVpbnQqIHZhbHVlICk7CitHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xDbGVhckJ1ZmZlcml2KSggR0xlbnVtIGJ1ZmZlciwKKyAgICAgICAgR0xpbnQgZHJhd2J1ZmZlciwKKyAgICAgICAgY29uc3QgR0xpbnQqIHZhbHVlICk7CitHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xDbGVhckJ1ZmZlcnVpdikoIEdMZW51bSBidWZmZXIsCisgICAgICAgIEdMaW50IGRyYXdidWZmZXIsCisgICAgICAgIGNvbnN0IEdMdWludCogdmFsdWUgKTsKK0dMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbENsZWFyQnVmZmVyZnYpKCBHTGVudW0gYnVmZmVyLAorICAgICAgICBHTGludCBkcmF3YnVmZmVyLAorICAgICAgICBjb25zdCBHTGZsb2F0KiB2YWx1ZSApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsQ2xlYXJCdWZmZXJmaSkoIEdMZW51bSBidWZmZXIsCisgICAgICAgIEdMaW50IGRyYXdidWZmZXIsCisgICAgICAgIEdMZmxvYXQgZGVwdGgsCisgICAgICAgIEdMaW50IHN0ZW5jaWwgKTsKK0dMX0FQSUNBTEwgY29uc3QgR0x1Ynl0ZSogKCogR0xfQVBJRU5UUlkgZ2xHZXRTdHJpbmdpKSggR0xlbnVtIG5hbWUsIEdMdWludCBpbmRleCApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsQ29weUJ1ZmZlclN1YkRhdGEpKCBHTGVudW0gcmVhZFRhcmdldCwKKyAgICAgICAgR0xlbnVtIHdyaXRlVGFyZ2V0LAorICAgICAgICBHTGludHB0ciByZWFkT2Zmc2V0LAorICAgICAgICBHTGludHB0ciB3cml0ZU9mZnNldCwKKyAgICAgICAgR0xzaXplaXB0ciBzaXplICk7CitHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xHZXRVbmlmb3JtSW5kaWNlcykoIEdMdWludCBwcm9ncmFtLAorICAgICAgICBHTHNpemVpIHVuaWZvcm1Db3VudCwKKyAgICAgICAgY29uc3QgR0xjaGFyKiBjb25zdCAqIHVuaWZvcm1OYW1lcywKKyAgICAgICAgR0x1aW50KiB1bmlmb3JtSW5kaWNlcyApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsR2V0QWN0aXZlVW5pZm9ybXNpdikoIEdMdWludCBwcm9ncmFtLAorICAgICAgICBHTHNpemVpIHVuaWZvcm1Db3VudCwKKyAgICAgICAgY29uc3QgR0x1aW50KiB1bmlmb3JtSW5kaWNlcywKKyAgICAgICAgR0xlbnVtIHBuYW1lLAorICAgICAgICBHTGludCogcGFyYW1zICk7CitHTF9BUElDQUxMIEdMdWludCAoKiBHTF9BUElFTlRSWSBnbEdldFVuaWZvcm1CbG9ja0luZGV4KSggR0x1aW50IHByb2dyYW0sCisgICAgICAgIGNvbnN0IEdMY2hhciogdW5pZm9ybUJsb2NrTmFtZSApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsR2V0QWN0aXZlVW5pZm9ybUJsb2NraXYpKCBHTHVpbnQgcHJvZ3JhbSwKKyAgICAgICAgR0x1aW50IHVuaWZvcm1CbG9ja0luZGV4LAorICAgICAgICBHTGVudW0gcG5hbWUsCisgICAgICAgIEdMaW50KiBwYXJhbXMgKTsKK0dMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbEdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUpKCBHTHVpbnQgcHJvZ3JhbSwKKyAgICAgICAgR0x1aW50IHVuaWZvcm1CbG9ja0luZGV4LAorICAgICAgICBHTHNpemVpIGJ1ZlNpemUsCisgICAgICAgIEdMc2l6ZWkqIGxlbmd0aCwKKyAgICAgICAgR0xjaGFyKiB1bmlmb3JtQmxvY2tOYW1lICk7CitHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xVbmlmb3JtQmxvY2tCaW5kaW5nKSggR0x1aW50IHByb2dyYW0sCisgICAgICAgIEdMdWludCB1bmlmb3JtQmxvY2tJbmRleCwKKyAgICAgICAgR0x1aW50IHVuaWZvcm1CbG9ja0JpbmRpbmcgKTsKK0dMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbERyYXdBcnJheXNJbnN0YW5jZWQpKCBHTGVudW0gbW9kZSwKKyAgICAgICAgR0xpbnQgZmlyc3QsCisgICAgICAgIEdMc2l6ZWkgY291bnQsCisgICAgICAgIEdMc2l6ZWkgaW5zdGFuY2VDb3VudCApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsRHJhd0VsZW1lbnRzSW5zdGFuY2VkKSggR0xlbnVtIG1vZGUsCisgICAgICAgIEdMc2l6ZWkgY291bnQsCisgICAgICAgIEdMZW51bSB0eXBlLAorICAgICAgICBjb25zdCBHTHZvaWQqIGluZGljZXMsCisgICAgICAgIEdMc2l6ZWkgaW5zdGFuY2VDb3VudCApOworR0xfQVBJQ0FMTCBHTHN5bmMgKCogR0xfQVBJRU5UUlkgZ2xGZW5jZVN5bmMpKCBHTGVudW0gY29uZGl0aW9uLCBHTGJpdGZpZWxkIGZsYWdzICk7CitHTF9BUElDQUxMIEdMYm9vbGVhbiAoKiBHTF9BUElFTlRSWSBnbElzU3luYykoIEdMc3luYyBzeW5jICk7CitHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xEZWxldGVTeW5jKSggR0xzeW5jIHN5bmMgKTsKK0dMX0FQSUNBTEwgR0xlbnVtICgqIEdMX0FQSUVOVFJZIGdsQ2xpZW50V2FpdFN5bmMpKCBHTHN5bmMgc3luYywKKyAgICAgICAgR0xiaXRmaWVsZCBmbGFncywKKyAgICAgICAgR0x1aW50NjQgdGltZW91dCApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsV2FpdFN5bmMpKCBHTHN5bmMgc3luYywKKyAgICAgICAgR0xiaXRmaWVsZCBmbGFncywKKyAgICAgICAgR0x1aW50NjQgdGltZW91dCApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsR2V0SW50ZWdlcjY0dikoIEdMZW51bSBwbmFtZSwgR0xpbnQ2NCogcGFyYW1zICk7CitHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xHZXRTeW5jaXYpKCBHTHN5bmMgc3luYywKKyAgICAgICAgR0xlbnVtIHBuYW1lLAorICAgICAgICBHTHNpemVpIGJ1ZlNpemUsCisgICAgICAgIEdMc2l6ZWkqIGxlbmd0aCwKKyAgICAgICAgR0xpbnQqIHZhbHVlcyApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsR2V0SW50ZWdlcjY0aV92KSggR0xlbnVtIHRhcmdldCwKKyAgICAgICAgR0x1aW50IGluZGV4LAorICAgICAgICBHTGludDY0KiBkYXRhICk7CitHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xHZXRCdWZmZXJQYXJhbWV0ZXJpNjR2KSggR0xlbnVtIHRhcmdldCwKKyAgICAgICAgR0xlbnVtIHBuYW1lLAorICAgICAgICBHTGludDY0KiBwYXJhbXMgKTsKK0dMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbEdlblNhbXBsZXJzKSggR0xzaXplaSBjb3VudCwgR0x1aW50KiBzYW1wbGVycyApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsRGVsZXRlU2FtcGxlcnMpKCBHTHNpemVpIGNvdW50LCBjb25zdCBHTHVpbnQqIHNhbXBsZXJzICk7CitHTF9BUElDQUxMIEdMYm9vbGVhbiAoKiBHTF9BUElFTlRSWSBnbElzU2FtcGxlcikoIEdMdWludCBzYW1wbGVyICk7CitHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xCaW5kU2FtcGxlcikoIEdMdWludCB1bml0LCBHTHVpbnQgc2FtcGxlciApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsU2FtcGxlclBhcmFtZXRlcmkpKCBHTHVpbnQgc2FtcGxlciwKKyAgICAgICAgR0xlbnVtIHBuYW1lLAorICAgICAgICBHTGludCBwYXJhbSApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsU2FtcGxlclBhcmFtZXRlcml2KSggR0x1aW50IHNhbXBsZXIsCisgICAgICAgIEdMZW51bSBwbmFtZSwKKyAgICAgICAgY29uc3QgR0xpbnQqIHBhcmFtICk7CitHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xTYW1wbGVyUGFyYW1ldGVyZikoIEdMdWludCBzYW1wbGVyLAorICAgICAgICBHTGVudW0gcG5hbWUsCisgICAgICAgIEdMZmxvYXQgcGFyYW0gKTsKK0dMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbFNhbXBsZXJQYXJhbWV0ZXJmdikoIEdMdWludCBzYW1wbGVyLAorICAgICAgICBHTGVudW0gcG5hbWUsCisgICAgICAgIGNvbnN0IEdMZmxvYXQqIHBhcmFtICk7CitHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xHZXRTYW1wbGVyUGFyYW1ldGVyaXYpKCBHTHVpbnQgc2FtcGxlciwKKyAgICAgICAgR0xlbnVtIHBuYW1lLAorICAgICAgICBHTGludCogcGFyYW1zICk7CitHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xHZXRTYW1wbGVyUGFyYW1ldGVyZnYpKCBHTHVpbnQgc2FtcGxlciwKKyAgICAgICAgR0xlbnVtIHBuYW1lLAorICAgICAgICBHTGZsb2F0KiBwYXJhbXMgKTsKK0dMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbFZlcnRleEF0dHJpYkRpdmlzb3IpKCBHTHVpbnQgaW5kZXgsIEdMdWludCBkaXZpc29yICk7CitHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xCaW5kVHJhbnNmb3JtRmVlZGJhY2spKCBHTGVudW0gdGFyZ2V0LCBHTHVpbnQgaWQgKTsKK0dMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbERlbGV0ZVRyYW5zZm9ybUZlZWRiYWNrcykoIEdMc2l6ZWkgbiwgY29uc3QgR0x1aW50KiBpZHMgKTsKK0dMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbEdlblRyYW5zZm9ybUZlZWRiYWNrcykoIEdMc2l6ZWkgbiwgR0x1aW50KiBpZHMgKTsKK0dMX0FQSUNBTEwgR0xib29sZWFuICgqIEdMX0FQSUVOVFJZIGdsSXNUcmFuc2Zvcm1GZWVkYmFjaykoIEdMdWludCBpZCApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsUGF1c2VUcmFuc2Zvcm1GZWVkYmFjaykoIHZvaWQgKTsKK0dMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbFJlc3VtZVRyYW5zZm9ybUZlZWRiYWNrKSggdm9pZCApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsR2V0UHJvZ3JhbUJpbmFyeSkoIEdMdWludCBwcm9ncmFtLAorICAgICAgICBHTHNpemVpIGJ1ZlNpemUsCisgICAgICAgIEdMc2l6ZWkqIGxlbmd0aCwKKyAgICAgICAgR0xlbnVtKiBiaW5hcnlGb3JtYXQsCisgICAgICAgIEdMdm9pZCogYmluYXJ5ICk7CitHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xQcm9ncmFtQmluYXJ5KSggR0x1aW50IHByb2dyYW0sCisgICAgICAgIEdMZW51bSBiaW5hcnlGb3JtYXQsCisgICAgICAgIGNvbnN0IEdMdm9pZCogYmluYXJ5LAorICAgICAgICBHTHNpemVpIGxlbmd0aCApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsUHJvZ3JhbVBhcmFtZXRlcmkpKCBHTHVpbnQgcHJvZ3JhbSwKKyAgICAgICAgR0xlbnVtIHBuYW1lLAorICAgICAgICBHTGludCB2YWx1ZSApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsSW52YWxpZGF0ZUZyYW1lYnVmZmVyKSggR0xlbnVtIHRhcmdldCwKKyAgICAgICAgR0xzaXplaSBudW1BdHRhY2htZW50cywKKyAgICAgICAgY29uc3QgR0xlbnVtKiBhdHRhY2htZW50cyApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsSW52YWxpZGF0ZVN1YkZyYW1lYnVmZmVyKSggR0xlbnVtIHRhcmdldCwKKyAgICAgICAgR0xzaXplaSBudW1BdHRhY2htZW50cywKKyAgICAgICAgY29uc3QgR0xlbnVtKiBhdHRhY2htZW50cywKKyAgICAgICAgR0xpbnQgeCwKKyAgICAgICAgR0xpbnQgeSwKKyAgICAgICAgR0xzaXplaSB3aWR0aCwKKyAgICAgICAgR0xzaXplaSBoZWlnaHQgKTsKK0dMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbFRleFN0b3JhZ2UyRCkoIEdMZW51bSB0YXJnZXQsCisgICAgICAgIEdMc2l6ZWkgbGV2ZWxzLAorICAgICAgICBHTGVudW0gaW50ZXJuYWxmb3JtYXQsCisgICAgICAgIEdMc2l6ZWkgd2lkdGgsCisgICAgICAgIEdMc2l6ZWkgaGVpZ2h0ICk7CitHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xUZXhTdG9yYWdlM0QpKCBHTGVudW0gdGFyZ2V0LAorICAgICAgICBHTHNpemVpIGxldmVscywKKyAgICAgICAgR0xlbnVtIGludGVybmFsZm9ybWF0LAorICAgICAgICBHTHNpemVpIHdpZHRoLAorICAgICAgICBHTHNpemVpIGhlaWdodCwKKyAgICAgICAgR0xzaXplaSBkZXB0aCApOworR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsR2V0SW50ZXJuYWxmb3JtYXRpdikoIEdMZW51bSB0YXJnZXQsCisgICAgICAgIEdMZW51bSBpbnRlcm5hbGZvcm1hdCwKKyAgICAgICAgR0xlbnVtIHBuYW1lLAorICAgICAgICBHTHNpemVpIGJ1ZlNpemUsCisgICAgICAgIEdMaW50KiBwYXJhbXMgKTsKZGlmZiAtLWdpdCBhL25kay9zb3VyY2VzL2FuZHJvaWQvbmRrX2hlbHBlci9nbDNzdHViLmggYi9uZGsvc291cmNlcy9hbmRyb2lkL25ka19oZWxwZXIvZ2wzc3R1Yi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUzN2RkMjgKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvc291cmNlcy9hbmRyb2lkL25ka19oZWxwZXIvZ2wzc3R1Yi5oCkBAIC0wLDAgKzEsNTAxIEBACisjaWZuZGVmIF9fZ2wzX2hfCisjZGVmaW5lIF9fZ2wzX2hfCisKKy8qCisgKiBzdHViIGdsMy5oIGZvciBkeW5hbWljIGxvYWRpbmcsIGJhc2VkIG9uOgorICogZ2wzLmggbGFzdCB1cGRhdGVkIG9uICREYXRlOiAyMDEzLTAyLTEyIDE0OjM3OjI0IC0wODAwIChUdWUsIDEyIEZlYiAyMDEzKSAkCisgKgorICogQ2hhbmdlczoKKyAqIC0gQWRkZWQgI2luY2x1ZGUgPEdMRVMyL2dsMi5oPgorICogLSBSZW1vdmVkIGR1cGxpY2F0ZSBPcGVuR0wgRVMgMi4wIGRlY2xhcmF0aW9ucworICogLSBDb252ZXJ0ZWQgT3BlbkdMIEVTIDMuMCBmdW5jdGlvbiBwcm90b3R5cGVzIHRvIGZ1bmN0aW9uIHBvaW50ZXIKKyAqICAgZGVjbGFyYXRpb25zCisgKiAtIEFkZGVkIGdsM3N0dWJJbml0KCkgZGVjbGFyYXRpb24KKyAqLworCisjaW5jbHVkZSA8R0xFUzIvZ2wyLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIgoreworI2VuZGlmCisKKy8qCisgKiogQ29weXJpZ2h0IChjKSAyMDA3LTIwMTMgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorICoqCisgKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisgKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisgKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorICoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyAqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworICoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqKgorICoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisgKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorICoqCisgKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyAqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyAqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisgKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorICoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisgKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KKyAqLworCisvKgorICogVGhpcyBmaWxlcyBpcyBmb3IgYXBwcyB0aGF0IHdhbnQgdG8gdXNlIEVTMyBpZiBwcmVzZW50LAorICogYnV0IGNvbnRpbnVlIHRvIHdvcmsgb24gcHJlLUFQSS0xOCBkZXZpY2VzLiBUaGV5IGNhbid0IGp1c3QgbGluayB0byAtbEdMRVN2MyBzaW5jZQorICogdGhhdCBsaWJyYXJ5IGRvZXNuJ3QgZXhpc3Qgb24gcHJlLUFQSS0xOCBkZXZpY2VzLgorICogVGhlIGZ1bmN0aW9uIGR5bmFtaWNhbGx5IGNoZWNrIGlmIE9wZW5HTEVTMy4wIEFQSXMgYXJlIHByZXNlbnQgYW5kIGZpbGwgaW4gaWYgdGhlcmUgYXJlLgorICogQWxzbyB0aGUgaGVhZGVyIGRlZmluZXMgc29tZSBleHRyYSB2YXJpYWJsZXMgZm9yIE9wZW5HTEVTMy4wLgorICoKKyAqLworCisvKiBDYWxsIHRoaXMgZnVuY3Rpb24gYmVmb3JlIGNhbGxpbmcgYW55IE9wZW5HTCBFUyAzLjAgZnVuY3Rpb25zLiBJdCB3aWxsCisgKiByZXR1cm4gR0xfVFJVRSBpZiB0aGUgT3BlbkdMIEVTIDMuMCB3YXMgc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkLCBHTF9GQUxTRQorICogb3RoZXJ3aXNlLiAqLworR0xib29sZWFuIGdsM3N0dWJJbml0KCk7CisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogRGF0YSB0eXBlIGRlZmluaXRpb25zCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyogT3BlbkdMIEVTIDMuMCAqLworCit0eXBlZGVmIHVuc2lnbmVkIHNob3J0IEdMaGFsZjsKK3R5cGVkZWYga2hyb25vc19pbnQ2NF90IEdMaW50NjQ7Cit0eXBlZGVmIGtocm9ub3NfdWludDY0X3QgR0x1aW50NjQ7Cit0eXBlZGVmIHN0cnVjdCBfX0dMc3luYyAqR0xzeW5jOworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFRva2VuIGRlZmluaXRpb25zCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyogT3BlbkdMIEVTIGNvcmUgdmVyc2lvbnMgKi8KKyNkZWZpbmUgR0xfRVNfVkVSU0lPTl8zXzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKworLyogT3BlbkdMIEVTIDMuMCAqLworCisjZGVmaW5lIEdMX1JFQURfQlVGRkVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDIKKyNkZWZpbmUgR0xfVU5QQUNLX1JPV19MRU5HVEggICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MENGMgorI2RlZmluZSBHTF9VTlBBQ0tfU0tJUF9ST1dTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQ0YzCisjZGVmaW5lIEdMX1VOUEFDS19TS0lQX1BJWEVMUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDRjQKKyNkZWZpbmUgR0xfUEFDS19ST1dfTEVOR1RIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEQwMgorI2RlZmluZSBHTF9QQUNLX1NLSVBfUk9XUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRDAzCisjZGVmaW5lIEdMX1BBQ0tfU0tJUF9QSVhFTFMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBEMDQKKyNkZWZpbmUgR0xfQ09MT1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgwMAorI2RlZmluZSBHTF9ERVBUSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxODAxCisjZGVmaW5lIEdMX1NURU5DSUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4MDIKKyNkZWZpbmUgR0xfUkVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkwMworI2RlZmluZSBHTF9SR0I4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDUxCisjZGVmaW5lIEdMX1JHQkE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwNTgKKyNkZWZpbmUgR0xfUkdCMTBfQTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODA1OQorI2RlZmluZSBHTF9URVhUVVJFX0JJTkRJTkdfM0QgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDZBCisjZGVmaW5lIEdMX1VOUEFDS19TS0lQX0lNQUdFUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwNkQKKyNkZWZpbmUgR0xfVU5QQUNLX0lNQUdFX0hFSUdIVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODA2RQorI2RlZmluZSBHTF9URVhUVVJFXzNEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDZGCisjZGVmaW5lIEdMX1RFWFRVUkVfV1JBUF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwNzIKKyNkZWZpbmUgR0xfTUFYXzNEX1RFWFRVUkVfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODA3MworI2RlZmluZSBHTF9VTlNJR05FRF9JTlRfMl8xMF8xMF8xMF9SRVYgICAgICAgICAgICAgICAgICAgMHg4MzY4CisjZGVmaW5lIEdMX01BWF9FTEVNRU5UU19WRVJUSUNFUyAgICAgICAgICAgICAgICAgICAgICAgICAweDgwRTgKKyNkZWZpbmUgR0xfTUFYX0VMRU1FTlRTX0lORElDRVMgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODBFOQorI2RlZmluZSBHTF9URVhUVVJFX01JTl9MT0QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MTNBCisjZGVmaW5lIEdMX1RFWFRVUkVfTUFYX0xPRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgxM0IKKyNkZWZpbmUgR0xfVEVYVFVSRV9CQVNFX0xFVkVMICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODEzQworI2RlZmluZSBHTF9URVhUVVJFX01BWF9MRVZFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MTNECisjZGVmaW5lIEdMX01JTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDcKKyNkZWZpbmUgR0xfTUFYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwOAorI2RlZmluZSBHTF9ERVBUSF9DT01QT05FTlQyNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MUE2CisjZGVmaW5lIEdMX01BWF9URVhUVVJFX0xPRF9CSUFTICAgICAgICAgICAgICAgICAgICAgICAgICAweDg0RkQKKyNkZWZpbmUgR0xfVEVYVFVSRV9DT01QQVJFX01PREUgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg0QworI2RlZmluZSBHTF9URVhUVVJFX0NPTVBBUkVfRlVOQyAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4ODRECisjZGVmaW5lIEdMX0NVUlJFTlRfUVVFUlkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDg4NjUKKyNkZWZpbmUgR0xfUVVFUllfUkVTVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg2NgorI2RlZmluZSBHTF9RVUVSWV9SRVNVTFRfQVZBSUxBQkxFICAgICAgICAgICAgICAgICAgICAgICAgMHg4ODY3CisjZGVmaW5lIEdMX0JVRkZFUl9NQVBQRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDg4QkMKKyNkZWZpbmUgR0xfQlVGRkVSX01BUF9QT0lOVEVSICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODhCRAorI2RlZmluZSBHTF9TVFJFQU1fUkVBRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4OEUxCisjZGVmaW5lIEdMX1NUUkVBTV9DT1BZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDg4RTIKKyNkZWZpbmUgR0xfU1RBVElDX1JFQUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODhFNQorI2RlZmluZSBHTF9TVEFUSUNfQ09QWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4OEU2CisjZGVmaW5lIEdMX0RZTkFNSUNfUkVBRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDg4RTkKKyNkZWZpbmUgR0xfRFlOQU1JQ19DT1BZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODhFQQorI2RlZmluZSBHTF9NQVhfRFJBV19CVUZGRVJTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4ODI0CisjZGVmaW5lIEdMX0RSQVdfQlVGRkVSMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDg4MjUKKyNkZWZpbmUgR0xfRFJBV19CVUZGRVIxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODgyNgorI2RlZmluZSBHTF9EUkFXX0JVRkZFUjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4ODI3CisjZGVmaW5lIEdMX0RSQVdfQlVGRkVSMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDg4MjgKKyNkZWZpbmUgR0xfRFJBV19CVUZGRVI0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODgyOQorI2RlZmluZSBHTF9EUkFXX0JVRkZFUjUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4ODJBCisjZGVmaW5lIEdMX0RSQVdfQlVGRkVSNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDg4MkIKKyNkZWZpbmUgR0xfRFJBV19CVUZGRVI3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODgyQworI2RlZmluZSBHTF9EUkFXX0JVRkZFUjggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4ODJECisjZGVmaW5lIEdMX0RSQVdfQlVGRkVSOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDg4MkUKKyNkZWZpbmUgR0xfRFJBV19CVUZGRVIxMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODgyRgorI2RlZmluZSBHTF9EUkFXX0JVRkZFUjExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4ODMwCisjZGVmaW5lIEdMX0RSQVdfQlVGRkVSMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDg4MzEKKyNkZWZpbmUgR0xfRFJBV19CVUZGRVIxMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODgzMgorI2RlZmluZSBHTF9EUkFXX0JVRkZFUjE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4ODMzCisjZGVmaW5lIEdMX0RSQVdfQlVGRkVSMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDg4MzQKKyNkZWZpbmUgR0xfTUFYX0ZSQUdNRU5UX1VOSUZPUk1fQ09NUE9ORU5UUyAgICAgICAgICAgICAgIDB4OEI0OQorI2RlZmluZSBHTF9NQVhfVkVSVEVYX1VOSUZPUk1fQ09NUE9ORU5UUyAgICAgICAgICAgICAgICAgMHg4QjRBCisjZGVmaW5lIEdMX1NBTVBMRVJfM0QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDhCNUYKKyNkZWZpbmUgR0xfU0FNUExFUl8yRF9TSEFET1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OEI2MgorI2RlZmluZSBHTF9GUkFHTUVOVF9TSEFERVJfREVSSVZBVElWRV9ISU5UICAgICAgICAgICAgICAgMHg4QjhCCisjZGVmaW5lIEdMX1BJWEVMX1BBQ0tfQlVGRkVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDg4RUIKKyNkZWZpbmUgR0xfUElYRUxfVU5QQUNLX0JVRkZFUiAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODhFQworI2RlZmluZSBHTF9QSVhFTF9QQUNLX0JVRkZFUl9CSU5ESU5HICAgICAgICAgICAgICAgICAgICAgMHg4OEVECisjZGVmaW5lIEdMX1BJWEVMX1VOUEFDS19CVUZGRVJfQklORElORyAgICAgICAgICAgICAgICAgICAweDg4RUYKKyNkZWZpbmUgR0xfRkxPQVRfTUFUMngzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OEI2NQorI2RlZmluZSBHTF9GTE9BVF9NQVQyeDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4QjY2CisjZGVmaW5lIEdMX0ZMT0FUX01BVDN4MiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDhCNjcKKyNkZWZpbmUgR0xfRkxPQVRfTUFUM3g0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OEI2OAorI2RlZmluZSBHTF9GTE9BVF9NQVQ0eDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4QjY5CisjZGVmaW5lIEdMX0ZMT0FUX01BVDR4MyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDhCNkEKKyNkZWZpbmUgR0xfU1JHQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OEM0MAorI2RlZmluZSBHTF9TUkdCOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4QzQxCisjZGVmaW5lIEdMX1NSR0I4X0FMUEhBOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDhDNDMKKyNkZWZpbmUgR0xfQ09NUEFSRV9SRUZfVE9fVEVYVFVSRSAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg0RQorI2RlZmluZSBHTF9NQUpPUl9WRVJTSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MjFCCisjZGVmaW5lIEdMX01JTk9SX1ZFUlNJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgyMUMKKyNkZWZpbmUgR0xfTlVNX0VYVEVOU0lPTlMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODIxRAorI2RlZmluZSBHTF9SR0JBMzJGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4ODE0CisjZGVmaW5lIEdMX1JHQjMyRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDg4MTUKKyNkZWZpbmUgR0xfUkdCQTE2RiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODgxQQorI2RlZmluZSBHTF9SR0IxNkYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4ODFCCisjZGVmaW5lIEdMX1ZFUlRFWF9BVFRSSUJfQVJSQVlfSU5URUdFUiAgICAgICAgICAgICAgICAgICAweDg4RkQKKyNkZWZpbmUgR0xfTUFYX0FSUkFZX1RFWFRVUkVfTEFZRVJTICAgICAgICAgICAgICAgICAgICAgIDB4ODhGRgorI2RlZmluZSBHTF9NSU5fUFJPR1JBTV9URVhFTF9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgMHg4OTA0CisjZGVmaW5lIEdMX01BWF9QUk9HUkFNX1RFWEVMX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAweDg5MDUKKyNkZWZpbmUgR0xfTUFYX1ZBUllJTkdfQ09NUE9ORU5UUyAgICAgICAgICAgICAgICAgICAgICAgIDB4OEI0QgorI2RlZmluZSBHTF9URVhUVVJFXzJEX0FSUkFZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4QzFBCisjZGVmaW5lIEdMX1RFWFRVUkVfQklORElOR18yRF9BUlJBWSAgICAgICAgICAgICAgICAgICAgICAweDhDMUQKKyNkZWZpbmUgR0xfUjExRl9HMTFGX0IxMEYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OEMzQQorI2RlZmluZSBHTF9VTlNJR05FRF9JTlRfMTBGXzExRl8xMUZfUkVWICAgICAgICAgICAgICAgICAgMHg4QzNCCisjZGVmaW5lIEdMX1JHQjlfRTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDhDM0QKKyNkZWZpbmUgR0xfVU5TSUdORURfSU5UXzVfOV85XzlfUkVWICAgICAgICAgICAgICAgICAgICAgIDB4OEMzRQorI2RlZmluZSBHTF9UUkFOU0ZPUk1fRkVFREJBQ0tfVkFSWUlOR19NQVhfTEVOR1RIICAgICAgICAgMHg4Qzc2CisjZGVmaW5lIEdMX1RSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfTU9ERSAgICAgICAgICAgICAgICAweDhDN0YKKyNkZWZpbmUgR0xfTUFYX1RSQU5TRk9STV9GRUVEQkFDS19TRVBBUkFURV9DT01QT05FTlRTICAgIDB4OEM4MAorI2RlZmluZSBHTF9UUkFOU0ZPUk1fRkVFREJBQ0tfVkFSWUlOR1MgICAgICAgICAgICAgICAgICAgMHg4QzgzCisjZGVmaW5lIEdMX1RSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfU1RBUlQgICAgICAgICAgICAgICAweDhDODQKKyNkZWZpbmUgR0xfVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9TSVpFICAgICAgICAgICAgICAgIDB4OEM4NQorI2RlZmluZSBHTF9UUkFOU0ZPUk1fRkVFREJBQ0tfUFJJTUlUSVZFU19XUklUVEVOICAgICAgICAgMHg4Qzg4CisjZGVmaW5lIEdMX1JBU1RFUklaRVJfRElTQ0FSRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDhDODkKKyNkZWZpbmUgR0xfTUFYX1RSQU5TRk9STV9GRUVEQkFDS19JTlRFUkxFQVZFRF9DT01QT05FTlRTIDB4OEM4QQorI2RlZmluZSBHTF9NQVhfVFJBTlNGT1JNX0ZFRURCQUNLX1NFUEFSQVRFX0FUVFJJQlMgICAgICAgMHg4QzhCCisjZGVmaW5lIEdMX0lOVEVSTEVBVkVEX0FUVFJJQlMgICAgICAgICAgICAgICAgICAgICAgICAgICAweDhDOEMKKyNkZWZpbmUgR0xfU0VQQVJBVEVfQVRUUklCUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OEM4RAorI2RlZmluZSBHTF9UUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSICAgICAgICAgICAgICAgICAgICAgMHg4QzhFCisjZGVmaW5lIEdMX1RSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORyAgICAgICAgICAgICAweDhDOEYKKyNkZWZpbmUgR0xfUkdCQTMyVUkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OEQ3MAorI2RlZmluZSBHTF9SR0IzMlVJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4RDcxCisjZGVmaW5lIEdMX1JHQkExNlVJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDhENzYKKyNkZWZpbmUgR0xfUkdCMTZVSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OEQ3NworI2RlZmluZSBHTF9SR0JBOFVJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4RDdDCisjZGVmaW5lIEdMX1JHQjhVSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDhEN0QKKyNkZWZpbmUgR0xfUkdCQTMySSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OEQ4MgorI2RlZmluZSBHTF9SR0IzMkkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4RDgzCisjZGVmaW5lIEdMX1JHQkExNkkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDhEODgKKyNkZWZpbmUgR0xfUkdCMTZJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OEQ4OQorI2RlZmluZSBHTF9SR0JBOEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4RDhFCisjZGVmaW5lIEdMX1JHQjhJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDhEOEYKKyNkZWZpbmUgR0xfUkVEX0lOVEVHRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OEQ5NAorI2RlZmluZSBHTF9SR0JfSU5URUdFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4RDk4CisjZGVmaW5lIEdMX1JHQkFfSU5URUdFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDhEOTkKKyNkZWZpbmUgR0xfU0FNUExFUl8yRF9BUlJBWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OERDMQorI2RlZmluZSBHTF9TQU1QTEVSXzJEX0FSUkFZX1NIQURPVyAgICAgICAgICAgICAgICAgICAgICAgMHg4REM0CisjZGVmaW5lIEdMX1NBTVBMRVJfQ1VCRV9TSEFET1cgICAgICAgICAgICAgICAgICAgICAgICAgICAweDhEQzUKKyNkZWZpbmUgR0xfVU5TSUdORURfSU5UX1ZFQzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OERDNgorI2RlZmluZSBHTF9VTlNJR05FRF9JTlRfVkVDMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4REM3CisjZGVmaW5lIEdMX1VOU0lHTkVEX0lOVF9WRUM0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDhEQzgKKyNkZWZpbmUgR0xfSU5UX1NBTVBMRVJfMkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OERDQQorI2RlZmluZSBHTF9JTlRfU0FNUExFUl8zRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4RENCCisjZGVmaW5lIEdMX0lOVF9TQU1QTEVSX0NVQkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDhEQ0MKKyNkZWZpbmUgR0xfSU5UX1NBTVBMRVJfMkRfQVJSQVkgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OERDRgorI2RlZmluZSBHTF9VTlNJR05FRF9JTlRfU0FNUExFUl8yRCAgICAgICAgICAgICAgICAgICAgICAgMHg4REQyCisjZGVmaW5lIEdMX1VOU0lHTkVEX0lOVF9TQU1QTEVSXzNEICAgICAgICAgICAgICAgICAgICAgICAweDhERDMKKyNkZWZpbmUgR0xfVU5TSUdORURfSU5UX1NBTVBMRVJfQ1VCRSAgICAgICAgICAgICAgICAgICAgIDB4OERENAorI2RlZmluZSBHTF9VTlNJR05FRF9JTlRfU0FNUExFUl8yRF9BUlJBWSAgICAgICAgICAgICAgICAgMHg4REQ3CisjZGVmaW5lIEdMX0JVRkZFUl9BQ0NFU1NfRkxBR1MgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkxMUYKKyNkZWZpbmUgR0xfQlVGRkVSX01BUF9MRU5HVEggICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OTEyMAorI2RlZmluZSBHTF9CVUZGRVJfTUFQX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5MTIxCisjZGVmaW5lIEdMX0RFUFRIX0NPTVBPTkVOVDMyRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDhDQUMKKyNkZWZpbmUgR0xfREVQVEgzMkZfU1RFTkNJTDggICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OENBRAorI2RlZmluZSBHTF9GTE9BVF8zMl9VTlNJR05FRF9JTlRfMjRfOF9SRVYgICAgICAgICAgICAgICAgMHg4REFECisjZGVmaW5lIEdMX0ZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJTkcgICAgICAgICAweDgyMTAKKyNkZWZpbmUgR0xfRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT01QT05FTlRfVFlQRSAgICAgICAgIDB4ODIxMQorI2RlZmluZSBHTF9GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1JFRF9TSVpFICAgICAgICAgICAgICAgMHg4MjEyCisjZGVmaW5lIEdMX0ZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfR1JFRU5fU0laRSAgICAgICAgICAgICAweDgyMTMKKyNkZWZpbmUgR0xfRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9CTFVFX1NJWkUgICAgICAgICAgICAgIDB4ODIxNAorI2RlZmluZSBHTF9GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0FMUEhBX1NJWkUgICAgICAgICAgICAgMHg4MjE1CisjZGVmaW5lIEdMX0ZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfREVQVEhfU0laRSAgICAgICAgICAgICAweDgyMTYKKyNkZWZpbmUgR0xfRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9TVEVOQ0lMX1NJWkUgICAgICAgICAgIDB4ODIxNworI2RlZmluZSBHTF9GUkFNRUJVRkZFUl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MjE4CisjZGVmaW5lIEdMX0ZSQU1FQlVGRkVSX1VOREVGSU5FRCAgICAgICAgICAgICAgICAgICAgICAgICAweDgyMTkKKyNkZWZpbmUgR0xfREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UICAgICAgICAgICAgICAgICAgICAgIDB4ODIxQQorI2RlZmluZSBHTF9ERVBUSF9TVEVOQ0lMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4NEY5CisjZGVmaW5lIEdMX1VOU0lHTkVEX0lOVF8yNF84ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDg0RkEKKyNkZWZpbmUgR0xfREVQVEgyNF9TVEVOQ0lMOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODhGMAorI2RlZmluZSBHTF9VTlNJR05FRF9OT1JNQUxJWkVEICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4QzE3CisjZGVmaW5lIEdMX0RSQVdfRlJBTUVCVUZGRVJfQklORElORyAgICAgICAgICAgICAgICAgICAgICBHTF9GUkFNRUJVRkZFUl9CSU5ESU5HCisjZGVmaW5lIEdMX1JFQURfRlJBTUVCVUZGRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDhDQTgKKyNkZWZpbmUgR0xfRFJBV19GUkFNRUJVRkZFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OENBOQorI2RlZmluZSBHTF9SRUFEX0ZSQU1FQlVGRkVSX0JJTkRJTkcgICAgICAgICAgICAgICAgICAgICAgMHg4Q0FBCisjZGVmaW5lIEdMX1JFTkRFUkJVRkZFUl9TQU1QTEVTICAgICAgICAgICAgICAgICAgICAgICAgICAweDhDQUIKKyNkZWZpbmUgR0xfRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0xBWUVSICAgICAgICAgIDB4OENENAorI2RlZmluZSBHTF9NQVhfQ09MT1JfQVRUQUNITUVOVFMgICAgICAgICAgICAgICAgICAgICAgICAgMHg4Q0RGCisjZGVmaW5lIEdMX0NPTE9SX0FUVEFDSE1FTlQxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDhDRTEKKyNkZWZpbmUgR0xfQ09MT1JfQVRUQUNITUVOVDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OENFMgorI2RlZmluZSBHTF9DT0xPUl9BVFRBQ0hNRU5UMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4Q0UzCisjZGVmaW5lIEdMX0NPTE9SX0FUVEFDSE1FTlQ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDhDRTQKKyNkZWZpbmUgR0xfQ09MT1JfQVRUQUNITUVOVDUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OENFNQorI2RlZmluZSBHTF9DT0xPUl9BVFRBQ0hNRU5UNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4Q0U2CisjZGVmaW5lIEdMX0NPTE9SX0FUVEFDSE1FTlQ3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDhDRTcKKyNkZWZpbmUgR0xfQ09MT1JfQVRUQUNITUVOVDggICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OENFOAorI2RlZmluZSBHTF9DT0xPUl9BVFRBQ0hNRU5UOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4Q0U5CisjZGVmaW5lIEdMX0NPTE9SX0FUVEFDSE1FTlQxMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDhDRUEKKyNkZWZpbmUgR0xfQ09MT1JfQVRUQUNITUVOVDExICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OENFQgorI2RlZmluZSBHTF9DT0xPUl9BVFRBQ0hNRU5UMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4Q0VDCisjZGVmaW5lIEdMX0NPTE9SX0FUVEFDSE1FTlQxMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDhDRUQKKyNkZWZpbmUgR0xfQ09MT1JfQVRUQUNITUVOVDE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OENFRQorI2RlZmluZSBHTF9DT0xPUl9BVFRBQ0hNRU5UMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4Q0VGCisjZGVmaW5lIEdMX0ZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTVVMVElTQU1QTEUgICAgICAgICAgICAweDhENTYKKyNkZWZpbmUgR0xfTUFYX1NBTVBMRVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OEQ1NworI2RlZmluZSBHTF9IQUxGX0ZMT0FUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDBCCisjZGVmaW5lIEdMX01BUF9SRUFEX0JJVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEKKyNkZWZpbmUgR0xfTUFQX1dSSVRFX0JJVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMgorI2RlZmluZSBHTF9NQVBfSU5WQUxJREFURV9SQU5HRV9CSVQgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0CisjZGVmaW5lIEdMX01BUF9JTlZBTElEQVRFX0JVRkZFUl9CSVQgICAgICAgICAgICAgICAgICAgICAweDAwMDgKKyNkZWZpbmUgR0xfTUFQX0ZMVVNIX0VYUExJQ0lUX0JJVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMAorI2RlZmluZSBHTF9NQVBfVU5TWU5DSFJPTklaRURfQklUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwCisjZGVmaW5lIEdMX1JHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgyMjcKKyNkZWZpbmUgR0xfUkdfSU5URUdFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODIyOAorI2RlZmluZSBHTF9SOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MjI5CisjZGVmaW5lIEdMX1JHOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgyMkIKKyNkZWZpbmUgR0xfUjE2RiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODIyRAorI2RlZmluZSBHTF9SMzJGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MjJFCisjZGVmaW5lIEdMX1JHMTZGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgyMkYKKyNkZWZpbmUgR0xfUkczMkYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODIzMAorI2RlZmluZSBHTF9SOEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MjMxCisjZGVmaW5lIEdMX1I4VUkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgyMzIKKyNkZWZpbmUgR0xfUjE2SSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODIzMworI2RlZmluZSBHTF9SMTZVSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MjM0CisjZGVmaW5lIEdMX1IzMkkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgyMzUKKyNkZWZpbmUgR0xfUjMyVUkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODIzNgorI2RlZmluZSBHTF9SRzhJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MjM3CisjZGVmaW5lIEdMX1JHOFVJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgyMzgKKyNkZWZpbmUgR0xfUkcxNkkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODIzOQorI2RlZmluZSBHTF9SRzE2VUkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MjNBCisjZGVmaW5lIEdMX1JHMzJJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgyM0IKKyNkZWZpbmUgR0xfUkczMlVJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODIzQworI2RlZmluZSBHTF9WRVJURVhfQVJSQVlfQklORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4NUI1CisjZGVmaW5lIEdMX1I4X1NOT1JNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDhGOTQKKyNkZWZpbmUgR0xfUkc4X1NOT1JNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OEY5NQorI2RlZmluZSBHTF9SR0I4X1NOT1JNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4Rjk2CisjZGVmaW5lIEdMX1JHQkE4X1NOT1JNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDhGOTcKKyNkZWZpbmUgR0xfU0lHTkVEX05PUk1BTElaRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OEY5QworI2RlZmluZSBHTF9QUklNSVRJVkVfUkVTVEFSVF9GSVhFRF9JTkRFWCAgICAgICAgICAgICAgICAgMHg4RDY5CisjZGVmaW5lIEdMX0NPUFlfUkVBRF9CVUZGRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDhGMzYKKyNkZWZpbmUgR0xfQ09QWV9XUklURV9CVUZGRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OEYzNworI2RlZmluZSBHTF9DT1BZX1JFQURfQlVGRkVSX0JJTkRJTkcgICAgICAgICAgICAgICAgICAgICAgR0xfQ09QWV9SRUFEX0JVRkZFUgorI2RlZmluZSBHTF9DT1BZX1dSSVRFX0JVRkZFUl9CSU5ESU5HICAgICAgICAgICAgICAgICAgICAgR0xfQ09QWV9XUklURV9CVUZGRVIKKyNkZWZpbmUgR0xfVU5JRk9STV9CVUZGRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OEExMQorI2RlZmluZSBHTF9VTklGT1JNX0JVRkZFUl9CSU5ESU5HICAgICAgICAgICAgICAgICAgICAgICAgMHg4QTI4CisjZGVmaW5lIEdMX1VOSUZPUk1fQlVGRkVSX1NUQVJUICAgICAgICAgICAgICAgICAgICAgICAgICAweDhBMjkKKyNkZWZpbmUgR0xfVU5JRk9STV9CVUZGRVJfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OEEyQQorI2RlZmluZSBHTF9NQVhfVkVSVEVYX1VOSUZPUk1fQkxPQ0tTICAgICAgICAgICAgICAgICAgICAgMHg4QTJCCisjZGVmaW5lIEdMX01BWF9GUkFHTUVOVF9VTklGT1JNX0JMT0NLUyAgICAgICAgICAgICAgICAgICAweDhBMkQKKyNkZWZpbmUgR0xfTUFYX0NPTUJJTkVEX1VOSUZPUk1fQkxPQ0tTICAgICAgICAgICAgICAgICAgIDB4OEEyRQorI2RlZmluZSBHTF9NQVhfVU5JRk9STV9CVUZGRVJfQklORElOR1MgICAgICAgICAgICAgICAgICAgMHg4QTJGCisjZGVmaW5lIEdMX01BWF9VTklGT1JNX0JMT0NLX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAweDhBMzAKKyNkZWZpbmUgR0xfTUFYX0NPTUJJTkVEX1ZFUlRFWF9VTklGT1JNX0NPTVBPTkVOVFMgICAgICAgIDB4OEEzMQorI2RlZmluZSBHTF9NQVhfQ09NQklORURfRlJBR01FTlRfVU5JRk9STV9DT01QT05FTlRTICAgICAgMHg4QTMzCisjZGVmaW5lIEdMX1VOSUZPUk1fQlVGRkVSX09GRlNFVF9BTElHTk1FTlQgICAgICAgICAgICAgICAweDhBMzQKKyNkZWZpbmUgR0xfQUNUSVZFX1VOSUZPUk1fQkxPQ0tfTUFYX05BTUVfTEVOR1RIICAgICAgICAgIDB4OEEzNQorI2RlZmluZSBHTF9BQ1RJVkVfVU5JRk9STV9CTE9DS1MgICAgICAgICAgICAgICAgICAgICAgICAgMHg4QTM2CisjZGVmaW5lIEdMX1VOSUZPUk1fVFlQRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDhBMzcKKyNkZWZpbmUgR0xfVU5JRk9STV9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OEEzOAorI2RlZmluZSBHTF9VTklGT1JNX05BTUVfTEVOR1RIICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4QTM5CisjZGVmaW5lIEdMX1VOSUZPUk1fQkxPQ0tfSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAweDhBM0EKKyNkZWZpbmUgR0xfVU5JRk9STV9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OEEzQgorI2RlZmluZSBHTF9VTklGT1JNX0FSUkFZX1NUUklERSAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4QTNDCisjZGVmaW5lIEdMX1VOSUZPUk1fTUFUUklYX1NUUklERSAgICAgICAgICAgICAgICAgICAgICAgICAweDhBM0QKKyNkZWZpbmUgR0xfVU5JRk9STV9JU19ST1dfTUFKT1IgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OEEzRQorI2RlZmluZSBHTF9VTklGT1JNX0JMT0NLX0JJTkRJTkcgICAgICAgICAgICAgICAgICAgICAgICAgMHg4QTNGCisjZGVmaW5lIEdMX1VOSUZPUk1fQkxPQ0tfREFUQV9TSVpFICAgICAgICAgICAgICAgICAgICAgICAweDhBNDAKKyNkZWZpbmUgR0xfVU5JRk9STV9CTE9DS19OQU1FX0xFTkdUSCAgICAgICAgICAgICAgICAgICAgIDB4OEE0MQorI2RlZmluZSBHTF9VTklGT1JNX0JMT0NLX0FDVElWRV9VTklGT1JNUyAgICAgICAgICAgICAgICAgMHg4QTQyCisjZGVmaW5lIEdMX1VOSUZPUk1fQkxPQ0tfQUNUSVZFX1VOSUZPUk1fSU5ESUNFUyAgICAgICAgICAweDhBNDMKKyNkZWZpbmUgR0xfVU5JRk9STV9CTE9DS19SRUZFUkVOQ0VEX0JZX1ZFUlRFWF9TSEFERVIgICAgIDB4OEE0NAorI2RlZmluZSBHTF9VTklGT1JNX0JMT0NLX1JFRkVSRU5DRURfQllfRlJBR01FTlRfU0hBREVSICAgMHg4QTQ2CisjZGVmaW5lIEdMX0lOVkFMSURfSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGdQorI2RlZmluZSBHTF9NQVhfVkVSVEVYX09VVFBVVF9DT01QT05FTlRTICAgICAgICAgICAgICAgICAgMHg5MTIyCisjZGVmaW5lIEdMX01BWF9GUkFHTUVOVF9JTlBVVF9DT01QT05FTlRTICAgICAgICAgICAgICAgICAweDkxMjUKKyNkZWZpbmUgR0xfTUFYX1NFUlZFUl9XQUlUX1RJTUVPVVQgICAgICAgICAgICAgICAgICAgICAgIDB4OTExMQorI2RlZmluZSBHTF9PQkpFQ1RfVFlQRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5MTEyCisjZGVmaW5lIEdMX1NZTkNfQ09ORElUSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkxMTMKKyNkZWZpbmUgR0xfU1lOQ19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OTExNAorI2RlZmluZSBHTF9TWU5DX0ZMQUdTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5MTE1CisjZGVmaW5lIEdMX1NZTkNfRkVOQ0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkxMTYKKyNkZWZpbmUgR0xfU1lOQ19HUFVfQ09NTUFORFNfQ09NUExFVEUgICAgICAgICAgICAgICAgICAgIDB4OTExNworI2RlZmluZSBHTF9VTlNJR05BTEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5MTE4CisjZGVmaW5lIEdMX1NJR05BTEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkxMTkKKyNkZWZpbmUgR0xfQUxSRUFEWV9TSUdOQUxFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OTExQQorI2RlZmluZSBHTF9USU1FT1VUX0VYUElSRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5MTFCCisjZGVmaW5lIEdMX0NPTkRJVElPTl9TQVRJU0ZJRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkxMUMKKyNkZWZpbmUgR0xfV0FJVF9GQUlMRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OTExRAorI2RlZmluZSBHTF9TWU5DX0ZMVVNIX0NPTU1BTkRTX0JJVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMQorI2RlZmluZSBHTF9USU1FT1VUX0lHTk9SRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkZGRkZGRkZGdWxsCisjZGVmaW5lIEdMX1ZFUlRFWF9BVFRSSUJfQVJSQVlfRElWSVNPUiAgICAgICAgICAgICAgICAgICAweDg4RkUKKyNkZWZpbmUgR0xfQU5ZX1NBTVBMRVNfUEFTU0VEICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OEMyRgorI2RlZmluZSBHTF9BTllfU0FNUExFU19QQVNTRURfQ09OU0VSVkFUSVZFICAgICAgICAgICAgICAgMHg4RDZBCisjZGVmaW5lIEdMX1NBTVBMRVJfQklORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDg5MTkKKyNkZWZpbmUgR0xfUkdCMTBfQTJVSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OTA2RgorI2RlZmluZSBHTF9URVhUVVJFX1NXSVpaTEVfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4RTQyCisjZGVmaW5lIEdMX1RFWFRVUkVfU1dJWlpMRV9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDhFNDMKKyNkZWZpbmUgR0xfVEVYVFVSRV9TV0laWkxFX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OEU0NAorI2RlZmluZSBHTF9URVhUVVJFX1NXSVpaTEVfQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4RTQ1CisjZGVmaW5lIEdMX0dSRUVOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5MDQKKyNkZWZpbmUgR0xfQkxVRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkwNQorI2RlZmluZSBHTF9JTlRfMl8xMF8xMF8xMF9SRVYgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4RDlGCisjZGVmaW5lIEdMX1RSQU5TRk9STV9GRUVEQkFDSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDhFMjIKKyNkZWZpbmUgR0xfVFJBTlNGT1JNX0ZFRURCQUNLX1BBVVNFRCAgICAgICAgICAgICAgICAgICAgIDB4OEUyMworI2RlZmluZSBHTF9UUkFOU0ZPUk1fRkVFREJBQ0tfQUNUSVZFICAgICAgICAgICAgICAgICAgICAgMHg4RTI0CisjZGVmaW5lIEdMX1RSQU5TRk9STV9GRUVEQkFDS19CSU5ESU5HICAgICAgICAgICAgICAgICAgICAweDhFMjUKKyNkZWZpbmUgR0xfUFJPR1JBTV9CSU5BUllfUkVUUklFVkFCTEVfSElOVCAgICAgICAgICAgICAgIDB4ODI1NworI2RlZmluZSBHTF9QUk9HUkFNX0JJTkFSWV9MRU5HVEggICAgICAgICAgICAgICAgICAgICAgICAgMHg4NzQxCisjZGVmaW5lIEdMX05VTV9QUk9HUkFNX0JJTkFSWV9GT1JNQVRTICAgICAgICAgICAgICAgICAgICAweDg3RkUKKyNkZWZpbmUgR0xfUFJPR1JBTV9CSU5BUllfRk9STUFUUyAgICAgICAgICAgICAgICAgICAgICAgIDB4ODdGRgorI2RlZmluZSBHTF9DT01QUkVTU0VEX1IxMV9FQUMgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5MjcwCisjZGVmaW5lIEdMX0NPTVBSRVNTRURfU0lHTkVEX1IxMV9FQUMgICAgICAgICAgICAgICAgICAgICAweDkyNzEKKyNkZWZpbmUgR0xfQ09NUFJFU1NFRF9SRzExX0VBQyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OTI3MgorI2RlZmluZSBHTF9DT01QUkVTU0VEX1NJR05FRF9SRzExX0VBQyAgICAgICAgICAgICAgICAgICAgMHg5MjczCisjZGVmaW5lIEdMX0NPTVBSRVNTRURfUkdCOF9FVEMyICAgICAgICAgICAgICAgICAgICAgICAgICAweDkyNzQKKyNkZWZpbmUgR0xfQ09NUFJFU1NFRF9TUkdCOF9FVEMyICAgICAgICAgICAgICAgICAgICAgICAgIDB4OTI3NQorI2RlZmluZSBHTF9DT01QUkVTU0VEX1JHQjhfUFVOQ0hUSFJPVUdIX0FMUEhBMV9FVEMyICAgICAgMHg5Mjc2CisjZGVmaW5lIEdMX0NPTVBSRVNTRURfU1JHQjhfUFVOQ0hUSFJPVUdIX0FMUEhBMV9FVEMyICAgICAweDkyNzcKKyNkZWZpbmUgR0xfQ09NUFJFU1NFRF9SR0JBOF9FVEMyX0VBQyAgICAgICAgICAgICAgICAgICAgIDB4OTI3OAorI2RlZmluZSBHTF9DT01QUkVTU0VEX1NSR0I4X0FMUEhBOF9FVEMyX0VBQyAgICAgICAgICAgICAgMHg5Mjc5CisjZGVmaW5lIEdMX1RFWFRVUkVfSU1NVVRBQkxFX0ZPUk1BVCAgICAgICAgICAgICAgICAgICAgICAweDkxMkYKKyNkZWZpbmUgR0xfTUFYX0VMRU1FTlRfSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OEQ2QgorI2RlZmluZSBHTF9OVU1fU0FNUExFX0NPVU5UUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5MzgwCisjZGVmaW5lIEdMX1RFWFRVUkVfSU1NVVRBQkxFX0xFVkVMUyAgICAgICAgICAgICAgICAgICAgICAweDgyREYKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBFbnRyeXBvaW50IGRlZmluaXRpb25zCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyogT3BlbkdMIEVTIDMuMCAqLworCitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsUmVhZEJ1ZmZlcikgKEdMZW51bSBtb2RlKTsKK2V4dGVybiBHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xEcmF3UmFuZ2VFbGVtZW50cykgKEdMZW51bSBtb2RlLCBHTHVpbnQgc3RhcnQsIEdMdWludCBlbmQsIEdMc2l6ZWkgY291bnQsIEdMZW51bSB0eXBlLCBjb25zdCBHTHZvaWQqIGluZGljZXMpOworZXh0ZXJuIEdMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbFRleEltYWdlM0QpIChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgaW50ZXJuYWxmb3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTHNpemVpIGRlcHRoLCBHTGludCBib3JkZXIsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBjb25zdCBHTHZvaWQqIHBpeGVscyk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsVGV4U3ViSW1hZ2UzRCkgKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LCBHTGludCB6b2Zmc2V0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xzaXplaSBkZXB0aCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIGNvbnN0IEdMdm9pZCogcGl4ZWxzKTsKK2V4dGVybiBHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xDb3B5VGV4U3ViSW1hZ2UzRCkgKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LCBHTGludCB6b2Zmc2V0LCBHTGludCB4LCBHTGludCB5LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsQ29tcHJlc3NlZFRleEltYWdlM0QpIChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xlbnVtIGludGVybmFsZm9ybWF0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xzaXplaSBkZXB0aCwgR0xpbnQgYm9yZGVyLCBHTHNpemVpIGltYWdlU2l6ZSwgY29uc3QgR0x2b2lkKiBkYXRhKTsKK2V4dGVybiBHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xDb21wcmVzc2VkVGV4U3ViSW1hZ2UzRCkgKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LCBHTGludCB6b2Zmc2V0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xzaXplaSBkZXB0aCwgR0xlbnVtIGZvcm1hdCwgR0xzaXplaSBpbWFnZVNpemUsIGNvbnN0IEdMdm9pZCogZGF0YSk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsR2VuUXVlcmllcykgKEdMc2l6ZWkgbiwgR0x1aW50KiBpZHMpOworZXh0ZXJuIEdMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbERlbGV0ZVF1ZXJpZXMpIChHTHNpemVpIG4sIGNvbnN0IEdMdWludCogaWRzKTsKK2V4dGVybiBHTF9BUElDQUxMIEdMYm9vbGVhbiAoKiBHTF9BUElFTlRSWSBnbElzUXVlcnkpIChHTHVpbnQgaWQpOworZXh0ZXJuIEdMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbEJlZ2luUXVlcnkpIChHTGVudW0gdGFyZ2V0LCBHTHVpbnQgaWQpOworZXh0ZXJuIEdMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbEVuZFF1ZXJ5KSAoR0xlbnVtIHRhcmdldCk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsR2V0UXVlcnlpdikgKEdMZW51bSB0YXJnZXQsIEdMZW51bSBwbmFtZSwgR0xpbnQqIHBhcmFtcyk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsR2V0UXVlcnlPYmplY3R1aXYpIChHTHVpbnQgaWQsIEdMZW51bSBwbmFtZSwgR0x1aW50KiBwYXJhbXMpOworZXh0ZXJuIEdMX0FQSUNBTEwgR0xib29sZWFuICgqIEdMX0FQSUVOVFJZIGdsVW5tYXBCdWZmZXIpIChHTGVudW0gdGFyZ2V0KTsKK2V4dGVybiBHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xHZXRCdWZmZXJQb2ludGVydikgKEdMZW51bSB0YXJnZXQsIEdMZW51bSBwbmFtZSwgR0x2b2lkKiogcGFyYW1zKTsKK2V4dGVybiBHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xEcmF3QnVmZmVycykgKEdMc2l6ZWkgbiwgY29uc3QgR0xlbnVtKiBidWZzKTsKK2V4dGVybiBHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xVbmlmb3JtTWF0cml4MngzZnYpIChHTGludCBsb2NhdGlvbiwgR0xzaXplaSBjb3VudCwgR0xib29sZWFuIHRyYW5zcG9zZSwgY29uc3QgR0xmbG9hdCogdmFsdWUpOworZXh0ZXJuIEdMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbFVuaWZvcm1NYXRyaXgzeDJmdikgKEdMaW50IGxvY2F0aW9uLCBHTHNpemVpIGNvdW50LCBHTGJvb2xlYW4gdHJhbnNwb3NlLCBjb25zdCBHTGZsb2F0KiB2YWx1ZSk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsVW5pZm9ybU1hdHJpeDJ4NGZ2KSAoR0xpbnQgbG9jYXRpb24sIEdMc2l6ZWkgY291bnQsIEdMYm9vbGVhbiB0cmFuc3Bvc2UsIGNvbnN0IEdMZmxvYXQqIHZhbHVlKTsKK2V4dGVybiBHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xVbmlmb3JtTWF0cml4NHgyZnYpIChHTGludCBsb2NhdGlvbiwgR0xzaXplaSBjb3VudCwgR0xib29sZWFuIHRyYW5zcG9zZSwgY29uc3QgR0xmbG9hdCogdmFsdWUpOworZXh0ZXJuIEdMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbFVuaWZvcm1NYXRyaXgzeDRmdikgKEdMaW50IGxvY2F0aW9uLCBHTHNpemVpIGNvdW50LCBHTGJvb2xlYW4gdHJhbnNwb3NlLCBjb25zdCBHTGZsb2F0KiB2YWx1ZSk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsVW5pZm9ybU1hdHJpeDR4M2Z2KSAoR0xpbnQgbG9jYXRpb24sIEdMc2l6ZWkgY291bnQsIEdMYm9vbGVhbiB0cmFuc3Bvc2UsIGNvbnN0IEdMZmxvYXQqIHZhbHVlKTsKK2V4dGVybiBHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xCbGl0RnJhbWVidWZmZXIpIChHTGludCBzcmNYMCwgR0xpbnQgc3JjWTAsIEdMaW50IHNyY1gxLCBHTGludCBzcmNZMSwgR0xpbnQgZHN0WDAsIEdMaW50IGRzdFkwLCBHTGludCBkc3RYMSwgR0xpbnQgZHN0WTEsIEdMYml0ZmllbGQgbWFzaywgR0xlbnVtIGZpbHRlcik7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsUmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKSAoR0xlbnVtIHRhcmdldCwgR0xzaXplaSBzYW1wbGVzLCBHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0KTsKK2V4dGVybiBHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xGcmFtZWJ1ZmZlclRleHR1cmVMYXllcikgKEdMZW51bSB0YXJnZXQsIEdMZW51bSBhdHRhY2htZW50LCBHTHVpbnQgdGV4dHVyZSwgR0xpbnQgbGV2ZWwsIEdMaW50IGxheWVyKTsKK2V4dGVybiBHTF9BUElDQUxMIEdMdm9pZCogKCogR0xfQVBJRU5UUlkgZ2xNYXBCdWZmZXJSYW5nZSkgKEdMZW51bSB0YXJnZXQsIEdMaW50cHRyIG9mZnNldCwgR0xzaXplaXB0ciBsZW5ndGgsIEdMYml0ZmllbGQgYWNjZXNzKTsKK2V4dGVybiBHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xGbHVzaE1hcHBlZEJ1ZmZlclJhbmdlKSAoR0xlbnVtIHRhcmdldCwgR0xpbnRwdHIgb2Zmc2V0LCBHTHNpemVpcHRyIGxlbmd0aCk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsQmluZFZlcnRleEFycmF5KSAoR0x1aW50IGFycmF5KTsKK2V4dGVybiBHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xEZWxldGVWZXJ0ZXhBcnJheXMpIChHTHNpemVpIG4sIGNvbnN0IEdMdWludCogYXJyYXlzKTsKK2V4dGVybiBHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xHZW5WZXJ0ZXhBcnJheXMpIChHTHNpemVpIG4sIEdMdWludCogYXJyYXlzKTsKK2V4dGVybiBHTF9BUElDQUxMIEdMYm9vbGVhbiAoKiBHTF9BUElFTlRSWSBnbElzVmVydGV4QXJyYXkpIChHTHVpbnQgYXJyYXkpOworZXh0ZXJuIEdMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbEdldEludGVnZXJpX3YpIChHTGVudW0gdGFyZ2V0LCBHTHVpbnQgaW5kZXgsIEdMaW50KiBkYXRhKTsKK2V4dGVybiBHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xCZWdpblRyYW5zZm9ybUZlZWRiYWNrKSAoR0xlbnVtIHByaW1pdGl2ZU1vZGUpOworZXh0ZXJuIEdMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbEVuZFRyYW5zZm9ybUZlZWRiYWNrKSAodm9pZCk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsQmluZEJ1ZmZlclJhbmdlKSAoR0xlbnVtIHRhcmdldCwgR0x1aW50IGluZGV4LCBHTHVpbnQgYnVmZmVyLCBHTGludHB0ciBvZmZzZXQsIEdMc2l6ZWlwdHIgc2l6ZSk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsQmluZEJ1ZmZlckJhc2UpIChHTGVudW0gdGFyZ2V0LCBHTHVpbnQgaW5kZXgsIEdMdWludCBidWZmZXIpOworZXh0ZXJuIEdMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbFRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZ3MpIChHTHVpbnQgcHJvZ3JhbSwgR0xzaXplaSBjb3VudCwgY29uc3QgR0xjaGFyKiBjb25zdCogdmFyeWluZ3MsIEdMZW51bSBidWZmZXJNb2RlKTsKK2V4dGVybiBHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xHZXRUcmFuc2Zvcm1GZWVkYmFja1ZhcnlpbmcpIChHTHVpbnQgcHJvZ3JhbSwgR0x1aW50IGluZGV4LCBHTHNpemVpIGJ1ZlNpemUsIEdMc2l6ZWkqIGxlbmd0aCwgR0xzaXplaSogc2l6ZSwgR0xlbnVtKiB0eXBlLCBHTGNoYXIqIG5hbWUpOworZXh0ZXJuIEdMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbFZlcnRleEF0dHJpYklQb2ludGVyKSAoR0x1aW50IGluZGV4LCBHTGludCBzaXplLCBHTGVudW0gdHlwZSwgR0xzaXplaSBzdHJpZGUsIGNvbnN0IEdMdm9pZCogcG9pbnRlcik7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsR2V0VmVydGV4QXR0cmliSWl2KSAoR0x1aW50IGluZGV4LCBHTGVudW0gcG5hbWUsIEdMaW50KiBwYXJhbXMpOworZXh0ZXJuIEdMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbEdldFZlcnRleEF0dHJpYkl1aXYpIChHTHVpbnQgaW5kZXgsIEdMZW51bSBwbmFtZSwgR0x1aW50KiBwYXJhbXMpOworZXh0ZXJuIEdMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbFZlcnRleEF0dHJpYkk0aSkgKEdMdWludCBpbmRleCwgR0xpbnQgeCwgR0xpbnQgeSwgR0xpbnQgeiwgR0xpbnQgdyk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsVmVydGV4QXR0cmliSTR1aSkgKEdMdWludCBpbmRleCwgR0x1aW50IHgsIEdMdWludCB5LCBHTHVpbnQgeiwgR0x1aW50IHcpOworZXh0ZXJuIEdMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbFZlcnRleEF0dHJpYkk0aXYpIChHTHVpbnQgaW5kZXgsIGNvbnN0IEdMaW50KiB2KTsKK2V4dGVybiBHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xWZXJ0ZXhBdHRyaWJJNHVpdikgKEdMdWludCBpbmRleCwgY29uc3QgR0x1aW50KiB2KTsKK2V4dGVybiBHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xHZXRVbmlmb3JtdWl2KSAoR0x1aW50IHByb2dyYW0sIEdMaW50IGxvY2F0aW9uLCBHTHVpbnQqIHBhcmFtcyk7CitleHRlcm4gR0xfQVBJQ0FMTCBHTGludCAoKiBHTF9BUElFTlRSWSBnbEdldEZyYWdEYXRhTG9jYXRpb24pIChHTHVpbnQgcHJvZ3JhbSwgY29uc3QgR0xjaGFyICpuYW1lKTsKK2V4dGVybiBHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xVbmlmb3JtMXVpKSAoR0xpbnQgbG9jYXRpb24sIEdMdWludCB2MCk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsVW5pZm9ybTJ1aSkgKEdMaW50IGxvY2F0aW9uLCBHTHVpbnQgdjAsIEdMdWludCB2MSk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsVW5pZm9ybTN1aSkgKEdMaW50IGxvY2F0aW9uLCBHTHVpbnQgdjAsIEdMdWludCB2MSwgR0x1aW50IHYyKTsKK2V4dGVybiBHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xVbmlmb3JtNHVpKSAoR0xpbnQgbG9jYXRpb24sIEdMdWludCB2MCwgR0x1aW50IHYxLCBHTHVpbnQgdjIsIEdMdWludCB2Myk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsVW5pZm9ybTF1aXYpIChHTGludCBsb2NhdGlvbiwgR0xzaXplaSBjb3VudCwgY29uc3QgR0x1aW50KiB2YWx1ZSk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsVW5pZm9ybTJ1aXYpIChHTGludCBsb2NhdGlvbiwgR0xzaXplaSBjb3VudCwgY29uc3QgR0x1aW50KiB2YWx1ZSk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsVW5pZm9ybTN1aXYpIChHTGludCBsb2NhdGlvbiwgR0xzaXplaSBjb3VudCwgY29uc3QgR0x1aW50KiB2YWx1ZSk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsVW5pZm9ybTR1aXYpIChHTGludCBsb2NhdGlvbiwgR0xzaXplaSBjb3VudCwgY29uc3QgR0x1aW50KiB2YWx1ZSk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsQ2xlYXJCdWZmZXJpdikgKEdMZW51bSBidWZmZXIsIEdMaW50IGRyYXdidWZmZXIsIGNvbnN0IEdMaW50KiB2YWx1ZSk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsQ2xlYXJCdWZmZXJ1aXYpIChHTGVudW0gYnVmZmVyLCBHTGludCBkcmF3YnVmZmVyLCBjb25zdCBHTHVpbnQqIHZhbHVlKTsKK2V4dGVybiBHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xDbGVhckJ1ZmZlcmZ2KSAoR0xlbnVtIGJ1ZmZlciwgR0xpbnQgZHJhd2J1ZmZlciwgY29uc3QgR0xmbG9hdCogdmFsdWUpOworZXh0ZXJuIEdMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbENsZWFyQnVmZmVyZmkpIChHTGVudW0gYnVmZmVyLCBHTGludCBkcmF3YnVmZmVyLCBHTGZsb2F0IGRlcHRoLCBHTGludCBzdGVuY2lsKTsKK2V4dGVybiBHTF9BUElDQUxMIGNvbnN0IEdMdWJ5dGUqICgqIEdMX0FQSUVOVFJZIGdsR2V0U3RyaW5naSkgKEdMZW51bSBuYW1lLCBHTHVpbnQgaW5kZXgpOworZXh0ZXJuIEdMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbENvcHlCdWZmZXJTdWJEYXRhKSAoR0xlbnVtIHJlYWRUYXJnZXQsIEdMZW51bSB3cml0ZVRhcmdldCwgR0xpbnRwdHIgcmVhZE9mZnNldCwgR0xpbnRwdHIgd3JpdGVPZmZzZXQsIEdMc2l6ZWlwdHIgc2l6ZSk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsR2V0VW5pZm9ybUluZGljZXMpIChHTHVpbnQgcHJvZ3JhbSwgR0xzaXplaSB1bmlmb3JtQ291bnQsIGNvbnN0IEdMY2hhciogY29uc3QqIHVuaWZvcm1OYW1lcywgR0x1aW50KiB1bmlmb3JtSW5kaWNlcyk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsR2V0QWN0aXZlVW5pZm9ybXNpdikgKEdMdWludCBwcm9ncmFtLCBHTHNpemVpIHVuaWZvcm1Db3VudCwgY29uc3QgR0x1aW50KiB1bmlmb3JtSW5kaWNlcywgR0xlbnVtIHBuYW1lLCBHTGludCogcGFyYW1zKTsKK2V4dGVybiBHTF9BUElDQUxMIEdMdWludCAoKiBHTF9BUElFTlRSWSBnbEdldFVuaWZvcm1CbG9ja0luZGV4KSAoR0x1aW50IHByb2dyYW0sIGNvbnN0IEdMY2hhciogdW5pZm9ybUJsb2NrTmFtZSk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsR2V0QWN0aXZlVW5pZm9ybUJsb2NraXYpIChHTHVpbnQgcHJvZ3JhbSwgR0x1aW50IHVuaWZvcm1CbG9ja0luZGV4LCBHTGVudW0gcG5hbWUsIEdMaW50KiBwYXJhbXMpOworZXh0ZXJuIEdMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbEdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUpIChHTHVpbnQgcHJvZ3JhbSwgR0x1aW50IHVuaWZvcm1CbG9ja0luZGV4LCBHTHNpemVpIGJ1ZlNpemUsIEdMc2l6ZWkqIGxlbmd0aCwgR0xjaGFyKiB1bmlmb3JtQmxvY2tOYW1lKTsKK2V4dGVybiBHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xVbmlmb3JtQmxvY2tCaW5kaW5nKSAoR0x1aW50IHByb2dyYW0sIEdMdWludCB1bmlmb3JtQmxvY2tJbmRleCwgR0x1aW50IHVuaWZvcm1CbG9ja0JpbmRpbmcpOworZXh0ZXJuIEdMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbERyYXdBcnJheXNJbnN0YW5jZWQpIChHTGVudW0gbW9kZSwgR0xpbnQgZmlyc3QsIEdMc2l6ZWkgY291bnQsIEdMc2l6ZWkgaW5zdGFuY2VDb3VudCk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsRHJhd0VsZW1lbnRzSW5zdGFuY2VkKSAoR0xlbnVtIG1vZGUsIEdMc2l6ZWkgY291bnQsIEdMZW51bSB0eXBlLCBjb25zdCBHTHZvaWQqIGluZGljZXMsIEdMc2l6ZWkgaW5zdGFuY2VDb3VudCk7CitleHRlcm4gR0xfQVBJQ0FMTCBHTHN5bmMgKCogR0xfQVBJRU5UUlkgZ2xGZW5jZVN5bmMpIChHTGVudW0gY29uZGl0aW9uLCBHTGJpdGZpZWxkIGZsYWdzKTsKK2V4dGVybiBHTF9BUElDQUxMIEdMYm9vbGVhbiAoKiBHTF9BUElFTlRSWSBnbElzU3luYykgKEdMc3luYyBzeW5jKTsKK2V4dGVybiBHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xEZWxldGVTeW5jKSAoR0xzeW5jIHN5bmMpOworZXh0ZXJuIEdMX0FQSUNBTEwgR0xlbnVtICgqIEdMX0FQSUVOVFJZIGdsQ2xpZW50V2FpdFN5bmMpIChHTHN5bmMgc3luYywgR0xiaXRmaWVsZCBmbGFncywgR0x1aW50NjQgdGltZW91dCk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsV2FpdFN5bmMpIChHTHN5bmMgc3luYywgR0xiaXRmaWVsZCBmbGFncywgR0x1aW50NjQgdGltZW91dCk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsR2V0SW50ZWdlcjY0dikgKEdMZW51bSBwbmFtZSwgR0xpbnQ2NCogcGFyYW1zKTsKK2V4dGVybiBHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xHZXRTeW5jaXYpIChHTHN5bmMgc3luYywgR0xlbnVtIHBuYW1lLCBHTHNpemVpIGJ1ZlNpemUsIEdMc2l6ZWkqIGxlbmd0aCwgR0xpbnQqIHZhbHVlcyk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsR2V0SW50ZWdlcjY0aV92KSAoR0xlbnVtIHRhcmdldCwgR0x1aW50IGluZGV4LCBHTGludDY0KiBkYXRhKTsKK2V4dGVybiBHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xHZXRCdWZmZXJQYXJhbWV0ZXJpNjR2KSAoR0xlbnVtIHRhcmdldCwgR0xlbnVtIHBuYW1lLCBHTGludDY0KiBwYXJhbXMpOworZXh0ZXJuIEdMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbEdlblNhbXBsZXJzKSAoR0xzaXplaSBjb3VudCwgR0x1aW50KiBzYW1wbGVycyk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsRGVsZXRlU2FtcGxlcnMpIChHTHNpemVpIGNvdW50LCBjb25zdCBHTHVpbnQqIHNhbXBsZXJzKTsKK2V4dGVybiBHTF9BUElDQUxMIEdMYm9vbGVhbiAoKiBHTF9BUElFTlRSWSBnbElzU2FtcGxlcikgKEdMdWludCBzYW1wbGVyKTsKK2V4dGVybiBHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xCaW5kU2FtcGxlcikgKEdMdWludCB1bml0LCBHTHVpbnQgc2FtcGxlcik7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsU2FtcGxlclBhcmFtZXRlcmkpIChHTHVpbnQgc2FtcGxlciwgR0xlbnVtIHBuYW1lLCBHTGludCBwYXJhbSk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsU2FtcGxlclBhcmFtZXRlcml2KSAoR0x1aW50IHNhbXBsZXIsIEdMZW51bSBwbmFtZSwgY29uc3QgR0xpbnQqIHBhcmFtKTsKK2V4dGVybiBHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xTYW1wbGVyUGFyYW1ldGVyZikgKEdMdWludCBzYW1wbGVyLCBHTGVudW0gcG5hbWUsIEdMZmxvYXQgcGFyYW0pOworZXh0ZXJuIEdMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbFNhbXBsZXJQYXJhbWV0ZXJmdikgKEdMdWludCBzYW1wbGVyLCBHTGVudW0gcG5hbWUsIGNvbnN0IEdMZmxvYXQqIHBhcmFtKTsKK2V4dGVybiBHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xHZXRTYW1wbGVyUGFyYW1ldGVyaXYpIChHTHVpbnQgc2FtcGxlciwgR0xlbnVtIHBuYW1lLCBHTGludCogcGFyYW1zKTsKK2V4dGVybiBHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xHZXRTYW1wbGVyUGFyYW1ldGVyZnYpIChHTHVpbnQgc2FtcGxlciwgR0xlbnVtIHBuYW1lLCBHTGZsb2F0KiBwYXJhbXMpOworZXh0ZXJuIEdMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbFZlcnRleEF0dHJpYkRpdmlzb3IpIChHTHVpbnQgaW5kZXgsIEdMdWludCBkaXZpc29yKTsKK2V4dGVybiBHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xCaW5kVHJhbnNmb3JtRmVlZGJhY2spIChHTGVudW0gdGFyZ2V0LCBHTHVpbnQgaWQpOworZXh0ZXJuIEdMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbERlbGV0ZVRyYW5zZm9ybUZlZWRiYWNrcykgKEdMc2l6ZWkgbiwgY29uc3QgR0x1aW50KiBpZHMpOworZXh0ZXJuIEdMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbEdlblRyYW5zZm9ybUZlZWRiYWNrcykgKEdMc2l6ZWkgbiwgR0x1aW50KiBpZHMpOworZXh0ZXJuIEdMX0FQSUNBTEwgR0xib29sZWFuICgqIEdMX0FQSUVOVFJZIGdsSXNUcmFuc2Zvcm1GZWVkYmFjaykgKEdMdWludCBpZCk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsUGF1c2VUcmFuc2Zvcm1GZWVkYmFjaykgKHZvaWQpOworZXh0ZXJuIEdMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbFJlc3VtZVRyYW5zZm9ybUZlZWRiYWNrKSAodm9pZCk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsR2V0UHJvZ3JhbUJpbmFyeSkgKEdMdWludCBwcm9ncmFtLCBHTHNpemVpIGJ1ZlNpemUsIEdMc2l6ZWkqIGxlbmd0aCwgR0xlbnVtKiBiaW5hcnlGb3JtYXQsIEdMdm9pZCogYmluYXJ5KTsKK2V4dGVybiBHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xQcm9ncmFtQmluYXJ5KSAoR0x1aW50IHByb2dyYW0sIEdMZW51bSBiaW5hcnlGb3JtYXQsIGNvbnN0IEdMdm9pZCogYmluYXJ5LCBHTHNpemVpIGxlbmd0aCk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsUHJvZ3JhbVBhcmFtZXRlcmkpIChHTHVpbnQgcHJvZ3JhbSwgR0xlbnVtIHBuYW1lLCBHTGludCB2YWx1ZSk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsSW52YWxpZGF0ZUZyYW1lYnVmZmVyKSAoR0xlbnVtIHRhcmdldCwgR0xzaXplaSBudW1BdHRhY2htZW50cywgY29uc3QgR0xlbnVtKiBhdHRhY2htZW50cyk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsSW52YWxpZGF0ZVN1YkZyYW1lYnVmZmVyKSAoR0xlbnVtIHRhcmdldCwgR0xzaXplaSBudW1BdHRhY2htZW50cywgY29uc3QgR0xlbnVtKiBhdHRhY2htZW50cywgR0xpbnQgeCwgR0xpbnQgeSwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQpOworZXh0ZXJuIEdMX0FQSUNBTEwgdm9pZCAoKiBHTF9BUElFTlRSWSBnbFRleFN0b3JhZ2UyRCkgKEdMZW51bSB0YXJnZXQsIEdMc2l6ZWkgbGV2ZWxzLCBHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0KTsKK2V4dGVybiBHTF9BUElDQUxMIHZvaWQgKCogR0xfQVBJRU5UUlkgZ2xUZXhTdG9yYWdlM0QpIChHTGVudW0gdGFyZ2V0LCBHTHNpemVpIGxldmVscywgR0xlbnVtIGludGVybmFsZm9ybWF0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xzaXplaSBkZXB0aCk7CitleHRlcm4gR0xfQVBJQ0FMTCB2b2lkICgqIEdMX0FQSUVOVFJZIGdsR2V0SW50ZXJuYWxmb3JtYXRpdikgKEdMZW51bSB0YXJnZXQsIEdMZW51bSBpbnRlcm5hbGZvcm1hdCwgR0xlbnVtIHBuYW1lLCBHTHNpemVpIGJ1ZlNpemUsIEdMaW50KiBwYXJhbXMpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL25kay9zb3VyY2VzL2FuZHJvaWQvbmRrX2hlbHBlci9pbnRlcnBvbGF0b3IuY3BwIGIvbmRrL3NvdXJjZXMvYW5kcm9pZC9uZGtfaGVscGVyL2ludGVycG9sYXRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDE2NzA1MQotLS0gL2Rldi9udWxsCisrKyBiL25kay9zb3VyY2VzL2FuZHJvaWQvbmRrX2hlbHBlci9pbnRlcnBvbGF0b3IuY3BwCkBAIC0wLDAgKzEsMTgxIEBACisvKgorICogQ29weXJpZ2h0IDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSAiaW50ZXJwb2xhdG9yLmgiCisjaW5jbHVkZSA8bWF0aC5oPgorI2luY2x1ZGUgImludGVycG9sYXRvci5oIgorCituYW1lc3BhY2UgbmRrX2hlbHBlcgoreworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vQ3RvcgorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitJbnRlcnBvbGF0b3I6OkludGVycG9sYXRvcigpCit7CisgICAgbGlzdF9wYXJhbXNfLmNsZWFyKCk7Cit9CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy9EdG9yCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0ludGVycG9sYXRvcjo6fkludGVycG9sYXRvcigpCit7CisgICAgbGlzdF9wYXJhbXNfLmNsZWFyKCk7Cit9CisKK3ZvaWQgSW50ZXJwb2xhdG9yOjpDbGVhcigpCit7CisgICAgbGlzdF9wYXJhbXNfLmNsZWFyKCk7Cit9CisKK0ludGVycG9sYXRvciYgSW50ZXJwb2xhdG9yOjpTZXQoIGNvbnN0IGZsb2F0IHN0YXJ0LAorICAgICAgICBjb25zdCBmbG9hdCBkZXN0LAorICAgICAgICBjb25zdCBJTlRFUlBPTEFUT1JfVFlQRSB0eXBlLAorICAgICAgICBjb25zdCBkb3VibGUgZHVyYXRpb24gKQoreworICAgIC8vaW5pdCB0aGUgcGFyYW1ldGVycyBmb3IgdGhlIGludGVycG9sYXRpb24gcHJvY2VzcworICAgIHN0YXJ0X3RpbWVfID0gUGVyZk1vbml0b3I6OkdldEN1cnJlbnRUaW1lKCk7CisgICAgZGVzdF90aW1lXyA9IHN0YXJ0X3RpbWVfICsgZHVyYXRpb247CisgICAgdHlwZV8gPSB0eXBlOworCisgICAgc3RhcnRfdmFsdWVfID0gc3RhcnQ7CisgICAgZGVzdF92YWx1ZV8gPSBkZXN0OworICAgIHJldHVybiAqdGhpczsKK30KKworSW50ZXJwb2xhdG9yJiBJbnRlcnBvbGF0b3I6OkFkZCggY29uc3QgZmxvYXQgZGVzdCwKKyAgICAgICAgY29uc3QgSU5URVJQT0xBVE9SX1RZUEUgdHlwZSwKKyAgICAgICAgY29uc3QgZG91YmxlIGR1cmF0aW9uICkKK3sKKyAgICBJbnRlcnBvbGF0b3JQYXJhbXMgcGFyYW07CisgICAgcGFyYW0uZGVzdF92YWx1ZV8gPSBkZXN0OworICAgIHBhcmFtLnR5cGVfID0gdHlwZTsKKyAgICBwYXJhbS5kdXJhdGlvbl8gPSBkdXJhdGlvbjsKKyAgICBsaXN0X3BhcmFtc18ucHVzaF9iYWNrKCBwYXJhbSApOworICAgIHJldHVybiAqdGhpczsKK30KKworYm9vbCBJbnRlcnBvbGF0b3I6OlVwZGF0ZSggY29uc3QgZG91YmxlIGN1cnJlbnRfdGltZSwgZmxvYXQmIHAgKQoreworICAgIGJvb2wgYkNvbnRpbnVlOworICAgIGlmKCBjdXJyZW50X3RpbWUgPj0gZGVzdF90aW1lXyApCisgICAgeworICAgICAgICBwID0gZGVzdF92YWx1ZV87CisgICAgICAgIGlmKCBsaXN0X3BhcmFtc18uc2l6ZSgpICkKKyAgICAgICAgeworICAgICAgICAgICAgSW50ZXJwb2xhdG9yUGFyYW1zJiBpdGVtID0gbGlzdF9wYXJhbXNfLmZyb250KCk7CisgICAgICAgICAgICBTZXQoIGRlc3RfdmFsdWVfLCBpdGVtLmRlc3RfdmFsdWVfLCBpdGVtLnR5cGVfLCBpdGVtLmR1cmF0aW9uXyApOworICAgICAgICAgICAgbGlzdF9wYXJhbXNfLnBvcF9mcm9udCgpOworCisgICAgICAgICAgICBiQ29udGludWUgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgYkNvbnRpbnVlID0gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZQorICAgIHsKKyAgICAgICAgZmxvYXQgdCA9IChmbG9hdCkgKGN1cnJlbnRfdGltZSAtIHN0YXJ0X3RpbWVfKTsKKyAgICAgICAgZmxvYXQgZCA9IChmbG9hdCkgKGRlc3RfdGltZV8gLSBzdGFydF90aW1lXyk7CisgICAgICAgIGZsb2F0IGIgPSBzdGFydF92YWx1ZV87CisgICAgICAgIGZsb2F0IGMgPSBkZXN0X3ZhbHVlXyAtIHN0YXJ0X3ZhbHVlXzsKKyAgICAgICAgcCA9IEdldEZvcm11bGEoIHR5cGVfLCB0LCBiLCBkLCBjICk7CisKKyAgICAgICAgYkNvbnRpbnVlID0gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGJDb250aW51ZTsKK30KKworZmxvYXQgSW50ZXJwb2xhdG9yOjpHZXRGb3JtdWxhKCBjb25zdCBJTlRFUlBPTEFUT1JfVFlQRSB0eXBlLAorICAgICAgICBjb25zdCBmbG9hdCB0LAorICAgICAgICBjb25zdCBmbG9hdCBiLAorICAgICAgICBjb25zdCBmbG9hdCBkLAorICAgICAgICBjb25zdCBmbG9hdCBjICkKK3sKKyAgICBmbG9hdCB0MTsKKyAgICBzd2l0Y2goIHR5cGUgKQorICAgIHsKKyAgICBjYXNlIElOVEVSUE9MQVRPUl9UWVBFX0xJTkVBUjoKKyAgICAgICAgLy8gc2ltcGxlIGxpbmVhciBpbnRlcnBvbGF0aW9uIC0gbm8gZWFzaW5nCisgICAgICAgIHJldHVybiAoYyAqIHQgLyBkICsgYik7CisKKyAgICBjYXNlIElOVEVSUE9MQVRPUl9UWVBFX0VBU0VJTlFVQUQ6CisgICAgICAgIC8vIHF1YWRyYXRpYyAodF4yKSBlYXNpbmcgaW4gLSBhY2NlbGVyYXRpbmcgZnJvbSB6ZXJvIHZlbG9jaXR5CisgICAgICAgIHQxID0gdCAvIGQ7CisgICAgICAgIHJldHVybiAoYyAqIHQxICogdDEgKyBiKTsKKworICAgIGNhc2UgSU5URVJQT0xBVE9SX1RZUEVfRUFTRU9VVFFVQUQ6CisgICAgICAgIC8vIHF1YWRyYXRpYyAodF4yKSBlYXNpbmcgb3V0IC0gZGVjZWxlcmF0aW5nIHRvIHplcm8gdmVsb2NpdHkKKyAgICAgICAgdDEgPSB0IC8gZDsKKyAgICAgICAgcmV0dXJuICgtYyAqIHQxICogKHQxIC0gMikgKyBiKTsKKworICAgIGNhc2UgSU5URVJQT0xBVE9SX1RZUEVfRUFTRUlOT1VUUVVBRDoKKyAgICAgICAgLy8gcXVhZHJhdGljIGVhc2luZyBpbi9vdXQgLSBhY2NlbGVyYXRpb24gdW50aWwgaGFsZndheSwgdGhlbiBkZWNlbGVyYXRpb24KKyAgICAgICAgdDEgPSB0IC8gZCAvIDI7CisgICAgICAgIGlmKCB0MSA8IDEgKQorICAgICAgICAgICAgcmV0dXJuIChjIC8gMiAqIHQxICogdDEgKyBiKTsKKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgICB0MSA9IHQxIC0gMTsKKyAgICAgICAgICAgIHJldHVybiAoLWMgLyAyICogKHQxICogKHQxIC0gMikgLSAxKSArIGIpOworICAgICAgICB9CisgICAgY2FzZSBJTlRFUlBPTEFUT1JfVFlQRV9FQVNFSU5DVUJJQzoKKyAgICAgICAgLy8gY3ViaWMgZWFzaW5nIGluIC0gYWNjZWxlcmF0aW5nIGZyb20gemVybyB2ZWxvY2l0eQorICAgICAgICB0MSA9IHQgLyBkOworICAgICAgICByZXR1cm4gKGMgKiB0MSAqIHQxICogdDEgKyBiKTsKKworICAgIGNhc2UgSU5URVJQT0xBVE9SX1RZUEVfRUFTRU9VVENVQklDOgorICAgICAgICAvLyBjdWJpYyBlYXNpbmcgaW4gLSBhY2NlbGVyYXRpbmcgZnJvbSB6ZXJvIHZlbG9jaXR5CisgICAgICAgIHQxID0gdCAvIGQgLSAxOworICAgICAgICByZXR1cm4gKGMgKiAodDEgKiB0MSAqIHQxICsgMSkgKyBiKTsKKworICAgIGNhc2UgSU5URVJQT0xBVE9SX1RZUEVfRUFTRUlOT1VUQ1VCSUM6CisgICAgICAgIC8vIGN1YmljIGVhc2luZyBpbiAtIGFjY2VsZXJhdGluZyBmcm9tIHplcm8gdmVsb2NpdHkKKyAgICAgICAgdDEgPSB0IC8gZCAvIDI7CisKKyAgICAgICAgaWYoIHQxIDwgMSApCisgICAgICAgICAgICByZXR1cm4gKGMgLyAyICogdDEgKiB0MSAqIHQxICsgYik7CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgdDEgLT0gMjsKKyAgICAgICAgICAgIHJldHVybiAoYyAvIDIgKiAodDEgKiB0MSAqIHQxICsgMikgKyBiKTsKKyAgICAgICAgfQorICAgIGNhc2UgSU5URVJQT0xBVE9SX1RZUEVfRUFTRUlOUVVBUlQ6CisgICAgICAgIC8vIHF1YXJ0aWMgZWFzaW5nIGluIC0gYWNjZWxlcmF0aW5nIGZyb20gemVybyB2ZWxvY2l0eQorICAgICAgICB0MSA9IHQgLyBkOworICAgICAgICByZXR1cm4gKGMgKiB0MSAqIHQxICogdDEgKiB0MSArIGIpOworCisgICAgY2FzZSBJTlRFUlBPTEFUT1JfVFlQRV9FQVNFSU5FWFBPOgorICAgICAgICAvLyBleHBvbmVudGlhbCAoMl50KSBlYXNpbmcgaW4gLSBhY2NlbGVyYXRpbmcgZnJvbSB6ZXJvIHZlbG9jaXR5CisgICAgICAgIGlmKCB0ID09IDAgKQorICAgICAgICAgICAgcmV0dXJuIGI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiAoYyAqIHBvd2YoIDIsICgxMCAqICh0IC8gZCAtIDEpKSApICsgYik7CisKKyAgICBjYXNlIElOVEVSUE9MQVRPUl9UWVBFX0VBU0VPVVRFWFBPOgorICAgICAgICAvLyBleHBvbmVudGlhbCAoMl50KSBlYXNpbmcgb3V0IC0gZGVjZWxlcmF0aW5nIHRvIHplcm8gdmVsb2NpdHkKKyAgICAgICAgaWYoIHQgPT0gZCApCisgICAgICAgICAgICByZXR1cm4gKGIgKyBjKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIChjICogKC1wb3dmKCAyLCAtMTAgKiB0IC8gZCApICsgMSkgKyBiKTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gMDsKKyAgICB9Cit9CisKK30gICAvL25hbWVzcGFjZSBuZGtIZWxwZXIKZGlmZiAtLWdpdCBhL25kay9zb3VyY2VzL2FuZHJvaWQvbmRrX2hlbHBlci9pbnRlcnBvbGF0b3IuaCBiL25kay9zb3VyY2VzL2FuZHJvaWQvbmRrX2hlbHBlci9pbnRlcnBvbGF0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjI2ZTMzCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3NvdXJjZXMvYW5kcm9pZC9uZGtfaGVscGVyL2ludGVycG9sYXRvci5oCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgSU5URVJQT0xBVE9SX0hfCisjZGVmaW5lIElOVEVSUE9MQVRPUl9IXworCisjaW5jbHVkZSA8am5pLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDx0aW1lLmg+CisjaW5jbHVkZSAiSk5JSGVscGVyLmgiCisjaW5jbHVkZSAicGVyZk1vbml0b3IuaCIKKyNpbmNsdWRlIDxsaXN0PgorCituYW1lc3BhY2UgbmRrX2hlbHBlcgoreworCitlbnVtIElOVEVSUE9MQVRPUl9UWVBFCit7CisgICAgSU5URVJQT0xBVE9SX1RZUEVfTElORUFSLAorICAgIElOVEVSUE9MQVRPUl9UWVBFX0VBU0VJTlFVQUQsCisgICAgSU5URVJQT0xBVE9SX1RZUEVfRUFTRU9VVFFVQUQsCisgICAgSU5URVJQT0xBVE9SX1RZUEVfRUFTRUlOT1VUUVVBRCwKKyAgICBJTlRFUlBPTEFUT1JfVFlQRV9FQVNFSU5DVUJJQywKKyAgICBJTlRFUlBPTEFUT1JfVFlQRV9FQVNFT1VUQ1VCSUMsCisgICAgSU5URVJQT0xBVE9SX1RZUEVfRUFTRUlOT1VUQ1VCSUMsCisgICAgSU5URVJQT0xBVE9SX1RZUEVfRUFTRUlOUVVBUlQsCisgICAgSU5URVJQT0xBVE9SX1RZUEVfRUFTRUlORVhQTywKKyAgICBJTlRFUlBPTEFUT1JfVFlQRV9FQVNFT1VURVhQTywKK307CisKK3N0cnVjdCBJbnRlcnBvbGF0b3JQYXJhbXMKK3sKKyAgICBmbG9hdCBkZXN0X3ZhbHVlXzsKKyAgICBJTlRFUlBPTEFUT1JfVFlQRSB0eXBlXzsKKyAgICBkb3VibGUgZHVyYXRpb25fOworfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogSW50ZXJwb2xhdGVzIHZhbHVlcyB3aXRoIHNldmVyYWwgaW50ZXJwb2xhdGlvbiBtZXRob2RzCisgKi8KK2NsYXNzIEludGVycG9sYXRvcgoreworcHJpdmF0ZToKKyAgICBkb3VibGUgc3RhcnRfdGltZV87CisgICAgZG91YmxlIGRlc3RfdGltZV87CisgICAgSU5URVJQT0xBVE9SX1RZUEUgdHlwZV87CisKKyAgICBmbG9hdCBzdGFydF92YWx1ZV87CisgICAgZmxvYXQgZGVzdF92YWx1ZV87CisgICAgc3RkOjpsaXN0PEludGVycG9sYXRvclBhcmFtcz4gbGlzdF9wYXJhbXNfOworCisgICAgZmxvYXQgR2V0Rm9ybXVsYSggY29uc3QgSU5URVJQT0xBVE9SX1RZUEUgdHlwZSwKKyAgICAgICAgICAgIGNvbnN0IGZsb2F0IHQsCisgICAgICAgICAgICBjb25zdCBmbG9hdCBiLAorICAgICAgICAgICAgY29uc3QgZmxvYXQgZCwKKyAgICAgICAgICAgIGNvbnN0IGZsb2F0IGMgKTsKK3B1YmxpYzoKKyAgICBJbnRlcnBvbGF0b3IoKTsKKyAgICB+SW50ZXJwb2xhdG9yKCk7CisKKyAgICBJbnRlcnBvbGF0b3ImIFNldCggY29uc3QgZmxvYXQgc3RhcnQsCisgICAgICAgICAgICBjb25zdCBmbG9hdCBkZXN0LAorICAgICAgICAgICAgY29uc3QgSU5URVJQT0xBVE9SX1RZUEUgdHlwZSwKKyAgICAgICAgICAgIGRvdWJsZSBkdXJhdGlvbiApOworCisgICAgSW50ZXJwb2xhdG9yJiBBZGQoIGNvbnN0IGZsb2F0IGRlc3QsCisgICAgICAgICAgICBjb25zdCBJTlRFUlBPTEFUT1JfVFlQRSB0eXBlLAorICAgICAgICAgICAgY29uc3QgZG91YmxlIGR1cmF0aW9uICk7CisKKyAgICBib29sIFVwZGF0ZSggY29uc3QgZG91YmxlIGN1cnJlbnRUaW1lLCBmbG9hdCYgcCApOworCisgICAgdm9pZCBDbGVhcigpOworfTsKKworfSAgIC8vbmFtZXNwYWNlIG5ka0hlbHBlcgorI2VuZGlmIC8qIElOVEVSUE9MQVRPUl9IXyAqLwpkaWZmIC0tZ2l0IGEvbmRrL3NvdXJjZXMvYW5kcm9pZC9uZGtfaGVscGVyL3BlcmZNb25pdG9yLmNwcCBiL25kay9zb3VyY2VzL2FuZHJvaWQvbmRrX2hlbHBlci9wZXJmTW9uaXRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGFkMGU2OAotLS0gL2Rldi9udWxsCisrKyBiL25kay9zb3VyY2VzL2FuZHJvaWQvbmRrX2hlbHBlci9wZXJmTW9uaXRvci5jcHAKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgInBlcmZNb25pdG9yLmgiCisKK25hbWVzcGFjZSBuZGtfaGVscGVyCit7CisKK1BlcmZNb25pdG9yOjpQZXJmTW9uaXRvcigpIDoKKyAgICAgICAgICAgICAgICBsYXN0X3RpY2tfKCAwLmYgKSwKKyAgICAgICAgICAgICAgICB0dl9sYXN0X3NlY18oIDAgKSwKKyAgICAgICAgICAgICAgICB0aWNraW5kZXhfKCAwICksCisgICAgICAgICAgICAgICAgdGlja3N1bV8oIDAgKQoreworICAgIGZvciggaW50MzJfdCBpID0gMDsgaSA8IE5VTV9TQU1QTEVTOyArK2kgKQorICAgICAgICB0aWNrbGlzdF9baV0gPSAwOworfQorCitQZXJmTW9uaXRvcjo6flBlcmZNb25pdG9yKCkKK3sKK30KKworZG91YmxlIFBlcmZNb25pdG9yOjpVcGRhdGVUaWNrKCBkb3VibGUgY3VycmVudFRpY2sgKQoreworICAgIHRpY2tzdW1fIC09IHRpY2tsaXN0X1t0aWNraW5kZXhfXTsKKyAgICB0aWNrc3VtXyArPSBjdXJyZW50VGljazsKKyAgICB0aWNrbGlzdF9bdGlja2luZGV4X10gPSBjdXJyZW50VGljazsKKyAgICB0aWNraW5kZXhfID0gKHRpY2tpbmRleF8gKyAxKSAlIE5VTV9TQU1QTEVTOworCisgICAgcmV0dXJuICgoZG91YmxlKSB0aWNrc3VtXyAvIE5VTV9TQU1QTEVTKTsKK30KKworYm9vbCBQZXJmTW9uaXRvcjo6VXBkYXRlKCBmbG9hdCAmZkZQUyApCit7CisgICAgc3RydWN0IHRpbWV2YWwgVGltZTsKKyAgICBnZXR0aW1lb2ZkYXkoICZUaW1lLCBOVUxMICk7CisKKyAgICBkb3VibGUgdGltZSA9IFRpbWUudHZfc2VjICsgVGltZS50dl91c2VjICogMS4wIC8gMTAwMDAwMC4wOworICAgIGRvdWJsZSB0aWNrID0gdGltZSAtIGxhc3RfdGlja187CisgICAgZG91YmxlIGQgPSBVcGRhdGVUaWNrKCB0aWNrICk7CisgICAgbGFzdF90aWNrXyA9IHRpbWU7CisKKyAgICBpZiggVGltZS50dl9zZWMgLSB0dl9sYXN0X3NlY18gPj0gMSApCisgICAgeworICAgICAgICBkb3VibGUgdGltZSA9IFRpbWUudHZfc2VjICsgVGltZS50dl91c2VjICogMS4wIC8gMTAwMDAwMC4wOworICAgICAgICBjdXJyZW50X0ZQU18gPSAxLmYgLyBkOworICAgICAgICB0dl9sYXN0X3NlY18gPSBUaW1lLnR2X3NlYzsKKyAgICAgICAgZkZQUyA9IGN1cnJlbnRfRlBTXzsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIGZGUFMgPSBjdXJyZW50X0ZQU187CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKK30gICAvL25hbWVzcGFjZSBuZGtIZWxwZXIKKwpkaWZmIC0tZ2l0IGEvbmRrL3NvdXJjZXMvYW5kcm9pZC9uZGtfaGVscGVyL3BlcmZNb25pdG9yLmggYi9uZGsvc291cmNlcy9hbmRyb2lkL25ka19oZWxwZXIvcGVyZk1vbml0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDE4YzQzCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3NvdXJjZXMvYW5kcm9pZC9uZGtfaGVscGVyL3BlcmZNb25pdG9yLmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBQRVJGTU9OSVRPUl9IXworI2RlZmluZSBQRVJGTU9OSVRPUl9IXworCisjaW5jbHVkZSA8am5pLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDx0aW1lLmg+CisjaW5jbHVkZSAiSk5JSGVscGVyLmgiCisKK25hbWVzcGFjZSBuZGtfaGVscGVyCit7CisKK2NvbnN0IGludDMyX3QgTlVNX1NBTVBMRVMgPSAxMDA7CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEhlbHBlciBjbGFzcyBmb3IgYSBwZXJmb3JtYW5jZSBtb25pdG9yaW5nIGFuZCBnZXQgY3VycmVudCB0aWNrIHRpbWUKKyAqLworY2xhc3MgUGVyZk1vbml0b3IKK3sKK3ByaXZhdGU6CisgICAgZmxvYXQgY3VycmVudF9GUFNfOworICAgIHRpbWVfdCB0dl9sYXN0X3NlY187CisKKyAgICBkb3VibGUgbGFzdF90aWNrXzsKKyAgICBpbnQzMl90IHRpY2tpbmRleF87CisgICAgZG91YmxlIHRpY2tzdW1fOworICAgIGRvdWJsZSB0aWNrbGlzdF9bTlVNX1NBTVBMRVNdOworCisgICAgZG91YmxlIFVwZGF0ZVRpY2soIGRvdWJsZSBjdXJyZW50X3RpY2sgKTsKK3B1YmxpYzoKKyAgICBQZXJmTW9uaXRvcigpOworICAgIHZpcnR1YWwgflBlcmZNb25pdG9yKCk7CisKKyAgICBib29sIFVwZGF0ZSggZmxvYXQgJmZGUFMgKTsKKworICAgIHN0YXRpYyBkb3VibGUgR2V0Q3VycmVudFRpbWUoKQorICAgIHsKKyAgICAgICAgc3RydWN0IHRpbWV2YWwgdGltZTsKKyAgICAgICAgZ2V0dGltZW9mZGF5KCAmdGltZSwgTlVMTCApOworICAgICAgICBkb3VibGUgcmV0ID0gdGltZS50dl9zZWMgKyB0aW1lLnR2X3VzZWMgKiAxLjAgLyAxMDAwMDAwLjA7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorfTsKKworfSAgIC8vbmFtZXNwYWNlIG5ka0hlbHBlcgorI2VuZGlmIC8qIFBFUkZNT05JVE9SX0hfICovCmRpZmYgLS1naXQgYS9uZGsvc291cmNlcy9hbmRyb2lkL25ka19oZWxwZXIvc2hhZGVyLmNwcCBiL25kay9zb3VyY2VzL2FuZHJvaWQvbmRrX2hlbHBlci9zaGFkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0YjM4ODcKLS0tIC9kZXYvbnVsbAorKysgYi9uZGsvc291cmNlcy9hbmRyb2lkL25ka19oZWxwZXIvc2hhZGVyLmNwcApAQCAtMCwwICsxLDE5MiBAQAorLyoKKyAqIENvcHlyaWdodCAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPEVHTC9lZ2wuaD4KKyNpbmNsdWRlIDxHTEVTMi9nbDIuaD4KKworI2luY2x1ZGUgInNoYWRlci5oIgorI2luY2x1ZGUgIkpOSUhlbHBlci5oIgorCituYW1lc3BhY2UgbmRrX2hlbHBlcgoreworCisjZGVmaW5lIERFQlVHICgxKQorCitib29sIHNoYWRlcjo6Q29tcGlsZVNoYWRlciggR0x1aW50ICpzaGFkZXIsCisgICAgICAgIGNvbnN0IEdMZW51bSB0eXBlLAorICAgICAgICBjb25zdCBjaGFyICpzdHJfZmlsZV9uYW1lLAorICAgICAgICBjb25zdCBzdGQ6Om1hcDxzdGQ6OnN0cmluZywgc3RkOjpzdHJpbmc+JiBtYXBfcGFyYW1ldGVycyApCit7CisgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gZGF0YTsKKyAgICBpZiggIUpOSUhlbHBlcjo6R2V0SW5zdGFuY2UoKS0+UmVhZEZpbGUoIHN0cl9maWxlX25hbWUsICZkYXRhICkgKQorICAgIHsKKyAgICAgICAgTE9HSSggIkNhbiBub3Qgb3BlbiBhIGZpbGU6JXMiLCBzdHJfZmlsZV9uYW1lICk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBjb25zdCBjaGFyIFJFUExBQ0VNRU5UX1RBRyA9ICcqJzsKKyAgICAvL0ZpbGwtaW4gcGFyYW1ldGVycworICAgIHN0ZDo6c3RyaW5nIHN0ciggZGF0YS5iZWdpbigpLCBkYXRhLmVuZCgpICk7CisgICAgc3RkOjpzdHJpbmcgc3RyX3JlcGxhY2VtZW50X21hcCggZGF0YS5zaXplKCksICcgJyApOworCisgICAgc3RkOjptYXA8c3RkOjpzdHJpbmcsIHN0ZDo6c3RyaW5nPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtYXBfcGFyYW1ldGVycy5iZWdpbigpOworICAgIHN0ZDo6bWFwPHN0ZDo6c3RyaW5nLCBzdGQ6OnN0cmluZz46OmNvbnN0X2l0ZXJhdG9yIGl0RW5kID0gbWFwX3BhcmFtZXRlcnMuZW5kKCk7CisgICAgd2hpbGUoIGl0ICE9IGl0RW5kICkKKyAgICB7CisgICAgICAgIHNpemVfdCBwb3MgPSAwOworICAgICAgICB3aGlsZSggKHBvcyA9IHN0ci5maW5kKCBpdC0+Zmlyc3QsIHBvcyApKSAhPSBzdGQ6OnN0cmluZzo6bnBvcyApCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vQ2hlY2sgaWYgdGhlIHN1YiBzdHJpbmcgaXMgYWxyZWFkeSB0b3VjaGVkCisKKyAgICAgICAgICAgIHNpemVfdCByZXBsYWNlZF9wb3MgPSBzdHJfcmVwbGFjZW1lbnRfbWFwLmZpbmQoIFJFUExBQ0VNRU5UX1RBRywgcG9zICk7CisgICAgICAgICAgICBpZiggcmVwbGFjZWRfcG9zID09IHN0ZDo6c3RyaW5nOjpucG9zIHx8IHJlcGxhY2VkX3BvcyA+IHBvcyApCisgICAgICAgICAgICB7CisKKyAgICAgICAgICAgICAgICBzdHIucmVwbGFjZSggcG9zLCBpdC0+Zmlyc3QubGVuZ3RoKCksIGl0LT5zZWNvbmQgKTsKKyAgICAgICAgICAgICAgICBzdHJfcmVwbGFjZW1lbnRfbWFwLnJlcGxhY2UoIHBvcywgaXQtPmZpcnN0Lmxlbmd0aCgpLCBpdC0+Zmlyc3QubGVuZ3RoKCksCisgICAgICAgICAgICAgICAgICAgICAgICBSRVBMQUNFTUVOVF9UQUcgKTsKKyAgICAgICAgICAgICAgICBwb3MgKz0gaXQtPnNlY29uZC5sZW5ndGgoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvL1RoZSByZXBsYWNlbWVudCB0YXJnZXQgaGFzIGJlZW4gdG91Y2hlZCBieSBvdGhlciB0YWcsIHNraXBwaW5nIHRoZW0KKyAgICAgICAgICAgICAgICBwb3MgKz0gaXQtPnNlY29uZC5sZW5ndGgoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpdCsrOworICAgIH0KKworICAgIExPR0koICJQYXRjaGVkIFNoZGFkZXI6XG4lcyIsIHN0ci5jX3N0cigpICk7CisKKyAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PiB2KCBzdHIuYmVnaW4oKSwgc3RyLmVuZCgpICk7CisgICAgc3RyLmNsZWFyKCk7CisgICAgcmV0dXJuIHNoYWRlcjo6Q29tcGlsZVNoYWRlciggc2hhZGVyLCB0eXBlLCB2ICk7Cit9CisKK2Jvb2wgc2hhZGVyOjpDb21waWxlU2hhZGVyKCBHTHVpbnQgKnNoYWRlciwKKyAgICAgICAgY29uc3QgR0xlbnVtIHR5cGUsCisgICAgICAgIGNvbnN0IEdMY2hhciAqc291cmNlLAorICAgICAgICBjb25zdCBpbnQzMl90IGlTaXplICkKK3sKKyAgICBpZiggc291cmNlID09IE5VTEwgfHwgaVNpemUgPD0gMCApCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICpzaGFkZXIgPSBnbENyZWF0ZVNoYWRlciggdHlwZSApOworICAgIGdsU2hhZGVyU291cmNlKCAqc2hhZGVyLCAxLCAmc291cmNlLCAmaVNpemUgKTsgLy9Ob3Qgc3BlY2lmeWluZyAzcmQgcGFyYW1ldGVyIChzaXplKSBjb3VsZCBiZSB0cm91Ymxlc29tZS4uCisKKyAgICBnbENvbXBpbGVTaGFkZXIoICpzaGFkZXIgKTsKKworI2lmIGRlZmluZWQoREVCVUcpCisgICAgR0xpbnQgbG9nTGVuZ3RoOworICAgIGdsR2V0U2hhZGVyaXYoICpzaGFkZXIsIEdMX0lORk9fTE9HX0xFTkdUSCwgJmxvZ0xlbmd0aCApOworICAgIGlmKCBsb2dMZW5ndGggPiAwICkKKyAgICB7CisgICAgICAgIEdMY2hhciAqbG9nID0gKEdMY2hhciAqKSBtYWxsb2MoIGxvZ0xlbmd0aCApOworICAgICAgICBnbEdldFNoYWRlckluZm9Mb2coICpzaGFkZXIsIGxvZ0xlbmd0aCwgJmxvZ0xlbmd0aCwgbG9nICk7CisgICAgICAgIExPR0koICJTaGFkZXIgY29tcGlsZSBsb2c6XG4lcyIsIGxvZyApOworICAgICAgICBmcmVlKCBsb2cgKTsKKyAgICB9CisjZW5kaWYKKworICAgIEdMaW50IHN0YXR1czsKKyAgICBnbEdldFNoYWRlcml2KCAqc2hhZGVyLCBHTF9DT01QSUxFX1NUQVRVUywgJnN0YXR1cyApOworICAgIGlmKCBzdGF0dXMgPT0gMCApCisgICAgeworICAgICAgICBnbERlbGV0ZVNoYWRlciggKnNoYWRlciApOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgc2hhZGVyOjpDb21waWxlU2hhZGVyKCBHTHVpbnQgKnNoYWRlciwKKyAgICAgICAgY29uc3QgR0xlbnVtIHR5cGUsCisgICAgICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+JiBkYXRhICkKK3sKKyAgICBpZiggIWRhdGEuc2l6ZSgpICkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgY29uc3QgR0xjaGFyICpzb3VyY2UgPSAoR0xjaGFyICopICZkYXRhWzBdOworICAgIGludDMyX3QgaVNpemUgPSBkYXRhLnNpemUoKTsKKyAgICByZXR1cm4gc2hhZGVyOjpDb21waWxlU2hhZGVyKCBzaGFkZXIsIHR5cGUsIHNvdXJjZSwgaVNpemUgKTsKK30KKworYm9vbCBzaGFkZXI6OkNvbXBpbGVTaGFkZXIoIEdMdWludCAqc2hhZGVyLAorICAgICAgICBjb25zdCBHTGVudW0gdHlwZSwKKyAgICAgICAgY29uc3QgY2hhciAqc3RyRmlsZU5hbWUgKQoreworICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGRhdGE7CisgICAgYm9vbCBiID0gSk5JSGVscGVyOjpHZXRJbnN0YW5jZSgpLT5SZWFkRmlsZSggc3RyRmlsZU5hbWUsICZkYXRhICk7CisgICAgaWYoICFiICkKKyAgICB7CisgICAgICAgIExPR0koICJDYW4gbm90IG9wZW4gYSBmaWxlOiVzIiwgc3RyRmlsZU5hbWUgKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiBzaGFkZXI6OkNvbXBpbGVTaGFkZXIoIHNoYWRlciwgdHlwZSwgZGF0YSApOworfQorCitib29sIHNoYWRlcjo6TGlua1Byb2dyYW0oIGNvbnN0IEdMdWludCBwcm9nICkKK3sKKyAgICBHTGludCBzdGF0dXM7CisKKyAgICBnbExpbmtQcm9ncmFtKCBwcm9nICk7CisKKyNpZiBkZWZpbmVkKERFQlVHKQorICAgIEdMaW50IGxvZ0xlbmd0aDsKKyAgICBnbEdldFByb2dyYW1pdiggcHJvZywgR0xfSU5GT19MT0dfTEVOR1RILCAmbG9nTGVuZ3RoICk7CisgICAgaWYoIGxvZ0xlbmd0aCA+IDAgKQorICAgIHsKKyAgICAgICAgR0xjaGFyICpsb2cgPSAoR0xjaGFyICopIG1hbGxvYyggbG9nTGVuZ3RoICk7CisgICAgICAgIGdsR2V0UHJvZ3JhbUluZm9Mb2coIHByb2csIGxvZ0xlbmd0aCwgJmxvZ0xlbmd0aCwgbG9nICk7CisgICAgICAgIExPR0koICJQcm9ncmFtIGxpbmsgbG9nOlxuJXMiLCBsb2cgKTsKKyAgICAgICAgZnJlZSggbG9nICk7CisgICAgfQorI2VuZGlmCisKKyAgICBnbEdldFByb2dyYW1pdiggcHJvZywgR0xfTElOS19TVEFUVVMsICZzdGF0dXMgKTsKKyAgICBpZiggc3RhdHVzID09IDAgKQorICAgIHsKKyAgICAgICAgTE9HSSggIlByb2dyYW0gbGluayBmYWlsZWRcbiIgKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIHNoYWRlcjo6VmFsaWRhdGVQcm9ncmFtKCBjb25zdCBHTHVpbnQgcHJvZyApCit7CisgICAgR0xpbnQgbG9nTGVuZ3RoLCBzdGF0dXM7CisKKyAgICBnbFZhbGlkYXRlUHJvZ3JhbSggcHJvZyApOworICAgIGdsR2V0UHJvZ3JhbWl2KCBwcm9nLCBHTF9JTkZPX0xPR19MRU5HVEgsICZsb2dMZW5ndGggKTsKKyAgICBpZiggbG9nTGVuZ3RoID4gMCApCisgICAgeworICAgICAgICBHTGNoYXIgKmxvZyA9IChHTGNoYXIgKikgbWFsbG9jKCBsb2dMZW5ndGggKTsKKyAgICAgICAgZ2xHZXRQcm9ncmFtSW5mb0xvZyggcHJvZywgbG9nTGVuZ3RoLCAmbG9nTGVuZ3RoLCBsb2cgKTsKKyAgICAgICAgTE9HSSggIlByb2dyYW0gdmFsaWRhdGUgbG9nOlxuJXMiLCBsb2cgKTsKKyAgICAgICAgZnJlZSggbG9nICk7CisgICAgfQorCisgICAgZ2xHZXRQcm9ncmFtaXYoIHByb2csIEdMX1ZBTElEQVRFX1NUQVRVUywgJnN0YXR1cyApOworICAgIGlmKCBzdGF0dXMgPT0gMCApCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vbmFtZXNwYWNlIG5ka0hlbHBlcgorCmRpZmYgLS1naXQgYS9uZGsvc291cmNlcy9hbmRyb2lkL25ka19oZWxwZXIvc2hhZGVyLmggYi9uZGsvc291cmNlcy9hbmRyb2lkL25ka19oZWxwZXIvc2hhZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDM2MmE1MwotLS0gL2Rldi9udWxsCisrKyBiL25kay9zb3VyY2VzL2FuZHJvaWQvbmRrX2hlbHBlci9zaGFkZXIuaApAQCAtMCwwICsxLDEyNCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBTSEFERVJfSF8KKyNkZWZpbmUgU0hBREVSX0hfCisKKyNpbmNsdWRlIDxqbmkuaD4KKworI2luY2x1ZGUgPHZlY3Rvcj4KKyNpbmNsdWRlIDxtYXA+CisjaW5jbHVkZSA8c3RyaW5nPgorCisjaW5jbHVkZSA8RUdML2VnbC5oPgorI2luY2x1ZGUgPEdMRVMvZ2wuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisKKyNpbmNsdWRlICJKTklIZWxwZXIuaCIKKworbmFtZXNwYWNlIG5ka19oZWxwZXIKK3sKKworbmFtZXNwYWNlIHNoYWRlcgoreworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBTaGFkZXIgY29tcGlsZXIgaGVscGVyCisgKiBuYW1lc3BhY2U6IG5ka0hlbHBlcjo6c2hhZGVyCisgKgorICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvbXBpbGVTaGFkZXIoKSB3aXRoIHZlY3RvcgorICoKKyAqIGFyZ3VtZW50czoKKyAqICBvdXQ6IHNoYWRlciwgc2hhZGVyIHZhcmlhYmxlCisgKiAgaW46IHR5cGUsIHNoYWRlciB0eXBlIChpLmUuIEdMX1ZFUlRFWF9TSEFERVIvR0xfRlJBR01FTlRfU0hBREVSKQorICogIGluOiBkYXRhLCBzb3VyY2UgdmVjdG9yCisgKiByZXR1cm46IHRydWUgaWYgYSBzaGFkZXIgY29tcGlsYXRpb24gc3VjY2VlZGVkLCBmYWxzZSBpZiBpdCBmYWlsZWQKKyAqCisgKi8KK2Jvb2wgQ29tcGlsZVNoYWRlciggR0x1aW50ICpzaGFkZXIsIGNvbnN0IEdMZW51bSB0eXBlLCBzdGQ6OnZlY3Rvcjx1aW50OF90PiYgZGF0YSApOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb21waWxlU2hhZGVyKCkgd2l0aCBidWZmZXIKKyAqCisgKiBhcmd1bWVudHM6CisgKiAgb3V0OiBzaGFkZXIsIHNoYWRlciB2YXJpYWJsZQorICogIGluOiB0eXBlLCBzaGFkZXIgdHlwZSAoaS5lLiBHTF9WRVJURVhfU0hBREVSL0dMX0ZSQUdNRU5UX1NIQURFUikKKyAqICBpbjogc291cmNlLCBzb3VyY2UgYnVmZmVyCisgKiAgaW46IGlTaXplLCBidWZmZXIgc2l6ZQorICogcmV0dXJuOiB0cnVlIGlmIGEgc2hhZGVyIGNvbXBpbGF0aW9uIHN1Y2NlZWRlZCwgZmFsc2UgaWYgaXQgZmFpbGVkCisgKgorICovCitib29sIENvbXBpbGVTaGFkZXIoIEdMdWludCAqc2hhZGVyLAorICAgICAgICBjb25zdCBHTGVudW0gdHlwZSwKKyAgICAgICAgY29uc3QgR0xjaGFyICpzb3VyY2UsCisgICAgICAgIGNvbnN0IGludDMyX3QgaVNpemUgKTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29tcGlsZVNoYWRlcigpIHdpdGggZmlsZW5hbWUKKyAqCisgKiBhcmd1bWVudHM6CisgKiAgb3V0OiBzaGFkZXIsIHNoYWRlciB2YXJpYWJsZQorICogIGluOiB0eXBlLCBzaGFkZXIgdHlwZSAoaS5lLiBHTF9WRVJURVhfU0hBREVSL0dMX0ZSQUdNRU5UX1NIQURFUikKKyAqICBpbjogc3RyRmlsZW5hbWUsIGZpbGVuYW1lCisgKiByZXR1cm46IHRydWUgaWYgYSBzaGFkZXIgY29tcGlsYXRpb24gc3VjY2VlZGVkLCBmYWxzZSBpZiBpdCBmYWlsZWQKKyAqCisgKi8KK2Jvb2wgQ29tcGlsZVNoYWRlciggR0x1aW50ICpzaGFkZXIsIGNvbnN0IEdMZW51bSB0eXBlLCBjb25zdCBjaGFyICpzdHJGaWxlTmFtZSApOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb21waWxlU2hhZGVyKCkgd2l0aCBzdGQ6Om1hcCBoZWxwcyBwYXRjaGluZyBvbiBhIHNoYWRlciBvbiB0aGUgZmx5LgorICoKKyAqIGFyZ3VtZW50czoKKyAqICBvdXQ6IHNoYWRlciwgc2hhZGVyIHZhcmlhYmxlCisgKiAgaW46IHR5cGUsIHNoYWRlciB0eXBlIChpLmUuIEdMX1ZFUlRFWF9TSEFERVIvR0xfRlJBR01FTlRfU0hBREVSKQorICogIGluOiBtYXBQYXJhbWV0ZXJzCisgKiAgICAgIEZvciBhIGV4YW1wbGUsCisgKiAgICAgIG1hcCA6ICVLRVklIC0+ICVWQUxVRSUgcmVwbGFjZXMgYWxsICVLRVklIGVudHJpZXMgaW4gdGhlIGdpdmVuIHNoYWRlciBjb2RlIHRvICVWQUxVRSIKKyAqIHJldHVybjogdHJ1ZSBpZiBhIHNoYWRlciBjb21waWxhdGlvbiBzdWNjZWVkZWQsIGZhbHNlIGlmIGl0IGZhaWxlZAorICoKKyAqLworYm9vbCBDb21waWxlU2hhZGVyKCBHTHVpbnQgKnNoYWRlciwKKyAgICAgICAgY29uc3QgR0xlbnVtIHR5cGUsCisgICAgICAgIGNvbnN0IGNoYXIgKnN0cl9maWxlX25hbWUsCisgICAgICAgIGNvbnN0IHN0ZDo6bWFwPHN0ZDo6c3RyaW5nLCBzdGQ6OnN0cmluZz4mIG1hcF9wYXJhbWV0ZXJzICk7CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIExpbmtQcm9ncmFtKCkKKyAqCisgKiBhcmd1bWVudHM6CisgKiAgaW46IHByb2dyYW0sIHByb2dyYW0KKyAqIHJldHVybjogdHJ1ZSBpZiBhIHNoYWRlciBsaW5rYWdlIHN1Y2NlZWRlZCwgZmFsc2UgaWYgaXQgZmFpbGVkCisgKgorICovCitib29sIExpbmtQcm9ncmFtKCBjb25zdCBHTHVpbnQgcHJvZyApOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiB2YWxpZGF0ZVByb2dyYW0oKQorICoKKyAqIGFyZ3VtZW50czoKKyAqICBpbjogcHJvZ3JhbSwgcHJvZ3JhbQorICogcmV0dXJuOiB0cnVlIGlmIGEgc2hhZGVyIHZhbGlkYXRpb24gc3VjY2VlZGVkLCBmYWxzZSBpZiBpdCBmYWlsZWQKKyAqCisgKi8KK2Jvb2wgVmFsaWRhdGVQcm9ncmFtKCBjb25zdCBHTHVpbnQgcHJvZyApOworfSAvL25hbWVzcGFjZSBzaGFkZXIKKworfSAvL25hbWVzcGFjZSBuZGtIZWxwZXIKKyNlbmRpZiAvKiBTSEFERVJfSF8gKi8KZGlmZiAtLWdpdCBhL25kay9zb3VyY2VzL2FuZHJvaWQvbmRrX2hlbHBlci90YXBDYW1lcmEuY3BwIGIvbmRrL3NvdXJjZXMvYW5kcm9pZC9uZGtfaGVscGVyL3RhcENhbWVyYS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWE0ZmY4YgotLS0gL2Rldi9udWxsCisrKyBiL25kay9zb3VyY2VzL2FuZHJvaWQvbmRrX2hlbHBlci90YXBDYW1lcmEuY3BwCkBAIC0wLDAgKzEsMzIwIEBACisvKgorICogQ29weXJpZ2h0IDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vICB0YXBDYW1lcmEuY3BwCisvLyAgQ2FtZXJhIGNvbnRyb2wgd2l0aCB0YXAKKy8vCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyNpbmNsdWRlIDxmc3RyZWFtPgorI2luY2x1ZGUgInRhcENhbWVyYS5oIgorCituYW1lc3BhY2UgbmRrX2hlbHBlcgoreworCitjb25zdCBmbG9hdCBUUkFOU0ZPUk1fRkFDVE9SID0gMTUuZjsKK2NvbnN0IGZsb2F0IFRSQU5TRk9STV9GQUNUT1JaID0gMTAuZjsKKworY29uc3QgZmxvYXQgTU9NRU5UVU1fRkFDVE9SX0RFQ1JFQVNFID0gMC44NWY7Citjb25zdCBmbG9hdCBNT01FTlRVTV9GQUNUT1JfREVDUkVBU0VfU0hJRlQgPSAwLjlmOworY29uc3QgZmxvYXQgTU9NRU5UVU1fRkFDVE9SID0gMC44ZjsKK2NvbnN0IGZsb2F0IE1PTUVOVFVNX0ZBQ1RPUl9USFJFU0hPTEQgPSAwLjAwMWY7CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gIEN0b3IKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorVGFwQ2FtZXJhOjpUYXBDYW1lcmEoKSA6CisgICAgICAgICAgICAgICAgZHJhZ2dpbmdfKCBmYWxzZSApLAorICAgICAgICAgICAgICAgIHBpbmNoaW5nXyggZmFsc2UgKSwKKyAgICAgICAgICAgICAgICBtb21lbnR1bV8oIGZhbHNlICksCisgICAgICAgICAgICAgICAgYmFsbF9yYWRpdXNfKCAwLjc1ZiApLAorICAgICAgICAgICAgICAgIHBpbmNoX3N0YXJ0X2Rpc3RhbmNlX1NRXyggMC5mICksCisgICAgICAgICAgICAgICAgY2FtZXJhX3JvdGF0aW9uXyggMC5mICksCisgICAgICAgICAgICAgICAgY2FtZXJhX3JvdGF0aW9uX3N0YXJ0XyggMC5mICksCisgICAgICAgICAgICAgICAgY2FtZXJhX3JvdGF0aW9uX25vd18oIDAuZiApLAorICAgICAgICAgICAgICAgIG1vbWVtdHVtX3N0ZXBzXyggMC5mICksCisgICAgICAgICAgICAgICAgZmxpcF96XyggMC5mICkKK3sKKyAgICAvL0luaXQgb2Zmc2V0CisgICAgSW5pdFBhcmFtZXRlcnMoKTsKKworICAgIHZlY19mbGlwXyA9IFZlYzIoIDEuZiwgLTEuZiApOworICAgIGZsaXBfel8gPSAtMS5mOworICAgIHZlY19waW5jaF90cmFuc2Zvcm1fZmFjdG9yXyA9IFZlYzMoIDEuZiwgMS5mLCAxLmYgKTsKKworICAgIHZlY19iYWxsX2NlbnRlcl8gPSBWZWMyKCAwLCAwICk7CisgICAgdmVjX2JhbGxfbm93XyA9IFZlYzIoIDAsIDAgKTsKKyAgICB2ZWNfYmFsbF9kb3duXyA9IFZlYzIoIDAsIDAgKTsKKworICAgIHZlY19waW5jaF9zdGFydF8gPSBWZWMyKCAwLCAwICk7CisgICAgdmVjX3BpbmNoX3N0YXJ0X2NlbnRlcl8gPSBWZWMyKCAwLCAwICk7CisKKyAgICB2ZWNfZmxpcF8gPSBWZWMyKCAwLCAwICk7CisKK30KKwordm9pZCBUYXBDYW1lcmE6OkluaXRQYXJhbWV0ZXJzKCkKK3sKKyAgICAvL0luaXQgcGFyYW1ldGVycworICAgIHZlY19vZmZzZXRfID0gVmVjMygpOworICAgIHZlY19vZmZzZXRfbm93XyA9IFZlYzMoKTsKKworICAgIHF1YXRfYmFsbF9yb3RfID0gUXVhdGVybmlvbigpOworICAgIHF1YXRfYmFsbF9ub3dfID0gUXVhdGVybmlvbigpOworICAgIHF1YXRfYmFsbF9ub3dfLlRvTWF0cml4KCBtYXRfcm90YXRpb25fICk7CisgICAgY2FtZXJhX3JvdGF0aW9uXyA9IDAuZjsKKworICAgIHZlY19kcmFnX2RlbHRhXyA9IFZlYzIoKTsKKyAgICB2ZWNfb2Zmc2V0X2RlbHRhXyA9IFZlYzMoKTsKKworICAgIG1vbWVudHVtXyA9IGZhbHNlOworfQorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vICBEdG9yCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1RhcENhbWVyYTo6flRhcENhbWVyYSgpCit7CisKK30KKwordm9pZCBUYXBDYW1lcmE6OlVwZGF0ZSgpCit7CisgICAgaWYoIG1vbWVudHVtXyApCisgICAgeworICAgICAgICBmbG9hdCBtb21lbnR0dW1fc3RlcHMgPSBtb21lbXR1bV9zdGVwc187CisKKyAgICAgICAgLy9Nb21lbnR1bSByb3RhdGlvbgorICAgICAgICBWZWMyIHYgPSB2ZWNfZHJhZ19kZWx0YV87CisgICAgICAgIEJlZ2luRHJhZyggVmVjMigpICk7IC8vTk9URTpUaGlzIGNhbGwgcmVzZXQgX1ZEcmFnRGVsdGEKKyAgICAgICAgRHJhZyggdiAqIHZlY19mbGlwXyApOworCisgICAgICAgIC8vTW9tZW50dW0gc2hpZnQKKyAgICAgICAgdmVjX29mZnNldF8gKz0gdmVjX29mZnNldF9kZWx0YV87CisKKyAgICAgICAgQmFsbFVwZGF0ZSgpOworICAgICAgICBFbmREcmFnKCk7CisKKyAgICAgICAgLy9EZWNyZWFzZSBkZWx0YXMKKyAgICAgICAgdmVjX2RyYWdfZGVsdGFfID0gdiAqIE1PTUVOVFVNX0ZBQ1RPUl9ERUNSRUFTRTsKKyAgICAgICAgdmVjX29mZnNldF9kZWx0YV8gPSB2ZWNfb2Zmc2V0X2RlbHRhXyAqIE1PTUVOVFVNX0ZBQ1RPUl9ERUNSRUFTRV9TSElGVDsKKworICAgICAgICAvL0NvdW50IHN0ZXBzCisgICAgICAgIG1vbWVtdHVtX3N0ZXBzXyA9IG1vbWVudHR1bV9zdGVwcyAqIE1PTUVOVFVNX0ZBQ1RPUl9ERUNSRUFTRTsKKyAgICAgICAgaWYoIG1vbWVtdHVtX3N0ZXBzXyA8IE1PTUVOVFVNX0ZBQ1RPUl9USFJFU0hPTEQgKQorICAgICAgICB7CisgICAgICAgICAgICBtb21lbnR1bV8gPSBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICB2ZWNfZHJhZ19kZWx0YV8gKj0gTU9NRU5UVU1fRkFDVE9SOworICAgICAgICB2ZWNfb2Zmc2V0X2RlbHRhXyA9IHZlY19vZmZzZXRfZGVsdGFfICogTU9NRU5UVU1fRkFDVE9SOworICAgICAgICBCYWxsVXBkYXRlKCk7CisgICAgfQorCisgICAgVmVjMyB2ZWMgPSB2ZWNfb2Zmc2V0XyArIHZlY19vZmZzZXRfbm93XzsKKyAgICBWZWMzIHZlY190bXAoIFRSQU5TRk9STV9GQUNUT1IsIC1UUkFOU0ZPUk1fRkFDVE9SLCBUUkFOU0ZPUk1fRkFDVE9SWiApOworCisgICAgdmVjICo9IHZlY190bXAgKiB2ZWNfcGluY2hfdHJhbnNmb3JtX2ZhY3Rvcl87CisKKyAgICBtYXRfdHJhbnNmb3JtXyA9IE1hdDQ6OlRyYW5zbGF0aW9uKCB2ZWMgKTsKK30KKworTWF0NCYgVGFwQ2FtZXJhOjpHZXRSb3RhdGlvbk1hdHJpeCgpCit7CisgICAgcmV0dXJuIG1hdF9yb3RhdGlvbl87Cit9CisKK01hdDQmIFRhcENhbWVyYTo6R2V0VHJhbnNmb3JtTWF0cml4KCkKK3sKKyAgICByZXR1cm4gbWF0X3RyYW5zZm9ybV87Cit9CisKK3ZvaWQgVGFwQ2FtZXJhOjpSZXNldCggY29uc3QgYm9vbCBiQW5pbWF0ZSApCit7CisgICAgSW5pdFBhcmFtZXRlcnMoKTsKKyAgICBVcGRhdGUoKTsKKworfQorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vRHJhZyBjb250cm9sCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3ZvaWQgVGFwQ2FtZXJhOjpCZWdpbkRyYWcoIGNvbnN0IFZlYzImIHYgKQoreworICAgIGlmKCBkcmFnZ2luZ18gKQorICAgICAgICBFbmREcmFnKCk7CisKKyAgICBpZiggcGluY2hpbmdfICkKKyAgICAgICAgRW5kUGluY2goKTsKKworICAgIFZlYzIgdmVjID0gdiAqIHZlY19mbGlwXzsKKyAgICB2ZWNfYmFsbF9ub3dfID0gdmVjOworICAgIHZlY19iYWxsX2Rvd25fID0gdmVjX2JhbGxfbm93XzsKKworICAgIGRyYWdnaW5nXyA9IHRydWU7CisgICAgbW9tZW50dW1fID0gZmFsc2U7CisgICAgdmVjX2xhc3RfaW5wdXRfID0gdmVjOworICAgIHZlY19kcmFnX2RlbHRhXyA9IFZlYzIoKTsKK30KKwordm9pZCBUYXBDYW1lcmE6OkVuZERyYWcoKQoreworICAgIHF1YXRfYmFsbF9kb3duXyA9IHF1YXRfYmFsbF9ub3dfOworICAgIHF1YXRfYmFsbF9yb3RfID0gUXVhdGVybmlvbigpOworCisgICAgZHJhZ2dpbmdfID0gZmFsc2U7CisgICAgbW9tZW50dW1fID0gdHJ1ZTsKKyAgICBtb21lbXR1bV9zdGVwc18gPSAxLjBmOworfQorCit2b2lkIFRhcENhbWVyYTo6RHJhZyggY29uc3QgVmVjMiYgdiApCit7CisgICAgaWYoICFkcmFnZ2luZ18gKQorICAgICAgICByZXR1cm47CisKKyAgICBWZWMyIHZlYyA9IHYgKiB2ZWNfZmxpcF87CisgICAgdmVjX2JhbGxfbm93XyA9IHZlYzsKKworICAgIHZlY19kcmFnX2RlbHRhXyA9IHZlY19kcmFnX2RlbHRhXyAqIE1PTUVOVFVNX0ZBQ1RPUiArICh2ZWMgLSB2ZWNfbGFzdF9pbnB1dF8pOworICAgIHZlY19sYXN0X2lucHV0XyA9IHZlYzsKK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvL1BpbmNoIGNvbnRyb2xsCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3ZvaWQgVGFwQ2FtZXJhOjpCZWdpblBpbmNoKCBjb25zdCBWZWMyJiB2MSwgY29uc3QgVmVjMiYgdjIgKQoreworICAgIGlmKCBkcmFnZ2luZ18gKQorICAgICAgICBFbmREcmFnKCk7CisKKyAgICBpZiggcGluY2hpbmdfICkKKyAgICAgICAgRW5kUGluY2goKTsKKworICAgIEJlZ2luRHJhZyggVmVjMigpICk7CisKKyAgICB2ZWNfcGluY2hfc3RhcnRfY2VudGVyXyA9ICh2MSArIHYyKSAvIDIuZjsKKworICAgIFZlYzIgdmVjID0gdjEgLSB2MjsKKyAgICBmbG9hdCB4X2RpZmY7CisgICAgZmxvYXQgeV9kaWZmOworICAgIHZlYy5WYWx1ZSggeF9kaWZmLCB5X2RpZmYgKTsKKworICAgIHBpbmNoX3N0YXJ0X2Rpc3RhbmNlX1NRXyA9IHhfZGlmZiAqIHhfZGlmZiArIHlfZGlmZiAqIHlfZGlmZjsKKyAgICBjYW1lcmFfcm90YXRpb25fc3RhcnRfID0gYXRhbjJmKCB5X2RpZmYsIHhfZGlmZiApOworICAgIGNhbWVyYV9yb3RhdGlvbl9ub3dfID0gMDsKKworICAgIHBpbmNoaW5nXyA9IHRydWU7CisgICAgbW9tZW50dW1fID0gZmFsc2U7CisKKyAgICAvL0luaXQgbW9tZW50dW0gZmFjdG9ycworICAgIHZlY19vZmZzZXRfZGVsdGFfID0gVmVjMygpOworfQorCit2b2lkIFRhcENhbWVyYTo6RW5kUGluY2goKQoreworICAgIHBpbmNoaW5nXyA9IGZhbHNlOworICAgIG1vbWVudHVtXyA9IHRydWU7CisgICAgbW9tZW10dW1fc3RlcHNfID0gMS5mOworICAgIHZlY19vZmZzZXRfICs9IHZlY19vZmZzZXRfbm93XzsKKyAgICBjYW1lcmFfcm90YXRpb25fICs9IGNhbWVyYV9yb3RhdGlvbl9ub3dfOworICAgIHZlY19vZmZzZXRfbm93XyA9IFZlYzMoKTsKKworICAgIGNhbWVyYV9yb3RhdGlvbl9ub3dfID0gMDsKKworICAgIEVuZERyYWcoKTsKK30KKwordm9pZCBUYXBDYW1lcmE6OlBpbmNoKCBjb25zdCBWZWMyJiB2MSwgY29uc3QgVmVjMiYgdjIgKQoreworICAgIGlmKCAhcGluY2hpbmdfICkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy9VcGRhdGUgbW9tZW50dW0gZmFjdG9yCisgICAgdmVjX29mZnNldF9sYXN0XyA9IHZlY19vZmZzZXRfbm93XzsKKworICAgIGZsb2F0IHhfZGlmZiwgeV9kaWZmOworICAgIFZlYzIgdmVjID0gdjEgLSB2MjsKKyAgICB2ZWMuVmFsdWUoIHhfZGlmZiwgeV9kaWZmICk7CisKKyAgICBmbG9hdCBmRGlzdGFuY2VTUSA9IHhfZGlmZiAqIHhfZGlmZiArIHlfZGlmZiAqIHlfZGlmZjsKKworICAgIGZsb2F0IGYgPSBwaW5jaF9zdGFydF9kaXN0YW5jZV9TUV8gLyBmRGlzdGFuY2VTUTsKKyAgICBpZiggZiA8IDEuZiApCisgICAgICAgIGYgPSAtMS5mIC8gZiArIDEuMGY7CisgICAgZWxzZQorICAgICAgICBmID0gZiAtIDEuZjsKKyAgICBpZiggaXNuYW4oIGYgKSApCisgICAgICAgIGYgPSAwLmY7CisKKyAgICB2ZWMgPSAodjEgKyB2MikgLyAyLmYgLSB2ZWNfcGluY2hfc3RhcnRfY2VudGVyXzsKKyAgICB2ZWNfb2Zmc2V0X25vd18gPSBWZWMzKCB2ZWMsIGZsaXBfel8gKiBmICk7CisKKyAgICAvL1VwZGF0ZSBtb21lbnR1bSBmYWN0b3IKKyAgICB2ZWNfb2Zmc2V0X2RlbHRhXyA9IHZlY19vZmZzZXRfZGVsdGFfICogTU9NRU5UVU1fRkFDVE9SCisgICAgICAgICAgICArICh2ZWNfb2Zmc2V0X25vd18gLSB2ZWNfb2Zmc2V0X2xhc3RfKTsKKworICAgIC8vCisgICAgLy9VcGRhdGUgcmF0aW9uIHF1YXRlcm5pb24KKyAgICBmbG9hdCBmUm90YXRpb24gPSBhdGFuMmYoIHlfZGlmZiwgeF9kaWZmICk7CisgICAgY2FtZXJhX3JvdGF0aW9uX25vd18gPSBmUm90YXRpb24gLSBjYW1lcmFfcm90YXRpb25fc3RhcnRfOworCisgICAgLy9UcmFja2JhbGwgcm90YXRpb24KKyAgICBxdWF0X2JhbGxfcm90XyA9IFF1YXRlcm5pb24oIDAuZiwgMC5mLCBzaW5mKCAtY2FtZXJhX3JvdGF0aW9uX25vd18gKiAwLjVmICksCisgICAgICAgICAgICBjb3NmKCAtY2FtZXJhX3JvdGF0aW9uX25vd18gKiAwLjVmICkgKTsKK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvL1RyYWNrYmFsbCBjb250cm9sbAorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit2b2lkIFRhcENhbWVyYTo6QmFsbFVwZGF0ZSgpCit7CisgICAgaWYoIGRyYWdnaW5nXyApCisgICAgeworICAgICAgICBWZWMzIHZlY19mcm9tID0gUG9pbnRPblNwaGVyZSggdmVjX2JhbGxfZG93bl8gKTsKKyAgICAgICAgVmVjMyB2ZWNfdG8gPSBQb2ludE9uU3BoZXJlKCB2ZWNfYmFsbF9ub3dfICk7CisKKyAgICAgICAgVmVjMyB2ZWMgPSB2ZWNfZnJvbS5Dcm9zcyggdmVjX3RvICk7CisgICAgICAgIGZsb2F0IHcgPSB2ZWNfZnJvbS5Eb3QoIHZlY190byApOworCisgICAgICAgIFF1YXRlcm5pb24gcURyYWcgPSBRdWF0ZXJuaW9uKCB2ZWMsIHcgKTsKKyAgICAgICAgcURyYWcgPSBxRHJhZyAqIHF1YXRfYmFsbF9kb3duXzsKKyAgICAgICAgcXVhdF9iYWxsX25vd18gPSBxdWF0X2JhbGxfcm90XyAqIHFEcmFnOworICAgIH0KKyAgICBxdWF0X2JhbGxfbm93Xy5Ub01hdHJpeCggbWF0X3JvdGF0aW9uXyApOworfQorCitWZWMzIFRhcENhbWVyYTo6UG9pbnRPblNwaGVyZSggVmVjMiYgcG9pbnQgKQoreworICAgIFZlYzMgYmFsbF9tb3VzZTsKKyAgICBmbG9hdCBtYWc7CisgICAgVmVjMiB2ZWMgPSAocG9pbnQgLSB2ZWNfYmFsbF9jZW50ZXJfKSAvIGJhbGxfcmFkaXVzXzsKKyAgICBtYWcgPSB2ZWMuRG90KCB2ZWMgKTsKKyAgICBpZiggbWFnID4gMS5mICkKKyAgICB7CisgICAgICAgIGZsb2F0IHNjYWxlID0gMS5mIC8gc3FydGYoIG1hZyApOworICAgICAgICB2ZWMgKj0gc2NhbGU7CisgICAgICAgIGJhbGxfbW91c2UgPSBWZWMzKCB2ZWMsIDAuZiApOworICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICBiYWxsX21vdXNlID0gVmVjMyggdmVjLCBzcXJ0ZiggMS5mIC0gbWFnICkgKTsKKyAgICB9CisgICAgcmV0dXJuIGJhbGxfbW91c2U7Cit9CisKK30gLy9uYW1lc3BhY2UgbmRrSGVscGVyCmRpZmYgLS1naXQgYS9uZGsvc291cmNlcy9hbmRyb2lkL25ka19oZWxwZXIvdGFwQ2FtZXJhLmggYi9uZGsvc291cmNlcy9hbmRyb2lkL25ka19oZWxwZXIvdGFwQ2FtZXJhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2QxMjRlOAotLS0gL2Rldi9udWxsCisrKyBiL25kay9zb3VyY2VzL2FuZHJvaWQvbmRrX2hlbHBlci90YXBDYW1lcmEuaApAQCAtMCwwICsxLDExMiBAQAorLyoKKyAqIENvcHlyaWdodCAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI3ByYWdtYSBvbmNlCisjaW5jbHVkZSA8dmVjdG9yPgorI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDxHTEVTMi9nbDIuaD4KKworI2luY2x1ZGUgIkpOSUhlbHBlci5oIgorI2luY2x1ZGUgInZlY21hdGguaCIKKyNpbmNsdWRlICJpbnRlcnBvbGF0b3IuaCIKKworbmFtZXNwYWNlIG5ka19oZWxwZXIKK3sKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ2FtZXJhIGNvbnRyb2wgaGVscGVyIGNsYXNzIHdpdGggYSB0YXAgZ2VzdHVyZQorICogVGhpcyBjbGFzcyBpcyBtYWlubHkgdXNlZCBmb3IgM0Qgc3BhY2UgY2FtZXJhIGNvbnRyb2wgaW4gc2FtcGxlcy4KKyAqCisgKi8KK2NsYXNzIFRhcENhbWVyYQoreworcHJpdmF0ZToKKyAgICAvL1RyYWNrYmFsbAorICAgIFZlYzIgdmVjX2JhbGxfY2VudGVyXzsKKyAgICBmbG9hdCBiYWxsX3JhZGl1c187CisgICAgUXVhdGVybmlvbiBxdWF0X2JhbGxfbm93XzsKKyAgICBRdWF0ZXJuaW9uIHF1YXRfYmFsbF9kb3duXzsKKyAgICBWZWMyIHZlY19iYWxsX25vd187CisgICAgVmVjMiB2ZWNfYmFsbF9kb3duXzsKKyAgICBRdWF0ZXJuaW9uIHF1YXRfYmFsbF9yb3RfOworCisgICAgYm9vbCBkcmFnZ2luZ187CisgICAgYm9vbCBwaW5jaGluZ187CisKKyAgICAvL1BpbmNoIHJlbGF0ZWQgaW5mbworICAgIFZlYzIgdmVjX3BpbmNoX3N0YXJ0XzsKKyAgICBWZWMyIHZlY19waW5jaF9zdGFydF9jZW50ZXJfOworICAgIGZsb2F0IHBpbmNoX3N0YXJ0X2Rpc3RhbmNlX1NRXzsKKworICAgIC8vQ2FtZXJhIHNoaWZ0CisgICAgVmVjMyB2ZWNfb2Zmc2V0XzsKKyAgICBWZWMzIHZlY19vZmZzZXRfbm93XzsKKworICAgIC8vQ2FtZXJhIFJvdGF0aW9uCisgICAgZmxvYXQgY2FtZXJhX3JvdGF0aW9uXzsKKyAgICBmbG9hdCBjYW1lcmFfcm90YXRpb25fc3RhcnRfOworICAgIGZsb2F0IGNhbWVyYV9yb3RhdGlvbl9ub3dfOworCisgICAgLy9Nb21lbnR1bSBzdXBwb3J0CisgICAgYm9vbCBtb21lbnR1bV87CisgICAgVmVjMiB2ZWNfZHJhZ19kZWx0YV87CisgICAgVmVjMiB2ZWNfbGFzdF9pbnB1dF87CisgICAgVmVjMyB2ZWNfb2Zmc2V0X2xhc3RfOworICAgIFZlYzMgdmVjX29mZnNldF9kZWx0YV87CisgICAgZmxvYXQgbW9tZW10dW1fc3RlcHNfOworCisgICAgVmVjMiB2ZWNfZmxpcF87CisgICAgZmxvYXQgZmxpcF96XzsKKworICAgIE1hdDQgbWF0X3JvdGF0aW9uXzsKKyAgICBNYXQ0IG1hdF90cmFuc2Zvcm1fOworCisgICAgVmVjMyB2ZWNfcGluY2hfdHJhbnNmb3JtX2ZhY3Rvcl87CisKKyAgICBWZWMzIFBvaW50T25TcGhlcmUoIFZlYzImIHBvaW50ICk7CisgICAgdm9pZCBCYWxsVXBkYXRlKCk7CisgICAgdm9pZCBJbml0UGFyYW1ldGVycygpOworcHVibGljOgorICAgIFRhcENhbWVyYSgpOworICAgIHZpcnR1YWwgflRhcENhbWVyYSgpOworICAgIHZvaWQgQmVnaW5EcmFnKCBjb25zdCBWZWMyJiB2ZWMgKTsKKyAgICB2b2lkIEVuZERyYWcoKTsKKyAgICB2b2lkIERyYWcoIGNvbnN0IFZlYzImIHZlYyApOworICAgIHZvaWQgVXBkYXRlKCk7CisKKyAgICBNYXQ0JiBHZXRSb3RhdGlvbk1hdHJpeCgpOworICAgIE1hdDQmIEdldFRyYW5zZm9ybU1hdHJpeCgpOworCisgICAgdm9pZCBCZWdpblBpbmNoKCBjb25zdCBWZWMyJiB2MSwgY29uc3QgVmVjMiYgdjIgKTsKKyAgICB2b2lkIEVuZFBpbmNoKCk7CisgICAgdm9pZCBQaW5jaCggY29uc3QgVmVjMiYgdjEsIGNvbnN0IFZlYzImIHYyICk7CisKKyAgICB2b2lkIFNldEZsaXAoIGNvbnN0IGZsb2F0IHgsIGNvbnN0IGZsb2F0IHksIGNvbnN0IGZsb2F0IHogKQorICAgIHsKKyAgICAgICAgdmVjX2ZsaXBfID0gVmVjMiggeCwgeSApOworICAgICAgICBmbGlwX3pfID0gejsKKyAgICB9CisKKyAgICB2b2lkIFNldFBpbmNoVHJhbnNmb3JtRmFjdG9yKCBjb25zdCBmbG9hdCB4LCBjb25zdCBmbG9hdCB5LCBjb25zdCBmbG9hdCB6ICkKKyAgICB7CisgICAgICAgIHZlY19waW5jaF90cmFuc2Zvcm1fZmFjdG9yXyA9IFZlYzMoIHgsIHksIHogKTsKKyAgICB9CisKKyAgICB2b2lkIFJlc2V0KCBjb25zdCBib29sIGJBbmltYXRlICk7CisKK307CisKK30gLy9uYW1lc3BhY2UgbmRrSGVscGVyCmRpZmYgLS1naXQgYS9uZGsvc291cmNlcy9hbmRyb2lkL25ka19oZWxwZXIvdmVjbWF0aC5jcHAgYi9uZGsvc291cmNlcy9hbmRyb2lkL25ka19oZWxwZXIvdmVjbWF0aC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjRhZTVmMwotLS0gL2Rldi9udWxsCisrKyBiL25kay9zb3VyY2VzL2FuZHJvaWQvbmRrX2hlbHBlci92ZWNtYXRoLmNwcApAQCAtMCwwICsxLDM3OSBAQAorLyoKKyAqIENvcHlfcmlnaHQgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5X291IG1heV8gbm90IHVzZSB0aGlzIGZpbGUgZXhfY2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5XyBvYnRhaW4gYSBjb3B5XyBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5XyBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4X3ByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyB2ZWNtYXRoLmNwcAorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorI2luY2x1ZGUgInZlY21hdGguaCIKKworbmFtZXNwYWNlIG5ka19oZWxwZXIKK3sKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gdmVjMworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorVmVjMzo6VmVjMyggY29uc3QgVmVjNCYgdmVjICkKK3sKKyAgICB4XyA9IHZlYy54XzsKKyAgICB5XyA9IHZlYy55XzsKKyAgICB6XyA9IHZlYy56XzsKK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gdmVjNAorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorVmVjNCBWZWM0OjpvcGVyYXRvciooIGNvbnN0IE1hdDQmIHJocyApIGNvbnN0Cit7CisgICAgVmVjNCBvdXQ7CisgICAgb3V0LnhfID0geF8gKiByaHMuZl9bMF0gKyB5XyAqIHJocy5mX1sxXSArIHpfICogcmhzLmZfWzJdICsgd18gKiByaHMuZl9bM107CisgICAgb3V0LnlfID0geF8gKiByaHMuZl9bNF0gKyB5XyAqIHJocy5mX1s1XSArIHpfICogcmhzLmZfWzZdICsgd18gKiByaHMuZl9bN107CisgICAgb3V0LnpfID0geF8gKiByaHMuZl9bOF0gKyB5XyAqIHJocy5mX1s5XSArIHpfICogcmhzLmZfWzEwXSArIHdfICogcmhzLmZfWzExXTsKKyAgICBvdXQud18gPSB4XyAqIHJocy5mX1sxMl0gKyB5XyAqIHJocy5mX1sxM10gKyB6XyAqIHJocy5mX1sxNF0gKyB3XyAqIHJocy5mX1sxNV07CisgICAgcmV0dXJuIG91dDsKK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gbWF0NAorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTWF0NDo6TWF0NCgpCit7CisgICAgZm9yKCBpbnQzMl90IGkgPSAwOyBpIDwgMTY7ICsraSApCisgICAgICAgIGZfW2ldID0gMC5mOworfQorCitNYXQ0OjpNYXQ0KCBjb25zdCBmbG9hdCogbUluICkKK3sKKyAgICBmb3IoIGludDMyX3QgaSA9IDA7IGkgPCAxNjsgKytpICkKKyAgICAgICAgZl9baV0gPSBtSW5baV07Cit9CisKK01hdDQgTWF0NDo6b3BlcmF0b3IqKCBjb25zdCBNYXQ0JiByaHMgKSBjb25zdAoreworICAgIE1hdDQgcmV0OworICAgIHJldC5mX1swXSA9IGZfWzBdICogcmhzLmZfWzBdICsgZl9bNF0gKiByaHMuZl9bMV0gKyBmX1s4XSAqIHJocy5mX1syXQorICAgICAgICAgICAgKyBmX1sxMl0gKiByaHMuZl9bM107CisgICAgcmV0LmZfWzFdID0gZl9bMV0gKiByaHMuZl9bMF0gKyBmX1s1XSAqIHJocy5mX1sxXSArIGZfWzldICogcmhzLmZfWzJdCisgICAgICAgICAgICArIGZfWzEzXSAqIHJocy5mX1szXTsKKyAgICByZXQuZl9bMl0gPSBmX1syXSAqIHJocy5mX1swXSArIGZfWzZdICogcmhzLmZfWzFdICsgZl9bMTBdICogcmhzLmZfWzJdCisgICAgICAgICAgICArIGZfWzE0XSAqIHJocy5mX1szXTsKKyAgICByZXQuZl9bM10gPSBmX1szXSAqIHJocy5mX1swXSArIGZfWzddICogcmhzLmZfWzFdICsgZl9bMTFdICogcmhzLmZfWzJdCisgICAgICAgICAgICArIGZfWzE1XSAqIHJocy5mX1szXTsKKworICAgIHJldC5mX1s0XSA9IGZfWzBdICogcmhzLmZfWzRdICsgZl9bNF0gKiByaHMuZl9bNV0gKyBmX1s4XSAqIHJocy5mX1s2XQorICAgICAgICAgICAgKyBmX1sxMl0gKiByaHMuZl9bN107CisgICAgcmV0LmZfWzVdID0gZl9bMV0gKiByaHMuZl9bNF0gKyBmX1s1XSAqIHJocy5mX1s1XSArIGZfWzldICogcmhzLmZfWzZdCisgICAgICAgICAgICArIGZfWzEzXSAqIHJocy5mX1s3XTsKKyAgICByZXQuZl9bNl0gPSBmX1syXSAqIHJocy5mX1s0XSArIGZfWzZdICogcmhzLmZfWzVdICsgZl9bMTBdICogcmhzLmZfWzZdCisgICAgICAgICAgICArIGZfWzE0XSAqIHJocy5mX1s3XTsKKyAgICByZXQuZl9bN10gPSBmX1szXSAqIHJocy5mX1s0XSArIGZfWzddICogcmhzLmZfWzVdICsgZl9bMTFdICogcmhzLmZfWzZdCisgICAgICAgICAgICArIGZfWzE1XSAqIHJocy5mX1s3XTsKKworICAgIHJldC5mX1s4XSA9IGZfWzBdICogcmhzLmZfWzhdICsgZl9bNF0gKiByaHMuZl9bOV0gKyBmX1s4XSAqIHJocy5mX1sxMF0KKyAgICAgICAgICAgICsgZl9bMTJdICogcmhzLmZfWzExXTsKKyAgICByZXQuZl9bOV0gPSBmX1sxXSAqIHJocy5mX1s4XSArIGZfWzVdICogcmhzLmZfWzldICsgZl9bOV0gKiByaHMuZl9bMTBdCisgICAgICAgICAgICArIGZfWzEzXSAqIHJocy5mX1sxMV07CisgICAgcmV0LmZfWzEwXSA9IGZfWzJdICogcmhzLmZfWzhdICsgZl9bNl0gKiByaHMuZl9bOV0gKyBmX1sxMF0gKiByaHMuZl9bMTBdCisgICAgICAgICAgICArIGZfWzE0XSAqIHJocy5mX1sxMV07CisgICAgcmV0LmZfWzExXSA9IGZfWzNdICogcmhzLmZfWzhdICsgZl9bN10gKiByaHMuZl9bOV0gKyBmX1sxMV0gKiByaHMuZl9bMTBdCisgICAgICAgICAgICArIGZfWzE1XSAqIHJocy5mX1sxMV07CisKKyAgICByZXQuZl9bMTJdID0gZl9bMF0gKiByaHMuZl9bMTJdICsgZl9bNF0gKiByaHMuZl9bMTNdICsgZl9bOF0gKiByaHMuZl9bMTRdCisgICAgICAgICAgICArIGZfWzEyXSAqIHJocy5mX1sxNV07CisgICAgcmV0LmZfWzEzXSA9IGZfWzFdICogcmhzLmZfWzEyXSArIGZfWzVdICogcmhzLmZfWzEzXSArIGZfWzldICogcmhzLmZfWzE0XQorICAgICAgICAgICAgKyBmX1sxM10gKiByaHMuZl9bMTVdOworICAgIHJldC5mX1sxNF0gPSBmX1syXSAqIHJocy5mX1sxMl0gKyBmX1s2XSAqIHJocy5mX1sxM10gKyBmX1sxMF0gKiByaHMuZl9bMTRdCisgICAgICAgICAgICArIGZfWzE0XSAqIHJocy5mX1sxNV07CisgICAgcmV0LmZfWzE1XSA9IGZfWzNdICogcmhzLmZfWzEyXSArIGZfWzddICogcmhzLmZfWzEzXSArIGZfWzExXSAqIHJocy5mX1sxNF0KKyAgICAgICAgICAgICsgZl9bMTVdICogcmhzLmZfWzE1XTsKKworICAgIHJldHVybiByZXQ7Cit9CisKK1ZlYzQgTWF0NDo6b3BlcmF0b3IqKCBjb25zdCBWZWM0JiByaHMgKSBjb25zdAoreworICAgIFZlYzQgcmV0OworICAgIHJldC54XyA9IHJocy54XyAqIGZfWzBdICsgcmhzLnlfICogZl9bNF0gKyByaHMuel8gKiBmX1s4XSArIHJocy53XyAqIGZfWzEyXTsKKyAgICByZXQueV8gPSByaHMueF8gKiBmX1sxXSArIHJocy55XyAqIGZfWzVdICsgcmhzLnpfICogZl9bOV0gKyByaHMud18gKiBmX1sxM107CisgICAgcmV0LnpfID0gcmhzLnhfICogZl9bMl0gKyByaHMueV8gKiBmX1s2XSArIHJocy56XyAqIGZfWzEwXSArIHJocy53XyAqIGZfWzE0XTsKKyAgICByZXQud18gPSByaHMueF8gKiBmX1szXSArIHJocy55XyAqIGZfWzddICsgcmhzLnpfICogZl9bMTFdICsgcmhzLndfICogZl9bMTVdOworICAgIHJldHVybiByZXQ7Cit9CisKK01hdDQgTWF0NDo6SW52ZXJzZSgpCit7CisgICAgTWF0NCByZXQ7CisgICAgZmxvYXQgZGV0XzE7CisgICAgZmxvYXQgcG9zID0gMDsKKyAgICBmbG9hdCBuZWcgPSAwOworICAgIGZsb2F0IHRlbXA7CisKKyAgICB0ZW1wID0gZl9bMF0gKiBmX1s1XSAqIGZfWzEwXTsKKyAgICBpZiggdGVtcCA+PSAwICkKKyAgICAgICAgcG9zICs9IHRlbXA7CisgICAgZWxzZQorICAgICAgICBuZWcgKz0gdGVtcDsKKyAgICB0ZW1wID0gZl9bNF0gKiBmX1s5XSAqIGZfWzJdOworICAgIGlmKCB0ZW1wID49IDAgKQorICAgICAgICBwb3MgKz0gdGVtcDsKKyAgICBlbHNlCisgICAgICAgIG5lZyArPSB0ZW1wOworICAgIHRlbXAgPSBmX1s4XSAqIGZfWzFdICogZl9bNl07CisgICAgaWYoIHRlbXAgPj0gMCApCisgICAgICAgIHBvcyArPSB0ZW1wOworICAgIGVsc2UKKyAgICAgICAgbmVnICs9IHRlbXA7CisgICAgdGVtcCA9IC1mX1s4XSAqIGZfWzVdICogZl9bMl07CisgICAgaWYoIHRlbXAgPj0gMCApCisgICAgICAgIHBvcyArPSB0ZW1wOworICAgIGVsc2UKKyAgICAgICAgbmVnICs9IHRlbXA7CisgICAgdGVtcCA9IC1mX1s0XSAqIGZfWzFdICogZl9bMTBdOworICAgIGlmKCB0ZW1wID49IDAgKQorICAgICAgICBwb3MgKz0gdGVtcDsKKyAgICBlbHNlCisgICAgICAgIG5lZyArPSB0ZW1wOworICAgIHRlbXAgPSAtZl9bMF0gKiBmX1s5XSAqIGZfWzZdOworICAgIGlmKCB0ZW1wID49IDAgKQorICAgICAgICBwb3MgKz0gdGVtcDsKKyAgICBlbHNlCisgICAgICAgIG5lZyArPSB0ZW1wOworICAgIGRldF8xID0gcG9zICsgbmVnOworCisgICAgaWYoIGRldF8xID09IDAuMCApCisgICAgeworICAgICAgICAvL0Vycm9yCisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIGRldF8xID0gMS4wZiAvIGRldF8xOworICAgICAgICByZXQuZl9bMF0gPSAoZl9bNV0gKiBmX1sxMF0gLSBmX1s5XSAqIGZfWzZdKSAqIGRldF8xOworICAgICAgICByZXQuZl9bMV0gPSAtKGZfWzFdICogZl9bMTBdIC0gZl9bOV0gKiBmX1syXSkgKiBkZXRfMTsKKyAgICAgICAgcmV0LmZfWzJdID0gKGZfWzFdICogZl9bNl0gLSBmX1s1XSAqIGZfWzJdKSAqIGRldF8xOworICAgICAgICByZXQuZl9bNF0gPSAtKGZfWzRdICogZl9bMTBdIC0gZl9bOF0gKiBmX1s2XSkgKiBkZXRfMTsKKyAgICAgICAgcmV0LmZfWzVdID0gKGZfWzBdICogZl9bMTBdIC0gZl9bOF0gKiBmX1syXSkgKiBkZXRfMTsKKyAgICAgICAgcmV0LmZfWzZdID0gLShmX1swXSAqIGZfWzZdIC0gZl9bNF0gKiBmX1syXSkgKiBkZXRfMTsKKyAgICAgICAgcmV0LmZfWzhdID0gKGZfWzRdICogZl9bOV0gLSBmX1s4XSAqIGZfWzVdKSAqIGRldF8xOworICAgICAgICByZXQuZl9bOV0gPSAtKGZfWzBdICogZl9bOV0gLSBmX1s4XSAqIGZfWzFdKSAqIGRldF8xOworICAgICAgICByZXQuZl9bMTBdID0gKGZfWzBdICogZl9bNV0gLSBmX1s0XSAqIGZfWzFdKSAqIGRldF8xOworCisgICAgICAgIC8qIENhbGN1bGF0ZSAtQyAqIGludmVyc2UoQSkgKi8KKyAgICAgICAgcmV0LmZfWzEyXSA9IC0oZl9bMTJdICogcmV0LmZfWzBdICsgZl9bMTNdICogcmV0LmZfWzRdICsgZl9bMTRdICogcmV0LmZfWzhdKTsKKyAgICAgICAgcmV0LmZfWzEzXSA9IC0oZl9bMTJdICogcmV0LmZfWzFdICsgZl9bMTNdICogcmV0LmZfWzVdICsgZl9bMTRdICogcmV0LmZfWzldKTsKKyAgICAgICAgcmV0LmZfWzE0XSA9IC0oZl9bMTJdICogcmV0LmZfWzJdICsgZl9bMTNdICogcmV0LmZfWzZdICsgZl9bMTRdICogcmV0LmZfWzEwXSk7CisKKyAgICAgICAgcmV0LmZfWzNdID0gMC4wZjsKKyAgICAgICAgcmV0LmZfWzddID0gMC4wZjsKKyAgICAgICAgcmV0LmZfWzExXSA9IDAuMGY7CisgICAgICAgIHJldC5mX1sxNV0gPSAxLjBmOworICAgIH0KKworICAgICp0aGlzID0gcmV0OworICAgIHJldHVybiAqdGhpczsKK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gTWlzYworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTWF0NCBNYXQ0OjpSb3RhdGlvblgoIGNvbnN0IGZsb2F0IGZBbmdsZSApCit7CisgICAgTWF0NCByZXQ7CisgICAgZmxvYXQgZkNvc2luZSwgZlNpbmU7CisKKyAgICBmQ29zaW5lID0gY29zZiggZkFuZ2xlICk7CisgICAgZlNpbmUgPSBzaW5mKCBmQW5nbGUgKTsKKworICAgIHJldC5mX1swXSA9IDEuMGY7CisgICAgcmV0LmZfWzRdID0gMC4wZjsKKyAgICByZXQuZl9bOF0gPSAwLjBmOworICAgIHJldC5mX1sxMl0gPSAwLjBmOworICAgIHJldC5mX1sxXSA9IDAuMGY7CisgICAgcmV0LmZfWzVdID0gZkNvc2luZTsKKyAgICByZXQuZl9bOV0gPSBmU2luZTsKKyAgICByZXQuZl9bMTNdID0gMC4wZjsKKyAgICByZXQuZl9bMl0gPSAwLjBmOworICAgIHJldC5mX1s2XSA9IC1mU2luZTsKKyAgICByZXQuZl9bMTBdID0gZkNvc2luZTsKKyAgICByZXQuZl9bMTRdID0gMC4wZjsKKyAgICByZXQuZl9bM10gPSAwLjBmOworICAgIHJldC5mX1s3XSA9IDAuMGY7CisgICAgcmV0LmZfWzExXSA9IDAuMGY7CisgICAgcmV0LmZfWzE1XSA9IDEuMGY7CisgICAgcmV0dXJuIHJldDsKK30KKworTWF0NCBNYXQ0OjpSb3RhdGlvblkoIGNvbnN0IGZsb2F0IGZBbmdsZSApCit7CisgICAgTWF0NCByZXQ7CisgICAgZmxvYXQgZkNvc2luZSwgZlNpbmU7CisKKyAgICBmQ29zaW5lID0gY29zZiggZkFuZ2xlICk7CisgICAgZlNpbmUgPSBzaW5mKCBmQW5nbGUgKTsKKworICAgIHJldC5mX1swXSA9IGZDb3NpbmU7CisgICAgcmV0LmZfWzRdID0gMC4wZjsKKyAgICByZXQuZl9bOF0gPSAtZlNpbmU7CisgICAgcmV0LmZfWzEyXSA9IDAuMGY7CisgICAgcmV0LmZfWzFdID0gMC4wZjsKKyAgICByZXQuZl9bNV0gPSAxLjBmOworICAgIHJldC5mX1s5XSA9IDAuMGY7CisgICAgcmV0LmZfWzEzXSA9IDAuMGY7CisgICAgcmV0LmZfWzJdID0gZlNpbmU7CisgICAgcmV0LmZfWzZdID0gMC4wZjsKKyAgICByZXQuZl9bMTBdID0gZkNvc2luZTsKKyAgICByZXQuZl9bMTRdID0gMC4wZjsKKyAgICByZXQuZl9bM10gPSAwLjBmOworICAgIHJldC5mX1s3XSA9IDAuMGY7CisgICAgcmV0LmZfWzExXSA9IDAuMGY7CisgICAgcmV0LmZfWzE1XSA9IDEuMGY7CisgICAgcmV0dXJuIHJldDsKKworfQorCitNYXQ0IE1hdDQ6OlJvdGF0aW9uWiggY29uc3QgZmxvYXQgZkFuZ2xlICkKK3sKKyAgICBNYXQ0IHJldDsKKyAgICBmbG9hdCBmQ29zaW5lLCBmU2luZTsKKworICAgIGZDb3NpbmUgPSBjb3NmKCBmQW5nbGUgKTsKKyAgICBmU2luZSA9IHNpbmYoIGZBbmdsZSApOworCisgICAgcmV0LmZfWzBdID0gZkNvc2luZTsKKyAgICByZXQuZl9bNF0gPSBmU2luZTsKKyAgICByZXQuZl9bOF0gPSAwLjBmOworICAgIHJldC5mX1sxMl0gPSAwLjBmOworICAgIHJldC5mX1sxXSA9IC1mU2luZTsKKyAgICByZXQuZl9bNV0gPSBmQ29zaW5lOworICAgIHJldC5mX1s5XSA9IDAuMGY7CisgICAgcmV0LmZfWzEzXSA9IDAuMGY7CisgICAgcmV0LmZfWzJdID0gMC4wZjsKKyAgICByZXQuZl9bNl0gPSAwLjBmOworICAgIHJldC5mX1sxMF0gPSAxLjBmOworICAgIHJldC5mX1sxNF0gPSAwLjBmOworICAgIHJldC5mX1szXSA9IDAuMGY7CisgICAgcmV0LmZfWzddID0gMC4wZjsKKyAgICByZXQuZl9bMTFdID0gMC4wZjsKKyAgICByZXQuZl9bMTVdID0gMS4wZjsKKyAgICByZXR1cm4gcmV0OworfQorCitNYXQ0IE1hdDQ6OlRyYW5zbGF0aW9uKCBjb25zdCBmbG9hdCBmWCwgY29uc3QgZmxvYXQgZlksIGNvbnN0IGZsb2F0IGZaICkKK3sKKyAgICBNYXQ0IHJldDsKKyAgICByZXQuZl9bMF0gPSAxLjBmOworICAgIHJldC5mX1s0XSA9IDAuMGY7CisgICAgcmV0LmZfWzhdID0gMC4wZjsKKyAgICByZXQuZl9bMTJdID0gZlg7CisgICAgcmV0LmZfWzFdID0gMC4wZjsKKyAgICByZXQuZl9bNV0gPSAxLjBmOworICAgIHJldC5mX1s5XSA9IDAuMGY7CisgICAgcmV0LmZfWzEzXSA9IGZZOworICAgIHJldC5mX1syXSA9IDAuMGY7CisgICAgcmV0LmZfWzZdID0gMC4wZjsKKyAgICByZXQuZl9bMTBdID0gMS4wZjsKKyAgICByZXQuZl9bMTRdID0gZlo7CisgICAgcmV0LmZfWzNdID0gMC4wZjsKKyAgICByZXQuZl9bN10gPSAwLjBmOworICAgIHJldC5mX1sxMV0gPSAwLjBmOworICAgIHJldC5mX1sxNV0gPSAxLjBmOworICAgIHJldHVybiByZXQ7Cit9CisKK01hdDQgTWF0NDo6VHJhbnNsYXRpb24oIGNvbnN0IFZlYzMgdmVjICkKK3sKKyAgICBNYXQ0IHJldDsKKyAgICByZXQuZl9bMF0gPSAxLjBmOworICAgIHJldC5mX1s0XSA9IDAuMGY7CisgICAgcmV0LmZfWzhdID0gMC4wZjsKKyAgICByZXQuZl9bMTJdID0gdmVjLnhfOworICAgIHJldC5mX1sxXSA9IDAuMGY7CisgICAgcmV0LmZfWzVdID0gMS4wZjsKKyAgICByZXQuZl9bOV0gPSAwLjBmOworICAgIHJldC5mX1sxM10gPSB2ZWMueV87CisgICAgcmV0LmZfWzJdID0gMC4wZjsKKyAgICByZXQuZl9bNl0gPSAwLjBmOworICAgIHJldC5mX1sxMF0gPSAxLjBmOworICAgIHJldC5mX1sxNF0gPSB2ZWMuel87CisgICAgcmV0LmZfWzNdID0gMC4wZjsKKyAgICByZXQuZl9bN10gPSAwLjBmOworICAgIHJldC5mX1sxMV0gPSAwLjBmOworICAgIHJldC5mX1sxNV0gPSAxLjBmOworICAgIHJldHVybiByZXQ7Cit9CisKK01hdDQgTWF0NDo6UGVyc3BlY3RpdmUoIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIGZsb2F0IG5lYXJQbGFuZSwgZmxvYXQgZmFyUGxhbmUgKQoreworICAgIGZsb2F0IG4yID0gMi4wZiAqIG5lYXJQbGFuZTsKKyAgICBmbG9hdCByY3BubWYgPSAxLmYgLyAobmVhclBsYW5lIC0gZmFyUGxhbmUpOworCisgICAgTWF0NCByZXN1bHQ7CisgICAgcmVzdWx0LmZfWzBdID0gbjIgLyB3aWR0aDsKKyAgICByZXN1bHQuZl9bNF0gPSAwOworICAgIHJlc3VsdC5mX1s4XSA9IDA7CisgICAgcmVzdWx0LmZfWzEyXSA9IDA7CisgICAgcmVzdWx0LmZfWzFdID0gMDsKKyAgICByZXN1bHQuZl9bNV0gPSBuMiAvIGhlaWdodDsKKyAgICByZXN1bHQuZl9bOV0gPSAwOworICAgIHJlc3VsdC5mX1sxM10gPSAwOworICAgIHJlc3VsdC5mX1syXSA9IDA7CisgICAgcmVzdWx0LmZfWzZdID0gMDsKKyAgICByZXN1bHQuZl9bMTBdID0gKGZhclBsYW5lICsgbmVhclBsYW5lKSAqIHJjcG5tZjsKKyAgICByZXN1bHQuZl9bMTRdID0gZmFyUGxhbmUgKiByY3BubWYgKiBuMjsKKyAgICByZXN1bHQuZl9bM10gPSAwOworICAgIHJlc3VsdC5mX1s3XSA9IDA7CisgICAgcmVzdWx0LmZfWzExXSA9IC0xLjA7CisgICAgcmVzdWx0LmZfWzE1XSA9IDA7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitNYXQ0IE1hdDQ6Okxvb2tBdCggY29uc3QgVmVjMyYgdmVjX2V5ZSwgY29uc3QgVmVjMyYgdmVjX2F0LCBjb25zdCBWZWMzJiB2ZWNfdXAgKQoreworICAgIFZlYzMgdmVjX2ZvcndhcmQsIHZlY191cF9ub3JtLCB2ZWNfc2lkZTsKKyAgICBNYXQ0IHJlc3VsdDsKKworICAgIHZlY19mb3J3YXJkLnhfID0gdmVjX2V5ZS54XyAtIHZlY19hdC54XzsKKyAgICB2ZWNfZm9yd2FyZC55XyA9IHZlY19leWUueV8gLSB2ZWNfYXQueV87CisgICAgdmVjX2ZvcndhcmQuel8gPSB2ZWNfZXllLnpfIC0gdmVjX2F0LnpfOworCisgICAgdmVjX2ZvcndhcmQuTm9ybWFsaXplKCk7CisgICAgdmVjX3VwX25vcm0gPSB2ZWNfdXA7CisgICAgdmVjX3VwX25vcm0uTm9ybWFsaXplKCk7CisgICAgdmVjX3NpZGUgPSB2ZWNfdXBfbm9ybS5Dcm9zcyggdmVjX2ZvcndhcmQgKTsKKyAgICB2ZWNfdXBfbm9ybSA9IHZlY19mb3J3YXJkLkNyb3NzKCB2ZWNfc2lkZSApOworCisgICAgcmVzdWx0LmZfWzBdID0gdmVjX3NpZGUueF87CisgICAgcmVzdWx0LmZfWzRdID0gdmVjX3NpZGUueV87CisgICAgcmVzdWx0LmZfWzhdID0gdmVjX3NpZGUuel87CisgICAgcmVzdWx0LmZfWzEyXSA9IDA7CisgICAgcmVzdWx0LmZfWzFdID0gdmVjX3VwX25vcm0ueF87CisgICAgcmVzdWx0LmZfWzVdID0gdmVjX3VwX25vcm0ueV87CisgICAgcmVzdWx0LmZfWzldID0gdmVjX3VwX25vcm0uel87CisgICAgcmVzdWx0LmZfWzEzXSA9IDA7CisgICAgcmVzdWx0LmZfWzJdID0gdmVjX2ZvcndhcmQueF87CisgICAgcmVzdWx0LmZfWzZdID0gdmVjX2ZvcndhcmQueV87CisgICAgcmVzdWx0LmZfWzEwXSA9IHZlY19mb3J3YXJkLnpfOworICAgIHJlc3VsdC5mX1sxNF0gPSAwOworICAgIHJlc3VsdC5mX1szXSA9IDA7CisgICAgcmVzdWx0LmZfWzddID0gMDsKKyAgICByZXN1bHQuZl9bMTFdID0gMDsKKyAgICByZXN1bHQuZl9bMTVdID0gMS4wOworCisgICAgcmVzdWx0LlBvc3RUcmFuc2xhdGUoIC12ZWNfZXllLnhfLCAtdmVjX2V5ZS55XywgLXZlY19leWUuel8gKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit9IC8vbmFtZXNwYWNlIG5ka0hlbHBlcgorCmRpZmYgLS1naXQgYS9uZGsvc291cmNlcy9hbmRyb2lkL25ka19oZWxwZXIvdmVjbWF0aC5oIGIvbmRrL3NvdXJjZXMvYW5kcm9pZC9uZGtfaGVscGVyL3ZlY21hdGguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNjkyZTNkCi0tLSAvZGV2L251bGwKKysrIGIvbmRrL3NvdXJjZXMvYW5kcm9pZC9uZGtfaGVscGVyL3ZlY21hdGguaApAQCAtMCwwICsxLDExMTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgVkVDTUFUSF9IXworI2RlZmluZSBWRUNNQVRIX0hfCisKKyNpbmNsdWRlIDxtYXRoLmg+CisjaW5jbHVkZSAiSk5JSGVscGVyLmgiCisKK25hbWVzcGFjZSBuZGtfaGVscGVyCit7CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEhlbHBlciBjbGFzcyBmb3IgdmVjdG9yIG1hdGggb3BlcmF0aW9ucworICogQ3VycmVudGx5IGFsbCBpbXBsZW1lbnRhdGlvbnMgYXJlIGluIHB1cmUgQysrLgorICogRWFjaCBjbGFzcyBpcyBhbiBvcGFxdWUgY2xhc3Mgc28gY2FsbGVyIGRvZXMgbm90IGhhdmUgYSBkaXJlY3QgYWNjZXNzCisgKiB0byBlYWNoIGVsZW1lbnQuIFRoaXMgaXMgZm9yIGFuIGVhc2Ugb2YgZnV0dXJlIG9wdGltaXphdGlvbiB0byB1c2UgdmVjdG9yIG9wZXJhdGlvbnMuCisgKgorICovCisKK2NsYXNzIFZlYzI7CitjbGFzcyBWZWMzOworY2xhc3MgVmVjNDsKK2NsYXNzIE1hdDQ7CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIDIgZWxlbWVudHMgdmVjdG9yIGNsYXNzCisgKgorICovCitjbGFzcyBWZWMyCit7Citwcml2YXRlOgorICAgIGZsb2F0IHhfOworICAgIGZsb2F0IHlfOworCitwdWJsaWM6CisgICAgZnJpZW5kIGNsYXNzIFZlYzM7CisgICAgZnJpZW5kIGNsYXNzIFZlYzQ7CisgICAgZnJpZW5kIGNsYXNzIE1hdDQ7CisgICAgZnJpZW5kIGNsYXNzIFF1YXRlcm5pb247CisKKyAgICBWZWMyKCkKKyAgICB7CisgICAgICAgIHhfID0geV8gPSAwLmY7CisgICAgfQorCisgICAgVmVjMiggY29uc3QgZmxvYXQgZlgsIGNvbnN0IGZsb2F0IGZZICkKKyAgICB7CisgICAgICAgIHhfID0gZlg7CisgICAgICAgIHlfID0gZlk7CisgICAgfQorCisgICAgVmVjMiggY29uc3QgVmVjMiYgdmVjICkKKyAgICB7CisgICAgICAgIHhfID0gdmVjLnhfOworICAgICAgICB5XyA9IHZlYy55XzsKKyAgICB9CisKKyAgICBWZWMyKCBjb25zdCBmbG9hdCogcFZlYyApCisgICAgeworICAgICAgICB4XyA9ICgqcFZlYysrKTsKKyAgICAgICAgeV8gPSAoKnBWZWMrKyk7CisgICAgfQorCisgICAgLy9PcGVyYXRvcnMKKyAgICBWZWMyIG9wZXJhdG9yKiggY29uc3QgVmVjMiYgcmhzICkgY29uc3QKKyAgICB7CisgICAgICAgIFZlYzIgcmV0OworICAgICAgICByZXQueF8gPSB4XyAqIHJocy54XzsKKyAgICAgICAgcmV0LnlfID0geV8gKiByaHMueV87CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgVmVjMiBvcGVyYXRvci8oIGNvbnN0IFZlYzImIHJocyApIGNvbnN0CisgICAgeworICAgICAgICBWZWMyIHJldDsKKyAgICAgICAgcmV0LnhfID0geF8gLyByaHMueF87CisgICAgICAgIHJldC55XyA9IHlfIC8gcmhzLnlfOworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIFZlYzIgb3BlcmF0b3IrKCBjb25zdCBWZWMyJiByaHMgKSBjb25zdAorICAgIHsKKyAgICAgICAgVmVjMiByZXQ7CisgICAgICAgIHJldC54XyA9IHhfICsgcmhzLnhfOworICAgICAgICByZXQueV8gPSB5XyArIHJocy55XzsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBWZWMyIG9wZXJhdG9yLSggY29uc3QgVmVjMiYgcmhzICkgY29uc3QKKyAgICB7CisgICAgICAgIFZlYzIgcmV0OworICAgICAgICByZXQueF8gPSB4XyAtIHJocy54XzsKKyAgICAgICAgcmV0LnlfID0geV8gLSByaHMueV87CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgVmVjMiYgb3BlcmF0b3IrPSggY29uc3QgVmVjMiYgcmhzICkKKyAgICB7CisgICAgICAgIHhfICs9IHJocy54XzsKKyAgICAgICAgeV8gKz0gcmhzLnlfOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgVmVjMiYgb3BlcmF0b3ItPSggY29uc3QgVmVjMiYgcmhzICkKKyAgICB7CisgICAgICAgIHhfIC09IHJocy54XzsKKyAgICAgICAgeV8gLT0gcmhzLnlfOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgVmVjMiYgb3BlcmF0b3IqPSggY29uc3QgVmVjMiYgcmhzICkKKyAgICB7CisgICAgICAgIHhfICo9IHJocy54XzsKKyAgICAgICAgeV8gKj0gcmhzLnlfOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgVmVjMiYgb3BlcmF0b3IvPSggY29uc3QgVmVjMiYgcmhzICkKKyAgICB7CisgICAgICAgIHhfIC89IHJocy54XzsKKyAgICAgICAgeV8gLz0gcmhzLnlfOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgLy9FeHRlcm5hbCBvcGVyYXRvcnMKKyAgICBmcmllbmQgVmVjMiBvcGVyYXRvci0oIGNvbnN0IFZlYzImIHJocyApCisgICAgeworICAgICAgICByZXR1cm4gVmVjMiggcmhzICkgKj0gLTE7CisgICAgfQorCisgICAgZnJpZW5kIFZlYzIgb3BlcmF0b3IqKCBjb25zdCBmbG9hdCBsaHMsIGNvbnN0IFZlYzImIHJocyApCisgICAgeworICAgICAgICBWZWMyIHJldDsKKyAgICAgICAgcmV0LnhfID0gbGhzICogcmhzLnhfOworICAgICAgICByZXQueV8gPSBsaHMgKiByaHMueV87CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgZnJpZW5kIFZlYzIgb3BlcmF0b3IvKCBjb25zdCBmbG9hdCBsaHMsIGNvbnN0IFZlYzImIHJocyApCisgICAgeworICAgICAgICBWZWMyIHJldDsKKyAgICAgICAgcmV0LnhfID0gbGhzIC8gcmhzLnhfOworICAgICAgICByZXQueV8gPSBsaHMgLyByaHMueV87CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgLy9PcGVyYXRvcnMgd2l0aCBmbG9hdAorICAgIFZlYzIgb3BlcmF0b3IqKCBjb25zdCBmbG9hdCYgcmhzICkgY29uc3QKKyAgICB7CisgICAgICAgIFZlYzIgcmV0OworICAgICAgICByZXQueF8gPSB4XyAqIHJoczsKKyAgICAgICAgcmV0LnlfID0geV8gKiByaHM7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgVmVjMiYgb3BlcmF0b3IqPSggY29uc3QgZmxvYXQmIHJocyApCisgICAgeworICAgICAgICB4XyA9IHhfICogcmhzOworICAgICAgICB5XyA9IHlfICogcmhzOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgVmVjMiBvcGVyYXRvci8oIGNvbnN0IGZsb2F0JiByaHMgKSBjb25zdAorICAgIHsKKyAgICAgICAgVmVjMiByZXQ7CisgICAgICAgIHJldC54XyA9IHhfIC8gcmhzOworICAgICAgICByZXQueV8gPSB5XyAvIHJoczsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBWZWMyJiBvcGVyYXRvci89KCBjb25zdCBmbG9hdCYgcmhzICkKKyAgICB7CisgICAgICAgIHhfID0geF8gLyByaHM7CisgICAgICAgIHlfID0geV8gLyByaHM7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICAvL0NvbXBhcmUKKyAgICBib29sIG9wZXJhdG9yPT0oIGNvbnN0IFZlYzImIHJocyApIGNvbnN0CisgICAgeworICAgICAgICBpZiggeF8gIT0gcmhzLnhfIHx8IHlfICE9IHJocy55XyApCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3IhPSggY29uc3QgVmVjMiYgcmhzICkgY29uc3QKKyAgICB7CisgICAgICAgIGlmKCB4XyA9PSByaHMueF8gKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGZsb2F0IExlbmd0aCgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gc3FydGYoIHhfICogeF8gKyB5XyAqIHlfICk7CisgICAgfQorCisgICAgVmVjMiBOb3JtYWxpemUoKQorICAgIHsKKyAgICAgICAgZmxvYXQgbGVuID0gTGVuZ3RoKCk7CisgICAgICAgIHhfID0geF8gLyBsZW47CisgICAgICAgIHlfID0geV8gLyBsZW47CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBmbG9hdCBEb3QoIGNvbnN0IFZlYzImIHJocyApCisgICAgeworICAgICAgICByZXR1cm4geF8gKiByaHMueF8gKyB5XyAqIHJocy55XzsKKyAgICB9CisKKyAgICBib29sIFZhbGlkYXRlKCkKKyAgICB7CisgICAgICAgIGlmKCBpc25hbiggeF8gKSB8fCBpc25hbiggeV8gKSApCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHZvaWQgVmFsdWUoIGZsb2F0JiBmWCwgZmxvYXQmIGZZICkKKyAgICB7CisgICAgICAgIGZYID0geF87CisgICAgICAgIGZZID0geV87CisgICAgfQorCisgICAgdm9pZCBEdW1wKCkKKyAgICB7CisgICAgICAgIExPR0koICJWZWMyICVmICVmIiwgeF8sIHlfICk7CisgICAgfQorfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogMyBlbGVtZW50cyB2ZWN0b3IgY2xhc3MKKyAqCisgKi8KK2NsYXNzIFZlYzMKK3sKK3ByaXZhdGU6CisgICAgZmxvYXQgeF8sIHlfLCB6XzsKKworcHVibGljOgorICAgIGZyaWVuZCBjbGFzcyBWZWM0OworICAgIGZyaWVuZCBjbGFzcyBNYXQ0OworICAgIGZyaWVuZCBjbGFzcyBRdWF0ZXJuaW9uOworCisgICAgVmVjMygpCisgICAgeworICAgICAgICB4XyA9IHlfID0gel8gPSAwLmY7CisgICAgfQorCisgICAgVmVjMyggY29uc3QgZmxvYXQgZlgsIGNvbnN0IGZsb2F0IGZZLCBjb25zdCBmbG9hdCBmWiApCisgICAgeworICAgICAgICB4XyA9IGZYOworICAgICAgICB5XyA9IGZZOworICAgICAgICB6XyA9IGZaOworICAgIH0KKworICAgIFZlYzMoIGNvbnN0IFZlYzMmIHZlYyApCisgICAgeworICAgICAgICB4XyA9IHZlYy54XzsKKyAgICAgICAgeV8gPSB2ZWMueV87CisgICAgICAgIHpfID0gdmVjLnpfOworICAgIH0KKworICAgIFZlYzMoIGNvbnN0IGZsb2F0KiBwVmVjICkKKyAgICB7CisgICAgICAgIHhfID0gKCpwVmVjKyspOworICAgICAgICB5XyA9ICgqcFZlYysrKTsKKyAgICAgICAgel8gPSAqcFZlYzsKKyAgICB9CisKKyAgICBWZWMzKCBjb25zdCBWZWMyJiB2ZWMsIGZsb2F0IGYgKQorICAgIHsKKyAgICAgICAgeF8gPSB2ZWMueF87CisgICAgICAgIHlfID0gdmVjLnlfOworICAgICAgICB6XyA9IGY7CisgICAgfQorCisgICAgVmVjMyggY29uc3QgVmVjNCYgdmVjICk7CisKKyAgICAvL09wZXJhdG9ycworICAgIFZlYzMgb3BlcmF0b3IqKCBjb25zdCBWZWMzJiByaHMgKSBjb25zdAorICAgIHsKKyAgICAgICAgVmVjMyByZXQ7CisgICAgICAgIHJldC54XyA9IHhfICogcmhzLnhfOworICAgICAgICByZXQueV8gPSB5XyAqIHJocy55XzsKKyAgICAgICAgcmV0LnpfID0gel8gKiByaHMuel87CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgVmVjMyBvcGVyYXRvci8oIGNvbnN0IFZlYzMmIHJocyApIGNvbnN0CisgICAgeworICAgICAgICBWZWMzIHJldDsKKyAgICAgICAgcmV0LnhfID0geF8gLyByaHMueF87CisgICAgICAgIHJldC55XyA9IHlfIC8gcmhzLnlfOworICAgICAgICByZXQuel8gPSB6XyAvIHJocy56XzsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBWZWMzIG9wZXJhdG9yKyggY29uc3QgVmVjMyYgcmhzICkgY29uc3QKKyAgICB7CisgICAgICAgIFZlYzMgcmV0OworICAgICAgICByZXQueF8gPSB4XyArIHJocy54XzsKKyAgICAgICAgcmV0LnlfID0geV8gKyByaHMueV87CisgICAgICAgIHJldC56XyA9IHpfICsgcmhzLnpfOworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIFZlYzMgb3BlcmF0b3ItKCBjb25zdCBWZWMzJiByaHMgKSBjb25zdAorICAgIHsKKyAgICAgICAgVmVjMyByZXQ7CisgICAgICAgIHJldC54XyA9IHhfIC0gcmhzLnhfOworICAgICAgICByZXQueV8gPSB5XyAtIHJocy55XzsKKyAgICAgICAgcmV0LnpfID0gel8gLSByaHMuel87CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgVmVjMyYgb3BlcmF0b3IrPSggY29uc3QgVmVjMyYgcmhzICkKKyAgICB7CisgICAgICAgIHhfICs9IHJocy54XzsKKyAgICAgICAgeV8gKz0gcmhzLnlfOworICAgICAgICB6XyArPSByaHMuel87CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBWZWMzJiBvcGVyYXRvci09KCBjb25zdCBWZWMzJiByaHMgKQorICAgIHsKKyAgICAgICAgeF8gLT0gcmhzLnhfOworICAgICAgICB5XyAtPSByaHMueV87CisgICAgICAgIHpfIC09IHJocy56XzsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIFZlYzMmIG9wZXJhdG9yKj0oIGNvbnN0IFZlYzMmIHJocyApCisgICAgeworICAgICAgICB4XyAqPSByaHMueF87CisgICAgICAgIHlfICo9IHJocy55XzsKKyAgICAgICAgel8gKj0gcmhzLnpfOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgVmVjMyYgb3BlcmF0b3IvPSggY29uc3QgVmVjMyYgcmhzICkKKyAgICB7CisgICAgICAgIHhfIC89IHJocy54XzsKKyAgICAgICAgeV8gLz0gcmhzLnlfOworICAgICAgICB6XyAvPSByaHMuel87CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICAvL0V4dGVybmFsIG9wZXJhdG9ycworICAgIGZyaWVuZCBWZWMzIG9wZXJhdG9yLSggY29uc3QgVmVjMyYgcmhzICkKKyAgICB7CisgICAgICAgIHJldHVybiBWZWMzKCByaHMgKSAqPSAtMTsKKyAgICB9CisKKyAgICBmcmllbmQgVmVjMyBvcGVyYXRvciooIGNvbnN0IGZsb2F0IGxocywgY29uc3QgVmVjMyYgcmhzICkKKyAgICB7CisgICAgICAgIFZlYzMgcmV0OworICAgICAgICByZXQueF8gPSBsaHMgKiByaHMueF87CisgICAgICAgIHJldC55XyA9IGxocyAqIHJocy55XzsKKyAgICAgICAgcmV0LnpfID0gbGhzICogcmhzLnpfOworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIGZyaWVuZCBWZWMzIG9wZXJhdG9yLyggY29uc3QgZmxvYXQgbGhzLCBjb25zdCBWZWMzJiByaHMgKQorICAgIHsKKyAgICAgICAgVmVjMyByZXQ7CisgICAgICAgIHJldC54XyA9IGxocyAvIHJocy54XzsKKyAgICAgICAgcmV0LnlfID0gbGhzIC8gcmhzLnlfOworICAgICAgICByZXQuel8gPSBsaHMgLyByaHMuel87CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgLy9PcGVyYXRvcnMgd2l0aCBmbG9hdAorICAgIFZlYzMgb3BlcmF0b3IqKCBjb25zdCBmbG9hdCYgcmhzICkgY29uc3QKKyAgICB7CisgICAgICAgIFZlYzMgcmV0OworICAgICAgICByZXQueF8gPSB4XyAqIHJoczsKKyAgICAgICAgcmV0LnlfID0geV8gKiByaHM7CisgICAgICAgIHJldC56XyA9IHpfICogcmhzOworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIFZlYzMmIG9wZXJhdG9yKj0oIGNvbnN0IGZsb2F0JiByaHMgKQorICAgIHsKKyAgICAgICAgeF8gPSB4XyAqIHJoczsKKyAgICAgICAgeV8gPSB5XyAqIHJoczsKKyAgICAgICAgel8gPSB6XyAqIHJoczsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIFZlYzMgb3BlcmF0b3IvKCBjb25zdCBmbG9hdCYgcmhzICkgY29uc3QKKyAgICB7CisgICAgICAgIFZlYzMgcmV0OworICAgICAgICByZXQueF8gPSB4XyAvIHJoczsKKyAgICAgICAgcmV0LnlfID0geV8gLyByaHM7CisgICAgICAgIHJldC56XyA9IHpfIC8gcmhzOworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIFZlYzMmIG9wZXJhdG9yLz0oIGNvbnN0IGZsb2F0JiByaHMgKQorICAgIHsKKyAgICAgICAgeF8gPSB4XyAvIHJoczsKKyAgICAgICAgeV8gPSB5XyAvIHJoczsKKyAgICAgICAgel8gPSB6XyAvIHJoczsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIC8vQ29tcGFyZQorICAgIGJvb2wgb3BlcmF0b3I9PSggY29uc3QgVmVjMyYgcmhzICkgY29uc3QKKyAgICB7CisgICAgICAgIGlmKCB4XyAhPSByaHMueF8gfHwgeV8gIT0gcmhzLnlfIHx8IHpfICE9IHJocy56XyApCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3IhPSggY29uc3QgVmVjMyYgcmhzICkgY29uc3QKKyAgICB7CisgICAgICAgIGlmKCB4XyA9PSByaHMueF8gKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGZsb2F0IExlbmd0aCgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gc3FydGYoIHhfICogeF8gKyB5XyAqIHlfICsgel8gKiB6XyApOworICAgIH0KKworICAgIFZlYzMgTm9ybWFsaXplKCkKKyAgICB7CisgICAgICAgIGZsb2F0IGxlbiA9IExlbmd0aCgpOworICAgICAgICB4XyA9IHhfIC8gbGVuOworICAgICAgICB5XyA9IHlfIC8gbGVuOworICAgICAgICB6XyA9IHpfIC8gbGVuOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgZmxvYXQgRG90KCBjb25zdCBWZWMzJiByaHMgKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHhfICogcmhzLnhfICsgeV8gKiByaHMueV8gKyB6XyAqIHJocy56XzsKKyAgICB9CisKKyAgICBWZWMzIENyb3NzKCBjb25zdCBWZWMzJiByaHMgKQorICAgIHsKKyAgICAgICAgVmVjMyByZXQ7CisgICAgICAgIHJldC54XyA9IHlfICogcmhzLnpfIC0gel8gKiByaHMueV87CisgICAgICAgIHJldC55XyA9IHpfICogcmhzLnhfIC0geF8gKiByaHMuel87CisgICAgICAgIHJldC56XyA9IHhfICogcmhzLnlfIC0geV8gKiByaHMueF87CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgYm9vbCBWYWxpZGF0ZSgpCisgICAgeworICAgICAgICBpZiggaXNuYW4oIHhfICkgfHwgaXNuYW4oIHlfICkgfHwgaXNuYW4oIHpfICkgKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICB2b2lkIFZhbHVlKCBmbG9hdCYgZlgsIGZsb2F0JiBmWSwgZmxvYXQmIGZaICkKKyAgICB7CisgICAgICAgIGZYID0geF87CisgICAgICAgIGZZID0geV87CisgICAgICAgIGZaID0gel87CisgICAgfQorCisgICAgdm9pZCBEdW1wKCkKKyAgICB7CisgICAgICAgIExPR0koICJWZWMzICVmICVmICVmIiwgeF8sIHlfLCB6XyApOworICAgIH0KK307CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIDQgZWxlbWVudHMgdmVjdG9yIGNsYXNzCisgKgorICovCitjbGFzcyBWZWM0Cit7Citwcml2YXRlOgorICAgIGZsb2F0IHhfLCB5Xywgel8sIHdfOworCitwdWJsaWM6CisgICAgZnJpZW5kIGNsYXNzIFZlYzM7CisgICAgZnJpZW5kIGNsYXNzIE1hdDQ7CisgICAgZnJpZW5kIGNsYXNzIFF1YXRlcm5pb247CisKKyAgICBWZWM0KCkKKyAgICB7CisgICAgICAgIHhfID0geV8gPSB6XyA9IHdfID0gMC5mOworICAgIH0KKworICAgIFZlYzQoIGNvbnN0IGZsb2F0IGZYLCBjb25zdCBmbG9hdCBmWSwgY29uc3QgZmxvYXQgZlosIGNvbnN0IGZsb2F0IGZXICkKKyAgICB7CisgICAgICAgIHhfID0gZlg7CisgICAgICAgIHlfID0gZlk7CisgICAgICAgIHpfID0gZlo7CisgICAgICAgIHdfID0gZlc7CisgICAgfQorCisgICAgVmVjNCggY29uc3QgVmVjNCYgdmVjICkKKyAgICB7CisgICAgICAgIHhfID0gdmVjLnhfOworICAgICAgICB5XyA9IHZlYy55XzsKKyAgICAgICAgel8gPSB2ZWMuel87CisgICAgICAgIHdfID0gdmVjLndfOworICAgIH0KKworICAgIFZlYzQoIGNvbnN0IFZlYzMmIHZlYywgY29uc3QgZmxvYXQgZlcgKQorICAgIHsKKyAgICAgICAgeF8gPSB2ZWMueF87CisgICAgICAgIHlfID0gdmVjLnlfOworICAgICAgICB6XyA9IHZlYy56XzsKKyAgICAgICAgd18gPSBmVzsKKyAgICB9CisKKyAgICBWZWM0KCBjb25zdCBmbG9hdCogcFZlYyApCisgICAgeworICAgICAgICB4XyA9ICgqcFZlYysrKTsKKyAgICAgICAgeV8gPSAoKnBWZWMrKyk7CisgICAgICAgIHpfID0gKnBWZWM7CisgICAgICAgIHdfID0gKnBWZWM7CisgICAgfQorCisgICAgLy9PcGVyYXRvcnMKKyAgICBWZWM0IG9wZXJhdG9yKiggY29uc3QgVmVjNCYgcmhzICkgY29uc3QKKyAgICB7CisgICAgICAgIFZlYzQgcmV0OworICAgICAgICByZXQueF8gPSB4XyAqIHJocy54XzsKKyAgICAgICAgcmV0LnlfID0geV8gKiByaHMueV87CisgICAgICAgIHJldC56XyA9IHpfICogcmhzLnpfOworICAgICAgICByZXQud18gPSB6XyAqIHJocy53XzsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBWZWM0IG9wZXJhdG9yLyggY29uc3QgVmVjNCYgcmhzICkgY29uc3QKKyAgICB7CisgICAgICAgIFZlYzQgcmV0OworICAgICAgICByZXQueF8gPSB4XyAvIHJocy54XzsKKyAgICAgICAgcmV0LnlfID0geV8gLyByaHMueV87CisgICAgICAgIHJldC56XyA9IHpfIC8gcmhzLnpfOworICAgICAgICByZXQud18gPSB6XyAvIHJocy53XzsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBWZWM0IG9wZXJhdG9yKyggY29uc3QgVmVjNCYgcmhzICkgY29uc3QKKyAgICB7CisgICAgICAgIFZlYzQgcmV0OworICAgICAgICByZXQueF8gPSB4XyArIHJocy54XzsKKyAgICAgICAgcmV0LnlfID0geV8gKyByaHMueV87CisgICAgICAgIHJldC56XyA9IHpfICsgcmhzLnpfOworICAgICAgICByZXQud18gPSB6XyArIHJocy53XzsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBWZWM0IG9wZXJhdG9yLSggY29uc3QgVmVjNCYgcmhzICkgY29uc3QKKyAgICB7CisgICAgICAgIFZlYzQgcmV0OworICAgICAgICByZXQueF8gPSB4XyAtIHJocy54XzsKKyAgICAgICAgcmV0LnlfID0geV8gLSByaHMueV87CisgICAgICAgIHJldC56XyA9IHpfIC0gcmhzLnpfOworICAgICAgICByZXQud18gPSB6XyAtIHJocy53XzsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBWZWM0JiBvcGVyYXRvcis9KCBjb25zdCBWZWM0JiByaHMgKQorICAgIHsKKyAgICAgICAgeF8gKz0gcmhzLnhfOworICAgICAgICB5XyArPSByaHMueV87CisgICAgICAgIHpfICs9IHJocy56XzsKKyAgICAgICAgd18gKz0gcmhzLndfOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgVmVjNCYgb3BlcmF0b3ItPSggY29uc3QgVmVjNCYgcmhzICkKKyAgICB7CisgICAgICAgIHhfIC09IHJocy54XzsKKyAgICAgICAgeV8gLT0gcmhzLnlfOworICAgICAgICB6XyAtPSByaHMuel87CisgICAgICAgIHdfIC09IHJocy53XzsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIFZlYzQmIG9wZXJhdG9yKj0oIGNvbnN0IFZlYzQmIHJocyApCisgICAgeworICAgICAgICB4XyAqPSByaHMueF87CisgICAgICAgIHlfICo9IHJocy55XzsKKyAgICAgICAgel8gKj0gcmhzLnpfOworICAgICAgICB3XyAqPSByaHMud187CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBWZWM0JiBvcGVyYXRvci89KCBjb25zdCBWZWM0JiByaHMgKQorICAgIHsKKyAgICAgICAgeF8gLz0gcmhzLnhfOworICAgICAgICB5XyAvPSByaHMueV87CisgICAgICAgIHpfIC89IHJocy56XzsKKyAgICAgICAgd18gLz0gcmhzLndfOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgLy9FeHRlcm5hbCBvcGVyYXRvcnMKKyAgICBmcmllbmQgVmVjNCBvcGVyYXRvci0oIGNvbnN0IFZlYzQmIHJocyApCisgICAgeworICAgICAgICByZXR1cm4gVmVjNCggcmhzICkgKj0gLTE7CisgICAgfQorCisgICAgZnJpZW5kIFZlYzQgb3BlcmF0b3IqKCBjb25zdCBmbG9hdCBsaHMsIGNvbnN0IFZlYzQmIHJocyApCisgICAgeworICAgICAgICBWZWM0IHJldDsKKyAgICAgICAgcmV0LnhfID0gbGhzICogcmhzLnhfOworICAgICAgICByZXQueV8gPSBsaHMgKiByaHMueV87CisgICAgICAgIHJldC56XyA9IGxocyAqIHJocy56XzsKKyAgICAgICAgcmV0LndfID0gbGhzICogcmhzLndfOworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIGZyaWVuZCBWZWM0IG9wZXJhdG9yLyggY29uc3QgZmxvYXQgbGhzLCBjb25zdCBWZWM0JiByaHMgKQorICAgIHsKKyAgICAgICAgVmVjNCByZXQ7CisgICAgICAgIHJldC54XyA9IGxocyAvIHJocy54XzsKKyAgICAgICAgcmV0LnlfID0gbGhzIC8gcmhzLnlfOworICAgICAgICByZXQuel8gPSBsaHMgLyByaHMuel87CisgICAgICAgIHJldC53XyA9IGxocyAvIHJocy53XzsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICAvL09wZXJhdG9ycyB3aXRoIGZsb2F0CisgICAgVmVjNCBvcGVyYXRvciooIGNvbnN0IGZsb2F0JiByaHMgKSBjb25zdAorICAgIHsKKyAgICAgICAgVmVjNCByZXQ7CisgICAgICAgIHJldC54XyA9IHhfICogcmhzOworICAgICAgICByZXQueV8gPSB5XyAqIHJoczsKKyAgICAgICAgcmV0LnpfID0gel8gKiByaHM7CisgICAgICAgIHJldC53XyA9IHdfICogcmhzOworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIFZlYzQmIG9wZXJhdG9yKj0oIGNvbnN0IGZsb2F0JiByaHMgKQorICAgIHsKKyAgICAgICAgeF8gPSB4XyAqIHJoczsKKyAgICAgICAgeV8gPSB5XyAqIHJoczsKKyAgICAgICAgel8gPSB6XyAqIHJoczsKKyAgICAgICAgd18gPSB3XyAqIHJoczsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIFZlYzQgb3BlcmF0b3IvKCBjb25zdCBmbG9hdCYgcmhzICkgY29uc3QKKyAgICB7CisgICAgICAgIFZlYzQgcmV0OworICAgICAgICByZXQueF8gPSB4XyAvIHJoczsKKyAgICAgICAgcmV0LnlfID0geV8gLyByaHM7CisgICAgICAgIHJldC56XyA9IHpfIC8gcmhzOworICAgICAgICByZXQud18gPSB3XyAvIHJoczsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBWZWM0JiBvcGVyYXRvci89KCBjb25zdCBmbG9hdCYgcmhzICkKKyAgICB7CisgICAgICAgIHhfID0geF8gLyByaHM7CisgICAgICAgIHlfID0geV8gLyByaHM7CisgICAgICAgIHpfID0gel8gLyByaHM7CisgICAgICAgIHdfID0gd18gLyByaHM7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICAvL0NvbXBhcmUKKyAgICBib29sIG9wZXJhdG9yPT0oIGNvbnN0IFZlYzQmIHJocyApIGNvbnN0CisgICAgeworICAgICAgICBpZiggeF8gIT0gcmhzLnhfIHx8IHlfICE9IHJocy55XyB8fCB6XyAhPSByaHMuel8gfHwgd18gIT0gcmhzLndfICkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvciE9KCBjb25zdCBWZWM0JiByaHMgKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYoIHhfID09IHJocy54XyApCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgVmVjNCBvcGVyYXRvciooIGNvbnN0IE1hdDQmIHJocyApIGNvbnN0OworCisgICAgZmxvYXQgTGVuZ3RoKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBzcXJ0ZiggeF8gKiB4XyArIHlfICogeV8gKyB6XyAqIHpfICsgd18gKiB3XyApOworICAgIH0KKworICAgIFZlYzQgTm9ybWFsaXplKCkKKyAgICB7CisgICAgICAgIGZsb2F0IGxlbiA9IExlbmd0aCgpOworICAgICAgICB4XyA9IHhfIC8gbGVuOworICAgICAgICB5XyA9IHlfIC8gbGVuOworICAgICAgICB6XyA9IHpfIC8gbGVuOworICAgICAgICB3XyA9IHdfIC8gbGVuOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgZmxvYXQgRG90KCBjb25zdCBWZWMzJiByaHMgKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHhfICogcmhzLnhfICsgeV8gKiByaHMueV8gKyB6XyAqIHJocy56XzsKKyAgICB9CisKKyAgICBWZWMzIENyb3NzKCBjb25zdCBWZWMzJiByaHMgKQorICAgIHsKKyAgICAgICAgVmVjMyByZXQ7CisgICAgICAgIHJldC54XyA9IHlfICogcmhzLnpfIC0gel8gKiByaHMueV87CisgICAgICAgIHJldC55XyA9IHpfICogcmhzLnhfIC0geF8gKiByaHMuel87CisgICAgICAgIHJldC56XyA9IHhfICogcmhzLnlfIC0geV8gKiByaHMueF87CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgYm9vbCBWYWxpZGF0ZSgpCisgICAgeworICAgICAgICBpZiggaXNuYW4oIHhfICkgfHwgaXNuYW4oIHlfICkgfHwgaXNuYW4oIHpfICkgfHwgaXNuYW4oIHdfICkgKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICB2b2lkIFZhbHVlKCBmbG9hdCYgZlgsIGZsb2F0JiBmWSwgZmxvYXQmIGZaLCBmbG9hdCYgZlcgKQorICAgIHsKKyAgICAgICAgZlggPSB4XzsKKyAgICAgICAgZlkgPSB5XzsKKyAgICAgICAgZlogPSB6XzsKKyAgICAgICAgZlcgPSB3XzsKKyAgICB9Cit9OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiA0eDQgbWF0cml4CisgKgorICovCitjbGFzcyBNYXQ0Cit7Citwcml2YXRlOgorICAgIGZsb2F0IGZfWzE2XTsKKworcHVibGljOgorICAgIGZyaWVuZCBjbGFzcyBWZWMzOworICAgIGZyaWVuZCBjbGFzcyBWZWM0OworICAgIGZyaWVuZCBjbGFzcyBRdWF0ZXJuaW9uOworCisgICAgTWF0NCgpOworICAgIE1hdDQoIGNvbnN0IGZsb2F0KiApOworCisgICAgTWF0NCBvcGVyYXRvciooIGNvbnN0IE1hdDQmIHJocyApIGNvbnN0OworICAgIFZlYzQgb3BlcmF0b3IqKCBjb25zdCBWZWM0JiByaHMgKSBjb25zdDsKKworICAgIE1hdDQgb3BlcmF0b3IrKCBjb25zdCBNYXQ0JiByaHMgKSBjb25zdAorICAgIHsKKyAgICAgICAgTWF0NCByZXQ7CisgICAgICAgIGZvciggaW50MzJfdCBpID0gMDsgaSA8IDE2OyArK2kgKQorICAgICAgICB7CisgICAgICAgICAgICByZXQuZl9baV0gPSBmX1tpXSArIHJocy5mX1tpXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIE1hdDQgb3BlcmF0b3ItKCBjb25zdCBNYXQ0JiByaHMgKSBjb25zdAorICAgIHsKKyAgICAgICAgTWF0NCByZXQ7CisgICAgICAgIGZvciggaW50MzJfdCBpID0gMDsgaSA8IDE2OyArK2kgKQorICAgICAgICB7CisgICAgICAgICAgICByZXQuZl9baV0gPSBmX1tpXSAtIHJocy5mX1tpXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIE1hdDQmIG9wZXJhdG9yKz0oIGNvbnN0IE1hdDQmIHJocyApCisgICAgeworICAgICAgICBmb3IoIGludDMyX3QgaSA9IDA7IGkgPCAxNjsgKytpICkKKyAgICAgICAgeworICAgICAgICAgICAgZl9baV0gKz0gcmhzLmZfW2ldOworICAgICAgICB9CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBNYXQ0JiBvcGVyYXRvci09KCBjb25zdCBNYXQ0JiByaHMgKQorICAgIHsKKyAgICAgICAgZm9yKCBpbnQzMl90IGkgPSAwOyBpIDwgMTY7ICsraSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGZfW2ldIC09IHJocy5mX1tpXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgTWF0NCYgb3BlcmF0b3IqPSggY29uc3QgTWF0NCYgcmhzICkKKyAgICB7CisgICAgICAgIE1hdDQgcmV0OworICAgICAgICByZXQuZl9bMF0gPSBmX1swXSAqIHJocy5mX1swXSArIGZfWzRdICogcmhzLmZfWzFdICsgZl9bOF0gKiByaHMuZl9bMl0KKyAgICAgICAgICAgICAgICArIGZfWzEyXSAqIHJocy5mX1szXTsKKyAgICAgICAgcmV0LmZfWzFdID0gZl9bMV0gKiByaHMuZl9bMF0gKyBmX1s1XSAqIHJocy5mX1sxXSArIGZfWzldICogcmhzLmZfWzJdCisgICAgICAgICAgICAgICAgKyBmX1sxM10gKiByaHMuZl9bM107CisgICAgICAgIHJldC5mX1syXSA9IGZfWzJdICogcmhzLmZfWzBdICsgZl9bNl0gKiByaHMuZl9bMV0gKyBmX1sxMF0gKiByaHMuZl9bMl0KKyAgICAgICAgICAgICAgICArIGZfWzE0XSAqIHJocy5mX1szXTsKKyAgICAgICAgcmV0LmZfWzNdID0gZl9bM10gKiByaHMuZl9bMF0gKyBmX1s3XSAqIHJocy5mX1sxXSArIGZfWzExXSAqIHJocy5mX1syXQorICAgICAgICAgICAgICAgICsgZl9bMTVdICogcmhzLmZfWzNdOworCisgICAgICAgIHJldC5mX1s0XSA9IGZfWzBdICogcmhzLmZfWzRdICsgZl9bNF0gKiByaHMuZl9bNV0gKyBmX1s4XSAqIHJocy5mX1s2XQorICAgICAgICAgICAgICAgICsgZl9bMTJdICogcmhzLmZfWzddOworICAgICAgICByZXQuZl9bNV0gPSBmX1sxXSAqIHJocy5mX1s0XSArIGZfWzVdICogcmhzLmZfWzVdICsgZl9bOV0gKiByaHMuZl9bNl0KKyAgICAgICAgICAgICAgICArIGZfWzEzXSAqIHJocy5mX1s3XTsKKyAgICAgICAgcmV0LmZfWzZdID0gZl9bMl0gKiByaHMuZl9bNF0gKyBmX1s2XSAqIHJocy5mX1s1XSArIGZfWzEwXSAqIHJocy5mX1s2XQorICAgICAgICAgICAgICAgICsgZl9bMTRdICogcmhzLmZfWzddOworICAgICAgICByZXQuZl9bN10gPSBmX1szXSAqIHJocy5mX1s0XSArIGZfWzddICogcmhzLmZfWzVdICsgZl9bMTFdICogcmhzLmZfWzZdCisgICAgICAgICAgICAgICAgKyBmX1sxNV0gKiByaHMuZl9bN107CisKKyAgICAgICAgcmV0LmZfWzhdID0gZl9bMF0gKiByaHMuZl9bOF0gKyBmX1s0XSAqIHJocy5mX1s5XSArIGZfWzhdICogcmhzLmZfWzEwXQorICAgICAgICAgICAgICAgICsgZl9bMTJdICogcmhzLmZfWzExXTsKKyAgICAgICAgcmV0LmZfWzldID0gZl9bMV0gKiByaHMuZl9bOF0gKyBmX1s1XSAqIHJocy5mX1s5XSArIGZfWzldICogcmhzLmZfWzEwXQorICAgICAgICAgICAgICAgICsgZl9bMTNdICogcmhzLmZfWzExXTsKKyAgICAgICAgcmV0LmZfWzEwXSA9IGZfWzJdICogcmhzLmZfWzhdICsgZl9bNl0gKiByaHMuZl9bOV0gKyBmX1sxMF0gKiByaHMuZl9bMTBdCisgICAgICAgICAgICAgICAgKyBmX1sxNF0gKiByaHMuZl9bMTFdOworICAgICAgICByZXQuZl9bMTFdID0gZl9bM10gKiByaHMuZl9bOF0gKyBmX1s3XSAqIHJocy5mX1s5XSArIGZfWzExXSAqIHJocy5mX1sxMF0KKyAgICAgICAgICAgICAgICArIGZfWzE1XSAqIHJocy5mX1sxMV07CisKKyAgICAgICAgcmV0LmZfWzEyXSA9IGZfWzBdICogcmhzLmZfWzEyXSArIGZfWzRdICogcmhzLmZfWzEzXSArIGZfWzhdICogcmhzLmZfWzE0XQorICAgICAgICAgICAgICAgICsgZl9bMTJdICogcmhzLmZfWzE1XTsKKyAgICAgICAgcmV0LmZfWzEzXSA9IGZfWzFdICogcmhzLmZfWzEyXSArIGZfWzVdICogcmhzLmZfWzEzXSArIGZfWzldICogcmhzLmZfWzE0XQorICAgICAgICAgICAgICAgICsgZl9bMTNdICogcmhzLmZfWzE1XTsKKyAgICAgICAgcmV0LmZfWzE0XSA9IGZfWzJdICogcmhzLmZfWzEyXSArIGZfWzZdICogcmhzLmZfWzEzXSArIGZfWzEwXSAqIHJocy5mX1sxNF0KKyAgICAgICAgICAgICAgICArIGZfWzE0XSAqIHJocy5mX1sxNV07CisgICAgICAgIHJldC5mX1sxNV0gPSBmX1szXSAqIHJocy5mX1sxMl0gKyBmX1s3XSAqIHJocy5mX1sxM10gKyBmX1sxMV0gKiByaHMuZl9bMTRdCisgICAgICAgICAgICAgICAgKyBmX1sxNV0gKiByaHMuZl9bMTVdOworCisgICAgICAgICp0aGlzID0gcmV0OworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgTWF0NCBvcGVyYXRvciooIGNvbnN0IGZsb2F0IHJocyApCisgICAgeworICAgICAgICBNYXQ0IHJldDsKKyAgICAgICAgZm9yKCBpbnQzMl90IGkgPSAwOyBpIDwgMTY7ICsraSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldC5mX1tpXSA9IGZfW2ldICogcmhzOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgTWF0NCYgb3BlcmF0b3IqPSggY29uc3QgZmxvYXQgcmhzICkKKyAgICB7CisgICAgICAgIGZvciggaW50MzJfdCBpID0gMDsgaSA8IDE2OyArK2kgKQorICAgICAgICB7CisgICAgICAgICAgICBmX1tpXSAqPSByaHM7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIE1hdDQmIG9wZXJhdG9yPSggY29uc3QgTWF0NCYgcmhzICkKKyAgICB7CisgICAgICAgIGZvciggaW50MzJfdCBpID0gMDsgaSA8IDE2OyArK2kgKQorICAgICAgICB7CisgICAgICAgICAgICBmX1tpXSA9IHJocy5mX1tpXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgTWF0NCBJbnZlcnNlKCk7CisKKyAgICBNYXQ0IFRyYW5zcG9zZSgpCisgICAgeworICAgICAgICBNYXQ0IHJldDsKKyAgICAgICAgcmV0LmZfWzBdID0gZl9bMF07CisgICAgICAgIHJldC5mX1sxXSA9IGZfWzRdOworICAgICAgICByZXQuZl9bMl0gPSBmX1s4XTsKKyAgICAgICAgcmV0LmZfWzNdID0gZl9bMTJdOworICAgICAgICByZXQuZl9bNF0gPSBmX1sxXTsKKyAgICAgICAgcmV0LmZfWzVdID0gZl9bNV07CisgICAgICAgIHJldC5mX1s2XSA9IGZfWzldOworICAgICAgICByZXQuZl9bN10gPSBmX1sxM107CisgICAgICAgIHJldC5mX1s4XSA9IGZfWzJdOworICAgICAgICByZXQuZl9bOV0gPSBmX1s2XTsKKyAgICAgICAgcmV0LmZfWzEwXSA9IGZfWzEwXTsKKyAgICAgICAgcmV0LmZfWzExXSA9IGZfWzE0XTsKKyAgICAgICAgcmV0LmZfWzEyXSA9IGZfWzNdOworICAgICAgICByZXQuZl9bMTNdID0gZl9bN107CisgICAgICAgIHJldC5mX1sxNF0gPSBmX1sxMV07CisgICAgICAgIHJldC5mX1sxNV0gPSBmX1sxNV07CisgICAgICAgICp0aGlzID0gcmV0OworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgTWF0NCYgUG9zdFRyYW5zbGF0ZSggZmxvYXQgdHgsIGZsb2F0IHR5LCBmbG9hdCB0eiApCisgICAgeworICAgICAgICBmX1sxMl0gKz0gKHR4ICogZl9bMF0pICsgKHR5ICogZl9bNF0pICsgKHR6ICogZl9bOF0pOworICAgICAgICBmX1sxM10gKz0gKHR4ICogZl9bMV0pICsgKHR5ICogZl9bNV0pICsgKHR6ICogZl9bOV0pOworICAgICAgICBmX1sxNF0gKz0gKHR4ICogZl9bMl0pICsgKHR5ICogZl9bNl0pICsgKHR6ICogZl9bMTBdKTsKKyAgICAgICAgZl9bMTVdICs9ICh0eCAqIGZfWzNdKSArICh0eSAqIGZfWzddKSArICh0eiAqIGZfWzExXSk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBmbG9hdCogUHRyKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmXzsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gTWlzYworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICBzdGF0aWMgTWF0NCBQZXJzcGVjdGl2ZSggZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCwgZmxvYXQgbmVhclBsYW5lLCBmbG9hdCBmYXJQbGFuZSApOworCisgICAgc3RhdGljIE1hdDQgTG9va0F0KCBjb25zdCBWZWMzJiB2RXllLCBjb25zdCBWZWMzJiB2QXQsIGNvbnN0IFZlYzMmIHZVcCApOworCisgICAgc3RhdGljIE1hdDQgVHJhbnNsYXRpb24oIGNvbnN0IGZsb2F0IGZYLCBjb25zdCBmbG9hdCBmWSwgY29uc3QgZmxvYXQgZlogKTsKKyAgICBzdGF0aWMgTWF0NCBUcmFuc2xhdGlvbiggY29uc3QgVmVjMyB2ZWMgKTsKKworICAgIHN0YXRpYyBNYXQ0IFJvdGF0aW9uWCggY29uc3QgZmxvYXQgYW5nbGUgKTsKKworICAgIHN0YXRpYyBNYXQ0IFJvdGF0aW9uWSggY29uc3QgZmxvYXQgYW5nbGUgKTsKKworICAgIHN0YXRpYyBNYXQ0IFJvdGF0aW9uWiggY29uc3QgZmxvYXQgYW5nbGUgKTsKKworICAgIHN0YXRpYyBNYXQ0IElkZW50aXR5KCkKKyAgICB7CisgICAgICAgIE1hdDQgcmV0OworICAgICAgICByZXQuZl9bMF0gPSAxLmY7CisgICAgICAgIHJldC5mX1sxXSA9IDA7CisgICAgICAgIHJldC5mX1syXSA9IDA7CisgICAgICAgIHJldC5mX1szXSA9IDA7CisgICAgICAgIHJldC5mX1s0XSA9IDA7CisgICAgICAgIHJldC5mX1s1XSA9IDEuZjsKKyAgICAgICAgcmV0LmZfWzZdID0gMDsKKyAgICAgICAgcmV0LmZfWzddID0gMDsKKyAgICAgICAgcmV0LmZfWzhdID0gMDsKKyAgICAgICAgcmV0LmZfWzldID0gMDsKKyAgICAgICAgcmV0LmZfWzEwXSA9IDEuZjsKKyAgICAgICAgcmV0LmZfWzExXSA9IDA7CisgICAgICAgIHJldC5mX1sxMl0gPSAwOworICAgICAgICByZXQuZl9bMTNdID0gMDsKKyAgICAgICAgcmV0LmZfWzE0XSA9IDA7CisgICAgICAgIHJldC5mX1sxNV0gPSAxLmY7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgdm9pZCBEdW1wKCkKKyAgICB7CisgICAgICAgIExPR0koICIlZiAlZiAlZiAlZiIsIGZfWzBdLCBmX1sxXSwgZl9bMl0sIGZfWzNdICk7CisgICAgICAgIExPR0koICIlZiAlZiAlZiAlZiIsIGZfWzRdLCBmX1s1XSwgZl9bNl0sIGZfWzddICk7CisgICAgICAgIExPR0koICIlZiAlZiAlZiAlZiIsIGZfWzhdLCBmX1s5XSwgZl9bMTBdLCBmX1sxMV0gKTsKKyAgICAgICAgTE9HSSggIiVmICVmICVmICVmIiwgZl9bMTJdLCBmX1sxM10sIGZfWzE0XSwgZl9bMTVdICk7CisgICAgfQorfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogUXVhdGVybmlvbiBjbGFzcworICoKKyAqLworY2xhc3MgUXVhdGVybmlvbgoreworcHJpdmF0ZToKKyAgICBmbG9hdCB4XywgeV8sIHpfLCB3XzsKKworcHVibGljOgorICAgIGZyaWVuZCBjbGFzcyBWZWMzOworICAgIGZyaWVuZCBjbGFzcyBWZWM0OworICAgIGZyaWVuZCBjbGFzcyBNYXQ0OworCisgICAgUXVhdGVybmlvbigpCisgICAgeworICAgICAgICB4XyA9IDAuZjsKKyAgICAgICAgeV8gPSAwLmY7CisgICAgICAgIHpfID0gMC5mOworICAgICAgICB3XyA9IDEuZjsKKyAgICB9CisKKyAgICBRdWF0ZXJuaW9uKCBjb25zdCBmbG9hdCBmWCwgY29uc3QgZmxvYXQgZlksIGNvbnN0IGZsb2F0IGZaLCBjb25zdCBmbG9hdCBmVyApCisgICAgeworICAgICAgICB4XyA9IGZYOworICAgICAgICB5XyA9IGZZOworICAgICAgICB6XyA9IGZaOworICAgICAgICB3XyA9IGZXOworICAgIH0KKworICAgIFF1YXRlcm5pb24oIGNvbnN0IFZlYzMgdmVjLCBjb25zdCBmbG9hdCBmVyApCisgICAgeworICAgICAgICB4XyA9IHZlYy54XzsKKyAgICAgICAgeV8gPSB2ZWMueV87CisgICAgICAgIHpfID0gdmVjLnpfOworICAgICAgICB3XyA9IGZXOworICAgIH0KKworICAgIFF1YXRlcm5pb24oIGNvbnN0IGZsb2F0KiBwICkKKyAgICB7CisgICAgICAgIHhfID0gKnArKzsKKyAgICAgICAgeV8gPSAqcCsrOworICAgICAgICB6XyA9ICpwKys7CisgICAgICAgIHdfID0gKnArKzsKKyAgICB9CisKKyAgICBRdWF0ZXJuaW9uIG9wZXJhdG9yKiggY29uc3QgUXVhdGVybmlvbiByaHMgKQorICAgIHsKKyAgICAgICAgUXVhdGVybmlvbiByZXQ7CisgICAgICAgIHJldC54XyA9IHhfICogcmhzLndfICsgeV8gKiByaHMuel8gLSB6XyAqIHJocy55XyArIHdfICogcmhzLnhfOworICAgICAgICByZXQueV8gPSAteF8gKiByaHMuel8gKyB5XyAqIHJocy53XyArIHpfICogcmhzLnhfICsgd18gKiByaHMueV87CisgICAgICAgIHJldC56XyA9IHhfICogcmhzLnlfIC0geV8gKiByaHMueF8gKyB6XyAqIHJocy53XyArIHdfICogcmhzLnpfOworICAgICAgICByZXQud18gPSAteF8gKiByaHMueF8gLSB5XyAqIHJocy55XyAtIHpfICogcmhzLnpfICsgd18gKiByaHMud187CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgUXVhdGVybmlvbiYgb3BlcmF0b3IqPSggY29uc3QgUXVhdGVybmlvbiByaHMgKQorICAgIHsKKyAgICAgICAgUXVhdGVybmlvbiByZXQ7CisgICAgICAgIHJldC54XyA9IHhfICogcmhzLndfICsgeV8gKiByaHMuel8gLSB6XyAqIHJocy55XyArIHdfICogcmhzLnhfOworICAgICAgICByZXQueV8gPSAteF8gKiByaHMuel8gKyB5XyAqIHJocy53XyArIHpfICogcmhzLnhfICsgd18gKiByaHMueV87CisgICAgICAgIHJldC56XyA9IHhfICogcmhzLnlfIC0geV8gKiByaHMueF8gKyB6XyAqIHJocy53XyArIHdfICogcmhzLnpfOworICAgICAgICByZXQud18gPSAteF8gKiByaHMueF8gLSB5XyAqIHJocy55XyAtIHpfICogcmhzLnpfICsgd18gKiByaHMud187CisgICAgICAgICp0aGlzID0gcmV0OworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgUXVhdGVybmlvbiBDb25qdWdhdGUoKQorICAgIHsKKyAgICAgICAgeF8gPSAteF87CisgICAgICAgIHlfID0gLXlfOworICAgICAgICB6XyA9IC16XzsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIC8vTm9uIGRlc3R1Y3RpdmUgdmVyc2lvbgorICAgIFF1YXRlcm5pb24gQ29uanVnYXRlZCgpCisgICAgeworICAgICAgICBRdWF0ZXJuaW9uIHJldDsKKyAgICAgICAgcmV0LnhfID0gLXhfOworICAgICAgICByZXQueV8gPSAteV87CisgICAgICAgIHJldC56XyA9IC16XzsKKyAgICAgICAgcmV0LndfID0gd187CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgdm9pZCBUb01hdHJpeCggTWF0NCYgbWF0ICkKKyAgICB7CisgICAgICAgIGZsb2F0IHgyID0geF8gKiB4XyAqIDIuMGY7CisgICAgICAgIGZsb2F0IHkyID0geV8gKiB5XyAqIDIuMGY7CisgICAgICAgIGZsb2F0IHoyID0gel8gKiB6XyAqIDIuMGY7CisgICAgICAgIGZsb2F0IHh5ID0geF8gKiB5XyAqIDIuMGY7CisgICAgICAgIGZsb2F0IHl6ID0geV8gKiB6XyAqIDIuMGY7CisgICAgICAgIGZsb2F0IHp4ID0gel8gKiB4XyAqIDIuMGY7CisgICAgICAgIGZsb2F0IHh3ID0geF8gKiB3XyAqIDIuMGY7CisgICAgICAgIGZsb2F0IHl3ID0geV8gKiB3XyAqIDIuMGY7CisgICAgICAgIGZsb2F0IHp3ID0gel8gKiB3XyAqIDIuMGY7CisKKyAgICAgICAgbWF0LmZfWzBdID0gMS4wZiAtIHkyIC0gejI7CisgICAgICAgIG1hdC5mX1sxXSA9IHh5ICsgenc7CisgICAgICAgIG1hdC5mX1syXSA9IHp4IC0geXc7CisgICAgICAgIG1hdC5mX1s0XSA9IHh5IC0genc7CisgICAgICAgIG1hdC5mX1s1XSA9IDEuMGYgLSB6MiAtIHgyOworICAgICAgICBtYXQuZl9bNl0gPSB5eiArIHh3OworICAgICAgICBtYXQuZl9bOF0gPSB6eCArIHl3OworICAgICAgICBtYXQuZl9bOV0gPSB5eiAtIHh3OworICAgICAgICBtYXQuZl9bMTBdID0gMS4wZiAtIHgyIC0geTI7CisKKyAgICAgICAgbWF0LmZfWzNdID0gbWF0LmZfWzddID0gbWF0LmZfWzExXSA9IG1hdC5mX1sxMl0gPSBtYXQuZl9bMTNdID0gbWF0LmZfWzE0XSA9IDAuMGY7CisgICAgICAgIG1hdC5mX1sxNV0gPSAxLjBmOworICAgIH0KKworICAgIHZvaWQgVG9NYXRyaXhQcmVzZXJ2ZVRyYW5zbGF0ZSggTWF0NCYgbWF0ICkKKyAgICB7CisgICAgICAgIGZsb2F0IHgyID0geF8gKiB4XyAqIDIuMGY7CisgICAgICAgIGZsb2F0IHkyID0geV8gKiB5XyAqIDIuMGY7CisgICAgICAgIGZsb2F0IHoyID0gel8gKiB6XyAqIDIuMGY7CisgICAgICAgIGZsb2F0IHh5ID0geF8gKiB5XyAqIDIuMGY7CisgICAgICAgIGZsb2F0IHl6ID0geV8gKiB6XyAqIDIuMGY7CisgICAgICAgIGZsb2F0IHp4ID0gel8gKiB4XyAqIDIuMGY7CisgICAgICAgIGZsb2F0IHh3ID0geF8gKiB3XyAqIDIuMGY7CisgICAgICAgIGZsb2F0IHl3ID0geV8gKiB3XyAqIDIuMGY7CisgICAgICAgIGZsb2F0IHp3ID0gel8gKiB3XyAqIDIuMGY7CisKKyAgICAgICAgbWF0LmZfWzBdID0gMS4wZiAtIHkyIC0gejI7CisgICAgICAgIG1hdC5mX1sxXSA9IHh5ICsgenc7CisgICAgICAgIG1hdC5mX1syXSA9IHp4IC0geXc7CisgICAgICAgIG1hdC5mX1s0XSA9IHh5IC0genc7CisgICAgICAgIG1hdC5mX1s1XSA9IDEuMGYgLSB6MiAtIHgyOworICAgICAgICBtYXQuZl9bNl0gPSB5eiArIHh3OworICAgICAgICBtYXQuZl9bOF0gPSB6eCArIHl3OworICAgICAgICBtYXQuZl9bOV0gPSB5eiAtIHh3OworICAgICAgICBtYXQuZl9bMTBdID0gMS4wZiAtIHgyIC0geTI7CisKKyAgICAgICAgbWF0LmZfWzNdID0gbWF0LmZfWzddID0gbWF0LmZfWzExXSA9IDAuMGY7CisgICAgICAgIG1hdC5mX1sxNV0gPSAxLjBmOworICAgIH0KKworICAgIHN0YXRpYyBRdWF0ZXJuaW9uIFJvdGF0aW9uQXhpcyggY29uc3QgVmVjMyBheGlzLCBjb25zdCBmbG9hdCBhbmdsZSApCisgICAgeworICAgICAgICBRdWF0ZXJuaW9uIHJldDsKKyAgICAgICAgZmxvYXQgcyA9IHNpbmYoIGFuZ2xlIC8gMiApOworICAgICAgICByZXQueF8gPSBzICogYXhpcy54XzsKKyAgICAgICAgcmV0LnlfID0gcyAqIGF4aXMueV87CisgICAgICAgIHJldC56XyA9IHMgKiBheGlzLnpfOworICAgICAgICByZXQud18gPSBjb3NmKCBhbmdsZSAvIDIgKTsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICB2b2lkIFZhbHVlKCBmbG9hdCYgZlgsIGZsb2F0JiBmWSwgZmxvYXQmIGZaLCBmbG9hdCYgZlcgKQorICAgIHsKKyAgICAgICAgZlggPSB4XzsKKyAgICAgICAgZlkgPSB5XzsKKyAgICAgICAgZlogPSB6XzsKKyAgICAgICAgZlcgPSB3XzsKKyAgICB9Cit9OworCit9IC8vbmFtZXNwYWNlIG5ka19oZWxwZXIKKyNlbmRpZiAvKiBWRUNNQVRIX0hfICovCmRpZmYgLS1naXQgYS9uZGsvdG9vbHMvaGVhZGVycy1kaWZmLWJpb25pYy12cy1uZGsucHkgYi9uZGsvdG9vbHMvaGVhZGVycy1kaWZmLWJpb25pYy12cy1uZGsucHkKaW5kZXggMWY4YTllMy4uY2I0MTU3ZCAxMDA3NTUKLS0tIGEvbmRrL3Rvb2xzL2hlYWRlcnMtZGlmZi1iaW9uaWMtdnMtbmRrLnB5CisrKyBiL25kay90b29scy9oZWFkZXJzLWRpZmYtYmlvbmljLXZzLW5kay5weQpAQCAtMTUyLDcgKzE1Miw4IEBACiAgICAgICAgICAgICAgICAgcGF0aF9iaW9uaWMgPSBvcy5wYXRoLmpvaW4oc2VsZi5iaW9uaWNfcm9vdCwgYXJjaF9yb290LCAnaW5jbHVkZScsIHJvb3QpCiAgICAgICAgICAgICAgICAgIyMgZm9yIGV2ZXJ5IGhlYWRlciB0aGF0IGJvdGggaW4gQmlvbmljIGFuZCBzeXNyb290ICMjCiAgICAgICAgICAgICAgICAgZm9yIGluY2x1ZGUgaW4gcGFja1sxXToKLSAgICAgICAgICAgICAgICAgICAgaWYgaW5jbHVkZSBpbiBzZWxmLnN5c2luY2x1ZGVzW2FyY2hdW3Jvb3RdOgorICAgICAgICAgICAgICAgICAgICBpZiAocm9vdCBpbiBzZWxmLnN5c2luY2x1ZGVzW2FyY2hdKSBhbmQgXAorICAgICAgICAgICAgICAgICAgICAoaW5jbHVkZSBpbiBzZWxmLnN5c2luY2x1ZGVzW2FyY2hdW3Jvb3RdKToKICAgICAgICAgICAgICAgICAgICAgICAgICMjIGNvbXBsZXRpbmcgcGF0aHMgIyMKICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXRmb3JtID0gc2VsZi5zeXNpbmNsdWRlc1thcmNoXVtyb290XVtpbmNsdWRlXVswXQogICAgICAgICAgICAgICAgICAgICAgICAgZmlsZV9vcmlnaW4gPSBvcy5wYXRoLmpvaW4ocGF0aF9iaW9uaWMsIGluY2x1ZGUpCmRpZmYgLS1naXQgYS9zYW1wbGVzL0FjY2VsZXJvbWV0ZXJQbGF5L3NyYy9jb20vZXhhbXBsZS9hbmRyb2lkL2FjY2VsZXJvbWV0ZXJwbGF5L0FjY2VsZXJvbWV0ZXJQbGF5QWN0aXZpdHkuamF2YSBiL3NhbXBsZXMvQWNjZWxlcm9tZXRlclBsYXkvc3JjL2NvbS9leGFtcGxlL2FuZHJvaWQvYWNjZWxlcm9tZXRlcnBsYXkvQWNjZWxlcm9tZXRlclBsYXlBY3Rpdml0eS5qYXZhCmluZGV4IGM5ZTg0MGYuLmY3MWNmOWYgMTAwNjQ0Ci0tLSBhL3NhbXBsZXMvQWNjZWxlcm9tZXRlclBsYXkvc3JjL2NvbS9leGFtcGxlL2FuZHJvaWQvYWNjZWxlcm9tZXRlcnBsYXkvQWNjZWxlcm9tZXRlclBsYXlBY3Rpdml0eS5qYXZhCisrKyBiL3NhbXBsZXMvQWNjZWxlcm9tZXRlclBsYXkvc3JjL2NvbS9leGFtcGxlL2FuZHJvaWQvYWNjZWxlcm9tZXRlcnBsYXkvQWNjZWxlcm9tZXRlclBsYXlBY3Rpdml0eS5qYXZhCkBAIC0xNjUsNyArMTY1LDcgQEAKICAgICAgICAgICAgICAgICBmaW5hbCBmbG9hdCBneSA9IC1zeSAqIG07CiAKICAgICAgICAgICAgICAgICAvKgotICAgICAgICAgICAgICAgICAqILdGID0gbUEgPD0+IEEgPSC3RiAvIG0gV2UgY291bGQgc2ltcGxpZnkgdGhlIGNvZGUgYnkKKyAgICAgICAgICAgICAgICAgKiBGID0gbUEgPD0+IEEgPSBGIC8gbSBXZSBjb3VsZCBzaW1wbGlmeSB0aGUgY29kZSBieQogICAgICAgICAgICAgICAgICAqIGNvbXBsZXRlbHkgZWxpbWluYXRpbmcgIm0iICh0aGUgbWFzcykgZnJvbSBhbGwgdGhlIGVxdWF0aW9ucywKICAgICAgICAgICAgICAgICAgKiBidXQgaXQgd291bGQgaGlkZSB0aGUgY29uY2VwdHMgZnJvbSB0aGlzIHNhbXBsZSBjb2RlLgogICAgICAgICAgICAgICAgICAqLwpAQCAtMTc1LDEyICsxNzUsMTIgQEAKIAogICAgICAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAgICAgICogVGltZS1jb3JyZWN0ZWQgVmVybGV0IGludGVncmF0aW9uIFRoZSBwb3NpdGlvbiBWZXJsZXQKLSAgICAgICAgICAgICAgICAgKiBpbnRlZ3JhdG9yIGlzIGRlZmluZWQgYXMgeCh0K8Z0KSA9IHgodCkgKyB4KHQpIC0geCh0LcZ0KSArCi0gICAgICAgICAgICAgICAgICogYSh0KcZ09jIgSG93ZXZlciwgdGhlIGFib3ZlIGVxdWF0aW9uIGRvZXNuJ3QgaGFuZGxlIHZhcmlhYmxlCi0gICAgICAgICAgICAgICAgICogxnQgdmVyeSB3ZWxsLCBhIHRpbWUtY29ycmVjdGVkIHZlcnNpb24gaXMgbmVlZGVkOiB4KHQrxnQpID0KLSAgICAgICAgICAgICAgICAgKiB4KHQpICsgKHgodCkgLSB4KHQtxnQpKSAqICjGdC/GdF9wcmV2KSArIGEodCnGdPYyIFdlIGFsc28gYWRkCi0gICAgICAgICAgICAgICAgICogYSBzaW1wbGUgZnJpY3Rpb24gdGVybSAoZikgdG8gdGhlIGVxdWF0aW9uOiB4KHQrxnQpID0geCh0KSArCi0gICAgICAgICAgICAgICAgICogKDEtZikgKiAoeCh0KSAtIHgodC3GdCkpICogKMZ0L8Z0X3ByZXYpICsgYSh0KcZ09jIKKyAgICAgICAgICAgICAgICAgKiBpbnRlZ3JhdG9yIGlzIGRlZmluZWQgYXMgeCh0K2R0KSA9IHgodCkgKyB4KHQpIC0geCh0LWR0KSArCisgICAgICAgICAgICAgICAgICogYSh0KS50XjIgSG93ZXZlciwgdGhlIGFib3ZlIGVxdWF0aW9uIGRvZXNuJ3QgaGFuZGxlIHZhcmlhYmxlCisgICAgICAgICAgICAgICAgICogZHQgdmVyeSB3ZWxsLCBhIHRpbWUtY29ycmVjdGVkIHZlcnNpb24gaXMgbmVlZGVkOiB4KHQrZHQpID0KKyAgICAgICAgICAgICAgICAgKiB4KHQpICsgKHgodCkgLSB4KHQtZHQpKSAqIChkdC9kdF9wcmV2KSArIGEodCkudF4yIFdlIGFsc28gYWRkCisgICAgICAgICAgICAgICAgICogYSBzaW1wbGUgZnJpY3Rpb24gdGVybSAoZikgdG8gdGhlIGVxdWF0aW9uOiB4KHQrZHQpID0geCh0KSArCisgICAgICAgICAgICAgICAgICogKDEtZikgKiAoeCh0KSAtIHgodC1kdCkpICogKGR0L2R0X3ByZXYpICsgYSh0KXReMgogICAgICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgICAgIGZpbmFsIGZsb2F0IGRUZFQgPSBkVCAqIGRUOwogICAgICAgICAgICAgICAgIGZpbmFsIGZsb2F0IHggPSBtUG9zWCArIG1PbmVNaW51c0ZyaWN0aW9uICogZFRDICogKG1Qb3NYIC0gbUxhc3RQb3NYKSArIG1BY2NlbFgKZGlmZiAtLWdpdCBhL3NhbXBsZXMvYnJvd3NlYWJsZS9BY3Rpdml0eUluc3RydW1lbnRhdGlvbi9faW5kZXguamQgYi9zYW1wbGVzL2Jyb3dzZWFibGUvQWN0aXZpdHlJbnN0cnVtZW50YXRpb24vX2luZGV4LmpkCmluZGV4IGZhNjI3MjQuLjM2OWZmN2UgMTAwNjQ0Ci0tLSBhL3NhbXBsZXMvYnJvd3NlYWJsZS9BY3Rpdml0eUluc3RydW1lbnRhdGlvbi9faW5kZXguamQKKysrIGIvc2FtcGxlcy9icm93c2VhYmxlL0FjdGl2aXR5SW5zdHJ1bWVudGF0aW9uL19pbmRleC5qZApAQCAtNSw4ICs1LDggQEAKIHNhbXBsZS5ncm91cD1UZXN0aW5nCiBAamQ6Ym9keQogCi08cD5UaGlzIHNhbXBsZSBkZW1vbnN0cmF0ZXMgaG93IHRvIHVzZSBhbgote0BsaW5rIGFuZHJvaWQudGVzdC5JbnN0cnVtZW50YXRpb25UZXN0Q2FzZX0gdG8gdGVzdCB0aGUgaW50ZXJuYWwgc3RhdGUgb2YgYW4KKzxwPlRoaXMgc2FtcGxlIGRlbW9uc3RyYXRlcyBob3cgdG8gdXNlIGFuIAore0BsaW5rIGFuZHJvaWQudGVzdC5JbnN0cnVtZW50YXRpb25UZXN0Q2FzZX0gdG8gdGVzdCB0aGUgaW50ZXJuYWwgc3RhdGUgb2YgYW4gCiB7QGxpbmsgYW5kcm9pZC5hcHAuQWN0aXZpdHl9LjwvcD4KIDxwPlRvIGxlYXJuIG1vcmUgYWJvdXQgdXNpbmcgQW5kcm9pZCdzIGN1c3RvbSB0ZXN0aW5nIGZyYW1ld29yaywgc2VlCiA8YSBocmVmPSJ7QGRvY1Jvb3R9dHJhaW5pbmcvYWN0aXZpdHktdGVzdGluZy9pbmRleC5odG1sIj5UZXN0aW5nIFlvdXIKZGlmZiAtLWdpdCBhL3NhbXBsZXMvYnJvd3NlYWJsZS9UZXh0TGlua2lmeS9faW5kZXguamQgYi9zYW1wbGVzL2Jyb3dzZWFibGUvVGV4dExpbmtpZnkvX2luZGV4LmpkCmluZGV4IDlmMzE5MzAuLjM2YWEwNzUgMTAwNjQ0Ci0tLSBhL3NhbXBsZXMvYnJvd3NlYWJsZS9UZXh0TGlua2lmeS9faW5kZXguamQKKysrIGIvc2FtcGxlcy9icm93c2VhYmxlL1RleHRMaW5raWZ5L19pbmRleC5qZApAQCAtOCw3ICs4LDcgQEAKIDxwPlRoaXMgc2FtcGxlIGRlbW9uc3RyYXRlcyBob3cgdG8gYWRkIGNsaWNrYWJsZSBsaW5rcyB0byBhCiB7QGxpbmsgYW5kcm9pZC53aWRnZXQuVGV4dFZpZXd9LCBieSB1c2luZyB0aGVzZSB0ZWNobmlxdWVzOgogPHVsPgotPGxpPlNldHRpbmcgdGhlIHtAbGluayBhbmRyb2lkLlIuc3R5bGVhYmxlI1RleHRWaWV3X2F1dG9MaW5rfSBwcm9wZXJ0eQorPGxpPlNldHRpbmcgdGhlIHtAbGluayBhbmRyb2lkLlIuc3R5bGVhYmxlI1RleHRWaWV3X2F1dG9MaW5rfSBwcm9wZXJ0eSAKIHRvIGF1dG9tYXRpY2FsbHkgY29udmVydCB0aGUgdGV4dCB0byBhIGxpbmsuPC9saT4KIDxsaT5QYXJzaW5nIGEgU3RyaW5nIGFzIEhUTUw8L2xpPgogPGxpPk1hbnVhbGx5IGJ5IGNvbnN0cnVjdGluZyBhIHtAbGluayBhbmRyb2lkLnRleHQuU3Bhbm5hYmxlU3RyaW5nfS48L2xpPgpkaWZmIC0tZ2l0IGEvdG9vbHMvZWxmdHJlZS9BbmRyb2lkLm1rIGIvdG9vbHMvZWxmdHJlZS9BbmRyb2lkLm1rCmluZGV4IDYzMjcyNzMuLmIxYzFlYjcgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2VsZnRyZWUvQW5kcm9pZC5taworKysgYi90b29scy9lbGZ0cmVlL0FuZHJvaWQubWsKQEAgLTE0LDcgKzE0LDcgQEAKIAogTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQogCi1zdXBwb3J0ZWRfcGxhdGZvcm1zIDo9IGxpbnV4LXg4NiBkYXJ3aW4teDg2CitzdXBwb3J0ZWRfcGxhdGZvcm1zIDo9IGxpbnV4LXg4NgogY3VyX3BsYXRmb3JtIDo9ICQoZmlsdGVyICQoSE9TVF9PUyktJChIT1NUX0FSQ0gpLCQoc3VwcG9ydGVkX3BsYXRmb3JtcykpCiAKIGlmZGVmIGN1cl9wbGF0Zm9ybQpAQCAtMzcsMTAgKzM3LDEwIEBACiBpbmNsdWRlICQoQ0xFQVJfVkFSUykKIExPQ0FMX01PRFVMRSA6PSBlbGZ0cmVlCiBMT0NBTF9TUkNfRklMRVMgOj0gZWxmdHJlZS5jCi1MT0NBTF9DX0lOQ0xVREVTIDo9IGV4dGVybmFsL2VsZnV0aWxzL2xpYmVsZgorTE9DQUxfQ19JTkNMVURFUyA6PSBleHRlcm5hbC9lbGZ1dGlscy8wLjE1My9saWJlbGYKICMgdG8gZml4IGNvbXBhdGliaWxpdHkgaXNzdWVzIGluIGVsZiBoZWFkZXJzIGFjcm9zcyBkaWZmZXJlbnQgcGxhdGZvcm1zCiBMT0NBTF9DRkxBR1MgKz0gXAotCS1pbmNsdWRlIGV4dGVybmFsL2VsZnV0aWxzL2hvc3QtJChIT1NUX09TKS1maXh1cC9BbmRyb2lkRml4dXAuaAorCS1pbmNsdWRlIGV4dGVybmFsL2VsZnV0aWxzLzAuMTUzL2hvc3QtJChIT1NUX09TKS1maXh1cC9BbmRyb2lkRml4dXAuaAogTE9DQUxfU1RBVElDX0xJQlJBUklFUyA6PSBsaWJlbGYKIGluY2x1ZGUgJChCVUlMRF9IT1NUX0VYRUNVVEFCTEUpCiAKZGlmZiAtLWdpdCBhL3Rvb2xzL21ha2Vfa2V5IGIvdG9vbHMvbWFrZV9rZXkKaW5kZXggMjA5ZDgyNC4uYTEwMTgxNyAxMDA3NTUKLS0tIGEvdG9vbHMvbWFrZV9rZXkKKysrIGIvdG9vbHMvbWFrZV9rZXkKQEAgLTE3LDEyICsxNywxMiBAQAogIyBHZW5lcmF0ZXMgYSBwdWJsaWMvcHJpdmF0ZSBrZXkgcGFpciBzdWl0YWJsZSBmb3IgdXNlIGluIHNpZ25pbmcKICMgYW5kcm9pZCAuYXBrcyBhbmQgT1RBIHVwZGF0ZSBwYWNrYWdlcy4KIAotaWYgWyAiJCMiIC1uZSAyIF07IHRoZW4KK2lmIFsgIiQjIiAtbHQgMiAtbyAiJCMiIC1ndCAzIF07IHRoZW4KICAgY2F0IDw8RU9GCi1Vc2FnZTogJDAgPG5hbWU+IDxzdWJqZWN0PgorVXNhZ2U6ICQwIDxuYW1lPiA8c3ViamVjdD4gWzxrZXl0eXBlPl0KIAogQ3JlYXRlcyA8bmFtZT4ucGs4IGtleSBhbmQgPG5hbWU+Lng1MDkucGVtIGNlcnQuICBDZXJ0IGNvbnRhaW5zIHRoZQotZ2l2ZW4gPHN1YmplY3Q+LgorZ2l2ZW4gPHN1YmplY3Q+LiBBIGtleXR5cGUgb2YgInJzYSIgb3IgImVjIiBpcyBhY2NlcHRlZC4KIEVPRgogICBleGl0IDIKIGZpCkBAIC00OSw5ICs0OSwxOCBAQAogcmVhZCAtcCAiRW50ZXIgcGFzc3dvcmQgZm9yICckMScgKGJsYW5rIGZvciBub25lOyBwYXNzd29yZCB3aWxsIGJlIHZpc2libGUpOiAiIFwKICAgcGFzc3dvcmQKIAotKCBvcGVuc3NsIGdlbnJzYSAtZjQgMjA0OCB8IHRlZSAke29uZX0gPiAke3R3b30gKSAmCitpZiBbICIkezN9IiA9ICJyc2EiIC1vICIkIyIgLWVxIDIgXTsgdGhlbgorICAoIG9wZW5zc2wgZ2VucnNhIC1mNCAyMDQ4IHwgdGVlICR7b25lfSA+ICR7dHdvfSApICYKKyAgaGFzaD0iLXNoYTEiCitlbGlmIFsgIiR7M30iID0gImVjIiBdOyB0aGVuCisgICggb3BlbnNzbCBlY3BhcmFtIC1uYW1lIHByaW1lMjU2djEgLWdlbmtleSAtbm9vdXQgfCB0ZWUgJHtvbmV9ID4gJHt0d299ICkgJgorICBoYXNoPSItc2hhMjU2IgorZWxzZQorICBlY2hvICJPbmx5IGFjY2VwdHMgUlNBIG9yIEVDIGtleXR5cGVzLiIKKyAgZXhpdCAxCitmaQogCi1vcGVuc3NsIHJlcSAtbmV3IC14NTA5IC1zaGExIC1rZXkgJHt0d299IC1vdXQgJDEueDUwOS5wZW0gXAorb3BlbnNzbCByZXEgLW5ldyAteDUwOSAke2hhc2h9IC1rZXkgJHt0d299IC1vdXQgJDEueDUwOS5wZW0gXAogICAtZGF5cyAxMDAwMCAtc3ViaiAiJDIiICYKIAogaWYgWyAiJHtwYXNzd29yZH0iID09ICIiIF07IHRoZW4KZGlmZiAtLWdpdCBhL3Rvb2xzL3JlY292ZXJ5X2wxMG4vcmVzL3ZhbHVlcy1lbi1ySU4vc3RyaW5ncy54bWwgYi90b29scy9yZWNvdmVyeV9sMTBuL3Jlcy92YWx1ZXMtZW4tcklOL3N0cmluZ3MueG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNzBkNjc4Yy4uMDAwMDAwMAotLS0gYS90b29scy9yZWNvdmVyeV9sMTBuL3Jlcy92YWx1ZXMtZW4tcklOL3N0cmluZ3MueG1sCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCi0gICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgotICAgIDxzdHJpbmcgbmFtZT0icmVjb3ZlcnlfaW5zdGFsbGluZyIgbXNnaWQ9Ijc4NjQwNDc5MjgwMDM4NjU1OTgiPiJJbnN0YWxsaW5nIHN5c3RlbSB1cGRhdGXigKYiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJyZWNvdmVyeV9lcmFzaW5nIiBtc2dpZD0iNDYxMjgwOTc0NDk2ODcxMDE5NyI+IkVyYXNpbmfigKYiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJyZWNvdmVyeV9ub19jb21tYW5kIiBtc2dpZD0iMTkxNTcwMzg3OTAzMTAyMzQ1NSI+Ik5vIGNvbW1hbmQuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icmVjb3ZlcnlfZXJyb3IiIG1zZ2lkPSI0NTUwMjY1NzQ2MjU2NzI3MDgwIj4iRXJyb3IhIjwvc3RyaW5nPgotPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS90b29scy9yZWNvdmVyeV9sMTBuL3Jlcy92YWx1ZXMtZXQtckVFL3N0cmluZ3MueG1sIGIvdG9vbHMvcmVjb3ZlcnlfbDEwbi9yZXMvdmFsdWVzLWV0LXJFRS9zdHJpbmdzLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDA3YTUzZC4uMDAwMDAwMAotLS0gYS90b29scy9yZWNvdmVyeV9sMTBuL3Jlcy92YWx1ZXMtZXQtckVFL3N0cmluZ3MueG1sCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCi0gICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgotICAgIDxzdHJpbmcgbmFtZT0icmVjb3ZlcnlfaW5zdGFsbGluZyIgbXNnaWQ9Ijc4NjQwNDc5MjgwMDM4NjU1OTgiPiJTw7xzdGVlbWl2w6Ryc2tlbmR1c3RlIGluc3RhbGxpbWluZSAuLi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJyZWNvdmVyeV9lcmFzaW5nIiBtc2dpZD0iNDYxMjgwOTc0NDk2ODcxMDE5NyI+Ikt1c3R1dGFtaW5lIC4uLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InJlY292ZXJ5X25vX2NvbW1hbmQiIG1zZ2lkPSIxOTE1NzAzODc5MDMxMDIzNDU1Ij4iS8Okc2sgcHV1ZHViLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InJlY292ZXJ5X2Vycm9yIiBtc2dpZD0iNDU1MDI2NTc0NjI1NjcyNzA4MCI+IlZpZ2EhIjwvc3RyaW5nPgotPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS90b29scy9yZWNvdmVyeV9sMTBuL3Jlcy92YWx1ZXMtZnItckNBL3N0cmluZ3MueG1sIGIvdG9vbHMvcmVjb3ZlcnlfbDEwbi9yZXMvdmFsdWVzLWZyLXJDQS9zdHJpbmdzLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjJhODVkOC4uMDAwMDAwMAotLS0gYS90b29scy9yZWNvdmVyeV9sMTBuL3Jlcy92YWx1ZXMtZnItckNBL3N0cmluZ3MueG1sCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCi0gICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgotICAgIDxzdHJpbmcgbmFtZT0icmVjb3ZlcnlfaW5zdGFsbGluZyIgbXNnaWQ9Ijc4NjQwNDc5MjgwMDM4NjU1OTgiPiJJbnN0YWxsYXRpb24gZGUgbGEgbWlzZSDDoCBqb3VyIGR1IHN5c3TDqG1lIGVuIGNvdXJz4oCmIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icmVjb3ZlcnlfZXJhc2luZyIgbXNnaWQ9IjQ2MTI4MDk3NDQ5Njg3MTAxOTciPiJFZmZhY2VtZW50IGVuIGNvdXJz4oCmIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icmVjb3Zlcnlfbm9fY29tbWFuZCIgbXNnaWQ9IjE5MTU3MDM4NzkwMzEwMjM0NTUiPiJBdWN1bmUgY29tbWFuZGUuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icmVjb3ZlcnlfZXJyb3IiIG1zZ2lkPSI0NTUwMjY1NzQ2MjU2NzI3MDgwIj4iRXJyZXVyISI8L3N0cmluZz4KLTwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvdG9vbHMvcmVjb3ZlcnlfbDEwbi9yZXMvdmFsdWVzLWhpL3N0cmluZ3MueG1sIGIvdG9vbHMvcmVjb3ZlcnlfbDEwbi9yZXMvdmFsdWVzLWhpL3N0cmluZ3MueG1sCmluZGV4IGE0NzBkMTIuLjNkZmFiM2UgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3JlY292ZXJ5X2wxMG4vcmVzL3ZhbHVlcy1oaS9zdHJpbmdzLnhtbAorKysgYi90b29scy9yZWNvdmVyeV9sMTBuL3Jlcy92YWx1ZXMtaGkvc3RyaW5ncy54bWwKQEAgLTEsNyArMSw3IEBACiA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgogPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCiAgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgotICAgIDxzdHJpbmcgbmFtZT0icmVjb3ZlcnlfaW5zdGFsbGluZyIgbXNnaWQ9Ijc4NjQwNDc5MjgwMDM4NjU1OTgiPiLgpLjgpL/gpLjgpY3gpJ/gpK4g4KSV4KWHIOCkrOCkvuCksOClhyDgpK7gpYfgpIIg4KSo4KSIIOCknOCkvuCkqOCkleCkvuCksOClgCDgpK7gpL/gpLIg4KSw4KS54KWAIOCkueCliOKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlY292ZXJ5X2luc3RhbGxpbmciIG1zZ2lkPSI3ODY0MDQ3OTI4MDAzODY1NTk4Ij4i4KS44KS/4KS44KWN4KSf4KSuIOCkheCkquCkoeClh+CknyDgpIfgpILgpLjgpY3gpJ/gpYngpLIg4KSV4KSwIOCksOCkueCkviDgpLngpYjigKYiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJyZWNvdmVyeV9lcmFzaW5nIiBtc2dpZD0iNDYxMjgwOTc0NDk2ODcxMDE5NyI+IuCkruCkv+Ckn+CkviDgpLDgpLngpL4g4KS54KWI4oCmIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icmVjb3Zlcnlfbm9fY29tbWFuZCIgbXNnaWQ9IjE5MTU3MDM4NzkwMzEwMjM0NTUiPiLgpJXgpYvgpIgg4KSG4KSm4KWH4KS2IOCkqOCkueClgOCkgi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJyZWNvdmVyeV9lcnJvciIgbXNnaWQ9IjQ1NTAyNjU3NDYyNTY3MjcwODAiPiLgpKTgpY3gpLDgpYHgpJ/gpL8hIjwvc3RyaW5nPgpkaWZmIC0tZ2l0IGEvdG9vbHMvcmVjb3ZlcnlfbDEwbi9yZXMvdmFsdWVzLWh5LXJBTS9zdHJpbmdzLnhtbCBiL3Rvb2xzL3JlY292ZXJ5X2wxMG4vcmVzL3ZhbHVlcy1oeS1yQU0vc3RyaW5ncy54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdiYWJlODAuLjAwMDAwMDAKLS0tIGEvdG9vbHMvcmVjb3ZlcnlfbDEwbi9yZXMvdmFsdWVzLWh5LXJBTS9zdHJpbmdzLnhtbAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgotICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KLSAgICA8c3RyaW5nIG5hbWU9InJlY292ZXJ5X2luc3RhbGxpbmciIG1zZ2lkPSI3ODY0MDQ3OTI4MDAzODY1NTk4Ij4i1YDVodW01aHVr9Wh1oDVo9WrINWp1aHWgNW01aHWgdW01aHVtiDVv9Wl1bLVodWk1oDVuNaC1bTigKYiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJyZWNvdmVyeV9lcmFzaW5nIiBtc2dpZD0iNDYxMjgwOTc0NDk2ODcxMDE5NyI+ItWL1bbVu9W41oLVtOKApiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InJlY292ZXJ5X25vX2NvbW1hbmQiIG1zZ2lkPSIxOTE1NzAzODc5MDMxMDIzNDU1Ij4i1YDWgNWh1bTVodW21agg1b/WgNW+1aHVriDVudWnOiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InJlY292ZXJ5X2Vycm9yIiBtc2dpZD0iNDU1MDI2NTc0NjI1NjcyNzA4MCI+ItWN1a3VodWsIjwvc3RyaW5nPgotPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS90b29scy9yZWNvdmVyeV9sMTBuL3Jlcy92YWx1ZXMta2EtckdFL3N0cmluZ3MueG1sIGIvdG9vbHMvcmVjb3ZlcnlfbDEwbi9yZXMvdmFsdWVzLWthLXJHRS9zdHJpbmdzLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmQyN2MxNy4uMDAwMDAwMAotLS0gYS90b29scy9yZWNvdmVyeV9sMTBuL3Jlcy92YWx1ZXMta2EtckdFL3N0cmluZ3MueG1sCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCi0gICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgotICAgIDxzdHJpbmcgbmFtZT0icmVjb3ZlcnlfaW5zdGFsbGluZyIgbXNnaWQ9Ijc4NjQwNDc5MjgwMDM4NjU1OTgiPiLhg6Hhg5jhg6Hhg6Lhg5Thg5vhg5jhg6Eg4YOS4YOQ4YOc4YOQ4YOu4YOa4YOU4YOR4YOY4YOhIOGDk+GDkOGDp+GDlOGDnOGDlOGDkeGDkOKApiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InJlY292ZXJ5X2VyYXNpbmciIG1zZ2lkPSI0NjEyODA5NzQ0OTY4NzEwMTk3Ij4i4YOb4YOY4YOb4YOT4YOY4YOc4YOQ4YOg4YOU4YOd4YOR4YOhIOGDrOGDkOGDqOGDmuGDkOKApiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InJlY292ZXJ5X25vX2NvbW1hbmQiIG1zZ2lkPSIxOTE1NzAzODc5MDMxMDIzNDU1Ij4i4YOR4YOg4YOr4YOQ4YOc4YOU4YOR4YOQIOGDkOGDoCDhg5Dhg6Dhg5jhg6EuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icmVjb3ZlcnlfZXJyb3IiIG1zZ2lkPSI0NTUwMjY1NzQ2MjU2NzI3MDgwIj4i4YOo4YOU4YOq4YOT4YOd4YOb4YOQISI8L3N0cmluZz4KLTwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvdG9vbHMvcmVjb3ZlcnlfbDEwbi9yZXMvdmFsdWVzLWttLXJLSC9zdHJpbmdzLnhtbCBiL3Rvb2xzL3JlY292ZXJ5X2wxMG4vcmVzL3ZhbHVlcy1rbS1yS0gvc3RyaW5ncy54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBjMWMyNzIuLjAwMDAwMDAKLS0tIGEvdG9vbHMvcmVjb3ZlcnlfbDEwbi9yZXMvdmFsdWVzLWttLXJLSC9zdHJpbmdzLnhtbAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgotICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KLSAgICA8c3RyaW5nIG5hbWU9InJlY292ZXJ5X2luc3RhbGxpbmciIG1zZ2lkPSI3ODY0MDQ3OTI4MDAzODY1NTk4Ij4i4Z6A4Z+G4Z6W4Z674Z6E4oCL4Z6K4Z+G4Z6h4Z6+4Z6E4oCL4Z6U4Z6F4Z+S4Z6F4Z674Z6U4Z+S4Z6U4Z6T4Z+S4Z6T4Z6X4Z624Z6W4oCL4Z6U4Z+S4Z6a4Z6W4Z+Q4Z6T4Z+S4Z6S4oCmIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icmVjb3ZlcnlfZXJhc2luZyIgbXNnaWQ9IjQ2MTI4MDk3NDQ5Njg3MTAxOTciPiLhnoDhn4bhnpbhnrvhnoTigIvhnpvhnrvhnpTigKYiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJyZWNvdmVyeV9ub19jb21tYW5kIiBtc2dpZD0iMTkxNTcwMzg3OTAzMTAyMzQ1NSI+IuGeguGfkuGemOGetuGek+KAi+GeluGetuGegOGfkuGemeKAi+GelOGeieGfkuGeh+GetuGflCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InJlY292ZXJ5X2Vycm9yIiBtc2dpZD0iNDU1MDI2NTc0NjI1NjcyNzA4MCI+IuGegOGfhuGeoOGeu+GenyEiPC9zdHJpbmc+Ci08L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3Rvb2xzL3JlY292ZXJ5X2wxMG4vcmVzL3ZhbHVlcy1sby1yTEEvc3RyaW5ncy54bWwgYi90b29scy9yZWNvdmVyeV9sMTBuL3Jlcy92YWx1ZXMtbG8tckxBL3N0cmluZ3MueG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ODgwY2NhLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL3JlY292ZXJ5X2wxMG4vcmVzL3ZhbHVlcy1sby1yTEEvc3RyaW5ncy54bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKLSAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+Ci0gICAgPHN0cmluZyBuYW1lPSJyZWNvdmVyeV9pbnN0YWxsaW5nIiBtc2dpZD0iNzg2NDA0NzkyODAwMzg2NTU5OCI+IuC6geC6s+C6peC6seC6h+C6leC6tOC6lOC6leC6seC7ieC6h+C6geC6suC6meC6reC6seC6muC7gOC6lOC6lOC6peC6sOC6muC6u+C6mi4uLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InJlY292ZXJ5X2VyYXNpbmciIG1zZ2lkPSI0NjEyODA5NzQ0OTY4NzEwMTk3Ij4i4LqB4Lqz4Lql4Lqx4LqH4Lql4Lq24LqaLi4uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icmVjb3Zlcnlfbm9fY29tbWFuZCIgbXNnaWQ9IjE5MTU3MDM4NzkwMzEwMjM0NTUiPiLguprgu43gu4jguqHgurXguoTgurPguqrgurHgu4jguocuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icmVjb3ZlcnlfZXJyb3IiIG1zZ2lkPSI0NTUwMjY1NzQ2MjU2NzI3MDgwIj4i4Lqc4Lq04LqU4Lqe4Lqy4LqUISI8L3N0cmluZz4KLTwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvdG9vbHMvcmVjb3ZlcnlfbDEwbi9yZXMvdmFsdWVzLW1uLXJNTi9zdHJpbmdzLnhtbCBiL3Rvb2xzL3JlY292ZXJ5X2wxMG4vcmVzL3ZhbHVlcy1tbi1yTU4vc3RyaW5ncy54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ2M2NhZmUuLjAwMDAwMDAKLS0tIGEvdG9vbHMvcmVjb3ZlcnlfbDEwbi9yZXMvdmFsdWVzLW1uLXJNTi9zdHJpbmdzLnhtbAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgotICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KLSAgICA8c3RyaW5nIG5hbWU9InJlY292ZXJ5X2luc3RhbGxpbmciIG1zZ2lkPSI3ODY0MDQ3OTI4MDAzODY1NTk4Ij4i0KHQuNGB0YLQtdC80LjQudC9INGI0LjQvdGN0YfQu9GN0LvRgtC40LnQsyDRgdGD0YPQu9Cz0LDQtiDQsdCw0LnQvdCw4oCmIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icmVjb3ZlcnlfZXJhc2luZyIgbXNnaWQ9IjQ2MTI4MDk3NDQ5Njg3MTAxOTciPiLQkNGA0LjQu9Cz0LDQtiDQsdCw0LnQvdCw4oCmIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icmVjb3Zlcnlfbm9fY29tbWFuZCIgbXNnaWQ9IjE5MTU3MDM4NzkwMzEwMjM0NTUiPiLQmtC+0LzQsNC90LQg0LHQsNC50YXQs9Kv0LkuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icmVjb3ZlcnlfZXJyb3IiIG1zZ2lkPSI0NTUwMjY1NzQ2MjU2NzI3MDgwIj4i0JDQu9C00LDQsCEiPC9zdHJpbmc+Ci08L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3Rvb2xzL3JlY292ZXJ5X2wxMG4vcmVzL3ZhbHVlcy1tcy1yTVkvc3RyaW5ncy54bWwgYi90b29scy9yZWNvdmVyeV9sMTBuL3Jlcy92YWx1ZXMtbXMtck1ZL3N0cmluZ3MueG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNTYzNTkxLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL3JlY292ZXJ5X2wxMG4vcmVzL3ZhbHVlcy1tcy1yTVkvc3RyaW5ncy54bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKLSAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+Ci0gICAgPHN0cmluZyBuYW1lPSJyZWNvdmVyeV9pbnN0YWxsaW5nIiBtc2dpZD0iNzg2NDA0NzkyODAwMzg2NTU5OCI+Ik1lbWFzYW5nIGtlbWFzIGtpbmkgc2lzdGVtLi4uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icmVjb3ZlcnlfZXJhc2luZyIgbXNnaWQ9IjQ2MTI4MDk3NDQ5Njg3MTAxOTciPiJNZW1hZGFtLi4uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icmVjb3Zlcnlfbm9fY29tbWFuZCIgbXNnaWQ9IjE5MTU3MDM4NzkwMzEwMjM0NTUiPiJUaWFkYSBhcmFoYW4uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icmVjb3ZlcnlfZXJyb3IiIG1zZ2lkPSI0NTUwMjY1NzQ2MjU2NzI3MDgwIj4iUmFsYXQhIjwvc3RyaW5nPgotPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS90b29scy9yZWNvdmVyeV9sMTBuL3Jlcy92YWx1ZXMtemgtckhLL3N0cmluZ3MueG1sIGIvdG9vbHMvcmVjb3ZlcnlfbDEwbi9yZXMvdmFsdWVzLXpoLXJISy9zdHJpbmdzLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjYxNWM3YS4uMDAwMDAwMAotLS0gYS90b29scy9yZWNvdmVyeV9sMTBuL3Jlcy92YWx1ZXMtemgtckhLL3N0cmluZ3MueG1sCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCi0gICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgotICAgIDxzdHJpbmcgbmFtZT0icmVjb3ZlcnlfaW5zdGFsbGluZyIgbXNnaWQ9Ijc4NjQwNDc5MjgwMDM4NjU1OTgiPiLmraPlnKjlronoo53ns7vntbHmm7TmlrDigKYiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJyZWNvdmVyeV9lcmFzaW5nIiBtc2dpZD0iNDYxMjgwOTc0NDk2ODcxMDE5NyI+Iuato+WcqOa4hemZpOKApiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InJlY292ZXJ5X25vX2NvbW1hbmQiIG1zZ2lkPSIxOTE1NzAzODc5MDMxMDIzNDU1Ij4i5rKS5pyJ5oyH5Luk44CCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icmVjb3ZlcnlfZXJyb3IiIG1zZ2lkPSI0NTUwMjY1NzQ2MjU2NzI3MDgwIj4i6Yyv6Kqk77yBIjwvc3RyaW5nPgotPC9yZXNvdXJjZXM+Cg==