(
(let $1 (DataType 'Int32))
(let $2 (OptionalType $1))
(let $3 '('"ts" $2))
(let $4 '('"user" (OptionalType (DataType 'String))))
(let $5 '('('"_logical_id" '9463) '('"_id" '"f943d549-d773ac49-1d04fafb-113fbbee") '('"_wide_channels" (StructType $3 $4))))
(let $6 (DqPhyStage '() (lambda '() (block '(
  (let $16 '@@["StructType";[["user";["OptionalType";["DataType";"String"]]];["ts";["OptionalType";["DataType";"Int32"]]];["payload";["DataType";"Int32"]]]]@@)
  (let $17 (YqlRowSpec '('NativeYtTypeFlags '0) '('StrictSchema '1) '('UniqueKeys '0) '('Type $16)))
  (let $18 (YtMeta '('CanWrite '1) '('DoesExist '1) '('YqlCompatibleScheme '1) '('InferredScheme '0) '('IsDynamic '0) '('Attrs '('('"native_strict_schema" '"false")))))
  (let $19 (YtStat '('Id '"Input") '('RecordsCount '"18") '('DataSize '"655") '('ChunkCount '1) '('ModifyTime '0) '('Revision '0)))
  (let $20 (YtTable '"Input" $17 $18 $19 '() (Void) (Void) '"/Root/plato"))
  (let $21 (YtReadTable! world (DataSource '"yt" '"/Root/plato") '((YtSection '((YtPath $20 '('"ts" '"user") (Void) (Void))) '()))))
  (return (FromFlow (DqReadWideWrap $21 '())))
))) $5))
(let $7 (DqCnHashShuffle (TDqOutput $6 '0) '('1) '0 '"HashV2"))
(let $8 (StructType '('"session_len" (DataType 'Uint64)) '('"ss" $2) '('"ss1" $2) $3 '('"ts_session" (ListType $1)) $4))
(let $9 '('('"_logical_id" '10676) '('"_id" '"ceadc613-7712e14b-d30be93-3dcecde8") '('"_wide_channels" $8)))
(let $10 (DqPhyStage '($7) (lambda '($22) (block '(
  (let $23 (NarrowSqueezeToDict (ToFlow $22) (lambda '($31 $32) $32) (lambda '($33 $34) (AsStruct '('"ts" $33) '('"user" $34))) '('Auto 'Many)))
  (let $24 (Bool 'true))
  (let $25 (Chain1Map (OrderedFlatMap $23 (lambda '($35) (OrderedFlatMap (DictPayloads $35) (lambda '($36) (Sort $36 $24 (lambda '($37) (Member $37 '"ts"))))))) (lambda '($38) (block '(
    (let $39 (Member $38 '"ts"))
    (return '($38 $39 $39 (Member $38 '"user")))
  ))) (lambda '($40 $41) (block '(
    (let $42 (Member $40 '"user"))
    (let $43 (Member $40 '"ts"))
    (let $44 '($40 $43 $43 $42))
    (let $45 (Nth $41 '2))
    (let $46 (If (Coalesce (< $45 $43) $24) (- $43 $45) (- $45 $43)))
    (let $47 (If (And (AggrNotEquals $43 $45) (Coalesce (< (Int32 '10) $46) $24)) $43 (Nth $41 '1)))
    (let $48 '($40 $47 $43 $42))
    (return (If (AggrNotEquals $42 (Member (Nth $41 '0) '"user")) $44 $48))
  )))))
  (let $26 '"_yql_window_session_params")
  (let $27 '"_yql_window_session_start")
  (let $28 (Chopper (OrderedMap $25 (lambda '($49) (block '(
    (let $50 (Nth $49 '1))
    (let $51 (Nth $49 '0))
    (return (AsStruct '($26 (AsStruct '('start $50) '('state (Nth $49 '2)))) '($27 $50) '('"ts" (Member $51 '"ts")) '('"user" (Member $51 '"user"))))
  )))) (lambda '($52) '((Member $52 '"user") (Member $52 $27))) (lambda '($53 $54) (Or (AggrNotEquals (Nth $53 '0) (Member $54 '"user")) (AggrNotEquals (Nth $53 '1) (Member $54 $27)))) (lambda '($55 $56) (block '(
    (let $57 (FromFlow $56))
    (let $58 (StructType '($26 (StructType '('start $2) '('state $2))) '($27 $2) $3 $4))
    (let $59 (Uint64 '10))
    (let $60 (QueueCreate $58 (Uint64 '"22") $59 (DependsOn $57)))
    (let $61 (Uint64 '0))
    (let $62 (Uint64 '"21"))
    (let $63 (lambda '($77) $77))
    (let $64 (lambda '($78) (ToList (Member $78 '"ts"))))
    (let $65 (lambda '($79 $80) (IfPresent (Member $79 '"ts") (lambda '($81) (Insert $80 $81)) $80)))
    (let $66 (Uint64 '1))
    (let $67 (lambda '($82) $66))
    (let $68 (lambda '($83 $84) (Inc $84)))
    (let $69 (Chain1Map (ToFlow (PreserveStream $57 $60 $59)) (lambda '($70) (block '(
      (let $71 (QueueRange $60 $61 $62 (DependsOn $70)))
      (let $72 (FlatMap $71 $63))
      (let $73 (Fold1 $72 $64 $65))
      (let $74 (Member $70 '"ts"))
      (let $75 (Fold1 $72 $67 $68))
      (let $76 (AsStruct '('AggregateList0 (Coalesce $73 (ToList $74))) '('Count0 (Coalesce $75 $66)) '($26 (Member $70 $26)) '($27 (Member $70 $27)) '('"ts" $74) '('"user" (Member $70 '"user"))))
      (return '($76 (AsStruct '('AggregateList0 (Void)) '('Count0 (Void)))))
    ))) (lambda '($85 $86) (block '(
      (let $87 (QueueRange $60 $61 $62 (DependsOn $85)))
      (let $88 (FlatMap $87 $63))
      (let $89 (Fold1 $88 $64 $65))
      (let $90 (Member $85 '"ts"))
      (let $91 (Fold1 $88 $67 $68))
      (let $92 (AsStruct '('AggregateList0 (Coalesce $89 (ToList $90))) '('Count0 (Coalesce $91 $66)) '($26 (Member $85 $26)) '($27 (Member $85 $27)) '('"ts" $90) '('"user" (Member $85 '"user"))))
      (return '($92 (Nth $86 '1)))
    )))))
    (return (Map $69 (lambda '($93) (block '(
      (let $94 (Nth $93 '0))
      (let $95 (Member $94 $26))
      (return (AsStruct '('AggregateList0 (Member $94 'AggregateList0)) '('Count0 (Member $94 'Count0)) '('"group_w1_0" $95) '('"ss0" $95) '('"ts" (Member $94 '"ts")) '('"user" (Member $94 '"user"))))
    )))))
  )))))
  (let $29 (Sort (Map $28 (lambda '($96) (AsStruct '('"session_len" (Member $96 'Count0)) '('"ss" (Member (Member $96 '"ss0") 'start)) '('"ss1" (Member (Member $96 '"group_w1_0") 'start)) '('"ts" (Member $96 '"ts")) '('"ts_session" (Member $96 'AggregateList0)) '('"user" (Member $96 '"user"))))) '($24 $24) (lambda '($97) '((Member $97 '"user") (Member $97 '"ts")))))
  (let $30 (lambda '($98) (Member $98 '"session_len") (Member $98 '"ss") (Member $98 '"ss1") (Member $98 '"ts") (Member $98 '"ts_session") (Member $98 '"user")))
  (return (FromFlow (ExpandMap $29 $30)))
))) $9))
(let $11 (DqCnMerge (TDqOutput $10 '0) '('('"5" '"Asc") '('"3" '"Asc"))))
(let $12 (DqPhyStage '($11) (lambda '($99) (FromFlow (NarrowMap (ToFlow $99) (lambda '($100 $101 $102 $103 $104 $105) (AsStruct '('"session_len" $100) '('"ss" $101) '('"ss1" $102) '('"ts" $103) '('"ts_session" $104) '('"user" $105)))))) '('('"_logical_id" '10688) '('"_id" '"17488ef2-fb4b594c-d1a63598-c6da260c"))))
(let $13 '($6 $10 $12))
(let $14 '('"user" '"ts" '"ss1" '"ss" '"ts_session" '"session_len"))
(let $15 (DqCnResult (TDqOutput $12 '0) $14))
(return (KqpPhysicalQuery '((KqpPhysicalTx $13 '($15) '() '('('"type" '"generic")))) '((KqpTxResultBinding (ListType $8) '0 '0)) '('('"type" '"query"))))
)
