
(Frame scrolling node
  (scrollable area size 785 600)
  (contents size 785 1016)
  (scrollable area parameters
    (horizontal scroll elasticity 1)
    (vertical scroll elasticity 1)
    (horizontal scrollbar mode 0)
    (vertical scrollbar mode 0)
    (allows vertical scrolling 1))
  (layout viewport at (0,0) size 785x600)
  (min layout viewport origin (0,0))
  (max layout viewport origin (0,416))
  (behavior for fixed 0)
  (children 1
    (Fixed node
      (anchor edges: AnchorEdgeLeft AnchorEdgeTop)
      (viewport rect at last layout at (0,0) size 785x600)
      (layer position at last layout (8,10))
      (children 1
        (Frame hosting node
          (children 1
            (Frame scrolling node
              (scrollable area size 500 300)
              (contents size 500 420)
              (scrollable area parameters
                (horizontal scroll elasticity 1)
                (vertical scroll elasticity 1)
                (horizontal scrollbar mode 1)
                (vertical scrollbar mode 1))
              (layout viewport at (0,0) size 500x300)
              (min layout viewport origin (0,0))
              (max layout viewport origin (0,120))
              (behavior for fixed 0)
              (children 2
                (Overflow scrolling node
                  (scrollable area size 385 285)
                  (contents size 385 1760)
                  (scrollable area parameters
                    (horizontal scroll elasticity 1)
                    (vertical scroll elasticity 1)
                    (horizontal scrollbar mode 0)
                    (vertical scrollbar mode 0)
                    (allows vertical scrolling 1))
                  (children 1
                    (Sticky node
                      (anchor edges: AnchorEdgeTop AnchorEdgeBottom)
                      (top offset 10.00)
                      (bottom offset 10.00)
                      (containing block rect at (0,0) size 385x1760)
                      (sticky box rect at (0,830) size 100x100)
                      (constraining rect at (0,0) size 385x285)
                      (sticky offset at last layout width=0 height=-655)
                      (layer position at last layout (0,175))
                    )
                  )
                )
                (Sticky node
                  (anchor edges: AnchorEdgeTop AnchorEdgeBottom)
                  (top offset 10.00)
                  (bottom offset 10.00)
                  (containing block rect at (8,8) size 484x404)
                  (sticky box rect at (8,312) size 100x100)
                  (constraining rect at (0,0) size 500x300)
                  (sticky offset at last layout width=0 height=-122)
                  (layer position at last layout (8,190))
                )
              )
            )
          )
        )
      )
    )
  )
)

