(
(let $1 (DataType 'Int32))
(let $2 '('"payload" $1))
(let $3 '('"ts" (OptionalType $1)))
(let $4 (DataType 'String))
(let $5 '('"user" (OptionalType $4)))
(let $6 (StructType $2 $3 $5))
(let $7 '('('"_logical_id" '7763) '('"_id" '"27c062c6-35fa6851-bee26c95-9f51040d") '('"_wide_channels" $6)))
(let $8 (DqPhyStage '() (lambda '() (block '(
  (let $31 '@@["StructType";[["user";["OptionalType";["DataType";"String"]]];["ts";["OptionalType";["DataType";"Int32"]]];["payload";["DataType";"Int32"]]]]@@)
  (let $32 (YqlRowSpec '('NativeYtTypeFlags '0) '('StrictSchema '1) '('UniqueKeys '0) '('Type $31)))
  (let $33 (YtMeta '('CanWrite '1) '('DoesExist '1) '('YqlCompatibleScheme '1) '('InferredScheme '0) '('IsDynamic '0) '('Attrs '('('"native_strict_schema" '"false")))))
  (let $34 (YtStat '('Id '"Input") '('RecordsCount '"18") '('DataSize '"655") '('ChunkCount '1) '('ModifyTime '0) '('Revision '0)))
  (let $35 (YtTable '"Input" $32 $33 $34 '() (Void) (Void) '"/Root/plato"))
  (let $36 '('"payload" '"ts" '"user"))
  (let $37 (YtReadTable! world (DataSource '"yt" '"/Root/plato") '((YtSection '((YtPath $35 $36 (Void) (Void))) '()))))
  (return (FromFlow (DqReadWideWrap $37 '())))
))) $7))
(let $9 (DqCnHashShuffle (TDqOutput $8 '0) '('2) '0 '"HashV2"))
(let $10 '('Auto 'Many))
(let $11 (Bool 'true))
(let $12 '"_yql_window_session_params")
(let $13 (StructType '('"count" $1) '('"value" $1)))
(let $14 '($12 (StructType '('start $1) '('state $13))))
(let $15 '"_yql_window_session_start")
(let $16 '($15 $1))
(let $17 (StructType $14 $16 $2 $3 $5))
(let $18 '('('"_logical_id" '7829) '('"_id" '"3605fff4-306d952-763bf640-82f9327e") '('"_partition_mode" '"aggregate") '('"_wide_channels" $17)))
(let $19 (DqPhyStage '($9) (lambda '($38) (block '(
  (let $39 (NarrowSqueezeToDict (ToFlow $38) (lambda '($45 $46 $47) $47) (lambda '($48 $49 $50) (AsStruct '('"payload" $48) '('"ts" $49) '('"user" $50))) $10))
  (let $40 (Int32 '1))
  (let $41 (Int32 '0))
  (let $42 '('"count" $40))
  (let $43 (Chain1Map (OrderedFlatMap $39 (lambda '($51) (OrderedFlatMap (DictPayloads $51) (lambda '($52) (block '(
    (let $53 (Sort (OrderedMap $52 (lambda '($54) (block '(
      (let $55 (Member $54 '"ts"))
      (return (AsStruct '('_yql_sys_order_by (+ $55 $40)) '('"payload" (Member $54 '"payload")) '('"ts" $55) '('"user" (Member $54 '"user"))))
    )))) $11 (lambda '($56) (Member $56 '_yql_sys_order_by))))
    (return (OrderedMap $53 (lambda '($57) (AsStruct '('"payload" (Member $57 '"payload")) '('"ts" (Member $57 '"ts")) '('"user" (Member $57 '"user"))))))
  )))))) (lambda '($58) (block '(
    (let $59 (Coalesce (Member $58 '"ts") $41))
    (return '($58 $59 (AsStruct $42 '('"value" $59)) (Member $58 '"user")))
  ))) (lambda '($60 $61) (block '(
    (let $62 (Member $60 '"user"))
    (let $63 (Coalesce (Member $60 '"ts") $41))
    (let $64 '($60 $63 (AsStruct $42 '('"value" $63)) $62))
    (let $65 (Nth $61 '2))
    (let $66 (+ (Member $65 '"count") $40))
    (let $67 (+ (Member $65 '"value") $63))
    (let $68 (If (== (Unwrap (% $66 (Int32 '2))) $40) $67 (Nth $61 '1)))
    (let $69 '($60 $68 (AsStruct '('"count" $66) '('"value" $67)) $62))
    (return (If (AggrNotEquals $62 (Member (Nth $61 '0) '"user")) $64 $69))
  )))))
  (let $44 (lambda '($70) (block '(
    (let $71 (Nth $70 '1))
    (let $72 (Nth $70 '0))
    (return (AsStruct '('start $71) '('state (Nth $70 '2))) $71 (Member $72 '"payload") (Member $72 '"ts") (Member $72 '"user"))
  ))))
  (return (FromFlow (ExpandMap $43 $44)))
))) $18))
(let $20 (DqCnHashShuffle (TDqOutput $19 '0) '('"4" '1) '0 '"HashV2"))
(let $21 (ListType $4))
(let $22 (DataType 'Uint64))
(let $23 (StructType $2 '('"session_len" $22) '('"session_start" $1) '('"session_state" $13) $3 '('"ts_session" $21) $5))
(let $24 '('('"_logical_id" '8415) '('"_id" '"378b799-1e25b314-6e75a9a8-d1134d41") '('"_wide_channels" $23)))
(let $25 (DqPhyStage '($20) (lambda '($73) (block '(
  (let $74 (NarrowSqueezeToDict (ToFlow $73) (lambda '($78 $79 $80 $81 $82) '($82 $79)) (lambda '($83 $84 $85 $86 $87) (AsStruct '($12 $83) '($15 $84) '('"payload" $85) '('"ts" $86) '('"user" $87))) $10))
  (let $75 (Chopper (OrderedFlatMap $74 (lambda '($88) (OrderedFlatMap (DictPayloads $88) (lambda '($89) (Sort $89 $11 (lambda '($90) (Member $90 '"ts"))))))) (lambda '($91) '((Member $91 '"user") (Member $91 $15))) (lambda '($92 $93) (Or (AggrNotEquals (Nth $92 '0) (Member $93 '"user")) (AggrNotEquals (Nth $92 '1) (Member $93 $15)))) (lambda '($94 $95) (block '(
    (let $96 (lambda '($108) (SafeCast $108 $4)))
    (let $97 (String '"null"))
    (let $98 (Chain1Map $95 (lambda '($103) (block '(
      (let $104 (Member $103 '"ts"))
      (let $105 '('AggregateList0 (AsList (IfPresent $104 $96 $97))))
      (let $106 '('Count0 (Uint64 '1)))
      (let $107 (AsStruct $105 $106 '($12 (Member $103 $12)) '($15 (Member $103 $15)) '('"payload" (Member $103 '"payload")) '('"ts" $104) '('"user" (Member $103 '"user"))))
      (return '($107 (AsStruct $105 $106)))
    ))) (lambda '($109 $110) (block '(
      (let $111 (Nth $110 '1))
      (let $112 (Member $109 '"ts"))
      (let $113 (IfPresent $112 $96 $97))
      (let $114 '('AggregateList0 (Insert (Member $111 'AggregateList0) $113)))
      (let $115 '('Count0 (Inc (Member $111 'Count0))))
      (let $116 (AsStruct $114 $115 '($12 (Member $109 $12)) '($15 (Member $109 $15)) '('"payload" (Member $109 '"payload")) '('"ts" $112) '('"user" (Member $109 '"user"))))
      (return '($116 (AsStruct $114 $115)))
    )))))
    (let $99 (StructType '('AggregateList0 $21) '('Count0 $22) $14 $16 $2 $3 $5))
    (let $100 (ListType $99))
    (let $101 (VariantType (StructType '('group $100) '('singleRow $99))))
    (let $102 (Condense1 $98 (lambda '($117) (block '(
      (let $118 (Nth $117 '0))
      (let $119 (Variant $118 'singleRow $101))
      (return '((Member $118 '"ts") $119))
    ))) (lambda '($120 $121) (AggrNotEquals (Member (Nth $120 '0) '"ts") (Nth $121 '0))) (lambda '($122 $123) (block '(
      (let $124 (Nth $122 '0))
      (let $125 (Visit (Nth $123 '1) 'group (lambda '($126) (Variant (Insert $126 $124) 'group $101)) 'singleRow (lambda '($127) (Variant (AsList $127 $124) 'group $101))))
      (return '((Nth $123 '0) $125))
    )))))
    (return (FlatMap $102 (lambda '($128) (Visit (Nth $128 '1) 'group (lambda '($129) (block '(
      (let $130 (IfPresent (Last $129) (lambda '($131) (OrderedMap (Collect (Map $129 (lambda '($132) (AsStruct '($12 (Member $132 $12)) '($15 (Member $132 $15)) '('"payload" (Member $132 '"payload")) '('"ts" (Member $132 '"ts")) '('"user" (Member $132 '"user")))))) (lambda '($133) (AsStruct '('AggregateList0 (Member $131 'AggregateList0)) '('Count0 (Member $131 'Count0)) '($12 (Member $133 $12)) '($15 (Member $133 $15)) '('"payload" (Member $133 '"payload")) '('"ts" (Member $133 '"ts")) '('"user" (Member $133 '"user")))))) (List $100)))
      (return (Map $130 (lambda '($134) (AsStruct '('AggregateList0 (Member $134 'AggregateList0)) '('Count0 (Member $134 'Count0)) '('"group_w_1" (Member $134 $12)) '('"payload" (Member $134 '"payload")) '('"ts" (Member $134 '"ts")) '('"user" (Member $134 '"user"))))))
    ))) 'singleRow (lambda '($135) (AsList (AsStruct '('AggregateList0 (Member $135 'AggregateList0)) '('Count0 (Member $135 'Count0)) '('"group_w_1" (Member $135 $12)) '('"payload" (Member $135 '"payload")) '('"ts" (Member $135 '"ts")) '('"user" (Member $135 '"user")))))))))
  )))))
  (let $76 (Sort (Map $75 (lambda '($136) (block '(
    (let $137 (Member $136 '"group_w_1"))
    (return (AsStruct '('"payload" (Member $136 '"payload")) '('"session_len" (Member $136 'Count0)) '('"session_start" (Member $137 'start)) '('"session_state" (Member $137 'state)) '('"ts" (Member $136 '"ts")) '('"ts_session" (Member $136 'AggregateList0)) '('"user" (Member $136 '"user"))))
  )))) '($11 $11) (lambda '($138) '((Member $138 '"user") (Member $138 '"payload")))))
  (let $77 (lambda '($139) (Member $139 '"payload") (Member $139 '"session_len") (Member $139 '"session_start") (Member $139 '"session_state") (Member $139 '"ts") (Member $139 '"ts_session") (Member $139 '"user")))
  (return (FromFlow (ExpandMap $76 $77)))
))) $24))
(let $26 (DqCnMerge (TDqOutput $25 '0) '('('"6" '"Asc") '('0 '"Asc"))))
(let $27 (DqPhyStage '($26) (lambda '($140) (FromFlow (NarrowMap (ToFlow $140) (lambda '($141 $142 $143 $144 $145 $146 $147) (AsStruct '('"payload" $141) '('"session_len" $142) '('"session_start" $143) '('"session_state" $144) '('"ts" $145) '('"ts_session" $146) '('"user" $147)))))) '('('"_logical_id" '8427) '('"_id" '"25298758-80b05c71-85d3b75f-a0f9a288"))))
(let $28 '($8 $19 $25 $27))
(let $29 '('"user" '"ts" '"payload" '"ts_session" '"session_len" '"session_start" '"session_state"))
(let $30 (DqCnResult (TDqOutput $27 '0) $29))
(return (KqpPhysicalQuery '((KqpPhysicalTx $28 '($30) '() '('('"type" '"generic")))) '((KqpTxResultBinding (ListType $23) '0 '0)) '('('"type" '"query"))))
)
