<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def to_text(self, relative=False, indent_level=0, clean_empty_block=False):
 """ This method returns the object model in text format. You should be able to copy&paste this text into any device running a supported version of FortiOS. Args: - **relative** (bool):
 * If ``True`` the text returned will assume that you are one block away * If ``False`` the text returned will contain instructions to reach the block from the root. - **indent_level** (int):
 This value is for aesthetics only. It will help format the text in blocks to\ increase readability. - **clean_empty_block** (bool):
 * If ``True`` a block without parameters or with sub_blocks without parameters will return an empty\ string * If ``False`` a block without parameters will still return how to create it. """

        if relative:
            fwd = self.rel_path_fwd
            bwd = self.rel_path_bwd
        else:
            fwd = self.full_path_fwd
            bwd = self.full_path_bwd

        indent = 4*indent_level*' '
        pre = '%s%s' % (indent, fwd)
        post = '%s%s' % (indent, bwd)

        text = ''
        for param, value in self.iterparams():
            text += '  %sset %s %s\n' % (indent, param, value)

        for key, block in self.iterblocks():
            text += block.to_text(True, indent_level+1)

        if len(text) > 0 or not clean_empty_block:
            text = '%s%s%s' % (pre, text, post)
        return text