{⟦ org ↦ ⟦ eolang ↦ ⟦ io ↦ ⟦ bytes-as-input(bts) ↦ ⟦ read(size) ↦ ⟦ φ ↦ ξ.input-block(ξ.ρ.bts, Φ̇.bytes(⟦ Δ ⤍ -- ⟧)).read(ξ.size).self, input-block(data, buffer) ↦ ⟦ self ↦ ξ, φ ↦ ξ.buffer, read(size) ↦ ⟦ to-read ↦ Φ̇.dataized(ξ.size).as-bytes, available ↦ Φ̇.dataized(ξ.ρ.data.size).as-bytes, next ↦ Φ̇.dataized( Φ̇.number(ξ.available).gt(ξ.to-read).if(ξ.to-read, ξ.available) ).as-bytes, φ ↦ ξ.available.eq(0).if( ξ.ρ.ρ.input-block(Φ̇.bytes(⟦ Δ ⤍ -- ⟧), Φ̇.bytes(⟦ Δ ⤍ -- ⟧)), ξ.ρ.ρ.input-block( ξ.ρ.data.slice( ξ.next, Φ̇.number(ξ.available).minus(Φ̇.number(ξ.next)) ).as-bytes, ξ.ρ.data.slice(0, ξ.next).as-bytes ) ).self ⟧ ⟧ ⟧ ⟧, λ ⤍ Package ⟧, λ ⤍ Package ⟧, λ ⤍ Package ⟧ ⟧}