(
(let $1 (DataType 'Int32))
(let $2 '('"payload" $1))
(let $3 (OptionalType $1))
(let $4 '('"ts" $3))
(let $5 (DataType 'String))
(let $6 '('"user" (OptionalType $5)))
(let $7 '('"user_nonopt" $5))
(let $8 (StructType $2 $4 $6 $7))
(let $9 '('('"_logical_id" '7131) '('"_id" '"f516f998-572dc51a-ea0de514-ff4772a7") '('"_wide_channels" $8)))
(let $10 (DqPhyStage '() (lambda '() (block '(
  (let $29 '@@["StructType";[["user";["OptionalType";["DataType";"String"]]];["ts";["OptionalType";["DataType";"Int32"]]];["payload";["DataType";"Int32"]]]]@@)
  (let $30 (YqlRowSpec '('NativeYtTypeFlags '0) '('StrictSchema '1) '('UniqueKeys '0) '('Type $29)))
  (let $31 (YtMeta '('CanWrite '1) '('DoesExist '1) '('YqlCompatibleScheme '1) '('InferredScheme '0) '('IsDynamic '0) '('Attrs '('('"native_strict_schema" 'false)))))
  (let $32 (YtStat '('Id '"Input") '('RecordsCount '"18") '('DataSize '"655") '('ChunkCount '1) '('ModifyTime '0) '('Revision '0)))
  (let $33 (YtTable '"Input" $30 $31 $32 '() (Void) (Void) '"/Root/plato"))
  (let $34 '('"payload" '"ts" '"user"))
  (let $35 (YtReadTable! world (DataSource '"yt" '"/Root/plato") '((YtSection '((YtPath $33 $34 (Void) (Void))) '()))))
  (let $36 (lambda '($37 $38 $39) $37 $38 $39 (Coalesce $39 (String '"u0"))))
  (return (FromFlow (WideMap (DqReadWideWrap $35 '()) $36)))
))) $9))
(let $11 (DqCnHashShuffle (TDqOutput $10 '0) '('2 '"3") '0 '"HashV2"))
(let $12 '('Auto 'Many))
(let $13 (Bool 'true))
(let $14 '"_yql_window_session_params")
(let $15 '"_yql_window_session_start")
(let $16 (StructType '($14 (StructType '('start $3) '('state $3))) '($15 $3) $2 $4 $6 $7))
(let $17 '('('"_logical_id" '7203) '('"_id" '"a1cf63b4-b5147c39-a7ddf616-88c16571") '('"_partition_mode" '"aggregate") '('"_wide_channels" $16)))
(let $18 (DqPhyStage '($11) (lambda '($40) (block '(
  (let $41 (NarrowSqueezeToDict (ToFlow $40) (lambda '($44 $45 $46 $47) '($46 $47)) (lambda '($48 $49 $50 $51) (AsStruct '('"payload" $48) '('"ts" $49) '('"user" $50) '('"user_nonopt" $51))) $12))
  (let $42 (Chain1Map (OrderedFlatMap $41 (lambda '($52) (OrderedFlatMap (DictPayloads $52) (lambda '($53) (Sort $53 $13 (lambda '($54) (Member $54 '"ts"))))))) (lambda '($55) (block '(
    (let $56 (Member $55 '"ts"))
    (return '($55 $56 $56 '((Member $55 '"user") (Member $55 '"user_nonopt"))))
  ))) (lambda '($57 $58) (block '(
    (let $59 (Member $57 '"user"))
    (let $60 (Nth $58 '0))
    (let $61 (Member $57 '"user_nonopt"))
    (let $62 (Member $57 '"ts"))
    (let $63 '($59 $61))
    (let $64 '($57 $62 $62 $63))
    (let $65 (Nth $58 '2))
    (let $66 (If (Coalesce (< $65 $62) $13) (- $62 $65) (- $65 $62)))
    (let $67 (If (And (AggrNotEquals $62 $65) (Coalesce (< (Int32 '"10") $66) $13)) $62 (Nth $58 '1)))
    (let $68 '($57 $67 $62 $63))
    (return (If (Or (AggrNotEquals $59 (Member $60 '"user")) (AggrNotEquals $61 (Member $60 '"user_nonopt"))) $64 $68))
  )))))
  (let $43 (lambda '($69) (block '(
    (let $70 (Nth $69 '1))
    (let $71 (Nth $69 '0))
    (return (AsStruct '('start $70) '('state (Nth $69 '2))) $70 (Member $71 '"payload") (Member $71 '"ts") (Member $71 '"user") (Member $71 '"user_nonopt"))
  ))))
  (return (FromFlow (ExpandMap $42 $43)))
))) $17))
(let $19 '('"4" '"5" '1))
(let $20 (DqCnHashShuffle (TDqOutput $18 '0) $19 '0 '"HashV2"))
(let $21 (StructType '('"full_session" (ListType $8)) $2 '('"session_len" (DataType 'Uint64)) $4 $6 $7))
(let $22 '('('"_logical_id" '8192) '('"_id" '"c8477478-9c8f3788-2fff6c69-c131ad0c") '('"_wide_channels" $21)))
(let $23 (DqPhyStage '($20) (lambda '($72) (block '(
  (let $73 (NarrowSqueezeToDict (ToFlow $72) (lambda '($77 $78 $79 $80 $81 $82) '($81 $82 $78)) (lambda '($83 $84 $85 $86 $87 $88) (AsStruct '($14 $83) '($15 $84) '('"payload" $85) '('"ts" $86) '('"user" $87) '('"user_nonopt" $88))) $12))
  (let $74 (Chopper (OrderedFlatMap $73 (lambda '($89) (OrderedFlatMap (DictPayloads $89) (lambda '($90) (Sort $90 (Bool 'false) (lambda '($91) (Member $91 '"ts"))))))) (lambda '($92) '((Member $92 '"user") (Member $92 '"user_nonopt") (Member $92 $15))) (lambda '($93 $94) (Or (AggrNotEquals (Nth $93 '0) (Member $94 '"user")) (AggrNotEquals (Nth $93 '1) (Member $94 '"user_nonopt")) (AggrNotEquals (Nth $93 '2) (Member $94 $15)))) (lambda '($95 $96) (block '(
    (let $97 (FromFlow $96))
    (let $98 (QueueCreate $16 (Void) (Uint64 '0) (DependsOn $97)))
    (let $99 (Uint64 '"18446744073709551615"))
    (let $100 (Chain1Map (ToFlow (PreserveStream $97 $98 $99)) (lambda '($101) (block '(
      (let $102 (Uint64 '1))
      (let $103 (QueueRange $98 $102 $99 (DependsOn $101)))
      (let $104 (FlatMap $103 (lambda '($114) $114)))
      (let $105 '('"payload" (Member $101 '"payload")))
      (let $106 '('"ts" (Member $101 '"ts")))
      (let $107 '('"user" (Member $101 '"user")))
      (let $108 '('"user_nonopt" (Member $101 '"user_nonopt")))
      (let $109 (Fold $104 (AsList (AsStruct $105 $106 $107 $108)) (lambda '($115 $116) (block '(
        (let $117 (AsStruct '('"payload" (Member $115 '"payload")) '('"ts" (Member $115 '"ts")) '('"user" (Member $115 '"user")) '('"user_nonopt" (Member $115 '"user_nonopt"))))
        (return (Insert $116 $117))
      )))))
      (let $110 '('AggregateList0 $109))
      (let $111 (Fold $104 $102 (lambda '($118 $119) (Inc $119))))
      (let $112 '('Count0 $111))
      (let $113 (AsStruct $110 $112 '($14 (Member $101 $14)) '($15 (Member $101 $15)) $105 $106 $107 $108))
      (return '($113 (AsStruct $110 $112)))
    ))) (lambda '($120 $121) (block '(
      (let $122 (Nth $121 '1))
      (let $123 (AsStruct '('AggregateList0 (Member $122 'AggregateList0)) '('Count0 (Member $122 'Count0)) '($14 (Member $120 $14)) '($15 (Member $120 $15)) '('"payload" (Member $120 '"payload")) '('"ts" (Member $120 '"ts")) '('"user" (Member $120 '"user")) '('"user_nonopt" (Member $120 '"user_nonopt"))))
      (return '($123 $122))
    )))))
    (return (OrderedMap $100 (lambda '($124) (block '(
      (let $125 (Nth $124 '0))
      (return (AsStruct '('AggregateList0 (Member $125 'AggregateList0)) '('Count0 (Member $125 'Count0)) '('"payload" (Member $125 '"payload")) '('"ts" (Member $125 '"ts")) '('"user" (Member $125 '"user")) '('"user_nonopt" (Member $125 '"user_nonopt"))))
    )))))
  )))))
  (let $75 (Sort (Map $74 (lambda '($126) (AsStruct '('"full_session" (Member $126 'AggregateList0)) '('"payload" (Member $126 '"payload")) '('"session_len" (Member $126 'Count0)) '('"ts" (Member $126 '"ts")) '('"user" (Member $126 '"user")) '('"user_nonopt" (Member $126 '"user_nonopt"))))) '($13 $13) (lambda '($127) '((Member $127 '"user") (Member $127 '"payload")))))
  (let $76 (lambda '($128) (Member $128 '"full_session") (Member $128 '"payload") (Member $128 '"session_len") (Member $128 '"ts") (Member $128 '"user") (Member $128 '"user_nonopt")))
  (return (FromFlow (ExpandMap $75 $76)))
))) $22))
(let $24 (DqCnMerge (TDqOutput $23 '0) '('('"4" '"Asc") '('1 '"Asc"))))
(let $25 (DqPhyStage '($24) (lambda '($129) (FromFlow (NarrowMap (ToFlow $129) (lambda '($130 $131 $132 $133 $134 $135) (AsStruct '('"full_session" $130) '('"payload" $131) '('"session_len" $132) '('"ts" $133) '('"user" $134) '('"user_nonopt" $135)))))) '('('"_logical_id" '8204) '('"_id" '"fbff2455-e1574d47-6d2d964-2e7ee4f6"))))
(let $26 '($10 $18 $23 $25))
(let $27 '('"user" '"user_nonopt" '"ts" '"payload" '"full_session" '"session_len"))
(let $28 (DqCnResult (TDqOutput $25 '0) $27))
(return (KqpPhysicalQuery '((KqpPhysicalTx $26 '($28) '() '('('"type" '"generic")))) '((KqpTxResultBinding (ListType $21) '0 '0)) '('('"type" '"query"))))
)
