feature init {
  lookupflag IgnoreMarks;
  sub uni0620 by uni0620.init;
  sub uni0626 by uni0626.init;
  sub uni0628 by uni0628.init;
  sub uni062A by uni062A.init;
  sub uni062B by uni062B.init;
  sub uni062C by uni062C.init;
  sub uni062D by uni062D.init;
  sub uni062E by uni062E.init;
  sub uni0633 by uni0633.init;
  sub uni0634 by uni0634.init;
  sub uni0635 by uni0635.init;
  sub uni0636 by uni0636.init;
  sub uni0637 by uni0637.init;
  sub uni0638 by uni0638.init;
  sub uni0639 by uni0639.init;
  sub uni063A by uni063A.init;
  sub uni063B by uni063B.init;
  sub uni063C by uni063C.init;
  sub uni063D by uni063D.init;
  sub uni0641 by uni0641.init;
  sub uni0642 by uni0642.init;
  sub uni0643 by uni0643.init;
  sub uni0644 by uni0644.init;
  sub uni0645 by uni0645.init;
  sub uni0646 by uni0646.init;
  sub uni0647 by uni0647.init;
  sub uni0649 by uni0649.init;
  sub uni064A by uni064A.init;
  sub uni066E by uni066E.init;
  sub uni066F by uni066F.init;
  sub uni0678 by uni0678.init;
  sub uni0679 by uni0679.init;
  sub uni067A by uni067A.init;
  sub uni067B by uni067B.init;
  sub uni067C by uni067C.init;
  sub uni067D by uni067D.init;
  sub uni067E by uni067E.init;
  sub uni067F by uni067F.init;
  sub uni0680 by uni0680.init;
  sub uni0681 by uni0681.init;
  sub uni0682 by uni0682.init;
  sub uni0683 by uni0683.init;
  sub uni0684 by uni0684.init;
  sub uni0685 by uni0685.init;
  sub uni0686 by uni0686.init;
  sub uni0687 by uni0687.init;
  sub uni069A by uni069A.init;
  sub uni069B by uni069B.init;
  sub uni069C by uni069C.init;
  sub uni069D by uni069D.init;
  sub uni069E by uni069E.init;
  sub uni069F by uni069F.init;
  sub uni06A0 by uni06A0.init;
  sub uni06A1 by uni06A1.init;
  sub uni06A2 by uni06A2.init;
  sub uni06A3 by uni06A3.init;
  sub uni06A4 by uni06A4.init;
  sub uni06A5 by uni06A5.init;
  sub uni06A6 by uni06A6.init;
  sub uni06A7 by uni06A7.init;
  sub uni06A8 by uni06A8.init;
  sub uni06A9 by uni06A9.init;
  sub uni06AA by uni06AA.init;
  sub uni06AB by uni06AB.init;
  sub uni06AC by uni06AC.init;
  sub uni06AD by uni06AD.init;
  sub uni06AE by uni06AE.init;
  sub uni06AF by uni06AF.init;
  sub uni06B0 by uni06B0.init;
  sub uni06B1 by uni06B1.init;
  sub uni06B2 by uni06B2.init;
  sub uni06B3 by uni06B3.init;
  sub uni06B4 by uni06B4.init;
  sub uni06B5 by uni06B5.init;
  sub uni06B6 by uni06B6.init;
  sub uni06B7 by uni06B7.init;
  sub uni06B8 by uni06B8.init;
  sub uni06B9 by uni06B9.init;
  sub uni06BA by uni06BA.init;
  sub uni06BB by uni06BB.init;
  sub uni06BC by uni06BC.init;
  sub uni06BD by uni06BD.init;
  sub uni06BE by uni06BE.init;
  sub uni06BF by uni06BF.init;
  sub uni06C1 by uni06C1.init;
  sub uni06CC by uni06CC.init;
  sub uni06CE by uni06CE.init;
  sub uni06D0 by uni06D0.init;
  sub uni06D1 by uni06D1.init;
  sub uni06FA by uni06FA.init;
  sub uni06FB by uni06FB.init;
  sub uni06FC by uni06FC.init;
  sub uni06FF by uni06FF.init;
  sub uni0750 by uni0750.init;
  sub uni0751 by uni0751.init;
  sub uni0752 by uni0752.init;
  sub uni0753 by uni0753.init;
  sub uni0754 by uni0754.init;
  sub uni0755 by uni0755.init;
  sub uni0756 by uni0756.init;
  sub uni0757 by uni0757.init;
  sub uni0758 by uni0758.init;
  sub uni075C by uni075C.init;
  sub uni075D by uni075D.init;
  sub uni075E by uni075E.init;
  sub uni075F by uni075F.init;
  sub uni0760 by uni0760.init;
  sub uni0761 by uni0761.init;
  sub uni0762 by uni0762.init;
  sub uni0763 by uni0763.init;
  sub uni0764 by uni0764.init;
  sub uni0765 by uni0765.init;
  sub uni0766 by uni0766.init;
  sub uni0767 by uni0767.init;
  sub uni0768 by uni0768.init;
  sub uni0769 by uni0769.init;
  sub uni076A by uni076A.init;
  sub uni076D by uni076D.init;
  sub uni076E by uni076E.init;
  sub uni076F by uni076F.init;
  sub uni0770 by uni0770.init;
  sub uni0772 by uni0772.init;
  sub uni0775 by uni0775.init;
  sub uni0776 by uni0776.init;
  sub uni0777 by uni0777.init;
  sub uni077C by uni077C.init;
  sub uni077D by uni077D.init;
  sub uni077E by uni077E.init;
  sub uni077F by uni077F.init;
  sub uni08A0 by uni08A0.init;
} init;

feature medi {
  lookupflag IgnoreMarks;
  sub uni0620 by uni0620.medi;
  sub uni0626 by uni0626.medi;
  sub uni0628 by uni0628.medi;
  sub uni062A by uni062A.medi;
  sub uni062B by uni062B.medi;
  sub uni062C by uni062C.medi;
  sub uni062D by uni062D.medi;
  sub uni062E by uni062E.medi;
  sub uni0633 by uni0633.medi;
  sub uni0634 by uni0634.medi;
  sub uni0635 by uni0635.medi;
  sub uni0636 by uni0636.medi;
  sub uni0637 by uni0637.medi;
  sub uni0638 by uni0638.medi;
  sub uni0639 by uni0639.medi;
  sub uni063A by uni063A.medi;
  sub uni063B by uni063B.medi;
  sub uni063C by uni063C.medi;
  sub uni063D by uni063D.medi;
  sub uni0641 by uni0641.medi;
  sub uni0642 by uni0642.medi;
  sub uni0643 by uni0643.medi;
  sub uni0644 by uni0644.medi;
  sub uni0645 by uni0645.medi;
  sub uni0646 by uni0646.medi;
  sub uni0647 by uni0647.medi;
  sub uni0649 by uni0649.medi;
  sub uni064A by uni064A.medi;
  sub uni066E by uni066E.medi;
  sub uni066F by uni066F.medi;
  sub uni0678 by uni0678.medi;
  sub uni0679 by uni0679.medi;
  sub uni067A by uni067A.medi;
  sub uni067B by uni067B.medi;
  sub uni067C by uni067C.medi;
  sub uni067D by uni067D.medi;
  sub uni067E by uni067E.medi;
  sub uni067F by uni067F.medi;
  sub uni0680 by uni0680.medi;
  sub uni0681 by uni0681.medi;
  sub uni0682 by uni0682.medi;
  sub uni0683 by uni0683.medi;
  sub uni0684 by uni0684.medi;
  sub uni0685 by uni0685.medi;
  sub uni0686 by uni0686.medi;
  sub uni0687 by uni0687.medi;
  sub uni069A by uni069A.medi;
  sub uni069B by uni069B.medi;
  sub uni069C by uni069C.medi;
  sub uni069D by uni069D.medi;
  sub uni069E by uni069E.medi;
  sub uni069F by uni069F.medi;
  sub uni06A0 by uni06A0.medi;
  sub uni06A1 by uni06A1.medi;
  sub uni06A2 by uni06A2.medi;
  sub uni06A3 by uni06A3.medi;
  sub uni06A4 by uni06A4.medi;
  sub uni06A5 by uni06A5.medi;
  sub uni06A6 by uni06A6.medi;
  sub uni06A7 by uni06A7.medi;
  sub uni06A8 by uni06A8.medi;
  sub uni06A9 by uni06A9.medi;
  sub uni06AA by uni06AA.medi;
  sub uni06AB by uni06AB.medi;
  sub uni06AC by uni06AC.medi;
  sub uni06AD by uni06AD.medi;
  sub uni06AE by uni06AE.medi;
  sub uni06AF by uni06AF.medi;
  sub uni06B0 by uni06B0.medi;
  sub uni06B1 by uni06B1.medi;
  sub uni06B2 by uni06B2.medi;
  sub uni06B3 by uni06B3.medi;
  sub uni06B4 by uni06B4.medi;
  sub uni06B5 by uni06B5.medi;
  sub uni06B6 by uni06B6.medi;
  sub uni06B7 by uni06B7.medi;
  sub uni06B8 by uni06B8.medi;
  sub uni06B9 by uni06B9.medi;
  sub uni06BA by uni06BA.medi;
  sub uni06BB by uni06BB.medi;
  sub uni06BC by uni06BC.medi;
  sub uni06BD by uni06BD.medi;
  sub uni06BE by uni06BE.medi;
  sub uni06BF by uni06BF.medi;
  sub uni06C1 by uni06C1.medi;
  sub uni06CC by uni06CC.medi;
  sub uni06CE by uni06CE.medi;
  sub uni06D0 by uni06D0.medi;
  sub uni06D1 by uni06D1.medi;
  sub uni06FA by uni06FA.medi;
  sub uni06FB by uni06FB.medi;
  sub uni06FC by uni06FC.medi;
  sub uni06FF by uni06FF.medi;
  sub uni0750 by uni0750.medi;
  sub uni0751 by uni0751.medi;
  sub uni0752 by uni0752.medi;
  sub uni0753 by uni0753.medi;
  sub uni0754 by uni0754.medi;
  sub uni0755 by uni0755.medi;
  sub uni0756 by uni0756.medi;
  sub uni0757 by uni0757.medi;
  sub uni0758 by uni0758.medi;
  sub uni075C by uni075C.medi;
  sub uni075D by uni075D.medi;
  sub uni075E by uni075E.medi;
  sub uni075F by uni075F.medi;
  sub uni0760 by uni0760.medi;
  sub uni0761 by uni0761.medi;
  sub uni0762 by uni0762.medi;
  sub uni0763 by uni0763.medi;
  sub uni0764 by uni0764.medi;
  sub uni0765 by uni0765.medi;
  sub uni0766 by uni0766.medi;
  sub uni0767 by uni0767.medi;
  sub uni0768 by uni0768.medi;
  sub uni0769 by uni0769.medi;
  sub uni076A by uni076A.medi;
  sub uni076D by uni076D.medi;
  sub uni076E by uni076E.medi;
  sub uni076F by uni076F.medi;
  sub uni0770 by uni0770.medi;
  sub uni0772 by uni0772.medi;
  sub uni0775 by uni0775.medi;
  sub uni0776 by uni0776.medi;
  sub uni0777 by uni0777.medi;
  sub uni077C by uni077C.medi;
  sub uni077D by uni077D.medi;
  sub uni077E by uni077E.medi;
  sub uni077F by uni077F.medi;
  sub uni08A0 by uni08A0.medi;
} medi;

feature fina {
  lookupflag IgnoreMarks;
  sub uni0620 by uni0620.fina;
/* sub uni0622 by uni0627.fina uni0653; // decompose */
  sub uni0622 by uni0622.fina;
  sub uni0623 by uni0623.fina;
  sub uni0624 by uni0624.fina;
  sub uni0625 by uni0625.fina;
  sub uni0626 by uni0626.fina;
  sub uni0627 by uni0627.fina;
  sub uni0628 by uni0628.fina;
  sub uni0629 by uni0629.fina;
  sub uni062A by uni062A.fina;
  sub uni062B by uni062B.fina;
  sub uni062C by uni062C.fina;
  sub uni062D by uni062D.fina;
  sub uni062E by uni062E.fina;
  sub uni062F by uni062F.fina;
  sub uni0630 by uni0630.fina;
  sub uni0631 by uni0631.fina;
  sub uni0632 by uni0632.fina;
  sub uni0633 by uni0633.fina;
  sub uni0634 by uni0634.fina;
  sub uni0635 by uni0635.fina;
  sub uni0636 by uni0636.fina;
  sub uni0637 by uni0637.fina;
  sub uni0638 by uni0638.fina;
  sub uni0639 by uni0639.fina;
  sub uni063A by uni063A.fina;
  sub uni063B by uni063B.fina;
  sub uni063C by uni063C.fina;
  sub uni063D by uni063D.fina;
  sub uni063E by uni063E.fina;
  sub uni063F by uni063F.fina;
  sub uni0641 by uni0641.fina;
  sub uni0642 by uni0642.fina;
  sub uni0643 by uni0643.fina;
  sub uni0644 by uni0644.fina;
  sub uni0645 by uni0645.fina;
  sub uni0646 by uni0646.fina;
  sub uni0647 by uni0647.fina;
  sub uni0648 by uni0648.fina;
  sub uni0649 by uni0649.fina;
  sub uni064A by uni064A.fina;
  sub uni066E by uni066E.fina;
  sub uni066F by uni066F.fina;
  sub uni0671 by uni0671.fina;
  sub uni0672 by uni0672.fina;
  sub uni0673 by uni0673.fina;
  sub uni0675 by uni0675.fina;
  sub uni0676 by uni0676.fina;
  sub uni0677 by uni0677.fina;
  sub uni0678 by uni0678.fina;
  sub uni0679 by uni0679.fina;
  sub uni067A by uni067A.fina;
  sub uni067B by uni067B.fina;
  sub uni067C by uni067C.fina;
  sub uni067D by uni067D.fina;
  sub uni067E by uni067E.fina;
  sub uni067F by uni067F.fina;
  sub uni0680 by uni0680.fina;
  sub uni0681 by uni0681.fina;
  sub uni0682 by uni0682.fina;
  sub uni0683 by uni0683.fina;
  sub uni0684 by uni0684.fina;
  sub uni0685 by uni0685.fina;
  sub uni0686 by uni0686.fina;
  sub uni0687 by uni0687.fina;
  sub uni0688 by uni0688.fina;
  sub uni0689 by uni0689.fina;
  sub uni068A by uni068A.fina;
  sub uni068B by uni068B.fina;
  sub uni068C by uni068C.fina;
  sub uni068D by uni068D.fina;
  sub uni068E by uni068E.fina;
  sub uni068F by uni068F.fina;
  sub uni0690 by uni0690.fina;
  sub uni0691 by uni0691.fina;
  sub uni0692 by uni0692.fina;
  sub uni0693 by uni0693.fina;
  sub uni0694 by uni0694.fina;
  sub uni0695 by uni0695.fina;
  sub uni0696 by uni0696.fina;
  sub uni0697 by uni0697.fina;
  sub uni0698 by uni0698.fina;
  sub uni0699 by uni0699.fina;
  sub uni069A by uni069A.fina;
  sub uni069B by uni069B.fina;
  sub uni069C by uni069C.fina;
  sub uni069D by uni069D.fina;
  sub uni069E by uni069E.fina;
  sub uni069F by uni069F.fina;
  sub uni06A0 by uni06A0.fina;
  sub uni06A1 by uni06A1.fina;
  sub uni06A2 by uni06A2.fina;
  sub uni06A3 by uni06A3.fina;
  sub uni06A4 by uni06A4.fina;
  sub uni06A5 by uni06A5.fina;
  sub uni06A6 by uni06A6.fina;
  sub uni06A7 by uni06A7.fina;
  sub uni06A8 by uni06A8.fina;
  sub uni06A9 by uni06A9.fina;
  sub uni06AA by uni06AA.fina;
  sub uni06AB by uni06AB.fina;
  sub uni06AC by uni06AC.fina;
  sub uni06AD by uni06AD.fina;
  sub uni06AE by uni06AE.fina;
  sub uni06AF by uni06AF.fina;
  sub uni06B0 by uni06B0.fina;
  sub uni06B1 by uni06B1.fina;
  sub uni06B2 by uni06B2.fina;
  sub uni06B3 by uni06B3.fina;
  sub uni06B4 by uni06B4.fina;
  sub uni06B5 by uni06B5.fina;
  sub uni06B6 by uni06B6.fina;
  sub uni06B7 by uni06B7.fina;
  sub uni06B8 by uni06B8.fina;
  sub uni06B9 by uni06B9.fina;
  sub uni06BA by uni06BA.fina;
  sub uni06BB by uni06BB.fina;
  sub uni06BC by uni06BC.fina;
  sub uni06BD by uni06BD.fina;
  sub uni06BE by uni06BE.fina;
  sub uni06BF by uni06BF.fina;
  sub uni06C0 by uni06D5.fina uni0654;
  sub uni06C1 by uni06C1.fina;
  sub uni06C2 by uni06C1.fina uni0654;
  sub uni06C3 by uni06C3.fina;
  sub uni06C4 by uni06C4.fina;
  sub uni06C5 by uni06C5.fina;
  sub uni06C6 by uni06C6.fina;
  sub uni06C7 by uni06C7.fina;
  sub uni06C8 by uni06C8.fina;
  sub uni06C9 by uni06C9.fina;
  sub uni06CA by uni06CA.fina;
  sub uni06CB by uni06CB.fina;
  sub uni06CC by uni06CC.fina;
  sub uni06CD by uni06CD.fina;
  sub uni06CE by uni06CE.fina;
  sub uni06CF by uni06CF.fina;
  sub uni06D0 by uni06D0.fina;
  sub uni06D1 by uni06D1.fina;
  sub uni06D2 by uni06D2.fina;
    /* Unicode says U+06D3 is a ligature of U+06D2 U+0654, but more authentic
     * Urdu fonts treat it as if it was U+0626 U+06D2, and so we do. */
  sub uni06D3 by uni0626.medi uni06D2.fina;
  sub uni06D5 by uni06D5.fina;
  sub uni06EE by uni06EE.fina;
  sub uni06EF by uni06EF.fina;
  sub uni06FA by uni06FA.fina;
  sub uni06FB by uni06FB.fina;
  sub uni06FC by uni06FC.fina;
  sub uni06FF by uni06FF.fina;
  sub uni0750 by uni0750.fina;
  sub uni0751 by uni0751.fina;
  sub uni0752 by uni0752.fina;
  sub uni0753 by uni0753.fina;
  sub uni0754 by uni0754.fina;
  sub uni0755 by uni0755.fina;
  sub uni0756 by uni0756.fina;
  sub uni0757 by uni0757.fina;
  sub uni0758 by uni0758.fina;
  sub uni0759 by uni0759.fina;
  sub uni075A by uni075A.fina;
  sub uni075B by uni075B.fina;
  sub uni075C by uni075C.fina;
  sub uni075D by uni075D.fina;
  sub uni075E by uni075E.fina;
  sub uni075F by uni075F.fina;
  sub uni0760 by uni0760.fina;
  sub uni0761 by uni0761.fina;
  sub uni0762 by uni0762.fina;
  sub uni0763 by uni0763.fina;
  sub uni0764 by uni0764.fina;
  sub uni0765 by uni0765.fina;
  sub uni0766 by uni0766.fina;
  sub uni0767 by uni0767.fina;
  sub uni0768 by uni0768.fina;
  sub uni0769 by uni0769.fina;
  sub uni076A by uni076A.fina;
  sub uni076B by uni076B.fina;
  sub uni076C by uni076C.fina;
  sub uni076D by uni076D.fina;
  sub uni076E by uni076E.fina;
  sub uni076F by uni076F.fina;
  sub uni0770 by uni0770.fina;
  sub uni0771 by uni0771.fina;
  sub uni0772 by uni0772.fina;
  sub uni0773 by uni0773.fina;
  sub uni0774 by uni0774.fina;
  sub uni0775 by uni0775.fina;
  sub uni0776 by uni0776.fina;
  sub uni0777 by uni0777.fina;
  sub uni0778 by uni0778.fina;
  sub uni0779 by uni0779.fina;
  sub uni077A by uni077A.fina;
  sub uni077B by uni077B.fina;
  sub uni077C by uni077C.fina;
  sub uni077D by uni077D.fina;
  sub uni077E by uni077E.fina;
  sub uni077F by uni077F.fina;
  sub uni08A0 by uni08A0.fina;
} fina;

