From c75c8bcf8f60381ac4621cc374f65dd153aadab1 Mon Sep 17 00:00:00 2001 From: Andreas Mittag Date: Wed, 21 Jan 2026 16:09:37 +0000 Subject: [PATCH 001/128] PMP DoD added --- docs/platform_management_plan/project_management.rst | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index 91584ae01d3..2b2430de308 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -513,3 +513,12 @@ The *Technical lead circle* regularly monitors the status of the sagas with the As soon as the saga is implemented and fulfills to 100% our software development process requirements, the decision is taken in the *Technical lead circle* whether the feature should be officially available and in case of the positive decision, the feature flag status is changed from "experimental" to "official". + +PMP Definition of Done +====================== +- The **Definitions of Done** for all Platform Management Plans are fulfilled. +- Project Organization: Org Chart and description is available and up to date. +- Project Internal Communication: Team Overview with meeting structure is available and and Slack channels are established and maintained. +- Scheduling: Meetings are scheduled in the Eclipse SDV calendar. +- Milestones & Releases: Roadmap with Milestones and Releases are available and up to date. +- General: All Reviews are performed according to their definitions, the respective templates are used. From b096060d442b1dfc4b35a96f1cc0eeb0e2ad3b67 Mon Sep 17 00:00:00 2001 From: Andreas Mittag Date: Wed, 21 Jan 2026 16:16:07 +0000 Subject: [PATCH 002/128] Docu headline above docu info --- docs/platform_management_plan/project_management.rst | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index 2b2430de308..37e36912079 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -12,6 +12,9 @@ # SPDX-License-Identifier: Apache-2.0 # ******************************************************************************* +Project Management Plan +####################### + .. document:: Project Management Plan :id: doc__project_mgt_plan :status: draft @@ -20,8 +23,7 @@ :realizes: wp__project_mgt :tags: platform_management -Project management plan -####################### +.. _pmp_pm_organization: Project organization ==================== From 6962aa661b9b68a21265bcddc6de038cd682afcf Mon Sep 17 00:00:00 2001 From: Andreas Mittag Date: Wed, 21 Jan 2026 16:23:39 +0000 Subject: [PATCH 003/128] ORG: Chart, Steering Committees and Communities adapted --- .../_assets/organization_orgchart.drawio.svg | 736 ++++++++++++++++++ .../project_management.rst | 276 +++++-- 2 files changed, 968 insertions(+), 44 deletions(-) create mode 100644 docs/platform_management_plan/_assets/organization_orgchart.drawio.svg diff --git a/docs/platform_management_plan/_assets/organization_orgchart.drawio.svg b/docs/platform_management_plan/_assets/organization_orgchart.drawio.svg new file mode 100644 index 00000000000..c51a8312b4c --- /dev/null +++ b/docs/platform_management_plan/_assets/organization_orgchart.drawio.svg @@ -0,0 +1,736 @@ + + + + + + + + + + + + + + + + + + + +
+
+
+ Feature Team: BAS +
+
+
+
+ + Feature Team: BAS + +
+
+
+ + + + + + + +
+
+
+ Feature Team: COM +
+
+
+
+ + Feature Team: COM + +
+
+
+ + + + + + + +
+
+
+ Feature Team: CFG +
+
+
+
+ + Feature Team: CFG + +
+
+
+ + + + + + + +
+
+
+ Feature Team: FEO +
+
+
+
+ + Feature Team: FEO + +
+
+
+ + + + + + + +
+
+
+ Feature Team: KYR +
+
+
+
+ + Feature Team: KYR + +
+
+
+ + + + + + + +
+
+
+ Feature Team: ... +
+
+
+
+ + Feature Team: ... + +
+
+
+ + + + + + + +
+
+
+ Feature Team: PER +
+
+
+
+ + Feature Team: PER + +
+
+
+ + + + + + + +
+
+
+ Community: Process +
+
+
+
+ + Community: Process + +
+
+
+ + + + + + + +
+
+
+ Steering: Project / Tech Lead Circle +
+
+
+
+ + Steering: Project / Tech Lead Circle + +
+
+
+ + + + + + + +
+
+
+ Project Management +
+
+
+
+ + Project Management + +
+
+
+ + + + + + + +
+
+
+ Security Management +
+
+
+
+ + Security Management + +
+
+
+ + + + + + + +
+
+
+ Quality Management +
+
+
+
+ + Quality Management + +
+
+
+ + + + + + + +
+
+
+ Safey Management +
+
+
+
+ + Safey Management + +
+
+
+ + + + + + + +
+
+
+ Community: Marketing and Communication +
+
+
+
+ + Community: Marketing and Communication + +
+
+
+ + + + + + + +
+
+
+ Community Integration and Release +
+
+
+
+ + Community Integration and Release + +
+
+
+ + + + + + + +
+
+
+ External Communication +
+
+
+
+ + External Communication + +
+
+
+ + + + + + + +
+
+
+ Release Management +
+
+
+
+ + Release Management + +
+
+
+ + + + + + + +
+
+
+ Community: Architecture +
+
+
+
+ + Community: Architecture + +
+
+
+ + + + + + + +
+
+
+ Community: Infrastructure +
+
+
+
+ + Community: Infrastructure + +
+
+
+ + + + + + + +
+
+
+ Change Management +
+
+
+
+ + Change Management + +
+
+
+ + + + + + + +
+
+
+ Software Verification +
+
+
+
+ + Software Verification + +
+
+
+ + + + + + + +
+
+
+ Software Development +
+
+
+
+ + Software Development + +
+
+
+ + + + + + + +
+
+
+ Community: Testing +
+
+
+
+ + Community: Testing + +
+
+
+ + + + + + + +
+
+
+ Problem Resolution +
+
+
+
+ + Problem Resolution + +
+
+
+ + + + + + + +
+
+
+ Tool Management +
+
+
+
+ + Tool Management + +
+
+
+ + + + + + + +
+
+
+ Config Mangement +
+
+
+
+ + Config Mangement + +
+
+
+ + + + + + + +
+
+
+ Feature Development +
+
+
+
+ + Feature Development + +
+
+
+ + + + + + + +
+
+
+ Docu Management +
+
+
+
+ + Docu Management + +
+
+
+ + + + + + + +
+
+
+ Internal Communication +
+
+
+
+ + Internal Communication + +
+
+
+ + + + + + + +
+
+
+ Cross functional Community +
+
+
+
+ + Cross functional Community + +
+
+
+ + + + + + + +
+
+
+ Steering Circle +
+
+
+
+ + Steering Circle + +
+
+
+ + + + + + + +
+
+
+ Legend +
+
+
+
+ + Legend + +
+
+
+ + + + + + + +
+
+
+ Development Team +
+
+
+
+ + Development Team + +
+
+
+ + + + + + + +
+
+
+ Process Area +
+
+
+
+ + Process Area + +
+
+
+
+ + + + + Text is not SVG - cannot display + + + +
diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index 37e36912079..83e8e34f275 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -25,66 +25,254 @@ Project Management Plan .. _pmp_pm_organization: -Project organization +Project Organization ==================== -.. _pmp_pm_steering_committees: - -Steering committees -------------------- -Steering of the project is done by two committees: *project lead circle* and *technical lead circle*. +.. code:: -* **Project lead circle** + Team Documentation Structure in this Document: - Members of *Project lead circle* are the project leads of the *S-CORE* project. The election of project leads is done as described in the `Project Roles chapter `_ of *Eclipse Foundation Project Handbook*. In case of absence, a project lead can nominate a deputy. + - Responsibilities + - Members + - Speaker / Lead + - Meeting Minutes + - Slack channel + - Open Point List + - Repository Ownership - The main tasks of the *Project lead circle* are: - * Definition, discussion of and decisions about strategical topics (e.g. which associations to approach, confirmation of roadmap, representation in public). - * Decision on which new software modules should be added or removed from the project. The decision is done based on proposal from the *Technical lead circle*. In case of changes to the existing modules and no concordant decision in the *Technical Lead Circle*, the *Project Lead Circle* has to decide about the change. - * Election of Technical Leads. - * Last instance of escalation path. +.. + Team Template - *Project lead circle* proposes and elects a *Project lead circle Assistant* and his deputy with bare majority, who is responsible for scheduling and announcing meetings, preparing and announcing agenda, writing meeting minutes and protocols. *Project lead circle* can reelect *Project lead circle Assistant* at any time. The *Project lead circle Assistant* and his deputy can resign anytime on their own will. + XYZ Team (XYZ) + ^^^^^^^^^^^^^^ -* **Technical lead circle** + .. _XYZ Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-XYZ-team + .. _XYZ Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-XYZ-lead + .. _XYZ Meeting Minutes: https://github.com/eclipse-score/score/wiki/XYZM + .. _XYZ Slack Channel: https://sdvworkinggroup.slack.com/archives/XYZ + .. _XYZ Open Point List: https://github.com/orgs/eclipse-score/projects/XYZ - Each *Project Lead* is allowed to nominate one *Technical Lead*. The *Technical Leads* form the "Technical Lead Circle". In case of absence, a technical lead can nominate a deputy. *Technical Leads* have the following responsibilities: - * Review and approval of contributions, e.g. *Feature Requests*, which add or modify S-CORE platform features. - * Project management of the platform development, e.g., creation of the roadmap. - * High-level project control and coordination between multiple software modules. - * Escalation instance for software module project leads and committers. + - XYZ Responsibilities + - tbd + - `XYZ Core Members`_ + - `XYZ Lead`_ + - `XYZ Meeting Minutes`_ + - `XYZ Slack Channel <>`_ + - `XYZ Open Point List <>`_ + - XYZ Repositories: + - https://github.com/eclipse-score/tbd - *Technical lead circle* proposes and elects a *Technical lead circle Assistant* and his deputy with bare majority during *Technical Lead Circle meeting*, who is responsible for scheduling and announcing meetings, preparing and announcing agenda, writing meeting minutes and protocols. *Technical lead circle* can reelect *Technical lead circle Assistant* at any time. The *Technical lead circle Assistant* and his deputy can resign anytime on their own will. -.. _pmp_pm_technical_committees: +Org Chart and Main Platform Management Plan Responsibilities +------------------------------------------------------------ -Technical committees --------------------- -* **Communities** +.. image:: _assets/organization_orgchart.drawio.svg + :width: 900 + :alt: Infrastructure overview + :align: center - *Communities* allow committers and contributors to exchange their - opinions, take architectural decisions and implement the topics of some special - technical domain, e.g. testing tooling. One of the *Communities*' important activities - is to do a breakdown of platform sagas to the concrete tasks (see `Planning`_) . - Currently following *Communities* are defined in the *S-CORE* project: - * *Infrastructure*: *community* for all kind of infra topics: - compiler, IDE, build toolchain and etc. See `GitHub Discussions/Infrastructure Community `_ for more. - * *Testing*: *community* to clarify questions and define testing strategy - for the 'S-CORE' project. See `GitHub Discussions/Testing Community `_ for more. - * *Software Architecture*: *community* for clarification of software architecture topics, - e.g. discussion of new features or coding guidelines. See `GitHub Discussions/Architecture Community `_ for more. - * *Software Development Process*: *community* for definition and maintaining - of safety, security and quality software development process. See `GitHub Discussions/SW Dev Process Community `_ for more. - * *Marketing & Communication (MarCom)*: *community* for coordination of public relations, e.g. the maintenance of the website & organization of general events. - See `GitHub Discussions/MarCom Community `_ for more. +.. _pmp_pm_steering_committees: - The planning of the activities is done by every *Community* independent of other - teams. Each *Community* has a *Community Lead*, who is nominated by the *Technical lead circle*. The prioritization of some topics can be requested by the *Technical lead circle* - in order to achieve milestones on time. All important architectural decisions - should be reported to the project as *Feature Request* to get the final approvement from the *Technical lead circle*. +Steering Committees +------------------- +Steering of the project is done by two committees: + +Project Lead Circle (PLC) +^^^^^^^^^^^^^^^^^^^^^^^^^ +.. _PLC Members: https://github.com/orgs/eclipse-score/teams/automotive-score-PLC-team +.. _PLC Speaker: https://github.com/orgs/eclipse-score/teams/automotive-score-PLC-lead +.. _PLC Meeting Minutes: https://github.com/eclipse-score/score/wiki/PLCM +.. _PLC Slack Channel: https://sdvworkinggroup.slack.com/archives/PLC +.. _PLC Open Point List: https://github.com/orgs/eclipse-score/projects/PLC + +- Responsibilities + - Decisions about strategical topics + - Review and approval of contributions, e.g. Feature Requests, which add or modify features + - Project Management + - Planning and Approval of Releases + - Escalation instance +- `PLC Members`_ + - `PLC election `_ +- `PLC Speaker`_ +- `PLC Meeting Minutes`_ +- `PLC Slack channel`_ +- `PLC Open Point List`_ + +.. _pmp_pm_tlc: + +Technical Lead Circle (TLC) +^^^^^^^^^^^^^^^^^^^^^^^^^^^ +The Technical Lead Circle will soon be merged with the Project Lead Circle: `#2381: Merge TLC into PLC `_ + +.. _TLC Members: https://github.com/orgs/eclipse-score/teams/automotive-score-TLC-team +.. _TLC Speaker: https://github.com/orgs/eclipse-score/teams/automotive-score-TLC-lead +.. _TLC Meeting Minutes: https://github.com/eclipse-score/score/wiki/TLCM +.. _TLC Slack Channel: https://sdvworkinggroup.slack.com/archives/C085F44D2CS +.. _TLC Open Point List: https://github.com/orgs/eclipse-score/projects/3 + +- TLC Responsibilities: + - Review and approval of contributions, e.g. *Feature Requests*, which add or modify S-CORE platform features. + - Project management of the platform development, e.g., creation of the roadmap. + - High-level project control and coordination between multiple software modules. + - Escalation instance for software module project leads and committers. +- `TLC Members`_ + - TLC Election: Each *Project Lead* is allowed to nominate one *Technical Lead*. +- `TLC Meeting Minutes`_ +- `TLC Slack Channel`_ +- `TLC Open Point List`_ +- TLC Repositories: + - https://github.com/eclipse-score/score + +.. _pmp_pm_communities: + +Communities +----------- +*Communities* are installed to work on cross functional topics, such as program level architectural decisions, +commonly used development & testing infrastructure, processes or final integration & release. +Each *Community* has a *Community Lead* to organize the community`s work. + +The following *Communities* are established: + +.. _pmp_pm_arc: + +Architecture Community (ARC) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. _ARC Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-ARC-team +.. _ARC Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-ARC-lead +.. _ARC Meeting Minutes: https://github.com/eclipse-score/score/wiki/ARCM +.. _ARC Slack Channel: https://sdvworkinggroup.slack.com/archives/C08C1HG5AKY +.. _ARC Open Point List: https://github.com/orgs/eclipse-score/projects/3 + +- ARC Responsibilities + - clarification of software architecture topics, e.g. discussion of new features or coding guidelines +- `ARC Core Members`_ +- `ARC Lead`_ +- `ARC Meeting Minutes`_ +- `ARC Slack Channel`_ +- `ARC Open Point List`_ +- ARC Repositories: + - https://github.com/eclipse-score/score + +Process Community (PRC) +^^^^^^^^^^^^^^^^^^^^^^^ +.. _PRC Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-PRC-team +.. _PRC Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-PRC-lead +.. _PRC Meeting Minutes: https://github.com/eclipse-score/score/wiki/PRCM +.. _PRC Slack Channel: https://sdvworkinggroup.slack.com/archives/C0864L05332 +.. _PRC Open Point List: https://github.com/orgs/eclipse-score/projects/21 +.. _PIM Open Point List: https://github.com/orgs/eclipse-score/projects/7 + +- PRC Responsibilities + - defining and maintaining the software development process (incl. safety, security and quality) + - defining and maintaining the process implementation (PIM) +- `PRC Core Members`_ +- `PRC Lead`_ +- `PRC Meeting Minutes`_ +- `PRC Slack Channel`_ +- `PRC Open Point List`_ +- `PIM Open Point List`_ +- PRC Repositories: + - https://github.com/eclipse-score/process_description + - https://github.com/eclipse-score/score + + +Infrastructure Community (INF) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. _INF Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-INF-team +.. _INF Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-INF-lead +.. _INF Meeting Minutes: https://github.com/eclipse-score/score/wiki/INFM +.. _INF Slack Channel: https://sdvworkinggroup.slack.com/archives/C0894QGRZDM +.. _INF Open Point List: https://github.com/orgs/eclipse-score/projects/6 + +- INF Responsibilities + - providing and maintaining the development infrastructure: Compiler, IDE, build toolchains +- `INF Core Members`_ +- `INF Lead`_ +- `INF Meeting Minutes`_ +- `INF Slack Channel`_ +- `INF Open Point List`_ +- INF Toolchain Repositories: + - https://github.com/eclipse-score/bazel_platforms + - https://github.com/eclipse-score/toolchains_gcc + - https://github.com/eclipse-score/toolchains_gcc_packages + - https://github.com/eclipse-score/toolchains_qnx + - https://github.com/eclipse-score/toolchains_rust +- INF Tooling Repositories: + - https://github.com/eclipse-score/devcontainer + - https://github.com/eclipse-score/docs-as-code + - https://github.com/eclipse-score/tooling +- INF other Repositories: + - https://github.com/eclipse-score/apt-install + - https://github.com/eclipse-score/cicd-workflows + - https://github.com/eclipse-score/bazel_registry + - https://github.com/eclipse-score/bazel_registry_ui + - https://github.com/eclipse-score/.eclipsefdn + - https://github.com/eclipse-score/examples + +Testing Community (TST) +^^^^^^^^^^^^^^^^^^^^^^^ +.. _TST Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-TST-team +.. _TST Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-TST-lead +.. _TST Meeting Minutes: https://github.com/eclipse-score/score/wiki/TSTM +.. _TST Slack Channel: https://sdvworkinggroup.slack.com/archives/TSTC08B6C78EF3 +.. _TST Open Point List: https://github.com/orgs/eclipse-score/projects/5 + + +- TST Responsibilities + - defining and maintaining testing strategy and infrastructure +- `TST Core Members`_ +- `TST Lead`_ +- `TST Meeting Minutes`_ +- `TST Slack Channel`_ +- `TST Open Point List`_ +- TST Repositories: + - https://github.com/eclipse-score/itf + - https://github.com/eclipse-score/testing_tools + + +Integration and Release Community (INT) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. _INT Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-INT-team +.. _INT Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-INT-lead +.. _INT Meeting Minutes: https://github.com/eclipse-score/score/wiki/INTM +.. _INT Slack Channel: https://sdvworkinggroup.slack.com/archives/INT +.. _INT Open Point List: https://github.com/orgs/eclipse-score/projects/INT + + +- INT Responsibilities + - integration of available modules to one or several reference integrations + - releasing +- `INT Core Members`_ +- `INT Lead`_ +- `INT Meeting Minutes`_ +- `INT Slack Channel`_ +- `INT Open Point List`_ +- INT Repositories: + - https://github.com/eclipse-score/score + +Marketing & Communication Community +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. _MCM Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-MCM-team +.. _MCM Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-MCM-lead +.. _MCM Meeting Minutes: https://github.com/eclipse-score/score/wiki/MCMM +.. _MCM Slack Channel: https://sdvworkinggroup.slack.com/archives/C032X75QGTT +.. _MCM Open Point List: https://github.com/orgs/eclipse-score/projects/11 + +- MCM Responsibilities + - coordination of public relations, e.g. the maintenance of the website & organization of general events +- `MCM Core Members`_ +- `MCM Lead`_ +- `MCM Meeting Minutes`_ +- `MCM Slack Channel`_ +- `MCM Open Point List`_ +- MCM Repositories: + - https://github.com/eclipse-score/eclipse-score.github.io + - https://github.com/eclipse-score/eclipse-score-website + - https://github.com/eclipse-score/eclipse-score-website-preview + - https://github.com/eclipse-score/eclipse-score-website-published * **Feature Teams** From b200df382b7251b5370795422629826991368ee2 Mon Sep 17 00:00:00 2001 From: Andreas Mittag Date: Wed, 21 Jan 2026 16:25:38 +0000 Subject: [PATCH 004/128] ORG: Feature Teams adapted --- .../project_management.rst | 203 ++++++++++++++++-- 1 file changed, 187 insertions(+), 16 deletions(-) diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index 83e8e34f275..d78a7ce1c55 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -274,22 +274,193 @@ Marketing & Communication Community - https://github.com/eclipse-score/eclipse-score-website-preview - https://github.com/eclipse-score/eclipse-score-website-published -* **Feature Teams** - - *Feature Teams* have end-to-end responsibility for specific functionalities. This includes all - aspects beginning with the architecture definition to the integration test. They are usually assigned - to the *S-CORE* main integration project or to one particular software module. *Feature Teams* work - independently of each other on *GitHub Issues* in the assigned software module. - *Feature Teams* consist mainly of the contributors, who can specify requirements, define architecture, - develop source code and implement tests afterwards. *Project Leads* and *Committers* are also *Contributors* - and effectively work on processing of *GitHub Issues*. - - Every *Feature Team* should have at least one committer who can approve and merge the Pull Requests of the Contributors. - - Every *Feature Team* should also have a *Feature Team Lead*. The person with this role is responsible for - organizing the meetings, writing meeting protocols and representing the current status of the *Feature Team* - work in various management reporting or plannig calls. *Feature Team Lead* is nominated by *Technical Leads* by election. - Normally, this is the owner of the original *Feature Request*. +Feature Teams +------------- +*Feature Teams* have end-to-end responsibility for providing specific functionalities. This includes all +development aspects beginning with the architecture definition to the integration test. +One *Team* may work independently of other *Teams* on the team-assigned *GitHub Issues*, +and needs at least one :need:`Committer ` who can approve & merge the Pull Requests +Each *Feature Team* has one *Lead* to organize the Team`s work. + +The following *Feature Teams* are defined in the *S-CORE* project: + +Baselibs Feature Team (BAS) +^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. _BAS Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-BAS-team +.. _BAS Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-BAS-lead +.. _BAS Meeting Minutes: https://github.com/eclipse-score/score/wiki/BASM +.. _BAS Slack Channel: https://sdvworkinggroup.slack.com/archives/C090UKSL5L2 +.. _BAS Open Point List: https://github.com/orgs/eclipse-score/projects/24 + +- BAS Responsibilities + - development of the base libraries +- `BAS Core Members`_ +- `BAS Lead`_ +- `BAS Meeting Minutes`_ +- `BAS Slack Channel`_ +- `BAS Open Point List`_ +- BAS Repositories: + - https://github.com/eclipse-score/baselibs + - https://github.com/eclipse-score/baselibs_rust + +.. _pmp_pm_com: + +Communication Feature Team (COM) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. _COM Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-COM-team +.. _COM Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-COM-lead +.. _COM Meeting Minutes: https://github.com/eclipse-score/score/wiki/COMM +.. _COM Slack Channel: https://sdvworkinggroup.slack.com/archives/C08C0JATADP +.. _COM Open Point List: https://github.com/orgs/eclipse-score/projects/19 + +- COM Responsibilities + - development of the communication and protocols +- `COM Core Members`_ +- `COM Lead`_ +- `COM Meeting Minutes`_ +- `COM Slack Channel`_ +- `COM Open Point List`_ +- COM Repositories: + - https://github.com/eclipse-score/communication + - https://github.com/eclipse-score/inc_mw_com + - https://github.com/eclipse-score/inc_someip_gateway + +.. _pmp_pm_cfg: + +Configuration Management Feature Team (CFG) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. _CFG Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-CFG-team +.. _CFG Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-CFG-lead +.. _CFG Meeting Minutes: https://github.com/eclipse-score/score/wiki/CFGM +.. _CFG Slack Channel: https://sdvworkinggroup.slack.com/archives/CFG +.. _CFG Open Point List: https://github.com/orgs/eclipse-score/projects/CFG + +- CFG Responsibilities + - development of configuration management +- `CFG Core Members`_ +- `CFG Lead`_ +- `CFG Meeting Minutes`_ +- `CFG Slack Channel`_ +- `CFG Open Point List`_ +- CFG Repositories: + - https://github.com/eclipse-score/config_management + - https://github.com/eclipse-score/inc_config_management + + +Fixed Execution Order Team (FEO) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. _FEO Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-FEO-team +.. _FEO Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-FEO-lead +.. _FEO Meeting Minutes: https://github.com/eclipse-score/score/wiki/FEOM +.. _FEO Slack Channel: https://sdvworkinggroup.slack.com/archives/FEO +.. _FEO Open Point List: https://github.com/orgs/eclipse-score/projects/9 + +- FEO Responsibilities + - development of fixed execution order +- `FEO Core Members`_ +- `FEO Lead`_ +- `FEO Meeting Minutes`_ +- `FEO Slack Channel`_ +- `FEO Open Point List`_ +- FEO Repositories: + - https://github.com/eclipse-score/feo + - https://github.com/eclipse-score/inc_feo + + +Kyron Team (KYR) +^^^^^^^^^^^^^^^^ +.. _KYR Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-KYR-team +.. _KYR Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-KYR-lead +.. _KYR Meeting Minutes: https://github.com/eclipse-score/score/wiki/KYRM +.. _KYR Slack Channel: https://sdvworkinggroup.slack.com/archives/KYR +.. _KYR Open Point List: https://github.com/orgs/eclipse-score/projects/38 + + +- KYR Responsibilities + - development of Kyron +- `KYR Core Members`_ +- `KYR Lead`_ +- `KYR Meeting Minutes`_ +- `KYR Slack Channel`_ +- `KYR Open Point List`_ +- KYR Repositories: + - https://github.com/eclipse-score/kyron + + +Logging Team (LOG) +^^^^^^^^^^^^^^^^^^ +.. _LOG Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-LOG-team +.. _LOG Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-LOG-lead +.. _LOG Meeting Minutes: https://github.com/eclipse-score/score/wiki/LOGM +.. _LOG Slack Channel: https://sdvworkinggroup.slack.com/archives/C089XP2PGQZ +.. _LOG Open Point List: https://github.com/orgs/eclipse-score/projects/31 + +- LOG Responsibilities + - development of Logging +- `LOG Core Members`_ +- `LOG Lead`_ +- `LOG Meeting Minutes`_ +- `LOG Slack Channel`_ +- `LOG Open Point List`_ +- LOG Repositories: + - https://github.com/eclipse-score/logging + - https://github.com/eclipse-score/inc_mw_log + +Lifecycle Management and Health Monitoring Team (LCM) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. _LCM Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-LCM-team +.. _LCM Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-LCM-lead +.. _LCM Meeting Minutes: https://github.com/eclipse-score/score/wiki/LCMM +.. _LCM Slack Channel: https://sdvworkinggroup.slack.com/archives/C094Z3BN1K4 +.. _LCM Open Point List: https://github.com/orgs/eclipse-score/projects/33 + +- LCM Responsibilities + - development of Lifecycle Management and Health Monitoring +- `LCM Core Members`_ +- `LCM Lead`_ +- `LCM Meeting Minutes`_ +- `LCM Slack Channel`_ +- `LCM Open Point List`_ +- LCM Repositories: + - https://github.com/eclipse-score/lifecycle + +Orchstrator Team (ORC) +^^^^^^^^^^^^^^^^^^^^^^^ +.. _ORC Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-ORC-team +.. _ORC Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-ORC-lead +.. _ORC Meeting Minutes: https://github.com/eclipse-score/score/wiki/ORCM +.. _ORC Slack Channel: https://sdvworkinggroup.slack.com/archives/C099W80FU2C +.. _ORC Open Point List: https://github.com/orgs/eclipse-score/projects/29 + +- Responsibilities + - development of Orchstrator +- `ORC Core Members`_ +- `ORC Lead`_ +- `ORC Meeting Minutes`_ +- `ORC Slack Channel`_ +- `ORC Open Point List`_ +- ORC Repositories: + - https://github.com/eclipse-score/orchestrator + +.. _pmp_pm_per: + +Persistency Team (PER) +^^^^^^^^^^^^^^^^^^^^^^ +.. _PER Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-PER-team +.. _PER Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-PER-lead +.. _PER Meeting Minutes: https://github.com/eclipse-score/score/wiki/PERM +.. _PER Slack Channel: https://sdvworkinggroup.slack.com/archives/C08B339ETQU +.. _PER Open Point List: https://github.com/orgs/eclipse-score/projects/20 + +- Responsibilities + - development of Persistency +- `PER Core Members`_ +- `PER Lead`_ +- `PER Meeting Minutes`_ +- `PER Slack Channel`_ +- `PER Open Point List`_ +- PER Repositories: + - https://github.com/eclipse-score/persistency Creation of a new Feature Team From f9a1d10f17251af1fe52d751ca174cd4a748de3e Mon Sep 17 00:00:00 2001 From: Andreas Mittag Date: Wed, 21 Jan 2026 16:27:15 +0000 Subject: [PATCH 005/128] ORG: ORG Management added --- .../project_management.rst | 32 +++++++++++++++---- 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index d78a7ce1c55..fa964fb571c 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -463,16 +463,36 @@ Persistency Team (PER) - https://github.com/eclipse-score/persistency +Organization Management +----------------------- +Decision to adapt the *Project Organization* is done in the *Technical Lead Circle* / *Project Management Circle*, documented in the meeting minutes and planned with a *Task*: + +- creating of a new Team (*Community* or *Feature Team*) +- setting an existing Team (*Community* or *Feature Team*) on hold +- deleting an existing Team (*Community* or *Feature Team*) + Creation of a new Feature Team ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Decision to create a new *Feature Team* is normally done in *Technical Lead Circle* in case a particular, -already *accepted* *Feature Request* can not be assigned to any of already existing *Feature Teams*. +In case a new Feature Team creation is necessary, the following steps have to be done: + +- `Adding a new Team to GitHub Teams `_ and adding the Core Members by editing + `orgs.newTeam `_. +- Adding a new Repository to GitHub by editing + `orgs.newRepo `_. +- Definition of Repository specific :ref:`CODEOWNERS `. +- `Creation of a Team GitHub Project `_ with a Kanban View and a Task View. +- `Creation of a Team Meeting Wiki `_ for the meeting minutes + +- Creation of a Team Label + .. code:: + + committee:, + community: or + ft: -As a first step, the decision to create a new Feature Team is protocolled in the `Tech Lead Circle meeeting minutes `_. -Afterwards a GitHub Issue is created in the `Technical Lead Cirle LOP project `_ -using the special *Feature Team Creation* GitHub Issue template and is assigned to one of the Technical Leads. +- Creation of a Slack Channel: https://sdvworkinggroup.slack.com +- Adapting the PMP -**ToDo**: create such a template. Usage of the special GitHub Issue template ensures, that all GitHub issues for creation of new *Feature Teams* follow the same rules, e.g. that the title always has the same format or From 337be46ef768dd920dfc5d84d09419e5c0be1403 Mon Sep 17 00:00:00 2001 From: Andreas Mittag Date: Wed, 21 Jan 2026 16:28:26 +0000 Subject: [PATCH 006/128] COM: Internal Communication added --- .../project_management.rst | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index fa964fb571c..cb7d5a09216 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -493,6 +493,20 @@ In case a new Feature Team creation is necessary, the following steps have to be - Creation of a Slack Channel: https://sdvworkinggroup.slack.com - Adapting the PMP +Internal Communication +====================== + +The project internal communication is ensured with help of: + +- virtual and face-to-face meetings and their minutes +- *GitHub issues* and *GitHub pull requests* +- online communication using Slack + +Meetings +-------- +All meetings are scheduled in the `Eclipse S-CORE Calendar `_ , are open for everyone +but mentioned team members are mandatory. Meeting minutes are public and stored in the project specific *GitHub Team Wikis*. + Usage of the special GitHub Issue template ensures, that all GitHub issues for creation of new *Feature Teams* follow the same rules, e.g. that the title always has the same format or From 608e1277a086e645f941ee61458f867e78ea1eb3 Mon Sep 17 00:00:00 2001 From: Andreas Mittag Date: Wed, 21 Jan 2026 16:31:49 +0000 Subject: [PATCH 007/128] REPO: General Repos Structure adapted --- .../project_management.rst | 97 +++++++------------ 1 file changed, 33 insertions(+), 64 deletions(-) diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index cb7d5a09216..41ee597c66f 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -508,6 +508,39 @@ All meetings are scheduled in the `Eclipse S-CORE Calendar ` +- documentation of all :ref:`platform features `, features flags, + feature requirements and architecture +- build system including *S-CORE* specific *macros* and *rules* +- integration rules for software modules. + +which are stored in the :ref:`Folder Structure of Platform Repository `. + + +Every software module has its own repository, that contains among others: + +- multiple components +- their requirements +- architecture +- implementation +- tests + +within the following :ref:`Module Folder Structure `. + + + Usage of the special GitHub Issue template ensures, that all GitHub issues for creation of new *Feature Teams* follow the same rules, e.g. that the title always has the same format or that the description always contains the reasoning for the creation of a new *Feature Team*. @@ -588,71 +621,7 @@ Team* setup should initiate committer elections for all software developers in t All other Technical Leads who are already committers in the S-CORE project are expected to support these elections by voting positively, provided there are no specific objections. -Meeting Structure ------------------ - -* **Project Lead Circle meeting** - - Regular participants of *Project Lead Circle meeting* are the *Project Leads* and *Technical Leads* of the main *S-CORE* project. The main purpose of the meeting is the exchange between *Project Leads* and the reporting of the *Technical Lead Circle* to the *Project Lead Circle* and vice versa. - - The *Project Lead Circle meetings* are announced via *score-dev@eclipse.org* mailing list and are open for everyone who is registered to this mailing list. All meetings are documented as *GitHub Discussions* in `Project Lead Circle section `_ and can be read by everyone. Topics for the *Project lead circle meetings* can be proposed only by regular participants and will be prioritized by the *Project lead circle Assistant*. Proposals for agenda topics can be added as comment to the respective *GitHub Discussion* or sent to the *Project lead circle Assistant*. - - Open points from the meetings will be handled by *GitHub Issues* in the *S-CORE* main repository and can be filtered via *project_lead_circle* label. - - The *Project Lead Circle meeting* takes place usually once a week. - - -* **Technical Lead Circle meeting** - - Regular participants of the *Technical Lead Circle meeting* are the *Technical Leads* of the main *S-CORE* project. The main purpose of the meeting is the exchange between technical leads for fulfilling their responsibilities. - - The *Technical Lead Circle meetings* are announced via *score-dev@eclipse.org* mailing list and are open for everyone who is registered to this mailing list. All meetings are documented as *GitHub Discussions* in `Technical Lead Circle section `_ and can be read by everyone. Topics for the *Technical lead circle meetings* can be proposed only by regular participants and will be prioritized by the *Technical lead circle Assistant*. Proposals for agenda topics can be added as comment to the respective *GitHub Discussion* or sent to the *Technical lead circle Assistant*. - - Open points from the meetings will be handled by *GitHub Issues* in the *S-CORE* main repository and can be filtered via label *technical_lead_circle*. - - The *Technical Lead Circle meeting* takes place usually once a week. - -* **Committer Circle Meeting** - - Regular participants of the *Committer Circle meeting* are the *Committers* of the main *S-CORE* project and of all software modules/child projects. The *Committer Circle Meeting* is lead by the *Technical Leads*. The main purpose of the meeting are in-depth technical discussions and evaluation of contributions, e.g. *Feature Requests*, that could not be approved in the *Technical Lead Circle meeting* and demand more technical discussions. - - The *Committer Circle meetings* are announced via *score-dev@eclipse.org* mailing list and are open for everyone who is registered to this mailing list. All meetings are documented as *GitHub Discussions* in `Committer Circle section `_ and can be read by everyone. Topics for the *Committer circle meetings* can be proposed only by regular participants and will be prioritized by the *Technical lead circle*. Proposals for agenda topics can be added as comment to the respective *GitHub Discussion* or sent to the *Technical lead circle Assistant*. - - The *Committer Circle meeting* takes place on demand. The decision for the scheduling of the *Committer Circle Meeting* is taken by the *Technical Lead Circle*. - -Platform structure -================== -Platform consists of multiple repositories. The main repository, *S-CORE*, -is the integration repository, where everything comes together. It contains: - -* :ref:`stakeholder requirements ` -* documentation of all :ref:`platform features ` and features flags, - feature requirements and architecture -* build system including *S-CORE* specific *macros* and *rules* -* integration rules for software modules. - -The main repository references multiple other repositories, mostly repositories, where -software modules or toolchains are defined. This results in the following :ref:`Folder Structure of Platform Repository `. Every software module has its own repository, that contains multiple components, their requirements, architecture, implementation and tests. -A software module and its repository can be part of the main S-CORE *Eclipse Project* and corresponding *GitHub organization* or can be moved to a standalone *Eclipse child project*, if necessary. - - .. image:: _assets/project_organization.svg - :width: 900 - :alt: Infrastructure overview - :align: center -Platform organization -======================= -Also in case the software module repositories are not placed -in standalone *Eclipse child projects*, we still consider all software modules -to be standalone *Eclipse child projects*, having their own *Committers* and *Project Leads* -as defined by the *Eclipse Foundation Project Handbook*. Software module committers -and software module project leads are responsible for managing the software module as if it were -a normal *Eclipse child project*. The election of the project leads and committers for software module projects should be done using the main integration *S-CORE* project mailing list, *score-dev@eclipse.org*. This means, that the decision who will be the project lead and committer of the new software module will be taken by the project leads and committers of the main *S-CORE* project respectively. The elected project leads or committers of the software modules are not automatically project leads and committers of the main integration *S-CORE* project. Typically, before becoming a project lead or a committer of the main integration *S-CORE* project, you need to build up a good reputation by contributing to the main integration *S-CORE* project and being project lead or committer for one of the software modules. - -Before introducing a new *Eclipse child project* for a software module, it should first reside as a repository in the main *S-CORE* project. If the software module later would be moved to a real standalone *Eclipse child project*, e.g., as there is a wish to use this software module independent of the *S-CORE* project, then the elected project leads and committers of the software module will be simply taken over as project leads and committers of the new *Eclipse child project* and their tasks will stay the same. Further in this document differentiation between a software module and *Eclipse child project* will be done only if necessary. For the software module that resides in the separate repository of the main *S-CORE* project, the configuration and the control -of who is committer and project lead is done using -`CODEOWNER files `_ -located in the subfolder of the corresponding repository of the software module. Main task of project leads is planning and prioritizing of activities, and together with the committers maintaining of the backlog and ensuring, that the software development is done according to process described in the main S-CORE project. The planning should be done as described in the `Planning`_ chapter. A more detailed description of PLs' and Committers' activities is given in *Eclipse Foundation Project Handbook*. From 28f7bdc317848e4a69ac254d19ab7754afab0b40 Mon Sep 17 00:00:00 2001 From: Andreas Mittag Date: Wed, 21 Jan 2026 16:33:17 +0000 Subject: [PATCH 008/128] CodeOwner Info adapted --- .../project_management.rst | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index 41ee597c66f..705d539fd78 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -540,6 +540,22 @@ Every software module has its own repository, that contains among others: within the following :ref:`Module Folder Structure `. +.. _pmp_pm_codeowners: + +Codeowners +---------- +While creating a new repository, :ref:`Technical Leads ` nominate initial `CODEOWNERS `_, +whose review is mandatory for merging PRs to the repository and who are at the end allowed to merge PRs to the repository. + +Possible members are software developers, who + +- understand how the particular feature works or should work +- are the initial authors of the software + +The Codeownership has to be regularly updated and changes have to be documented. + + + Usage of the special GitHub Issue template ensures, that all GitHub issues for creation of new *Feature Teams* follow the same rules, e.g. that the title always has the same format or From 0e13358ddc6452c0c6a9523f876b2e27160670af Mon Sep 17 00:00:00 2001 From: Andreas Mittag Date: Wed, 21 Jan 2026 16:35:21 +0000 Subject: [PATCH 009/128] Cadence, Iteration and Release Frequency added --- .../project_management.rst | 104 ++---------------- 1 file changed, 10 insertions(+), 94 deletions(-) diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index 705d539fd78..65552eed87b 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -554,104 +554,20 @@ Possible members are software developers, who The Codeownership has to be regularly updated and changes have to be documented. +Planning & Tracking +=================== +Cadence +------- +Iteration +^^^^^^^^^ +Each iteration is two weeks long. -Usage of the special GitHub Issue template ensures, that all GitHub issues for creation of new *Feature -Teams* follow the same rules, e.g. that the title always has the same format or -that the description always contains the reasoning for the creation of a new *Feature Team*. +Release Frequence +^^^^^^^^^^^^^^^^^ +After every 3rd iteration, the work is baselined into a Release. -Additionally, the GitHub Issue created from the template includes a *DoD list*, which serves as a checklist -for the Technical Lead to ensure that all necessary activities and steps have been completed to establish a new *Feature Team*. -Its current *DoD list* is always documented in the template. The most important activities are: - -* **Creation of labels** - - Every *Feature Team* should have its own label for filtering of GitHub Issues, PRs or discussions. - -* **Creation of discussion** - - Every *Feature Team* should have its own discussion section in the `Feature Teams section `_ - of the main *S-CORE* project. - -* **Adding a new Team to the main S-CORE GitHub project** - - Every *Feature Team* should be added as a further select option of the "Team" field - in the `main S-CORE project `_, so that *Technical Leads* - can assign tickets to the team and filter for the tickets of the new team. - Additionally, every team is free to create its own GitHub project, but then the team tickets should be still - visible in the main S-CORE project. - -* **Creation of repository** - - Normally, every *Feature Team* should have a dedicated repository. Creation of new repository is done - be extending the `otterdog configuration file `_ - and creating a new PR, that has to be approved by the *Eclipse Project Security Team*. Creation of the - repository is the responsibility of the *Feature Team Lead*. - -* **Developer GitHub Team** - - Every *Feature Team* should have a corresponding software developer GitHub team, e.g. *ipc_ft_dev*, that contains all - developers, that are actively participating in this *Feature Team*. This GitHub group can be used e.g. to - send notifications for upcoming meetings or discussions. - -* **Codeowner GitHub Team** - - Every *Feature Team* should have a corresponding codeowner GitHub team, e.g. *ipc_ft_co*, that contains all - software developers, whose review is mandatory for every PR in the repository and who have rights to merge PRs to the repository. - - -Merge rights & code ownership -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -As already stated, every *Feature Team* has normally a dedicated repository. Before the creation of the new repository, -*Feature Team Lead* together with *Technical Leads* should nominate initial codeowners, whose review is mandatory for merging PRs to the repository -and who is at the end allowed to merge PRs to the repository. - -In the S-CORE project, the configuration whose review is mandatory to merge a PR to the repository is done -using `CODEOWNERS file and branch protection `_ . -Every repository has a CODEOWNERS file, where one or multiple teams are specified, whose review is needed for the PR -to be able to be merged. The teams listed there are normally: - -* *Codeowner GitHub Team* for this *Feature Team* -* GitHub Team for security managers -* GitHub Team for quality managers -* GitHub Team for safety managers - -**ToDo**: can we have an 'AND relationship' for teams in CODEOWNERS file? - -*Codeowner GitHub Team* for the corresponding *Feature Team* consists of the software developers, that understand how -the particular feature works or should work. The members of this team should be selected and agreed -during the creation of the *Feature Team* by the *Technical Leads* and *Feature Team Lead*. The criteria for the selection should be the -technical competence of the software developers, e.g. in case during the :ref:`Feature Request process ` -it was decided to take over already existing source code, then persons who were actively participating in the -development of that code are always good candidates to be part of *Codeowner GitHub team*. -The decision who should be initially part of the *Codeowner GitHub team* and the reasoning for this -should be protocolled in the GitHub Issue, that is used for creation of the *Feature Team*. - -In case further software developers should be added to the *Codeowener GitHub team* in the future, -that decision and its reasoning should be protocolled in one of the *Feature Team* GitHub discussions. - -Members of the *Codeowner GitHub team* should also be authorized to merge pull requests (PRs) into the corresponding repository. -Therefore, once the *Codeowner GitHub team* has been created, the Technical Lead assigned to the ticket for the *Feature -Team* setup should initiate committer elections for all software developers in the *Codeowner GitHub team*. -All other Technical Leads who are already committers in the S-CORE project are expected to support these -elections by voting positively, provided there are no specific objections. - - - -Main task of project leads is planning and prioritizing of activities, and together with the committers maintaining of the backlog and ensuring, that the software development is done according to process described in the main S-CORE project. The planning should be done as described in the `Planning`_ chapter. A more detailed description of PLs' and Committers' activities is given in *Eclipse Foundation Project Handbook*. - -The main project *S-CORE* has certainly also project leaders and committers, but -their roles are slightly different compared to the software module committers and -project leads. The role of the *S-CORE* project as the central project is, as already -described, to ensure proper integration of multiple software modules, provide common -integration guidelines and mechanisms, e.g. build toolchain. Additionally *S-CORE* project -takes care of all overarching topics, as e.g. roadmap and milestone planning or -definition of cross-functional topics. Therefore there exist number of additional -meetings, where such topics are discussed and decided, see `Steering committees`_ for further details. - -Planning -======== Planning infrastructure ------------------------ From 7f7a2281fcf2866d020a35efbdf83636e8a672a6 Mon Sep 17 00:00:00 2001 From: Andreas Mittag Date: Wed, 21 Jan 2026 16:40:42 +0000 Subject: [PATCH 010/128] Issue Types updated --- .../_assets/issue_types.drawio.svg | 375 ++++++++++++++++++ .../_assets/issue_types.png | Bin 83112 -> 0 bytes .../project_management.rst | 197 ++++----- 3 files changed, 459 insertions(+), 113 deletions(-) create mode 100644 docs/platform_management_plan/_assets/issue_types.drawio.svg delete mode 100644 docs/platform_management_plan/_assets/issue_types.png diff --git a/docs/platform_management_plan/_assets/issue_types.drawio.svg b/docs/platform_management_plan/_assets/issue_types.drawio.svg new file mode 100644 index 00000000000..8d0e4e32c53 --- /dev/null +++ b/docs/platform_management_plan/_assets/issue_types.drawio.svg @@ -0,0 +1,375 @@ + + + + + + + + + + +
+
+
+ Team Repository +
+
+
+
+ + Team Repository + +
+
+
+ + + + + + + +
+
+
+ Root Repository +
+
+
+
+ + Root Repository + +
+
+
+ + + + + + + + + + + +
+
+
+ Program Increment +
+
+
+
+ + Program Increment + +
+
+
+ + + + + + + +
+
+
+ Epic +
+
+
+
+ + Epic + +
+
+
+ + + + + + + + + + + +
+
+
+ Task +
+
+
+
+ + Task + +
+
+
+ + + + + + + + + + + +
+
+
+ Feature Request +
+
+
+
+ + Feature Request + +
+
+
+ + + + + + + + + + + +
+
+
+ Task +
+
+
+
+ + Task + +
+
+
+ + + + + + + +
+
+
+ Bug +
+
+
+
+ + Bug + +
+
+
+ + + + + + + + +
+
+
+ ARC +
+
+
+
+ + A... + +
+
+
+ + + + + + + + +
+
+
+ TLC +
+
+
+
+ + T... + +
+
+
+ + + + + + + + +
+
+
+ Team +
+
+
+
+ + T... + +
+
+
+ + + + + + + + +
+
+
+ Team +
+
+
+
+ + T... + +
+
+
+ + + + + + + + +
+
+
+ Team +
+
+
+
+ + T... + +
+
+
+ + + + + + + + +
+
+
+ Team +
+
+
+
+ + T... + +
+
+
+ + + + + + + +
+
+
+ Parent +
+
+
+
+ + Parent + +
+
+
+ + + + + + + +
+
+
+ Child +
+
+
+
+ + Child + +
+
+
+ + + + +
+ + + + + Text is not SVG - cannot display + + + +
diff --git a/docs/platform_management_plan/_assets/issue_types.png b/docs/platform_management_plan/_assets/issue_types.png deleted file mode 100644 index 2a059873808ef8e386b7564fd8846a05f3b7e5df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 83112 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 z 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 are used to plan and to track -work. To be able to find issues faster and to filter for them more efficiently, -we use labels. - -Labels -^^^^^^ -To facilitate the organization and tracking of tickets related to the same feature -or topic, labels are utilized for issues and pull requests. Labels are a powerful -feature that allows you to search and filter tickets based on specific labels, and -you can save these filters in a *GitHub Project* view. However, it is important -to exercise caution when creating labels to avoid confusion and ensure easy tracking. - -It's worth noting that labels are associated with a repository, not a *GitHub Project*. -To create new labels in the repository requires special rights and only -*project leads* and *committers* should have this capability. - -For the main *S-CORE* repository, there exist already some predefined labels: - -* *feature_request* label is used to identify *PRs* and *GitHub Issues* that are part - of a *Feature request process* -* *project_lead_circle* label is used to identify *PRs* and *GitHub Issues* that are relevant - for *Project lead circle* -* *tech_lead_circle* label is used to identify *PRs* and *GitHub Issues* that are relevant - for *Technical lead circle* -* *infrastructure* label is used to identify *PRs* and *GitHub Issues* that are relevant - for *Tooling/Infrastructure Community* -* *testing* label is used to identify *PRs* and *GitHub Issues* that are relevant for - *Testing Community* -* *software_architecture* label is used to identify *PRs* and *GitHub Issues* that are relevant - for *Software Architecture community* -* *software_development_process* label is used to identify *PRs* and *GitHub Issues* that are - relevant for *Software Development Process Community* - - .. image:: _assets/contribution_request_label.png - :width: 800 - :alt: Infrastructure overview - :align: center - -Additionally, in the main *S-CORE* repository there should exist a label for every -software module. - -Every software module project, located in another repository, is free to define -additionally its own labels. It is recommended to create labels at least -for specific areas that may encompass multiple features. - -Types of work packages and structure ------------------------------------- -For better structuring of the tickets following *GitHub Issue* types are introduced -in the main *S-CORE* repository. In order to create a consistent overview of all work packages (WPs), -the WPs need to be maintained in one single project within the main *S-CORE* repository. -Having separate WP backlogs within separate repositories will increase the complexity -and reduce the transparency too much. - -All *child projects* are only allowed to have their separate list of issues. All other WP types -shall not be available for them. The planning WPs of the main *S-CORE* repository therefore are used -to link WPs to *GitHub issues* of *child projects*. -For example a *Bug* WP within the main repository is linked to a *GitHub Issue* of the *communication* -repository but no *Bug* WP shall be created in the *child project* repository. - -.. image:: _assets/issue_types.png - :width: 600 - :alt: Issue types overview - :align: center +Planning & Tracking Infrastructure +---------------------------------- +The planning and tracking of the work is done inside **GitHub**. +GitHub **Issues** are used to document all necessary work packages. -* A *Task* *GitHub Issue* represents the smallest unit of planning and typically corresponds - to a concrete piece of work to be completed, such as by a developer. *Task* work packages are usually - grouped under a *Story* work package. - In certain cases, a *Task* may exist as a standalone *GitHub Issue*. - However, standalone *Task* work packages must not be grouped using labels. - If multiple *Task* work packages are related, a *Story* work package should be created instead, - with all associated *Task* work packages added as child work packages under that *Story*. - -* A *Story* *GitHub Issue* is the primary planning work package for development teams. - *Story* work packages should be scoped in a way that allows them to be completed within - the release cycle of the S-CORE project. - While a *Story* work package can be implemented by multiple team members, it is recommended - that one developer takes main responsibility for its completion. Quality assurance activities, - such as code reviews, should be performed by other team members. - *Story* work packages are typically grouped under an *Product Increment* work package. - However, a *Story* work package can also exist as a standalone work package if its outcome represents - a complete functional improvement, making a related *Product Increment* work package unnecessary. - -* A *Product Increment* *GitHub Issue* represents the highest level in the work package hierarchy and - cannot be linked as a child of another issue. If you need to group multiple *Product Increment* work packages, - this must be done using labels. - A *Product Increment* work package can have multiple *Story* work packages as child work packages. - In exceptional cases, a *Story* work package may also be linked as a child of a *Product Increment* work package - if its outcome represents a complete functional improvement. - -* A *Feature Request* *GitHub Issues* represents an independent work package used to describe and - track a high-level request for the project. *Feature Request* work packages can be linked to - other work packages, but they must not be treated as parent work packages. - -* A *Bug* *GitHub Issue* is used to report any kind of problem or malfunction. It is considered - a special type of *Story* work package and follows the same rules as regular *Story* work packages, - with the key difference that it focuses on fixing defects in existing functionality - rather than creating or extending functionality. - -Main *S-CORE* project defines templates for every type of *GitHub Issues* -to ensure, that every ticket has all necessary information. - -For a better structuring of the *GitHub Issues*, we use a beta -`sub-issue feature `_, -that should be officially released in the beginning of 2025. -*Sub-issue feature* allows to create a "parent-child" relationship between *GitHub Issues*. -That allows better structuring of the project and helps to keep *GitHub Issues*, that -are related to the same topic, together. - -.. image:: _assets/sub_issues.png - :width: 600 - :alt: Sub issues overview - :align: center +Issues +------ +The Issues are stored in the main repository: https://github.com/eclipse-score/score/issues. + +To organize the work :ref:`Github Types `, :ref:`GitHub Labels ` and +:ref:`GitHub Projects ` are used. +The Progress of the work is documented with help of the :ref:`Status of an Issue `. + + +.. _pmp_pm_issue_types: + +Issues Types +^^^^^^^^^^^^ + +.. image:: _assets/issue_types.drawio.svg + :width: 900 + :alt: Issue Types + :align: center +.. _pmp_pm_feature_request: + +Feature Request +""""""""""""""" +A *Feature Request* represents an independent work package used to describe and +track a high-level request for the project. *Feature Request* work packages can be linked to +other work packages, but they must not be treated as parent work packages. They are in the responsibility of the +:ref:`Architecture Community ` and are part of the :ref:`Root Repository `. + +.. _pmp_pm_product_increment: + +Product Increment +""""""""""""""""" +A *Product Increment* represents the highest level in the work package hierarchy and +cannot be linked as a child of another issue. If you need to group multiple *Product Increment* work packages, +labels have to be used. +A *Product Increment* can have multiple *Epic* work packages as children. *Product Increments* areowned by +:ref:`Technical Lead Circle ` and are part of the :ref:`Root Repository `. + + +.. _pmp_pm_epic: + +Epic +"""" +An *Epic* is the primary planning work package for development teams. +*Epic* work packages should be scoped in a way that allows them to be completed within +a release cycle of the S-CORE project. +While an *Epic* can be implemented by multiple team members, it is recommended +that one developer takes main responsibility for its completion. Quality assurance activities, +such as code reviews, can be performed by other team members. +*Epics* are typically grouped under an *Product Increment*. However, an *Epic* work package can also exist +as a standalone work package if its outcome represents a complete functional improvement, +making a related *Product Increment* work package unnecessary. +Sometimes support of other teams might be necessary for the completion of the work, therefore an +*Epic* can have team-internal and team-external *Task* child issues. *Epics* are owned by a Team and are part +of the Team`s main repository. + + +.. _pmp_pm_task: + +Task +"""" + +A *Task GitHub Issue* represents the smallest unit of planning and typically corresponds +to a concrete piece of work to be completed, such as by a developer. *Task* work packages are usually +grouped under an *Epic* work package. +In certain cases, a *Task* may exist as a standalone *GitHub Issue*. +However, standalone *Task* work packages must not be grouped using labels. +If multiple *Task* work packages are related, a *Epic* work package should be created instead, +with all associated *Task* work packages added as child work packages under that *Epic*. *Tasks* are owned by a Team and are part +of any Team`s repository. + +.. _pmp_pm_bug: + +Bug +""" + +A *Bug GitHub Issue* is used to report any kind of problem or malfunction. It is considered +a special type of *Story* work package and follows the same rules as regular *Epic* work packages, +with the key difference that it focuses on fixing defects in existing functionality +rather than creating or extending functionality. *Tasks* are owned by a Team and are part +of any Team`s repository. Traceability ^^^^^^^^^^^^ To achieve a better traceability it is highly recommended to link all *PRs* to the corresponding From f829361fbde036a4f709d58047298040c18ba70a Mon Sep 17 00:00:00 2001 From: Andreas Mittag Date: Wed, 21 Jan 2026 16:43:17 +0000 Subject: [PATCH 011/128] Issue Status Flow, Attributes, Templates and Hierachies added --- .../_assets/issue_status_flow.drawio.svg | 151 ++++++++++++++++++ .../project_management.rst | 67 ++++++++ 2 files changed, 218 insertions(+) create mode 100644 docs/platform_management_plan/_assets/issue_status_flow.drawio.svg diff --git a/docs/platform_management_plan/_assets/issue_status_flow.drawio.svg b/docs/platform_management_plan/_assets/issue_status_flow.drawio.svg new file mode 100644 index 00000000000..75fa5b5ffae --- /dev/null +++ b/docs/platform_management_plan/_assets/issue_status_flow.drawio.svg @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + +
+
+
+ New +
+
+
+
+ + New + +
+
+
+ + + + + + + + + + + +
+
+
+ + Ready + +
+ + To + +
+
+ + Work + +
+
+
+
+
+ + Ready... + +
+
+
+ + + + + + + + + + + + + + + +
+
+
+ In Progress +
+
+
+
+ + In Progress + +
+
+
+ + + + + + + +
+
+
+ On Hold +
+
+
+
+ + On Hold + +
+
+
+ + + + + + + +
+
+
+ Closed +
+
+
+
+ + Closed + +
+
+
+ + + + +
+ + + + + Text is not SVG - cannot display + + + +
diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index 5d43bf076be..60264e37ddd 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -655,6 +655,73 @@ a special type of *Story* work package and follows the same rules as regular *Ep with the key difference that it focuses on fixing defects in existing functionality rather than creating or extending functionality. *Tasks* are owned by a Team and are part of any Team`s repository. + +.. _pmp_pm_issue_status_flow: + +Issue Status +^^^^^^^^^^^^ +Each *GitHub issue* has a **Status** depending on the :ref:`GitHub Project `, +we use the following Standard Flow for all :ref:`Issue Types `: + +.. image:: _assets/issue_status_flow.drawio.svg + :width: 300 + :alt: Issue Status + :align: center + +Issue Attributes +^^^^^^^^^^^^^^^^ +- Standard Attributes + - Assignees + - :ref:`Labels ` + - :ref:`Type ` +- Common Project Attributes + - :ref:`Status ` + - Priority (High, Middle, Low) + - Size (S=hours,M=days,L=weeks, XL=months) + - (planned finishing) Iteration + - Team + - Category (e.g. Work stream) + - Release + +Issue Templates +^^^^^^^^^^^^^^^ +Templates defined in *GitHub* ensure the availability of the type relevant information for all issues. + +- `Bug Template `_ +- `Feature Request Template `_ +- `Product Increment Template `_ +- `Epic Template `_ +- `Task Template `_ + +Hierarchies +^^^^^^^^^^^ +Hierarchies are realized as parent-child relations with the `GitHub Sub-Issue Feature `_. + +Dependencies +^^^^^^^^^^^^ +Dependencies are realized with blocked by or blocking relations described in thè `GitHub Issue Dependency Feature `_. + +.. _pmp_pm_milestone: + +Milestone +--------- +A milestone is indicating an important dedicated point in the schedule like +a Release or a Quality (ASPICE, ASIL) Assessment. +`GitHub Milestones `_ offer to connect *Issues* and *Pull Requests* to the `S-CORE-defined Milestones `_ + +.. _pmp_pm_release: + +Releases +-------- +*Releases* are special milestones and used for baselining of the development activities. + + +.. _pmp_pm_gh_labels: + + + + + Traceability ^^^^^^^^^^^^ To achieve a better traceability it is highly recommended to link all *PRs* to the corresponding From 5a70c2b09891348a7c4876d817784747318182c7 Mon Sep 17 00:00:00 2001 From: Andreas Mittag Date: Wed, 21 Jan 2026 16:45:58 +0000 Subject: [PATCH 012/128] Labels, Projects and Views modified --- .../_assets/kanban.drawio.svg | 268 +++++++++++++ .../_assets/planning_overview.drawio.svg | 358 ++++++++++++++++++ .../project_management.rst | 98 ++--- 3 files changed, 665 insertions(+), 59 deletions(-) create mode 100644 docs/platform_management_plan/_assets/kanban.drawio.svg create mode 100644 docs/platform_management_plan/_assets/planning_overview.drawio.svg diff --git a/docs/platform_management_plan/_assets/kanban.drawio.svg b/docs/platform_management_plan/_assets/kanban.drawio.svg new file mode 100644 index 00000000000..66fbf1ae6a6 --- /dev/null +++ b/docs/platform_management_plan/_assets/kanban.drawio.svg @@ -0,0 +1,268 @@ + + + + + + + + + + + + + + + + + + + + + +
+
+
+ New +
+
+
+
+ + New + +
+
+
+ + + + + + + + +
+
+
+ Ready To Work +
+
+
+
+ + Ready To Work + +
+
+
+ + + + + + + + +
+
+
+ In Progress +
+
+
+
+ + In Progress + +
+
+
+ + + + + + + + +
+
+
+ Closed +
+
+
+
+ + Closed + +
+
+
+ + + + + + + + +
+
+
+ On Hold +
+
+
+
+ + On Hold + +
+
+
+ + + + + + + + + +
+
+
+ + Newly created + +
+
+
+
+ + Newly created + +
+
+
+ + + + + + + + +
+
+
+ Definition of Ready fulfilled +
+
+
+
+ + Definition of Ready fulfilled + +
+
+
+ + + + + + + + +
+
+
+ Work in Progress +
+
+
+
+ + Work in Progress + +
+
+
+ + + + + + + + +
+
+
+ Work is Done +
+
+
+
+ + Work is Done + +
+
+
+ + + + + + + + +
+
+
+ Work is Paused +
+
+
+
+ + Work is Paused + +
+
+
+ + + + + + + + +
+
+
+ Standard Kanban View +
+
+
+
+ + Standard Kanban... + +
+
+
+
+ + + + + Text is not SVG - cannot display + + + +
diff --git a/docs/platform_management_plan/_assets/planning_overview.drawio.svg b/docs/platform_management_plan/_assets/planning_overview.drawio.svg new file mode 100644 index 00000000000..5c8e5e87967 --- /dev/null +++ b/docs/platform_management_plan/_assets/planning_overview.drawio.svg @@ -0,0 +1,358 @@ + + + + + + + + + + + +
+
+
+
+ + + REPOSITORY: + + MAIN-TEAM-REPO + +
+
+ + OWNERSHIP: + + TEAM +
+
+ + GITHUB-PROJECT: + + TEAM-Specific +
+
+
+
+
+ + REPOSITORY: MAIN-TEAM-REPO... + +
+
+
+ + + + + + + + +
+
+
+
+ + + REPOSITORY: + + S-CORE ROOT + +
+
+ + OWNERSHIP: + + TLC +
+
+ + GITHUB-PROJECT: + + S-CORE Roadmap +
+
+
+
+
+ + REPOSITORY: S-CORE ROOT... + +
+
+
+ + + + + + + +
+
+
+ Program Increment +
+
+
+
+ + Program Increment + +
+
+
+ + + + + + + + +
+
+
+
+ + + REPOSITORY: + + S-CORE ROOT + +
+
+ + OWNERSHIP: + + ARC +
+
+ + GITHUB-PROJECT: + + Feature Requests +
+
+
+
+
+ + REPOSITORY: S-CORE ROOT... + +
+
+
+ + + + + + + +
+
+
+ Feature Request +
+
+
+
+ + Feature Request + +
+
+
+ + + + + + + + +
+
+
+
+ + + REPOSITORY: + + MAIN-TEAM-REPO + +
+
+ + OWNERSHIP: + + TEAM +
+
+ + GITHUB-PROJECT: + + TEAM-Specific +
+
+
+
+
+ + REPOSITORY: MAIN-TEAM-REPO... + +
+
+
+ + + + + + + +
+
+
+ Epic +
+
+
+
+ + Epic + +
+
+
+ + + + + + + + +
+
+
+ 1 Parent : n Children +
+
+
+
+ + 1 Parent : n Children + +
+
+
+ + + + + + + +
+
+
+ Task +
+
+
+
+ + Task + +
+
+
+ + + + + + + + + + + +
+
+
+ Bug +
+
+
+
+ + Bug + +
+
+
+ + + + + + + + + + + +
+
+
+ Task +
+
+
+
+ + Task + +
+
+
+ + + + + + + +
+
+
+ Task +
+
+
+
+ + Task + +
+
+
+ + + + +
+ + + + + Text is not SVG - cannot display + + + +
diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index 60264e37ddd..ffad83e46e9 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -719,77 +719,57 @@ Releases .. _pmp_pm_gh_labels: +Labels +------ +`GitHub Labels `_ are used to organize Issues, Pull Requests etc. having same context. Although +Labels are powerful, the definition of new Labels shall be wisely done and organization wide used. +Therefore their management is limited to Organization owners. +The following `Labels `_ are defined. +.. _pmp_pm_gh_projects: -Traceability -^^^^^^^^^^^^ -To achieve a better traceability it is highly recommended to link all *PRs* to the corresponding -*GitHub Issues*. If done properly, you will be able to see for every *GitHub Issue* -all relevant source code changes. Normally *PRs* reference *GitHub issues* of type *Story* -or of type *Bug*. How to link *PRs* to *GitHub Issues* is described in more details in this -`guide `_. +GitHub Projects +--------------- +The `GitHub Project Feature `_ +helps to plan the work and monitor its progress. -.. image:: _assets/traceability.png - :width: 300 - :alt: Traceability overview +Multiple *GitHub Projects* are defined at https://github.com/orgs/eclipse-score/projects/. + +Beside one for each (committee, community, feature) Team, there is one for `Feature Requests `_ +and one for the complete `S-CORE Roadmap `_. Inside a GitHub Project, there is the possibility to generate different views +for Table, Board and Roadmap supporting Backlogs, Open Point or Task Lists and other useful perspectives. + +.. image:: _assets/planning_overview.drawio.svg + :width: 900 + :alt: Planning Overview :align: center -GitHub Projects -^^^^^^^^^^^^^^^ -*GitHub Projects* is a very powerful tool that allows creation of various views on -the status of the project, helps to plan the work and to monitor the current progress. -In particular, *GitHub Project* allows to extend *GitHub Issues* with following information: - -* objective -* dependencies on other activities or information -* responsible person -* resources -* mapping to work product -* start, end, duration, effort - -Note: The information on start, end, duration, and effort may sometimes be complicated -to estimate in the execution in an open source environment. Nevertheless, tasks -should be planned as part of releases, which sets already an implicit -duration and end date. - -Software module project leads shall also use *GitHub Project* for their planning. The overview of *GitHub Project* features can be found `here `_. - -Multiple *GitHub projects* are defined in the main *S-CORE* project: - -* a separate project for every community -* a project for technical lead circle -* a (GitHub) *roadmap project* with the overview of all upcoming features & releases. - - As *GitHub Projects* are not restricted to one repository but - can include information from multiple repositories of the same organization, - *roadmap project* gives an overview of all *Sagas*, that are relevant for the roadmap, - including those ones in the software modules. Prerequisite for this is that project - leads of all software modules always assign their sagas to the *roadmap project*. - All sagas in the *roadmap project* are extended with additional information - as e.g. start date and due date, to keep the status of the project always transparent. - Additionally, the main *S-CORE* repository defines project wide milestones & releases, - that are visible in the roadmap as well. - -.. image:: _assets/roadmap_example.png - :width: 600 - :alt: Roadmap example + + +Kanban View +^^^^^^^^^^^ +The `GitHub Board `_ is supporting the Kanban View, enabling to set the Work In Progress Limits. + +.. image:: _assets/kanban.drawio.svg + :width: 900 + :alt: Kanban View :align: center -Releases and milestones -^^^^^^^^^^^^^^^^^^^^^^^^ -GitHub allows to define various milestones & releases for every repository. The definition of the milestones and releases is proposed by the *Technical Leads* and is approved by *Project Leads*. -In the main *S-CORE* project we use milestones to mark important stages of the project and map sagas or in some cases also other *GitHub Issues* to them. +Task List View +^^^^^^^^^^^^^^ +The `GitHub Table `_ is supporting the List View, enabling to adapt the priority by reordering the rows. -*Releases* are used for structuring of the development activities. Exact scheme for the releases of the *S-CORE* will be provided here later. +Roadmap View +^^^^^^^^^^^^ +The `GitHub Roadmap `_ is supporting the Road View, provididing a high-level visualization of your project across a configurable timespan. -You can find "up to date" overview of the release plan and milestones in the following section `S-CORE Releases `_. +Traceability +------------ +To achieve traceability all *Pull Requests* have to be `linked `_ +to the corresponding *GitHub Issues*. -The users of the S-CORE platform need to adapt their planning to the milestones defined in the S-CORE project, -but they have always the possibility to takeover the development of a new feature, modifications and bugfixes -in their own development branch / fork and merge these improvements in the next or later releases -back into the S-CORE "main" line. Planning process ---------------- From 4dd9030ef215cf698645d382c4ce33e933aab3bb Mon Sep 17 00:00:00 2001 From: Andreas Mittag Date: Wed, 21 Jan 2026 16:47:04 +0000 Subject: [PATCH 013/128] Planning and Tracking modified --- .../project_management.rst | 74 +++++-------------- 1 file changed, 19 insertions(+), 55 deletions(-) diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index ffad83e46e9..1e4c3cea904 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -770,63 +770,27 @@ Traceability To achieve traceability all *Pull Requests* have to be `linked `_ to the corresponding *GitHub Issues*. - -Planning process +Planning of Work ---------------- -Generally, every team is responsible for planning and managing of its backlog. -For small improvements or clarifications, you can create *GitHub Issue* with a exhaustive -description and map it to the topic using labels. For small improvements/bugs -in the software modules you should create *GitHub Issues* directly in the repository -of the submodule. The project leads and committers of the corresponding software module, -circle or community will check the issue and in case they will accept it, they will -take it over to one of their *GitHub Projects*. In case, the topic, that you raise in the issue has a big impact on the platform, you can be asked by the committers to raise a *Feature Request* and to do a POC in the `incubation repository `_ . - -Contribution to the project is described in more details in `Contribution Guideline `_. -In general, everyone who wants to provide something new to the project, e.g. a new feature -or a tool, should provide an exhaustive description, requirements and in some cases -also initial draft of the architecture as part of the *Feature Request*. -*Feature Requests* are regularly reviewed in the *Technical lead circle* -and then get either accepted or declined. - -After the *Feature Request* was accepted, then the *Pull Request* with the -*Feature Request* gets merged. The corresponding *GitHub Issue* gets a reference to the -newly defined saga which plans the implementation of the feature request and afterwards *GitHub Issue* for *Feature Request* gets closed. The saga is at the beginning in the state *"Draft"*. Please be aware, that "status" of the tickets is modelled in *GitHub Project* as *GitHub Issues* do not provide the possibility to define additional states. - -The *Technical lead circle* is responsible for maintenance of the backlog with sagas, -their prioritization and creation of the roadmap. Together with software module -project leads and community leads in the "Committer circle" they go through the backlog, decide when and which saga should be implemented in which order and update the roadmap accordingly. - -As soon as the saga was planned for implementation, its state is changed to *"Open"*. -As next step, a *GitHub Issue* of type *epic* is created as sub-issue of the saga -and gets assigned to one of the *Communities* for refinement. The state of the saga changes from "Open" to "In Specification". - -.. image:: _assets/saga_status_workflow.svg - :width: 900 - :alt: Planning workflow - :align: center -The members of the *Responsible Community* define or refine feature, process or tool requirements. They may also create feature architecture and high level component requirements for every involved software component. Depending on the feature scope, one of the feature team can be requested to make a POC in the `incubation repository `_. Finally, *Responsible Community* does the break down of the corresponding *saga* to the tickets that can be assigned to the individual software modules or *communities*. -As most of the software modules will have their own separate repository, -then the detailed tracking of their work will also happen inside of that repository. -However, the corresponding saga of the S-CORE repository will still have a sub-issue of type epic, -that will describe the work, that should be done inside of the software module for better planning. -In the epic description there should be a link to the software module repository ticket, -where the detailed information and break down to the stories can be found. -For those communities or modules, that are part of the main *S-CORE* repository, -the break down to the stories should be done directly inside of the epic. - -As soon as the work on saga starts, its status is changed to "In Progress" -and its sub-tickets get assigned to the project leads of the software modules -or leads of the *communities*. During the development of the saga, -we use "trunk based approach", it means, that we do not create any separate branches, -but develop the software directly in the trunk/main using feature flag, that is marked as "experimental" at the beginning. - -The *Technical lead circle* regularly monitors the status of the sagas with the status -"In Progress", resolves conflicts and updates the roadmap if necessary. - -As soon as the saga is implemented and fulfills to 100% our software development process requirements, the decision is taken in the *Technical lead circle* whether the feature should be -officially available and in case of the positive decision, the feature flag status -is changed from "experimental" to "official". +Generally, every team is responsible for planning its work within its own plan with the help of its :ref:`GitHub Project ` filled with :ref:`Epics `, :ref:`Tasks ` and :ref:`Bugs `. + +The planning of :ref:`Feature Requests ` is in the responsibility of the :ref:`Architects `, +whereas the overall top-down plan is in the responsibility of the :ref:`Technical Lead Circle ` with the help of :ref:`Product Increments `, +:ref:`Milestones ` and :ref:`Releases `. + +Tracking Progress +----------------- +The :ref:`Technical Lead Circle ` regularly monitors the status of the work for upcoming Milestones and Releases in https://github.com/orgs/eclipse-score/projects/17 based on +:ref:`Product Increments `. + + +Dashboards +^^^^^^^^^^ + +GitHub offers mechanism in form of charts to track issues: + +- `Product Increments Open last 3 months `_ PMP Definition of Done ====================== From 8fc28de700b8b2b56626fe0dc475cde73ca8d7f8 Mon Sep 17 00:00:00 2001 From: Andreas Mittag Date: Wed, 21 Jan 2026 16:54:35 +0000 Subject: [PATCH 014/128] inccorect location info for issues removed --- docs/platform_management_plan/project_management.rst | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index 1e4c3cea904..5ad89b39386 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -576,8 +576,6 @@ GitHub **Issues** are used to document all necessary work packages. Issues ------ -The Issues are stored in the main repository: https://github.com/eclipse-score/score/issues. - To organize the work :ref:`Github Types `, :ref:`GitHub Labels ` and :ref:`GitHub Projects ` are used. The Progress of the work is documented with help of the :ref:`Status of an Issue `. From 72729ae6b84a233e9dcec343314eb90581c19210 Mon Sep 17 00:00:00 2001 From: Aleksey Borisyuk Date: Wed, 3 Dec 2025 16:56:04 +0100 Subject: [PATCH 015/128] ITF safety evaluation - added diagram - added verification report - added itf to index.rst --- docs/score_tools/_assets/itf.drawio.svg | 189 +++++++++++++++++++++ docs/score_tools/index.rst | 4 + docs/score_tools/itf.rst | 212 ++++++++++++++++++++++++ 3 files changed, 405 insertions(+) create mode 100644 docs/score_tools/_assets/itf.drawio.svg create mode 100644 docs/score_tools/itf.rst diff --git a/docs/score_tools/_assets/itf.drawio.svg b/docs/score_tools/_assets/itf.drawio.svg new file mode 100644 index 00000000000..822bf100418 --- /dev/null +++ b/docs/score_tools/_assets/itf.drawio.svg @@ -0,0 +1,189 @@ + + + + + + + + + + + +
+
+
+ + Test report +
+
+
+
+
+
+ + Test report + +
+
+
+ + + + + + + + + +
+
+
+
+ + Software + +
+
+ + image (binary) + +
+
+
+
+
+ + Software... + +
+
+
+ + + + + + + + + + + +
+
+
+ + ITF + +
+
+
+
+ + ITF + +
+
+
+ + + + + + + + + + + + + + + + + +
+
+
+
+ Pytest-based +
+
+ test file (python) +
+
+
+
+
+ + Pytest-based... + +
+
+
+ + + + + + + + +
+
+
+ hardware +
+
+
+
+ + hardware + +
+
+
+ + + + + + + + +
+
+
+ QEMU +
+
+
+
+ + QEMU + +
+
+
+ + + + + + + + + + + + +
+ + + + + Text is not SVG - cannot display + + + +
diff --git a/docs/score_tools/index.rst b/docs/score_tools/index.rst index e3319cc8605..39df3377494 100644 --- a/docs/score_tools/index.rst +++ b/docs/score_tools/index.rst @@ -33,4 +33,8 @@ S-CORE Tools Overview gtest bazel rustfmt +<<<<<<< HEAD clippy +======= + itf +>>>>>>> 1fc5c86 (ITF safety evaluation) diff --git a/docs/score_tools/itf.rst b/docs/score_tools/itf.rst new file mode 100644 index 00000000000..aa906f1da93 --- /dev/null +++ b/docs/score_tools/itf.rst @@ -0,0 +1,212 @@ +.. + # ******************************************************************************* + # Copyright (c) 2025 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + +.. doc_tool:: ITF + :id: doc_tool__itf + :status: draft + :version: 0.1.0 + :tcl: LOW + :safety_affected: YES + :security_affected: YES + :realizes: wp__tool_verification_report + :tags: tool_management + +ITF (Integration Testing Framework) Verification Report +======================================================= + +Introduction +------------ +Scope and purpose +~~~~~~~~~~~~~~~~~ +ITF is a pytest-based integration testing framework that simplifies writing and +running integration tests. It provides utilities for common integration tasks +— for example, SSH connection setup, interpreting dataframes, parsing +diagnostic messages, etc. ITF can execute tests on emulators (QEMU) as well as on +physical hardware. + +Inputs and outputs +~~~~~~~~~~~~~~~~~~ +| Inputs: Software image (binary), Pytest-based test files (python) +| Outputs: Test report + +.. figure:: _assets/itf.drawio.svg + :width: 100% + :align: center + :alt: ITF overview + + ITF overview + +Available information +~~~~~~~~~~~~~~~~~~~~~ +- Version: 0.1.0 [1]_ +- Repository: https://github.com/eclipse-score/itf +- Example of ITF test in S-CORE ITF repository: https://github.com/eclipse-score/itf/blob/main/examples/examples/itf/test_docker.py + + +Installation and integration +---------------------------- +Installation +~~~~~~~~~~~~ +| To add the ITF Bazel dependency to your project or module, include the following line in your MODULE.bazel file: + +.. code-block:: Python + + bazel_dep(name = "score_itf", version = "0.1.0") + +| And verify that the `.bazelrc` configuration file contains the following directive to register the S-CORE module registry: + +.. code-block:: Python + + common --registry=https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/ + +| The sources of bazel S-CORE ITF module configuration can be found at: https://github.com/eclipse-score/bazel_registry/tree/main/modules/score_itf + + +Integration +~~~~~~~~~~~ +Integrated in bazel. + +Environment +~~~~~~~~~~~ +Running application software instance with configured connection. + +Safety evaluation +----------------- +This section outlines the safety evaluation of ITF for its use within the S-CORE project. + + +.. list-table:: Safety evaluation + :header-rows: 1 + :widths: 1 2 8 2 6 4 2 2 + + * - Malfunction identification + - Use case description + - Malfunctions + - Impact on safety? + - Impact safety measures available? + - Impact safety detection sufficient? + - Further additional safety measure required? + - Confidence (automatic calculation) + * - 1 + - Run tests and generate test report + - | Fails to load input files + | + | ITF fails to load provided file even if file is present and accessible. + - yes + - (implicit) Check ITF test run status + - yes + - no + - high + * - 2 + - Run tests and generate test report + - | Fails to write result to file + | + | ITF was not able to save results in file(s). + - yes + - (implicit) Check ITF test run status + - yes + - no + - high + * - 3 + - Run tests and generate test report + - | Fails to collect results of the test(s) + | + | ITF was not able to collect results of executed test. + - no + - no + - yes + - no + - high + * - 4 + - Run tests and generate test report + - | Fails to detect an existing error + | + | ITF fails to detect the presence of existing errors. + - yes + - no + - no + - yes (qualification) + - low + * - 5 + - Run tests and generate test report + - | Fails to execute the test + | + | ITF fails to execute specific test from the test plan + - no + - no + - yes + - no + - high + * - 6 + - Run tests and generate test report + - | Indicates presence of a non-existing error + | + | ITF indicates the presence of errors that do not exist. + - no + - no + - yes + - no + - high + * - 7 + - Run tests and generate test report + - | Produces wrong test report + | + | ITF fails to save correct test result in test report. + - yes + - Review test report + - yes + - no + - high + +Security evaluation +------------------- +This section outlines the security evaluation of ITF for its use within the S-CORE project. + + +.. list-table:: Security evaluation + :header-rows: 1 + + * - Threat identification + - Use case description + - Threats + - Impact on security? + - Impact security measures available? + - Impact security detection sufficient? + * - 1 + - TBD + - TBD + - TBD + - TBD + - TBD + +Result +~~~~~~ +ITF requires qualification for use in safety-related software development. + + +**Tool Qualification** +------------------------------------------- +Based on method: validation of the software tool. + +Requirements and testing aspects +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Tool requirements are derived from official documentation (currently missing): https://github.com/eclipse-score/itf + +The testing team is responsible for identifying the specific ITF functionality +used in the project. Based on this, requirements for the utilized features must be derived from +the available documentation and ITF validated against defined requirements. + + +.. [1] The tool version mentioned in this document is preliminary. + It is subject to change and will be updated in future. From bf8305407ee17034f5e6d8d4d09d64773b2209be Mon Sep 17 00:00:00 2001 From: Philipp Ahmann <2428012+pahmann@users.noreply.github.com> Date: Fri, 19 Dec 2025 15:40:29 +0100 Subject: [PATCH 016/128] Refine test level in PMP (#2350) Signed-off-by: Philipp Ahmann --- .../software_verification.rst | 35 ++++++++++--------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/docs/platform_management_plan/software_verification.rst b/docs/platform_management_plan/software_verification.rst index ca7fbf69a5b..27cc55ac021 100644 --- a/docs/platform_management_plan/software_verification.rst +++ b/docs/platform_management_plan/software_verification.rst @@ -108,25 +108,26 @@ Levels of integration and verification There are the following different levels of integration and verification defined: -1. Software unit (incl. detailed design) and component verification to verify the integration of +1. **Software unit verification** (incl. detailed design) and component verification to verify the integration of units to a component and also the integration of smaller component(s) to a complex component based on #. detailed design and #. component architecture and #. component requirements -2. Software feature verification to verify the integration of components to a feature based on +2. **Software integration verification** on feature level to verify the integration of components to a feature based on #. feature architecture and #. feature requirements -3. Platform testing (on reference hardware) +3. **Software platform verification** as Platform Integration Testing of the integrated software element (on reference hardware) based on #. Stakeholder requirements - **Note:** These three levels translate to the levels of ISO 26262 part 6 clauses 9 to 11. The platform - testing will be executed by the integrator. S-CORE project only executes tests on reference hardware. + **Note:** These three levels translate to the levels of ISO 26262 part 6 clauses 9 to 11, where compliant testing with full coverage is tailored out for the embedded software. + The specific tailoring is described in the :need:`doc__score_platform_safety_plan`. + The full Platform Integration Testing will be executed by the integrator. S-CORE project only executes tests on reference hardware. These tests serve as an optional base for the integrator and will also be part of the :need:`wp__verification_platform_ver_report`, but more on an informative character. The full scope of clause 11 is tailored out accordingly for S-CORE. Practically, this means S-CORE will implement @@ -156,35 +157,35 @@ method is to be used as meta data (*TestType* and *DerivationTechnique*). - Applicable for QM / ASIL B * - Static Code Analysis - static-code-analysis - - 1, -, - + - 1 Unit/Component, -, - - QM & ASIL B * - Structural Statement Coverage (Code coverage) - structural-statement-coverage - - 1, -, - + - 1 Unit/Component, -, - - QM & ASIL B * - Structural Branch Coverage (Code coverage) - structural-branch-coverage - - 1, -, - + - 1 Unit/Component, -, - - QM & ASIL B * - Walkthrough - walkthrough - - 1, 2, 3 + - All level 1, 2, 3 - QM * - Inspection - inspection - - 1, 2, 3 + - 1 Unit/Component, 2 Feature Integration, - - ASIL B * - Interface Test - interface-test - - 1, 2, - + - 1 Unit/Component, 2 Feature Integration, - - QM & ASIL B * - Requirements-based Test - requirements-based - - 1, 2, - + - All level 1, 2, 3 - QM & ASIL B * - Resource Usage Evaluation (only on reference environment) - resource-usage - - -, 2, - + - -, 2 Feature Integration, - - QM & ASIL B @@ -233,19 +234,19 @@ Test Derivation Methods - Applicable for QM / ASIL B * - Analysis of Requirements - requirements-analysis - - 1, 2, 3 + - All level 1, 2, 3 - QM, ASIL B * - Analysis of Boundary Values - boundary-values - - 1, 2, - + - 1 Unit/Component, 2 Feature Integration, - - ASIL B * - Analysis of Equivalence Classes - equivalence-classes - - 1, 2, - + - All level 1, 2, 3 - ASIL B * - Fuzzy Testing (focus security) - fuzz-testing - - 1, 2, - + - 1 Unit/Component, 2 Feature Integration, - - QM, ASIL B The ``fuzz-testing`` should especially be taken into account to increase security of the software. From bf71f32956082b4eebb40ae93060e6670521de77 Mon Sep 17 00:00:00 2001 From: Anton Krivoborodov Date: Fri, 5 Dec 2025 16:31:45 +0100 Subject: [PATCH 017/128] Add template for v0.5 beta release --- docs/score_releases/score_releases/index.rst | 1 + .../score_releases/score_v0_5_alpha.rst | 2 +- .../score_releases/score_v0_5_beta.rst | 139 ++++++++++++++++++ 3 files changed, 141 insertions(+), 1 deletion(-) create mode 100644 docs/score_releases/score_releases/score_v0_5_beta.rst diff --git a/docs/score_releases/score_releases/index.rst b/docs/score_releases/score_releases/index.rst index af5ec410fd5..69e7290bb87 100644 --- a/docs/score_releases/score_releases/index.rst +++ b/docs/score_releases/score_releases/index.rst @@ -6,3 +6,4 @@ S-CORE Releases :maxdepth: 1 score_v0_5_alpha.rst + score_v0_5_beta.rst diff --git a/docs/score_releases/score_releases/score_v0_5_alpha.rst b/docs/score_releases/score_releases/score_v0_5_alpha.rst index 88b0f2c4aa8..e3a5d950641 100644 --- a/docs/score_releases/score_releases/score_v0_5_alpha.rst +++ b/docs/score_releases/score_releases/score_v0_5_alpha.rst @@ -17,7 +17,7 @@ S-Core v0.5-alpha release notes .. document:: S-Core v0.5-alpha release note :id: doc__score_v05_alpha_release_note - :status: draft + :status: valid :safety: ASIL_B :security: YES :realizes: wp__platform_sw_release_note diff --git a/docs/score_releases/score_releases/score_v0_5_beta.rst b/docs/score_releases/score_releases/score_v0_5_beta.rst new file mode 100644 index 00000000000..2dae400e50f --- /dev/null +++ b/docs/score_releases/score_releases/score_v0_5_beta.rst @@ -0,0 +1,139 @@ +.. + # ******************************************************************************* + # Copyright (c) 2025 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + +S-Core v0.5-beta release notes +=============================== + +.. document:: S-Core v0.5-beta release note + :id: doc__score_v05_beta_release_note + :status: draft + :safety: ASIL_B + :security: YES + :realizes: wp__platform_sw_release_note + +| **Platform Name**: S-CORE +| **Release Tag**: v0.5.0-beta +| **Origin Release Tag**: none - first published release +| **Release Date**: 2025-12-18 + +Overview +^^^^^^^^^ +TBD + +| + +Highlights +----------- +TBD + +Timeline +--------- +TBD + +| + +For a detailed and always up-to-date planning view, see the `GitHub project `_. + +Eclipse S-CORE book +------------------- +TBD + +Improvements +^^^^^^^^^^^^^ +TBD + +Bug Fixes +^^^^^^^^^^^^ +TBD + +Integrated Software Modules +----------------------------- + +Communication +~~~~~~~~~~~~~ +TBD + +Fixed Execution Order Framework(FEO) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +TBD + +Baselibs +~~~~~~~~~~~~~ +TBD + + +Persistency +~~~~~~~~~~~~~ +TBD + + +Orchestrator (Kyron and orchestration framework) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +TBD + + +Reference integration +~~~~~~~~~~~~~~~~~~~~~~ +TBD + +Reference QNX image ++++++++++++++++++++++ +TBD + +Reference Red Hat AutoSD Linux image (Experimental) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +TBD + +Reference Elektrobit corbos Linux for Safety Applications Linux image (Experimental) +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +TBD + +Associated Infrastructure Modules +----------------------------------- + +process_description +~~~~~~~~~~~~~~~~~~~~~~~ +TBD + +docs-as-code +~~~~~~~~~~~~~~ +TBD + +tooling +~~~~~~~~~~~~~~ +TBD + +ITF (Integration Testing Framework) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +TBD + +Test Scenarios +~~~~~~~~~~~~~~~ +TBD + +Performed Verification +---------------------- +TBD + +Known Issues +---------------------- +- see release notes of every module seperately + +Upgrade Instructions +---------------------- +- TBD + +Contact Information +---------------------- +For any questions or support, please contact the *Project lead* or raise an issue/discussion. From 448d7f4c2ef6edba5c5ef85d9849dc57174e3dd0 Mon Sep 17 00:00:00 2001 From: Frank Scholter Peres Date: Fri, 12 Dec 2025 09:36:36 +0000 Subject: [PATCH 018/128] fix: handbook --- docs/handbook/own_application/index.rst | 35 ++++++++++++++++--------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/docs/handbook/own_application/index.rst b/docs/handbook/own_application/index.rst index edfea1b76e0..3d7c0ba787c 100644 --- a/docs/handbook/own_application/index.rst +++ b/docs/handbook/own_application/index.rst @@ -33,7 +33,7 @@ To integrate the communication module into your project, follow these steps: 1. Setup ----------- -Start by creating a new project in your preferred IDE (e.g., Visual Studio Code). A ready-to-use devcontainer is available under: +Start by creating a new project in your preferred IDE (e.g., Visual Studio Code). A ready-to-use devcontainer is available under: - https://github.com/eclipse-score/devcontainer @@ -54,7 +54,7 @@ Reference documentation for the communication module: module(name = "use_com_test") - bazel_dep(name = "score_toolchains_gcc", version = "0.4", dev_dependency=True) + bazel_dep(name = "score_toolchains_gcc", version = "0.5", dev_dependency=True) gcc = use_extension("@score_toolchains_gcc//extensions:gcc.bzl", "gcc", dev_dependency=True) gcc.toolchain( @@ -84,8 +84,16 @@ Reference documentation for the communication module: ) bazel_dep(name = "boost.program_options", version = "1.87.0") - bazel_dep(name = "score-baselibs", version = "0.1.3") - bazel_dep(name = "communication", version = "0.1.1") + bazel_dep(name = "score_baselibs", version = "0.1.3") + bazel_dep(name = "score_communication", version = "0.1.1") + + # TRLC dependency for requirements traceability + bazel_dep(name = "trlc", version = "0.0.0") + git_override( + module_name = "trlc", + commit = "ede35c4411d41abe42b8f19e78f8989ff79ad3d8", + remote = "https://github.com/bmw-software-engineering/trlc.git", + ) Be aware that the version numbers change over time. Always check the latest versions in the respective bazel registry @@ -108,7 +116,8 @@ Be aware that the version numbers change over time. Always check the latest vers common --@score-baselibs//score/json:base_library=nlohmann common --@communication//score/mw/com/flags:tracing_library=stub - common --registry=https://raw.githubusercontent.com/eclipse-score/bazel_registry/refs/heads/main/ + common --registry=https://raw.githubusercontent.com/eclipse-score/bazel_registry/v0.5.0-alpha/ + common --registry=https://bcr.bazel.build ^^^^^^^^^^^^^ @@ -116,14 +125,14 @@ Be aware that the version numbers change over time. Always check the latest vers ^^^^^^^^^^^^^ If you start with an empty project, add an empty file named ``BUILD`` into your project root. -Now you can now run build the project with the command bazel ``bazel build //...`` +Now you can now run build the project with the command bazel ``bazel build //...`` (At this point nothing happens yet, because no targets are defined). You can now either continue with this guide to create a minimal consumer-producer example or start coding your own application ------------ -2. Use it :) +1. Use it :) ------------ Once your project is set up, you can start sending and receiving messages. @@ -133,9 +142,9 @@ Once your project is set up, you can start sending and receiving messages. ^^^^^^^^^^^^^^^^^^^^ Create a folder named ``src`` in your root project directory. -Inside ``src``, create the following folders: +Inside ``src``, create the following folders: -- ``consumer`` +- ``consumer`` - ``producer`` additional folders if needed. @@ -278,11 +287,11 @@ After that, create the file ``producer.cpp``. The constructor initializes the communication skeleton ``create_result``. -``RunProducer``: +``RunProducer``: - checks if the initialization of ``create_result`` was successful -- offers service -- enters a loop and sends our messages +- offers service +- enters a loop and sends our messages - stops offering the service at the end @@ -298,4 +307,4 @@ Navigate to the ``consumer`` directory and create a new file called ``consumer.h ^^^^^^^^^^^^^^ For a complete example implementation, see the example folder -https://github.com/eclipse-score/communication/tree/main/score/mw/com/example/ipc_bridge \ No newline at end of file +https://github.com/eclipse-score/communication/tree/main/score/mw/com/example/ipc_bridge From 1489a44a173c894cea44559a15303ba3d9995572 Mon Sep 17 00:00:00 2001 From: Frank Scholter Peres Date: Fri, 12 Dec 2025 13:07:58 +0000 Subject: [PATCH 019/128] added code_of_conduct and fixed contribution guidelines --- CODE_OF_CONDUCT.md | 93 ++++++++++++++++++++++++++++++++++++++++++++++ CONTRIBUTION.md | 44 +++++++++++++++++----- 2 files changed, 128 insertions(+), 9 deletions(-) create mode 100644 CODE_OF_CONDUCT.md diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 00000000000..faa735b35e4 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,93 @@ +# Community Code of Conduct + +**Version 2.0 +January 1, 2023** + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as community members, contributors, Committers[^1], and Project Leads (collectively "Contributors") pledge to make participation in our projects and our community a harassment-free and inclusive experience for everyone. + +This Community Code of Conduct ("Code") outlines our behavior expectations as members of our community in all Eclipse Foundation activities, both offline and online. It is not intended to govern scenarios or behaviors outside of the scope of Eclipse Foundation activities. Nor is it intended to replace or supersede the protections offered to all our community members under the law. Please follow both the spirit and letter of this Code and encourage other Contributors to follow these principles into our work. Failure to read or acknowledge this Code does not excuse a Contributor from compliance with the Code. + +## Our Standards + +Examples of behavior that contribute to creating a positive and professional environment include: + +- Using welcoming and inclusive language; +- Actively encouraging all voices; +- Helping others bring their perspectives and listening actively. If you find yourself dominating a discussion, it is especially important to encourage other voices to join in; +- Being respectful of differing viewpoints and experiences; +- Gracefully accepting constructive criticism; +- Focusing on what is best for the community; +- Showing empathy towards other community members; +- Being direct but professional; and +- Leading by example by holding yourself and others accountable + +Examples of unacceptable behavior by Contributors include: + +- The use of sexualized language or imagery; +- Unwelcome sexual attention or advances; +- Trolling, insulting/derogatory comments, and personal or political attacks; +- Public or private harassment, repeated harassment; +- Publishing others' private information, such as a physical or electronic address, without explicit permission; +- Violent threats or language directed against another person; +- Sexist, racist, or otherwise discriminatory jokes and language; +- Posting sexually explicit or violent material; +- Sharing private content, such as emails sent privately or non-publicly, or unlogged forums such as IRC channel history; +- Personal insults, especially those using racist or sexist terms; +- Excessive or unnecessary profanity; +- Advocating for, or encouraging, any of the above behavior; and +- Other conduct which could reasonably be considered inappropriate in a professional setting + +## Our Responsibilities + +With the support of the Eclipse Foundation employees, consultants, officers, and directors (collectively, the "Staff"), Committers, and Project Leads, the Eclipse Foundation Conduct Committee (the "Conduct Committee") is responsible for clarifying the standards of acceptable behavior. The Conduct Committee takes appropriate and fair corrective action in response to any instances of unacceptable behavior. + +## Scope + +This Code applies within all Project, Working Group, and Interest Group spaces and communication channels of the Eclipse Foundation (collectively, "Eclipse spaces"), within any Eclipse-organized event or meeting, and in public spaces when an individual is representing an Eclipse Foundation Project, Working Group, Interest Group, or their communities. Examples of representing a Project or community include posting via an official social media account, personal accounts, or acting as an appointed representative at an online or offline event. Representation of Projects, Working Groups, and Interest Groups may be further defined and clarified by Committers, Project Leads, or the Staff. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the Conduct Committee via conduct@eclipse-foundation.org. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. Without the explicit consent of the reporter, the Conduct Committee is obligated to maintain confidentiality with regard to the reporter of an incident. The Conduct Committee is further obligated to ensure that the respondent is provided with sufficient information about the complaint to reply. If such details cannot be provided while maintaining confidentiality, the Conduct Committee will take the respondent‘s inability to provide a defense into account in its deliberations and decisions. Further details of enforcement guidelines may be posted separately. + +Staff, Committers and Project Leads have the right to report, remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code, or to block temporarily or permanently any Contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. Any such actions will be reported to the Conduct Committee for transparency and record keeping. + +Any Staff (including officers and directors of the Eclipse Foundation), Committers, Project Leads, or Conduct Committee members who are the subject of a complaint to the Conduct Committee will be recused from the process of resolving any such complaint. + +## Responsibility + +The responsibility for administering this Code rests with the Conduct Committee, with oversight by the Executive Director and the Board of Directors. For additional information on the Conduct Committee and its process, please write to . + +## Investigation of Potential Code Violations + +All conflict is not bad as a healthy debate may sometimes be necessary to push us to do our best. It is, however, unacceptable to be disrespectful or offensive, or violate this Code. If you see someone engaging in objectionable behavior violating this Code, we encourage you to address the behavior directly with those involved. If for some reason, you are unable to resolve the matter or feel uncomfortable doing so, or if the behavior is threatening or harassing, please report it following the procedure laid out below. + +Reports should be directed to . It is the Conduct Committee’s role to receive and address reported violations of this Code and to ensure a fair and speedy resolution. + +The Eclipse Foundation takes all reports of potential Code violations seriously and is committed to confidentiality and a full investigation of all allegations. The identity of the reporter will be omitted from the details of the report supplied to the accused. Contributors who are being investigated for a potential Code violation will have an opportunity to be heard prior to any final determination. Those found to have violated the Code can seek reconsideration of the violation and disciplinary action decisions. Every effort will be made to have all matters disposed of within 60 days of the receipt of the complaint. + +## Actions +Contributors who do not follow this Code in good faith may face temporary or permanent repercussions as determined by the Conduct Committee. + +This Code does not address all conduct. It works in conjunction with our [Communication Channel Guidelines](https://www.eclipse.org/org/documents/communication-channel-guidelines/), [Social Media Guidelines](https://www.eclipse.org/org/documents/social_media_guidelines.php), [Bylaws](https://www.eclipse.org/org/documents/eclipse-foundation-be-bylaws-en.pdf), and [Internal Rules](https://www.eclipse.org/org/documents/ef-be-internal-rules.pdf) which set out additional protections for, and obligations of, all contributors. The Foundation has additional policies that provide further guidance on other matters. + +It’s impossible to spell out every possible scenario that might be deemed a violation of this Code. Instead, we rely on one another’s good judgment to uphold a high standard of integrity within all Eclipse Spaces. Sometimes, identifying the right thing to do isn’t an easy call. In such a scenario, raise the issue as early as possible. + +## No Retaliation + +The Eclipse community relies upon and values the help of Contributors who identify potential problems that may need to be addressed within an Eclipse Space. Any retaliation against a Contributor who raises an issue honestly is a violation of this Code. That a Contributor has raised a concern honestly or participated in an investigation, cannot be the basis for any adverse action, including threats, harassment, or discrimination. If you work with someone who has raised a concern or provided information in an investigation, you should continue to treat the person with courtesy and respect. If you believe someone has retaliated against you, report the matter as described by this Code. Honest reporting does not mean that you have to be right when you raise a concern; you just have to believe that the information you are providing is accurate. + +False reporting, especially when intended to retaliate or exclude, is itself a violation of this Code and will not be accepted or tolerated. + +Everyone is encouraged to ask questions about this Code. Your feedback is welcome, and you will get a response within three business days. Write to . + +## Amendments + +The Eclipse Foundation Board of Directors may amend this Code from time to time and may vary the procedures it sets out where appropriate in a particular case. + +### Attribution + +This Code was inspired by the [Contributor Covenant](https://www.contributor-covenant.org/), version 1.4, available [here](https://www.contributor-covenant.org/version/1/4/code-of-conduct/). + +[^1]: Capitalized terms used herein without definition shall have the meanings assigned to them in the Bylaws. \ No newline at end of file diff --git a/CONTRIBUTION.md b/CONTRIBUTION.md index dcc54e64cb3..191ae63fe78 100644 --- a/CONTRIBUTION.md +++ b/CONTRIBUTION.md @@ -1,21 +1,48 @@ -# Eclipse Safe Open Vehicle Core (SCORE) +# Eclipse Safe Open Vehicle Core (S-CORE) The [Eclipse Safe Open Vehicle Core](https://projects.eclipse.org/projects/automotive.score) project aims to develop an open-source core stack for Software Defined Vehicles (SDVs), specifically targeting embedded high-performance Electronic Control Units (ECUs). -Please check the [documentation](https://eclipse-score.github.io) for more information. +Please check the [documentation](https://eclipse-score.github.io/score/main/) for more information. The source code is hosted at [GitHub](https://github.com/eclipse-score). -The communication mainly takes place via the [`score-dev` mailing list](https://accounts.eclipse.org/mailing-list/score-dev) and GitHub issues & pull requests (PR). And we have a chatroom for community discussions here [Eclipse SCORE chatroom](https://chat.eclipse.org/#/room/#automotive.score:matrix.eclipse.org). +The communication mainly takes place via the [`score-dev` mailing list](https://accounts.eclipse.org/mailing-list/score-dev), [Discussions] (https://github.com/orgs/eclipse-score/discussions) and GitHub issues & pull requests (PR). +We have a Slack channel for community discussions here [Eclipse S-CORE Slack Channel](https://sdvworkinggroup.slack.com/archives/C083Z4VL90B). -Please note that for the project the [Eclipse Foundation’s Terms of Use](https://www.eclipse.org/legal/terms-of-use/) apply. -In addition, you need to sign the [ECA](https://www.eclipse.org/legal/ECA.php) and the [DCO](https://www.eclipse.org/legal/dco/) to contribute to the project. ## Contributing + +### Code of Conduct + +Please be familiar with the [Code of Conduct](CODE_OF_CONDUCT.md). + +## Eclipse Contributor Agreement & Developer Certificate of Origin + +Please note that for the project the [Eclipse Foundation’s Terms of Use](https://www.eclipse.org/legal/terms-of-use/) apply. + +Before your contribution can be accepted by the project team contributors must +electronically sign the Eclipse Contributor Agreement (ECA). + +* https://www.eclipse.org/legal/eca/ + + +For more information, please see the Eclipse Committer Handbook: +https://www.eclipse.org/projects/handbook/#resources-commit + +To complete and submit a ECA, log into the +[Eclipse projects forge](https://www.eclipse.org/contribute/cla/) +(you will need to create an account with the Eclipse Foundation if you have not already done so). +Click on "Eclipse Contributor Agreement" and complete the form. +Be sure to use the same email address when you register for the account +that you intend to use when you commit to Git. + +In addition, you need to sign the [DCO](https://www.eclipse.org/legal/dco/) to contribute to the project. + + ### Getting the source code & building the project Please refer to the [README.md](README.md) for further information. ### Getting involved #### Setup Phase -This phase is part of the eclipse Incubation Phase and shall establish all the processes needed for a safe development of functions. Only after this phase it will be possible to contribute code to the project. As the development in this project is driven by requirements, the processes and needed infrastructure incl. tooling will be established based on non-functional Stakeholder_Requirements. During setup phase the contributions are Bug Fixes and Improvements (both on processes and infrastructure). +This phase is part of the eclipse Incubation Phase and shall establish all the processes needed for a safe development of functions. Only after this phase it will be possible to contribute code to the project. As the development in this project is driven by requirements, the processes and needed infrastructure incl. tooling will be established based on }[Non-functional Stakeholder_Requirements](https://eclipse-score.github.io/score/main/requirements/stakeholder/index.html). During setup phase the contributions are Bug Fixes and Improvements (both on processes and infrastructure). #### Bug Fixes and Improvements Improvements are adding/changing processes and infrastructure, bug fixes can be also on development work products like code. @@ -23,13 +50,12 @@ In case you want to fix a bug or contribute an improvement, please perform the f 1) Create a PR by using the corresponding template ([Bugfix PR template](.github/PULL_REQUEST_TEMPLATE/bug_fix.md) or [Improvement PR template](.github/PULL_REQUEST_TEMPLATE/improvement.md)). Please mark your PR as draft until it's ready for review by the Committers (see the [Eclipse Foundation Project Handbook](https://www.eclipse.org/projects/handbook/#contributing-committers) for more information on the role definitions). Improvements are requested by the definition or modification of [Stakeholder Requirements](docs/stakeholder_requirements) or [Tool Requirements](docs/tool_requirements) and may be implemented after acceptance/merge of the request by a second Improvement PR. The needed reviews are automatically triggered via the [CODEOWNERS](.github/CODEOWNERS) file in the repository. 2) Initiate content review by opening a corresponding issue for the PR when it is ready for review. Review of the PR and final merge into the project repository is in responsibility of the Committers. Use the [Bugfix Issue template](.github/ISSUE_TEMPLATE/bug_fix.md) or [Improvement Issue template](.github/ISSUE_TEMPLATE/improvement.md) for this. -Please check here for our Git Commit Rules in the [Configuration_Tool_Guidelines](https://eclipse-score.github.io/score/process_description/guidelines/index.html). +Please check here for our Git Commit Rules in the [Git Guidelines](https://eclipse-score.github.io/score/main/contribute/general/git.html). -Please use the [Stakeholder and Tool Requirements Template](https://eclipse-score.github.io/score/process_description/templates/index.html) when defining these requirements. ![Contribution guide workflow](./docs/_assets/contribution_guide.svg "Contribution guide workflow") #### Additional Information Please note, that all Git commit messages must adhere the rules described in the [Eclipse Foundation Project Handbook](https://www.eclipse.org/projects/handbook/#resources-commit). -Please find process descriptions here: [process description](https://eclipse-score.github.io/score/process_description/). +Please find process descriptions here: [process description](https://eclipse-score.github.io/process_description/main/index.html). From 0d0f88196523669f60df24f39bccece1e8e15827 Mon Sep 17 00:00:00 2001 From: "markus.schu" Date: Fri, 12 Dec 2025 14:34:07 +0100 Subject: [PATCH 020/128] add process_description update link to release notes add link to maturity levels --- .../score_releases/score_v0_5_beta.rst | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/docs/score_releases/score_releases/score_v0_5_beta.rst b/docs/score_releases/score_releases/score_v0_5_beta.rst index 2dae400e50f..cead9ed3d45 100644 --- a/docs/score_releases/score_releases/score_v0_5_beta.rst +++ b/docs/score_releases/score_releases/score_v0_5_beta.rst @@ -103,8 +103,20 @@ Associated Infrastructure Modules ----------------------------------- process_description -~~~~~~~~~~~~~~~~~~~~~~~ -TBD +~~~~~~~~~~~~~~~~~~~ +Provides a process model establishing organizational rules for developing open source software +in the automotive domain, suitable for safety and security contexts. + +- **Version:** ``process description v1.4.0`` +- **Standards alignment:** + + - ASPICE 4.0 + - ISO 26262 + - ISO 21434 + - ISO PAS 8926 + +- **Release notes**: `process_description release notes `_ +- **Process maturity**: `process_description maturity levels `_ docs-as-code ~~~~~~~~~~~~~~ From a82612195d297aafb8caca8463b3810f5f720c71 Mon Sep 17 00:00:00 2001 From: Pawel Rutka Date: Mon, 15 Dec 2025 15:41:06 +0100 Subject: [PATCH 021/128] release: add kyron & orchestrator notes --- .../score_releases/score_v0_5_beta.rst | 34 +++++++++++++++++-- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/docs/score_releases/score_releases/score_v0_5_beta.rst b/docs/score_releases/score_releases/score_v0_5_beta.rst index cead9ed3d45..21f142b07f4 100644 --- a/docs/score_releases/score_releases/score_v0_5_beta.rst +++ b/docs/score_releases/score_releases/score_v0_5_beta.rst @@ -78,9 +78,37 @@ Persistency TBD -Orchestrator (Kyron and orchestration framework) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -TBD +Orchestrator +~~~~~~~~~~~~~ + +**Improvements** + +- Support `log` frontend exchange to: `log`, `tracing` or `score-log` (not yet implemented in this release) +- Increased CIT coverage and stability improvements +- Split of kyron into separate repositories: `orchestrator` and `kyron` + +:Version: ``orchestrator v0.0.4`` +:Source / tag: `Orchestrator GitHub release `__ +:Further reading: See below + + - `Orchestrator scope and design `__ + - `Orchestrator examples `__ + +Kyron +~~~~~~ + +**Improvements** + +- Support `log` frontend exchange to: `log`, `tracing` or `score-log` (not yet implemented in this release) +- Increased CIT coverage and stability improvements +- Split of kyron into separate repositories: `orchestrator` and `kyron` + +:Version: ``kyron v0.0.3`` +:Source / tag: `Kyron GitHub release `__ +:Further reading: See below + + - `Kyron scope and design `__ + - `Kyron examples `__ Reference integration From e776173d2bae0bfd42d54deba6d410e6da78aa34 Mon Sep 17 00:00:00 2001 From: Piotr Korkus Date: Tue, 16 Dec 2025 11:37:30 +0100 Subject: [PATCH 022/128] release: add test scenarios notes --- docs/score_releases/score_releases/score_v0_5_beta.rst | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/score_releases/score_releases/score_v0_5_beta.rst b/docs/score_releases/score_releases/score_v0_5_beta.rst index 21f142b07f4..b40e4fc3a17 100644 --- a/docs/score_releases/score_releases/score_v0_5_beta.rst +++ b/docs/score_releases/score_releases/score_v0_5_beta.rst @@ -160,7 +160,13 @@ TBD Test Scenarios ~~~~~~~~~~~~~~~ -TBD + +**Improvements** +- Refactor tracing subscriber by externalizing it's initialization +- Remove baselibs dependency from C++ scenarios in JSON parsing + +:Version: ``Test Scenarios v0.3.1`` +:Source / tag: `Test Scenarios GitHub release `__ Performed Verification ---------------------- From 30366592285743383131a7bcfb406793fb973fc1 Mon Sep 17 00:00:00 2001 From: Frank Scholter Peres Date: Wed, 17 Dec 2025 11:46:31 +0000 Subject: [PATCH 023/128] fixes naming --- docs/features/baselibs/index.rst | 2 +- docs/features/communication/index.rst | 2 +- docs/features/frameworks/feo/index.rst | 4 +- docs/features/orchestration/index.rst | 2 +- docs/features/persistency/index.rst | 2 +- .../score_releases/score_v0_5_beta.rst | 42 ++++++++++++++++--- 6 files changed, 43 insertions(+), 11 deletions(-) diff --git a/docs/features/baselibs/index.rst b/docs/features/baselibs/index.rst index c1f16888004..c6a06a9dade 100644 --- a/docs/features/baselibs/index.rst +++ b/docs/features/baselibs/index.rst @@ -14,7 +14,7 @@ .. _baselibs_feature: -Base Libraries (v0.5 alpha) +Base Libraries (v0.5 beta) ########################### .. document:: Base Libraries diff --git a/docs/features/communication/index.rst b/docs/features/communication/index.rst index 176d1806f10..62000c6fc91 100644 --- a/docs/features/communication/index.rst +++ b/docs/features/communication/index.rst @@ -14,7 +14,7 @@ .. _com_feature: -Communication (v0.5 alpha) +Communication (v0.5 beta) ########################## .. document:: Communication diff --git a/docs/features/frameworks/feo/index.rst b/docs/features/frameworks/feo/index.rst index 80ce3f51d73..827455b72c8 100644 --- a/docs/features/frameworks/feo/index.rst +++ b/docs/features/frameworks/feo/index.rst @@ -12,8 +12,8 @@ # SPDX-License-Identifier: Apache-2.0 # ******************************************************************************* -Fixed execution order framework (FEO) -##################################### +Fixed execution order framework (FEO) (v0.5 beta) +################################################# .. document:: Fixed execution order framework :id: doc__frameworks_feo diff --git a/docs/features/orchestration/index.rst b/docs/features/orchestration/index.rst index 54a121fa107..fe5dcb9db09 100644 --- a/docs/features/orchestration/index.rst +++ b/docs/features/orchestration/index.rst @@ -15,7 +15,7 @@ .. _orch_feature: -Orchestration (v0.5 alpha) +Orchestration (v0.5 beta) ########################## .. document:: Orchestration diff --git a/docs/features/persistency/index.rst b/docs/features/persistency/index.rst index 6f6246e5f34..ded30f1e54b 100644 --- a/docs/features/persistency/index.rst +++ b/docs/features/persistency/index.rst @@ -12,7 +12,7 @@ # SPDX-License-Identifier: Apache-2.0 # ******************************************************************************* -Persistency (v0.5 alpha) +Persistency (v0.5 beta) ######################## .. document:: Persistency diff --git a/docs/score_releases/score_releases/score_v0_5_beta.rst b/docs/score_releases/score_releases/score_v0_5_beta.rst index b40e4fc3a17..44d2932f167 100644 --- a/docs/score_releases/score_releases/score_v0_5_beta.rst +++ b/docs/score_releases/score_releases/score_v0_5_beta.rst @@ -29,7 +29,20 @@ S-Core v0.5-beta release notes Overview ^^^^^^^^^ -TBD +This is the second milestone build of the **Eclipse S-CORE platform** (v0.5.0-beta). It brings +together the initial set of core modules, reference integrations, and supporting infrastructure needed to +build and run example applications such as the `scrample `_ +demo on multiple target images. The software architecture and implemented modules are illustrated in the diagram below. + +This release of Eclipse S-CORE is an early beta version intended solely for experimentation, test driving project processes, gaining experience in release creation and soliciting feedback. +Please be aware, that features may be incomplete, the software may exhibit instability or unexpected behavior, and breaking changes and alterations in scope are likely as development progresses. + + +.. image:: ../_assets/architecture.drawio.svg + :width: 1000 + :alt: Architecture overview + :align: center + | @@ -39,7 +52,12 @@ TBD Timeline --------- -TBD +The current timeline for Eclipse S-CORE releases is shown below. + +.. image:: ../_assets/score_release_plan.drawio.svg + :width: 800 + :alt: Architecture overview + :align: center | @@ -47,11 +65,21 @@ For a detailed and always up-to-date planning view, see the `GitHub project `_ +is a “how-to” guide for users getting started with the project or who want to contribute new modules. +It introduces the core concepts of Eclipse S-CORE and walks through building +the ``scrample`` application step by step on top of the platform modules. +It also includes a tutorial for the first application on top of the existing modules. Improvements ^^^^^^^^^^^^^ -TBD +Main focus of this release is to improve the overall stability and performance of the platform, as well as to enhance the usability. +This does include + +- Static code analysis and Execution of Unit testing as part of the `Reference Integration https://github.com/eclipse-score/reference_integration`_. +- A new combined build toolchain of qcc and gcc `bazel cpp toolchain https://github.com/eclipse-score/bazel_cpp_toolchains`_. +- Improved doc-as-code and process description +- Bug Fixes ^^^^^^^^^^^^ @@ -62,7 +90,11 @@ Integrated Software Modules Communication ~~~~~~~~~~~~~ -TBD +Zero-copy, shared-memory based inter-process communication for minimal-latency intra-ECU messaging. + +- **Version:** ``communication v0.1.2`` +- **Source / tag:** `Communication GitHub release `_ +- **Release notes:** :need:`doc__communication_release_note` Fixed Execution Order Framework(FEO) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ From 6b128d4f351a5005de3c4ff7730586353b829ea6 Mon Sep 17 00:00:00 2001 From: Oliver Pajonk Date: Wed, 17 Dec 2025 11:12:37 +0000 Subject: [PATCH 024/128] Add release notes for EBcLfSA reference integration --- docs/score_releases/score_releases/score_v0_5_beta.rst | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/score_releases/score_releases/score_v0_5_beta.rst b/docs/score_releases/score_releases/score_v0_5_beta.rst index 44d2932f167..222935b5fdd 100644 --- a/docs/score_releases/score_releases/score_v0_5_beta.rst +++ b/docs/score_releases/score_releases/score_v0_5_beta.rst @@ -157,7 +157,11 @@ TBD Reference Elektrobit corbos Linux for Safety Applications Linux image (Experimental) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -TBD + +**Improvements** + +- New ``fastdev`` base image snapshot and corresponding toolchain which include latest security patches and updates. +- Updated packages avoid misleading errors during image start and shutdown, which could be confusing for users. Associated Infrastructure Modules ----------------------------------- From 36ff29195484d394a350efd80f9ccb42da0fe4bf Mon Sep 17 00:00:00 2001 From: Oliver Pajonk Date: Wed, 17 Dec 2025 11:12:48 +0000 Subject: [PATCH 025/128] bump devcontainer --- .devcontainer/devcontainer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 1a3b163c06d..e88d473e821 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,4 +1,4 @@ { "name": "eclipse-s-core", - "image": "ghcr.io/eclipse-score/devcontainer:1.0.0" + "image": "ghcr.io/eclipse-score/devcontainer:v1.1.0" } From 63e633d8b1394f893e198b8bfa8c5c0b1560a951 Mon Sep 17 00:00:00 2001 From: Frank Scholter Peres Date: Wed, 17 Dec 2025 12:31:58 +0000 Subject: [PATCH 026/128] added descriptions --- .../score_releases/score_v0_5_beta.rst | 59 ++++++++++++++----- 1 file changed, 45 insertions(+), 14 deletions(-) diff --git a/docs/score_releases/score_releases/score_v0_5_beta.rst b/docs/score_releases/score_releases/score_v0_5_beta.rst index 222935b5fdd..376ab9c9731 100644 --- a/docs/score_releases/score_releases/score_v0_5_beta.rst +++ b/docs/score_releases/score_releases/score_v0_5_beta.rst @@ -48,7 +48,7 @@ Please be aware, that features may be incomplete, the software may exhibit insta Highlights ----------- -TBD + Timeline --------- @@ -76,14 +76,15 @@ Improvements Main focus of this release is to improve the overall stability and performance of the platform, as well as to enhance the usability. This does include -- Static code analysis and Execution of Unit testing as part of the `Reference Integration https://github.com/eclipse-score/reference_integration`_. +- Static code analysis with CodeQL and Execution of Unit testing as part of the `Reference Integration https://github.com/eclipse-score/reference_integration`_. - A new combined build toolchain of qcc and gcc `bazel cpp toolchain https://github.com/eclipse-score/bazel_cpp_toolchains`_. - Improved doc-as-code and process description - -Bug Fixes -^^^^^^^^^^^^ -TBD +Bug Fixes Platform +^^^^^^^^^^^^^^^^^^ + +https://github.com/eclipse-score/score/issues?q=is%3Aissue%20state%3Aclosed%20type%3ABug Integrated Software Modules ----------------------------- @@ -98,7 +99,9 @@ Zero-copy, shared-memory based inter-process communication for minimal-latency i Fixed Execution Order Framework(FEO) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -TBD +- **Version:** ``feo v0.1.2`` +- **Source / tag:** `Communication GitHub release `_ +- **Stays at v0.5-alpha** Baselibs ~~~~~~~~~~~~~ @@ -107,8 +110,11 @@ TBD Persistency ~~~~~~~~~~~~~ -TBD +Ensures long-term storage and retrieval of data and provides a reliable mechanism for +preserving application state and data integrity over time. +- **Version:** ``persistency v0.2.1`` +- **Source / tag:** `Persistency GitHub release `_ Orchestrator ~~~~~~~~~~~~~ @@ -145,7 +151,11 @@ Kyron Reference integration ~~~~~~~~~~~~~~~~~~~~~~ -TBD +Central integration of Eclipse S-CORE modules + +- **Version:** ``reference integration v0.5.0-beta`` +- **Source / tag:** `Reference Integration GitHub release `_ + Reference QNX image +++++++++++++++++++++ @@ -184,15 +194,25 @@ in the automotive domain, suitable for safety and security contexts. docs-as-code ~~~~~~~~~~~~~~ -TBD +Tooling for linking and generation of documentation. + +- **Version:** ``docs-as-code v2.2.1`` +- **Source / tag:** `docs-as-code GitHub release `_ tooling ~~~~~~~~~~~~~~ -TBD +Tooling for S-CORE development. + +- **Version:** ``tooling v1.0.4`` +- **Source / tag:** `tooling GitHub release `_ + ITF (Integration Testing Framework) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -TBD +Framework for executing feature integration tests on the reference image. + +- **Version:** ``itf v0.1.0`` +- **Source / tag:** `ITF GitHub release `_ Test Scenarios ~~~~~~~~~~~~~~~ @@ -206,15 +226,26 @@ Test Scenarios Performed Verification ---------------------- -TBD +The following tests were executed as part of this release: + +- All C++ modules built successfully with GCC and QCC toolchains. +- All Rust modules built successfully with the Rust toolchain. +- Each module executed its unit tests. +- Basic integration tests were executed on the reference QNX image in QEMU via the + `release verification `_ workflow +- for **persistency** and **orchestration** modules, component and feature integration tests were executed using the ``score-test-scenarios`` framework; see + `feature_showcase `_ and + `feature_integration_tests `_ for more details. +- Static code analysis of all dependencies with CodeQL MISRA C++2023 package. The results you can find here: https://github.com/eclipse-score/reference_integration/actions/workflows/codeql-multiple-repo-scan.yml Known Issues ---------------------- -- see release notes of every module seperately +- see release notes of every module separately Upgrade Instructions ---------------------- -- TBD +- Increase to newest bazel registry versions: https://github.com/eclipse-score/bazel_registry/tree/main/modules + Contact Information ---------------------- From faee7eaecf1337405b45cd1e648883566c007c98 Mon Sep 17 00:00:00 2001 From: Frank Scholter Peres Date: Wed, 17 Dec 2025 12:51:21 +0000 Subject: [PATCH 027/128] added platform --- .../score_releases/score_v0_5_beta.rst | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/docs/score_releases/score_releases/score_v0_5_beta.rst b/docs/score_releases/score_releases/score_v0_5_beta.rst index 376ab9c9731..0a1d6f7cf2a 100644 --- a/docs/score_releases/score_releases/score_v0_5_beta.rst +++ b/docs/score_releases/score_releases/score_v0_5_beta.rst @@ -24,7 +24,7 @@ S-Core v0.5-beta release notes | **Platform Name**: S-CORE | **Release Tag**: v0.5.0-beta -| **Origin Release Tag**: none - first published release +| **Origin Release Tag**: v0.5.0-alpha | **Release Date**: 2025-12-18 Overview @@ -76,14 +76,19 @@ Improvements Main focus of this release is to improve the overall stability and performance of the platform, as well as to enhance the usability. This does include -- Static code analysis with CodeQL and Execution of Unit testing as part of the `Reference Integration https://github.com/eclipse-score/reference_integration`_. -- A new combined build toolchain of qcc and gcc `bazel cpp toolchain https://github.com/eclipse-score/bazel_cpp_toolchains`_. +- Static code analysis with CodeQL and Execution of Unit testing as part of the `Reference Integration `_. +- A new combined build toolchain of qcc and gcc `bazel cpp toolchain `_. - Improved doc-as-code and process description -- -Bug Fixes Platform + +S-CORE Platform ^^^^^^^^^^^^^^^^^^ +- **Version:** ``score v0.5.2`` +- **Source / tag:** `S-CORE Platform GitHub release `_ +- **Release notes**: `S-CORE Platform release notes `_ + + https://github.com/eclipse-score/score/issues?q=is%3Aissue%20state%3Aclosed%20type%3ABug Integrated Software Modules From d97ab5e96e234c1d73a4b83877b09ebf858b2c84 Mon Sep 17 00:00:00 2001 From: "Frank Scholter Peres(MBTI)" <145544737+FScholPer@users.noreply.github.com> Date: Wed, 17 Dec 2025 13:52:21 +0100 Subject: [PATCH 028/128] Update CONTRIBUTION.md Co-authored-by: AndreasMittag Signed-off-by: Frank Scholter Peres(MBTI) <145544737+FScholPer@users.noreply.github.com> --- CONTRIBUTION.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTION.md b/CONTRIBUTION.md index 191ae63fe78..0700a9596bf 100644 --- a/CONTRIBUTION.md +++ b/CONTRIBUTION.md @@ -3,7 +3,7 @@ The [Eclipse Safe Open Vehicle Core](https://projects.eclipse.org/projects/autom Please check the [documentation](https://eclipse-score.github.io/score/main/) for more information. The source code is hosted at [GitHub](https://github.com/eclipse-score). -The communication mainly takes place via the [`score-dev` mailing list](https://accounts.eclipse.org/mailing-list/score-dev), [Discussions] (https://github.com/orgs/eclipse-score/discussions) and GitHub issues & pull requests (PR). +The communication mainly takes place via the [`score-dev` mailing list](https://accounts.eclipse.org/mailing-list/score-dev), [Discussions](https://github.com/orgs/eclipse-score/discussions) and GitHub issues & pull requests (PR). We have a Slack channel for community discussions here [Eclipse S-CORE Slack Channel](https://sdvworkinggroup.slack.com/archives/C083Z4VL90B). From 5926103ad143f97067cf3552b049aaf2cb73d9cd Mon Sep 17 00:00:00 2001 From: Anton Krivoborodov Date: Wed, 17 Dec 2025 15:49:55 +0100 Subject: [PATCH 029/128] add further content --- docs/score_releases/index.rst | 18 +++- .../score_releases/score_v0_5_alpha.rst | 13 --- .../score_releases/score_v0_5_beta.rst | 90 ++++++++++++------- 3 files changed, 75 insertions(+), 46 deletions(-) diff --git a/docs/score_releases/index.rst b/docs/score_releases/index.rst index 035bba0399a..4a841321d57 100644 --- a/docs/score_releases/index.rst +++ b/docs/score_releases/index.rst @@ -24,7 +24,23 @@ See also the project life cycle within the `Eclipse Development Process `_. + +List of S-CORE released versions +--------------------------------- + .. toctree:: - :maxdepth: 1 + :maxdepth: 2 score_releases/index.rst diff --git a/docs/score_releases/score_releases/score_v0_5_alpha.rst b/docs/score_releases/score_releases/score_v0_5_alpha.rst index e3a5d950641..c10a5782c8d 100644 --- a/docs/score_releases/score_releases/score_v0_5_alpha.rst +++ b/docs/score_releases/score_releases/score_v0_5_alpha.rst @@ -52,19 +52,6 @@ Highlights - Initial set of communication, persistency, orchestration, and base utility modules. - Experimental reference images for QNX, Red Hat AutoSD Linux, and EB corbos Linux for Safety Applications. -Timeline ---------- -The current timeline for Eclipse S-CORE releases is shown below. - -.. image:: ../_assets/score_release_plan.drawio.svg - :width: 800 - :alt: Architecture overview - :align: center - -| - -For a detailed and always up-to-date planning view, see the `GitHub project `_. - Eclipse S-CORE book ------------------- The first version of the `Eclipse S-CORE book `_ diff --git a/docs/score_releases/score_releases/score_v0_5_beta.rst b/docs/score_releases/score_releases/score_v0_5_beta.rst index 0a1d6f7cf2a..ab9c68861ef 100644 --- a/docs/score_releases/score_releases/score_v0_5_beta.rst +++ b/docs/score_releases/score_releases/score_v0_5_beta.rst @@ -49,20 +49,6 @@ Please be aware, that features may be incomplete, the software may exhibit insta Highlights ----------- - -Timeline ---------- -The current timeline for Eclipse S-CORE releases is shown below. - -.. image:: ../_assets/score_release_plan.drawio.svg - :width: 800 - :alt: Architecture overview - :align: center - -| - -For a detailed and always up-to-date planning view, see the `GitHub project `_. - Eclipse S-CORE book ------------------- The `Eclipse S-CORE book `_ @@ -71,16 +57,37 @@ It introduces the core concepts of Eclipse S-CORE and walks through building the ``scrample`` application step by step on top of the platform modules. It also includes a tutorial for the first application on top of the existing modules. + Improvements ^^^^^^^^^^^^^ Main focus of this release is to improve the overall stability and performance of the platform, as well as to enhance the usability. This does include -- Static code analysis with CodeQL and Execution of Unit testing as part of the `Reference Integration `_. -- A new combined build toolchain of qcc and gcc `bazel cpp toolchain `_. +- Static code analysis with CodeQL: **//TODO:** add link to the results. +- Execution of Unit tests as part of the Reference Integration `test_integration workflow `_. +- Unit-test coverage measurement results are now automatically part of Release Assests for every component: **//TODO:** link to an example. +- A new combined build toolchain of qcc and gcc, see `bazel_cpp_toolchain <#bazel-cpp-toolchain>`_. - Improved doc-as-code and process description +Software Development Process status +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +The following image provides an overview of the current status of the software development process, the associated tooling, +and the progress of its application to the software modules. + +.. image:: https://raw.githubusercontent.com/eclipse-score/process_description/bec1931b56464543cb70385e75c15fcb1625f0d0/process/_assets/score_process_area_overview.drawio.svg + :width: 1000 + :alt: Architecture overview + :align: center + + +| + +For more details please refer to +`Documentation Management Plan `_, that +provides overview on the process workproduct level for every software module and process area. + + S-CORE Platform ^^^^^^^^^^^^^^^^^^ @@ -94,6 +101,11 @@ https://github.com/eclipse-score/score/issues?q=is%3Aissue%20state%3Aclosed%20ty Integrated Software Modules ----------------------------- + +Baselibs +~~~~~~~~~~~~~ +TBD + Communication ~~~~~~~~~~~~~ Zero-copy, shared-memory based inter-process communication for minimal-latency intra-ECU messaging. @@ -108,10 +120,6 @@ Fixed Execution Order Framework(FEO) - **Source / tag:** `Communication GitHub release `_ - **Stays at v0.5-alpha** -Baselibs -~~~~~~~~~~~~~ -TBD - Persistency ~~~~~~~~~~~~~ @@ -164,11 +172,11 @@ Central integration of Eclipse S-CORE modules Reference QNX image +++++++++++++++++++++ -TBD +- No changes compared to the previous software version. Reference Red Hat AutoSD Linux image (Experimental) +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -TBD +- No changes compared to the previous software version. Reference Elektrobit corbos Linux for Safety Applications Linux image (Experimental) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ @@ -189,10 +197,10 @@ in the automotive domain, suitable for safety and security contexts. - **Version:** ``process description v1.4.0`` - **Standards alignment:** - - ASPICE 4.0 - - ISO 26262 - - ISO 21434 - - ISO PAS 8926 + - ASPICE 4.0 + - ISO 26262 + - ISO 21434 + - ISO PAS 8926 - **Release notes**: `process_description release notes `_ - **Process maturity**: `process_description maturity levels `_ @@ -214,20 +222,38 @@ Tooling for S-CORE development. ITF (Integration Testing Framework) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Framework for executing feature integration tests on the reference image. +- **Improvements** + + - Improved ITF `user documentation `_ - **Version:** ``itf v0.1.0`` - **Source / tag:** `ITF GitHub release `_ Test Scenarios ~~~~~~~~~~~~~~~ +- **Improvements** -**Improvements** -- Refactor tracing subscriber by externalizing it's initialization -- Remove baselibs dependency from C++ scenarios in JSON parsing + - Refactor tracing subscriber by externalizing it's initialization + - Remove baselibs dependency from C++ scenarios in JSON parsing + +- **Version:** ``Test Scenarios v0.3.1`` +- **Source / tag:** `Test Scenarios GitHub release `_ + +Bazel CPP Toolchain +~~~~~~~~~~~~~~~~~~~~ +- **What is in** + + - support for following platform configurations: *x86_64_linux*, *x86_64_qnx*, *arm64_qnx* + - complete feature flag set for the host toolchain (*x86_64_linux*): *minimal*, *strict*, *all_warnings* + +- **What is not in** -:Version: ``Test Scenarios v0.3.1`` -:Source / tag: `Test Scenarios GitHub release `__ + - feature flag set for the target toolchain (infrastructure is already set-up) + - arm64_linux configuration is missing + +- **Version:** ``bazel_cpp_toolchains v0.1.0`` +- **Source / tag:** `Bazel CPP Toolchain release `_ +- **Release notes**: `Bazel CPP Toolchain release notes `_ Performed Verification ---------------------- From d5ac970151dd8b9a29fc66407a6c3d3d3f1f6431 Mon Sep 17 00:00:00 2001 From: Frank Scholter Peres Date: Fri, 19 Dec 2025 09:21:29 +0000 Subject: [PATCH 030/128] updated to new --- .../score_releases/score_v0_5_beta.rst | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/docs/score_releases/score_releases/score_v0_5_beta.rst b/docs/score_releases/score_releases/score_v0_5_beta.rst index ab9c68861ef..ada367bf5c1 100644 --- a/docs/score_releases/score_releases/score_v0_5_beta.rst +++ b/docs/score_releases/score_releases/score_v0_5_beta.rst @@ -63,14 +63,14 @@ Improvements Main focus of this release is to improve the overall stability and performance of the platform, as well as to enhance the usability. This does include -- Static code analysis with CodeQL: **//TODO:** add link to the results. +- Static code analysis with CodeQL MISRA C++ 2023: `release link `. - Execution of Unit tests as part of the Reference Integration `test_integration workflow `_. -- Unit-test coverage measurement results are now automatically part of Release Assests for every component: **//TODO:** link to an example. +- Unit-test coverage measurement results are now automatically part of Release Assests for every component: **//TODO:** link to an example. - A new combined build toolchain of qcc and gcc, see `bazel_cpp_toolchain <#bazel-cpp-toolchain>`_. - Improved doc-as-code and process description -Software Development Process status +Software Development Process status ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The following image provides an overview of the current status of the software development process, the associated tooling, and the progress of its application to the software modules. @@ -83,7 +83,7 @@ and the progress of its application to the software modules. | -For more details please refer to +For more details please refer to `Documentation Management Plan `_, that provides overview on the process workproduct level for every software module and process area. @@ -126,8 +126,8 @@ Persistency Ensures long-term storage and retrieval of data and provides a reliable mechanism for preserving application state and data integrity over time. -- **Version:** ``persistency v0.2.1`` -- **Source / tag:** `Persistency GitHub release `_ +- **Version:** ``persistency v0.2.2`` +- **Source / tag:** `Persistency GitHub release `_ Orchestrator ~~~~~~~~~~~~~ @@ -176,7 +176,12 @@ Reference QNX image Reference Red Hat AutoSD Linux image (Experimental) +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- No changes compared to the previous software version. +- Use sub-module structure +- os_images does not need to be a sub-module since it does not use bazel +- Use AutoSD tools to build RPMs (toolchain + bazelrc file) +- Use built RPMs in os_images +- Uses 0.5 modules, similar setup to upstream reference_instegration +- e2e workflow defined in github actions Reference Elektrobit corbos Linux for Safety Applications Linux image (Experimental) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ @@ -209,8 +214,8 @@ docs-as-code ~~~~~~~~~~~~~~ Tooling for linking and generation of documentation. -- **Version:** ``docs-as-code v2.2.1`` -- **Source / tag:** `docs-as-code GitHub release `_ +- **Version:** ``docs-as-code v2.2.0`` +- **Source / tag:** `docs-as-code GitHub release `_ tooling ~~~~~~~~~~~~~~ @@ -250,7 +255,7 @@ Bazel CPP Toolchain - feature flag set for the target toolchain (infrastructure is already set-up) - arm64_linux configuration is missing - + - **Version:** ``bazel_cpp_toolchains v0.1.0`` - **Source / tag:** `Bazel CPP Toolchain release `_ - **Release notes**: `Bazel CPP Toolchain release notes `_ From d9030720a16b3923c2a23e7ebada872731bf6996 Mon Sep 17 00:00:00 2001 From: Frank Scholter Peres Date: Fri, 19 Dec 2025 09:43:25 +0000 Subject: [PATCH 031/128] add_beta --- docs/score_releases/score_releases/score_v0_5_beta.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/score_releases/score_releases/score_v0_5_beta.rst b/docs/score_releases/score_releases/score_v0_5_beta.rst index ada367bf5c1..d358efd9648 100644 --- a/docs/score_releases/score_releases/score_v0_5_beta.rst +++ b/docs/score_releases/score_releases/score_v0_5_beta.rst @@ -25,7 +25,7 @@ S-Core v0.5-beta release notes | **Platform Name**: S-CORE | **Release Tag**: v0.5.0-beta | **Origin Release Tag**: v0.5.0-alpha -| **Release Date**: 2025-12-18 +| **Release Date**: 2025-12-19 Overview ^^^^^^^^^ From 8973aeb7443cf1731a3f64d465a752f889a7ce11 Mon Sep 17 00:00:00 2001 From: Anton Krivoborodov Date: Fri, 19 Dec 2025 12:11:16 +0100 Subject: [PATCH 032/128] add logging daemon desciption --- .../score_releases/score_v0_5_beta.rst | 35 ++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/docs/score_releases/score_releases/score_v0_5_beta.rst b/docs/score_releases/score_releases/score_v0_5_beta.rst index d358efd9648..303c0d77300 100644 --- a/docs/score_releases/score_releases/score_v0_5_beta.rst +++ b/docs/score_releases/score_releases/score_v0_5_beta.rst @@ -68,6 +68,13 @@ This does include - Unit-test coverage measurement results are now automatically part of Release Assests for every component: **//TODO:** link to an example. - A new combined build toolchain of qcc and gcc, see `bazel_cpp_toolchain <#bazel-cpp-toolchain>`_. - Improved doc-as-code and process description +- `bazel_tools_cc `_ introduces a clang-tidy integration into S-CORE bazel infrasturture: + + - Check exhaustive `bazel_tools_cc README `_ and an + `example project `_ for instructions how to set-up + clang-tidy checks for your module + - In the upcoming releases clang-tidy will be extended with custom S-CORE checks to meet necessary process requirements. +- Platform functionality was extended with `logging daemon <#logging-daemon>`_. Software Development Process status @@ -145,8 +152,34 @@ Orchestrator - `Orchestrator scope and design `__ - `Orchestrator examples `__ +Logging Daemon +~~~~~~~~~~~~~~~~~~ + +**Improvements** + +The Eclipse SCORE Logging module provides a comprehensive logging framework for automotive embedded systems, +featuring remote DLT (Diagnostic Log and Trace) capabilities with high-performance, lock-free communication +between applications and the datarouter daemon. + +This is the initial open-source release of the logging framework, +consolidating the complete project structure with build system, dependencies, +and tooling for integration into Eclipse SCORE projects. + +The module is designed for Bazel-based builds and provides both the middleware logging +library (score/mw/log) that includes all supported recorders with respective backends and +the datarouter daemon (score/datarouter). The shared memory implementation between the middleware +library and datarouter daemon guarantees Freedom From Interference (FFI), +enabling safe logging from real-time and safety-critical contexts. + +:Version: ``logging v0.0.3`` +:Source / tag: `logging release `__ +:Further reading: See below + + - `Logging release notes `__ + - `Logging ReadMe `__ + Kyron -~~~~~~ +~~~~~~~~~~~~~~ **Improvements** From 66de72d4eb8fed38f479270beb215856b11b656d Mon Sep 17 00:00:00 2001 From: "markus.schu" Date: Fri, 19 Dec 2025 12:35:22 +0100 Subject: [PATCH 033/128] replace maturity link for process with current status image --- .../_assets/score_process_area_overview.drawio.svg | 4 ++++ .../score_releases/score_releases/score_v0_5_beta.rst | 11 ++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 docs/score_releases/_assets/score_process_area_overview.drawio.svg diff --git a/docs/score_releases/_assets/score_process_area_overview.drawio.svg b/docs/score_releases/_assets/score_process_area_overview.drawio.svg new file mode 100644 index 00000000000..6bfc2a76b5f --- /dev/null +++ b/docs/score_releases/_assets/score_process_area_overview.drawio.svg @@ -0,0 +1,4 @@ + + + +







Process Areas - Support










 
Process Areas - Support...




Process Areas - Development










 
Process Areas - Development...
Introduction
Introduction









Process Areas - Management












 
Process Areas - Management...
Requirements
Engineering
Requirements...
Safety
Management
Safety...
Change Management
Change Managem...
Documentation
Management
Documentation...
General Concepts
General Concepts
Standards
Standards
Roles
Roles


Architecture



Architecture...

Imple-mentation

(Detailed Design,
Coding)
Imple-mentatio...
Problem Resolution
Problem Resolu...
ML 4
ML 4
ML 2
ML 2
ML 1
ML 1
Verification

Verification...
Configuration
Management
Configuration...
Tool
Management
Tool...
Quality
Management
Quality...
Platform
Management
Platform...
Maturity Level
Maturity Level
ML 0
ML 0

Safety
Analysis

Safety...
Work Products
Work Products
Workflows
Workflows
ML 3
ML 3
Plan
Process definition planned
Documents not available 
or most empty
Plan -...
Initial
Process definition in place, but not yet compliant, consistency across S-CORE platform, modules and repeatability of processes may not be possible.
Documents are mostly available, main parts done, principles clear, all top level questions addressed, well structured.
Initial -...
Managed -
Process definition in place but not yet deployed in S-CORE, but execution would allow consistency across S-CORE platform and modules, repeatability of processes possible
Documents are complete, documented on a comprehensible systematic approach, verified, only minor questions open, Process requirements (of highest priority) enforced by implemented Tool Requirements (or a feasible manual work around is defined).
Managed -...
Defined/Practiced
Deployed (at least once) in S-CORE platform or one Module, The processes have been practiced, and evidence exists to demonstrate that this has occurred. 
Documents are complete, verified and released, Process Requirements (of high/ medium priority) enforced by implemented Tool Requirements, Tool evaluation performed
 Initial Safety Audit passed.

Defined/Practiced -...
Improving - 
Deployed on S-CORE platform and various S-CORE Modules and constantly improving, using suitable process metrics, S-CORE commiter control the effectiveness and performance of the platform and modules and demonstrate continuous improvement in these areas. Tool qualification available.
Improving -...
Release
Management
Release...
Trustable
Trustable
Folder Templates
Folder Templates
Security
Management
Security...
Security
Analysis
Security...
Text is not SVG - cannot display
diff --git a/docs/score_releases/score_releases/score_v0_5_beta.rst b/docs/score_releases/score_releases/score_v0_5_beta.rst index 303c0d77300..be001ad3395 100644 --- a/docs/score_releases/score_releases/score_v0_5_beta.rst +++ b/docs/score_releases/score_releases/score_v0_5_beta.rst @@ -70,11 +70,11 @@ This does include - Improved doc-as-code and process description - `bazel_tools_cc `_ introduces a clang-tidy integration into S-CORE bazel infrasturture: - - Check exhaustive `bazel_tools_cc README `_ and an + - Check exhaustive `bazel_tools_cc README `_ and an `example project `_ for instructions how to set-up clang-tidy checks for your module - In the upcoming releases clang-tidy will be extended with custom S-CORE checks to meet necessary process requirements. -- Platform functionality was extended with `logging daemon <#logging-daemon>`_. +- Platform functionality was extended with `logging daemon <#logging-daemon>`_. Software Development Process status @@ -241,7 +241,12 @@ in the automotive domain, suitable for safety and security contexts. - ISO PAS 8926 - **Release notes**: `process_description release notes `_ -- **Process maturity**: `process_description maturity levels `_ +- **Process maturity overview**: + +.. figure:: ../_assets/score_process_area_overview.drawio.svg + :width: 100% + :align: center + :alt: Process area overview for the **Project** docs-as-code ~~~~~~~~~~~~~~ From c01331851fda4c241e436c36975398405e0a257d Mon Sep 17 00:00:00 2001 From: Anton Krivoborodov Date: Fri, 19 Dec 2025 12:55:42 +0100 Subject: [PATCH 034/128] add baselibs release notes --- .../score_releases/score_v0_5_beta.rst | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/docs/score_releases/score_releases/score_v0_5_beta.rst b/docs/score_releases/score_releases/score_v0_5_beta.rst index be001ad3395..6fe48deecb8 100644 --- a/docs/score_releases/score_releases/score_v0_5_beta.rst +++ b/docs/score_releases/score_releases/score_v0_5_beta.rst @@ -108,10 +108,14 @@ https://github.com/eclipse-score/score/issues?q=is%3Aissue%20state%3Aclosed%20ty Integrated Software Modules ----------------------------- - Baselibs ~~~~~~~~~~~~~ -TBD +Selection of basic C++ utility libraries for common use in the S-CORE project + +- **Version:** ``baselibs v0.2.2`` +- **Source / tag:** `Baselibs GitHub release `_ +- **Release notes**: `Baselibs release notes `_ + Communication ~~~~~~~~~~~~~ @@ -158,8 +162,8 @@ Logging Daemon **Improvements** The Eclipse SCORE Logging module provides a comprehensive logging framework for automotive embedded systems, -featuring remote DLT (Diagnostic Log and Trace) capabilities with high-performance, lock-free communication -between applications and the datarouter daemon. +featuring remote DLT (Diagnostic Log and Trace) capabilities with +lock-free communication between applications and the datarouter daemon. This is the initial open-source release of the logging framework, consolidating the complete project structure with build system, dependencies, From c42bcaa7cfd09b672458d04f68ffd47d991b07c2 Mon Sep 17 00:00:00 2001 From: Anton Krivoborodov Date: Fri, 19 Dec 2025 13:19:50 +0100 Subject: [PATCH 035/128] further improvement --- .../score_releases/score_v0_5_beta.rst | 70 +++++++++---------- 1 file changed, 32 insertions(+), 38 deletions(-) diff --git a/docs/score_releases/score_releases/score_v0_5_beta.rst b/docs/score_releases/score_releases/score_v0_5_beta.rst index 6fe48deecb8..669febdf07e 100644 --- a/docs/score_releases/score_releases/score_v0_5_beta.rst +++ b/docs/score_releases/score_releases/score_v0_5_beta.rst @@ -66,7 +66,7 @@ This does include - Static code analysis with CodeQL MISRA C++ 2023: `release link `. - Execution of Unit tests as part of the Reference Integration `test_integration workflow `_. - Unit-test coverage measurement results are now automatically part of Release Assests for every component: **//TODO:** link to an example. -- A new combined build toolchain of qcc and gcc, see `bazel_cpp_toolchain <#bazel-cpp-toolchain>`_. +- A new combined build toolchain of qcc and gcc, see :ref:`bazel-cpp-toolchain `. - Improved doc-as-code and process description - `bazel_tools_cc `_ introduces a clang-tidy integration into S-CORE bazel infrasturture: @@ -74,25 +74,7 @@ This does include `example project `_ for instructions how to set-up clang-tidy checks for your module - In the upcoming releases clang-tidy will be extended with custom S-CORE checks to meet necessary process requirements. -- Platform functionality was extended with `logging daemon <#logging-daemon>`_. - - -Software Development Process status -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -The following image provides an overview of the current status of the software development process, the associated tooling, -and the progress of its application to the software modules. - -.. image:: https://raw.githubusercontent.com/eclipse-score/process_description/bec1931b56464543cb70385e75c15fcb1625f0d0/process/_assets/score_process_area_overview.drawio.svg - :width: 1000 - :alt: Architecture overview - :align: center - - -| - -For more details please refer to -`Documentation Management Plan `_, that -provides overview on the process workproduct level for every software module and process area. +- Platform functionality was extended with :ref:`logging daemon `. S-CORE Platform @@ -125,6 +107,7 @@ Zero-copy, shared-memory based inter-process communication for minimal-latency i - **Source / tag:** `Communication GitHub release `_ - **Release notes:** :need:`doc__communication_release_note` + Fixed Execution Order Framework(FEO) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - **Version:** ``feo v0.1.2`` @@ -140,21 +123,7 @@ preserving application state and data integrity over time. - **Version:** ``persistency v0.2.2`` - **Source / tag:** `Persistency GitHub release `_ -Orchestrator -~~~~~~~~~~~~~ - -**Improvements** - -- Support `log` frontend exchange to: `log`, `tracing` or `score-log` (not yet implemented in this release) -- Increased CIT coverage and stability improvements -- Split of kyron into separate repositories: `orchestrator` and `kyron` - -:Version: ``orchestrator v0.0.4`` -:Source / tag: `Orchestrator GitHub release `__ -:Further reading: See below - - - `Orchestrator scope and design `__ - - `Orchestrator examples `__ +.. _logging_daemon: Logging Daemon ~~~~~~~~~~~~~~~~~~ @@ -175,13 +144,31 @@ the datarouter daemon (score/datarouter). The shared memory implementation betwe library and datarouter daemon guarantees Freedom From Interference (FFI), enabling safe logging from real-time and safety-critical contexts. -:Version: ``logging v0.0.3`` -:Source / tag: `logging release `__ -:Further reading: See below +- **Version:** ``logging v0.0.3`` +- **VSource / tag:** `logging release `__ +- **Further reading:**: See below - `Logging release notes `__ - `Logging ReadMe `__ + +Orchestrator +~~~~~~~~~~~~~ + +**Improvements** + +- Support `log` frontend exchange to: `log`, `tracing` or `score-log` (not yet implemented in this release) +- Increased CIT coverage and stability improvements +- Split of kyron into separate repositories: `orchestrator` and `kyron` + +:Version: ``orchestrator v0.0.4`` +:Source / tag: `Orchestrator GitHub release `__ +:Further reading: See below + + - `Orchestrator scope and design `__ + - `Orchestrator examples `__ + + Kyron ~~~~~~~~~~~~~~ @@ -252,6 +239,11 @@ in the automotive domain, suitable for safety and security contexts. :align: center :alt: Process area overview for the **Project** +For more details please refer to +`Documentation Management Plan `_, that +provides process workproduct level overview for every software module and process area. + + docs-as-code ~~~~~~~~~~~~~~ Tooling for linking and generation of documentation. @@ -286,6 +278,8 @@ Test Scenarios - **Version:** ``Test Scenarios v0.3.1`` - **Source / tag:** `Test Scenarios GitHub release `_ +.. _bazel_cpp_toolchain: + Bazel CPP Toolchain ~~~~~~~~~~~~~~~~~~~~ - **What is in** From 5fc42885f2d990bda4f047ddfd8f082b70c6f256 Mon Sep 17 00:00:00 2001 From: Ulrich Huber Date: Fri, 19 Dec 2025 14:34:38 +0100 Subject: [PATCH 036/128] Add release notes for communication Signed-off-by: Ulrich Huber --- docs/score_releases/score_releases/score_v0_5_beta.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/score_releases/score_releases/score_v0_5_beta.rst b/docs/score_releases/score_releases/score_v0_5_beta.rst index 669febdf07e..ec431445ab3 100644 --- a/docs/score_releases/score_releases/score_v0_5_beta.rst +++ b/docs/score_releases/score_releases/score_v0_5_beta.rst @@ -107,6 +107,11 @@ Zero-copy, shared-memory based inter-process communication for minimal-latency i - **Source / tag:** `Communication GitHub release `_ - **Release notes:** :need:`doc__communication_release_note` +**Improvements** + +- Enabled various code quality tools +- Extension of the Rust API (expect further extensive work on this API) +- Support explicit setting of application id in configuration (with fallback to PID) Fixed Execution Order Framework(FEO) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ From 7edab57581d4d7c5cf8d7b4abfe9de4867c52a0c Mon Sep 17 00:00:00 2001 From: "Frank Scholter Peres(MBTI)" <145544737+FScholPer@users.noreply.github.com> Date: Fri, 19 Dec 2025 17:12:13 +0100 Subject: [PATCH 037/128] Update CONTRIBUTION.md Co-authored-by: AndreasMittag Signed-off-by: Frank Scholter Peres(MBTI) <145544737+FScholPer@users.noreply.github.com> --- CONTRIBUTION.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTION.md b/CONTRIBUTION.md index 0700a9596bf..d8f89f084d3 100644 --- a/CONTRIBUTION.md +++ b/CONTRIBUTION.md @@ -42,7 +42,7 @@ Please refer to the [README.md](README.md) for further information. ### Getting involved #### Setup Phase -This phase is part of the eclipse Incubation Phase and shall establish all the processes needed for a safe development of functions. Only after this phase it will be possible to contribute code to the project. As the development in this project is driven by requirements, the processes and needed infrastructure incl. tooling will be established based on }[Non-functional Stakeholder_Requirements](https://eclipse-score.github.io/score/main/requirements/stakeholder/index.html). During setup phase the contributions are Bug Fixes and Improvements (both on processes and infrastructure). +This phase is part of the eclipse Incubation Phase and shall establish all the processes needed for a safe development of functions. Only after this phase it will be possible to contribute code to the project. As the development in this project is driven by requirements, the processes and needed infrastructure incl. tooling will be established based on [Non-functional Stakeholder_Requirements](https://eclipse-score.github.io/score/main/requirements/stakeholder/index.html). During setup phase the contributions are Bug Fixes and Improvements (both on processes and infrastructure). #### Bug Fixes and Improvements Improvements are adding/changing processes and infrastructure, bug fixes can be also on development work products like code. From 010d6c6c0ffd008609153f2a55f2fce6025d63fa Mon Sep 17 00:00:00 2001 From: Frank Scholter Peres Date: Fri, 19 Dec 2025 17:18:40 +0100 Subject: [PATCH 038/128] fixed review comments --- CODE_OF_CONDUCT.md | 93 ------------------- .../score_releases/score_v0_5_beta.rst | 14 +-- 2 files changed, 8 insertions(+), 99 deletions(-) delete mode 100644 CODE_OF_CONDUCT.md diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md deleted file mode 100644 index faa735b35e4..00000000000 --- a/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,93 +0,0 @@ -# Community Code of Conduct - -**Version 2.0 -January 1, 2023** - -## Our Pledge - -In the interest of fostering an open and welcoming environment, we as community members, contributors, Committers[^1], and Project Leads (collectively "Contributors") pledge to make participation in our projects and our community a harassment-free and inclusive experience for everyone. - -This Community Code of Conduct ("Code") outlines our behavior expectations as members of our community in all Eclipse Foundation activities, both offline and online. It is not intended to govern scenarios or behaviors outside of the scope of Eclipse Foundation activities. Nor is it intended to replace or supersede the protections offered to all our community members under the law. Please follow both the spirit and letter of this Code and encourage other Contributors to follow these principles into our work. Failure to read or acknowledge this Code does not excuse a Contributor from compliance with the Code. - -## Our Standards - -Examples of behavior that contribute to creating a positive and professional environment include: - -- Using welcoming and inclusive language; -- Actively encouraging all voices; -- Helping others bring their perspectives and listening actively. If you find yourself dominating a discussion, it is especially important to encourage other voices to join in; -- Being respectful of differing viewpoints and experiences; -- Gracefully accepting constructive criticism; -- Focusing on what is best for the community; -- Showing empathy towards other community members; -- Being direct but professional; and -- Leading by example by holding yourself and others accountable - -Examples of unacceptable behavior by Contributors include: - -- The use of sexualized language or imagery; -- Unwelcome sexual attention or advances; -- Trolling, insulting/derogatory comments, and personal or political attacks; -- Public or private harassment, repeated harassment; -- Publishing others' private information, such as a physical or electronic address, without explicit permission; -- Violent threats or language directed against another person; -- Sexist, racist, or otherwise discriminatory jokes and language; -- Posting sexually explicit or violent material; -- Sharing private content, such as emails sent privately or non-publicly, or unlogged forums such as IRC channel history; -- Personal insults, especially those using racist or sexist terms; -- Excessive or unnecessary profanity; -- Advocating for, or encouraging, any of the above behavior; and -- Other conduct which could reasonably be considered inappropriate in a professional setting - -## Our Responsibilities - -With the support of the Eclipse Foundation employees, consultants, officers, and directors (collectively, the "Staff"), Committers, and Project Leads, the Eclipse Foundation Conduct Committee (the "Conduct Committee") is responsible for clarifying the standards of acceptable behavior. The Conduct Committee takes appropriate and fair corrective action in response to any instances of unacceptable behavior. - -## Scope - -This Code applies within all Project, Working Group, and Interest Group spaces and communication channels of the Eclipse Foundation (collectively, "Eclipse spaces"), within any Eclipse-organized event or meeting, and in public spaces when an individual is representing an Eclipse Foundation Project, Working Group, Interest Group, or their communities. Examples of representing a Project or community include posting via an official social media account, personal accounts, or acting as an appointed representative at an online or offline event. Representation of Projects, Working Groups, and Interest Groups may be further defined and clarified by Committers, Project Leads, or the Staff. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the Conduct Committee via conduct@eclipse-foundation.org. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. Without the explicit consent of the reporter, the Conduct Committee is obligated to maintain confidentiality with regard to the reporter of an incident. The Conduct Committee is further obligated to ensure that the respondent is provided with sufficient information about the complaint to reply. If such details cannot be provided while maintaining confidentiality, the Conduct Committee will take the respondent‘s inability to provide a defense into account in its deliberations and decisions. Further details of enforcement guidelines may be posted separately. - -Staff, Committers and Project Leads have the right to report, remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code, or to block temporarily or permanently any Contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. Any such actions will be reported to the Conduct Committee for transparency and record keeping. - -Any Staff (including officers and directors of the Eclipse Foundation), Committers, Project Leads, or Conduct Committee members who are the subject of a complaint to the Conduct Committee will be recused from the process of resolving any such complaint. - -## Responsibility - -The responsibility for administering this Code rests with the Conduct Committee, with oversight by the Executive Director and the Board of Directors. For additional information on the Conduct Committee and its process, please write to . - -## Investigation of Potential Code Violations - -All conflict is not bad as a healthy debate may sometimes be necessary to push us to do our best. It is, however, unacceptable to be disrespectful or offensive, or violate this Code. If you see someone engaging in objectionable behavior violating this Code, we encourage you to address the behavior directly with those involved. If for some reason, you are unable to resolve the matter or feel uncomfortable doing so, or if the behavior is threatening or harassing, please report it following the procedure laid out below. - -Reports should be directed to . It is the Conduct Committee’s role to receive and address reported violations of this Code and to ensure a fair and speedy resolution. - -The Eclipse Foundation takes all reports of potential Code violations seriously and is committed to confidentiality and a full investigation of all allegations. The identity of the reporter will be omitted from the details of the report supplied to the accused. Contributors who are being investigated for a potential Code violation will have an opportunity to be heard prior to any final determination. Those found to have violated the Code can seek reconsideration of the violation and disciplinary action decisions. Every effort will be made to have all matters disposed of within 60 days of the receipt of the complaint. - -## Actions -Contributors who do not follow this Code in good faith may face temporary or permanent repercussions as determined by the Conduct Committee. - -This Code does not address all conduct. It works in conjunction with our [Communication Channel Guidelines](https://www.eclipse.org/org/documents/communication-channel-guidelines/), [Social Media Guidelines](https://www.eclipse.org/org/documents/social_media_guidelines.php), [Bylaws](https://www.eclipse.org/org/documents/eclipse-foundation-be-bylaws-en.pdf), and [Internal Rules](https://www.eclipse.org/org/documents/ef-be-internal-rules.pdf) which set out additional protections for, and obligations of, all contributors. The Foundation has additional policies that provide further guidance on other matters. - -It’s impossible to spell out every possible scenario that might be deemed a violation of this Code. Instead, we rely on one another’s good judgment to uphold a high standard of integrity within all Eclipse Spaces. Sometimes, identifying the right thing to do isn’t an easy call. In such a scenario, raise the issue as early as possible. - -## No Retaliation - -The Eclipse community relies upon and values the help of Contributors who identify potential problems that may need to be addressed within an Eclipse Space. Any retaliation against a Contributor who raises an issue honestly is a violation of this Code. That a Contributor has raised a concern honestly or participated in an investigation, cannot be the basis for any adverse action, including threats, harassment, or discrimination. If you work with someone who has raised a concern or provided information in an investigation, you should continue to treat the person with courtesy and respect. If you believe someone has retaliated against you, report the matter as described by this Code. Honest reporting does not mean that you have to be right when you raise a concern; you just have to believe that the information you are providing is accurate. - -False reporting, especially when intended to retaliate or exclude, is itself a violation of this Code and will not be accepted or tolerated. - -Everyone is encouraged to ask questions about this Code. Your feedback is welcome, and you will get a response within three business days. Write to . - -## Amendments - -The Eclipse Foundation Board of Directors may amend this Code from time to time and may vary the procedures it sets out where appropriate in a particular case. - -### Attribution - -This Code was inspired by the [Contributor Covenant](https://www.contributor-covenant.org/), version 1.4, available [here](https://www.contributor-covenant.org/version/1/4/code-of-conduct/). - -[^1]: Capitalized terms used herein without definition shall have the meanings assigned to them in the Bylaws. \ No newline at end of file diff --git a/docs/score_releases/score_releases/score_v0_5_beta.rst b/docs/score_releases/score_releases/score_v0_5_beta.rst index ec431445ab3..091e4b98031 100644 --- a/docs/score_releases/score_releases/score_v0_5_beta.rst +++ b/docs/score_releases/score_releases/score_v0_5_beta.rst @@ -205,12 +205,14 @@ Reference QNX image Reference Red Hat AutoSD Linux image (Experimental) +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- Use sub-module structure -- os_images does not need to be a sub-module since it does not use bazel -- Use AutoSD tools to build RPMs (toolchain + bazelrc file) -- Use built RPMs in os_images -- Uses 0.5 modules, similar setup to upstream reference_instegration -- e2e workflow defined in github actions +- Uses AutoSD's toolchain to build and generate Lola RPMs +- Deploy RPMs into an AutoSD Image + +Pull requests: + +https://github.com/eclipse-score/reference_integration/pull/56 +https://github.com/eclipse-score/inc_os_autosd/pull/16 + Reference Elektrobit corbos Linux for Safety Applications Linux image (Experimental) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ From 684a185c3cab3d57111459a727f2b02769cd54c1 Mon Sep 17 00:00:00 2001 From: "Frank Scholter Peres(MBTI)" <145544737+FScholPer@users.noreply.github.com> Date: Fri, 19 Dec 2025 17:28:26 +0100 Subject: [PATCH 039/128] Update docs/handbook/own_application/index.rst Co-authored-by: Oliver Pajonk Signed-off-by: Frank Scholter Peres(MBTI) <145544737+FScholPer@users.noreply.github.com> --- docs/handbook/own_application/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/handbook/own_application/index.rst b/docs/handbook/own_application/index.rst index 3d7c0ba787c..336e2568443 100644 --- a/docs/handbook/own_application/index.rst +++ b/docs/handbook/own_application/index.rst @@ -116,7 +116,7 @@ Be aware that the version numbers change over time. Always check the latest vers common --@score-baselibs//score/json:base_library=nlohmann common --@communication//score/mw/com/flags:tracing_library=stub - common --registry=https://raw.githubusercontent.com/eclipse-score/bazel_registry/v0.5.0-alpha/ + common --registry=https://raw.githubusercontent.com/eclipse-score/bazel_registry/v0.5.0-beta/ common --registry=https://bcr.bazel.build From 2aa8a3121cac2615341e13af10ac7f8185f79312 Mon Sep 17 00:00:00 2001 From: "Frank Scholter Peres(MBTI)" <145544737+FScholPer@users.noreply.github.com> Date: Fri, 19 Dec 2025 17:28:42 +0100 Subject: [PATCH 040/128] Update docs/handbook/own_application/index.rst Co-authored-by: Oliver Pajonk Signed-off-by: Frank Scholter Peres(MBTI) <145544737+FScholPer@users.noreply.github.com> --- docs/handbook/own_application/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/handbook/own_application/index.rst b/docs/handbook/own_application/index.rst index 336e2568443..52589de88ee 100644 --- a/docs/handbook/own_application/index.rst +++ b/docs/handbook/own_application/index.rst @@ -132,7 +132,7 @@ You can now either continue with this guide to create a minimal consumer-produce ------------ -1. Use it :) +2. Use it :) ------------ Once your project is set up, you can start sending and receiving messages. From f84eff5d8808b6e35086a5ee1adc8b2f599df6c8 Mon Sep 17 00:00:00 2001 From: "Frank Scholter Peres(MBTI)" <145544737+FScholPer@users.noreply.github.com> Date: Fri, 19 Dec 2025 17:30:58 +0100 Subject: [PATCH 041/128] Update docs/score_releases/score_releases/score_v0_5_beta.rst Co-authored-by: Oliver Pajonk Signed-off-by: Frank Scholter Peres(MBTI) <145544737+FScholPer@users.noreply.github.com> --- docs/score_releases/score_releases/score_v0_5_beta.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/score_releases/score_releases/score_v0_5_beta.rst b/docs/score_releases/score_releases/score_v0_5_beta.rst index 091e4b98031..2267d8100aa 100644 --- a/docs/score_releases/score_releases/score_v0_5_beta.rst +++ b/docs/score_releases/score_releases/score_v0_5_beta.rst @@ -85,7 +85,6 @@ S-CORE Platform - **Release notes**: `S-CORE Platform release notes `_ -https://github.com/eclipse-score/score/issues?q=is%3Aissue%20state%3Aclosed%20type%3ABug Integrated Software Modules ----------------------------- From 0efa72ec399c76a47dfaca99a0b8e98216f36c47 Mon Sep 17 00:00:00 2001 From: "Frank Scholter Peres(MBTI)" <145544737+FScholPer@users.noreply.github.com> Date: Fri, 19 Dec 2025 23:33:51 +0100 Subject: [PATCH 042/128] Bump version to 0.5.2 (#2369) --- MODULE.bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MODULE.bazel b/MODULE.bazel index 5475a238f02..3691be4f4c4 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -13,7 +13,7 @@ module( name = "score_platform", - version = "0.5.1", + version = "0.5.2", compatibility_level = 0, ) From a4cced67d4dc002823eced92722e872f35088a6d Mon Sep 17 00:00:00 2001 From: Philipp Ahmann Date: Mon, 22 Dec 2025 19:18:23 +0000 Subject: [PATCH 043/128] Update language for gender neutrality in project management plan Signed-off-by: Philipp Ahmann --- docs/platform_management_plan/project_management.rst | 8 ++++++++ docs/platform_management_plan/release_management.rst | 2 +- docs/platform_management_plan/security_management.rst | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index 5ad89b39386..96fd284b33d 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -107,11 +107,15 @@ Technical Lead Circle (TLC) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ The Technical Lead Circle will soon be merged with the Project Lead Circle: `#2381: Merge TLC into PLC `_ +<<<<<<< HEAD .. _TLC Members: https://github.com/orgs/eclipse-score/teams/automotive-score-TLC-team .. _TLC Speaker: https://github.com/orgs/eclipse-score/teams/automotive-score-TLC-lead .. _TLC Meeting Minutes: https://github.com/eclipse-score/score/wiki/TLCM .. _TLC Slack Channel: https://sdvworkinggroup.slack.com/archives/C085F44D2CS .. _TLC Open Point List: https://github.com/orgs/eclipse-score/projects/3 +======= + *Project lead circle* proposes and elects a *Project lead circle Assistant* and their deputy with bare majority, who is responsible for scheduling and announcing meetings, preparing and announcing agenda, writing meeting minutes and protocols. *Project lead circle* can reelect *Project lead circle Assistant* at any time. The *Project lead circle Assistant* and their deputy can resign anytime on their own will. +>>>>>>> f9f5ae6 (Update language for gender neutrality in project management plan) - TLC Responsibilities: - Review and approval of contributions, e.g. *Feature Requests*, which add or modify S-CORE platform features. @@ -134,7 +138,11 @@ Communities commonly used development & testing infrastructure, processes or final integration & release. Each *Community* has a *Community Lead* to organize the community`s work. +<<<<<<< HEAD The following *Communities* are established: +======= + *Technical lead circle* proposes and elects a *Technical lead circle Assistant* and their deputy with bare majority during *Technical Lead Circle meeting*, who is responsible for scheduling and announcing meetings, preparing and announcing agenda, writing meeting minutes and protocols. *Technical lead circle* can reelect *Technical lead circle Assistant* at any time. The *Technical lead circle Assistant* and their deputy can resign anytime on their own will. +>>>>>>> f9f5ae6 (Update language for gender neutrality in project management plan) .. _pmp_pm_arc: diff --git a/docs/platform_management_plan/release_management.rst b/docs/platform_management_plan/release_management.rst index cb7524f5e42..493952d85e5 100644 --- a/docs/platform_management_plan/release_management.rst +++ b/docs/platform_management_plan/release_management.rst @@ -50,7 +50,7 @@ One release contains all the files of one repository. So there is a platform rel It contains also all the verification reports (including their input e.g. test run logs) and documentation collaterals (e.g. the html's for the S-CORE homepage) as created during the CI build based on the release tagged repository files. It does not contain the binary produced in the CI build, as this is not a qualified work product of S-CORE and -the user will need to re-build in the context of his system. Furthermore the binary build with Bazel +the user will need to re-build in the context of their system. Furthermore the binary build with Bazel is reproducible, so this can be re-created from source any time. Release Types diff --git a/docs/platform_management_plan/security_management.rst b/docs/platform_management_plan/security_management.rst index 191dd1f06e8..81a7ebd306a 100644 --- a/docs/platform_management_plan/security_management.rst +++ b/docs/platform_management_plan/security_management.rst @@ -143,7 +143,7 @@ As defined in `Committer Training `_ As each project can adopt additional criteria for the committers election, we define the following: -each committer has to prove his knowledge in security SW development by +each committer has to prove their knowledge in security SW development by * an absolved training in ISO SAE 21434 (or equivalent standard, at least 16h of SW development specific training by a trusted training provider) OR * by attending the projects's ISO SAE 21434 SW development training (given by a security team member) From 0d029cd7d0ff9d47594655ffad73a65c7f7b4f84 Mon Sep 17 00:00:00 2001 From: Philipp Ahmann Date: Mon, 22 Dec 2025 19:20:14 +0000 Subject: [PATCH 044/128] Clarify attributes and contributor role in verification plan Signed-off-by: Philipp Ahmann --- docs/platform_management_plan/software_verification.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/platform_management_plan/software_verification.rst b/docs/platform_management_plan/software_verification.rst index 27cc55ac021..bff709dfd1a 100644 --- a/docs/platform_management_plan/software_verification.rst +++ b/docs/platform_management_plan/software_verification.rst @@ -330,8 +330,8 @@ following aspects define the coverage of the architectural design. - :need:`wp__sw_component_fmea` and :need:`wp__sw_component_dfa` for safety-critical parts - :need:`wp__feature_fmea` and :need:`wp__feature_dfa` for safety-critical parts -Each architectural element has at least one test case linked with attribute "fully verified" or -multiple test cases with attribute "partially verified". +Each architectural element has at least one test case linked with attribute ``FullyVerified`` or +multiple test cases with attribute ``PartiallyVerified``. Coverage of software requirements specifications ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -360,7 +360,7 @@ Test execution and result analysis ---------------------------------- The execution of the tests is based on a full automation defined by build pipelines. The analysis of the test results -needs to be performed by the contributor. +needs to be performed by the :need:`rl__contributor`. Test selection and regression testing ------------------------------------- @@ -393,7 +393,7 @@ document: #. The :need:`rl__contributor` needs to make sure that the objectives of the software integration and verification are fulfilled when contributing to the project. -#. The :need:`rl__committer` needs to verify that the contributor has fulfilled the expected objectives. +#. The :need:`rl__committer` needs to verify that the :need:`rl__contributor` has fulfilled the expected objectives. In this way roles are followed as defined in :need:`doc_concept__verification_process`. From 78844709b644a42f93a4ee7dec3562ef841691a5 Mon Sep 17 00:00:00 2001 From: Philipp Ahmann Date: Mon, 22 Dec 2025 19:42:19 +0000 Subject: [PATCH 045/128] Fix grammatical inconsistencies in IPC arch docu Signed-off-by: Philipp Ahmann --- docs/features/communication/ipc/docs/architecture/index.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/features/communication/ipc/docs/architecture/index.rst b/docs/features/communication/ipc/docs/architecture/index.rst index 8b75ae5647e..5be0442c214 100644 --- a/docs/features/communication/ipc/docs/architecture/index.rst +++ b/docs/features/communication/ipc/docs/architecture/index.rst @@ -144,7 +144,7 @@ Synchronization Algorithm A slot shall contain all necessary meta-information in order to synchronize data access. This information most certainly needs to include a timestamp to indicate the order of produced data within the slots. Additionally, a use count is needed, indicating if a slot is currently in use by one process. The concrete data is implementation defined and must be covered by the detailed design. -The main idea of the algorithm is that a producer shall always be able to store one new data sample. If he cannot find a respective slot, this indicates a contract violation, which indicates that a QM process misbehaved. In such a case, a producer should exclude any QM consumer from the communication. +The main idea of the algorithm is that a producer shall always be able to store one new data sample. If it cannot find a respective slot, this indicates a contract violation, which indicates that a QM process misbehaved. In such a case, a producer should exclude any QM consumer from the communication. This whole idea builds up on the split of shared memory segments by ASIL levels. This way we can ensure that an QM process will not degrade the ASIL Level for a communication path. In another case, where we already have a QM producer, it is possible for an ASIL B consumer to consume the QM data. In this scenario, there is no separate control data for ASIL B, and they instead interact on the control data for ASIL QM. This is because, the data is QM and it is impossible for the middleware to apply additional checks to enhance the quality of data. This can only be done on application layer level. Hence, separating QM and ASIL consumers holds no benefit. @@ -200,7 +200,7 @@ Each consumer and the producer owns a corresponding transaction log, which resid #. Executing the activity in question. #. Writing a transaction end marker, which annotates, whether the activity in (2) was done or not. -During the restart of a communication partner, he checks for existing transaction logs in shared memory, which it +During the restart of a communication partner, it checks for existing transaction logs in shared memory, which it created in an earlier run, so that it can roll them back. Two scenarios are possible: @@ -208,7 +208,7 @@ Two scenarios are possible: - All transaction log entries are complete (transaction end marker is written). The communication partner can roll all transactions back and rejoin communication. - A transaction log entry is incomplete (transaction end marker is missing). - The communication partner is incapable of rolling back his actions fully. + The communication partner is incapable of rolling back its actions fully. Rejoining the communication would impact other communication partners. The communication partner is barred from rejoining the communication. From 97640cdcf5ed49d516d59e783d90a5205a80a289 Mon Sep 17 00:00:00 2001 From: Philipp Ahmann Date: Mon, 22 Dec 2025 19:43:56 +0000 Subject: [PATCH 046/128] fix: update language for gender neutrality in documentation - Changed "his" to "their" in multiple instances across various documentation files to promote gender-neutral language. Signed-off-by: Philipp Ahmann --- docs/_assets/contribution_guide.svg | 2 +- docs/contribute/contribution_request/index.rst | 2 +- .../baselibs/docs/requirements/chklst_req_inspection.rst | 2 +- .../result/docs/requirements/chklst_req_inspection.rst | 2 +- .../executor/docs/requirements/chklst_req_inspection.rst | 2 +- .../docs/requirements/chklst_req_inspection.rst | 2 +- docs/requirements/platform_assumptions/index.rst | 8 ++++---- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/_assets/contribution_guide.svg b/docs/_assets/contribution_guide.svg index 1f1a3d52da6..9481e43f06c 100644 --- a/docs/_assets/contribution_guide.svg +++ b/docs/_assets/contribution_guide.svg @@ -1,4 +1,4 @@ -


Contribution during
setup phase























Contribution during...
Contributor
Contr...
Committer
Commi...
Contribution
for bug fixes/
improvements
Contribution...
Contributor creates Issue/PR
with filled out Template
Contributor creates Issue/PR...
Issue/PR
Bug Fix/Improvement
Template
Issue/PR...
Contributor requests review and
discussion of his PR 
Contributor requests review and...
Contribution
accepted ?
Contribution...
Acceptance Criteria
not met
Acceptance Criteria...
YES
YES
NO
NO
Issue closed
PR Not
merged
Issue closed...
Issue closed
PR merged
Issue closed...
Text is not SVG - cannot display
\ No newline at end of file +


Contribution during
setup phase























Contribution during...
Contributor
Contr...
Committer
Commi...
Contribution
for bug fixes/
improvements
Contribution...
Contributor creates Issue/PR
with filled out Template
Contributor creates Issue/PR...
Issue/PR
Bug Fix/Improvement
Template
Issue/PR...
Contributor requests review and
discussion of the PR 
Contributor requests review and...
Contribution
accepted ?
Contribution...
Acceptance Criteria
not met
Acceptance Criteria...
YES
YES
NO
NO
Issue closed
PR Not
merged
Issue closed...
Issue closed
PR merged
Issue closed...
Text is not SVG - cannot display
diff --git a/docs/contribute/contribution_request/index.rst b/docs/contribute/contribution_request/index.rst index 74d5af97646..3a4a8f68152 100644 --- a/docs/contribute/contribution_request/index.rst +++ b/docs/contribute/contribution_request/index.rst @@ -112,7 +112,7 @@ The figure below shows a simplified workflow for a PR. Content in general may contain features, requirements, architectural designs, modules, components, detailed designs, implementations and source code, tests, process descriptions, any documentations, guidelines, tutorials, tools, or infrastructure topics and more of the *S-CORE* project. In case of doubt or for any other input we strongly encourage to open a *GitHub Issue* (:need:`doc__issue_guideline`) first. -The *PR* should provide all required information of the new or changed content. Therefore the *S-CORE* project provides content specific templates, which the contributor (:need:`Contributor `) must use for his *PR* (ToDo link here to the templates overview). Templates may be *PR* templates, *GitHub Issue* templates and also additional document or work product templates. +The *PR* should provide all required information of the new or changed content. Therefore the *S-CORE* project provides content specific templates, which the contributor (:need:`Contributor `) must use for rheir *PR* (ToDo link here to the templates overview). Templates may be *PR* templates, *GitHub Issue* templates and also additional document or work product templates. The content of any *PR* is the commit content and the description as well as the comments given in GitHub and is kept in a versioned repository, their revision history is the historical record of the PR. diff --git a/docs/features/baselibs/docs/requirements/chklst_req_inspection.rst b/docs/features/baselibs/docs/requirements/chklst_req_inspection.rst index 20a05105c63..31e26909857 100644 --- a/docs/features/baselibs/docs/requirements/chklst_req_inspection.rst +++ b/docs/features/baselibs/docs/requirements/chklst_req_inspection.rst @@ -129,7 +129,7 @@ Requirement Inspection Checklist - * - REQ_08_01 - Is the requirement *verifiable*? - - If at the time of the inspection already tests are created for the requirement, the answer is yes. This can be checked via traces, but also :need:`gd_req__req_attr_test_covered` shows this. In case the requirement is not sufficiently traced to test cases already, a test expert is invited to the inspection to give his opinion whether the requirement is formulated in a way that supports test development and the available test infrastructure is sufficient to perform the test. + - If at the time of the inspection already tests are created for the requirement, the answer is yes. This can be checked via traces, but also :need:`gd_req__req_attr_test_covered` shows this. In case the requirement is not sufficiently traced to test cases already, a test expert is invited to the inspection to give their opinion whether the requirement is formulated in a way that supports test development and the available test infrastructure is sufficient to perform the test. - - - diff --git a/docs/modules/baselibs/result/docs/requirements/chklst_req_inspection.rst b/docs/modules/baselibs/result/docs/requirements/chklst_req_inspection.rst index 533e473c082..b0d0b224e50 100644 --- a/docs/modules/baselibs/result/docs/requirements/chklst_req_inspection.rst +++ b/docs/modules/baselibs/result/docs/requirements/chklst_req_inspection.rst @@ -128,7 +128,7 @@ Requirement Inspection Checklist - none * - REQ_08_01 - Is the requirement *verifiable*? - - If at the time of the inspection already tests are created for the requirement, the answer is yes. This can be checked via traces, but also :need:`gd_req__req_attr_test_covered` shows this. In case the requirement is not sufficiently traced to test cases already, a test expert is invited to the inspection to give his opinion whether the requirement is formulated in a way that supports test development and the available test infrastructure is sufficient to perform the test. + - If at the time of the inspection already tests are created for the requirement, the answer is yes. This can be checked via traces, but also :need:`gd_req__req_attr_test_covered` shows this. In case the requirement is not sufficiently traced to test cases already, a test expert is invited to the inspection to give their opinion whether the requirement is formulated in a way that supports test development and the available test infrastructure is sufficient to perform the test. - YES - all requirements have test cases implemented - none diff --git a/docs/modules/orchestrator/executor/docs/requirements/chklst_req_inspection.rst b/docs/modules/orchestrator/executor/docs/requirements/chklst_req_inspection.rst index 6431194ff78..51c23f6a8ef 100644 --- a/docs/modules/orchestrator/executor/docs/requirements/chklst_req_inspection.rst +++ b/docs/modules/orchestrator/executor/docs/requirements/chklst_req_inspection.rst @@ -130,7 +130,7 @@ Requirement Inspection Checklist - * - REQ_08_01 - Is the requirement *verifiable*? - - If at the time of the inspection already tests are created for the requirement, the answer is yes. This can be checked via traces, but also :need:`gd_req__req_attr_test_covered` shows this. In case the requirement is not sufficiently traced to test cases already, a test expert is invited to the inspection to give his opinion whether the requirement is formulated in a way that supports test development and the available test infrastructure is sufficient to perform the test. + - If at the time of the inspection already tests are created for the requirement, the answer is yes. This can be checked via traces, but also :need:`gd_req__req_attr_test_covered` shows this. In case the requirement is not sufficiently traced to test cases already, a test expert is invited to the inspection to give their opinion whether the requirement is formulated in a way that supports test development and the available test infrastructure is sufficient to perform the test. - - - diff --git a/docs/modules/orchestrator/orchestrator/docs/requirements/chklst_req_inspection.rst b/docs/modules/orchestrator/orchestrator/docs/requirements/chklst_req_inspection.rst index d6f8cbd3818..ae92b376b13 100644 --- a/docs/modules/orchestrator/orchestrator/docs/requirements/chklst_req_inspection.rst +++ b/docs/modules/orchestrator/orchestrator/docs/requirements/chklst_req_inspection.rst @@ -130,7 +130,7 @@ Requirement Inspection Checklist - * - REQ_08_01 - Is the requirement *verifiable*? - - If at the time of the inspection already tests are created for the requirement, the answer is yes. This can be checked via traces, but also :need:`gd_req__req_attr_test_covered` shows this. In case the requirement is not sufficiently traced to test cases already, a test expert is invited to the inspection to give his opinion whether the requirement is formulated in a way that supports test development and the available test infrastructure is sufficient to perform the test. + - If at the time of the inspection already tests are created for the requirement, the answer is yes. This can be checked via traces, but also :need:`gd_req__req_attr_test_covered` shows this. In case the requirement is not sufficiently traced to test cases already, a test expert is invited to the inspection to give their opinion whether the requirement is formulated in a way that supports test development and the available test infrastructure is sufficient to perform the test. - - - diff --git a/docs/requirements/platform_assumptions/index.rst b/docs/requirements/platform_assumptions/index.rst index c526629d441..67606d19323 100644 --- a/docs/requirements/platform_assumptions/index.rst +++ b/docs/requirements/platform_assumptions/index.rst @@ -33,7 +33,7 @@ the operating system, programming language libraries, hypervisor or processing h For "organizations" two roles are used in the AoU text: - Supplier: is the provider of an element the S-CORE SW-platform is using but which is developed and maintained externally. -- System Integrator: uses the S-CORE SW-platform as a part of a system he provides to a customer. The system integrator can be for example a Tier1 providing an electronic control unit to a OEM or an OEM providing a car to his end-customer. S-CORE does not know which. +- System Integrator: uses the S-CORE SW-platform as a part of a system they provide to a customer. The system integrator can be for example a Tier1 providing an electronic control unit to a OEM or an OEM providing a car to their end-customer. S-CORE does not know which. To fulfill these assumptions is the responsibility of the mentioned roles. @@ -113,7 +113,7 @@ It is the level where the S-CORE SW-platform will functionally "work" with the e :safety: QM :status: valid - The system integrator shall run the tests provided by S-CORE (platform, feature, component and Unit level for his selected S-CORE modules) on his selected OS/Hypervisor/HW combination, + The system integrator shall run the tests provided by S-CORE (platform, feature, component and Unit level for their selected S-CORE modules) on their selected OS/Hypervisor/HW combination, or provide equivalent argumentation. Note1: S-CORE will run these tests for one or more reference OS/Hypervisor/HW combination, if not all passing, remaining issues are documented in release notes. In case the selected combination is equal to a S-CORE reference and the complete S-CORE SW-platform is used, this AoU may be skipped. @@ -127,7 +127,7 @@ It is the level where the S-CORE SW-platform will functionally "work" with the e :safety: QM :status: valid - The system integrator shall report the bugs found during integration of the S-CORE SW-platform on his selected OS/Hypervisor/HW combination to the external SW element supplier and S-CORE for analysis. + The system integrator shall report the bugs found during integration of the S-CORE SW-platform on their selected OS/Hypervisor/HW combination to the external SW element supplier and S-CORE for analysis. Assumptions on the external SW element integration - Certifiable Level ---------------------------------------------------------------------- @@ -214,7 +214,7 @@ This is the highest level of integraton. This is the level where the S-CORE SW-p :safety: ASIL_B :status: valid - If the system using the SW-platform has safety goals, the system integrator shall perform safety anomaly reporting taking into account also the reporting of all the components he integrates. + If the system using the SW-platform has safety goals, the system integrator shall perform safety anomaly reporting taking into account also the reporting of all the components they integrate. Note: This includes all the modules of the S-CORE SW platform used by the system integrator. The relevant safety critical bugs or safety anomalies are published by S-CORE as defined in the :need:`doc__platform_problem_resolution_plan`. From 5e9d1020390f2cb17d338e16a900cc765ffe9036 Mon Sep 17 00:00:00 2001 From: Philipp Ahmann <2428012+pahmann@users.noreply.github.com> Date: Tue, 23 Dec 2025 07:56:35 +0100 Subject: [PATCH 047/128] Fix typo in PR template sentence Corrected a typo in the contribution request documentation regarding the use of templates for PRs. Signed-off-by: Philipp Ahmann <2428012+pahmann@users.noreply.github.com> --- docs/contribute/contribution_request/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/contribute/contribution_request/index.rst b/docs/contribute/contribution_request/index.rst index 3a4a8f68152..1a7e73145d5 100644 --- a/docs/contribute/contribution_request/index.rst +++ b/docs/contribute/contribution_request/index.rst @@ -112,7 +112,7 @@ The figure below shows a simplified workflow for a PR. Content in general may contain features, requirements, architectural designs, modules, components, detailed designs, implementations and source code, tests, process descriptions, any documentations, guidelines, tutorials, tools, or infrastructure topics and more of the *S-CORE* project. In case of doubt or for any other input we strongly encourage to open a *GitHub Issue* (:need:`doc__issue_guideline`) first. -The *PR* should provide all required information of the new or changed content. Therefore the *S-CORE* project provides content specific templates, which the contributor (:need:`Contributor `) must use for rheir *PR* (ToDo link here to the templates overview). Templates may be *PR* templates, *GitHub Issue* templates and also additional document or work product templates. +The *PR* should provide all required information of the new or changed content. Therefore the *S-CORE* project provides content specific templates, which the contributor (:need:`Contributor `) must use for their *PR* (ToDo link here to the templates overview). Templates may be *PR* templates, *GitHub Issue* templates and also additional document or work product templates. The content of any *PR* is the commit content and the description as well as the comments given in GitHub and is kept in a versioned repository, their revision history is the historical record of the PR. From e5c825d299e37b128c146536b61499013f8ea056 Mon Sep 17 00:00:00 2001 From: Philipp Ahmann Date: Fri, 19 Dec 2025 10:30:20 +0000 Subject: [PATCH 048/128] add manual test execution guidelines to software verification plan Resolves: #1091 Signed-off-by: Philipp Ahmann --- .../software_verification.rst | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/docs/platform_management_plan/software_verification.rst b/docs/platform_management_plan/software_verification.rst index bff709dfd1a..3fc97553487 100644 --- a/docs/platform_management_plan/software_verification.rst +++ b/docs/platform_management_plan/software_verification.rst @@ -362,6 +362,25 @@ Test execution and result analysis The execution of the tests is based on a full automation defined by build pipelines. The analysis of the test results needs to be performed by the :need:`rl__contributor`. +Manual test execution +^^^^^^^^^^^^^^^^^^^^^ + +The automation rate for test case execution is expected to be above 99%. + +Automated tests can be executed locally by the contributor before pushing code to the repository. +To support local test execution respective `bazel test ...` commands are provided as part of the module and feature documentation. + +When a manual test is considered to verify a requirement or architectural element, the respective links need to be established as for any other automated test case. +The script for manual testing uses the same templates as any other automated test including the Record Properties. +Therefore, these test cases require a script to be provided which describes how to execute the test case manually step by step. +The script and its execution will be part of the test reporting and traceability and need to be reviewed in the PR as part of the verification activities. +Within the review an approver confirms that automation is not feasible for the specific test case. + +In contrast to automated result comparison of an automated test case, the feedback from the test executor is logged for manual tests. +The script will wait for the user input to proceed to the next step and describe the expected result after each step. +The user input can be judged as confirmation that the expected result is achieved. +The final result will be `PASSED` or `FAILED`, based on the test executors confirmation. + Test selection and regression testing ------------------------------------- From d75350e3ebebba19683de4670ec410cf13b1f1e8 Mon Sep 17 00:00:00 2001 From: Priyanka Patil Date: Mon, 22 Dec 2025 14:36:26 +0530 Subject: [PATCH 049/128] lib/containers - Define AoUs --- .../containers/docs/requirements/index.rst | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) diff --git a/docs/modules/baselibs/containers/docs/requirements/index.rst b/docs/modules/baselibs/containers/docs/requirements/index.rst index 697f7e02d79..39c3f1ff92c 100644 --- a/docs/modules/baselibs/containers/docs/requirements/index.rst +++ b/docs/modules/baselibs/containers/docs/requirements/index.rst @@ -80,5 +80,90 @@ Non-Functional Requirements The Containers library shall provide deterministic behavior with no dynamic memory allocation. +Assumptions of Use (AoU) +======================== + +.. aou_req:: Check Capacity + :id: aou_req__containers__capacity_management + :reqtype: Functional + :security: NO + :safety: ASIL_B + :status: valid + :tags: inspected + + The user shall verify sufficient capacity or handle allocation failures before insertion operations to prevent exceeding container limits and undefined behavior. + +.. aou_req:: Iterator Validity + :id: aou_req__containers__iterator_validity + :reqtype: Functional + :security: NO + :safety: ASIL_B + :status: valid + :tags: inspected + + The user shall ensure that iterators are not used after operations that invalidate them and refresh iterators after modifying operations. + +.. aou_req:: Element Lifetime and Ownership + :id: aou_req__containers__element_lifetime + :reqtype: Functional + :security: NO + :safety: ASIL_B + :status: valid + :tags: inspected + + The user shall ensure that elements stored in containers remain valid throughout their lifetime in the container, and for intrusive containers, that element objects are not destroyed or moved while contained within the container. + +.. aou_req:: Thread Safety + :id: aou_req__containers__thread_safety + :reqtype: Non-Functional + :security: NO + :safety: ASIL_B + :status: valid + :tags: inspected + + The user shall implement external synchronization mechanisms when accessing or modifying container objects from multiple threads concurrently, as the library provides no internal thread safety guarantees. + +.. aou_req:: Index Bounds Checking + :id: aou_req__containers__bounds_checking + :reqtype: Functional + :security: NO + :safety: ASIL_B + :status: valid + :tags: inspected + + The user shall ensure that all index-based access operations use valid indices within the container's current size range to prevent out-of-bounds access and undefined behavior. + +.. aou_req:: Container State Verification + :id: aou_req__containers__state_verification + :reqtype: Functional + :security: NO + :safety: ASIL_B + :status: valid + :tags: inspected + + The user shall verify container state before performing operations that depend on specific states, such as checking if a container is non-empty before accessing elements. + +.. aou_req:: Memory Resource Management + :id: aou_req__containers__memory_management + :reqtype: Non-Functional + :security: NO + :safety: ASIL_B + :status: valid + :tags: inspected + + The user shall provide sufficient memory resources for all container operations. + +.. aou_req:: Element Type Requirements + :id: aou_req__containers__ele_type_requirements + :reqtype: Functional + :security: NO + :safety: ASIL_B + :status: valid + :tags: inspected + + The user shall ensure that element types are copy constructible, move constructible and destructible, and additionally for intrusive containers that they provide the required intrusive node members. + .. needextend:: "__containers__" in id :+tags: baselibs +.. needextend:: "containers" in id + :+tags: containers From b7196d0465c6c49727a7cfc4adc439b241a700ef Mon Sep 17 00:00:00 2001 From: Mihajlo Katancevic Date: Thu, 18 Dec 2025 12:28:16 +0100 Subject: [PATCH 050/128] Define AoU requirements for filesystem lib --- .../filesystem/docs/requirements/index.rst | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/docs/modules/baselibs/filesystem/docs/requirements/index.rst b/docs/modules/baselibs/filesystem/docs/requirements/index.rst index 3f10cf4d890..4124606a403 100644 --- a/docs/modules/baselibs/filesystem/docs/requirements/index.rst +++ b/docs/modules/baselibs/filesystem/docs/requirements/index.rst @@ -98,5 +98,55 @@ Functional Requirements The Filesystem library shall provide mock and fake implementations for unit testing and validation. +Assumptions of Use (AoU) +======================== + +.. aou_req:: Low-Level Use Only + :id: aou_req__filesystem__low_level_use_only + :reqtype: Functional + :security: NO + :safety: ASIL_B + :status: valid + + Users shall use this library only when they need to manipulate files, directories, and paths at the operating system level beyond what higher-level storage abstractions provide, accepting reduced portability to other platforms. + +.. aou_req:: Supported Path Formats + :id: aou_req__filesystem__supported_path_formats + :reqtype: Functional + :security: NO + :safety: ASIL_B + :status: valid + + Users shall not use Windows paths with this library. + +.. aou_req:: Error Handling + :id: aou_req__filesystem__error_handling + :reqtype: Functional + :security: NO + :safety: ASIL_B + :status: valid + + Users shall handle all function return values and take appropriate action on errors. + +.. aou_req:: Thread Safety + :id: aou_req__filesystem__thread_safety + :reqtype: Non-Functional + :security: NO + :safety: ASIL_B + :status: valid + + Users shall implement appropriate synchronization mechanisms when accessing shared filesystem resources concurrently. + +.. aou_req:: Performance + :id: aou_req__filesystem__performance + :reqtype: Non-Functional + :security: NO + :safety: ASIL_B + :status: valid + + Users shall not assume any performance characteristics. + + Note: Filesystem operations are subject to underlying OS and storage performance. + .. needextend:: "__filesystem__" in id :+tags: baselibs From 36926613c6171636946fb2d0a341bcc543f82b77 Mon Sep 17 00:00:00 2001 From: ZoranCutura Date: Thu, 11 Dec 2025 11:00:20 +0000 Subject: [PATCH 051/128] some_ip_gateway: removed references to AUTOSAR removed references to AUTOSAR, now using vsomeip and some-ip.com . one more ref to AUTOSAR removed --- .../some_ip_gateway/architecture/index.rst | 9 +- .../e2e_state_machine_in_gateway.drawio.svg | 696 ++++++++++++++++- ...2e_state_machine_on_client_side.drawio.svg | 710 +++++++++++++++++- .../assets/some_ip_gateway_details.drawio.svg | 12 +- .../communication/some_ip_gateway/index.rst | 22 +- .../some_ip_gateway/requirements/index.rst | 19 +- 6 files changed, 1424 insertions(+), 44 deletions(-) diff --git a/docs/features/communication/some_ip_gateway/architecture/index.rst b/docs/features/communication/some_ip_gateway/architecture/index.rst index 4b3e79164bb..f31d862ed98 100644 --- a/docs/features/communication/some_ip_gateway/architecture/index.rst +++ b/docs/features/communication/some_ip_gateway/architecture/index.rst @@ -27,7 +27,8 @@ data or to subscribe to data. As such it will need to know and understand the da the IPC network. It also is a participant in the SOME/IP network and provides services for the service oriented communication. -This shall be possible by including SOME/IP stacks that are AUTOSAR compliant. +This shall be possible by including SOME/IP stacks from `vsomeip `_ for reference, which can be replaced by other +implementations, i.e. proprietary commercial stacks. There need to be some components between the two communication networks as data types and their according representations and transmission cadence can be different. Translation of data types could be handled in some translation module @@ -43,7 +44,7 @@ should be mostly freely programmable by integrators using the SOME/IP gateway. Structural View =============== -SOME/IP stacks as supplied by AUTOSAR vendors mostly are available as QM only. +SOME/IP stacks as supplied by different vendors mostly are available as QM only. In the case that SOME/IP implementations are not developed under ASIL-B constraints, adequate measures need to be taken to separate this QM component from the otherwise ASIL-B compliant components. This may be achieved through separate processes, which again will require dedicated inter-process-communication between the SOME/IP-stack and the rest of the gateway. @@ -122,7 +123,7 @@ to the IPC clients to enable the client to individually judge on particular E2E .. note:: The proposed error enumeration is an abstraction. Deriving detailed errors based on the E2E metadata is task of the client. - For reference, this is the error enumeration of the AUTOSAR specification (R24-11): + For reference, this is the typical error enumeration: * OK * ERROR @@ -135,7 +136,7 @@ to the IPC clients to enable the client to individually judge on particular E2E E2E State Machine Considerations -------------------------------- -The E2E (End-to-End) state machine as defined within AUTOSAR E2E protocol provides a summarized result +The E2E (End-to-End) state machine provides a summarized result about the overall health and state of a communication channel. Unlike individual E2E Profile Check() functions, which assess data validity for a single communication cycle, the state machine aggregates results from multiple Check() function invocations over a period. This allows it to determine a more holistic and debounced status of the communication. diff --git a/docs/features/communication/some_ip_gateway/assets/e2e_state_machine_in_gateway.drawio.svg b/docs/features/communication/some_ip_gateway/assets/e2e_state_machine_in_gateway.drawio.svg index cf9ffa295ce..ce4644d3fad 100644 --- a/docs/features/communication/some_ip_gateway/assets/e2e_state_machine_in_gateway.drawio.svg +++ b/docs/features/communication/some_ip_gateway/assets/e2e_state_machine_in_gateway.drawio.svg @@ -1,4 +1,692 @@ - - - -
SOME/IP Gateway
SOME/IP Gateway
IPC 
participant
IPC...
Gateway Logic & Configuration
Gateway Logic & Configuration
SOME/IP
communication
stack
SOME/IP...
End-to-End
protection PlugIn
with state machine
End-to-End...
Payload
Transformation
PlugIn
Payload...
IFC
IFC
IFC
IFC
IFC
IFC
IPC 
participant
IPC...
IPC 
participant
IPC...
IPC 
participant
IPC...
<< QM Process >> 1..n
<< QM Process >> 1..n
<< ASIL Process >>  1..n
<< ASIL Process >>  1..n
Payload Transformation
Payload Transformation
IPC
Mw::com/LoLa
IPC...
Additional metadata to be passed to the client:
    Additional metadata to be passed to the cli...
    E2E results
    of each single
    communication cycle
    E2E results...
    IFC = Interface
    IFC = Interface
    IFC
    IFC
    AUTOSAR code
    AUTOSAR code
    Aggregated state machine results per communication channel
    Aggregated stat...
    +
    +
    State machine configuration per communication channel
    State machine c...
    Due to pub/sub nature of mw::com, clients listening on the same topic can not be separately addressed. Therefore, the state machine results can not be selectively distributed according to the particular communication channel they belong to.

    Due to pub/sub nature of mw::co...
    Text is not SVG - cannot display
    \ No newline at end of file + + + + + + + + + + + + + + + + + + +
    +
    +
    + SOME/IP Gateway +
    +
    +
    +
    + + SOME/IP Gateway + +
    +
    +
    + + + + + + + + + + + + + +
    +
    +
    + IPC +
    + participant +
    +
    +
    +
    +
    + + IPC... + +
    +
    +
    + + + + + + + +
    +
    +
    + Gateway Logic & Configuration +
    +
    +
    +
    + + Gateway Logic & Configuration + +
    +
    +
    + + + + + + + + + + +
    +
    +
    + SOME/IP +
    + + communication + +
    + + stack + +
    +
    +
    +
    +
    + + SOME/IP... + +
    +
    +
    + + + + + + + +
    +
    +
    + End-to-End +
    + protection PlugIn +
    + + + with + + + state machine +
    +
    +
    +
    +
    + + End-to-End... + +
    +
    +
    + + + + + + + +
    +
    +
    + Payload +
    + Transformation +
    + PlugIn +
    +
    +
    +
    +
    + + Payload... + +
    +
    +
    + + + + + + + + + + + + + + + + + + + +
    +
    +
    + IFC +
    +
    +
    +
    + + IFC + +
    +
    +
    + + + + + + + +
    +
    +
    + IFC +
    +
    +
    +
    + + IFC + +
    +
    +
    + + + + + + + +
    +
    +
    + IFC +
    +
    +
    +
    + + IFC + +
    +
    +
    + + + + + + + +
    +
    +
    + IPC +
    + participant +
    +
    +
    +
    +
    + + IPC... + +
    +
    +
    + + + + + + + +
    +
    +
    + IPC +
    + participant +
    +
    +
    +
    +
    + + IPC... + +
    +
    +
    + + + + + + + +
    +
    +
    + IPC +
    + participant +
    +
    +
    +
    +
    + + IPC... + +
    +
    +
    + + + + + + + +
    +
    +
    + << QM Process >> + + + 1..n +
    +
    +
    +
    + + << QM Process >> 1..n + +
    +
    +
    + + + + + + + +
    +
    +
    + << ASIL Process >>  1..n +
    +
    +
    +
    + + << ASIL Process >>  1..n + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    + Payload Transformation +
    +
    +
    +
    + + Payload Transformation + +
    +
    +
    + + + + + + + + + + +
    +
    +
    + + + IPC + + +
    + Mw::com/LoLa +
    +
    +
    +
    +
    + + IPC... + +
    +
    +
    + + + + + + + +
    +
    +
    +
    + Additional metadata to be passed to the client: +
    +
    +
      +
      +
      +
      +
      +
      + + Additional metadata to be passed to the cli... + +
      +
      +
      + + + + + + + + +
      +
      +
      +
      + + E2E results + +
      +
      + + of each single + +
      +
      + + communication cycle + +
      +
      +
      +
      +
      + + E2E results... + +
      +
      +
      + + + + + + + +
      +
      +
      + IFC = Interface +
      +
      +
      +
      + + IFC = Interface + +
      +
      +
      + + + + + + + +
      +
      +
      + IFC +
      +
      +
      +
      + + IFC + +
      +
      +
      + + + + + + + +
      +
      +
      + vsomeip code +
      +
      +
      +
      + + vsomeip code + +
      +
      +
      + + + + + + + + +
      +
      +
      +
      + Aggregated state machine results + + per communication channel + +
      +
      +
      +
      +
      + + Aggregated stat... + +
      +
      +
      + + + + + + + +
      +
      +
      + + +
      +
      +
      +
      + + + + +
      +
      +
      + + + + + + + + +
      +
      +
      +
      + State machine configuration per communication channel +
      +
      +
      +
      +
      + + State machine c... + +
      +
      +
      + + + + + + + + + + + +
      +
      +
      +
      + Due to pub/sub nature of mw::com, clients listening on the same topic can not be separately addressed. Therefore, the state machine results can not be selectively distributed according to the particular communication channel they belong to. +
      +
      +
      +
      +
      +
      +
      +
      + + Due to pub/sub nature of mw::co... + +
      +
      +
      + + + +
      + + + + + Text is not SVG - cannot display + + + +
      diff --git a/docs/features/communication/some_ip_gateway/assets/e2e_state_machine_on_client_side.drawio.svg b/docs/features/communication/some_ip_gateway/assets/e2e_state_machine_on_client_side.drawio.svg index a3aa7e7592b..3ca9265c5cd 100644 --- a/docs/features/communication/some_ip_gateway/assets/e2e_state_machine_on_client_side.drawio.svg +++ b/docs/features/communication/some_ip_gateway/assets/e2e_state_machine_on_client_side.drawio.svg @@ -1,4 +1,706 @@ - - - -
      SOME/IP Gateway
      SOME/IP Gateway
      IPC 
      participant
      IPC...
      Gateway Logic & Configuration
      Gateway Logic & Configuration
      SOME/IP
      communication
      stack
      SOME/IP...
      End-to-End
      protection PlugIn
      w/o state machine
      End-to-End...
      Payload
      Transformation
      PlugIn
      Payload...
      IFC
      IFC
      IFC
      IFC
      IFC
      IFC
      IPC 
      participant
      IPC...
      IPC 
      participant
      IPC...
      IPC 
      participant
      IPC...
      << QM Process >> 1..n
      << QM Process >> 1..n
      << ASIL Process >>  1..n
      << ASIL Process >>  1..n
      All E2E results received via IPC metadata need to be fed into the state machine for each single  communication cacle.

      E2E state machine configuration details need to be known by the client.
      All E2E results received...
      End-to-End
      protection
      state machine
      End-to-End...
      IFC
      IFC
      E2E sate machine configuration
      E2E sate mach...
      Payload Transformation
      Payload Transformation
      IPC
      Mw::com/LoLa
      IPC...
      Additional metadata to be passed to the client:
        Additional metadata to be passed to the cli...
        E2E results
        of each single
        communication cycle
        E2E results...
        IFC = Interface
        IFC = Interface
        IFC
        IFC
        AUTOSAR code
        AUTOSAR code
        Text is not SVG - cannot display
        \ No newline at end of file + + + + + + + + + + + + + + + + + + +
        +
        +
        + SOME/IP Gateway +
        +
        +
        +
        + + SOME/IP Gateway + +
        +
        +
        + + + + + + + + + + + + + +
        +
        +
        + IPC +
        + participant +
        +
        +
        +
        +
        + + IPC... + +
        +
        +
        + + + + + + + +
        +
        +
        + Gateway Logic & Configuration +
        +
        +
        +
        + + Gateway Logic & Configuration + +
        +
        +
        + + + + + + + + + + +
        +
        +
        + SOME/IP +
        + + communication + +
        + + stack + +
        +
        +
        +
        +
        + + SOME/IP... + +
        +
        +
        + + + + + + + +
        +
        +
        + End-to-End +
        + protection PlugIn +
        + + + w/o + + + state machine +
        +
        +
        +
        +
        + + End-to-End... + +
        +
        +
        + + + + + + + +
        +
        +
        + Payload +
        + Transformation +
        + PlugIn +
        +
        +
        +
        +
        + + Payload... + +
        +
        +
        + + + + + + + + + + + + + + + + + + + +
        +
        +
        + IFC +
        +
        +
        +
        + + IFC + +
        +
        +
        + + + + + + + +
        +
        +
        + IFC +
        +
        +
        +
        + + IFC + +
        +
        +
        + + + + + + + +
        +
        +
        + IFC +
        +
        +
        +
        + + IFC + +
        +
        +
        + + + + + + + +
        +
        +
        + IPC +
        + participant +
        +
        +
        +
        +
        + + IPC... + +
        +
        +
        + + + + + + + +
        +
        +
        + IPC +
        + participant +
        +
        +
        +
        +
        + + IPC... + +
        +
        +
        + + + + + + + +
        +
        +
        + IPC +
        + participant +
        +
        +
        +
        +
        + + IPC... + +
        +
        +
        + + + + + + + +
        +
        +
        + << QM Process >> + + + 1..n +
        +
        +
        +
        + + << QM Process >> 1..n + +
        +
        +
        + + + + + + + +
        +
        +
        + << ASIL Process >>  1..n +
        +
        +
        +
        + + << ASIL Process >>  1..n + +
        +
        +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        +
        +
        + + All E2E results received via IPC metadata need to be fed into the state machine for each single  communication cacle. + +
        +
        + + + E2E state machine configuration details need to be known by the client. + + +
        +
        +
        +
        +
        + + All E2E results received... + +
        +
        +
        + + + + + + + +
        +
        +
        + End-to-End +
        + protection +
        + + state machine + +
        +
        +
        +
        +
        + + End-to-End... + +
        +
        +
        + + + + + + + +
        +
        +
        + IFC +
        +
        +
        +
        + + IFC + +
        +
        +
        + + + + + + + + + + + + + + + + + + + + + + +
        +
        +
        + E2E sate machine configuration +
        +
        +
        +
        + + E2E sate mach... + +
        +
        +
        + + + + + + + + + + + +
        +
        +
        + Payload Transformation +
        +
        +
        +
        + + Payload Transformation + +
        +
        +
        + + + + + + + + + + +
        +
        +
        + + + IPC + + +
        + Mw::com/LoLa +
        +
        +
        +
        +
        + + IPC... + +
        +
        +
        + + + + + + + +
        +
        +
        +
        + Additional metadata to be passed to the client: +
        +
        +
          +
          +
          +
          +
          +
          + + Additional metadata to be passed to the cli... + +
          +
          +
          + + + + + + + + +
          +
          +
          +
          + + E2E results + +
          +
          + + of each single + +
          +
          + + communication cycle + +
          +
          +
          +
          +
          + + E2E results... + +
          +
          +
          + + + + + + + +
          +
          +
          + IFC = Interface +
          +
          +
          +
          + + IFC = Interface + +
          +
          +
          + + + + + + + +
          +
          +
          + IFC +
          +
          +
          +
          + + IFC + +
          +
          +
          + + + + + + + +
          +
          +
          + + vsomeip code + +
          +
          +
          +
          + + vsomeip code + +
          +
          +
          +
          + + + + + Text is not SVG - cannot display + + + +
          diff --git a/docs/features/communication/some_ip_gateway/assets/some_ip_gateway_details.drawio.svg b/docs/features/communication/some_ip_gateway/assets/some_ip_gateway_details.drawio.svg index 699817d6a9b..2b1cb5cd000 100644 --- a/docs/features/communication/some_ip_gateway/assets/some_ip_gateway_details.drawio.svg +++ b/docs/features/communication/some_ip_gateway/assets/some_ip_gateway_details.drawio.svg @@ -1,6 +1,6 @@ - + - + @@ -164,7 +164,7 @@ - + @@ -368,13 +368,13 @@
          - AUTOSAR code + vsomeip code
          - AUTOSAR code + vsomeip code @@ -461,7 +461,7 @@ - + diff --git a/docs/features/communication/some_ip_gateway/index.rst b/docs/features/communication/some_ip_gateway/index.rst index c096008d16d..0a7d28743de 100644 --- a/docs/features/communication/some_ip_gateway/index.rst +++ b/docs/features/communication/some_ip_gateway/index.rst @@ -102,9 +102,8 @@ The requirements from Communication generally apply to the SOME/IP Gateway. SOME/IP protocol implementation ------------------------------- -The protocol implementation shall be fully compatible and complying with the SOME/IP specification from AUTOSAR Adaptive. (:need:`feat_req__some_ip_gateway__someip_protocol`) -Specifically the SOME/IP specification from AUTOSAR release R24-11 shall be supported by the SOME/IP Gateway. This shall guarantee that systems integrated with the SOME/IP gateway can be used in according -automotive E/E-architectures. +For reference purpose, the gateway shall use the `vsomeip `_ protocol +implementation that is compatible and complying with the SOME/IP specification from `some-ip.com `_. (:need:`feat_req__some_ip_gateway__someip_protocol`) Protocol implementations shall be wrapped in an abstraction API, that stays stable and allows implementations may be exchanged, potentially even by binary only libraries. The SOME/IP Gateway shall support SOME/IP Events, Fields and Methods and shall map these accordingly into IPC. @@ -176,7 +175,7 @@ Access Control acts on OSI Layer 5-7. It shall fulfill the following: .. note:: - Checking SOME/IP-SD messages with the ACL is optional because no functional data is transported. - - SOME/IP-SD messages are not protected as per AUTOSAR Adaptive specification. + - SOME/IP-SD messages are not protected as per specification. .. uml:: @@ -219,7 +218,7 @@ End-to-End (E2E) protection with CRC and counters Applications communicating over the network may have to protect data with end-to-end protection (E2E), which may involve CRC-protection and checks, and message counters. -There are several E2E (= End-to-End) profiles, which utilize various CRC routines as part of AUTOSAR E2E Protocol Specification, that shall be supported with the SOME/IP Gateway. +There are several E2E (= End-to-End) profiles, which utilize various CRC routines as part of E2E Protocol Specification, that shall be supported with the SOME/IP Gateway. Though the implementation of the SOME/IP protocol itself is likely not going to be ASIL-B compliant and have a safety consideration of QM rather, E2E-checks and protection need to happen in an ASIL-B context. The gateway may perform the CRC routines as a central service. @@ -229,21 +228,18 @@ SOME/IP Events, Methods, and Fields need to be supported with E2E protection. Please refer to the SOME/IP Gateway architecture for further details. -References - -- `AUTOSAR_FO_PRS_E2EProtocol `_ -- `AUTOSAR_FO_RS_E2E `_ License Impact ============== [How could the copyright impacted by the license of the new contribution?] -Since SOME/IP is a protocol, including applied E2E protection and the according profile (polynom, etc.), -defined by AUTOSAR and published under the license of AUTOSAR, the gateway implementation shall carefully distinguish between the SOME/IP communication stack, -the E2E protection of data, and the integration into S-CORE mw::com. Breach of foreign licenses must be avoided. +SOME/IP is a protocol, including applied E2E protection and the according profile (polynom, etc.), +is defined by multiple organizations, here we refer to the us of `vsomeip `_ implementation that refers to `some-ip.com `_. +The gateway implementation shall carefully distinguish between the SOME/IP communication stack, +the E2E protection of data, and the integration into S-CORE mw::com. -Anybody using SOME/IP Gateway needs to make sure to follow the license conditions and rules of AUTOSAR. +Anybody requiring specific SOME/IP versions needs to make sure to follow the license conditions and rules of the underlying standards or specifications. How to Teach This ================= diff --git a/docs/features/communication/some_ip_gateway/requirements/index.rst b/docs/features/communication/some_ip_gateway/requirements/index.rst index bc26141f5f7..b182582bc02 100644 --- a/docs/features/communication/some_ip_gateway/requirements/index.rst +++ b/docs/features/communication/some_ip_gateway/requirements/index.rst @@ -39,7 +39,7 @@ Functional Requirements The SOME/IP Gateway shall support an interface to plug-in a E2E protection service implementation. -.. feat_req:: Compatibility with AUTOSAR SOME/IP Protocol Specification +.. feat_req:: Compatibility with `some-ip.com `_ Protocol Specification :id: feat_req__some_ip_gateway__someip_protocol :reqtype: Functional :security: NO @@ -47,11 +47,9 @@ Functional Requirements :satisfies: stkh_req__communication__supported_net :status: valid - The SOME/IP protocol implementation shall be fully compatible and complying with the SOME/IP protocol specification from AUTOSAR Adaptive Version 24-11. - - `AUTOSAR_FO_PRS_SOMEIPProtocol `_ - - `AUTOSAR_FO_RS_SOMEIPProtocol `_ + The SOME/IP protocol implementation shall be fully compatible and complying with the SOME/IP protocol specification from `some-ip.com `_. -.. feat_req:: Compatibility with AUTOSAR E2E Protocol Specification +.. feat_req:: Compatibility with `some-ip.com `_ E2E Protocol Specification :id: feat_req__some_ip_gateway__e2e_specs :reqtype: Functional :security: NO @@ -59,12 +57,9 @@ Functional Requirements :satisfies: stkh_req__communication__supported_net :status: valid - The E2E protection implementation shall be fully compatible and complying with the E2E protocol specification from AUTOSAR Adaptive Version 24-11. - - `AUTOSAR_FO_PRS_E2EProtocol `_ - - `AUTOSAR_FO_RS_E2E `_ + The E2E protection implementation shall be fully compatible and complying with the E2E protocol specification from `some-ip.com `_. - -.. feat_req:: Compatibility with AUTOSAR SOME/IP Service Discovery Protocol Specification +.. feat_req:: Compatibility with `some-ip.com `_ SOME/IP Service Discovery Protocol Specification :id: feat_req__some_ip_gateway__someip_sd_protocol :reqtype: Functional :security: NO @@ -72,6 +67,4 @@ Functional Requirements :satisfies: stkh_req__communication__supported_net :status: valid - The Service Discovery implementation shall be fully compatible and complying with the SOME/IP service discovery specification from AUTOSAR Adaptive Version 24-11. - - `AUTOSAR_FO_PRS_SOMEIPServiceDiscoveryProtocol `_ - - `AUTOSAR_FO_RS_SOMEIPServiceDiscoveryProtocol `_ + The Service Discovery implementation shall be fully compatible and complying with the SOME/IP service discovery specification from `some-ip.com `_. From b5b0431b67a12d1185ca08df6401c6a8d0c3de37 Mon Sep 17 00:00:00 2001 From: Philipp Ahmann <2428012+pahmann@users.noreply.github.com> Date: Fri, 2 Jan 2026 10:51:46 +0100 Subject: [PATCH 052/128] Correct reference to vsomeip including repo link Minor correction from review finding. Signed-off-by: Philipp Ahmann <2428012+pahmann@users.noreply.github.com> --- .../communication/some_ip_gateway/architecture/index.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/features/communication/some_ip_gateway/architecture/index.rst b/docs/features/communication/some_ip_gateway/architecture/index.rst index f31d862ed98..65dce26e750 100644 --- a/docs/features/communication/some_ip_gateway/architecture/index.rst +++ b/docs/features/communication/some_ip_gateway/architecture/index.rst @@ -27,8 +27,8 @@ data or to subscribe to data. As such it will need to know and understand the da the IPC network. It also is a participant in the SOME/IP network and provides services for the service oriented communication. -This shall be possible by including SOME/IP stacks from `vsomeip `_ for reference, which can be replaced by other -implementations, i.e. proprietary commercial stacks. +This shall be possible by including the `vsomeip `_ SOME/IP stack for reference, +which can be replaced by other implementations, i.e. proprietary commercial stacks. There need to be some components between the two communication networks as data types and their according representations and transmission cadence can be different. Translation of data types could be handled in some translation module From 2f60407d1d8ad8c74c55d8ceebf5e06eebe683a9 Mon Sep 17 00:00:00 2001 From: Andreas Zwinkau Date: Mon, 15 Dec 2025 09:22:44 +0100 Subject: [PATCH 053/128] Remove persistency module docs They are now in the persistency module: https://github.com/eclipse-score/persistency/pull/188 Note that persistency feature docs are still here. --- docs/features/persistency/index.rst | 5 +- docs/modules/persistency/docs/index.rst | 27 -- .../modules/persistency/docs/manual/index.rst | 21 - .../persistency/docs/manual/safety_manual.rst | 104 ----- .../persistency/docs/release/release_note.rst | 79 ---- .../persistency/docs/safety_mgt/index.rst | 23 - .../safety_mgt/module_safety_package_fdr.rst | 63 --- .../docs/safety_mgt/module_safety_plan.rst | 297 ------------- .../safety_mgt/module_safety_plan_fdr.rst | 93 ----- .../module_verification_report.rst | 81 ---- docs/modules/persistency/index.rst | 32 -- .../json/docs/component_classification.rst | 182 -------- docs/modules/persistency/json/docs/index.rst | 41 -- .../kvs/docs/architecture/index.rst | 125 ------ docs/modules/persistency/kvs/docs/index.rst | 155 ------- .../kvs/docs/requirements/index.rst | 394 ------------------ .../kvs/docs/safety_analysis/dfa.rst | 27 -- .../kvs/docs/safety_analysis/fmea.rst | 27 -- 18 files changed, 1 insertion(+), 1775 deletions(-) delete mode 100644 docs/modules/persistency/docs/index.rst delete mode 100644 docs/modules/persistency/docs/manual/index.rst delete mode 100644 docs/modules/persistency/docs/manual/safety_manual.rst delete mode 100644 docs/modules/persistency/docs/release/release_note.rst delete mode 100644 docs/modules/persistency/docs/safety_mgt/index.rst delete mode 100644 docs/modules/persistency/docs/safety_mgt/module_safety_package_fdr.rst delete mode 100644 docs/modules/persistency/docs/safety_mgt/module_safety_plan.rst delete mode 100644 docs/modules/persistency/docs/safety_mgt/module_safety_plan_fdr.rst delete mode 100644 docs/modules/persistency/docs/verification/module_verification_report.rst delete mode 100644 docs/modules/persistency/index.rst delete mode 100644 docs/modules/persistency/json/docs/component_classification.rst delete mode 100644 docs/modules/persistency/json/docs/index.rst delete mode 100644 docs/modules/persistency/kvs/docs/architecture/index.rst delete mode 100644 docs/modules/persistency/kvs/docs/index.rst delete mode 100644 docs/modules/persistency/kvs/docs/requirements/index.rst delete mode 100644 docs/modules/persistency/kvs/docs/safety_analysis/dfa.rst delete mode 100644 docs/modules/persistency/kvs/docs/safety_analysis/fmea.rst diff --git a/docs/features/persistency/index.rst b/docs/features/persistency/index.rst index ded30f1e54b..86fdf7b5a1d 100644 --- a/docs/features/persistency/index.rst +++ b/docs/features/persistency/index.rst @@ -135,10 +135,7 @@ analyze the impact of the feature. :need:`doc__persistency_fmea` We use an iterative development process and apply results from the next steps -back to the feature request. For TinyJSON we will perform a software component -classification. - -:need:`doc__persistency_component_classification` +back to the feature request. To ensure the freedom of interference the feature key-value storage should not be used within different processes. diff --git a/docs/modules/persistency/docs/index.rst b/docs/modules/persistency/docs/index.rst deleted file mode 100644 index 62a2a1fd061..00000000000 --- a/docs/modules/persistency/docs/index.rst +++ /dev/null @@ -1,27 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2025 Contributors to the Eclipse Foundation - # - # See the NOTICE file(s) distributed with this work for additional - # information regarding copyright ownership. - # - # This program and the accompanying materials are made available under the - # terms of the Apache License Version 2.0 which is available at - # https://www.apache.org/licenses/LICENSE-2.0 - # - # SPDX-License-Identifier: Apache-2.0 - # ******************************************************************************* - -.. _module_documentation: - -Module Documents Persistency -############################ - -.. toctree:: - :maxdepth: 1 - :glob: - - manual/index.rst - safety_mgt/index.rst - verification/module_verification_report.rst - release/release_note.rst diff --git a/docs/modules/persistency/docs/manual/index.rst b/docs/modules/persistency/docs/manual/index.rst deleted file mode 100644 index 08ba1a6e1a0..00000000000 --- a/docs/modules/persistency/docs/manual/index.rst +++ /dev/null @@ -1,21 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation - # - # See the NOTICE file(s) distributed with this work for additional - # information regarding copyright ownership. - # - # This program and the accompanying materials are made available under the - # terms of the Apache License Version 2.0 which is available at - # https://www.apache.org/licenses/LICENSE-2.0 - # - # SPDX-License-Identifier: Apache-2.0 - # ******************************************************************************* - -Manuals -####### - -.. toctree:: - :titlesonly: - - safety_manual diff --git a/docs/modules/persistency/docs/manual/safety_manual.rst b/docs/modules/persistency/docs/manual/safety_manual.rst deleted file mode 100644 index b2515225fd5..00000000000 --- a/docs/modules/persistency/docs/manual/safety_manual.rst +++ /dev/null @@ -1,104 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2025 Contributors to the Eclipse Foundation - # - # See the NOTICE file(s) distributed with this work for additional - # information regarding copyright ownership. - # - # This program and the accompanying materials are made available under the - # terms of the Apache License Version 2.0 which is available at - # https://www.apache.org/licenses/LICENSE-2.0 - # - # SPDX-License-Identifier: Apache-2.0 - # ******************************************************************************* - -Safety Manual -============= - -.. document:: Persistency Safety Manual - :id: doc__persistency_safety_manual - :status: valid - :safety: ASIL_B - :security: NO - :tags: persistency - :realizes: wp__module_safety_manual - -Introduction/Scope ------------------- -| This manual will cover the Feature Persistency. It's based on the components KVS and Tiny JSON. - -Assumed Platform Safety Requirements ------------------------------------- -| For the module persistency the following safety related stakeholder requirements are assumed to define the top level functionality (purpose) of the module persistency. I.e. from these all the feature and component requirements implemented are derived. -| List of stakeholder requirements, with ASIL B, the module's components requirements are derived from. - -.. needtable:: - :style: table - :columns: title;id;status - :colwidths: 25,25,15 - :sort: title - - results = [] - - for need in needs.filter_types(["stkh_req"]): - if need and "persistency" in need["tags"]: - if need["safety"] == "ASIL_B": - results.append(need) - - -Assumptions of Use ------------------- - -Assumptions on the Environment -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -| Generally the assumption of the S-CORE platform SEooC is that it is integrated in a safe system, i.e. the POSIX OS it runs on is qualified and also the HW related failures are taken into account by the system integrator, if not otherwise stated in the module's safety concept. - -List of AoUs expected from the environment the module runs on: - -.. needtable:: - :style: table - :columns: title;id;status - :colwidths: 25,25,25 - :sort: title - - results = [] - - for need in needs.filter_types(["aou_req"]): - if need and "persistency" in need["tags"]: - if need and "environment" in need["tags"]: - results.append(need) - -Assumptions on the User -^^^^^^^^^^^^^^^^^^^^^^^ -| As there is no assumption on which specific OS and HW is used, the integration testing of the stakeholder and feature requirements is expected to be performed by the user of the platform SEooC. Tests covering all stakeholder and feature requirements performed on a reference platform (tbd link to reference platform specification), reviewed and passed are included in the platform SEooC safety case. -| Additionally the components of the platform may have additional specific assumptions how they are used. These are part of every module documentation: :ref:`module_documentation`. Assumptions from components to their users can be fulfilled in two ways: -| 1. There are assumption which need to be fulfilled by all SW components, e.g. "every user of an IPC mechanism needs to make sure that he provides correct data (including appropriate ASIL level)" - in this case the AoU is marked as "platform". -| 2. There are assumption which can be fulfilled by a safety mechanism realized by some other S-CORE platform component and are therefore not relevant for an user who uses the whole platform. But those are relevant if you chose to use the module SEooC stand-alone - in this case the AoU is marked as "module". An example would be the "JSON read" which requires "The user shall provide a string as input which is not corrupted due to HW or QM SW errors." - which is covered when using together with safe S-CORE platform persistency feature. - -List of AoUs on the user of the platform features or the module of this safety manual: - -.. needtable:: - :style: table - :columns: title;id;status - :colwidths: 25,25,25 - :sort: title - - results = [] - - for need in needs.filter_types(["aou_req"]): - if need and "environment" not in need["tags"]: - if need and "persistency" in need["tags"]: - results.append(need) - -Safety concept of the SEooC ---------------------------- -| - -Safety Anomalies ----------------- -| Anomalies (bugs in ASIL SW, detected by testing or by users, which could not be fixed) known before release are documented in the platform/module release notes . - -References ----------- -| -| diff --git a/docs/modules/persistency/docs/release/release_note.rst b/docs/modules/persistency/docs/release/release_note.rst deleted file mode 100644 index e966523ce98..00000000000 --- a/docs/modules/persistency/docs/release/release_note.rst +++ /dev/null @@ -1,79 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2025 Contributors to the Eclipse Foundation - # - # See the NOTICE file(s) distributed with this work for additional - # information regarding copyright ownership. - # - # This program and the accompanying materials are made available under the - # terms of the Apache License Version 2.0 which is available at - # https://www.apache.org/licenses/LICENSE-2.0 - # - # SPDX-License-Identifier: Apache-2.0 - # ******************************************************************************* - -Release Note -============ - -.. document:: Persistency Release Note - :id: doc__persistency_release_note - :status: valid - :safety: ASIL_B - :security: NO - :realizes: wp__module_sw_release_note - :tags: persistency - -| Module Name: Persistency -| Release Tag: vX.Y.Z -| Release Commit Hash: a1b2c3d4e5f6g7h8i9j0 -| Release Date: YYYY-MM-DD -| -| Overview -| -------- -| -| This document provides an overview of the changes, improvements, and bug fixes included in the software module release version vX.Y.Z. -| -| New Features -| ------------ -| -| - **Feature 1**: Brief description of the new feature. -| - **Feature 2**: Brief description of the new feature. -| - **Feature 3**: Brief description of the new feature. -| -| Improvements -| ------------ -| -| - **Improvement 1**: Brief description of the improvement. -| - **Improvement 2**: Brief description of the improvement. -| - **Improvement 3**: Brief description of the improvement. -| -| Bug Fixes -| --------- -| -| - **Bug 1**: Brief description of the bug fix. -| - **Bug 2**: Brief description of the bug fix. -| - **Bug 3**: Brief description of the bug fix. -| -| Compatibility -| ------------- -| -| - **Dependencies**: List any dependencies and their versions. -| -| Known Issues -| ------------ -| -| - **Issue 1**: Brief description of the known issue. Justification regarding safety impact. -| - **Issue 2**: Brief description of the known issue. Justification regarding safety impact. -| - **Issue 3**: Brief description of the known issue. Justification regarding safety impact. -| -| Upgrade Instructions -| -------------------- -| -| 1. **Step 1**: Description of the first step. -| 2. **Step 2**: Description of the second step. -| 3. **Step 3**: Description of the third step. -| -| Contact Information -| ------------------- -| -| For any questions or support, please contact the *Project lead* or raise an issue/discussion. diff --git a/docs/modules/persistency/docs/safety_mgt/index.rst b/docs/modules/persistency/docs/safety_mgt/index.rst deleted file mode 100644 index 04718ba3557..00000000000 --- a/docs/modules/persistency/docs/safety_mgt/index.rst +++ /dev/null @@ -1,23 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation - # - # See the NOTICE file(s) distributed with this work for additional - # information regarding copyright ownership. - # - # This program and the accompanying materials are made available under the - # terms of the Apache License Version 2.0 which is available at - # https://www.apache.org/licenses/LICENSE-2.0 - # - # SPDX-License-Identifier: Apache-2.0 - # ******************************************************************************* - -Safety Management -################# - -.. toctree:: - :titlesonly: - - module_safety_plan - module_safety_plan_fdr - module_safety_package_fdr diff --git a/docs/modules/persistency/docs/safety_mgt/module_safety_package_fdr.rst b/docs/modules/persistency/docs/safety_mgt/module_safety_package_fdr.rst deleted file mode 100644 index 678f4e756ae..00000000000 --- a/docs/modules/persistency/docs/safety_mgt/module_safety_package_fdr.rst +++ /dev/null @@ -1,63 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2025 Contributors to the Eclipse Foundation - # - # See the NOTICE file(s) distributed with this work for additional - # information regarding copyright ownership. - # - # This program and the accompanying materials are made available under the - # terms of the Apache License Version 2.0 which is available at - # https://www.apache.org/licenses/LICENSE-2.0 - # - # SPDX-License-Identifier: Apache-2.0 - # ******************************************************************************* - -Safety Package Formal Review Report -=================================== - -.. document:: Persistency Safety Package Formal Review - :id: doc__persistency_safety_package_fdr - :status: valid - :safety: ASIL_B - :security: NO - :realizes: wp__fdr_reports - :tags: persistency - -**1. Purpose** - -The purpose of this review checklist is to report status of the formal review for the safety package. - -**2. Checklist** - -.. list-table:: Safety Package Checklist - :header-rows: 1 - - * - Id - - Safety package activity - - Compliant to ISO 26262? - - Comment - - * - 1 - - Is a safety package provided which matches the safety plan (i.e. all planned workproducts referenced)? - - [YES | NO ] - - - - * - 2 - - Is the argument how functional safety is achieved, provided in the safety package, plausible and sufficient? - - NO - - The argument is intentionally not provided by S-CORE. - - * - 3 - - Are the referenced work products available? - - [YES | NO ] - - - - * - 4 - - Are the referenced work products in released state, including the process safety audit? - - [YES | NO ] - - - - * - 5 - - If safety related deviations from the process or safety concept are documented, are these argued understandably? - - [YES | NO ] - - diff --git a/docs/modules/persistency/docs/safety_mgt/module_safety_plan.rst b/docs/modules/persistency/docs/safety_mgt/module_safety_plan.rst deleted file mode 100644 index 93e633670ec..00000000000 --- a/docs/modules/persistency/docs/safety_mgt/module_safety_plan.rst +++ /dev/null @@ -1,297 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2025 Contributors to the Eclipse Foundation - # - # See the NOTICE file(s) distributed with this work for additional - # information regarding copyright ownership. - # - # This program and the accompanying materials are made available under the - # terms of the Apache License Version 2.0 which is available at - # https://www.apache.org/licenses/LICENSE-2.0 - # - # SPDX-License-Identifier: Apache-2.0 - # ******************************************************************************* - -Module Safety Plan -****************** - -.. document:: Persistency Safety Plan - :id: doc__persistency_safety_plan - :status: valid - :safety: ASIL_B - :security: NO - :realizes: wp__module_safety_plan - :tags: persistency - -Functional Safety Management Context -==================================== - -This Safety Plan adds to the :need:`gd_guidl__saf_plan_definitions` all the module development relevant workproducts needed for ISO 26262 conformity. - -Functional Safety Management Scope -================================== - -This Safety Plan's scope is a SW module of the SW platform :ref:`module_documentation`. -The module consists of one or more SW components and will be qualified as a SEooC. - -Functional Safety Management Roles -================================== - -.. list-table:: Module roles - :header-rows: 1 - - * - Role - - Assignee - - * - Safety Manager - - Volker Häussler - - * - Module Project Manager (= Feature team lead) - - Lars Bauhofer - -Tailoring -========= - -Additional to the tailoring in the SW platform project as defined in the :need:`gd_guidl__saf_plan_definitions` we define here the additional tailoring on module level. - -| - Excluded for this module are additionally the following workproducts (and their related requirements): -| - No work products excluded - -Functional Safety Module Workproducts -===================================== - -One set of workproducts for the module and one set for each component of the module: - -Module Workproducts List ------------------------- - -.. list-table:: Module Workproducts - :header-rows: 1 - - * - Workproduct Id - - Link to process - - Process status - - Link to WP - - * - :need:`wp__module_safety_plan` - - :need:`gd_guidl__saf_plan_definitions` - - :ndf:`copy('status', need_id='gd_guidl__saf_plan_definitions')` - - this document - - * - :need:`wp__module_safety_package` - - :need:`gd_guidl__saf_package` - - :ndf:`copy('status', need_id='gd_guidl__saf_package')` - - this document (including the linked documentation) - - * - :need:`wp__fdr_reports` (module Safety Plan) - - :need:`gd_chklst__safety_plan` - - :ndf:`copy('status', need_id='gd_chklst__safety_plan')` - - :need:`doc__persistency_safety_plan_fdr` - - * - :need:`wp__fdr_reports` (module Safety Package) - - :need:`gd_chklst__safety_package` - - :ndf:`copy('status', need_id='gd_chklst__safety_package')` - - :need:`doc__persistency_safety_package_fdr` - - * - :need:`wp__fdr_reports` (module's Safety Analyses & DFA) - - :need:`gd_guidl__safety_analysis` - - :ndf:`copy('status', need_id='gd_guidl__safety_analysis')` - - - - * - :need:`wp__audit_report` - - performed by external experts - - n/a - - - - * - :need:`wp__module_safety_manual` - - :need:`gd_temp__safety_manual` - - :ndf:`copy('status', need_id='gd_temp__safety_manual')` - - :need:`doc__persistency_safety_manual` - - * - :need:`wp__verification_module_ver_report` - - :need:`gd_temp__mod_ver_report` - - :ndf:`copy('status', need_id='gd_temp__mod_ver_report')` - - :need:`doc__persistency_verification_report` - - * - :need:`wp__module_sw_release_note` - - :need:`gd_temp__rel_mod_rel_note` - - :ndf:`copy('status', need_id='gd_temp__rel_mod_rel_note')` - - :need:`doc__persistency_release_note` - -Component KVS Workproducts List -------------------------------- - -.. list-table:: Component KVS Workproducts - :header-rows: 1 - - * - Workproduct Id - - Link to process - - Process status - - Link to WP - - * - :need:`wp__requirements_comp` - - :need:`gd_temp__req_comp_req` - - :ndf:`copy('status', need_id='gd_temp__req_comp_req')` - - :need:`doc__persistency_kvs_requirements` - - * - :need:`wp__requirements_comp_aou` - - :need:`gd_temp__req_aou_req` - - :ndf:`copy('status', need_id='gd_temp__req_aou_req')` - - :need:`doc__persistency_kvs_requirements` - - * - :need:`wp__requirements_inspect` - - :need:`gd_chklst__req_inspection` - - :ndf:`copy('status', need_id='gd_chklst__req_inspection')` - - Checklist used in Pull Request Review - - * - :need:`wp__component_arch` - - :need:`gd_temp__arch_comp` - - :ndf:`copy('status', need_id='gd_temp__arch_comp')` - - :need:`doc__persistency_kvs_architecture` - - * - :need:`wp__sw_arch_verification` - - :need:`gd_chklst__arch_inspection_checklist` - - :ndf:`copy('status', need_id='gd_chklst__arch_inspection_checklist')` - - Checklist used in Pull Request Review - - * - :need:`wp__sw_component_fmea` - - :need:`wp__sw_component_fmea` - - :ndf:`copy('status', need_id='gd_guidl__safety_analysis')` - - :need:`doc__persistency_kvs_fmea` - - * - :need:`wp__sw_component_dfa` - - :need:`wp__sw_component_dfa` - - :ndf:`copy('status', need_id='gd_guidl__safety_analysis')` - - :need:`doc__persistency_kvs_dfa` - - * - :need:`wp__sw_implementation` - - :need:`gd_guidl__implementation` - - :ndf:`copy('status', need_id='gd_guidl__implementation')` - - - - * - :need:`wp__verification_sw_unit_test` - - :need:`gd_guidl__verification_guide` - - :ndf:`copy('status', need_id='gd_guidl__verification_guide')` - - - - * - :need:`wp__sw_implementation_inspection` - - :need:`gd_chklst__impl_inspection_checklist` - - :ndf:`copy('status', need_id='gd_chklst__impl_inspection_checklist')` - - Checklist used in Pull Request Review - - * - :need:`wp__verification_comp_int_test` - - :need:`gd_guidl__verification_guide` - - :ndf:`copy('status', need_id='gd_guidl__verification_guide')` - - - - * - :need:`wp__sw_component_class` - - :need:`gd_guidl__component_classification` - - :ndf:`copy('status', need_id='gd_guidl__component_classification')` - - :need:`doc__persistency_component_classification` - - -OSS (sub-)component qualification plan -====================================== - -For the selected OSS component the following workproducts will be implemented (and why): - -If the OSS element is classified as - - component, then the below table shall match the above, adding the reasoning for tailoring of work products according to the OSS component classification. - - lower level component, then no workproducts additional to the component’s will be planned and activities below are part of the component’s issues. - -.. list-table:: OSS (sub-)component Tiny JSON Workproducts - :header-rows: 1 - - * - Workproduct Id - - Reasoning for tailoring - - * - :need:`wp__requirements_comp` - - Always needed (for Q and QR classification) and also improves process Id 2 - - * - :need:`wp__requirements_comp_aou` - - Always needed (for Q and QR classification) and also improves process Id 5 - - * - :need:`wp__requirements_inspect` - - - - * - :need:`wf__cr_mt_comparch` - - - - * - :need:`wp__sw_component_fmea` - - - - * - :need:`wp__sw_arch_verification` - - - - * - :need:`wp__sw_implementation` - - Tailored - If source code is modified, this is not a OSS qualification any more. - - * - :need:`wp__verification_sw_unit_test` - - - - * - :need:`wp__sw_implementation_inspection` - - - - * - :need:`wp__verification_comp_int_test` - - Always needed (for Q and QR classification) - - * - :need:`wp__sw_component_class` - - Always needed as basis for tailoring. - -Module Safety Package -===================== - -To create the safety package (according to :need:`gd_guidl__saf_package`) the following -documents and work products status have to go to "valid" (after the relevant verification were performed). - -Module Documents Status ------------------------ - -For all the work product documents the status can be seen by following the "Link to WP". -A summary of the status is also documented in the project's documentation management plan. - -See :ref:`documents_docs_modules_persistency_docs` - -Component Documents Status --------------------------- - -For all the work product documents the status can be seen by following the "Link to WP". -A summary of the status is also documented in the project's documentation management plan. - -See :ref:`documents_docs_modules_persistency_components` - -Component Requirements Status ------------------------------ - -.. needtable:: - :filter: docname is not None and "persistency" in docname and "requirements" in docname - :style: table - :types: comp_req - :tags: kvs - :columns: id;status;tags - :colwidths: 25,25,25 - :sort: title - -Component AoU Status --------------------- - -.. needtable:: - :filter: docname is not None and "persistency" in docname and "requirements" in docname - :style: table - :types: aou_req - :tags: kvs - :columns: id;status;tags - :colwidths: 25,25,25 - :sort: title - -Component Architecture Status ------------------------------ - -.. needtable:: - :filter: docname is not None and "persistency" in docname and "architecture" in docname - :style: table - :types: comp_arc_sta; comp_arc_dyn - :tags: kvs - :columns: id;status;tags - :colwidths: 25,25,25 - :sort: title diff --git a/docs/modules/persistency/docs/safety_mgt/module_safety_plan_fdr.rst b/docs/modules/persistency/docs/safety_mgt/module_safety_plan_fdr.rst deleted file mode 100644 index 23f90f2c367..00000000000 --- a/docs/modules/persistency/docs/safety_mgt/module_safety_plan_fdr.rst +++ /dev/null @@ -1,93 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2025 Contributors to the Eclipse Foundation - # - # See the NOTICE file(s) distributed with this work for additional - # information regarding copyright ownership. - # - # This program and the accompanying materials are made available under the - # terms of the Apache License Version 2.0 which is available at - # https://www.apache.org/licenses/LICENSE-2.0 - # - # SPDX-License-Identifier: Apache-2.0 - # ******************************************************************************* - -Safety Plan Formal Review Report -================================ - -.. document:: Persistency Safety Plan Formal Review - :id: doc__persistency_safety_plan_fdr - :status: valid - :safety: ASIL_B - :security: NO - :realizes: wp__fdr_reports - :tags: persistency - -**1. Purpose** - -The purpose of this safety plan formal review checklist is to report status of the review for the safety plan. - -**2. Checklist** - -.. list-table:: Safety Plan Checklist - :header-rows: 1 - - * - Id - - Safety plan activity - - Compliant to ISO 26262? - - Comment - - * - 1 - - Is the rationale for the safety work products tailoring included? - - [YES | NO ] - - - - * - 2 - - Is impact analysis planned in case of re-use of SW (needed for every release following the first formal release)? - - [YES | NO ] - - - - * - 3 - - Does the safety plan define all needed activities for safety management (incl. Confirmation review and Safety Audit)? - - [YES | NO ] - - - - * - 4 - - Does the safety plan define all needed activities for System and SW development, integration and verification? - - [YES | NO ] - - - - * - 5 - - Does the safety plan define all needed activities for safety analysis and DFA? - - [YES | NO ] - - - - * - 6 - - Does the safety plan define all needed activities for supporting processes (incl. tool mgt)? - - [YES | NO ] - - - - * - 7 - - Does the safety plan document a responsible for all activities? - - [YES | NO ] - - - - * - 8 - - If OSS software components is used, is it planned to be qualified? - - [YES | NO ] - - - - * - 9 - - Is a safety manager and a project manager appointed for the project? - - [YES | NO ] - - - - * - 10 - - Is safety plan sufficiently linked to the project plan? - - [YES | NO ] - - - - * - 11 - - Is safety plan updated iteratively to show the progress? - - [YES | NO ] - - diff --git a/docs/modules/persistency/docs/verification/module_verification_report.rst b/docs/modules/persistency/docs/verification/module_verification_report.rst deleted file mode 100644 index a00ca26e618..00000000000 --- a/docs/modules/persistency/docs/verification/module_verification_report.rst +++ /dev/null @@ -1,81 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2025 Contributors to the Eclipse Foundation - # - # See the NOTICE file(s) distributed with this work for additional - # information regarding copyright ownership. - # - # This program and the accompanying materials are made available under the - # terms of the Apache License Version 2.0 which is available at - # https://www.apache.org/licenses/LICENSE-2.0 - # - # SPDX-License-Identifier: Apache-2.0 - # ******************************************************************************* - -Verification Report -=================== - -.. document:: Persistency Verification Report - :id: doc__persistency_verification_report - :status: valid - :safety: ASIL_B - :security: NO - :realizes: wp__verification_module_ver_report - :tags: persistency - - -This verification report is based on the verification plan. -It covers all the components of the above stated module. - -Verification Report contains: - -**1. Verification Coverage** - -**1.1. on Requirements** - - Lists of component requirements (incl. AoU satisfied by the component) tested by which test case, passed/failed and completeness verdict - (this shall be generated by tools and accompanied by progress charts to be usable also for project steering) - - For external component Assumptions of Use: coverage by platform safety manual or feature/components incl. test case, passed/failed and completeness verdict - - This is split in a list of QM requirements tested and a separate list of tests for ASIL rated requirements. - - List of component requirements (ASIL rated) linked to inspection checklist and verdict (derived from PR export) - -**1.2. on Architecture** - - List of component architecture tags tested by which test case, passed/failed and completeness verdict - (this shall be generated by tools and accompanied by progress charts to be usable also for project steering) - - This is split in a list of QM components tested and a separate list of tests for ASIL rated components. - - List of component architecture tags (ASIL rated) linked to inspection checklist and verdict (derived from PR export) - -**1.3. on Detailed Design** - - List of detailed design tags tested by which test case, passed/failed and completeness verdict - (this shall be generated by tools and accompanied by progress charts to be usable also for project steering) - - This is split in a list of QM components tested and a separate list of tests for ASIL rated components. - - List of detailed design tags (ASIL rated) linked to inspection checklist and verdict (derived from PR export) - - - The lists may also contain other verification methods like "Analysis" - process tbd - -**2. DFA Report** - - List of the performed component DFA, pass/fail with open mitigations - -**3. Safety Analysis Report** - - List of the performed component Safety Analysis, pass/fail with open mitigations - -**4. Unit Verification Coverage** - -**4.1. Structural Coverage** - - List of the units with C0(line) and C1(branch) coverage absolute and percentage - (this shall be generated by tools and accompanied by progress charts to be usable also for project steering) - - List includes a column for the safety rating of each unit. - -**4.2. Static Code Analysis** - - List of the units with compiler warning numbers and coding rule violation numbers - (this shall be generated by tools and accompanied by progress charts to be usable also for project steering) - - List includes a column for the safety rating of each unit. - -**4.3. Manual Code Inspection** - - List of components (ASIL rated) linked to inspection checklist and verdict (derived from PR export) - -**5. Software component qualification verification report** - - Contains the needed verification results if for some components a qualification of pre-developed SW is performed. - -**Note1:** The verification report is valid for the module version tagged together with the report - -**Note2:** All the above lists are generated automatically diff --git a/docs/modules/persistency/index.rst b/docs/modules/persistency/index.rst deleted file mode 100644 index b7e498ec7c6..00000000000 --- a/docs/modules/persistency/index.rst +++ /dev/null @@ -1,32 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2025 Contributors to the Eclipse Foundation - # - # See the NOTICE file(s) distributed with this work for additional - # information regarding copyright ownership. - # - # This program and the accompanying materials are made available under the - # terms of the Apache License Version 2.0 which is available at - # https://www.apache.org/licenses/LICENSE-2.0 - # - # SPDX-License-Identifier: Apache-2.0 - # ******************************************************************************* - -Persistency KVS Module -###################### - -.. toctree:: - :titlesonly: - :maxdepth: 2 - - ./docs/index - -Components -========== - -.. toctree:: - :titlesonly: - :maxdepth: 1 - :glob: - - ./*/docs/index diff --git a/docs/modules/persistency/json/docs/component_classification.rst b/docs/modules/persistency/json/docs/component_classification.rst deleted file mode 100644 index 4350716ae26..00000000000 --- a/docs/modules/persistency/json/docs/component_classification.rst +++ /dev/null @@ -1,182 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2025 Contributors to the Eclipse Foundation - # - # See the NOTICE file(s) distributed with this work for additional - # information regarding copyright ownership. - # - # This program and the accompanying materials are made available under the - # terms of the Apache License Version 2.0 which is available at - # https://www.apache.org/licenses/LICENSE-2.0 - # - # SPDX-License-Identifier: Apache-2.0 - # ******************************************************************************* - -Component Classification -======================== - -.. document:: Persistency Component Classification - :id: doc__persistency_component_classification - :status: valid - :safety: ASIL_B - :security: NO - :realizes: wp__sw_component_class - :tags: feature_persistency - -| Classification of Tiny JSON -| -| `Tiny JSON `_ V.2.5.1 -| -| Additional documentation considered: -| `Documentation for Tiny JSON `_ - - -Step 1: Determine (P): the uncertainty of the Processes applied ---------------------------------------------------------------- - -| Apply the process measures to determine (P). -| The result of a process measure shall have as outcome [HE, PE, NE] -| - HE: High Evidence -| - PE: Partly Evidence but Manageable -| - NE: No Evidence - -.. list-table:: Determine (P) - :header-rows: 1 - - * - Id - - Indicator for applying process - - Result - - Rationale for result - - * - 1 - - Are rules, state-of-the art processes applied for the design, implementation and verification? - - PE - - Rules for Safe Rust applied. - - * - 2 - - Are requirements available? - - PE - - n/a. Tiny JSON is a library to parse/generate JSON format document. So this is the main requirement. - - * - 3 - - Are specifications for functionalities and properties available (architecture)? - - PE - - Yes in the documentation of Tiny JSON. - - * - 4 - - Are design specifications available? - - PE - - n/a - - * - 5 - - Are configuration specification and data available, if applicable? - - PE - - Yes in the documentation of Tiny JSON. - - * - 6 - - Are verification measures including tests and reports available? - - HE - - Stored in github repo within folder tests. - - -| (P=1) shall be selected when none of the determined process measures indicate PE or NE. -| (P=2) shall be selected when at least one of the determined process measures indicate PE or NE, but the gaps evaluated are acceptable, means -| the risk of systematic faults due to these gaps is sufficiently low or manageable by mitigating the gaps. -| (P=3) in all other cases. - -Tiny JSON determined as P=2. - - -Step 2: Determine (C): the uncertainty of finding systematic faults based on the Complexity -------------------------------------------------------------------------------------------- - -| Apply the complexity measures to determine (C). -| The result of a complexity measure shall have as outcome [NH, HM, NM] -| - NH: Not High -| - HM: High but Manageable -| - NM: high and Not Manageable -| -| **Complexity measure for programming language: ** - -.. list-table:: Determine (C) for RUST - :header-rows: 1 - - * - Id - - Indicator for high Complexity - - Complexity measure Tool - - Result - - Number - - * - 1 - - High amount of Lines of Code - - Lines of Code (without comments) (generated code is excluded, e.g. ProtoCmpl) - - NH - - 2367 loc - - * - 2 - - Unsafe code used / total unsafe code - - Count: - * LoUC+N: lines of unsafe code with safety note - * LoUC : lines of unsafe code, no safety note - - NH. Tiny JSON is written in Safe Rust. - - 0 - - * - 3 - - | Test exists / Coverage (Function, Line) - | (maybe better: testability, but how to measure?) - - Existing Tests Coverage - - NH - - - - * - 4 - - High amount of public function interfaces - - Number of public function interfaces - - NH - - - - * - 5 - - High amount of function parameters - - Number of parameters - - NH - - - - -| (C=1) shall be selected when none of the determined complexity measures indicate HM or NM. -| (C=2) shall be selected when at least one of the determined complexity measures indicate HM or NM, but the gaps evaluated are acceptable, means -| the risk of systematic faults due to these gaps is sufficiently low in the context of S-CORE or manageable by mitigating the gaps. -| (C=3) in all other cases. -| - -Tiny JSON is determined as C=1 - - -Step 3: Determine (CLAS_OUT): the classification outcome --------------------------------------------------------- - -| Select CLAS_OUT depending on the determined values of (C) and (P) - -+-------+-----------------------+ -| ( C ) | ( P ) | -+-------+-------+-------+-------+ -| | 1 | 2 | 3 | -+=======+=======+=======+=======+ -| 1 | Q | Q | QR | -+-------+-------+-------+-------+ -| 2 | QR | QR | QR | -+-------+-------+-------+-------+ -| 3 | QR | QR | NQ | -+-------+-------+-------+-------+ - -Tiny JSON is classified as CLAS_OUT=Q - - -Step 4: Document all results and rationale for choosing (P) and (C) and (CLAS_OUT) ----------------------------------------------------------------------------------- -This document - - -Step 5: Based on (CLAS_OUT) select the activities -------------------------------------------------- - -| As soon as the contribution request containing this is in status "Accepted", the module safety plan for the component development is adapted based on the following: -| - Q: Follow the processes for qualification of software components in a safety context. diff --git a/docs/modules/persistency/json/docs/index.rst b/docs/modules/persistency/json/docs/index.rst deleted file mode 100644 index e974fadc78b..00000000000 --- a/docs/modules/persistency/json/docs/index.rst +++ /dev/null @@ -1,41 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2025 Contributors to the Eclipse Foundation - # - # See the NOTICE file(s) distributed with this work for additional - # information regarding copyright ownership. - # - # This program and the accompanying materials are made available under the - # terms of the Apache License Version 2.0 which is available at - # https://www.apache.org/licenses/LICENSE-2.0 - # - # SPDX-License-Identifier: Apache-2.0 - # ******************************************************************************* - -.. toctree:: - :titlesonly: - - component_classification - -.. _component_PersistencyJson: - -Tiny JSON -######### - -.. document:: Persistency JSON - :id: doc__persistencyjson - :status: valid - :safety: ASIL_B - :security: NO - :realizes: wp__cmpt_request - :tags: template - - -Abstract -======== - -| The component is implemented in the module: -| `Tiny JSON `_ V.2.5.1 -| -| Additional documentation considered: -| `Documentation for Tiny JSON `_ diff --git a/docs/modules/persistency/kvs/docs/architecture/index.rst b/docs/modules/persistency/kvs/docs/architecture/index.rst deleted file mode 100644 index e03efc14b08..00000000000 --- a/docs/modules/persistency/kvs/docs/architecture/index.rst +++ /dev/null @@ -1,125 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2025 Contributors to the Eclipse Foundation - # - # See the NOTICE file(s) distributed with this work for additional - # information regarding copyright ownership. - # - # This program and the accompanying materials are made available under the - # terms of the Apache License Version 2.0 which is available at - # https://www.apache.org/licenses/LICENSE-2.0 - # - # SPDX-License-Identifier: Apache-2.0 - # ******************************************************************************* - -.. _component_architecture_PersistencyKvs: - -Architecture -============ - -.. document:: Persistency KVS Module Architecture - :id: doc__persistency_kvs_architecture - :status: valid - :safety: ASIL_B - :security: NO - :realizes: wp__component_arch - -Overview --------- -Brief summary - -Requirements Linked to Component Architecture ---------------------------------------------- - -.. code-block:: none - - .. needtable:: Overview of Component Requirements - :style: table - :columns: title;id - :filter: search("comp_arch_sta__archdes$", "fulfils_back") - :colwidths: 70,30 - -Description ------------ - -General Description - -Design Decisions - -Design Constraints - -Rationale Behind Architecture Decomposition -******************************************* -mandatory: a motivation for the decomposition or reason for not further splitting it into sub components. - -.. note:: Common decisions across components / cross cutting concepts is at the higher level. - -Static Architecture -------------------- - -The components are designed to cover the expectations from the feature architecture -(i.e. if already exists a definition it should be taken over and enriched). - -.. comp_arc_sta:: Component Name (Static View) - :id: comp_arc_sta__persistency__static_view - :security: YES - :safety: ASIL_B - :status: invalid - :implements: - :fulfils: - :includes: comp_arc_sta__persistency__2 - - .. needarch:: - :scale: 50 - :align: center - - {{ draw_component(need(), needs) }} - -Dynamic Architecture --------------------- - -.. comp_arc_dyn:: Dynamic View - :id: comp_arc_dyn__persistency__dynamic_view - :security: YES - :safety: ASIL_B - :status: invalid - :fulfils: - - put here a sequence diagram - - -Interfaces ----------- - -.. code-block:: rst - - .. real_arc_int:: - :id: real_arc_int__<component>__<Title> - :security: <YES|NO> - :safety: <QM|ASIL_B|ASIL_B> - :fulfils: <link to component requirement id> - :language: cpp - -Lower Level Components ----------------------- - -.. comp_arc_sta:: Component Name 2 - :id: comp_arc_sta__persistency__2 - :status: invalid - :safety: ASIL_B - :security: YES - :implements: - - no architecture but detailed design - -.. note:: - Architecture can be split into multiple files. At component level the public interfaces to be used by the user and tester to be shown. - -.. attention:: - The above directives must be updated according to your component architecture. - - - Replace the example content by the real content (according to :need:`gd_guidl__arch_design`) - - Set the status to valid and start the review/merge process - -.. needextend:: docname is not None and "persistency/kvs/docs/architecture" in docname - :+tags: kvs diff --git a/docs/modules/persistency/kvs/docs/index.rst b/docs/modules/persistency/kvs/docs/index.rst deleted file mode 100644 index 6886a3e43c6..00000000000 --- a/docs/modules/persistency/kvs/docs/index.rst +++ /dev/null @@ -1,155 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2025 Contributors to the Eclipse Foundation - # - # See the NOTICE file(s) distributed with this work for additional - # information regarding copyright ownership. - # - # This program and the accompanying materials are made available under the - # terms of the Apache License Version 2.0 which is available at - # https://www.apache.org/licenses/LICENSE-2.0 - # - # SPDX-License-Identifier: Apache-2.0 - # ******************************************************************************* - -.. _component_PersistencyKvs: - -KVS (Key Value Store) -##################### - -.. document:: Persistency KVS - :id: doc__persistencykvs - :status: valid - :safety: ASIL_B - :security: NO - :realizes: wp__cmpt_request - :tags: Persistency KVS - -Abstract -======== - -This feature request describes the key-value storage (KVS) that is needed by -applications to store either temporary or permanent data in an easy way that -conforms to most programming languages that provide a hash, hashmap, dictionary -or similar data structure. Access to the KVS is possible from any support -language through language specific interfaces. - - -Motivation -========== - -The current solutions available mostly don't meet the specific needs of the -S-CORE project like storing specific datatypes without a BASE64 conversation or -having no rollback/replay feature. Also the integration into analysis tools is -simpler when the solution grows with the needs instead having to adapt existing -data structures through wrapppers. Especially in the focus of security it will -be possible to build a system that integrates the layers from scratch and -provide them as API to any language whilst still using Rust as the backend. - -A main USP of the solution will be the integration of a tracing framework that -allows to understand how events also in the context of other events interact. - -A key-value storage is used within many applications to store e.g. -configuration data and is therefore seen crucial for the Eclipse S-CORE -platform. - - -Rationale -========= - -1. | Requirement 1: Multiple key-value storages per application - | Solution: Allow each application to have multiple key-value storages (KVS) to enable data separation and different levels of security. -2. | Requirement 2: Update mechanism for KVS versions - | Solution: Implement an update mechanism to ensure compatibility through updates and rollbacks of different KVS versions. -3. | Requirement 3: Language-agnostic KVS interface - | Solution: Design a flexible interface that allows the KVS to be read and written from multiple programming languages, including C++, Rust, and others. -4. | Requirement 4: Default values for KVS - | Solution: Configure the KVS to store default values for all keys, returning either the default value or an error if the key needs to be written first. -5. | Requirement 5: Simple data representation for KVS - | Solution: Utilize a simple data representation, such as JSON or Cap'n Proto, that supports versioned up- and downgrading and is easily debuggable by developers. -6. | Requirement 6: KVS integrity checking - | Solution: Ensure the KVS maintains a consistent state, providing either the currently stored data or the previous snapshot if data retrieval is not possible. - - -Specification -============= - -[Describe the requirements, architecture of any new component.] or -[Describe the change to requirements, architecture, implementation, documentation of any change request.] - - .. note:: - A CR shall specify the component requirements as part of our platform/project. - Thereby the :need:`Module Lead <rl__committer>` will approve these requirements as part of accepting the CR (e.g. merging the PR with the CR). - - -Backwards Compatibility -======================= - -The API for the specific language tries to represent the language specific -implementation like hashmaps or dictionaries to be mostly backwards compatible -to already existing key-value-storage usage cases. Access without a safe error -handling path, like the array-operator in Rust which can panic, must be -avoided. - - -Security Impact -=============== - -Access to the key-value-storage would allow a malicious user to control the -behaviour of the device, so it must be secured to prevent unauthorized access. -To achieve this, debug access should only be provided when a debug firmware -image is installed. - - -Safety Impact -============= - -The expected ASIL level is ASIL-B. To reach this goal we will apply the S-CORE -development process. Key elements of it are listed in the process descriptions -of safety management and safety analysis. In the safety analysis we will -analyze the impact of the feature. - -:need:`doc__persistency_fmea` - -We use an iterative development process and apply results from the next steps -back to the feature request. For TinyJSON we will perform a software component -classification. - -:need:`doc__persistency_component_classification` - -To ensure the freedom of interference the feature key-value storage should not -be used within different processes. - - -License Impact -============== - - .. note:: - The key-value storage itself uses the Apache-2.0 license. Licenses of - used libraries are need to be checked. - - -Open Issues -=========== - -[Any points that are still being decided/discussed.] - - .. note:: - While a CR is in draft, ideas can come up which warrant further discussion. - Those ideas should be recorded so people know that they are being thought about but do not have a concrete resolution. - This helps make sure all issues required for the CR to be ready for consideration are complete and reduces people duplicating prior discussion. - - - -Footnotes -========= - -[A collection of footnotes cited in the CR, and a place to list non-inline hyperlink targets.] - -.. toctree:: - :hidden: - - requirements/index.rst - architecture/index.rst - safety_analysis/fmea.rst - safety_analysis/dfa.rst diff --git a/docs/modules/persistency/kvs/docs/requirements/index.rst b/docs/modules/persistency/kvs/docs/requirements/index.rst deleted file mode 100644 index 407c6c42545..00000000000 --- a/docs/modules/persistency/kvs/docs/requirements/index.rst +++ /dev/null @@ -1,394 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2025 Contributors to the Eclipse Foundation - # - # See the NOTICE file(s) distributed with this work for additional - # information regarding copyright ownership. - # - # This program and the accompanying materials are made available under the - # terms of the Apache License Version 2.0 which is available at - # https://www.apache.org/licenses/LICENSE-2.0 - # - # SPDX-License-Identifier: Apache-2.0 - # ******************************************************************************* - -Requirements -############ - -.. document:: Persistency KVS Requirements - :id: doc__persistency_kvs_requirements - :status: valid - :safety: ASIL_B - :security: NO - :realizes: wp__requirements_comp - -.. comp_req:: Key Naming - :id: comp_req__persistency__key_naming - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__support_datatype_keys - :status: valid - - The component shall accept keys that consist solely of alphanumeric characters, underscores, or dashes. - -.. comp_req:: Key Encoding - :id: comp_req__persistency__key_encoding - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__support_datatype_keys - :status: valid - - The component shall encode each key as valid UTF-8. - -.. comp_req:: Key Uniqueness - :id: comp_req__persistency__key_uniqueness - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__support_datatype_keys - :status: valid - - The component shall guarantee that each key is unique. - -.. comp_req:: Key Length - :id: comp_req__persistency__key_length - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__support_datatype_keys - :status: valid - - The component shall limit the maximum length of a key to 32 bytes. - -.. comp_req:: Value Data Types - :id: comp_req__persistency__value_data_types - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__support_datatype_value - :status: valid - - The component shall accept only values of the following data types: Number, - String, Null, Array[Value], or Dictionary{Key:Value}. - -.. comp_req:: Value Serialization - :id: comp_req__persistency__value_serialize - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__support_datatype_value - :status: valid - - The component shall serialize and deserialize all values to and from JSON. - -.. comp_req:: Value Length - :id: comp_req__persistency__value_length - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__support_datatype_value - :status: valid - - The component shall limit the maximum length of a value to 1024 bytes. - -.. comp_req:: Value Default - :id: comp_req__persistency__value_default - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__support_datatype_value,feat_req__persistency__default_values - :status: valid - - The component shall support unset values and shall provide a default value - when a value is unset. - -.. comp_req:: Value Reset - :id: comp_req__persistency__value_reset - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__support_datatype_value,feat_req__persistency__default_values - :status: valid - - The component shall allow resetting a value to its default if a default is - defined. - -.. comp_req:: Default Value Datatypes - :id: comp_req__persistency__default_value_types - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__default_values,feat_req__persistency__default_value_get,feat_req__persistency__reset_to_default,feat_req__persistency__default_value_file - :status: valid - - The component shall accept default values of only permitted value data - types. - -.. comp_req:: Default Value Query - :id: comp_req__persistency__default_value_query - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__default_values,feat_req__persistency__default_value_get,feat_req__persistency__reset_to_default,feat_req__persistency__default_value_file - :status: valid - - The component shall provide an API to retrieve default values. - -.. comp_req:: Default Value Config - :id: comp_req__persistency__default_value_config - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__default_values,feat_req__persistency__default_value_get,feat_req__persistency__reset_to_default,feat_req__persistency__default_value_file - :status: valid - - The component shall allow configuration of default values in code or in a - separate configuration file. - -.. comp_req:: Default Value Checksum - :id: comp_req__persistency__default_value_checksum - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__default_values,feat_req__persistency__default_value_get,feat_req__persistency__reset_to_default,feat_req__persistency__default_value_file - :status: valid - - The component shall secure the configuration file for default values with an - associated checksum file when default values are stored in a file. - -.. comp_req:: Constraint Configuration - :id: comp_req__persistency__constraints - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__cfg - :status: valid - - The component shall allow configuration of KVS constraints at compile-time - using source code constants or at runtime using a configuration file. - -.. comp_req:: Concurrency - :id: comp_req__persistency__concurrency - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__concurrency - :status: valid - - The component shall implement thread-safe mechanisms to enable concurrent - access to data without data races. - -.. comp_req:: Multi-Instance - :id: comp_req__persistency__multi_instance - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__multiple_kvs - :status: valid - - The component shall manage all runtime variables within an instance to - enable creation and use of multiple KVS instances concurrently within a - single software architecture element. - -.. comp_req:: Persistent Data Storage Components - :id: comp_req__persistency__persist_data_store_com - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__integrity_check,feat_req__persistency__store_data - :status: valid - - The component shall use the file API and the JSON data format to persist data. - -.. comp_req:: Persistent Data Storage Checksum Write - :id: comp_req__persistency__pers_data_csum_write - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__integrity_check,feat_req__persistency__store_data - :status: valid - - The component shall generate a checksum for each data file and shall store - it alongside the data. - -.. comp_req:: Persistent Data Storage Checksum Verify - :id: comp_req__persistency__pers_data_csum_verify - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__integrity_check,feat_req__persistency__load_data - :status: valid - - The component shall verify the checksum when loading data. - -.. comp_req:: Persistent Data Storage Backend - :id: comp_req__persistency__pers_data_store_bend - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__integrity_check,feat_req__persistency__store_data - :status: valid - - The component shall use the file API to persist data. - -.. comp_req:: Persistent Data Storage Format - :id: comp_req__persistency__pers_data_store_fmt - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__integrity_check,feat_req__persistency__store_data - :status: valid - - The component shall use the JSON data format to persist data. - -.. comp_req:: Persistent Data Versioning - :id: comp_req__persistency__pers_data_version - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__versioning,feat_req__persistency__update_mechanism - :status: valid - - The component shall not provide built-in versioning. - -.. comp_req:: Persistent Data Schema - :id: comp_req__persistency__pers_data_schema - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__versioning,feat_req__persistency__update_mechanism - :status: valid - - The component shall use a JSON file storage format that enables the - application to implement versioning, including upgrade and downgrade paths, - as needed. - -.. comp_req:: Snapshot Creation - :id: comp_req__persistency__snapshot_creation - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__snapshot_create - :status: valid - - The component shall create a snapshot each time data is stored. - -.. comp_req:: Snapshot Maximum Number - :id: comp_req__persistency__snapshot_max_num - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__cfg - :status: valid - - The component shall maintain a configurable maximum number of snapshots. - -.. comp_req:: Snapshot IDs - :id: comp_req__persistency__snapshot_id - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__snapshot_create - :status: valid - - The component shall assign the ID 1 to the newest snapshot and shall increment the IDs of older snapshots accordingly. - -.. comp_req:: Snapshot Rotation - :id: comp_req__persistency__snapshot_rotate - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__snapshot_remove, feat_req__persistency__snapshot_restore - :status: valid - - The component shall rotate and delete the oldest snapshot when the maximum number is reached. - -.. comp_req:: Snapshot Restore - :id: comp_req__persistency__snapshot_restore - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__snapshot_restore - :status: valid - - The component shall allow restoration of a snapshot by its ID. - -.. comp_req:: Snapshot Deletion - :id: comp_req__persistency__snapshot_delete - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__snapshot_remove - :status: valid - - The component shall allow deletion of individual snapshots. - -.. comp_req:: Engineering Mode - :id: comp_req__persistency__eng_mode - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__dev_mode - :status: valid - - The component shall provide an engineering mode that can be enabled during - build time to display debugging and internal information. - -.. comp_req:: Field Mode - :id: comp_req__persistency__field_mode - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__prod_mode - :status: valid - - The component shall provide a field mode that can be enabled during build - time to restrict access as much as possible. - -.. comp_req:: Async API - :id: comp_req__persistency__async_api - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__async_api - :status: valid - - The component shall provide an asynchronous API in addition to the standard API. - -.. comp_req:: Permission Control - :id: comp_req__persistency__permission_control - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__access_control - :status: valid - - The component shall rely on the underlying filesystem for access and - permission management and shall not implement its own access or permission - controls. - -.. comp_req:: Permission Error Handling - :id: comp_req__persistency__permission_err_handle - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__access_control - :status: valid - - The component shall report any access or permission errors encountered at - the filesystem level to the application. - -.. comp_req:: Callback Support - :id: comp_req__persistency__callback_support - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__persistency__async_api, feat_req__persistency__async_completion - :status: valid - - The component shall provide an API for registering callbacks that are triggered by data change events. - -.. needextend:: docname is not None and "persistency/kvs/docs/requirements" in docname - :+tags: kvs diff --git a/docs/modules/persistency/kvs/docs/safety_analysis/dfa.rst b/docs/modules/persistency/kvs/docs/safety_analysis/dfa.rst deleted file mode 100644 index 491a48c43d3..00000000000 --- a/docs/modules/persistency/kvs/docs/safety_analysis/dfa.rst +++ /dev/null @@ -1,27 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2025 Contributors to the Eclipse Foundation - # - # See the NOTICE file(s) distributed with this work for additional - # information regarding copyright ownership. - # - # This program and the accompanying materials are made available under the - # terms of the Apache License Version 2.0 which is available at - # https://www.apache.org/licenses/LICENSE-2.0 - # - # SPDX-License-Identifier: Apache-2.0 - # ******************************************************************************* - - -Dependent Failure Analysis -========================== - -.. document:: KVS DFA - :id: doc__persistency_kvs_dfa - :status: valid - :safety: ASIL_B - :security: NO - :realizes: wp__sw_component_dfa - :tags: Persistency KVS - -Because there is no sub-components in KVS, the results of the FMEA are the same as on feature level :need:`doc__persistency_dfa`. diff --git a/docs/modules/persistency/kvs/docs/safety_analysis/fmea.rst b/docs/modules/persistency/kvs/docs/safety_analysis/fmea.rst deleted file mode 100644 index 7cf42304cd2..00000000000 --- a/docs/modules/persistency/kvs/docs/safety_analysis/fmea.rst +++ /dev/null @@ -1,27 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2025 Contributors to the Eclipse Foundation - # - # See the NOTICE file(s) distributed with this work for additional - # information regarding copyright ownership. - # - # This program and the accompanying materials are made available under the - # terms of the Apache License Version 2.0 which is available at - # https://www.apache.org/licenses/LICENSE-2.0 - # - # SPDX-License-Identifier: Apache-2.0 - # ******************************************************************************* - - -Safety Analysis: FMEA -====================== - -.. document:: KVS FMEA - :id: doc__persistency_kvs_fmea - :status: valid - :safety: ASIL_B - :security: NO - :realizes: wp__sw_component_fmea - :tags: Persistency KVS - -Because there is no sub-components in KVS, the results of the FMEA are the same as on feature level :need:`doc__persistency_fmea`. From 1f2fa47add1c86b1dee9e960e7b093f32eaa9e0a Mon Sep 17 00:00:00 2001 From: aschemmel-git <alexander.schemmel@bmw.de> Date: Fri, 9 Jan 2026 15:42:50 +0100 Subject: [PATCH 054/128] Bug: Remove duplicated text in platform safety plan --- docs/platform_management_plan/safety_management.rst | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/docs/platform_management_plan/safety_management.rst b/docs/platform_management_plan/safety_management.rst index bdf7d955203..d4a4fdd190f 100644 --- a/docs/platform_management_plan/safety_management.rst +++ b/docs/platform_management_plan/safety_management.rst @@ -92,18 +92,11 @@ The following ISO 26262 defined safety work products are not relevant for the S Note that stakeholder requirements (:need:`std_wp__iso26262__system_651`) are in scope of the project, to be able to address System and HW related failures which are typically mitigated by SW (e.g. end-to-end protection for ECU external communication). However, these are considered "Assumed Technical Safety Requirements" of the SW platform SEooC and do not require testing by the SEooC supplier. - Thus, system-level testing is out of scope. S-CORE will implement platform tests of stakeholder requirements for demonstration purposes, + Thus, system-level testing is out of scope. S-CORE will implement Platform Integration Tests of stakeholder requirements for demonstration purposes, but these are not intended to provide complete coverage of the stakeholder requirements. There will be SW integration tests of feature requirements as specified in ISO 26262 part 6-10. These tests may be reused by users on their HW platform to address Technical Safety Requirements for the SW platform. Whether these are sufficient to cover the TSRs must be analyzed and decided by the user. - to be able to cover System and HW related failures which are usually covered by SW (e.g. end to end protection for ECU external communication). - But those are the "Assumed Technical Safety Requirements" of the SW platform SEooC and do not need to be tested by SEooC supplier. - I.e. the system testing is out of scope. Note that S-CORE will implement Platform Integration Test of stakeholder requirements for demonstration, - but these are not intended to be completely covering the stakeholder requirements. - There will be SW integration tests of feature requirements, as required by ISO 26262 part 6-10. - These may be reused by the users on their HW platform to cover Technical Safety Requirements towards the SW platform. - But if these are sufficiently also covering the TSRs must be analyzed and decided by the user. Therefore and as S-CORE only delivers source code, :need:`std_wp__iso26262__software_1052` is tailored out. From 984c3d77de759b97fec1bfead74fae9d7161e7eb Mon Sep 17 00:00:00 2001 From: Philipp Ahmann <2428012+pahmann@users.noreply.github.com> Date: Mon, 12 Jan 2026 10:24:15 +0100 Subject: [PATCH 055/128] Improve argument about test selection for a feature (#2399) As part of the process audit on part 6 clause 1041 an argumentation which test levels are selected for a feature shall be explained. Additionally, the PR adds quality goals which were missing for these tests. Signed-off-by: Philipp Ahmann <Philipp.Ahmann@de.bosch.com> --- .../software_verification.rst | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/docs/platform_management_plan/software_verification.rst b/docs/platform_management_plan/software_verification.rst index 3fc97553487..cbf14b083fe 100644 --- a/docs/platform_management_plan/software_verification.rst +++ b/docs/platform_management_plan/software_verification.rst @@ -103,6 +103,17 @@ The following types of integrations are applicable: #. **Changes** get integrated based on the :need:`wf__change_create_cr` and will follow the :need:`doc__pull_request_guideline` as any other artifact. +The test methods and techniques shall be selected based on the characteristics and specified behavior +of the software element under test. This shall ensure proper testing from unit level to feature integration level. +Specific recommendations for each test level are provided in the following sections of this verification plan. + +The following examples serve as illustration and inspiration for test selection: +Resource Usage Evaluation is selected when requirements address resource management or when data +corruption may occur. Interface Testing is applied when requirements target external API behavior. +Boundary Value Analysis is used for buffers where overflow is deemed possible or when requirements specify +input ranges and boundaries covering incorrect input values. This list is not complete, and additional tests +may be selected based on the specific requirements of each software element. + Levels of integration and verification -------------------------------------- @@ -304,9 +315,17 @@ to be reached with every contribution. - 100% - 100% * - 7 - - Relative amount of failed tests - - 0% - - 0% + - Relative amount of passed tests + - 100% + - 100% + * - 8 + - Compliance with rules for static code analysis + - only minor violation based on tool rating + - 100% + * - 9 + - Freedom from compiler warnings & errors + - 100% + - 100% Further quality goals are defined in section :doc:`quality_management`. From 736350464d7e294f75ae02882af59efc3e65c66f Mon Sep 17 00:00:00 2001 From: sachinkumarsingh <SachinKumar.Singh@bti.bmwgroup.com> Date: Tue, 13 Jan 2026 12:17:04 +0530 Subject: [PATCH 056/128] Add component description for FutureCPP library --- docs/modules/baselibs/index.rst | 1 + .../language/futurecpp/docs/index.rst | 50 +++++++++++++++++++ docs/modules/baselibs/language/index.rst | 21 ++++++++ 3 files changed, 72 insertions(+) create mode 100644 docs/modules/baselibs/language/futurecpp/docs/index.rst create mode 100644 docs/modules/baselibs/language/index.rst diff --git a/docs/modules/baselibs/index.rst b/docs/modules/baselibs/index.rst index 61741f356af..c9de56d580f 100644 --- a/docs/modules/baselibs/index.rst +++ b/docs/modules/baselibs/index.rst @@ -20,6 +20,7 @@ Baselibs Module :maxdepth: 2 ./docs/index + language/index Components ========== diff --git a/docs/modules/baselibs/language/futurecpp/docs/index.rst b/docs/modules/baselibs/language/futurecpp/docs/index.rst new file mode 100644 index 00000000000..881d015bafb --- /dev/null +++ b/docs/modules/baselibs/language/futurecpp/docs/index.rst @@ -0,0 +1,50 @@ +.. + # ******************************************************************************* + # Copyright (c) 2025 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + +futurecpp +######### + +.. document:: FutureCPP Library + :id: doc__futurecpp + :status: draft + :safety: ASIL_B + :tags: baselibs_futurecpp + :realizes: wp__cmpt_request + :security: YES + +.. toctree:: + :hidden: + +Abstract +======== + +FutureCPP extends the C++ Standard Library with features from newer standards up to C++26 and selected proposals, offering an STL-like API. + +Motivation and Rationale +======================== + +Adopting the latest C++ standards is often challenging in safety-critical environments, which can delay access to modern language and library features. +FutureCPP addresses this by providing forward-compatible extensions that mirror upcoming Standard Library capabilities, allowing developers to benefit +from modern APIs without waiting for full compiler support. This approach ensures smoother transitions to future standards. + +Following components are provided by FutureCPP: + +- **Containers library**: Provides data structures such as fixed-size circular buffers, multi-dimensional array views, and containers for optional or variant types. +- **Functional library**: Provides APIs for function wrappers and error handling. +- **Numeric and Math library**: Provides mathematical utilities such as angle conversions, safe numeric casts, interpolation, and angle wrapping. +- **Memory management library**: Provides polymorphic allocators and related utilities which allow flexible memory allocation. +- **Meta Programming**: Provides compile-time utilities for generic programming, enabling type-safe abstractions and reducing code duplication. +- **Threading Support**: Provides API for thread management. +- **Utilities library**: Provides APIs for type safe conversion. +- **String Utilities**: Provides APIs for managing string related functionality. diff --git a/docs/modules/baselibs/language/index.rst b/docs/modules/baselibs/language/index.rst new file mode 100644 index 00000000000..3dd570ccb2e --- /dev/null +++ b/docs/modules/baselibs/language/index.rst @@ -0,0 +1,21 @@ +.. + # ******************************************************************************* + # Copyright (c) 2025 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + +language +######## + +.. toctree:: + :hidden: + + futurecpp/docs/index.rst From f040b9091b245aad2ca7feeeb5fdba236238eb10 Mon Sep 17 00:00:00 2001 From: Priyanka Patil <Priyanka.Patil@bti.bmwgroup.com> Date: Tue, 13 Jan 2026 10:57:12 +0530 Subject: [PATCH 057/128] Add minimal Component Architecture for Utils library --- .../baselibs/docs/architecture/index.rst | 4 +- docs/modules/baselibs/docs/index.rst | 2 +- .../utils/docs/architecture/index.rst | 87 +++++++++++++++++++ docs/modules/baselibs/utils/docs/index.rst | 1 + 4 files changed, 91 insertions(+), 3 deletions(-) create mode 100644 docs/modules/baselibs/utils/docs/architecture/index.rst diff --git a/docs/features/baselibs/docs/architecture/index.rst b/docs/features/baselibs/docs/architecture/index.rst index 8050c42da72..c3c941beefb 100644 --- a/docs/features/baselibs/docs/architecture/index.rst +++ b/docs/features/baselibs/docs/architecture/index.rst @@ -90,7 +90,7 @@ Static Architecture :safety: ASIL_B :status: valid :fulfils: feat_req__baselibs__core_utilities - :includes: logic_arc_int__baselibs__json, logic_arc_int__baselibs__memory_shared, logic_arc_int__baselibs__message_passing, logic_arc_int__baselibs__result, logic_arc_int__baselibs__bit_manipulation, logic_arc_int__baselibs__bit_mask_operator, logic_arc_int__baselibs__dynamic_array, logic_arc_int__baselibs__intrusive_list, logic_arc_int__baselibs__filesystem + :includes: logic_arc_int__baselibs__json, logic_arc_int__baselibs__memory_shared, logic_arc_int__baselibs__message_passing, logic_arc_int__baselibs__result, logic_arc_int__baselibs__bit_manipulation, logic_arc_int__baselibs__bit_mask_operator, logic_arc_int__baselibs__dynamic_array, logic_arc_int__baselibs__intrusive_list, logic_arc_int__baselibs__filesystem, logic_arc_int__baselibs__utils_base64, logic_arc_int__baselibs__utils_scoped_op .. needarch:: :scale: 50 @@ -107,4 +107,4 @@ The Baselibs feature exposes the following logical interfaces: :style: table :columns: title;id;status :sort: title - :filter: id in ['logic_arc_int__baselibs__json', 'logic_arc_int__baselibs__memory_shared', 'logic_arc_int__baselibs__message_passing' ,'logic_arc_int__baselibs__result', 'logic_arc_int__baselibs__bit_manipulation', 'logic_arc_int__baselibs__bit_mask_operator', 'logic_arc_int__baselibs__dynamic_array', 'logic_arc_int__baselibs__intrusive_list', 'logic_arc_int__baselibs__filesystem'] + :filter: id in ['logic_arc_int__baselibs__json', 'logic_arc_int__baselibs__memory_shared', 'logic_arc_int__baselibs__message_passing' ,'logic_arc_int__baselibs__result', 'logic_arc_int__baselibs__bit_manipulation', 'logic_arc_int__baselibs__bit_mask_operator', 'logic_arc_int__baselibs__dynamic_array', 'logic_arc_int__baselibs__intrusive_list', 'logic_arc_int__baselibs__filesystem', 'logic_arc_int__baselibs__utils_base64', 'logic_arc_int__baselibs__utils_scoped_op'] diff --git a/docs/modules/baselibs/docs/index.rst b/docs/modules/baselibs/docs/index.rst index d0c2fd1e512..84dbbd6e416 100644 --- a/docs/modules/baselibs/docs/index.rst +++ b/docs/modules/baselibs/docs/index.rst @@ -14,7 +14,7 @@ .. mod_view_sta:: Baselibs :id: mod_view_sta__baselibs__baselibs - :includes: comp_arc_sta__baselibs__json, comp_arc_sta__baselibs__message_passing, comp_arc_sta__baselibs__memory_shared, comp_arc_sta__baselibs__result, comp_arc_sta__baselibs__bit_manipulation, comp_arc_sta__baselibs__containers, comp_arc_sta__baselibs__filesystem + :includes: comp_arc_sta__baselibs__json, comp_arc_sta__baselibs__message_passing, comp_arc_sta__baselibs__memory_shared, comp_arc_sta__baselibs__result, comp_arc_sta__baselibs__bit_manipulation, comp_arc_sta__baselibs__containers, comp_arc_sta__baselibs__filesystem, comp_arc_sta__baselibs__utils .. needarch:: :scale: 50 diff --git a/docs/modules/baselibs/utils/docs/architecture/index.rst b/docs/modules/baselibs/utils/docs/architecture/index.rst new file mode 100644 index 00000000000..986544ab444 --- /dev/null +++ b/docs/modules/baselibs/utils/docs/architecture/index.rst @@ -0,0 +1,87 @@ +.. + # ******************************************************************************* + # Copyright (c) 2025 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + +Utils Component Architecture +********************************** + +.. document:: Utils Architecture + :id: doc__utils_architecture + :status: valid + :security: YES + :safety: ASIL_B + :realizes: wp__component_arch + +Overview/Description +-------------------- +see :need:`doc__utils` + +Static Architecture +------------------- + +.. comp_arc_sta:: Utils + :id: comp_arc_sta__baselibs__utils + :security: YES + :safety: ASIL_B + :status: valid + :tags: baselibs_utils + :implements: logic_arc_int__baselibs__utils_base64,logic_arc_int__baselibs__utils_scoped_op + + .. needarch:: + :scale: 50 + :align: center + + {{ draw_component(need(), needs) }} + +Interfaces +---------- + +.. logic_arc_int:: Base64 + :id: logic_arc_int__baselibs__utils_base64 + :security: YES + :safety: ASIL_B + :status: valid + +.. logic_arc_int_op:: Encode + :id: logic_arc_int_op__utils__base64_encode + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__utils_base64 + +.. logic_arc_int_op:: Decode + :id: logic_arc_int_op__utils__base64_decode + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__utils_base64 + +.. logic_arc_int:: Scoped Operation + :id: logic_arc_int__baselibs__utils_scoped_op + :security: YES + :safety: ASIL_B + :status: valid + +.. logic_arc_int_op:: Constructor + :id: logic_arc_int_op__utils__scoped_op_construct + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__utils_scoped_op + +.. logic_arc_int_op:: Destructor + :id: logic_arc_int_op__utils__scoped_op_destruct + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__utils_scoped_op diff --git a/docs/modules/baselibs/utils/docs/index.rst b/docs/modules/baselibs/utils/docs/index.rst index 29cc4349912..95cfad09cb7 100644 --- a/docs/modules/baselibs/utils/docs/index.rst +++ b/docs/modules/baselibs/utils/docs/index.rst @@ -27,6 +27,7 @@ utils :hidden: requirements/index.rst + architecture/index.rst Abstract ======== From 50cd1985056655d27ce469682d2bb081695f47e9 Mon Sep 17 00:00:00 2001 From: rahulthakre <rahul.thakre@bti.bmwgroup.com> Date: Tue, 13 Jan 2026 12:28:41 +0530 Subject: [PATCH 058/128] lib/utils: remove pimple_Ptr from utils docs --- docs/modules/baselibs/utils/docs/index.rst | 1 - .../modules/baselibs/utils/docs/requirements/index.rst | 10 ---------- 2 files changed, 11 deletions(-) diff --git a/docs/modules/baselibs/utils/docs/index.rst b/docs/modules/baselibs/utils/docs/index.rst index 95cfad09cb7..3cc37f124d1 100644 --- a/docs/modules/baselibs/utils/docs/index.rst +++ b/docs/modules/baselibs/utils/docs/index.rst @@ -53,7 +53,6 @@ General considerations The Utils library should provide type-safe utility functions and efficient algorithms: * :need:`comp_req__utils__base64` -* :need:`comp_req__utils__pimpl_ptr` * :need:`comp_req__utils__scoped_operation` * :need:`comp_req__utils__deterministic_behavior` diff --git a/docs/modules/baselibs/utils/docs/requirements/index.rst b/docs/modules/baselibs/utils/docs/requirements/index.rst index dde7e4704e5..a1fc0e83efb 100644 --- a/docs/modules/baselibs/utils/docs/requirements/index.rst +++ b/docs/modules/baselibs/utils/docs/requirements/index.rst @@ -36,16 +36,6 @@ Functional Requirements The Utils component shall provide functions for encoding data to Base64 format and decoding Base64 data back to its original form. -.. comp_req:: PIMPL Pointer Implementation - :id: comp_req__utils__pimpl_ptr - :reqtype: Functional - :security: NO - :safety: ASIL_B - :satisfies: feat_req__baselibs__consistent_apis, feat_req__baselibs__safety - :status: valid - - The Utils component shall provide a stack-based Pointer-to-Implementation Idiom implementation that avoids dynamic memory allocation by using fixed-size, aligned storage buffers. - .. comp_req:: Scoped Operation Management :id: comp_req__utils__scoped_operation :reqtype: Functional From bd00fda559c04cd9531d09df6223326aa03c9fc4 Mon Sep 17 00:00:00 2001 From: sachinkumarsingh <SachinKumar.Singh@bti.bmwgroup.com> Date: Tue, 13 Jan 2026 13:46:43 +0530 Subject: [PATCH 059/128] Add component description for concurrency library --- .../baselibs/concurrency/docs/index.rst | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 docs/modules/baselibs/concurrency/docs/index.rst diff --git a/docs/modules/baselibs/concurrency/docs/index.rst b/docs/modules/baselibs/concurrency/docs/index.rst new file mode 100644 index 00000000000..4f9cfef732f --- /dev/null +++ b/docs/modules/baselibs/concurrency/docs/index.rst @@ -0,0 +1,38 @@ +.. + # ******************************************************************************* + # Copyright (c) 2025 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + +concurrency +########### + +.. document:: Concurrency Library + :id: doc__concurrency + :status: draft + :safety: ASIL_B + :tags: baselibs_concurrency + :realizes: wp__cmpt_request + :security: YES + +.. toctree:: + :hidden: + +Abstract +======== + +This component request proposes a concurrency library that provides abstractions for managing concurrent tasks, threads, and synchronization mechanisms. + +Motivation and Rationale +======================== + +The concurrency library shall provide safe and efficient way to handle concurrent operations. It aims to simplify the development of multi-threaded applications by offering high-level abstractions for task management, synchronization, and inter-thread communication. +The library is designed to improve code readability, maintainability, and portability across different platforms. From 966e741cece2ba94060c0eb6360237a43a7e78b2 Mon Sep 17 00:00:00 2001 From: pandaedo <volker.haeussler@qorix.ai> Date: Mon, 15 Dec 2025 10:13:17 +0100 Subject: [PATCH 060/128] update safety documents --- .../architecture/chklst_arc_inspection.rst | 81 +++++++++++------- docs/features/persistency/index.rst | 1 + .../requirements/chklst_req_inspection.rst | 28 +++++++ .../safety_analysis/safety_analysis_fdr.rst | 83 +++++++++++++++++++ .../persistency/safety_planning/index.rst | 29 ++++++- 5 files changed, 190 insertions(+), 32 deletions(-) create mode 100644 docs/features/persistency/safety_analysis/safety_analysis_fdr.rst diff --git a/docs/features/persistency/architecture/chklst_arc_inspection.rst b/docs/features/persistency/architecture/chklst_arc_inspection.rst index b9123302488..e52a0e13320 100644 --- a/docs/features/persistency/architecture/chklst_arc_inspection.rst +++ b/docs/features/persistency/architecture/chklst_arc_inspection.rst @@ -37,7 +37,7 @@ communication and documentation of architectural decisions to stakeholders. Checklist --------- -.. list-table:: Architecture Design Review Checklist +.. list-table:: Feature Architecture Design Review Checklist Persistency :header-rows: 1 * - Review Id @@ -49,48 +49,49 @@ Checklist - Issue link * - ARC_01_01 - Is the traceability from software architectural elements to requirements, and other level architectural - elements (e.g. component to interface) established according to the "Relations between the architectural elements" as described in :need:`doc_concept__arch_process`? + elements (e.g. component to interface) established according to the defined :need:`Relations between the architectural elements <doc_concept__arch_process>`? - automated - - Trace should be checked automatically by tool support in the future. It will be removed from the checklist once the requirement (:need:`Correlations of the architectural building blocks <gd_req__arch_build_blocks_corr>`) is implemented. Refer to `Tool Requirements <https://eclipse-score.github.io/docs-as-code/main/internals/requirements/requirements.html>`_ for the current status. - - - - - - + - Trace should be checked by Sphinx. Will be removed from checklist once requirement is implemented. + - No + - Traceability not complete, template not followed + - `Issue for Findings <https://github.com/eclipse-score/score/issues/1992>`_ * - ARC_01_02 - If the architectural element is related to any supplier manuals (incl. safety and security) are the relevant parts covered? - manual - If the architecture makes use of supplied elements, their manuals (like safety) have to be considered (i.e. its provided functionality matches the expectation and assumptions are fulfilled). Note that in case of safety component this means that assumed Technical Safety Requirements and AoUs of the safety manual are covered. - - - - + - Yes + - Not applicable - * - ARC_01_03 - Is the architectural element traceable to the lower level artifacts as defined by the workproduct traceability? - automated - - Will be removed from checklist once the requirement (:need:`Correlations of the architectural building blocks <gd_req__arch_build_blocks_corr>`) is implemented by automated tool check. See `Tool Requirements <https://eclipse-score.github.io/docs-as-code/main/internals/requirements/requirements.html>`_. - - - - - - + - Will be removed from checklist once requirement is implemented by automated tool check. + Details of possible linking can be depicted from `Traceability Concept <https://eclipse-score.github.io/process_description/main/general_concepts/score_traceability_concept.html#general-concepts-traceability>`_ + - No + - Traceability not complete, template not followed + - `Issue for Findings <https://github.com/eclipse-score/score/issues/1992>`_ * - ARC_02_01 - Is the software architecture design compliant with the (overall) feature architecture? - manual - On component level check against the feature architecture, on feature level check other features with common components used. - - - - - - + - No + - There is no component architecture available for persistency + - `Issue for Findings <https://github.com/eclipse-score/score/issues/1992>`_ * - ARC_02_02 - Is appropriate and comprehensible operation/interface naming present in the architectural design? - manual - Check :need:`gd_guidl__arch_design` - - - - - - + - No + - Are these interfaces names, any operations? Please update template. + - `Issue for Findings <https://github.com/eclipse-score/score/issues/1992>`_ * - ARC_02_03 - Are correctness of data flow and control flow within the architectural elements considered? - manual - E.g. examine definitions, transformations, integrity, and interaction of data; check error handling, data exchange between elements, correct response to inputs and documented decision making. Note: consistency is ensured by the process/tooling, by defining each interface only once. - - + - Yes - - * - ARC_02_04 @@ -100,7 +101,7 @@ Checklist interfaces for inputs, outputs, error codes documented; is loose coupling considered and only limited exposure; can unit or integration test be written against the interface; data amount transferred; no sensitive data exposure; - - + - Yes - - * - ARC_02_05 @@ -108,32 +109,32 @@ Checklist - manual - If there are hard requirements on the timing a programming time estimation should be performed and also deadline supervision considered. - - - - - - + - No + - No information found, but required + - `Issue for Findings <https://github.com/eclipse-score/score/issues/1992>`_ * - ARC_02_06 - Is the documentation of the software architectural element, including textual and graphical descriptions (e.g., UML diagrams), comprehensible and complete? - manual - Use of semi-formal notation is expected for architectural elements with an allocated ASIL level. Is the architecture template correctly filled? - - + - Yes - - * - ARC_03_01 - Is the architectural element modular and encapsulated? - manual - Check e.g. that only minimal interfaces are used. Design should be object oriented. Interfaces and interactions are clearly defined. Usage of access types (private, protected) properly set. Limited global variables. - - - - + - No + - Yes - * - ARC_03_02 - Is the suitability of the software architecture for future modifications and maintainability considered? - manual - Check for e.g. loose coupling, separation of concerns, high cohesion, versioning strategy for interfaces, decision records, use of established design patterns. - - - - + - Yes + - Not applicable on feature architecture level - * - ARC_03_03 - Are simplicity and avoidance of unnecessary complexity present in the software architecture? @@ -143,13 +144,33 @@ Checklist function parameters, global variables, complex types, limited comprehensibility. Note: If the "number" above exceeds "3" a design rationale is mandatory (for all types) - - - - + - Yes + - Not applicable on feature architecture level - * - ARC_03_04 - Is the software architecture design following best practices and design principles? - manual - Refer to architectural guidelines and recommendations within the project documentation. + - Yes + - + - + * - ARC_04_01 + - If software partitioning (different operating system processes) is used to implement freedom from interference between the processes with different rating (QM/ASIL), is effectiveness evidence generated during integration and verification tests? + + Note: see ISO 26262-6, 7.4.9 and Annex D for partitioning + - manual + - + a) the usage of shared resources (cpu time, shared memory, ...) are checked in a way that freedom from interference between the processes is ensured, + b) check if the operating system supports freedom from interference between the processes + - + - + - + * - ARC_04_02 + - Is an upper estimation of the required resources (RAM, ROM, non volatile memory, communication) available and documented? + + Note: see ISO 26262-6, 7.4.11 + - manual + - - - - diff --git a/docs/features/persistency/index.rst b/docs/features/persistency/index.rst index 86fdf7b5a1d..e1dde692ccc 100644 --- a/docs/features/persistency/index.rst +++ b/docs/features/persistency/index.rst @@ -30,6 +30,7 @@ Persistency (v0.5 beta) requirements/chklst_req_inspection.rst safety_analysis/fmea.rst safety_analysis/dfa.rst + safety_analysis/safety_analysis_fdr.rst safety_planning/index.rst diff --git a/docs/features/persistency/requirements/chklst_req_inspection.rst b/docs/features/persistency/requirements/chklst_req_inspection.rst index 33409b1dea2..3500eac586e 100644 --- a/docs/features/persistency/requirements/chklst_req_inspection.rst +++ b/docs/features/persistency/requirements/chklst_req_inspection.rst @@ -123,3 +123,31 @@ The purpose of this requirement inspection checklist is to collect the topics to - Yes - No remarks - https://github.com/eclipse-score/score/issues/960 + * - REQ_09_01 + - Do the feature requirements defining a safety mechanism contain the error reaction leading to a safe state? + - Alternatively to the safe state there could also be "repair" mechanisms. Also do not forget to consider REQ_05_01 for these. + - + - + - + +The following requirements in "valid" state and with "inspected" tag set are in the scope of this inspection: + +.. needtable:: + :filter: "feature_name" in docname and "requirements" in docname and docname is not None and status == "valid" + :style: table + :types: feat_req + :tags: persistency + :columns: id;status;tags + :colwidths: 25,25,25 + :sort: title + +And also the following AoUs in "valid" state and with "inspected" tag set (for these please answer the questions above as if the AoUs are requirements, except questions REQ_03_01 and REQ_03_02): + +.. needtable:: + :filter: "feature_name" in docname and "requirements" in docname and docname is not None and status == "valid" + :style: table + :types: aou_req + :tags: persistency + :columns: id;status;tags + :colwidths: 25,25,25 + :sort: title diff --git a/docs/features/persistency/safety_analysis/safety_analysis_fdr.rst b/docs/features/persistency/safety_analysis/safety_analysis_fdr.rst new file mode 100644 index 00000000000..b2ac40fd66f --- /dev/null +++ b/docs/features/persistency/safety_analysis/safety_analysis_fdr.rst @@ -0,0 +1,83 @@ +.. + # ******************************************************************************* + # Copyright (c) 2025 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + + +Safety Analysis Checklist +========================= + +.. document:: Persistency Safety Analysis Checklist + :id: doc__persistency_safety_analysis_fdr + :status: valid + :safety: ASIL_B + :security: YES + :realizes: wp__fdr_reports + :tags: persistency + +**Purpose** +The purpose of this Safety Analysis (DFA and FMEA) checklist template is to collect the topics to be checked during verification of the Safety Analysis. + +**Checklist** + +.. list-table:: Safety Analysis Checklist + :header-rows: 1 + :widths: 10,30,30,15,8,8 + + * - Review ID + - Acceptance Criteria + - Guidance + - Passed + - Remarks + - Issue link + * - REQ_01_01 + - Is / are the attribute sufficient set correctly? + - The mitigations shall have a direct influence ont the violation by prevention, detection or mitigation to reduce the risk to an acceptable level. + - The mitigations are sufficient. + - yes + - + * - REQ_01_02 + - Are the templates for DFA and/or FMEA used? + - See :ref:`dfa_templates` / :ref:`FMEA_templates` and also :ref:`process_requirements_safety_analysis` + - Templates are used to generate the DFA or / and FMEA. + - yes + - + * - REQ_01_03 + - Were the failure initiators / fault models applied? + - See :need:`gd_guidl__dfa_failure_initiators` / :need:`gd_guidl__fault_models` + - The applicable items of the failure initiators / fault models are used to ensure a structured analysis. For all not applicable items an argument shall be given in the content of the document. + - yes + - + * - REQ_01_04 + - Are the failure effects clearly and completely described? + - Use the generic failure effect descriptions and enlarge the description if it's applicable to the considered element. + - The effects of the failure is described completely. The effect can be recognized easily. + - yes + - + * - REQ_01_06 + - Is the attribute "mitigated by" linked correct? + - Check if the correct failure effect is linked via "mitigated by". + - The "mitigated by" link is correct. + - yes + - + * - REQ_01_07 + - Is the sufficiency of the "mitigated by" (prevention, detection or mitigation) described or can it be recognized easily? + - The sufficiency of the "mitigated by" is described in the content of the document. It can be recognized easily. + - The "mitigated by" shows clearly that a fault / failure can be mitigated by the linked requirement by prevention, detection or mitigation. It shall be described in the contend. + - yes + - + * - REQ_01_08 + - Is the overall result of the Safety Analysis described in the report? + - It shall be shown in the report if the Safety Analysis are finished and if all artifacts are "valid" and "sufficient". + - The results of the Safety Analysis are described in the report. The report is available :need:`wp__verification_platform_ver_report`. + - no + - Platform verification report is missing diff --git a/docs/features/persistency/safety_planning/index.rst b/docs/features/persistency/safety_planning/index.rst index d21a5ad323b..10b40d507df 100644 --- a/docs/features/persistency/safety_planning/index.rst +++ b/docs/features/persistency/safety_planning/index.rst @@ -13,7 +13,7 @@ # ******************************************************************************* Feature Safety Work Products List -================================= +################################# .. document:: Persistency Safety WPs :id: doc__persistency_safety_wp @@ -24,7 +24,19 @@ Feature Safety Work Products List :tags: persistency -.. list-table:: Feature persistency workproducts +Tailoring +========= + +Additional to the tailoring in the SW platform project as defined in the project's :need:`wp__platform_safety_plan` we define here the additional tailoring on feature level. + +- Excluded for this feature are additionally the following work products (and their related requirements): + + - no tailoring is used for the feature + +Safety Work products List +========================= + +.. list-table:: Feature persistency Work products :header-rows: 1 * - Workproduct Id @@ -77,6 +89,19 @@ Feature Safety Work Products List - :ndf:`copy('status', need_id='gd_guidl__verification_guide')` - <WP Link> +Feature Safety Package +====================== + +To create the safety package (according to :need:`gd_guidl__saf_package`) the following +documents and work products status have to go to "valid" (after the relevant verification were performed). + +Feature Documents Status +------------------------ + +For all the work product documents the status can be seen by following the "Link to WP". +A summary of the status is also documented in the project's documentation management plan. + +See :ref:`documents_docs_features_persistency` Feature Requirements Status --------------------------- From 15b52a6330c3d26a1d033e7c3a7121746d1b1b8e Mon Sep 17 00:00:00 2001 From: pandaedo <volker.haeussler@qorix.ai> Date: Mon, 15 Dec 2025 10:38:56 +0100 Subject: [PATCH 061/128] fix link --- .../persistency/safety_analysis/safety_analysis_fdr.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/features/persistency/safety_analysis/safety_analysis_fdr.rst b/docs/features/persistency/safety_analysis/safety_analysis_fdr.rst index b2ac40fd66f..a56b53f356a 100644 --- a/docs/features/persistency/safety_analysis/safety_analysis_fdr.rst +++ b/docs/features/persistency/safety_analysis/safety_analysis_fdr.rst @@ -47,7 +47,7 @@ The purpose of this Safety Analysis (DFA and FMEA) checklist template is to coll - * - REQ_01_02 - Are the templates for DFA and/or FMEA used? - - See :ref:`dfa_templates` / :ref:`FMEA_templates` and also :ref:`process_requirements_safety_analysis` + - See :need:`gd_temp__plat_saf_dfa` / :need:`gd_temp__feat_saf_dfa` / :need:`gd_temp__comp_saf_dfa` and also :need:`gd_temp__feat_saf_fmea` / :need:`gd_temp__comp_saf_fmea` - Templates are used to generate the DFA or / and FMEA. - yes - From acba4ac429d1f8712db541c17ef434656de64df7 Mon Sep 17 00:00:00 2001 From: AndreasMittag <andreas.mittag@etas.com> Date: Tue, 13 Jan 2026 11:20:55 +0100 Subject: [PATCH 062/128] Disable blank issue creation Signed-off-by: AndreasMittag <andreas.mittag@etas.com> --- .github/ISSUE_TEMPLATE/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index bb961996016..d8944ceeaff 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -11,4 +11,4 @@ # SPDX-License-Identifier: Apache-2.0 # ******************************************************************************* -blank_issues_enabled: true +blank_issues_enabled: false From 08ba9cbedb87901933b1b17a953a713de54831b0 Mon Sep 17 00:00:00 2001 From: AndreasMittag <andreas.mittag@etas.com> Date: Tue, 13 Jan 2026 11:52:10 +0100 Subject: [PATCH 063/128] Add type field to bugfix issue template Added type field to the bug report issue template. Signed-off-by: AndreasMittag <andreas.mittag@etas.com> --- .github/ISSUE_TEMPLATE/1-bugfix.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/ISSUE_TEMPLATE/1-bugfix.yml b/.github/ISSUE_TEMPLATE/1-bugfix.yml index b23d6ae149e..c3784949cb3 100644 --- a/.github/ISSUE_TEMPLATE/1-bugfix.yml +++ b/.github/ISSUE_TEMPLATE/1-bugfix.yml @@ -15,6 +15,7 @@ name: Problem Report description: Issue to track a bug title: "Bug: Your bugfix title" labels: ["codeowner_review"] +type: 'Bug' body: - type: markdown attributes: From 5c4d6803282ede78a60bfbf855214745feb675fa Mon Sep 17 00:00:00 2001 From: pandaedo <volker.haeussler@qorix.ai> Date: Tue, 13 Jan 2026 10:43:53 +0100 Subject: [PATCH 064/128] Update Codeowner file --- .github/CODEOWNERS | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 29d0470de72..79b47ff7b88 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -6,16 +6,16 @@ # Note: last match wins # By Default reviews go to the infrastructure community, to address missing lines in this document. -* @AlexanderLanin @dcalavrezo-qorix +* @AlexanderLanin @dcalavrezo-qorix @MaximilianSoerenPollak # All special files go to infrastructure as well -.* @AlexanderLanin @dcalavrezo-qorix +.* @AlexanderLanin @dcalavrezo-qorix @MaximilianSoerenPollak -.github/ISSUE_TEMPLATE/ @pahmann @PhilipPartsch @masc2023 @aschemmel-tech +.github/ISSUE_TEMPLATE/ @pahmann @PhilipPartsch @masc2023 @aschemmel-tech @PandaeDo .github/CODEOWNERS @antonkri @FScholPer @qor-lb @johannes-esr -/docs/ @pahmann @PhilipPartsch @masc2023 @aschemmel-tech -/docs/conf.py @AlexanderLanin @dcalavrezo-qorix +/docs/ @pahmann @PhilipPartsch @masc2023 @aschemmel-tech @PandaeDo +/docs/conf.py @AlexanderLanin @dcalavrezo-qorix @MaximilianSoerenPollak /docs/contribute/ @eclipse-score/automotive-score-committers # /docs/features/ @eclipse-score/automotive-score-technical-leads /docs/features/ @antonkri @FScholPer @qor-lb @johannes-esr @@ -23,23 +23,23 @@ architecture/ @eclipse-score/automotive-score-committers # requirements/ @eclipse-score/automotive-score-technical-leads requirements/ @antonkri @FScholPer @qor-lb @johannes-esr # safety_analysis/ @eclipse-score/safety-managers -safety_analysis/ @aschemmel-tech @PhilipPartsch @masc2023 +safety_analysis/ @aschemmel-tech @PhilipPartsch @masc2023 @PandaeDo # safety_planning/ @eclipse-score/automotive-score-technical-leads safety_planning/ @antonkri @FScholPer @qor-lb @johannes-esr verification/ @eclipse-score/automotive-score-committers -/docs/design_decisions/*infra* @AlexanderLanin @dcalavrezo-qorix +/docs/design_decisions/*infra* @AlexanderLanin @dcalavrezo-qorix @MaximilianSoerenPollak /docs/glossary/ @eclipse-score/automotive-score-committers /docs/introduction/ @eclipse-score/automotive-score-committers /docs/manuals/ @eclipse-score/automotive-score-committers /docs/modules/ @eclipse-score/automotive-score-committers # /docs/platform_management_plan/ @eclipse-score/community-process -/docs/platform_management_plan/ @pahmann @PhilipPartsch @masc2023 @aschemmel-tech +/docs/platform_management_plan/ @pahmann @PhilipPartsch @masc2023 @aschemmel-tech @PandaeDo # /docs/quality/ @eclipse-score/quality-managers /docs/quality/ @masc2023 @pahmann @PandaeDo # /docs/requirements/stakeholder/ @eclipse-score/automotive-score-technical-leads /docs/requirements/stakeholder/ @antonkri @FScholPer @qor-lb @johannes-esr # /docs/requirements/tool/ @eclipse-score/community-process -/docs/requirements/tool/ @pahmann @PhilipPartsch @masc2023 @aschemmel-tech +/docs/requirements/tool/ @pahmann @PhilipPartsch @masc2023 @aschemmel-tech @PandaeDo # /docs/safety/ @eclipse-score/safety-managers /docs/safety/ @aschemmel-tech @PhilipPartsch @masc2023 @PandaeDo # /docs/score_releases/ @eclipse-score/automotive-score-project-leads @@ -52,4 +52,4 @@ verification/ @eclipse-score/automotive-score-committers /platform_integration_tests/ @eclipse-score/automotive-score-committers # /tools/ @eclipse-score/infrastructure-maintainers -/tools/ @AlexanderLanin @dcalavrezo-qorix +/tools/ @AlexanderLanin @dcalavrezo-qorix @MaximilianSoerenPollak From 81a2a1c3d0a4e21118b8f7f17159eb81cb9817be Mon Sep 17 00:00:00 2001 From: pandaedo <volker.haeussler@qorix.ai> Date: Tue, 13 Jan 2026 10:54:05 +0100 Subject: [PATCH 065/128] Update elected safety manager --- .github/CODEOWNERS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 79b47ff7b88..c8e61d25a66 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -23,7 +23,7 @@ architecture/ @eclipse-score/automotive-score-committers # requirements/ @eclipse-score/automotive-score-technical-leads requirements/ @antonkri @FScholPer @qor-lb @johannes-esr # safety_analysis/ @eclipse-score/safety-managers -safety_analysis/ @aschemmel-tech @PhilipPartsch @masc2023 @PandaeDo +safety_analysis/ @aschemmel-tech @masc2023 @PandaeDo # safety_planning/ @eclipse-score/automotive-score-technical-leads safety_planning/ @antonkri @FScholPer @qor-lb @johannes-esr verification/ @eclipse-score/automotive-score-committers @@ -41,7 +41,7 @@ verification/ @eclipse-score/automotive-score-committers # /docs/requirements/tool/ @eclipse-score/community-process /docs/requirements/tool/ @pahmann @PhilipPartsch @masc2023 @aschemmel-tech @PandaeDo # /docs/safety/ @eclipse-score/safety-managers -/docs/safety/ @aschemmel-tech @PhilipPartsch @masc2023 @PandaeDo +/docs/safety/ @aschemmel-tech @masc2023 @PandaeDo # /docs/score_releases/ @eclipse-score/automotive-score-project-leads /docs/score_releases/ @thilo-schmitt @HartmannNico @skappel29 @grandyholger @antonkri @FScholPer @qor-lb @johannes-esr /docs/score_tools/ @eclipse-score/automotive-score-committers From 15b36de85ec25579bce0467e3ef154a0ae64556a Mon Sep 17 00:00:00 2001 From: root <karthik.vanka@qorix.ai> Date: Mon, 12 Jan 2026 15:49:04 +0530 Subject: [PATCH 066/128] First version of persistency feature security plan --- docs/features/persistency/index.rst | 2 + .../persistency/security_analysis/stride.rst | 26 ++++++++++++ .../persistency/security_planning/index.rst | 42 +++++++++++++++++++ 3 files changed, 70 insertions(+) create mode 100644 docs/features/persistency/security_analysis/stride.rst create mode 100644 docs/features/persistency/security_planning/index.rst diff --git a/docs/features/persistency/index.rst b/docs/features/persistency/index.rst index e1dde692ccc..36074b9e8f9 100644 --- a/docs/features/persistency/index.rst +++ b/docs/features/persistency/index.rst @@ -32,6 +32,8 @@ Persistency (v0.5 beta) safety_analysis/dfa.rst safety_analysis/safety_analysis_fdr.rst safety_planning/index.rst + security_planning/index.rst + security_analysis/stride.rst Feature flag diff --git a/docs/features/persistency/security_analysis/stride.rst b/docs/features/persistency/security_analysis/stride.rst new file mode 100644 index 00000000000..bbc48a7b18c --- /dev/null +++ b/docs/features/persistency/security_analysis/stride.rst @@ -0,0 +1,26 @@ +.. + # ******************************************************************************* + # Copyright (c) 2024 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + +Persistency STRIDE +################## + +.. document:: STRIDE + :id: doc__persistency_stride + :status: valid + :safety: ASIL_B + :security: YES + :realizes: wp__feature_security_analysis + :tags: persistency + +STRIDE analysis procedure is required to be defined and applied. This section is created as placeholder and will be updated in future. diff --git a/docs/features/persistency/security_planning/index.rst b/docs/features/persistency/security_planning/index.rst new file mode 100644 index 00000000000..11e2a6dce78 --- /dev/null +++ b/docs/features/persistency/security_planning/index.rst @@ -0,0 +1,42 @@ +.. + # ******************************************************************************* + # Copyright (c) 2025 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + +Feature Security Planning +========================= + +.. document:: Persistency KVS Security WPs + :id: doc__persistency_security_wp + :status: valid + :safety: ASIL_B + :security: YES + :realizes: wp__platform_security_plan + :tags: persistency + + +.. list-table:: Feature persistency Workproducts + :header-rows: 1 + + * - Workproduct Id + - Link to process + - Process status + - Link to issue + - Link to WP + - WP status + + * - :need:`wp__feature_security_analysis` + - :need:`gd_guidl__security_analysis` + - :ndf:`copy('status', need_id='gd_guidl__security_analysis')` + - TBD + - :need:`doc__persistency_stride` + - valid From d6fa9701f422e847d3a147aa349ef8f27fbea62c Mon Sep 17 00:00:00 2001 From: aschemmel-tech <aschemmel_job@arcor.de> Date: Tue, 13 Jan 2026 13:39:42 +0100 Subject: [PATCH 067/128] Update result req inspection checklist author Signed-off-by: aschemmel-tech <aschemmel_job@arcor.de> --- .../result/docs/requirements/chklst_req_inspection.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/modules/baselibs/result/docs/requirements/chklst_req_inspection.rst b/docs/modules/baselibs/result/docs/requirements/chklst_req_inspection.rst index b0d0b224e50..070f8562941 100644 --- a/docs/modules/baselibs/result/docs/requirements/chklst_req_inspection.rst +++ b/docs/modules/baselibs/result/docs/requirements/chklst_req_inspection.rst @@ -15,7 +15,7 @@ .. document:: Result Library Requirements Inspection Checklist :id: doc__result_library_req_inspection - :status: draft + :status: valid :safety: ASIL_B :security: YES :realizes: wp__requirements_inspect @@ -31,7 +31,7 @@ Requirement Inspection Checklist As described in the concept :need:`doc_concept__wp_inspections` the following "inspection roles" are expected to be filled: - - author: these are the persons who did the last commits on the requirements in scope (can be derived from version mgt tool) + - author: `<https://github.com/4og>`_ - reviewer: these are all persons committing into this inspection document or giving a pull request verdict on it (can be derived from version mgt tool) - moderator: only needed for conflict resolution between author and reviewers, is the safety manager, security manager or quality manager called in as a reviewer (can be derived from version mgt tool) - test expert: `<https://github.com/rahulthakre29>`_ From 731d8a2cecf256ea92295806316dca4cf98aec7d Mon Sep 17 00:00:00 2001 From: Philipp Ahmann <2428012+pahmann@users.noreply.github.com> Date: Wed, 14 Jan 2026 10:12:38 +0100 Subject: [PATCH 068/128] Fix typo in verification plan execution environment Signed-off-by: Philipp Ahmann <2428012+pahmann@users.noreply.github.com> --- docs/platform_management_plan/software_verification.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/platform_management_plan/software_verification.rst b/docs/platform_management_plan/software_verification.rst index cbf14b083fe..5d743ef99bd 100644 --- a/docs/platform_management_plan/software_verification.rst +++ b/docs/platform_management_plan/software_verification.rst @@ -524,8 +524,8 @@ Test execution environment and reference hardware ------------------------------------------------- The platform is consisting solely on features that are considered as "middleware" as the layer -above the hardware abstraction layer. The platform itself doe not require to be running on -a specific hardware. It integrates with an Posix Operating System which is the first level of +above the hardware abstraction layer. The platform itself does not require to be running on +a specific hardware. It integrates with an POSIX Operating System which is the first level of abstraction to the physical hardware. The simulation environment will be based on x86 and arm64 architecture, to be close to later From 71eaf6e43287d082aefd6b5db1d60a9875c2567d Mon Sep 17 00:00:00 2001 From: Philipp Ahmann <Philipp.Ahmann@de.bosch.com> Date: Wed, 14 Jan 2026 14:28:22 +0100 Subject: [PATCH 069/128] Update dependencies to new process release Signed-off-by: Philipp Ahmann <Philipp.Ahmann@de.bosch.com> --- MODULE.bazel | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index 3691be4f4c4..04f3f5ed8f8 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -73,5 +73,5 @@ bazel_dep(name = "rules_java", version = "8.15.1") # ############################################################################### bazel_dep(name = "score_tooling", version = "1.0.4") -bazel_dep(name = "score_docs_as_code", version = "2.2.0") -bazel_dep(name = "score_process", version = "1.4.0") +bazel_dep(name = "score_docs_as_code", version = "2.3.0") +bazel_dep(name = "score_process", version = "1.4.1") From 66958a478dfa5af3ef0f3db9e34917ca11545fc8 Mon Sep 17 00:00:00 2001 From: Philipp Ahmann <Philipp.Ahmann@de.bosch.com> Date: Wed, 14 Jan 2026 14:31:55 +0100 Subject: [PATCH 070/128] Correct linking to latest wp tailoring naming Signed-off-by: Philipp Ahmann <Philipp.Ahmann@de.bosch.com> --- docs/platform_management_plan/quality_management.rst | 2 +- docs/platform_management_plan/safety_management.rst | 4 ++-- docs/platform_management_plan/security_management.rst | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/platform_management_plan/quality_management.rst b/docs/platform_management_plan/quality_management.rst index b276c4a8fb1..b49096a48a1 100644 --- a/docs/platform_management_plan/quality_management.rst +++ b/docs/platform_management_plan/quality_management.rst @@ -416,7 +416,7 @@ None * - :need:`wp__sw_implementation_inspection` - :ref:`documents_docs_modules_components` - * - :need:`wp__tailoring` + * - :need:`wp__tailoring_work_products` - :ref:`project_documents_list`, :ref:`documents_docs_features`, :ref:`documents_docs_modules_components` * - :need:`wp__tlm_plan` diff --git a/docs/platform_management_plan/safety_management.rst b/docs/platform_management_plan/safety_management.rst index d4a4fdd190f..5dca2577c0d 100644 --- a/docs/platform_management_plan/safety_management.rst +++ b/docs/platform_management_plan/safety_management.rst @@ -17,7 +17,7 @@ :status: draft :safety: ASIL_B :security: NO - :realizes: wp__platform_safety_plan, wp__tailoring + :realizes: wp__platform_safety_plan, wp__safety_tailoring :tags: platform_management Safety management / Platform Safety Plan @@ -449,7 +449,7 @@ Functional Safety Specific SW Platform Work Products - <Link to WP> - <automated> - * - :need:`wp__tailoring` (generic) + * - :need:`wp__safety_tailoring` (generic) - :ndf:`copy('status', need_id='wf__def_app_process_description')` - :need:`wp__tailoring_work_products` & :need:`doc__score_platform_safety_plan` - valid diff --git a/docs/platform_management_plan/security_management.rst b/docs/platform_management_plan/security_management.rst index 81a7ebd306a..7b40cf793a5 100644 --- a/docs/platform_management_plan/security_management.rst +++ b/docs/platform_management_plan/security_management.rst @@ -17,7 +17,7 @@ :status: draft :safety: ASIL_B :security: YES - :realizes: wp__platform_security_plan, wp__tailoring + :realizes: wp__platform_security_plan, wp__tailoring_work_products :tags: platform_management Security management / Platform Security Plan @@ -91,7 +91,7 @@ Because these are in responsibility of the system integrator: :need:`std_wp__iso :need:`std_wp__isosae21434__assessment_15331`, :need:`std_wp__isosae21434__assessment_15332`, :need:`std_wp__isosae21434__assessment_15431`, :need:`std_wp__isosae21434__assessment_15531` -Summary: :need:`wp__tailoring` links to all the work products which are tailored out in the platform security plan, +Summary: :need:`wp__tailoring_work_products` links to all the work products which are tailored out in the platform security plan, to be able to demonstrate completeness in `REPLACE_external_standards` @@ -305,7 +305,7 @@ Security Specific SW Platform Work Products - <Link to WP> - <automated> - * - :need:`wp__tailoring` (generic) + * - :need:`wp__tailoring_work_products` (generic) - :ndf:`copy('status', need_id='wf__def_app_process_description')` - :need:`doc__platform_security_plan` - :ndf:`copy('status', need_id='doc__platform_security_plan')` From 94dae9b5bdaef401dffe4be9f9d5dfefb07fe436 Mon Sep 17 00:00:00 2001 From: Philipp Ahmann <Philipp.Ahmann@de.bosch.com> Date: Wed, 14 Jan 2026 11:50:42 +0100 Subject: [PATCH 071/128] Add link for embedded SW tailoring in verification plan Signed-off-by: Philipp Ahmann <Philipp.Ahmann@de.bosch.com> --- docs/platform_management_plan/software_verification.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/platform_management_plan/software_verification.rst b/docs/platform_management_plan/software_verification.rst index 5d743ef99bd..77d9dd49d22 100644 --- a/docs/platform_management_plan/software_verification.rst +++ b/docs/platform_management_plan/software_verification.rst @@ -141,7 +141,7 @@ There are the following different levels of integration and verification defined The full Platform Integration Testing will be executed by the integrator. S-CORE project only executes tests on reference hardware. These tests serve as an optional base for the integrator and will also be part of the :need:`wp__verification_platform_ver_report`, but more on an informative character. The full scope - of clause 11 is tailored out accordingly for S-CORE. Practically, this means S-CORE will implement + of clause 11 is tailored out accordingly for S-CORE (see: :need:`gd_guidl__verification_req_tailored`). Practically, this means S-CORE will implement Platform Integration Test of stakeholder requirements for demonstration, but these are not intended to completely covering all stakeholder requirements. From 454c6357f913aec57bfcc53836efe40852f93424 Mon Sep 17 00:00:00 2001 From: Philipp Ahmann <Philipp.Ahmann@de.bosch.com> Date: Wed, 14 Jan 2026 14:06:51 +0100 Subject: [PATCH 072/128] Formatting improvement for verification plan Signed-off-by: Philipp Ahmann <Philipp.Ahmann@de.bosch.com> --- docs/platform_management_plan/software_verification.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/platform_management_plan/software_verification.rst b/docs/platform_management_plan/software_verification.rst index 77d9dd49d22..19e38d2bc88 100644 --- a/docs/platform_management_plan/software_verification.rst +++ b/docs/platform_management_plan/software_verification.rst @@ -141,9 +141,9 @@ There are the following different levels of integration and verification defined The full Platform Integration Testing will be executed by the integrator. S-CORE project only executes tests on reference hardware. These tests serve as an optional base for the integrator and will also be part of the :need:`wp__verification_platform_ver_report`, but more on an informative character. The full scope - of clause 11 is tailored out accordingly for S-CORE (see: :need:`gd_guidl__verification_req_tailored`). Practically, this means S-CORE will implement - Platform Integration Test of stakeholder requirements for demonstration, but these are not intended to completely - covering all stakeholder requirements. + of clause 11 is tailored out accordingly for S-CORE (see: :need:`gd_guidl__verification_req_tailored`). + Practically, this means S-CORE will implement Platform Integration Tests for stakeholder requirements for demonstration, + but these are not intended to completely covering all stakeholder requirements. Verification Methods -------------------- From a2b08ad1ba26d32eeefdd2ef1d9040b973e909fc Mon Sep 17 00:00:00 2001 From: Philipp Ahmann <2428012+pahmann@users.noreply.github.com> Date: Wed, 14 Jan 2026 17:31:40 +0100 Subject: [PATCH 073/128] Add statement on coverage goals It may not be feasible to achieve always a 100% coverage. When this is the case, there need to be a way to record this deviation and make it part of the documentation. As numbers are reported in CI this will pop up in audits and it can be checked if argumentation is provided. Signed-off-by: Philipp Ahmann <2428012+pahmann@users.noreply.github.com> --- docs/platform_management_plan/software_verification.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/platform_management_plan/software_verification.rst b/docs/platform_management_plan/software_verification.rst index 19e38d2bc88..ce71c3349cb 100644 --- a/docs/platform_management_plan/software_verification.rst +++ b/docs/platform_management_plan/software_verification.rst @@ -329,6 +329,9 @@ to be reached with every contribution. Further quality goals are defined in section :doc:`quality_management`. +The confirmation or any deviation of the coverage percentage value is documented in this section. +This shall also be part of the module documenation with a reasoning when percentage numbers deviate for an official release. + Coverage of detailed design ^^^^^^^^^^^^^^^^^^^^^^^^^^^ From 334f24200c4ae293013a790c56d2024299183023 Mon Sep 17 00:00:00 2001 From: Andreas Zwinkau <95761648+a-zw@users.noreply.github.com> Date: Mon, 19 Jan 2026 10:44:04 +0100 Subject: [PATCH 074/128] Clean up decision records (#2455) Use needs objects instead of text. --- docs/design_decisions/DR-001-infra.md | 9 +++++++-- docs/design_decisions/DR-002-infra.md | 9 +++++++-- docs/design_decisions/DR-003-infra.md | 9 +++++++-- docs/design_decisions/DR-004-infra.rst | 4 ++-- 4 files changed, 23 insertions(+), 8 deletions(-) diff --git a/docs/design_decisions/DR-001-infra.md b/docs/design_decisions/DR-001-infra.md index 923fc044a76..dc820deedb5 100644 --- a/docs/design_decisions/DR-001-infra.md +++ b/docs/design_decisions/DR-001-infra.md @@ -14,10 +14,15 @@ SPDX-License-Identifier: Apache-2.0 # DR-001-Infra: Integration Strategy for External Development Tools -* **Status:** Agreed within Community -* **Owner:** Infrastructure Community * **Date:** 2025-09-01 +```{dec_rec} Integration Strategy for External Development Tools +:id: dec_rec__infra__dev_tools +:status: accepted +:context: Infrastructure +:decision: Devcontainer is the primary distribution for all tools +``` + --- ## 1. Context / Problem diff --git a/docs/design_decisions/DR-002-infra.md b/docs/design_decisions/DR-002-infra.md index 62d938237f2..00a87e7deba 100644 --- a/docs/design_decisions/DR-002-infra.md +++ b/docs/design_decisions/DR-002-infra.md @@ -13,10 +13,15 @@ SPDX-License-Identifier: Apache-2.0 # DR-002-Infra: Integration Testing in a Distributed Monolith -* **Status:** Agreed within Community -* **Owner:** Infrastructure Community * **Date:** 2025-09-01 +```{dec_rec} Integration Testing in a Distributed Monolith +:id: dec_rec__infra__int_testing +:status: accepted +:context: Infrastructure +:decision: two testing layers +``` + --- ## Executive Summary diff --git a/docs/design_decisions/DR-003-infra.md b/docs/design_decisions/DR-003-infra.md index 70d0f882986..0dcdf8aa352 100644 --- a/docs/design_decisions/DR-003-infra.md +++ b/docs/design_decisions/DR-003-infra.md @@ -13,10 +13,15 @@ SPDX-License-Identifier: Apache-2.0 # DR-003-Infra: Devcontainer Strategy for S-CORE -- **Status:** Proposed -- **Owner:** Infrastructure Community - **Date:** 2025-10-06 +```{dec_rec} Devcontainer Strategy for S-CORE +:id: dec_rec__infra__devcontainer +:status: accepted +:context: Infrastructure +:decision: Hybrid Approach with Devcontainer Features +``` + --- ## 1. Context / Problem diff --git a/docs/design_decisions/DR-004-infra.rst b/docs/design_decisions/DR-004-infra.rst index 07ca4002220..f3b717616a3 100644 --- a/docs/design_decisions/DR-004-infra.rst +++ b/docs/design_decisions/DR-004-infra.rst @@ -13,14 +13,14 @@ DR-004-Infra: Bi-directional traceability in docs ================================================= +- **Date:** 2025-10-24 + .. dec_rec:: Bi-directional traceability in docs :id: dec_rec__infra__traceable_docs :status: accepted :context: Infrastructure :decision: Single documentation build - Date: 2025-10-24 - Context / Problem ----------------- From cf409bc0e78d96f5e8308a0999f0fb4fcc8d5371 Mon Sep 17 00:00:00 2001 From: aschemmel-tech <aschemmel_job@arcor.de> Date: Mon, 19 Jan 2026 10:02:19 +0100 Subject: [PATCH 075/128] Make stakeholder requirements a document plus some link corrections in platform safety plan Signed-off-by: aschemmel-tech <aschemmel_job@arcor.de> --- .../safety_management.rst | 23 +++++++++++-------- docs/requirements/stakeholder/index.rst | 9 +++++++- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/docs/platform_management_plan/safety_management.rst b/docs/platform_management_plan/safety_management.rst index 5dca2577c0d..00f32a79ff0 100644 --- a/docs/platform_management_plan/safety_management.rst +++ b/docs/platform_management_plan/safety_management.rst @@ -311,8 +311,8 @@ Functional Safety Quality Criteria ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The platform management plan defines :doc:`quality_management` -Platform Safety Plan -++++++++++++++++++++ +Platform Safety Plan / Package +++++++++++++++++++++++++++++++ .. _sw_platform_wp_list: @@ -379,8 +379,13 @@ Functional Safety/Security Management SW Platform Work Products * - :need:`wp__requirements_stkh` - :ndf:`copy('status', need_id='wf__req_stkh_req')` - - :ref:`stakeholder_requirements` - - <automated> + - :need:`doc__stakeholder_requirements` + - :ndf:`copy('status', need_id='doc__stakeholder_requirements')` + + * - :need:`wp__requirements_sw_platform_aou` + - :ndf:`copy('status', need_id='wf__req_stkh_req')` + - :need:`doc__platform_assumptions` + - :ndf:`copy('status', need_id='doc__platform_assumptions')` * - :need:`wp__sw_development_plan` - :ndf:`copy('status', need_id='wf__sw_development_plan')` @@ -416,8 +421,8 @@ Functional Safety Specific SW Platform Work Products * - :need:`wp__platform_safety_package` - :ndf:`copy('status', need_id='wf__cr_mt_safety_package')` - - <Link to WP> - - <automated> + - this document + - see above * - :need:`wp__fdr_reports` (platform Safety Plan) - :ndf:`copy('status', need_id='wf__p_formal_rv')` @@ -430,7 +435,7 @@ Functional Safety Specific SW Platform Work Products - <automated> * - :need:`wp__fdr_reports` (feature's Safety Analyses & DFA) - - <Process status> + - :ndf:`copy('status', need_id='wf__p_formal_rv')` - <Link to WP> - <automated> @@ -439,8 +444,8 @@ Functional Safety Specific SW Platform Work Products - <Link to WP> - intermediate - * - :need:`wp__feature_dfa` - - <Process status> + * - :need:`wp__platform_dfa` + - :ndf:`copy('status', need_id='wf__analyse_platform_featarch')` - <Link to WP> - <automated> diff --git a/docs/requirements/stakeholder/index.rst b/docs/requirements/stakeholder/index.rst index 65c9fd1d0c2..e916fabf3d2 100644 --- a/docs/requirements/stakeholder/index.rst +++ b/docs/requirements/stakeholder/index.rst @@ -17,6 +17,13 @@ Stakeholder Requirements ======================== +.. document:: SW-platform stakeholder requirements + :id: doc__stakeholder_requirements + :status: draft + :security: YES + :safety: ASIL_B + :realizes: wp__requirements_stkh + Overall goals ------------- @@ -1200,7 +1207,7 @@ Requirements Engineering :rationale: This is a usability constraint needed for long term maintenance support :status: valid - he SW-platform infrastructure shall support linking all requirements from lower to upper level, whereby on the top-level are the stakeholder requirements. + The SW-platform infrastructure shall support linking all requirements from lower to upper level, whereby on the top-level are the stakeholder requirements. .. stkh_req:: Document requirements as code :id: stkh_req__requirements__as_code From 4f78f987b172c67583f5b82cb3f00b8de67e053d Mon Sep 17 00:00:00 2001 From: aschemmel-tech <aschemmel_job@arcor.de> Date: Mon, 19 Jan 2026 11:22:53 +0100 Subject: [PATCH 076/128] Add SW-platform test completion aou Signed-off-by: aschemmel-tech <aschemmel_job@arcor.de> --- docs/requirements/platform_assumptions/index.rst | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/requirements/platform_assumptions/index.rst b/docs/requirements/platform_assumptions/index.rst index 67606d19323..3d6d16a4e82 100644 --- a/docs/requirements/platform_assumptions/index.rst +++ b/docs/requirements/platform_assumptions/index.rst @@ -207,6 +207,18 @@ This is the highest level of integraton. This is the level where the S-CORE SW-p Note3: This applies also if the system integrator would replace a S-CORE SW-platform element with another SW element which is external to S-CORE. +.. aou_req:: SW-platform test completion + :id: aou_req__platform__test_completion + :reqtype: Non-Functional + :security: YES + :safety: ASIL_B + :status: valid + + If the system using the SW-platform has safety goals, the system integrator shall check for correctness and completeness of SW-platform testing and add verification where needed. + + Note: The SW-platform integtion tests provided by S-CORE for :need:`aou_req__platform__testing` are for demonstration purpose only, + as described in the tailoring section of :need:`doc__score_platform_safety_plan` and thus do not claim correctness and completeness. + .. aou_req:: Integrator safety anomaly reporting :id: aou_req__platform__integration_safety_anomaly :reqtype: Non-Functional From 90cc1476fe9199b01b46009f65fb3220a23332d3 Mon Sep 17 00:00:00 2001 From: Priyanka Patil <Priyanka.Patil@bti.bmwgroup.com> Date: Tue, 20 Jan 2026 11:51:12 +0530 Subject: [PATCH 077/128] lib/concurrency - Add minimal Component Architecture --- .../baselibs/docs/architecture/index.rst | 4 +- .../concurrency/docs/architecture/index.rst | 313 ++++++++++++++++++ .../baselibs/concurrency/docs/index.rst | 4 +- docs/modules/baselibs/docs/index.rst | 4 +- 4 files changed, 320 insertions(+), 5 deletions(-) create mode 100644 docs/modules/baselibs/concurrency/docs/architecture/index.rst diff --git a/docs/features/baselibs/docs/architecture/index.rst b/docs/features/baselibs/docs/architecture/index.rst index c3c941beefb..6e2712c6776 100644 --- a/docs/features/baselibs/docs/architecture/index.rst +++ b/docs/features/baselibs/docs/architecture/index.rst @@ -90,7 +90,7 @@ Static Architecture :safety: ASIL_B :status: valid :fulfils: feat_req__baselibs__core_utilities - :includes: logic_arc_int__baselibs__json, logic_arc_int__baselibs__memory_shared, logic_arc_int__baselibs__message_passing, logic_arc_int__baselibs__result, logic_arc_int__baselibs__bit_manipulation, logic_arc_int__baselibs__bit_mask_operator, logic_arc_int__baselibs__dynamic_array, logic_arc_int__baselibs__intrusive_list, logic_arc_int__baselibs__filesystem, logic_arc_int__baselibs__utils_base64, logic_arc_int__baselibs__utils_scoped_op + :includes: logic_arc_int__baselibs__json, logic_arc_int__baselibs__memory_shared, logic_arc_int__baselibs__message_passing, logic_arc_int__baselibs__result, logic_arc_int__baselibs__bit_manipulation, logic_arc_int__baselibs__bit_mask_operator, logic_arc_int__baselibs__dynamic_array, logic_arc_int__baselibs__intrusive_list, logic_arc_int__baselibs__filesystem, logic_arc_int__baselibs__utils_base64, logic_arc_int__baselibs__utils_scoped_op, logic_arc_int__baselibs__promise, logic_arc_int__baselibs__future, logic_arc_int__baselibs__shared_future, logic_arc_int__baselibs__executor, logic_arc_int__baselibs__task, logic_arc_int__baselibs__task_result, logic_arc_int__baselibs__synchronized_queue, logic_arc_int__baselibs__condition_variable .. needarch:: :scale: 50 @@ -107,4 +107,4 @@ The Baselibs feature exposes the following logical interfaces: :style: table :columns: title;id;status :sort: title - :filter: id in ['logic_arc_int__baselibs__json', 'logic_arc_int__baselibs__memory_shared', 'logic_arc_int__baselibs__message_passing' ,'logic_arc_int__baselibs__result', 'logic_arc_int__baselibs__bit_manipulation', 'logic_arc_int__baselibs__bit_mask_operator', 'logic_arc_int__baselibs__dynamic_array', 'logic_arc_int__baselibs__intrusive_list', 'logic_arc_int__baselibs__filesystem', 'logic_arc_int__baselibs__utils_base64', 'logic_arc_int__baselibs__utils_scoped_op'] + :filter: id in ['logic_arc_int__baselibs__json', 'logic_arc_int__baselibs__memory_shared', 'logic_arc_int__baselibs__message_passing' ,'logic_arc_int__baselibs__result', 'logic_arc_int__baselibs__bit_manipulation', 'logic_arc_int__baselibs__bit_mask_operator', 'logic_arc_int__baselibs__dynamic_array', 'logic_arc_int__baselibs__intrusive_list', 'logic_arc_int__baselibs__filesystem', 'logic_arc_int__baselibs__utils_base64', 'logic_arc_int__baselibs__utils_scoped_op', 'logic_arc_int__baselibs__promise', 'logic_arc_int__baselibs__future', 'logic_arc_int__baselibs__shared_future', 'logic_arc_int__baselibs__executor', 'logic_arc_int__baselibs__task', 'logic_arc_int__baselibs__task_result', 'logic_arc_int__baselibs__synchronized_queue', 'logic_arc_int__baselibs__condition_variable'] diff --git a/docs/modules/baselibs/concurrency/docs/architecture/index.rst b/docs/modules/baselibs/concurrency/docs/architecture/index.rst new file mode 100644 index 00000000000..7985d4393bd --- /dev/null +++ b/docs/modules/baselibs/concurrency/docs/architecture/index.rst @@ -0,0 +1,313 @@ +.. + # ******************************************************************************* + # Copyright (c) 2026 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + +Concurrency Component Architecture +*********************************** + +.. document:: Concurrency Architecture + :id: doc__concurrency_architecture + :status: valid + :safety: ASIL_B + :security: YES + :realizes: wp__component_arch + +Overview/Description +-------------------- + +see :need:`doc__concurrency` + +Static Architecture +------------------- + +.. comp_arc_sta:: Concurrency + :id: comp_arc_sta__baselibs__concurrency + :security: YES + :safety: ASIL_B + :status: valid + :tags: baselibs_concurrency + :implements: logic_arc_int__baselibs__promise, logic_arc_int__baselibs__future, logic_arc_int__baselibs__shared_future, logic_arc_int__baselibs__executor, logic_arc_int__baselibs__task, logic_arc_int__baselibs__task_result, logic_arc_int__baselibs__synchronized_queue, logic_arc_int__baselibs__condition_variable + + .. needarch:: + :scale: 50 + :align: center + + {{ draw_component(need(), needs) }} + +Interfaces +---------- + +.. logic_arc_int:: Promise + :id: logic_arc_int__baselibs__promise + :security: YES + :safety: ASIL_B + :status: valid + +.. logic_arc_int_op:: Set Value + :id: logic_arc_int_op__conc__promise_setval + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__promise + +.. logic_arc_int_op:: Set Error + :id: logic_arc_int_op__conc__promise_set_error + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__promise + +.. logic_arc_int_op:: Get Future + :id: logic_arc_int_op__conc__promise_get_future + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__promise + +.. logic_arc_int_op:: On Abort + :id: logic_arc_int_op__conc__promise_on_abort + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__promise + +.. logic_arc_int:: Future + :id: logic_arc_int__baselibs__future + :security: YES + :safety: ASIL_B + :status: valid + +.. logic_arc_int_op:: Get + :id: logic_arc_int_op__conc__future_get + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__future + +.. logic_arc_int_op:: Wait + :id: logic_arc_int_op__conc__future_wait + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__future + +.. logic_arc_int_op:: Wait For + :id: logic_arc_int_op__conc__future_wait_for + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__future + +.. logic_arc_int_op:: Wait Until + :id: logic_arc_int_op__conc__future_wait_until + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__future + +.. logic_arc_int_op:: Valid + :id: logic_arc_int_op__conc__future_valid + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__future + +.. logic_arc_int_op:: Share + :id: logic_arc_int_op__conc__future_share + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__future + +.. logic_arc_int_op:: Then + :id: logic_arc_int_op__conc__future_then + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__future + +.. logic_arc_int:: Shared Future + :id: logic_arc_int__baselibs__shared_future + :security: YES + :safety: ASIL_B + :status: valid + +.. logic_arc_int_op:: Get Shared + :id: logic_arc_int_op__conc__shared_future_get + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__shared_future + +.. logic_arc_int_op:: Copy + :id: logic_arc_int_op__conc__shared_future_copy + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__shared_future + +.. logic_arc_int:: Executor + :id: logic_arc_int__baselibs__executor + :security: YES + :safety: ASIL_B + :status: valid + +.. logic_arc_int_op:: Enqueue + :id: logic_arc_int_op__conc__executor_enqueue + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__executor + +.. logic_arc_int_op:: Post + :id: logic_arc_int_op__conc__executor_post + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__executor + +.. logic_arc_int_op:: Submit + :id: logic_arc_int_op__conc__executor_submit + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__executor + +.. logic_arc_int_op:: Shutdown + :id: logic_arc_int_op__conc__executor_shutdown + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__executor + +.. logic_arc_int_op:: Max Concurrency Level + :id: logic_arc_int_op__conc__executor_max_conc + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__executor + +.. logic_arc_int:: Task + :id: logic_arc_int__baselibs__task + :security: YES + :safety: ASIL_B + :status: valid + +.. logic_arc_int_op:: Execute + :id: logic_arc_int_op__conc__task_execute + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__task + +.. logic_arc_int_op:: Get Stop Source + :id: logic_arc_int_op__conc__task_get_stop_source + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__task + +.. logic_arc_int:: Task Result + :id: logic_arc_int__baselibs__task_result + :security: YES + :safety: ASIL_B + :status: valid + +.. logic_arc_int_op:: Abort + :id: logic_arc_int_op__conc__task_result_abort + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__task_result + +.. logic_arc_int_op:: Aborted + :id: logic_arc_int_op__conc__task_result_aborted + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__task_result + +.. logic_arc_int_op:: Get Result + :id: logic_arc_int_op__conc__task_result_get + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__task_result + +.. logic_arc_int:: Synchronized Queue + :id: logic_arc_int__baselibs__synchronized_queue + :security: YES + :safety: ASIL_B + :status: valid + +.. logic_arc_int_op:: Push + :id: logic_arc_int_op__conc__sync_queue_push + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__synchronized_queue + +.. logic_arc_int_op:: Pop + :id: logic_arc_int_op__conc__sync_queue_pop + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__synchronized_queue + +.. logic_arc_int_op:: Try Push + :id: logic_arc_int_op__conc__sync_queue_try_push + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__synchronized_queue + +.. logic_arc_int_op:: Try Pop + :id: logic_arc_int_op__conc__sync_queue_try_pop + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__synchronized_queue + +.. logic_arc_int:: Condition Variable + :id: logic_arc_int__baselibs__condition_variable + :security: YES + :safety: ASIL_B + :status: valid + +.. logic_arc_int_op:: Wait + :id: logic_arc_int_op__conc__cv_wait + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__condition_variable + +.. logic_arc_int_op:: Wait For + :id: logic_arc_int_op__conc__cv_wait_for + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__condition_variable + +.. logic_arc_int_op:: Notify One + :id: logic_arc_int_op__conc__cv_notify_one + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__condition_variable + +.. logic_arc_int_op:: Notify All + :id: logic_arc_int_op__conc__cv_notify_all + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__baselibs__condition_variable diff --git a/docs/modules/baselibs/concurrency/docs/index.rst b/docs/modules/baselibs/concurrency/docs/index.rst index 4f9cfef732f..a18749ff317 100644 --- a/docs/modules/baselibs/concurrency/docs/index.rst +++ b/docs/modules/baselibs/concurrency/docs/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2025 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. @@ -26,6 +26,8 @@ concurrency .. toctree:: :hidden: + architecture/index.rst + Abstract ======== diff --git a/docs/modules/baselibs/docs/index.rst b/docs/modules/baselibs/docs/index.rst index 84dbbd6e416..a769b54cbe8 100644 --- a/docs/modules/baselibs/docs/index.rst +++ b/docs/modules/baselibs/docs/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2025 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. @@ -14,7 +14,7 @@ .. mod_view_sta:: Baselibs :id: mod_view_sta__baselibs__baselibs - :includes: comp_arc_sta__baselibs__json, comp_arc_sta__baselibs__message_passing, comp_arc_sta__baselibs__memory_shared, comp_arc_sta__baselibs__result, comp_arc_sta__baselibs__bit_manipulation, comp_arc_sta__baselibs__containers, comp_arc_sta__baselibs__filesystem, comp_arc_sta__baselibs__utils + :includes: comp_arc_sta__baselibs__json, comp_arc_sta__baselibs__message_passing, comp_arc_sta__baselibs__memory_shared, comp_arc_sta__baselibs__result, comp_arc_sta__baselibs__bit_manipulation, comp_arc_sta__baselibs__containers, comp_arc_sta__baselibs__filesystem, comp_arc_sta__baselibs__utils, comp_arc_sta__baselibs__concurrency .. needarch:: :scale: 50 From 37b4f6b229ccc7cf6369633ee6ced92d82fcdca9 Mon Sep 17 00:00:00 2001 From: Priyanka Patil <Priyanka.Patil@bti.bmwgroup.com> Date: Tue, 13 Jan 2026 11:19:56 +0530 Subject: [PATCH 078/128] lib/memory - Define component requirements --- .../baselibs/docs/requirements/index.rst | 10 ++ .../baselibs/memory_shared/docs/index.rst | 1 + .../memory_shared/docs/requirements/index.rst | 161 ++++++++++++++++++ 3 files changed, 172 insertions(+) create mode 100644 docs/modules/baselibs/memory_shared/docs/requirements/index.rst diff --git a/docs/features/baselibs/docs/requirements/index.rst b/docs/features/baselibs/docs/requirements/index.rst index 82346371f94..114780411df 100644 --- a/docs/features/baselibs/docs/requirements/index.rst +++ b/docs/features/baselibs/docs/requirements/index.rst @@ -132,5 +132,15 @@ Requirements The base libraries shall provide a filesystem library with file and directory manipulation functionality. +.. feat_req:: Memory Library + :id: feat_req__baselibs__memory_library + :reqtype: Functional + :security: YES + :safety: QM + :satisfies: stkh_req__functional_req__base_libraries + :status: valid + + The baselibs shall provide a memory management library that includes utilities for shared memory operations, polymorphic memory resources, position-independent pointers, endianness conversion, and inter-process synchronization mechanisms. + .. needextend:: "__baselibs" in id :+tags: baselibs diff --git a/docs/modules/baselibs/memory_shared/docs/index.rst b/docs/modules/baselibs/memory_shared/docs/index.rst index b5b99cbc537..a366ef926d5 100644 --- a/docs/modules/baselibs/memory_shared/docs/index.rst +++ b/docs/modules/baselibs/memory_shared/docs/index.rst @@ -21,3 +21,4 @@ memory_shared :hidden: architecture/index + requirements/index.rst diff --git a/docs/modules/baselibs/memory_shared/docs/requirements/index.rst b/docs/modules/baselibs/memory_shared/docs/requirements/index.rst new file mode 100644 index 00000000000..a02a3c6a421 --- /dev/null +++ b/docs/modules/baselibs/memory_shared/docs/requirements/index.rst @@ -0,0 +1,161 @@ +.. + # ******************************************************************************* + # Copyright (c) 2025 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + +Requirements +############ + +.. document:: Memory Library Requirements + :id: doc__memory_lib_requirements + :status: draft + :safety: ASIL_B + :security: YES + :realizes: wp__requirements_comp + :tags: requirements, memory_library + +Functional Requirements +======================= + +.. comp_req:: Shared Memory Management + :id: comp_req__memory__shared_memory + :reqtype: Functional + :security: YES + :safety: ASIL_B + :satisfies: feat_req__baselibs__core_utilities, feat_req__baselibs__memory_library, feat_req__baselibs__safety + :status: valid + + The Memory library shall provide capabilities for creating, opening and managing shared memory. + +.. comp_req:: Position-Independent Pointers + :id: comp_req__memory__offset_ptr + :reqtype: Functional + :security: YES + :safety: ASIL_B + :satisfies: feat_req__baselibs__core_utilities, feat_req__baselibs__memory_library, feat_req__baselibs__safety + :status: valid + + The Memory library shall provide polymorphic memory resource allocators for controlled and deterministic memory allocation. + +.. comp_req:: Shared Memory Containers + :id: comp_req__memory__shared_containers + :reqtype: Functional + :security: YES + :safety: ASIL_B + :satisfies: feat_req__baselibs__core_utilities, feat_req__baselibs__memory_library, feat_req__baselibs__safety + :status: valid + + The Memory library shall provide type aliases for STL containers (vector, map, string) that use offset pointers for shared memory storage. + +.. comp_req:: Inter-Process Synchronization + :id: comp_req__memory__ipc_sync + :reqtype: Functional + :security: YES + :safety: ASIL_B + :satisfies: feat_req__baselibs__core_utilities, feat_req__baselibs__memory_library, feat_req__baselibs__safety + :status: valid + + The Memory library shall provide file-based locking mechanisms for inter-process synchronization and mutual exclusion. + +.. comp_req:: Memory Region Bounds Checking + :id: comp_req__memory__bounds_check + :reqtype: Functional + :security: YES + :safety: ASIL_B + :satisfies: feat_req__baselibs__safety, feat_req__baselibs__memory_library + :status: valid + + The Memory library shall track and validate memory region boundaries to prevent out-of-bounds access in shared memory. + +.. comp_req:: Endianness Conversion + :id: comp_req__memory__endianness + :reqtype: Functional + :security: NO + :safety: ASIL_B + :satisfies: feat_req__baselibs__core_utilities, feat_req__baselibs__memory_library + :status: valid + + The Memory library shall provide byte order conversion between host and network byte order (big/little endian). + +.. comp_req:: Sealed Shared Memory + :id: comp_req__memory__sealed_shm + :reqtype: Functional + :security: YES + :safety: ASIL_B + :satisfies: feat_req__baselibs__safety, feat_req__baselibs__memory_library, feat_req__baselibs__security + :status: valid + + The Memory library shall provide immutable shared memory segments that become read-only after initialization. + +.. comp_req:: Type-Safe Shared Memory + :id: comp_req__memory__typed_shm + :reqtype: Functional + :security: YES + :safety: ASIL_B + :satisfies: feat_req__baselibs__consistent_apis, feat_req__baselibs__safety, feat_req__baselibs__memory_library + :status: valid + + The Memory library shall provide type-safe wrappers for typed shared memory objects with compile-time type checking. + +.. comp_req:: Memory Resource Registry + :id: comp_req__memory__resource_registry + :reqtype: Functional + :security: NO + :safety: ASIL_B + :satisfies: feat_req__baselibs__core_utilities, feat_req__baselibs__memory_library + :status: valid + + The Memory library shall provide a global registry for memory resource lookup and management. + +.. comp_req:: String Utilities + :id: comp_req__memory__string_utils + :reqtype: Functional + :security: NO + :safety: ASIL_B + :satisfies: feat_req__baselibs__core_utilities, feat_req__baselibs__memory_library + :status: valid + + The Memory library shall provide zero-allocation string utilities including splitting, comparison, and compile-time literals. + +.. comp_req:: Atomic Operations in Shared Memory + :id: comp_req__memory__atomic_ops + :reqtype: Functional + :security: YES + :safety: ASIL_B + :satisfies: feat_req__baselibs__memory_library, feat_req__baselibs__safety + :status: valid + + The Memory library shall provide atomic operations on shared memory data for lock-free inter-process communication. + + +Non-Functional Requirements +=========================== + +.. comp_req:: Deterministic Memory Allocation + :id: comp_req__memory__deterministic_alloc + :reqtype: Non-Functional + :security: NO + :safety: ASIL_B + :satisfies: feat_req__baselibs__core_utilities, feat_req__baselibs__safety + :status: valid + + The shared memory allocation shall provide deterministic behavior with predictable execution time suitable for real-time automotive systems. + +.. comp_req:: Process Address Space Independence + :id: comp_req__memory__address_independence + :reqtype: Non-Functional + :security: YES + :safety: ASIL_B + :satisfies: feat_req__baselibs__safety, feat_req__baselibs__memory_library + :status: valid + + The Memory library shall ensure shared memory data structures remain valid regardless of process virtual address space mappings. From cc1b017e0e6d28bc8998a9e07bd13b3b3cc2d9e5 Mon Sep 17 00:00:00 2001 From: Priyanka Patil <Priyanka.Patil@bti.bmwgroup.com> Date: Tue, 13 Jan 2026 11:19:56 +0530 Subject: [PATCH 079/128] lib/memory - Define component requirements --- docs/features/baselibs/docs/requirements/index.rst | 2 +- .../baselibs/memory_shared/docs/requirements/index.rst | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/features/baselibs/docs/requirements/index.rst b/docs/features/baselibs/docs/requirements/index.rst index 114780411df..efb9141ecd6 100644 --- a/docs/features/baselibs/docs/requirements/index.rst +++ b/docs/features/baselibs/docs/requirements/index.rst @@ -136,7 +136,7 @@ Requirements :id: feat_req__baselibs__memory_library :reqtype: Functional :security: YES - :safety: QM + :safety: ASIL_B :satisfies: stkh_req__functional_req__base_libraries :status: valid diff --git a/docs/modules/baselibs/memory_shared/docs/requirements/index.rst b/docs/modules/baselibs/memory_shared/docs/requirements/index.rst index a02a3c6a421..904bc1e44db 100644 --- a/docs/modules/baselibs/memory_shared/docs/requirements/index.rst +++ b/docs/modules/baselibs/memory_shared/docs/requirements/index.rst @@ -36,7 +36,7 @@ Functional Requirements The Memory library shall provide capabilities for creating, opening and managing shared memory. -.. comp_req:: Position-Independent Pointers +.. comp_req:: Polymorphic OffsetPtr Allocator :id: comp_req__memory__offset_ptr :reqtype: Functional :security: YES @@ -44,7 +44,7 @@ Functional Requirements :satisfies: feat_req__baselibs__core_utilities, feat_req__baselibs__memory_library, feat_req__baselibs__safety :status: valid - The Memory library shall provide polymorphic memory resource allocators for controlled and deterministic memory allocation. + The Memory library shall provide polymorphic memory resource allocators using offset pointers instead of raw pointers to enable allocation in shared memory regions accessible across multiple processes. The standard library's std::pmr::polymorphic_allocator is not applicable as it uses raw pointers that are invalid when shared memory is mapped at different virtual addresses in different processes. .. comp_req:: Shared Memory Containers :id: comp_req__memory__shared_containers From dfecbdb7b12e2185f5e8b39c3df544c54d59359d Mon Sep 17 00:00:00 2001 From: aschemmel-tech <aschemmel_job@arcor.de> Date: Tue, 20 Jan 2026 16:00:36 +0100 Subject: [PATCH 080/128] Remove @PhilipPartsch as codeowner Signed-off-by: aschemmel-tech <aschemmel_job@arcor.de> --- .github/CODEOWNERS | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index c8e61d25a66..21b4997cbde 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -11,10 +11,10 @@ # All special files go to infrastructure as well .* @AlexanderLanin @dcalavrezo-qorix @MaximilianSoerenPollak -.github/ISSUE_TEMPLATE/ @pahmann @PhilipPartsch @masc2023 @aschemmel-tech @PandaeDo +.github/ISSUE_TEMPLATE/ @pahmann @masc2023 @aschemmel-tech @PandaeDo .github/CODEOWNERS @antonkri @FScholPer @qor-lb @johannes-esr -/docs/ @pahmann @PhilipPartsch @masc2023 @aschemmel-tech @PandaeDo +/docs/ @pahmann @masc2023 @aschemmel-tech @PandaeDo /docs/conf.py @AlexanderLanin @dcalavrezo-qorix @MaximilianSoerenPollak /docs/contribute/ @eclipse-score/automotive-score-committers # /docs/features/ @eclipse-score/automotive-score-technical-leads @@ -33,13 +33,13 @@ verification/ @eclipse-score/automotive-score-committers /docs/manuals/ @eclipse-score/automotive-score-committers /docs/modules/ @eclipse-score/automotive-score-committers # /docs/platform_management_plan/ @eclipse-score/community-process -/docs/platform_management_plan/ @pahmann @PhilipPartsch @masc2023 @aschemmel-tech @PandaeDo +/docs/platform_management_plan/ @pahmann @masc2023 @aschemmel-tech @PandaeDo # /docs/quality/ @eclipse-score/quality-managers /docs/quality/ @masc2023 @pahmann @PandaeDo # /docs/requirements/stakeholder/ @eclipse-score/automotive-score-technical-leads /docs/requirements/stakeholder/ @antonkri @FScholPer @qor-lb @johannes-esr # /docs/requirements/tool/ @eclipse-score/community-process -/docs/requirements/tool/ @pahmann @PhilipPartsch @masc2023 @aschemmel-tech @PandaeDo +/docs/requirements/tool/ @pahmann @masc2023 @aschemmel-tech @PandaeDo # /docs/safety/ @eclipse-score/safety-managers /docs/safety/ @aschemmel-tech @masc2023 @PandaeDo # /docs/score_releases/ @eclipse-score/automotive-score-project-leads From 43757ccdfd7873f23360731e1e4c52c8e528f769 Mon Sep 17 00:00:00 2001 From: pandaedo <volker.haeussler@qorix.ai> Date: Tue, 13 Jan 2026 10:36:22 +0100 Subject: [PATCH 081/128] Initial version Codeowner Orchestrator --- .../orchestrator/docs/safety_mgt/index.rst | 1 + .../docs/safety_mgt/module_codeowners.rst | 47 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 docs/modules/orchestrator/docs/safety_mgt/module_codeowners.rst diff --git a/docs/modules/orchestrator/docs/safety_mgt/index.rst b/docs/modules/orchestrator/docs/safety_mgt/index.rst index 04718ba3557..f186244aff1 100644 --- a/docs/modules/orchestrator/docs/safety_mgt/index.rst +++ b/docs/modules/orchestrator/docs/safety_mgt/index.rst @@ -18,6 +18,7 @@ Safety Management .. toctree:: :titlesonly: + module_codewoners module_safety_plan module_safety_plan_fdr module_safety_package_fdr diff --git a/docs/modules/orchestrator/docs/safety_mgt/module_codeowners.rst b/docs/modules/orchestrator/docs/safety_mgt/module_codeowners.rst new file mode 100644 index 00000000000..725bc70b187 --- /dev/null +++ b/docs/modules/orchestrator/docs/safety_mgt/module_codeowners.rst @@ -0,0 +1,47 @@ +.. + # ******************************************************************************* + # Copyright (c) 2025 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + +Module Codeowners Skill Check +***************************** + +.. document:: Orchestrator Codeowners + :id: doc__orchestrator_codeowners + :status: valid + :safety: ASIL_B + :security: YES + :realizes: wp__module_safety_plan + +Assigned Committer(s) +===================== + +According to `Orchestrator Module Codeowners <https://github.com/eclipse-score/orchestrator/blob/main/.github/CODEOWNERS>`_ +the following committers are assigned to guard the Orchestrator repository: + +- `<https://github.com/vinodreddy-g>`_ +- `<https://github.com/qor-lb>`_ +- `<https://github.com/MaximilianSoerenPollak>`_ + + +Skill Check +=========== + +For the CODEOWNERS the required skills, knowledge and experience is defined in `<https://eclipse-score.github.io/score/main/platform_management_plan/safety_management.html#functional-safety-management-organization>`_. + +The evidences are not published openly due to personal data confidentiality, but will be checked by the module safety manager. + +- `<https://github.com/vinodreddy-g>`_: SW developer and architect at Tier 1 > 10 years for safety related SW. Member of process community +- `<https://github.com/qor-lb>`_: SW developer at Tier 1 > y . Member of S-CORE process community and project lead + + +The S-CORE processes are trained on the job by the Orchestrator module safety manager to the CODEOWNERS. From d6140e79f7da6f77dc57331c91f46a62a41584d7 Mon Sep 17 00:00:00 2001 From: pandaedo <volker.haeussler@qorix.ai> Date: Wed, 21 Jan 2026 11:31:53 +0100 Subject: [PATCH 082/128] fix failures --- docs/modules/orchestrator/docs/safety_mgt/index.rst | 2 +- .../orchestrator/docs/safety_mgt/module_codeowners.rst | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/docs/modules/orchestrator/docs/safety_mgt/index.rst b/docs/modules/orchestrator/docs/safety_mgt/index.rst index f186244aff1..f67104c9b63 100644 --- a/docs/modules/orchestrator/docs/safety_mgt/index.rst +++ b/docs/modules/orchestrator/docs/safety_mgt/index.rst @@ -18,7 +18,7 @@ Safety Management .. toctree:: :titlesonly: - module_codewoners + module_codeowners module_safety_plan module_safety_plan_fdr module_safety_package_fdr diff --git a/docs/modules/orchestrator/docs/safety_mgt/module_codeowners.rst b/docs/modules/orchestrator/docs/safety_mgt/module_codeowners.rst index 725bc70b187..997499fa493 100644 --- a/docs/modules/orchestrator/docs/safety_mgt/module_codeowners.rst +++ b/docs/modules/orchestrator/docs/safety_mgt/module_codeowners.rst @@ -30,8 +30,6 @@ the following committers are assigned to guard the Orchestrator repository: - `<https://github.com/vinodreddy-g>`_ - `<https://github.com/qor-lb>`_ -- `<https://github.com/MaximilianSoerenPollak>`_ - Skill Check =========== @@ -40,8 +38,8 @@ For the CODEOWNERS the required skills, knowledge and experience is defined in ` The evidences are not published openly due to personal data confidentiality, but will be checked by the module safety manager. -- `<https://github.com/vinodreddy-g>`_: SW developer and architect at Tier 1 > 10 years for safety related SW. Member of process community -- `<https://github.com/qor-lb>`_: SW developer at Tier 1 > y . Member of S-CORE process community and project lead +- `<https://github.com/vinodreddy-g>`_: SW developer and architect at Tier 1 > 10 years for safety related SW. Contribution to process community. +- `<https://github.com/qor-lb>`_: SW developer and architect at Tier 1 > 2 years for safety related SW. Project lead for safety related SW > 3 years. Lead of architecture community and member of S-CORE project lead circle. The S-CORE processes are trained on the job by the Orchestrator module safety manager to the CODEOWNERS. From 70607d846ad6997bdacfd2ea84664ce885e09207 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Willenb=C3=BCcher?= <adrian.willenbuecher.ext@qorix.ai> Date: Tue, 11 Nov 2025 17:06:46 +0100 Subject: [PATCH 083/128] ABI CD: support for strings and characters --- .../abi_compatible_data_types/index.rst | 42 ++++++++++- .../requirements.rst | 70 +++++++++++++++++++ 2 files changed, 109 insertions(+), 3 deletions(-) diff --git a/docs/features/communication/abi_compatible_data_types/index.rst b/docs/features/communication/abi_compatible_data_types/index.rst index 9fb5cf0be86..db46f3c1324 100644 --- a/docs/features/communication/abi_compatible_data_types/index.rst +++ b/docs/features/communication/abi_compatible_data_types/index.rst @@ -76,7 +76,7 @@ The following data types shall be supported: * **Primitive Types**: * Boolean - * Numeric (fixed-size integers 8-128 bits, signed and unsigned; IEEE 754 floating-point numbers) + * Character (Unicode scalar value) * **Sequence Types**: @@ -92,6 +92,7 @@ The following data types shall be supported: * **Fixed-Size, Variable-Length Containers**: * Vector + * String (UTF-8 encoded) * Queue * Hash map (*optional*) * Hash set (*optional*) @@ -169,8 +170,11 @@ These types are ABI-compatible when declared using fixed-size standard types: * - Floating point - ``f32``, ``f64`` - ``float``, ``double`` (compliant with IEEE 754) + * - Character + - ``char`` + - ``AbiChar`` (32-bit unsigned integer, valid bit patterns ``0x0`` to ``0xD7FF`` and ``0xE000`` to ``0x10FFFF``) -All types must avoid trap representations and undefined padding. +* Characters can't be represented as native ``uint32_t`` type in C++ without a wrapper, because it must be guaranteed that *surrogate code points* (``0xD800`` to ``0xDFFF``) and non-code points (values above ``0x10FFFF``) won't be stored in memory. Structs and Tuples """""""""""""""""" @@ -236,6 +240,34 @@ To provide bounded sequence types with familiar APIs, a custom vector implementa * Internally, these are ABI-compatible with ``len``, ``capacity`` and ``elements`` accessible from both languages. * The public API must match standard vector types in usability (e.g. ``push()``, ``pop()``). +Strings +""""""" + +Strings have the same memory layout as ``AbiVec<u8>``, but additionally guarantee that their content is valid UTF-8. + +.. code-block:: rust + + #[repr(C)] + pub struct AbiString<const N: usize> { + len: u32, + bytes: [u8; N], + } + +.. code-block:: cpp + + template<std::uint32_t N> + struct AbiString { + private: + std::uint32_t len; + std::uint8_t bytes[N]; + }; + +* Capacity is fixed and equal to ``N`` bytes at compile time. +* Overflow beyond capacity must be a checked error. +* No heap allocation is permitted. +* The public API must provide for a way to extend the string by a single character (Unicode scalar value) and by a string slice encoded as UTF-8. +* Zero-capacity strings (``N=0``) are forbidden, because zero-sized array have different representations in C++ and Rust. + Option Types """""""""""" @@ -309,7 +341,7 @@ Language Conformance Summary - Specification Status * - Primitives - ✅ Native types - - ✅ Native types + - ⚠ Native and custom types - Conforming * - Structs - ✅ ``#[repr(C)]`` @@ -327,6 +359,10 @@ Language Conformance Summary - ❌ ``Vec<T>`` - ❌ ``std::vector<T>`` - ✅ ``AbiVec<T, N>`` required + * - String + - ❌ ``String`` + - ❌ ``std::string`` + - ✅ ``AbiString<N>`` required * - Option - ❌ ``Option<T>`` - ❌ ``std::optional<T>`` diff --git a/docs/features/communication/abi_compatible_data_types/requirements.rst b/docs/features/communication/abi_compatible_data_types/requirements.rst index 52fe94cf66f..4badb4365c6 100644 --- a/docs/features/communication/abi_compatible_data_types/requirements.rst +++ b/docs/features/communication/abi_compatible_data_types/requirements.rst @@ -52,6 +52,16 @@ Restrictions on Native Types For ABI compatibility, floating-point types shall be limited to 32-bit (``f32`` in Rust / ``float`` in C++) and 64-bit (``f64`` in Rust / ``double`` in C++); all floating-point representations shall be compliant with IEEE 754. +.. feat_req:: Characters + :id: feat_req__abi_compatible_data_types__char + :reqtype: Functional + :security: NO + :safety: QM + :satisfies: stkh_req__communication__abi_compatible + :status: valid + + For ABI compatibility, the Unicode character type shall use fixed-width definitions (``char`` in Rust; wrapper around ``std::uint32_t`` in C++), and shall restrict values to the ranges ``0x0`` to ``0xD7FF`` and ``0xE000`` to ``0x10FFFF``. + .. feat_req:: Fixed-size arrays :id: feat_req__abi_compatible_data_types__arr_fix :reqtype: Functional @@ -167,6 +177,66 @@ Vector Any attempt to exceed ``AbiVec.capacity`` shall result in a checked runtime error. +String +^^^^^^ + +.. feat_req:: Provide AbiString<N> + :id: feat_req__abi_compatible_data_types__prv_abs + :reqtype: Functional + :security: NO + :safety: QM + :satisfies: stkh_req__communication__abi_compatible + :status: valid + + An ABI-compatible ``AbiString<N>`` type shall be provided in both C++ and Rust with the specified layout. + + .. code-block:: rust + + #[repr(C)] + pub struct AbiString<const N: usize> { + len: u32, + bytes: [u8; N], + } + + .. code-block:: cpp + + template<std::uint32_t N> + struct AbiString { + private: + std::uint32_t len; + std::uint8_t bytes[N]; + }; + +.. feat_req:: AbiString field semantics + :id: feat_req__abi_compatible_data_types__abs_fld + :reqtype: Functional + :security: NO + :safety: QM + :satisfies: stkh_req__communication__abi_compatible + :status: valid + + ``AbiString.len`` shall report the current byte count; ``AbiString.capacity`` shall equal the compile-time size ``N``. + +.. feat_req:: AbiString API + :id: feat_req__abi_compatible_data_types__abs_noa + :reqtype: Functional + :security: NO + :safety: QM + :satisfies: stkh_req__communication__abi_compatible + :status: valid + + The ``AbiString`` API shall mirror the applicable parts of ``std::basic_string`` / ``String``, but shall not allocate or reallocate memory. + +.. feat_req:: AbiString overflow check + :id: feat_req__abi_compatible_data_types__abs_ovf + :reqtype: Functional + :security: NO + :safety: QM + :satisfies: stkh_req__communication__abi_compatible + :status: valid + + Any attempt to exceed ``AbiString.capacity`` shall result in a checked runtime error. + Option ^^^^^^ .. TODO: Uncomment when issue with "some" in description is resolved From 4c47bbd8199f52178a2f1935c62899795ca86375 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Willenb=C3=BCcher?= <adrian.willenbuecher.ext@qorix.ai> Date: Tue, 11 Nov 2025 17:08:30 +0100 Subject: [PATCH 084/128] ABI CD: clarify requirements for primitive types --- .../communication/abi_compatible_data_types/index.rst | 9 ++++++++- .../abi_compatible_data_types/requirements.rst | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/docs/features/communication/abi_compatible_data_types/index.rst b/docs/features/communication/abi_compatible_data_types/index.rst index db46f3c1324..c144aeead56 100644 --- a/docs/features/communication/abi_compatible_data_types/index.rst +++ b/docs/features/communication/abi_compatible_data_types/index.rst @@ -76,6 +76,12 @@ The following data types shall be supported: * **Primitive Types**: * Boolean + * Integer (signed and unsigned, 8/16/32/64-bit) + * Floating-point: + + * IEEE 754 binary 32/64-bit + * FP16/bfloat16 (*optional*) + * Character (Unicode scalar value) * **Sequence Types**: @@ -163,7 +169,7 @@ These types are ABI-compatible when declared using fixed-size standard types: - C++17 * - Boolean - ``bool`` - - ``bool`` (1 byte, with ``0x00`` and ``0x01`` as the only valid bit patterns) + - ``AbiBool`` (1 byte, with ``0x00`` representing ``false`` and ``0x01`` representing ``true`` as the only valid bit patterns) * - Integers (N = 8, 16, 32, 64) - ``uN``, ``iN`` - ``std::uintN_t``, ``std::intN_t`` @@ -174,6 +180,7 @@ These types are ABI-compatible when declared using fixed-size standard types: - ``char`` - ``AbiChar`` (32-bit unsigned integer, valid bit patterns ``0x0`` to ``0xD7FF`` and ``0xE000`` to ``0x10FFFF``) +* Booleans can't be represented as native ``bool`` type in C++, because the language doesn't guarantee a size of 1 byte, and it doesn't guarantee that only the values ``0x00`` and ``0x01`` will be stored in memory. * Characters can't be represented as native ``uint32_t`` type in C++ without a wrapper, because it must be guaranteed that *surrogate code points* (``0xD800`` to ``0xDFFF``) and non-code points (values above ``0x10FFFF``) won't be stored in memory. Structs and Tuples diff --git a/docs/features/communication/abi_compatible_data_types/requirements.rst b/docs/features/communication/abi_compatible_data_types/requirements.rst index 4badb4365c6..4d8e8cde433 100644 --- a/docs/features/communication/abi_compatible_data_types/requirements.rst +++ b/docs/features/communication/abi_compatible_data_types/requirements.rst @@ -30,7 +30,7 @@ Restrictions on Native Types :satisfies: stkh_req__communication__abi_compatible :status: valid - For ABI compatibility, the implementation shall restrict boolean types to one byte (``bool`` in Rust and C++). + For ABI compatibility, the implementation shall restrict boolean types to one byte (``bool`` in Rust) and to the bit patterns ``0x00`` and ``0x01``. .. feat_req:: Fixed-width integers :id: feat_req__abi_compatible_data_types__int_fix From 36ada3477b8d6ebb360d75e69f1289230cab10d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Willenb=C3=BCcher?= <adrian.willenbuecher.ext@qorix.ai> Date: Tue, 11 Nov 2025 17:11:26 +0100 Subject: [PATCH 085/128] ABI CD: exclude zero-sized types C++ forbids zero-sized types, so any type is at least 1 byte in size. This is incompatible with Rust, where empty structs etc. really have a size of 0. --- .../communication/abi_compatible_data_types/index.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/features/communication/abi_compatible_data_types/index.rst b/docs/features/communication/abi_compatible_data_types/index.rst index c144aeead56..4975a45c601 100644 --- a/docs/features/communication/abi_compatible_data_types/index.rst +++ b/docs/features/communication/abi_compatible_data_types/index.rst @@ -196,6 +196,7 @@ Structs and tuples are supported using standard layout rules: `full specification <https://en.cppreference.com/w/cpp/language/classes.html#Standard-layout_class>`__) Field ordering must be preserved and padding must be identical across compilers. Any alignment greater than the default must be explicitly declared. +Empty structs and tuples are forbidden, because zero-sized types have different representations in C++ and Rust. Enums """"" @@ -215,7 +216,7 @@ Fixed-size arrays are naturally ABI-compatible and supported in both languages. * Rust: ``[T; N]`` * C++: wrapper around ``T[N]`` to enforce bounds-checking for element access -Element types must also conform to this specification. No dynamic length information is allowed. +Empty arrays (``N=0``) are forbidden, because zero-sized types have different representations in C++ and Rust. Vectors """""""" @@ -246,6 +247,7 @@ To provide bounded sequence types with familiar APIs, a custom vector implementa * No heap allocation is permitted. * Internally, these are ABI-compatible with ``len``, ``capacity`` and ``elements`` accessible from both languages. * The public API must match standard vector types in usability (e.g. ``push()``, ``pop()``). +* Zero-capacity vectors (``N=0``) are forbidden, because zero-sized arrays have different representations in C++ and Rust. Strings """"""" From 7a62281bbb6b4de4d54bbc307d2e0c5d5d4c3815 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Willenb=C3=BCcher?= <adrian.willenbuecher.ext@qorix.ai> Date: Tue, 11 Nov 2025 17:14:18 +0100 Subject: [PATCH 086/128] ABI CD: fix problems in structs, enums, and AbiVec spec --- .../abi_compatible_data_types/index.rst | 22 +++++++++---------- .../requirements.rst | 8 +++---- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/docs/features/communication/abi_compatible_data_types/index.rst b/docs/features/communication/abi_compatible_data_types/index.rst index 4975a45c601..baa238d0ee1 100644 --- a/docs/features/communication/abi_compatible_data_types/index.rst +++ b/docs/features/communication/abi_compatible_data_types/index.rst @@ -160,7 +160,6 @@ Primitive Types These types are ABI-compatible when declared using fixed-size standard types: - .. list-table:: Native Type Mapping :header-rows: 1 @@ -195,18 +194,20 @@ Structs and tuples are supported using standard layout rules: (no virtual functions, no virtual inheritance, and only one class in the hierarchy has non-static data members; `full specification <https://en.cppreference.com/w/cpp/language/classes.html#Standard-layout_class>`__) +Field types must themselves be ABI compatible. Field ordering must be preserved and padding must be identical across compilers. Any alignment greater than the default must be explicitly declared. Empty structs and tuples are forbidden, because zero-sized types have different representations in C++ and Rust. Enums """"" -Only fieldless enums with a defined underlying integer type are supported. These must use: +Fieldless enums with a defined underlying integer type are supported. These must use: * ``#[repr(u8)]``, ``#[repr(u16)]``, etc. in Rust * ``enum class MyEnum : std::uint8_t`` in C++ -*Note:* Enums with payloads ("variants" or "tagged unions") are optionally supported. +Each entry in an enum must have well-defined representation. +Enums with payloads ("variants" or "tagged unions") are optionally supported. Arrays """""" @@ -216,36 +217,35 @@ Fixed-size arrays are naturally ABI-compatible and supported in both languages. * Rust: ``[T; N]`` * C++: wrapper around ``T[N]`` to enforce bounds-checking for element access +Element types must themselves be ABI compatible. No dynamic length information is allowed. Empty arrays (``N=0``) are forbidden, because zero-sized types have different representations in C++ and Rust. Vectors -"""""""" +""""""" To provide bounded sequence types with familiar APIs, a custom vector implementation must be provided in both languages that matches the memory layout defined below. .. code-block:: rust #[repr(C)] - pub struct AbiVec<T> { + pub struct AbiVec<T, const N: usize> { len: u32, - capacity: u32, elements: [T; N], } .. code-block:: cpp - template<typename T, std::size_t N> + template<typename T, std::uint32_t N> struct AbiVec { private: std::uint32_t len; - std::uint32_t capacity; T elements[N]; }; -* Capacity is fixed and equal to ``N`` at compile time. +* Capacity is fixed and equal to ``N`` elements at compile time. * Overflow beyond capacity must be a checked error. * No heap allocation is permitted. -* Internally, these are ABI-compatible with ``len``, ``capacity`` and ``elements`` accessible from both languages. +* Internally, these are ABI-compatible with ``len`` and ``elements`` accessible from both languages. * The public API must match standard vector types in usability (e.g. ``push()``, ``pop()``). * Zero-capacity vectors (``N=0``) are forbidden, because zero-sized arrays have different representations in C++ and Rust. @@ -362,7 +362,7 @@ Language Conformance Summary - Conforming * - Arrays - ✅ ``[T; N]`` - - ✅ ``T[N]`` + - ✅ ``std::array<T, N>`` - Conforming * - Vector - ❌ ``Vec<T>`` diff --git a/docs/features/communication/abi_compatible_data_types/requirements.rst b/docs/features/communication/abi_compatible_data_types/requirements.rst index 4d8e8cde433..d286f6feeed 100644 --- a/docs/features/communication/abi_compatible_data_types/requirements.rst +++ b/docs/features/communication/abi_compatible_data_types/requirements.rst @@ -131,19 +131,17 @@ Vector .. code-block:: rust #[repr(C)] - pub struct AbiVec<T> { + pub struct AbiVec<T, const N: usize> { len: u32, - capacity: u32, elements: [T; N], } .. code-block:: cpp - template<typename T, std::size_t N> + template<typename T, std::uint32_t N> struct AbiVec { private: std::uint32_t len; - std::uint32_t capacity; T elements[N]; }; @@ -165,7 +163,7 @@ Vector :satisfies: stkh_req__communication__abi_compatible :status: valid - The ``AbiVec`` API shall mirror ``std::vector`` / ``Vec<T>`` but shall not allocate or reallocate memory. + The ``AbiVec`` API shall mirror ``std::vector`` / ``Vec<T>``, but shall not allocate or reallocate memory. .. feat_req:: AbiVec overflow check :id: feat_req__abi_compatible_data_types__abv_ovf From 5923de22973a49a1aa54769eb40dd8115ab6c2b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Willenb=C3=BCcher?= <adrian.willenbuecher.ext@qorix.ai> Date: Tue, 11 Nov 2025 17:17:27 +0100 Subject: [PATCH 087/128] ABI CD: improve AbiOption and AbiResult spec --- .../abi_compatible_data_types/index.rst | 20 ++--- .../requirements.rst | 75 +++++++++---------- 2 files changed, 47 insertions(+), 48 deletions(-) diff --git a/docs/features/communication/abi_compatible_data_types/index.rst b/docs/features/communication/abi_compatible_data_types/index.rst index baa238d0ee1..3f658d3aa2c 100644 --- a/docs/features/communication/abi_compatible_data_types/index.rst +++ b/docs/features/communication/abi_compatible_data_types/index.rst @@ -286,7 +286,7 @@ ABI-compatible optional types must be implemented manually using a one-byte tag #[repr(C)] pub struct AbiOption<T> { - is_some: u8, + is_some: bool, value: T, } @@ -295,13 +295,13 @@ ABI-compatible optional types must be implemented manually using a one-byte tag template<typename T> struct AbiOption { private: - std::uint8_t is_some; + AbiBool is_some; T value; }; -* ``is_some == 0`` indicates absence; ``1`` indicates presence. +* ``is_some == false`` indicates absence; ``true`` indicates presence. * The value field is always initialized and occupies memory regardless of state. -* The public API must match standard optional types in usability. +* The public API should match standard optional types in usability, as far as possible. Result Types """""""""""" @@ -312,14 +312,14 @@ Result types represent tagged unions with two possible states. #[repr(C)] pub struct AbiResult<T, E> { - is_ok: u8, + is_err: bool, value: AbiResultUnion<T, E>, } #[repr(C)] union AbiResultUnion<T, E> { - ok: T, - err: E, + ok: ManuallyDrop<T>, + err: ManuallyDrop<E>, } .. code-block:: cpp @@ -327,15 +327,15 @@ Result types represent tagged unions with two possible states. template<typename T, typename E> struct AbiResult { private: - std::uint8_t is_ok; + AbiBool is_err; union { T ok; E err; } value; }; -* ``is_ok == 1`` indicates ``ok`` field is valid -* ``is_ok == 0`` indicates ``err`` field is valid +* ``is_err == false`` indicates ``ok`` field is valid +* ``is_err == true`` indicates ``err`` field is valid * The layout must guarantee correct union member interpretation based on the discriminant Language Conformance Summary diff --git a/docs/features/communication/abi_compatible_data_types/requirements.rst b/docs/features/communication/abi_compatible_data_types/requirements.rst index d286f6feeed..f416f1eba32 100644 --- a/docs/features/communication/abi_compatible_data_types/requirements.rst +++ b/docs/features/communication/abi_compatible_data_types/requirements.rst @@ -237,44 +237,43 @@ String Option ^^^^^^ -.. TODO: Uncomment when issue with "some" in description is resolved -.. .. feat_req:: Provide AbiOption<T> -.. :id: feat_req__abi_compatible_data_types__prv_abo -.. :reqtype: Functional -.. :security: NO -.. :safety: QM -.. :satisfies: stkh_req__communication__abi_compatible -.. :status: valid +.. feat_req:: Provide AbiOption<T> + :id: feat_req__abi_compatible_data_types__prv_abo + :reqtype: Functional + :security: NO + :safety: QM + :satisfies: stkh_req__communication__abi_compatible + :status: valid -.. An ABI-compatible ``AbiOption<T>`` type shall be provided in both C++ and Rust with the specified layout. + An ABI-compatible ``AbiOption<T>`` type shall be provided in both C++ and Rust with the specified layout. -.. .. code-block:: rust + .. code-block:: rust -.. #[repr(C)] -.. pub struct AbiOption<T> { -.. is_some: u8, -.. value: T, -.. } + #[repr(C)] + pub struct AbiOption<T> { + is_some: bool, + value: T, + } -.. .. code-block:: cpp + .. code-block:: cpp -.. template<typename T> -.. struct AbiOption { -.. private: -.. std::uint8_t is_some; -.. T value; -.. }; + template<typename T> + struct AbiOption { + private: + AbiBool is_some; + T value; + }; -.. .. feat_req:: AbiOption is_some flag -.. :id: feat_req__abi_compatible_data_types__abo_flg -.. :reqtype: Functional -.. :security: NO -.. :safety: QM -.. :satisfies: stkh_req__communication__abi_compatible -.. :status: valid +.. feat_req:: AbiOption is_some flag + :id: feat_req__abi_compatible_data_types__abo_flg + :reqtype: Functional + :security: NO + :safety: QM + :satisfies: stkh_req__communication__abi_compatible + :status: valid -.. ``AbiOption.is_some`` shall be ``0`` when empty and ``1`` when containing a value. + ``AbiOption.is_some`` shall be ``false`` when empty and ``true`` when containing a value. .. feat_req:: AbiOption API :id: feat_req__abi_compatible_data_types__abo_api @@ -284,7 +283,7 @@ Option :satisfies: stkh_req__communication__abi_compatible :status: valid - The ``AbiOption`` API shall mirror ``std::optional``/``Option<T>`` without introducing extra fields or indirections. + The ``AbiOption`` API shall mirror ``std::optional`` / ``Option<T>`` without introducing extra fields or indirections. Result ^^^^^^ @@ -303,14 +302,14 @@ Result #[repr(C)] pub struct AbiResult<T, E> { - is_ok: u8, + is_err: bool, value: AbiResultUnion<T, E>, } #[repr(C)] union AbiResultUnion<T, E> { - ok: T, - err: E, + ok: ManuallyDrop<T>, + err: ManuallyDrop<E>, } .. code-block:: cpp @@ -318,14 +317,14 @@ Result template<typename T, typename E> struct AbiResult { private: - std::uint8_t is_ok; + AbiBool is_err; union { T ok; E err; } value; }; -.. feat_req:: AbiResult is_ok flag +.. feat_req:: AbiResult is_err flag :id: feat_req__abi_compatible_data_types__ari_flg :reqtype: Functional :security: NO @@ -333,7 +332,7 @@ Result :satisfies: stkh_req__communication__abi_compatible :status: valid - ``AbiResult.is_ok`` shall be ``1`` if ``value.ok`` is valid, and ``0`` if ``value.err`` is valid. + ``AbiResult.is_err`` shall be ``false`` if ``value.ok`` is valid, and ``true`` if ``value.err`` is valid. .. feat_req:: AbiResult API :id: feat_req__abi_compatible_data_types__ari_api @@ -343,4 +342,4 @@ Result :satisfies: stkh_req__communication__abi_compatible :status: valid - The ``AbiResult`` API shall mirror ``std::expected``/``Result<T, E>`` without hidden storage or pointers. + The ``AbiResult`` API shall mirror ``std::expected`` / ``Result<T, E>`` without hidden storage or pointers. From af21fc2d9d39dfe7c375d9b24c8deb38f8222feb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Willenb=C3=BCcher?= <adrian.willenbuecher.ext@qorix.ai> Date: Wed, 12 Nov 2025 15:47:28 +0100 Subject: [PATCH 088/128] ABI CD: minor clarifications --- .../abi_compatible_data_types/index.rst | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/docs/features/communication/abi_compatible_data_types/index.rst b/docs/features/communication/abi_compatible_data_types/index.rst index 3f658d3aa2c..63512ee510f 100644 --- a/docs/features/communication/abi_compatible_data_types/index.rst +++ b/docs/features/communication/abi_compatible_data_types/index.rst @@ -43,9 +43,9 @@ To activate this feature, use the following feature flag: Abstract ======== -This feature request defines a set of ABI-compatible data types and a runtime type description format to support zero-copy inter-process communication between C++17 and Rust 1.8x processes using the same endianness. It ensures consistent type layouts across languages by requiring fixed-size, statically allocated types without absolute pointers or language-specific metadata. +This feature request defines a set of ABI-compatible data types and a runtime type description format to support zero-copy inter-process communication between C++17 and Rust 1.88 processes using the same endianness. It ensures consistent type layouts across languages by requiring fixed-size, statically allocated types without absolute pointers or language-specific metadata. -The specification covers primitive types, structs, enums, arrays, and introduces ABI-stable representations for vectors, options, and results. A runtime-readable type description enables processes to interpret shared memory without compile-time access to type definitions. +The specification covers primitive types, structs, enums, arrays, and introduces ABI-stable representations for vectors, strings, options, and results. An optional runtime-readable type description enables processes to interpret shared memory without compile-time access to type definitions. Motivation @@ -53,7 +53,7 @@ Motivation This feature request addresses specific challenges in achieving type compatibility within our inter-process communication (IPC) framework that leverages zero-copy shared memory mechanisms. Two essential scenarios are under evaluation: -1. **ABI Compatibility**: Processes implemented in different programming languages (C++17 and Rust 1.8x) must interpret a shared memory location consistently as the same native type, provided both have compile-time access to the type definition. This scenario eliminates serialization overhead and allows direct memory access. +1. **ABI Compatibility**: Processes implemented in different programming languages (C++17 and Rust 1.88) must interpret a shared memory location consistently as the same native type, provided both have compile-time access to the type definition. This scenario eliminates serialization overhead and allows direct memory access. 2. **Type Description**: It should be possible to record arbitrary data streams, and convert or analyze them at a later time and/or on a different system, without having to recompile the conversion or analysis tools for that particular data format. A machine-readable description of the format, including any user-defined data types, should be available on request during runtime. In addition, this description could potentially be used by gateway processes to perform relatively simple but generic transformations between different data representations. @@ -61,7 +61,7 @@ This feature request addresses specific challenges in achieving type compatibili ABI Compatibility ----------------- -Our communication feature relies on shared memory to transfer data between processes. For effective zero-copy data exchange, processes written in C++17 and Rust 1.8x must inherently understand the data at shared memory locations identically. Achieving this requires ensuring that data types have consistent, fixed-size memory layouts. +Our communication feature relies on shared memory to transfer data between processes. For effective zero-copy data exchange, processes written in C++17 and Rust 1.88 must inherently understand the data at shared memory locations identically. Achieving this requires ensuring that data types have consistent, fixed-size memory layouts. This evaluation initially targets the following process configurations: @@ -69,6 +69,7 @@ This evaluation initially targets the following process configurations: * Processes running on different operating systems but under the same hypervisor. Supporting different endianness between processes is explicitly out of scope, as it inherently demands bit manipulation, effectively requiring serialization. +A mechanism to ensure that sender and receiver use the same endianness is out of scope as well. Different bit widths, however, are implicitly supported by specifying the width of all types and excluding word-size integers. The following data types shall be supported: @@ -116,6 +117,9 @@ Type Description A critical scalability feature involves gateway processes, which subscribe to IPC endpoints and translate ABI-compatible data types into external serialization formats. These gateways require the ability to interpret data without compile-time access to type definitions. To address this, an explicit runtime-readable type description format is necessary. This description allows dynamic, runtime interpretation of data structures, enabling the addition of new IPC topics without recompiling gateway processes. +Summary +------- + In summary, the motivation behind this feature request is to define and standardize ABI-compatible data types and a runtime-accessible type description mechanism to ensure interoperability and scalability in zero-copy IPC scenarios involving multiple languages and dynamic environments. @@ -129,7 +133,7 @@ Specification ABI Compatibility ----------------- -This specification defines the set of rules and constraints for representing data types in shared memory such that they can be interpreted consistently across processes implemented in C++17 and Rust 1.8x. These types enable zero-copy inter-process communication by enforcing ABI compatibility at the memory layout level. The focus is on data exchange between processes using the same endianness. +This specification defines the set of rules and constraints for representing data types in shared memory such that they can be interpreted consistently across processes implemented in C++17 and Rust 1.88. These types enable zero-copy inter-process communication by enforcing ABI compatibility at the memory layout level. The focus is on data exchange between processes using the same endianness. Assumptions ^^^^^^^^^^^ From 9e9b3cdac3ad614c9864a5a3349fb7a701f58e01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Willenb=C3=BCcher?= <adrian.willenbuecher.ext@qorix.ai> Date: Thu, 13 Nov 2025 09:01:34 +0100 Subject: [PATCH 089/128] ABI CD: distinguish between type descriptions and structure metadata --- .../abi_compatible_data_types/index.rst | 28 ++++++++----------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/docs/features/communication/abi_compatible_data_types/index.rst b/docs/features/communication/abi_compatible_data_types/index.rst index 63512ee510f..c5992d11822 100644 --- a/docs/features/communication/abi_compatible_data_types/index.rst +++ b/docs/features/communication/abi_compatible_data_types/index.rst @@ -43,9 +43,9 @@ To activate this feature, use the following feature flag: Abstract ======== -This feature request defines a set of ABI-compatible data types and a runtime type description format to support zero-copy inter-process communication between C++17 and Rust 1.88 processes using the same endianness. It ensures consistent type layouts across languages by requiring fixed-size, statically allocated types without absolute pointers or language-specific metadata. +This feature request defines a set of ABI-compatible data types and a runtime type metadata format to support zero-copy inter-process communication between C++17 and Rust 1.88 processes using the same endianness. It ensures consistent type layouts across languages by requiring fixed-size, statically allocated types without absolute pointers or language-specific metadata. -The specification covers primitive types, structs, enums, arrays, and introduces ABI-stable representations for vectors, strings, options, and results. An optional runtime-readable type description enables processes to interpret shared memory without compile-time access to type definitions. +The specification covers primitive types, structs, enums, arrays, and introduces ABI-stable representations for vectors, strings, options, and results. An optional runtime-readable type structure metadata enables processes to interpret shared memory without compile-time access to type definitions. Motivation @@ -55,7 +55,7 @@ This feature request addresses specific challenges in achieving type compatibili 1. **ABI Compatibility**: Processes implemented in different programming languages (C++17 and Rust 1.88) must interpret a shared memory location consistently as the same native type, provided both have compile-time access to the type definition. This scenario eliminates serialization overhead and allows direct memory access. -2. **Type Description**: It should be possible to record arbitrary data streams, and convert or analyze them at a later time and/or on a different system, without having to recompile the conversion or analysis tools for that particular data format. A machine-readable description of the format, including any user-defined data types, should be available on request during runtime. In addition, this description could potentially be used by gateway processes to perform relatively simple but generic transformations between different data representations. +2. **Type Structure Metadata**: It should be possible to record arbitrary data streams, and convert or analyze them at a later time and/or on a different system, without having to recompile the conversion or analysis tools for that particular data format. A machine-readable description of the format, including any user-defined data types, should be available on request during runtime. In addition, this structure description could potentially be used by gateway processes to perform relatively simple but generic transformations between different data representations. ABI Compatibility @@ -390,14 +390,7 @@ Language Conformance Summary Type Description ---------------- -To address the scenarios outlined in the motivation, a clearly defined type description mechanism is required. The type description provides sufficient information during runtime, enabling a process without compile-time access to type definitions to correctly interpret a given memory location according to the previously established ABI rules. - -The goals are: - -* Enable interpretation of shared memory content without compile-time access to type definitions. -* Support all ABI-compatible data types previously defined. -* Include versioning to manage schema evolution and compatibility. -* Allow easy generation and parsing by tooling in both C++ and Rust. +To address the scenarios outlined in the motivation, a clearly defined type description mechanism is required. Workflows ^^^^^^^^^ @@ -410,10 +403,11 @@ Two potential workflows are considered for creating type descriptions: Both workflows are valid, and the final decision is deferred pending further feasibility analysis. -Type Description Format +Type Structure Metadata ^^^^^^^^^^^^^^^^^^^^^^^ -The format of the type description shall explicitly support versioning to allow schema evolution and backward compatibility. It must accommodate all data types described earlier in the ABI compatibility section. It should be simple, human-readable, and easily machine-parsable. +Precise information about the structure of the types is preserved for use during runtime, enabling a process without compile-time access to type definitions to correctly interpret a given memory location according to the previously established ABI rules. +The format of the type metadata shall explicitly support versioning to allow schema evolution and backward compatibility. It must accommodate all data types described earlier in the ABI compatibility section. It should be simple, human-readable, and easily machine-parsable. The choice of serialization format is left open but may include RON, JSON5, or a custom DSL, based on readability, tooling support, and maintainability. @@ -459,7 +453,7 @@ Reflection Reflection, in this context, is the ability to inspect data at runtime even if its structure is not or not fully known at compile time. Benefits of reflection include being able to translate recorded data into a human-readable format (e.g., JSON or CSV) without having to know the type definitions at compile time; this enables general-purpose data recording and transformation tools. -This ability requires some form of *type description* being available at runtime, so that a sequence of bytes can be interpreted as a data structure. +This ability requires some form of *type structure metadata* being available at runtime, so that a sequence of bytes can be interpreted as a data structure. There are two primary approaches to achieve this goal: * *inline type descriptions*, which precede each instance of every type, and @@ -480,10 +474,10 @@ This approach, however, comes with significant downsides: Alternative Approach ^^^^^^^^^^^^^^^^^^^^ -Instead of inserting inline type descriptions into each instance of an ABI compatible type, the full type description can be made available to a consumer only once, either proactively or on request. +Instead of inserting inline type descriptions into each instance of an ABI compatible type, the full type structure metadata can be made available to a consumer only once, either proactively or on request. The consumer decides if it uses or ignores this metadata. -This type description can be used to dynamically translate between the compact, non-reflective ABI compatible data structures on one side, and a reflective, inline-describing format on the other side. +This description of the type structure can be used to dynamically translate between the compact, non-reflective ABI compatible data structures on one side, and a reflective, inline-describing format on the other side. Although this incurs a copy and some minor processing, the overhead should be negligible compared to other computational tasks involving the payload. One method to efficiently translate a payload consisting of ABI compatible types to an inline-described reflective format is to convert the hierarchical type description to a flat list of *instructions* which can be executed by an interpreter. @@ -525,7 +519,7 @@ Reflection will not be part of version 1.0 of this feature request. 3. The specification for SOME/IP types is incompatible with the requirement of ABI vectors that can grow dynamically during construction, i.e., vectors which contain fewer valid elements than they take up space in memory. 4. Inserting inline type descriptions on demand is expected to be a relatively cheap operation, which negates the main motivation for including them directly in ABI types in the first place. -* External type descriptions will probably be included in a later version of this feature request. +* External type structure descriptions will probably be included in a later version of this feature request. For now, they're postponed until we have a better understanding of the relevant use cases. From 4053bbec3a94e9dfdbb5386b04095859b3270f15 Mon Sep 17 00:00:00 2001 From: AndreasMittag <andreas.mittag@etas.com> Date: Wed, 21 Jan 2026 18:28:33 +0100 Subject: [PATCH 090/128] Downdate reference to technical communities in documentation Signed-off-by: AndreasMittag <andreas.mittag@etas.com> --- docs/platform_management_plan/project_management.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index 96fd284b33d..662242c2fc0 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -130,7 +130,7 @@ The Technical Lead Circle will soon be merged with the Project Lead Circle: `#23 - TLC Repositories: - https://github.com/eclipse-score/score -.. _pmp_pm_communities: +.. _pmp_pm_technical_communities: Communities ----------- From 6b762bcee886e47bb15614abb7c1e1d20f423965 Mon Sep 17 00:00:00 2001 From: AndreasMittag <andreas.mittag@etas.com> Date: Wed, 21 Jan 2026 18:44:58 +0100 Subject: [PATCH 091/128] Update terminology in contribution guideline / organization Signed-off-by: AndreasMittag <andreas.mittag@etas.com> --- docs/contribute/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/contribute/index.rst b/docs/contribute/index.rst index 3fe9efa118c..12235863c7b 100644 --- a/docs/contribute/index.rst +++ b/docs/contribute/index.rst @@ -56,7 +56,7 @@ How is S-CORE organized Eclipse S-CORE is an open source project, so everyone is welcome to contribute. Since we are organized within the Eclipse Foundation, you must have an Eclipse Foundation account to participate - please see :ref:`contribution_attribution` for details. -The project is structured into various :ref:`technical committees <pmp_pm_technical_committees>`, that include communities which focus on cross-cutting topics and feature teams responsible for the implementation of specific functionalities. Their meetings are public; feel free to join or review the minutes via our `GitHub Discussions <https://github.com/orgs/eclipse-score/discussions>`_. +The project is structured into various :ref:`communities <pmp_pm_communities>`, which focus on cross-cutting topics and :ref:`feature teams <pmp_pm_feature_teams>` responsible for the implementation of specific functionalities. Their meetings are public; feel free to join or review the minutes via our `GitHub Discussions <https://github.com/orgs/eclipse-score/discussions>`_. Additionally, two :ref:`steering committees <pmp_pm_steering_committees>`, the Technical Lead Circle and the Project Lead Circle, oversee the overall steering and planning of S-CORE. From cbaefdbe123e288542d73dc97e7a9e3236ad4daf Mon Sep 17 00:00:00 2001 From: AndreasMittag <andreas.mittag@etas.com> Date: Wed, 21 Jan 2026 18:46:12 +0100 Subject: [PATCH 092/128] Fix reference label for project management communities added feature team reference Signed-off-by: AndreasMittag <andreas.mittag@etas.com> --- docs/platform_management_plan/project_management.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index 662242c2fc0..6b7468de688 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -130,7 +130,7 @@ The Technical Lead Circle will soon be merged with the Project Lead Circle: `#23 - TLC Repositories: - https://github.com/eclipse-score/score -.. _pmp_pm_technical_communities: +.. _pmp_pm_communities: Communities ----------- @@ -282,6 +282,8 @@ Marketing & Communication Community - https://github.com/eclipse-score/eclipse-score-website-preview - https://github.com/eclipse-score/eclipse-score-website-published +.. _pmp_pm_feature_teams: + Feature Teams ------------- *Feature Teams* have end-to-end responsibility for providing specific functionalities. This includes all From 83b7ca5707bac236251dac82911ad061504b5575 Mon Sep 17 00:00:00 2001 From: "jhr2hi@bosch.com" <roland.jentsch@etas.com> Date: Mon, 19 Jan 2026 07:37:10 +0000 Subject: [PATCH 093/128] improvement switch to new docs as code --- MODULE.bazel | 4 +-- .../lifecycle/architecture/launch_manager.rst | 2 +- docs/features/lifecycle/index.rst | 4 +-- docs/modules/lifecycle/index.rst | 28 +++++++++++++++---- 4 files changed, 28 insertions(+), 10 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index 04f3f5ed8f8..10469c3817d 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -73,5 +73,5 @@ bazel_dep(name = "rules_java", version = "8.15.1") # ############################################################################### bazel_dep(name = "score_tooling", version = "1.0.4") -bazel_dep(name = "score_docs_as_code", version = "2.3.0") -bazel_dep(name = "score_process", version = "1.4.1") +bazel_dep(name = "score_docs_as_code", version = "2.3.2") +bazel_dep(name = "score_process", version = "1.4.2") diff --git a/docs/features/lifecycle/architecture/launch_manager.rst b/docs/features/lifecycle/architecture/launch_manager.rst index 4c29c258d78..2976846c4db 100644 --- a/docs/features/lifecycle/architecture/launch_manager.rst +++ b/docs/features/lifecycle/architecture/launch_manager.rst @@ -42,7 +42,7 @@ E.g. the configuration below consists of three :term:`Run Targets <Run Target>` :scale: 50 :align: center -The :need:`comp_arc_sta__lifecycle__launch_manager` implements the following interfaces,for the selection of :term:`Run Target` s, starting and stopping of components and monitoring of the processes. +The :need:`comp__lifecycle_launch_manager` implements the following interfaces,for the selection of :term:`Run Target` s, starting and stopping of components and monitoring of the processes. Switching between Run Targets ----------------------------- diff --git a/docs/features/lifecycle/index.rst b/docs/features/lifecycle/index.rst index 0c24127603a..2bc7ee8f7d9 100644 --- a/docs/features/lifecycle/index.rst +++ b/docs/features/lifecycle/index.rst @@ -108,7 +108,7 @@ Specification .. mod_view_sta:: Feature architecture :id: mod_view_sta__lifecycle__overview - :includes: comp_arc_sta__lifecycle__launch_manager, comp_arc_sta__lifecycle__healthmonitor + :includes: comp__lifecycle_launch_manager, comp__lifecycle_healthmonitor .. needarch:: :scale: 50 @@ -122,7 +122,7 @@ Specification LifecycleApplication --> logic_arc_int__lifecycle__deadline_monitor_if :use LifecycleApplication --> posix_signals : implements NativeApplication --> posix_signals : implements - comp_arc_sta__lifecycle__launch_manager --> posix_signals : use + comp__lifecycle_launch_manager --> posix_signals : use The overall functionality of the feature can be split into 2 subfeatures, which are diff --git a/docs/modules/lifecycle/index.rst b/docs/modules/lifecycle/index.rst index 7f6078aafd8..0729cd8f267 100644 --- a/docs/modules/lifecycle/index.rst +++ b/docs/modules/lifecycle/index.rst @@ -18,7 +18,7 @@ Lifecycle .. mod_view_sta:: Lifecycle :id: mod_view_sta__lifecycle__modules - :includes: comp_arc_sta__lifecycle__launch_manager, comp_arc_sta__lifecycle__healthmonitor + :includes: comp__lifecycle_launch_manager, comp__lifecycle_healthmonitor .. needarch:: :scale: 50 @@ -26,8 +26,8 @@ Lifecycle {{ draw_module(need(), needs) }} -.. comp_arc_sta:: Launch Manager - :id: comp_arc_sta__lifecycle__launch_manager +.. comp:: Launch Manager + :id: comp__lifecycle_launch_manager :status: valid :safety: ASIL_B :implements: logic_arc_int__lifecycle__controlif, logic_arc_int__lifecycle__alive_if @@ -36,14 +36,23 @@ Lifecycle :includes: :fulfils: + +.. comp_arc_sta:: Launch Manager Static View + :id: comp_arc_sta__lifecycle__launch_manager + :status: valid + :safety: ASIL_B + :security: NO + :includes: logic_arc_int__lifecycle__controlif, logic_arc_int__lifecycle__alive_if + :fulfils: + .. needarch:: :scale: 50 :align: center {{ draw_component(need(), needs) }} -.. comp_arc_sta:: Health Monitor - :id: comp_arc_sta__lifecycle__healthmonitor +.. comp:: Health Monitor + :id: comp__lifecycle_healthmonitor :status: valid :safety: ASIL_B :implements: logic_arc_int__lifecycle__deadline_monitor_if,logic_arc_int__lifecycle__logical_monitor_if @@ -52,6 +61,15 @@ Lifecycle :includes: :fulfils: +.. comp_arc_sta:: Health Monitor Static View + :id: comp_arc_sta__lifecycle__healthmonitor + :status: valid + :safety: ASIL_B + :uses: logic_arc_int__lifecycle__alive_if + :security: NO + :includes: logic_arc_int__lifecycle__deadline_monitor_if,logic_arc_int__lifecycle__logical_monitor_if + :fulfils: + .. needarch:: :scale: 50 :align: center From fcced201e5444672908dd4c02052e6cb1ab30f24 Mon Sep 17 00:00:00 2001 From: "jhr2hi@bosch.com" <roland.jentsch@etas.com> Date: Mon, 19 Jan 2026 11:09:58 +0000 Subject: [PATCH 094/128] increase version --- MODULE.bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MODULE.bazel b/MODULE.bazel index 10469c3817d..42443a3a221 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -73,5 +73,5 @@ bazel_dep(name = "rules_java", version = "8.15.1") # ############################################################################### bazel_dep(name = "score_tooling", version = "1.0.4") -bazel_dep(name = "score_docs_as_code", version = "2.3.2") +bazel_dep(name = "score_docs_as_code", version = "2.3.3") bazel_dep(name = "score_process", version = "1.4.2") From 97a54ca4d2926294039d25dbbc953a1cf18f9e82 Mon Sep 17 00:00:00 2001 From: "jhr2hi@bosch.com" <roland.jentsch@etas.com> Date: Mon, 19 Jan 2026 11:11:54 +0000 Subject: [PATCH 095/128] fix review findings --- docs/modules/lifecycle/index.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/modules/lifecycle/index.rst b/docs/modules/lifecycle/index.rst index 0729cd8f267..187b8e62dd9 100644 --- a/docs/modules/lifecycle/index.rst +++ b/docs/modules/lifecycle/index.rst @@ -55,20 +55,20 @@ Lifecycle :id: comp__lifecycle_healthmonitor :status: valid :safety: ASIL_B + :security: YES :implements: logic_arc_int__lifecycle__deadline_monitor_if,logic_arc_int__lifecycle__logical_monitor_if :uses: logic_arc_int__lifecycle__alive_if :security: NO :includes: - :fulfils: .. comp_arc_sta:: Health Monitor Static View :id: comp_arc_sta__lifecycle__healthmonitor :status: valid :safety: ASIL_B + :security: YES :uses: logic_arc_int__lifecycle__alive_if :security: NO :includes: logic_arc_int__lifecycle__deadline_monitor_if,logic_arc_int__lifecycle__logical_monitor_if - :fulfils: .. needarch:: :scale: 50 From c301cf7157ff6c3fb7b35d200cd475292b4b0135 Mon Sep 17 00:00:00 2001 From: "jhr2hi@bosch.com" <roland.jentsch@etas.com> Date: Mon, 19 Jan 2026 11:13:34 +0000 Subject: [PATCH 096/128] fix review findings --- docs/modules/lifecycle/index.rst | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/modules/lifecycle/index.rst b/docs/modules/lifecycle/index.rst index 187b8e62dd9..239914a14a1 100644 --- a/docs/modules/lifecycle/index.rst +++ b/docs/modules/lifecycle/index.rst @@ -33,8 +33,6 @@ Lifecycle :implements: logic_arc_int__lifecycle__controlif, logic_arc_int__lifecycle__alive_if :uses: logic_arc_int__logging__logging, logic_arc_int__baselibs__json, logic_arc_int__os__fork, logic_arc_int__lifecycle__lifecycle_if :security: NO - :includes: - :fulfils: .. comp_arc_sta:: Launch Manager Static View @@ -43,7 +41,6 @@ Lifecycle :safety: ASIL_B :security: NO :includes: logic_arc_int__lifecycle__controlif, logic_arc_int__lifecycle__alive_if - :fulfils: .. needarch:: :scale: 50 @@ -59,7 +56,6 @@ Lifecycle :implements: logic_arc_int__lifecycle__deadline_monitor_if,logic_arc_int__lifecycle__logical_monitor_if :uses: logic_arc_int__lifecycle__alive_if :security: NO - :includes: .. comp_arc_sta:: Health Monitor Static View :id: comp_arc_sta__lifecycle__healthmonitor From 4de038fdab2398905a48f43b9a140733e1867950 Mon Sep 17 00:00:00 2001 From: "jhr2hi@bosch.com" <roland.jentsch@etas.com> Date: Mon, 19 Jan 2026 11:22:43 +0000 Subject: [PATCH 097/128] fix build error --- docs/features/lifecycle/architecture/launch_manager.rst | 4 +--- docs/modules/lifecycle/index.rst | 2 -- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/docs/features/lifecycle/architecture/launch_manager.rst b/docs/features/lifecycle/architecture/launch_manager.rst index 2976846c4db..1db2ea0dac7 100644 --- a/docs/features/lifecycle/architecture/launch_manager.rst +++ b/docs/features/lifecycle/architecture/launch_manager.rst @@ -117,11 +117,10 @@ This unified approach allows external state managers to request any run target a .. feat_arc_dyn:: Control interface dynamic architecture activate run target :id: feat_arc_dyn__lifecycle__control_if_activate - :security: YES :status: valid :safety: ASIL_B + :security: YES :fulfils: feat_req__lifecycle__control_commands, feat_req__lifecycle__request_run_target_start, feat_req__lifecycle__switch_run_targets - :includes: .. uml:: _assets/control_interface_start_sequence.puml :scale: 50 @@ -250,7 +249,6 @@ Dynamic Architecture :status: valid :safety: ASIL_B :fulfils: feat_req__lifecycle__control_commands, feat_req__lifecycle__request_run_target_start, feat_req__lifecycle__switch_run_targets - :includes: .. uml:: _assets/lifecycle_state_machine.puml :scale: 50 diff --git a/docs/modules/lifecycle/index.rst b/docs/modules/lifecycle/index.rst index 239914a14a1..57e0834f817 100644 --- a/docs/modules/lifecycle/index.rst +++ b/docs/modules/lifecycle/index.rst @@ -55,7 +55,6 @@ Lifecycle :security: YES :implements: logic_arc_int__lifecycle__deadline_monitor_if,logic_arc_int__lifecycle__logical_monitor_if :uses: logic_arc_int__lifecycle__alive_if - :security: NO .. comp_arc_sta:: Health Monitor Static View :id: comp_arc_sta__lifecycle__healthmonitor @@ -63,7 +62,6 @@ Lifecycle :safety: ASIL_B :security: YES :uses: logic_arc_int__lifecycle__alive_if - :security: NO :includes: logic_arc_int__lifecycle__deadline_monitor_if,logic_arc_int__lifecycle__logical_monitor_if .. needarch:: From 7c2de8721973b4fa9aa95d246e0b85ee6083d56f Mon Sep 17 00:00:00 2001 From: "jhr2hi@bosch.com" <roland.jentsch@etas.com> Date: Mon, 19 Jan 2026 11:25:05 +0000 Subject: [PATCH 098/128] hold old value --- docs/modules/lifecycle/index.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/modules/lifecycle/index.rst b/docs/modules/lifecycle/index.rst index 57e0834f817..81690be4c74 100644 --- a/docs/modules/lifecycle/index.rst +++ b/docs/modules/lifecycle/index.rst @@ -52,7 +52,7 @@ Lifecycle :id: comp__lifecycle_healthmonitor :status: valid :safety: ASIL_B - :security: YES + :security: NO :implements: logic_arc_int__lifecycle__deadline_monitor_if,logic_arc_int__lifecycle__logical_monitor_if :uses: logic_arc_int__lifecycle__alive_if @@ -60,7 +60,7 @@ Lifecycle :id: comp_arc_sta__lifecycle__healthmonitor :status: valid :safety: ASIL_B - :security: YES + :security: NO :uses: logic_arc_int__lifecycle__alive_if :includes: logic_arc_int__lifecycle__deadline_monitor_if,logic_arc_int__lifecycle__logical_monitor_if From 2ee48652943212407b8ed72bf3df28e11580e0c1 Mon Sep 17 00:00:00 2001 From: "jhr2hi@bosch.com" <roland.jentsch@etas.com> Date: Tue, 20 Jan 2026 15:44:57 +0000 Subject: [PATCH 099/128] remove includes --- docs/modules/lifecycle/index.rst | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/modules/lifecycle/index.rst b/docs/modules/lifecycle/index.rst index 81690be4c74..dbc68671139 100644 --- a/docs/modules/lifecycle/index.rst +++ b/docs/modules/lifecycle/index.rst @@ -40,7 +40,6 @@ Lifecycle :status: valid :safety: ASIL_B :security: NO - :includes: logic_arc_int__lifecycle__controlif, logic_arc_int__lifecycle__alive_if .. needarch:: :scale: 50 @@ -62,7 +61,6 @@ Lifecycle :safety: ASIL_B :security: NO :uses: logic_arc_int__lifecycle__alive_if - :includes: logic_arc_int__lifecycle__deadline_monitor_if,logic_arc_int__lifecycle__logical_monitor_if .. needarch:: :scale: 50 From e3aefd39955f42cad99f45b47976d90d7cee007e Mon Sep 17 00:00:00 2001 From: Andreas Mittag <andreas.mittag@etas.com> Date: Wed, 21 Jan 2026 17:24:40 +0000 Subject: [PATCH 100/128] pmp_pm_technical_committees re-renamed --- docs/platform_management_plan/project_management.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index 6b7468de688..8d89661ca4a 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -130,7 +130,7 @@ The Technical Lead Circle will soon be merged with the Project Lead Circle: `#23 - TLC Repositories: - https://github.com/eclipse-score/score -.. _pmp_pm_communities: +.. _pmp_pm_technical_committees: Communities ----------- From b96fa2ffede5ae27c41ce1295cba1e95ebd28ec1 Mon Sep 17 00:00:00 2001 From: Andreas Mittag <andreas.mittag@etas.com> Date: Thu, 22 Jan 2026 10:17:07 +0000 Subject: [PATCH 101/128] Program -> Product Increment --- .../platform_management_plan/_assets/issue_types.drawio.svg | 6 +++--- .../_assets/planning_overview.drawio.svg | 6 +++--- docs/platform_management_plan/project_management.rst | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/platform_management_plan/_assets/issue_types.drawio.svg b/docs/platform_management_plan/_assets/issue_types.drawio.svg index 8d0e4e32c53..9d090eafb6c 100644 --- a/docs/platform_management_plan/_assets/issue_types.drawio.svg +++ b/docs/platform_management_plan/_assets/issue_types.drawio.svg @@ -1,4 +1,4 @@ -<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="701px" height="371px" viewBox="-0.5 -0.5 701 371" content="<mxfile><diagram id="W5UFwr1Gk-ed2l-zxu-w" name="Page-1">3Zldb9sgFIZ/TW4nbOJ8XOaj3SZ1UtRO2npJbWKjYpNh3CT79QMbHNs4Tbo4idLcBA5gw8PLgYN7cBZvvnK0in6wANOeC4JND857ruuA0UD+Kcu2sHhDtzCEnAS60s7wRP5i01JbMxLgtFZRMEYFWdWNPksS7IuaDXHO1vVqS0brb12hEFuGJx9R2/qLBCIqrCMP7OzfMAkj82YH6JIYmcrakEYoYOuKCd714IwzJopUvJlhquAZLkW7+z2lZcc4TsQxDUyX3xDN9OB+YhRLyyNesZQIxre6p2Jrhs9ZlgRYPQH04HQdEYGfVshXpWs54dIWiZjKnCOTiJIwkWle8Jjq92Eu8GZvp50ShdQQZjEWqhtANzDwtHqckc6vd3MxNMSj6jwMtBHp+Q/LR+8QyYSm1E6sP7KIParpuiVi/WOBwQ6AOdDCgQO5nHQ2YQmujx9viPitUH3xdO65UjLfaIp5ZmsyiexVpZHKPlfLds3ynGm3B6TsLcu4r7urnZNAPMS6lh6TGsi7/DmmSJC3ut84haZrqW/BWcjzJfs98TmO1Uj26885rL8loXTGKON5W7gECAKk7CwRFTvIf9KeCs5ecaVkOh8WJXvpWmJ+R7mNxe7a2i1tVe32O5AutGDfrYjfKd3hYABGLXSX+a+Nbh+6c294Hrpl/hJ0ncGtO4a+7Rgc71qewbN3cpS+dipWDP1RvrCPdwVg7J3LFbgt+/7ZxDr6qFZL3dVUtxPhHt0FKI3K2TlKhENbhG7XGtRNF4yozcVMiNNv+OYm6KKbulWDddmNo/APLXHfYyQyjvNz158Mp91uegB4AC8/4pYBcObTWTdKb3K95J5nYqzb9crQXhBXc8rOp/fKcHBFr9y36E6zsFu4nvRqLXD3O4KpCzo7/VpwL3k+g/bxd/I4s+imEVqpZBbTiS8UhakaIPERfUAvmC5UUEyYimhfmBAsrlSY6FBXsMYssExQkkis5gKnI6Bjr8bTa8HZQrOLMBgObE/wcOM0Xe96OMc2zvzi6pZ5OsMjfOmZgPbt1f4Jgbb5z3MBbdn6bx6o51xRoS0e9PMBvaBCPccCuijGctIJag+CE+6r4diGMmiB4nYBxbWgzCJCg6szaUbbbVC8c0GxNweLB06Cifq2JnM+RWlK/PY40aQr9yFHxIkfu0XptYV7BwNHsx5qkaPbPikHoBvbiTcssDHnpSs4cMNiP2hcf5D1KawY839c1cjs7nNlUX330Rfe/QM=</diagram></mxfile>"> +<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="701px" height="371px" viewBox="-0.5 -0.5 701 371" content="<mxfile><diagram id="W5UFwr1Gk-ed2l-zxu-w" name="Page-1">3Zlbc6MgGIZ/TW53UNQklzm03Z3pzmTandntJVUSmaJkEZtkf/2KgifM1m5NMmluAi+g8PD6ITiCi2h/x9E2/M4CTEc2CPYjuBzZtuVBL/uTyqFQptAuhA0ngapUCY/kD1YiUGpKApw0KgrGqCDbpuizOMa+aGiIc7ZrVlsz2rzrFm2wITz6iJrqTxKIsFAnLqj0r5hsQn1nC6iSCOnKSkhCFLBdTYI3I7jgjIkiFe0XmEp4mkvR7vZIadkxjmPRp4Hu8iuiqRrcD4yiTHnAW5YQwfhB9VQc9PA5S+MAyyuAEZzvQiLw4xb5snSXTXimhSKiWc7KkoiSTZylecFjbvZQdfoVc4H3NUn1+A6zCAvZDaBKNTzlHmui8rtqLsaaeFifB0+JSM3/prx0hShLKErdxJyJQexBTtc1EXP6AoMDALOggQMH2eOksjGLcXP8eE/EL4nqi6tyT7WS5V5RzDMHnYmzXtUayexTvaxqlud0u6NsE5ZyX3VXBSeB+AarWmpMciD/5M8xRYK8NuPGR2jahvtWnAWpLw34LfY5juRIjvvPett/a0LpglHG87ZwDRAESOosFjUd5L9MTwRnL7hWMl+Oi5JBnNt62G3Tu6VW964zgHWhAftmS/xB6Y49D0w66K7zXxddB9pLd3waumX+HHQt79oDg2MGBsu9VGRwzZUcJS+DmhVDf5I/2P1DAZi6pwoFdse6fzKzTt7r1dJ3DddVJjziuwAlYTk7vUw4Nk1oD+1B1XTFiFxc9IRYTis2t0EX3VStWqzLbvTCPzbMfYuRSDnO37t+pzgZdtEDwAV4/Z6wDIC1nC+GcXqb6znXPL3Hut6oDM0H4mJB2fr0URl6F4zKjkF3nm6GhetmUa0D7vFAMLfBYG+/Btxzvp9B8/V39rAw6CYh2spkGtGZLySFuRwg8RG9R8+YruSmmDC5o31mQrCoVmGmtrqCtWaBpYKSOMOqD3AGAjp1GzzdDpwdNIfYBuszr3okuL9ymrZ7OZxTE2d+cHXNPK1xj1h6IqCO+bR/QqBd8fNUQDuW/qsH6loXdGhHBP18QM/oUNcygK6KsXzoDWqIhaUJBU5NKF4HFHsIKLYBZRESGlycSXu33QXFPRUUc3EweOA4mMlva1nOpyhJiN+9T9Tp2nlIj33i+05RjuKu7xO1/Rsbxb5HJ29A19oHT1hga87LUPDGCYt5oWnzQsansALCfxzVZNnqc2VRvfroC2/+Ag==</diagram></mxfile>"> <defs/> <g> <g> @@ -57,13 +57,13 @@ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 100px; margin-left: 181px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Program Increment + Product Increment </div> </div> </div> </foreignObject> <text x="240" y="104" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Program Increment + Product Increment </text> </switch> </g> diff --git a/docs/platform_management_plan/_assets/planning_overview.drawio.svg b/docs/platform_management_plan/_assets/planning_overview.drawio.svg index 5c8e5e87967..4eba9c3dc96 100644 --- a/docs/platform_management_plan/_assets/planning_overview.drawio.svg +++ b/docs/platform_management_plan/_assets/planning_overview.drawio.svg @@ -1,4 +1,4 @@ -<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="821px" height="361px" viewBox="-0.5 -0.5 821 361" content="<mxfile><diagram id="sy3y0YvDUY56zLrZI23Z" name="Page-1">7Vpdk5o8FP41XtoJIuheKrpdO93qqJ12LyNEyCwQGoIf++ubQPhGu28X3XfseqHJk5wk5+Q8DyFjRzW8w2cKA+eRWMjt9IB16KiTTq83AD3+LYBjAvQ1CdgUWwmk5MAKvyAJAolG2EJhqSMjxGU4KIMm8X1kshIGKSX7crctccuzBtBGNWBlQreO/sAWcxJ0qIEcf0DYdtKZFSBbPJh2lkDoQIvsC5A67agGJYQlJe9gIFfELo1LYnd/ojVbGEU+e41BarGDbiSd6/R0l9uOLbwTC2RH6bX+KxKrGpdKtvyNLcIA+o0mG2g+25REvtU1iUtoRx2JLaPQD9Olnhl2kwLL6WK+mq3ny6d4gKSV+7YpWEAv4AV/E4qfx9HsW3c9HT12hWm1tTBCsvLytByOQ1BGG6Bs+vmPb9Pl6mG2SPxrWqFYzN9P8Hm2fvg+7i6W8y9TY30yCCB2eRUgE2+xeWq6XmmrejwTA1FEh3gVJNrELQqvxDuHRMYAXts7mKFVAE3RvOf85pjDPFd23iHKMKfKyMW2zzFGRAcoay7a5rOLruhwMnOVjA9cRxDxEKNH3kUaaH1JoWNGsqS+zxnZT3nnFNmoSxBKFbCzsXOi8ILkygne3BZtwKprzJdTXljO5+v/BVG+Gq3ypHGS3GsCLY9n8m1SRemVqdKvMyXDWmeKWmPKghKbQo+DM9+kyBNeVEOcx1H5cxy32HWNhCDcVt0CqAIocOKzAg7ijyAco+QZFVrGk0HS0kawBxVdAvVoZxtSjHa/hWBrH7J0WVkaLduVpUav7xFkEUXCbfQrQiEL/xFhuq4y6TWy1ALfqi4BoAG0revSNv406RIAymRsXEaX1Gvq0uC2dOnjLeOfecuoKJSiXvMtY1ijzTQQoW5RlAa6Doaj/yJK+j1o7bCk6ZXw3tXDO7iQJilNVx+VyCLLRitZRe6G7Kc5MI4B3uAQil949KArQN8aiRsmjpsuDEO+XaXwmxHdZUleTnluKq+6hnHcIWWFOjpg9lMOIspPwuqTJmuTQzqIqBxlJfFHOHF+f7jPJKImKp3Y+fw2YoVErO9iYZe0hl1KMYpcyPCuvIimrZMzLAgWrwRpkvSrp4QqtZLFS6viZVd1oMojMLtPTAdKXK4NFGdS5vbr7gfqrz3cb7BIIs8dirVbPMcMB7sWRxtz7yvcILecQKnGmXwgRBuk0MOWFecnRSF+gYnAimwIhF+xp9q4o03OMVhenErjTnZdWcqc89Tugk9gWAp3V3lbOqRdyHYbojdvUP0GZw3D51a1daoaw1gp3+VFVFcr2d7w6LqYttbP1vX8/oNSpoKXi9xTUeMaBc+CoZNtlqgsIOMs8WOkB/qxynJffmaSyysFJRXVfOS49jYt1T+09M1aqtSPQePIbpepmtJvYup1TkGD6lX2NU9Bd69gauEUFCJbXNiVzkEXO/JkVM3ZmWnAGaq2eFQqcjnNwyKZGx+M70lw/a4lgleT8pKHJXDrz+IhqASz4aLrUgyvE/zGgqu/4hbxYvLZ/5DPvz8dNQjq3XuKp6a0JJ7Ve432xJNX83+HJN3zv9io098=</diagram></mxfile>"> +<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="821px" height="361px" viewBox="-0.5 -0.5 821 361" content="<mxfile><diagram id="sy3y0YvDUY56zLrZI23Z" name="Page-1">7Vpdk5o8FP41XtoJIqiXiuyu73Sro3bavYwQIbNIaAjq7q9/EwjfuLUt2h273pA8+Twn53kIZ+yoxu54T2HgPhIbeZ0esI8dddrp9RRd1flDIC8JMlJ7CeBQbMtOObDCr0iCQKIRtlFY6sgI8RgOyqBFfB9ZrIRBSsmh3G1LvPKqAXRQDVhZ0Kuj37DN3AQdaiDHHxB23HRlBciWHUw7SyB0oU0OBUg1O6pBCWFJaXc0kCecl/olGXd3ojXbGEU+O2dAOmIPvUga1+npHh87sfFebJC9SKv1H5HY1aRUcuQzHhEG0G8csoHWs0NJ5Ntdi3iEdtSxODIK/TDd6hvTblJgaS7mq9l6vnyKJ0hauW2bwgi4C3jB34Ti8TiefemuzfFjVwytthZmSHZeXpbDsQvKaAOULT//9sVcrh5mi8S+ph2Kzfz+Avez9cPXSXexnP9nGuuTTgCxyasAWXiLrVPL9UpH1eORGIgiOsa7INEmblF4JT45JCIG8NrBxQytAmiJ5gMnOMdctvNk5z2iDHOqjD3s+BxjRHSAsuahbb56MUzTOOSj0bEAybC9R2SHGH3hXWSr1pcUeslIltQPOSP7Ke/cIht1CUKpAk42d04UXpBcOcGb26INWHWN+dLkheV8vn4XRPlstMqTxkVyqwm0dzySb5MqSq9MlX6dKRnWOlPUGlMWlNgRfyv3wMy3KNoJw6ouzv2o/NyPW+x5RkIQPlbdAqgCKHDiswIO4p8gHKPkGRVaJtNB0tKGswcVXQJ1b2cHUvR2vwVnax+ydFlZGi/blaVGq+8QZBFFwmz0I0IhC/8RYbquMuk1stQc36ouAaABtK3r0jb+NekSAMp0YlxGl9Rr6tLgtnTp4yvjn/nKqCiUol7zK2NYo40ZCFe3KEoDXQfD8a+Ikn4HWrssaXrFvaO6ewcX0iSlKfVR8SyyHbSSVeRtyMHMgUkM8AaXUPzKvQc9Afr2WGSYOG55MAz5cZXcb0V0nwV5OeT5UJnqGsZ+h5QV6uiI2Xc5iSg/iVGfNFmbHtNJROVFVk6eUEgiaqHSBZ0v5yBWijth/ZunWDglreGUUowiDzK8LyfPmo5OrrAgWHwSpEHSr94SqtRKrJGjismu6kSVV2CWT0wnSnxQmyiOpMzs8/ID9c8ebjdYJEfBDYq1W7zHDBd7NkcbY+8z3CCvHECpxll8IkQbpHCHbTuOT4pC/AoTgRXREAi7Yku1SUebNsfHKQpnyVQ5YaeYr2yidhd8AsOSu7vKn4VD2oVstyH64wOqZ3DWMHxuVVtN1RjGSvlXPkR1tRLtDa+ui2lr/W5dj++fKGUqeLnIPRU1rlHwbBi62WGJygIyzhI/RnqgH6sst+V7Jrm8UlBSUc1njmu/pKX6h5a2r6VK/Ro0iZx2maop/SamXucWNKimsq95CxqdwdTCLShEjkjYle5BF7vyZFTN2ZlpwBtUvdhVKY3EIr9TQr0TguujlgheDcpLXpbArb+Lh6DizIZE16UYXif4jTlXPyOLeDH57H/I59ny2aCeo3clnprSknhW8xrtiSev5v8OSbrn/7FRzf8B</diagram></mxfile>"> <defs/> <g> <g> @@ -93,13 +93,13 @@ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 80px; margin-left: 51px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Program Increment + Product Increment </div> </div> </div> </foreignObject> <text x="110" y="84" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Program Increment + Product Increment </text> </switch> </g> diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index 8d89661ca4a..8f8db3729cb 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -804,7 +804,7 @@ PMP Definition of Done ====================== - The **Definitions of Done** for all Platform Management Plans are fulfilled. - Project Organization: Org Chart and description is available and up to date. -- Project Internal Communication: Team Overview with meeting structure is available and and Slack channels are established and maintained. +- Project Internal Communication: Team Overview with meeting structure is available & Slack channels are established and maintained. - Scheduling: Meetings are scheduled in the Eclipse SDV calendar. - Milestones & Releases: Roadmap with Milestones and Releases are available and up to date. - General: All Reviews are performed according to their definitions, the respective templates are used. From 4d67ab0bb4ebf5d8835ff170706cafb2feb67f6c Mon Sep 17 00:00:00 2001 From: Andreas Mittag <andreas.mittag@etas.com> Date: Thu, 22 Jan 2026 11:42:42 +0000 Subject: [PATCH 102/128] Purpose added --- .../project_management.rst | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index 8f8db3729cb..1e4ae7d9eff 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -12,9 +12,6 @@ # SPDX-License-Identifier: Apache-2.0 # ******************************************************************************* -Project Management Plan -####################### - .. document:: Project Management Plan :id: doc__project_mgt_plan :status: draft @@ -23,6 +20,21 @@ Project Management Plan :realizes: wp__project_mgt :tags: platform_management +.. _pmp_pm_plan: + +Project Management Plan +####################### + +Purpose +======= +The purpose of the Project Management Plan is to define + +- how to manage, analyse and control changes of the work products during the project life cycle. +- the project stakeholder and how to communicate with them. +- how and where to create and maintain the project schedule. +- how to track planned work. +- how and where to escalation. + .. _pmp_pm_organization: Project Organization From da67fe56789d97842ab0cb0554b459d1404bfef7 Mon Sep 17 00:00:00 2001 From: Andreas Mittag <andreas.mittag@etas.com> Date: Thu, 22 Jan 2026 12:50:12 +0000 Subject: [PATCH 103/128] + ObjectiveScope of PM, + external communication --- .../project_management.rst | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index 1e4ae7d9eff..a28c5a0055b 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -33,7 +33,18 @@ The purpose of the Project Management Plan is to define - the project stakeholder and how to communicate with them. - how and where to create and maintain the project schedule. - how to track planned work. -- how and where to escalation. +- how and where to escalate. + +Objectives and Scope +-------------------- + +Project Management Goals +^^^^^^^^^^^^^^^^^^^^^^^^ + +* The scope of the work is defined. +* The stakeholders/stakeholder groups and organization are defined. +* Communication and reporting paths are described. +* Escalation paths are described. .. _pmp_pm_organization: @@ -131,7 +142,7 @@ The Technical Lead Circle will soon be merged with the Project Lead Circle: `#23 - TLC Responsibilities: - Review and approval of contributions, e.g. *Feature Requests*, which add or modify S-CORE platform features. - - Project management of the platform development, e.g., creation of the roadmap. + - Project management of the platform development, e.g. creation of the roadmap. - High-level project control and coordination between multiple software modules. - Escalation instance for software module project leads and committers. - `TLC Members`_ @@ -273,6 +284,8 @@ Integration and Release Community (INT) - INT Repositories: - https://github.com/eclipse-score/score +.. _pmp_pm_mcm: + Marketing & Communication Community ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. _MCM Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-MCM-team @@ -515,9 +528,13 @@ In case a new Feature Team creation is necessary, the following steps have to be - Creation of a Slack Channel: https://sdvworkinggroup.slack.com - Adapting the PMP -Internal Communication +External Communication ====================== +The external communication is done via GitHub, LinkedIn, etc. Publications by :ref:`Marketing and Communication Community <pmp_pm_mcm>`. + +Internal Communication +====================== The project internal communication is ensured with help of: - virtual and face-to-face meetings and their minutes From 9221b28197e6f8dfde456cff438655fc06a33fb5 Mon Sep 17 00:00:00 2001 From: Andreas Mittag <andreas.mittag@etas.com> Date: Mon, 26 Jan 2026 07:16:43 +0000 Subject: [PATCH 104/128] renaming of picture with prefixes, --- .../_assets/issue_status_flow.drawio.svg | 151 --- .../_assets/project_organization.svg | 4 - ...ct_management_issue_status_flow.drawio.svg | 865 ++++++++++++++++++ ...project_management_issue_types.drawio.svg} | 0 ...nagement_organization_orgchart.drawio.svg} | 82 +- ...t_management_planning_overview.drawio.svg} | 0 6 files changed, 906 insertions(+), 196 deletions(-) delete mode 100644 docs/platform_management_plan/_assets/issue_status_flow.drawio.svg delete mode 100644 docs/platform_management_plan/_assets/project_organization.svg create mode 100644 docs/platform_management_plan/_assets/score_project_management_issue_status_flow.drawio.svg rename docs/platform_management_plan/_assets/{issue_types.drawio.svg => score_project_management_issue_types.drawio.svg} (100%) rename docs/platform_management_plan/_assets/{organization_orgchart.drawio.svg => score_project_management_organization_orgchart.drawio.svg} (89%) rename docs/platform_management_plan/_assets/{planning_overview.drawio.svg => score_project_management_planning_overview.drawio.svg} (100%) diff --git a/docs/platform_management_plan/_assets/issue_status_flow.drawio.svg b/docs/platform_management_plan/_assets/issue_status_flow.drawio.svg deleted file mode 100644 index 75fa5b5ffae..00000000000 --- a/docs/platform_management_plan/_assets/issue_status_flow.drawio.svg +++ /dev/null @@ -1,151 +0,0 @@ -<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="223px" height="423px" viewBox="-0.5 -0.5 223 423" content="<mxfile><diagram id="C97xqWznBMC5PXXLidsX" name="Page-1">zVjfk5owEP5rmGlfOoEI6mNBe9eHtje9ztzdY05WyFw0NETF/vVNIEgQa7X1Fy9kv03I5tvlW9TB0ay4EyRLv/AYmOOhuHDwyPE8t+8F6qaRdYUMsVcBiaCxmdQAj/QXGBAZdEFjyFsTJedM0qwNTvh8DhPZwogQfNWeNuWsvWtGEugAjxPCuugTjWVaoQMfNfg90CStd3aR8cxIPdkAeUpivrIgPHZwJDiX1WhWRMA0eTUv1bpPf/BuAhMwl4cs6Jsw5Lo+G8TqqMac87m6hamcMWW5aggFlc9qjD74xnqxPCOdYVQba2N0YzJh5nwhJmZbUwCSiATMLFxBOiBrmTnHHfAZSLFWEwQwIumynRtiUpxs5jUsqIEhYjcpJpYlYQvz0K+w6hLFmKo3zY9KYqbBmC9eGYw3uMVbTPIUYkPIKqUSHjNSnn2lXhGFkTyrKnVKCz0xnFLGIs64KHfDUF56Myn4G1geHOAhjvfxvAQhodjLYe3Fpi7XW/aqKfPAQKlV4TX2P6wPLlCKihmxthZp88X2NctK66gSxt0S7l2rhHGnhB0vYFLXFVdHsGkOfi602oSTqqQ+6nCS13ee7zue2gfZg/clF/UKNUr0/TsQpeTm+SqyaovKV8MxXW5DZ4jkB/9LGAreEcllgnvi4u3I8LZeiFpo4DQSk4GgqrJANI98aKBtBULIRzA11Fj4tLx2KRNC7iiMzqNMnn85ZRreSpPsdRUmuJbC1N9iR7PiHsxJo9a2Vrun0OodTPrXYrLX0erPc2U/CJ4IyPPbUoEpIhiRrgqg8tqlAuGoX3nOoAK4711MBfxOmr7pNN3rHw83lSLw3V5J+MFCHXroZCnyhtdLUdBJUcR4DmfPT0Vo/VPQ/4fWOiDHZUw14/65Xqre8HKt1XU7uTmwt1pdZNM49neRTeM42Re/f70vfmU2/xKUPuu/Fjz+DQ==</diagram></mxfile>"> - <defs/> - <g> - <g> - <path d="M 32 60 L 32 113.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 32 118.88 L 28.5 111.88 L 32 113.63 L 35.5 111.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <ellipse cx="32" cy="30" rx="30" ry="30" fill="#eeeeee" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/> - <ellipse cx="32" cy="30" rx="26" ry="26" fill="none" stroke="#36393d" pointer-events="all" style="stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 50px; height: 1px; padding-top: 30px; margin-left: 7px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - New - </div> - </div> - </div> - </foreignObject> - <text x="32" y="34" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - New - </text> - </switch> - </g> - </g> - <g> - <path d="M 32 180 L 32 235.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 32 240.88 L 28.5 233.88 L 32 235.63 L 35.5 233.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <ellipse cx="32" cy="150" rx="30" ry="30" fill="#0050ef" stroke="#001dbc" pointer-events="all" style="fill: light-dark(rgb(0, 80, 239), rgb(109, 178, 255)); stroke: light-dark(rgb(0, 29, 188), rgb(178, 203, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 150px; margin-left: 3px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - <font style="color: light-dark(rgb(255, 255, 255), rgb(18, 18, 18));"> - Ready - </font> - <div> - <font style="color: light-dark(rgb(255, 255, 255), rgb(18, 18, 18));"> - To - </font> - </div> - <div> - <font style="color: light-dark(rgb(255, 255, 255), rgb(18, 18, 18));"> - Work - </font> - </div> - </div> - </div> - </div> - </foreignObject> - <text x="32" y="154" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Ready... - </text> - </switch> - </g> - </g> - <g> - <path d="M 32 302 L 32 353.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 32 358.88 L 28.5 351.88 L 32 353.63 L 35.5 351.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <path d="M 53.21 293.21 L 164.42 293.21" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 169.67 293.21 L 162.67 296.71 L 164.42 293.21 L 162.67 289.71 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <ellipse cx="32" cy="272" rx="30" ry="30" fill="#f0a30a" stroke="#bd7000" pointer-events="all" style="fill: light-dark(rgb(240, 163, 10), rgb(154, 88, 0)); stroke: light-dark(rgb(189, 112, 0), rgb(193, 127, 31));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 272px; margin-left: 3px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - In Progress - </div> - </div> - </div> - </foreignObject> - <text x="32" y="276" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - In Progress - </text> - </switch> - </g> - </g> - <g> - <ellipse cx="192" cy="272" rx="30" ry="30" fill="#e51400" stroke="#b20000" pointer-events="all" style="fill: light-dark(rgb(229, 20, 0), rgb(255, 146, 129)); stroke: light-dark(rgb(178, 0, 0), rgb(255, 172, 172));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 272px; margin-left: 163px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - On Hold - </div> - </div> - </div> - </foreignObject> - <text x="192" y="276" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - On Hold - </text> - </switch> - </g> - </g> - <g> - <ellipse cx="32" cy="390" rx="30" ry="30" fill="#008a00" stroke="#005700" stroke-width="5" pointer-events="all" style="fill: light-dark(rgb(0, 138, 0), rgb(67, 186, 67)); stroke: light-dark(rgb(0, 87, 0), rgb(130, 205, 130));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 390px; margin-left: 3px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Closed - </div> - </div> - </div> - </foreignObject> - <text x="32" y="394" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Closed - </text> - </switch> - </g> - </g> - <g> - <path d="M 170.79 250.79 L 59.58 250.79" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 54.33 250.79 L 61.33 247.29 L 59.58 250.79 L 61.33 254.29 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - </g> - <switch> - <g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/> - <a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"> - <text text-anchor="middle" font-size="10px" x="50%" y="100%"> - Text is not SVG - cannot display - </text> - </a> - </switch> -</svg> diff --git a/docs/platform_management_plan/_assets/project_organization.svg b/docs/platform_management_plan/_assets/project_organization.svg deleted file mode 100644 index 41d80dd4ca6..00000000000 --- a/docs/platform_management_plan/_assets/project_organization.svg +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Do not edit this file with editors other than draw.io --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1164px" height="653px" viewBox="-0.5 -0.5 1164 653" content="<mxfile host="Electron" modified="2024-11-26T16:30:03.011Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.5.3 Chrome/124.0.6367.207 Electron/30.0.6 Safari/537.36" etag="5bXvNc4w48_WeTBnI38h" version="24.5.3" type="device" scale="1" border="0"> <diagram name="Seite-1" id="sepgB-OVDPt3gu0FPoY2"> <mxGraphModel dx="1026" dy="685" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0"> <root> <mxCell id="0" /> <mxCell id="1" parent="0" /> <mxCell id="eMWIR_pduFbBamDTuHP1-45" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#3A5431;dashed=1;dashPattern=1 1;strokeWidth=3;fontColor=#ffffff;" vertex="1" parent="1"> <mxGeometry x="950" y="189" width="311" height="320" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-47" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#bac8d3;strokeColor=#23445d;" vertex="1" parent="1"> <mxGeometry x="961" y="205" width="290" height="254" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-1" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#3A5431;dashed=1;dashPattern=1 1;strokeWidth=3;fontColor=#ffffff;" vertex="1" parent="1"> <mxGeometry x="100" y="60" width="620" height="650" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-2" value="&lt;b&gt;&lt;font style=&quot;font-size: 20px;&quot;&gt;Main SCORE Project&lt;/font&gt;&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1"> <mxGeometry x="300" y="656" width="220" height="40" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-5" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#bac8d3;strokeColor=#23445d;" vertex="1" parent="1"> <mxGeometry x="130" y="84" width="550" height="546" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-3" value="" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;fillColor=#b1ddf0;strokeColor=#10739e;" vertex="1" parent="1"> <mxGeometry x="190" y="184" width="120" height="170" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-4" value="&lt;font style=&quot;font-size: 14px;&quot;&gt;Main &lt;b style=&quot;&quot;&gt;SCORE&lt;/b&gt;&lt;/font&gt;&lt;div style=&quot;font-size: 14px;&quot;&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;integration repo&lt;/font&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1"> <mxGeometry x="190" y="364" width="120" height="50" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-6" value="&lt;b&gt;&lt;font style=&quot;font-size: 16px;&quot;&gt;SCORE GitHub organization&lt;/font&gt;&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1"> <mxGeometry x="285" y="580" width="240" height="30" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-7" value="" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;fillColor=#b1ddf0;strokeColor=#10739e;" vertex="1" parent="1"> <mxGeometry x="503" y="110" width="80" height="100" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-8" value="" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;fillColor=#b1ddf0;strokeColor=#10739e;" vertex="1" parent="1"> <mxGeometry x="505" y="261" width="80" height="100" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-9" value="" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;fillColor=#b1ddf0;strokeColor=#10739e;" vertex="1" parent="1"> <mxGeometry x="505" y="410" width="80" height="100" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-10" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="eMWIR_pduFbBamDTuHP1-7" target="eMWIR_pduFbBamDTuHP1-3"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="385" y="220" as="sourcePoint" /> <mxPoint x="435" y="170" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-11" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="eMWIR_pduFbBamDTuHP1-8" target="eMWIR_pduFbBamDTuHP1-3"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="510" y="170" as="sourcePoint" /> <mxPoint x="320" y="253" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-12" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;entryX=1;entryY=0;entryDx=0;entryDy=120;entryPerimeter=0;" edge="1" parent="1" source="eMWIR_pduFbBamDTuHP1-9" target="eMWIR_pduFbBamDTuHP1-3"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="515" y="290" as="sourcePoint" /> <mxPoint x="320" y="279" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-13" value="&lt;font style=&quot;font-size: 13px;&quot;&gt;Software Module&amp;nbsp;&lt;/font&gt;&lt;span style=&quot;font-size: 13px; background-color: initial;&quot;&gt;Repo&lt;/span&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1"> <mxGeometry x="465" y="210" width="160" height="30" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-14" value="&lt;font style=&quot;font-size: 13px;&quot;&gt;Software Module&amp;nbsp;&lt;/font&gt;&lt;span style=&quot;font-size: 13px; background-color: initial;&quot;&gt;Repo&lt;/span&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1"> <mxGeometry x="473" y="361" width="160" height="30" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-15" value="&lt;font style=&quot;font-size: 13px;&quot;&gt;Software Module&amp;nbsp;&lt;/font&gt;&lt;span style=&quot;font-size: 13px; background-color: initial;&quot;&gt;Repo&lt;/span&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1"> <mxGeometry x="480" y="510" width="160" height="30" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-16" value="" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.document;fillColor=#fad7ac;strokeColor=#b46504;" vertex="1" parent="1"> <mxGeometry x="553" y="90" width="177" height="70" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-17" value="&lt;font style=&quot;font-size: 9px;&quot;&gt;&lt;b&gt;CODEOWNER&lt;/b&gt;&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1"> <mxGeometry x="641" y="133" width="80" height="30" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-18" value="&lt;ul style=&quot;font-size: 10px;&quot;&gt;&lt;li&gt;Software Module PLs&lt;/li&gt;&lt;li&gt;Software Module Committers&lt;/li&gt;&lt;/ul&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1"> <mxGeometry x="525" y="90" width="190" height="60" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-27" value="" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.document;fillColor=#fad9d5;strokeColor=#ae4132;" vertex="1" parent="1"> <mxGeometry x="220" y="128" width="130" height="70" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-28" value="&lt;font style=&quot;font-size: 9px;&quot;&gt;&lt;b&gt;CODEOWNER&lt;/b&gt;&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1"> <mxGeometry x="261" y="168" width="80" height="30" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-29" value="&lt;ul style=&quot;font-size: 10px;&quot;&gt;&lt;li&gt;&lt;b&gt;SCORE&lt;/b&gt; PLs&lt;/li&gt;&lt;li&gt;&lt;b&gt;SCORE&lt;/b&gt; Committers&lt;/li&gt;&lt;/ul&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1"> <mxGeometry x="189" y="118" width="150" height="60" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-32" value="" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.document;fillColor=#fad7ac;strokeColor=#b46504;" vertex="1" parent="1"> <mxGeometry x="567" y="240" width="177" height="70" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-33" value="&lt;font style=&quot;font-size: 9px;&quot;&gt;&lt;b&gt;CODEOWNER&lt;/b&gt;&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1"> <mxGeometry x="655" y="283" width="80" height="30" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-34" value="&lt;ul style=&quot;font-size: 10px;&quot;&gt;&lt;li&gt;Software Module PLs&lt;/li&gt;&lt;li&gt;Software Module Committers&lt;/li&gt;&lt;/ul&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1"> <mxGeometry x="539" y="240" width="190" height="60" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-35" value="" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.document;fillColor=#fad7ac;strokeColor=#b46504;" vertex="1" parent="1"> <mxGeometry x="567" y="400" width="177" height="70" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-36" value="&lt;font style=&quot;font-size: 9px;&quot;&gt;&lt;b&gt;CODEOWNER&lt;/b&gt;&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1"> <mxGeometry x="655" y="443" width="80" height="30" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-37" value="&lt;ul style=&quot;font-size: 10px;&quot;&gt;&lt;li&gt;Software Module PLs&lt;/li&gt;&lt;li&gt;Software Module Committers&lt;/li&gt;&lt;/ul&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1"> <mxGeometry x="539" y="400" width="190" height="60" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-38" value="" style="shape=image;aspect=fixed;image=data:image/svg+xml,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI2LjUuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA2MzAgMjM1IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA2MzAgMjM1OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2NsaXAtcGF0aDp1cmwoI1NWR0lEXzAwMDAwMDQxOTkxOTMyMDQ1NTE3NjA3NjEwMDAwMDAzMTYxNjc5OTMwMDc5ODQyNDc1Xyk7ZmlsbDojNDUyMDYyO30KCS5zdDF7Y2xpcC1wYXRoOnVybCgjU1ZHSURfMDAwMDAwMjI1MjM2NzMwNzIxNjI3MDczODAwMDAwMTM2MTA1NjU4NjAyNjAzNzg1NTBfKTtmaWxsOiNBQTIwNkU7fQoJLnN0MntmaWxsOiNBQTIwNkU7fQoJLnN0M3tmaWxsOiM0NTIwNjI7fQoJLnN0NHtmaWxsOm5vbmU7fQoJLnN0NXtlbmFibGUtYmFja2dyb3VuZDpuZXcgICAgO30KPC9zdHlsZT4KPGc+Cgk8Zz4KCQk8Zz4KCQkJPGRlZnM+CgkJCQk8cmVjdCBpZD0iU1ZHSURfMV8iIHg9Ii0xMyIgeT0iOS41IiB3aWR0aD0iNzIwIiBoZWlnaHQ9IjE0Ni45Ii8+CgkJCTwvZGVmcz4KCQkJPGNsaXBQYXRoIGlkPSJTVkdJRF8wMDAwMDE0NzIyMTQzMDQxMTE3NTAzODAwMDAwMDAxNDMwOTMyOTA5MTI5OTcyOTU0NF8iPgoJCQkJPHVzZSB4bGluazpocmVmPSIjU1ZHSURfMV8iICBzdHlsZT0ib3ZlcmZsb3c6dmlzaWJsZTsiLz4KCQkJPC9jbGlwUGF0aD4KCQkJPHBhdGggc3R5bGU9ImNsaXAtcGF0aDp1cmwoI1NWR0lEXzAwMDAwMTQ3MjIxNDMwNDExMTc1MDM4MDAwMDAwMDE0MzA5MzI5MDkxMjk5NzI5NTQ0Xyk7ZmlsbDojNDUyMDYyOyIgZD0iTTU0NS40LDU0LjVoLTAuNgoJCQkJYy0yMC44LTcuMS00MS42LTE0LjMtNjIuNy0yMC4xYy0xMS0zLjEtMjIuMS01LjgtMzMuMi04Yy0yLjgtMC42LTUuNi0xLTguNC0xLjZjLTEuNC0wLjItMi44LTAuNS00LjItMC43bC00LjItMC42bC00LjItMC42CgkJCQljLTEuNC0wLjItMi44LTAuMy00LjItMC41Yy0yLjgtMC4zLTUuNi0wLjctOC40LTAuOWwtNC4yLTAuNGMtMS40LTAuMS0yLjgtMC4zLTQuMi0wLjNjLTIuOC0wLjEtNS42LTAuMy04LjQtMC40bC04LjQtMC4xCgkJCQljLTIuOCwwLjEtNS42LDAuMi04LjQsMC4zYy0xMS4yLDAuNy0yMi4zLDIuNC0zMy4yLDUuMWMtMTAuOSwyLjctMjEuNyw2LjItMzIuMywxMC42Yy0xMC42LDQuMy0yMC45LDkuMy0zMS4xLDE0LjkKCQkJCWMtMi41LDEuNC01LjEsMi43LTcuNiw0LjJzLTUuMSwyLjktNy42LDQuNHMtNSwzLTcuNSw0LjVsLTcuNSw0LjdjLTUsMy4xLTEwLjIsNi4yLTE1LjUsOC45cy0xMC45LDUuMS0xNi43LDYuN2wtMi4yLDAuNgoJCQkJbC0yLjIsMC41Yy0xLjQsMC40LTIuOSwwLjYtNC4zLDAuOWMtMi45LDAuNS01LjgsMC45LTguNywxLjNjLTUuOCwwLjctMTEuNSwxLjEtMTcuMiwxLjVzLTExLjMsMC44LTE2LjgsMS41bC0xNi45LDIuNAoJCQkJYy01LjYsMC44LTExLjMsMS42LTE2LjksMi41Yy01LjYsMC45LTExLjIsMS45LTE2LjcsMy4xYy0xMS4xLDIuMy0yMi4xLDUuMy0zMi43LDkuN2MtMTAuNiw0LjMtMjAuNywxMC4yLTI5LjMsMTguNQoJCQkJYy00LjMsNC4yLTguMSw5LTExLjIsMTQuNHMtNS41LDExLjQtNy4xLDE3LjdjMS4yLTYuNCwzLjItMTIuNiw2LjEtMTguNGMyLjktNS43LDYuNS0xMSwxMC43LTE1LjZzOC45LTguNSwxMy45LTExLjkKCQkJCXMxMC4yLTYuMywxNS41LTguOWM1LjMtMi41LDEwLjgtNC42LDE2LjMtNi41czExLjEtMy41LDE2LjctNC45YzUuNi0xLjQsMTEuMi0yLjYsMTYuOS0zLjdjNS42LTEuMSwxMS4zLTIuMSwxNi45LTMuMWwxNi45LTMKCQkJCWM1LjctMC45LDExLjUtMS41LDE3LjItMnMxMS4zLTEsMTYuOS0xLjhjMi44LTAuNCw1LjUtMC44LDguMy0xLjNjMS40LTAuMywyLjctMC41LDQuMS0wLjlsMi0wLjVsMi0wLjZjMi42LTAuOCw1LjItMS43LDcuOC0yLjgKCQkJCWMyLjYtMS4xLDUuMS0yLjMsNy42LTMuNmM1LTIuNiwxMC01LjcsMTQuOS04LjhsNy41LTQuN2MyLjUtMS42LDUuMS0zLjEsNy42LTQuNmMyLjUtMS42LDUuMS0zLDcuNy00LjVzNS4yLTIuOSw3LjgtNC4zCgkJCQljMTAuNC01LjYsMjEtMTAuNywzMS45LTE1LjFjMTAuOS00LjMsMjItOCwzMy40LTEwLjVjMTEuMy0yLjYsMjIuOS00LjIsMzQuNC00LjZjMi45LTAuMSw1LjgtMC4xLDguNy0wLjJsOC43LDAuMwoJCQkJYzIuOSwwLjIsNS43LDAuNCw4LjYsMC43YzEuNCwwLjEsMi45LDAuMyw0LjMsMC40bDQuMywwLjVjMi45LDAuMyw1LjcsMC44LDguNSwxLjJjMS40LDAuMiwyLjgsMC40LDQuMywwLjdsNC4yLDAuOGw0LjIsMC44CgkJCQljMS40LDAuMywyLjgsMC42LDQuMiwwLjljMi44LDAuNiw1LjYsMS4yLDguNCwxLjljMTEuMiwyLjcsMjIuMyw1LjksMzMuMyw5LjZDNTA0LjMsMzcuMSw1MjUsNDUuNSw1NDUuNCw1NC41eiIvPgoJCTwvZz4KCQk8Zz4KCQkJPGRlZnM+CgkJCQk8cmVjdCBpZD0iU1ZHSURfMDAwMDAxMjc3Mzg2NjAxNjczNjEwMDE4OTAwMDAwMDg0NzM4MTY0MTc5OTc4NzU2MzBfIiB4PSItMTMiIHk9IjkuNSIgd2lkdGg9IjcyMCIgaGVpZ2h0PSIxNDYuOSIvPgoJCQk8L2RlZnM+CgkJCTxjbGlwUGF0aCBpZD0iU1ZHSURfMDAwMDAwODY2ODMyMTA0Njk3MTI3NjM5NjAwMDAwMDk5NjcxNDM4NjMyMjM2ODg4NjRfIj4KCQkJCTx1c2UgeGxpbms6aHJlZj0iI1NWR0lEXzAwMDAwMTI3NzM4NjYwMTY3MzYxMDAxODkwMDAwMDA4NDczODE2NDE3OTk3ODc1NjMwXyIgIHN0eWxlPSJvdmVyZmxvdzp2aXNpYmxlOyIvPgoJCQk8L2NsaXBQYXRoPgoJCQk8cGF0aCBzdHlsZT0iY2xpcC1wYXRoOnVybCgjU1ZHSURfMDAwMDAwODY2ODMyMTA0Njk3MTI3NjM5NjAwMDAwMDk5NjcxNDM4NjMyMjM2ODg4NjRfKTtmaWxsOiNBQTIwNkU7IiBkPSJNMTQzLjgsMTI1LjlsODYuMS0yMwoJCQkJYzguNi0yLjMsMTcuNi0zLjcsMjYuOC00LjNsMzYzLjEtMjEuOUwxNDMuOCwxMjUuOXoiLz4KCQk8L2c+Cgk8L2c+Cgk8Zz4KCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNMjkuNCwxMjMuM0M0Niw4Ny42LDg2LjYsNzAuNCwxMjMuOSw4MS40Yy0wLjktMC40LTEuNy0wLjktMi42LTEuM2MtMzkuMS0xOC4yLTg1LjUtMS4zLTEwMy43LDM3LjcKCQkJYy0xOC4xLDM5LTEuMSw4NS40LDM4LDEwMy41YzAuOSwwLjQsMS44LDAuOCwyLjYsMS4xQzI1LjgsMjAxLjEsMTIuOCwxNTksMjkuNCwxMjMuM3oiLz4KCTwvZz4KCTxnPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik00MDkuMywxNjYuNWMwLDIuMi0wLjMsNC4xLTAuOCw1LjljLTAuNSwxLjctMS4zLDMuMy0yLjIsNC42cy0yLDIuNS0zLjIsMy40cy0yLjUsMS43LTMuOCwyLjMKCQkJYy0xLjMsMC42LTIuNiwxLTQsMS4zYy0xLjMsMC4zLTIuNiwwLjQtMy44LDAuNEgzNDl2LTExaDQyLjVjMi4xLDAsMy44LTAuNiw0LjktMS45YzEuMi0xLjIsMS44LTIuOSwxLjgtNWMwLTEtMC4yLTEuOS0wLjUtMi44CgkJCXMtMC44LTEuNi0xLjMtMi4yYy0wLjYtMC42LTEuMy0xLjEtMi4xLTEuNGMtMC44LTAuMy0xLjgtMC41LTIuOC0wLjVoLTI1LjNjLTEuOCwwLTMuNy0wLjMtNS44LTFjLTIuMS0wLjYtNC0xLjctNS43LTMuMQoJCQljLTEuOC0xLjQtMy4yLTMuMy00LjQtNS41Yy0xLjItMi4zLTEuOC01LjEtMS44LTguNHMwLjYtNi4xLDEuOC04LjRjMS4yLTIuMywyLjYtNC4xLDQuNC01LjVzMy43LTIuNSw1LjctMy4xYzIuMS0wLjYsNC0xLDUuOC0xCgkJCWgzNy41djExaC0zNy41Yy0yLjEsMC0zLjcsMC42LTQuOSwxLjlzLTEuOCwzLTEuOCw1YzAsMi4xLDAuNiwzLjgsMS44LDVjMS4yLDEuMiwyLjgsMS44LDQuOSwxLjhoMjUuM2gwLjFjMS4yLDAsMi40LDAuMiwzLjgsMC41CgkJCWMxLjMsMC4zLDIuNiwwLjgsNCwxLjRjMS4zLDAuNiwyLjYsMS40LDMuNywyLjNjMS4yLDAuOSwyLjIsMi4xLDMuMiwzLjRjMC45LDEuMywxLjYsMi45LDIuMiw0LjYKCQkJQzQwOS4xLDE2Mi40LDQwOS4zLDE2NC4zLDQwOS4zLDE2Ni41eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik00NzkuMSwxNTljMCwzLjctMC42LDcuMS0xLjksMTAuMmMtMS4zLDMuMS0zLjEsNS44LTUuMyw4Yy0yLjMsMi4yLTQuOSw0LTgsNS4zcy02LjUsMS45LTEwLjEsMS45aC0yOS43CgkJCWMtMC44LDAtMS41LTAuMS0yLjItMC40cy0xLjMtMC43LTEuOC0xLjJzLTAuOS0xLjEtMS4yLTEuOGMtMC4zLTAuNy0wLjQtMS40LTAuNC0yLjJ2LTQ5LjZjMC0wLjgsMC4xLTEuNSwwLjQtMi4yCgkJCXMwLjctMS4zLDEuMi0xLjhzMS4xLTAuOSwxLjgtMS4yYzAuNy0wLjMsMS40LTAuNCwyLjItMC40aDI5LjdjMy42LDAsNywwLjYsMTAuMSwxLjlzNS44LDMsOCw1LjNjMi4zLDIuMiw0LDQuOSw1LjMsOAoJCQlzMS45LDYuNSwxLjksMTAuMlYxNTl6IE00NjguMSwxNDkuMWMwLTIuMS0wLjMtNC4xLTEtNS45cy0xLjctMy4zLTIuOS00LjZjLTEuMy0xLjMtMi44LTIuMi00LjYtMi45Yy0xLjgtMC43LTMuNy0xLTUuOS0xaC0yNC4zCgkJCXYzOC43aDI0LjNjMi4xLDAsNC4xLTAuMyw1LjktMXMzLjMtMS43LDQuNi0yLjljMS4zLTEuMywyLjMtMi44LDIuOS00LjVjMC43LTEuOCwxLTMuNywxLTUuOVYxNDkuMXoiLz4KCQk8cGF0aCBjbGFzcz0ic3QzIiBkPSJNNTQ5LjIsMTIzLjdsLTI4LjcsNTguNmMtMC41LDAuOS0xLjEsMS42LTIsMi4yYy0wLjksMC41LTEuOSwwLjgtMi45LDAuOHMtMi0wLjMtMi45LTAuOAoJCQljLTAuOS0wLjYtMS42LTEuMy0yLjEtMi4ybC0yOC43LTU4LjZoMTIuM2wyMS4zLDQzLjdsMjEuNC00My43SDU0OS4yeiIvPgoJPC9nPgoJPGc+CgkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTY3LjYsMjIyLjN2LTIxLjloMTQuMnY0LjFoLTkuMXY0LjVoOC42djQuMWgtOC42djUuMWg5LjR2NC4ySDY3LjZWMjIyLjN6Ii8+CgkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTkxLjksMjIyLjdjLTQuMywwLTguMi0yLjktOC4yLTguMXM0LTguMSw4LjMtOC4xYzQsMCw1LjgsMS42LDUuOCwxLjZsLTEuMSwzLjhjLTAuNC0wLjMtMS44LTEuNC00LTEuNAoJCQlzLTMuOSwxLjUtMy45LDRzMS42LDQsMy45LDRjMi40LDAsNC0xLjUsNC0xLjVsMS4yLDMuOEM5Ny43LDIyMC45LDk2LDIyMi43LDkxLjksMjIyLjd6Ii8+CgkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTEwMCwyMjIuM3YtMjEuOWg1LjF2MjEuOUgxMDB6Ii8+CgkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTExMS4xLDIwNC45Yy0xLjcsMC0yLjktMS0yLjktMi42czEuMi0yLjYsMi45LTIuNnMyLjksMS4xLDIuOSwyLjZTMTEyLjgsMjA0LjksMTExLjEsMjA0Ljl6IE0xMDguNiwyMjIuMwoJCQl2LTE1LjZoNS4xdjE1LjZIMTA4LjZ6Ii8+CgkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTEyNy4xLDIyMi43Yy0yLjMsMC00LTAuOS00LjktMi4zdjcuN2gtNS4xdi0yMS40aDQuOHYyaDAuMWMxLjEtMS40LDIuOC0yLjMsNS4yLTIuM2M0LjUsMCw3LjQsMy41LDcuNCw4LjEKCQkJUzEzMS43LDIyMi43LDEyNy4xLDIyMi43eiBNMTI1LjcsMjEwLjRjLTIuMiwwLTMuNiwxLjYtMy42LDQuMWMwLDIuNCwxLjUsNC4xLDMuNiw0LjFjMi4yLDAsMy43LTEuNiwzLjctNC4xCgkJCUMxMjkuNCwyMTIuMSwxMjcuOSwyMTAuNCwxMjUuNywyMTAuNHoiLz4KCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNMTQyLjMsMjIyLjdjLTIuMywwLTQuOC0wLjctNi42LTIuNGwxLjktM2MxLjMsMS4xLDMuNCwxLjksNC42LDEuOWMxLjMsMCwyLjItMC4zLDIuMi0xLjNzLTIuMy0xLjUtMi45LTEuNwoJCQljLTIuNi0wLjctNC45LTEuNi00LjktNC44YzAtMywyLjctNC45LDUuOS00LjljMy4zLDAsNS4xLDEuMiw2LDEuOWwtMS42LDNjLTAuOS0wLjctMi43LTEuNS0zLjktMS41cy0xLjksMC4zLTEuOSwxLjEKCQkJczEuMiwxLjIsMi4zLDEuNWMyLjcsMC44LDUuNSwxLjYsNS41LDUuMUMxNDguOSwyMjEuMywxNDUuNSwyMjIuNywxNDIuMywyMjIuN3oiLz4KCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNMTY2LjUsMjE1LjdoLTExLjFjMC4yLDIuMywxLjksMy4zLDQsMy4zYzIsMCwzLjgtMC45LDQuNy0xLjVsMiwyLjZjLTAuNSwwLjQtMi42LDIuNS03LjQsMi41CgkJCWMtNC44LDAtOC4zLTMtOC4zLTguMWMwLTUuMiwzLjgtOC4xLDguNC04LjFzNy44LDMuMSw3LjgsNy42QzE2Ni42LDIxNC44LDE2Ni41LDIxNS43LDE2Ni41LDIxNS43eiBNMTU4LjcsMjA5LjcKCQkJYy0yLjEsMC0zLjIsMS42LTMuMiwzLjFoNi40QzE2MS45LDIxMS40LDE2MC44LDIwOS43LDE1OC43LDIwOS43eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0xODEuOCwyMjIuN2MtMy4yLDAtNi0xLjYtNy44LTMuM2wyLjUtMy43YzEuNiwxLjYsNCwyLjgsNS43LDIuOGMxLjYsMCwyLjktMC44LDIuOS0yLjNzLTEuNi0yLjEtMi42LTIuNAoJCQlzLTIuNi0wLjktMy4zLTEuMmMtMC41LTAuMy0xLjYtMC43LTIuNi0xLjZzLTEuNy0yLjItMS43LTQuMmMwLTIuMSwxLTMuNywyLjMtNC44YzEuMi0xLDMuMi0xLjcsNS44LTEuN3M1LjUsMS4yLDYuOSwyLjcKCQkJbC0yLjIsMy42Yy0xLjMtMS4zLTMuMi0yLjItNC45LTIuMmMtMS42LDAtMi45LDAuNi0yLjksMnMxLjIsMS44LDIuMiwyLjJjMSwwLjQsMi42LDEsMy4zLDEuMmMyLjgsMSw0LjgsMi44LDQuOCw2CgkJCUMxOTAuMywyMjAuNCwxODYsMjIyLjcsMTgxLjgsMjIyLjd6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTIwMC41LDIyMi43Yy00LjksMC04LjctMy4xLTguNy04LjFzMy43LTguMSw4LjctOC4xYzQuOSwwLDguNywzLjEsOC43LDguMQoJCQlDMjA5LjEsMjE5LjYsMjA1LjQsMjIyLjcsMjAwLjUsMjIyLjd6IE0yMDAuNSwyMTAuNGMtMi4zLDAtMy42LDEuNy0zLjYsNC4xczEuMyw0LjEsMy42LDQuMWMyLjIsMCwzLjYtMS43LDMuNi00LjEKCQkJUzIwMi43LDIxMC40LDIwMC41LDIxMC40eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0yMjcuNywyMTAuNnY1LjZjMCwxLjQsMC4xLDIuMywxLjYsMi4zYzAuOCwwLDEuNS0wLjMsMS41LTAuM2wwLjMsNGMtMC40LDAuMS0xLjgsMC41LTMuNiwwLjUKCQkJYy00LjEsMC00LjktMi41LTQuOS02LjF2LTYuMWgtNS4zdjExLjhoLTUuMXYtMTEuOGgtMnYtMy44aDJ2LTAuOWMwLTMuNywxLjgtNS44LDUuNi01LjhjMiwwLDMuNSwwLjQsMy41LDAuNGwtMC4zLDMuNQoJCQljMCwwLTEtMC4zLTEuOS0wLjNjLTEuNSwwLTEuOSwwLjktMS45LDJ2MWg1LjN2LTQuMmg1LjF2NC4yaDMuNXYzLjhoLTMuNFYyMTAuNnoiLz4KCQk8cGF0aCBjbGFzcz0ic3QzIiBkPSJNMjUyLjQsMjIyLjNoLTQuOGwtMy05LjZsLTMuMSw5LjZoLTQuOGwtNS4xLTE1LjZoNS4xbDIuOCwxMGwzLTEwaDQuMmwzLDEwbDIuOC0xMGg1LjFMMjUyLjQsMjIyLjN6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTI2OC42LDIyMi4zbC0wLjEtMS42Yy0wLjcsMC43LTEuOSwyLTQuNSwyYy0yLjgsMC01LjctMS41LTUuNy01czMuMi00LjcsNi4xLTQuOGwzLjktMC4ydi0wLjMKCQkJYzAtMS42LTEuMi0yLjUtMy4yLTIuNXMtNCwwLjktNC44LDEuNEwyNTksMjA4YzEuMy0wLjcsMy44LTEuNiw2LjctMS42YzQuOSwwLDcuNywyLDcuNyw3LjF2OC44SDI2OC42eiBNMjY1LjksMjE1LjYKCQkJYy0xLjYsMC4xLTIuNSwwLjctMi41LDEuOWMwLDEuMiwxLDEuOSwyLjQsMS45czIuMy0wLjksMi42LTEuNHYtMi42TDI2NS45LDIxNS42eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0yODYuOSwyMTEuNGgtMC4yYy0wLjMtMC4yLTEtMC40LTEuOC0wLjRjLTIuNSwwLTMuMSwyLjMtMy4xLDQuNHY2LjloLTUuMXYtMTUuNmg1LjF2Mi4yaDAuMQoJCQljMC45LTEuNywyLjItMi41LDMuOS0yLjVjMSwwLDEuNiwwLjMsMS42LDAuM0wyODYuOSwyMTEuNHoiLz4KCQk8cGF0aCBjbGFzcz0ic3QzIiBkPSJNMzA0LDIxNS43aC0xMS4xYzAuMiwyLjMsMS45LDMuMyw0LDMuM2MyLDAsMy44LTAuOSw0LjctMS41bDIsMi42Yy0wLjUsMC40LTIuNiwyLjUtNy40LDIuNXMtOC4zLTMtOC4zLTguMQoJCQljMC01LjIsMy44LTguMSw4LjQtOC4xczcuOCwzLjEsNy44LDcuNkMzMDQuMSwyMTQuOCwzMDQsMjE1LjcsMzA0LDIxNS43eiBNMjk2LjEsMjA5LjdjLTIuMSwwLTMuMiwxLjYtMy4yLDMuMWg2LjQKCQkJQzI5OS4zLDIxMS40LDI5OC4zLDIwOS43LDI5Ni4xLDIwOS43eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0zMjAuNCwyMjIuM0gzMTN2LTIxLjloNy40YzYuOSwwLDEyLDMuNiwxMiwxMC45QzMzMi40LDIxOC43LDMyNy4zLDIyMi4zLDMyMC40LDIyMi4zeiBNMzIwLjcsMjA0LjdoLTIuNgoJCQlWMjE4aDIuNmM0LjEsMCw2LjUtMi41LDYuNS02LjZTMzI0LjgsMjA0LjcsMzIwLjcsMjA0Ljd6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTM1MC4yLDIxNS43aC0xMS4xYzAuMiwyLjMsMS45LDMuMyw0LDMuM2MyLDAsMy44LTAuOSw0LjctMS41bDIsMi42Yy0wLjUsMC40LTIuNiwyLjUtNy40LDIuNQoJCQlzLTguMy0zLTguMy04LjFjMC01LjIsMy44LTguMSw4LjQtOC4xczcuOCwzLjEsNy44LDcuNkMzNTAuMywyMTQuOCwzNTAuMiwyMTUuNywzNTAuMiwyMTUuN3ogTTM0Mi40LDIwOS43CgkJCWMtMi4xLDAtMy4yLDEuNi0zLjIsMy4xaDYuNEMzNDUuNSwyMTEuNCwzNDQuNSwyMDkuNywzNDIuNCwyMDkuN3oiLz4KCQk8cGF0aCBjbGFzcz0ic3QzIiBkPSJNMzYwLjMsMjAzLjdjLTEuNywwLTEuOSwxLjItMS45LDIuNHYwLjZoMy40djMuOGgtMy40djExLjhoLTUuMXYtMTEuOGgtMnYtMy44aDJ2LTAuOWMwLTMuOCwxLjgtNS44LDUuNy01LjgKCQkJYzEuNywwLDMuMywwLjQsMy4zLDAuNGwtMC4zLDMuNUMzNjEuNSwyMDMuOCwzNjAuOSwyMDMuNywzNjAuMywyMDMuN3ogTTM2NS45LDIwNC45Yy0xLjcsMC0yLjktMS0yLjktMi42czEuMi0yLjYsMi45LTIuNgoJCQljMS43LDAsMi45LDEuMSwyLjksMi42UzM2Ny42LDIwNC45LDM2NS45LDIwNC45eiBNMzYzLjQsMjIyLjN2LTE1LjZoNS4xdjE1LjZIMzYzLjR6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTM4Mi4xLDIyMi4zdi04LjFjMC0yLjEtMC4zLTMuNi0yLjQtMy42Yy0yLjIsMC0yLjgsMS44LTIuOCw0djcuN2gtNS4xdi0xNS42aDUuMXYyLjNoMC4xCgkJCWMwLjktMS40LDIuMy0yLjUsNC41LTIuNWM0LjUsMCw1LjcsMi45LDUuNyw2Ljd2OS4yaC01LjFWMjIyLjN6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTQwNS44LDIxNS43aC0xMS4xYzAuMiwyLjMsMS45LDMuMyw0LDMuM2MyLDAsMy44LTAuOSw0LjctMS41bDIsMi42Yy0wLjUsMC40LTIuNiwyLjUtNy40LDIuNQoJCQlzLTguMy0zLTguMy04LjFjMC01LjIsMy44LTguMSw4LjQtOC4xczcuOCwzLjEsNy44LDcuNkM0MDUuOCwyMTQuOCw0MDUuOCwyMTUuNyw0MDUuOCwyMTUuN3ogTTM5Ny45LDIwOS43CgkJCWMtMi4xLDAtMy4yLDEuNi0zLjIsMy4xaDYuNEM0MDEuMSwyMTEuNCw0MDAsMjA5LjcsMzk3LjksMjA5Ljd6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTQyMCwyMjIuM3YtMi4xaC0wLjFjLTEuMiwxLjYtMywyLjQtNS4xLDIuNGMtNC41LDAtNy40LTMuNi03LjQtOC4xczIuOS04LjEsNy40LTguMWMyLjksMCw0LjQsMS40LDQuOSwyLjIKCQkJdi04LjFoNS4xdjIxLjlMNDIwLDIyMi4zTDQyMCwyMjIuM3ogTTQxNi4zLDIxMC40Yy0yLjIsMC0zLjcsMS42LTMuNyw0LjFjMCwyLjQsMS41LDQuMSwzLjcsNC4xczMuNi0xLjYsMy42LTQuMQoJCQlDNDE5LjksMjEyLjEsNDE4LjQsMjEwLjQsNDE2LjMsMjEwLjR6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTQ0NS43LDIyMi4zaC00LjlsLTguMS0yMS45aDUuNWw1LjEsMTUuMWw1LjEtMTUuMWg1LjRMNDQ1LjcsMjIyLjN6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTQ3MC4yLDIxNS43aC0xMS4xYzAuMiwyLjMsMS45LDMuMyw0LDMuM2MyLDAsMy44LTAuOSw0LjctMS41bDIsMi42Yy0wLjUsMC40LTIuNiwyLjUtNy40LDIuNQoJCQlzLTguMy0zLTguMy04LjFjMC01LjIsMy44LTguMSw4LjQtOC4xczcuOCwzLjEsNy44LDcuNkM0NzAuMywyMTQuOCw0NzAuMiwyMTUuNyw0NzAuMiwyMTUuN3ogTTQ2Mi4zLDIwOS43CgkJCWMtMi4xLDAtMy4yLDEuNi0zLjIsMy4xaDYuNEM0NjUuNSwyMTEuNCw0NjQuNSwyMDkuNyw0NjIuMywyMDkuN3oiLz4KCQk8cGF0aCBjbGFzcz0ic3QzIiBkPSJNNDgzLDIyMi4zdi04LjJjMC0xLjktMC4zLTMuNi0yLjQtMy42cy0yLjgsMS44LTIuOCw0LjF2Ny43aC01LjF2LTIxLjloNS4xdjUuMmMwLDEuNiwwLDMuMywwLDMuMwoJCQljMC44LTEuNCwyLjMtMi41LDQuNi0yLjVjNC41LDAsNS43LDIuOSw1LjcsNi43djkuMkw0ODMsMjIyLjNMNDgzLDIyMi4zeiIvPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik00OTMuOSwyMDQuOWMtMS43LDAtMi45LTEtMi45LTIuNnMxLjItMi42LDIuOS0yLjZzMi45LDEuMSwyLjksMi42QzQ5Ni44LDIwMy44LDQ5NS42LDIwNC45LDQ5My45LDIwNC45egoJCQkgTTQ5MS40LDIyMi4zdi0xNS42aDUuMXYxNS42SDQ5MS40eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik01MDcuMiwyMjIuN2MtNC4zLDAtOC4yLTIuOS04LjItOC4xczQtOC4xLDguMy04LjFjNCwwLDUuOCwxLjYsNS44LDEuNmwtMS4xLDMuOGMtMC40LTAuMy0xLjgtMS40LTQtMS40CgkJCXMtMy45LDEuNS0zLjksNHMxLjYsNCwzLjksNHM0LTEuNSw0LTEuNWwxLjIsMy44QzUxMywyMjAuOSw1MTEuMywyMjIuNyw1MDcuMiwyMjIuN3oiLz4KCQk8cGF0aCBjbGFzcz0ic3QzIiBkPSJNNTE1LjMsMjIyLjN2LTIxLjloNS4xdjIxLjlINTE1LjN6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTUzOS4xLDIxNS43SDUyOGMwLjIsMi4zLDEuOSwzLjMsNCwzLjNjMiwwLDMuOC0wLjksNC43LTEuNWwyLDIuNmMtMC41LDAuNC0yLjYsMi41LTcuNCwyLjUKCQkJYy00LjgsMC04LjMtMy04LjMtOC4xYzAtNS4yLDMuOC04LjEsOC40LTguMXM3LjgsMy4xLDcuOCw3LjZDNTM5LjEsMjE0LjgsNTM5LjEsMjE1LjcsNTM5LjEsMjE1Ljd6IE01MzEuMiwyMDkuNwoJCQljLTIuMSwwLTMuMiwxLjYtMy4yLDMuMWg2LjRDNTM0LjQsMjExLjQsNTMzLjMsMjA5LjcsNTMxLjIsMjA5Ljd6Ii8+Cgk8L2c+CjwvZz4KPHJlY3QgeD0iNTk5LjIiIHk9IjYyLjYiIGNsYXNzPSJzdDQiIHdpZHRoPSI0NCIgaGVpZ2h0PSIzMiIvPgo8ZyBjbGFzcz0ic3Q1Ij4KCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik02MDYuMyw2NC40aC0yLjh2NS43aC0xLjN2LTUuN2gtMi44di0xLjNoNi45VjY0LjR6Ii8+Cgk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNNjE1LjMsNzAuMWgtMS4zdi00LjJsLTIuMyw0Yy0wLjEsMC4xLTAuMSwwLjItMC4yLDAuMmMtMC4xLDAuMS0wLjIsMC4xLTAuMywwLjFjLTAuMSwwLTAuMiwwLTAuMy0wLjEKCQljLTAuMS0wLjEtMC4yLTAuMS0wLjItMC4ybC0yLjMtNHY0LjJoLTEuM3YtNi41YzAtMC4xLDAtMC4zLDAuMS0wLjRjMC4xLTAuMSwwLjItMC4yLDAuMy0wLjJjMC4xLDAsMC4xLDAsMC4yLDBjMC4xLDAsMC4xLDAsMC4yLDAKCQljMC4xLDAsMC4xLDAuMSwwLjIsMC4xYzAuMSwwLDAuMSwwLjEsMC4xLDAuMmwyLjksNWwyLjktNWMwLjEtMC4xLDAuMi0wLjIsMC4zLTAuM2MwLjEtMC4xLDAuMy0wLjEsMC40LDBjMC4xLDAsMC4yLDAuMSwwLjMsMC4yCgkJczAuMSwwLjIsMC4xLDAuNFY3MC4xeiIvPgo8L2c+Cjwvc3ZnPgo=;" vertex="1" parent="1"> <mxGeometry x="553" y="644.94" width="134" height="50.03" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-39" value="" style="shape=image;aspect=fixed;image=data:image/svg+xml,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjgzcHgiIGhlaWdodD0iOTJweCIgdmlld0JveD0iMCAwIDI4MyA5MiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWxuczpza2V0Y2g9Imh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaC9ucyI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDMuMy4zICgxMjA3MikgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+ZWNsaXBzZS1mb3VuZGF0aW9uLWdyZXktb3JhbmdlPC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc2tldGNoOnR5cGU9Ik1TUGFnZSI+CiAgICAgICAgPGcgaWQ9ImVjbGlwc2UtZm91bmRhdGlvbi1ncmV5LW9yYW5nZSIgc2tldGNoOnR5cGU9Ik1TTGF5ZXJHcm91cCI+CiAgICAgICAgICAgIDxnIGlkPSJMYXllcl8xIiBza2V0Y2g6dHlwZT0iTVNTaGFwZUdyb3VwIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNjYuNTYsODQuMyBMMjU3Ljg5LDczLjMgTDI1NS4xOCw3My4zIEwyNTUuMTgsOTEgTDI1OC41Miw5MSBMMjU4LjUyLDc5IEwyNjcuODMsOTEgTDI2OS45LDkxIEwyNjkuOSw3My4zMSBMMjY2LjU2LDczLjMxIEwyNjYuNTYsODQuMyBaIE0yMzQuMTUsNzYgQzIzOC4zMiw3NiAyMzkuOTksNzkuMzQgMjM5Ljk0LDgyLjMzIEMyMzkuODksODUuMzIgMjM4LjMyLDg4LjMzIDIzNC4xNSw4OC4zMyBDMjI5Ljk4LDg4LjMzIDIyOC40MSw4NS4yMiAyMjguMzQsODIuMzMgQzIyOC4yNyw3OS40NCAyMzAsNzYgMjM0LjE1LDc2IEwyMzQuMTUsNzYgWiBNMjM0LjE1LDczIEMyMjguMDMsNzMgMjI1LjA1LDc3LjY4IDIyNS4wNSw4Mi4zMyBDMjI1LjA1LDg2Ljk4IDIyNy45Myw5MS40NiAyMzQuMTUsOTEuNDYgQzI0MC4zNyw5MS40NiAyNDMuMTUsODYuODggMjQzLjIzLDgyLjMgQzI0My4zMSw3Ny43MiAyNDAuMjUsNzMgMjM0LjE1LDczIEwyMzQuMTUsNzMgWiBNMjEyLjkyLDkxIEwyMTIuOTIsNzMuMzEgTDIwOS42LDczLjMxIEwyMDkuNiw5MSBMMjEyLjkyLDkxIFogTTE4OS4zNiw5MSBMMTkyLjcsOTEgTDE5Mi43LDc2LjM0IEwxOTguMzEsNzYuMzQgTDE5OC4zMSw3My4zNCBMMTgzLjc0LDczLjM0IEwxODMuNzQsNzYuMzQgTDE4OS4zNiw3Ni4zNCBMMTg5LjM2LDkxIFogTTE3MC40NSw4NC41NiBMMTYzLjg3LDg0LjU2IEwxNjcuMTYsNzcgTDE3MC40NSw4NC41NiBaIE0xNzMuMjgsOTEgTDE3Ni45Miw5MSBMMTY5LDczLjMxIEwxNjUuMzYsNzMuMzEgTDE1Ny40LDkxIEwxNjEsOTEgTDE2Mi41MSw4Ny42NyBMMTcxLjc3LDg3LjY3IEwxNzMuMjgsOTEgWiBNMTM1LjI4LDc2LjQ0IEwxMzguOTIsNzYuNDQgQzE0Mi43Nyw3Ni40NCAxNDQuMzgsNzkuMiAxNDQuNDYsODEuOTYgQzE0NC41NCw4NC43MiAxNDIuOTQsODcuNzkgMTM4LjkyLDg3Ljc5IEwxMzUuMjgsODcuNzkgTDEzNS4yOCw3Ni40NCBaIE0xMzguOTIsNzMuMjggTDEzMiw3My4yOCBMMTMyLDkxIEwxMzguOTUsOTEgQzE0NS4xNSw5MSAxNDcuODgsODYuNDggMTQ3LjgsODIgQzE0Ny43Miw3Ny41MiAxNDUsNzMuMzEgMTM4LjkyLDczLjMxIEwxMzguOTIsNzMuMjggWiBNMTE2LjU1LDg0LjI4IEwxMDcuODgsNzMuMjggTDEwNS4xNyw3My4yOCBMMTA1LjE3LDkxIEwxMDguNTEsOTEgTDEwOC41MSw3OSBMMTE3LjgxLDkxIEwxMTkuODksOTEgTDExOS44OSw3My4zMSBMMTE2LjU1LDczLjMxIEwxMTYuNTUsODQuMjggWiBNODkuMDksNzMuMzQgTDg5LjA5LDgzLjUgQzg5LjA5LDg2LjUgODcuNTMsODguMzggODQuNzcsODguMzggQzgyLjAxLDg4LjM4IDgwLjE5LDg2LjY5IDgwLjE5LDgzLjUgTDgwLjE5LDczLjM2IEw3Ni44OCw3My4zNiBMNzYuODgsODMuNSBDNzYuODgsODguODMgODAuNSw5MS40MSA4NC43NCw5MS40MSBDODkuMTksOTEuNDEgOTIuNDEsODguNzMgOTIuNDEsODMuNSBMOTIuNDEsNzMuMzYgTDg5LjA5LDczLjM0IFogTTU2LjA5LDc1Ljk5IEM2MC4yNiw3NS45OSA2MS45Myw3OS4zMyA2MS44OCw4Mi4zMiBDNjEuODMsODUuMzEgNjAuMjYsODguMzIgNTYuMDksODguMzIgQzUxLjkyLDg4LjMyIDUwLjM1LDg1LjIxIDUwLjI3LDgyLjMyIEM1MC4xOSw3OS40MyA1MS45Myw3NiA1Ni4xLDc2IEw1Ni4wOSw3NS45OSBaIE01Ni4wOSw3Mi45OSBDNDkuOTcsNzIuOTkgNDYuOTksNzcuNjcgNDYuOTksODIuMzIgQzQ2Ljk5LDg2Ljk3IDQ5Ljg3LDkxLjQ1IDU2LjA5LDkxLjQ1IEM2Mi4zMSw5MS40NSA2NS4wOSw4Ni44NyA2NS4xNyw4Mi4yOSBDNjUuMjUsNzcuNzEgNjIuMTksNzMgNTYuMSw3MyBMNTYuMDksNzIuOTkgWiBNMjYuMzIsOTEgTDI2LjMyLDg0LjQ2IEwzNS4xOSw4NC40NiBMMzUuMTksODEuNCBMMjYuMzIsODEuNCBMMjYuMzIsNzYuNTcgTDM1LjcsNzYuNTcgTDM1LjcsNzMuMzYgTDIzLDczLjM2IEwyMyw5MSBMMjYuMzIsOTEgWiIgaWQ9IlNoYXBlIiBmaWxsPSIjRjc5NDIyIj48L3BhdGg+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjcwLjIzLDU0Ljc1IEwyNDguMDYsNTQuNzUgTDI0OC4wNiw0NS44NCBMMjY5LjQ0LDQ1Ljg0IEwyNjkuNDQsMzguOSBMMjQ4LjA2LDM4LjkgTDI0OC4wNiwyOS43NiBMMjcwLjIzLDI5Ljc2IEwyNzAuMjMsMjIuNTQgTDI0MC42NywyMi41NCBMMjQwLjY3LDYyLjA4IEwyNzAuMjMsNjIuMDggTDI3MC4yMyw1NC43NSBaIE0yMzAuMjMsMjkuMDkgQzIyNy4yMywyMi45OSAyMjAuODcsMjEuMjUgMjE0LjcyLDIxLjI1IEMyMDcuNDQsMjEuMjUgMTk5LjQzLDI0LjYzIDE5OS40MywzMi43NSBDMTk5LjQzLDQxLjYxIDIwNi44OCw0My43NSAyMTQuOTQsNDQuNzUgQzIyMC4xOSw0NS4zMSAyMjQuMDgsNDYuODQgMjI0LjA4LDUwLjU2IEMyMjQuMDgsNTQuODUgMjE5LjY4LDU2LjQ4IDIxNSw1Ni40OCBDMjEwLjMyLDU2LjQ4IDIwNS42NCw1NC41NiAyMDMuODksNTAuMjIgTDE5Ny42OCw1My40NCBDMjAwLjYyLDYwLjY2IDIwNi44Miw2My4xNCAyMTQuODksNjMuMTQgQzIyMy42OSw2My4xNCAyMzEuNDcsNTkuMzYgMjMxLjQ3LDUwLjU2IEMyMzEuNDcsNDEuMTQgMjIzLjgsMzkgMjE1LjU2LDM3Ljk4IEMyMTAuODMsMzcuNDIgMjA2Ljc3LDM2LjQ2IDIwNi43NywzMi45OCBDMjA2Ljc3LDMwLjA1IDIwOS40MiwyNy43MyAyMTQuOTQsMjcuNzMgQzIxOS4yMywyNy43MyAyMjIuOTQsMjkuODggMjI0LjMxLDMyLjEzIEwyMzAuMjMsMjkuMDkgWiBNMTc2Ljg5LDIyLjU0IEMxNzAuNjgsMjIuNDkgMTY0LjQ4LDIyLjU0IDE1OC4yNywyMi41NCBMMTU4LjI3LDYyLjA4IEwxNjUuNzIsNjIuMDggTDE2NS43Miw1MC40NiBMMTc2Ljg5LDUwLjQ2IEMxOTYuMjUsNTAuNDYgMTk2LjIsMjIuNTQgMTc2LjkxLDIyLjU0IEwxNzYuODksMjIuNTQgWiBNMTY1LjcyLDI5LjY1IEwxNzYuODksMjkuNjUgQzE4Ni4zNiwyOS42NSAxODYuNDIsNDMuNjUgMTc2Ljg5LDQzLjY1IEwxNjUuNzQsNDMuNjUgTDE2NS43MiwyOS42NSBaIE0xNDcuNzIsNjIuMDggTDE0Ny43MiwyMi41NCBMMTQwLjMzLDIyLjU0IEwxNDAuMzMsNjIuMDggTDE0Ny43Miw2Mi4wOCBaIE0xMDMuNzIsMjIuNTQgTDEwMy43Miw2Mi4wOCBMMTMxLjQ3LDYyLjA4IEwxMzEuNDcsNTUuMiBMMTExLjIyLDU1LjIgTDExMS4yMiwyMi41NCBMMTAzLjcyLDIyLjU0IFogTTkxLjU1LDUyIEM4OC44NzIyMzQsNTQuNTQ2MTg2NyA4NS4zMjQ5ODk0LDU1Ljk3NjUyNzMgODEuNjMsNTYgQzcxLjg3LDU2IDY4LjA5LDQ5LjE4IDY4LjAzLDQyLjYzIEM2Ny45NywzNi4wOCA3Mi4wOSwyOC45MyA4MS42MywyOC45MyBDODUuMTcwNTIyLDI4Ljg3ODE2MTkgODguNTkwODc1NywzMC4yMTMyODQyIDkxLjE2LDMyLjY1IEw5Ni4xNiwyNy44NiBDOTIuMzI1NjA0NSwyNC4wMDQ0MTAxIDg3LjEwNzYzNzIsMjEuODQzNzYxMSA4MS42NywyMS44NiBDNjcuNCwyMS44NiA2MC42NywzMi4zNSA2MC43NCw0Mi42NyBDNjAuODEsNTIuOTkgNjcsNjMgODEuNjMsNjMgQzg3LjIxNDg1MDEsNjMuMTMzOTQ0NCA5Mi42MTk0NDE2LDYxLjAxODk0NzYgOTYuNjMsNTcuMTMgTDkxLjU1LDUyIFogTTUyLjU1LDU0Ljc2IEwzMC4zNyw1NC43NiBMMzAuMzcsNDUuODQgTDUxLjc1LDQ1Ljg0IEw1MS43NSwzOC45IEwzMC4zNywzOC45IEwzMC4zNywyOS43NiBMNTIuNTQsMjkuNzYgTDUyLjU0LDIyLjU0IEwyMywyMi41NCBMMjMsNjIuMDggTDUyLjU2LDYyLjA4IEw1Mi41NSw1NC43NiBaIiBpZD0iU2hhcGUiIGZpbGw9IiMzRDNDM0IiPjwvcGF0aD4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC42NiwxOC41MiBDMTkuNjYsNC40MiAzNy44MSwtMC40OCA1Mi45MSw2LjI3IEw1MS45MSw1LjU4IEMzNi40OTI5NzEyLC00LjMwNTg5NzAyIDE1Ljk4MDg5NywwLjE3Nzk3MTIwOCA2LjA5NSwxNS41OTUgQy0zLjc5MDg5NzAyLDMxLjAxMjAyODggMC42OTI5NzEyMDgsNTEuNTI0MTAzIDE2LjExLDYxLjQxIEwxNy4xNiw2Mi4wNCBDNC42OSw1MS4xNCAxLjYxLDMyLjYzIDEwLjY2LDE4LjUyIEwxMC42NiwxOC41MiBaIiBpZD0iU2hhcGUiIGZpbGw9IiNGNzk0MjIiPjwvcGF0aD4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNzMsMjYuNDEgTDI3MywyNi40MSBDMjczLDIzLjg4MDUzNTggMjc1LjA1MDUzNiwyMS44MyAyNzcuNTgsMjEuODMgQzI4MC4xMDk0NjQsMjEuODMgMjgyLjE2LDIzLjg4MDUzNTggMjgyLjE2LDI2LjQxIEwyODIuMTYsMjYuNDEgQzI4Mi4xNiwyOC45Mzk0NjQyIDI4MC4xMDk0NjQsMzAuOTkgMjc3LjU4LDMwLjk5IEMyNzUuMDUwNTM2LDMwLjk5IDI3MywyOC45Mzk0NjQyIDI3MywyNi40MSBMMjczLDI2LjQxIFogTTI4MS42MywyNi40MSBMMjgxLjYzLDI2LjQxIEMyODEuNjMsMjQuMTczMjQ2OCAyNzkuODE2NzUzLDIyLjM2IDI3Ny41OCwyMi4zNiBDMjc1LjM0MzI0NywyMi4zNiAyNzMuNTMsMjQuMTczMjQ2OCAyNzMuNTMsMjYuNDEgTDI3My41MywyNi40MSBDMjczLjUwODI0LDI3LjQ5MzM4NjkgMjczLjkyNjk1NywyOC41MzkyNDY3IDI3NC42OTAzNDksMjkuMzA4MjkzNiBDMjc1LjQ1Mzc0MSwzMC4wNzczNDA1IDI3Ni40OTY0ODIsMzAuNTAzNzYzNiAyNzcuNTgsMzAuNDkgQzI3OC42Njk4NiwzMC40OTU0MDg0IDI3OS43MTYzNTcsMzAuMDYzNDgxMiAyODAuNDg1MTMyLDI5LjI5MDk0NjggQzI4MS4yNTM5MDcsMjguNTE4NDEyNSAyODEuNjgwNzI1LDI3LjQ2OTgyMDggMjgxLjY3LDI2LjM4IEwyODEuNjMsMjYuNDEgWiBNMjc1LjY5LDIzLjk0IEwyNzgsMjMuOTQgQzI3OS4xMSwyMy45NCAyNzkuOTIsMjQuNDQgMjc5LjkyLDI1LjUyIEMyNzkuOTUxNzY2LDI2LjIwODgzOCAyNzkuNDk3MjUsMjYuODI1OTc4IDI3OC44MywyNyBMMjgwLDI4LjY3IEwyNzguNjEsMjguNjcgTDI3Ny42MSwyNy4xNyBMMjc2Ljg3LDI3LjE3IEwyNzYuODcsMjguNjcgTDI3NS43MiwyOC42NyBMMjc1LjY5LDIzLjk0IFogTTI3Ny44NCwyNi4yNSBDMjc4LjM3LDI2LjI1IDI3OC42NiwyNS45OSAyNzguNjYsMjUuNiBDMjc4LjY2LDI1LjIxIDI3OC4zNCwyNC45NCAyNzcuODQsMjQuOTQgTDI3Ni44NCwyNC45NCBMMjc2Ljg0LDI2LjI1IEwyNzcuODQsMjYuMjUgWiIgaWQ9IlNoYXBlIiBmaWxsPSIjM0QzQzNCIj48L3BhdGg+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==;" vertex="1" parent="1"> <mxGeometry x="138" y="654.98" width="123" height="39.99" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-40" value="" style="shape=image;aspect=fixed;image=data:image/png,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;" vertex="1" parent="1"> <mxGeometry x="173" y="573.0699999999999" width="119" height="43.86" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-41" value="" style="shape=singleArrow;direction=south;whiteSpace=wrap;html=1;rotation=-90;fillColor=#eeeeee;strokeColor=#36393d;arrowWidth=0.48333333333333334;arrowSize=0.3611111111111111;" vertex="1" parent="1"> <mxGeometry x="816" y="241" width="60" height="72" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-46" value="&lt;b style=&quot;&quot;&gt;&lt;font style=&quot;font-size: 12px;&quot;&gt;Software Module Repo&lt;/font&gt;&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=11;" vertex="1" parent="1"> <mxGeometry x="1030.5" y="474.02" width="150" height="30" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-48" value="" style="shape=image;aspect=fixed;image=data:image/svg+xml,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI2LjUuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA2MzAgMjM1IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA2MzAgMjM1OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2NsaXAtcGF0aDp1cmwoI1NWR0lEXzAwMDAwMDQxOTkxOTMyMDQ1NTE3NjA3NjEwMDAwMDAzMTYxNjc5OTMwMDc5ODQyNDc1Xyk7ZmlsbDojNDUyMDYyO30KCS5zdDF7Y2xpcC1wYXRoOnVybCgjU1ZHSURfMDAwMDAwMjI1MjM2NzMwNzIxNjI3MDczODAwMDAwMTM2MTA1NjU4NjAyNjAzNzg1NTBfKTtmaWxsOiNBQTIwNkU7fQoJLnN0MntmaWxsOiNBQTIwNkU7fQoJLnN0M3tmaWxsOiM0NTIwNjI7fQoJLnN0NHtmaWxsOm5vbmU7fQoJLnN0NXtlbmFibGUtYmFja2dyb3VuZDpuZXcgICAgO30KPC9zdHlsZT4KPGc+Cgk8Zz4KCQk8Zz4KCQkJPGRlZnM+CgkJCQk8cmVjdCBpZD0iU1ZHSURfMV8iIHg9Ii0xMyIgeT0iOS41IiB3aWR0aD0iNzIwIiBoZWlnaHQ9IjE0Ni45Ii8+CgkJCTwvZGVmcz4KCQkJPGNsaXBQYXRoIGlkPSJTVkdJRF8wMDAwMDE0NzIyMTQzMDQxMTE3NTAzODAwMDAwMDAxNDMwOTMyOTA5MTI5OTcyOTU0NF8iPgoJCQkJPHVzZSB4bGluazpocmVmPSIjU1ZHSURfMV8iICBzdHlsZT0ib3ZlcmZsb3c6dmlzaWJsZTsiLz4KCQkJPC9jbGlwUGF0aD4KCQkJPHBhdGggc3R5bGU9ImNsaXAtcGF0aDp1cmwoI1NWR0lEXzAwMDAwMTQ3MjIxNDMwNDExMTc1MDM4MDAwMDAwMDE0MzA5MzI5MDkxMjk5NzI5NTQ0Xyk7ZmlsbDojNDUyMDYyOyIgZD0iTTU0NS40LDU0LjVoLTAuNgoJCQkJYy0yMC44LTcuMS00MS42LTE0LjMtNjIuNy0yMC4xYy0xMS0zLjEtMjIuMS01LjgtMzMuMi04Yy0yLjgtMC42LTUuNi0xLTguNC0xLjZjLTEuNC0wLjItMi44LTAuNS00LjItMC43bC00LjItMC42bC00LjItMC42CgkJCQljLTEuNC0wLjItMi44LTAuMy00LjItMC41Yy0yLjgtMC4zLTUuNi0wLjctOC40LTAuOWwtNC4yLTAuNGMtMS40LTAuMS0yLjgtMC4zLTQuMi0wLjNjLTIuOC0wLjEtNS42LTAuMy04LjQtMC40bC04LjQtMC4xCgkJCQljLTIuOCwwLjEtNS42LDAuMi04LjQsMC4zYy0xMS4yLDAuNy0yMi4zLDIuNC0zMy4yLDUuMWMtMTAuOSwyLjctMjEuNyw2LjItMzIuMywxMC42Yy0xMC42LDQuMy0yMC45LDkuMy0zMS4xLDE0LjkKCQkJCWMtMi41LDEuNC01LjEsMi43LTcuNiw0LjJzLTUuMSwyLjktNy42LDQuNHMtNSwzLTcuNSw0LjVsLTcuNSw0LjdjLTUsMy4xLTEwLjIsNi4yLTE1LjUsOC45cy0xMC45LDUuMS0xNi43LDYuN2wtMi4yLDAuNgoJCQkJbC0yLjIsMC41Yy0xLjQsMC40LTIuOSwwLjYtNC4zLDAuOWMtMi45LDAuNS01LjgsMC45LTguNywxLjNjLTUuOCwwLjctMTEuNSwxLjEtMTcuMiwxLjVzLTExLjMsMC44LTE2LjgsMS41bC0xNi45LDIuNAoJCQkJYy01LjYsMC44LTExLjMsMS42LTE2LjksMi41Yy01LjYsMC45LTExLjIsMS45LTE2LjcsMy4xYy0xMS4xLDIuMy0yMi4xLDUuMy0zMi43LDkuN2MtMTAuNiw0LjMtMjAuNywxMC4yLTI5LjMsMTguNQoJCQkJYy00LjMsNC4yLTguMSw5LTExLjIsMTQuNHMtNS41LDExLjQtNy4xLDE3LjdjMS4yLTYuNCwzLjItMTIuNiw2LjEtMTguNGMyLjktNS43LDYuNS0xMSwxMC43LTE1LjZzOC45LTguNSwxMy45LTExLjkKCQkJCXMxMC4yLTYuMywxNS41LTguOWM1LjMtMi41LDEwLjgtNC42LDE2LjMtNi41czExLjEtMy41LDE2LjctNC45YzUuNi0xLjQsMTEuMi0yLjYsMTYuOS0zLjdjNS42LTEuMSwxMS4zLTIuMSwxNi45LTMuMWwxNi45LTMKCQkJCWM1LjctMC45LDExLjUtMS41LDE3LjItMnMxMS4zLTEsMTYuOS0xLjhjMi44LTAuNCw1LjUtMC44LDguMy0xLjNjMS40LTAuMywyLjctMC41LDQuMS0wLjlsMi0wLjVsMi0wLjZjMi42LTAuOCw1LjItMS43LDcuOC0yLjgKCQkJCWMyLjYtMS4xLDUuMS0yLjMsNy42LTMuNmM1LTIuNiwxMC01LjcsMTQuOS04LjhsNy41LTQuN2MyLjUtMS42LDUuMS0zLjEsNy42LTQuNmMyLjUtMS42LDUuMS0zLDcuNy00LjVzNS4yLTIuOSw3LjgtNC4zCgkJCQljMTAuNC01LjYsMjEtMTAuNywzMS45LTE1LjFjMTAuOS00LjMsMjItOCwzMy40LTEwLjVjMTEuMy0yLjYsMjIuOS00LjIsMzQuNC00LjZjMi45LTAuMSw1LjgtMC4xLDguNy0wLjJsOC43LDAuMwoJCQkJYzIuOSwwLjIsNS43LDAuNCw4LjYsMC43YzEuNCwwLjEsMi45LDAuMyw0LjMsMC40bDQuMywwLjVjMi45LDAuMyw1LjcsMC44LDguNSwxLjJjMS40LDAuMiwyLjgsMC40LDQuMywwLjdsNC4yLDAuOGw0LjIsMC44CgkJCQljMS40LDAuMywyLjgsMC42LDQuMiwwLjljMi44LDAuNiw1LjYsMS4yLDguNCwxLjljMTEuMiwyLjcsMjIuMyw1LjksMzMuMyw5LjZDNTA0LjMsMzcuMSw1MjUsNDUuNSw1NDUuNCw1NC41eiIvPgoJCTwvZz4KCQk8Zz4KCQkJPGRlZnM+CgkJCQk8cmVjdCBpZD0iU1ZHSURfMDAwMDAxMjc3Mzg2NjAxNjczNjEwMDE4OTAwMDAwMDg0NzM4MTY0MTc5OTc4NzU2MzBfIiB4PSItMTMiIHk9IjkuNSIgd2lkdGg9IjcyMCIgaGVpZ2h0PSIxNDYuOSIvPgoJCQk8L2RlZnM+CgkJCTxjbGlwUGF0aCBpZD0iU1ZHSURfMDAwMDAwODY2ODMyMTA0Njk3MTI3NjM5NjAwMDAwMDk5NjcxNDM4NjMyMjM2ODg4NjRfIj4KCQkJCTx1c2UgeGxpbms6aHJlZj0iI1NWR0lEXzAwMDAwMTI3NzM4NjYwMTY3MzYxMDAxODkwMDAwMDA4NDczODE2NDE3OTk3ODc1NjMwXyIgIHN0eWxlPSJvdmVyZmxvdzp2aXNpYmxlOyIvPgoJCQk8L2NsaXBQYXRoPgoJCQk8cGF0aCBzdHlsZT0iY2xpcC1wYXRoOnVybCgjU1ZHSURfMDAwMDAwODY2ODMyMTA0Njk3MTI3NjM5NjAwMDAwMDk5NjcxNDM4NjMyMjM2ODg4NjRfKTtmaWxsOiNBQTIwNkU7IiBkPSJNMTQzLjgsMTI1LjlsODYuMS0yMwoJCQkJYzguNi0yLjMsMTcuNi0zLjcsMjYuOC00LjNsMzYzLjEtMjEuOUwxNDMuOCwxMjUuOXoiLz4KCQk8L2c+Cgk8L2c+Cgk8Zz4KCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNMjkuNCwxMjMuM0M0Niw4Ny42LDg2LjYsNzAuNCwxMjMuOSw4MS40Yy0wLjktMC40LTEuNy0wLjktMi42LTEuM2MtMzkuMS0xOC4yLTg1LjUtMS4zLTEwMy43LDM3LjcKCQkJYy0xOC4xLDM5LTEuMSw4NS40LDM4LDEwMy41YzAuOSwwLjQsMS44LDAuOCwyLjYsMS4xQzI1LjgsMjAxLjEsMTIuOCwxNTksMjkuNCwxMjMuM3oiLz4KCTwvZz4KCTxnPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik00MDkuMywxNjYuNWMwLDIuMi0wLjMsNC4xLTAuOCw1LjljLTAuNSwxLjctMS4zLDMuMy0yLjIsNC42cy0yLDIuNS0zLjIsMy40cy0yLjUsMS43LTMuOCwyLjMKCQkJYy0xLjMsMC42LTIuNiwxLTQsMS4zYy0xLjMsMC4zLTIuNiwwLjQtMy44LDAuNEgzNDl2LTExaDQyLjVjMi4xLDAsMy44LTAuNiw0LjktMS45YzEuMi0xLjIsMS44LTIuOSwxLjgtNWMwLTEtMC4yLTEuOS0wLjUtMi44CgkJCXMtMC44LTEuNi0xLjMtMi4yYy0wLjYtMC42LTEuMy0xLjEtMi4xLTEuNGMtMC44LTAuMy0xLjgtMC41LTIuOC0wLjVoLTI1LjNjLTEuOCwwLTMuNy0wLjMtNS44LTFjLTIuMS0wLjYtNC0xLjctNS43LTMuMQoJCQljLTEuOC0xLjQtMy4yLTMuMy00LjQtNS41Yy0xLjItMi4zLTEuOC01LjEtMS44LTguNHMwLjYtNi4xLDEuOC04LjRjMS4yLTIuMywyLjYtNC4xLDQuNC01LjVzMy43LTIuNSw1LjctMy4xYzIuMS0wLjYsNC0xLDUuOC0xCgkJCWgzNy41djExaC0zNy41Yy0yLjEsMC0zLjcsMC42LTQuOSwxLjlzLTEuOCwzLTEuOCw1YzAsMi4xLDAuNiwzLjgsMS44LDVjMS4yLDEuMiwyLjgsMS44LDQuOSwxLjhoMjUuM2gwLjFjMS4yLDAsMi40LDAuMiwzLjgsMC41CgkJCWMxLjMsMC4zLDIuNiwwLjgsNCwxLjRjMS4zLDAuNiwyLjYsMS40LDMuNywyLjNjMS4yLDAuOSwyLjIsMi4xLDMuMiwzLjRjMC45LDEuMywxLjYsMi45LDIuMiw0LjYKCQkJQzQwOS4xLDE2Mi40LDQwOS4zLDE2NC4zLDQwOS4zLDE2Ni41eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik00NzkuMSwxNTljMCwzLjctMC42LDcuMS0xLjksMTAuMmMtMS4zLDMuMS0zLjEsNS44LTUuMyw4Yy0yLjMsMi4yLTQuOSw0LTgsNS4zcy02LjUsMS45LTEwLjEsMS45aC0yOS43CgkJCWMtMC44LDAtMS41LTAuMS0yLjItMC40cy0xLjMtMC43LTEuOC0xLjJzLTAuOS0xLjEtMS4yLTEuOGMtMC4zLTAuNy0wLjQtMS40LTAuNC0yLjJ2LTQ5LjZjMC0wLjgsMC4xLTEuNSwwLjQtMi4yCgkJCXMwLjctMS4zLDEuMi0xLjhzMS4xLTAuOSwxLjgtMS4yYzAuNy0wLjMsMS40LTAuNCwyLjItMC40aDI5LjdjMy42LDAsNywwLjYsMTAuMSwxLjlzNS44LDMsOCw1LjNjMi4zLDIuMiw0LDQuOSw1LjMsOAoJCQlzMS45LDYuNSwxLjksMTAuMlYxNTl6IE00NjguMSwxNDkuMWMwLTIuMS0wLjMtNC4xLTEtNS45cy0xLjctMy4zLTIuOS00LjZjLTEuMy0xLjMtMi44LTIuMi00LjYtMi45Yy0xLjgtMC43LTMuNy0xLTUuOS0xaC0yNC4zCgkJCXYzOC43aDI0LjNjMi4xLDAsNC4xLTAuMyw1LjktMXMzLjMtMS43LDQuNi0yLjljMS4zLTEuMywyLjMtMi44LDIuOS00LjVjMC43LTEuOCwxLTMuNywxLTUuOVYxNDkuMXoiLz4KCQk8cGF0aCBjbGFzcz0ic3QzIiBkPSJNNTQ5LjIsMTIzLjdsLTI4LjcsNTguNmMtMC41LDAuOS0xLjEsMS42LTIsMi4yYy0wLjksMC41LTEuOSwwLjgtMi45LDAuOHMtMi0wLjMtMi45LTAuOAoJCQljLTAuOS0wLjYtMS42LTEuMy0yLjEtMi4ybC0yOC43LTU4LjZoMTIuM2wyMS4zLDQzLjdsMjEuNC00My43SDU0OS4yeiIvPgoJPC9nPgoJPGc+CgkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTY3LjYsMjIyLjN2LTIxLjloMTQuMnY0LjFoLTkuMXY0LjVoOC42djQuMWgtOC42djUuMWg5LjR2NC4ySDY3LjZWMjIyLjN6Ii8+CgkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTkxLjksMjIyLjdjLTQuMywwLTguMi0yLjktOC4yLTguMXM0LTguMSw4LjMtOC4xYzQsMCw1LjgsMS42LDUuOCwxLjZsLTEuMSwzLjhjLTAuNC0wLjMtMS44LTEuNC00LTEuNAoJCQlzLTMuOSwxLjUtMy45LDRzMS42LDQsMy45LDRjMi40LDAsNC0xLjUsNC0xLjVsMS4yLDMuOEM5Ny43LDIyMC45LDk2LDIyMi43LDkxLjksMjIyLjd6Ii8+CgkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTEwMCwyMjIuM3YtMjEuOWg1LjF2MjEuOUgxMDB6Ii8+CgkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTExMS4xLDIwNC45Yy0xLjcsMC0yLjktMS0yLjktMi42czEuMi0yLjYsMi45LTIuNnMyLjksMS4xLDIuOSwyLjZTMTEyLjgsMjA0LjksMTExLjEsMjA0Ljl6IE0xMDguNiwyMjIuMwoJCQl2LTE1LjZoNS4xdjE1LjZIMTA4LjZ6Ii8+CgkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTEyNy4xLDIyMi43Yy0yLjMsMC00LTAuOS00LjktMi4zdjcuN2gtNS4xdi0yMS40aDQuOHYyaDAuMWMxLjEtMS40LDIuOC0yLjMsNS4yLTIuM2M0LjUsMCw3LjQsMy41LDcuNCw4LjEKCQkJUzEzMS43LDIyMi43LDEyNy4xLDIyMi43eiBNMTI1LjcsMjEwLjRjLTIuMiwwLTMuNiwxLjYtMy42LDQuMWMwLDIuNCwxLjUsNC4xLDMuNiw0LjFjMi4yLDAsMy43LTEuNiwzLjctNC4xCgkJCUMxMjkuNCwyMTIuMSwxMjcuOSwyMTAuNCwxMjUuNywyMTAuNHoiLz4KCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNMTQyLjMsMjIyLjdjLTIuMywwLTQuOC0wLjctNi42LTIuNGwxLjktM2MxLjMsMS4xLDMuNCwxLjksNC42LDEuOWMxLjMsMCwyLjItMC4zLDIuMi0xLjNzLTIuMy0xLjUtMi45LTEuNwoJCQljLTIuNi0wLjctNC45LTEuNi00LjktNC44YzAtMywyLjctNC45LDUuOS00LjljMy4zLDAsNS4xLDEuMiw2LDEuOWwtMS42LDNjLTAuOS0wLjctMi43LTEuNS0zLjktMS41cy0xLjksMC4zLTEuOSwxLjEKCQkJczEuMiwxLjIsMi4zLDEuNWMyLjcsMC44LDUuNSwxLjYsNS41LDUuMUMxNDguOSwyMjEuMywxNDUuNSwyMjIuNywxNDIuMywyMjIuN3oiLz4KCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNMTY2LjUsMjE1LjdoLTExLjFjMC4yLDIuMywxLjksMy4zLDQsMy4zYzIsMCwzLjgtMC45LDQuNy0xLjVsMiwyLjZjLTAuNSwwLjQtMi42LDIuNS03LjQsMi41CgkJCWMtNC44LDAtOC4zLTMtOC4zLTguMWMwLTUuMiwzLjgtOC4xLDguNC04LjFzNy44LDMuMSw3LjgsNy42QzE2Ni42LDIxNC44LDE2Ni41LDIxNS43LDE2Ni41LDIxNS43eiBNMTU4LjcsMjA5LjcKCQkJYy0yLjEsMC0zLjIsMS42LTMuMiwzLjFoNi40QzE2MS45LDIxMS40LDE2MC44LDIwOS43LDE1OC43LDIwOS43eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0xODEuOCwyMjIuN2MtMy4yLDAtNi0xLjYtNy44LTMuM2wyLjUtMy43YzEuNiwxLjYsNCwyLjgsNS43LDIuOGMxLjYsMCwyLjktMC44LDIuOS0yLjNzLTEuNi0yLjEtMi42LTIuNAoJCQlzLTIuNi0wLjktMy4zLTEuMmMtMC41LTAuMy0xLjYtMC43LTIuNi0xLjZzLTEuNy0yLjItMS43LTQuMmMwLTIuMSwxLTMuNywyLjMtNC44YzEuMi0xLDMuMi0xLjcsNS44LTEuN3M1LjUsMS4yLDYuOSwyLjcKCQkJbC0yLjIsMy42Yy0xLjMtMS4zLTMuMi0yLjItNC45LTIuMmMtMS42LDAtMi45LDAuNi0yLjksMnMxLjIsMS44LDIuMiwyLjJjMSwwLjQsMi42LDEsMy4zLDEuMmMyLjgsMSw0LjgsMi44LDQuOCw2CgkJCUMxOTAuMywyMjAuNCwxODYsMjIyLjcsMTgxLjgsMjIyLjd6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTIwMC41LDIyMi43Yy00LjksMC04LjctMy4xLTguNy04LjFzMy43LTguMSw4LjctOC4xYzQuOSwwLDguNywzLjEsOC43LDguMQoJCQlDMjA5LjEsMjE5LjYsMjA1LjQsMjIyLjcsMjAwLjUsMjIyLjd6IE0yMDAuNSwyMTAuNGMtMi4zLDAtMy42LDEuNy0zLjYsNC4xczEuMyw0LjEsMy42LDQuMWMyLjIsMCwzLjYtMS43LDMuNi00LjEKCQkJUzIwMi43LDIxMC40LDIwMC41LDIxMC40eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0yMjcuNywyMTAuNnY1LjZjMCwxLjQsMC4xLDIuMywxLjYsMi4zYzAuOCwwLDEuNS0wLjMsMS41LTAuM2wwLjMsNGMtMC40LDAuMS0xLjgsMC41LTMuNiwwLjUKCQkJYy00LjEsMC00LjktMi41LTQuOS02LjF2LTYuMWgtNS4zdjExLjhoLTUuMXYtMTEuOGgtMnYtMy44aDJ2LTAuOWMwLTMuNywxLjgtNS44LDUuNi01LjhjMiwwLDMuNSwwLjQsMy41LDAuNGwtMC4zLDMuNQoJCQljMCwwLTEtMC4zLTEuOS0wLjNjLTEuNSwwLTEuOSwwLjktMS45LDJ2MWg1LjN2LTQuMmg1LjF2NC4yaDMuNXYzLjhoLTMuNFYyMTAuNnoiLz4KCQk8cGF0aCBjbGFzcz0ic3QzIiBkPSJNMjUyLjQsMjIyLjNoLTQuOGwtMy05LjZsLTMuMSw5LjZoLTQuOGwtNS4xLTE1LjZoNS4xbDIuOCwxMGwzLTEwaDQuMmwzLDEwbDIuOC0xMGg1LjFMMjUyLjQsMjIyLjN6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTI2OC42LDIyMi4zbC0wLjEtMS42Yy0wLjcsMC43LTEuOSwyLTQuNSwyYy0yLjgsMC01LjctMS41LTUuNy01czMuMi00LjcsNi4xLTQuOGwzLjktMC4ydi0wLjMKCQkJYzAtMS42LTEuMi0yLjUtMy4yLTIuNXMtNCwwLjktNC44LDEuNEwyNTksMjA4YzEuMy0wLjcsMy44LTEuNiw2LjctMS42YzQuOSwwLDcuNywyLDcuNyw3LjF2OC44SDI2OC42eiBNMjY1LjksMjE1LjYKCQkJYy0xLjYsMC4xLTIuNSwwLjctMi41LDEuOWMwLDEuMiwxLDEuOSwyLjQsMS45czIuMy0wLjksMi42LTEuNHYtMi42TDI2NS45LDIxNS42eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0yODYuOSwyMTEuNGgtMC4yYy0wLjMtMC4yLTEtMC40LTEuOC0wLjRjLTIuNSwwLTMuMSwyLjMtMy4xLDQuNHY2LjloLTUuMXYtMTUuNmg1LjF2Mi4yaDAuMQoJCQljMC45LTEuNywyLjItMi41LDMuOS0yLjVjMSwwLDEuNiwwLjMsMS42LDAuM0wyODYuOSwyMTEuNHoiLz4KCQk8cGF0aCBjbGFzcz0ic3QzIiBkPSJNMzA0LDIxNS43aC0xMS4xYzAuMiwyLjMsMS45LDMuMyw0LDMuM2MyLDAsMy44LTAuOSw0LjctMS41bDIsMi42Yy0wLjUsMC40LTIuNiwyLjUtNy40LDIuNXMtOC4zLTMtOC4zLTguMQoJCQljMC01LjIsMy44LTguMSw4LjQtOC4xczcuOCwzLjEsNy44LDcuNkMzMDQuMSwyMTQuOCwzMDQsMjE1LjcsMzA0LDIxNS43eiBNMjk2LjEsMjA5LjdjLTIuMSwwLTMuMiwxLjYtMy4yLDMuMWg2LjQKCQkJQzI5OS4zLDIxMS40LDI5OC4zLDIwOS43LDI5Ni4xLDIwOS43eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0zMjAuNCwyMjIuM0gzMTN2LTIxLjloNy40YzYuOSwwLDEyLDMuNiwxMiwxMC45QzMzMi40LDIxOC43LDMyNy4zLDIyMi4zLDMyMC40LDIyMi4zeiBNMzIwLjcsMjA0LjdoLTIuNgoJCQlWMjE4aDIuNmM0LjEsMCw2LjUtMi41LDYuNS02LjZTMzI0LjgsMjA0LjcsMzIwLjcsMjA0Ljd6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTM1MC4yLDIxNS43aC0xMS4xYzAuMiwyLjMsMS45LDMuMyw0LDMuM2MyLDAsMy44LTAuOSw0LjctMS41bDIsMi42Yy0wLjUsMC40LTIuNiwyLjUtNy40LDIuNQoJCQlzLTguMy0zLTguMy04LjFjMC01LjIsMy44LTguMSw4LjQtOC4xczcuOCwzLjEsNy44LDcuNkMzNTAuMywyMTQuOCwzNTAuMiwyMTUuNywzNTAuMiwyMTUuN3ogTTM0Mi40LDIwOS43CgkJCWMtMi4xLDAtMy4yLDEuNi0zLjIsMy4xaDYuNEMzNDUuNSwyMTEuNCwzNDQuNSwyMDkuNywzNDIuNCwyMDkuN3oiLz4KCQk8cGF0aCBjbGFzcz0ic3QzIiBkPSJNMzYwLjMsMjAzLjdjLTEuNywwLTEuOSwxLjItMS45LDIuNHYwLjZoMy40djMuOGgtMy40djExLjhoLTUuMXYtMTEuOGgtMnYtMy44aDJ2LTAuOWMwLTMuOCwxLjgtNS44LDUuNy01LjgKCQkJYzEuNywwLDMuMywwLjQsMy4zLDAuNGwtMC4zLDMuNUMzNjEuNSwyMDMuOCwzNjAuOSwyMDMuNywzNjAuMywyMDMuN3ogTTM2NS45LDIwNC45Yy0xLjcsMC0yLjktMS0yLjktMi42czEuMi0yLjYsMi45LTIuNgoJCQljMS43LDAsMi45LDEuMSwyLjksMi42UzM2Ny42LDIwNC45LDM2NS45LDIwNC45eiBNMzYzLjQsMjIyLjN2LTE1LjZoNS4xdjE1LjZIMzYzLjR6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTM4Mi4xLDIyMi4zdi04LjFjMC0yLjEtMC4zLTMuNi0yLjQtMy42Yy0yLjIsMC0yLjgsMS44LTIuOCw0djcuN2gtNS4xdi0xNS42aDUuMXYyLjNoMC4xCgkJCWMwLjktMS40LDIuMy0yLjUsNC41LTIuNWM0LjUsMCw1LjcsMi45LDUuNyw2Ljd2OS4yaC01LjFWMjIyLjN6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTQwNS44LDIxNS43aC0xMS4xYzAuMiwyLjMsMS45LDMuMyw0LDMuM2MyLDAsMy44LTAuOSw0LjctMS41bDIsMi42Yy0wLjUsMC40LTIuNiwyLjUtNy40LDIuNQoJCQlzLTguMy0zLTguMy04LjFjMC01LjIsMy44LTguMSw4LjQtOC4xczcuOCwzLjEsNy44LDcuNkM0MDUuOCwyMTQuOCw0MDUuOCwyMTUuNyw0MDUuOCwyMTUuN3ogTTM5Ny45LDIwOS43CgkJCWMtMi4xLDAtMy4yLDEuNi0zLjIsMy4xaDYuNEM0MDEuMSwyMTEuNCw0MDAsMjA5LjcsMzk3LjksMjA5Ljd6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTQyMCwyMjIuM3YtMi4xaC0wLjFjLTEuMiwxLjYtMywyLjQtNS4xLDIuNGMtNC41LDAtNy40LTMuNi03LjQtOC4xczIuOS04LjEsNy40LTguMWMyLjksMCw0LjQsMS40LDQuOSwyLjIKCQkJdi04LjFoNS4xdjIxLjlMNDIwLDIyMi4zTDQyMCwyMjIuM3ogTTQxNi4zLDIxMC40Yy0yLjIsMC0zLjcsMS42LTMuNyw0LjFjMCwyLjQsMS41LDQuMSwzLjcsNC4xczMuNi0xLjYsMy42LTQuMQoJCQlDNDE5LjksMjEyLjEsNDE4LjQsMjEwLjQsNDE2LjMsMjEwLjR6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTQ0NS43LDIyMi4zaC00LjlsLTguMS0yMS45aDUuNWw1LjEsMTUuMWw1LjEtMTUuMWg1LjRMNDQ1LjcsMjIyLjN6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTQ3MC4yLDIxNS43aC0xMS4xYzAuMiwyLjMsMS45LDMuMyw0LDMuM2MyLDAsMy44LTAuOSw0LjctMS41bDIsMi42Yy0wLjUsMC40LTIuNiwyLjUtNy40LDIuNQoJCQlzLTguMy0zLTguMy04LjFjMC01LjIsMy44LTguMSw4LjQtOC4xczcuOCwzLjEsNy44LDcuNkM0NzAuMywyMTQuOCw0NzAuMiwyMTUuNyw0NzAuMiwyMTUuN3ogTTQ2Mi4zLDIwOS43CgkJCWMtMi4xLDAtMy4yLDEuNi0zLjIsMy4xaDYuNEM0NjUuNSwyMTEuNCw0NjQuNSwyMDkuNyw0NjIuMywyMDkuN3oiLz4KCQk8cGF0aCBjbGFzcz0ic3QzIiBkPSJNNDgzLDIyMi4zdi04LjJjMC0xLjktMC4zLTMuNi0yLjQtMy42cy0yLjgsMS44LTIuOCw0LjF2Ny43aC01LjF2LTIxLjloNS4xdjUuMmMwLDEuNiwwLDMuMywwLDMuMwoJCQljMC44LTEuNCwyLjMtMi41LDQuNi0yLjVjNC41LDAsNS43LDIuOSw1LjcsNi43djkuMkw0ODMsMjIyLjNMNDgzLDIyMi4zeiIvPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik00OTMuOSwyMDQuOWMtMS43LDAtMi45LTEtMi45LTIuNnMxLjItMi42LDIuOS0yLjZzMi45LDEuMSwyLjksMi42QzQ5Ni44LDIwMy44LDQ5NS42LDIwNC45LDQ5My45LDIwNC45egoJCQkgTTQ5MS40LDIyMi4zdi0xNS42aDUuMXYxNS42SDQ5MS40eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik01MDcuMiwyMjIuN2MtNC4zLDAtOC4yLTIuOS04LjItOC4xczQtOC4xLDguMy04LjFjNCwwLDUuOCwxLjYsNS44LDEuNmwtMS4xLDMuOGMtMC40LTAuMy0xLjgtMS40LTQtMS40CgkJCXMtMy45LDEuNS0zLjksNHMxLjYsNCwzLjksNHM0LTEuNSw0LTEuNWwxLjIsMy44QzUxMywyMjAuOSw1MTEuMywyMjIuNyw1MDcuMiwyMjIuN3oiLz4KCQk8cGF0aCBjbGFzcz0ic3QzIiBkPSJNNTE1LjMsMjIyLjN2LTIxLjloNS4xdjIxLjlINTE1LjN6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTUzOS4xLDIxNS43SDUyOGMwLjIsMi4zLDEuOSwzLjMsNCwzLjNjMiwwLDMuOC0wLjksNC43LTEuNWwyLDIuNmMtMC41LDAuNC0yLjYsMi41LTcuNCwyLjUKCQkJYy00LjgsMC04LjMtMy04LjMtOC4xYzAtNS4yLDMuOC04LjEsOC40LTguMXM3LjgsMy4xLDcuOCw3LjZDNTM5LjEsMjE0LjgsNTM5LjEsMjE1LjcsNTM5LjEsMjE1Ljd6IE01MzEuMiwyMDkuNwoJCQljLTIuMSwwLTMuMiwxLjYtMy4yLDMuMWg2LjRDNTM0LjQsMjExLjQsNTMzLjMsMjA5LjcsNTMxLjIsMjA5Ljd6Ii8+Cgk8L2c+CjwvZz4KPHJlY3QgeD0iNTk5LjIiIHk9IjYyLjYiIGNsYXNzPSJzdDQiIHdpZHRoPSI0NCIgaGVpZ2h0PSIzMiIvPgo8ZyBjbGFzcz0ic3Q1Ij4KCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik02MDYuMyw2NC40aC0yLjh2NS43aC0xLjN2LTUuN2gtMi44di0xLjNoNi45VjY0LjR6Ii8+Cgk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNNjE1LjMsNzAuMWgtMS4zdi00LjJsLTIuMyw0Yy0wLjEsMC4xLTAuMSwwLjItMC4yLDAuMmMtMC4xLDAuMS0wLjIsMC4xLTAuMywwLjFjLTAuMSwwLTAuMiwwLTAuMy0wLjEKCQljLTAuMS0wLjEtMC4yLTAuMS0wLjItMC4ybC0yLjMtNHY0LjJoLTEuM3YtNi41YzAtMC4xLDAtMC4zLDAuMS0wLjRjMC4xLTAuMSwwLjItMC4yLDAuMy0wLjJjMC4xLDAsMC4xLDAsMC4yLDBjMC4xLDAsMC4xLDAsMC4yLDAKCQljMC4xLDAsMC4xLDAuMSwwLjIsMC4xYzAuMSwwLDAuMSwwLjEsMC4xLDAuMmwyLjksNWwyLjktNWMwLjEtMC4xLDAuMi0wLjIsMC4zLTAuM2MwLjEtMC4xLDAuMy0wLjEsMC40LDBjMC4xLDAsMC4yLDAuMSwwLjMsMC4yCgkJczAuMSwwLjIsMC4xLDAuNFY3MC4xeiIvPgo8L2c+Cjwvc3ZnPgo=;" vertex="1" parent="1"> <mxGeometry x="1178" y="475.2" width="69.15" height="25.82" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-49" value="" style="shape=image;aspect=fixed;image=data:image/svg+xml,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjgzcHgiIGhlaWdodD0iOTJweCIgdmlld0JveD0iMCAwIDI4MyA5MiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWxuczpza2V0Y2g9Imh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaC9ucyI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDMuMy4zICgxMjA3MikgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+ZWNsaXBzZS1mb3VuZGF0aW9uLWdyZXktb3JhbmdlPC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc2tldGNoOnR5cGU9Ik1TUGFnZSI+CiAgICAgICAgPGcgaWQ9ImVjbGlwc2UtZm91bmRhdGlvbi1ncmV5LW9yYW5nZSIgc2tldGNoOnR5cGU9Ik1TTGF5ZXJHcm91cCI+CiAgICAgICAgICAgIDxnIGlkPSJMYXllcl8xIiBza2V0Y2g6dHlwZT0iTVNTaGFwZUdyb3VwIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNjYuNTYsODQuMyBMMjU3Ljg5LDczLjMgTDI1NS4xOCw3My4zIEwyNTUuMTgsOTEgTDI1OC41Miw5MSBMMjU4LjUyLDc5IEwyNjcuODMsOTEgTDI2OS45LDkxIEwyNjkuOSw3My4zMSBMMjY2LjU2LDczLjMxIEwyNjYuNTYsODQuMyBaIE0yMzQuMTUsNzYgQzIzOC4zMiw3NiAyMzkuOTksNzkuMzQgMjM5Ljk0LDgyLjMzIEMyMzkuODksODUuMzIgMjM4LjMyLDg4LjMzIDIzNC4xNSw4OC4zMyBDMjI5Ljk4LDg4LjMzIDIyOC40MSw4NS4yMiAyMjguMzQsODIuMzMgQzIyOC4yNyw3OS40NCAyMzAsNzYgMjM0LjE1LDc2IEwyMzQuMTUsNzYgWiBNMjM0LjE1LDczIEMyMjguMDMsNzMgMjI1LjA1LDc3LjY4IDIyNS4wNSw4Mi4zMyBDMjI1LjA1LDg2Ljk4IDIyNy45Myw5MS40NiAyMzQuMTUsOTEuNDYgQzI0MC4zNyw5MS40NiAyNDMuMTUsODYuODggMjQzLjIzLDgyLjMgQzI0My4zMSw3Ny43MiAyNDAuMjUsNzMgMjM0LjE1LDczIEwyMzQuMTUsNzMgWiBNMjEyLjkyLDkxIEwyMTIuOTIsNzMuMzEgTDIwOS42LDczLjMxIEwyMDkuNiw5MSBMMjEyLjkyLDkxIFogTTE4OS4zNiw5MSBMMTkyLjcsOTEgTDE5Mi43LDc2LjM0IEwxOTguMzEsNzYuMzQgTDE5OC4zMSw3My4zNCBMMTgzLjc0LDczLjM0IEwxODMuNzQsNzYuMzQgTDE4OS4zNiw3Ni4zNCBMMTg5LjM2LDkxIFogTTE3MC40NSw4NC41NiBMMTYzLjg3LDg0LjU2IEwxNjcuMTYsNzcgTDE3MC40NSw4NC41NiBaIE0xNzMuMjgsOTEgTDE3Ni45Miw5MSBMMTY5LDczLjMxIEwxNjUuMzYsNzMuMzEgTDE1Ny40LDkxIEwxNjEsOTEgTDE2Mi41MSw4Ny42NyBMMTcxLjc3LDg3LjY3IEwxNzMuMjgsOTEgWiBNMTM1LjI4LDc2LjQ0IEwxMzguOTIsNzYuNDQgQzE0Mi43Nyw3Ni40NCAxNDQuMzgsNzkuMiAxNDQuNDYsODEuOTYgQzE0NC41NCw4NC43MiAxNDIuOTQsODcuNzkgMTM4LjkyLDg3Ljc5IEwxMzUuMjgsODcuNzkgTDEzNS4yOCw3Ni40NCBaIE0xMzguOTIsNzMuMjggTDEzMiw3My4yOCBMMTMyLDkxIEwxMzguOTUsOTEgQzE0NS4xNSw5MSAxNDcuODgsODYuNDggMTQ3LjgsODIgQzE0Ny43Miw3Ny41MiAxNDUsNzMuMzEgMTM4LjkyLDczLjMxIEwxMzguOTIsNzMuMjggWiBNMTE2LjU1LDg0LjI4IEwxMDcuODgsNzMuMjggTDEwNS4xNyw3My4yOCBMMTA1LjE3LDkxIEwxMDguNTEsOTEgTDEwOC41MSw3OSBMMTE3LjgxLDkxIEwxMTkuODksOTEgTDExOS44OSw3My4zMSBMMTE2LjU1LDczLjMxIEwxMTYuNTUsODQuMjggWiBNODkuMDksNzMuMzQgTDg5LjA5LDgzLjUgQzg5LjA5LDg2LjUgODcuNTMsODguMzggODQuNzcsODguMzggQzgyLjAxLDg4LjM4IDgwLjE5LDg2LjY5IDgwLjE5LDgzLjUgTDgwLjE5LDczLjM2IEw3Ni44OCw3My4zNiBMNzYuODgsODMuNSBDNzYuODgsODguODMgODAuNSw5MS40MSA4NC43NCw5MS40MSBDODkuMTksOTEuNDEgOTIuNDEsODguNzMgOTIuNDEsODMuNSBMOTIuNDEsNzMuMzYgTDg5LjA5LDczLjM0IFogTTU2LjA5LDc1Ljk5IEM2MC4yNiw3NS45OSA2MS45Myw3OS4zMyA2MS44OCw4Mi4zMiBDNjEuODMsODUuMzEgNjAuMjYsODguMzIgNTYuMDksODguMzIgQzUxLjkyLDg4LjMyIDUwLjM1LDg1LjIxIDUwLjI3LDgyLjMyIEM1MC4xOSw3OS40MyA1MS45Myw3NiA1Ni4xLDc2IEw1Ni4wOSw3NS45OSBaIE01Ni4wOSw3Mi45OSBDNDkuOTcsNzIuOTkgNDYuOTksNzcuNjcgNDYuOTksODIuMzIgQzQ2Ljk5LDg2Ljk3IDQ5Ljg3LDkxLjQ1IDU2LjA5LDkxLjQ1IEM2Mi4zMSw5MS40NSA2NS4wOSw4Ni44NyA2NS4xNyw4Mi4yOSBDNjUuMjUsNzcuNzEgNjIuMTksNzMgNTYuMSw3MyBMNTYuMDksNzIuOTkgWiBNMjYuMzIsOTEgTDI2LjMyLDg0LjQ2IEwzNS4xOSw4NC40NiBMMzUuMTksODEuNCBMMjYuMzIsODEuNCBMMjYuMzIsNzYuNTcgTDM1LjcsNzYuNTcgTDM1LjcsNzMuMzYgTDIzLDczLjM2IEwyMyw5MSBMMjYuMzIsOTEgWiIgaWQ9IlNoYXBlIiBmaWxsPSIjRjc5NDIyIj48L3BhdGg+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjcwLjIzLDU0Ljc1IEwyNDguMDYsNTQuNzUgTDI0OC4wNiw0NS44NCBMMjY5LjQ0LDQ1Ljg0IEwyNjkuNDQsMzguOSBMMjQ4LjA2LDM4LjkgTDI0OC4wNiwyOS43NiBMMjcwLjIzLDI5Ljc2IEwyNzAuMjMsMjIuNTQgTDI0MC42NywyMi41NCBMMjQwLjY3LDYyLjA4IEwyNzAuMjMsNjIuMDggTDI3MC4yMyw1NC43NSBaIE0yMzAuMjMsMjkuMDkgQzIyNy4yMywyMi45OSAyMjAuODcsMjEuMjUgMjE0LjcyLDIxLjI1IEMyMDcuNDQsMjEuMjUgMTk5LjQzLDI0LjYzIDE5OS40MywzMi43NSBDMTk5LjQzLDQxLjYxIDIwNi44OCw0My43NSAyMTQuOTQsNDQuNzUgQzIyMC4xOSw0NS4zMSAyMjQuMDgsNDYuODQgMjI0LjA4LDUwLjU2IEMyMjQuMDgsNTQuODUgMjE5LjY4LDU2LjQ4IDIxNSw1Ni40OCBDMjEwLjMyLDU2LjQ4IDIwNS42NCw1NC41NiAyMDMuODksNTAuMjIgTDE5Ny42OCw1My40NCBDMjAwLjYyLDYwLjY2IDIwNi44Miw2My4xNCAyMTQuODksNjMuMTQgQzIyMy42OSw2My4xNCAyMzEuNDcsNTkuMzYgMjMxLjQ3LDUwLjU2IEMyMzEuNDcsNDEuMTQgMjIzLjgsMzkgMjE1LjU2LDM3Ljk4IEMyMTAuODMsMzcuNDIgMjA2Ljc3LDM2LjQ2IDIwNi43NywzMi45OCBDMjA2Ljc3LDMwLjA1IDIwOS40MiwyNy43MyAyMTQuOTQsMjcuNzMgQzIxOS4yMywyNy43MyAyMjIuOTQsMjkuODggMjI0LjMxLDMyLjEzIEwyMzAuMjMsMjkuMDkgWiBNMTc2Ljg5LDIyLjU0IEMxNzAuNjgsMjIuNDkgMTY0LjQ4LDIyLjU0IDE1OC4yNywyMi41NCBMMTU4LjI3LDYyLjA4IEwxNjUuNzIsNjIuMDggTDE2NS43Miw1MC40NiBMMTc2Ljg5LDUwLjQ2IEMxOTYuMjUsNTAuNDYgMTk2LjIsMjIuNTQgMTc2LjkxLDIyLjU0IEwxNzYuODksMjIuNTQgWiBNMTY1LjcyLDI5LjY1IEwxNzYuODksMjkuNjUgQzE4Ni4zNiwyOS42NSAxODYuNDIsNDMuNjUgMTc2Ljg5LDQzLjY1IEwxNjUuNzQsNDMuNjUgTDE2NS43MiwyOS42NSBaIE0xNDcuNzIsNjIuMDggTDE0Ny43MiwyMi41NCBMMTQwLjMzLDIyLjU0IEwxNDAuMzMsNjIuMDggTDE0Ny43Miw2Mi4wOCBaIE0xMDMuNzIsMjIuNTQgTDEwMy43Miw2Mi4wOCBMMTMxLjQ3LDYyLjA4IEwxMzEuNDcsNTUuMiBMMTExLjIyLDU1LjIgTDExMS4yMiwyMi41NCBMMTAzLjcyLDIyLjU0IFogTTkxLjU1LDUyIEM4OC44NzIyMzQsNTQuNTQ2MTg2NyA4NS4zMjQ5ODk0LDU1Ljk3NjUyNzMgODEuNjMsNTYgQzcxLjg3LDU2IDY4LjA5LDQ5LjE4IDY4LjAzLDQyLjYzIEM2Ny45NywzNi4wOCA3Mi4wOSwyOC45MyA4MS42MywyOC45MyBDODUuMTcwNTIyLDI4Ljg3ODE2MTkgODguNTkwODc1NywzMC4yMTMyODQyIDkxLjE2LDMyLjY1IEw5Ni4xNiwyNy44NiBDOTIuMzI1NjA0NSwyNC4wMDQ0MTAxIDg3LjEwNzYzNzIsMjEuODQzNzYxMSA4MS42NywyMS44NiBDNjcuNCwyMS44NiA2MC42NywzMi4zNSA2MC43NCw0Mi42NyBDNjAuODEsNTIuOTkgNjcsNjMgODEuNjMsNjMgQzg3LjIxNDg1MDEsNjMuMTMzOTQ0NCA5Mi42MTk0NDE2LDYxLjAxODk0NzYgOTYuNjMsNTcuMTMgTDkxLjU1LDUyIFogTTUyLjU1LDU0Ljc2IEwzMC4zNyw1NC43NiBMMzAuMzcsNDUuODQgTDUxLjc1LDQ1Ljg0IEw1MS43NSwzOC45IEwzMC4zNywzOC45IEwzMC4zNywyOS43NiBMNTIuNTQsMjkuNzYgTDUyLjU0LDIyLjU0IEwyMywyMi41NCBMMjMsNjIuMDggTDUyLjU2LDYyLjA4IEw1Mi41NSw1NC43NiBaIiBpZD0iU2hhcGUiIGZpbGw9IiMzRDNDM0IiPjwvcGF0aD4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC42NiwxOC41MiBDMTkuNjYsNC40MiAzNy44MSwtMC40OCA1Mi45MSw2LjI3IEw1MS45MSw1LjU4IEMzNi40OTI5NzEyLC00LjMwNTg5NzAyIDE1Ljk4MDg5NywwLjE3Nzk3MTIwOCA2LjA5NSwxNS41OTUgQy0zLjc5MDg5NzAyLDMxLjAxMjAyODggMC42OTI5NzEyMDgsNTEuNTI0MTAzIDE2LjExLDYxLjQxIEwxNy4xNiw2Mi4wNCBDNC42OSw1MS4xNCAxLjYxLDMyLjYzIDEwLjY2LDE4LjUyIEwxMC42NiwxOC41MiBaIiBpZD0iU2hhcGUiIGZpbGw9IiNGNzk0MjIiPjwvcGF0aD4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNzMsMjYuNDEgTDI3MywyNi40MSBDMjczLDIzLjg4MDUzNTggMjc1LjA1MDUzNiwyMS44MyAyNzcuNTgsMjEuODMgQzI4MC4xMDk0NjQsMjEuODMgMjgyLjE2LDIzLjg4MDUzNTggMjgyLjE2LDI2LjQxIEwyODIuMTYsMjYuNDEgQzI4Mi4xNiwyOC45Mzk0NjQyIDI4MC4xMDk0NjQsMzAuOTkgMjc3LjU4LDMwLjk5IEMyNzUuMDUwNTM2LDMwLjk5IDI3MywyOC45Mzk0NjQyIDI3MywyNi40MSBMMjczLDI2LjQxIFogTTI4MS42MywyNi40MSBMMjgxLjYzLDI2LjQxIEMyODEuNjMsMjQuMTczMjQ2OCAyNzkuODE2NzUzLDIyLjM2IDI3Ny41OCwyMi4zNiBDMjc1LjM0MzI0NywyMi4zNiAyNzMuNTMsMjQuMTczMjQ2OCAyNzMuNTMsMjYuNDEgTDI3My41MywyNi40MSBDMjczLjUwODI0LDI3LjQ5MzM4NjkgMjczLjkyNjk1NywyOC41MzkyNDY3IDI3NC42OTAzNDksMjkuMzA4MjkzNiBDMjc1LjQ1Mzc0MSwzMC4wNzczNDA1IDI3Ni40OTY0ODIsMzAuNTAzNzYzNiAyNzcuNTgsMzAuNDkgQzI3OC42Njk4NiwzMC40OTU0MDg0IDI3OS43MTYzNTcsMzAuMDYzNDgxMiAyODAuNDg1MTMyLDI5LjI5MDk0NjggQzI4MS4yNTM5MDcsMjguNTE4NDEyNSAyODEuNjgwNzI1LDI3LjQ2OTgyMDggMjgxLjY3LDI2LjM4IEwyODEuNjMsMjYuNDEgWiBNMjc1LjY5LDIzLjk0IEwyNzgsMjMuOTQgQzI3OS4xMSwyMy45NCAyNzkuOTIsMjQuNDQgMjc5LjkyLDI1LjUyIEMyNzkuOTUxNzY2LDI2LjIwODgzOCAyNzkuNDk3MjUsMjYuODI1OTc4IDI3OC44MywyNyBMMjgwLDI4LjY3IEwyNzguNjEsMjguNjcgTDI3Ny42MSwyNy4xNyBMMjc2Ljg3LDI3LjE3IEwyNzYuODcsMjguNjcgTDI3NS43MiwyOC42NyBMMjc1LjY5LDIzLjk0IFogTTI3Ny44NCwyNi4yNSBDMjc4LjM3LDI2LjI1IDI3OC42NiwyNS45OSAyNzguNjYsMjUuNiBDMjc4LjY2LDI1LjIxIDI3OC4zNCwyNC45NCAyNzcuODQsMjQuOTQgTDI3Ni44NCwyNC45NCBMMjc2Ljg0LDI2LjI1IEwyNzcuODQsMjYuMjUgWiIgaWQ9IlNoYXBlIiBmaWxsPSIjM0QzQzNCIj48L3BhdGg+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==;" vertex="1" parent="1"> <mxGeometry x="971" y="479.02" width="61.48" height="19.99" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-50" value="" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;fillColor=#b1ddf0;strokeColor=#10739e;" vertex="1" parent="1"> <mxGeometry x="1060" y="277" width="78" height="85" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-55" value="&lt;font style=&quot;font-size: 11px;&quot;&gt;&lt;font style=&quot;font-size: 11px;&quot;&gt;Software Module&amp;nbsp;&lt;/font&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Repo&lt;/span&gt;&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1"> <mxGeometry x="1029" y="362" width="140" height="30" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-56" value="&lt;b style=&quot;&quot;&gt;&lt;font style=&quot;font-size: 12px;&quot;&gt;Software Module&lt;/font&gt;&lt;/b&gt;&lt;div style=&quot;&quot;&gt;&lt;b style=&quot;&quot;&gt;&lt;font style=&quot;font-size: 12px;&quot;&gt;GitHub organization&lt;/font&gt;&lt;/b&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1"> <mxGeometry x="1077.75" y="406" width="140" height="40" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-57" value="" style="shape=image;aspect=fixed;image=data:image/png,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;" vertex="1" parent="1"> <mxGeometry x="990.25" y="409.87" width="87.5" height="32.25" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-58" value="" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.document;fillColor=#ffcccc;strokeColor=#36393d;" vertex="1" parent="1"> <mxGeometry x="1084" y="223" width="177" height="70" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-59" value="&lt;font style=&quot;font-size: 9px;&quot;&gt;&lt;b&gt;CODEOWNER&lt;/b&gt;&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1"> <mxGeometry x="1172" y="266" width="80" height="30" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-60" value="&lt;ul style=&quot;font-size: 10px;&quot;&gt;&lt;li&gt;Software Module PLs&lt;/li&gt;&lt;li&gt;Software Module Committers&lt;/li&gt;&lt;/ul&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1"> <mxGeometry x="1062" y="219" width="190" height="60" as="geometry" /> </mxCell> <mxCell id="eMWIR_pduFbBamDTuHP1-61" value="Software Module can later&lt;div&gt;become an Eclipse Child Project&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1"> <mxGeometry x="734" y="307" width="200" height="40" as="geometry" /> </mxCell> </root> </mxGraphModel> </diagram> </mxfile> " style="background-color: rgb(255, 255, 255);"><defs/><rect fill="#ffffff" width="100%" height="100%" x="0" y="0"/><g><g><rect x="851" y="130" width="311" height="320" fill="none" stroke="#3a5431" stroke-width="3" stroke-dasharray="3 3" pointer-events="all"/></g><g><rect x="862" y="146" width="290" height="254" fill="#bac8d3" stroke="#23445d" pointer-events="all"/></g><g><rect x="1" y="1" width="620" height="650" fill="none" stroke="#3a5431" stroke-width="3" stroke-dasharray="3 3" pointer-events="all"/></g><g><rect x="201" y="597" width="220" height="40" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 617px; margin-left: 311px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><b><font style="font-size: 20px;">Main SCORE Project</font></b></div></div></div></foreignObject><image x="213" y="605.5" width="196" height="27" xlink:href="data:image/png;base64,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3hStLVYbFgmeI4qLSKIRxgzZZdzEC3sU57XjRbF57eRpg8s+P75pZA2jKDJnCtxL+fHffJcvU9bO1YGoHdRZuB7s3j0VjCPNLG5JWBdYBLDHUzz8s4DzWZgjxBRSgebryqneB65P/DfrCLJA2j20YvzIOEQw3NiatVes8G3lXek3KD5IkG9cn0gkQO0G5kT111d1VYlflN6jvc5naVxsvjxL9gT+m3/5sVGT/IDnyRz5EcfEvxTZZM+QCAEhIARAgLigq6S9g7Sh7J38y7eCfZJfv2eyd+TSu9egujWBGI6d+ZM8oceDf3tMejzA5lQWpByufOP6cyLPjx/fA74DPLfhj2/BUb7p5+YtApF7/Pq7EBACQkAICAEhIATOJgJ7IhBn8wnsdNYiEDt9MBqWEBACQkAICAEhIAQ2RgBrMTGmXokUkvP2qXY7REAEYocPRUMSAkJACAgBISAEhMAOECAG4QWBcXhrdwW6VNM9IiACscenojEJASEgBISAEBACQmB7BKKV4smWd4fth60RrI2ACMTaCKt/ISAEhIAQEAJCQAgcDwHOiI8zM4qieoWUtPf0Nla74yIgAnHcZ6eRCwEhIASEgBAQAkKgFQJkOCJdKlmdyAJ104I047dLNQxajUn97BQBEYidPhgNSwgIASEgBISAEBACJ0SAAq4U7awRalhQ00ZygSMgAnGBP2BNTwgIASEgBISAEBACDgRaEIirHbiOjwMiNekREIHQWhACQkAICAEhIASEgBCoJRBUKr5YMJ4NBEQgzsZz1iyFgBAQAkJACAgBIbCEQC2B+DYzu7cgPhsIiECcjeesWQoBISAEhIAQEAJCYE0CIfelM7S+RCDO0MPWVIWAEBACQkAICAEhMINAjQXi9mb2ACF7dhAQgTg7z1ozFQJCQAgIASEgBITAHAKlBOJBZvbNZvZ6QXt2EBCBODvPWjMVAkJACAgBISAEhEArAvF3ZvbtZvYIQXr2EBCBOHvPXDMWAkJACAgBISAEhMAYAY8F4hlm9iwze2qq9yCrwxldRyIQZ/TBa9pCQAgIASEgBISAEBggcFEXx3BlM+NffldIbklUpv43M7vEzN4gxIQACIhAaB0IASEgBISAEBACQkAICAEh4EZABMINlRoKASEgBISAEBACQkAICAEhIAKhNSAEhIAQEAJCQAgIASEgBISAGwERCDdUaigEhIAQEAJCQAgIASEgBISACITWgBAQAkJACAgBISAEhIAQEAJuBEQg3FCpoRAQAkJACAgBISAEhIAQEAIiEFoDQkAICAEhIASEgBAQAkJACLgREIFwQ6WGQkAICAEhIASEgBAQAkJACIhAaA0IASEgBISAEBACQkAICAEh4EZABMINlRoKASEgBISAEBACQkAICAEhIAKhNSAEhIAQEAJCQAgIASEgBISAGwERCDdUaigEhIAQEAJCQAgIASEgBISACITWgBAQAkJACAgBISAEhIAQEAJuBEQg3FCpoRAQAkJACAgBISAEhIAQEAIiEFoDQkAICAEhIASEgBAQAkJACLgREIFwQ6WGQkAICAEhIASEgBAQAkJACIhAaA0IASEgBISAEBACQkAICAEh4EZABMINlRoKASEgBISAEBACQkAICAEh8P/RNX4S+js8+gAAAABJRU5ErkJggg=="/></switch></g></g><g><rect x="31" y="25" width="550" height="546" fill="#bac8d3" stroke="#23445d" pointer-events="all"/></g><g><path d="M 91 140 C 91 131.72 117.86 125 151 125 C 166.91 125 182.17 126.58 193.43 129.39 C 204.68 132.21 211 136.02 211 140 L 211 280 C 211 288.28 184.14 295 151 295 C 117.86 295 91 288.28 91 280 Z" fill="#b1ddf0" stroke="#10739e" stroke-miterlimit="10" pointer-events="all"/><path d="M 211 140 C 211 148.28 184.14 155 151 155 C 117.86 155 91 148.28 91 140" fill="none" stroke="#10739e" stroke-miterlimit="10" pointer-events="all"/></g><g><rect x="91" y="305" width="120" height="50" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 330px; margin-left: 151px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font style="font-size: 14px;">Main <b style="">SCORE</b></font><div style="font-size: 14px;"><font style="font-size: 14px;">integration repo</font></div></div></div></div></foreignObject><image x="102.5" y="313.5" width="97" height="37" xlink:href="data:image/png;base64,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"/></switch></g></g><g><rect x="186" y="521" width="240" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 536px; margin-left: 306px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><b><font style="font-size: 16px;">SCORE GitHub organization</font></b></div></div></div></foreignObject><image x="199" y="527" width="214" height="22" xlink:href="data:image/png;base64,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"/></switch></g></g><g><path d="M 404 66 C 404 57.72 421.91 51 444 51 C 454.61 51 464.78 52.58 472.28 55.39 C 479.79 58.21 484 62.02 484 66 L 484 136 C 484 144.28 466.09 151 444 151 C 421.91 151 404 144.28 404 136 Z" fill="#b1ddf0" stroke="#10739e" stroke-miterlimit="10" pointer-events="all"/><path d="M 484 66 C 484 74.28 466.09 81 444 81 C 421.91 81 404 74.28 404 66" fill="none" stroke="#10739e" stroke-miterlimit="10" pointer-events="all"/></g><g><path d="M 406 217 C 406 208.72 423.91 202 446 202 C 456.61 202 466.78 203.58 474.28 206.39 C 481.79 209.21 486 213.02 486 217 L 486 287 C 486 295.28 468.09 302 446 302 C 423.91 302 406 295.28 406 287 Z" fill="#b1ddf0" stroke="#10739e" stroke-miterlimit="10" pointer-events="all"/><path d="M 486 217 C 486 225.28 468.09 232 446 232 C 423.91 232 406 225.28 406 217" fill="none" stroke="#10739e" stroke-miterlimit="10" pointer-events="all"/></g><g><path d="M 406 366 C 406 357.72 423.91 351 446 351 C 456.61 351 466.78 352.58 474.28 355.39 C 481.79 358.21 486 362.02 486 366 L 486 436 C 486 444.28 468.09 451 446 451 C 423.91 451 406 444.28 406 436 Z" fill="#b1ddf0" stroke="#10739e" stroke-miterlimit="10" pointer-events="all"/><path d="M 486 366 C 486 374.28 468.09 381 446 381 C 423.91 381 406 374.28 406 366" fill="none" stroke="#10739e" stroke-miterlimit="10" pointer-events="all"/></g><g><path d="M 404 101 L 216.85 181.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 212.03 183.71 L 217.07 177.72 L 216.85 181.63 L 219.84 184.15 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><path d="M 406 252 L 217.23 211.34" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 212.09 210.24 L 219.67 208.29 L 217.23 211.34 L 218.2 215.13 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><path d="M 406 401 L 215.97 248.98" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 211.87 245.7 L 219.53 247.34 L 215.97 248.98 L 215.15 252.8 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><rect x="366" y="151" width="160" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 166px; margin-left: 446px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font style="font-size: 13px;">Software Module </font><span style="font-size: 13px; background-color: initial;">Repo</span></div></div></div></foreignObject><image x="380" y="158.5" width="132" height="19" xlink:href="data:image/png;base64,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"/></switch></g></g><g><rect x="374" y="302" width="160" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 317px; margin-left: 454px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font style="font-size: 13px;">Software Module </font><span style="font-size: 13px; background-color: initial;">Repo</span></div></div></div></foreignObject><image x="388" y="309.5" width="132" height="19" xlink:href="data:image/png;base64,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"/></switch></g></g><g><rect x="381" y="451" width="160" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 466px; margin-left: 461px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font style="font-size: 13px;">Software Module </font><span style="font-size: 13px; background-color: initial;">Repo</span></div></div></div></foreignObject><image x="395" y="458.5" width="132" height="19" xlink:href="data:image/png;base64,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"/></switch></g></g><g><path d="M 629.21 41 L 629.21 101 L 454 101 L 454 31 L 604.18 31 Z" fill="#fad7ac" stroke="#b46504" stroke-miterlimit="10" pointer-events="all"/><path d="M 604.18 31 C 606.22 33.34 602.87 35.75 595.24 37.43 L 629.21 41.21" fill="none" stroke="#b46504" stroke-miterlimit="10" pointer-events="all"/></g><g><rect x="542" y="74" width="80" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 89px; margin-left: 582px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font style="font-size: 9px;"><b>CODEOWNER</b></font></div></div></div></foreignObject><image x="551.5" y="82.5" width="61" height="17" xlink:href="data:image/png;base64,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"/></switch></g></g><g><rect x="426" y="31" width="190" height="60" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 61px; margin-left: 521px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><ul style="font-size: 10px;"><li>Software Module PLs</li><li>Software Module Committers</li></ul></div></div></div></foreignObject><image x="436.5" y="39.5" width="169" height="47" xlink:href="data:image/png;base64,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"/></switch></g></g><g><path d="M 249.69 79 L 249.69 139 L 121 139 L 121 69 L 231.3 69 Z" fill="#fad9d5" stroke="#ae4132" stroke-miterlimit="10" pointer-events="all"/><path d="M 231.3 69 C 232.8 71.34 230.34 73.75 224.74 75.43 L 249.69 79.21" fill="none" stroke="#ae4132" stroke-miterlimit="10" pointer-events="all"/></g><g><rect x="162" y="109" width="80" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 124px; margin-left: 202px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font style="font-size: 9px;"><b>CODEOWNER</b></font></div></div></div></foreignObject><image x="171.5" y="117.5" width="61" height="17" xlink:href="data:image/png;base64,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"/></switch></g></g><g><rect x="90" y="59" width="150" height="60" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 89px; margin-left: 165px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><ul style="font-size: 10px;"><li><b>SCORE</b> PLs</li><li><b>SCORE</b> Committers</li></ul></div></div></div></foreignObject><image x="100.5" y="67.5" width="129" height="47" xlink:href="data:image/png;base64,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"/></switch></g></g><g><path d="M 643.21 191 L 643.21 251 L 468 251 L 468 181 L 618.18 181 Z" fill="#fad7ac" stroke="#b46504" stroke-miterlimit="10" pointer-events="all"/><path d="M 618.18 181 C 620.22 183.34 616.87 185.75 609.24 187.43 L 643.21 191.21" fill="none" stroke="#b46504" stroke-miterlimit="10" pointer-events="all"/></g><g><rect x="556" y="224" width="80" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 239px; margin-left: 596px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font style="font-size: 9px;"><b>CODEOWNER</b></font></div></div></div></foreignObject><image x="565.5" y="232.5" width="61" height="17" xlink:href="data:image/png;base64,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"/></switch></g></g><g><rect x="440" y="181" width="190" height="60" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 211px; margin-left: 535px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><ul style="font-size: 10px;"><li>Software Module PLs</li><li>Software Module Committers</li></ul></div></div></div></foreignObject><image x="450.5" y="189.5" width="169" height="47" xlink:href="data:image/png;base64,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"/></switch></g></g><g><path d="M 643.21 351 L 643.21 411 L 468 411 L 468 341 L 618.18 341 Z" fill="#fad7ac" stroke="#b46504" stroke-miterlimit="10" pointer-events="all"/><path d="M 618.18 341 C 620.22 343.34 616.87 345.75 609.24 347.43 L 643.21 351.21" fill="none" stroke="#b46504" stroke-miterlimit="10" pointer-events="all"/></g><g><rect x="556" y="384" width="80" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 399px; margin-left: 596px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font style="font-size: 9px;"><b>CODEOWNER</b></font></div></div></div></foreignObject><image x="565.5" y="392.5" width="61" height="17" xlink:href="data:image/png;base64,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"/></switch></g></g><g><rect x="440" y="341" width="190" height="60" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 371px; margin-left: 535px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><ul style="font-size: 10px;"><li>Software Module PLs</li><li>Software Module Committers</li></ul></div></div></div></foreignObject><image x="450.5" y="349.5" width="169" height="47" xlink:href="data:image/png;base64,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"/></switch></g></g><g><image x="453.5" y="585.44" width="134" height="50.03" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI2LjUuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA2MzAgMjM1IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA2MzAgMjM1OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2NsaXAtcGF0aDp1cmwoI1NWR0lEXzAwMDAwMDQxOTkxOTMyMDQ1NTE3NjA3NjEwMDAwMDAzMTYxNjc5OTMwMDc5ODQyNDc1Xyk7ZmlsbDojNDUyMDYyO30KCS5zdDF7Y2xpcC1wYXRoOnVybCgjU1ZHSURfMDAwMDAwMjI1MjM2NzMwNzIxNjI3MDczODAwMDAwMTM2MTA1NjU4NjAyNjAzNzg1NTBfKTtmaWxsOiNBQTIwNkU7fQoJLnN0MntmaWxsOiNBQTIwNkU7fQoJLnN0M3tmaWxsOiM0NTIwNjI7fQoJLnN0NHtmaWxsOm5vbmU7fQoJLnN0NXtlbmFibGUtYmFja2dyb3VuZDpuZXcgICAgO30KPC9zdHlsZT4KPGc+Cgk8Zz4KCQk8Zz4KCQkJPGRlZnM+CgkJCQk8cmVjdCBpZD0iU1ZHSURfMV8iIHg9Ii0xMyIgeT0iOS41IiB3aWR0aD0iNzIwIiBoZWlnaHQ9IjE0Ni45Ii8+CgkJCTwvZGVmcz4KCQkJPGNsaXBQYXRoIGlkPSJTVkdJRF8wMDAwMDE0NzIyMTQzMDQxMTE3NTAzODAwMDAwMDAxNDMwOTMyOTA5MTI5OTcyOTU0NF8iPgoJCQkJPHVzZSB4bGluazpocmVmPSIjU1ZHSURfMV8iICBzdHlsZT0ib3ZlcmZsb3c6dmlzaWJsZTsiLz4KCQkJPC9jbGlwUGF0aD4KCQkJPHBhdGggc3R5bGU9ImNsaXAtcGF0aDp1cmwoI1NWR0lEXzAwMDAwMTQ3MjIxNDMwNDExMTc1MDM4MDAwMDAwMDE0MzA5MzI5MDkxMjk5NzI5NTQ0Xyk7ZmlsbDojNDUyMDYyOyIgZD0iTTU0NS40LDU0LjVoLTAuNgoJCQkJYy0yMC44LTcuMS00MS42LTE0LjMtNjIuNy0yMC4xYy0xMS0zLjEtMjIuMS01LjgtMzMuMi04Yy0yLjgtMC42LTUuNi0xLTguNC0xLjZjLTEuNC0wLjItMi44LTAuNS00LjItMC43bC00LjItMC42bC00LjItMC42CgkJCQljLTEuNC0wLjItMi44LTAuMy00LjItMC41Yy0yLjgtMC4zLTUuNi0wLjctOC40LTAuOWwtNC4yLTAuNGMtMS40LTAuMS0yLjgtMC4zLTQuMi0wLjNjLTIuOC0wLjEtNS42LTAuMy04LjQtMC40bC04LjQtMC4xCgkJCQljLTIuOCwwLjEtNS42LDAuMi04LjQsMC4zYy0xMS4yLDAuNy0yMi4zLDIuNC0zMy4yLDUuMWMtMTAuOSwyLjctMjEuNyw2LjItMzIuMywxMC42Yy0xMC42LDQuMy0yMC45LDkuMy0zMS4xLDE0LjkKCQkJCWMtMi41LDEuNC01LjEsMi43LTcuNiw0LjJzLTUuMSwyLjktNy42LDQuNHMtNSwzLTcuNSw0LjVsLTcuNSw0LjdjLTUsMy4xLTEwLjIsNi4yLTE1LjUsOC45cy0xMC45LDUuMS0xNi43LDYuN2wtMi4yLDAuNgoJCQkJbC0yLjIsMC41Yy0xLjQsMC40LTIuOSwwLjYtNC4zLDAuOWMtMi45LDAuNS01LjgsMC45LTguNywxLjNjLTUuOCwwLjctMTEuNSwxLjEtMTcuMiwxLjVzLTExLjMsMC44LTE2LjgsMS41bC0xNi45LDIuNAoJCQkJYy01LjYsMC44LTExLjMsMS42LTE2LjksMi41Yy01LjYsMC45LTExLjIsMS45LTE2LjcsMy4xYy0xMS4xLDIuMy0yMi4xLDUuMy0zMi43LDkuN2MtMTAuNiw0LjMtMjAuNywxMC4yLTI5LjMsMTguNQoJCQkJYy00LjMsNC4yLTguMSw5LTExLjIsMTQuNHMtNS41LDExLjQtNy4xLDE3LjdjMS4yLTYuNCwzLjItMTIuNiw2LjEtMTguNGMyLjktNS43LDYuNS0xMSwxMC43LTE1LjZzOC45LTguNSwxMy45LTExLjkKCQkJCXMxMC4yLTYuMywxNS41LTguOWM1LjMtMi41LDEwLjgtNC42LDE2LjMtNi41czExLjEtMy41LDE2LjctNC45YzUuNi0xLjQsMTEuMi0yLjYsMTYuOS0zLjdjNS42LTEuMSwxMS4zLTIuMSwxNi45LTMuMWwxNi45LTMKCQkJCWM1LjctMC45LDExLjUtMS41LDE3LjItMnMxMS4zLTEsMTYuOS0xLjhjMi44LTAuNCw1LjUtMC44LDguMy0xLjNjMS40LTAuMywyLjctMC41LDQuMS0wLjlsMi0wLjVsMi0wLjZjMi42LTAuOCw1LjItMS43LDcuOC0yLjgKCQkJCWMyLjYtMS4xLDUuMS0yLjMsNy42LTMuNmM1LTIuNiwxMC01LjcsMTQuOS04LjhsNy41LTQuN2MyLjUtMS42LDUuMS0zLjEsNy42LTQuNmMyLjUtMS42LDUuMS0zLDcuNy00LjVzNS4yLTIuOSw3LjgtNC4zCgkJCQljMTAuNC01LjYsMjEtMTAuNywzMS45LTE1LjFjMTAuOS00LjMsMjItOCwzMy40LTEwLjVjMTEuMy0yLjYsMjIuOS00LjIsMzQuNC00LjZjMi45LTAuMSw1LjgtMC4xLDguNy0wLjJsOC43LDAuMwoJCQkJYzIuOSwwLjIsNS43LDAuNCw4LjYsMC43YzEuNCwwLjEsMi45LDAuMyw0LjMsMC40bDQuMywwLjVjMi45LDAuMyw1LjcsMC44LDguNSwxLjJjMS40LDAuMiwyLjgsMC40LDQuMywwLjdsNC4yLDAuOGw0LjIsMC44CgkJCQljMS40LDAuMywyLjgsMC42LDQuMiwwLjljMi44LDAuNiw1LjYsMS4yLDguNCwxLjljMTEuMiwyLjcsMjIuMyw1LjksMzMuMyw5LjZDNTA0LjMsMzcuMSw1MjUsNDUuNSw1NDUuNCw1NC41eiIvPgoJCTwvZz4KCQk8Zz4KCQkJPGRlZnM+CgkJCQk8cmVjdCBpZD0iU1ZHSURfMDAwMDAxMjc3Mzg2NjAxNjczNjEwMDE4OTAwMDAwMDg0NzM4MTY0MTc5OTc4NzU2MzBfIiB4PSItMTMiIHk9IjkuNSIgd2lkdGg9IjcyMCIgaGVpZ2h0PSIxNDYuOSIvPgoJCQk8L2RlZnM+CgkJCTxjbGlwUGF0aCBpZD0iU1ZHSURfMDAwMDAwODY2ODMyMTA0Njk3MTI3NjM5NjAwMDAwMDk5NjcxNDM4NjMyMjM2ODg4NjRfIj4KCQkJCTx1c2UgeGxpbms6aHJlZj0iI1NWR0lEXzAwMDAwMTI3NzM4NjYwMTY3MzYxMDAxODkwMDAwMDA4NDczODE2NDE3OTk3ODc1NjMwXyIgIHN0eWxlPSJvdmVyZmxvdzp2aXNpYmxlOyIvPgoJCQk8L2NsaXBQYXRoPgoJCQk8cGF0aCBzdHlsZT0iY2xpcC1wYXRoOnVybCgjU1ZHSURfMDAwMDAwODY2ODMyMTA0Njk3MTI3NjM5NjAwMDAwMDk5NjcxNDM4NjMyMjM2ODg4NjRfKTtmaWxsOiNBQTIwNkU7IiBkPSJNMTQzLjgsMTI1LjlsODYuMS0yMwoJCQkJYzguNi0yLjMsMTcuNi0zLjcsMjYuOC00LjNsMzYzLjEtMjEuOUwxNDMuOCwxMjUuOXoiLz4KCQk8L2c+Cgk8L2c+Cgk8Zz4KCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNMjkuNCwxMjMuM0M0Niw4Ny42LDg2LjYsNzAuNCwxMjMuOSw4MS40Yy0wLjktMC40LTEuNy0wLjktMi42LTEuM2MtMzkuMS0xOC4yLTg1LjUtMS4zLTEwMy43LDM3LjcKCQkJYy0xOC4xLDM5LTEuMSw4NS40LDM4LDEwMy41YzAuOSwwLjQsMS44LDAuOCwyLjYsMS4xQzI1LjgsMjAxLjEsMTIuOCwxNTksMjkuNCwxMjMuM3oiLz4KCTwvZz4KCTxnPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik00MDkuMywxNjYuNWMwLDIuMi0wLjMsNC4xLTAuOCw1LjljLTAuNSwxLjctMS4zLDMuMy0yLjIsNC42cy0yLDIuNS0zLjIsMy40cy0yLjUsMS43LTMuOCwyLjMKCQkJYy0xLjMsMC42LTIuNiwxLTQsMS4zYy0xLjMsMC4zLTIuNiwwLjQtMy44LDAuNEgzNDl2LTExaDQyLjVjMi4xLDAsMy44LTAuNiw0LjktMS45YzEuMi0xLjIsMS44LTIuOSwxLjgtNWMwLTEtMC4yLTEuOS0wLjUtMi44CgkJCXMtMC44LTEuNi0xLjMtMi4yYy0wLjYtMC42LTEuMy0xLjEtMi4xLTEuNGMtMC44LTAuMy0xLjgtMC41LTIuOC0wLjVoLTI1LjNjLTEuOCwwLTMuNy0wLjMtNS44LTFjLTIuMS0wLjYtNC0xLjctNS43LTMuMQoJCQljLTEuOC0xLjQtMy4yLTMuMy00LjQtNS41Yy0xLjItMi4zLTEuOC01LjEtMS44LTguNHMwLjYtNi4xLDEuOC04LjRjMS4yLTIuMywyLjYtNC4xLDQuNC01LjVzMy43LTIuNSw1LjctMy4xYzIuMS0wLjYsNC0xLDUuOC0xCgkJCWgzNy41djExaC0zNy41Yy0yLjEsMC0zLjcsMC42LTQuOSwxLjlzLTEuOCwzLTEuOCw1YzAsMi4xLDAuNiwzLjgsMS44LDVjMS4yLDEuMiwyLjgsMS44LDQuOSwxLjhoMjUuM2gwLjFjMS4yLDAsMi40LDAuMiwzLjgsMC41CgkJCWMxLjMsMC4zLDIuNiwwLjgsNCwxLjRjMS4zLDAuNiwyLjYsMS40LDMuNywyLjNjMS4yLDAuOSwyLjIsMi4xLDMuMiwzLjRjMC45LDEuMywxLjYsMi45LDIuMiw0LjYKCQkJQzQwOS4xLDE2Mi40LDQwOS4zLDE2NC4zLDQwOS4zLDE2Ni41eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik00NzkuMSwxNTljMCwzLjctMC42LDcuMS0xLjksMTAuMmMtMS4zLDMuMS0zLjEsNS44LTUuMyw4Yy0yLjMsMi4yLTQuOSw0LTgsNS4zcy02LjUsMS45LTEwLjEsMS45aC0yOS43CgkJCWMtMC44LDAtMS41LTAuMS0yLjItMC40cy0xLjMtMC43LTEuOC0xLjJzLTAuOS0xLjEtMS4yLTEuOGMtMC4zLTAuNy0wLjQtMS40LTAuNC0yLjJ2LTQ5LjZjMC0wLjgsMC4xLTEuNSwwLjQtMi4yCgkJCXMwLjctMS4zLDEuMi0xLjhzMS4xLTAuOSwxLjgtMS4yYzAuNy0wLjMsMS40LTAuNCwyLjItMC40aDI5LjdjMy42LDAsNywwLjYsMTAuMSwxLjlzNS44LDMsOCw1LjNjMi4zLDIuMiw0LDQuOSw1LjMsOAoJCQlzMS45LDYuNSwxLjksMTAuMlYxNTl6IE00NjguMSwxNDkuMWMwLTIuMS0wLjMtNC4xLTEtNS45cy0xLjctMy4zLTIuOS00LjZjLTEuMy0xLjMtMi44LTIuMi00LjYtMi45Yy0xLjgtMC43LTMuNy0xLTUuOS0xaC0yNC4zCgkJCXYzOC43aDI0LjNjMi4xLDAsNC4xLTAuMyw1LjktMXMzLjMtMS43LDQuNi0yLjljMS4zLTEuMywyLjMtMi44LDIuOS00LjVjMC43LTEuOCwxLTMuNywxLTUuOVYxNDkuMXoiLz4KCQk8cGF0aCBjbGFzcz0ic3QzIiBkPSJNNTQ5LjIsMTIzLjdsLTI4LjcsNTguNmMtMC41LDAuOS0xLjEsMS42LTIsMi4yYy0wLjksMC41LTEuOSwwLjgtMi45LDAuOHMtMi0wLjMtMi45LTAuOAoJCQljLTAuOS0wLjYtMS42LTEuMy0yLjEtMi4ybC0yOC43LTU4LjZoMTIuM2wyMS4zLDQzLjdsMjEuNC00My43SDU0OS4yeiIvPgoJPC9nPgoJPGc+CgkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTY3LjYsMjIyLjN2LTIxLjloMTQuMnY0LjFoLTkuMXY0LjVoOC42djQuMWgtOC42djUuMWg5LjR2NC4ySDY3LjZWMjIyLjN6Ii8+CgkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTkxLjksMjIyLjdjLTQuMywwLTguMi0yLjktOC4yLTguMXM0LTguMSw4LjMtOC4xYzQsMCw1LjgsMS42LDUuOCwxLjZsLTEuMSwzLjhjLTAuNC0wLjMtMS44LTEuNC00LTEuNAoJCQlzLTMuOSwxLjUtMy45LDRzMS42LDQsMy45LDRjMi40LDAsNC0xLjUsNC0xLjVsMS4yLDMuOEM5Ny43LDIyMC45LDk2LDIyMi43LDkxLjksMjIyLjd6Ii8+CgkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTEwMCwyMjIuM3YtMjEuOWg1LjF2MjEuOUgxMDB6Ii8+CgkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTExMS4xLDIwNC45Yy0xLjcsMC0yLjktMS0yLjktMi42czEuMi0yLjYsMi45LTIuNnMyLjksMS4xLDIuOSwyLjZTMTEyLjgsMjA0LjksMTExLjEsMjA0Ljl6IE0xMDguNiwyMjIuMwoJCQl2LTE1LjZoNS4xdjE1LjZIMTA4LjZ6Ii8+CgkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTEyNy4xLDIyMi43Yy0yLjMsMC00LTAuOS00LjktMi4zdjcuN2gtNS4xdi0yMS40aDQuOHYyaDAuMWMxLjEtMS40LDIuOC0yLjMsNS4yLTIuM2M0LjUsMCw3LjQsMy41LDcuNCw4LjEKCQkJUzEzMS43LDIyMi43LDEyNy4xLDIyMi43eiBNMTI1LjcsMjEwLjRjLTIuMiwwLTMuNiwxLjYtMy42LDQuMWMwLDIuNCwxLjUsNC4xLDMuNiw0LjFjMi4yLDAsMy43LTEuNiwzLjctNC4xCgkJCUMxMjkuNCwyMTIuMSwxMjcuOSwyMTAuNCwxMjUuNywyMTAuNHoiLz4KCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNMTQyLjMsMjIyLjdjLTIuMywwLTQuOC0wLjctNi42LTIuNGwxLjktM2MxLjMsMS4xLDMuNCwxLjksNC42LDEuOWMxLjMsMCwyLjItMC4zLDIuMi0xLjNzLTIuMy0xLjUtMi45LTEuNwoJCQljLTIuNi0wLjctNC45LTEuNi00LjktNC44YzAtMywyLjctNC45LDUuOS00LjljMy4zLDAsNS4xLDEuMiw2LDEuOWwtMS42LDNjLTAuOS0wLjctMi43LTEuNS0zLjktMS41cy0xLjksMC4zLTEuOSwxLjEKCQkJczEuMiwxLjIsMi4zLDEuNWMyLjcsMC44LDUuNSwxLjYsNS41LDUuMUMxNDguOSwyMjEuMywxNDUuNSwyMjIuNywxNDIuMywyMjIuN3oiLz4KCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNMTY2LjUsMjE1LjdoLTExLjFjMC4yLDIuMywxLjksMy4zLDQsMy4zYzIsMCwzLjgtMC45LDQuNy0xLjVsMiwyLjZjLTAuNSwwLjQtMi42LDIuNS03LjQsMi41CgkJCWMtNC44LDAtOC4zLTMtOC4zLTguMWMwLTUuMiwzLjgtOC4xLDguNC04LjFzNy44LDMuMSw3LjgsNy42QzE2Ni42LDIxNC44LDE2Ni41LDIxNS43LDE2Ni41LDIxNS43eiBNMTU4LjcsMjA5LjcKCQkJYy0yLjEsMC0zLjIsMS42LTMuMiwzLjFoNi40QzE2MS45LDIxMS40LDE2MC44LDIwOS43LDE1OC43LDIwOS43eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0xODEuOCwyMjIuN2MtMy4yLDAtNi0xLjYtNy44LTMuM2wyLjUtMy43YzEuNiwxLjYsNCwyLjgsNS43LDIuOGMxLjYsMCwyLjktMC44LDIuOS0yLjNzLTEuNi0yLjEtMi42LTIuNAoJCQlzLTIuNi0wLjktMy4zLTEuMmMtMC41LTAuMy0xLjYtMC43LTIuNi0xLjZzLTEuNy0yLjItMS43LTQuMmMwLTIuMSwxLTMuNywyLjMtNC44YzEuMi0xLDMuMi0xLjcsNS44LTEuN3M1LjUsMS4yLDYuOSwyLjcKCQkJbC0yLjIsMy42Yy0xLjMtMS4zLTMuMi0yLjItNC45LTIuMmMtMS42LDAtMi45LDAuNi0yLjksMnMxLjIsMS44LDIuMiwyLjJjMSwwLjQsMi42LDEsMy4zLDEuMmMyLjgsMSw0LjgsMi44LDQuOCw2CgkJCUMxOTAuMywyMjAuNCwxODYsMjIyLjcsMTgxLjgsMjIyLjd6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTIwMC41LDIyMi43Yy00LjksMC04LjctMy4xLTguNy04LjFzMy43LTguMSw4LjctOC4xYzQuOSwwLDguNywzLjEsOC43LDguMQoJCQlDMjA5LjEsMjE5LjYsMjA1LjQsMjIyLjcsMjAwLjUsMjIyLjd6IE0yMDAuNSwyMTAuNGMtMi4zLDAtMy42LDEuNy0zLjYsNC4xczEuMyw0LjEsMy42LDQuMWMyLjIsMCwzLjYtMS43LDMuNi00LjEKCQkJUzIwMi43LDIxMC40LDIwMC41LDIxMC40eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0yMjcuNywyMTAuNnY1LjZjMCwxLjQsMC4xLDIuMywxLjYsMi4zYzAuOCwwLDEuNS0wLjMsMS41LTAuM2wwLjMsNGMtMC40LDAuMS0xLjgsMC41LTMuNiwwLjUKCQkJYy00LjEsMC00LjktMi41LTQuOS02LjF2LTYuMWgtNS4zdjExLjhoLTUuMXYtMTEuOGgtMnYtMy44aDJ2LTAuOWMwLTMuNywxLjgtNS44LDUuNi01LjhjMiwwLDMuNSwwLjQsMy41LDAuNGwtMC4zLDMuNQoJCQljMCwwLTEtMC4zLTEuOS0wLjNjLTEuNSwwLTEuOSwwLjktMS45LDJ2MWg1LjN2LTQuMmg1LjF2NC4yaDMuNXYzLjhoLTMuNFYyMTAuNnoiLz4KCQk8cGF0aCBjbGFzcz0ic3QzIiBkPSJNMjUyLjQsMjIyLjNoLTQuOGwtMy05LjZsLTMuMSw5LjZoLTQuOGwtNS4xLTE1LjZoNS4xbDIuOCwxMGwzLTEwaDQuMmwzLDEwbDIuOC0xMGg1LjFMMjUyLjQsMjIyLjN6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTI2OC42LDIyMi4zbC0wLjEtMS42Yy0wLjcsMC43LTEuOSwyLTQuNSwyYy0yLjgsMC01LjctMS41LTUuNy01czMuMi00LjcsNi4xLTQuOGwzLjktMC4ydi0wLjMKCQkJYzAtMS42LTEuMi0yLjUtMy4yLTIuNXMtNCwwLjktNC44LDEuNEwyNTksMjA4YzEuMy0wLjcsMy44LTEuNiw2LjctMS42YzQuOSwwLDcuNywyLDcuNyw3LjF2OC44SDI2OC42eiBNMjY1LjksMjE1LjYKCQkJYy0xLjYsMC4xLTIuNSwwLjctMi41LDEuOWMwLDEuMiwxLDEuOSwyLjQsMS45czIuMy0wLjksMi42LTEuNHYtMi42TDI2NS45LDIxNS42eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0yODYuOSwyMTEuNGgtMC4yYy0wLjMtMC4yLTEtMC40LTEuOC0wLjRjLTIuNSwwLTMuMSwyLjMtMy4xLDQuNHY2LjloLTUuMXYtMTUuNmg1LjF2Mi4yaDAuMQoJCQljMC45LTEuNywyLjItMi41LDMuOS0yLjVjMSwwLDEuNiwwLjMsMS42LDAuM0wyODYuOSwyMTEuNHoiLz4KCQk8cGF0aCBjbGFzcz0ic3QzIiBkPSJNMzA0LDIxNS43aC0xMS4xYzAuMiwyLjMsMS45LDMuMyw0LDMuM2MyLDAsMy44LTAuOSw0LjctMS41bDIsMi42Yy0wLjUsMC40LTIuNiwyLjUtNy40LDIuNXMtOC4zLTMtOC4zLTguMQoJCQljMC01LjIsMy44LTguMSw4LjQtOC4xczcuOCwzLjEsNy44LDcuNkMzMDQuMSwyMTQuOCwzMDQsMjE1LjcsMzA0LDIxNS43eiBNMjk2LjEsMjA5LjdjLTIuMSwwLTMuMiwxLjYtMy4yLDMuMWg2LjQKCQkJQzI5OS4zLDIxMS40LDI5OC4zLDIwOS43LDI5Ni4xLDIwOS43eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0zMjAuNCwyMjIuM0gzMTN2LTIxLjloNy40YzYuOSwwLDEyLDMuNiwxMiwxMC45QzMzMi40LDIxOC43LDMyNy4zLDIyMi4zLDMyMC40LDIyMi4zeiBNMzIwLjcsMjA0LjdoLTIuNgoJCQlWMjE4aDIuNmM0LjEsMCw2LjUtMi41LDYuNS02LjZTMzI0LjgsMjA0LjcsMzIwLjcsMjA0Ljd6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTM1MC4yLDIxNS43aC0xMS4xYzAuMiwyLjMsMS45LDMuMyw0LDMuM2MyLDAsMy44LTAuOSw0LjctMS41bDIsMi42Yy0wLjUsMC40LTIuNiwyLjUtNy40LDIuNQoJCQlzLTguMy0zLTguMy04LjFjMC01LjIsMy44LTguMSw4LjQtOC4xczcuOCwzLjEsNy44LDcuNkMzNTAuMywyMTQuOCwzNTAuMiwyMTUuNywzNTAuMiwyMTUuN3ogTTM0Mi40LDIwOS43CgkJCWMtMi4xLDAtMy4yLDEuNi0zLjIsMy4xaDYuNEMzNDUuNSwyMTEuNCwzNDQuNSwyMDkuNywzNDIuNCwyMDkuN3oiLz4KCQk8cGF0aCBjbGFzcz0ic3QzIiBkPSJNMzYwLjMsMjAzLjdjLTEuNywwLTEuOSwxLjItMS45LDIuNHYwLjZoMy40djMuOGgtMy40djExLjhoLTUuMXYtMTEuOGgtMnYtMy44aDJ2LTAuOWMwLTMuOCwxLjgtNS44LDUuNy01LjgKCQkJYzEuNywwLDMuMywwLjQsMy4zLDAuNGwtMC4zLDMuNUMzNjEuNSwyMDMuOCwzNjAuOSwyMDMuNywzNjAuMywyMDMuN3ogTTM2NS45LDIwNC45Yy0xLjcsMC0yLjktMS0yLjktMi42czEuMi0yLjYsMi45LTIuNgoJCQljMS43LDAsMi45LDEuMSwyLjksMi42UzM2Ny42LDIwNC45LDM2NS45LDIwNC45eiBNMzYzLjQsMjIyLjN2LTE1LjZoNS4xdjE1LjZIMzYzLjR6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTM4Mi4xLDIyMi4zdi04LjFjMC0yLjEtMC4zLTMuNi0yLjQtMy42Yy0yLjIsMC0yLjgsMS44LTIuOCw0djcuN2gtNS4xdi0xNS42aDUuMXYyLjNoMC4xCgkJCWMwLjktMS40LDIuMy0yLjUsNC41LTIuNWM0LjUsMCw1LjcsMi45LDUuNyw2Ljd2OS4yaC01LjFWMjIyLjN6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTQwNS44LDIxNS43aC0xMS4xYzAuMiwyLjMsMS45LDMuMyw0LDMuM2MyLDAsMy44LTAuOSw0LjctMS41bDIsMi42Yy0wLjUsMC40LTIuNiwyLjUtNy40LDIuNQoJCQlzLTguMy0zLTguMy04LjFjMC01LjIsMy44LTguMSw4LjQtOC4xczcuOCwzLjEsNy44LDcuNkM0MDUuOCwyMTQuOCw0MDUuOCwyMTUuNyw0MDUuOCwyMTUuN3ogTTM5Ny45LDIwOS43CgkJCWMtMi4xLDAtMy4yLDEuNi0zLjIsMy4xaDYuNEM0MDEuMSwyMTEuNCw0MDAsMjA5LjcsMzk3LjksMjA5Ljd6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTQyMCwyMjIuM3YtMi4xaC0wLjFjLTEuMiwxLjYtMywyLjQtNS4xLDIuNGMtNC41LDAtNy40LTMuNi03LjQtOC4xczIuOS04LjEsNy40LTguMWMyLjksMCw0LjQsMS40LDQuOSwyLjIKCQkJdi04LjFoNS4xdjIxLjlMNDIwLDIyMi4zTDQyMCwyMjIuM3ogTTQxNi4zLDIxMC40Yy0yLjIsMC0zLjcsMS42LTMuNyw0LjFjMCwyLjQsMS41LDQuMSwzLjcsNC4xczMuNi0xLjYsMy42LTQuMQoJCQlDNDE5LjksMjEyLjEsNDE4LjQsMjEwLjQsNDE2LjMsMjEwLjR6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTQ0NS43LDIyMi4zaC00LjlsLTguMS0yMS45aDUuNWw1LjEsMTUuMWw1LjEtMTUuMWg1LjRMNDQ1LjcsMjIyLjN6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTQ3MC4yLDIxNS43aC0xMS4xYzAuMiwyLjMsMS45LDMuMyw0LDMuM2MyLDAsMy44LTAuOSw0LjctMS41bDIsMi42Yy0wLjUsMC40LTIuNiwyLjUtNy40LDIuNQoJCQlzLTguMy0zLTguMy04LjFjMC01LjIsMy44LTguMSw4LjQtOC4xczcuOCwzLjEsNy44LDcuNkM0NzAuMywyMTQuOCw0NzAuMiwyMTUuNyw0NzAuMiwyMTUuN3ogTTQ2Mi4zLDIwOS43CgkJCWMtMi4xLDAtMy4yLDEuNi0zLjIsMy4xaDYuNEM0NjUuNSwyMTEuNCw0NjQuNSwyMDkuNyw0NjIuMywyMDkuN3oiLz4KCQk8cGF0aCBjbGFzcz0ic3QzIiBkPSJNNDgzLDIyMi4zdi04LjJjMC0xLjktMC4zLTMuNi0yLjQtMy42cy0yLjgsMS44LTIuOCw0LjF2Ny43aC01LjF2LTIxLjloNS4xdjUuMmMwLDEuNiwwLDMuMywwLDMuMwoJCQljMC44LTEuNCwyLjMtMi41LDQuNi0yLjVjNC41LDAsNS43LDIuOSw1LjcsNi43djkuMkw0ODMsMjIyLjNMNDgzLDIyMi4zeiIvPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik00OTMuOSwyMDQuOWMtMS43LDAtMi45LTEtMi45LTIuNnMxLjItMi42LDIuOS0yLjZzMi45LDEuMSwyLjksMi42QzQ5Ni44LDIwMy44LDQ5NS42LDIwNC45LDQ5My45LDIwNC45egoJCQkgTTQ5MS40LDIyMi4zdi0xNS42aDUuMXYxNS42SDQ5MS40eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik01MDcuMiwyMjIuN2MtNC4zLDAtOC4yLTIuOS04LjItOC4xczQtOC4xLDguMy04LjFjNCwwLDUuOCwxLjYsNS44LDEuNmwtMS4xLDMuOGMtMC40LTAuMy0xLjgtMS40LTQtMS40CgkJCXMtMy45LDEuNS0zLjksNHMxLjYsNCwzLjksNHM0LTEuNSw0LTEuNWwxLjIsMy44QzUxMywyMjAuOSw1MTEuMywyMjIuNyw1MDcuMiwyMjIuN3oiLz4KCQk8cGF0aCBjbGFzcz0ic3QzIiBkPSJNNTE1LjMsMjIyLjN2LTIxLjloNS4xdjIxLjlINTE1LjN6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTUzOS4xLDIxNS43SDUyOGMwLjIsMi4zLDEuOSwzLjMsNCwzLjNjMiwwLDMuOC0wLjksNC43LTEuNWwyLDIuNmMtMC41LDAuNC0yLjYsMi41LTcuNCwyLjUKCQkJYy00LjgsMC04LjMtMy04LjMtOC4xYzAtNS4yLDMuOC04LjEsOC40LTguMXM3LjgsMy4xLDcuOCw3LjZDNTM5LjEsMjE0LjgsNTM5LjEsMjE1LjcsNTM5LjEsMjE1Ljd6IE01MzEuMiwyMDkuNwoJCQljLTIuMSwwLTMuMiwxLjYtMy4yLDMuMWg2LjRDNTM0LjQsMjExLjQsNTMzLjMsMjA5LjcsNTMxLjIsMjA5Ljd6Ii8+Cgk8L2c+CjwvZz4KPHJlY3QgeD0iNTk5LjIiIHk9IjYyLjYiIGNsYXNzPSJzdDQiIHdpZHRoPSI0NCIgaGVpZ2h0PSIzMiIvPgo8ZyBjbGFzcz0ic3Q1Ij4KCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik02MDYuMyw2NC40aC0yLjh2NS43aC0xLjN2LTUuN2gtMi44di0xLjNoNi45VjY0LjR6Ii8+Cgk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNNjE1LjMsNzAuMWgtMS4zdi00LjJsLTIuMyw0Yy0wLjEsMC4xLTAuMSwwLjItMC4yLDAuMmMtMC4xLDAuMS0wLjIsMC4xLTAuMywwLjFjLTAuMSwwLTAuMiwwLTAuMy0wLjEKCQljLTAuMS0wLjEtMC4yLTAuMS0wLjItMC4ybC0yLjMtNHY0LjJoLTEuM3YtNi41YzAtMC4xLDAtMC4zLDAuMS0wLjRjMC4xLTAuMSwwLjItMC4yLDAuMy0wLjJjMC4xLDAsMC4xLDAsMC4yLDBjMC4xLDAsMC4xLDAsMC4yLDAKCQljMC4xLDAsMC4xLDAuMSwwLjIsMC4xYzAuMSwwLDAuMSwwLjEsMC4xLDAuMmwyLjksNWwyLjktNWMwLjEtMC4xLDAuMi0wLjIsMC4zLTAuM2MwLjEtMC4xLDAuMy0wLjEsMC40LDBjMC4xLDAsMC4yLDAuMSwwLjMsMC4yCgkJczAuMSwwLjIsMC4xLDAuNFY3MC4xeiIvPgo8L2c+Cjwvc3ZnPgo="/></g><g><image x="38.5" y="595.48" width="123" height="39.99" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjgzcHgiIGhlaWdodD0iOTJweCIgdmlld0JveD0iMCAwIDI4MyA5MiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWxuczpza2V0Y2g9Imh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaC9ucyI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDMuMy4zICgxMjA3MikgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+ZWNsaXBzZS1mb3VuZGF0aW9uLWdyZXktb3JhbmdlPC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc2tldGNoOnR5cGU9Ik1TUGFnZSI+CiAgICAgICAgPGcgaWQ9ImVjbGlwc2UtZm91bmRhdGlvbi1ncmV5LW9yYW5nZSIgc2tldGNoOnR5cGU9Ik1TTGF5ZXJHcm91cCI+CiAgICAgICAgICAgIDxnIGlkPSJMYXllcl8xIiBza2V0Y2g6dHlwZT0iTVNTaGFwZUdyb3VwIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNjYuNTYsODQuMyBMMjU3Ljg5LDczLjMgTDI1NS4xOCw3My4zIEwyNTUuMTgsOTEgTDI1OC41Miw5MSBMMjU4LjUyLDc5IEwyNjcuODMsOTEgTDI2OS45LDkxIEwyNjkuOSw3My4zMSBMMjY2LjU2LDczLjMxIEwyNjYuNTYsODQuMyBaIE0yMzQuMTUsNzYgQzIzOC4zMiw3NiAyMzkuOTksNzkuMzQgMjM5Ljk0LDgyLjMzIEMyMzkuODksODUuMzIgMjM4LjMyLDg4LjMzIDIzNC4xNSw4OC4zMyBDMjI5Ljk4LDg4LjMzIDIyOC40MSw4NS4yMiAyMjguMzQsODIuMzMgQzIyOC4yNyw3OS40NCAyMzAsNzYgMjM0LjE1LDc2IEwyMzQuMTUsNzYgWiBNMjM0LjE1LDczIEMyMjguMDMsNzMgMjI1LjA1LDc3LjY4IDIyNS4wNSw4Mi4zMyBDMjI1LjA1LDg2Ljk4IDIyNy45Myw5MS40NiAyMzQuMTUsOTEuNDYgQzI0MC4zNyw5MS40NiAyNDMuMTUsODYuODggMjQzLjIzLDgyLjMgQzI0My4zMSw3Ny43MiAyNDAuMjUsNzMgMjM0LjE1LDczIEwyMzQuMTUsNzMgWiBNMjEyLjkyLDkxIEwyMTIuOTIsNzMuMzEgTDIwOS42LDczLjMxIEwyMDkuNiw5MSBMMjEyLjkyLDkxIFogTTE4OS4zNiw5MSBMMTkyLjcsOTEgTDE5Mi43LDc2LjM0IEwxOTguMzEsNzYuMzQgTDE5OC4zMSw3My4zNCBMMTgzLjc0LDczLjM0IEwxODMuNzQsNzYuMzQgTDE4OS4zNiw3Ni4zNCBMMTg5LjM2LDkxIFogTTE3MC40NSw4NC41NiBMMTYzLjg3LDg0LjU2IEwxNjcuMTYsNzcgTDE3MC40NSw4NC41NiBaIE0xNzMuMjgsOTEgTDE3Ni45Miw5MSBMMTY5LDczLjMxIEwxNjUuMzYsNzMuMzEgTDE1Ny40LDkxIEwxNjEsOTEgTDE2Mi41MSw4Ny42NyBMMTcxLjc3LDg3LjY3IEwxNzMuMjgsOTEgWiBNMTM1LjI4LDc2LjQ0IEwxMzguOTIsNzYuNDQgQzE0Mi43Nyw3Ni40NCAxNDQuMzgsNzkuMiAxNDQuNDYsODEuOTYgQzE0NC41NCw4NC43MiAxNDIuOTQsODcuNzkgMTM4LjkyLDg3Ljc5IEwxMzUuMjgsODcuNzkgTDEzNS4yOCw3Ni40NCBaIE0xMzguOTIsNzMuMjggTDEzMiw3My4yOCBMMTMyLDkxIEwxMzguOTUsOTEgQzE0NS4xNSw5MSAxNDcuODgsODYuNDggMTQ3LjgsODIgQzE0Ny43Miw3Ny41MiAxNDUsNzMuMzEgMTM4LjkyLDczLjMxIEwxMzguOTIsNzMuMjggWiBNMTE2LjU1LDg0LjI4IEwxMDcuODgsNzMuMjggTDEwNS4xNyw3My4yOCBMMTA1LjE3LDkxIEwxMDguNTEsOTEgTDEwOC41MSw3OSBMMTE3LjgxLDkxIEwxMTkuODksOTEgTDExOS44OSw3My4zMSBMMTE2LjU1LDczLjMxIEwxMTYuNTUsODQuMjggWiBNODkuMDksNzMuMzQgTDg5LjA5LDgzLjUgQzg5LjA5LDg2LjUgODcuNTMsODguMzggODQuNzcsODguMzggQzgyLjAxLDg4LjM4IDgwLjE5LDg2LjY5IDgwLjE5LDgzLjUgTDgwLjE5LDczLjM2IEw3Ni44OCw3My4zNiBMNzYuODgsODMuNSBDNzYuODgsODguODMgODAuNSw5MS40MSA4NC43NCw5MS40MSBDODkuMTksOTEuNDEgOTIuNDEsODguNzMgOTIuNDEsODMuNSBMOTIuNDEsNzMuMzYgTDg5LjA5LDczLjM0IFogTTU2LjA5LDc1Ljk5IEM2MC4yNiw3NS45OSA2MS45Myw3OS4zMyA2MS44OCw4Mi4zMiBDNjEuODMsODUuMzEgNjAuMjYsODguMzIgNTYuMDksODguMzIgQzUxLjkyLDg4LjMyIDUwLjM1LDg1LjIxIDUwLjI3LDgyLjMyIEM1MC4xOSw3OS40MyA1MS45Myw3NiA1Ni4xLDc2IEw1Ni4wOSw3NS45OSBaIE01Ni4wOSw3Mi45OSBDNDkuOTcsNzIuOTkgNDYuOTksNzcuNjcgNDYuOTksODIuMzIgQzQ2Ljk5LDg2Ljk3IDQ5Ljg3LDkxLjQ1IDU2LjA5LDkxLjQ1IEM2Mi4zMSw5MS40NSA2NS4wOSw4Ni44NyA2NS4xNyw4Mi4yOSBDNjUuMjUsNzcuNzEgNjIuMTksNzMgNTYuMSw3MyBMNTYuMDksNzIuOTkgWiBNMjYuMzIsOTEgTDI2LjMyLDg0LjQ2IEwzNS4xOSw4NC40NiBMMzUuMTksODEuNCBMMjYuMzIsODEuNCBMMjYuMzIsNzYuNTcgTDM1LjcsNzYuNTcgTDM1LjcsNzMuMzYgTDIzLDczLjM2IEwyMyw5MSBMMjYuMzIsOTEgWiIgaWQ9IlNoYXBlIiBmaWxsPSIjRjc5NDIyIj48L3BhdGg+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjcwLjIzLDU0Ljc1IEwyNDguMDYsNTQuNzUgTDI0OC4wNiw0NS44NCBMMjY5LjQ0LDQ1Ljg0IEwyNjkuNDQsMzguOSBMMjQ4LjA2LDM4LjkgTDI0OC4wNiwyOS43NiBMMjcwLjIzLDI5Ljc2IEwyNzAuMjMsMjIuNTQgTDI0MC42NywyMi41NCBMMjQwLjY3LDYyLjA4IEwyNzAuMjMsNjIuMDggTDI3MC4yMyw1NC43NSBaIE0yMzAuMjMsMjkuMDkgQzIyNy4yMywyMi45OSAyMjAuODcsMjEuMjUgMjE0LjcyLDIxLjI1IEMyMDcuNDQsMjEuMjUgMTk5LjQzLDI0LjYzIDE5OS40MywzMi43NSBDMTk5LjQzLDQxLjYxIDIwNi44OCw0My43NSAyMTQuOTQsNDQuNzUgQzIyMC4xOSw0NS4zMSAyMjQuMDgsNDYuODQgMjI0LjA4LDUwLjU2IEMyMjQuMDgsNTQuODUgMjE5LjY4LDU2LjQ4IDIxNSw1Ni40OCBDMjEwLjMyLDU2LjQ4IDIwNS42NCw1NC41NiAyMDMuODksNTAuMjIgTDE5Ny42OCw1My40NCBDMjAwLjYyLDYwLjY2IDIwNi44Miw2My4xNCAyMTQuODksNjMuMTQgQzIyMy42OSw2My4xNCAyMzEuNDcsNTkuMzYgMjMxLjQ3LDUwLjU2IEMyMzEuNDcsNDEuMTQgMjIzLjgsMzkgMjE1LjU2LDM3Ljk4IEMyMTAuODMsMzcuNDIgMjA2Ljc3LDM2LjQ2IDIwNi43NywzMi45OCBDMjA2Ljc3LDMwLjA1IDIwOS40MiwyNy43MyAyMTQuOTQsMjcuNzMgQzIxOS4yMywyNy43MyAyMjIuOTQsMjkuODggMjI0LjMxLDMyLjEzIEwyMzAuMjMsMjkuMDkgWiBNMTc2Ljg5LDIyLjU0IEMxNzAuNjgsMjIuNDkgMTY0LjQ4LDIyLjU0IDE1OC4yNywyMi41NCBMMTU4LjI3LDYyLjA4IEwxNjUuNzIsNjIuMDggTDE2NS43Miw1MC40NiBMMTc2Ljg5LDUwLjQ2IEMxOTYuMjUsNTAuNDYgMTk2LjIsMjIuNTQgMTc2LjkxLDIyLjU0IEwxNzYuODksMjIuNTQgWiBNMTY1LjcyLDI5LjY1IEwxNzYuODksMjkuNjUgQzE4Ni4zNiwyOS42NSAxODYuNDIsNDMuNjUgMTc2Ljg5LDQzLjY1IEwxNjUuNzQsNDMuNjUgTDE2NS43MiwyOS42NSBaIE0xNDcuNzIsNjIuMDggTDE0Ny43MiwyMi41NCBMMTQwLjMzLDIyLjU0IEwxNDAuMzMsNjIuMDggTDE0Ny43Miw2Mi4wOCBaIE0xMDMuNzIsMjIuNTQgTDEwMy43Miw2Mi4wOCBMMTMxLjQ3LDYyLjA4IEwxMzEuNDcsNTUuMiBMMTExLjIyLDU1LjIgTDExMS4yMiwyMi41NCBMMTAzLjcyLDIyLjU0IFogTTkxLjU1LDUyIEM4OC44NzIyMzQsNTQuNTQ2MTg2NyA4NS4zMjQ5ODk0LDU1Ljk3NjUyNzMgODEuNjMsNTYgQzcxLjg3LDU2IDY4LjA5LDQ5LjE4IDY4LjAzLDQyLjYzIEM2Ny45NywzNi4wOCA3Mi4wOSwyOC45MyA4MS42MywyOC45MyBDODUuMTcwNTIyLDI4Ljg3ODE2MTkgODguNTkwODc1NywzMC4yMTMyODQyIDkxLjE2LDMyLjY1IEw5Ni4xNiwyNy44NiBDOTIuMzI1NjA0NSwyNC4wMDQ0MTAxIDg3LjEwNzYzNzIsMjEuODQzNzYxMSA4MS42NywyMS44NiBDNjcuNCwyMS44NiA2MC42NywzMi4zNSA2MC43NCw0Mi42NyBDNjAuODEsNTIuOTkgNjcsNjMgODEuNjMsNjMgQzg3LjIxNDg1MDEsNjMuMTMzOTQ0NCA5Mi42MTk0NDE2LDYxLjAxODk0NzYgOTYuNjMsNTcuMTMgTDkxLjU1LDUyIFogTTUyLjU1LDU0Ljc2IEwzMC4zNyw1NC43NiBMMzAuMzcsNDUuODQgTDUxLjc1LDQ1Ljg0IEw1MS43NSwzOC45IEwzMC4zNywzOC45IEwzMC4zNywyOS43NiBMNTIuNTQsMjkuNzYgTDUyLjU0LDIyLjU0IEwyMywyMi41NCBMMjMsNjIuMDggTDUyLjU2LDYyLjA4IEw1Mi41NSw1NC43NiBaIiBpZD0iU2hhcGUiIGZpbGw9IiMzRDNDM0IiPjwvcGF0aD4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC42NiwxOC41MiBDMTkuNjYsNC40MiAzNy44MSwtMC40OCA1Mi45MSw2LjI3IEw1MS45MSw1LjU4IEMzNi40OTI5NzEyLC00LjMwNTg5NzAyIDE1Ljk4MDg5NywwLjE3Nzk3MTIwOCA2LjA5NSwxNS41OTUgQy0zLjc5MDg5NzAyLDMxLjAxMjAyODggMC42OTI5NzEyMDgsNTEuNTI0MTAzIDE2LjExLDYxLjQxIEwxNy4xNiw2Mi4wNCBDNC42OSw1MS4xNCAxLjYxLDMyLjYzIDEwLjY2LDE4LjUyIEwxMC42NiwxOC41MiBaIiBpZD0iU2hhcGUiIGZpbGw9IiNGNzk0MjIiPjwvcGF0aD4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNzMsMjYuNDEgTDI3MywyNi40MSBDMjczLDIzLjg4MDUzNTggMjc1LjA1MDUzNiwyMS44MyAyNzcuNTgsMjEuODMgQzI4MC4xMDk0NjQsMjEuODMgMjgyLjE2LDIzLjg4MDUzNTggMjgyLjE2LDI2LjQxIEwyODIuMTYsMjYuNDEgQzI4Mi4xNiwyOC45Mzk0NjQyIDI4MC4xMDk0NjQsMzAuOTkgMjc3LjU4LDMwLjk5IEMyNzUuMDUwNTM2LDMwLjk5IDI3MywyOC45Mzk0NjQyIDI3MywyNi40MSBMMjczLDI2LjQxIFogTTI4MS42MywyNi40MSBMMjgxLjYzLDI2LjQxIEMyODEuNjMsMjQuMTczMjQ2OCAyNzkuODE2NzUzLDIyLjM2IDI3Ny41OCwyMi4zNiBDMjc1LjM0MzI0NywyMi4zNiAyNzMuNTMsMjQuMTczMjQ2OCAyNzMuNTMsMjYuNDEgTDI3My41MywyNi40MSBDMjczLjUwODI0LDI3LjQ5MzM4NjkgMjczLjkyNjk1NywyOC41MzkyNDY3IDI3NC42OTAzNDksMjkuMzA4MjkzNiBDMjc1LjQ1Mzc0MSwzMC4wNzczNDA1IDI3Ni40OTY0ODIsMzAuNTAzNzYzNiAyNzcuNTgsMzAuNDkgQzI3OC42Njk4NiwzMC40OTU0MDg0IDI3OS43MTYzNTcsMzAuMDYzNDgxMiAyODAuNDg1MTMyLDI5LjI5MDk0NjggQzI4MS4yNTM5MDcsMjguNTE4NDEyNSAyODEuNjgwNzI1LDI3LjQ2OTgyMDggMjgxLjY3LDI2LjM4IEwyODEuNjMsMjYuNDEgWiBNMjc1LjY5LDIzLjk0IEwyNzgsMjMuOTQgQzI3OS4xMSwyMy45NCAyNzkuOTIsMjQuNDQgMjc5LjkyLDI1LjUyIEMyNzkuOTUxNzY2LDI2LjIwODgzOCAyNzkuNDk3MjUsMjYuODI1OTc4IDI3OC44MywyNyBMMjgwLDI4LjY3IEwyNzguNjEsMjguNjcgTDI3Ny42MSwyNy4xNyBMMjc2Ljg3LDI3LjE3IEwyNzYuODcsMjguNjcgTDI3NS43MiwyOC42NyBMMjc1LjY5LDIzLjk0IFogTTI3Ny44NCwyNi4yNSBDMjc4LjM3LDI2LjI1IDI3OC42NiwyNS45OSAyNzguNjYsMjUuNiBDMjc4LjY2LDI1LjIxIDI3OC4zNCwyNC45NCAyNzcuODQsMjQuOTQgTDI3Ni44NCwyNC45NCBMMjc2Ljg0LDI2LjI1IEwyNzcuODQsMjYuMjUgWiIgaWQ9IlNoYXBlIiBmaWxsPSIjM0QzQzNCIj48L3BhdGg+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg=="/></g><g><image x="73.5" y="513.57" width="119" height="43.86" xlink:href="data:image/png;base64,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"/></g><g><path d="M 711 203.5 L 757 203.5 L 757 188 L 783 218 L 757 248 L 757 232.5 L 711 232.5 Z" fill="#eeeeee" stroke="#36393d" stroke-miterlimit="10" pointer-events="all"/></g><g><rect x="931.5" y="415.02" width="150" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 430px; margin-left: 1007px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><b style=""><font style="font-size: 12px;">Software Module Repo</font></b></div></div></div></foreignObject><image x="942.5" y="423.5" width="129" height="16.75" xlink:href="data:image/png;base64,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"/></switch></g></g><g><image x="1078.5" y="415.7" width="69.15" height="25.82" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI2LjUuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA2MzAgMjM1IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA2MzAgMjM1OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2NsaXAtcGF0aDp1cmwoI1NWR0lEXzAwMDAwMDQxOTkxOTMyMDQ1NTE3NjA3NjEwMDAwMDAzMTYxNjc5OTMwMDc5ODQyNDc1Xyk7ZmlsbDojNDUyMDYyO30KCS5zdDF7Y2xpcC1wYXRoOnVybCgjU1ZHSURfMDAwMDAwMjI1MjM2NzMwNzIxNjI3MDczODAwMDAwMTM2MTA1NjU4NjAyNjAzNzg1NTBfKTtmaWxsOiNBQTIwNkU7fQoJLnN0MntmaWxsOiNBQTIwNkU7fQoJLnN0M3tmaWxsOiM0NTIwNjI7fQoJLnN0NHtmaWxsOm5vbmU7fQoJLnN0NXtlbmFibGUtYmFja2dyb3VuZDpuZXcgICAgO30KPC9zdHlsZT4KPGc+Cgk8Zz4KCQk8Zz4KCQkJPGRlZnM+CgkJCQk8cmVjdCBpZD0iU1ZHSURfMV8iIHg9Ii0xMyIgeT0iOS41IiB3aWR0aD0iNzIwIiBoZWlnaHQ9IjE0Ni45Ii8+CgkJCTwvZGVmcz4KCQkJPGNsaXBQYXRoIGlkPSJTVkdJRF8wMDAwMDE0NzIyMTQzMDQxMTE3NTAzODAwMDAwMDAxNDMwOTMyOTA5MTI5OTcyOTU0NF8iPgoJCQkJPHVzZSB4bGluazpocmVmPSIjU1ZHSURfMV8iICBzdHlsZT0ib3ZlcmZsb3c6dmlzaWJsZTsiLz4KCQkJPC9jbGlwUGF0aD4KCQkJPHBhdGggc3R5bGU9ImNsaXAtcGF0aDp1cmwoI1NWR0lEXzAwMDAwMTQ3MjIxNDMwNDExMTc1MDM4MDAwMDAwMDE0MzA5MzI5MDkxMjk5NzI5NTQ0Xyk7ZmlsbDojNDUyMDYyOyIgZD0iTTU0NS40LDU0LjVoLTAuNgoJCQkJYy0yMC44LTcuMS00MS42LTE0LjMtNjIuNy0yMC4xYy0xMS0zLjEtMjIuMS01LjgtMzMuMi04Yy0yLjgtMC42LTUuNi0xLTguNC0xLjZjLTEuNC0wLjItMi44LTAuNS00LjItMC43bC00LjItMC42bC00LjItMC42CgkJCQljLTEuNC0wLjItMi44LTAuMy00LjItMC41Yy0yLjgtMC4zLTUuNi0wLjctOC40LTAuOWwtNC4yLTAuNGMtMS40LTAuMS0yLjgtMC4zLTQuMi0wLjNjLTIuOC0wLjEtNS42LTAuMy04LjQtMC40bC04LjQtMC4xCgkJCQljLTIuOCwwLjEtNS42LDAuMi04LjQsMC4zYy0xMS4yLDAuNy0yMi4zLDIuNC0zMy4yLDUuMWMtMTAuOSwyLjctMjEuNyw2LjItMzIuMywxMC42Yy0xMC42LDQuMy0yMC45LDkuMy0zMS4xLDE0LjkKCQkJCWMtMi41LDEuNC01LjEsMi43LTcuNiw0LjJzLTUuMSwyLjktNy42LDQuNHMtNSwzLTcuNSw0LjVsLTcuNSw0LjdjLTUsMy4xLTEwLjIsNi4yLTE1LjUsOC45cy0xMC45LDUuMS0xNi43LDYuN2wtMi4yLDAuNgoJCQkJbC0yLjIsMC41Yy0xLjQsMC40LTIuOSwwLjYtNC4zLDAuOWMtMi45LDAuNS01LjgsMC45LTguNywxLjNjLTUuOCwwLjctMTEuNSwxLjEtMTcuMiwxLjVzLTExLjMsMC44LTE2LjgsMS41bC0xNi45LDIuNAoJCQkJYy01LjYsMC44LTExLjMsMS42LTE2LjksMi41Yy01LjYsMC45LTExLjIsMS45LTE2LjcsMy4xYy0xMS4xLDIuMy0yMi4xLDUuMy0zMi43LDkuN2MtMTAuNiw0LjMtMjAuNywxMC4yLTI5LjMsMTguNQoJCQkJYy00LjMsNC4yLTguMSw5LTExLjIsMTQuNHMtNS41LDExLjQtNy4xLDE3LjdjMS4yLTYuNCwzLjItMTIuNiw2LjEtMTguNGMyLjktNS43LDYuNS0xMSwxMC43LTE1LjZzOC45LTguNSwxMy45LTExLjkKCQkJCXMxMC4yLTYuMywxNS41LTguOWM1LjMtMi41LDEwLjgtNC42LDE2LjMtNi41czExLjEtMy41LDE2LjctNC45YzUuNi0xLjQsMTEuMi0yLjYsMTYuOS0zLjdjNS42LTEuMSwxMS4zLTIuMSwxNi45LTMuMWwxNi45LTMKCQkJCWM1LjctMC45LDExLjUtMS41LDE3LjItMnMxMS4zLTEsMTYuOS0xLjhjMi44LTAuNCw1LjUtMC44LDguMy0xLjNjMS40LTAuMywyLjctMC41LDQuMS0wLjlsMi0wLjVsMi0wLjZjMi42LTAuOCw1LjItMS43LDcuOC0yLjgKCQkJCWMyLjYtMS4xLDUuMS0yLjMsNy42LTMuNmM1LTIuNiwxMC01LjcsMTQuOS04LjhsNy41LTQuN2MyLjUtMS42LDUuMS0zLjEsNy42LTQuNmMyLjUtMS42LDUuMS0zLDcuNy00LjVzNS4yLTIuOSw3LjgtNC4zCgkJCQljMTAuNC01LjYsMjEtMTAuNywzMS45LTE1LjFjMTAuOS00LjMsMjItOCwzMy40LTEwLjVjMTEuMy0yLjYsMjIuOS00LjIsMzQuNC00LjZjMi45LTAuMSw1LjgtMC4xLDguNy0wLjJsOC43LDAuMwoJCQkJYzIuOSwwLjIsNS43LDAuNCw4LjYsMC43YzEuNCwwLjEsMi45LDAuMyw0LjMsMC40bDQuMywwLjVjMi45LDAuMyw1LjcsMC44LDguNSwxLjJjMS40LDAuMiwyLjgsMC40LDQuMywwLjdsNC4yLDAuOGw0LjIsMC44CgkJCQljMS40LDAuMywyLjgsMC42LDQuMiwwLjljMi44LDAuNiw1LjYsMS4yLDguNCwxLjljMTEuMiwyLjcsMjIuMyw1LjksMzMuMyw5LjZDNTA0LjMsMzcuMSw1MjUsNDUuNSw1NDUuNCw1NC41eiIvPgoJCTwvZz4KCQk8Zz4KCQkJPGRlZnM+CgkJCQk8cmVjdCBpZD0iU1ZHSURfMDAwMDAxMjc3Mzg2NjAxNjczNjEwMDE4OTAwMDAwMDg0NzM4MTY0MTc5OTc4NzU2MzBfIiB4PSItMTMiIHk9IjkuNSIgd2lkdGg9IjcyMCIgaGVpZ2h0PSIxNDYuOSIvPgoJCQk8L2RlZnM+CgkJCTxjbGlwUGF0aCBpZD0iU1ZHSURfMDAwMDAwODY2ODMyMTA0Njk3MTI3NjM5NjAwMDAwMDk5NjcxNDM4NjMyMjM2ODg4NjRfIj4KCQkJCTx1c2UgeGxpbms6aHJlZj0iI1NWR0lEXzAwMDAwMTI3NzM4NjYwMTY3MzYxMDAxODkwMDAwMDA4NDczODE2NDE3OTk3ODc1NjMwXyIgIHN0eWxlPSJvdmVyZmxvdzp2aXNpYmxlOyIvPgoJCQk8L2NsaXBQYXRoPgoJCQk8cGF0aCBzdHlsZT0iY2xpcC1wYXRoOnVybCgjU1ZHSURfMDAwMDAwODY2ODMyMTA0Njk3MTI3NjM5NjAwMDAwMDk5NjcxNDM4NjMyMjM2ODg4NjRfKTtmaWxsOiNBQTIwNkU7IiBkPSJNMTQzLjgsMTI1LjlsODYuMS0yMwoJCQkJYzguNi0yLjMsMTcuNi0zLjcsMjYuOC00LjNsMzYzLjEtMjEuOUwxNDMuOCwxMjUuOXoiLz4KCQk8L2c+Cgk8L2c+Cgk8Zz4KCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNMjkuNCwxMjMuM0M0Niw4Ny42LDg2LjYsNzAuNCwxMjMuOSw4MS40Yy0wLjktMC40LTEuNy0wLjktMi42LTEuM2MtMzkuMS0xOC4yLTg1LjUtMS4zLTEwMy43LDM3LjcKCQkJYy0xOC4xLDM5LTEuMSw4NS40LDM4LDEwMy41YzAuOSwwLjQsMS44LDAuOCwyLjYsMS4xQzI1LjgsMjAxLjEsMTIuOCwxNTksMjkuNCwxMjMuM3oiLz4KCTwvZz4KCTxnPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik00MDkuMywxNjYuNWMwLDIuMi0wLjMsNC4xLTAuOCw1LjljLTAuNSwxLjctMS4zLDMuMy0yLjIsNC42cy0yLDIuNS0zLjIsMy40cy0yLjUsMS43LTMuOCwyLjMKCQkJYy0xLjMsMC42LTIuNiwxLTQsMS4zYy0xLjMsMC4zLTIuNiwwLjQtMy44LDAuNEgzNDl2LTExaDQyLjVjMi4xLDAsMy44LTAuNiw0LjktMS45YzEuMi0xLjIsMS44LTIuOSwxLjgtNWMwLTEtMC4yLTEuOS0wLjUtMi44CgkJCXMtMC44LTEuNi0xLjMtMi4yYy0wLjYtMC42LTEuMy0xLjEtMi4xLTEuNGMtMC44LTAuMy0xLjgtMC41LTIuOC0wLjVoLTI1LjNjLTEuOCwwLTMuNy0wLjMtNS44LTFjLTIuMS0wLjYtNC0xLjctNS43LTMuMQoJCQljLTEuOC0xLjQtMy4yLTMuMy00LjQtNS41Yy0xLjItMi4zLTEuOC01LjEtMS44LTguNHMwLjYtNi4xLDEuOC04LjRjMS4yLTIuMywyLjYtNC4xLDQuNC01LjVzMy43LTIuNSw1LjctMy4xYzIuMS0wLjYsNC0xLDUuOC0xCgkJCWgzNy41djExaC0zNy41Yy0yLjEsMC0zLjcsMC42LTQuOSwxLjlzLTEuOCwzLTEuOCw1YzAsMi4xLDAuNiwzLjgsMS44LDVjMS4yLDEuMiwyLjgsMS44LDQuOSwxLjhoMjUuM2gwLjFjMS4yLDAsMi40LDAuMiwzLjgsMC41CgkJCWMxLjMsMC4zLDIuNiwwLjgsNCwxLjRjMS4zLDAuNiwyLjYsMS40LDMuNywyLjNjMS4yLDAuOSwyLjIsMi4xLDMuMiwzLjRjMC45LDEuMywxLjYsMi45LDIuMiw0LjYKCQkJQzQwOS4xLDE2Mi40LDQwOS4zLDE2NC4zLDQwOS4zLDE2Ni41eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik00NzkuMSwxNTljMCwzLjctMC42LDcuMS0xLjksMTAuMmMtMS4zLDMuMS0zLjEsNS44LTUuMyw4Yy0yLjMsMi4yLTQuOSw0LTgsNS4zcy02LjUsMS45LTEwLjEsMS45aC0yOS43CgkJCWMtMC44LDAtMS41LTAuMS0yLjItMC40cy0xLjMtMC43LTEuOC0xLjJzLTAuOS0xLjEtMS4yLTEuOGMtMC4zLTAuNy0wLjQtMS40LTAuNC0yLjJ2LTQ5LjZjMC0wLjgsMC4xLTEuNSwwLjQtMi4yCgkJCXMwLjctMS4zLDEuMi0xLjhzMS4xLTAuOSwxLjgtMS4yYzAuNy0wLjMsMS40LTAuNCwyLjItMC40aDI5LjdjMy42LDAsNywwLjYsMTAuMSwxLjlzNS44LDMsOCw1LjNjMi4zLDIuMiw0LDQuOSw1LjMsOAoJCQlzMS45LDYuNSwxLjksMTAuMlYxNTl6IE00NjguMSwxNDkuMWMwLTIuMS0wLjMtNC4xLTEtNS45cy0xLjctMy4zLTIuOS00LjZjLTEuMy0xLjMtMi44LTIuMi00LjYtMi45Yy0xLjgtMC43LTMuNy0xLTUuOS0xaC0yNC4zCgkJCXYzOC43aDI0LjNjMi4xLDAsNC4xLTAuMyw1LjktMXMzLjMtMS43LDQuNi0yLjljMS4zLTEuMywyLjMtMi44LDIuOS00LjVjMC43LTEuOCwxLTMuNywxLTUuOVYxNDkuMXoiLz4KCQk8cGF0aCBjbGFzcz0ic3QzIiBkPSJNNTQ5LjIsMTIzLjdsLTI4LjcsNTguNmMtMC41LDAuOS0xLjEsMS42LTIsMi4yYy0wLjksMC41LTEuOSwwLjgtMi45LDAuOHMtMi0wLjMtMi45LTAuOAoJCQljLTAuOS0wLjYtMS42LTEuMy0yLjEtMi4ybC0yOC43LTU4LjZoMTIuM2wyMS4zLDQzLjdsMjEuNC00My43SDU0OS4yeiIvPgoJPC9nPgoJPGc+CgkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTY3LjYsMjIyLjN2LTIxLjloMTQuMnY0LjFoLTkuMXY0LjVoOC42djQuMWgtOC42djUuMWg5LjR2NC4ySDY3LjZWMjIyLjN6Ii8+CgkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTkxLjksMjIyLjdjLTQuMywwLTguMi0yLjktOC4yLTguMXM0LTguMSw4LjMtOC4xYzQsMCw1LjgsMS42LDUuOCwxLjZsLTEuMSwzLjhjLTAuNC0wLjMtMS44LTEuNC00LTEuNAoJCQlzLTMuOSwxLjUtMy45LDRzMS42LDQsMy45LDRjMi40LDAsNC0xLjUsNC0xLjVsMS4yLDMuOEM5Ny43LDIyMC45LDk2LDIyMi43LDkxLjksMjIyLjd6Ii8+CgkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTEwMCwyMjIuM3YtMjEuOWg1LjF2MjEuOUgxMDB6Ii8+CgkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTExMS4xLDIwNC45Yy0xLjcsMC0yLjktMS0yLjktMi42czEuMi0yLjYsMi45LTIuNnMyLjksMS4xLDIuOSwyLjZTMTEyLjgsMjA0LjksMTExLjEsMjA0Ljl6IE0xMDguNiwyMjIuMwoJCQl2LTE1LjZoNS4xdjE1LjZIMTA4LjZ6Ii8+CgkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTEyNy4xLDIyMi43Yy0yLjMsMC00LTAuOS00LjktMi4zdjcuN2gtNS4xdi0yMS40aDQuOHYyaDAuMWMxLjEtMS40LDIuOC0yLjMsNS4yLTIuM2M0LjUsMCw3LjQsMy41LDcuNCw4LjEKCQkJUzEzMS43LDIyMi43LDEyNy4xLDIyMi43eiBNMTI1LjcsMjEwLjRjLTIuMiwwLTMuNiwxLjYtMy42LDQuMWMwLDIuNCwxLjUsNC4xLDMuNiw0LjFjMi4yLDAsMy43LTEuNiwzLjctNC4xCgkJCUMxMjkuNCwyMTIuMSwxMjcuOSwyMTAuNCwxMjUuNywyMTAuNHoiLz4KCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNMTQyLjMsMjIyLjdjLTIuMywwLTQuOC0wLjctNi42LTIuNGwxLjktM2MxLjMsMS4xLDMuNCwxLjksNC42LDEuOWMxLjMsMCwyLjItMC4zLDIuMi0xLjNzLTIuMy0xLjUtMi45LTEuNwoJCQljLTIuNi0wLjctNC45LTEuNi00LjktNC44YzAtMywyLjctNC45LDUuOS00LjljMy4zLDAsNS4xLDEuMiw2LDEuOWwtMS42LDNjLTAuOS0wLjctMi43LTEuNS0zLjktMS41cy0xLjksMC4zLTEuOSwxLjEKCQkJczEuMiwxLjIsMi4zLDEuNWMyLjcsMC44LDUuNSwxLjYsNS41LDUuMUMxNDguOSwyMjEuMywxNDUuNSwyMjIuNywxNDIuMywyMjIuN3oiLz4KCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNMTY2LjUsMjE1LjdoLTExLjFjMC4yLDIuMywxLjksMy4zLDQsMy4zYzIsMCwzLjgtMC45LDQuNy0xLjVsMiwyLjZjLTAuNSwwLjQtMi42LDIuNS03LjQsMi41CgkJCWMtNC44LDAtOC4zLTMtOC4zLTguMWMwLTUuMiwzLjgtOC4xLDguNC04LjFzNy44LDMuMSw3LjgsNy42QzE2Ni42LDIxNC44LDE2Ni41LDIxNS43LDE2Ni41LDIxNS43eiBNMTU4LjcsMjA5LjcKCQkJYy0yLjEsMC0zLjIsMS42LTMuMiwzLjFoNi40QzE2MS45LDIxMS40LDE2MC44LDIwOS43LDE1OC43LDIwOS43eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0xODEuOCwyMjIuN2MtMy4yLDAtNi0xLjYtNy44LTMuM2wyLjUtMy43YzEuNiwxLjYsNCwyLjgsNS43LDIuOGMxLjYsMCwyLjktMC44LDIuOS0yLjNzLTEuNi0yLjEtMi42LTIuNAoJCQlzLTIuNi0wLjktMy4zLTEuMmMtMC41LTAuMy0xLjYtMC43LTIuNi0xLjZzLTEuNy0yLjItMS43LTQuMmMwLTIuMSwxLTMuNywyLjMtNC44YzEuMi0xLDMuMi0xLjcsNS44LTEuN3M1LjUsMS4yLDYuOSwyLjcKCQkJbC0yLjIsMy42Yy0xLjMtMS4zLTMuMi0yLjItNC45LTIuMmMtMS42LDAtMi45LDAuNi0yLjksMnMxLjIsMS44LDIuMiwyLjJjMSwwLjQsMi42LDEsMy4zLDEuMmMyLjgsMSw0LjgsMi44LDQuOCw2CgkJCUMxOTAuMywyMjAuNCwxODYsMjIyLjcsMTgxLjgsMjIyLjd6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTIwMC41LDIyMi43Yy00LjksMC04LjctMy4xLTguNy04LjFzMy43LTguMSw4LjctOC4xYzQuOSwwLDguNywzLjEsOC43LDguMQoJCQlDMjA5LjEsMjE5LjYsMjA1LjQsMjIyLjcsMjAwLjUsMjIyLjd6IE0yMDAuNSwyMTAuNGMtMi4zLDAtMy42LDEuNy0zLjYsNC4xczEuMyw0LjEsMy42LDQuMWMyLjIsMCwzLjYtMS43LDMuNi00LjEKCQkJUzIwMi43LDIxMC40LDIwMC41LDIxMC40eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0yMjcuNywyMTAuNnY1LjZjMCwxLjQsMC4xLDIuMywxLjYsMi4zYzAuOCwwLDEuNS0wLjMsMS41LTAuM2wwLjMsNGMtMC40LDAuMS0xLjgsMC41LTMuNiwwLjUKCQkJYy00LjEsMC00LjktMi41LTQuOS02LjF2LTYuMWgtNS4zdjExLjhoLTUuMXYtMTEuOGgtMnYtMy44aDJ2LTAuOWMwLTMuNywxLjgtNS44LDUuNi01LjhjMiwwLDMuNSwwLjQsMy41LDAuNGwtMC4zLDMuNQoJCQljMCwwLTEtMC4zLTEuOS0wLjNjLTEuNSwwLTEuOSwwLjktMS45LDJ2MWg1LjN2LTQuMmg1LjF2NC4yaDMuNXYzLjhoLTMuNFYyMTAuNnoiLz4KCQk8cGF0aCBjbGFzcz0ic3QzIiBkPSJNMjUyLjQsMjIyLjNoLTQuOGwtMy05LjZsLTMuMSw5LjZoLTQuOGwtNS4xLTE1LjZoNS4xbDIuOCwxMGwzLTEwaDQuMmwzLDEwbDIuOC0xMGg1LjFMMjUyLjQsMjIyLjN6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTI2OC42LDIyMi4zbC0wLjEtMS42Yy0wLjcsMC43LTEuOSwyLTQuNSwyYy0yLjgsMC01LjctMS41LTUuNy01czMuMi00LjcsNi4xLTQuOGwzLjktMC4ydi0wLjMKCQkJYzAtMS42LTEuMi0yLjUtMy4yLTIuNXMtNCwwLjktNC44LDEuNEwyNTksMjA4YzEuMy0wLjcsMy44LTEuNiw2LjctMS42YzQuOSwwLDcuNywyLDcuNyw3LjF2OC44SDI2OC42eiBNMjY1LjksMjE1LjYKCQkJYy0xLjYsMC4xLTIuNSwwLjctMi41LDEuOWMwLDEuMiwxLDEuOSwyLjQsMS45czIuMy0wLjksMi42LTEuNHYtMi42TDI2NS45LDIxNS42eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0yODYuOSwyMTEuNGgtMC4yYy0wLjMtMC4yLTEtMC40LTEuOC0wLjRjLTIuNSwwLTMuMSwyLjMtMy4xLDQuNHY2LjloLTUuMXYtMTUuNmg1LjF2Mi4yaDAuMQoJCQljMC45LTEuNywyLjItMi41LDMuOS0yLjVjMSwwLDEuNiwwLjMsMS42LDAuM0wyODYuOSwyMTEuNHoiLz4KCQk8cGF0aCBjbGFzcz0ic3QzIiBkPSJNMzA0LDIxNS43aC0xMS4xYzAuMiwyLjMsMS45LDMuMyw0LDMuM2MyLDAsMy44LTAuOSw0LjctMS41bDIsMi42Yy0wLjUsMC40LTIuNiwyLjUtNy40LDIuNXMtOC4zLTMtOC4zLTguMQoJCQljMC01LjIsMy44LTguMSw4LjQtOC4xczcuOCwzLjEsNy44LDcuNkMzMDQuMSwyMTQuOCwzMDQsMjE1LjcsMzA0LDIxNS43eiBNMjk2LjEsMjA5LjdjLTIuMSwwLTMuMiwxLjYtMy4yLDMuMWg2LjQKCQkJQzI5OS4zLDIxMS40LDI5OC4zLDIwOS43LDI5Ni4xLDIwOS43eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0zMjAuNCwyMjIuM0gzMTN2LTIxLjloNy40YzYuOSwwLDEyLDMuNiwxMiwxMC45QzMzMi40LDIxOC43LDMyNy4zLDIyMi4zLDMyMC40LDIyMi4zeiBNMzIwLjcsMjA0LjdoLTIuNgoJCQlWMjE4aDIuNmM0LjEsMCw2LjUtMi41LDYuNS02LjZTMzI0LjgsMjA0LjcsMzIwLjcsMjA0Ljd6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTM1MC4yLDIxNS43aC0xMS4xYzAuMiwyLjMsMS45LDMuMyw0LDMuM2MyLDAsMy44LTAuOSw0LjctMS41bDIsMi42Yy0wLjUsMC40LTIuNiwyLjUtNy40LDIuNQoJCQlzLTguMy0zLTguMy04LjFjMC01LjIsMy44LTguMSw4LjQtOC4xczcuOCwzLjEsNy44LDcuNkMzNTAuMywyMTQuOCwzNTAuMiwyMTUuNywzNTAuMiwyMTUuN3ogTTM0Mi40LDIwOS43CgkJCWMtMi4xLDAtMy4yLDEuNi0zLjIsMy4xaDYuNEMzNDUuNSwyMTEuNCwzNDQuNSwyMDkuNywzNDIuNCwyMDkuN3oiLz4KCQk8cGF0aCBjbGFzcz0ic3QzIiBkPSJNMzYwLjMsMjAzLjdjLTEuNywwLTEuOSwxLjItMS45LDIuNHYwLjZoMy40djMuOGgtMy40djExLjhoLTUuMXYtMTEuOGgtMnYtMy44aDJ2LTAuOWMwLTMuOCwxLjgtNS44LDUuNy01LjgKCQkJYzEuNywwLDMuMywwLjQsMy4zLDAuNGwtMC4zLDMuNUMzNjEuNSwyMDMuOCwzNjAuOSwyMDMuNywzNjAuMywyMDMuN3ogTTM2NS45LDIwNC45Yy0xLjcsMC0yLjktMS0yLjktMi42czEuMi0yLjYsMi45LTIuNgoJCQljMS43LDAsMi45LDEuMSwyLjksMi42UzM2Ny42LDIwNC45LDM2NS45LDIwNC45eiBNMzYzLjQsMjIyLjN2LTE1LjZoNS4xdjE1LjZIMzYzLjR6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTM4Mi4xLDIyMi4zdi04LjFjMC0yLjEtMC4zLTMuNi0yLjQtMy42Yy0yLjIsMC0yLjgsMS44LTIuOCw0djcuN2gtNS4xdi0xNS42aDUuMXYyLjNoMC4xCgkJCWMwLjktMS40LDIuMy0yLjUsNC41LTIuNWM0LjUsMCw1LjcsMi45LDUuNyw2Ljd2OS4yaC01LjFWMjIyLjN6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTQwNS44LDIxNS43aC0xMS4xYzAuMiwyLjMsMS45LDMuMyw0LDMuM2MyLDAsMy44LTAuOSw0LjctMS41bDIsMi42Yy0wLjUsMC40LTIuNiwyLjUtNy40LDIuNQoJCQlzLTguMy0zLTguMy04LjFjMC01LjIsMy44LTguMSw4LjQtOC4xczcuOCwzLjEsNy44LDcuNkM0MDUuOCwyMTQuOCw0MDUuOCwyMTUuNyw0MDUuOCwyMTUuN3ogTTM5Ny45LDIwOS43CgkJCWMtMi4xLDAtMy4yLDEuNi0zLjIsMy4xaDYuNEM0MDEuMSwyMTEuNCw0MDAsMjA5LjcsMzk3LjksMjA5Ljd6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTQyMCwyMjIuM3YtMi4xaC0wLjFjLTEuMiwxLjYtMywyLjQtNS4xLDIuNGMtNC41LDAtNy40LTMuNi03LjQtOC4xczIuOS04LjEsNy40LTguMWMyLjksMCw0LjQsMS40LDQuOSwyLjIKCQkJdi04LjFoNS4xdjIxLjlMNDIwLDIyMi4zTDQyMCwyMjIuM3ogTTQxNi4zLDIxMC40Yy0yLjIsMC0zLjcsMS42LTMuNyw0LjFjMCwyLjQsMS41LDQuMSwzLjcsNC4xczMuNi0xLjYsMy42LTQuMQoJCQlDNDE5LjksMjEyLjEsNDE4LjQsMjEwLjQsNDE2LjMsMjEwLjR6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTQ0NS43LDIyMi4zaC00LjlsLTguMS0yMS45aDUuNWw1LjEsMTUuMWw1LjEtMTUuMWg1LjRMNDQ1LjcsMjIyLjN6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTQ3MC4yLDIxNS43aC0xMS4xYzAuMiwyLjMsMS45LDMuMyw0LDMuM2MyLDAsMy44LTAuOSw0LjctMS41bDIsMi42Yy0wLjUsMC40LTIuNiwyLjUtNy40LDIuNQoJCQlzLTguMy0zLTguMy04LjFjMC01LjIsMy44LTguMSw4LjQtOC4xczcuOCwzLjEsNy44LDcuNkM0NzAuMywyMTQuOCw0NzAuMiwyMTUuNyw0NzAuMiwyMTUuN3ogTTQ2Mi4zLDIwOS43CgkJCWMtMi4xLDAtMy4yLDEuNi0zLjIsMy4xaDYuNEM0NjUuNSwyMTEuNCw0NjQuNSwyMDkuNyw0NjIuMywyMDkuN3oiLz4KCQk8cGF0aCBjbGFzcz0ic3QzIiBkPSJNNDgzLDIyMi4zdi04LjJjMC0xLjktMC4zLTMuNi0yLjQtMy42cy0yLjgsMS44LTIuOCw0LjF2Ny43aC01LjF2LTIxLjloNS4xdjUuMmMwLDEuNiwwLDMuMywwLDMuMwoJCQljMC44LTEuNCwyLjMtMi41LDQuNi0yLjVjNC41LDAsNS43LDIuOSw1LjcsNi43djkuMkw0ODMsMjIyLjNMNDgzLDIyMi4zeiIvPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik00OTMuOSwyMDQuOWMtMS43LDAtMi45LTEtMi45LTIuNnMxLjItMi42LDIuOS0yLjZzMi45LDEuMSwyLjksMi42QzQ5Ni44LDIwMy44LDQ5NS42LDIwNC45LDQ5My45LDIwNC45egoJCQkgTTQ5MS40LDIyMi4zdi0xNS42aDUuMXYxNS42SDQ5MS40eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik01MDcuMiwyMjIuN2MtNC4zLDAtOC4yLTIuOS04LjItOC4xczQtOC4xLDguMy04LjFjNCwwLDUuOCwxLjYsNS44LDEuNmwtMS4xLDMuOGMtMC40LTAuMy0xLjgtMS40LTQtMS40CgkJCXMtMy45LDEuNS0zLjksNHMxLjYsNCwzLjksNHM0LTEuNSw0LTEuNWwxLjIsMy44QzUxMywyMjAuOSw1MTEuMywyMjIuNyw1MDcuMiwyMjIuN3oiLz4KCQk8cGF0aCBjbGFzcz0ic3QzIiBkPSJNNTE1LjMsMjIyLjN2LTIxLjloNS4xdjIxLjlINTE1LjN6Ii8+CgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTUzOS4xLDIxNS43SDUyOGMwLjIsMi4zLDEuOSwzLjMsNCwzLjNjMiwwLDMuOC0wLjksNC43LTEuNWwyLDIuNmMtMC41LDAuNC0yLjYsMi41LTcuNCwyLjUKCQkJYy00LjgsMC04LjMtMy04LjMtOC4xYzAtNS4yLDMuOC04LjEsOC40LTguMXM3LjgsMy4xLDcuOCw3LjZDNTM5LjEsMjE0LjgsNTM5LjEsMjE1LjcsNTM5LjEsMjE1Ljd6IE01MzEuMiwyMDkuNwoJCQljLTIuMSwwLTMuMiwxLjYtMy4yLDMuMWg2LjRDNTM0LjQsMjExLjQsNTMzLjMsMjA5LjcsNTMxLjIsMjA5Ljd6Ii8+Cgk8L2c+CjwvZz4KPHJlY3QgeD0iNTk5LjIiIHk9IjYyLjYiIGNsYXNzPSJzdDQiIHdpZHRoPSI0NCIgaGVpZ2h0PSIzMiIvPgo8ZyBjbGFzcz0ic3Q1Ij4KCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik02MDYuMyw2NC40aC0yLjh2NS43aC0xLjN2LTUuN2gtMi44di0xLjNoNi45VjY0LjR6Ii8+Cgk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNNjE1LjMsNzAuMWgtMS4zdi00LjJsLTIuMyw0Yy0wLjEsMC4xLTAuMSwwLjItMC4yLDAuMmMtMC4xLDAuMS0wLjIsMC4xLTAuMywwLjFjLTAuMSwwLTAuMiwwLTAuMy0wLjEKCQljLTAuMS0wLjEtMC4yLTAuMS0wLjItMC4ybC0yLjMtNHY0LjJoLTEuM3YtNi41YzAtMC4xLDAtMC4zLDAuMS0wLjRjMC4xLTAuMSwwLjItMC4yLDAuMy0wLjJjMC4xLDAsMC4xLDAsMC4yLDBjMC4xLDAsMC4xLDAsMC4yLDAKCQljMC4xLDAsMC4xLDAuMSwwLjIsMC4xYzAuMSwwLDAuMSwwLjEsMC4xLDAuMmwyLjksNWwyLjktNWMwLjEtMC4xLDAuMi0wLjIsMC4zLTAuM2MwLjEtMC4xLDAuMy0wLjEsMC40LDBjMC4xLDAsMC4yLDAuMSwwLjMsMC4yCgkJczAuMSwwLjIsMC4xLDAuNFY3MC4xeiIvPgo8L2c+Cjwvc3ZnPgo="/></g><g><image x="871.5" y="419.52" width="61.48" height="19.99" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjgzcHgiIGhlaWdodD0iOTJweCIgdmlld0JveD0iMCAwIDI4MyA5MiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWxuczpza2V0Y2g9Imh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaC9ucyI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDMuMy4zICgxMjA3MikgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+ZWNsaXBzZS1mb3VuZGF0aW9uLWdyZXktb3JhbmdlPC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc2tldGNoOnR5cGU9Ik1TUGFnZSI+CiAgICAgICAgPGcgaWQ9ImVjbGlwc2UtZm91bmRhdGlvbi1ncmV5LW9yYW5nZSIgc2tldGNoOnR5cGU9Ik1TTGF5ZXJHcm91cCI+CiAgICAgICAgICAgIDxnIGlkPSJMYXllcl8xIiBza2V0Y2g6dHlwZT0iTVNTaGFwZUdyb3VwIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNjYuNTYsODQuMyBMMjU3Ljg5LDczLjMgTDI1NS4xOCw3My4zIEwyNTUuMTgsOTEgTDI1OC41Miw5MSBMMjU4LjUyLDc5IEwyNjcuODMsOTEgTDI2OS45LDkxIEwyNjkuOSw3My4zMSBMMjY2LjU2LDczLjMxIEwyNjYuNTYsODQuMyBaIE0yMzQuMTUsNzYgQzIzOC4zMiw3NiAyMzkuOTksNzkuMzQgMjM5Ljk0LDgyLjMzIEMyMzkuODksODUuMzIgMjM4LjMyLDg4LjMzIDIzNC4xNSw4OC4zMyBDMjI5Ljk4LDg4LjMzIDIyOC40MSw4NS4yMiAyMjguMzQsODIuMzMgQzIyOC4yNyw3OS40NCAyMzAsNzYgMjM0LjE1LDc2IEwyMzQuMTUsNzYgWiBNMjM0LjE1LDczIEMyMjguMDMsNzMgMjI1LjA1LDc3LjY4IDIyNS4wNSw4Mi4zMyBDMjI1LjA1LDg2Ljk4IDIyNy45Myw5MS40NiAyMzQuMTUsOTEuNDYgQzI0MC4zNyw5MS40NiAyNDMuMTUsODYuODggMjQzLjIzLDgyLjMgQzI0My4zMSw3Ny43MiAyNDAuMjUsNzMgMjM0LjE1LDczIEwyMzQuMTUsNzMgWiBNMjEyLjkyLDkxIEwyMTIuOTIsNzMuMzEgTDIwOS42LDczLjMxIEwyMDkuNiw5MSBMMjEyLjkyLDkxIFogTTE4OS4zNiw5MSBMMTkyLjcsOTEgTDE5Mi43LDc2LjM0IEwxOTguMzEsNzYuMzQgTDE5OC4zMSw3My4zNCBMMTgzLjc0LDczLjM0IEwxODMuNzQsNzYuMzQgTDE4OS4zNiw3Ni4zNCBMMTg5LjM2LDkxIFogTTE3MC40NSw4NC41NiBMMTYzLjg3LDg0LjU2IEwxNjcuMTYsNzcgTDE3MC40NSw4NC41NiBaIE0xNzMuMjgsOTEgTDE3Ni45Miw5MSBMMTY5LDczLjMxIEwxNjUuMzYsNzMuMzEgTDE1Ny40LDkxIEwxNjEsOTEgTDE2Mi41MSw4Ny42NyBMMTcxLjc3LDg3LjY3IEwxNzMuMjgsOTEgWiBNMTM1LjI4LDc2LjQ0IEwxMzguOTIsNzYuNDQgQzE0Mi43Nyw3Ni40NCAxNDQuMzgsNzkuMiAxNDQuNDYsODEuOTYgQzE0NC41NCw4NC43MiAxNDIuOTQsODcuNzkgMTM4LjkyLDg3Ljc5IEwxMzUuMjgsODcuNzkgTDEzNS4yOCw3Ni40NCBaIE0xMzguOTIsNzMuMjggTDEzMiw3My4yOCBMMTMyLDkxIEwxMzguOTUsOTEgQzE0NS4xNSw5MSAxNDcuODgsODYuNDggMTQ3LjgsODIgQzE0Ny43Miw3Ny41MiAxNDUsNzMuMzEgMTM4LjkyLDczLjMxIEwxMzguOTIsNzMuMjggWiBNMTE2LjU1LDg0LjI4IEwxMDcuODgsNzMuMjggTDEwNS4xNyw3My4yOCBMMTA1LjE3LDkxIEwxMDguNTEsOTEgTDEwOC41MSw3OSBMMTE3LjgxLDkxIEwxMTkuODksOTEgTDExOS44OSw3My4zMSBMMTE2LjU1LDczLjMxIEwxMTYuNTUsODQuMjggWiBNODkuMDksNzMuMzQgTDg5LjA5LDgzLjUgQzg5LjA5LDg2LjUgODcuNTMsODguMzggODQuNzcsODguMzggQzgyLjAxLDg4LjM4IDgwLjE5LDg2LjY5IDgwLjE5LDgzLjUgTDgwLjE5LDczLjM2IEw3Ni44OCw3My4zNiBMNzYuODgsODMuNSBDNzYuODgsODguODMgODAuNSw5MS40MSA4NC43NCw5MS40MSBDODkuMTksOTEuNDEgOTIuNDEsODguNzMgOTIuNDEsODMuNSBMOTIuNDEsNzMuMzYgTDg5LjA5LDczLjM0IFogTTU2LjA5LDc1Ljk5IEM2MC4yNiw3NS45OSA2MS45Myw3OS4zMyA2MS44OCw4Mi4zMiBDNjEuODMsODUuMzEgNjAuMjYsODguMzIgNTYuMDksODguMzIgQzUxLjkyLDg4LjMyIDUwLjM1LDg1LjIxIDUwLjI3LDgyLjMyIEM1MC4xOSw3OS40MyA1MS45Myw3NiA1Ni4xLDc2IEw1Ni4wOSw3NS45OSBaIE01Ni4wOSw3Mi45OSBDNDkuOTcsNzIuOTkgNDYuOTksNzcuNjcgNDYuOTksODIuMzIgQzQ2Ljk5LDg2Ljk3IDQ5Ljg3LDkxLjQ1IDU2LjA5LDkxLjQ1IEM2Mi4zMSw5MS40NSA2NS4wOSw4Ni44NyA2NS4xNyw4Mi4yOSBDNjUuMjUsNzcuNzEgNjIuMTksNzMgNTYuMSw3MyBMNTYuMDksNzIuOTkgWiBNMjYuMzIsOTEgTDI2LjMyLDg0LjQ2IEwzNS4xOSw4NC40NiBMMzUuMTksODEuNCBMMjYuMzIsODEuNCBMMjYuMzIsNzYuNTcgTDM1LjcsNzYuNTcgTDM1LjcsNzMuMzYgTDIzLDczLjM2IEwyMyw5MSBMMjYuMzIsOTEgWiIgaWQ9IlNoYXBlIiBmaWxsPSIjRjc5NDIyIj48L3BhdGg+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjcwLjIzLDU0Ljc1IEwyNDguMDYsNTQuNzUgTDI0OC4wNiw0NS44NCBMMjY5LjQ0LDQ1Ljg0IEwyNjkuNDQsMzguOSBMMjQ4LjA2LDM4LjkgTDI0OC4wNiwyOS43NiBMMjcwLjIzLDI5Ljc2IEwyNzAuMjMsMjIuNTQgTDI0MC42NywyMi41NCBMMjQwLjY3LDYyLjA4IEwyNzAuMjMsNjIuMDggTDI3MC4yMyw1NC43NSBaIE0yMzAuMjMsMjkuMDkgQzIyNy4yMywyMi45OSAyMjAuODcsMjEuMjUgMjE0LjcyLDIxLjI1IEMyMDcuNDQsMjEuMjUgMTk5LjQzLDI0LjYzIDE5OS40MywzMi43NSBDMTk5LjQzLDQxLjYxIDIwNi44OCw0My43NSAyMTQuOTQsNDQuNzUgQzIyMC4xOSw0NS4zMSAyMjQuMDgsNDYuODQgMjI0LjA4LDUwLjU2IEMyMjQuMDgsNTQuODUgMjE5LjY4LDU2LjQ4IDIxNSw1Ni40OCBDMjEwLjMyLDU2LjQ4IDIwNS42NCw1NC41NiAyMDMuODksNTAuMjIgTDE5Ny42OCw1My40NCBDMjAwLjYyLDYwLjY2IDIwNi44Miw2My4xNCAyMTQuODksNjMuMTQgQzIyMy42OSw2My4xNCAyMzEuNDcsNTkuMzYgMjMxLjQ3LDUwLjU2IEMyMzEuNDcsNDEuMTQgMjIzLjgsMzkgMjE1LjU2LDM3Ljk4IEMyMTAuODMsMzcuNDIgMjA2Ljc3LDM2LjQ2IDIwNi43NywzMi45OCBDMjA2Ljc3LDMwLjA1IDIwOS40MiwyNy43MyAyMTQuOTQsMjcuNzMgQzIxOS4yMywyNy43MyAyMjIuOTQsMjkuODggMjI0LjMxLDMyLjEzIEwyMzAuMjMsMjkuMDkgWiBNMTc2Ljg5LDIyLjU0IEMxNzAuNjgsMjIuNDkgMTY0LjQ4LDIyLjU0IDE1OC4yNywyMi41NCBMMTU4LjI3LDYyLjA4IEwxNjUuNzIsNjIuMDggTDE2NS43Miw1MC40NiBMMTc2Ljg5LDUwLjQ2IEMxOTYuMjUsNTAuNDYgMTk2LjIsMjIuNTQgMTc2LjkxLDIyLjU0IEwxNzYuODksMjIuNTQgWiBNMTY1LjcyLDI5LjY1IEwxNzYuODksMjkuNjUgQzE4Ni4zNiwyOS42NSAxODYuNDIsNDMuNjUgMTc2Ljg5LDQzLjY1IEwxNjUuNzQsNDMuNjUgTDE2NS43MiwyOS42NSBaIE0xNDcuNzIsNjIuMDggTDE0Ny43MiwyMi41NCBMMTQwLjMzLDIyLjU0IEwxNDAuMzMsNjIuMDggTDE0Ny43Miw2Mi4wOCBaIE0xMDMuNzIsMjIuNTQgTDEwMy43Miw2Mi4wOCBMMTMxLjQ3LDYyLjA4IEwxMzEuNDcsNTUuMiBMMTExLjIyLDU1LjIgTDExMS4yMiwyMi41NCBMMTAzLjcyLDIyLjU0IFogTTkxLjU1LDUyIEM4OC44NzIyMzQsNTQuNTQ2MTg2NyA4NS4zMjQ5ODk0LDU1Ljk3NjUyNzMgODEuNjMsNTYgQzcxLjg3LDU2IDY4LjA5LDQ5LjE4IDY4LjAzLDQyLjYzIEM2Ny45NywzNi4wOCA3Mi4wOSwyOC45MyA4MS42MywyOC45MyBDODUuMTcwNTIyLDI4Ljg3ODE2MTkgODguNTkwODc1NywzMC4yMTMyODQyIDkxLjE2LDMyLjY1IEw5Ni4xNiwyNy44NiBDOTIuMzI1NjA0NSwyNC4wMDQ0MTAxIDg3LjEwNzYzNzIsMjEuODQzNzYxMSA4MS42NywyMS44NiBDNjcuNCwyMS44NiA2MC42NywzMi4zNSA2MC43NCw0Mi42NyBDNjAuODEsNTIuOTkgNjcsNjMgODEuNjMsNjMgQzg3LjIxNDg1MDEsNjMuMTMzOTQ0NCA5Mi42MTk0NDE2LDYxLjAxODk0NzYgOTYuNjMsNTcuMTMgTDkxLjU1LDUyIFogTTUyLjU1LDU0Ljc2IEwzMC4zNyw1NC43NiBMMzAuMzcsNDUuODQgTDUxLjc1LDQ1Ljg0IEw1MS43NSwzOC45IEwzMC4zNywzOC45IEwzMC4zNywyOS43NiBMNTIuNTQsMjkuNzYgTDUyLjU0LDIyLjU0IEwyMywyMi41NCBMMjMsNjIuMDggTDUyLjU2LDYyLjA4IEw1Mi41NSw1NC43NiBaIiBpZD0iU2hhcGUiIGZpbGw9IiMzRDNDM0IiPjwvcGF0aD4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC42NiwxOC41MiBDMTkuNjYsNC40MiAzNy44MSwtMC40OCA1Mi45MSw2LjI3IEw1MS45MSw1LjU4IEMzNi40OTI5NzEyLC00LjMwNTg5NzAyIDE1Ljk4MDg5NywwLjE3Nzk3MTIwOCA2LjA5NSwxNS41OTUgQy0zLjc5MDg5NzAyLDMxLjAxMjAyODggMC42OTI5NzEyMDgsNTEuNTI0MTAzIDE2LjExLDYxLjQxIEwxNy4xNiw2Mi4wNCBDNC42OSw1MS4xNCAxLjYxLDMyLjYzIDEwLjY2LDE4LjUyIEwxMC42NiwxOC41MiBaIiBpZD0iU2hhcGUiIGZpbGw9IiNGNzk0MjIiPjwvcGF0aD4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNzMsMjYuNDEgTDI3MywyNi40MSBDMjczLDIzLjg4MDUzNTggMjc1LjA1MDUzNiwyMS44MyAyNzcuNTgsMjEuODMgQzI4MC4xMDk0NjQsMjEuODMgMjgyLjE2LDIzLjg4MDUzNTggMjgyLjE2LDI2LjQxIEwyODIuMTYsMjYuNDEgQzI4Mi4xNiwyOC45Mzk0NjQyIDI4MC4xMDk0NjQsMzAuOTkgMjc3LjU4LDMwLjk5IEMyNzUuMDUwNTM2LDMwLjk5IDI3MywyOC45Mzk0NjQyIDI3MywyNi40MSBMMjczLDI2LjQxIFogTTI4MS42MywyNi40MSBMMjgxLjYzLDI2LjQxIEMyODEuNjMsMjQuMTczMjQ2OCAyNzkuODE2NzUzLDIyLjM2IDI3Ny41OCwyMi4zNiBDMjc1LjM0MzI0NywyMi4zNiAyNzMuNTMsMjQuMTczMjQ2OCAyNzMuNTMsMjYuNDEgTDI3My41MywyNi40MSBDMjczLjUwODI0LDI3LjQ5MzM4NjkgMjczLjkyNjk1NywyOC41MzkyNDY3IDI3NC42OTAzNDksMjkuMzA4MjkzNiBDMjc1LjQ1Mzc0MSwzMC4wNzczNDA1IDI3Ni40OTY0ODIsMzAuNTAzNzYzNiAyNzcuNTgsMzAuNDkgQzI3OC42Njk4NiwzMC40OTU0MDg0IDI3OS43MTYzNTcsMzAuMDYzNDgxMiAyODAuNDg1MTMyLDI5LjI5MDk0NjggQzI4MS4yNTM5MDcsMjguNTE4NDEyNSAyODEuNjgwNzI1LDI3LjQ2OTgyMDggMjgxLjY3LDI2LjM4IEwyODEuNjMsMjYuNDEgWiBNMjc1LjY5LDIzLjk0IEwyNzgsMjMuOTQgQzI3OS4xMSwyMy45NCAyNzkuOTIsMjQuNDQgMjc5LjkyLDI1LjUyIEMyNzkuOTUxNzY2LDI2LjIwODgzOCAyNzkuNDk3MjUsMjYuODI1OTc4IDI3OC44MywyNyBMMjgwLDI4LjY3IEwyNzguNjEsMjguNjcgTDI3Ny42MSwyNy4xNyBMMjc2Ljg3LDI3LjE3IEwyNzYuODcsMjguNjcgTDI3NS43MiwyOC42NyBMMjc1LjY5LDIzLjk0IFogTTI3Ny44NCwyNi4yNSBDMjc4LjM3LDI2LjI1IDI3OC42NiwyNS45OSAyNzguNjYsMjUuNiBDMjc4LjY2LDI1LjIxIDI3OC4zNCwyNC45NCAyNzcuODQsMjQuOTQgTDI3Ni44NCwyNC45NCBMMjc2Ljg0LDI2LjI1IEwyNzcuODQsMjYuMjUgWiIgaWQ9IlNoYXBlIiBmaWxsPSIjM0QzQzNCIj48L3BhdGg+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg=="/></g><g><path d="M 961 233 C 961 224.72 978.46 218 1000 218 C 1010.34 218 1020.26 219.58 1027.58 222.39 C 1034.89 225.21 1039 229.02 1039 233 L 1039 288 C 1039 296.28 1021.54 303 1000 303 C 978.46 303 961 296.28 961 288 Z" fill="#b1ddf0" stroke="#10739e" stroke-miterlimit="10" pointer-events="all"/><path d="M 1039 233 C 1039 241.28 1021.54 248 1000 248 C 978.46 248 961 241.28 961 233" fill="none" stroke="#10739e" stroke-miterlimit="10" pointer-events="all"/></g><g><rect x="930" y="303" width="140" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 318px; margin-left: 1000px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font style="font-size: 11px;"><font style="font-size: 11px;">Software Module </font><span style="background-color: initial;">Repo</span></font></div></div></div></foreignObject><image x="944" y="311.5" width="112" height="17" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAcAAAABECAYAAAAWc+UJAAAAAXNSR0IArs4c6QAAHS9JREFUeF7tnQX0dU1VxjcoWFhgdwB2YBd2IKIY2IkiNoodKHYndouFhQp2gImKIHa3YGIXKgb3xzoj+3vWnjkz5865773f3Xutd33wv3PmzOwzM8/uuYUlJQeSA8mB5EBy4Ao5cIsrnHNOOTmQHEgOJAeSA5YAmIsgOZAcSA4kB66SAwmAV/nZc9LJgeRAciA5kACYayA5kBxIDiQHrpIDCYBX+dlz0smB5EByIDmQAJhrIDmQHEgOJAeukgMJgFf52XPSyYHkQHIgOZAAmGsgOZAcSA4kB66SAwmAV/nZc9LJgeRAciA5kACYayA5kBxIDiQHrpIDvQB4ezN7STN7UTO7g5m9mJk9n5k9zsz+wMz+yMz+xMweY2a/f+acvO0yB+bx/Gb2v2b2MDN79JmPO4c3jwPPUunq383sv458DXvqmSt9/KuZ/feR/Z/68ac1sxdyL/0XM/vzUw/C7MlFOzxf/8fMGMul0NOb2a03DpYz6glm9sSNz+djFQ6sAeDzmNmnHcDtPQY4+D1m9llm9siBZ07R9FZm9imHhfRRwcv422efYhD5jhvOgVczs5+vjIJ1+9FHjvC1zOxnKn18mJl9/pH9n/rxdzgIvA9yL/0tM3upUw/CzN7QzH5M3vuMZoZQcQn0h2b2IkcO9G/M7HeX9fWQRWgHHJM2cqAGgEgq9zWzz9zYL4/9pJndx8x+/Yg+Zj16y2U8d650mAA4i9Pn389rHg7Tn60ME4vGCy5Wga0z+aJl3UfPX+I6OxcAvIuZ/ZAwFY3wn7d+qBM/99jFajbztY86WOHuZWa/NrPTa+qrBoBfYGYfMoERmCju2jhwJryiq4vXX8yctcZ6MKEJvJ9r/MNm9nZdb8pG586BFgAy9lc3s1/YOImnXsyDz3EzErQSADcuBnlsDwAsr+AbffucYV5XLxEAvrmZPbTCBiSw3zGzP1tMD6j0L25mL9dQ7wFBfIePv4Gs/Xgz+2R5P9L+D5rZP5jZg80MaarQ15jZe7n/jzb7ejdw/PnqeRxYA0BMlJgqt9DrLJaGXkFryztO/UwC4ByO7wmAjBDT/rm5neZwbsdeFACfy8x+z8ywrXsC+NCSWuZMfB/4CgiOUfpqM7v3jvNY61oBjfb4N/+y8mAC4BpHL/f3NQDEz8LaIMhilL7YzD6w8VCaQEc5+pT2NzcTKIoBykMPcR7f7uADZe2+b0XZSCG9h5PSRgGQYJevlzY/YGZohf/X0T82+S87gOg7BW2fwcyIsrsR9B1m9rbuxWuO/ATAG/GVTvPONQBkFK/dCGSpjRLz598HwqNvnwC4/Rvf3AAQCxRR6KNEFDsumVcOHnyJxUI32ufVtlcA/NqDefM9HTeQUkiBQCrupadZUiNUE8QXqE7s3j6PbacA+CMHPw8bqkYJgMdy/Hyf7wFANDkCuEZozc9MXwmAIxy9adsEwKfwA0WDlDONKuXsVgVmO8ev4EkFQLVTo/3dbQMf3sfMvkKe40DhYBmhpzOzZzukLzzVQfX/q0OI+n+MPOzaKgASQvyWVwSAt1nyz7byr5ftRA9vyaMjSvdU4dwRAOL/9RI1gh+S9kjO3pcv5qnCKw6oVxDGbQFANEv2AHlkaJj/2PsxJrW7OfoAWW9YtHqsWpPYaHq2btUAy3i+9KCYvL8M7hOWVK8tYz7FHuR8YD3PtgRuxgkPgNiZNaQYEPPRkL2MRRXHzOjp0w+JnB/X0cErLiZUoi5Vi6TPX1oCVr7OzP6t0d/dzexZl98/xszu6Nqy+AiMKURe2MsuCf787V2lPQeizxMkSAhQQer39FUr2vLrmhm+Uk9ooz4AR6fEN+LgZOEU+q6GqYOFTM7Uuyw+BvwMxafLPP54+fe9ZkY/PXlU72xmL+ze/22Lls+fkMzxSxA9SfQjPmQKJdSIebzJIljBv+deGjJGvi/A8a0HPv34Tom/EQAS9PJ5MmDG9hMd65Um5Jj+nZg/P/ywRj5Xnu8FQNY9a/CtAlMXa5f18isHDeAblwIUncP8/2aM9w3M7B7LGuEbcDjRN0UtCAr7voX/vQDIfEmaL8Qe6QnPR4vxLpP/XPim4HSMBkgiP7x8i6WgB+uUvUByOYU7mCtr+k9HGTnQfjYARu4q3E8f0DGm2XsQ9xIurkLff/CF/+0h8JCz6E0PsRYoRHdy5zlnBKlIrOPvXPZOx7Bv0mQKTngABEUVmVnARHiOEhP/puVgKM8yUf7V6NkXkOlNumez0pYqLhH99XIg94ydgwnQeKOexovkxYHxhdJ+LRyZQwF/qidAkwVSo0iYqJmT3/HQyScKeK9NiahHkr9bVSZ+UQ5i5slcvkRM5ryrJdkSScszVBVaI8zu8AWgnkkRAAJ2mL29SQmNTiXs2jiiJG0qDWlVpDUA5GD6iAMYISz2EkE3CKq9QTtEC35LR1I2/Ac0XqAjEZ5zRDV4xoWWskZvvQCub8fe0vW4BQAxFX7s4Vz7yLVBLL9zZn3ocnh3PtLdbDYAIuDr3ugp5LDHHlRhhXMUYRaXF4pFi1hnrIFHdHJyKk6oCRTtSs02SGe+EkTnOIea4QxG4vdaWm8HRJiStK/a4N4ASNSVarktCawWJLFmConMyVFAEeaPT+plmrRD43q3xiGqAIh2wqLlgFSqzeeDDmbFB2wY3zcfJPN7DpojW6+JAJANi2Z+f/cgGgKRdz3lp75SopzZzPSpAmULANGe+A4RT9fYxvv4fmhvLVJtbq1ffof/WBMKRQFk5wiARPJSOaZH2PJ84Lu/2YYgqDVezgZABCWtXrUmdOy1BxUAsRoyvpHKN1jpmE/LFTIdJxQAOaBgkhKDQ8rcw//Axv/NBrOQEFCnWwuZxH0kN08jeTdIiBxYvRogHxh+6Dta5j9MAJj3IqL6CLmVEan/MvLLtvLP2NDFFMV7ojQV3ovmWANQBUD61FSZMvYIANGkerSB2iFCcNZ7T/LZRACIRk19y1+VAWCq/dGVkw1thfXp+cFBhHlSXQotAKQ9gkWNIp+ib8vvr9oQFKiC9NNrp3TH75cAgLUgkY7pPbkJ65t1MrOK1WwAxMwIUHtqrdc992CvL5WzvFYkgnkgxKGFR7QLTigAvv1iC68tFGzlHMA/tdSk6514a+GhvUX1EfEr4R+jyDaEz+2VlkPCR6qWvl9FfGnkNBI4AHGA4n8rRL1SfBaFCLDBBFyK7WLa9KZKAMRL5uQP4j+Iyl7hT6E/pZb0hYSNWUop0hoL+Pq2hEWz+D09fAEN1QowqcJzAMVTy9ytAKjj5MCgegpFEtC8qR9b6Dkr/ODARvDgvxQjAJzL98W8o0QwFmvvWIoAsPRNnUVvhWDdUGqqRZFp7nkXi4QKjDUAJAAHHishkGKa/e0F2PDdvcwiqEVlCvmuapanT/Y5PsPIHPUZixuB3ykSzjfAbFgzXV0CAGJCRmhXut9ibqWAP4ILc8QkTJEMFehYl/iZZtFMAIysQoAL6y4K3Np7D7ZwAAsCplmUHNqxhtlvnxooNcwBrTGK7dgFJxQA8d19w4okWhYEhx4HL4V/2bxsIBzYI0SkHQCni6+VMsGYMXv6Si28kwOcBRstANWi1oJ7etMgcPBSTcYTpkEAVum7G+atWqEA5qO3VJCWQmHdQqSdaHTnmkmTZ6PiAM9UqbDfAkCAlL5qpNGRtEPg4ZCN1gugDz/UFwxP4e2xFAEgwg4SNQckBdP9Gsfn0FrXykf2A3mEgAnA7qkGgATbeAGNZ9DG0cprhLT8wOBHAj40mCNap+xfBI0o0AfBEXP+uwf9nzsAcoD6/cEUsEogwNZufAH0ERj1HHr5wCqwdf3NAEAqaiEAR5WKWubPvfdgDQDZT14Y9ryD1wi0Wp+Z4ETA0dNuOBGVQkMywrnKphklNj8mIw4rEH+NkAzUQb0WSEKfHJJEbb2NvABfEQCutBcA4ovTKMrIHEsaB4fhiNmQObDQfSRhZGIl2IK/e0KLWbuWKroVAf/vLwf8qwEgAVKtSD8kbDUrotWztlpSI/xCcmQteEKrR8M8hloAGAUctTRPzDJIrf67YrnAJ9gLgJixAF9PvQE41OtlvXli/bMPPBHlzPf2VPvWvg2RevDL07kDIDUxtW4v/t21IAv4QQyEp2gvb117kUuGgLA1wjKF24Io7FqMBGZDhJVoT51iD0bvJQAGRaZFWMv+ImgA4HnhcTecqBXD5mDHp4Yjs3Zor304NgpSPtGCEYM4PDAjekJS40P35F+hCekhX0tg3gsAGTsaoBcWIlMiQIGGXIg2amKKJHc1bUZRXmo+40DG5LFGEXAiCeshQD8RAJLSshatSPCUgphqsLVxkkqBSdUTBz5m52OoBYD0C2D7b4OWVYtMjsCrmMB7AZAoZk2n6RFgGCsWG8zx3q+iQlLk++vVpokYRDPydM4AyDVNvyHjXbP2+OYAiQ/4QUteswD0rsWRmITePmkHSGPurVkpTrEHo/NdXVK1OWFxQVP05AvS74oTa/cBAoTkeHDA828LGLLZkMgU1KIDDsDEJ9FLGrVK1NcbBw/vCYCRc5noQZKWC5Gb46U9tF6AwUfcqh8w+vC13DSfI8hi7AmJpzYrmoqnXgDkYEAbW0to1TvQ8CGTi9VLCry179vbH+3WAJBvg6DhqVbGj6obHhwBC/LroF4AJFDG76vROUbSMX6Wst84HFVQ6dH+yvxVezxnAOSsYq97QkDsvew6MhX3aI89628vAFwL1DrFHlQAXIts9/yKfOj+LNwVJ9YA0A+UQ5YDkgXBPw7jXkAkydgHndBvtNjQSnBQ9xKBAP6C25r2sycARpqoms1IOPfmWqL18L8A+IXUDxhJ7oDiqJ+V/vET4iAnjJhgE3xU6kOlXS8AFj9X6zthStexkmagt3K0+sAP5QsxjGysWr9rABh9T6oGUT3IU5Q36/2hPQCIz/WfpN+aGb82n0gL9ftIfZQIL7y3lzDBe5/TOQOg+nCZ40gNYvYIa8xTLUCtl3+l3V4ASP+crVrIgb+fag8qAPYEjxW+YPmiOIcnX9FmV5wYAUD94DyLqYYDBVuv+uO0vdapU62oHNQjpbSiyKAokGNPAGTcKmV5U2Xk/2Nhkrrgb7jWw13z+igi0HMnIQBHYjZgRhUY0kdaocf+O/UCINpslC7j+4okN35Xf2XrIIl8HsesWd61BoC0UcsCQUVUw/EUXRuG6bnUze0BwMg/QzAMUda9xDfTSkIcGpjPIVIffKABbTFP9ZJGL58zAEapJCPrDZ7omgP8oyj1Xv6VdhEAru0hnkXoJTodPyDnbG0vR1r9qfagAiBWMfzYPYQZXy1W3u2wK04ce5j4CaJlsPGI4tFketqpdqaX7vb6rvw7yZti0XsiTFz9AHsDINKXz0P0hwzj8YEixQwYBdB4P6AGIKxpBvgqqOii+ZA9i7C06QVANO8ozNy/K5LcRsZSa4slosfEW3u+BwAjwYo0HB+erYetFljvAUAiE4kO9jRqBYmiHn2qjBaEYC+Q7tRLOsZzBsCokEfvPGvtenzdPe+YEQXKeY0FRX1mvD+qKHWqPagASEUqghR7SV0d3sK0K07MBMAy2VK7MvLl+Sg+Ik19vteWvBtMTnx4T4QKa+7b3gAYlcJCasO/w2GEKa+Qz9XS8PdibolMY0iAJGtHBDhSG3WEosTqmQBINGSvFDgy7hGTVtRvDwCiRZf809IH/iVM2RBpApqrpAJKDwB+cJC3V9ZNL0+iyNWSUBz5kYmubSXc63vxqQPuhWYDYCTEbi2Fpv7UXh622gE4vkLQ1j5nAGB5d5TnGJ2fp9qDCoCjN/9osJ+/23BXnCgAiD8DX4EPpiCc+pjrixR0+HjeYasSNKAFeI1QVP4r2jx7A2DkDypz1bBscvtKRRg0Ni8oFD+gOoZbSer4Y5GYagRfiWzEt8o/+qLCBcKI+ltnAmBUVAEzr6ZFjHxvQAdTZE+UcK3fHgDkWdXAvQkan6DmenJjAwWxC/UAYCS44KdVP1SLR1GkZrnPMDIvIZkjofeSAtRsAIwKRGwFQHVFMMdjiydwLs6oRzsTACM/deTbPdUeVAAcLZ9Jypyv9OWD5XbFiQKA3JrgoxZZOMfmwLDJ8J148onAkcN61LyF9ucrmtRAdG8AZI4qqSA5ksxMNRB/G4O/Zkdz8YofUIN7WknRkW8BPiC1kl9WK1+HsLEnAEZJ/LMCCnoP76hdLwBGvoeinVG1x99gEJWn6wFAgEr9fT4EvGeeCARodZ4oYM26gDStg4o9vKOXCNTyycyzAZB1qgn/WwFQi83PCJrq5dNau5kAyLuiWse4oXwMxan2oAJg780/hWf6vM9l3RUnCgBGkqIP6V77uNHvONofKT94h3JUmLdl5oveoaWrahfdngIA1RxL4i0li7w/UvOvCFfXoB/8gGxkn4vGof1zAQMiSRCnP1pBlGDqu4iCJ2ZqgJFQ1ao3umWNbXmmFwAppqwmZ4Q6pFMtfoCWpCDUA4Cs9wJUZS49hSD8vMl9pQqIJ58GoXlgaAoAeW8ZQy303QuAaHY9id5RTcutABilhGCu1nzjLevm2GdmA2B0s4yaz0+1B3UtjdwjS8oYtXQ9kaKFNQzaFSe8DzAyH+Bg1xDV3oUQOWC9bTgCyLVq5v7dUXHpWnTiKQCQBH71PeqdcNH8VHPUZ1qXs0blsHod0NHCmgmAfCv1ydQElNqaQpJ8afcjUbOjlypr370AyHPqoyUVgmTp4gssfWvlCv7eA4CR4NmbpM47onsINREeoUN9WPisa9eIeX4BHtS19elOEQDyjB6C1DHFx9miKEyf9lsBkLqt5eAs7x3RqAlY09JdCLbHVh9iLLMBMIp49VHIZf6n2IP67UcCGjVGgnETvY5yA+2KEx4ACfUlQMNT7wWL0SKPKhD4AJUI+UcqwUSOYJKskdCVTgGAvFM1Uh1HVDosMrX55zhwAbqIAMvPkR96k5wpWae3X8wGwKjGZW99RXIlMdd5quU7NU9Z+XEEAKNiATjofd1OQBGfoFIPAPKMmij5W2+1nCiJWHNuIxNpL8hGRZdrAKgHLRYQvfxZeVS7nmkrAEa3ovTOlbFpVSeET9IOtNbuyHorbWcDoObI8p7oVplT7MHImkBwllZyUr4hwKE0+BtqFDx3xQkPgLXrUtgEGmm5tgCiTccz6uOLQHIt3J9+MA8SpOAlU4I70Aqj+6SOBcCezcy41Hfn+cRm4lDU8aHhtK5daWl0+NT0+hBAjbsVWxRJyrSfDYDRAdeTz8i6xDemhXJb10atrcny+wgA1qro+3fVHP69ABiBLD4Q8mZbZkr6h0daUo9kbm/+JmqWQ0bzx9Y0IyKRCU7Q67NqABgBOSa4mg+a3zggo7y2rQDIgUrJQb06ba1mLd+Twh6qFa9dVt275mg3GwCjs4Z5c3OIp1PswWid9phBoypaUS3b3XBC0yBUAiqMpJ4eEZePX/nibD6kdGo2KqGpaOHrKIeJ51qJlEjHAJJunNotDPQ3CoAqXQFe1HiMrunw80QziKrrlzFE+Vd8A6qB1KrqMM8a36NEaiJMAY6oTBlOcgKRavf+1XyNmqfTkwfInJkbvmS96QAz1X0qkjXRlBw8ejHsqPm0tlRHAJA+oqumfN8AkVZz4fdeAEQoBGg0AZuDAOEzKgyBaZJxqYDAVUhqxWEstZsjamW08H/WbvOuAaDW0eS97FPeofuGSFd8f7Url7YCIO+M9mC53T7yo/MMRTwoa6d7sLYfRoCvtJ0NgORba1WlaLyn2IM1QY1zlH0e5e1yDkVXekUC/G44oQBI5QCSuGuHMebFckcfkh1SHM+g7lKIVivOl4/PAmSDRwdFTWtiQ+HzQbIk6AApDrMYGqKCH5sS+33tNuFRAIzqJ/IO5s68H1y57SK6mqjwoNwSEG2e2mWoaxF70WWs9I8fiOg9viWLD82J8myUP2tVheHQxXdDOL+/oHcrADKWmobL2Dh00NxxgnMo8o0RknSMCCD0U7s0eORAGgVAan0yzohYB/eo/NYLgDwelTMrAEIkNVoNc2evsccQ9qJiE7UUCqoRIRhFgINwS7Aa+wyt7zUWAba2TmoAGFXGKWsRwZormjAlMv7omiXPxmMAkH40Srf0zY3jzJX9gbaIxkRcgo/o9W19mcWRNRa1nQ2A0U0gtQtl996DLUsFvMa9xi0zCG7493BVRbcNRcX+Cy93wYkoET46II75+IAfiyy6ZYB+W6aQ3veumXNGAbB2IJXxtDTUKP+R5xAQODwiqknoPcXBa+bmNd5hFqO6SXTQaa3PYwCQcSCpIrFupXJf39bn/XOjABj5IEp/lKbDpBvRCADyfBTVNzLftajLrftab/GuASDCH8JM7cqe2lywEOhtGMcCIJYoTIG9tYp1bAiepKg8ceQDrLSdDYCRYNa6gmjPPdgbUdxiEWcO66CW47sLTtQqwRDRCOL21J5sTYoPgr9pLSSfvCW0vdHNw7sJ+ScwoUWjAIhZioAWVO+IWgAYJTevhZ5HlUd4r0+ab82vJvHWnoFf+A+pbqL3yfHMbACkT3wRmDZHDyUfEj3jPBoFQN4Zherz99oFwvw2CoAUU+A7qum3Z85ozRoMFT0XBc20+kd6RzjzwUg1AKQfhDxuj+j9xoAfZl691uxYAGQsCHYksSM8jRCWCTQUol9n0mwArJU5a10ZttceVADkTOHc710HBD9i3Ts5TqyVQuOwYDJcKdJLHPYcdPh5Sihrz7McJlRGWasxWfrCREr7NabRXk2MNV+JHye+Rqq4RKamFgBGuV1RMWXliaahIHnjd6yZdf3zhNOz4Kjc31p0aH3cv0WxWRYtPCekX6NBFQC1oPLorQ5lrAg65Mup7ypaH6w7fAgjt4P0rLMo/3EtcCgKNlqrqYl2zV7whD+klcaBqRLAQfjsKWAOMJFaU7OuRPzA7Mf+1ItutS2mUfz55Jb5fMi1Ytp8Y55tXajN2iYnmOAG+vcVdBiHz2Ms44p8e1qfVefA+YYAxXjWiHkRQUtt1pmaX3mvRohHl1uvjdH/jq88ig1Yc5vssQcVAFECELJZZ3q26ByxcnHH59rVauW5qTixBoC8lMOV6EoAgTQGivVixy1XqnBwY9/nH/8bP1nvZKIPzoeFaWh2gAmReAQCkIvD5Z841gnhL1X3RxbNaFvmjl+FuSPR48xHWiF67ZhyXKPj6G1PeTNyvDjksPujyTJe/EdEhuL/0MWKtI30hRaKmYGbmJHi+ZZ7EDxlHeHvY12h5XKQcciyhjgYMCtG/uI9xnOOfaINIiSgsWGFICgFcGQP8A9/HntgRMD082Tfk1+Ftslepn9822gp+GoAgR7BssU7zJDsY/5LTVK+O2uK78v4jzkjRr8ZIEuMAGuu3JLCOme+7A+sT5pyM/qOS2o/ew9GAEg8AYTfmZrPnC+AL+uMoC/OUKKYt2raU3CiBwAv6cPmWJMDyYHkQHLgtBxoAeBpRzL4tgTAQYZl8+RAciA5kBy4CQcSAHNBJAeSA8mB5MBVciAB8Co/e046OZAcSA4kBxIAcw0kB5IDyYHkwFVyIAHwKj97Tjo5kBxIDiQHEgBzDSQHkgPJgeTAVXIgAfAqP3tOOjmQHEgOJAcUAKn1SvGRs6dMgzj7T5QDTA4kB5IDZ80BktwpdlCIwhtPOOsRL4NLALyEr5RjTA4kB5IDyYHpHEgAnM7S7DA5kBxIDiQHLoEDCYCX8JVyjMmB5EByIDkwnQMJgNNZmh0mB5IDyYHkwCVwIAHwEr5SjjE5kBxIDiQHpnMgAXA6S7PD5EByIDmQHLgEDiQAXsJXyjEmB5IDyYHkwHQOJABOZ2l2mBxIDiQHkgOXwIEEwEv4SjnG5EByIDmQHJjOgQTA6SzNDpMDyYHkQHLgEjiQAHgJXynHmBxIDiQHkgPTOZAAOJ2l2WFyIDmQHEgOXAIHEgAv4SvlGJMDyYHkQHJgOgcSAKezNDtMDiQHkgPJgUvgwJMAnP6lrrLhJy4AAAAASUVORK5CYII="/></switch></g></g><g><rect x="978.75" y="347" width="140" height="40" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 367px; margin-left: 1049px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><b style=""><font style="font-size: 12px;">Software Module</font></b><div style=""><b style=""><font style="font-size: 12px;">GitHub organization</font></b></div></div></div></div></foreignObject><image x="991.5" y="353" width="115" height="32" xlink:href="data:image/png;base64,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"/></switch></g></g><g><image x="890.75" y="350.37" width="87.5" height="32.25" xlink:href="data:image/png;base64,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"/></g><g><path d="M 1160.21 174 L 1160.21 234 L 985 234 L 985 164 L 1135.18 164 Z" fill="#ffcccc" stroke="#36393d" stroke-miterlimit="10" pointer-events="all"/><path d="M 1135.18 164 C 1137.22 166.34 1133.87 168.75 1126.24 170.43 L 1160.21 174.21" fill="none" stroke="#36393d" stroke-miterlimit="10" pointer-events="all"/></g><g><rect x="1073" y="207" width="80" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 222px; margin-left: 1113px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font style="font-size: 9px;"><b>CODEOWNER</b></font></div></div></div></foreignObject><image x="1082.5" y="215.5" width="61" height="17" xlink:href="data:image/png;base64,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"/></switch></g></g><g><rect x="963" y="160" width="190" height="60" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 190px; margin-left: 1058px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><ul style="font-size: 10px;"><li>Software Module PLs</li><li>Software Module Committers</li></ul></div></div></div></foreignObject><image x="973.5" y="168.5" width="169" height="47" xlink:href="data:image/png;base64,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"/></switch></g></g><g><rect x="635" y="248" width="200" height="40" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 268px; margin-left: 735px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Software Module can later<div>become an Eclipse Child Project</div></div></div></div></foreignObject><image x="648.5" y="254" width="173" height="32" xlink:href="data:image/png;base64,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"/></switch></g></g></g></svg> \ No newline at end of file diff --git a/docs/platform_management_plan/_assets/score_project_management_issue_status_flow.drawio.svg b/docs/platform_management_plan/_assets/score_project_management_issue_status_flow.drawio.svg new file mode 100644 index 00000000000..33038ec2bb1 --- /dev/null +++ b/docs/platform_management_plan/_assets/score_project_management_issue_status_flow.drawio.svg @@ -0,0 +1,865 @@ +<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="741px" height="1053px" viewBox="-0.5 -0.5 741 1053" content="<mxfile><diagram id="0w90vh-N4AjfHz9zUi27" name="Model">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</diagram></mxfile>"> + <defs/> + <g> + <g> + <rect x="130" y="720" width="610" height="140" fill="#e1d5e7" stroke="#9673a6" pointer-events="all" style="fill: light-dark(rgb(225, 213, 231), rgb(57, 47, 63)); stroke: light-dark(rgb(150, 115, 166), rgb(149, 119, 163));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 608px; height: 1px; padding-top: 790px; margin-left: 132px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + status: + <br/> + closed + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + </div> + </div> + </div> + </foreignObject> + <text x="132" y="794" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" font-weight="bold"> + status:... + </text> + </switch> + </g> + </g> + <g> + <rect x="130" y="580" width="610" height="140" fill="#fff2cc" stroke="#d6b656" pointer-events="all" style="fill: light-dark(rgb(255, 242, 204), rgb(40, 29, 0)); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 608px; height: 1px; padding-top: 650px; margin-left: 132px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + status: + <br/> + in implementation + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + </div> + </div> + </div> + </foreignObject> + <text x="132" y="654" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" font-weight="bold"> + status:... + </text> + </switch> + </g> + </g> + <g> + <rect x="130" y="300" width="610" height="140" fill="#f5f5f5" stroke="#666666" pointer-events="all" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 608px; height: 1px; padding-top: 370px; margin-left: 132px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #333333; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + status: + <br/> + open + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + </div> + </div> + </div> + </foreignObject> + <text x="132" y="374" fill="#333333" font-family=""Helvetica"" font-size="12px" font-weight="bold"> + status:... + </text> + </switch> + </g> + </g> + <g> + <rect x="130" y="440" width="610" height="140" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 608px; height: 1px; padding-top: 510px; margin-left: 132px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> + <br/> + <br/> + <br/> + <br/> + <br/> + status: + <br/> + in review + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <div style=""> + <br/> + </div> + </div> + </div> + </div> + </foreignObject> + <text x="132" y="514" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" font-weight="bold"> + status:... + </text> + </switch> + </g> + </g> + <g> + <path d="M 365 360 L 423.63 360" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 428.88 360 L 421.88 363.5 L 423.63 360 L 421.88 356.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="245" y="330" width="120" height="60" fill="#d5e8d4" stroke="#82b366" stroke-width="4" pointer-events="all" style="fill: light-dark(rgb(213, 232, 212), rgb(31, 47, 30)); stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 360px; margin-left: 246px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Issue + <br/> + [Open] + </div> + </div> + </div> + </foreignObject> + <text x="305" y="364" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Issue... + </text> + </switch> + </g> + </g> + <g> + <path d="M 300 70 L 300 165.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 300 170.88 L 296.5 163.88 L 300 165.63 L 303.5 163.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="240" y="100" width="60" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 115px; margin-left: 270px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + creates + </div> + </div> + </div> + </foreignObject> + <text x="270" y="119" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + creates + </text> + </switch> + </g> + </g> + <g> + <ellipse cx="300" cy="55" rx="15" ry="15" fill="#000000" stroke="none" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> + </g> + <g> + <rect x="250" y="0" width="120" height="40" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 20px; margin-left: 310px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + <b> + <font style="font-size: 18px;"> + Contributor + </font> + </b> + </div> + </div> + </div> + </foreignObject> + <text x="310" y="24" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Contributor + </text> + </switch> + </g> + </g> + <g> + <path d="M 240 212 L 220 212 L 220 345 L 238.63 345" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 243.88 345 L 236.88 348.5 L 238.63 345 L 236.88 341.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 240 172 L 360 172 L 360 240 Q 330 218.4 300 240 Q 270 261.6 240 240 L 240 184 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 200px; margin-left: 241px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Any Activity + </div> + </div> + </div> + </foreignObject> + <text x="300" y="204" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Any Activity + </text> + </switch> + </g> + </g> + <g> + <rect x="245" y="760" width="120" height="60" fill="#e1d5e7" stroke="#9673a6" stroke-width="4" pointer-events="all" style="fill: light-dark(rgb(225, 213, 231), rgb(57, 47, 63)); stroke: light-dark(rgb(150, 115, 166), rgb(149, 119, 163));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 790px; margin-left: 246px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + <span> + <font style="color: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"> + Issue + </font> + </span> + <br/> + [Closed] + </div> + </div> + </div> + </foreignObject> + <text x="305" y="794" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Issue... + </text> + </switch> + </g> + </g> + <g> + <rect x="245" y="480" width="120" height="60" fill="#d5e8d4" stroke="#82b366" stroke-width="4" pointer-events="all" style="fill: light-dark(rgb(213, 232, 212), rgb(31, 47, 30)); stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 510px; margin-left: 246px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + <font> + <span> + <font style="color: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"> + Issue + </font> + </span> + <br/> + <font style="color: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"> + [Open] + </font> + </font> + </div> + </div> + </div> + </foreignObject> + <text x="305" y="514" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Issue... + </text> + </switch> + </g> + </g> + <g> + <rect x="130" y="860" width="610" height="140" fill="#bac8d3" stroke="#23445d" pointer-events="all" style="fill: light-dark(rgb(186, 200, 211), rgb(57, 69, 78)); stroke: light-dark(rgb(35, 68, 93), rgb(160, 188, 210));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 608px; height: 1px; padding-top: 930px; margin-left: 132px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> + <br/> + <br/> + <br/> + <br/> + <br/> + CR status: + <br/> + rejected + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <div style=""> + <br/> + </div> + </div> + </div> + </div> + </foreignObject> + <text x="132" y="934" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" font-weight="bold"> + CR status:... + </text> + </switch> + </g> + </g> + <g> + <rect x="245" y="900" width="120" height="60" fill="#647687" stroke="#314354" stroke-width="5" pointer-events="all" style="fill: light-dark(rgb(100, 118, 135), rgb(125, 140, 155)); stroke: light-dark(rgb(49, 67, 84), rgb(169, 184, 199));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 930px; margin-left: 246px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + <span style="color: light-dark(rgb(255, 255, 255), rgb(18, 18, 18));"> + Issue + </span> + <br/> + [Closed as not planned] + </div> + </div> + </div> + </foreignObject> + <text x="305" y="934" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Issue... + </text> + </switch> + </g> + </g> + <g> + <path d="M 474.97 390 L 474.97 473.62" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 474.97 478.87 L 471.47 471.87 L 474.97 473.62 L 478.47 471.87 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="430" y="330" width="90" height="60" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 430 350 L 520 350" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 450 330 L 450 390" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 360px; margin-left: 431px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + <br/> + status: + <br/> + No Status + </div> + </div> + </div> + </foreignObject> + <text x="475" y="364" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + status:... + </text> + </switch> + </g> + </g> + <g> + <rect x="449" y="326" width="70" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 341px; margin-left: 484px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + Projects + </div> + </div> + </div> + </foreignObject> + <text x="484" y="345" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Projects + </text> + </switch> + </g> + </g> + <g> + <path d="M 365 510 L 398 510.5 L 423.63 510.1" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 428.88 510.02 L 421.94 513.63 L 423.63 510.1 L 421.83 506.63 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 475.02 540 L 475.02 613.62" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 475.02 618.87 L 471.52 611.87 L 475.02 613.62 L 478.52 611.87 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="430" y="480" width="90" height="60" fill="#0050ef" stroke="#001dbc" pointer-events="all" style="fill: light-dark(rgb(0, 80, 239), rgb(109, 178, 255)); stroke: light-dark(rgb(0, 29, 188), rgb(178, 203, 255));"/> + <path d="M 430 500 L 520 500" fill="none" stroke="#001dbc" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 29, 188), rgb(178, 203, 255));"/> + <path d="M 450 480 L 450 540" fill="none" stroke="#001dbc" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 29, 188), rgb(178, 203, 255));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 510px; margin-left: 431px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + <br/> + status: + <br/> + Todo + </div> + </div> + </div> + </foreignObject> + <text x="475" y="514" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + status:... + </text> + </switch> + </g> + </g> + <g> + <rect x="449" y="476" width="70" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 491px; margin-left: 484px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #FFFFFF; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#FFFFFF, #121212); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + Projects + </div> + </div> + </div> + </foreignObject> + <text x="484" y="495" fill="#FFFFFF" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Projects + </text> + </switch> + </g> + </g> + <g> + <path d="M 245 665 L 210 665 L 210 915 L 238.63 915" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 243.88 915 L 236.88 918.5 L 238.63 915 L 236.88 911.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="245" y="620" width="120" height="60" fill="#d5e8d4" stroke="#82b366" stroke-width="4" pointer-events="all" style="fill: light-dark(rgb(213, 232, 212), rgb(31, 47, 30)); stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 650px; margin-left: 246px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + <font> + <font> + <span> + <font style="color: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"> + Issue + </font> + </span> + <br/> + <font style="color: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"> + [Open] + </font> + </font> + </font> + </div> + </div> + </div> + </foreignObject> + <text x="305" y="654" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Issue... + </text> + </switch> + </g> + </g> + <g> + <path d="M 364 650 L 397 650.5 L 422.63 650.1" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 427.88 650.02 L 420.94 653.63 L 422.63 650.1 L 420.83 646.63 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 473.97 680 L 473.97 753.62" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 473.97 758.87 L 470.47 751.87 L 473.97 753.62 L 477.47 751.87 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="429" y="620" width="90" height="60" fill="#f0a30a" stroke="#bd7000" pointer-events="all" style="fill: light-dark(rgb(240, 163, 10), rgb(154, 88, 0)); stroke: light-dark(rgb(189, 112, 0), rgb(193, 127, 31));"/> + <path d="M 429 640 L 519 640" fill="none" stroke="#bd7000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(189, 112, 0), rgb(193, 127, 31));"/> + <path d="M 449 620 L 449 680" fill="none" stroke="#bd7000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(189, 112, 0), rgb(193, 127, 31));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 650px; margin-left: 430px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + <br/> + status: + <br/> + In Progress + </div> + </div> + </div> + </foreignObject> + <text x="474" y="654" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + status:... + </text> + </switch> + </g> + </g> + <g> + <rect x="448" y="616" width="70" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 631px; margin-left: 483px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + Projects + </div> + </div> + </div> + </foreignObject> + <text x="483" y="635" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Projects + </text> + </switch> + </g> + </g> + <g> + <path d="M 245 510 L 110 510 L 110 930 L 238.63 930" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 243.88 930 L 236.88 933.5 L 238.63 930 L 236.88 926.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 370.37 790.1 L 397 790.5 L 429 790" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 365.12 790.02 L 372.17 786.62 L 370.37 790.1 L 372.06 793.62 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 519 790 L 540 790 L 540 650 L 525.37 650" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 520.12 650 L 527.12 646.5 L 525.37 650 L 527.12 653.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="429" y="760" width="90" height="60" fill="#008a00" stroke="#005700" pointer-events="all" style="fill: light-dark(rgb(0, 138, 0), rgb(67, 186, 67)); stroke: light-dark(rgb(0, 87, 0), rgb(130, 205, 130));"/> + <path d="M 429 780 L 519 780" fill="none" stroke="#005700" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 87, 0), rgb(130, 205, 130));"/> + <path d="M 449 760 L 449 820" fill="none" stroke="#005700" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 87, 0), rgb(130, 205, 130));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 790px; margin-left: 430px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + <br/> + status: + <br/> + Done + </div> + </div> + </div> + </foreignObject> + <text x="474" y="794" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + status:... + </text> + </switch> + </g> + </g> + <g> + <rect x="448" y="756" width="70" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 771px; margin-left: 483px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #FFFFFF; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#FFFFFF, #121212); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + Projects + </div> + </div> + </div> + </foreignObject> + <text x="483" y="775" fill="#FFFFFF" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Projects + </text> + </switch> + </g> + </g> + <g> + <path d="M 15 340.5 L 25 340.5 L 25 398.5 L 35.5 398.5 L 20 417.5 L 4.5 398.5 L 15 398.5 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="0" y="440" width="80" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 455px; margin-left: 40px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + <b> + <font style="font-size: 14px;"> + Prepare + </font> + </b> + </div> + </div> + </div> + </foreignObject> + <text x="40" y="459" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Prepare + </text> + </switch> + </g> + </g> + <g> + <path d="M 15 502.5 L 25 502.5 L 25 560.5 L 35.5 560.5 L 20 579.5 L 4.5 560.5 L 15 560.5 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="0" y="590" width="80" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 605px; margin-left: 40px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + <b> + <font style="font-size: 14px;"> + Work On + </font> + </b> + </div> + </div> + </div> + </foreignObject> + <text x="40" y="609" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Work On + </text> + </switch> + </g> + </g> + <g> + <path d="M 15 642.5 L 25 642.5 L 25 700.5 L 35.5 700.5 L 20 719.5 L 4.5 700.5 L 15 700.5 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="5" y="740" width="60" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 755px; margin-left: 35px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + <b> + <font style="font-size: 14px;"> + Close + <br/> + </font> + </b> + </div> + </div> + </div> + </foreignObject> + <text x="35" y="759" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Close + </text> + </switch> + </g> + </g> + <g> + <path d="M 15 782.5 L 25 782.5 L 25 840.5 L 35.5 840.5 L 20 859.5 L 4.5 840.5 L 15 840.5 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 245 360 L 90 360 L 90 950 L 238.63 950" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 243.88 950 L 236.88 953.5 L 238.63 950 L 236.88 946.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="639" y="616" width="70" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 631px; margin-left: 674px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + Projects + </div> + </div> + </div> + </foreignObject> + <text x="674" y="635" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Projects + </text> + </switch> + </g> + </g> + <g> + <path d="M 665 680 L 665 920 Q 665 930 655 930 L 371.37 930" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 366.12 930 L 373.12 926.5 L 371.37 930 L 373.12 933.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="620" y="620" width="90" height="60" fill="#e51400" stroke="#b20000" pointer-events="all" style="fill: light-dark(rgb(229, 20, 0), rgb(255, 146, 129)); stroke: light-dark(rgb(178, 0, 0), rgb(255, 172, 172));"/> + <path d="M 620 640 L 710 640" fill="none" stroke="#b20000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(178, 0, 0), rgb(255, 172, 172));"/> + <path d="M 640 620 L 640 680" fill="none" stroke="#b20000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(178, 0, 0), rgb(255, 172, 172));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 650px; margin-left: 621px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + <br/> + status: + <br/> + On Hold + </div> + </div> + </div> + </foreignObject> + <text x="665" y="654" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + status:... + </text> + </switch> + </g> + </g> + <g> + <rect x="640" y="616" width="70" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 631px; margin-left: 675px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #FFFFFF; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#FFFFFF, #121212); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + Projects + </div> + </div> + </div> + </foreignObject> + <text x="675" y="635" fill="#FFFFFF" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Projects + </text> + </switch> + </g> + </g> + <g> + <path d="M 613.63 650 L 525.37 650" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 618.88 650 L 611.88 653.5 L 613.63 650 L 611.88 646.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 520.12 650 L 527.12 646.5 L 525.37 650 L 527.12 653.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + </g> + <switch> + <g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/> + <a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"> + <text text-anchor="middle" font-size="10px" x="50%" y="100%"> + Text is not SVG - cannot display + </text> + </a> + </switch> +</svg> diff --git a/docs/platform_management_plan/_assets/issue_types.drawio.svg b/docs/platform_management_plan/_assets/score_project_management_issue_types.drawio.svg similarity index 100% rename from docs/platform_management_plan/_assets/issue_types.drawio.svg rename to docs/platform_management_plan/_assets/score_project_management_issue_types.drawio.svg diff --git a/docs/platform_management_plan/_assets/organization_orgchart.drawio.svg b/docs/platform_management_plan/_assets/score_project_management_organization_orgchart.drawio.svg similarity index 89% rename from docs/platform_management_plan/_assets/organization_orgchart.drawio.svg rename to docs/platform_management_plan/_assets/score_project_management_organization_orgchart.drawio.svg index c51a8312b4c..966078c3348 100644 --- a/docs/platform_management_plan/_assets/organization_orgchart.drawio.svg +++ b/docs/platform_management_plan/_assets/score_project_management_organization_orgchart.drawio.svg @@ -1,17 +1,17 @@ -<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="765px" height="923px" viewBox="-0.5 -0.5 765 923" content="<mxfile><diagram id="jAXL_Ft_FI92JxD2iTiC" name="Page-1">7Ztbc6M2FMc/jR+XkbjzmHWcdKeb2e06004ftXCw6QLKyCJO+ukrGXEV67gt2E7ivMQcYS7/H+cm5Jk1z55uGXlY39EI0pmJoqeZdT0zTeyZrvgnLc+lJbDM0rBiSaR2agzL5G9QRqSsRRLBprMjpzTlyUPXGNI8h5B3bIQxuu3uFtO0e9YHsgLNsAxJqlv/SCK+Lq2+gxr7L5Cs1tWZMVIjGal2VobNmkR02zJZi5k1Z5Ty8lP2NIdUilfpUn7v5iej9YUxyPlBXwjKbzyStFA3dwOEFwyE8R5INrOuxKePV0t1vfy5EoHRIo9AHgfNrI/bdcJh+UBCOboV2IVtzbNUbGHx8REYT4SAV2myyoWNU7lDnKTpnKaU7Y5oRQT8OBT2FSNRIu6gNeYBcUGeaMMZ/QGtEYTmcyRHGOWEJ1QePmj2rAA5wqKrowSTlwdPLZNS6xZoBpw9i13UqFOhVI+uZavtbfMgmL6yrVsPQWUj6tlb1Ydu8IgPitAwrfpy99Oaf7m70NqN2u4paVmH0bq5vdAqaZnICMw+MKOKUV1mBnInwmYehO1m8eWCrWTkn9LJ0EG0fv3z24VWl84paGH/IFqGYVxolXROWW7gwyLh18XFtxSJU5YbWI+Ec5plRZ7wZwWK0RA2mzOGJXEdC9YHBxvY7fCyTc9wbA2Z7fk6Moyc/89MD4dLDsCSfFUT+0s2sDLL3eycLlyLf5+BRLJyTFgoGJ4zTjRdsdh1NV/3NM8d8DRsjlF0aNgaUHckF+1/Jm+sD+YFFA03rCOI49gMf4IgjqPAdYcQRO5313HHEbwX23BVf7cUx0OK2yMIrndSSwgLJiPbXsW7kr6g/7iK92PYCAR6dXY9FXEMArZG4LeCpO8MALZ6+d08IgFH9wESw7vSv99oHlN+rMegXnl1R9gP4DJ3izPluwRd7hCWOpxznj6g7LJHmkAV7Z1jdcsu2zRs/7Cyy/NGQKkHswaliT7lHISAJTNF8hukQDbnXWvtGE7CzOrlfsfRp+RqZ+xUW+4YnqdHvsUTB5aT9F/42FuIf653ygDoahhqrzjTFDTGo+8jI3A6qru2/vRPp7r3Utq5YqHUNCznZc49Ph2ntceOaOR7OUZ3lcEEM8qk9L4Es4P2KY8ZEfdevAlsI6UZ7Nu98IY1ZrVTjc5MzzLzNclXL0S3193T92dRjtrUm3pCWdKYb8lufvl3YEl8hml9mpziBEfMKUPTjo3w1/AIKX04t1w+QTn1AZ+wnDL1lTe9HHEPm7KbvCQHqRfqJgdnYMbXRBMlB0tfePOV0e8pZLvecEPTYjBOve7sYJsnzA7VksCW5PeUpmfba0wQn+qJiqqG9QIDtf+OiWNo+iuPk1UJ5F3w6OeLo07AW3pP0byMfz852zplzrb0HuGahsVb7hBcdMocoNdIcnL2oJm/1y57V3VH74Sne9U3sJCEUbluBMVFHkq12/rz5z0h5z9UqFkSRfJA0xWpEy5g7b/a8AemnXDgGbY3ETu9UK1XlEyzYGR8XBOuGdH4eANdxKR89Kr2M6xAvmPqQRG3xDWFcpr3pVamdg6nOVe/mcFBta0OvJcgUYYQZJAdSfJuIPOG/GGoaxtFbL1m7RRK5RrGs/YGffXiEZ0jGKpvp3QOvcStlyyiKwZkD6vXOA/Y843Ana6UFZvNj8p2Y62f5lmLfwA=</diagram></mxfile>"> +<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="765px" height="923px" viewBox="-0.5 -0.5 765 923" content="<mxfile><diagram id="jAXL_Ft_FI92JxD2iTiC" name="Page-1">7Ztdd5s2GMc/jS/LkXjnMnWcrGfNaVfnbGeXKjzYrIByZBEn+/STjACDqONtYJPEvUjhEQbz//G8CXlmzbOnW0Ye1nc0gnRmouhpZl3PTDMIXPFXGp5Lg+OZpWHFkqg04cawTP4GZUTKWiQRbFoHckpTnjy0jSHNcwh5y0YYo9v2YTFN21d9ICvQDMuQpLr1jyTi69LqO6ix/wLJal1dGSM1kpHqYGXYrElEt3smazGz5oxSXm5lT3NIpXaVLuXnbn4yWn8xBjk/6gNB+YlHkhbq5m6A8IKBMN4DyWbWldj6eLVU35c/VyIwWuQRyPOgmfVxu044LB9IKEe3grqwrXmWij0sNh+B8UQIeJUmq1zYOJUHxEmazmlK2e6MVkTAj0NhXzESJeIO9sY8IC7IC204oz9gbwSh+RzJEUY54QmVpw+aIytAjrDo6ijB5NeDpz2TUusWaAacPYtD1KhToVSPrmWr/W3zIJi+sq33HoLKRtSzt6pP3eARG4pQP6366x6mNf9yd6G1G7Xdc9KyjqN1c3uhVdIykRGYXWBGFaPazAzkjoTNPArbzeLLBVvJyD+nk6GjaP3657cLrTadc9DC/lG0DMO40CrpnLPcwMdFwq+Li28pEucsN7AeCec0y4o84c8KFKMhbDYThiVxnQrWBwcb2G3xsk3PcGwNme35OjKMnP/PTA+HSw7AknxVE/tLNrAyy93snC5ci/8+A4lk5ZiwUDCcMk40XrHYdjVf9zTP7fE0bA5RdGjYGlB3JBftfyZvrAvmBRQNN6wjiOPYDH+CII6jwHX7EETud9dxhxG8E9twVX/vKY77FLcHEFzvpJYQFkxGtoOKtyV9Qf9hFe/GsAEIdOrseiriFARsjcBvBUnfGQBsdfK7eUICju4DJIZ3pX+30Tyl/FiPQZ3y6o6wH8Bl7hZXyncJujwgLHWYcp4+ouyyB5pAFe2dY7XLLts0bP+4ssvzBkCpB7MGpYk+5RyEgCUzRfIbpEA20661dgxHYWZ1cr/j6FNytTO2qi13CM/TI9/iiQPLSfovfOwtxD/XO2cAdDUMtVdMNAUN8ej7yAicluqurT/946nuvZR2rlgoNQ3LeZmpx6fTtPbYEY18J8fortKbYAaZlD6UYHbQPuUxI+LeizeBbaA0g327E96wxqx2qsGZ6Vlmvib56oXo9rp7+u4sykmbelNPKEsa8y3ZzS//DiyJJ5jWx8kpTnDCnNI37dgIfw2PkNKHqeXyEcqpD/iM5ZSpr7zp5Ih72JTd5CU5SL1QOzk4PTO+JhopOVj6wpuvjH5PIdv1hhuaFr1x6nVnB9s8Y3awTE3ye0rTyfYaI8SneqKiqmG9wED7/06Jo2/6K4+TVQnkXfDo5ouTTsBbek/RvIx/PznbOmfOtvQe4ZqGxVvuEFx0zhyg10hycvaomb/XLntbdUfvhMd71dezkIRRuW4ExUUeSrX39efPB0LOf6hQsySK5InGK1JHXMDafbXh90w74cAzbG8kdnqhWq8oKYklXOxPndiIy0Y0RF5PIzEqIr2w/QwrkK+ZOlDELXFNoZzmXamVaT+N05yrn83goNpXJz5IkChDCDLODiR5O5Z5fS7R17gNIrZetrZqpXIZ46S9QV/AeELnCPpK3DGdQ69y61WL6IoBOcDqNU4FdnwjcMerZsVu87uy3djej/OsxT8=</diagram></mxfile>"> <defs> - <linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"> + <linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"> <stop offset="0%" stop-color="#dae8fc" stop-opacity="1" style="stop-color: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stop-opacity: 1;"/> <stop offset="100%" stop-color="#7ea6e0" stop-opacity="1" style="stop-color: light-dark(rgb(126, 166, 224), rgb(67, 102, 151)); stop-opacity: 1;"/> </linearGradient> - <linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"> + <linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"> <stop offset="0%" stop-color="#fff2cc" stop-opacity="1" style="stop-color: light-dark(rgb(255, 242, 204), rgb(40, 29, 0)); stop-opacity: 1;"/> <stop offset="100%" stop-color="#ffd966" stop-opacity="1" style="stop-color: light-dark(rgb(255, 217, 102), rgb(84, 51, 0)); stop-opacity: 1;"/> </linearGradient> </defs> <g> <g> - <rect x="462" y="262" width="280" height="80" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,602,302)" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> + <rect x="462" y="262" width="280" height="80" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,602,302)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 635 302)"> @@ -32,7 +32,7 @@ </g> </g> <g> - <rect x="422" y="262" width="280" height="80" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,562,302)" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> + <rect x="422" y="262" width="280" height="80" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,562,302)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 595 302)"> @@ -53,10 +53,10 @@ </g> </g> <g> - <rect x="382.92" y="262.19" width="280.06" height="80" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,522.95,302.19)" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> + <rect x="382.92" y="262.19" width="280.06" height="80" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,522.95,302.19)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> </g> <g> - <g transform="translate(-0.5 -0.5)rotate(90 555.9500000000003 302.19000000000005)"> + <g transform="translate(-0.5 -0.5)rotate(90 555.95 302.19000000000005)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 278px; height: 1px; padding-top: 302px; margin-left: 417px;"> @@ -74,7 +74,7 @@ </g> </g> <g> - <rect x="342" y="262" width="280" height="80" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,482,302)" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> + <rect x="342" y="262" width="280" height="80" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,482,302)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 515 302)"> @@ -95,7 +95,7 @@ </g> </g> <g> - <rect x="302" y="262" width="280" height="80" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,442,302)" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> + <rect x="302" y="262" width="280" height="80" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,442,302)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 475 302)"> @@ -116,7 +116,7 @@ </g> </g> <g> - <rect x="262" y="262" width="280" height="80" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,402,302)" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> + <rect x="262" y="262" width="280" height="80" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,402,302)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 435 302)"> @@ -137,7 +137,7 @@ </g> </g> <g> - <rect x="222" y="262" width="280" height="80" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,362,302)" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> + <rect x="222" y="262" width="280" height="80" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,362,302)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 395 302)"> @@ -158,10 +158,10 @@ </g> </g> <g> - <rect x="-89.16" y="349.54" width="478" height="105" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="5" transform="rotate(90,149.84,402.04)" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> + <rect x="-89.16" y="349.54" width="478" height="105" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="5" transform="rotate(90,149.84,402.04)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> </g> <g> - <g transform="translate(-0.5 -0.5)rotate(90 195.33999999999992 402.03999999999996)"> + <g transform="translate(-0.5 -0.5)rotate(90 195.34000000000015 402.03999999999996)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 476px; height: 1px; padding-top: 402px; margin-left: -43px;"> @@ -179,7 +179,7 @@ </g> </g> <g> - <rect x="2" y="2" width="760" height="120" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#000000" stroke-width="5" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> + <rect x="2" y="2" width="760" height="120" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#000000" stroke-width="5" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -200,7 +200,7 @@ </g> </g> <g> - <rect x="22" y="28" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="22" y="28" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -221,7 +221,7 @@ </g> </g> <g> - <rect x="42" y="422" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,122,442)" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="42" y="422" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,122,442)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 122 442)"> @@ -242,7 +242,7 @@ </g> </g> <g> - <rect x="92" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,172,262)" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="92" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,172,262)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 172 262)"> @@ -263,7 +263,7 @@ </g> </g> <g> - <rect x="42" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,122,262)" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="42" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,122,262)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 122 262)"> @@ -284,10 +284,10 @@ </g> </g> <g> - <rect x="482.53" y="364.48" width="478" height="77" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="4" transform="rotate(90,721.53,402.98)" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> + <rect x="482.53" y="364.48" width="478" height="77" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="4" transform="rotate(90,721.53,402.98)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> </g> <g> - <g transform="translate(-0.5 -0.5)rotate(90 753.0299999999997 402.98)"> + <g transform="translate(-0.5 -0.5)rotate(90 753.03 402.98)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 476px; height: 1px; padding-top: 403px; margin-left: 515px;"> @@ -305,7 +305,7 @@ </g> </g> <g> - <rect x="322" y="481" width="320" height="160" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="4" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> + <rect x="322" y="481" width="320" height="160" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="4" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -326,7 +326,7 @@ </g> </g> <g> - <rect x="632" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,712,262)" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="632" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,712,262)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 712 262)"> @@ -347,7 +347,7 @@ </g> </g> <g> - <rect x="342.95" y="571" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="342.95" y="571" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -368,7 +368,7 @@ </g> </g> <g> - <rect x="-195.5" y="362" width="478" height="80" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="5" transform="rotate(90,43.5,402)" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> + <rect x="-195.5" y="362" width="478" height="80" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="5" transform="rotate(90,43.5,402)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 76.5 402)"> @@ -389,7 +389,7 @@ </g> </g> <g> - <rect x="146" y="243" width="240" height="80" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="4" transform="rotate(90,266,283)" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> + <rect x="146" y="243" width="240" height="80" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="4" transform="rotate(90,266,283)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 299 283)"> @@ -410,7 +410,7 @@ </g> </g> <g> - <rect x="202" y="28" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="202" y="28" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -431,7 +431,7 @@ </g> </g> <g> - <rect x="342.95" y="521" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="342.95" y="521" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -452,7 +452,7 @@ </g> </g> <g> - <rect x="-48" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,32,262)" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="-48" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,32,262)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 32 262)"> @@ -473,7 +473,7 @@ </g> </g> <g> - <rect x="166" y="502" width="200" height="80" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="4" transform="rotate(90,266,542)" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> + <rect x="166" y="502" width="200" height="80" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="4" transform="rotate(90,266,542)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 299 542)"> @@ -494,7 +494,7 @@ </g> </g> <g> - <rect x="382" y="28" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="382" y="28" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -515,7 +515,7 @@ </g> </g> <g> - <rect x="176" y="401" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,256,421)" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="176" y="401" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,256,421)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 256 421)"> @@ -536,7 +536,7 @@ </g> </g> <g> - <rect x="-48" y="422" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,32,442)" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="-48" y="422" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,32,442)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 32 442)"> @@ -557,7 +557,7 @@ </g> </g> <g> - <rect x="272" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,352,262)" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="272" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,352,262)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 352 262)"> @@ -578,7 +578,7 @@ </g> </g> <g> - <rect x="562" y="28" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="562" y="28" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -599,7 +599,7 @@ </g> </g> <g> - <rect x="22" y="73" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="22" y="73" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -620,7 +620,7 @@ </g> </g> <g> - <rect x="4.53" y="762" width="197.47" height="40" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="5" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> + <rect x="4.53" y="762" width="197.47" height="40" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="5" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -641,7 +641,7 @@ </g> </g> <g> - <rect x="4.53" y="702" width="197.47" height="40" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#000000" stroke-width="5" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> + <rect x="4.53" y="702" width="197.47" height="40" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#000000" stroke-width="5" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -650,13 +650,13 @@ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 195px; height: 1px; padding-top: 722px; margin-left: 6px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Steering Circle + Steering Committee </div> </div> </div> </foreignObject> <text x="103" y="726" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Steering Circle + Steering Committee </text> </switch> </g> @@ -683,7 +683,7 @@ </g> </g> <g> - <rect x="4.53" y="822" width="197.47" height="40" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> + <rect x="4.53" y="822" width="197.47" height="40" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -704,7 +704,7 @@ </g> </g> <g> - <rect x="2" y="882" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-S-zLSkncHrynDkB0AHMe-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="2" y="882" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> diff --git a/docs/platform_management_plan/_assets/planning_overview.drawio.svg b/docs/platform_management_plan/_assets/score_project_management_planning_overview.drawio.svg similarity index 100% rename from docs/platform_management_plan/_assets/planning_overview.drawio.svg rename to docs/platform_management_plan/_assets/score_project_management_planning_overview.drawio.svg From b4ca9c84da6c00f67d5c4e72449a9599f7532cb1 Mon Sep 17 00:00:00 2001 From: Andreas Mittag <andreas.mittag@etas.com> Date: Mon, 26 Jan 2026 07:17:15 +0000 Subject: [PATCH 105/128] removal unnecessary images --- .../_assets/roadmap_example.png | Bin 137026 -> 0 bytes .../_assets/saga_status_workflow.svg | 4 ---- 2 files changed, 4 deletions(-) delete mode 100644 docs/platform_management_plan/_assets/roadmap_example.png delete mode 100644 docs/platform_management_plan/_assets/saga_status_workflow.svg diff --git a/docs/platform_management_plan/_assets/roadmap_example.png b/docs/platform_management_plan/_assets/roadmap_example.png deleted file mode 100644 index 88f85d37e7eb42888630a0eb1a124b35e9dd2297..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137026 zcmbTdby%Fe@;?j|ic8TV#hs$Xy-2a*E(-;U7bq<5QlPlIQ(TL?wz$jU?!LIoyX|@O z9KP=#zrC)#_TD?mWHL!6GoP6RD#%HoA`u`#K|!HPNs1{!LBTdbK|v29Jcqo&PBgfN zf<nqR6BSjE5)~y?u(dWe`(y+KB^ekS2d|<$gX=%syhD}=7a_MT>w-*5bq0kr*8WaX z1cB<Ou)+&MHg1?8a&nlU3<}xyaws-jF>K_l4D3BG6r^2l4Gf(A#x`>9(@9tBX7{Q3 zE$!RG%Hc)F)XGV8sKlSx2$=e2P*GO}9i-M==3*bQak!8^dwKC|kPd##LD=^8et;^k zzXo4qq6?3o0-|?x9v|*olTebQJ7A!Y#JK%aJETRf*xBA`!sydO<+J@PYo=CZ87x8Q zM~sAd(ZV%2uSuM`nV|W=hJ}T>js``rgCuXj=BEQCS@<<QscV(oSuz-dbF0$X?MvRC zy_~ePF@+n7{xiyVUPpEwS_A0Lb)NnB6hplqZ9Dnr`a@O(oalVSHX9yK9q+7Vq_GDN zG6PVQQbuSH5+fTjyuW-DVm&pCgB@TE7r+wwVMCri!eg9MCo#yHyt6{1n_TzPGtAIg z7sVz`<y{XEP>J7nOCy1Za*;u8TQ1!&_p^tdqDcNUNw@yj)4XoKFT*wj%%6IR@+e_% z2fOQn??n_N>O9bv<}5w*m~FsPbV6tShF_<0yZo-cx|$444X=!E0dvK^S{MTP`L_&3 zI*)x+xQ=ywehS<0(~N5G%S$2SmdT2vt>4WG9}9(;+&mv*J%aZ3LgM$P`u<$aE51)N znRnrfYsH7ui0)9CoUzEc&P=we*W-RFGC&y%s9f;wzM>Ns3lN?R?yiaXnjXp_72%E* zY#0YM;*+ADc;=j5iU4)O2&H9RDb`V?N#b(j2Q5Ylx9)|h06*IXl|WiO10%5<q_Tqy zBaHABmH`_1r#B@jtcCFNX_$()Ow(`|K9~w<Xujs3iBe!?mx=0NOMQ};(YE2x+eu$S zGq-bJLFJMnbiDoe6^8CDK?KuB6ipHK9{iIpcbTNLm_hz^7$lf)@ki8X@#wvzGm!G1 z-{9~f1AIzF7e?Go5eR%2Mbh=L-}`KQ;Lt$l^fhC7b>S<zjKhMbi<<XC^GL4lW$Bmj z_Ru4$E9!Y<^bY0~L~LQH3~YrYS}bhTjW8r(@k|3nk%@OIXoU!>frS#)8N3RPioW^k z`SPZ(lYDZsWJkhGN$hBo{B%PXzYdAUXB3TwZabU-&M;hv?oma%@(n^*(Oy2MhWXK1 z-2Txph(&_cghidDIpM_s{A=7IFHrZazWevcX{UXcPsA5cHPCZG2VH1}G@rRsFo#}l zeL-$xwJE6kH19FbIxnt+ZUuY!g4uhjO?$QZNYP195KHe%S*Kpx<#PI39>N$bz~>p6 zR~vOP#X43Ph899CBE=WFEEL7`Z7~$GF05LN;K1{r3_m4)I$~mCYGGbr%1}9BCQ}7b z$w}%&zl^#Pi=x7hoR{jCA|I1e!YPQgOFs*HPrVlj=v7=-IgztPy=J>cy#7WhKBf{y z)*ClZsYyRWJ411;6-1iDARezp7t5qdX)nE7Gr?fyQ<YZL$gb@2&92}~bH`%`5kDxz z@4eUisP}2_O9t!{6*W_e(~9$6Yjet6eBU>k(MJl(lC{bEPOD8PL90$nVXML8&f~As zq*FR?Q_oay<E-gyam{jFeUfvswE>T#faHRN;wR?k<`<3Rj+Bm<&zQly{Cc`2!{hC+ zkCZr$xVm_lL70KBLD{MaRbf<~lFyh`4s}j<pQ#bWMoyna3_87@qDKyS-fDh_Qm-OU z!HF=A8ix|95}?dQqgvTsL>4fpEt^rJcTh3QU=L@ne(rQGa*n)fNPvxMf|~X&vr9Y_ zPsN!&HA#{&w??^}LzTmwT|5aV36P|$b)%K3m8gZP6<!@U%YLA7AacNYVDkz!wUZa0 z*Pa*M4zYoKfqTKd;Z;Ml%Z<y5%iLMg*}HR`bNri~8~dAZl%D5I&x=s$Q4jGAP|f@i z{ozr-FWcX7zO#9k^R6~j-%#5y?HGFP&@aL70{I%50q-I?;{7(Y8MQsNXf9IjLvCWO zY;M`0-9XlWL$ZB>`<q%;d3GU#hY^v<jw$l-tj^VvoJgwviiwjnoSD9U^Jvvd5TS*k zMcDb<J!rz9L4#yVPD@Tb%Y#pTHRm;k4!jPd4n_|5>^xeejNuN0#D-ww*4~Gddm4D{ z0F{7fG*6x+ZffpH-Y}*yy`P$PA4k7O$6<{ZbeN4K?h+li^*E1+kNfQ??VL=g&cz<M zOq}y9L=ejhz4JUUKBTteTjSh0TyAM^20hzYIfz^v-JsjU-_=~b{wdQRyr;UwacH^L zyx0hWUt8O%oXbnk?E1iJ{&KCwp@q<G?q1TP-Gj<Q{yy~1?}0IRrL!gY^0h~mm?NU6 zlrj{;2iSc?C!&0kI^Lt&oar2I8JT!N<O+m7gk6MO*fOM2)CY`J+$fS0mI+c7>{(oD zoErXO>Q8L*6iuXVEFG^6M1KxSZb<5W1Y$GMzuq;S_{lbG<QgCPx>hr-xyjn^A*h<6 zv`j@evF_xKzCd+AH7|>GbY--9R4)N~KzdUQg(CO0amvQfY`06VgArauH@930%+RSu z-n7rOVkwp*y5s91s#4lRoZ(dU4p%HNmL9QCB1VKl?2!N~e>oXqI(DjE9CN??axF~} zO_}T=?n~qfINzdIYG8l>(-{`AthbU{HhW$lSysOCN75T9_L$8SwWJFh+36%@3!}-C zDTmTGTD9&Ar*>s$dXwL#Dkp1=OpQPFzMK_aQYe2h`?9j!GWsI7Se7EWnM>W8%t~t7 zmSLQ~lJxX`@~DJS(_AyT(%<vsp@2!7O*>(sb<jrpdU!kCS;*0{cDBXywwB0YC{*Wk zK5L%Yxwwgt@3jLq_^RcNgNb^J<wHAQ8gK`2Zv;4~<Mm)?<Dq~xoASydv=WrBJivv` zQ^Cc-eU~pT120f<Z}GUmQ!}j=kMU7;QHx5oWBzQQiUXr)_-S|-v<Bj0W_5;P#z(iW zj;0wMjalVNWfj{j7oTTWOe8wO?CwNvb2jr&M(4lj6<w+Ng5H7-I2<@Qstc>H?LVjH zTkTJu7&?Zz5?PmW6_lAOnDz)j%YBt=y5hK*YKiusnUfop1Eo(2037^nsq<c#>r8Pk zVo$M86V1%KPhNh~4mRvhTzc<W#GB__de(GzeTV!LSre~C?|m!xD7~q>eW0sZou%sB zkNy|&;A&<|aKozO#;j^tQ9R%FE4(ru0H5Q+%FPU66`?Gbr8TF+tX*2Y5peH)yrue@ zW#inS<36~`j(N9bWNi$%Q`)^ybouhq>Vj$K;1KzMa9eLth`WvWWpldI<DhR9yfQkM zPzQgX^XvP%?ZDmWz9m#o>z7rp_=VP4C$8DAc7Etj9`y?;JzTLxorl~NZ`XI7CMouh z0u6Ny9d%#3vYsd%+3u=dq_cU(HFG+--!M<L@^({nNh~5Pxp^jE%IyF^u6vi3Sl(Fj zf|TwFNdwpUXXQ6o2g==BN5jK;lWy(qbPwiN)f>r6wGvCwEuMHRegpV)ULwzl2$9?7 z=*4KnV1(<RLD|d{$EC5Fsyz;4T*>nn)tU_8dhMz~<x)*mvGc9-G8pwHLnDZB|HNri zQ(I-tb2VYVsWOv-`S9wEEV={#G|Gd1<;{IS!z0f#o5|L}N0_$2XG*G0Rn`!*Rn164 z%2-wwiXQTe00kXj1_cXwf`)tvAYUk`XHou8@Q`0j$X6@_=Fd{tri^EQK0^=ws`yq} zR7wi+t88d%WMl<2wYCElC;3B2O_`}^*lEbV=QXspWYYg=ZD7RYWcm456DWQsUdW@R zk)1xNljSEXAg_}E`R^LMkmp~onaN3iSFy7YAlHypAQiQ?H6rC?Vqsz-7epc@CFQsM zXw0i5_U@17kbeT?rgnCpd6}6V9UYk*-!NI*nlQ8S@bECRuraf-F+yrE0-dew^qm;3 zfE52B@+TcJBcP$J*=IX5Yb(-UboC9a?d=4}$$xe9*XKWc8abK$-IEpYk6}Ru$o#8> znU#r!`7hd#ru@I&@+z1)8GX_eGqZ$<2hxWiJ0~mu@B05!@^_E_XsPjcOI9{kwtqJL zN6~*bRRtQ^idtJj`m_`Ldusk@{LjKa8uBy$8u~v(@gF(=ehU$_AQC_GUy~+?wEhXr z4hl*bN=odliWBty0=ye`Cm#G!JPhTR5z*~0i>_dRu&@gD1G%hl5E894mYI*FA}_6K zgI%^1Sk?v1C@g83NlBR<dAF2o7~i<Y1c%uJ@K_6&w@kl2Oq^><b>741^iv>(f<_RA zg2C{Dg8k>?2O5~LuZ}aliDGa5`TFn5F<#$%eV@@jT}b+Y3nt8A9FraPe+d7F!t3Ri z`1ptjPxTC`FdgdkENXIYuwG2`Y5E#aq6EjR|HbkjynSbYhHcv4waa4t?=k(S0)o@Z zn?I`l7l9AzFkvY_`b!DEbUh&vNE=E^XbE`ufNVyuNzwlm8KlB=ER>7W3}{Ep@M*qB zejukmDQ+m}Moi%`mqy-HQ<Q(r!(W`j=w6{b%@w3m7+nW@-qDv&i<7dX+vG`Zh1*JD zBdQil<!A_=J;~MYNrHQt>aR%>#l~wiLnVNDvT?*ZT#EnaKxRL}TC4G{l18(&3xM5t zclcPYlx)F*a_7_`mYvYj9ZN!mNxw*1A{+Iz4Y2@XM(CWwsDBCHPR)`)UtDLjj#BnW zINpon6tq`-Qbm)NSpn!IKmeNp(zlJ_dalKqR9Cb6%~y6SW2zerU7O-A2PJcLp+kTM z5kKU04!xB8JZ8P~T+7CbaWyNGwsB!w`PiWOc_nI%R4(weEOLBFW|Arc^)&0pZVCCc z6<|dy+UYfwZAP)%VQ7D6|I~K6J>gEr#$F5)AW8k9^|)o{+t5y!z~gAN7gXOtY_t=9 z#WB;wt&Do<Xz6``QzC`YK*V9}MgsI75@{=fNxr&y&Hg%s&1m35#nF1=Ddkf8Or<ev z;v*9cwQRB|m({h>XvZ~HF+rWNEQ{9u%ikMjF-y2fAm@0xpmM^q$CTIU>}8H*TF3<n zx5zzwcvdAIQ>P5@fzLLD*8xn(d|Oc!9S}~eEGe0vBYw;#&qQ>CLM+ASaG0k;2QVAI zSUCHUp|`U$PU`+xxyhVMH@-Pq8Ns5}V*Ko!m|Ys+X2yU*B9Mst`aU3v2AEqJ&omw` z+8qHaJ<uOioxBa+urQnHJKqe(JU_eZWH3AWYEu>ej5Bj(r4V)L;x=(euL*O{WmvN+ z<(+&A@!t6}7~h?C_eYJgM_z`~b*N1+mdQw^N#+?P%hxWsG${+NPawzY$7MwVURxOW zw_xChefD$wD~5%JgFI#-$M(;q%zDjoL%k`c?W>-q>(fGK8?(uIZ`;rM!OEuBg`PXx zfp2C%HHrMOpfP;gR%7=}*TJ46?vDY~7KgKr5jFeMCTw7U{JiI~Jha;>LnczGCYChr zt=}&V=UvN)VGUgdx|48!XsS2eXMR@Tx^=;>fA-;|FEKRkv2rw9cI;Nt#m7%VEMXwN zO<vNJ)(@ER<F<<t2^DobzW+`lJZ+?M8N;QgjLlNV?fx+8uH0JZW2*3CUdVLJnwfXb z)^K_epS?T`OsM+Q5<I++a(@n2Yz{dd^yL5yWrch}JoXZwWA9_;O7rmr=ET?Kn$YVF ziQV}Yocjx)C(`P2cO+IG$XvbDdAzhaAYY;uZ6Z&?B#GOc1rB&0U&;nsl8uVTte2B{ z-}<femDYGZ#Lh9iv8zgaX42K!eTi10RT){RMsLW^H`=-cTxPMHt_W^1y+@QKdLxEE zkj9^cgfk#P;gOtmYmOQ@958PaI~=UG{$_dDyI&%lxZpgeJ4LN(IQ7~@LYt|q_Wn?V z-?8F-P2<j5k)S+V3C;nK;k@2uK|8smwQtM%{AO^XQ2fpA%mMQ5TqQE7P&ab&(`@Nv z<U#JBrr5c;YG(Vr%Lw=feEy>~wcM@DQg`9GcD`w(5BpiS?wNgF&BQ@Jr`^RJmCN#@ zq@Kj$KtgT8SgxEbG5&b+KsW54s*n}Ar+SIIg$_r#23=+f+ZIp+KsJ|%vcOI>X=+U< zr2x-2%43d<1?i|S*1PH@vpdJ`5!K^XIQ-zuHC#yoeZj)|eHMHOfEhXl<(kZ+@*5$k zyE~%s&zrNrn^3;Yjy-6+7}Z0Li^hF_^Ihth`SIwj`EiC`x1zt@&h{9{0-M+v!QXwP zPVgSQMqQN}P{*io60QYKCV8${*#%bY4<{VA2Wzw6UG~yrP$LK9G6~<e>`BYX$yGUZ zYVkVUp$H(OD|=IEE<T)YR)zS!#Wal?t9$$ECgs@+tr_=ajL>vmZCPF(UZwc3bmeO4 zjfpDQ4*!reVZmAy0qc*nE5pxR3iJ(WhIKQRsNd)LT%Q(ZsC>ILS4@s0F>6#UgDATd zQaQZC`#2rheg%1+caoA{lLQB$QMeqr==E~zk{o0bqjo2X-{%dbZS90h=DONh4!1|_ zo7Z0%_e7-mgu3MP!hvG&fdx*ZA}aL;JhPWetktEAchi?kihc1kG@vp7pscj2-0_mR zV2#Ut=d2#td^)r0cz6ccbohbd#)UDNE7KS}l_xd6Ic6q^r?d`a`!4TDKLB0H$agW) zB+hU?4AA5}JXe*7x|c!R2%dNll^6|8ZZX$_srJ3~EJ`mDG9H`?kAGeN#=U<oj!9Rn zgdts<3lFcMFI}7t**JtkLa<CLaCz7h5AAc@GB67VJv;>ag4}d(ZLdfWe3CfX*G<B% z)ZDf%GC4C7xVSYO4WDjN;^gvj(IWj-qG!;Y`&Ew=0c#zXYzn7@Hcr`}#=%de3>T1X zmC4eJo2@0rv&hlQ3Y)gRS&mM7a5DS)6e7E^lc$_!q~<G|86iT`xkGn$;HqTMpnbMZ ztJxGQ>fY4)o(_pUfR3*}m7%fWFvdcMuGZ>SDIV-GQRcnTr5V7<2&$MSLY^uPLK6CI z6|@b(={^`e_@i1XwW3KqWE?gJjF1lnQi|fIrV#PK$C9;CG}jmpX&1UQ3?y^Lwd~Bt z0dXyrJo7CA;&d67+-A}?<!)1FJuY69tfVoTI4$0SL7Td==|v#i!K4fy04B<n^MDx6 zdXj(<dnnPYI$ZyQZp*v5R{~B~UmK1cZ21xW2Q}+_1aI>Lk)$OR%mpqhA{*_rB7;L- z_<Cf_C`%}x7jBsChFrUZrw0<fNA$P}p$;P!8K(|ezSBHpcNt^1R6b9ddE={fp?Qk_ zezRYUxJ-xsDvMF0pQncMNWJB~6i0smvrdIm!e(d$zr2<;TW_~Yft#5n5R@$G;sz>K zdYfJw`YcFL&@rC@e)m&}PP0w4D-g#iXSTGIsgPz)^$?my{3KrLdl54{=hnkDq5I;A zs8)qRDgn%Nt2$SqR(&y2O7E7K4`8avI-hiphDalJ7_{smu=6vpavpf7S1ok?qNn-( zWaC0<%l)cN*Dm;UcyJ>#Qi=1^jMOd9XYPD!bo-`R5dEkIaoS7ly9$XFSv{fZyE37! z1lY!pw;zXwRB{Y7rDOYKsX-1=dL{J3(W`5&>dnT>i!NHd`#YJ7eW~hnm^%GwpwGvz z@fL#P%9N>RbO)jv`=X5pzFqFBO+Cvp7rpz_!X%x9sRwS7)(2A4k!5eiI0qgkWeK<N zucytXUJ!E^TGzz8mQ5AtiZ6T!9<={BL^Naia8`asw=}WP)4ce`Sn^vbz{PXUuXO2X zCE0@O++DB5#dr3;tiGY^;I7jo<<?H<-tnqVi#Qpg?o{)B68^T?z8iWwAv=Ncwcf&E zA*~O~YC9Ze>UF)(loPnw`Oy@XDwy{YdHr;i%)eGe#39jUzfNB=y@^@1B7b*<@~w~m zxp{%muKZ^!78&u27k%}m<~C5PHR&YimdF&$Eeg|~M@D7T__M0HVu~P{T-$4<LJ8H> zBvloKEF~V%qiwT@%-VROZ)V?a)?*n0q$!t<I{_8J>ZOIH+j-n(W;}=ZXOzo`@R^6o z^%YdA*343$3u9~CR#t|*QFmgo0Fkhp!93k+c{PlZ$aa!U1u=A}Z(mqytK+GIZo99B zvR+4%P7i;hv3VuE{gws4g(v=*OUdIUSx#j{kM5j_fqSg3<IZ@4cCl{KM8P&0I#sOg z`m|Z0P9}ToYqf+ZDw%hoJTG}|B}t@*0~Z-%u}qlqkrj5Jsnd%fy7efcL)vb&$}Fsi zS<AC<s1cT$&}O(**@UTZ;b74-g8ym-x|iE=QZ{`~r9cE9C%?%Kq%EX#F1=BJAw(p+ z*PO@9;!5#$79wiuDQqUnbR0T16lIrCd^|=e&xjcofTqbql&W1IiN;8gD@}92Yz1C> z<FKGJ$B228UQ@syei*5XH#z}Gxw*h&Em`}d*;2=#Ava&SneAYWG#<OR^E#mnuzO;k zr_<fJ$y?z({@gr9M73oy;zV%ieVheeiF&;QmP(vdnN$5moP}IHZrtJy8$D@FcLzri zZPsr;!mAlM;UVYVza;j9&s{XRKohks%!Q5eLsoAqDhM1Cn#Mi8POJZd8OY+CB!J)T zo1U<3L1o=;x#VgtH2!d-y_9}75!q;=WwW+^q!qbh5jMoU<|-#wCb+^>sff<7!*-Z7 z=0_RdVYpZpGdOoK;{AhW!nL=IO58TsOx%T{Q-!j(iIOFLCCT1g4WvFCM}>tx_Xbw8 zDiNI<FSbg8(1qso8O$>?QW}ThSOJFf{Tsg;`oUXQo}Bd$+KEw}Dpq-3-TqLK>)w*_ zoR%SPx!one+p@S;t?P7^DsFXo$~$BJnQ0zwf<f4Q))h(fFRIn<oaWx|j3>RmSSMC- zMQ<U(r2C;98bD^e0u|5yQ#gooVDt`1c(nS4Y%kmH4XR2X|0%fuqJ(V1JI8Cc5aQWz z9UT<;t$`?>Xe4uKX2$yb*wsgJeJf*KV;#!T=K14;Zh@Jq%#xGq7-GW%E%*1{MC>Tp zq(RGM?d|i=WNjU%4UWd^2A$CV;~O|7!`Kd<FHEIw^LdyK!FVKu*#zz+Wyys~(_81Q z$1VIox9*D@jLx2_aU+ol+~HMf<QyrzjXD<1s3JFG2?^E_dWkpuo_M_<y|taAs2pkW zw?`_hg!eVxEB>xr5V*KBks*i5VJEK;j7#4ZSXVTbWS<;s(=uPrjoxmb#A#Kh3Y4m| z(z(0x$$SS2>Z&}u<f$-H1be=km@@|xyKiW;)c1<cRFU`oq>}P*82S+r=PPHMIa+Z4 zs6tF<`RV|4SxR=5E354qdwBe#-Xso1AbS2|7Zp6Z{9KnjbQG~r!MswTc%GczGCxMz zjrnkz-$>hvp{jg7baP`7uNm^NUQ@3B=K20@C8tbtpWP+XL7jTcidANBhZwsei=LH7 z$ClL1-8lOBil>r*^G)8_IzvRa42Y8^-4U!UxZ8ZOMkLg!=zk}r%TA{lsW?mCm&nNQ ziqBbX;dp|H)ac4oZ8#n;$QFK*d)Y2nC_rn~Q7S2&3}Ak9)9-L2sJAtUO>FD5F>8Ng zuRzkQp1x1B7mTdtjF}U+wTBHaxN&MsR6JXM>$Or4t7ktl6@5_F-1CYv9vIUrRPt%- zT;2xE=?sZU|7oI@<3+Gz>eW1k0R5R%mb$O?<_AJ|k~(~?=cVO~njc?n*da)4`(Ex9 z`gTp(XWJmJzvb=Ppw^qiri(zID(<5FV_it;ww*bQTG&bs$0XOfnekt4MiIY{dVLCm z-Z(qZ+d=h#GzWW&EQ(m;^vWucA0TH7wBKKh=d@ZVi0eo1U8y#kW8(N|4UN7KB`h|h z)Hz|x2t_8(7t<y$*OC!I3C4Oz=yZ-ad}+&VvwA#=mA7{ryqAocLL%)?D1DfXm~y4< zgT|&J3qzG7gQsjCe{l`8Vv+jDbj~#djk|E1O*8b%H4IK>0Oc#`Zp20DU|b#wDI}|| zP@WF)SIMSL(>TJ^9?lopX1UL=3smc*ot?g+8Ek!ACZqZJm|z85q@B^-!{NBu@?cK| z2Ae%L*qfKsM4K_nYuKH;PW2}NvmDCru4|>}%aUJ$=Yd{bvPlI|M>1%fbgB%oIaow( zvt5E?u9hofAo{QQRG)_<1O=qz7@ae`VauhDBh(OehBWKmyO&<r43{q4qAADXp;L^^ z3akvbPAEr&9bstih^w}|NBnW@bd^o{xYP`e;AKvB+|T9I^XN`@>~9{ey2o!FT5<aT zkM=6>qC_xr*`)oZK0XsO@j9&dPKXUSWN;oMdF@uB)f`E1tRP!Lw5gvmzQvUL+}`4| zV0hKd1zSip%$C>qQ2hnHJlL(wfrCJxxU~lPZ+{gY8lQ=_fU^pou{XE8J~v;zh+vCw zA=f2HeJuuFX?2ZP>7Zvj;7nL=u-?ijVNH4{aBs^oybstAdc}=fsu`MbjQblQ_@qUu z>*5sHhQ7czZXKOFJ`#y#7ty54Q|G9t&5;@%uzbEfn`UgY{1ygDiL$-!SowN=$GK?A zT2(-mvMds1yf1x9ri8(prrv_n`G&v6uuI;0Jv&SE_9A<UdN@PynWySr&xstft#tu@ z`PItu5!<GErIvV7k2kurbT;fbrBwc;#rB?@<yEh9<=I8=3Apuo>?5s?UBFyV?{JP} zX<@p5s493PV0|Tu=6T=e9&kPK{g)l!&Ytcw)$g)t^XkQtZ>vksZbtp5P`CIMv?BH6 zE2%?Q@AQ}htozt3wPfN-OVTy;sN!cn2&OAvBZg3PKV%ltL3b<V1Sy3N9h~W>M&+$8 z-UqOUKg(J<jW4)Uk1FQC61rB9W;}dRXL;#Cz_QPE6PP}x@x@na$+j$C6FKg9oZu4T z;0C0wKa5G=*qQN6<BB(Xu%8LO{?R@-ENGdFJGFs4#pl)pshdCSH&K8iH1noGKW5fr zL)Esa7vnkIxG}R**=%@u>q9n-?$|Tys|2ZuTbdtR8fjyc@?@aCtc{|HIoUY}ps-Ud zXEJZibxgL$=GHV_B1L^&!|o62bJU~fe?X$%8pv)xraU0)baX0y6pj_3tg=D~e6z)v z8ATPeJ!Meg%henf<IdgU)KJwFe{a3DmrBJjRbW9VWmk5N?K%F-()*(LACH0<mZ(l$ zHimP8L6Cs5x$MxkjH*|2If~q`6Ck*eMu)jPN?h`q;hcaar7xCAszlJN@I<9PPdW#l zC&ZClAT_04BGD#QR74a+KN)7y<o+H^HIs+J5VL+7*LS)#tcw2Tl+-uJUe7UY-6H}@ z?tL#<&+#$PosTCSy^bcC-*4oKKY2>qg<F$Po{dt~RV2SAHATI5&)71Zj4X4vH!BKd zsi|j+{Afp6Fl}Qv=lZ7X&B5al;uKG!VD`EFg}3FOXsM)=cS0#$F^IIKjABDeQb}K< zp(YS)sA;aO)M{M)(Z~6>*B0RfyDG4J-XQx1&8hiN@cXMjb?~1)-5)q9QQcNwKgtq# zWNqHB-~8&s1zzv=lD_I^)29(lLR?99fu>K>7^;8TVE;x<CB<M;9>>UDsKTpy{~Ij- z6QpfRMr?8uTS-2E*M1rw7A93h;670%z!Dc%Kzy1Dgr5PzSyEagB%$qse~RT#FX9h= zyvRcTU$J1=rX&3SqV@;#5ZJssKcBYI9OM50gCnZoh+Yv9Mb$uQ{b9oV7a<6IzP)0k zo`)6sw0MNkncbd0J*0hUD5<@J|3}Oo;r|bDkEkO4e?#2AzsA7Fk=nX1RS;VT_A^Y6 z>U8(?Nb;GZB|QOmdkG-w)NjcG(MvN1@f^AvG%=^IFX!cM?E6X1#v7JQS5`Q%F;3X! z=ECPsXkuTTLp!6E%2l-1s=|o+m|i?koh=0EW8=Pf=nAmpD~mS|*f+gTd^NE>%xv1# z(z@i-8t4u`6c#4A7CSAExeNb4aJ!^AjH03<`{M{b!5Nqvbhhi<H|pwV{<DX4&K|(8 zfF4m#1<9@IP#dpmMm9Ceql=kYpy+bfX#$2m%r{0z8#9QB5?)fmKQQOA+3v9?d48t4 zKiy#OOYddK1(h%@IazVtH<?vvEmk=J3Y9a0K=y`}%Tki0*YHA0MYzLSUIcgrvZ}W6 zs^gdGH_9c5CEND~)u!(&AIfJ^2aA18;|EjdRj~gj5)@$vyZK71zz0x$sve~LZTL7s zU<Xx=K~KElXk3l=bnP9%(W1KDX*o#=f6LpY__H+LJ=a7BJpsvD;_IE$dtc(whdl|9 z9jIxez)OPI_A?7?Q%8Ehc)7L-$YD72-N3bAy-ck$$y@z)yA5xy>m%1CFIT&jAyp(a z<k3ranxmE^n&!IVSk*kv-C(u!*{s%huCcj;*?Yp9ri||<=AP)j>D#B2%Z@vT_Nwxy znZd*bYzmi22ecA5#gvxyc1zlz>mfr?fG9=B+5Pklp^3IN)b0~I!|NWAn~!(AZu41z z+(Vy=?fPxGRfhHQt7@x;7&8dAY>QKTlVyusICyIVlq!gGzFo><#=XedyDN-EYZ}V% zUoZm&%CftiVsp6e9$vFww&K`1v{CbJyGLm~oQKx%8c8OG#n~r_IrH0&G85*F+yMC| zDy(FlD^;$Z=SyzhnM-bb?`qDM^$VY<@OTW#N>xW2OS6uTY79<pVLk|j?Y+<wdY2w+ zDRK!zGPXOey%V1+q)>?MZ?F9T@>Ocg&3Yw(TOfM@;Cr9?NG#mSe(f#DycFWAKAgX? zU$zsnWK`Xx5qHNAHflTYx@6t0$`_JK?b~|&HhuV7t)zBq_J#SCgzN0hxm(}m^XBm? z2TFhSvm<E~6KMPY(jUJRQJa`B3^z%v)9^>#Pt<+uw3$ANMRJz8No(3;7{r+M2dlb$ zX-vpQQmIl020vy}*Y~%@l(p{O6E-}EW4=ss|3D{&UW_i&oCl*<VGwU#GJzq!6A9AS zC+S;Fi&S&CiN>uVktchRIdN?LgQczIyiqAS%YLGT#+~hpNB&$Q0bWT-ZY^LwPuEw( zSM__*r=ist-#vqZPwPb5N(9)YZ$q87Gh-N;Yt*q=?-IVBGUMz=Wu~9bKD@gYuuX<N z58=A(i%8w9B`h*lJ)<un%HE1^#)bqVH{NHx`meL;mmd85odJ~*%<ZQYV>VD<lr};% zR0J|QmRGUg&ojSD$FMIN^`CS|l$sg;n0wp)u>Lp^vDUXW3h3L8OS5f3xa+a)?Y6%d zqT)DXR^AP<i}y8v9)^jnI>U(O*QoI5QZWPZBeF>e%fNiv0LH4kWkPh20@Krx;FOi= zGTv*rbg-;fux(8j0=`#h8J+hI#;H|vgO5U^%^&K*;T1xgaLmpE?q8SEya7bzWcVbW z<Zs|B=jL>1o)i$<sBwKShkH3@YDj|u`W;sJw@QLw7xVbQk!|C9Q?c<yyRd-E!Rgk7 z$+Vew(GG(-bc~+4=O&ILQ!?-csgg>rz0Ej)`tuQ%_b2NI$Y*=G1?H+V?`oO}m*t}f z`<2XeE6AiU%v&!NXPvJzv~u3Q=nuSP26~htJC+sNC*92`E~TP)H+8?Qey<jmS=IxI z{hui}&&?~n^tYl0N_RCkHEpwP?Mj=&2{c8`;!C)a{drpdb%r~TVjS~#7%)&KfPmKu zu^PJmjB(2}j2G5Nv09gJj||Uw-F}GS6wf|3lL@JJ(=#$2$|NU-pV~?7C|}CV-Y+Pf zgYV?EP0?GK`+ksx22=V@1>w%m+Uk>7@>@t|TQhRk9Ezi{%+#2tvF)bUkl_2!QPoFB z6J*gMUglg0)R*a2lfVf8i)h%SnONw;)8NDi_oHAhl|DM<HshQfRn)!-y7=G7@4n9R z9+mHeLVL-=)}C{H6}4-FYyL-YK$HAuw9;Xo?;G!A<crmVEl#5ebLuD^sao6Mt4_z> zBCUNGF20wUaI+9XG8vNL88^-xoiqLnbFC87M}-qQa{>={q|o`JSzWnrooPK*Fksg0 zZfIsAQyRIj?+501eJ*uxUiDeR$`y%5uN1X+UXH|M{=x7=U0@ZlmeONiD_34D4VO}5 z&|raN98BTjQpwAAIhA;sHYt_;brTE<;#AGnTwvEBPqlPTz_el0RqW-C^HtuN(wu{t zknB?9S3!oU0Ry&sb<Qepe26vij0REl%U=`q*B)BV5&nGjh6CmJ`gDugq{T^{$%K{Q z_E;DvgrGtn=3G}m1eIZ5Wy5n~M_j%%Gt{+EcsSfbqUhtfY%qvpCfwK8H;MC(eZ4Vh z$ttC<m*Z>n@}(Bfd$_^P+E+zBfQpmbPIG0cLs{zfZ#fcEJGZy_>-{N!b7VEp7GWz- zrzjN_6iquT<1|%2Rc{My%}3gt+E(=Qf+=xS%@`UH>F;}na^J0WX4M~J(h;sRcR^I` z^=|wrikK%B;ui6ojH1M@z%mXx3T`jQ@YCoS8JlI=tjx!x<|>4Pr&MAo9QikLI(G69 zo#=WE%e*gqZqE*tG@Q75$Kj2fzS%@>K$FSSaa>Nap~K>rnLIpbIw4#lA?LA|9&QFt z*g>opTieenw=stAmoB;P``WYBHj-@R$^~(21NR2t-=fo%SR|>>W*<oSt4a%GosLd| zbdB7B6qbpME#%8a!6vBo{{K4xq@&0&ug<;u3S!BOc(oRslU!^Kv&yPcRYu6z*x2Zq zBH#0waV7m32LD%kOqCB0nW`~ls=S3MjUjzou^I3`hGbzej@VY({tEd0HPgRLUat~l z?kvanl5~*?lK-(HexDi|Z7+ECLV1pepDvz+8~M>cIZXQ0@eJYZ1NpKko8SLsk5AWm zQ3&OXb|ri5{vSsDa*o%tt)n0po<PTc@%{I(zgt41m{lE|2FyN9A_0+f+32~C)YC4( z9IkL%f6Xw7`4iT~FZQXIzhdhelP5f}Q6S>`ZuTo_1wPpdivH>LP|$|ZXGd(4ZLUvu zpNt2w+>?d;O#dFwKbNUjIaJgnp~bSmlU|tDATnfVr+FBt|7`O&B^KPzoM~Udmy2BP zreN<M>yJmQIP?(#yP#4zxiDtKPY>uMqYt9pJ>VfgUm7EWYMD;jymEb~BggmFT2hSh z`jD?qauRYWSwFhvlv?I>RjQRVr4J4taLxTiDYM%^dy94_`<?1&D~EAWyQhy}+6%Jf zJ;(S5J{O-t6<X26H_lCCwATWj!;fU3d>wB#W68@t+kx+|yc1e#MMXr+`iGihx*6bc z7**OF2>g?h5PsUFZSdW<t*ou@IR@Aso#VGu%3kdohzuP=5<qB`{m)cF%UTWTf4q~= z+8iWMjP$uS(8B4*^7g6*TUwlAy^U4$o5J|+AQ(<0Bx^FHM@d6NL$6qc0f|anaa@GS zVg|R3Mw@JJA1h<y<4bKw$FF;Ko)-e@H)ZpN5+4{hH+Mx)cPA&Nq;{=So}&}<Q<9}k zI30Ev5%3%E-@c1<-BmdQ=cd}NoNyE>=J>E(9yg1+!-r?j)q)jv*$;PR9Dl^6s^q=H zk&fhdRuW?71U*cr^y32`b8#L&Wt_R`S8uhE&DQKeHLK?l@SHLmV9()jJ02q)EV@SA zag%1<^SP|D1DaN4WeF$C7yL6f8`?P0tU?HcLf0K#UZ8#c*uPr99L<Ht1jt#U9#rV> zkD-@NWHV;b3`3lI@pZ@bb}ZK7Z2YT@-ToE+Lz>*X92wlo)UM3j2I2Qx*SX=$=Y(uQ zRtqQJ*v*tq9WP#JwVLt4H}yvmE)58mqkBgh=AFpyP}qUnpB1VXX@!I)ak{=R8c0Zc zrh9FugU8UM4Q;VBH@Vq5H@muB#_-|5?SaP?no+krOsPIEi$)&CY$GZ3>^0>VY0~ZU zh6%7;W9%O1XmPzvPqZ~RyZ~~h=cHBEx*Mt*izl&a83$p_7$j|p781#NsGa`iC0wXh zFwa-wXuw+s6oGBb_AZ*V&dd@=8uJ3TDjhHavR=xjamEv02`LFcJuEb(vSrIlw4&Zd z64g(sD|}{gpJ^6)CEyTb4$4nS2vLZC32VR`kLkQveTm_IX;1SjO3yn5a7D|=DVkJ< zg!MbWJHD11fH~=(xWe0ofG`E8wL(e<=CPQ-YQ<U&q)+n=(VO?pL9?}1azNZ-C!?aH zuLuN}-Fox4-%t*2!P5-=tUqdCvu+nX2(ZOOJyP4aa_Glrg5y6G>F1XO3fpaIx|sHn zC^9jXvU{wP+B!I7jf}AD&RRentS1vP3c4(P)Jym->kY|^7`L}3p;xV-6>vGDRSUf; zkas*g42qp-1oX~c)>L1EYihV}_K-CA(oZhW4&4I^fQ^qkp7LcIUOi*6dpn+kLJF<p zdY1{)hX=@F;^L#b=g9@C!NwEW-kB8bXFS2Cs7qhWXY<nvBVaj<zKD0%FfMt(S+0K_ z8sm_Ikvj$~dY0ijf3_z69m@~+{6({mW{^O+;^WXw`8V=!6L;%ObQ267(_xS$baHkr zv%Yzl>jN00uZ^KAkQ?l?+ue6g6KU&r7_uASSg0^W_w)OrSb2%s`o(Y&#)8t=8)fIs zNW#iJU9bstFf?<$SI}34JkCdpFfVlj!N~GrZM&s8w%4n-#Cl4ahaiya$XAWS7e!R> zytjucC#D7&ad>#RBYeO47PfqgULjzu=5ukR>N>@r;)R2KJ_boB88x|spJ={CH+Xdv zwI*3+g<=*`bTtQ9`Yk%^S_f_|H$;f&dZVe7cYKL-?-t|MdM|6gRZ_HeJuclIgNXOL zD}-SkDYwU3VhQ33OIB7QBRfPytEF6exEO6W2fFC8i4{LAEB7T*Boph6s!Ok0r(ls! zQ|0Ca<Bgh8@z$GO^Y--!G*lQ37H{Us$G>Z~+TaUx1Ye($$Vg12<_2v@@64@)T0#^X zlRG4D0T+E-Ury6mV`9i1-twDwzELr3cI`0cVf9p<BEWW|e2un-nN)x+rziBq=_+te z9u;_#X<}mA8HxlXPEH9sbk%n8-Rg<!q@MGWPDT=QOfwqvKQ9~)R5r<1f7GXc+}){+ z=XTV4Cnu#iYA2CUA?1yK8mB-#95RuwE1PtCStQ_?qlh^jWk57fFvQa&Xf-+Vkr?Jf z5S`-v_lssrOOLEVetIkmXp5~k`0!1Tye7Iq-S07!;OKP)LH8Sed(%@os)_tk4Rr#B zE=|(J$~US78fr^&E=Rxe0t*QST?Yi39QNns`>&|0uzTYdziGoae+z7}!Spy)6KOt; zFV2!l*~(GBlq<U%rv9-Ym&R8{9%aTerA|xpQ@mUj(k~k+OM+4^yZcLT2K0CY^k7m% z|E%c%uMm>(W#H_-IG*;cDUO!D?1$ZfYn2MI7xc<m`PHf{Oa5?>y;!qioVjZZ6E}1k z?UhG~Hv%o6ej@63XfqV?0coYNSKilWu%;`!1TkfW_);P~HJ2DL+iELNS}pFQfjQ6X zcw7OAlo9v<a<3cJiWi0Zr#`W0qC--f+8S|=RsurB-iZ|kbS%`n%Bya!M0+`E(-GZ= z!cjV1_b2qOCw2JEp7bD<^f*@M<-yCQv-lXx<IAej$7k9o8!JIwUWl+FaMQ4V2_amp zGr~LH1BEu(8hdVh2Jls>on{B0Pc=V}%nN|$u+VvoJ!hdfM%LhqpQ-qmHEt{)?$oxx zyrA5u-MlP)S0auY3McZT!}NOBvtZ};e6+FuWtZF%cy%#xk;{5~*itLMDMWuozc449 z7=Gl9Tz(+2M~(Zc;mu;r!DQw|l2`R9|3mmpiUkKF>h5hx+K;_%eM8gT0XX(-PkBpV z(`<s**+eR@p<wJrT4R)!i0!VR>qSUM2L*QmzF5Khyvi`d(bc4nDqgJXj;|T&0}+De z<ONN$2Rj&GNsq!{!_o!w9u6N0F1hY9$V9zvggjOce+q3W6d3r?T3eMls=Oh(kcC~p zyv#=&-#&ciNgz-~vNhwD2xES8_2Le2Q2Z#nkZCV7TM7Q^lAw}vlC!k_-J#Ob=i&$w zEQGpmc4KtERfUf(&&%R+97W=F*eym&oLxvgIURp4_qkREdk*vKj?U(?e(~j@AWJ=; z+wPg4dfJ7tcF8--P`HN;n&Q5NY;-4XilBRBohCO`4%-ptwS0+mva=shqH;9XhUO1Z zu@~qcx*0<bUFX7*Q`eJl7o6k3drDNnJH4UG*^+WpLD*Syj$mpY8dvkrpO4-g*5iHH zUg>PD-Eh22yO+2s(7oi&Jm&?etbK@wt<bXHFF?1BG19Uw)xXn?OZ8+uQ=A0F%|zqR z!a!?d9j)Z;_eIonz@6@>G7qBXMUcxcLiT|--J8wPSc|Eh_;e2i^!srwGIZqI(=tE1 z;NeEKs!`?ME2%Kr=iab;EA|PE@8#1Q69^_sG7qtJPg^p>wj)_7>ho;BEk}HaioU$( z(o-7R*W~fOhHG%UCa5-Dgx%`u`gJ<0(#L&+>sK3R_b3z#m}LBA6;X!QJ|1^s@mm(x z=a(jWq1ayskR&oRH-><@6H5H0_%KZ`XJ{sNqm5mHMXu<qPP&!DtqyoRDg3#2SvW7K zbHSE`7HEYQ;-tB!ujQxX7WJ-ex3cEzZAZjgIOkeSgj8v@$NGp_=Wt;mS;B>6%w6_? zx_y!cJ5aKqwZ4;A1d8^A%cowF0YBvCyKkCtX5yRut*3aU+i#gI@pZ|dyd7y2qJX9{ zCegoas_-QCjIH@MroBj_!j0UQM<V3{-aNr^<KCj(1u_9@*aLLWs}iJ#_Gdt$boe%` z&XaDtgRD69Z#jZVq{-h7XU#L<b&^JWfG!j7S1+LWG+UFrp037gJJ!@tT{w!DUYn7z zj1fyC9M>CIpxs#b&?9T<-bC%;oiLPxVtw<lC&#XTqeEQ7tB|^99J=()z)dmK;1*_& z3(RtM=t9!m`04ReS1H_yAN^w$xs+0lqlde*jS)?fJj(wr6p(bX+Mrvsb;@325a z)we)MUSChS=XU68y;4eh^HU*r0_#um!kB7#tAs;ckfe?Wz))*z_0rtzcQHg42<ns^ zXZgCB#G#$#PSHodt3Nc{`x2t4=CC5<C~Z$|o;&i+)OR0!W`QIq?%o2_qto76m%Za2 zOGc3FOMqmH<OAL(H}`y0H}t#@B%xh<+w5wW`@%3+VYo%8XoF5CYP_vwVHB}lvfsP0 zxp};J1=HE%Y#Z@WK0%Gd)m%lWshZ4tIz>jWwJ|1;ByV?r|D!0QsOlfckCcpX%Q%Uk zOL5xw&^%YF5?~psJUf~}FH0B1VozK@j&k1gF3+a&n-n2EM&frT5WDN<*xHgwbYcih z>P+@}{6T|F{36%q!*Pu=-^?f<y3<S`#lKzMM(l_bz@|X`dSF-_=FA)w6an0CfQ*yQ z%PSsYC8`iS?WZO|VcKX!x4Zqz4-*#fQ*^P*`~v~{Bn1V{tj(*P57B0S16hj|UX&F= zj>jk3g7j#A#0Q+-KzBQ)R6Y!vhnM^d^YVtpiMRuZA0^zva&!&-E+Tz^BO<4u_;z%b zdKJ(~{IBYNL3@j#UKBn6@N;5`Cm=tFqbd0k;^e-6slJc%<mi@PA##5UnBt4-)_;Qj zciQh4XPmst?jiF^b)&9uMatJYos6Xci8gpguekh(t*6CSS{!LLCkJ9`6rc6oEKJ!f zDUvUBct=l4P@V8*xjf-{Q@-%t=;j)^dR5u8)e8WvCOI>V)K>E;?GTAaeHHHDIF-H~ z!nRxg$pHVEK|SbXF!7<!O*?I+M{3Wq{vn_5p920v)(+$!i1(w64;ow~;o8C$_$_Ek z+_(lK(g1Nj042gi=Kg~MZrk#_iwwpm*qP2~t1!$JXbedveOrduXbg!|Ah_T+{@iFr zF$^jFS;gOAiM7VIg}hix_xd$I>m;hZ&)<IXpWZVmA_D)`Cz<{*tFZu9E%TF7hJc<o z;%c@Yo5p6Wo1LT>oji?M3{m5I6I9@BwekX^urDaOoc0|Gn*Ul<zhM<fU_!y^<3Oqn zc@{YY%C{~Mk0i$bCZP1b|Jwrh3nn|cohY9u9v-TW!c6HW#zTqY-B;f?x^b(%W9Agm zNsZSR6HdQDFJr~Tgd1;Yd<LUmZLTz3fup8wyRy-H&@=gKu6Ve)H7r?h|BYu#skhB- zF*&<r%Qrxo@<5JhHMq@JI`5({hw|D+@~FER6H8d!m75t=`;|vO3R169f8Oga+ny<p zF8j2ul}oviz<M5gUBmz5MLUzWp!*Xu*X98`t9BRDQZVU1ube$bsLICR1K{l<Y>CWJ zYq+rN;qhI0=MTh{=diSHXVMozFXOuV{sH(;iA`7jy4iC&BR)qO;RN>}c!FM1UzK{2 zJtT*U1o4%f8E6*!W<Lz3$fqb&htaC`J+~lfr04q<puV5+9ruZqWG%5=X-lG%OO#kp zYLZh66ej9Cge5vC6*t9rqBe$?a1;atVvtJrV1E+hnoft@0lILM8zuiI(|<}iA{&nA zTUJ&SI~2jw5YPubm@r8#Ydsq5k|$%gQh>G<2-K<=7WQ%`VL}MOROp{fzD9JqozL-F zHi^U4C;m?X=_u0YV&wKxF;@o#)~8s4^5#b7?si80^tTfGwZ|ywyfNXLqEuW*HGa4H z?hb7SuDAz&{jU}C=W=}c3po4YUHj+%KS%r@sx{1zP<f3fnq>=IWMm{ZF0tH;7sFDE z65`^TpQ8B{RcwcN`1ll0KK4$y1~V8?|8q=#Y<MXxQmN-nX%K9{vhi}f9Lr><%aX(e z7duN3w$zF#hC$nbUb&DKRHEpo0{}#w1*}=J3sO?XK<r-wds@UV$I9ZMR)}8>fm?X$ z>$1OsYBUi4S2=oTQ!KZ=h3#K3+n@MwTk2l*xsyPk$EYL`^X{hU8eS#OSk<EF!vi6L z*hx220*N&vbTJnl<ZeL>TMh${EtnbmZvlH>;T>Jn%jnJsta)}%Q~WU*&~Q;I=w%RK zVO(gBlVNC899g-VexpFRWj<zh0WgS+fRYWl!ZZ%arr9~0Ib{bfD!CjTu~uK@+Z4-t zpAi!ZY&sV0@f}4pk=&kd>N`sXJ>Z02AvpBPQGKAkmEMRui8cK2{3+=vllGn+MWq2S z+oHy5RDp$>C6G*ex2eTv?AD`5)pC&RUW0{k22#=p>6ikHgO=emUTG`3H6h{g{crNU z-BaN$2M;*aW()MQyiNUn<@jCOj+ex*Hpue0tQT^1cq$YJ3vp;w>A8wPT}SVV*fsuM zON)}EOae`5KtZ+M-lW$_$&ItTL-WddwpA@fCue3D3rz<S&bAv)7G`Yg#w8(TkttP^ z(oSMuw6Ie%t1U|gr!LG|bWYZIkA*CZdi&1T6Ilg7g)i=x<Yq6}oM<~tVFUKH!;YDP zz^RScFJFo|H`yw%4Lw>E^n?PhZ|U@i%N*6@WzIYJ5rj!SV57viD0b|re!R^2Nj*)q zX9mrR=+avg%McR^lq)lqB~%{G694E(E$;IMQSorWQ~2TGfl>g3X%UH>kznfpXjqk9 z%N<aWjbQE>H(?%`1h|?hfDa)z(zJqQqur_H!^AFdZCJ4WT2@U|-f8asV?QLq3-rpY zRI*ITf+Y?>o-Y?Xk0Rco9mw!hnpD@xi44s*gE2}pD&K<M^2x=$PRzIO56`zdRxewq zwtwBMTW1%0c*5ZX5ild;<dzhvY3HnLmF@ZSz68Nnzitxg8Q*O#G4h$Uud13)rmuOf zMA8<7;I&TP7ELvqEg#w7)|M!L!?ZWQOzbpTxl<?r?Qto)v^<1aw(X^R){d~DMd8N} zBnsqfWZs?WE+oYWSQxK~Bc41YU7`|j8ngNNHw|FTS2$ytUwF9RJ7Gc*3Fz~t3OFhb z%EZkl3Vs^%5;VU{Ye8FtZ1@`HUpKmdcx5B?!SOrM=mg?L<a;=D3Cy$htFD=p`SCx` z*g_PMKXz`utT;T5-kLaiHzN`K+}@xvu|=-A!9L$C`tsaN#+pf|PO|Z0Kj#sRIBS2V zLMcZYr@)~kDP|0$st529+k0G)3_v5H1`~48%ET4V$C014#-$fF;+PDl=4~*jM=quE znJ1$Xa*aMibK}U@3#V5t7RI8M&FPjWR!-Hb&UdM%zwt16<cPOgXpxPjSIKw|27R-f zb3FMxbRRP_9=$tR05SB7vykzaM%$q8X{{IecXt9^FJEQc!#}Js2LM%yO%)3V&N&wI zT7V4J>t-RNu@NH*NxT-NS~*}xKre%d!)%>>?M=lmoU8h(t^hP>w8TUg@pF+L<8S@x z4U5|oAsC9}RI*UFV9>UAqG}y2tPG>R6}v#fXCL>F(yRbyBY2xlx3Q5XaB|t3d(ddM z{}Z3xuB~>Sf_92wPBXbYu}mJFga_ZUt^aWa>&AVI{iMa2Z+21T^6++iNk+ZMJ{wQR zExs_eUnvqM*E7I*V?h6$WsJf6X9kH%i%t<kBIC%IXs!8Z$ov)bhwx|VCre6rW_v^T zRThtA1RU8Uk0mSmHL7>A(h>pfts!|3I9M5cm|DN3Yn#;S#KEXp9%g%z|AH~2{{Q3a zEyLn!x^&^jJrG=i1Shz=h2ZXP!QI^<!7aGEySoN=cMtCF_U+7>civ~_%=!4Wxq3r) z*Q#ArYu&PJ5Ba|=k_lFz3L}*0<v||7?~Vxl+_>5(xm<8R0hU?@EZYQKiOZ>YHGget zRU4(}M$8*rHh0wYefqe}Cr6)BL3%gbT=bzOj0NHqF+TbwQ7s4^MtqC?aqZa-Mb+53 zJ$fxE))LkH<e38dsQjHTgR|8R?90^-jYIB|iRD>Ncx+Q`OEZV_w1iI<<DOoRI2DyI zv0d?yZJ6}x1^)W#wT6svGUXdp$&m!y{kkPGUpAdyda3F&X_A>|(wY%&K+CFYT&2DX zNgD$*v;2j}1552DnJI4-CN4)qJ(LED#KbwW3O+06bQ=+Hg(-8?(J(HV9lh=CU*hS7 zk&fqr?e5JtY(B4JXiwfbCH5_Hl>K`Rv=r#-?q*Pubsy*Py!inkX(nafZhh?>Yqkvs z_mH-oT5dL7An%uqPNfqW8qI>`Cn#usu=H2-dbtfMk*hFFvv!uyh_H(_j<Jxy0+dsY z>mCx;{i>yE3GVMK{@#yXU&c~chMP1#WnJ%Y4wBhR#)rc1-A`Y?XK?z25L_@(p^8bS za>e)QEdi{^12*K!SRI=Ym5N*nFj?ulN@=MKzM!;NZpB>pdd~9;ax3Syc0l$OS7OUe zi!sJd5A!T@c@TOLY+IsH{psgL?38YySQPs`)}dJ5!tBox)x-T?Xl7j(8>V}`zsP-j zLeFvD+6?bTzd>E?yOB{+E<9jWYUOjgoXJ}gWF&E`%EX>V9J|E4L&xapPgv{9y|w9> zPu;I^%kLAs9$rkL0dd)Q|7^A15HuW5+ufXkl#b^8P=Mxi$|?XQL=lc_*(Ui{nqjF% zwC?UI9)0}slUgM}N2BU^+ZbuXyh?I>EMkT42wmL&sR`2x&x+7)iI0fLH-iU`Vd<N{ zT7_q053mQBchliKEmjM8T<u<NZ`>csqKe_N8kZfZlkt|+=`Bol^UEJ9kj>pR!NndB z-NSP`zx+5ds(0PeI@<PDzWbLKz~Un{{2v5AS$->-G5!}{k8mSqPG?Jsyh61=M4W>l z9bT%~AQ-pZVPT7f*HW0)r?<&4^SLq^kGs>tk0b-pv-x7bzA9yU)b%OlHEKBaB|_*Z zyu4=0W%`jQe}GL+pf5YqUJ*@2CNA(A@m{Z^**`ni&~uq8gClQc)-fiSjj&E0l41Ba zv}>s)5P0%eTgGO+B3<5u6|a&34OO}>$K*LVah}1ZxweVVYzCdqVb&yGPWu29i~m+c zQ?$ClvJ_3mOEc7$8>SUYwM(Ol!I0y_q??BqHc$~CbLJ@At0Y%s-0{6$^hsDhosYLa z$8p96l`H_7=m+RaGb`5H<#tJK85e~>a;a1y!88(yVH+Nv3ezocmd&8bxw^|JCbBU3 z)(OOcIN!wl8jB6V7W-53zqL6d6SMRmX%rn49H#qc2@<!Hv3L`x7k{ynICdAAqnX@m zJp2w|g3Mk4QqLbNJ~IQVy9e?3q36GH3vaweCVw;X-|u${GL^V7eR3EKhC6CAquw2f zjrD$c!wYj;fWNW}e0eA@scq;;pqCyAAs<MbZt}LW!id={fjlHdA@@;iD{V7y|M`~* z9E=4v@Nlq}KW9jEzZyfAg^Ci*e^LMa(@D+zv!o{bXB{JsT=Y}3a68VxhKPo!CQEL; zNx3iT4S+}oE|$Dh`{eyR%RPQwsWS>koGcV8HxTJ)W;64t^ii_`_slz<N;~H6bXf%E z{xrwgicj^}>Aj^CUTi3|a3W1v+c}>iQAPDIg=S`{wo|7|@~-v!(ATHE(u!IC0F&eg z1fOFzAum4j`M4IR*BE##x^L;+PDIHGH6Hf_x41LN<*Bvxw=b`R#lrT9g^b9bUt1hB zhkubEh~MAeuCnsApw4vUuCO(XkQS9<9F7@jNhNBt>E!u$FC!izh5VaCd7|94wifXv zfm&G8`DETkM?$mlQYbHvr9xM--JCz+wN?<SHN~Opu(H^|^kvYG)GafQJ>lkQI&{bI zOBcJKi7dV}NzjdabJe_c@Y|Ezii!^X<!xS^C%yYy5nL|eqnm4P9Kd@oQXOh0>#i_f z6%vo+bXW7ax)~KvG#TB`kj-W>c!8BcQqZ^+i^0nV68RbuxKF}~VUpl}wOBN}ab!P> zzAnWaEy7)HFV&i)9p4uZ@o#Vc2oknME?s4@yFqz+P0S3(>Kl0`P8*OMjxSx9JN`0` zOb$HjZyYYm=Oqj2kST#tY%lGkaJxQxAHULBSA5w>^<*RMqVnsWd$(48W_bS<8N`G+ zn7Tr$R}Tn=>ow|!17X6}?pX8uhT?`$lxFUJu{x07&Ob00()IwAAH7uYOSU|Diw?+k z(yshl|6fGDhz4;P+UEfBb8GM9AkW!Gn%s(sK7E8YQ<?zMx%)^+_89g_u~0TszBP7T zX^h`1neu8U>=8IfE423*zPO?Iz*#S~M95s!1f^{<Z<_f^$k1~KyI!IvJ`|-kM6EWr z5022dbZ7U7&izp?U6`)72&AV<&Yru!nA$dXlj0}s!qwLMLb4$}Jq*ZE6>P|wjov@! z9wP2@KUam^ev7%pX`4IJd(&u=<9off%m}M+s}=bYmF~GW#(z9T%ghg5@LxqCfbPL! zrk47FfKxCiGGpfkJ%8?Yqf^tlI7^1>49r;T!<Ca^gJs5So0$-+ru)6;N;$+W9#80a zM(1F=SII%Ci|N|e-Ku!czx(!|PEIykxf8#25;5JW-*~$GLRmer_cq0@?uK%;HqW^3 znfM%zaSr>&e=@`)<~*IGpVm~(AGBRvzoi8#YH($+*_>^RP%#n5w0KTQq+)EBB90*J zeopBZju|PGdSpVbx@2<Ww|HZ^op9}d#HwFcV(Qc!n4gL)VpwOZIIpeAkJF?Fmw84e z*z#;&x~XG~X}z!AlQtXwjbYAlf|R*JD%h0qqCQDrP1OE4ohO5D#T{`>#=D=lkU+Y> z5XfQPBR5mv%&rqZUBHOgdFyjSDR>>8{0SYvd<6XAIViqGckvwD(gkSeBm${ui|rx& zen5*1KpO}~E3(WzC6U3q8jkIMw`MhK=Sdc!?)GdHrna`WHdp)p=IJIL_-(z(Etbz> zO=m3D$*}pR$vquaJ8Q_*$J$sot|mPJMR%ULqEbpSeY)+zKl<<>bhZB10HY?gdaY}T z@YRD}xmX7jm34*nGEG>eP400uWX))Rx`q)c2q=ycnmPcY<HnO+4cCA3l~06-Y^>?$ z@XTNPt$+<T#p4_X8d6~<(1~*OKtoR3<m#edV@^8LK8ZvV6Uy!}g?+9<AJ$d;j8;6a zB0i0N9&Yd3ZZ*|XE$*G${W?S#7*c2J{hT%6A5sSH$mBTPri1#aL~+Kxi-ygKL3ba% z(PqOhw<Iyvt%Ld6DWY&dHd%PV279`}^g5NLOtPG>-uCm;_n%Mor3%%=KkMh_N+F}_ z{`B)+*XjE#w>@~?dNGExQt%f^jz6ES1S*lAws=(%ihye=RBW^f1H$9t`)PxbCNU5z z+wQ}m1B=xiG3#ud!OHt#s;eOjBpaa}0f)i0XcS?o6H^kD;Vsf7u-;d3`nis58LivH zxtsOimP5ggHi{P=GUbPs_$~nH_x7iY7^}QNzCX2bJD!l5jaIoeM#Gb#`3U7_?$fjU z%2m`Z*7Q#n{h96)r8O9(hwW{n>}(T8`P$g4oAe*H{~TLjcUtpIOnbnEs_cA@iD51? ziK;woCD>5YpjEjxMD%h5tK@06FZvvQ1;uVMWj{RD!_02ERD7rHhbAeaT6g(4RUTmU zk7A0AXqH((%ioGXOAoO2nj2^kG|K_fofv^1Dmz??S8T}?qEW6N(H&Ub?VEFBV;hz% z+RcS9$%2g!#r?2!R}aPqI7{o?d3W`l;M5b!o>WhD6pXao8E4Ni?=54P%$BtP;sXc3 zHVI5&d%HAxo&aE3v#be{0J90s?c3e<oyM5g_EP&mLNOxYz&P`Cx}8;*$3G735+7F` z#=EEd+U$3-o>v`YC2VaO^6e#yE74NfzjGSDu*leEra#%zah$r=ST$hzDIDUMe!95Y z&U;WOy9FsBTtWb`paK)U-W2nk=WAJKxO7WPx>HU(haZam=C=H&q8;YDhPE!<@i1FW z`3VW1<mLB3Pzn#3e8zlHJdo_o6lT^JH0U}i_<hdA(shkFmc%n|^6n7{>#k6u&-h{g zFend?jJ)7HB&)`<im}vW7ABEEkDyYfVK8kWsk=0s%9KW<I}Gj}n#Y5o5ULgY!et&_ zaz4n|S?b34DrW7dI=<Yp##OiXVvu~exrIh*a0ZbHEl)zQu2!$WX^~p=SiR&@$KCby zAC(_hv?7h>wqYAqo1rh>!&}1coq|?j&v$>eLJA*4g0l7XpRUjf$4l>*8Cbl!@!E#A z;}z#buZ(!N){Xmj=dJiPYOR^Y=_#y&b<ff`-Nbgu;wvRJRWtM`L*`#OsXEbN-Y7yY zbnk6SEO|!hRmaP2f`g{SeMR4Rk=P(>2<)SBiE6VFxG3MFw|tgi!B3TsoAb(JlXS?k z8ZCF-cS~>AV|T8tE2xTz_i0OiBZEcz^o3y%Kc@CayuVG4zh)cI$1aCmk2d?vJdJUe zvB_p|aE52XCZ}J6kdIbo@>H`d<ETAU>Q8acyoxY}h8hgceM(ew>};hpBUJ(3I2%;j zMn6N9i!_O>@C#5hJNhsKm`*4G+TzkrR`sNd`Q_9r!@zR|&<rB@p0cO_mlPG=@@lzk z|C_XHJM9j8Wqc8L1<p(DvZJ|@={Jb?VxRcZIh820j;`i1nt1Yv4OLmGxI!KvAM_VN zB$OzBTkr=6L1h^y2j}Oq^+&8qLMXdtk#<zTAxSCZINy8DVxe%FO!5Lv#roK<kwDi6 zqjYU(pB9S0c>2M=-?PW@h4KjOWhZ{%<;O_jr<38BrC8ceW2(%_30~wsCu+oV8UKC6 zMy>YM%AEVdqq*XIs#;&?4ABh8>RFtxq@IjMNzDgk$72iA=yjS^ZegjF%f!kwALwBO zKRCoZc5FCTKS1(hC8E!!CPsXE4jM+*ObmJuM>+Ylue;Xb5XChvyWvw#Sg9WSRFXJZ zC66W^h`_hyNaAxnriO*3dRr%^E}wDWy*X)@(&$PC7&rW~$IIWHbU`0Wy?f~uyC&{V z`ziUB-TkR7gl?(*(HV}Hc44<uHlt5SNwWXJaP+kGK9<^p-}@>qAQ0;TOo^THr=<Op zQP;h@O({9j@zg_ct=U5o)ohlI6FdS^;m?r;Ik7?J6uviAZv{`8_-%`+={fX%_Ul@c zAt`Q7ibS5VS^zl3O!av8<3}Rk)Pee3nm{kvdiPpbnHV}#rBtkzU^tkwDz#DNMnS95 z5a@xAndLKYBmelj#mO?aGKw7_lb#}wE=KqFiYNkQRqx(&gQuYLRWYLDham^0atXIv zvV5|dM9ABiTFF30i3vKY7*g$q2&*lfrRp!JX*j$`STT9&cx=|>w83PLRUPjQ-1Rml z4@S>M19v;e9;tf{6JLgM$=<yQn4<US)$(8l>L3~(ZVbH5w>epr6!y#n%jsQpRV#IJ zI}>RXONU>;UY{rXr8OUim<Po0;13QAi`rthOV|2l@+F0?_eS%!IswH->wQ(`mQ2_V zF5YA%JIvnq4G0-JwmcU#M<KlYoas~TH$Y6!K>7UbAGLeeM)19M1JWuYu*#D7VYPNY ztqMoGry6a^m_k;WJ$+AwEBno&eO3Hh3m(zA#4k?`0A~!A*Y)PxM*s9O*@JlS#)V>+ zYT23?^@FR%ubsop#+PV&I~(TmIKY|(N+qF8tuPR4*i*b>qxE^@vprDF%pc>vE9pI8 zw|<%ioH**nXgh{&+mj?lEqd!<Mn=XaA}%%NJ<}he@CLA)?zRlC|9TiLf9kDMsWS*p zR>><=?s;N8Y+s&hzEAt?lRy(oq2O%3;-65tE{67=l&g|h=y3O5K@B9YTGH>ct=tjM z+w>ZJ$6~Tv6mNJ(ir&EjK&^7l{+h6`876~gOmR3Sp8l9<2Iujd4$f8lF`S!4Y`no~ zbwu(_oIz&1)2)M{p2-`i9<otycELg9S~lEO%3q$oaP0h~o-Zn76KQPzj}x^WoU?Fa zXHvpiyNB%B>BZ)^q-Ct1mu#p+EiUH-6lD|N#u<0$qboX4rKas&%$|SgM|OC7?+iWL z+PS?FSk%0)G<s3d-uK$OuzR(HIF}{qkUSbtMBzqK9bn9OlP;3U=Gui@<uMlEe+O`{ zf7Nb$Lwp-2w6BKG%$Vr2$@8#&X%(8Y8*baD(RZ9l$8%=8?cXJMyeFMY5`;UZRz^4& zPuvYV)jqZ;R2mM&7XO0Z8!^<VsND^0&`MplSZZ;gAKRngedByfbUk+?r;;Mo@2F2* zL_L9r^^`dLZpX|+_r??_Z$B!YH8Z`TXSakk4*<NVnF29~TlrIxAjz{{%Wdn10hzRX zyhg8^%|yt*z;;ZQ&hBgIzJ9m{K25v3J1)VDg<0}wERpIwjd~d^TQa?FLqg!aIEV&o zpV)PV_<8&n$ur)m2)I&=rve>I4&FNUnqXdPTRnZ>K|>GIKlZU+s;u3-2#eFNLOn_o z8BAmbnQ__`B)euY)l`ggBQGKjmUm_r#}Bp{%(4@RmjoxMF!xx^!R5(f6BQ31oQJ9b z$2hsi$ufMbYapXo!L&{Ipd(J3Li^a1!cvs`wsdz``?@^xQ^dYQlYIM%ggB%0N9H^i z{_wt%zm@%fEb6Q#{LxYetj51$0YI=Qs$hU`h0s1JA)3T*SW?M^w4;TR3<mB2fbju9 zRsc4KH=P6uTqOH<1VNA|Dw|dx%<441u^|3OX@0%MH@AMB#ipH{gXo|4{a4UIkbeYy z6#@2|gTS9`=S8Uh*G-h0*aNrKT>p=kQR@L9Fy!eb%l;pyxPM&QVc13<L#zFF9=(_b zcp;q|MLBeC{eRr5cMT4pf&agxZINkrgAe~@R`M5420@MjwYOnoK7^USzo2UAt*pHl z0pKPizl;Kp?{x@T$<oJsi6yIRd=e6p(*`?J?Em#U2u!2d?!??^L}32!T=~UvP>!~< zhxru4zbDOqaTJK6S)foZBvSVA%l{YE0tnoh8em|oWoZ0oQ2sIae=kX;0qe+^JvY(P z|4K&xfx!E&!E@-|bVz6GZ#l0B{Ez<tuq`IoS3dnq_X|YZL9o)&<~8fz(GHRQ50u+z zAhSN?e6%eUckBAXdKGP3ez(^5KkFe?tbcU^^~`}!|1!Ay$20^kzX2a#wT?#(_TOLl zA2;Y(fR8t*=+9#P7Z&sv4s~t)D-N}}_vOHa{ElL4Ya6VOL<0;?Obakm#9z^T@BYU) zS22P~3aUYNTb_{Sw4jLTftfrC`{^RWm4&bU^Ukh7C>kg%%O=jEmUK8%p9%9!MXTlU zl#o5(P3_PHkSjU-^_~71B2rc`+UV%n<%m0SYcM#=A=8zjBC&R~ApHz|SUPaskmr|d zXB070Fq0QlG1KoS|80sk(AtjeM_RFi>Kiq|OiU;wl8HI<on?iG()0NTM)a^mn3qn? zM0<!(sDS|t$3Rp0Cv`$#8iP{4i~5j_fL3-ETz~814JA>q=h-Snl%pA?Q%PJ&henm8 zhxBZOz%F1A2>B8C?2!6>GXHZ95M@IF28rYoh-Lu3kM4Lok1vtIgOk7Mwmc~kZYpuW z?E5MNFornD*GsaE|MAHEpG&_as8ua(j*Iw6aPUlf8Ty_o5i9CzGb_Hoi^wykZFqQi z-8p8C)BpTKy?gLOh1RLsDqD<;7^1|_+3jW*BWE8c1z-gPuxxj7WH*uiug9nh6Uxxl z;9IYQI{}VxU?e_$fcC*IAmu@K3IrtTM9a6v-i!Yi1qt<+Z?;R~=f$5oIw1$WSzl0G zN5HRERpMOHIRI8p|9MjGo$KUtlY9Ara>^I?_#B;j?%wTRRn-42#MWS1cob*X22u4R znbdetF#Ne<FrxN5rir<^0laKzRzO(3f8OkxI!}D%F{lPpsiw*DO2&g}u4AotV_M6d z$Aa}VV{rXHPL1ElHcuTA+iE<>OSrO`&SgNEK`thli;*u}nNYyHG}I<J9$nM0r1|^% z4-G9Pr*SNjQF-o&M=a0a)-U9dd|#nmbH3*<IaVKP!22a;aqju&M~V8kVug^pKpP!e zlMt7sKkqjanf$8au<7aP>snh#_YBShmMKlw^z~R4V6^J{S@&@D8Etfr-@m6twYY46 zae3{PEz>!fyF9(rCZH1#RCtGQb0%|rW8d)eIpn^6`e=!bi77JlFanqf=}Pxr1)Y!# z4+kIvc2fm+#7@;pW%%@@q(9Q!G>dapa=0VQa!)1aW03=|!`RGLMoPoC6DJ~6=&hDr z@vV|Cc_fd`Ms^WqS9LTo*GgxZ{k65Uv~<+RrY~vcMqGuKHXg6BD6LXh;z&fDw}p?q z9O=Fj51=zYYG>i=MpAVW5)%{aEM;CIjtR`yV)8dCy=QIewYUQ1D!1Ldo5ShD*6?G- z=4tXw3@gz+s|2&{iIThIsrdz+v4xqvky31Ye!I{Q1YBjttyeR?%Z*l6ZJ|RRMkd+b z%Z!FT6S^<&1}|>x>mm7GkkHW6yVMJVBnHsK8N8a|ojv90c$^yvZ@P?peCq?!0&hO3 zs*mqqy%O9sp7AZ(C;;<IDh7t&E7#pg9||1$#Cv;}WdQ02AQ6RUW?j0Ot(W&Tz<UpX zUE=}L`loG^?rA>M?-_M#&w<GAbS?#-mTE|QKkF=+0M4A6t2u~=GxFq7h?O)8#(xbz zyC=R<szzEamvMCR!NKOO0Gu(3bCP&XiLjLslda);yf|tTHhb}3zpuDn-rplq8y{Y{ zil4r@@D_MwJjk-Wz2EKL=l0=K0D{+6+E9lBwUW|#%*S>t?bPj3oU8Ycr;0!C^t2e| ze3ce>nVId2o(*+uVj09TL**S18-cmbtBY+N<rdpMjVF1cQ4mV;S9{}v7$XS^3ypi3 zw5Oj2Sad7YcWX<vSCT6UQyVPy`#iNzuk+{nJe#GsFHMyAO8bT9k#~=8(T8G>-#foG zB3o%%>0Y%4yL>!-4_m&EtJAK4sQ)v#VUqHbO%@0iv(6otaZS5@SZLitx~Vsh#Vu3C z!1eyi>)?iv*-VQ(=EP`!*sKR<1_Vq`?@-&|Ww?(Ij_g3c4s-MdZ$fDO6Tjz85+GXH zv3RuHF~4d5m}t<Suf3P4e9CN~V{&~Po;YG+a^LZOFy0Ph?mS+mUZl`h(_fm@)~LdN zdk^a)*LU`KEmpcOQp-?zJX6^1II@s9oi8q(k<4@Rt}6AxnnnM1^<uw!+T^#XVyYJ& z>afrKwUfGMz3li>C@Wr()KHFRdCE$Tr0pcLMvFO;GGOuujG2*L`j3pmw8ai01M@1+ zK_C(N2Eeyj;hyr`cB9crY~qu<_V*G9&abb1kR>O|{eLd&w!)X81V%dDdpQs4T{ifh z9G+;*SBpNoxf}oC#u8MjGvqv)-<3RCX-)KAt=%72+(zarn9qEV3Pi>)o4D_=3oxIv z5)*=c6FXh0&!%tn6b2l0=MzU#fh1mz`a_=A)6f9<b-DD-%N>kHr+#i<pNT9%wq~Pe zk$x;PEnT9sR5HuB;ZnDdXpvDVn^J=mjz+a(c1M{^yNKiUJgwLAi*%T5>db*|km5q6 z`}C`ai`i|7(O&7~Z{aYr&1ikcs{=uao=!xpiyNX0Hac}ClY-@X^GV+~ufee~Y1*2) zjE1qQ&k)7Z$12N)Wx6X3=ii=@UqoA7Ecf`6?2{}_4qX$D$nYNdJ;ef=k+_{t<uhTD zDQ*dP?VFy`2J6r{W!bIQvz$s*agDKGwc4$DZ=V49|4MyCjnPO+YjCV*f5~i-LET-c z&A=O9D4+EmSUioUcxAw)h63Rujp^=A@eGUksM?&jl}`3oD6<!vTrr*3m$Tldq(^uR zpWW-q)0wuh1in)HHe=~jxrK53TY3>-342~`@@9Q}=FejO<l5o*$OMyKA%b^-8arPO z$b~!F>$N8@V+#**_h^efA8YDt&n%DD?nRedyeQH+>^I}X+F+0g<eDYsiY*dlW-IUS zk34<eh4`17J)$}~5pkF%d+iL0%;Sfjc&^#!$EAn<^wGR^e(&(IEFhC>H#&CyqEklc z=GLA{U$;2RoV{@P^eSLJUqrxaCKvR9U@P^L&v-TzbN``Fm)3QMU{AkP!DKW;`<MUp zGF>R#CAPfzap-urD$Gi+Zg29}8TP5@(&LHiN}I!C{rhsqGryOP##{S*tEkEFm|&fY zGN~B5SwGL4&yGLAX#A5ZrJ_Fo94!AK)S8-e+UO>U>t9O`#h@~EVy%8~xC39VecwID zY39RT?JR`%Hp5#7C^bO!MBL?URke2Yv0r}SLpi|7AzuE%*a6Lll%wA%O`NIe{nV2G z@U?P56<>O}!E_0CxymibTCPFL?x{i(=GB1+&t{`O>aTz3xoFzc&B<3`1dPdjoK76h zGg&S#6>H19f?@;d&ere+Nt*MZs0^vUi8$c=NmQv-kU5m@@nJH&S<>{Rl3(8Vt%o#w znE8X{@cw1*P%WSvG&-6+^T9;EZE3iCTnalik+kr=kI=l?p6Dzds^o6WF2NWv3tN9Y zUTI@{bD8-7kLWG|(5!MC%@k+03<^zOW|wAjH9bm{D(bAWUr#5Ctt3knYeV^buJ7J! zT`)G~Pqc2{npzdJnz;KA`cAjb{^RG#mf-A)61`B&uJO;=2iZ4|nlVS`mew`*=fT&G zwd5hgn9+18a!$_sJ%-l~cQhot$q1%AX=&+|+v)Kkd{O9fy!mqD+qJmMod&mOo#j^G z=oP=6K->D3cbn>bBy0BUWN~qy6?1<NqEM+=k!pSC`8I|-msdj;8qzeO+mS=?Dr&Z% zzWnPlC@NLteBG;#!+5#Dg1>yFE?`fVP>9js8^z=L(Tq^4VqP>FYmu`0F|~RqMI{bv z6O8QMLpkBa>57Z_RCSct_qiN14L*$&ozoDW{&|IFl()NAm=s1AoV5-IS&t9co9tz} z!1SOCru@p~cr5!9ekXe`!m9y+`EkYT`p(MQVj#FFw&~UD@rhL$mpQ3B9jz|yIGh%T zw+=b`6^B(nu+J1{x*)rQm)mq-Yb|nmoEPTcH3(S)o4l8+(MG2Fdw&i01St=n<w`z1 z26aki3R_WbKAFqSy&uB?NH0SNl|n{9`Ab|rV1a4co$zOi^rl5`9@72k1j@~wFUJF! zQ0@z$Blb-sYuDYj>B}p2aPv&{4ZJ-U)P6$DMn_CTI+;<X4p_D0-|gOrVx6rpGO!;` zja_f|k)7G2D+of)7^M7hZq|w^O{w}}WWz-YUBiQI-m#GEEGT^+5nQL!E%s`6yl=bK z)Vqo4A~)xq0f1B_;wT9s@Y#sum>#-c=h}T*LOg1rUDrHrf}c&ub3h<^U+c5N2|0If zm>4o?RLb4xkX1t_5IJiYx?_yscf0~@oyv{2!Xf7U*!_S3zd)%JvmQd2+r$)|Zw#$v ze%eolV4i+kP|Tu^uqVwTKD=EYdBq_04tB&{ywJJaPntNKot&5<+Q!|rP`02DFi}>5 zc@!a&*;i(<H(K|_QyVPv*I%JSm(l?vyO8UKx3{fiY{Vu}L_9-GB!QBQ_SqbDwBgi+ z)@{GR5HvETR%jRi)4|d=;pK6Kek;|ZCDL1r2D^!enT=K)t$6h6Gsop~L?P1)L?Bfj zj{9zLd`?J!eh7uHJh&6GP32x!bhEpn%GC?nJgWDZ1kNt3UDEw{-0qNm>V=7A$;`*d zr^`M!2i4GbCyULgTy+)(&gr8QjrM-&3l#=fTwYH!PKT?0zpj7ZJkC&PRJr0fovfy> zM?DE39VPQQyUN^!juKvOGhIvQZX{G{k#rG&%oXhShpC*wA~783zV^GLG5Uub28lJ@ zLq}X*MpF4M@VME}ygnnFjy8pWW3M$^q2-IGFQ4%k;m}w`+=m;0f`o7`euAWyJ1md` zY+{?Oz48gPxx;KNoNy^($)x{EgR_|OC8vJ(Nt)d(!u`Ru@R<zJIa_ZRjYz3O>01Bu z=s<<q8K7MHBBI%No@el~-qM7=AX?b|d>6KDjyNp1Tz4$BV6&PvMG_>h^XA&&`WQnl zn=FIGIR^3UERRcFOFf?<y~<(tt;O&1K7%_cz4bQF&Oqd?#urO1EHk-2o-ZO-?vVD( zl0rH~41#m=5ueLF1+?nnV%=k9NUBloOby5eg&2O4Uep{#(So0V55|*Nh%gQXbjue2 zxuZkBBk}331shydsodMDQgs=E&*sMTSLm+5h)j{|!ief&O89USD_W${n}`e+$<ZQi ztRYbuEzv2NbPk8e$n=}6%GII6x#Ifz5!yid?Po{B`4ZYLi?P5{@Du+I_*y>ejoUn^ zk@@K)DhJc6B0pm7ItxW(dgI9l+IlmUsPDbO-4F>8JPbNgwG@$?1~ZUBeP0j22c$BD zWeNEUKa}HMx(xV%R`rNNP3G$ar9WPu{2Zw>h@zHVH7t}clAOdL@I7DN7r|>d%jTM+ z4&_M18HHSokLBKWDpARscxg}N^T7dpU{f(CaAozPj&_@#)xn&h=F7_XPP3L1H)6z@ zv8HD20>+Xe-J!+hc73+zwNn@j_+BUdMiQ>zgRLQI&z2M$4Idc=(wQu(4-oKRN||KD ztOHtY(kMjPj)uEHkXhV2!*i*|zKH|PVZ<+potf@k$G_w8zD6B7jzYAVlsBb=s9$jJ zVPvm%pw`DeLbM|Emx~Sd6K05)#0_Dm*|UXVaLZWQ(QHIOJC!In_Oxb13bMBoRje>7 z^837JZ{u!4RTVnTv}nxYBUW{~zJ+SARFwZT8cP#gX>7P|%=QU>A---bR)?6u-o*D= zK_=wy(+j75eRzvVVQ0Ff{)n9Qwf3pNSvJ!<2NLck$oZ6z*9;eh<ciFi(7|xb&^f(* z7hK4OG(ak8(U$H{@1fzA{d*SvvzFOoNyN?L2z!a#vT)vMqKoK8;V3|z4TxGd$iqPN zCX+(X98OH|YI>JXYqG<>a3{Z_QX^tFlE|Dt@&3~nR*0YZ=czuW^E1f9yHqXx6ZS!~ z{VC?@;w!~1A)g<41g_NGUNM=uk*E)0FgSjm%&q{y{`siN<9_oa5?oHBL4&~$I7NT{ z{c+;6u)>#93|Yu4-3Qx`z1C|f%Dv9LO~qGn0BQX^ihw`6cxGSmM6KFXU_vIx2C)j4 zXecO(5OT9n7V-Aux#?Nj(zgo$ra8PVbx{HwAcxaF<NJ{{TKBM}aN59i*7EimcD%X2 zcI2DHPIr6yix6&9KC_>%e%v%&o{jwc!L^xD4#Dm64^oszhvF>duRc4uccU$n=~_)q z=S2N!YN-e??1c(-&Pg!(g`R<fv;neAUsbj5uI1}h$pp1HVx0u1ZpMZ%xtp2(PdH0b zgqF0ytjr=7SUqV|c16tDLYthcsm1!V9p$!(e}v7hW^w%0NpQpgnl45nkJnu|u#^-c z`LD^Qqi!noBOdm-v0yIM7#Cdawwc6eG@8>Tag{EVU4v<<QHxHKhKw$LOZbC9s}L-a zU|a1dfzYFeqKCGq;ZwFDR#5>{d}UM6?f16ane30)g&;*k!Yv^=ip-ra*%Ay!Ne8A# z^}$6f`t22lM=~2?`bz?RVc)gT6<?0ENi>2&y*-&mt95`LrMf$^7d6(RH>j0763?oC zkorg~?r7eI_z21o&b-P8Du9mRGVjxN{}mX7(i4N*hn3OMq#EZB`yNcGaGN80NETEO zF4#nzH7481SuZ<EgUOhT!7NT!khLtHBZ{Qo_jO+$?8c5fdZ2HM43|RdykE(YF1{+< z&6;u7&gSrXylH_HFPmd)zaJ7K@zC~9Ae_?)(35P|n~eZ#ykE%O%Oe6f%4(sii~e}{ zkB=FQLeM4s;ngIFN$L=7C<~1y0UVUu>QN4>OA;dL$;C!x+?8(5*VFkUkmO$hJ54H* z0H2~($`u?syq)>-74XTiAxrr|DC0V#@wnt}MMY8Fz&^uCv|XqR*VxLTu?`3Z1n1QI zQq{^YS0XT2G%a}S)(Q=l>PgKz!6QQHpaZx2H?-6=T@0hJu`UjB)71$ry)NqN#V9mx zXzeC@X-7In2Fc8M`QFo|W{mp7=}ehSUiu^v`lUGi%;S&4iR?kpkvB)Pq06_}gER%o zEM6~icIkMj$XT(=%~s5I;p0j<KQ2ut2dV0u_Pt9qb7NqU$2;p0hr2!VFax+)u{~oH zlBDr4ZTFW>gSkzznLx&ZA|Ja4*-!|dlMl{wqQlb)0e;S8~qqe+y2^d4)X!j8% zz^aUfIA)Unnh8-HyUHn>$rfJ#xY%by9zfl#P*jwHY9|G~pKhQ4ZB&p}nzZHM0}l}n zhdrv|smle?l*eWf#&}gg-Ptvw{g^pM5oIktQN;1wrish1@r>3yFdfiJ&Oo@#+A=Fv zfdKZws?Wm@pxuci#t1srE~neFkmI6<lQnIFSgBF&vVXiS-~;mIV24)_lE{hgn4Y8% zjY{F0`yfP26)CnSNXv3)6nA3>VEj7XK1qW!_{!Mt4F2jRlg;2OG@;iGaryS%4ry?O zmMV!2Gtgv;I$^l2eZt&Su1qc^;Do2<G_l@7cH0<2i?74zx)ReJ(MLT$vME=Mbl73X zlF`-stw-3HS<G*UihSg=YQ-AL-d+uX_O>&*V!_RFFXSI|+O()pEGl2^DV;cKWvRMy zm=A=F2p7MdA`ycVDfh-mg_7i>Vbqixc7|^?Z{h`0c$#Z}4K$BfvfU|E5$lte%WiB> zD>F_m1T9G{%r_s%=bGI|xhf~suNFKDaC!czgLeJQV|;^cY$TB6(-)6ZITTB==iw^* z?6xt@Z6({>RROiA-07@rEqYypOdso}L12u7jKlk@;dE8fND}jUs`FB^xjW~#>@Y60 zDk`~{*f`f+5>Jp-B#nBJZ-w+iW&qB*r!l4IwmU<S3wtQ$7|YTxKZ+&=F4BC?Q90h< z8_zZQq0dyZUIZPdJ^20^9~GzjlAn-pgaEgits!Ma-4A9QH3&!+_XnB;^W#09XnH>1 zpw(e+Prs1oqBH_+IKVHs+@9K8b*|if$@D&8Q6;HXmFRZ5QGn8FULsX!ENaBW$0`&) zHPbV?&O&mHoam@ks-bC4i0A|`>1=zO{{8{iT=`4m*?8nyHi_3e5yxQ5)$a#Ov7-6J z;b++^{w5o97l6n_a^xIonG6L1w^4V3cqDOcbVI`UF~Q&IQ`GZF6b_{4#CHBH&xiJ5 zD@?6ebXz9IGd)yzqBmaVm6{6<(4|*w<tlUrzt7KdhMM4xqhe+g^?~)%8QJl7;>OQ| z?<0v5qt<PrlotLE<a+aY0h&@MAu@;41vg+{iG4oqlMjU8rax1gvG^jRY4LZyqxWJ& zt5)c+tJCusziMsrbl=3>5=>yZ`%?b^=<*tnyJhiEUj6Kq>#)j1+Me&-bTD|!kRwk8 z`EvGr$Ry3u#|z)d22gxeDX9`V(<UKE1E}(R)O4Pn=@go(Kx{nY+C(N5O&~PAFYH;m zHr*+l0KJ+Gmd}0%yBVE+FMzyE7WvKdi!u#8h~fc<>4WR79fZfmZI|FLLl}VMzkeux z%x*mms_YscQE_i}-9+j_fMDR=G&;uhn9v7x1`4*Pu$Cy6<0?Z9f@R9N+3(-5!WlHn zv}B_C=1;w#Pgt%deRSL_gYhzyQ$uEXND)U7=_*U*PQ=*@Ks||BBHIx>kzhObc)BS@ zgioO5YJ<Awo=R~#hC+i1FU^WZJ~=N`A8EJ=aH{e?m3T9CM_#@hpR3eN#iZ4D9w^$v zE&aIH1!@XJVq{bzHMshKydxiFXo9~tMiH5^p6(mxwHdwj`$V+>Y;W(5_86)ZNgw7z zi+tGp>8@FIxqLe=L`5#-B9zK!!^`Q7KAZCjtDH2wo2@1An}q3PX-i2aJzmQLBCbR4 z6fUPz!F<X1oY#s9VhKPZbAZ>#e~ZhOJ%WfT4i;cL^xN&_Gop581zO>RU7_Po8uD9g z28opcy-tVo&n!){CSYn^mgKZ9!FgiuBGW#@5cCYW3dyKUq1ZPDdXPkj_(8I(<2|HI z)Gp9B#L{Au)$nl5p0_Csj8g&HHJ@lxXSZdZ%~}TWao}9n^i?ja7-z;tsepnbm9Z;7 zlcp1Ds?%2j=3Mya+oiMuCgis8>3Sh%0+y6o8zX!_WJcIgETX4wB2WXVIO=q|M}Y&e ze*}LXtEYeqSnzS~&nRpeZb-TNUmGq}V>jM5U*ep${O+XPA0CSJ4wd!xRLzWi4sbN5 z7qV$ur5uNb`42KX-?Agi@oI4fG;ltVH!y5TWRCyRN={ZF(xoev;;l0S8cU!T1U=y$ z&($OC4*iO^wrgeg88Rn8asKnc+x;WdLKn~CujKOt=z;pughB-#s-lHzKC2TLrA9yH z`;%hLnv;o)&OAU64~sT-!$bL@oLJlKA>Y$)j(t3pxm8d7J23{DOJedVRIz-$zio(p z6vf%3&eud!$?M%=^V+0fg!vh(O6OkV9Ra>a3RzU5bLTNUg;a;vCG;mq)*@}PXou?b zPfvI_Gx?alcu)2<<uzXMuO_+-NfARo$Sv(*`Q;ww!Sd?%p5+QGi?tHn81SPgm?t~H zrDFV@v#hTB9n-r}!{fWi;gRg4yg0t%&J|Z6JsCBF*jURnwIBB5^}DO3lZY~k94gn_ z;HOXcE?vA48@CP?5YHES5SzeEf0{Txa0GZE%1LlK-K8x8nHabQu?UOw5x;)4;s$#p zA$_EA<d@3Z3FrCWMvjqw##DN&k)LKYA0~wtOPod<_Rmvwx>z6{8XN$0W(+Men)SFb z)aK(T|JK=e=I8blUJOgmnI;G{Z00>W{p)2ep6rCo28PyiR9WvnJ>Nrsp9Jm-z6o_< zJldOV{92$uCtL)!K&WY-l6;3!HLBa@DF~C4UIEj#Zl}p<aEWV;rO4oFQW6Ua-$cXU z0;v@wHqheAd%qP(Hvg7d0vfCg3Ca5eA|Ld*hYrN<WcIda)Ajf)*2EWxr)-}Q{MgWg z<^q%IF2j-%ZFjVs3BTH5Vtl;tw2C)c{}X@nlY;#7q|sjZVKG)~h}r<qf;1zGZ&$93 zFy#de)`&^ZNIId_CMW+4k5ats2TMKqb5U^eB#n9YY%}%+F_+zWTjm(<E!^&)^^;hp zz6vy`a>f!3p;)eh27h1V_vxhkmI1sNBepJGUz^GN?ctyo(I}|D>r*w>$yXS{Jt_C@ zva(NEB%iWAEGROA&5U+`ZpLiT-!}G_{VaN>resnu=PM{AoU9*+sdbgkUj@{kQI>Z9 ze2CTgK*%{vNaFB(><@L#ylh2K(AnSQlkutwNJ64TBCvn+rCq`GugzPnctW*>@BWrV z)>WG;QDHOw9NFE`ElXdi+nLX=jeHQ$%ZJVFN9M99SbGe{Ub_PtG&GQSOy_nHc2&tZ ztRZz5=$(Gdf(<~fv*LD!Q<UOegwn=2hlpTVRP)AoXfR*vK-1orS?pL_89Qo|Dh0%L zzy^BYEN0Mny51_AmJrVQkPbm@yInBmm`F7Zw1Q2fr#BjlQHSU>bWdoY47%iv7-tT3 zok*<IqV1wfI-M_(m#)IYW497M<#wF%^pwtIOkF`XG2WEkap7hf)2@m(9!(P(OJzef z8h4>V#-LQtN@AJ6W(w*UXa0USywYg%Q=NPnk_Q1~3Zh~w(-dxAw7f%kF1A=I;C*&Y zqI*eRO0~A_9ZBTomi{!C3G~JrsjZVQwpcN~NlX3$GHY=%?H=Dj3&Y`eY}%4irng{E z8Eu;C_Urn{MJk^I`JMVbhA|cs99k--7w#t&obl$(Rd6@@po1|8vN22A{pJ9NpLzsB zbhR}=2(`s)MG+mzSd@f(G>>vBcY0GNosu!2%UV<xR+mc?uzJTfFU68AoL_^6jqUg2 z(xvG4kW5{kqJc#OQ*GS#za@i_LMGrRc{qs?sBQz*-srh5l88}zX^7Sq>1FWxylGS| z+k)3NM3V;YC-x%j^b<oeNJ?8@X!?D4UyfMmbr?(F3=o6xS+HI$Ks(zn`uL12(S<ly zMOmIYR~UwPCvDt6R~FJk>&?7ivjhx&)xP((ANb2+cq&^|K@I254r2i1w$(@G{m3+q zd@vmbbx1Y&mLF!D2D1@2PKJny1Af^nT_qlOv$X1GO9<YDMWf(mN|i09$cC<_OA?(8 z3B$SPc(TQe(J}o@^%hLldbbhRw%m}le@aLF2S;Le39#rwz|`j8^C35#_Es^#T(yn& zAV~}9y<b2|xfS{P^9k)&uLH7d15bvS_-D*F0uNLKKSUUlSbp;;rm*DtoObVV_Jv`h zgc)>wyCkah^2fXImn}oUs(@#f=3TsfJjU|R6mIW|5ca++-NE|RLD|jZzr+cujO9Ub z*6;La=vAZh49ej35^qjMf_YR;vIv}s5gU3%U^u_=XL}}14aXy6=*~!OWP~%~g9V46 zV)UWdF$^bRZlDzx4}i<g=kUXK{^f@`d!M%IvVh>YJAPu=-evzg<(%A$XZwvET4q2d znRfXJQ0O3NV{fBVYeZ{DofwGB;+@WBZ=azD&_Zq^z=LB^f!G*0mu&{s?uHVgC{(7e z-9!mDJna0o&R6a$UoyN|5QI~rPd)Ass!B1R=X$=aF*h&?B~#Q?R>S4OgxGJTDur)M zw6K=ez)`o71AYA1m@X76>JXk$EJo2{aZGV)ZG&pf@&k|xlGVZ5K6t-9giY_+=5ft^ zVSd0;O!_R7#HXqjd~>$0V+p8I`d-rw{K=qvjOTZ{er-dlaC;hK&}#XzS+7$KBMV5- zBR5A)|9p)whU@`a6gOZ$DEey04<{O1W<$0ciL8x2hM7&(%*F9~7@sOUj07xwcW+qb z0BEQT>Z^?#5x7hUI`rdd>}qCS&=IKQ5xdFFu+3v=S)kU*Aj|cv1~pg6thqMf5wnwE zFvPaL%X%7S3dF)@Nfp>w5m1;roT6`H$7Z%sr>}u^m@wF))A_B?<%-u*L<&}k6{C&- z1S6VOHcx;ig^b)i9X_Bg+>Ya_&s8g~R1(M9%ERYV;u%lJQr|U+7KXPhniBAZgY-kL z1XeZJ=whc*W8%>a{-jU4qZT>dBM%H1c)Z_>c=D2K_syT}MQuW16u)r%3Dl(%Yp%(M z+JquhE!SjAOoSZ5?9#{!{<w5_h{a`hm6!DBr&~VA(=>(ff`-#)^-d6a1~ZVR*=UKj zXYmsO16@E!nr%&^Z!g!@yaERHS5&!ucO4?L(ubjTFd>7b@Bt8yX5*<T;)huS21im! zQF27Kl^r+(>;n%{{}^0ocP1TM%c<&v_1vhzqsNg%f25Frf(X21BV=tbttkX-S(CM> zqkxlT7)?3&#Y7Qjym7EPpw+h9$Ooj0<zA<Jr4UqO%c>!?0eQ^G*1ISq7Rw#%Uo@bt zyHgFtSP>*cHq1uKpbnZ~7KdfS?wr-yds#4JKQm}?z&iK#Y)zZS7!=zB35ROhl^ERR zbAb%gh46N^S;Uv+|C2aRoP3#vCJ?N^yra$S+qCI~Ue586JHsrP4t5!M*Te9ev^TZx z*OQ()WTGgvRC#Pc%;Hj^lSC-|=a@ctbAe%M=LWcto^-r+Jt&ny3utICR}5p58bF4W zBYe_?fnTk<3YR?bjDq;pUvr(Y6mBCf57U!*xQ2AgA*nBDb#we9mxFe*LHzXRWLW9} ze8SO#-=ssG;3}X`EJDkT=4E8pDblFlYt@V8|1g3=B6*=D<}+e1aoxfN89>RsA=_a; z;ZY*@K_NZkwYR8=(l<mG^~U0RHR1?Kmgy^O7`{w@1Tt%rIbkt1elpP|&>^7dyYjo& zs-IO=&zRli#Los{sW60cPb~MO6&oAH!tqL}w%V;7usgOf2tqJVQ0dBWjqjCOrLdw* z95En!UPSKhD?h$`5d@acGLM8K%(KgjYDLE&lMRn5zU+m`FLyT)_gb9jhF%6{&X5#i zptf-)wE*Q_(0mum!zWp6|3gqe)o4@%0)<wSqju6<*Zr~4UA|*<x2qT<LD>>Dg={*> z%MEy}Ij^t&&?l$g!QQKll3(b!yEnm)%;DZd1hmo+CQqQKAyMdFIYZI>UV?_Ir(*Ym zmGl)N8{n=q9~FRIZqhl2#~loU+-H60iAeWe+l}D^8efvjADDMTy#^dG`i)_-PN9&c zn^7IG)ZL20!xghO=+TxgltvPYrM&k%bp?iIskFgliUFPAi*Im$Qqz&gA)+J~4sOGt zh({=R4g=v}cm}?=m1O8-l|o6X9tZr$7r&3B9s7O4$+6w%`E~U=v4SD#$bm<(Ow1e1 z73eP&_?@c{Rf>Y6;Jy4SPAv_<EEi5)G6HqLfd(&nYD>FfDdKU8s>v?MjI@09R)gRC zyLY|&0~GS43LZTJnsv)d;*;j;)#IS_rrON5>vp>50i%FmJqBKrJ5wg-9uzsVxx9|O zcU0qW*L?uCqaug<#g?Rf;p6f)ZM4<3q2R3-C1|7Et|guI4%>zBRHB~mzeJY5`1F+@ z%r*s%^&nuj==&3!=&r}nRB<`O<x8002<&RXS9p%y@9dD|cdSVUYOoMe8Xmhe&s;z2 z_J2a>?FywDBbjXm!=0S%Brr7JmecUqHl}DN*=yL`(tX{6V`v4r3jX=V?&KIyk~A(H z25SpBd-}?Q{X?7>ax2<lpPqr(N298ttKrvGEKGc~h7;Z}(bjA$eI@ilj=Cc4Xd^yi z6GasvRr|rUAjhZ7L|ew}CMJRe)r1;{1?%dtZUPVyl`TBMtS^>IpdXrO*%>T~*`#mB z-^Q})kX9ZqgJ1-`y;G6ZXtX7-5X@C|3FT^J6}pYyxr-f!lTdCgj2^=0l1LO*@d)E| zTla^bYx_<xKwmW3+>cdsU^e7I3*bU2tkz;)Pe~8~Ahgd^ib=+m85bvDyGY@yFNyt) zgd2T7L9U-yT!m#HKF%OG8fhJ(jf6a_>h*JYjC<m;eP;o@5r}gub=EXk>~CD%M^54r zD|O&S)D~p$M{6Lv)*757F9V`DXH)wmy|GFozF$BH45oA$R+$+%$kFh+ymZrmp}-7j zW)(Se3MdaEy-k8Ht_*cK5fW+8_&RhtJo`$OQ^wz)CpMN@!Is4P`AG9X--7fQ10E3) z2lZ%WtLDN%)tFR}&g0dUpi%ekiQ!Zi!b8Mo2aVSO6-GHuk2j|0^w3H_t{T@SXmX9D z*MR2CxF0&{>y77pNmI`o9n4@<S&2d#tmU$qNn}5h?KrtJ;#HY`C~j5iShY$qb2NYs zKzuw~LkJdENfX_(koKudStw<p1z7FpU%Z-lpD!#JQ`8NTkO-zL!<L9J5z=_BzE2#^ zxc5MCJBGi)J9jTEM>8ry3R$_npW#}N=zGq*c0&r%+q7j6zLeoW@tH)XbBr+ecFKP~ z3zk@F@aVi4Vs^Ks=TDR^_^8o<J^I}aisPLBx3}*Nc-6<ZIfkSKN%%@Z{!tt-*KTzt z&<_jCnp9394Sy=ePah;5^j_;bPGK7UqD$(fng?h!I?Xb5IC}Ac!f+KGjLSJvI5Tkj z`)bt)#{DvG_VDo-gNXqNl}j{IdwRxc6C+w8m9iY>gxgRLM4v!XiOypz&e?nw^<GIP zsugncCv^s2t_5FNbVdbh#0|eO6y;kQ>smzv3gWO0cH;;^=TjFnDS11TZ$A9(SMGh` zF0ji=x!X=v#)VP%mO9}4&hbA&wgx6{_?A7E$E^q;W7%Ax2Ui9y>y_yq@!ju!LlP%r zjb6#~K~JaJzmHI=J>K87d-Uu1;P-TU@#*A=)9XzL#E`Q25z{wi_#b{ky+Xd<-bs@4 z*9JC5eIJdf(a?b6I%KYYc>##SY!64hnfVyyths(njaYH6(XIF5!5Iy^Vki}(KcMeY zJ(Pzw{=yNz1s7HOr;Zsy-yKXqA$1J)(qov0rfjz59`JkqU9f>|aU@NAyP)3*Sqt0E zF^%9k8hSpBrpRl)P@d_Gi{=y!NLa5+s;Y+qo?U^<?4Xl@V~QyH9XFC(S;;PB?u+As zh4VF!0&lcWFF|3OV_M%b8m-kUOGRCCAi*<rTNg(ahUtvEaltA{0WB%|fdI{$+@d&i z2<=lb92z?6^92&L_=$2<AK1G->ellHx%Lo)rsl!N>EZ<e!YRFe^`vBvj`+TTpDn(y z-lsc<6|cK4i~&FAFlpgNvAa*e7nON~9$}C#^@p+56q>S%W1GANWc2Cw6;{<rk!HGP zi}Bs&`q3O8E*MMHs?*dH?Bhj1oG6pgw;ex6iB~v4=@@%)4gVioe;F6Yv+aGuGq@81 z!6kuU!5xB!;10oI7#xDT!{8bq!5xAJcZb0>xVyW%bI*UDv(Iy$Yai-Ge_-h8>Q&O! zwbt*uK7Nm*<L>x?arJ@Kl5;R`$gawaA^^cuA8etOQtErL6(*&v(qkf|O7jDEWKY=V zNeVF{AuE0OljVF%Q8W;V^!grg?brU$ady|rQI=NqZW#E^$)8cTWf*zQq*&L@_Oimd z9XTL50ihb)pf4#Y`GXjnL$$HO?}eBu9ppPw{`j*o$5dX@Vlp3R047L_|5IU+p$vA3 zFatPhdm@%F-0S|B1z<!Tay2CEuHk}DO7=J23`;;-A72F4;LrTaN|r<9hE}ZStMZbQ zV-jiDhDvqwzE3sjNiNh|7PFd77bq7QA_Co>8-0ZZP4!LP)HRbt(GECGJ@Sg!o`$$g zAeDo*?aDR<{x!C*qNxy#1<oR?wt_M0Cwu7*KvXf2>z4^!uNbvI+OdC+-m0W)b0q^4 zw0U9CMn%PuHjWV^aiBH$?u4vX$doCd9PUsNElqDDZM^TN0L5FKiqA9(spTfEUBz9@ z@cF~qUtw%dHux4B_GZ-CEUMWMZ@m5Xu7Osh`!kE*u3y8c+dou^MFRB{Gp4)W-!Z!) zy>;M^R6vmfIGztibucxA;2nW)PxOX3JPH*xmz7ddx{XyO`Uzb6$*JBX9P~c2g?Woe z-$dAh6DZx^Hn}_}0NnCoHMg+23&h?|Lg4#uP=@1>exy+Tjxx>!JpdW-=^+B1FEUo! z6i*W(A05SlPq*Ty!5(TE>GK-f9={Xit#(4RZvG1BFm2PM1{(#tPLu>82-}JdT*SB| z&EQ7{SHqY+a7Z2u`$?3A{0)kXYGnj>I6+^pQ#3nUJL692Qey(qZ-ui%*qadFT+Kez zQ6x2C4mX(<+cZ{nIbm3xjmWJ}i+`XH_QGE*T{_V<Qp#0RwLQ~KL-7;V@it0g^Phi5 z>TSf@q+YTtM@vK)v~|I*Gn~rM3~0e375YF!?@*1Jtqd4*F`rgK$YBAWekyx#T0>b1 z)A(LXUAX80k)<HW_nwHe#I4r2a!B|~`n(~_;1Nk^_4&5naFq~O^Uc02%Hy6a_Mz=V zTbCavwB6_kx-?fNVVsCEGZ^i3gu`1L(&BNSu;nc?1{jqpvx?wti$}MXRxu4<X*7aE zviku#^J#T|3?|@``ZC_~K&0%Z!ksdED@DPh3&8i9C<u6#!lBY}YWv}6(V&lZZj6p_ z?@a&%`C^j`;rm4YdRXTVy1Al0oP^1W#7$<=JqG$1`*(iGTO;G!&p#HB@CTbYg44S^ zx}%4i&`RQ;C#qN`j|8N5p{LTX21XVSY2utVZoU*RgW(+S5o4kCEJ9=Rn`Q{O7;PW& zvYvaoOF7>KXN>K3BFNmfQO$+S@TEcsNb_YWl-cE<@tdqx`kVEhQ`7riquYh)RX-A7 z&6=@jN=V02zh!Wu0kgyP@}9|>L_b~L3TxN+IzMV>8Au+q*_3`tarFIqf4)g_2=o4! zHhd*DtW`uI%#rB$zLEUH57c+D_!K73<&C@dm1Uh3auxt)Cm4Z|=X<w>3BSt4cZy!c zo--cNN90*`W&ff>O+s38TcJCfN92%@1t$uX`KEasl=lfim?}zo6;nPT4Y)g3qnOAh z;xSNk+I~}Zu`4IQNUD%As>+q_85M?|A^3Wt-{>K)``MzCcioEwtKq!aVLcLMbvR$| zMg~~W;?K72Gw6jx#K3mE=nFwR`wsEYmw#~b+q*rP|1qN1AT{Cp>%~jt_I0j8OQ4{c zr`-G&6}Rz3j~{(^t7_6<xKFzg4WI74rifjGO<aaIl2WP1k2xb~d#~yT7YtRnBnM{A zny+y>`fmg>KXDz5!6-J@9c?EBMp@3UK%UBpOreYA=G(wV8z0(BEmUvPq(NY03YS@# zCZ@PAGwW^T0Vx7w5g$hZYJ$ow$Q$+L;>ur3=&paE|N1#vm|F$2Zhp2p>1FF7mDz~< z#VyseVXKzSNP^&0Q1k1{yNdR+7lO^FO3F_@?w4DXQ>}zc%CLCTs<7v|c9!x_3*m!t z%z35k^q1WsIR4Xmx!oJ{`Y0ln^k=C^F&zoH7ZX|-<QV-I;8bcynh~A^H7Gh6MJuQ> znw8!Gz!VK{gl<aaC7&IDILUofuFWZ5k^Z^n`^Tt5Hb+Uc&*fBof8PvwVjD=Nd-&3Y z#tsg(*pdXiR{{JX6Yx;UWx0+7o}%SX8&&)a@&iEh&hjpj%?8;t(NPCFieJI%FVTOS zy^LY>Ry5$;&W@Vz`~At!;m7nW#Qa!e6n<eeBJW$hUUxjrEU^l(+o@PlYr1`;6F<jG zIS4=2#=#ZbpS2^h&VhhXUZ*2GB;xjoJ<---O=Bte>H%=T5x<)zq?3J_tQk90kCBH3 zk*2hG#@e9oAgCy;V-#^C*Tw1molRH0=!<bCCQXWP<0e@Gf_D@seKFLd!aA`Co_XlB zKOjVQxbD8ph&H3${D7pt$-hazN)xB!=<{$Bd~<iZvmoog+`;ut?_z01RVv+ofO9>k z!(1s=P~WxrzJ{%w2P&JtmGw5dJ3=dKv$p{q0jdlZZDfX`lJZdL7Gzi@XRH^PM|Q8i z$9DV8>Q8(`?GCSCExpE`%TpX`e?*RMijbv^JW`Z3Q=IbA><2phBGX@F0N}G4xMVC! zwL;mqhJzRk)nqs8rFw^YXAR%!G79*;ql8x-3r;tt2;y@z&VGkp@clOQly0~XaG{NB zxjmS{mve`8ymGp;IWdo(Fy@AI`a%#M+!iH}B)Qn|D?P<1=yNL|l2FLy&oUsqg&V#( zufhE=inTe`U`}Ww%%mc^+9Nq*e{|q^a48X3QIXbRIF+3Bwj>w}DEr6g&=hVsb1*CM zsdvCD-AxYtIqmh*U-Jh}Bx7qD_|?+-^X)q;1#dS_5dE9k9`*);vA%O_3aq6Z@i3YP zJWVIWcE;pMbm6!pFPP`6N$R)a?9I0#D`|Vss%@XN1)0B3TAU`E{BR?`72k)R%MPkW zOXt+y;&OkVOh)WFO~JQ9ZHxofC%YoVQ$;jsccaPd5>{pkr1YK3QQE$JZ$88a1h8f& z$T0`%8NMMM*{r0C_5EsSu-fKv_z_+wO=OHB_BMC`b$zGPQe`Tm3jEREqqtmh+(<kJ z<sn(&XY50@4*aqVXU>D{=y*-QP@$5eEeFCX4Dk5Z?jUU198PvHfu8>9@=3k2Wgc9? ziw(|`jv+@uFY!8-M`o;cwZbh+#5?ju8zw+CkEd7r;;W6Zv7Sq^<NN%0bHT>S8FAzc zsFsHK!d!}Z9|9iiySj(k9s2C%FVs3Ei2zJGaP40&2^jN#=JYD>|Dqm-va#-ouuRKl zr17Cba%|x)S?=omZCN+@L(I6HALJHl&C0<?nleKwjo<~BiRJVMY|<~cr>g`sC0QTK zHEW}EvB^Is<s;$C4yYtE1}!((N04=<z{l+wt25df5-4QwCioO<M-X#c)61z{ZvXw8 z&p2w1wkqs2m2tgEP^3}MZN1Wz{(aU~j%=|WcW8g5(Nm*D7cDr>>CT4fuaGXq&GDjQ zY`&b4*%5Ayxt+Fc3w9b~pGY)yLYhl93qMRRnIqKNG>L#zU{)Ds1PhuUE-O^4ZqlrL z<EK{qjhjE@9okRV<|w@)vs-4XnO|XlDOM-^dxj7Q5$zV+Cj!mNQ#ftq_1v$!7i#}p zMh+^b@VfuGOCsa1$wbzo7oT95YZN5>MQ9~UVaTqS6uG_(UvU_-BswJt*#}3J>eeQ} zB26<Lt9M2c6E&9&^UEv~qYxzT$BnvkDUW!z$z3tP8yHGT57!g40C2HHsmJg1d&g0% zheTmF69)BlKY4+LyS`5yDh$f`{+jW)G&6ooVCy{DO}by+Pgjk1Yx$RO&c-0tQli0^ zyfZfDjkrXt%1Z-!w!3+J<`|8V(13T(E~k!ENlhk0zx?VdCY6TW>TTyWC1{83D6vEY zbzPG?{7bFyA;3yqMCAxlIsV#tTC9ZBl};;!q`0lk5j4#b+Bpo&HYc>5Q6{-bB~nQw zF0y$uWI17+K0mXiWx{UW(SUN8ht8ZDNy&MALv7*EBh>rM7#Eu1GGU1frI3Rg2ljjy zdBh@}`3;%&6Sah;>oH#hX=wM{8|>RLiukt}jA%A{P~-R#z*`q2^NlBxm1`R^LGri_ zpPYcd3~mUq%JU{IKLV=xlPI#DHVZ~@6&4ucm`AXxSt3lPEGvCJrecnq7)+qqgKv`C zhLiY^Vhy{Y85=Dx*gnqW)u$DeVvh#_UBg0N%LdfkNpbsm?2pDk5(mz5A+?NTOE7)8 zi3r@90W*?HUff2<hyqf;a#TY^JgZ5Ae*Mkf4Q}}jr~8bdOHyX+n*PWy1oh?W0-KIZ zOdpTNQGmy*0WKkHsYJGkLBZGrPjI=|-EQYc2rf3-^{?n;jkC-oP7BH(h~>f*x{t_& zV?RqUlW9rqy3%eTi)`Z~0l=I@U5qhc41_4&@xx)P$AcxBoxbIBLb|_}Zo2n*?xyIr zj_HHdE;r7Dh2~^Sdv-hi<6n~LY+x6WlTM@G!>xIFdhmXB+wm{j@TyC9PcJsZ+Rt9t zvK5XFIdNMzc-B|P%^3^z(}aC0jR&(Ooon})3s9jzazPKqC!FW!OIw#C@4%BvB5f_3 z*qpCFtmHmPMYDifWs>Hm(P@Z)UnO=sydG!d&1arWIQ<`ysoi>7@dVDDQwj3s8$H_r z)`JNSGx`UIKKpOQgHFYgmNkq3=&K^URI7E4<x->Stzm=SH^lJ_W1m4vees8yT6&AF znZRmzP^5qs%9Qx-7sRdX_PY6M(+#iibAI=v8JoH9bsO)KLipx?^5NUUHukazG@BW9 z?vWpV>By*kipPy?#6A_Cs1tnry8Nj>cJbw%SHupZu0m|mPkmS#kdu(-T<4?51AhLd zOm3gRogB;Oo#Wx1VJ3B4?y@;LA}<o2)BKC2`T*aO8qj9%v_PX?^0VFRU-dVZcWvIW zQ}n7R-1Da`gX@pj6v<?X-|mF@yI<D-RI@N&kwrR$K5vR%F?`w}ERm?;Dp1tVQlDr4 z(El6qLol6IlU5<Ui?Qx)XUA)BDgV5l`Zu7u&!oJHmK^lUdl7}JR;<gfHk3C3390f| z5qQJ0o;MU(Y)1*dJ>sjDG{Qxj8@&Bj8~j=Z`5s!@;t{nvEQHj1zY2cpL?7zl(G9M# z=$!fV!y}!j$nn9kqgKD4EgDb?00FzJ5=%`i5lLPXT2ZR&*J7G-ft<hK#V`_n<a_O1 zA%8oPHyWtg7OH|H{7LJ|3@3&fbt|gIji&xPAiBt?FDe#2K<mwb9cyn7o6!4I?viX9 z!N&;{q|)46xu5<!!zuYd7L>$&DCZZnIeoi0Oyp}i0=Zt}7Ev+De)9#Ft%?p8AjtD3 z#k9KkNnN>F{RBFNE!QlcT9>rFtJ4Uc;j(<-Bo_M47@%uuK@Jbo+*0E9MzM3)R$r%W z9R+w5Y&{=bCYn4`j3#K}ZbbwkpG~57Qm-M37~f9>!GVc+41VD=Ie(X2sPQQkUsbQW zV2oJ}n<;xpf2hW;0(n1J>>JdMN*}H1eHQIQmHiBHyn%7~!rr0j)LJp8^-+-%N(nY# z5t)pRlpYa$3}Bl(U^~$}P?cZ@#up&;@5ix3gIfn2^9YTDvf7A&--n5h=PQFe&b$x2 z%RXRFS>OBg*IenyZjWX59mLv!g*{i`zRy&Z@@{uShL`3i5r;4sXrsv4;(8-9KW4B@ zkg!)!T$8bC$|8x_+?J((^|tCNR*}(TO5;h@&^@AoXnj4I$`%w1qTpfqc|CIH)#Q9a z_nE+Q=J|uBTPP^UgNvBWDXV3wPhB`CAl8>d<UG0~1gh9o8U6K%2(X(LbgA)9W7R+y zJxPo6^B1H&ct=hYQjY^f3P*s(8>hL<sxH-}ruC30(XOWH;U_(qJ|>=jEVCyI6P^df ztJle9c1bcFmo{J>`&J;!j5ejKO%Voi%jL5|dV>g&IxWVqN4`FhQ{81Y8S{wVOQI~{ zE+5fs33c6VM02gPsTT4z>#JJTbX8+WPJLdlTWXku`O<1(0=#hV``J7_x$*fv&$%3L zS&*m&DwDw_3X0Q8taoUCyvsV_?YqaZY6O=LLZ%#o?ob5a+81L(a46sfz7PqD9*KkT z$@OTS1^RhO;{(#;AB|58IqY-$-b^R*EMxKGPEr}S#mSHs=8tu~b&3huUKRvMqJn$) zsbm9>K!$Qyytx3~>R<TwRq<~X4oxoR7B>O_LujL5nz^jx3i~p|#zf2b^Vz-2<_y`V z^&>}CW|)U_xw_tFz-wFm2J}LJ^30cPDpH?aWSbU&>;UKjwjELnKVE)mPUb0a=iONI zu2pxvwwPPEWx`B;Y5K9V3e43?)Chb$+|~EbLx@?TyPFvlmj(YOU@*nN5zn`XjNZIE zH=MjPcs75!a<55#CYBamT*}uHw8=ytcpq^a6^{v9-E>6g>TTW5sIof!q-Zni<t9J{ zD#;r48MDgaXEVr|5+WYc!}K=(Npe+Az6pbfz6t@J&iO=_i4lI~y1an<sXxlegB%r< zJu{AI1Q~s(UO(`RD8z$}ilYm#6Cc5q>jeZDoj^BHhs$RkYt4v`C-|BSKN@<wq?ICh zN0%*Ik6w0C9Ub?bHQP4}BQO+D6;{1@qCtF{!jhy^nGVy~FD#kLqPv?`Wb?_J<rX-D z4+baUZgyU62Y&a)h@H=9Zd!xYF4wDWYSTJ~Jsl;(6O%AJ=sG*#%wHA(;NSs#&+Y%L zJF;fWPg*G}O8%F4w(g)`uebVJ`4(T26SuWyY@O9>tOmO72Y*~z1*n_}Bk^155*N21 z+K1@Ot2e?il!Nj1I5gSpm?hy!AwZY7*AXwp&I7+OU#=4>tJTVA{7a56S`2Xv;uBYI zW(O;i<&bsckZuoW{6rhxbqW(f4Rv**M3-c?We#$}y|2PxQRxJy(RrV@ba{ngO+ViF z7)^({O3+=1J(Y(qe^7NjV3U!nL%#tHthQ`UFtz_N8x{)ky&&Zw`eLVhTz>%<*ZYiZ zs_`bONJS~r<~T?wfvo~7%>Smy9ln&QvVc*u=mNTK^qXAJ>n`r$0&TT$^mS9~+*kb1 z!RRV+VRKEy**0Qt0@E1!l}$y*+U-z%LjoE+1U!4<?R2*$BwGN_gu#$&5X8Is2T7f< z#+01UJP1|fi``q_(~JT@2b3N4)BF%dHqUTPCH06n8m>q{)?3c+t|u$F9OB^VK*WyA z#vzk`z~bT+ljXPXpA+&n6x8il7x9@vp9m#0>dWtI3xQG5$(_g;72VswW+yk|wXdyj zA>>q59BQ(kzY4+|u?tl<=CZIEwSh@H>O+6dV5&+0(0lDRuM?swRX*ZJp8a)AL}>XK zG2w<0D`B}^7iTLK;s^H{=~w;@mYIVeqnG`|NSCA{A{CTa$*84wrgArDcWW<ZP93j# z6vzr)>q2=V!WAjNgs*SFrxAQZuu55hMP=VwlaFkaQWsSjC%8ai)R^LWBp;OK5TORJ z*0Vk3i(8E4{{^<w;vlHvDUAsyNV@J=@dQ+(9U~klNDcbb=fIJs^H|p)eL|=am^lE6 zOkzeIK5G;B7uzls%_;$*PS&deQqz#SI}G^yIs^uc1E8mlz1RWiaInDw(oAhFH&2#{ z7zKE>Bd0BjYB1gjtE%q&@HW$b{>QsUqqD*Gux_-@SKOCZJ72$ZCe*?VM!nbdO=Q#Y zc3hv{E1zk`o?2Rr60?dSwsk9G+yzINQZJH_N9``~WVJX}pQV;)_4;1=Q~cb+7CiGy zXDnzGBtYQ9h1(r%#v$0A5lBw;wc@A?<C^T*p)sW{ucl)oD3z!c*W(JOLPYs!E??Z2 zQO}GC<2nC!*f?T{CKXsZgfo&!F#i-kl!j_K{D|uW?T(>)LdOuLct#F*?DfF9l-6Y2 zf6gJkyewsOqaj3>TD8H6L@hLGw*>2568Wzq?j&%kF~)r+Fi4PnV2u$WP`SmPqm~U4 z-Fym)2%<=Ruo`)XcM+z6c~oFzqd5d`l{bdrCcdKuXy+BFcgbuE8a2QzMNgC~meq`C zHk{vhkJxgiVr0@$@zG5vd7hD_0s%u*mazjWqn{5?VOyY(o{vl0LPUI_YiA84Ma)0B z+OEqJo8s6+D|xW2jE;_Yg6@s>?2gp>BEF0s;h;JVH1uv(Ah@iPgRvrstaSW&C;EPt zx_z)8F%LH?#YoDo;X3<bhJ`MTkf1qu_;^d<UmDW~x7pQx|9hz@IWM={mKcRTQ@U40 z$Z%5mZaWr(c+>rrROgT9i!?2xE^eClCV$Jp;Q{6%JsE%J$SB8?=!dg<_}-sPeyc@e zSZ*DoV3>@i&V~xQ+g4%AdPjRDFT-BVNJk4lhQ!aBinN+kK?##}ZgBS%^hEd$VVg!% zyF~j=R=X_YfTYjoBWADCI=GOLX1{#-%|_KvZkp{oXet|0*i{E*-ZHa*L%vpR=l!Wa z81(sg)$;jQw2%!3x}4avd;3XFv<*UY43ego1WhKJ_3EIZl?L9L$yAnbG<CJCKZs+= zizYDMa%~X+3$FhNpQ_Tqc`kt6U=U6A?JbLqE*k2LjMB2AQbDtG^?(3P;id9^2o@&9 zI?$E%(<q@j&)qy48TGe3C1NGwvtpzQyk@cR+)lF;{c^SQ*Hq$ALbkW@_UEamX|MS- zPre!*<2)l7T=2~w+<Fw6PJih>Prp*v`A~c12H^`^%*Yab9)bFCla4anJ9C}|dMB>5 z-iko<Bwq8{qwuHFgVizVVte1av4fq{8_a$qQ@U5QcF$yrBsOS1(__;8cR{E`diq|6 z*WIH$5K@8k%^PJM`Av8gwz-~?_omVntFPa0-Ijf6>CL{pGn~1Su;h<4JMMct7Eg%e zKiX}^$zvsasY{qCJ>`kJs{Y`0F`#6S6Y9R0*dvPCfBPi^|NoW``M_x&EVk+5NG?pM zb*=7!DEc@4fBxy!9y5?EXXo`UK&iffGwc5>YrdFJ9GAee@1cjjn12}JkzRC&l}bB& z58eMXE5i)>pXH94>+Gh>ESwZaLhd#6-O(B;DP{eJ$iHs?iJe#pGRtyVIQ`?(|5)SS zR{7`n#KU!#tP$$<^1xJnf&UX&W_QI>LKy$Ak0ywfgj#&|`^s%V79#&gd4KdBU>XT_ z0Um|F6GRh7ApjY<(wl0`d6)g!l7aWj_CtAPzbYm6hbraCi2cX;YwbnA60d@<7VkN~ z1B99>179h6e&DDjalBwdG<ZSr%9qOJ$A$K`=3bCLax(Cug}|OOv@hF#a^sQW{-5%K zP8^EMG~v6>Jtg>r%$Y@N2^A+8Cg=*<%;ZJs>uVTzMYWUdjbD6)9vAEUt5*gfQ5Ghy zVlSvD|L3>)h++n6FswfND+)TTuzNWUurb!H6P~fdw>6Xnn|Tn747g=qDts&YrxyO& z@PoN*g<K^Q8voHUD4WD66beMaf#;HU6bx+xOwp)gZ#h|Thax(dS=&C&nZT5s^<~iV zSIu`y^*Nm25G1^=AuQ@5y8pL7$-uW)A%WTRVW#?K4mGZ(3#UxhgInA99Bx$6EO-45 zgT<CxvyiU&Q{V(-LZsrmi2O7{ag&<qe}0dFBK$g4p@G<(=l9p+w_R+l(sKC`ya;2| zTKX^?du8*>qO<67`UHdv^Q+t09pW>5S;5;p;QtgqeGq&`bjIt&XC<_=8OR^(l_pq% zcOjo=nM$LcyLh#%6Txp5Yx=PP9_8$)E(AF`D_IGA)kFLO-<AVEMgCJcR`d5?2Dife zKaj)+!G8aD5iy?yKrtmly0cr8{&;od0@Wz|rN<54lS~Dn3|e>-x~a5-aHx}lN~wMI zE}qH@h@AWWxw$dO22HWY|22-ls_=s$iSpNlu^olL9Q(I&1Rp$bB_=C5-SG;hGhx?- zvJ?Ul-Jboi^_HvtryBpR&Ob*H%_#^%gOZCS2D9b5!MTrG@;^Q0sT_9Jy}s*#%>NkW zf0;)q7l`N-_&Wq=SX_BjDCu2Ul`1g`JaOn5i{lry%{NFHai4zw$HhcYEZ#Fl6LdPv zi|yGLTm4sme8D9S%@P8<hV2&GeEE-|^S+-GB7IRo<B&!*#2nqV;9Yp}@6mmy2p_(_ zE!<jE{QnM;I3yn;OsO$C#wAt=)0*S!%VV_ZfFT-(p9|U@8oHu#yz;-U^L~w338Nfx zsFe4gc0J3Sfi6pqc1}HuhrWS@%td{LJ)E+naMtSPNRCvP^*X0=z6GiMYapD}BgIX6 z_!cYZ75>LGcV=n+UJ|K~)j3Dl=SAFB*ehRh6r|GGP)V;IY5w~Orj}V`byodT@$dfY zGXa5XdCFyer}ZC}5V3e)WBFdC8zqj{$0{6$iGA7qE|O9_T<RyETnhK6>fW&z1hxDB zG6h_jpB+%~%l~m-|J>=D2hKNw-|>*zHYP%%Gv^8t8#lc-?e`d3KmGjgCKD0ie51g1 z1ys&#Qvbgy!fE;5reyExx=#`4W^iQWU~Y@$6SQ+tT=nng5Ug$1@zQ5~!&No@{ipvu z6$koYLR-$u+h6kAU+)uN?sqAeD|qJeXkNu$FIB0({g+wGkvfx!y<b6PWvc%%;ruhR zp*$0_RyNCl6Aj&iUUu_j{>%DrlrX=d5GXXBqZPirp3OYF%CbOC414c7>S(9~W#f5g zH!LnFQ!^&1_V{m`|NoA!7MOtvZT1h}2KI*%%dbXXJ8>SJvhCJiZZl_^oA~}c4t~F$ z%Z2b1XjpWw630+D3ieau#v1URY)t3^^;Ouu7yoxJc=LyI?S7As@AF42H4~K}R6fkY zhc^yQ*w%cH1<ZkUZRfM6!uyxIEO<g+5YR@!1T@d<3*t?#KNrXHJ=Mtb{PgwU%SIJd zin<Yfow*POo+WvGLAj3_WxArje9WadznIen>JOc5%{xBaopa>b%ZcJpNn9On`;q$& zc2IM6Sr<vo5@!YRo@DHb3s}u^Wv=f!kP5o^GwZccmPNc{py4XfPxN_tq8FN5?+W3O z9aX=3y@RLl+kCygUA@}u!w&DK@Cn7>k?kLW&viV!Aq$6E<jJQ><g&1c3%#QGqOx~; zSq|UA8u9JRJ6Jz7CjS{7gD>!dlA`tL?>g(K_%32oMLcbpctNkWwv<Lb?dHK{=SysX z;yw%_631qQRP7mmZk5Nhxke<-b|4Zw#N=d%nVN74VT+mylIvPwf^jisBZkE&OzATO zY?*9zJT7@%{gxEd@uk0Rzl%@dviKN#S=rNiA$FDRdB1eN^m6mZvG6dVTZOpppfZos zc&;y+qVZ)lFA#MjHbBgw^pbJ((X842k~<tn5Vl>avml%}`HYNh4tq`fR-o=2P9faZ zJ^>ZK$-O+fcU)*O;a4kF34@_H4o+Jb_2@E-1a=pjDK~?*@J~MtGA*i~3)y>PjvmK? zR($WIqB8|@;^==xn3W0_thVpo#~Aj6i=S`y%=nv-YeNiRTrw1_I<dIX%NMF}sE?z{ zN9?7~2FEnH3TGoaBn`jy#@gNm?;0@adAo^ZBny!pEiNYhyzS|7c)8KC8I80E2{zh$ z(7#DEE*iebuo5hWtaK@Q(UyejUtorrMHvoVgj_XSi3hbIA#1F<&1TwM-7F(3XVes_ zD*3fEetop`>Me8}+i!n$Xx;KY`5I~&>5SuD-QIAr;StJ4hGV|F3fpMiTaTs1<8fh> zNu$f2VIB~$rVcnod{9wY^TjZ!pQ7k$d}V`}J@tmRF|HQ3ApZ;=aZQ#Z(a{<$$qV9b zYn_BeKdfH_?fQtk{d)VMZX)5QNoyY)e+s_0hx<swbl-I5q`p}sm2-Bq?I=uPPve~5 z4)QU&GH_T`S&^DeSiz#;mmUSRyp_(CONc|m?`MFuZEe23x8NPJbEa>veU6-5Zby0W zOG~W>V|itr_w^2wpznS7FIwrZ_J*Ff`XxQ}v`f>+bmC!elf&_xs%V>{c@>GocpWx4 z<C*qJv)J`oyndW4d5TOkBwqdu!GJzf@H$1x@DjY;geM{=)DfTsd5Fml&VkHn{VmKU z>jb@`?FSm|{J?|bw)06jNIuQnb4IJzEs9jMBfn2qeaziwOYce4N;M_;u};W_LDChL z@|XMHV0*?rlv0io^T2<$B{D_JbNZsjTM#3PRDv$zc<m`O@*d>09CvbVtaVgZR|IRk z%5_^M;{Qx#Nx%@&h3jIqcB7BC19{)viMibXT$T$-+V#gG$jexkyOpv0W?0{$BHG8= zT*IBEWMCy8gAF|G3iB|nxDW7;%9p0{-F>ab`)Er^!kql&!iB2MH1dS}G6*onPJERy z&;HrTUj|bO&#!w6r3Bc})5)mP)S8blQjJ*c0e3F8fZI}w0VX!NYN#8(>*@H$p6kug zl1wsTVO3m0WW95r!oheo3mN~G3`~0*+reo$BCycl&am9POW*lhGFqW0En-Y*#^P7^ zN(qXN#b)Q>tgX`h>Yp&qEq$1pzDO$D|C?W?t>4qVamC!uu#S>|ZMBGy$cqMZS|xGc z06j~s_3|&7L`H*_se|*uX-kX#il3&tu{6?OsCC1~p)cNFGk7iNGg{1H+u>6U%JA;y zi7TLXAMr$@u~zrP1c0J75Hu#4gXCP~ySk!HzRRqed%$)0_QZYqRJIUCJFIzykfaMc zc1j|jPZw*%m1l9(S}uk^T%XW??rWPiVxn5cI)H5;Jog`;;V|K?O+*&q7D=stp*(_V zpRRUa;Nt{!)E%7U@_H_<&8}0N<Kp;Hx1Uhm1l`U;dll2<@?@G2P|m7o(|1SpLtD}= zwo#p+=%>HV^+w|8snklJNNO!7RY*kc@<-PMeDCh)wQH=HN;P@aj2By1r9Nr%3Qre- zlu3P`u977bQlz8Fg{H&f8O+oV#<TN?c<nB(__SNT3wrOMl83_HE~lCuNn{9x$v;Hj z%c@(>lDMj~WZ1xTwnj<le{~zuR<{p{_ej}P5C$`8k!!72`j1|Y=*QS@Iq>*R<pvX| zbN=o{XA0$@PVP(&Y1kI(gy6>s+bU3;w|l=Tka=Qem+QAFS5hiWl?6E~ExXx+1vrxP z^&i<c^G9-IHOd@!1@QkS8?JB<af)raOa*E=!S;QLIdTd3@?{LvzrrHb&DT#4%?Ia1 z;{yF4&;%aaRaIJ_nHgh|@~Ai_M<mMvaW^R;M+h&&tPTEl5|1@!PdHJRsg~H{z}gYX z>4ImBkk89k3zfXz4fclP7SR!$)+28ZCfbPJ4JYcT{_Q>Xw3wV({#LI3&VhMDkdEK& zj<-~+J^sNyT`H4?tM+g~zgglWS1LL3V5(3~i#<0{l)L_PrM<wykzle5S+T~=9C@+U z{7a*QaW+9YXcCgWS>u@CLOfHfKppW8r=ZQ}Q6b#}1Me}yRPpM3`EaaM_}!<NkQAP> z0&3?UtF6+iyBBUBfS43xs#gJTupyDktePNJOMjF)*eDTpTw!l=f8?$gGctbTeg71{ z!=fWUTedtl(c8N7H$FXu=a1RU&Y}zn>dK{;NDj>~>;nZ1n^z7qIWciGUgevTWLRZ3 z24nx5e5EOeeVf8A&JM%8Ve#!f++Ju~E|PibS)gMdT)*X$`8b$HFIc;Eu3odJ+*2gI z1X^uz)S!@Gq*$tlaUK_n>kCFfF$KF+O}A&jJO{f9R5z`O@=9{KUDr*T*&p+hz2@%= z7}sFg)r)2!Kc9Sfm8*lD2kK$7D~HYLQnMlq&Xa5VR2u(Q*oO3AJP$KE{%u&6?W%9g z<32}RMrJ%0<Qu4X^<>xHa%s-~8Pg3$<oI>t@TmRX_5=pw)!08%c1?xMk|4FjXsEx; zfWHW^_DnQKy0*#$RefV^w;&};x}TRpk450WJ=(qDse@~=q94p~)Nl96$<8TIwmLb> z?xF}HNq%QpKhgAqzx&AT<VfpCnr3WsN`FBu7u7V8t3o!D9>T)f0^SM5@)MlhD@RV^ z@XWV(6Li+%ela!>d-6c%bTwyhe{^tQisY7l-SEB>9iP*CkII9saOW?#w=Q7AYN0CL z<CcWZ6nZ#QWRg&p7XVWyp;e&6kHWI=q4v%n)E-)N@7d$U3abD{f-#9i^xem>`Fb!i zRy9iU*Ts;P;mQ+*VSFp?iAN&B7>AinQoe1D%z?WQv-&GINQpR1<-XA)yU<`04`{X{ zKL-dz5^_sX=pD%-g|jhH;9vqBcbKxIRr4>s6Y@ZUO)CC(sC&GJJ`a&vPs*(<7svp_ zN}gkU478nXiCc8lqfz~quZyn7*|3m>@ryikA}NMH@qjfN2-hY@7-2{1dMIz6OdL2} zgJ2ehVUvV7mM%D*{me+H2qGKi7Nt=nRUFR|&tq9_oA~eoEdf0uFE_ZSa=%o{q$QsB zMv-?M#U@e8y}*D%S|`6+Js4D*@Yd_?&Q*v7XQs|4-m)F7fvz2HPXxbD<-&4+YYF%= z`;lqZ4%*f@KPr6gJq?JEwfA;fXtr(VE$huf?auIEq$Ga%-&m`arN+IUp+wH)Ln$%l zAwTbCI!xD$)%I7B|7KY|pq{ZCUk{OQz~1=Ll!)Le-kzdDTgr8LJe`h751e3YP(cT| zWZk$!{%U=;p+uqd9Q6^lShMlTzR@DFVu`p<dGH2j?T@2kH88@})IXG{)9ch*PR|Yp znIt+PXY={c(?>2Q{njv3J2U64HBcOzH}Ut$l8l7>C9P@;T5qG)z(6p*`_)GqnEQJJ z%TdT-!xgS%0M~3}yfT*jDxSZg^>giw>Ucuw{MRUYQY$!+FS)=MSq+=B4jWd}tH%RO zxFh!9MMqM?QH=Y$S{BEp=Mq43<S?e^AnAnt7LVb?usEml61ckKou-Q@{hf=Jhj3Jy zfb4A9>hHN=+l0KTz$p&j^9!!hd!ypQ(F7=}tO=&ILB}%BNGuhJv-PTOA@KhnGPMy; zVhHzTW>l6G`&1+4+lsd`DUbCxovUq|l@_sr`-K6FLhPf-<WgC$%m!j%XYN*?>nK<n z5vgR3+#DV&oQnTuAN?Sl3)rxKt=FPD6}riI4%yp|n4M}6#Z;DfGMVtRgi-0fuP2r- z=N<*40*nORukKLg(}gk*-5H6;s$;qLL)?;h>GhTnatFS4g<S3k6HflJXS5#QQB2{B zru|K!y6*2zhpm|MdUqbHkj}3N(^746zw$d<93HpNt<<37_sb_w6y%*+`FlLykeyKI zXHS|jD}~G~nT@1(mC&)539*7&+#bY$YXD7A-;IYKi<G4}Mg`+ZIM4K=Ee)pjrDTv& zGz+DI6foiX;)(qUdpZo`At973V-%A7K-Uis(HDy{i$ge<cfS|6b+%N;8Hgm@6};id zXNdmsQ2PxVa06<#j~LN!_@WRTmc3aZcU|I!GZ|QFd#$O65@T|AwU7HFnK$-#PpCp^ z>P*2$0ejEe7x)LGNf%-^A7WVMNSPQSuy&-7{BcVBGlJWIm(Mj*hV#KUtZ$u%dOlZs zsAPiMqUc0kQT@Xno1Smu9^ek0%wJCs4%5aytuX1DGi7TuGV3<dm|~rY{zCx@ge|?o z7o7GL3q~^vVgN1B8GlU<BRpEBr;h){iXt-n@TXjqxhG;`tB3>PQPQ93A6C??AdD3S zKmd<n+6z0&KtzaIg?`^<nGK~R4<<5Djck@X7w;h4V9ZfV*ojBvF3$Ht{2j-?OqDCL zFmc*uELr7uv5>=K0$O0)sPU2Kzj$&05EvcU!Z8>upIXFPodyeP8Rnqp_X2<(?pUP{ z=Nd`$8k~~3S?3Td#8|+65KIC>2N)SdK8aH;m&ftJ_=h_Zjrz!uR+0GO4O}h}$M=TJ zDuzLdcSRI?e>84wzU3$gexGRJYCK*wLW(iodAvOKnaGnZ^~^9SH2v}YTcJ5B@Xa2O z(-TdrDK`R;gi|ju{RuDRr>6jaQp3LJU^s>oTxi`#(L5e+5NiQE6fcvXmmz_90?M<* zvVsZ$NkA=eQ&+Rw`ac^f3eN0?c~_*2c(^HLf|i5a**arDy%<D=#2kO4?4BiG%y_Z> zVLdrLbxRKpkag~j{|;kSM3O0ITg0BS7g)s;sHmqQe4nu~&zfYpGn6X%RV;)oznjNq zDc5SgO6j|#Bt_y7?`)Y~0Uo{T8HNS^&tM@+Id&jxKxJ}>Xt<lbwJQMUbfahJDMRQt zslZqT&EB24iRsyA?QfG9bQ=Lbk#`g#3E2XpRCsw&@YC{YHXLb{R~5Ldl%i!4N~K^c zYIgV*t8Fv-WhfRr)mC40dw)8zq!xQV6$IvnXcXHxf4mGE6+5{s@%;z4Wd4EHeyIV3 z`4Xj<TfNI{0hwL+q0`NS4N$Ji4HFj_4lUDa|1o0M;?-FF2<~-bFFvK>&^w%A1vYN{ z20!Txfk~ic+QY`h=Q?~$yPa14l@NXd8_6Y$_C@7S#~YYC0SUeVhi4oaJqmwq&{Qt7 zaCbsi??L5u1y9J>Nia~RB)PzvJy`IgOp=H!0sj~qv<&XvLAmlbqB$kD4AX#f#<-Bv z72b52au|&IWJw=B%_>k2^)U6>AM$#+5ND-jzksr+<c40w@Yfh9v(D+ac~I3_sm#u9 zz#lbwJk#{-+)|^%BmSh4d<#Q2KBQ$-T3|eQcsQz6Yzwh<eGG}Z_d~Z!M^F8^hgdz< zUcTH7w%6AGYbAD&oYPW`&zOTE04`H%3d}tG^Wr1+T{!o#cbxD@E`<|E&saSduYzBY zD9#VEObJD2vFy+h;7bw`(=OEy;RVY|$I`<hstV&GIDU`{r-MN|Bx~2OG*20U-eM-Q z?{dOTWGVS<7FF1*X{j;Ex%@`h$CQGYRMXH2@OIB!Gydj4%f>@2Xx(?$#&P2~wI~gm z+(VaB34tu$OB&^?Z=egIau|f&k(6FW*Bg5=OW%ba+-{C+m+EvNdTNcWeS*^TYjLRw zrMi-mQJFg~nY3i-=tHV5){e#lU!>qwngThz@9zANqSE9XlLRACDFmscC}y=ck{k7D zCc7?&yH|Hj7-l9BU&`VpyrWC>%CSdBS5uNepAq40Pky~~3hv-d8l;vtd{FNT#b3^k z3XrjVaL_JB2Co=Axdv)&NI(zw&ST*|ihI`<kn6y;jOaB{hL7iK!Ix(Eual%d`nH$P zi`1WbgugtfojiUazjQn8%q#Zaf5)VaXJ8Y_3ph0F3zvsslZ=Clx7m=&Bq<0m_RcUa zjQ=K)iw64iaAjoqj>-)&F4ad7@YJEqzIF)Qb#(Ow+DaMv*zBwFr&QwL5Ja9ITEXZz zm!r_tA9SEqD(}w^-Vmj|(H1bi7E;|pC5;>RY{O~>tHGDH)2RhxvSHhD_N;XO)o~Vm zA&%4w^6mbFWK{eeK$#qmd(}s6{-BCqOA6N{?7{Nfqe(C<84M!a`r(8{b|(@qUjEDV z1<&Ex&LqLr-KITK%A~T@3<2Z?#-0jqI&pu^W`&KwJjgS07C(CREO;S;TRq(N)?oD6 zXyb;aIb1r9Hyb>&!M8~cYV-MvJBTH;V2~DKQ9-NYmuIv@<zAIr#ryln0O{-tvdJ98 zCN2S%3Hc$Y!dQ%H6QNH%h2epk1!Bw^bcH=6o2mG-GYF=Vf0Y~&M@L^n4>$lmdrT(T z<L=L$;}WkqZ}qb|(1V6cstXm-9|`3&{%B^rXtpa~`hg>Jgri9L*m-0WQOO+nLM6?d zmjA3?j~^|B_!e~O_J(arR7aP<AaGo<NY|&9IBXI<C;Z@0)&bo*w>BieT>MXA%5*+Y z1zj$O?l;v6IB-BsziUJaOJID%QvYx|SNfpFpTTOQg1-Qk*IZ0f44=C!gl`U&9AW?v zVbTGRMQ0zWb_LwK5J}`C?DoF;AL5gn8+NdA;^Azmd_)3c&N#+bnTqZ8E=jmTVs7Is zb*I;<O*&;c4kFjPuE+;EWCK<nA^WQ=DUy7cV%e48F(UCr;qG|3_J?TY6{mBrRR`7- zS_eNkyn`oG8Q_9R&izZhvXOqy_YH*qUoa;DqW6f5P-^tuWT5ut4omJ|o%$g<I4clq zB7YYSRd~fU2{)>G0luH>!_9#xj3PdRZ1KqAKBkrDVSTbBIN1qKu)@20e>mS<u5}h} z5+TkXB$D)rW*htMux7{H;Z%038gz&eM+j1ezT^6v>u?4g35U?TZQD$aiZ1FAi>PmH z82KlsY0i1<gzp>z8wpQ?Ede*nKJ&2JHlJ0O<Q1{EJK~CIETjelAYFmpamELPqVEFS zh)jB#m<&xDy^=S2RXZHKlK<`-xD+5a8~4J%QATg>IQ6!$A`n_mmM(J*jPfl_SwmBq z<z+gg?)tAiC$11TF8YRpyL_It<BJ@ECfKDbe~|J~)|%y~aRh|$*erAL(_*ux3K^ZS zb03E(s@;3E!-3Ak@HIz=S-g{}8D6t|Umij}*Vzp3_*!ls2Np5S;evUZ$UifSNL%I? znTyem=+bE-Kad>#4-1MP9d|{vmH!+-(;Dh;xwg~!lXf%`k|>1Ph>ee_Ysguqp@yWj z96ZG#>@=K?9EcsL#hjFFp!KE7HjM|C>%Fp1jrCK<=Z0ZMW~uFP6L&Z}3c<AwCt~uz zcH>p4Lfl68jfn&>6zj5<U*POgeyt1bVryQux=r-S&3;%8=q)Rm;X7~yN@|}i*NfNM zD({~@P68{4Z@<(l%N?a?b;=mI37h`XBHSY>N9{j<hr|S>oD9%oZ|%kWUj43Ht7#Ze zrw?RF4qk#g+ncY92aug(j>Ci4qx9>DCQ_g%7%lLhk|*+TAhR&_EEjaBo-;t(w(bDf zI|7S)-!SVcvE+`AU+d$@=tfl1$y3o%_IjP!l){nomX$+0^qYrMa3^%)l%FBzI~jrO zdHfu;cg60+-pP=5Q?Xo%(=yG60(P5Rt!0gYmz_M|o8PPZq#Vc4mjFN-uuE>#g<)GI zFxh>&$Ne5TQ&nRQLqi4zj4kplAAxHTZJLC|6Sl*oeHN9+6K#mGq>MUo9g#j`{pY4O ziB*?hYm`lybZG_|x;l_Z`3mb<-Mwy4;BVCuP$;%t=Uo{Ptc)!oiE?5#xHO@(3q=~X zpn>-`EKw8R>&VAs`?&woDKbwQ*V5fiIA5iAaMRykY~wjMF*MHu*6M7!Ts&^i$)xeA zHuS(?T#VMR9AtZb+z?Y1-45?1yp2VZL!qNa->cX)EYWaB1KM814D?J3_7dIwjm}}x zKEPFQR0bmr=9W9F7V_;0jfhZOUrPv+QBWrnsgNnySosuce=ITizRW!P>4S>le)EvZ z&d@TCau^Y2;Y(H7)zKzQ@`jejT^eY&vEoj#`}8)Z>yXMjc%CR`av0$EjZPy$H=Hka z@dNJSA)D_Kn}{?0j$k!2?3I+26~Ky=kCw*pKqF7g_2#8SCb6^|{!R-H{8%RD?%fRX z_30Z~-l(ujp1^2|$9+UzTDnrMc|MQLACoW*=+M9u5s<w|5f&;#UK;iZiB7uuut_zN zS%&QO#LQ+X$HI$bXZ+*-7nP^WdI81`Y@URr^*}X^(ajRccilbluJ-I`)oU|cAslLO z@SJ##b35@daUD3^#vgTBydm3QC2;+C4VO-QjRC-W8|M*VTQYOZkLqh~sm_c$vT?oL z>2v*E?dzCmz1Tw0vgd7>x1i35@HJsc-Jf`dFb~ZfbwTZ$N3?T+v+Ov3fu-o=i(u)T z-D69*qt50AhiT%2u`*1(cCV<BGy%$$S-*e~)GRGfG!wM!Lzg^wRvYQpcJ<MsZ^fA+ z&}H+OB+=sBzY&f#gVVX`#laM^j1O26k5>H$W&nKKoXK8`OORxOh`V#3#t_@Lzv;BU zME`xhg?|0{v)$NVMl$!YYDHn?0`+puPZxUi9zlTqZFj46$v0q)01s!B`wYPz1^(pe zc^J>TBQn;0xzPuUd`@v|vD8wM=;#o?ZL;ooj(XS&=rW(0S&oX#+F9|kT&TL3PZ{qc zxG>qR{G2?JsgxuKZYOYE_<aVO<4qW)-Xk96!S-M;Bkh1hU&}#l+avmv$AtVp??G&P z9#>mMTD({Q@{VuC65AJ)8PO=Bq!5qSy>Sju&Byqjv@r{3JE<@Aww~dato+1m1~lRZ z?X;W0w|RMvH0;f#!GuS)%eDGWFKZ!;9>aTa@qb+_Y+;c_Z>~@(h7zon>NEg9^%l8# z4#no0Bw#AQ%;Z+@WJ@a-$IfR`Y=>eyGoG?GUIUwU=jw+IK81`{DY+=ECckSP7xW7B zVacf=3oE!VSF=y4V*b}^G4tdw<mpD73m-rM@-9#IZiF0YWCvfZ3_UvgksW~XWh2>l zLxEpJ;f}s)D?p+7T&c~-cJ*#Qgh1%zW5q+SyF)Udq<HuO;-=g1abW}&s2REmV|M%Z zU&3SnczrW3tf&!92`R}0ZPJXU%x0$fs5Ch+pyv?aQOIWY1odpF-jXR@*lYOPZikYC zseVihht<4coUOn)kISHy$Ll)$_33zW`j)36;9%2mZO><+>nP-6AJJZ+im&#(fI=$g zZ-|A@0jE$YR}B8jZ0-Q=<T5|@mGq-0#m=kLq~=WOa3R~us3Q`4DeB;{%Uu$0x?nR8 zMZM?0SpfBqn3m_(LB2-S60CVJ5n;jj@6LCjm2zgSa^GPy@6A-e1}L(bgM8(Bk1!zi z%{=zGt>8!sUo5LxpneM*t{Dmx@iZC~(-){5@b!%xF~Ml^N3Yb5>k-@&$r>>C*_Ru7 z<V*d23GNV1v@2e-a|a+fFv$;<0?>jwxr-(n&DQleUQ(2U3MLTQm^5ppeg6}Gkkh6c zkRoJ|#M+0bvtLEPfOpCWWrp}x7euYQJqNM0%wHy=&Lmbc@@5Fx{xqiogfk`aWi+vg zSRxG9ozAli>O^SWU7AK3Q7XEQ(<b+~-CSM7Ji19CyYCuEWVFIbKA0CcR8b>uao?f? zUA8xF-rVxJAAxBYKNh%0B%mWvY=k;+%uScJL=-JqsR4Rn@!jV_N3Fi2A=t?S^Qk-X z6hkkg>}dIWvzfx?#H(E;^f}_I;8#B??bOefE9~oi&B(Wv*^k_RNkXOl;}5yb>v2p8 zLE2%hF0ANvqt__>PK<@gyu`3|r#-N53BOwFpv~{3)rZcfnWb6z@=GmKFS_}AO-3*Q zESr*llk0vz)>V}1!BkWy=N}jfssqgr`yF;&LCBWtAZ^_p{KF4y_TiEDXX~}reOPQs z*2{mAQ7(_M;TIb0H&EJDCzC7T{D?HtQ>KgbS3y?lZ|3Vi)?9)u*Fb=eYsh2PUA=#W zhVPV22fq7Zm%=<_mPf=)Y%9RRu_}2_?-<s7fx{C_j}Homb#2%+>r#S(R3kGVseMB~ zVBb;yC10Exufm_Lw}Uig!HnH{<mycQbfr=);hZ915Qz^10suwx#G$pRJcxt{`ljt{ zmZRnD;4!7}ZpN(WB~)P;atgc-$YK*xy(?fx8)nO?&Wy;KBAGK)fqq9&GLI|KV&`an z&s6@tL9AF3mNfylZRE;|752FQ7X)g==$L}Ud`@c85x|P(f+xah>CgM%fl{Y=yucNB z>6wK3x$066#dp-=u7BJRu^YyDt!gw-z=?7tK4N3#%X6n%ab+#l)x$=Ue4?a$bv~Yu zhSc)fEHq?;Tb8$)fQ}1YlJe<oY&jC<a)U2vG{a%Qw=#}8$@ov$enIoqo&*LSk#<Sf zhHUVyt6cSBAwASogfS8%h<>YWhSY->SvS9TLMgJm1o^!XJNc|{$-TdRhNT6;%g^RD zUugJ=Qq3cb!-w+vmO64&&i~NggqnzUwasT&oGM)9B3GJm=P8D$if~Hy28Ys*IO>Lo zCQ~A8ApdPS)36MSnZ8C6J>zIK=);H8B<nDCT6trviT$BpfuqZ2jtc!h_;2@UQ+-{w z74&36j44ZWi#Gh30I|8yUuH+EIFV(r3?<)3{NYnvz=9lcT`KxW9^F>-fJ`(KT{!Kf zH|^wW%BKpY=5urV0wnFf9x65sa~e1zKJ#HmS+axC{r11}l#x6KM-fz?QHQ@XB|zre z=Y6E}E5gvs2uY@f0PTE0@uNKR_q(FXtHjeq8#>=2b^{)gsZ^65A>*?N{D%g5NBbnF zjSh7E54{s|DESKRj;2N&oyAA`pNhfU1tyNAvP%jY+Z{)*^UY{ypQ4yO(D6dhPEco5 zmX;&<<0u$<mg%t&!)x$Z{wvRmN*Y{H!bZ<SCI`!9)#*01JC4+sU7vx)<$2gob9FO^ z*+}c{)jc|4n&h>?C+~|ZL_SQ@37tFZ&&ZSHbzCwwJXBrw70r03WaN?(M6Y~W%4jrE z+cN(jTW<jr*U~NEV!?w1cL)~TT@!-4yIZi}&Y&TLV8IFQ1b2sFfDqi>oxvRj805|Q z&wt*#@19#-HB&V;-FxrVy;ra9wfb9u6uHaouWgc;68+yzzfGTtSC^KBlBP|B>!XzR zgMb^Lx#S;0+~#H8FOk0cYlX&9u=E)tSIe`lw@yds)nOmZV$RC$IEOElx6E_+1f!hq zSLDGws>l~7%ds1SO<7Pg{?_q4)Vj^BzENjYL!gb=NC(!Cq0*r{r?MLL=aunYjB9K} zX3Ib0YJ2W4a5Hb^K2S_#igPm*Hq->zQn1KA!&$F2uC3UiFo|&;e0}bVHHIFad=j{p z%2CtNF*93o^$=C<Y;Q=UcVTop-*6RSiNG3lnE$oKBK5tkfTWh6eve<7fhQ!=17Rak z`%{AG=R;PZz~hF1^`=O%G$du3QmD=-shntl)H^G$lO=Dp*pL=8zRkzt4|YlwfU3(R zri(_4j>%&oo;9KfPS~WzwT_!K5N{D;XDsV?OBM=&SHiUfYaBd801p?&qC&!}Nz5`^ z-Wk{Zs(_!?8h)0N-7uh|8JWc>rAucI)Xa+>$?lp7$<o5d``tzks3_l!Pqf|b{)T2x zl!MX4)>Mz+>vSU$4M&+|gPQW*hN{SQ)nKY~T+*mtI+}_5mmksi4;gMtawzFXqPokW z6lR9<xzAenVVBzh6sIOZwLPy+=3a+m?C1c36^Q%oH7%Or`-bO!9Tj<!gndk6SD*Pj zrNFSc7S_MBAL)(?G;2p#mZN*8i-*up8D7azdJ^p?$rCy8?!xkqx*5^YtzCoanjOIv zc$fu=QIL4`OE<gn8z!X^Si}!G&ubKd;E(PsY}K5fiaC4o2(f;P(Apb6wRw6ZbSZ{v zJqE$G8_2AriCTYE%HmR#h7iNn;a&Yay=WcZP+I`ci(qcD=iYa`Sr)ufQx=ssd%$e5 zwqL2FKi_E<E2FR!u_sb|k?e;#q$s9{=T@0V>K$uO0_Hp(0QoA76G$gD)(js@j&}J3 ztqNN%6^pN0+UW`+0tbn$r<pzBbvzDtP}y;R)S&|kJALls6!K3|y_}XCbY9`q?77=M zy|Pi*54ei+_a<1FEikn0!*LV$8XsdjKf5WFs^g~$nD;9n+1}^cF7nQK{*aP|{G}qf z)Z~QhVEKjU9>Zf>;`AkNNh>2|v{HY@&uodSn_Q-QM*@)Hv<$>M32OW9Huyf9MN<N> zl?7J<=Fs~_bT7om(+!qIlVoQT7N*HjJZhYDCfY5553_pw%_Q9Jhur%9HiHnRCGr7Z z;!h;=UeLWfDq|T2k4G@Cw1EPdyO+*grF009I<9ML4R%pWSv<}(4*ZQOU9W{Nt+*$0 zRtZ+C?z3|%K=oNP0O7{d(|fHw?`tW|#3O;A)I}F1CF+R4CgO@PhS)gCl0C0IOjDsR z56_4o?eUzi%qi1xE_bE9!SyFD)Z=4O^^Z?GwRBhKz>*bJ2^842l_o=wRY>@k0Q4oX zqX07Tn}9^a1=&N9-8aPL_}tBv9~e|!hVGc$XC>=}(=@tix;@ABh}IvtS>`@#s8m6F zbz}IGv0~dItVl}DZ#CO|X!PsNGe~_5j`E4I%tbqVywLlfx~a_c5D<AaGPoThPa z_2F>rG)g2RZr{C4vG#KL>ddBFjVEaW^b7l5yoc4UNL7-0ww>*s+vI;{jyc9Gh$-kv zA)d4gJtVs_{>Z;B{}2!&PYocm8Mnyb9D>7JEHZ=E8fS_Gk?cjsuJatGpRMJYAj*Hn zv$9{xZE}+wcY65}HeBYSHy-rhWwA4GW7t&wE+{~jh+}JsySvp0YbU!qVx!<!{Q2<$ zupD+IB(bYnLId-4y1YRV+X6|HZbb^gr?b*-!TjC;TN)RmlD!x5ge>FUiNaE>2bD4I z&qJ&=GF88<4!`(4Kdp&@9dDgZX(w>WdmykCBH~CwU;M=f@XO+c$O3cxTVY7d`d0hn z8(@G*X|0r73&uXe72ljh?&aZ);;g_k)Ondsl>{y=d3gDcaT{x>JR*qG4X1juA3BjC za+0eCG(w-r4Ql9m_N!P5*hP<>$6fFm@ml<)!d4phE(=DO)dHT~Zam4jcV@%&1|VAc z#?4!}h2l~3;sRcse-F;D-+z~eWLg=o85Guzf{w`lC29lUyvW$@GdcI!Q{SVwT3R+X z;O4N%;`M5X5clYQMgHg~JE!eqhd3QAeASX*LME}q#VED)*5xMKB0IygrtUU%)a)rn zB6{&qf>v7Rb)fo5x-Z`XUyG^g-APm#mW11Jl0nn)gfUyC1n<)f>jb{5<3{dU4tIEj z$?K^pKMMHP=Y`sibqCyzKdoFAAM5Ao>-ta@Jvr8k9p;=<Vho#?uRe87LD=X=;7y1) zS(Hi|KIVyZH%rNRAq$1|eTu5G(o3fNU_;bhr9k3{TFYmurc6?4y*p@qL|0|hXuuVX zPS7xF@3YZ;b$zV{Eb<Bl8ZHehsZo^|@V=?Z<=o0izRAD3Z!EmB59IWrLamwz5qe?i zwi9?lj)%A8le(#_ur?9@N__EoX5W=L0~t=ITA$^{+{T&!!Hu^ImU1%}fd|z~P}ZYx z+TeAEUR+}pPn_4SvvS-qzTI0f<hk;>3e8}I>S=xArwFrD=dtCiD`+DC{+9^7l<=~d z2{`5p%1YM}lXhL2$H|I11-I8D9l>BMD4aiR+Pbx#T-YZVwuQz!{;D5RZtkYwE&#S= zCnaVC&JOE4ci4JZJd<SR2i;5Cb7CV_H*fWI=|BQFi9gd1X(h=h8xDNs8`c(SFfoN~ zLurvMw%8@EgysmYIj7I-({rAraX1HlYdqk1N{@f94Rq8W%oIy?Txgip1vzk}MK&Js ztFe}Tov=fw3GzByEC~qEKkB=2vsN4&(sr;$e+)VRQ==1`CzY9bB!^Nq;FxWSkCs`q znU0%c2H<n_HjL=+v+^)xh6_gl$Au5e)>La&nKP3MG#}n0KIkVBz$FQ5Ge_`x^Y2S0 z15e&r6}~B4uYu7g&e2b=S~VHLqS19Nfmc}mmlNuV$46vMJ;y}i(Z#V8j;j9Gcahio z0$NUxSCv_Nh&tvTf0p6kD?a2VP+icW;Ta@a3zLUN(6vV;Z~D{7Zy}*3xvl1X_6t+7 zvU^Stsz2!@L@bU@vgHhFO7}i|?5^$b+D^GdeE-8~WJmw@ZE0^W<JiE4I$jal!UwK= zfA7NMpGFl(V6m%mj(Vg$Ku3;ZH~M4`mbh(|KA5`?z1NDlXpO)o#mboctKA}!l3q&p zNHbv*g-P{k+Mx$9l}WuL)c8ET091Oxp2qhTBLajxA<HE|t^)HH$cqWAZ#}{%Lp;a9 z9L5D@UdY82j$}z>CO`q0qXw&np>vr!Qdkfv=<$#YyK=>N;Mk7}V9DJE%WcREg^SkU zE_zXT?&GFSBSPx%IuW7cI6twVCbE_Pxgtf{gP;0=N_Mh9)_ZL0h#!ia*)oGi>|v!s zrHkaT?0Jf~9xJ;FOkLir$nN<T2Seg$9Qjc<Bc`w?4<)PFJ?6z(*73ZtoLFguj9(t5 z$-^19g%a%EvBiCXFT7p0l31{#=f3=S<0otA9p3vTjZnN9&Ad49W=J_}r)Edwg&i4| zK;mJhT1rMhKv1%zF!a?I?YDvCgX>47M!=+1J3w_#L~y5<lrk?ea<l{DE#*%J)ojtk zTVp?#Y3Vf-hxNPd^UZ+DM3zpm4-!!H!;d*x4e4m#*H)ZRkUR#q7Eu^50gJAzscec2 z?e>Vvv5U9&nYE(gh?!O!L4Ha}-1{JPrG^J&pV2T9I>hA(i1z!Mqye`QJ32&R!C@je z_wimU--Dr>Td-vFk^Op-w~vh}FdzgBBKv5rPX*X{{Y`&(ZoL3(Qi#(ze(zs6-MT|Z zzgtAKDe1J)FMMCIjMC+K1BYbqi|F1HcP^%wP8Ux)f9T<zvIvqX*Im|`3oR<QdivwU ztd<ZvL5v~Jdr&gwC!R9w$Do*?2as)j!VVTM*E_15Uhi;2qFnFTH1;xG>$|x+j_(9H zHT_%>s#{?B?N7<|_K%dwS%r(^gt;`aa^6`mE_2~$Rl(+Il~k#=XAjXc)(gwu>RL{^ zW~qG6W|@8labV#PHg3tl_xSIz_DJZ}6)&oz1~Ppy@NrVGu}&*{QgIh4(D3NgUf^G~ z4}cWzrG-g&K8H5yHBz#8k!v${Aum5r!(s`$T)5t%>m*F~V>1Ow`EOolJjd4Aj+c>Z z9(5Sijo}03(7bSh?U(XnEWVUdoNX}rH#wHgjIH{W#zx=ZJIp(&6@Pt&TS@=x!}`Zj z9N&Zlo|5h350b-G(A8!I0RR;He3OWo+PV*fQnC$kA_&fVGHvzms9*CLhaHVA&b;Jl zd#B8cSS}#rUhq4X!thTtc@=2Di$WNBXZAaeNcFzopu;hoRj)>mS(i29#}q&4TR%z@ zh4V^-bmL1{1Xew9y9;6HIL+wty9atz9Qk1&V#Eyd`%D8qT-O>G8flJs=uJZI+Bb8l zr0N>+mN?$kLb|KA+kIlxOTDKT?Q{-!tv(O94iEjRlxSl4KQprqP5NAWG!p?Z5C33V zw<}>XG{G;+dpXv4rD3?~WUZcAX~rgn7c%2XyFVnC&SlXe;Zl<Ws_UsMO;xx2^F3SJ z9TL#in;&)MYzTI@)i1Fj_$kzlY}OcYPY6)qdP}X$*&^<~#VJyhc|2$$fh}#j-+FyE z*)7{3oz0<rX~n!n6Bhaj7HX7XpbX!CY9J`76OYT1gmvL;f$SkT@X2t4&u89q$L)CM zCpz^QCd#iQEfbz^C>`%0N|v&|Q`fC^e!V)Mm%@u_LvRDP6S@PaWuku_3W4j#f`%Ld zyp4W-eelZO=&*ghu@>##Q2e%NYi!D1N``(kf+}aO?jr%?d{r!U!%`Jfuy-S7Jtclq zxrwv>;d=aAKUub!0H{bp5HrG#b!!={Ew`6u`oYw-9F$fd4ObA1{BaE|riv5<a4Zjc zx=DQkO8DAj$lYCSO8Fl0mg4+4LM`p6diaB8@dw}x*d8%+Q{QioftS3_O~NffL#Wj2 zG&w1WBespC;%K_0C1&(ujR>iC7uQ|(--MRAmXCcmwppd(Q{a7t@cWUsm~V03Qyk2T zW|`xS@JJFv@{ssY(pBK|Yn?x>KtDWwkO|4vfVZq%a?KpB^SZq^U7%%dx<tMpjUI_2 z(|Rge=un>#M66~0u_e!vq1>V(b^=lJ^U0z1jQLec1?tG=t>r*IQyBF-Bz%~jHB<Gr z?bCOr3L;l$7|q1)N};vdxwCsemC=3@96MoWBCF;p@KDH0(I7*E=_ryd>R!d`uqvG` z=K1*fs<j~CA+i$t+k7i5DZzvrCZUlPsL{#9wDSmU<>N;)($J4OG{5F?pVRkQ;&Lep zL^To$)<4o9ev8kzktm><x^Hh!z)x(l9WxH?ix$A~xSSF4^l`&*P)zNYcNj8H(=*sT zcO~mpD2dl6=5x~`@Q|B7Dd#QKnh;RgLy{hX*DA@jf!mp{5R^$NEDScez9%k96plrI zDQR1afNL_?ov6i|Q;sC$DYMWuU@WTA`|}#>=hK1@(R_6^ja$;UTZf&-H&!vR7is*v z9**w=wYUqt;}cdKKrWtmR|rUpSQ%bylUyxU3s(>}Cye=IQq8!b^U7&DZ!u@B$u2)m zE1oPrZVgKp`3nnaEhMoA`?@+2^d8w*e&0F-^KMrY1S?Y_Hs-Len7ZnhmpenRnD-6! z+dp?AaHsRz?a$dY^&SWnG-$umU6OqsB4Cl5KNZ_$9RW_6ah|b~9{<v*Z)&hxSGQ5h zu#$B@_z^hhmP6I>#+1l&@X(EYxlP%f`=sQTdSZ%3v7>w>9t*#okiXT+m%*Aw6-MKB zk2=cGkjSH}RE}*xR`l^5&dfb{KZ$3G0f39^k|t(}F5I;iW<VJ5{3uN|--|^~;#u{@ z#y$&9%k%U$jP)x=gZ<|_1vhQ1>HTec(W-jqF8Fg<E#hCT&5QUy!_~8h-{^DOXh~ME zbOMYUez5AdDapiAmJ@#)^Si3V3M`tA(<;F_v7(k-SLbwfoGxpXx^>>rtg_CyWv={i z?}i0MSdJyZjRz5S>pV2%7pP$AFeqggFY$ESC^&kgp~-RRHE6wIRH#sj5$g!1J={3T z58qt4Y>4|7Bg${_1r?nWN`iF;3j{?XG*r}Yw*PrKIbZCFLC#~4FC9nYy9sxV{()sW zj_}FC4(^-v9X&4_IhqXp(?X-&?1xSfhWzIw=43z}jiBaKgDc|fo@EGMA`Du?c?*k8 zTfCa#dWZ;~ky}BLnQ)xVXA-Z<8E7D>pY=CC87lgK!~L$utJA!ffkf1!Wx{bO>uM4$ z=t*W&D^U2rw85&?BN#DIrjw3X!1YqAsB2e|umuUaQp!;Z#rI-=hsktu{5z|D4S=(j zt#T-|9fYnPdRHA@Y{<(|`mFqFSJMJ##NPg?`t6ABxj6h)1Y*EL;Uu^FnuT?pZrvyN zEPRXMvSfvVL?4s;kv8|UY%8h$@3>l!9?Te^huiKzh0?U%dvQd{b1oj+ZntDcF5&29 zI16%-K!fy|YP&AvbR=>VvcE7z=iP}auRolKJn740Cbs1Gd)~&Edlh&k@HoiW8N3)a zo{h9deJDAYEl*13Fhky9?e-mCIT*e^c<yv3D17<B1?Lmw?JFkE9kGS<PzSA&q5sL{ zT`I*k+--}hAOD1FTuw*qhzZAo9s3=P*cRbOS<$;k--@rQNlqdV#lE_#E`Tscs-mv5 z*3%yYPJ#x7Pwik&hd|59Yy-w~5wdt)fAdfQ8yrUT0Q_exybp@&g5o`kJo|mq{i@x_ z5Syy=DIV)PjmA8m0ZYCEY^=r!jxk;&Dq=Bn=1h}R5QwEzH1vKMT`AU$IvpdC{}lD< zj57$HahjPjgX%a{T2UvY)I<68aprKrOYYVkgCpFL&szR27VcqH_oMyr?J8D;OKzrw zx5{6(Jag!x$LZs%SHdgz+u2s{P19_`P&Tg9anC=I9ymVl9zGr`y8bBJ{r!`N8T4vY zWxN;v<gqUb9po_EApW2k`-GCEOEpXn^#sCOGKq;L(K<e~wW)WYrVU0`L?D0a^tkA` z<9E_zEi_uJTVTxEZ&=gsXHD}R$aF7it}yH2O5g(Ew@(=cGw&rYR(pY1r7ywp2lYgy zE3dA=x57hBsE#7+NgUXr6y(X-PbiA?X?}mYcQ~FD<3m0U{uo34h?iC*|MuxyUpPnQ z$T!g})adT*^X6vwb!ZD*saFr_*6Au#9IhI*Ms5p9E{egk$p6gr%h(PS^eWhPif#xp z=kYQ4k<4Z!5*ID=`M9aK-;loMaUkDKcHhAne~6r$9B}>iRX1_~lIA8K`a1<k@_6k# zM)!fV<yJ6t_S3ytOtHE+Tq8CcKqYW_z>N%3vGHyARlaiAd96p|<JGu3$+IF=7Mq%) zj8mmiRnmy8WY?&n_trfJYS1Tr>(yemOFRT5ZDvz)$A|q7(-Pd|?cVl92+Rk5s%t>i zsV6clKnsR==3I$Nyphl{m55z2erQ*lgTUwVXFExj2llF*-|27n1)M`ndw<2#D#~0F zeeRA9SaehJ@Y&Kwd8ZJWyNF`Xg8x!euk;{nEpBqDW4>?%i!*iew^Gj~=w=DkJFRPc z{BCC1SruFXe&rvf(h+5L?noeZzPqt<UqCrVBwTXi^D-xkMaA0raIJ~xeA1BJKhY}m z9?sTvb}fa?FfSMpD?6*mr#2t`+yF~0JUF#n*svSx!Ts$*cYuf7`m=vdSe9pbDvP_Y zuJyr{gQ;oZPkXzW-0XCwg3@C4RH_37IJNzK!wi3}E>kdven%Sno9BL;g?Y4e?NY7x z3U7OgXHD^V&PA8Kj<sHH5j&>%Hu^-z9x4%XZC8E|a^vJ$g<o1zq$$t2RUEZprbmCG z0ZF4Ac&LqUAn>kE-}_x(-Y3{xD{*5pRb3YkE1zy2<O*b+u20Q2PQ?)xXkbA->4cm0 zk5y*%b<~4B@YA!}5CRdGV)Y62Es%1S5P54K{4H1iM3b_IqZ3&1t9>QWXf1kNIJ32j z{*~Yugj8&oE?_srdvkVhkQV@c;{Jq+U5i2Dir-XuVJRbb;FhdyHI#gAI!g#gAdv#g zI-usrxL0menty#Tn^k@bwd{<ukJycnB=4SuA-I;|yDRkT29hGT>8#P0M}7du+cL4% zn>B+e-?N8yW@l6Ope7l^ReZ&;E$7fLsD~4W{NZc<G^>&o-)2iE&*D;<!=soSP|@b6 zqA$R`Z8QFp@%4q#R76@3c-m?&h+vTt9)1HF{DHA4Nx<0=lazo-vIyxhA`8`PgE%s- z=fsUZN)Z2=G2q7p7jt-+7w)sa;+oMS{zf17l39xT(8w$9fD!!U5Y}*={SCW3O>5zh zYVFGW&Vouv`0s=);OF(`B(C!-x4Q-TUFXP~jS>28vGQ@{y_3n>WK603v!dbo(h!R2 zf$uD7^Zpy!l*P`e8>yDUJ*HifRJk8W&LAaMeEBa&DS80^^Wa2Vb~8!OMO{ud!83g` zDEH<{r(iShc_8<Jcf{4ALZC4!^*-*dw~DDQKc*MV(^DMWug<wyP}9ltkTPqE@*Y#T zx$D){LeHy!TapTJe(8;HuuSyj!6t#8%o#QYWMy=(f`e&>RZ4SRP_vCA*_k)=OlLDU z<7_?JBwF)G92gPc&^{LctW2cu?S_1F)wJS5t~b#8yt<@KL2i2ls2Y<cq>UR)TSLa# z?=aefaS9PkL^$tN8N$kibt|<9)!%WHp?X@?PNMN&t%3wBZ#`u}KMzRH-LzB01tc!0 zXsQYKoYvb)f6Pkd<Sv=}S#?|q{irgoFB>aM0cPbm(z0wwgTB1rt5od<zcd=%@f$qx zm1f=5?#<ef=NiIu*gkPTIK_#FS?#U#O;r|**M4X3Z=2Z;iTe$Gu(Q*8jSI2afHrt- z^INwKiDUGadwe`)MUoK9r&ot`C$D)tb3B<>9R`dk>O#h}MJD>K$5Zs-O*%|Xh3@?^ zltgS=F^RiT!?riI0*9jSAGC(P=V@lxcu|FSFcQ3{G=rJPmf4SR?qdepEW=qM5d2TQ zhzG!LpK&~{KN=H5XYtcHy}nF8n7A-VxGV_X7nuqiOf?Bf7X2JDg#|Yp79xe-Coyd< z5M42UAUdci-1d9;YS?ChsB~^y3aC)z;bd%FEOdWKc6uUNfcoE3=zxeK;i4s5ap00Z zi&$06mTF6<RIYrJi{#O6wQ~529$tHtEn2JH+uA9tHRjMe+sTfO_mX_nOl<}-VEVz) zd^qi4zpQlNy~IjZGw471?rVUvn%)`s+fW-Bkjoon5e!&xD~c+YBr_>_lcM;CtU%?> zkKIOC1_ng4UHB~Np6x)t*YM}h4fG<WvM$D5rvm$z4m#y@)srRb^)EjV1blBB;21pN zi08nxYQ`_KC<_iwItYa!_L_z)rY2U7_pkio*Od8*p91ew=e1uUW0JEv%zgerVJOhD zMB!)`4c9N{_58E_P3ELh&U~)PH0yUn4=l$UNwEcHf+6&_pci0z$SrIeG+5?cdG_$( zkM~~BJ+D%s9$Q4EnozjqYv6{S!3_)?i@9s)@R%0w#keOLVY4(*cmq&0TfWe|qiKr; zy~=?PfW&lue6i+Tr&lWuA14JAwq9bCT(#5}nve*BhE6@ef)12eSZK)lA%;hRV9#{K z=hr-l=}Zswtf})P<j*IM!f|Wh`FlNEr}6Q}XQv}>DL>yMh{%xb0MyLasMA+h^o__^ zF3RnLvxQEo$K{>t_MJYGNYQn2VaNyY$RlAVQVSU_kaSHt$a-L3p7W%WrU3b6Kj2W( zxog~?a9^R#)y$;{ML?ybPBbL(Gmx>7DYU)+6<tm%7=AK^%~^7}2j)s>KAuqgDc5YL zGrk_>_dL!L;GQG*C64x2NKIw+_mK2?q#V<;)b?|CkDcF4663gdi0>VeT5UNMJHtQ{ z*OPK;V5!t)V!?=hSWgaMV9d9Z;XYDsW^Jch!EA}sjpgcqkkyhKLLx%=CzNM&0p8{! z>{SXq@^T0Xr_#N_=~AAxnJV7?Hq5ZM`|d||e0^sI3zMQ;-MzPSgI>-$ptvhM$o6^^ z_Ht#MohIgAJZA6IWCuT?BNN_XGW-q{o1e2Zs+537ClGSOZ|;&kK9cyuH3q!O9JZn4 zp5+bR>yT(^CXr7FA<KN~yA;KZrAQRmw-q~=tGf0i8JWyMiP6AQAz@8KAn$eQkV+iL z-A@7s=+3JKIbYX;SAtM^FgchR8-^bJXz_caM%bLn(w2D=T~ZXGoD-5n)ij)DsX(s> zA5!c;SWnk8zxD*(^RJLR?~(SxtsL$ccZXA&5KYKGImmnq>Ia}g?Gy%IYUs%LEo9)M z$-BPTxQ!iicU_`*<Y+tJ90oALvU&HTjP7x!tBhfj3%>J*2y>et_{HY#U^|M~=ozuN z4{B2^)OsO@q7kDI9B;LT7O)BPNE#c5@x_4RgUpDo>Q{nOoWxWm=bwag2#zgUpPf*y zSI(FvMnOIK6TWpKJwFxJLF|;{u>^?G9W1SAcsUh61M1#|x&dqa#zWmkyFDwO8IW{+ ztA@BBE6F;c0w;jm7!o0;vHawOH$Z?J$mrg9KwHT^K4vTRN2U3zj{H#Nyr1}i6p*~* zg6W$YhT+Yi=t-)l1fTu0qi<e;yBNpf<!eigj;zh*2}OueCoA<-xd(`?81v$h-9y-D zXpSNb``c9KQcWqd-o(|avLu*8jdi9M_qI7mMW~(?&XQTquj+Ho*7>gVLb=a0KV1$4 zt$)E}d%2dDDG-_8TNbJ~I6Hg*V0^^w_H(PJ^m+ZsCKb6;#_>v@kam8e89t;2BzMT6 z(L1kXawjMRzr5#-(i9Mj>POREg%+(c!gcD9t5|~7^D^=Fai9oNw`-d<pkc8b`-bm3 zH{NTu8{QjEQclvl8oqP85mkC`)I0d6nnu#L>amq8h<nhQ?7AReX~xCe)s)@nQQ6~q z-rLnvsNVK{VHfCTeO(%$^s~DlB;?5-N%eiVmIALJUWtA#VO>{XyPI){F_WgxzEwRh zsgEt`H%j_4P7Su7MpWMekPcV7mI!a9T7UfjV%4?Xnh4ocBQKgHfe?&uLr1<(2LHE! zL}nx<M^o0!wUs9GBoT|nzJzArD3syMG~tjw{9$A_N=B*`4_h>Dfy?0iny_qEX3l$_ z1FND;`jV)Cz9T(d7=J08__`X^iYxD-1{L`j{TV7{HXLl&U9GE`|Nma*@5@OpOiS*c zkiB47_mtP-7Qp|fgkWnRHgTd*?G*it;)aRof0w&zhv3*++AjjV*)M(~ob%4SX1wR? z)4{%1FObvLR*U~O^LJx^eTKY5BR~6HYrUlrrY-2=!ucA@U7Y$tBAtf8_n*e^;_N_h zCNH&QpV{X>f&N$7=*kZ%88;nRMG2x&SnP*u>ly57u;8_TUG%SVo--l&CFo*Kpq}g{ z(%*@F>VH)SecF)7gHPv5Sd^||v1u51Lu2G4(moswc*au(85RC5kB^)j0n_Nw$p0>n zQ*Z_3U+MG4t57#362|jo)%T*QaL>^p@f+ic$1FCNrscm`WByZ7obxsD*Lf5#snK2H z*Z;d9H6x41kaD#|Va{DvB;L797mW~+#E54up+-1mkL`6Sf@g=#D!(y}{P*^$XFh>A zJ3fq7auRU;s{>H8U|6Z40`e(=ROFf#Oq3vFED+Hl73DSi>Gb`Fl49k`e;y=M5fM|@ z;`hH~@*g4VzW#zuMELbJ|N3u!NyW*IkFd<2UX$jX$nB0BX(t-5?{<&a1VsLBs;2|F zrze$Vgk{m_pMm=SeM{=i!G#p4vGHd}YfFzFYrqj5jylz~JI+gfO%)(x)iO;i&HV4c zll;MJ23Jj8I!^BR-wyn{8~@Xln-0_gUuw7<b1nTc7L<ru<#S=7>=kCI=H7t2lR2Y2 zSR0@qLqy!Fbs(ejde8pqxBoGmK|v;ny3T7)<42%(AVb)D<8!pt)p2`w?|x5bbFEet z8svm^*lAz7U@Y0(@t#fACe_>TT^FmS*gvCQ(t-NJ)E8GoK#kDE{}9+l?<8FJ>$u++ z;+YuSx^L)Sr`_Vv-2l{3>e)V`?y4MBqR*QVrdB<A9z4xij<o&vjzAG5A*e7{@lBoW z%Q^d)QT+e7(|-gfIl+gs1n|LKs6$sKV$#8rS#IL@)oLG&`=<?*iV)Pir|lc~qcx-S z|EmGcPm+j6tV06Gsm=%8E`FL{{`)7%cQcX;=i(&j1h!>X|B|yAFHRfp2By7`b41lr z`qDo`wL|eWG3dzHem=?RUscZGKT%g8$iDQ<aaGJcA%5cDd-M0W_@IS|e2%VulaWaF zuQ3m!8Q}<`JLHG38+&(B%vJTy{PT8GyO44Q>uy}z#Qs~q+>L*d43jb63`KLq&4EJJ zo4veJ*+!9<NH$nlSEMy%|5j1C4ls@Jem;+>`+s!R->PFHY!2isaQ3D2C<=$B<6{iI zy2YPw?6|Zp1KY2?NO)k-DHdhxzh7B|N_a${R|cMYlK+R!`ijh5c#En@^Z>I}?vExl zTYbUUkyne1Z+QH)w1ZxI9ayKez0=hHXZXPVrNiJgQV0J%uwepU;={SvMt#FE$M{Cf zo~|`uJN9GrUG2vY>HJQ-HZgfmSm_TW{}CXPG2&*Z$(R4*x&C@O>T5e{gQNjCpm?He zTn?xtwO|_nKAF(<*QEXDK5{?(C7H==p}Bua23B9oVWU26a_4?n7ybP0fVKOlGt|KF zLk!Mjp8skY)Ffog4T5)#Kg0gfA^-EcClvY9+TFtqneWxDsW0@Ft?U>k(-d93mayVj z8N|Oz$h4&3RRVVA)`<GwKm7kc&1Dh!y;5HvbF)_0xUVZI|F<IwLIj-GzPlPw5s%)x zj;xi-THVdrG50^0%g%C_$l44Z#LF)cRh{+6+ob;MMF2$<g~0IlD#@(zqW-r=Yk~MG zoZB3mJ%DR-rX{18fBqkaOeyhfDBklIqiWu~c@gy+@^$|Ty4%6FCuy@GQJHNpM<p?A z-u`>KL)9j2@w=+>p^GIdJG5fPb0g(Eq1o}ES{fryYr<K2_%r_EORt(Eo_LP?R?a8b zc(W&56PL`hL8cSasZHR9ixf6Xnq92|G<Z#_UfM|425)2qy_Axn!kWe28i8_z4?BZ+ z_ea$cZ$f-@_58bGa4Fi63DLwa7u(_A+pt%KrDYs5%1%q1g9)#WyZn@Px7`9eap8e4 z?Otcei6tuK+ZKPKX&UXd5_PLhO0m7}&NnHBu2`OE12$->UycNvcXo$UFS*1Y@v~0V zen^n9Zkz66bld)klX%vnuVb(J-F(&QbMfKrhTfcdlquMp(wOjS63-5)+F`2ST|Vcv zbB*b|qO;-EK46Yl_x?K2D<#vj8Y0AzRsDW`u`6Kise>I1PQGdPxEF{-&GPl3tGCfT z+GbE{lBH+<AyHlU#2gbRDjWj&KHqy(hd%9VlKpaXG_NK&#|DuF??S&ovu@nLr^c<m zS1CSzesUG#67!43>`zn8<!!C3bkTIe5@c1UXVA8!64jicfl13Eqebq(rg(^U&V&!; zEbt!d!msNb&|^!}F@1FjDd=~Dfw<&hUh0o=gtPOCt!_78e@BzxjsIo@?)hGfOSnPS z0P?Ub^-mo@8!Ty&U*+ZVpSO%D-zU&1oSWDepJA^nkDbXIhY0wXUQ!gSsjEPg!50oB znULGttoF;h3r+dc_}|aQZl0e3##CtQ-D~U8y1r7Hq@GV4kMyl&^+1NMQ*E{CU4kxc zpq%6w*&9ga?A*=#8JQ_N{R~4_HSi)mW_hPNA})zi!-pY0Q=g~wx$;WPCZj;*<%#Iz z&5@69xn<_^+pgj2NiSc~zE<+&{c&tScsCm`&gg+;4tyOCkM@`?2<c9HdG&A<Pb<^V zwfx8|m0CW$)%-p6c)tGE^3OooL++jnGH`wuI8zl2=B5^QpG&T)ZxpQ(0oR|-do~we zh?}%}Np1a(rOyEzUXiuC956#EhSHfj3(v0?gKT^a#>c=D2OYXIxX?SGar5E4UnA3# z)7C}THrY86oa38og8Yx)ttx?Wo&a$wkslk&zQ((+Pwc9yru89bSEQfKj_X{9u}U>+ zqXR;p({Y!Z<(q|?PMX<)R{;_$Ev^`6u`UUM>K~x~!}>uGsz)Yr2v3}I4`iM~lqDzd zq4eWbf$B+s=<=I>esU_=3G8h5;)xc(-XlE;w|%~7(Cr89IF7zc>nKH7BJU3sZJC`@ zX7ek4T?(J$SlN&AM@c+Ua+hZ2;E_AMPS)6vIEIp#nJ%{av<0}F{y0um$kQII)OJ2~ zl#FL4bMLYYH#e3kc2W5+PFI_>GlYLnNm`TeNNn@8S1e!{wLWU1xP3Aj%;XB2LHeO{ zlQD#K0CZ}wTYj%oZ47pU9BfBSEI2C+))5$=f<2=tg+|QRpAjPp4Mvv|_!J5CJItB@ zrt#H^gEwRX$ID|ZFXaZ($j>XP>HN;LK`ZSn!>Q~ZV{hxhBZ*XgkmT(M$S`Bh?<D<& z(@3Xsx^Gmb=&<;K)poBQDFWpaw`5hS>1GJF26Q>yZ+g6l#TanEOQex!q;I#>67pod z!JNbHvwFCDxl2?!%Rsf2EpeObc_i?w3G`d9)<XW?t*FR9RRulMVyRTKL`yaT!el@5 z4j4)T9?Q~&*bn`#)hKkKp)9j{7+IV;lHG5TmpZrxhz$O0{$cfp6;yap;6Vs=n@*|x zq|0WtROqVlOYOb6q2pYBOmF9Kns`<;DHkTy-S6A&3YNeF|D~M^jbCQ)4!4rkc)=om z$1QE^um~M&51|k-wWDP}(Pg75a-oT5VTH?`>^bAJfG5^diFFSAF3Cx6lX&XPV5-rW zj3zl48>^4tj_gbRY@Wz1`49Q&y}^;lCWuZuJAmFaoBXm%p=kEGUo~4{y_<G-FJ}Fu zWGIQNvcY)`WS(1lwxRx0)IU%3)xvxEOu7&c$639t-w!K+D^w7w0TAx??p$U2Z9{`8 zAf)b4G3j0WiCvyk_}&K?zzpOMCeM_b=4u$|$EB5vWhE(;?{ucP-cVWfK9iu!`TdRN zz~v-xuyXxu0JOQi8wU+iFx-D9I~OfphbQVdnOAZsg+GvCoIVHh0Z^{L3B6i-_PR;G zrr=e0_Pv-2Y_r!MQV5^wJ6@hkhVT6|I5-X7(F|z*gX#Hbqkk3NbQ6duJ9r<Jx?7S> z@taovO~j$oa;q+bN)Crq&?(Ku_8->;B66~z=bPq+-<`M0ZJwWK4yG1>MZjIOL4Oq- z+qsUSGJDv;tkg8FwHJXQfzFo1XL0BsSd3wEziN)$rPUyu<L{&}S(SlvF3m#E`nCiX zLmPijqG}@!#gyvg!}X-pM_>1)>E_b~T6ZG$RQ6AJrRS?oOU31Y925Bj-n_?ZH=%oG zPv)#0aGmdR)h#54&$41%JQ=nU9w@uXuwF!;2Y?lJ73CKbq$?u^L;F~)dQ-AA%Khk> zG^neWys_86eeOgS+;Lx<xJSVxp$~d_(#u*F8b7=-v^x0S$Q@wj92o+fFzaw;H+wV7 zOui2u`YByzF;U$gQ+0V@8Mwdlr=RDqS;+W+*`#AZ1E}SC9nsORRdrd*8vBYdn)DOL ztuXT9v<=4(hk574X}y<x=}Y;aThhmNnJ#as#~orYYX${Cit8+uRD_`S&l{%w<q*Sd zzeY|P0$slsUZtUAc6I_TcF&Yj9`IoHldRPOhu8&c|6gv(fz111@+G;p2D?JLUT457 zpoduI@SfN7*G77O!kl$cUEe1~m_8K<kfoA?`2n7WA5?DJ+s5SLX%!sf^b*?N%S4j0 z4T%U<JBOc22RT82y=A7EJcbKalCD$NE8!RkZ0^Ny@G?~%J<bmOr+^~wX0HS~*S9b~ zDh=xEF2%Spr;|nR;9MTStp$`H8eBPv-2{|CyNxB6&^}%3tiF_%m8gDy@*@A$W33P~ zbPlg%Jh|7W#9>pU!D;xb&)(J%ooVWE-1F7AVn;n3Iy9Xn>EsR()vPOomOk)Na4LV& z`wgF)m45AK9+Rmf(Dip(*ijD*SkPD6l1x_W2s><d$)OK5AbwMtN7f5<Md*)Tz!aT4 zx#U{}Dd_D<vrW8lJLK2NXhyRToJm9+x$Z%$+oJe2m1Xfa?$6h#jU8^gWvu#5M#5eP zRVI70&yW}e$Pt*$W(c+J`e3z}hD_pHylY&;Of@viYV>gR!pyIu#r5Vh)b0Lzvi;L} zJnbcnJsC;bcWZI9TAv}>Z<gY=0eb&a+&%Vjp*-UEpOM$}`csAW2lL~GD$e>}1~{w- za!u(-gL7>;vWLCkf?+(VA6G=|i|_(jXW(Z5=+8HECU}q}=^4tjc|_Ff!|%Zc9B{Eo zP{`Tv5Z}>G>U${{r|}{{h7R+pK$e?r4-$Vdl5K)PlU+63@YkCog>HoV?puGR41VY2 z(rKHaC@{yDn<5;e{0fzWHuoa0hfAp+(Pl*OePa|$<*_QW%mf6SmqaFhIe^>9-gp>8 zRZG$w7~s2$tH+LHA|@tgwRJb?!^M!o10Iuq$w3}^v7bpXUKVK0<hxc}KbQ*Kbphr& zX2Rhtl$}88tb0k(&_IgwS&|mTm?U2yPaAo?b!MAym~>0a9M@_Lw)*{pimmnQtx{lz z`v-|kTjulTZ?KhzySkru#VF1-*S!&Zj5|D}MH3h_QXjExmd{|U*+PW_bKP!LVy#E4 z;4&fM%E1H%nG&z+iq#fl8xB1NPkSBpd&<ZA=ICrrnEen#KS~x51py)c<g$&72EkRH zVN)Di-|R~$Wy4E4+!^yFC9A1qwo+rHR-|+nFbrZ-7%p9f7ZZ&2+)#<4*B=US<&H2c zPPV>{@;RgNB90qy_Yf6saKz7LR?TStC<+$~edXh{(xzEFX0Q`x2M)+Ta3@@39La>- zH&YlvZiUuHJ0Gxh6WNi3XbWgzd^xwDT|UVcNH!{Gcd^U$FEt45g1;~v^4E7^$}Yhi zG0?^Aog3(mJ$(K8k7qeluulckXe_(^+fToK=hnDrIn+}Bz_U0MZtrfl*=)W~$7O+e zLMH%7OudyHqf`2<Ci5nBgd6FZ5(|tc@ylt#W9!<NPd#rLEWfjTl`Q(xTOwiE6IfXW z942BnN(mG6LWR3I%`ymyKS)O_R5`rqh5m_*uEtmbF?Gh7p@d6f>}CvE)B9<i0lB9& zeEeL@iRRq<fnoOkM^&9(ps1(Gwsk+q^t{tjEZRDXM!StQwAQo@enLnh>NpC=?AJ|~ zLK(Ti>~Y`kUccZP4lcWMC(q^P=zGB*l{XSOiA%MX0GsNtAeNbA+q&Nx3yQk1l~sx{ zO6<UIJ9kh(47EOwt(x>*@$~s-M?~Et12!?gL5#UVfU(+C@sq~sS}UU=7o2IGW6Z}$ z^1-Sum6P;RH!@zx^J!aIIZ$^FfLA=KW2UQY<Ue-YRQp=r%Kw(~9NwpP%~7IMlTO!c zesa6SiUH`*v3F^$@D6SZ=Z`HJ|JjdPJX-~S%su1Cs)%y_MDEszaw&x5Cg1+gLVi0| z-{4IigiDtPT1<}}D1`hJI-8+bqzn>}rkFegPuCE^U!syD4R#ue=`&1-t{(e>J3YI@ zWjTZ1iju?{RrW!z@Vt^fqB(6(!a$7jOEaY>`l>nYxgd6gmgM2&B*yWa!Ir`L8L0ct zMj*AxN1cj6b-d!i98SIp!*=Gikje8=Lk3F*<<#yczlDA)q$)J8WL6#2vykhdCG)+G zzA13(Cb!?d>htYA47XLhP#1sE8V4fE;_;j_IZ|t=b6BU*&Y+|)7zCSyIf`$r^VxCq zt7Kx~f}$MRzB}7Q+m}R9rSte*4{;ph7(Ka`M3J8|5-_K!e#IoqBNk7OZvgbOYlF_b zPY0a4jB9zMZ>a=xL8TlW;=zx(_3u+y)kgw*U}rt$|5UVEjjh~oVQusw!m@dk>)GCZ zFsj%Y&R7oN+j$%1LM>SnxiJ(P9%an~%76v2msjZgnIu!|L-UD`l!oK{b?F)Z!T!A4 zjal~{_RtPv*`vdJwFsPDkzz^>7~@#TG7rye*1Ix&wn*+`st$)b0=Yx4DM&a=(5?)j z9ra<h)Ogs0;xICcn%mP2ae>veDjHxase6kc=QLTCmBg%X6nF?J0O(X(+`E-M#$@o9 z`WFosWnDAF`NWXT=^ob^`#XYIetIv~TWc>4s6de@fRtiENtz|&a(^%nZZ^eJo)0pz zKvAje!}nK2bjEGfzo&b9^Ds}rLZ41a$Z{QF6YmM!Dt*V}xM|C;ODb_U{Ca%|y>0BV z8<w@JOb8|o8}{>~W>(m|WTLLPCiW!!<K^&-8!8-(Yg*0at|w<*BE+a~iNsZBJ^I#l z>-SvWUE4^An<sRS?@Dykuqk=f|5h<sVfUnek~PUwIg>N5Q2I%Zu?Zc13lWN)>wb>T zQ!9iIbAr}U-~_K>=cbLQVUL75w0_4Xk`UDAw$<W^;ehK9_kBcybJ2P=VAA3vUwbde z<AHXR%&e^jzEOlAx!t%DaTq5I|3ds(U}bbcvfl2TgHVljN$-}=2`!Q^{!AGBu0r5U ztXlKv?sV1P4OLQT_w8Yu?V0%Cx2sD7RGgfzLU+66x?JzyP@S+#1?y>8`E>-`8{8I5 zKg<#_h3C%tW`<n~tr4l#<hY$YI8Cf6$^%!LeoijUvJ7|kGVYvDCVGJ!)-0AQ*h8q& znKVq`P}AF8!pT1X9q)c6R$kvtTGAYq$aRY{V~a48qaKU7X#KQl=jKu;kvg}fgcAxi zUJt&|X>~;NSH9dCVaDV1S!{Cea$IUs1hOZM1LJI%!LA%<W@=k#)8eX_!iy$CEZz@~ z(tIGlJBXA}=vjcpK1<a!PoMw$nkb&?SC_j<?}?Mz65P#5oz^`i%XHXjhjl8wll$g* z*VZ@MnqfAp_BbgDxKzXEmwVuPSsw4_RRX8oG(Gt05|>p@N<ZjZZS+Xu3(M9JC>3G& zSsIBup(0{%^D|m^HqSn1P$>A21(Op-;Qocx`UEv@z3K-PQH^qLV%6<tivrk5IBOcw z<5-d;n)&2AmrKSCVNoVIKb_=O-F4CsLr~$~C;*HFK~A%qp;Dh{VH_;0I!3tdJtVz& zgMrhI!@j%LVDAu8tq9m@i*L`8Wiw3Ve?GK!+e~4mKDN3mOn$g8I^*aXid}`SAav-} zp)6qEU+qk3yR?p^vSe6jx2_x{`yk`haF{J7aBb_lJ>HSDMuDj**TQ&1>QjP_XY|v& zo=<-4>9z)*M3D-8e|q>CH}Y%FS`q{29~MBC|8O>9#7QvGw2)fkT!>vr{71BHk<4n; z>(wH#YMuKTjmSoy+tc*Hz=bBhdy_kKFG1MaO*^?E?e{P?gV*?Tm=(WXA`<%>5WR|- zwfKS;3N}S*UD5YEW1pa5^qpb);R~l$PpG#DF~~hr&{xJJ??vrba3$NZNPt#Wo7D22 zS<2#?vsEhYg3vedV1DD9%E0GFl0ePz{L#lJ$oeHgh1_+Tero^oa?yI#5R5Ja{}}WZ zmU&xSk{oiC0cF&iO4|M<z=%9B)`>o?mX27WuvvP00j3#Zj5=ire$Oi;8U<!X&hGrR z@1FIwPcq;KsYf6TDCW7>Vc`>$yod2hbP40qnjQssU`4JmV1F#;*RmoA(EJ&42<>-h z4cz9>K5<BRbFB2bM=y$w_TYNa{kvp5lazrGgu-Z8G5LigyF7}R*2j;o=_t6rt_z1^ z{sT{Y(6cX1_2hU^WYAi*;l%QKP0a<;<Q6OhbSOp<M(dkldYbBd61;XDGoRW;8=}sL zJeCTi)$jj?OS_$2)L_~S#Ok^(8K%b>m)F0g;3=RgRkpHA@O@fh)1DCuhRj6RsEhSB zU%h?U$A*7kjJ+wPix96|*98Q!=WJ6bV6-F3#wl6_>tJ^i1E9AtkAYCihYq3H_K4iG zJlcMIoLN!;xtKbH;-P1oVe~g&cIvU&`Wbw1Ab5;QqeO>b6PkPpbFj+i!1r1m40&p_ ze|<e5@jZ|VDxuAitnKR)lc|>_><)jrOmP1O`uIlNyTLG)<bWp<hY-YWqEy7)H`{g7 zb81Pg5Q!&pcW^#;b=O=qO7JvnyQ=yly7)(kxv&24U<P9xLPu;a{N8w~EW9cCzUR@D zdLSt$YS<pkc5wiYtqzfoH2)cKJCORNbdZ4VGIhH@chxz3Gs+oJz#9>{M}VnB#Ev}O zhjH$g3if0d(JWR%Ki`5Iq1a2ix`1EY>l}EMYkm3{{v8dMEB|C0Y)XRk`V*GjtM+Ry z3NtT3_gm4$pmVic`09F}i@Ccd_9d;)B;r=Nh%G%=mqCl)wXuTd|BN<4b@Mt-`tX@7 z=(OoW@sL~_aLBiU)V^#O+!(CGPY643e0?4)Rw6H1I+yU_60n<7XgWDZPC`Q+Pv?>j z;i$J6O}68)Ew>!}v?HFr5lhaea|$O|n?8NISg%_973+AB#?{=9$NB*i7Q0=5K<^tE zD%3%V@F}@`t|lY3?%d1CKt4lfbk=v}Y48Vo){q}~?Ce&m4UxJ~zKXDpS(n}LlkKCO zrdemsyk@=+mwuhcPb1+Vh1ITym~{DGWX~ewqZHu`rA%&Rcqv1HD($R-^v0vX37W2V z8{X^BVc(_iJSX$bus-YbCoyR%m~2>Xr=H%pT3=Aoz?JP1)l|vEWo?+P3471+zJh_* zgC3@Lb;{IKQbOf_6~W9oGymtmjH8C6LCuo#mm3G2Us!6E4X=PirOhbVl<(#?E9?>h zaG%?hz}DbwMErq44=<1V>LQ1;5c}fWh_T9DS+x!{9YgxZev<;`>W^bzi{NSsy4e|s zI1)_ZO;%(<Ec{Aji|Q@@XW0I*jAE;ZY)|eJtx~iLec!V~(RfBrVIDnTF!H)~YF0aT zXsOp4mX9&ejlhPwOE}H5P$^rh4Y003xlKa#c!cCBI4ay~vYp|kQ8hE)Cf68^e_&~c zEMpuP91Z4p-m6h{t_kC{IOc@|))pefV!zvvmayvfbYAp5TCHT$BVTiTbE4b7s5+RW zkFj%d)NIx`k6gJ9y`P^aAWW&1cu}gQhLN}nB<0uB{2bTAWK@zY`&C7ZbRzg;=rNF) zh`1!lB&=hv;o2|CIW$W}MZXs3QOYOW!F7<MUo250ezhrVEZ22uT&7_wJiWhNg>n&h zR*kp~>Yxq3NdRnDkW3Gkd1lPgVJL%C%_U{?1{a6;$aaL0D+jrLyda)wHARjbbTYOY z9b|?D)@8F>ZoB})_nbw&0WC~+?j0q^3ytIAZ~>;C=B9kw->uMHwhMDvf||SaQw3`! zbms$J#-X2y6l+3GkuKpXX3SE>({7xMAclJAF+VWU%qD{)*UnB8fSCionUf?^wU~8# zHaSD>Vdv<&Z{9aLcdT=XKq%DKuUJi#8s&&>)hW%~CWH?l6v+3F*xzx|9_%LMBAo3f zKlm0E6B)*tEd}Ql>>x9M8)~X2tCaEN!<_Mc3R<OT%0y?qwSyz{0s-%%bcTBSvHOOq zgaa=dEMC73jbw+?7no(=GQn}zVGi1}pi<zTFGb5&37MVg6-jTmCD12URy!y|9K=lO z1kumiUN$&9Ur-Tl4kbRqvpopbF$e80=)gND8KUZ}x4kyJ{=7TP_VxkOas0{OE5$$P zF|VrLI<akk*nd8v*y~_ZCeQ9^DJ{4aRhQ5`z6-BnWNWCdk!({HT7lq?##!Gb0~(fC zy=s}>e+hWQBmCgT{}|d<ZPFO}7tX*$R{RLy=Ybz6!t{KgnyOe6Nu7{Da^*74!Yt{< zS7i#(w`&`9pF&DA+vVt$Er*!;>~FsYmSp#j$?4)m8QpM!M@(7$Zx<PoeX-K{?DboG z=>HtESic=&GbzkPc;`#WMkRZvS9u7;@|3O(-Gwc$KTxqXUAC8aZAF}7QErF~+!hW) zw}B_^FfYaW0yY!{DV{H5xt+facA~c<3?5Dd2_vN{{uF>xj^()cCS0m;Zpk~fJaK%X z>mz#HFDAa?#(0sqP82p_=g+Dc6z6L!{T>>*DI^`@QxTxYTyjw#IX1=Qcd?6K9_yUi zV@{-z(xR(Byy~!})siWp!ooz2#+`7n`5|cC=<LRjUHow_=wYgMXws6=>MG^`q3fNa zD|?#7@7T`7p4hf0oY>aHwry)-+t$RkZQHi<o-gjb&w76A{cEpvPVc?Dt6ICO>Qhz- zU-!9&i6RlnFdy8%p%tK|%JE7d&))fh1V+LW%jYSXbNdVv0T4pY`Rt`Wtmho46(MSs zN@Ralm6|hPo#V;Z-4{yFP()C{sW{5~F~z%1qlvhmwSHR0*W|x}luPXsm8$IW#q@(W zAhgsG%MsA=fx*r`aybpk5-86<v+WJ1%6!2=B%;!r;szvDDU754;C3yJoYpi_zS7Li zwwxgXiByl}z0{-SFuV1tE$BcXz9}2!+O!6Q#85bFi~)I?Hi~1hnrCP{UM>g$oRg~- zTVnK71p;%RrGcKVHtAsHA?wOd7j0;=@P8UTJx<s^?#qKa!@oHdSgtj0T;#dgBv;n> zake-dC=5-cu!{L<v&eV2J_cH9bV+dPSuVE!S(U|Gu$fmnabGKPvj4niJXvfB0BKw2 zt0lntdOf2r?1D9kF2`c}a;ygU;k^@ZI-Td>t~MzyR5~;f0Cgv!CDnV4xq~xJf-p!z zhkhO(zg+`tP0!ud;LULtFXX4<*}m-r-_lrgIviDojkVjX0|3c%miF!1w+zGRG<KJP z6(L`5=h`eZ%~lGcSJw)?n6c)o%bBW8LITguk!B&Gu((yo9}G!1I^KW?oYvsbVVl2( zbWsS-LCb|frYB@3rN`kEn?I}`!o!gle1<Vogz1v4y&$N9e?*lXRD=YlIW=yivtNnB zz=dl;b5n<*4kb$_SCwtBaG!#*ga6)%G3buTG&)TY)ay}J3HUg$V51c4b0GVon$Z{T z<351hX=Pp>@Gr6P*Y+OSMLR>&TPga<3yB`0JEZmme$?>+=c{K92T~CqbvG?vus@dB z=e=5gt={VLC0{E4hlgvvF}m8z1XI&YsVTTMMo3il_94B+c0~i+`8Ux>BLgm3tm7|6 zxWiaOuLJ)Tq_t_86gV@Y?w>WgXT5Cb1u`yw4Ec?a-@kdih)6VHauL~0owTPBnz+|2 zXuae(IBDlHPHc4ET*X|zlz7`d01kcXfYl7e<N+tErJJ=z?SrtmH468i_hwykYn>nK z5NAnN6U=tsx9Xn7eSr0jXZD5=zRnFa51?KL-w^Tbp2^RIVOP3_VlpArGO&#K<k5g? z4Xy+`-a2SU4mq7}GnnQY{IwmyceTFybc*r?OV^>-2~N55<8fe_cr&M5PMWAsl??0T z6iA-rB##JQaq_f2FVgPlni>&txybI&E0JE2X5qe_`GMhL`UW1RXt;irG@Y+7uS&PV zx-!c8yt{EoH5&s7bL<1H9vgUR#(9}rsT!WhWpzD^L40zlsJp%28(?6uR`3JGv;#>w z=kt4N9pqZ1uRY5wL9Qij3uj+mD8KHKHrh-N`|(ROT4F7<Ip3!Al-cAnHNOaT7upvx z-JW&xjgmahCYHmTj|LvyEcta94Nvj=ipN4(W@7;{;kT+&sa*rnd2>4}AIK(BwP-|R zvrD(gn8kc91^(_5-*ab0+vc?R{Qf7q$O)`%wi`R(sPL<y-xPG!Bw_U1FacADLcx8k zA4AvKR(ZW<>rtsvdT`L-Gjf;s(N#J%VThh;J{POu?6Kf1n72r(NwzAEy{Zon8L66o z`%!zbWxfUbvN#mjg(;i(3-Vh-R~xCG!pvw)YwB!C5(`C&r1dVZ%X`7aMhQaAyQgAp z#r@feeBn2G4S~vfFZq;7wjpo$9>b3cJA$cNC@|<WejjL{M1X-=J9moC1Vm<?!!C#; z2HoH9e(G6h%g^?$=EsY%7Wj5-5~AVY3n>r%TjB2x&&^dm<F05ZqqpUr9U6k5%<S-- z5wlSbaV1uOJ414DW~<L{EjL@Ck80jO(x(TFtZd1t0kPtu=+cvq=NqtxqOjxd=kfuP zTwwGX1+n(CG6Ym&(W}0Ha98SArbPP_;1Y#^ASmv4{^&1If$OuFtEm>Y+zHL)MXEb+ z85Wl6eDQUhn?-&e(gZ-<H*pUYx1g_Zu*~EqP<;MzJe!eJsnns4!k%~FV^M2z%L+~T zaEqKIOH~9@Nn^J<2R+WUAv7WCMuG>*Z2J*gr2QsC^`<>egT#_IU;0t0aY_L46CQi* z9rl=|PLV_J3zZP-EM*?C%LuTl$pgjmu@R2(eLybP&*4rduKY6dh3$CzBmr=`m4J~< ztq0$h06ea@TE=Upbaso@$ZQVvLwYS595zdZH&f9yc$tU0{Yj&#GxI{d-zW$pEV>)D zP67J8GfkN4kt{d`HI;MUobL`RXAAe9MlI*fxg;R36RDHpS@n#;lkblg2l&QDjv}5c z$B%U{n4JxsC(^r+jFt3Mdi}a=n4Eh_)LZP~DHf~0#g5n?r_+Oa#>p)T4gtI#l<GT# z6pF-&@VFb}AGcgoj6)1XYkA?0`BnS|c!H<4k}A0k?^M<xW6b=}AZ(`*?qBF`WS?Gn ztTfnFouBVxM2ikXe;X92&jrIQlRDIi?||eutr-InKyzI*es<cdNihC##b?4b`)tSg z<n%NMFqeCEVL04u|5;oWbU{Ig!Y)I@05(~Q*vOXY4lHnG!O<g~K-f8!XTAQa4Zp}* z9-3;Z()UD{S;H*}mlDk5TP;D$vOu!jhb8!_sHW2Ubi5?JG>~~9G=1!51+6!@oj%>~ zSLBy)my=&Vw_K#|^)rnlSAtr;A?LJznuM}BFq53AH5_BISc=&{e?4bY(*lpfuj$vF z%y_6h+q%$29==##GAwYm!T^kVeaMKDzZjk-8^A#RMU_uJ5hqiL^VS^w!EpC8fg($Z zQdQw1|HNFgA&RcUTizH6z-|Io#4JL>gkq`ERCG#k={`^Y=*A5lJ<6`wY*zl$Wb>uE z*;PUJ)OF@D884IFCeHYprnim0IFQ+S(>k}drM{Iij?xGZ;V}$zIQT0C#8?mru$Q1@ zV01#cx`U~~<@EaW7Y2{rxBQzBmSUvct#_fz;n7KBX_2rFY`gCTC8hVN8AQedzP&31 z`@zly>%}P=W&Tz*%@cYR0HPC5_Ht*KT(5XU5l{U!?v^nIKg{M;gMiN{h<AHEBV^Rr zA2rKR{|5$g6&1ixvDGX8uvVY@(BStMd<3n&+vxNX`}DpS_p*WAcRDBkgb=%%JTl0x z15m||g_eQln>!i!hv{-D(FN<fLyakC$dR#zSJx*sREXM(i^fyv!Kf76-G}9YD%*X6 zZVzfr4BS=0#MS)6Fki`M5n4{>%8^0Z`Xg}GvX&Mk05L1Lac<K2J2+v+;q3&KX{>T& z)#Jj(OLWgZ+|IWNOr-g#Rcs3f-b~|6er8U)^H|mp>X_@fB%OO2_kUQ+zcMqO7MiVT zPokmQ9gf=o#G;s)F~&U;ao3viFW?dhwm5f$?MC0<5+h88HGZ?C;V{xFl!odTyslEw zSsdgX;AC<#rT6G574wH)hLTODOWK8y55+q!tmlMe(&8U;9elbAqX+YCVSF3AgCAOY zXi!hM>I>Fsb~0&fV%}XIVpfpCKKGSFPdHa*_)=NFM@F|nBNa|1viLp9;-Goz2GF_< z<+9ATnn%lKp%^*>$G*X=M1nOQ`=nhKzUxcLWO1r?@IxKWgy08NRHkGLE1oT8Pw_?N z-izmi>#4!1mG=+a35f0nw{a_}bn3dwxRBynVqbMN<2q+7p21Rw4pY5%Jq>xS0Iym5 z>jDy&C!1f7A*Ydek8{AB>u2&sJ&tf!YJ7USp>YU*aX4zo#0$gBQQlKFd~FL3tmYvS z0LWmjg`SG=HW2i=iVu@OaHmU^`SI`Cw<&%=)fM`@h;vv`wKa1&*)$Ne<x3UH<@a7J z03=w${g>M|H)Okxo=V^(JJ!bUZowGq%)(zEt*tPR2U(e#O5#c$ASw-tUKVLSXY@Ls z`E^Ko1r=(oa!dtHemGRX{Du;oVrlQ<d<t#+U+)eB(JjFx>7CHT_I0R8YQI>9HMSPS z=EoN6+z(KUG_7bOio8T%F(4$3OF`NfJ^a)QJ65wM$DF6@#Z*rqruV<|S&yk!CZ#fv z7o4mI|Dh&zDofxhk0D))biN+V#9k)rmdG8sd=6vdcV8zv3;*Fvv|`VKs@?UASj}kZ z#{Q3AAe9iqJHSnAxrYwj1%fOm!6uj4q6T8|1Pa35d&I(1V3|w}u(@L)!eu{H9jMud z3xW`-KO8rq7uBWisk*za7I~qXNdC*8#y^y|2iTQV3Uf=Rio10wbw#w{*d+6_p+Puo zw*w#PgA_caJjhZGhC90x+OI~0A*QH>Seh3WW1K#bO2u}qB55n_Zy;F83aNk)zb0Ic zAip&rFPOqwDzoQ-0I*4HVirHV@_8XaTVwszUUzl?gY#kL!4-K7Db~BV+;MU!nJ0^v zrQaTOvv!BKP;hkG_l}(khkp8w3l^&*`yb}%MR4tnYbov5($>ESqzNdJ+l^O7oa<mx zd3q@KipQ15qfhlDz(c?uHZ{&{zws$7hvW)rrFojG*E+}Fp3D${>K<XqWs+CWn&~V3 z0}8`Y(}2V)o0`11>e>oOjos@{eXMsv2IU0NaRlnT>Xv^lZh_<Hp=4<04EOtC{Fc*~ zD>nw=cX&|Fu2;mLsCiB|mTUgtweEnR;&R0s32Y9|LwwaZb?oVN<?!b95cNX$J^hM= z43^_KUl#{&fDTm35GyhEVt4&zjKSo7MRk|ky#xbD=)<;VsX_1ph_i}ptyt+M58+fA z#yLV6;{L?kWx8VSAt!c?y2rWDR$#*CHLk$2KX9=PtlbrXSM+%<B1}jW2J%FONYVf( z1rI_0tc;7~rAbg%;MEiR9DBXGSpScD4C%2p02x;C^YKWx4LT>@-GYT9GnKF87?##9 z4~&aaKr&5Jxm-&pwL1!vS-sWC@?!5J1MQ>gq#pgd>#{ev>&3bkkgqw5(W(hA)`zr{ z`I-`Az_FtB-lDecsJEauE`yRN!l}g-vs%o|nG>=U5jNRygD38d!Jk(gt?zQdMDB*o zP&@NnKFc;Ot~cSUhi%TZ-99o5(=69$KujP%dq{6+KKPQ{_EX>;%~x{UVicz<Cg{5( zyc;>#3>@VbZ_3}z3S{8d`mdbmeUbnUGr^aQYh#Ch6oxAdUJN(PY9da+0(S>vtPrt# z8oHsbN*BQWxLc3hTyeLgHF^UYP-w%S)KX6Fw@L=IKalSmnCRn4>K@iID=Qsaw7fyP z)BvBNiexqNdWWfWb|93GBPMkDiE+HHm+vAg4%anQ{>`w&{ImVPbMQbJry<XZvpKxm z(CM^E-@28mm2wl1#^+FAjdPl`fTnzSJppO#&!47E)Vg|z7l`nX_59;8S%@+jJ${39 z<md6r)+=rWS~73=xPM$phULh!Y#~6=o(MZ&8Ob7MaNyiYzr>B+tU$Cs3xQnk!lCEW zw#NNZc85yU25X}-qPQfM{EICHe(0xYJ}Ti0y=1fQn_cy8o*p15D~s6f`ZS6lyg{M8 z`kOHyz!n?MogP%-_Emwl{+veU{s?&?mH#gGh>Cj(pbP>|?yxftNR|my$ag2-D%Y~R zwE}5qRWDv2FV?82KRDHlj<<nFu|5psrW_8aY07)3Eaa-AKLlsoUi_fpx(j2D;>c_a z#6HU6hAW7dn}6-06Zm5E;B8F~Kyq-WNCUi|YcQni8|O?WDS~AITk`H>ZXz`5g!(JQ zVHkC1M>>AvecMt1FT-=IHe%Xv+T6eIwoIusC!>6BYc<Y@8rT%wHk3;I^s{SN3{~>8 z7?`lnr*Y}(lr@g`n*Io5I}!2o#FalY$SO<$EwV~M55$}Zs>jQaHyWE+Cm4Ys_g1L_ zDxT0c5EK&8>H4KG#zCi3v_Z1G-QD2LS7R<?$tm+#a+FK$SEl~Z?t0kOY?%>r+uSSQ z`AVO4_`SmP&gaX{neiL!rULvPMEA;m#y}s1{={dRRGCs_b*BxcVyEuuW2!p!%v@1d z3%;S9GF^@YvA2#o+SYmi1H-iy7VMMvLEQk*r)-G}s5I7zX5=`l%W^&dDTdF--2f+& zAWVxh{j<;}uhanYj3fn{=QsXGaM?xY^$FUXy==<xaby!?a}&%&<+8k_zb{yV_M2s9 z_@iF$G+6Wxlgy~I1>diz+LRuiD6Bm#D&B_o>y894yrM1dw#zyR%lb&YRL*+%^_U$r zjd!fo$_2RjgC0Mrzc6Fr1tPIlaGvp|xmAeS908%p|4_!Jp`FD1_cl-Ow1E1e5FR<p zx1hbt9ET#`lDpeu>Qf{ch025KS26^RGsnJB!_5^XxT~h9FZ#Om{$ju<1KOunoW+6K z{&VNfDP9Zn5vq{qDq?ZSDkeDOjWLeh7bK(ydYqp!VAk-Ub_Vd)PoKYgpq(U;bJKnD z<Xd-?o6P6}JM_1*E!(;v9+HJri^uPjhXHGNC5qbuIOa}|ZUl{2J<YI_<y(+tBwT?q zNQ?wRm7K>LO1%|=v}3|WAXm<Dr%o`^11u50!X=4-&{D)F!Svqm6#FS0ReU8gr_Vy7 zE3Q0hy;UpM3^z!J^bUuwnw(<KVtdSp%^QxxN%zWZD#)ifi1LGaVp^R|OW8&oiJ!%o zsZF}i{-%I+(T!yqvDI9kE;Ram!ZL{KblIiD!0nBHiva8HW%nYz(T9oGR&Ey1aa!Hl z0r4Z7DFvF}c)X2BTi@lM$!tC0xzJ>l_fEw8u;YCPrqgI#4WVbPi(%SR-v}A*Poz#z z*~*?xa={z>?iz5Je!6v|!IY<c>jQzAwdQgePo1(ZadP5^TNM<&q+L7Kpi}0hxS8A0 z>G=X85NMTWhVRM2Xe;Fo=1v9mh`Vxle<n=W!|!%Cij3)T7c3jUg#v3$upE5mWzp8e z^&}~E`xgPsrd6xaY(`G|D4u+(z$<yv{$bzgrKvUQ1$6~>f6r-u@>l)69#Ojrm-kT$ zF$xGhkIzd;Or0*D4<!NUb}bBfa^-FHT%%KVxs!|I)hWl<?D~Rkv+d3Y_2`hd%#WyG z=zZkp2_E>f8ZRIb#NIEQw@kBN5aww9b@_v`_2f}m+Z{4KhU-sWYh(a(Q0v5+5nk4w z{<XYjW8l+MRuG8{CSv?UazabKlcn3!CY~DOawsRpuNg7lw0J-4^<tdghf!y~g-h_i zyAYqDU2Am($A=#qcHHWn>&{hCU{r&@8+s^CBW2={{$8^+T_&RZ{{xlPRd{3ZNHJm_ zYl{B`Dk~Wd0qcb#R12bDRu}l2QsxKTR&fCC{BfUJe>&X*3OT%~t$FdaT0J{!M7>VO zMgA`OyKo@XQH2Pz=GPqhNGfwkKsAj8zCSo#mrc2E!Jo4ZNbE(Po)#I0_FW)L(I~9) zJa4dqbDq$5hs$-hRFI?fZ<E*4wVdkefK-A?T*G^4FW(6dn5r8)CR2&i9Z#oaL;?Ub zn7kPMaNk<7!SUglJ;4zOSJlEeA^f^KCgYLPQ~eFW>);<n8hRw^bp@w2$CzM@t+}7% zeUxOzzo1>MHd>__u_1|mkPzFT4`(BS7M3_Ga-ip6IouNz9w@>^#ss`tWukF{*6V%& zoH`n)U?DGC`Lvkwc8^>I+o%my6)MQO4LxsGXn^WPwb{HHYCGysvmibnDcX>DC1AOG zHJdyFSft3W9mYZ8>h?T9maviR#GZgDWsl(LK2EMynCZ*d##CvV?=X}|M$sqIh7TXg z(E{u@UZr2}z3I;8E50+6F9Xp8!xqz1ioWJMI9E+&aE!|=kZU$9O$p6-XGwnH<0bS- zAN4Ad$`*ac+6)}YPhw4PEM53!yDS6nfPy%kt>~w6PY)=VrofthA-Rj<W6LxGpvcPd zv$5pEC{{hMfTXw@uHX2~UbWOO4m^Go&lM0c^xA0E6+quq2q*G)&(D3)oUvvhmqVBO z96&C09Jp11hMsZj1>T0t)jQx21gMBcN<bYow{~isb|Rih75z~Awi$y^iCykoqdy@U zB6%$yCl1JrkdrZfiZ>*)yxGxOdHrJCK*!YP>??>28eng7H2<pBQBd8itT+B!WC-in zclfRSC~SKv#ww8y^})+$_h9S<fW$wb^i8cH`wt}9UuQ@gqKy?0j+kNTQh{jYOXVMC zbIYB%=6z@6e9Js6;JZGKo+d&+oPF_xPu_&Yu$b@3-+U}mUKJ3)yH!<ISxV;}#873+ zr*$zWpw0L$a9js_=mRW~B7X%AyU-p;U?>7T!}%rx|00-~VUs=`rXa$J{vnE+S^dRj z94D2+qghxellp@e^c8gk*6^iBAM4@rP%o=<Fr!fJlLtmGo5#R!wQxe-sq<0$O@f}G zB}3$m#2(z3^T_E>CaxDO%o}8+M#a~j9*P$CC125Z`avZ@#%DUx9C7l?4BP1+4AJgO zTewAH5m?IjK)!!uB(!e&Mun3Txe}$9DCO9-0b$a!Yg!mNUFXr$F4|aN>28nLlw_b* zQ^FwhswlsEqGu26N5XoJZNUZa7WN4-kr;Bncxf%W+7W1H+5ySgE74!e_Y5Tj`tdd( z3wScwIqrw*?p;GFRAAn|Oz5<fih|}f_kOq;+S0CJUZ!AB%NpIk5)n#fTYGlGU<_9- zdN`U_J|f^vD_Uu)C${|(l_Y<J(~{dj=@v{*UAMq(vRcx~EO=)^<soJa%p0MMVJK=E zb*N@chrp_Q%UD_vPE-A4=)0zZ_`(@tBz_a>A{xESLcDi|yT$~`WO<2=Z45e-h$<B` zdR7s}E<cK5cvHm)wk%SV6*Y&WqtvMg4W}6%HpRWRpbQnPV|xQ2%G|%+G~$dNr$-{m zf945Oxo1N(grm`(%i;M`qKziXe`dG#LO0nE7@P^Rq?0_WcBtT`%sTm{s$v72kJt<v zZ{<Y=#^_7cKYW<Hdks(4Y=GYHzBvO84d)Q!El~Xh2=mQnr6oMelp}a;#0CJf;DlI& zX&p7X3|nM#s{5Bj(1w)=;2J<}9VL7;m#TCzHcei6aoD}%T4hA5@=>pHB;rNkr`<RR z0R**VDJ*93O`etuky*!Tly`lzp*;~8w7RQ32~vjgBB}ITHGSH2_V_?()b94{wD<Qh zy+ryZ4Ca{~LUy+0QnR_%pm#3)2H^;NP^Zx_j00ApZc$xTFcd6DKeDJh3>pO)D%F4) zhwJTMklm7?A_ha!2{snWsxu&1EPmQ~m%MMj{+cp$TJ41KMN)T7D!RVNV%dgUE~jPV z<cj)icH}zyV9alipMt<NpXmN@W?d5blagZRf4VBeY-cF<xyK`aBQF(MK|Z&a7g!!c z!ebRlWjWgn2_OtjAE}1OXd^K_mx9n>0C<r=@@JgTag41yq4EYnz~H8$Qq%KubA4$O zQ-7_FCcvHNaC9F7gWG{qU;ZMJzZzrJQk~|G04&~*>5lsSiA<cQdz2sSx=BS*IL`_= z*&}}ul*7&&<mm|S>+2nynNnT}EqOEN=UC3Z_0r$z!b;bP`yCBsvs??NFjfaqaNQdT zh$2E>-m?mgq*F)SaxZvv+m?c>zz{EJ1)E)d2m1N$`-UMem3`+$U#>zG6)Jk9yaC9R zOujN*>jkZ6Mn68yF+G|{T+bwJ(7`jkbK~nah0C#TlGT6QZ4DaQL*XTTy40YW8Ljqm zp&PT(OEVo~^GR_IsitDuddrME$|ZRrdO<?|!+<?V78)j>VaCk;fyxLOguBJTIS>!A z(?jyEOsBaTS8jj6Vc0t|>G=8ZU?dey#>A?-N#-c72i6*x#L0<w(KFX8lkcjtTprpI zLX6F&MPWd%j{E1UL2wIzO=d_t6+mnRGL{NdU``o6`FQG-t}GA&NLqMosQWjVthEYU zQLsF)(L<-{kbUvA)Cr`k{)j$a2S~(V5DII0K&)_G9E#R!@A>*bm_JmOfL}y+ZY?7? zIhL|7xeR_l2%opces9*F7uM@pL_~L#O1D>wohS=c)S%$b%&M&Tj-dp&3ske|3Zjj) zT;|asmDWMDJ$VWEIkn=u^6Yw?pP%XGV2S5fU)vgesdhfh_fv%U6`<VJCUe6niQ)%M zIYg6@MA``92mKqat2>)?;o#8&iJqSi63s@-lmijy4FvY^z|9#`V%qypY1>vC1%CI( zZxL{PPl*8+j=El@uNT<UIh=Z)5f&I8J-}*2#D!M%!LtA~t}Pco-ppI8-jA8V9DPRJ zT}>HO=2vm!c>&Rk28mxBmBl`VJq)}gu1IJ(V=E5H*E(wjmo7X~wh*E`JC{U)z0IQq zw>DBqq@vkx%Oi6zB^64Y2_yprKl1u-lnW-{pR;DM4UalMM#H$BN=VVhX|Wb;0PMBn zh<!Pk!;y1t_xps%OcvDh+YI}QL938ZuUEArqfM><fq~5{{RIQNJpREf{HlMpS(?a; zl6z-2xmFl~0a(P@sM)aB(1!v<ri)kW3}W29nRapPU@be1#(=Fo0I}aXZVpC@GG{)( z@vRasD5F&RC*kl2BK7<|7Dp}|WSy)xxo;w4s@(f_CVhAtZHmzjS=+M&J^Z7)g%*V* z45%P#%ttiB1=Ar4kW<16&GXAnpLL`0Fc(XSNF)Z`0Vtup;xF)C3J{vJ0+oD+90JO( zwfWZ`HeNcYeK5XOl;mn|<?J?z;Ln2rZb2@#O6s9bNvgFKR_AE|?`U^t=nO^%p|XUm z)674nD_qKrx`#DXpx)obqN#j(3Zu5~umq<<&oXnJMr!6Ow_UAg$6rPz`Oii~HPB0J z;2jl&e*8DJ40ZWz81@kzazrFUfcRp*P2jVgkMDGc4+dj-ZY9Q{2@Zr{@`nJK<e?Ny zO3t2_>Y)YNXma8KwQ3*b1O7~O*N1t%VK0q3i|VTPmijAD!|accqsUR!)&dtu^<<$r zDBAlEVUuG=Ioa+&nOdh#{EpXS%SX~4xC^o2tmCn8YHj4{66N~V@ZO~wL0)hj1_Ce6 z8OoOW=_d3E_@7I7jGnO|ZYq`P)t4QtHbqj=ncQc5UyCodGe3L{j&pz&@}xw})+-XH ze|9B8tJSu{U+=PVxL}(FbD10}r3gDG7SUQV1Jfjbj=172+TXu4&%ZWqVw`zbHCZkE zNIja!>=N*kkosSi*leSd<TKPOyk!%?JljW9ZS>iqM?H+|7L+4$O@5yj6AZO#6$NAr zZekED#+d#yIRLC4Yb=c&mbi0RiKpD~y7Pg_?hfX8@}Sf?Fw8`vx7H%$k&z$lB8p+5 z;^pA7#zu?Az=}k;7syDA#%;BKO~mBB4pzFB6GlbE4KZr4L#X=(iv#LolG*ksCrFjz z_Xd3&3F=xNMCJ*GYj*mRh(lc91xzZKQsc^<?3lRvsJCU~wb)}TT9Lf=UC!iQSHMop z=Q3d|+LZhFYRH>EzoSv<qT*-Y>-E%Ah-tl9R*Y3H>uPLU?<5v~|7v^e+JOYR9Y@9? zIUtv+g4vq$<xt$$X73~hFn!WYk(*a4lY`%frs$(!IhoT%>dMdKCn1j)r*oElO;g$8 z7fnr$qlM4&bM7A_Fjzbroi>yPMdNXOLo!r8k`>q!(@-E9A4-fiG0~NV%gd#vS7+ZS zdRXd?j*Ar~-BJRy{B7b+Y%kwI>Z{O3zs<FI($H4Z5xiAEt9+43@w*-RGx6TQOTkWh zNN&qc;ZNz-jcU*?ypV4nNMvlGR^0|RvV6$cRjH0t!vcfxe*Y_(L#FoSR1zoecV%V8 z?mdc>Yx!rb2D428Msy_*Zz%ogmJiyLA#}P}N%A(W+3J&jNM^rTYK5|DY^SunEO6<* zCs+p-b=nm<>QZf)f^AjC0e_%&7Bjmu%2d8R<KI?ZXaHdOm%3Q59*y5X9ZiThZcZ0) z4$f-*VdavyS~8&KYhb-233$CN+0&oOCmsJ>8#Ez2A4)0dMevdPVTsz#`6AC{cD+au z-(?>jgYnYsd1Zj0B99NbVC9c<!a^?N&%|+%x2-!Dmgg}j>$G@B(5Sbl06cEtoppo{ z-a;qKO>|v&2x68Vj+}0BSPY^kcx+*{5Y&Pm5K4|c9)7#Vq#omxiR8C3;r=!WiN;2p z9&78Ge3L^$t!43`0kIuZe}>;{GG|RGHks0GxFUmE8I9;Lk!`4GE(<Ygx_w(Hv~s`- z@FgEparIF&^H(nltn5-KH#celB`^U)r94->?#!xV_^LBtG98QFplaQV!s#kE^=~II z0UFH=bnpOi%Xp`crH2$y$Jvuu>U+r?urV)goG`qNbYrqw{GJ$P6^)EGGH6d)RTU4U zdZ>@Jzg?COWY+Z4tp@0C64=h0)zqgD%)EiR8L;hX4uRvRtd~r72hvxg!=1(#Snf6f zJ;5SR5i1~{)1Y*atp3_liU4K6wdu>T?%JxDsmZquvBttxZ%&n4*{7;##e<gP=56=_ z7-un`&P0n!0^oZZhCjUa`vqF~KFT8ImJ0=Z{(DkQ0g5~FF}FtH<=YU81`n^iQj2zZ zmtW`F;J)A3F}%BXbR_)rL)zLjCGC#HV7^hv`00adgtxVEe>1aN+P%EAZElm?@zH%` zVsC3|Ycg5KZ(p+Kj{nIt!k#L1d(e@*zj=k^IYB0S`i6D6+@?z|&+Uj!?kQIyKqun5 zgZEM>@8!(O7;ikKS&`?vZZpDdW>LxA??*5PU6BgSqy`Jsh;aUe;C=m$V(EMT?&cc( zh!*r~aPm$5HF4als*fFho@&FW{1SWaFG||<vc0IgU<b~s-u2sos+NZ-A|^{9AZbIj zb6LF$Z%J<r>e_DMSmJ1YJx{qxm1!aH0gbh|mPcP%dNRESrM^h|47eEQcFhM-IuS?w z5Aa)RX<`#Q5C?dfQ{uoF0l7P?`2tc|mZzDtL`heXA(QT%RHn>Ta8#1bV)W<GX0IbU z#59yr+W3Im&t)Pel?pYLv?wm0XCom*NS|-f`@HFpxi~BqNV|9f8Y$XbIKr!AsNN>{ zwTlQDOlekg7XuGAm<{-Pou|WHIOEJa#jyJ~k*W0yGHDo-S#p7KoypWG$Iad!Tz#9> z4bfGQ;NI5+ko7XsP`f%%9>Y`MWJQ=6%>nCr${s279CMojyfqOrfY|bij7$jCmyW6} zqAB4Uf0DPe_BC`V*qq!$DTYx0Y7%LR)xm+cunoWOwrfvUZ>H(V9e24rW-XpC*il%s zbDIZ1K`pnIpb0nRGT#y|dKU5wB12p-tjL>%vs%7>KiFtKD;ezRayhD!&03|gU)L*C zZ?^B*ygA%%Z)^!9sC9x%8M)G5bDZgJ7rX!v(=u1c0bxL@EQlG#DB~Eqch86DPZPDN zxOGlUcuGx!E*7YO3;?VH{i5FvYgOeo2wt|^?4u@zc1$o2j@LW*EkH$zKHKGi(6bxf z*YiOA)WE`SDZ!0e`y%WZGNY$HH@Cm2OTe5$>YtWt^_M@4d+E_@U5HH%TU~=O`_hIa zp#mZ>V-Y4d(L5e}QSB|I^v;&%b+kNwrC*-sqTHO*+jm1^4Jt%;V##Ln9^43#h-5tC zvBc@r`Dio$414QIU_@y`j4k&=?y5mF-Sitkd<trO75ki8|C}Lc=XQ<NuTM{T@{>z~ zGVMr!ri{7DFk|a&M^7KpqchnI>`wIHJCd%%zwvLF!nu;5Vh=-&;-`2%qN~g4p(xw| zpZE*4Mz5~YOO^ciD<_ODfs@cMxr*93J)OgiivJ!HkcH9-54WIeN}ao~zR5VUK9V|t zdT%jMRahk=*i6%Qtoa5taf{sKDV5j2yaq)li!8}&|5|XgpI$#Ov`qZ3uQ7+|or-fo zJNQ5Y+uzZ)mzUz>GV6E)jOjpU9Mku(rf#{F`{EwbM+DQl9vZQS?cb0OFSb{3t@)h6 zQ5`%@h9+xVk|tOF<a8r~vfL5EKlQoU@?w}g*g3<eX?a7Fflix4N5u^{^cC0N8tk5g zp8w#2s|Zjmzu-zA*&j~pQAhspnn*M`yOQdP1<Tg=B%k7W#+fU|#nIi@);*%r>Y40} zm$P1!gGRV%?KM7N(@1T6>XGrjlyUV_oAI`{93xOVQu7R;jMG&JltvDSxbAfsU@o1? zv#I9iqBuHVZU9656sgb-nV9||ajgwo;Z~Smmw$N(pJ2JyL!YFpf7L=rlS4uo3iB0* z=A9_78#0*5%y{*DNueWfW|W?-ySz5&^1wrJT`vZe$L}k<AB&=D3wd)IiR7T-9NT)e z)diawm|PzoG|yVOQuwo4UehxfjC-lO2{^RIR~*2#UuiG(wdaY_rV5bk4981vr^`U7 zI_GcmOs2hI<g^bN-8l&6%uO;FiY`y2ONshHtGz!aKnVTj(9Mi^XQZTRP6-8u>8Hl1 zFV6>A6bL-2gwo0iay!mHvG?-LU{4B5p&lpn?L7Mi<zz!QAm7=|-iZ7i^#%vn6sTw9 z5BJDYg;R`=2A$5WLfY0f+P5i0TEk3HZy|mVTQEde!r%0ee#bKg3YaRWZ^ycS`spF_ zd>6iHXt&W5Fro;p!J^3JjSY(<fB_2%AR&Q)`RNIFcNt6esC^q*g-42g+=f8xkq$>% zZrnyN*fTh4rvOfG4!YA*q+P_WF$HNeo;@au5ez2+#6d%GFq^%92ZrvI@W8FLMJM_- ziy63Jo2Fc1r*YMQZtaZRpA@TU{U}$!;qOaG2n7Z5?}f<U_boc=*CJW#G|?=@e$n4Q zdxC)V_9CZ*{%65|%V!gV*lcwi!E1RsufE})Q8=N1{ayL%D4;js_{lAH8kFz<_w@g{ z2^1tIt1~CGotxOXIDi`CVp8PG8^I}o>)&cTiwZ2$ZKa6+zc2KJfNFPrNW0{5?QiQ3 zGRdQ+xzhT;Qj#e9w+Y)QAZn*b$p6#<Ai#g+2rRf=F9>8DIeiYYf<|mkatnnsIem#T zQ8jf4$eZ?eDcf*gBpsQZ-x2@T@&7Kq+6Y4N-6qLm%?#hTH4Kd=F(Cp~)ix7nuH|iT zG0CEHOT86T{?Qk37cx@sm`x-}@PCQwT7(#hS^})8s!QD>V#AU0PUM*ip<Jf-mNVSu zW~*@TRJW-r<(tf3ItLac?1qBcLDM@X$^GxA7!e{(PPlLe+R#bs?Xc6loz;EsY<}NS z>wsNyY^UEF`AG}@SBszR0o6Dg^LkWp__tpFbLl1p>kWd3p9_v5`ypBC_IvhLzYZ4R zjCI9`XozM3{dTNyi2nEA@_<T&3Jj)KEdf)3q5UrfdeTApa@bqcF4L5KH=m#rv9)Wl zL%5)m#LL+^$cH~%bc*YR{--~I!2lDrgMep~p#O&|{_5F$K486Wfzf85xO1BQ`mLdg zNZRPqbQX1z4Q+g1&eW{m0DYex2RO!}>2k*B%j>yLK6VxMfBLAu?~m@YS3JQVNDP26 zp(k)7Lcrtk5DuVd9UfwOHgJ?Y(G|{K>MPR`C`b;|vHSQc@ci9=e_Y_0e&}5Yx1zZJ zkZd3yn1Hn_SvbZk3>_%~I#>ZO7;Hr@lVSrnBD;%*4TMU(*7KjEYDr!8;@<}U$kA^K z5jZC19W7So>&~M_f%t!<`}ddy=&uCH)`dWauyGuOUmHo&N1N%YcKf@}KdM1Ng2Eeo z*6odt<%0RY2K}RG0bitPFbov#?|*QEAdiFN#Q*6J-51E$vC&%>*}uQZ{qxJeFZ%1E zCD83`ZQybF106-=pFg*m1qGzA`Qsre7yfeu{8iW=)^Az@H|#BG+Z;Kr`tO%s#`v1L zwtO+iq5OAsh{AzF^QXzu3g(QKj&dvU6?Fb>y)O|VUpq)}dcnVA{eR!mi3!GH_6?f~ zP9OGteJF+i&POMS0oIJXU)9t#TtW2j+d*P{he8kuhBsWap*>kiA^%Hu0!UC4Ajwr* z2&S`0KaX~hqw|C#1sL<h@}cn6_MV8^`o|fC@x#`Y{%We9Y_xAktadi8L(6~Y^Y1wX zsSIg2W0hGc@#&)N>HhcxwiOVoHV}muuP+>tH(EVH_kmMJMH+<mPq)0r0MVa4rf(*x z`>z2<2-VCDg52vN*UrI6sgV%sc(ZC1jzq*Gvd>_(N?{yz`3Y9&`S(l#hVNJ7H}%8* ze`WE1Q&0B?QYbbj3aW1H$w~du`P|s*P3J|+TcVBx$v*=N2@@>v8V1fiPURm3{)cwg zvHg}A^JdGNuD<Pn$BpeyZ>GK5pTUUl{QG#2Kmj%N6(}U@|LH6Laqkac5C$91uTTEh zt3I*bVC_{u-f%jHT)AtY!q9)}jO16N--R!*Pm=oov^x+RjAm6EeS&W07KSxO8iwkx zstWibUkeP;7pVH)+$GvJEfHbYx&^~*ojIv}9NvtJy7AO2wCTfp4I~5omsYnOM7p&H z2TS9~3X<t{XF?c$g-L5sSS~YUQ|~L#|6AAwte0Vj6yjWP8W+Glld?atbi$m}#IPdl zPlgcn{(JNwfvv*;SD(2IGt2WdQN@2F+XqYlNcPKZYnh<4=<8ON@23;o?l-%nL3h_V zwo=YP@Hi^8uV+C%A7|Ffl5T)G1<y~~<xwuo)ve1B)4%W&Uo5)BbIW7`o93lWs0ja3 zF4Q*xm}led>ocF>Jv&6K+1C)+&@9+0OEkYxO7(^Fdjpb5^%61~VizoS<n7ak%lW$W zkZgw1iGF{m4F6)8;MHb_BEh-sP6eYaI({(!H9juEbBEVkQtw>|L0;d&PoPh&R>#!M z4j)-c1rpU4?op6VRKOv<Fmi7Qx$IPdbAHE>r|UO;_Uy0bb=OaPE$jUt2NQqSDmZ=L zRCV0K`l#YLj^3-2ITObl0KXuf3r!>pS6z(VTi$z~m}l>otSvu}F5Gy=0>;wB1(02} zPKT&$7GL3fse-)WW}$dQy{9AYywC2wS+Gq+ZxD=J@cqfXk#5(aeH#6D+-G8blPTqn zx%YLeGrPA*yjJfI2vW(zpLU(EqZxm)hpHNX@-xHaK`9nZ<bXl%Dz3~H&cCs{jXF{( zG4LCW$MS_<ZpTjm(g>U^hbhj#CLi+o_1FfQgqsu(JieS<)1P2mv8?jc$X%pOIq_Qz z_RJ>#-mqEjctbqy=^IMmkOv9JCJpCI{avh_^Ay(cwj6=6{;Q;EDe-K-$J+sgTncHu zN%6&^;>OEi{^)Dy<NGWBg3Qayvuc*DkN4i8l|&o|kw}F3ht{~8_G7CkqkjK3A9WGu z^6B&81^4~=3arFs>hiCz7_e5IONPzbGG7An?pNYB$vSq?IVbzaiud8osWHqL4wSET zc9Ja4(aNzax~m3a8oVH%vf7(dcuhboMR6G>WgKY{4`*H3Rrv+8XgX*S0l$5l(iTmG zbF!6Yf64)GlXgMK@?k!R_Im)|XWWu<I6f`aK+IFroD#**f(3gEJ(SqiEk{pQ&U^G| zfQQ}CkZ{(M+V8V%ajgqU7Pdpr^FLx9H;&i|kRO$m+c;1AE6fr}EMZjj7fvQyVqW~( z=w8<8kdszdG0jcQS6-9-Ci<5{#A1=AB#H(G7`AUFBNDUuS-9%V^5KS$M@+3+tr@SP zT)53OHbiX~%0mlAO#Ch;PSYnD9{?{7#g}@a4?kJ)vE2g;%FCtNQh-tObj5P3BU=KU zUbt4D>(d*eVf@eooCQ&JwnvxHChC{)AFGhTps9O-CcBNtiI4b}(N?cB*F%e`?5+Zf zChHk?yWMLws-%}VF3~IkC0%Q;k<Dkic@!PcVA-5K@~P`Fq<}&AGb`;mS=ZnNYH8;Q z3x>E`H{&J`7put<NFdgtrbqUZKL$rKX$)p%X*5H7h({3^^b|r#8T0LC2B-72nRZ(M zzM$d?jB?3j3~Q<E)TL<iQX;idgD~ak&C!(-Ad}L3vl;AayHUCw9^^`$VbQ8ofpWFV z0M+^oH1-+*Mst!aB6-pi04d6nQ0mpjHs}kCA-8GG`!>7kbhg0QyK75aCD#e}G4sMM z5=sacM=GZCdYIna;QoR_od>bxet#;2!)}$k!Ob>TwqQ}ZP<?@XF4qWPdlCE*MyTHF zO=UJIRcet?vC9*Ul5lf4D&lW-EZ853FSU5wJrO2k9E`@Vk~RAXmS*wpCE@bCPeD#1 zm$f!uI>Z=_=T1gub9lr(T`&R4<Z<`4m95X<^oW*7tQ4Okiz(h62%pVpxhvH~e7opy ziQzA`&RnH>xkW24kzBfjn1rg(C}e61v4)XVwd1zi1w(`j0~}aO%I66?i@Ta>IdVGT z8Bcyjv_72+O{B5qZLKyH@_>gcu;~b<Fxf>$>%UvSyD&G6B(WHbf>CKSK;`1G+pGjb z`YuHR2ogpGjQPRbURj@J@uGu%96(qu&%^RmDh&)G5$F@YWC)Yr?s10qRk$7yy7o5m zAQ14~^Y(Q9hXo)3SixagcAV~)?OL7A*b-lNJoY~4j3<k%)?8*~oqP&X)@31*x3ve_ ztdg`^?B(VL`R7~)B2oi{CTe+kJ`|sgFTM)G3%l~|`M(u+K)U7{^unbvyEQW&4+-ea zggZ63u3*2umM^oI+aeNsRF^N6Ue(y$`-dUX7IxDA;Qy?SV`Sj<*g<)~W{}Wre9h$Z zW)O))>Y+MU%<9%Mz28@N-0jD5MzBh?4T{+oY^gUXDuO><Cgsmav^m-Y{l@I>IGVy2 zRd4DTu=bUMjC!*95pr)45uCs+hOT>~+vO%i%k7x23OM`S0cj~w@8jy+<$!U0d<TEP zXG*KmZ8H)cNh1aQV{ucjocVapFQxePI^^mdhC-ebU704g&Y_ESLg%KP3&<HgoxWrf zRfDZOCO^Q$cU5iYhq!LkZa^1LJ>&%ul?$-wDRf!m4KthRmy>8VUKNcnV@%h4YE$z0 zoCRp$^SS@%x~_L7>2fjsi8WW~?5G|Tvd;_|#%%J5q8trP{91MuIM>^{G9b&zrqf}~ z%<FNJ5l1d9QEM=e^AQp~6KXeC;&k_#z;40@inVdHSfSzvgEnjsXtUWEarjXm$>oqP zK48#cY}JanbT7C|vNiivmQZ}(ZhI2W<9!=QCY?SO(Uu(LjfA?{`ltN5U{gc#;2=Vk z#coiG%j>lQ8N-V#Gy%fN9Q$L;h-~r|4!dv=$x8F{yd1NV+o`yrR8g*+4Bqs;Va4%y z+D_NbQJ`NO+4XW>Hk<2RyTuxn)`+Q>Mm(L)it07>2va^!1KsXoV9pG{i;+H%NSrQi z(A!~Jt-V6(*ylq7(TZ~;%N>L_pIa*Ow(p*1yx$*T#-48~|E)q$q47jdtKJzb3U}IL zsLx{m@CguQUJGmzHU}|(<VYH8S$-(Js$HKy#PGXAyDLE$G_zP>G5|M6ei;J&8T%Vm zd26|#Cq~NJTZs1+z8J6!D-_z3A`eIuO=ZcpJ>uu>fVSE3BL%#d1t{y!L0@uPT=F*@ zb^mgIS~OwIvF%w`DmG>{@cbo#Qqt$ZBLiHjPH00{{Nk&p^T(OEtBnzD$LVd7S7Yb{ zKoVR5k#=24>Uq?WfkhvVp!L4cUzm*5Zg<sH44Nf%vrgrWZ3&UO1uUWRELi{=)Y<!5 z*zCn_?b<l!*K`46fYPrv$1~ZNW?Ch>uK@YyJ~7$p{u2i!4_w{?#3^RlaI9n0kjN|n z)v8T~-6EOa8ENdL`J2Fa%h^MQ$<<m*#e+6C-(OCKu$3bna04ZJEtWO|!q4p?RazJC z*<j>MojJd^jfVz2`v+r;<1!N3l16cQ#r20(iYEfXz~-`eJtpK$hbFa8JyGL-826rS z=jK!K*yxOf@U=e`nD(lT^`G1t(QC9jVmY0^hn&V*yjQ0wcRtDh$U~*#9I=!KWAEJr zT_sXKDsyj8$>%20+06i!Dk`jo5pT0O8Dz^S?8V~mL9n&XtD0n0Y;*Tm^(PPIOY>be z^n2(j0=k{={t%2r(;aIBq8td%I0oV>WXIzqb2gc63WJeYB|4cJqPR#VRWPBc6{*a3 zynNH2ppYk5KIn=sqYGwpugdLQM+S#;HQv0VJ(;!YyIy<s?oH|0KjRO(N)XMqHhC#{ zEkyB*6buhDTIOr)95mjicnWWfWNe<6gIflLu|O(v4os5ZPH0wDr@<^Y8bK2&R3fq2 z%VcNV>YAO_oUvI9n>7}2*_!!V!f}R4hszQcLGkar@bCgiKvy2RPL)d)L!2e{^4u3B z$~t&<N5s#U87t%HG#h^)dxOKG6PgbAHAp9o$CJt8j%m<^9nYsS&o^xmzUo%CHW-|V zQd_Y(hyr$O4r$%E1O^I71!rAns@$aQ->=^qe_cpa<r`GS`X(9N#1%H!-Y`-3S^$ig zj$fZ2dZcY~I_>4A77OLdDg#}%H{WSB>LRgO%>?U<WQzcMMu-LtqNGXutSa=wfwAQ9 zbMeG=MN-Zw)GRQboCWH2M0~#7+<fvl44+}Eu3ycI9bE^R7ApmGq@fteY?hmX7VMS> zjcAEw3H5N_u0I95t28&3JoIc5r9?i#d<58@@R&s51pw2|&z3qPWsUweH{TA2DI)iW zLt3Zj!rCqgCWB4=+kJ3Ylfb3mi8Zs=jG)fzhK`x>7Fe_uBb>`oH~uWojaIu5jq832 zvp8X%lVxd(=a%<}CxzEiXXQk2K=As{dWuVSyOMz^r{@okZq&#DmT>Z|j<55a-S%A@ z?Wa!Sc@OCCG$^w80Q;0EEPADqhQSI`VG~s}ca%#7%wccXrw%+8Z%{De^PI#Oa(wl6 zLP@*8T!FW=Zqst-5n(2uLze!kC%>1-zHhAiAs{Rw$IXXc@j^X*@Nx8L@>jOIWd^T< zsQFyGpFdau_x^sVgG%61Zr_m7b8Wmysov-MriPC25GVfY?tX<?0r(OBLTS~Y|Iws& z!AFKO1?s8K`(ijNQ~ar^vkzk_K8rrjMvFssINGF`db1_w9-U@=w6QJ!LnOI_QD+kk zMDEl)YTLV8y`nSzT<5_+jaNv_be300%ao^3Wjb3!>r_~LaSQ*(Rf70)rzz3sd58G* z@eQ*^qdnfiwn&K72`%b^_-`8FMCCze8G%y)^E-dZ0&(OMc=~lbE>HhxTuuOk6ruQ& z*IRYTsU1KNm1nv7S>D?1qd;;uAF@70Tm0~4U7YalMWa?4`JE*v?DJ|-dp-sO`1O5d zhHxfQ*crj{4N>(nX5_*0GmAtrEtD$ZLojLp;kw=QqsWTI`_|I@Ns`zet!ZnOO||f~ zC8$uhNl_TBV9cnK&umaP{2Zjn&0hTwna~43)ja~7M!&^0hK%qH)2W{7btb<6mf@fV zuO)9*ddgUGNRdN6`=Kna2CE^yR+lSeC)2rkT;A!S^u~*VKB?AM5!aqp0F1V=GXV!g z8)&k-5w6FLe(iR5CASidT0uY?@I_Sg-JP7d1uu(r%fWEWGQIy|>gc*xU{)Af`+GZ` z*6l9iL{pheb<39P^)cfUcoH9aTA9y;Zoz8)1qUYdD*~QKlg$=!>_IAXK_T-Io$Xew z|Da5Uh&I=|{`P$ev|T&S%iR$}uWjtJ=9t%nU+$zCFBz&D^v`%IaFI}?tSUQD7)rlJ z^#0#i`T6!e88h`BM7_S<<wwq9Gg>f!P+UTIJU$6&u0PJxi&or9tC~$VbA^)0@D~Lg zZ;zBwR4I#s)5A4&zZPN4)=T_mtJ1h_fL}yhFIL)Qku?e1f)P%OZ~L>?TkLN`NU);} zE{fPHHOk)l9AQ@tdD~o+vB|lZ8j=Lo1srGzQ0)Nz7YoVrSNG};C2F<b5y&T|*O@GA z9!|Jp$%(@fA)=H;>9Y1GQ-#bFh}=^Z_~q#MY;MM?8yuE&$~0R1e@g-&m65KZIZr)f zs?{aP7F2#2?-q-20k*!6>n^0>bBGnS;L=4_=}T*5PA|Ad4h4Vef9;7TPA$*$x%%q= z8v7Og9QOwsu)`IyaRow~Z(c#i4b&Y|u_|>ejhnBQmF;UUQ3$#{RnLzk>}}xj`OHwM zYt#X_=ee=Y1vsDA#Wn`KKFLo3-OLvKoJhlGEU{?Ha@^gg#1}T69f{KYYWSH6bp_4R zphp+R!)n|d{d9B_UtF=0l$7&u_k4rOCP<^_nId?Z!Rw-9<a9m#OJ}0By5UKHC6n7n z(5ya_(<Pej+U{T!?FFlSzUj}a*Y!2g#Tq1h7lqbVhUjN#gUgn;4%%xlD~Tr{%Sr{& zZ7e@N06v!s2-v6%Tfj@)s@m`X;K(3rK#+qzXK7M=do!NzPnZ*^j9?@ty!_Y#1_<#; zYybobWgJfT_hzOb5uPp*qfx^m?|qL&vI^lB81#I!cd3a$jI6uP56F4u$&srhUQ}H@ z@B3$Hi5}{URP}sBBM`GpmY*p8gT$k$VLz>CyDw=%_Ow~k!TY|UPmv(|JTuvPT4m+U zX&d6oFd{Ipj`TnIHB$B?XK`ib>q=?i^SezN9~CQolPVGP1>o2cpsQU^IaJ0?SzLBd zT6+$^Wv;On|9^a)V|b-Yo3=Z)ZFQ24ZKuPIZQHgwwr$%^I<{@wwv%t|J@33T$DaA- zM}DoWdaCNFs#R6@b)T0HdbMHv-jPUBaBHOA!GlbeVxdI5d?1@uOoH{68^1(S<$<`o zTw_`UYv^a2klYh7$`PG*;c%6C;uz*WE@f;s#8UioTZhq`_G*g}gqH~=+x+L0cFVAT zdRzNwwrXl~H|`BwyaD-CR&n#X4v+V33OpW{cqrzO&91lAb|8o@Y#o)%WQAgjE<W~n zyu62f5KCm!ZFi@8VqHT5xzA_pQAMcj!KqZ4dMPv7xQSY2l}0`E1)pmKJU*{AqV}EI z9G1UkjQf_o8c}sC{@tgVGz7c$q-E;y4;f`7i1<523T~y0$4YFu_(d)DE)qks_I0!N zd}!=$zT<M^2`wSMrScsUctQ{9Ob$^7H{cXrr(a>141T{H?iTU>cwKe&4p~+~TeTiZ z66(rYq8Cu9|H$SLd%$BlqEp@z?HafId77HvZ9q0bh_HA~@u9`w)2vhu9Xu^A79E)z z86_NKU<sB7wwkGG_&Z~-lOG95k49zc&V?JzLgYjkD&TM|ej}v>V>CJVZB=mIV_R&s z$ssyBV5yh19Cbyh++Fy!N|k6#>e<HG`>X8{n;(#fnNRQwRnF^~cv0RD{im?@c!}=p zH7F9J!6YyX(R!U1M)SeD2rv8ZLm_N$z8oS;8Tn#K>1T-6zAHG$>IQC`x&_+$<V9^& z>r0(naWD$)mfy34T-^W{XmGNSt9ndLdK+nyEGypQDFIqNzgHZeuX~S-(5;Px_l|7l z54y#u%xdO&%eg=9m*<}z@c7Crj?ax?KB6=q(9HGxyB9~FSn;<x0D{&!;rk<#^}#P6 zn}-itP5Nqg5jN}1ynrn-`Zzo;?_ZHnVd#_Py_%&zziVqYCK`}SQ|ZGv@YXx)l936U z+;Z!!MRhp(PvD}EH6VgvQt5j~exe<|WpP(Cb`cc6;Dt?IVIA5OPie{;C{zDBVRv0b zP+P;cPdNL1gV^9{7fsI1DmA#*s!%ZlnT!bt0UllL<E#;vJ8T2d(6j)*U`_~j?gAe& z9l60Kk2A$44kC2k&9rESw%|vN>RxFR>Q3G*-|_nRO!MvyJ;~{IHv%}5H@zN$4{#hV zJHVt;8LB(_&C^BQ0b7G?uSlR6N8SYv&E5@OPe4??XP^GTj%h=+c6);db^?qGY$<he z2H@Mafc=4Yw1T{(GUhj=><p;y?aA6IRTK_Z1q;A53imW8bA_zv>DQWitQSrXVeUuc zR&XcutUbgRQqF7Nti}{e<ESP?BMc@PPwp>iqKC40m8Vb*GFo&r1}9##p1lV5-d(Of z^Fc(VYX;5iv&y-1?=+o<RWz-~L89zEKws1Y#jl#rRqPJZ;7&O|bGm?6l!6)s8;yUg zZm+pqB`TBKPJ68ZtesVT$p~_zA0@aQgZET~Tv~apCb#Z)J|N6jT4>Arrd-1H%^ZZk zP{F@rNfLqN9T;`W_`bgYPDIDoatAPw@tTtEK3D6puW*>-LKD{h*Q=dg<Y+YV%g@6p zcQZqTIHO4v18Gv>u<7<*6OS12;$lx#T9$Ma4rDQu$3F<$p3ZX{%;r>MwK(M<Se?=* z2wFS1kyuf*r}I{uefSzLrc+rAl&{0}zxt}~prW?Mv6#v%0VX*I_Kzm6HBm?O`pbkm z1&YL%^m^XV_5JDVu|5{BHLac?e8eIEtJ2n(F4h5|IQR?oav$&S2=_)Y6pg3zM~^Ad zBCvRd!pu2v+gq~-RF#m`aOte&Z^{+2(jOubh;ko(%RsTYg+e!Z0X|Xvd{)SKKE+#K zidGvLTkRZ7s4rnP0N5K6Gim(w=#@5^Ya=Wkw=7bQ!{K;7mSq!^ukm*=la!*%l{OtS zW^a`|PzwfY`K7TW8Yw*QGr<+rGcchnbVU9SaCkW@kzg8)hTnDc0?@u9y7}2>3TunJ z<=FAX6S7w?hj142Ub&f2rCQBEN`|wTX^Hi!>9!NA52N=OOF1l0U8_!sFSL_HP`g9L zq~V8D7XxpWaTRlP8nvUyzF)l&jy>%w%0fAIGd)1J16??lm!(ECaR>9A2IO94-X>Ei zWv?_D{4fn>^~!+1LK?#Jp;eX>I@Ud_ttOU6^OX#dXsoIIDJ}K;W-y2Tl}3x`*_yRx zi*({a#7BtuJh5Uh!^N<|FM23FEV14O)X(|r_Uo!$jI^rj;-Di_1ewg_{H+bkQPwDx z(8h+hjUz0B-mNkNHeo}fskm70GNnievl-N#!o58V5Lz*8e8Ut{<?&;4LcboJFvG0- zn2!Y^eFbD#X<Dt$GG&<f+uwu*T}R~0umE5|16f)tJYW?U2V|oa8x&7s2P_F&H}kwk zDn3lxDUitsb~S$q!=(j9WEA+>)EJ{hStwD-9IPnLQzMZC6(3eODTRcV)F09KQ{Fk@ z`bXfhc!Q%1*(H>g`asb=6P>+yXjsqj`s?oF(0Z!AW7_ZBqW$VA$RumC1@ac-ciq8; zq@!MZc>Yi^C`7Sqh^ErG;C8{i%4z>Zk{nhjyf2Wd=mC<SjV;1|-RsFGpNq{WudKV8 zE`l<e%JAKSqe~km)7Rqq6g*kUfc9gihkMu`38vXGN(_A(S&h_4#4_7RL%Yywf`%zI z>2x~M{$qPm#yHmTbsejeD!3*t78U7WI3h%~WKC?U*z0owwYcloZD~1h`rw#IzB%Fs z?0t3VwLn&9bgL#*8_Yy@Mt{&Yj3Uvs|DDcWz+gzynFtP@BJJxvJ}sn67e&(aJcHXI zY2-JivSIRMm-WSIgT<5pXOF=zrX4VQSkT23@wrlu;wGZmt70QYxPYY(i0BGPIxT09 zuHu%fU}g)=A(d2t>yI`katnLShGb^3UgFz#@Y~-Q-&tz?@7&*c2D`SC;J&OC0(1ai zxXSTAwp)S~b|EHz43>Dy<R*%JRwuDlP1#mD8hwG)gXbjq1+c&NJ!W#DEoOA(Zt&=M z1^C4r&zK}%zLbF8A*{MomZHFWIE{B5$%OQofE;9y>_dXt0al+RDaFz$oI~_#cr4!7 zblZjU*oG3R%j}beq76UfR<1Ttgv)+kV~-gW8@@;N;Q6AP3gPpZtMLn|28f+w=bC^& zY_0?DZ@W(Bj+2WXR?wo2vVz$2TQv!9(pW0aYG9k5{7P+o7A1#Vf59-<b2i%)c1}dQ zwHKb{*a@|>*BZ!GTX$jYmr9?Vvt2IfP-I;4wc7~cFu8%_8CQza(3@ONs9G>W1;{OJ zf>de}?vIazZ@hmt>Lo*`G8Gvx?V#O1uNcf?Cl8+;-^Bmw^Q2D)^%*c4Fvi<>gI8)f z^XNI~&BpUlI`p1O9Y3A3f!z4xmMjZS-6^sIwo`?tQOXJlOV|>%S0<^PNTH@_V)X9J z)`*v)lrB}?_JlVWz66yxXxcn!wQz&%e5IE(#$6OxAdx<cD+w?jEOThN|F#20Ba?7L zb!ovc2rict5GpOI%&Z5HL08(l)W^@6&`n=<1eYp5K%WZ3oa~xyX+4fISX}8-vX-$f zq|F3b^R*pO{pvJK%0zV5;oUt;^8se`@F_rWjhA_QB9I-C_>zqaL#GweXu6a=(p|_M zk#DGRi2NoA%OByJP_qzHLxa&^nKNK$p&sly&0D4f(5bHV<=k)Qk|gk0ps!KSb6m!g zcqkV}>O~>OUhD=V;8l3~f2>p{zs!<zh_oit>f~M~(p4Kd32!}L#~L)8Y|$uxZI40O z?-m$!XYp1(gw;!@^JbF1Gb1<xQ?4~#)%;-_&1-aHHUm`{=WBaX?Cj66yQcsJRXVv% zT&N_Az?&$)L*E_syh^KB0h33+kb@b=$`voj+&!91{F%z+=V>~dhn7A}L%x5J+_Fj* zI|aDtLS0$NUn6il?AKdu{Lt~cqA)#59Shp4u#B^PebzH-f&?~wjle4V!J}$mx1NG@ zib)np*fxH9JVTOrxL%s?+?a}pv5)+IN(6t~&9x9S0hCK|9QOPEwba^5c-2*l-6{oX z4RAT%8Bg5Cf2_ss;Rlrycz?gb#LCl9a(MR4mBO#yW?$M1%Da_g6?k+&;9G=eJGZKJ zJp^7??mY1|Q~UGnc)K%m^hm8fsd6C<?KTMg$8eRk7FW5)PY`*Ol+RYS5Z)Lq`Zpe* zS4=C-W_hcanRa1|M7UL?;VNmoweq7tlb}xs<7GsZ8^u^DAAV!l%Q;~<YWk3F2C_3m z*j?MKw9pD*H+#yuv4nZ{{(d}w6T^XjHC@Ive#Pdl5*;LS7U9IIQ{m<L+ul=_e<^Re zGVWpGd<^n^@>2EIp_D}2Dh)9BMJVz>F$_lgyi*F^12(fdk_(8tbKc1wczux~8q11K zlY2h)`9vmXT%Jhu=!YP7Z!OJAV8k{%zF{(xT7zfiEMTYF;9CoPLEU-5@@y(T;7?N@ z?{1p0(R%lroRXI+{Aq>yJFi7j3fSj7JyOf0A?bHk9~^}{$_i~L(PdBNg<#b2WQ~vA z=(b3g2tTmx9J>$oQx3rSW#CzQ#rSS&mL=@m4;^o{7n0RCf`E?}&cs2?)a&2?ieYuy zne}Z3*bl{fx|7Pd@*}T0-6xl!C8p5~aGX6U4uYQz>}Lu_v5Lu<cC9_~pVTC9;dOSh z^gKJ!(pi8ktF?QqKnFfUwIJn($K$Em?5pELRX9p<{CWQ%i8Wi|AnIei`KNMKol(2N zk?a`a3gBO#b<Vw&#jlWi?_#;qZHTekE6J&5|7JI{iSj){G?`Z22Z6u+r^h+AMP_gE zLNU6jpp}U}I4~SyJ??HT!~1*6mjDigeQ2oWeIViUxj6KtfsTV_gak0<<fYEC#$LV2 z7ZS7eC^Z=hf~wRfh`Wr+?1h0&7Qhoj<-52R*FH9+yrnkqma%${lEdyZ7JjlZ1G6Kr zIs|oua2WDP)f${BWUiDsUpPri_Mov!WjdSUXEI>n6u(MU#q2JKQQMwE?i41E!WQeQ zQ)YVAHzg4iK{ypBG@1@7j>6G5qJ@eh2BY(XJ)KK@b-ps3oIS;Ky1KStN@I2>Y&6x3 z-t6?2F(4bS3EMmGSHp7Td=A5A*T)q;6qaehOQARawy<Xh`7St-+9fNh(1k&(Q&iQ} zSXA5hCU+24m>9Y#hY#^Anqvl$QRix-*r<OYBJA9QiurWe17m@S1B=hQIqbY2KtUPl zjvoP51HN*g1LUmwY&}#|-rWH8Hr~gSQQs{;rFBF{#aRAPEoIgl0yKXX?JP<8F|>Dk z5th>L01A{8_2II!jK31d*t1^~+U%p4&?wU!HR^%|DTteoKYa{(V<gjnRe(=*%Dz;k zcDU@~HiMJ*7AmFTEIY*aIvs<AQo=$<jex}>ZZ(`UccO!Emm>l3XOAvLrKS$^TjFPD z$r>s{v<YjQQEI0Pk(Rfu)Q5(HJ`BsS%7%4&H@F}PjIja0`^^{*ku`p;RssoZx{6Y+ z{l~{hnviXhSI7qtzpix&SV}L(H%V8*X>-+1`@*!6-lupSd*2CJ?$nVd3H-Vdq=p}H zHPGcGzF5S#mTS;rh$#ZS7>c1r10}x(pqu3U?mgcNC>rz!%(YKki^Vu4S9i#1m{9PI zv3M4XnPzwVA?}qXKUo++&@?@OY3PR0HiZat^rz&$k|HfADBqI4nKjt25O3<)0m7*M zkGP=TN$$>H{^XgDT&cg41~RHtwtxmHB#+Kh@sjk8K6%`q@&Uohk_i<4L93Of%s(G9 zD`GHR26so}`<#-6U=>yX6}X5KAW+zK2M+OacfhinhM;K`FII28*F~BA`fyr8o$~=Q zQLew0sC)&(N;Ey&X@$d@8<oR+NU2hmGwKuX0zZTOlQZk$ia^V|ezvZ@Bg$c2)CL(S zvR#|!kNih=IwOaZbSm|##NHNtO0A#d>2y_OZU=Zhzp2URVj-1<l$s=QtWDpm6WUJX zUYexr0|9fwoVAl_Z@B9j)>vEnECk0y`Py>-H+7{0RSncSqchfrwQx3N{%o)w53Lqe z@vMD(z;WNZ`29ssAvoy4M}A4*eJ7JrXT*o9+M-p<_Z(seUObf;%;|hNX_a9oxTz>q zFD6#?BiMPV;zU7lz5Bffl!K`24xlzSW;xeC#q=kGeYUT?LRD#~wl|y*b69ba>C)RP z#o}^}#vw<yTB#kf{arQoc|D_mrX1Cn8CG-m&}PX=@Ak@VGzp;(ckn!an*t&KT=bp( zg|UI=r)Q^gAh}sgeFbZ@uMH0V`*(3ehWy{D2xLF$#i1!%y`HidVW`w9au{+DEH?p( zqw+!#i<m#X>Ero7c67It^X|+aL0Hvl$fu9hy3DxJp$=FiaW|aW4XWR(0(Lfzhd=Gy z?+L^WipO)e)Y)zlE$Py6NcTs)7H*SxL5j+|?AMOhy$CZ6=aTgU@9LXu&{qdgddVIv z%Ad?|+OWId64PA{?j)40mMc~@GQYqqVUgCSa1XLMY;x;#O-E5;r)jGqBA2q(u`LY@ ztk44{D(!2)hXoc<N3ux$89iir_7?YwCuIlfNY&O(ab<S%o*5H)y>D?XbTap#wnPh^ z0-C^m=Zs8%^S)hOvFZ3+P^bMV+8Z=sA`?Z9u1;keoxaK8Y5LlhGun-3QQ$P{EvyC` zx?+FKM2TY2+G_VM950X+O^I1co9Z#it^6$(f=tT0vERvVz0Tg09C-(NK8<4^+<2+K zd?FedA`PFh!DqxMlNHfiFwp+ZK8B68n-8+V4g2nib(77Tk13Jxo6ligwdnAj3SHtO zqZpY6#i-YMgBpw~&T_cyVxQzJ@KIicTNP=JQ_Dm+`1J6t1i!KVI`G6k_2%dI8(QBO zweA2s$*cQ8V5rWILHgK0Wi-e(kaO}%0j;h}!TAzx8vlL=)HYxX#v+4yEy#DR!toPv z40u<HNGnmZcO3W%26(fT7VzjJn!O_8h$nz$gxOc@o?@3Y9Lbozr84XV3nXOkK}Bjq z_C~HLpQVV<Tu<&^@d*$LJz@&fZf5YK;tsHz(()!qFeHvXAs^&8S-BFmgb$5s-te+m zMP}I3m&e@Qw?+C;mUN)9e(BG4k0)uX8rj2O<OJWw3&QD&wT>@HJYMG@_89GUui{>U zYuDSKqX@rX?5Vlpo~rr7FYZ_B%d&n@?LU+^bJI>8#j*a#0(e-Na`$4GsFN))XoKp( zx;^d!E`v`m;P*Lfu0i!Ls5Wa1$>W#LRO3BvD_Z9>8sEqDQ{7U2uHU=9q(%NRs-$zt zsFK7L{DXaC(63~OF^WWGKCVjx?+N`e$#tuD3r>DbFCIXM3;ZSI@pPpUulfu;dmF{Y zD%Ob2cS>j!1Udo1bHYr!%psOZnJ7@O(rO9XQ;bNKI0=b=P6)-=mo@)Ui*CVWMP}-D zFd5sYoj?fVF-7-op?v1~@!ClIsT;?tw=Sl$YHgdK6XAl)9KMM~<Hjh11{*Kvu|L~r zv9#bM!-tz)CI<h>k3;cSvW?2bXAI-*Y0oiIpQ-LwX9con#OJ365<-M>4Iby3RDGXI zSHn{U<KxlDs?yl;kULx{mc@L9dhK#D1*KxKKqt*#ayad?_K^z4%?sr%c&kPn6vi$l zGsn+$x660snRAZ2gq4j~7AjSZ!CRvFo0~K9^Z;WjNz`<fmz507mr%iOyG8Ta0E`ff z7%laN)DjXOO-_98E~7WEuKpxRsiR6P*C0O3>lrju;9I1;Mi{58Wl13Wpb6Qz8fEhS zb=n!}8sxk6Xtbp-RW$r7IH7ng4c00-95O=7y+NOweCHEIh$6n?6x_GZwq5RL?)@{j zZj4kP&?zO0{DWbIX|Xbwn82>acF8g&6PiA8g`!d)`VJbcGSup2rJCDJ<L}Nl-&U0X zR5)en83JDKB2QM|_TJwQgl~+`K@hKL%XSH*WG~A+*5A0e@h8hG5MiUruFZ*^9p^jc zM-wTfrxkyfVt|6GENyw`!u#Ck|MaYmA#B$l2&ozlPA9unM4P-n0@v|3=h^Qih1o%{ zBCqF<C;wrz+u-)AJcrC82qJKO56Gw4`<x(F>X%1dzSac@LIM0R2CS*o!N{FSLV{Q1 zGW06!_&sBR#KdQ%Id<~THP@jZE%6{Jgb5UC3Ch)5z3S?3mHL!Y$r>&zmQ>M7EdXTP zXIwIId#Axs7l3b>Hjy=3J4Kp;bTkn^F%^n3JZx0HSe|+CZqIJ5^zABM=4O0n+vVue z-||#0b}M!pk7>1huNeAG(ZHZReEN`U(%5mC;t~txwzW>9vpBVNs~_IS6vJdv+px>F zb12I-I@nD{(HAb{*_dyMg={<OT9AAF4L)7-g_QHMvaOS4!%<zcZ+|L_*<^_}v+YSG zT^~Tu9r$}_KYdo(Z%1pP+(=ProN|@P_n64ZZkh5|({?t55ZBjxhzTxA-u*dT{(evP z1Qhe!t|q}hu<{X0KFHKnyEt9GWRpP0W(n<(7CMmy5;Sw%(-HZ}o%7_90N-}EP$Dmo z>KBR4mgs%8yt<^x3eha{Y`oSJPDt3)bhTd0Y(DOt8so!%dQB7ER=r*`&V!qXw6nB= z4XKY0v5RYn4w|N)cKyoQ`S8q&M5ozflAr@jL!@!%<zXiOy?GHmI-Wj?xIM=TOVK{m zWi8-4la;FP-TwI+91IOWeAi!!d|p%vw&m4g<N7hnc)76C)HNM5>tH4240kdYxfS~Z z9ZrT7A%OX<u|5_R6c<!gBph80kGwvW&iszoX(o_QrQ;*BTDv)vO>ot`VEW1Z?ve-1 z2&K33sAJh>n~yo&%erX4Rt<@)Q6Qp~^4OyK&Tkv|(IBL~b_DoUZ642yep1h`bVw@d z_F}b^1rC=t3F9}75W}wTzDD1{Qok!TS<C5SS)Qc&OtN52{H0V=K({dz0gh*b`w+Kc zgzU8mLwTFQc2|JaRiiGKY6&<z7E|h|x6ZijZFx1s6P<ER%~~E0mUbhRKs}71%E36P zmoQWXMLtL0yBpwl15FZA^B`J$hB$EE$We79&dvU)HNEM^8q3HPL%9A}3tJ$Izt<z+ z2q27AVdpQ?CGRAc$$Gt20%OHmWgWh<&^`emAh_7>4G!0EhHTYCHXJCGsBHpL5pn|A zLs)ozB~VLTaD7Y`1QhPE3_+FcDR(imF{_=jm=?U#@fb@X&i7Eqk_g+I<|XlZxuZQW zUs0Ao(WR{Rcyr2JW>|K43u*<g{P->cI|holYB(*z0MigcIPJ<Pp}2@ikD_^KaUF;n z1TvjV2+s=A-4zguJd<L#m*{U}#c3*yfjTt33M9?|@F^_o`OI5&IhRx*k8Eb#>hUU5 zt}I~%X*mzf6j1qb$9hMbLSOkYe8b<et@FpxY=N)g!5t2}eyeE18Hx@N&@?6NsAItC z_aZWG?{f=K(Cc|PB1Ks+o-tyq{?>V??KX3B?foL!FgQ*{W<TM_3e|I2<{LX(*jY@Q z$yr7{D3c)wh)yaAwXvE7biuZN0k+$<f8a(z;*hUe9*d2lzD+P|xP46u&YxYoe5rv$ zurFbcxi%eo^f0(%dQ;fawPX0J#aA264OSqv#n<=(qr<XVt_#f-OU|#no?#F;*4N)B zw(}b#=@}ILAfWL^(iQ_Td0-ksAcd99$xKgyh;8ebz(sa@d-rFuSp({8K4-^7sVpb! zGCO1hePTe*Lni-~Gp-DvQ%`+6<XWjyYcR@Z(gOvuvt&hUNM_B^Q>ogJZPW8L#2Mlh zZqOxkzFwwaaW)-Y6<luVMss^T=WsImLXFw9bk{8p{JnwoP#|>#p}@I5<-C;R(5@fK z3UcAMwS2$O9&;46ho_a@{oV_EMrc7JsUKHO%~i1A_s75!0tLT*TLV0Fe2W2cGjiB6 zsosAAyD#V<63+GgslyBe6m4WO+o+ti%tSW$>PqKDamuqNZlTPycv5>i@p<g@Iqj*9 z+kID(%!09YQCRN_olj_&3kL_G{1!r>{!AevGIxf>;}dzcum8t)DvJtT&DcOG5dqf= zU8`^BSt%oH?P9{Wp8)$hau$6BO-RUeQ)g!T_I&k^9GW46iR7{5Dz(5fl$0HQ32^jp zv8ms`k|x?aXxGSzr%g6@pzIE*lNbsoe|`;yVa12usx#}2T5k4OrozJ~ZL!keP#i52 zep_|A%#}o^O8)98+v<(1jn5}*v4n|>5Dx%o6YJbwP#U>N&`WZBi}BKQww)2`xp*E! zky+Bx?)?$jo}!0U==Ak+d#EQb5%S;-3?fiuMNH{;wx|~?*8g}RXmz?vAxRy+`<=FE zl^2bEEg)>6$zlJ1Nv_H}O&n7*La=JJe9yYt(TXfrq|UGL+q13*ZGazH?niepZs1$H zLieP}uMV9EKQ@hzY2JiMdEKnmRvXk`UXhc)y!7{1nC?nH*uWWkA_PvpNqmy7F#T!# zV(MVsX?(>F-OL7wZkaEKN&?M{MRbjH%4GfM<K<B2Z07%mMM>L-PEGub)pF;^UBIm3 zgf-Ge$DcEaJ>;2y4?!2^?kM>@0q^#)@?jb87gp2l7MBI}=Nm#trZDjhnNN%))|^7; zIxi^tZ6qQQav;o|ul}72`e*0lHCNaKvhz95Fpl_m;aR($q|)QvVVLDUo@y;aY!U;C z$??xumo?heQFNF+k$bjYT)Z3`e?G=%y0)<-tmPU=>9gF0q#t^~iPYu^Ke&qzH$<#n ze<w&L=->UYyfoCNhCDkqzC@48#Oyp+@b!4Q#QAdk8C?3?ISL>7AZX7`Bb0!rN`9e9 z)H!tzyuY-VgC|PBvPa;)o2YN0fI-wb8|^l(f`h^3b1MvzY8d`<!VhpdFVjs5^!X%e zi;;=KO?m@>+Q%{~IkP^NGy(Xov?p_c&v&=P!=Z)~Ca-~uK4V*YxA7~(WUv^bpWu%Q z>KwKuUlgEe)`%X5;ggryNf+r1ZdZ%>2wfG?ii+&^5J2-j09PPG-3DUfMh;wMCqe+R zSf%Tbk4mLlq4-eiWPIrYFZoc5@a$`Sd8x2kZ35LV>U#_5X$vBvN0*anx%1(CXYBYB z_2jBux9R<I=&$->^@Y*HvH9jN!qGUMXmgB17(zzEY3v4afQUH+21S>t6xier@e9#U zZyqs>{E~G)wc~aLX06UG+<v*LS}z|8(pfe@_em_}!>nif3ezGd70jrcs{o4Yjs@2s z_~&+qQ~Fde<PMkfWp6ay1RWY?Hy=IHfWzs;Rby7op<yo$a3tgTc$g1ipKSB-3{Ba` z^&0q>-r*6D;3#!%O3QB<hP$Cp)O4eCF!j{qG3a`={7wu{N8kSb0<g5?<$V&lT_MG4 zX{$6I1MG$Bw|w*R>A1k>z~UEg_Q4z+-lCc@^zn7u_oW1+u;1oA@C$a@^<@v+i>wG4 zeRQbr>RLv5;QN?lTB=Z5<6O+WPoazNrfY?4Z<lq5besf;hM2HxRp4i5*}H5^2u1Y6 z&ubpH)}2SsrS(cLbvLK@puDw&Z|xJmY$I%56H@O?7hWgWS%eUHBfnuFTt`Zz?Q3{H z%0<|L3?jxnNn&#`GBqTBSS&&wZ~9<1cc{!aTR?<OQ5`nLg+Zv(L-arwCoSMKm-L~Y zN9e$0*<1nTx4@C*0QBps7qnsQm)x5(PLRWNS)#$pQi@!vo$mfh=vmw?e3M*ydPB@K zqETv_RvXIn0^RU-)90&$>WDLH<+4|c1#`=vy(+knrlvD`7_wi(#h!;yY98OL(25q_ zGv3zMo@V-nqE7-RdP96pk>u?zA|p}ypAX|BBkSEPx_e!4SmUSn#i$okdf6e{NCg2K z-aVMS=bKJtZ_qt&ydk4H36r>3jE|g|n!&e?rJZNIiODR0FZ37}t*RhXp+xcSDyQ|} z0)=IgKQA6=CW-GNwxrkBffUj97i9}r8imnH0)D{;ymQGV!AQzxUM)`&c@O5$Z`WR9 z^yLqG)_CdZrjhPF6B?}9Liq;>3S;zVQ2$a)&Gi%)W7eTsmv#6psm1*|v`W0ZP}a3G z0XzJeblVc;(u&ikCB_>dAL%B)38)%=MyJKCQ+d7kXfaU0a(LYa+N1AZS)u+$_i$hb z;oK9*f%SR<u$fgC=CU7WJnR=isDeHwYS7_Pabd}fatW!7AGiOA7!VfX#@{j<+MkYC z0482Y`hHgqyIhC@>?aB{8orUR<1os1AyMpduaPwrOxSG90EM7QIGquWOcAy^4W9mI zTgTn{iO`{@C0}a~R~JR19#>b#%{UaBB<z;LSeyBerG0w-T_`Gt-=E-44CbtS;povY zFufDTbVmJV(UjQ5lF`)=5RdD|;{vaMvo{W$=mq_3>uUt?o*>}s2c=LJft#ou*ICTX z;c)~~KL|?-h7hlmi%l2VNVnQH>cLA1l?u5RvL{w59^2y|AG1kb^h^RKNe<_0D0@as zD}iVDhhmqW>t_fsFS@h_Te*9#;d2`ETcLAY4(~a<pN*<sWh@``k;~(4e^_cHk2PB% znk<79WX|U?73FW=c9|U>H4m6X--ZP?g<WUa>~5KzaF~$LQJ(_&YMQLnXRc%O6U!W0 z8I2N(mH@T^P!72Om26F!p0QJT5S;fe9tHxEC%0CsyHX+y)z%rCWdZ4!@{i)R)qrui zmF@Bh^Tg4H5UCyBz~A>J<LV~ejkGcm69CO{nun#qpE!0s!Nz>ThB9NxOtA%vMY%&4 zmM;}4GoIY>S2fAZ=V-Y=!>p{)qv;x?{N>zjg+QE!O@3z@?YabPdSAp)meFxwE8Y^Y zbW)Eb>ah3sT4lHcgEFZ#_y`r!%O81npkMS?oeZ)UEhd|pgBiRf(dn$8sV-FOqW-~A zITh>h(EC#+>%b4Cnx)(mH;;76?WS^j*znur7T8>g5aQ1g;fLmI63-%Me6}HB5Roh% zyV<O2&CWDs8eb;nD}Q*n6sn8Jx<J4Y6pFf99ggafJ2q+@H`Cnr$R&$7`4*Wy4Ob#9 z$q_-N-{3P9HQMYi{@kiS5EubW7*%Qo7Ps-RSd6*fw#Nj@m8<3U?dlA(0MZh}@dR<a zXe>6lm-~8_r~d9b@%*4ut-vN2XP3YtqG8SRfRJdYCS-W%o+#C>#xJFd->s%I$Ynhj zU4|o9rp(E3og?avmV*RcDa;0oI=}qwC&Eb0lf_bK4Mcx^aMx^bIH$3|u);ovgM8}V z8Mmh&O=c^=A5Ykw-u%L9__p@G>g$!SbeIU3p5Vb$@z0r-lO8v-Mi1*>Djk#yJAe2* z9wSsTohfe#jDr7Ost*lJjei&Tt#2zaz?#43yJw}%WgSI3={)W%lvu+-<IqMh0`*y2 zWv;R+yzEZ748Y6^k|hqxq)TnpiqMe}%pKAyf-Ib?QCszdyh9<BsnGtUmm8oBX};Pl z%ur*xDO=~lZ^2cjdU10wQ7AI|5l5bm=vp@?pW;O<O^k19qlXOAcF$s^y7t5A7k&)B zkyV9LdQ%-jR>a_>um~tQgep`68*j;43(dhuY@myMS-yNWCx9cyj8{-_0iPQ3O)6ZQ zo5DZdJ!K<PR{`RE4){x+kj&!tQoZdFH?PMM8qA~<;ki{n1Ev7>9a13YcFU_9a)A~4 z`mNpR2tO0f;*W6QyPJJYy(++B0W%PGA86d_Y@uvi9c^*z=GL<6o78Zpzo-Jm;&Sle z^ZNi*!U{m8FW;E(BO_Y5a-)AT_DP=f@n$!fTCGt)?}H>AI&EMh3*c9|Fg~C#MCkpc zUX$RmYtg5UHRGw}vh>Xb3#X46K3%(Amw>L-mDnt)B6Y5e6*YSA*n7*9hki(jDya~~ zWU6*8DA6&v%Rr6Efp1vo@>NO$mFTnYNf?f%<W~i$Q_!BE!_H$zTS8`+-8E5Lbf$b? z0d!Os%#B|y6CfMntG25aX0Xb2au<A{k&!gq&Zj-lC0k1bU`XFg47MFlA2#92LX%G5 zFV-W3jV)3B@^Qgs3eZCw>7PYQI^ND>d82#Gr!@JFn8-^zpVT-WsAG?i{a)5W+5g6B zsn+-Ttj+5q@U?dpS;^k!!{DqQjmH@rkukiL>shgaA2@+UXX{fZ7mGtE@25eJ{?_P5 zaypyO$2FNP?$zdW7|0i%2yq#?L6>^~{xzzK=*##0uU+zWp<<pX&}xGbIh_8{CfMzv zY?>p4>(AOu5BM^VLIZsuU>%7NHh{#Bm2VHvUX2NM3SxC7&6F{DWX6t?m0)A)!u7M) z$g^u*@>m1CA8();PPCO?rF(KPI0~=0P5Vg+4-r9#d6>kL&!EOk&(qr(Cb_b1!tb5Z z-vn8?NRLM1dE9+OUBMKD%b8%?=ELiteN!dK7xFimeBy1P8jeGtJ*ZBcSJJKqoAoWV za|>@QhA9mF%8PU=NT=Ifm<a57;h<yS?a{6j@niW>Y-pk)KuvixX69v{MW<UlbW?Gm zmN0=>t=U#ONc^Y8)Mdae1DJ-YJzMQL-QEAKsPLSUM3_-#RGyg6%H(2KDqMwXPT(1= z-xKsw5+GekMIb%0!&xQ69r(#5pWb}>w*8dW{8FH;`^WYstS^#d{N$ctGq{*8YsT@> zBv{zAC1_<zJ=zq3R05S%)5GxShIF;N<VL~m=<XEt=xo`X1o}R`q`Wc!yLYT<n;l`S z+>40fg}a_=7J45|j9R6!G2=oPW%^YY7)HOyHB?_&&2$1fMy842p+>J)eE@D){7ff} zs?GxHDz90;Fwjew7w&9nPiuM=ORbmMYCfdrmji?l{3x`q&-Z7!)9KDiBn*gYky>(| z&-1+T72Mj(sNRbMBf9Y>sgKn|3}IGS{aNGLmKhP`7=|X`URsq&TuRKYztRaq6^az1 zwY{wJ)vZD!!sE#zasis-nRc)*OcYn$Z*|39Ysw<-mB8UGO|xx7*<shOp-_yAU&=x# z&fn&NCz5mhUr!Xux4L(Wn3(n;;>-2?A*K<GsN~`gD<P#HCe#BGDODlq5NVsNP_V5W zOk_;rhiL;c-y3vMK%OC)j`FKdbX3+1bNybRI+p>CpgAGv1;IA8-d^sQhj~@^^wTw< zGhnyylTWp0*~$-1UPHY%1(@X~#%2J$SbWc0sW%Bst}i1j_A)?*<G<$-<3%V$WIL=~ z>#3%V$8BbK$J6y>`wV~kvfc{dZ~mz~7V8ERIu#_#C6i1mYpAJd+soGSQIT`>Tw^@D zkMf?8c2dVHrnEShO5skt-c$r=^UPu<QyBu??@wfCG}Jbo+TZA10$V9TS5=qM?9ZRY z-?>>!YXG&SbolAi>r+PW+x9iB_j;5q9QG^?NXtp9H_KBCM@%!w7lkdXMIoc`gEOmr zJAAGsS=cVs_4PFO56C4EDc9n(!vo#x_U^DN>BrA{O{>>AuS(%-Hq!UHxkY=ZxG)1g z;dbPjIhsl7zkJo8!e%zl+v$TT_iQXnJOT<6W`ee(N~Rg<B-Nf?h0|D>8UjkhU8U`4 zYjPN2sO;2{{mQfY+Wf@8X0w8?MkG-AOtM9o2NH^1kwM$lZ#&!BD|R4gQ;tQ3EY~ii z=GuKCYM{CXJpnf0h|eVI^8QG|lk&N$Szf<r{jSGTvDE_zR#Ds`!RB2+HMKw9K1u=S z1wwv#7VvLogkAT-M_9RvPMXz!6(Q|W!$?h2n+;H9s^?VZsN`Z?2LK$|eb6+Jv=8aM zEH5>jQrf;&A7TEq7j{yWjXO@=@vAPuv}Le<mIe{y57j^sfG+E;Ii*mT0fhn`J+dux zH>v6!34H?}vq)v`rOi%RP9bIHcECulZ&kOpJC`>2%gPkM$|KyG@C)VMG;-)FtIj8| zpLce`HR+nxeXew3O5--*mFb2r8=>4K*}`6+R81`+uD~10<n+Ktc_WVur4~bwbUa(E zx;$4t#U`7rY>mdEceKnIwYm~{#X$@5e3gvAu&6<CU=PvhOZzo#xp<Rw4Z5mKS<jK+ z3<*E?!xFT{V+!asoJDIKIXbf}eS#==X8rC7emz-QStv0I#uDJnGud|c>PfEI%GZha zEK;E#IW@P*ML;5hXjbX!AF++7Ma$$p%?*ff@#?Yl>lu(So-B;Cu&in!EuQ-AUF=Fu zul&+Il`VHCeH~uD;<OE!ocyC}2*(%VluAGC=URilJn;*fP@SLhx2x4{{FET-?&|{I z!LD$jPxFQ1{tAn8`(~*ZjI;rt5_^@)vTYJ_z)e<qFQ_+^g`S^hpT}-02g8-Lx;RF> z`dzc$c)&@Rs)%l^pqm=fPAVXe`f*gZ6XTE~Q@vTX&AAtf2c05UQnpYY>ruyuNb0_& zx68|~!@B@9eY<))QwgKKNq)!gCBbY@hELh(q7ZJB8OtcBs~La{uN5%|%_!sDCbdX8 z>jYhuAp9+`X)e%NoYEdhK>$fHp9{#3v>e#Y4^(RtF>;^c9dN$j$&qx8W&QcuP{1nA z;S*JMlh^H)mH*pw3I0aFezD}x-|Zw$_yjrHVMhbT`+9UGWt~_CkOG_#l-NXe`^P;q zw1c?CQ007QwaQ4L_cDQyn5Y{$tztpaxcfNxkJD=+)Va8&duX9;c+QrPmK7;%d7?Yj z;;MF>g9=g!Lr3H70azrBNdd-uTP_@UmyY*9qstYLf6$NmW~+2B?A8ufU%0+s^MCW~ zYU|s}06e>c@i)%3-y~MZ#=iw@IZ)V3qY-)iX4mb|>1vi_i!L^eHKK0)Hrz`IaAopv z3msT+i>y^z{eRaxI0`A1Efs*bqiDO><n?4A@G`2f)4q%NBGxP+rR;HW4VFi~8kn%L zb4LvO=lu>d8Fe&Q>BwHbKU0A5WLZD7GDRW()&Dt}_jdLO$o#WhfZ<ayz7X@-2qE#8 z1U>{JMaZ4`cJ$n|pG^zF96PPS)%Wd6N7ei3-Te#yda_h!APTSKv2g5QOGi>rZZbs@ zo;|M3<!VO7u2cSje+`6Uxy;CcgmV@IA*G4aL-e=VGvp2&@Z50s+cztiqNqbDsBt^Z zfw>H_k|>+Is^k{FcXoDUQ+$AtQ6|fw{tcy_r0C2$+NIM6yc=2AQ8jZEvCffJDE*6r z$SV;Ic<OZ`Xzwt<8Nshe8z9V>%xdmvs0x5P2pu{YTQVJw$*K}^p_qhou7E*Foi0c< zsMZ%)!9PE+p@TJ~Ret<n^r}f-T%dP5tRg-@nd-9IQHYH6Ihoc<6>B!z>@Kc>kJ9dN z8`_FG+VA0l*GCS7qAR+*hJvtL?9zSe{y8LF;u`hYza44}G$$Q(+?I3m`|1yg;6}!h z)FSNQGhIt#B)|u*8)fe7P~(jgT)e_%<j#o!5*VMyyBCISY5_i8LZwP2{ygZxTy>|| z#(x9E=H}@;YrL*Iab@+(6UNj&d^Ce@9d5Q4$jT-2N%p(9^^7lNT@i&?mkfn(CCDn{ zd+wmg1Xnvm6sWNuy{N;ZHv6ygz8wd2Y>^}vso+1KFnrPs1|r2YPmgk;uALYhvV&r= z#5ka_9T{2_AcI77+T2GrO&@k49iIM-u*&H8_&b$iIu4&d2v{RSCMH+uZi!vLdJN|M z5Hq?h1b7&Z?#@zoHu|20d<=M^aOKq6r_z*Cb9fKm`t`?e)-A!TuHd4Fbc=9Oob}SH zI~-Diek$O1wq-UdG$5&p^&C~^J0I#@fg>OCfub{G7BaWzv=&OC-I0#{QazaEg=L-z z%m5K|K0(&Y<BVk?*SEE`#8>@K7661|c@P3gbv4AmmBS<0{L2&H$9S1wE2A>XfKVu| z%(x}fouqkfdJ`PNsl)l`;z6{vbba8Xs4cQKz1=+gY3<o&kyAPDt4D8mnG2Akx+w;2 z9?7q9?=WBzdMV)}^f+K2S%CAf&)AN6x}ykjtNT=Uj8RK46ENh`MAW^VwG1v2Ta(=m z7gYf$h>vJN7A=bNts_}UF_l#>o#e-8pAvUwB1_Ja=1M8Ff8y_RPK;^B7d9<o3}*`A zEX-kc;x=16FEyd71?dckMqQIK0B8f$tcj>r!8k^l5R}Qk$iOz7`)*q#<yavqlJ2&u z+5w|Vw|Gz7mF<eUN1lUDJ0c)8kIC0LDD_%!>%elRm$lj^_4f;EolAD~VQT(c5A_dr zC^}P4Gd`}w(Zui1&tbb4%H2(pgoSZ#Z<n<lhg%NZ@y|tgXCLYKHyE{KYr%-PI1o+n zH=TA9o=i3S#5K^z#PqX*4OjAGsaIW92{Va|y12;lh8X4t$p{<?Q*_j_GAh^8SD7}< zH0hk|Z3wGbi@f#8yg&N**LSjY{BAj^m}X&i4lu%KwU^Sg((bVv2V4ZtH9@w(344Kw zOXmudKQp(xvDcO$lKJoY&U#O_M?d2aHS%2Ln#(1^P)GPEz<pa+Y7K@GAHm*>&4TZJ zM`UK9fj@<F7}Gn!(V)(^JS5)f0L;h=qU2~VlTc3%$YG{0=BZaebc4xAOsd&>%OpE0 zS?uZ)8@F*Ro{DQ{>xl4SMFst{HCz`NFAk^b86!CSoEi@u>v{!iDjJOQ>yYLK45$k+ z1f3(y+@mT+!295#P!l75P}g;K`gGN6B@aL3Jolo|8$`^pwEtH0KPgL)#-Q&OO{n7o zvFATAfy@wy-oLFMKl)n1T+*}hI!}fp*Ho9-o(~~lqkJ-$Ip&KJ2_u1avV*d2tQag6 z+=PP=V^UhOn!yI0ZxBn&Ttf#9eS@p|ZEgql)9$;(KLALC{fK~6Plk0?RZrJIOm_SK z1c~YXB(xNJJA!IT6CeC9;@rPrcGm+W*N+<>n~(#|D2H_Tm_UESoqVToflgld?jWca zQ2s$x>of$#=kXFia&r;MLog?SeU9`y)^Q^C`4=pTmkYG_m+03Dk3wn8{{TMG1Jh}D z6mcQo%k78kq;5lxwaLIx|Eo$m(7^cgW~j4g5^n4AGXH4W_MPbeAnV1oP91%{7Y6<P z{ck`BC)b5U|3(b{yPZs+HDh|F$j|4ukQhPwqTv<eSbe{*p>cwqeQX%u4R3UQ5_kRm z&z{DR!?cmvD<Fxd|13oylE2~yk{{<7;lxyX2m*!{y$&o+(pPDGjc3$aAVWj@d}=dY zH6cxiA=!VxwzgRzT|J+#1-xL_i-hD6|IrwJL|ZD*-qsh|;OmJ(ak}>)qh1L+t+eOe z+hBtSTFtqeb!c6Ri2vw3{uq*N-$VqY|4{@YC@v8qt)(eFZ0$2y6QcUBiLtzc0YePt zPUgQkdn{<TV>2kpwts(7kPkR_XAJFCE(!aeZOg?3YS#JAmP-CNWbbB|cQSXws1$^` z-Ls)b@P;Hd?_Wf`XI}ui(EHo><bN@;{u4d+7wyUxKi6RO+t59FZ3^u!s!;OcD`UJ? z-o`^=vw3M3pdFr<kgn@3cfU7pnmUO8{bm3kxN3Eg5JCcj1JB~a{^&gRH>uW^8^@ek z$Mug!hj`d5R9w{>w|<FHUrf{D-LclDp~(7IuK*Zf&yVTVk_3L=j!2;Xt4f3kB;V}& znB>}JwP7f{Wr+wch)QB$KVEWZTw7Y_+?htx#(S%Ie6(Kwa75z%t7V?vkgj6EUoSk0 zrLq4}{J&w9hzXD_Z3uLT8pggS#Qm1NrW{LT(WiCq|6)HrM*ylZtOG&R!MjIJt@O{C z!s`Ia+!JWdnYP9b{WYE&d-^x9@Oprl5L;X4JU=<?zrhCoesC2LqWVbQw7T_DR#^YP zxOcWe{Kw1I18Q*lY5%AkAtWdjupllNReN0Pzq*B<5Rn!0Hi7!TI^@5h+W!5<5P$MR zRwMdrTT}nXX#H<w&i{Hjh`5jefphNv+razJf&jov2LZy0<vkzTX!%p3|D&*PpuOIJ z=@9e3fb0HS1$l8md+R(|6Jx{vIY|GjT7T8G*I69r|0?OZ0uex_tas0l$NFEU&A)3; z)LsDhe?7=k88C^J8}0l@&mTF3NLZ(2Nmu?sq1(s_kO%$$KZDoiFXmp}QF$n>MI2T7 zD4yOkoB5cdxmJTOqK-g7t0Bq%zt4C;1<`gMwtT*3f};t%7C^Y9f?#?!$bzl1iiW9C z$B}Xa**!X<N?f0{rgaml-Jj8F434Zhy>|=3&`CrbUjdi!?oXF^rLVy-CW-56u9$<P z{(D^}+*_Sq5<5K96a2v%M*F)^w;Vn@#BR3Qe{<r_3R)0ApP0wqo~}ZB18(r5p5HTK zlXdjdAx`n4t_*CR<QzD7J)ikaWhOzN5c&>&W<B;JY0G4B7ltR(DunHi{4gHJ?2OAB zCy=^W-n^@q3Sj=>5CDl3A#v)pO)m;CCWHS|wbK{ejPr0<sc{cL)c%SmYpgc$1%+mV zm;!m=Utv~uw%Nuj8QY<bnjAtWall@4=LXz$uWgcsy*c6jO8AlMZX8lQW-M*t0ec>e z&n4jTbfJ<A@PiO~I9sTVG|tG^j9NVx^+x~k<+C}}-_&s?d48}{0?!$FQBC4`&(s`A zfIX#UwRNe?*5J^<bN@5O#g*?Fb83*9&1NgtWJ+7seyZPat;mU6*A@VKd*z%|K_&fV zh<ASWg!IHgr_)(rvp00-M4%H(3IL!ALFUl)zvT>UdgN4tJyla(t&JsDAHPm$BrvuX zZ!iQ<8F_vj!u^Gbv+E3#+Uk$oqaXPTM0Wr<H!|A^2HRzEdlhYdea9tNpZ@{Bw*&l& z6@ouiit_T`hQ&Tx{<a9=!!cV1?Ja+=GJu#S_TW=tjq@%(nY#kONDsGzlTc)vIJZ45 z97d$!mIKa`UE<YvTrRT#;tHjfC-SItn{4;H12Cg8q~t6%t0|mLmL}^@`=xV=O@e4; zcLq|YbM<XVmre)JXf$$R?(Z*L3ty$QEY_=jtTrpgnnMCj)TyPcC}sdsOD(jEBQT@k z^tK+e*(h`QkB!e`Nx0J`h4|{zukuRpj<KY7gMNWO)Eu|BIoDLHO>P}XQU2U7;j&E? zYG$MT49Yu?(lMf$t1KlF#Ziuj<7$*jRme(}@~HqK#1WPI&DAdj0Ii`!Cp)Xb{6XFP z!NNnwZX9Th%|;fJM8?DKh~D|$c5imjhiz`T7UlSQ#y~_BfF>}Vza~nc)lw&cH5#mE zlBm+;C^6g1K55$>81FfKJ}6g7;EgZT(&BWP#SC$|S_nRTXW3Hm#ET*H_FU~SV46tf z%Kr0kEG3F?*+{%S7?I8&o<yBLmfWEjS0a}$zat1%!qpu8e6xFESu#<LXS$Hq*Z@G= z2zrgzxnFRauawbTtp5o`CVOA>99gO@Pa&7i5Nm|fh=?H?b-g_XN__GUMkw_Po@_8$ zbKcXo+wIqDhfn~d8y_!Lt|fHY+U=!v`0M?IkawKC14S7D1cFowDw%r6);Ar!T{jcU z7YVuhx{RgsqcXjVBfqS3Ng$lxh#4=px@0)+(DRI?aO94nE=H<3k3E(@S1o>q#FHwB zFm{<VoxD4IzCKv2*4*ffCNO}wxsyG}%o2v4nZLourGx2_0o3Su#WFh61bFJRcNlb~ z;%Bt;l@1oa(noJEHE;h2c0feuvQ=+kyHv_G;wn+!b=XCXoIRI1m`?GAt8vrzhhqeD zeynEf`k*X@xSXDYVRITYcDMsFwDoq11zY13JM_&+qHrOBi30hv1q_bQU&043W_Wqx zzZbxs%*hwlZ7BfwE|C^JPTQw%tfu?lIo(bxC`Fzj@fAzg5foc3#goIq;yijAI2yc? z58eU-beK*SIwWv}y-y;nuU*WJQz#tY9(mAEGcoAWSt_Ie=$s|F<CQy%d5>Y!Ki(Hf zNJ%Ub;O0xaCfbTnCIKh@3ph>F87~s^Cjm%a6e9PguW|4HM$zhU1LuZayWj6)74C@t zj0JA3z}JlHpCn&Zj`e>o08pqXMgN0B)eL$A21l2|?nmwLZwgh?KPXglMKl1=PR~zK zCD+Y%w|N^^8>?I>1JP0kL;}Dn33!iRvY<+lUrGu)lb;dzT-vc(6KU^~g%Te*4Y`Mt zU%~DVc>FW@qALArxxHX!^T&4g?=KEv=o5^HT!ZQ?gv{4hr;Qc??gCYs9lsFpxpRmE zZ@Jnk?I!Rk>P&BtUps{uC?EW%Kxf6ay<!qWd6?85G>)ngV#yyLPUji(y!%kb#*%6J z6@QXl+3(k+l$=7|biRlX%mU~gC35lTVYZml)og{*iD3Zdj$nPNC8bs;BaKNN9aB6K zVnQo`))*mW<mA1xD=f@S^igpVpXx|i()*AdDamQd;d)GeFq--^Q@L6_@YaoQ?5$mW zy~Bi{Z0vincc)yws&W7WVsoM$3fWAI9?45;VgdZcY7O|vQbYLK%&?q+tJ5nqjrw&m zadOOMpXeC0*V-eV*+?&#^7qN$FHhwwt1CT^OUgqrhzS19m8PC+d|q{PskFvCCX*@o zzeri4O%;w$n>^T~POr7v09n(A`L7s4-~Y$gI|tU)<@>`;8as^|+g4+vvF*laY&U9S zG)@}Zw(XqQwr#%qnVIL_x$oTj`}=I2wbxqviw|a5)7j0^N$Q~x4~)?1wdd$==m!8y z^(Qv>Bd4Qf-)Q@>H9u?57N<j&+0ExX+0>u;a(ESN7c^>AUq{qRv(sJ(FzK~=X;Ph! zIf}2Pc1MczJC36N)Ipqvka`&ogqkpV{OHasf>HW>%0&jlsJ`s_g9a-+WIW?O+yBwA zgh!{<OYD_G+VXH+uS)zYAp3-Vxl*NymVWUybMZQH(qD|W30cNm#)EP!sbsKx7(>cl zgL{s<Nmkj6Aye<8_+;a^Hr4cd0^VHy0CDA)2m2zEZ4Y#EB{Hpc7c@X$E`hymOUaLy zE1)XjcOB6N2l&I?58h(^lHyRWSjlv>0?@?OEbhTUNbF3Gw05ZZl-3>3*Y`fVTkq%N z^E^P+Xegdb1V^jZ5dXEt4I@uB`Oj3I<l&U;KD|!XAj3|Kfa{lLyP+_Ou_XD|pAk7( z-fs%-AELe)6<i4qkXkBr<l`WZrL+W#ho?#zLEmp(7t-i;WEmaIMexjIE8<I~kfB;H zwx`a0Uy!2Om#?GOI1*lMyZ^EG+9spPWqxYtE&I3PE)bOcC>s?<g8}LBnq_Bxz@U!< z(T5^h(+88Xihm6X<jOI-7lx=FEh&g{3C(#J?+(MHmJs<Br33+1t52leaH`M&r1TUr zgSWZv=k4AQh)HZk%0<T-)?-P;X&B5ijfx-hbXi^3!1av-q>Qi4xa3dZF-E_p`5qhS z48`!_mTa!8^y0Gh0R}WBFcm#tBkgtIW9qE#ZAjmMb`>HZE4N8XgNMWI7jxI)oK>pH zs%=4&d>w#^`et!B?Mj49hemtKg>U*6WU6s#C^jb4&kQw-h{LYzoWyQaoFx{|r;SOY zRtke*G*->LO*xfopA*4GtxUnX`Nn6Jr<&~r88!(w$6G_*ipk=an8Dl%h~m=gwoehY zRvV9t0=g&m02!sVn)z;m*O3Ami6C1@<Y$Rn&Q~OMw*IS~@u5InD9eS$CK8`aShEB) zO8IHP!!()5${NY#aiJrr!06MEqVCyBlQc9ke)c+dt!jQ76@)|qFht7abM;H(#?yd2 zX0235tgL^9UXvxpp2Oy;Xsh>rB*}bc9;fFMx_>e=1PJ+@M1oPf+v;)(qxcV139a+Q zd3oA$EUTB3R~#ytMYe569)irlQi`U(4!_S!;1t!5JAzTIZyvv@@eRC)_d)uZx-It# zm=qzzUo~^+b(fsbd0b?i%X<Xva#|-0c?K*p^W67VxSBf$;%U`Y?)w9g^Fd~ybR&N* zKJx1uwyR1$yE^Y@O8I3^h~3A4U-C&8zS8&ZEYG*<Rc=bpfq>>^E=4u~QqPW36qr)< z`Nc$SJ>3eHC$(8*v)-;sng<Dxm{0-nt#EtLT8~Phpqz*@t%-wtv->eanX&NkW)9^I zhEazR2rRzc>X+IP9%Zn4g#{0{!$~fR9vuE7+7ygv6i!6wYerkihbR(@Y)FB#a<ES) z6FsZ`Ej+G`EiKTluJC6Ni3WZK#EmVEjV*Zh^T)FCrW`dx{jn|O=gauVhllP)s}=gH zSo5w1ss&{&cau02!KMrv;(R>yEVLv#uMAaFG}t8ztfmsjq&j_|4Bu&IpI^M*Pk+`4 ziw22hElX@#>v?U7B6aUul-GDWl-p9`MKwK~EyYef5RCigq*A_&Ym?imDTD=~0W!F( zY2qV23?>dj9{8MI{yfk8uq?+HRk5YKK5}I#Gt);^u-gMUexwvr+=-_%+4kNscW(h5 zg)WF{xmYaDXJ2d-!g%HNGXb*v6H%+_xNE+I42>F{^6xLU>qd$+b%iJjFjNre;Ba6; zf{nzjD9~F2_Ze|SdODLlcPEe16jVyTRjLB_^5V`y->5%IurvxoiSFhJ$i;LAL2f$l zowy582tE4sAO7%Zv$$D+bpmu-BQ6|V1*9U$L$%BBNc4M&igk*>%d|Tbdu^(}6CFoI zJOUxvRL+3>0op)R%se>aUL9?srDRsNpF6;bN7aK~T`97R550-Qoug9!$jF|&Kcws* zcU_iMVe;L?^kG8C|K)Jrmx*4J4K#mU_dBRVP2WUaYJ=bT$}QsLH+H5_hs7%nMJ~aJ z>QCiH!maxxN%}V8_PKBUX59;lD;wTYe~D5Hy*__3l!cs;OXH_?!QW&PC2cX*Bf8Ce z5^m*e>rzFUx8FPA@<PVg?e`n%Q_7$q+s~;=fpkgroD^~!e2}oa4Z=0ETlS1Bn<_QY zej2}AovY9k3PGcsLJBb}{Px;hYgfe@VK~Jk?xcK@2Z-3i{<c{_QMUE9%jf}MvlisE z2zh=dYd~<VQ2TAwFTlosC2pCyOtl7T-HH@)5mH@sA)8#f&lWUZ27W9akva|MvI+r9 zSH{}Xmf%1q*YmK*v$-jm)_j-Ak|#ag{`xHTdpMqUN}a+1=VdZb@Q+jgU>4!uwADsB z|7Zp`Yp$?=n6W)ld(IW9v%e;?Lqe}pua-K1P_Jr)ReqI+oddQ?l_p|o-QuM9yUG>i z+3L}sddUSKPho^tHrmV3Xf|qVHtVz*bLeYqiLTj183sKm!vqpT6sywpl)tMVbd#UE zf`xJ<$IBHYEyO@MFF+K$;lYpG__U4D+<eO^u(1CW!{EI%!<K1ADRM922Jvv)%I9{I z$f>hiO}_iBNe?ZE4;BuF1i@K8Cn;0Qup+q}KSl9GBVP`=32_}<BX=<WaMcsJw>td; zgavf`-f2s|wFHlspldm@8|`4#^gGE{^yi~@B>Y<grBg8H;|XDu(<f_7J>ty&n%!vN zsFNB9$ag?cq9`-}`m5=ZDO}tEA#N`1dAd-thRghJJ<9=(#U*jFE7ARX_U~z2MUnmT zo11{5tZaGpLE-`pUZ43~^C{bF(93!0pkJCH2J~pG?y&*JNFwRLR^Q<11ZoumBnrBI z<cZ!vs*vsna5y;h4&eJcy#o>_fl^6!h_`@i>G3mo?ibR&{V8~Cw+VPc25KOxQx`f) zu{0^wJ5i$sNJ5D3m)ZPUaUQ1hW~c{=6hZpKRHdnv>R3NVw&w<NTMG=BOuc6|`s=oP zY0A_X50m95_$qj)mKh##)vr(_%DdTt81)IIo#*fHTSR|5n2a!?YU+&=+BwFyK$^pe zArIC;TyEo@y?frBbdRCWOWJxr-;h8<dmgRS71+to+QLUZ0^&8Pn}{cjy6q%LL0un; z)yrh;^vhHWz_=K78R~<2pAo9cv>MLI4ExLUHtE23wbOmaaAtdp18jcP%C_7!hPoGN z!Jlwt;x&ptWq3s<lxdI;mNV!4IoO+pueAlagnr^;sXLz#qXpF-*7WjhmF~kfdtA~v zAFlX)Y5JZ|d*Tqt;(^B=kIxWsZ=*XKm!$>eGurBYE#8>0*65%Y?c<&NLp;FtW6Q`| zvrh=-SO)3f3II@fjETJ+>xwD3&Cy){#G^)+!c;9#@<rxsD`@~(t=Ns2Sw9W;@$#{K zENQ%}6s*m3`%6r@IdLp*uExa^kNpwdDc^zIb^!=WRPZ?ew$9*zWp#R=5e9MHnSm!r z38JdKIPTu26{!0ZqrgbR7>}eVIvH-g1vQ=6Vcfgrc+6THwo0;jnA=|dAwv3$0JfX9 z5X7N1dcfx5rmw}~30{(B3EOQpA{SfIC{g%av+LfIiBd@>*~&v-`KLR~&VMA6K4H9T zjZT6uF6ntS5_VRd?d)?PpW90uN{zJ3L~#5IH2bpt$|JOhR-wSH&=IK8@OrUEU8S`0 z@YUZb7`f4{k9#<s9c>q6bfnVjVFK*uKZFJUu>g`tQEbrl0AU6+@_|CNSC85Pw-q}( zfjvo{JG{)rumt7A`ms?EU0?#-!afV{)Tby!r~6rv%Vp=Gh!m`1t0aa>+Q|SIF(e&` z7S}_GUr~5yxezM@Qi%?^T|MH#F`q$hO>ldlM0FlA9jnaxA7Qu%%&qk{>kPq(b7d(Z z&OWc~mI_fQ9E0v$((g@Rhygt6ZA<J$`s;eaU_YJv!W@~LBAFrY1-MA`CWV6*`1T_d zvWfGtXuOHML!qY9PzM5Ncflxd?cVI75W)=+9*NbG^ZZnL?9TvW-Y<C)F*?%z8nSlx zGs_S5Icykzj@v)pyd)Q8`^K-fqu3F`{h=u>pI$zyJMO!M<nkvB9z?{|1>a5hwQ+*Y zk~>Y<|DB(G0Kt#AUhA%rLKtI2A$}~0JET~pg5Iz;f{^u7Nx)bp(r-9oca+y35CHHg zk4}?iI>i~+d?9#}1U9(!?o<n&MC}Z1W;$;~-9l4XHknz(!&-CPc-NszY{KN)<y6ah zsZ|xF!-HMJU>t0BA`x<+{}!yN*%PEEWGZ9<C7r>5e|xr?=5cdEtAm6_F1172$d_)? zyVT;dodBc4=z`F@-udQTyN{I9Xt?o_N<NPp<-EYd*=qXj6<X|r?>hkv=hclZwy_7B z0U$9YPS~WFzI{(;NI+WJ1r(a75=^vS(M2&<ilppu4z~)|+rQ6JcpQuIlA5!l(<ZpQ z?%}62EI7$`%eFza2nc0m%Mha^ph^sphIYRh&Wj@S+Kq0<!I<mkc~MubrFV!RTB(!o z$KwX!o_n7e_z!njJ!8f#F$75{w>!bA@%CRjLny~g9D@$rMP8&eco`F&DspuO!f8$Q z?eWPqr+OXgWR=5bIK56(V(Pt1`j_}C7Q9((bYg{-wTD<?AC@D9=xzZ2##dt6gMv{F zDyXs#77W&hM~FAa`;3;$tuZ=z`TsVvKNF!0RTm5q$tG#U|M=QsG1<tlJCYVa%So~L zK)8bTko3#tp4S-=qTfE9L&t>sLx%*-Yt{{q$(UcXg|4#;Xwt(Ver8jNmV9o!gh>?r zJl8Xx&LdBdp6*ZQH<DOOxB?S2TlD@*hdfTe+x?~yb1cR3_$38w^C#gJn0saS_sK1j zTH{4Ho5Hpn>R1_}&M<Tas%oGZ3*JP?MdIH=O2v!wPUI0uV3a++rk6Ves>=267UxFX zHMlA$@&xhM+P@wNnuL6~C#MIG9x-Sk(loGh{74NMhC|K*%@jqqmn9{<LgFn`+MyZ$ zaN8mYOF6{Q;N2pc>05>Nu4_P!DKQ9fi8dh>Sp?;Ixs^vWfMO)+OW!As`;O9cdV_sD z-2IHV4@Uw0X~Ha(-U<_y1D?5)iAm5-i#4)qwm@FKMno`=4AGcTyuKGX0ACQl(fm@0 znS|V9NGKm7u`9xU?!=vK)B+t@JUT6NtELv}_ILs&67l}0=aYV`7je1vyd3`MZ^%8o z4VH!4Dt9AjQ3@S9!QQSb^b0kot;ay!4*OU^x7F<~Sj@_0azn4p_TS6zj~HyBi|Euc zAjrs&XF@2BV|RF&D<DA>9br^{XsZ92}Y+TBKR3#Lyi#~kND!jL%=X<HgR1q)+% zcU!x-XHE}?qz|`?Vd@Zy@$7&$@?x%^Vm*l<ANnX(g<gTlO6Mt$F&+IMuJP~*|6>dv z&?623zmL?;<ISQpkWyEFOSjAuCZZ$y(TqD98DfaS7sVyPQ)=OP?#d6tu&@e^++;MQ zlHo6`WD9wX?aF;LZLqd<oxrIm9CI_ae6K~vTk3XwSEi8>eVqQr%v+J85du7w6*G5< zkIJm57afA&H;anonaJUf8X9v0sQTXr4~B$izx?_5(zA;F^T)&2s0@n2O%#xP^1n9c zzhdt>)L`S89AiHB1M3iM(q@<q>b%WrvJU&*{guZN9WLgI(!tX%uApZ49D1C^xTOG? zVTNd3c3;MQQb_|{>|1QiJDeh0pw1#3zpas-v=AOMi-&h2#+%;*q}Jq&iJVOpczKse z&tO$>q#K8`lq_ks%8d#_sy{+;f=i@$l}LTqx$GK8609L0;kWbw0WP)g&|r189k}e4 z8uG?ruf=vvNO*Q=LZzs*a6+8{-O-@j%N()NJZu>`i2iKHQ7Y`PAr?aDerzZXS?mRZ zu3?kTEB;sLkOys+Lar%5yD;JD{xm`}h1HfgB9%!JCDtRce=M93ffRN854-xPw7&tM z{63T2befyHuz1YKW7L`!uuaOS!z#_=c;`>lLgsGP)P{&A^Nfs_ZBvSQG;CwnWuoXl z=wX$#-3A$y?bIS0%UuVfq+ce5F&tk()O5!4`Fo&xlY>cbCm7n}8jXGvRGrOyjE<|# zrJu>J6b9sGo$ETk$7t0;rWf6ieR(eA9o|%)Y))Tqtou<xV}0-dIU*vn&q^;$Hjx=^ zjS_OMV;gs!CfFX4PS3LI5l!qf_p6Ce=<9}tX*+g0p@uF6F)fSFR6EmTkTucUixm)r z_>K@wgElwjs=Iv7yNptJ9kT%X>OQxlfi({fd+$xFQBTCOt3~&WyP<bRx%DVcb0cHB z_cMb8eJdgAHm&*{oebPee#rFRv?7w4ezE8`W|A{TIoc4{UasPv9ByIiZI6pelGa+< zOw(=>@I;1n6jDwK$&*(^;nDK?u{NF!pSK4|R1$F_Pl7(|T;3Db0r=UL=S2sbc0OBb z<&?NZqVU_DNi?<euHRRVCMBDTX`Du2tELX+(9rE5<E%lMcouBkHWy_lse^5Qp+%eh zJh#{ZkM~VdL>w+ny2y<rJ$p9=6bq|GZ)}&{C;Cf<t{0IC6nNG>`rXLQ6P5C~`v$1x zc<O)Vl|O_xIzk0SM+ovN;UEl?YY!%Vm0v;Y**<LKn91lXPTC@exI?5j)EZZz!E=a{ zR!e7mAp$$UeKsQK#Z(dB)^H9GXBU@@Q!AID)~Yj2BkB%y_~F?$q==(TCeHw_`J8wn z49WItyJ&v5^7!<<&r297C7fkQ3jd5X&V;&!Kifgwe>+UF=S7p?(R$y;rDsbKF<=TM zmryFp0#6@-!K3S&SSUKC@c__H2^yC3Md+1V?%Gk}N4l~()wG)1k*|6WRy67p1Y014 z=w7<Tb-(FPae92AMh(XAT0oVi)^F#9P#^fA)!s@0sk;s)BG#v!0V-cD?~bU1Xvx%K zjh2a}j70T&%36R$TpnS_YP{!_Py52-1&H+bv1ZzeCX>VXLx#ga1xQ)mg%|mAo~)HH z62GOb{U(>CS%KrIrrmCK#w}8dC^n_Z-{6HV?6}~?+BbtIqw@in>*#RZ8dZjqebR}& zw>=+VPM7Pmt4*Y=a%6@bqwkORK^Z$V^kcxUb<P!>3f$=y>vR!Vrd6CjI_Qw|HCfEI zc();fFRIz)vFBwHKous*;{wyLav#kVGR6%P`)c~9i^Zk`pTAXgyZ5!GpLkqcFh_jm zNjp&@FCg}AQ8G@mM8yXDJi@h{PDIL~ky0^;o7M4%eB$9!c|Doyj`=4BSi_xA+v12! zu?r!C1V0NIphZ!*z3y2L$FjDlkw9cbVe>&@Y`CceUGHOdoGh}0Od=ZfhvzrFr1Lro zEkj$*1xc$<Bh3daagShkq&KkXoyBOoL#SBTN%Few1lp0toeMRMHBfh35uy0**UM7d zGMqccKIghJIY*vehn9uj!t_Qx=p1xL-`yT_{MFs?etilOM?50e;otot1B6T60blYA zZZB|!AhH?mF0a*NcGzjB`Rxy2{zm|fa^c(HK}DRHp^Lr$RdcM%b6?TQ<y|6<3ap8c zPZDtQ&T$}bTXhkxc3YMDlJiq~d}=0OT&2+6CKZ|Qal?>Vm{i;nfreHc(|C#o^`lfp z!iQus-QXKh4Fx<bL`$|(N|_WI@e*2{N}>`JpGlxr31Kl6i96*%t5sV`WGOgI+#gd5 z4k^=>lEwMklD&zZDj%la=U`BAli>5j3zOyM^8NXki+nswp2Cx05Zm{Q4@WCyl(VJF zKe+3yM1~e+KbD8q?2Tgec7KR8Gaf_1Es+P=%(!+MEHzFB9nF`B{91_$eg*Qp9is*< z_G0CCKam3(Xe`iZpr0?|nQL$bphw|mxmu5=TCU^=xNDKENbQg7ldZ@;-`D8r;US08 z^fDc<+GhG9+d4iS&)ZJr(`%1SiEP3`5{uvWc+Zp@sUI!2!JC-iDLiI$3~FvbIk1zJ zerQ?0JDg41*y4&+4NM4a;Kmz4BE{@3Rxhzs%iZApMdAA;lVVI;S)G8d$|f!4MCm>t zW19NJ<vt;jV2QGv5U%D=!1DH+$aidPXj#lpXB<Rj^VW96Epaa0VmLdTaYnRi<yjD= znYG(y277oNv$1x4hr`TJsQZkjr3-lK6(680I~dP|5Xy<SJ%)^yS?b6^1)y|A3j&24 z@!MjyVGF9&M)$B`)zV>;Lo!2xbYrX&4@BJ9>B=s@$Y+;WRc#mv{D}CFN}l_3<rx3H z^&l)fMsuoxJ3sC!7_|9ctx#8jPa0kVSPap>P8KlOxH!z!OBd;I$`wL7gWMOju(I;U zM%INjG~dqBI_!d=qW*}^y7!9XVLh(4y$938JEB|6WC#=0qCVX0)`+i>=*{=h&L0lN z?hCIjwC`qUT^6fQi6|%c;&Xk&jAv91Z})u`qUHFGkqde$G8#;mbZmsL&}tBy;n;vX z>}S5nys%yFUa8YIwH&#IO6&`LX+3dp&QU#XP^zcHwz!ULBhk}%PKXdwBNXt-mSn|J z?DFDr%T?W$YubJB>K<eA2sgj+`x-TiHpiuz1q*2!<L_>9oc>z-8$=A472|o*{p2Kc zTAC}fa1i?WY2IRmP00TnO1SjNcz6a|_{Bo0B7Re$tk6@LPD}DnmJkBUdJyL~En)VY zzY8>e@1MbAzT-P^)!GX&K1iG$;`HROjQ{D7p+%yBkbS>+yqy08u`NUVyaF)=m&5Mg zTdi8QyL=D{MsI_vX6tuBquQLSiCIk?($9`l?;#RITlvN4NEGLYO^MCeWWr--(NB^P z1=WKV2wv!bf}}rY82GZ0L!Nv%mHR@P!!8^9-p%vl7v!m)3IdHk_czpNMV1lVCj{TT z#uI4ZM~oO;?%MZvzJwbmGTIVU1q*K4f%O*J6Se1>jHD#*ji&%S-Ic=8y5!HvEe5C& zW>=LSbu_ifszMU#K%|u%|Ak(?zLu!9z7oEKtktVW&?aoKoOnvB;X6Ydu^o>Xk>lq` z^;pT|H#`lUb1Cyvexc5{HfW^ZCCB`mE+p6W&PTX=RPf@9z4Epi$ldUl=`ObGGJH=r zXqU&vINvk)9E<nlXy%P9PnV9TAK0T_$kSQq4THbMjZsgVUc7b=L#(pX>JH!Vk`Sbj zZ{kHeMh~#j{95@*tz(4R>4RCqm|FLp_KOfU=dW`yy!mm4Jfa`sQK?i+;ywTyA1$|J z6#8iNOqU0suNoC1MoBe!4qy)7Xp3txxnep4u7)cC63ay*o*q~8Xicduj2dektK6<T z;ycI`ZS%}r<~R`9YGXJ%Y%{h~GoKvYnL4fl!%$BW6Q9QStEnlypg#i6t!oA0ho@p+ zK4&3b{+cRarypsZ6bjgwsjN$_ADJ~w3C3L`YBeB*y2-R~OtT0`JpMFCE}f9%QJt!C zqQP7x(c}xFi6etgtiTWjo9iMkg@dlQ(P)9g1R@Y&3^3k?#&uLT0w`6kl>+$rL6P{8 z_}oEmb<=RRg<?s*rAiYH*^F(vsqOUh^|mz38XJZ4aW<3jPe_TC+R^=k6$}H#A_zRB zHMj0o8Z9_{n?lC*HN)@%C<?wa6~y8yV(q~#kYZXxhWs4^SB*BMFah4*^5S{*o64kH z7W^*&;P+C)j+rMjy`GJd#dg#AVo}|fOhj(-4NOEw$NLT6msZ5wWCD(+zUO0x`NE=q zOA7>vz&Sq1(EHm34wTHFAFMt%#8JejVcUPwDp2s1#6lf`-$}I1#nK_nf)ZI_?3lty z8(FwSv)E@)=k}VIHFu0I>p3v{tT<kwo#QfggqO6+hO+?55I7{D#mQ_I+$Na*u|ygv zw&`<|RMBE&JP5Zt@{~eR`=#CM@pn3(Z<kFrHI)x13{}`w`*vm%64G4?yrp1e&tTkV z=V=bw{<91sZT~5LdznONJaYkl4!jNV&kEX=<{=7rUDj;5^o8SHg)5EqG43BA`9i3t z{SN$iWQ5fmhuq8^QvY<TqA}DH4c|bii$~8U9N$`$j%}xh4S*{3A}s04%8tu+VX?$t zn;z@FA72WS;Fp6O)q?t>u++n5O`LS76xtnDDnwylu?&`}Dm<goW7>2(Ge~oIXPYm= z1kG2F2_Jl*ib!XFCmaY7hkRDQY=a7^S|OM)X=LFy*`k##jx)u_eO`%#@wYsiQ54Eg z_vks_we{llR(SrAz>|B|(-zHU?;p+mhdc5gZ({;w;r#?6Ue2;@T1dLk^d&+t*D>F3 z)Msz>@Z7s+1ZlHBPZ8O?8^WHe(p~4ZSRqY+*{fN>O{gh|aIjPui3=8v342}olP;CH z;2?v$zq#?a5jo1%8e6HpdO6b6;edQbAz{n>qsgqsEEy~#o6dBB^!_}<7wZ8k2fM}V zu}n4Cl0Ym&o=q%0y24?eRNduq{nnjh3r1Hx^qoK~iNw+5*YhQ6_|OM?N_mf|%k4eB zLkCX@nU9`G?eUXK8y^>-X&5@hpCR0>MGc@$?Ls!(_)B+-C|m5tedtMLHJEh>wQ+i@ zG;V`3Sb{n`z`%+OYh4%=Tp-yOgN(XN*7)nvqI&o}UPODZ;iS~NHmEwH{7W$YtqP;i zNY>iD<s3WAAn76NdaWrHeiYoO4?w^Tu@}=|%0u=W{UY5^x=a8$c&x6;09xOUD|+2w zW|gRO^~V_(BZ&IOBptT!hM%i-3Q(KLq2r`o-FeFYogb5d$B=%_s*dd2$xfm9JEIUJ zMu|j$No0ulhOb}P9J$Uu^iff*u&tNvhiKx0=IeiD9z;o~Fo;<72K?ml-b5%0_aa1{ z&xxnSIymnpSSo3e!bEt)nL0QD=Z3G8Iyk5WLt26x8v%FgX{_ivV5;`7EisB_1%H2{ z{=1_3uZGzVVWJ1r;KIT34QNe#p?_;O{8#DqzYp9&2|k#Y@FG@6cP9JKpZ{5?{ksph zfvNyk(P>oZ@L#RDze~CQb-lk%fDwTaMG!Gj6jS`WgZIB4rT_zh119DMi6b2E_iww) zzrDb}@2ep!h^qJP(6X@lf86Iko&vZYMlJsYN-@Ge`iB3<U8x|tKY`Pjduue~6x03Z z-TwV7KXIb13jGf7w2<NdF%tiN%)hRHqJ|PYh^aQ5J)HIbcrX7L9yah80OKwx;QNMu z5Uv9CZ;ue@3vtHhf%zscoF)`aoO$+(D1b%B>}GQWOA4nPB#7~M<LE66MzmTw;h@89 z?dT82Up>-)K2fFMhn=5oX_j+ZomUyUD)&9UcT>-t_F`U7KSay^HC%pnKYm=9AwXkE zVkrJUr$(m>1p1~4j~Y$h|NHH53KA)CQsvNO|L0*Sp)fDkAb~75Cueiu5rK63!y4ZM z-~zST0q4hkE=ZIKQz7`Hz(w`{oG3(Ys7xfQ7_gYFN$<E0>Vfken>59a|M})g!NnuS z40!(xYyGpefO4VacDNZWn&`ziWa5p(UV-ufJoG~8{(qTi8?@ln-wv%v>i#(#5X|6q z`3dKQDB2h0Z~GbgDPcJlX+yhOsQN+(ZyiKDVs5YS4B6a}|Nq4zXh&kVKRLZIs<&JA zj~Re~T3NuB>-#PmdLs~u$`02Tf*+PG3ZAwp>*DuWIX96w{CzPVpd^FzJe;@w>lOa} z*OpNp_;T8;VO44VaU+y)7_axs*tOPo(WvzH%-+jwr9T?Xy^~~%<ON+C5b@5O!bHED ziMuCfmBjw9(d_g^_oIp-Rh$a6r&bFubb8)Y4*f*VBDU*1Ri{YZ`j*4-Gk!YK+@wwG zpMT(gUqnQs#3-yDY!vNV)6d9+b)WUCqfu_Dlwm&j1&4yEa`^w}Ecm<Gxe4p{U~f2; zcrF0(mlHVp1OQLlJj8)=)g-04V{If>d!+sEZS?Px{$5^jFr96e`=E})bN%-TU`=vb z*;Y$m;t7Q~J&Z|Hw|1Y`DU+-JAJeGQ7Y8i1c|_EOI)2{wN$tY^$}&!zFdD+9@6yxE z{7A?wCS;(k#!#!19}A-rB*`aL52LeZY5N~<m{VAAHlk;;@2?>a6oFvLm6Xg7@XgXk zCHd4+q1YRY+P$e+NCJ%oj{5fYeC|sku2OaU5x(*z=~$8>xj^UFE<@xP#wEF*qVm5k z4WkUR;&~H(a{Bvc5lc~bAOZN14-DT)&r-}s2gbr?dySURVqSnHPYJHy{+cPD!4Gtl z#j@X-7a?sv+7FwQI&i(Zrh9LU(@Zrvk_2RMIYKeyFtxhoUP!q3b+z4ZpypLe3so8Q zAvn8H66(lIuO<XLXpq)M_iwLp#UM@BjTJn%tbC0mC;-5NVXs@gA+o+~rSbwkFDS^j z?{D`4H7{P;gns(qF`TcUj`#fY^$ulYAFj?FkDBoBI)eNhwyXIPf7Ah;KC!nsm)ECT zTCq^PMW!(znDY*=_Vc>P7G7ielNvL0wGDWE@UMs$$?U_f5&EnRP9Km58x6jMJ6`HN z?~bUC2T14z40_ol{A3{x&E|z3IZYVx`4;$b3r7nFZ2?>WZ+~?0ddGfBnJi>HCyCAK zs=&md$0Y9dXx0jy(MCrqet4Wo)=eYi_<5sC#N+;r53us~`{Cz%I=v67wSJasc75lc zEzu2|%6Go7#RQX!GCMl&u#ZY9XFX#axxamdMm7hc(_-}k3UZkwrp|#YtFME-_l;*c zBkJW!=__1ARigGCE>-S4<!EQxBl}PTz0V&&o9_?5+({Aah)!&8cm=%g!U_01WPorq zj!6id43Qaacfj4ftwBMYw}BHYiPJXV9(@3NVvW4Il7*4?TKv2OD9=m+orFRDI()GR z9I-RZt?7<OueZ(5I9KVjSe+G)69tH&kAz+w8}2b~&y=8!bp9M<LViW9XBGZ4>15>c z{W6|=YT2VWbb3pbrls$2yl2-uREE9piYY48h!troU>5fB5VfN$8I^2^wD$pJ^I-FF z`aD1HEA$)NJ>UHZ-f!cSuAL(>Sbu)I%4|2=VeOM`{t&-d87<Vvl6%z8bKg9f+Hfv5 zG|iQp4fqs<K9%i0D{bx0d(6Dsfd;wLOg!ENZ(?va0Kd$9x63Vst6a&__K$#%^vhTj zV1xb*rxg?~)6Tflgq_#LgR+jOh|DgvQHON6fv`8vgLg=GOp>q|di{8p#=LWmPq@6q z7uqO|n)IjgmhUy<I=uHXC4A~5snxvH`zs)d^qJ57O$nVVLf3%?uopAAL`+ni@9=yl z&Xb7=-*UjEYsD!aBlS`D!>g7zGP`}=U48@$`*=3+n06mX6URWj=GmTyJZ$a5m%-T) zmRNCJ=OM~ol7Kuc@;rEay<g$<&<M@v{S-IMjhPcit^6Q?Hi2=KoZu{x9HkRwhH@*$ zJ3n{ksR^2~9e9&(j0|v9rg_s7Yf$oy8R)q=oZfd@xu%N>e2hGrFA|!3;KNv>(`jOB zcfU`kkk62BIOm(O8^83#JX)&977H`g*_`<VHI3j=LAF@e{K!UQoUwc%F_osM_Th-} zaLab;cyKa@&Gn6>Sf>h{d>47YKt6-YDzbH^-P-DCx#gFO4x1FMdWo3t+vE>%B*Nmd zuQ{t#PLMcX+&-{dEhT9+oC-p(B3Ugn1D4C@Gr=LX&CZs|WexQ|psim5huC~K4Qt4N z{5fZDEal<B&hrni*ex#mp17mUQlm}YBEQC9OhG0m;|L;GwOI~5!|~x#-LXoR6ynI3 zA$H?v3UiQDe9<5V!ntQJi+x*jU6Ib>)J(A~G!9E4VV(Kh3>_>?<oK$`R3T~)M3H&@ zq+wSfFA)LYW+L(N`96<K@>3XJv&(TGV#af=_XtH8o)^QCKkC(L(`+B$@;qumcDj5n zJ`jbMt6rfuMNT1MyV6QMDA55^p<basJ@Jk7V1wB86sI>FJGMUxpZbg|gB)>*o#^rI zj7Jc#9whgCX7d~NI<Ci`@tsgO<&D-n)nb2i|Gf2)bscFY&x&!$_ksw6Dmnw;xbJ8y zS>wVa)a;KdOAc(I)2h)~xA~f}m=0|kVF9?ALh1d;IG#j{<&P9^1F}h?dD2`^w3~Gc z?$i;V*&|tU<-a0XoO;L6GSRA)YKe$EwDb5b1#I<4kX8%t)>_@`)q3ySXtf$3#ljU8 zIXw<9wTxW3<qXJWib*F-X@bzu1$=abM(fTOW>5HjxDJjUDhr4A@_C(*(L3phj9|&2 z_MNWTLUdqV0U*5mXY-zf)mrywf)V9SS5M&-7LVZiH^9n~&F6^M<MN6f02cXQ?O(Pt zGU&GmU1OGICswSRA6luE2s%HQiH2K*_*<CnJR~~-1#TR^TrBlm<z)Q62-*Sogz~&0 zBPd0diu-I$e?WLa%&Xtu#OdtCghsU$rOtAxbMMdjN{c)x#b~arKG0I1sn887R;MYU zH!_`lDytp2%``_h;*vi*nQ8NeuMywy6ZvYfS?#<)N9PbHF;ifrJ)A<Fqmw7w;qxqx z?}?bjsN>F{M@Cp@^-X&}FhS^Z8Z7*M0R21|;*W^syNP`I7Ai&m2R83+rc~6|i%YbK zB+dW=KCkT4Sk|v<N0V83*svHg_XtQ|T!wXQ7P1^^kjBz^g?W55l3<6LFUR?y4|@ut z;=ah@go1j1?<d2vIo}x`O|@fVjHXHli0Eyr$sQ>eeG00(1$qM0Q>v-v3qNe)nA1M8 zThB``Q<$A3FTCaWAolF5=TFK{>LoKdGq{cm%&BeTPvq%34#$$F*2|5TY8(sy<&bUa z>+o8e>;7x%wB_FXLSougG(T}#sSo~&r<~Y&ttoNNc8OR$RrYwkSQzrkUL*dEbZkzW zVPgSMy`sF&DKMAlV2Gm@;jST5-lNM`E?}G(?BZ)=?Y!qsQFJ%#kCc3LFwIGbIJPo2 zyuNFDXh}+3`tsg$q9G2y�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 IsOSIx0Q@pdyZ`_I diff --git a/docs/platform_management_plan/_assets/saga_status_workflow.svg b/docs/platform_management_plan/_assets/saga_status_workflow.svg deleted file mode 100644 index d38685c7d45..00000000000 --- a/docs/platform_management_plan/_assets/saga_status_workflow.svg +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Do not edit this file with editors other than draw.io --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1519px" height="241px" viewBox="-0.5 -0.5 1519 241" content="<mxfile host="Electron" modified="2024-11-29T08:39:22.790Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.5.3 Chrome/124.0.6367.207 Electron/30.0.6 Safari/537.36" etag="nxYlhnwnt7kCf-gk64n8" version="24.5.3" type="device" scale="1" border="0"> <diagram name="Seite-1" id="imsa6Xb3lokGISTJ9j4B"> <mxGraphModel dx="2074" dy="1156" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0"> <root> <mxCell id="0" /> <mxCell id="1" parent="0" /> <mxCell id="feWGFnENZXP3vtga3GZW-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="feWGFnENZXP3vtga3GZW-1" target="feWGFnENZXP3vtga3GZW-3" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="feWGFnENZXP3vtga3GZW-1" value="Draft" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> <mxGeometry x="273" y="120" width="160" height="100" as="geometry" /> </mxCell> <mxCell id="feWGFnENZXP3vtga3GZW-2" value="&lt;font size=&quot;1&quot; style=&quot;&quot;&gt;&lt;b style=&quot;font-size: 25px;&quot;&gt;Saga Status Workflow&lt;/b&gt;&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1"> <mxGeometry x="840" y="320" width="290" height="40" as="geometry" /> </mxCell> <mxCell id="feWGFnENZXP3vtga3GZW-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="feWGFnENZXP3vtga3GZW-3" target="feWGFnENZXP3vtga3GZW-12" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="feWGFnENZXP3vtga3GZW-3" value="Open" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"> <mxGeometry x="601" y="120" width="160" height="100" as="geometry" /> </mxCell> <mxCell id="feWGFnENZXP3vtga3GZW-8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="feWGFnENZXP3vtga3GZW-4" target="feWGFnENZXP3vtga3GZW-5" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="feWGFnENZXP3vtga3GZW-4" value="In Progress" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1"> <mxGeometry x="1208" y="120" width="160" height="100" as="geometry" /> </mxCell> <mxCell id="feWGFnENZXP3vtga3GZW-5" value="Closed" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1"> <mxGeometry x="1494" y="120" width="160" height="100" as="geometry" /> </mxCell> <mxCell id="feWGFnENZXP3vtga3GZW-9" value="Saga is created and&lt;div&gt;ready&amp;nbsp;&lt;span style=&quot;background-color: initial;&quot;&gt;to be planned.&lt;/span&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1"> <mxGeometry x="136" y="171" width="130" height="40" as="geometry" /> </mxCell> <mxCell id="feWGFnENZXP3vtga3GZW-10" value="Saga is part of the official&lt;div&gt;roadmap&amp;nbsp;&lt;span style=&quot;background-color: initial;&quot;&gt;and is assigned&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;to a&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;dedicated milestone&lt;/span&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;.&lt;/span&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1"> <mxGeometry x="438" y="170" width="160" height="60" as="geometry" /> </mxCell> <mxCell id="feWGFnENZXP3vtga3GZW-11" value="Saga is in&lt;div&gt;implementation&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;and testing&lt;/span&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;.&lt;/span&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1"> <mxGeometry x="1098" y="169" width="100" height="60" as="geometry" /> </mxCell> <mxCell id="feWGFnENZXP3vtga3GZW-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="feWGFnENZXP3vtga3GZW-12" target="feWGFnENZXP3vtga3GZW-4" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="feWGFnENZXP3vtga3GZW-12" value="In Specification" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1"> <mxGeometry x="918" y="120" width="160" height="100" as="geometry" /> </mxCell> <mxCell id="feWGFnENZXP3vtga3GZW-14" value="Feature architecture,&lt;div&gt;requirements and&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;component&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;requirements&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;are defined.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Break down to epics&lt;/div&gt;&lt;div&gt;is finished&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1"> <mxGeometry x="761" y="172" width="160" height="110" as="geometry" /> </mxCell> <mxCell id="feWGFnENZXP3vtga3GZW-15" value="Saga is finished,&lt;div&gt;feature is officially&lt;/div&gt;&lt;div&gt;available&lt;span style=&quot;background-color: initial;&quot;&gt;.&lt;/span&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1"> <mxGeometry x="1374" y="169" width="120" height="60" as="geometry" /> </mxCell> <mxCell id="TUJxC_fESaUiGhAqQ7wn-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="153" y="169.5" as="sourcePoint" /> <mxPoint x="273" y="169.5" as="targetPoint" /> </mxGeometry> </mxCell> </root> </mxGraphModel> </diagram> </mxfile> " style="background-color: rgb(255, 255, 255);"><defs/><rect fill="#ffffff" width="100%" height="100%" x="0" y="0"/><g><g><path d="M 297 50 L 458.63 50" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 463.88 50 L 456.88 53.5 L 458.63 50 L 456.88 46.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><path d="M 137 0 L 297 0 L 297 85 Q 257 58 217 85 Q 177 112 137 85 L 137 15 Z" fill="#f5f5f5" stroke="#666666" stroke-miterlimit="10" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 35px; margin-left: 138px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Draft</div></div></div></foreignObject><image x="138" y="28.5" width="158" height="17" xlink:href="data:image/png;base64,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"/></switch></g></g><g><rect x="704" y="200" width="290" height="40" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 220px; margin-left: 849px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font style="" size="1"><b style="font-size: 25px;">Saga Status Workflow</b></font></div></div></div></foreignObject><image x="718" y="205.5" width="262" height="33" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABBgAAACECAYAAAA6CphCAAAAAXNSR0IArs4c6QAAIABJREFUeF7tnQn8f+tU71e6hjKVdA1diYqQypAoF5krKZFZGlTSQAMSQo4bcgs3FUlXiQZSilQqSkeiEIUoQzm4ppShSO73fex97LPt4VlrPfu79/f7/azX6/v6H377mT5772c/z+dZ67M+yWRCQAgIASEgBISAEBACQkAICAEhIASEgBBIIvBJyfIqLgSEgBAQAkJACAgBISAEhIAQEAJCQAgIARPBoIdACAgBISAEhIAQEAJCQAgIASEgBISAEEgjIIIhDaEqEAJCQAgIASEgBISAEBACQkAICAEhIAREMOgZEAJCQAgIASEgBISAEBACQkAICAEhIATSCIhgSEOoCoSAEBACQkAICAEhIASEgBAQAkJACAgBEQx6BoSAEBACQkAICAEhIASEgBAQAkJACAiBNAIiGNIQqgIhIASEgBAQAkJACAgBISAEhIAQEAJCQASDngEhIASEgBAQAkJACAgBISAEhIAQEAJCII2ACIY0hKpACAgBISAEhIAQEAJCQAgIASEgBISAEBDBoGdACAgBISAEhIAQEAJCQAgIASEgBISAEEgjIIIhDaEqEAJCQAgIASEgBISAEBACQkAICAEhIAREMOgZEAJCQAgIASEgBISAEBACQkAICAEhIATSCIhgSEOoCoSAEBACQkAICAEhIASEgBAQAkJACAgBEQx6BoSAEBACQkAICAEhIASEgBAQAkJACAiBNAIiGNIQqgIhIASEgBAQAkJACAgBISAEhIAQEAJCQASDngEhIASEgBAQAkJACAgBISAEhIAQEAJCII3AvgiG/25mVzazT2t+FzUzfvzvT29G8R4ze7eZtf/+i5n9rZm9OT1KVSAEhMAhIMB8dHkzu1xnnmCOYK5gnuDfD5nZO82M+aGdL/jfr2j+9yGMU30UAkJACAgBISAEhIAQEAJHicASBMP5zexLzOyaZvZlZvaVZvY/Euj9PzN7vpm90Mz+0sxeamYfSdSnokJACGwDAciDa5jZl5rZtc3shmZ24UTX/r6ZK15kZvxem6hLRYWAEBACQkAICAEhsE8EPrk5ULmQmXV/9OGDze9fm0MWDlr+c5+dU1tCoBSBmgTD55jZt5vZ9yY3CXN9/2cze+zupPOXzOztcxfr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"/></switch></g></g><g><path d="M 625 50 L 775.63 50" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 780.88 50 L 773.88 53.5 L 775.63 50 L 773.88 46.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><path d="M 465 0 L 625 0 L 625 85 Q 585 58 545 85 Q 505 112 465 85 L 465 15 Z" fill="#fff2cc" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 35px; margin-left: 466px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Open</div></div></div></foreignObject><image x="466" y="28.5" width="158" height="17" xlink:href="data:image/png;base64,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"/></switch></g></g><g><path d="M 1232 50 L 1351.63 50" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1356.88 50 L 1349.88 53.5 L 1351.63 50 L 1349.88 46.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><path d="M 1072 0 L 1232 0 L 1232 85 Q 1192 58 1152 85 Q 1112 112 1072 85 L 1072 15 Z" fill="#d5e8d4" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 35px; margin-left: 1073px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">In Progress</div></div></div></foreignObject><image x="1073" y="28.5" width="158" height="17" xlink:href="data:image/png;base64,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mEAWAQu8LEweZAImMAICqe4QOxZXkPtn7j3VlWHdouMEHTJsJmACJrCgBCzwFhS3X2YCJrCECWxfJkuESyTObrWK3q/huG0kHRXtjThAYtRsJmACJrDgBCzwFhy5X2gCJrBECXA9e1libZQHoZQIPW1jo9zJTkU7sncnviOrde8lulcvywRMYOAELPAGfsDengmYQCMCpyd6tE4moCAwRZKvLcraIOwQhJRQSRllSCitcnOjt3uwCZiACbREwAKvJZCexgRMYBAEyISllt3ac+yGjhbrV3gD55jWj5qACZhAPgELvHxWHmkCJjAOAtTYo35e3HIsZ/dnlMWRqTlnMwETMIFFI2CBt2jo/WITMIElTGBZSVuUsXf0r62z0yR9rvwfhYVtJmACJrCoBCzwFhW/X24CJtADAsTa3b/MpqVH7QplQeNryni8c8ouDj3YipdoAiYwFgIWeGM5ae/TBEzABEzABExgNAQs8EZz1N6oCZiACZiACZjAWAhY4I3lpL1PEzABEzABEzCB0RCwwBvNUXujJmACJmACJmACYyFggTeWk/Y+TcAETMAETMAERkPAAm80R+2NmoAJmIAJmIAJjIWABd5YTtr7NAETMAETMAETGA0BC7zRHLU3agImYAImYAImMBYCFnhjOWnv0wRMwARMwARMYDQELPBGc9TeqAmYgAmYgAmYwFgIWOCN5aS9TxMwARMwARMwgdEQsMAbzVF7oyZgAiZgAiZgAmMhYIE3lpP2Pk3ABEzABEzABEZD4H9kY+Vyj2PZNgAAAABJRU5ErkJggg=="/></switch></g></g><g><path d="M 1358 0 L 1518 0 L 1518 85 Q 1478 58 1438 85 Q 1398 112 1358 85 L 1358 15 Z" fill="#f8cecc" stroke="#b85450" stroke-miterlimit="10" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 35px; margin-left: 1359px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Closed</div></div></div></foreignObject><image x="1359" y="28.5" width="158" height="17" xlink:href="data:image/png;base64,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"/></switch></g></g><g><rect x="0" y="51" width="130" height="40" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 71px; margin-left: 65px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Saga is created and<div>ready <span style="background-color: initial;">to be planned.</span></div></div></div></div></foreignObject><image x="10.5" y="57" width="109" height="32" xlink:href="data:image/png;base64,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"/></switch></g></g><g><rect x="302" y="50" width="160" height="60" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 80px; margin-left: 382px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Saga is part of the official<div>roadmap <span style="background-color: initial;">and is assigned</span></div><div><span style="background-color: initial;">to a </span><span style="background-color: initial;">dedicated milestone</span><span style="background-color: initial;">.</span></div></div></div></div></foreignObject><image x="314.5" y="59" width="135" height="46" xlink:href="data:image/png;base64,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"/></switch></g></g><g><rect x="962" y="49" width="100" height="60" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 79px; margin-left: 1012px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Saga is in<div>implementation</div><div><span style="background-color: initial;">and testing</span><span style="background-color: initial;">.</span></div></div></div></div></foreignObject><image x="971.5" y="58" width="81" height="46" xlink:href="data:image/png;base64,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"/></switch></g></g><g><path d="M 942 50 L 1065.63 50" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1070.88 50 L 1063.88 53.5 L 1065.63 50 L 1063.88 46.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><path d="M 782 0 L 942 0 L 942 85 Q 902 58 862 85 Q 822 112 782 85 L 782 15 Z" fill="#ffe6cc" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 35px; margin-left: 783px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">In Specification</div></div></div></foreignObject><image x="783" y="28.5" width="158" height="17" xlink:href="data:image/png;base64,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"/></switch></g></g><g><rect x="625" y="52" width="160" height="110" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 107px; margin-left: 705px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Feature architecture,<div>requirements and</div><div><span style="background-color: initial;">component </span><span style="background-color: initial;">requirements</span></div><div><span style="background-color: initial;">are defined.</span></div><div><br /></div><div>Break down to epics</div><div>is finished</div></div></div></div></foreignObject><image x="638.5" y="57" width="133" height="104" xlink:href="data:image/png;base64,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aFsO9s/fWBkNEhiI7Y6hSyz5E2+SxFxIldDrJOW1EuNT4lWxLhLrAFGGq2ZYiBAZujFuX31GX2OFnCp4OOxbABQBgWcEcUHOS5wXcxM+vCCtOHYeZwd180Bmq6KtIGY2FIQPZ5XlYDM7oa3i4PvtnA0Pc6etMFbrnVgJDV9zDZPb2tD3ItCLgARFL3w6eWYCdXjnvao3ZUJt71wZ0G3j3vrY9z7FzE518QTY3jh+5v4uc/PYqyCg2ALBY4NVC7waKKSNx57iNPdf8nb4AZ8WlcuuLiw3WxQIV8QTYghxxR+GlKQSx0C1T8GW595mhvHwDpXhMXEtfumMWzEmJgncULY+ffqpc0WgkYAEhSaICIiACIiACIhAbwISFL0RqgIREAEREAEREAEJCs0BERABERABERCB3gQkKHojVAUiIAIiIAIiIAISFJoDIiACIiACIiACvQlIUPRGqApEQAREQAREQAQkKDQHREAEREAEREAEehOQoOiNUBWIgAiIgAiIgAhIUGgOiIAIiIAIiIAI9CYgQdEboSoQAREQAREQARGQoNAcEAEREAEREAER6E1AgqI3QlUgAiIgAiIgAiIgQaE5IAIiIAIiIAIi0JuABEVvhKpABERABERABERAgkJzQAREQAREQAREoDcBCYreCFWBCIiACIiACIiABIXmgAiIgAiIgAiIQG8CEhS9EaoCERABERABERABCQrNAREQAREQAREQgd4EJCh6I1QFIiACIiACIiACEhSaAyIgAiIgAiIgAr0JSFD0RqgKREAEREAEREAEJCg0B0RABERABERABHoTkKDojVAViIAIiIAIiIAISFBoDoiACIiACIiACPQmIEHRG6EqEAEREAEREAERkKDQHBABERABERABEehN4D9BPgTMEt2rLQAAAABJRU5ErkJggg=="/></switch></g></g><g><rect x="1238" y="49" width="120" height="60" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 79px; margin-left: 1298px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Saga is finished,<div>feature is officially</div><div>available<span style="background-color: initial;">.</span></div></div></div></div></foreignObject><image x="1250.5" y="58" width="95" height="46" xlink:href="data:image/png;base64,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"/></switch></g></g><g><path d="M 17 49.5 L 130.63 49.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 135.88 49.5 L 128.88 53 L 130.63 49.5 L 128.88 46 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g></svg> \ No newline at end of file From b045adbe8cb6c39bc27f7090d8799e2f163a51b3 Mon Sep 17 00:00:00 2001 From: Andreas Mittag <andreas.mittag@etas.com> Date: Mon, 26 Jan 2026 07:17:54 +0000 Subject: [PATCH 106/128] status adapted --- ....svg => score_project_management_kanban.drawio.svg} | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) rename docs/platform_management_plan/_assets/{kanban.drawio.svg => score_project_management_kanban.drawio.svg} (93%) diff --git a/docs/platform_management_plan/_assets/kanban.drawio.svg b/docs/platform_management_plan/_assets/score_project_management_kanban.drawio.svg similarity index 93% rename from docs/platform_management_plan/_assets/kanban.drawio.svg rename to docs/platform_management_plan/_assets/score_project_management_kanban.drawio.svg index 66fbf1ae6a6..705f1b5023c 100644 --- a/docs/platform_management_plan/_assets/kanban.drawio.svg +++ b/docs/platform_management_plan/_assets/score_project_management_kanban.drawio.svg @@ -1,4 +1,4 @@ -<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="784px" height="131px" viewBox="-0.5 -0.5 784 131" content="<mxfile><diagram id="C97xqWznBMC5PXXLidsX" name="Page-1">7Vndcps8EH0aZvpdtCPAOO5lbSdtp78Td/pzqZgFNJERI+TY7tN/K5ACWLi1m8STuCUeR7usZGnP2ZUWvHCyWL+WtMg+iBi4F5B47YVTLwj8s2CI/7RmU2tehkGtSCWLjVGjmLGfYJTEaJcshrJjqITgihVd5VzkOcxVR0elFKuuWSJ491cLmoKjmM0pd7XfWKyyWjuKSKN/AyzN7C/7xNxZUGtsFGVGY7FqqcJzL5xIIVTdWqwnwLXzrF/qfhc77t5OTEKu9uowqHvcUL40izMTUxu7WpxjoZuKXmnVuFRUKgMKQRm9rCjLQaLsVzLntChZZV1bZIzH7+lGLJUdx0rjBHubwfyhlhnnE8GFHo1rHz6Pqbx+5gUhqS4vmGD74uJlMPL/M/2tPd5IqquapRTX0Lpjuodj10fGbTcgFaxbKuOz1yAWoOQGTexdi58h8HBk5FVDh7ORcWXWooK1o4aB6e3QDUjYMDjtwCw6ELNLzbBxJiT7qaHiBpVtHMsVW3CaI3VpvKUaiypUieNXlmcgmcZRicJYcEiUaV4JpcTCCNK4gfRyJJai+EJlCtakTYRc5Jp5hWC5qjwXjfGjuUBeRF401aSIxn4j40ebS6RGjjNGeuphgZZqBWUf7XpIMdibFb9DfXAfqA8d1D/CaifwuBLFKL/E9EfztIrbTC24CdFVxhTMCjrXpitM0nUY62RJG0h2h5BApyS8SlwZi2PIt/DSgRjpv4OJUUEM8vwGaqT9vhTRDfn66scw+hMM/Wh4GIZmtMbZhw9HOa46pwpDbZnHpcOM25nuR5YzhyyXGNV6nV8Efn0T8vrxUoeQiEByDOrc7hZ3os56C+cO9qP7pdIew90zlUYOld7mKH+WIpVQlo+XRgmhIaHHoNGvjhYH0yi0G89JZaTQzUgTLkqIHy9/CBnRyvZppaHBmXsWPQH+uIfeTzoNvdG126OlEET+4AlSaBj07WRPnkK+Q6GdzPlXNx2jbtp0YT9GGWWfNHVIMOR2adhOdRtLK65nOJeA9IutCY7etnrQxNOXXu43jfgHPiYJ939OclqJI3Q4M4WE5UwxofcgkeCXra+SJdcR+MAHmydNjpOul0L3iWpdbRN2tLLpFNhxomWQW01bduDQZKr363/M+CsLHPf5bpsZn+nyoYvlU+DGaVYuA98BHuIUZkY0p/wW4LBm6rsG5UVkpB8GIt2ertuCLVBc99sMXIqlnENXp2zJ4TUFpp7TL0GSwKliN22ju53mrdtbQTNDzGIqMVTIO5pfUb3pfmU9b0qQUcrho3FlTw3V8m6b0oGVzcADlDVd2ZzyV5ylGETTBUZTFZLUKOagw6Tf5wefosKtV5FhT3a075/vWE2h2LyarnncvOAPz/8H</diagram></mxfile>"> +<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="784px" height="131px" viewBox="-0.5 -0.5 784 131" content="<mxfile><diagram id="C97xqWznBMC5PXXLidsX" name="Page-1">7Vltc9o4EP41nrn7cB2/YEI+FkjaTu+lEzpt76OC17YmQvLIIkB//a1sKbaRaeGSMImnhmG065WQ9nl2pbW9aLbavpOkyP8SCTAv9JOtF829MLy8HOOvVuxqRXwR1opM0qRWBY1iQb+DUfpGu6YJlB1DJQRTtOgql4JzWKqOjkgpNl2zVLDuvxYkA0exWBLmar/SROW1dhL7jf490Cy3/xz45s6KWGOjKHOSiE1LFV150UwKoerWajsDpn1n/VL3uz5w92FiErg6qsOo7nFP2NoszkxM7exqcY6Fbipyq1XTUhGpDCg+yuhlRSgHiXJQyYyRoqSVdW2RU5b8SXZirew4Vpqm2NsMFoy1TBmbCSb0aEz78I+EyLvfvDDyq8sLZ9i+vr4MJ8Hvpr+1xxtpdVWzlOIOWndM92jq+si47R6kgm1LZXz2DsQKlNyhib1r8TMEHk+MvGnocDExrsxbVLB2xDAwexi6AQkbBqcDmMUnYnajGTbNhaTfNVTMoLKPY7mhK0Y4Upcke6qpqELVd/xKeQ6SahyVKIwFg1SZ5q1QSqyMII0b/F6OJFIUn4nMwJq0icAF18wrBOWq8lw8xa/mgv8m9uK5JkU8DRoZv9pcIjU4zhjpqYcFUqoNlH206yHF6GhW/Az10VOgPnZQ/xs2B4HHlShK2A2mP8KzKm5ztWImRDc5VbAoyFKbbjBH12GskyVpIDkcQgKdkrIqceU0SYDv4aUDMdafk4lRQQzy6h5qpIO+FNEN+frqxzD+PxgG8fg0DM1ojbNPH44wXDUnCkNtzZPSYcbDTI8jy4VDls8C5bl4uYTx/diH9ByEedgjHkWY7R66HcQnT0ugI4Z7YgJNHAJ94Ch/kiKTUJYvl0apTyKfnINGPzpQnEyjyG43g8pDkZuH5norf7Hs8f0JqWxfVxIaXbjnzwGwxz3o/qOT0Htdr71YCkEcjF4hhcZh3z726ikUOBQ6yJxftdI5aqVdF/ZzlE5R2EOCMbNLw3am21hOMT3DpQSkX2JNcPS21bMmnr708rRpJDjx0Uh0/LORYSWOyD25QEo5VVToPUik+HOD0a9Xnq6ZjkB43l3pVZNj0NVS5D5F/SrknbY4W9E0BHYMtAhya2nLjrJ6JvPMBdEQmDHQAsd9pttmxieyLn/tKT/lxjArl1HgAA9JBgsjmlN+C3DYUvVNg/ImNtK/BiLdnm/bgi1QXPfbDFyKtVxCV6dsyeE1Baae0w9BksCIovdto8ed5q3bW0GzQMwSIjFU/I+E3xK96X6hPW9HkFHK4aNxZU8N1fJum9Khlc3AI5Q1XemSsLeMZhhE8xVGUxWSxCiWoMOk3+cnn6KivdePUU92tO+cH1lNodi8jq553LzTj67+Aw==</diagram></mxfile>"> <defs/> <g> <g> @@ -44,13 +44,13 @@ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 156px; height: 1px; padding-top: 70px; margin-left: 158px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; max-height: 36px; overflow: hidden; color: #ffffff; "> <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Ready To Work + To Do </div> </div> </div> </foreignObject> <text x="236" y="75" fill="#ffffff" font-family=""Helvetica"" font-size="16px" text-anchor="middle"> - Ready To Work + To Do </text> </switch> </g> @@ -88,13 +88,13 @@ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 154px; height: 1px; padding-top: 70px; margin-left: 472px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; max-height: 36px; overflow: hidden; color: #ffffff; "> <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Closed + Done </div> </div> </div> </foreignObject> <text x="549" y="75" fill="#ffffff" font-family=""Helvetica"" font-size="16px" text-anchor="middle"> - Closed + Done </text> </switch> </g> From 613da6b1e053c0d7bdf6b40a9417c07a6e5005ce Mon Sep 17 00:00:00 2001 From: Andreas Mittag <andreas.mittag@etas.com> Date: Mon, 26 Jan 2026 07:18:10 +0000 Subject: [PATCH 107/128] team docu adapted --- .../project_management.rst | 412 ++++++++++-------- 1 file changed, 228 insertions(+), 184 deletions(-) diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index a28c5a0055b..d887f02c4de 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -38,98 +38,68 @@ The purpose of the Project Management Plan is to define Objectives and Scope -------------------- -Project Management Goals -^^^^^^^^^^^^^^^^^^^^^^^^ - +Project Management Goals and Definition of Done +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +* The stakeholders/stakeholder groups and organization are defined: + - Org Chart and structure description is available and up to date. +* Communication and reporting paths are described: + - Team Overview with meeting structure is available & Slack channels are established and maintained. + - Meetings are scheduled in the Eclipse SDV calendar. * The scope of the work is defined. -* The stakeholders/stakeholder groups and organization are defined. -* Communication and reporting paths are described. + - S-CORE Handbook (:need:`doc__platform_handbook`) is available and up to date. + - :ref:`Features <features>` are described. +* Project Plan is planned and followed: + - Roadmap with Milestones and Releases are available and up to date. * Escalation paths are described. +* All Reviews are performed according to their definitions, the respective templates are used. .. _pmp_pm_organization: Project Organization ==================== -.. code:: - - Team Documentation Structure in this Document: - - - Responsibilities - - Members - - Speaker / Lead - - Meeting Minutes - - Slack channel - - Open Point List - - Repository Ownership - - -.. - Team Template - - XYZ Team (XYZ) - ^^^^^^^^^^^^^^ - - .. _XYZ Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-XYZ-team - .. _XYZ Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-XYZ-lead - .. _XYZ Meeting Minutes: https://github.com/eclipse-score/score/wiki/XYZM - .. _XYZ Slack Channel: https://sdvworkinggroup.slack.com/archives/XYZ - .. _XYZ Open Point List: https://github.com/orgs/eclipse-score/projects/XYZ - - - - XYZ Responsibilities - - tbd - - `XYZ Core Members`_ - - `XYZ Lead`_ - - `XYZ Meeting Minutes`_ - - `XYZ Slack Channel <>`_ - - `XYZ Open Point List <>`_ - - XYZ Repositories: - - https://github.com/eclipse-score/tbd - Org Chart and Main Platform Management Plan Responsibilities ------------------------------------------------------------ -.. image:: _assets/organization_orgchart.drawio.svg +.. image:: _assets/score_project_management_organization_orgchart.drawio.svg :width: 900 :alt: Infrastructure overview :align: center - .. _pmp_pm_steering_committees: Steering Committees ------------------- -Steering of the project is done by two committees: - -Project Lead Circle (PLC) -^^^^^^^^^^^^^^^^^^^^^^^^^ -.. _PLC Members: https://github.com/orgs/eclipse-score/teams/automotive-score-PLC-team -.. _PLC Speaker: https://github.com/orgs/eclipse-score/teams/automotive-score-PLC-lead -.. _PLC Meeting Minutes: https://github.com/eclipse-score/score/wiki/PLCM -.. _PLC Slack Channel: https://sdvworkinggroup.slack.com/archives/PLC -.. _PLC Open Point List: https://github.com/orgs/eclipse-score/projects/PLC - -- Responsibilities - - Decisions about strategical topics - - Review and approval of contributions, e.g. Feature Requests, which add or modify features - - Project Management - - Planning and Approval of Releases - - Escalation instance -- `PLC Members`_ - - `PLC election <https://www.eclipse.org/projects/handbook/#roles-pl>`_ -- `PLC Speaker`_ -- `PLC Meeting Minutes`_ -- `PLC Slack channel`_ -- `PLC Open Point List`_ - -.. _pmp_pm_tlc: - -Technical Lead Circle (TLC) -^^^^^^^^^^^^^^^^^^^^^^^^^^^ -The Technical Lead Circle will soon be merged with the Project Lead Circle: `#2381: Merge TLC into PLC <https://github.com/eclipse-score/score/issues/2381>`_ +Steering of the project is done with the help of *Committees*. + +.. _PLCMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-PLC-team +.. _PLCSPK: https://github.com/orgs/eclipse-score/teams/automotive-score-PLC-lead +.. _PLCMM: https://github.com/eclipse-score/score/wiki/PLCM +.. _PLCSLC: https://sdvworkinggroup.slack.com/archives/PLC +.. _PLCBKL: https://github.com/orgs/eclipse-score/projects/PLC + +.. _TLCMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-TLC-team +.. _TLCSPK: https://github.com/orgs/eclipse-score/teams/automotive-score-TLC-lead +.. _TLCMM: https://github.com/eclipse-score/score/wiki/TLCM +.. _TLCSLC: https://sdvworkinggroup.slack.com/archives/C085F44D2CS +.. _TLCBKL: https://github.com/orgs/eclipse-score/projects/3 + +.. list-table:: Steering + :header-rows: 1 + :widths: 22,7,7,7,7,7,24 + + * - Purpose + - Members + - Speaker + - Meeting Minutes + - Slack Channel + - Backlog + - Owned Repository + * - .. _pmp_pm_plc: +<<<<<<< HEAD <<<<<<< HEAD .. _TLC Members: https://github.com/orgs/eclipse-score/teams/automotive-score-TLC-team .. _TLC Speaker: https://github.com/orgs/eclipse-score/teams/automotive-score-TLC-lead @@ -139,21 +109,49 @@ The Technical Lead Circle will soon be merged with the Project Lead Circle: `#23 ======= *Project lead circle* proposes and elects a *Project lead circle Assistant* and their deputy with bare majority, who is responsible for scheduling and announcing meetings, preparing and announcing agenda, writing meeting minutes and protocols. *Project lead circle* can reelect *Project lead circle Assistant* at any time. The *Project lead circle Assistant* and their deputy can resign anytime on their own will. >>>>>>> f9f5ae6 (Update language for gender neutrality in project management plan) - -- TLC Responsibilities: - - Review and approval of contributions, e.g. *Feature Requests*, which add or modify S-CORE platform features. - - Project management of the platform development, e.g. creation of the roadmap. - - High-level project control and coordination between multiple software modules. - - Escalation instance for software module project leads and committers. -- `TLC Members`_ - - TLC Election: Each *Project Lead* is allowed to nominate one *Technical Lead*. -- `TLC Meeting Minutes`_ -- `TLC Slack Channel`_ -- `TLC Open Point List`_ -- TLC Repositories: - - https://github.com/eclipse-score/score - -.. _pmp_pm_technical_committees: +======= + **PLC** + - **Project** + - **Lead** + - **Circle** + - **-----------** + - **-----------** + - **-----------------------** +>>>>>>> 74b593b (team docu adapted) + + * - - Decisions about strategical topics + - Review and approval of contributions, e.g. Feature Requests, which add or modify features + - Project Management + - Planning and Approval of Releases + - Escalation instance + - `PLCMBRS`_ + - `PLCSPK`_ + - `PLCMM`_ + - `PLCSLC`_ + - `PLCBKL`_ + - n.a. + * - .. _pmp_pm_tlc: + + **TLC** + - **Technical** + - **Lead** + - **Circle** + - **-----------** + - **-----------** + - **-----------------------** + * - - Review and approval of contributions, e.g. Feature Requests, which add or modify S-CORE platform features. + - Project management of the platform development, e.g. creation of the roadmap. + - High-level project control and coordination between multiple software modules. + - Escalation instance for software module project leads and committers. + - `TLCMBRS`_ + - `TLCSPK`_ + - `TLCMM`_ + - `TLCSLC`_ + - `TLCBKL`_ + - - https://github.com/eclipse-score/score + + +.. _pmp_pm_technical_communities: Communities ----------- @@ -162,87 +160,151 @@ commonly used development & testing infrastructure, processes or final integrati Each *Community* has a *Community Lead* to organize the community`s work. <<<<<<< HEAD +<<<<<<< HEAD +======= +.. _ARCMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-ARC-team +.. _ARCLD: https://github.com/orgs/eclipse-score/teams/automotive-score-ARC-lead +.. _ARCMM: https://github.com/eclipse-score/score/wiki/ARCM +.. _ARCSLC: https://sdvworkinggroup.slack.com/archives/C08C1HG5AKY +.. _ARCBKL: https://github.com/orgs/eclipse-score/projects/3 + +.. _INFMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-INF-team +.. _INFLD: https://github.com/orgs/eclipse-score/teams/automotive-score-INF-lead +.. _INFMM: https://github.com/eclipse-score/score/wiki/INFM +.. _INFSLC: https://sdvworkinggroup.slack.com/archives/C0894QGRZDM +.. _INFBKL: https://github.com/orgs/eclipse-score/projects/6 + +.. _PRCMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-PRC-team +.. _PRCLD: https://github.com/orgs/eclipse-score/teams/automotive-score-PRC-lead +.. _PRCMM: https://github.com/eclipse-score/score/wiki/PRCM +.. _PRCSLC: https://sdvworkinggroup.slack.com/archives/C0864L05332 +.. _PRCBKL: https://github.com/orgs/eclipse-score/projects/21 +.. _PIMBKL: https://github.com/orgs/eclipse-score/projects/7 + + +.. list-table:: Community + :header-rows: 1 + :widths: 22,7,7,7,7,7,24 + + * - Purpose + - Members + - Lead + - Meeting Minutes + - Slack Channel + - Backlog + - Owned Repository + * - .. _pmp_pm_arc: + + **ARC** + - **Architecture** + - **Community** + - **-----------** + - **-----------** + - **-----------** + - **-----------------------** + * - - clarification of software architecture topics, e.g. discussion of new features or coding guidelines + - `ARCMBRS`_ + - `ARCLD`_ + - `ARCMM`_ + - `ARCSLC`_ + - `ARCBKL`_ + - https://github.com/eclipse-score/score + * - .. _pmp_pm_prc: + + **PRC** + - **Process** + - **Community** + - **-----------** + - **-----------** + - **-----------** + - **-----------------------** + * - - defining and maintaining the software development process (incl. safety, security and quality) + - defining and maintaining the process implementation (PIM) + - `PRCMBRS`_ + - `PRCLD`_ + - `PRCMM`_ + - `PRCSLC`_ + - `PRCBKL`_ + `PIMBKL`_ + - https://github.com/eclipse-score/process_description + https://github.com/eclipse-score/score + * - .. _pmp_pm_inf: + + **INF** + - **Infrastructure** + - **Community** + - **-----------** + - **-----------** + - **-----------** + - **-----------------------** + * - - providing and maintaining the development infrastructure: Compiler, IDE, build toolchains + - `INFMBRS`_ + - `INFLD`_ + - `INFMM`_ + - `INFSLC`_ + - `INFBKL`_ + `INFBKL`_ + - - Toolchain Repositories: + - https://github.com/eclipse-score/bazel_platforms + - https://github.com/eclipse-score/toolchains_gcc + - https://github.com/eclipse-score/toolchains_gcc_packages + - https://github.com/eclipse-score/toolchains_qnx + - https://github.com/eclipse-score/toolchains_rust + - Tooling Repositories: + - https://github.com/eclipse-score/devcontainer + - https://github.com/eclipse-score/docs-as-code + - https://github.com/eclipse-score/tooling + - other Repositories: + - https://github.com/eclipse-score/apt-install + - https://github.com/eclipse-score/cicd-workflows + - https://github.com/eclipse-score/bazel_registry + - https://github.com/eclipse-score/bazel_registry_ui + - https://github.com/eclipse-score/.eclipsefdn + - https://github.com/eclipse-score/examples + + + +Feature Teams +------------- +:ref:`Feature Teams <pmp_pm_feature_teams>` have end-to-end responsibility for providing specific functionalities. This includes all +development aspects beginning with the architecture definition to the integration test. +One *Team* may work independently of other *Teams* on the team-assigned *GitHub Issues*, +and needs at least one :need:`Committer <rl__committer>` who can approve & merge the Pull Requests +Each *Feature Team* has one *Lead* to organize the Team`s work. + + +.. list-table:: Team + :header-rows: 1 + :widths: 10,22,7,7,7,7,7,24 + + * - Name + - Purpose + - Members + - Speaker / Lead + - Meeting Minutes + - Slack Channel + - Backlog + - Owned Repository + + * - **------** + - .. _pmp_pm_feature_teams: + + **Feature Teams** + - **-----------** + - **-----------** + - **-----------** + - **-----------** + - **-----------** + - **-----------------------** + +>>>>>>> 74b593b (team docu adapted) The following *Communities* are established: ======= *Technical lead circle* proposes and elects a *Technical lead circle Assistant* and their deputy with bare majority during *Technical Lead Circle meeting*, who is responsible for scheduling and announcing meetings, preparing and announcing agenda, writing meeting minutes and protocols. *Technical lead circle* can reelect *Technical lead circle Assistant* at any time. The *Technical lead circle Assistant* and their deputy can resign anytime on their own will. >>>>>>> f9f5ae6 (Update language for gender neutrality in project management plan) -.. _pmp_pm_arc: - -Architecture Community (ARC) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. _ARC Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-ARC-team -.. _ARC Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-ARC-lead -.. _ARC Meeting Minutes: https://github.com/eclipse-score/score/wiki/ARCM -.. _ARC Slack Channel: https://sdvworkinggroup.slack.com/archives/C08C1HG5AKY -.. _ARC Open Point List: https://github.com/orgs/eclipse-score/projects/3 - -- ARC Responsibilities - - clarification of software architecture topics, e.g. discussion of new features or coding guidelines -- `ARC Core Members`_ -- `ARC Lead`_ -- `ARC Meeting Minutes`_ -- `ARC Slack Channel`_ -- `ARC Open Point List`_ -- ARC Repositories: - - https://github.com/eclipse-score/score - -Process Community (PRC) -^^^^^^^^^^^^^^^^^^^^^^^ -.. _PRC Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-PRC-team -.. _PRC Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-PRC-lead -.. _PRC Meeting Minutes: https://github.com/eclipse-score/score/wiki/PRCM -.. _PRC Slack Channel: https://sdvworkinggroup.slack.com/archives/C0864L05332 -.. _PRC Open Point List: https://github.com/orgs/eclipse-score/projects/21 -.. _PIM Open Point List: https://github.com/orgs/eclipse-score/projects/7 - -- PRC Responsibilities - - defining and maintaining the software development process (incl. safety, security and quality) - - defining and maintaining the process implementation (PIM) -- `PRC Core Members`_ -- `PRC Lead`_ -- `PRC Meeting Minutes`_ -- `PRC Slack Channel`_ -- `PRC Open Point List`_ -- `PIM Open Point List`_ -- PRC Repositories: - - https://github.com/eclipse-score/process_description - - https://github.com/eclipse-score/score -Infrastructure Community (INF) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. _INF Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-INF-team -.. _INF Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-INF-lead -.. _INF Meeting Minutes: https://github.com/eclipse-score/score/wiki/INFM -.. _INF Slack Channel: https://sdvworkinggroup.slack.com/archives/C0894QGRZDM -.. _INF Open Point List: https://github.com/orgs/eclipse-score/projects/6 - -- INF Responsibilities - - providing and maintaining the development infrastructure: Compiler, IDE, build toolchains -- `INF Core Members`_ -- `INF Lead`_ -- `INF Meeting Minutes`_ -- `INF Slack Channel`_ -- `INF Open Point List`_ -- INF Toolchain Repositories: - - https://github.com/eclipse-score/bazel_platforms - - https://github.com/eclipse-score/toolchains_gcc - - https://github.com/eclipse-score/toolchains_gcc_packages - - https://github.com/eclipse-score/toolchains_qnx - - https://github.com/eclipse-score/toolchains_rust -- INF Tooling Repositories: - - https://github.com/eclipse-score/devcontainer - - https://github.com/eclipse-score/docs-as-code - - https://github.com/eclipse-score/tooling -- INF other Repositories: - - https://github.com/eclipse-score/apt-install - - https://github.com/eclipse-score/cicd-workflows - - https://github.com/eclipse-score/bazel_registry - - https://github.com/eclipse-score/bazel_registry_ui - - https://github.com/eclipse-score/.eclipsefdn - - https://github.com/eclipse-score/examples - Testing Community (TST) ^^^^^^^^^^^^^^^^^^^^^^^ .. _TST Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-TST-team @@ -307,15 +369,6 @@ Marketing & Communication Community - https://github.com/eclipse-score/eclipse-score-website-preview - https://github.com/eclipse-score/eclipse-score-website-published -.. _pmp_pm_feature_teams: - -Feature Teams -------------- -*Feature Teams* have end-to-end responsibility for providing specific functionalities. This includes all -development aspects beginning with the architecture definition to the integration test. -One *Team* may work independently of other *Teams* on the team-assigned *GitHub Issues*, -and needs at least one :need:`Committer <rl__committer>` who can approve & merge the Pull Requests -Each *Feature Team* has one *Lead* to organize the Team`s work. The following *Feature Teams* are defined in the *S-CORE* project: @@ -625,7 +678,7 @@ The Progress of the work is documented with help of the :ref:`Status of an Issue Issues Types ^^^^^^^^^^^^ -.. image:: _assets/issue_types.drawio.svg +.. image:: _assets/score_project_management_issue_types.drawio.svg :width: 900 :alt: Issue Types :align: center @@ -700,8 +753,8 @@ Issue Status Each *GitHub issue* has a **Status** depending on the :ref:`GitHub Project <pmp_pm_gh_projects>`, we use the following Standard Flow for all :ref:`Issue Types <pmp_pm_issue_types>`: -.. image:: _assets/issue_status_flow.drawio.svg - :width: 300 +.. image:: _assets/score_project_management_issue_status_flow.drawio.svg + :width: 900 :alt: Issue Status :align: center @@ -777,7 +830,7 @@ Beside one for each (committee, community, feature) Team, there is one for `Feat and one for the complete `S-CORE Roadmap <https://github.com/orgs/eclipse-score/projects/17>`_. Inside a GitHub Project, there is the possibility to generate different views for Table, Board and Roadmap supporting Backlogs, Open Point or Task Lists and other useful perspectives. -.. image:: _assets/planning_overview.drawio.svg +.. image:: _assets/score_project_management_planning_overview.drawio.svg :width: 900 :alt: Planning Overview :align: center @@ -788,7 +841,7 @@ Kanban View ^^^^^^^^^^^ The `GitHub Board <https://docs.github.com/en/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/customizing-the-board-layout>`_ is supporting the Kanban View, enabling to set the Work In Progress Limits. -.. image:: _assets/kanban.drawio.svg +.. image:: _assets/score_project_management_kanban.drawio.svg :width: 900 :alt: Kanban View :align: center @@ -818,7 +871,7 @@ whereas the overall top-down plan is in the responsibility of the :ref:`Technica Tracking Progress ----------------- -The :ref:`Technical Lead Circle <pmp_pm_tlc>` regularly monitors the status of the work for upcoming Milestones and Releases in https://github.com/orgs/eclipse-score/projects/17 based on +The :ref:`Technical Lead Circle <pmp_pm_tlc>` regularly monitors the status of the work for upcoming Milestones and Releases in https://github.com/orgs/eclipse-score/projects/17/ based on :ref:`Product Increments <pmp_pm_product_increment>`. @@ -828,12 +881,3 @@ Dashboards GitHub offers mechanism in form of charts to track issues: - `Product Increments Open last 3 months <https://github.com/orgs/eclipse-score/projects/17/insights/4>`_ - -PMP Definition of Done -====================== -- The **Definitions of Done** for all Platform Management Plans are fulfilled. -- Project Organization: Org Chart and description is available and up to date. -- Project Internal Communication: Team Overview with meeting structure is available & Slack channels are established and maintained. -- Scheduling: Meetings are scheduled in the Eclipse SDV calendar. -- Milestones & Releases: Roadmap with Milestones and Releases are available and up to date. -- General: All Reviews are performed according to their definitions, the respective templates are used. From db3be854bf49bb3ea385e1a2308ade74a42a2557 Mon Sep 17 00:00:00 2001 From: Andreas Mittag <andreas.mittag@etas.com> Date: Mon, 26 Jan 2026 07:19:29 +0000 Subject: [PATCH 108/128] issue types coloured --- ..._change_request_workflow_simple.drawio.svg | 1087 ++++++++++++++++- ...ore_problem_resolution_overview.drawio.svg | 91 +- ...w_simple.drawio - Copy.svg:Zone.Identifier | 0 ...blem_resolution_workflow_simple.drawio.svg | 1061 +++++++++++++++- 4 files changed, 2227 insertions(+), 12 deletions(-) create mode 100644 docs/platform_management_plan/_assets/score_problem_resolution_workflow_simple.drawio - Copy.svg:Zone.Identifier diff --git a/docs/platform_management_plan/_assets/score_change_request_workflow_simple.drawio.svg b/docs/platform_management_plan/_assets/score_change_request_workflow_simple.drawio.svg index 9b49ebc1bc9..a50bb7b559e 100644 --- a/docs/platform_management_plan/_assets/score_change_request_workflow_simple.drawio.svg +++ b/docs/platform_management_plan/_assets/score_change_request_workflow_simple.drawio.svg @@ -1,4 +1,1083 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Do not edit this file with editors other than diagrams.net --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1031px" height="1053px" viewBox="-0.5 -0.5 1031 1053" content="<mxfile host="Electron" modified="2025-09-07T11:20:28.836Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/20.3.0 Chrome/104.0.5112.114 Electron/20.1.3 Safari/537.36" etag="pzJW9AMS_ExNRxj-02vJ" version="20.3.0" type="device"><diagram id="0w90vh-N4AjfHz9zUi27" name="Model">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</diagram></mxfile>"><defs/><g><rect x="150" y="720" width="880" height="140" fill="#e1d5e7" stroke="#9673a6" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 878px; height: 1px; padding-top: 790px; margin-left: 152px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><br /><br /><br /><br /><br /><br /><br /><br /><br />status:<br />closed<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /></div></div></div></foreignObject><text x="152" y="794" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" font-weight="bold">status:...</text></switch></g><rect x="150" y="580" width="880" height="140" fill="#fff2cc" stroke="#d6b656" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 878px; height: 1px; padding-top: 650px; margin-left: 152px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><br /><br /><br /><br /><br /><br /><br /><br /><br />status:<br />in implementation<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /></div></div></div></foreignObject><text x="152" y="654" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" font-weight="bold">status:...</text></switch></g><rect x="150" y="300" width="880" height="140" fill="#f5f5f5" stroke="#666666" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 878px; height: 1px; padding-top: 370px; margin-left: 152px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />status:<br />open<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /></div></div></div></foreignObject><text x="152" y="374" fill="#333333" font-family="Helvetica" font-size="12px" font-weight="bold">status:...</text></switch></g><rect x="150" y="440" width="880" height="140" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 878px; height: 1px; padding-top: 510px; margin-left: 152px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><br /><br /><br /><br /><br />status:<br />in review<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><div style=""><br /></div></div></div></div></foreignObject><text x="152" y="514" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" font-weight="bold">status:...</text></switch></g><path d="M 385 360 L 443.63 360" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 448.88 360 L 441.88 363.5 L 443.63 360 L 441.88 356.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 325 390 L 325 430 L 770 430 L 770 396.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 770 391.12 L 773.5 398.12 L 770 396.37 L 766.5 398.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 325 390 L 325 430 L 950 430 L 950 396.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 950 391.12 L 953.5 398.12 L 950 396.37 L 946.5 398.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="265" y="330" width="120" height="60" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 360px; margin-left: 266px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ISSUE<br />[Open]</div></div></div></foreignObject><text x="325" y="364" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">ISSUE...</text></switch></g><path d="M 320 70 L 320 165.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 320 170.88 L 316.5 163.88 L 320 165.63 L 323.5 163.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="260" y="100" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 115px; margin-left: 290px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">creates</div></div></div></foreignObject><text x="290" y="119" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">creates</text></switch></g><ellipse cx="320" cy="55" rx="15" ry="15" fill="#000000" stroke="none" pointer-events="all"/><rect x="270" y="0" width="120" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 20px; margin-left: 330px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><b><font style="font-size: 18px;">Contributor</font></b></div></div></div></foreignObject><text x="330" y="24" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Contributor</text></switch></g><path d="M 260 212 L 240 212 L 240 345 L 258.63 345" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 263.88 345 L 256.88 348.5 L 258.63 345 L 256.88 341.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 260 172 L 380 172 L 380 240 Q 350 218.4 320 240 Q 290 261.6 260 240 L 260 184 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 200px; margin-left: 261px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Change Request</div></div></div></foreignObject><text x="320" y="204" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Change Request</text></switch></g><path d="M 325 826.37 L 325 850 L 770 850 L 770 820" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 325 821.12 L 328.5 828.12 L 325 826.37 L 321.5 828.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="265" y="760" width="120" height="60" fill="#e1d5e7" stroke="#9673a6" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 790px; margin-left: 266px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ISSUE<br />[Closed]</div></div></div></foreignObject><text x="325" y="794" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">ISSUE...</text></switch></g><path d="M 330 540 L 330 570 L 770 570 L 770 546.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 770 541.12 L 773.5 548.12 L 770 546.37 L 766.5 548.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="265" y="480" width="120" height="60" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 510px; margin-left: 266px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ISSUE<br />[Open]</div></div></div></foreignObject><text x="325" y="514" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">ISSUE...</text></switch></g><rect x="150" y="860" width="880" height="140" fill="#bac8d3" stroke="#23445d" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 878px; height: 1px; padding-top: 930px; margin-left: 152px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><br /><br /><br /><br /><br />CR status:<br />rejected<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><div style=""><br /></div></div></div></div></foreignObject><text x="152" y="934" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" font-weight="bold">CR status:...</text></switch></g><path d="M 325 966.37 L 325 990 L 770 990 L 770 960" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 325 961.12 L 328.5 968.12 L 325 966.37 L 321.5 968.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="265" y="900" width="120" height="60" fill="#647687" stroke="#314354" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 930px; margin-left: 266px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ISSUE<br />[Closed as not planned]</div></div></div></foreignObject><text x="325" y="934" fill="#ffffff" font-family="Helvetica" font-size="12px" text-anchor="middle">ISSUE...</text></switch></g><path d="M 494.97 390 L 494.97 473.62" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 494.97 478.87 L 491.47 471.87 L 494.97 473.62 L 498.47 471.87 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="450" y="330" width="90" height="60" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><path d="M 450 350 L 540 350" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 470 330 L 470 390" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 360px; margin-left: 451px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><br />status:<br />     No Status</div></div></div></foreignObject><text x="495" y="364" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">status:...</text></switch></g><rect x="469" y="326" width="70" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 341px; margin-left: 504px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Projects</div></div></div></foreignObject><text x="504" y="345" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Projects</text></switch></g><path d="M 385 510 L 443.63 510" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 448.88 510 L 441.88 513.5 L 443.63 510 L 441.88 506.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 495.02 540 L 495.02 613.62" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 495.02 618.87 L 491.52 611.87 L 495.02 613.62 L 498.52 611.87 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="450" y="480" width="90" height="60" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><path d="M 450 500 L 540 500" fill="none" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/><path d="M 470 480 L 470 540" fill="none" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 510px; margin-left: 451px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><br />status:<br />Todo</div></div></div></foreignObject><text x="495" y="514" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">status:...</text></switch></g><rect x="469" y="476" width="70" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 491px; margin-left: 504px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Projects</div></div></div></foreignObject><text x="504" y="495" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Projects</text></switch></g><path d="M 265 665 L 230 665 L 230 915 L 258.63 915" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 263.88 915 L 256.88 918.5 L 258.63 915 L 256.88 911.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 325 680 L 325 710 L 950 710 L 950 686.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 950 681.12 L 953.5 688.12 L 950 686.37 L 946.5 688.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 325 680 L 325 710 L 770 710 L 770 686.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 770 681.12 L 773.5 688.12 L 770 686.37 L 766.5 688.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="265" y="620" width="120" height="60" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 650px; margin-left: 266px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ISSUE<br />[Open]</div></div></div></foreignObject><text x="325" y="654" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">ISSUE...</text></switch></g><path d="M 384 650 L 442.63 650" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 447.88 650 L 440.88 653.5 L 442.63 650 L 440.88 646.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 493.97 680 L 493.97 753.62" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 493.97 758.87 L 490.47 751.87 L 493.97 753.62 L 497.47 751.87 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="449" y="620" width="90" height="60" fill="#fff2cc" stroke="#d6b656" pointer-events="all"/><path d="M 449 640 L 539 640" fill="none" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><path d="M 469 620 L 469 680" fill="none" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 650px; margin-left: 450px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><br />status:<br />     In Progress</div></div></div></foreignObject><text x="494" y="654" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">status:...</text></switch></g><rect x="468" y="616" width="70" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 631px; margin-left: 503px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Projects</div></div></div></foreignObject><text x="503" y="635" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Projects</text></switch></g><path d="M 265 510 L 130 510 L 130 930 L 258.63 930" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 263.88 930 L 256.88 933.5 L 258.63 930 L 256.88 926.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 390.37 790 L 449 790" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 385.12 790 L 392.12 786.5 L 390.37 790 L 392.12 793.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 539 790 L 560 790 L 560 650 L 545.37 650" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 540.12 650 L 547.12 646.5 L 545.37 650 L 547.12 653.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="449" y="760" width="90" height="60" fill="#e1d5e7" stroke="#9673a6" pointer-events="all"/><path d="M 449 780 L 539 780" fill="none" stroke="#9673a6" stroke-miterlimit="10" pointer-events="all"/><path d="M 469 760 L 469 820" fill="none" stroke="#9673a6" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 790px; margin-left: 450px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><br />status:<br />     Done</div></div></div></foreignObject><text x="494" y="794" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">status:...</text></switch></g><rect x="468" y="756" width="70" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 771px; margin-left: 503px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Projects</div></div></div></foreignObject><text x="503" y="775" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Projects</text></switch></g><path d="M 35 340.5 L 45 340.5 L 45 398.5 L 55.5 398.5 L 40 417.5 L 24.5 398.5 L 35 398.5 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="20" y="290" width="80" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 305px; margin-left: 60px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><b><font style="font-size: 14px;">Creation</font></b></div></div></div></foreignObject><text x="60" y="309" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Creation</text></switch></g><rect x="20" y="440" width="80" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 455px; margin-left: 60px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><b><font style="font-size: 14px;">Analysis</font></b></div></div></div></foreignObject><text x="60" y="459" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Analysis</text></switch></g><path d="M 35 502.5 L 45 502.5 L 45 560.5 L 55.5 560.5 L 40 579.5 L 24.5 560.5 L 35 560.5 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="0" y="580" width="120" height="50" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 605px; margin-left: 60px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><b><font style="font-size: 14px;">Implement and <br />Monitor<br /></font></b></div></div></div></foreignObject><text x="60" y="609" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Implement and...</text></switch></g><path d="M 35 642.5 L 45 642.5 L 45 700.5 L 55.5 700.5 L 40 719.5 L 24.5 700.5 L 35 700.5 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="25" y="740" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 755px; margin-left: 55px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><b><font style="font-size: 14px;">Close<br /></font></b></div></div></div></foreignObject><text x="55" y="759" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Close </text></switch></g><path d="M 35 782.5 L 45 782.5 L 45 840.5 L 55.5 840.5 L 40 859.5 L 24.5 840.5 L 35 840.5 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 265 360 L 110 360 L 110 950 L 258.63 950" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 263.88 950 L 256.88 953.5 L 258.63 950 L 256.88 946.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 1010 360 L 1020 360 L 1020 930 L 836.37 930" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 831.12 930 L 838.12 926.5 L 836.37 930 L 838.12 933.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="890" y="330" width="120" height="60" fill="#008a00" stroke="#005700" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 360px; margin-left: 891px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">PR<br />[Open]</div></div></div></foreignObject><text x="950" y="364" fill="#ffffff" font-family="Helvetica" font-size="12px" text-anchor="middle">PR...</text></switch></g><rect x="710" y="330" width="120" height="60" fill="#647687" stroke="#314354" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 360px; margin-left: 711px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">PR<br />[Draft]</div></div></div></foreignObject><text x="770" y="364" fill="#ffffff" font-family="Helvetica" font-size="12px" text-anchor="middle">PR...</text></switch></g><path d="M 1010 510 L 1020 510 L 1020 930 L 836.37 930" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 831.12 930 L 838.12 926.5 L 836.37 930 L 838.12 933.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="890" y="480" width="120" height="60" fill="#008a00" stroke="#005700" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 510px; margin-left: 891px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">PR<br />[Open]</div></div></div></foreignObject><text x="950" y="514" fill="#ffffff" font-family="Helvetica" font-size="12px" text-anchor="middle">PR...</text></switch></g><rect x="710" y="480" width="120" height="60" fill="#647687" stroke="#314354" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 510px; margin-left: 711px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">PR<br />[Draft]</div></div></div></foreignObject><text x="770" y="514" fill="#ffffff" font-family="Helvetica" font-size="12px" text-anchor="middle">PR...</text></switch></g><rect x="710" y="760" width="120" height="60" fill="#6a00ff" stroke="#3700cc" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 790px; margin-left: 711px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">PR<br />[Merged]</div></div></div></foreignObject><text x="770" y="794" fill="#ffffff" font-family="Helvetica" font-size="12px" text-anchor="middle">PR...</text></switch></g><rect x="710" y="900" width="120" height="60" fill="#d80073" stroke="#a50040" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 930px; margin-left: 711px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">PR<br />[Closed]</div></div></div></foreignObject><text x="770" y="934" fill="#ffffff" font-family="Helvetica" font-size="12px" text-anchor="middle">PR...</text></switch></g><rect x="840" y="340" width="40" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 355px; margin-left: 860px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: nowrap;">OR</div></div></div></foreignObject><text x="860" y="359" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">OR</text></switch></g><rect x="840" y="495" width="40" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 510px; margin-left: 860px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: nowrap;">OR</div></div></div></foreignObject><text x="860" y="514" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">OR</text></switch></g><path d="M 329.44 540 L 329.4 570 L 950 570 L 950 546.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 950 541.12 L 953.5 548.12 L 950 546.37 L 946.5 548.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 1010 650 L 1020 650 L 1020 930 L 836.37 930" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 831.12 930 L 838.12 926.5 L 836.37 930 L 838.12 933.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="890" y="620" width="120" height="60" fill="#008a00" stroke="#005700" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 650px; margin-left: 891px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">PR<br />[Open]</div></div></div></foreignObject><text x="950" y="654" fill="#ffffff" font-family="Helvetica" font-size="12px" text-anchor="middle">PR...</text></switch></g><rect x="710" y="620" width="120" height="60" fill="#647687" stroke="#314354" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 650px; margin-left: 711px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">PR<br />[Draft</div></div></div></foreignObject><text x="770" y="654" fill="#ffffff" font-family="Helvetica" font-size="12px" text-anchor="middle">PR...</text></switch></g><rect x="840" y="635" width="40" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 650px; margin-left: 860px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: nowrap;">OR</div></div></div></foreignObject><text x="860" y="654" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">OR</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> \ No newline at end of file +<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1031px" height="1053px" viewBox="-0.5 -0.5 1031 1053" content="<mxfile><diagram id="0w90vh-N4AjfHz9zUi27" name="Model">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</diagram></mxfile>"> + <defs/> + <g> + <g> + <rect x="150" y="720" width="880" height="140" fill="#e1d5e7" stroke="#9673a6" pointer-events="all" style="fill: light-dark(rgb(225, 213, 231), rgb(57, 47, 63)); stroke: light-dark(rgb(150, 115, 166), rgb(149, 119, 163));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 878px; height: 1px; padding-top: 790px; margin-left: 152px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + status: + <br/> + closed + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + </div> + </div> + </div> + </foreignObject> + <text x="152" y="794" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" font-weight="bold"> + status:... + </text> + </switch> + </g> + </g> + <g> + <rect x="150" y="580" width="880" height="140" fill="#fff2cc" stroke="#d6b656" pointer-events="all" style="fill: light-dark(rgb(255, 242, 204), rgb(40, 29, 0)); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 878px; height: 1px; padding-top: 650px; margin-left: 152px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + status: + <br/> + in implementation + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + </div> + </div> + </div> + </foreignObject> + <text x="152" y="654" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" font-weight="bold"> + status:... + </text> + </switch> + </g> + </g> + <g> + <rect x="150" y="300" width="880" height="140" fill="#f5f5f5" stroke="#666666" pointer-events="all" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 878px; height: 1px; padding-top: 370px; margin-left: 152px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #333333; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + status: + <br/> + open + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + </div> + </div> + </div> + </foreignObject> + <text x="152" y="374" fill="#333333" font-family=""Helvetica"" font-size="12px" font-weight="bold"> + status:... + </text> + </switch> + </g> + </g> + <g> + <rect x="150" y="440" width="880" height="140" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 878px; height: 1px; padding-top: 510px; margin-left: 152px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> + <br/> + <br/> + <br/> + <br/> + <br/> + status: + <br/> + in review + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <div style=""> + <br/> + </div> + </div> + </div> + </div> + </foreignObject> + <text x="152" y="514" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" font-weight="bold"> + status:... + </text> + </switch> + </g> + </g> + <g> + <path d="M 385 360 L 443.63 360" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 448.88 360 L 441.88 363.5 L 443.63 360 L 441.88 356.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 325 390 L 325 430 L 770 430 L 770 396.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 770 391.12 L 773.5 398.12 L 770 396.37 L 766.5 398.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 325 390 L 325 430 L 950 430 L 950 396.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 950 391.12 L 953.5 398.12 L 950 396.37 L 946.5 398.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="265" y="330" width="120" height="60" fill="#d5e8d4" stroke="#008a00" stroke-width="4" pointer-events="all" style="fill: light-dark(rgb(213, 232, 212), rgb(31, 47, 30)); stroke: light-dark(rgb(0, 138, 0), rgb(67, 186, 67));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 360px; margin-left: 266px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Issue + <br/> + [Open] + </div> + </div> + </div> + </foreignObject> + <text x="325" y="364" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Issue... + </text> + </switch> + </g> + </g> + <g> + <path d="M 320 70 L 320 165.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 320 170.88 L 316.5 163.88 L 320 165.63 L 323.5 163.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="260" y="100" width="60" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 115px; margin-left: 290px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + creates + </div> + </div> + </div> + </foreignObject> + <text x="290" y="119" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + creates + </text> + </switch> + </g> + </g> + <g> + <ellipse cx="320" cy="55" rx="15" ry="15" fill="#000000" stroke="none" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> + </g> + <g> + <rect x="270" y="0" width="120" height="40" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 20px; margin-left: 330px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + <b> + <font style="font-size: 18px;"> + Contributor + </font> + </b> + </div> + </div> + </div> + </foreignObject> + <text x="330" y="24" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Contributor + </text> + </switch> + </g> + </g> + <g> + <path d="M 260 212 L 240 212 L 240 345 L 258.63 345" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 263.88 345 L 256.88 348.5 L 258.63 345 L 256.88 341.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 260 172 L 380 172 L 380 240 Q 350 218.4 320 240 Q 290 261.6 260 240 L 260 184 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 200px; margin-left: 261px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Change Request + </div> + </div> + </div> + </foreignObject> + <text x="320" y="204" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Change Request + </text> + </switch> + </g> + </g> + <g> + <path d="M 325 826.37 L 325 850 L 770 850 L 770 820" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 325 821.12 L 328.5 828.12 L 325 826.37 L 321.5 828.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="265" y="760" width="120" height="60" fill="#e1d5e7" stroke="#9673a6" stroke-width="5" pointer-events="all" style="fill: light-dark(rgb(225, 213, 231), rgb(57, 47, 63)); stroke: light-dark(rgb(150, 115, 166), rgb(149, 119, 163));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 790px; margin-left: 266px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Issue + <br/> + [Closed] + </div> + </div> + </div> + </foreignObject> + <text x="325" y="794" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Issue... + </text> + </switch> + </g> + </g> + <g> + <path d="M 330 540 L 330 570 L 770 570 L 770 546.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 770 541.12 L 773.5 548.12 L 770 546.37 L 766.5 548.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="265" y="480" width="120" height="60" fill="#d5e8d4" stroke="#008a00" stroke-width="4" pointer-events="all" style="fill: light-dark(rgb(213, 232, 212), rgb(31, 47, 30)); stroke: light-dark(rgb(0, 138, 0), rgb(67, 186, 67));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 510px; margin-left: 266px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Issue + <br/> + [Open] + </div> + </div> + </div> + </foreignObject> + <text x="325" y="514" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Issue... + </text> + </switch> + </g> + </g> + <g> + <rect x="150" y="860" width="880" height="140" fill="#bac8d3" stroke="#23445d" pointer-events="all" style="fill: light-dark(rgb(186, 200, 211), rgb(57, 69, 78)); stroke: light-dark(rgb(35, 68, 93), rgb(160, 188, 210));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 878px; height: 1px; padding-top: 930px; margin-left: 152px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> + <br/> + <br/> + <br/> + <br/> + <br/> + CR status: + <br/> + rejected + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <div style=""> + <br/> + </div> + </div> + </div> + </div> + </foreignObject> + <text x="152" y="934" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" font-weight="bold"> + CR status:... + </text> + </switch> + </g> + </g> + <g> + <path d="M 325 966.37 L 325 990 L 770 990 L 770 960" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 325 961.12 L 328.5 968.12 L 325 966.37 L 321.5 968.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="265" y="900" width="120" height="60" fill="#647687" stroke="#314354" stroke-width="5" pointer-events="all" style="fill: light-dark(rgb(100, 118, 135), rgb(125, 140, 155)); stroke: light-dark(rgb(49, 67, 84), rgb(169, 184, 199));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 930px; margin-left: 266px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Issue + <br/> + [Closed as not planned] + </div> + </div> + </div> + </foreignObject> + <text x="325" y="934" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Issue... + </text> + </switch> + </g> + </g> + <g> + <path d="M 494.97 390 L 494.97 473.62" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 494.97 478.87 L 491.47 471.87 L 494.97 473.62 L 498.47 471.87 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="450" y="330" width="90" height="60" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 450 350 L 540 350" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 470 330 L 470 390" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 360px; margin-left: 451px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + <br/> + status: + <br/> + No Status + </div> + </div> + </div> + </foreignObject> + <text x="495" y="364" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + status:... + </text> + </switch> + </g> + </g> + <g> + <rect x="469" y="326" width="70" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 341px; margin-left: 504px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + Projects + </div> + </div> + </div> + </foreignObject> + <text x="504" y="345" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Projects + </text> + </switch> + </g> + </g> + <g> + <path d="M 385 510 L 418 510.5 L 443.63 510.1" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 448.88 510.02 L 441.94 513.63 L 443.63 510.1 L 441.83 506.63 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 495.02 540 L 495.02 613.62" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 495.02 618.87 L 491.52 611.87 L 495.02 613.62 L 498.52 611.87 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="450" y="480" width="90" height="60" fill="#0050ef" stroke="#001dbc" pointer-events="all" style="fill: light-dark(rgb(0, 80, 239), rgb(109, 178, 255)); stroke: light-dark(rgb(0, 29, 188), rgb(178, 203, 255));"/> + <path d="M 450 500 L 540 500" fill="none" stroke="#001dbc" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 29, 188), rgb(178, 203, 255));"/> + <path d="M 470 480 L 470 540" fill="none" stroke="#001dbc" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 29, 188), rgb(178, 203, 255));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 510px; margin-left: 451px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + <br/> + status: + <br/> + Todo + </div> + </div> + </div> + </foreignObject> + <text x="495" y="514" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + status:... + </text> + </switch> + </g> + </g> + <g> + <rect x="469" y="476" width="70" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 491px; margin-left: 504px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #FFFFFF; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#FFFFFF, #121212); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + Projects + </div> + </div> + </div> + </foreignObject> + <text x="504" y="495" fill="#FFFFFF" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Projects + </text> + </switch> + </g> + </g> + <g> + <path d="M 265 665 L 230 665 L 230 915 L 258.63 915" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 263.88 915 L 256.88 918.5 L 258.63 915 L 256.88 911.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 325 680 L 325 710 L 950 710 L 950 686.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 950 681.12 L 953.5 688.12 L 950 686.37 L 946.5 688.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 325 680 L 325 710 L 770 710 L 770 686.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 770 681.12 L 773.5 688.12 L 770 686.37 L 766.5 688.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="265" y="620" width="120" height="60" fill="#d5e8d4" stroke="#008a00" stroke-width="4" pointer-events="all" style="fill: light-dark(rgb(213, 232, 212), rgb(31, 47, 30)); stroke: light-dark(rgb(0, 138, 0), rgb(67, 186, 67));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 650px; margin-left: 266px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Issue + <br/> + [Open] + </div> + </div> + </div> + </foreignObject> + <text x="325" y="654" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Issue... + </text> + </switch> + </g> + </g> + <g> + <path d="M 384 650 L 417 650.5 L 442.63 650.1" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 447.88 650.02 L 440.94 653.63 L 442.63 650.1 L 440.83 646.63 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 493.97 680 L 493.97 753.62" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 493.97 758.87 L 490.47 751.87 L 493.97 753.62 L 497.47 751.87 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="449" y="620" width="90" height="60" fill="#f0a30a" stroke="#bd7000" pointer-events="all" style="fill: light-dark(rgb(240, 163, 10), rgb(154, 88, 0)); stroke: light-dark(rgb(189, 112, 0), rgb(193, 127, 31));"/> + <path d="M 449 640 L 539 640" fill="none" stroke="#bd7000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(189, 112, 0), rgb(193, 127, 31));"/> + <path d="M 469 620 L 469 680" fill="none" stroke="#bd7000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(189, 112, 0), rgb(193, 127, 31));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 650px; margin-left: 450px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + <br/> + status: + <br/> + In Progress + </div> + </div> + </div> + </foreignObject> + <text x="494" y="654" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + status:... + </text> + </switch> + </g> + </g> + <g> + <rect x="468" y="616" width="70" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 631px; margin-left: 503px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + Projects + </div> + </div> + </div> + </foreignObject> + <text x="503" y="635" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Projects + </text> + </switch> + </g> + </g> + <g> + <path d="M 265 510 L 130 510 L 130 930 L 258.63 930" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 263.88 930 L 256.88 933.5 L 258.63 930 L 256.88 926.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 390.37 790.1 L 417 790.5 L 449 790" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 385.12 790.02 L 392.17 786.62 L 390.37 790.1 L 392.06 793.62 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 539 790 L 560 790 L 560 650 L 545.37 650" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 540.12 650 L 547.12 646.5 L 545.37 650 L 547.12 653.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="449" y="760" width="90" height="60" fill="#008a00" stroke="#005700" pointer-events="all" style="fill: light-dark(rgb(0, 138, 0), rgb(67, 186, 67)); stroke: light-dark(rgb(0, 87, 0), rgb(130, 205, 130));"/> + <path d="M 449 780 L 539 780" fill="none" stroke="#005700" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 87, 0), rgb(130, 205, 130));"/> + <path d="M 469 760 L 469 820" fill="none" stroke="#005700" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 87, 0), rgb(130, 205, 130));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 790px; margin-left: 450px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + <br/> + status: + <br/> + Done + </div> + </div> + </div> + </foreignObject> + <text x="494" y="794" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + status:... + </text> + </switch> + </g> + </g> + <g> + <rect x="468" y="756" width="70" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 771px; margin-left: 503px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #FFFFFF; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#FFFFFF, #121212); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + Projects + </div> + </div> + </div> + </foreignObject> + <text x="503" y="775" fill="#FFFFFF" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Projects + </text> + </switch> + </g> + </g> + <g> + <path d="M 35 340.5 L 45 340.5 L 45 398.5 L 55.5 398.5 L 40 417.5 L 24.5 398.5 L 35 398.5 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="20" y="290" width="80" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 305px; margin-left: 60px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + <b> + <font style="font-size: 14px;"> + Creation + </font> + </b> + </div> + </div> + </div> + </foreignObject> + <text x="60" y="309" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Creation + </text> + </switch> + </g> + </g> + <g> + <rect x="20" y="440" width="80" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 455px; margin-left: 60px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + <b> + <font style="font-size: 14px;"> + Analysis + </font> + </b> + </div> + </div> + </div> + </foreignObject> + <text x="60" y="459" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Analysis + </text> + </switch> + </g> + </g> + <g> + <path d="M 35 502.5 L 45 502.5 L 45 560.5 L 55.5 560.5 L 40 579.5 L 24.5 560.5 L 35 560.5 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="0" y="580" width="120" height="50" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 605px; margin-left: 60px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + <b> + <font style="font-size: 14px;"> + Implement and + <br/> + Monitor + <br/> + </font> + </b> + </div> + </div> + </div> + </foreignObject> + <text x="60" y="609" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Implement and... + </text> + </switch> + </g> + </g> + <g> + <path d="M 35 642.5 L 45 642.5 L 45 700.5 L 55.5 700.5 L 40 719.5 L 24.5 700.5 L 35 700.5 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="25" y="740" width="60" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 755px; margin-left: 55px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + <b> + <font style="font-size: 14px;"> + Close + <br/> + </font> + </b> + </div> + </div> + </div> + </foreignObject> + <text x="55" y="759" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Close + </text> + </switch> + </g> + </g> + <g> + <path d="M 35 782.5 L 45 782.5 L 45 840.5 L 55.5 840.5 L 40 859.5 L 24.5 840.5 L 35 840.5 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 265 360 L 110 360 L 110 950 L 258.63 950" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 263.88 950 L 256.88 953.5 L 258.63 950 L 256.88 946.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 1010 360 L 1020 360 L 1020 930 L 836.37 930" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 831.12 930 L 838.12 926.5 L 836.37 930 L 838.12 933.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="890" y="330" width="120" height="60" fill="#008a00" stroke="#005700" pointer-events="all" style="fill: light-dark(rgb(0, 138, 0), rgb(67, 186, 67)); stroke: light-dark(rgb(0, 87, 0), rgb(130, 205, 130));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 360px; margin-left: 891px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + PR + <br/> + [Open] + </div> + </div> + </div> + </foreignObject> + <text x="950" y="364" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + PR... + </text> + </switch> + </g> + </g> + <g> + <rect x="710" y="330" width="120" height="60" fill="#647687" stroke="#314354" pointer-events="all" style="fill: light-dark(rgb(100, 118, 135), rgb(125, 140, 155)); stroke: light-dark(rgb(49, 67, 84), rgb(169, 184, 199));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 360px; margin-left: 711px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + PR + <br/> + [Draft] + </div> + </div> + </div> + </foreignObject> + <text x="770" y="364" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + PR... + </text> + </switch> + </g> + </g> + <g> + <path d="M 1010 510 L 1020 510 L 1020 930 L 836.37 930" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 831.12 930 L 838.12 926.5 L 836.37 930 L 838.12 933.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="890" y="480" width="120" height="60" fill="#008a00" stroke="#005700" pointer-events="all" style="fill: light-dark(rgb(0, 138, 0), rgb(67, 186, 67)); stroke: light-dark(rgb(0, 87, 0), rgb(130, 205, 130));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 510px; margin-left: 891px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + PR + <br/> + [Open] + </div> + </div> + </div> + </foreignObject> + <text x="950" y="514" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + PR... + </text> + </switch> + </g> + </g> + <g> + <rect x="710" y="480" width="120" height="60" fill="#647687" stroke="#314354" pointer-events="all" style="fill: light-dark(rgb(100, 118, 135), rgb(125, 140, 155)); stroke: light-dark(rgb(49, 67, 84), rgb(169, 184, 199));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 510px; margin-left: 711px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + PR + <br/> + [Draft] + </div> + </div> + </div> + </foreignObject> + <text x="770" y="514" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + PR... + </text> + </switch> + </g> + </g> + <g> + <rect x="710" y="760" width="120" height="60" fill="#6a00ff" stroke="#3700cc" pointer-events="all" style="fill: light-dark(rgb(106, 0, 255), rgb(255, 167, 255)); stroke: light-dark(rgb(55, 0, 204), rgb(239, 192, 255));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 790px; margin-left: 711px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + PR + <br/> + [Merged] + </div> + </div> + </div> + </foreignObject> + <text x="770" y="794" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + PR... + </text> + </switch> + </g> + </g> + <g> + <rect x="710" y="900" width="120" height="60" fill="#d80073" stroke="#a50040" pointer-events="all" style="fill: light-dark(rgb(216, 0, 115), rgb(255, 144, 243)); stroke: light-dark(rgb(165, 0, 64), rgb(255, 169, 224));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 930px; margin-left: 711px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + PR + <br/> + [Closed] + </div> + </div> + </div> + </foreignObject> + <text x="770" y="934" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + PR... + </text> + </switch> + </g> + </g> + <g> + <rect x="840" y="340" width="40" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 355px; margin-left: 860px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: nowrap; "> + OR + </div> + </div> + </div> + </foreignObject> + <text x="860" y="359" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle" font-weight="bold"> + OR + </text> + </switch> + </g> + </g> + <g> + <rect x="840" y="495" width="40" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 510px; margin-left: 860px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: nowrap; "> + OR + </div> + </div> + </div> + </foreignObject> + <text x="860" y="514" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle" font-weight="bold"> + OR + </text> + </switch> + </g> + </g> + <g> + <path d="M 329.44 540 L 329.4 570 L 950 570 L 950 546.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 950 541.12 L 953.5 548.12 L 950 546.37 L 946.5 548.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 1010 650 L 1020 650 L 1020 930 L 836.37 930" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 831.12 930 L 838.12 926.5 L 836.37 930 L 838.12 933.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="890" y="620" width="120" height="60" fill="#008a00" stroke="#005700" pointer-events="all" style="fill: light-dark(rgb(0, 138, 0), rgb(67, 186, 67)); stroke: light-dark(rgb(0, 87, 0), rgb(130, 205, 130));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 650px; margin-left: 891px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + PR + <br/> + [Open] + </div> + </div> + </div> + </foreignObject> + <text x="950" y="654" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + PR... + </text> + </switch> + </g> + </g> + <g> + <rect x="710" y="620" width="120" height="60" fill="#647687" stroke="#314354" pointer-events="all" style="fill: light-dark(rgb(100, 118, 135), rgb(125, 140, 155)); stroke: light-dark(rgb(49, 67, 84), rgb(169, 184, 199));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 650px; margin-left: 711px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + PR + <br/> + [Draft] + </div> + </div> + </div> + </foreignObject> + <text x="770" y="654" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + PR... + </text> + </switch> + </g> + </g> + <g> + <rect x="840" y="635" width="40" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 650px; margin-left: 860px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: nowrap; "> + OR + </div> + </div> + </div> + </foreignObject> + <text x="860" y="654" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle" font-weight="bold"> + OR + </text> + </switch> + </g> + </g> + </g> + <switch> + <g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/> + <a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"> + <text text-anchor="middle" font-size="10px" x="50%" y="100%"> + Text is not SVG - cannot display + </text> + </a> + </switch> +</svg> diff --git a/docs/platform_management_plan/_assets/score_problem_resolution_overview.drawio.svg b/docs/platform_management_plan/_assets/score_problem_resolution_overview.drawio.svg index bad4080cb2b..bceb9cde4be 100644 --- a/docs/platform_management_plan/_assets/score_problem_resolution_overview.drawio.svg +++ b/docs/platform_management_plan/_assets/score_problem_resolution_overview.drawio.svg @@ -1,4 +1,87 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Do not edit this file with editors other than diagrams.net --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="491px" height="81px" viewBox="-0.5 -0.5 491 81" content="<mxfile host="Electron" modified="2025-04-02T15:16:00.619Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/20.3.0 Chrome/104.0.5112.114 Electron/20.1.3 Safari/537.36" etag="1sqIc_DtUYxR_3lbrFLe" version="20.3.0" type="device"><diagram id="0w90vh-N4AjfHz9zUi27" name="Model">zVbbUtswEP2aPIZR7DhOHskF2gGmlNBp4KWj2IotkL2uLMdxv561LWE7KQGmDFPlIdqjXV12z55xz55Fu3NJk/AKfCZ6FvF3PXvesyzbnVj4VyJFjQwGbg0EkvsaaoAl/8M0SDSacZ+lHUcFIBRPuqAHccw81cGolJB33TYguqcmNGAHwNKj4hD9yX0V1ujYIQ3+hfEgNCcPiF6JqHHWQBpSH/IWZC969kwCqHoW7WZMlMkzeanjzl5Yfb6YZLF6S0D+azNe5QHcby9cPx3EKyJv+7o6qSrMg5mP79cmSBVCADEViwadSshin5W7ErQan0uABMEBgg9MqUIXk2YKEApVJPQqXlgWKx1fGXelceIYc75rL84LbR2+WCchhUx67MgzDXOoDJgO/eYsk/Ht6oafzvnFNH78TqKHvuXUjmUSWifohJ4ziBheCB0kE1TxbZckVHMtePZ7Dr0Gjne2iO6LvjMiJ6Q19LmmSRxDf7NlfXO9S1NknLSu1UBV6d9BA/2ALRWZftK1hLVgUc8aCUzYdC1xFpSzG5ZgyQ9og+xOyqkPXhZV9ZnmIVdsmdCqMjnKQ5cF65pGl2sDvFjeLZOK7Y7Ww+TVHZJuJoeuBvKmewemJcNW547Jy0XspPtIbgNfZVdT7y7jeWzL+8ffdtE3uf3cFkuRMOq01D8EPEHTlHsGPuPiXzuR7bhamT1w3opCqwkqjXd179GufL193U9q35G1R7PR8G0NiyWhRcstKR3Srm7vHzacTE4mreHsi8X+2XVCP0IsjpajpRZfl8sfiwOed1n8ihxskJUzECCrWHvjlL8Sh1i18HpUVJbwyForo2p8kI6gPu/pyPiNOjL6AB05Su6/iTS5ZVGClGb/qy7b7ifqMprNZ1XN+ubj1F48AQ==</diagram></mxfile>"><defs/><g><path d="M 120 40 L 173.63 40" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 178.88 40 L 171.88 43.5 L 173.63 40 L 171.88 36.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 0 0 L 120 0 L 120 68 Q 90 46.4 60 68 Q 30 89.6 0 68 L 0 12 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 28px; margin-left: 1px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Problem<br />Report</div></div></div></foreignObject><text x="60" y="32" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Problem...</text></switch></g><path d="M 306.37 40 L 363.63 40" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 301.12 40 L 308.12 36.5 L 306.37 40 L 308.12 43.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 368.88 40 L 361.88 43.5 L 363.63 40 L 361.88 36.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="180" y="10" width="120" height="60" fill="#f5f5f5" stroke="#666666" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 40px; margin-left: 181px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ISSUE</div></div></div></foreignObject><text x="240" y="44" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">ISSUE</text></switch></g><path d="M 370 0 L 490 0 L 490 68 Q 460 46.4 430 68 Q 400 89.6 370 68 L 370 12 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 28px; margin-left: 371px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Problem Template</div></div></div></foreignObject><text x="430" y="32" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Problem Template</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> \ No newline at end of file +<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="491px" height="81px" viewBox="-0.5 -0.5 491 81" content="<mxfile><diagram id="0w90vh-N4AjfHz9zUi27" name="Model">zVZNc5swEP01PjojwNjkGH8k7SSZpnU6dXLpyLAGJYKlQhjcX18BUgC7cZJpJlMu1j7tSqvdt288cGZxeSFoGl1jAHxgk6AcOPOBbVveaKx+KmTXIEPX9hokFCzQXi2wZL9Bg0SjOQsg6zlKRC5Z2gd9TBLwZQ+jQmDRd9sg79+a0hAOgKVP+SH6gwUyalDPJS3+CVgYmZstondiapw1kEU0wKIDOYuBMxOIslnF5Qx4VT1Tlybu/Jndp8QEJPI1AcXPjbcqQrzfXk6CzEpWRNwObZ2b3JkHQ6Der00UMsIQE8oXLToVmCcBVKcSZbU+V4ipAi0FPoCUO91MmktUUCRjrndVwmK30vG1cVcZJ64x52V3c77T1uGLdREyzIUPR55pmENFCDr0i7tMvdvVN3Y2Z5fT5PEriR+Gtts4VkXo3KALegEYg0pIOQjgVLJtnyRUcy188nsKvUGmcrZJacZgTE5I59P36imxXEN/c2STuT6lbbJadNJqobr1b6CBfsCW8lw/6UbgmkM8sMdcFWy6FmoVVqtvkKqWH9BGsTutlgH6eVz3Z1pETMIypXVnCqUPfRasGxpdrQ3wbHu3ICSUR/th6joZkX4lRxMNFO30WmYko87keuT5JvbKfaS2YSDz66l/l7MiccT94y9nNzS1/dgRyxRh5FmlfwrwOc0y5hv4nPF/nUQomVyZM9S6E6WsNqgy3jS9R6fy5fGdfND4ju09mo1HrxtY1RK667illUPW1+39y0anpyennc/dF4v9u5uCvodYHG1HRy0+L5ffFwc877P4BTnYKFbOkKOoYx1wrRGpwjaYyA6+qb+aygIfobMztSshfScdUfq8pyPeK3Vk/A46cpTcfxNpcgtxqigN/6suO5MP1GVltn+rGta3/06dxR8=</diagram></mxfile>"> + <defs/> + <g> + <g> + <path d="M 120 40 L 173.63 40" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 178.88 40 L 171.88 43.5 L 173.63 40 L 171.88 36.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 0 0 L 120 0 L 120 68 Q 90 46.4 60 68 Q 30 89.6 0 68 L 0 12 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 28px; margin-left: 1px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Problem + <br/> + Report + </div> + </div> + </div> + </foreignObject> + <text x="60" y="32" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Problem... + </text> + </switch> + </g> + </g> + <g> + <path d="M 306.37 40 L 363.63 40" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 301.12 40 L 308.12 36.5 L 306.37 40 L 308.12 43.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 368.88 40 L 361.88 43.5 L 363.63 40 L 361.88 36.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="180" y="10" width="120" height="60" fill="#e51400" stroke="#b20000" pointer-events="all" style="fill: light-dark(rgb(229, 20, 0), rgb(255, 146, 129)); stroke: light-dark(rgb(178, 0, 0), rgb(255, 172, 172));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 40px; margin-left: 181px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + ISSUE + </div> + </div> + </div> + </foreignObject> + <text x="240" y="44" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + ISSUE + </text> + </switch> + </g> + </g> + <g> + <path d="M 370 0 L 490 0 L 490 68 Q 460 46.4 430 68 Q 400 89.6 370 68 L 370 12 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 28px; margin-left: 371px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Problem Template + </div> + </div> + </div> + </foreignObject> + <text x="430" y="32" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Problem Template + </text> + </switch> + </g> + </g> + </g> + <switch> + <g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/> + <a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"> + <text text-anchor="middle" font-size="10px" x="50%" y="100%"> + Text is not SVG - cannot display + </text> + </a> + </switch> +</svg> diff --git a/docs/platform_management_plan/_assets/score_problem_resolution_workflow_simple.drawio - Copy.svg:Zone.Identifier b/docs/platform_management_plan/_assets/score_problem_resolution_workflow_simple.drawio - Copy.svg:Zone.Identifier new file mode 100644 index 00000000000..e69de29bb2d diff --git a/docs/platform_management_plan/_assets/score_problem_resolution_workflow_simple.drawio.svg b/docs/platform_management_plan/_assets/score_problem_resolution_workflow_simple.drawio.svg index 087dbc9b5a5..ecdb16ead2c 100644 --- a/docs/platform_management_plan/_assets/score_problem_resolution_workflow_simple.drawio.svg +++ b/docs/platform_management_plan/_assets/score_problem_resolution_workflow_simple.drawio.svg @@ -1,4 +1,1057 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Do not edit this file with editors other than diagrams.net --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1230px" height="1091px" viewBox="-0.5 -0.5 1230 1091" content="<mxfile host="Electron" modified="2025-07-25T06:30:13.928Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/20.3.0 Chrome/104.0.5112.114 Electron/20.1.3 Safari/537.36" etag="sNebu8L1acWW96RK2Bt4" version="20.3.0" type="device"><diagram id="0w90vh-N4AjfHz9zUi27" name="Model">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</diagram></mxfile>"><defs/><g><rect x="140" y="720" width="420" height="140" fill="#e1d5e7" stroke="#9673a6" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 418px; height: 1px; padding-top: 790px; margin-left: 142px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><br /><br /><br /><br /><br /><br /><br /><br /><br />status:<br />closed<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /></div></div></div></foreignObject><text x="142" y="794" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" font-weight="bold">status:...</text></switch></g><rect x="140" y="580" width="420" height="140" fill="#fff2cc" stroke="#d6b656" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 418px; height: 1px; padding-top: 650px; margin-left: 142px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><br /><br /><br /><br /><br /><br /><br /><br /><br />status:<br />in implementation<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /></div></div></div></foreignObject><text x="142" y="654" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" font-weight="bold">status:...</text></switch></g><rect x="140" y="300" width="420" height="140" fill="#f5f5f5" stroke="#666666" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 418px; height: 1px; padding-top: 370px; margin-left: 142px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />status:<br />open<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /></div></div></div></foreignObject><text x="142" y="374" fill="#333333" font-family="Helvetica" font-size="12px" font-weight="bold">status:...</text></switch></g><rect x="140" y="440" width="420" height="140" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 418px; height: 1px; padding-top: 510px; margin-left: 142px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><br /><br /><br /><br /><br />status:<br />in review<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><div style=""><br /></div></div></div></div></foreignObject><text x="142" y="514" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" font-weight="bold">status:...</text></switch></g><path d="M 375 360 L 433.63 360" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 438.88 360 L 431.88 363.5 L 433.63 360 L 431.88 356.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="255" y="330" width="120" height="60" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 360px; margin-left: 256px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ISSUE<br />[Open]</div></div></div></foreignObject><text x="315" y="364" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">ISSUE...</text></switch></g><path d="M 310 70 L 310 165.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 310 170.88 L 306.5 163.88 L 310 165.63 L 313.5 163.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="250" y="100" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 115px; margin-left: 280px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">creates</div></div></div></foreignObject><text x="280" y="119" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">creates</text></switch></g><ellipse cx="310" cy="55" rx="15" ry="15" fill="#000000" stroke="none" pointer-events="all"/><rect x="210" y="0" width="220" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 20px; margin-left: 320px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><b><font style="font-size: 18px;">Contributor, Committer</font></b></div></div></div></foreignObject><text x="320" y="24" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Contributor, Committer</text></switch></g><path d="M 250 212 L 230 212 L 230 345 L 248.63 345" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 253.88 345 L 246.88 348.5 L 248.63 345 L 246.88 341.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 250 172 L 370 172 L 370 240 Q 340 218.4 310 240 Q 280 261.6 250 240 L 250 184 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 200px; margin-left: 251px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Problem<br />Report</div></div></div></foreignObject><text x="310" y="204" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Problem...</text></switch></g><rect x="255" y="760" width="120" height="60" fill="#e1d5e7" stroke="#9673a6" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 790px; margin-left: 256px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ISSUE<br />[CLOSED]</div></div></div></foreignObject><text x="315" y="794" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">ISSUE...</text></switch></g><rect x="255" y="480" width="120" height="60" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 510px; margin-left: 256px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ISSUE<br />[OPEN]</div></div></div></foreignObject><text x="315" y="514" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">ISSUE...</text></switch></g><rect x="140" y="860" width="420" height="140" fill="#bac8d3" stroke="#23445d" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 418px; height: 1px; padding-top: 930px; margin-left: 142px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><br /><br /><br /><br /><br />CR status:<br />rejected<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><div style=""><br /></div></div></div></div></foreignObject><text x="142" y="934" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" font-weight="bold">CR status:...</text></switch></g><rect x="255" y="900" width="120" height="60" fill="#647687" stroke="#314354" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 930px; margin-left: 256px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ISSUE<br />[CLOSED AS NOT PLANNED]</div></div></div></foreignObject><text x="315" y="934" fill="#ffffff" font-family="Helvetica" font-size="12px" text-anchor="middle">ISSUE...</text></switch></g><path d="M 484.97 390 L 484.97 473.62" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 484.97 478.87 L 481.47 471.87 L 484.97 473.62 L 488.47 471.87 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="440" y="330" width="90" height="60" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><path d="M 440 350 L 530 350" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 460 330 L 460 390" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 360px; margin-left: 441px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><br />status:<br />     No Status</div></div></div></foreignObject><text x="485" y="364" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">status:...</text></switch></g><rect x="459" y="326" width="70" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 341px; margin-left: 494px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Projects</div></div></div></foreignObject><text x="494" y="345" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Projects</text></switch></g><path d="M 375 510 L 433.63 510" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 438.88 510 L 431.88 513.5 L 433.63 510 L 431.88 506.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 485.02 540 L 485.02 613.62" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 485.02 618.87 L 481.52 611.87 L 485.02 613.62 L 488.52 611.87 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="440" y="480" width="90" height="60" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><path d="M 440 500 L 530 500" fill="none" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/><path d="M 460 480 L 460 540" fill="none" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 510px; margin-left: 441px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><br />status:<br />Todo</div></div></div></foreignObject><text x="485" y="514" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">status:...</text></switch></g><rect x="459" y="476" width="70" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 491px; margin-left: 494px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Projects</div></div></div></foreignObject><text x="494" y="495" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Projects</text></switch></g><path d="M 315 680 L 315 690 L 640 690 L 640 750 L 733.63 750" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 738.88 750 L 731.88 753.5 L 733.63 750 L 731.88 746.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 315 680 L 315 690 L 640 690 L 640 880 L 733.63 880" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 738.88 880 L 731.88 883.5 L 733.63 880 L 731.88 876.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 255 665 L 220 665 L 220 915 L 248.63 915" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 253.88 915 L 246.88 918.5 L 248.63 915 L 246.88 911.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 315 680 L 315 690 L 640 690 L 640 1060 L 1058.63 1060" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1063.88 1060 L 1056.88 1063.5 L 1058.63 1060 L 1056.88 1056.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="255" y="620" width="120" height="60" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 650px; margin-left: 256px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ISSUE<br />[OPEN]</div></div></div></foreignObject><text x="315" y="654" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">ISSUE...</text></switch></g><path d="M 374 650 L 432.63 650" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 437.88 650 L 430.88 653.5 L 432.63 650 L 430.88 646.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 483.97 680 L 483.97 753.62" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 483.97 758.87 L 480.47 751.87 L 483.97 753.62 L 487.47 751.87 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="439" y="620" width="90" height="60" fill="#fff2cc" stroke="#d6b656" pointer-events="all"/><path d="M 439 640 L 529 640" fill="none" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><path d="M 459 620 L 459 680" fill="none" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 650px; margin-left: 440px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><br />status:<br />     In Progress</div></div></div></foreignObject><text x="484" y="654" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">status:...</text></switch></g><rect x="458" y="616" width="70" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 631px; margin-left: 493px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Projects</div></div></div></foreignObject><text x="493" y="635" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Projects</text></switch></g><path d="M 255 510 L 120 510 L 120 930 L 248.63 930" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 253.88 930 L 246.88 933.5 L 248.63 930 L 246.88 926.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 380.37 790 L 439 790" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 375.12 790 L 382.12 786.5 L 380.37 790 L 382.12 793.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 529 790 L 550 790 L 550 650 L 535.37 650" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 530.12 650 L 537.12 646.5 L 535.37 650 L 537.12 653.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="439" y="760" width="90" height="60" fill="#e1d5e7" stroke="#9673a6" pointer-events="all"/><path d="M 439 780 L 529 780" fill="none" stroke="#9673a6" stroke-miterlimit="10" pointer-events="all"/><path d="M 459 760 L 459 820" fill="none" stroke="#9673a6" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 790px; margin-left: 440px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><br />status:<br />     Done</div></div></div></foreignObject><text x="484" y="794" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">status:...</text></switch></g><rect x="458" y="756" width="70" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 771px; margin-left: 493px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Projects</div></div></div></foreignObject><text x="493" y="775" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Projects</text></switch></g><path d="M 866.37 750 L 1058.63 750" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 861.12 750 L 868.12 746.5 L 866.37 750 L 868.12 753.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 1063.88 750 L 1056.88 753.5 L 1058.63 750 L 1056.88 746.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="740" y="720" width="120" height="60" fill="#f5f5f5" stroke="#666666" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 750px; margin-left: 741px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ISSUE</div></div></div></foreignObject><text x="800" y="754" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">ISSUE</text></switch></g><rect x="1065" y="940" width="120" height="60" fill="#647687" stroke="#314354" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 970px; margin-left: 1066px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">PR</div></div></div></foreignObject><text x="1125" y="974" fill="#ffffff" font-family="Helvetica" font-size="12px" text-anchor="middle">PR</text></switch></g><path d="M 910 620 L 800 620 L 800 713.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 800 718.88 L 796.5 711.88 L 800 713.63 L 803.5 711.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 910 580 L 1030 580 L 1030 648 Q 1000 626.4 970 648 Q 940 669.6 910 648 L 910 592 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 608px; margin-left: 911px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Change<br />Request</div></div></div></foreignObject><text x="970" y="612" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Change...</text></switch></g><rect x="1065" y="818" width="120" height="60" fill="#647687" stroke="#314354" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 848px; margin-left: 1066px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">PR</div></div></div></foreignObject><text x="1125" y="852" fill="#ffffff" font-family="Helvetica" font-size="12px" text-anchor="middle">PR</text></switch></g><path d="M 830 786.37 L 830 800 L 1000 800 L 1000 848 L 1058.63 848" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 830 781.12 L 833.5 788.12 L 830 786.37 L 826.5 788.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 1063.88 848 L 1056.88 851.5 L 1058.63 848 L 1056.88 844.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="1110" y="883" width="30" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 903px; margin-left: 1125px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><b><font style="font-size: 23px;">:</font></b></div></div></div></foreignObject><text x="1125" y="907" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">:</text></switch></g><path d="M 1191.37 750 L 1220 750 L 1220 848 L 1191.37 848" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1186.12 750 L 1193.12 746.5 L 1191.37 750 L 1193.12 753.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 1186.12 848 L 1193.12 844.5 L 1191.37 848 L 1193.12 851.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="1065" y="720" width="120" height="60" fill="#f5f5f5" stroke="#666666" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 750px; margin-left: 1066px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">SUB-<br />ISSUE</div></div></div></foreignObject><text x="1125" y="754" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">SUB-...</text></switch></g><path d="M 866.37 880 L 962.5 880 L 962.5 985 L 1058.63 985" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 861.12 880 L 868.12 876.5 L 866.37 880 L 868.12 883.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 1063.88 985 L 1056.88 988.5 L 1058.63 985 L 1056.88 981.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="740" y="850" width="120" height="60" fill="#f5f5f5" stroke="#666666" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 880px; margin-left: 741px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ISSUE</div></div></div></foreignObject><text x="800" y="884" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">ISSUE</text></switch></g><rect x="785" y="800" width="30" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 820px; margin-left: 800px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><b><font style="font-size: 23px;">:</font></b></div></div></div></foreignObject><text x="800" y="824" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">:</text></switch></g><path d="M 25 340.5 L 35 340.5 L 35 398.5 L 45.5 398.5 L 30 417.5 L 14.5 398.5 L 25 398.5 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="10" y="290" width="80" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 305px; margin-left: 50px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><b><font style="font-size: 14px;">Creation</font></b></div></div></div></foreignObject><text x="50" y="309" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Creation</text></switch></g><rect x="10" y="440" width="80" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 455px; margin-left: 50px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><b><font style="font-size: 14px;">Analysis</font></b></div></div></div></foreignObject><text x="50" y="459" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Analysis</text></switch></g><path d="M 25 502.5 L 35 502.5 L 35 560.5 L 45.5 560.5 L 30 579.5 L 14.5 560.5 L 25 560.5 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="0" y="580" width="100" height="50" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 605px; margin-left: 50px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><b><font style="font-size: 14px;">Initiate and <br />Monitor<br /></font></b></div></div></div></foreignObject><text x="50" y="609" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Initiate and...</text></switch></g><path d="M 25 642.5 L 35 642.5 L 35 700.5 L 45.5 700.5 L 30 719.5 L 14.5 700.5 L 25 700.5 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="15" y="740" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 755px; margin-left: 45px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><b><font style="font-size: 14px;">Close<br /></font></b></div></div></div></foreignObject><text x="45" y="759" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Close </text></switch></g><path d="M 25 782.5 L 35 782.5 L 35 840.5 L 45.5 840.5 L 30 859.5 L 14.5 840.5 L 25 840.5 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 255 360 L 100 360 L 100 950 L 248.63 950" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 253.88 950 L 246.88 953.5 L 248.63 950 L 246.88 946.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="1065" y="1030" width="120" height="60" fill="#647687" stroke="#314354" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 1060px; margin-left: 1066px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">PR</div></div></div></foreignObject><text x="1125" y="1064" fill="#ffffff" font-family="Helvetica" font-size="12px" text-anchor="middle">PR</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> \ No newline at end of file +<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1230px" height="1091px" viewBox="-0.5 -0.5 1230 1091" content="<mxfile><diagram id="0w90vh-N4AjfHz9zUi27" name="Model">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</diagram></mxfile>"> + <defs/> + <g> + <g> + <rect x="140" y="720" width="420" height="140" fill="#e1d5e7" stroke="#9673a6" pointer-events="all" style="fill: light-dark(rgb(225, 213, 231), rgb(57, 47, 63)); stroke: light-dark(rgb(150, 115, 166), rgb(149, 119, 163));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 418px; height: 1px; padding-top: 790px; margin-left: 142px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + status: + <br/> + closed + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + </div> + </div> + </div> + </foreignObject> + <text x="142" y="794" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" font-weight="bold"> + status:... + </text> + </switch> + </g> + </g> + <g> + <rect x="140" y="580" width="420" height="140" fill="#fff2cc" stroke="#d6b656" pointer-events="all" style="fill: light-dark(rgb(255, 242, 204), rgb(40, 29, 0)); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 418px; height: 1px; padding-top: 650px; margin-left: 142px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + status: + <br/> + in implementation + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + </div> + </div> + </div> + </foreignObject> + <text x="142" y="654" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" font-weight="bold"> + status:... + </text> + </switch> + </g> + </g> + <g> + <rect x="140" y="300" width="420" height="140" fill="#f5f5f5" stroke="#666666" pointer-events="all" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 418px; height: 1px; padding-top: 370px; margin-left: 142px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #333333; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + status: + <br/> + open + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + </div> + </div> + </div> + </foreignObject> + <text x="142" y="374" fill="#333333" font-family=""Helvetica"" font-size="12px" font-weight="bold"> + status:... + </text> + </switch> + </g> + </g> + <g> + <rect x="140" y="440" width="420" height="140" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 418px; height: 1px; padding-top: 510px; margin-left: 142px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> + <br/> + <br/> + <br/> + <br/> + <br/> + status: + <br/> + in review + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <div style=""> + <br/> + </div> + </div> + </div> + </div> + </foreignObject> + <text x="142" y="514" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" font-weight="bold"> + status:... + </text> + </switch> + </g> + </g> + <g> + <path d="M 375 360 L 433.63 360" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 438.88 360 L 431.88 363.5 L 433.63 360 L 431.88 356.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="255" y="330" width="120" height="60" fill="#d5e8d4" stroke="#82b366" stroke-width="4" pointer-events="all" style="fill: light-dark(rgb(213, 232, 212), rgb(31, 47, 30)); stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 360px; margin-left: 256px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Issue + <br/> + [Open] + </div> + </div> + </div> + </foreignObject> + <text x="315" y="364" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Issue... + </text> + </switch> + </g> + </g> + <g> + <path d="M 310 70 L 310 165.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 310 170.88 L 306.5 163.88 L 310 165.63 L 313.5 163.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="250" y="100" width="60" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 115px; margin-left: 280px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + creates + </div> + </div> + </div> + </foreignObject> + <text x="280" y="119" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + creates + </text> + </switch> + </g> + </g> + <g> + <ellipse cx="310" cy="55" rx="15" ry="15" fill="#000000" stroke="none" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> + </g> + <g> + <rect x="210" y="0" width="220" height="40" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 20px; margin-left: 320px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + <b> + <font style="font-size: 18px;"> + Contributor, Committer + </font> + </b> + </div> + </div> + </div> + </foreignObject> + <text x="320" y="24" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Contributor, Committer + </text> + </switch> + </g> + </g> + <g> + <path d="M 250 212 L 230 212 L 230 345 L 248.63 345" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 253.88 345 L 246.88 348.5 L 248.63 345 L 246.88 341.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 250 172 L 370 172 L 370 240 Q 340 218.4 310 240 Q 280 261.6 250 240 L 250 184 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 200px; margin-left: 251px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Problem + <br/> + Report + </div> + </div> + </div> + </foreignObject> + <text x="310" y="204" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Problem... + </text> + </switch> + </g> + </g> + <g> + <rect x="255" y="760" width="120" height="60" fill="#e1d5e7" stroke="#9673a6" stroke-width="4" pointer-events="all" style="fill: light-dark(rgb(225, 213, 231), rgb(57, 47, 63)); stroke: light-dark(rgb(150, 115, 166), rgb(149, 119, 163));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 790px; margin-left: 256px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + <span> + <font style="color: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"> + Issue + </font> + </span> + <br/> + [Closed] + </div> + </div> + </div> + </foreignObject> + <text x="315" y="794" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Issue... + </text> + </switch> + </g> + </g> + <g> + <rect x="255" y="480" width="120" height="60" fill="#d5e8d4" stroke="#82b366" stroke-width="4" pointer-events="all" style="fill: light-dark(rgb(213, 232, 212), rgb(31, 47, 30)); stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 510px; margin-left: 256px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + <font> + <span> + <font style="color: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"> + Issue + </font> + </span> + <br/> + <font style="color: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"> + [Open] + </font> + </font> + </div> + </div> + </div> + </foreignObject> + <text x="315" y="514" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Issue... + </text> + </switch> + </g> + </g> + <g> + <rect x="140" y="860" width="420" height="140" fill="#bac8d3" stroke="#23445d" pointer-events="all" style="fill: light-dark(rgb(186, 200, 211), rgb(57, 69, 78)); stroke: light-dark(rgb(35, 68, 93), rgb(160, 188, 210));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 418px; height: 1px; padding-top: 930px; margin-left: 142px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> + <br/> + <br/> + <br/> + <br/> + <br/> + CR status: + <br/> + rejected + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <br/> + <div style=""> + <br/> + </div> + </div> + </div> + </div> + </foreignObject> + <text x="142" y="934" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" font-weight="bold"> + CR status:... + </text> + </switch> + </g> + </g> + <g> + <rect x="255" y="900" width="120" height="60" fill="#647687" stroke="#36393d" stroke-width="5" pointer-events="all" style="fill: light-dark(rgb(100, 118, 135), rgb(125, 140, 155)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 930px; margin-left: 256px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + <span style="color: light-dark(rgb(255, 255, 255), rgb(18, 18, 18));"> + Issue + </span> + <br/> + <font style="color: light-dark(rgb(255, 255, 255), rgb(18, 18, 18));"> + [Closed as not planned] + </font> + </div> + </div> + </div> + </foreignObject> + <text x="315" y="934" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Issue... + </text> + </switch> + </g> + </g> + <g> + <path d="M 484.97 390 L 484.97 473.62" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 484.97 478.87 L 481.47 471.87 L 484.97 473.62 L 488.47 471.87 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="440" y="330" width="90" height="60" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 440 350 L 530 350" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 460 330 L 460 390" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 360px; margin-left: 441px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + <br/> + status: + <br/> + No Status + </div> + </div> + </div> + </foreignObject> + <text x="485" y="364" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + status:... + </text> + </switch> + </g> + </g> + <g> + <rect x="459" y="326" width="70" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 341px; margin-left: 494px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + Projects + </div> + </div> + </div> + </foreignObject> + <text x="494" y="345" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Projects + </text> + </switch> + </g> + </g> + <g> + <path d="M 375 510 L 408 510.5 L 433.63 510.1" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 438.88 510.02 L 431.94 513.63 L 433.63 510.1 L 431.83 506.63 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 485.02 540 L 485.02 613.62" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 485.02 618.87 L 481.52 611.87 L 485.02 613.62 L 488.52 611.87 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="440" y="480" width="90" height="60" fill="#0050ef" stroke="#001dbc" pointer-events="all" style="fill: light-dark(rgb(0, 80, 239), rgb(109, 178, 255)); stroke: light-dark(rgb(0, 29, 188), rgb(178, 203, 255));"/> + <path d="M 440 500 L 530 500" fill="none" stroke="#001dbc" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 29, 188), rgb(178, 203, 255));"/> + <path d="M 460 480 L 460 540" fill="none" stroke="#001dbc" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 29, 188), rgb(178, 203, 255));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 510px; margin-left: 441px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + <br/> + status: + <br/> + Todo + </div> + </div> + </div> + </foreignObject> + <text x="485" y="514" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + status:... + </text> + </switch> + </g> + </g> + <g> + <rect x="459" y="476" width="70" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 491px; margin-left: 494px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #FFFFFF; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#FFFFFF, #121212); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + Projects + </div> + </div> + </div> + </foreignObject> + <text x="494" y="495" fill="#FFFFFF" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Projects + </text> + </switch> + </g> + </g> + <g> + <path d="M 315 680 L 315 690 L 640 690 L 640 750 L 733.63 750" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 738.88 750 L 731.88 753.5 L 733.63 750 L 731.88 746.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 315 680 L 315 690 L 640 690 L 640 880 L 733.63 880" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 738.88 880 L 731.88 883.5 L 733.63 880 L 731.88 876.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 255 665 L 220 665 L 220 915 L 248.63 915" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 253.88 915 L 246.88 918.5 L 248.63 915 L 246.88 911.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 315 680 L 315 690 L 640 690 L 640 1060 L 1058.63 1060" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 1063.88 1060 L 1056.88 1063.5 L 1058.63 1060 L 1056.88 1056.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="255" y="620" width="120" height="60" fill="#d5e8d4" stroke="#82b366" stroke-width="4" pointer-events="all" style="fill: light-dark(rgb(213, 232, 212), rgb(31, 47, 30)); stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 650px; margin-left: 256px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + <font> + <font> + <span> + <font style="color: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"> + Issue + </font> + </span> + <br/> + <font style="color: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"> + [Open] + </font> + </font> + </font> + </div> + </div> + </div> + </foreignObject> + <text x="315" y="654" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Issue... + </text> + </switch> + </g> + </g> + <g> + <path d="M 374 650 L 407 650.5 L 432.63 650.1" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 437.88 650.02 L 430.94 653.63 L 432.63 650.1 L 430.83 646.63 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 483.97 680 L 483.97 753.62" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 483.97 758.87 L 480.47 751.87 L 483.97 753.62 L 487.47 751.87 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="439" y="620" width="90" height="60" fill="#f0a30a" stroke="#bd7000" pointer-events="all" style="fill: light-dark(rgb(240, 163, 10), rgb(154, 88, 0)); stroke: light-dark(rgb(189, 112, 0), rgb(193, 127, 31));"/> + <path d="M 439 640 L 529 640" fill="none" stroke="#bd7000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(189, 112, 0), rgb(193, 127, 31));"/> + <path d="M 459 620 L 459 680" fill="none" stroke="#bd7000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(189, 112, 0), rgb(193, 127, 31));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 650px; margin-left: 440px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + <br/> + status: + <br/> + In Progress + </div> + </div> + </div> + </foreignObject> + <text x="484" y="654" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + status:... + </text> + </switch> + </g> + </g> + <g> + <rect x="458" y="616" width="70" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 631px; margin-left: 493px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + Projects + </div> + </div> + </div> + </foreignObject> + <text x="493" y="635" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Projects + </text> + </switch> + </g> + </g> + <g> + <path d="M 255 510 L 120 510 L 120 930 L 248.63 930" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 253.88 930 L 246.88 933.5 L 248.63 930 L 246.88 926.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 380.37 790.1 L 407 790.5 L 439 790" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 375.12 790.02 L 382.17 786.62 L 380.37 790.1 L 382.06 793.62 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 529 790 L 550 790 L 550 650 L 535.37 650" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 530.12 650 L 537.12 646.5 L 535.37 650 L 537.12 653.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="439" y="760" width="90" height="60" fill="#008a00" stroke="#005700" pointer-events="all" style="fill: light-dark(rgb(0, 138, 0), rgb(67, 186, 67)); stroke: light-dark(rgb(0, 87, 0), rgb(130, 205, 130));"/> + <path d="M 439 780 L 529 780" fill="none" stroke="#005700" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 87, 0), rgb(130, 205, 130));"/> + <path d="M 459 760 L 459 820" fill="none" stroke="#005700" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 87, 0), rgb(130, 205, 130));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 790px; margin-left: 440px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + <br/> + status: + <br/> + Done + </div> + </div> + </div> + </foreignObject> + <text x="484" y="794" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + status:... + </text> + </switch> + </g> + </g> + <g> + <rect x="458" y="756" width="70" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 771px; margin-left: 493px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #FFFFFF; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#FFFFFF, #121212); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + Projects + </div> + </div> + </div> + </foreignObject> + <text x="493" y="775" fill="#FFFFFF" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Projects + </text> + </switch> + </g> + </g> + <g> + <path d="M 866.37 750 L 1058.63 750" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 861.12 750 L 868.12 746.5 L 866.37 750 L 868.12 753.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 1063.88 750 L 1056.88 753.5 L 1058.63 750 L 1056.88 746.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="740" y="720" width="120" height="60" fill="#f5f5f5" stroke="#666666" pointer-events="all" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 750px; margin-left: 741px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #333333; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + ISSUE + </div> + </div> + </div> + </foreignObject> + <text x="800" y="754" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + ISSUE + </text> + </switch> + </g> + </g> + <g> + <rect x="1065" y="940" width="120" height="60" fill="#647687" stroke="#314354" pointer-events="all" style="fill: light-dark(rgb(100, 118, 135), rgb(125, 140, 155)); stroke: light-dark(rgb(49, 67, 84), rgb(169, 184, 199));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 970px; margin-left: 1066px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + PR + </div> + </div> + </div> + </foreignObject> + <text x="1125" y="974" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + PR + </text> + </switch> + </g> + </g> + <g> + <path d="M 910 620 L 800 620 L 800 713.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 800 718.88 L 796.5 711.88 L 800 713.63 L 803.5 711.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 910 580 L 1030 580 L 1030 648 Q 1000 626.4 970 648 Q 940 669.6 910 648 L 910 592 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 608px; margin-left: 911px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Change + <br/> + Request + </div> + </div> + </div> + </foreignObject> + <text x="970" y="612" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Change... + </text> + </switch> + </g> + </g> + <g> + <rect x="1065" y="818" width="120" height="60" fill="#647687" stroke="#314354" pointer-events="all" style="fill: light-dark(rgb(100, 118, 135), rgb(125, 140, 155)); stroke: light-dark(rgb(49, 67, 84), rgb(169, 184, 199));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 848px; margin-left: 1066px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + PR + </div> + </div> + </div> + </foreignObject> + <text x="1125" y="852" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + PR + </text> + </switch> + </g> + </g> + <g> + <path d="M 830 786.37 L 830 800 L 1000 800 L 1000 848 L 1058.63 848" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 830 781.12 L 833.5 788.12 L 830 786.37 L 826.5 788.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 1063.88 848 L 1056.88 851.5 L 1058.63 848 L 1056.88 844.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="1110" y="883" width="30" height="40" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 903px; margin-left: 1125px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + <b> + <font style="font-size: 23px;"> + : + </font> + </b> + </div> + </div> + </div> + </foreignObject> + <text x="1125" y="907" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + : + </text> + </switch> + </g> + </g> + <g> + <path d="M 1191.37 750 L 1220 750 L 1220 848 L 1191.37 848" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 1186.12 750 L 1193.12 746.5 L 1191.37 750 L 1193.12 753.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 1186.12 848 L 1193.12 844.5 L 1191.37 848 L 1193.12 851.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="1065" y="720" width="120" height="60" fill="#f5f5f5" stroke="#666666" pointer-events="all" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 750px; margin-left: 1066px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #333333; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + SUB- + <br/> + ISSUE + </div> + </div> + </div> + </foreignObject> + <text x="1125" y="754" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + SUB-... + </text> + </switch> + </g> + </g> + <g> + <path d="M 866.37 880 L 962.5 880 L 962.5 985 L 1058.63 985" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 861.12 880 L 868.12 876.5 L 866.37 880 L 868.12 883.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 1063.88 985 L 1056.88 988.5 L 1058.63 985 L 1056.88 981.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="740" y="850" width="120" height="60" fill="#f5f5f5" stroke="#666666" pointer-events="all" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 880px; margin-left: 741px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #333333; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + ISSUE + </div> + </div> + </div> + </foreignObject> + <text x="800" y="884" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + ISSUE + </text> + </switch> + </g> + </g> + <g> + <rect x="785" y="800" width="30" height="40" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 820px; margin-left: 800px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + <b> + <font style="font-size: 23px;"> + : + </font> + </b> + </div> + </div> + </div> + </foreignObject> + <text x="800" y="824" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + : + </text> + </switch> + </g> + </g> + <g> + <path d="M 25 340.5 L 35 340.5 L 35 398.5 L 45.5 398.5 L 30 417.5 L 14.5 398.5 L 25 398.5 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="10" y="290" width="80" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 305px; margin-left: 50px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + <b> + <font style="font-size: 14px;"> + Creation + </font> + </b> + </div> + </div> + </div> + </foreignObject> + <text x="50" y="309" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Creation + </text> + </switch> + </g> + </g> + <g> + <rect x="10" y="440" width="80" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 455px; margin-left: 50px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + <b> + <font style="font-size: 14px;"> + Analysis + </font> + </b> + </div> + </div> + </div> + </foreignObject> + <text x="50" y="459" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Analysis + </text> + </switch> + </g> + </g> + <g> + <path d="M 25 502.5 L 35 502.5 L 35 560.5 L 45.5 560.5 L 30 579.5 L 14.5 560.5 L 25 560.5 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="0" y="580" width="100" height="50" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 605px; margin-left: 50px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + <b> + <font style="font-size: 14px;"> + Initiate and + <br/> + Monitor + <br/> + </font> + </b> + </div> + </div> + </div> + </foreignObject> + <text x="50" y="609" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Initiate and... + </text> + </switch> + </g> + </g> + <g> + <path d="M 25 642.5 L 35 642.5 L 35 700.5 L 45.5 700.5 L 30 719.5 L 14.5 700.5 L 25 700.5 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="15" y="740" width="60" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 755px; margin-left: 45px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + <b> + <font style="font-size: 14px;"> + Close + <br/> + </font> + </b> + </div> + </div> + </div> + </foreignObject> + <text x="45" y="759" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Close + </text> + </switch> + </g> + </g> + <g> + <path d="M 25 782.5 L 35 782.5 L 35 840.5 L 45.5 840.5 L 30 859.5 L 14.5 840.5 L 25 840.5 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 255 360 L 100 360 L 100 950 L 248.63 950" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 253.88 950 L 246.88 953.5 L 248.63 950 L 246.88 946.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="1065" y="1030" width="120" height="60" fill="#647687" stroke="#314354" pointer-events="all" style="fill: light-dark(rgb(100, 118, 135), rgb(125, 140, 155)); stroke: light-dark(rgb(49, 67, 84), rgb(169, 184, 199));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 1060px; margin-left: 1066px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + PR + </div> + </div> + </div> + </foreignObject> + <text x="1125" y="1064" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + PR + </text> + </switch> + </g> + </g> + </g> + <switch> + <g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/> + <a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"> + <text text-anchor="middle" font-size="10px" x="50%" y="100%"> + Text is not SVG - cannot display + </text> + </a> + </switch> +</svg> From df83de5bac1e8a7ce3b95c8c599e0a096f65c306 Mon Sep 17 00:00:00 2001 From: Andreas Mittag <andreas.mittag@etas.com> Date: Mon, 26 Jan 2026 07:29:18 +0000 Subject: [PATCH 109/128] ref corrected --- docs/platform_management_plan/project_management.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index d887f02c4de..9998b7821f3 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -151,7 +151,7 @@ Steering of the project is done with the help of *Committees*. - - https://github.com/eclipse-score/score -.. _pmp_pm_technical_communities: +.. _pmp_pm_communities: Communities ----------- From c5a8d0b7ad07d4544d645393dc13235f89dd1223 Mon Sep 17 00:00:00 2001 From: Andreas Mittag <andreas.mittag@etas.com> Date: Mon, 26 Jan 2026 12:20:04 +0000 Subject: [PATCH 110/128] TST Community in new style --- .../project_management.rst | 167 +++++++++--------- 1 file changed, 85 insertions(+), 82 deletions(-) diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index 9998b7821f3..24b6e519f32 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -181,6 +181,55 @@ Each *Community* has a *Community Lead* to organize the community`s work. .. _PRCBKL: https://github.com/orgs/eclipse-score/projects/21 .. _PIMBKL: https://github.com/orgs/eclipse-score/projects/7 +.. _TSTMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-TST-team +.. _TSTLD: https://github.com/orgs/eclipse-score/teams/automotive-score-TST-lead +.. _TSTMM: https://github.com/eclipse-score/score/wiki/TSTM +.. _TSTSLC: https://sdvworkinggroup.slack.com/archives/TSTC08B6C78EF3 +.. _TSTBLK: https://github.com/orgs/eclipse-score/projects/5 + + + +.. _INT Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-INT-team +.. _INT Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-INT-lead +.. _INT Meeting Minutes: https://github.com/eclipse-score/score/wiki/INTM +.. _INT Slack Channel: https://sdvworkinggroup.slack.com/archives/INT +.. _INT Open Point List: https://github.com/orgs/eclipse-score/projects/INT + + +- INT Responsibilities + - integration of available modules to one or several reference integrations + - releasing +- `INT Core Members`_ +- `INT Lead`_ +- `INT Meeting Minutes`_ +- `INT Slack Channel`_ +- `INT Open Point List`_ +- INT Repositories: + - https://github.com/eclipse-score/score + +.. _pmp_pm_mcm: + +Marketing & Communication Community +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. _MCM Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-MCM-team +.. _MCM Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-MCM-lead +.. _MCM Meeting Minutes: https://github.com/eclipse-score/score/wiki/MCMM +.. _MCM Slack Channel: https://sdvworkinggroup.slack.com/archives/C032X75QGTT +.. _MCM Open Point List: https://github.com/orgs/eclipse-score/projects/11 + +- MCM Responsibilities + - coordination of public relations, e.g. the maintenance of the website & organization of general events +- `MCM Core Members`_ +- `MCM Lead`_ +- `MCM Meeting Minutes`_ +- `MCM Slack Channel`_ +- `MCM Open Point List`_ +- MCM Repositories: + - https://github.com/eclipse-score/eclipse-score.github.io + - https://github.com/eclipse-score/eclipse-score-website + - https://github.com/eclipse-score/eclipse-score-website-preview + - https://github.com/eclipse-score/eclipse-score-website-published + .. list-table:: Community :header-rows: 1 @@ -209,25 +258,6 @@ Each *Community* has a *Community Lead* to organize the community`s work. - `ARCSLC`_ - `ARCBKL`_ - https://github.com/eclipse-score/score - * - .. _pmp_pm_prc: - - **PRC** - - **Process** - - **Community** - - **-----------** - - **-----------** - - **-----------** - - **-----------------------** - * - - defining and maintaining the software development process (incl. safety, security and quality) - - defining and maintaining the process implementation (PIM) - - `PRCMBRS`_ - - `PRCLD`_ - - `PRCMM`_ - - `PRCSLC`_ - - `PRCBKL`_ - `PIMBKL`_ - - https://github.com/eclipse-score/process_description - https://github.com/eclipse-score/score * - .. _pmp_pm_inf: **INF** @@ -261,7 +291,43 @@ Each *Community* has a *Community Lead* to organize the community`s work. - https://github.com/eclipse-score/bazel_registry_ui - https://github.com/eclipse-score/.eclipsefdn - https://github.com/eclipse-score/examples + * - .. _pmp_pm_prc: + **PRC** + - **Process** + - **Community** + - **-----------** + - **-----------** + - **-----------** + - **-----------------------** + * - - defining and maintaining the software development process (incl. safety, security and quality) + - defining and maintaining the process implementation (PIM) + - `PRCMBRS`_ + - `PRCLD`_ + - `PRCMM`_ + - `PRCSLC`_ + - `PRCBKL`_ + `PIMBKL`_ + - https://github.com/eclipse-score/process_description + https://github.com/eclipse-score/score + * - .. _pmp_pm_tst: + + **TST** + - **Testing** + - **Community** + - **-----------** + - **-----------** + - **-----------** + - **-----------------------** + * - - defining and maintaining testing strategy and infrastructure + - `TSTMBRS`_ + - `TSTLD`_ + - `TSTMM`_ + - `TSTSLC`_ + - `TSTBKL`_ + `TSTBKL`_ + - https://github.com/eclipse-score/itf + https://github.com/eclipse-score/testing_tools Feature Teams @@ -305,69 +371,6 @@ The following *Communities* are established: -Testing Community (TST) -^^^^^^^^^^^^^^^^^^^^^^^ -.. _TST Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-TST-team -.. _TST Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-TST-lead -.. _TST Meeting Minutes: https://github.com/eclipse-score/score/wiki/TSTM -.. _TST Slack Channel: https://sdvworkinggroup.slack.com/archives/TSTC08B6C78EF3 -.. _TST Open Point List: https://github.com/orgs/eclipse-score/projects/5 - - -- TST Responsibilities - - defining and maintaining testing strategy and infrastructure -- `TST Core Members`_ -- `TST Lead`_ -- `TST Meeting Minutes`_ -- `TST Slack Channel`_ -- `TST Open Point List`_ -- TST Repositories: - - https://github.com/eclipse-score/itf - - https://github.com/eclipse-score/testing_tools - - -Integration and Release Community (INT) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. _INT Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-INT-team -.. _INT Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-INT-lead -.. _INT Meeting Minutes: https://github.com/eclipse-score/score/wiki/INTM -.. _INT Slack Channel: https://sdvworkinggroup.slack.com/archives/INT -.. _INT Open Point List: https://github.com/orgs/eclipse-score/projects/INT - - -- INT Responsibilities - - integration of available modules to one or several reference integrations - - releasing -- `INT Core Members`_ -- `INT Lead`_ -- `INT Meeting Minutes`_ -- `INT Slack Channel`_ -- `INT Open Point List`_ -- INT Repositories: - - https://github.com/eclipse-score/score - -.. _pmp_pm_mcm: - -Marketing & Communication Community -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. _MCM Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-MCM-team -.. _MCM Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-MCM-lead -.. _MCM Meeting Minutes: https://github.com/eclipse-score/score/wiki/MCMM -.. _MCM Slack Channel: https://sdvworkinggroup.slack.com/archives/C032X75QGTT -.. _MCM Open Point List: https://github.com/orgs/eclipse-score/projects/11 - -- MCM Responsibilities - - coordination of public relations, e.g. the maintenance of the website & organization of general events -- `MCM Core Members`_ -- `MCM Lead`_ -- `MCM Meeting Minutes`_ -- `MCM Slack Channel`_ -- `MCM Open Point List`_ -- MCM Repositories: - - https://github.com/eclipse-score/eclipse-score.github.io - - https://github.com/eclipse-score/eclipse-score-website - - https://github.com/eclipse-score/eclipse-score-website-preview - - https://github.com/eclipse-score/eclipse-score-website-published The following *Feature Teams* are defined in the *S-CORE* project: From 123690cd7129ad044d85be7aa082f88e68fa954f Mon Sep 17 00:00:00 2001 From: Andreas Mittag <andreas.mittag@etas.com> Date: Mon, 26 Jan 2026 14:49:46 +0000 Subject: [PATCH 111/128] New Table structure for all teams --- .../project_management.rst | 199 ++++++++---------- 1 file changed, 88 insertions(+), 111 deletions(-) diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index 24b6e519f32..0a1f6bb5325 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -99,17 +99,6 @@ Steering of the project is done with the help of *Committees*. - Owned Repository * - .. _pmp_pm_plc: -<<<<<<< HEAD -<<<<<<< HEAD -.. _TLC Members: https://github.com/orgs/eclipse-score/teams/automotive-score-TLC-team -.. _TLC Speaker: https://github.com/orgs/eclipse-score/teams/automotive-score-TLC-lead -.. _TLC Meeting Minutes: https://github.com/eclipse-score/score/wiki/TLCM -.. _TLC Slack Channel: https://sdvworkinggroup.slack.com/archives/C085F44D2CS -.. _TLC Open Point List: https://github.com/orgs/eclipse-score/projects/3 -======= - *Project lead circle* proposes and elects a *Project lead circle Assistant* and their deputy with bare majority, who is responsible for scheduling and announcing meetings, preparing and announcing agenda, writing meeting minutes and protocols. *Project lead circle* can reelect *Project lead circle Assistant* at any time. The *Project lead circle Assistant* and their deputy can resign anytime on their own will. ->>>>>>> f9f5ae6 (Update language for gender neutrality in project management plan) -======= **PLC** - **Project** - **Lead** @@ -117,7 +106,6 @@ Steering of the project is done with the help of *Committees*. - **-----------** - **-----------** - **-----------------------** ->>>>>>> 74b593b (team docu adapted) * - - Decisions about strategical topics - Review and approval of contributions, e.g. Feature Requests, which add or modify features @@ -151,7 +139,7 @@ Steering of the project is done with the help of *Committees*. - - https://github.com/eclipse-score/score -.. _pmp_pm_communities: +.. _pmp_pm_technical_communities: Communities ----------- @@ -159,9 +147,6 @@ Communities commonly used development & testing infrastructure, processes or final integration & release. Each *Community* has a *Community Lead* to organize the community`s work. -<<<<<<< HEAD -<<<<<<< HEAD -======= .. _ARCMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-ARC-team .. _ARCLD: https://github.com/orgs/eclipse-score/teams/automotive-score-ARC-lead .. _ARCMM: https://github.com/eclipse-score/score/wiki/ARCM @@ -181,55 +166,6 @@ Each *Community* has a *Community Lead* to organize the community`s work. .. _PRCBKL: https://github.com/orgs/eclipse-score/projects/21 .. _PIMBKL: https://github.com/orgs/eclipse-score/projects/7 -.. _TSTMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-TST-team -.. _TSTLD: https://github.com/orgs/eclipse-score/teams/automotive-score-TST-lead -.. _TSTMM: https://github.com/eclipse-score/score/wiki/TSTM -.. _TSTSLC: https://sdvworkinggroup.slack.com/archives/TSTC08B6C78EF3 -.. _TSTBLK: https://github.com/orgs/eclipse-score/projects/5 - - - -.. _INT Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-INT-team -.. _INT Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-INT-lead -.. _INT Meeting Minutes: https://github.com/eclipse-score/score/wiki/INTM -.. _INT Slack Channel: https://sdvworkinggroup.slack.com/archives/INT -.. _INT Open Point List: https://github.com/orgs/eclipse-score/projects/INT - - -- INT Responsibilities - - integration of available modules to one or several reference integrations - - releasing -- `INT Core Members`_ -- `INT Lead`_ -- `INT Meeting Minutes`_ -- `INT Slack Channel`_ -- `INT Open Point List`_ -- INT Repositories: - - https://github.com/eclipse-score/score - -.. _pmp_pm_mcm: - -Marketing & Communication Community -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. _MCM Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-MCM-team -.. _MCM Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-MCM-lead -.. _MCM Meeting Minutes: https://github.com/eclipse-score/score/wiki/MCMM -.. _MCM Slack Channel: https://sdvworkinggroup.slack.com/archives/C032X75QGTT -.. _MCM Open Point List: https://github.com/orgs/eclipse-score/projects/11 - -- MCM Responsibilities - - coordination of public relations, e.g. the maintenance of the website & organization of general events -- `MCM Core Members`_ -- `MCM Lead`_ -- `MCM Meeting Minutes`_ -- `MCM Slack Channel`_ -- `MCM Open Point List`_ -- MCM Repositories: - - https://github.com/eclipse-score/eclipse-score.github.io - - https://github.com/eclipse-score/eclipse-score-website - - https://github.com/eclipse-score/eclipse-score-website-preview - - https://github.com/eclipse-score/eclipse-score-website-published - .. list-table:: Community :header-rows: 1 @@ -258,6 +194,25 @@ Marketing & Communication Community - `ARCSLC`_ - `ARCBKL`_ - https://github.com/eclipse-score/score + * - .. _pmp_pm_prc: + + **PRC** + - **Process** + - **Community** + - **-----------** + - **-----------** + - **-----------** + - **-----------------------** + * - - defining and maintaining the software development process (incl. safety, security and quality) + - defining and maintaining the process implementation (PIM) + - `PRCMBRS`_ + - `PRCLD`_ + - `PRCMM`_ + - `PRCSLC`_ + - `PRCBKL`_ + `PIMBKL`_ + - https://github.com/eclipse-score/process_description + https://github.com/eclipse-score/score * - .. _pmp_pm_inf: **INF** @@ -291,43 +246,7 @@ Marketing & Communication Community - https://github.com/eclipse-score/bazel_registry_ui - https://github.com/eclipse-score/.eclipsefdn - https://github.com/eclipse-score/examples - * - .. _pmp_pm_prc: - **PRC** - - **Process** - - **Community** - - **-----------** - - **-----------** - - **-----------** - - **-----------------------** - * - - defining and maintaining the software development process (incl. safety, security and quality) - - defining and maintaining the process implementation (PIM) - - `PRCMBRS`_ - - `PRCLD`_ - - `PRCMM`_ - - `PRCSLC`_ - - `PRCBKL`_ - `PIMBKL`_ - - https://github.com/eclipse-score/process_description - https://github.com/eclipse-score/score - * - .. _pmp_pm_tst: - - **TST** - - **Testing** - - **Community** - - **-----------** - - **-----------** - - **-----------** - - **-----------------------** - * - - defining and maintaining testing strategy and infrastructure - - `TSTMBRS`_ - - `TSTLD`_ - - `TSTMM`_ - - `TSTSLC`_ - - `TSTBKL`_ - `TSTBKL`_ - - https://github.com/eclipse-score/itf - https://github.com/eclipse-score/testing_tools Feature Teams @@ -363,14 +282,73 @@ Each *Feature Team* has one *Lead* to organize the Team`s work. - **-----------** - **-----------------------** ->>>>>>> 74b593b (team docu adapted) The following *Communities* are established: -======= - *Technical lead circle* proposes and elects a *Technical lead circle Assistant* and their deputy with bare majority during *Technical Lead Circle meeting*, who is responsible for scheduling and announcing meetings, preparing and announcing agenda, writing meeting minutes and protocols. *Technical lead circle* can reelect *Technical lead circle Assistant* at any time. The *Technical lead circle Assistant* and their deputy can resign anytime on their own will. ->>>>>>> f9f5ae6 (Update language for gender neutrality in project management plan) +Testing Community (TST) +^^^^^^^^^^^^^^^^^^^^^^^ +.. _TST Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-TST-team +.. _TST Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-TST-lead +.. _TST Meeting Minutes: https://github.com/eclipse-score/score/wiki/TSTM +.. _TST Slack Channel: https://sdvworkinggroup.slack.com/archives/TSTC08B6C78EF3 +.. _TST Open Point List: https://github.com/orgs/eclipse-score/projects/5 + + +- TST Responsibilities + - defining and maintaining testing strategy and infrastructure +- `TST Core Members`_ +- `TST Lead`_ +- `TST Meeting Minutes`_ +- `TST Slack Channel`_ +- `TST Open Point List`_ +- TST Repositories: + - https://github.com/eclipse-score/itf + - https://github.com/eclipse-score/testing_tools + + +Integration and Release Community (INT) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. _INT Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-INT-team +.. _INT Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-INT-lead +.. _INT Meeting Minutes: https://github.com/eclipse-score/score/wiki/INTM +.. _INT Slack Channel: https://sdvworkinggroup.slack.com/archives/INT +.. _INT Open Point List: https://github.com/orgs/eclipse-score/projects/INT + + +- INT Responsibilities + - integration of available modules to one or several reference integrations + - releasing +- `INT Core Members`_ +- `INT Lead`_ +- `INT Meeting Minutes`_ +- `INT Slack Channel`_ +- `INT Open Point List`_ +- INT Repositories: + - https://github.com/eclipse-score/score + +.. _pmp_pm_mcm: + +Marketing & Communication Community +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. _MCM Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-MCM-team +.. _MCM Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-MCM-lead +.. _MCM Meeting Minutes: https://github.com/eclipse-score/score/wiki/MCMM +.. _MCM Slack Channel: https://sdvworkinggroup.slack.com/archives/C032X75QGTT +.. _MCM Open Point List: https://github.com/orgs/eclipse-score/projects/11 + +- MCM Responsibilities + - coordination of public relations, e.g. the maintenance of the website & organization of general events +- `MCM Core Members`_ +- `MCM Lead`_ +- `MCM Meeting Minutes`_ +- `MCM Slack Channel`_ +- `MCM Open Point List`_ +- MCM Repositories: + - https://github.com/eclipse-score/eclipse-score.github.io + - https://github.com/eclipse-score/eclipse-score-website + - https://github.com/eclipse-score/eclipse-score-website-preview + - https://github.com/eclipse-score/eclipse-score-website-published The following *Feature Teams* are defined in the *S-CORE* project: @@ -553,7 +531,6 @@ Persistency Team (PER) - PER Repositories: - https://github.com/eclipse-score/persistency - Organization Management ----------------------- Decision to adapt the *Project Organization* is done in the *Technical Lead Circle* / *Project Management Circle*, documented in the meeting minutes and planned with a *Task*: @@ -573,13 +550,13 @@ In case a new Feature Team creation is necessary, the following steps have to be - Definition of Repository specific :ref:`CODEOWNERS <pmp_pm_codeowners>`. - `Creation of a Team GitHub Project <https://github.com/orgs/eclipse-score/projects>`_ with a Kanban View and a Task View. - `Creation of a Team Meeting Wiki <https://github.com/eclipse-score/score/wiki>`_ for the meeting minutes - - Creation of a Team Label - .. code:: - committee:<Name of Committee>, - community:<Name of Community> or - ft:<Name of Feature Team> +.. code:: + + committee:<Name of Committee>, + community:<Name of Community> or + ft:<Name of Feature Team> - Creation of a Slack Channel: https://sdvworkinggroup.slack.com - Adapting the PMP From cc887d3a5ae2f69337fa194dbda494b404eac9ca Mon Sep 17 00:00:00 2001 From: Andreas Mittag <andreas.mittag@etas.com> Date: Mon, 26 Jan 2026 15:10:16 +0000 Subject: [PATCH 112/128] headline structure as other rst files --- .../project_management.rst | 101 +++++++++--------- 1 file changed, 50 insertions(+), 51 deletions(-) diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index 0a1f6bb5325..42e22b3fac3 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -23,10 +23,10 @@ .. _pmp_pm_plan: Project Management Plan -####################### +----------------------- Purpose -======= ++++++++ The purpose of the Project Management Plan is to define - how to manage, analyse and control changes of the work products during the project life cycle. @@ -36,7 +36,7 @@ The purpose of the Project Management Plan is to define - how and where to escalate. Objectives and Scope --------------------- +++++++++++++++++++++ Project Management Goals and Definition of Done ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -57,11 +57,11 @@ Project Management Goals and Definition of Done .. _pmp_pm_organization: Project Organization -==================== +++++++++++++++++++++ Org Chart and Main Platform Management Plan Responsibilities ------------------------------------------------------------- +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. image:: _assets/score_project_management_organization_orgchart.drawio.svg :width: 900 @@ -71,7 +71,7 @@ Org Chart and Main Platform Management Plan Responsibilities .. _pmp_pm_steering_committees: Steering Committees -------------------- +^^^^^^^^^^^^^^^^^^^ Steering of the project is done with the help of *Committees*. .. _PLCMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-PLC-team @@ -142,7 +142,7 @@ Steering of the project is done with the help of *Committees*. .. _pmp_pm_technical_communities: Communities ------------ +^^^^^^^^^^^ *Communities* are installed to work on cross functional topics, such as program level architectural decisions, commonly used development & testing infrastructure, processes or final integration & release. Each *Community* has a *Community Lead* to organize the community`s work. @@ -250,8 +250,8 @@ Each *Community* has a *Community Lead* to organize the community`s work. Feature Teams -------------- -:ref:`Feature Teams <pmp_pm_feature_teams>` have end-to-end responsibility for providing specific functionalities. This includes all +^^^^^^^^^^^^^ +*Feature Teams* have end-to-end responsibility for providing specific functionalities. This includes all development aspects beginning with the architecture definition to the integration test. One *Team* may work independently of other *Teams* on the team-assigned *GitHub Issues*, and needs at least one :need:`Committer <rl__committer>` who can approve & merge the Pull Requests @@ -532,7 +532,7 @@ Persistency Team (PER) - https://github.com/eclipse-score/persistency Organization Management ------------------------ +^^^^^^^^^^^^^^^^^^^^^^^ Decision to adapt the *Project Organization* is done in the *Technical Lead Circle* / *Project Management Circle*, documented in the meeting minutes and planned with a *Task*: - creating of a new Team (*Community* or *Feature Team*) @@ -540,7 +540,7 @@ Decision to adapt the *Project Organization* is done in the *Technical Lead Circ - deleting an existing Team (*Community* or *Feature Team*) Creation of a new Feature Team -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +"""""""""""""""""""""""""""""" In case a new Feature Team creation is necessary, the following steps have to be done: - `Adding a new Team to GitHub Teams <https://github.com/orgs/eclipse-score/teams>`_ and adding the Core Members by editing @@ -562,12 +562,12 @@ In case a new Feature Team creation is necessary, the following steps have to be - Adapting the PMP External Communication -====================== +********************** The external communication is done via GitHub, LinkedIn, etc. Publications by :ref:`Marketing and Communication Community <pmp_pm_mcm>`. Internal Communication -====================== +++++++++++++++++++++++ The project internal communication is ensured with help of: - virtual and face-to-face meetings and their minutes @@ -575,7 +575,7 @@ The project internal communication is ensured with help of: - online communication using Slack Meetings --------- +^^^^^^^^ All meetings are scheduled in the `Eclipse S-CORE Calendar <https://calendar.google.com/calendar/u/0/embed?src=c_2ampi2bmoka3qter4dceap1d5g@group.calendar.google.com&ctz=Europe/Berlin>`_ , are open for everyone but mentioned team members are mandatory. Meeting minutes are public and stored in the project specific *GitHub Team Wikis*. @@ -583,7 +583,7 @@ but mentioned team members are mandatory. Meeting minutes are public and stored .. _pmp_pm_repository_structure: Repository structure -==================== +++++++++++++++++++++ The Platform follows a multiple repositories approach. The root repository is .. _pmp_pm_root_repository: @@ -615,7 +615,7 @@ within the following :ref:`Module Folder Structure <module_folder_structure>`. .. _pmp_pm_codeowners: Codeowners ----------- +^^^^^^^^^^ While creating a new repository, :ref:`Technical Leads <pmp_pm_tlc>` nominate initial `CODEOWNERS <https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners#codeowners-and-branch-protection>`_, whose review is mandatory for merging PRs to the repository and who are at the end allowed to merge PRs to the repository. @@ -627,27 +627,27 @@ Possible members are software developers, who The Codeownership has to be regularly updated and changes have to be documented. Planning & Tracking -=================== ++++++++++++++++++++ Cadence -------- +^^^^^^^ Iteration -^^^^^^^^^ -Each iteration is two weeks long. +""""""""" +The Project calendar is devided into iterations. Each iteration is two weeks long. Release Frequence -^^^^^^^^^^^^^^^^^ +""""""""""""""""" After every 3rd iteration, the work is baselined into a Release. Planning & Tracking Infrastructure ----------------------------------- +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The planning and tracking of the work is done inside **GitHub**. GitHub **Issues** are used to document all necessary work packages. Issues ------- +^^^^^^ To organize the work :ref:`Github Types <pmp_pm_issue_types>`, :ref:`GitHub Labels <pmp_pm_gh_labels>` and :ref:`GitHub Projects <pmp_pm_gh_projects>` are used. The Progress of the work is documented with help of the :ref:`Status of an Issue <pmp_pm_issue_status_flow>`. @@ -656,7 +656,7 @@ The Progress of the work is documented with help of the :ref:`Status of an Issue .. _pmp_pm_issue_types: Issues Types -^^^^^^^^^^^^ +"""""""""""" .. image:: _assets/score_project_management_issue_types.drawio.svg :width: 900 @@ -665,8 +665,10 @@ Issues Types .. _pmp_pm_feature_request: -Feature Request -""""""""""""""" +| + +**Feature Request** + A *Feature Request* represents an independent work package used to describe and track a high-level request for the project. *Feature Request* work packages can be linked to other work packages, but they must not be treated as parent work packages. They are in the responsibility of the @@ -674,19 +676,18 @@ other work packages, but they must not be treated as parent work packages. They .. _pmp_pm_product_increment: -Product Increment -""""""""""""""""" +**Product Increment** + A *Product Increment* represents the highest level in the work package hierarchy and cannot be linked as a child of another issue. If you need to group multiple *Product Increment* work packages, labels have to be used. A *Product Increment* can have multiple *Epic* work packages as children. *Product Increments* areowned by :ref:`Technical Lead Circle <pmp_pm_tlc>` and are part of the :ref:`Root Repository <pmp_pm_root_repository>`. - .. _pmp_pm_epic: -Epic -"""" +**Epic** + An *Epic* is the primary planning work package for development teams. *Epic* work packages should be scoped in a way that allows them to be completed within a release cycle of the S-CORE project. @@ -703,8 +704,7 @@ of the Team`s main repository. .. _pmp_pm_task: -Task -"""" +**Task** A *Task GitHub Issue* represents the smallest unit of planning and typically corresponds to a concrete piece of work to be completed, such as by a developer. *Task* work packages are usually @@ -717,8 +717,7 @@ of any Team`s repository. .. _pmp_pm_bug: -Bug -""" +**Bug** A *Bug GitHub Issue* is used to report any kind of problem or malfunction. It is considered a special type of *Story* work package and follows the same rules as regular *Epic* work packages, @@ -729,7 +728,7 @@ of any Team`s repository. .. _pmp_pm_issue_status_flow: Issue Status -^^^^^^^^^^^^ +"""""""""""" Each *GitHub issue* has a **Status** depending on the :ref:`GitHub Project <pmp_pm_gh_projects>`, we use the following Standard Flow for all :ref:`Issue Types <pmp_pm_issue_types>`: @@ -739,7 +738,7 @@ we use the following Standard Flow for all :ref:`Issue Types <pmp_pm_issue_types :align: center Issue Attributes -^^^^^^^^^^^^^^^^ +"""""""""""""""" - Standard Attributes - Assignees - :ref:`Labels <pmp_pm_gh_labels>` @@ -754,7 +753,7 @@ Issue Attributes - Release Issue Templates -^^^^^^^^^^^^^^^ +""""""""""""""" Templates defined in *GitHub* ensure the availability of the type relevant information for all issues. - `Bug Template <https://github.com/eclipse-score/score/blob/main/.github/ISSUE_TEMPLATE/bug.yml>`_ @@ -764,17 +763,17 @@ Templates defined in *GitHub* ensure the availability of the type relevant infor - `Task Template <https://github.com/eclipse-score/score/blob/main/.github/ISSUE_TEMPLATE/task.yml>`_ Hierarchies -^^^^^^^^^^^ +""""""""""" Hierarchies are realized as parent-child relations with the `GitHub Sub-Issue Feature <https://docs.github.com/en/issues/tracking-your-work-with-issues/using-issues/adding-sub-issues>`_. Dependencies -^^^^^^^^^^^^ +"""""""""""" Dependencies are realized with blocked by or blocking relations described in thè `GitHub Issue Dependency Feature <https://docs.github.com/en/issues/tracking-your-work-with-issues/using-issues/creating-issue-dependencies>`_. .. _pmp_pm_milestone: Milestone ---------- +^^^^^^^^^ A milestone is indicating an important dedicated point in the schedule like a Release or a Quality (ASPICE, ASIL) Assessment. `GitHub Milestones <https://docs.github.com/en/issues/using-labels-and-milestones-to-track-work/about-milestones>`_ offer to connect *Issues* and *Pull Requests* to the `S-CORE-defined Milestones <https://github.com/eclipse-score/score/milestones>`_ @@ -782,7 +781,7 @@ a Release or a Quality (ASPICE, ASIL) Assessment. .. _pmp_pm_release: Releases --------- +^^^^^^^^ *Releases* are special milestones and used for baselining of the development activities. @@ -790,7 +789,7 @@ Releases Labels ------- +^^^^^^ `GitHub Labels <https://docs.github.com/en/issues/using-labels-and-milestones-to-track-work/managing-labels>`_ are used to organize Issues, Pull Requests etc. having same context. Although Labels are powerful, the definition of new Labels shall be wisely done and organization wide used. Therefore their management is limited to Organization owners. @@ -800,7 +799,7 @@ The following `Labels <https://github.com/eclipse-score/score/labels>`_ are defi .. _pmp_pm_gh_projects: GitHub Projects ---------------- +^^^^^^^^^^^^^^^ The `GitHub Project Feature <https://docs.github.com/en/issues/planning-and-tracking-with-projects>`_ helps to plan the work and monitor its progress. @@ -818,7 +817,7 @@ for Table, Board and Roadmap supporting Backlogs, Open Point or Task Lists and o Kanban View -^^^^^^^^^^^ +""""""""""" The `GitHub Board <https://docs.github.com/en/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/customizing-the-board-layout>`_ is supporting the Kanban View, enabling to set the Work In Progress Limits. .. image:: _assets/score_project_management_kanban.drawio.svg @@ -828,20 +827,20 @@ The `GitHub Board <https://docs.github.com/en/issues/planning-and-tracking-with- Task List View -^^^^^^^^^^^^^^ +"""""""""""""" The `GitHub Table <https://docs.github.com/en/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/customizing-the-table-layout>`_ is supporting the List View, enabling to adapt the priority by reordering the rows. Roadmap View -^^^^^^^^^^^^ +"""""""""""" The `GitHub Roadmap <https://docs.github.com/en/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/customizing-the-roadmap-layout>`_ is supporting the Road View, provididing a high-level visualization of your project across a configurable timespan. Traceability ------------- +^^^^^^^^^^^^ To achieve traceability all *Pull Requests* have to be `linked <https://docs.github.com/en/issues/tracking-your-work-with-issues/using-issues/linking-a-pull-request-to-an-issue>`_ to the corresponding *GitHub Issues*. Planning of Work ----------------- +^^^^^^^^^^^^^^^^ Generally, every team is responsible for planning its work within its own plan with the help of its :ref:`GitHub Project <pmp_pm_gh_projects>` filled with :ref:`Epics <pmp_pm_epic>`, :ref:`Tasks <pmp_pm_task>` and :ref:`Bugs <pmp_pm_bug>`. @@ -850,13 +849,13 @@ whereas the overall top-down plan is in the responsibility of the :ref:`Technica :ref:`Milestones <pmp_pm_milestone>` and :ref:`Releases <pmp_pm_release>`. Tracking Progress ------------------ +^^^^^^^^^^^^^^^^^ The :ref:`Technical Lead Circle <pmp_pm_tlc>` regularly monitors the status of the work for upcoming Milestones and Releases in https://github.com/orgs/eclipse-score/projects/17/ based on :ref:`Product Increments <pmp_pm_product_increment>`. Dashboards -^^^^^^^^^^ +"""""""""" GitHub offers mechanism in form of charts to track issues: From 97d0facae5b60c976ae02225758e8ac1d1288184 Mon Sep 17 00:00:00 2001 From: Andreas Mittag <andreas.mittag@etas.com> Date: Mon, 26 Jan 2026 15:58:39 +0000 Subject: [PATCH 113/128] New Team Structure --- .../project_management.rst | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index 42e22b3fac3..52caca2b62d 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -38,9 +38,16 @@ The purpose of the Project Management Plan is to define Objectives and Scope ++++++++++++++++++++ +Project Management Goals and Definition of Done +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Project Management Goals and Definition of Done ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +* The stakeholders/stakeholder groups and organization are defined: + - Org Chart and structure description is available and up to date. +* Communication and reporting paths are described: + - Team Overview with meeting structure is available & Slack channels are established and maintained. + - Meetings are scheduled in the Eclipse SDV calendar. * The stakeholders/stakeholder groups and organization are defined: - Org Chart and structure description is available and up to date. * Communication and reporting paths are described: @@ -49,10 +56,15 @@ Project Management Goals and Definition of Done * The scope of the work is defined. - S-CORE Handbook (:need:`doc__platform_handbook`) is available and up to date. - :ref:`Features <features>` are described. +* Project Plan is planned and followed: + - Roadmap with Milestones and Releases are available and up to date. + - S-CORE Handbook (:need:`doc__platform_handbook`) is available and up to date. + - :ref:`Features <features>` are described. * Project Plan is planned and followed: - Roadmap with Milestones and Releases are available and up to date. * Escalation paths are described. * All Reviews are performed according to their definitions, the respective templates are used. +* All Reviews are performed according to their definitions, the respective templates are used. .. _pmp_pm_organization: @@ -63,6 +75,7 @@ Project Organization Org Chart and Main Platform Management Plan Responsibilities ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. image:: _assets/score_project_management_organization_orgchart.drawio.svg .. image:: _assets/score_project_management_organization_orgchart.drawio.svg :width: 900 :alt: Infrastructure overview @@ -139,6 +152,7 @@ Steering of the project is done with the help of *Committees*. - - https://github.com/eclipse-score/score +.. _pmp_pm_technical_communities: .. _pmp_pm_technical_communities: Communities @@ -658,6 +672,7 @@ The Progress of the work is documented with help of the :ref:`Status of an Issue Issues Types """""""""""" +.. image:: _assets/score_project_management_issue_types.drawio.svg .. image:: _assets/score_project_management_issue_types.drawio.svg :width: 900 :alt: Issue Types @@ -732,6 +747,8 @@ Issue Status Each *GitHub issue* has a **Status** depending on the :ref:`GitHub Project <pmp_pm_gh_projects>`, we use the following Standard Flow for all :ref:`Issue Types <pmp_pm_issue_types>`: +.. image:: _assets/score_project_management_issue_status_flow.drawio.svg + :width: 900 .. image:: _assets/score_project_management_issue_status_flow.drawio.svg :width: 900 :alt: Issue Status @@ -809,6 +826,7 @@ Beside one for each (committee, community, feature) Team, there is one for `Feat and one for the complete `S-CORE Roadmap <https://github.com/orgs/eclipse-score/projects/17>`_. Inside a GitHub Project, there is the possibility to generate different views for Table, Board and Roadmap supporting Backlogs, Open Point or Task Lists and other useful perspectives. +.. image:: _assets/score_project_management_planning_overview.drawio.svg .. image:: _assets/score_project_management_planning_overview.drawio.svg :width: 900 :alt: Planning Overview @@ -820,6 +838,7 @@ Kanban View """"""""""" The `GitHub Board <https://docs.github.com/en/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/customizing-the-board-layout>`_ is supporting the Kanban View, enabling to set the Work In Progress Limits. +.. image:: _assets/score_project_management_kanban.drawio.svg .. image:: _assets/score_project_management_kanban.drawio.svg :width: 900 :alt: Kanban View From f132ba15476bd485194ad0e7c20b6a2e133bb5e8 Mon Sep 17 00:00:00 2001 From: Andreas Mittag <andreas.mittag@etas.com> Date: Mon, 26 Jan 2026 16:17:23 +0000 Subject: [PATCH 114/128] tried to save the changes --- .../project_management.rst | 117 ++++++++++++++++-- 1 file changed, 110 insertions(+), 7 deletions(-) diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index 52caca2b62d..86a4a90bbf9 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -38,16 +38,9 @@ The purpose of the Project Management Plan is to define Objectives and Scope ++++++++++++++++++++ -Project Management Goals and Definition of Done -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Project Management Goals and Definition of Done ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -* The stakeholders/stakeholder groups and organization are defined: - - Org Chart and structure description is available and up to date. -* Communication and reporting paths are described: - - Team Overview with meeting structure is available & Slack channels are established and maintained. - - Meetings are scheduled in the Eclipse SDV calendar. * The stakeholders/stakeholder groups and organization are defined: - Org Chart and structure description is available and up to date. * Communication and reporting paths are described: @@ -60,6 +53,10 @@ Project Management Goals and Definition of Done - Roadmap with Milestones and Releases are available and up to date. - S-CORE Handbook (:need:`doc__platform_handbook`) is available and up to date. - :ref:`Features <features>` are described. +* Project Plan is planned and followed: + - Roadmap with Milestones and Releases are available and up to date. + - S-CORE Handbook (:need:`doc__platform_handbook`) is available and up to date. + - :ref:`Features <features>` are described. * Project Plan is planned and followed: - Roadmap with Milestones and Releases are available and up to date. * Escalation paths are described. @@ -84,6 +81,54 @@ Org Chart and Main Platform Management Plan Responsibilities .. _pmp_pm_steering_committees: Steering Committees +------------------- +Steering of the project is done by two committees: + +Project Lead Circle (PLC) +^^^^^^^^^^^^^^^^^^^^^^^^^ +.. _PLC Members: https://github.com/orgs/eclipse-score/teams/automotive-score-PLC-team +.. _PLC Speaker: https://github.com/orgs/eclipse-score/teams/automotive-score-PLC-lead +.. _PLC Meeting Minutes: https://github.com/eclipse-score/score/wiki/PLCM +.. _PLC Slack Channel: https://sdvworkinggroup.slack.com/archives/PLC +.. _PLC Open Point List: https://github.com/orgs/eclipse-score/projects/PLC + +- Responsibilities + - Decisions about strategical topics + - Review and approval of contributions, e.g. Feature Requests, which add or modify features + - Project Management + - Planning and Approval of Releases + - Escalation instance +- `PLC Members`_ + - `PLC election <https://www.eclipse.org/projects/handbook/#roles-pl>`_ +- `PLC Speaker`_ +- `PLC Meeting Minutes`_ +- `PLC Slack channel`_ +- `PLC Open Point List`_ + +.. _pmp_pm_tlc: + +Technical Lead Circle (TLC) +^^^^^^^^^^^^^^^^^^^^^^^^^^^ +The Technical Lead Circle will soon be merged with the Project Lead Circle: `#2381: Merge TLC into PLC <https://github.com/eclipse-score/score/issues/2381>`_ + +.. _TLC Members: https://github.com/orgs/eclipse-score/teams/automotive-score-TLC-team +.. _TLC Speaker: https://github.com/orgs/eclipse-score/teams/automotive-score-TLC-lead +.. _TLC Meeting Minutes: https://github.com/eclipse-score/score/wiki/TLCM +.. _TLC Slack Channel: https://sdvworkinggroup.slack.com/archives/C085F44D2CS +.. _TLC Open Point List: https://github.com/orgs/eclipse-score/projects/3 + +- TLC Responsibilities: + - Review and approval of contributions, e.g. *Feature Requests*, which add or modify S-CORE platform features. + - Project management of the platform development, e.g. creation of the roadmap. + - High-level project control and coordination between multiple software modules. + - Escalation instance for software module project leads and committers. +- `TLC Members`_ + - TLC Election: Each *Project Lead* is allowed to nominate one *Technical Lead*. +- `TLC Meeting Minutes`_ +- `TLC Slack Channel`_ +- `TLC Open Point List`_ +- TLC Repositories: + - https://github.com/eclipse-score/score ^^^^^^^^^^^^^^^^^^^ Steering of the project is done with the help of *Committees*. @@ -152,6 +197,7 @@ Steering of the project is done with the help of *Committees*. - - https://github.com/eclipse-score/score +.. _pmp_pm_technical_communities: .. _pmp_pm_technical_communities: .. _pmp_pm_technical_communities: @@ -161,6 +207,17 @@ Communities commonly used development & testing infrastructure, processes or final integration & release. Each *Community* has a *Community Lead* to organize the community`s work. +The following *Communities* are established: + +.. _pmp_pm_arc: + +Architecture Community (ARC) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. _ARC Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-ARC-team +.. _ARC Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-ARC-lead +.. _ARC Meeting Minutes: https://github.com/eclipse-score/score/wiki/ARCM +.. _ARC Slack Channel: https://sdvworkinggroup.slack.com/archives/C08C1HG5AKY +.. _ARC Open Point List: https://github.com/orgs/eclipse-score/projects/3 .. _ARCMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-ARC-team .. _ARCLD: https://github.com/orgs/eclipse-score/teams/automotive-score-ARC-lead .. _ARCMM: https://github.com/eclipse-score/score/wiki/ARCM @@ -263,6 +320,45 @@ Each *Community* has a *Community Lead* to organize the community`s work. +Feature Teams +------------- +:ref:`Feature Teams <pmp_pm_feature_teams>` have end-to-end responsibility for providing specific functionalities. This includes all +development aspects beginning with the architecture definition to the integration test. +One *Team* may work independently of other *Teams* on the team-assigned *GitHub Issues*, +and needs at least one :need:`Committer <rl__committer>` who can approve & merge the Pull Requests +Each *Feature Team* has one *Lead* to organize the Team`s work. + + +.. list-table:: Team + :header-rows: 1 + :widths: 10,22,7,7,7,7,7,24 + + * - Name + - Purpose + - Members + - Speaker / Lead + - Meeting Minutes + - Slack Channel + - Backlog + - Owned Repository + + * - **------** + - .. _pmp_pm_feature_teams: + + **Feature Teams** + - **-----------** + - **-----------** + - **-----------** + - **-----------** + - **-----------** + - **-----------------------** + +The following *Communities* are established: + + + + + Feature Teams ^^^^^^^^^^^^^ *Feature Teams* have end-to-end responsibility for providing specific functionalities. This includes all @@ -672,6 +768,7 @@ The Progress of the work is documented with help of the :ref:`Status of an Issue Issues Types """""""""""" +.. image:: _assets/score_project_management_issue_types.drawio.svg .. image:: _assets/score_project_management_issue_types.drawio.svg .. image:: _assets/score_project_management_issue_types.drawio.svg :width: 900 @@ -749,6 +846,8 @@ we use the following Standard Flow for all :ref:`Issue Types <pmp_pm_issue_types .. image:: _assets/score_project_management_issue_status_flow.drawio.svg :width: 900 +.. image:: _assets/score_project_management_issue_status_flow.drawio.svg + :width: 900 .. image:: _assets/score_project_management_issue_status_flow.drawio.svg :width: 900 :alt: Issue Status @@ -826,6 +925,7 @@ Beside one for each (committee, community, feature) Team, there is one for `Feat and one for the complete `S-CORE Roadmap <https://github.com/orgs/eclipse-score/projects/17>`_. Inside a GitHub Project, there is the possibility to generate different views for Table, Board and Roadmap supporting Backlogs, Open Point or Task Lists and other useful perspectives. +.. image:: _assets/score_project_management_planning_overview.drawio.svg .. image:: _assets/score_project_management_planning_overview.drawio.svg .. image:: _assets/score_project_management_planning_overview.drawio.svg :width: 900 @@ -838,6 +938,7 @@ Kanban View """"""""""" The `GitHub Board <https://docs.github.com/en/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/customizing-the-board-layout>`_ is supporting the Kanban View, enabling to set the Work In Progress Limits. +.. image:: _assets/score_project_management_kanban.drawio.svg .. image:: _assets/score_project_management_kanban.drawio.svg .. image:: _assets/score_project_management_kanban.drawio.svg :width: 900 @@ -868,6 +969,8 @@ whereas the overall top-down plan is in the responsibility of the :ref:`Technica :ref:`Milestones <pmp_pm_milestone>` and :ref:`Releases <pmp_pm_release>`. Tracking Progress +----------------- +The :ref:`Technical Lead Circle <pmp_pm_tlc>` regularly monitors the status of the work for upcoming Milestones and Releases in https://github.com/orgs/eclipse-score/projects/17/ based on ^^^^^^^^^^^^^^^^^ The :ref:`Technical Lead Circle <pmp_pm_tlc>` regularly monitors the status of the work for upcoming Milestones and Releases in https://github.com/orgs/eclipse-score/projects/17/ based on :ref:`Product Increments <pmp_pm_product_increment>`. From def51fe773ea515b1aea8fcae1c11773b7362a74 Mon Sep 17 00:00:00 2001 From: Andreas Mittag <andreas.mittag@etas.com> Date: Mon, 26 Jan 2026 16:45:00 +0000 Subject: [PATCH 115/128] merge conflicts solved --- .../project_management.rst | 112 +----------------- 1 file changed, 4 insertions(+), 108 deletions(-) diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index 86a4a90bbf9..a15157c6114 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -61,7 +61,6 @@ Project Management Goals and Definition of Done - Roadmap with Milestones and Releases are available and up to date. * Escalation paths are described. * All Reviews are performed according to their definitions, the respective templates are used. -* All Reviews are performed according to their definitions, the respective templates are used. .. _pmp_pm_organization: @@ -72,7 +71,6 @@ Project Organization Org Chart and Main Platform Management Plan Responsibilities ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. image:: _assets/score_project_management_organization_orgchart.drawio.svg .. image:: _assets/score_project_management_organization_orgchart.drawio.svg :width: 900 :alt: Infrastructure overview @@ -81,54 +79,6 @@ Org Chart and Main Platform Management Plan Responsibilities .. _pmp_pm_steering_committees: Steering Committees -------------------- -Steering of the project is done by two committees: - -Project Lead Circle (PLC) -^^^^^^^^^^^^^^^^^^^^^^^^^ -.. _PLC Members: https://github.com/orgs/eclipse-score/teams/automotive-score-PLC-team -.. _PLC Speaker: https://github.com/orgs/eclipse-score/teams/automotive-score-PLC-lead -.. _PLC Meeting Minutes: https://github.com/eclipse-score/score/wiki/PLCM -.. _PLC Slack Channel: https://sdvworkinggroup.slack.com/archives/PLC -.. _PLC Open Point List: https://github.com/orgs/eclipse-score/projects/PLC - -- Responsibilities - - Decisions about strategical topics - - Review and approval of contributions, e.g. Feature Requests, which add or modify features - - Project Management - - Planning and Approval of Releases - - Escalation instance -- `PLC Members`_ - - `PLC election <https://www.eclipse.org/projects/handbook/#roles-pl>`_ -- `PLC Speaker`_ -- `PLC Meeting Minutes`_ -- `PLC Slack channel`_ -- `PLC Open Point List`_ - -.. _pmp_pm_tlc: - -Technical Lead Circle (TLC) -^^^^^^^^^^^^^^^^^^^^^^^^^^^ -The Technical Lead Circle will soon be merged with the Project Lead Circle: `#2381: Merge TLC into PLC <https://github.com/eclipse-score/score/issues/2381>`_ - -.. _TLC Members: https://github.com/orgs/eclipse-score/teams/automotive-score-TLC-team -.. _TLC Speaker: https://github.com/orgs/eclipse-score/teams/automotive-score-TLC-lead -.. _TLC Meeting Minutes: https://github.com/eclipse-score/score/wiki/TLCM -.. _TLC Slack Channel: https://sdvworkinggroup.slack.com/archives/C085F44D2CS -.. _TLC Open Point List: https://github.com/orgs/eclipse-score/projects/3 - -- TLC Responsibilities: - - Review and approval of contributions, e.g. *Feature Requests*, which add or modify S-CORE platform features. - - Project management of the platform development, e.g. creation of the roadmap. - - High-level project control and coordination between multiple software modules. - - Escalation instance for software module project leads and committers. -- `TLC Members`_ - - TLC Election: Each *Project Lead* is allowed to nominate one *Technical Lead*. -- `TLC Meeting Minutes`_ -- `TLC Slack Channel`_ -- `TLC Open Point List`_ -- TLC Repositories: - - https://github.com/eclipse-score/score ^^^^^^^^^^^^^^^^^^^ Steering of the project is done with the help of *Committees*. @@ -196,10 +146,7 @@ Steering of the project is done with the help of *Committees*. - `TLCBKL`_ - - https://github.com/eclipse-score/score - -.. _pmp_pm_technical_communities: -.. _pmp_pm_technical_communities: -.. _pmp_pm_technical_communities: +.. _pmp_pm_communities: Communities ^^^^^^^^^^^ @@ -207,17 +154,6 @@ Communities commonly used development & testing infrastructure, processes or final integration & release. Each *Community* has a *Community Lead* to organize the community`s work. -The following *Communities* are established: - -.. _pmp_pm_arc: - -Architecture Community (ARC) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. _ARC Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-ARC-team -.. _ARC Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-ARC-lead -.. _ARC Meeting Minutes: https://github.com/eclipse-score/score/wiki/ARCM -.. _ARC Slack Channel: https://sdvworkinggroup.slack.com/archives/C08C1HG5AKY -.. _ARC Open Point List: https://github.com/orgs/eclipse-score/projects/3 .. _ARCMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-ARC-team .. _ARCLD: https://github.com/orgs/eclipse-score/teams/automotive-score-ARC-lead .. _ARCMM: https://github.com/eclipse-score/score/wiki/ARCM @@ -319,45 +255,7 @@ Architecture Community (ARC) - https://github.com/eclipse-score/examples - -Feature Teams -------------- -:ref:`Feature Teams <pmp_pm_feature_teams>` have end-to-end responsibility for providing specific functionalities. This includes all -development aspects beginning with the architecture definition to the integration test. -One *Team* may work independently of other *Teams* on the team-assigned *GitHub Issues*, -and needs at least one :need:`Committer <rl__committer>` who can approve & merge the Pull Requests -Each *Feature Team* has one *Lead* to organize the Team`s work. - - -.. list-table:: Team - :header-rows: 1 - :widths: 10,22,7,7,7,7,7,24 - - * - Name - - Purpose - - Members - - Speaker / Lead - - Meeting Minutes - - Slack Channel - - Backlog - - Owned Repository - - * - **------** - - .. _pmp_pm_feature_teams: - - **Feature Teams** - - **-----------** - - **-----------** - - **-----------** - - **-----------** - - **-----------** - - **-----------------------** - -The following *Communities* are established: - - - - +.. _pmp_pm_feature_teams: Feature Teams ^^^^^^^^^^^^^ @@ -768,17 +666,15 @@ The Progress of the work is documented with help of the :ref:`Status of an Issue Issues Types """""""""""" -.. image:: _assets/score_project_management_issue_types.drawio.svg -.. image:: _assets/score_project_management_issue_types.drawio.svg .. image:: _assets/score_project_management_issue_types.drawio.svg :width: 900 :alt: Issue Types :align: center -.. _pmp_pm_feature_request: - | +.. _pmp_pm_feature_request: + **Feature Request** A *Feature Request* represents an independent work package used to describe and From 7140c89e6a505310f56fe3670f6a2a7db11be8d5 Mon Sep 17 00:00:00 2001 From: Andreas Mittag <andreas.mittag@etas.com> Date: Mon, 26 Jan 2026 18:55:39 +0000 Subject: [PATCH 116/128] Team in new org, double-lines from merging eliminated --- .../project_management.rst | 593 +++++++++--------- 1 file changed, 300 insertions(+), 293 deletions(-) diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index a15157c6114..975e7b22a26 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -53,10 +53,6 @@ Project Management Goals and Definition of Done - Roadmap with Milestones and Releases are available and up to date. - S-CORE Handbook (:need:`doc__platform_handbook`) is available and up to date. - :ref:`Features <features>` are described. -* Project Plan is planned and followed: - - Roadmap with Milestones and Releases are available and up to date. - - S-CORE Handbook (:need:`doc__platform_handbook`) is available and up to date. - - :ref:`Features <features>` are described. * Project Plan is planned and followed: - Roadmap with Milestones and Releases are available and up to date. * Escalation paths are described. @@ -173,6 +169,24 @@ Each *Community* has a *Community Lead* to organize the community`s work. .. _PRCBKL: https://github.com/orgs/eclipse-score/projects/21 .. _PIMBKL: https://github.com/orgs/eclipse-score/projects/7 +.. _TSTMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-TST-team +.. _TSTLD: https://github.com/orgs/eclipse-score/teams/automotive-score-TST-lead +.. _TSTMM: https://github.com/eclipse-score/score/wiki/TSTM +.. _TSTSLC: https://sdvworkinggroup.slack.com/archives/TSTC08B6C78EF3 +.. _TSTBKL: https://github.com/orgs/eclipse-score/projects/5 + +.. _INTMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-INT-team +.. _INTLD: https://github.com/orgs/eclipse-score/teams/automotive-score-INT-lead +.. _INTMM: https://github.com/eclipse-score/score/wiki/INTM +.. _INTSLC: https://sdvworkinggroup.slack.com/archives/INT +.. _INTBKL: https://github.com/orgs/eclipse-score/projects/INT + +.. _MCMMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-MCM-team +.. _MCMLD: https://github.com/orgs/eclipse-score/teams/automotive-score-MCM-lead +.. _MCMMM: https://github.com/eclipse-score/score/wiki/MCMM +.. _MCMSLC: https://sdvworkinggroup.slack.com/archives/C032X75QGTT +.. _MCMBKL: https://github.com/orgs/eclipse-score/projects/11 + .. list-table:: Community :header-rows: 1 @@ -218,8 +232,8 @@ Each *Community* has a *Community Lead* to organize the community`s work. - `PRCSLC`_ - `PRCBKL`_ `PIMBKL`_ - - https://github.com/eclipse-score/process_description - https://github.com/eclipse-score/score + - | https://github.com/eclipse-score/process_description + | https://github.com/eclipse-score/score * - .. _pmp_pm_inf: **INF** @@ -235,25 +249,83 @@ Each *Community* has a *Community Lead* to organize the community`s work. - `INFMM`_ - `INFSLC`_ - `INFBKL`_ - `INFBKL`_ - - - Toolchain Repositories: - - https://github.com/eclipse-score/bazel_platforms - - https://github.com/eclipse-score/toolchains_gcc - - https://github.com/eclipse-score/toolchains_gcc_packages - - https://github.com/eclipse-score/toolchains_qnx - - https://github.com/eclipse-score/toolchains_rust - - Tooling Repositories: - - https://github.com/eclipse-score/devcontainer - - https://github.com/eclipse-score/docs-as-code - - https://github.com/eclipse-score/tooling - - other Repositories: - - https://github.com/eclipse-score/apt-install - - https://github.com/eclipse-score/cicd-workflows - - https://github.com/eclipse-score/bazel_registry - - https://github.com/eclipse-score/bazel_registry_ui - - https://github.com/eclipse-score/.eclipsefdn - - https://github.com/eclipse-score/examples + - | Toolchain Repositories: + + | https://github.com/eclipse-score/bazel_platforms + | https://github.com/eclipse-score/toolchains_gcc + | https://github.com/eclipse-score/toolchains_gcc_packages + | https://github.com/eclipse-score/toolchains_qnx + | https://github.com/eclipse-score/toolchains_rust + | Tooling Repositories: + + | https://github.com/eclipse-score/devcontainer + | https://github.com/eclipse-score/docs-as-code + | https://github.com/eclipse-score/tooling + + | other Repositories: + + | https://github.com/eclipse-score/apt-install + | https://github.com/eclipse-score/cicd-workflows + | https://github.com/eclipse-score/bazel_registry + | https://github.com/eclipse-score/bazel_registry_ui + | https://github.com/eclipse-score/.eclipsefdn + | https://github.com/eclipse-score/examples + + * - .. _pmp_pm_tst: + + **TST** + - **Testing** + - **Community** + - **-----------** + - **-----------** + - **-----------** + - **-----------------------** + * - defining and maintaining testing strategy and infrastructure + - `TSTMBRS`_ + - `TSTLD`_ + - `TSTMM`_ + - `TSTSLC`_ + - `TSTBKL`_ + - | https://github.com/eclipse-score/itf + | https://github.com/eclipse-score/testing_tools + * - .. _pmp_pm_int: + + **INT** + - **Integration &** + - **Release** + - **Community** + - **-----------** + - **-----------** + - **-----------------------** + * - - integration of available modules to one or several reference integrations + - releasing + + - `INTMBRS`_ + - `INTLD`_ + - `INTMM`_ + - `INTSLC`_ + - `INTBKL`_ + - | https://github.com/eclipse-score/score + * - .. _pmp_pm_mcm: + + **MCM** + - **Integration &** + - **Release** + - **Community** + - **-----------** + - **-----------** + - **-----------------------** + * - - coordination of public relations, e.g. the maintenance of the website & organization of general events + - `MCMMBRS`_ + - `MCMLD`_ + - `MCMMM`_ + - `MCMSLC`_ + - `MCMBKL`_ + - | https://github.com/eclipse-score/eclipse-score.github.io + | https://github.com/eclipse-score/eclipse-score-website + | https://github.com/eclipse-score/eclipse-score-website-preview + | https://github.com/eclipse-score/eclipse-score-website-published .. _pmp_pm_feature_teams: @@ -265,279 +337,224 @@ One *Team* may work independently of other *Teams* on the team-assigned *GitHub and needs at least one :need:`Committer <rl__committer>` who can approve & merge the Pull Requests Each *Feature Team* has one *Lead* to organize the Team`s work. - -.. list-table:: Team +.. _BASMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-BAS-team +.. _BASLD: https://github.com/orgs/eclipse-score/teams/automotive-score-BAS-lead +.. _BASMM: https://github.com/eclipse-score/score/wiki/BASM +.. _BASSLC: https://sdvworkinggroup.slack.com/archives/C090UKSL5L2 +.. _BASBKL: https://github.com/orgs/eclipse-score/projects/24 + +.. _COMMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-COM-team +.. _COMLD: https://github.com/orgs/eclipse-score/teams/automotive-score-COM-lead +.. _COMMM: https://github.com/eclipse-score/score/wiki/COMM +.. _COMSLC: https://sdvworkinggroup.slack.com/archives/C08C0JATADP +.. _COMBKL: https://github.com/orgs/eclipse-score/projects/19 + +.. _CFGMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-CFG-team +.. _CFGLD: https://github.com/orgs/eclipse-score/teams/automotive-score-CFG-lead +.. _CFGMM: https://github.com/eclipse-score/score/wiki/CFGM +.. _CFGSLC: https://sdvworkinggroup.slack.com/archives/CFG +.. _CFGBKL: https://github.com/orgs/eclipse-score/projects/CFG + +.. _FEOMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-FEO-team +.. _FEOLD: https://github.com/orgs/eclipse-score/teams/automotive-score-FEO-lead +.. _FEOMM: https://github.com/eclipse-score/score/wiki/FEOM +.. _FEOSLC: https://sdvworkinggroup.slack.com/archives/FEO +.. _FEOBKL: https://github.com/orgs/eclipse-score/projects/9 + +.. _KYRMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-KYR-team +.. _KYRLD: https://github.com/orgs/eclipse-score/teams/automotive-score-KYR-lead +.. _KYRMM: https://github.com/eclipse-score/score/wiki/KYRM +.. _KYRSLC: https://sdvworkinggroup.slack.com/archives/KYR +.. _KYRBKL: https://github.com/orgs/eclipse-score/projects/38 + +.. _LCMMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-LCM-team +.. _LCMLD: https://github.com/orgs/eclipse-score/teams/automotive-score-LCM-lead +.. _LCMMM: https://github.com/eclipse-score/score/wiki/LCMM +.. _LCMSLC: https://sdvworkinggroup.slack.com/archives/C094Z3BN1K4 +.. _LCMBKL: https://github.com/orgs/eclipse-score/projects/33 + +.. _LOGMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-LOG-team +.. _LOGLD: https://github.com/orgs/eclipse-score/teams/automotive-score-LOG-lead +.. _LOGMM: https://github.com/eclipse-score/score/wiki/LOGM +.. _LOGSLC: https://sdvworkinggroup.slack.com/archives/C089XP2PGQZ +.. _LOGBKL: https://github.com/orgs/eclipse-score/projects/31 + +.. _ORCMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-ORC-team +.. _ORCLD: https://github.com/orgs/eclipse-score/teams/automotive-score-ORC-lead +.. _ORCMM: https://github.com/eclipse-score/score/wiki/ORCM +.. _ORCSLC: https://sdvworkinggroup.slack.com/archives/C099W80FU2C +.. _ORCBKL: https://github.com/orgs/eclipse-score/projects/29 + +.. _PERMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-PER-team +.. _PERLD: https://github.com/orgs/eclipse-score/teams/automotive-score-PER-lead +.. _PERMM: https://github.com/eclipse-score/score/wiki/PERM +.. _PERSLC: https://sdvworkinggroup.slack.com/archives/C08B339ETQU +.. _PERBKL: https://github.com/orgs/eclipse-score/projects/20 + +.. list-table:: Feature Teams :header-rows: 1 - :widths: 10,22,7,7,7,7,7,24 + :widths: 22,7,7,7,7,7,24 - * - Name - - Purpose + * - Purpose - Members - - Speaker / Lead + - Lead - Meeting Minutes - Slack Channel - Backlog - Owned Repository + * - .. _pmp_pm_bas: - * - **------** - - .. _pmp_pm_feature_teams: - - **Feature Teams** + **BAS** + - **Baselibs** + - **Feature** + - **Team** - **-----------** - **-----------** + - **-----------------------** + * - - development of the base libraries + - `BASMBRS`_ + - `BASLD`_ + - `BASMM`_ + - `BASSLC`_ + - `BASBKL`_ + - | https://github.com/eclipse-score/baselibs + | https://github.com/eclipse-score/baselibs_rust + * - .. _pmp_pm_com: + + **COM** + - **Communication** + - **Feature** + - **Team** - **-----------** - **-----------** + - **-----------------------** + * - - development of the communication and protocols + - `COMMBRS`_ + - `COMLD`_ + - `COMMM`_ + - `COMSLC`_ + - `COMBKL`_ + - | https://github.com/eclipse-score/communication + | https://github.com/eclipse-score/inc_mw_com + | https://github.com/eclipse-score/inc_someip_gateway + * - .. _pmp_pm_cfg: + + **CFG** + - **Configuration** + - **Management** + - **Feature** + - **Team** - **-----------** - **-----------------------** - -The following *Communities* are established: - - - -Testing Community (TST) -^^^^^^^^^^^^^^^^^^^^^^^ -.. _TST Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-TST-team -.. _TST Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-TST-lead -.. _TST Meeting Minutes: https://github.com/eclipse-score/score/wiki/TSTM -.. _TST Slack Channel: https://sdvworkinggroup.slack.com/archives/TSTC08B6C78EF3 -.. _TST Open Point List: https://github.com/orgs/eclipse-score/projects/5 - - -- TST Responsibilities - - defining and maintaining testing strategy and infrastructure -- `TST Core Members`_ -- `TST Lead`_ -- `TST Meeting Minutes`_ -- `TST Slack Channel`_ -- `TST Open Point List`_ -- TST Repositories: - - https://github.com/eclipse-score/itf - - https://github.com/eclipse-score/testing_tools - - -Integration and Release Community (INT) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. _INT Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-INT-team -.. _INT Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-INT-lead -.. _INT Meeting Minutes: https://github.com/eclipse-score/score/wiki/INTM -.. _INT Slack Channel: https://sdvworkinggroup.slack.com/archives/INT -.. _INT Open Point List: https://github.com/orgs/eclipse-score/projects/INT - - -- INT Responsibilities - - integration of available modules to one or several reference integrations - - releasing -- `INT Core Members`_ -- `INT Lead`_ -- `INT Meeting Minutes`_ -- `INT Slack Channel`_ -- `INT Open Point List`_ -- INT Repositories: - - https://github.com/eclipse-score/score - -.. _pmp_pm_mcm: - -Marketing & Communication Community -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. _MCM Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-MCM-team -.. _MCM Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-MCM-lead -.. _MCM Meeting Minutes: https://github.com/eclipse-score/score/wiki/MCMM -.. _MCM Slack Channel: https://sdvworkinggroup.slack.com/archives/C032X75QGTT -.. _MCM Open Point List: https://github.com/orgs/eclipse-score/projects/11 - -- MCM Responsibilities - - coordination of public relations, e.g. the maintenance of the website & organization of general events -- `MCM Core Members`_ -- `MCM Lead`_ -- `MCM Meeting Minutes`_ -- `MCM Slack Channel`_ -- `MCM Open Point List`_ -- MCM Repositories: - - https://github.com/eclipse-score/eclipse-score.github.io - - https://github.com/eclipse-score/eclipse-score-website - - https://github.com/eclipse-score/eclipse-score-website-preview - - https://github.com/eclipse-score/eclipse-score-website-published - - -The following *Feature Teams* are defined in the *S-CORE* project: - -Baselibs Feature Team (BAS) -^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. _BAS Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-BAS-team -.. _BAS Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-BAS-lead -.. _BAS Meeting Minutes: https://github.com/eclipse-score/score/wiki/BASM -.. _BAS Slack Channel: https://sdvworkinggroup.slack.com/archives/C090UKSL5L2 -.. _BAS Open Point List: https://github.com/orgs/eclipse-score/projects/24 - -- BAS Responsibilities - - development of the base libraries -- `BAS Core Members`_ -- `BAS Lead`_ -- `BAS Meeting Minutes`_ -- `BAS Slack Channel`_ -- `BAS Open Point List`_ -- BAS Repositories: - - https://github.com/eclipse-score/baselibs - - https://github.com/eclipse-score/baselibs_rust - -.. _pmp_pm_com: - -Communication Feature Team (COM) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. _COM Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-COM-team -.. _COM Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-COM-lead -.. _COM Meeting Minutes: https://github.com/eclipse-score/score/wiki/COMM -.. _COM Slack Channel: https://sdvworkinggroup.slack.com/archives/C08C0JATADP -.. _COM Open Point List: https://github.com/orgs/eclipse-score/projects/19 - -- COM Responsibilities - - development of the communication and protocols -- `COM Core Members`_ -- `COM Lead`_ -- `COM Meeting Minutes`_ -- `COM Slack Channel`_ -- `COM Open Point List`_ -- COM Repositories: - - https://github.com/eclipse-score/communication - - https://github.com/eclipse-score/inc_mw_com - - https://github.com/eclipse-score/inc_someip_gateway - -.. _pmp_pm_cfg: - -Configuration Management Feature Team (CFG) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. _CFG Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-CFG-team -.. _CFG Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-CFG-lead -.. _CFG Meeting Minutes: https://github.com/eclipse-score/score/wiki/CFGM -.. _CFG Slack Channel: https://sdvworkinggroup.slack.com/archives/CFG -.. _CFG Open Point List: https://github.com/orgs/eclipse-score/projects/CFG - -- CFG Responsibilities - - development of configuration management -- `CFG Core Members`_ -- `CFG Lead`_ -- `CFG Meeting Minutes`_ -- `CFG Slack Channel`_ -- `CFG Open Point List`_ -- CFG Repositories: - - https://github.com/eclipse-score/config_management - - https://github.com/eclipse-score/inc_config_management - - -Fixed Execution Order Team (FEO) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. _FEO Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-FEO-team -.. _FEO Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-FEO-lead -.. _FEO Meeting Minutes: https://github.com/eclipse-score/score/wiki/FEOM -.. _FEO Slack Channel: https://sdvworkinggroup.slack.com/archives/FEO -.. _FEO Open Point List: https://github.com/orgs/eclipse-score/projects/9 - -- FEO Responsibilities - - development of fixed execution order -- `FEO Core Members`_ -- `FEO Lead`_ -- `FEO Meeting Minutes`_ -- `FEO Slack Channel`_ -- `FEO Open Point List`_ -- FEO Repositories: - - https://github.com/eclipse-score/feo - - https://github.com/eclipse-score/inc_feo - - -Kyron Team (KYR) -^^^^^^^^^^^^^^^^ -.. _KYR Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-KYR-team -.. _KYR Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-KYR-lead -.. _KYR Meeting Minutes: https://github.com/eclipse-score/score/wiki/KYRM -.. _KYR Slack Channel: https://sdvworkinggroup.slack.com/archives/KYR -.. _KYR Open Point List: https://github.com/orgs/eclipse-score/projects/38 - - -- KYR Responsibilities - - development of Kyron -- `KYR Core Members`_ -- `KYR Lead`_ -- `KYR Meeting Minutes`_ -- `KYR Slack Channel`_ -- `KYR Open Point List`_ -- KYR Repositories: - - https://github.com/eclipse-score/kyron - - -Logging Team (LOG) -^^^^^^^^^^^^^^^^^^ -.. _LOG Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-LOG-team -.. _LOG Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-LOG-lead -.. _LOG Meeting Minutes: https://github.com/eclipse-score/score/wiki/LOGM -.. _LOG Slack Channel: https://sdvworkinggroup.slack.com/archives/C089XP2PGQZ -.. _LOG Open Point List: https://github.com/orgs/eclipse-score/projects/31 - -- LOG Responsibilities - - development of Logging -- `LOG Core Members`_ -- `LOG Lead`_ -- `LOG Meeting Minutes`_ -- `LOG Slack Channel`_ -- `LOG Open Point List`_ -- LOG Repositories: - - https://github.com/eclipse-score/logging - - https://github.com/eclipse-score/inc_mw_log - -Lifecycle Management and Health Monitoring Team (LCM) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. _LCM Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-LCM-team -.. _LCM Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-LCM-lead -.. _LCM Meeting Minutes: https://github.com/eclipse-score/score/wiki/LCMM -.. _LCM Slack Channel: https://sdvworkinggroup.slack.com/archives/C094Z3BN1K4 -.. _LCM Open Point List: https://github.com/orgs/eclipse-score/projects/33 - -- LCM Responsibilities - - development of Lifecycle Management and Health Monitoring -- `LCM Core Members`_ -- `LCM Lead`_ -- `LCM Meeting Minutes`_ -- `LCM Slack Channel`_ -- `LCM Open Point List`_ -- LCM Repositories: - - https://github.com/eclipse-score/lifecycle - -Orchstrator Team (ORC) -^^^^^^^^^^^^^^^^^^^^^^^ -.. _ORC Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-ORC-team -.. _ORC Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-ORC-lead -.. _ORC Meeting Minutes: https://github.com/eclipse-score/score/wiki/ORCM -.. _ORC Slack Channel: https://sdvworkinggroup.slack.com/archives/C099W80FU2C -.. _ORC Open Point List: https://github.com/orgs/eclipse-score/projects/29 - -- Responsibilities - - development of Orchstrator -- `ORC Core Members`_ -- `ORC Lead`_ -- `ORC Meeting Minutes`_ -- `ORC Slack Channel`_ -- `ORC Open Point List`_ -- ORC Repositories: - - https://github.com/eclipse-score/orchestrator - -.. _pmp_pm_per: - -Persistency Team (PER) -^^^^^^^^^^^^^^^^^^^^^^ -.. _PER Core Members: https://github.com/orgs/eclipse-score/teams/automotive-score-PER-team -.. _PER Lead: https://github.com/orgs/eclipse-score/teams/automotive-score-PER-lead -.. _PER Meeting Minutes: https://github.com/eclipse-score/score/wiki/PERM -.. _PER Slack Channel: https://sdvworkinggroup.slack.com/archives/C08B339ETQU -.. _PER Open Point List: https://github.com/orgs/eclipse-score/projects/20 - -- Responsibilities - - development of Persistency -- `PER Core Members`_ -- `PER Lead`_ -- `PER Meeting Minutes`_ -- `PER Slack Channel`_ -- `PER Open Point List`_ -- PER Repositories: - - https://github.com/eclipse-score/persistency + * - - development of configuration management + - `CFGMBRS`_ + - `CFGLD`_ + - `CFGMM`_ + - `CFGSLC`_ + - `CFGBKL`_ + - | https://github.com/eclipse-score/config_management + | https://github.com/eclipse-score/inc_config_management + * - .. _pmp_pm_feo: + + **FEO** + - **Fixed** + - **Execution** + - **Order** + - **Feature** + - **Team** + - **-----------------------** + * - - development of fixed execution order + - `FEOMBRS`_ + - `FEOLD`_ + - `FEOMM`_ + - `FEOSLC`_ + - `FEOBKL`_ + - | https://github.com/eclipse-score/feo + | https://github.com/eclipse-score/inc_feo + * - .. _pmp_pm_kyr: + + **KYR** + - **Kyron** + - **Feature** + - **Team** + - **-----------** + - **-----------** + - **-----------------------** + * - - development of Kyron + - `KYRMBRS`_ + - `KYRLD`_ + - `KYRMM`_ + - `KYRSLC`_ + - `KYRBKL`_ + - | https://github.com/eclipse-score/kyron + * - .. _pmp_pm_log: + + **LOG** + - **Logging** + - **Feature** + - **Team** + - **-----------** + - **-----------** + - **-----------------------** + * - - development of Logging + - `LOGMBRS`_ + - `LOGLD`_ + - `LOGMM`_ + - `LOGSLC`_ + - `LOGBKL`_ + - | https://github.com/eclipse-score/logging + | https://github.com/eclipse-score/inc_mw_log + + * - .. _pmp_pm_lcm: + + **LCM** + - **Lifecycle** + - **Management &** + - **Health Monitoring** + - **Feature** + - **Team** + - **-----------------------** + * - - development of Lifecycle Management and Health Monitoring + - `LCMMBRS`_ + - `LCMLD`_ + - `LCMMM`_ + - `LCMSLC`_ + - `LCMBKL`_ + - | https://github.com/eclipse-score/lifecycle + + * - .. _pmp_pm_ocr: + + **OCR** + - **Orchestrator** + - **Feature** + - **Team** + - **-----------** + - **-----------** + - **-----------------------** + * - - development of Orchestrator + - `ORCMBRS`_ + - `ORCLD`_ + - `ORCMM`_ + - `ORCSLC`_ + - `ORCBKL`_ + - | https://github.com/eclipse-score/orchestrator + + * - .. _pmp_pm_per: + + **PER** + - **Persistency** + - **Feature** + - **Team** + - **-----------** + - **-----------** + - **-----------------------** + * - - development of Persistency + - `PERMBRS`_ + - `PERLD`_ + - `PERMM`_ + - `PERSLC`_ + - `PERBKL`_ + - | https://github.com/eclipse-score/persistency Organization Management ^^^^^^^^^^^^^^^^^^^^^^^ @@ -740,10 +757,6 @@ Issue Status Each *GitHub issue* has a **Status** depending on the :ref:`GitHub Project <pmp_pm_gh_projects>`, we use the following Standard Flow for all :ref:`Issue Types <pmp_pm_issue_types>`: -.. image:: _assets/score_project_management_issue_status_flow.drawio.svg - :width: 900 -.. image:: _assets/score_project_management_issue_status_flow.drawio.svg - :width: 900 .. image:: _assets/score_project_management_issue_status_flow.drawio.svg :width: 900 :alt: Issue Status @@ -821,8 +834,6 @@ Beside one for each (committee, community, feature) Team, there is one for `Feat and one for the complete `S-CORE Roadmap <https://github.com/orgs/eclipse-score/projects/17>`_. Inside a GitHub Project, there is the possibility to generate different views for Table, Board and Roadmap supporting Backlogs, Open Point or Task Lists and other useful perspectives. -.. image:: _assets/score_project_management_planning_overview.drawio.svg -.. image:: _assets/score_project_management_planning_overview.drawio.svg .. image:: _assets/score_project_management_planning_overview.drawio.svg :width: 900 :alt: Planning Overview @@ -834,8 +845,6 @@ Kanban View """"""""""" The `GitHub Board <https://docs.github.com/en/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/customizing-the-board-layout>`_ is supporting the Kanban View, enabling to set the Work In Progress Limits. -.. image:: _assets/score_project_management_kanban.drawio.svg -.. image:: _assets/score_project_management_kanban.drawio.svg .. image:: _assets/score_project_management_kanban.drawio.svg :width: 900 :alt: Kanban View @@ -865,8 +874,6 @@ whereas the overall top-down plan is in the responsibility of the :ref:`Technica :ref:`Milestones <pmp_pm_milestone>` and :ref:`Releases <pmp_pm_release>`. Tracking Progress ------------------ -The :ref:`Technical Lead Circle <pmp_pm_tlc>` regularly monitors the status of the work for upcoming Milestones and Releases in https://github.com/orgs/eclipse-score/projects/17/ based on ^^^^^^^^^^^^^^^^^ The :ref:`Technical Lead Circle <pmp_pm_tlc>` regularly monitors the status of the work for upcoming Milestones and Releases in https://github.com/orgs/eclipse-score/projects/17/ based on :ref:`Product Increments <pmp_pm_product_increment>`. From 4433845cbfeb6abe5608f266768f18a6632cdb2a Mon Sep 17 00:00:00 2001 From: Andreas Mittag <andreas.mittag@etas.com> Date: Tue, 27 Jan 2026 08:12:07 +0000 Subject: [PATCH 117/128] merge duplicate removed --- docs/platform_management_plan/project_management.rst | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index 975e7b22a26..010c871bfa9 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -53,8 +53,6 @@ Project Management Goals and Definition of Done - Roadmap with Milestones and Releases are available and up to date. - S-CORE Handbook (:need:`doc__platform_handbook`) is available and up to date. - :ref:`Features <features>` are described. -* Project Plan is planned and followed: - - Roadmap with Milestones and Releases are available and up to date. * Escalation paths are described. * All Reviews are performed according to their definitions, the respective templates are used. From 22bdb95aca7b85835482ed7d27d989c349a147d3 Mon Sep 17 00:00:00 2001 From: Andreas Mittag <andreas.mittag@etas.com> Date: Tue, 27 Jan 2026 08:23:27 +0000 Subject: [PATCH 118/128] links to milestones, releases and org added objectives and scope --- docs/platform_management_plan/project_management.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index 010c871bfa9..d84654d0d43 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -42,7 +42,7 @@ Project Management Goals and Definition of Done ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * The stakeholders/stakeholder groups and organization are defined: - - Org Chart and structure description is available and up to date. + - :ref:`Org Chart and structure description <pmp_pm_organization>` is available and up to date. * Communication and reporting paths are described: - Team Overview with meeting structure is available & Slack channels are established and maintained. - Meetings are scheduled in the Eclipse SDV calendar. @@ -50,7 +50,7 @@ Project Management Goals and Definition of Done - S-CORE Handbook (:need:`doc__platform_handbook`) is available and up to date. - :ref:`Features <features>` are described. * Project Plan is planned and followed: - - Roadmap with Milestones and Releases are available and up to date. + - Roadmap with :ref:`Milestones <pmp_pm_milestone>` and :ref:`Releases <pmp_pm_release>` are available and up to date. - S-CORE Handbook (:need:`doc__platform_handbook`) is available and up to date. - :ref:`Features <features>` are described. * Escalation paths are described. From 4d79acfd4679e668fb3a7e41ad80c1c719a67992 Mon Sep 17 00:00:00 2001 From: Andreas Mittag <andreas.mittag@etas.com> Date: Mon, 2 Feb 2026 10:00:51 +0000 Subject: [PATCH 119/128] Issue Status and Attributes adapted --- ...ect_management_issue_status_flow.drawio.svg | 6 +++--- .../score_project_management_kanban.drawio.svg | 18 +++++++++--------- .../project_management.rst | 9 ++++----- 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/docs/platform_management_plan/_assets/score_project_management_issue_status_flow.drawio.svg b/docs/platform_management_plan/_assets/score_project_management_issue_status_flow.drawio.svg index 33038ec2bb1..6a74378b2a6 100644 --- a/docs/platform_management_plan/_assets/score_project_management_issue_status_flow.drawio.svg +++ b/docs/platform_management_plan/_assets/score_project_management_issue_status_flow.drawio.svg @@ -1,4 +1,4 @@ -<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="741px" height="1053px" viewBox="-0.5 -0.5 741 1053" content="<mxfile><diagram id="0w90vh-N4AjfHz9zUi27" name="Model">7V1Zd5u6Fv41WeveB2cxD49xhqZN7m0a9zROXrIEyDYNIAp46q8/AoQNQmCSMCRtnAfD1mChvfe3B0nkSDx1N58C4C/+hyzoHAmctTkSz44EQZB1BX/FlG1KGQmCllLmgW2lNH5PmNi/ISFyhLq0LRgWKkYIOZHtF4km8jxoRgUaCAK0LlabIaf4qz6Yk1/k9oSJCRxYqnZnW9EipWpyrvYltOeL7Jd5jpS4IKtMCOECWGidI4nnR+JpgFCUXrmbU+jEs5fNS9ruoqJ0N7AAelGTBj+9z7/h48/RhFfPpW8/pAf9lhvxhD8r4CzJEx8JioM7HBsBvprHV2+NEkYgWmK+npSLTAeF0HprAx6akohftM1kOkBLz4KxWHC4eL2wIzjxgRmXrrEaY9oich18x+PLme04p8hBQdJWhLwlQzVhQoCeYK5EV1QRKLgEOPbcwzQHzuKfnyEvmpAfZwgtIa1gEMFNjkSE+BNELoyCLa5CSke8lGkfARVeUQhhvVdRJUOQRV49JUIEBBbmu+73moMviPKwFenTycJzL/Vf954L3atIDrcbMBLVP0uRbC9+Ytd3oItZBSIbeW9t9G+P0qKezWYzwTRZemYphiIPo2ey0KeeWf9sjUduMf8CL5eTK/fhmz61R/w7VLM/g1IDFsiHH+jw5hBEjv8IMOTo6YeFLEryGQRZBGlwCy6IPULLIcsbwJUN10NL42solr0qyLLya4lI+f7qQB+Yj0k3HWiHBaA2Y9pXxdSgMRtEC0StTy1gBoRCaZahhQNicouCaIHmyAPO+Z46LvJhX+caIZ/M/k8YRVsS3YNlhIq8qZzNEC0Dk4wDTIWn7ezLfBQ8itdfLmzNF7wRT9zuCARzGNUFumm9+GFqmRNABzu7q2L0/5pZrh12Dms+hyG+LKuCPP4aW1f5rF3xl6FmSSzx1wRDTIxAWpIlPaQ6Nj1H6EVRpqBfLQs9LzCEXmlB5pncyEbUr9DDjR1N4+bHMrm7z5WcbUjPyc02u/Hw8+Yaxbf3+bJ9s+Qua/dyBRMZCrZ+nGnT9Rw9rK5UK+S9KRd8b1/BSNMbZOMx5wSIUynU5GTxWKY6Sp+LtBVySbFydwoljzzHHUs6t/vIxZ7TiSj1nAje7jFfIYvlhJwZQBDBsCSjWOWiokhlFsvEbIZYn8exYtomcE5IgWtbViq9MLR/AyPpKhYQP36e5AnlcYw1uC8ssGEqu3wJJzzkQQpUCKkdjJBoFrPcQwZEiJ1BBCu9Q2OG49h+SM8LhtRUjqomsZUZE/SiFOsMT0LsaMJWt8H90yac3M/Q3fTs/PZeXPJ1cTrt5cWOFdNVjAtGqQxiP5njNX/DdCBPcb3ANrDABjnPMe225FAale7kH6xPYlGfdIY6MU1uG24m01oM4mburWfBdh4LO1taYT53pjpnqPdmm22qG5ncOkuat7i1TmT3JpenA5Vd5NK+VaybkhyanHjxk52Y+LnsaFuSpnAB/PjSQubSTThwyEE2Uum6Ng4GJa+yZDwvNFM9rbOVCqkSmkMfeI3R2UyBKkbmYG78Bw8Xj4fLvv7LROpCkFON0axxFEKi03SZr+WgqMHalg8DG7MBBnGntjcvoHn3sZLK9RgrPT5oPxzhSlisrjW01M43Vzd1+XcWL9+JQHUxsnzgfmh4RfKfGeZLjLWjzkR3GvGXi+1KuDS/X7r6jfXN8B96XTo6vU2YWJnkDeBPaEbve6fCG8/wGsDULOY6hyBKkmwdDZHh1RgA3l2Gl6kGwgHzfxj/BFlOoS9/0Qyfm1r25LkFzkMxIPsO8Lz2zb0iqYrGNPciL4nyHjYzcGQsps2ST2egqTUN1NoAzR+L643Aw414K956knPnbgMvA82hArVjUd0R0qiLT9Yua6O1+O4mc9SeE47VrRwcXGFQ2o7GXrWO08TY1dgn/A3cWH08I/STe64B6f8IEydpr1URmR2nUrAwTCIUJHsvDwZmwHyaJyL1dRk5tpdlUFrRuFJky1qN0DtSOCbjyqvQNwGKnYW/KQHMizzFFkUpsUVlsKWNfCaTLdIQOFg5lwfBSG4bjKpSQwJP+/l0aqhiKeYFqSGmgRo4k3gsasrABkpuKBO8+KYslPw6C/UdWah7I1NayZE5OGO5jBzHn41Pu3YQy4lYRlTdq7kqL1e+L3NFsesi+XRmxiS+PzMGnyJ3+ttUnMU/3pUymT8ZN+Oh3fmjNtZd1BYWXtgAyZWRtC6Ebtm6ngQB2OYqEBmvMb4ivRVCIbsVqrc7lJposkxJVTqOlxrp2pltmDb+SCW3lEr+qzLMMuMUUGfJEraYDwKvL48S+G6AjBkmKBSz9H7DBHHoMGH4PJbQUCoylXkjcUI27n5TWZ/jTDh2ZefY8+whmUWf3eCAyAEWqo7P1HQvGeW47vaYtRRnUI4rC1t7jTP4j7xYElAIFF/kgfNi/CCJsaqI4lBA0Qg96/Y9vJvQQKL9/CwvVx0alJpoKkfJRxehgTaMAFkn8dsh9vqJKRd2PPSzdKcuCKKshumAMLTNjEyqvdL10gdzvVQaDDp2vYZFCP55CFFgPBGNPNe5ovDsRWMvP41PNNUKxlDO+/OhhqP3OGYCVnPogm6ShQPdQo0+hCd5FgtR/4lqDTCOHKQpbJXlQLadqKYcSNbOxV4dSKGcgnpfDmTHmWrKsVT0/hxL7vvj2pTuw/GvtW9/Cl1OMebMDQwVSjRz4IYAMhubc4wsGpbKuTsIqrlpkRnTktFebb13gdduJZzeGN78qFupL1HWin21t42fydOaE/aNE6j0oSCp4lDQTQBjvh5Ojf6NB4JkjZYExnkxrU91Z60Gf6g7DtskoTV1372+pyd1r3m3XOvqfoeCJ1z+1ftQ+EYKL4sDK3yDA7V/pcLLWnsKr9DedMcKr/Wo8MlG8dqDBR/qv5cMlVorVVhvmulT/Vmh+If64zhZaE/9d4dN2lf/k/MreG7cr33e0sDdemO4F9NhNhdV8rjxu4O6T8GWz3XQq98VnHlB3l+nPXvuYN6fbqLph5pUPlBb+TuhBA/vK1nTBmrrEr0I2+Nin/oCXW7r5UbPTNk3QgCSeuh//a7phDd5+2Druek4XOIu43eiVxnfrhLUUOYldoJ6LHDMHQ6tJqj1ktvd4waHcq7jfYFbl5lovbQy1CPoKbWgR56ehXI5jDv0XpjiJFtwBpYO0e1XrTgfALuB9/9xikixVWsr9Yxv9/9EIa2+/18U4vm/</diagram></mxfile>"> +<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="741px" height="1053px" viewBox="-0.5 -0.5 741 1053" content="<mxfile><diagram id="0w90vh-N4AjfHz9zUi27" name="Model">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</diagram></mxfile>"> <defs/> <g> <g> @@ -446,7 +446,7 @@ <br/> status: <br/> - No Status + Backlog </div> </div> </div> @@ -501,7 +501,7 @@ <br/> status: <br/> - Todo + Ready </div> </div> </div> diff --git a/docs/platform_management_plan/_assets/score_project_management_kanban.drawio.svg b/docs/platform_management_plan/_assets/score_project_management_kanban.drawio.svg index 705f1b5023c..f936e3b36bd 100644 --- a/docs/platform_management_plan/_assets/score_project_management_kanban.drawio.svg +++ b/docs/platform_management_plan/_assets/score_project_management_kanban.drawio.svg @@ -1,4 +1,4 @@ -<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="784px" height="131px" viewBox="-0.5 -0.5 784 131" content="<mxfile><diagram id="C97xqWznBMC5PXXLidsX" name="Page-1">7Vltc9o4EP41nrn7cB2/YEI+FkjaTu+lEzpt76OC17YmQvLIIkB//a1sKbaRaeGSMImnhmG065WQ9nl2pbW9aLbavpOkyP8SCTAv9JOtF829MLy8HOOvVuxqRXwR1opM0qRWBY1iQb+DUfpGu6YJlB1DJQRTtOgql4JzWKqOjkgpNl2zVLDuvxYkA0exWBLmar/SROW1dhL7jf490Cy3/xz45s6KWGOjKHOSiE1LFV150UwKoerWajsDpn1n/VL3uz5w92FiErg6qsOo7nFP2NoszkxM7exqcY6Fbipyq1XTUhGpDCg+yuhlRSgHiXJQyYyRoqSVdW2RU5b8SXZirew4Vpqm2NsMFoy1TBmbCSb0aEz78I+EyLvfvDDyq8sLZ9i+vr4MJ8Hvpr+1xxtpdVWzlOIOWndM92jq+si47R6kgm1LZXz2DsQKlNyhib1r8TMEHk+MvGnocDExrsxbVLB2xDAwexi6AQkbBqcDmMUnYnajGTbNhaTfNVTMoLKPY7mhK0Y4Upcke6qpqELVd/xKeQ6SahyVKIwFg1SZ5q1QSqyMII0b/F6OJFIUn4nMwJq0icAF18wrBOWq8lw8xa/mgv8m9uK5JkU8DRoZv9pcIjU4zhjpqYcFUqoNlH206yHF6GhW/Az10VOgPnZQ/xs2B4HHlShK2A2mP8KzKm5ztWImRDc5VbAoyFKbbjBH12GskyVpIDkcQgKdkrIqceU0SYDv4aUDMdafk4lRQQzy6h5qpIO+FNEN+frqxzD+PxgG8fg0DM1ojbNPH44wXDUnCkNtzZPSYcbDTI8jy4VDls8C5bl4uYTx/diH9ByEedgjHkWY7R66HcQnT0ugI4Z7YgJNHAJ94Ch/kiKTUJYvl0apTyKfnINGPzpQnEyjyG43g8pDkZuH5norf7Hs8f0JqWxfVxIaXbjnzwGwxz3o/qOT0Htdr71YCkEcjF4hhcZh3z726ikUOBQ6yJxftdI5aqVdF/ZzlE5R2EOCMbNLw3am21hOMT3DpQSkX2JNcPS21bMmnr708rRpJDjx0Uh0/LORYSWOyD25QEo5VVToPUik+HOD0a9Xnq6ZjkB43l3pVZNj0NVS5D5F/SrknbY4W9E0BHYMtAhya2nLjrJ6JvPMBdEQmDHQAsd9pttmxieyLn/tKT/lxjArl1HgAA9JBgsjmlN+C3DYUvVNg/ImNtK/BiLdnm/bgi1QXPfbDFyKtVxCV6dsyeE1Baae0w9BksCIovdto8ed5q3bW0GzQMwSIjFU/I+E3xK96X6hPW9HkFHK4aNxZU8N1fJum9Khlc3AI5Q1XemSsLeMZhhE8xVGUxWSxCiWoMOk3+cnn6KivdePUU92tO+cH1lNodi8jq553LzTj67+Aw==</diagram></mxfile>"> +<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="784px" height="131px" viewBox="-0.5 -0.5 784 131" content="<mxfile><diagram id="C97xqWznBMC5PXXLidsX" name="Page-1">7Vltc5s4EP41zLQfriPAOL6PZztpb+6tE99crx8VWIPGMmKEHOz++luBFMDCrX1JPYkb4nG0y2ot9nl20YIXztbb95IW2R8iAe4FJNl64dwLAp+MffynNbtGE10FjSKVLDFGrWLBvoCdabQblkDZM1RCcMWKvjIWeQ6x6umolKLqmy0F7/9qQVNwFIuYclf7iSUqa7STiLT6D8DSzP6yT8yZNbXGRlFmNBFVRxVee+FMCqGa0Xo7A66DZ+PSzLs5cPZhYRJyddSEUTPjnvKNuTizMLWzV4trLPRQ0TutmpaKSmVAIShjlBVlOUiU/VrmnBYlq60bi4zx5He6Extl/VhpusTZxpk/1jLjfCa40N64juFPCZWrN14QkvrwghmOb25+Dib+WzPf2uOJZX3Uq5RiBZ0zZno4dWNkwnYPUsG2ozIxew9iDUru0MSetfgZAo8nRq5aOlxNTCizDhWsHTUMTB9ctyDhwOB0ALPoRMxuNcOmmZDsi4aKG1T2cSwrtuY0R+rSZE81FXWqEieuLM9AMo2jEoWx4LBUZngnlBJrI0gTBjLIkUSK4m8qU7AmXSLkItfMKwTLVR25aIofzQXyLvKiuSZFNPVbGT/aXCI1clwx0lO7BVqqCsoh2g2QYnQ0K76F+ugpUB87qE9pvOIiPQg+Xo1ilN9iCaR5WuduptbcpGmVMQWLgsbatMJC3aSyLpi0heVwGgkMzJLXxStjSQL5HmY6GSP9dzI5aphBXt9Dg7Y/VCb6ad8cwzhG/wdHPxqfhqPx1gb7dHeU41XnVGG6bfKkdNjxsNLjCHPlEOYWM3v3fOlCSERgeQ66PNwlHkWX7R62PbwnT0ufI9w9MX0mDn1+zVH+KEUqoSyfL42WhIaEnoNGX9tSnEyj0N5wLqoKhW4Vmuub+bNlDyETWtu+rCI0unJ3oBfAHner+5cuQh90x/ZsKQSRP3qBFBoHQ/exF08h36HQQea8dkvn6JZ2fdjP0TyFwQAJxtxeGo5TPf4TKq5XGEtA+iXWBL13rb5r4RkqL09bRvwTH46Exz8duazCETqcMf0TUQK/7vQSCxavNFHIpsCvN3Nx+/aVHj9kvxS6T1I/CbnSFmdrmy6BHRfaBrndtGUHuiZNS6Trx/y1fvygrY77fLfLkI90U8L37XkugRuX2cOMfAd4SFJYGNHs9zuAw5apfzUo7yIjfTYQ6fF82xVsq+KG31biUmxkDH2dss2H17aaek1fBUkCp4rdd40et6+3Ye8kzQIxS6jUe7LfaH5H9c33HwaVE0FklHL4aEI50E11otuldGBl43iEsqYriyn/hbMUk2i+xmyqU5IaRQw6TYZjfvJuKtx7FRkOVEf7/vmRfRWK7avphsftC/7w+j8=</diagram></mxfile>"> <defs/> <g> <g> @@ -22,13 +22,13 @@ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 154px; height: 1px; padding-top: 70px; margin-left: 2px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; max-height: 36px; overflow: hidden; color: #333333; "> <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - New + Backlog </div> </div> </div> </foreignObject> <text x="79" y="75" fill="#333333" font-family=""Helvetica"" font-size="16px" text-anchor="middle"> - New + Backlog </text> </switch> </g> @@ -44,13 +44,13 @@ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 156px; height: 1px; padding-top: 70px; margin-left: 158px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; max-height: 36px; overflow: hidden; color: #ffffff; "> <div style="display: inline-block; font-size: 16px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - To Do + Ready </div> </div> </div> </foreignObject> <text x="236" y="75" fill="#ffffff" font-family=""Helvetica"" font-size="16px" text-anchor="middle"> - To Do + Ready </text> </switch> </g> @@ -157,13 +157,13 @@ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 156px; height: 1px; padding-top: 110px; margin-left: 158px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; max-height: 36px; overflow: hidden; color: #000000; "> <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Definition of Ready fulfilled + Ready to be picked up (DoR) </div> </div> </div> </foreignObject> <text x="236" y="113" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - Definition of Ready fulfilled + Ready to be picked up (DoR) </text> </switch> </g> @@ -201,13 +201,13 @@ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 154px; height: 1px; padding-top: 110px; margin-left: 472px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; max-height: 36px; overflow: hidden; color: #000000; "> <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Work is Done + Work is Done (DoD) </div> </div> </div> </foreignObject> <text x="549" y="113" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - Work is Done + Work is Done (DoD) </text> </switch> </g> diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index d84654d0d43..456f2a38301 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -768,12 +768,11 @@ Issue Attributes - :ref:`Type <pmp_pm_issue_types>` - Common Project Attributes - :ref:`Status <pmp_pm_issue_status_flow>` - - Priority (High, Middle, Low) - - Size (S=hours,M=days,L=weeks, XL=months) + - Priority (1 - High, 2 - Middle, 3 - Low) + - Size (S - Day, M - Week, L - Month, XL - Quarter) - (planned finishing) Iteration - - Team - - Category (e.g. Work stream) - - Release + + Issue Templates """"""""""""""" From 4427b50ad672952fbbcc193f55ccb0a0432aca52 Mon Sep 17 00:00:00 2001 From: Andreas Mittag <andreas.mittag@etas.com> Date: Mon, 9 Feb 2026 15:39:54 +0000 Subject: [PATCH 120/128] + component request --- ...ject_management_issue_hierarchy.drawio.svg | 412 ++++++++++++++++++ ..._project_management_issue_types.drawio.svg | 155 ++++--- ...ct_management_planning_overview.drawio.svg | 23 +- .../project_management.rst | 47 +- 4 files changed, 558 insertions(+), 79 deletions(-) create mode 100644 docs/platform_management_plan/_assets/score_project_management_issue_hierarchy.drawio.svg diff --git a/docs/platform_management_plan/_assets/score_project_management_issue_hierarchy.drawio.svg b/docs/platform_management_plan/_assets/score_project_management_issue_hierarchy.drawio.svg new file mode 100644 index 00000000000..f9371d7b109 --- /dev/null +++ b/docs/platform_management_plan/_assets/score_project_management_issue_hierarchy.drawio.svg @@ -0,0 +1,412 @@ +<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="610px" height="811px" viewBox="-0.5 -0.5 610 811" content="<mxfile><diagram id="WHDOwGxG-I8XMGCbMZ4Y" name="Page-1">3Zpdb5swFIZ/TW4nbPN5WZJ+SZtUrZN27YFDUB0cGadJ9+tngkmA47TVBmlHbgKv8SF+XmN87MzIfL2/lXSz+iZSxmfYSfczsphhjBwf6a9KeakVL8C1kMk8NRedhMf8N2tqGnWbp6zsXKiE4CrfdMVEFAVLVEejUopd97Kl4N27bmjGgPCYUA7Vn3mqVrUaes5Jv2N5tmrujBxTsqbNxUYoVzQVu5ZErmdkLoVQ9dF6P2e8gtdwqevdnCk9/jDJCvWeCiSqazxTvjWN+844oyUzv0+9NI2WYlukrKrnzEi8W+WKPW5oUpXutM1aW6k112dIHz4zqXIN7IrnWaE1JaoLljnnc8GFPEQkzuFT6aJQLf3m8NE6bI1pYBWe7VuSad0tE2um5Iu+xJTiBr3paqghvzsZh12jrVqmBU1FajpLdox94qkPDFI7XgzoPkiRbnWXxM59kUi2rlqGnauvD3dXrxBHbxPvsV06lDgUsj0yL5UUT6xVEi+CusTu3SBe4K4XgcULEkIvfDSAFwR4cb3Jkwr+oOAD33dCC/jl4WMD7xK88IIqqJD5b12Lvv4UjeDEcWRtOYF8y1OBwgGccIETP2j5VDnxBQ3qBSNJaBtgXnkInMg7lIwBmbgAcmhh7A6A2DuPGE8JsdtDHF4OsX9uPIk/y3gy4vDRfam6luFDz3pGGj7glOXYt8mU+nbY7dvkgsNH4ydkHE9riPZQtyMT73KM0XnGkxqjox7j8IKM4QT8yHhKYwUhXcbeJfsxnGsAsjrN3VSHS872V1UCrpvNitQcLhJOy1K/OzuAOf3FeEyTp+zgizVvPJNPniXK0k5iD3m2eHkWXo0mGacqf+4uB9ggmjs8iPyQ5+27Vhi3wv5bsRRbmTBTqZ299+L40RuBFJUZUyDQwdJjq9/nMpzuAJdbjhaiYF07P7snx4UBwzLCf2lKP1DYf8gGNCWYuilRNJApvUBjmhJO3BQcDGRKP9CYpsCkYVqmEG8gU/qBRjQFwyxjWqa4ZCBT+oHGNAWmJdMyxRvqRd8PNKYpMI+5V0xqDKLQMkzJdd6gQNJhvGrPmqF9Vf5idtyQ25ybwLbdgXWeplVhTI2QaN+ZHCavQaiHuJnwttepHUtfGSKxsewYtKHDx2Iq0PtZxUWhw2yyDR0m7ROBjoOPhA6TuzZ0d6rQifeR0GHy1obuTRW6Sz4QOoEv0nibaWEOcP/TaqCHXNtq4PlNmxg7I+++o2YSYbj7LuSObdwRGQI8fJmaldj5tHYUepu+vh8BymOtxDYbRDbGcLbyHzPu7foGaDTG+vT0Z6x64n76Sxu5/gM=</diagram></mxfile>"> + <defs/> + <g> + <g> + <rect x="120" y="0" width="240" height="700" fill="#000000" stroke="#000000" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 238px; height: 1px; padding-top: 7px; margin-left: 121px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #FFFFFF; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#FFFFFF, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Release + </div> + </div> + </div> + </foreignObject> + <text x="240" y="19" fill="#FFFFFF" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Release + </text> + </switch> + </g> + </g> + <g> + <rect x="122" y="50" width="238" height="610" rx="35.7" ry="35.7" fill="#f0a30a" stroke="#bd7000" pointer-events="all" style="fill: light-dark(rgb(240, 163, 10), rgb(154, 88, 0)); stroke: light-dark(rgb(189, 112, 0), rgb(193, 127, 31));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 236px; height: 1px; padding-top: 57px; margin-left: 123px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Product Increment ALPHA + </div> + </div> + </div> + </foreignObject> + <text x="241" y="69" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Product Increment ALPHA + </text> + </switch> + </g> + </g> + <g> + <rect x="122" y="90" width="160" height="180" rx="24" ry="24" fill="#76608a" stroke="#432d57" pointer-events="all" style="fill: light-dark(rgb(118, 96, 138), rgb(161, 142, 179)); stroke: light-dark(rgb(67, 45, 87), rgb(203, 185, 221));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 97px; margin-left: 123px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Epic A + </div> + </div> + </div> + </foreignObject> + <text x="202" y="109" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Epic A + </text> + </switch> + </g> + </g> + <g> + <rect x="122" y="114" width="80" height="40" rx="6" ry="6" fill="#e3c800" stroke="#b09500" pointer-events="all" style="fill: light-dark(rgb(227, 200, 0), rgb(103, 80, 0)); stroke: light-dark(rgb(176, 149, 0), rgb(141, 118, 0));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 134px; margin-left: 123px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Task A.1 + </div> + </div> + </div> + </foreignObject> + <text x="162" y="138" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Task A.1 + </text> + </switch> + </g> + </g> + <g> + <rect x="162" y="164" width="80" height="40" rx="6" ry="6" fill="#e3c800" stroke="#b09500" pointer-events="all" style="fill: light-dark(rgb(227, 200, 0), rgb(103, 80, 0)); stroke: light-dark(rgb(176, 149, 0), rgb(141, 118, 0));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 184px; margin-left: 163px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Task A.2 + </div> + </div> + </div> + </foreignObject> + <text x="202" y="188" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Task A.2 + </text> + </switch> + </g> + </g> + <g> + <rect x="120" y="290" width="211" height="180" rx="27" ry="27" fill="#76608a" stroke="#432d57" pointer-events="all" style="fill: light-dark(rgb(118, 96, 138), rgb(161, 142, 179)); stroke: light-dark(rgb(67, 45, 87), rgb(203, 185, 221));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 209px; height: 1px; padding-top: 297px; margin-left: 121px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Epic B + </div> + </div> + </div> + </foreignObject> + <text x="226" y="309" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Epic B + </text> + </switch> + </g> + </g> + <g> + <rect x="202" y="214" width="80" height="40" rx="6" ry="6" fill="#e3c800" stroke="#b09500" pointer-events="all" style="fill: light-dark(rgb(227, 200, 0), rgb(103, 80, 0)); stroke: light-dark(rgb(176, 149, 0), rgb(141, 118, 0));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 234px; margin-left: 203px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Task A.3 + </div> + </div> + </div> + </foreignObject> + <text x="242" y="238" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Task A.3 + </text> + </switch> + </g> + </g> + <g> + <rect x="171" y="315" width="80" height="40" rx="6" ry="6" fill="#e3c800" stroke="#b09500" pointer-events="all" style="fill: light-dark(rgb(227, 200, 0), rgb(103, 80, 0)); stroke: light-dark(rgb(176, 149, 0), rgb(141, 118, 0));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 335px; margin-left: 172px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Task B.1 + </div> + </div> + </div> + </foreignObject> + <text x="211" y="339" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Task B.1 + </text> + </switch> + </g> + </g> + <g> + <rect x="211" y="365" width="80" height="40" rx="6" ry="6" fill="#e3c800" stroke="#b09500" pointer-events="all" style="fill: light-dark(rgb(227, 200, 0), rgb(103, 80, 0)); stroke: light-dark(rgb(176, 149, 0), rgb(141, 118, 0));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 385px; margin-left: 212px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Task B.2 + </div> + </div> + </div> + </foreignObject> + <text x="251" y="389" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Task B.2 + </text> + </switch> + </g> + </g> + <g> + <rect x="251" y="415" width="80" height="40" rx="6" ry="6" fill="#e3c800" stroke="#b09500" pointer-events="all" style="fill: light-dark(rgb(227, 200, 0), rgb(103, 80, 0)); stroke: light-dark(rgb(176, 149, 0), rgb(141, 118, 0));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 435px; margin-left: 252px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Task B.3 + </div> + </div> + </div> + </foreignObject> + <text x="291" y="439" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Task B.3 + </text> + </switch> + </g> + </g> + <g> + <path d="M 0.5 765 L 0.5 755 L 590.5 755 L 590.5 744.5 L 609.5 760 L 590.5 775.5 L 590.5 765 Z" fill="#000000" stroke="#000000" stroke-linejoin="round" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 40 800 L 40 720" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 119 800 L 119 720" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 199 800 L 199 720" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 279 800 L 279 720" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 359 800 L 359 720" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 440 800 L 440 720" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="30" y="770" width="100" height="40" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 790px; margin-left: 80px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 14px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + Iteration 1 + </div> + </div> + </div> + </foreignObject> + <text x="80" y="794" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="14px" text-anchor="middle"> + Iteration 1 + </text> + </switch> + </g> + </g> + <g> + <rect x="110" y="770" width="100" height="40" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 790px; margin-left: 160px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 14px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + Iteration 2 + </div> + </div> + </div> + </foreignObject> + <text x="160" y="794" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="14px" text-anchor="middle"> + Iteration 2 + </text> + </switch> + </g> + </g> + <g> + <rect x="190" y="770" width="100" height="40" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 790px; margin-left: 240px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 14px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + Iteration 3 + </div> + </div> + </div> + </foreignObject> + <text x="240" y="794" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="14px" text-anchor="middle"> + Iteration 3 + </text> + </switch> + </g> + </g> + <g> + <rect x="270" y="770" width="100" height="40" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 790px; margin-left: 320px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 14px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + Iteration 4 + </div> + </div> + </div> + </foreignObject> + <text x="320" y="794" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="14px" text-anchor="middle"> + Iteration 4 + </text> + </switch> + </g> + </g> + <g> + <rect x="350" y="770" width="100" height="40" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 790px; margin-left: 400px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 14px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> + Iteration 5 + </div> + </div> + </div> + </foreignObject> + <text x="400" y="794" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="14px" text-anchor="middle"> + Iteration 5 + </text> + </switch> + </g> + </g> + <g> + <rect x="42" y="520" width="200" height="130" rx="19.5" ry="19.5" fill="#e51400" stroke="#b20000" pointer-events="all" style="fill: light-dark(rgb(229, 20, 0), rgb(255, 146, 129)); stroke: light-dark(rgb(178, 0, 0), rgb(255, 172, 172));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 527px; margin-left: 43px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Bug C + </div> + </div> + </div> + </foreignObject> + <text x="142" y="539" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Bug C + </text> + </switch> + </g> + </g> + <g> + <rect x="122" y="549" width="80" height="40" rx="6" ry="6" fill="#e3c800" stroke="#b09500" pointer-events="all" style="fill: light-dark(rgb(227, 200, 0), rgb(103, 80, 0)); stroke: light-dark(rgb(176, 149, 0), rgb(141, 118, 0));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 569px; margin-left: 123px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Task C.1 + </div> + </div> + </div> + </foreignObject> + <text x="162" y="573" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Task C.1 + </text> + </switch> + </g> + </g> + <g> + <rect x="162" y="599" width="80" height="40" rx="6" ry="6" fill="#e3c800" stroke="#b09500" pointer-events="all" style="fill: light-dark(rgb(227, 200, 0), rgb(103, 80, 0)); stroke: light-dark(rgb(176, 149, 0), rgb(141, 118, 0));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 619px; margin-left: 163px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Task C.2 + </div> + </div> + </div> + </foreignObject> + <text x="202" y="623" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Task C.2 + </text> + </switch> + </g> + </g> + </g> + <switch> + <g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/> + <a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"> + <text text-anchor="middle" font-size="10px" x="50%" y="100%"> + Text is not SVG - cannot display + </text> + </a> + </switch> +</svg> diff --git a/docs/platform_management_plan/_assets/score_project_management_issue_types.drawio.svg b/docs/platform_management_plan/_assets/score_project_management_issue_types.drawio.svg index 9d090eafb6c..36c7b26186c 100644 --- a/docs/platform_management_plan/_assets/score_project_management_issue_types.drawio.svg +++ b/docs/platform_management_plan/_assets/score_project_management_issue_types.drawio.svg @@ -1,14 +1,14 @@ -<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="701px" height="371px" viewBox="-0.5 -0.5 701 371" content="<mxfile><diagram id="W5UFwr1Gk-ed2l-zxu-w" name="Page-1">3Zlbc6MgGIZ/TW53UNQklzm03Z3pzmTandntJVUSmaJkEZtkf/2KgifM1m5NMmluAi+g8PD6ITiCi2h/x9E2/M4CTEc2CPYjuBzZtuVBL/uTyqFQptAuhA0ngapUCY/kD1YiUGpKApw0KgrGqCDbpuizOMa+aGiIc7ZrVlsz2rzrFm2wITz6iJrqTxKIsFAnLqj0r5hsQn1nC6iSCOnKSkhCFLBdTYI3I7jgjIkiFe0XmEp4mkvR7vZIadkxjmPRp4Hu8iuiqRrcD4yiTHnAW5YQwfhB9VQc9PA5S+MAyyuAEZzvQiLw4xb5snSXTXimhSKiWc7KkoiSTZylecFjbvZQdfoVc4H3NUn1+A6zCAvZDaBKNTzlHmui8rtqLsaaeFifB0+JSM3/prx0hShLKErdxJyJQexBTtc1EXP6AoMDALOggQMH2eOksjGLcXP8eE/EL4nqi6tyT7WS5V5RzDMHnYmzXtUayexTvaxqlud0u6NsE5ZyX3VXBSeB+AarWmpMciD/5M8xRYK8NuPGR2jahvtWnAWpLw34LfY5juRIjvvPett/a0LpglHG87ZwDRAESOosFjUd5L9MTwRnL7hWMl+Oi5JBnNt62G3Tu6VW964zgHWhAftmS/xB6Y49D0w66K7zXxddB9pLd3waumX+HHQt79oDg2MGBsu9VGRwzZUcJS+DmhVDf5I/2P1DAZi6pwoFdse6fzKzTt7r1dJ3DddVJjziuwAlYTk7vUw4Nk1oD+1B1XTFiFxc9IRYTis2t0EX3VStWqzLbvTCPzbMfYuRSDnO37t+pzgZdtEDwAV4/Z6wDIC1nC+GcXqb6znXPL3Hut6oDM0H4mJB2fr0URl6F4zKjkF3nm6GhetmUa0D7vFAMLfBYG+/Btxzvp9B8/V39rAw6CYh2spkGtGZLySFuRwg8RG9R8+YruSmmDC5o31mQrCoVmGmtrqCtWaBpYKSOMOqD3AGAjp1GzzdDpwdNIfYBuszr3okuL9ymrZ7OZxTE2d+cHXNPK1xj1h6IqCO+bR/QqBd8fNUQDuW/qsH6loXdGhHBP18QM/oUNcygK6KsXzoDWqIhaUJBU5NKF4HFHsIKLYBZRESGlycSXu33QXFPRUUc3EweOA4mMlva1nOpyhJiN+9T9Tp2nlIj33i+05RjuKu7xO1/Rsbxb5HJ29A19oHT1hga87LUPDGCYt5oWnzQsansALCfxzVZNnqc2VRvfroC2/+Ag==</diagram></mxfile>"> +<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="701px" height="391px" viewBox="-0.5 -0.5 701 391" content="<mxfile><diagram id="W5UFwr1Gk-ed2l-zxu-w" name="Page-1">3ZnRbtsgFIafJrcTmGAnl03SdpM6KWonbbukNolRsfEwbpI9/UyMEzs4q6OSRmlvyjmAAx8/Bx88QNNkfS9JFn8XEeUDD0TrAZoNPA8CH5b/tGdTeXDgVY6lZJFptHc8sb+07mm8BYto3mqohOCKZW1nKNKUhqrlI1KKVbvZQvD2r2ZkSS3HU0i47f3JIhVX3hEGe/9XypZx/csQmJqE1I2NI49JJFYNF7odoKkUQlWlZD2lXMOruVT97o7U7gYmaar6dKiH/Ep4YSb3g5Kk9DzSTORMCbkxI1WbevpSFGlE9RPAAE1WMVP0KSOhrl2VC176YpXw0oJlkXC2TMuyrHhM7BGaQb9Sqei64TIjvqcioUoPA5jaGp5RDxwZe7Vfi6AmHjfXwTdOYtZ/uXv0HlFZMJS6iQ1HFrFHvVzXRMzrCww7AAaRhYNG5XYyZipS2p4/XTP1S6P6go31u1EzWxuKW2NTG2k5qkYnbf5u1u27ba2631G2uShkaIZrgpMicklNKzMnPZH/8peUE8Ve23HjPTQ9S31zKaIi1AL8loaSJnomx/UH39bfgnE+FVzIbV+0AAQBov0iVQ0/2P6V/lxJ8UIbNZNZUNU4Ue7BZu/Q7s7X1O7QgXSRBfs2Y6FTuoHvg1EH3cX2r4vuEHkzHJyH7s7+CLrQv/bAMLQDA8SXigzYPslJ/uJUrBSFo+3G7h8KwBifKxR4Hef+2cQ6OlWrO921VLcX4RHdRSSPd6vTS4SBLULPtQZN17lg+nCpFwQOD2LzIehqmKbXAevdMHrhDyxxT0WSldTT6s3rT0Fzt8eeD8gYBqcEZm8W+K60jr3LnXp1lnW9cRnZW+JiYRl++riM/AvG5aFFd1Is3cLFZVzrgHs8EEw84Oz914L7kW9oyH4BvnmcWnTzmGS6WCT8JlSawkRPkIWEP5Bnyuc6LWZC57TPQimRNBrcmGRXiYNVEIXiLC2x1lc4joCOcYsngjbODprIBU3fjgQPV07Tw5fDObZxbq+urpknDHrE0jMBHdq7/RMC7Yqf5wLacfRfPVAML6jQjgj6+YB+oEIxtIDOq7m86w3KxcHShoLGNhS/A4rnAopnQZnGjEcXZ3KYb3dBweeCYh8OFg+aRjf661pphZzkOQu788S63LgR6ZEnnnaPchR3M0+s5d9KFPtenrwBvfa9844FHaz5LhS8ccdiP2jcfpD1MayC4OKyBttJ2R0lqpB0cJ67GgAwoItTUjQA4GwydbMtD1aoY1O6StBKc/9puFqY/Qd2dPsP</diagram></mxfile>"> <defs/> <g> <g> - <rect x="0" y="140" width="700" height="160" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <rect x="0" y="160" width="700" height="160" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 698px; height: 1px; padding-top: 220px; margin-left: 0px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 698px; height: 1px; padding-top: 240px; margin-left: 0px;"> <div style="box-sizing: border-box; font-size: 0; text-align: right; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> Team Repository @@ -16,20 +16,20 @@ </div> </div> </foreignObject> - <text x="698" y="224" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="end"> + <text x="698" y="244" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="end"> Team Repository </text> </switch> </g> </g> <g> - <rect x="0" y="0" width="700" height="130" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <rect x="0" y="0" width="700" height="150" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 698px; height: 1px; padding-top: 65px; margin-left: 0px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 698px; height: 1px; padding-top: 75px; margin-left: 0px;"> <div style="box-sizing: border-box; font-size: 0; text-align: right; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> Root Repository @@ -37,24 +37,24 @@ </div> </div> </foreignObject> - <text x="698" y="69" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="end"> + <text x="698" y="79" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="end"> Root Repository </text> </switch> </g> </g> <g> - <path d="M 240 120 L 240 153.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 240 158.88 L 236.5 151.88 L 240 153.63 L 243.5 151.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 240 140 L 240 173.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 240 178.88 L 236.5 171.88 L 240 173.63 L 243.5 171.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> - <rect x="180" y="80" width="120" height="40" rx="6" ry="6" fill="#f0a30a" stroke="#bd7000" pointer-events="all" style="fill: light-dark(rgb(240, 163, 10), rgb(154, 88, 0)); stroke: light-dark(rgb(189, 112, 0), rgb(193, 127, 31));"/> + <rect x="180" y="100" width="120" height="40" rx="6" ry="6" fill="#f0a30a" stroke="#bd7000" pointer-events="all" style="fill: light-dark(rgb(240, 163, 10), rgb(154, 88, 0)); stroke: light-dark(rgb(189, 112, 0), rgb(193, 127, 31));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 100px; margin-left: 181px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 120px; margin-left: 181px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> Product Increment @@ -62,20 +62,20 @@ </div> </div> </foreignObject> - <text x="240" y="104" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + <text x="240" y="124" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> Product Increment </text> </switch> </g> </g> <g> - <rect x="180" y="160" width="120" height="40" rx="6" ry="6" fill="#76608a" stroke="#432d57" pointer-events="all" style="fill: light-dark(rgb(118, 96, 138), rgb(161, 142, 179)); stroke: light-dark(rgb(67, 45, 87), rgb(203, 185, 221));"/> + <rect x="180" y="180" width="120" height="40" rx="6" ry="6" fill="#76608a" stroke="#432d57" pointer-events="all" style="fill: light-dark(rgb(118, 96, 138), rgb(161, 142, 179)); stroke: light-dark(rgb(67, 45, 87), rgb(203, 185, 221));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 180px; margin-left: 181px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 200px; margin-left: 181px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> Epic @@ -83,24 +83,24 @@ </div> </div> </foreignObject> - <text x="240" y="184" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + <text x="240" y="204" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> Epic </text> </switch> </g> </g> <g> - <path d="M 400 200 L 400 233.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 400 238.88 L 396.5 231.88 L 400 233.63 L 403.5 231.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 400 220 L 400 253.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 400 258.88 L 396.5 251.88 L 400 253.63 L 403.5 251.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> - <rect x="180" y="240" width="120" height="40" rx="6" ry="6" fill="#e3c800" stroke="#b09500" pointer-events="all" style="fill: light-dark(rgb(227, 200, 0), rgb(103, 80, 0)); stroke: light-dark(rgb(176, 149, 0), rgb(141, 118, 0));"/> + <rect x="180" y="260" width="120" height="40" rx="6" ry="6" fill="#e3c800" stroke="#b09500" pointer-events="all" style="fill: light-dark(rgb(227, 200, 0), rgb(103, 80, 0)); stroke: light-dark(rgb(176, 149, 0), rgb(141, 118, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 260px; margin-left: 181px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 280px; margin-left: 181px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> Task @@ -108,49 +108,49 @@ </div> </div> </foreignObject> - <text x="240" y="264" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + <text x="240" y="284" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> Task </text> </switch> </g> </g> <g> - <path d="M 140 100 L 173.63 100" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 178.88 100 L 171.88 103.5 L 173.63 100 L 171.88 96.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 152 120 L 173.63 120" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 178.88 120 L 171.88 123.5 L 173.63 120 L 171.88 116.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> - <rect x="20" y="80" width="120" height="40" rx="6" ry="6" fill="#0050ef" stroke="#001dbc" pointer-events="all" style="fill: light-dark(rgb(0, 80, 239), rgb(109, 178, 255)); stroke: light-dark(rgb(0, 29, 188), rgb(178, 203, 255));"/> + <rect x="32" y="100" width="120" height="40" rx="6" ry="6" fill="#60a917" stroke="#2d7600" pointer-events="all" style="fill: light-dark(rgb(96, 169, 23), rgb(74, 137, 12)); stroke: light-dark(rgb(45, 118, 0), rgb(115, 177, 76));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 100px; margin-left: 21px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 120px; margin-left: 33px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Feature Request + Component Request </div> </div> </div> </foreignObject> - <text x="80" y="104" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Feature Request + <text x="92" y="124" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Component Request </text> </switch> </g> </g> <g> - <path d="M 240 200 L 240 233.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 240 238.88 L 236.5 231.88 L 240 233.63 L 243.5 231.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 240 220 L 240 253.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 240 258.88 L 236.5 251.88 L 240 253.63 L 243.5 251.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> - <rect x="340" y="240" width="120" height="40" rx="6" ry="6" fill="#e3c800" stroke="#b09500" pointer-events="all" style="fill: light-dark(rgb(227, 200, 0), rgb(103, 80, 0)); stroke: light-dark(rgb(176, 149, 0), rgb(141, 118, 0));"/> + <rect x="340" y="260" width="120" height="40" rx="6" ry="6" fill="#e3c800" stroke="#b09500" pointer-events="all" style="fill: light-dark(rgb(227, 200, 0), rgb(103, 80, 0)); stroke: light-dark(rgb(176, 149, 0), rgb(141, 118, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 260px; margin-left: 341px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 280px; margin-left: 341px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> Task @@ -158,20 +158,20 @@ </div> </div> </foreignObject> - <text x="400" y="264" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + <text x="400" y="284" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> Task </text> </switch> </g> </g> <g> - <rect x="340" y="160" width="120" height="40" rx="6" ry="6" fill="#e51400" stroke="#b20000" pointer-events="all" style="fill: light-dark(rgb(229, 20, 0), rgb(255, 146, 129)); stroke: light-dark(rgb(178, 0, 0), rgb(255, 172, 172));"/> + <rect x="340" y="180" width="120" height="40" rx="6" ry="6" fill="#e51400" stroke="#b20000" pointer-events="all" style="fill: light-dark(rgb(229, 20, 0), rgb(255, 146, 129)); stroke: light-dark(rgb(178, 0, 0), rgb(255, 172, 172));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 180px; margin-left: 341px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 200px; margin-left: 341px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> Bug @@ -179,21 +179,21 @@ </div> </div> </foreignObject> - <text x="400" y="184" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + <text x="400" y="204" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> Bug </text> </switch> </g> </g> <g> - <ellipse cx="80" cy="13.75" rx="2.5" ry="3.75" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 80 17.5 L 80 30 M 80 20 L 75 20 M 80 20 L 85 20 M 80 30 L 75 40 M 80 30 L 85 40" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <ellipse cx="80" cy="14.75" rx="2.5" ry="3.75" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 80 18.5 L 80 31 M 80 21 L 75 21 M 80 21 L 85 21 M 80 31 L 75 41 M 80 31 L 85 41" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 47px; margin-left: 80px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 48px; margin-left: 80px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> ARC @@ -201,21 +201,21 @@ </div> </div> </foreignObject> - <text x="80" y="59" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + <text x="80" y="60" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> A... </text> </switch> </g> </g> <g> - <ellipse cx="240" cy="13.75" rx="2.5" ry="3.75" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 240 17.5 L 240 30 M 240 20 L 235 20 M 240 20 L 245 20 M 240 30 L 235 40 M 240 30 L 245 40" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <ellipse cx="240" cy="14.75" rx="2.5" ry="3.75" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 240 18.5 L 240 31 M 240 21 L 235 21 M 240 21 L 245 21 M 240 31 L 235 41 M 240 31 L 245 41" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 47px; margin-left: 240px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 48px; margin-left: 240px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> TLC @@ -223,21 +223,21 @@ </div> </div> </foreignObject> - <text x="240" y="59" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + <text x="240" y="60" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> T... </text> </switch> </g> </g> <g> - <ellipse cx="155" cy="243.75" rx="2.5" ry="3.75" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 155 247.5 L 155 260 M 155 250 L 150 250 M 155 250 L 160 250 M 155 260 L 150 270 M 155 260 L 160 270" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <ellipse cx="155" cy="263.75" rx="2.5" ry="3.75" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 155 267.5 L 155 280 M 155 270 L 150 270 M 155 270 L 160 270 M 155 280 L 150 290 M 155 280 L 160 290" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 277px; margin-left: 155px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 297px; margin-left: 155px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> Team @@ -245,21 +245,21 @@ </div> </div> </foreignObject> - <text x="155" y="289" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + <text x="155" y="309" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> T... </text> </switch> </g> </g> <g> - <ellipse cx="155" cy="163.75" rx="2.5" ry="3.75" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 155 167.5 L 155 180 M 155 170 L 150 170 M 155 170 L 160 170 M 155 180 L 150 190 M 155 180 L 160 190" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <ellipse cx="155" cy="183.75" rx="2.5" ry="3.75" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 155 187.5 L 155 200 M 155 190 L 150 190 M 155 190 L 160 190 M 155 200 L 150 210 M 155 200 L 160 210" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 197px; margin-left: 155px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 217px; margin-left: 155px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> Team @@ -267,21 +267,21 @@ </div> </div> </foreignObject> - <text x="155" y="209" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + <text x="155" y="229" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> T... </text> </switch> </g> </g> <g> - <ellipse cx="495" cy="243.75" rx="2.5" ry="3.75" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 495 247.5 L 495 260 M 495 250 L 490 250 M 495 250 L 500 250 M 495 260 L 490 270 M 495 260 L 500 270" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <ellipse cx="495" cy="263.75" rx="2.5" ry="3.75" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 495 267.5 L 495 280 M 495 270 L 490 270 M 495 270 L 500 270 M 495 280 L 490 290 M 495 280 L 500 290" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 277px; margin-left: 495px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 297px; margin-left: 495px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> Team @@ -289,21 +289,21 @@ </div> </div> </foreignObject> - <text x="495" y="289" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + <text x="495" y="309" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> T... </text> </switch> </g> </g> <g> - <ellipse cx="495" cy="163.75" rx="2.5" ry="3.75" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 495 167.5 L 495 180 M 495 170 L 490 170 M 495 170 L 500 170 M 495 180 L 490 190 M 495 180 L 500 190" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <ellipse cx="495" cy="183.75" rx="2.5" ry="3.75" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 495 187.5 L 495 200 M 495 190 L 490 190 M 495 190 L 500 190 M 495 200 L 490 210 M 495 200 L 500 210" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 197px; margin-left: 495px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 217px; margin-left: 495px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> Team @@ -311,20 +311,20 @@ </div> </div> </foreignObject> - <text x="495" y="209" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + <text x="495" y="229" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> T... </text> </switch> </g> </g> <g> - <rect x="0" y="350" width="60" height="20" rx="3" ry="3" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <rect x="0" y="370" width="60" height="20" rx="3" ry="3" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 360px; margin-left: 1px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 380px; margin-left: 1px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> Parent @@ -332,20 +332,20 @@ </div> </div> </foreignObject> - <text x="30" y="364" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + <text x="30" y="384" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> Parent </text> </switch> </g> </g> <g> - <rect x="120" y="350" width="50" height="20" rx="3" ry="3" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <rect x="120" y="370" width="50" height="20" rx="3" ry="3" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 360px; margin-left: 121px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 380px; margin-left: 121px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> Child @@ -353,15 +353,36 @@ </div> </div> </foreignObject> - <text x="145" y="364" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + <text x="145" y="384" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> Child </text> </switch> </g> </g> <g> - <path d="M 60 360 L 113.63 360" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 118.88 360 L 111.88 363.5 L 113.63 360 L 111.88 356.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 60 380 L 113.63 380" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 118.88 380 L 111.88 383.5 L 113.63 380 L 111.88 376.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="20" y="70" width="120" height="40" rx="6" ry="6" fill="#0050ef" stroke="#001dbc" pointer-events="all" style="fill: light-dark(rgb(0, 80, 239), rgb(109, 178, 255)); stroke: light-dark(rgb(0, 29, 188), rgb(178, 203, 255));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 90px; margin-left: 21px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Feature Request + </div> + </div> + </div> + </foreignObject> + <text x="80" y="94" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Feature Request + </text> + </switch> + </g> </g> </g> <switch> diff --git a/docs/platform_management_plan/_assets/score_project_management_planning_overview.drawio.svg b/docs/platform_management_plan/_assets/score_project_management_planning_overview.drawio.svg index 4eba9c3dc96..a4548428255 100644 --- a/docs/platform_management_plan/_assets/score_project_management_planning_overview.drawio.svg +++ b/docs/platform_management_plan/_assets/score_project_management_planning_overview.drawio.svg @@ -1,4 +1,4 @@ -<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="821px" height="361px" viewBox="-0.5 -0.5 821 361" content="<mxfile><diagram id="sy3y0YvDUY56zLrZI23Z" name="Page-1">7Vpdk5o8FP41XtoJIqiXiuyu73Sro3bavYwQIbNIaAjq7q9/EwjfuLUt2h273pA8+Twn53kIZ+yoxu54T2HgPhIbeZ0esI8dddrp9RRd1flDIC8JMlJ7CeBQbMtOObDCr0iCQKIRtlFY6sgI8RgOyqBFfB9ZrIRBSsmh3G1LvPKqAXRQDVhZ0Kuj37DN3AQdaiDHHxB23HRlBciWHUw7SyB0oU0OBUg1O6pBCWFJaXc0kCecl/olGXd3ojXbGEU+O2dAOmIPvUga1+npHh87sfFebJC9SKv1H5HY1aRUcuQzHhEG0G8csoHWs0NJ5Ntdi3iEdtSxODIK/TDd6hvTblJgaS7mq9l6vnyKJ0hauW2bwgi4C3jB34Ti8TiefemuzfFjVwytthZmSHZeXpbDsQvKaAOULT//9sVcrh5mi8S+ph2Kzfz+Avez9cPXSXexnP9nGuuTTgCxyasAWXiLrVPL9UpH1eORGIgiOsa7INEmblF4JT45JCIG8NrBxQytAmiJ5gMnOMdctvNk5z2iDHOqjD3s+BxjRHSAsuahbb56MUzTOOSj0bEAybC9R2SHGH3hXWSr1pcUeslIltQPOSP7Ke/cIht1CUKpAk42d04UXpBcOcGb26INWHWN+dLkheV8vn4XRPlstMqTxkVyqwm0dzySb5MqSq9MlX6dKRnWOlPUGlMWlNgRfyv3wMy3KNoJw6ouzv2o/NyPW+x5RkIQPlbdAqgCKHDiswIO4p8gHKPkGRVaJtNB0tKGswcVXQJ1b2cHUvR2vwVnax+ydFlZGi/blaVGq+8QZBFFwmz0I0IhC/8RYbquMuk1stQc36ouAaABtK3r0jb+NekSAMp0YlxGl9Rr6tLgtnTp4yvjn/nKqCiUol7zK2NYo40ZCFe3KEoDXQfD8a+Ikn4HWrssaXrFvaO6ewcX0iSlKfVR8SyyHbSSVeRtyMHMgUkM8AaXUPzKvQc9Afr2WGSYOG55MAz5cZXcb0V0nwV5OeT5UJnqGsZ+h5QV6uiI2Xc5iSg/iVGfNFmbHtNJROVFVk6eUEgiaqHSBZ0v5yBWijth/ZunWDglreGUUowiDzK8LyfPmo5OrrAgWHwSpEHSr94SqtRKrJGjismu6kSVV2CWT0wnSnxQmyiOpMzs8/ID9c8ebjdYJEfBDYq1W7zHDBd7NkcbY+8z3CCvHECpxll8IkQbpHCHbTuOT4pC/AoTgRXREAi7Yku1SUebNsfHKQpnyVQ5YaeYr2yidhd8AsOSu7vKn4VD2oVstyH64wOqZ3DWMHxuVVtN1RjGSvlXPkR1tRLtDa+ui2lr/W5dj++fKGUqeLnIPRU1rlHwbBi62WGJygIyzhI/RnqgH6sst+V7Jrm8UlBSUc1njmu/pKX6h5a2r6VK/Ro0iZx2maop/SamXucWNKimsq95CxqdwdTCLShEjkjYle5BF7vyZFTN2ZlpwBtUvdhVKY3EIr9TQr0TguujlgheDcpLXpbArb+Lh6DizIZE16UYXif4jTlXPyOLeDH57H/I59ny2aCeo3clnprSknhW8xrtiSev5v8OSbrn/7FRzf8B</diagram></mxfile>"> +<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="821px" height="361px" viewBox="-0.5 -0.5 821 361" content="<mxfile><diagram id="sy3y0YvDUY56zLrZI23Z" name="Page-1">7Vpdd6I6FP01PjorgKA+KtLWu6ajS50108cIEVkFwoSgtr/+JhC+sWPvgLfLqS+Qnc9zcvYmOcueonunewKD/SO2kNuTgXXqKbOeLEtAk9iDIy8Jog7lBLCJY4lGObB2XlHaU6CRY6Gw1JBi7FInKIMm9n1k0hIGCcHHcrMddsuzBtBGNWBtQreO/nAsuk/QkQpy/AE59j6dWQKixoNpYwGEe2jhYwFSjJ6iE4xp8uaddORy56V+SfrdnanNFkaQTy/pkPY4QDcSxvVkzWV9p5Zz4AukL8Jq7VfEVzUtvdniGfcIA+g3dtlC89kmOPKtvoldTHrKhG8ZgX6YLvWNYbcpsDKWi/V8s1g9xQMktcy2baEH9AL24m9D/niczL/1N8bksc+7VmsLIyQrL0/L4NgFZbQByqZf/PhmrNYP82ViX9MK+WL++wT3883D92l/uVr8Y+ibs04AscnrAJnOzjHPTSeXtkpmkRjwV3SKV4GjbVwjsUK8c4hHDGCl496haB1Ak1cfGcEZtqeeKxofEKEOo8rEdWyfYRTzBlCUXLTLZy+GaRqHrDc6FSARtvcIe4iSF9ZE1KoDQaGXjGRJ+ZgzcpDybl9koyZAKFTAzsbOicJeBFfO8Oa2aAPWfX2xMtjLarHYfAiifNVb5UnjJLnVGFoei+TbpIokl6kyqDMlw1pnilJjypJgK2JfZRnMfZMgjxtWdXHuR+n3ftw5rqsnBGF9lR2ACoAcxz4t4CD+ccJRgp9RoWY6GyY1bTh7WNElUPd2tiFFbw9acLb6KUvdytJk1a4sNVp9hyCNCOJmo18RCmn4lwjTdZVJq5Gl5vhWdQkAFaBdXZd28a9JlwCQZlO9G11SrqlLw9vSpc9bxl9zy6golKRc85YxqtHGCLirWxSloaaB0eQ9oqTdgdYOS6pWce+47t5hR5okNaU+Kp5Flo3WoojcLT4aOTCNAVaxx8R5Zd6DLgd9a8IzTAw3XRiGbLtK7jcjcsiCvBzyrKtIdY1iv0NCC2V0cuhPMQh/f+K9vqiiNDulg/DCiyic3aEQR8REpQM6m85GtBR33Po3d7GwS2rDLqUYQS6kzqGcPGvaOjHDEjv8SpAGyaB6SqhSK7FG9Comu6oDVT6BWT4xHSjxQW2gOJIysy/LD9SvPcxusEy2ghkUazf/jul7x7UY2hh7X+EWueUASjXOZAMh0iCFnmNZcXwSFDqvMBFYHg0Btyu2VJ321FlzfJyjcJZMFQP2ivnKJmr3wRcwKrm7L/1ZOKRN8G4Xoj/eoHoGZwPD51a11VD0UayU/8tFVFMq0d7w6epMW+tn63p8/0YpU8HLRe6pqHGNgmfBcJ9tFi8sIWUs8WNEBoNYZZktPzPJZYWCkvJiPnJcepeWap9a2r6WSvVj0DSy22WqKg2amHqdU9Cwmsq+5ilofAFTC6egENk8YVc6B3V25MmomrMz04A3qNrZUSmNxCK/U0J9EIJr45YIXg3KLg9L4Na/xSNQcWZDoqsrhtcJfmPO1S7IInYmn4NP+bxYPhvUc/yhxFOVWhLPal6jS/GsR6COvQD7yUWzi0S2BuBYGr7ntCTPhlqB7g23y1ronE9kV75wSsO9pq1ENivm/8VJNif/R5Ni/As=</diagram></mxfile>"> <defs/> <g> <g> @@ -346,6 +346,27 @@ <path d="M 510 170 L 535 170 L 535 192.13" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> <path d="M 535 198.88 L 530.5 189.88 L 535 192.13 L 539.5 189.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> + <g> + <rect x="70" y="290" width="120" height="40" rx="6" ry="6" fill="#60a917" stroke="#2d7600" pointer-events="all" style="fill: light-dark(rgb(96, 169, 23), rgb(74, 137, 12)); stroke: light-dark(rgb(45, 118, 0), rgb(115, 177, 76));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 310px; margin-left: 71px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Component Request + </div> + </div> + </div> + </foreignObject> + <text x="130" y="314" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Component Request + </text> + </switch> + </g> + </g> </g> <switch> <g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/> diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index 456f2a38301..495344bd832 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -304,7 +304,7 @@ Each *Community* has a *Community Lead* to organize the community`s work. - `INTMM`_ - `INTSLC`_ - `INTBKL`_ - - | https://github.com/eclipse-score/score + - | https://github.com/eclipse-score/reference_integration * - .. _pmp_pm_mcm: **MCM** @@ -695,7 +695,23 @@ Issues Types A *Feature Request* represents an independent work package used to describe and track a high-level request for the project. *Feature Request* work packages can be linked to other work packages, but they must not be treated as parent work packages. They are in the responsibility of the -:ref:`Architecture Community <pmp_pm_arc>` and are part of the :ref:`Root Repository <pmp_pm_root_repository>`. +:ref:`Architecture Community <pmp_pm_arc>` and the issues are part of the :ref:`Root Repository <pmp_pm_root_repository>`. + +`About Features <https://eclipse-score.github.io/score/main/features/index.html>`_ + +`Feature Request issue template <https://github.com/eclipse-score/.github/.github/ISSUE_TEMPLATE/1a_FeatureRequest.yml>`_ + +.. _pmp_pm_component_request: + +**Component Request** + +A *Component Request* represents an independent work package used to describe modifications inside a *Feature*. +*Component Request* work packages can be linked to other work packages, but they must not be treated as parent work packages. They are in the responsibility of the +:ref:`Architecture Community <pmp_pm_arc>` and the issues are part of the :ref:`Root Repository <pmp_pm_root_repository>`. + +`About Components <https://eclipse-score.github.io/score/main/features/index.html>`_ + +`Component Request issue template <https://github.com/eclipse-score/.github/.github/ISSUE_TEMPLATE/1b_ComponentRequest.yml>`_ .. _pmp_pm_product_increment: @@ -703,10 +719,12 @@ other work packages, but they must not be treated as parent work packages. They A *Product Increment* represents the highest level in the work package hierarchy and cannot be linked as a child of another issue. If you need to group multiple *Product Increment* work packages, -labels have to be used. -A *Product Increment* can have multiple *Epic* work packages as children. *Product Increments* areowned by +labels have to be used. One *Product Increment* is the planning element for a version of a :ref:`Module <modules>`. +A *Product Increment* can have multiple *Epic* work packages as children. *Product Increments* are owned by :ref:`Technical Lead Circle <pmp_pm_tlc>` and are part of the :ref:`Root Repository <pmp_pm_root_repository>`. +`Product Increment issue template <https://github.com/eclipse-score/.github/.github/ISSUE_TEMPLATE/2_ProductIncrement.yml>`_ + .. _pmp_pm_epic: **Epic** @@ -724,6 +742,7 @@ Sometimes support of other teams might be necessary for the completion of the wo *Epic* can have team-internal and team-external *Task* child issues. *Epics* are owned by a Team and are part of the Team`s main repository. +`Epic issue template <https://github.com/eclipse-score/.github/.github/ISSUE_TEMPLATE/3_ProductIncrement.yml>`_ .. _pmp_pm_task: @@ -738,6 +757,8 @@ If multiple *Task* work packages are related, a *Epic* work package should be cr with all associated *Task* work packages added as child work packages under that *Epic*. *Tasks* are owned by a Team and are part of any Team`s repository. +`Task issue template <https://github.com/eclipse-score/.github/.github/ISSUE_TEMPLATE/4_Task.yml>`_ + .. _pmp_pm_bug: **Bug** @@ -748,6 +769,8 @@ with the key difference that it focuses on fixing defects in existing functional rather than creating or extending functionality. *Tasks* are owned by a Team and are part of any Team`s repository. +`Bug issue template <https://github.com/eclipse-score/.github/.github/ISSUE_TEMPLATE/5_Bug.yml>`_ + .. _pmp_pm_issue_status_flow: Issue Status @@ -778,12 +801,6 @@ Issue Templates """"""""""""""" Templates defined in *GitHub* ensure the availability of the type relevant information for all issues. -- `Bug Template <https://github.com/eclipse-score/score/blob/main/.github/ISSUE_TEMPLATE/bug.yml>`_ -- `Feature Request Template <https://github.com/eclipse-score/score/blob/main/.github/ISSUE_TEMPLATE/feature_request.yml>`_ -- `Product Increment Template <https://github.com/eclipse-score/score/blob/main/.github/ISSUE_TEMPLATE/product_increment.yml>`_ -- `Epic Template <https://github.com/eclipse-score/score/blob/main/.github/ISSUE_TEMPLATE/epic.yml>`_ -- `Task Template <https://github.com/eclipse-score/score/blob/main/.github/ISSUE_TEMPLATE/task.yml>`_ - Hierarchies """"""""""" Hierarchies are realized as parent-child relations with the `GitHub Sub-Issue Feature <https://docs.github.com/en/issues/tracking-your-work-with-issues/using-issues/adding-sub-issues>`_. @@ -807,6 +824,14 @@ Releases *Releases* are special milestones and used for baselining of the development activities. +.. image:: _assets/score_project_management_issue_hierarchy.drawio.svg + :width: 900 + :alt: Issue Status + :align: center + + + + .. _pmp_pm_gh_labels: @@ -866,7 +891,7 @@ Planning of Work Generally, every team is responsible for planning its work within its own plan with the help of its :ref:`GitHub Project <pmp_pm_gh_projects>` filled with :ref:`Epics <pmp_pm_epic>`, :ref:`Tasks <pmp_pm_task>` and :ref:`Bugs <pmp_pm_bug>`. -The planning of :ref:`Feature Requests <pmp_pm_feature_request>` is in the responsibility of the :ref:`Architects <pmp_pm_arc>`, +The planning of :ref:`Feature Requests <pmp_pm_feature_request>` and :ref:`Component Requests <pmp_pm_component_request>` is in the responsibility of the :ref:`Architects <pmp_pm_arc>`, whereas the overall top-down plan is in the responsibility of the :ref:`Technical Lead Circle <pmp_pm_tlc>` with the help of :ref:`Product Increments <pmp_pm_product_increment>`, :ref:`Milestones <pmp_pm_milestone>` and :ref:`Releases <pmp_pm_release>`. From c4ac7411f4bb1e506fe3b0ce3f116cc9ef9f3f59 Mon Sep 17 00:00:00 2001 From: Andreas Mittag <andreas.mittag@etas.com> Date: Tue, 10 Feb 2026 06:58:07 +0000 Subject: [PATCH 121/128] + process issue overview --- ...ject_management_issue_hierarchy.drawio.svg | 412 -------------- ..._project_management_issue_types.drawio.svg | 10 +- ...ct_management_planning_overview.drawio.svg | 60 ++- ...nagement_process_issue_overview.drawio.svg | 508 ++++++++++++++++++ .../project_management.rst | 23 +- 5 files changed, 567 insertions(+), 446 deletions(-) delete mode 100644 docs/platform_management_plan/_assets/score_project_management_issue_hierarchy.drawio.svg create mode 100644 docs/platform_management_plan/_assets/score_project_management_process_issue_overview.drawio.svg diff --git a/docs/platform_management_plan/_assets/score_project_management_issue_hierarchy.drawio.svg b/docs/platform_management_plan/_assets/score_project_management_issue_hierarchy.drawio.svg deleted file mode 100644 index f9371d7b109..00000000000 --- a/docs/platform_management_plan/_assets/score_project_management_issue_hierarchy.drawio.svg +++ /dev/null @@ -1,412 +0,0 @@ -<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="610px" height="811px" viewBox="-0.5 -0.5 610 811" content="<mxfile><diagram id="WHDOwGxG-I8XMGCbMZ4Y" name="Page-1">3Zpdb5swFIZ/TW4nbPN5WZJ+SZtUrZN27YFDUB0cGadJ9+tngkmA47TVBmlHbgKv8SF+XmN87MzIfL2/lXSz+iZSxmfYSfczsphhjBwf6a9KeakVL8C1kMk8NRedhMf8N2tqGnWbp6zsXKiE4CrfdMVEFAVLVEejUopd97Kl4N27bmjGgPCYUA7Vn3mqVrUaes5Jv2N5tmrujBxTsqbNxUYoVzQVu5ZErmdkLoVQ9dF6P2e8gtdwqevdnCk9/jDJCvWeCiSqazxTvjWN+844oyUzv0+9NI2WYlukrKrnzEi8W+WKPW5oUpXutM1aW6k112dIHz4zqXIN7IrnWaE1JaoLljnnc8GFPEQkzuFT6aJQLf3m8NE6bI1pYBWe7VuSad0tE2um5Iu+xJTiBr3paqghvzsZh12jrVqmBU1FajpLdox94qkPDFI7XgzoPkiRbnWXxM59kUi2rlqGnauvD3dXrxBHbxPvsV06lDgUsj0yL5UUT6xVEi+CusTu3SBe4K4XgcULEkIvfDSAFwR4cb3Jkwr+oOAD33dCC/jl4WMD7xK88IIqqJD5b12Lvv4UjeDEcWRtOYF8y1OBwgGccIETP2j5VDnxBQ3qBSNJaBtgXnkInMg7lIwBmbgAcmhh7A6A2DuPGE8JsdtDHF4OsX9uPIk/y3gy4vDRfam6luFDz3pGGj7glOXYt8mU+nbY7dvkgsNH4ydkHE9riPZQtyMT73KM0XnGkxqjox7j8IKM4QT8yHhKYwUhXcbeJfsxnGsAsjrN3VSHS872V1UCrpvNitQcLhJOy1K/OzuAOf3FeEyTp+zgizVvPJNPniXK0k5iD3m2eHkWXo0mGacqf+4uB9ggmjs8iPyQ5+27Vhi3wv5bsRRbmTBTqZ299+L40RuBFJUZUyDQwdJjq9/nMpzuAJdbjhaiYF07P7snx4UBwzLCf2lKP1DYf8gGNCWYuilRNJApvUBjmhJO3BQcDGRKP9CYpsCkYVqmEG8gU/qBRjQFwyxjWqa4ZCBT+oHGNAWmJdMyxRvqRd8PNKYpMI+5V0xqDKLQMkzJdd6gQNJhvGrPmqF9Vf5idtyQ25ybwLbdgXWeplVhTI2QaN+ZHCavQaiHuJnwttepHUtfGSKxsewYtKHDx2Iq0PtZxUWhw2yyDR0m7ROBjoOPhA6TuzZ0d6rQifeR0GHy1obuTRW6Sz4QOoEv0nibaWEOcP/TaqCHXNtq4PlNmxg7I+++o2YSYbj7LuSObdwRGQI8fJmaldj5tHYUepu+vh8BymOtxDYbRDbGcLbyHzPu7foGaDTG+vT0Z6x64n76Sxu5/gM=</diagram></mxfile>"> - <defs/> - <g> - <g> - <rect x="120" y="0" width="240" height="700" fill="#000000" stroke="#000000" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 238px; height: 1px; padding-top: 7px; margin-left: 121px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #FFFFFF; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#FFFFFF, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Release - </div> - </div> - </div> - </foreignObject> - <text x="240" y="19" fill="#FFFFFF" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Release - </text> - </switch> - </g> - </g> - <g> - <rect x="122" y="50" width="238" height="610" rx="35.7" ry="35.7" fill="#f0a30a" stroke="#bd7000" pointer-events="all" style="fill: light-dark(rgb(240, 163, 10), rgb(154, 88, 0)); stroke: light-dark(rgb(189, 112, 0), rgb(193, 127, 31));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 236px; height: 1px; padding-top: 57px; margin-left: 123px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Product Increment ALPHA - </div> - </div> - </div> - </foreignObject> - <text x="241" y="69" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Product Increment ALPHA - </text> - </switch> - </g> - </g> - <g> - <rect x="122" y="90" width="160" height="180" rx="24" ry="24" fill="#76608a" stroke="#432d57" pointer-events="all" style="fill: light-dark(rgb(118, 96, 138), rgb(161, 142, 179)); stroke: light-dark(rgb(67, 45, 87), rgb(203, 185, 221));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 97px; margin-left: 123px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Epic A - </div> - </div> - </div> - </foreignObject> - <text x="202" y="109" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Epic A - </text> - </switch> - </g> - </g> - <g> - <rect x="122" y="114" width="80" height="40" rx="6" ry="6" fill="#e3c800" stroke="#b09500" pointer-events="all" style="fill: light-dark(rgb(227, 200, 0), rgb(103, 80, 0)); stroke: light-dark(rgb(176, 149, 0), rgb(141, 118, 0));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 134px; margin-left: 123px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Task A.1 - </div> - </div> - </div> - </foreignObject> - <text x="162" y="138" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Task A.1 - </text> - </switch> - </g> - </g> - <g> - <rect x="162" y="164" width="80" height="40" rx="6" ry="6" fill="#e3c800" stroke="#b09500" pointer-events="all" style="fill: light-dark(rgb(227, 200, 0), rgb(103, 80, 0)); stroke: light-dark(rgb(176, 149, 0), rgb(141, 118, 0));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 184px; margin-left: 163px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Task A.2 - </div> - </div> - </div> - </foreignObject> - <text x="202" y="188" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Task A.2 - </text> - </switch> - </g> - </g> - <g> - <rect x="120" y="290" width="211" height="180" rx="27" ry="27" fill="#76608a" stroke="#432d57" pointer-events="all" style="fill: light-dark(rgb(118, 96, 138), rgb(161, 142, 179)); stroke: light-dark(rgb(67, 45, 87), rgb(203, 185, 221));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 209px; height: 1px; padding-top: 297px; margin-left: 121px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Epic B - </div> - </div> - </div> - </foreignObject> - <text x="226" y="309" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Epic B - </text> - </switch> - </g> - </g> - <g> - <rect x="202" y="214" width="80" height="40" rx="6" ry="6" fill="#e3c800" stroke="#b09500" pointer-events="all" style="fill: light-dark(rgb(227, 200, 0), rgb(103, 80, 0)); stroke: light-dark(rgb(176, 149, 0), rgb(141, 118, 0));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 234px; margin-left: 203px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Task A.3 - </div> - </div> - </div> - </foreignObject> - <text x="242" y="238" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Task A.3 - </text> - </switch> - </g> - </g> - <g> - <rect x="171" y="315" width="80" height="40" rx="6" ry="6" fill="#e3c800" stroke="#b09500" pointer-events="all" style="fill: light-dark(rgb(227, 200, 0), rgb(103, 80, 0)); stroke: light-dark(rgb(176, 149, 0), rgb(141, 118, 0));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 335px; margin-left: 172px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Task B.1 - </div> - </div> - </div> - </foreignObject> - <text x="211" y="339" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Task B.1 - </text> - </switch> - </g> - </g> - <g> - <rect x="211" y="365" width="80" height="40" rx="6" ry="6" fill="#e3c800" stroke="#b09500" pointer-events="all" style="fill: light-dark(rgb(227, 200, 0), rgb(103, 80, 0)); stroke: light-dark(rgb(176, 149, 0), rgb(141, 118, 0));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 385px; margin-left: 212px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Task B.2 - </div> - </div> - </div> - </foreignObject> - <text x="251" y="389" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Task B.2 - </text> - </switch> - </g> - </g> - <g> - <rect x="251" y="415" width="80" height="40" rx="6" ry="6" fill="#e3c800" stroke="#b09500" pointer-events="all" style="fill: light-dark(rgb(227, 200, 0), rgb(103, 80, 0)); stroke: light-dark(rgb(176, 149, 0), rgb(141, 118, 0));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 435px; margin-left: 252px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Task B.3 - </div> - </div> - </div> - </foreignObject> - <text x="291" y="439" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Task B.3 - </text> - </switch> - </g> - </g> - <g> - <path d="M 0.5 765 L 0.5 755 L 590.5 755 L 590.5 744.5 L 609.5 760 L 590.5 775.5 L 590.5 765 Z" fill="#000000" stroke="#000000" stroke-linejoin="round" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <path d="M 40 800 L 40 720" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <path d="M 119 800 L 119 720" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <path d="M 199 800 L 199 720" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <path d="M 279 800 L 279 720" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <path d="M 359 800 L 359 720" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <path d="M 440 800 L 440 720" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <rect x="30" y="770" width="100" height="40" fill="none" stroke="none" pointer-events="all"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 790px; margin-left: 80px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 14px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Iteration 1 - </div> - </div> - </div> - </foreignObject> - <text x="80" y="794" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="14px" text-anchor="middle"> - Iteration 1 - </text> - </switch> - </g> - </g> - <g> - <rect x="110" y="770" width="100" height="40" fill="none" stroke="none" pointer-events="all"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 790px; margin-left: 160px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 14px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Iteration 2 - </div> - </div> - </div> - </foreignObject> - <text x="160" y="794" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="14px" text-anchor="middle"> - Iteration 2 - </text> - </switch> - </g> - </g> - <g> - <rect x="190" y="770" width="100" height="40" fill="none" stroke="none" pointer-events="all"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 790px; margin-left: 240px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 14px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Iteration 3 - </div> - </div> - </div> - </foreignObject> - <text x="240" y="794" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="14px" text-anchor="middle"> - Iteration 3 - </text> - </switch> - </g> - </g> - <g> - <rect x="270" y="770" width="100" height="40" fill="none" stroke="none" pointer-events="all"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 790px; margin-left: 320px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 14px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Iteration 4 - </div> - </div> - </div> - </foreignObject> - <text x="320" y="794" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="14px" text-anchor="middle"> - Iteration 4 - </text> - </switch> - </g> - </g> - <g> - <rect x="350" y="770" width="100" height="40" fill="none" stroke="none" pointer-events="all"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 790px; margin-left: 400px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 14px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Iteration 5 - </div> - </div> - </div> - </foreignObject> - <text x="400" y="794" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="14px" text-anchor="middle"> - Iteration 5 - </text> - </switch> - </g> - </g> - <g> - <rect x="42" y="520" width="200" height="130" rx="19.5" ry="19.5" fill="#e51400" stroke="#b20000" pointer-events="all" style="fill: light-dark(rgb(229, 20, 0), rgb(255, 146, 129)); stroke: light-dark(rgb(178, 0, 0), rgb(255, 172, 172));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 527px; margin-left: 43px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Bug C - </div> - </div> - </div> - </foreignObject> - <text x="142" y="539" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Bug C - </text> - </switch> - </g> - </g> - <g> - <rect x="122" y="549" width="80" height="40" rx="6" ry="6" fill="#e3c800" stroke="#b09500" pointer-events="all" style="fill: light-dark(rgb(227, 200, 0), rgb(103, 80, 0)); stroke: light-dark(rgb(176, 149, 0), rgb(141, 118, 0));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 569px; margin-left: 123px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Task C.1 - </div> - </div> - </div> - </foreignObject> - <text x="162" y="573" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Task C.1 - </text> - </switch> - </g> - </g> - <g> - <rect x="162" y="599" width="80" height="40" rx="6" ry="6" fill="#e3c800" stroke="#b09500" pointer-events="all" style="fill: light-dark(rgb(227, 200, 0), rgb(103, 80, 0)); stroke: light-dark(rgb(176, 149, 0), rgb(141, 118, 0));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 619px; margin-left: 163px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Task C.2 - </div> - </div> - </div> - </foreignObject> - <text x="202" y="623" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Task C.2 - </text> - </switch> - </g> - </g> - </g> - <switch> - <g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/> - <a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"> - <text text-anchor="middle" font-size="10px" x="50%" y="100%"> - Text is not SVG - cannot display - </text> - </a> - </switch> -</svg> diff --git a/docs/platform_management_plan/_assets/score_project_management_issue_types.drawio.svg b/docs/platform_management_plan/_assets/score_project_management_issue_types.drawio.svg index 36c7b26186c..cc3673e8d8b 100644 --- a/docs/platform_management_plan/_assets/score_project_management_issue_types.drawio.svg +++ b/docs/platform_management_plan/_assets/score_project_management_issue_types.drawio.svg @@ -1,4 +1,4 @@ -<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="701px" height="391px" viewBox="-0.5 -0.5 701 391" content="<mxfile><diagram id="W5UFwr1Gk-ed2l-zxu-w" name="Page-1">3ZnRbtsgFIafJrcTmGAnl03SdpM6KWonbbukNolRsfEwbpI9/UyMEzs4q6OSRmlvyjmAAx8/Bx88QNNkfS9JFn8XEeUDD0TrAZoNPA8CH5b/tGdTeXDgVY6lZJFptHc8sb+07mm8BYto3mqohOCKZW1nKNKUhqrlI1KKVbvZQvD2r2ZkSS3HU0i47f3JIhVX3hEGe/9XypZx/csQmJqE1I2NI49JJFYNF7odoKkUQlWlZD2lXMOruVT97o7U7gYmaar6dKiH/Ep4YSb3g5Kk9DzSTORMCbkxI1WbevpSFGlE9RPAAE1WMVP0KSOhrl2VC176YpXw0oJlkXC2TMuyrHhM7BGaQb9Sqei64TIjvqcioUoPA5jaGp5RDxwZe7Vfi6AmHjfXwTdOYtZ/uXv0HlFZMJS6iQ1HFrFHvVzXRMzrCww7AAaRhYNG5XYyZipS2p4/XTP1S6P6go31u1EzWxuKW2NTG2k5qkYnbf5u1u27ba2631G2uShkaIZrgpMicklNKzMnPZH/8peUE8Ve23HjPTQ9S31zKaIi1AL8loaSJnomx/UH39bfgnE+FVzIbV+0AAQBov0iVQ0/2P6V/lxJ8UIbNZNZUNU4Ue7BZu/Q7s7X1O7QgXSRBfs2Y6FTuoHvg1EH3cX2r4vuEHkzHJyH7s7+CLrQv/bAMLQDA8SXigzYPslJ/uJUrBSFo+3G7h8KwBifKxR4Hef+2cQ6OlWrO921VLcX4RHdRSSPd6vTS4SBLULPtQZN17lg+nCpFwQOD2LzIehqmKbXAevdMHrhDyxxT0WSldTT6s3rT0Fzt8eeD8gYBqcEZm8W+K60jr3LnXp1lnW9cRnZW+JiYRl++riM/AvG5aFFd1Is3cLFZVzrgHs8EEw84Oz914L7kW9oyH4BvnmcWnTzmGS6WCT8JlSawkRPkIWEP5Bnyuc6LWZC57TPQimRNBrcmGRXiYNVEIXiLC2x1lc4joCOcYsngjbODprIBU3fjgQPV07Tw5fDObZxbq+urpknDHrE0jMBHdq7/RMC7Yqf5wLacfRfPVAML6jQjgj6+YB+oEIxtIDOq7m86w3KxcHShoLGNhS/A4rnAopnQZnGjEcXZ3KYb3dBweeCYh8OFg+aRjf661pphZzkOQu788S63LgR6ZEnnnaPchR3M0+s5d9KFPtenrwBvfa9844FHaz5LhS8ccdiP2jcfpD1MayC4OKyBttJ2R0lqpB0cJ67GgAwoItTUjQA4GwydbMtD1aoY1O6StBKc/9puFqY/Qd2dPsP</diagram></mxfile>"> +<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="701px" height="391px" viewBox="-0.5 -0.5 701 391" content="<mxfile><diagram id="W5UFwr1Gk-ed2l-zxu-w" name="Page-1">3Zpdk+IoFIZ/jbdTBEKil632zG7VbFVX91btziWToKGGBJeQVufXbzDEfIDdaTu2ZXtjOECEh5cDHJygRbr7Jskm+UvElE8giHcTtJxA6IFpUH5py76y4BBWhrVksSnUGJ7Yb1rXNNaCxTTvFFRCcMU2XWMksoxGqmMjUoptt9hK8O6vbsiaWoaniHDb+g+LVVJZpxg09j8oWyf1L3vA5KSkLmwMeUJisW2Z0P0ELaQQqnpKdwvKNbyaS1Xv64ncY8MkzdSQCnWTnwkvTOf+piQtLY90I3KmhNyblqp93X0piiym+g1ggubbhCn6tCGRzt2WA17aEpXyMuWVj4SzdVY+y4rH3G6hafQzlYruWibT4m9UpFTpZgCTW8Mz6vGmJr1txiKsiSftcQiMkZjxXx9f3SAqHwwlNzF/ahF71MN1S8TgUGB4BGAesnDQuJxOJpmJjHb7T3dM/atRfcEm9aOVs9wZiofEvk5kZatalXTyRzuvqXZI1fVOss1FISPTXOOcFJFrakqZPumOvMhfUk4Ue+76jffQhJb6HqSIi0gL8M8skjTVPTmtP+91/a0Y5wvBhTzURStAECDaLjLVsoPDp7TnSopftJUzX4ZVzijK7U12h3aPtrZ2/RGkiyzY9xsWjUo3DAIwddBdHT4uuj6CSxxehu4x/RF0veDWHYNvOwYPX8szYHslJ/mvUcVKUTQ9TOzhrgDM8KVcAXSs+xcT6/StWj3qrqO6RoQndBeTPDmOziARhrYI4dgaNFUfBNOLSz0gnt/zzX3QVTNNrR7rYzMG4Q8tcS9EuimpZ9XO67+C5uMuewEgMy98i2OGyzAYS+sYXm/Vq09Zt+uXkT0lruaWvU/vl1FwRb/sW3TnxXpcuLj0aw64px3BHILR9r8W3I/coSF7A3z3uLDo5gnZ6Mci5XeR0hTmuoMsIvw7+Un5gz4WM6HPtD+FUiJtFbgzh10leqMgCsVZVmKtQzgjAZ3hDk/k2TgdNNEYNAPbE3y/cZoQXw/nzMZ5CF3dMk8vHOBLLwTUt2f7JwTq8p+XAupY+m8eKPauqFCHB/18QD9QodizgD5UfXnXDmqMhaULBc1sKIEDChwDCrSgLBLG46sz6Z+3XVDwpaDYi4PFg2bxnb5dK1MRJ3nOIvc5sX5uRUQGnBPfFkc5ibt9Tqzl3zkoDg2evAK9tr0zxoJ6Y350Ba/EWOwXzbovsi7DKghjBGuwfSj7SokqJJ1cJlYDAAZ09ZYjGgDecr4YZ1r2RsgxKS92QMP2DuPsWfkR0Zt2HElIlYi1yAi/b6xz5+Q754bOv+as9XuhatR3wUNnrY970z8cNmvLESf7VrGNLpCfbjDshRm8GXi5Xf07+G758qFqwdku5OW7Ibd2xg6/n7Nenadf7LhJgm4BvzdmP4Xdgetf8Q9VJuxtW60Xnb2elMnmDzBV8eZvROj+fw==</diagram></mxfile>"> <defs/> <g> <g> @@ -384,6 +384,14 @@ </switch> </g> </g> + <g> + <path d="M 240 140 L 240 160 Q 240 170 250 170 L 390 170 Q 400 170 400 171.82 L 400 173.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 400 178.88 L 396.5 171.88 L 400 173.63 L 403.5 171.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 140 90 L 150 90 Q 160 90 160 100 L 160 110 Q 160 120 166.82 120 L 173.63 120" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 178.88 120 L 171.88 123.5 L 173.63 120 L 171.88 116.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> </g> <switch> <g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/> diff --git a/docs/platform_management_plan/_assets/score_project_management_planning_overview.drawio.svg b/docs/platform_management_plan/_assets/score_project_management_planning_overview.drawio.svg index a4548428255..512a64f48f9 100644 --- a/docs/platform_management_plan/_assets/score_project_management_planning_overview.drawio.svg +++ b/docs/platform_management_plan/_assets/score_project_management_planning_overview.drawio.svg @@ -1,4 +1,4 @@ -<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="821px" height="361px" viewBox="-0.5 -0.5 821 361" content="<mxfile><diagram id="sy3y0YvDUY56zLrZI23Z" name="Page-1">7Vpdd6I6FP01PjorgKA+KtLWu6ajS50108cIEVkFwoSgtr/+JhC+sWPvgLfLqS+Qnc9zcvYmOcueonunewKD/SO2kNuTgXXqKbOeLEtAk9iDIy8Jog7lBLCJY4lGObB2XlHaU6CRY6Gw1JBi7FInKIMm9n1k0hIGCcHHcrMddsuzBtBGNWBtQreO/nAsuk/QkQpy/AE59j6dWQKixoNpYwGEe2jhYwFSjJ6iE4xp8uaddORy56V+SfrdnanNFkaQTy/pkPY4QDcSxvVkzWV9p5Zz4AukL8Jq7VfEVzUtvdniGfcIA+g3dtlC89kmOPKtvoldTHrKhG8ZgX6YLvWNYbcpsDKWi/V8s1g9xQMktcy2baEH9AL24m9D/niczL/1N8bksc+7VmsLIyQrL0/L4NgFZbQByqZf/PhmrNYP82ViX9MK+WL++wT3883D92l/uVr8Y+ibs04AscnrAJnOzjHPTSeXtkpmkRjwV3SKV4GjbVwjsUK8c4hHDGCl496haB1Ak1cfGcEZtqeeKxofEKEOo8rEdWyfYRTzBlCUXLTLZy+GaRqHrDc6FSARtvcIe4iSF9ZE1KoDQaGXjGRJ+ZgzcpDybl9koyZAKFTAzsbOicJeBFfO8Oa2aAPWfX2xMtjLarHYfAiifNVb5UnjJLnVGFoei+TbpIokl6kyqDMlw1pnilJjypJgK2JfZRnMfZMgjxtWdXHuR+n3ftw5rqsnBGF9lR2ACoAcxz4t4CD+ccJRgp9RoWY6GyY1bTh7WNElUPd2tiFFbw9acLb6KUvdytJk1a4sNVp9hyCNCOJmo18RCmn4lwjTdZVJq5Gl5vhWdQkAFaBdXZd28a9JlwCQZlO9G11SrqlLw9vSpc9bxl9zy6golKRc85YxqtHGCLirWxSloaaB0eQ9oqTdgdYOS6pWce+47t5hR5okNaU+Kp5Flo3WoojcLT4aOTCNAVaxx8R5Zd6DLgd9a8IzTAw3XRiGbLtK7jcjcsiCvBzyrKtIdY1iv0NCC2V0cuhPMQh/f+K9vqiiNDulg/DCiyic3aEQR8REpQM6m85GtBR33Po3d7GwS2rDLqUYQS6kzqGcPGvaOjHDEjv8SpAGyaB6SqhSK7FG9Comu6oDVT6BWT4xHSjxQW2gOJIysy/LD9SvPcxusEy2ghkUazf/jul7x7UY2hh7X+EWueUASjXOZAMh0iCFnmNZcXwSFDqvMBFYHg0Btyu2VJ321FlzfJyjcJZMFQP2ivnKJmr3wRcwKrm7L/1ZOKRN8G4Xoj/eoHoGZwPD51a11VD0UayU/8tFVFMq0d7w6epMW+tn63p8/0YpU8HLRe6pqHGNgmfBcJ9tFi8sIWUs8WNEBoNYZZktPzPJZYWCkvJiPnJcepeWap9a2r6WSvVj0DSy22WqKg2amHqdU9Cwmsq+5ilofAFTC6egENk8YVc6B3V25MmomrMz04A3qNrZUSmNxCK/U0J9EIJr45YIXg3KLg9L4Na/xSNQcWZDoqsrhtcJfmPO1S7IInYmn4NP+bxYPhvUc/yhxFOVWhLPal6jS/GsR6COvQD7yUWzi0S2BuBYGr7ntCTPhlqB7g23y1ronE9kV75wSsO9pq1ENivm/8VJNif/R5Ni/As=</diagram></mxfile>"> +<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="821px" height="402px" viewBox="-0.5 -0.5 821 402" content="<mxfile><diagram id="sy3y0YvDUY56zLrZI23Z" name="Page-1">7Vpbk6I6EP41ProVQMB5VHQup3ZWSz21O48RIlKDhA1h1P31J4FwCeA4F3DnzK4vJp17d39fJ609zdodbggMt/fYQX5PBc6hp016qqqAocG+uOSYSnRTTQUu8RzRqRAsvV8oGymkseegSOpIMfapF8pCGwcBsqkkg4Tgvdxtg3151RC6qCZY2tCvS797Dt2m0qEOCvkt8txttrICRMsOZp2FINpCB+9LIm3a0yyCMU1Lu4OFfK68TC/puOsTrfnGCAroSwZkI56gH4vD9VTDZ2PHjvfEN0iP4tTGz5jvaiyVXPGdjIhCGDQOWUP70SU4Dpy+jX1MetqIm4zAIMq2+sy060ywmM5ny7vVbPGQTJC2srOtSyPgLmSFYB3xr/vR3bf+ajq67/Oh1dbSDOnO5WWZOFGBLG0Q5cvPvn+bLpa3d/P0fE075Jt5+wI3d6vbf8f9+WL2z9RanVQCSI68DJHtbTz71HKqZCqVeWLIi+iQ7ALH66RFYZXEcoh7DGC1/dajaBlCmzfvGcCZbEt3vuj8hAj1GFRGvucGTEYx7wBFzUebYvWym2Z+yEajQ0kk3PYG4R2i5Mi6iFZ9ICB0zEGW1vcFIgcZ7rZlNBpCCAULuPncBVBYQWDlBG4+F2zAsm/NFlNWWMxmqw8BlK9WqzhpXKQ4NYbOjnny54SKospQGdSRkstaR4pWQ8qcYCdmUVkFd4FN0I4frKriQo/KeT1uPN+3UoCwsdoGQA1ALscBLclB8uGAowQ/olLLeGKmLW0o26zwEqhrOzdIWduDFpSt/6WlbmlptGiXlhpPfY0gjQnix0Y/YxTR6A8hJnWoXJCZjBpYaopvlZcA0AHa1Hlpk3yaeAkAZTK2uuElbVDXdWe8ZH4uXvr7yvhjXhkVhlK0S74yhjXYTEOu6hZJyTQMMBy9hpSMa9DaZUk3Kuq9qqvX7IiTlKbUR0WzyHHRUlSRv8b7aSEYJwLWsMXE+8W0B30uDJwRzzAxue3DKGLmktRvx+Qpd3LZ5dlQkeoaJnqHhJbqTMnk+CPvyioPvPJFz6qTQ7lxchS1k1Zi87uISvzMj/us2Upm0RvMkskI8iH1nuRsWZOtxApz7PE3QOYVWtUr1Iq5IxwTG4lR5exWZaJBJeblCcRsolQHtYkS18mP/bJnTj0jwM4N5qne2QESsuaBy9p6vsOkjc72Fa6RL3tMRmo2mwiRBu7beY6TOCRBkfcLpozKTR/ycyUn1cc9fZI7Qw2feaZUDO7l+UnJb57HMviiaMb77J91wZtNhN5rkYYczQpGj62y51SzhgkX/panpqFV3LshOHXGnvXYNI7ddpWrK4Mm5V4mNJnV/OIlQ9PV60JThFyeRZGCU/dxqAg9D1LkaY5D6ODRH2JxXi5FL1YrBvHK2diVBgDZE8vxLKOvDxLQjKsKUKuXw5cGtKpTdhjQMhV+XvocgooyG/KiXSG8DvBPplyjmtq5oHKVwQemzzfQYIlyB/LlH5y7/Se1OSIeUyK/PL6cVptYVf1QrKorLbGqoZvyRNl7qANWrbumhXchDtJXQhdpRwPAK8V8zTVKnZhGaz+HVEKfZl4w7diQQKkTwRmkZ4AtQJrfdl4CWOmOpJxBqwOjbW5lXplDymAbJNyhgmFukgoCz4JZbwDzb4Vu5eWivfWFrw8rHGB2diHS6r9kJlpgBvu/veRTXJzEbJ+5rQauJMX2lfcZ/j1Pe1Yt/hGVdi/+V6ZN/wM=</diagram></mxfile>"> <defs/> <g> <g> @@ -105,14 +105,14 @@ </g> </g> <g> - <rect x="0" y="200" width="240" height="160" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <rect x="2" y="202" width="236" height="156" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <rect x="0" y="241" width="240" height="160" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <rect x="2" y="243" width="236" height="156" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 234px; height: 1px; padding-top: 209px; margin-left: 4px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 234px; height: 1px; padding-top: 250px; margin-left: 4px;"> <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> <div style=""> @@ -139,20 +139,20 @@ </div> </div> </foreignObject> - <text x="4" y="221" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px"> + <text x="4" y="262" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px"> REPOSITORY: S-CORE ROOT... </text> </switch> </g> </g> <g> - <rect x="50" y="260" width="120" height="40" rx="6" ry="6" fill="#0050ef" stroke="#001dbc" pointer-events="all" style="fill: light-dark(rgb(0, 80, 239), rgb(109, 178, 255)); stroke: light-dark(rgb(0, 29, 188), rgb(178, 203, 255));"/> + <rect x="50" y="301" width="120" height="40" rx="6" ry="6" fill="#0050ef" stroke="#001dbc" pointer-events="all" style="fill: light-dark(rgb(0, 80, 239), rgb(109, 178, 255)); stroke: light-dark(rgb(0, 29, 188), rgb(178, 203, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 280px; margin-left: 51px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 321px; margin-left: 51px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> Feature Request @@ -160,7 +160,7 @@ </div> </div> </foreignObject> - <text x="110" y="284" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + <text x="110" y="325" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> Feature Request </text> </switch> @@ -229,14 +229,14 @@ </g> </g> <g> - <path d="M 170 80 L 305 80 L 305 170 L 432.13 170" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 438.88 170 L 429.88 174.5 L 432.13 170 L 429.88 165.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 240 80 L 320 80 L 320 170 L 392.13 170" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 398.88 170 L 389.88 174.5 L 392.13 170 L 389.88 165.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 112px; margin-left: 305px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 143px; margin-left: 321px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> 1 Parent : n Children @@ -244,7 +244,7 @@ </div> </div> </foreignObject> - <text x="305" y="115" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> + <text x="321" y="146" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> 1 Parent : n Children </text> </switch> @@ -271,10 +271,6 @@ </switch> </g> </g> - <g> - <path d="M 110 260 L 433.86 171.68" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="1 4" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 438.92 170.29 L 433.09 175.51 L 433.86 171.68 L 431.25 168.76 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> <g> <rect x="620" y="150" width="70" height="40" rx="6" ry="6" fill="#e51400" stroke="#6f0000" pointer-events="all" style="fill: light-dark(rgb(229, 20, 0), rgb(255, 146, 129)); stroke: light-dark(rgb(111, 0, 0), rgb(255, 197, 197));"/> </g> @@ -343,17 +339,17 @@ </g> </g> <g> - <path d="M 510 170 L 535 170 L 535 192.13" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 535 198.88 L 530.5 189.88 L 535 192.13 L 539.5 189.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 510 170 L 538 170 L 538 184.13" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 538 190.88 L 533.5 181.88 L 538 184.13 L 542.5 181.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> - <rect x="70" y="290" width="120" height="40" rx="6" ry="6" fill="#60a917" stroke="#2d7600" pointer-events="all" style="fill: light-dark(rgb(96, 169, 23), rgb(74, 137, 12)); stroke: light-dark(rgb(45, 118, 0), rgb(115, 177, 76));"/> + <rect x="70" y="331" width="120" height="40" rx="6" ry="6" fill="#60a917" stroke="#2d7600" pointer-events="all" style="fill: light-dark(rgb(96, 169, 23), rgb(74, 137, 12)); stroke: light-dark(rgb(45, 118, 0), rgb(115, 177, 76));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 310px; margin-left: 71px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 351px; margin-left: 71px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> Component Request @@ -361,12 +357,34 @@ </div> </div> </foreignObject> - <text x="130" y="314" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + <text x="130" y="355" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> Component Request </text> </switch> </g> </g> + <g> + <path d="M 120 241 L 120 166.37" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="8 8" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 120 161.12 L 123.5 168.12 L 120 166.37 L 116.5 168.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 223px; margin-left: 122px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> + <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> + related + </div> + </div> + </div> + </foreignObject> + <text x="122" y="226" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> + related + </text> + </switch> + </g> + </g> </g> <switch> <g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/> diff --git a/docs/platform_management_plan/_assets/score_project_management_process_issue_overview.drawio.svg b/docs/platform_management_plan/_assets/score_project_management_process_issue_overview.drawio.svg new file mode 100644 index 00000000000..4ea684a4708 --- /dev/null +++ b/docs/platform_management_plan/_assets/score_project_management_process_issue_overview.drawio.svg @@ -0,0 +1,508 @@ +<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="631px" height="664px" viewBox="-0.5 -0.5 631 664" content="<mxfile><diagram id="LEemh8klBKRIXfq5bYu_" name="Page-1">7VtLc6M4EP41vm4JxMM5ju1kNofUZsdbtZOjBmTDBiNWiMTeX78CS+YhObEdwJCKDwlqJJC+/tTqlpoJnG+23ylKggfi42hiAn87gYuJaRpg6vB/uWS3l9iuuResaeiLSqVgGf6HZUshzUIfp7WKjJCIhUld6JE4xh6ryRCl5LVebUWi+lsTtMaKYOmhSJX+Hfos2EunNijlv+NwHcg3G0Dc2SBZWQjSAPnktSKCtxM4p4Sw/dVmO8dRDp7EZd/u7sjdQ8cojtkpDQTuLyjKxNjmAYr56E3wgGI+jk3+oH1X2U6On/c6yS8TSjyccjBnr0HI8DJBXi5+5VrnsoBtIl4y+OUv5D2vKcli/4+MRWGMhVztrhjBC6YMbysi0f3vmGwwozteRdy1BJKCSlNRfC31Ykiwg4pOHCFDggrrw4NLtPiFAEwPHlTAe6Tkn5xwY0XPArA/+CwFvj8zFIVsN174pj3CZ+vY9yvCGy78gVMSZSwk8Zjgs50e4XMU+JYeSXLDJy1gA7gCAuyL0b8DWgvgXNOyuQo49xtOmBf9jLw2Mr1arRsFmlm2vgu3g0Ol19kkPbO6NSoMTBMXPhxWHzw3+uuYX3t88JhyQT7okLtb38SNTej7eXMtiiXOgJdWJGZL8TKNN3Q2qm6TagqmjgZS2AakhgppRhOSqqZpXJBeE1PV371P02zsiFr29RBVneA7jFhGceGG/Jvh9K0FA7xvGldhFM1JRGjRFgJgA7wSIFbkq+LH5Smj5BnXWhiL2bwlj8W83qJsqB7fbRJ6raLrOg6YonPQtaC5sN1u0O11YTdUj/AvlD5/DF4fpcHBB8gLj4hx85Hbi9wWAf5H0QGG3hQAVQeg+Ol0MAM3dnGnDR1cM6YxVMeTe1etMhzbhqVD9zjDZ6bAvQOG9+ukTb8YrmG4Y/WpAzV+UPDHsf8t36XMvY0IpSm38TXI8TZkPyvXT7mmfrNFabEViisKO1mIeUd/VguVVnmxbFaUZLujeKcko57osBgCQ3SNJVZ7EfZrO6mqTiqY2xrIpYziCLHwpb7/qtODeMMjCfNAtdxoqKsc2g1V7kcjWpmV/dLmgxqeFgSNB+0xUB5U0OIw7JOYIhn4qZgCVaa4g2aK5cJ2mGKZjQe1yBQ1Uhw/U1yVKdIB/qLK5VRRw7VBUyVXtYyUCWUBWZMYRbel9DQyWV9mpwMuqQc4g+bSSUyxVabcfDHlo0xRdy7Gz5QbzQL1ZVQ+TBU1Rh0/VRwNVeCgqTKGAAm2ESD175fUWGANigXQqSvPMEbAAjX4+YEjjNLx5jBBSeRekphMBb8H4mdRkQlBMdImkVz7bLtfhFQ/95FyiIo8r/vYo+9lRZy/Sb0CCALNMcwbG6QLt7NN6n7R/oy+ItTYfjnxBmL7FWexeTp8se2fdmf71SO7T8AVU8OVYfkJo+TKpQcvKe8DO9GJLBnwVL13zIkU1Cvp9lRlm5Z6J1HI0OxiDJxCdlsUsrqjkHRCRk6hlvZUDV1UO6wdetjghn1xVNtka3fxjHXpDv0JJNOSxXibLEeICd4jZksk0x0DTQdFslFaMtVxeggjnDISq7mQMlIO8BZxLXLVJZiG/G15GqSUPkqReUqws8Xyqy5thp8IchrBz13xayfEsRtY61Imu/tyo8N15EPe7JlrTztTXDom1SluDTt9RMmcvXSKG91NcfvSpIBL15F3nA5JMqO2ivR2AKxzVobtEY+BZBLC6vejZJPwVaToUBf53w5AN4arrg7H8zfNhet0tTVmOH2uG5ceuJ8Rf5w7PTuMPxrz8rI5Doc0paHZ0pQ+fELz4SnNi+XX5vvq5Tf78PZ/</diagram></mxfile>"> + <defs/> + <g> + <g> + <rect x="0" y="40" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 12 40 L 12 100 M 108 40 L 108 100" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 94px; height: 1px; padding-top: 70px; margin-left: 13px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Change Management + </div> + </div> + </div> + </foreignObject> + <text x="60" y="74" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Change Management + </text> + </switch> + </g> + </g> + <g> + <rect x="0" y="363" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 12 363 L 12 423 M 108 363 L 108 423" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 94px; height: 1px; padding-top: 393px; margin-left: 13px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Project Management + </div> + </div> + </div> + </foreignObject> + <text x="60" y="397" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Project Manageme... + </text> + </switch> + </g> + </g> + <g> + <rect x="0" y="443" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 12 443 L 12 503 M 108 443 L 108 503" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 94px; height: 1px; padding-top: 473px; margin-left: 13px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Quality Management + </div> + </div> + </div> + </foreignObject> + <text x="60" y="477" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Quality Manageme... + </text> + </switch> + </g> + </g> + <g> + <rect x="0" y="523" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 12 523 L 12 583 M 108 523 L 108 583" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 94px; height: 1px; padding-top: 553px; margin-left: 13px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Problem Resolution + </div> + </div> + </div> + </foreignObject> + <text x="60" y="557" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Problem Resoluti... + </text> + </switch> + </g> + </g> + <g> + <rect x="200" y="40" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 70px; margin-left: 201px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Scope Change + </div> + </div> + </div> + </foreignObject> + <text x="260" y="74" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Scope Change + </text> + </switch> + </g> + </g> + <g> + <rect x="200" y="363" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 393px; margin-left: 201px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Improvement + </div> + </div> + </div> + </foreignObject> + <text x="260" y="397" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Improvement + </text> + </switch> + </g> + </g> + <g> + <rect x="200" y="523" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 553px; margin-left: 201px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + BugFix + </div> + </div> + </div> + </foreignObject> + <text x="260" y="557" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + BugFix + </text> + </switch> + </g> + </g> + <g> + <rect x="30" y="0" width="60" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 15px; margin-left: 31px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> + Process + </div> + </div> + </div> + </foreignObject> + <text x="60" y="19" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle" font-weight="bold"> + Process + </text> + </switch> + </g> + </g> + <g> + <rect x="230" y="0" width="60" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 15px; margin-left: 231px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> + Purpose + </div> + </div> + </div> + </foreignObject> + <text x="260" y="19" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle" font-weight="bold"> + Purpose + </text> + </switch> + </g> + </g> + <g> + <rect x="410" y="0" width="60" height="30" fill="none" stroke="none" pointer-events="all"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 15px; margin-left: 411px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "> + Issue + </div> + </div> + </div> + </foreignObject> + <text x="440" y="19" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle" font-weight="bold"> + Issue + </text> + </switch> + </g> + </g> + <g> + <rect x="380" y="40" width="120" height="60" fill="#0050ef" stroke="#001dbc" pointer-events="all" style="fill: light-dark(rgb(0, 80, 239), rgb(109, 178, 255)); stroke: light-dark(rgb(0, 29, 188), rgb(178, 203, 255));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 70px; margin-left: 381px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Feature Request + </div> + </div> + </div> + </foreignObject> + <text x="440" y="74" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Feature Request + </text> + </switch> + </g> + </g> + <g> + <rect x="380" y="363" width="120" height="60" fill="#76608a" stroke="#432d57" pointer-events="all" style="fill: light-dark(rgb(118, 96, 138), rgb(161, 142, 179)); stroke: light-dark(rgb(67, 45, 87), rgb(203, 185, 221));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 393px; margin-left: 381px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Epic + </div> + </div> + </div> + </foreignObject> + <text x="440" y="397" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Epic + </text> + </switch> + </g> + </g> + <g> + <rect x="400" y="443" width="120" height="60" fill="#e3c800" stroke="#b09500" stroke-dasharray="12 12" pointer-events="all" style="fill: light-dark(rgb(227, 200, 0), rgb(103, 80, 0)); stroke: light-dark(rgb(176, 149, 0), rgb(141, 118, 0));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 473px; margin-left: 401px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Task + </div> + </div> + </div> + </foreignObject> + <text x="460" y="477" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Task + </text> + </switch> + </g> + </g> + <g> + <rect x="380" y="523" width="120" height="60" fill="#e51400" stroke="#b20000" pointer-events="all" style="fill: light-dark(rgb(229, 20, 0), rgb(255, 146, 129)); stroke: light-dark(rgb(178, 0, 0), rgb(255, 172, 172));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 553px; margin-left: 381px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Bug + </div> + </div> + </div> + </foreignObject> + <text x="440" y="557" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Bug + </text> + </switch> + </g> + </g> + <g> + <rect x="400" y="603" width="120" height="60" fill="#e3c800" stroke="#b09500" stroke-dasharray="12 12" pointer-events="all" style="fill: light-dark(rgb(227, 200, 0), rgb(103, 80, 0)); stroke: light-dark(rgb(176, 149, 0), rgb(141, 118, 0));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 633px; margin-left: 401px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Task + </div> + </div> + </div> + </foreignObject> + <text x="460" y="637" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Task + </text> + </switch> + </g> + </g> + <g> + <path d="M 120 70 L 193.63 70" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 198.88 70 L 191.88 73.5 L 193.63 70 L 191.88 66.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 120 393 L 193.63 393" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 198.88 393 L 191.88 396.5 L 193.63 393 L 191.88 389.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 320 393 L 373.63 393" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 378.88 393 L 371.88 396.5 L 373.63 393 L 371.88 389.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 120 473 L 150 473 Q 160 473 160 463 L 160 403 Q 160 393 170 393 L 193.63 393" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 198.88 393 L 191.88 396.5 L 193.63 393 L 191.88 389.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 120 553 L 193.63 553" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 198.88 553 L 191.88 556.5 L 193.63 553 L 191.88 549.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 320 553 L 373.63 553" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 378.88 553 L 371.88 556.5 L 373.63 553 L 371.88 549.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 320 70 L 373.63 70" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 378.88 70 L 371.88 73.5 L 373.63 70 L 371.88 66.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 320 70 L 340.5 70.34 Q 350.5 70.5 350.5 80.5 L 350.5 140 Q 350.5 150 360.5 150 L 373.63 150" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 378.88 150 L 371.88 153.5 L 373.63 150 L 371.88 146.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="0" y="282" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 12 282 L 12 342 M 108 282 L 108 342" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 94px; height: 1px; padding-top: 312px; margin-left: 13px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Release Management + </div> + </div> + </div> + </foreignObject> + <text x="60" y="316" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Release Manageme... + </text> + </switch> + </g> + </g> + <g> + <rect x="200" y="282" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 312px; margin-left: 201px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Module Creation + </div> + </div> + </div> + </foreignObject> + <text x="260" y="316" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Module Creation + </text> + </switch> + </g> + </g> + <g> + <rect x="380" y="282" width="120" height="60" fill="#f0a30a" stroke="#bd7000" pointer-events="all" style="fill: light-dark(rgb(240, 163, 10), rgb(154, 88, 0)); stroke: light-dark(rgb(189, 112, 0), rgb(193, 127, 31));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 312px; margin-left: 381px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Product Increment + </div> + </div> + </div> + </foreignObject> + <text x="440" y="316" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Product Increment + </text> + </switch> + </g> + </g> + <g> + <path d="M 120 312 L 193.63 312" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 198.88 312 L 191.88 315.5 L 193.63 312 L 191.88 308.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 320 312 L 373.63 312" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 378.88 312 L 371.88 315.5 L 373.63 312 L 371.88 308.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 440 356.63 L 440 348.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 440 361.88 L 436.5 354.88 L 440 356.63 L 443.5 354.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 440 343.12 L 443.5 350.12 L 440 348.37 L 436.5 350.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 460 436.63 L 460 434.82 Q 460 433 450 433 L 445 433 Q 440 433 440 431.18 L 440 429.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 460 441.88 L 456.5 434.88 L 460 436.63 L 463.5 434.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 440 424.12 L 443.5 431.12 L 440 429.37 L 436.5 431.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 440 589.37 L 440 591.18 Q 440 593 450 593 L 455 593 Q 460 593 460 594.82 L 460 596.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 440 584.12 L 443.5 591.12 L 440 589.37 L 436.5 591.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 460 601.88 L 456.5 594.88 L 460 596.63 L 463.5 594.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 530 200 L 610 200 L 630 230 L 610 260 L 530 260 L 510 230 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 230px; margin-left: 511px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #FFFFFF; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#FFFFFF, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Milestone + </div> + </div> + </div> + </foreignObject> + <text x="570" y="234" fill="#FFFFFF" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Milestone + </text> + </switch> + </g> + </g> + <g> + <path d="M 506.37 312 L 560 312 Q 570 312 570 302 L 570 266.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 501.12 312 L 508.12 308.5 L 506.37 312 L 508.12 315.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 570 261.12 L 573.5 268.12 L 570 266.37 L 566.5 268.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <path d="M 570 193.63 L 570 160 Q 570 150 560 150 L 506.37 150" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 570 198.88 L 566.5 191.88 L 570 193.63 L 573.5 191.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 501.12 150 L 508.12 146.5 L 506.37 150 L 508.12 153.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + <g> + <rect x="380" y="120" width="120" height="60" fill="#60a917" stroke="#2d7600" pointer-events="all" style="fill: light-dark(rgb(96, 169, 23), rgb(74, 137, 12)); stroke: light-dark(rgb(45, 118, 0), rgb(115, 177, 76));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 150px; margin-left: 381px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Component Request + </div> + </div> + </div> + </foreignObject> + <text x="440" y="154" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Component Request + </text> + </switch> + </g> + </g> + <g> + <path d="M 570 193.63 L 570 80 Q 570 70 560 70 L 506.37 70" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 570 198.88 L 566.5 191.88 L 570 193.63 L 573.5 191.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 501.12 70 L 508.12 66.5 L 506.37 70 L 508.12 73.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> + </g> + <switch> + <g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/> + <a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"> + <text text-anchor="middle" font-size="10px" x="50%" y="100%"> + Text is not SVG - cannot display + </text> + </a> + </switch> +</svg> diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index 495344bd832..5573b786586 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -807,7 +807,7 @@ Hierarchies are realized as parent-child relations with the `GitHub Sub-Issue Fe Dependencies """""""""""" -Dependencies are realized with blocked by or blocking relations described in thè `GitHub Issue Dependency Feature <https://docs.github.com/en/issues/tracking-your-work-with-issues/using-issues/creating-issue-dependencies>`_. +Dependencies are realized with blocked by or blocking relations described in the `GitHub Issue Dependency Feature <https://docs.github.com/en/issues/tracking-your-work-with-issues/using-issues/creating-issue-dependencies>`_. .. _pmp_pm_milestone: @@ -823,15 +823,6 @@ Releases ^^^^^^^^ *Releases* are special milestones and used for baselining of the development activities. - -.. image:: _assets/score_project_management_issue_hierarchy.drawio.svg - :width: 900 - :alt: Issue Status - :align: center - - - - .. _pmp_pm_gh_labels: @@ -852,8 +843,8 @@ helps to plan the work and monitor its progress. Multiple *GitHub Projects* are defined at https://github.com/orgs/eclipse-score/projects/. -Beside one for each (committee, community, feature) Team, there is one for `Feature Requests <https://github.com/orgs/eclipse-score/projects/4>`_ -and one for the complete `S-CORE Roadmap <https://github.com/orgs/eclipse-score/projects/17>`_. Inside a GitHub Project, there is the possibility to generate different views +Beside one for each (committee, community, feature) Team, there is one for `Feature / Component Requests <https://github.com/orgs/eclipse-score/projects/4>`_ +and one for the complete `Roadmap <https://github.com/orgs/eclipse-score/projects/17>`_. Inside a GitHub Project, there is the possibility to generate different views for Table, Board and Roadmap supporting Backlogs, Open Point or Task Lists and other useful perspectives. .. image:: _assets/score_project_management_planning_overview.drawio.svg @@ -895,6 +886,14 @@ The planning of :ref:`Feature Requests <pmp_pm_feature_request>` and :ref:`Compo whereas the overall top-down plan is in the responsibility of the :ref:`Technical Lead Circle <pmp_pm_tlc>` with the help of :ref:`Product Increments <pmp_pm_product_increment>`, :ref:`Milestones <pmp_pm_milestone>` and :ref:`Releases <pmp_pm_release>`. +.. image:: _assets/score_project_management_process_issue_overview.drawio.svg + :width: 600 + :alt: Planning Overview + :align: center + + + + Tracking Progress ^^^^^^^^^^^^^^^^^ The :ref:`Technical Lead Circle <pmp_pm_tlc>` regularly monitors the status of the work for upcoming Milestones and Releases in https://github.com/orgs/eclipse-score/projects/17/ based on From 7ac70f3d7b83a85a5aaa33af448c8dd92fe9da1c Mon Sep 17 00:00:00 2001 From: Andreas Mittag <andreas.mittag@etas.com> Date: Tue, 10 Feb 2026 13:32:35 +0000 Subject: [PATCH 122/128] update of review findings --- .../doc_generation.rst | 27 +++++++++---------- .../project_management.rst | 5 ++-- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/docs/handbook/building_simple_application/doc_generation.rst b/docs/handbook/building_simple_application/doc_generation.rst index 46b376461a1..fc0f3ad2aad 100644 --- a/docs/handbook/building_simple_application/doc_generation.rst +++ b/docs/handbook/building_simple_application/doc_generation.rst @@ -25,9 +25,9 @@ As described in the :ref:`Overview of technologies <technology_overview>` chapte Eclipse S-CORE uses the sphinx and sphinx-needs toolchain to generate documentation from rst files. Elements of Eclipse S-CORE metamodel are represented as sphinx-needs objects. -The integration of sphinx, sphinx-needs, and the Eclipse S-CORE-specific extensions is implemented in the repository: +The integration of sphinx, sphinx-needs, and the Eclipse S-CORE-specific extensions is implemented in the repository: -- https://github.com/eclipse-score/docs-as-code/tree/main/docs +- https://github.com/eclipse-score/docs-as-code/tree/main/docs The following `documentation <https://eclipse-score.github.io/docs-as-code/main/how-to/index.html>`_ provides a description of how the documentation can be created and built. Here, we will focus on a simple example. @@ -59,7 +59,7 @@ Sphinx configuration Two files are essential for documentation generation: - `docs/conf.py <https://github.com/eclipse-score/scrample/blob/main/docs/conf.py>`_ provides configuration for the *sphinx-toolchain*. - + .. code-block:: python :linenos: :emphasize-lines: 3 @@ -86,13 +86,13 @@ Two files are essential for documentation generation: ] Notes: - + - project_prefix (e.g., *“SCRAMPLE_”*) is important. Other modules will use this prefix when referencing sphinx-needs elements from your module. - S-CORE extensions (score_*) are automatically provided via *score_docs_as_code*. - `index.rst <https://github.com/eclipse-score/scrample/blob/main/docs/index.rst>`_ - is the main entry point for your documentation. It includes all other .rst files, that should be part of the documentation build. + is the main entry point for your documentation. It includes all other .rst files, that should be part of the documentation build. Building documentation @@ -119,7 +119,7 @@ but will not generate any html files. To do so, run following command loading pickled environment... The configuration has changed (7 options: 'html_permalinks_icon', 'html_static_path', 'needs_layouts', 'needs_types', 'plantuml', ...) done building [mo]: targets for 0 po files that are out of date - writing output... + writing output... building [html]: build_info mismatch, copying .buildinfo to .buildinfo.bak building [html]: targets for 1 source files that are out of date updating environment: [config changed ('skip_rescanning_via_source_code_linker')] 1 added, 0 changed, 0 removed @@ -131,13 +131,13 @@ but will not generate any html files. To do so, run following command pickling environment... done checking consistency... done preparing documents... done - copying assets... - copying static files... + copying assets... + copying static files... Writing evaluated template result to /home/_dev/scrample/_build/_static/basic.css Writing evaluated template result to /home/_dev/scrample/_build/_static/language_data.js Writing evaluated template result to /home/_dev/scrample/_build/_static/documentation_options.js copying static files: done - copying extra files... + copying extra files... copying extra files: done copying assets: done @@ -157,7 +157,7 @@ One option is to use the *live preview* feature. The corresponding bazel target when you import *doc bazel rule* into your BUILD file. .. code-block:: python - + load("@score_docs_as_code//:docs.bzl", "docs") Run the following command: @@ -175,7 +175,7 @@ Run the following command: The HTML pages are in ../../../../../../../../../../../_dev/playground_2/scrample/_build. [sphinx-autobuild] Serving on http://127.0.0.1:8000 [sphinx-autobuild] Waiting to detect changes... - + As you can see, a local server is started on following port and address: http://127.0.0.1:8000 . Open it in your web browser and you should be able to view the current version of the documentation. @@ -184,12 +184,11 @@ Open it in your web browser and you should be able to view the current version o :alt: Architecture overview :align: center -The live preview: +The live preview: - rebuilds automatically -- updates on every file change +- updates on every file change - stays active until you stop the bazel process (Ctrl+C). Now you can replace the placeholder content in index.rst with meaningful text, as shown in the following `commit <https://github.com/eclipse-score/scrample/commit/5179175823ecda51775e459ad73d7230cd4c880a>`_. - diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index 5573b786586..b44556e5765 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -14,7 +14,7 @@ .. document:: Project Management Plan :id: doc__project_mgt_plan - :status: draft + :status: valid :safety: ASIL_B :security: YES :realizes: wp__project_mgt @@ -51,7 +51,6 @@ Project Management Goals and Definition of Done - :ref:`Features <features>` are described. * Project Plan is planned and followed: - Roadmap with :ref:`Milestones <pmp_pm_milestone>` and :ref:`Releases <pmp_pm_release>` are available and up to date. - - S-CORE Handbook (:need:`doc__platform_handbook`) is available and up to date. - :ref:`Features <features>` are described. * Escalation paths are described. * All Reviews are performed according to their definitions, the respective templates are used. @@ -814,7 +813,7 @@ Dependencies are realized with blocked by or blocking relations described in the Milestone ^^^^^^^^^ A milestone is indicating an important dedicated point in the schedule like -a Release or a Quality (ASPICE, ASIL) Assessment. +a Release or a Process Audit, etc. `GitHub Milestones <https://docs.github.com/en/issues/using-labels-and-milestones-to-track-work/about-milestones>`_ offer to connect *Issues* and *Pull Requests* to the `S-CORE-defined Milestones <https://github.com/eclipse-score/score/milestones>`_ .. _pmp_pm_release: From 16afdf1b1b497dee8c6e75a9e35dfd26662a804c Mon Sep 17 00:00:00 2001 From: Andreas Mittag <andreas.mittag@etas.com> Date: Wed, 11 Feb 2026 09:14:54 +0000 Subject: [PATCH 123/128] legend adapted --- ...anagement_organization_orgchart.drawio.svg | 82 +++++++++---------- 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/docs/platform_management_plan/_assets/score_project_management_organization_orgchart.drawio.svg b/docs/platform_management_plan/_assets/score_project_management_organization_orgchart.drawio.svg index 966078c3348..453982fe977 100644 --- a/docs/platform_management_plan/_assets/score_project_management_organization_orgchart.drawio.svg +++ b/docs/platform_management_plan/_assets/score_project_management_organization_orgchart.drawio.svg @@ -1,17 +1,17 @@ -<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="765px" height="923px" viewBox="-0.5 -0.5 765 923" content="<mxfile><diagram id="jAXL_Ft_FI92JxD2iTiC" name="Page-1">7Ztdd5s2GMc/jS/LkXjnMnWcrGfNaVfnbGeXKjzYrIByZBEn+/STjACDqONtYJPEvUjhEQbz//G8CXlmzbOnW0Ye1nc0gnRmouhpZl3PTDMIXPFXGp5Lg+OZpWHFkqg04cawTP4GZUTKWiQRbFoHckpTnjy0jSHNcwh5y0YYo9v2YTFN21d9ICvQDMuQpLr1jyTi69LqO6ix/wLJal1dGSM1kpHqYGXYrElEt3smazGz5oxSXm5lT3NIpXaVLuXnbn4yWn8xBjk/6gNB+YlHkhbq5m6A8IKBMN4DyWbWldj6eLVU35c/VyIwWuQRyPOgmfVxu044LB9IKEe3grqwrXmWij0sNh+B8UQIeJUmq1zYOJUHxEmazmlK2e6MVkTAj0NhXzESJeIO9sY8IC7IC204oz9gbwSh+RzJEUY54QmVpw+aIytAjrDo6ijB5NeDpz2TUusWaAacPYtD1KhToVSPrmWr/W3zIJi+sq33HoLKRtSzt6pP3eARG4pQP6366x6mNf9yd6G1G7Xdc9KyjqN1c3uhVdIykRGYXWBGFaPazAzkjoTNPArbzeLLBVvJyD+nk6GjaP3657cLrTadc9DC/lG0DMO40CrpnLPcwMdFwq+Li28pEucsN7AeCec0y4o84c8KFKMhbDYThiVxnQrWBwcb2G3xsk3PcGwNme35OjKMnP/PTA+HSw7AknxVE/tLNrAyy93snC5ci/8+A4lk5ZiwUDCcMk40XrHYdjVf9zTP7fE0bA5RdGjYGlB3JBftfyZvrAvmBRQNN6wjiOPYDH+CII6jwHX7EETud9dxhxG8E9twVX/vKY77FLcHEFzvpJYQFkxGtoOKtyV9Qf9hFe/GsAEIdOrseiriFARsjcBvBUnfGQBsdfK7eUICju4DJIZ3pX+30Tyl/FiPQZ3y6o6wH8Bl7hZXyncJujwgLHWYcp4+ouyyB5pAFe2dY7XLLts0bP+4ssvzBkCpB7MGpYk+5RyEgCUzRfIbpEA20661dgxHYWZ1cr/j6FNytTO2qi13CM/TI9/iiQPLSfovfOwtxD/XO2cAdDUMtVdMNAUN8ej7yAicluqurT/946nuvZR2rlgoNQ3LeZmpx6fTtPbYEY18J8fortKbYAaZlD6UYHbQPuUxI+LeizeBbaA0g327E96wxqx2qsGZ6Vlmvib56oXo9rp7+u4sykmbelNPKEsa8y3ZzS//DiyJJ5jWx8kpTnDCnNI37dgIfw2PkNKHqeXyEcqpD/iM5ZSpr7zp5Ih72JTd5CU5SL1QOzk4PTO+JhopOVj6wpuvjH5PIdv1hhuaFr1x6nVnB9s8Y3awTE3ye0rTyfYaI8SneqKiqmG9wED7/06Jo2/6K4+TVQnkXfDo5ouTTsBbek/RvIx/PznbOmfOtvQe4ZqGxVvuEFx0zhyg10hycvaomb/XLntbdUfvhMd71dezkIRRuW4ExUUeSrX39efPB0LOf6hQsySK5InGK1JHXMDafbXh90w74cAzbG8kdnqhWq8oKYklXOxPndiIy0Y0RF5PIzEqIr2w/QwrkK+ZOlDELXFNoZzmXamVaT+N05yrn83goNpXJz5IkChDCDLODiR5O5Z5fS7R17gNIrZetrZqpXIZ46S9QV/AeELnCPpK3DGdQ69y61WL6IoBOcDqNU4FdnwjcMerZsVu87uy3djej/OsxT8=</diagram></mxfile>"> +<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="765px" height="923px" viewBox="-0.5 -0.5 765 923" content="<mxfile><diagram id="jAXL_Ft_FI92JxD2iTiC" name="Page-1">7Ztbc5s4FMc/jR/LIO48po6d7WwzzdaZ3dlHFQ42W0AZWcTJfvqVjLiKOt4WbJI4LzFHmMv/x7kJeWbO06cbih82tySEZGbo4dPMvJ4ZBnINh/8TlufC4ptGYVjTOJQ71YZV/C9Ioy6teRzCtrUjIyRh8UPbGJAsg4C1bJhSsmvvFpGkfdYHvAbFsApwolr/ikO2Kayerdf23yBeb8ozI12OpLjcWRq2GxySXcNkLmbmnBLCik/p0xwSIV6pS/G95Q9GqwujkLGjvuAX33jESS5vbgmY5RS48R5wOjOv+KePVyt5vey5FIGSPAtBHEefmR93m5jB6gEHYnTHsXPbhqUJ30L84yNQFnMBr5J4nXEbI2KHKE6SOUkI3R/RDDF4UcDta4rDmN9BY8wF7IA40ZZR8h0aI7o+n+tihBKGWUzE4f16zxKQzS2qOlIwcXnw1DBJtW6ApMDoM99FjtolSvnompbc3tUPguFJ26bxEJQ2LJ+9dXXoGg//IAn106ou9zCt+ZfbC639qOWck5Z5HK3lzYVWQcvQNd/oAtPKGNVmpunOSNiMo7AtF18u2ApG3jmdTD+K1u9/f73QatM5By3kHUVL07QLrYLOOcsNdFwkvFtcfEuSOGe5gdRIOCdpmmcxe5agKAlgu50wLIHrVLA+2EhDTouXZbiabSnILNdTkSHd/nVmajhcMQAaZ+uK2D+igRVZbrl3umDD/30GHIrKMaYBZzhlnPp4xWLb1TzV01ynx9OQMUTRoWCrQd3ijLf/qbixLpgXUNTckIogiiIj+AGCKAp9x+lDEDrfHNsZRvBObENl/d1QHPUpbg0guNpJrSDIqYhsBxVvS/qC/sMq3o1hAxDo1NnVVMQpCFgKgT9ynLwzAMjs5HfjhARs1QdwBO9K/26jeUr5kRqDOuXVLabfgYnczc+U7RN0sUNQ6DDlPH1E2WUNNIHK2zvbbJddlqFZ3nFll+sOgFINZjVKQ/+UMeACFswkya+QAN5Ou9baMxyFmdnJ/batTslVztiqtpwhPE+NfIsnBjTDyf/wsbcQ/xz3nAHQUTBUXjHRFDTEo+/pmm+3VHcs9ekfT3X3pbRzRQOhaVDMy0w9Pp2mtUc2b+Q7OUZ1ld4EM8ik9KEEs4f2KYso5veevwlsA6UZ5Fmd8IYUZpVTDc5MzTLzDc7WL0S3193Td2dRTtrUG2pCWZGI7fB+fvlPoHE0wbQ+Tk6x/RPmlL5px1r4a3iEhDxMLZePUE59QGcspwx15U0nR9zDtugmL8lB6KW3k4PdM+Nr6CMlB1NdeHNHybcE0n1vuCVJ3hunXnd2sIwzZodySWBD8ntCksn2GiPEp2qioqxhXV/Tm3+nxNE3/ZVF8boA8i54dPPFSSfgTbWnqF/Gv5+cbZ4zZ5tqj3BNgvwtdwiOfs4coNZIYnL2qJm/1y57W3Vb7YTHe9XXs5CEErFuRI/yLBBqN/VnzwdCzk9UqGkchuJA4xWpIy5g7b7a8HqmnZDvapY7Eju1UK1WlBTEYsa3p05sxGUjCiK3p5EYFZFa2H6GNYjXTB0o/JaYolBGsq7U0tRM4yRj8mczyC+35YEPEsTSEICIswNJ3o5lbp9L9DVug4itlq2tWqlYxjhpb1AXMJ7QOfy+EndM51Cr3Lvbu5l4ywH40MrF1zgP2HEM3xmvlOWb9Y/K9mONn+aZi/8A</diagram></mxfile>"> <defs> - <linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"> + <linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"> <stop offset="0%" stop-color="#dae8fc" stop-opacity="1" style="stop-color: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stop-opacity: 1;"/> <stop offset="100%" stop-color="#7ea6e0" stop-opacity="1" style="stop-color: light-dark(rgb(126, 166, 224), rgb(67, 102, 151)); stop-opacity: 1;"/> </linearGradient> - <linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"> + <linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"> <stop offset="0%" stop-color="#fff2cc" stop-opacity="1" style="stop-color: light-dark(rgb(255, 242, 204), rgb(40, 29, 0)); stop-opacity: 1;"/> <stop offset="100%" stop-color="#ffd966" stop-opacity="1" style="stop-color: light-dark(rgb(255, 217, 102), rgb(84, 51, 0)); stop-opacity: 1;"/> </linearGradient> </defs> <g> <g> - <rect x="462" y="262" width="280" height="80" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,602,302)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> + <rect x="462" y="262" width="280" height="80" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,602,302)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 635 302)"> @@ -32,7 +32,7 @@ </g> </g> <g> - <rect x="422" y="262" width="280" height="80" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,562,302)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> + <rect x="422" y="262" width="280" height="80" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,562,302)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 595 302)"> @@ -53,10 +53,10 @@ </g> </g> <g> - <rect x="382.92" y="262.19" width="280.06" height="80" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,522.95,302.19)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> + <rect x="382.92" y="262.19" width="280.06" height="80" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,522.95,302.19)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> </g> <g> - <g transform="translate(-0.5 -0.5)rotate(90 555.95 302.19000000000005)"> + <g transform="translate(-0.5 -0.5)rotate(90 555.9500000000003 302.19000000000005)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 278px; height: 1px; padding-top: 302px; margin-left: 417px;"> @@ -74,7 +74,7 @@ </g> </g> <g> - <rect x="342" y="262" width="280" height="80" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,482,302)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> + <rect x="342" y="262" width="280" height="80" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,482,302)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 515 302)"> @@ -95,7 +95,7 @@ </g> </g> <g> - <rect x="302" y="262" width="280" height="80" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,442,302)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> + <rect x="302" y="262" width="280" height="80" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,442,302)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 475 302)"> @@ -116,7 +116,7 @@ </g> </g> <g> - <rect x="262" y="262" width="280" height="80" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,402,302)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> + <rect x="262" y="262" width="280" height="80" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,402,302)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 435 302)"> @@ -137,7 +137,7 @@ </g> </g> <g> - <rect x="222" y="262" width="280" height="80" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,362,302)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> + <rect x="222" y="262" width="280" height="80" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,362,302)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 395 302)"> @@ -158,10 +158,10 @@ </g> </g> <g> - <rect x="-89.16" y="349.54" width="478" height="105" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="5" transform="rotate(90,149.84,402.04)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> + <rect x="-89.16" y="349.54" width="478" height="105" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="5" transform="rotate(90,149.84,402.04)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> </g> <g> - <g transform="translate(-0.5 -0.5)rotate(90 195.34000000000015 402.03999999999996)"> + <g transform="translate(-0.5 -0.5)rotate(90 195.33999999999992 402.03999999999996)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 476px; height: 1px; padding-top: 402px; margin-left: -43px;"> @@ -179,7 +179,7 @@ </g> </g> <g> - <rect x="2" y="2" width="760" height="120" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#000000" stroke-width="5" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> + <rect x="2" y="2" width="760" height="120" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#000000" stroke-width="5" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -200,7 +200,7 @@ </g> </g> <g> - <rect x="22" y="28" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="22" y="28" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -221,7 +221,7 @@ </g> </g> <g> - <rect x="42" y="422" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,122,442)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="42" y="422" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,122,442)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 122 442)"> @@ -242,7 +242,7 @@ </g> </g> <g> - <rect x="92" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,172,262)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="92" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,172,262)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 172 262)"> @@ -263,7 +263,7 @@ </g> </g> <g> - <rect x="42" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,122,262)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="42" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,122,262)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 122 262)"> @@ -284,10 +284,10 @@ </g> </g> <g> - <rect x="482.53" y="364.48" width="478" height="77" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="4" transform="rotate(90,721.53,402.98)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> + <rect x="482.53" y="364.48" width="478" height="77" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="4" transform="rotate(90,721.53,402.98)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> </g> <g> - <g transform="translate(-0.5 -0.5)rotate(90 753.03 402.98)"> + <g transform="translate(-0.5 -0.5)rotate(90 753.0299999999997 402.98)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 476px; height: 1px; padding-top: 403px; margin-left: 515px;"> @@ -305,7 +305,7 @@ </g> </g> <g> - <rect x="322" y="481" width="320" height="160" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="4" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> + <rect x="322" y="481" width="320" height="160" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="4" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -326,7 +326,7 @@ </g> </g> <g> - <rect x="632" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,712,262)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="632" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,712,262)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 712 262)"> @@ -347,7 +347,7 @@ </g> </g> <g> - <rect x="342.95" y="571" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="342.95" y="571" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -368,7 +368,7 @@ </g> </g> <g> - <rect x="-195.5" y="362" width="478" height="80" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="5" transform="rotate(90,43.5,402)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> + <rect x="-195.5" y="362" width="478" height="80" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="5" transform="rotate(90,43.5,402)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 76.5 402)"> @@ -389,7 +389,7 @@ </g> </g> <g> - <rect x="146" y="243" width="240" height="80" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="4" transform="rotate(90,266,283)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> + <rect x="146" y="243" width="240" height="80" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="4" transform="rotate(90,266,283)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 299 283)"> @@ -410,7 +410,7 @@ </g> </g> <g> - <rect x="202" y="28" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="202" y="28" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -431,7 +431,7 @@ </g> </g> <g> - <rect x="342.95" y="521" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="342.95" y="521" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -452,7 +452,7 @@ </g> </g> <g> - <rect x="-48" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,32,262)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="-48" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,32,262)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 32 262)"> @@ -473,7 +473,7 @@ </g> </g> <g> - <rect x="166" y="502" width="200" height="80" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="4" transform="rotate(90,266,542)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> + <rect x="166" y="502" width="200" height="80" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="4" transform="rotate(90,266,542)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 299 542)"> @@ -494,7 +494,7 @@ </g> </g> <g> - <rect x="382" y="28" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="382" y="28" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -515,7 +515,7 @@ </g> </g> <g> - <rect x="176" y="401" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,256,421)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="176" y="401" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,256,421)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 256 421)"> @@ -536,7 +536,7 @@ </g> </g> <g> - <rect x="-48" y="422" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,32,442)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="-48" y="422" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,32,442)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 32 442)"> @@ -557,7 +557,7 @@ </g> </g> <g> - <rect x="272" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,352,262)" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="272" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,352,262)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 352 262)"> @@ -578,7 +578,7 @@ </g> </g> <g> - <rect x="562" y="28" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="562" y="28" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -599,7 +599,7 @@ </g> </g> <g> - <rect x="22" y="73" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="22" y="73" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -620,7 +620,7 @@ </g> </g> <g> - <rect x="4.53" y="762" width="197.47" height="40" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="5" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> + <rect x="4.53" y="762" width="197.47" height="40" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="5" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -641,7 +641,7 @@ </g> </g> <g> - <rect x="4.53" y="702" width="197.47" height="40" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#000000" stroke-width="5" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> + <rect x="4.53" y="702" width="197.47" height="40" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#000000" stroke-width="5" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -683,7 +683,7 @@ </g> </g> <g> - <rect x="4.53" y="822" width="197.47" height="40" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> + <rect x="4.53" y="822" width="197.47" height="40" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -704,7 +704,7 @@ </g> </g> <g> - <rect x="2" y="882" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-jeKyF3VRbhdy49ruTdGI-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="2" y="882" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -713,13 +713,13 @@ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 902px; margin-left: 3px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Process Area + PMP Areas </div> </div> </div> </foreignObject> <text x="82" y="906" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Process Area + PMP Areas </text> </switch> </g> From 38df9f185b2681c261d4d6cbb2d541fb30bb3c13 Mon Sep 17 00:00:00 2001 From: Andreas Mittag <andreas.mittag@etas.com> Date: Sun, 15 Feb 2026 11:22:43 +0000 Subject: [PATCH 124/128] + Plan Responsibilities sharpend --- ...anagement_organization_orgchart.drawio.svg | 189 ++++++++---------- 1 file changed, 84 insertions(+), 105 deletions(-) diff --git a/docs/platform_management_plan/_assets/score_project_management_organization_orgchart.drawio.svg b/docs/platform_management_plan/_assets/score_project_management_organization_orgchart.drawio.svg index 453982fe977..d28f0627a4b 100644 --- a/docs/platform_management_plan/_assets/score_project_management_organization_orgchart.drawio.svg +++ b/docs/platform_management_plan/_assets/score_project_management_organization_orgchart.drawio.svg @@ -1,17 +1,17 @@ -<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="765px" height="923px" viewBox="-0.5 -0.5 765 923" content="<mxfile><diagram id="jAXL_Ft_FI92JxD2iTiC" name="Page-1">7Ztbc5s4FMc/jR/LIO48po6d7WwzzdaZ3dlHFQ42W0AZWcTJfvqVjLiKOt4WbJI4LzFHmMv/x7kJeWbO06cbih82tySEZGbo4dPMvJ4ZBnINh/8TlufC4ptGYVjTOJQ71YZV/C9Ioy6teRzCtrUjIyRh8UPbGJAsg4C1bJhSsmvvFpGkfdYHvAbFsApwolr/ikO2Kayerdf23yBeb8ozI12OpLjcWRq2GxySXcNkLmbmnBLCik/p0xwSIV6pS/G95Q9GqwujkLGjvuAX33jESS5vbgmY5RS48R5wOjOv+KePVyt5vey5FIGSPAtBHEefmR93m5jB6gEHYnTHsXPbhqUJ30L84yNQFnMBr5J4nXEbI2KHKE6SOUkI3R/RDDF4UcDta4rDmN9BY8wF7IA40ZZR8h0aI7o+n+tihBKGWUzE4f16zxKQzS2qOlIwcXnw1DBJtW6ApMDoM99FjtolSvnompbc3tUPguFJ26bxEJQ2LJ+9dXXoGg//IAn106ou9zCt+ZfbC639qOWck5Z5HK3lzYVWQcvQNd/oAtPKGNVmpunOSNiMo7AtF18u2ApG3jmdTD+K1u9/f73QatM5By3kHUVL07QLrYLOOcsNdFwkvFtcfEuSOGe5gdRIOCdpmmcxe5agKAlgu50wLIHrVLA+2EhDTouXZbiabSnILNdTkSHd/nVmajhcMQAaZ+uK2D+igRVZbrl3umDD/30GHIrKMaYBZzhlnPp4xWLb1TzV01ynx9OQMUTRoWCrQd3ijLf/qbixLpgXUNTckIogiiIj+AGCKAp9x+lDEDrfHNsZRvBObENl/d1QHPUpbg0guNpJrSDIqYhsBxVvS/qC/sMq3o1hAxDo1NnVVMQpCFgKgT9ynLwzAMjs5HfjhARs1QdwBO9K/26jeUr5kRqDOuXVLabfgYnczc+U7RN0sUNQ6DDlPH1E2WUNNIHK2zvbbJddlqFZ3nFll+sOgFINZjVKQ/+UMeACFswkya+QAN5Ou9baMxyFmdnJ/batTslVztiqtpwhPE+NfIsnBjTDyf/wsbcQ/xz3nAHQUTBUXjHRFDTEo+/pmm+3VHcs9ekfT3X3pbRzRQOhaVDMy0w9Pp2mtUc2b+Q7OUZ1ld4EM8ik9KEEs4f2KYso5veevwlsA6UZ5Fmd8IYUZpVTDc5MzTLzDc7WL0S3193Td2dRTtrUG2pCWZGI7fB+fvlPoHE0wbQ+Tk6x/RPmlL5px1r4a3iEhDxMLZePUE59QGcspwx15U0nR9zDtugmL8lB6KW3k4PdM+Nr6CMlB1NdeHNHybcE0n1vuCVJ3hunXnd2sIwzZodySWBD8ntCksn2GiPEp2qioqxhXV/Tm3+nxNE3/ZVF8boA8i54dPPFSSfgTbWnqF/Gv5+cbZ4zZ5tqj3BNgvwtdwiOfs4coNZIYnL2qJm/1y57W3Vb7YTHe9XXs5CEErFuRI/yLBBqN/VnzwdCzk9UqGkchuJA4xWpIy5g7b7a8HqmnZDvapY7Eju1UK1WlBTEYsa3p05sxGUjCiK3p5EYFZFa2H6GNYjXTB0o/JaYolBGsq7U0tRM4yRj8mczyC+35YEPEsTSEICIswNJ3o5lbp9L9DVug4itlq2tWqlYxjhpb1AXMJ7QOfy+EndM51Cr3Lvbu5l4ywH40MrF1zgP2HEM3xmvlOWb9Y/K9mONn+aZi/8A</diagram></mxfile>"> +<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="765px" height="923px" viewBox="-0.5 -0.5 765 923" content="<mxfile><diagram id="jAXL_Ft_FI92JxD2iTiC" name="Page-1">7Zvfc5s4EMf/Gj+WQfzmMXXstHPNtFdn7uYeFRCYFpBHFrFzf/1JIGxA1GbmBHYT5yVmBdjsx7v73QXPzHm2fyBws37EIUpnhh7uZ+b9zDCA7jnsH7e8VhbHF4aYJKHY6WhYJf+i+khhLZIQbVs7UoxTmmzaxgDnOQpoywYJwbv2bhFO2++6gTGSDKsAprL17ySk68rq2frR/gkl8bp+Z6CLlQzWOwvDdg1DvGuYzMXMnBOMafUq289Ryp1X+6U6bvmL1cMHIyingw7wqyNeYFqIi1siSAuCmPEJwWxm3rFXH+9W4vPS19oJBBd5iPh59Jn5cbdOKFptYMBXdww7s61plrItwF6+IEIT5sC7NIlzZqOY7xAlaTrHKSblGc0QIi8KmD0mMEzYFTTWXAQdxN9oSwn+iRoruj6f63yFYAppgvnp/eOeNSCbWWTvCIfxj4f2DZPw1gPCGaLkle0iVu0apfjqmpbY3h2/CIYnbOvGl6C2QfHdiw+nPuJhLwShflqHj3ua1vzr441WuWo5l6RlDqO1fLjRqmgZuuYbXWBanaPazDTdGQmbMQjbcvH1hq1i5F0yyPRBtP745/uNVpvOJWgBbxAtTdNutCo6l5QbYFgm/La4xZYgcUm5AeRMOMdZVuQJfRWgCA7QdnvFsDiuqWB9sIEGnBYvy3A125KQWa4nIwO6/f+ZyelwRREiSR4fiP3gDSyvcssy6II1+/cFwZArx4QEjOE149THE4vtUPPkSHOdnkgDhgrRIWE7gnqEOWv/M35hjF8Kc4nPGSJHfEAmEUWREfyCRBSFvuP0kQidZ8d21Pi9k+JALcMbjgd9jrcU+F1uqFYoKAhPcEMc3/bsGQxqHd/NaApAdFT3YTAxBQhLAvFnAVOZw5sGAMxOtTcmJGDLoQAj9K783207p3Q/kFNRR2w9QvITUV7J2TvlZbmudggqP1xz1R4gwixF41TW7NlmW4RZhmZ5w0SY6ypAKSezI0pD/5xTxBxYMRMkv6MUwe11K6+S4SjMzI4EsG15QHcIxpb2clREnpz5FnuKSA5TOcbG0AHIKdOgnOpc/7m31VQhutzzjSXoayxVqN26SWp4/BAAV1ptFLi822AAG0xYXtxz5eWOBNyhQTWNufY8NE1DD2zWvndqiRwnvYVEySj6VCEpoX3OIwLZtRdvApuicgI8q6Pj5EA7BJVyZnI1ma9hHndT21vs5KUMN2Ur3zf6whHdwXK4fI9eUIo376eZ/wAu2MwY8kMgncT1hLZVK3PLWKWoamcsu2f4aOgjZSxTfgbkG8HPKcrKxmSL0+KU9v29U5ZlXDBlmfLY9wnjdFCleFvZ6tAz1zLL9TW9+Tcllb5JTB4lccXlPWHpFpFJR8KmrKTucVC8Ax3l6JdMSnLt5hOr/nGIUrefnYMocG1nxAv6xh59rYGKsUd93mZiIZjfPtejIg+4R5s+pq9q1VGWhCE/0XgCacTn+LozXa8PnO9qljtOVFiySDrcWK+IJZRtXzuxEe+eS4jcHhE7KiJZTX1BMeLz9Q4UdklU8lCO866rhalZsXFOxa8HgF9vixOfJAiFIUA8lypyeTuXuX0h0dc0KHG2LJLaLXb5NNdVR4P8HNeEweH3Kakxg0MeJZ58woQ3fhucb5PnJD1diX7HUXwncnxnQllryDc/GnOqv1hJiUa923Rp33clmOPKz8epcj7bPP7yqVxr/H7MXPwH</diagram></mxfile>"> <defs> - <linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"> + <linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"> <stop offset="0%" stop-color="#dae8fc" stop-opacity="1" style="stop-color: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stop-opacity: 1;"/> <stop offset="100%" stop-color="#7ea6e0" stop-opacity="1" style="stop-color: light-dark(rgb(126, 166, 224), rgb(67, 102, 151)); stop-opacity: 1;"/> </linearGradient> - <linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"> + <linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"> <stop offset="0%" stop-color="#fff2cc" stop-opacity="1" style="stop-color: light-dark(rgb(255, 242, 204), rgb(40, 29, 0)); stop-opacity: 1;"/> <stop offset="100%" stop-color="#ffd966" stop-opacity="1" style="stop-color: light-dark(rgb(255, 217, 102), rgb(84, 51, 0)); stop-opacity: 1;"/> </linearGradient> </defs> <g> <g> - <rect x="462" y="262" width="280" height="80" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,602,302)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> + <rect x="462" y="262" width="280" height="80" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,602,302)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 635 302)"> @@ -32,7 +32,7 @@ </g> </g> <g> - <rect x="422" y="262" width="280" height="80" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,562,302)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> + <rect x="422" y="262" width="280" height="80" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,562,302)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 595 302)"> @@ -53,10 +53,10 @@ </g> </g> <g> - <rect x="382.92" y="262.19" width="280.06" height="80" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,522.95,302.19)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> + <rect x="382.92" y="262.19" width="280.06" height="80" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,522.95,302.19)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> </g> <g> - <g transform="translate(-0.5 -0.5)rotate(90 555.9500000000003 302.19000000000005)"> + <g transform="translate(-0.5 -0.5)rotate(90 555.95 302.19000000000005)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 278px; height: 1px; padding-top: 302px; margin-left: 417px;"> @@ -74,7 +74,7 @@ </g> </g> <g> - <rect x="342" y="262" width="280" height="80" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,482,302)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> + <rect x="342" y="262" width="280" height="80" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,482,302)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 515 302)"> @@ -95,7 +95,7 @@ </g> </g> <g> - <rect x="302" y="262" width="280" height="80" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,442,302)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> + <rect x="302" y="262" width="280" height="80" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,442,302)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 475 302)"> @@ -116,7 +116,7 @@ </g> </g> <g> - <rect x="262" y="262" width="280" height="80" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,402,302)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> + <rect x="262" y="262" width="280" height="80" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,402,302)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 435 302)"> @@ -137,7 +137,7 @@ </g> </g> <g> - <rect x="222" y="262" width="280" height="80" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,362,302)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> + <rect x="222" y="262" width="280" height="80" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,362,302)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 395 302)"> @@ -158,7 +158,7 @@ </g> </g> <g> - <rect x="-89.16" y="349.54" width="478" height="105" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="5" transform="rotate(90,149.84,402.04)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> + <rect x="-89.16" y="349.54" width="478" height="105" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="5" transform="rotate(90,149.84,402.04)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 195.33999999999992 402.03999999999996)"> @@ -179,7 +179,7 @@ </g> </g> <g> - <rect x="2" y="2" width="760" height="120" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#000000" stroke-width="5" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> + <rect x="2" y="2" width="760" height="120" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#000000" stroke-width="5" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -200,7 +200,7 @@ </g> </g> <g> - <rect x="22" y="28" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="22" y="28" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -209,19 +209,19 @@ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 48px; margin-left: 23px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Project Management + Project Management Plan </div> </div> </div> </foreignObject> <text x="102" y="52" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Project Management + Project Management Plan </text> </switch> </g> </g> <g> - <rect x="42" y="422" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,122,442)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="42" y="422" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,122,442)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 122 442)"> @@ -230,19 +230,19 @@ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 442px; margin-left: 43px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Security Management + Security Management Plan </div> </div> </div> </foreignObject> <text x="122" y="446" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Security Management + Security Management Plan </text> </switch> </g> </g> <g> - <rect x="92" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,172,262)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="92" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,172,262)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 172 262)"> @@ -263,7 +263,7 @@ </g> </g> <g> - <rect x="42" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,122,262)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="42" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,122,262)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 122 262)"> @@ -284,10 +284,10 @@ </g> </g> <g> - <rect x="482.53" y="364.48" width="478" height="77" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="4" transform="rotate(90,721.53,402.98)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> + <rect x="482.53" y="364.48" width="478" height="77" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="4" transform="rotate(90,721.53,402.98)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> </g> <g> - <g transform="translate(-0.5 -0.5)rotate(90 753.0299999999997 402.98)"> + <g transform="translate(-0.5 -0.5)rotate(90 753.03 402.98)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 476px; height: 1px; padding-top: 403px; margin-left: 515px;"> @@ -305,7 +305,7 @@ </g> </g> <g> - <rect x="322" y="481" width="320" height="160" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="4" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> + <rect x="322" y="481" width="320" height="160" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="4" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -326,34 +326,34 @@ </g> </g> <g> - <rect x="632" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,712,262)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="632" y="262" width="180" height="20" rx="3" ry="3" fill="#ffe6cc" stroke="#d79b00" transform="rotate(90,722,272)" pointer-events="all" style="fill: light-dark(rgb(255, 230, 204), rgb(54, 33, 10)); stroke: light-dark(rgb(215, 155, 0), rgb(153, 101, 0));"/> </g> <g> - <g transform="translate(-0.5 -0.5)rotate(90 712 262)"> + <g transform="translate(-0.5 -0.5)rotate(90 722 272)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 262px; margin-left: 633px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 178px; height: 1px; padding-top: 272px; margin-left: 633px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - External Communication + External Communication Plan </div> </div> </div> </foreignObject> - <text x="712" y="266" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - External Communication + <text x="722" y="276" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + External Communication Plan </text> </switch> </g> </g> <g> - <rect x="342.95" y="571" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="202" y="73" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 591px; margin-left: 344px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 93px; margin-left: 203px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> Release Management @@ -361,14 +361,14 @@ </div> </div> </foreignObject> - <text x="423" y="595" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + <text x="282" y="97" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> Release Management </text> </switch> </g> </g> <g> - <rect x="-195.5" y="362" width="478" height="80" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="5" transform="rotate(90,43.5,402)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> + <rect x="-195.5" y="362" width="478" height="80" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="5" transform="rotate(90,43.5,402)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 76.5 402)"> @@ -389,7 +389,7 @@ </g> </g> <g> - <rect x="146" y="243" width="240" height="80" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="4" transform="rotate(90,266,283)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> + <rect x="146" y="243" width="240" height="80" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="4" transform="rotate(90,266,283)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 299 283)"> @@ -410,7 +410,7 @@ </g> </g> <g> - <rect x="202" y="28" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="202" y="28" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -419,40 +419,19 @@ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 48px; margin-left: 203px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Change Management + Change Management Plan </div> </div> </div> </foreignObject> <text x="282" y="52" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Change Management + Change Management Plan </text> </switch> </g> </g> <g> - <rect x="342.95" y="521" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 541px; margin-left: 344px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Software Verification - </div> - </div> - </div> - </foreignObject> - <text x="423" y="545" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Software Verification - </text> - </switch> - </g> - </g> - <g> - <rect x="-48" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,32,262)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="-48" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,32,262)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 32 262)"> @@ -461,19 +440,19 @@ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 262px; margin-left: -47px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Software Development + Software Development Plan </div> </div> </div> </foreignObject> <text x="32" y="266" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Software Development + Software Development Plan </text> </switch> </g> </g> <g> - <rect x="166" y="502" width="200" height="80" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="4" transform="rotate(90,266,542)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> + <rect x="166" y="502" width="200" height="80" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="4" transform="rotate(90,266,542)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 299 542)"> @@ -494,7 +473,7 @@ </g> </g> <g> - <rect x="382" y="28" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="382" y="28" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -503,19 +482,19 @@ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 48px; margin-left: 383px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Problem Resolution + Problem Resolution Plan </div> </div> </div> </foreignObject> <text x="462" y="52" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Problem Resolution + Problem Resolution Plan </text> </switch> </g> </g> <g> - <rect x="176" y="401" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,256,421)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="176" y="401" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,256,421)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 256 421)"> @@ -524,19 +503,19 @@ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 421px; margin-left: 177px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Tool Management + Tool Management Plan </div> </div> </div> </foreignObject> <text x="256" y="425" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Tool Management + Tool Management Plan </text> </switch> </g> </g> <g> - <rect x="-48" y="422" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,32,442)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="-48" y="422" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,32,442)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 32 442)"> @@ -545,40 +524,19 @@ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 442px; margin-left: -47px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Config Mangement + Config Mangement Plan </div> </div> </div> </foreignObject> <text x="32" y="446" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Config Mangement + Config Mangement Plan </text> </switch> </g> </g> <g> - <rect x="272" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,352,262)" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)rotate(90 352 262)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 262px; margin-left: 273px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Feature Development - </div> - </div> - </div> - </foreignObject> - <text x="352" y="266" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Feature Development - </text> - </switch> - </g> - </g> - <g> - <rect x="562" y="28" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="562" y="28" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -587,25 +545,25 @@ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 48px; margin-left: 563px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Docu Management + Docu Management Plan </div> </div> </div> </foreignObject> <text x="642" y="52" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Docu Management + Docu Management Plan </text> </switch> </g> </g> <g> - <rect x="22" y="73" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="42" y="62" width="140" height="20" rx="3" ry="3" fill="#ffe6cc" stroke="#d79b00" pointer-events="all" style="fill: light-dark(rgb(255, 230, 204), rgb(54, 33, 10)); stroke: light-dark(rgb(215, 155, 0), rgb(153, 101, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 93px; margin-left: 23px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 138px; height: 1px; padding-top: 72px; margin-left: 43px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> Internal Communication @@ -613,14 +571,14 @@ </div> </div> </foreignObject> - <text x="102" y="97" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + <text x="112" y="76" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> Internal Communication </text> </switch> </g> </g> <g> - <rect x="4.53" y="762" width="197.47" height="40" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="5" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> + <rect x="4.53" y="762" width="197.47" height="40" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="5" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -641,7 +599,7 @@ </g> </g> <g> - <rect x="4.53" y="702" width="197.47" height="40" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#000000" stroke-width="5" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> + <rect x="4.53" y="702" width="197.47" height="40" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#000000" stroke-width="5" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -683,7 +641,7 @@ </g> </g> <g> - <rect x="4.53" y="822" width="197.47" height="40" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> + <rect x="4.53" y="822" width="197.47" height="40" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -704,7 +662,7 @@ </g> </g> <g> - <rect x="2" y="882" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-hhRvKH9praNjDP3ARvc0-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="2" y="882" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -713,13 +671,34 @@ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 902px; margin-left: 3px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - PMP Areas + Project Management Plan Responsibility </div> </div> </div> </foreignObject> <text x="82" y="906" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - PMP Areas + Project Management Plan Re... + </text> + </switch> + </g> + </g> + <g> + <rect x="242" y="596" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + </g> + <g> + <g transform="translate(-0.5 -0.5)"> + <switch> + <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 616px; margin-left: 243px;"> + <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> + <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> + Software Verification Plan + </div> + </div> + </div> + </foreignObject> + <text x="322" y="620" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + Software Verification Plan </text> </switch> </g> From 14c1c7cc7ffffb1e11157c73bb480a55cdd33ce9 Mon Sep 17 00:00:00 2001 From: Andreas Mittag <andreas.mittag@etas.com> Date: Sun, 15 Feb 2026 12:35:11 +0000 Subject: [PATCH 125/128] minor adaptations in issue types chapter --- ..._project_management_issue_types.drawio.svg | 86 +++---------------- .../project_management.rst | 7 ++ 2 files changed, 17 insertions(+), 76 deletions(-) diff --git a/docs/platform_management_plan/_assets/score_project_management_issue_types.drawio.svg b/docs/platform_management_plan/_assets/score_project_management_issue_types.drawio.svg index cc3673e8d8b..a23c857c4ac 100644 --- a/docs/platform_management_plan/_assets/score_project_management_issue_types.drawio.svg +++ b/docs/platform_management_plan/_assets/score_project_management_issue_types.drawio.svg @@ -1,4 +1,4 @@ -<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="701px" height="391px" viewBox="-0.5 -0.5 701 391" content="<mxfile><diagram id="W5UFwr1Gk-ed2l-zxu-w" name="Page-1">3Zpdk+IoFIZ/jbdTBEKil632zG7VbFVX91btziWToKGGBJeQVufXbzDEfIDdaTu2ZXtjOECEh5cDHJygRbr7Jskm+UvElE8giHcTtJxA6IFpUH5py76y4BBWhrVksSnUGJ7Yb1rXNNaCxTTvFFRCcMU2XWMksoxGqmMjUoptt9hK8O6vbsiaWoaniHDb+g+LVVJZpxg09j8oWyf1L3vA5KSkLmwMeUJisW2Z0P0ELaQQqnpKdwvKNbyaS1Xv64ncY8MkzdSQCnWTnwkvTOf+piQtLY90I3KmhNyblqp93X0piiym+g1ggubbhCn6tCGRzt2WA17aEpXyMuWVj4SzdVY+y4rH3G6hafQzlYruWibT4m9UpFTpZgCTW8Mz6vGmJr1txiKsiSftcQiMkZjxXx9f3SAqHwwlNzF/ahF71MN1S8TgUGB4BGAesnDQuJxOJpmJjHb7T3dM/atRfcEm9aOVs9wZiofEvk5kZatalXTyRzuvqXZI1fVOss1FISPTXOOcFJFrakqZPumOvMhfUk4Ue+76jffQhJb6HqSIi0gL8M8skjTVPTmtP+91/a0Y5wvBhTzURStAECDaLjLVsoPDp7TnSopftJUzX4ZVzijK7U12h3aPtrZ2/RGkiyzY9xsWjUo3DAIwddBdHT4uuj6CSxxehu4x/RF0veDWHYNvOwYPX8szYHslJ/mvUcVKUTQ9TOzhrgDM8KVcAXSs+xcT6/StWj3qrqO6RoQndBeTPDmOziARhrYI4dgaNFUfBNOLSz0gnt/zzX3QVTNNrR7rYzMG4Q8tcS9EuimpZ9XO67+C5uMuewEgMy98i2OGyzAYS+sYXm/Vq09Zt+uXkT0lruaWvU/vl1FwRb/sW3TnxXpcuLj0aw64px3BHILR9r8W3I/coSF7A3z3uLDo5gnZ6Mci5XeR0hTmuoMsIvw7+Un5gz4WM6HPtD+FUiJtFbgzh10leqMgCsVZVmKtQzgjAZ3hDk/k2TgdNNEYNAPbE3y/cZoQXw/nzMZ5CF3dMk8vHOBLLwTUt2f7JwTq8p+XAupY+m8eKPauqFCHB/18QD9QodizgD5UfXnXDmqMhaULBc1sKIEDChwDCrSgLBLG46sz6Z+3XVDwpaDYi4PFg2bxnb5dK1MRJ3nOIvc5sX5uRUQGnBPfFkc5ibt9Tqzl3zkoDg2evAK9tr0zxoJ6Y350Ba/EWOwXzbovsi7DKghjBGuwfSj7SokqJJ1cJlYDAAZ09ZYjGgDecr4YZ1r2RsgxKS92QMP2DuPsWfkR0Zt2HElIlYi1yAi/b6xz5+Q754bOv+as9XuhatR3wUNnrY970z8cNmvLESf7VrGNLpCfbjDshRm8GXi5Xf07+G758qFqwdku5OW7Ibd2xg6/n7Nenadf7LhJgm4BvzdmP4Xdgetf8Q9VJuxtW60Xnb2elMnmDzBV8eZvROj+fw==</diagram></mxfile>"> +<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="701px" height="391px" viewBox="-0.5 -0.5 701 391" content="<mxfile><diagram id="W5UFwr1Gk-ed2l-zxu-w" name="Page-1">3Zpfk+IoEMA/ja9bJIREH0ednbuquaqpmau620cmQUMtCTlCRt1Pf2CI+UPcyThR1/VFaCA2P5qmmziBi2T7IHAW/8UjwiYuiLYTuJy4rgOmvvrSkl0p8WdGsBY0Mp1qwQv9QaqRRlrQiOStjpJzJmnWFoY8TUkoWzIsBN+0u604a/9qhtfEEryEmNnSf2gk41I6RaCW/0HoOq5+2QGmJcFVZyPIYxzxTUME7ydwITiXZSnZLgjT8Cou5bivR1oPigmSyiEDKpXfMCvM5P4mOFGSZ5LxnEoudkZTuaumL3iRRkQ/AUzgfBNTSV4yHOrWjVpwJYtlwlTNUUXM6DpVZVHymNsaGqXfiJBk2xAZjR8IT4jUagDTWsEz1uNMTX1Tr0VQEY+b6+AbITbrvz48ukakCoZSPzFvahF71st1S8TcocDQCMAcaOEgkdpOpprylLTnT7ZU/qtRfUGm9q3RstwaivvKrqqkSqvGIF391myrh+1r1bijbHNeiNCo6xoXg8WamF5mTnoiP+UvCMOSvrX9xmdoupb1PQkeFaE2wD/TUJBEz+S4/Tnv29+KMrbgjIv9WLgCGAKs5TyVDTnYf5Q8l4J/J42W+TIoW0ax3M5m77Hdg6xpu94Ipgst2PcZDUelG/g+mPbQXe0/fXQ96C5RcB66h/ol6Dr+rTsGz3YMDrqWZ0D2SY7z76MaK4HhdL+xh7sCMEPncgVuz7l/NmOdftRWD3bXsrraCI/YXYTz+LA6g4wwuMDpZIY+caoPl2pBHK/jm7ugSzXNqA7rgxqD8AeWcS94kinqaRl5/VeQfNxjzwd45gQfcczuMvDHsvUu2dkl/TKwQN6YX4b2lriaW3Z+e78M/Sv6Zc+iOy/W48JFyq/1wD3uCOYuGC3+teBeMkKDdgB897yw6OYxznSxSNhdKDWFuZ4gDTF7xK+EPem0mHKd075yKXnS6HBnkl3JO6vAC8loqrBWVzgjAZ2hFk/o2Dh7aMIxaPq2J3i8cZouuhpOrwfn/urqlnkip7PdvZ7tfiagyLGAPpVz+ZQ7HcPK2lBgTzTk90Bxx4BiX7gsYsqiqzPpBt99UNC5oNjngsWDpNGdvmpXtZDhPKdhf9BYlRvp0YCg8WNJ1VHczaCxMv9W1Gjm9W7Y+A70SvbJhAt21vzgCt5JuOwHzdoPsm7GSwhjZG7IjtC+EiwLQc6UuAGAAFl9JF4DwFnOF2dJ3C6ZtyE70zh5V14ilWsmlVzImK95itl9LT35dt77pXat17m3gl0XPHTXeqiz/YNhu1atON41umW6Q35cYbeTc1S3D0f16r6Qa/dXhVKDk13Izy+K+21n7Lu4U86rYedOzy3y0GPnsxd4U7e9cN33fUMt0+2ErdaDTj5PVLV+G152r/9TAO//Bw==</diagram></mxfile>"> <defs/> <g> <g> @@ -115,17 +115,17 @@ </g> </g> <g> - <path d="M 152 120 L 173.63 120" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 178.88 120 L 171.88 123.5 L 173.63 120 L 171.88 116.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 140 196 L 173.66 199.37" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 178.89 199.89 L 171.57 202.67 L 173.66 199.37 L 172.27 195.71 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> - <rect x="32" y="100" width="120" height="40" rx="6" ry="6" fill="#60a917" stroke="#2d7600" pointer-events="all" style="fill: light-dark(rgb(96, 169, 23), rgb(74, 137, 12)); stroke: light-dark(rgb(45, 118, 0), rgb(115, 177, 76));"/> + <rect x="20" y="170" width="120" height="40" rx="6" ry="6" fill="#60a917" stroke="#2d7600" pointer-events="all" style="fill: light-dark(rgb(96, 169, 23), rgb(74, 137, 12)); stroke: light-dark(rgb(45, 118, 0), rgb(115, 177, 76));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 120px; margin-left: 33px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 190px; margin-left: 21px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> Component Request @@ -133,7 +133,7 @@ </div> </div> </foreignObject> - <text x="92" y="124" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + <text x="80" y="194" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> Component Request </text> </switch> @@ -230,80 +230,14 @@ </g> </g> <g> - <ellipse cx="155" cy="263.75" rx="2.5" ry="3.75" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 155 267.5 L 155 280 M 155 270 L 150 270 M 155 270 L 160 270 M 155 280 L 150 290 M 155 280 L 160 290" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 297px; margin-left: 155px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Team - </div> - </div> - </div> - </foreignObject> - <text x="155" y="309" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - T... - </text> - </switch> - </g> - </g> - <g> - <ellipse cx="155" cy="183.75" rx="2.5" ry="3.75" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 155 187.5 L 155 200 M 155 190 L 150 190 M 155 190 L 160 190 M 155 200 L 150 210 M 155 200 L 160 210" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 217px; margin-left: 155px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Team - </div> - </div> - </div> - </foreignObject> - <text x="155" y="229" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - T... - </text> - </switch> - </g> - </g> - <g> - <ellipse cx="495" cy="263.75" rx="2.5" ry="3.75" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 495 267.5 L 495 280 M 495 270 L 490 270 M 495 270 L 500 270 M 495 280 L 490 290 M 495 280 L 500 290" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 297px; margin-left: 495px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Team - </div> - </div> - </div> - </foreignObject> - <text x="495" y="309" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - T... - </text> - </switch> - </g> - </g> - <g> - <ellipse cx="495" cy="183.75" rx="2.5" ry="3.75" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 495 187.5 L 495 200 M 495 190 L 490 190 M 495 190 L 500 190 M 495 200 L 490 210 M 495 200 L 500 210" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <ellipse cx="495" cy="223.75" rx="2.5" ry="3.75" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 495 227.5 L 495 240 M 495 230 L 490 230 M 495 230 L 500 230 M 495 240 L 490 250 M 495 240 L 500 250" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 217px; margin-left: 495px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 257px; margin-left: 495px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> Team @@ -311,7 +245,7 @@ </div> </div> </foreignObject> - <text x="495" y="229" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + <text x="495" y="269" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> T... </text> </switch> diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index b44556e5765..da4ebf70b6e 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -687,6 +687,9 @@ Issues Types | +Architectural Issues +"""""""""""""""""""" + .. _pmp_pm_feature_request: **Feature Request** @@ -712,6 +715,10 @@ A *Component Request* represents an independent work package used to describe mo `Component Request issue template <https://github.com/eclipse-score/.github/.github/ISSUE_TEMPLATE/1b_ComponentRequest.yml>`_ + +Planning Issues +""""""""""""""" + .. _pmp_pm_product_increment: **Product Increment** From ca29c97cd040f7f7f383dd3498a25bd048ac4332 Mon Sep 17 00:00:00 2001 From: Andreas Mittag <andreas.mittag@etas.com> Date: Wed, 18 Feb 2026 11:09:44 +0000 Subject: [PATCH 126/128] changed team link to codeowners file --- .../project_management.rst | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index da4ebf70b6e..642e3f04b8a 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -331,59 +331,59 @@ Feature Teams *Feature Teams* have end-to-end responsibility for providing specific functionalities. This includes all development aspects beginning with the architecture definition to the integration test. One *Team* may work independently of other *Teams* on the team-assigned *GitHub Issues*, -and needs at least one :need:`Committer <rl__committer>` who can approve & merge the Pull Requests +and needs at least one :need:`Committer <rl__committer>` who can approve & merge the Pull Requests. Each *Feature Team* has one *Lead* to organize the Team`s work. -.. _BASMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-BAS-team -.. _BASLD: https://github.com/orgs/eclipse-score/teams/automotive-score-BAS-lead +.. _BASMBRS: https://github.com/eclipse-score/baselibs/blob/main/.github/CODEOWNERS +.. _BASLD: https://github.com/eclipse-score/baselibs/blob/main/.github/CODEOWNERS .. _BASMM: https://github.com/eclipse-score/score/wiki/BASM .. _BASSLC: https://sdvworkinggroup.slack.com/archives/C090UKSL5L2 .. _BASBKL: https://github.com/orgs/eclipse-score/projects/24 -.. _COMMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-COM-team -.. _COMLD: https://github.com/orgs/eclipse-score/teams/automotive-score-COM-lead +.. _COMMBRS: https://github.com/eclipse-score/communication/blob/main/.github/CODEOWNERS +.. _COMLD: https://github.com/eclipse-score/communication/blob/main/.github/CODEOWNERS .. _COMMM: https://github.com/eclipse-score/score/wiki/COMM .. _COMSLC: https://sdvworkinggroup.slack.com/archives/C08C0JATADP .. _COMBKL: https://github.com/orgs/eclipse-score/projects/19 -.. _CFGMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-CFG-team -.. _CFGLD: https://github.com/orgs/eclipse-score/teams/automotive-score-CFG-lead +.. _CFGMBRS: https://github.com/eclipse-score/inc_config_management/blob/main/.github/CODEOWNERS +.. _CFGLD: https://github.com/eclipse-score/inc_config_management/blob/main/.github/CODEOWNERS .. _CFGMM: https://github.com/eclipse-score/score/wiki/CFGM .. _CFGSLC: https://sdvworkinggroup.slack.com/archives/CFG .. _CFGBKL: https://github.com/orgs/eclipse-score/projects/CFG -.. _FEOMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-FEO-team -.. _FEOLD: https://github.com/orgs/eclipse-score/teams/automotive-score-FEO-lead +.. _FEOMBRS: https://github.com/eclipse-score/feo/blob/main/.github/CODEOWNERS +.. _FEOLD: https://github.com/eclipse-score/feo/blob/main/.github/CODEOWNERS .. _FEOMM: https://github.com/eclipse-score/score/wiki/FEOM .. _FEOSLC: https://sdvworkinggroup.slack.com/archives/FEO .. _FEOBKL: https://github.com/orgs/eclipse-score/projects/9 -.. _KYRMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-KYR-team -.. _KYRLD: https://github.com/orgs/eclipse-score/teams/automotive-score-KYR-lead +.. _KYRMBRS: https://github.com/eclipse-score/kyron/blob/main/.github/CODEOWNERS +.. _KYRLD: https://github.com/eclipse-score/kyron/blob/main/.github/CODEOWNERS .. _KYRMM: https://github.com/eclipse-score/score/wiki/KYRM .. _KYRSLC: https://sdvworkinggroup.slack.com/archives/KYR .. _KYRBKL: https://github.com/orgs/eclipse-score/projects/38 -.. _LCMMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-LCM-team -.. _LCMLD: https://github.com/orgs/eclipse-score/teams/automotive-score-LCM-lead +.. _LCMMBRS: https://github.com/eclipse-score/lifecycle/blob/main/.github/CODEOWNERS +.. _LCMLD: https://github.com/eclipse-score/lifecycle/blob/main/.github/CODEOWNERS .. _LCMMM: https://github.com/eclipse-score/score/wiki/LCMM .. _LCMSLC: https://sdvworkinggroup.slack.com/archives/C094Z3BN1K4 .. _LCMBKL: https://github.com/orgs/eclipse-score/projects/33 -.. _LOGMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-LOG-team -.. _LOGLD: https://github.com/orgs/eclipse-score/teams/automotive-score-LOG-lead +.. _LOGMBRS: https://github.com/eclipse-score/logging/blob/main/.github/CODEOWNERS +.. _LOGLD: https://github.com/eclipse-score/logging/blob/main/.github/CODEOWNERS .. _LOGMM: https://github.com/eclipse-score/score/wiki/LOGM .. _LOGSLC: https://sdvworkinggroup.slack.com/archives/C089XP2PGQZ .. _LOGBKL: https://github.com/orgs/eclipse-score/projects/31 -.. _ORCMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-ORC-team -.. _ORCLD: https://github.com/orgs/eclipse-score/teams/automotive-score-ORC-lead +.. _ORCMBRS: https://github.com/eclipse-score/orchestrator/blob/main/.github/CODEOWNERS +.. _ORCLD: https://github.com/eclipse-score/orchestrator/blob/main/.github/CODEOWNERS .. _ORCMM: https://github.com/eclipse-score/score/wiki/ORCM .. _ORCSLC: https://sdvworkinggroup.slack.com/archives/C099W80FU2C .. _ORCBKL: https://github.com/orgs/eclipse-score/projects/29 -.. _PERMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-PER-team -.. _PERLD: https://github.com/orgs/eclipse-score/teams/automotive-score-PER-lead +.. _PERMBRS: https://github.com/eclipse-score/persistency/blob/main/.github/CODEOWNERS +.. _PERLD: https://github.com/eclipse-score/persistency/blob/main/.github/CODEOWNERS .. _PERMM: https://github.com/eclipse-score/score/wiki/PERM .. _PERSLC: https://sdvworkinggroup.slack.com/archives/C08B339ETQU .. _PERBKL: https://github.com/orgs/eclipse-score/projects/20 From 993185d00d20c3a603a13a4d3a62c4fbda76ae90 Mon Sep 17 00:00:00 2001 From: Andreas Mittag <andreas.mittag@etas.com> Date: Wed, 18 Feb 2026 11:20:40 +0000 Subject: [PATCH 127/128] rest changed to codeowners --- .../project_management.rst | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index 642e3f04b8a..a77a0ad593d 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -75,14 +75,14 @@ Steering Committees ^^^^^^^^^^^^^^^^^^^ Steering of the project is done with the help of *Committees*. -.. _PLCMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-PLC-team -.. _PLCSPK: https://github.com/orgs/eclipse-score/teams/automotive-score-PLC-lead +.. _PLCMBRS: https://github.com/eclipse-score/score/blob/main/.github/CODEOWNERS +.. _PLCSPK: https://github.com/eclipse-score/score/blob/main/.github/CODEOWNERS .. _PLCMM: https://github.com/eclipse-score/score/wiki/PLCM .. _PLCSLC: https://sdvworkinggroup.slack.com/archives/PLC .. _PLCBKL: https://github.com/orgs/eclipse-score/projects/PLC -.. _TLCMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-TLC-team -.. _TLCSPK: https://github.com/orgs/eclipse-score/teams/automotive-score-TLC-lead +.. _TLCMBRS: https://github.com/eclipse-score/score/blob/main/.github/CODEOWNERS +.. _TLCSPK: https://github.com/eclipse-score/score/blob/main/.github/CODEOWNERS .. _TLCMM: https://github.com/eclipse-score/score/wiki/TLCM .. _TLCSLC: https://sdvworkinggroup.slack.com/archives/C085F44D2CS .. _TLCBKL: https://github.com/orgs/eclipse-score/projects/3 @@ -147,33 +147,33 @@ Communities commonly used development & testing infrastructure, processes or final integration & release. Each *Community* has a *Community Lead* to organize the community`s work. -.. _ARCMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-ARC-team -.. _ARCLD: https://github.com/orgs/eclipse-score/teams/automotive-score-ARC-lead +.. _ARCMBRS: https://github.com/eclipse-score/score/blob/main/.github/CODEOWNERS +.. _ARCLD: https://github.com/eclipse-score/score/blob/main/.github/CODEOWNERS .. _ARCMM: https://github.com/eclipse-score/score/wiki/ARCM .. _ARCSLC: https://sdvworkinggroup.slack.com/archives/C08C1HG5AKY .. _ARCBKL: https://github.com/orgs/eclipse-score/projects/3 -.. _INFMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-INF-team -.. _INFLD: https://github.com/orgs/eclipse-score/teams/automotive-score-INF-lead +.. _INFMBRS: https://github.com/eclipse-score/score/blob/main/.github/CODEOWNERS +.. _INFLD: https://github.com/eclipse-score/score/blob/main/.github/CODEOWNERS .. _INFMM: https://github.com/eclipse-score/score/wiki/INFM .. _INFSLC: https://sdvworkinggroup.slack.com/archives/C0894QGRZDM .. _INFBKL: https://github.com/orgs/eclipse-score/projects/6 -.. _PRCMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-PRC-team -.. _PRCLD: https://github.com/orgs/eclipse-score/teams/automotive-score-PRC-lead +.. _PRCMBRS: https://github.com/eclipse-score/process_description/blob/main/.github/CODEOWNERS +.. _PRCLD: https://github.com/eclipse-score/process_description/blob/main/.github/CODEOWNERS .. _PRCMM: https://github.com/eclipse-score/score/wiki/PRCM .. _PRCSLC: https://sdvworkinggroup.slack.com/archives/C0864L05332 .. _PRCBKL: https://github.com/orgs/eclipse-score/projects/21 .. _PIMBKL: https://github.com/orgs/eclipse-score/projects/7 -.. _TSTMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-TST-team -.. _TSTLD: https://github.com/orgs/eclipse-score/teams/automotive-score-TST-lead +.. _TSTMBRS: https://github.com/eclipse-score/itf/blob/main/.github/CODEOWNERS +.. _TSTLD: https://github.com/eclipse-score/itf/blob/main/.github/CODEOWNERS .. _TSTMM: https://github.com/eclipse-score/score/wiki/TSTM .. _TSTSLC: https://sdvworkinggroup.slack.com/archives/TSTC08B6C78EF3 .. _TSTBKL: https://github.com/orgs/eclipse-score/projects/5 -.. _INTMBRS: https://github.com/orgs/eclipse-score/teams/automotive-score-INT-team -.. _INTLD: https://github.com/orgs/eclipse-score/teams/automotive-score-INT-lead +.. _INTMBRS: https://github.com/eclipse-score/reference_integration/blob/main/.github/CODEOWNERS +.. _INTLD: https://github.com/eclipse-score/reference_integration/blob/main/.github/CODEOWNERS .. _INTMM: https://github.com/eclipse-score/score/wiki/INTM .. _INTSLC: https://sdvworkinggroup.slack.com/archives/INT .. _INTBKL: https://github.com/orgs/eclipse-score/projects/INT From ee033e093bc9534bcd1cb53009faea4d765ff59b Mon Sep 17 00:00:00 2001 From: Andreas Mittag <andreas.mittag@etas.com> Date: Sat, 28 Feb 2026 10:48:23 +0000 Subject: [PATCH 128/128] modifications after review --- ...anagement_organization_orgchart.drawio.svg | 88 +++++++++---------- ...ct_management_planning_overview.drawio.svg | 8 +- ...nagement_process_issue_overview.drawio.svg | 6 +- .../project_management.rst | 74 ++++++---------- 4 files changed, 79 insertions(+), 97 deletions(-) diff --git a/docs/platform_management_plan/_assets/score_project_management_organization_orgchart.drawio.svg b/docs/platform_management_plan/_assets/score_project_management_organization_orgchart.drawio.svg index d28f0627a4b..64713bfb5a3 100644 --- a/docs/platform_management_plan/_assets/score_project_management_organization_orgchart.drawio.svg +++ b/docs/platform_management_plan/_assets/score_project_management_organization_orgchart.drawio.svg @@ -1,17 +1,17 @@ -<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="765px" height="923px" viewBox="-0.5 -0.5 765 923" content="<mxfile><diagram id="jAXL_Ft_FI92JxD2iTiC" name="Page-1">7Zvfc5s4EMf/Gj+WQfzmMXXstHPNtFdn7uYeFRCYFpBHFrFzf/1JIGxA1GbmBHYT5yVmBdjsx7v73QXPzHm2fyBws37EIUpnhh7uZ+b9zDCA7jnsH7e8VhbHF4aYJKHY6WhYJf+i+khhLZIQbVs7UoxTmmzaxgDnOQpoywYJwbv2bhFO2++6gTGSDKsAprL17ySk68rq2frR/gkl8bp+Z6CLlQzWOwvDdg1DvGuYzMXMnBOMafUq289Ryp1X+6U6bvmL1cMHIyingw7wqyNeYFqIi1siSAuCmPEJwWxm3rFXH+9W4vPS19oJBBd5iPh59Jn5cbdOKFptYMBXdww7s61plrItwF6+IEIT5sC7NIlzZqOY7xAlaTrHKSblGc0QIi8KmD0mMEzYFTTWXAQdxN9oSwn+iRoruj6f63yFYAppgvnp/eOeNSCbWWTvCIfxj4f2DZPw1gPCGaLkle0iVu0apfjqmpbY3h2/CIYnbOvGl6C2QfHdiw+nPuJhLwShflqHj3ua1vzr441WuWo5l6RlDqO1fLjRqmgZuuYbXWBanaPazDTdGQmbMQjbcvH1hq1i5F0yyPRBtP745/uNVpvOJWgBbxAtTdNutCo6l5QbYFgm/La4xZYgcUm5AeRMOMdZVuQJfRWgCA7QdnvFsDiuqWB9sIEGnBYvy3A125KQWa4nIwO6/f+ZyelwRREiSR4fiP3gDSyvcssy6II1+/cFwZArx4QEjOE149THE4vtUPPkSHOdnkgDhgrRIWE7gnqEOWv/M35hjF8Kc4nPGSJHfEAmEUWREfyCRBSFvuP0kQidZ8d21Pi9k+JALcMbjgd9jrcU+F1uqFYoKAhPcEMc3/bsGQxqHd/NaApAdFT3YTAxBQhLAvFnAVOZw5sGAMxOtTcmJGDLoQAj9K783207p3Q/kFNRR2w9QvITUV7J2TvlZbmudggqP1xz1R4gwixF41TW7NlmW4RZhmZ5w0SY6ypAKSezI0pD/5xTxBxYMRMkv6MUwe11K6+S4SjMzI4EsG15QHcIxpb2clREnpz5FnuKSA5TOcbG0AHIKdOgnOpc/7m31VQhutzzjSXoayxVqN26SWp4/BAAV1ptFLi822AAG0xYXtxz5eWOBNyhQTWNufY8NE1DD2zWvndqiRwnvYVEySj6VCEpoX3OIwLZtRdvApuicgI8q6Pj5EA7BJVyZnI1ma9hHndT21vs5KUMN2Ur3zf6whHdwXK4fI9eUIo376eZ/wAu2MwY8kMgncT1hLZVK3PLWKWoamcsu2f4aOgjZSxTfgbkG8HPKcrKxmSL0+KU9v29U5ZlXDBlmfLY9wnjdFCleFvZ6tAz1zLL9TW9+Tcllb5JTB4lccXlPWHpFpFJR8KmrKTucVC8Ax3l6JdMSnLt5hOr/nGIUrefnYMocG1nxAv6xh59rYGKsUd93mZiIZjfPtejIg+4R5s+pq9q1VGWhCE/0XgCacTn+LozXa8PnO9qljtOVFiySDrcWK+IJZRtXzuxEe+eS4jcHhE7KiJZTX1BMeLz9Q4UdklU8lCO866rhalZsXFOxa8HgF9vixOfJAiFIUA8lypyeTuXuX0h0dc0KHG2LJLaLXb5NNdVR4P8HNeEweH3Kakxg0MeJZ58woQ3fhucb5PnJD1diX7HUXwncnxnQllryDc/GnOqv1hJiUa923Rp33clmOPKz8epcj7bPP7yqVxr/H7MXPwH</diagram></mxfile>"> +<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="765px" height="923px" viewBox="-0.5 -0.5 765 923" content="<mxfile><diagram id="jAXL_Ft_FI92JxD2iTiC" name="Page-1">7Zttc6JIEMc/jS+XYnjmZdZobus2tbk1dVf3cgIDcguMNYwxuU9/MzAgMKxadQO6xryI0iAP/aO7/93izJxnbw8EbtaPOETpzNDDt5l5PzMMoOsWe+GW98ri+GZliEkSio32hlXyL6o/KazbJERFZ0OKcUqTTdcY4DxHAe3YICF4190swmn3qBsYI8mwCmAqW/9KQrqurJ6t7+2/oSRe10dmV1ytyWC9sTAUaxjiXctkLmbmnGBMq3fZ2xyl3Hm1X6rPLX+ytjkxgnJ60gf86hOvMN2Ki1siSLcEMeMzgtnMvGPvPt+txPnS99oJBG/zEPH96DPz826dULTawICv3THszLamWcqWAHv7ighNmAPv0iTOmY1ivkGUpOkcp5iUezRDiLwoYPaYwDBhV9Ba5yLoIH6gghL8A7XW6Pp8rvM1BFNIE8x37++3rAHZzCJ7RziMnx56a5mEtx4QzhAl72wTsdauUYpb17TE8m5/IxiesK1bN0Ftg+Lei5td7/GwN4LQMK3mdA/Tmn97vNEq11rOOWmZp9FaPtxoVbQMXfONPjCtzlFdZprujITNOAnbcvHthq1i5J0zyPSTaP3+9/cbrS6dc9AC3km0NE270aronFNugNMy4dPiFluCxDnlBpAz4Rxn2TZP6LsARXCAiuKCYXFcU8H6ZAMNOB1eluFqtiUhs1xPRgZ0+/8zk9PhiiJEkjxuiP3DG1he5ZZl0AVr9vIVwZArx4QEjOEl49THE4vdUPPkSHOdgUgDhgrRIWHbg3qEOWv/M35hjF8Kc4nPESJ7fEAmEUWREfyERBSFvuMMkQidF8d21Pi9l+JALcNbjgdDjrcU+F1uqFYo2BKe4E5xfNezRzCodXw/oykA0VPdzWBiChCWBOKPLUxlDlcNAJi9am9MSMCWQwFG6EP5v992Tul+IKeinth6hOQHorySsyPlZbmuNggqP1xy1T5BhFmKxqms2bPNrgizDM3yThNhrqsApZzM9igN/UtOEXNgxUyQ/I5SBIvLVl4lw1GYmT0JYNvygK4Jxo72clREnpz5Fm8UkRymcoyNoQOQU6ZBOdW5/stgqxnCYt0cjS88QcpPmFv4mbF/apSZe7z7BEPdpwpJXHdSLSxNlFxoSVLg8n4XAmwwYQ1yj9WgOxJwhwbVyObSk9U0XT+wWY/fKzhynAxWGyXz6kPVpoT2JY8IZNe+vQpsimoO8Kye2JMDrQkq5czkkjNfwzzup7ZrbPelDDdlvz80H8MR3cFyAn2PXlGKNx+n4/8EztjxGPKTIr3E9YyKqt+5ZaxSVHUzlj0woTT0kTKWKT8o8kTwS4qysnspcLo9JJB/7ZRlGWdMWaY8G37GOD2pUlxXtmoa61pmub6mt/+mpDI0rsmjJK64fCQs/SIy6dzYlJXUPQ62wvvXrqUc/ZyJSa7ffLQ1PDdR6vajA5MDAxImAHVvlHExGJqODHUQKqYj9X6HZ4wq9VKWhCHf0XiSacTH//qjYG+Ike9qljtOjFiybGq+j69iJGE3puKeXD2xEb90lxC5A7J2VESyvvqKYsTH8j0o7JKo5KEc531XC1O7huOcih8dAL9eFjs+SBAKQ4B4ZlXk8m7acodCYqiNUOLso08wX3QkyI9+TRgY/pCuGjMw5MFiJaF4v7fBeZG8JOnhcvMrTuB74eE7E6pZQ/7OozWe+pPVjWjUb6LO7fu+pHJc+dk5Vc5ni/tfRZXrWr8tMxf/AQ==</diagram></mxfile>"> <defs> - <linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"> + <linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"> <stop offset="0%" stop-color="#dae8fc" stop-opacity="1" style="stop-color: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stop-opacity: 1;"/> <stop offset="100%" stop-color="#7ea6e0" stop-opacity="1" style="stop-color: light-dark(rgb(126, 166, 224), rgb(67, 102, 151)); stop-opacity: 1;"/> </linearGradient> - <linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"> + <linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"> <stop offset="0%" stop-color="#fff2cc" stop-opacity="1" style="stop-color: light-dark(rgb(255, 242, 204), rgb(40, 29, 0)); stop-opacity: 1;"/> <stop offset="100%" stop-color="#ffd966" stop-opacity="1" style="stop-color: light-dark(rgb(255, 217, 102), rgb(84, 51, 0)); stop-opacity: 1;"/> </linearGradient> </defs> <g> <g> - <rect x="462" y="262" width="280" height="80" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,602,302)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> + <rect x="462" y="262" width="280" height="80" fill="url(#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,602,302)" pointer-events="all" style="fill: url("#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 635 302)"> @@ -32,7 +32,7 @@ </g> </g> <g> - <rect x="422" y="262" width="280" height="80" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,562,302)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> + <rect x="422" y="262" width="280" height="80" fill="url(#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,562,302)" pointer-events="all" style="fill: url("#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 595 302)"> @@ -53,7 +53,7 @@ </g> </g> <g> - <rect x="382.92" y="262.19" width="280.06" height="80" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,522.95,302.19)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> + <rect x="382.92" y="262.19" width="280.06" height="80" fill="url(#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,522.95,302.19)" pointer-events="all" style="fill: url("#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 555.95 302.19000000000005)"> @@ -74,7 +74,7 @@ </g> </g> <g> - <rect x="342" y="262" width="280" height="80" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,482,302)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> + <rect x="342" y="262" width="280" height="80" fill="url(#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,482,302)" pointer-events="all" style="fill: url("#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 515 302)"> @@ -95,7 +95,7 @@ </g> </g> <g> - <rect x="302" y="262" width="280" height="80" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,442,302)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> + <rect x="302" y="262" width="280" height="80" fill="url(#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,442,302)" pointer-events="all" style="fill: url("#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 475 302)"> @@ -116,7 +116,7 @@ </g> </g> <g> - <rect x="262" y="262" width="280" height="80" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,402,302)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> + <rect x="262" y="262" width="280" height="80" fill="url(#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,402,302)" pointer-events="all" style="fill: url("#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 435 302)"> @@ -137,7 +137,7 @@ </g> </g> <g> - <rect x="222" y="262" width="280" height="80" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,362,302)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> + <rect x="222" y="262" width="280" height="80" fill="url(#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" transform="rotate(90,362,302)" pointer-events="all" style="fill: url("#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 395 302)"> @@ -158,10 +158,10 @@ </g> </g> <g> - <rect x="-89.16" y="349.54" width="478" height="105" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="5" transform="rotate(90,149.84,402.04)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> + <rect x="-89.16" y="349.54" width="478" height="105" fill="url(#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="5" transform="rotate(90,149.84,402.04)" pointer-events="all" style="fill: url("#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> </g> <g> - <g transform="translate(-0.5 -0.5)rotate(90 195.33999999999992 402.03999999999996)"> + <g transform="translate(-0.5 -0.5)rotate(90 195.34000000000015 402.03999999999996)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 476px; height: 1px; padding-top: 402px; margin-left: -43px;"> @@ -179,7 +179,7 @@ </g> </g> <g> - <rect x="2" y="2" width="760" height="120" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#000000" stroke-width="5" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> + <rect x="2" y="2" width="760" height="120" fill="url(#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#000000" stroke-width="5" pointer-events="all" style="fill: url("#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -200,7 +200,7 @@ </g> </g> <g> - <rect x="22" y="28" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="22" y="28" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -221,7 +221,7 @@ </g> </g> <g> - <rect x="42" y="422" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,122,442)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="42" y="422" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,122,442)" pointer-events="all" style="fill: url("#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 122 442)"> @@ -242,7 +242,7 @@ </g> </g> <g> - <rect x="92" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,172,262)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="92" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,172,262)" pointer-events="all" style="fill: url("#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 172 262)"> @@ -263,7 +263,7 @@ </g> </g> <g> - <rect x="42" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,122,262)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="42" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,122,262)" pointer-events="all" style="fill: url("#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 122 262)"> @@ -284,7 +284,7 @@ </g> </g> <g> - <rect x="482.53" y="364.48" width="478" height="77" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="4" transform="rotate(90,721.53,402.98)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> + <rect x="482.53" y="364.48" width="478" height="77" fill="url(#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="4" transform="rotate(90,721.53,402.98)" pointer-events="all" style="fill: url("#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 753.03 402.98)"> @@ -305,7 +305,7 @@ </g> </g> <g> - <rect x="322" y="481" width="320" height="160" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="4" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> + <rect x="322" y="481" width="320" height="160" fill="url(#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="4" pointer-events="all" style="fill: url("#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -326,7 +326,7 @@ </g> </g> <g> - <rect x="632" y="262" width="180" height="20" rx="3" ry="3" fill="#ffe6cc" stroke="#d79b00" transform="rotate(90,722,272)" pointer-events="all" style="fill: light-dark(rgb(255, 230, 204), rgb(54, 33, 10)); stroke: light-dark(rgb(215, 155, 0), rgb(153, 101, 0));"/> + <rect x="632" y="262" width="180" height="20" rx="3" ry="3" fill="#ffe6cc" stroke="#d79b00" stroke-dasharray="12 12" transform="rotate(90,722,272)" pointer-events="all" style="fill: light-dark(rgb(255, 230, 204), rgb(54, 33, 10)); stroke: light-dark(rgb(215, 155, 0), rgb(153, 101, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 722 272)"> @@ -347,7 +347,7 @@ </g> </g> <g> - <rect x="202" y="73" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="202" y="73" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -368,7 +368,7 @@ </g> </g> <g> - <rect x="-195.5" y="362" width="478" height="80" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="5" transform="rotate(90,43.5,402)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> + <rect x="-195.5" y="362" width="478" height="80" fill="url(#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="5" transform="rotate(90,43.5,402)" pointer-events="all" style="fill: url("#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 76.5 402)"> @@ -389,7 +389,7 @@ </g> </g> <g> - <rect x="146" y="243" width="240" height="80" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="4" transform="rotate(90,266,283)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> + <rect x="146" y="243" width="240" height="80" fill="url(#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="4" transform="rotate(90,266,283)" pointer-events="all" style="fill: url("#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 299 283)"> @@ -410,7 +410,7 @@ </g> </g> <g> - <rect x="202" y="28" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="202" y="28" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -431,7 +431,7 @@ </g> </g> <g> - <rect x="-48" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,32,262)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="-48" y="242" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,32,262)" pointer-events="all" style="fill: url("#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 32 262)"> @@ -452,7 +452,7 @@ </g> </g> <g> - <rect x="166" y="502" width="200" height="80" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="4" transform="rotate(90,266,542)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> + <rect x="166" y="502" width="200" height="80" fill="url(#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="4" transform="rotate(90,266,542)" pointer-events="all" style="fill: url("#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 299 542)"> @@ -473,7 +473,7 @@ </g> </g> <g> - <rect x="382" y="28" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="382" y="28" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -494,7 +494,7 @@ </g> </g> <g> - <rect x="176" y="401" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,256,421)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="176" y="401" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,256,421)" pointer-events="all" style="fill: url("#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 256 421)"> @@ -515,7 +515,7 @@ </g> </g> <g> - <rect x="-48" y="422" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,32,442)" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="-48" y="422" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" transform="rotate(90,32,442)" pointer-events="all" style="fill: url("#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)rotate(90 32 442)"> @@ -536,7 +536,7 @@ </g> </g> <g> - <rect x="562" y="28" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="562" y="28" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -545,19 +545,19 @@ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 48px; margin-left: 563px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Docu Management Plan + Document Management Plan </div> </div> </div> </foreignObject> <text x="642" y="52" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Docu Management Plan + Document Management Plan </text> </switch> </g> </g> <g> - <rect x="42" y="62" width="140" height="20" rx="3" ry="3" fill="#ffe6cc" stroke="#d79b00" pointer-events="all" style="fill: light-dark(rgb(255, 230, 204), rgb(54, 33, 10)); stroke: light-dark(rgb(215, 155, 0), rgb(153, 101, 0));"/> + <rect x="42" y="62" width="140" height="20" rx="3" ry="3" fill="#ffe6cc" stroke="#d79b00" stroke-dasharray="8 8" pointer-events="all" style="fill: light-dark(rgb(255, 230, 204), rgb(54, 33, 10)); stroke: light-dark(rgb(215, 155, 0), rgb(153, 101, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -578,7 +578,7 @@ </g> </g> <g> - <rect x="4.53" y="762" width="197.47" height="40" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="5" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> + <rect x="4.53" y="762" width="197.47" height="40" fill="url(#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#0000cc" stroke-width="5" pointer-events="all" style="fill: url("#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 204), rgb(212, 212, 255));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -587,19 +587,19 @@ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 195px; height: 1px; padding-top: 782px; margin-left: 6px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Cross functional Community + Community </div> </div> </div> </foreignObject> <text x="103" y="786" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Cross functional Community + Community </text> </switch> </g> </g> <g> - <rect x="4.53" y="702" width="197.47" height="40" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#000000" stroke-width="5" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> + <rect x="4.53" y="702" width="197.47" height="40" fill="url(#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#000000" stroke-width="5" pointer-events="all" style="fill: url("#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -641,7 +641,7 @@ </g> </g> <g> - <rect x="4.53" y="822" width="197.47" height="40" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> + <rect x="4.53" y="822" width="197.47" height="40" fill="url(#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0)" stroke="#00cc00" stroke-width="5" pointer-events="all" style="fill: url("#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_dae8fc_1d293b_-1-light-dark_7ea6e0_436697_-1-s-0"); stroke: light-dark(rgb(0, 204, 0), rgb(0, 162, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -650,19 +650,19 @@ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 195px; height: 1px; padding-top: 842px; margin-left: 6px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Development Team + Feature Team </div> </div> </div> </foreignObject> <text x="103" y="846" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Development Team + Feature Team </text> </switch> </g> </g> <g> - <rect x="2" y="882" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="2" y="882" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> @@ -671,19 +671,19 @@ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 902px; margin-left: 3px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Project Management Plan Responsibility + Plan Responsibility </div> </div> </div> </foreignObject> <text x="82" y="906" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Project Management Plan Re... + Plan Responsibility </text> </switch> </g> </g> <g> - <rect x="242" y="596" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-6Yj6ghnsNABZMMeVuD7P-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> + <rect x="242" y="596" width="160" height="40" rx="6" ry="6" fill="url(#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0)" stroke="#d6b656" pointer-events="all" style="fill: url("#drawio-svg-SnhW-BibI8hyStsdSWiK-gradient-light-dark_fff2cc_281d00_-1-light-dark_ffd966_543300_-1-s-0"); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> diff --git a/docs/platform_management_plan/_assets/score_project_management_planning_overview.drawio.svg b/docs/platform_management_plan/_assets/score_project_management_planning_overview.drawio.svg index 512a64f48f9..a0bb028b28b 100644 --- a/docs/platform_management_plan/_assets/score_project_management_planning_overview.drawio.svg +++ b/docs/platform_management_plan/_assets/score_project_management_planning_overview.drawio.svg @@ -1,4 +1,4 @@ -<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="821px" height="402px" viewBox="-0.5 -0.5 821 402" content="<mxfile><diagram id="sy3y0YvDUY56zLrZI23Z" name="Page-1">7Vpbk6I6EP41ProVQMB5VHQup3ZWSz21O48RIlKDhA1h1P31J4FwCeA4F3DnzK4vJp17d39fJ609zdodbggMt/fYQX5PBc6hp016qqqAocG+uOSYSnRTTQUu8RzRqRAsvV8oGymkseegSOpIMfapF8pCGwcBsqkkg4Tgvdxtg3151RC6qCZY2tCvS797Dt2m0qEOCvkt8txttrICRMsOZp2FINpCB+9LIm3a0yyCMU1Lu4OFfK68TC/puOsTrfnGCAroSwZkI56gH4vD9VTDZ2PHjvfEN0iP4tTGz5jvaiyVXPGdjIhCGDQOWUP70SU4Dpy+jX1MetqIm4zAIMq2+sy060ywmM5ny7vVbPGQTJC2srOtSyPgLmSFYB3xr/vR3bf+ajq67/Oh1dbSDOnO5WWZOFGBLG0Q5cvPvn+bLpa3d/P0fE075Jt5+wI3d6vbf8f9+WL2z9RanVQCSI68DJHtbTz71HKqZCqVeWLIi+iQ7ALH66RFYZXEcoh7DGC1/dajaBlCmzfvGcCZbEt3vuj8hAj1GFRGvucGTEYx7wBFzUebYvWym2Z+yEajQ0kk3PYG4R2i5Mi6iFZ9ICB0zEGW1vcFIgcZ7rZlNBpCCAULuPncBVBYQWDlBG4+F2zAsm/NFlNWWMxmqw8BlK9WqzhpXKQ4NYbOjnny54SKospQGdSRkstaR4pWQ8qcYCdmUVkFd4FN0I4frKriQo/KeT1uPN+3UoCwsdoGQA1ALscBLclB8uGAowQ/olLLeGKmLW0o26zwEqhrOzdIWduDFpSt/6WlbmlptGiXlhpPfY0gjQnix0Y/YxTR6A8hJnWoXJCZjBpYaopvlZcA0AHa1Hlpk3yaeAkAZTK2uuElbVDXdWe8ZH4uXvr7yvhjXhkVhlK0S74yhjXYTEOu6hZJyTQMMBy9hpSMa9DaZUk3Kuq9qqvX7IiTlKbUR0WzyHHRUlSRv8b7aSEYJwLWsMXE+8W0B30uDJwRzzAxue3DKGLmktRvx+Qpd3LZ5dlQkeoaJnqHhJbqTMnk+CPvyioPvPJFz6qTQ7lxchS1k1Zi87uISvzMj/us2Upm0RvMkskI8iH1nuRsWZOtxApz7PE3QOYVWtUr1Iq5IxwTG4lR5exWZaJBJeblCcRsolQHtYkS18mP/bJnTj0jwM4N5qne2QESsuaBy9p6vsOkjc72Fa6RL3tMRmo2mwiRBu7beY6TOCRBkfcLpozKTR/ycyUn1cc9fZI7Qw2feaZUDO7l+UnJb57HMviiaMb77J91wZtNhN5rkYYczQpGj62y51SzhgkX/panpqFV3LshOHXGnvXYNI7ddpWrK4Mm5V4mNJnV/OIlQ9PV60JThFyeRZGCU/dxqAg9D1LkaY5D6ODRH2JxXi5FL1YrBvHK2diVBgDZE8vxLKOvDxLQjKsKUKuXw5cGtKpTdhjQMhV+XvocgooyG/KiXSG8DvBPplyjmtq5oHKVwQemzzfQYIlyB/LlH5y7/Se1OSIeUyK/PL6cVptYVf1QrKorLbGqoZvyRNl7qANWrbumhXchDtJXQhdpRwPAK8V8zTVKnZhGaz+HVEKfZl4w7diQQKkTwRmkZ4AtQJrfdl4CWOmOpJxBqwOjbW5lXplDymAbJNyhgmFukgoCz4JZbwDzb4Vu5eWivfWFrw8rHGB2diHS6r9kJlpgBvu/veRTXJzEbJ+5rQauJMX2lfcZ/j1Pe1Yt/hGVdi/+V6ZN/wM=</diagram></mxfile>"> +<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="821px" height="402px" viewBox="-0.5 -0.5 821 402" content="<mxfile><diagram id="sy3y0YvDUY56zLrZI23Z" name="Page-1">7Vpbl5o6FP41PtoVQFAfFZ1LV6e61LPaeYwQkTVIaIBR59c3gXAJxOrMwBzXtL5Idm7sy/ftZGtHM3eHWwKD7QO2kddRgX3oaJOOqioA9OgXkxxTiTHUUoFDXJsPKgRL9wVlM7k0dm0UCgMjjL3IDUShhX0fWZEgg4TgvThsgz1x1wA6qCZYWtCrS3+4drRNpQMdFPI75DrbbGeqcdqzg9lgLgi30Mb7kkibdjSTYBylT7uDiTxmvMwu6bybE735ixHkR5dMyGY8Qy/mynVUw6Nzx7b7zF4wOnKtjV8xe6ux8OTw72RGGEBfOmUNrSeH4Ni3uxb2MOloI+YyAv0we9U/LLvOBIvpfLa8X80Wj8kCaS/VbV2aAXcBffDXIft6GN1/766mo4cum1rtLa2Qvrm4LRUnJhClElG+/ezH9+lieXc/T/WTvSF7mbdvcHu/uvtv3J0vZl+n5uqkEUCi8jJAlrtxrVPbqYKrVBqJAXtEh+QtcLxOehTaSDyHWMQA2tpv3QgtA2ix7j0FOJVto53HBz8jErkUKiPPdXwqizAbAHnLQ5ti93KYZnFIZ6NDScTD9hbhHYrIkQ7hvXqPQ+iYgyxt7wtE9jLcbctoNLgQchZw8rULoNAHjpUTuPlcsAHLrjlbTOnDYjZbXQVQvpmN4kS6SaE1hvaORvLnhIqiilDp1ZGSyxpHilZDypxgO6ZZWQX3vkXQjilWNXFhR+W8HTeu55kpQOhcbQOgBiCTYz8qyUHyYYCLCH5CpZ7xpJ/2NGHsfoWXQN3auUPK1u41YGz9Hy21S0ujRbO0JNX6BsEoJoipjX7FKIzCv4SY1IHygcxk1MBSM3yjvASADtCmzkub5CPjJQCUydhsh5e0Xt3WrfFS/3Px0r9bxl9zy6gwlKJ95C1jUIPNNGCmbpCU+oYBBqPXkJJxAxo7LOlGxbzDunn7LXGSIit9VCyLbActeRN5a7yfFoJxIqAdW0zcF2o96DGhb49YhYnKLQ+GIXWXYH4rJs95kIshT6fyUtcgsTskUalNjUyOP/OhtPHIGl/0rDk5lDsnR9466SW6voMigZ+Zun90W8ktusQtmYwgD0bus1gtk/mK7zDHLrsDZFGhVaNCrbg7xDGxEJ9Vrm5VFupVcl5eQMwWSm1QWygJnVzty6459YoA1RvMU7tTBRKyZonL3LqeTaXSYPsG18gTIyYjNYsuhIiE+3aubScBSVDovsCUUZnrA6ZXoqk+7ugTeTCcwmxePeULdsoFShmWwRdFM97n/2wI3mxC9F6PSGo0Kxg+NcqeU80cJFz4v1w1Da0S3pLk1Bp71nPTOHaaNa6u9GTG/ZjU1K/WFz8yNQ1fl5pC5LAqipCc2s9DRep5FDKPPA+hgxv95Juz51L2oq1iEmuczV1pAhAjsZzPsoRxJQnNGFaAWj0cXprQqkHZYkLLTPh56XMAKsaU1EXbQngd4J/MuEa1tPOBxlV6V0yfb6DBEuX2xMM/OHf6T1pzRFxqRHZ4vJxWZayqXhWr6kpDrGrofXGh7D7UAqvWQ9PEuwD76S2hjbKjAeBQ6b/mGKVO+kZjx6hK6lMkPNBa2VFSQKkTwRmkZ4AtQJqfdi4BrHBGUs6g1YbhNvcya8xhRGHrJ9yhgsGl2NUl2L0u6FZuLtpbb/j6oMIB/dYORFr9l8zECtRhV3GTz4P93Tf5Lg1bDQwFw3aV9zn+PVd72iz+EZUOL/5Xpk1/Aw==</diagram></mxfile>"> <defs/> <g> <g> @@ -343,13 +343,13 @@ <path d="M 538 190.88 L 533.5 181.88 L 538 184.13 L 542.5 181.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> <g> - <rect x="70" y="331" width="120" height="40" rx="6" ry="6" fill="#60a917" stroke="#2d7600" pointer-events="all" style="fill: light-dark(rgb(96, 169, 23), rgb(74, 137, 12)); stroke: light-dark(rgb(45, 118, 0), rgb(115, 177, 76));"/> + <rect x="670" y="100" width="120" height="40" rx="6" ry="6" fill="#60a917" stroke="#2d7600" pointer-events="all" style="fill: light-dark(rgb(96, 169, 23), rgb(74, 137, 12)); stroke: light-dark(rgb(45, 118, 0), rgb(115, 177, 76));"/> </g> <g> <g transform="translate(-0.5 -0.5)"> <switch> <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 351px; margin-left: 71px;"> + <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 120px; margin-left: 671px;"> <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> Component Request @@ -357,7 +357,7 @@ </div> </div> </foreignObject> - <text x="130" y="355" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> + <text x="730" y="124" fill="#ffffff" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> Component Request </text> </switch> diff --git a/docs/platform_management_plan/_assets/score_project_management_process_issue_overview.drawio.svg b/docs/platform_management_plan/_assets/score_project_management_process_issue_overview.drawio.svg index 4ea684a4708..299f4d99480 100644 --- a/docs/platform_management_plan/_assets/score_project_management_process_issue_overview.drawio.svg +++ b/docs/platform_management_plan/_assets/score_project_management_process_issue_overview.drawio.svg @@ -1,4 +1,4 @@ -<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="631px" height="664px" viewBox="-0.5 -0.5 631 664" content="<mxfile><diagram id="LEemh8klBKRIXfq5bYu_" name="Page-1">7VtLc6M4EP41vm4JxMM5ju1kNofUZsdbtZOjBmTDBiNWiMTeX78CS+YhObEdwJCKDwlqJJC+/tTqlpoJnG+23ylKggfi42hiAn87gYuJaRpg6vB/uWS3l9iuuResaeiLSqVgGf6HZUshzUIfp7WKjJCIhUld6JE4xh6ryRCl5LVebUWi+lsTtMaKYOmhSJX+Hfos2EunNijlv+NwHcg3G0Dc2SBZWQjSAPnktSKCtxM4p4Sw/dVmO8dRDp7EZd/u7sjdQ8cojtkpDQTuLyjKxNjmAYr56E3wgGI+jk3+oH1X2U6On/c6yS8TSjyccjBnr0HI8DJBXi5+5VrnsoBtIl4y+OUv5D2vKcli/4+MRWGMhVztrhjBC6YMbysi0f3vmGwwozteRdy1BJKCSlNRfC31Ykiwg4pOHCFDggrrw4NLtPiFAEwPHlTAe6Tkn5xwY0XPArA/+CwFvj8zFIVsN174pj3CZ+vY9yvCGy78gVMSZSwk8Zjgs50e4XMU+JYeSXLDJy1gA7gCAuyL0b8DWgvgXNOyuQo49xtOmBf9jLw2Mr1arRsFmlm2vgu3g0Ol19kkPbO6NSoMTBMXPhxWHzw3+uuYX3t88JhyQT7okLtb38SNTej7eXMtiiXOgJdWJGZL8TKNN3Q2qm6TagqmjgZS2AakhgppRhOSqqZpXJBeE1PV371P02zsiFr29RBVneA7jFhGceGG/Jvh9K0FA7xvGldhFM1JRGjRFgJgA7wSIFbkq+LH5Smj5BnXWhiL2bwlj8W83qJsqB7fbRJ6raLrOg6YonPQtaC5sN1u0O11YTdUj/AvlD5/DF4fpcHBB8gLj4hx85Hbi9wWAf5H0QGG3hQAVQeg+Ol0MAM3dnGnDR1cM6YxVMeTe1etMhzbhqVD9zjDZ6bAvQOG9+ukTb8YrmG4Y/WpAzV+UPDHsf8t36XMvY0IpSm38TXI8TZkPyvXT7mmfrNFabEViisKO1mIeUd/VguVVnmxbFaUZLujeKcko57osBgCQ3SNJVZ7EfZrO6mqTiqY2xrIpYziCLHwpb7/qtODeMMjCfNAtdxoqKsc2g1V7kcjWpmV/dLmgxqeFgSNB+0xUB5U0OIw7JOYIhn4qZgCVaa4g2aK5cJ2mGKZjQe1yBQ1Uhw/U1yVKdIB/qLK5VRRw7VBUyVXtYyUCWUBWZMYRbel9DQyWV9mpwMuqQc4g+bSSUyxVabcfDHlo0xRdy7Gz5QbzQL1ZVQ+TBU1Rh0/VRwNVeCgqTKGAAm2ESD175fUWGANigXQqSvPMEbAAjX4+YEjjNLx5jBBSeRekphMBb8H4mdRkQlBMdImkVz7bLtfhFQ/95FyiIo8r/vYo+9lRZy/Sb0CCALNMcwbG6QLt7NN6n7R/oy+ItTYfjnxBmL7FWexeTp8se2fdmf71SO7T8AVU8OVYfkJo+TKpQcvKe8DO9GJLBnwVL13zIkU1Cvp9lRlm5Z6J1HI0OxiDJxCdlsUsrqjkHRCRk6hlvZUDV1UO6wdetjghn1xVNtka3fxjHXpDv0JJNOSxXibLEeICd4jZksk0x0DTQdFslFaMtVxeggjnDISq7mQMlIO8BZxLXLVJZiG/G15GqSUPkqReUqws8Xyqy5thp8IchrBz13xayfEsRtY61Imu/tyo8N15EPe7JlrTztTXDom1SluDTt9RMmcvXSKG91NcfvSpIBL15F3nA5JMqO2ivR2AKxzVobtEY+BZBLC6vejZJPwVaToUBf53w5AN4arrg7H8zfNhet0tTVmOH2uG5ceuJ8Rf5w7PTuMPxrz8rI5Doc0paHZ0pQ+fELz4SnNi+XX5vvq5Tf78PZ/</diagram></mxfile>"> +<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="631px" height="664px" viewBox="-0.5 -0.5 631 664" content="<mxfile><diagram id="LEemh8klBKRIXfq5bYu_" name="Page-1">7VxLc6M4EP41uW4JxMM+TuxkNofUZidbtZOjBmTDBiOvEImzv34FSOYhObYJYEiFQ4IaBNLXn1rdLeEruNjsvlO0De6Jj6MrE/i7K7i8Mk0DAIv/yyRvhcSZw0KwpqEvbioFj+F/WNYU0jT0cVK7kRESsXBbF3okjrHHajJEKXmt37YiUf2tW7TGiuDRQ5Eq/Tv0WVBIZzYo5b/jcB3IN/MeF1c2SN4sBEmAfPJaEcGbK7ighLDibLNb4CgDT+JS1Ls9cHXfMIpjdkoFs6jwgqJU9G0RoJj33gT3KOb92GQPKprK3mT/eau32emWEg8nHMzr1yBk+HGLvEz8yrXOZQHbRLxk8NNfyHteU5LG/h8pi8IYC7naXNGDF0wZ3lVEovnfMdlgRt/4LeKqJZAUVJqJ4mupF0OCHVR04ggZElRY7x9cosVPBGB68KAC3gMl/2SEmyp6FoDDwWcp8P2Zoihkb9OFbzYgfLaOfb8ivOHCHzghUcpCEk8JPtsZED5Hge/RI9vM8EkL2AAuhwD7ovdHQOsAnEtaNlcB527DCfOiH5GXRmZQqzVXoLlO17fhbnSoDDqapGdWt0a5gWniwrvD6p3nRn8d83OPdx5TLsg6HXJ365u4sAl9P6uuRbHEGfDSisTsUbxM4w2djarbpJqCqaOBFHYBqaFCmtItSVTTNC1IL4mp6u/eJUk6dUQt+3KIqk7wLUYspTh3Q/5NcfLehAGOm8ZVGEULEhGa14UA2ACvBIgV+So/uDxhlDzjWg1jeb3oyGMxLzcpG6rHd7MNvU7RdR0HzNA56FrQXNpuP+gOOrEbqkf4F0qePwavj5Jg7wNkhQfEuPnI7EVmiwD/o+gAQ28GgKoDkB86HVyDuZ1f6UIHl4xpDNXx5N5VpwzHtmHp0D3M8GtT4N4Dw4d10mZfDNcw3LGG1IEaPyj449j/lmUpM28jQknCbXwNcrwL2c/K+VOmqd9sUVruhOLywpssxLyhP6uFSq2sWFbLS7LeQbwTklJPNFh0gSG6xhKrQoT9WiZV1UkFc1sDuZRRHCEWvtTzrzo9iDc8kDALVMtEQ13l0G6osuiNqGVW8qXNBzU8LQgaDyowUB6U02Lf7ZOYIhn4qZgCVaa4o2aK5cJumGKZjQd1yBQ1Upw+U1yVKdIB/qJKe6qo4dqoqZKpWkbKhLKArEmMoptSehqZrC+z0wOX1AWcUXPpJKbYKlPmX0z5KFPUzMX0mTLXTFBfRuXDVFFj1OlTxdFQBY6aKlMIkGAXAdLwfkmNBdaoWACduvIMYwIsUIOfHzjCKJnuHiYoiTzIJiZTwe+e+GmU74SgGGk3kVx6bXtYhFQ/94FyiPJ9XnexR4/tijg/Sb0CCALNMsw7CdKl21uSeli0P6OvCDW2Xw68kdh+xVlsrg63tv2z/my/umT3CbhiargyLj9hklxpu/CS8DawE53IkgFP1WuHnEhBvZJuT1W2aal3EoUMTRZj5BSyu6KQ1R+FpBMycQp1lFM1dFHtuDL0sMENu3VU22Rrf/GM1TZDfwLJtGQx3ifLAWKCY8TsiGS6ZaDZqEg2SUumOk73YYQTRmJ1L6SMlAO8Q1yLXHVbTEP+tmwbpJQ+SJF5SrCzw/KrLu0OPxHkNIKf2/zoJsSxG1jrtkz29+VGj/PIh7zZM+eeboa4dEyqQ9wa9/YRZeds2yFu9DfE7babAtrOI0ecDkkyozaLDLYArHNWxu0RT4FkEsLq96Nks+WzSN6gPvZ/OwDNDVedHQ7v3zSXrtNXasxwhpw32i64nxF/nDs8Lxd/aIf0yFfVzI6G9P4Tmh7mjS5yar2tqrXxb7SUaJWydS9Jpr0Zl2RqmpTWcUZzomlNJl4sf7qguL38AQh48z8=</diagram></mxfile>"> <defs/> <g> <g> @@ -496,6 +496,10 @@ <path d="M 570 198.88 L 566.5 191.88 L 570 193.63 L 573.5 191.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> <path d="M 501.12 70 L 508.12 66.5 L 506.37 70 L 508.12 73.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> </g> + <g> + <path d="M 120 312 L 150 312 Q 160 312 160 322 L 160 383 Q 160 393 170 393 L 193.63 393" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + <path d="M 198.88 393 L 191.88 396.5 L 193.63 393 L 191.88 389.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> + </g> </g> <switch> <g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/> diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index a77a0ad593d..c692b19556a 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -73,19 +73,13 @@ Org Chart and Main Platform Management Plan Responsibilities Steering Committees ^^^^^^^^^^^^^^^^^^^ -Steering of the project is done with the help of *Committees*. +Steering of the project is done with the help of *Lead Circles*. -.. _PLCMBRS: https://github.com/eclipse-score/score/blob/main/.github/CODEOWNERS -.. _PLCSPK: https://github.com/eclipse-score/score/blob/main/.github/CODEOWNERS -.. _PLCMM: https://github.com/eclipse-score/score/wiki/PLCM -.. _PLCSLC: https://sdvworkinggroup.slack.com/archives/PLC -.. _PLCBKL: https://github.com/orgs/eclipse-score/projects/PLC - -.. _TLCMBRS: https://github.com/eclipse-score/score/blob/main/.github/CODEOWNERS -.. _TLCSPK: https://github.com/eclipse-score/score/blob/main/.github/CODEOWNERS -.. _TLCMM: https://github.com/eclipse-score/score/wiki/TLCM -.. _TLCSLC: https://sdvworkinggroup.slack.com/archives/C085F44D2CS -.. _TLCBKL: https://github.com/orgs/eclipse-score/projects/3 +.. _PLCTLCMBRS: https://github.com/eclipse-score/score/blob/main/.github/CODEOWNERS +.. _PLCTLCSPK: https://github.com/eclipse-score/score/blob/main/.github/CODEOWNERS +.. _PLCTLCMM: https://github.com/eclipse-score/score/wiki/TLCM +.. _PLCTLCSLC: https://sdvworkinggroup.slack.com/archives/C085F44D2CS +.. _PLCTLCBKL: https://github.com/orgs/eclipse-score/projects/3 .. list-table:: Steering :header-rows: 1 @@ -98,45 +92,29 @@ Steering of the project is done with the help of *Committees*. - Slack Channel - Backlog - Owned Repository - * - .. _pmp_pm_plc: - **PLC** - - **Project** + * - .. _pmp_pm_plctlc: + + **PLC/TLC** + - **Project/Technical** - **Lead** - **Circle** - **-----------** - **-----------** - **-----------------------** - * - - Decisions about strategical topics - Review and approval of contributions, e.g. Feature Requests, which add or modify features - Project Management + - High-level project control and coordination between multiple software modules. + - Deciding of adding / removing Repositories - Planning and Approval of Releases - Escalation instance - - `PLCMBRS`_ - - `PLCSPK`_ - - `PLCMM`_ - - `PLCSLC`_ - - `PLCBKL`_ - - n.a. - * - .. _pmp_pm_tlc: - - **TLC** - - **Technical** - - **Lead** - - **Circle** - - **-----------** - - **-----------** - - **-----------------------** - * - - Review and approval of contributions, e.g. Feature Requests, which add or modify S-CORE platform features. - - Project management of the platform development, e.g. creation of the roadmap. - - High-level project control and coordination between multiple software modules. - - Escalation instance for software module project leads and committers. - - `TLCMBRS`_ - - `TLCSPK`_ - - `TLCMM`_ - - `TLCSLC`_ - - `TLCBKL`_ + + - `PLCTLCMBRS`_ + - `PLCTLCSPK`_ + - `PLCTLCMM`_ + - `PLCTLCSLC`_ + - `PLCTLCBKL`_ - - https://github.com/eclipse-score/score .. _pmp_pm_communities: @@ -638,7 +616,7 @@ within the following :ref:`Module Folder Structure <module_folder_structure>`. Codeowners ^^^^^^^^^^ -While creating a new repository, :ref:`Technical Leads <pmp_pm_tlc>` nominate initial `CODEOWNERS <https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners#codeowners-and-branch-protection>`_, +While creating a new repository, :ref:`Project / Technical Leads <pmp_pm_plctlc>` nominate initial `CODEOWNERS <https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners#codeowners-and-branch-protection>`_, whose review is mandatory for merging PRs to the repository and who are at the end allowed to merge PRs to the repository. Possible members are software developers, who @@ -696,8 +674,8 @@ Architectural Issues A *Feature Request* represents an independent work package used to describe and track a high-level request for the project. *Feature Request* work packages can be linked to -other work packages, but they must not be treated as parent work packages. They are in the responsibility of the -:ref:`Architecture Community <pmp_pm_arc>` and the issues are part of the :ref:`Root Repository <pmp_pm_root_repository>`. +other work packages, but they must not be treated as parent work packages. *Feature Request* covers new Features as well as significant modifications of existing Features. +They are in the responsibility of the :ref:`Architecture Community <pmp_pm_arc>`, shall aligned with :ref:`Project / Technical Lead Circle <pmp_pm_plctlc>` and the issues are part of the :ref:`Root Repository <pmp_pm_root_repository>`. `About Features <https://eclipse-score.github.io/score/main/features/index.html>`_ @@ -707,8 +685,8 @@ other work packages, but they must not be treated as parent work packages. They **Component Request** -A *Component Request* represents an independent work package used to describe modifications inside a *Feature*. -*Component Request* work packages can be linked to other work packages, but they must not be treated as parent work packages. They are in the responsibility of the +A *Component Request* represents an independent work package used to describe modifications inside a *Feature*, either adding new components or modifying existing ones. +*Component Request* work packages can be linked to other work packages, but they must not be treated as parent work packages. They shall be discussed with :ref:`Architecture Community <pmp_pm_arc>` and the issues are part of the :ref:`Root Repository <pmp_pm_root_repository>`. `About Components <https://eclipse-score.github.io/score/main/features/index.html>`_ @@ -727,7 +705,7 @@ A *Product Increment* represents the highest level in the work package hierarchy cannot be linked as a child of another issue. If you need to group multiple *Product Increment* work packages, labels have to be used. One *Product Increment* is the planning element for a version of a :ref:`Module <modules>`. A *Product Increment* can have multiple *Epic* work packages as children. *Product Increments* are owned by -:ref:`Technical Lead Circle <pmp_pm_tlc>` and are part of the :ref:`Root Repository <pmp_pm_root_repository>`. +:ref:`Project / Technical Lead Circle <pmp_pm_plctlc>` and are part of the :ref:`Root Repository <pmp_pm_root_repository>`. `Product Increment issue template <https://github.com/eclipse-score/.github/.github/ISSUE_TEMPLATE/2_ProductIncrement.yml>`_ @@ -889,7 +867,7 @@ Planning of Work Generally, every team is responsible for planning its work within its own plan with the help of its :ref:`GitHub Project <pmp_pm_gh_projects>` filled with :ref:`Epics <pmp_pm_epic>`, :ref:`Tasks <pmp_pm_task>` and :ref:`Bugs <pmp_pm_bug>`. The planning of :ref:`Feature Requests <pmp_pm_feature_request>` and :ref:`Component Requests <pmp_pm_component_request>` is in the responsibility of the :ref:`Architects <pmp_pm_arc>`, -whereas the overall top-down plan is in the responsibility of the :ref:`Technical Lead Circle <pmp_pm_tlc>` with the help of :ref:`Product Increments <pmp_pm_product_increment>`, +whereas the overall top-down plan is in the responsibility of the :ref:`Project / Technical Lead Circle <pmp_pm_plctlc>` with the help of :ref:`Product Increments <pmp_pm_product_increment>`, :ref:`Milestones <pmp_pm_milestone>` and :ref:`Releases <pmp_pm_release>`. .. image:: _assets/score_project_management_process_issue_overview.drawio.svg @@ -902,7 +880,7 @@ whereas the overall top-down plan is in the responsibility of the :ref:`Technica Tracking Progress ^^^^^^^^^^^^^^^^^ -The :ref:`Technical Lead Circle <pmp_pm_tlc>` regularly monitors the status of the work for upcoming Milestones and Releases in https://github.com/orgs/eclipse-score/projects/17/ based on +The :ref:`Project / Technical Lead Circle <pmp_pm_plctlc>` regularly monitors the status of the work for upcoming Milestones and Releases in https://github.com/orgs/eclipse-score/projects/17/ based on :ref:`Product Increments <pmp_pm_product_increment>`.