Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id C613A200D26 for ; Thu, 5 Oct 2017 15:35:09 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id C45201609E1; Thu, 5 Oct 2017 13:35:09 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 736F31609DA for ; Thu, 5 Oct 2017 15:35:08 +0200 (CEST) Received: (qmail 10685 invoked by uid 500); 5 Oct 2017 13:35:07 -0000 Mailing-List: contact dev-help@airavata.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@airavata.apache.org Delivered-To: mailing list dev@airavata.apache.org Received: (qmail 10675 invoked by uid 99); 5 Oct 2017 13:35:07 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 05 Oct 2017 13:35:07 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id 503E9180C1F for ; Thu, 5 Oct 2017 13:35:06 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -0.32 X-Spam-Level: X-Spam-Status: No, score=-0.32 tagged_above=-999 required=6.31 tests=[HTML_MESSAGE=2, MIME_QP_LONG_LINE=0.001, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=disabled Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id J2xP1JccpYfQ for ; Thu, 5 Oct 2017 13:34:59 +0000 (UTC) Received: from hartman.uits.indiana.edu (hartman.uits.indiana.edu [129.79.1.194]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id 52E8F5FD71 for ; Thu, 5 Oct 2017 13:34:59 +0000 (UTC) X-WL-Flag: TRUE X-IronPort-AV: E=Sophos;i="5.42,481,1500955200"; d="p7s'?scan'208,217";a="81844598" Received: from mssg-relay.indiana.edu ([129.79.1.73]) by irpt-internal-relay.indiana.edu with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Oct 2017 09:34:53 -0400 Received: from IN-CCI-EXCH0B.ads.iu.edu (in-cci-exch0b.ads.iu.edu [10.234.33.138]) by mssg-relay.indiana.edu (8.14.4/8.14.4/IU Campus Communications Team - MSSG) with ESMTP id v95DYrpR020469 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NOT) for ; Thu, 5 Oct 2017 09:34:53 -0400 Received: from IN-CCI-EXCH0E.ads.iu.edu (2001:18e8:3:cc1::24b) by IN-CCI-EXCH0B.ads.iu.edu (2001:18e8:3:cc1::10e) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Thu, 5 Oct 2017 09:34:53 -0400 Received: from IN-CCI-EXCH0E.ads.iu.edu ([fe80::a10f:2248:7aab:316f]) by in-cci-exch0e.ads.iu.edu ([fe80::a10f:2248:7aab:316f%20]) with mapi id 15.00.1210.000; Thu, 5 Oct 2017 09:34:53 -0400 From: "Pierce, Marlon" To: "dev@airavata.apache.org" Subject: Re: Linked Container Services for Apache Airavata Components - Phase 1 - Requirement identification Thread-Topic: Linked Container Services for Apache Airavata Components - Phase 1 - Requirement identification Thread-Index: AQHTPaTbVm6WLogwkk2aN02LMzHZnKLVQieA Date: Thu, 5 Oct 2017 13:34:53 +0000 Message-ID: <708F6432-A7B1-4A45-9D1A-F801808F4EC9@iu.edu> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/f.21.0.170409 x-ms-exchange-messagesentrepresentingtype: 1 x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [72.19.70.138] Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha256; boundary="B_3590040891_2143003999" MIME-Version: 1.0 archived-at: Thu, 05 Oct 2017 13:35:10 -0000 --B_3590040891_2143003999 Content-type: multipart/alternative; boundary="B_3590040891_2069328123" --B_3590040891_2069328123 Content-type: text/plain; charset="UTF-8" Content-transfer-encoding: quoted-printable Thanks, Dimuthu, this is a good summary. Others may comment about Kafka, st= ateful versus stateless parts of Airavata, etc.=C2=A0 You may also find some of = this discussion on the mailing list archives. =20 Active-active vs. active-passive is a good question, and we have typically = thought of this in terms of individual Airavata components rather than the w= hole system.=C2=A0 Some components can be active-active (like a stateless applic= ation manager), while others (like the orchestrator example you give below) = are stafefull and may be better as active-passive.=C2=A0=20 =20 There is also the issue of system updates and continuous deployments, which= could be added to your list. =20 Marlon =20 =20 From: "dimuthu.upeksha2@gmail.com" Reply-To: "dev@airavata.apache.org" Date: Thursday, October 5, 2017 at 2:40 AM To: "dev@airavata.apache.org" Subject: Linked Container Services for Apache Airavata Components - Phase 1= - Requirement identification =20 Hi All, =20 Within last few days, I have been going through the requirements and design= of current setup of Airavata and I identified following ares as the key foc= using areas in the technology evaluation phase =20 Micorservices deployment platform (container management system)=20 =20 Possible candidates: Google Kubernetes, Apache Mesos, Apache Helix=20 As the most of the operational units of Airavata is supposed to be moving i= nto microservices based deployment pattern, having a unified deployment plat= form to manage those microservices will make the DevOps operations easier an= d faster. From the other hand, although writing and maintaining a single mic= ro service is a somewhat straightforward way, making multiple microservies r= unning, monitoring and maintaining the lifecycles manually in a production e= nvironment is an tiresome and complex operation to perform. Using such a dep= loyment platform, we can easily automate lots of pain points that I have men= tioned earlier.=20 =20 Scalability =20 We need a solution that can easily scalable depending on the load condition= of several parts of the system. For example, the workers in the post proces= sing pipeline should be able scaled up and down depending on the events come= into the message queue.=20 =20 Availability =20 We need to support solution to be deployed in multiple geographically dista= nt data centers. When evaluating container management systems, we should con= sider this is as a primary requirement. However one thing that I am not sure= is the availability mode that Airavata normally expect. Is it a active-acti= ve mode or active-passive mode?=20 =20 Service discovery =20 Once we move in to microservice based deployment pattern, there could be sc= enarios where we want service discovery for several use cases. For example, = if we are going to scale up API Server to handle an increased load, we might= have to put a load balancer in between the client and API Server instances.= In that case, service discovery is essential to instruct the load balancer = with healthy API Server endpoints which are currently running in the system. =20 Cluster coordination =20 Although micorservices are supposed to be stateless in most of the cases, w= e might have scenarios to feed some state to particular micorservices. For e= xample if we are going to implement a microservice that perform Orchestrator= 's role, there could be issues if we keep multiple instances of it in severa= l data centers to increase the availability. According to my understanding, = there should be only one Orchestrator being running at a time as it is the o= ne who takes decisions of the job execution process. So, if we are going to = keep multiple instances of it running in the system, there should be an some= sort of a leader election in between Orchestrator quorum. =20 Common messaging medium in between mocroservices =20 This might be out of the scope but I thought of sharing with the team to ha= ve an general idea. Idea was raised at the hip chat discussion with Marlon a= nd Gaourav. Using a common messaging medium might enable microservices to co= mmunicate with in a decoupled manner which will increase the scalability of = the system. For example there is a reference architecture that we can utiliz= e with kafka based messaging medium [1], [2]. However I noticed in one paper= that Kafka was previously rejected as writing clients was onerous. Please s= hare your views on this as I'm not familiar with the existing fan out model = based on AMQP and pain points of it.=20 =20 Those are the main areas that I have understood while going through Airavat= a current implementation and requirements stated in some of the research pap= ers. Please let me know whether my understanding on above items are correct = and suggestions are always welcome :) =20 [1] https://medium.com/@ulymarins/an-introduction-to-apache-kafka-and-micro= services-communication-bf0a0966d63 [2] https://www.slideshare.net/ConfluentInc/microservices-in-the-apache-kaf= ka-ecosystem =20 References =20 Marru, S., Gunathilake, L., Herath, C., Tangchaisin, P., Pierce, M., Mattma= nn, C., Singh, R., Gunarathne, T., Chinthaka, E., Gardler, R. and Slominski,= A., 2011, November. Apache airavata: a framework for distributed applicatio= ns and computational workflows. In Proceedings of the 2011 ACM workshop on G= ateway computing environments (pp. 21-28). ACM. =20 Nakandala, S., Pamidighantam, S., Yodage, S., Doshi, N., Abeysinghe, E., Ka= nkanamalage, C.P., Marru, S. and Pierce, M., 2016, July. Anatomy of the SEAG= rid Science Gateway. In Proceedings of the XSEDE16 Conference on Diversity, = Big Data, and Science at Scale (p. 40). ACM. =20 Pierce, Marlon E., Suresh Marru, Lahiru Gunathilake, Don Kushan Wijeratne, = Raminder Singh, Chathuri Wimalasena, Shameera Ratnayaka, and Sudhakar Pamidi= ghantam. "Apache Airavata: design and directions of a science gateway framew= ork." Concurrency and Computation: Practice and Experience 27, no. 16 (2015)= : 4282-4291. =20 Pierce, Marlon, Suresh Marru, Borries Demeler, Raminderjeet Singh, and Gary= Gorbet. "The apache airavata application programming interface: overview an= d evaluation with the UltraScan science gateway." In Proceedings of the 9th = Gateway Computing Environments Workshop, pp. 25-29. IEEE Press, 2014. =20 Marru, Suresh, Marlon Pierce, Sudhakar Pamidighantam, and Chathuri Wimalase= na. "Apache Airavata as a laboratory: architecture and case study for compon= ent- based gateway middleware." In Proceedings of the 1st Workshop on The Sc= ience of Cyberinfrastructure: Research, Experience, Applications and Models,= pp. 19-26. ACM, 2015. =20 Thanks Dimuthu --B_3590040891_2069328123 Content-type: text/html; charset="UTF-8" Content-transfer-encoding: quoted-printable

Thanks, Dimuthu, this is a good summary. Others may comment a= bout Kafka, stateful versus stateless parts of Airavata, etc.=C2=A0 You may also= find some of this discussion on the mailing list archives.

<= o:p> 

Active-active vs. active-passive is a good question, an= d we have typically thought of this in terms of individual Airavata componen= ts rather than the whole system.=C2=A0 Some components can be active-active (lik= e a stateless application manager), while others (like the orchestrator exam= ple you give below) are stafefull and may be better as active-passive.=C2=A0

 

There is also the issue of system updates= and continuous deployments, which could be added to your list.

 

Marlon

 

<= p class=3DMsoNormal>&n= bsp;

From: "dimuthu.upeksha2@gmail.com" <dimuthu.upeksha2@gmail.com&= gt;
Reply-To: "dev@airavata.apache.org" <dev@airavata= .apache.org>
Date: Thursday, October 5, 2017 at 2:40 AM
T= o: "dev@airavata.apache.org" <dev@airavata.apache.org>Subject: Linked Container Services for Apache Airavata Components -= Phase 1 - Requirement identification

 

Hi All,=

 

Within last few days, I have been going through the requ= irements and design of current setup of Airavata and I identified following = ares as the key focusing areas in the technology evaluation phase=

 

Micorservices deployment platform (container management system)

 

Possible candidates: Google Kubernetes, Apache Mesos, Apache Heli= x

As the most of the operational unit= s of Airavata is supposed to be moving into microservices based deployment p= attern, having a unified deployment platform to manage those microservices w= ill make the DevOps operations easier and faster. From the other hand, altho= ugh writing and maintaining a single micro service is a somewhat straightfor= ward way, making multiple microservies running, monitoring and maintaining t= he lifecycles manually in a production environment is an tiresome and comple= x operation to perform. Using such a deployment platform, we can easily auto= mate lots of pain points that I have mentioned earlier. 

=

 

S= calability

 

=

We need a solution that can easily scalable de= pending on the load condition of several parts of the system. For example, t= he workers in the post processing pipeline should be able scaled up and down= depending on the events come into the message queue. 

 

Availability

 

We need to support solution to be deploye= d in multiple geographically distant data centers. When evaluating container= management systems, we should consider this is as a primary requirement. Ho= wever one thing that I am not sure is the availability mode that Airavata no= rmally expect. Is it a active-active mode or active-passive mode? =

 

Service discovery

 

Once we move in to micro= service based deployment pattern, there could be scenarios where we want ser= vice discovery for several use cases. For example, if we are going to scale = up API Server to handle an increased load, we might have to put a load balan= cer in between the client and API Server instances. In that case, service di= scovery is essential to instruct the load balancer with healthy API Server e= ndpoints which are currently running in the system.

 

Clust= er coordination

 

Although micorservices = are supposed to be stateless in most of the cases, we might have scenarios t= o feed some state to particular micorservices. For example if we are going t= o implement a microservice that perform Orchestrator's role, there could be = issues if we keep multiple instances of it in several data centers to increa= se the availability. According to my understanding, there should be only one= Orchestrator being running at a time as it is the one who takes decisions o= f the job execution process. So, if we are going to keep multiple instances = of it running in the system, there should be an some sort of a leader electi= on in between Orchestrator quorum.

 

Common messaging = medium in between mocroservices

=  

This might be out of the = scope but I thought of sharing with the team to have an general idea. Idea w= as raised at the hip chat discussion with Marlon and Gaourav. Using a common= messaging medium might enable microservices to communicate with in a decoup= led manner which will increase the scalability of the system. For example th= ere is a reference architecture that we can utilize with kafka based messagi= ng medium [1], [2]. However I noticed in one paper that Kafka was previously= rejected as writing clients was onerous. Please share your views on this as= I'm not familiar with the existing fan out model based on AMQP and  pa= in points of it. 

 

Those are the main areas tha= t I have understood while going through Airavata current implementation and = requirements stated in some of the research papers. Please let me know wheth= er my understanding on above items are correct and suggestions are always we= lcome :)

 

 

References

 

Marru, S., Gunathilake, = L., Herath, C., Tangchaisin, P., Pierce, M., Mattmann, C., Singh, R., Gunara= thne, T., Chinthaka, E., Gardler, R. and Slominski, A., 2011, November. Apac= he airavata: a framework for distributed applications and computational work= flows. In Proceedings of the 2011 ACM workshop on Gateway computing environm= ents (pp. 21-28). ACM.

 

Nakandala, S., Pamidigh= antam, S., Yodage, S., Doshi, N., Abeysinghe, E., Kankanamalage, C.P., Marru= , S. and Pierce, M., 2016, July. Anatomy of the SEAGrid Science Gateway. In = Proceedings of the XSEDE16 Conference on Diversity, Big Data, and Science at= Scale (p. 40). ACM.

=  

Pierce, Marlon E., Suresh Marr= u, Lahiru Gunathilake, Don Kushan Wijeratne, Raminder Singh, Chathuri Wimala= sena, Shameera Ratnayaka, and Sudhakar Pamidighantam. "Apache Airavata:= design and directions of a science gateway framework." Concurrency and= Computation: Practice and Experience 27, no. 16 (2015): 4282-4291.

 

Pierce, Marlon, Suresh Marru, Borries Demeler, Raminderjeet Singh= , and Gary Gorbet. "The apache airavata application programming interfa= ce: overview and evaluation with the UltraScan science gateway." In Pro= ceedings of the 9th Gateway Computing Environments Workshop, pp. 25-29. IEEE= Press, 2014.

 <= /p>

Marru, Suresh, Marlon Pierce, Sudhakar Pami= dighantam, and Chathuri Wimalasena. "Apache Airavata as a laboratory: a= rchitecture and case study for component- based gateway middleware." In= Proceedings of the 1st Workshop on The Science of Cyberinfrastructure: Rese= arch, Experience, Applications and Models, pp. 19-26. ACM, 2015.<= /p>

 

Thanks

Dimuthu

--B_3590040891_2069328123-- --B_3590040891_2143003999 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" MIId3QYJKoZIhvcNAQcCoIIdzjCCHcoCAQExDzANBglghkgBZQMEAgEFADALBgkqhkiG9w0B BwGgghtsMIIF8jCCBNqgAwIBAgIQV4YXg4/n0P80mLUGUhzntDANBgkqhkiG9w0BAQsFADCB iTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAk1JMRIwEAYDVQQHEwlBbm4gQXJib3IxEjAQBgNV BAoTCUludGVybmV0MjERMA8GA1UECxMISW5Db21tb24xMjAwBgNVBAMTKUluQ29tbW9uIFJT QSBTdGFuZGFyZCBBc3N1cmFuY2UgQ2xpZW50IENBMB4XDTE3MDkyNTAwMDAwMFoXDTIwMDky NDIzNTk1OVowgc0xDjAMBgNVBBETBTQ3NDA1MRswGQYDVQQKExJJbmRpYW5hIFVuaXZlcnNp dHkxFzAVBgNVBAkTDjkwMCBFLiA3dGggU3QuMRcwFQYDVQQJEw45MDAgRS4gN3RoIFN0LjEL MAkGA1UECBMCSU4xFDASBgNVBAcTC0Jsb29taW5ndG9uMQswCQYDVQQGEwJVUzEcMBoGA1UE AxMTTWFybG9uIEVkd2luIFBpZXJjZTEeMBwGCSqGSIb3DQEJARYPbWFycGllcmNAaXUuZWR1 MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjkdEqPIRu9+8dH4v1MhtydBXrxFj gP33adzpW4JsYKUBlbs2dMrxDj/AsX4XHmdthkMk/8P7/z3idENIQznfIwuXpBez2gg8MLlx YwDu209HEsgbjXAGIPWmFtT5KMgV65OV/ZTEsBxvrKKRgoe/ACkSJkZjwDWaJOZJTyZYoYz4 CFQLgeG0P+JreqVjtO4pt396exUUltDgtFLfQK302NagraRLhejApYMSkv/Y7u5cGIWRGCln Qw0yoN+2nDXKw2DnP/1zJ2mQpNWAH4bhcn2meytU7KP6dbQUWzvPuX8FtsuDk9UAFs5h6ue5 SDxRpHvow4GwwjSfxSAK0ncLRQIDAQABo4ICDjCCAgowHwYDVR0jBBgwFoAUfe5x0B/rqWFt j2aErQ8rB+Ix27wwHQYDVR0OBBYEFM4VO86fo6WK07i0u2GJV0IwLpdnMA4GA1UdDwEB/wQE AwIFoDAMBgNVHRMBAf8EAjAAMB0GA1UdJQQWMBQGCCsGAQUFBwMEBggrBgEFBQcDAjBqBgNV HSAEYzBhMF8GDSsGAQQBriMBBAMDAAEwTjBMBggrBgEFBQcCARZAaHR0cHM6Ly93d3cuaW5j b21tb24ub3JnL2NlcnQvcmVwb3NpdG9yeS9jcHNfc3RhbmRhcmRfY2xpZW50LnBkZjBVBgNV HR8ETjBMMEqgSKBGhkRodHRwOi8vY3JsLmluY29tbW9uLXJzYS5vcmcvSW5Db21tb25SU0FT dGFuZGFyZEFzc3VyYW5jZUNsaWVudENBLmNybDCBigYIKwYBBQUHAQEEfjB8MFAGCCsGAQUF BzAChkRodHRwOi8vY3J0LmluY29tbW9uLXJzYS5vcmcvSW5Db21tb25SU0FTdGFuZGFyZEFz c3VyYW5jZUNsaWVudENBLmNydDAoBggrBgEFBQcwAYYcaHR0cDovL29jc3AuaW5jb21tb24t cnNhLm9yZzA7BgNVHREENDAyoB8GCisGAQQBgjcUAgOgEQwPbWFycGllcmNAaXUuZWR1gQ9t YXJwaWVyY0BpdS5lZHUwDQYJKoZIhvcNAQELBQADggEBABV+A8aPX6wJ25KxkotHlpLSMR4a BnDiyzsR4pCx/nDqUcwus1pHy2GB0kKg3K1f5NVoXw3jZ3RrXOvuPYqByevZ710TEYCPPxLd H+OkI97mbt28/zMt0BfpiPAE7SFqjAMey6bf9WLXmCCMqoLJSgXctnIYsLW86aIpmEYpmJEt WJB2jIKiv2mTlFXn8gHyr72noxzGgSbuvENv69DdIHPosZi/kd97KizdYASkY3ZfA/mHmDWy byIt11kXlFwdjQteSVFYECzimwl/IlfVcjPfbxl7s96qnbAj/Q132xlXikWBhSF63odht+F1 2f+z0Dh7BW2uFpykUCC688RhHIcwggYDMIID66ADAgECAhA/vTTyulL8DtMKV6OB4b5kMA0G CSqGSIb3DQEBDQUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMKTmV3IEplcnNleTEUMBIG A1UEBxMLSmVyc2V5IENpdHkxHjAcBgNVBAoTFVRoZSBVU0VSVFJVU1QgTmV0d29yazEuMCwG A1UEAxMlVVNFUlRydXN0IFJTQSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNDA5MTkw MDAwMDBaFw0yNDA5MTgyMzU5NTlaMIGJMQswCQYDVQQGEwJVUzELMAkGA1UECBMCTUkxEjAQ BgNVBAcTCUFubiBBcmJvcjESMBAGA1UEChMJSW50ZXJuZXQyMREwDwYDVQQLEwhJbkNvbW1v bjEyMDAGA1UEAxMpSW5Db21tb24gUlNBIFN0YW5kYXJkIEFzc3VyYW5jZSBDbGllbnQgQ0Ew ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCA/spbd3fGH+yC++dZilWtwOqesQfo Jis2CaLxL0w6WUCcq5zyQClAJZJyKXiPmwZqEHy3ZAf/GPxQ26gYIMbnERnGAWhHP9mS7N00 krhknxv10ibZc9RMpuAjCW4+nfz6gtXk/qSlRnkAZeU9bui2Tn6L4ev0Zqp10duHbuEVqh2L 8kychl76E+UMaeyF1mD4qG2IcwOVp8J70vGSjvt6Y6mRqGa6tf2zLdJ//MuDm4uJNL1XXQp1 l2aAlbyX0boaGMFsuH3rRox1aP2wmvi+s+1ZPzK3cQZAVXdypS83SQGAK6uL3uzZTYq9Xl+u DzMFlb80JdFirDXxloOLw9unAgMBAAGjggFkMIIBYDAfBgNVHSMEGDAWgBRTeb9aqitKz1SA 4dibwJ3ysgNmyzAdBgNVHQ4EFgQUfe5x0B/rqWFtj2aErQ8rB+Ix27wwDgYDVR0PAQH/BAQD AgGGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwME MBEGA1UdIAQKMAgwBgYEVR0gADBQBgNVHR8ESTBHMEWgQ6BBhj9odHRwOi8vY3JsLnVzZXJ0 cnVzdC5jb20vVVNFUlRydXN0UlNBQ2VydGlmaWNhdGlvbkF1dGhvcml0eS5jcmwwdgYIKwYB BQUHAQEEajBoMD8GCCsGAQUFBzAChjNodHRwOi8vY3J0LnVzZXJ0cnVzdC5jb20vVVNFUlRy dXN0UlNBQWRkVHJ1c3RDQS5jcnQwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnVzZXJ0cnVz dC5jb20wDQYJKoZIhvcNAQENBQADggIBAHbTp8SSteS9tZZdrZm31UrUmf+ORN9FUk5De4p9 aTzTPIymIel90YVktrIFuOf9OZmEq4JrxXvclK1U8Gaj6YYyz3EZsalCwRYtbSY+SsqOUmMF 9Qt9cnyDIqyddHkJ8INCWIoyDFjeMT0cbJdU03IJaMrujWxAC1QwBW9vNWQ+8ctpfAJ7c+VU mu49r+m7e+y0glBCSuAu2JunokrpVwIN85Njf5OIdheROK8tywt39BTzk21h8t2ELUjwGAyf RHxkyWaJ3miqaOlAFipEyzGciKpqT9jSnKtvNBiIxirf3tSmEGpXl+FOkaQJDk1hscYgd9DU kV5yA5i3IQlRQ2QgVVHzyR/fCflMMF/csyMN5zgpo1elm/hUgpgVZ0Bu4MC14+hrgO4bJ8zL aiz91sPGe3csqhdxLlKo+kO7rVubrX3KLcmaYcqU/uT/qYRQoBDFta4Y4US4ygMZLOerFhlX MOVYbvXYlk/iBjPqItRUELJMjZgbo6hfHFDDgEvGYymjswKMyIfdckvU7oTlWnEmiUreuLg1 pUHu4fhgpo183v31vIXlyaNLab/wSnZmo4m5g4lpXdmxn6LZgiD5kevZsy7HlXD2n5LsSJC7 rBkTLgoyRc1gqo1m7CMW5JdRxT6zdN3UuDeIYdmO11ugli15TnkEfWZZ9KeQ3grjkh5zMIIF dzCCBF+gAwIBAgIQE+oocFv07O0MNmMJgGFDNjANBgkqhkiG9w0BAQwFADBvMQswCQYDVQQG EwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAw MDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpO ZXcgSmVyc2V5MRQwEgYDVQQHEwtKZXJzZXkgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVT VCBOZXR3b3JrMS4wLAYDVQQDEyVVU0VSVHJ1c3QgUlNBIENlcnRpZmljYXRpb24gQXV0aG9y aXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAgBJlFzYOw9sIs9CsVw127c0n 00ytUINh4qogTQktZAnczomfzD2p7PbPwdzx07HWezcoEStH2jnGvDoZtF+mvX2do2NCtnby qTsrkfjib9DsFiCQCT7i6HTJGLSR1GJk23+jBvGIGGqQIjy8/hPwhxR79uQfjtTkUcYRZ0YI UcuGFFQ/vDP+fmyc/xadGL1RjjWmp2bIcmfbIWax1Jt4A8BQOujM8Ny8nkz+rwWWNR9XWrf/ zvk9tyy29lTdyOcSOk2uTIq3XJq0tyA9yn8iNK5+O2hmAUTnAU5GU5szYPeUvlM3kHND8zLD U+/bqv50TmnHa4xgk97Exwzf4TKuzJM7UXiVZ4vuPVb+DNBpDxsP8yUmazNt925H+nND5X4O pWaxKXwyhGNVicQNwZNUMBkTrNN9N6frXTpsNVzbQdcS2qlJC9/YgIoJk2KOtWbPJYjNhLix P6Q5D9kCnusSTJV882sFqV4Wg8y4Z+LoE53MW4LTTLPtW//e5XOsIzstAL81VXQJSdhJWBp/ kjbmUZIO8yZ9HE0XvMnsQybQv0FfQKlERPSZ51eHnlAfV1SoPv10Yy+xUGUJ5lhCLkMaTLTw JUdZ+gQek9QmRkpQgbLevni3/GcV4clXhB4PY9bpYrrWX1Uu6lzGKAgEJTm4Diup8kyXHAc/ DVL17e8vgg8CAwEAAaOB9DCB8TAfBgNVHSMEGDAWgBStvZh6NLQm9/rEJlTvA73gJMtUGjAd BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB /wQFMAMBAf8wEQYDVR0gBAowCDAGBgRVHSAAMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9j cmwudXNlcnRydXN0LmNvbS9BZGRUcnVzdEV4dGVybmFsQ0FSb290LmNybDA1BggrBgEFBQcB AQQpMCcwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZIhvcN AQEMBQADggEBAJNl9jeDlQ9ew4IcH9Z35zyKwKoJ8OkLJvHgwmp1ocd5yblSYMgpEg7wrQPW CcR23+WmgZWnRtqCV6mVksW2jwMibDN3wXsyF24HzloUQToFJBv2FAY7qCUkDrvMKnXduXBB P3zQYzYhBx9G/2CkkeFnvN4ffhkUyWNnkepnB2u0j4vAbkN9w6GAbLIevFOFfdyQoaS8Le9G clc1Bb+7RrtubTeZtv8jkpHGbkD4jylW6l/VXxRTrPBPYer3IsynVgviuDQfJtl7GQVoP7o8 1DgGotPmjw7jtHFtQELFhLRAlSv0ZaBIefYdgWOWnU914Ph85I6p0fKtirOMxyHNwu8wggQ2 MIIDHqADAgECAgEBMA0GCSqGSIb3DQEBBQUAMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtB ZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAg BgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3QwHhcNMDAwNTMwMTA0ODM4WhcNMjAw NTMwMTA0ODM4WjBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNV BAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF eHRlcm5hbCBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAt/caM+by AAQtOeBOW+0fvGwPzbX6I7bO3psRM5ekKUx9k5+9SryT7QMa44/P5W1QWtaXKZRagLBJetsu lf24yr83OC0ePpFBrXBWx/BPP+gynnTKyJBU6cZfD3idmkA8Dqxhql4Uj56HoWpQ3NeaTq8F s6ZxlJxxs1BgCscTnTgHhgKo6ahpJhiQq0ywTyOrOk+E2N/On+Fpb7vXQtdrROTHre5tQV9y WnEIN7N5ZaRZoJQ39wAvDcKSctrQOHLbFKhFxF0qfbe01sTurM0TRLfJK91DACX6Yblpalgj EbenM49WdVn1zSnXRrcKK2W200JvFbK4e/vv6V1T1TRaJwIDAQABo4HcMIHZMB0GA1UdDgQW BBStvZh6NLQm9/rEJlTvA73gJMtUGjALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zCB mQYDVR0jBIGRMIGOgBStvZh6NLQm9/rEJlTvA73gJMtUGqFzpHEwbzELMAkGA1UEBhMCU0Ux FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5hbCBUVFAg TmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9vdIIBATANBgkqhkiG 9w0BAQUFAAOCAQEAsJvghSXC1iPiD5YGkp1BmJzZhHmB2R5bFAcjNmWPsNh3u6xBbEdgg1Gw +TI95/z2JhPHgBalv1r8h894eYkhmuJMBwqGNbzy3lHE0pa33H5O7nD9HDnrDAJRFC2OvRbg wd9Gdeckrez0QrSFk3AQZ7qdBjVKGNMresxRQqF6Y9Hmu6HFK8I2vhMN5r1jfnl7pwkNQKtq 3Y+Kw/b2jBpCBVHURfWfp2IhaBUgQzyZ53y9JNipkRdziD9WGzE4GLRxD5rNyA6eji4b4YyY g8sfMfFETMYEc0l2YA/H+L0XgGsu6cxMDlqaeQ8gCi7VnmMmHlWSlNiCF1p70LzHj06GBDCC BbYwggSeoAMCAQICEQDKOadcMhKdFIHzLZCcFPLWMA0GCSqGSIb3DQEBBQUAMGQxCzAJBgNV BAYTAlVTMRIwEAYDVQQKEwlJbnRlcm5ldDIxETAPBgNVBAsTCEluQ29tbW9uMS4wLAYDVQQD EyVJbkNvbW1vbiBTdGFuZGFyZCBBc3N1cmFuY2UgQ2xpZW50IENBMB4XDTE2MDkyMjAwMDAw MFoXDTE3MDkyMjIzNTk1OVowgccxDjAMBgNVBBETBTQ3NDA1MRswGQYDVQQKExJJbmRpYW5h IFVuaXZlcnNpdHkxFzAVBgNVBAkTDjkwMCBFLiA3dGggU3QuMRcwFQYDVQQJEw45MDAgRS4g N3RoIFN0LjELMAkGA1UECBMCSU4xFDASBgNVBAcTC0Jsb29taW5ndG9uMQswCQYDVQQGEwJV UzEWMBQGA1UEAxMNTWFybG9uIFBpZXJjZTEeMBwGCSqGSIb3DQEJARYPbWFycGllcmNAaXUu ZWR1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwUrwoGnbBv77Z503L7z6UVPS T0kvBVA9e9A9xK6uxXaC7XfRaSUhEMQjkLiYiFFnO5TahPt+Hp8642TmgPeYt4hwBeBJ9y9K gEXt3mslR4SXF4qcggU9DxtS/4HgJJBbd9oQ5+0yzj7U4izqpCtVEZYBrBG7rYmFd4IlVmi0 tdAXvZ9XhOiy3Q1xSAyTbQwILwhgV/58EUGSOLpr3ugmTyDgxbTCZ6Uq4xEUb/YkzpEdA/o0 o+Z4kbksRJaqENLud+BYodLwqcTY+60t/5iTaf/G1QkRWyKqpcyKZOaBEZoz13My5RXFzyCz yZAk7z8nwVC23aZ66Qll/MOLnZteYQIDAQABo4IB/TCCAfkwHwYDVR0jBBgwFoAU6Ne9lqrd 0AjvoTOeXlmYPBK3m5EwHQYDVR0OBBYEFFNo8kEsb7M6s02UHO9hn6B7B42uMA4GA1UdDwEB /wQEAwIFoDAMBgNVHRMBAf8EAjAAMB0GA1UdJQQWMBQGCCsGAQUFBwMEBggrBgEFBQcDAjBq BgNVHSAEYzBhMF8GDSsGAQQBriMBBAMDAAEwTjBMBggrBgEFBQcCARZAaHR0cHM6Ly93d3cu aW5jb21tb24ub3JnL2NlcnQvcmVwb3NpdG9yeS9jcHNfc3RhbmRhcmRfY2xpZW50LnBkZjBO BgNVHR8ERzBFMEOgQaA/hj1odHRwOi8vY3JsLmluY29tbW9uLm9yZy9JbkNvbW1vblN0YW5k YXJkQXNzdXJhbmNlQ2xpZW50Q0EuY3JsMIGABggrBgEFBQcBAQR0MHIwSgYIKwYBBQUHMAKG Pmh0dHA6Ly9jZXJ0LmluY29tbW9uLm9yZy9JbkNvbW1vblN0YW5kYXJkQXNzdXJhbmNlQ2xp ZW50Q0EuY3J0MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5pbmNvbW1vbi5vcmcwOwYDVR0R BDQwMqAfBgorBgEEAYI3FAIDoBEMD21hcnBpZXJjQGl1LmVkdYEPbWFycGllcmNAaXUuZWR1 MA0GCSqGSIb3DQEBBQUAA4IBAQBZ0SFaM3LSQlP61UoWNI37wcZq4Cun04u2Pt0jj4BlTl/y Mb9gXN9o9mm4rTKEM23CGNz6A6wktbDAvK3TbU+A/dYGPpsXvKtnpKqWtjUU23DN7Yy4zR/3 7dh2hDpjp4R9tqG3/58wDGr2HcbZYEw5it+iwDvxca/HMv6OJiS9ag5wXgmFMC+O7e12riQA 6esC6nReUgIhiyMz4ZGkumts2hXy+OUZ8QGpRP/D8GEw8RX85gpESxNWS2JC2+3mFV6+bgma nk95s6lc1ZhTlcIM/CYuCefPvSHyFARm22IIOmX9KBLFd95abPpyyuX363WwQK56m0Jhnf74 2SiaJLtsMYICNTCCAjECAQEwgZ4wgYkxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJNSTESMBAG A1UEBxMJQW5uIEFyYm9yMRIwEAYDVQQKEwlJbnRlcm5ldDIxETAPBgNVBAsTCEluQ29tbW9u MTIwMAYDVQQDEylJbkNvbW1vbiBSU0EgU3RhbmRhcmQgQXNzdXJhbmNlIENsaWVudCBDQQIQ V4YXg4/n0P80mLUGUhzntDANBglghkgBZQMEAgEFAKBpMC8GCSqGSIb3DQEJBDEiBCBE93Ya qmWvFCweBZmt1bvd7ynFzAITFsUzspexS1iO8jAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcB MBwGCSqGSIb3DQEJBTEPFw0xNzEwMDUxMzM0NTFaMA0GCSqGSIb3DQEBAQUABIIBAFaL3jUA PZzQVZcpb447onaC0KltiCbpfJbi3NW2tewNY34U8eNE1qgL5xD9OEcg3i9a4oEB4/twoIgq Qeq9we27gPfrZDvKkqSfZ4duBoBipkHGDiDDKZgxsrdREmXdAXxrPvn811drIvngG84/bk1V OrUnFjQv7Kq6uALR7cvkDjZSK33jG1HHSfpQS1emYL0jg2e9BEvW7v9JbRa93psyK+naLERp geM2v0DeQ3X89qdSENCTN2zgABqikk+r7VLHxa4ISqQgLEpu5LNEM808VtQFsH23O+mpXD+r W2DPm4k+kCUuRLP1yocKhtqZXc+IG/nJPlcbwuJ4aXwSr5M= --B_3590040891_2143003999--