import java.awt.geom.Point2D; import java.util.Scanner; public class a { Scanner in=new Scanner(System.in); public static void main(String[] args) { new a().g(); } private void g() { while(true){ Point2D.Double[] d=new Point2D.Double[6]; for(int i=0;i<6;i++)d[i]=new Point2D.Double(in.nextDouble(),in.nextDouble()); if(d[0].equals(d[1]))break; double a=Math.abs((d[5].x*d[3].y+d[3].x*d[4].y+d[4].x*d[5].y-d[4].y*d[5].x-d[5].y*d[3].x-d[3].y*d[4].x)/2); double l=a/d[0].distance(d[1]); double theta=Math.acos(((d[2].x-d[0].x)*(d[1].x-d[0].x)+(d[2].y-d[0].y)*(d[1].y-d[0].y))/d[0].distance(d[1])/d[0].distance(d[2])); l/=Math.sin(Math.acos(((d[2].x-d[0].x)*(d[1].x-d[0].x)+(d[2].y-d[0].y)*(d[1].y-d[0].y))/d[0].distance(d[1])/d[0].distance(d[2]))); Point2D.Double disp=new Point2D.Double((d[2].x-d[0].x)*l/d[0].distance(d[2]),(d[2].y-d[0].y)*l/d[0].distance(d[2])); Point2D.Double h=new Point2D.Double(disp.x+d[0].x,disp.y+d[0].y); Point2D.Double g=new Point2D.Double(disp.x+d[1].x,disp.y+d[1].y); System.out.printf("%.3f %.3f %.3f %.3f\n", g.x,g.y,h.x,h.y); } } } //Euclid //trig //triangles //geometry