(
(let $1 (DataType 'String))
(let $2 '('"value" $1))
(let $3 (StructType '('"key" $1) '('"subkey" $1) $2))
(let $4 '('('"_logical_id" '10785) '('"_id" '"48f311da-262ca53e-ca5a098d-d3ec63b7") '('"_wide_channels" $3)))
(let $5 (DqPhyStage '() (lambda '() (block '(
  (let $19 '@@["StructType";[["key";["DataType";"String"]];["subkey";["DataType";"String"]];["value";["DataType";"String"]]]]@@)
  (let $20 (YqlRowSpec '('NativeYtTypeFlags '0) '('StrictSchema '1) '('UniqueKeys '0) '('Type $19)))
  (let $21 (YtMeta '('CanWrite '1) '('DoesExist '1) '('YqlCompatibleScheme '1) '('InferredScheme '0) '('IsDynamic '0) '('Attrs '('('"native_strict_schema" '"false")))))
  (let $22 (YtStat '('Id '"Input") '('RecordsCount '"30") '('DataSize '"1170") '('ChunkCount '1) '('ModifyTime '0) '('Revision '0)))
  (let $23 (YtTable '"Input" $20 $21 $22 '() (Void) (Void) '"/Root/plato"))
  (let $24 '('"key" '"subkey" '"value"))
  (let $25 (YtReadTable! world (DataSource '"yt" '"/Root/plato") '((YtSection '((YtPath $23 $24 (Void) (Void))) '()))))
  (return (FromFlow (WideFilter (DqReadWideWrap $25 '()) (lambda '($26 $27 $28) (== $26 (String '1))))))
))) $4))
(let $6 (DqCnHashShuffle (TDqOutput $5 '0) '('0) '0 '"HashV2"))
(let $7 (OptionalType (DataType 'Uint32)))
(let $8 (DataType 'Uint64))
(let $9 (OptionalType $8))
(let $10 (OptionalType $1))
(let $11 (StructType '('"dvalue_lead1" $10) '('"sum1" $8) '('"sum2" $9) $2 '('"value_lag2" $7)))
(let $12 '('('"_logical_id" '12385) '('"_id" '"94f45cbe-89d20c5f-2572b899-f1570b0c") '('"_wide_channels" $11)))
(let $13 (DqPhyStage '($6) (lambda '($29) (block '(
  (let $30 (NarrowSqueezeToDict (ToFlow $29) (lambda '($35 $36 $37) $35) (lambda '($38 $39 $40) (AsStruct '('"key" $38) '('"subkey" $39) '('"value" $40))) '('Auto 'Many)))
  (let $31 (Bool 'true))
  (let $32 (Chopper (OrderedFlatMap $30 (lambda '($41) (OrderedFlatMap (DictPayloads $41) (lambda '($42) (Sort $42 $31 (lambda '($43) (Member $43 '"value"))))))) (lambda '($44) (Member $44 '"key")) (lambda '($45 $46) (AggrNotEquals $45 (Member $46 '"key"))) (lambda '($47 $48) (block '(
    (let $49 (FromFlow $48))
    (let $50 (QueueCreate $3 (Uint64 '"6") (Uint64 '1) (DependsOn $49)))
    (let $51 (Uint64 '"3"))
    (let $52 (Uint64 '"2"))
    (let $53 (Uint64 '"5"))
    (let $54 (lambda '($82) $82))
    (let $55 (lambda '($83 $84) (AggrAdd (SafeCast (Unwrap (SafeCast (Member $83 '"subkey") $7)) $8) $84)))
    (let $56 (lambda '($85) (Just (SafeCast $85 $8))))
    (let $57 (Nothing $9))
    (let $58 (lambda '($86 $87) (block '(
      (let $88 (IfPresent (SafeCast (Member $86 '"subkey") $7) $56 $57))
      (return (AggrAdd $88 $87))
    ))))
    (let $59 (Uint64 '0))
    (let $60 (lambda '($89) (SafeCast (Member $89 '"value") $7)))
    (let $61 (Nothing $7))
    (let $62 (Uint64 '"4"))
    (let $63 (lambda '($90) (block '(
      (let $91 (Member $90 '"value"))
      (return (Just (Concat $91 $91)))
    ))))
    (let $64 (Nothing $10))
    (let $65 (Chain1Map (ToFlow (PreserveStream $49 $50 $51)) (lambda '($66) (block '(
      (let $67 (DependsOn $66))
      (let $68 (QueueRange $50 $52 $53 $67))
      (let $69 (Member $66 '"subkey"))
      (let $70 (SafeCast $69 $7))
      (let $71 (SafeCast (Unwrap $70) $8))
      (let $72 (Fold (FlatMap $68 $54) $71 $55))
      (let $73 (QueueRange $50 $52 $51 $67))
      (let $74 (IfPresent $70 $56 $57))
      (let $75 (Fold (FlatMap $73 $54) $74 $58))
      (let $76 (QueuePeek $50 $59 $67))
      (let $77 (IfPresent $76 $60 $61))
      (let $78 (QueuePeek $50 $62 $67))
      (let $79 (IfPresent $78 $63 $64))
      (let $80 (AsStruct '('Sum0 $72) '('Sum1 $75) '('_yql_Lag0 $77) '('_yql_Lead0 $79) '('"key" (Member $66 '"key")) '('"subkey" $69) '('"value" (Member $66 '"value"))))
      (let $81 (AsStruct '('Sum0 $71) '('Sum1 $74) '('_yql_Lag0 (Void)) '('_yql_Lead0 (Void))))
      (return '($80 $81))
    ))) (lambda '($92 $93) (block '(
      (let $94 (DependsOn $92))
      (let $95 (QueueRange $50 $52 $53 $94))
      (let $96 (Member $92 '"subkey"))
      (let $97 (SafeCast $96 $7))
      (let $98 (Nth $93 '1))
      (let $99 (AggrAdd (SafeCast (Unwrap $97) $8) (Member $98 'Sum0)))
      (let $100 (Fold (FlatMap $95 $54) $99 $55))
      (let $101 (QueueRange $50 $52 $51 $94))
      (let $102 (IfPresent $97 $56 $57))
      (let $103 (AggrAdd $102 (Member $98 'Sum1)))
      (let $104 (Fold (FlatMap $101 $54) $103 $58))
      (let $105 (QueuePeek $50 $59 $94))
      (let $106 (IfPresent $105 $60 $61))
      (let $107 (QueuePeek $50 $62 $94))
      (let $108 (IfPresent $107 $63 $64))
      (let $109 (AsStruct '('Sum0 $100) '('Sum1 $104) '('_yql_Lag0 $106) '('_yql_Lead0 $108) '('"key" (Member $92 '"key")) '('"subkey" $96) '('"value" (Member $92 '"value"))))
      (let $110 (AsStruct '('Sum0 $99) '('Sum1 $103) '('_yql_Lag0 (Member $98 '_yql_Lag0)) '('_yql_Lead0 (Member $98 '_yql_Lead0))))
      (return '($109 $110))
    )))))
    (return (OrderedMap $65 (lambda '($111) (block '(
      (let $112 (Nth $111 '0))
      (return (AsStruct '('Sum0 (Member $112 'Sum0)) '('Sum1 (Member $112 'Sum1)) '('_yql_Lag0 (Member $112 '_yql_Lag0)) '('_yql_Lead0 (Member $112 '_yql_Lead0)) '('"value" (Member $112 '"value"))))
    )))))
  )))))
  (let $33 (Sort (Map $32 (lambda '($113) (AsStruct '('"dvalue_lead1" (Member $113 '_yql_Lead0)) '('"sum1" (Member $113 'Sum0)) '('"sum2" (Member $113 'Sum1)) '('"value" (Member $113 '"value")) '('"value_lag2" (Member $113 '_yql_Lag0))))) $31 (lambda '($114) (Member $114 '"value"))))
  (let $34 (lambda '($115) (Member $115 '"dvalue_lead1") (Member $115 '"sum1") (Member $115 '"sum2") (Member $115 '"value") (Member $115 '"value_lag2")))
  (return (FromFlow (ExpandMap $33 $34)))
))) $12))
(let $14 (DqCnMerge (TDqOutput $13 '0) '('('"3" '"Asc"))))
(let $15 (DqPhyStage '($14) (lambda '($116) (FromFlow (NarrowMap (ToFlow $116) (lambda '($117 $118 $119 $120 $121) (AsStruct '('"dvalue_lead1" $117) '('"sum1" $118) '('"sum2" $119) '('"value" $120) '('"value_lag2" $121)))))) '('('"_logical_id" '12397) '('"_id" '"50a46e55-d05a4c41-96752e8e-a84118cf"))))
(let $16 '($5 $13 $15))
(let $17 '('"value" '"sum1" '"dvalue_lead1" '"sum2" '"value_lag2"))
(let $18 (DqCnResult (TDqOutput $15 '0) $17))
(return (KqpPhysicalQuery '((KqpPhysicalTx $16 '($18) '() '('('"type" '"generic")))) '((KqpTxResultBinding (ListType $11) '0 '0)) '('('"type" '"query"))))
)
