void main()
{
    object oPC = GetEnteringObject();
    if (!GetIsObjectValid(oPC)) oPC=GetClickingObject();
    object oArea=GetArea(oPC);
    object oWorm=GetLocalObject(oArea, "Worm");
    location lWhere=GetLocation(oWorm);

    if(!GetIsPC(oPC)) return;

    if(GetLocalInt(oArea, "CanLeave") || (d20()+GetAbilityModifier(ABILITY_STRENGTH, oPC)>=12))
    {

        if (!GetIsObjectValid(GetAreaFromLocation(lWhere))) lWhere=GetLocalLocation(oPC, "WormReturn");

        SendMessageToPC(oPC, "You manage to claw your way out of the worm's mouth.");
        AssignCommand(oPC, ClearAllActions());
        AssignCommand(oPC, JumpToLocation(lWhere));
    }

    else
        SendMessageToPC(oPC, "You try to climb back out the mouth, but are held back by the action of the sphincters.");


}