# Path: modules/game/Colour.py



from default_imports import *
from modules.game.Colour import Colour
from math import exp



class EngineEval(NamedTuple('EngineEval', [
        ('cp', Opt[Number]),
        ('mate', Opt[int])
    ])):
    @staticmethod
    def fromDict(d: Dict):
        return EngineEval(d.get('cp', None), d.get('mate', None))

    def asdict(self) -> Dict:
        return {'cp': self.cp} if self.cp is not None else {'mate': self.mate}


# Path: modules/game/Colour.py



# Path: modules/game/EngineEval.py
from default_imports import *
from modules.game.Colour import Colour
from math import exp




class EngineEval(NamedTuple('EngineEval', [
        ('cp', Opt[Number]),
        ('mate', Opt[int])
    ])):
    @staticmethod
    def fromDict(d: Dict):
        return EngineEval(d.get('cp', None), d.get('mate', None))

    def asdict(self) -> Dict:
        return {'cp': self.cp} if self.cp is not None else {'mate': self.mate}


    def inverse(self):