a:3:{s:4:"name";s:11:"presibourse";s:4:"dirs";a:7:{i:0;s:11:"presibourse";i:1;s:18:"presibourse/magpie";i:2;s:25:"presibourse/magpie/extlib";i:3;s:25:"presibourse/magpie/htdocs";i:4;s:26:"presibourse/magpie/scripts";i:5;s:40:"presibourse/magpie/scripts/smarty_plugin";i:6;s:36:"presibourse/magpie/scripts/templates";}s:5:"files";a:27:{s:42:"presibourse/magpie/extlib/Snoopy.class.inc";s:36536:"PD9waHAKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgpTbm9vcHkgLSB0aGUgUEhQIG5ldCBjbGllbnQKQXV0aG9yOiBNb250ZSBPaHJ0IDxtb250ZUBpc3BpLm5ldD4KQ29weXJpZ2h0IChjKTogMTk5OS0yMDAwIGlzcGksIGFsbCByaWdodHMgcmVzZXJ2ZWQKVmVyc2lvbjogMS4wCgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKCllvdSBtYXkgY29udGFjdCB0aGUgYXV0aG9yIG9mIFNub29weSBieSBlLW1haWwgYXQ6Cm1vbnRlQGlzcGkubmV0CgpPciwgd3JpdGUgdG86Ck1vbnRlIE9ocnQKQ1RPLCBpc3BpCjIzNyBTLiA3MHRoIHN1aXRlIDIyMApMaW5jb2xuLCBORSA2ODUxMAoKVGhlIGxhdGVzdCB2ZXJzaW9uIG9mIFNub29weSBjYW4gYmUgb2J0YWluZWQgZnJvbToKaHR0cDovL3Nub29weS5zb3VyY2Vmb3JnZS5jb20KCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgpjbGFzcyBTbm9vcHkKewoJLyoqKiogUHVibGljIHZhcmlhYmxlcyAqKioqLwoJCgkvKiB1c2VyIGRlZmluYWJsZSB2YXJzICovCgoJdmFyICRob3N0CQkJPQkid3d3LnBocC5uZXQiOwkJLy8gaG9zdCBuYW1lIHdlIGFyZSBjb25uZWN0aW5nIHRvCgl2YXIgJHBvcnQJCQk9CTgwOwkJCQkJLy8gcG9ydCB3ZSBhcmUgY29ubmVjdGluZyB0bwoJdmFyICRwcm94eV9ob3N0CQk9CSIiOwkJCQkJLy8gcHJveHkgaG9zdCB0byB1c2UKCXZhciAkcHJveHlfcG9ydAkJPQkiIjsJCQkJCS8vIHByb3h5IHBvcnQgdG8gdXNlCgl2YXIgJGFnZW50CQkJPQkiU25vb3B5IHYxLjAiOwkJLy8gYWdlbnQgd2UgbWFzcXVlcmFkZSBhcwoJdmFyCSRyZWZlcmVyCQk9CSIiOwkJCQkJLy8gcmVmZXJlciBpbmZvIHRvIHBhc3MKCXZhciAkY29va2llcwkJPQlhcnJheSgpOwkJCS8vIGFycmF5IG9mIGNvb2tpZXMgdG8gcGFzcwoJCQkJCQkJCQkJCQkvLyAkY29va2llc1sidXNlcm5hbWUiXT0iam9lIjsKCXZhcgkkcmF3aGVhZGVycwkJPQlhcnJheSgpOwkJCS8vIGFycmF5IG9mIHJhdyBoZWFkZXJzIHRvIHNlbmQKCQkJCQkJCQkJCQkJLy8gJHJhd2hlYWRlcnNbIkNvbnRlbnQtdHlwZSJdPSJ0ZXh0L2h0bWwiOwoKCXZhciAkbWF4cmVkaXJzCQk9CTU7CQkJCQkvLyBodHRwIHJlZGlyZWN0aW9uIGRlcHRoIG1heGltdW0uIDAgPSBkaXNhbGxvdwoJdmFyICRsYXN0cmVkaXJlY3RhZGRyCT0JIiI7CQkJCS8vIGNvbnRhaW5zIGFkZHJlc3Mgb2YgbGFzdCByZWRpcmVjdGVkIGFkZHJlc3MKCXZhcgkkb2Zmc2l0ZW9rCQk9CXRydWU7CQkJCS8vIGFsbG93cyByZWRpcmVjdGlvbiBvZmYtc2l0ZQoJdmFyICRtYXhmcmFtZXMJCT0JMDsJCQkJCS8vIGZyYW1lIGNvbnRlbnQgZGVwdGggbWF4aW11bS4gMCA9IGRpc2FsbG93Cgl2YXIgJGV4cGFuZGxpbmtzCT0JdHJ1ZTsJCQkJLy8gZXhwYW5kIGxpbmtzIHRvIGZ1bGx5IHF1YWxpZmllZCBVUkxzLgoJCQkJCQkJCQkJCQkvLyB0aGlzIG9ubHkgYXBwbGllcyB0byBmZXRjaGxpbmtzKCkKCQkJCQkJCQkJCQkJLy8gb3Igc3VibWl0bGlua3MoKQoJdmFyICRwYXNzY29va2llcwk9CXRydWU7CQkJCS8vIHBhc3Mgc2V0IGNvb2tpZXMgYmFjayB0aHJvdWdoIHJlZGlyZWN0cwoJCQkJCQkJCQkJCQkvLyBOT1RFOiB0aGlzIGN1cnJlbnRseSBkb2VzIG5vdCByZXNwZWN0CgkJCQkJCQkJCQkJCS8vIGRhdGVzLCBkb21haW5zIG9yIHBhdGhzLgoJCgl2YXIJJHVzZXIJCQk9CSIiOwkJCQkJLy8gdXNlciBmb3IgaHR0cCBhdXRoZW50aWNhdGlvbgoJdmFyCSRwYXNzCQkJPQkiIjsJCQkJCS8vIHBhc3N3b3JkIGZvciBodHRwIGF1dGhlbnRpY2F0aW9uCgkKCS8vIGh0dHAgYWNjZXB0IHR5cGVzCgl2YXIgJGFjY2VwdAkJCT0JImltYWdlL2dpZiwgaW1hZ2UveC14Yml0bWFwLCBpbWFnZS9qcGVnLCBpbWFnZS9wanBlZywgKi8qIjsKCQoJdmFyICRyZXN1bHRzCQk9CSIiOwkJCQkJLy8gd2hlcmUgdGhlIGNvbnRlbnQgaXMgcHV0CgkJCgl2YXIgJGVycm9yCQkJPQkiIjsJCQkJCS8vIGVycm9yIG1lc3NhZ2VzIHNlbnQgaGVyZQoJdmFyCSRyZXNwb25zZV9jb2RlCT0JIiI7CQkJCQkvLyByZXNwb25zZSBjb2RlIHJldHVybmVkIGZyb20gc2VydmVyCgl2YXIJJGhlYWRlcnMJCT0JYXJyYXkoKTsJCQkvLyBoZWFkZXJzIHJldHVybmVkIGZyb20gc2VydmVyIHNlbnQgaGVyZQoJdmFyCSRtYXhsZW5ndGgJCT0JNTAwMDAwOwkJCQkvLyBtYXggcmV0dXJuIGRhdGEgbGVuZ3RoIChib2R5KQoJdmFyICRyZWFkX3RpbWVvdXQJPQkwOwkJCQkJLy8gdGltZW91dCBvbiByZWFkIG9wZXJhdGlvbnMsIGluIHNlY29uZHMKCQkJCQkJCQkJCQkJLy8gc3VwcG9ydGVkIG9ubHkgc2luY2UgUEhQIDQgQmV0YSA0CgkJCQkJCQkJCQkJCS8vIHNldCB0byAwIHRvIGRpc2FsbG93IHRpbWVvdXRzCgl2YXIgJHRpbWVkX291dAkJPQlmYWxzZTsJCQkJLy8gaWYgYSByZWFkIG9wZXJhdGlvbiB0aW1lZCBvdXQKCXZhcgkkc3RhdHVzCQkJPQkwOwkJCQkJLy8gaHR0cCByZXF1ZXN0IHN0YXR1cwoJCgl2YXIJJGN1cmxfcGF0aAkJPQkiL3Vzci9iaW4vY3VybCI7CgkJCQkJCQkJCQkJCS8vIFNub29weSB3aWxsIHVzZSBjVVJMIGZvciBmZXRjaGluZwoJCQkJCQkJCQkJCQkvLyBTU0wgY29udGVudCBpZiBhIGZ1bGwgc3lzdGVtIHBhdGggdG8KCQkJCQkJCQkJCQkJLy8gdGhlIGNVUkwgYmluYXJ5IGlzIHN1cHBsaWVkIGhlcmUuCgkJCQkJCQkJCQkJCS8vIHNldCB0byBmYWxzZSBpZiB5b3UgZG8gbm90IGhhdmUKCQkJCQkJCQkJCQkJLy8gY1VSTCBpbnN0YWxsZWQuIFNlZSBodHRwOi8vY3VybC5oYXh4LnNlCgkJCQkJCQkJCQkJCS8vIGZvciBkZXRhaWxzIG9uIGluc3RhbGxpbmcgY1VSTC4KCQkJCQkJCQkJCQkJLy8gU25vb3B5IGRvZXMgKm5vdCogdXNlIHRoZSBjVVJMCgkJCQkJCQkJCQkJCS8vIGxpYnJhcnkgZnVuY3Rpb25zIGJ1aWx0IGludG8gcGhwLAoJCQkJCQkJCQkJCQkvLyBhcyB0aGVzZSBmdW5jdGlvbnMgYXJlIG5vdCBzdGFibGUKCQkJCQkJCQkJCQkJLy8gYXMgb2YgdGhpcyBTbm9vcHkgcmVsZWFzZS4KCQoJLy8gc2VuZCBBY2NlcHQtZW5jb2Rpbmc6IGd6aXA/Cgl2YXIgJHVzZV9nemlwCQk9IHRydWU7CQoJCgkvKioqKiBQcml2YXRlIHZhcmlhYmxlcyAqKioqLwkKCQoJdmFyCSRfbWF4bGluZWxlbgk9CTQwOTY7CQkJCS8vIG1heCBsaW5lIGxlbmd0aCAoaGVhZGVycykKCQoJdmFyICRfaHR0cG1ldGhvZAk9CSJHRVQiOwkJCQkvLyBkZWZhdWx0IGh0dHAgcmVxdWVzdCBtZXRob2QKCXZhciAkX2h0dHB2ZXJzaW9uCT0JIkhUVFAvMS4wIjsJCQkvLyBkZWZhdWx0IGh0dHAgcmVxdWVzdCB2ZXJzaW9uCgl2YXIgJF9zdWJtaXRfbWV0aG9kCT0JIlBPU1QiOwkJCQkvLyBkZWZhdWx0IHN1Ym1pdCBtZXRob2QKCXZhciAkX3N1Ym1pdF90eXBlCT0JImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCI7CS8vIGRlZmF1bHQgc3VibWl0IHR5cGUKCXZhciAkX21pbWVfYm91bmRhcnkJPSAgICIiOwkJCQkJLy8gTUlNRSBib3VuZGFyeSBmb3IgbXVsdGlwYXJ0L2Zvcm0tZGF0YSBzdWJtaXQgdHlwZQoJdmFyICRfcmVkaXJlY3RhZGRyCT0JZmFsc2U7CQkJCS8vIHdpbGwgYmUgc2V0IGlmIHBhZ2UgZmV0Y2hlZCBpcyBhIHJlZGlyZWN0Cgl2YXIgJF9yZWRpcmVjdGRlcHRoCT0JMDsJCQkJCS8vIGluY3JlbWVudHMgb24gYW4gaHR0cCByZWRpcmVjdAoJdmFyICRfZnJhbWV1cmxzCQk9IAlhcnJheSgpOwkJCS8vIGZyYW1lIHNyYyB1cmxzCgl2YXIgJF9mcmFtZWRlcHRoCT0JMDsJCQkJCS8vIGluY3JlbWVudHMgb24gZnJhbWUgZGVwdGgKCQoJdmFyICRfaXNwcm94eQkJPQlmYWxzZTsJCQkJLy8gc2V0IGlmIHVzaW5nIGEgcHJveHkgc2VydmVyCgl2YXIgJF9mcF90aW1lb3V0CT0JMzA7CQkJCQkvLyB0aW1lb3V0IGZvciBzb2NrZXQgY29ubmVjdGlvbgoKLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09KlwKCUZ1bmN0aW9uOglmZXRjaAoJUHVycG9zZToJZmV0Y2ggdGhlIGNvbnRlbnRzIG9mIGEgd2ViIHBhZ2UKCQkJCShhbmQgcG9zc2libHkgb3RoZXIgcHJvdG9jb2xzIGluIHRoZQoJCQkJZnV0dXJlIGxpa2UgZnRwLCBubnRwLCBnb3BoZXIsIGV0Yy4pCglJbnB1dDoJCSRVUkkJdGhlIGxvY2F0aW9uIG9mIHRoZSBwYWdlIHRvIGZldGNoCglPdXRwdXQ6CQkkdGhpcy0+cmVzdWx0cwl0aGUgb3V0cHV0IHRleHQgZnJvbSB0aGUgZmV0Y2gKXCo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KCglmdW5jdGlvbiBmZXRjaCgkVVJJKQoJewoJCgkJLy9wcmVnX21hdGNoKCJ8XihbXjpdKyk6Ly8oW146L10rKSg6W1xkXSspKiguKil8IiwkVVJJLCRVUklfUEFSVFMpOwoJCSRVUklfUEFSVFMgPSBwYXJzZV91cmwoJFVSSSk7CgkJaWYgKCFlbXB0eSgkVVJJX1BBUlRTWyJ1c2VyIl0pKQoJCQkkdGhpcy0+dXNlciA9ICRVUklfUEFSVFNbInVzZXIiXTsKCQlpZiAoIWVtcHR5KCRVUklfUEFSVFNbInBhc3MiXSkpCgkJCSR0aGlzLT5wYXNzID0gJFVSSV9QQVJUU1sicGFzcyJdOwoJCQkJCgkJc3dpdGNoKCRVUklfUEFSVFNbInNjaGVtZSJdKQoJCXsKCQkJY2FzZSAiaHR0cCI6CgkJCQkkdGhpcy0+aG9zdCA9ICRVUklfUEFSVFNbImhvc3QiXTsKCQkJCWlmKCFlbXB0eSgkVVJJX1BBUlRTWyJwb3J0Il0pKQoJCQkJCSR0aGlzLT5wb3J0ID0gJFVSSV9QQVJUU1sicG9ydCJdOwoJCQkJaWYoJHRoaXMtPl9jb25uZWN0KCRmcCkpCgkJCQl7CgkJCQkJaWYoJHRoaXMtPl9pc3Byb3h5KQoJCQkJCXsKCQkJCQkJLy8gdXNpbmcgcHJveHksIHNlbmQgZW50aXJlIFVSSQoJCQkJCQkkdGhpcy0+X2h0dHByZXF1ZXN0KCRVUkksJGZwLCRVUkksJHRoaXMtPl9odHRwbWV0aG9kKTsKCQkJCQl9CgkJCQkJZWxzZQoJCQkJCXsKCQkJCQkJJHBhdGggPSAkVVJJX1BBUlRTWyJwYXRoIl0uKGlzc2V0KCRVUklfUEFSVFNbInF1ZXJ5Il0pID8gIj8iLiRVUklfUEFSVFNbInF1ZXJ5Il0gOiAiIik7CgkJCQkJCS8vIG5vIHByb3h5LCBzZW5kIG9ubHkgdGhlIHBhdGgKCQkJCQkJJHRoaXMtPl9odHRwcmVxdWVzdCgkcGF0aCwgJGZwLCAkVVJJLCAkdGhpcy0+X2h0dHBtZXRob2QpOwoJCQkJCX0KCQkJCQkKCQkJCQkkdGhpcy0+X2Rpc2Nvbm5lY3QoJGZwKTsKCgkJCQkJaWYoJHRoaXMtPl9yZWRpcmVjdGFkZHIpCgkJCQkJewoJCQkJCQkvKiB1cmwgd2FzIHJlZGlyZWN0ZWQsIGNoZWNrIGlmIHdlJ3ZlIGhpdCB0aGUgbWF4IGRlcHRoICovCgkJCQkJCWlmKCR0aGlzLT5tYXhyZWRpcnMgPiAkdGhpcy0+X3JlZGlyZWN0ZGVwdGgpCgkJCQkJCXsKCQkJCQkJCS8vIG9ubHkgZm9sbG93IHJlZGlyZWN0IGlmIGl0J3Mgb24gdGhpcyBzaXRlLCBvciBvZmZzaXRlb2sgaXMgdHJ1ZQoJCQkJCQkJaWYocHJlZ19tYXRjaCgifF5odHRwOi8vIi5wcmVnX3F1b3RlKCR0aGlzLT5ob3N0KS4ifGkiLCR0aGlzLT5fcmVkaXJlY3RhZGRyKSB8fCAkdGhpcy0+b2Zmc2l0ZW9rKQoJCQkJCQkJewoJCQkJCQkJCS8qIGZvbGxvdyB0aGUgcmVkaXJlY3QgKi8KCQkJCQkJCQkkdGhpcy0+X3JlZGlyZWN0ZGVwdGgrKzsKCQkJCQkJCQkkdGhpcy0+bGFzdHJlZGlyZWN0YWRkcj0kdGhpcy0+X3JlZGlyZWN0YWRkcjsKCQkJCQkJCQkkdGhpcy0+ZmV0Y2goJHRoaXMtPl9yZWRpcmVjdGFkZHIpOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfQoKCQkJCQlpZigkdGhpcy0+X2ZyYW1lZGVwdGggPCAkdGhpcy0+bWF4ZnJhbWVzICYmIGNvdW50KCR0aGlzLT5fZnJhbWV1cmxzKSA+IDApCgkJCQkJewoJCQkJCQkkZnJhbWV1cmxzID0gJHRoaXMtPl9mcmFtZXVybHM7CgkJCQkJCSR0aGlzLT5fZnJhbWV1cmxzID0gYXJyYXkoKTsKCQkJCQkJCgkJCQkJCXdoaWxlKGxpc3QoLCRmcmFtZXVybCkgPSBlYWNoKCRmcmFtZXVybHMpKQoJCQkJCQl7CgkJCQkJCQlpZigkdGhpcy0+X2ZyYW1lZGVwdGggPCAkdGhpcy0+bWF4ZnJhbWVzKQoJCQkJCQkJewoJCQkJCQkJCSR0aGlzLT5mZXRjaCgkZnJhbWV1cmwpOwoJCQkJCQkJCSR0aGlzLT5fZnJhbWVkZXB0aCsrOwoJCQkJCQkJfQoJCQkJCQkJZWxzZQoJCQkJCQkJCWJyZWFrOwoJCQkJCQl9CgkJCQkJfQkJCQkJCgkJCQl9CgkJCQllbHNlCgkJCQl7CgkJCQkJcmV0dXJuIGZhbHNlOwoJCQkJfQoJCQkJcmV0dXJuIHRydWU7CQkJCQkKCQkJCWJyZWFrOwoJCQljYXNlICJodHRwcyI6CgkJCQlpZighJHRoaXMtPmN1cmxfcGF0aCB8fCAoIWlzX2V4ZWN1dGFibGUoJHRoaXMtPmN1cmxfcGF0aCkpKSB7CgkJCQkJJHRoaXMtPmVycm9yID0gIkJhZCBjdXJsICgkdGhpcy0+Y3VybF9wYXRoKSwgY2FuJ3QgZmV0Y2ggSFRUUFMgXG4iOwoJCQkJCXJldHVybiBmYWxzZTsKCQkJCX0KCQkJCSR0aGlzLT5ob3N0ID0gJFVSSV9QQVJUU1siaG9zdCJdOwoJCQkJaWYoIWVtcHR5KCRVUklfUEFSVFNbInBvcnQiXSkpCgkJCQkJJHRoaXMtPnBvcnQgPSAkVVJJX1BBUlRTWyJwb3J0Il07CgkJCQlpZigkdGhpcy0+X2lzcHJveHkpCgkJCQl7CgkJCQkJLy8gdXNpbmcgcHJveHksIHNlbmQgZW50aXJlIFVSSQoJCQkJCSR0aGlzLT5faHR0cHNyZXF1ZXN0KCRVUkksJFVSSSwkdGhpcy0+X2h0dHBtZXRob2QpOwoJCQkJfQoJCQkJZWxzZQoJCQkJewoJCQkJCSRwYXRoID0gJFVSSV9QQVJUU1sicGF0aCJdLigkVVJJX1BBUlRTWyJxdWVyeSJdID8gIj8iLiRVUklfUEFSVFNbInF1ZXJ5Il0gOiAiIik7CgkJCQkJLy8gbm8gcHJveHksIHNlbmQgb25seSB0aGUgcGF0aAoJCQkJCSR0aGlzLT5faHR0cHNyZXF1ZXN0KCRwYXRoLCAkVVJJLCAkdGhpcy0+X2h0dHBtZXRob2QpOwoJCQkJfQoKCQkJCWlmKCR0aGlzLT5fcmVkaXJlY3RhZGRyKQoJCQkJewoJCQkJCS8qIHVybCB3YXMgcmVkaXJlY3RlZCwgY2hlY2sgaWYgd2UndmUgaGl0IHRoZSBtYXggZGVwdGggKi8KCQkJCQlpZigkdGhpcy0+bWF4cmVkaXJzID4gJHRoaXMtPl9yZWRpcmVjdGRlcHRoKQoJCQkJCXsKCQkJCQkJLy8gb25seSBmb2xsb3cgcmVkaXJlY3QgaWYgaXQncyBvbiB0aGlzIHNpdGUsIG9yIG9mZnNpdGVvayBpcyB0cnVlCgkJCQkJCWlmKHByZWdfbWF0Y2goInxeaHR0cDovLyIucHJlZ19xdW90ZSgkdGhpcy0+aG9zdCkuInxpIiwkdGhpcy0+X3JlZGlyZWN0YWRkcikgfHwgJHRoaXMtPm9mZnNpdGVvaykKCQkJCQkJewoJCQkJCQkJLyogZm9sbG93IHRoZSByZWRpcmVjdCAqLwoJCQkJCQkJJHRoaXMtPl9yZWRpcmVjdGRlcHRoKys7CgkJCQkJCQkkdGhpcy0+bGFzdHJlZGlyZWN0YWRkcj0kdGhpcy0+X3JlZGlyZWN0YWRkcjsKCQkJCQkJCSR0aGlzLT5mZXRjaCgkdGhpcy0+X3JlZGlyZWN0YWRkcik7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgoJCQkJaWYoJHRoaXMtPl9mcmFtZWRlcHRoIDwgJHRoaXMtPm1heGZyYW1lcyAmJiBjb3VudCgkdGhpcy0+X2ZyYW1ldXJscykgPiAwKQoJCQkJewoJCQkJCSRmcmFtZXVybHMgPSAkdGhpcy0+X2ZyYW1ldXJsczsKCQkJCQkkdGhpcy0+X2ZyYW1ldXJscyA9IGFycmF5KCk7CgoJCQkJCXdoaWxlKGxpc3QoLCRmcmFtZXVybCkgPSBlYWNoKCRmcmFtZXVybHMpKQoJCQkJCXsKCQkJCQkJaWYoJHRoaXMtPl9mcmFtZWRlcHRoIDwgJHRoaXMtPm1heGZyYW1lcykKCQkJCQkJewoJCQkJCQkJJHRoaXMtPmZldGNoKCRmcmFtZXVybCk7CgkJCQkJCQkkdGhpcy0+X2ZyYW1lZGVwdGgrKzsKCQkJCQkJfQoJCQkJCQllbHNlCgkJCQkJCQlicmVhazsKCQkJCQl9CgkJCQl9CQkJCQkKCQkJCXJldHVybiB0cnVlOwkJCQkJCgkJCQlicmVhazsKCQkJZGVmYXVsdDoKCQkJCS8vIG5vdCBhIHZhbGlkIHByb3RvY29sCgkJCQkkdGhpcy0+ZXJyb3IJPQknSW52YWxpZCBwcm90b2NvbCAiJy4kVVJJX1BBUlRTWyJzY2hlbWUiXS4nIlxuJzsKCQkJCXJldHVybiBmYWxzZTsKCQkJCWJyZWFrOwoJCX0JCQoJCXJldHVybiB0cnVlOwoJfQoKCgovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qXAoJUHJpdmF0ZSBmdW5jdGlvbnMKXCo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KCQoJCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSpcCglGdW5jdGlvbjoJX3N0cmlwbGlua3MKCVB1cnBvc2U6CXN0cmlwIHRoZSBoeXBlcmxpbmtzIGZyb20gYW4gaHRtbCBkb2N1bWVudAoJSW5wdXQ6CQkkZG9jdW1lbnQJZG9jdW1lbnQgdG8gc3RyaXAuCglPdXRwdXQ6CQkkbWF0Y2gJCWFuIGFycmF5IG9mIHRoZSBsaW5rcwpcKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwoKCWZ1bmN0aW9uIF9zdHJpcGxpbmtzKCRkb2N1bWVudCkKCXsJCgkJcHJlZ19tYXRjaF9hbGwoIic8XHMqYVxzKy4qaHJlZlxzKj1ccyoJCQkjIGZpbmQgPGEgaHJlZj0KCQkJCQkJKFtcIlwnXSk/CQkJCQkjIGZpbmQgc2luZ2xlIG9yIGRvdWJsZSBxdW90ZQoJCQkJCQkoPygxKSAoLio/KVxcMSB8IChbXlxzXD5dKykpCQkjIGlmIHF1b3RlIGZvdW5kLCBtYXRjaCB1cCB0byBuZXh0IG1hdGNoaW5nCgkJCQkJCQkJCQkJCQkjIHF1b3RlLCBvdGhlcndpc2UgbWF0Y2ggdXAgdG8gbmV4dCBzcGFjZQoJCQkJCQknaXN4IiwkZG9jdW1lbnQsJGxpbmtzKTsKCQkJCQkJCgoJCS8vIGNhdGVuYXRlIHRoZSBub24tZW1wdHkgbWF0Y2hlcyBmcm9tIHRoZSBjb25kaXRpb25hbCBzdWJwYXR0ZXJuCgoJCXdoaWxlKGxpc3QoJGtleSwkdmFsKSA9IGVhY2goJGxpbmtzWzJdKSkKCQl7CgkJCWlmKCFlbXB0eSgkdmFsKSkKCQkJCSRtYXRjaFtdID0gJHZhbDsKCQl9CQkJCQoJCQoJCXdoaWxlKGxpc3QoJGtleSwkdmFsKSA9IGVhY2goJGxpbmtzWzNdKSkKCQl7CgkJCWlmKCFlbXB0eSgkdmFsKSkKCQkJCSRtYXRjaFtdID0gJHZhbDsKCQl9CQkKCQkKCQkvLyByZXR1cm4gdGhlIGxpbmtzCgkJcmV0dXJuICRtYXRjaDsKCX0KCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSpcCglGdW5jdGlvbjoJX3N0cmlwZm9ybQoJUHVycG9zZToJc3RyaXAgdGhlIGZvcm0gZWxlbWVudHMgZnJvbSBhbiBodG1sIGRvY3VtZW50CglJbnB1dDoJCSRkb2N1bWVudAlkb2N1bWVudCB0byBzdHJpcC4KCU91dHB1dDoJCSRtYXRjaAkJYW4gYXJyYXkgb2YgdGhlIGxpbmtzClwqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCgoJZnVuY3Rpb24gX3N0cmlwZm9ybSgkZG9jdW1lbnQpCgl7CQoJCXByZWdfbWF0Y2hfYWxsKCInPFwvPyhGT1JNfElOUFVUfFNFTEVDVHxURVhUQVJFQXwoT1BUSU9OKSlbXjw+XSo+KD8oMikoLiooPz08XC8/KG9wdGlvbnxzZWxlY3QpW148Pl0qPltcclxuXSopfCg/PVtcclxuXSopKXwoPz1bXHJcbl0qKSknVXNpIiwkZG9jdW1lbnQsJGVsZW1lbnRzKTsKCQkKCQkvLyBjYXRlbmF0ZSB0aGUgbWF0Y2hlcwoJCSRtYXRjaCA9IGltcGxvZGUoIlxyXG4iLCRlbGVtZW50c1swXSk7CgkJCQkKCQkvLyByZXR1cm4gdGhlIGxpbmtzCgkJcmV0dXJuICRtYXRjaDsKCX0KCgkKCQovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qXAoJRnVuY3Rpb246CV9zdHJpcHRleHQKCVB1cnBvc2U6CXN0cmlwIHRoZSB0ZXh0IGZyb20gYW4gaHRtbCBkb2N1bWVudAoJSW5wdXQ6CQkkZG9jdW1lbnQJZG9jdW1lbnQgdG8gc3RyaXAuCglPdXRwdXQ6CQkkdGV4dAkJdGhlIHJlc3VsdGluZyB0ZXh0ClwqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCgoJZnVuY3Rpb24gX3N0cmlwdGV4dCgkZG9jdW1lbnQpCgl7CgkJCgkJLy8gSSBkaWRuJ3QgdXNlIHByZWcgZXZhbCAoLy9lKSBzaW5jZSB0aGF0IGlzIG9ubHkgYXZhaWxhYmxlIGluIFBIUCA0LjAuCgkJLy8gc28sIGxpc3QgeW91ciBlbnRpdGllcyBvbmUgYnkgb25lIGhlcmUuIEkgaW5jbHVkZWQgc29tZSBvZiB0aGUKCQkvLyBtb3JlIGNvbW1vbiBvbmVzLgoJCQkJCQkJCQoJCSRzZWFyY2ggPSBhcnJheSgiJzxzY3JpcHRbXj5dKj8+Lio/PC9zY3JpcHQ+J3NpIiwJLy8gc3RyaXAgb3V0IGphdmFzY3JpcHQKCQkJCQkJIic8W1wvXCFdKj9bXjw+XSo/PidzaSIsCQkJLy8gc3RyaXAgb3V0IGh0bWwgdGFncwoJCQkJCQkiJyhbXHJcbl0pW1xzXSsnIiwJCQkJCS8vIHN0cmlwIG91dCB3aGl0ZSBzcGFjZQoJCQkJCQkiJyYocXVvdGV8IzM0KTsnaSIsCQkJCQkvLyByZXBsYWNlIGh0bWwgZW50aXRpZXMKCQkJCQkJIicmKGFtcHwjMzgpOydpIiwKCQkJCQkJIicmKGx0fCM2MCk7J2kiLAoJCQkJCQkiJyYoZ3R8IzYyKTsnaSIsCgkJCQkJCSInJihuYnNwfCMxNjApOydpIiwKCQkJCQkJIicmKGlleGNsfCMxNjEpOydpIiwKCQkJCQkJIicmKGNlbnR8IzE2Mik7J2kiLAoJCQkJCQkiJyYocG91bmR8IzE2Myk7J2kiLAoJCQkJCQkiJyYoY29weXwjMTY5KTsnaSIKCQkJCQkJKTsJCQkJCgkJJHJlcGxhY2UgPSBhcnJheSgJIiIsCgkJCQkJCQkiIiwKCQkJCQkJCSJcXDEiLAoJCQkJCQkJIlwiIiwKCQkJCQkJCSImIiwKCQkJCQkJCSI8IiwKCQkJCQkJCSI+IiwKCQkJCQkJCSIgIiwKCQkJCQkJCWNocigxNjEpLAoJCQkJCQkJY2hyKDE2MiksCgkJCQkJCQljaHIoMTYzKSwKCQkJCQkJCWNocigxNjkpKTsKCQkJCQkKCQkkdGV4dCA9IHByZWdfcmVwbGFjZSgkc2VhcmNoLCRyZXBsYWNlLCRkb2N1bWVudCk7CgkJCQkJCQkJCgkJcmV0dXJuICR0ZXh0OwoJfQoKLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09KlwKCUZ1bmN0aW9uOglfZXhwYW5kbGlua3MKCVB1cnBvc2U6CWV4cGFuZCBlYWNoIGxpbmsgaW50byBhIGZ1bGx5IHF1YWxpZmllZCBVUkwKCUlucHV0OgkJJGxpbmtzCQkJdGhlIGxpbmtzIHRvIHF1YWxpZnkKCQkJCSRVUkkJCQl0aGUgZnVsbCBVUkkgdG8gZ2V0IHRoZSBiYXNlIGZyb20KCU91dHB1dDoJCSRleHBhbmRlZExpbmtzCXRoZSBleHBhbmRlZCBsaW5rcwpcKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwoKCWZ1bmN0aW9uIF9leHBhbmRsaW5rcygkbGlua3MsJFVSSSkKCXsKCQkKCQlwcmVnX21hdGNoKCIvXlteXD9dKy8iLCRVUkksJG1hdGNoKTsKCgkJJG1hdGNoID0gcHJlZ19yZXBsYWNlKCJ8L1teXC9cLl0rXC5bXlwvXC5dKyR8IiwiIiwkbWF0Y2hbMF0pOwoJCQkJCgkJJHNlYXJjaCA9IGFycmF5KCAJInxeaHR0cDovLyIucHJlZ19xdW90ZSgkdGhpcy0+aG9zdCkuInxpIiwKCQkJCQkJCSJ8Xig/IWh0dHA6Ly8pKFwvKT8oPyFtYWlsdG86KXxpIiwKCQkJCQkJCSJ8L1wuL3wiLAoJCQkJCQkJInwvW15cL10rL1wuXC4vfCIKCQkJCQkJKTsKCQkJCQkJCgkJJHJlcGxhY2UgPSBhcnJheSgJIiIsCgkJCQkJCQkkbWF0Y2guIi8iLAoJCQkJCQkJIi8iLAoJCQkJCQkJIi8iCgkJCQkJCSk7CQkJCgkJCQkKCQkkZXhwYW5kZWRMaW5rcyA9IHByZWdfcmVwbGFjZSgkc2VhcmNoLCRyZXBsYWNlLCRsaW5rcyk7CgoJCXJldHVybiAkZXhwYW5kZWRMaW5rczsKCX0KCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSpcCglGdW5jdGlvbjoJX2h0dHByZXF1ZXN0CglQdXJwb3NlOglnbyBnZXQgdGhlIGh0dHAgZGF0YSBmcm9tIHRoZSBzZXJ2ZXIKCUlucHV0OgkJJHVybAkJdGhlIHVybCB0byBmZXRjaAoJCQkJJGZwCQkJdGhlIGN1cnJlbnQgb3BlbiBmaWxlIHBvaW50ZXIKCQkJCSRVUkkJCXRoZSBmdWxsIFVSSQoJCQkJJGJvZHkJCWJvZHkgY29udGVudHMgdG8gc2VuZCBpZiBhbnkgKFBPU1QpCglPdXRwdXQ6CQkKXCo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KCQoJZnVuY3Rpb24gX2h0dHByZXF1ZXN0KCR1cmwsJGZwLCRVUkksJGh0dHBfbWV0aG9kLCRjb250ZW50X3R5cGU9IiIsJGJvZHk9IiIpCgl7CgkJaWYoJHRoaXMtPnBhc3Njb29raWVzICYmICR0aGlzLT5fcmVkaXJlY3RhZGRyKQoJCQkkdGhpcy0+c2V0Y29va2llcygpOwoJCQkKCQkkVVJJX1BBUlRTID0gcGFyc2VfdXJsKCRVUkkpOwoJCWlmKGVtcHR5KCR1cmwpKQoJCQkkdXJsID0gIi8iOwoJCSRoZWFkZXJzID0gJGh0dHBfbWV0aG9kLiIgIi4kdXJsLiIgIi4kdGhpcy0+X2h0dHB2ZXJzaW9uLiJcclxuIjsJCQoJCWlmKCFlbXB0eSgkdGhpcy0+YWdlbnQpKQoJCQkkaGVhZGVycyAuPSAiVXNlci1BZ2VudDogIi4kdGhpcy0+YWdlbnQuIlxyXG4iOwoJCWlmKCFlbXB0eSgkdGhpcy0+aG9zdCkgJiYgIWlzc2V0KCR0aGlzLT5yYXdoZWFkZXJzWydIb3N0J10pKQoJCQkkaGVhZGVycyAuPSAiSG9zdDogIi4kdGhpcy0+aG9zdC4iXHJcbiI7CgkJaWYoIWVtcHR5KCR0aGlzLT5hY2NlcHQpKQoJCQkkaGVhZGVycyAuPSAiQWNjZXB0OiAiLiR0aGlzLT5hY2NlcHQuIlxyXG4iOwoJCQoJCWlmKCR0aGlzLT51c2VfZ3ppcCkgewoJCQkvLyBtYWtlIHN1cmUgUEhQIHdhcyBidWlsdCB3aXRoIC0td2l0aC16bGliCgkJCS8vIGFuZCB3ZSBjYW4gaGFuZGxlIGd6aXBwJ2VkIGRhdGEKCQkJaWYgKCBmdW5jdGlvbl9leGlzdHMoZ3ppbmZsYXRlKSApIHsKCQkJICAgJGhlYWRlcnMgLj0gIkFjY2VwdC1lbmNvZGluZzogZ3ppcFxyXG4iOwoJCQl9CgkJCWVsc2UgewoJCQkgICB0cmlnZ2VyX2Vycm9yKAoJCQkgICAJInVzZV9nemlwIGlzIG9uLCBidXQgUEhQIHdhcyBidWlsdCB3aXRob3V0IHpsaWIgc3VwcG9ydC4iLgoJCQkJIiAgUmVxdWVzdGluZyBmaWxlKHMpIHdpdGhvdXQgZ3ppcCBlbmNvZGluZy4iLCAKCQkJCUVfVVNFUl9OT1RJQ0UpOwoJCQl9CgkJfQoJCQoJCWlmKCFlbXB0eSgkdGhpcy0+cmVmZXJlcikpCgkJCSRoZWFkZXJzIC49ICJSZWZlcmVyOiAiLiR0aGlzLT5yZWZlcmVyLiJcclxuIjsKCQlpZighZW1wdHkoJHRoaXMtPmNvb2tpZXMpKQoJCXsJCQkKCQkJaWYoIWlzX2FycmF5KCR0aGlzLT5jb29raWVzKSkKCQkJCSR0aGlzLT5jb29raWVzID0gKGFycmF5KSR0aGlzLT5jb29raWVzOwoJCgkJCXJlc2V0KCR0aGlzLT5jb29raWVzKTsKCQkJaWYgKCBjb3VudCgkdGhpcy0+Y29va2llcykgPiAwICkgewoJCQkJJGNvb2tpZV9oZWFkZXJzIC49ICdDb29raWU6ICc7CgkJCQlmb3JlYWNoICggJHRoaXMtPmNvb2tpZXMgYXMgJGNvb2tpZUtleSA9PiAkY29va2llVmFsICkgewoJCQkJJGNvb2tpZV9oZWFkZXJzIC49ICRjb29raWVLZXkuIj0iLnVybGVuY29kZSgkY29va2llVmFsKS4iOyAiOwoJCQkJfQoJCQkJJGhlYWRlcnMgLj0gc3Vic3RyKCRjb29raWVfaGVhZGVycywwLC0yKSAuICJcclxuIjsKCQkJfSAKCQl9CgkJaWYoIWVtcHR5KCR0aGlzLT5yYXdoZWFkZXJzKSkKCQl7CgkJCWlmKCFpc19hcnJheSgkdGhpcy0+cmF3aGVhZGVycykpCgkJCQkkdGhpcy0+cmF3aGVhZGVycyA9IChhcnJheSkkdGhpcy0+cmF3aGVhZGVyczsKCQkJd2hpbGUobGlzdCgkaGVhZGVyS2V5LCRoZWFkZXJWYWwpID0gZWFjaCgkdGhpcy0+cmF3aGVhZGVycykpCgkJCQkkaGVhZGVycyAuPSAkaGVhZGVyS2V5LiI6ICIuJGhlYWRlclZhbC4iXHJcbiI7CgkJfQoJCWlmKCFlbXB0eSgkY29udGVudF90eXBlKSkgewoJCQkkaGVhZGVycyAuPSAiQ29udGVudC10eXBlOiAkY29udGVudF90eXBlIjsKCQkJaWYgKCRjb250ZW50X3R5cGUgPT0gIm11bHRpcGFydC9mb3JtLWRhdGEiKQoJCQkJJGhlYWRlcnMgLj0gIjsgYm91bmRhcnk9Ii4kdGhpcy0+X21pbWVfYm91bmRhcnk7CgkJCSRoZWFkZXJzIC49ICJcclxuIjsKCQl9CgkJaWYoIWVtcHR5KCRib2R5KSkJCgkJCSRoZWFkZXJzIC49ICJDb250ZW50LWxlbmd0aDogIi5zdHJsZW4oJGJvZHkpLiJcclxuIjsKCQlpZighZW1wdHkoJHRoaXMtPnVzZXIpIHx8ICFlbXB0eSgkdGhpcy0+cGFzcykpCQoJCQkkaGVhZGVycyAuPSAiQXV0aG9yaXphdGlvbjogQkFTSUMgIi5iYXNlNjRfZW5jb2RlKCR0aGlzLT51c2VyLiI6Ii4kdGhpcy0+cGFzcykuIlxyXG4iOwoKCQkkaGVhZGVycyAuPSAiXHJcbiI7CgkJCgkJLy8gc2V0IHRoZSByZWFkIHRpbWVvdXQgaWYgbmVlZGVkCgkJaWYgKCR0aGlzLT5yZWFkX3RpbWVvdXQgPiAwKQoJCQlzb2NrZXRfc2V0X3RpbWVvdXQoJGZwLCAkdGhpcy0+cmVhZF90aW1lb3V0KTsKCQkkdGhpcy0+dGltZWRfb3V0ID0gZmFsc2U7CgkJCgkJZndyaXRlKCRmcCwkaGVhZGVycy4kYm9keSxzdHJsZW4oJGhlYWRlcnMuJGJvZHkpKTsKCQkKCQkkdGhpcy0+X3JlZGlyZWN0YWRkciA9IGZhbHNlOwoJCXVuc2V0KCR0aGlzLT5oZWFkZXJzKTsKCQkKCQkvLyBjb250ZW50IHdhcyByZXR1cm5lZCBnemlwIGVuY29kZWQ/CgkJJGlzX2d6aXBwZWQgPSBmYWxzZTsKCQkJCQkJCgkJd2hpbGUoJGN1cnJlbnRIZWFkZXIgPSBmZ2V0cygkZnAsJHRoaXMtPl9tYXhsaW5lbGVuKSkKCQl7CgkJCWlmICgkdGhpcy0+cmVhZF90aW1lb3V0ID4gMCAmJiAkdGhpcy0+X2NoZWNrX3RpbWVvdXQoJGZwKSkKCQkJewoJCQkJJHRoaXMtPnN0YXR1cz0tMTAwOwoJCQkJcmV0dXJuIGZhbHNlOwoJCQl9CgkJCQkKCQkvLwlpZigkY3VycmVudEhlYWRlciA9PSAiXHJcbiIpCgkJCWlmKHByZWdfbWF0Y2goIi9eXHI/XG4kLyIsICRjdXJyZW50SGVhZGVyKSApCgkJCSAgICAgIGJyZWFrOwoJCQkJCQkKCQkJLy8gaWYgYSBoZWFkZXIgYmVnaW5zIHdpdGggTG9jYXRpb246IG9yIFVSSTosIHNldCB0aGUgcmVkaXJlY3QKCQkJaWYocHJlZ19tYXRjaCgiL14oTG9jYXRpb246fFVSSTopL2kiLCRjdXJyZW50SGVhZGVyKSkKCQkJewoJCQkJLy8gZ2V0IFVSTCBwb3J0aW9uIG9mIHRoZSByZWRpcmVjdAoJCQkJcHJlZ19tYXRjaCgiL14oTG9jYXRpb246fFVSSTopXHMrKC4qKS8iLGNob3AoJGN1cnJlbnRIZWFkZXIpLCRtYXRjaGVzKTsKCQkJCS8vIGxvb2sgZm9yIDovLyBpbiB0aGUgTG9jYXRpb24gaGVhZGVyIHRvIHNlZSBpZiBob3N0bmFtZSBpcyBpbmNsdWRlZAoJCQkJaWYoIXByZWdfbWF0Y2goInxcOlwvXC98IiwkbWF0Y2hlc1syXSkpCgkJCQl7CgkJCQkJLy8gbm8gaG9zdCBpbiB0aGUgcGF0aCwgc28gcHJlcGVuZAoJCQkJCSR0aGlzLT5fcmVkaXJlY3RhZGRyID0gJFVSSV9QQVJUU1sic2NoZW1lIl0uIjovLyIuJHRoaXMtPmhvc3QuIjoiLiR0aGlzLT5wb3J0OwoJCQkJCS8vIGVsaW1pbmF0ZSBkb3VibGUgc2xhc2gKCQkJCQlpZighcHJlZ19tYXRjaCgifF4vfCIsJG1hdGNoZXNbMl0pKQoJCQkJCQkJJHRoaXMtPl9yZWRpcmVjdGFkZHIgLj0gIi8iLiRtYXRjaGVzWzJdOwoJCQkJCWVsc2UKCQkJCQkJCSR0aGlzLT5fcmVkaXJlY3RhZGRyIC49ICRtYXRjaGVzWzJdOwoJCQkJfQoJCQkJZWxzZQoJCQkJCSR0aGlzLT5fcmVkaXJlY3RhZGRyID0gJG1hdGNoZXNbMl07CgkJCX0KCQkKCQkJaWYocHJlZ19tYXRjaCgifF5IVFRQL3wiLCRjdXJyZW50SGVhZGVyKSkKCQkJewogICAgICAgICAgICAgICAgaWYocHJlZ19tYXRjaCgifF5IVFRQL1teXHNdKlxzKC4qPylcc3wiLCRjdXJyZW50SGVhZGVyLCAkc3RhdHVzKSkKCQkJCXsKCQkJCQkkdGhpcy0+c3RhdHVzPSAkc3RhdHVzWzFdOwogICAgICAgICAgICAgICAgfQkJCQkKCQkJCSR0aGlzLT5yZXNwb25zZV9jb2RlID0gJGN1cnJlbnRIZWFkZXI7CgkJCX0KCQkJCgkJCWlmIChwcmVnX21hdGNoKCIvQ29udGVudC1FbmNvZGluZzogZ3ppcC8iLCAkY3VycmVudEhlYWRlcikgKSB7CgkJCQkkaXNfZ3ppcHBlZCA9IHRydWU7CgkJCX0KCQkJCgkJCSR0aGlzLT5oZWFkZXJzW10gPSAkY3VycmVudEhlYWRlcjsKCQl9CgoJCSMgJHJlc3VsdHMgPSBmcmVhZCgkZnAsICR0aGlzLT5tYXhsZW5ndGgpOwoJCSRyZXN1bHRzID0gIiI7CgkJd2hpbGUgKCAkZGF0YSA9IGZyZWFkKCRmcCwgJHRoaXMtPm1heGxlbmd0aCkgKSB7CgkJICAgICRyZXN1bHRzIC49ICRkYXRhOwoJCSAgICBpZiAoCgkJICAgICAgICBzdHJsZW4oJHJlc3VsdHMpID4gJHRoaXMtPm1heGxlbmd0aCApIHsKCQkgICAgICAgIGJyZWFrOwoJCSAgICB9CgkJfQoJCQoJCS8vIGd1bnppcAoJCWlmICggJGlzX2d6aXBwZWQgKSB7CgkJCS8vIHBlciBodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmd6ZW5jb2RlLnBocAoJCQkkcmVzdWx0cyA9IHN1YnN0cigkcmVzdWx0cywgMTApOwoJCQkkcmVzdWx0cyA9IGd6aW5mbGF0ZSgkcmVzdWx0cyk7CgkJfQoJCQoJCWlmICgkdGhpcy0+cmVhZF90aW1lb3V0ID4gMCAmJiAkdGhpcy0+X2NoZWNrX3RpbWVvdXQoJGZwKSkKCQl7CgkJCSR0aGlzLT5zdGF0dXM9LTEwMDsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQkKCQkvLyBjaGVjayBpZiB0aGVyZSBpcyBhIGEgcmVkaXJlY3QgbWV0YSB0YWcKCQkKCQlpZihwcmVnX21hdGNoKCInPG1ldGFbXHNdKmh0dHAtZXF1aXZbXj5dKj9jb250ZW50W1xzXSo9W1xzXSpbXCJcJ10/XGQrO1tcc10rVVJMW1xzXSo9W1xzXSooW15cIlwnXSo/KVtcIlwnXT8+J2kiLCRyZXN1bHRzLCRtYXRjaCkpCgkJewoJCQkkdGhpcy0+X3JlZGlyZWN0YWRkciA9ICR0aGlzLT5fZXhwYW5kbGlua3MoJG1hdGNoWzFdLCRVUkkpOwkKCQl9CgoJCS8vIGhhdmUgd2UgaGl0IG91ciBmcmFtZSBkZXB0aCBhbmQgaXMgdGhlcmUgZnJhbWUgc3JjIHRvIGZldGNoPwoJCWlmKCgkdGhpcy0+X2ZyYW1lZGVwdGggPCAkdGhpcy0+bWF4ZnJhbWVzKSAmJiBwcmVnX21hdGNoX2FsbCgiJzxmcmFtZVxzKy4qc3JjW1xzXSo9W1wnXCJdPyhbXlwnXCJcPl0rKSdpIiwkcmVzdWx0cywkbWF0Y2gpKQoJCXsKCQkJJHRoaXMtPnJlc3VsdHNbXSA9ICRyZXN1bHRzOwoJCQlmb3IoJHg9MDsgJHg8Y291bnQoJG1hdGNoWzFdKTsgJHgrKykKCQkJCSR0aGlzLT5fZnJhbWV1cmxzW10gPSAkdGhpcy0+X2V4cGFuZGxpbmtzKCRtYXRjaFsxXVskeF0sJFVSSV9QQVJUU1sic2NoZW1lIl0uIjovLyIuJHRoaXMtPmhvc3QpOwoJCX0KCQkvLyBoYXZlIHdlIGFscmVhZHkgZmV0Y2hlZCBmcmFtZWQgY29udGVudD8KCQllbHNlaWYoaXNfYXJyYXkoJHRoaXMtPnJlc3VsdHMpKQoJCQkkdGhpcy0+cmVzdWx0c1tdID0gJHJlc3VsdHM7CgkJLy8gbm8gZnJhbWVkIGNvbnRlbnQKCQllbHNlCgkJCSR0aGlzLT5yZXN1bHRzID0gJHJlc3VsdHM7CgkJCgkJcmV0dXJuIHRydWU7Cgl9CgovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qXAoJRnVuY3Rpb246CV9odHRwc3JlcXVlc3QKCVB1cnBvc2U6CWdvIGdldCB0aGUgaHR0cHMgZGF0YSBmcm9tIHRoZSBzZXJ2ZXIgdXNpbmcgY3VybAoJSW5wdXQ6CQkkdXJsCQl0aGUgdXJsIHRvIGZldGNoCgkJCQkkVVJJCQl0aGUgZnVsbCBVUkkKCQkJCSRib2R5CQlib2R5IGNvbnRlbnRzIHRvIHNlbmQgaWYgYW55IChQT1NUKQoJT3V0cHV0OgkJClwqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCgkKCWZ1bmN0aW9uIF9odHRwc3JlcXVlc3QoJHVybCwkVVJJLCRodHRwX21ldGhvZCwkY29udGVudF90eXBlPSIiLCRib2R5PSIiKQoJewoJCWlmKCR0aGlzLT5wYXNzY29va2llcyAmJiAkdGhpcy0+X3JlZGlyZWN0YWRkcikKCQkJJHRoaXMtPnNldGNvb2tpZXMoKTsKCgkJJGhlYWRlcnMgPSBhcnJheSgpOwkJCgkJCQkJCgkJJFVSSV9QQVJUUyA9IHBhcnNlX3VybCgkVVJJKTsKCQlpZihlbXB0eSgkdXJsKSkKCQkJJHVybCA9ICIvIjsKCQkvLyBHRVQgLi4uIGhlYWRlciBub3QgbmVlZGVkIGZvciBjdXJsCgkJLy8kaGVhZGVyc1tdID0gJGh0dHBfbWV0aG9kLiIgIi4kdXJsLiIgIi4kdGhpcy0+X2h0dHB2ZXJzaW9uOwkJCgkJaWYoIWVtcHR5KCR0aGlzLT5hZ2VudCkpCgkJCSRoZWFkZXJzW10gPSAiVXNlci1BZ2VudDogIi4kdGhpcy0+YWdlbnQ7CgkJaWYoIWVtcHR5KCR0aGlzLT5ob3N0KSkKCQkJJGhlYWRlcnNbXSA9ICJIb3N0OiAiLiR0aGlzLT5ob3N0OwoJCWlmKCFlbXB0eSgkdGhpcy0+YWNjZXB0KSkKCQkJJGhlYWRlcnNbXSA9ICJBY2NlcHQ6ICIuJHRoaXMtPmFjY2VwdDsKCQlpZighZW1wdHkoJHRoaXMtPnJlZmVyZXIpKQoJCQkkaGVhZGVyc1tdID0gIlJlZmVyZXI6ICIuJHRoaXMtPnJlZmVyZXI7CgkJaWYoIWVtcHR5KCR0aGlzLT5jb29raWVzKSkKCQl7CQkJCgkJCWlmKCFpc19hcnJheSgkdGhpcy0+Y29va2llcykpCgkJCQkkdGhpcy0+Y29va2llcyA9IChhcnJheSkkdGhpcy0+Y29va2llczsKCQoJCQlyZXNldCgkdGhpcy0+Y29va2llcyk7CgkJCWlmICggY291bnQoJHRoaXMtPmNvb2tpZXMpID4gMCApIHsKCQkJCSRjb29raWVfc3RyID0gJ0Nvb2tpZTogJzsKCQkJCWZvcmVhY2ggKCAkdGhpcy0+Y29va2llcyBhcyAkY29va2llS2V5ID0+ICRjb29raWVWYWwgKSB7CgkJCQkkY29va2llX3N0ciAuPSAkY29va2llS2V5LiI9Ii51cmxlbmNvZGUoJGNvb2tpZVZhbCkuIjsgIjsKCQkJCX0KCQkJCSRoZWFkZXJzW10gPSBzdWJzdHIoJGNvb2tpZV9zdHIsMCwtMik7CgkJCX0KCQl9CgkJaWYoIWVtcHR5KCR0aGlzLT5yYXdoZWFkZXJzKSkKCQl7CgkJCWlmKCFpc19hcnJheSgkdGhpcy0+cmF3aGVhZGVycykpCgkJCQkkdGhpcy0+cmF3aGVhZGVycyA9IChhcnJheSkkdGhpcy0+cmF3aGVhZGVyczsKCQkJd2hpbGUobGlzdCgkaGVhZGVyS2V5LCRoZWFkZXJWYWwpID0gZWFjaCgkdGhpcy0+cmF3aGVhZGVycykpCgkJCQkkaGVhZGVyc1tdID0gJGhlYWRlcktleS4iOiAiLiRoZWFkZXJWYWw7CgkJfQoJCWlmKCFlbXB0eSgkY29udGVudF90eXBlKSkgewoJCQlpZiAoJGNvbnRlbnRfdHlwZSA9PSAibXVsdGlwYXJ0L2Zvcm0tZGF0YSIpCgkJCQkkaGVhZGVyc1tdID0gIkNvbnRlbnQtdHlwZTogJGNvbnRlbnRfdHlwZTsgYm91bmRhcnk9Ii4kdGhpcy0+X21pbWVfYm91bmRhcnk7CgkJCWVsc2UKCQkJCSRoZWFkZXJzW10gPSAiQ29udGVudC10eXBlOiAkY29udGVudF90eXBlIjsKCQl9CgkJaWYoIWVtcHR5KCRib2R5KSkJCgkJCSRoZWFkZXJzW10gPSAiQ29udGVudC1sZW5ndGg6ICIuc3RybGVuKCRib2R5KTsKCQlpZighZW1wdHkoJHRoaXMtPnVzZXIpIHx8ICFlbXB0eSgkdGhpcy0+cGFzcykpCQoJCQkkaGVhZGVyc1tdID0gIkF1dGhvcml6YXRpb246IEJBU0lDICIuYmFzZTY0X2VuY29kZSgkdGhpcy0+dXNlci4iOiIuJHRoaXMtPnBhc3MpOwoJCQkKCQlmb3IoJGN1cnJfaGVhZGVyID0gMDsgJGN1cnJfaGVhZGVyIDwgY291bnQoJGhlYWRlcnMpOyAkY3Vycl9oZWFkZXIrKykgewoJCQkkY21kbGluZV9wYXJhbXMgLj0gIiAtSCBcIiIuJGhlYWRlcnNbJGN1cnJfaGVhZGVyXS4iXCIiOwoJCX0KCQkJICAJICAgICAgICAgICAgICAgICAgICAgICAgIAoJCWlmKCFlbXB0eSgkYm9keSkpCgkJCSRjbWRsaW5lX3BhcmFtcyAuPSAiIC1kIFwiJGJvZHlcIiI7CgkJCgkJaWYoJHRoaXMtPnJlYWRfdGltZW91dCA+IDApCgkJCSRjbWRsaW5lX3BhcmFtcyAuPSAiIC1tICIuJHRoaXMtPnJlYWRfdGltZW91dDsKCQkKCQkkaGVhZGVyZmlsZSA9IHVuaXFpZCh0aW1lKCkpOwoJCQoJCSMgYWNjZXB0IHNlbGYtc2lnbmVkIGNlcnRzCgkJJGNtZGxpbmVfcGFyYW1zIC49ICIgLWsiOyAKCQlleGVjKCR0aGlzLT5jdXJsX3BhdGguIiAtRCBcIi90bXAvJGhlYWRlcmZpbGVcIiIuZXNjYXBlc2hlbGxjbWQoJGNtZGxpbmVfcGFyYW1zKS4iICIuZXNjYXBlc2hlbGxjbWQoJFVSSSksJHJlc3VsdHMsJHJldHVybik7CgkJCgkJaWYoJHJldHVybikKCQl7CgkJCSR0aGlzLT5lcnJvciA9ICJFcnJvcjogY1VSTCBjb3VsZCBub3QgcmV0cmlldmUgdGhlIGRvY3VtZW50LCBlcnJvciAkcmV0dXJuLiI7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJCQoJCQkKCQkkcmVzdWx0cyA9IGltcGxvZGUoIlxyXG4iLCRyZXN1bHRzKTsKCQkKCQkkcmVzdWx0X2hlYWRlcnMgPSBmaWxlKCIvdG1wLyRoZWFkZXJmaWxlIik7CgkJCQkJCQoJCSR0aGlzLT5fcmVkaXJlY3RhZGRyID0gZmFsc2U7CgkJdW5zZXQoJHRoaXMtPmhlYWRlcnMpOwoJCQkJCQkKCQlmb3IoJGN1cnJlbnRIZWFkZXIgPSAwOyAkY3VycmVudEhlYWRlciA8IGNvdW50KCRyZXN1bHRfaGVhZGVycyk7ICRjdXJyZW50SGVhZGVyKyspCgkJewoJCQkKCQkJLy8gaWYgYSBoZWFkZXIgYmVnaW5zIHdpdGggTG9jYXRpb246IG9yIFVSSTosIHNldCB0aGUgcmVkaXJlY3QKCQkJaWYocHJlZ19tYXRjaCgiL14oTG9jYXRpb246IHxVUkk6ICkvaSIsJHJlc3VsdF9oZWFkZXJzWyRjdXJyZW50SGVhZGVyXSkpCgkJCXsKCQkJCS8vIGdldCBVUkwgcG9ydGlvbiBvZiB0aGUgcmVkaXJlY3QKCQkJCXByZWdfbWF0Y2goIi9eKExvY2F0aW9uOiB8VVJJOikoLiopLyIsY2hvcCgkcmVzdWx0X2hlYWRlcnNbJGN1cnJlbnRIZWFkZXJdKSwkbWF0Y2hlcyk7CgkJCQkvLyBsb29rIGZvciA6Ly8gaW4gdGhlIExvY2F0aW9uIGhlYWRlciB0byBzZWUgaWYgaG9zdG5hbWUgaXMgaW5jbHVkZWQKCQkJCWlmKCFwcmVnX21hdGNoKCJ8XDpcL1wvfCIsJG1hdGNoZXNbMl0pKQoJCQkJewoJCQkJCS8vIG5vIGhvc3QgaW4gdGhlIHBhdGgsIHNvIHByZXBlbmQKCQkJCQkkdGhpcy0+X3JlZGlyZWN0YWRkciA9ICRVUklfUEFSVFNbInNjaGVtZSJdLiI6Ly8iLiR0aGlzLT5ob3N0LiI6Ii4kdGhpcy0+cG9ydDsKCQkJCQkvLyBlbGltaW5hdGUgZG91YmxlIHNsYXNoCgkJCQkJaWYoIXByZWdfbWF0Y2goInxeL3wiLCRtYXRjaGVzWzJdKSkKCQkJCQkJCSR0aGlzLT5fcmVkaXJlY3RhZGRyIC49ICIvIi4kbWF0Y2hlc1syXTsKCQkJCQllbHNlCgkJCQkJCQkkdGhpcy0+X3JlZGlyZWN0YWRkciAuPSAkbWF0Y2hlc1syXTsKCQkJCX0KCQkJCWVsc2UKCQkJCQkkdGhpcy0+X3JlZGlyZWN0YWRkciA9ICRtYXRjaGVzWzJdOwoJCQl9CgkJCgkJCWlmKHByZWdfbWF0Y2goInxeSFRUUC98IiwkcmVzdWx0X2hlYWRlcnNbJGN1cnJlbnRIZWFkZXJdKSkKCQkJewoJCQkgICAgJHRoaXMtPnJlc3BvbnNlX2NvZGUgPSAkcmVzdWx0X2hlYWRlcnNbJGN1cnJlbnRIZWFkZXJdOwoJCQkgICAgaWYocHJlZ19tYXRjaCgifF5IVFRQL1teXHNdKlxzKC4qPylcc3wiLCR0aGlzLT5yZXNwb25zZV9jb2RlLCAkbWF0Y2gpKQoJCQkgICAgewoJCQkJJHRoaXMtPnN0YXR1cz0gJG1hdGNoWzFdOwogICAgICAgICAgICAgICAgCSAgICB9CgkJCX0KCQkJJHRoaXMtPmhlYWRlcnNbXSA9ICRyZXN1bHRfaGVhZGVyc1skY3VycmVudEhlYWRlcl07CgkJfQoKCQkvLyBjaGVjayBpZiB0aGVyZSBpcyBhIGEgcmVkaXJlY3QgbWV0YSB0YWcKCQkKCQlpZihwcmVnX21hdGNoKCInPG1ldGFbXHNdKmh0dHAtZXF1aXZbXj5dKj9jb250ZW50W1xzXSo9W1xzXSpbXCJcJ10/XGQrO1tcc10rVVJMW1xzXSo9W1xzXSooW15cIlwnXSo/KVtcIlwnXT8+J2kiLCRyZXN1bHRzLCRtYXRjaCkpCgkJewoJCQkkdGhpcy0+X3JlZGlyZWN0YWRkciA9ICR0aGlzLT5fZXhwYW5kbGlua3MoJG1hdGNoWzFdLCRVUkkpOwkKCQl9CgoJCS8vIGhhdmUgd2UgaGl0IG91ciBmcmFtZSBkZXB0aCBhbmQgaXMgdGhlcmUgZnJhbWUgc3JjIHRvIGZldGNoPwoJCWlmKCgkdGhpcy0+X2ZyYW1lZGVwdGggPCAkdGhpcy0+bWF4ZnJhbWVzKSAmJiBwcmVnX21hdGNoX2FsbCgiJzxmcmFtZVxzKy4qc3JjW1xzXSo9W1wnXCJdPyhbXlwnXCJcPl0rKSdpIiwkcmVzdWx0cywkbWF0Y2gpKQoJCXsKCQkJJHRoaXMtPnJlc3VsdHNbXSA9ICRyZXN1bHRzOwoJCQlmb3IoJHg9MDsgJHg8Y291bnQoJG1hdGNoWzFdKTsgJHgrKykKCQkJCSR0aGlzLT5fZnJhbWV1cmxzW10gPSAkdGhpcy0+X2V4cGFuZGxpbmtzKCRtYXRjaFsxXVskeF0sJFVSSV9QQVJUU1sic2NoZW1lIl0uIjovLyIuJHRoaXMtPmhvc3QpOwoJCX0KCQkvLyBoYXZlIHdlIGFscmVhZHkgZmV0Y2hlZCBmcmFtZWQgY29udGVudD8KCQllbHNlaWYoaXNfYXJyYXkoJHRoaXMtPnJlc3VsdHMpKQoJCQkkdGhpcy0+cmVzdWx0c1tdID0gJHJlc3VsdHM7CgkJLy8gbm8gZnJhbWVkIGNvbnRlbnQKCQllbHNlCgkJCSR0aGlzLT5yZXN1bHRzID0gJHJlc3VsdHM7CgoJCXVubGluaygiL3RtcC8kaGVhZGVyZmlsZSIpOwoJCQoJCXJldHVybiB0cnVlOwoJfQoKLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09KlwKCUZ1bmN0aW9uOglzZXRjb29raWVzKCkKCVB1cnBvc2U6CXNldCBjb29raWVzIGZvciBhIHJlZGlyZWN0aW9uClwqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCgkKCWZ1bmN0aW9uIHNldGNvb2tpZXMoKQoJewoJCWZvcigkeD0wOyAkeDxjb3VudCgkdGhpcy0+aGVhZGVycyk7ICR4KyspCgkJewoJCWlmKHByZWdfbWF0Y2goIi9ec2V0LWNvb2tpZTpbXHNdKyhbXj1dKyk9KFteO10rKS9pIiwgJHRoaXMtPmhlYWRlcnNbJHhdLCRtYXRjaCkpCgkJCSR0aGlzLT5jb29raWVzWyRtYXRjaFsxXV0gPSAkbWF0Y2hbMl07CgkJfQoJfQoKCQovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qXAoJRnVuY3Rpb246CV9jaGVja190aW1lb3V0CglQdXJwb3NlOgljaGVja3Mgd2hldGhlciB0aW1lb3V0IGhhcyBvY2N1cnJlZAoJSW5wdXQ6CQkkZnAJZmlsZSBwb2ludGVyClwqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCgoJZnVuY3Rpb24gX2NoZWNrX3RpbWVvdXQoJGZwKQoJewoJCWlmICgkdGhpcy0+cmVhZF90aW1lb3V0ID4gMCkgewoJCQkkZnBfc3RhdHVzID0gc29ja2V0X2dldF9zdGF0dXMoJGZwKTsKCQkJaWYgKCRmcF9zdGF0dXNbInRpbWVkX291dCJdKSB7CgkJCQkkdGhpcy0+dGltZWRfb3V0ID0gdHJ1ZTsKCQkJCXJldHVybiB0cnVlOwoJCQl9CgkJfQoJCXJldHVybiBmYWxzZTsKCX0KCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSpcCglGdW5jdGlvbjoJX2Nvbm5lY3QKCVB1cnBvc2U6CW1ha2UgYSBzb2NrZXQgY29ubmVjdGlvbgoJSW5wdXQ6CQkkZnAJZmlsZSBwb2ludGVyClwqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCgkKCWZ1bmN0aW9uIF9jb25uZWN0KCYkZnApCgl7CgkJaWYoIWVtcHR5KCR0aGlzLT5wcm94eV9ob3N0KSAmJiAhZW1wdHkoJHRoaXMtPnByb3h5X3BvcnQpKQoJCQl7CgkJCQkkdGhpcy0+X2lzcHJveHkgPSB0cnVlOwoJCQkJJGhvc3QgPSAkdGhpcy0+cHJveHlfaG9zdDsKCQkJCSRwb3J0ID0gJHRoaXMtPnByb3h5X3BvcnQ7CgkJCX0KCQllbHNlCgkJewoJCQkkaG9zdCA9ICR0aGlzLT5ob3N0OwoJCQkkcG9ydCA9ICR0aGlzLT5wb3J0OwoJCX0KCQoJCSR0aGlzLT5zdGF0dXMgPSAwOwoJCQoJCWlmKCRmcCA9IGZzb2Nrb3BlbigKCQkJCQkkaG9zdCwKCQkJCQkkcG9ydCwKCQkJCQkkZXJybm8sCgkJCQkJJGVycnN0ciwKCQkJCQkkdGhpcy0+X2ZwX3RpbWVvdXQKCQkJCQkpKQoJCXsKCQkJLy8gc29ja2V0IGNvbm5lY3Rpb24gc3VjY2VlZGVkCgoJCQlyZXR1cm4gdHJ1ZTsKCQl9CgkJZWxzZQoJCXsKCQkJLy8gc29ja2V0IGNvbm5lY3Rpb24gZmFpbGVkCgkJCSR0aGlzLT5zdGF0dXMgPSAkZXJybm87CgkJCXN3aXRjaCgkZXJybm8pCgkJCXsKCQkJCWNhc2UgLTM6CgkJCQkJJHRoaXMtPmVycm9yPSJzb2NrZXQgY3JlYXRpb24gZmFpbGVkICgtMykiOwoJCQkJY2FzZSAtNDoKCQkJCQkkdGhpcy0+ZXJyb3I9ImRucyBsb29rdXAgZmFpbHVyZSAoLTQpIjsKCQkJCWNhc2UgLTU6CgkJCQkJJHRoaXMtPmVycm9yPSJjb25uZWN0aW9uIHJlZnVzZWQgb3IgdGltZWQgb3V0ICgtNSkiOwoJCQkJZGVmYXVsdDoKCQkJCQkkdGhpcy0+ZXJyb3I9ImNvbm5lY3Rpb24gZmFpbGVkICgiLiRlcnJuby4iKSI7CgkJCX0KCQkJcmV0dXJuIGZhbHNlOwoJCX0KCX0KLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09KlwKCUZ1bmN0aW9uOglfZGlzY29ubmVjdAoJUHVycG9zZToJZGlzY29ubmVjdCBhIHNvY2tldCBjb25uZWN0aW9uCglJbnB1dDoJCSRmcAlmaWxlIHBvaW50ZXIKXCo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KCQoJZnVuY3Rpb24gX2Rpc2Nvbm5lY3QoJGZwKQoJewoJCXJldHVybihmY2xvc2UoJGZwKSk7Cgl9CgoJCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSpcCglGdW5jdGlvbjoJX3ByZXBhcmVfcG9zdF9ib2R5CglQdXJwb3NlOglQcmVwYXJlIHBvc3QgYm9keSBhY2NvcmRpbmcgdG8gZW5jb2RpbmcgdHlwZQoJSW5wdXQ6CQkkZm9ybXZhcnMgIC0gZm9ybSB2YXJpYWJsZXMKCQkJCSRmb3JtZmlsZXMgLSBmb3JtIHVwbG9hZCBmaWxlcwoJT3V0cHV0OgkJcG9zdCBib2R5ClwqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCgkKCWZ1bmN0aW9uIF9wcmVwYXJlX3Bvc3RfYm9keSgkZm9ybXZhcnMsICRmb3JtZmlsZXMpCgl7CgkJc2V0dHlwZSgkZm9ybXZhcnMsICJhcnJheSIpOwoJCXNldHR5cGUoJGZvcm1maWxlcywgImFycmF5Iik7CgoJCWlmIChjb3VudCgkZm9ybXZhcnMpID09IDAgJiYgY291bnQoJGZvcm1maWxlcykgPT0gMCkKCQkJcmV0dXJuOwoJCQoJCXN3aXRjaCAoJHRoaXMtPl9zdWJtaXRfdHlwZSkgewoJCQljYXNlICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiOgoJCQkJcmVzZXQoJGZvcm12YXJzKTsKCQkJCXdoaWxlKGxpc3QoJGtleSwkdmFsKSA9IGVhY2goJGZvcm12YXJzKSkgewoJCQkJCWlmIChpc19hcnJheSgkdmFsKSB8fCBpc19vYmplY3QoJHZhbCkpIHsKCQkJCQkJd2hpbGUgKGxpc3QoJGN1cl9rZXksICRjdXJfdmFsKSA9IGVhY2goJHZhbCkpIHsKCQkJCQkJCSRwb3N0ZGF0YSAuPSB1cmxlbmNvZGUoJGtleSkuIltdPSIudXJsZW5jb2RlKCRjdXJfdmFsKS4iJiI7CgkJCQkJCX0KCQkJCQl9IGVsc2UKCQkJCQkJJHBvc3RkYXRhIC49IHVybGVuY29kZSgka2V5KS4iPSIudXJsZW5jb2RlKCR2YWwpLiImIjsKCQkJCX0KCQkJCWJyZWFrOwoKCQkJY2FzZSAibXVsdGlwYXJ0L2Zvcm0tZGF0YSI6CgkJCQkkdGhpcy0+X21pbWVfYm91bmRhcnkgPSAiU25vb3B5Ii5tZDUodW5pcWlkKG1pY3JvdGltZSgpKSk7CgkJCQkKCQkJCXJlc2V0KCRmb3JtdmFycyk7CgkJCQl3aGlsZShsaXN0KCRrZXksJHZhbCkgPSBlYWNoKCRmb3JtdmFycykpIHsKCQkJCQlpZiAoaXNfYXJyYXkoJHZhbCkgfHwgaXNfb2JqZWN0KCR2YWwpKSB7CgkJCQkJCXdoaWxlIChsaXN0KCRjdXJfa2V5LCAkY3VyX3ZhbCkgPSBlYWNoKCR2YWwpKSB7CgkJCQkJCQkkcG9zdGRhdGEgLj0gIi0tIi4kdGhpcy0+X21pbWVfYm91bmRhcnkuIlxyXG4iOwoJCQkJCQkJJHBvc3RkYXRhIC49ICJDb250ZW50LURpc3Bvc2l0aW9uOiBmb3JtLWRhdGE7IG5hbWU9XCIka2V5XFtcXVwiXHJcblxyXG4iOwoJCQkJCQkJJHBvc3RkYXRhIC49ICIkY3VyX3ZhbFxyXG4iOwoJCQkJCQl9CgkJCQkJfSBlbHNlIHsKCQkJCQkJJHBvc3RkYXRhIC49ICItLSIuJHRoaXMtPl9taW1lX2JvdW5kYXJ5LiJcclxuIjsKCQkJCQkJJHBvc3RkYXRhIC49ICJDb250ZW50LURpc3Bvc2l0aW9uOiBmb3JtLWRhdGE7IG5hbWU9XCIka2V5XCJcclxuXHJcbiI7CgkJCQkJCSRwb3N0ZGF0YSAuPSAiJHZhbFxyXG4iOwoJCQkJCX0KCQkJCX0KCQkJCQoJCQkJcmVzZXQoJGZvcm1maWxlcyk7CgkJCQl3aGlsZSAobGlzdCgkZmllbGRfbmFtZSwgJGZpbGVfbmFtZXMpID0gZWFjaCgkZm9ybWZpbGVzKSkgewoJCQkJCXNldHR5cGUoJGZpbGVfbmFtZXMsICJhcnJheSIpOwoJCQkJCXdoaWxlIChsaXN0KCwgJGZpbGVfbmFtZSkgPSBlYWNoKCRmaWxlX25hbWVzKSkgewoJCQkJCQlpZiAoIWlzX3JlYWRhYmxlKCRmaWxlX25hbWUpKSBjb250aW51ZTsKCgkJCQkJCSRmcCA9IGZvcGVuKCRmaWxlX25hbWUsICJyIik7CgkJCQkJCSRmaWxlX2NvbnRlbnQgPSBmcmVhZCgkZnAsIGZpbGVzaXplKCRmaWxlX25hbWUpKTsKCQkJCQkJZmNsb3NlKCRmcCk7CgkJCQkJCSRiYXNlX25hbWUgPSBiYXNlbmFtZSgkZmlsZV9uYW1lKTsKCgkJCQkJCSRwb3N0ZGF0YSAuPSAiLS0iLiR0aGlzLT5fbWltZV9ib3VuZGFyeS4iXHJcbiI7CgkJCQkJCSRwb3N0ZGF0YSAuPSAiQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPVwiJGZpZWxkX25hbWVcIjsgZmlsZW5hbWU9XCIkYmFzZV9uYW1lXCJcclxuXHJcbiI7CgkJCQkJCSRwb3N0ZGF0YSAuPSAiJGZpbGVfY29udGVudFxyXG4iOwoJCQkJCX0KCQkJCX0KCQkJCSRwb3N0ZGF0YSAuPSAiLS0iLiR0aGlzLT5fbWltZV9ib3VuZGFyeS4iLS1cclxuIjsKCQkJCWJyZWFrOwoJCX0KCgkJcmV0dXJuICRwb3N0ZGF0YTsKCX0KfQoKPz4K";s:39:"presibourse/magpie/htdocs/cookbook.html";s:8260:"PGh0bWw+Cgk8aGVhZD4KCTx0aXRsZT5NYWdpZSBSU1MgUmVjaXBlczogIFNpbXBsZSBQSFAgUlNTIEhvdyBUbzwvdGl0bGU+Cgk8c3R5bGU+Cglib2R5IHsKCQlmb250LWZhbWlseTp0cmVidWNoZXQgTVMsIHRyZWJ1Y2hldCwgdmVyZGFuYSwgYXJpYWwsIHNhbnMtc2VyaWY7IAoJCWZvbnQtc2l6ZTogMTFweDsgCgkKCX0KCQoJcHJlIHsgZm9udC1mYW1pbHk6ICJDb3VyaWVyIE5ldyIsIG1vbm9zcGFjZTsgCiAgICAgIHBhZGRpbmc6IDFlbTsgCiAgICAgIG1hcmdpbjogMC4yZW0gMi41ZW0gMC4yZW0gM2VtOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZlZmY1OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2ZjZmNmOwogICAgICB3aGl0ZS1zcGFjZTogcHJlOwogCX0KCgk8L3N0eWxlPgoJPC9oZWFkPgoJPGJvZHk+CjxwPgo8aDE+TWFncGllUlNTIFJlY2lwZXM6ICBDb29raW5nIHdpdGggQ29yYmllczwvaDE+Cgo8ZGl2IGFsaWduPSJjZW50ZXIiPjxoMz48ZW0+IkZvdXIgYW5kIHR3ZW50eSBibGFja2JpcmRzIGJha2VkIGluIGEKcGllLiI8L2VtPjwvaDM+PC9kaXY+CjwvcD4KPHA+CjxvbD4KPGxpPjxhIGhyZWY9IiNsaW1pdCI+TGltaXQgdGhlIE51bWJlciBvZiBIZWFkbGluZXMoYWthIEl0ZW1zKSBSZXR1cm5lZDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iI2Vycm9yX21lc3NhZ2UiPkRpc3BsYXkgYSBDdXN0b20gRXJyb3IgTWVzc2FnZSBpZiBTb21ldGhpbmcgR29lcwpXcm9uZzwvYT48L2xpPgo8bGk+PGEgaHJlZj0iI3dyaXRlX3JzcyI+R2VuZXJhdGUgYSBOZXcgUlNTIEZlZWQ8L2E+PC9saT4KPGxpPjxhIGhyZWY9IiNieV9kYXRlIj5EaXNwbGF5IEhlYWRsaW5lcyBNb3JlIFJlY2VudCB0aGVuIFggRGF0ZTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iI2Zyb21fZmlsZSI+UGFyc2UgYSBMb2NhbCBGaWxlIENvbnRhaW5pbmcgUlNTPC9hPjwvbGk+Cgo8L29sPgo8L3A+Cgo8YSBuYW1lPSJsaW1pdCI+PC9hPjxoMj4xLiBMaW1pdCB0aGUgTnVtYmVyIG9mIEhlYWRsaW5lcyhha2EgSXRlbXMpIFJldHVybmVkLjwvaDI+Cgo8aDM+UHJvYmxlbTo8L2gzPgoKWW91IHdhbnQgdG8gZGlzcGxheSB0aGUgMTAgKG9yIDMgb3Igd2hhdGV2ZXIpIG1vc3QgcmVjZW50IGhlYWRsaW5lcywgYnV0IHRoZSBSU1MgZmVlZApjb250YWlucyAxNS4KCjxoMz5Tb2x1dGlvbjo8L2gzPgoKPHByZT4KJG51bV9pdGVtcyA9IDEwOwokcnNzID0gZmV0Y2hfcnNzKCR1cmwpOwoKJGl0ZW1zID0gYXJyYXlfc2xpY2UoJHJzcy0+aXRlbXMsIDAsICRudW1faXRlbXMpOwoKZm9yZWFjaCAoICRpdGVtcyBhcyAkaXRlbSApIHsKPC9wcmU+CjxoMz5EaXNjdXNzaW9uOjwvaDM+CgpSYXRoZXIgdGhlbiB0cnlpbmcgdG8gbGltaXQgdGhlIG51bWJlciBvZiBpdGVtcyBNYWdwaWUgcGFyc2VzLCBhIG11Y2ggc2ltcGxlciwKYW5kIG1vcmUgZmxleGlibGUgYXBwcm9hY2ggaXMgdG8gdGFrZSBhICJzbGljZSIgb2YgdGhlIGFycmF5IG9mIGl0ZW1zLiAgQW5kCmFycmF5X3NsaWNlKCkgaXMgc21hcnQgZW5vdWdoIHRvIGRvIHRoZSByaWdodCB0aGluZyBpZiB0aGUgZmVlZCBoYXMgbGVzcyBpdGVtcwp0aGVuICRudW1faXRlbXMuCgo8aDM+U2VlOjwvaDM+IDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9hcnJheV9zbGljZSI+aHR0cDovL3d3dy5waHAubmV0L2FycmF5X3NsaWNlPC9hPgo8L3A+Cgo8YSBuYW1lPSJlcnJvcl9tZXNzYWdlIj48L2E+PGgyPjIuIERpc3BsYXkgYSBDdXN0b20gRXJyb3IgTWVzc2FnZSBpZiBTb21ldGhpbmcgR29lcyBXcm9uZzwvaDI+Cgo8aDM+UHJvYmxlbTo8L2gzPgoKWW91IGRvbid0IHdhbnQgTWFncGllJ3MgZXJyb3IgbWVzc2FnZXMgc2hvd2luZyB1cCBpZiBzb21ldGhpbmcgZ29lcyB3cm9uZy4KCjxoMz5Tb2x1dGlvbjo8L2gzPgo8cHJlPgojIE1hZ3BpZSB0aHJvd3MgVVNFUl9XQVJOSU5HUyBvbmx5CiMgc28geW91IGNhbiBjbG9hayB0aGVzZSwgYnkgb25seSBzaG93aW5nIEVSUk9ScwplcnJvcl9yZXBvcnRpbmcoRV9FUlJPUik7CgojIGNoZWNrIHRoZSByZXR1cm4gdmFsdWUgb2YgZmV0Y2hfcnNzKCkKCiRyc3MgPSBmZXRjaF9yc3MoJHVybCk7CgppZiAoICRyc3MgKSB7Ci4uLmRpc3BsYXkgcnNzIGZlZWQuLi4KfQplbHNlIHsKICAgZWNobyAiQW4gZXJyb3Igb2NjdXJlZCEgICIgLgogICAgICAgICJDb25zaWRlciBkb25hdGluZyBtb3JlICQkJCBmb3IgcmVzdG9yYXRpb24gb2Ygc2VydmljZXMuIiAuCiAgICAgICAgIiZsdDticiZndDtFcnJvciBNZXNzYWdlOiAiIC4gbWFncGllX2Vycm9yKCk7Cn0KPC9wcmU+CjxoMz5EaXNjdXNzaW9uOjwvaDM+CgpNYWdwaWVSU1MgdHJpZ2dlcnMgYSB3YXJuaW5nIGluIGEgbnVtYmVyIG9mIGNpcmN1bXN0YW5jZXMuICBUaGUgMiBtb3N0IGNvbW1vbgpjaXJjdW1zdGFuY2VzIGFyZTogIGlmIHRoZSBzcGVjaWZpZWQgUlNTIGZpbGUgaXNuJ3QgcHJvcGVybHkgZm9ybWVkICh1c3VhbGx5CmJlY2F1c2UgaXQgaW5jbHVkZXMgaWxsZWdhbCBIVE1MKSwgb3IgaWYgTWFncGllIGNhbid0IGRvd25sb2FkIHRoZSByZW1vdGUgUlNTCmZpbGUsIGFuZCB0aGVyZSBpcyBubyBjYWNoZWQgdmVyc2lvbi4gIAoKSWYgeW91IGRvbid0IHdhbnQgeW91ciB1c2VycyB0byBzZWUgdGhlc2Ugd2FybmluZ3MgY2hhbmdlIHlvdXIgZXJyb3JfcmVwb3J0aW5nCnNldHRpbmdzIHRvIG9ubHkgZGlzcGxheSBFUlJPUnMuPGJyIC8+CkFub3RoZXIgb3B0aW9uIGlzIHRvIHR1cm4gb2ZmIGRpc3BsYXlfZXJyb3IsCnNvIHRoYXQgV0FSTklOR3MsIGFuZCBOT1RJQ0VzIHN0aWxsIGdvIHRvIHRoZSBlcnJvcl9sb2cgYnV0IG5vdCB0byB0aGUgd2VicGFnZXMuCgpZb3UgY2FuIGRvIHRoaXMgd2l0aDoKCjxwcmU+CiMgeW91IGNhbiBhbHNvIGRvIHRoaXMgaW4geW91ciBwaHAuaW5pIGZpbGUKaW5pX3NldCgnZGlzcGxheV9lcnJvcnMnLCAwKTsKPC9wcmU+Cgo8aDM+U2VlOjwvaDM+CjxhCmhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9lcnJvcl9yZXBvcnRpbmciPmh0dHA6Ly93d3cucGhwLm5ldC9lcnJvcl9yZXBvcnRpbmc8L2E+LDxicgovPgo8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvaW5pX3NldCI+aHR0cDovL3d3dy5waHAubmV0L2luaV9zZXQ8L2E+LCA8YnIgLz4KPGEKaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9yZWYuZXJyb3JmdW5jLnBocCI+aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9yZWYuZXJyb3JmdW5jLnBocDwvYT48YnIKLz4KCjxhIG5hbWU9IndyaXRlX3JzcyI+PC9hPjxoMj4zLiBHZW5lcmF0ZSBhIE5ldyBSU1MgRmVlZDwvaDI+Cgo8aDM+UHJvYmxlbTo8L2gzPgoKQ3JlYXRlIGFuIFJTUyBmZWVkIGZvciBvdGhlciBwZW9wbGUgdG8gdXNlLgoKPGgzPlNvbHV0aW9uOjwvaDM+CgpVc2UgVXNlZnVsIEluYydzIDxhIGhyZWY9Imh0dHA6Ly91c2VmdWxpbmMuY29tL3Jzcy9yc3N3cml0ZXIvIj5SU1NXcml0ZXI8L2E+LgoKPGgzPkRpc2N1c3Npb246PC9oMz4KCkFuIGV4YW1wbGUgb2YgdHVybmluZyBhIE1hZ3BpZSBwYXJzZWQgUlNTIG9iamVjdCBiYWNrIGludG8gYW4gUlNTIGZpbGUgaXMKZm9ydGhjb21pbmcuICBJbiB0aGUgbWVhbnRpbWUgUlNTV3JpdGVyIGlzIHdlbGwgZG9jdW1lbnRlZC4KCjxhIG5hbWU9ImJ5X2RhdGUiPjwvYT48aDI+NC4gRGlzcGxheSBIZWFkbGluZXMgTW9yZSBSZWNlbnQgdGhlbiBYIERhdGU8L2gyPgoKPGgzPlByb2JsZW06PC9oMz4KCllvdSBvbmx5IHdhbnQgdG8gZGlzcGxheSBoZWFkbGluZXMgdGhhdCB3ZXJlIHB1Ymxpc2hlZCBvbiwgb3IgYWZ0ZXIgYSBjZXJ0YWluCmRhdGUuCgoKPGgzPlNvbHV0aW9uOjwvaDM+CjxwcmU+CnJlcXVpcmVfb25jZSgncnNzX3V0aWxzLmluYycpOwoKIyBnZXQgYWxsIGhlYWRsaW5lcyBwdWJsaXNoZWQgdG9kYXkKJHRvZGF5ID0gZ2V0ZGF0ZSgpOwoKIyB0b2RheSwgMTJBTQokZGF0ZSA9IG1rdGltZSgwLDAsMCwkdG9kYXlbJ21vbiddLCAkdG9kYXlbJ21kYXknXSwgJHRvZGF5Wyd5ZWFyJ10pOwoKJHJzcyA9IGZldGNoX3JzcygkdXJsKTsKCmZvcmVhY2ggKCAkcnNzLT5pdGVtcyBhcyAkaXRlbSApIHsKICAgJHB1Ymxpc2hlZCA9IHBhcnNlX3czY2R0ZigkaXRlbVsnZGMnXVsnZGF0ZSddKTsKICAgaWYgKCAkcHVibGlzaGVkICZndDs9ICRkYXRlICkgewogICAgICAgIGVjaG8gIlRpdGxlOiAiIC4gJGl0ZW1bJ3RpdGxlJ107CiAgICAgICAgZWNobyAiUHVibGlzaGVkOiAiIC4gZGF0ZSgiaDppOnMgQSIsICRwdWJsaXNoZWQpOwogICAgICAgIGVjaG8gIiZsdDtwJmd0OyI7CiAgICB9Cn0KPC9wcmU+CjxoMz5EaXNjdXNzaW9uOjwvaDM+CgpUaGlzIHJlY2lwZSBvbmx5IHdvcmtzIGZvciBSU1MgMS4wIGZlZWRzIHRoYXQgaW5jbHVkZSB0aGUgPGRjOmRhdGU+IGZpZWxkLgood2hpY2ggaXMgdmVyeSBnb29kIFJTUyBzdHlsZSkgPGJyIC8+IAo8Y29kZT5wYXJzZV93M2NkdGYoKTwvY29kZT4gaXMgZGVmaW5lZCBpbgo8Y29kZT5yc3NfdXRpbHMuaW5jPC9jb2RlPiwgYW5kIHBhcnNlcyBSU1Mgc3R5bGUgZGF0ZXMgaW50byBVbml4IGVwb2NoCnNlY29uZHMuICAKCjxoMz5TZWU6IDwvaDM+CjxhCmhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vcmVmLmRhdGV0aW1lLnBocCI+aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9yZWYuZGF0ZXRpbWUucGhwPC9hPgoKPGEgbmFtZT0iZnJvbV9maWxlIj48L2E+CjxoMj41LiBQYXJzZSBhIExvY2FsIEZpbGUgQ29udGFpbmluZyBSU1M8L2gyPgo8aDM+UHJvYmxlbTo8L2gzPgpNYWdwaWVSU1MgcHJvdmlkZXMgPGNvZGU+ZmV0Y2hfcnNzKCk8L2NvZGU+IHdoaWNoIHRha2VzIGEgVVJMIGFuZCByZXR1cm5zIGEKcGFyc2VkIFJTUyBvYmplY3QsIGJ1dCB3aGF0IGlmIHlvdSB3YW50IHRvIHBhcnNlIGEgZmlsZSBzdG9yZWQgbG9jYWxseSB0aGF0CmRvZXNuJ3QgaGF2ZSBhIFVSTD8KCjxoMz5Tb2x1dGlvbjwvaDM+CjxwcmU+CnJlcXVpcmVfb25jZSgncnNzX3BhcnNlLmluYycpOwoKJHJzc19maWxlID0gJ3NvbWVfcnNzX2ZpbGUucmRmJzsKJHJzc19zdHJpbmcgPSByZWFkX2ZpbGUoJHJzc19maWxlKTsKJHJzcyA9IG5ldyBNYWdwaWVSU1MoICRyc3Nfc3RyaW5nICk7CgppZiAoICRyc3MgYW5kICEkcnNzLT5FUlJPUikgewouLi5kaXNwbGF5IHJzcy4uLgp9CmVsc2UgewogICAgZWNobyAiRXJyb3I6ICIgLiAkcnNzLT5FUlJPUjsKfQoKIyBlZmZpY2llbnRseSByZWFkIGEgZmlsZSBpbnRvIGEgc3RyaW5nCiMgaW4gcGhwID49IDQuMy4wIHlvdSBjYW4gc2ltcGx5IHVzZSBmaWxlX2dldF9jb250ZW50cygpCiMKZnVuY3Rpb24gcmVhZF9maWxlKCRmaWxlbmFtZSkgewogICAgJGZoID0gZm9wZW4oJGZpbGVuYW1lLCAncicpIG9yIGRpZSgkcGhwX2Vycm9ybXNnKTsKICAgICRyc3Nfc3RyaW5nID0gZnJlYWQoJGZoLCBmaWxlc2l6ZSgkZmlsZW5hbWUpICk7CiAgICBmY2xvc2UoJGZoKTsKICAgIHJldHVybiAkcnNzX3N0cmluZzsKfQo8L3ByZT4KCjxoMz5EaXNjdXNzaW9uPC9oMz4KSGVyZSB3ZSBhcmUgdXNpbmcgTWFncGllUlNTJ3MgUlNTIHBhcnNlciBkaXJlY3RseSB3aXRob3V0IHRoZSBjb252aWVuY2Ugd3JhcHBlcgpvZiA8Y29kZT5mZXRjaF9yc3MoKTwvY29kZT4uICBXZSByZWFkIHRoZSBjb250ZW50cyBvZiB0aGUgUlNTIGZpbGUgaW50byBhCnN0cmluZywgYW5kIHBhc3MgaXQgdG8gdGhlIHBhcnNlciBjb25zdHJ1Y3Rvci4gIE5vdGljZSBhbHNvIHRoYXQgZXJyb3IgaGFuZGxpbmcKaXMgc3VidGx5IGRpZmZlcmVudC4KCjxoMz5TZWU6IDwvaDM+CjxhCmhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vcmVmLmZpbGVzeXN0ZW0ucGhwIj5odHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL3JlZi5maWxlc3lzdGVtLnBocDwvYT4sPGJyCi8+CjxhCmhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vbGFuZ3VhZ2Uub29wLnBocCI+aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9sYW5ndWFnZS5vb3AucGhwPC9hPgoKPCEtLSAKPGEgbmFtZT0ibGluayI+PC9hPjxoMj4jLiBSZWNpcGU8L2gyPgo8aDM+UHJvYmxlbTo8L2gzPgpQcm9ibGVtIGRlc2NyaXB0aW9uCjxoMz5Tb2x1dGlvbjwvaDM+CjxwcmU+CmNvZGUKPC9wcmU+CjxoMz5EaXNjdXNzaW9uL2gzPgpEaXNjdXNzIGNvZGUKPGgzPlNlZTogPC9oMz4KRG9jdW1lbnRhdGlvbiBsaW5rczoKLS0+Cgo8L2JvZHk+CjwvaHRtbD4K";s:36:"presibourse/magpie/htdocs/index.html";s:16652:"PGh0bWw+CiAgPGhlYWQ+CiAgPHRpdGxlPk1hZ3BpZSBSU1MgLSBQSFAgUlNTIFBhcnNlcjwvdGl0bGU+CiAgPGxpbmsgcmVsPSJhbHRlcm5hdGUiIHR5cGU9ImFwcGxpY2F0aW9uL3Jzcyt4bWwiIHRpdGxlPSJSU1MiCiAgICAgICAgaHJlZj0iaHR0cDovL2xhdWdoaW5nbWVtZS5vcmcvbWFncGllcnNzLnJkZiIgLz4KICA8c3R5bGU+Cglib2R5IHsKCQlmb250LWZhbWlseTp0cmVidWNoZXQgTVMsIHRyZWJ1Y2hldCwgdmVyZGFuYSwgYXJpYWwsIHNhbnMtc2VyaWY7IAoJCWZvbnQtc2l6ZTogMTFweDsgCgkKCX0KCQoJcHJlIHsgZm9udC1mYW1pbHk6ICJDb3VyaWVyIE5ldyIsIG1vbm9zcGFjZTsgCiAgICAgIHBhZGRpbmc6IDFlbTsgCiAgICAgIG1hcmdpbjogMC4yZW0gMi41ZW0gMC4yZW0gM2VtOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZlZmY1OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2ZjZmNmOwogICAgICB3aGl0ZS1zcGFjZTogcHJlOwogfQoKCWxpLm5ld3MgewoJCXBhZGRpbmctYm90dG9tOjE1cHg7Cgl9CgoJYS5uYXYgeyBjb2xvcjogI0ZGRkZGRjsgfQoJCglkaXYubmF2IHsKCQl3aWR0aDogMmluOwoJCWZsb2F0OiByaWdodDsKCQlib3JkZXI6IDJweCBzb2xpZCAjY2ZjZmNmOwoJCXBhZGRpbmc6IDVweDsKCQliYWNrZ3JvdW5kLWNvbG9yOiAjOTk2Njk5OwoJfQoJCiAgPC9zdHlsZT4gCiAgPC9oZWFkPgogIDxib2R5PgogIAk8aW1nIHNyYz0ibWFncGllLXBob3RvLmpwZyI+Cgk8aDE+TWFncGllUlNTPC9oMT4KCTxwPgoJPGgyPk1hZ3BpZVJTUyBwcm92aWRlcyBhbiBYTUwtYmFzZWQgKGV4cGF0KSBSU1MgcGFyc2VyIGluIFBIUC48L2gyPgoJPHA+CglNYWdwaWVSU1MgaXMgY29tcGF0aWJsZSB3aXRoIFJTUyAuOSB0aHJvdWdoIFJTUyAxLjAsIGFuZCBzdXBwb3J0cyB0aGUKCVJTUyAxLjAncyBtb2R1bGVzLiAod2l0aCBhIGZldyBleGNlcHRpb25zKQoJPHA+Cgk8ZGl2IGNsYXNzPSJuYXYiPgoJPGNlbnRlcj48aDM+UHJvamVjdCBJbmZvPC9oMz48L2NlbnRlcj4KCTx1bD4KCTxsaT48YSBjbGFzcz0ibmF2IgpocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3Qvc2hvd2ZpbGVzLnBocD9ncm91cF9pZD01NTY5MSI+RG93bmxvYWQKTWFncGllPC9hPjwvbGk+Cgk8bGk+PGEgY2xhc3M9Im5hdiIKaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9tYWlsLz9ncm91cF9pZD01NTY5MSI+TWFpbGluZwpMaXN0czwvYT48L2xpPgoJPGxpPjxhIGNsYXNzPSJuYXYiIGhyZWY9IiNuZXdzIj5OZXdzITwvYT48L2xpPgoJPGxpPjxhIGNsYXNzPSJuYXYiIGhyZWY9IiN3aHkiPldoeT88L2E+PC9saT4KCTxsaT48YSBjbGFzcz0ibmF2IiBocmVmPSIjZmVhdHVyZXMiPkZlYXR1cmVzPC9hPjwvbGk+Cgk8bGk+PGEgY2xhc3M9Im5hdiIgaHJlZj0iI3BoaWxvc29waHkiPlBoaWxvc29waHk8L2E+PC9saT4KCTxsaT48YSBjbGFzcz0ibmF2IiBocmVmPSIjdXNhZ2UiPlVzYWdlIEV4YW1wbGVzPC9hPjwvbGk+Cgk8bGk+PGEgY2xhc3M9Im5hdiIgaHJlZj0iL2Nvb2tib29rLmh0bWwiPkNvb2tib29rPC9hPjwvbGk+Cgk8bGk+PGEgY2xhc3M9Im5hdiIgaHJlZj0iI3RvZG8iPlRvZG88L2E+PC9saT4KPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nLXRvcDogNXB4OyI+PGEgdGl0bGU9IktlZXAgdXAgb24gTWFncGllUlNTIG5ld3MgdmlhIFJTUyIgaHJlZj0iaHR0cDovL2xhdWdoaW5nbWVtZS5vcmcvbWFncGllcnNzLnJkZiI+PGltZwpzcmM9Imh0dHA6Ly9tYWdwaWVyc3Muc2YubmV0L2JsYWNrX2dyZXlfbWFncGllX25ld3MuZ2lmIiBib3JkZXI9IjAiPjwvYT48L2xpPgo8L3VsPgo8L2Rpdj4KCTxhIG5hbWU9Im5ld3MiPjwvYT4KCTxoMz5OZXdzITwvaDM+Cgk8dWw+Cgo8bGkgY2xhc3M9Im5ld3MiPgoJCTxhIApocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3Qvc2hvd2ZpbGVzLnBocD9ncm91cF9pZD01NTY5MSI+TWFncGllUlNTCjAuNTEgUmVsZWFzZWQ8L2E+Cjx1bD4KPGxpPiBpbXBvcnRhbnQgYnVnZml4ITwvbGk+CjxsaT4gZml4IDxhIGhyZWY9Imh0dHA6Ly9sYXVnaGluZ21lbWUub3JnL2FyY2hpdmVzLzAwMDgxMS5odG1sCiI+InNpbGVudCBmYWlsdXJlIjwvYT4gd2hlbiBQSFAgZG9lc24ndCBoYXZlIHpsaWI8L2xpPgo8L3VsPgoKPC9saT4KCjxsaSBjbGFzcz0ibmV3cyI+CgkJPGEgaHJlZj0iaHR0cDovL21pbnV0aWxsby5jb20vc3RldmUvZmVlZG9uZmVlZHMvIj5GZWVkIE9uIEZlZWRzIFVzZXMgTWFncGllPC9hPgo8dWw+CjxsaT4gc2VydmVyIGJhc2VkIFBIUCBSU1MgYWdncmVnYXRvciBidWlsdCB3aXRoIE1hZ3BpZVJTUzwvbGk+CjxsaT4gZWFzeSB0byBpbnN0YWxsLCBlYXN5IHRvIHVzZS48L2xpPgo8L3VsPgoKPC9saT4KCgo8bGkgY2xhc3M9Im5ld3MiPgoJCTxhIApocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3Qvc2hvd2ZpbGVzLnBocD9ncm91cF9pZD01NTY5MSZyZWxlYXNlX2lkPTE1ODg5NyI+TWFncGllUlNTCjAuNSBSZWxlYXNlZDwvYT4KPHVsPgo8bGk+IHN1cHBvcnRzIHRyYW5zcGFyZW50IEhUVFAgZ3ppcCBjb250ZW50IG5lZ290aWF0aW9uIGZvciByZWR1Y2VkIGJhbmR3aWR0aCB1c2FnZTwvbGk+IAo8bGk+IHF1YXNoZWQgc29tZSB1bmRlZmluZWQgaW5kZXggbm90aWNlczwvbGk+CjwvdWw+Cgo8L2xpPgoKCjxsaSBjbGFzcz0ibmV3cyI+CgkJPGEgCmhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdC9zaG93ZmlsZXMucGhwP2dyb3VwX2lkPTU1NjkxJnJlbGVhc2VfaWQ9MTM5NjQzIj5NYWdwaWVSU1MKMC40NiBSZWxlYXNlZDwvYT4KPHVsPgo8bGk+IG1pbm9yIHJlbGVhc2UsIG1vcmUgZXJyb3IgaGFuZGxpbmcgY2xlYW4gdXA8L2xpPiAKPGxpPiBkb2N1bWVudGF0aW9uIGZpeGVzLCBzaW1wbGVyIGV4YW1wbGU8L2xpPgo8bGk+IG5ldyA8YSBocmVmPSIvVFJPVUJMRVNIT09USU5HIj50cm91YmxlIHNob290aW5nPC9hPiBndWlkZSBmb3IgaW5zdGFsbGF0aW9uIGFuZCB1c2FnZSBwcm9ibGVtczwvYT4KPC91bD4KCjwvbGk+Cgo8bGkgY2xhc3M9Im5ld3MiPgoJCTxhIApocmVmPSJodHRwOi8vbGF1Z2hpbmdtZW1lLm9yZy9tYWdwaWVyc3MucmRmIj5NYWdwaWUgTmV3cyBhcyBSU1M8L2E+Cjx1bD4KPGxpPiByZWxlYXNlcywgYnVnIGZpeGVzLCByZWxlYXRlZCBzdG9yaWVzIGFzIGFuIFJTUyBmZWVkPC9saT4gCjwvdWw+Cgo8L2xpPgoKCjxsaSBjbGFzcz0ibmV3cyI+CgkJPGEgCmhyZWY9Imh0dHA6Ly9tYWdwaWVyc3Muc291cmNlZm9yZ2UubmV0L2Nvb2tib29rLmh0bWwiPk1hZ3BpZVJTUwpDb29rYm9vazogU2ltcGxlIFBIUCBSU1MgSG93IFRvczwvYT4KPHVsPgo8bGk+IGFuc3dlcnMgc29tZSBvZiB0aGUgbW9zdCBmcmVxdWVudGx5IGFza2VkIE1hZ3BpZSBxdWVzdGlvbnM8L2xpPiAKPGxpPiBmZWVkYmFjaywgc3VnZ2VzdGlvbnMsIHJlcXVlc3RzLCByZWNpcGVzIHdlbGNvbWU8L2xpPgo8L3VsPgoKPC9saT4KCjxsaSBjbGFzPSJuZXdzIj4KIDxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdC9zaG93ZmlsZXMucGhwP2dyb3VwX2lkPTU1NjkxJnJlbGVhc2VfaWQ9MTM0ODUwIj5NYWdwaWVSU1MgMC40IFJlbGVhc2VkITwvYT4KPHVsPgo8bGk+IGltcHJvdmVkIGVycm9yIGhhbmRsaW5nLCBtb3JlIGZsZXhpYmlsaXR5IGZvciBzY3JpcHQgYXV0aG9ycywKYmFja3dhcmRzIGNvbXBhdGlibGU8L2xpPgo8bGk+IG5ldyBhbmQgYmV0dGVyIGV4YW1wbGVzISAgaW5jbHVkaW5nIHVzaW5nIE1hZ3BpZVJTUyBhbmQgPGEKaHJlZj0iaHR0cDovL3NtYXJ0eS5waHAubmV0Ij5TbWFydHk8L2E+PC9saT4KPGxpPiBuZXcgU21hcnR5IHBsdWdpbiBmb3IgUlNTIGRhdGUgcGFyc2luZzwvbGk+CjwvdWw+CjxiciAvPgo8L2xpPgo8IS0tCjxsaSBjbGFzcz0ibmV3cyI+CjxhIGhyZWY9Imh0dHA6Ly93d3cuaW5maW5pdGVwZW5ndWlucy5uZXQvcnNzLyI+SW5maW5pdGUgUGVuZ3VpbiBub3cKc3VwcG9ydHMgTWFncGllIDAuMzwvYT4KPHVsPgo8bGk+IHNpbXBsZSwgc29waGlzdGljYXRlZCBSU1Mgdmlld2VyPC9saT4gCjxsaT4gaW5jbHVkZXMgYXV0by1nZW5lcmF0ZWQgamF2YXNjcmlwdCB0aWNrZXIgZnJvbSBSU1MgZmVlZDwvbGk+CjwvdWw+Cgo8L2xpPgoKCjxsaSBjbGFzcz0ibmV3cyI+CjxhCmhyZWY9Imh0dHA6Ly90cmF1bXdpbmQudGllcnBmYWQuZGUvYmxvZy9tYWdwaWUvbWFncGllX2FsaWtlLnBocCI+VHJhdW13aW5kCnJlbGVhc2VzIFJFWCBiYWNrZW5kIGZvciBNYWdwaWVSU1M8L2E+Cjx1bD4KPGxpPmRyb3AgaW4gc3VwcG9ydCB1c2luZyByZWdleCBiYXNlZCBYTUwgcGFyc2VyPC9saT4KPGxpPnBhcnNlcyBpbXByb3Blcmx5IGZvcm1lZCBYTUwgdGhhdCBjaG9rZXMgZXhwYXQ8L2xpPgo8L3VsPgoKPC9saT4KCjxsaSBjbGFzcz0ibmV3cyI+CgkJPGEKaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0L3Nob3dmaWxlcy5waHA/Z3JvdXBfaWQ9NTU2OTEmcmVsZWFzZV9pZD0xMTg2NTIiPgoJCU1hZ3BpZVJTUyAwLjMgUmVsZWFzZWQhPC9hPgoJCTx1bD4KCQkgIDxsaT5TdXBwb3J0IGFkZGVkIGZvciAKCQkJIDxhIGhyZWY9Imh0dHA6Ly9maXNoYm93bC5wYXN0aWNoZS5vcmcvYXJjaGl2ZXMvMDAxMTMyLmh0bWwiPkhUVFAKCQkJIENvbmRpdGlvbmFsIEdFVHM8L2E+LjwvbGk+CgkJICA8bGk+U2VlIDxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdC9zaG93bm90ZXMucGhwP2dyb3VwX2lkPTU1NjkxJnJlbGVhc2VfaWQ9MTE4NjUyIj5DaGFuZ2VMb2c8L2E+CgkJICBmb3IgbW9yZSBpbmZvLjwvbGk+CgkgICAgPC91bD4KCQk8L2xpPgoJCTxsaSBjbGFzcz0ibmV3cyI+TWFncGllUlNTIDAuMiE8L2E+CgkJPHVsPgoJCSAgPGxpPk1ham9yIGNsZWFuIHVwIG9mIHRoZSBjb2RlLiAgRWFzaWVyIHRvIHVzZS48L2xpPgoJCSAgPGxpPlNpbXBsZXIgaW5zdGFsbCBvbiBzaGFyZWQgaG9zdHMuPC9saT4KCSAgICAgIDxsaT5CZXR0ZXIgZG9jdW1lbnRhdGlvbiBhbmQgY29tbWVudHMuPC9saT4KCQk8L3VsPgoJCTwvbGk+CgkJPGxpIGNsYXNzPSJuZXdzIj5XZSd2ZSA8YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL21hZ3BpZXJzcy8iPm1vdmVkIHRvCgkJU291cmNlZm9yZ2UhPC9hPjwvbGk+CgktLT4KCTwvdWw+Cgk8L3A+Cgk8cD4KCTxhIG5hbWU9IndoeSI+PC9hPgoJPGgzPldoeT88L2gzPgoJSSB3cm90ZSBNYWdwaWVSU1Mgb3V0IG9mIGEgZnJ1c3RyYXRpb24gd2l0aCB0aGUgbGltaXRhdGlvbnMgb2YgZXhpc3RpbmcKCXNvbHV0aW9ucy4gICBJbiBwYXJ0aWN1bGFyIG1hbnkgb2YgdGhlIGV4aXN0aW5nIFBIUCBzb2x1dGlvbnMgc2VlbWVkIHRvOgoJPHVsPgoJPGxpPnVzZSBhIHBhcnNlciBiYXNlZCBvbiByZWd1bGFyIGV4cHJlc3Npb25zLCBtYWtpbmcgZm9yIGFuIGluaGVyZW50bHkKCWZyYWdpbGUgc29sdXRpb24KCTxsaT5vbmx5IHN1cHBvcnQgZWFybHkgdmVyc2lvbnMgb2YgUlNTCgk8bGk+ZGlzY2FyZCBhbGwgdGhlIGludGVyZXN0aW5nIGluZm9ybWF0aW9uIGJlc2lkZXMgaXRlbSB0aXRsZSwgZGVzY3JpcHRpb24sCglhbmQgbGluay4KCTxsaT5ub3QgYnVpbGQgcHJvcGVyIHNlcGFyYXRpb24gYmV0d2VlbiBwYXJzaW5nIHRoZSBSU1MgYW5kIGRpc3BsYXlpbmcgaXQuCgk8L3VsPgoJSW4gcGFydGljdWxhciBJIGZhaWxlZCB0byBmaW5kIGFueSBQSFAgUlNTIHBhcnNlcnMgdGhhdCBjb3VsZCBzdWZmaWNpZW50bHkKCXBhcnNlIFJTUyAxLjAgZmVlZHMsIHRvIGJlIHVzZWZ1bCBvbiB0aGUgUlNTIGJhc2VkIGV2ZW50IGZlZWRzIHdlIGdlbmVyYXRlCglhdCA8YSBocmVmPSJodHRwOi8vcHJvdGVzdC5uZXQiPlByb3Rlc3QubmV0PC9hPi4KCTwvcD4KCTxwPgoJPGEgbmFtZT0iZmVhdHVyZXMiPjwvYT4KCTxoMz5GZWF0dXJlczwvaDM+Cgo8dWw+Cgk8bGkgY2xhc3M9InRvcGxldmVsIj4KCTxoND5FYXN5IHRvIFVzZTwvaDQ+CglBcyBzaW1wbGUgYXM6CjxwcmU+CnJlcXVpcmUoJ3Jzc19mZXRjaC5pbmMnKTsKJHJzcyA9IGZldGNoX3JzcygkdXJsKTsKPC9wcmU+CgoJPC9saT4KCTxsaSBjbGFzcz0idG9wbGV2ZWwiPgoJCTxoND5QYXJzZXMgUlNTIDAuOSAtIFJTUyAxLjA8L2g0PgoKCQlQYXJzZXMgbW9zdCBSU1MgZm9ybWF0cywgaW5jbHVkaW5nIHN1cHBvcnQgZm9yIAoJCTxhIGhyZWY9Imh0dHA6Ly93d3cucHVybC5vcmcvcnNzLzEuMC9tb2R1bGVzLyI+MS4wIG1vZHVsZXM8L2E+IGFuZCBsaW1pdGVkCgkJbmFtZXNwYWNlIHN1cHBvcnQuICBSU1MgaXMgcGFja2VkIGludG8gY29udmVuaWVudCBkYXRhIHN0cnVjdHVyZXM7IGVhc3kgdG8KCQl1c2UgaW4gUEhQLCBhbmQgYXBwcm9wcmlhdGUgZm9yIHBhc3NpbmcgdG8gYSB0ZW1wbGF0aW5nIHN5c3RlbSwgbGlrZSAKCQk8YSBocmVmPSJodHRwOi8vc21hcnR5LnBocC5uZXQiPlNtYXJ0eTwvYT4uCgk8L2xpPgoJPGxpPgoJPGg0PkludGVncmF0ZWQgT2JqZWN0IENhY2hlPC9oND4KCQoJQ2FjaGluZyB0aGUgcGFyc2VkIFJTUyBtZWFucyB0aGF0IHRoZSAybmQgcmVxdWVzdCBpcyBmYXN0LCBhbmQgdGhhdAppbmNsdWRpbmcgdGhlIHJzc19mZXRjaCBjYWxsIGluIHlvdXIgUEhQIHBhZ2Ugd29uJ3QgZGVzdHJveSB5b3VyIHBlcmZvcm1hbmNlLAphbmQgZm9yY2UgeW91IHRvIHJlcGx5IG9uIGFuIGV4dGVybmFsIGNyb24gam9iLiBBbmQgaXQgaGFwcGVucyB0cmFuc3BhcmVudGx5LgoKCTwvbGk+Cgk8bGk+Cgk8aDQ+SFRUUCBDb25kaXRpb25hbCBHRVRzPC9oND4KCQoJU2F2ZSBiYW5kd2lkdGggYW5kIHNwZWVkIHVwIGRvd25sb2FkIHRpbWVzIHdpdGggaW50ZWxsaWdlbnQgdXNlIG9mCglMYXN0LU1vZGlmaWVkIGFuZCBFVGFnLjxiciAvPiBTZWUgPGEKCWhyZWY9Imh0dHA6Ly9maXNoYm93bC5wYXN0aWNoZS5vcmcvYXJjaGl2ZXMvMDAxMTMyLmh0bWwiPkhUVFAgQ29uZGl0aW9uYWwgR2V0IGZvciBSU1MgSGFja2VyczwvYT4KCTwvbGk+CgkKCTxsaT48aDQ+Q29uZmlndXJhYmxlPC9oND4KCQoJTWFrZXMgZXh0ZW5zaXZlIHVzZSBvZiBjb25zdGFudHMgdG8gYWxsb3cgb3ZlcnJpZGluZyBkZWZhdWx0IGJlaGF2aW91ciwgYW5kCglpbnN0YWxsYXRpb24gb24gc2hhcmVkIGhvc3RzLgoJPC9saT4KCTxsaT48aDQ+TW9kdWxhcjwvaDQ+Cgk8dWw+CgkJPGxpPnJzc19mZXRjaC5pbmMgLSB3cmFwcyBhIHNpbXBsZSBpbnRlcmZhY2UgKDxjb2RlPmZldGNoX3JzcygpPC9jb2RlPikKCQlhcm91bmQgdGhlIGxpYnJhcnkuCgkJPGxpPnJzc19wYXJzZS5pbmMgLSBwcm92aWRlcyB0aGUgUlNTIHBhcnNlciwgYW5kIHRoZSBSU1Mgb2JqZWN0CgkJPGxpPnJzc19jYWNoZS5pbmMgLSBhIHNpbXBsZSAobm8gR0MpIG9iamVjdCBjYWNoZSwgb3B0aW1pemVkIGZvciBSU1Mgb2JqZWN0cwoJCTxsaT5yc3NfdXRpbHMuaW5jIC0gdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHdvcmtpbmcgd2l0aCBSU1MuICBjdXJyZW50bHkKCQlwcm92aWRlcyA8Y29kZT5wYXJzZV93M2NkdGYoKTwvY29kZT4sIGZvciBwYXJzaW5nIDxhCgkJaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvTk9URS1kYXRldGltZSI+VzNDRFRGPC9hPiBpbnRvIGVwb2NoIHNlY29uZHMuCgk8L3VsPgo8L3VsPgoKCQoJPC9wPgo8cD4KCTxhIG5hbWU9InBoaWxvc29waHkiPjwvYT4KCTxoMz5NYWdwaWUncyBhcHByb2FjaCB0byBwYXJzaW5nIFJTUzwvaDM+CgoJTWFncGllIHRha2VzIGEgbmFpdmUsIGFuZCBpbmNsdXNpdmUgYXBwcm9hY2guIEFic29sdXRlbHkKCW5vbi12YWxpZGF0aW5nLCBhcyBsb25nIGFzIHRoZSBSU1MgZmVlZCBpcyB3ZWxsIGZvcm1lZCwgTWFncGllIHdpbGwKCWNoZWVyZnVsbHkgcGFyc2UgbmV3LCBhbmQgbmV2ZXIgYmVmb3JlIHNlZW4gdGFncyBpbiB5b3VyIFJTUyBmZWVkcy4KCTwvcD4KCTxwPgoJVGhpcyBtYWtlcyBpdCB2ZXJ5IHNpbXBsZSBzdXBwb3J0IHRoZSB2YXJpZWQgdmVyc2lvbnMgb2YgUlNTIHNpbXBseSwgYnV0Cglmb3JjZXMgdGhlIGNvbnN1bWVyIG9mIGEgUlNTIGZlZWQgdG8gYmUgY29nbml6YW50IG9mIGhvdyBpdCBpcwoJc3RydWN0dXJlZC4oYXQgbGVhc3QgaWYgeW91IHdhbnQgdG8gZG8gc29tZXRoaW5nIGZhbmN5KQoJPC9wPgoJPHA+CglNYWdwaWUgcGFyc2VzIGEgUlNTIGZlZWQgaW50byBhIHNpbXBsZSBvYmplY3QsIHdpdGggNCBmaWVsZHM6Cgk8Y29kZT5jaGFubmVsPC9jb2RlPiwgPGNvZGU+aXRlbXM8L2NvZGU+LCA8Y29kZT5pbWFnZTwvY29kZT4sIGFuZAoJPGNvZGU+dGV4dGlucHV0PC9jb2RlPi4KCTwvcD4JCgk8cD4KCTxoND5jaGFubmVsPC9oND4KCTxjb2RlPiRyc3MtPmNoYW5uZWw8L2NvZGU+IGNvbnRhaW5zIGtleS12YWx1ZSBwYWlycyBvZiBhbGwgdGFncywgd2l0aG91dAoJbmVzdGVkIHRhZ3MsIGZvdW5kIGJldHdlZW4gdGhlIHJvb3QgdGFnICgmbHQ7cmRmOlJERiZndDssIG9yICZsdDtyc3MmZ3Q7KSAKCWFuZCB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudC4KCTwvcD4KCTxwPgoJPGg0Pml0ZW1zPC9oND4KCTxjb2RlPiRyc3MtPml0ZW1zPC9jb2RlPiBpcyBhbiBhcnJheSBvZiBhc3NvY2lhdGl2ZSBhcnJheXMsIGVhY2ggb25lCglkZXNjcmliaW5nIGEgc2luZ2xlIGl0ZW0uICBBbiBleGFtcGxlIHRoYXQgbG9va3MgbGlrZToKCTxwcmU+CiZsdDtpdGVtIHJkZjphYm91dD0iaHR0cDovL3Byb3Rlc3QubmV0L05vcnRoRWFzdC9jYWxlbmRyb21lLmNnaT9zcGFuPWV2ZW50JiMzODtJRD0yMTAyNTciJmd0OwombHQ7dGl0bGUmZ3Q7V2Vla2x5IFBlYWNlIFZpZ2lsJmx0Oy90aXRsZSZndDsKJmx0O2xpbmsmZ3Q7aHR0cDovL3Byb3Rlc3QubmV0L05vcnRoRWFzdC9jYWxlbmRyb21lLmNnaT9zcGFuPWV2ZW50JiMzODtJRD0yMTAyNTcmbHQ7L2xpbmsmZ3Q7CiZsdDtkZXNjcmlwdGlvbiZndDtXZWFyIGEgd2hpdGUgcmliYm9uJmx0Oy9kZXNjcmlwdGlvbiZndDsKJmx0O2RjOnN1YmplY3QmZ3Q7UGVhY2UmbHQ7L2RjOnN1YmplY3QmZ3Q7CiZsdDtldjpzdGFydGRhdGUmZ3Q7MjAwMi0wNi0wMVQxMTowMDowMCZsdDsvZXY6c3RhcnRkYXRlJmd0OwombHQ7ZXY6bG9jYXRpb24mZ3Q7Tm9ydGhhbXB0b24sIE1BJmx0Oy9ldjpsb2NhdGlvbiZndDsKJmx0O2V2OmVuZGRhdGUmZ3Q7MjAwMi0wNi0wMVQxMjowMDowMCZsdDsvZXY6ZW5kZGF0ZSZndDsKJmx0O2V2OnR5cGUmZ3Q7UHJvdGVzdCZsdDsvZXY6dHlwZSZndDsKJmx0Oy9pdGVtJmd0OwoJPC9wcmU+PHA+CglJcyBwYXJzZWQsIGFuZCBwdXNoZWQgb24gdGhlIDxjb2RlPiRyc3MtJmd0O2l0ZW1zPC9jb2RlPiBhcnJheSBhczoKCTxwPjxwcmU+CmFycmF5KAoJdGl0bGUgPSZndDsgJ1dlZWtseSBQZWFjZSBWaWdpbCcsCglsaW5rID0mZ3Q7ICdodHRwOi8vcHJvdGVzdC5uZXQvTm9ydGhFYXN0L2NhbGVuZHJvbWUuY2dpP3NwYW49ZXZlbnQmIzM4O0lEPTIxMDI1NycsCglkZXNjcmlwdGlvbiA9Jmd0OyAnV2VhciBhIHdoaXRlIHJpYmJvbicsCglkYyA9Jmd0OyBhcnJheSAoCgkJCXN1YmplY3QgPSZndDsgJ1BlYWNlJwoJCSksCglldiA9Jmd0OyBhcnJheSAoCgkJc3RhcnRkYXRlID0mZ3Q7ICcyMDAyLTA2LTAxVDExOjAwOjAwJywKCQllbmRkYXRlID0mZ3Q7ICcyMDAyLTA2LTAxVDEyOjAwOjAwJywKCQl0eXBlID0mZ3Q7ICdQcm90ZXN0JywKCQlsb2NhdGlvbiA9Jmd0OyAnTm9ydGhhbXB0b24sIE1BJwoJKQopOwo8L3ByZT4KPC9wPgo8cD4KPGg0PmltYWdlIGFuZCB0ZXh0aW5wdXQ8L2g0Pgo8Y29kZT4kcnNzLT5pbWFnZTwvY29kZT4gYW5kIDxjb2RlPiRyc3MtdGV4dGlucHV0PC9jb2RlPiBhcmUgYXNzb2NpYXRpdmUgYXJyYXlzCmluY2x1ZGluZyBuYW1lLXZhbHVlIHBhaXJzIGZvciBhbnl0aGluZyBmb3VuZCBiZXR3ZWVuIHRoZSByZXNwZWN0aXZlIHBhcmVudAp0YWdzLgo8L3A+CjxwPgo8YSBuYW1lPSJ1c2FnZSI+PC9hPgo8aDM+VXNhZ2UgRXhhbXBsZXM6PC9oMz4KCkEgdmVyeSBzaW1wbGUgZXhhbXBsZSB3b3VsZCBiZToKPHByZT4KcmVxdWlyZV9vbmNlICdyc3NfZmV0Y2guaW5jJzsKCiR1cmwgPSAnaHR0cDovL21hZ3BpZS5zZi5uZXQvc2FtcGxlcy9pbWMuMS0wLnJkZic7CiRyc3MgPSBmZXRjaF9yc3MoJHVybCk7CgplY2hvICJTaXRlOiAiLCAkcnNzLT5jaGFubmVsWyd0aXRsZSddLCAiJmx0O2JyJmd0O1xuIjsKZm9yZWFjaCAoJHJzcy0+aXRlbXMgYXMgJGl0ZW0gKSB7CgkkdGl0bGUgPSAkaXRlbVt0aXRsZV07CgkkdXJsICAgPSAkaXRlbVtsaW5rXTsKCWVjaG8gIiZsdDthIGhyZWY9JHVybCZndDskdGl0bGUmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsmbHQ7YnImZ3Q7XG4iOwp9CjwvcHJlPgpNb3JlIHNvb24uLi4uaW4gdGhlIG1lYW50aW1lIHlvdSBjYW4gY2hlY2sgb3V0IGEgCjxhIGhyZWY9Imh0dHA6Ly93d3cuaW5maW5pdGVwZW5ndWlucy5uZXQvcnNzLyI+Y29vbCB0b29sIGJ1aWx0IHdpdGgKTWFncGllUlNTPC9hPiwgdmVyc2lvbiAwLjEuCjwvcD4KPHA+CjxhIG5hbWU9InRvZG8iPjwvYT4KPGgzPlRvZG9zPC9oMz4KCTxoND5SU1MgUGFyc2VyPC9oND4KCTx1bD4KCQk8bGk+U3dhcCBpbiBhIHNtYXJ0ZXIgcGFyc2VyIHRoYXQgaW5jbHVkZXMgb3B0aW9uYWwgCgkJc3VwcG9ydCBmb3IgdmFsaWRhdGlvbiwgYW5kIHJlcXVpcmVkIGZpZWxkcy48L2xpPgoJCQoJCTxsaT5TdXBwb3J0IFJTUyAyLjAgKGFzIG11Y2ggYXMgSSdtIGFubm95ZWQgYnkgaXQpPC9saT4KCQkKCQk8bGk+SW1wcm92ZSBzdXBwb3J0IGZvciBtb2R1bGVzIHRoYXQgcmVseSBvbiBhdHRyaWJ1dGVzPC9saT4KCTwvdWw+CgkKCTxoND5SU1MgQ2FjaGU8L2g0PgoJPHVsPgoJCTxsaT5MaWdodC13ZWlnaHQgZ2FyYmFnZSBjb2xsZWN0aW9uCgk8L3VsPgoJCgk8aDQ+RmV0Y2ggUlNTPC9oND4KCTx1bD4KCTxsaT5BdHRlbXB0IHRvIDxhCglocmVmPSJodHRwOi8vZGl2ZWludG9tYXJrLm9yZy9hcmNoaXZlcy8yMDAyLzA4LzE1Lmh0bWwiPmF1dG8tZGV0ZWN0IGFuCglSU1MgZmVlZDwvYT4sIGdpdmVuIGEgVVJMIGZvbGxvd2luZywgbXVjaCBsaWtlIDxhCglocmVmPSJodHRwOi8vZGl2ZWludG9tYXJrLm9yZy9wcm9qZWN0cy9taXNjL3Jzc2ZpbmRlci5weS50eHQiPnJzc2ZpbmRlci5weTwvYT5kb2VzLgoJPC9saT4KCTwvdWw+Cgk8aDQ+TWlzYzwvaDQ+CgkJPHVsPgoJCTxsaT5Nb3JlIGV4YW1wbGVzPC9saT4KCQk8bGk+QSB0ZXN0IHN1aXRlPC9saT4KCQk8bGk+UlNTIGdlbmVyYXRpb24sIHBlcmhhcHMgd2l0aCA8YQoJaHJlZj0iaHR0cDovL3VzZWZ1bGluYy5jb20vcnNzL3Jzc3dyaXRlci8iPlJTU3dyaXRlcjwvYT4/CgkJPC9saT4KCQk8L3VsPgoJCjwvcD4KPHA+CjxoMz5SU1MgUmVzb3VyY2VzPC9oMz4KCTx1bD4KCTxsaT48YSBocmVmPSJodHRwOi8vbW5vdC5uZXQvcnNzL3R1dG9yaWFsLyI+UlNTIFR1dG9yaWFsIGZvciBDb250ZW50IFB1Ymxpc2hlcnMKCWFuZCBXZWJtYXN0ZXJzPC9hPiBpcyBhIGdyZWF0IHBsYWNlIHRvIHN0YXJ0LgoJPGxpPjxhIGhyZWY9Imh0dHA6Ly9naWxzLnV0YWguZ292L3Jzcy8iPlJTUyBXb3Jrc2hvcDogIFB1Ymxpc2ggYW5kIFN5bmRpY2F0ZQoJWW91ciBOZXdzIHRvIHRoZSBXZWI8L2E+IGlzIGFsc28gYSBnb29kIGludHJvZHVjdGlvbjwvbGk+Cgk8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5kaXNvYmV5LmNvbS9hbXBoZXRhZGVzay9maW5kaW5nX21vcmUuaHRtbCI+RmluZGluZwoJTW9yZSBDaGFubmVsczwvYT4gb24gaG93IHRvIGZpbmQgUlNTIGZlZWRzLgoJPGxpPkhhbW1lcnNsZXkncyA8YSBocmVmPSJodHRwOi8vcnNzLmJlbmhhbW1lcnNsZXkuY29tLyI+Q29udGVudCBTeW5kaWNhdGlvbgoJd2l0aCBYTUwgYW5kIFJTUzwvYT4gaXMgYSBibG9nIGNvdmVyaW5nIFJTUyBjdXJyZW50IGV2ZW50cy4KCTxsaT48YSBocmVmPSJodHRwOi8vZ3JvdXBzLnlhaG9vLmNvbS9ncm91cC9yc3MtZGV2LyI+UlNTLURFViBtYWlsaW5nCglsaXN0PC9hPiBpcyBnZW5lcmFsbHkgYSB2ZXJ5IGhlbHBmdWwsIGluZm9ybWF0aXZlIHNwYWNlLCB3aXRoIHRoZSBvY2Nhc2lvbmFsCgloZWF0ZWQgZGViYXRlCQoJPGxpPjxhIGhyZWY9Imh0dHA6Ly9mZWVkcy5hcmNoaXZlLm9yZy92YWxpZGF0b3IvIj5SU1MgVmFsaWRhdG9yPC9hPgoJPC91bD4uCjwvcD4KPGgzPkxpY2Vuc2UgYW5kIENvbnRhY3QgSW5mbzwvaDM+Ck1hZ3BpZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgR1BMIGxpY2Vuc2UuLi4KPHA+CmNvZGVkIGJ5OiBrZWxsYW4gKGF0KSBwcm90ZXN0Lm5ldCwgZmVlZGJhY2sgaXMgYWx3YXlzIGFwcHJlY2lhdGVkLgo8cD4KPGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldCI+PGltZwpzcmM9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvc2Zsb2dvLnBocD9ncm91cF9pZD01NTY5MSZhbXA7dHlwZT0zIiAKd2lkdGg9IjEyNSIgaGVpZ2h0PSIzNyIgYm9yZGVyPSIwIiBhbHQ9IlNvdXJjZUZvcmdlLm5ldCBMb2dvIj48L2E+CjxpbWcgc3JjPSJodHRwOi8vbGF1Z2hpbmdtZW1lLm9yZy9tYWdwaWVfdmlld3MuZ2lmIj4KPC9ib2R5Pgo8L2h0bWw+Cg==";s:68:"presibourse/magpie/scripts/smarty_plugin/modifier.rss_date_parse.php";s:1000:"PD9waHAKCi8qCiAqIFNtYXJ0eSBwbHVnaW4KICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKiBUeXBlOiAgICAgbW9kaWZpZXIKICogTmFtZTogICAgIHJzc19kYXRlX3BhcnNlCiAqIFB1cnBvc2U6ICBwYXJzZSByc3MgZGF0ZSBpbnRvIHVuaXggZXBvY2gKICogSW5wdXQ6ICAgIHN0cmluZzogcnNzIGRhdGUKICoJCQkgZGVmYXVsdF9kYXRlOiAgZGVmYXVsdCBkYXRlIGlmICRyc3NfZGF0ZSBpcyBlbXB0eQogKgogKiBOT1RFISEhICBwYXJzZV93M2NkdGYgcHJvdmlkZWQgYnkgTWFncGllUlNTJ3MgcnNzX3V0aWxzLmluYwogKiAgICAgICAgICB0aGlzIGZpbGUgbmVlZHMgdG8gYmUgaW5jbHVkZWQgc29tZXdoZXJlIGluIHlvdXIgc2NyaXB0CiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICovCiAKZnVuY3Rpb24gc21hcnR5X21vZGlmaWVyX3Jzc19kYXRlX3BhcnNlICgkcnNzX2RhdGUsICRkZWZhdWx0X2RhdGU9bnVsbCkKewoJaWYoJHJzc19kYXRlICE9ICcnKSB7CiAgICAJcmV0dXJuIHBhcnNlX3czY2R0ZiggJHJzc19kYXRlICk7Cgl9IGVsc2VpZiAoaXNzZXQoJGRlZmF1bHRfZGF0ZSkgJiYgJGRlZmF1bHRfZGF0ZSAhPSAnJykgewkJCiAgICAJcmV0dXJuIHBhcnNlX3czY2R0ZiggJGRlZmF1bHRfZGF0ZSApOwoJfSBlbHNlIHsKCQlyZXR1cm47Cgl9Cn0KCgoKCj8+Cg==";s:50:"presibourse/magpie/scripts/templates/simple.smarty";s:1088:"PGh0bWw+CjxoZWFkPgo8dGl0bGU+QSBTaW1wbGUgUlNTIEJveDogIEknbSBub3QgYSBkZXNpZ25lcjwvdGl0bGU+CjwvaGVhZD4KPGJvZHk+Cgo8Zm9ybT4KPGI+UlNTIEZpbGU6PC9iPiAKPGlucHV0IHR5cGU9dGV4dCIgbmFtZT0icnNzX3VybCIgdmFsdWU9InskcnNzX3VybH0iIHNpemU9IjUwIj4gCjxpbnB1dCB0eXBlPSJzdWJtaXQiPgo8L2Zvcm0+Cgo8Yj5EaXNwbGF5aW5nOjwvYj4geyRyc3NfdXJsfQo8cD4KCnsqIGlmICRlcnJvciBkaXNwbGF5IHRoZSBlcnJvciAKICBlbHNlaWYgcGFyc2VkIFJTUyBvYmplY3QgZGlzcGxheSB0aGUgUlNTIAogIGVsc2Ugc29saWNpdCB1c2VyIGZvciBhIFVSTCAKKn0KCntpZiAkZXJyb3IgfQo8Yj5FcnJvcjo8L2I+IHskZXJyb3J9CntlbHNlaWYgJHJzc30KPHRhYmxlIGJvcmRlcj0xPgogIDx0cj4KICAgIDx0aCBjb2xzcGFuPTI+CiAgICAgIDxhIGhyZWY9InskcnNzLT5jaGFubmVsLmxpbmt9Ij57JHJzcy0+Y2hhbm5lbC50aXRsZX08L2E+CiAgICA8L3RoPgogIDwvdHI+CiAgCXtmb3JlYWNoIGZyb209JHJzcy0+aXRlbXMgaXRlbT1pdGVtfQogIAkgPHRyPgoJICA8dGQ+CgkgIDxhIGhyZWY9InskaXRlbS5saW5rfSI+eyRpdGVtLnRpdGxlfTwvYT4KICAJICA8L3RkPgoJICA8dGQ+CgkgICB7JGl0ZW0uZGMuZGF0ZXxyc3NfZGF0ZV9wYXJzZXxkYXRlX2Zvcm1hdDoiJUEsICVCICVlLCAlWSJ9CgkgIDwvdGQ+Cgk8L3RyPgoJey9mb3JlYWNofQo8L3RhYmxlPgp7ZWxzZX0KICBFbnRlciB0aGUgVVJMIG9mIGFuIFJTUyBmaWxlIHRvIGRpc3BsYXkuCnsvaWZ9Cgo8L2JvZHk+CjwvaHRtbD4K";s:43:"presibourse/magpie/scripts/magpie_debug.php";s:2528:"PD9waHAKCmluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywgMSk7CmluaV9zZXQoJ2Vycm9yX3JlcG9ydGluZycsIEVfQUxMKTsKZGVmaW5lKCdNQUdQSUVfT1VUUFVUX0VOQ09ESU5HJywgJ1VURi04Jyk7CmRlZmluZSgnTUFHUElFX0RJUicsICcuLi8nKTsKZGVmaW5lKCdNQUdQSUVfREVCVUcnLCAxKTsKCi8vIGZsdXNoIGNhY2hlIHF1aWNrbHkgZm9yIGRlYnVnZ2luZyBwdXJwb3NlcywgZG9uJ3QgZG8gdGhpcyBvbiBhIGxpdmUgc2l0ZQpkZWZpbmUoJ01BR1BJRV9DQUNIRV9BR0UnLCAxMCk7CgpyZXF1aXJlX29uY2UoTUFHUElFX0RJUi4ncnNzX2ZldGNoLmluYycpOwoKCmlmICggaXNzZXQoJF9HRVRbJ3VybCddKSApIHsKCSR1cmwgPSAkX0dFVFsndXJsJ107Cn0KZWxzZSB7CgkkdXJsID0gJ2h0dHA6Ly9tYWdwaWVyc3Muc2YubmV0L3Rlc3QucnNzJzsKfQoKCnRlc3RfbGlicmFyeV9zdXBwb3J0KCk7CgokcnNzID0gZmV0Y2hfcnNzKCAkdXJsICk7CgkKaWYgKCRyc3MpIHsKCWVjaG8gIjxoMz5FeGFtcGxlIE91dHB1dDwvaDM+IjsKCWVjaG8gIkNoYW5uZWw6ICIgLiAkcnNzLT5jaGFubmVsWyd0aXRsZSddIC4gIjxwPiI7CgllY2hvICI8dWw+IjsKCWZvcmVhY2ggKCRyc3MtPml0ZW1zIGFzICRpdGVtKSB7CgkJJGhyZWYgPSAkaXRlbVsnbGluayddOwoJCSR0aXRsZSA9ICRpdGVtWyd0aXRsZSddOwkKCQllY2hvICI8bGk+PGEgaHJlZj0kaHJlZj4kdGl0bGU8L2E+PC9saT4iOwoJfQoJZWNobyAiPC91bD4iOwp9CmVsc2UgewoJZWNobyAiRXJyb3I6ICIgLiBtYWdwaWVfZXJyb3IoKTsKfQo/PgoKPGZvcm0+CglSU1MgVVJMOiA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMzAiIG5hbWU9InVybCIgdmFsdWU9Ijw/cGhwIGVjaG8gJHVybCA/PiI+PGJyIC8+Cgk8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iUGFyc2UgUlNTIj4KPC9mb3JtPgoKPGgzPlBhcnNlZCBSZXN1bHRzICh2YXJfZHVtcCdlZCk8L2gzPgo8cHJlPgo8P3BocCB2YXJfZHVtcCgkcnNzKTsgPz4KPC9wcmU+Cgo8P3BocAoKZnVuY3Rpb24gdGVzdF9saWJyYXJ5X3N1cHBvcnQoKSB7CiAgIGlmICghZnVuY3Rpb25fZXhpc3RzKCd4bWxfcGFyc2VyX2NyZWF0ZScpKSB7CgkgICBlY2hvICI8Yj5FcnJvcjo8L2I+IFBIUCBjb21waWxlZCB3aXRob3V0IFhNTCBzdXBwb3J0ICgtLXdpdGgteG1sKSwgTWFwZ2llIHdvbid0IHdvcmsgd2l0aG91dCBQSFAgc3VwcG9ydCBmb3IgWE1MLjxiciAvPlxuIjsKCSAgIGV4aXQ7CiAgIH0KICAgZWxzZSB7CgkgICBlY2hvICI8Yj5PSzo8L2I+IEZvdW5kIGFuIFhNTCBwYXJzZXIuIDxiciAvPlxuIjsKICAgfQogICAKICAgaWYgKCAhIGZ1bmN0aW9uX2V4aXN0cygnZ3ppbmZsYXRlJykgKSB7CgkgICBlY2hvICI8Yj5XYXJuaW5nOjwvYj4gIFBIUCBjb21waWxlZCB3aXRob3V0IFpsaWIgc3VwcG9ydCAoLS13aXRoLXpsaWIpLiBObyBzdXBwb3J0IGZvciBHWklQIGVuY29kaW5nLjxiciAvPlxuIjsKICAgfQogICBlbHNlIHsKCSAgIGVjaG8gIjxiPk9LOjwvYj4gIFN1cHBvcnQgZm9yIEdaSVAgZW5jb2RpbmcuPGJyIC8+XG4iOwogICB9CiAgIAogICBpZiAoICEgKGZ1bmN0aW9uX2V4aXN0cygnaWNvbnYnKSBhbmQgZnVuY3Rpb25fZXhpc3RzKCdtYl9jb252ZXJ0X2VuY29kaW5nJykgKSApIHsKCSAgIGVjaG8gIjxiPldhcm5pbmc6PC9iPiAgTm8gc3VwcG9ydCBmb3IgaWNvbnYgKC0td2l0aC1pY29udikgb3IgbXVsdGktYnl0ZSBzdHJpbmdzICgtLWVuYWJsZS1tYnN0cmluZykuIiAuICAKCQkgICAiTm8gc3VwcG9ydCBjaGFyYWN0ZXIgc2V0IG11bmdpbmcuPGJyIC8+XG4iOwogICB9CiAgIGVsc2UgewoJICAgZWNobyAiPGI+T0s6PC9iPiAgU3VwcG9ydCBmb3IgY2hhcmFjdGVyIG11bmdpbmcuPGJyIC8+XG4iOwogICB9Cn0KCj8+Cg==";s:44:"presibourse/magpie/scripts/magpie_simple.php";s:1084:"PD9waHAKCmRlZmluZSgnTUFHUElFX0RJUicsICcuLi8nKTsKcmVxdWlyZV9vbmNlKE1BR1BJRV9ESVIuJ3Jzc19mZXRjaC5pbmMnKTsKCiR1cmwgPSAkX0dFVFsndXJsJ107CgppZiAoICR1cmwgKSB7CgkkcnNzID0gZmV0Y2hfcnNzKCAkdXJsICk7CgllY2hvICJDaGFubmVsOiAiIC4gJHJzcy0+Y2hhbm5lbFsndGl0bGUnXSAuICI8cD4iOwoJZWNobyAiPHVsPiI7Cglmb3JlYWNoICgkcnNzLT5pdGVtcyBhcyAkaXRlbSkgewoJCSRocmVmID0gJGl0ZW1bJ2xpbmsnXTsKCQkkdGl0bGUgPSAkaXRlbVsndGl0bGUnXTsJCgkJZWNobyAiPGxpPjxhIGhyZWY9JGhyZWY+JHRpdGxlPC9hPjwvbGk+IjsKCX0KCWVjaG8gIjwvdWw+IjsKfQo/PgoKPGZvcm0+CglSU1MgVVJMOiA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMzAiIG5hbWU9InVybCIgdmFsdWU9Ijw/cGhwIGVjaG8gJHVybCA/PiI+PGJyIC8+Cgk8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iUGFyc2UgUlNTIj4KPC9mb3JtPgogIAo8cD4KPGgyPlNlY3VyaXR5IE5vdGU6PC9oMj4KVGhpcyBpcyBhIHNpbXBsZSA8Yj5leGFtcGxlPC9iPiBzY3JpcHQuICBJZiB0aGlzIHdhcyBhIDxiPnJlYWw8L2I+IHNjcmlwdCB3ZSBwcm9iYWJseSB3b3VsZG4ndCBhbGxvdyAgc3RyYW5nZXJzIHRvIHN1Ym1pdCByYW5kb20gVVJMcywgYW5kIHdlIGNlcnRhaW5seSB3b3VsZG4ndCBzaW1wbHkgZWNobyBhbnl0aGluZyBwYXNzZWQgaW4gdGhlIFVSTC4gIEFkZGl0aW9uYWxseSBpdHMgYSBiYWQgaWRlYSB0byBsZWF2ZSB0aGlzIGV4YW1wbGUgc2NyaXB0IGx5aW5nIGFyb3VuZC4KPC9wPg==";s:46:"presibourse/magpie/scripts/magpie_slashbox.php";s:1628:"PD9waHAKCmRlZmluZSgnTUFHUElFX0RJUicsICcuLi8nKTsKcmVxdWlyZV9vbmNlKE1BR1BJRV9ESVIuJ3Jzc19mZXRjaC5pbmMnKTsKCQokdXJsID0gJF9HRVRbJ3Jzc191cmwnXTsKCj8+Cgo8aHRtbAo8Ym9keSBMSU5LPSIjOTk5OTk5IiBWTElOSz0iIzAwMDAwMCI+Cgo8Zm9ybT4KPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InJzc191cmwiIHNpemU9IjQwIiB2YWx1ZT0iPD9waHAgZWNobyAkdXJsID8+Ij48aW5wdXQgdHlwZT0iU3VibWl0Ij4KPC9mb3JtPgoKPD9waHAKCmlmICggJHVybCApIHsKCWVjaG8gImRpc3BsYXlpbmc6ICR1cmw8cD4iOwoJJHJzcyA9IGZldGNoX3JzcyggJHVybCApOwoJZWNobyBzbGFzaGJveCAoJHJzcyk7Cn0KCmVjaG8gIjxwcmU+IjsKcHJpbnRfcigkcnNzKTsKZWNobyAiPC9wcmU+IjsKPz4KCjwvYm9keT4KPC9odG1sPgoKPD9waHAKCiMganVzdCBzb21lIHF1aWNrIGFuZCB1Z2x5IHBocCB0byBnZW5lcmF0ZSBodG1sCiMKIwpmdW5jdGlvbiBzbGFzaGJveCAoJHJzcykgewoJZWNobyAiPHRhYmxlIGNlbGxwYWRkaW5nPTIgY2VsbHNwYWNpbmc9MD48dHI+IjsKCWVjaG8gIjx0ZCBiZ2NvbG9yPSMwMDY2NjY+IjsKCQoJIyBnZXQgdGhlIGNoYW5uZWwgdGl0bGUgYW5kIGxpbmsgcHJvcGVydGllcyBvZmYgb2YgdGhlIHJzcyBvYmplY3QKCSMKCSR0aXRsZSA9ICRyc3MtPmNoYW5uZWxbJ3RpdGxlJ107CgkkbGluayA9ICRyc3MtPmNoYW5uZWxbJ2xpbmsnXTsKCQoJZWNobyAiPGEgaHJlZj0kbGluaz48Zm9udCBjb2xvcj0jRkZGRkZGPjxiPiR0aXRsZTwvYj48L2ZvbnQ+PC9hPiI7CgllY2hvICI8L3RkPjwvdHI+IjsKCQoJIyBmb3JlYWNoIG92ZXIgZWFjaCBpdGVtIGluIHRoZSBhcnJheS4KCSMgZGlzcGxheWluZyBzaW1wbGUgbGlua3MKCSMKCSMgd2UgY291bGQgYmUgZG9pbmcgYWxsIHNvcnRzIG9mIG5lYXQgdGhpbmdzIHdpdGggdGhlIGR1YmxpbiBjb3JlCgkjIGluZm8sIG9yIHRoZSBldmVudCBpbmZvLCBvciB3aGF0IG5vdCwgYnV0IGtlZXBpbmcgaXQgc2ltcGxlIGZvciBub3cuCgkjCglmb3JlYWNoICgkcnNzLT5pdGVtcyBhcyAkaXRlbSApIHsKCQllY2hvICI8dHI+PHRkIGJnY29sb3I9I2NjY2NjYz4iOwoJCWVjaG8gIjxhIGhyZWY9JGl0ZW1bbGlua10+IjsKCQllY2hvICRpdGVtWyd0aXRsZSddOwoJCWVjaG8gIjwvYT48L3RkPjwvdHI+IjsKCX0JCQoJCgllY2hvICI8L3RhYmxlPiI7Cn0KCj8+Cg==";s:33:"presibourse/magpie/scripts/README";s:1332:"U29tZSBleGFtcGxlIG9uIGhvdyB0byB1c2UgTWFncGllOgoKKiBtYWdwaWVfc2ltcGxlLnBocCAqCiAgU2ltcGxlIGV4YW1wbGUgb2YgZmV0Y2hpbmcgYW5kIHBhcnNpbmcgYW4gUlNTIGZpbGUuIEV4cGVjdHMgdG8gYmUKICBjYWxsZWQgd2l0aCBhIHF1ZXJ5IHBhcmFtICdyc3NfdXJsPWh0dHA6Ly88c29tZSByc3MgZmlsZT4nCgoqIHNpbXBsZV9zbWFydHkucGhwICoKICBTaW1pbGlhciB0byBtYWdwaWVfc2ltcGxlLCBidXQgdXNpbmcgdGhlIFNtYXJ0eSB0ZW1wbGF0ZSBlbmdpbmUgdG8gZG8KICBkaXNwbGF5LiAgQWxzbyBkZW1vc3RyYXRlcyB1c2luZyByc3NfdXRpbHMuaW5jIGFuZCBhIHNtYXJ0eSBwbHVnaW4gdG8KICBwYXJzZSBhbmQgZGlzcGxheSB3aGVuIGVhY2ggUlNTIGl0ZW0gd2FzIHB1Ymxpc2hlZC4KCiogbWFncGllX2RlYnVnLnBocCAqCiAgRGlzcGxheXMgYWxsIHRoZSBpbmZvcm1hdGlvbiBhdmFpbGFibGUgZnJvbSBhIHBhcnNlZCBmZWVkLgoKKiBzbWFydHlfcGx1Z2luL21vZGlmaWVyLnJzc19kYXRlX3BhcnNlLnBocCAqCiAKICBBIFNtYXJ0eSBwbHVnaW4gZm9yIHBhcnNpbmcgUlNTIHN0eWxlIGRhdGVzLiAgWW91IG11c3QgaW5jbHVkZSByc3NfdXRpbHMuaW5jCiAgZm9yIHRoaXMgcGx1Z2luIHRvIHdvcmsuICBJdCBhbHNvIG11c3QgYmUgaW5zdGFsbGVkIGluIHRoZSBTbWFydHkgcGx1Z2luCiAgZGlyZWN0b3J5LCBzZWUgdGhlIFNtYXJ0eSBkb2NzIGZvciBkZXRhaWxzLgoKKiB0ZW1wbGF0ZXMvc2ltcGxlLnNtYXJ0eQogIEEgU21hcnR5IHRlbXBsYXRlIHVzZWQgYnkgc2ltcGxlX3NtYXJ0eS5waHAgd2hpY2ggZGVtb3N0cmF0ZXMKICBkaXNwbGF5aW5nIGFuIFJTUyBmZWVkIGFuZCB1c2luZyB0aGUgZGF0ZSBwYXJzZSBwbHVnaW4uCiAgCiAgClRoZSBTbWFydHkgdGVtcGxhdGUgZW5naW5lIGFuZCBkb2N1bWVudGF0aW9uIG9uIGhvdyB0byB1c2UgaXQgYXJlIGF2YWlsYWJsZSBmcm9tCmh0dHA6Ly9zbWFydHkucGhwLm5ldAo=";s:44:"presibourse/magpie/scripts/simple_smarty.php";s:2128:"PD9waHAKCi8vIERlZmluZSBwYXRoIHRvIFNtYXJ0eSBmaWxlcyAoZG9uJ3QgZm9yZ2V0IHRyYWlsaW5nIHNsYXNoKQovLyBhbmQgbG9hZCBsaWJyYXJ5LiAgKHlvdSdsbCB3YW50IHRvIGNoYW5nZSB0aGlzIHZhbHVlKQovLwovLyBOT1RFOiAgeW91IGNhbiBhbHNvIHNpbXBseSBhZGQgU21hcnR5IHRvIHlvdXIgaW5jbHVkZSBwYXRoCmRlZmluZSgnU01BUlRZX0RJUicsICcvaG9tZS9rZWxsYW4vcHJvanMvbWFncGllcnNzL3NjcmlwdHMvU21hcnR5LycpOwpyZXF1aXJlX29uY2UoU01BUlRZX0RJUi4nU21hcnR5LmNsYXNzLnBocCcpOwoKLy8gZGVmaW5lIHBhdGggdG8gTWFncGllIGZpbGVzIGFuZCBsb2FkIGxpYnJhcnkKLy8gKHlvdSdsbCB3YW50IHRvIGNoYW5nZSB0aGlzIHZhbHVlKQovLwovLyBOT1RFOiB5b3UgY2FuIGFsc28gc2ltcGxlIGFkZCBNYWdwaWVSU1MgdG8geW91ciBpbmNsdWRlIHBhdGgKZGVmaW5lKCdNQUdQSUVfRElSJywgJy9ob21lL2tlbGxhbi9wcm9qcy9tYWdwaWVyc3MvJyk7CnJlcXVpcmVfb25jZShNQUdQSUVfRElSLidyc3NfZmV0Y2guaW5jJyk7CnJlcXVpcmVfb25jZShNQUdQSUVfRElSLidyc3NfdXRpbHMuaW5jJyk7CgoKLy8gb3B0aW9uYWxseSBzaG93IGxvdHMgb2YgZGVidWdnaW5nIGluZm8KIyBkZWZpbmUoJ01BR1BJRV9ERUJVRycsIDIpOwoKLy8gb3B0aW9uYWxseSBmbHVzaCBjYWNoZSBxdWlja2x5IGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMsIAovLyBkb24ndCBkbyB0aGlzIG9uIGEgbGl2ZSBzaXRlCiMgZGVmaW5lKCdNQUdQSUVfQ0FDSEVfQUdFJywgMTApOwoKLy8gdXNlIGNhY2hlPyAgZGVmYXVsdCBpcyB5ZXMuICBzZWUgcnNzX2ZldGNoIGZvciBvdGhlciBNYWdwaWUgb3B0aW9ucwojIGRlZmluZSgnTUFHUElFX0NBQ0hFX09OJywgMSkKCi8vIHNldHVwIHRlbXBsYXRlIG9iamVjdAokc21hcnR5ID0gbmV3IFNtYXJ0eTsKJHNtYXJ0eS0+Y29tcGlsZV9jaGVjayA9IHRydWU7CgovLyB1cmwgb2YgYW4gcnNzIGZpbGUKJHVybCA9ICRfR0VUWydyc3NfdXJsJ107CgoKaWYgKCAkdXJsICkgewoJLy8gYXNzaWduIGEgdmFyaWFibGUgdG8gc21hcnR5IGZvciB1c2UgaW4gdGhlIHRlbXBsYXRlCgkkc21hcnR5LT5hc3NpZ24oJ3Jzc191cmwnLCAkdXJsKTsKCQoJLy8gdXNlIE1hZ3BpZVJTUyB0byBmZXRjaCByZW1vdGUgUlNTIGZpbGUsIGFuZCBwYXJzZSBpdAoJJHJzcyA9IGZldGNoX3JzcyggJHVybCApOwoJCgkvLyBpZiBmZXRjaF9yc3MgcmV0dXJuZWQgZmFsc2UsIHdlIGVuY291bnRlcmVkIGFuIGVycm9yCglpZiAoICEkcnNzICkgewoJCSRzbWFydHktPmFzc2lnbiggJ2Vycm9yJywgbWFncGllX2Vycm9yKCkgKTsKCX0KCSRzbWFydHktPmFzc2lnbigncnNzJywgJHJzcyApOwoJCgkkaXRlbSA9ICRyc3MtPml0ZW1zWzBdOwoJJGRhdGUgPSBwYXJzZV93M2NkdGYoICRpdGVtWydkYyddWydkYXRlJ10gKTsKCSRzbWFydHktPmFzc2lnbiggJ2RhdGUnLCAkZGF0ZSApOwp9CgovLyBwYXJzZSBzbWFydHkgdGVtcGxhdGUsIGFuZCBkaXNwbGF5IHVzaW5nIHRoZSB2YXJpYWJsZXMgd2UgYXNzaWduZWQKJHNtYXJ0eS0+ZGlzcGxheSgnc2ltcGxlLnNtYXJ0eScpOwoKPz4K";s:26:"presibourse/magpie/AUTHORS";s:40:"a2VsbGFuIDxrZWxsYW5AcHJvdGVzdC5uZXQ+Cg==";s:28:"presibourse/magpie/ChangeLog";s:12316:"MjAwNS0xMC0yOCAxNDoxMSAga2VsbGFuCgoJKiBleHRsaWIvU25vb3B5LmNsYXNzLmluYzogYSBiZXR0ZXIgc29sdXRpb24KCjIwMDUtMTAtMjggMTE6NTEgIGtlbGxhbgoKCSogZXh0bGliL1Nub29weS5jbGFzcy5pbmM6IGZpeCBhcmJ0cmlhcnkgY29kZSBleGVjdXRpb24KCSAgdnVsbmVyYWJpbGl0eSB3aGVuIHVzaW5nIGN1cmwrc3NsCgoJICBodHRwOi8vd3d3LnNlYy1jb25zdWx0LmNvbS8yMTYuaHRtbAoKMjAwNS0wMy0wOCAxMDo0NiAga2VsbGFuCgoJKiByc3NfcGFyc2UuaW5jOiBmaXggYnVnIHcvIGF0b20gYW5kIGRhdGUgbm9ybWFsaXphdGlvbgoKMjAwNS0wMi0wOSAxNDo1OSAga2VsbGFuCgoJKiByc3NfZmV0Y2guaW5jOiBmaXggc3RhbGUgY2FjaGUgYnVnCgoyMDA1LTAxLTI4IDAyOjI3ICBrZWxsYW4KCgkqIHJzc19wYXJzZS5pbmM6IHN1cHBvcnQgcGhwIHcvbyBhcnJheV9jaGFuZ2VfY2FzZQoKMjAwNS0wMS0yMyAyMDowMiAga2VsbGFuCgoJKiByc3NfZmV0Y2guaW5jOiBmaXggY2FjaGUgYnVnIGludHJvZHVjZWQgYnkgY2hhcnNldCBlbmNvZGluZwoKMjAwNS0wMS0xMiAwOToxNCAga2VsbGFuCgoJKiByc3NfY2FjaGUuaW5jLCByc3NfZmV0Y2guaW5jOiBtb3JlIHNhbml0eSBjaGVja3MgZm9yIHdoZW4gdGhpbmdzCgkgIGdvIHdyb25nCgoyMDA0LTEyLTEyIDEzOjQ0ICBrZWxsYW4KCgkqIElOU1RBTEwsIHJzc19jYWNoZS5pbmMsIHJzc191dGlscy5pbmM6IGRldGFiCgoyMDA0LTExLTIzIDIwOjE1ICBrZWxsYW4KCgkqIHJzc19wYXJzZS5pbmM6IGZpeCBjYWxsaW5nIGljb252IGluc3RlYWQgb2YgbWJfY29udmVydF9lbmNvZGluZwoKMjAwNC0xMS0yMiAwMjoxMSAga2VsbGFuCgoJKiBDSEFOR0VTLCBDaGFuZ2VMb2csIHJzc19wYXJzZS5pbmMsIHNjcmlwdHMvbWFncGllX2RlYnVnLnBocDogbGFzdAoJICBiaXQgb2YgdGlkeWluZwoKMjAwNC0xMS0yMiAwMTo0NSAga2VsbGFuCgoJKiByc3NfZmV0Y2guaW5jOiBkZXRhYiwgYnVtcCB2ZXJzaW9uCgoyMDA0LTExLTIyIDAxOjQzICBrZWxsYW4KCgkqIHJzc19wYXJzZS5pbmM6IHdhcyBmaWx0ZXJpbmcgdG9vIG11Y2gKCjIwMDQtMTEtMjIgMDA6MDMgIGtlbGxhbgoKCSogcnNzX2ZldGNoLmluYywgcnNzX3BhcnNlLmluYzogY2FjaGUgb24gJHVybCAuICRvdXRwdXRfZW5jb2RpbmcKCSAgb3RoZXJ3aXNlIHdlIGNhbiBnZXQgbXVuZ2VkIG91dHB1dAoKMjAwNC0xMS0yMSAyMzo1MiAga2VsbGFuCgoJKiByc3NfcGFyc2UuaW5jOiBhZGQgV0FSTklORwoKMjAwNC0xMS0yMSAyMzo0NSAga2VsbGFuCgoJKiByc3NfcGFyc2UuaW5jOiBkb24ndCBzZXQgRVJST1Igb24gbm90aWNlIG9yIHdhcm5pbmcgKHJzc19mZXRjaAoJICBkaWVzIG9uIHBhcnNlIGVycm9ycykKCjIwMDQtMTEtMjEgMjM6NDQgIGtlbGxhbgoKCSogcnNzX2ZldGNoLmluYzogYWRkIGVuY29kaW5nIGRlZmluZXMgKGZpeCB0aW1lb3V0IGVycm9yIHJlcG9ydGluZykKCjIwMDQtMTEtMjEgMjA6MjEgIGtlbGxhbgoKCSogcnNzX3BhcnNlLmluYzogaW5jb3Jwb3JhdGUgc3RldmUncyBwYXRjaAoKMjAwNC0xMS0yMSAxOToyNiAga2VsbGFuCgoJKiByc3NfcGFyc2UuaW5jOiByZW1vdmUgb2xkIGRlYnVnZ2luZyBmdW5jdGlvbnMsIHRvdGFsbHkKCSAgYXJiaXRyYXJpbHkuCW1pZ2h0IGJyZWFrIHN0dWZmLiAgY2FuJ3QgcmVhbGx5IGV4cGxhaW4gd2h5IGknbQoJICBkb2luZyB0aGlzLgoKMjAwNC0xMC0yOCAxNTo1MiAga2VsbGFuCgoJKiByc3NfcGFyc2UuaW5jOiBmaXhlZCAnPScgaW5zdGVhZCBvZiAnPT0nCgoyMDA0LTEwLTI2IDAwOjQ4ICBrZWxsYW4KCgkqIHJzc19wYXJzZS5pbmM6IGNoYW5jZSBlcG9jaCB0byB0aW1lc3RhbXAgdG8gY29uZm9ybSB3LyBwaHAgbmFtaW5nCgkgIGNvbnZlbnRpb25zCgoyMDA0LTA2LTE1IDEyOjAwICBrZWxsYW4KCgkqIHJzc19wYXJzZS5pbmM6IFtubyBsb2cgbWVzc2FnZV0KCjIwMDQtMDQtMjYgMTQ6MTYgIGtlbGxhbgoKCSogcnNzX2ZldGNoLmluYzogYnVtcCB2ZXJzaW9uCgoyMDA0LTA0LTI2IDEyOjM2ICBrZWxsYW4KCgkqIHJzc19wYXJzZS5pbmM6IGZpeCBmaWVsZCBkb3VibGluZwoKMjAwNC0wNC0yNCAxNzo0NyAga2VsbGFuCgoJKiBDSEFOR0VTLCBDaGFuZ2VMb2c6IHVwZGF0ZWQKCjIwMDQtMDQtMjQgMTc6MzUgIGtlbGxhbgoKCSogcnNzX2ZldGNoLmluYzogYnVtcGVkIHZlcnNpb24KCjIwMDQtMDQtMjQgMTY6NTIgIGtlbGxhbgoKCSogcnNzX3BhcnNlLmluYzogc3VwcG9ydCBhcmJpdHJhcnkgYXRvbSBjb250ZW50IGNvbnN0cnVjdHMKCgkgIHNvbWUgcmVmYWN0b3JpbmcKCjIwMDQtMDQtMjQgMTY6MTUgIGtlbGxhbgoKCSogcnNzX3BhcnNlLmluYzogc3VwcG9ydCBzdW1tYXJ5IGNvbnRlbnQgY29udHN0cnVjdC4gIGFkZCBub3JtYWxpemUKCSAgZnVuY3Rpb24KCjIwMDQtMDMtMjcgMTY6MjkgIGtlbGxhbgoKCSogZXh0bGliL1Nub29weS5jbGFzcy5pbmM6IGFjY2VwdCBzZWxmLXNpZ25lZCBjZXJ0cwoKMjAwNC0wMy0yNyAxMjo1MyAga2VsbGFuCgoJKiBleHRsaWIvU25vb3B5LmNsYXNzLmluYzogZml4ZWQgU1NMIHN1cHBvcnQgICAqIHNldCBzdGF0dXMgICAqIHNldAoJICBlcnJvciBvbiBiYWQgY3VybAoKCSAgKGFsc28gcmlwcGVkIG91dCBiaWcgY2h1bmtzIG9mIGRlYWQgd2VpZ2h0IChzdWJtaXRfZm9ybSkgd2hpY2gKCSAgd2VyZSBnZXR0aW5nIGluIG15IHdheQoKMjAwNC0wMS0yNSAwMjoyNSAga2VsbGFuCgoJKiByc3NfcGFyc2UuaW5jOiBtYWtlIFJTUyAxLjAncyByZGY6YWJvdXQgYXZhaWxhYmxlCgoyMDA0LTAxLTI1IDAyOjA3ICBrZWxsYW4KCgkqIHJzc19wYXJzZS5pbmM6IGNsZWFuIHVwIHRleHQsIGFuZCBsaW5lIGZvcm1hdHMuICBhZGQgc3VwcG9ydCBpdGVtCgkgIHJkZjphYm91dAoKMjAwNC0wMS0yNCAyMzo0MCAga2VsbGFuCgoJKiBDSEFOR0VTLCBDaGFuZ2VMb2c6IHVwZGF0ZSBjaGFuZ2VzCgoyMDA0LTAxLTI0IDIzOjM3ICBrZWxsYW4KCgkqIHJzc19mZXRjaC5pbmM6IHVwZGF0ZWQgdmVyc2lvbgoKMjAwNC0wMS0yNCAyMzozNSAga2VsbGFuCgoJKiByc3NfcGFyc2UuaW5jOiB3aGl0ZXNwYWNlCgoyMDA0LTAxLTI0IDIzOjIzICBrZWxsYW4KCgkqIGV4dGxpYi9Tbm9vcHkuY2xhc3MuaW5jOiBzdXBwb3J0IGJhZGx5IGZvcm1hdHRlZCBodHRwIGhlYWRlcnMKCjIwMDQtMDEtMjQgMjM6MjAgIGtlbGxhbgoKCSogcnNzX3BhcnNlLmluYzogYWRkZWQgYWxwaGEgYXRvbSBwYXJzaW5nIHN1cHBvcnQKCjIwMDMtMDYtMjUgMjI6MzQgIGtlbGxhbgoKCSogZXh0bGliL1Nub29weS5jbGFzcy5pbmM6IGZpeGVkIGZyZWFkIDQuMy4yIGNvbXBhdGliaWxpdHkgcHJvYmxlbXMKCjIwMDMtMDYtMTMgMTE6MzEgIGtlbGxhbgoKCSogcnNzX2ZldGNoLmluYzogcmVzZXQgY2FjaGUgb24gMzA0CgoyMDAzLTA2LTEyIDIxOjM3ICBrZWxsYW4KCgkqIHJzc19jYWNoZS5pbmMsIHJzc19mZXRjaC5pbmMsIHJzc19wYXJzZS5pbmMsIHJzc191dGlscy5pbmM6CgkgIGJ1bXBlZCB1cCB2ZXJzaW9uIG51bWJlcnMKCjIwMDMtMDYtMTIgMjE6MzIgIGtlbGxhbgoKCSogaHRkb2NzL2luZGV4Lmh0bWw6IHVwZGF0ZWQgbmV3cwoKMjAwMy0wNi0xMiAyMToyNyAga2VsbGFuCgoJKiBORVdTOiBhIG1hbnVhbCBibG9nIDopCgoyMDAzLTA2LTEyIDIxOjIyICBrZWxsYW4KCgkqIGh0ZG9jcy9pbmRleC5odG1sOiBmdWxseSBxdWFsaWZpZWQgaW1nCgoyMDAzLTA2LTEyIDIxOjIwICBrZWxsYW4KCgkqIGh0ZG9jcy9pbmRleC5odG1sOiBjbGVhbiB1cC4JYWRkZWQgYmFkZ2UuCgoyMDAzLTA2LTEyIDIxOjA0ICBrZWxsYW4KCgkqIHJzc191dGlscy5pbmM6IGNsZWFuIHVwIHJlZ2V4CgoyMDAzLTA2LTEyIDIxOjAyICBrZWxsYW4KCgkqIHJzc19jYWNoZS5pbmM6IHN1cHByZXNzIHNvbWUgd2FybmluZ3MKCjIwMDMtMDUtMzAgMjA6NDQgIGtlbGxhbgoKCSogZXh0bGliL1Nub29weS5jbGFzcy5pbmM6IG1vcmUgY29tbWVudHMsIGNsZWFuZWQgdXAgbm90aWNlCgoyMDAzLTA1LTMwIDE1OjE0ICBrZWxsYW4KCgkqIGV4dGxpYi9Tbm9vcHkuY2xhc3MuaW5jOiBkb24ndCBhZHZlcnRpc2UgZ3ppcCBzdXBwb3J0IGlmIHRoZSB1c2VyCgkgIGhhc24ndCBidWlsdCBwaHAgd2l0aCBnemluZmxhdGUgc3VwcG9ydAoKMjAwMy0wNS0xMiAyMjozMiAga2VsbGFuCgoJKiBDaGFuZ2VMb2c6IGNoYW5nZXMKCjIwMDMtMDUtMTIgMjI6MTEgIGtlbGxhbgoKCSogaHRkb2NzL2luZGV4Lmh0bWw6IGFubm91bmNlIDAuNQoKMjAwMy0wNS0xMiAyMTo0MiAga2VsbGFuCgoJKiBodGRvY3MvaW5kZXguaHRtbDogY2hhbmdlCgoyMDAzLTA1LTEyIDIxOjM5ICBrZWxsYW4KCgkqIHJzc19mZXRjaC5pbmM6IHVzZSBnemlwCgoyMDAzLTA1LTEyIDIxOjM3ICBrZWxsYW4KCgkqIGV4dGxpYi9Tbm9vcHkuY2xhc3MuaW5jOiBhZGRlZCBzdXBwb3J0IGd6aXAgZW5jb2RlZCBjb250ZW50CgkgIG5lZ29pYXRpb24KCjIwMDMtMDUtMTIgMjE6MzIgIGtlbGxhbgoKCSogcnNzX2NhY2hlLmluYywgcnNzX2ZldGNoLmluYywgcnNzX3BhcnNlLmluYywgcnNzX3V0aWxzLmluYzogZml4ZWQKCSAgdHlwb2VzCgoyMDAzLTA0LTI2IDIxOjQ0ICBrZWxsYW4KCgkqIHJzc19wYXJzZS5pbmM6IGZpeCBtaW5vciB0eXBvCgoyMDAzLTA0LTE4IDA4OjE5ICBrZWxsYW4KCgkqIGh0ZG9jcy9jb29rYm9vay5odG1sOiB1cGRhdGVkIGNvb2tib29rIHRvIHNob3cgbW9yZSBjb2RlIGZvcgoJICBsaW1pdGluZyBpdGVtcwoKMjAwMy0wMy0wMyAxNjowMiAga2VsbGFuCgoJKiByc3NfcGFyc2UuaW5jLCBzY3JpcHRzL21hZ3BpZV9zbGFzaGJveC5waHA6IGNvbW1pdHRlZCAob3IKCSAgYWRwYXRlZCkgcGF0Y2ggZnJvbSBOaWNvbGEgKHd3dy50ZWNobmljay5jb20pIHRvIHF1ZWxsICdVbmRlZmluZWQKCSAgSW5kZXhlcycgbm90aWNlcwoKMjAwMy0wMy0wMyAxNTo1OSAga2VsbGFuCgoJKiByc3NfZmV0Y2guaW5jOiBjb21taXRlZCBwYXRjaCBmcm9tIG5pY29sYSAod3d3LnRlY2huaWNrLmNvbSkgdG8KCSAgcXVlbGwgJ3VuZGVmaW5lZCBpbmRleGVzJyBub3RpY2VzLgoKCSAgKiBNYWdwaWUgbm93IGF1dG9tYXRpY2FsbHkgaW5jbHVkZXMgaXRzIHZlcnNpb24gaW4gdGhlCgkgIHVzZXItYWdlbnQsICYgd2hldGhlciBjYWNoZWluZyBpcyB0dXJuZWQgb24uCgoyMDAzLTAyLTEyIDAxOjIyICBrZWxsYW4KCgkqIENIQU5HRVMsIENoYW5nZUxvZzogQ2hhbmdlTG9nIG5vdyBhdXRvLWdlbmVyYXRlZCBieSBjdnMyY2wKCjIwMDMtMDItMTIgMDA6MjEgIGtlbGxhbgoKCSogcnNzX2ZldGNoLmluYzogYmV0dGVyIGVycm9ycywgaG9wZWZ1bGx5IHN0b21wZWQgb24gcGVza3kgbm90aWNlcwoKMjAwMy0wMi0xMiAwMDoxOSAga2VsbGFuCgoJKiByc3NfcGFyc2UuaW5jOiBjaGVjayB0byBzZWUgaXMgeG1sIGlzIHN1cHBvcnRlZCwgaWYgbm90IGRpZQoKCSAgYWxzbyB0aHJvdyBiZXR0ZXIgeG1sIGVycm9ycwoKMjAwMy0wMi0xMiAwMDoxOCAga2VsbGFuCgoJKiByc3NfY2FjaGUuaW5jOiBob3BlZnVsbHkgY2xlYXJlZCB1cCBzb21lIG5vdGljZXMgdGhhdCB3ZXJlIGJlaW5nCgkgIHRocm93biBpbnRvIHRoZSBsb2cKCgkgIGZpeGVkIGEgZGVidWcgc3RhdGVtZW50IHRoYXQgd2FzIGJlaW5nIGNhbGxlZCBhcyBhbiBlcnJvcgoKMjAwMy0wMi0xMiAwMDoxNSAga2VsbGFuCgoJKiBzY3JpcHRzLzogbWFncGllX3NpbXBsZS5waHAsIG1hZ3BpZV9zbGFzaGJveC5waHA6IG1vdmVkCgkgIG1hZ3BpZV9zaW1wbGUgdG8gbWFncGllX3NsYXNoYm94LCBhbmQgcmVwbGFjZWQgaXQgd2l0aCBhIHNpbXBsZXIKCSAgZGVtby4KCjIwMDMtMDItMTIgMDA6MDIgIGtlbGxhbgoKCSogSU5TVEFMTCwgUkVBRE1FLCBUUk9VQkxFU0hPT1RJTkc6IEltcHJvdmVkIGRvY3VtZW50YXRpb24uICBCZXR0ZXIKCSAgaW5zdGFsbCBpbnN0cnVjdGlvbnMuCgoJICBUUk9VQkxFU0hPT1RJTkcgY292ZXIgY29tbW9uIGluc3RhbGxhdGlvbiBhbmQgdXNhZ2UgcHJvYmxlbXMKCjIwMDMtMDEtMjIgMTQ6NDAgIGtlbGxhbgoKCSogaHRkb2NzL2Nvb2tib29rLmh0bWw6IGFkZGVkIGNvb2tib29rLmh0bWwKCjIwMDMtMDEtMjEgMjM6NDcgIGtlbGxhbgoKCSogY29va2Jvb2s6IGEgbWFncGllIGNvb2tib29rCgoyMDAzLTAxLTIwIDEwOjA5ICBrZWxsYW4KCgkqIENoYW5nZUxvZzogdXBkYXRlZAoKMjAwMy0wMS0yMCAwOToyMyAga2VsbGFuCgoJKiBzY3JpcHRzL3NpbXBsZV9zbWFydHkucGhwOiBtaW5vciBjbGVhbiB1cAoKMjAwMy0wMS0yMCAwOToxNSAga2VsbGFuCgoJKiBzY3JpcHRzL1JFQURNRTogYWRkZWQgc21hcnR5IHVybAoKMjAwMy0wMS0yMCAwOToxNCAga2VsbGFuCgoJKiBtYWdwaWVfc2ltcGxlLnBocCwgaHRkb2NzL2luZGV4Lmh0bWwsIHNjcmlwdHMvUkVBRE1FLAoJICBzY3JpcHRzL21hZ3BpZV9kZWJ1Zy5waHAsIHNjcmlwdHMvbWFncGllX3NpbXBsZS5waHAsCgkgIHNjcmlwdHMvc2ltcGxlX3NtYXJ0eS5waHAsCgkgIHNjcmlwdHMvc21hcnR5X3BsdWdpbi9tb2RpZmllci5yc3NfZGF0ZV9wYXJzZS5waHAsCgkgIHNjcmlwdHMvdGVtcGxhdGVzL3NpbXBsZS5zbWFydHk6IEFkZGVkIHNjcmlwdHMgZGlyZWN0b3J5IGZvcgoJICBleGFtcGxlcyBvbiBob3cgdG8gdXNlIE1hZ3BpZVJTUwoKCSAgbWFncGllX3NpbXBsZSAtIGlzIGEgc2ltcGxlIGV4YW1wbGUgbWFncGllX2RlYnVnIC0gc3BldyBhbGwgdGhlCgkgIGluZm9ybWF0aW9uIGZyb20gYSBwYXJzZWQgUlNTIGZlZWQgc2ltcGxlX3NtYXJ5IC0gZXhhbXBsZSBvZgoJICB1c2luZyBtYWdwaWUgd2l0aCBTbWFydHkgdGVtcGxhdGUgc3lzdGVtCgkgIHNtYXJ0eV9wbHVnaW4vbW9kaWZpZXIucnNzX2RhdGVfcGFyc2UucGhwIC0gc3VwcG9ydCBmaWxlIGZvciB0aGUKCSAgc21hcnR5IGRlbW8gdGVtcGxhdGVzL3NpbXBsZS5zbWFyeSAtIHRlbXBsYXRlIGZvciB0aGUgc21hcnR5IGRlbW8KCjIwMDMtMDEtMjAgMDk6MTEgIGtlbGxhbgoKCSogcnNzX2ZldGNoLmluYywgcnNzX3BhcnNlLmluYzogY2hhbmdlcyB0byBlcnJvciBoYW5kbGluZyB0byBnaXZlCgkgIHNjcmlwdCBhdXRob3JzIG1vcmUgYWNjZXNzIHRvIG1hZ3BpZSdzIGVycm9ycy4KCgkgIGFkZGVkIG1ldGhvZCBtYWdwaWVfZXJyb3IoKSB0byByZXRyaWV2ZSBnbG9iYWwgTUFHUElFX0VSUk9SCgkgIHZhcmlhYmxlIGZvciB3aGVuIGZldGNoX3JzcygpIHJldHVybnMgZmFsc2UKCjIwMDItMTAtMjYgMTk6MDIgIGtlbGxhbgoKCSogaHRkb2NzL2luZGV4Lmh0bWw6IHB1dHRpbmcgdGhlIHdlYnNpdGUgdW5kZXIgc291cmNlIGNvbnRyb2wKCjIwMDItMTAtMjYgMTg6NDMgIGtlbGxhbgoKCSogQVVUSE9SUywgQ2hhbmdlTG9nLCBJTlNUQUxMLCBSRUFETUU6IHNvbWUgZG9jdW1lbnRhdGlvbiB0byBtYWtlCgkgIGl0IGFsbCBsb29rIG9mZmljaWFsIDopCgoyMDAyLTEwLTI1IDIzOjA0ICBrZWxsYW4KCgkqIG1hZ3BpZV9zaW1wbGUucGhwOiBxdXh4CgoyMDAyLTEwLTI1IDIzOjA0ICBrZWxsYW4KCgkqIHJzc19wYXJzZS5pbmM6IGFkZGVkIHN1cHBvcnQgZm9yIHRleHRpbnB1dCBhbmQgaW1hZ2UKCjIwMDItMTAtMjUgMTk6MjMgIGtlbGxhbgoKCSogbWFncGllX3NpbXBsZS5waHAsIHJzc19jYWNoZS5pbmMsIHJzc19mZXRjaC5pbmMsIHJzc19wYXJzZS5pbmMsCgkgIHJzc191dGlscy5pbmM6IHN3aXRjaGVkIHRvIHVzaW5nIFNub29weSBmb3IgZmV0Y2hpbmcgcmVtb3RlIFJTUwoJICBmaWxlcy4KCgkgIGFkZGVkIHN1cHBvcnQgZm9yIGNvbmRpdGlvbmFsIGdldHMKCjIwMDItMTAtMjUgMTk6MjIgIGtlbGxhbgoKCSogcnNzX2NhY2hlLmluYywgcnNzX2ZldGNoLmluYywgcnNzX3BhcnNlLmluYywgcnNzX3V0aWxzLmluYzoKCSAgQ2hhbmdlIGNvbW1lbnQgc3R5bGUgdG8gc2xhdmlzaGx5IGltaXRhdGUgdGhlIHBocGluc2lkZXIgc3R5bGUKCSAgZm91bmQgaW4gU21hcnR5IGFuZCBTbm9vcHkgOikKCjIwMDItMTAtMjUgMTk6MTggIGtlbGxhbgoKCSogZXh0bGliL1Nub29weS5jbGFzcy5pbmM6IGFkZGVkIFNub29weSBpbiBvcmRlciB0byBzdXBwb3J0CgkgIGNvbmRpdGlvbmFsIGdldHMKCjIwMDItMTAtMjMgMjM6MTkgIGtlbGxhbgoKCSogbWFncGllX3NpbXBsZS5waHAsIHJzc19jYWNoZS5pbmMsIHJzc19mZXRjaC5pbmMsIHJzc19wYXJzZS5pbmM6CgkgIE1BSk9SIENMRUFOVVAhCgoJICAqIHJzc19mZXRjaCBnb3QgcmlkIG9mIHRoZSBvcHRpb25zIGFycmF5LCByZXBsYWNlZCBpdCB3aXRoIGEgbW9yZQoJICBQSFAtbGlrZSBzb2x1dGlvbiBvZiB1c2luZyBkZWZpbmVzLiAgY29uc3RhbnRzIGFyZSBzZXR1cCwgd2l0aAoJICBkZWZhdWx0cywgaW4gdGhlIGZ1bmN0aW9uIGluaXQoKQoKCSAgZ290IHJpZCBvZiB0aGUgaWRpb20gb2YgcGFzc2luZyBiYWNrIGFuIGFycmF5LCBpdHMgd2FzIGF3a3dhcmQgdG8KCSAgZGVhbCB3aXRoIGluIFBIUCwgYW5kIHVudXN1YWwgKGFuZCBjb25zcXVlbnRseSBjb25mdXNpbmcgdG8KCSAgcGVvcGxlKS4gIG5vdyBpIHJldHVybiB0cnVlL2ZhbHNlIHZhbHVlcywgYW5kIHRyeSB0byBzZXR1cCBlcnJvcgoJICBzdHJpbmcgd2hlcmUgYXBwcm9waWF0ZSAocnNzX2NhY2hlIGhhcyB0aGUgbW9zdCBjb21wbGV0ZSBleGFtcGxlCgkgIG9mIHRoaXMpCgoJICBjaGFuZ2UgdGhlIGxvZ2ljIGZvciBpbnRlcmFjdGluZyB3aXRoIHRoZSBjYWNoZQoKCSAgKiByc3NfY2FjaGUgbWFqb3IgcmUtd29ya2luZyBvZiBob3cgZXJyb3IgYXJlIGhhbmRsZWQuICB0cmllZCB0bwoJICBtYWtlIHRoZSBjb2RlIG1vcmUgcmVzaWxsaWVudC4gIHRoZSBjYWNoZSBpcyBub3cgbXVjaCBtb3JlIGF3YXJlCgkgIG9mIE1BWF9BR0UsIHdoZXJlIGJlZm9yZSB0aGlzIHdhcyBiZWluZyBkcml2ZW4gb3V0IG9mIHJzc19mZXRjaAoJICAod2hpY2ggd2FzIHNpbGx5KQoKCSAgKiByc3NfcGFyc2UgcHJvcGVybHkgaGFuZGxlcyB4bWwgcGFyc2UgZXJyb3JzLiAgdXNlZCB0byBzYWlsCgkgIGFsb25nIGJsaXRoZWx5IHVuYXdhcmUuCgoyMDAyLTA5LTExIDExOjExICBrZWxsYW4KCgkqIHJzc19jYWNoZS5pbmMsIHJzc19wYXJzZS5pbmMsIG1hZ3BpZV9zaW1wbGUucGhwLCByc3NfZmV0Y2guaW5jLAoJICByc3NfdXRpbHMuaW5jOiBJbml0aWFsIHJldmlzaW9uCgoyMDAyLTA5LTExIDExOjExICBrZWxsYW4KCgkqIHJzc19jYWNoZS5pbmMsIHJzc19wYXJzZS5pbmMsIG1hZ3BpZV9zaW1wbGUucGhwLCByc3NfZmV0Y2guaW5jLAoJICByc3NfdXRpbHMuaW5jOiBpbml0aWFsIGltcG9ydAoK";s:26:"presibourse/magpie/CHANGES";s:1484:"VmVyc2lvbiAwLjcyCi0tLS0tLS0tLS0tCiAgICAtIGZpeCBzZWN1cml0eSBleHBsb2l0OiBodHRwOi8vd3d3LnNlYy1jb25zdWx0LmNvbS8yMTYuaHRtbAogICAgClZlcnNpb24gMC43Ci0tLS0tLS0tLS0tCiAgICAtIHN1cHBvcnQgZm9yIGlucHV0IGFuZCBvdXRwdXQgY2hhcnNldCBlbmNvZGluZwogICAgICBiYXNlZCBvbiB0aGUgd29yayBpbiBGb0YsIHVzZXMgaWNvbnYgb3IgbWJzdHJpbmcgaWYgYXZhaWxhYmxlCiAgICAtCgpWZXJzaW9uIDAuNgotLS0tLS0tLS0tLQogICAgLSBiYXNpYyBzdXBwb3J0IGZvciBBdG9tIHN5bmRpY2F0aW9uIGZvcm1hdAogICAgICBpbmNsdWRpbmcgc3VwcG9ydCBmb3IgQXRvbSBjb250ZW50IGNvbnN0cnVjdHMKICAgIC0gZml4ZWQgc3VwcG9ydCBmb3IgcHJpdmF0ZSBmZWVkcyAoSFRUUCBBdXRoIGFuZCBTU0wpCiAgICAgICh0aGFua3MgdG8gc2lsdmVyb3JhbmdlLmNvbSBmb3IgcHJvdmlkaW5nIHRlc3QgZmVlZHMpCgktIHN1cHBvcnQgZm9yIHNvbWUgYnJva2VuIHdlYnNlcnZlcnMKClZlcnNpb24gMC41MgotLS0tLS0tLS0tLQogICAgLSBzdXBwb3J0IEdaSVAgY29udGVudCBuZWdvaWF0aW9uCiAgICAtIFBIUCA0LjMuMiBzdXBwb3J0CgpWZXJzaW9uIDAuNAotLS0tLS0tLS0tLQoJLSBpbXByb3ZlZCBlcnJvciBoYW5kbGluZywgYmV0dGVyIGFjY2VzcyBmb3Igc2NyaXB0IGF1dGhvcnMKCS0gaW5jbHVkZWQgZXhhbXBsZSBzY3JpcHRzIG9mIHdvcmtpbmcgd2l0aCBNYWdwaWVSU1MKCS0gbmV3IFNtYXJ0eSBwbHVnaW4gZm9yIFJTUyBkYXRlIHBhcnNpbmcKClZlcnNpb24gMC4zCi0tLS0tLS0tLS0tCgktIGFkZGVkIHN1cHBvcnQgZm9yIGNvbmRpdGlvbmFsIGdldHMgKExhc3QtTW9kaWZpZWQsIEVUYWcpCgktIG5vdyB1c2UgU25vb3B5IHRvIGhhbmRsZSBmZXRjaGluZyBSU1MgZmlsZXMKCQpWZXJzaW9uIDAuMgotLS0tLS0tLS0tLQoJLSBNQUpPUiBDTEVBTiBVUAoJLSByZW1vdmVkIGtsdWRneSAkb3B0aW9ucyBhcnJheSBpbiBmYXZvdXIgb2YgY29uc3RhbnRzCgktIHBoYXNlZCBvdXQgcmV0dXJuaW5nIGFycmF5cwoJLSBhZGRlZCBiZXR0ZXIgZXJyb3IgaGFuZGxpbmcKCS0gcmUtd29ya2VkIGNvbW1lbnRzCg==";s:27:"presibourse/magpie/cookbook";s:4044:"TUFHUElFUlNTIFJFQ0lQRVM6ICBDb29raW5nIHdpdGggQ29yYmllcwoKICAgICAgICAgIkZvdXIgYW5kIHR3ZW50eSBibGFja2JpcmRzIGJha2VkIGluIGEgcGllLiIKCjEuIExJTUlUIFRIRSBOVU1CRVIgT0YgSEVBRExJTkVTKEFLQSBJVEVNUykgUkVUVVJORUQuCgpQUk9CTEVNOgoKWW91IHdhbnQgdG8gZGlzcGxheSB0aGUgMTAgKG9yIDMpIG1vc3QgcmVjZW50IGhlYWRsaW5lcywgYnV0IHRoZSBSU1MgZmVlZApjb250YWlucyAxNS4KClNPTFVUSU9OOgoKJG51bV9pdGVtcyA9IDEwOwokcnNzID0gZmV0Y2hfcnNzKCR1cmwpOwoKJGl0ZW1zID0gYXJyYXlfc2xpY2UoJHJzcy0+aXRlbXMsIDAsICRudW1faXRlbXMpOwoKRElTQ1VTU0lPTjoKClJhdGhlciB0aGVuIHRyeWluZyB0byBsaW1pdCB0aGUgbnVtYmVyIG9mIGl0ZW1zIE1hZ3BpZSBwYXJzZXMsIGEgbXVjaCBzaW1wbGVyLAphbmQgbW9yZSBmbGV4aWJsZSBhcHByb2FjaCBpcyB0byB0YWtlIGEgInNsaWNlIiBvZiB0aGUgYXJyYXkgb2YgaXRlbXMuICBBbmQKYXJyYXlfc2xpY2UoKSBpcyBzbWFydCBlbm91Z2ggdG8gZG8gdGhlIHJpZ2h0IHRoaW5nIGlmIHRoZSBmZWVkIGhhcyBsZXNzIGl0ZW1zCnRoZW4gJG51bV9pdGVtcy4KClNlZTogaHR0cDovL3d3dy5waHAubmV0L2FycmF5X3NsaWNlCgoKMi4gRElTUExBWSBBIENVU1RPTSBFUlJPUiBNRVNTQUdFIElGIFNPTUVUSElORyBHT0VTIFdST05HCgpQUk9CTEVNOgoKWW91IGRvbid0IHdhbnQgTWFncGllJ3MgZXJyb3IgbWVzc2FnZXMgc2hvd2luZyB1cCBpZiBzb21ldGhpbmcgZ29lcyB3cm9uZy4KClNPTFVUSU9OOgoKIyBNYWdwaWUgdGhyb3dzIFVTRVJfV0FSTklOR1Mgb25seQojIHNvIHlvdSBjYW4gY2xvYWsgdGhlc2UsIGJ5IG9ubHkgc2hvd2luZyBFUlJPUnMKZXJyb3JfcmVwb3J0aW5nKEVfRVJST1IpOwoKIyBjaGVjayB0aGUgcmV0dXJuIHZhbHVlIG9mIGZldGNoX3JzcygpCgokcnNzID0gZmV0Y2hfcnNzKCR1cmwpOwoKaWYgKCAkcnNzICkgewouLi5kaXNwbGF5IHJzcyBmZWVkLi4uCn0KZWxzZSB7CgllY2hvICJBbiBlcnJvciBvY2N1cmVkISAgIiAuCgkgICAgICJDb25zaWRlciBkb25hdGluZyBtb3JlICQkJCBmb3IgcmVzdG9yYXRpb24gb2Ygc2VydmljZXMuIiAuCgkJICI8YnI+RXJyb3IgTWVzc2FnZTogIgkuIG1hZ3BpZV9lcnJvcigpOwp9CgpESVNDVVNTSU9OOgoKTWFncGllUlNTIHRyaWdnZXJzIGEgd2FybmluZyBpbiBhIG51bWJlciBvZiBjaXJjdW1zdGFuY2VzLiAgVGhlIDIgbW9zdCBjb21tb24KY2lyY3Vtc3RhbmNlcyBhcmU6ICBpZiB0aGUgc3BlY2lmaWVkIFJTUyBmaWxlIGlzbid0IHByb3Blcmx5IGZvcm1lZCAodXN1YWxseQpiZWNhdXNlIGl0IGluY2x1ZGVzIGlsbGVnYWwgSFRNTCksIG9yIGlmIE1hZ3BpZSBjYW4ndCBkb3dubG9hZCB0aGUgcmVtb3RlIFJTUwpmaWxlLCBhbmQgdGhlcmUgaXMgbm8gY2FjaGVkIHZlcnNpb24uICAKCklmIHlvdSBkb24ndCB3YW50IHlvdXIgdXNlcnMgdG8gc2VlIHRoZXNlIHdhcm5pbmdzIGNoYW5nZSB5b3VyIGVycm9yX3JlcG9ydGluZwpzZXR0aW5ncyB0byBvbmx5IGRpc3BsYXkgRVJST1JzLiAgQW5vdGhlciBvcHRpb24gaXMgdG8gdHVybiBvZmYgZGlzcGxheV9lcnJvciwKc28gdGhhdCBXQVJOSU5HcywgYW5kIE5PVElDRXMgc3RpbGwgZ28gdG8gdGhlIGVycm9yX2xvZyBidXQgbm90IHRvIHRoZSB3ZWJwYWdlcy4KCllvdSBjYW4gZG8gdGhpcyB3aXRoOgoKaW5pX3NldCgnZGlzcGxheV9lcnJvcnMnLCAwKTsKClNlZTogaHR0cDovL3d3dy5waHAubmV0L2Vycm9yX3JlcG9ydGluZywKICAgICBodHRwOi8vd3d3LnBocC5uZXQvaW5pX3NldCwgCgkgaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9yZWYuZXJyb3JmdW5jLnBocAoKMy4gR0VORVJBVEUgQSBORVcgUlNTIEZFRUQKClBST0JMRU06CgpDcmVhdGUgYW4gUlNTIGZlZWQgZm9yIG90aGVyIHBlb3BsZSB0byB1c2UuCgpTT0xVVElPTjoKClVzZSBVc2VmdWwgSW5jJ3MgUlNTV3JpdGVyIChodHRwOi8vdXNlZnVsaW5jLmNvbS9yc3MvcnNzd3JpdGVyLykKCkRJU0NVU1NJT046CgpBbiBleGFtcGxlIG9mIHR1cm5pbmcgYSBNYWdwaWUgcGFyc2VkIFJTUyBvYmplY3QgYmFjayBpbnRvIGFuIFJTUyBmaWxlIGlzIGZvcnRoCmNvbWluZy4gIEluIHRoZSBtZWFudGltZSBSU1NXcml0ZXIgaGFzIGdyZWF0IGRvY3VtZW50YXRpb24uCgo0LiBESVNQTEFZIEhFQURMSU5FUyBNT1JFIFJFQ0VOVCBUSEVOIFggREFURQoKUFJPQkxFTToKCllvdSBvbmx5IHdhbnQgdG8gZGlzcGxheSBoZWFkbGluZXMgdGhhdCB3ZXJlIHB1Ymxpc2hlZCBvbiwgb3IgYWZ0ZXIgYSBjZXJ0YWluCmRhdGUuCgoKU09MVVRJT046CgpyZXF1aXJlICdyc3NfdXRpbHMuaW5jJzsKCiMgZ2V0IGFsbCBoZWFkbGluZXMgcHVibGlzaGVkIHRvZGF5CiR0b2RheSA9IGdldGRhdGUoKTsKCiMgdG9kYXksIDEyQU0KJGRhdGUgPSBta3RpbWUoMCwwLDAsJHRvZGF5Wydtb24nXSwgJHRvZGF5WydtZGF5J10sICR0b2RheVsneWVhciddKTsKCiRyc3MgPSBmZXRjaF9yc3MoJHVybCk7Cgpmb3JlYWNoICggJHJzcy0+aXRlbXMgYXMgJGl0ZW0gKSB7CgkkcHVibGlzaGVkID0gcGFyc2VfdzNjZHRmKCRpdGVtWydkYyddWydkYXRlJ10pOwoJaWYgKCAkcHVibGlzaGVkID49ICRkYXRlICkgewoJCWVjaG8gIlRpdGxlOiAiIC4gJGl0ZW1bJ3RpdGxlJ107CgkJZWNobyAiUHVibGlzaGVkOiAiIC4gZGF0ZSgiaDppOnMgQSIsICRwdWJsaXNoZWQpOwoJCWVjaG8gIjxwPiI7Cgl9Cn0KCkRJU0NVU1NJT046CgpUaGlzIHJlY2lwZSBvbmx5IHdvcmtzIGZvciBSU1MgMS4wIGZlZWRzIHRoYXQgaW5jbHVkZSB0aGUgPGRjOmRhdGU+IGZpZWxkLgood2hpY2ggaXMgdmVyeSBnb29kIFJTUyBzdHlsZSkKCnBhcnNlX3czY2R0ZiBpcyBkZWZpbmVkIGluIHJzc191dGlscy5pbmMsIGFuZCBwYXJzZXMgUlNTIHN0eWxlIGRhdGVzIGludG8gVW5peAplcG9jaCBzZWNvbmRzLiAgCgpTZWU6IGh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vcmVmLmRhdGV0aW1lLnBocAo=";s:26:"presibourse/magpie/INSTALL";s:6292:"UkVRVUlSRU1FTlRTCgogICAgTWFwaWVSU1MgcmVxdWlyZXMgYSByZWNlbnQgUEhQIDQrIChkZXZlbG9wZWQgd2l0aCA0LjIuMCkKICAgIHdpdGggeG1sIChleHBhdCkgc3VwcG9ydC4KICAgIAogICAgT3B0aW9uYWxseToKICAgICAgKiBQSFA1IHdpdGggbGlieG1sMiBzdXBwb3J0LgogICAgICAqIGNVUkwgZm9yIFNTTCBzdXBwb3J0CiAgICAgICogaWNvbnYgKHByZWZlcnJlZCkgb3IgbWJfc3RyaW5nIGZvciBleHBhbmRlZCBjaGFyYWN0ZXIgc2V0IHN1cHBvcnQKICAgIApRVUlDSyBTVEFSVAoKICAgIE1hZ3BpZSBjb25zaXN0cyBvZiA0IGZpbGVzIChyc3NfZmV0Y2guaW5jLCByc3NfcGFyc2VyLmluYywgcnNzX2NhY2hlLmluYywgCiAgICBhbmQgcnNzX3V0aWxzLmluYyksIGFuZCB0aGUgZGlyZWN0b3J5IGV4dGxpYiAod2hpY2ggY29udGFpbnMgYSBtb2RpZmllZCAKICAgIHZlcnNpb24gb2YgdGhlIFNub29weSBIVFRQIGNsaWVudCkKICAgIAogICAgQ29weSB0aGVzZSA1IHJlc291cmNlcyB0byBhIGRpcmVjdG9yeSBuYW1lZCAnbWFncGllcnNzJyBpbiB0aGUgc2FtZSAKICAgIGRpcmVjdG9yeSBhcyB5b3VyIFBIUCBzY3JpcHQuCiAgICAKICAgIEF0IHRoZSB0b3Agb2YgeW91ciBzY3JpcHQgYWRkIHRoZSBmb2xsb3dpbmcgbGluZToKICAgIAogICAgICAgIHJlcXVpcmVfb25jZSgnbWFncGllcnNzL3Jzc19mZXRjaC5pbmMnKTsKICAgIAogICAgTm93IHlvdSBjYW4gdXNlIHRoZSBmZXRjaF9yc3MoKSBtZXRob2Q6CiAgICAgIAogICAgICAgICRyc3MgPSBmZXRjaF9yc3MoJHVybCk7CiAgICAgICAgCiAgICBEb25lLiAgVGhhdCdzIGl0LiAgIFNlZSBSRUFETUUgZm9yIG1vcmUgZGV0YWlscyBvbiB1c2luZyBNYWdwaWVSU1MuCgpORVhUIFNURVBTCgogICAgSW1wb3J0YW50OiAgeW91J2xsIHByb2JhYmx5IHdhbnQgdG8gZ2V0IHRoZSBjYWNoZSBkaXJlY3Rvcnkgd29ya2luZyBpbiAKICAgIG9yZGVyIHRvIHNwZWVkIHVwIHlvdXIgYXBwbGljYXRpb24sIGFuZCBub3QgYWJ1c2UgdGhlIHdlYnNlcnZlciB5b3UncmUgCiAgICBkb3dubG9hZGluZyB0aGUgUlNTIGZyb20uCiAgICAKICAgIE9wdGlvbmFsbHkgeW91IGNhbiBpbnN0YWxsIE1hZ3BpZVJTUyBpbiB5b3VyIFBIUCBpbmNsdWRlIHBhdGggaW4gb3JkZXIgdG8gCiAgICBtYWtlIGl0IGF2YWlsYWJsZSBzZXJ2ZXIgd2lkZS4KICAgIAogICAgTGFzdGx5IHlvdSBtaWdodCB3YW50IHRvIGxvb2sgdGhyb3VnaCB0aGUgY29uc3RhbnRzIGluIHJzc19mZXRjaC5pbmMgc2VlIGlmIAogICAgdGhlcmUgaXMgYW55dGhpbmcgeW91IHdhbnQgdG8gb3ZlcnJpZGUgKHRoZSBkZWZhdWx0cyBhcmUgcHJldHR5IGdvb2QpCgogICAgRm9yIG1vcmUgaW5mbywgb3IgaWYgeW91IGhhdmUgdHJvdWJsZSwgc2VlIFRST1VCTEVTSE9PVElORwoKU0VUVElORyBVUCBDQUNISU5HCgogICAgTWFncGllIGhhcyBidWlsdC1pbiB0cmFuc3BhcmVudCBjYWNoaW5nLiAgV2l0aCBjYWNoaW5nIE1hZ3BpZSB3aWxsIG9ubHkgCiAgICBmZXRjaCBhbmQgcGFyc2UgUlNTIGZlZWRzIHdoZW4gdGhlcmUgaXMgbmV3IGNvbnRlbnQuICBXaXRob3V0IHRoaXMgZmVhdHVyZSAKICAgIHlvdXIgcGFnZXMgd2lsbCBiZSBzbG93LCBhbmQgdGhlIHNpdGVzIHNlcnZpbmcgdGhlIFJTUyBmZWVkIHdpbGwgYmUgYW5ub3llZCAKICAgIHdpdGggeW91LgogICAgCioqIFNpbXBsZSBhbmQgQXV0b21hdGljICoqCiAgICAKICAgIEJ5IGRlZmF1bHQgTWFncGllIHdpbGwgdHJ5IHRvIGNyZWF0ZSBhIGNhY2hlIGRpcmVjdG9yeSBuYW1lZCAnY2FjaGUnIGluIHRoZQogICAgc2FtZSBkaXJlY3RvcnkgYXMgeW91ciBQSFAgc2NyaXB0LgogICAgCioqIENyZWF0aW5nIGEgTG9jYWwgQ2FjaGUgRGlyZWN0b3J5ICoqCiAgICAKICAgIE9mdGVuIHRoaXMgd2lsbCBmYWlsLCBiZWNhdXNlIHlvdXIgd2Vic2VydmVyIGRvZXNuJ3QgaGF2ZSBzdWZmaWNpZW50IAogICAgcGVybWlzc2lvbnMgdG8gY3JlYXRlIHRoZSBkaXJlY3RvcnkuIAogICAgCiAgICBFeGFjdCBpbnN0cnVjdGlvbnMgZm9yIGhvdyB0byBkbyB0aGlzIHdpbGwgdmFyeSBmcm9tIGluc3RhbGwgdG8gaW5zdGFsbCBhbmQgCiAgICBwbGF0Zm9ybSB0byBwbGF0Zm9ybS4gIFRoZSBzdGVwcyBhcmU6CiAgICAKICAgIDEuICBNYWtlIGEgZGlyZWN0b3J5IG5hbWVkICdjYWNoZScKICAgIDIuICBHaXZlIHRoZSB3ZWIgc2VydmVyIHdyaXRlIGFjY2VzcyB0byB0aGF0IGRpcmVjdG9yeS4KICAgIAogICAgQW4gZXhhbXBsZSBvZiBob3cgdG8gZG8gdGhpcyBvbiBEZWJpYW4gd291bGQgYmU6CiAgICAKICAgIDEuICBta2RpciAvcGF0aC90by9zY3JpcHQvY2FjaGUKICAgIDIuICBjaGdycCB3d3ctZGF0YSAvcGF0aC90by9zY3JpcHQvY2FjaGUKICAgIDMuICBjaG1vZCA3NzUgL3BhdGgvdG8vc2NyaXB0L2NhY2hlCiAgICAKICAgIE9uIG90aGVyIFVuaXhlcyB5b3UnbGwgbmVlZCB0byBjaGFuZ2UgJ3d3dy1kYXRhJyB0byB3aGF0IGV2ZXIgdXNlciBBcGFjaGUgCiAgICBydW5zIGFzLiAob24gTWFjT1MgWCB0aGUgdXNlciB3b3VsZCBiZSAnd3d3JykKICAgIAoqKiBDYWNoZSBpbiAvdG1wICoqCiAgICAKICAgIFNvbWV0aW1lcyB5b3Ugd29uJ3QgYmUgYWJsZSB0byBjcmVhdGUgYSBsb2NhbCBjYWNoZSBkaXJlY3RvcnkuICBTb21lIHJlYXNvbnMgCiAgICBtaWdodCBiZToKICAgIAogICAgMS4gIE5vIHNoZWxsIGFjY291bnQKICAgIDIuICBJbnN1ZmZpY2llbnQgcGVybWlzc2lvbnMgdG8gY2hhbmdlIG93bmVyc2hpcCBvZiBhIGRpcmVjdG9yeQogICAgMy4gIFdlYnNlcnZlciBydW5zIGFzICdub2JvZHknCiAgICAKICAgIEluIHRoZXNlIHNpdHVhdGlvbnMgdXNpbmcgYSBjYWNoZSBkaXJlY3RvcnkgaW4gL3RtcCBjYW4gb2Z0ZW4gYmUgYSBnb29kIAogICAgb3B0aW9uLgogICAgCiAgICBUaGUgZHJhd2JhY2sgaXMgL3RtcCBpcyBwdWJsaWMsIHNvIGFueW9uZSBvbiB0aGUgYm94IGNhbiByZWFkIHRoZSBjYWNoZSAKICAgIGZpbGVzLiAgVXN1YWxseSBSU1MgZmVlZHMgYXJlIHB1YmxpYyBpbmZvcm1hdGlvbiwgc28geW91J2xsIGhhdmUgdG8gZGVjaWRlIAogICAgaG93IG11Y2ggb2YgYW4gaXNzdWUgdGhhdCBpcy4KCiAgICBUbyB1c2UgL3RtcCBhcyB5b3VyIGNhY2hlIGRpcmVjdG9yeSB5b3UgbmVlZCB0byBhZGQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIAogICAgeW91ciBzY3JpcHQ6CiAgICAgICAgCiAgICAgICAgZGVmaW5lKCdNQUdQSUVfQ0FDSEVfRElSJywgJy90bXAvbWFncGllX2NhY2hlJyk7CiAgICAgICAgCioqIEdsb2JhbCBDYWNoZSAqKgoKICAgIElmIHlvdSBoYXZlIHNldmVyYWwgYXBwbGljYXRpb25zIHVzaW5nIE1hZ3BpZSwgeW91IGNhbiBjcmVhdGUgYSBzaW5nbGUgCiAgICBzaGFyZWQgY2FjaGUgZGlyZWN0b3J5LCBlaXRoZXIgdXNpbmcgdGhlIC90bXAgY2FjaGUsIG9yIHNvbWV3aGVyZSBlbHNlIG9uIAogICAgdGhlIHN5c3RlbS4KICAgIAogICAgVGhlIHVwc2lkZSBpcyB0aGF0IHlvdSdsbCBkaXN0cmlidXRlIGZldGNoaW5nIGFuZCBwYXJzaW5nIGZlZWRzIGFjcm9zcyAKICAgIHNldmVyYWwgYXBwbGljYXRpb25zLgogICAgCklOU1RBTExJTkcgTUFHUElFIFNFUlZFUiBXSURFCgogICAgUmF0aGVyIHRoZW4gZm9sbG93aW5nIHRoZSBRdWlja3N0YXJ0IGluc3RydWN0aW9ucyB3aGljaCByZXF1aXJlcyB5b3UgdG8gaGF2ZSAKICAgIGEgY29weSBvZiBNYWdwaWUgcGVyIGFwcGxpY2F0aW9uLCBhbHRlcm5hdGVseSB5b3UgY2FuIHBsYWNlIGl0IGluIHNvbWUgCiAgICBzaGFyZWQgbG9jYXRpb24uCiAgICAKKiogQWRkaW5nIE1hZ3BpZSB0byBZb3VyIEluY2x1ZGUgUGF0aCAqKgoKICAgIENvcHkgdGhlIDUgcmVzb3VyY2VzIChyc3NfZmV0Y2guaW5jLCByc3NfcGFyc2VyLmluYywgcnNzX2NhY2hlLmluYywgICAgICAgICAKICAgIHJzc191dGlscy5pbmMsIGFuZCBleHRsaWIpIHRvIGEgZGlyZWN0b3J5IG5hbWVkICdtYWdwaWVyc3MnIGluIHlvdXIgaW5jbHVkZSAKICAgIHBhdGguICBOb3cgYW55IFBIUCBmaWxlIG9uIHlvdXIgc3lzdGVtIGNhbiB1c2UgTWFncGllIHdpdGg6CiAgICAKICAgICAgICByZXF1aXJlX29uY2UoJ21hZ3BpZXJzcy9yc3NfZmV0Y2guaW5jJyk7CgogICAgRGlmZmVyZW50IGluc3RhbGxzIGhhdmUgZGlmZmVyZW50IGluY2x1ZGUgcGF0aHMsIGFuZCB5b3UnbGwgaGF2ZSB0byBmaWd1cmUgCiAgICBvdXQgd2hhdCB5b3VyIGluY2x1ZGVfcGF0aCBpcy4KICAgIAogICAgRnJvbSBzaGVsbCB5b3UgY2FuIHRyeTogCiAgICAgICAgCiAgICAgICAgcGhwIC1pIHwgZ3JlcCAnaW5jbHVkZV9wYXRoJwoKICAgIEFsdGVybmF0bGV5IHlvdSBjYW4gY3JlYXRlIGEgcGhwaW5mby5waHAgZmlsZSB3aXRoIGNvbnRhaW5zOgogICAgCiAgICAgICAgPD9waHAgcGhwaW5mbygpOyA/PgogICAgCiAgICBEZWJpYW4ncyBkZWZhdWx0IGlzOiAgCiAgICAgICAgCiAgICAgICAgL3Vzci9zaGFyZS9waHAgCiAgICAgICAgCiAgICAodGhvdWdoIG1vcmUgaWRlYWxvZ2ljYWxseSBwdXJlIGxvY2F0aW9uIHdvdWxkIGJlIC91c3IvbG9jYWwvc2hhcmUvcGhwKQogICAgCiAgICBBcHBsZSdzIGRlZmF1bHQgaW5jbHVkZSBwYXRoIGlzOgogICAgCiAgICAgICAgL3Vzci9saWIvcGhwCiAgICAgICAgCiAgICBXaGlsZSB0aGUgRW50cm9weSBQSFAgYnVpbGQgc2VlbXMgdG8gdXNlOgogICAgCiAgICAgICAgL3Vzci9sb2NhbC9waHAvbGliL3BocA==";s:23:"presibourse/magpie/NEWS";s:2484:"TWFncGllUlNTIE5ld3MKCk1BR1BJRVJTUyAwLjUxIFJFTEVBU0VECgkqIGltcG9ydGFudCBidWdmaXghCgkqIGZpeCAic2lsZW50IGZhaWx1cmUiIHdoZW4gUEhQIGRvZXNuJ3QgaGF2ZSB6bGliCgpGRUVEIE9OIEZFRURTIFVTRVMgTUFHUElFCgkqIHdlYi1iYXNlZCBSU1MgYWdncmVnYXRvciBidWlsdCB3aXRoIE1hZ3BpZQoJKiBlYXN5IHRvIGluc3RhbGwsIGVhc3kgdG8gdXNlLgoJaHR0cDovL21pbnV0aWxsby5jb20vc3RldmUvZmVlZG9uZmVlZHMvCgkKTUFHUElFUlNTIDAuNSBSRUxFQVNFRAoJKiBzdXBwb3J0cyB0cmFuc3BhcmVudCBIVFRQIGd6aXAgY29udGVudCBuZWdvdGlhdGlvbiBmb3IgcmVkdWNlZCBiYW5kd2lkdGggdXNhZ2UKICAgICogcXVhc2hlZCBzb21lIHVuZGVmaW5lZCBpbmRleCBub3RpY2VzCgpNQUdQSUVSU1MgMC40NiBSRUxFQVNFRAogICAgKiBtaW5vciByZWxlYXNlLCBtb3JlIGVycm9yIGhhbmRsaW5nIGNsZWFuIHVwCiAgICAqIGRvY3VtZW50YXRpb24gZml4ZXMsIHNpbXBsZXIgZXhhbXBsZQogICAgKiBuZXcgdHJvdWJsZSBzaG9vdGluZyBndWlkZSBmb3IgaW5zdGFsbGF0aW9uIGFuZCB1c2FnZSBwcm9ibGVtcyAKICAgICAgaHR0cDovL21hZ3BpZXJzcy5zb3VyY2Vmb3JnZS5uZXQvVFJPVUJMRVNIT09USU5HCgpNQUdQSUUgTkVXUyBBUyBSU1MKICAgICogcmVsZWFzZXMsIGJ1ZyBmaXhlcywgcmVsZWF0ZWQgc3RvcmllcyBpbiBSU1MKICAgIApNQUdQSUVSU1MgQ09PS0JPT0s6IFNJTVBMRSBQSFAgUlNTIEhPVyBUT1MKICAgICogYW5zd2VycyBzb21lIG9mIHRoZSBtb3N0IGZyZXF1ZW50bHkgYXNrZWQgTWFncGllIHF1ZXN0aW9ucwogICAgKiBmZWVkYmFjaywgc3VnZ2VzdGlvbnMsIHJlcXVlc3RzLCByZWNpcGVzIHdlbGNvbWUKICAgICAgaHR0cDovL21hZ3BpZXJzcy5zb3VyY2Vmb3JnZS5uZXQvY29va2Jvb2suaHRtbAoKTUFHUElFUlNTIDAuNCBSRUxFQVNFRCEKICAgICogaW1wcm92ZWQgZXJyb3IgaGFuZGxpbmcsIG1vcmUgZmxleGliaWxpdHkgZm9yIHNjcmlwdCBhdXRob3JzLCBiYWNrd2FyZHMgY29tcGF0aWJsZQogICAgKiBuZXcgYW5kIGJldHRlciBleGFtcGxlcyEgaW5jbHVkaW5nIHVzaW5nIE1hZ3BpZVJTUyBhbmQgU21hcnR5CiAgICAqIG5ldyBTbWFydHkgcGx1Z2luIGZvciBSU1MgZGF0ZSBwYXJzaW5nCiAgICAgIGh0dHA6Ly9zbWFydHkucGhwLm5ldAoKSU5GSU5JVEUgUEVOR1VJTiBOT1cgU1VQUE9SVFMgTUFHUElFIDAuMwogICAgKiBzaW1wbGUsIHNvcGhpc3RpY2F0ZWQgUlNTIHZpZXdlcgogICAgKiBpbmNsdWRlcyBhdXRvLWdlbmVyYXRlZCBqYXZhc2NyaXB0IHRpY2tlciBmcm9tIFJTUyBmZWVkCiAgICAgIGh0dHA6Ly93d3cuaW5maW5pdGVwZW5ndWlucy5uZXQvcnNzLwoKVFJBVU1XSU5EIFJFTEVBU0VTIFJFWCBCQUNLRU5EIEZPUiBNQUdQSUVSU1MKICAgICogZHJvcCBpbiBzdXBwb3J0IHVzaW5nIHJlZ2V4IGJhc2VkIFhNTCBwYXJzZXIKICAgICogcGFyc2VzIGltcHJvcGVybHkgZm9ybWVkIFhNTCB0aGF0IGNob2tlcyBleHBhdAogICAgICBodHRwOi8vdHJhdW13aW5kLmRlL2Jsb2cvbWFncGllL21hZ3BpZV9hbGlrZS5waHAKCk1BR1BJRVJTUyAwLjMgUkVMRUFTRUQhCiAgICAqIFN1cHBvcnQgYWRkZWQgZm9yIEhUVFAgQ29uZGl0aW9uYWwgR0VUcy4KICAgICAgaHR0cDovL2Zpc2hib3dsLnBhc3RpY2hlLm9yZy9hcmNoaXZlcy8wMDExMzIuaHRtbAoKTUFHUElFUlNTIDAuMiEKICAgICogTWFqb3IgY2xlYW4gdXAgb2YgdGhlIGNvZGUuIEVhc2llciB0byB1c2UuCiAgICAqIFNpbXBsZXIgaW5zdGFsbCBvbiBzaGFyZWQgaG9zdHMuCiAgICAqIEJldHRlciBkb2N1bWVudGF0aW9uIGFuZCBjb21tZW50cy4K";s:25:"presibourse/magpie/README";s:1736:"TkFNRQoKCU1hZ3BpZVJTUyAtIGEgc2ltcGxlIFJTUyBpbnRlZ3JhdGlvbiB0b29sCgpTWU5PUFNJUwoKCXJlcXVpcmVfb25jZShyc3NfZmV0Y2guaW5jKTsKCSR1cmwgPSAkX0dFVFsndXJsJ107CgkkcnNzID0gZmV0Y2hfcnNzKCAkdXJsICk7CgkKCWVjaG8gIkNoYW5uZWwgVGl0bGU6ICIgLiAkcnNzLT5jaGFubmVsWyd0aXRsZSddIC4gIjxwPiI7CgllY2hvICI8dWw+IjsKCWZvcmVhY2ggKCRyc3MtPml0ZW1zIGFzICRpdGVtKSB7CgkJJGhyZWYgPSAkaXRlbVsnbGluayddOwoJCSR0aXRsZSA9ICRpdGVtWyd0aXRsZSddOwoJCWVjaG8gIjxsaT48YSBocmVmPSRocmVmPiR0aXRsZTwvYT48L2xpPiI7Cgl9CgllY2hvICI8L3VsPiI7CgpERVNDUklQVElPTgoKCU1hcGllUlNTIGlzIGFuIFhNTC1iYXNlZCBSU1MgcGFyc2VyIGluIFBIUC4gIEl0IGF0dGVtcHRzIHRvIGJlICJQSFAtbGlrZSIsCglhbmQgc2ltcGxlIHRvIHVzZS4KCQoJU29tZSBmZWF0dXJlcyBpbmNsdWRlOgoJCgkqIHN1cHBvcnRzIFJTUyAwLjkgLSAxLjAsIHdpdGggbGltaXRlZCBSU1MgMi4wIHN1cHBvcnQKCSogc3VwcG9ydHMgbmFtZXNwYWNlcywgYW5kIG1vZHVsZXMsIGluY2x1ZGluZyBtb2RfY29udGVudCBhbmQgbW9kX2V2ZW50CgkqIG9wZW4gbWluZGVkIFsxXQoJKiBzaW1wbGUsIGZ1bmN0aW9uYWwgaW50ZXJmYWNlLCB0byBvYmplY3Qgb3JpZW50ZWQgYmFja2VuZCBwYXJzZXIKCSogYXV0b21hdGljIGNhY2hpbmcgb2YgcGFyc2VkIFJTUyBvYmplY3RzIG1ha2VzIGl0cyBlYXN5IHRvIGludGVncmF0ZQoJKiBzdXBwb3J0cyBjb25kaXRpb25hbCBHRVQgd2l0aCBMYXN0LU1vZGlmaWVkLCBhbmQgRVRhZwoJKiB1c2VzIGNvbnN0YW50cyBmb3IgZWFzeSBvdmVycmlkZSBvZiBkZWZhdWx0IGJlaGF2aW91ciAKCSogaGVhdmlseSBjb21tZW50ZWQKCgoxLiBCeSBvcGVuIG1pbmRlZCBJIG1lYW4gTWFncGllIHdpbGwgYWNjZXB0IGFueSB0YWcgaXQgZmluZHMgaW4gZ29vZCBmYWl0aCB0aGF0CiAgIGl0IHdhcyBzdXBwb3NlZCB0byBiZSBoZXJlLiAgRm9yIHN0cmljdCB2YWxpZGF0aW9uLCBsb29rIGVsc2V3aGVyZS4KCgpHRVRUSU5HIFNUQVJURUQKCgkKCkNPUFlSSUdIVDoKCUNvcHlyaWdodChjKSAyMDAyIGtlbGxhbkBwcm90ZXN0Lm5ldC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KCVRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgoJUGxlYXNlIHJlYWQgdGhlIGRpc2NsYWltZXIgYXQgdGhlIHRvcCBvZiB0aGUgU25vb3B5LmNsYXNzLmluYyBmaWxlLgo=";s:32:"presibourse/magpie/rss_cache.inc";s:8504:"PD9waHAKLyoKICogUHJvamVjdDogICAgIE1hZ3BpZVJTUzogYSBzaW1wbGUgUlNTIGludGVncmF0aW9uIHRvb2wKICogRmlsZTogICAgICAgIHJzc19jYWNoZS5pbmMsIGEgc2ltcGxlLCByb2xsaW5nKG5vIEdDKSwgY2FjaGUgCiAqICAgICAgICAgICAgICBmb3IgUlNTIG9iamVjdHMsIGtleWVkIG9uIFVSTC4KICogQXV0aG9yOiAgICAgIEtlbGxhbiBFbGxpb3R0LU1jQ3JlYSA8a2VsbGFuQHByb3Rlc3QubmV0PgogKiBWZXJzaW9uOiAgICAgMC41MQogKiBMaWNlbnNlOiAgICAgR1BMCiAqCiAqIFRoZSBsYXN0ZXN0IHZlcnNpb24gb2YgTWFncGllUlNTIGNhbiBiZSBvYnRhaW5lZCBmcm9tOgogKiBodHRwOi8vbWFncGllcnNzLnNvdXJjZWZvcmdlLm5ldAogKgogKiBGb3IgcXVlc3Rpb25zLCBoZWxwLCBjb21tZW50cywgZGlzY3Vzc2lvbiwgZXRjLiwgcGxlYXNlIGpvaW4gdGhlCiAqIE1hZ3BpZSBtYWlsaW5nIGxpc3Q6CiAqIGh0dHA6Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQvbGlzdHMvbGlzdGluZm8vbWFncGllcnNzLWdlbmVyYWwKICoKICovCgpjbGFzcyBSU1NDYWNoZSB7CiAgICB2YXIgJEJBU0VfQ0FDSEUgPSAnLi9jYWNoZSc7ICAgIC8vIHdoZXJlIHRoZSBjYWNoZSBmaWxlcyBhcmUgc3RvcmVkCiAgICB2YXIgJE1BWF9BR0UgICAgPSAzNjAwOyAgICAgICAgIC8vIHdoZW4gYXJlIGZpbGVzIHN0YWxlLCBkZWZhdWx0IG9uZSBob3VyCiAgICB2YXIgJEVSUk9SICAgICAgPSAiIjsgICAgICAgICAgIC8vIGFjY3VtdWxhdGUgZXJyb3IgbWVzc2FnZXMKICAgIAogICAgZnVuY3Rpb24gUlNTQ2FjaGUgKCRiYXNlPScnLCAkYWdlPScnKSB7CiAgICAgICAgaWYgKCAkYmFzZSApIHsKICAgICAgICAgICAgJHRoaXMtPkJBU0VfQ0FDSEUgPSAkYmFzZTsKICAgICAgICB9CiAgICAgICAgaWYgKCAkYWdlICkgewogICAgICAgICAgICAkdGhpcy0+TUFYX0FHRSA9ICRhZ2U7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vIGF0dGVtcHQgdG8gbWFrZSB0aGUgY2FjaGUgZGlyZWN0b3J5CiAgICAgICAgaWYgKCAhIGZpbGVfZXhpc3RzKCAkdGhpcy0+QkFTRV9DQUNIRSApICkgewogICAgICAgICAgICAkc3RhdHVzID0gQG1rZGlyKCAkdGhpcy0+QkFTRV9DQUNIRSwgMDc1NSApOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gaWYgbWFrZSBmYWlsZWQgCiAgICAgICAgICAgIGlmICggISAkc3RhdHVzICkgewogICAgICAgICAgICAgICAgJHRoaXMtPmVycm9yKAogICAgICAgICAgICAgICAgICAgICJDYWNoZSBjb3VsZG4ndCBtYWtlIGRpciAnIiAuICR0aGlzLT5CQVNFX0NBQ0hFIC4gIicuIgogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIAovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09KlwKICAgIEZ1bmN0aW9uOiAgIHNldAogICAgUHVycG9zZTogICAgYWRkIGFuIGl0ZW0gdG8gdGhlIGNhY2hlLCBrZXllZCBvbiB1cmwKICAgIElucHV0OiAgICAgIHVybCBmcm9tIHdpY2ggdGhlIHJzcyBmaWxlIHdhcyBmZXRjaGVkCiAgICBPdXRwdXQ6ICAgICB0cnVlIG9uIHN1Y2VzcyAgClwqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogICAgZnVuY3Rpb24gc2V0ICgkdXJsLCAkcnNzKSB7CiAgICAgICAgJHRoaXMtPkVSUk9SID0gIiI7CiAgICAgICAgJGNhY2hlX2ZpbGUgPSAkdGhpcy0+ZmlsZV9uYW1lKCAkdXJsICk7CiAgICAgICAgJGZwID0gQGZvcGVuKCAkY2FjaGVfZmlsZSwgJ3cnICk7CiAgICAgICAgCiAgICAgICAgaWYgKCAhICRmcCApIHsKICAgICAgICAgICAgJHRoaXMtPmVycm9yKAogICAgICAgICAgICAgICAgIkNhY2hlIHVuYWJsZSB0byBvcGVuIGZpbGUgZm9yIHdyaXRpbmc6ICRjYWNoZV9maWxlIgogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgJGRhdGEgPSAkdGhpcy0+c2VyaWFsaXplKCAkcnNzICk7CiAgICAgICAgZndyaXRlKCAkZnAsICRkYXRhICk7CiAgICAgICAgZmNsb3NlKCAkZnAgKTsKICAgICAgICAKICAgICAgICByZXR1cm4gJGNhY2hlX2ZpbGU7CiAgICB9CiAgICAKLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSpcCiAgICBGdW5jdGlvbjogICBnZXQKICAgIFB1cnBvc2U6ICAgIGZldGNoIGFuIGl0ZW0gZnJvbSB0aGUgY2FjaGUKICAgIElucHV0OiAgICAgIHVybCBmcm9tIHdpY2ggdGhlIHJzcyBmaWxlIHdhcyBmZXRjaGVkCiAgICBPdXRwdXQ6ICAgICBjYWNoZWQgb2JqZWN0IG9uIEhJVCwgZmFsc2Ugb24gTUlTUyAKXCo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovIAogICAgZnVuY3Rpb24gZ2V0ICgkdXJsKSB7CiAgICAgICAgJHRoaXMtPkVSUk9SID0gIiI7CiAgICAgICAgJGNhY2hlX2ZpbGUgPSAkdGhpcy0+ZmlsZV9uYW1lKCAkdXJsICk7CiAgICAgICAgCiAgICAgICAgaWYgKCAhIGZpbGVfZXhpc3RzKCAkY2FjaGVfZmlsZSApICkgewogICAgICAgICAgICAkdGhpcy0+ZGVidWcoIAogICAgICAgICAgICAgICAgIkNhY2hlIGRvZXNuJ3QgY29udGFpbjogJHVybCAoY2FjaGUgZmlsZTogJGNhY2hlX2ZpbGUpIgogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgJGZwID0gQGZvcGVuKCRjYWNoZV9maWxlLCAncicpOwogICAgICAgIGlmICggISAkZnAgKSB7CiAgICAgICAgICAgICR0aGlzLT5lcnJvcigKICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gb3BlbiBjYWNoZSBmaWxlIGZvciByZWFkaW5nOiAkY2FjaGVfZmlsZSIKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGlmICgkZmlsZXNpemUgPSBmaWxlc2l6ZSgkY2FjaGVfZmlsZSkgKSB7CiAgICAgICAgCSRkYXRhID0gZnJlYWQoICRmcCwgZmlsZXNpemUoJGNhY2hlX2ZpbGUpICk7CiAgICAgICAgCSRyc3MgPSAkdGhpcy0+dW5zZXJpYWxpemUoICRkYXRhICk7CiAgICAgICAgCiAgICAgICAgCXJldHVybiAkcnNzOwogICAgCX0KICAgIAkKICAgIAlyZXR1cm4gMDsKICAgIH0KCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qXAogICAgRnVuY3Rpb246ICAgY2hlY2tfY2FjaGUKICAgIFB1cnBvc2U6ICAgIGNoZWNrIGEgdXJsIGZvciBtZW1iZXJzaGlwIGluIHRoZSBjYWNoZQogICAgICAgICAgICAgICAgYW5kIHdoZXRoZXIgdGhlIG9iamVjdCBpcyBvbGRlciB0aGVuIE1BWF9BR0UgKGllLiBTVEFMRSkKICAgIElucHV0OiAgICAgIHVybCBmcm9tIHdpY2ggdGhlIHJzcyBmaWxlIHdhcyBmZXRjaGVkCiAgICBPdXRwdXQ6ICAgICBjYWNoZWQgb2JqZWN0IG9uIEhJVCwgZmFsc2Ugb24gTUlTUyAKXCo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovICAgICAKICAgIGZ1bmN0aW9uIGNoZWNrX2NhY2hlICggJHVybCApIHsKICAgICAgICAkdGhpcy0+RVJST1IgPSAiIjsKICAgICAgICAkZmlsZW5hbWUgPSAkdGhpcy0+ZmlsZV9uYW1lKCAkdXJsICk7CiAgICAgICAgCiAgICAgICAgaWYgKCBmaWxlX2V4aXN0cyggJGZpbGVuYW1lICkgKSB7CiAgICAgICAgICAgIC8vIGZpbmQgaG93IGxvbmcgYWdvIHRoZSBmaWxlIHdhcyBhZGRlZCB0byB0aGUgY2FjaGUKICAgICAgICAgICAgLy8gYW5kIHdoZXRoZXIgdGhhdCBpcyBsb25nZXIgdGhlbiBNQVhfQUdFCiAgICAgICAgICAgICRtdGltZSA9IGZpbGVtdGltZSggJGZpbGVuYW1lICk7CiAgICAgICAgICAgICRhZ2UgPSB0aW1lKCkgLSAkbXRpbWU7CiAgICAgICAgICAgIGlmICggJHRoaXMtPk1BWF9BR0UgPiAkYWdlICkgewogICAgICAgICAgICAgICAgLy8gb2JqZWN0IGV4aXN0cyBhbmQgaXMgY3VycmVudAogICAgICAgICAgICAgICAgcmV0dXJuICdISVQnOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgLy8gb2JqZWN0IGV4aXN0cyBidXQgaXMgb2xkCiAgICAgICAgICAgICAgICByZXR1cm4gJ1NUQUxFJzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgLy8gb2JqZWN0IGRvZXMgbm90IGV4aXN0CiAgICAgICAgICAgIHJldHVybiAnTUlTUyc7CiAgICAgICAgfQogICAgfQoKCWZ1bmN0aW9uIGNhY2hlX2FnZSggJGNhY2hlX2tleSApIHsKCQkkZmlsZW5hbWUgPSAkdGhpcy0+ZmlsZV9uYW1lKCAkdXJsICk7CgkJaWYgKCBmaWxlX2V4aXN0cyggJGZpbGVuYW1lICkgKSB7CgkJCSRtdGltZSA9IGZpbGVtdGltZSggJGZpbGVuYW1lICk7CiAgICAgICAgICAgICRhZ2UgPSB0aW1lKCkgLSAkbXRpbWU7CgkJCXJldHVybiAkYWdlOwoJCX0KCQllbHNlIHsKCQkJcmV0dXJuIC0xOwkKCQl9Cgl9CgkKLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSpcCiAgICBGdW5jdGlvbjogICBzZXJpYWxpemUKXCo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovICAgICAKICAgIGZ1bmN0aW9uIHNlcmlhbGl6ZSAoICRyc3MgKSB7CiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZSggJHJzcyApOwogICAgfQoKLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSpcCiAgICBGdW5jdGlvbjogICB1bnNlcmlhbGl6ZQpcKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8gICAgIAogICAgZnVuY3Rpb24gdW5zZXJpYWxpemUgKCAkZGF0YSApIHsKICAgICAgICByZXR1cm4gdW5zZXJpYWxpemUoICRkYXRhICk7CiAgICB9CiAgICAKLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSpcCiAgICBGdW5jdGlvbjogICBmaWxlX25hbWUKICAgIFB1cnBvc2U6ICAgIG1hcCB1cmwgdG8gbG9jYXRpb24gaW4gY2FjaGUKICAgIElucHV0OiAgICAgIHVybCBmcm9tIHdpY2ggdGhlIHJzcyBmaWxlIHdhcyBmZXRjaGVkCiAgICBPdXRwdXQ6ICAgICBhIGZpbGUgbmFtZQpcKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8gICAgIAogICAgZnVuY3Rpb24gZmlsZV9uYW1lICgkdXJsKSB7CiAgICAgICAgJGZpbGVuYW1lID0gbWQ1KCAkdXJsICk7CiAgICAgICAgcmV0dXJuIGpvaW4oIERJUkVDVE9SWV9TRVBBUkFUT1IsIGFycmF5KCAkdGhpcy0+QkFTRV9DQUNIRSwgJGZpbGVuYW1lICkgKTsKICAgIH0KCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qXAogICAgRnVuY3Rpb246ICAgZXJyb3IKICAgIFB1cnBvc2U6ICAgIHJlZ2lzdGVyIGVycm9yClwqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLyAgICAgICAgIAogICAgZnVuY3Rpb24gZXJyb3IgKCRlcnJvcm1zZywgJGx2bD1FX1VTRVJfV0FSTklORykgewogICAgICAgIC8vIGFwcGVuZCBQSFAncyBlcnJvciBtZXNzYWdlIGlmIHRyYWNrX2Vycm9ycyBlbmFibGVkCiAgICAgICAgaWYgKCBpc3NldCgkcGhwX2Vycm9ybXNnKSApIHsgCiAgICAgICAgICAgICRlcnJvcm1zZyAuPSAiICgkcGhwX2Vycm9ybXNnKSI7CiAgICAgICAgfQogICAgICAgICR0aGlzLT5FUlJPUiA9ICRlcnJvcm1zZzsKICAgICAgICBpZiAoIE1BR1BJRV9ERUJVRyApIHsKICAgICAgICAgICAgdHJpZ2dlcl9lcnJvciggJGVycm9ybXNnLCAkbHZsKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGVycm9yX2xvZyggJGVycm9ybXNnLCAwKTsKICAgICAgICB9CiAgICB9CiAgICAKICAgIGZ1bmN0aW9uIGRlYnVnICgkZGVidWdtc2csICRsdmw9RV9VU0VSX05PVElDRSkgewogICAgICAgIGlmICggTUFHUElFX0RFQlVHICkgewogICAgICAgICAgICAkdGhpcy0+ZXJyb3IoIk1hZ3BpZVJTUyBbZGVidWddICRkZWJ1Z21zZyIsICRsdmwpOwogICAgICAgIH0KICAgIH0KCn0KCj8+Cg==";s:32:"presibourse/magpie/rss_fetch.inc";s:20080:"PD9waHAKLyoKICogUHJvamVjdDogICAgIE1hZ3BpZVJTUzogYSBzaW1wbGUgUlNTIGludGVncmF0aW9uIHRvb2wKICogRmlsZTogICAgICAgIHJzc19mZXRjaC5pbmMsIGEgc2ltcGxlIGZ1bmN0aW9uYWwgaW50ZXJmYWNlCiAgICAgICAgICAgICAgICB0byBmZXRjaGluZyBhbmQgcGFyc2luZyBSU1MgZmlsZXMsIHZpYSB0aGUKICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGZldGNoX3JzcygpCiAqIEF1dGhvcjogICAgICBLZWxsYW4gRWxsaW90dC1NY0NyZWEgPGtlbGxhbkBwcm90ZXN0Lm5ldD4KICogTGljZW5zZTogICAgIEdQTAogKgogKiBUaGUgbGFzdGVzdCB2ZXJzaW9uIG9mIE1hZ3BpZVJTUyBjYW4gYmUgb2J0YWluZWQgZnJvbToKICogaHR0cDovL21hZ3BpZXJzcy5zb3VyY2Vmb3JnZS5uZXQKICoKICogRm9yIHF1ZXN0aW9ucywgaGVscCwgY29tbWVudHMsIGRpc2N1c3Npb24sIGV0Yy4sIHBsZWFzZSBqb2luIHRoZQogKiBNYWdwaWUgbWFpbGluZyBsaXN0OgogKiBtYWdwaWVyc3MtZ2VuZXJhbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKICoKICovCiAKLy8gU2V0dXAgTUFHUElFX0RJUiBmb3IgdXNlIG9uIGhvc3RzIHRoYXQgZG9uJ3QgaW5jbHVkZQovLyB0aGUgY3VycmVudCBwYXRoIGluIGluY2x1ZGVfcGF0aC4KLy8gd2l0aCB0aGFua3MgdG8gcmFqaXYgYW5kIHNtYXJ0eQppZiAoIWRlZmluZWQoJ0RJUl9TRVAnKSkgewogICAgZGVmaW5lKCdESVJfU0VQJywgRElSRUNUT1JZX1NFUEFSQVRPUik7Cn0KCmlmICghZGVmaW5lZCgnTUFHUElFX0RJUicpKSB7CiAgICBkZWZpbmUoJ01BR1BJRV9ESVInLCBkaXJuYW1lKF9fRklMRV9fKSAuIERJUl9TRVApOwp9CgpyZXF1aXJlX29uY2UoIE1BR1BJRV9ESVIgLiAncnNzX3BhcnNlLmluYycgKTsKcmVxdWlyZV9vbmNlKCBNQUdQSUVfRElSIC4gJ3Jzc19jYWNoZS5pbmMnICk7CgovLyBmb3IgaW5jbHVkaW5nIDNyZCBwYXJ0eSBsaWJyYXJpZXMKZGVmaW5lKCdNQUdQSUVfRVhUTElCJywgTUFHUElFX0RJUiAuICdleHRsaWInIC4gRElSX1NFUCk7CnJlcXVpcmVfb25jZSggTUFHUElFX0VYVExJQiAuICdTbm9vcHkuY2xhc3MuaW5jJyk7CgoKLyogCiAqIENPTlNUQU5UUyAtIHJlZGVmaW5lIHRoZXNlIGluIHlvdXIgc2NyaXB0IHRvIGNoYW5nZSB0aGUKICogYmVoYXZpb3VyIG9mIGZldGNoX3JzcygpIGN1cnJlbnRseSwgbW9zdCBvcHRpb25zIGVmZmVjdCB0aGUgY2FjaGUKICoKICogTUFHUElFX0NBQ0hFX09OIC0gU2hvdWxkIE1hZ3BpZSBjYWNoZSBwYXJzZWQgUlNTIG9iamVjdHM/IAogKiBGb3IgbWUgYSBidWlsdCBpbiBjYWNoZSB3YXMgZXNzZW50aWFsIHRvIGNyZWF0aW5nIGEgIlBIUC1saWtlIiAKICogZmVlbCB0byBNYWdwaWUsIHNlZSByc3NfY2FjaGUuaW5jIGZvciByYXRpb25hbGUKICoKICoKICogTUFHUElFX0NBQ0hFX0RJUiAtIFdoZXJlIHNob3VsZCBNYWdwaWUgY2FjaGUgcGFyc2VkIFJTUyBvYmplY3RzPwogKiBUaGlzIHNob3VsZCBiZSBhIGxvY2F0aW9uIHRoYXQgdGhlIHdlYnNlcnZlciBjYW4gd3JpdGUgdG8uICAgSWYgdGhpcyAKICogZGlyZWN0b3J5IGRvZXMgbm90IGFscmVhZHkgZXhpc3QgTWFwaWUgd2lsbCB0cnkgdG8gYmUgc21hcnQgYW5kIGNyZWF0ZSAKICogaXQuICBUaGlzIHdpbGwgb2Z0ZW4gZmFpbCBmb3IgcGVybWlzc2lvbnMgcmVhc29ucy4KICoKICoKICogTUFHUElFX0NBQ0hFX0FHRSAtIEhvdyBsb25nIHRvIHN0b3JlIGNhY2hlZCBSU1Mgb2JqZWN0cz8gSW4gc2Vjb25kcy4KICoKICoKICogTUFHUElFX0NBQ0hFX0ZSRVNIX09OTFkgLSBJZiByZW1vdGUgZmV0Y2ggZmFpbHMsIHRocm93IGVycm9yCiAqIGluc3RlYWQgb2YgcmV0dXJuaW5nIHN0YWxlIG9iamVjdD8KICoKICogTUFHUElFX0RFQlVHIC0gRGlzcGxheSBkZWJ1Z2dpbmcgbm90aWNlcz8KICoKKi8KCgovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09KlwKICAgIEZ1bmN0aW9uOiBmZXRjaF9yc3M6IAogICAgUHVycG9zZTogIHJldHVybiBSU1Mgb2JqZWN0IGZvciB0aGUgZ2l2ZSB1cmwKICAgICAgICAgICAgICBtYWludGFpbiB0aGUgY2FjaGUKICAgIElucHV0OiAgICB1cmwgb2YgUlNTIGZpbGUKICAgIE91dHB1dDogICBwYXJzZWQgUlNTIG9iamVjdCAoc2VlIHJzc19wYXJzZS5pbmMpCgogICAgTk9URVMgT04gQ0FDSEVJTkc6ICAKICAgIElmIGNhY2hpbmcgaXMgb24gKE1BR1BJRV9DQUNIRV9PTikgZmV0Y2hfcnNzIHdpbGwgZmlyc3QgY2hlY2sgdGhlIGNhY2hlLgogICAgCiAgICBOT1RFUyBPTiBSRVRSSUVWSU5HIFJFTU9URSBGSUxFUzoKICAgIElmIGNvbmRpdGlvbmFsIGdldHMgYXJlIG9uIChNQUdQSUVfQ09ORElUSU9OQUxfR0VUX09OKSBmZXRjaF9yc3Mgd2lsbAogICAgcmV0dXJuIGEgY2FjaGVkIG9iamVjdCwgYW5kIHRvdWNoIHRoZSBjYWNoZSBvYmplY3QgdXBvbiByZWNpZXZpbmcgYQogICAgMzA0LgogICAgCiAgICBOT1RFUyBPTiBGQUlMRUQgUkVRVUVTVFM6CiAgICBJZiB0aGVyZSBpcyBhbiBIVFRQIGVycm9yIHdoaWxlIGZldGNoaW5nIGFuIFJTUyBvYmplY3QsIHRoZSBjYWNoZWQKICAgIHZlcnNpb24gd2lsbCBiZSByZXR1cm4sIGlmIGl0IGV4aXN0cyAoYW5kIGlmIE1BR1BJRV9DQUNIRV9GUkVTSF9PTkxZIGlzIG9mZikKXCo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCgpkZWZpbmUoJ01BR1BJRV9WRVJTSU9OJywgJzAuNzInKTsKCiRNQUdQSUVfRVJST1IgPSAiIjsKCmZ1bmN0aW9uIGZldGNoX3JzcyAoJHVybCkgewogICAgLy8gaW5pdGlhbGl6ZSBjb25zdGFudHMKICAgIGluaXQoKTsKICAgIAogICAgaWYgKCAhaXNzZXQoJHVybCkgKSB7CiAgICAgICAgZXJyb3IoImZldGNoX3JzcyBjYWxsZWQgd2l0aG91dCBhIHVybCIpOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIAogICAgLy8gaWYgY2FjaGUgaXMgZGlzYWJsZWQKICAgIGlmICggIU1BR1BJRV9DQUNIRV9PTiApIHsKICAgICAgICAvLyBmZXRjaCBmaWxlLCBhbmQgcGFyc2UgaXQKICAgICAgICAkcmVzcCA9IF9mZXRjaF9yZW1vdGVfZmlsZSggJHVybCApOwogICAgICAgIGlmICggaXNfc3VjY2VzcyggJHJlc3AtPnN0YXR1cyApICkgewogICAgICAgICAgICByZXR1cm4gX3Jlc3BvbnNlX3RvX3JzcyggJHJlc3AgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggJHVybCBhbmQgY2FjaGUgaXMgb2ZmIik7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICB9IAogICAgLy8gZWxzZSBjYWNoZSBpcyBPTgogICAgZWxzZSB7CiAgICAgICAgLy8gRmxvdwogICAgICAgIC8vIDEuIGNoZWNrIGNhY2hlCiAgICAgICAgLy8gMi4gaWYgdGhlcmUgaXMgYSBoaXQsIG1ha2Ugc3VyZSBpdHMgZnJlc2gKICAgICAgICAvLyAzLiBpZiBjYWNoZWQgb2JqIGZhaWxzIGZyZXNobmVzcyBjaGVjaywgZmV0Y2ggcmVtb3RlCiAgICAgICAgLy8gNC4gaWYgcmVtb3RlIGZhaWxzLCByZXR1cm4gc3RhbGUgb2JqZWN0LCBvciBlcnJvcgogICAgICAgIAogICAgICAgICRjYWNoZSA9IG5ldyBSU1NDYWNoZSggTUFHUElFX0NBQ0hFX0RJUiwgTUFHUElFX0NBQ0hFX0FHRSApOwogICAgICAgIAogICAgICAgIGlmIChNQUdQSUVfREVCVUcgYW5kICRjYWNoZS0+RVJST1IpIHsKICAgICAgICAgICAgZGVidWcoJGNhY2hlLT5FUlJPUiwgRV9VU0VSX1dBUk5JTkcpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAKICAgICAgICAkY2FjaGVfc3RhdHVzICAgID0gMDsgICAgICAgLy8gcmVzcG9uc2Ugb2YgY2hlY2tfY2FjaGUKICAgICAgICAkcmVxdWVzdF9oZWFkZXJzID0gYXJyYXkoKTsgLy8gSFRUUCBoZWFkZXJzIHRvIHNlbmQgd2l0aCBmZXRjaAogICAgICAgICRyc3MgICAgICAgICAgICAgPSAwOyAgICAgICAvLyBwYXJzZWQgUlNTIG9iamVjdAogICAgICAgICRlcnJvcm1zZyAgICAgICAgPSAwOyAgICAgICAvLyBlcnJvcnMsIGlmIGFueQogICAgICAgIAogICAgICAgIC8vIHN0b3JlIHBhcnNlZCBYTUwgYnkgZGVzaXJlZCBvdXRwdXQgZW5jb2RpbmcKICAgICAgICAvLyBhcyBjaGFyYWN0ZXIgbXVuZ2luZyBoYXBwZW5zIGF0IHBhcnNlIHRpbWUKICAgICAgICAkY2FjaGVfa2V5ICAgICAgID0gJHVybCAuIE1BR1BJRV9PVVRQVVRfRU5DT0RJTkc7CiAgICAgICAgCiAgICAgICAgaWYgKCEkY2FjaGUtPkVSUk9SKSB7CiAgICAgICAgICAgIC8vIHJldHVybiBjYWNoZSBISVQsIE1JU1MsIG9yIFNUQUxFCiAgICAgICAgICAgICRjYWNoZV9zdGF0dXMgPSAkY2FjaGUtPmNoZWNrX2NhY2hlKCAkY2FjaGVfa2V5KTsKICAgICAgICB9CiAgICAgICAgICAgICAgICAKICAgICAgICAvLyBpZiBvYmplY3QgY2FjaGVkLCBhbmQgY2FjaGUgaXMgZnJlc2gsIHJldHVybiBjYWNoZWQgb2JqCiAgICAgICAgaWYgKCAkY2FjaGVfc3RhdHVzID09ICdISVQnICkgewogICAgICAgICAgICAkcnNzID0gJGNhY2hlLT5nZXQoICRjYWNoZV9rZXkgKTsKICAgICAgICAgICAgaWYgKCBpc3NldCgkcnNzKSBhbmQgJHJzcyApIHsKICAgICAgICAgICAgICAgIC8vIHNob3VsZCBiZSBjYWNoZSBhZ2UKICAgICAgICAgICAgICAgICRyc3MtPmZyb21fY2FjaGUgPSAxOwogICAgICAgICAgICAgICAgaWYgKCBNQUdQSUVfREVCVUcgPiAxKSB7CiAgICAgICAgICAgICAgICAgICAgZGVidWcoIk1hZ3BpZVJTUzogQ2FjaGUgSElUIiwgRV9VU0VSX05PVElDRSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gJHJzczsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBlbHNlIGF0dGVtcHQgYSBjb25kaXRpb25hbCBnZXQKICAgICAgICAKICAgICAgICAvLyBzZXR1cCBoZWFkZXJzCiAgICAgICAgaWYgKCAkY2FjaGVfc3RhdHVzID09ICdTVEFMRScgKSB7CiAgICAgICAgICAgICRyc3MgPSAkY2FjaGUtPmdldCggJGNhY2hlX2tleSApOwogICAgICAgICAgICBpZiAoICRyc3MgYW5kICRyc3MtPmV0YWcgYW5kICRyc3MtPmxhc3RfbW9kaWZpZWQgKSB7CiAgICAgICAgICAgICAgICAkcmVxdWVzdF9oZWFkZXJzWydJZi1Ob25lLU1hdGNoJ10gPSAkcnNzLT5ldGFnOwogICAgICAgICAgICAgICAgJHJlcXVlc3RfaGVhZGVyc1snSWYtTGFzdC1Nb2RpZmllZCddID0gJHJzcy0+bGFzdF9tb2RpZmllZDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAkcmVzcCA9IF9mZXRjaF9yZW1vdGVfZmlsZSggJHVybCwgJHJlcXVlc3RfaGVhZGVycyApOwogICAgICAgIAogICAgICAgIGlmIChpc3NldCgkcmVzcCkgYW5kICRyZXNwKSB7CiAgICAgICAgICBpZiAoJHJlc3AtPnN0YXR1cyA9PSAnMzA0JyApIHsKICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgdGhlIG1vc3QgY3VycmVudCBjb3B5CiAgICAgICAgICAgICAgICBpZiAoIE1BR1BJRV9ERUJVRyA+IDEpIHsKICAgICAgICAgICAgICAgICAgICBkZWJ1ZygiR290IDMwNCBmb3IgJHVybCIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgLy8gcmVzZXQgY2FjaGUgb24gMzA0IChhdCBtaW51dGlsbG8gaW5zaXN0ZW50IHByb2RkaW5nKQogICAgICAgICAgICAgICAgJGNhY2hlLT5zZXQoJGNhY2hlX2tleSwgJHJzcyk7CiAgICAgICAgICAgICAgICByZXR1cm4gJHJzczsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlaWYgKCBpc19zdWNjZXNzKCAkcmVzcC0+c3RhdHVzICkgKSB7CiAgICAgICAgICAgICAgICAkcnNzID0gX3Jlc3BvbnNlX3RvX3JzcyggJHJlc3AgKTsKICAgICAgICAgICAgICAgIGlmICggJHJzcyApIHsKICAgICAgICAgICAgICAgICAgICBpZiAoTUFHUElFX0RFQlVHID4gMSkgewogICAgICAgICAgICAgICAgICAgICAgICBkZWJ1ZygiRmV0Y2ggc3VjY2Vzc2Z1bCIpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAvLyBhZGQgb2JqZWN0IHRvIGNhY2hlCiAgICAgICAgICAgICAgICAgICAgJGNhY2hlLT5zZXQoICRjYWNoZV9rZXksICRyc3MgKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHJzczsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRlcnJvcm1zZyA9ICJGYWlsZWQgdG8gZmV0Y2ggJHVybCAiOwogICAgICAgICAgICAgICAgaWYgKCAkcmVzcC0+c3RhdHVzID09ICctMTAwJyApIHsKICAgICAgICAgICAgICAgICAgICAkZXJyb3Jtc2cgLj0gIihSZXF1ZXN0IHRpbWVkIG91dCBhZnRlciAiIC4gTUFHUElFX0ZFVENIX1RJTUVfT1VUIC4gIiBzZWNvbmRzKSI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlaWYgKCAkcmVzcC0+ZXJyb3IgKSB7CiAgICAgICAgICAgICAgICAgICAgIyBjb21wZW5zYXRlIGZvciBTbm9vcHkncyBhbm5veWluZyBoYWJiaXQgdG8gdGFja2luZwogICAgICAgICAgICAgICAgICAgICMgb24gJ1xuJwogICAgICAgICAgICAgICAgICAgICRodHRwX2Vycm9yID0gc3Vic3RyKCRyZXNwLT5lcnJvciwgMCwgLTIpOyAKICAgICAgICAgICAgICAgICAgICAkZXJyb3Jtc2cgLj0gIihIVFRQIEVycm9yOiAkaHR0cF9lcnJvcikiOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJGVycm9ybXNnIC49ICAiKEhUVFAgUmVzcG9uc2U6ICIgLiAkcmVzcC0+cmVzcG9uc2VfY29kZSAuJyknOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkZXJyb3Jtc2cgPSAiVW5hYmxlIHRvIHJldHJpZXZlIFJTUyBmaWxlIGZvciB1bmtub3duIHJlYXNvbnMuIjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gZWxzZSBmZXRjaCBmYWlsZWQKICAgICAgICAKICAgICAgICAvLyBhdHRlbXB0IHRvIHJldHVybiBjYWNoZWQgb2JqZWN0CiAgICAgICAgaWYgKCRyc3MpIHsKICAgICAgICAgICAgaWYgKCBNQUdQSUVfREVCVUcgKSB7CiAgICAgICAgICAgICAgICBkZWJ1ZygiUmV0dXJuaW5nIFNUQUxFIG9iamVjdCBmb3IgJHVybCIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAkcnNzOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBlbHNlIHdlIHRvdGFsbHkgZmFpbGVkCiAgICAgICAgZXJyb3IoICRlcnJvcm1zZyApOyAKICAgICAgICAKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgCiAgICB9IC8vIGVuZCBpZiAoICFNQUdQSUVfQ0FDSEVfT04gKSB7Cn0gLy8gZW5kIGZldGNoX3JzcygpCgovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09KlwKICAgIEZ1bmN0aW9uOiAgIGVycm9yCiAgICBQdXJwb3NlOiAgICBzZXQgTUFHUElFX0VSUk9SLCBhbmQgdHJpZ2dlciBlcnJvcgpcKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KCmZ1bmN0aW9uIGVycm9yICgkZXJyb3Jtc2csICRsdmw9RV9VU0VSX1dBUk5JTkcpIHsKICAgICAgICBnbG9iYWwgJE1BR1BJRV9FUlJPUjsKICAgICAgICAKICAgICAgICAvLyBhcHBlbmQgUEhQJ3MgZXJyb3IgbWVzc2FnZSBpZiB0cmFja19lcnJvcnMgZW5hYmxlZAogICAgICAgIGlmICggaXNzZXQoJHBocF9lcnJvcm1zZykgKSB7IAogICAgICAgICAgICAkZXJyb3Jtc2cgLj0gIiAoJHBocF9lcnJvcm1zZykiOwogICAgICAgIH0KICAgICAgICBpZiAoICRlcnJvcm1zZyApIHsKICAgICAgICAgICAgJGVycm9ybXNnID0gIk1hZ3BpZVJTUzogJGVycm9ybXNnIjsKICAgICAgICAgICAgJE1BR1BJRV9FUlJPUiA9ICRlcnJvcm1zZzsKICAgICAgICAgICAgdHJpZ2dlcl9lcnJvciggJGVycm9ybXNnLCAkbHZsKTsgICAgICAgICAgICAgICAgCiAgICAgICAgfQp9CgpmdW5jdGlvbiBkZWJ1ZyAoJGRlYnVnbXNnLCAkbHZsPUVfVVNFUl9OT1RJQ0UpIHsKICAgIHRyaWdnZXJfZXJyb3IoIk1hZ3BpZVJTUyBbZGVidWddICRkZWJ1Z21zZyIsICRsdmwpOwp9CiAgICAgICAgICAgIAovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09KlwKICAgIEZ1bmN0aW9uOiAgIG1hZ3BpZV9lcnJvcgogICAgUHVycG9zZTogICAgYWNjZXNzb3IgZm9yIHRoZSBtYWdwaWUgZXJyb3IgdmFyaWFibGUKXCo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCmZ1bmN0aW9uIG1hZ3BpZV9lcnJvciAoJGVycm9ybXNnPSIiKSB7CiAgICBnbG9iYWwgJE1BR1BJRV9FUlJPUjsKICAgIAogICAgaWYgKCBpc3NldCgkZXJyb3Jtc2cpIGFuZCAkZXJyb3Jtc2cgKSB7IAogICAgICAgICRNQUdQSUVfRVJST1IgPSAkZXJyb3Jtc2c7CiAgICB9CiAgICAKICAgIHJldHVybiAkTUFHUElFX0VSUk9SOyAgIAp9CgovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09KlwKICAgIEZ1bmN0aW9uOiAgIF9mZXRjaF9yZW1vdGVfZmlsZQogICAgUHVycG9zZTogICAgcmV0cmlldmUgYW4gYXJiaXRyYXJ5IHJlbW90ZSBmaWxlCiAgICBJbnB1dDogICAgICB1cmwgb2YgdGhlIHJlbW90ZSBmaWxlCiAgICAgICAgICAgICAgICBoZWFkZXJzIHRvIHNlbmQgYWxvbmcgd2l0aCB0aGUgcmVxdWVzdCAob3B0aW9uYWwpCiAgICBPdXRwdXQ6ICAgICBhbiBIVFRQIHJlc3BvbnNlIG9iamVjdCAoc2VlIFNub29weS5jbGFzcy5pbmMpICAKXCo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCmZ1bmN0aW9uIF9mZXRjaF9yZW1vdGVfZmlsZSAoJHVybCwgJGhlYWRlcnMgPSAiIiApIHsKICAgIC8vIFNub29weSBpcyBhbiBIVFRQIGNsaWVudCBpbiBQSFAKICAgICRjbGllbnQgPSBuZXcgU25vb3B5KCk7CiAgICAkY2xpZW50LT5hZ2VudCA9IE1BR1BJRV9VU0VSX0FHRU5UOwogICAgJGNsaWVudC0+cmVhZF90aW1lb3V0ID0gTUFHUElFX0ZFVENIX1RJTUVfT1VUOwogICAgJGNsaWVudC0+dXNlX2d6aXAgPSBNQUdQSUVfVVNFX0daSVA7CiAgICBpZiAoaXNfYXJyYXkoJGhlYWRlcnMpICkgewogICAgICAgICRjbGllbnQtPnJhd2hlYWRlcnMgPSAkaGVhZGVyczsKICAgIH0KICAgIAogICAgQCRjbGllbnQtPmZldGNoKCR1cmwpOwogICAgcmV0dXJuICRjbGllbnQ7Cgp9CgovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09KlwKICAgIEZ1bmN0aW9uOiAgIF9yZXNwb25zZV90b19yc3MKICAgIFB1cnBvc2U6ICAgIHBhcnNlIGFuIEhUVFAgcmVzcG9uc2Ugb2JqZWN0IGludG8gYW4gUlNTIG9iamVjdAogICAgSW5wdXQ6ICAgICAgYW4gSFRUUCByZXNwb25zZSBvYmplY3QgKHNlZSBTbm9vcHkpCiAgICBPdXRwdXQ6ICAgICBwYXJzZWQgUlNTIG9iamVjdCAoc2VlIHJzc19wYXJzZSkKXCo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCmZ1bmN0aW9uIF9yZXNwb25zZV90b19yc3MgKCRyZXNwKSB7CiAgICAkcnNzID0gbmV3IE1hZ3BpZVJTUyggJHJlc3AtPnJlc3VsdHMsIE1BR1BJRV9PVVRQVVRfRU5DT0RJTkcsIE1BR1BJRV9JTlBVVF9FTkNPRElORywgTUFHUElFX0RFVEVDVF9FTkNPRElORyApOwogICAgCiAgICAvLyBpZiBSU1MgcGFyc2VkIHN1Y2Nlc3NmdWxseSAgICAgICAKICAgIGlmICggJHJzcyBhbmQgISRyc3MtPkVSUk9SKSB7CiAgICAgICAgCiAgICAgICAgLy8gZmluZCBFdGFnLCBhbmQgTGFzdC1Nb2RpZmllZAogICAgICAgIGZvcmVhY2goJHJlc3AtPmhlYWRlcnMgYXMgJGgpIHsKICAgICAgICAgICAgLy8gMjAwMy0wMy0wMiAtIE5pY29sYSBBc3VuaSAod3d3LnRlY25pY2suY29tKSAtIGZpeGVkIGJ1ZyAiVW5kZWZpbmVkIG9mZnNldDogMSIKICAgICAgICAgICAgaWYgKHN0cnBvcygkaCwgIjogIikpIHsKICAgICAgICAgICAgICAgIGxpc3QoJGZpZWxkLCAkdmFsKSA9IGV4cGxvZGUoIjogIiwgJGgsIDIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJGZpZWxkID0gJGg7CiAgICAgICAgICAgICAgICAkdmFsID0gIiI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIGlmICggJGZpZWxkID09ICdFVGFnJyApIHsKICAgICAgICAgICAgICAgICRyc3MtPmV0YWcgPSAkdmFsOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICBpZiAoICRmaWVsZCA9PSAnTGFzdC1Nb2RpZmllZCcgKSB7CiAgICAgICAgICAgICAgICAkcnNzLT5sYXN0X21vZGlmaWVkID0gJHZhbDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICByZXR1cm4gJHJzczsgICAgCiAgICB9IC8vIGVsc2UgY29uc3RydWN0IGVycm9yIG1lc3NhZ2UKICAgIGVsc2UgewogICAgICAgICRlcnJvcm1zZyA9ICJGYWlsZWQgdG8gcGFyc2UgUlNTIGZpbGUuIjsKICAgICAgICAKICAgICAgICBpZiAoJHJzcykgewogICAgICAgICAgICAkZXJyb3Jtc2cgLj0gIiAoIiAuICRyc3MtPkVSUk9SIC4gIikiOwogICAgICAgIH0KICAgICAgICBlcnJvcigkZXJyb3Jtc2cpOwogICAgICAgIAogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0gLy8gZW5kIGlmICgkcnNzIGFuZCAhJHJzcy0+ZXJyb3IpCn0KCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qXAogICAgRnVuY3Rpb246ICAgaW5pdAogICAgUHVycG9zZTogICAgc2V0dXAgY29uc3RhbnRzIHdpdGggZGVmYXVsdCB2YWx1ZXMKICAgICAgICAgICAgICAgIGNoZWNrIGZvciB1c2VyIG92ZXJyaWRlcwpcKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KZnVuY3Rpb24gaW5pdCAoKSB7CiAgICBpZiAoIGRlZmluZWQoJ01BR1BJRV9JTklUQUxJWkVEJykgKSB7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgZGVmaW5lKCdNQUdQSUVfSU5JVEFMSVpFRCcsIHRydWUpOwogICAgfQogICAgCiAgICBpZiAoICFkZWZpbmVkKCdNQUdQSUVfQ0FDSEVfT04nKSApIHsKICAgICAgICBkZWZpbmUoJ01BR1BJRV9DQUNIRV9PTicsIHRydWUpOwogICAgfQoKICAgIGlmICggIWRlZmluZWQoJ01BR1BJRV9DQUNIRV9ESVInKSApIHsKICAgICAgICBkZWZpbmUoJ01BR1BJRV9DQUNIRV9ESVInLCAnLi9jYWNoZScpOwogICAgfQoKICAgIGlmICggIWRlZmluZWQoJ01BR1BJRV9DQUNIRV9BR0UnKSApIHsKICAgICAgICBkZWZpbmUoJ01BR1BJRV9DQUNIRV9BR0UnLCA2MCo2MCk7IC8vIG9uZSBob3VyCiAgICB9CgogICAgaWYgKCAhZGVmaW5lZCgnTUFHUElFX0NBQ0hFX0ZSRVNIX09OTFknKSApIHsKICAgICAgICBkZWZpbmUoJ01BR1BJRV9DQUNIRV9GUkVTSF9PTkxZJywgZmFsc2UpOwogICAgfQoKICAgIGlmICggIWRlZmluZWQoJ01BR1BJRV9PVVRQVVRfRU5DT0RJTkcnKSApIHsKICAgICAgICBkZWZpbmUoJ01BR1BJRV9PVVRQVVRfRU5DT0RJTkcnLCAnSVNPLTg4NTktMScpOwogICAgfQogICAgCiAgICBpZiAoICFkZWZpbmVkKCdNQUdQSUVfSU5QVVRfRU5DT0RJTkcnKSApIHsKICAgICAgICBkZWZpbmUoJ01BR1BJRV9JTlBVVF9FTkNPRElORycsIG51bGwpOwogICAgfQogICAgCiAgICBpZiAoICFkZWZpbmVkKCdNQUdQSUVfREVURUNUX0VOQ09ESU5HJykgKSB7CiAgICAgICAgZGVmaW5lKCdNQUdQSUVfREVURUNUX0VOQ09ESU5HJywgdHJ1ZSk7CiAgICB9CiAgICAKICAgIGlmICggIWRlZmluZWQoJ01BR1BJRV9ERUJVRycpICkgewogICAgICAgIGRlZmluZSgnTUFHUElFX0RFQlVHJywgMCk7CiAgICB9CiAgICAKICAgIGlmICggIWRlZmluZWQoJ01BR1BJRV9VU0VSX0FHRU5UJykgKSB7CiAgICAgICAgJHVhID0gJ01hZ3BpZVJTUy8nLiBNQUdQSUVfVkVSU0lPTiAuICcgKCtodHRwOi8vbWFncGllcnNzLnNmLm5ldCc7CiAgICAgICAgCiAgICAgICAgaWYgKCBNQUdQSUVfQ0FDSEVfT04gKSB7CiAgICAgICAgICAgICR1YSA9ICR1YSAuICcpJzsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICR1YSA9ICR1YSAuICc7IE5vIGNhY2hlKSc7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZmluZSgnTUFHUElFX1VTRVJfQUdFTlQnLCAkdWEpOwogICAgfQogICAgCiAgICBpZiAoICFkZWZpbmVkKCdNQUdQSUVfRkVUQ0hfVElNRV9PVVQnKSApIHsKICAgICAgICBkZWZpbmUoJ01BR1BJRV9GRVRDSF9USU1FX09VVCcsIDUpOyAvLyA1IHNlY29uZCB0aW1lb3V0CiAgICB9CiAgICAKICAgIC8vIHVzZSBnemlwIGVuY29kaW5nIHRvIGZldGNoIHJzcyBmaWxlcyBpZiBzdXBwb3J0ZWQ/CiAgICBpZiAoICFkZWZpbmVkKCdNQUdQSUVfVVNFX0daSVAnKSApIHsKICAgICAgICBkZWZpbmUoJ01BR1BJRV9VU0VfR1pJUCcsIHRydWUpOyAgICAKICAgIH0KfQoKLy8gTk9URTogdGhlIGZvbGxvd2luZyBjb2RlIHNob3VsZCByZWFsbHkgYmUgaW4gU25vb3B5LCBvciBhdCBsZWFzdAovLyBzb21ld2hlcmUgb3RoZXIgdGhlbiByc3NfZmV0Y2ghCgovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09KlwKICAgIEhUVFAgU1RBVFVTIENPREUgUFJFRElDQVRFUwogICAgVGhlc2UgZnVuY3Rpb25zIGF0dGVtcHQgdG8gY2xhc3NpZnkgYW4gSFRUUCBzdGF0dXMgY29kZQogICAgYmFzZWQgb24gUkZDIDI2MTYgYW5kIFJGQyAyNTE4LgogICAgCiAgICBBbGwgb2YgdGhlbSB0YWtlIGFuIEhUVFAgc3RhdHVzIGNvZGUgYXMgaW5wdXQsIGFuZCByZXR1cm4gdHJ1ZSBvciBmYWxzZQoKICAgIEFsbCB0aGlzIGNvZGUgaXMgYWRhcHRlZCBmcm9tIExXUCdzIEhUVFA6OlN0YXR1cy4KXCo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCgoKLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSpcCiAgICBGdW5jdGlvbjogICBpc19pbmZvCiAgICBQdXJwb3NlOiAgICByZXR1cm4gdHJ1ZSBpZiBJbmZvcm1hdGlvbmFsIHN0YXR1cyBjb2RlClwqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwpmdW5jdGlvbiBpc19pbmZvICgkc2MpIHsgCiAgICByZXR1cm4gJHNjID49IDEwMCAmJiAkc2MgPCAyMDA7IAp9CgovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09KlwKICAgIEZ1bmN0aW9uOiAgIGlzX3N1Y2Nlc3MKICAgIFB1cnBvc2U6ICAgIHJldHVybiB0cnVlIGlmIFN1Y2Nlc3NmdWwgc3RhdHVzIGNvZGUKXCo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCmZ1bmN0aW9uIGlzX3N1Y2Nlc3MgKCRzYykgeyAKICAgIHJldHVybiAkc2MgPj0gMjAwICYmICRzYyA8IDMwMDsgCn0KCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qXAogICAgRnVuY3Rpb246ICAgaXNfcmVkaXJlY3QKICAgIFB1cnBvc2U6ICAgIHJldHVybiB0cnVlIGlmIFJlZGlyZWN0aW9uIHN0YXR1cyBjb2RlClwqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwpmdW5jdGlvbiBpc19yZWRpcmVjdCAoJHNjKSB7IAogICAgcmV0dXJuICRzYyA+PSAzMDAgJiYgJHNjIDwgNDAwOyAKfQoKLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSpcCiAgICBGdW5jdGlvbjogICBpc19lcnJvcgogICAgUHVycG9zZTogICAgcmV0dXJuIHRydWUgaWYgRXJyb3Igc3RhdHVzIGNvZGUKXCo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCmZ1bmN0aW9uIGlzX2Vycm9yICgkc2MpIHsgCiAgICByZXR1cm4gJHNjID49IDQwMCAmJiAkc2MgPCA2MDA7IAp9CgovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09KlwKICAgIEZ1bmN0aW9uOiAgIGlzX2NsaWVudF9lcnJvcgogICAgUHVycG9zZTogICAgcmV0dXJuIHRydWUgaWYgRXJyb3Igc3RhdHVzIGNvZGUsIGFuZCBpdHMgYSBjbGllbnQgZXJyb3IKXCo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCmZ1bmN0aW9uIGlzX2NsaWVudF9lcnJvciAoJHNjKSB7IAogICAgcmV0dXJuICRzYyA+PSA0MDAgJiYgJHNjIDwgNTAwOyAKfQoKLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSpcCiAgICBGdW5jdGlvbjogICBpc19jbGllbnRfZXJyb3IKICAgIFB1cnBvc2U6ICAgIHJldHVybiB0cnVlIGlmIEVycm9yIHN0YXR1cyBjb2RlLCBhbmQgaXRzIGEgc2VydmVyIGVycm9yClwqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwpmdW5jdGlvbiBpc19zZXJ2ZXJfZXJyb3IgKCRzYykgeyAKICAgIHJldHVybiAkc2MgPj0gNTAwICYmICRzYyA8IDYwMDsgCn0KCj8+Cg==";s:32:"presibourse/magpie/rss_parse.inc";s:26188:"PD9waHAKCi8qKgoqIFByb2plY3Q6ICAgICBNYWdwaWVSU1M6IGEgc2ltcGxlIFJTUyBpbnRlZ3JhdGlvbiB0b29sCiogRmlsZTogICAgICAgIHJzc19wYXJzZS5pbmMgIC0gcGFyc2UgYW4gUlNTIG9yIEF0b20gZmVlZAoqICAgICAgICAgICAgICAgcmV0dXJuIGFzIGEgc2ltcGxlIG9iamVjdC4KKgoqIEhhbmRsZXMgUlNTIDAuOXgsIFJTUyAyLjAsIFJTUyAxLjAsIGFuZCBBdG9tIDAuMwoqCiogVGhlIGxhc3Rlc3QgdmVyc2lvbiBvZiBNYWdwaWVSU1MgY2FuIGJlIG9idGFpbmVkIGZyb206CiogaHR0cDovL21hZ3BpZXJzcy5zb3VyY2Vmb3JnZS5uZXQKKgoqIEZvciBxdWVzdG