<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL"
    xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
    xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
    xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
    xmlns:bioc="http://bpmn.io/schema/bpmn/biocolor/1.0"
    xmlns:color="http://www.omg.org/spec/BPMN/non-normative/color/1.0"
    xmlns:custom="http://custom/ns"
    xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" camunda:diagramRelationId="065ac0e5-e32d-4a69-96b1-8b0b7ef10520">
    <bpmn:collaboration id="Collaboration_0yrcuf2">
        <bpmn:participant id="Participant_1libt3e" name="listHierarchies" processRef="Process_9e812fe8-dc55-4ae3-acd7-0a890f5f675d" />
    </bpmn:collaboration>
    <bpmn:process id="Process_9e812fe8-dc55-4ae3-acd7-0a890f5f675d" isExecutable="true">
        <bpmn:laneSet id="LaneSet_0b6ai42">
            <bpmn:lane id="Lane_06b21u0" name="authenticated" custom:rule="[&#34;fn&#34;,[&#34;&#38;&#34;,&#34;args&#34;],true]">
                <bpmn:flowNodeRef>StartEvent_1</bpmn:flowNodeRef>
                <bpmn:flowNodeRef>Activity_0ezazka</bpmn:flowNodeRef>
                <bpmn:flowNodeRef>Event_18vsnl1</bpmn:flowNodeRef>
                <bpmn:flowNodeRef>Activity_1r35oz7</bpmn:flowNodeRef>
                <bpmn:flowNodeRef>Activity_1dxd78s</bpmn:flowNodeRef>
                <bpmn:flowNodeRef>Activity_10snt2r</bpmn:flowNodeRef>
                <bpmn:flowNodeRef>Activity_12qmsou</bpmn:flowNodeRef>
                <bpmn:flowNodeRef>Activity_1cn06ly</bpmn:flowNodeRef>
                <bpmn:flowNodeRef>Activity_00knxhx</bpmn:flowNodeRef>
                <bpmn:flowNodeRef>Gateway_00k0jf1</bpmn:flowNodeRef>
                <bpmn:flowNodeRef>Activity_0gx1q15</bpmn:flowNodeRef>
                <bpmn:flowNodeRef>Gateway_0s4h0t0</bpmn:flowNodeRef>
                <bpmn:flowNodeRef>Activity_14aiamf</bpmn:flowNodeRef>
            </bpmn:lane>
        </bpmn:laneSet>
        <bpmn:startEvent id="StartEvent_1" name="START LIST HIERARCHIES" custom:lane_id="authenticated" custom:parameters="{ &#34;input_schema&#34; : {} }">
            <bpmn:outgoing>Flow_0wjwdft</bpmn:outgoing>
        </bpmn:startEvent>
        <bpmn:sequenceFlow id="Flow_1jhmo1m" sourceRef="Gateway_0s4h0t0" targetRef="Activity_0gx1q15" />
        <bpmn:sequenceFlow id="Flow_0er0y67" name="true" sourceRef="Gateway_0s4h0t0" targetRef="Activity_00knxhx" />
        <bpmn:sequenceFlow id="Flow_0kkf037" sourceRef="Activity_0gx1q15" targetRef="Gateway_00k0jf1" />
        <bpmn:sequenceFlow id="Flow_0wjwdft" sourceRef="StartEvent_1" targetRef="Activity_14aiamf" />
        <bpmn:sequenceFlow id="Flow_115hzng" sourceRef="Activity_14aiamf" targetRef="Gateway_0s4h0t0" />
        <bpmn:userTask id="Activity_0ezazka" name="UPDATE HIERARCHIES" custom:lane_id="authenticated" custom:parameters="{ &#34;input&#34;: { &#34;hierarchies&#34;: { &#34;$js&#34;: &#34;({bag, result})=&#62; bag.hierarchies.map((hierarchy) =&#62; {\n hierarchy[\&#34;quantidade\&#34;] = bag.members.filter(\n        (member) =&#62; member.hierarchy_id === hierarchy.id\n    ).length;\n    const leader = result.profiles.find(prof =&#62; prof.actor_id === bag.members.find((member) =&#62; member.hierarchy_id === hierarchy.id).parent_id)\n    hierarchy[\&#34;leader\&#34;] = leader ? leader.name + &#39; &#39; + leader.lastname + &#39; - &#39; + leader.email : \&#34;Não possui líder\&#34;\n return hierarchy;\n});&#34; } }, &#34;action&#34;: &#34;UPDATE_HIERARCHIES&#34; }">
            <bpmn:incoming>Flow_04wgeui</bpmn:incoming>
            <bpmn:outgoing>Flow_0lx4qb4</bpmn:outgoing>
        </bpmn:userTask>
        <bpmn:endEvent id="Event_18vsnl1" name="FINISH LIST HIERARCHIES">
            <bpmn:incoming>Flow_0lx4qb4</bpmn:incoming>
        </bpmn:endEvent>
        <bpmn:sequenceFlow id="Flow_03tlg2m" name="true" sourceRef="Gateway_00k0jf1" targetRef="Activity_1cn06ly" />
        <bpmn:sequenceFlow id="Flow_0hgamag" sourceRef="Gateway_00k0jf1" targetRef="Activity_00knxhx" />
        <bpmn:sequenceFlow id="Flow_1iigcol" sourceRef="Activity_00knxhx" targetRef="Activity_12qmsou" />
        <bpmn:sequenceFlow id="Flow_1puh6pz" sourceRef="Activity_1cn06ly" targetRef="Activity_12qmsou" />
        <bpmn:sequenceFlow id="Flow_0axtvel" sourceRef="Activity_12qmsou" targetRef="Activity_10snt2r" />
        <bpmn:sequenceFlow id="Flow_1bojs9d" sourceRef="Activity_10snt2r" targetRef="Activity_1dxd78s" />
        <bpmn:sequenceFlow id="Flow_07mnm2o" sourceRef="Activity_1dxd78s" targetRef="Activity_1r35oz7" />
        <bpmn:sequenceFlow id="Flow_04wgeui" sourceRef="Activity_1r35oz7" targetRef="Activity_0ezazka" />
        <bpmn:sequenceFlow id="Flow_0lx4qb4" sourceRef="Activity_0ezazka" targetRef="Event_18vsnl1" />
        <bpmn:serviceTask id="Activity_1r35oz7" name="GET PROFILE" custom:lane_id="authenticated" custom:category="getProfile" custom:parameters="{ &#34;input&#34;: { &#34;account_id&#34;: { &#34;$ref&#34;: &#34;actor_data.account_id&#34; } } }">
            <bpmn:incoming>Flow_07mnm2o</bpmn:incoming>
            <bpmn:outgoing>Flow_04wgeui</bpmn:outgoing>
        </bpmn:serviceTask>
        <bpmn:serviceTask id="Activity_1dxd78s" name="BAG MEMBERS" custom:lane_id="authenticated" custom:category="setToBag" custom:parameters="{ &#34;input&#34;: { &#34;members&#34;: { &#34;$ref&#34;: &#34;result.members&#34; } } }">
            <bpmn:incoming>Flow_1bojs9d</bpmn:incoming>
            <bpmn:outgoing>Flow_07mnm2o</bpmn:outgoing>
        </bpmn:serviceTask>
        <bpmn:serviceTask id="Activity_10snt2r" name="GET MEMBER" custom:lane_id="authenticated" custom:category="getMember" custom:parameters="{ &#34;input&#34;: { &#34;account_id&#34;: { &#34;$ref&#34;: &#34;bag.account_id&#34; } } }">
            <bpmn:incoming>Flow_0axtvel</bpmn:incoming>
            <bpmn:outgoing>Flow_1bojs9d</bpmn:outgoing>
        </bpmn:serviceTask>
        <bpmn:serviceTask id="Activity_12qmsou" name="BAG HIERARCHIES" custom:lane_id="authenticated" custom:category="setToBag" custom:parameters="{ &#34;input&#34;: { &#34;hierarchies&#34;: { &#34;$js&#34;: &#34;({result}) =&#62; result.hierarchies.filter(h =&#62; h.type !== &#39;global&#39;)&#34; } } }">
            <bpmn:incoming>Flow_1puh6pz</bpmn:incoming>
            <bpmn:incoming>Flow_1iigcol</bpmn:incoming>
            <bpmn:outgoing>Flow_0axtvel</bpmn:outgoing>
        </bpmn:serviceTask>
        <bpmn:serviceTask id="Activity_1cn06ly" name="GET HIERARCHY BY ACTOR ID" custom:lane_id="authenticated" custom:category="getHierarchyByActorID" custom:parameters="{ &#34;input&#34;: { &#34;actor_id&#34;: { &#34;$ref&#34;: &#34;actor_data.actor_id&#34; }, &#34;account_id&#34;: { &#34;$ref&#34;: &#34;actor_data.account_id&#34; } } }">
            <bpmn:incoming>Flow_03tlg2m</bpmn:incoming>
            <bpmn:outgoing>Flow_1puh6pz</bpmn:outgoing>
        </bpmn:serviceTask>
        <bpmn:serviceTask id="Activity_00knxhx" name="GET HIERARCHY BY ACCOUNT ID" custom:lane_id="authenticated" custom:category="getHierarchyByAccountID" custom:parameters="{ &#34;input&#34;: { &#34;account_id&#34;: { &#34;$ref&#34;: &#34;actor_data.account_id&#34; } } }">
            <bpmn:incoming>Flow_0hgamag</bpmn:incoming>
            <bpmn:incoming>Flow_0er0y67</bpmn:incoming>
            <bpmn:outgoing>Flow_1iigcol</bpmn:outgoing>
        </bpmn:serviceTask>
        <bpmn:exclusiveGateway id="Gateway_00k0jf1" name="TEAM IS RESTRICTED" default="Flow_0hgamag" custom:lane_id="authenticated" custom:parameters="{ &#34;input&#34;: { &#34;decision_key&#34;: { &#34;$js&#34;: &#34;({result,actor_data}) =&#62; result.accounts.find(acc =&#62; acc.id === actor_data.account_id).configuration&#34; } } }">
            <bpmn:incoming>Flow_0kkf037</bpmn:incoming>
            <bpmn:outgoing>Flow_0hgamag</bpmn:outgoing>
            <bpmn:outgoing>Flow_03tlg2m</bpmn:outgoing>
        </bpmn:exclusiveGateway>
        <bpmn:serviceTask id="Activity_0gx1q15" name="GET ACCOUNT" custom:lane_id="authenticated" custom:category="getAccount" custom:parameters="{ &#10;    &#34;input&#34;: { &#10;        &#34;account_id&#34;: { &#34;$ref&#34;: &#34;actor_data.account_id&#34; } &#10;        &#10;    } &#10;}">
            <bpmn:incoming>Flow_1jhmo1m</bpmn:incoming>
            <bpmn:outgoing>Flow_0kkf037</bpmn:outgoing>
        </bpmn:serviceTask>
        <bpmn:exclusiveGateway id="Gateway_0s4h0t0" name="USER IS ADMIN" default="Flow_1jhmo1m" custom:lane_id="authenticated" custom:parameters="{ &#34;input&#34;: { &#34;decision_key&#34;: { &#34;$js&#34;: &#34;({actor_data}) =&#62; actor_data.claims.includes(&#39;admin&#39;)&#34; } } }">
            <bpmn:incoming>Flow_115hzng</bpmn:incoming>
            <bpmn:outgoing>Flow_1jhmo1m</bpmn:outgoing>
            <bpmn:outgoing>Flow_0er0y67</bpmn:outgoing>
        </bpmn:exclusiveGateway>
        <bpmn:serviceTask id="Activity_14aiamf" name="CONFIG" custom:lane_id="authenticated" custom:category="setToBag" custom:parameters="">
            <bpmn:incoming>Flow_0wjwdft</bpmn:incoming>
            <bpmn:outgoing>Flow_115hzng</bpmn:outgoing>
        </bpmn:serviceTask>
    </bpmn:process>
    <bpmndi:BPMNDiagram id="BPMNDiagram_1">
        <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Collaboration_0yrcuf2">
            <bpmndi:BPMNShape id="Participant_1libt3e_di" bpmnElement="Participant_1libt3e" isHorizontal="true">
                <dc:Bounds x="-310" y="-130" width="1380" height="300" />
            </bpmndi:BPMNShape>
            <bpmndi:BPMNShape id="Lane_06b21u0_di" bpmnElement="Lane_06b21u0" isHorizontal="true">
                <dc:Bounds x="-280" y="-130" width="1350" height="300" />
            </bpmndi:BPMNShape>
            <bpmndi:BPMNEdge id="Flow_0lx4qb4_di" bpmnElement="Flow_0lx4qb4">
                <di:waypoint x="960" y="-50" />
                <di:waypoint x="1002" y="-50" />
            </bpmndi:BPMNEdge>
            <bpmndi:BPMNEdge id="Flow_04wgeui_di" bpmnElement="Flow_04wgeui">
                <di:waypoint x="820" y="-50" />
                <di:waypoint x="860" y="-50" />
            </bpmndi:BPMNEdge>
            <bpmndi:BPMNEdge id="Flow_07mnm2o_di" bpmnElement="Flow_07mnm2o">
                <di:waypoint x="680" y="-50" />
                <di:waypoint x="720" y="-50" />
            </bpmndi:BPMNEdge>
            <bpmndi:BPMNEdge id="Flow_1bojs9d_di" bpmnElement="Flow_1bojs9d">
                <di:waypoint x="540" y="-50" />
                <di:waypoint x="580" y="-50" />
            </bpmndi:BPMNEdge>
            <bpmndi:BPMNEdge id="Flow_0axtvel_di" bpmnElement="Flow_0axtvel">
                <di:waypoint x="390" y="-50" />
                <di:waypoint x="440" y="-50" />
            </bpmndi:BPMNEdge>
            <bpmndi:BPMNEdge id="Flow_1puh6pz_di" bpmnElement="Flow_1puh6pz">
                <di:waypoint x="340" y="30" />
                <di:waypoint x="340" y="-10" />
            </bpmndi:BPMNEdge>
            <bpmndi:BPMNEdge id="Flow_1iigcol_di" bpmnElement="Flow_1iigcol">
                <di:waypoint x="230" y="-50" />
                <di:waypoint x="290" y="-50" />
            </bpmndi:BPMNEdge>
            <bpmndi:BPMNEdge id="Flow_0hgamag_di" bpmnElement="Flow_0hgamag">
                <di:waypoint x="180" y="45" />
                <di:waypoint x="180" y="-10" />
            </bpmndi:BPMNEdge>
            <bpmndi:BPMNEdge id="Flow_03tlg2m_di" bpmnElement="Flow_03tlg2m">
                <di:waypoint x="205" y="70" />
                <di:waypoint x="290" y="70" />
                <bpmndi:BPMNLabel>
                    <dc:Bounds x="246" y="53" width="20" height="14" />
                </bpmndi:BPMNLabel>
            </bpmndi:BPMNEdge>
            <bpmndi:BPMNEdge id="Flow_115hzng_di" bpmnElement="Flow_115hzng">
                <di:waypoint x="-40" y="-50" />
                <di:waypoint x="5" y="-50" />
            </bpmndi:BPMNEdge>
            <bpmndi:BPMNEdge id="Flow_0wjwdft_di" bpmnElement="Flow_0wjwdft">
                <di:waypoint x="-192" y="-50" />
                <di:waypoint x="-140" y="-50" />
            </bpmndi:BPMNEdge>
            <bpmndi:BPMNEdge id="Flow_0kkf037_di" bpmnElement="Flow_0kkf037">
                <di:waypoint x="80" y="70" />
                <di:waypoint x="155" y="70" />
            </bpmndi:BPMNEdge>
            <bpmndi:BPMNEdge id="Flow_0er0y67_di" bpmnElement="Flow_0er0y67">
                <di:waypoint x="55" y="-50" />
                <di:waypoint x="130" y="-50" />
                <bpmndi:BPMNLabel>
                    <dc:Bounds x="90" y="-68" width="20" height="14" />
                </bpmndi:BPMNLabel>
            </bpmndi:BPMNEdge>
            <bpmndi:BPMNEdge id="Flow_1jhmo1m_di" bpmnElement="Flow_1jhmo1m">
                <di:waypoint x="30" y="-25" />
                <di:waypoint x="30" y="30" />
            </bpmndi:BPMNEdge>
            <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
                <dc:Bounds x="-228" y="-68" width="36" height="36" />
                <bpmndi:BPMNLabel>
                    <dc:Bounds x="-248" y="-24" width="76" height="27" />
                </bpmndi:BPMNLabel>
            </bpmndi:BPMNShape>
            <bpmndi:BPMNShape id="Activity_1ytihne_di" bpmnElement="Activity_0ezazka" bioc:stroke="#1e88e5" bioc:fill="#bbdefb" color:background-color="#bbdefb" color:border-color="#1e88e5">
                <dc:Bounds x="860" y="-90" width="100" height="80" />
            </bpmndi:BPMNShape>
            <bpmndi:BPMNShape id="Event_18vsnl1_di" bpmnElement="Event_18vsnl1">
                <dc:Bounds x="1002" y="-68" width="36" height="36" />
                <bpmndi:BPMNLabel>
                    <dc:Bounds x="984" y="-25" width="72" height="27" />
                </bpmndi:BPMNLabel>
            </bpmndi:BPMNShape>
            <bpmndi:BPMNShape id="Activity_1ssdxp0_di" bpmnElement="Activity_1r35oz7">
                <dc:Bounds x="720" y="-90" width="100" height="80" />
            </bpmndi:BPMNShape>
            <bpmndi:BPMNShape id="Activity_0xcgl25_di" bpmnElement="Activity_1dxd78s" bioc:stroke="#fb8c00" bioc:fill="#ffe0b2" color:background-color="#ffe0b2" color:border-color="#fb8c00">
                <dc:Bounds x="580" y="-90" width="100" height="80" />
            </bpmndi:BPMNShape>
            <bpmndi:BPMNShape id="Activity_0pralz2_di" bpmnElement="Activity_10snt2r">
                <dc:Bounds x="440" y="-90" width="100" height="80" />
            </bpmndi:BPMNShape>
            <bpmndi:BPMNShape id="Activity_1yvdkr4_di" bpmnElement="Activity_12qmsou" bioc:stroke="#fb8c00" bioc:fill="#ffe0b2" color:background-color="#ffe0b2" color:border-color="#fb8c00">
                <dc:Bounds x="290" y="-90" width="100" height="80" />
            </bpmndi:BPMNShape>
            <bpmndi:BPMNShape id="Activity_0ink6u9_di" bpmnElement="Activity_1cn06ly">
                <dc:Bounds x="290" y="30" width="100" height="80" />
            </bpmndi:BPMNShape>
            <bpmndi:BPMNShape id="Activity_0dobily_di" bpmnElement="Activity_00knxhx">
                <dc:Bounds x="130" y="-90" width="100" height="80" />
            </bpmndi:BPMNShape>
            <bpmndi:BPMNShape id="Gateway_00k0jf1_di" bpmnElement="Gateway_00k0jf1" isMarkerVisible="true">
                <dc:Bounds x="155" y="45" width="50" height="50" />
                <bpmndi:BPMNLabel>
                    <dc:Bounds x="134" y="106" width="71" height="27" />
                </bpmndi:BPMNLabel>
            </bpmndi:BPMNShape>
            <bpmndi:BPMNShape id="Activity_0nbeawn_di" bpmnElement="Activity_0gx1q15">
                <dc:Bounds x="-20" y="30" width="100" height="80" />
            </bpmndi:BPMNShape>
            <bpmndi:BPMNShape id="Gateway_0s4h0t0_di" bpmnElement="Gateway_0s4h0t0" isMarkerVisible="true">
                <dc:Bounds x="5" y="-75" width="50" height="50" />
                <bpmndi:BPMNLabel>
                    <dc:Bounds x="-10" y="-97" width="82" height="14" />
                </bpmndi:BPMNLabel>
            </bpmndi:BPMNShape>
            <bpmndi:BPMNShape id="Activity_1g6rjkr_di" bpmnElement="Activity_14aiamf" bioc:stroke="#fb8c00" bioc:fill="#ffe0b2" color:background-color="#ffe0b2" color:border-color="#fb8c00">
                <dc:Bounds x="-140" y="-90" width="100" height="80" />
            </bpmndi:BPMNShape>
        </bpmndi:BPMNPlane>
    </bpmndi:BPMNDiagram>
</bpmn:definitions>