Show All / Browse Obituaries. At Broadway Colonial Funeral Home, you can count on the compassionate, quality care your loved one deserves, along with a unique memorial that will live on in the memories of those left behind. In fact, you may already know the Colonial Funeral Home staff and their families from church or from a community group or charity organization.While many funeral homes have family names, quite a few are actually operated by large corporations, with headquarters in another state. View upcoming funeral services, obituaries, and funeral flowers for Colonial Funeral Home in Universal City, Texas. Our team members directly participate in the Victoria Professional Express Network, an affiliate of the American Business Women's Association. At the Colonial Family of Funeral Homes, our staff works diligently to serve you and ensure you and your family have the best experience possible during a solemn occasion. View Recent Obituaries for Colonial Funeral Home. In a time of sorrow, it’s good to know your neighbors are here to help.~ Colonial Funeral Home Staff. Please feel free to contact us at any time with any questions or concerns regarding funeral, cremation, or monument information at (417) 532-6161 or toll free at 1-800-232-1957. … Or come visit anytime, at our state of the art location 1001 N. Lynn Street, Lebanon, Missouri. We welcome you to Shadel's Colonial … Funeral Home website by, Join our obituary notification email list. He graduated from Immaculate HS and attended the Technical Careers Institute. Our directors are familiar with all military documentation and can give you a complete understanding of which veterans qualifications are required for the type of service you desire. They went out of their way to make sure all our needs and expectations were fulfilled, they made us all so comfortable. In 2012, Broadway Colonial Funeral Home as it marked 100 years in business under continuous family ownership. Dimmitt, TX 79027 806-647-4444. Our staff of dedicated professionals is available to assist you in making funeral service arrangements. Colonial Funerals did an outstanding job with my father in law’s funeral. Search the Obituaries. We are your local, family owned funeral home in Madison and Sandy Ridge, North Carolina. Michael & his staff at the Colonial Funeral Home assisted and basically took care of everything for us. All Obituaries - Colonial Funeral Home & Crematory offers a variety of funeral services, from traditional funerals to competitively priced cremations, serving Phenix City, AL and the surrounding communities. We also offer funeral pre-planning and carry a wide selection of caskets, vaults, urns and burial containers. We also offer funeral pre-planning and carry a wide selection of caskets, vaults, urns and burial containers. if (popup.hasClass("base64")) The Centers for Disease Control and Prevention (CDC) website is a great place to start.VISIT SITE, Our funeral home is family owned and that means something important. They provided great care and wonderful patience to our family from beginning to end. We are also involved in the Lions Club of Victoria. 302 8th Avenue Southwest; P.O. Colonial Funeral Home is dedicated to serving all military branches of service, whether it be burial in a national cemetery, cremation or burial at sea. We will do everything in our power to make your experience meaningful and memorable, and each family is treated the way we would want our families to be treated. Heggie's Colonial Funeral Home | Funeral & Cremation Services for Toppenish, WA - Residents St. Clair, MI 48079 (810) 329-4222 [email protected] www.lcfandson.com. Colonial Funeral Home & Chapel, Inc. in Madison & Sandy Ridge, NC provides funeral, memorial, aftercare, pre-planning, and cremation services to our community and the surrounding areas. All Obituaries - Colonial Funeral Home offers a variety of funeral services, from traditional funerals to competitively priced cremations, serving Pocatello, ID and the surrounding communities. Join our mailing list [email protected] 1512 10TH ST ; ORANGE, Texas 77630 (409) 883-9833; 409-883-9845 Our Obituaries (Displaying - … He was born in NY, spent time as a child in California, but lived most of his life in Danbury, CT. }); Not Colonial. Colonial Funeral Home & ChapelPhone: (336) 427-0205127 Ellisboro Road, Madison, NC, Colonial Funeral Home Stokes ChapelPhone: (336) 871-32001020 Hope Beasley Road, Sandy Ridge, NC, © Colonial Funeral Home & ChapelCrafted with care by Frazer Consultants and TA, $(function () { Please call 708-532-5400 for further information. Our family will help your family celebrate the life of your loved one. Colonial Chapel Funeral Home & Crematory has been dedicated to serving the community for more than 43 years. Colonial Funeral Home team members take an active role in our community. Russell Colonial Funeral Home is in St. Clair, Missouri. We will help you plan a celebration of your loved one that reflects their own wishes. Our thoughts and prayers are with everyone who has been affected by this virus. Colonial Forastiere Funeral & Cremation 4621 Bree Road . Katherine Ann Sohn nee Farmer Born: 09/08/1942 Died: 01-11-2021. Box 654; Magee, MS 39111 (601) 849-5031 (601)849-2031; Join our mailing list [email protected] You can unsubscribe at any time. We provide individualized funeral services designed to meet the needs of each family. We provide individualized funeral services designed to meet the needs of each family. It means that the people you trust in your time of need are your neighbors and they live right in the Rockingham and Stokes County area. From casket choices to funeral flowers, we will guide you through all aspects of the funeral service. Colonial Chapel Funeral Home & Crematory obituaries listing. Young Colonial Chapel Funeral Home. Privacy Policy & Terms of Use. 809 Butler Blvd. Peter and his staff were phenomenal; professional, caring and considerate. Family owned and operated by Robert & Darlene Mrachek, Colonial Funeral Home provides comfort to families in their time of need. Our difference is in the details. Obituaries for Colonial Funeral Home, McHenry IL The boundaries which divide Life from Death are at best shadowy and vague. We provide individualized funeral services designed to meet the needs of each family. That means we’re involved in the community, we know the people, and we know the local customs and traditions. Colonial, Van Hise Callagan, Weatherhead Young Laurelton Memorial & Cremation Service of Ocean © 2021 Colonial Funeral Home. } Search. Search obituaries… CALL NOW Chicago (773) 774-0366 Niles (847) 581-0536 Toggle navigation During this COVID-19 pandemic, we are continuing to do so and are taking extra measures to ensure the safety of the families we care for. The National Funeral Directors Association also is giving us further information about how we can prevent the spread of this virus in our community.We encourage you stay informed about this virus and how to stay safe. From casket choices to funeral flowers, we will guide you through all aspects of the funeral service. { Ellie Joseph Pruiett Born: 12/16/1953 Died: 01-10-2021. var id = $(this).attr('class'); Recognizing that each family is unique, our staff provides personalized assistance to create a meaningful service that … Welcome to Colonial Chapel - Mims Mitchell Funeral Homes. We invite you to contact us with your questions, 24 hours a day, 7 days a week. It means that the people you trust in your time of need are your neighbors and they live right in the Rockingham and Stokes County area. Your browser may not work with certain site. L.C. View Recent Obituaries for Colonial Funeral Home of Leesburg. Colonial-Wojciechowski Funeral Homes provides funeral, memorial, personalization, aftercare, pre-planning and cremation services in Niles & Chicago, IL. We serve the Sullivan, Ulster, and Orange County areas (and beyond) from five convenient locations: Monticello, Liberty, Woodbourne, Livingston Manor, and Kauneonga Lake. Enter your email below to receive a grief support message from us each day for a year. 214 Trumbull . 606 West Airport Freeway; Irving, TX 75062 (972) 579-1313; Join our mailing list [email protected] The professional staff at Colonial Funeral Home is committed to providing dignified, respectful and compassionate assistance to every family. Fresh flowers delivered from a local florist, PGRpdj4NCiAgICA8aDE+RnJhemVyIENvbnN1bHRhbnRzIFByaXZhY3kgUG9saWN5PC9oMT4NCiAgICA8cD4mbmJzcDs8L3A+DQogICAgPGRpdj4NCiAgICAgICAgPGRpdj4NCiAgICAgICAgICAgIDxkaXY+DQogICAgICAgICAgICAgICAgPGRpdj4NCiAgICAgICAgICAgICAgICAgICAgPHA+TGFzdCBVcGRhdGVkOiAwOS8wNC8yMDIwPC9wPg0KICAgICAgICAgICAgICAgICAgICA8cD5GcmF6ZXIgQ29uc3VsdGFudHMsIExMQyAoIkZyYXplciwiICJ3ZSwiICJ1cywiICJvdXIiKSBpcyBjb21taXR0ZWQgdG8gcHJvdGVjdGluZyB5b3VyIHBlcnNvbmFsIGluZm9ybWF0aW9uLiBUaGlzIFByaXZhY3kgTm90aWNlIGRlc2NyaWJlcyB0aGUgcGVyc29uYWwgaW5mb3JtYXRpb24gdGhhdCB3ZSBjb2xsZWN0IGFib3V0IHlvdSwgaG93IHdlIHVzZSBhbmQgZGlzY2xvc2UgdGhpcyBpbmZvcm1hdGlvbiwgYW5kIHRoZSBzdGVwcyB3ZSB0YWtlIHRvIHByb3RlY3QgdGhpcyBpbmZvcm1hdGlvbi4gRm9yIHB1cnBvc2VzIG9mIHRoaXMgUHJpdmFjeSBOb3RpY2UsICJwZXJzb25hbCBpbmZvcm1hdGlvbiIgbWVhbnMgYW55IGluZm9ybWF0aW9uIHRoYXQgcmVsYXRlcyB0byB5b3UgYXMgYW4gaW5kaXZpZHVhbCBhbmQgY291bGQgcmVhc29uYWJseSBiZSB1c2VkIHRvIGlkZW50aWZ5IHlvdS4gVGhpcyBQcml2YWN5IE5vdGljZSBhcHBsaWVzIHRvIG91ciBjb2xsZWN0aW9uIGFuZCB1c2Ugb2YgcGVyc29uYWwgaW5mb3JtYXRpb24gdGhyb3VnaCB0aGlzIHdlYnNpdGUgYW5kIGFueSByZWxhdGVkIHdlYnNpdGVzLCBhcHBsaWNhdGlvbnMsIHRvb2xzLCBvciBwbGF0Zm9ybXMgKHRoZSAiU2VydmljZXMiKSwgYXMgd2VsbCBhcyB0aHJvdWdoIGFueSBvdGhlciBtZWFucyB3aGVyZSBhIGxpbmsgb3IgcmVmZXJlbmNlIHRvIHRoaXMgUHJpdmFjeSBOb3RpY2UgaXMgcHJvdmlkZWQgYXQgdGhlIHRpbWUgb2YgY29sbGVjdGlvbi48L3A+DQogICAgICAgICAgICAgICAgICAgIDxwPiZuYnNwOzwvcD4NCiAgICAgICAgICAgICAgICAgICAgPGgyPk91ciBTZXJ2aWNlczwvaDI+DQogICAgICAgICAgICAgICAgICAgIDxwPiZuYnNwOzwvcD4NCiAgICAgICAgICAgICAgICAgICAgPHA+RnJhemVyJ3MgcHJpbWFyeSBidXNpbmVzcyBpcyBhcyBhIHNvZnR3YXJlLWFzLWEtc2VydmljZSBwcm92aWRlciBvZiBmdW5lcmFsIHRlY2hub2xvZ3kgc2VydmljZXMsIGluY2x1ZGluZyB3ZWJzaXRlLCBwYXltZW50IHByb2Nlc3NpbmcsIGluc3VyYW5jZSwgc2VhcmNoIGVuZ2luZSBvcHRpbWl6YXRpb24sIG1hcmtldGluZyBhbmQgZWNvbW1lcmNlIHNlcnZpY2VzLCB0byBmdW5lcmFsIGhvbWVzIGFuZCBvdGhlciBmdW5lcmFsIHByb2Zlc3Npb25hbHMgKG91ciAiQ2xpZW50cyIpLiBJbiBjb25uZWN0aW9uIHdpdGggdGhpcyBmYWNldCBvZiBGcmF6ZXIncyBidXNpbmVzcywgRnJhemVyIGNvbGxlY3RzIGFuZCBzdG9yZXMgcGVyc29uYWwgaW5mb3JtYXRpb24gcmVnYXJkaW5nIGluZGl2aWR1YWxzIHdobyB2aXNpdCBhbmQgdXRpbGl6ZSBjZXJ0YWluIGZ1bmN0aW9ucyBvciBmZWF0dXJlcyBvZiBvdXIgQ2xpZW50cycgd2Vic2l0ZXMgKCJFbmQgVXNlcnMiKS4gVGhpcyBQcml2YWN5IE5vdGljZSBhcHBsaWVzIHRvIEZyYXplcidzIGNvbGxlY3Rpb24gYW5kIHVzZSBvZiBDbGllbnQgYW5kIEVuZCBVc2VyIHBlcnNvbmFsIGluZm9ybWF0aW9uIGJ1dCBub3QgdG8gb3VyIENsaWVudHMgdXNlIG9mIHN1Y2ggcGVyc29uYWwgaW5mb3JtYXRpb24uPC9wPg0KICAgICAgICAgICAgICAgICAgICA8cD5GcmF6ZXIgYWxzbyBtYWludGFpbnMgYW4gb25saW5lIHByZXNlbmNlLCBpbmNsdWRpbmcgYW4gZWNvbW1lcmNlIHN0b3JlLCB0aGUgVHJpYnV0ZSBTdG9yZSwgb2ZmZXJpbmcgY2VydGFpbiBmdW5lcmFsIHBhcmFwaGVybmFsaWEgYW5kIHJlbGF0ZWQgcHJvZHVjdHMsIGFuZCBhIHdlYiByZXBvc2l0b3J5LCB0aGUgVHJpYnV0ZSBBcmNoaXZlLCBjb250YWluaW5nIG9iaXR1YXJpZXMsIGEgbGlzdGluZyBvZiBmdW5lcmFsIGhvbWVzLCBhbmQgb3RoZXIgZnVuZXJhbC1yZWxhdGVkIGNvbnRlbnQgaW4gY29ubmVjdGlvbiB3aXRoIHdoaWNoIHBlcnNvbmFsIGluZm9ybWF0aW9uIG1heSBiZSBjb2xsZWN0ZWQgZnJvbSBpbmRpdmlkdWFscyAoIlRyaWJ1dGUgVXNlcnMiKS4gVGhpcyBQcml2YWN5IE5vdGljZSBhbHNvIGFwcGxpZXMgdG8gRnJhemVyJ3MgY29sbGVjdGlvbiBhbmQgdXNlIG9mIHBlcnNvbmFsIGluZm9ybWF0aW9uIGZyb20gVHJpYnV0ZSBVc2VycyBhbmQgb3RoZXIgaW5kaXZpZHVhbHMgd2hvIGludGVyYWN0IGRpcmVjdGx5IHdpdGggRnJhemVyLjwvcD4NCiAgICAgICAgICAgICAgICAgICAgPHA+Jm5ic3A7PC9wPg0KICAgICAgICAgICAgICAgICAgICA8aDI+UGVyc29uYWwgSW5mb3JtYXRpb24gV2UgQ29sbGVjdDwvaDI+DQogICAgICAgICAgICAgICAgICAgIDxwPiZuYnNwOzwvcD4NCiAgICAgICAgICAgICAgICAgICAgPHA+V2hlbiB5b3UgYWNjZXNzIG9yIHVzZSB0aGUgU2VydmljZXMgb3Igb3RoZXJ3aXNlIGludGVyYWN0IHdpdGggdXMsIHdoZXRoZXIgYXMgYSBDbGllbnQsIEVuZCBVc2VyLCBUcmlidXRlIFVzZXIgb3Igb3RoZXIgaW5kaXZpZHVhbCwgd2UgbWF5IGNvbGxlY3QgY2VydGFpbiBjYXRlZ29yaWVzIG9mIHBlcnNvbmFsIGluZm9ybWF0aW9uIGFib3V0IHlvdSBmcm9tIGEgdmFyaWV0eSBvZiBzb3VyY2VzLjwvcD4NCiAgICAgICAgICAgICAgICAgICAgPHA+Q2F0ZWdvcmllcyBvZiBwZXJzb25hbCBpbmZvcm1hdGlvbiB0aGF0IHdlIG1heSBjb2xsZWN0IGZyb20geW91IGRpcmVjdGx5IGluY2x1ZGU6PC9wPg0KICAgICAgICAgICAgICAgICAgICA8dWw+DQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+Q29udGFjdCBpbmZvcm1hdGlvbiAoZm9yIGV4YW1wbGUsIG5hbWUsIHBob25lIG51bWJlciwgbWFpbGluZyBhZGRyZXNzLCBlbWFpbCBhZGRyZXNzKTwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+UGF5bWVudC1yZWxhdGVkIGRldGFpbHMgKGZvciBleGFtcGxlLCBiaWxsaW5nIGFkZHJlc3MgYW5kIG90aGVyIGNyZWRpdCBjYXJkIGRldGFpbHMpPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5BY2NvdW50IGluZm9ybWF0aW9uIChmb3IgZXhhbXBsZSwgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGFuZCB0cmFuc2FjdGlvbiBoaXN0b3J5KTwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+Q29tbXVuaWNhdGlvbnMgKGZvciBleGFtcGxlLCBzdWJtaXR0ZWQgcXVlc3Rpb25zIG9yIG90aGVyIHBvc3RzIGFuZCBtYXJrZXRpbmcgcHJlZmVyZW5jZXMpPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5SZWNydWl0bWVudCBkYXRhIChmb3IgZXhhbXBsZSwgcmVzdW1lcyBhbmQgb3RoZXIgZGV0YWlscyByZWdhcmRpbmcgYW4gYXBwbGljYW50J3MgcXVhbGlmaWNhdGlvbnMpPC9saT4NCiAgICAgICAgICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICAgICAgICAgICAgPHA+Q2F0ZWdvcmllcyBvZiBwZXJzb25hbCBpbmZvcm1hdGlvbiB0aGF0IHdlIG1heSBjb2xsZWN0IGF1dG9tYXRpY2FsbHkgd2hlbiB5b3UgdXNlIHRoZSBTZXJ2aWNlcyBpbmNsdWRlOjwvcD4NCiAgICAgICAgICAgICAgICAgICAgPHVsPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlRlY2huaWNhbCBpbmZvcm1hdGlvbiAoZm9yIGV4YW1wbGUsIGJyb3dzZXIgdHlwZSwgSVAgYWRkcmVzcywgY29va2llcywgYW5kIG9wZXJhdGluZyBzeXN0ZW0pPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5Vc2FnZSBpbmZvcm1hdGlvbiAoZm9yIGV4YW1wbGUsIHBhZ2VzIHZpc2l0ZWQsIHNlYXJjaCB0ZXJtcyBlbnRlcmVkLCBhbmQgZnJlcXVlbmN5IG9mIHZpc2l0cyk8L2xpPg0KICAgICAgICAgICAgICAgICAgICA8L3VsPg0KICAgICAgICAgICAgICAgICAgICA8cD5DYXRlZ29yaWVzIG9mIHBlcnNvbmFsIGluZm9ybWF0aW9uIHRoYXQgd2UgbWF5IGNvbGxlY3QgZnJvbSBvdGhlciBzb3VyY2VzLCBpbmNsdWRpbmcgZnJvbSBvdXIgQ2xpZW50cyBpbiBjb25uZWN0aW9uIHdpdGggdGhlaXIgdXNlIG9mIHRoZSBTZXJ2aWNlcywgaW5jbHVkZTo8L3A+DQogICAgICAgICAgICAgICAgICAgIDx1bD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5FbmQgVXNlciBjb250YWN0IGluZm9ybWF0aW9uIChmb3IgZXhhbXBsZSwgbmFtZSwgcGhvbmUgbnVtYmVyLCBtYWlsaW5nIGFkZHJlc3MsIGVtYWlsIGFkZHJlc3MpPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5FbmQgVXNlciBwYXltZW50LXJlbGF0ZWQgZGV0YWlscyAoZm9yIGV4YW1wbGUsIGJpbGxpbmcgYWRkcmVzcyBhbmQgb3RoZXIgY3JlZGl0IGNhcmQgZGV0YWlscyk8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkVuZCBVc2VyIGZ1bmVyYWwgY29udHJpYnV0aW9ucywgaW5jbHVkaW5nIHRyaWJ1dGUgdmlkZW8gZGF0YSwgZGF0YSBlbnRlcmVkIGluIGZ1bmVyYWwgcmVnaXN0ZXIgYm9va3MsIG9iaXR1YXJpZXMgYW5kIHBvc3RzIGFuZCBjb21tZW50czwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+RW5kIFVzZXIgZnVuZXJhbCBhZG1pbmlzdHJhdGlvbiBkYXRhLCBpbmNsdWRpbmcgbGlmZSBpbnN1cmFuY2UgY2xhaW0gZm9ybXMgYW5kIGFmZmlkYXZpdHMgdG8gZW5zdXJlIGRpc3BlcnNhbCBvZiBmdW5kcyB0byBjb3ZlciBmdW5lcmFsIGNvc3RzIGFuZCBkYXRhIHJlcXVpcmVkIHRvIGZpbGUgZGVhdGggY2VydGlmaWNhdGVzPC9saT4NCiAgICAgICAgICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICAgICAgICAgICAgPHA+RmluYWxseSwgd2UgbWF5IGNvbGxlY3QgcGVyc29uYWwgaW5mb3JtYXRpb24gcHVyc3VhbnQgdG8gYSBsZWdhbCBvciBjb250cmFjdHVhbCByZXF1aXJlbWVudCwgYW5kIGZhaWx1cmUgdG8gcHJvdmlkZSBzdWNoIGluZm9ybWF0aW9uIG1heSBpbXBhY3Qgb3VyIGFiaWxpdHkgdG8gZnVsZmlsbCBvdXIgb2JsaWdhdGlvbnMuPC9wPg0KICAgICAgICAgICAgICAgICAgICA8cD4mbmJzcDs8L3A+DQogICAgICAgICAgICAgICAgICAgIDxoMj5Ib3cgV2UgVXNlIFlvdXIgUGVyc29uYWwgSW5mb3JtYXRpb248L2gyPg0KICAgICAgICAgICAgICAgICAgICA8cD4mbmJzcDs8L3A+DQogICAgICAgICAgICAgICAgICAgIDxwPldlIG1heSB1c2UgdGhlIHBlcnNvbmFsIGluZm9ybWF0aW9uIHdlIGNvbGxlY3QgZm9yIHRoZSBmb2xsb3dpbmcgcHVycG9zZXM6PC9wPg0KICAgICAgICAgICAgICAgICAgICA8dWw+DQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+UHJvdmlkZSBhbmQgaW1wcm92ZSB0aGUgU2VydmljZXMuPC9iPiBXZSBtYXkgdXNlIHlvdXIgcGVyc29uYWwgaW5mb3JtYXRpb24gdG8gcHJvdmlkZSBhbmQgaW1wcm92ZSB0aGUgU2VydmljZXMsIGluY2x1ZGluZyB0byBmdWxmaWxsIHlvdXIgb3JkZXJzIGFuZCByZXF1ZXN0cyBhbmQgdG8gcG9zdCB5b3VyIGNvbW1lbnRzIGFuZCBvdGhlciBmdW5lcmFsIGNvbnRyaWJ1dGlvbnMuIFdlIG1heSBhbHNvIHVzZSB5b3VyIHBlcnNvbmFsIGluZm9ybWF0aW9uIGZvciB0aGUgYWRtaW5pc3RyYXRpb24gb2Ygb3VyIGJ1c2luZXNzLCBmb3IgYnVzaW5lc3MgZGV2ZWxvcG1lbnQgcHVycG9zZXMsIGFuZCB0byBmdWxmaWxsIG91ciBjb250cmFjdHVhbCBvYmxpZ2F0aW9ucy48L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPlJpc2sgbWl0aWdhdGlvbiBhbmQgc2VjdXJpdHkuPC9iPiBXZSBtYXkgdXNlIHlvdXIgcGVyc29uYWwgaW5mb3JtYXRpb24gZm9yIHJpc2sgbWl0aWdhdGlvbiBhbmQgc2VjdXJpdHkgcHVycG9zZXMsIGluY2x1ZGluZyB0byBtYWludGFpbiB0aGUgcHJpdmFjeSBhbmQgc2VjdXJpdHkgb2Ygb3VyIGRhdGEsIHRvIGNvbmR1Y3QgaW50ZXJuYWwgYXVkaXRzIG9yIGludmVzdGlnYXRpb25zLCBmb3IgZGF0YSBzZWN1cml0eSB0ZXN0aW5nIGFuZCBidXNpbmVzcyBjb250aW51aXR5IHBsYW5uaW5nIHB1cnBvc2VzLCBhbmQgdG8gZW5zdXJlIHRoZSBzYWZldHkgYW5kIHNlY3VyaXR5IG9mIG91ciBDbGllbnRzLCBzdGFmZiBhbmQgYXNzZXRzLjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+Q29tbXVuaWNhdGlvbiBhbmQgbWFya2V0aW5nLjwvYj4gV2UgbWF5IHVzZSB5b3VyIHBlcnNvbmFsIGluZm9ybWF0aW9uIHRvIGNvbW11bmljYXRlIHdpdGggeW91IGFib3V0IHRoZSBTZXJ2aWNlcywgcmVzcG9uZCB0byB5b3VyIHF1ZXN0aW9ucywgb3Igb2ZmZXIgeW91IGFkZGl0aW9uYWwgcHJvZHVjdHMgb3Igc2VydmljZXMuPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5Db21wbHkgd2l0aCB0aGUgbGF3IGFuZCBleGVyY2lzZSBvdXIgcmlnaHRzLjwvYj4gV2UgbWF5IHVzZSB5b3VyIHBlcnNvbmFsIGluZm9ybWF0aW9uIGFzIHJlYXNvbmFibHkgbmVjZXNzYXJ5IHRvIGFzc2VzcyBhbmQgZW5zdXJlIGNvbXBsaWFuY2Ugd2l0aCBhcHBsaWNhYmxlIGxhd3MsIGxlZ2FsIHJlcXVpcmVtZW50cywgYW5kIGNvbXBhbnkgcG9saWNpZXM7IHRvIHByb3RlY3Qgb3VyIGFzc2V0cyBvciB0byBpbnZlc3RpZ2F0ZSBvciBkZWZlbmQgYWdhaW5zdCBhbnkgY2xhaW1zIG9mIGlsbGVnYWxpdHkgb3Igd3Jvbmdkb2luZyAoaW5jbHVkaW5nIHRvIG9idGFpbiBsZWdhbCBhZHZpY2Ugb3IgdG8gZXN0YWJsaXNoLCBleGVyY2lzZSBvciBkZWZlbmQgbGVnYWwgcmlnaHRzKTsgYW5kIGluIHJlc3BvbnNlIHRvIGEgY291cnQgb3JkZXIgb3IganVkaWNpYWwgb3Igb3RoZXIgZ292ZXJubWVudCBzdWJwb2VuYSBvciB3YXJyYW50LjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+Q29ycG9yYXRlIHRyYW5zYWN0aW9uLjwvYj4gV2UgbWF5IHVzZSB5b3VyIHBlcnNvbmFsIGluZm9ybWF0aW9uIGluIHRoZSBldmVudCB3ZSB1bmRlcnRha2Ugb3IgYXJlIGludm9sdmVkIGluIG9yIGNvbnRlbXBsYXRpbmcgYW55IG1lcmdlciwgYWNxdWlzaXRpb24sIHJlb3JnYW5pemF0aW9uLCBzYWxlIG9mIGFzc2V0cywgYmFua3J1cHRjeSwgb3IgaW5zb2x2ZW5jeSBldmVudC48L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPlJlY3J1aXRtZW50IGFuZCBoaXJpbmcuPC9iPiBXZSBtYXkgdXNlIHlvdXIgcGVyc29uYWwgaW5mb3JtYXRpb24gdG8gZXZhbHVhdGUgeW91ciBjYW5kaWRhY3kgd2hlbiB5b3UgYXBwbHkgZm9yIGEgam9iIHdpdGggdXMuPC9saT4NCiAgICAgICAgICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICAgICAgICAgICAgPHA+V2UgbWF5IGFsc28gYWdncmVnYXRlLCBhbm9ueW1pemUsIG9yIG90aGVyd2lzZSBkZS1pZGVudGlmeSB5b3VyIHBlcnNvbmFsIGluZm9ybWF0aW9uIGFuZCB1c2UgaXQgZm9yIGFueSBwdXJwb3NlIHBlcm1pdHRlZCBieSBhcHBsaWNhYmxlIGxhdy48L3A+DQogICAgICAgICAgICAgICAgICAgIDxwPlNvbWUganVyaXNkaWN0aW9ucyByZXF1aXJlIHRoYXQgd2UgZGV0ZXJtaW5lIGEgImxhd2Z1bCBiYXNpcyIgZm9yIHByb2Nlc3NpbmcgcGVyc29uYWwgaW5mb3JtYXRpb24uIFdoZXJlIHN1Y2ggcmVxdWlyZW1lbnRzIGV4aXN0LCB3ZSByZWx5IG9uIHRoZSBmb2xsb3dpbmcgbGF3ZnVsIGJhc2VzIGZvciBvdXIgcHJvY2Vzc2luZyBhY3Rpdml0aWVzOiB0aGF0IHlvdSBoYXZlIGNvbnNlbnRlZCB0byB0aGUgcHJvY2Vzc2luZzsgdGhhdCB0aGUgcHJvY2Vzc2luZyBpcyBuZWNlc3NhcnkgZm9yIHRoZSBwZXJmb3JtYW5jZSBvZiBvdXIgY29udHJhY3Qgd2l0aCB5b3U7IHRoYXQgd2UgaGF2ZSBhIGxlZ2FsIG9ibGlnYXRpb247IG9yIHRoYXQgd2UgaGF2ZSBhIGxlZ2l0aW1hdGUgaW50ZXJlc3QgaW4gcHJvdmlkaW5nIGFuZCBpbXByb3ZpbmcgdGhlIFNlcnZpY2VzIGFuZCBtYW5hZ2luZyBvdXIgYnVzaW5lc3Mgb3BlcmF0aW9ucy4gT3VyIENsaWVudHMgZGV0ZXJtaW5lIHRoZSBsYXdmdWwgYmFzaXMgZm9yIHByb2Nlc3NpbmcgRW5kIFVzZXIgcGVyc29uYWwgaW5mb3JtYXRpb24uPC9wPg0KICAgICAgICAgICAgICAgICAgICA8cD4mbmJzcDs8L3A+DQogICAgICAgICAgICAgICAgICAgIDxoMj5Vc2Ugb2YgQ29va2llczwvaDI+DQogICAgICAgICAgICAgICAgICAgIDxwPiZuYnNwOzwvcD4NCiAgICAgICAgICAgICAgICAgICAgPHA+V2hlbiB5b3UgdXNlIHRoZSBTZXJ2aWNlcywgd2UgbWF5IHNlbmQgb25lIG9yIG1vcmUgY29va2llcyAod2hpY2ggYXJlIHNtYWxsIHRleHQgZmlsZXMgY29udGFpbmluZyBhIHN0cmluZyBvZiBhbHBoYW51bWVyaWMgY2hhcmFjdGVycykgdG8geW91ciBjb21wdXRlciBvciBtb2JpbGUgZGV2aWNlLCB0byBoZWxwIGFuYWx5emUgb3VyIHdlYiBwYWdlIGZsb3csIGN1c3RvbWl6ZSBvdXIgY29udGVudCwgbWVhc3VyZSBwcm9tb3Rpb25hbCBlZmZlY3RpdmVuZXNzLCBhbmQgcHJvbW90ZSB0cnVzdCBhbmQgc2FmZXR5LiBZb3UgYXJlIGFsd2F5cyBmcmVlIHRvIGRlY2xpbmUgb3VyIGNvb2tpZXMgaWYgeW91ciBicm93c2VyIHBlcm1pdHMsIGFsdGhvdWdoIGRvaW5nIHNvIG1heSBpbnRlcmZlcmUgd2l0aCB5b3VyIGFiaWxpdHkgdG8gdXNlIHRoZSBTZXJ2aWNlcyBvciBjZXJ0YWluIGZlYXR1cmVzIG9mIHRoZSBTZXJ2aWNlcy4gV2UgbWF5IGFsc28gdXNlIEdvb2dsZSBBbmFseXRpY3Mgb3IgYSBzaW1pbGFyIHNlcnZpY2UgdGhhdCB1c2VzIGNvb2tpZXMgdG8gaGVscCB1cyBhbmFseXplIGhvdyB1c2VycyB1c2UgdGhlIFNlcnZpY2VzLjwvcD4NCiAgICAgICAgICAgICAgICAgICAgPHA+V2UgbWF5IGFsc28gYWxsb3cgY2VydGFpbiB0aGlyZCBwYXJ0aWVzIHN1Y2ggYXMgYWR2ZXJ0aXNpbmcsIGFuYWx5dGljcyBwcm92aWRlcnMsIGFuZCB3aWRnZXQgcHJvdmlkZXJzIHRvIHBsYWNlIGNvb2tpZXMgaW4gb3JkZXIgdG8gY29sbGVjdCBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIG9ubGluZSBhY3Rpdml0aWVzIG92ZXIgdGltZSBhbmQgYWNyb3NzIGRpZmZlcmVudCB3ZWJzaXRlcyB3aGVuIHlvdSBhY2Nlc3Mgb3IgdXNlIHRoZSBTZXJ2aWNlcy4gQ3VycmVudGx5LCB2YXJpb3VzIGJyb3dzZXJzIG9mZmVyIGEgIkRvIE5vdCBUcmFjayIgb3B0aW9uLCBidXQgdGhlcmUgaXMgbm8gc3RhbmRhcmQgZm9yIGhvdyAiRG8gTm90IFRyYWNrIiBzaG91bGQgd29yayBvbiBjb21tZXJjaWFsIHdlYnNpdGVzLiBEdWUgdG8gdGhlIGxhY2sgb2Ygc3VjaCBzdGFuZGFyZHMsIHRoaXMgd2Vic2l0ZSBkb2VzIG5vdCByZXNwb25kIHRvICJEbyBOb3QgVHJhY2siIGNvbnN1bWVyIGJyb3dzZXIgc2V0dGluZ3MuPC9wPg0KICAgICAgICAgICAgICAgICAgICA8cD4mbmJzcDs8L3A+DQogICAgICAgICAgICAgICAgICAgIDxoMj5Ib3cgYW5kIFdoZW4gV2UgRGlzY2xvc2UgWW91ciBQZXJzb25hbCBJbmZvcm1hdGlvbjwvaDI+DQogICAgICAgICAgICAgICAgICAgIDxwPiZuYnNwOzwvcD4NCiAgICAgICAgICAgICAgICAgICAgPHA+V2UgbWF5IGRpc2Nsb3NlIHlvdXIgcGVyc29uYWwgaW5mb3JtYXRpb24gdG8gdGhlIGZvbGxvd2luZyBjYXRlZ29yaWVzIG9mIHJlY2lwaWVudHMsIHRvIGJlIHVzZWQgb25seSBmb3IgbGVnaXRpbWF0ZSBwdXJwb3NlcyBpbiBrZWVwaW5nIHdpdGggdGhpcyBQcml2YWN5IE5vdGljZTo8L3A+DQogICAgICAgICAgICAgICAgICAgIDx1bD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5Hcm91cCBjb21wYW5pZXMgYW5kIGFmZmlsaWF0ZXMuPC9iPiBXZSBtYXkgZGlzY2xvc2UsIHNoYXJlLCBvciB0cmFuc2ZlciB5b3VyIGluZm9ybWF0aW9uIHRvIGFueSBidXNpbmVzcyBlbnRpdHkgdGhhdCBpcyBwYXJ0IG9mIG91ciBjb3Jwb3JhdGUgZmFtaWx5LjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+Q2xpZW50cy48L2I+IFdlIG1heSBzaGFyZSB5b3VyIGluZm9ybWF0aW9uIHdpdGggb3VyIENsaWVudHMgaW4gY29ubmVjdGlvbiB3aXRoIG91ciBDbGllbnRzIHByb3Zpc2lvbiBvZiBzZXJ2aWNlcyB0byB5b3UuPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5TZXJ2aWNlIHByb3ZpZGVycyBhbmQgcHJvZmVzc2lvbmFsIGFkdmlzb3JzLjwvYj4gV2UgbWF5IGRpc2Nsb3NlIHlvdXIgaW5mb3JtYXRpb24gdG8gdGhpcmQgcGFydHkgdmVuZG9ycyB3aG8gcHJvdmlkZSBzZXJ2aWNlcyBpbiBzdXBwb3J0IG9mIG91ciBidXNpbmVzcyBvcGVyYXRpb25zLCBzdWNoIGFzIHdlYnNpdGUgZGV2ZWxvcG1lbnQgYW5kIGhvc3RpbmcsIHBheW1lbnQgcHJvY2Vzc2luZywgcmVjcnVpdG1lbnQgYW5kIGhpcmluZywgbWFya2V0aW5nIG1hbmFnZW1lbnQsIHNlcnZpY2Ugb3B0aW1pemF0aW9uLCB2ZW5kb3JzIHRoYXQgZnVsZmlsbCBvcmRlcnMgZm9yIGZ1bmVyYWwtcmVsYXRlZCBpdGVtcyBzdWNoIGFzIGZsb3dlcnMsIGFuZCBkYXRhIGFuYWx5dGljcy4gV2UgbWF5IGFsc28gZGlzY2xvc2UgeW91ciBwZXJzb25hbCBpbmZvcm1hdGlvbiB0byBwcm9mZXNzaW9uYWwgYWR2aXNvcnMgc3VjaCBhcyBvdXIgYXR0b3JuZXlzLCBhY2NvdW50YW50cywgYW5kIG91cnMgb3IgRW5kIFVzZXJzJyBpbnN1cmFuY2UgcHJvdmlkZXJzLjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+UGFydGllcyBpbnZvbHZlZCBpbiBhIGNvcnBvcmF0ZSB0cmFuc2FjdGlvbi48L2I+IFdlIG1heSBkaXNjbG9zZSB5b3VyIGluZm9ybWF0aW9uIHRvIHJlbGV2YW50IHRoaXJkIHBhcnRpZXMgaW4gdGhlIGV2ZW50IG9mIGEgZGl2ZXN0aXR1cmUsIG1lcmdlciwgY29uc29saWRhdGlvbiwgb3IgYXNzZXQgc2FsZSwgb3IgaW4gdGhlIHVubGlrZWx5IGV2ZW50IG9mIGEgYmFua3J1cHRjeS48L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPkxhdyBlbmZvcmNlbWVudCBvciBvdGhlciBnb3Zlcm5tZW50YWwgZW50aXRpZXMuPC9iPiBXZSBtYXkgZGlzY2xvc2UgeW91ciBpbmZvcm1hdGlvbiBpZiByZXF1aXJlZCB0byBkbyBzbyBieSBsYXcgb3IgaWYgd2UgYmVsaWV2ZSBpbiBnb29kIGZhaXRoIHRoYXQgc3VjaCBhY3Rpb24gaXMgbmVjZXNzYXJ5IHRvIGNvbXBseSB3aXRoIHRoZSBsYXcsIHByZXZlbnQgdW5sYXdmdWwgYWN0aXZpdHksIGRlZmVuZCBvdXIgcmlnaHRzLCBvciBtYWludGFpbiBzZWN1cml0eS48L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPk90aGVyIHRoaXJkIHBhcnRpZXMgd2l0aCB5b3VyIGNvbnNlbnQuPC9iPiBXZSBtYXkgZGlzY2xvc2UgeW91ciBpbmZvcm1hdGlvbiB0byBhbnkgb3RoZXIgdGhpcmQgcGFydHkgd2hlcmUgeW91IGhhdmUgcHJvdmlkZWQgY29uc2VudCB0byBzdWNoIGRpc2Nsb3N1cmUuPC9saT4NCiAgICAgICAgICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICAgICAgICAgICAgPHA+Jm5ic3A7PC9wPg0KICAgICAgICAgICAgICAgICAgICA8aDI+U2VjdXJpdHksIFJldGVudGlvbiAmYW1wOyBUcmFuc2ZlciBvZiBQZXJzb25hbCBJbmZvcm1hdGlvbjwvaDI+DQogICAgICAgICAgICAgICAgICAgIDxwPiZuYnNwOzwvcD4NCiAgICAgICAgICAgICAgICAgICAgPHA+V2UgaGF2ZSBpbXBsZW1lbnRlZCBhbmQgbWFpbnRhaW4gY29tbWVyY2lhbGx5IHJlYXNvbmFibGUgYW5kIGFwcHJvcHJpYXRlIHRlY2huaWNhbCBhbmQgb3JnYW5pemF0aW9uYWwgbWVhc3VyZXMgZGVzaWduZWQgdG8gcHJvdGVjdCB0aGUgY29uZmlkZW50aWFsaXR5LCBpbnRlZ3JpdHksIGFuZCBzZWN1cml0eSBvZiB5b3VyIHBlcnNvbmFsIGluZm9ybWF0aW9uLiBQbGVhc2Ugbm90ZSwgaG93ZXZlciwgdGhhdCBubyBzZWN1cml0eSBtZWFzdXJlcyBhcmUgcGVyZmVjdCBvciBpbXBlbmV0cmFibGUuIFdlIHRoZXJlZm9yZSBjYW5ub3QgZ3VhcmFudHkgYW5kIGRvIG5vdCB3YXJyYW50IHRoZSBhYnNvbHV0ZSBzZWN1cml0eSBvZiB5b3VyIHBlcnNvbmFsIGluZm9ybWF0aW9uLiBXZSByZXRhaW4geW91ciBwZXJzb25hbCBpbmZvcm1hdGlvbiBmb3Igbm8gbG9uZ2VyIHRoYW4gcmVhc29uYWJseSBuZWNlc3NhcnkgdG8gZnVsZmlsbCB0aGUgcHVycG9zZXMgZm9yIHdoaWNoIHdlIGNvbGxlY3RlZCBpdCBvciB0byBjb21wbHkgd2l0aCB0aGUgbGF3LCBwcmV2ZW50IGZyYXVkLCBmYWNpbGl0YXRlIGFuIGludmVzdGlnYXRpb24sIGRlZmVuZCBhZ2FpbnN0IGxlZ2FsIGNsYWltcywgb3IgZXhlcmNpc2Ugb3VyIGxlZ2FsIHJpZ2h0cy48L3A+DQogICAgICAgICAgICAgICAgICAgIDxwPkRlcGVuZGluZyBvbiB5b3VyIGxvY2F0aW9uLCB0aGUgcGVyc29uYWwgaW5mb3JtYXRpb24gd2UgY29sbGVjdCBhYm91dCB5b3UgbWF5IGJlIHRyYW5zZmVycmVkIHRvIGEganVyaXNkaWN0aW9uIHRoYXQgZG9lcyBub3QgcHJvdmlkZSB0aGUgc2FtZSBsZXZlbCBvZiBwcm90ZWN0aW9uIG9mIHBlcnNvbmFsIGluZm9ybWF0aW9uIGFzIHRoZSBqdXJpc2RpY3Rpb24gaW4gd2hpY2ggeW91IHJlc2lkZS4gQW1vbmcgb3RoZXIgcGxhY2VzLCBwZXJzb25hbCBpbmZvcm1hdGlvbiBtYXkgYmUgdHJhbnNmZXJyZWQgdG8sIGFuZCBzdG9yZWQgaW4sIENhbmFkYSwgQXVzdHJhbGlhIGFuZCB0aGUgVW5pdGVkIFN0YXRlcy4gVHJhbnNmZXJzIGZyb20gdGhlIEV1cm9wZWFuIFVuaW9uIHRvIENhbmFkYSBhcmUgbWFkZSBwdXJzdWFudCB0byBFdXJvcGVhbiBDb21taXNzaW9uIERlY2lzaW9uIDIwMDIvMi9FQywgd2hpY2ggZGV0ZXJtaW5lZCB0aGF0IENhbmFkYSBpcyBjb25zaWRlcmVkIGFzIHByb3ZpZGluZyBhbiBhZGVxdWF0ZSBsZXZlbCBvZiBwcm90ZWN0aW9uIG9mIHBlcnNvbmFsIGluZm9ybWF0aW9uLjwvcD4NCiAgICAgICAgICAgICAgICAgICAgPHA+Jm5ic3A7PC9wPg0KICAgICAgICAgICAgICAgICAgICA8aDI+WW91ciBDaG9pY2VzICZhbXA7IFJpZ2h0czwvaDI+DQogICAgICAgICAgICAgICAgICAgIDxwPiZuYnNwOzwvcD4NCiAgICAgICAgICAgICAgICAgICAgPHA+WW91IG1heSBkZWNsaW5lIHRvIHNoYXJlIGNlcnRhaW4gaW5mb3JtYXRpb24gd2l0aCB1cywgaW4gd2hpY2ggY2FzZSB3ZSBtYXkgbm90IGJlIGFibGUgdG8gcHJvdmlkZSB0byB5b3Ugc29tZSBvZiB0aGUgZmVhdHVyZXMgYW5kIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIFNlcnZpY2VzLiBPbmNlIHlvdSBoYXZlIHJlZ2lzdGVyZWQgZm9yIGFuIGFjY291bnQgd2l0aCB1cywgeW91IG1heSB1cGRhdGUsIGNvcnJlY3QsIG9yIGRlbGV0ZSB5b3VyIHByb2ZpbGUgaW5mb3JtYXRpb24gYW5kIHByZWZlcmVuY2VzIGF0IGFueSB0aW1lIGJ5IGFjY2Vzc2luZyB5b3VyIGFjY291bnQgcHJlZmVyZW5jZXMgcGFnZSB0aHJvdWdoIHRoZSBTZXJ2aWNlcy4gSWYgeW91IGRvIG5vdCB3aXNoIHRvIHJlY2VpdmUgbWFya2V0aW5nIGNvbW11bmljYXRpb25zIGZyb20gdXMsIHlvdSBjYW4gb3B0LW91dCBieSB1c2luZyB0aGUgdW5zdWJzY3JpYmUgcHJvY2VzcyBwcm92aWRlZCBvciBkZXNjcmliZWQgaW4gYW55IHN1Y2ggY29tbXVuaWNhdGlvbiwgYnV0IHlvdSBtYXkgc3RpbGwgcmVjZWl2ZSB0cmFuc2FjdGlvbmFsIG9yIGFkbWluaXN0cmF0aXZlIGNvbW11bmljYXRpb25zIGZyb20gdXMuIEFsdGhvdWdoIHlvdXIgY2hhbmdlcyBhcmUgcmVmbGVjdGVkIHByb21wdGx5IGluIGFjdGl2ZSB1c2VyIGRhdGFiYXNlcywgd2UgbWF5IHJldGFpbiBhbGwgaW5mb3JtYXRpb24geW91IHN1Ym1pdCBmb3IgYSB2YXJpZXR5IG9mIHB1cnBvc2VzLCBpbmNsdWRpbmcgYmFja3VwcyBhbmQgYXJjaGl2aW5nLCBwcmV2ZW50aW9uIG9mIGZyYXVkIGFuZCBhYnVzZSwgYW5kIGFuYWx5dGljcy48L3A+DQogICAgICAgICAgICAgICAgICAgIDxwPkRlcGVuZGluZyBvbiB5b3VyIGxvY2F0aW9uIGFuZCBzdWJqZWN0IHRvIGxvY2FsIGxhdywgeW91IG1heSBoYXZlIGNlcnRhaW4gcmlnaHRzIHdpdGggcmVzcGVjdCB0byB5b3VyIHBlcnNvbmFsIGluZm9ybWF0aW9uLiBUaGVzZSBtYXkgaW5jbHVkZTogdGhlIHJpZ2h0IHRvIGFjY2VzcywgY29ycmVjdCwgYW5kIGRlbGV0ZSB5b3VyIHBlcnNvbmFsIGluZm9ybWF0aW9uOyB0aGUgcmlnaHQgdG8gcmVzdHJpY3Qgb3Igb2JqZWN0IHRvIG91ciB1c2Ugb2YgeW91ciBwZXJzb25hbCBpbmZvcm1hdGlvbjsgYW5kIHRoZSByaWdodCB0byByZWNlaXZlIGEgcG9ydGFibGUgY29weSBvZiB5b3VyIHBlcnNvbmFsIGluZm9ybWF0aW9uIGluIGEgdXNhYmxlIGZvcm1hdC4gSWYgeW91IHByb3ZpZGUgdXMgd2l0aCBjb25zZW50IHRvIHVzZSB5b3VyIHBlcnNvbmFsIGluZm9ybWF0aW9uLCB5b3UgbWF5IHdpdGhkcmF3IHRoYXQgY29uc2VudCBhdCBhbnkgdGltZSwgaG93ZXZlciwgc3VjaCB3aXRoZHJhd2FsIHdpbGwgbm90IGltcGFjdCB0aGUgbGF3ZnVsbmVzcyBvZiBvdXIgdXNlIG9mIHlvdXIgcGVyc29uYWwgaW5mb3JtYXRpb24gYmFzZWQgb24geW91ciBjb25zZW50IHVwIHRvIHRoYXQgcG9pbnQuPC9wPg0KICAgICAgICAgICAgICAgICAgICA8cD5UbyBtYWtlIGEgcmVxdWVzdCByZWxhdGVkIHRvIHlvdXIgcGVyc29uYWwgaW5mb3JtYXRpb24gb3Igb3RoZXJ3aXNlIGV4ZXJjaXNlIHlvdXIgcmlnaHRzLCB5b3UgbWF5IGNvbnRhY3QgdXMgdXNpbmcgdGhlIGNvbnRhY3QgaW5mb3JtYXRpb24gcHJvdmlkZWQgYmVsb3cuIEluIG9yZGVyIHRvIGZ1bGZpbGwgeW91ciByZXF1ZXN0LCB3ZSBtYXkgcmVxdWlyZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGZyb20geW91LiBXZSB3aWxsIHJlc3BvbmQgdG8gcmVxdWVzdHMgd2l0aGluIHRoZSByZWxldmFudCB0aW1lIHBlcmlvZHMgZXN0YWJsaXNoZWQgYnkgYXBwbGljYWJsZSBsYXcuIFdlIGFyZSBjb21taXR0ZWQgdG8gZmluZGluZyBhIGZhaXIgYW5kIHJlYXNvbmFibGUgcmVzb2x1dGlvbiB0byBhbnkgcmVxdWVzdCwgY29uY2Vybiwgb3IgY29tcGxhaW50IHlvdSBicmluZyB0byBvdXIgYXR0ZW50aW9uLiBIb3dldmVyLCBpZiB5b3UgYXJlIHVuc2F0aXNmaWVkIHdpdGggb3VyIHJlc3BvbnNlIHRvIHlvdXIgcmVxdWVzdCwgeW91IG1heSBoYXZlIHRoZSByaWdodCB0byBsb2RnZSBhIGNvbXBsYWludCB3aXRoIGFwcGxpY2FibGUgZ292ZXJubWVudGFsIGF1dGhvcml0aWVzLCBzdWJqZWN0IHRvIGxvY2FsIGxhdy48L3A+DQogICAgICAgICAgICAgICAgICAgIDxwPiZuYnNwOzwvcD4NCiAgICAgICAgICAgICAgICAgICAgPGgyPkNoaWxkcmVuJ3MgUHJpdmFjeTwvaDI+DQogICAgICAgICAgICAgICAgICAgIDxwPiZuYnNwOzwvcD4NCiAgICAgICAgICAgICAgICAgICAgPHA+V2UgZG8gbm90IGtub3dpbmdseSBjb2xsZWN0IG9yIG1haW50YWluIGluZm9ybWF0aW9uIGZyb20gcGVyc29ucyB1bmRlciAxNiB5ZWFycyBvZiBhZ2UgKCJjaGlsZHJlbiIpLCBhbmQgbm8gcGFydCBvZiB0aGUgU2VydmljZXMgaXMgZGlyZWN0ZWQgdG8gY2hpbGRyZW4uIElmIHlvdSBhcmUgdW5kZXIgMTYgeWVhcnMgb2YgYWdlLCB0aGVuIHBsZWFzZSBkbyBub3QgdXNlIG9yIGFjY2VzcyB0aGUgU2VydmljZXMgYXQgYW55IHRpbWUgb3IgaW4gYW55IG1hbm5lci4gSWYgd2UgbGVhcm4gdGhhdCBpbmZvcm1hdGlvbiBoYXMgYmVlbiBjb2xsZWN0ZWQgdGhyb3VnaCB0aGUgU2VydmljZXMgZnJvbSBjaGlsZHJlbiBhbmQgd2l0aG91dCB2ZXJpZmlhYmxlIHBhcmVudGFsIGNvbnNlbnQsIHRoZW4gd2Ugd2lsbCB0YWtlIHRoZSBhcHByb3ByaWF0ZSBzdGVwcyB0byBkZWxldGUgdGhpcyBpbmZvcm1hdGlvbi4gSWYgeW91IGFyZSBhIHBhcmVudCBvciBndWFyZGlhbiBhbmQgZGlzY292ZXIgdGhhdCB5b3VyIGNoaWxkIGhhcyBwcm92aWRlZCB1cyB3aXRoIHBlcnNvbmFsIGluZm9ybWF0aW9uIHdpdGhvdXQgeW91ciBjb25zZW50LCBwbGVhc2UgY29udGFjdCB1cyB1c2luZyB0aGUgY29udGFjdCBpbmZvcm1hdGlvbiBiZWxvdyB0byByZXF1ZXN0IHRoYXQgd2UgZGVsZXRlIHRoZSBpbmZvcm1hdGlvbiBmcm9tIG91ciBzeXN0ZW1zLjwvcD4NCiAgICAgICAgICAgICAgICAgICAgPHA+Jm5ic3A7PC9wPg0KICAgICAgICAgICAgICAgICAgICA8aDI+Q2FsaWZvcm5pYSBSZXNpZGVudHM8L2gyPg0KICAgICAgICAgICAgICAgICAgICA8cD4mbmJzcDs8L3A+DQogICAgICAgICAgICAgICAgICAgIDxwPlN1cHBsZW1lbnRhbCB0byB0aGUgYWJvdmUsIHRoZSBmb2xsb3dpbmcgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBwZXJ0YWlucyB0byBDYWxpZm9ybmlhIHJlc2lkZW50cyBvbmx5OjwvcD4NCiAgICAgICAgICAgICAgICAgICAgPHA+PGI+Q29sbGVjdGlvbiBhbmQgVXNlIG9mIFBlcnNvbmFsIEluZm9ybWF0aW9uPC9iPjwvcD4NCiAgICAgICAgICAgICAgICAgICAgPHVsPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkNhdGVnb3JpZXMgb2YgcGVyc29uYWwgaW5mb3JtYXRpb24gY29sbGVjdGVkIGFib3V0IENhbGlmb3JuaWEgcmVzaWRlbnRzIGluIHRoZSBwYXN0IHR3ZWx2ZSBtb250aHMgaW5jbHVkZSBpZGVudGlmaWVycywgb3RoZXIgaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24sIGNoYXJhY3RlcmlzdGljcyBvZiBwcm90ZWN0ZWQgY2xhc3MsIGNvbW1lcmNpYWwgaW5mb3JtYXRpb24sIEludGVybmV0IG9yIG90aGVyIGVsZWN0cm9uaWMgbmV0d29yayBhY3Rpdml0eSBpbmZvcm1hdGlvbiwgcHJvZmVzc2lvbmFsIG9yIGVtcGxveW1lbnQtcmVsYXRlZCBpbmZvcm1hdGlvbiwgZWR1Y2F0aW9uIGluZm9ybWF0aW9uLCBhbmQgaW5mZXJlbmNlcyBkcmF3biBmcm9tIHN1Y2ggaW5mb3JtYXRpb24uIEZvciBleGFtcGxlcyBvZiBzcGVjaWZpYyBwaWVjZXMgb2YgcGVyc29uYWwgaW5mb3JtYXRpb24gY29sbGVjdGVkLCBwbGVhc2Ugc2VlIHRoZSAiUGVyc29uYWwgSW5mb3JtYXRpb24gV2UgQ29sbGVjdCIgc2VjdGlvbiBhYm92ZS48L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkNhdGVnb3JpZXMgb2YgcGVyc29uYWwgaW5mb3JtYXRpb24gZGlzY2xvc2VkIGZvciBhIGJ1c2luZXNzIHB1cnBvc2UgYWJvdXQgQ2FsaWZvcm5pYSByZXNpZGVudHMgaW4gdGhlIHBhc3QgdHdlbHZlIG1vbnRocyBpbmNsdWRlIGlkZW50aWZpZXJzLCBvdGhlciBpZGVudGlmeWluZyBpbmZvcm1hdGlvbiwgY2hhcmFjdGVyaXN0aWNzIG9mIHByb3RlY3RlZCBjbGFzcywgY29tbWVyY2lhbCBpbmZvcm1hdGlvbiwgSW50ZXJuZXQgb3Igb3RoZXIgZWxlY3Ryb25pYyBuZXR3b3JrIGFjdGl2aXR5IGluZm9ybWF0aW9uLCBwcm9mZXNzaW9uYWwgb3IgZW1wbG95bWVudC1yZWxhdGVkIGluZm9ybWF0aW9uLCBhbmQgZWR1Y2F0aW9uIGluZm9ybWF0aW9uLjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+V2UgZG8gbm90IHNlbGwgcGVyc29uYWwgaW5mb3JtYXRpb24sIG5vciBkbyB3ZSBzaGFyZSBwZXJzb25hbCBpbmZvcm1hdGlvbiB3aXRoIHRoaXJkIHBhcnRpZXMgZm9yIHRob3NlIHRoaXJkIHBhcnRpZXMnIGRpcmVjdCBtYXJrZXRpbmcgcHVycG9zZXMuPC9saT4NCiAgICAgICAgICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICAgICAgICAgICAgPHA+PGI+WW91ciBDYWxpZm9ybmlhIFByaXZhY3kgUmlnaHRzPC9iPjwvcD4NCiAgICAgICAgICAgICAgICAgICAgPHA+QXMgYSBDYWxpZm9ybmlhIHJlc2lkZW50LCB5b3UgaGF2ZSB0aGUgZm9sbG93aW5nIHJpZ2h0cyB3aXRoIHJlc3BlY3QgdG8geW91ciBwZXJzb25hbCBpbmZvcm1hdGlvbjo8L3A+DQogICAgICAgICAgICAgICAgICAgIDx1bD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5Zb3UgaGF2ZSB0aGUgcmlnaHQgdG8gcmVxdWVzdCB0byBrbm93IGFib3V0IHBlcnNvbmFsIGluZm9ybWF0aW9uIGNvbGxlY3RlZCwgZGlzY2xvc2VkLCBvciBzb2xkLjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+WW91IGhhdmUgdGhlIHJpZ2h0IHRvIHJlcXVlc3QgdGhlIGRlbGV0aW9uIG9mIHBlcnNvbmFsIGluZm9ybWF0aW9uLjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+WW91IGhhdmUgdGhlIHJpZ2h0IHRvIG9wdC1vdXQgb2YgdGhlIHNhbGUgb2YgeW91ciBwZXJzb25hbCBpbmZvcm1hdGlvbiBhdCBhbnkgdGltZS4gTm90ZSB0aGF0IHdlIGRvIG5vdCBjdXJyZW50bHkgc2VsbCBwZXJzb25hbCBpbmZvcm1hdGlvbi48L2xpPg0KICAgICAgICAgICAgICAgICAgICA8L3VsPg0KICAgICAgICAgICAgICAgICAgICA8cD5GaW5hbGx5LCB5b3UgaGF2ZSB0aGUgcmlnaHQgdG8gbm90IGJlIGRpc2NyaW1pbmF0ZWQgYWdhaW5zdCBhcyBhIHJlc3VsdCBvZiBleGVyY2lzaW5nIHlvdXIgcHJpdmFjeSByaWdodHMuIEFjY29yZGluZ2x5LCB1bmxlc3MgcGVybWl0dGVkIGJ5IGxhdywgd2Ugd2lsbCBub3QgZGVueSB5b3UgZ29vZHMgb3Igc2VydmljZXMsIGNoYXJnZSB5b3UgZGlmZmVyZW50IHByaWNlcyBvciByYXRlcyBmb3IgZ29vZHMgb3Igc2VydmljZXMsIHByb3ZpZGUgeW91IGEgZGlmZmVyZW50IGxldmVsIG9yIHF1YWxpdHkgb2YgZ29vZCBvciBzZXJ2aWNlcywgb3Igc3VnZ2VzdCB5b3Ugd2lsbCByZWNlaXZlIGEgZGlmZmVyZW50IHByaWNlIG9yIHJhdGUgZm9yIGdvb2RzIG9yIHNlcnZpY2VzIG9yIGEgZGlmZmVyZW50IGxldmVsIG9yIHF1YWxpdHkgb2YgZ29vZHMgb3Igc2VydmljZXMuPC9wPg0KICAgICAgICAgICAgICAgICAgICA8cD5UbyBleGVyY2lzZSB5b3VyIHJpZ2h0cywgeW91IG1heSBjb250YWN0IHVzIHVzaW5nIHRoZSBjb250YWN0IGluZm9ybWF0aW9uIHByb3ZpZGVkIGJlbG93IG9yIGNhbGwgPCEtLWdvb2dsZW9mZjogYWxsLS0+MS04NjYtMzcyLTkzNzI8IS0tZ29vZ2xlb246IGFsbC0tPi4gSW4gb3JkZXIgdG8gZnVsZmlsbCB5b3VyIHJlcXVlc3QsIHdlIG1heSByZXF1aXJlIGFkZGl0aW9uYWwgcGVyc29uYWwgaW5mb3JtYXRpb24gZm9yIHB1cnBvc2VzIG9mIHZlcmlmeWluZyB5b3VyIGlkZW50aXR5LiBJZiB5b3UgbWFrZSBhIHJlcXVlc3QgdGhyb3VnaCBhbiBhdXRob3JpemVkIGFnZW50LCB3ZSBtYXkgcmVxdWlyZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRvIHZlcmlmeSB5b3VyIGF1dGhvcml6YXRpb24gb2YgdGhlIGFnZW50LjwvcD4NCiAgICAgICAgICAgICAgICAgICAgPHA+Jm5ic3A7PC9wPg0KICAgICAgICAgICAgICAgICAgICA8aDI+Q2hhbmdlcyB0byBQcml2YWN5IE5vdGljZTwvaDI+DQogICAgICAgICAgICAgICAgICAgIDxwPiZuYnNwOzwvcD4NCiAgICAgICAgICAgICAgICAgICAgPHA+V2UgcmVzZXJ2ZSB0aGUgcmlnaHQgdG8gbWFrZSBjaGFuZ2VzIHRvIHRoaXMgUHJpdmFjeSBOb3RpY2UgYXQgYW55IHRpbWUsIHdpdGhvdXQgbm90aWNlLiBXZSB3aWxsIG5vdGlmeSB5b3UgYWJvdXQgY2hhbmdlcyB0aGF0IHNpZ25pZmljYW50bHkgaW1wYWN0IG91ciB1c2Ugb2YgeW91ciBwZXJzb25hbCBpbmZvcm1hdGlvbiBieSBwbGFjaW5nIGEgcHJvbWluZW50IG5vdGljZSBvbiB0aGlzIHdlYnNpdGUgb3IgYnkgc2VuZGluZyB5b3UgYW4gZW1haWwuIFBsZWFzZSByZXZpc2l0IHRoaXMgcGFnZSBwZXJpb2RpY2FsbHkgdG8gc3RheSBhd2FyZSBvZiBhbnkgY2hhbmdlcyB0byB0aGlzIFByaXZhY3kgTm90aWNlLiBGb3IgdGhlIGF2b2lkYW5jZSBvZiBkb3VidCwgZGlzcHV0ZXMgYXJpc2luZyBoZXJldW5kZXIgd2lsbCBiZSByZXNvbHZlZCBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIFByaXZhY3kgTm90aWNlIGluIGVmZmVjdCBhdCB0aGUgdGltZSB0aGUgZGlzcHV0ZSBhcm9zZS48L3A+DQogICAgICAgICAgICAgICAgICAgIDxwPiZuYnNwOzwvcD4NCiAgICAgICAgICAgICAgICAgICAgPGgyPkNvbnRhY3QgVXM8L2gyPg0KICAgICAgICAgICAgICAgICAgICA8cD4mbmJzcDs8L3A+DQogICAgICAgICAgICAgICAgICAgIDxwPlBsZWFzZSBjb250YWN0IHVzIHdpdGggYW55IHF1ZXN0aW9ucywgY29tbWVudHMgb3IgY29uY2VybnMgYWJvdXQgdGhpcyBQcml2YWN5IE5vdGljZSBvciBvdXIgdXNlIG9mIHlvdXIgcGVyc29uYWwgaW5mb3JtYXRpb24gYnkgZS1tYWlsIGF0IDxhIGhyZWY9Im1haWx0bzpwcml2YWN5QGZyYXplcmNvbnN1bHRhbnRzLmNvbSI+cHJpdmFjeUBmcmF6ZXJjb25zdWx0YW50cy5jb208L2E+IG9yIGJ5IG1haWwgYXQ6PC9wPg0KICAgICAgICAgICAgICAgICAgICA8cD5GcmF6ZXIgQ29uc3VsdGFudHMgTExDPGJyPiAyNTAxIFBhcm1lbnRlciBTdHJlZXQsIFN1aXRlIDMwMEE8YnI+IE1pZGRsZXRvbiwgV0kgNTM1NjI8L3A+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQo8L2Rpdj4=, PGRpdj4NCiAgICA8aDE+RnJhemVyIENvbnN1bHRhbnRzIFRlcm1zIG9mIFVzZTwvaDE+DQogICAgPHA+Jm5ic3A7PC9wPg0KICAgIDxkaXY+DQogICAgICAgIFRoZXNlIFRlcm1zIG9mIFVzZSwgdG9nZXRoZXIgd2l0aCBGcmF6ZXIgQ29uc3VsdGFudHMnIDxhIGhyZWY9Imh0dHBzOi8vZnJhemVyY29uc3VsdGFudHMuY29tL3ByaXZhY3ktcG9saWN5LyI+UHJpdmFjeSBQb2xpY3k8L2E+LCAoY29sbGVjdGl2ZWx5LCB0aGUgIlRlcm1zIikgc2V0IGZvcnRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyB0aGF0IGFwcGx5IHRvIHlvdXIgYWNjZXNzIGFuZCB1c2Ugb2YgdGhlIHdlYnNpdGUgb2YgRnJhemVyIENvbnN1bHRhbnRzIExMQyAoaHR0cHM6Ly93d3cuZnJhemVyY29uc3VsdGFudHMuY29tLykgKCJGcmF6ZXIiICJ3ZSIgb3IgInVzIikgYW5kIGFzc29jaWF0ZWQgc2VydmljZXMsIGluY2x1ZGluZyBGcmF6ZXIgc2VydmljZXMgdGhhdCBhcmUgYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdlYnNpdGVzIG9mIG91ciBjbGllbnQgZnVuZXJhbCBob21lcyBhbmQgb3RoZXIgZnVuZXJhbCBwcm9mZXNzaW9uYWxzICh0b2dldGhlciwgdGhlICJTaXRlcyIpLCB3aGV0aGVyIGFzIGEgY2xpZW50LCBlbmQgdXNlciBvciBjdXN0b21lciBvZiBhIGNsaWVudCwgb3Igb3RoZXJ3aXNlLiAiRnJhemVyIiBpbmNsdWRlcyBhbGwgb2ZmaWNlcnMsIGRpcmVjdG9ycywgZW1wbG95ZWVzLCBjb25zdWx0YW50cywgYWZmaWxpYXRlcywgc3Vic2lkaWFyaWVzLCBhbmQgYWdlbnRzLiBUaGUgVGVybXMgY29uc3RpdHV0ZSBhIGxlZ2FsbHkgYmluZGluZyBhZ3JlZW1lbnQgYmV0d2VlbiB5b3UsIHdoZXRoZXIgcGVyc29uYWxseSBvciBvbiBiZWhhbGYgb2YgYW4gZW50aXR5ICgieW91IikgYW5kIEZyYXplciBjb25jZXJuaW5nIHlvdXIgYWNjZXNzIHRvIGFuZCB1c2Ugb2YgdGhlIFNpdGVzLg0KICAgICAgICA8cD48L3A+DQogICAgICAgIDxwPkJ5IHVzaW5nIG9yIGFjY2Vzc2luZyB0aGUgU2l0ZXMsIHlvdSBhZ3JlZSB0byB0aGVzZSBUZXJtcywgYXMgbWF5IGJlIHVwZGF0ZWQgZnJvbSB0aW1lIHRvIHRpbWUgaW4gYWNjb3JkYW5jZSB3aXRoIFNlY3Rpb24gOSBiZWxvdy48L3A+DQogICAgICAgIDxvbD4NCiAgICAgICAgICAgIDxsaT48c3Ryb25nPkFjY291bnQgU2VjdXJpdHkuPC9zdHJvbmc+IFRvIHVzZSB0aGUgU2l0ZXMgeW91IG11c3QgKGkpIGJlIGF0IGxlYXN0IGVpZ2h0ZWVuICgxOCkgeWVhcnMgb2YgYWdlOyAoaWkpIGhhdmUgbm90IHByZXZpb3VzbHkgYmVlbiBzdXNwZW5kZWQgb3IgcmVtb3ZlZCBmcm9tIHRoZSBTaXRlczsgYW5kIChpaWkpIHJlZ2lzdGVyIGZvciBhbmQgdXNlIHRoZSBTaXRlcyBpbiBjb21wbGlhbmNlIHdpdGggYW55IGFuZCBhbGwgYXBwbGljYWJsZSBsYXdzIGFuZCByZWd1bGF0aW9ucy48L2xpPg0KICAgICAgICAgICAgPGxpPjxzdHJvbmc+QWNjb3VudCBSZWdpc3RyYXRpb24uPC9zdHJvbmc+IFRvIGFjY2VzcyBzb21lIGZlYXR1cmVzIG9mIHRoZSBTaXRlcywgeW91IG1heSBiZSByZXF1aXJlZCB0byByZWdpc3RlciBmb3IgYW4gYWNjb3VudC4gV2hlbiB5b3UgcmVnaXN0ZXIgZm9yIGFuIGFjY291bnQsIHdlIG1heSBhc2sgeW91IHRvIGdpdmUgdXMgY2VydGFpbiBpZGVudGlmeWluZyBpbmZvcm1hdGlvbiBhYm91dCB5b3Vyc2VsZiwgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byB5b3VyIGVtYWlsIGFkZHJlc3MgYW5kIG90aGVyIGNvbnRhY3QgaW5mb3JtYXRpb24sIGFuZCB0byBjcmVhdGUgYSB1c2VyIG5hbWUgYW5kIHBhc3N3b3JkICgiUmVnaXN0cmF0aW9uIEluZm9ybWF0aW9uIikuIFdoZW4gcmVnaXN0ZXJpbmcgZm9yIGFuZCBtYWludGFpbmluZyBhbiBhY2NvdW50LCB5b3UgYWdyZWUgdG8gcHJvdmlkZSB0cnVlLCBhY2N1cmF0ZSwgY3VycmVudCwgYW5kIGNvbXBsZXRlIGluZm9ybWF0aW9uIGFib3V0IHlvdXJzZWxmLiBZb3UgYWxzbyBhZ3JlZSBub3QgdG8gaW1wZXJzb25hdGUgYW55b25lLCBtaXNyZXByZXNlbnQgYW55IGFmZmlsaWF0aW9uIHdpdGggYW55b25lIGVsc2UsIHVzZSBmYWxzZSBpbmZvcm1hdGlvbiwgb3Igb3RoZXJ3aXNlIGNvbmNlYWwgeW91ciBpZGVudGl0eSBmcm9tIEZyYXplciBmb3IgYW55IHB1cnBvc2UuIFlvdSBhcmUgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBtYWludGFpbmluZyB0aGUgY29uZmlkZW50aWFsaXR5IGFuZCBzZWN1cml0eSBvZiB5b3VyIHBhc3N3b3JkIGFuZCBvdGhlciBSZWdpc3RyYXRpb24gSW5mb3JtYXRpb24uIEZvciB5b3VyIHByb3RlY3Rpb24gYW5kIHRoZSBwcm90ZWN0aW9uIG9mIG90aGVyIHVzZXJzLCB3ZSBhc2sgeW91IG5vdCB0byBzaGFyZSB5b3VyIFJlZ2lzdHJhdGlvbiBJbmZvcm1hdGlvbiB3aXRoIGFueW9uZSBlbHNlLiBJZiB5b3UgZG8gc2hhcmUgdGhpcyBpbmZvcm1hdGlvbiB3aXRoIGFueW9uZSwgd2Ugd2lsbCBjb25zaWRlciB0aGVpciBhY3Rpdml0aWVzIHRvIGhhdmUgYmVlbiBhdXRob3JpemVkIGJ5IHlvdS4gSWYgeW91IGhhdmUgcmVhc29uIHRvIGJlbGlldmUgdGhhdCB5b3VyIGFjY291bnQgaXMgbm8gbG9uZ2VyIHNlY3VyZSwgeW91IG11c3QgaW1tZWRpYXRlbHkgbm90aWZ5IHVzIGF0IGhlbHBAZnJhemVyY29uc3VsdGFudHMuY29tLjwvbGk+DQogICAgICAgICAgICA8bGk+DQogICAgICAgICAgICAgICAgPHN0cm9uZz5Qcm9oaWJpdGVkLjwvc3Ryb25nPiBZb3UgYWdyZWUgbm90IHRvOg0KICAgICAgICAgICAgICAgIDxvbCB0eXBlPSJBIj4NCiAgICAgICAgICAgICAgICAgICAgPGxpIHR5cGU9IkEiPlVzZSB0aGUgU2l0ZXMgZm9yIGFueSBpbGxlZ2FsIHB1cnBvc2UsIG9yIGluIHZpb2xhdGlvbiBvZiBhbnkgbG9jYWwsIHN0YXRlLCBuYXRpb25hbCwgb3IgaW50ZXJuYXRpb25hbCBsYXc7PC9saT4NCiAgICAgICAgICAgICAgICAgICAgPGxpIHR5cGU9IkEiPlZpb2xhdGUgb3IgZW5jb3VyYWdlIG90aGVycyB0byB2aW9sYXRlIHRoZSByaWdodHMgb2YgdGhpcmQgcGFydGllcywgaW5jbHVkaW5nIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHM7PC9saT4NCiAgICAgICAgICAgICAgICAgICAgPGxpIHR5cGU9IkEiPlBvc3QsIHVwbG9hZCwgb3IgZGlzdHJpYnV0ZSBhbnkgY29udGVudCB0aGF0IGlzIHVubGF3ZnVsLCBkZWZhbWF0b3J5LCBsaWJlbG91cywgaW5hY2N1cmF0ZSwgb3IgdGhhdCBhIHJlYXNvbmFibGUgcGVyc29uIGNvdWxkIGRlZW0gdG8gYmUgb2JqZWN0aW9uYWJsZSwgcHJvZmFuZSwgaW5kZWNlbnQsIHBvcm5vZ3JhcGhpYywgaGFyYXNzaW5nLCB0aHJlYXRlbmluZywgaGF0ZWZ1bCwgb3Igb3RoZXJ3aXNlIGluYXBwcm9wcmlhdGU7PC9saT4NCiAgICAgICAgICAgICAgICAgICAgPGxpIHR5cGU9IkEiPkludGVyZmVyZSBpbiBhbnkgd2F5IHdpdGggc2VjdXJpdHktcmVsYXRlZCBmZWF0dXJlcyBvZiB0aGUgU2l0ZXM7PC9saT4NCiAgICAgICAgICAgICAgICAgICAgPGxpIHR5cGU9IkEiPkludGVyZmVyZSB3aXRoIHRoZSBvcGVyYXRpb24gb3IgYW55IHVzZXIncyBlbmpveW1lbnQgb2YgdGhlIFNpdGVzLCBpbmNsdWRpbmcgYnkgdXBsb2FkaW5nIG9yIG90aGVyd2lzZSBkaXNzZW1pbmF0aW5nIHZpcnVzZXMsIGFkd2FyZSwgc3B5d2FyZSwgd29ybXMsIG9yIG90aGVyIG1hbGljaW91cyBjb2RlLCBtYWtpbmcgdW5zb2xpY2l0ZWQgb2ZmZXJzIG9yIGFkdmVydGlzZW1lbnRzIHRvIG90aGVyIHVzZXJzLCBvciBhdHRlbXB0aW5nIHRvIGNvbGxlY3QgcGVyc29uYWwgaW5mb3JtYXRpb24gYWJvdXQgdXNlcnMgb3IgdGhpcmQgcGFydGllcyB3aXRob3V0IHRoZWlyIGNvbnNlbnQ7PC9saT4NCiAgICAgICAgICAgICAgICAgICAgPGxpIHR5cGU9IkEiPkFjY2VzcywgbW9uaXRvciBvciBjb3B5IGFueSBjb250ZW50IG9yIGluZm9ybWF0aW9uIG9mIHRoZSBTaXRlcyB1c2luZyBhbnkgcm9ib3QsIHNwaWRlciwgc2NyYXBlciwgb3Igb3RoZXIgYXV0b21hdGVkIG1lYW5zIG9yIGFueSBtYW51YWwgcHJvY2VzcyBmb3IgYW55IHB1cnBvc2Ugd2l0aG91dCBGcmF6ZXIncyBleHByZXNzIHdyaXR0ZW4gcGVybWlzc2lvbjs8L2xpPg0KICAgICAgICAgICAgICAgICAgICA8bGkgdHlwZT0iQSI+VXNlLCByZXByb2R1Y2UsIG1vZGlmeSwgZGlzdHJpYnV0ZSBvciBzdG9yZSBhbnkgcGFydCBvZiB0aGUgU2l0ZXMgKGluY2x1ZGluZyBvYml0dWFyaWVzLCBldmVudCBpbmZvcm1hdGlvbiwgb3Igb3RoZXIgY29udGVudCkgZm9yIGFueSBwdXJwb3NlIHdpdGhvdXQgdGhlIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbiBvZiBGcmF6ZXI7PC9saT4NCiAgICAgICAgICAgICAgICAgICAgPGxpIHR5cGU9IkEiPlBlcmZvcm0gYW55IGZyYXVkdWxlbnQgYWN0aXZpdHksIGluY2x1ZGluZyBpbXBlcnNvbmF0aW5nIGFueSBwZXJzb24gb3IgZW50aXR5LCBjbGFpbWluZyBmYWxzZSBhZmZpbGlhdGlvbnMsIGFjY2Vzc2luZyB0aGUgYWNjb3VudHMgb2Ygb3RoZXIgdXNlcnMgd2l0aG91dCBwZXJtaXNzaW9uLCBvciBmYWxzaWZ5aW5nIHlvdXIgaWRlbnRpdHkgb3IgYW55IGluZm9ybWF0aW9uIGFib3V0IHlvdSwgaW5jbHVkaW5nIGFnZSBvciBkYXRlIG9mIGJpcnRoOyBvcjwvbGk+DQogICAgICAgICAgICAgICAgICAgIDxsaSB0eXBlPSJBIj5TZWxsIG9yIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgYWNjZXNzIGdyYW50ZWQgaGVyZWluLjwvbGk+DQogICAgICAgICAgICAgICAgPC9vbD4NCiAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICA8bGk+PHN0cm9uZz5UaGlyZCBQYXJ0eSBDb250ZW50Ljwvc3Ryb25nPiBUaGUgU2l0ZXMgbWF5IGNvbnRhaW4gbGlua3MgdG8gdGhpcmQgcGFydHkgd2Vic2l0ZXMgYW5kIHNlcnZpY2VzLiZuYnNwOyBGcmF6ZXIgcHJvdmlkZXMgc3VjaCBsaW5rcyBhcyBhIGNvbnZlbmllbmNlLCBhbmQgZG9lcyBub3QgY29udHJvbCBvciBlbmRvcnNlIHRoZXNlIHdlYnNpdGVzIGFuZCBzZXJ2aWNlcy4mbmJzcDsgWW91IGFja25vd2xlZGdlIGFuZCBhZ3JlZSB0aGF0IEZyYXplciBoYXMgbm90IHJldmlld2VkIHRoZSBjb250ZW50LCBhZHZlcnRpc2luZywgcHJvZHVjdHMsIHNlcnZpY2VzLCBvciBvdGhlciBtYXRlcmlhbHMgdGhhdCBhcHBlYXIgb24gc3VjaCB0aGlyZCBwYXJ0eSB3ZWJzaXRlcyBvciBzZXJ2aWNlcywgYW5kIGlzIG5vdCByZXNwb25zaWJsZSBmb3IgdGhlIGxlZ2FsaXR5LCBhY2N1cmFjeSwgb3IgYXBwcm9wcmlhdGVuZXNzIG9mIGFueSBzdWNoIGNvbnRlbnQsIGFuZCBzaGFsbCBub3QgYmUgcmVzcG9uc2libGUgb3IgbGlhYmxlLCBkaXJlY3RseSBvciBpbmRpcmVjdGx5LCBmb3IgYW55IGRhbWFnZSBvciBsb3NzIGNhdXNlZCBvciBhbGxlZ2VkIHRvIGJlIGNhdXNlZCBieSBvciBpbiBjb25uZWN0aW9uIHdpdGggdGhlIHVzZSBvZiBhbnkgc3VjaCB0aGlyZCBwYXJ0eSB3ZWJzaXRlcyBvciBzZXJ2aWNlcy48L2xpPg0KICAgICAgICAgICAgPGxpPjxzdHJvbmc+SW50ZWxsZWN0dWFsIFByb3BlcnR5Ljwvc3Ryb25nPiBZb3UgYWNrbm93bGVkZ2UgYW5kIGFncmVlIHRoYXQgd2hlbiB5b3Ugc3VibWl0IGFuIG9iaXR1YXJ5LCBwb3N0IGNvbW1lbnRzLCBzdWJtaXQgYSB0cmlidXRlIHZpZGVvLCBvciBwb3N0IG9yIHN1Ym1pdCBvdGhlciBjb250ZW50ICh0b2dldGhlciwgImNvbnRlbnQiKSB0byBGcmF6ZXIgb3IgYW55IHdlYnNpdGUgb2YgYW55IGZ1bmVyYWwgaG9tZSBvcGVyYXRlZCBieSBGcmF6ZXIsIHN1Y2ggY29udGVudCB3aWxsIGJlIHNoYXJlZCB3aXRoIGFuZCBzdG9yZWQgYnkgRnJhemVyIGFuZCBpdHMgYWZmaWxpYXRlcyBhbmQgcGFydG5lcnMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gVHJpYnV0ZSBBcmNoaXZlICh0cmlidXRlYXJjaGl2ZS5jb20pLiZuYnNwO1lvdSBmdXJ0aGVyIGFja25vd2xlZGdlIGFuZCBhZ3JlZSB0aGF0IHlvdSByZWxpbnF1aXNoIGFsbCBvd25lcnNoaXAgcmlnaHRzIGluIGFueSBpZGVhcyBvciBzdWdnZXN0aW9ucyB0aGF0IHlvdSBzdWJtaXQgdG8gRnJhemVyIHRocm91Z2ggdGhlIFNpdGVzLiZuYnNwO1RoZSBTaXRlcyBhcmUgcHJvdGVjdGVkIGJ5IGFwcGxpY2FibGUgY29weXJpZ2h0IGFuZCBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgbGF3cywgYW5kIG5vIG1hdGVyaWFscyBmcm9tIHRoZSBTaXRlcyBtYXkgYmUgY29waWVkLCByZXByb2R1Y2VkLCByZXB1Ymxpc2hlZCwgdXBsb2FkZWQsIHBvc3RlZCwgdHJhbnNtaXR0ZWQsIG9yIGRpc3RyaWJ1dGVkIGluIGFueSB3YXkgd2l0aG91dCBvdXIgZXhwcmVzcyBwZXJtaXNzaW9uLiZuYnNwO0FsbCB0cmFkZW1hcmtzIGFuZCBzZXJ2aWNlIG1hcmtzIG9uIHRoZSBTaXRlcyBiZWxvbmcgdG8gRnJhemVyLCBleGNlcHQgdGhpcmQtcGFydHkgdHJhZGVtYXJrcyBvciBzZXJ2aWNlIG1hcmtzLCB3aGljaCBhcmUgdGhlIHByb3BlcnR5IG9mIHRoZWlyIHJlc3BlY3RpdmUgb3duZXJzLjwvbGk+DQogICAgICAgICAgICA8bGk+PHN0cm9uZz5Vc2VyIENvbnRlbnQuPC9zdHJvbmc+IFlvdSByZXByZXNlbnQgYW5kIHdhcnJhbnQgdGhhdCB5b3Ugb3duIG9yIG90aGVyd2lzZSBoYXZlIHRoZSByaWdodCB0byB1c2UgYW55IGNvbnRlbnQgeW91IHBvc3QgdG8gdGhlIFNpdGVzLiZuYnNwO0lmIHlvdSBiZWxpZXZlIHRoYXQgeW91ciBjb250ZW50IGhhcyBiZWVuIHVzZWQgaW4gYSB3YXkgdGhhdCBjb25zdGl0dXRlcyBjb3B5cmlnaHQgaW5mcmluZ2VtZW50LCB5b3UgbWF5IGNvbnRhY3Qgb3VyIERlc2lnbmF0ZWQgQWdlbnQ6PC9saT4NCiAgICAgICAgPC9vbD4NCiAgICAgICAgPCEtLWdvb2dsZW9mZjogYWxsLS0+DQogICAgICAgIDxwIHN0eWxlPSJtYXJnaW4tbGVmdDogNDBweCI+DQogICAgICAgICAgICBBZGFtIEhvdmV5PGJyPg0KICAgICAgICAgICAgRnJhemVyIENvbnN1bHRhbnRzLCBMTEM8YnI+DQogICAgICAgICAgICAyNTAxIFBhcm1lbnRlciBTdHJlZXQgLSBTdWl0ZSAzMDBBPGJyPg0KICAgICAgICAgICAgTWlkZGxldG9uLCBXSSA1MzU2Mjxicj4NCiAgICAgICAgICAgIFBob25lOiA2MDgtNTg4LTg1MjI8YnI+DQogICAgICAgICAgICBGYXg6IDg2Ni00NDctMDMxMTxicj4NCiAgICAgICAgICAgIEVtYWlsOiBhZGFtQGZyYXplcmNvbnN1bHRhbnRzLmNvbQ0KICAgICAgICA8L3A+DQogICAgICAgIDwhLS1nb29nbGVvbjogYWxsLS0+DQogICAgICAgIDxwPllvdSBtdXN0IHByb3ZpZGUgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjogYW4gZWxlY3Ryb25pYyBvciBwaHlzaWNhbCBzaWduYXR1cmUgb2YgdGhlIGNvcHlyaWdodCBvd25lciBvciB0aGUgcGVyc29uIGF1dGhvcml6ZWQgdG8gYWN0IG9uIGJlaGFsZiBvZiB0aGUgY29weXJpZ2h0IG93bmVyOyBhIGRlc2NyaXB0aW9uIG9mIHRoZSBjb3B5cmlnaHRlZCB3b3JrIHRoYXQgeW91IGNsYWltIGhhcyBiZWVuIGluZnJpbmdlZDsgYSBkZXNjcmlwdGlvbiBvZiB3aGVyZSB0aGUgbWF0ZXJpYWwgdGhhdCB5b3UgY2xhaW0gaXMgaW5mcmluZ2luZyBpcyBsb2NhdGVkOyB5b3VyIGFkZHJlc3MsIHRlbGVwaG9uZSBudW1iZXIsIGFuZCBlbWFpbCBhZGRyZXNzOyBhIHdyaXR0ZW4gc3RhdGVtZW50IHRoYXQgeW91IGhhdmUgYSBnb29kIGZhaXRoIGJlbGllZiB0aGF0IHRoZSBkaXNwdXRlZCB1c2UgaXMgbm90IGF1dGhvcml6ZWQgYnkgdGhlIGNvcHlyaWdodCBvd25lciwgaXRzIGFnZW50LCBvciB0aGUgbGF3OyBhIHN0YXRlbWVudCBieSB5b3UsIG1hZGUgdW5kZXIgcGVuYWx0eSBvZiBwZXJqdXJ5LCB0aGF0IHRoZSBhYm92ZSBpbmZvcm1hdGlvbiBpbiB5b3VyIG5vdGljZSBpcyBhY2N1cmF0ZSBhbmQgdGhhdCB5b3UgYXJlIHRoZSBjb3B5cmlnaHQgb3duZXIgb3IgYXV0aG9yaXplZCB0byBhY3Qgb24gdGhlIGNvcHlyaWdodCBvd25lcidzIGJlaGFsZi4mbmJzcDtGcmF6ZXIgaGFzIGFkb3B0ZWQgYW5kIGltcGxlbWVudHMgYSBwb2xpY3kgdGhhdCBwcm92aWRlcyBmb3IgdGVybWluYXRpb24gaW4gYXBwcm9wcmlhdGUgY2lyY3Vtc3RhbmNlcyBvZiBhY2NvdW50cyBvZiB1c2VycyB3aG8gcmVwZWF0ZWRseSBpbmZyaW5nZSBjb3B5cmlnaHQgb3Igb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBvZiBGcmF6ZXIgb3Igb3RoZXJzLjwvcD4NCiAgICAgICAgPG9sIHN0YXJ0PSI3Ij4NCiAgICAgICAgICAgIDxsaT48c3Ryb25nPkluZGVtbmlmaWNhdGlvbi48L3N0cm9uZz4gWW91IGFncmVlIHRoYXQgeW91IHdpbGwgYmUgcGVyc29uYWxseSByZXNwb25zaWJsZSBmb3IgeW91ciB1c2Ugb2YgdGhlIFNpdGVzLCBhbmQgeW91IGFncmVlIHRvIGRlZmVuZCwgaW5kZW1uaWZ5LCBhbmQgaG9sZCBoYXJtbGVzcyBGcmF6ZXIgZnJvbSBhbmQgYWdhaW5zdCBhbnkgYW5kIGFsbCBjbGFpbXMsIGxpYWJpbGl0aWVzLCBkYW1hZ2VzLCBsb3NzZXMsIGFuZCBleHBlbnNlcyAoaW5jbHVkaW5nIGF0dG9ybmV5cycgYW5kIGFjY291bnRpbmcgZmVlcyBhbmQgY29zdHMpLCBhcmlzaW5nIG91dCBvZiBvciBpbiBhbnkgd2F5IGNvbm5lY3RlZCB3aXRoIChpKSB5b3VyIGFjY2VzcyB0bywgdXNlIG9mLCBvciBhbGxlZ2VkIHVzZSBvZiB0aGUgU2l0ZXM7IChpaSkgeW91ciB2aW9sYXRpb24gb2YgdGhlIFRlcm1zIG9yIGFueSBhcHBsaWNhYmxlIGxhdyBvciByZWd1bGF0aW9uOyAoaWlpKSB5b3VyIHZpb2xhdGlvbiBvZiBhbnkgdGhpcmQgcGFydHkgcmlnaHQsIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gYW55IGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodCwgcHVibGljaXR5LCBjb25maWRlbnRpYWxpdHksIHByb3BlcnR5LCBvciBwcml2YWN5IHJpZ2h0OyBvciAoaXYpIGFueSBkaXNwdXRlcyBvciBpc3N1ZXMgYmV0d2VlbiB5b3UgYW5kIGFueSB0aGlyZCBwYXJ0eS4gRnJhemVyIHJlc2VydmVzIHRoZSByaWdodCwgYXQgb3VyIG93biBleHBlbnNlLCB0byBhc3N1bWUgdGhlIGV4Y2x1c2l2ZSBkZWZlbnNlIGFuZCBjb250cm9sIG9mIGFueSBtYXR0ZXIgb3RoZXJ3aXNlIHN1YmplY3QgdG8gaW5kZW1uaWZpY2F0aW9uIGJ5IHlvdSwgYW5kIGluIHN1Y2ggY2FzZSwgeW91IGFncmVlIHRvIGNvb3BlcmF0ZSB3aXRoIG91ciBkZWZlbnNlIG9mIHN1Y2ggY2xhaW0uPC9saT4NCiAgICAgICAgICAgIDxsaT48c3Ryb25nPlRlcm1pbmF0aW9uLjwvc3Ryb25nPiBJZiB5b3UgdmlvbGF0ZSB0aGVzZSBUZXJtcywgeW91ciBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgU2l0ZXMgd2lsbCBhdXRvbWF0aWNhbGx5IHRlcm1pbmF0ZS4mbmJzcDtJbiBhZGRpdGlvbiwgRnJhemVyIGluIGl0cyBzb2xlIGRpc2NyZXRpb24gbWF5IHN1c3BlbmQgb3IgdGVybWluYXRlIHlvdXIgdXNlciBhY2NvdW50IGFuZC9vciBzdXNwZW5kIG9yIHRlcm1pbmF0ZSBzb21lIG9yIGFsbCBvZiB5b3VyIGFjY2VzcyB0byB0aGUgU2l0ZXMgYXQgYW55IHRpbWUsIHdpdGggb3Igd2l0aG91dCBub3RpY2UgdG8geW91LiZuYnNwO1lvdSBtYXkgdGVybWluYXRlIHlvdXIgYWNjb3VudCBhdCBhbnkgdGltZSBieSBjb250YWN0aW5nIEZyYXplciBhdCBoZWxwQGZyYXplcmNvbnN1bHRhbnRzLmNvbS4gQWZ0ZXIgeW91ciBhY2NvdW50IGlzIHRlcm1pbmF0ZWQsIGluZm9ybWF0aW9uIGFuZCBjb250ZW50IHByZXZpb3VzbHkgcHJvdmlkZWQgYnkgeW91IHdpbGwgbm8gbG9uZ2VyIGJlIGFjY2Vzc2libGUgdGhyb3VnaCB5b3VyIGFjY291bnQsIGJ1dCBGcmF6ZXIgbWF5IGNvbnRpbnVlIHRvIHN0b3JlIHN1Y2ggaW5mb3JtYXRpb24gYW5kIGNvbnRlbnQsIGFuZCBpdCBtYXkgYWxzbyBiZSBzdG9yZWQgYnkgdGhpcmQgcGFydGllcyB0byB3aG9tIGl0IGhhcyBiZWVuIHRyYW5zZmVycmVkIHRocm91Z2ggeW91ciB1c2Ugb2YgdGhlIFNpdGVzLjwvbGk+DQogICAgICAgICAgICA8bGk+PHN0cm9uZz5Nb2RpZmljYXRpb24gb2YgdGhlIFRlcm1zLjwvc3Ryb25nPiBGcmF6ZXIgcmVzZXJ2ZXMgdGhlIHJpZ2h0IGF0IGFueSB0aW1lIHRvIG1vZGlmeSB0aGVzZSBUZXJtcyBhbmQgdG8gaW1wb3NlIG5ldyBvciBhZGRpdGlvbmFsIHRlcm1zIG9yIGNvbmRpdGlvbnMgb24geW91ciB1c2Ugb2YgdGhlIFNpdGVzLiBTdWNoIG1vZGlmaWNhdGlvbnMgYW5kIGFkZGl0aW9uYWwgdGVybXMgYW5kIGNvbmRpdGlvbnMgd2lsbCBiZSBlZmZlY3RpdmUgaW1tZWRpYXRlbHkgdXBvbiBub3RpY2UgYW5kIGluY29ycG9yYXRlZCBpbnRvIHRoZXNlIFRlcm1zLiZuYnNwO1dlIHdpbGwgbWFrZSByZWFzb25hYmxlIGVmZm9ydHMgdG8gbm90aWZ5IHlvdSBvZiBhbnkgbWF0ZXJpYWwgY2hhbmdlcyB0byB0aGUgVGVybXMsIGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvLCBieSBwb3N0aW5nIGEgbm90aWNlIHRvIG91ciB3ZWJzaXRlIG9yIGJ5IHNlbmRpbmcgYW4gZW1haWwgdG8gYW55IGFkZHJlc3MgeW91IG1heSBoYXZlIHByb3ZpZGVkIHRvIHVzLiZuYnNwO1lvdXIgY29udGludWVkIHVzZSBvZiB0aGUgU2l0ZXMgZm9sbG93aW5nIG5vdGljZSB3aWxsIGJlIGRlZW1lZCBhY2NlcHRhbmNlIG9mIGFueSBtb2RpZmljYXRpb25zIHRvIHRoZSBUZXJtcy48L2xpPg0KICAgICAgICAgICAgPGxpPjxzdHJvbmc+RGlzY2xhaW1lcnMgb2YgV2FycmFudGllcy48L3N0cm9uZz4gVGhlIFNpdGVzIGFyZSBwcm92aWRlZCAiYXMgaXMiIGFuZCBvbiBhbiAiYXMgYXZhaWxhYmxlIiBiYXNpcywgd2l0aG91dCB3YXJyYW50eSBvciBjb25kaXRpb24gb2YgYW55IGtpbmQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIEFsdGhvdWdoIEZyYXplciBzZWVrcyB0byBtYWludGFpbiBzYWZlLCBzZWN1cmUsIGFjY3VyYXRlLCBhbmQgd2VsbC1mdW5jdGlvbmluZyBzZXJ2aWNlcywgd2UgY2Fubm90IGd1YXJhbnRlZSB0aGUgY29udGludW91cyBvcGVyYXRpb24gb2Ygb3IgYWNjZXNzIHRvIG91ciBTaXRlcywgYW5kIHRoZXJlIG1heSBhdCB0aW1lcyBiZSBpbmFkdmVydGVudCB0ZWNobmljYWwgb3IgZmFjdHVhbCBlcnJvcnMgb3IgaW5hY2N1cmFjaWVzLiBGcmF6ZXIgc3BlY2lmaWNhbGx5IChidXQgd2l0aG91dCBsaW1pdGF0aW9uKSBkaXNjbGFpbXMgKGkpIGFueSBpbXBsaWVkIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRhYmlsaXR5LCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZSwgcXVpZXQgZW5qb3ltZW50LCBvciBub24taW5mcmluZ2VtZW50OyBhbmQgKGlpKSBhbnkgd2FycmFudGllcyBhcmlzaW5nIG91dCBvZiBjb3Vyc2Utb2YtZGVhbGluZywgdXNhZ2UsIG9yIHRyYWRlLiBZb3UgYXNzdW1lIGFsbCByaXNrIGZvciBhbnkvYWxsIGRhbWFnZXMgdGhhdCBtYXkgcmVzdWx0IGZyb20geW91ciB1c2Ugb2Ygb3IgYWNjZXNzIHRvIHRoZSBTaXRlcy4mbmJzcDtGcmF6ZXIgZG9lcyBub3QgZ3VhcmFudGVlIHRoZSBhY2N1cmFjeSBvZiwgYW5kIGRpc2NsYWltcyBhbGwgbGlhYmlsaXR5IGZvciwgYW55IGVycm9ycyBvciBvdGhlciBpbmFjY3VyYWNpZXMgaW4gdGhlIGluZm9ybWF0aW9uLCBjb250ZW50LCByZWNvbW1lbmRhdGlvbnMsIGFuZCBtYXRlcmlhbHMgbWFkZSBhdmFpbGFibGUgdGhyb3VnaCB0aGUgU2l0ZXMuPC9saT4NCiAgICAgICAgICAgIDxsaT48c3Ryb25nPkxpbWl0YXRpb24gb2YgTGlhYmlsaXR5Ljwvc3Ryb25nPiBJbiBubyBldmVudCB3aWxsIEZyYXplciBiZSBsaWFibGUgdG8geW91IGZvciBhbnkgaW5jaWRlbnRhbCwgc3BlY2lhbCwgY29uc2VxdWVudGlhbCwgZGlyZWN0LCBpbmRpcmVjdCwgb3IgcHVuaXRpdmUgZGFtYWdlcywgd2hldGhlciBiYXNlZCBvbiB3YXJyYW50eSwgY29udHJhY3QsIHRvcnQgKGluY2x1ZGluZyBuZWdsaWdlbmNlKSwgc3RhdHV0ZSwgb3IgYW55IG90aGVyIGxlZ2FsIHRoZW9yeSwgd2hldGhlciBvciBub3QgRnJhemVyIGhhcyBiZWVuIGluZm9ybWVkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiBzdWNoIGRhbWFnZS4mbmJzcDtTb21lIGp1cmlzZGljdGlvbnMgZG8gbm90IGFsbG93IHRoZSBkaXNjbGFpbWVyIG9mIHdhcnJhbnRpZXMgb3IgbGltaXRhdGlvbiBvZiBsaWFiaWxpdHkgaW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzLiBBY2NvcmRpbmdseSwgc29tZSBvZiB0aGUgYWJvdmUgbGltaXRhdGlvbnMgbWF5IG5vdCBhcHBseSB0byB5b3UuPC9saT4NCiAgICAgICAgICAgIDxsaT48c3Ryb25nPkdvdmVybmluZyBMYXcuPC9zdHJvbmc+IFRoZXNlIFRlcm1zIGFyZSBnb3Zlcm5lZCBieSB0aGUgbGF3cyBvZiB0aGUgU3RhdGUgb2YgV2lzY29uc2luLCB3aXRob3V0IHJlZ2FyZCB0byBjb25mbGljdCBvZiBsYXcgcHJpbmNpcGxlcy4mbmJzcDtUbyB0aGUgZXh0ZW50IHRoYXQgYW55IGxhd3N1aXQgb3IgY291cnQgcHJvY2VlZGluZyBpcyBwZXJtaXR0ZWQgaGVyZXVuZGVyLCB5b3UgYW5kIEZyYXplciBhZ3JlZSB0byBzdWJtaXQgdG8gdGhlIGV4Y2x1c2l2ZSBwZXJzb25hbCBqdXJpc2RpY3Rpb24gb2YgdGhlIHN0YXRlIGNvdXJ0cyBvZiBXaXNjb25zaW4sIG9yLCBpZiBzdWNoIGNvdXJ0IHNoYWxsIG5vdCBoYXZlIGp1cmlzZGljdGlvbiwgYW55IGZlZGVyYWwgY291cnQgb2YgdGhlIFVuaXRlZCBTdGF0ZXMsIGFuZCBhcHByb3ByaWF0ZSBhcHBlbGxhdGUgY291cnRzIHRoZXJlZnJvbSwgZm9yIHRoZSBwdXJwb3NlIG9mIGxpdGlnYXRpbmcgYWxsIHN1Y2ggZGlzcHV0ZXMuPC9saT4NCiAgICAgICAgICAgIDxsaT48c3Ryb25nPk1vZGlmaWNhdGlvbiBvZiB0aGUgU2l0ZXMuPC9zdHJvbmc+IEZyYXplciByZXNlcnZlcyB0aGUgcmlnaHQgdG8gbW9kaWZ5IG9yIGRpc2NvbnRpbnVlLCB0ZW1wb3JhcmlseSBvciBwZXJtYW5lbnRseSwgc29tZSBvciBhbGwgb2YgdGhlIFNpdGVzIGF0IGFueSB0aW1lIHdpdGhvdXQgYW55IG5vdGljZSBvciBmdXJ0aGVyIG9ibGlnYXRpb24gdG8geW91LiZuYnNwO1lvdSBhZ3JlZSB0aGF0IEZyYXplciB3aWxsIG5vdCBiZSBsaWFibGUgdG8geW91IG9yIHRvIGFueSB0aGlyZCBwYXJ0eSBmb3IgYW55IG1vZGlmaWNhdGlvbiwgc3VzcGVuc2lvbiwgb3IgZGlzY29udGludWFuY2Ugb2YgYW55IG9mIHRoZSBTaXRlcy48L2xpPg0KICAgICAgICAgICAgPGxpPg0KICAgICAgICAgICAgICAgIDxzdHJvbmc+R2VuZXJhbC48L3N0cm9uZz4NCiAgICAgICAgICAgICAgICA8b2w+DQogICAgICAgICAgICAgICAgICAgIDxsaSB0eXBlPSJBIj48dT5FbnRpcmUgQWdyZWVtZW50PC91Pi4gVGhlc2UgVGVybXMgY29uc3RpdHV0ZSB0aGUgZW50aXJlIGFuZCBleGNsdXNpdmUgdW5kZXJzdGFuZGluZyBhbmQgYWdyZWVtZW50IGJldHdlZW4geW91IGFuZCBGcmF6ZXIgcmVnYXJkaW5nIHlvdXIgdXNlIG9mIGFuZCBhY2Nlc3MgdG8gdGhlIFNpdGVzLCBhbmQgZXhjZXB0IGFzIGV4cHJlc3NseSBwZXJtaXR0ZWQgYWJvdmUgbWF5IG9ubHkgYmUgYW1lbmRlZCBieSBhIHdyaXR0ZW4gYWdyZWVtZW50IHNpZ25lZCBieSBhdXRob3JpemVkIHJlcHJlc2VudGF0aXZlcyBvZiB0aGUgcGFydGllcy48L2xpPg0KICAgICAgICAgICAgICAgICAgICA8bGkgdHlwZT0iQSI+PHU+Tm8gV2FpdmVyPC91Pi4gVGhlIGZhaWx1cmUgdG8gcmVxdWlyZSBwZXJmb3JtYW5jZSBvZiBhbnkgcHJvdmlzaW9uIHNoYWxsIG5vdCBhZmZlY3Qgb3VyIHJpZ2h0IHRvIHJlcXVpcmUgcGVyZm9ybWFuY2UgYXQgYW55IHRpbWUgdGhlcmVhZnRlciwgbm9yIHNoYWxsIGEgd2FpdmVyIG9mIGFueSBicmVhY2ggb3IgZGVmYXVsdCBvZiB0aGUgVGVybXMgY29uc3RpdHV0ZSBhIHdhaXZlciBvZiBhbnkgc3Vic2VxdWVudCBicmVhY2ggb3IgZGVmYXVsdCBvciBhIHdhaXZlciBvZiB0aGUgcHJvdmlzaW9uIGl0c2VsZi48L2xpPg0KICAgICAgICAgICAgICAgICAgICA8bGkgdHlwZT0iQSI+PHU+UGFyYWdyYXBoIEhlYWRlcnM8L3U+LiBVc2Ugb2YgcGFyYWdyYXBoIGhlYWRlcnMgaW4gdGhlIFRlcm1zIGlzIGZvciBjb252ZW5pZW5jZSBvbmx5IGFuZCBzaGFsbCBub3QgaGF2ZSBhbnkgaW1wYWN0IG9uIHRoZSBpbnRlcnByZXRhdGlvbiBvZiBwYXJ0aWN1bGFyIHByb3Zpc2lvbnMuPC9saT4NCiAgICAgICAgICAgICAgICAgICAgPGxpIHR5cGU9IkEiPjx1PlNldmVyYWJpbGl0eTwvdT4uIEluIHRoZSBldmVudCB0aGF0IGFueSBwYXJ0IG9mIHRoZSBUZXJtcyBpcyBoZWxkIHRvIGJlIGludmFsaWQgb3IgdW5lbmZvcmNlYWJsZSwgdGhlIHVuZW5mb3JjZWFibGUgcGFydCBzaGFsbCBiZSBnaXZlbiBlZmZlY3QgdG8gdGhlIGdyZWF0ZXN0IGV4dGVudCBwb3NzaWJsZSBhbmQgdGhlIHJlbWFpbmluZyBwYXJ0cyB3aWxsIHJlbWFpbiBpbiBmdWxsIGZvcmNlIGFuZCBlZmZlY3QuPC9saT4NCiAgICAgICAgICAgICAgICA8L29sPg0KICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgIDxsaT48c3Ryb25nPk5vdGljZSB0byBDYWxpZm9ybmlhIFJlc2lkZW50cy48L3N0cm9uZz4gVW5kZXIgQ2FsaWZvcm5pYSBDaXZpbCBDb2RlIFNlY3Rpb24gMTc4OS4zLCB5b3UgbWF5IGNvbnRhY3QgdGhlIENvbXBsYWludCBBc3Npc3RhbmNlIFVuaXQgb2YgdGhlIERpdmlzaW9uIG9mIENvbnN1bWVyIFNlcnZpY2VzIG9mIHRoZSBDYWxpZm9ybmlhIERlcGFydG1lbnQgb2YgQ29uc3VtZXIgQWZmYWlycyBpbiB3cml0aW5nIGF0IDE2MjUgTi4gTWFya2V0IEJsdmQuLCBTdWl0ZSBTLTIwMiwgU2FjcmFtZW50bywgQ2FsaWZvcm5pYSA5NTgzNCwgb3IgYnkgdGVsZXBob25lIGF0ICg4MDApIDk1Mi01MjEwIGluIG9yZGVyIHRvIHJlc29sdmUgYSBjb21wbGFpbnQgcmVnYXJkaW5nIHRoZSBzZXJ2aWNlIG9yIHRvIHJlY2VpdmUgZnVydGhlciBpbmZvcm1hdGlvbiByZWdhcmRpbmcgdXNlIG9mIHRoZSBzZXJ2aWNlLjwvbGk+DQogICAgICAgIDwvb2w+DQogICAgICAgIDxwPkxhc3QgVXBkYXRlZDogMDkvMDQvMjAyMDwvcD4NCiAgICA8L2Rpdj4NCjwvZGl2Pg==.