minus0y0minusx0xminussxsyminusxyplus0yyplussxyplusxsyzerosxfalsezero0truepsxxdivxyquotxy0quotxyzifzeroxxypluszs0iftruexyzpziffalsexsyzquotminusxsysyzminussxsyminusxyplussxyplusxsydivxyquotxy0quotxyzpluszs0quotxyzzeroxquotxyzifzeroxxypluszs0iftruexyzpziffalsexsyzminusxsyiffalsexsyzquotminusxsysyztruedivxyquotxy0falseiffalsexsyzquotminusxsysyzquotxyzifzeroxxypluszs0trueiffalsexsyzminusxsyfalseminussxsyminusxytrueminus22quotxyzzeroxfalsequotxyzpluszs0falseplussxyplusxsytrueplus21iftruexyzpzfalse