loading
Relative Units - CSS Fundamentals

Relative Units - CSS Fundamentals

                        PHA+SW4gdGhlIHdlYiBlbnZpcm9ubWVudCwgdGhlIHVzZXIgY2FuIGhhdmUgdGhlaXIgYnJvd3NlciB3aW5kb3cgc2V0IHRvIGFueSBudW1iZXIgb2Ygc2l6ZXMsIGFuZCB0aGUgQ1NTIGhhcyB0byBhcHBseSB0byBpdC4gQWxzbywgdXNlcnMgY2FuIHJlc2l6ZSB0aGUgcGFnZSBhZnRlciBpdOKAmXMgb3BlbmVkLCBhbmQgdGhlIENTUyBuZWVkcyB0byBhZGp1c3QgdG8gbmV3IGNvbnN0cmFpbnMuIFRoaXMgbWVhbnMgdGhhdCB0aGUgYnJvd3NlciBtdXN0IGNhbGN1bGF0ZSB0aG9zZSB3aGVuIHRoZSBwYWdlIGlzIHJlbmRlcmVkIG9uc2NyZWVuLiBSZWxhdGl2ZSB1bml0cyBhcmUgb25lIG9mIHRoZSB0b29scyBDU1MgcHJvdmlkZXMgdG8gd29yayBmb3IgdGhlIDxlbT5yZXNwb25zaXZlPC9lbT4gZGVzaWduLjwvcD4KCjxoMiBpZD0icGl4ZWxzLXBvaW50cy1hbmQtcGljYXMiPlBpeGVscywgUG9pbnRzLCBhbmQgUGljYXM8L2gyPgoKPHA+Q1NTIHN1cHBvcnRzIHNldmVyYWwgYWJzb2x1dGUgbGVuZ3RoIHVuaXRzLCB0aGUgbW9zdCBjb21tb24gZm9yIHdoaWNoLCBhbmQgdGhlIG1vc3QgYmFzaWMsIGlzIHRoZSBwaXhlbCAocHgpLiBMZXNzIGNvbW1vbiBhYnNvbHV0ZSB1bml0cyBhcmUgbW0gKG1pbGxpbWV0ZXIpLCBjbSAoY2VudGltZXRlciksIGluLiAoaW5jaCksIHB0IChwb2ludCDigJQgdHlwb2dyYXBoaWMgdGVybSBmb3IgMS83MiBvZiBhbiBpbmNoKSwgYW5kIHBjIChwaWNhIOKAlCB0eXBvZ3JhcGhpYyB0ZXJtIGZvciAxMiBwb2ludHMpLiBBbnkgb2YgdGhlc2UgdW5pdHMgY2FuIGJlIHRyYW5zbGF0ZWQgZGlyZWN0bHkgdG8gYW5vdGhlciBpZiB5b3Ugd2FudCB0byB3b3JrIG91dCB0aGUgbWF0aDo8L3A+Cgo8c3BhbiBjbGFzcz0ia2F0ZXgtZGlzcGxheSI+PHNwYW4gY2xhc3M9ImthdGV4Ij48c3BhbiBjbGFzcz0ia2F0ZXgtbWF0aG1sIj48bWF0aCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCI+PHNlbWFudGljcz48bXJvdz48bW4+MTwvbW4+PG10ZXh0PiYjeGEwOzwvbXRleHQ+PG1pPmk8L21pPjxtaT5uPC9taT48bWkgbWF0aHZhcmlhbnQ9Im5vcm1hbCI+LjwvbWk+PG1vPj08L21vPjxtbj4yNS40PC9tbj48bXRleHQ+JiN4YTA7PC9tdGV4dD48bWk+bTwvbWk+PG1pPm08L21pPjxtbz49PC9tbz48bW4+Mi41NDwvbW4+PG10ZXh0PiYjeGEwOzwvbXRleHQ+PG1pPmM8L21pPjxtaT5tPC9taT48bW8+PTwvbW8+PG1uPjY8L21uPjxtdGV4dD4mI3hhMDs8L210ZXh0PjxtaT5wPC9taT48bWk+YzwvbWk+PG1vPj08L21vPjxtbj43MjwvbW4+PG10ZXh0PiYjeGEwOzwvbXRleHQ+PG1pPnA8L21pPjxtaT50PC9taT48bW8+PTwvbW8+PG1uPjk2PC9tbj48bXRleHQ+JiN4YTA7PC9tdGV4dD48bWk+cDwvbWk+PG1pPng8L21pPjwvbXJvdz48YW5ub3RhdGlvbiBlbmNvZGluZz0iYXBwbGljYXRpb24veC10ZXgiPjFcIGluLiA9IDI1LjRcIG1tID0gMi41NFwgY20gPSA2XCBwYyA9IDcyXCBwdCA9IDk2XCBweDwvYW5ub3RhdGlvbj48L3NlbWFudGljcz48L21hdGg+PC9zcGFuPjxzcGFuIGNsYXNzPSJrYXRleC1odG1sIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHNwYW4gY2xhc3M9ImJhc2UiPjxzcGFuIGNsYXNzPSJzdHJ1dCIgc3R5bGU9ImhlaWdodDowLjY1OTUyZW07dmVydGljYWwtYWxpZ246MGVtOyI+PC9zcGFuPjxzcGFuIGNsYXNzPSJtb3JkIj4xPC9zcGFuPjxzcGFuIGNsYXNzPSJtc3BhY2UiPiYjeGEwOzwvc3Bhbj48c3BhbiBjbGFzcz0ibW9yZCBtYXRoZGVmYXVsdCI+aTwvc3Bhbj48c3BhbiBjbGFzcz0ibW9yZCBtYXRoZGVmYXVsdCI+bjwvc3Bhbj48c3BhbiBjbGFzcz0ibW9yZCI+Ljwvc3Bhbj48c3BhbiBjbGFzcz0ibXNwYWNlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OjAuMjc3Nzc3Nzc3Nzc3Nzc3OGVtOyI+PC9zcGFuPjxzcGFuIGNsYXNzPSJtcmVsIj49PC9zcGFuPjxzcGFuIGNsYXNzPSJtc3BhY2UiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6MC4yNzc3Nzc3Nzc3Nzc3Nzc4ZW07Ij48L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJiYXNlIj48c3BhbiBjbGFzcz0ic3RydXQiIHN0eWxlPSJoZWlnaHQ6MC42NDQ0NGVtO3ZlcnRpY2FsLWFsaWduOjBlbTsiPjwvc3Bhbj48c3BhbiBjbGFzcz0ibW9yZCI+Mjwvc3Bhbj48c3BhbiBjbGFzcz0ibW9yZCI+NTwvc3Bhbj48c3BhbiBjbGFzcz0ibW9yZCI+Ljwvc3Bhbj48c3BhbiBjbGFzcz0ibW9yZCI+NDwvc3Bhbj48c3BhbiBjbGFzcz0ibXNwYWNlIj4mI3hhMDs8L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQgbWF0aGRlZmF1bHQiPm08L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQgbWF0aGRlZmF1bHQiPm08L3NwYW4+PHNwYW4gY2xhc3M9Im1zcGFjZSIgc3R5bGU9Im1hcmdpbi1yaWdodDowLjI3Nzc3Nzc3Nzc3Nzc3NzhlbTsiPjwvc3Bhbj48c3BhbiBjbGFzcz0ibXJlbCI+PTwvc3Bhbj48c3BhbiBjbGFzcz0ibXNwYWNlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OjAuMjc3Nzc3Nzc3Nzc3Nzc3OGVtOyI+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0iYmFzZSI+PHNwYW4gY2xhc3M9InN0cnV0IiBzdHlsZT0iaGVpZ2h0OjAuNjQ0NDRlbTt2ZXJ0aWNhbC1hbGlnbjowZW07Ij48L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPjI8L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPi48L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPjU8L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPjQ8L3NwYW4+PHNwYW4gY2xhc3M9Im1zcGFjZSI+JiN4YTA7PC9zcGFuPjxzcGFuIGNsYXNzPSJtb3JkIG1hdGhkZWZhdWx0Ij5jPC9zcGFuPjxzcGFuIGNsYXNzPSJtb3JkIG1hdGhkZWZhdWx0Ij5tPC9zcGFuPjxzcGFuIGNsYXNzPSJtc3BhY2UiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6MC4yNzc3Nzc3Nzc3Nzc3Nzc4ZW07Ij48L3NwYW4+PHNwYW4gY2xhc3M9Im1yZWwiPj08L3NwYW4+PHNwYW4gY2xhc3M9Im1zcGFjZSIgc3R5bGU9Im1hcmdpbi1yaWdodDowLjI3Nzc3Nzc3Nzc3Nzc3NzhlbTsiPjwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9ImJhc2UiPjxzcGFuIGNsYXNzPSJzdHJ1dCIgc3R5bGU9ImhlaWdodDowLjgzODg4MDAwMDAwMDAwMDFlbTt2ZXJ0aWNhbC1hbGlnbjotMC4xOTQ0NGVtOyI+PC9zcGFuPjxzcGFuIGNsYXNzPSJtb3JkIj42PC9zcGFuPjxzcGFuIGNsYXNzPSJtc3BhY2UiPiYjeGEwOzwvc3Bhbj48c3BhbiBjbGFzcz0ibW9yZCBtYXRoZGVmYXVsdCI+cDwvc3Bhbj48c3BhbiBjbGFzcz0ibW9yZCBtYXRoZGVmYXVsdCI+Yzwvc3Bhbj48c3BhbiBjbGFzcz0ibXNwYWNlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OjAuMjc3Nzc3Nzc3Nzc3Nzc3OGVtOyI+PC9zcGFuPjxzcGFuIGNsYXNzPSJtcmVsIj49PC9zcGFuPjxzcGFuIGNsYXNzPSJtc3BhY2UiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6MC4yNzc3Nzc3Nzc3Nzc3Nzc4ZW07Ij48L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJiYXNlIj48c3BhbiBjbGFzcz0ic3RydXQiIHN0eWxlPSJoZWlnaHQ6MC44Mzg4ODAwMDAwMDAwMDAxZW07dmVydGljYWwtYWxpZ246LTAuMTk0NDRlbTsiPjwvc3Bhbj48c3BhbiBjbGFzcz0ibW9yZCI+Nzwvc3Bhbj48c3BhbiBjbGFzcz0ibW9yZCI+Mjwvc3Bhbj48c3BhbiBjbGFzcz0ibXNwYWNlIj4mI3hhMDs8L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQgbWF0aGRlZmF1bHQiPnA8L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQgbWF0aGRlZmF1bHQiPnQ8L3NwYW4+PHNwYW4gY2xhc3M9Im1zcGFjZSIgc3R5bGU9Im1hcmdpbi1yaWdodDowLjI3Nzc3Nzc3Nzc3Nzc3NzhlbTsiPjwvc3Bhbj48c3BhbiBjbGFzcz0ibXJlbCI+PTwvc3Bhbj48c3BhbiBjbGFzcz0ibXNwYWNlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OjAuMjc3Nzc3Nzc3Nzc3Nzc3OGVtOyI+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0iYmFzZSI+PHNwYW4gY2xhc3M9InN0cnV0IiBzdHlsZT0iaGVpZ2h0OjAuODM4ODgwMDAwMDAwMDAwMWVtO3ZlcnRpY2FsLWFsaWduOi0wLjE5NDQ0ZW07Ij48L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPjk8L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPjY8L3NwYW4+PHNwYW4gY2xhc3M9Im1zcGFjZSI+JiN4YTA7PC9zcGFuPjxzcGFuIGNsYXNzPSJtb3JkIG1hdGhkZWZhdWx0Ij5wPC9zcGFuPjxzcGFuIGNsYXNzPSJtb3JkIG1hdGhkZWZhdWx0Ij54PC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvc3Bhbj4KCjxwPnRoZXJlZm9yZSwgMTYgcHggaXMgdGhlIHNhbWUgYXMgMTIgcHQgKDxzcGFuIGNsYXNzPSJrYXRleCI+PHNwYW4gY2xhc3M9ImthdGV4LW1hdGhtbCI+PG1hdGggeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwiPjxzZW1hbnRpY3M+PG1yb3c+PG1mcmFjPjxtbj4xNjwvbW4+PG1uPjk2PC9tbj48L21mcmFjPjxtbz4mI3hkNzs8L21vPjxtbj43MjwvbW4+PC9tcm93Pjxhbm5vdGF0aW9uIGVuY29kaW5nPSJhcHBsaWNhdGlvbi94LXRleCI+XGZyYWN7MTZ9ezk2fVx0aW1lc3s3Mn08L2Fubm90YXRpb24+PC9zZW1hbnRpY3M+PC9tYXRoPjwvc3Bhbj48c3BhbiBjbGFzcz0ia2F0ZXgtaHRtbCIgYXJpYS1oaWRkZW49InRydWUiPjxzcGFuIGNsYXNzPSJiYXNlIj48c3BhbiBjbGFzcz0ic3RydXQiIHN0eWxlPSJoZWlnaHQ6MS4xOTAxMDhlbTt2ZXJ0aWNhbC1hbGlnbjotMC4zNDVlbTsiPjwvc3Bhbj48c3BhbiBjbGFzcz0ibW9yZCI+PHNwYW4gY2xhc3M9Im1vcGVuIG51bGxkZWxpbWl0ZXIiPjwvc3Bhbj48c3BhbiBjbGFzcz0ibWZyYWMiPjxzcGFuIGNsYXNzPSJ2bGlzdC10IHZsaXN0LXQyIj48c3BhbiBjbGFzcz0idmxpc3QtciI+PHNwYW4gY2xhc3M9InZsaXN0IiBzdHlsZT0iaGVpZ2h0OjAuODQ1MTA4ZW07Ij48c3BhbiBzdHlsZT0idG9wOi0yLjY1NTAwMDAwMDAwMDAwMDJlbTsiPjxzcGFuIGNsYXNzPSJwc3RydXQiIHN0eWxlPSJoZWlnaHQ6M2VtOyI+PC9zcGFuPjxzcGFuIGNsYXNzPSJzaXppbmcgcmVzZXQtc2l6ZTYgc2l6ZTMgbXRpZ2h0Ij48c3BhbiBjbGFzcz0ibW9yZCBtdGlnaHQiPjxzcGFuIGNsYXNzPSJtb3JkIG10aWdodCI+OTwvc3Bhbj48c3BhbiBjbGFzcz0ibW9yZCBtdGlnaHQiPjY8L3NwYW4+PC9zcGFuPjwvc3Bhbj48L3NwYW4+PHNwYW4gc3R5bGU9InRvcDotMy4yM2VtOyI+PHNwYW4gY2xhc3M9InBzdHJ1dCIgc3R5bGU9ImhlaWdodDozZW07Ij48L3NwYW4+PHNwYW4gY2xhc3M9ImZyYWMtbGluZSIgc3R5bGU9ImJvcmRlci1ib3R0b20td2lkdGg6MC4wNGVtOyI+PC9zcGFuPjwvc3Bhbj48c3BhbiBzdHlsZT0idG9wOi0zLjM5NGVtOyI+PHNwYW4gY2xhc3M9InBzdHJ1dCIgc3R5bGU9ImhlaWdodDozZW07Ij48L3NwYW4+PHNwYW4gY2xhc3M9InNpemluZyByZXNldC1zaXplNiBzaXplMyBtdGlnaHQiPjxzcGFuIGNsYXNzPSJtb3JkIG10aWdodCI+PHNwYW4gY2xhc3M9Im1vcmQgbXRpZ2h0Ij4xPC9zcGFuPjxzcGFuIGNsYXNzPSJtb3JkIG10aWdodCI+Njwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InZsaXN0LXMiPiYjeDIwMGI7PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idmxpc3QtciI+PHNwYW4gY2xhc3M9InZsaXN0IiBzdHlsZT0iaGVpZ2h0OjAuMzQ1ZW07Ij48c3Bhbj48L3NwYW4+PC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJtY2xvc2UgbnVsbGRlbGltaXRlciI+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0ibXNwYWNlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OjAuMjIyMjIyMjIyMjIyMjIyMmVtOyI+PC9zcGFuPjxzcGFuIGNsYXNzPSJtYmluIj4mI3hkNzs8L3NwYW4+PHNwYW4gY2xhc3M9Im1zcGFjZSIgc3R5bGU9Im1hcmdpbi1yaWdodDowLjIyMjIyMjIyMjIyMjIyMjJlbTsiPjwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9ImJhc2UiPjxzcGFuIGNsYXNzPSJzdHJ1dCIgc3R5bGU9ImhlaWdodDowLjY0NDQ0ZW07dmVydGljYWwtYWxpZ246MGVtOyI+PC9zcGFuPjxzcGFuIGNsYXNzPSJtb3JkIj48c3BhbiBjbGFzcz0ibW9yZCI+Nzwvc3Bhbj48c3BhbiBjbGFzcz0ibW9yZCI+Mjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvc3Bhbj48L3NwYW4+KS4gRGVzaWduZXJzIGFyZSBvZnRlbiBtb3JlIGZhbWlsaWFyIHdpdGggdGhlIHVzZSBvZiBwb2ludHMsIHdoZXJlIGRldmVsb3BlcnMgYXJlIG1vcmUgYWNjdXN0b21lZCB0byBwaXhlbHMuPC9wPgoKPHA+UGl4ZWwgaXMgYSBzbGlnaHRseSBtaXNsZWFkaW5nIG5hbWUg4oCUIGEgQ1NTIHBpeGVsIGRvZXMgbm90IHN0cmljdGx5IGVxdWF0ZSB0byBhIG1vbml0b3LigJlzIHBpeGVsLiBUaGlzIGlzIG5vdGFibHkgdGhlIGNhc2Ugb24gaGlnaC1yZXNvbHV0aW9uIGRpc3BsYXlzLiBBbHRob3VnaCB0aGUgQ1NTIG1lYXN1cmVtZW50cyBjYW4gYmUgc2NhbGVkIGEgYml0LCBkZXBlbmRpbmcgb24gdGhlIGJyb3dzZXIsIHRoZSBvcGVyYXRpbmcgc3lzdGVtLCBhbmQgdGhlIGhhcmR3YXJlLCA5NiBweCBpcyB1c3VhbGx5IGluIHRoZSBiYWxscGFyayBvZiAxIHBoeXNpY2FsIGluY2ggb25zY3JlZW4sIHRob3VnaCB0aGlzIGNhbiB2YXJ5IG9uIGNlcnRhaW4gZGV2aWNlcyBvciB3aXRoIGEgdXNlcuKAmXMgcmVzb2x1dGlvbiBzZXR0aW5ncy48L3A+Cgo8aDIgaWQ9ImVtcy1hbmQtcmVtcyI+RW1zIGFuZCBSZW1zPC9oMj4KCjxwPkVtcywgdGhlIG1vc3QgY29tbW9uIHJlbGF0aXZlIGxlbmd0aCB1bml0LCBhcmUgYSBtZWFzdXJlIHVzZWQgaW4gdHlwb2dyYXBoeSwgcmVmZXJpbmcgdG8gYSBzcGVjaWZpZWQgZm9udCBzaXplLiBJbiBDU1MsIDEgZW0gbWVhbnMgdGhlIGZvbnQgc2l6ZSBvZiB0aGUgY3VycmVudCBlbGVtZW50OyBpdHMgZXhhY3QgdmFsdWUgdmFyaWVzIGRlcGVuZGluZyBvbiB0aGUgZWxlbWVudCB5b3XigJlyZSBhcHBseWluZyBpdCB0by48L3A+Cgo8cD5Gb3IgZXhhbXBsZTo8L3A+Cgo8ZGl2IGNsYXNzPSJsYW5ndWFnZS1jc3MgaGlnaGxpZ2h0ZXItcm91Z2UiPjxkaXYgY2xhc3M9ImhpZ2hsaWdodCI+PHByZSBjbGFzcz0iaGlnaGxpZ2h0Ij48Y29kZT48c3BhbiBjbGFzcz0ibmMiPi5wYWRkZWQ8L3NwYW4+IDxzcGFuIGNsYXNzPSJwIj57PC9zcGFuPgogIDxzcGFuIGNsYXNzPSJubCI+Zm9udC1zaXplPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj46PC9zcGFuPiA8c3BhbiBjbGFzcz0ibSI+MTZweDwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ozwvc3Bhbj4KICA8c3BhbiBjbGFzcz0ibmwiPnBhZGRpbmc8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjo8L3NwYW4+IDxzcGFuIGNsYXNzPSJtIj4xZW08L3NwYW4+PHNwYW4gY2xhc3M9InAiPjs8L3NwYW4+CjxzcGFuIGNsYXNzPSJwIj59PC9zcGFuPgo8L2NvZGU+PC9wcmU+PC9kaXY+PC9kaXY+Cgo8cD5UaGlzIHJ1bGVzZXQgc3BlY2lmaWVzIGEgZm9udCBzaXplIG9mIDE2IHB4LCB3aGljaCBiZWNvbWVzIHRoZSBlbGVtZW504oCZcyBsb2NhbCBkZWZpbml0aW9uIGZvciAxIGVtLiBUaGVuIHRoZSBjb2RlIHVzZXMgZW1zIHRvIHNwZWNpZnkgdGhlIHBhZGRpbmcgb2YgdGhlIGVsZW1lbnQsIHByb2R1Y2luZyBhIHJlbmRlcmVkIHBhZGRpbmcgb2YgMTYgcHguIElmIGFub3RoZXIgc2VsZWN0b3IgdGFyZ2V0cyB0aGUgc2FtZSBlbGVtZW50IGFuZCBvdmVycmlkZXMgaXQgd2l0aCBhIGRpZmZlcmVudCBmb250IHNpemUsIGl04oCZbGwgY2hhbmdlIHRoZSBsb2NhbCBtZWFuaW5nIG9mIGVtLCBhbmQgdGhlIGNvbXB1dGVkIHBhZGRpbmcgd2lsbCBjaGFuZ2UgdG8gcmVmbGVjdCB0aGF0LjwvcD4KCjxibG9ja3F1b3RlPgogIDxwPlZhbHVlcyBkZWNsYXJlZCB1c2luZyByZWxhdGl2ZSB1bml0cyBhcmUgZXZhbHVhdGVkIGJ5IHRoZSBicm93c2VyIHRvIGFuIGFic29sdXRlIHZhbHVlLCBjYWxsZWQgPGVtPmNvbXB1dGVkIHZhbHVlPC9lbT4uPC9wPgo8L2Jsb2NrcXVvdGU+Cgo8aDMgaWQ9InVzaW5nLWVtcy10by1kZWZpbmUtZm9udC1zaXplIj5Vc2luZyBFbXMgdG8gRGVmaW5lIEZvbnQtc2l6ZTwvaDM+Cgo8cD5XaGVuIGl0IGNvbWVzIHRvIHRoZSA8Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtcGxhaW50ZXh0IGhpZ2hsaWdodGVyLXJvdWdlIj5mb250LXNpemU8L2NvZGU+IHByb3BlcnR5LCBlbXMgaGF2ZSBiZWhhdmUgYSBsaXR0bGUgZGlmZmVyZW50bHkuIElmIHlvdSBkZWNsYXJlIDxjb2RlIGNsYXNzPSJsYW5ndWFnZS1wbGFpbnRleHQgaGlnaGxpZ2h0ZXItcm91Z2UiPmZvbnQtc2l6ZTogMS4yZW08L2NvZGU+LCB3aGF0IGRvZXMgdGhhdCBtZWFuPyBBIGZvbnQgc2l6ZSBjYW7igJl0IGVxdWFsIDEuMiB0aW1lcyBpdHNlbGYuIEluc3RlYWQsIDxjb2RlIGNsYXNzPSJsYW5ndWFnZS1wbGFpbnRleHQgaGlnaGxpZ2h0ZXItcm91Z2UiPmZvbnQtc2l6ZTwvY29kZT4gZW1zIGFyZSBkZXJpdmVkIGZyb20gdGhlIDxlbT5pbmhlcml0ZWQ8L2VtPiBmb250IHNpemUuPC9wPgoKPHA+SWYgeW91IGtub3cgdGhlIHBpeGVsLWJhc2VkIGZvbnQgc2l6ZSB5b3XigJlkIGxpa2UsIGJ1dCB3YW50IHRvIHNwZWNpZnkgdGhlIGRlY2xhcmF0aW9uIGluIGVtcywgaGVyZeKAmXMgYSBzaW1wbGUgZm9ybXVsYTogZGl2aWRlIHRoZSBkZXNpcmVkIHBpeGVsIHNpemUgYnkgdGhlIHBhcmVudCAoaW5oZXJpdGVkKSBwaXhlbCBzaXplLiBGb3IgZXhhbXBsZSwgaWYgeW91IHdhbnQgYSAxMCBweCBmb250IGFuZCB5b3VyIGVsZW1lbnQgaXMgaW5oZXJpdGluZyBhIDEyIHB4IGZvbnQsIDxzcGFuIGNsYXNzPSJrYXRleCI+PHNwYW4gY2xhc3M9ImthdGV4LW1hdGhtbCI+PG1hdGggeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwiPjxzZW1hbnRpY3M+PG1yb3c+PG1uPjEwPC9tbj48bWkgbWF0aHZhcmlhbnQ9Im5vcm1hbCI+LzwvbWk+PG1uPjEyPC9tbj48bW8+PTwvbW8+PG1uPjAuODMzMzwvbW4+PG10ZXh0PiYjeGEwOzwvbXRleHQ+PG1pPmU8L21pPjxtaT5tPC9taT48L21yb3c+PGFubm90YXRpb24gZW5jb2Rpbmc9ImFwcGxpY2F0aW9uL3gtdGV4Ij4xMC8xMiA9IDAuODMzM1wgZW08L2Fubm90YXRpb24+PC9zZW1hbnRpY3M+PC9tYXRoPjwvc3Bhbj48c3BhbiBjbGFzcz0ia2F0ZXgtaHRtbCIgYXJpYS1oaWRkZW49InRydWUiPjxzcGFuIGNsYXNzPSJiYXNlIj48c3BhbiBjbGFzcz0ic3RydXQiIHN0eWxlPSJoZWlnaHQ6MWVtO3ZlcnRpY2FsLWFsaWduOi0wLjI1ZW07Ij48L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPjE8L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPjA8L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPi88L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPjE8L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPjI8L3NwYW4+PHNwYW4gY2xhc3M9Im1zcGFjZSIgc3R5bGU9Im1hcmdpbi1yaWdodDowLjI3Nzc3Nzc3Nzc3Nzc3NzhlbTsiPjwvc3Bhbj48c3BhbiBjbGFzcz0ibXJlbCI+PTwvc3Bhbj48c3BhbiBjbGFzcz0ibXNwYWNlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OjAuMjc3Nzc3Nzc3Nzc3Nzc3OGVtOyI+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0iYmFzZSI+PHNwYW4gY2xhc3M9InN0cnV0IiBzdHlsZT0iaGVpZ2h0OjAuNjQ0NDRlbTt2ZXJ0aWNhbC1hbGlnbjowZW07Ij48L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPjA8L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPi48L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPjg8L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPjM8L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPjM8L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPjM8L3NwYW4+PHNwYW4gY2xhc3M9Im1zcGFjZSI+JiN4YTA7PC9zcGFuPjxzcGFuIGNsYXNzPSJtb3JkIG1hdGhkZWZhdWx0Ij5lPC9zcGFuPjxzcGFuIGNsYXNzPSJtb3JkIG1hdGhkZWZhdWx0Ij5tPC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9zcGFuPi4gSWYgeW91IHdhbnQgYSAxNiBweCBmb250IGFuZCB0aGUgcGFyZW50IGZvbnQgaXMgMTIgcHgsIDxzcGFuIGNsYXNzPSJrYXRleCI+PHNwYW4gY2xhc3M9ImthdGV4LW1hdGhtbCI+PG1hdGggeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwiPjxzZW1hbnRpY3M+PG1yb3c+PG1uPjE2PC9tbj48bWkgbWF0aHZhcmlhbnQ9Im5vcm1hbCI+LzwvbWk+PG1uPjEyPC9tbj48bW8+PTwvbW8+PG1uPjEuMzMzMzwvbW4+PG10ZXh0PiYjeGEwOzwvbXRleHQ+PG1pPmU8L21pPjxtaT5tPC9taT48L21yb3c+PGFubm90YXRpb24gZW5jb2Rpbmc9ImFwcGxpY2F0aW9uL3gtdGV4Ij4xNi8xMiA9IDEuMzMzM1wgZW08L2Fubm90YXRpb24+PC9zZW1hbnRpY3M+PC9tYXRoPjwvc3Bhbj48c3BhbiBjbGFzcz0ia2F0ZXgtaHRtbCIgYXJpYS1oaWRkZW49InRydWUiPjxzcGFuIGNsYXNzPSJiYXNlIj48c3BhbiBjbGFzcz0ic3RydXQiIHN0eWxlPSJoZWlnaHQ6MWVtO3ZlcnRpY2FsLWFsaWduOi0wLjI1ZW07Ij48L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPjE8L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPjY8L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPi88L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPjE8L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPjI8L3NwYW4+PHNwYW4gY2xhc3M9Im1zcGFjZSIgc3R5bGU9Im1hcmdpbi1yaWdodDowLjI3Nzc3Nzc3Nzc3Nzc3NzhlbTsiPjwvc3Bhbj48c3BhbiBjbGFzcz0ibXJlbCI+PTwvc3Bhbj48c3BhbiBjbGFzcz0ibXNwYWNlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OjAuMjc3Nzc3Nzc3Nzc3Nzc3OGVtOyI+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0iYmFzZSI+PHNwYW4gY2xhc3M9InN0cnV0IiBzdHlsZT0iaGVpZ2h0OjAuNjQ0NDRlbTt2ZXJ0aWNhbC1hbGlnbjowZW07Ij48L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPjE8L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPi48L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPjM8L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPjM8L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPjM8L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPjM8L3NwYW4+PHNwYW4gY2xhc3M9Im1zcGFjZSI+JiN4YTA7PC9zcGFuPjxzcGFuIGNsYXNzPSJtb3JkIG1hdGhkZWZhdWx0Ij5lPC9zcGFuPjxzcGFuIGNsYXNzPSJtb3JkIG1hdGhkZWZhdWx0Ij5tPC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9zcGFuPi48L3A+Cgo8YmxvY2txdW90ZT4KICA8cD5JdOKAmXMgaGVscGZ1bCB0byBrbm93IHRoYXQsIGZvciBtb3N0IGJyb3dzZXJzLCB0aGUgZGVmYXVsdCBmb250IHNpemUgaXMgPHN0cm9uZz4xNiBweDwvc3Ryb25nPi4gVGVjaG5pY2FsbHksIGl04oCZcyB0aGUga2V5d29yZCB2YWx1ZSA8Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtcGxhaW50ZXh0IGhpZ2hsaWdodGVyLXJvdWdlIj5tZWRpdW08L2NvZGU+IHRoYXQgY2FsY3VsYXRlcyB0byAxNiBweC48L3A+CjwvYmxvY2txdW90ZT4KCjxoMyBpZD0iZW1zLWZvci1mb250LXNpemUtdG9nZXRoZXItd2l0aC1lbXMtZm9yLW90aGVyLXByb3BlcnRpZXMiPkVtcyBmb3IgRm9udC1zaXplIFRvZ2V0aGVyIHdpdGggRW1zIGZvciBPdGhlciBQcm9wZXJ0aWVzPC9oMz4KCjxwPldoYXQgbWFrZXMgZW1zIHRyaWNreSBpcyB3aGVuIHlvdSB1c2UgdGhlbSBmb3IgYm90aCBmb250IHNpemUgYW5kIGFueSBvdGhlciBwcm9wZXJ0aWVzIG9uIHRoZSBzYW1lIGVsZW1lbnQuIFdoZW4geW91IGRvIHRoaXMsIHRoZSBicm93c2VyIG11c3QgY2FsY3VsYXRlIHRoZSBmb250IHNpemUgZmlyc3QsIGFuZCB0aGVuIGl0IHVzZXMgdGhhdCB2YWx1ZSB0byBjYWxjdWxhdGUgdGhlIG90aGVyIHZhbHVlcy4gQm90aCBwcm9wZXJ0aWVzIGNhbiBoYXZlIHRoZSBzYW1lIGRlY2xhcmVkIHZhbHVlLCBidXQgdGhleeKAmWxsIGhhdmUgZGlmZmVyZW50IGNvbXB1dGVkIHZhbHVlcy4gRm9yIGV4YW1wbGU6PC9wPgoKPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtY3NzIGhpZ2hsaWdodGVyLXJvdWdlIj48ZGl2IGNsYXNzPSJoaWdobGlnaHQiPjxwcmUgY2xhc3M9ImhpZ2hsaWdodCI+PGNvZGU+PHNwYW4gY2xhc3M9Im50Ij5ib2R5PC9zcGFuPiA8c3BhbiBjbGFzcz0icCI+ezwvc3Bhbj4KICA8c3BhbiBjbGFzcz0ibmwiPmZvbnQtc2l6ZTwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ojwvc3Bhbj4gPHNwYW4gY2xhc3M9Im0iPjE2cHg8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjs8L3NwYW4+CjxzcGFuIGNsYXNzPSJwIj59PC9zcGFuPgoKPHNwYW4gY2xhc3M9Im5jIj4ucGFkZGluZzwvc3Bhbj4gPHNwYW4gY2xhc3M9InAiPns8L3NwYW4+CiAgPHNwYW4gY2xhc3M9Im5sIj5mb250LXNpemU8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjo8L3NwYW4+IDxzcGFuIGNsYXNzPSJtIj4xLjJlbTwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ozwvc3Bhbj4gPHNwYW4gY2xhc3M9ImMiPi8qIGV2YWx1YXRlcyB0byAxOS4ycHggKi88L3NwYW4+CiAgPHNwYW4gY2xhc3M9Im5sIj5wYWRkaW5nPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj46PC9zcGFuPiA8c3BhbiBjbGFzcz0ibSI+MS4yZW08L3NwYW4+PHNwYW4gY2xhc3M9InAiPjs8L3NwYW4+IDxzcGFuIGNsYXNzPSJjIj4vKiBldmFsdWF0ZXMgdG8gMjMuMDRweCAqLzwvc3Bhbj4KICA8c3BhbiBjbGFzcz0ibmwiPmJhY2tncm91bmQtY29sb3I8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjo8L3NwYW4+IDxzcGFuIGNsYXNzPSJtIj4jY2NjPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPgo8c3BhbiBjbGFzcz0icCI+fTwvc3Bhbj4KPC9jb2RlPjwvcHJlPjwvZGl2PjwvZGl2PgoKPHA+SW4gdGhpcyBleGFtcGxlLCA8Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtcGxhaW50ZXh0IGhpZ2hsaWdodGVyLXJvdWdlIj5wYWRkaW5nPC9jb2RlPiBoYXMgYSBzcGVjaWZpZWQgdmFsdWUgb2YgMS4yIGVtLiBUaGlzIG11bHRpcGxpZWQgYnkgMTkuMiBweCAodGhlIGNvbXB1dGVkIGZvbnQgc2l6ZSBvZiB0aGUgZWxlbWVudCkgcHJvZHVjZXMgYSBjYWxjdWxhdGVkIHZhbHVlIG9mIDIzLjA0IHB4LjwvcD4KCjxoMyBpZD0idGhlLXNocmlua2luZy1mb250LXByb2JsZW0iPlRoZSBTaHJpbmtpbmcgRm9udCBQcm9ibGVtPC9oMz4KCjxwPkVtcyBjYW4gcHJvZHVjZSB1bmV4cGVjdGVkIHJlc3VsdHMgd2hlbiB5b3UgdXNlIHRoZW0gdG8gc3BlY2lmeSB0aGUgZm9udCBzaXplcyBvZiBtdWx0aXBsZSBuZXN0ZWQgZWxlbWVudHMuIFRvIGtub3cgdGhlIGV4YWN0IHZhbHVlIGZvciBlYWNoIGVsZW1lbnQsIHlvdeKAmWxsIG5lZWQgdG8ga25vdyBpdHMgaW5oZXJpdGVkIGZvbnQgc2l6ZSwgd2hpY2gsIGlmIGRlZmluZWQgb24gdGhlIHBhcmVudCBlbGVtZW50IGluIGVtcywgcmVxdWlyZXMgeW91IHRvIGtub3cgdGhlIHBhcmVudCBlbGVtZW504oCZcyBpbmhlcml0ZWQgc2l6ZSwgYW5kIHNvIG9uIHVwIHRoZSB0cmVlLjwvcD4KCjxwPlRoaXMgYmVjb21lcyBxdWlja2x5IGFwcGFyZW50IHdoZW4geW91IHVzZSBlbXMgZm9yIHRoZSBmb250IHNpemUgb2YgbGlzdHMgYW5kIHRoZW4gbmVzdCBsaXN0cyBzZXZlcmFsIGxldmVscyBkZWVwLCBsaWtlIHRoaXM6PC9wPgoKPHA+PGltZyBzcmM9Imh0dHBzOi8vaS5sb2xpLm5ldC8yMDE5LzA2LzI3LzVkMTRjNzVkZDIwYTgxNDQ4Mi5wbmciIGFsdD0ibGlzdHMgdXNpbmcgZW1zIGFzIGZvbnQtc2l6ZSIgLz48L3A+Cgo8cD53aXRoIENTUyBkZWZpbmVkIGxpa2U6PC9wPgoKPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtY3NzIGhpZ2hsaWdodGVyLXJvdWdlIj48ZGl2IGNsYXNzPSJoaWdobGlnaHQiPjxwcmUgY2xhc3M9ImhpZ2hsaWdodCI+PGNvZGU+PHNwYW4gY2xhc3M9Im50Ij5ib2R5PC9zcGFuPiA8c3BhbiBjbGFzcz0icCI+ezwvc3Bhbj4KICA8c3BhbiBjbGFzcz0ibmwiPmZvbnQtc2l6ZTwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ojwvc3Bhbj4gPHNwYW4gY2xhc3M9Im0iPjE2cHg8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjs8L3NwYW4+CjxzcGFuIGNsYXNzPSJwIj59PC9zcGFuPgoKPHNwYW4gY2xhc3M9Im50Ij51bDwvc3Bhbj4gPHNwYW4gY2xhc3M9InAiPns8L3NwYW4+CiAgPHNwYW4gY2xhc3M9Im5sIj5mb250LXNpemU8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjo8L3NwYW4+IDxzcGFuIGNsYXNzPSJtIj4uOGVtPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPgo8c3BhbiBjbGFzcz0icCI+fTwvc3Bhbj4KPC9jb2RlPjwvcHJlPjwvZGl2PjwvZGl2PgoKPHA+Qnkgbm93LCBpdCBzaG91bGQgYmUgY2xlYXIgdGhhdCBlbXMgYXJlIG5pY2UgZm9yIGVsZW1lbnQgc2l6aW5nLCBidXQgd2hlbiBpdCBjb21lcyB0byBmb250IHNpemUsIHRoZXkgY2FuIGdldCBjb21wbGljYXRlZC4gVGhhbmtmdWxseSwgdGhlcmUgaXMgYSBiZXR0ZXIgb3B0aW9uIOKAlCByZW1zLjwvcD4KCjxoMyBpZD0idXNpbmctcmVtcy1mb3ItZm9udC1zaXplIj5Vc2luZyBSZW1zIGZvciBGb250LXNpemU8L2gzPgoKPHA+V2hlbiB0aGUgYnJvd3NlciBwYXJzZXMgYW4gSFRNTCBkb2N1bWVudCwgaXQgY3JlYXRlcyBhIHJlcHJlc2VudGF0aW9uIGluIG1lbW9yeSBvZiBhbGwgdGhlIGVsZW1lbnRzIG9uIHRoZSBwYWdlLiBUaGlzIHJlcHJlc2VudGF0aW9uIGlzIGNhbGxlZCA8ZW0+RE9NPC9lbT4gKERvY3VtZW50IE9iamVjdCBNb2RlbCkuIEl04oCZcyBhIHRyZWUgc3RydWN0dXJlLCB3aGVyZSBlYWNoIGVsZW1lbnQgaWYgcmVwcmVzZW50ZWQgYnkgYSBub2RlLiBUaGUgPGNvZGUgY2xhc3M9Imxhbmd1YWdlLXBsYWludGV4dCBoaWdobGlnaHRlci1yb3VnZSI+Jmx0O2h0bWwmZ3Q7PC9jb2RlPiBlbGVtZW50IGlzIHRoZSB0b3AtbGV2ZWwgKG9yIHJvb3QpIG5vZGUuIEJlbmVhdGggaXQgYXJlIGl0cyBjaGlsZCBub2RlcywgPGNvZGUgY2xhc3M9Imxhbmd1YWdlLXBsYWludGV4dCBoaWdobGlnaHRlci1yb3VnZSI+Jmx0O2hlYWQmZ3Q7PC9jb2RlPiBhbmQgPGNvZGUgY2xhc3M9Imxhbmd1YWdlLXBsYWludGV4dCBoaWdobGlnaHRlci1yb3VnZSI+Jmx0O2JvZHkmZ3Q7PC9jb2RlPi4gQW5kIGJlbmVhdGggdGhvc2UgYXJlIHRoZWlyIGNoaWxkcmVuLCB0aGVuIHRoZWlyIGNoaWxkcmVuLCBhbmQgc28gb24uPC9wPgoKPHA+VGhlIHJvb3Qgbm9kZSBpcyB0aGUgYW5jZXN0b3Igb2YgYWxsIG90aGVyIGVsZW1lbnRzIGluIHRoZSBkb2N1bWVudC4gSXQgaGFzIGEgc3BlY2lhbCBwc2V1ZG8tY2xhc3Mgc2VsZWN0b3IgKDxjb2RlIGNsYXNzPSJsYW5ndWFnZS1wbGFpbnRleHQgaGlnaGxpZ2h0ZXItcm91Z2UiPjpyb290PC9jb2RlPikgdGhhdCB5b3UgY2FuIHVzZSB0byB0YXJnZXQgaXQuIFRoaXMgaXMgZXF1aXZhbGVudCB0byB1c2luZyB0aGUgdHlwZSBzZWxlY3RvciA8Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtcGxhaW50ZXh0IGhpZ2hsaWdodGVyLXJvdWdlIj5odG1sPC9jb2RlPiB3aXRoIHRoZSBzcGVjaWZpY2l0eSBvZiBhIGNsYXNzIHJhdGhlciB0aGFuIGEgdGFnLjwvcD4KCjxwPjxlbT5SZW08L2VtPiBpcyBzaG9ydCBmb3Igcm9vbSBlbS4gSW5zdGVhZCBvZiBiZWluZyByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBlbGVtZW50LCByZW1zIGFyZSByZWxhdGl2ZSB0byB0aGUgcm9vdCBlbGVtZW50LiBObyBtYXR0ZXIgd2hlcmUgeW91IGFwcGx5IGl0IGluIHRoZSBkb2N1bWVudCwgMS4yIHJlbSBoYXMgdGhlIHNhbWUgY29tcHV0ZWQgdmFsdWU6IDEuMiB0aW1lcyB0aGUgZm9udCBzaXplIG9mIHRoZSByb290IGVsZW1lbnQuPC9wPgoKPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtY3NzIGhpZ2hsaWdodGVyLXJvdWdlIj48ZGl2IGNsYXNzPSJoaWdobGlnaHQiPjxwcmUgY2xhc3M9ImhpZ2hsaWdodCI+PGNvZGU+PHNwYW4gY2xhc3M9Im5kIj46cm9vdDwvc3Bhbj4gPHNwYW4gY2xhc3M9InAiPns8L3NwYW4+CiAgPHNwYW4gY2xhc3M9Im5sIj5mb250LXNpemU8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjo8L3NwYW4+IDxzcGFuIGNsYXNzPSJtIj4xZW08L3NwYW4+PHNwYW4gY2xhc3M9InAiPjs8L3NwYW4+IDxzcGFuIGNsYXNzPSJjIj4vKiBzZXQgdG8gYnJvd3NlcidzIGRlZmF1bHQgb2YgMTZweCAqLzwvc3Bhbj4KPHNwYW4gY2xhc3M9InAiPn08L3NwYW4+Cgo8c3BhbiBjbGFzcz0ibnQiPnVsPC9zcGFuPiA8c3BhbiBjbGFzcz0icCI+ezwvc3Bhbj4KICA8c3BhbiBjbGFzcz0ibmwiPmZvbnQtc2l6ZTwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ojwvc3Bhbj4gPHNwYW4gY2xhc3M9Im0iPi44ZW08L3NwYW4+PHNwYW4gY2xhc3M9InAiPjs8L3NwYW4+IDxzcGFuIGNsYXNzPSJjIj4vKiBldmFsdWF0ZWQgdG8gYmUgMTIuOHB4ICovPC9zcGFuPgo8c3BhbiBjbGFzcz0icCI+fTwvc3Bhbj4KPC9jb2RlPjwvcHJlPjwvZGl2PjwvZGl2PgoKPGJsb2NrcXVvdGU+CiAgPHA+PHN0cm9uZz5BY2Nlc3NpYmlsaXR5OiB1c2UgcmVsYXRpdmUgdW5pdHMgZm9yIGZvbnQgc2l6ZTwvc3Ryb25nPjwvcD4KCiAgPHA+U29tZSBicm93c2VycyBwcm92aWRlIHR3byB3YXlzIGZvciB0aGUgdXNlciB0byBjdXN0b21pemUgdGhlIHNpemUgb2YgdGV4dDo8L3A+CgogIDxvbD4KICAgIDxsaT48c3Ryb25nPlpvb208L3N0cm9uZz4uIEJ5IHByZXNzaW5nIDxrYmQ+Y3RybCs8L2tiZD4gb3IgPGtiZD5jdHJsLTwva2JkPiwgdGhlIHVzZXIgY2FuIHpvb20gdGhlIHBhZ2UgdXAgb3IgZG93bi4gVGhpcyB2aXN1YWxseSBzY2FsZXMgYWxsIGZvbnRzIGFuZCBpbWFnZXMgYW5kIGdlbmVyYWxseSBtYWtlcyBldmVydGhpbmcgb24gdGhlIHBhZ2UgbGFyZ2VyIG9yIHNtYWxsZXIuIEluIG1vc3QgYnJvd3NlcnMsIHRoaXMgY2hhbmdlIGlzIHRlbXBvcmFyeSBhbmQgaXMgb25seSBhcHBsaWVkIHRvIHRoZSBjdXJyZW50IHRhYi48L2xpPgogICAgPGxpPjxzdHJvbmc+U2V0IGRlZmF1bHQgZm9udCBzaXplPC9zdHJvbmc+LiBJbiBicm93c2Vy4oCZcyBzZXR0aW5ncywgeW91IGNhbiBwZXJtYW5lbnRseSBjaGFuZ2UgdGhlIGRlZmF1bHQgZm9udCBzaXplIGZvciB0ZXh0LiBUaGUgY2F0Y2ggaXMgdGhhdCB0aGlzIHNldHRpbmcgZG9lcyBub3QgcmVzaXplIGZvbnRzIGRlZmluZWQgdXNpbmcgcGl4ZWxzIG9yIG90aGVyIGFic29sdXRlIHVuaXRzLjwvbGk+CiAgPC9vbD4KPC9ibG9ja3F1b3RlPgoKPHA+UmVtcyBzaW1wbGlmeSBhIGxvdCBvZiBjb21wbGV4aXRpZXMgaW52b2x2ZWQgd2l0aCBlbXMuIEluIGZhY3QsIHRoZXkgb2ZmZXIgYSBnb29kIG1pZGRsZSBncm91bmQgYmV0d2VlbiBwaXhlbHMgYW5kIGVtcyBieSBwcm92aWRpbmcgdGhlIGJlbmVmaXRzIG9mIHJlbGF0aXZlIHVuaXRzLCBidXQgZWFzaWVyIHRvIHdvcmsgd2l0aC4gRG9lcyB0aGlzIG1lYW4geW91IHNob3VsZCB1c2UgcmVtcyBldmVyeXdoZXJlIGFuZCBhYmFuZG9uIHRoZSBvdGhlciBvcHRpb25zPzwvcD4KCjxwPkluIENTUywgYWdhaW4sIHRoZSBhbnN3ZXIgaXMgb2Z0ZW4sIOKAnGl0IGRlcGVuZHPigJ0uIFJlbXMgYXJlIGJ1dCBvbmUgdG9vbCBpbiB5b3VyIHRvb2wgYm94LiBBbiBpbXBvcnRhbnQgcGFydCBvZiBtYXN0ZXJpbmcgQ1NTIGlzIGxlYXJuaW5nIHdoZW4gdG8gdXNlIHdoaWNoIHRvb2wuIEl04oCZcyBuaWNlIHRvIHVzZSByZW1zIGZvciBmb250IHNpemVzLCBwaXhlbHMgZm9yIGJvcmRlcnMsIGFuZCBlbXMgZm9yIG1vc3Qgb3RoZXIgbWVhc3VyZXMsIGVzcGVjaWFsbHkgcGFkZGluZ3MsIG1hcmdpbnMsIGFuZCBib3JkZXIgcmFkaXVzLiBUaGlzIHdheSwgZm9udCBzaXplcyBhcmUgcHJlZGljdGFibGUsIGJ1dCB5b3XigJlsbCBzdGlsbCBnZXQgdGhlIHBvd2VyIG9mIGVtcyBzY2FsaW5nIHlvdXIgcGFkZGluZ3MgYW5kIG1hcmdpbnMuIFBpeGNlbHMgbWFrZSBzZW5zZSBmb3IgYm9yZGVycywgcGFydGljdWxhcmx5IHdoZW4geW91IHdhbnQgYSBuaWNlIGZpbmUgbGluZS48L3A+Cgo8aDIgaWQ9InN0b3AtdGhpbmtpbmctaW4tcGl4ZWxzIj5TdG9wIFRoaW5raW5nIGluIFBpeGVsczwvaDI+Cgo8cD5PbmUgcGF0dGVybiwgb3IgcmF0aGVyLCBhbnRpcGFydHRlcm4sIHRoYXQgaGFzIGJlZW4gY29tbW9uIGZvciB0aGUgcGFzdCBzZXZlcmFsIHllYXJzIGlzIHRvIHJlc2V0IHRoZSBmb250IHNpemUgYXQgdGhlIHBhZ2XigJlzIHJvb3QgdG8gLjYyNSBlbSBvciA2Mi41JS4gVGhpcyB0YWtlcyB0aGUgYnJvd3NlcuKAmXMgZGVmYXVsdCBzaXplLCAxNiBweCwgYW5kIHNjYWxlcyBpdCBkb3duIHRvIDEwIHB4LiBUaGlzIHByYWN0aXNlIHNpbXBsaWZpZXMgdGhlIG1hdGguPC9wPgoKPHA+SW5pdGlhbGx5LCB0aGlzIG1heSBiZSBjb252ZW5pZW50LCBidXQgdGhlcmUgYXJlIHR3byBwcm9ibGVtcyB3aXRoIHRoaXMgYXBwcm9hY2guIEZpcnN0LCBpdCBmb3JjZXMgeW91IHRvIHdyaXRlIGEgbG90IG9mIGR1cGxpY2F0ZSBzdHlsZXMuIDEwIHB4IGlzIHRvbyBzbWFsbCBmb3IgbW9zdCB0ZXh0LCBzbyB5b3XigJlsbCBoYXZlIHRvIG92ZXJyaWRlIGl0IHRocm91Z2hvdXQgdGhlIHBhZ2UuIFRoZSBzZWNvbmQgcHJvYmxlbSBpcyB0aGF0IHdoZW4geW91IGRvIHRoaXMsIHlvdeKAmXJlIHN0aWxsIHRoaW5raW5nIGluIHBpeGVscy4gWW91IG1pZ2h0IHR5cGUgMS40IHJlbSBpbnRvIHlvdXIgQ1NTLCBidXQgaW4geW91ciBtaW5kLCB5b3XigJlyZSBzdGlsbCB0aGlua2luZyDigJwxNCBwaXhlbHPigJ0uIE9uIGEgcmVzcG9uc2l2ZSB3ZWIsIHlvdSBzaG91bGQgZ2V0IGNvbWZvcnRhYmxlIHdpdGgg4oCcZnV6ennigJ0gdmFsdWVzLiBJdCBkb2VzbuKAmXQgbWF0dGVyIGhvdyBtYW55IHBpeGVscyAxLjUgZW0gZXZhbHVhdGVzIHRvOyBhbGwgeW91IG5lZWQgdG8ga25vdyBpcyB0aGF0IGl04oCZcyBhIGJpdCBiaWdnZXIgdGhhbiB0aGUgaW5oZXJpdGVkIGZvbnQgc2l6ZS48L3A+Cgo8aDMgaWQ9InNldHRpbmctYS1zYW5lLWRlZmF1bHQtZm9udC1zaXplIj5TZXR0aW5nIGEgU2FuZSBEZWZhdWx0IEZvbnQgU2l6ZTwvaDM+Cgo8cD5MZXTigJlzIHNheSB5b3Ugd2FudCB5b3VyIGRlZmF1bHQgZm9udCBzaXplIHRvIGJlIDE0IHB4LiBJbnN0ZWFkIG9mIHNldHRpbmcgYSAxMCBweCBkZWZhdWx0IHRoZW4gb3ZlcnJpZGluZyBpdCB0aHJvdWdoIHRoZSBwYWdlLCBzZXQgdGhhdCB2YWx1ZSBhdCB0aGUgcm9vdC4gVGhlIGRlc2lyZWQgdmFsdWUgZGl2aWRlZCBieSB0aGUgaW5oZXJpdGVkIHZhbHVlIOKAlCBpbiB0aGlzIGNhc2UsIHRoZSBicm93c2Vy4oCZcyBkZWZhdWx0IOKAlCAgaXMgMTQvMTYsIHdoaWNoIGVxdWFscyAwLjg3NTo8L3A+Cgo8ZGl2IGNsYXNzPSJsYW5ndWFnZS1jc3MgaGlnaGxpZ2h0ZXItcm91Z2UiPjxkaXYgY2xhc3M9ImhpZ2hsaWdodCI+PHByZSBjbGFzcz0iaGlnaGxpZ2h0Ij48Y29kZT48c3BhbiBjbGFzcz0ibmQiPjpyb290PC9zcGFuPiA8c3BhbiBjbGFzcz0icCI+ezwvc3Bhbj4KICA8c3BhbiBjbGFzcz0ibmwiPmZvbnQtc2l6ZTwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ojwvc3Bhbj4gPHNwYW4gY2xhc3M9Im0iPjAuODc1ZW08L3NwYW4+PHNwYW4gY2xhc3M9InAiPjs8L3NwYW4+CjxzcGFuIGNsYXNzPSJwIj59PC9zcGFuPgo8L2NvZGU+PC9wcmU+PC9kaXY+PC9kaXY+Cgo8cD5Ob3cgeW91ciBkZXNpcmVkIGZvbnQgc2l6ZSBpcyBhcHBsaWVkIHRvIHRoZSB3aG9sZSBwYWdlLiBZb3Ugd29u4oCZdCBuZWVkIHRvIHNwZWNpZnkgaXQgZWxzZXdoZXJlLiBZb3XigJlsbCBvbmx5IG5lZWQgdG8gY2hhbmdlIGl0IGluIHBsYWNlcyB3aGVyZSB0aGUgZGVzaWduIGRldmlhdGVzIGZyb20gdGhpcywgc3VjaCBhcyBoZWFkaW5ncy48L3A+Cgo8aDMgaWQ9Im1lZGlhLXF1ZXJ5Ij5NZWRpYSBRdWVyeTwvaDM+Cgo8cD5MZXTigJlzIG1ha2UgdGhpcyBhIGJpdCBmdXJ0aGVyLiBZb3UgY2FuIHVzZSBzb21lIDxlbT5tZWRpYSBxdWVyaWVzPC9lbT4gdG8gY2hhbmdlIHRoZSBiYXNlIGZvbnQgc2l6ZSwgZGVwZW5kaW5nIG9uIHRoZSBzY3JlZW4gc2l6ZS48L3A+Cgo8YmxvY2txdW90ZT4KICA8cD48ZW0+bWVkaWEgcXVlcnk8L2VtPiDigJQgQW4gPGNvZGUgY2xhc3M9Imxhbmd1YWdlLXBsYWludGV4dCBoaWdobGlnaHRlci1yb3VnZSI+QG1lZGlhPC9jb2RlPiBydWxlIHVzZWQgdG8gc3BlY2lmeSBzdHlsZXMgdGhhdCB3aWxsIGJlIGFwcGxpZWQgb25seSB0byBjZXJ0YWluIHNjcmVlbiBzaXplIG9yIG1lZGlhIHR5cGVzICg8ZW0+ZS5nLjwvZW0+IHByaW50IG9yIHNjcmVlbikuIFRoaXMgaXMgYSBrZXkgY29tcG9uZW50IG9mIHJlc3BvbnNpdmUgZGVzaWduLjwvcD4KPC9ibG9ja3F1b3RlPgoKPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtY3NzIGhpZ2hsaWdodGVyLXJvdWdlIj48ZGl2IGNsYXNzPSJoaWdobGlnaHQiPjxwcmUgY2xhc3M9ImhpZ2hsaWdodCI+PGNvZGU+PHNwYW4gY2xhc3M9Im5kIj46cm9vdDwvc3Bhbj4gPHNwYW4gY2xhc3M9InAiPns8L3NwYW4+CiAgPHNwYW4gY2xhc3M9Im5sIj5mb250LXNpemU8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjo8L3NwYW4+IDxzcGFuIGNsYXNzPSJtIj4wLjc1ZW08L3NwYW4+PHNwYW4gY2xhc3M9InAiPjs8L3NwYW4+CjxzcGFuIGNsYXNzPSJwIj59PC9zcGFuPgoKPHNwYW4gY2xhc3M9ImsiPkBtZWRpYTwvc3Bhbj4gPHNwYW4gY2xhc3M9InAiPig8L3NwYW4+PHNwYW4gY2xhc3M9Im4iPm1pbi13aWR0aDwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ojwvc3Bhbj4gPHNwYW4gY2xhc3M9Im0iPjgwMHB4PC9zcGFuPjxzcGFuIGNsYXNzPSJwIj4pPC9zcGFuPiA8c3BhbiBjbGFzcz0icCI+ezwvc3Bhbj4gPHNwYW4gY2xhc3M9ImMiPi8qIGFwcGxpZXMgb25seSB0byBzY3JlZW5zIDgwMHB4IGFuZCB3aWRlciAqLzwvc3Bhbj4KICA8c3BhbiBjbGFzcz0ibmQiPjpyb290PC9zcGFuPiA8c3BhbiBjbGFzcz0icCI+ezwvc3Bhbj4KICAgIDxzcGFuIGNsYXNzPSJubCI+Zm9udC1zaXplPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj46PC9zcGFuPiA8c3BhbiBjbGFzcz0ibSI+MC44NzVlbTwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ozwvc3Bhbj4KICA8c3BhbiBjbGFzcz0icCI+fTwvc3Bhbj4KPHNwYW4gY2xhc3M9InAiPn08L3NwYW4+Cgo8c3BhbiBjbGFzcz0iayI+QG1lZGlhPC9zcGFuPiA8c3BhbiBjbGFzcz0icCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0ibiI+bWluLXdpZHRoPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj46PC9zcGFuPiA8c3BhbiBjbGFzcz0ibSI+MTIwMHB4PC9zcGFuPjxzcGFuIGNsYXNzPSJwIj4pPC9zcGFuPiA8c3BhbiBjbGFzcz0icCI+ezwvc3Bhbj4gPHNwYW4gY2xhc3M9ImMiPi8qIGFwcGxpZXMgb25seSB0byBzY3JlZW5zIDEyMDBweCBhbmQgd2lkZXIgKi88L3NwYW4+CiAgPHNwYW4gY2xhc3M9Im5kIj46cm9vdDwvc3Bhbj4gPHNwYW4gY2xhc3M9InAiPns8L3NwYW4+CiAgICA8c3BhbiBjbGFzcz0ibmwiPmZvbnQtc2l6ZTwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ojwvc3Bhbj4gPHNwYW4gY2xhc3M9Im0iPjFlbTwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ozwvc3Bhbj4KICA8c3BhbiBjbGFzcz0icCI+fTwvc3Bhbj4KPHNwYW4gY2xhc3M9InAiPn08L3NwYW4+CjwvY29kZT48L3ByZT48L2Rpdj48L2Rpdj4KCjxwPklmIHlvdSBhcmUgZGlzY2lwbGluZWQgZW5vdWdoIHRvIHN0eWxlIHlvdXIgZW50aXJlIHBhZ2UgaW4gcmVsYXRpdmUgdW5pdHMgbGlrZSB0aGlzLCB0aGUgZW50aXJlIHBhZ2Ugd2lsbCBzY2FsZSB1cCBhbmQgZG93biBiYXNlZCBvbiB0aGUgdmlld3BvcnQgc2l6ZS48L3A+Cgo8aDMgaWQ9InJlc2l6aW5nLWEtc2luZ2xlLWNvbXBvbmVudCI+UmVzaXppbmcgYSBTaW5nbGUgQ29tcG9uZW50PC9oMz4KCjxwPkZvciBleGFtcGxlLCB5b3UgaGF2ZSBhIHBhbmVsIGFuZCB3YW50IGEgbGFyZ2VyIHZlcnNpb246PC9wPgoKPHA+PGltZyBzcmM9Imh0dHBzOi8vaS5sb2xpLm5ldC8yMDE5LzA2LzI4LzVkMTU4NjVjNzc1Yjc1OTE4MC5wbmciIGFsdD0icGFuZWwsIHNpemVzIiAvPjwvcD4KCjxwPllvdSBjYW4gb25seSBhZGQgYSA8Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtcGxhaW50ZXh0IGhpZ2hsaWdodGVyLXJvdWdlIj5sYXJnZTwvY29kZT4gY2xhc3MgdG8gdGhlIHNlY29uZCBwYW5lbDogPGNvZGUgY2xhc3M9Imxhbmd1YWdlLXBsYWludGV4dCBoaWdobGlnaHRlci1yb3VnZSI+Jmx0O2RpdiBjbGFzcz0icGFuZWwgbGFyZ2UiJmd0OzwvY29kZT4uPC9wPgoKPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtY3NzIGhpZ2hsaWdodGVyLXJvdWdlIj48ZGl2IGNsYXNzPSJoaWdobGlnaHQiPjxwcmUgY2xhc3M9ImhpZ2hsaWdodCI+PGNvZGU+PHNwYW4gY2xhc3M9Im5jIj4ucGFuZWw8L3NwYW4+IDxzcGFuIGNsYXNzPSJwIj57PC9zcGFuPgogIDxzcGFuIGNsYXNzPSJubCI+Zm9udC1zaXplPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj46PC9zcGFuPiA8c3BhbiBjbGFzcz0ibSI+MXJlbTwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ozwvc3Bhbj4KICA8c3BhbiBjbGFzcz0ibmwiPnBhZGRpbmc8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjo8L3NwYW4+IDxzcGFuIGNsYXNzPSJtIj4xZW08L3NwYW4+PHNwYW4gY2xhc3M9InAiPjs8L3NwYW4+CiAgPHNwYW4gY2xhc3M9Im5sIj5ib3JkZXI8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjo8L3NwYW4+IDxzcGFuIGNsYXNzPSJtIj4xcHg8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYiI+c29saWQ8L3NwYW4+IDxzcGFuIGNsYXNzPSJtIj4jOTk5PC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPgogIDxzcGFuIGNsYXNzPSJubCI+Ym9yZGVyLXJhZGl1czwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ojwvc3Bhbj4gPHNwYW4gY2xhc3M9Im0iPjAuNWVtPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPgo8c3BhbiBjbGFzcz0icCI+fTwvc3Bhbj4KCjxzcGFuIGNsYXNzPSJuYyI+LnBhbmVsPC9zcGFuPiA8c3BhbiBjbGFzcz0ibyI+Jmd0Ozwvc3Bhbj4gPHNwYW4gY2xhc3M9Im50Ij5oMjwvc3Bhbj4gPHNwYW4gY2xhc3M9InAiPns8L3NwYW4+CiAgPHNwYW4gY2xhc3M9Im5sIj5tYXJnaW4tdG9wPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj46PC9zcGFuPiA8c3BhbiBjbGFzcz0ibSI+MDwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ozwvc3Bhbj4KICA8c3BhbiBjbGFzcz0ibmwiPmZvbnQtc2l6ZTwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ojwvc3Bhbj4gPHNwYW4gY2xhc3M9Im0iPjAuOGVtPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPgogIDxzcGFuIGNsYXNzPSJubCI+Zm9udC13ZWlnaHQ8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjo8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYiI+Ym9sZDwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ozwvc3Bhbj4KICA8c3BhbiBjbGFzcz0ibmwiPnRleHQtdHJhbnNmb3JtPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj46PC9zcGFuPiA8c3BhbiBjbGFzcz0ibmIiPnVwcGVyY2FzZTwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ozwvc3Bhbj4KPHNwYW4gY2xhc3M9InAiPn08L3NwYW4+CjwvY29kZT48L3ByZT48L2Rpdj48L2Rpdj4KCjxwPkZpcnN0LCBhZGQgdGhlIGRlY2xhcmF0aW9uIDxjb2RlIGNsYXNzPSJsYW5ndWFnZS1wbGFpbnRleHQgaGlnaGxpZ2h0ZXItcm91Z2UiPmZvbnQtc2l6ZTogMXJlbTwvY29kZT4gdG8gdGhlIHBhcmVudCBlbGVtZW50IG9mIGVhY2ggcGFuZWwuIFRoaXMgbWVhbnMgZWFjaCBwYW5lbCB3aWxsIGVzdGFibGlzaCBhIHByZWRpY3RhYmxlIGZvbnQgc2l6ZSBmb3IgaXRzZWxmLCBubyBtYXR0ZXIgd2hlcmUgaXTigJlzIHBsYWNlZCBvbiB0aGUgcGFnZS4gU2Vjb25kLCByZWRlZmluZSB0aGUgaGVhZGluZ+KAmXMgZm9udCBzaXplIHVzaW5nIEVtcyByYXRoZXIgdGhhbiByZW1zIHRvIG1ha2UgaXQgcmVsYXRpdmUgdG8gdGhlIHBhcmVudOKAmXMgZm9udCBzaXplIHRoYXQganVzdCBlc3RhYmxpc2hlZC48L3A+Cgo8cD5Gb3IgdGhlIGxhcmdlciB2ZXJzaW9uIG9mIHRoZSBwYW5lbCwgYWxsIHlvdSBoYXZlIHRvIGRvIGlzIG92ZXJyaWRlIHRoZSBwYXJlbnQgZWxlbWVudOKAmXMgMSByZW0gd2l0aCBhbm90aGVyIHZhbHVlLiBCZWNhdXNlIGFsbCB0aGUgY29tcG9uZW504oCZcyBtZWFzdXJlbWVudHMgYXJlIHJlbGF0aXZlIHRvIHRoaXMsIG92ZXJyaWRpbmcgaXQgd2lsbCByZXNpemUgdGhlIGVudGlyZSBwYW5lbDo8L3A+Cgo8ZGl2IGNsYXNzPSJsYW5ndWFnZS1jc3MgaGlnaGxpZ2h0ZXItcm91Z2UiPjxkaXYgY2xhc3M9ImhpZ2hsaWdodCI+PHByZSBjbGFzcz0iaGlnaGxpZ2h0Ij48Y29kZT48c3BhbiBjbGFzcz0ibmMiPi5wYW5lbC5sYXJnZTwvc3Bhbj4gPHNwYW4gY2xhc3M9InAiPns8L3NwYW4+CiAgPHNwYW4gY2xhc3M9Im5sIj5mb250LXNpemU8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjo8L3NwYW4+IDxzcGFuIGNsYXNzPSJtIj4xLjJyZW08L3NwYW4+PHNwYW4gY2xhc3M9InAiPjs8L3NwYW4+CjxzcGFuIGNsYXNzPSJwIj59PC9zcGFuPgo8L2NvZGU+PC9wcmU+PC9kaXY+PC9kaXY+Cgo8aDIgaWQ9InZpZXdwb3J0LXJlbGF0aXZlLXVuaXRzIj5WaWV3cG9ydC1yZWxhdGl2ZSBVbml0czwvaDI+Cgo8cD5UaGVyZSBhcmUgYWxzbyA8ZW0+dmlld3BvcnQtcmVsYXRpdmUgdW5pdHM8L2VtPiBmb3IgZGVmaW5pbmcgbGVuZ3RocyByZWxhdGl2ZSB0byB0aGUgYnJvd3NlcuKAmXMgdmlld3BvcnQuPC9wPgoKPGJsb2NrcXVvdGU+CiAgPHA+PGVtPnZpZXdwb3J0PC9lbT4g4oCUIFRoZSBmcmFtZWQgYXJlYSBpbiB0aGUgYnJvd3NlciB3aW5kb3cgd2hlcmUgdGhlIHdlYiBwYWdlIGlzIHZpc2libGUuIFRoaXMgZXhjbHVkZXMgdGhlIGJyb3dzZXLigJlzIGFkZHJlc3MgYmFyLCB0b29sYmFycywgYW5kIHN0YXR1cyBiYXIsIGlmIHByZXNlbnQuPC9wPgo8L2Jsb2NrcXVvdGU+Cgo8dWw+CiAgPGxpPjxlbT52aDwvZW0+IOKAlCAxLzEwMCBvZiB0aGUgdmlld3BvcnQgaGVpZ2h0PC9saT4KICA8bGk+PGVtPnZ3PC9lbT4g4oCUIDEvMTAwIG9mIHRoZSB2aWV3cG9ydCB3aWR0aDwvbGk+CiAgPGxpPjxlbT52bWluPC9lbT4g4oCUIDEvMTAwIG9mIHRoZSBzbWFsbGVyIGRpbWVuc2lvbiwgaGVpZ2h0IG9yIHdpZHRoPC9saT4KICA8bGk+PGVtPnZtYXg8L2VtPiDigJQgMS8xMDAgb2YgdGhlIGxhcmdlciBkaW1lbnNpb24sIGhlaWdodCBvciB3aWR0aDwvbGk+CjwvdWw+Cgo8cD5UaGUgdmlld3BvcnQtcmVsYXRpdmUgbGVuZ3RocyBhcmUgZ3JlYXQgZm9yIHRoaW5ncyBsaWtlIG1ha2luZyBhIGxhcmdlIGhlcm8gaW1hZ2UgZmlsbCB0aGUgc2NyZWVuLiBZb3UgY2FuIHBsYWNlIGFuIGltYWdlIGluc2lkZSBhIGxvbmcgY29udGFpbmVyLCBidXQgc2V0dGluZyB0aGUgaW1hZ2UgaGVpZ2h0IHRvIDEwMCB2aCwgbWFrZXMgaXQgZXhhY3RseSB0aGUgaGVpZ2h0IG9mIHRoZSB2aWV3cG9ydC48L3A+Cgo8aDMgaWQ9InVzaW5nLXZ3LWZvci1mb250LXNpemUiPlVzaW5nIHZ3IGZvciBGb250IFNpemU8L2gzPgoKPHA+Q29uc2lkZXIgd2hhdCB3b3VsZCBoYXBwZW4gaWYgeW91IGFwcGxpZWQgPGNvZGUgY2xhc3M9Imxhbmd1YWdlLXBsYWludGV4dCBoaWdobGlnaHRlci1yb3VnZSI+Zm9udC1zaXplOiAydnc8L2NvZGU+IHRvIGFuIGVsZW1lbnQuIE9uIGEgZGVza3RvcCBtb25pdG9yIGF0IDEsMjAwIHB4LCB0aGlzIGV2YWx1YXRlcyB0byAyNCBweCAoMiUgb2YgMSwyMDApLiBPbiBhIHRhYmxldCB3aXRoIGEgc2NyZWVuIHdpZHRoIG9mIDc2OCBweCwgaXQgZXZhbHVhdGVzIHRvIGFib3V0IDE1IHB4ICgyJSBvZiA3NjgpLiBVbmZvcnR1bmF0ZWx5LCBpdCBzY2FsZXMgYWxsIHRoZSB3YXkgZG93biB0byA3LjUgcHggb24gYW4gaVBob25lIDYuPC9wPgoKPGgzIGlkPSJ1c2luZy1jYWxjLWZvci1mb250LXNpemUiPlVzaW5nIGNhbGMoKSBmb3IgRm9udCBTaXplPC9oMz4KCjxwPlRoZSA8Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtcGxhaW50ZXh0IGhpZ2hsaWdodGVyLXJvdWdlIj5jYWxjKCk8L2NvZGU+IGZ1bmN0aW9uIGxldHMgeW91IGRvIGJhc2ljIGFyaXRobWV0aWMgd2l0aCB0d28gb3IgbW9yZSB2YWx1ZXMuIFRoaXMgaXMgcGFydGljdWxhcmx5IHVzZWZ1bCBmb3IgY29tYmluaW5nIHZhbHVlcyB0aGF0IGFyZSBtZWFzdXJlZCBpbiBkaWZmZXJlbnQgdW5pdHMuIFRoaXMgZnVuY3Rpb24gc3VwcG9ydHMgYWRkaXRpb24gKCspLCBzdWJ0cmFjdGlvbiAoLSksIG11bHRpcGxpY2F0aW9uICgqKSBhbmQgZGl2aXNpb24gKC8pLiBUaGUgYWRkaXRpb24gYW5kIHN1YnRyYWN0aW9uIG9wZXJhdG9ycyBtdXN0IGJlIHN1cnJvdW5kZWQgYnkgd2hpdGVzcGFjZSwgZm9yIGV4YW1wbGUsIDxjb2RlIGNsYXNzPSJsYW5ndWFnZS1wbGFpbnRleHQgaGlnaGxpZ2h0ZXItcm91Z2UiPmNhbGMoMWVtICsgMTBweCk8L2NvZGU+LjwvcD4KCjxwPlVzZSA8Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtcGxhaW50ZXh0IGhpZ2hsaWdodGVyLXJvdWdlIj5jYWxjKCk8L2NvZGU+IHRvIGNvbWJpbmUgZW1zIHdpdGggdncgdW5pdHMsIGFzOjwvcD4KCjxkaXYgY2xhc3M9Imxhbmd1YWdlLWNzcyBoaWdobGlnaHRlci1yb3VnZSI+PGRpdiBjbGFzcz0iaGlnaGxpZ2h0Ij48cHJlIGNsYXNzPSJoaWdobGlnaHQiPjxjb2RlPjxzcGFuIGNsYXNzPSJuZCI+OnJvb3Q8L3NwYW4+IDxzcGFuIGNsYXNzPSJwIj57PC9zcGFuPgogIDxzcGFuIGNsYXNzPSJubCI+Zm9udC1zaXplPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj46PC9zcGFuPiA8c3BhbiBjbGFzcz0ibiI+Y2FsYzwvc3Bhbj48c3BhbiBjbGFzcz0icCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0ibSI+MC41ZW08L3NwYW4+IDxzcGFuIGNsYXNzPSJlcnIiPis8L3NwYW4+IDxzcGFuIGNsYXNzPSJtIj4xdnc8L3NwYW4+PHNwYW4gY2xhc3M9InAiPik7PC9zcGFuPgo8c3BhbiBjbGFzcz0icCI+fTwvc3Bhbj4KPC9jb2RlPjwvcHJlPjwvZGl2PjwvZGl2PgoKPHA+VGhlIDAuNSBlbSBoZXJlIG9wZXJhdGVzIGFzIGEgc29ydCBvZiBtaW5pbXVtIGZvbnQgc2l6ZSwgYW5kIHRoZSAxIHZ3IGFkZHMgYSByZXBzb25zaXZlIHNjYWxhci4gVGhpc+KAmWxsIGdpdmUgeW91IGEgYmFzZSBmb250IHNpemUgdGhhdCBzY2FsZXMgZnJvbSAxMS43NSBweCBvbiBhbiBpUGhvbmUgNiB1cCB0byAyMCBweCBpbiBhIDEsMjAwIHB4IGJyb3dzZXIgd2luZG93LiBJdCBzaG91bGQgYXV0b21hdGljYWxseSByZXNpemUgdGhlIGZvbnQgc2l6ZSB3aGVuIHlvdSByZXNpemUgdGhlIGJyb3dzZXIgd2luZG93LCBob3dldmVyLCBJIGZvdW5kIGl0IHdhcyBub3Qgd29ya2luZyBvbiBTYWZhcmkgKFZlcnNpb24gMTIuMS4xICgxNDYwNy4yLjYuMS4xKSksIHlvdSBoYXZlIHRvIHJlZnJlc2ggdGhlIHBhZ2UgdG8gYWRqdXN0IHRoZSBmb250IHNpemUuPC9wPgoKPGgyIGlkPSJ1bml0bGVzcy1udW1iZXJzLWFuZC1saW5lLWhlaWdodCI+VW5pdGxlc3MgTnVtYmVycyBhbmQgTGluZS1oZWlnaHQ8L2gyPgoKPHA+U29tZSBwcm9wZXJ0aWVzIGFsbG93IGZvciA8ZW0+dW5pdGxlc3M8L2VtPiB2YWx1ZXMuIFByb3BlcnRpZXMgdGhhdCBzdXBwb3J0IHRoaXMgaW5jbHVkZSA8Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtcGxhaW50ZXh0IGhpZ2hsaWdodGVyLXJvdWdlIj5saW5lLWhlaWdodDwvY29kZT4sIDxjb2RlIGNsYXNzPSJsYW5ndWFnZS1wbGFpbnRleHQgaGlnaGxpZ2h0ZXItcm91Z2UiPnotaW5kZXg8L2NvZGU+LCBhbmQgPGNvZGUgY2xhc3M9Imxhbmd1YWdlLXBsYWludGV4dCBoaWdobGlnaHRlci1yb3VnZSI+Zm9udC13ZWlnaHQ8L2NvZGU+ICg3MDAgaXMgZXF1aXZhbGVudCB0byBib2xkOyA0MDAgaXMgZXF1aXZhbGVudCB0byBub3JtYWwsIGFuZCBzbyBvbikuIFlvdSBjYW4gYWxzbyB1c2UgdGhlIHVuaXRsZXNzIHZhbHVlIDxjb2RlIGNsYXNzPSJsYW5ndWFnZS1wbGFpbnRleHQgaGlnaGxpZ2h0ZXItcm91Z2UiPjA8L2NvZGU+IGFueXdoZXJlIGEgbGVuZ3RoIHVuaXQgKHN1Y2ggYXMgcHgsIGVtLCBvciByZW0pIGlzIHJlcXVpcmVkIGJlY2F1c2UsIGluIHRoZXNlIGNhc2VzLCB0aGUgdW5pdCBkb2VzIG5vdCBtYXR0ZXIuPC9wPgoKPGJsb2NrcXVvdGU+CiAgPHA+QSB1bml0bGVzcyA8Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtcGxhaW50ZXh0IGhpZ2hsaWdodGVyLXJvdWdlIj4wPC9jb2RlPiBjYW4gb25seSBiZSB1c2VkIGZvciA8ZW0+bGVuZ3RoPC9lbT4gdmFsdWVzIGFuZCBwZXJjZW50YWdlcywgc3VjaCBhcyBpbiBwYWRkaW5ncywgYm9yZGVycywgYW5kIHdpZHRocy4gSXQgY2Fu4oCZdCBiZSB1c2VkIGZvciBhbmd1bGFyIHZhbHVlcywgc3VjaCBhcyBkZWdyZWVzIG9yIHRpbWUtYmFzZWQgdmFsdWVzIGxpa2Ugc2Vjb25kcy48L3A+CjwvYmxvY2txdW90ZT4KCjxwPlRoZSA8Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtcGxhaW50ZXh0IGhpZ2hsaWdodGVyLXJvdWdlIj5saW5lLWhlaWdodDwvY29kZT4gcHJvcGVydHkgaXMgdW51c3VhbCBpbiB0aGF0IGl0IGFjY2VwdHMgYm90aCB1bml0cyBhbmQgdW5pdGxlc3MgdmFsdWVzLiBZb3Ugc2hvdWxkIHR5cGljYWxseSB1c2UgdW5pdGxlc3MgbnVtYmVycyBiZWNhdXNlIHRoZXnigJlyZSBpbmhlcml0ZWQgZGlmZmVyZW50bHkuPC9wPgoKPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtY3NzIGhpZ2hsaWdodGVyLXJvdWdlIj48ZGl2IGNsYXNzPSJoaWdobGlnaHQiPjxwcmUgY2xhc3M9ImhpZ2hsaWdodCI+PGNvZGU+PHNwYW4gY2xhc3M9Im50Ij5ib2R5PC9zcGFuPiA8c3BhbiBjbGFzcz0icCI+ezwvc3Bhbj4KICA8c3BhbiBjbGFzcz0ibmwiPmxpbmUtaGVpZ2h0PC9zcGFuPjxzcGFuIGNsYXNzPSJwIj46PC9zcGFuPiA8c3BhbiBjbGFzcz0ibSI+MS4yPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPgo8c3BhbiBjbGFzcz0icCI+fTwvc3Bhbj4KCjxzcGFuIGNsYXNzPSJuYyI+LmVsZW1lbnQ8L3NwYW4+IDxzcGFuIGNsYXNzPSJwIj57PC9zcGFuPgogIDxzcGFuIGNsYXNzPSJubCI+Zm9udC1zaXplPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj46PC9zcGFuPiA8c3BhbiBjbGFzcz0ibSI+MmVtPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPgo8c3BhbiBjbGFzcz0icCI+fTwvc3Bhbj4KPC9jb2RlPjwvcHJlPjwvZGl2PjwvZGl2PgoKPHA+VGhlIDxjb2RlIGNsYXNzPSJsYW5ndWFnZS1wbGFpbnRleHQgaGlnaGxpZ2h0ZXItcm91Z2UiPi5lbGVtZW50PC9jb2RlPiBpbmhlcml0cyBhIGxpbmUgaGVpZ2h0IG9mIDEuMi4gQmVjYXVzZSB0aGUgZm9udCBzaXplIGlzIDMyIHB4ICg8c3BhbiBjbGFzcz0ia2F0ZXgiPjxzcGFuIGNsYXNzPSJrYXRleC1tYXRobWwiPjxtYXRoIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIj48c2VtYW50aWNzPjxtcm93Pjxtbj4yPC9tbj48bXRleHQ+JiN4YTA7PC9tdGV4dD48bWk+ZTwvbWk+PG1pPm08L21pPjxtbz4mI3hkNzs8L21vPjxtbj4xNjwvbW4+PG10ZXh0PiYjeGEwOzwvbXRleHQ+PG1pPnA8L21pPjxtaT54PC9taT48L21yb3c+PGFubm90YXRpb24gZW5jb2Rpbmc9ImFwcGxpY2F0aW9uL3gtdGV4Ij4yXCBlbVx0aW1lczE2XCBweDwvYW5ub3RhdGlvbj48L3NlbWFudGljcz48L21hdGg+PC9zcGFuPjxzcGFuIGNsYXNzPSJrYXRleC1odG1sIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHNwYW4gY2xhc3M9ImJhc2UiPjxzcGFuIGNsYXNzPSJzdHJ1dCIgc3R5bGU9ImhlaWdodDowLjcyNzc3ZW07dmVydGljYWwtYWxpZ246LTAuMDgzMzNlbTsiPjwvc3Bhbj48c3BhbiBjbGFzcz0ibW9yZCI+Mjwvc3Bhbj48c3BhbiBjbGFzcz0ibXNwYWNlIj4mI3hhMDs8L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQgbWF0aGRlZmF1bHQiPmU8L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQgbWF0aGRlZmF1bHQiPm08L3NwYW4+PHNwYW4gY2xhc3M9Im1zcGFjZSIgc3R5bGU9Im1hcmdpbi1yaWdodDowLjIyMjIyMjIyMjIyMjIyMjJlbTsiPjwvc3Bhbj48c3BhbiBjbGFzcz0ibWJpbiI+JiN4ZDc7PC9zcGFuPjxzcGFuIGNsYXNzPSJtc3BhY2UiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6MC4yMjIyMjIyMjIyMjIyMjIyZW07Ij48L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJiYXNlIj48c3BhbiBjbGFzcz0ic3RydXQiIHN0eWxlPSJoZWlnaHQ6MC44Mzg4ODAwMDAwMDAwMDAxZW07dmVydGljYWwtYWxpZ246LTAuMTk0NDRlbTsiPjwvc3Bhbj48c3BhbiBjbGFzcz0ibW9yZCI+MTwvc3Bhbj48c3BhbiBjbGFzcz0ibW9yZCI+Njwvc3Bhbj48c3BhbiBjbGFzcz0ibXNwYWNlIj4mI3hhMDs8L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQgbWF0aGRlZmF1bHQiPnA8L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQgbWF0aGRlZmF1bHQiPng8L3NwYW4+PC9zcGFuPjwvc3Bhbj48L3NwYW4+KSwgdGhlIGxpbmUgaGVpZ2h0IGlzIGNhbGN1bGF0ZWQgbG9jYWxseSB0byAzOC40IHB4ICg8c3BhbiBjbGFzcz0ia2F0ZXgiPjxzcGFuIGNsYXNzPSJrYXRleC1tYXRobWwiPjxtYXRoIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIj48c2VtYW50aWNzPjxtcm93Pjxtbj4zMjwvbW4+PG10ZXh0PiYjeGEwOzwvbXRleHQ+PG1pPnA8L21pPjxtaT54PC9taT48bW8+JiN4ZDc7PC9tbz48bW4+MS4yPC9tbj48L21yb3c+PGFubm90YXRpb24gZW5jb2Rpbmc9ImFwcGxpY2F0aW9uL3gtdGV4Ij4zMlwgcHhcdGltZXMgMS4yPC9hbm5vdGF0aW9uPjwvc2VtYW50aWNzPjwvbWF0aD48L3NwYW4+PHNwYW4gY2xhc3M9ImthdGV4LWh0bWwiIGFyaWEtaGlkZGVuPSJ0cnVlIj48c3BhbiBjbGFzcz0iYmFzZSI+PHNwYW4gY2xhc3M9InN0cnV0IiBzdHlsZT0iaGVpZ2h0OjAuODM4ODgwMDAwMDAwMDAwMWVtO3ZlcnRpY2FsLWFsaWduOi0wLjE5NDQ0ZW07Ij48L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPjM8L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPjI8L3NwYW4+PHNwYW4gY2xhc3M9Im1zcGFjZSI+JiN4YTA7PC9zcGFuPjxzcGFuIGNsYXNzPSJtb3JkIG1hdGhkZWZhdWx0Ij5wPC9zcGFuPjxzcGFuIGNsYXNzPSJtb3JkIG1hdGhkZWZhdWx0Ij54PC9zcGFuPjxzcGFuIGNsYXNzPSJtc3BhY2UiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6MC4yMjIyMjIyMjIyMjIyMjIyZW07Ij48L3NwYW4+PHNwYW4gY2xhc3M9Im1iaW4iPiYjeGQ3Ozwvc3Bhbj48c3BhbiBjbGFzcz0ibXNwYWNlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OjAuMjIyMjIyMjIyMjIyMjIyMmVtOyI+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0iYmFzZSI+PHNwYW4gY2xhc3M9InN0cnV0IiBzdHlsZT0iaGVpZ2h0OjAuNjQ0NDRlbTt2ZXJ0aWNhbC1hbGlnbjowZW07Ij48L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPjE8L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPi48L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQiPjI8L3NwYW4+PC9zcGFuPjwvc3Bhbj48L3NwYW4+KS4gVGhpcyB3aWxsIGxlYXZlIGFuIGFwcHJvcHJpYXRlIGFtb3VudCBvZiBzcGFjZSBiZXR3ZWVuIGxpbmVzIG9mIHRleHQuPC9wPgoKPHA+V2hlbiBhbiBlbGVtZW50IGhhcyBhIHZhbHVlIGRlZmluZWQgdXNpbmcgYSA8ZW0+bGVuZ3RoPC9lbT4gKHB4LCBlbSwgcmVtLCBhbmQgc28gZm9ydGgpLCBpdHMgY29tcHV0ZWQgdmFsdWUgaXMgaW5oZXJpdGVkIGJ5IGNoaWxkIGVsZW1lbnRzLiBXaGVuIHVuaXRzIHN1Y2ggYXMgZW1zIGFyZSBzcGVjaWZpZWQgZm9yIGEgbGluZSBoZWlnaHQsIHRoZWlyIHZhbHVlIGlzIGNhbGN1bGF0ZWQsIGFuZCB0aGF0IGNhbGN1bGF0ZWQgdmFsdWUgaXMgcGFzc2VkIGRvd24gdG8gYW55IGluaGVyaXRpbmcgY2hpbGRyZW4uPC9wPgoKPGJsb2NrcXVvdGU+CiAgPHA+PGVtPmxlbmd0aDwvZW0+IOKAlCBUaGUgZm9ybWFsIG5hbWUgZm9yIGEgQ1NTIHZhbHVlIHRoYXQgZGVub3RlcyBhIGRpc3RhbmNlIG1lYXN1cmVtZW50LiBJdOKAmXMgYSBudW1iZXIgZm9sbG93ZWQgYnkgYSB1bml0LCBzdWNoIGFzIDUgcHguIExlbmd0aCBjb21lcyBpbiB0d28gZmxhdm9yczogYWJzb2x1dGUgYW5kIHJlbGF0aXZlLiBQZXJjZW50YWdlcyBhcmUgc2ltaWxhciB0byBsZW5ndGhzLCBidXQgc3RyaWN0bHkgc3BlYWtpbmcsIHRoZXnigJlyZSA8c3Ryb25nPk5PVDwvc3Ryb25nPiBjb25zaWRlcmVkIGxlbmd0aHMuPC9wPgo8L2Jsb2NrcXVvdGU+Cgo8cD5XaGVuIHlvdSB1c2UgYSB1bml0bGVzcyBudW1iZXIsIHRoYXQgZGVjbGFyZWQgdmFsdWUgaXMgaW5oZXJpdGVkLCBtZWFuaW5nIGl0cyBjb21wdXRlZCB2YWx1ZSBpcyByZWNhbGN1bGF0ZWQgZm9yIGVhY2ggaW5oZXJpdGluZyBjaGlsZCBlbGVtZW50LiBUaGlzIHdpbGwgYWxtb3N0IGFsd2F5cyBiZSB0aGUgcmVzdWx0IHlvdSB3YW50LjwvcD4KCjxoMiBpZD0iY3VzdG9tLXByb3BlcnRpZXMtYWthLWNzcy12YXJpYWJsZXMiPkN1c3RvbSBQcm9wZXJ0aWVzICg8ZW0+YWthLjwvZW0+IENTUyBWYXJpYWJsZXMpPC9oMj4KCjxwPkluIDIwMTUsIGEgbG9uZy1hd2FpdGVkIENTUyBzcGVjaWZpY2F0aW9uIHRpdGxlZCA8ZW0+Q3VzdG9tIFByb3BlcnRpZXMgZm9yIENhc2NhZGluZyBWYXJpYWJsZXM8L2VtPiB3YXMgcHVibGlzaGVkIGFzIGEgQ2FuZGlhdGUgUmVjb21tZW5kYXRpb24uIFRoaXMgc3BlY2lmaWNhdGlvbiBpbnRyb2R1Y2VkIHRoZSBjb25jZXB0IG9mIHZhcmlhYmxlcyB0byB0aGUgbGFuZ3VhZ2UsIHdoaWNoIGVuYWJsZWQgYSBuZXcgbGV2ZWwgb2YgZHluYW1pYywgY29udGV4dC1iYXNlZCBzdHlsZXMuIFlvdSBjYW4gZGVjbGFyZSBhIHZhcmlhYmxlIGFuZCBhc3NpZ24gaXQgYSB2YWx1ZTsgdGhlbiB5b3UgY2FuIHJlZmVyZW5jZSB0aGlzIHZhbHVlIHRocm91Z2hvdXQgeW91ciBzdHlsZXNoZWV0LiBZb3UgY2FuIHVzZSB0aGlzIHRvIHJlZHVjZSByZXBldGl0aW9uIGluIHlvdXIgc3R5bGVzaGVldCwgYXMgd2VsbCBhcyBzb21lIG90aGVyIGJlbmVmaWNpYWwgYXBwbGljYXRpb25zLjwvcD4KCjxwPkF0IHByZXNlbnQsIHN1cHBvcnQgZm9yIGN1c3RvbSBwcm9wZXJ0aWVzIGhhcyByb2xsZWQgb3V0IGluIGFsbCBtYWpvciBicm93c2VycyBleGNlcHQgSUUsIGNoZWNrIDxhIGhyZWY9Imh0dHBzOi8vY2FuaXVzZS5jb20vI2ZlYXQ9Y3NzLXZhcmlhYmxlcyI+aHR0cHM6Ly9jYW5pdXNlLmNvbS8jZmVhdD1jc3MtdmFyaWFibGVzPC9hPiBmb3IgdXAtdG8tZGF0ZSBzdXBwb3J0IGluZm9ybWF0aW9uLjwvcD4KCjxibG9ja3F1b3RlPgogIDxwPklmIHlvdSBoYXBwZW4gdG8gdXNlIGEgQ1NTIHByZXByb2Nlc3NvciB0aGF0IHN1cHBvcnRzIGl0cyBvd24gdmFyaWFibGVzLCBzdWNoIGFzIFNhc3Mgb3IgTGVzcywgeW91IG1heSBiZSB0ZW1wdGVkIHRvIGRpc3JlZ2FyZCBDU1MgdmFyaWFibGVzLiBIb3dldmVyLCB0aGUgbmV3IENTUyB2YXJpYWJsZXMgYXJlIGRpZmZlcmVudCBpbiBuYXR1cmUgYW5kIGFyZSBmYXIgbW9yZSB2ZXJzdGlsZSB0aGFuIGFueXRoaW5nIGEgcHJlcHJvY2Vzc29yIGNhbiBhY2NvbXBsaXNoLjwvcD4KPC9ibG9ja3F1b3RlPgoKPHA+VG8gZGVmaW5lIGEgY3VzdG9tIHByb3BlcnR5LCB5b3UgZGVjbGFyZSBpdCBtdWNoIGxpa2UgYW55IG90aGVyIENTUyBwcm9wZXJ0eTo8L3A+Cgo8ZGl2IGNsYXNzPSJsYW5ndWFnZS1jc3MgaGlnaGxpZ2h0ZXItcm91Z2UiPjxkaXYgY2xhc3M9ImhpZ2hsaWdodCI+PHByZSBjbGFzcz0iaGlnaGxpZ2h0Ij48Y29kZT48c3BhbiBjbGFzcz0ibmQiPjpyb290PC9zcGFuPiA8c3BhbiBjbGFzcz0icCI+ezwvc3Bhbj4KICA8c3BhbiBjbGFzcz0icHkiPi0tbWFpbi1mb250PC9zcGFuPjxzcGFuIGNsYXNzPSJwIj46PC9zcGFuPiA8c3BhbiBjbGFzcz0ibiI+SGVsdmV0aWNhPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ibiI+QXJpYWw8L3NwYW4+PHNwYW4gY2xhc3M9InAiPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYiI+c2Fucy1zZXJpZjwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ozwvc3Bhbj4KPHNwYW4gY2xhc3M9InAiPn08L3NwYW4+CjwvY29kZT48L3ByZT48L2Rpdj48L2Rpdj4KCjxwPlRoZSBuYW1lIG11c3QgYmVnaW4gd2l0aCB0d28gaHlwaGVucyAoPGNvZGUgY2xhc3M9Imxhbmd1YWdlLXBsYWludGV4dCBoaWdobGlnaHRlci1yb3VnZSI+LS08L2NvZGU+KSB0byBkaXN0aW5ndWlzaCBpdCBmcm9tIENTUyBwcm9wZXJ0aWVzLCBmb2xsb3dlZCBieSB3aGF0ZXZlciBuYW1lIHlvdeKAmWQgbGlrZSB0byB1c2UuIEJ5IGl0c2VsZiwgdGhpcyB2YXJpYWJsZSBkZWNsYXJhdGlvbiBkb2VzbuKAmXQgZG8gYW55dGhpbmcgdW50aWwgd2UgdXNlIGl0LjwvcD4KCjxwPkEgZnVuY3Rpb24gPGNvZGUgY2xhc3M9Imxhbmd1YWdlLXBsYWludGV4dCBoaWdobGlnaHRlci1yb3VnZSI+dmFyKCk8L2NvZGU+IGFsbG93cyB0aGUgdXNlIG9mIHZhcmlhYmxlcy48L3A+Cgo8ZGl2IGNsYXNzPSJsYW5ndWFnZS1jc3MgaGlnaGxpZ2h0ZXItcm91Z2UiPjxkaXYgY2xhc3M9ImhpZ2hsaWdodCI+PHByZSBjbGFzcz0iaGlnaGxpZ2h0Ij48Y29kZT48c3BhbiBjbGFzcz0ibnQiPnA8L3NwYW4+IDxzcGFuIGNsYXNzPSJwIj57PC9zcGFuPgogIDxzcGFuIGNsYXNzPSJubCI+Zm9udC1mYW1pbHk8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjo8L3NwYW4+IDxzcGFuIGNsYXNzPSJuIj52YXI8L3NwYW4+PHNwYW4gY2xhc3M9InAiPig8L3NwYW4+PHNwYW4gY2xhc3M9Im4iPi0tbWFpbi1mb250PC9zcGFuPjxzcGFuIGNsYXNzPSJwIj4pOzwvc3Bhbj4KPHNwYW4gY2xhc3M9InAiPn08L3NwYW4+CjwvY29kZT48L3ByZT48L2Rpdj48L2Rpdj4KCjxwPlRoZSA8Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtcGxhaW50ZXh0IGhpZ2hsaWdodGVyLXJvdWdlIj52YXIoKTwvY29kZT4gZnVuY3Rpb24gYWNjZXB0cyBhIHNlY29uZCBwYXJhbWV0ZXIsIHdoaWNoIHNwZWNpZmllcyBhIGZhbGxiYWNrIHZhbHVlLiBJZiB0aGUgdmFyaWFibGUgc3BlY2lmaWVkIGluIHRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgbm90IGRlZmluZWQsIHRoZW4gdGhlIHNlY29uZCB2YWx1ZSBpcyB1c2VkLiBJZiBhIDxjb2RlIGNsYXNzPSJsYW5ndWFnZS1wbGFpbnRleHQgaGlnaGxpZ2h0ZXItcm91Z2UiPnZhcigpPC9jb2RlPiBmdW5jdGlvbiBldmFsdWF0ZXMgdG8gYW4gaW52YWxpZCB2YWx1ZSwgdGhlIHByb3BlcnR5IHdpbGwgYmUgc2V0IHRvIGl0cyBpbml0aWFsIHZhbHVlLjwvcD4KCjxoMyBpZD0iY2hhbmdpbmctY3VzdG9tLXByb3BlcnRpZXMtZHluYW1pY2FsbHkiPkNoYW5naW5nIEN1c3RvbSBQcm9wZXJ0aWVzIER5bmFtaWNhbGx5PC9oMz4KCjxwPllvdSBjYW4gZGVmaW5lIHRoZSBzYW1lIHZhcmlhYmxlIGluc2lkZSBtdWx0aXBsZSBzZWxlY3RvcnMsIGFuZCB0aGUgdmFyaWFibGUgd2lsbCBoYXZlIGEgZGlmZmVyZW50IHZhbHVlIGZvciB2YXJpb3VzIHBhcnRzIG9mIHRoZSBwYWdlLjwvcD4KCjxwPkZvciBleGFtcGxlLCB5b3UgY2FuIGRlZmluZSBhIHZhcmlhYmxlIGFzIGJsYWNrLCBhbmQgdGhlbiByZWRlZmluZSBpdCBhcyB3aGl0ZSBpbnNpZGUgYSBwYXJ0aWN1bGFyIGNvbnRhaW5lci4gVGhlbiwgYW55IHN0eWxlcyBiYXNlZCBvbiB0aGF0IHZhcmlhYmxlIHdpbGwgZHluYW1pY2FsbHkgcmVzb2x2ZSB0byBibGFjayBpZiB0aGV5IGFyZSBvdXRzaWRlIHRoZSBjb250YWluZXIgYW5kIHRvIHdoaXRlIGlmIGluc2lkZS48L3A+Cgo8ZGl2IGNsYXNzPSJsYW5ndWFnZS1jc3MgaGlnaGxpZ2h0ZXItcm91Z2UiPjxkaXYgY2xhc3M9ImhpZ2hsaWdodCI+PHByZSBjbGFzcz0iaGlnaGxpZ2h0Ij48Y29kZT48c3BhbiBjbGFzcz0ibmQiPjpyb290PC9zcGFuPiA8c3BhbiBjbGFzcz0icCI+ezwvc3Bhbj4KICA8c3BhbiBjbGFzcz0icHkiPi0tbWFpbi1iZzwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ojwvc3Bhbj4gPHNwYW4gY2xhc3M9Im0iPiNmZmY8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjs8L3NwYW4+CiAgPHNwYW4gY2xhc3M9InB5Ij4tLW1haW4tY29sb3I8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjo8L3NwYW4+IDxzcGFuIGNsYXNzPSJtIj4jMDAwPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPgo8c3BhbiBjbGFzcz0icCI+fTwvc3Bhbj4KCjxzcGFuIGNsYXNzPSJuYyI+LnBhbmVsPC9zcGFuPiA8c3BhbiBjbGFzcz0icCI+ezwvc3Bhbj4KICA8c3BhbiBjbGFzcz0ibmwiPmJhY2tncm91bmQtY29sb3I8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjo8L3NwYW4+IDxzcGFuIGNsYXNzPSJuIj52YXI8L3NwYW4+PHNwYW4gY2xhc3M9InAiPig8L3NwYW4+PHNwYW4gY2xhc3M9Im4iPi0tbWFpbi1iZzwvc3Bhbj48c3BhbiBjbGFzcz0icCI+KTs8L3NwYW4+CiAgPHNwYW4gY2xhc3M9Im5sIj5jb2xvcjwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ojwvc3Bhbj4gPHNwYW4gY2xhc3M9Im4iPnZhcjwvc3Bhbj48c3BhbiBjbGFzcz0icCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0ibiI+LS1tYWluLWNvbG9yPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj4pOzwvc3Bhbj4KPHNwYW4gY2xhc3M9InAiPn08L3NwYW4+Cgo8c3BhbiBjbGFzcz0ibmMiPi5kYXJrPC9zcGFuPiA8c3BhbiBjbGFzcz0icCI+ezwvc3Bhbj4KICA8c3BhbiBjbGFzcz0icHkiPi0tbWFpbi1iZzwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ojwvc3Bhbj4gPHNwYW4gY2xhc3M9Im0iPiMzMzM8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjs8L3NwYW4+CiAgPHNwYW4gY2xhc3M9InB5Ij4tLW1haW4tY29sb3I8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjo8L3NwYW4+IDxzcGFuIGNsYXNzPSJtIj4jZmZmPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPgo8c3BhbiBjbGFzcz0icCI+fTwvc3Bhbj4KPC9jb2RlPjwvcHJlPjwvZGl2PjwvZGl2PgoKPHA+Rm9yIGNvbnRleHRzIGxpa2U6PC9wPgoKPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtaHRtbCBoaWdobGlnaHRlci1yb3VnZSI+PGRpdiBjbGFzcz0iaGlnaGxpZ2h0Ij48cHJlIGNsYXNzPSJoaWdobGlnaHQiPjxjb2RlPjxzcGFuIGNsYXNzPSJudCI+Jmx0O2Rpdjwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5hIj5jbGFzcz08L3NwYW4+PHNwYW4gY2xhc3M9InMiPiJwYW5lbCI8L3NwYW4+PHNwYW4gY2xhc3M9Im50Ij4mZ3Q7PC9zcGFuPgogIC4uLgo8c3BhbiBjbGFzcz0ibnQiPiZsdDsvZGl2Jmd0Ozwvc3Bhbj4KCjxzcGFuIGNsYXNzPSJudCI+Jmx0O2Rpdjwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5hIj5jbGFzcz08L3NwYW4+PHNwYW4gY2xhc3M9InMiPiJkYXJrIjwvc3Bhbj48c3BhbiBjbGFzcz0ibnQiPiZndDs8L3NwYW4+CiAgPHNwYW4gY2xhc3M9Im50Ij4mbHQ7ZGl2PC9zcGFuPiA8c3BhbiBjbGFzcz0ibmEiPmNsYXNzPTwvc3Bhbj48c3BhbiBjbGFzcz0icyI+InBhbmVsIjwvc3Bhbj48c3BhbiBjbGFzcz0ibnQiPiZndDs8L3NwYW4+CiAgICAuLi4KICA8c3BhbiBjbGFzcz0ibnQiPiZsdDsvZGl2Jmd0Ozwvc3Bhbj4KPHNwYW4gY2xhc3M9Im50Ij4mbHQ7L2RpdiZndDs8L3NwYW4+CjwvY29kZT48L3ByZT48L2Rpdj48L2Rpdj4KCjxwPlRoZSBzZWNvbmQgPGNvZGUgY2xhc3M9Imxhbmd1YWdlLXBsYWludGV4dCBoaWdobGlnaHRlci1yb3VnZSI+LnBhbmVsPC9jb2RlPiB3aWxsIGhhdmUgYSBkYXJrIGJhY2tncm91bmQgYW5kIHdoaXRlIHRleHQuIFRoaXMgaXMgYmVjYXVzZSB3aGVuIHRoZSBwYW5lbCB1c2VzIHRoZXNlIHZhcmlhYmxlcywgdGhleeKAmWxsIHJlc29sdmUgdG8gdGhlIHZhbHVlcyBkZWZpbmVkIG9uIHRoZSBkYXJrIGNvbnRhaW5lciwgcmF0aGVyIHRoYW4gb24gdGhlIHJvb3QuPC9wPgoKPGgzIGlkPSJjaGFuZ2luZy1jdXN0b20tcHJvcGVydGllcy13aXRoLWphdmFzY3JpcHQiPkNoYW5naW5nIEN1c3RvbSBQcm9wZXJ0aWVzIHdpdGggSmF2YVNjcmlwdDwvaDM+Cgo8cD5UaGUgZm9sbG93aW5nIHNjcmlwdCBzaG93cyBob3cgdG8gYWNjZXNzIGFuZCBzZXQgYSBwcm9wZXJ0eSBvbiBhbiBlbGVtZW50LjwvcD4KCjxkaXYgY2xhc3M9Imxhbmd1YWdlLWpzIGhpZ2hsaWdodGVyLXJvdWdlIj48ZGl2IGNsYXNzPSJoaWdobGlnaHQiPjxwcmUgY2xhc3M9ImhpZ2hsaWdodCI+PGNvZGU+PHNwYW4gY2xhc3M9ImtkIj5sZXQ8L3NwYW4+IDxzcGFuIGNsYXNzPSJueCI+cm9vdEVsZW1lbnQ8L3NwYW4+IDxzcGFuIGNsYXNzPSJvIj49PC9zcGFuPiA8c3BhbiBjbGFzcz0ibmIiPmRvY3VtZW50PC9zcGFuPjxzcGFuIGNsYXNzPSJwIj4uPC9zcGFuPjxzcGFuIGNsYXNzPSJueCI+ZG9jdW1lbnRFbGVtZW50PC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPgo8c3BhbiBjbGFzcz0ia2QiPmxldDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im54Ij5zdHlsZXM8L3NwYW4+IDxzcGFuIGNsYXNzPSJvIj49PC9zcGFuPiA8c3BhbiBjbGFzcz0ibngiPmdldENvbXB1dGVkU3R5bGU8L3NwYW4+PHNwYW4gY2xhc3M9InAiPig8L3NwYW4+PHNwYW4gY2xhc3M9Im54Ij5yb290RWxlbWVudDwvc3Bhbj48c3BhbiBjbGFzcz0icCI+KTs8L3NwYW4+CjxzcGFuIGNsYXNzPSJrZCI+bGV0PC9zcGFuPiA8c3BhbiBjbGFzcz0ibngiPm1haW5Db2xvcjwvc3Bhbj4gPHNwYW4gY2xhc3M9Im8iPj08L3NwYW4+IDxzcGFuIGNsYXNzPSJueCI+c3R5bGVzPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj4uPC9zcGFuPjxzcGFuIGNsYXNzPSJueCI+Z2V0UHJvcGVydHlWYWx1ZTwvc3Bhbj48c3BhbiBjbGFzcz0icCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0iZGwiPic8L3NwYW4+PHNwYW4gY2xhc3M9InMxIj4tLW1haW4tYmc8L3NwYW4+PHNwYW4gY2xhc3M9ImRsIj4nPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj4pOzwvc3Bhbj4KPHNwYW4gY2xhc3M9Im54Ij5jb25zb2xlPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj4uPC9zcGFuPjxzcGFuIGNsYXNzPSJueCI+bG9nPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJuYiI+U3RyaW5nPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJueCI+bWFpbkNvbG9yPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj4pLjwvc3Bhbj48c3BhbiBjbGFzcz0ibngiPnRyaW08L3NwYW4+PHNwYW4gY2xhc3M9InAiPigpKTs8L3NwYW4+IDxzcGFuIGNsYXNzPSJjMSI+Ly8gdHJpbXMgd2hpdGVzcGFjZSwgbG9ncyAiI2ZmZiI8L3NwYW4+Cgo8c3BhbiBjbGFzcz0ibngiPnJvb3RFbGVtZW50PC9zcGFuPjxzcGFuIGNsYXNzPSJwIj4uPC9zcGFuPjxzcGFuIGNsYXNzPSJueCI+c3R5bGU8L3NwYW4+PHNwYW4gY2xhc3M9InAiPi48L3NwYW4+PHNwYW4gY2xhc3M9Im54Ij5zZXRQcm9wZXJ0eTwvc3Bhbj48c3BhbiBjbGFzcz0icCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0iZGwiPic8L3NwYW4+PHNwYW4gY2xhc3M9InMxIj4tLW1haW4tYmc8L3NwYW4+PHNwYW4gY2xhc3M9ImRsIj4nPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj4sPC9zcGFuPiA8c3BhbiBjbGFzcz0iZGwiPic8L3NwYW4+PHNwYW4gY2xhc3M9InMxIj4jMzMzPC9zcGFuPjxzcGFuIGNsYXNzPSJkbCI+Jzwvc3Bhbj48c3BhbiBjbGFzcz0icCI+KTs8L3NwYW4+IDxzcGFuIGNsYXNzPSJjMSI+Ly8gc2V0ICItLW1haW4tYmciPC9zcGFuPgo8L2NvZGU+PC9wcmU+PC9kaXY+PC9kaXY+Cgo8cD5XaXRoIHRoaXMgdGVjaG5pcXVlLCB5b3UgY2FuIHVzZSBvbmx5IGEgZmV3IGxpbmVzIG9mIEphdmFTY3JpcHQgdGhhdCBtYWtlIGNoYW5nZXMgdGhhdOKAmWxsIGFmZmVjdCBhIGxhcmdlIG51bWJlciBvZiBlbGVtZW50cyBvbiB0aGUgcGFnZS48L3A+Cgo8cD5CZSBhd2FyZSB0aGF0IGFueSBkZWNsYXJhdGlvbiB1c2luZyA8Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtcGxhaW50ZXh0IGhpZ2hsaWdodGVyLXJvdWdlIj52YXIoKTwvY29kZT4gd2lsbCBiZSBpZ25vcmVkIGJ5IG9sZCBicm93c2VycyB0aGF0IGRvbuKAmXQgdW5kZXJzdGFuZCBpdC4gUHJvdmlkZSBhIGZhbGxiYWNrIGJlaGF2aW9yIGZvciB0aG9zZSBicm93c2VycyB3aGVuIHBvc3NpYmxlLjwvcD4KCjxkaXYgY2xhc3M9Imxhbmd1YWdlLWNzcyBoaWdobGlnaHRlci1yb3VnZSI+PGRpdiBjbGFzcz0iaGlnaGxpZ2h0Ij48cHJlIGNsYXNzPSJoaWdobGlnaHQiPjxjb2RlPjxzcGFuIGNsYXNzPSJudCI+Y29sb3I8L3NwYW4+PHNwYW4gY2xhc3M9Im8iPjo8L3NwYW4+IDxzcGFuIGNsYXNzPSJudCI+YmxhY2s8L3NwYW4+PHNwYW4gY2xhc3M9Im8iPjs8L3NwYW4+CjxzcGFuIGNsYXNzPSJudCI+Y29sb3I8L3NwYW4+PHNwYW4gY2xhc3M9Im8iPjo8L3NwYW4+IDxzcGFuIGNsYXNzPSJudCI+dmFyPC9zcGFuPjxzcGFuIGNsYXNzPSJvIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJudCI+LS1tYWluLWNvbG9yPC9zcGFuPjxzcGFuIGNsYXNzPSJvIj4pOzwvc3Bhbj4KPC9jb2RlPjwvcHJlPjwvZGl2PjwvZGl2PgoK
                        

林宏

Frank Lin

Hey, there! This is Frank Lin (@flinhong), one of the 1.4 billion 🇨🇳. This 'inDev. Journal' site holds the exploration of my quirky thoughts and random adventures through life. Hope you enjoy reading and perusing my posts.

YOU MAY ALSO LIKE

Using Liquid in Jekyll - Live with Demos

Web Notes

2016.08.20

Using Liquid in Jekyll - Live with Demos

Liquid is a simple templating language that Jekyll uses to process pages on your site. With Liquid you can output an modify variables, have logic statements inside your pages and loop over content.

Practising closures in JavaScript

JavaScript Notes

2018.12.17

Practising closures in JavaScript

JavaScript is a very function-oriented language. As we know, functions are first class objects and can be easily assigned to variables, passed as arguments, returned from another function invocation, or stored into data structures. A function can access variable outside of it. But what happens when an outer variable changes? Does a function get the most recent value or the one that existed when the function was created? Also, what happens when a function invoked in another place - does it get access to the outer variables of the new place?

Setup an IKEv2 server with StrongSwan

Tutorials

2020.01.09

Setup an IKEv2 server with StrongSwan

IKEv2, or Internet Key Exchange v2, is a protocol that allows for direct IPSec tunneling between the server and client. In IKEv2 implementations, IPSec provides encryption for the network traffic. IKEv2 is natively supported on some platforms (OS X 10.11+, iOS 9.1+, and Windows 10) with no additional applications necessary, and it handles client hiccups quite smoothly.