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+Cgo8cD5XaGVuIGl0IGNvbWVzIHRvIHRoZSA8Y29kZSBjbGFzcz0iaGlnaGxpZ2h0ZXItcm91Z2UiPmZvbnQtc2l6ZTwvY29kZT4gcHJvcGVydHksIGVtcyBoYXZlIGJlaGF2ZSBhIGxpdHRsZSBkaWZmZXJlbnRseS4gSWYgeW91IGRlY2xhcmUgPGNvZGUgY2xhc3M9ImhpZ2hsaWdodGVyLXJvdWdlIj5mb250LXNpemU6IDEuMmVtPC9jb2RlPiwgd2hhdCBkb2VzIHRoYXQgbWVhbj8gQSBmb250IHNpemUgY2Fu4oCZdCBlcXVhbCAxLjIgdGltZXMgaXRzZWxmLiBJbnN0ZWFkLCA8Y29kZSBjbGFzcz0iaGlnaGxpZ2h0ZXItcm91Z2UiPmZvbnQtc2l6ZTwvY29kZT4gZW1zIGFyZSBkZXJpdmVkIGZyb20gdGhlIDxlbT5pbmhlcml0ZWQ8L2VtPiBmb250IHNpemUuPC9wPgoKPHA+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+Cgo8YmxvY2txdW90ZT4KICA8cD5JdOKAmXMgaGVscGZ1bCB0byBrbm93IHRoYXQsIGZvciBtb3N0IGJyb3dzZXJzLCB0aGUgZGVmYXVsdCBmb250IHNpemUgaXMgPHN0cm9uZz4xNiBweDwvc3Ryb25nPi4gVGVjaG5pY2FsbHksIGl04oCZcyB0aGUga2V5d29yZCB2YWx1ZSA8Y29kZSBjbGFzcz0iaGlnaGxpZ2h0ZXItcm91Z2UiPm1lZGl1bTwvY29kZT4gdGhhdCBjYWxjdWxhdGVzIHRvIDE2IHB4LjwvcD4KPC9ibG9ja3F1b3RlPgoKPGgzIGlkPSJlbXMtZm9yLWZvbnQtc2l6ZS10b2dldGhlci13aXRoLWVtcy1mb3Itb3RoZXItcHJvcGVydGllcyI+RW1zIGZvciBGb250LXNpemUgVG9nZXRoZXIgd2l0aCBFbXMgZm9yIE90aGVyIFByb3BlcnRpZXM8L2gzPgoKPHA+V2hhdCBtYWtlcyBlbXMgdHJpY2t5IGlzIHdoZW4geW91IHVzZSB0aGVtIGZvciBib3RoIGZvbnQgc2l6ZSBhbmQgYW55IG90aGVyIHByb3BlcnRpZXMgb24gdGhlIHNhbWUgZWxlbWVudC4gV2hlbiB5b3UgZG8gdGhpcywgdGhlIGJyb3dzZXIgbXVzdCBjYWxjdWxhdGUgdGhlIGZvbnQgc2l6ZSBmaXJzdCwgYW5kIHRoZW4gaXQgdXNlcyB0aGF0IHZhbHVlIHRvIGNhbGN1bGF0ZSB0aGUgb3RoZXIgdmFsdWVzLiBCb3RoIHByb3BlcnRpZXMgY2FuIGhhdmUgdGhlIHNhbWUgZGVjbGFyZWQgdmFsdWUsIGJ1dCB0aGV54oCZbGwgaGF2ZSBkaWZmZXJlbnQgY29tcHV0ZWQgdmFsdWVzLiBGb3IgZXhhbXBsZTo8L3A+Cgo8ZGl2IGNsYXNzPSJsYW5ndWFnZS1jc3MgaGlnaGxpZ2h0ZXItcm91Z2UiPjxkaXYgY2xhc3M9ImhpZ2hsaWdodCI+PHByZSBjbGFzcz0iaGlnaGxpZ2h0Ij48Y29kZT48c3BhbiBjbGFzcz0ibnQiPmJvZHk8L3NwYW4+IDxzcGFuIGNsYXNzPSJwIj57PC9zcGFuPgogIDxzcGFuIGNsYXNzPSJubCI+Zm9udC1zaXplPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj46PC9zcGFuPiA8c3BhbiBjbGFzcz0ibSI+MTZweDwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ozwvc3Bhbj4KPHNwYW4gY2xhc3M9InAiPn08L3NwYW4+Cgo8c3BhbiBjbGFzcz0ibmMiPi5wYWRkaW5nPC9zcGFuPiA8c3BhbiBjbGFzcz0icCI+ezwvc3Bhbj4KICA8c3BhbiBjbGFzcz0ibmwiPmZvbnQtc2l6ZTwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ojwvc3Bhbj4gPHNwYW4gY2xhc3M9Im0iPjEuMmVtPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPiA8c3BhbiBjbGFzcz0iYyI+LyogZXZhbHVhdGVzIHRvIDE5LjJweCAqLzwvc3Bhbj4KICA8c3BhbiBjbGFzcz0ibmwiPnBhZGRpbmc8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjo8L3NwYW4+IDxzcGFuIGNsYXNzPSJtIj4xLjJlbTwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ozwvc3Bhbj4gPHNwYW4gY2xhc3M9ImMiPi8qIGV2YWx1YXRlcyB0byAyMy4wNHB4ICovPC9zcGFuPgogIDxzcGFuIGNsYXNzPSJubCI+YmFja2dyb3VuZC1jb2xvcjwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ojwvc3Bhbj4gPHNwYW4gY2xhc3M9Im0iPiNjY2M8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjs8L3NwYW4+CjxzcGFuIGNsYXNzPSJwIj59PC9zcGFuPgo8L2NvZGU+PC9wcmU+PC9kaXY+PC9kaXY+Cgo8cD5JbiB0aGlzIGV4YW1wbGUsIDxjb2RlIGNsYXNzPSJoaWdobGlnaHRlci1yb3VnZSI+cGFkZGluZzwvY29kZT4gaGFzIGEgc3BlY2lmaWVkIHZhbHVlIG9mIDEuMiBlbS4gVGhpcyBtdWx0aXBsaWVkIGJ5IDE5LjIgcHggKHRoZSBjb21wdXRlZCBmb250IHNpemUgb2YgdGhlIGVsZW1lbnQpIHByb2R1Y2VzIGEgY2FsY3VsYXRlZCB2YWx1ZSBvZiAyMy4wNCBweC48L3A+Cgo8aDMgaWQ9InRoZS1zaHJpbmtpbmctZm9udC1wcm9ibGVtIj5UaGUgU2hyaW5raW5nIEZvbnQgUHJvYmxlbTwvaDM+Cgo8cD5FbXMgY2FuIHByb2R1Y2UgdW5leHBlY3RlZCByZXN1bHRzIHdoZW4geW91IHVzZSB0aGVtIHRvIHNwZWNpZnkgdGhlIGZvbnQgc2l6ZXMgb2YgbXVsdGlwbGUgbmVzdGVkIGVsZW1lbnRzLiBUbyBrbm93IHRoZSBleGFjdCB2YWx1ZSBmb3IgZWFjaCBlbGVtZW50LCB5b3XigJlsbCBuZWVkIHRvIGtub3cgaXRzIGluaGVyaXRlZCBmb250IHNpemUsIHdoaWNoLCBpZiBkZWZpbmVkIG9uIHRoZSBwYXJlbnQgZWxlbWVudCBpbiBlbXMsIHJlcXVpcmVzIHlvdSB0byBrbm93IHRoZSBwYXJlbnQgZWxlbWVudOKAmXMgaW5oZXJpdGVkIHNpemUsIGFuZCBzbyBvbiB1cCB0aGUgdHJlZS48L3A+Cgo8cD5UaGlzIGJlY29tZXMgcXVpY2tseSBhcHBhcmVudCB3aGVuIHlvdSB1c2UgZW1zIGZvciB0aGUgZm9udCBzaXplIG9mIGxpc3RzIGFuZCB0aGVuIG5lc3QgbGlzdHMgc2V2ZXJhbCBsZXZlbHMgZGVlcCwgbGlrZSB0aGlzOjwvcD4KCjxwPjxpbWcgc3JjPSJodHRwczovL2kubG9saS5uZXQvMjAxOS8wNi8yNy81ZDE0Yzc1ZGQyMGE4MTQ0ODIucG5nIiBhbHQ9Imxpc3RzIHVzaW5nIGVtcyBhcyBmb250LXNpemUiIC8+PC9wPgoKPHA+d2l0aCBDU1MgZGVmaW5lZCBsaWtlOjwvcD4KCjxkaXYgY2xhc3M9Imxhbmd1YWdlLWNzcyBoaWdobGlnaHRlci1yb3VnZSI+PGRpdiBjbGFzcz0iaGlnaGxpZ2h0Ij48cHJlIGNsYXNzPSJoaWdobGlnaHQiPjxjb2RlPjxzcGFuIGNsYXNzPSJudCI+Ym9keTwvc3Bhbj4gPHNwYW4gY2xhc3M9InAiPns8L3NwYW4+CiAgPHNwYW4gY2xhc3M9Im5sIj5mb250LXNpemU8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjo8L3NwYW4+IDxzcGFuIGNsYXNzPSJtIj4xNnB4PC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPgo8c3BhbiBjbGFzcz0icCI+fTwvc3Bhbj4KCjxzcGFuIGNsYXNzPSJudCI+dWw8L3NwYW4+IDxzcGFuIGNsYXNzPSJwIj57PC9zcGFuPgogIDxzcGFuIGNsYXNzPSJubCI+Zm9udC1zaXplPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj46PC9zcGFuPiA8c3BhbiBjbGFzcz0ibSI+LjhlbTwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ozwvc3Bhbj4KPHNwYW4gY2xhc3M9InAiPn08L3NwYW4+CjwvY29kZT48L3ByZT48L2Rpdj48L2Rpdj4KCjxwPkJ5IG5vdywgaXQgc2hvdWxkIGJlIGNsZWFyIHRoYXQgZW1zIGFyZSBuaWNlIGZvciBlbGVtZW50IHNpemluZywgYnV0IHdoZW4gaXQgY29tZXMgdG8gZm9udCBzaXplLCB0aGV5IGNhbiBnZXQgY29tcGxpY2F0ZWQuIFRoYW5rZnVsbHksIHRoZXJlIGlzIGEgYmV0dGVyIG9wdGlvbiDigJQgcmVtcy48L3A+Cgo8aDMgaWQ9InVzaW5nLXJlbXMtZm9yLWZvbnQtc2l6ZSI+VXNpbmcgUmVtcyBmb3IgRm9udC1zaXplPC9oMz4KCjxwPldoZW4gdGhlIGJyb3dzZXIgcGFyc2VzIGFuIEhUTUwgZG9jdW1lbnQsIGl0IGNyZWF0ZXMgYSByZXByZXNlbnRhdGlvbiBpbiBtZW1vcnkgb2YgYWxsIHRoZSBlbGVtZW50cyBvbiB0aGUgcGFnZS4gVGhpcyByZXByZXNlbnRhdGlvbiBpcyBjYWxsZWQgPGVtPkRPTTwvZW0+IChEb2N1bWVudCBPYmplY3QgTW9kZWwpLiBJdOKAmXMgYSB0cmVlIHN0cnVjdHVyZSwgd2hlcmUgZWFjaCBlbGVtZW50IGlmIHJlcHJlc2VudGVkIGJ5IGEgbm9kZS4gVGhlIDxjb2RlIGNsYXNzPSJoaWdobGlnaHRlci1yb3VnZSI+PHNwYW4gY2xhc3M9Im50Ij4mbHQ7aHRtbCZndDs8L3NwYW4+PC9jb2RlPiBlbGVtZW50IGlzIHRoZSB0b3AtbGV2ZWwgKG9yIHJvb3QpIG5vZGUuIEJlbmVhdGggaXQgYXJlIGl0cyBjaGlsZCBub2RlcywgPGNvZGUgY2xhc3M9ImhpZ2hsaWdodGVyLXJvdWdlIj4mbHQ7aGVhZCZndDs8L2NvZGU+IGFuZCA8Y29kZSBjbGFzcz0iaGlnaGxpZ2h0ZXItcm91Z2UiPiZsdDtib2R5Jmd0OzwvY29kZT4uIEFuZCBiZW5lYXRoIHRob3NlIGFyZSB0aGVpciBjaGlsZHJlbiwgdGhlbiB0aGVpciBjaGlsZHJlbiwgYW5kIHNvIG9uLjwvcD4KCjxwPlRoZSByb290IG5vZGUgaXMgdGhlIGFuY2VzdG9yIG9mIGFsbCBvdGhlciBlbGVtZW50cyBpbiB0aGUgZG9jdW1lbnQuIEl0IGhhcyBhIHNwZWNpYWwgcHNldWRvLWNsYXNzIHNlbGVjdG9yICg8Y29kZSBjbGFzcz0iaGlnaGxpZ2h0ZXItcm91Z2UiPjpyb290PC9jb2RlPikgdGhhdCB5b3UgY2FuIHVzZSB0byB0YXJnZXQgaXQuIFRoaXMgaXMgZXF1aXZhbGVudCB0byB1c2luZyB0aGUgdHlwZSBzZWxlY3RvciA8Y29kZSBjbGFzcz0iaGlnaGxpZ2h0ZXItcm91Z2UiPmh0bWw8L2NvZGU+IHdpdGggdGhlIHNwZWNpZmljaXR5IG9mIGEgY2xhc3MgcmF0aGVyIHRoYW4gYSB0YWcuPC9wPgoKPHA+PGVtPlJlbTwvZW0+IGlzIHNob3J0IGZvciByb29tIGVtLiBJbnN0ZWFkIG9mIGJlaW5nIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IGVsZW1lbnQsIHJlbXMgYXJlIHJlbGF0aXZlIHRvIHRoZSByb290IGVsZW1lbnQuIE5vIG1hdHRlciB3aGVyZSB5b3UgYXBwbHkgaXQgaW4gdGhlIGRvY3VtZW50LCAxLjIgcmVtIGhhcyB0aGUgc2FtZSBjb21wdXRlZCB2YWx1ZTogMS4yIHRpbWVzIHRoZSBmb250IHNpemUgb2YgdGhlIHJvb3QgZWxlbWVudC48L3A+Cgo8ZGl2IGNsYXNzPSJsYW5ndWFnZS1jc3MgaGlnaGxpZ2h0ZXItcm91Z2UiPjxkaXYgY2xhc3M9ImhpZ2hsaWdodCI+PHByZSBjbGFzcz0iaGlnaGxpZ2h0Ij48Y29kZT48c3BhbiBjbGFzcz0ibmQiPjpyb290PC9zcGFuPiA8c3BhbiBjbGFzcz0icCI+ezwvc3Bhbj4KICA8c3BhbiBjbGFzcz0ibmwiPmZvbnQtc2l6ZTwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ojwvc3Bhbj4gPHNwYW4gY2xhc3M9Im0iPjFlbTwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ozwvc3Bhbj4gPHNwYW4gY2xhc3M9ImMiPi8qIHNldCB0byBicm93c2VyJ3MgZGVmYXVsdCBvZiAxNnB4ICovPC9zcGFuPgo8c3BhbiBjbGFzcz0icCI+fTwvc3Bhbj4KCjxzcGFuIGNsYXNzPSJudCI+dWw8L3NwYW4+IDxzcGFuIGNsYXNzPSJwIj57PC9zcGFuPgogIDxzcGFuIGNsYXNzPSJubCI+Zm9udC1zaXplPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj46PC9zcGFuPiA8c3BhbiBjbGFzcz0ibSI+LjhlbTwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ozwvc3Bhbj4gPHNwYW4gY2xhc3M9ImMiPi8qIGV2YWx1YXRlZCB0byBiZSAxMi44cHggKi88L3NwYW4+CjxzcGFuIGNsYXNzPSJwIj59PC9zcGFuPgo8L2NvZGU+PC9wcmU+PC9kaXY+PC9kaXY+Cgo8YmxvY2txdW90ZT4KICA8cD48c3Ryb25nPkFjY2Vzc2liaWxpdHk6IHVzZSByZWxhdGl2ZSB1bml0cyBmb3IgZm9udCBzaXplPC9zdHJvbmc+PC9wPgoKICA8cD5Tb21lIGJyb3dzZXJzIHByb3ZpZGUgdHdvIHdheXMgZm9yIHRoZSB1c2VyIHRvIGN1c3RvbWl6ZSB0aGUgc2l6ZSBvZiB0ZXh0OjwvcD4KCiAgPG9sPgogICAgPGxpPjxzdHJvbmc+Wm9vbTwvc3Ryb25nPi4gQnkgcHJlc3NpbmcgPGtiZD5jdHJsKzwva2JkPiBvciA8a2JkPmN0cmwtPC9rYmQ+LCB0aGUgdXNlciBjYW4gem9vbSB0aGUgcGFnZSB1cCBvciBkb3duLiBUaGlzIHZpc3VhbGx5IHNjYWxlcyBhbGwgZm9udHMgYW5kIGltYWdlcyBhbmQgZ2VuZXJhbGx5IG1ha2VzIGV2ZXJ0aGluZyBvbiB0aGUgcGFnZSBsYXJnZXIgb3Igc21hbGxlci4gSW4gbW9zdCBicm93c2VycywgdGhpcyBjaGFuZ2UgaXMgdGVtcG9yYXJ5IGFuZCBpcyBvbmx5IGFwcGxpZWQgdG8gdGhlIGN1cnJlbnQgdGFiLjwvbGk+CiAgICA8bGk+PHN0cm9uZz5TZXQgZGVmYXVsdCBmb250IHNpemU8L3N0cm9uZz4uIEluIGJyb3dzZXLigJlzIHNldHRpbmdzLCB5b3UgY2FuIHBlcm1hbmVudGx5IGNoYW5nZSB0aGUgZGVmYXVsdCBmb250IHNpemUgZm9yIHRleHQuIFRoZSBjYXRjaCBpcyB0aGF0IHRoaXMgc2V0dGluZyBkb2VzIG5vdCByZXNpemUgZm9udHMgZGVmaW5lZCB1c2luZyBwaXhlbHMgb3Igb3RoZXIgYWJzb2x1dGUgdW5pdHMuPC9saT4KICA8L29sPgo8L2Jsb2NrcXVvdGU+Cgo8cD5SZW1zIHNpbXBsaWZ5IGEgbG90IG9mIGNvbXBsZXhpdGllcyBpbnZvbHZlZCB3aXRoIGVtcy4gSW4gZmFjdCwgdGhleSBvZmZlciBhIGdvb2QgbWlkZGxlIGdyb3VuZCBiZXR3ZWVuIHBpeGVscyBhbmQgZW1zIGJ5IHByb3ZpZGluZyB0aGUgYmVuZWZpdHMgb2YgcmVsYXRpdmUgdW5pdHMsIGJ1dCBlYXNpZXIgdG8gd29yayB3aXRoLiBEb2VzIHRoaXMgbWVhbiB5b3Ugc2hvdWxkIHVzZSByZW1zIGV2ZXJ5d2hlcmUgYW5kIGFiYW5kb24gdGhlIG90aGVyIG9wdGlvbnM/PC9wPgoKPHA+SW4gQ1NTLCBhZ2FpbiwgdGhlIGFuc3dlciBpcyBvZnRlbiwg4oCcaXQgZGVwZW5kc+KAnS4gUmVtcyBhcmUgYnV0IG9uZSB0b29sIGluIHlvdXIgdG9vbCBib3guIEFuIGltcG9ydGFudCBwYXJ0IG9mIG1hc3RlcmluZyBDU1MgaXMgbGVhcm5pbmcgd2hlbiB0byB1c2Ugd2hpY2ggdG9vbC4gSXTigJlzIG5pY2UgdG8gdXNlIHJlbXMgZm9yIGZvbnQgc2l6ZXMsIHBpeGVscyBmb3IgYm9yZGVycywgYW5kIGVtcyBmb3IgbW9zdCBvdGhlciBtZWFzdXJlcywgZXNwZWNpYWxseSBwYWRkaW5ncywgbWFyZ2lucywgYW5kIGJvcmRlciByYWRpdXMuIFRoaXMgd2F5LCBmb250IHNpemVzIGFyZSBwcmVkaWN0YWJsZSwgYnV0IHlvdeKAmWxsIHN0aWxsIGdldCB0aGUgcG93ZXIgb2YgZW1zIHNjYWxpbmcgeW91ciBwYWRkaW5ncyBhbmQgbWFyZ2lucy4gUGl4Y2VscyBtYWtlIHNlbnNlIGZvciBib3JkZXJzLCBwYXJ0aWN1bGFybHkgd2hlbiB5b3Ugd2FudCBhIG5pY2UgZmluZSBsaW5lLjwvcD4KCjxoMiBpZD0ic3RvcC10aGlua2luZy1pbi1waXhlbHMiPlN0b3AgVGhpbmtpbmcgaW4gUGl4ZWxzPC9oMj4KCjxwPk9uZSBwYXR0ZXJuLCBvciByYXRoZXIsIGFudGlwYXJ0dGVybiwgdGhhdCBoYXMgYmVlbiBjb21tb24gZm9yIHRoZSBwYXN0IHNldmVyYWwgeWVhcnMgaXMgdG8gcmVzZXQgdGhlIGZvbnQgc2l6ZSBhdCB0aGUgcGFnZeKAmXMgcm9vdCB0byAuNjI1IGVtIG9yIDYyLjUlLiBUaGlzIHRha2VzIHRoZSBicm93c2Vy4oCZcyBkZWZhdWx0IHNpemUsIDE2IHB4LCBhbmQgc2NhbGVzIGl0IGRvd24gdG8gMTAgcHguIFRoaXMgcHJhY3Rpc2Ugc2ltcGxpZmllcyB0aGUgbWF0aC48L3A+Cgo8cD5Jbml0aWFsbHksIHRoaXMgbWF5IGJlIGNvbnZlbmllbnQsIGJ1dCB0aGVyZSBhcmUgdHdvIHByb2JsZW1zIHdpdGggdGhpcyBhcHByb2FjaC4gRmlyc3QsIGl0IGZvcmNlcyB5b3UgdG8gd3JpdGUgYSBsb3Qgb2YgZHVwbGljYXRlIHN0eWxlcy4gMTAgcHggaXMgdG9vIHNtYWxsIGZvciBtb3N0IHRleHQsIHNvIHlvdeKAmWxsIGhhdmUgdG8gb3ZlcnJpZGUgaXQgdGhyb3VnaG91dCB0aGUgcGFnZS4gVGhlIHNlY29uZCBwcm9ibGVtIGlzIHRoYXQgd2hlbiB5b3UgZG8gdGhpcywgeW914oCZcmUgc3RpbGwgdGhpbmtpbmcgaW4gcGl4ZWxzLiBZb3UgbWlnaHQgdHlwZSAxLjQgcmVtIGludG8geW91ciBDU1MsIGJ1dCBpbiB5b3VyIG1pbmQsIHlvdeKAmXJlIHN0aWxsIHRoaW5raW5nIOKAnDE0IHBpeGVsc+KAnS4gT24gYSByZXNwb25zaXZlIHdlYiwgeW91IHNob3VsZCBnZXQgY29tZm9ydGFibGUgd2l0aCDigJxmdXp6eeKAnSB2YWx1ZXMuIEl0IGRvZXNu4oCZdCBtYXR0ZXIgaG93IG1hbnkgcGl4ZWxzIDEuNSBlbSBldmFsdWF0ZXMgdG87IGFsbCB5b3UgbmVlZCB0byBrbm93IGlzIHRoYXQgaXTigJlzIGEgYml0IGJpZ2dlciB0aGFuIHRoZSBpbmhlcml0ZWQgZm9udCBzaXplLjwvcD4KCjxoMyBpZD0ic2V0dGluZy1hLXNhbmUtZGVmYXVsdC1mb250LXNpemUiPlNldHRpbmcgYSBTYW5lIERlZmF1bHQgRm9udCBTaXplPC9oMz4KCjxwPkxldOKAmXMgc2F5IHlvdSB3YW50IHlvdXIgZGVmYXVsdCBmb250IHNpemUgdG8gYmUgMTQgcHguIEluc3RlYWQgb2Ygc2V0dGluZyBhIDEwIHB4IGRlZmF1bHQgdGhlbiBvdmVycmlkaW5nIGl0IHRocm91Z2ggdGhlIHBhZ2UsIHNldCB0aGF0IHZhbHVlIGF0IHRoZSByb290LiBUaGUgZGVzaXJlZCB2YWx1ZSBkaXZpZGVkIGJ5IHRoZSBpbmhlcml0ZWQgdmFsdWUg4oCUIGluIHRoaXMgY2FzZSwgdGhlIGJyb3dzZXLigJlzIGRlZmF1bHQg4oCUICBpcyAxNC8xNiwgd2hpY2ggZXF1YWxzIDAuODc1OjwvcD4KCjxkaXYgY2xhc3M9Imxhbmd1YWdlLWNzcyBoaWdobGlnaHRlci1yb3VnZSI+PGRpdiBjbGFzcz0iaGlnaGxpZ2h0Ij48cHJlIGNsYXNzPSJoaWdobGlnaHQiPjxjb2RlPjxzcGFuIGNsYXNzPSJuZCI+OnJvb3Q8L3NwYW4+IDxzcGFuIGNsYXNzPSJwIj57PC9zcGFuPgogIDxzcGFuIGNsYXNzPSJubCI+Zm9udC1zaXplPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj46PC9zcGFuPiA8c3BhbiBjbGFzcz0ibSI+MC44NzVlbTwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ozwvc3Bhbj4KPHNwYW4gY2xhc3M9InAiPn08L3NwYW4+CjwvY29kZT48L3ByZT48L2Rpdj48L2Rpdj4KCjxwPk5vdyB5b3VyIGRlc2lyZWQgZm9udCBzaXplIGlzIGFwcGxpZWQgdG8gdGhlIHdob2xlIHBhZ2UuIFlvdSB3b27igJl0IG5lZWQgdG8gc3BlY2lmeSBpdCBlbHNld2hlcmUuIFlvdeKAmWxsIG9ubHkgbmVlZCB0byBjaGFuZ2UgaXQgaW4gcGxhY2VzIHdoZXJlIHRoZSBkZXNpZ24gZGV2aWF0ZXMgZnJvbSB0aGlzLCBzdWNoIGFzIGhlYWRpbmdzLjwvcD4KCjxoMyBpZD0ibWVkaWEtcXVlcnkiPk1lZGlhIFF1ZXJ5PC9oMz4KCjxwPkxldOKAmXMgbWFrZSB0aGlzIGEgYml0IGZ1cnRoZXIuIFlvdSBjYW4gdXNlIHNvbWUgPGVtPm1lZGlhIHF1ZXJpZXM8L2VtPiB0byBjaGFuZ2UgdGhlIGJhc2UgZm9udCBzaXplLCBkZXBlbmRpbmcgb24gdGhlIHNjcmVlbiBzaXplLjwvcD4KCjxibG9ja3F1b3RlPgogIDxwPjxlbT5tZWRpYSBxdWVyeTwvZW0+IOKAlCBBbiA8Y29kZSBjbGFzcz0iaGlnaGxpZ2h0ZXItcm91Z2UiPkBtZWRpYTwvY29kZT4gcnVsZSB1c2VkIHRvIHNwZWNpZnkgc3R5bGVzIHRoYXQgd2lsbCBiZSBhcHBsaWVkIG9ubHkgdG8gY2VydGFpbiBzY3JlZW4gc2l6ZSBvciBtZWRpYSB0eXBlcyAoPGVtPmUuZy48L2VtPiBwcmludCBvciBzY3JlZW4pLiBUaGlzIGlzIGEga2V5IGNvbXBvbmVudCBvZiByZXNwb25zaXZlIGRlc2lnbi48L3A+CjwvYmxvY2txdW90ZT4KCjxkaXYgY2xhc3M9Imxhbmd1YWdlLWNzcyBoaWdobGlnaHRlci1yb3VnZSI+PGRpdiBjbGFzcz0iaGlnaGxpZ2h0Ij48cHJlIGNsYXNzPSJoaWdobGlnaHQiPjxjb2RlPjxzcGFuIGNsYXNzPSJuZCI+OnJvb3Q8L3NwYW4+IDxzcGFuIGNsYXNzPSJwIj57PC9zcGFuPgogIDxzcGFuIGNsYXNzPSJubCI+Zm9udC1zaXplPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj46PC9zcGFuPiA8c3BhbiBjbGFzcz0ibSI+MC43NWVtPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPgo8c3BhbiBjbGFzcz0icCI+fTwvc3Bhbj4KCjxzcGFuIGNsYXNzPSJrIj5AbWVkaWE8L3NwYW4+IDxzcGFuIGNsYXNzPSJwIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJuIj5taW4td2lkdGg8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjo8L3NwYW4+IDxzcGFuIGNsYXNzPSJtIj44MDBweDwvc3Bhbj48c3BhbiBjbGFzcz0icCI+KTwvc3Bhbj4gPHNwYW4gY2xhc3M9InAiPns8L3NwYW4+IDxzcGFuIGNsYXNzPSJjIj4vKiBhcHBsaWVzIG9ubHkgdG8gc2NyZWVucyA4MDBweCBhbmQgd2lkZXIgKi88L3NwYW4+CiAgPHNwYW4gY2xhc3M9Im5kIj46cm9vdDwvc3Bhbj4gPHNwYW4gY2xhc3M9InAiPns8L3NwYW4+CiAgICA8c3BhbiBjbGFzcz0ibmwiPmZvbnQtc2l6ZTwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ojwvc3Bhbj4gPHNwYW4gY2xhc3M9Im0iPjAuODc1ZW08L3NwYW4+PHNwYW4gY2xhc3M9InAiPjs8L3NwYW4+CiAgPHNwYW4gY2xhc3M9InAiPn08L3NwYW4+CjxzcGFuIGNsYXNzPSJwIj59PC9zcGFuPgoKPHNwYW4gY2xhc3M9ImsiPkBtZWRpYTwvc3Bhbj4gPHNwYW4gY2xhc3M9InAiPig8L3NwYW4+PHNwYW4gY2xhc3M9Im4iPm1pbi13aWR0aDwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ojwvc3Bhbj4gPHNwYW4gY2xhc3M9Im0iPjEyMDBweDwvc3Bhbj48c3BhbiBjbGFzcz0icCI+KTwvc3Bhbj4gPHNwYW4gY2xhc3M9InAiPns8L3NwYW4+IDxzcGFuIGNsYXNzPSJjIj4vKiBhcHBsaWVzIG9ubHkgdG8gc2NyZWVucyAxMjAwcHggYW5kIHdpZGVyICovPC9zcGFuPgogIDxzcGFuIGNsYXNzPSJuZCI+OnJvb3Q8L3NwYW4+IDxzcGFuIGNsYXNzPSJwIj57PC9zcGFuPgogICAgPHNwYW4gY2xhc3M9Im5sIj5mb250LXNpemU8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjo8L3NwYW4+IDxzcGFuIGNsYXNzPSJtIj4xZW08L3NwYW4+PHNwYW4gY2xhc3M9InAiPjs8L3NwYW4+CiAgPHNwYW4gY2xhc3M9InAiPn08L3NwYW4+CjxzcGFuIGNsYXNzPSJwIj59PC9zcGFuPgo8L2NvZGU+PC9wcmU+PC9kaXY+PC9kaXY+Cgo8cD5JZiB5b3UgYXJlIGRpc2NpcGxpbmVkIGVub3VnaCB0byBzdHlsZSB5b3VyIGVudGlyZSBwYWdlIGluIHJlbGF0aXZlIHVuaXRzIGxpa2UgdGhpcywgdGhlIGVudGlyZSBwYWdlIHdpbGwgc2NhbGUgdXAgYW5kIGRvd24gYmFzZWQgb24gdGhlIHZpZXdwb3J0IHNpemUuPC9wPgoKPGgzIGlkPSJyZXNpemluZy1hLXNpbmdsZS1jb21wb25lbnQiPlJlc2l6aW5nIGEgU2luZ2xlIENvbXBvbmVudDwvaDM+Cgo8cD5Gb3IgZXhhbXBsZSwgeW91IGhhdmUgYSBwYW5lbCBhbmQgd2FudCBhIGxhcmdlciB2ZXJzaW9uOjwvcD4KCjxwPjxpbWcgc3JjPSJodHRwczovL2kubG9saS5uZXQvMjAxOS8wNi8yOC81ZDE1ODY1Yzc3NWI3NTkxODAucG5nIiBhbHQ9InBhbmVsLCBzaXplcyIgLz48L3A+Cgo8cD5Zb3UgY2FuIG9ubHkgYWRkIGEgPGNvZGUgY2xhc3M9ImhpZ2hsaWdodGVyLXJvdWdlIj5sYXJnZTwvY29kZT4gY2xhc3MgdG8gdGhlIHNlY29uZCBwYW5lbDogPGNvZGUgY2xhc3M9ImhpZ2hsaWdodGVyLXJvdWdlIj4mbHQ7ZGl2IGNsYXNzPSJwYW5lbCBsYXJnZSImZ3Q7PC9jb2RlPi48L3A+Cgo8ZGl2IGNsYXNzPSJsYW5ndWFnZS1jc3MgaGlnaGxpZ2h0ZXItcm91Z2UiPjxkaXYgY2xhc3M9ImhpZ2hsaWdodCI+PHByZSBjbGFzcz0iaGlnaGxpZ2h0Ij48Y29kZT48c3BhbiBjbGFzcz0ibmMiPi5wYW5lbDwvc3Bhbj4gPHNwYW4gY2xhc3M9InAiPns8L3NwYW4+CiAgPHNwYW4gY2xhc3M9Im5sIj5mb250LXNpemU8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjo8L3NwYW4+IDxzcGFuIGNsYXNzPSJtIj4xcmVtPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPgogIDxzcGFuIGNsYXNzPSJubCI+cGFkZGluZzwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ojwvc3Bhbj4gPHNwYW4gY2xhc3M9Im0iPjFlbTwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ozwvc3Bhbj4KICA8c3BhbiBjbGFzcz0ibmwiPmJvcmRlcjwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ojwvc3Bhbj4gPHNwYW4gY2xhc3M9Im0iPjFweDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5iIj5zb2xpZDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im0iPiM5OTk8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjs8L3NwYW4+CiAgPHNwYW4gY2xhc3M9Im5sIj5ib3JkZXItcmFkaXVzPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj46PC9zcGFuPiA8c3BhbiBjbGFzcz0ibSI+MC41ZW08L3NwYW4+PHNwYW4gY2xhc3M9InAiPjs8L3NwYW4+CjxzcGFuIGNsYXNzPSJwIj59PC9zcGFuPgoKPHNwYW4gY2xhc3M9Im5jIj4ucGFuZWw8L3NwYW4+IDxzcGFuIGNsYXNzPSJvIj4mZ3Q7PC9zcGFuPiA8c3BhbiBjbGFzcz0ibnQiPmgyPC9zcGFuPiA8c3BhbiBjbGFzcz0icCI+ezwvc3Bhbj4KICA8c3BhbiBjbGFzcz0ibmwiPm1hcmdpbi10b3A8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjo8L3NwYW4+IDxzcGFuIGNsYXNzPSJtIj4wPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPgogIDxzcGFuIGNsYXNzPSJubCI+Zm9udC1zaXplPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj46PC9zcGFuPiA8c3BhbiBjbGFzcz0ibSI+MC44ZW08L3NwYW4+PHNwYW4gY2xhc3M9InAiPjs8L3NwYW4+CiAgPHNwYW4gY2xhc3M9Im5sIj5mb250LXdlaWdodDwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ojwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5iIj5ib2xkPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPgogIDxzcGFuIGNsYXNzPSJubCI+dGV4dC10cmFuc2Zvcm08L3NwYW4+PHNwYW4gY2xhc3M9InAiPjo8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYiI+dXBwZXJjYXNlPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPgo8c3BhbiBjbGFzcz0icCI+fTwvc3Bhbj4KPC9jb2RlPjwvcHJlPjwvZGl2PjwvZGl2PgoKPHA+Rmlyc3QsIGFkZCB0aGUgZGVjbGFyYXRpb24gPGNvZGUgY2xhc3M9ImhpZ2hsaWdodGVyLXJvdWdlIj5mb250LXNpemU6IDFyZW08L2NvZGU+IHRvIHRoZSBwYXJlbnQgZWxlbWVudCBvZiBlYWNoIHBhbmVsLiBUaGlzIG1lYW5zIGVhY2ggcGFuZWwgd2lsbCBlc3RhYmxpc2ggYSBwcmVkaWN0YWJsZSBmb250IHNpemUgZm9yIGl0c2VsZiwgbm8gbWF0dGVyIHdoZXJlIGl04oCZcyBwbGFjZWQgb24gdGhlIHBhZ2UuIFNlY29uZCwgcmVkZWZpbmUgdGhlIGhlYWRpbmfigJlzIGZvbnQgc2l6ZSB1c2luZyBFbXMgcmF0aGVyIHRoYW4gcmVtcyB0byBtYWtlIGl0IHJlbGF0aXZlIHRvIHRoZSBwYXJlbnTigJlzIGZvbnQgc2l6ZSB0aGF0IGp1c3QgZXN0YWJsaXNoZWQuPC9wPgoKPHA+Rm9yIHRoZSBsYXJnZXIgdmVyc2lvbiBvZiB0aGUgcGFuZWwsIGFsbCB5b3UgaGF2ZSB0byBkbyBpcyBvdmVycmlkZSB0aGUgcGFyZW50IGVsZW1lbnTigJlzIDEgcmVtIHdpdGggYW5vdGhlciB2YWx1ZS4gQmVjYXVzZSBhbGwgdGhlIGNvbXBvbmVudOKAmXMgbWVhc3VyZW1lbnRzIGFyZSByZWxhdGl2ZSB0byB0aGlzLCBvdmVycmlkaW5nIGl0IHdpbGwgcmVzaXplIHRoZSBlbnRpcmUgcGFuZWw6PC9wPgoKPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtY3NzIGhpZ2hsaWdodGVyLXJvdWdlIj48ZGl2IGNsYXNzPSJoaWdobGlnaHQiPjxwcmUgY2xhc3M9ImhpZ2hsaWdodCI+PGNvZGU+PHNwYW4gY2xhc3M9Im5jIj4ucGFuZWwubGFyZ2U8L3NwYW4+IDxzcGFuIGNsYXNzPSJwIj57PC9zcGFuPgogIDxzcGFuIGNsYXNzPSJubCI+Zm9udC1zaXplPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj46PC9zcGFuPiA8c3BhbiBjbGFzcz0ibSI+MS4ycmVtPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPgo8c3BhbiBjbGFzcz0icCI+fTwvc3Bhbj4KPC9jb2RlPjwvcHJlPjwvZGl2PjwvZGl2PgoKPGgyIGlkPSJ2aWV3cG9ydC1yZWxhdGl2ZS11bml0cyI+Vmlld3BvcnQtcmVsYXRpdmUgVW5pdHM8L2gyPgoKPHA+VGhlcmUgYXJlIGFsc28gPGVtPnZpZXdwb3J0LXJlbGF0aXZlIHVuaXRzPC9lbT4gZm9yIGRlZmluaW5nIGxlbmd0aHMgcmVsYXRpdmUgdG8gdGhlIGJyb3dzZXLigJlzIHZpZXdwb3J0LjwvcD4KCjxibG9ja3F1b3RlPgogIDxwPjxlbT52aWV3cG9ydDwvZW0+IOKAlCBUaGUgZnJhbWVkIGFyZWEgaW4gdGhlIGJyb3dzZXIgd2luZG93IHdoZXJlIHRoZSB3ZWIgcGFnZSBpcyB2aXNpYmxlLiBUaGlzIGV4Y2x1ZGVzIHRoZSBicm93c2Vy4oCZcyBhZGRyZXNzIGJhciwgdG9vbGJhcnMsIGFuZCBzdGF0dXMgYmFyLCBpZiBwcmVzZW50LjwvcD4KPC9ibG9ja3F1b3RlPgoKPHVsPgogIDxsaT48ZW0+dmg8L2VtPiDigJQgMS8xMDAgb2YgdGhlIHZpZXdwb3J0IGhlaWdodDwvbGk+CiAgPGxpPjxlbT52dzwvZW0+IOKAlCAxLzEwMCBvZiB0aGUgdmlld3BvcnQgd2lkdGg8L2xpPgogIDxsaT48ZW0+dm1pbjwvZW0+IOKAlCAxLzEwMCBvZiB0aGUgc21hbGxlciBkaW1lbnNpb24sIGhlaWdodCBvciB3aWR0aDwvbGk+CiAgPGxpPjxlbT52bWF4PC9lbT4g4oCUIDEvMTAwIG9mIHRoZSBsYXJnZXIgZGltZW5zaW9uLCBoZWlnaHQgb3Igd2lkdGg8L2xpPgo8L3VsPgoKPHA+VGhlIHZpZXdwb3J0LXJlbGF0aXZlIGxlbmd0aHMgYXJlIGdyZWF0IGZvciB0aGluZ3MgbGlrZSBtYWtpbmcgYSBsYXJnZSBoZXJvIGltYWdlIGZpbGwgdGhlIHNjcmVlbi4gWW91IGNhbiBwbGFjZSBhbiBpbWFnZSBpbnNpZGUgYSBsb25nIGNvbnRhaW5lciwgYnV0IHNldHRpbmcgdGhlIGltYWdlIGhlaWdodCB0byAxMDAgdmgsIG1ha2VzIGl0IGV4YWN0bHkgdGhlIGhlaWdodCBvZiB0aGUgdmlld3BvcnQuPC9wPgoKPGgzIGlkPSJ1c2luZy12dy1mb3ItZm9udC1zaXplIj5Vc2luZyB2dyBmb3IgRm9udCBTaXplPC9oMz4KCjxwPkNvbnNpZGVyIHdoYXQgd291bGQgaGFwcGVuIGlmIHlvdSBhcHBsaWVkIDxjb2RlIGNsYXNzPSJoaWdobGlnaHRlci1yb3VnZSI+Zm9udC1zaXplOiAydnc8L2NvZGU+IHRvIGFuIGVsZW1lbnQuIE9uIGEgZGVza3RvcCBtb25pdG9yIGF0IDEsMjAwIHB4LCB0aGlzIGV2YWx1YXRlcyB0byAyNCBweCAoMiUgb2YgMSwyMDApLiBPbiBhIHRhYmxldCB3aXRoIGEgc2NyZWVuIHdpZHRoIG9mIDc2OCBweCwgaXQgZXZhbHVhdGVzIHRvIGFib3V0IDE1IHB4ICgyJSBvZiA3NjgpLiBVbmZvcnR1bmF0ZWx5LCBpdCBzY2FsZXMgYWxsIHRoZSB3YXkgZG93biB0byA3LjUgcHggb24gYW4gaVBob25lIDYuPC9wPgoKPGgzIGlkPSJ1c2luZy1jYWxjLWZvci1mb250LXNpemUiPlVzaW5nIGNhbGMoKSBmb3IgRm9udCBTaXplPC9oMz4KCjxwPlRoZSA8Y29kZSBjbGFzcz0iaGlnaGxpZ2h0ZXItcm91Z2UiPmNhbGMoKTwvY29kZT4gZnVuY3Rpb24gbGV0cyB5b3UgZG8gYmFzaWMgYXJpdGhtZXRpYyB3aXRoIHR3byBvciBtb3JlIHZhbHVlcy4gVGhpcyBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciBjb21iaW5pbmcgdmFsdWVzIHRoYXQgYXJlIG1lYXN1cmVkIGluIGRpZmZlcmVudCB1bml0cy4gVGhpcyBmdW5jdGlvbiBzdXBwb3J0cyBhZGRpdGlvbiAoKyksIHN1YnRyYWN0aW9uICgtKSwgbXVsdGlwbGljYXRpb24gKCopIGFuZCBkaXZpc2lvbiAoLykuIFRoZSBhZGRpdGlvbiBhbmQgc3VidHJhY3Rpb24gb3BlcmF0b3JzIG11c3QgYmUgc3Vycm91bmRlZCBieSB3aGl0ZXNwYWNlLCBmb3IgZXhhbXBsZSwgPGNvZGUgY2xhc3M9ImhpZ2hsaWdodGVyLXJvdWdlIj5jYWxjKDFlbSArIDEwcHgpPC9jb2RlPi48L3A+Cgo8cD5Vc2UgPGNvZGUgY2xhc3M9ImhpZ2hsaWdodGVyLXJvdWdlIj5jYWxjKCk8L2NvZGU+IHRvIGNvbWJpbmUgZW1zIHdpdGggdncgdW5pdHMsIGFzOjwvcD4KCjxkaXYgY2xhc3M9Imxhbmd1YWdlLWNzcyBoaWdobGlnaHRlci1yb3VnZSI+PGRpdiBjbGFzcz0iaGlnaGxpZ2h0Ij48cHJlIGNsYXNzPSJoaWdobGlnaHQiPjxjb2RlPjxzcGFuIGNsYXNzPSJuZCI+OnJvb3Q8L3NwYW4+IDxzcGFuIGNsYXNzPSJwIj57PC9zcGFuPgogIDxzcGFuIGNsYXNzPSJubCI+Zm9udC1zaXplPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj46PC9zcGFuPiA8c3BhbiBjbGFzcz0ibiI+Y2FsYzwvc3Bhbj48c3BhbiBjbGFzcz0icCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0ibSI+MC41ZW08L3NwYW4+IDxzcGFuIGNsYXNzPSJlcnIiPis8L3NwYW4+IDxzcGFuIGNsYXNzPSJtIj4xdnc8L3NwYW4+PHNwYW4gY2xhc3M9InAiPik7PC9zcGFuPgo8c3BhbiBjbGFzcz0icCI+fTwvc3Bhbj4KPC9jb2RlPjwvcHJlPjwvZGl2PjwvZGl2PgoKPHA+VGhlIDAuNSBlbSBoZXJlIG9wZXJhdGVzIGFzIGEgc29ydCBvZiBtaW5pbXVtIGZvbnQgc2l6ZSwgYW5kIHRoZSAxIHZ3IGFkZHMgYSByZXBzb25zaXZlIHNjYWxhci4gVGhpc+KAmWxsIGdpdmUgeW91IGEgYmFzZSBmb250IHNpemUgdGhhdCBzY2FsZXMgZnJvbSAxMS43NSBweCBvbiBhbiBpUGhvbmUgNiB1cCB0byAyMCBweCBpbiBhIDEsMjAwIHB4IGJyb3dzZXIgd2luZG93LiBJdCBzaG91bGQgYXV0b21hdGljYWxseSByZXNpemUgdGhlIGZvbnQgc2l6ZSB3aGVuIHlvdSByZXNpemUgdGhlIGJyb3dzZXIgd2luZG93LCBob3dldmVyLCBJIGZvdW5kIGl0IHdhcyBub3Qgd29ya2luZyBvbiBTYWZhcmkgKFZlcnNpb24gMTIuMS4xICgxNDYwNy4yLjYuMS4xKSksIHlvdSBoYXZlIHRvIHJlZnJlc2ggdGhlIHBhZ2UgdG8gYWRqdXN0IHRoZSBmb250IHNpemUuPC9wPgoKPGgyIGlkPSJ1bml0bGVzcy1udW1iZXJzLWFuZC1saW5lLWhlaWdodCI+VW5pdGxlc3MgTnVtYmVycyBhbmQgTGluZS1oZWlnaHQ8L2gyPgoKPHA+U29tZSBwcm9wZXJ0aWVzIGFsbG93IGZvciA8ZW0+dW5pdGxlc3M8L2VtPiB2YWx1ZXMuIFByb3BlcnRpZXMgdGhhdCBzdXBwb3J0IHRoaXMgaW5jbHVkZSA8Y29kZSBjbGFzcz0iaGlnaGxpZ2h0ZXItcm91Z2UiPmxpbmUtaGVpZ2h0PC9jb2RlPiwgPGNvZGUgY2xhc3M9ImhpZ2hsaWdodGVyLXJvdWdlIj56LWluZGV4PC9jb2RlPiwgYW5kIDxjb2RlIGNsYXNzPSJoaWdobGlnaHRlci1yb3VnZSI+Zm9udC13ZWlnaHQ8L2NvZGU+ICg3MDAgaXMgZXF1aXZhbGVudCB0byBib2xkOyA0MDAgaXMgZXF1aXZhbGVudCB0byBub3JtYWwsIGFuZCBzbyBvbikuIFlvdSBjYW4gYWxzbyB1c2UgdGhlIHVuaXRsZXNzIHZhbHVlIDxjb2RlIGNsYXNzPSJoaWdobGlnaHRlci1yb3VnZSI+MDwvY29kZT4gYW55d2hlcmUgYSBsZW5ndGggdW5pdCAoc3VjaCBhcyBweCwgZW0sIG9yIHJlbSkgaXMgcmVxdWlyZWQgYmVjYXVzZSwgaW4gdGhlc2UgY2FzZXMsIHRoZSB1bml0IGRvZXMgbm90IG1hdHRlci48L3A+Cgo8YmxvY2txdW90ZT4KICA8cD5BIHVuaXRsZXNzIDxjb2RlIGNsYXNzPSJoaWdobGlnaHRlci1yb3VnZSI+MDwvY29kZT4gY2FuIG9ubHkgYmUgdXNlZCBmb3IgPGVtPmxlbmd0aDwvZW0+IHZhbHVlcyBhbmQgcGVyY2VudGFnZXMsIHN1Y2ggYXMgaW4gcGFkZGluZ3MsIGJvcmRlcnMsIGFuZCB3aWR0aHMuIEl0IGNhbuKAmXQgYmUgdXNlZCBmb3IgYW5ndWxhciB2YWx1ZXMsIHN1Y2ggYXMgZGVncmVlcyBvciB0aW1lLWJhc2VkIHZhbHVlcyBsaWtlIHNlY29uZHMuPC9wPgo8L2Jsb2NrcXVvdGU+Cgo8cD5UaGUgPGNvZGUgY2xhc3M9ImhpZ2hsaWdodGVyLXJvdWdlIj5saW5lLWhlaWdodDwvY29kZT4gcHJvcGVydHkgaXMgdW51c3VhbCBpbiB0aGF0IGl0IGFjY2VwdHMgYm90aCB1bml0cyBhbmQgdW5pdGxlc3MgdmFsdWVzLiBZb3Ugc2hvdWxkIHR5cGljYWxseSB1c2UgdW5pdGxlc3MgbnVtYmVycyBiZWNhdXNlIHRoZXnigJlyZSBpbmhlcml0ZWQgZGlmZmVyZW50bHkuPC9wPgoKPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtY3NzIGhpZ2hsaWdodGVyLXJvdWdlIj48ZGl2IGNsYXNzPSJoaWdobGlnaHQiPjxwcmUgY2xhc3M9ImhpZ2hsaWdodCI+PGNvZGU+PHNwYW4gY2xhc3M9Im50Ij5ib2R5PC9zcGFuPiA8c3BhbiBjbGFzcz0icCI+ezwvc3Bhbj4KICA8c3BhbiBjbGFzcz0ibmwiPmxpbmUtaGVpZ2h0PC9zcGFuPjxzcGFuIGNsYXNzPSJwIj46PC9zcGFuPiA8c3BhbiBjbGFzcz0ibSI+MS4yPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPgo8c3BhbiBjbGFzcz0icCI+fTwvc3Bhbj4KCjxzcGFuIGNsYXNzPSJuYyI+LmVsZW1lbnQ8L3NwYW4+IDxzcGFuIGNsYXNzPSJwIj57PC9zcGFuPgogIDxzcGFuIGNsYXNzPSJubCI+Zm9udC1zaXplPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj46PC9zcGFuPiA8c3BhbiBjbGFzcz0ibSI+MmVtPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPgo8c3BhbiBjbGFzcz0icCI+fTwvc3Bhbj4KPC9jb2RlPjwvcHJlPjwvZGl2PjwvZGl2PgoKPHA+VGhlIDxjb2RlIGNsYXNzPSJoaWdobGlnaHRlci1yb3VnZSI+LmVsZW1lbnQ8L2NvZGU+IGluaGVyaXRzIGEgbGluZSBoZWlnaHQgb2YgMS4yLiBCZWNhdXNlIHRoZSBmb250IHNpemUgaXMgMzIgcHggKDxzcGFuIGNsYXNzPSJrYXRleCI+PHNwYW4gY2xhc3M9ImthdGV4LW1hdGhtbCI+PG1hdGggeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwiPjxzZW1hbnRpY3M+PG1yb3c+PG1uPjI8L21uPjxtdGV4dD4mI3hhMDs8L210ZXh0PjxtaT5lPC9taT48bWk+bTwvbWk+PG1vPiYjeGQ3OzwvbW8+PG1uPjE2PC9tbj48bXRleHQ+JiN4YTA7PC9tdGV4dD48bWk+cDwvbWk+PG1pPng8L21pPjwvbXJvdz48YW5ub3RhdGlvbiBlbmNvZGluZz0iYXBwbGljYXRpb24veC10ZXgiPjJcIGVtXHRpbWVzMTZcIHB4PC9hbm5vdGF0aW9uPjwvc2VtYW50aWNzPjwvbWF0aD48L3NwYW4+PHNwYW4gY2xhc3M9ImthdGV4LWh0bWwiIGFyaWEtaGlkZGVuPSJ0cnVlIj48c3BhbiBjbGFzcz0iYmFzZSI+PHNwYW4gY2xhc3M9InN0cnV0IiBzdHlsZT0iaGVpZ2h0OjAuNzI3NzdlbTt2ZXJ0aWNhbC1hbGlnbjotMC4wODMzM2VtOyI+PC9zcGFuPjxzcGFuIGNsYXNzPSJtb3JkIj4yPC9zcGFuPjxzcGFuIGNsYXNzPSJtc3BhY2UiPiYjeGEwOzwvc3Bhbj48c3BhbiBjbGFzcz0ibW9yZCBtYXRoZGVmYXVsdCI+ZTwvc3Bhbj48c3BhbiBjbGFzcz0ibW9yZCBtYXRoZGVmYXVsdCI+bTwvc3Bhbj48c3BhbiBjbGFzcz0ibXNwYWNlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OjAuMjIyMjIyMjIyMjIyMjIyMmVtOyI+PC9zcGFuPjxzcGFuIGNsYXNzPSJtYmluIj4mI3hkNzs8L3NwYW4+PHNwYW4gY2xhc3M9Im1zcGFjZSIgc3R5bGU9Im1hcmdpbi1yaWdodDowLjIyMjIyMjIyMjIyMjIyMjJlbTsiPjwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9ImJhc2UiPjxzcGFuIGNsYXNzPSJzdHJ1dCIgc3R5bGU9ImhlaWdodDowLjgzODg4MDAwMDAwMDAwMDFlbTt2ZXJ0aWNhbC1hbGlnbjotMC4xOTQ0NGVtOyI+PC9zcGFuPjxzcGFuIGNsYXNzPSJtb3JkIj4xPC9zcGFuPjxzcGFuIGNsYXNzPSJtb3JkIj42PC9zcGFuPjxzcGFuIGNsYXNzPSJtc3BhY2UiPiYjeGEwOzwvc3Bhbj48c3BhbiBjbGFzcz0ibW9yZCBtYXRoZGVmYXVsdCI+cDwvc3Bhbj48c3BhbiBjbGFzcz0ibW9yZCBtYXRoZGVmYXVsdCI+eDwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvc3Bhbj4pLCB0aGUgbGluZSBoZWlnaHQgaXMgY2FsY3VsYXRlZCBsb2NhbGx5IHRvIDM4LjQgcHggKDxzcGFuIGNsYXNzPSJrYXRleCI+PHNwYW4gY2xhc3M9ImthdGV4LW1hdGhtbCI+PG1hdGggeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwiPjxzZW1hbnRpY3M+PG1yb3c+PG1uPjMyPC9tbj48bXRleHQ+JiN4YTA7PC9tdGV4dD48bWk+cDwvbWk+PG1pPng8L21pPjxtbz4mI3hkNzs8L21vPjxtbj4xLjI8L21uPjwvbXJvdz48YW5ub3RhdGlvbiBlbmNvZGluZz0iYXBwbGljYXRpb24veC10ZXgiPjMyXCBweFx0aW1lcyAxLjI8L2Fubm90YXRpb24+PC9zZW1hbnRpY3M+PC9tYXRoPjwvc3Bhbj48c3BhbiBjbGFzcz0ia2F0ZXgtaHRtbCIgYXJpYS1oaWRkZW49InRydWUiPjxzcGFuIGNsYXNzPSJiYXNlIj48c3BhbiBjbGFzcz0ic3RydXQiIHN0eWxlPSJoZWlnaHQ6MC44Mzg4ODAwMDAwMDAwMDAxZW07dmVydGljYWwtYWxpZ246LTAuMTk0NDRlbTsiPjwvc3Bhbj48c3BhbiBjbGFzcz0ibW9yZCI+Mzwvc3Bhbj48c3BhbiBjbGFzcz0ibW9yZCI+Mjwvc3Bhbj48c3BhbiBjbGFzcz0ibXNwYWNlIj4mI3hhMDs8L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQgbWF0aGRlZmF1bHQiPnA8L3NwYW4+PHNwYW4gY2xhc3M9Im1vcmQgbWF0aGRlZmF1bHQiPng8L3NwYW4+PHNwYW4gY2xhc3M9Im1zcGFjZSIgc3R5bGU9Im1hcmdpbi1yaWdodDowLjIyMjIyMjIyMjIyMjIyMjJlbTsiPjwvc3Bhbj48c3BhbiBjbGFzcz0ibWJpbiI+JiN4ZDc7PC9zcGFuPjxzcGFuIGNsYXNzPSJtc3BhY2UiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6MC4yMjIyMjIyMjIyMjIyMjIyZW07Ij48L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJiYXNlIj48c3BhbiBjbGFzcz0ic3RydXQiIHN0eWxlPSJoZWlnaHQ6MC42NDQ0NGVtO3ZlcnRpY2FsLWFsaWduOjBlbTsiPjwvc3Bhbj48c3BhbiBjbGFzcz0ibW9yZCI+MTwvc3Bhbj48c3BhbiBjbGFzcz0ibW9yZCI+Ljwvc3Bhbj48c3BhbiBjbGFzcz0ibW9yZCI+Mjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvc3Bhbj4pLiBUaGlzIHdpbGwgbGVhdmUgYW4gYXBwcm9wcmlhdGUgYW1vdW50IG9mIHNwYWNlIGJldHdlZW4gbGluZXMgb2YgdGV4dC48L3A+Cgo8cD5XaGVuIGFuIGVsZW1lbnQgaGFzIGEgdmFsdWUgZGVmaW5lZCB1c2luZyBhIDxlbT5sZW5ndGg8L2VtPiAocHgsIGVtLCByZW0sIGFuZCBzbyBmb3J0aCksIGl0cyBjb21wdXRlZCB2YWx1ZSBpcyBpbmhlcml0ZWQgYnkgY2hpbGQgZWxlbWVudHMuIFdoZW4gdW5pdHMgc3VjaCBhcyBlbXMgYXJlIHNwZWNpZmllZCBmb3IgYSBsaW5lIGhlaWdodCwgdGhlaXIgdmFsdWUgaXMgY2FsY3VsYXRlZCwgYW5kIHRoYXQgY2FsY3VsYXRlZCB2YWx1ZSBpcyBwYXNzZWQgZG93biB0byBhbnkgaW5oZXJpdGluZyBjaGlsZHJlbi48L3A+Cgo8YmxvY2txdW90ZT4KICA8cD48ZW0+bGVuZ3RoPC9lbT4g4oCUIFRoZSBmb3JtYWwgbmFtZSBmb3IgYSBDU1MgdmFsdWUgdGhhdCBkZW5vdGVzIGEgZGlzdGFuY2UgbWVhc3VyZW1lbnQuIEl04oCZcyBhIG51bWJlciBmb2xsb3dlZCBieSBhIHVuaXQsIHN1Y2ggYXMgNSBweC4gTGVuZ3RoIGNvbWVzIGluIHR3byBmbGF2b3JzOiBhYnNvbHV0ZSBhbmQgcmVsYXRpdmUuIFBlcmNlbnRhZ2VzIGFyZSBzaW1pbGFyIHRvIGxlbmd0aHMsIGJ1dCBzdHJpY3RseSBzcGVha2luZywgdGhleeKAmXJlIDxzdHJvbmc+Tk9UPC9zdHJvbmc+IGNvbnNpZGVyZWQgbGVuZ3Rocy48L3A+CjwvYmxvY2txdW90ZT4KCjxwPldoZW4geW91IHVzZSBhIHVuaXRsZXNzIG51bWJlciwgdGhhdCBkZWNsYXJlZCB2YWx1ZSBpcyBpbmhlcml0ZWQsIG1lYW5pbmcgaXRzIGNvbXB1dGVkIHZhbHVlIGlzIHJlY2FsY3VsYXRlZCBmb3IgZWFjaCBpbmhlcml0aW5nIGNoaWxkIGVsZW1lbnQuIFRoaXMgd2lsbCBhbG1vc3QgYWx3YXlzIGJlIHRoZSByZXN1bHQgeW91IHdhbnQuPC9wPgoKPGgyIGlkPSJjdXN0b20tcHJvcGVydGllcy1ha2EtY3NzLXZhcmlhYmxlcyI+Q3VzdG9tIFByb3BlcnRpZXMgKDxlbT5ha2EuPC9lbT4gQ1NTIFZhcmlhYmxlcyk8L2gyPgoKPHA+SW4gMjAxNSwgYSBsb25nLWF3YWl0ZWQgQ1NTIHNwZWNpZmljYXRpb24gdGl0bGVkIDxlbT5DdXN0b20gUHJvcGVydGllcyBmb3IgQ2FzY2FkaW5nIFZhcmlhYmxlczwvZW0+IHdhcyBwdWJsaXNoZWQgYXMgYSBDYW5kaWF0ZSBSZWNvbW1lbmRhdGlvbi4gVGhpcyBzcGVjaWZpY2F0aW9uIGludHJvZHVjZWQgdGhlIGNvbmNlcHQgb2YgdmFyaWFibGVzIHRvIHRoZSBsYW5ndWFnZSwgd2hpY2ggZW5hYmxlZCBhIG5ldyBsZXZlbCBvZiBkeW5hbWljLCBjb250ZXh0LWJhc2VkIHN0eWxlcy4gWW91IGNhbiBkZWNsYXJlIGEgdmFyaWFibGUgYW5kIGFzc2lnbiBpdCBhIHZhbHVlOyB0aGVuIHlvdSBjYW4gcmVmZXJlbmNlIHRoaXMgdmFsdWUgdGhyb3VnaG91dCB5b3VyIHN0eWxlc2hlZXQuIFlvdSBjYW4gdXNlIHRoaXMgdG8gcmVkdWNlIHJlcGV0aXRpb24gaW4geW91ciBzdHlsZXNoZWV0LCBhcyB3ZWxsIGFzIHNvbWUgb3RoZXIgYmVuZWZpY2lhbCBhcHBsaWNhdGlvbnMuPC9wPgoKPHA+QXQgcHJlc2VudCwgc3VwcG9ydCBmb3IgY3VzdG9tIHByb3BlcnRpZXMgaGFzIHJvbGxlZCBvdXQgaW4gYWxsIG1ham9yIGJyb3dzZXJzIGV4Y2VwdCBJRSwgY2hlY2sgPGEgaHJlZj0iaHR0cHM6Ly9jYW5pdXNlLmNvbS8jZmVhdD1jc3MtdmFyaWFibGVzIj5odHRwczovL2Nhbml1c2UuY29tLyNmZWF0PWNzcy12YXJpYWJsZXM8L2E+IGZvciB1cC10by1kYXRlIHN1cHBvcnQgaW5mb3JtYXRpb24uPC9wPgoKPGJsb2NrcXVvdGU+CiAgPHA+SWYgeW91IGhhcHBlbiB0byB1c2UgYSBDU1MgcHJlcHJvY2Vzc29yIHRoYXQgc3VwcG9ydHMgaXRzIG93biB2YXJpYWJsZXMsIHN1Y2ggYXMgU2FzcyBvciBMZXNzLCB5b3UgbWF5IGJlIHRlbXB0ZWQgdG8gZGlzcmVnYXJkIENTUyB2YXJpYWJsZXMuIEhvd2V2ZXIsIHRoZSBuZXcgQ1NTIHZhcmlhYmxlcyBhcmUgZGlmZmVyZW50IGluIG5hdHVyZSBhbmQgYXJlIGZhciBtb3JlIHZlcnN0aWxlIHRoYW4gYW55dGhpbmcgYSBwcmVwcm9jZXNzb3IgY2FuIGFjY29tcGxpc2guPC9wPgo8L2Jsb2NrcXVvdGU+Cgo8cD5UbyBkZWZpbmUgYSBjdXN0b20gcHJvcGVydHksIHlvdSBkZWNsYXJlIGl0IG11Y2ggbGlrZSBhbnkgb3RoZXIgQ1NTIHByb3BlcnR5OjwvcD4KCjxkaXYgY2xhc3M9Imxhbmd1YWdlLWNzcyBoaWdobGlnaHRlci1yb3VnZSI+PGRpdiBjbGFzcz0iaGlnaGxpZ2h0Ij48cHJlIGNsYXNzPSJoaWdobGlnaHQiPjxjb2RlPjxzcGFuIGNsYXNzPSJuZCI+OnJvb3Q8L3NwYW4+IDxzcGFuIGNsYXNzPSJwIj57PC9zcGFuPgogIDxzcGFuIGNsYXNzPSJweSI+LS1tYWluLWZvbnQ8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjo8L3NwYW4+IDxzcGFuIGNsYXNzPSJuIj5IZWx2ZXRpY2E8L3NwYW4+PHNwYW4gY2xhc3M9InAiPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJuIj5BcmlhbDwvc3Bhbj48c3BhbiBjbGFzcz0icCI+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5iIj5zYW5zLXNlcmlmPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPgo8c3BhbiBjbGFzcz0icCI+fTwvc3Bhbj4KPC9jb2RlPjwvcHJlPjwvZGl2PjwvZGl2PgoKPHA+VGhlIG5hbWUgbXVzdCBiZWdpbiB3aXRoIHR3byBoeXBoZW5zICg8Y29kZSBjbGFzcz0iaGlnaGxpZ2h0ZXItcm91Z2UiPi0tPC9jb2RlPikgdG8gZGlzdGluZ3Vpc2ggaXQgZnJvbSBDU1MgcHJvcGVydGllcywgZm9sbG93ZWQgYnkgd2hhdGV2ZXIgbmFtZSB5b3XigJlkIGxpa2UgdG8gdXNlLiBCeSBpdHNlbGYsIHRoaXMgdmFyaWFibGUgZGVjbGFyYXRpb24gZG9lc27igJl0IGRvIGFueXRoaW5nIHVudGlsIHdlIHVzZSBpdC48L3A+Cgo8cD5BIGZ1bmN0aW9uIDxjb2RlIGNsYXNzPSJoaWdobGlnaHRlci1yb3VnZSI+dmFyKCk8L2NvZGU+IGFsbG93cyB0aGUgdXNlIG9mIHZhcmlhYmxlcy48L3A+Cgo8ZGl2IGNsYXNzPSJsYW5ndWFnZS1jc3MgaGlnaGxpZ2h0ZXItcm91Z2UiPjxkaXYgY2xhc3M9ImhpZ2hsaWdodCI+PHByZSBjbGFzcz0iaGlnaGxpZ2h0Ij48Y29kZT48c3BhbiBjbGFzcz0ibnQiPnA8L3NwYW4+IDxzcGFuIGNsYXNzPSJwIj57PC9zcGFuPgogIDxzcGFuIGNsYXNzPSJubCI+Zm9udC1mYW1pbHk8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjo8L3NwYW4+IDxzcGFuIGNsYXNzPSJuIj52YXI8L3NwYW4+PHNwYW4gY2xhc3M9InAiPig8L3NwYW4+PHNwYW4gY2xhc3M9Im4iPi0tbWFpbi1mb250PC9zcGFuPjxzcGFuIGNsYXNzPSJwIj4pOzwvc3Bhbj4KPHNwYW4gY2xhc3M9InAiPn08L3NwYW4+CjwvY29kZT48L3ByZT48L2Rpdj48L2Rpdj4KCjxwPlRoZSA8Y29kZSBjbGFzcz0iaGlnaGxpZ2h0ZXItcm91Z2UiPnZhcigpPC9jb2RlPiBmdW5jdGlvbiBhY2NlcHRzIGEgc2Vjb25kIHBhcmFtZXRlciwgd2hpY2ggc3BlY2lmaWVzIGEgZmFsbGJhY2sgdmFsdWUuIElmIHRoZSB2YXJpYWJsZSBzcGVjaWZpZWQgaW4gdGhlIGZpcnN0IHBhcmFtZXRlciBpcyBub3QgZGVmaW5lZCwgdGhlbiB0aGUgc2Vjb25kIHZhbHVlIGlzIHVzZWQuIElmIGEgPGNvZGUgY2xhc3M9ImhpZ2hsaWdodGVyLXJvdWdlIj52YXIoKTwvY29kZT4gZnVuY3Rpb24gZXZhbHVhdGVzIHRvIGFuIGludmFsaWQgdmFsdWUsIHRoZSBwcm9wZXJ0eSB3aWxsIGJlIHNldCB0byBpdHMgaW5pdGlhbCB2YWx1ZS48L3A+Cgo8aDMgaWQ9ImNoYW5naW5nLWN1c3RvbS1wcm9wZXJ0aWVzLWR5bmFtaWNhbGx5Ij5DaGFuZ2luZyBDdXN0b20gUHJvcGVydGllcyBEeW5hbWljYWxseTwvaDM+Cgo8cD5Zb3UgY2FuIGRlZmluZSB0aGUgc2FtZSB2YXJpYWJsZSBpbnNpZGUgbXVsdGlwbGUgc2VsZWN0b3JzLCBhbmQgdGhlIHZhcmlhYmxlIHdpbGwgaGF2ZSBhIGRpZmZlcmVudCB2YWx1ZSBmb3IgdmFyaW91cyBwYXJ0cyBvZiB0aGUgcGFnZS48L3A+Cgo8cD5Gb3IgZXhhbXBsZSwgeW91IGNhbiBkZWZpbmUgYSB2YXJpYWJsZSBhcyBibGFjaywgYW5kIHRoZW4gcmVkZWZpbmUgaXQgYXMgd2hpdGUgaW5zaWRlIGEgcGFydGljdWxhciBjb250YWluZXIuIFRoZW4sIGFueSBzdHlsZXMgYmFzZWQgb24gdGhhdCB2YXJpYWJsZSB3aWxsIGR5bmFtaWNhbGx5IHJlc29sdmUgdG8gYmxhY2sgaWYgdGhleSBhcmUgb3V0c2lkZSB0aGUgY29udGFpbmVyIGFuZCB0byB3aGl0ZSBpZiBpbnNpZGUuPC9wPgoKPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtY3NzIGhpZ2hsaWdodGVyLXJvdWdlIj48ZGl2IGNsYXNzPSJoaWdobGlnaHQiPjxwcmUgY2xhc3M9ImhpZ2hsaWdodCI+PGNvZGU+PHNwYW4gY2xhc3M9Im5kIj46cm9vdDwvc3Bhbj4gPHNwYW4gY2xhc3M9InAiPns8L3NwYW4+CiAgPHNwYW4gY2xhc3M9InB5Ij4tLW1haW4tYmc8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjo8L3NwYW4+IDxzcGFuIGNsYXNzPSJtIj4jZmZmPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPgogIDxzcGFuIGNsYXNzPSJweSI+LS1tYWluLWNvbG9yPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj46PC9zcGFuPiA8c3BhbiBjbGFzcz0ibSI+IzAwMDwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ozwvc3Bhbj4KPHNwYW4gY2xhc3M9InAiPn08L3NwYW4+Cgo8c3BhbiBjbGFzcz0ibmMiPi5wYW5lbDwvc3Bhbj4gPHNwYW4gY2xhc3M9InAiPns8L3NwYW4+CiAgPHNwYW4gY2xhc3M9Im5sIj5iYWNrZ3JvdW5kLWNvbG9yPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj46PC9zcGFuPiA8c3BhbiBjbGFzcz0ibiI+dmFyPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJuIj4tLW1haW4tYmc8L3NwYW4+PHNwYW4gY2xhc3M9InAiPik7PC9zcGFuPgogIDxzcGFuIGNsYXNzPSJubCI+Y29sb3I8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjo8L3NwYW4+IDxzcGFuIGNsYXNzPSJuIj52YXI8L3NwYW4+PHNwYW4gY2xhc3M9InAiPig8L3NwYW4+PHNwYW4gY2xhc3M9Im4iPi0tbWFpbi1jb2xvcjwvc3Bhbj48c3BhbiBjbGFzcz0icCI+KTs8L3NwYW4+CjxzcGFuIGNsYXNzPSJwIj59PC9zcGFuPgoKPHNwYW4gY2xhc3M9Im5jIj4uZGFyazwvc3Bhbj4gPHNwYW4gY2xhc3M9InAiPns8L3NwYW4+CiAgPHNwYW4gY2xhc3M9InB5Ij4tLW1haW4tYmc8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjo8L3NwYW4+IDxzcGFuIGNsYXNzPSJtIj4jMzMzPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPgogIDxzcGFuIGNsYXNzPSJweSI+LS1tYWluLWNvbG9yPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj46PC9zcGFuPiA8c3BhbiBjbGFzcz0ibSI+I2ZmZjwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ozwvc3Bhbj4KPHNwYW4gY2xhc3M9InAiPn08L3NwYW4+CjwvY29kZT48L3ByZT48L2Rpdj48L2Rpdj4KCjxwPkZvciBjb250ZXh0cyBsaWtlOjwvcD4KCjxkaXYgY2xhc3M9Imxhbmd1YWdlLWh0bWwgaGlnaGxpZ2h0ZXItcm91Z2UiPjxkaXYgY2xhc3M9ImhpZ2hsaWdodCI+PHByZSBjbGFzcz0iaGlnaGxpZ2h0Ij48Y29kZT48c3BhbiBjbGFzcz0ibnQiPiZsdDtkaXY8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYSI+Y2xhc3M9PC9zcGFuPjxzcGFuIGNsYXNzPSJzIj4icGFuZWwiPC9zcGFuPjxzcGFuIGNsYXNzPSJudCI+Jmd0Ozwvc3Bhbj4KICAuLi4KPHNwYW4gY2xhc3M9Im50Ij4mbHQ7L2RpdiZndDs8L3NwYW4+Cgo8c3BhbiBjbGFzcz0ibnQiPiZsdDtkaXY8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYSI+Y2xhc3M9PC9zcGFuPjxzcGFuIGNsYXNzPSJzIj4iZGFyayI8L3NwYW4+PHNwYW4gY2xhc3M9Im50Ij4mZ3Q7PC9zcGFuPgogIDxzcGFuIGNsYXNzPSJudCI+Jmx0O2Rpdjwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5hIj5jbGFzcz08L3NwYW4+PHNwYW4gY2xhc3M9InMiPiJwYW5lbCI8L3NwYW4+PHNwYW4gY2xhc3M9Im50Ij4mZ3Q7PC9zcGFuPgogICAgLi4uCiAgPHNwYW4gY2xhc3M9Im50Ij4mbHQ7L2RpdiZndDs8L3NwYW4+CjxzcGFuIGNsYXNzPSJudCI+Jmx0Oy9kaXYmZ3Q7PC9zcGFuPgo8L2NvZGU+PC9wcmU+PC9kaXY+PC9kaXY+Cgo8cD5UaGUgc2Vjb25kIDxjb2RlIGNsYXNzPSJoaWdobGlnaHRlci1yb3VnZSI+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+Cgo8cD5CZSBhd2FyZSB0aGF0IGFueSBkZWNsYXJhdGlvbiB1c2luZyA8Y29kZSBjbGFzcz0iaGlnaGxpZ2h0ZXItcm91Z2UiPnZhcigpPC9jb2RlPiB3aWxsIGJlIGlnbm9yZWQgYnkgb2xkIGJyb3dzZXJzIHRoYXQgZG9u4oCZdCB1bmRlcnN0YW5kIGl0LiBQcm92aWRlIGEgZmFsbGJhY2sgYmVoYXZpb3IgZm9yIHRob3NlIGJyb3dzZXJzIHdoZW4gcG9zc2libGUuPC9wPgoKPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtY3NzIGhpZ2hsaWdodGVyLXJvdWdlIj48ZGl2IGNsYXNzPSJoaWdobGlnaHQiPjxwcmUgY2xhc3M9ImhpZ2hsaWdodCI+PGNvZGU+PHNwYW4gY2xhc3M9Im50Ij5jb2xvcjwvc3Bhbj48c3BhbiBjbGFzcz0ibyI+Ojwvc3Bhbj4gPHNwYW4gY2xhc3M9Im50Ij5ibGFjazwvc3Bhbj48c3BhbiBjbGFzcz0ibyI+Ozwvc3Bhbj4KPHNwYW4gY2xhc3M9Im50Ij5jb2xvcjwvc3Bhbj48c3BhbiBjbGFzcz0ibyI+Ojwvc3Bhbj4gPHNwYW4gY2xhc3M9Im50Ij52YXI8L3NwYW4+PHNwYW4gY2xhc3M9Im8iPig8L3NwYW4+PHNwYW4gY2xhc3M9Im50Ij4tLW1haW4tY29sb3I8L3NwYW4+PHNwYW4gY2xhc3M9Im8iPik7PC9zcGFuPgo8L2NvZGU+PC9wcmU+PC9kaXY+PC9kaXY+Cgo=
                        

林宏

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?