flowchart TD
    %% Flow: if_inside_while_flow

    handler_even[handler_even]
    handler_finalize[handler_finalize]
    handler_init[handler_init]
    handler_odd[handler_odd]
    router_if_inside_while_flow_if_p_i_2_eq_0{{"router_if_inside_while_flow_if_p_i_2_eq_0<br/><br/>p['i'] += 1"}}
    router_if_inside_while_flow_seq_set_i{{"router_if_inside_while_flow_seq_set_i<br/><br/>p['i'] = 0"}}
    router_if_inside_while_flow_while_i_lt_max_iterations{{router_if_inside_while_flow_while_i_lt_max_iterations}}
    start_if_inside_while_flow([start_if_inside_while_flow])
    __end__((( )))

    start_if_inside_while_flow --> handler_init
    handler_init --> router_if_inside_while_flow_seq_set_i
    router_if_inside_while_flow_if_p_i_2_eq_0 -->|"p['i'] % 2 == 0"| handler_even
    router_if_inside_while_flow_if_p_i_2_eq_0 -->|"else"| handler_odd
    router_if_inside_while_flow_while_i_lt_max_iterations -->|"p['i'] < p['max_iterations']"| router_if_inside_while_flow_if_p_i_2_eq_0
    router_if_inside_while_flow_while_i_lt_max_iterations -->|"else"| handler_finalize
    router_if_inside_while_flow_seq_set_i --> router_if_inside_while_flow_while_i_lt_max_iterations
    handler_even --> router_if_inside_while_flow_while_i_lt_max_iterations
    handler_odd --> router_if_inside_while_flow_while_i_lt_max_iterations
    handler_finalize --> __end__

    classDef start fill:#98FB98,stroke:#333
    classDef endnode fill:#FFA07A,stroke:#333
    classDef router fill:#F5DEB3,stroke:#333
    classDef handler fill:#ADD8E6,stroke:#333
    classDef endpoint fill:#000,stroke:#333,color:#fff
    class start_if_inside_while_flow start
    class handler_finalize endnode
    class router_if_inside_while_flow_if_p_i_2_eq_0,router_if_inside_while_flow_seq_set_i,router_if_inside_while_flow_while_i_lt_max_iterations router
    class handler_even,handler_init,handler_odd handler
    class __end__ endpoint
    linkStyle 2,4 stroke:#2E8B57
    linkStyle 3,5 stroke:#E07040